From a360a29e42e3ce61715a0bdccde66650b876a06a Mon Sep 17 00:00:00 2001 From: lghiur Date: Tue, 25 Jun 2024 13:52:29 +0300 Subject: [PATCH] Added Fontawesome PRO --- lib/fonts/fontawesome/fa-light-300.ttf | Bin 0 -> 1275600 bytes lib/fonts/fontawesome/fa-light-300.woff2 | Bin 0 -> 460556 bytes lib/fonts/fontawesome/fa-solid-900.ttf | Bin 0 -> 992668 bytes lib/fonts/fontawesome/fa-solid-900.woff2 | Bin 0 -> 350540 bytes lib/index.css | 19 +- lib/index.css.map | 2 +- lib/index.js | 2 +- lib/index.js.map | 2 +- lib/tyk-ui.css | 19 +- lib/tyk-ui.css.map | 2 +- lib/tyk-ui.js | 2 +- lib/tyk-ui.js.map | 2 +- package.json | 2 +- src/common/css/fontawesome.css | 4016 ----- src/common/css/fontawesome/fontawesome.css | 13396 ++++++++++++++++ src/common/css/fontawesome/light.css | 19 + src/common/css/fontawesome/solid.css | 19 + src/common/fonts/fa-brands-400.eot | Bin 126428 -> 0 bytes src/common/fonts/fa-brands-400.svg | 1184 -- src/common/fonts/fa-brands-400.ttf | Bin 126192 -> 0 bytes src/common/fonts/fa-brands-400.woff | Bin 81612 -> 0 bytes src/common/fonts/fa-brands-400.woff2 | Bin 69608 -> 0 bytes src/common/fonts/fa-regular-400.eot | Bin 40460 -> 0 bytes src/common/fonts/fa-regular-400.svg | 467 - src/common/fonts/fa-regular-400.ttf | Bin 40232 -> 0 bytes src/common/fonts/fa-regular-400.woff | Bin 18112 -> 0 bytes src/common/fonts/fa-regular-400.woff2 | Bin 14844 -> 0 bytes src/common/fonts/fa-solid-900.eot | Bin 197172 -> 0 bytes src/common/fonts/fa-solid-900.svg | 2618 --- src/common/fonts/fa-solid-900.ttf | Bin 196952 -> 0 bytes src/common/fonts/fa-solid-900.woff | Bin 95436 -> 0 bytes src/common/fonts/fa-solid-900.woff2 | Bin 73852 -> 0 bytes src/common/fonts/fontawesome/fa-light-300.ttf | Bin 0 -> 1275600 bytes .../fonts/fontawesome/fa-light-300.woff2 | Bin 0 -> 460556 bytes src/common/fonts/fontawesome/fa-solid-900.ttf | Bin 0 -> 992668 bytes .../fonts/fontawesome/fa-solid-900.woff2 | Bin 0 -> 350540 bytes src/components/Icon/Readme.md | 112 + src/components/Icon/index.js | 5 +- src/index.css | 4 +- 39 files changed, 13592 insertions(+), 8300 deletions(-) create mode 100644 lib/fonts/fontawesome/fa-light-300.ttf create mode 100644 lib/fonts/fontawesome/fa-light-300.woff2 create mode 100644 lib/fonts/fontawesome/fa-solid-900.ttf create mode 100644 lib/fonts/fontawesome/fa-solid-900.woff2 delete mode 100644 src/common/css/fontawesome.css create mode 100644 src/common/css/fontawesome/fontawesome.css create mode 100644 src/common/css/fontawesome/light.css create mode 100644 src/common/css/fontawesome/solid.css delete mode 100644 src/common/fonts/fa-brands-400.eot delete mode 100644 src/common/fonts/fa-brands-400.svg delete mode 100644 src/common/fonts/fa-brands-400.ttf delete mode 100644 src/common/fonts/fa-brands-400.woff delete mode 100644 src/common/fonts/fa-brands-400.woff2 delete mode 100644 src/common/fonts/fa-regular-400.eot delete mode 100644 src/common/fonts/fa-regular-400.svg delete mode 100644 src/common/fonts/fa-regular-400.ttf delete mode 100644 src/common/fonts/fa-regular-400.woff delete mode 100644 src/common/fonts/fa-regular-400.woff2 delete mode 100644 src/common/fonts/fa-solid-900.eot delete mode 100644 src/common/fonts/fa-solid-900.svg delete mode 100644 src/common/fonts/fa-solid-900.ttf delete mode 100644 src/common/fonts/fa-solid-900.woff delete mode 100644 src/common/fonts/fa-solid-900.woff2 create mode 100644 src/common/fonts/fontawesome/fa-light-300.ttf create mode 100644 src/common/fonts/fontawesome/fa-light-300.woff2 create mode 100644 src/common/fonts/fontawesome/fa-solid-900.ttf create mode 100644 src/common/fonts/fontawesome/fa-solid-900.woff2 diff --git a/lib/fonts/fontawesome/fa-light-300.ttf b/lib/fonts/fontawesome/fa-light-300.ttf new file mode 100644 index 0000000000000000000000000000000000000000..c1f8cb4b60752bbbc61418d0f359aa9a581b9a80 GIT binary patch literal 1275600 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⁡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%0A$^VSB~`{}q`r zNRp-0NN;9g1X-1+yW5j8WxmY8KWS5UX6GroM&KqB1;UUyCp=|(tw%0kScVk z;m3=qkvTmLF*lMbeteZL__%FP9pej`tN$4C&V8H>>5%tyU+rYl)=PxaOIAAL^oS}? z@vlpLx&;~E0>yS+tRsuuby#KTEr@S|tzb^N~|;l_Qtq7|%E= zkcd`;UI0GH0QntdAC>G}iV8TA>Y5DJ=M(Zs@>PA{k957eumNNuisf*QUm>f-ZDX zt&4nM9^{@yr?<3}V&LXK8yRVod3A(T=&4YU$lF86b-)tq=SCtEhA}}*Tt!*@Rp%I` z0GkA|DFbv3SUy z37ar8=0m|@Gcv8vbUI=V15J}9iKfY9sXF3Bqs~aRL`1c*z;nimCW^9zrJZdQqgecz zC9w((N}=goer6`uQ03WY{(-~kP|}Q*%P})~NaN==3tfb4@50RPrE^q{b2er}WTsz}>Tf zEToyo1J40lcP~W(mIQ}7%;GAk1-L9_5@IGr58!B*0YT&dV^WFEmDIBHIp~MEUP=*7 z&-Qq0AMsE7xDEKv8v9B#`cEoESnEI8**dGBpti&~V4K>CjcySq?)I}4GMh(;TsQAL zdo#~Ivh(aCk90oouS_nx(R~+W+rS0g&rgFc{2cmO#fxjZ81>{uxkLz9I^{r$0AxiR zz7!33Rt_W#qJ{bVBAx%>yN4@SqsTMbDM3&!Nek8^m!g##GAYi^I&(@1=X)t9vK@Og zsjr7z^!#>z_kQ^Vr^Z%=2!+7qF&`B>(fM5eE$0ZU72ml&X=1Cd*VejShSL%TyL);G zb9&J4OiRFmFIG6Mw{!_mlB#<5WrF0Udj#9JwwWEmiY;8{UW?@HeiC6aaowfT)6zqF zC9g?|4cF}n6$MAbvo>tqdGv@OhAWE;Cr>UcR)&!*V}$YAH3Z|2jvhID`t;!=aFJBy zTWQoShzraIB(R+1N+klQg2~*an!RunHmd^ zlIb}G&sQ1P3{OD*=mWwZS3Babb_8p*mdZna5ep-gNF@^ei=nc(ZK$ly>ir7RDwjLk z|t36uVJvmE-L|{0RRbAgA8yc8Q@QX4!20>bD4LAEm_nGVOKka zzjHs}0JJ0JAq_OOe-?W5HULA-NiCVnTQ>jzy8ze=&3h|6(1Y7i3? zyvdwEdV^mugFV4r6si zS~#DS)^0FWn8m1ukvUV8;T~XsHmA>%Z>Zs^OB}jdB8D0Of~d?s;2ug50Q{t&EEm#S zmI?vhK$MUQW4*@kYx&Mib`25CrKovRJ{}8=$BER$!YyuiH9j7S#q&3T+cB52ds9SA z&b#mpT;E)%i^xqV>Lp#tnbF0o zppXm@%i!w5Uy4)pE9`(1R=1n7NCHMC^BK1wmeHp4OCUxvwY;s$Cu^E^>bv7 z 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
9F!2MZZwrAcI}wOZ9~tpoN3 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

bV)%# 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 O=O(jc|4LW7(*FkuR3%^l literal 0 HcmV?d00001 diff --git a/lib/fonts/fontawesome/fa-light-300.woff2 b/lib/fonts/fontawesome/fa-light-300.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..cab6e637d1287a038921da2eb8a9e396a0a1e0c9 GIT binary patch literal 460556 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

1>e&%cpW?o)Bc zhwASzpF+rcWiks5|JeOW><1BaUc}mI0X%5IDx85Ep$8A`X^4q8|GZ4En06|Q7v^sn zN3F?omSf3aiHE|?526jU-5obb$!3p{G;V03YmhNe&BXKdK_JAvonPPIml5Ds#hfiI7?qh1u9SCsn*qJSuf z!hN!2I=p}H(?fitzdLvC-0ZBQC|7gowEP-5o#w9s;FedV*i?DaCAb_TXjm;Lt&(gq za6<}WGc;q`sYr}0OK-POfb+HdbK5y@e-$50VbHKoXlc)cM{qW0@8McI0)qHMiY z6UF2+Q&Ur#DE79~>5B*H^v^_5yYI!vUm!p1Lv8VkP8TcSknG$(jvx;q+U1cfT5ceI zi&v%*4;#2SWzAQ@tBpdTSR5NG77Il~x2s=`@u;v5Ik~e@#4r^NRqo9p}wv?EpXKjcIj6Ccv-0rriTx3;PLqdNQ)`_XJF`Nz@G(ZUfYZt4v8$shdS z2Wr|xjuS6r)bEqEOg#C*@k669IT!u4o`)|{6h&f`na%v*=;&zSh)a=8k^AfSzyEzT zb5YLxI>X77MpCFQ0US}eaVu1dzo$M2EV+;gwH?C449WTksGZqcj=6NW3 z$54(l^JL=#vwVHEuM?mB0Bc}*9-|R{XkZCnqPsxA|L5U=4)(!?>0_p>YGTkjinC;u z=V@pehT+qA=WXI$Joo8t*}F!^$GArj$?Hq6Cy3-(FXjY6!Hyyb+>4)OCZEM9`Ru_# zz8%j8*oQW(;XX9HETQF=km7SN77awROCS<*1O2SYSR7v=SB>h5= zCPt&tXmt18cjNNiBT-QAdJ-oJYVu)K5VKw{Ty3?sK1u%g^X%x=;bw9FLnzJ~brJV2i294sjAP9mWpd$#$NjaZKCx@6z zPV)IYVjiEEPP1Y%5ZQEk$ciF6EUDU1D;Bk(rfMbZl{5fI0|4MU_JLqO3F;$9_=w<9 z?aAuIV_VG_p$sd`Els?NwFC?*9pE>ec;K#}&m#Nmtoc8lj@-k=sW@w*FWC3x)D zB1d$6B}^vnFUbjMNIidI-~V;Xw|HvcpC0^wVI>>7=SvIKY!gkDV^hCfwJeKtW1_SlgiiJ~NoSVtdOr4nMPWR3J>uvNZY1o`y0@OOL} z7*b9_y6Li}B#mTQlHUDpNs{H!dot$yl6}v6WLc6%0Dy4$>2EQ_mw^FL@6z!k7S3GA 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�_1kQ*2d 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 S_73N#@$=a>=#=}##PomWFMo0X literal 0 HcmV?d00001 diff --git a/lib/fonts/fontawesome/fa-solid-900.ttf b/lib/fonts/fontawesome/fa-solid-900.ttf new file mode 100644 index 0000000000000000000000000000000000000000..e19253e7b2e409279f58b3da9ecd7ac0f064a59a GIT binary patch literal 992668 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

rnj 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%0Ay&G2wdVG?UhA#BA~1x%)H_KcX2 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 c{|e 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 literal 0 HcmV?d00001 diff --git a/lib/fonts/fontawesome/fa-solid-900.woff2 b/lib/fonts/fontawesome/fa-solid-900.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..fdfc26579fc6c82ecb1483c54b78e494526e7df9 GIT binary patch literal 350540 zcmV)fK&8KTPew8T0RR911zAi03IG5A4rGr21z7A00000000000000000000 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

N6_BjI4=R!rtD82N@TG*(Ro8 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�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

UrrDF-O}~=+zEv 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 literal 0 HcmV?d00001 diff --git a/lib/index.css b/lib/index.css index ac4609f3..0625ba53 100644 --- a/lib/index.css +++ b/lib/index.css @@ -1,7 +1,20 @@ a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{border:0;font:inherit;font-size:100%;margin:0;padding:0;vertical-align:baseline}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{&:after,&:before{content:"";content:none}}q{&:after,&:before{content:"";content:none}}table{border-collapse:collapse;border-spacing:0}:root{--general-border-radius:18px;--general-border-width:2px;--color-default-base:#36364c;--color-default-base-light:#7a79a1;--color-default-light:#c3c3e5;--color-default-dark:#505071;--color-primary-base:#a2a2cc;--color-primary-light:#ededf9;--color-primary-dark:#505071;--color-success-base:#00d9ba;--color-success-light:#c2f2e9;--color-success-dark:#00b798;--color-info-base:#82bbc6;--color-info-light:#d3ebef;--color-danger-base:#ff6c7d;--color-danger-extra-light:#f5ccd1;--color-danger-light:#ffbbc5;--color-danger-dark:#ea4766;--color-warning-base:#d6b218;--color-warning-light:#ffe885;--color-warning-dark:#c58c11;--color-foreground-base:#393939;--color-foreground-base-dark:#22272b;--color-foreground-light:#5a5a68;--color-foreground-dark:#161b20;--color-foreground-extra-dark:#0a0d10;--color-background-base:#e1e1e1;--color-background-light:#ededf9;--color-background-dark:#43435b;--color-background-extra-dark:#0a0d10;--text-color:var(--color-default-dark);--label-color:var(--color-default-base);--xs-line-height:16px;--sm-line-height:19px;--md-line-height:22px;--lg-line-height:23px;--xl-line-height:24px;--xxl-line-height:30px;--xs-font-size:13px;--sm-font-size:14px;--md-font-size:16px;--lg-font-size:18px;--xl-font-size:20px;--xxl-font-size:25px;--base-font-size:var(--sm-font-size);--base-line-height:var(--sm-line-height);--spacing-xs:5px;--spacing-sm:10px;--spacing-base:15px;--spacing-md:20px;--spacing-lg:25px;--spacing-xl:30px;--spacing-xxl:40px;--grid-gutter:var(--spacing-md);--grid-max-width:calc(1200px + var(--grid-gutter)*2);--breakpoint-xs:420px;--breakpoint-sm:768px;--breakpoint-md:1024px;--breakpoint-lg:1248px;--font-inter-light:"Inter-Light";--font-inter-medium:"Inter-Medium";--font-inter-regular:"Inter-Regular";--font-inter-bold:"Inter-Bold";--font-family-regular:"OpenSans-regular";--font-family-medium:"OpenSans-SemiBold";--font-family-bold:"OpenSans-Bold";--headings-color:var(--color-default-base);--headings-font-family-regular:"smoolthan_regular";--headings-font-family-medium:"smoolthan_medium";--headings-font-family-bold:"smoolthan_bold";--headings-margin-bottom:15px;--headings-font-family:var(--headings-font-family-medium);--headings-font-weight:500;--headings-line-height:var(--base-line-height);--form-group-margin-bottom:15px;--form-control-height:39px;--form-control-padding-left:var(--spacing-md);--form-control-padding-right:var(--spacing-md);--form-control-padding-top:10px;--form-control-padding-bottom:10px;--form-control-addon-background-color:#fff;--form-control-addon-padding-top:10px;--form-control-addon-padding-bottom:10px;--form-control-addon-padding-left:10px;--form-control-addon-padding-right:10px;--form-control-border:var(--general-border-width) solid var(--color-default-light);--form-control-disabled-border:var(--general-border-width) solid var(--color-default-light);--form-control-placeholder-color:var(--color-primary-base);--form-control-disabled-background-color:var(--color-background-light);--form-control-disabled-color:var(--text-color);--form-control-border-focus:2px solid var(--color-success-base);--form-control-placeholder-font-family:var(--font-family-medium);--form-control-error-colour:var(--color-danger-dark);--form-default-color:var(--color-default-light);--form-primary-color:var(--color-primary-base);--form-success-color:var(--color-success-base);--error-border:var(--general-border-width) solid var(--color-danger-base);--error-border-left:2px solid var(--color-danger-dark);--help-block-color:var(--color-default-base);--help-block-font-style:normal;--help-block-padding:0 0 0 var(--form-control-padding-left);--error-message-padding:0 0 0 var(--form-control-padding-left);--default-pill-background-color:var(--color-default-base);--default-pill-color:#fff;--pill-margin:0 0 10px 0;--default-outline-pill-box-shadow:inset 0 0 0 2px var(--color-default-base);--default-outline-pill-color:var(--text-color);--title-medium-font-size:16px;--bottom-buffer-large:var(--spacing-md);--bottom-buffer-medium:10px;--bottom-buffer-small:5px;--top-buffer-large:var(--spacing-md);--top-buffer-medium:10px;--top-buffer-small:5px;--right-buffer-large:var(--spacing-md);--right-buffer-medium:10px;--right-buffer-small:5px;--left-buffer-large:var(--spacing-md);--left-buffer-medium:10px;--left-buffer-small:5px;--modal-z-index:1080}.container{margin-block:0;margin-inline:auto;max-inline-size:var(--grid-max-width)}.container,.container-fluid{padding-block:0;padding-inline:var(--grid-gutter)}.tyk-row{box-sizing:border-box;display:flex;flex:0 1 auto;flex-direction:row;flex-wrap:wrap;inline-size:calc(100% + var(--grid-gutter));list-style:none;margin-inline-start:calc(var(--grid-gutter)*-1);&.no-gutters{margin:0}&.tyk-row--gutterless{inline-size:100%;margin:0}&.tyk-row--reverse{flex-direction:row-reverse}}.tyk-col{box-sizing:border-box;flex:0 0 auto;flex-basis:calc(100% - var(--grid-gutter));flex-grow:1;inline-size:calc(100% - var(--grid-gutter));margin-inline-start:var(--grid-gutter);max-inline-size:calc(100% - var(--grid-gutter));&:last-child{margin-inline-end:0}.tyk-row--gutterless &{margin:0}&.tyk-col--reverse{flex-direction:column-reverse}&.tyk-col--align-bottom{align-self:flex-end}&.tyk-col--align-top{align-self:flex-start}&.tyk-col--align-center{align-self:center}&.tyk-col--align-baseline{align-self:baseline}&.tyk-col--align-stretch{align-self:stretch}}@media screen and (width >= 1248px){.tyk-col--lg-0{flex-basis:-20px;max-inline-size:-20px}.tyk-col--offset-lg-0{margin-inline-start:0}.tyk-col--lg-1{flex-basis:calc(8.33333% - 20px);max-inline-size:calc(8.33333% - 20px)}.tyk-col--offset-lg-1{margin-inline-start:8.3333333333%}.tyk-col--lg-2{flex-basis:calc(16.66667% - 20px);max-inline-size:calc(16.66667% - 20px)}.tyk-col--offset-lg-2{margin-inline-start:16.6666666667%}.tyk-col--lg-3{flex-basis:calc(25% - 20px);max-inline-size:calc(25% - 20px)}.tyk-col--offset-lg-3{margin-inline-start:25%}.tyk-col--lg-4{flex-basis:calc(33.33333% - 20px);max-inline-size:calc(33.33333% - 20px)}.tyk-col--offset-lg-4{margin-inline-start:33.3333333333%}.tyk-col--lg-5{flex-basis:calc(41.66667% - 20px);max-inline-size:calc(41.66667% - 20px)}.tyk-col--offset-lg-5{margin-inline-start:41.6666666667%}.tyk-col--lg-6{flex-basis:calc(50% - 20px);max-inline-size:calc(50% - 20px)}.tyk-col--offset-lg-6{margin-inline-start:50%}.tyk-col--lg-7{flex-basis:calc(58.33333% - 20px);max-inline-size:calc(58.33333% - 20px)}.tyk-col--offset-lg-7{margin-inline-start:58.3333333333%}.tyk-col--lg-8{flex-basis:calc(66.66667% - 20px);max-inline-size:calc(66.66667% - 20px)}.tyk-col--offset-lg-8{margin-inline-start:66.6666666667%}.tyk-col--lg-9{flex-basis:calc(75% - 20px);max-inline-size:calc(75% - 20px)}.tyk-col--offset-lg-9{margin-inline-start:75%}.tyk-col--lg-10{flex-basis:calc(83.33333% - 20px);max-inline-size:calc(83.33333% - 20px)}.tyk-col--offset-lg-10{margin-inline-start:83.3333333333%}.tyk-col--lg-11{flex-basis:calc(91.66667% - 20px);max-inline-size:calc(91.66667% - 20px)}.tyk-col--offset-lg-11{margin-inline-start:91.6666666667%}.tyk-col--lg-12{flex-basis:calc(100% - 20px);max-inline-size:calc(100% - 20px)}.tyk-col--offset-lg-12{margin-inline-start:100%}}@media screen and (1024px <= width < 1248px){.tyk-col--md-0{flex-basis:-20px;max-inline-size:-20px}.tyk-col--offset-md-0{margin-inline-start:0}.tyk-col--md-1{flex-basis:calc(8.33333% - 20px);max-inline-size:calc(8.33333% - 20px)}.tyk-col--offset-md-1{margin-inline-start:8.3333333333%}.tyk-col--md-2{flex-basis:calc(16.66667% - 20px);max-inline-size:calc(16.66667% - 20px)}.tyk-col--offset-md-2{margin-inline-start:16.6666666667%}.tyk-col--md-3{flex-basis:calc(25% - 20px);max-inline-size:calc(25% - 20px)}.tyk-col--offset-md-3{margin-inline-start:25%}.tyk-col--md-4{flex-basis:calc(33.33333% - 20px);max-inline-size:calc(33.33333% - 20px)}.tyk-col--offset-md-4{margin-inline-start:33.3333333333%}.tyk-col--md-5{flex-basis:calc(41.66667% - 20px);max-inline-size:calc(41.66667% - 20px)}.tyk-col--offset-md-5{margin-inline-start:41.6666666667%}.tyk-col--md-6{flex-basis:calc(50% - 20px);max-inline-size:calc(50% - 20px)}.tyk-col--offset-md-6{margin-inline-start:50%}.tyk-col--md-7{flex-basis:calc(58.33333% - 20px);max-inline-size:calc(58.33333% - 20px)}.tyk-col--offset-md-7{margin-inline-start:58.3333333333%}.tyk-col--md-8{flex-basis:calc(66.66667% - 20px);max-inline-size:calc(66.66667% - 20px)}.tyk-col--offset-md-8{margin-inline-start:66.6666666667%}.tyk-col--md-9{flex-basis:calc(75% - 20px);max-inline-size:calc(75% - 20px)}.tyk-col--offset-md-9{margin-inline-start:75%}.tyk-col--md-10{flex-basis:calc(83.33333% - 20px);max-inline-size:calc(83.33333% - 20px)}.tyk-col--offset-md-10{margin-inline-start:83.3333333333%}.tyk-col--md-11{flex-basis:calc(91.66667% - 20px);max-inline-size:calc(91.66667% - 20px)}.tyk-col--offset-md-11{margin-inline-start:91.6666666667%}.tyk-col--md-12{flex-basis:calc(100% - 20px);max-inline-size:calc(100% - 20px)}.tyk-col--offset-md-12{margin-inline-start:100%}}@media screen and (768px < width < 1024px){.tyk-col--sm-0{flex-basis:-20px;max-inline-size:-20px}.tyk-col--offset-sm-0{margin-inline-start:0}.tyk-col--sm-1{flex-basis:calc(8.33333% - 20px);max-inline-size:calc(8.33333% - 20px)}.tyk-col--offset-sm-1{margin-inline-start:8.3333333333%}.tyk-col--sm-2{flex-basis:calc(16.66667% - 20px);max-inline-size:calc(16.66667% - 20px)}.tyk-col--offset-sm-2{margin-inline-start:16.6666666667%}.tyk-col--sm-3{flex-basis:calc(25% - 20px);max-inline-size:calc(25% - 20px)}.tyk-col--offset-sm-3{margin-inline-start:25%}.tyk-col--sm-4{flex-basis:calc(33.33333% - 20px);max-inline-size:calc(33.33333% - 20px)}.tyk-col--offset-sm-4{margin-inline-start:33.3333333333%}.tyk-col--sm-5{flex-basis:calc(41.66667% - 20px);max-inline-size:calc(41.66667% - 20px)}.tyk-col--offset-sm-5{margin-inline-start:41.6666666667%}.tyk-col--sm-6{flex-basis:calc(50% - 20px);max-inline-size:calc(50% - 20px)}.tyk-col--offset-sm-6{margin-inline-start:50%}.tyk-col--sm-7{flex-basis:calc(58.33333% - 20px);max-inline-size:calc(58.33333% - 20px)}.tyk-col--offset-sm-7{margin-inline-start:58.3333333333%}.tyk-col--sm-8{flex-basis:calc(66.66667% - 20px);max-inline-size:calc(66.66667% - 20px)}.tyk-col--offset-sm-8{margin-inline-start:66.6666666667%}.tyk-col--sm-9{flex-basis:calc(75% - 20px);max-inline-size:calc(75% - 20px)}.tyk-col--offset-sm-9{margin-inline-start:75%}.tyk-col--sm-10{flex-basis:calc(83.33333% - 20px);max-inline-size:calc(83.33333% - 20px)}.tyk-col--offset-sm-10{margin-inline-start:83.3333333333%}.tyk-col--sm-11{flex-basis:calc(91.66667% - 20px);max-inline-size:calc(91.66667% - 20px)}.tyk-col--offset-sm-11{margin-inline-start:91.6666666667%}.tyk-col--sm-12{flex-basis:calc(100% - 20px);max-inline-size:calc(100% - 20px)}.tyk-col--offset-sm-12{margin-inline-start:100%}}@media screen and (width <= 768px){.tyk-col--xs-0{flex-basis:-20px;max-inline-size:-20px}.tyk-col--offset-xs-0{margin-inline-start:0}.tyk-col--xs-1{flex-basis:calc(8.33333% - 20px);max-inline-size:calc(8.33333% - 20px)}.tyk-col--offset-xs-1{margin-inline-start:8.3333333333%}.tyk-col--xs-2{flex-basis:calc(16.66667% - 20px);max-inline-size:calc(16.66667% - 20px)}.tyk-col--offset-xs-2{margin-inline-start:16.6666666667%}.tyk-col--xs-3{flex-basis:calc(25% - 20px);max-inline-size:calc(25% - 20px)}.tyk-col--offset-xs-3{margin-inline-start:25%}.tyk-col--xs-4{flex-basis:calc(33.33333% - 20px);max-inline-size:calc(33.33333% - 20px)}.tyk-col--offset-xs-4{margin-inline-start:33.3333333333%}.tyk-col--xs-5{flex-basis:calc(41.66667% - 20px);max-inline-size:calc(41.66667% - 20px)}.tyk-col--offset-xs-5{margin-inline-start:41.6666666667%}.tyk-col--xs-6{flex-basis:calc(50% - 20px);max-inline-size:calc(50% - 20px)}.tyk-col--offset-xs-6{margin-inline-start:50%}.tyk-col--xs-7{flex-basis:calc(58.33333% - 20px);max-inline-size:calc(58.33333% - 20px)}.tyk-col--offset-xs-7{margin-inline-start:58.3333333333%}.tyk-col--xs-8{flex-basis:calc(66.66667% - 20px);max-inline-size:calc(66.66667% - 20px)}.tyk-col--offset-xs-8{margin-inline-start:66.6666666667%}.tyk-col--xs-9{flex-basis:calc(75% - 20px);max-inline-size:calc(75% - 20px)}.tyk-col--offset-xs-9{margin-inline-start:75%}.tyk-col--xs-10{flex-basis:calc(83.33333% - 20px);max-inline-size:calc(83.33333% - 20px)}.tyk-col--offset-xs-10{margin-inline-start:83.3333333333%}.tyk-col--xs-11{flex-basis:calc(91.66667% - 20px);max-inline-size:calc(91.66667% - 20px)}.tyk-col--offset-xs-11{margin-inline-start:91.6666666667%}.tyk-col--xs-12{flex-basis:calc(100% - 20px);max-inline-size:calc(100% - 20px)}.tyk-col--offset-xs-12{margin-inline-start:100%}}@font-face{font-family:Inter-Bold;font-style:normal;font-weight:400;src:url(fonts/inter/Inter-Bold.woff2) format("woff2"),url(fonts/inter/Inter-Bold.woff) format("woff")}@font-face{font-family:Inter-Light;font-style:normal;font-weight:400;src:url(fonts/inter/Inter-Light.woff2) format("woff2"),url(fonts/inter/Inter-Light.woff) format("woff")}@font-face{font-family:Inter-Medium;font-style:normal;font-weight:400;src:url(fonts/inter/Inter-Medium.woff2) format("woff2"),url(fonts/inter/Inter-Medium.woff) format("woff")}@font-face{font-family:Inter-Regular;font-style:normal;font-weight:400;src:url(fonts/inter/Inter-Regular.woff2) format("woff2"),url(fonts/inter/Inter-Regular.woff) format("woff")}@font-face{font-family:Inter-SemiBold;font-style:normal;font-weight:400;src:url(fonts/inter/Inter-SemiBold.woff2) format("woff2"),url(fonts/inter/Inter-SemiBold.woff) format("woff")}@font-face{font-family:OpenSans-Bold;font-style:normal;font-weight:400;src:url(fonts/OpenSans-Bold.woff2) format("woff2"),url(fonts/OpenSans-Bold.woff) format("woff")}@font-face{font-family:OpenSans-SemiBold;font-style:normal;font-weight:400;src:url(fonts/OpenSans-SemiBold.woff2) format("woff2"),url(fonts/OpenSans-SemiBold.woff) format("woff")}@font-face{font-family:OpenSans-Regular;font-style:normal;font-weight:400;src:url(fonts/OpenSans-Regular.woff2) format("woff2"),url(fonts/OpenSans-Regular.woff) format("woff")}@font-face{font-family:smoolthan_bold;font-style:normal;font-weight:400;src:url(fonts/smoolthan_bold-webfont.woff2) format("woff2"),url(fonts/smoolthan_bold-webfont.woff) format("woff")}@font-face{font-family:smoolthan_medium;font-style:normal;font-weight:400;src:url(fonts/smoolthan_medium-webfont.woff2) format("woff2"),url(fonts/smoolthan_medium-webfont.woff) format("woff")}@font-face{font-family:smoolthan_regular;font-style:normal;font-weight:400;src:url(fonts/smoolthan_regular-webfont.woff2) format("woff2"),url(fonts/smoolthan_regular-webfont.woff) format("woff")}@font-face{font-family:tykon;font-style:normal;font-weight:400;src:url(fonts/tykon.woff2) format("woff2"),url(fonts/tykon.woff) format("woff")} /*! - * Font Awesome Free 5.5.0 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - */.fa,.fab,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;line-height:inherit;position:absolute;text-align:center;width:2em}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-balance-scale:before{content:"\f24e"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-diagnoses:before{content:"\f470"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-git:before{content:"\f1d3"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-handshake:before{content:"\f2b5"}.fa-hanukiah:before{content:"\f6e6"}.fa-hashtag:before{content:"\f292"}.fa-hat-wizard:before{content:"\f6e8"}.fa-haykal:before{content:"\f666"}.fa-hdd:before{content:"\f0a0"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hot-tub:before{content:"\f593"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-internet-explorer:before{content:"\f26b"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse-pointer:before{content:"\f245"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-nintendo-switch:before{content:"\f418"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-carry:before{content:"\f4ce"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-volume:before{content:"\f2a0"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-sass:before{content:"\f41e"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowflake:before{content:"\f2dc"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-swatchbook:before{content:"\f5c3"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet-paper:before{content:"\f71e"}.fa-toolbox:before{content:"\f552"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-train:before{content:"\f238"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-uikit:before{content:"\f403"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:Font Awesome\ 5 Brands;font-style:normal;font-weight:400;src:url(fonts/fa-brands-400.eot);src:url(fonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(fonts/fa-brands-400.woff2) format("woff2"),url(fonts/fa-brands-400.woff) format("woff"),url(fonts/fa-brands-400.ttf) format("truetype"),url(fonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:Font Awesome\ 5 Brands}@font-face{font-family:Font Awesome\ 5 Free;font-style:normal;font-weight:400;src:url(fonts/fa-regular-400.eot);src:url(fonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(fonts/fa-regular-400.woff2) format("woff2"),url(fonts/fa-regular-400.woff) format("woff"),url(fonts/fa-regular-400.ttf) format("truetype"),url(fonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-weight:400}@font-face{font-family:Font Awesome\ 5 Free;font-style:normal;font-weight:900;src:url(fonts/fa-solid-900.eot);src:url(fonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(fonts/fa-solid-900.woff2) format("woff2"),url(fonts/fa-solid-900.woff) format("woff"),url(fonts/fa-solid-900.ttf) format("truetype"),url(fonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.far,.fas{font-family:Font Awesome\ 5 Free}.fa,.fas{font-weight:900}.tykon:before{font-family:tykon,sans-serif!important;font-style:normal!important;font-variant:normal!important;font-weight:400!important;line-height:1;text-transform:none!important;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.tykon-arrowdown:before{content:"\61"}.tykon-arrowleft:before{content:"\62"}.tykon-arrowright:before{content:"\63"}.tykon-arrowup:before{content:"\64"}.tykon-doublearrowdown:before{content:"\65"}.tykon-filter:before{content:"\66"}.tykon-graph1:before{content:"\67"}.tykon-graph2:before{content:"\68"}.tykon-label:before{content:"\69"}.tykon-reload:before{content:"\6a"}.tykon-select:before{content:"\6b"}.tykon-target:before{content:"\6c"}.tykon-undo:before{content:"\6d"}.tykon-deployment:before{content:"\6e"}.tykon-team:before{content:"\6f"}.tykon-overview:before{content:"\70"}.tykon-loadout:before{content:"\71"}.tykon-entitlement:before{content:"\72"}.tykon-users:before{content:"\73"}.tykon-arrowsort:before{content:"\57"}.tykon-check:before{content:"\56"}.tykon-copy:before{content:"\43"}.tykon-delete:before{content:"\55"}.tykon-download:before{content:"\4c"}.tykon-draft:before{content:"\44"}.tykon-edit:before{content:"\45"}.tykon-graphq2:before{content:"\68"}.tykon-help:before{content:"\3f"}.tykon-link:before{content:"\52"}.tykon-lock1:before{content:"\59"}.tykon-lock2:before{content:"\5A"}.tykon-notifications:before{content:"\4E"}.tykon-plus:before{content:"\2B"}.tykon-profile:before{content:"\50"}.tykon-search:before{content:"\4F"}.tykon-settings:before{content:"\53"}.tykon-warning:before{content:"\21"}.tykon-x:before{content:"\58"}.tykon-waiting:before{content:"\54"}.tykon-fullscreen:before{content:"\e000"}.tykon-fullscreen-exit:before{content:"\e001"}.tykon-time:before{content:"\74"}h1,h2,h3,h4,h5,h6{color:var(--headings-color);font-family:var(--headings-font-family);font-weight:var(--headings-font-weight);margin-block-end:var(--headings-margin-bottom)}label{color:var(--label-color);display:inline-block;margin-block-end:5px;max-inline-size:100%}h1{font-size:var(--xxl-font-size);line-height:var(--xxl-line-height)}h2{font-size:var(--xl-font-size);line-height:var(--xl-line-height)}h3{font-size:var(--lg-font-size);line-height:var(--lg-line-height)}h4{font-size:var(--md-font-size);line-height:var(--md-line-height)}h5{font-size:var(--sm-font-size);line-height:var(--sm-line-height)}h6{font-size:var(--xs-font-size);line-height:var(--xs-line-height)}label,p{font-family:var(--font-family-regular);font-size:var(--sm-font-size);line-height:var(--sm-line-height);a{font-size:var(--sm-font-size);text-decoration:underline}}strong{font-family:var(--font-family-bold)}a:not(.tyk-button){color:var(--text-color);cursor:pointer;font-family:var(--font-family-regular);&.link--bold{font-family:var(--font-family-bold)}+a{margin-inline-start:5px}i{font-size:9px}}.font-family-regular{font-family:var(--font-family-regular)}.font-family-medium{font-family:var(--font-family-medium)}.font-family-bold{font-family:var(--font-family-bold)}.heading-font-family-regular{font-family:var(--headings-font-family-regular)}.heading-font-family-medium{font-family:var(--headings-font-family-medium)}.heading-font-family-bold{font-family:var(--headings-font-family-bold)}.text--info{color:var(--color-info-base)}.text--medium{font-family:var(--font-family-medium)}.text--bold{font-family:var(--font-family-bold)}.text--uppercase{text-transform:uppercase}.text--ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--underline{text-decoration:underline}.text--default-light{color:var(--color-default-light)!important}.text--default{color:var(--color-default-base)!important}.text--primary{color:var(--color-primary-base)!important}.text--danger{color:var(--color-danger-base)!important}.text--success{color:var(--color-success-base)!important}.text--warning{color:var(--color-warning-base)!important}td.text-ellipsis{max-inline-size:250px}.section-title{font-family:var(--headings-font-family-bold);margin-block-end:5px;.tyk-icon{margin-inline-start:5px}}.sub-section-title{font-family:var(--font-family-medium);font-size:var(--md-font-size);line-height:var(--md-line-height);margin-block-end:5px;.tyk-icon{margin-inline-start:5px}}.section-group-title{font-family:var(--font-family-bold);font-size:var(--sm-font-size);line-height:var(--sm-line-height);margin-block-end:5px;text-transform:uppercase;.tyk-icon{margin-inline-start:5px}}.tyk-form-section__title{font-size:var(--base-font-size);margin-block:var(--spacing-xs) var(--spacing-base);margin-inline:0}.tyk-form-section__title--light{color:var(--color-background-dark)}.tyk-form-group{margin-block-end:var(--form-group-margin-bottom);&.has-error .tyk-file-input__wrapper>.tyk-form-control,&.has-error>.tyk-form-control__wrapper>.tyk-form-control,&.has-error>.tyk-form-control__wrapper>.tyk-input-group>.tyk-form-control{border:var(--error-border);border-inline-start:var(--error-border-left);outline:none;&:focus{border-inline-start:2px solid var(--color-danger-dark);border-color:var(--color-danger-dark);outline:none}}label{font-family:var(--font-family-medium)}}.tyk-form-group--inline{align-items:stretch;display:flex;flex-wrap:nowrap;.tyk-form-control__wrapper{flex:1}label{margin-block-start:14px;margin-inline-end:var(--spacing-md);white-space:nowrap}input,label,select{display:flex}.tyk-form-control__help-block{display:flex;margin-inline-start:auto}}.tyk-form-group--default{color:var(--text-color);>.tyk-form-control__wrapper>.tyk-file-input__wrapper>.tyk-form-control,>.tyk-form-control__wrapper>.tyk-form-control,>.tyk-form-control__wrapper>.tyk-input-group>.tyk-form-control{border:var(--general-border-width) solid var(--form-default-color);color:var(--text-color);&[disabled]{background-color:var(--form-control-disabled-background-color);border:var(--general-border-width) solid var(--form-default-color);color:var(--form-control-disabled-color);cursor:not-allowed;+.tyk-input-group__addon{background-color:var(--form-control-disabled-background-color)}}&::placeholder{opacity:.8}&:-ms-input-placeholder{opacity:.8}}&.tyk-form-group--addon-left{.tyk-input-group__addon{border-block:2px solid var(--form-default-color);border-inline-start:2px solid var(--form-default-color);color:var(--text-color)}}&.tyk-form-group--addon-right{.tyk-input-group__addon{border-block:2px solid var(--form-default-color);border-inline-end:2px solid var(--form-default-color);color:var(--text-color)}}}.tyk-form-group--primary{color:var(--text-color);>.tyk-form-control__wrapper>.tyk-file-input__wrapper>.tyk-form-control,>.tyk-form-control__wrapper>.tyk-form-control,>.tyk-form-control__wrapper>.tyk-input-group>.tyk-form-control{border:var(--general-border-width) solid var(--form-primary-color);color:var(--text-color);&[disabled]{background-color:var(--form-control-disabled-background-color);border:var(--general-border-width) solid var(--form-primary-color);color:var(--form-control-disabled-color);cursor:not-allowed;+.tyk-input-group__addon{background-color:var(--form-control-disabled-background-color)}}&::placeholder{opacity:.8}&:-ms-input-placeholder{opacity:.8}}&.tyk-form-group--addon-left{.tyk-input-group__addon{border-block:2px solid var(--form-primary-color);border-inline-start:2px solid var(--form-primary-color);color:var(--form-primary-color)}}&.tyk-form-group--addon-right{.tyk-input-group__addon{border-block:2px solid var(--form-primary-color);border-inline-end:2px solid var(--form-primary-color);color:var(--form-primary-color)}}}.tyk-form-group--success{color:var(--text-color);>.tyk-form-control__wrapper>.tyk-file-input__wrapper>.tyk-form-control,>.tyk-form-control__wrapper>.tyk-form-control,>.tyk-form-control__wrapper>.tyk-input-group>.tyk-form-control{border:var(--general-border-width) solid var(--form-success-color);color:var(--text-color);&[disabled]{background-color:var(--form-control-disabled-background-color);border:var(--general-border-width) solid var(--form-success-color);color:var(--form-control-disabled-color);cursor:not-allowed;+.tyk-input-group__addon{background-color:var(--form-control-disabled-background-color)}}&::placeholder{opacity:.8}&:-ms-input-placeholder{opacity:.8}}&.tyk-form-group--addon-left{.tyk-input-group__addon{border-block:2px solid var(--form-success-color);border-inline-start:2px solid var(--form-success-color);color:var(--form-success-color)}}&.tyk-form-group--addon-right{.tyk-input-group__addon{border-block:2px solid var(--form-success-color);border-inline-end:2px solid var(--form-success-color);color:var(--form-success-color)}}}.tyk-form-group--rounded-corners{&.has-error>.tyk-form-control__wrapper>.tyk-form-control{border-inline-start:var(--error-border);&:focus{border-inline-start:var(--error-border);outline:none}}.tyk-form-control{border-radius:var(--general-border-radius)}}.tyk-form-group--addon-right input{border-inline-end:0!important;padding-inline-end:0}.tyk-form-group--addon-left input{border-inline-start:0!important;padding-inline-start:0}.tyk-form-group--rounded-corners.tyk-form-group--addon-right{input{border-end-end-radius:0;border-start-end-radius:0}.tyk-input-group__addon{background:var(--form-control-addon-background-color);border-end-end-radius:var(--general-border-radius);border-start-end-radius:var(--general-border-radius);color:var(--text-color)}}.tyk-form-group--rounded-corners.tyk-form-group--addon-left{input{border-end-start-radius:0;border-inline-start:0!important;border-start-start-radius:0}.tyk-input-group__addon{background:var(--form-control-addon-background-color);border-end-start-radius:var(--general-border-radius);border-start-start-radius:var(--general-border-radius);color:var(--text-color)}}.tyk-form-control__error-message{font-family:var(--font-family-regular);font-size:var(--xs-font-size);line-height:var(--xs-line-height);margin-block-start:5px;padding:var(--error-message-padding);position:relative;&:before{background:var(--color-danger-base);border-radius:8px;color:#fff;content:"!";display:inline-block;font-family:var(--font-family-bold);margin-inline-end:5px;padding-block:0;padding-inline:7px}}.tyk-input-group{align-items:center;display:flex;outline:none}.tyk-input-group__addon{align-items:center;background-color:var(--form-control-addon-background-color);block-size:var(--form-control-height);border:var(--form-control-border);display:flex;padding-block:var(--form-control-addon-padding-top) var(--form-control-addon-padding-bottom);padding-inline:var(--form-control-addon-padding-left) var(--form-control-addon-padding-right);&:first-child{border-inline-end:0}&:last-child{border-inline-start:0}}.tyk-form-control{background-color:#fff;block-size:var(--form-control-height);border:var(--form-control-border);color:var(--text-color);display:block;font-family:var(--font-family-medium);font-size:var(--sm-font-size);inline-size:100%;line-height:var(--sm-line-height);padding-block:var(--form-control-padding-top) var(--form-control-padding-bottom);padding-inline:var(--form-control-padding-left) var(--form-control-padding-right);transition:all .2s linear;&[disabled]{background-color:var(--form-control-disabled-background-color);cursor:not-allowed;.tyk-input-group__addon{background-color:var(--form-control-disabled-background-color)}}&::placeholder{color:var(--form-control-placeholder-color);font-family:var(--form-control-placeholder-font-family)}&:active,&:focus{border:var(--form-control-border-focus)!important;outline:none;+.tyk-input-group__addon{border:var(--form-control-border-focus)!important;border-inline-start:none!important}}}.tyk-form-control__help-block{color:var(--help-block-color);font-family:var(--font-family-regular);font-size:var(--xs-font-size);font-style:var(--help-block-font-style);line-height:var(--xs-line-height);margin-block:5px 0;margin-inline:0;padding:var(--help-block-padding)}select{appearance:none;border-radius:0}.inline-form-wrapper{align-items:center;display:flex;inline-size:100%;.inline-form{inline-size:100%}>button{margin-block-end:var(--spacing-base);margin-inline-start:10px}}.tyk-checkbox,.tyk-radio{margin-block:10px;margin-inline:0;label{font-family:var(--font-family-medium)}input{margin-block:0;margin-inline:0 5px}}.tyk-checkbox--inline,.tyk-radio--inline{display:inline-flex;margin-inline-start:var(--spacing-base);&:first-child{margin-inline-start:0}}.tyk-inline-form{align-items:center;display:flex;flex-wrap:wrap;.tyk-form-group{flex:1;margin-inline-start:var(--spacing-md);min-inline-size:200px;&:first-child{margin-inline-start:0}}>.tyk-button{margin-block-end:var(--spacing-base);margin-inline-start:var(--spacing-md)}}:root{--accordion-item-header-padding-y:var(--spacing-base);--accordion-item-header-padding-x:var(--spacing-base);--accordion-item-header-font-size:var(--base-font-size);--accordion-item-outside-trigger-width:var(--spacing-xxl)}.tyk-accordion__item{display:grid}.tyk-accordion__item--trigger-position-left{grid-template-areas:"trigger header" "trigger content";grid-template-columns:var(--accordion-item-outside-trigger-width) auto}.tyk-accordion__item--trigger-position-right{grid-template-areas:"header trigger" "content trigger";grid-template-columns:auto var(--accordion-item-outside-trigger-width)}.tyk-accordion__item--trigger-in-header{grid-template-areas:"header" "content";grid-template-columns:auto}.tyk-accordion__trigger-wrapper{align-items:flex-start;display:flex;grid-area:trigger;justify-content:center;.tyk-icon{margin-inline:auto}}.tyk-accordion__item-header>button,.tyk-accordion__trigger{background:none;border:none;cursor:pointer;display:flex;font-size:var(--accordion-item-header-font-size);inline-size:100%;outline:none;padding-block:var(--accordion-item-header-padding-y);padding-inline:var(--accordion-item-header-padding-x);.tyk-icon{margin-inline-start:auto}}.tyk-accordion__item-header{grid-area:header}.tyk-accordion__trigger--disabled{color:var(--color-background-base)}.tyk-accordion__item-header.tyk-accordion__arrow-trigger{align-items:center;display:flex;>div{flex:1}>button{inline-size:auto;margin-inline-start:auto}}.tyk-accordion__item-content{grid-area:content}:root{--button-font-family:var(--font-family-bold);--button-border-radius:var(--spacing-md);--padding-y-button-sm:3px;--padding-x-button-sm:var(--spacing-base);--padding-y-button-md:8px;--padding-x-button-md:23px;--padding-y-button-lg:13px;--padding-x-button-lg:23px;--line-height-button-sm:var(--xs-line-height);--line-height-button-md:var(--md-line-height);--line-height-button-lg:var(--lg-line-height);--button-default-color:var(--color-default-base);--button-default-hover-color:var(--color-default-dark);--button-default-gradient-start-color:var(--color-default-base);--button-default-gradient-end-color:var(--color-default-dark);--button-primary-color:var(--color-default-base-light);--button-primary-hover-color:var(--color-default-dark);--button-primary-text-color:#fff;--button-primary-gradient-start-color:var(--color-primary-base);--button-primary-gradient-end-color:var(--color-primary-dark);--button-success-color:var(--color-success-base);--button-success-hover-color:var(--color-success-dark);--button-success-gradient-start-color:var(--color-success-base);--button-success-gradient-end-color:var(--color-success-dark);--button-danger-color:var(--color-danger-base);--button-danger-hover-color:var(--color-danger-dark);--button-danger-gradient-start-color:var(--color-danger-base);--button-danger-gradient-end-color:var(--color-danger-dark);--button-warning-color:var(--color-warning-base);--button-warning-font-color:#fff;--button-warning-gradient-start-color:var(--color-warning-base);--button-warning-gradient-end-color:var(--color-warning-light);--button-info-color:var(--color-info-base);--button-info-font-color:var(--text-color);--button-info-gradient-start-color:var(--color-info-base);--button-info-gradient-end-color:var(--color-info-light);--button-icon-only-background-hover:var(--color-background-light)}.tyk-button{--button-padding-y:var(--padding-y-button-md);--button-padding-x:var(--padding-x-button-md);--button-font-size:var(--sm-font-size);--button-line-height:var(--line-height-button-md);background-color:transparent;border:none;color:#fff;cursor:pointer;display:inline-block;font-family:var(--button-font-family);text-align:center;text-decoration:none;text-transform:uppercase;transition:all .2s linear;user-select:none;vertical-align:middle;white-space:nowrap;+.tyk-button,+.tyk-dropdown,+.tyk-toggle,i+span,span+i{margin-inline-start:var(--spacing-sm)}&.disabled{cursor:not-allowed;opacity:.7}&:hover{color:#fff;text-decoration:none}&:focus{outline:none}}.tyk-button--white{--button-variant-background:#fff;--button-variant-border:transparent;--button-variant-color:var(--color-default-base);--button-variant-hover-background:var(--color-background-dark);--button-variant-hover-color:#fff}.tyk-button--primary{--button-variant-background:var(--button-primary-color);--button-variant-border:var(--button-primary-color);--button-variant-color:var(--button-primary-text-color);--button-variant-hover-background:var(--button-primary-hover-color);--button-variant-hover-color:var(--button-primary-text-color)}.tyk-button--success{--button-variant-background:var(--button-success-color);--button-variant-border:var(--button-success-color);--button-variant-color:#fff;--button-variant-hover-background:var(--button-success-hover-color);--button-variant-hover-color:#fff}.tyk-button--danger{--button-variant-background:var(--button-danger-color);--button-variant-border:var(--button-danger-color);--button-variant-color:#fff;--button-variant-hover-background:var(--button-danger-hover-color);--button-variant-hover-color:#fff}.tyk-button--warning{--button-variant-background:var(--button-warning-color);--button-variant-border:transparent;--button-variant-color:var(--button-warning-font-color);--button-variant-hover-background:color-mix(in srgb,var(--button-variant-background),#000 15%);--button-variant-hover-color:var(--button-warning-font-color)}.tyk-button--info{--button-variant-background:var(--button-info-color);--button-variant-border:var(--button-info-color);--button-variant-color:#fff;--button-variant-hover-background:color-mix(in srgb,var(--button-variant-background),#000 15%);--button-variant-hover-color:#fff}.tyk-button--default{--button-variant-background:var(--button-default-color);--button-variant-border:var(--button-default-color);--button-variant-color:#fff;--button-variant-hover-background:var(--button-default-hover-color);--button-variant-hover-color:#fff}.tyk-button--danger,.tyk-button--default,.tyk-button--info,.tyk-button--primary,.tyk-button--success,.tyk-button--warning,.tyk-button--white{background-color:var(--button-variant-background);border:var(--general-border-width) solid var(--button-variant-border);color:var(--button-variant-color);&:hover{background-color:var(--button-variant-hover-background);color:var(--button-variant-hover-color)}}.tyk-button--primary-link{--button-variant-link-color:var(--button-primary-color)}.tyk-button--success-link{--button-variant-link-color:var(--button-success-color)}.tyk-button--danger-link{--button-variant-link-color:var(--button-danger-color)}.tyk-button--warning-link{--button-variant-link-color:var(--button-warning-color)}.tyk-button--info-link{--button-variant-link-color:var(--button-info-color)}.tyk-button--default-link{--button-variant-link-color:var(--text-color)}.tyk-button--danger-link,.tyk-button--default-link,.tyk-button--info-link,.tyk-button--primary-link,.tyk-button--success-link,.tyk-button--warning-link{background-color:transparent;border:var(--general-border-width) solid transparent;color:var(--button-variant-link-color);&:hover{background-color:transparent;border-color:var(--button-variant-link-color);color:var(--button-variant-link-color);text-decoration:underline}}.tyk-button--primary-outline{--button-variant-outline-border:var(--button-primary-color);--button-variant-outline-color:var(--button-primary-color);--button-variant-outline-hover-color:#fff}.tyk-button--success-outline{--button-variant-outline-border:var(--button-success-color);--button-variant-outline-color:var(--button-success-color);--button-variant-outline-hover-color:#fff}.tyk-button--danger-outline{--button-variant-outline-border:var(--button-danger-color);--button-variant-outline-color:var(--button-danger-color);--button-variant-outline-hover-color:#fff}.tyk-button--warning-outline{--button-variant-outline-border:var(--button-warning-color);--button-variant-outline-color:var(--button-warning-color);--button-variant-outline-hover-color:#fff}.tyk-button--info-outline{--button-variant-outline-border:var(--button-info-color);--button-variant-outline-color:var(--button-info-color);--button-variant-outline-hover-color:#fff}.tyk-button--default-outline{--button-variant-outline-border:var(--button-default-color);--button-variant-outline-color:var(--button-default-color);--button-variant-outline-hover-color:#fff}.tyk-button--danger-outline,.tyk-button--default-outline,.tyk-button--info-outline,.tyk-button--primary-outline,.tyk-button--success-outline,.tyk-button--warning-outline{background-color:transparent;border:var(--general-border-width) solid var(--button-variant-outline-border);color:var(--button-variant-outline-color);&:hover{background-color:var(--button-variant-outline-border);color:var(--button-variant-outline-hover-color)}&.disabled{color:var(--button-variant-outline-border);&:hover{background-color:transparent;color:var(--button-variant-outline-border)}}}.tyk-button--primary-gradient{--button-variant-gradient-left-color:var(--button-primary-gradient-start-color);--button-variant-gradient-right-color:var(--button-primary-gradient-end-color)}.tyk-button--success-gradient{--button-variant-gradient-left-color:var(--button-success-gradient-start-color);--button-variant-gradient-right-color:var(--button-success-gradient-end-color)}.tyk-button--danger-gradient{--button-variant-gradient-left-color:var(--button-danger-gradient-start-color);--button-variant-gradient-right-color:var(--button-danger-gradient-end-color)}.tyk-button--warning-gradient{--button-variant-gradient-left-color:var(--button-warning-gradient-start-color);--button-variant-gradient-right-color:var(--button-warning-gradient-end-color);--button-variant-gradient-color:var(--button-warning-font-color)}.tyk-button--info-gradient{--button-variant-gradient-left-color:var(--button-info-gradient-start-color);--button-variant-gradient-right-color:var(--button-info-gradient-end-color);--button-variant-gradient-color:var(--button-info-font-color)}.tyk-button--default-gradient{--button-variant-gradient-left-color:var(--button-default-gradient-start-color);--button-variant-gradient-right-color:var(--button-default-gradient-end-color)}.tyk-button--danger-gradient,.tyk-button--default-gradient,.tyk-button--info-gradient,.tyk-button--primary-gradient,.tyk-button--success-gradient,.tyk-button--warning-gradient{background:transparent linear-gradient(to right,var(--button-variant-gradient-left-color),var(--button-variant-gradient-right-color),var(--button-variant-gradient-left-color));background-clip:border-box;background-origin:border-box;background-position:0 0;background-size:200% auto;border-image:linear-gradient(to right,var(--button-variant-gradient-left-color),var(--button-variant-gradient-right-color),var(--button-variant-gradient-left-color)) 0 round;color:var(--button-variant-gradient-color,#fff);&:active,&:active:focus,&:hover{background:transparent linear-gradient(to right,var(--button-variant-gradient-left-color),var(--button-variant-gradient-right-color),var(--button-variant-gradient-left-color));background-clip:border-box;background-position:100% 0;background-size:200% auto;border-image:linear-gradient(to right,var(--button-variant-gradient-left-color),var(--button-variant-gradient-right-color),var(--button-variant-gradient-left-color)) 0 round;&.disabled{background:transparent linear-gradient(to right,var(--button-variant-gradient-left-color),var(--button-variant-gradient-right-color),var(--button-variant-gradient-left-color));background-clip:border-box;background-origin:border-box;background-position:0 0;background-size:200% auto;border-image:linear-gradient(to right,var(--button-variant-gradient-left-color),var(--button-variant-gradient-right-color),var(--button-variant-gradient-left-color)) 0 round;color:var(--button-variant-gradient-color,#fff)}}}.tyk-button--sm{--button-padding-y:var(--padding-y-button-sm);--button-padding-x:var(--padding-x-button-sm);--button-font-size:var(--xs-font-size);--button-line-height:var(--xs-line-height)}.tyk-button--md{--button-padding-y:var(--padding-y-button-md);--button-padding-x:var(--padding-x-button-md);--button-font-size:var(--sm-font-size);--button-line-height:var(--sm-line-height)}.tyk-button--lg{--button-padding-y:var(--padding-y-button-lg);--button-padding-x:var(--padding-x-button-lg);--button-font-size:var(--md-font-size);--button-line-height:var(--line-height-button-md)}.tyk-button,.tyk-button--lg,.tyk-button--md,.tyk-button--sm{border-radius:var(--button-border-radius);font-size:var(--button-font-size);line-height:var(--button-line-height);padding-block:var(--button-padding-y);padding-inline:var(--button-padding-x)}.tyk-button--icon-only{border-radius:var(--general-border-radius);inline-size:24px;line-height:var(--spacing-md);padding:0;&:hover{border-radius:var(--general-border-radius)}}.tyk-button--fit{block-size:auto;inline-size:auto;line-height:normal}.tyk-button--no-style{background:transparent;border:none;color:var(--text-color);&:hover{background:transparent;border:none;color:var(--text-color)}}.tyk-button-group__wrapper{display:inline-block;position:relative;vertical-align:middle;label{font-family:var(--font-family-medium)}+.tyk-button,+.tyk-button-group__wrapper,+.tyk-dropdown,+.tyk-toggle{margin-inline-start:var(--spacing-sm)}.tyk-button-group{display:flex;>.tyk-button-group:not(:first-child){>.tyk-button{border-end-start-radius:0;border-start-start-radius:0}}>.tyk-button-group:not(:last-child){>.tyk-button{border-end-end-radius:0;border-start-end-radius:0}}.tyk-button{border-radius:0;+.tyk-button,+.tyk-dropdown{margin-inline-start:0}&:first-child{border-end-start-radius:var(--spacing-md);border-start-start-radius:var(--spacing-md)}&:last-child{border-end-end-radius:var(--spacing-md);border-start-end-radius:var(--spacing-md);&.tyk-button--icon-only{inline-size:42px}}}}}.tyk-card{background-color:#fff;border:1px solid var(--color-background-base);border-radius:8px;box-shadow:2px 2px 3px var(--color-background-base);display:flex;flex-direction:column;overflow:hidden}.tyk-card__header{align-items:center;display:flex;font-family:var(--font-inter-regular);font-size:var(--sm-font-size);padding-block:var(--spacing-base) 0;padding-inline:var(--spacing-base)}.tyk-card__header-right{margin-inline-start:auto}.tyk-card__title-group{align-items:center;display:grid;grid-template-columns:auto 1fr;.tyk-card__title-icon{align-items:center;block-size:42px;display:flex;grid-row:span 2;inline-size:42px;justify-content:center;margin-inline-end:10px}}.tyk-card__title{display:-webkit-box;font-family:var(--font-inter-bold);font-size:var(--lg-font-size);-webkit-box-orient:vertical;margin:0;overflow:hidden;text-overflow:ellipsis}.tyk-card__title--max-1-lines{-webkit-line-clamp:1}.tyk-card__title--max-2-lines{-webkit-line-clamp:2}.tyk-card__sub-title{font-family:var(--font-inter-medium);font-size:var(--xs-font-size);margin:0}.tyk-card__sub-title+.tyk-card__summary,.tyk-card__title+.tyk-card__summary,.tyk-card__title-group+.tyk-card__summary{margin-block-start:var(--spacing-sm)}.tyk-card__summary{color:var(--text-color);display:-webkit-box;font-family:var(--font-inter-regular);font-size:var(--sm-font-size);-webkit-box-orient:vertical;margin:0;overflow:hidden;text-overflow:ellipsis}.tyk-card__summary--max-1-lines{-webkit-line-clamp:1}.tyk-card__summary--max-2-lines{-webkit-line-clamp:2}.tyk-card__summary--max-3-lines{-webkit-line-clamp:3}.tyk-card__summary--max-4-lines{-webkit-line-clamp:4}.tyk-card__summary--max-5-lines{-webkit-line-clamp:5}.tyk-card__body{display:flex;flex:1 0 auto;flex-grow:1;padding:var(--spacing-base)}.tyk-card__body--align-top{align-items:flex-start}.tyk-card__body--align-center{align-items:center}.tyk-card__body--align-bottom{align-items:flex-end}.tyk-card__footer{border-block-start:1px solid var(--color-background-base);display:flex;justify-content:end;padding:var(--spacing-base)}.tyk-chart__wrapper{position:relative}.tyk-chart--loading-chart,.tyk-chart--no-data{filter:blur(var(--spacing-sm))}.collapse-exit,.collapse-exit-active,.collapse-exit-done{block-size:0}.collapse-wrapper{overflow:hidden;transition:all .2s}.collapse-horizontal-exit,.collapse-horizontal-exit-active,.collapse-horizontal-exit-done{inline-size:0}.collapse-horizontal-enter,.collapse-horizontal-enter-active,.collapse-horizontal-enter-done{inline-size:100%}.tyk-copy-to-clipboard{inset-block-start:-1000px;inset-inline-start:-1000px;position:absolute}:root{--fixed-wrapper-top:0;--fixed-wrapper-left:0;--fixed-wrapper-right:0}.tyk-fixed-wrapper{inset-block-start:var(--fixed-wrapper-top);inset-inline-end:var(--fixed-wrapper-right);inset-inline-start:var(--fixed-wrapper-left);position:sticky;z-index:8}.tyk-fixed-wrapper--scrolled{box-shadow:2px 2px 5px rgba(0,0,0,.1)}.floating-container{inset-block-start:-9999px;overflow:auto;position:fixed;z-index:var(--modal-z-index,1080)}.floating-container__content-wrapper{block-size:100%}.tyk-icon{+.tyk-icon{margin-inline-start:var(--spacing-sm)}}.tyk-infinite-scroller{block-size:100%;overflow:hidden;position:relative;.loading{background:linear-gradient(180deg,hsla(0,0%,100%,0),#fff);display:flex;inline-size:100%;inset-block-end:0;inset-block-start:auto;inset-inline:0;justify-content:center;padding-block:var(--spacing-base);padding-inline:0}}.tyk-infinite-scroller__wrapper{block-size:100%;overflow-y:auto}.tyk-info-note{border-radius:0;position:relative;p+p{margin-block-start:var(--spacing-base)}&:after{block-size:0;border-color:transparent var(--color-info-base) transparent transparent;border-style:solid;border-width:0 var(--spacing-md) var(--spacing-md) 0;content:"";inline-size:0;inset-block-start:0;inset-inline-end:0;position:absolute}.tyk-message{border-radius:0;padding-block:40px}}.tyk-loading__wrapper{background:hsla(0,0%,100%,.6);inset:0;position:absolute;z-index:99}.loader-wrapper{min-block-size:100px;position:relative}.loading{inset-block-start:calc(50% - var(--spacing-sm));inset-inline-start:50%;position:absolute;&.relative{inline-size:100%;inset-block-start:auto;inset-inline-start:auto;padding:25px;position:relative;text-align:center}}.loading-bar{animation:loading 1s ease-in-out infinite;block-size:var(--spacing-md);border-radius:4px;display:inline-block;inline-size:4px;margin-inline-start:2px}.loading-bar:first-child{animation-delay:0;background-color:var(--color-success-base);opacity:1}.loading-bar:nth-child(2){animation-delay:.09s;background-color:var(--color-success-base);opacity:.8}.loading-bar:nth-child(3){animation-delay:.18s;background-color:var(--color-success-base);opacity:.6}.loading-bar:nth-child(4){animation-delay:.27s;background-color:var(--color-success-base);opacity:.4}@keyframes loading{0%{transform:scale(1)}20%{transform:scaleY(2.2)}40%{transform:scale(1)}}.tyk-list{border:var(--general-border-width) solid var(--color-default-light);border-radius:var(--general-border-radius);font-size:var(--sm-font-size);list-style-type:none;margin:0;max-block-size:191px;overflow:auto;padding:0;li{border-block-end:1px solid var(--color-default-light);font-family:var(--font-family-medium);padding-block:var(--spacing-sm);padding-inline:var(--spacing-md);&.tyk-list__item--selected{background-color:var(--color-default-light)}&:last-child{border:none}}}.tyk-list--with-inline-label{display:flex;>label{margin-inline-end:var(--spacing-md)}}.tyk-list--default{border-color:var(--color-default-light)}.tyk-list--primary{border-color:var(--color-primary-base);li{border-color:var(--color-primary-light);color:var(--text-color);&.tyk-list__item--selected{background-color:var(--color-primary-light)}}}.tyk-list--primary-light{border-color:var(--color-primary-light);li{border-color:var(--color-primary-light);color:var(--text-color);&.tyk-list__item--selected{background-color:var(--color-primary-light)}}}.tyk-list--success{border-color:var(--color-success-base);color:var(--color-success-base);li{border-color:var(--color-success-base);&.tyk-list__item--selected{background-color:var(--color-success-light)}}}.tyk-list--danger{border-color:var(--color-danger-base);color:var(--text-color);li{border-color:var(--color-danger-light);&.tyk-list__item--selected{background-color:var(--color-danger-light)}}}ul.tyk-list--inline{align-items:center;display:flex;li{padding-block:0;padding-inline:var(--spacing-sm)}&.tyk-list--with-separator{li:not(:first-child){border-inline-start:1px solid var(--color-default-base)}}}:root{--tyk-message-padding-top:var(--spacing-md);--tyk-message-padding-right:var(--spacing-md);--tyk-message-padding-bottom:var(--spacing-md);--tyk-message-padding-left:var(--spacing-md);--tyk-message-border-radius:var(--general-border-radius);--tyk-message-default-background:var(--color-primary-light);--tyk-message-default-border:var(--color-default-dark);--tyk-message-default-text-color:var(--color-default-dark);--tyk-message-info-background:var(--color-info-light);--tyk-message-info-border:var(--color-info-base);--tyk-message-info-text-color:var(--color-info-base);--tyk-message-success-background:var(--color-success-light);--tyk-message-success-border:var(--color-success-dark);--tyk-message-success-text-color:var(--color-success-dark);--tyk-message-warning-background:var(--color-warning-light);--tyk-message-warning-border:var(--color-warning-base);--tyk-message-warning-text-color:var(--color-warning-dark);--tyk-message-danger-background:var(--color-danger-extra-light);--tyk-message-danger-border:var(--color-danger-base);--tyk-message-danger-text-color:var(--color-danger-dark)}.tyk-message{align-items:center;border-radius:var(--tyk-message-border-radius);display:flex;margin-block-end:var(--spacing-md);padding-block:var(--tyk-message-padding-top) var(--tyk-message-padding-bottom);padding-inline:var(--tyk-message-padding-left) var(--tyk-message-padding-right);>.tyk-icon:first-child{block-size:32px;border-radius:50%;color:#fff;flex-shrink:0;inline-size:32px;&:before{align-items:center;block-size:100%;display:flex;inline-size:100%;justify-content:center}}>.tyk-icon:last-child{cursor:pointer}}.tyk-message__content{flex-grow:1;margin-inline:var(--spacing-md)}.tyk-message--default{--message-variant-background:var(--tyk-message-default-background);--message-variant-border:var(--tyk-message-default-border);--message-variant-color:var(--tyk-message-default-text-color);>.tyk-icon:first-child{transform:rotate(180deg)}}.tyk-message--info{--message-variant-background:var(--tyk-message-info-background);--message-variant-border:var(--tyk-message-info-border);--message-variant-color:var(--tyk-message-info-text-color)}.tyk-message--success{--message-variant-background:var(--tyk-message-success-background);--message-variant-border:var(--tyk-message-success-border);--message-variant-color:var(--tyk-message-success-text-color)}.tyk-message--warning{--message-variant-background:var(--tyk-message-warning-background);--message-variant-border:var(--tyk-message-warning-border);--message-variant-color:var(--tyk-message-warning-text-color)}.tyk-message--danger{--message-variant-background:var(--tyk-message-danger-background);--message-variant-border:var(--tyk-message-danger-border);--message-variant-color:var(--tyk-message-danger-text-color)}.tyk-message--danger,.tyk-message--default,.tyk-message--info,.tyk-message--success,.tyk-message--warning{background-color:var(--message-variant-background);border:var(--general-border-width) solid var(--message-variant-border);color:var(--message-variant-color);&>.tyk-icon:first-child{background-color:var(--message-variant-border)}}:root{--tyk-modal-body-padding:var(--spacing-lg);--tyk-modal-footer-padding:var(--spacing-lg);--tyk-modal-header-padding:var(--spacing-lg);--tyk-modal-borders-color:var(--color-background-light)}.tyk-modal{--theme-header-height:15px;--theme-header-icon-size:65px;align-items:center;inset:0;pointer-events:none;position:fixed;z-index:-1;.tyk-panel{border:var(--general-border-width) solid var(--color-background-dark);box-shadow:none}.tyk-modal__dialog{opacity:0;transition:all .2s ease}&.opened{display:flex;z-index:var(--modal-z-index);.tyk-modal__dialog{display:flex;max-block-size:92vh;opacity:1;pointer-events:all}}&.appear-enter-done{.tyk-modal__dialog{margin-block-start:0;opacity:1}}}.tyk-modal__theme-header{block-size:var(--theme-header-height);border-start-end-radius:var(--general-border-radius);border-start-start-radius:var(--general-border-radius);inset-block-start:-1px;inset-inline:0;position:absolute;.tyk-icon{align-items:center;block-size:var(--theme-header-icon-size);border-radius:50%;color:#fff;display:flex;font-size:var(--xxl-font-size);inline-size:var(--theme-header-icon-size);inset-block-start:calc((var(--theme-header-icon-size) - var(--theme-header-height))/-2);inset-inline-start:calc(50% - var(--theme-header-icon-size)/2);justify-content:center;position:absolute}}.tyk-modal--theme-success{.tyk-modal__theme-header{background-color:var(--color-success-base);.tyk-icon{background-color:var(--color-success-base)}}}.tyk-modal--theme-warning{.tyk-modal__theme-header{background-color:var(--color-warning-base);.tyk-icon{background-color:var(--color-warning-base)}}}.tyk-modal--theme-danger{.tyk-modal__theme-header{background-color:var(--color-danger-base);.tyk-icon{background-color:var(--color-danger-base)}}}.tyk-modal__dialog{inline-size:85%;margin-block-end:0;margin-block-start:-5%;margin-inline:auto;opacity:0;pointer-events:all;transition:all .2s linear}@media only screen and (width >= 768px){.tyk-modal__dialog{inline-size:600px;&.tyk-modal--lg{inline-size:800px}}}.tyk-modal__content{background:#fff;border-radius:var(--general-border-radius);display:flex;flex-direction:column;inline-size:100%;position:relative}.tyk-modal__body{flex:1;overflow:auto;padding-block-end:var(--tyk-modal-body-padding);padding-block-start:calc(var(--tyk-modal-body-padding) + (var(--theme-header-icon-size) - var(--theme-header-height))/2);padding-inline:var(--tyk-modal-body-padding);&.no-padding{padding:0}}.tyk-modal__footer{align-items:center;display:flex;justify-content:flex-end;padding:var(--tyk-modal-footer-padding);>:not(:first-child){margin-inline-start:var(--spacing-xs)}}.tyk-modal__backdrop{background-color:var(--color-default-dark);border:none;display:none;inline-size:100%;inset:0;position:fixed;z-index:var(--modal-z-index) - 1;&.opened{display:block;opacity:.5;transition:opacity .2s ease}&.fade-enter-done{opacity:.5;z-index:9}}.tyk-modal__header{align-items:center;border-block-end:1px solid var(--tyk-modal-borders-color);display:flex;inline-size:100%;padding-block-end:var(--tyk-modal-header-padding);padding-block-start:calc(var(--tyk-modal-header-padding) + (var(--theme-header-icon-size) - var(--theme-header-height))/2);padding-inline:var(--tyk-modal-header-padding);.tyk-modal--theme-none &{padding-block-start:var(--tyk-modal-header-padding)}button{margin-inline-start:auto;padding-block:0;padding-inline:5px}+.tyk-modal__body{padding-block-start:var(--tyk-modal-body-padding)}}.tyk-modal__title{font-family:var(--font-family-medium);font-weight:500;inline-size:100%;margin:0}:root{--navigation-background-color:#fff;--navigation-item-padding-y:var(--spacing-sm);--navigation-item-padding-x:var(--spacing-md);--navigation-item-background-color:#fff;--navigation-item-color:var(--text-color);--navigation-item-hover-background-color:var(--color-primary-base);--navigation-item-hover-color:#fff;--navigation-item-active-background-color:var(--color-primary-dark);--navigation-item-active-color:#fff;--navigation-padding:0}.tyk-navigation{background-color:var(--navigation-background-color);block-size:100%;inline-size:100%;overflow:auto;padding:var(--navigation-padding);.tyk-navigation-item{inline-size:100%;a{color:var(--navigation-item-color);display:flex;padding-block:var(--navigation-item-padding-y);padding-inline:var(--navigation-item-padding-x);text-decoration:none;transition:all .2s ease;&:hover{background-color:var(--navigation-item-hover-background-color);color:var(--navigation-item-hover-color)}&.active{background-color:var(--navigation-item-active-background-color);color:var(--navigation-item-active-color)}}}}:root{--nav-bar-background-color:#fff;--nav-bar-text-color:var(--color-default-base);--nav-bar-padding-left:265px;--nav-bar-animate-left:245px;--nav-bar-top-padding:var(--spacing-sm);--nav-bar-bottom-padding:0;--nav-bar-left-padding:var(--spacing-md);--nav-bar-right-padding:var(--spacing-md);--nav-bar-padding:0 var(--nav-bar-right-padding) 0 var(--nav-bar-left-padding);--nav-bar-top:51px;--nav-bar-header-font-size:var(--xxl-font-size);--nav-bar-header-font-family:var(--headings-font-family-bold);--nav-bar-header-line-height:var(--xxl-line-height);--nav-bar-height:92px;--nav-bar-font-family:var(--font-family-regular)}.tyk-nav-bar{align-items:center;background-color:var(--nav-bar-background-color);border:none;color:var(--nav-bar-text-color);font-family:var(--nav-bar-font-family);inline-size:100%;margin:0;padding:var(--nav-bar-padding);transition:all .2s linear;z-index:8;&.tyk-nav-bar__with-tabs .tyk-tabs--default>ul li button{padding-block-start:0}@media screen and (width <= 1024px){padding-inline-start:var(--spacing-md);.menu-opened &{transform:translate(var(--nav-bar-animate-left))}}h1{color:var(--nav-bar-text-color)}h4{margin:0}.tyk-nav-bar__wrapper{align-items:center;block-size:var(--nav-bar-height);display:flex;flex-wrap:wrap;padding-block-end:var(--nav-bar-bottom-padding);&.tyk-nav-bar--align-top{align-items:flex-start}@media screen and (width <= 1024px){padding-inline-start:0}h1{font-family:var(--nav-bar-header-font-family);font-size:var(--nav-bar-header-font-size);line-height:var(--nav-bar-header-line-height);margin:0}h1,h4{padding-inline-end:var(--spacing-sm)}.tyk-nav-bar__container{align-items:center;display:flex;flex-grow:1;justify-content:space-between}.tyk-nav-bar__left{flex-grow:1}.tyk-nav-bar__right{margin-inline-start:auto}}}.tyk-nav-bar__pre{align-self:flex-end;color:var(--text-color);flex-basis:100%;a{color:var(--text-color);font-family:var(--font-family-bold);font-size:var(--xs-font-size);line-height:var(--xs-line-height)}}:root{--padding-y-panel-header:var(--spacing-sm);--padding-x-panel-header:25px;--padding-y-blank-panel-header:var(--spacing-md);--padding-panel-body:25px;--padding-x-right-panel-collapsable:48px;--padding-x-left-panel-collapsable:var(--padding-x-right-panel-collapsable);--panel-border-radius:0;--panel-default-border-bottom-color:var(--color-background-base);--panel-header-font-size:var(--base-font-size);--panel-header-font-family:var(--font-family-medium);--panel-primary-header-color:var(--color-primary-base);--panel-primary-body-color:#fff;--panel-primary-header-text-color:#fff;--panel-primary-body-text-color:var(--text-color);--panel-primary-label-color:var(--text-color);--panel-primary-border-color:none}.tyk-panel{background:#fff;border-radius:var(--panel-border-radius);font-family:var(--font-family-medium);margin-block-end:20px;position:relative;& &.has-error,&.has-error{border:var(--general-border-width) solid var(--color-danger-base)}.tyk-panel{border:var(--general-border-width) solid var(--color-default-light);box-shadow:none}.tyk-panel__header{border:none;font-size:var(--lg-font-size);line-height:var(--lg-line-height)}}.tyk-panel--blank{&.tyk-panel--collapsed{margin-block-end:20px;.tyk-panel__header{margin-block-end:0}}.tyk-panel__header{background-color:#fff;color:var(--color-default-base);margin-block-end:-20px;padding-block:var(--padding-y-blank-panel-header);padding-inline:var(--padding-x-panel-header)}}.tyk-panel--primary{background-color:transparent;.tyk-panel__header{background-color:var(--panel-primary-header-color);border:var(--panel-primary-border-color);color:var(--panel-primary-header-text-color)}.tyk-panel__body{background-color:var(--panel-primary-body-color);color:var(--panel-primary-body-text-color)}& .tyk-form-group{label{color:var(--panel-primary-label-color)}}.tyk-toggle{.tyk-toggle__label{color:var(--panel-primary-label-color)}}}.tyk-panel--success{.tyk-panel__header{background-color:var(--color-success-base);color:#fff}}.tyk-panel--danger{.tyk-panel__header{background-color:var(--color-danger-base);color:#fff}}.tyk-panel--warning{.tyk-panel__header{background-color:var(--color-warning-base);color:#fff}}.tyk-panel__body{background-color:#fff;border-radius:var(--panel-border-radius);font-family:var(--font-family-regular);padding:var(--padding-panel-body);position:relative;transition:block-size .2s;&~.tyk-panel__header{border-end-end-radius:0;border-end-start-radius:0}&.no-padding{padding:0}}.tyk-panel__header{align-items:center;border-block-end:1px solid var(--panel-default-border-bottom-color);border-radius:var(--panel-border-radius);border-end-end-radius:0;border-end-start-radius:0;display:flex;font-family:var(--panel-header-font-family);overflow:hidden;padding-block:var(--padding-y-panel-header);padding-inline:var(--padding-x-panel-header);position:relative;>.tyk-icon,>.tyk-tooltip__wrapper{margin-inline-start:5px}.tyk-panel--collapsed &{border-end-end-radius:var(--panel-border-radius);border-end-start-radius:var(--panel-border-radius)}&~.tyk-panel__body{border-start-end-radius:0;border-start-start-radius:0}& h3{margin:0}ng-transclude{vertical-align:middle}&.collapsable{cursor:pointer;.tyk-panel__icon-collapse--right &{padding-inline-end:var(--padding-x-right-panel-collapsable)}.tyk-panel__icon-collapse--left &{padding-inline-start:var(--padding-x-left-panel-collapsable)}}.collapsable__arrow-right{inset-inline-end:var(--spacing-sm);padding:var(--spacing-sm)}.collapsable__arrow-left,.collapsable__arrow-right{font-size:var(--sm-font-size);inset-block-start:calc(50% - 21px);position:absolute}.collapsable__arrow-left{inset-inline-start:0;padding-block:8px var(--spacing-sm);padding-inline:20px 0}}.tyk-panel__footer{align-items:center;border-block-start:1px solid var(--color-background-light);display:flex;justify-content:flex-end;padding:var(--spacing-lg);>:not(:first-child){margin-inline-start:5px}}.tyk-pill{align-items:center;border-radius:var(--general-border-radius);display:inline-flex;font-family:var(--font-family-medium);font-size:var(--xs-font-size);line-height:19px;margin:var(--pill-margin);padding-block:6px;padding-inline:var(--spacing-base);i{font-size:var(--xs-font-size)}+.tyk-pill{margin-inline-end:var(--spacing-sm)}button+span,span+button{margin-inline-start:var(--spacing-sm)}&:first-child{margin-inline-end:var(--spacing-sm)}&:last-child{margin-inline-end:0}}.tyk-pill--square{border-radius:8px}.tyk-pill--default{background-color:var(--default-pill-background-color);color:var(--default-pill-color);i{color:var(--default-pill-color)}}.tyk-pill--default-outline{box-shadow:var(--default-outline-pill-box-shadow);color:var(--text-color);i{color:var(--text-color)}}.tyk-pill--primary{background-color:var(--color-primary-base);color:#fff;i{color:var(--default-pill-color)}}.tyk-pill--primary-outline{box-shadow:inset 0 0 0 2px var(--color-primary-base);color:var(--text-color);i{color:var(--text-color)}}.tyk-pill--success{background-color:var(--color-success-base);color:#fff;i{color:#fff}}.tyk-pill--success-outline{box-shadow:inset 0 0 0 2px var(--color-success-base);color:var(--text-color);i{color:var(--text-color)}}.tyk-pill--danger{background-color:var(--color-danger-base);color:#fff;i{color:#fff}}.tyk-pill--danger-outline{box-shadow:inset 0 0 0 2px var(--color-danger-base);color:var(--text-color);i{color:var(--text-color)}}.tyk-pill--warning{background-color:var(--color-warning-base);color:#fff;i{color:#fff}}.tyk-pill--warning-outline{box-shadow:inset 0 0 0 2px var(--color-warning-base);color:var(--text-color);i{color:var(--text-color)}}.tyk-pill--info{background-color:var(--color-info-base);color:#fff;i{color:#fff}}.tyk-pill--info-outline{box-shadow:inset 0 0 0 2px var(--color-info-base);color:var(--text-color);i{color:var(--text-color)}}.tyk-ui-reveal-wrapper{align-items:stretch;block-size:100%;display:flex;flex-direction:column;inline-size:100%;inset-block-end:0;inset-inline-start:0;justify-content:flex-end;pointer-events:none;position:absolute;z-index:1000}.tyk-ui-reveal-wrapper__panel{background-color:#fff;display:flex;flex-direction:column;flex-shrink:0;margin:0;max-block-size:calc(100% - 2rem);overflow:auto;padding:0;pointer-events:all}.tyk-ui-reveal-wrapper__hole{background-color:green;flex-grow:1;inline-size:100%;opacity:0;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:-1}.tyk-ui-reveal-wrapper__gutter{align-items:stretch;background-color:var(--color-primary-base);block-size:2rem;box-shadow:0 5px 10px rgba(0,0,0,.3);cursor:row-resize;display:flex;inline-size:100%;justify-content:space-between;pointer-events:all;position:relative;z-index:2}.tyk-ui-reveal-wrapper__gutter__headerleft,.tyk-ui-reveal-wrapper__gutter__headerright{align-items:center;display:flex;flex:1}.tyk-ui-reveal-wrapper__gutter__headerleft{justify-content:flex-start}.tyk-ui-reveal-wrapper__gutter__headerright{justify-content:flex-end}.tyk-ui-reveal-wrapper__gutter__logo{align-self:center;background-image:url(images/drag.svg);block-size:1rem;inline-size:1rem;padding:.2rem;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:2;&:hover{border:dashed}}:root{--sidebar-background-color:#fff;--sidebar-top:58px;--sidebar-height:calc(100vh - 58px);--sidebar-width:280px;--sidebar-padding:0}.tyk-sidebar{background-color:var(--sidebar-background-color);block-size:var(--sidebar-height);flex:0 0 var(--sidebar-width);inset-block-start:var(--sidebar-top);overflow:auto;padding:var(--sidebar-padding);position:sticky}:root{--table-th-padding:var(--spacing-base) var(--spacing-sm);--table-td-padding-y:var(--spacing-xs);--table-td-padding-x:var(--spacing-sm);--table-first-last-padding:20px;--table-pagination-padding:var(--spacing-md) 25px}.tyk-table{background-color:#fff;border-collapse:collapse;border-radius:var(--general-border-radius);border-spacing:0;inline-size:100%;>thead th{border-inline-end:1px solid var(--color-default-light);color:var(--text-color);font-family:var(--font-family-bold);font-size:var(--sm-font-size);line-height:var(--sm-line-height);padding:var(--table-th-padding);text-transform:uppercase;&:last-child{border-inline-end:none}i{font-size:var(--xs-font-size)}.tyk-button{background:none;color:var(--color-default-base);padding:0}}>tbody tr:hover{background:rgba(var(--color-background-light)/40%)}>tbody td{border-inline-end:1px solid var(--color-default-light);font-family:var(--font-family-regular);font-size:var(--sm-font-size);line-height:var(--sm-line-height);padding-block:var(--table-td-padding-y);padding-inline:var(--table-td-padding-x);vertical-align:middle;&:last-child{border-inline-end:none}&.fit{inline-size:1%;white-space:nowrap}input:not([type=checkbox],[type=radio]){margin-block-start:var(--spacing-base)}a{color:var(--text-color);font-family:var(--font-family-medium)}input[type=checkbox],label{margin:0}}tbody>tr{border-block-start:1px solid var(--color-default-light);border-radius:var(--general-border-radius);transition:all .4s linear;&.clickable{cursor:pointer}}>tbody tr td:first-child,>thead tr th:first-child{padding-inline-start:var(--table-first-last-padding);&.with-icon{padding-inline-start:var(--spacing-base)}}>tbody tr td:last-child,>thead tr th:last-child{padding-inline-end:var(--table-first-last-padding);&.with-icon{padding-inline-end:var(--spacing-base)}}.tyk-pagination{padding:var(--table-pagination-padding);li:first-child{margin-inline-start:auto}}.nowrap{white-space:nowrap}.wrap{word-break:break-all}}.tyk-table__wrapper{border:var(--general-border-width) solid var(--color-default-light);border-radius:var(--general-border-radius);overflow:auto;&.no-innner-horizontal-borders{& .tyk-table>tbody td,& .tyk-table>thead th{border-inline-end:none}}}.tyk-table__wrapper--no-border{border:none}.tyk-table-search{padding-block:var(--spacing-sm) 0;padding-inline:25px;label{font-size:var(--sm-font-size);text-transform:uppercase}}.header-sort{padding-block-start:var(--spacing-xs);padding-inline-start:3px;vertical-align:middle}.new-table-pagination{float:inline-end}.selectable>div{margin-inline-start:var(--spacing-md)}.scrollable{display:block;overflow:auto}.fixed-header{background:#fff;inset-block-start:0;position:sticky}.tyk-table.has-error,.tyk-table__wrapper.has-error{border:var(--general-border-width) solid var(--color-danger-base)!important}:root{--tabs-default-content-padding:25px;--tab-button-padding:var(--spacing-sm) 2px 3px 2px;--tab-button-margin:0;--tabs-font-familly:var(--font-family-medium);--tab-button-color:var(--text-color);--tab-active-button-color:var(--text-color);--tab-border-color:var(--color-success-base)}.tyk-tabs--default{>ul{display:flex;list-style-type:none;margin:0;overflow:auto;padding:0;li{display:flex;margin-inline-end:var(--tab-button-margin);white-space:nowrap;&:last-child{margin-inline-end:0}&.active button,button:hover{border-block-end-color:var(--tab-border-color);color:var(--tab-active-button-color);opacity:1}button{background:none;border:none;border-block-end:4px solid transparent;color:var(--tab-button-color);cursor:pointer;font-family:var(--tabs-font-familly);font-size:var(--sm-font-size);margin-inline-end:var(--spacing-md);opacity:.7;padding:var(--tab-button-padding);transition:all .2s linear;&:focus{outline:none}}}}}.tyk-tab__content{padding:var(--tabs-default-content-padding)}.tyk-toast__container{inset-block-end:0;inset-inline-end:var(--spacing-md);min-inline-size:300px;position:fixed;z-index:11}.tyk-toast__message{position:relative}.tyk-toast-message__button{block-size:var(--spacing-md);color:var(--text-color);inline-size:var(--spacing-md);inset-block-start:var(--spacing-xs);inset-inline-end:var(--spacing-xs);line-height:1;padding:var(--spacing-xs);position:absolute;&:hover{background:hsla(0,0%,100%,.3);color:var(--text-color)}}:root{--tooltip-max-width:450px}.tyk-tooltip{align-items:center;background-color:var(--color-primary-light);border:2px solid var(--color-primary-base);border-radius:var(--general-border-radius);display:flex;max-inline-size:var(--tooltip-max-width);padding:var(--spacing-md);>.tyk-icon:first-child{background-color:var(--color-default-base-light);block-size:32px;border-radius:50%;color:#fff;inline-size:32px;&:before{align-items:center;block-size:100%;display:flex;inline-size:100%;justify-content:center}}>.tyk-icon+.tyk-tooltip__content{margin-inline-start:var(--spacing-md)}>.tyk-icon:last-child{cursor:pointer}}.tyk-tooltip__content{color:var(--color-default-dark);word-break:break-word;word-wrap:break-word;+.tyk-icon{margin-inline-start:var(--spacing-md)}}:root{--tyk-combobox-pill-background:#f0f0f0;--tyk-combobox-pill-color:var(--text-color);--tyk-combobox-list-item-hover-color:var(--form-default-color);--tyk-combobox-list-item-disabled-color:var(--form-default-color)}.tyk-combobox2{--container-trigger-width:40px;--values-default-height:38px;outline:none;&.disabled{.tyk-form-control{background-color:var(--form-control-disabled-background-color);border:var(--form-control-disabled-border)!important;color:var(--form-control-disabled-color)}&:not(.is-expand-mode) .tyk-combobox2__values-container-trigger,.tyk-combobox2__current-values .tyk-pill--combobox button,.tyk-form-control{cursor:not-allowed}.tyk-combobox2__entry-field{background-color:transparent;cursor:not-allowed}}.tyk-form-control{block-size:auto;display:flex;flex-direction:row;min-block-size:40px;padding:0;position:relative;&:focus-within{border:var(--form-control-border-focus);outline:none}}}.tyk-combobox2__current-values{display:flex;flex-grow:1;flex-wrap:wrap;max-inline-size:calc(100% - var(--container-trigger-width));padding-block:2px;padding-inline-start:var(--spacing-sm);&.expand-mode{max-block-size:1000px;overflow:hidden;transition:max-block-size 1s ease}.tyk-pill--combobox{background-color:var(--tyk-combobox-pill-background);border-radius:var(--spacing-sm);color:var(--tyk-combobox-pill-color);margin-block:3px;max-block-size:26px;max-inline-size:100%;padding-block:var(--spacing-xs);padding-inline:var(--spacing-sm);button{background:none;border:none;cursor:pointer;inline-size:23px;outline:none;+span{margin-inline-start:0}}span{overflow:hidden;text-overflow:ellipsis}i{margin-inline-end:var(--spacing-xs)}}}.tyk-combobox2__current-values--collapsed.expand-mode{max-block-size:var(--values-default-height);transition:max-block-size .2s ease}.tyk-combobox2__entry-field{border:none;line-height:30px;&:active,&:focus{border:none;outline:none}&::placeholder{color:var(--form-control-placeholder-color);font-family:var(--form-control-placeholder-font-family)}}.tyk-combobox2__text-value{font-family:var(--font-family-medium);font-size:var(--sm-font-size);inline-size:100%;line-height:1;outline:none;overflow:hidden;padding-block:9px;padding-inline:5px;text-overflow:ellipsis;&.overflow-single{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}&.is-placeholder{color:var(--form-control-placeholder-color);font-family:var(--form-control-placeholder-font-family)}}.tyk-combobox2__values-container-trigger{align-items:center;color:var(--text-color);cursor:pointer;display:flex;flex-basis:var(--container-trigger-width);justify-content:center;outline:none;position:relative;transition:all .2s;.tyk-icon{block-size:14px}}.tyk-combobox2__values-container-trigger--expanded{transform:rotate(180deg)}.tyk-form-group--rounded-corners .tyk-combobox2-disabled-overlay{border-radius:calc(var(--general-border-radius) - 2px)}.tyk-combobox2__combobox-dropdown{background-color:#fff;border:var(--general-border-width) solid var(--form-default-color);display:flex;flex-direction:column;&.tyk-form-group--rounded-corners{border-radius:var(--general-border-radius);z-index:1081}.tyk-combobox2__combobox-search{background-color:#fff;inset-block-start:0;padding-block:var(--spacing-sm);padding-inline:var(--spacing-md);position:sticky;+.combobox-list{border-block-start:1px solid var(--form-default-color)}}.tyk-combobox2__combobox-list{max-block-size:255px;li{cursor:pointer;display:flex;font-family:var(--font-family-medium);padding-block:9px;padding-inline:var(--spacing-md);transition:all .2s;&.active,&:hover{background-color:var(--tyk-combobox-list-item-hover-color)}&.disabled{background-color:initial;color:var(--tyk-combobox-list-item-disabled-color)}+li{border-block-start:1px solid var(--form-default-color)}i{margin-inline-end:var(--spacing-xs)}.item-name{line-height:16px;overflow:hidden;text-overflow:ellipsis}}}}:root{--tyk-checkbox-theme-light-label-color:#fff;--tyk-checkbox-theme-light-label-disabled-color:#fff;--tyk-checkbox-theme-dark-label-color:var(--text-color);--tyk-checkbox-theme-dark-label-disabled-color:var(--text-color)}.tyk-checkbox{label{--label-indent:20px;align-items:flex-start;display:flex;padding-inline-start:var(--label-indent);input{margin-block-start:5px;margin-inline-start:calc(var(--label-indent)*-1)}}}.tyk-checkbox--theme-light{label{color:var(--tyk-checkbox-theme-light-label-color)}&.tyk-checkbox--is-disabled{label{color:var(--tyk-checkbox-theme-light-label-disabled-color)}}}.tyk-checkbox--is-disabled{label,p{cursor:not-allowed;opacity:.5}}.flatpickr-calendar{-webkit-animation:none;animation:none;background:transparent;background:#fff;border:0;border-radius:5px;-webkit-box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,.08);box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,.08);-webkit-box-sizing:border-box;box-sizing:border-box;direction:ltr;display:none;font-size:14px;line-height:24px;opacity:0;padding:0;position:absolute;text-align:center;-ms-touch-action:manipulation;touch-action:manipulation;visibility:hidden;width:307.875px}.flatpickr-calendar.inline,.flatpickr-calendar.open{max-height:640px;opacity:1;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{-webkit-animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1);animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{display:block;z-index:999}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){-webkit-box-shadow:none!important;box-shadow:none!important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){-webkit-box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-calendar .hasTime .dayContainer,.flatpickr-calendar .hasWeeks .dayContainer{border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.hasTime .flatpickr-time{border-top:1px solid #e6e6e6;height:40px}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:after,.flatpickr-calendar:before{border:solid transparent;content:"";display:block;height:0;left:22px;pointer-events:none;position:absolute;width:0}.flatpickr-calendar.arrowRight:after,.flatpickr-calendar.arrowRight:before,.flatpickr-calendar.rightMost:after,.flatpickr-calendar.rightMost:before{left:auto;right:22px}.flatpickr-calendar.arrowCenter:after,.flatpickr-calendar.arrowCenter:before{left:50%;right:50%}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:after,.flatpickr-calendar.arrowTop:before{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:after,.flatpickr-calendar.arrowBottom:before{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{display:inline-block;position:relative}.flatpickr-months{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-months .flatpickr-month{background:transparent;line-height:1;overflow:hidden;position:relative;text-align:center;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.flatpickr-months .flatpickr-month,.flatpickr-months .flatpickr-next-month,.flatpickr-months .flatpickr-prev-month{color:rgba(0,0,0,.9);fill:rgba(0,0,0,.9);height:34px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.flatpickr-months .flatpickr-next-month,.flatpickr-months .flatpickr-prev-month{cursor:pointer;padding:10px;position:absolute;text-decoration:none;top:0;z-index:3}.flatpickr-months .flatpickr-next-month.flatpickr-disabled,.flatpickr-months .flatpickr-prev-month.flatpickr-disabled{display:none}.flatpickr-months .flatpickr-next-month i,.flatpickr-months .flatpickr-prev-month i{position:relative}.flatpickr-months .flatpickr-next-month.flatpickr-prev-month,.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month{left:0}.flatpickr-months .flatpickr-next-month.flatpickr-next-month,.flatpickr-months .flatpickr-prev-month.flatpickr-next-month{right:0}.flatpickr-months .flatpickr-next-month:hover,.flatpickr-months .flatpickr-prev-month:hover{color:#959ea9}.flatpickr-months .flatpickr-next-month:hover svg,.flatpickr-months .flatpickr-prev-month:hover svg{fill:#f64747}.flatpickr-months .flatpickr-next-month svg,.flatpickr-months .flatpickr-prev-month svg{height:14px;width:14px}.flatpickr-months .flatpickr-next-month svg path,.flatpickr-months .flatpickr-prev-month svg path{-webkit-transition:fill .1s;transition:fill .1s;fill:inherit}.numInputWrapper{height:auto;position:relative}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper input::-webkit-inner-spin-button,.numInputWrapper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.numInputWrapper span{border:1px solid rgba(57,57,57,.15);-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer;height:50%;line-height:50%;opacity:0;padding:0 4px 0 2px;position:absolute;right:0;width:14px}.numInputWrapper span:hover{background:rgba(0,0,0,.1)}.numInputWrapper span:active{background:rgba(0,0,0,.2)}.numInputWrapper span:after{content:"";display:block;position:absolute}.numInputWrapper span.arrowUp{border-bottom:0;top:0}.numInputWrapper span.arrowUp:after{border-bottom:4px solid rgba(57,57,57,.6);border-left:4px solid transparent;border-right:4px solid transparent;top:26%}.numInputWrapper span.arrowDown{top:50%}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(57,57,57,.6);top:40%}.numInputWrapper span svg{height:auto;width:inherit}.numInputWrapper span svg path{fill:rgba(0,0,0,.5)}.numInputWrapper:hover{background:rgba(0,0,0,.05)}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{color:inherit;display:inline-block;font-size:135%;font-weight:300;height:34px;left:12.5%;line-height:inherit;line-height:1;padding:7.48px 0 0;position:absolute;text-align:center;-webkit-transform:translateZ(0);transform:translateZ(0);width:75%}.flatpickr-current-month span.cur-month{color:inherit;display:inline-block;font-family:inherit;font-weight:700;margin-left:.5ch;padding:0}.flatpickr-current-month span.cur-month:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .numInputWrapper{display:inline-block;width:6ch;width:7ch\0}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:rgba(0,0,0,.9)}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:rgba(0,0,0,.9)}.flatpickr-current-month input.cur-year{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;background:transparent;border:0;border-radius:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;cursor:text;display:inline-block;font-family:inherit;font-size:inherit;font-weight:300;height:auto;line-height:inherit;margin:0;padding:0 0 0 .5ch;vertical-align:initial}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{background:transparent;color:rgba(0,0,0,.5);font-size:100%;pointer-events:none}.flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;-webkit-appearance:menulist;-moz-appearance:menulist;background:transparent;border:none;border-radius:0;box-sizing:border-box;-webkit-box-sizing:border-box;color:inherit;cursor:pointer;font-family:inherit;font-size:inherit;font-weight:300;height:auto;line-height:inherit;margin:-1px 0 0;outline:none;padding:0 0 0 .5ch;position:relative;vertical-align:initial;width:auto}.flatpickr-current-month .flatpickr-monthDropdown-months:active,.flatpickr-current-month .flatpickr-monthDropdown-months:focus{outline:none}.flatpickr-current-month .flatpickr-monthDropdown-months:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:transparent;outline:none;padding:0}.flatpickr-weekdays{background:transparent;overflow:hidden;text-align:center;width:100%;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:28px}.flatpickr-weekdays,.flatpickr-weekdays .flatpickr-weekdaycontainer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-weekdays .flatpickr-weekdaycontainer,span.flatpickr-weekday{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}span.flatpickr-weekday{background:transparent;color:rgba(0,0,0,.54);cursor:default;display:block;font-size:90%;font-weight:bolder;line-height:1;margin:0;text-align:center}.dayContainer,.flatpickr-weeks{padding:1px 0 0}.flatpickr-days{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;overflow:hidden;position:relative;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;width:307.875px}.flatpickr-days:focus{outline:0}.dayContainer{-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;display:-ms-flexbox;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-wrap:wrap;max-width:307.875px;min-width:307.875px;outline:0;padding:0;text-align:left;width:307.875px;-ms-flex-pack:justify;-webkit-justify-content:space-around;justify-content:space-around;opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}.dayContainer+.dayContainer{-webkit-box-shadow:-1px 0 0 #e6e6e6;box-shadow:-1px 0 0 #e6e6e6}.flatpickr-day{background:none;border:1px solid transparent;border-radius:150px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#393939;cursor:pointer;-webkit-flex-basis:14.2857143%;font-weight:400;width:14.2857143%;-ms-flex-preferred-size:14.2857143%;display:inline-block;flex-basis:14.2857143%;height:39px;line-height:39px;margin:0;max-width:39px;position:relative;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center}.flatpickr-day.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day.nextMonthDay:focus,.flatpickr-day.nextMonthDay:hover,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.today.inRange,.flatpickr-day:focus,.flatpickr-day:hover{background:#e6e6e6;border-color:#e6e6e6;cursor:pointer;outline:0}.flatpickr-day.today{border-color:#959ea9}.flatpickr-day.today:focus,.flatpickr-day.today:hover{background:#959ea9;border-color:#959ea9;color:#fff}.flatpickr-day.endRange,.flatpickr-day.endRange.inRange,.flatpickr-day.endRange.nextMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.endRange:focus,.flatpickr-day.endRange:hover,.flatpickr-day.selected,.flatpickr-day.selected.inRange,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.selected:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange,.flatpickr-day.startRange.inRange,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.startRange:focus,.flatpickr-day.startRange:hover{background:#569ff7;border-color:#569ff7;-webkit-box-shadow:none;box-shadow:none;color:#fff}.flatpickr-day.endRange.startRange,.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.endRange.endRange,.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)){-webkit-box-shadow:-10px 0 0 #569ff7;box-shadow:-10px 0 0 #569ff7}.flatpickr-day.endRange.startRange.endRange,.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;-webkit-box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.nextMonthDay,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.prevMonthDay{background:transparent;border-color:transparent;color:rgba(57,57,57,.3);cursor:default}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{color:rgba(57,57,57,.1);cursor:not-allowed}.flatpickr-day.week.selected{border-radius:0;-webkit-box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7;box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{float:left}.flatpickr-weekwrapper .flatpickr-weeks{-webkit-box-shadow:1px 0 0 #e6e6e6;box-shadow:1px 0 0 #e6e6e6;padding:0 12px}.flatpickr-weekwrapper .flatpickr-weekday{float:none;line-height:28px;width:100%}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{background:transparent;border:none;color:rgba(57,57,57,.3);cursor:default;display:block;max-width:none;width:100%}.flatpickr-innerContainer{display:block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;overflow:hidden}.flatpickr-innerContainer,.flatpickr-rContainer{-webkit-box-sizing:border-box;box-sizing:border-box}.flatpickr-rContainer{display:inline-block;padding:0}.flatpickr-time{-webkit-box-sizing:border-box;box-sizing:border-box;display:block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:0;line-height:40px;max-height:40px;outline:0;overflow:hidden;text-align:center}.flatpickr-time:after{clear:both;content:"";display:table}.flatpickr-time .numInputWrapper{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;float:left;height:40px;width:40%}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#393939}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#393939}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;background:transparent;border:0;border-radius:0;-webkit-box-shadow:none;box-shadow:none;-webkit-box-sizing:border-box;box-sizing:border-box;color:#393939;font-size:14px;height:inherit;line-height:inherit;margin:0;padding:0;position:relative;text-align:center}.flatpickr-time input.flatpickr-hour{font-weight:700}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{border:0;outline:0}.flatpickr-time .flatpickr-am-pm,.flatpickr-time .flatpickr-time-separator{-webkit-align-self:center;color:#393939;float:left;font-weight:700;height:inherit;line-height:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:2%;-ms-flex-item-align:center;align-self:center}.flatpickr-time .flatpickr-am-pm{cursor:pointer;font-weight:400;outline:0;text-align:center;width:18%}.flatpickr-time .flatpickr-am-pm:focus,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time input:hover{background:#eee}.flatpickr-input[readonly]{cursor:pointer}@-webkit-keyframes fpFadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fpFadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.flatpickr-day.endRange,.flatpickr-day.endRange.inRange,.flatpickr-day.endRange.nextMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.endRange:focus,.flatpickr-day.endRange:hover,.flatpickr-day.selected,.flatpickr-day.selected.inRange,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.selected:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange,.flatpickr-day.startRange.inRange,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.startRange:focus,.flatpickr-day.startRange:hover{background:var(--color-success-base)!important;border-color:var(--color-success-base)!important}:root{--tyk-dropdown-item-background:#fff;--tyk-dropdown-item-background-hover:var(--color-background-light);--tyk-dropdown-item-border-color:#fff;--tyk-dropdown-item-text-color:var(--text-color);--tyk-dropdown-item-hover-text-color:var(--text-color)}.tyk-dropdown{display:inline-block;+.tyk-button,+.tyk-dropdown,+.tyk-toggle{margin-inline-start:var(--spacing-sm)}label{display:block}&.theme-list .tyk-button{background:#fff;border:var(--general-border-width) solid var(--color-default-base);border-radius:var(--general-border-radius);color:var(--text-color);&:active,&:active:focus,&:focus,&:hover{background:#fff;border-color:var(--color-background-dark);color:var(--text-color)}}}.tyk-dropdown--block{inset-inline:var(--spacing-md)}.tyk-dropdown--relative{inset-inline:auto}.tyk-dropdown--custom{padding-block:var(--spacing-md);padding-inline:25px}.tyk-dropdown__trigger{position:relative}.tyk-dropdown-menu{background:var(--tyk-dropdown-item-background);border:var(--general-border-width) solid var(--color-default-light);border-radius:var(--general-border-radius);filter:drop-shadow(1px 2px 1px rgba(0 0 0/10%));list-style-type:none;margin-block:3px 0;margin-inline:0;overflow:hidden;padding:0;z-index:1081;&.tyk-dropdown--scrollable{overflow:auto}.tyk-panel{margin:0}&.opened{display:flex;flex-direction:column;position:absolute}>li{background:var(--tyk-dropdown-item-background);border-block-end:1px solid var(--tyk-dropdown-item-border-color);display:flex;position:relative;z-index:7;&:last-child{border:none}i{inset-block-start:9px;inset-inline-start:7px;position:absolute}}}.tyk-dropdown-menu>li>a{color:var(--tyk-dropdown-item-text-color);cursor:pointer;display:flex;font-size:12px;inline-size:100%;padding-block:7px;padding-inline:24px;text-decoration:none;text-transform:uppercase;&:hover{background-color:var(--tyk-dropdown-item-background-hover);color:var(--tyk-dropdown-item-hover-text-color);text-decoration:none}.badge{background:var(--text-color);color:#fff;font-size:var(--spacing-sm);margin-block-start:-4px;margin-inline-start:6px}}.tyk-dropdown--relative.opened{position:relative}.dropdown__menu{.tyk-list{background:#fff;max-block-size:none;li{padding:0;&:hover{background:var(--primary-light)}a{cursor:pointer;display:block;padding-block:10px;padding-inline:20px;text-decoration:none}}}}.tyk-editable-list__submit-btn{white-space:nowrap}.tyk-editable-list__form{align-items:center;display:flex;.tyk-form-group{margin-block-end:0}span.inline{margin-block-start:0}>span{margin-inline-start:var(--spacing-base);&.inline-with-label{align-self:flex-end}}}.tyk-editable-list__form--sticked{margin-inline-start:0;button{border-end-end-radius:3px;border-end-start-radius:0;border-start-end-radius:3px;border-start-start-radius:0;padding-block:var(--spacing-sm) 11px;padding-inline:var(--spacing-base)}}.tyk-editable-list__header{background-color:#fff;border:var(--general-border-width) solid var(--color-default-light);border-block-end:1px solid var(--color-default-light)!important;border-start-end-radius:var(--general-border-radius);border-start-start-radius:var(--general-border-radius);color:var(--text-color)!important;font-family:var(--font-family-bold);font-size:11px;margin-block-start:var(--spacing-sm);padding-block:var(--spacing-base);text-transform:uppercase;&+.tyk-editable-list-items.table{border-block-start:none;border-start-end-radius:0;border-start-start-radius:0}.tyk-row{margin:0}}.tyk-editable-list-items{list-style:none;overflow:hidden;padding-block:var(--spacing-md) 0;padding-inline:0;.edit-mode-wrapper.table button{margin-block-start:23px}.tyk-row{margin:0}button[disabled]{cursor:not-allowed}&.tyk-editable-list-items--inline{align-items:center;color:var(--text-color);display:flex;flex-wrap:wrap}li{border-block-start:1px solid var(--color-default-light);transition:all .2s linear;&.tyk-editable-list-item--inline{background-color:var(--color-default-light);border:none;border-radius:25px;color:#fff;float:inline-start;font-family:var(--font-family-medium);margin-block-end:var(--spacing-sm);margin-inline-end:var(--spacing-base);padding-block:0;padding-inline:var(--spacing-base);white-space:nowrap;.tyk-editable-list-item__text{color:var(--text-color);padding-block:var(--spacing-xs);padding-inline:0}.tyk-editable-list-action__button.on-edit{margin-block-start:0}}&:first-child{border-block-start:none}.tyk-editable-list-item__text{display:flex;padding-block:var(--spacing-sm);padding-inline:0;>span{flex-grow:1}>div:first-child{flex-grow:1;.error-message{margin:0}}}.tyk-editable-list-items{overflow:hidden;padding-block-end:var(--spacing-sm)}.tyk-editable-list{background:var(--background-light);border-block-start:var(--spacing-xs) solid var(--background-dark);padding-block:var(--spacing-sm);padding-inline:var(--spacing-base)}}.tyk-editable-list-item__text{display:block;word-wrap:break-word;word-break:break-all}.tyk-editable-list-action__button{background:transparent;border:none;&.on-edit{margin-inline-start:var(--spacing-sm)}}.tyk-editable-list-item-controls{flex-grow:0;text-align:end}}.tyk-editable-list-item__controls{text-align:end}.tyk-editable-list-items.table{background-color:#fff;border:var(--general-border-width) solid var(--color-default-light);border-radius:var(--general-border-radius);padding:0!important;li{border-color:var(--color-default-light);&:hover{background:var(--color-background-light)}}.tyk-editable-list-item__text{background:transparent}.tyk-editable-list-action__button{border-radius:6px;cursor:pointer;margin-inline-end:var(--spacing-sm)}}.editable-list__header{align-items:center;display:flex;margin-block-end:10px;.tyk-button{margin-inline-start:auto}}.editable-list__wrapper.has-error .editable-list__list{border:var(--general-border-width) solid var(--color-danger-base)}.editable-list__list{border:var(--general-border-width) solid var(--color-default-light);border-radius:var(--general-border-radius);display:flex;flex-direction:column-reverse}.editable-list__item{border-block-end:1px solid var(--color-default-light);display:flex;flex-wrap:nowrap;inline-size:100%;&:first-child{border-block-end:none}}.editable-list__item-header{border-block-end:1px solid var(--color-default-light);color:var(--text-color);font-family:var(--font-family-bold);font-size:var(--sm-font-size);line-height:var(--sm-line-height);text-transform:uppercase;.editable-list__item-cell{padding:10px}}.editable-list__item-cell{border-inline-start:1px solid var(--color-default-light);overflow:hidden;padding-block:0;padding-inline:10px;.tyk-form-control--readonly{overflow:hidden;text-overflow:ellipsis;word-break:break-all}&:first-child{border-inline-start:none;padding-inline-start:15px}&:last-child{padding-inline-end:15px}.tyk-form-group{inline-size:100%;margin-block:10px;margin-inline:0}}.editable-list__item--size-1{display:flex;flex-grow:2;inline-size:8.3333333333%}.editable-list__item--size-2{display:flex;flex-grow:3;inline-size:16.6666666667%}.editable-list__item--size-3{display:flex;flex-grow:4;inline-size:25%}.editable-list__item--size-4{display:flex;flex-grow:5;inline-size:33.3333333333%}.editable-list__item--size-5{display:flex;flex-grow:6;inline-size:41.6666666667%}.editable-list__item--size-6{display:flex;flex-grow:7;inline-size:50%}.editable-list__item--size-7{display:flex;flex-grow:8;inline-size:58.3333333333%}.editable-list__item--size-8{display:flex;flex-grow:9;inline-size:66.6666666667%}.editable-list__item--size-9{display:flex;flex-grow:10;inline-size:75%}.editable-list__item--size-10{display:flex;flex-grow:11;inline-size:83.3333333333%}.editable-list__item--size-11{display:flex;flex-grow:12;inline-size:91.6666666667%}.editable-list__item--size-12{display:flex;flex-grow:13;inline-size:100%}.editable-list__item--size-fit{inline-size:fit-content}.editable-list__item-action{align-items:flex-start;display:flex;inline-size:100px;justify-content:center;.tyk-button{margin-block-start:20px}}.editable-list__item-action--read-only{align-items:center;color:var(--color-default-light);.tyk-button{margin-block-start:0}}.tyk-file-input__wrapper{position:relative;>input{padding-block:6px;padding-inline:var(--spacing-md)}>button{background:none;border:none;cursor:pointer;inset-block-start:9px;inset-inline-end:var(--spacing-base);position:absolute}}.tyk-multiselect{align-items:flex-start;border-radius:var(--general-border-radius);display:flex;flex-wrap:wrap;inline-size:100%;margin-block-end:var(--spacing-md);.input-group .input-group-addon+.form-control{border-end-end-radius:0!important;border-end-start-radius:0!important;border-width:1px!important;border-inline-start:none!important;border-start-end-radius:0!important;border-start-start-radius:0!important}.input-group .input-group-addon{background:transparent!important;border-end-end-radius:0!important;border-end-start-radius:0!important;border-width:1px!important;border-inline-end:0!important;border-start-end-radius:0!important;border-start-start-radius:0!important}&.has-error{border:var(--general-border-width) solid var(--color-danger-base)}.tyk-form-group{margin:0}.tyk-multiselect-item__controls{display:flex;flex-wrap:nowrap;margin-inline-start:auto;.tyk-button{color:var(--text-color);margin-inline-start:var(--spacing-xs);&:last-child{margin-inline-start:0}}}}.tyk-multiselect__header{background-color:var(--color-default-base);border-start-end-radius:var(--general-border-radius);border-start-start-radius:var(--general-border-radius);color:#fff;display:flex;inline-size:100%;>div{inline-size:50%;padding-block:var(--spacing-sm);padding-inline:var(--spacing-base)}}.tyk-multiselect__panel-wrapper{block-size:265px;border:var(--form-control-border);border-block-start:none;border-end-end-radius:var(--general-border-radius);border-end-start-radius:var(--general-border-radius);display:flex;flex:1;inline-size:100%}.tyk-multiselect__panel{display:flex;flex-direction:column;inline-size:calc(50% + 1px);margin-block:0;margin-inline:-1px 0;position:relative;&:last-child{border-inline-start:var(--form-control-border);.tyk-form-group{inline-size:calc(100% + 2px);margin-inline-start:-1px}}.tyk-message{margin-block:var(--spacing-md) 0;margin-inline:var(--spacing-md)}}.tyk-multiselect__list{list-style-type:none;margin:0;padding:0;>li{border-block-end:var(--form-control-border);display:flex;flex-direction:column;padding-block:var(--spacing-sm);padding-inline:var(--spacing-base);>div{align-items:start;display:flex;inline-size:100%}.loading{justify-content:center}&:last-child{border-block-end:none}}}.tyk-multiselect__list--scroll{block-size:100%;overflow-y:auto}.tyk-multiselect-item__name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:root{--pagination-border-radius:var(--general-border-radius);--pagination-button-padding:var(--spacing-sm) var(--spacing-base)}.tyk-pagination{display:flex;list-style-type:none;margin-block:var(--spacing-sm);margin-inline:0;padding:0;li{align-items:center;display:flex}li:first-child button{border-end-start-radius:var(--pagination-border-radius);border-start-start-radius:var(--pagination-border-radius)}li:last-child button{border-end-end-radius:var(--pagination-border-radius);border-start-end-radius:var(--pagination-border-radius)}span{margin-block:0;margin-inline:var(--spacing-sm)}button{background:#fff;border:none;color:var(--color-default-base);cursor:pointer;font-family:var(--font-family-bold);font-size:var(--sm-font-size);margin-inline-start:-1px;padding:var(--pagination-button-padding);&:hover{background-color:var(--color-success-light)}}.active button{background-color:var(--color-success-base);color:#fff}}:root{--radio-description-text-padding:0 0 0 20px}.tyk-radio{label{align-items:center;display:flex}}.tyk-radio--is-disabled{label,p{cursor:not-allowed;opacity:.5}}.tyk-radio__description-text{padding:var(--radio-description-text-padding)}.tyk-select{background:transparent url(images/arrow_down.svg) no-repeat calc(100% - 15px);background-size:var(--spacing-base) var(--spacing-base)}.tyk-selectable-list{inline-size:100%;margin-block-end:var(--spacing-md);li:not(.tyk-selectable-list__no-items-message){font-family:var(--font-family-medium);padding:0;.tyk-message{margin-block-end:0}label{font-family:var(--font-family-medium);margin:0}>label{align-items:center;cursor:pointer;display:flex;padding-block:var(--spacing-sm);padding-inline:var(--spacing-md);input[type=checkbox]{margin-inline-start:auto}}}}.tyk-selectable-list__item--with-icon{& input[type=checkbox]{visibility:hidden}}textarea.tyk-form-control{block-size:auto}:root{--toggle-font-family:var(--font-family-bold);--toggle-list-background-color:var(--color-background-light);--toggle-list-text-color:#fff;--toggle-list-background-color-on-dark:#fff;--toggle-list-text-color-on-dark:var(--text-color);--toggle-top:4px;--toggle-bottom:4px;--toggle-label-font-size:var(--sm-font-size);--toggle-label-font-family:var(--font-family-medium);--toggle-label-color:var(--label-color);--toggle-padding:0}.tyk-toggle{display:inline-flex;flex-wrap:wrap;font-family:var(--toggle-font-family);font-size:var(--sm-font-size);line-height:var(--sm-line-height);white-space:nowrap;&.block{inline-size:100%;margin-block-end:var(--spacing-md);+.tyk-toggle{margin-inline-start:0}}&.inline-label{align-items:center;flex-wrap:nowrap}+.tyk-button,+.tyk-dropdown,+.tyk-toggle{margin-inline-start:var(--spacing-sm)}}.tyk-toggle__list--has-error{border:var(--error-border)}.tyk-toggle .tyk-toggle__label{color:var(--toggle-label-color);display:block;font-family:var(--toggle-label-font-family);font-size:var(--toggle-label-font-size);inline-size:100%;padding:var(--toggle-padding)}.tyk-toggle.inline-label .tyk-toggle__label{inline-size:auto;margin-inline-end:var(--spacing-sm)}.tyk-toggle--disabled-true{cursor:not-allowed;opacity:.7}.tyk-toggle--column{.tyk-toggle__list--separated{display:flex;flex-direction:column;margin-inline-end:var(--spacing-md);.tyk-toggle__item{background-color:var(--toggle-list-background-color);margin-inline-end:auto}}}.tyk-toggle__list{background:var(--toggle-list-background-color);border-radius:25px;display:flex;list-style-type:none;margin:0;padding:0;position:relative}.tyk-toggle__list--separated{background:transparent;flex-wrap:wrap}.tyk-toggle--on-dark .tyk-toggle__list{background:var(--toggle-list-background-color-on-dark)}.tyk-toggle--default .tyk-toggle__item--active span{color:#fff}.tyk-toggle--default .tyk-toggle__list--separated .tyk-toggle__item--active,.tyk-toggle--default .tyk-toggle__list--single .tyk-toggle__item--active{background-color:var(--button-default-color);border:var(--general-border-width) solid transparent;color:#fff;&:hover{background-color:var(--button-default-color)}&:hover,span{color:#fff}}.tyk-toggle--primary .tyk-toggle__item--active span{color:#fff}.tyk-toggle--primary .tyk-toggle__list--separated .tyk-toggle__item--active,.tyk-toggle--primary .tyk-toggle__list--single .tyk-toggle__item--active{background-color:var(--color-primary-base);border:var(--general-border-width) solid transparent;color:#fff;&:hover{background-color:var(--color-primary-base)}&:hover,span{color:#fff}}.tyk-toggle--success .tyk-toggle__item--active span{color:#fff}.tyk-toggle--success .tyk-toggle__list--separated .tyk-toggle__item--active,.tyk-toggle--success .tyk-toggle__list--single .tyk-toggle__item--active{background-color:var(--color-success-dark);border:var(--general-border-width) solid transparent;color:#fff;&:hover{background-color:var(--color-success-dark)}&:hover,span{color:#fff}}.tyk-toggle--danger .tyk-toggle__item--active span{color:#fff}.tyk-toggle--danger .tyk-toggle__list--separated .tyk-toggle__item--active,.tyk-toggle--danger .tyk-toggle__list--single .tyk-toggle__item--active{background-color:var(--color-danger-base);border:var(--general-border-width) solid transparent;color:#fff;&:hover{background-color:var(--color-danger-base);color:#fff}}.tyk-toggle--warning .tyk-toggle__item--active span{color:var(--text-color)}.tyk-toggle--warning .tyk-toggle__list--separated .tyk-toggle__item--active,.tyk-toggle--warning .tyk-toggle__list--single .tyk-toggle__item--active{background-color:var(--color-warning-base);border:var(--general-border-width) solid transparent;color:var(--text-color);&:hover{background-color:var(--color-warning-base);color:var(--text-color)}}.tyk-toggle--primary-gradient .tyk-toggle__item--active span{color:#fff}.tyk-toggle--primary-gradient .tyk-toggle__list--separated .tyk-toggle__item--active,.tyk-toggle--primary-gradient .tyk-toggle__list--single .tyk-toggle__item--active{background:transparent linear-gradient(to right,var(--color-primary-base),var(--color-primary-dark),var(--color-primary-base));background-clip:border-box;background-origin:border-box;background-position:0 0;background-size:200% auto;border-image:linear-gradient(to right,var(--color-primary-base),var(--color-primary-dark),var(--color-primary-base)) 0 round;color:#fff;span{color:#fff}}.tyk-toggle--success-gradient .tyk-toggle__item--active span{color:#fff}.tyk-toggle--success-gradient .tyk-toggle__list--separated .tyk-toggle__item--active,.tyk-toggle--success-gradient .tyk-toggle__list--single .tyk-toggle__item--active{background:transparent linear-gradient(to right,var(--color-success-base),var(--color-success-dark),var(--color-success-base));background-clip:border-box;background-origin:border-box;background-position:0 0;background-size:200% auto;border-image:linear-gradient(to right,var(--color-success-base),var(--color-success-dark),var(--color-success-base)) 0 round;color:#fff;span{color:#fff}}.tyk-toggle--danger-gradient .tyk-toggle__item--active span{color:#fff}.tyk-toggle--danger-gradient .tyk-toggle__list--separated .tyk-toggle__item--active,.tyk-toggle--danger-gradient .tyk-toggle__list--single .tyk-toggle__item--active{background:transparent linear-gradient(to right,var(--color-danger-base),var(--color-danger-dark),var(--color-danger-base));background-clip:border-box;background-origin:border-box;background-position:0 0;background-size:200% auto;border-image:linear-gradient(to right,var(--color-danger-base),var(--color-danger-dark),var(--color-danger-base)) 0 round;color:#fff;span{color:#fff}}.tyk-toggle--warning-gradient .tyk-toggle__item--active span{color:#fff}.tyk-toggle--warning-gradient .tyk-toggle__list--separated .tyk-toggle__item--active,.tyk-toggle--warning-gradient .tyk-toggle__list--single .tyk-toggle__item--active{background:transparent linear-gradient(to right,var(--color-warning-light),var(--color-warning-base),var(--color-warning-light));background-clip:border-box;background-origin:border-box;background-position:0 0;background-size:200% auto;border-image:linear-gradient(to right,var(--color-warning-light),var(--color-warning-base),var(--color-warning-light)) 0 round;color:var(--text-color);span{color:#fff}}.tyk-toggle__item{border:2px solid transparent;color:var(--toggle-list-text-color);text-transform:uppercase;z-index:2;&:first-child{border-end-start-radius:25px;border-start-start-radius:25px}&:last-child{border-end-end-radius:25px;border-start-end-radius:25px}.tyk-toggle__list--separated &{border-radius:25px;margin-block:var(--spacing-xs);margin-inline-end:var(--spacing-sm);&:last-child{margin-inline-end:0}}input{display:none}label{cursor:pointer;font-family:var(--toggle-font-family);margin:0;position:relative;transition:all .2s ease;.tyk-toggle__list--single &{padding-inline-start:45px}}}.tyk-toggle__list--single .tyk-toggle__item--active{label{padding-inline-end:45px;padding-inline-start:25px;.tyk-toggle__item-notch{inset-inline-start:calc(100% - 35px)}}}.tyk-toggle--on-dark .tyk-toggle__item:not(.tyk-toggle__item--active){color:var(--toggle-list-text-color-on-dark)}.tyk-toggle--on-dark .tyk-toggle__item-notch--single{background:var(--color-background-light)}.tyk-toggle--sm label{border-radius:var(--button-border-radius);font-size:var(--xs-font-size);line-height:var(--xs-line-height);padding-block:calc(var(--padding-y-button-sm) + 2px);padding-inline:calc(var(--padding-x-button-sm) + 2px)}.tyk-toggle--sm .tyk-toggle__list--single label{padding-inline-start:35px}.tyk-toggle--sm .tyk-toggle__list--single .tyk-toggle__item--active label{padding-inline-end:35px;padding-inline-start:17px;.tyk-toggle__item-notch{inset-inline-start:calc(100% - 27px)}}.tyk-toggle--md label{padding-block:calc(var(--padding-y-button-md) + 2px);padding-inline:calc(var(--padding-x-button-md) + 2px)}.tyk-toggle--lg label,.tyk-toggle--md label{border-radius:var(--button-border-radius);font-size:var(--sm-font-size);line-height:var(--line-height-button-sm)}.tyk-toggle--lg label{padding-block:calc(var(--padding-y-button-lg) + 2px);padding-inline:calc(var(--padding-x-button-lg) + 2px)}.tyk-toggle--lg .tyk-toggle__list--single label{padding-inline-start:45px}.tyk-toggle--lg .tyk-toggle__list--single .tyk-toggle__item--active label{padding-inline-end:45px;padding-inline-start:25px;.tyk-toggle__item-notch{inset-inline-start:calc(100% - 43px)}}.tyk-toggle__item-notch{border-radius:25px;inset-block:2px;position:absolute;transition:all .2s ease}.tyk-toggle__item-notch--single{background:#fff;inline-size:32px;inset-inline-start:2px}.tyk-toggle--sm .tyk-toggle__item-notch--single{inline-size:24px}.tyk-toggle--lg .tyk-toggle__item-notch--single{inline-size:40px}.tyk-toggle__notch{border-radius:25px;inline-size:100px;inset-block-end:var(--toggle-bottom);inset-block-start:var(--toggle-top);inset-inline-start:0;position:absolute;transition:all .2s ease;z-index:1}.tyk-toggle--default .tyk-toggle__notch{--toggle-notch-background:var(--button-default-color);--toggle-notch-border:transparent;--toggle-notch-color:#fff;--toggle-notch-hover-background:var(--button-default-color);--toggle-notch-hover-color:#fff}.tyk-toggle--primary .tyk-toggle__notch{--toggle-notch-background:var(--primary-base);--toggle-notch-border:transparent;--toggle-notch-color:#fff;--toggle-notch-hover-background:var(--primary-base);--toggle-notch-hover-color:#fff}.tyk-toggle--success .tyk-toggle__notch{--toggle-notch-background:var(--success-base);--toggle-notch-border:transparent;--toggle-notch-color:#fff;--toggle-notch-hover-background:var(--success-base);--toggle-notch-hover-color:#fff}.tyk-toggle--danger .tyk-toggle__notch{--toggle-notch-background:var(--color-danger-base);--toggle-notch-border:transparent;--toggle-notch-color:#fff;--toggle-notch-hover-background:var(--color-danger-base);--toggle-notch-hover-color:#fff}.tyk-toggle--warning .tyk-toggle__notch{--toggle-notch-background:var(--color-warning-base);--toggle-notch-border:transparent;--toggle-notch-color:var(--text-color);--toggle-notch-hover-background:var(--color-warning-base);--toggle-notch-hover-color:var(--text-color)}.tyk-toggle--danger .tyk-toggle__notch,.tyk-toggle--default .tyk-toggle__notch,.tyk-toggle--primary .tyk-toggle__notch,.tyk-toggle--success .tyk-toggle__notch,.tyk-toggle--warning .tyk-toggle__notch{background-color:var(--toggle-notch-background);border:var(--general-border-width) solid var(--toggle-notch-border);color:var(--toggle-notch-color);&:hover{background-color:var(--toggle-notch-hover-background);color:var(--toggle-notch-hover-color)}}.tyk-toggle--primary-gradient .tyk-toggle__notch{--toggle-notch-gradient-left-color:var(--color-primary-base);--toggle-notch-gradient-right-color:var(--color-primary-dark);--toggle-notch-gradient-color:#fff}.tyk-toggle--success-gradient .tyk-toggle__notch{--toggle-notch-gradient-left-color:var(--color-success-base);--toggle-notch-gradient-right-color:var(--color-success-dark);--toggle-notch-gradient-color:#fff}.tyk-toggle--danger-gradient .tyk-toggle__notch{--toggle-notch-gradient-left-color:var(--color-danger-base);--toggle-notch-gradient-right-color:var(--color-danger-dark);--toggle-notch-gradient-color:#fff}.tyk-toggle--warning-gradient .tyk-toggle__notch{--toggle-notch-gradient-left-color:var(--color-warning-light);--toggle-notch-gradient-right-color:var(--color-warning-base);--toggle-notch-gradient-color:var(--text-color)}.tyk-toggle--danger-gradient .tyk-toggle__notch,.tyk-toggle--primary-gradient .tyk-toggle__notch,.tyk-toggle--success-gradient .tyk-toggle__notch,.tyk-toggle--warning-gradient .tyk-toggle__notch{background:transparent linear-gradient(to right,var(--toggle-notch-gradient-left-color),var(--toggle-notch-gradient-right-color),var(--toggle-notch-gradient-left-color));background-clip:border-box;background-origin:border-box;background-position:0 0;background-size:200% auto;border-image:linear-gradient(to right,var(--toggle-notch-gradient-left-color),var(--toggle-notch-gradient-right-color),var(--toggle-notch-gradient-left-color)) 0 round;color:var(--toggle-notch-gradient-color)}.empty-toggle{padding:1px}*{box-sizing:border-box}body{background-color:var(--color-background-base);color:var(--text-color);font-family:var(--font-family-regular);font-size:var(--sm-font-size);line-height:var(--sm-line-height)}.tyk-main-wrapper{display:flex;flex-wrap:nowrap}.tyk-main-content-wrapper{flex:1}.well{background:transparent;border:var(--general-border-width) solid var(--color-default-light);border-radius:var(--general-border-radius);box-shadow:none;&.has-error{border-color:var(--color-danger-base)}}.title-medium{color:var(--label-color);font-family:var(--font-family-medium);font-size:var(--title-medium-font-size)}.right-align{text-align:end!important}.left-align{text-align:start!important}.center-align{text-align:center!important}.left{float:inline-start!important}.right{float:inline-end!important}.hide{display:none!important}.no-margin{margin:0!important}.no-margin-bottom{margin-block-end:0!important}.no-margin-top{margin-block-start:0!important}.no-margin-right{margin-inline-end:0!important}.no-margin-left{margin-inline-start:0!important}.disabled-section{color:var(--color-default-light)}.top-buffer-large{margin-block-start:var(--top-buffer-large)!important}.top-buffer-small{margin-block-start:var(--top-buffer-small)!important}.top-buffer-medium{margin-block-start:var(--top-buffer-medium)!important}.bottom-buffer-large{margin-block-end:var(--bottom-buffer-large)!important}.bottom-buffer-small{margin-block-end:var(--bottom-buffer-small)!important}.bottom-buffer-medium{margin-block-end:var(--bottom-buffer-medium)!important}.right-buffer-large{margin-inline-end:var(--right-buffer-large)!important}.right-buffer-small{margin-inline-end:var(--right-buffer-small)!important}.right-buffer-medium{margin-inline-end:var(--right-buffer-medium)!important}.left-buffer-large{margin-inline-start:var(--left-buffer-large)!important}.left-buffer-small{margin-inline-start:var(--left-buffer-small)!important}.left-buffer-medium{margin-inline-start:var(--left-buffer-medium)!important}.word-wrap{word-wrap:break-word;word-break:break-all}.clear-left{clear:inline-start}.flex-container{display:flex}.vertical-center-align{align-items:center}.right-align-controls{align-items:center;display:flex;margin-inline-start:auto}.inline-label{margin-inline-end:15px}.nowrap{white-space:nowrap} + * Font Awesome Pro 6.5.2 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license (Commercial License) + * Copyright 2024 Fonticons, Inc. + */:host,:root{--fa-font-light:normal 300 1em/1 "Font Awesome 6 Pro"}@font-face{font-display:block;font-family:Font Awesome\ 6 Pro;font-style:normal;font-weight:300;src:url(fonts/fontawesome/fa-light-300.woff2) format("woff2"),url(fonts/fontawesome/fa-light-300.ttf) format("truetype")}.fa-light,.fal{font-weight:300} + +/*! + * Font Awesome Pro 6.5.2 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license (Commercial License) + * Copyright 2024 Fonticons, Inc. + */:host,:root{--fa-style-family-classic:"Font Awesome 6 Pro";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Pro"}@font-face{font-display:block;font-family:Font Awesome\ 6 Pro;font-style:normal;font-weight:900;src:url(fonts/fontawesome/fa-solid-900.woff2) format("woff2"),url(fonts/fontawesome/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-weight:900} + +/*! + * Font Awesome Pro 6.5.2 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license (Commercial License) + * Copyright 2024 Fonticons, Inc. + */.fa{font-family:var(--fa-style-family,"Font Awesome 6 Pro");font-weight:var(--fa-style,900)}.fa,.fa-brands,.fa-classic,.fa-duotone,.fa-light,.fa-regular,.fa-sharp,.fa-sharp-solid,.fa-solid,.fa-thin,.fab,.fad,.fal,.far,.fas,.fasl,.fasr,.fass,.fast,.fat{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-classic,.fa-light,.fa-regular,.fa-solid,.fa-thin,.fal,.far,.fas,.fat{font-family:Font Awesome\ 6 Pro}.fa-brands,.fab{font-family:Font Awesome\ 6 Brands}.fa-classic.fa-duotone,.fa-duotone,.fad{font-family:Font Awesome\ 6 Duotone}.fa-sharp,.fasl,.fasr,.fass,.fast{font-family:Font Awesome\ 6 Sharp}.fa-sharp,.fass{font-weight:900}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em)*-1);line-height:inherit;position:absolute;text-align:center;width:var(--fa-li-width,2em)}.fa-border{border-color:var(--fa-border-color,#eee);border-radius:var(--fa-border-radius,.1em);border-style:var(--fa-border-style,solid);border-width:var(--fa-border-width,.08em);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{-webkit-animation-duration:var(--fa-animation-duration,2s);animation-duration:var(--fa-animation-duration,2s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-timing-function:var(--fa-animation-timing,steps(8));animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-transition-delay:0s;transition-delay:0s;-webkit-transition-duration:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@-webkit-keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}24%,8%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}24%,8%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle,0));transform:rotate(var(--fa-rotate-angle,0))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index,auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse,#fff)}.fa-0:before{content:"\30"}.fa-1:before{content:"\31"}.fa-2:before{content:"\32"}.fa-3:before{content:"\33"}.fa-4:before{content:"\34"}.fa-5:before{content:"\35"}.fa-6:before{content:"\36"}.fa-7:before{content:"\37"}.fa-8:before{content:"\38"}.fa-9:before{content:"\39"}.fa-fill-drip:before{content:"\f576"}.fa-arrows-to-circle:before{content:"\e4bd"}.fa-chevron-circle-right:before,.fa-circle-chevron-right:before{content:"\f138"}.fa-wagon-covered:before{content:"\f8ee"}.fa-line-height:before{content:"\f871"}.fa-bagel:before{content:"\e3d7"}.fa-transporter-7:before{content:"\e2a8"}.fa-at:before{content:"\40"}.fa-rectangles-mixed:before{content:"\e323"}.fa-phone-arrow-up-right:before,.fa-phone-arrow-up:before,.fa-phone-outgoing:before{content:"\e224"}.fa-trash-alt:before,.fa-trash-can:before{content:"\f2ed"}.fa-circle-l:before{content:"\e114"}.fa-head-side-goggles:before,.fa-head-vr:before{content:"\f6ea"}.fa-text-height:before{content:"\f034"}.fa-user-times:before,.fa-user-xmark:before{content:"\f235"}.fa-face-hand-yawn:before{content:"\e379"}.fa-gauge-simple-min:before,.fa-tachometer-slowest:before{content:"\f62d"}.fa-stethoscope:before{content:"\f0f1"}.fa-coffin:before{content:"\f6c6"}.fa-comment-alt:before,.fa-message:before{content:"\f27a"}.fa-bowl-salad:before,.fa-salad:before{content:"\f81e"}.fa-info:before{content:"\f129"}.fa-robot-astromech:before{content:"\e2d2"}.fa-ring-diamond:before{content:"\e5ab"}.fa-fondue-pot:before{content:"\e40d"}.fa-theta:before{content:"\f69e"}.fa-face-hand-peeking:before{content:"\e481"}.fa-square-user:before{content:"\e283"}.fa-compress-alt:before,.fa-down-left-and-up-right-to-center:before{content:"\f422"}.fa-explosion:before{content:"\e4e9"}.fa-file-alt:before,.fa-file-lines:before,.fa-file-text:before{content:"\f15c"}.fa-wave-square:before{content:"\f83e"}.fa-ring:before{content:"\f70b"}.fa-building-un:before{content:"\e4d9"}.fa-dice-three:before{content:"\f527"}.fa-tire-pressure-warning:before{content:"\f633"}.fa-wifi-2:before,.fa-wifi-fair:before{content:"\f6ab"}.fa-calendar-alt:before,.fa-calendar-days:before{content:"\f073"}.fa-mp3-player:before{content:"\f8ce"}.fa-anchor-circle-check:before{content:"\e4aa"}.fa-tally-4:before{content:"\e297"}.fa-rectangle-history:before{content:"\e4a2"}.fa-building-circle-arrow-right:before{content:"\e4d1"}.fa-volleyball-ball:before,.fa-volleyball:before{content:"\f45f"}.fa-sun-haze:before{content:"\f765"}.fa-text-size:before{content:"\f894"}.fa-ufo:before{content:"\e047"}.fa-fork:before,.fa-utensil-fork:before{content:"\f2e3"}.fa-arrows-up-to-line:before{content:"\e4c2"}.fa-mobile-signal:before{content:"\e1ef"}.fa-barcode-scan:before{content:"\f465"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-folder-arrow-down:before,.fa-folder-download:before{content:"\e053"}.fa-circle-minus:before,.fa-minus-circle:before{content:"\f056"}.fa-face-icicles:before{content:"\e37c"}.fa-shovel:before{content:"\f713"}.fa-door-open:before{content:"\f52b"}.fa-films:before{content:"\e17a"}.fa-right-from-bracket:before,.fa-sign-out-alt:before{content:"\f2f5"}.fa-face-glasses:before{content:"\e377"}.fa-nfc:before{content:"\e1f7"}.fa-atom:before{content:"\f5d2"}.fa-soap:before{content:"\e06e"}.fa-heart-music-camera-bolt:before,.fa-icons:before{content:"\f86d"}.fa-microphone-alt-slash:before,.fa-microphone-lines-slash:before{content:"\f539"}.fa-closed-captioning-slash:before{content:"\e135"}.fa-calculator-alt:before,.fa-calculator-simple:before{content:"\f64c"}.fa-bridge-circle-check:before{content:"\e4c9"}.fa-sliders-up:before,.fa-sliders-v:before{content:"\f3f1"}.fa-location-minus:before,.fa-map-marker-minus:before{content:"\f609"}.fa-pump-medical:before{content:"\e06a"}.fa-fingerprint:before{content:"\f577"}.fa-ski-boot:before{content:"\e3cc"}.fa-rectangle-sd:before,.fa-standard-definition:before{content:"\e28a"}.fa-h1:before{content:"\f313"}.fa-hand-point-right:before{content:"\f0a4"}.fa-magnifying-glass-location:before,.fa-search-location:before{content:"\f689"}.fa-message-bot:before{content:"\e3b8"}.fa-forward-step:before,.fa-step-forward:before{content:"\f051"}.fa-face-smile-beam:before,.fa-smile-beam:before{content:"\f5b8"}.fa-light-ceiling:before{content:"\e016"}.fa-comment-alt-exclamation:before,.fa-message-exclamation:before{content:"\f4a5"}.fa-bowl-scoop:before,.fa-bowl-shaved-ice:before{content:"\e3de"}.fa-square-x:before{content:"\e286"}.fa-building-memo:before{content:"\e61e"}.fa-utility-pole-double:before{content:"\e2c4"}.fa-flag-checkered:before{content:"\f11e"}.fa-chevron-double-up:before,.fa-chevrons-up:before{content:"\f325"}.fa-football-ball:before,.fa-football:before{content:"\f44e"}.fa-user-vneck:before{content:"\e461"}.fa-school-circle-exclamation:before{content:"\e56c"}.fa-crop:before{content:"\f125"}.fa-angle-double-down:before,.fa-angles-down:before{content:"\f103"}.fa-users-rectangle:before{content:"\e594"}.fa-people-roof:before{content:"\e537"}.fa-arrow-square-right:before,.fa-square-arrow-right:before{content:"\f33b"}.fa-location-plus:before,.fa-map-marker-plus:before{content:"\f60a"}.fa-lightbulb-exclamation-on:before{content:"\e1ca"}.fa-people-line:before{content:"\e534"}.fa-beer-mug-empty:before,.fa-beer:before{content:"\f0fc"}.fa-crate-empty:before{content:"\e151"}.fa-diagram-predecessor:before{content:"\e477"}.fa-transporter:before{content:"\e042"}.fa-calendar-circle-user:before{content:"\e471"}.fa-arrow-up-long:before,.fa-long-arrow-up:before{content:"\f176"}.fa-person-carry-box:before,.fa-person-carry:before{content:"\f4cf"}.fa-burn:before,.fa-fire-flame-simple:before{content:"\f46a"}.fa-male:before,.fa-person:before{content:"\f183"}.fa-laptop:before{content:"\f109"}.fa-file-csv:before{content:"\f6dd"}.fa-menorah:before{content:"\f676"}.fa-union:before{content:"\f6a2"}.fa-chevron-double-left:before,.fa-chevrons-left:before{content:"\f323"}.fa-circle-heart:before,.fa-heart-circle:before{content:"\f4c7"}.fa-truck-plane:before{content:"\e58f"}.fa-record-vinyl:before{content:"\f8d9"}.fa-bring-forward:before{content:"\f856"}.fa-square-p:before{content:"\e279"}.fa-face-grin-stars:before,.fa-grin-stars:before{content:"\f587"}.fa-sigma:before{content:"\f68b"}.fa-camera-movie:before{content:"\f8a9"}.fa-bong:before{content:"\f55c"}.fa-clarinet:before{content:"\f8ad"}.fa-truck-flatbed:before{content:"\e2b6"}.fa-pastafarianism:before,.fa-spaghetti-monster-flying:before{content:"\f67b"}.fa-arrow-down-up-across-line:before{content:"\e4af"}.fa-arrows-rotate-reverse:before{content:"\e630"}.fa-leaf-heart:before{content:"\f4cb"}.fa-house-building:before{content:"\e1b1"}.fa-cheese-swiss:before{content:"\f7f0"}.fa-spoon:before,.fa-utensil-spoon:before{content:"\f2e5"}.fa-jar-wheat:before{content:"\e517"}.fa-envelopes-bulk:before,.fa-mail-bulk:before{content:"\f674"}.fa-file-circle-exclamation:before{content:"\e4eb"}.fa-bow-arrow:before{content:"\f6b9"}.fa-cart-xmark:before{content:"\e0dd"}.fa-hexagon-xmark:before,.fa-times-hexagon:before,.fa-xmark-hexagon:before{content:"\f2ee"}.fa-circle-h:before,.fa-hospital-symbol:before{content:"\f47e"}.fa-merge:before{content:"\e526"}.fa-pager:before{content:"\f815"}.fa-cart-minus:before{content:"\e0db"}.fa-address-book:before,.fa-contact-book:before{content:"\f2b9"}.fa-pan-frying:before{content:"\e42c"}.fa-grid-3:before,.fa-grid:before{content:"\e195"}.fa-football-helmet:before{content:"\f44f"}.fa-hand-love:before{content:"\e1a5"}.fa-trees:before{content:"\f724"}.fa-strikethrough:before{content:"\f0cc"}.fa-page:before{content:"\e428"}.fa-k:before{content:"\4b"}.fa-diagram-previous:before{content:"\e478"}.fa-gauge-min:before,.fa-tachometer-alt-slowest:before{content:"\f628"}.fa-folder-grid:before{content:"\e188"}.fa-eggplant:before{content:"\e16c"}.fa-excavator:before{content:"\e656"}.fa-ram:before{content:"\f70a"}.fa-landmark-flag:before{content:"\e51c"}.fa-lips:before{content:"\f600"}.fa-pencil-alt:before,.fa-pencil:before{content:"\f303"}.fa-backward:before{content:"\f04a"}.fa-caret-right:before{content:"\f0da"}.fa-comments:before{content:"\f086"}.fa-file-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-desktop-arrow-down:before{content:"\e155"}.fa-code-pull-request:before{content:"\e13c"}.fa-pumpkin:before{content:"\f707"}.fa-clipboard-list:before{content:"\f46d"}.fa-pen-field:before{content:"\e211"}.fa-blueberries:before{content:"\e2e8"}.fa-truck-loading:before,.fa-truck-ramp-box:before{content:"\f4de"}.fa-note:before{content:"\e1ff"}.fa-arrow-down-to-square:before{content:"\e096"}.fa-user-check:before{content:"\f4fc"}.fa-cloud-xmark:before{content:"\e35f"}.fa-vial-virus:before{content:"\e597"}.fa-book-alt:before,.fa-book-blank:before{content:"\f5d9"}.fa-golf-flag-hole:before{content:"\e3ac"}.fa-comment-alt-arrow-down:before,.fa-message-arrow-down:before{content:"\e1db"}.fa-face-unamused:before{content:"\e39f"}.fa-sheet-plastic:before{content:"\e571"}.fa-circle-9:before{content:"\e0f6"}.fa-blog:before{content:"\f781"}.fa-user-ninja:before{content:"\f504"}.fa-pencil-slash:before{content:"\e215"}.fa-bowling-pins:before{content:"\f437"}.fa-person-arrow-up-from-line:before{content:"\e539"}.fa-down-right:before{content:"\e16b"}.fa-scroll-torah:before,.fa-torah:before{content:"\f6a0"}.fa-webhook:before{content:"\e5d5"}.fa-blinds-open:before{content:"\f8fc"}.fa-fence:before{content:"\e303"}.fa-arrow-alt-up:before,.fa-up:before{content:"\f357"}.fa-broom-ball:before,.fa-quidditch-broom-ball:before,.fa-quidditch:before{content:"\f458"}.fa-drumstick:before{content:"\f6d6"}.fa-square-v:before{content:"\e284"}.fa-face-awesome:before,.fa-gave-dandy:before{content:"\e409"}.fa-dial-off:before{content:"\e162"}.fa-toggle-off:before{content:"\f204"}.fa-face-smile-horns:before{content:"\e391"}.fa-archive:before,.fa-box-archive:before{content:"\f187"}.fa-grapes:before{content:"\e306"}.fa-person-drowning:before{content:"\e545"}.fa-dial-max:before{content:"\e15e"}.fa-circle-m:before{content:"\e115"}.fa-calendar-image:before{content:"\e0d4"}.fa-caret-circle-down:before,.fa-circle-caret-down:before{content:"\f32d"}.fa-arrow-down-9-1:before,.fa-sort-numeric-desc:before,.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-face-grin-tongue-squint:before,.fa-grin-tongue-squint:before{content:"\f58a"}.fa-shish-kebab:before{content:"\f821"}.fa-spray-can:before{content:"\f5bd"}.fa-alarm-snooze:before{content:"\f845"}.fa-scarecrow:before{content:"\f70d"}.fa-truck-monster:before{content:"\f63b"}.fa-gift-card:before{content:"\f663"}.fa-w:before{content:"\57"}.fa-code-pull-request-draft:before{content:"\e3fa"}.fa-square-b:before{content:"\e264"}.fa-elephant:before{content:"\f6da"}.fa-earth-africa:before,.fa-globe-africa:before{content:"\f57c"}.fa-rainbow:before{content:"\f75b"}.fa-circle-notch:before{content:"\f1ce"}.fa-tablet-alt:before,.fa-tablet-screen-button:before{content:"\f3fa"}.fa-paw:before{content:"\f1b0"}.fa-message-question:before{content:"\e1e3"}.fa-cloud:before{content:"\f0c2"}.fa-trowel-bricks:before{content:"\e58a"}.fa-square-3:before{content:"\e258"}.fa-face-flushed:before,.fa-flushed:before{content:"\f579"}.fa-hospital-user:before{content:"\f80d"}.fa-microwave:before{content:"\e01b"}.fa-chf-sign:before{content:"\e602"}.fa-tent-arrow-left-right:before{content:"\e57f"}.fa-cart-circle-arrow-up:before{content:"\e3f0"}.fa-trash-clock:before{content:"\e2b0"}.fa-reflect-both:before{content:"\e66f"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-sprinkler-ceiling:before{content:"\e44c"}.fa-browsers:before{content:"\e0cb"}.fa-trillium:before{content:"\e588"}.fa-music-slash:before{content:"\f8d1"}.fa-truck-ramp:before{content:"\f4e0"}.fa-binoculars:before{content:"\f1e5"}.fa-microphone-slash:before{content:"\f131"}.fa-box-tissue:before{content:"\e05b"}.fa-circle-c:before{content:"\e101"}.fa-star-christmas:before{content:"\f7d4"}.fa-chart-bullet:before{content:"\e0e1"}.fa-motorcycle:before{content:"\f21c"}.fa-tree-christmas:before{content:"\f7db"}.fa-tire-flat:before{content:"\f632"}.fa-sunglasses:before{content:"\f892"}.fa-badge:before{content:"\f335"}.fa-comment-alt-edit:before,.fa-message-edit:before,.fa-message-pen:before{content:"\f4a4"}.fa-bell-concierge:before,.fa-concierge-bell:before{content:"\f562"}.fa-pen-ruler:before,.fa-pencil-ruler:before{content:"\f5ae"}.fa-file-mp3:before{content:"\e648"}.fa-arrow-progress:before{content:"\e5df"}.fa-chess-rook-alt:before,.fa-chess-rook-piece:before{content:"\f448"}.fa-square-root:before{content:"\f697"}.fa-album-collection-circle-plus:before{content:"\e48e"}.fa-people-arrows-left-right:before,.fa-people-arrows:before{content:"\e068"}.fa-sign-post:before{content:"\e624"}.fa-face-angry-horns:before{content:"\e368"}.fa-mars-and-venus-burst:before{content:"\e523"}.fa-tombstone:before{content:"\f720"}.fa-caret-square-right:before,.fa-square-caret-right:before{content:"\f152"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-list-music:before{content:"\f8c9"}.fa-sun-plant-wilt:before{content:"\e57a"}.fa-toilets-portable:before{content:"\e584"}.fa-hockey-puck:before{content:"\f453"}.fa-mustache:before{content:"\e5bc"}.fa-hyphen:before{content:"\2d"}.fa-table:before{content:"\f0ce"}.fa-user-chef:before{content:"\e3d2"}.fa-comment-alt-image:before,.fa-message-image:before{content:"\e1e0"}.fa-users-medical:before{content:"\f830"}.fa-sensor-alert:before,.fa-sensor-triangle-exclamation:before{content:"\e029"}.fa-magnifying-glass-arrow-right:before{content:"\e521"}.fa-digital-tachograph:before,.fa-tachograph-digital:before{content:"\f566"}.fa-face-mask:before{content:"\e37f"}.fa-pickleball:before{content:"\e435"}.fa-star-sharp-half:before{content:"\e28c"}.fa-users-slash:before{content:"\e073"}.fa-clover:before{content:"\e139"}.fa-meat:before{content:"\f814"}.fa-mail-reply:before,.fa-reply:before{content:"\f3e5"}.fa-star-and-crescent:before{content:"\f699"}.fa-empty-set:before{content:"\f656"}.fa-house-fire:before{content:"\e50c"}.fa-minus-square:before,.fa-square-minus:before{content:"\f146"}.fa-helicopter:before{content:"\f533"}.fa-bird:before{content:"\e469"}.fa-compass:before{content:"\f14e"}.fa-caret-square-down:before,.fa-square-caret-down:before{content:"\f150"}.fa-heart-half-alt:before,.fa-heart-half-stroke:before{content:"\e1ac"}.fa-file-circle-question:before{content:"\e4ef"}.fa-truck-utensils:before{content:"\e628"}.fa-laptop-code:before{content:"\f5fc"}.fa-joystick:before{content:"\f8c5"}.fa-grill-fire:before{content:"\e5a4"}.fa-rectangle-vertical-history:before{content:"\e237"}.fa-swatchbook:before{content:"\f5c3"}.fa-prescription-bottle:before{content:"\f485"}.fa-bars:before,.fa-navicon:before{content:"\f0c9"}.fa-keyboard-left:before{content:"\e1c3"}.fa-people-group:before{content:"\e533"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-heart-broken:before,.fa-heart-crack:before{content:"\f7a9"}.fa-face-beam-hand-over-mouth:before{content:"\e47c"}.fa-droplet-percent:before,.fa-humidity:before{content:"\f750"}.fa-external-link-square-alt:before,.fa-square-up-right:before{content:"\f360"}.fa-face-kiss-beam:before,.fa-kiss-beam:before{content:"\f597"}.fa-corn:before{content:"\f6c7"}.fa-roller-coaster:before{content:"\e324"}.fa-photo-film-music:before{content:"\e228"}.fa-radar:before{content:"\e024"}.fa-sickle:before{content:"\f822"}.fa-film:before{content:"\f008"}.fa-coconut:before{content:"\e2f6"}.fa-ruler-horizontal:before{content:"\f547"}.fa-shield-cross:before{content:"\f712"}.fa-cassette-tape:before{content:"\f8ab"}.fa-square-terminal:before{content:"\e32a"}.fa-people-robbery:before{content:"\e536"}.fa-lightbulb:before{content:"\f0eb"}.fa-caret-left:before{content:"\f0d9"}.fa-comment-middle:before{content:"\e149"}.fa-trash-can-list:before{content:"\e2ab"}.fa-block:before{content:"\e46a"}.fa-circle-exclamation:before,.fa-exclamation-circle:before{content:"\f06a"}.fa-school-circle-xmark:before{content:"\e56d"}.fa-arrow-right-from-bracket:before,.fa-sign-out:before{content:"\f08b"}.fa-face-frown-slight:before{content:"\e376"}.fa-chevron-circle-down:before,.fa-circle-chevron-down:before{content:"\f13a"}.fa-sidebar-flip:before{content:"\e24f"}.fa-unlock-alt:before,.fa-unlock-keyhole:before{content:"\f13e"}.fa-temperature-list:before{content:"\e299"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-headphones-alt:before,.fa-headphones-simple:before{content:"\f58f"}.fa-sitemap:before{content:"\f0e8"}.fa-pipe-section:before{content:"\e438"}.fa-space-station-moon-alt:before,.fa-space-station-moon-construction:before{content:"\e034"}.fa-circle-dollar-to-slot:before,.fa-donate:before{content:"\f4b9"}.fa-memory:before{content:"\f538"}.fa-face-sleeping:before{content:"\e38d"}.fa-road-spikes:before{content:"\e568"}.fa-fire-burner:before{content:"\e4f1"}.fa-squirrel:before{content:"\f71a"}.fa-arrow-to-top:before,.fa-arrow-up-to-line:before{content:"\f341"}.fa-flag:before{content:"\f024"}.fa-face-cowboy-hat:before{content:"\e36e"}.fa-hanukiah:before{content:"\f6e6"}.fa-chart-scatter-3d:before{content:"\e0e8"}.fa-display-chart-up:before{content:"\e5e3"}.fa-square-code:before{content:"\e267"}.fa-feather:before{content:"\f52d"}.fa-volume-down:before,.fa-volume-low:before{content:"\f027"}.fa-times-to-slot:before,.fa-vote-nay:before,.fa-xmark-to-slot:before{content:"\f771"}.fa-box-alt:before,.fa-box-taped:before{content:"\f49a"}.fa-comment-slash:before{content:"\f4b3"}.fa-swords:before{content:"\f71d"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-album:before{content:"\f89f"}.fa-circle-n:before{content:"\e118"}.fa-compress:before{content:"\f066"}.fa-wheat-alt:before,.fa-wheat-awn:before{content:"\e2cd"}.fa-ankh:before{content:"\f644"}.fa-hands-holding-child:before{content:"\e4fa"}.fa-asterisk:before{content:"\2a"}.fa-key-skeleton-left-right:before{content:"\e3b4"}.fa-comment-lines:before{content:"\f4b0"}.fa-luchador-mask:before,.fa-luchador:before,.fa-mask-luchador:before{content:"\f455"}.fa-check-square:before,.fa-square-check:before{content:"\f14a"}.fa-shredder:before{content:"\f68a"}.fa-book-open-alt:before,.fa-book-open-cover:before{content:"\e0c0"}.fa-sandwich:before{content:"\f81f"}.fa-peseta-sign:before{content:"\e221"}.fa-parking-slash:before,.fa-square-parking-slash:before{content:"\f617"}.fa-train-tunnel:before{content:"\e454"}.fa-header:before,.fa-heading:before{content:"\f1dc"}.fa-ghost:before{content:"\f6e2"}.fa-face-anguished:before{content:"\e369"}.fa-hockey-sticks:before{content:"\f454"}.fa-abacus:before{content:"\f640"}.fa-film-alt:before,.fa-film-simple:before{content:"\f3a0"}.fa-list-squares:before,.fa-list:before{content:"\f03a"}.fa-tree-palm:before{content:"\f82b"}.fa-phone-square-alt:before,.fa-square-phone-flip:before{content:"\f87b"}.fa-cart-plus:before{content:"\f217"}.fa-gamepad:before{content:"\f11b"}.fa-border-center-v:before{content:"\f89d"}.fa-circle-dot:before,.fa-dot-circle:before{content:"\f192"}.fa-clipboard-medical:before{content:"\e133"}.fa-dizzy:before,.fa-face-dizzy:before{content:"\f567"}.fa-egg:before{content:"\f7fb"}.fa-arrow-alt-to-top:before,.fa-up-to-line:before{content:"\f34d"}.fa-house-medical-circle-xmark:before{content:"\e513"}.fa-watch-fitness:before{content:"\f63e"}.fa-clock-nine-thirty:before{content:"\e34d"}.fa-campground:before{content:"\f6bb"}.fa-folder-plus:before{content:"\f65e"}.fa-jug:before{content:"\f8c6"}.fa-futbol-ball:before,.fa-futbol:before,.fa-soccer-ball:before{content:"\f1e3"}.fa-snow-blowing:before{content:"\f761"}.fa-paint-brush:before,.fa-paintbrush:before{content:"\f1fc"}.fa-lock:before{content:"\f023"}.fa-arrow-down-from-line:before,.fa-arrow-from-top:before{content:"\f345"}.fa-gas-pump:before{content:"\f52f"}.fa-signal-alt-slash:before,.fa-signal-bars-slash:before{content:"\f694"}.fa-monkey:before{content:"\f6fb"}.fa-pro:before,.fa-rectangle-pro:before{content:"\e235"}.fa-house-night:before{content:"\e010"}.fa-hot-tub-person:before,.fa-hot-tub:before{content:"\f593"}.fa-globe-pointer:before{content:"\e60e"}.fa-blanket:before{content:"\f498"}.fa-map-location:before,.fa-map-marked:before{content:"\f59f"}.fa-house-flood-water:before{content:"\e50e"}.fa-comments-question-check:before{content:"\e14f"}.fa-tree:before{content:"\f1bb"}.fa-arrows-cross:before{content:"\e0a2"}.fa-backpack:before{content:"\f5d4"}.fa-square-small:before{content:"\e27e"}.fa-folder-arrow-up:before,.fa-folder-upload:before{content:"\e054"}.fa-bridge-lock:before{content:"\e4cc"}.fa-crosshairs-simple:before{content:"\e59f"}.fa-sack-dollar:before{content:"\f81d"}.fa-edit:before,.fa-pen-to-square:before{content:"\f044"}.fa-sliders-h-square:before,.fa-square-sliders:before{content:"\f3f0"}.fa-car-side:before{content:"\f5e4"}.fa-comment-middle-top-alt:before,.fa-message-middle-top:before{content:"\e1e2"}.fa-lightbulb-on:before{content:"\f672"}.fa-knife:before,.fa-utensil-knife:before{content:"\f2e4"}.fa-share-alt:before,.fa-share-nodes:before{content:"\f1e0"}.fa-display-chart-up-circle-dollar:before{content:"\e5e6"}.fa-wave-sine:before{content:"\f899"}.fa-heart-circle-minus:before{content:"\e4ff"}.fa-circle-w:before{content:"\e12c"}.fa-calendar-circle:before,.fa-circle-calendar:before{content:"\e102"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-microscope:before{content:"\f610"}.fa-sunset:before{content:"\f767"}.fa-sink:before{content:"\e06d"}.fa-calendar-exclamation:before{content:"\f334"}.fa-truck-container-empty:before{content:"\e2b5"}.fa-hand-heart:before{content:"\f4bc"}.fa-bag-shopping:before,.fa-shopping-bag:before{content:"\f290"}.fa-arrow-down-z-a:before,.fa-sort-alpha-desc:before,.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-mitten:before{content:"\f7b5"}.fa-reply-clock:before,.fa-reply-time:before{content:"\e239"}.fa-person-rays:before{content:"\e54d"}.fa-arrow-alt-right:before,.fa-right:before{content:"\f356"}.fa-circle-f:before{content:"\e10e"}.fa-users:before{content:"\f0c0"}.fa-face-pleading:before{content:"\e386"}.fa-eye-slash:before{content:"\f070"}.fa-flask-vial:before{content:"\e4f3"}.fa-police-box:before{content:"\e021"}.fa-cucumber:before{content:"\e401"}.fa-head-side-brain:before{content:"\f808"}.fa-hand-paper:before,.fa-hand:before{content:"\f256"}.fa-biking-mountain:before,.fa-person-biking-mountain:before{content:"\f84b"}.fa-utensils-slash:before{content:"\e464"}.fa-print-magnifying-glass:before,.fa-print-search:before{content:"\f81a"}.fa-turn-right:before{content:"\e639"}.fa-folder-bookmark:before{content:"\e186"}.fa-arrow-turn-left-down:before{content:"\e633"}.fa-om:before{content:"\f679"}.fa-pi:before{content:"\f67e"}.fa-flask-potion:before,.fa-flask-round-potion:before{content:"\f6e1"}.fa-face-shush:before{content:"\e38c"}.fa-worm:before{content:"\e599"}.fa-house-circle-xmark:before{content:"\e50b"}.fa-plug:before{content:"\f1e6"}.fa-calendar-circle-exclamation:before{content:"\e46e"}.fa-square-i:before{content:"\e272"}.fa-chevron-up:before{content:"\f077"}.fa-face-saluting:before{content:"\e484"}.fa-gauge-simple-low:before,.fa-tachometer-slow:before{content:"\f62c"}.fa-face-persevering:before{content:"\e385"}.fa-camera-circle:before,.fa-circle-camera:before{content:"\e103"}.fa-hand-spock:before{content:"\f259"}.fa-spider-web:before{content:"\f719"}.fa-circle-microphone:before,.fa-microphone-circle:before{content:"\e116"}.fa-book-arrow-up:before{content:"\e0ba"}.fa-popsicle:before{content:"\e43e"}.fa-command:before{content:"\e142"}.fa-blinds:before{content:"\f8fb"}.fa-stopwatch:before{content:"\f2f2"}.fa-saxophone:before{content:"\f8dc"}.fa-square-2:before{content:"\e257"}.fa-field-hockey-stick-ball:before,.fa-field-hockey:before{content:"\f44c"}.fa-arrow-up-square-triangle:before,.fa-sort-shapes-up-alt:before{content:"\f88b"}.fa-face-scream:before{content:"\e38b"}.fa-square-m:before{content:"\e276"}.fa-camera-web:before,.fa-webcam:before{content:"\f832"}.fa-comment-arrow-down:before{content:"\e143"}.fa-lightbulb-cfl:before{content:"\e5a6"}.fa-window-frame-open:before{content:"\e050"}.fa-face-kiss:before,.fa-kiss:before{content:"\f596"}.fa-bridge-circle-xmark:before{content:"\e4cb"}.fa-period:before{content:"\2e"}.fa-face-grin-tongue:before,.fa-grin-tongue:before{content:"\f589"}.fa-up-to-dotted-line:before{content:"\e457"}.fa-thought-bubble:before{content:"\e32e"}.fa-skeleton-ribs:before{content:"\e5cb"}.fa-raygun:before{content:"\e025"}.fa-flute:before{content:"\f8b9"}.fa-acorn:before{content:"\f6ae"}.fa-video-arrow-up-right:before{content:"\e2c9"}.fa-grate-droplet:before{content:"\e194"}.fa-seal-exclamation:before{content:"\e242"}.fa-chess-bishop:before{content:"\f43a"}.fa-message-sms:before{content:"\e1e5"}.fa-coffee-beans:before{content:"\e13f"}.fa-hat-witch:before{content:"\f6e7"}.fa-face-grin-wink:before,.fa-grin-wink:before{content:"\f58c"}.fa-clock-three-thirty:before{content:"\e357"}.fa-deaf:before,.fa-deafness:before,.fa-ear-deaf:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-alarm-clock:before{content:"\f34e"}.fa-eclipse:before{content:"\f749"}.fa-face-relieved:before{content:"\e389"}.fa-road-circle-check:before{content:"\e564"}.fa-dice-five:before{content:"\f523"}.fa-minus-octagon:before,.fa-octagon-minus:before{content:"\f308"}.fa-rss-square:before,.fa-square-rss:before{content:"\f143"}.fa-face-zany:before{content:"\e3a4"}.fa-tricycle:before{content:"\e5c3"}.fa-land-mine-on:before{content:"\e51b"}.fa-square-arrow-up-left:before{content:"\e263"}.fa-i-cursor:before{content:"\f246"}.fa-chart-mixed-up-circle-dollar:before{content:"\e5d9"}.fa-salt-shaker:before{content:"\e446"}.fa-stamp:before{content:"\f5bf"}.fa-file-plus:before{content:"\f319"}.fa-draw-square:before{content:"\f5ef"}.fa-toilet-paper-reverse-slash:before,.fa-toilet-paper-under-slash:before{content:"\e2a1"}.fa-stairs:before{content:"\e289"}.fa-drone-alt:before,.fa-drone-front:before{content:"\f860"}.fa-glass-empty:before{content:"\e191"}.fa-dial-high:before{content:"\e15c"}.fa-user-construction:before,.fa-user-hard-hat:before,.fa-user-helmet-safety:before{content:"\f82c"}.fa-i:before{content:"\49"}.fa-hryvnia-sign:before,.fa-hryvnia:before{content:"\f6f2"}.fa-arrow-down-left-and-arrow-up-right-to-center:before{content:"\e092"}.fa-pills:before{content:"\f484"}.fa-face-grin-wide:before,.fa-grin-alt:before{content:"\f581"}.fa-tooth:before{content:"\f5c9"}.fa-basketball-hoop:before{content:"\f435"}.fa-objects-align-bottom:before{content:"\e3bb"}.fa-v:before{content:"\56"}.fa-sparkles:before{content:"\f890"}.fa-squid:before{content:"\e450"}.fa-leafy-green:before{content:"\e41d"}.fa-circle-arrow-up-right:before{content:"\e0fc"}.fa-calendars:before{content:"\e0d7"}.fa-bangladeshi-taka-sign:before{content:"\e2e6"}.fa-bicycle:before{content:"\f206"}.fa-hammer-war:before{content:"\f6e4"}.fa-circle-d:before{content:"\e104"}.fa-spider-black-widow:before{content:"\f718"}.fa-rod-asclepius:before,.fa-rod-snake:before,.fa-staff-aesculapius:before,.fa-staff-snake:before{content:"\e579"}.fa-pear:before{content:"\e20c"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-file-mov:before{content:"\e647"}.fa-triangle:before{content:"\f2ec"}.fa-apartment:before{content:"\e468"}.fa-ambulance:before,.fa-truck-medical:before{content:"\f0f9"}.fa-pepper:before{content:"\e432"}.fa-piano:before{content:"\f8d4"}.fa-gun-squirt:before{content:"\e19d"}.fa-wheat-awn-circle-exclamation:before{content:"\e598"}.fa-snowman:before{content:"\f7d0"}.fa-user-alien:before{content:"\e04a"}.fa-shield-check:before{content:"\f2f7"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-road-barrier:before{content:"\e562"}.fa-chart-candlestick:before{content:"\e0e2"}.fa-briefcase-blank:before{content:"\e0c8"}.fa-school:before{content:"\f549"}.fa-igloo:before{content:"\f7ae"}.fa-bracket-round:before,.fa-parenthesis:before{content:"\28"}.fa-joint:before{content:"\f595"}.fa-horse-saddle:before{content:"\f8c3"}.fa-mug-marshmallows:before{content:"\f7b7"}.fa-filters:before{content:"\e17e"}.fa-bell-on:before{content:"\f8fa"}.fa-angle-right:before{content:"\f105"}.fa-dial-med:before{content:"\e15f"}.fa-horse:before{content:"\f6f0"}.fa-q:before{content:"\51"}.fa-monitor-heart-rate:before,.fa-monitor-waveform:before{content:"\f611"}.fa-link-simple:before{content:"\e1cd"}.fa-whistle:before{content:"\f460"}.fa-g:before{content:"\47"}.fa-fragile:before,.fa-wine-glass-crack:before{content:"\f4bb"}.fa-slot-machine:before{content:"\e3ce"}.fa-notes-medical:before{content:"\f481"}.fa-car-wash:before{content:"\f5e6"}.fa-escalator:before{content:"\e171"}.fa-comment-image:before{content:"\e148"}.fa-temperature-2:before,.fa-temperature-half:before,.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-dong-sign:before{content:"\e169"}.fa-donut:before,.fa-doughnut:before{content:"\e406"}.fa-capsules:before{content:"\f46b"}.fa-poo-bolt:before,.fa-poo-storm:before{content:"\f75a"}.fa-tally-1:before{content:"\e294"}.fa-file-vector:before{content:"\e64c"}.fa-face-frown-open:before,.fa-frown-open:before{content:"\f57a"}.fa-square-dashed:before{content:"\e269"}.fa-bag-shopping-plus:before{content:"\e651"}.fa-square-j:before{content:"\e273"}.fa-hand-point-up:before{content:"\f0a6"}.fa-money-bill:before{content:"\f0d6"}.fa-arrow-up-big-small:before,.fa-sort-size-up:before{content:"\f88e"}.fa-barcode-read:before{content:"\f464"}.fa-baguette:before{content:"\e3d8"}.fa-bowl-soft-serve:before{content:"\e46b"}.fa-face-holding-back-tears:before{content:"\e482"}.fa-arrow-alt-square-up:before,.fa-square-up:before{content:"\f353"}.fa-subway-tunnel:before,.fa-train-subway-tunnel:before{content:"\e2a3"}.fa-exclamation-square:before,.fa-square-exclamation:before{content:"\f321"}.fa-semicolon:before{content:"\3b"}.fa-bookmark:before{content:"\f02e"}.fa-fan-table:before{content:"\e004"}.fa-align-justify:before{content:"\f039"}.fa-battery-1:before,.fa-battery-low:before{content:"\e0b1"}.fa-credit-card-front:before{content:"\f38a"}.fa-brain-arrow-curved-right:before,.fa-mind-share:before{content:"\f677"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-helmet-un:before{content:"\e503"}.fa-location-smile:before,.fa-map-marker-smile:before{content:"\f60d"}.fa-arrow-left-to-line:before,.fa-arrow-to-left:before{content:"\f33e"}.fa-bullseye:before{content:"\f140"}.fa-nigiri:before,.fa-sushi:before{content:"\e48a"}.fa-comment-alt-captions:before,.fa-message-captions:before{content:"\e1de"}.fa-trash-list:before{content:"\e2b1"}.fa-bacon:before{content:"\f7e5"}.fa-option:before{content:"\e318"}.fa-raccoon:before{content:"\e613"}.fa-hand-point-down:before{content:"\f0a7"}.fa-arrow-up-from-bracket:before{content:"\e09a"}.fa-head-side-gear:before{content:"\e611"}.fa-trash-plus:before{content:"\e2b2"}.fa-file-cad:before{content:"\e672"}.fa-objects-align-top:before{content:"\e3c0"}.fa-folder-blank:before,.fa-folder:before{content:"\f07b"}.fa-face-anxious-sweat:before{content:"\e36a"}.fa-credit-card-blank:before{content:"\f389"}.fa-file-medical-alt:before,.fa-file-waveform:before{content:"\f478"}.fa-microchip-ai:before{content:"\e1ec"}.fa-mug:before{content:"\f874"}.fa-plane-up-slash:before{content:"\e22e"}.fa-radiation:before{content:"\f7b9"}.fa-pen-circle:before{content:"\e20e"}.fa-bag-seedling:before{content:"\e5f2"}.fa-chart-simple:before{content:"\e473"}.fa-crutches:before{content:"\f7f8"}.fa-circle-parking:before,.fa-parking-circle:before{content:"\f615"}.fa-mars-stroke:before{content:"\f229"}.fa-leaf-oak:before{content:"\f6f7"}.fa-square-bolt:before{content:"\e265"}.fa-vial:before{content:"\f492"}.fa-dashboard:before,.fa-gauge-med:before,.fa-gauge:before,.fa-tachometer-alt-average:before{content:"\f624"}.fa-magic-wand-sparkles:before,.fa-wand-magic-sparkles:before{content:"\e2ca"}.fa-lambda:before{content:"\f66e"}.fa-e:before{content:"\45"}.fa-pizza:before{content:"\f817"}.fa-bowl-chopsticks-noodles:before{content:"\e2ea"}.fa-h3:before{content:"\f315"}.fa-pen-alt:before,.fa-pen-clip:before{content:"\f305"}.fa-bridge-circle-exclamation:before{content:"\e4ca"}.fa-badge-percent:before{content:"\f646"}.fa-rotate-reverse:before{content:"\e631"}.fa-user:before{content:"\f007"}.fa-sensor:before{content:"\e028"}.fa-comma:before{content:"\2c"}.fa-school-circle-check:before{content:"\e56b"}.fa-toilet-paper-reverse:before,.fa-toilet-paper-under:before{content:"\e2a0"}.fa-light-emergency:before{content:"\e41f"}.fa-arrow-down-to-arc:before{content:"\e4ae"}.fa-dumpster:before{content:"\f793"}.fa-shuttle-van:before,.fa-van-shuttle:before{content:"\f5b6"}.fa-building-user:before{content:"\e4da"}.fa-light-switch:before{content:"\e017"}.fa-caret-square-left:before,.fa-square-caret-left:before{content:"\f191"}.fa-highlighter:before{content:"\f591"}.fa-heart-rate:before,.fa-wave-pulse:before{content:"\f5f8"}.fa-key:before{content:"\f084"}.fa-arrow-left-to-bracket:before{content:"\e669"}.fa-hat-santa:before{content:"\f7a7"}.fa-tamale:before{content:"\e451"}.fa-box-check:before{content:"\f467"}.fa-bullhorn:before{content:"\f0a1"}.fa-steak:before{content:"\f824"}.fa-location-crosshairs-slash:before,.fa-location-slash:before{content:"\f603"}.fa-person-dolly:before{content:"\f4d0"}.fa-globe:before{content:"\f0ac"}.fa-synagogue:before{content:"\f69b"}.fa-file-chart-column:before,.fa-file-chart-line:before{content:"\f659"}.fa-person-half-dress:before{content:"\e548"}.fa-folder-image:before{content:"\e18a"}.fa-calendar-edit:before,.fa-calendar-pen:before{content:"\f333"}.fa-road-bridge:before{content:"\e563"}.fa-face-smile-tear:before{content:"\e393"}.fa-comment-alt-plus:before,.fa-message-plus:before{content:"\f4a8"}.fa-location-arrow:before{content:"\f124"}.fa-c:before{content:"\43"}.fa-tablet-button:before{content:"\f10a"}.fa-person-dress-fairy:before{content:"\e607"}.fa-rectangle-history-circle-user:before{content:"\e4a4"}.fa-building-lock:before{content:"\e4d6"}.fa-chart-line-up:before{content:"\e0e5"}.fa-mailbox:before{content:"\f813"}.fa-sign-posts:before{content:"\e625"}.fa-truck-bolt:before{content:"\e3d0"}.fa-pizza-slice:before{content:"\f818"}.fa-money-bill-wave:before{content:"\f53a"}.fa-area-chart:before,.fa-chart-area:before{content:"\f1fe"}.fa-house-flag:before{content:"\e50d"}.fa-circle-three-quarters-stroke:before{content:"\e5d4"}.fa-person-circle-minus:before{content:"\e540"}.fa-scalpel:before{content:"\f61d"}.fa-ban:before,.fa-cancel:before{content:"\f05e"}.fa-bell-exclamation:before{content:"\f848"}.fa-bookmark-circle:before,.fa-circle-bookmark:before{content:"\e100"}.fa-egg-fried:before{content:"\f7fc"}.fa-face-weary:before{content:"\e3a1"}.fa-uniform-martial-arts:before{content:"\e3d1"}.fa-camera-rotate:before{content:"\e0d8"}.fa-sun-dust:before{content:"\f764"}.fa-comment-text:before{content:"\e14d"}.fa-air-freshener:before,.fa-spray-can-sparkles:before{content:"\f5d0"}.fa-signal-alt-4:before,.fa-signal-alt:before,.fa-signal-bars-strong:before,.fa-signal-bars:before{content:"\f690"}.fa-diamond-exclamation:before{content:"\e405"}.fa-star:before{content:"\f005"}.fa-dial-min:before{content:"\e161"}.fa-repeat:before{content:"\f363"}.fa-cross:before{content:"\f654"}.fa-file-caret-down:before,.fa-page-caret-down:before{content:"\e429"}.fa-box:before{content:"\f466"}.fa-venus-mars:before{content:"\f228"}.fa-clock-seven-thirty:before{content:"\e351"}.fa-arrow-pointer:before,.fa-mouse-pointer:before{content:"\f245"}.fa-clock-four-thirty:before{content:"\e34b"}.fa-signal-alt-3:before,.fa-signal-bars-good:before{content:"\f693"}.fa-cactus:before{content:"\f8a7"}.fa-lightbulb-gear:before{content:"\e5fd"}.fa-expand-arrows-alt:before,.fa-maximize:before{content:"\f31e"}.fa-charging-station:before{content:"\f5e7"}.fa-shapes:before,.fa-triangle-circle-square:before{content:"\f61f"}.fa-plane-tail:before{content:"\e22c"}.fa-gauge-simple-max:before,.fa-tachometer-fastest:before{content:"\f62b"}.fa-circle-u:before{content:"\e127"}.fa-shield-slash:before{content:"\e24b"}.fa-phone-square-down:before,.fa-square-phone-hangup:before{content:"\e27a"}.fa-arrow-up-left:before{content:"\e09d"}.fa-transporter-1:before{content:"\e043"}.fa-peanuts:before{content:"\e431"}.fa-random:before,.fa-shuffle:before{content:"\f074"}.fa-person-running:before,.fa-running:before{content:"\f70c"}.fa-mobile-retro:before{content:"\e527"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-bin-bottles-recycle:before{content:"\e5f6"}.fa-arrow-up-from-square:before{content:"\e09c"}.fa-file-dashed-line:before,.fa-page-break:before{content:"\f877"}.fa-bracket-curly-right:before{content:"\7d"}.fa-spider:before{content:"\f717"}.fa-clock-three:before{content:"\e356"}.fa-hands-bound:before{content:"\e4f9"}.fa-scalpel-line-dashed:before,.fa-scalpel-path:before{content:"\f61e"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-pipe-smoking:before{content:"\e3c4"}.fa-face-astonished:before{content:"\e36b"}.fa-window:before{content:"\f40e"}.fa-plane-circle-exclamation:before{content:"\e556"}.fa-ear:before{content:"\f5f0"}.fa-file-lock:before{content:"\e3a6"}.fa-diagram-venn:before{content:"\e15a"}.fa-arrow-down-from-bracket:before{content:"\e667"}.fa-x-ray:before{content:"\f497"}.fa-goal-net:before{content:"\e3ab"}.fa-coffin-cross:before{content:"\e051"}.fa-spell-check:before{content:"\f891"}.fa-location-xmark:before,.fa-map-marker-times:before,.fa-map-marker-xmark:before{content:"\f60e"}.fa-circle-quarter-stroke:before{content:"\e5d3"}.fa-lasso:before{content:"\f8c8"}.fa-slash:before{content:"\f715"}.fa-person-to-portal:before,.fa-portal-enter:before{content:"\e022"}.fa-calendar-star:before{content:"\f736"}.fa-computer-mouse:before,.fa-mouse:before{content:"\f8cc"}.fa-arrow-right-to-bracket:before,.fa-sign-in:before{content:"\f090"}.fa-pegasus:before{content:"\f703"}.fa-files-medical:before{content:"\f7fd"}.fa-cannon:before{content:"\e642"}.fa-nfc-lock:before{content:"\e1f8"}.fa-person-ski-lift:before,.fa-ski-lift:before{content:"\f7c8"}.fa-square-6:before{content:"\e25b"}.fa-shop-slash:before,.fa-store-alt-slash:before{content:"\e070"}.fa-wind-turbine:before{content:"\f89b"}.fa-sliders-simple:before{content:"\e253"}.fa-grid-round:before{content:"\e5da"}.fa-badge-sheriff:before{content:"\f8a2"}.fa-server:before{content:"\f233"}.fa-virus-covid-slash:before{content:"\e4a9"}.fa-intersection:before{content:"\f668"}.fa-shop-lock:before{content:"\e4a5"}.fa-family:before{content:"\e300"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-user-hair-buns:before{content:"\e3d3"}.fa-blender-phone:before{content:"\f6b6"}.fa-hourglass-clock:before{content:"\e41b"}.fa-person-seat-reclined:before{content:"\e21f"}.fa-paper-plane-alt:before,.fa-paper-plane-top:before,.fa-send:before{content:"\e20a"}.fa-comment-alt-arrow-up:before,.fa-message-arrow-up:before{content:"\e1dc"}.fa-lightbulb-exclamation:before{content:"\f671"}.fa-layer-group-minus:before,.fa-layer-minus:before{content:"\f5fe"}.fa-chart-pie-simple-circle-currency:before{content:"\e604"}.fa-circle-e:before{content:"\e109"}.fa-building-wheat:before{content:"\e4db"}.fa-gauge-max:before,.fa-tachometer-alt-fastest:before{content:"\f626"}.fa-person-breastfeeding:before{content:"\e53a"}.fa-apostrophe:before{content:"\27"}.fa-file-png:before{content:"\e666"}.fa-fire-hydrant:before{content:"\e17f"}.fa-right-to-bracket:before,.fa-sign-in-alt:before{content:"\f2f6"}.fa-video-plus:before{content:"\f4e1"}.fa-arrow-alt-square-right:before,.fa-square-right:before{content:"\f352"}.fa-comment-smile:before{content:"\f4b4"}.fa-venus:before{content:"\f221"}.fa-passport:before{content:"\f5ab"}.fa-inbox-arrow-down:before,.fa-inbox-in:before{content:"\f310"}.fa-heart-pulse:before,.fa-heartbeat:before{content:"\f21e"}.fa-circle-8:before{content:"\e0f5"}.fa-clouds-moon:before{content:"\f745"}.fa-clock-ten-thirty:before{content:"\e355"}.fa-people-carry-box:before,.fa-people-carry:before{content:"\f4ce"}.fa-folder-user:before{content:"\e18e"}.fa-trash-can-xmark:before{content:"\e2ae"}.fa-temperature-high:before{content:"\f769"}.fa-microchip:before{content:"\f2db"}.fa-left-long-to-line:before{content:"\e41e"}.fa-crown:before{content:"\f521"}.fa-weight-hanging:before{content:"\f5cd"}.fa-xmarks-lines:before{content:"\e59a"}.fa-file-prescription:before{content:"\f572"}.fa-table-cells-lock:before{content:"\e679"}.fa-calendar-range:before{content:"\e0d6"}.fa-flower-daffodil:before{content:"\f800"}.fa-hand-back-point-up:before{content:"\e1a2"}.fa-weight-scale:before,.fa-weight:before{content:"\f496"}.fa-arrow-up-to-arc:before{content:"\e617"}.fa-star-exclamation:before{content:"\f2f3"}.fa-books:before{content:"\f5db"}.fa-user-friends:before,.fa-user-group:before{content:"\f500"}.fa-arrow-up-a-z:before,.fa-sort-alpha-up:before{content:"\f15e"}.fa-layer-group-plus:before,.fa-layer-plus:before{content:"\f5ff"}.fa-play-pause:before{content:"\e22f"}.fa-block-question:before{content:"\e3dd"}.fa-snooze:before,.fa-zzz:before{content:"\f880"}.fa-scanner-image:before{content:"\f8f3"}.fa-tv-retro:before{content:"\f401"}.fa-square-t:before{content:"\e280"}.fa-barn-silo:before,.fa-farm:before{content:"\f864"}.fa-chess-knight:before{content:"\f441"}.fa-bars-sort:before{content:"\e0ae"}.fa-palette-boxes:before,.fa-pallet-alt:before,.fa-pallet-boxes:before{content:"\f483"}.fa-face-laugh-squint:before,.fa-laugh-squint:before{content:"\f59b"}.fa-code-simple:before{content:"\e13d"}.fa-bolt-slash:before{content:"\e0b8"}.fa-panel-fire:before{content:"\e42f"}.fa-binary-circle-check:before{content:"\e33c"}.fa-comment-minus:before{content:"\f4b1"}.fa-burrito:before{content:"\f7ed"}.fa-violin:before{content:"\f8ed"}.fa-objects-column:before{content:"\e3c1"}.fa-chevron-square-down:before,.fa-square-chevron-down:before{content:"\f329"}.fa-comment-plus:before{content:"\f4b2"}.fa-triangle-instrument:before,.fa-triangle-music:before{content:"\f8e2"}.fa-wheelchair:before{content:"\f193"}.fa-user-pilot-tie:before{content:"\e2c1"}.fa-piano-keyboard:before{content:"\f8d5"}.fa-bed-empty:before{content:"\f8f9"}.fa-arrow-circle-up:before,.fa-circle-arrow-up:before{content:"\f0aa"}.fa-toggle-on:before{content:"\f205"}.fa-rectangle-portrait:before,.fa-rectangle-vertical:before{content:"\f2fb"}.fa-person-walking:before,.fa-walking:before{content:"\f554"}.fa-l:before{content:"\4c"}.fa-signal-stream:before{content:"\f8dd"}.fa-down-to-bracket:before{content:"\e4e7"}.fa-circle-z:before{content:"\e130"}.fa-stars:before{content:"\f762"}.fa-fire:before{content:"\f06d"}.fa-bed-pulse:before,.fa-procedures:before{content:"\f487"}.fa-house-day:before{content:"\e00e"}.fa-shuttle-space:before,.fa-space-shuttle:before{content:"\f197"}.fa-shirt-long-sleeve:before{content:"\e3c7"}.fa-chart-pie-alt:before,.fa-chart-pie-simple:before{content:"\f64e"}.fa-face-laugh:before,.fa-laugh:before{content:"\f599"}.fa-folder-open:before{content:"\f07c"}.fa-album-collection-circle-user:before{content:"\e48f"}.fa-candy:before{content:"\e3e7"}.fa-bowl-hot:before,.fa-soup:before{content:"\f823"}.fa-flatbread:before{content:"\e40b"}.fa-heart-circle-plus:before{content:"\e500"}.fa-code-fork:before{content:"\e13b"}.fa-city:before{content:"\f64f"}.fa-signal-alt-1:before,.fa-signal-bars-weak:before{content:"\f691"}.fa-microphone-alt:before,.fa-microphone-lines:before{content:"\f3c9"}.fa-clock-twelve:before{content:"\e358"}.fa-pepper-hot:before{content:"\f816"}.fa-citrus-slice:before{content:"\e2f5"}.fa-sheep:before{content:"\f711"}.fa-unlock:before{content:"\f09c"}.fa-colon-sign:before{content:"\e140"}.fa-headset:before{content:"\f590"}.fa-badger-honey:before{content:"\f6b4"}.fa-h4:before{content:"\f86a"}.fa-store-slash:before{content:"\e071"}.fa-road-circle-xmark:before{content:"\e566"}.fa-signal-slash:before{content:"\f695"}.fa-user-minus:before{content:"\f503"}.fa-mars-stroke-up:before,.fa-mars-stroke-v:before{content:"\f22a"}.fa-champagne-glasses:before,.fa-glass-cheers:before{content:"\f79f"}.fa-taco:before{content:"\f826"}.fa-hexagon-plus:before,.fa-plus-hexagon:before{content:"\f300"}.fa-clipboard:before{content:"\f328"}.fa-house-circle-exclamation:before{content:"\e50a"}.fa-file-arrow-up:before,.fa-file-upload:before{content:"\f574"}.fa-wifi-3:before,.fa-wifi-strong:before,.fa-wifi:before{content:"\f1eb"}.fa-comments-alt:before,.fa-messages:before{content:"\f4b6"}.fa-bath:before,.fa-bathtub:before{content:"\f2cd"}.fa-umbrella-alt:before,.fa-umbrella-simple:before{content:"\e2bc"}.fa-rectangle-history-circle-plus:before{content:"\e4a3"}.fa-underline:before{content:"\f0cd"}.fa-prescription-bottle-pill:before{content:"\e5c0"}.fa-user-edit:before,.fa-user-pen:before{content:"\f4ff"}.fa-binary-slash:before{content:"\e33e"}.fa-square-o:before{content:"\e278"}.fa-caduceus:before{content:"\e681"}.fa-signature:before{content:"\f5b7"}.fa-stroopwafel:before{content:"\f551"}.fa-bold:before{content:"\f032"}.fa-anchor-lock:before{content:"\e4ad"}.fa-building-ngo:before{content:"\e4d7"}.fa-transporter-3:before{content:"\e045"}.fa-engine-exclamation:before,.fa-engine-warning:before{content:"\f5f2"}.fa-circle-down-right:before{content:"\e108"}.fa-square-k:before{content:"\e274"}.fa-manat-sign:before{content:"\e1d5"}.fa-money-check-edit:before,.fa-money-check-pen:before{content:"\f872"}.fa-not-equal:before{content:"\f53e"}.fa-border-style:before,.fa-border-top-left:before{content:"\f853"}.fa-map-location-dot:before,.fa-map-marked-alt:before{content:"\f5a0"}.fa-tilde:before{content:"\7e"}.fa-jedi:before{content:"\f669"}.fa-poll:before,.fa-square-poll-vertical:before{content:"\f681"}.fa-arrow-down-square-triangle:before,.fa-sort-shapes-down-alt:before{content:"\f889"}.fa-mug-hot:before{content:"\f7b6"}.fa-dog-leashed:before{content:"\f6d4"}.fa-battery-car:before,.fa-car-battery:before{content:"\f5df"}.fa-face-downcast-sweat:before{content:"\e371"}.fa-mailbox-flag-up:before{content:"\e5bb"}.fa-memo-circle-info:before{content:"\e49a"}.fa-gift:before{content:"\f06b"}.fa-dice-two:before{content:"\f528"}.fa-volume-medium:before,.fa-volume:before{content:"\f6a8"}.fa-transporter-5:before{content:"\e2a6"}.fa-gauge-circle-bolt:before{content:"\e496"}.fa-coin-front:before{content:"\e3fc"}.fa-file-slash:before{content:"\e3a7"}.fa-message-arrow-up-right:before{content:"\e1dd"}.fa-treasure-chest:before{content:"\f723"}.fa-chess-queen:before{content:"\f445"}.fa-paint-brush-alt:before,.fa-paint-brush-fine:before,.fa-paintbrush-alt:before,.fa-paintbrush-fine:before{content:"\f5a9"}.fa-glasses:before{content:"\f530"}.fa-hood-cloak:before{content:"\f6ef"}.fa-square-quote:before{content:"\e329"}.fa-up-left:before{content:"\e2bd"}.fa-bring-front:before{content:"\f857"}.fa-chess-board:before{content:"\f43c"}.fa-burger-cheese:before,.fa-cheeseburger:before{content:"\f7f1"}.fa-building-circle-check:before{content:"\e4d2"}.fa-repeat-1:before{content:"\f365"}.fa-arrow-down-to-line:before,.fa-arrow-to-bottom:before{content:"\f33d"}.fa-grid-5:before{content:"\e199"}.fa-swap-arrows:before{content:"\e60a"}.fa-right-long-to-line:before{content:"\e444"}.fa-person-chalkboard:before{content:"\e53d"}.fa-mars-stroke-h:before,.fa-mars-stroke-right:before{content:"\f22b"}.fa-hand-back-fist:before,.fa-hand-rock:before{content:"\f255"}.fa-grid-round-5:before{content:"\e5de"}.fa-tally-5:before,.fa-tally:before{content:"\f69c"}.fa-caret-square-up:before,.fa-square-caret-up:before{content:"\f151"}.fa-cloud-showers-water:before{content:"\e4e4"}.fa-bar-chart:before,.fa-chart-bar:before{content:"\f080"}.fa-hands-bubbles:before,.fa-hands-wash:before{content:"\e05e"}.fa-less-than-equal:before{content:"\f537"}.fa-train:before{content:"\f238"}.fa-up-from-dotted-line:before{content:"\e456"}.fa-eye-low-vision:before,.fa-low-vision:before{content:"\f2a8"}.fa-traffic-light-go:before{content:"\f638"}.fa-face-exhaling:before{content:"\e480"}.fa-sensor-fire:before{content:"\e02a"}.fa-user-unlock:before{content:"\e058"}.fa-hexagon-divide:before{content:"\e1ad"}.fa-00:before{content:"\e467"}.fa-crow:before{content:"\f520"}.fa-betamax:before,.fa-cassette-betamax:before{content:"\f8a4"}.fa-sailboat:before{content:"\e445"}.fa-window-restore:before{content:"\f2d2"}.fa-nfc-magnifying-glass:before{content:"\e1f9"}.fa-file-binary:before{content:"\e175"}.fa-circle-v:before{content:"\e12a"}.fa-plus-square:before,.fa-square-plus:before{content:"\f0fe"}.fa-bowl-scoops:before{content:"\e3df"}.fa-mistletoe:before{content:"\f7b4"}.fa-custard:before{content:"\e403"}.fa-lacrosse-stick:before{content:"\e3b5"}.fa-hockey-mask:before{content:"\f6ee"}.fa-sunrise:before{content:"\f766"}.fa-subtitles:before{content:"\e60f"}.fa-panel-ews:before{content:"\e42e"}.fa-torii-gate:before{content:"\f6a1"}.fa-cloud-exclamation:before{content:"\e491"}.fa-comment-alt-lines:before,.fa-message-lines:before{content:"\f4a6"}.fa-frog:before{content:"\f52e"}.fa-bucket:before{content:"\e4cf"}.fa-floppy-disk-pen:before{content:"\e182"}.fa-image:before{content:"\f03e"}.fa-window-frame:before{content:"\e04f"}.fa-microphone:before{content:"\f130"}.fa-cow:before{content:"\f6c8"}.fa-file-zip:before{content:"\e5ee"}.fa-square-ring:before{content:"\e44f"}.fa-arrow-alt-from-top:before,.fa-down-from-line:before{content:"\f349"}.fa-caret-up:before{content:"\f0d8"}.fa-shield-times:before,.fa-shield-xmark:before{content:"\e24c"}.fa-screwdriver:before{content:"\f54a"}.fa-circle-sort-down:before,.fa-sort-circle-down:before{content:"\e031"}.fa-folder-closed:before{content:"\e185"}.fa-house-tsunami:before{content:"\e515"}.fa-square-nfi:before{content:"\e576"}.fa-forklift:before{content:"\f47a"}.fa-arrow-up-from-ground-water:before{content:"\e4b5"}.fa-bracket-square-right:before{content:"\5d"}.fa-glass-martini-alt:before,.fa-martini-glass:before{content:"\f57b"}.fa-rotate-back:before,.fa-rotate-backward:before,.fa-rotate-left:before,.fa-undo-alt:before{content:"\f2ea"}.fa-columns:before,.fa-table-columns:before{content:"\f0db"}.fa-square-a:before{content:"\e25f"}.fa-tick:before{content:"\e32f"}.fa-lemon:before{content:"\f094"}.fa-head-side-mask:before{content:"\e063"}.fa-handshake:before{content:"\f2b5"}.fa-gem:before{content:"\f3a5"}.fa-dolly-box:before,.fa-dolly:before{content:"\f472"}.fa-smoking:before{content:"\f48d"}.fa-compress-arrows-alt:before,.fa-minimize:before{content:"\f78c"}.fa-refrigerator:before{content:"\e026"}.fa-monument:before{content:"\f5a6"}.fa-octagon-xmark:before,.fa-times-octagon:before,.fa-xmark-octagon:before{content:"\f2f0"}.fa-align-slash:before{content:"\f846"}.fa-snowplow:before{content:"\f7d2"}.fa-angle-double-right:before,.fa-angles-right:before{content:"\f101"}.fa-truck-couch:before,.fa-truck-ramp-couch:before{content:"\f4dd"}.fa-cannabis:before{content:"\f55f"}.fa-circle-play:before,.fa-play-circle:before{content:"\f144"}.fa-arrow-up-right-and-arrow-down-left-from-center:before{content:"\e0a0"}.fa-location-arrow-up:before{content:"\e63a"}.fa-tablets:before{content:"\f490"}.fa-360-degrees:before{content:"\e2dc"}.fa-ethernet:before{content:"\f796"}.fa-eur:before,.fa-euro-sign:before,.fa-euro:before{content:"\f153"}.fa-chair:before{content:"\f6c0"}.fa-check-circle:before,.fa-circle-check:before{content:"\f058"}.fa-square-dashed-circle-plus:before{content:"\e5c2"}.fa-hand-holding-circle-dollar:before{content:"\e621"}.fa-money-simple-from-bracket:before{content:"\e313"}.fa-bat:before{content:"\f6b5"}.fa-circle-stop:before,.fa-stop-circle:before{content:"\f28d"}.fa-head-side-headphones:before{content:"\f8c2"}.fa-phone-rotary:before{content:"\f8d3"}.fa-arrow-up-to-bracket:before{content:"\e66a"}.fa-compass-drafting:before,.fa-drafting-compass:before{content:"\f568"}.fa-plate-wheat:before{content:"\e55a"}.fa-calendar-circle-minus:before{content:"\e46f"}.fa-chopsticks:before{content:"\e3f7"}.fa-car-mechanic:before,.fa-car-wrench:before{content:"\f5e3"}.fa-icicles:before{content:"\f7ad"}.fa-person-shelter:before{content:"\e54f"}.fa-neuter:before{content:"\f22c"}.fa-id-badge:before{content:"\f2c1"}.fa-kazoo:before{content:"\f8c7"}.fa-marker:before{content:"\f5a1"}.fa-bin-bottles:before{content:"\e5f5"}.fa-face-laugh-beam:before,.fa-laugh-beam:before{content:"\f59a"}.fa-square-arrow-down-left:before{content:"\e261"}.fa-battery-bolt:before{content:"\f376"}.fa-tree-large:before{content:"\f7dd"}.fa-helicopter-symbol:before{content:"\e502"}.fa-aperture:before{content:"\e2df"}.fa-universal-access:before{content:"\f29a"}.fa-gear-complex:before{content:"\e5e9"}.fa-file-magnifying-glass:before,.fa-file-search:before{content:"\f865"}.fa-up-right:before{content:"\e2be"}.fa-chevron-circle-up:before,.fa-circle-chevron-up:before{content:"\f139"}.fa-user-police:before{content:"\e333"}.fa-lari-sign:before{content:"\e1c8"}.fa-volcano:before{content:"\f770"}.fa-teddy-bear:before{content:"\e3cf"}.fa-stocking:before{content:"\f7d5"}.fa-person-walking-dashed-line-arrow-right:before{content:"\e553"}.fa-image-slash:before{content:"\e1b7"}.fa-mask-snorkel:before{content:"\e3b7"}.fa-smoke:before{content:"\f760"}.fa-gbp:before,.fa-pound-sign:before,.fa-sterling-sign:before{content:"\f154"}.fa-battery-exclamation:before{content:"\e0b0"}.fa-viruses:before{content:"\e076"}.fa-square-person-confined:before{content:"\e577"}.fa-user-tie:before{content:"\f508"}.fa-up-to-bracket:before{content:"\e66e"}.fa-arrow-down-long:before,.fa-long-arrow-down:before{content:"\f175"}.fa-tent-arrow-down-to-line:before{content:"\e57e"}.fa-certificate:before{content:"\f0a3"}.fa-crystal-ball:before{content:"\e362"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-suitcase:before{content:"\f0f2"}.fa-person-skating:before,.fa-skating:before{content:"\f7c5"}.fa-star-shooting:before{content:"\e036"}.fa-binary-lock:before{content:"\e33d"}.fa-filter-circle-dollar:before,.fa-funnel-dollar:before{content:"\f662"}.fa-camera-retro:before{content:"\f083"}.fa-arrow-circle-down:before,.fa-circle-arrow-down:before{content:"\f0ab"}.fa-comment-edit:before,.fa-comment-pen:before{content:"\f4ae"}.fa-arrow-right-to-file:before,.fa-file-import:before{content:"\f56f"}.fa-banjo:before{content:"\f8a3"}.fa-external-link-square:before,.fa-square-arrow-up-right:before{content:"\f14c"}.fa-light-emergency-on:before{content:"\e420"}.fa-kerning:before{content:"\f86f"}.fa-box-open:before{content:"\f49e"}.fa-square-f:before{content:"\e270"}.fa-scroll:before{content:"\f70e"}.fa-spa:before{content:"\f5bb"}.fa-arrow-from-right:before,.fa-arrow-left-from-line:before{content:"\f344"}.fa-strawberry:before{content:"\e32b"}.fa-location-pin-lock:before{content:"\e51f"}.fa-pause:before{content:"\f04c"}.fa-clock-eight-thirty:before{content:"\e346"}.fa-plane-alt:before,.fa-plane-engines:before{content:"\f3de"}.fa-hill-avalanche:before{content:"\e507"}.fa-temperature-0:before,.fa-temperature-empty:before,.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-bomb:before{content:"\f1e2"}.fa-gauge-low:before,.fa-tachometer-alt-slow:before{content:"\f627"}.fa-registered:before{content:"\f25d"}.fa-trash-can-plus:before{content:"\e2ac"}.fa-address-card:before,.fa-contact-card:before,.fa-vcard:before{content:"\f2bb"}.fa-balance-scale-right:before,.fa-scale-unbalanced-flip:before{content:"\f516"}.fa-globe-snow:before{content:"\f7a3"}.fa-subscript:before{content:"\f12c"}.fa-diamond-turn-right:before,.fa-directions:before{content:"\f5eb"}.fa-integral:before{content:"\f667"}.fa-burst:before{content:"\e4dc"}.fa-house-laptop:before,.fa-laptop-house:before{content:"\e066"}.fa-face-tired:before,.fa-tired:before{content:"\f5c8"}.fa-money-bills:before{content:"\e1f3"}.fa-blinds-raised:before{content:"\f8fd"}.fa-smog:before{content:"\f75f"}.fa-ufo-beam:before{content:"\e048"}.fa-caret-circle-up:before,.fa-circle-caret-up:before{content:"\f331"}.fa-user-vneck-hair-long:before{content:"\e463"}.fa-square-a-lock:before{content:"\e44d"}.fa-crutch:before{content:"\f7f7"}.fa-gas-pump-slash:before{content:"\f5f4"}.fa-cloud-arrow-up:before,.fa-cloud-upload-alt:before,.fa-cloud-upload:before{content:"\f0ee"}.fa-palette:before{content:"\f53f"}.fa-transporter-4:before{content:"\e2a5"}.fa-chart-mixed-up-circle-currency:before{content:"\e5d8"}.fa-objects-align-right:before{content:"\e3bf"}.fa-arrows-turn-right:before{content:"\e4c0"}.fa-vest:before{content:"\e085"}.fa-pig:before{content:"\f706"}.fa-inbox-full:before{content:"\e1ba"}.fa-circle-envelope:before,.fa-envelope-circle:before{content:"\e10c"}.fa-construction:before,.fa-triangle-person-digging:before{content:"\f85d"}.fa-ferry:before{content:"\e4ea"}.fa-bullseye-arrow:before{content:"\f648"}.fa-arrows-down-to-people:before{content:"\e4b9"}.fa-seedling:before,.fa-sprout:before{content:"\f4d8"}.fa-clock-seven:before{content:"\e350"}.fa-arrows-alt-h:before,.fa-left-right:before{content:"\f337"}.fa-boxes-packing:before{content:"\e4c7"}.fa-arrow-circle-left:before,.fa-circle-arrow-left:before{content:"\f0a8"}.fa-flashlight:before{content:"\f8b8"}.fa-file-jpg:before{content:"\e646"}.fa-group-arrows-rotate:before{content:"\e4f6"}.fa-bowl-food:before{content:"\e4c6"}.fa-square-9:before{content:"\e25e"}.fa-candy-cane:before{content:"\f786"}.fa-arrow-down-wide-short:before,.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:"\f160"}.fa-dollar-square:before,.fa-square-dollar:before,.fa-usd-square:before{content:"\f2e9"}.fa-phone-arrow-right:before{content:"\e5be"}.fa-hand-holding-seedling:before{content:"\f4bf"}.fa-comment-alt-check:before,.fa-message-check:before{content:"\f4a2"}.fa-cloud-bolt:before,.fa-thunderstorm:before{content:"\f76c"}.fa-chart-line-up-down:before{content:"\e5d7"}.fa-remove-format:before,.fa-text-slash:before{content:"\f87d"}.fa-watch:before{content:"\f2e1"}.fa-circle-down-left:before{content:"\e107"}.fa-text:before{content:"\f893"}.fa-projector:before{content:"\f8d6"}.fa-face-smile-wink:before,.fa-smile-wink:before{content:"\f4da"}.fa-tombstone-alt:before,.fa-tombstone-blank:before{content:"\f721"}.fa-chess-king-alt:before,.fa-chess-king-piece:before{content:"\f440"}.fa-circle-6:before{content:"\e0f3"}.fa-waves-sine:before{content:"\e65d"}.fa-arrow-alt-left:before,.fa-left:before{content:"\f355"}.fa-file-word:before{content:"\f1c2"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-arrow-alt-square-down:before,.fa-square-down:before{content:"\f350"}.fa-objects-align-center-vertical:before{content:"\e3bd"}.fa-arrows-h:before,.fa-arrows-left-right:before{content:"\f07e"}.fa-house-lock:before{content:"\e510"}.fa-cloud-arrow-down:before,.fa-cloud-download-alt:before,.fa-cloud-download:before{content:"\f0ed"}.fa-wreath:before{content:"\f7e2"}.fa-children:before{content:"\e4e1"}.fa-meter-droplet:before{content:"\e1ea"}.fa-blackboard:before,.fa-chalkboard:before{content:"\f51b"}.fa-user-alt-slash:before,.fa-user-large-slash:before{content:"\f4fa"}.fa-signal-4:before,.fa-signal-strong:before{content:"\f68f"}.fa-lollipop:before,.fa-lollypop:before{content:"\e424"}.fa-list-tree:before{content:"\e1d2"}.fa-envelope-open:before{content:"\f2b6"}.fa-draw-circle:before{content:"\f5ed"}.fa-cat-space:before{content:"\e001"}.fa-handshake-alt-slash:before,.fa-handshake-simple-slash:before{content:"\e05f"}.fa-rabbit-fast:before,.fa-rabbit-running:before{content:"\f709"}.fa-memo-pad:before{content:"\e1da"}.fa-mattress-pillow:before{content:"\e525"}.fa-alarm-plus:before{content:"\f844"}.fa-alicorn:before{content:"\f6b0"}.fa-comment-question:before{content:"\e14b"}.fa-gingerbread-man:before{content:"\f79d"}.fa-guarani-sign:before{content:"\e19a"}.fa-burger-fries:before{content:"\e0cd"}.fa-mug-tea:before{content:"\f875"}.fa-border-top:before{content:"\f855"}.fa-arrows-rotate:before,.fa-refresh:before,.fa-sync:before{content:"\f021"}.fa-book-circle:before,.fa-circle-book-open:before{content:"\e0ff"}.fa-arrows-to-dotted-line:before{content:"\e0a6"}.fa-fire-extinguisher:before{content:"\f134"}.fa-magnifying-glass-arrows-rotate:before{content:"\e65e"}.fa-garage-open:before{content:"\e00b"}.fa-shelves-empty:before{content:"\e246"}.fa-cruzeiro-sign:before{content:"\e152"}.fa-watch-apple:before{content:"\e2cb"}.fa-watch-calculator:before{content:"\f8f0"}.fa-list-dropdown:before{content:"\e1cf"}.fa-cabinet-filing:before{content:"\f64b"}.fa-burger-soda:before{content:"\f858"}.fa-arrow-square-up:before,.fa-square-arrow-up:before{content:"\f33c"}.fa-greater-than-equal:before{content:"\f532"}.fa-pallet-box:before{content:"\e208"}.fa-face-confounded:before{content:"\e36c"}.fa-shield-alt:before,.fa-shield-halved:before{content:"\f3ed"}.fa-truck-plow:before{content:"\f7de"}.fa-atlas:before,.fa-book-atlas:before{content:"\f558"}.fa-virus:before{content:"\e074"}.fa-grid-round-2:before{content:"\e5db"}.fa-comment-middle-top:before{content:"\e14a"}.fa-wave:before{content:"\e65b"}.fa-envelope-circle-check:before{content:"\e4e8"}.fa-layer-group:before{content:"\f5fd"}.fa-restroom-simple:before{content:"\e23a"}.fa-arrows-to-dot:before{content:"\e4be"}.fa-border-outer:before{content:"\f851"}.fa-hashtag-lock:before{content:"\e415"}.fa-clock-two-thirty:before{content:"\e35b"}.fa-archway:before{content:"\f557"}.fa-heart-circle-check:before{content:"\e4fd"}.fa-house-chimney-crack:before,.fa-house-damage:before{content:"\f6f1"}.fa-file-archive:before,.fa-file-zipper:before{content:"\f1c6"}.fa-ticket-perforated:before{content:"\e63e"}.fa-heart-half:before{content:"\e1ab"}.fa-comment-check:before{content:"\f4ac"}.fa-square:before{content:"\f0c8"}.fa-memo:before{content:"\e1d8"}.fa-glass-martini:before,.fa-martini-glass-empty:before{content:"\f000"}.fa-couch:before{content:"\f4b8"}.fa-cedi-sign:before{content:"\e0df"}.fa-italic:before{content:"\f033"}.fa-glass-citrus:before{content:"\f869"}.fa-calendar-lines-pen:before{content:"\e472"}.fa-table-cells-column-lock:before{content:"\e678"}.fa-church:before{content:"\f51d"}.fa-person-snowmobiling:before,.fa-snowmobile:before{content:"\f7d1"}.fa-face-hushed:before{content:"\e37b"}.fa-comments-dollar:before{content:"\f653"}.fa-tickets-simple:before{content:"\e659"}.fa-pickaxe:before{content:"\e5bf"}.fa-link-simple-slash:before{content:"\e1ce"}.fa-democrat:before{content:"\f747"}.fa-face-confused:before{content:"\e36d"}.fa-pinball:before{content:"\e229"}.fa-z:before{content:"\5a"}.fa-person-skiing:before,.fa-skiing:before{content:"\f7c9"}.fa-deer:before{content:"\f78e"}.fa-input-pipe:before{content:"\e1be"}.fa-road-lock:before{content:"\e567"}.fa-a:before{content:"\41"}.fa-bookmark-slash:before{content:"\e0c2"}.fa-temperature-arrow-down:before,.fa-temperature-down:before{content:"\e03f"}.fa-mace:before{content:"\f6f8"}.fa-feather-alt:before,.fa-feather-pointed:before{content:"\f56b"}.fa-sausage:before{content:"\f820"}.fa-trash-can-clock:before{content:"\e2aa"}.fa-p:before{content:"\50"}.fa-broom-wide:before{content:"\e5d1"}.fa-snowflake:before{content:"\f2dc"}.fa-stomach:before{content:"\f623"}.fa-newspaper:before{content:"\f1ea"}.fa-ad:before,.fa-rectangle-ad:before{content:"\f641"}.fa-guitar-electric:before{content:"\f8be"}.fa-arrow-turn-down-right:before{content:"\e3d6"}.fa-moon-cloud:before{content:"\f754"}.fa-bread-slice-butter:before{content:"\e3e1"}.fa-arrow-circle-right:before,.fa-circle-arrow-right:before{content:"\f0a9"}.fa-user-group-crown:before,.fa-users-crown:before{content:"\f6a5"}.fa-circle-i:before{content:"\e111"}.fa-toilet-paper-check:before{content:"\e5b2"}.fa-filter-circle-xmark:before{content:"\e17b"}.fa-locust:before{content:"\e520"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-list-1-2:before,.fa-list-numeric:before,.fa-list-ol:before{content:"\f0cb"}.fa-chart-waterfall:before{content:"\e0eb"}.fa-sparkle:before{content:"\e5d6"}.fa-face-party:before{content:"\e383"}.fa-kidneys:before{content:"\f5fb"}.fa-wifi-exclamation:before{content:"\e2cf"}.fa-chart-network:before{content:"\f78a"}.fa-person-dress-burst:before{content:"\e544"}.fa-dice-d4:before{content:"\f6d0"}.fa-money-check-alt:before,.fa-money-check-dollar:before{content:"\f53d"}.fa-vector-square:before{content:"\f5cb"}.fa-bread-slice:before{content:"\f7ec"}.fa-language:before{content:"\f1ab"}.fa-wheat-awn-slash:before{content:"\e338"}.fa-face-kiss-wink-heart:before,.fa-kiss-wink-heart:before{content:"\f598"}.fa-dagger:before{content:"\f6cb"}.fa-podium:before{content:"\f680"}.fa-memo-circle-check:before{content:"\e1d9"}.fa-route-highway:before{content:"\f61a"}.fa-arrow-alt-to-bottom:before,.fa-down-to-line:before{content:"\f34a"}.fa-filter:before{content:"\f0b0"}.fa-square-g:before{content:"\e271"}.fa-circle-phone:before,.fa-phone-circle:before{content:"\e11b"}.fa-clipboard-prescription:before{content:"\f5e8"}.fa-user-nurse-hair:before{content:"\e45d"}.fa-question:before{content:"\3f"}.fa-file-signature:before{content:"\f573"}.fa-toggle-large-on:before{content:"\e5b1"}.fa-arrows-alt:before,.fa-up-down-left-right:before{content:"\f0b2"}.fa-dryer-alt:before,.fa-dryer-heat:before{content:"\f862"}.fa-house-chimney-user:before{content:"\e065"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-arrow-up-small-big:before,.fa-sort-size-up-alt:before{content:"\f88f"}.fa-train-track:before{content:"\e453"}.fa-puzzle-piece:before{content:"\f12e"}.fa-money-check:before{content:"\f53c"}.fa-star-half-alt:before,.fa-star-half-stroke:before{content:"\f5c0"}.fa-file-exclamation:before{content:"\f31a"}.fa-code:before{content:"\f121"}.fa-glass-whiskey:before,.fa-whiskey-glass:before{content:"\f7a0"}.fa-moon-stars:before{content:"\f755"}.fa-building-circle-exclamation:before{content:"\e4d3"}.fa-clothes-hanger:before{content:"\e136"}.fa-mobile-iphone:before,.fa-mobile-notch:before{content:"\e1ee"}.fa-magnifying-glass-chart:before{content:"\e522"}.fa-arrow-up-right-from-square:before,.fa-external-link:before{content:"\f08e"}.fa-cubes-stacked:before{content:"\e4e6"}.fa-images-user:before{content:"\e1b9"}.fa-krw:before,.fa-won-sign:before,.fa-won:before{content:"\f159"}.fa-image-polaroid-user:before{content:"\e1b6"}.fa-virus-covid:before{content:"\e4a8"}.fa-square-ellipsis:before{content:"\e26e"}.fa-pie:before{content:"\f705"}.fa-chess-knight-alt:before,.fa-chess-knight-piece:before{content:"\f442"}.fa-austral-sign:before{content:"\e0a9"}.fa-cloud-plus:before{content:"\e35e"}.fa-f:before{content:"\46"}.fa-leaf:before{content:"\f06c"}.fa-bed-bunk:before{content:"\f8f8"}.fa-road:before{content:"\f018"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-person-circle-plus:before{content:"\e541"}.fa-chart-pie:before,.fa-pie-chart:before{content:"\f200"}.fa-bolt-lightning:before{content:"\e0b7"}.fa-clock-eight:before{content:"\e345"}.fa-sack-xmark:before{content:"\e56a"}.fa-file-xls:before{content:"\e64d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-contract:before{content:"\f56c"}.fa-fish-fins:before{content:"\e4f2"}.fa-circle-q:before{content:"\e11e"}.fa-building-flag:before{content:"\e4d5"}.fa-face-grin-beam:before,.fa-grin-beam:before{content:"\f582"}.fa-object-ungroup:before{content:"\f248"}.fa-face-disguise:before{content:"\e370"}.fa-circle-arrow-down-right:before{content:"\e0fa"}.fa-alien-8bit:before,.fa-alien-monster:before{content:"\f8f6"}.fa-hand-point-ribbon:before{content:"\e1a6"}.fa-poop:before{content:"\f619"}.fa-object-exclude:before{content:"\e49c"}.fa-telescope:before{content:"\e03e"}.fa-location-pin:before,.fa-map-marker:before{content:"\f041"}.fa-square-list:before{content:"\e489"}.fa-kaaba:before{content:"\f66b"}.fa-toilet-paper:before{content:"\f71e"}.fa-hard-hat:before,.fa-hat-hard:before,.fa-helmet-safety:before{content:"\f807"}.fa-comment-code:before{content:"\e147"}.fa-sim-cards:before{content:"\e251"}.fa-starship:before{content:"\e039"}.fa-eject:before{content:"\f052"}.fa-arrow-alt-circle-right:before,.fa-circle-right:before{content:"\f35a"}.fa-plane-circle-check:before{content:"\e555"}.fa-seal:before{content:"\e241"}.fa-user-cowboy:before{content:"\f8ea"}.fa-hexagon-vertical-nft:before{content:"\e505"}.fa-face-rolling-eyes:before,.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-bread-loaf:before{content:"\f7eb"}.fa-rings-wedding:before{content:"\f81b"}.fa-object-group:before{content:"\f247"}.fa-french-fries:before{content:"\f803"}.fa-chart-line:before,.fa-line-chart:before{content:"\f201"}.fa-calendar-arrow-down:before,.fa-calendar-download:before{content:"\e0d0"}.fa-send-back:before{content:"\f87e"}.fa-mask-ventilator:before{content:"\e524"}.fa-tickets:before{content:"\e658"}.fa-signature-lock:before{content:"\e3ca"}.fa-arrow-right:before{content:"\f061"}.fa-map-signs:before,.fa-signs-post:before{content:"\f277"}.fa-octagon-plus:before,.fa-plus-octagon:before{content:"\f301"}.fa-cash-register:before{content:"\f788"}.fa-person-circle-question:before{content:"\e542"}.fa-melon-slice:before{content:"\e311"}.fa-space-station-moon:before{content:"\e033"}.fa-comment-alt-smile:before,.fa-message-smile:before{content:"\f4aa"}.fa-cup-straw:before{content:"\e363"}.fa-arrow-alt-from-right:before,.fa-left-from-line:before{content:"\f348"}.fa-h:before{content:"\48"}.fa-basket-shopping-simple:before,.fa-shopping-basket-alt:before{content:"\e0af"}.fa-hands-heart:before,.fa-hands-holding-heart:before{content:"\f4c3"}.fa-clock-nine:before{content:"\e34c"}.fa-hammer-brush:before{content:"\e620"}.fa-tarp:before{content:"\e57b"}.fa-face-sleepy:before{content:"\e38e"}.fa-hand-horns:before{content:"\e1a9"}.fa-screwdriver-wrench:before,.fa-tools:before{content:"\f7d9"}.fa-arrows-to-eye:before{content:"\e4bf"}.fa-circle-three-quarters:before{content:"\e125"}.fa-trophy-alt:before,.fa-trophy-star:before{content:"\f2eb"}.fa-plug-circle-bolt:before{content:"\e55b"}.fa-face-thermometer:before{content:"\e39a"}.fa-grid-round-4:before{content:"\e5dd"}.fa-sign-posts-wrench:before{content:"\e626"}.fa-shirt-running:before{content:"\e3c8"}.fa-book-circle-arrow-up:before{content:"\e0bd"}.fa-face-nauseated:before{content:"\e381"}.fa-heart:before{content:"\f004"}.fa-file-chart-pie:before{content:"\f65a"}.fa-mars-and-venus:before{content:"\f224"}.fa-home-user:before,.fa-house-user:before{content:"\e1b0"}.fa-circle-arrow-down-left:before{content:"\e0f9"}.fa-dumpster-fire:before{content:"\f794"}.fa-hexagon-minus:before,.fa-minus-hexagon:before{content:"\f307"}.fa-arrow-alt-to-left:before,.fa-left-to-line:before{content:"\f34b"}.fa-house-crack:before{content:"\e3b1"}.fa-paw-alt:before,.fa-paw-simple:before{content:"\f701"}.fa-arrow-left-long-to-line:before{content:"\e3d4"}.fa-brackets-round:before,.fa-parentheses:before{content:"\e0c5"}.fa-cocktail:before,.fa-martini-glass-citrus:before{content:"\f561"}.fa-user-shakespeare:before{content:"\e2c2"}.fa-arrow-right-to-arc:before{content:"\e4b2"}.fa-face-surprise:before,.fa-surprise:before{content:"\f5c2"}.fa-bottle-water:before{content:"\e4c5"}.fa-circle-pause:before,.fa-pause-circle:before{content:"\f28b"}.fa-gauge-circle-plus:before{content:"\e498"}.fa-folders:before{content:"\f660"}.fa-angel:before{content:"\f779"}.fa-value-absolute:before{content:"\f6a6"}.fa-rabbit:before{content:"\f708"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-circle-euro:before{content:"\e5ce"}.fa-apple-alt:before,.fa-apple-whole:before{content:"\f5d1"}.fa-kitchen-set:before{content:"\e51a"}.fa-diamond-half:before{content:"\e5b7"}.fa-lock-alt:before,.fa-lock-keyhole:before{content:"\f30d"}.fa-r:before{content:"\52"}.fa-temperature-1:before,.fa-temperature-quarter:before,.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-info-square:before,.fa-square-info:before{content:"\f30f"}.fa-wifi-slash:before{content:"\f6ac"}.fa-toilet-paper-xmark:before{content:"\e5b3"}.fa-hands-holding-dollar:before,.fa-hands-usd:before{content:"\f4c5"}.fa-cube:before{content:"\f1b2"}.fa-arrow-down-triangle-square:before,.fa-sort-shapes-down:before{content:"\f888"}.fa-bitcoin-sign:before{content:"\e0b4"}.fa-shutters:before{content:"\e449"}.fa-shield-dog:before{content:"\e573"}.fa-solar-panel:before{content:"\f5ba"}.fa-lock-open:before{content:"\f3c1"}.fa-table-tree:before{content:"\e293"}.fa-house-chimney-heart:before{content:"\e1b2"}.fa-tally-3:before{content:"\e296"}.fa-elevator:before{content:"\e16d"}.fa-money-bill-transfer:before{content:"\e528"}.fa-money-bill-trend-up:before{content:"\e529"}.fa-house-flood-water-circle-arrow-right:before{content:"\e50f"}.fa-poll-h:before,.fa-square-poll-horizontal:before{content:"\f682"}.fa-circle:before{content:"\f111"}.fa-left-to-bracket:before{content:"\e66d"}.fa-cart-circle-exclamation:before{content:"\e3f2"}.fa-sword:before{content:"\f71c"}.fa-backward-fast:before,.fa-fast-backward:before{content:"\f049"}.fa-recycle:before{content:"\f1b8"}.fa-user-astronaut:before{content:"\f4fb"}.fa-interrobang:before{content:"\e5ba"}.fa-plane-slash:before{content:"\e069"}.fa-circle-dashed:before{content:"\e105"}.fa-trademark:before{content:"\f25c"}.fa-basketball-ball:before,.fa-basketball:before{content:"\f434"}.fa-fork-knife:before,.fa-utensils-alt:before{content:"\f2e6"}.fa-satellite-dish:before{content:"\f7c0"}.fa-badge-check:before{content:"\f336"}.fa-arrow-alt-circle-up:before,.fa-circle-up:before{content:"\f35b"}.fa-slider:before{content:"\e252"}.fa-mobile-alt:before,.fa-mobile-screen-button:before{content:"\f3cd"}.fa-clock-one-thirty:before{content:"\e34f"}.fa-inbox-arrow-up:before,.fa-inbox-out:before{content:"\f311"}.fa-cloud-slash:before{content:"\e137"}.fa-volume-high:before,.fa-volume-up:before{content:"\f028"}.fa-users-rays:before{content:"\e593"}.fa-wallet:before{content:"\f555"}.fa-octagon-check:before{content:"\e426"}.fa-flatbread-stuffed:before{content:"\e40c"}.fa-clipboard-check:before{content:"\f46c"}.fa-cart-circle-plus:before{content:"\e3f3"}.fa-shipping-timed:before,.fa-truck-clock:before{content:"\f48c"}.fa-pool-8-ball:before{content:"\e3c5"}.fa-file-audio:before{content:"\f1c7"}.fa-turn-down-left:before{content:"\e331"}.fa-lock-hashtag:before{content:"\e423"}.fa-chart-radar:before{content:"\e0e7"}.fa-staff:before{content:"\f71b"}.fa-burger:before,.fa-hamburger:before{content:"\f805"}.fa-utility-pole:before{content:"\e2c3"}.fa-transporter-6:before{content:"\e2a7"}.fa-arrow-turn-left:before{content:"\e632"}.fa-wrench:before{content:"\f0ad"}.fa-bugs:before{content:"\e4d0"}.fa-vector-polygon:before{content:"\e2c7"}.fa-diagram-nested:before{content:"\e157"}.fa-rupee-sign:before,.fa-rupee:before{content:"\f156"}.fa-file-image:before{content:"\f1c5"}.fa-circle-question:before,.fa-question-circle:before{content:"\f059"}.fa-tickets-perforated:before{content:"\e63f"}.fa-image-user:before{content:"\e1b8"}.fa-buoy:before{content:"\e5b5"}.fa-plane-departure:before{content:"\f5b0"}.fa-handshake-slash:before{content:"\e060"}.fa-book-bookmark:before{content:"\e0bb"}.fa-border-center-h:before{content:"\f89c"}.fa-can-food:before{content:"\e3e6"}.fa-typewriter:before{content:"\f8e7"}.fa-arrow-right-from-arc:before{content:"\e4b1"}.fa-circle-k:before{content:"\e113"}.fa-face-hand-over-mouth:before{content:"\e378"}.fa-popcorn:before{content:"\f819"}.fa-house-flood:before,.fa-house-water:before{content:"\f74f"}.fa-object-subtract:before{content:"\e49e"}.fa-code-branch:before{content:"\f126"}.fa-warehouse-alt:before,.fa-warehouse-full:before{content:"\f495"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-bridge:before{content:"\e4c8"}.fa-phone-alt:before,.fa-phone-flip:before{content:"\f879"}.fa-arrow-down-from-dotted-line:before{content:"\e090"}.fa-file-doc:before{content:"\e5ed"}.fa-square-quarters:before{content:"\e44e"}.fa-truck-front:before{content:"\e2b7"}.fa-cat:before{content:"\f6be"}.fa-trash-xmark:before{content:"\e2b4"}.fa-caret-circle-left:before,.fa-circle-caret-left:before{content:"\f32e"}.fa-files:before{content:"\e178"}.fa-anchor-circle-exclamation:before{content:"\e4ab"}.fa-face-clouds:before{content:"\e47d"}.fa-user-crown:before{content:"\f6a4"}.fa-basket-shopping-plus:before{content:"\e653"}.fa-truck-field:before{content:"\e58d"}.fa-route:before{content:"\f4d7"}.fa-cart-circle-check:before{content:"\e3f1"}.fa-clipboard-question:before{content:"\e4e3"}.fa-panorama:before{content:"\e209"}.fa-comment-medical:before{content:"\f7f5"}.fa-teeth-open:before{content:"\f62f"}.fa-user-tie-hair-long:before{content:"\e460"}.fa-file-circle-minus:before{content:"\e4ed"}.fa-head-side-medical:before{content:"\f809"}.fa-arrow-turn-right:before{content:"\e635"}.fa-tags:before{content:"\f02c"}.fa-wine-glass:before{content:"\f4e3"}.fa-fast-forward:before,.fa-forward-fast:before{content:"\f050"}.fa-face-meh-blank:before,.fa-meh-blank:before{content:"\f5a4"}.fa-user-robot:before{content:"\e04b"}.fa-parking:before,.fa-square-parking:before{content:"\f540"}.fa-card-diamond:before{content:"\e3ea"}.fa-face-zipper:before{content:"\e3a5"}.fa-face-raised-eyebrow:before{content:"\e388"}.fa-house-signal:before{content:"\e012"}.fa-chevron-square-up:before,.fa-square-chevron-up:before{content:"\f32c"}.fa-bars-progress:before,.fa-tasks-alt:before{content:"\f828"}.fa-faucet-drip:before{content:"\e006"}.fa-arrows-to-line:before{content:"\e0a7"}.fa-dolphin:before{content:"\e168"}.fa-arrow-up-right:before{content:"\e09f"}.fa-circle-r:before{content:"\e120"}.fa-cart-flatbed:before,.fa-dolly-flatbed:before{content:"\f474"}.fa-ban-smoking:before,.fa-smoking-ban:before{content:"\f54d"}.fa-circle-sort-up:before,.fa-sort-circle-up:before{content:"\e032"}.fa-terminal:before{content:"\f120"}.fa-mobile-button:before{content:"\f10b"}.fa-house-medical-flag:before{content:"\e514"}.fa-basket-shopping:before,.fa-shopping-basket:before{content:"\f291"}.fa-tape:before{content:"\f4db"}.fa-chestnut:before{content:"\e3f6"}.fa-bus-alt:before,.fa-bus-simple:before{content:"\f55e"}.fa-eye:before{content:"\f06e"}.fa-face-sad-cry:before,.fa-sad-cry:before{content:"\f5b3"}.fa-heat:before{content:"\e00c"}.fa-ticket-airline:before,.fa-ticket-perforated-plane:before,.fa-ticket-plane:before{content:"\e29a"}.fa-boot-heeled:before{content:"\e33f"}.fa-arrows-minimize:before,.fa-compress-arrows:before{content:"\e0a5"}.fa-audio-description:before{content:"\f29e"}.fa-person-military-to-person:before{content:"\e54c"}.fa-file-shield:before{content:"\e4f0"}.fa-hexagon:before{content:"\f312"}.fa-manhole:before{content:"\e1d6"}.fa-user-slash:before{content:"\f506"}.fa-pen:before{content:"\f304"}.fa-tower-observation:before{content:"\e586"}.fa-floppy-disks:before{content:"\e183"}.fa-toilet-paper-blank-under:before,.fa-toilet-paper-reverse-alt:before{content:"\e29f"}.fa-file-code:before{content:"\f1c9"}.fa-signal-5:before,.fa-signal-perfect:before,.fa-signal:before{content:"\f012"}.fa-pump:before{content:"\e442"}.fa-bus:before{content:"\f207"}.fa-heart-circle-xmark:before{content:"\e501"}.fa-arrow-up-left-from-circle:before{content:"\e09e"}.fa-home-lg:before,.fa-house-chimney:before{content:"\e3af"}.fa-window-maximize:before{content:"\f2d0"}.fa-dryer:before{content:"\f861"}.fa-face-frown:before,.fa-frown:before{content:"\f119"}.fa-chess-bishop-alt:before,.fa-chess-bishop-piece:before{content:"\f43b"}.fa-shirt-tank-top:before{content:"\e3c9"}.fa-diploma:before,.fa-scroll-ribbon:before{content:"\f5ea"}.fa-screencast:before{content:"\e23e"}.fa-walker:before{content:"\f831"}.fa-prescription:before{content:"\f5b1"}.fa-shop:before,.fa-store-alt:before{content:"\f54f"}.fa-floppy-disk:before,.fa-save:before{content:"\f0c7"}.fa-vihara:before{content:"\f6a7"}.fa-face-kiss-closed-eyes:before{content:"\e37d"}.fa-balance-scale-left:before,.fa-scale-unbalanced:before{content:"\f515"}.fa-file-user:before{content:"\f65c"}.fa-user-police-tie:before{content:"\e334"}.fa-face-tongue-money:before{content:"\e39d"}.fa-tennis-ball:before{content:"\f45e"}.fa-square-l:before{content:"\e275"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-calendar-arrow-up:before,.fa-calendar-upload:before{content:"\e0d1"}.fa-comment-dots:before,.fa-commenting:before{content:"\f4ad"}.fa-plant-wilt:before{content:"\e5aa"}.fa-scarf:before{content:"\f7c1"}.fa-album-circle-plus:before{content:"\e48c"}.fa-user-nurse-hair-long:before{content:"\e45e"}.fa-diamond:before{content:"\f219"}.fa-arrow-alt-square-left:before,.fa-square-left:before{content:"\f351"}.fa-face-grin-squint:before,.fa-grin-squint:before{content:"\f585"}.fa-circle-ellipsis-vertical:before{content:"\e10b"}.fa-hand-holding-dollar:before,.fa-hand-holding-usd:before{content:"\f4c0"}.fa-grid-dividers:before{content:"\e3ad"}.fa-bacterium:before{content:"\e05a"}.fa-hand-pointer:before{content:"\f25a"}.fa-drum-steelpan:before{content:"\f56a"}.fa-hand-scissors:before{content:"\f257"}.fa-hands-praying:before,.fa-praying-hands:before{content:"\f684"}.fa-face-pensive:before{content:"\e384"}.fa-user-music:before{content:"\f8eb"}.fa-arrow-right-rotate:before,.fa-arrow-rotate-forward:before,.fa-arrow-rotate-right:before,.fa-redo:before{content:"\f01e"}.fa-comments-alt-dollar:before,.fa-messages-dollar:before{content:"\f652"}.fa-sensor-on:before{content:"\e02b"}.fa-balloon:before{content:"\e2e3"}.fa-biohazard:before{content:"\f780"}.fa-chess-queen-alt:before,.fa-chess-queen-piece:before{content:"\f446"}.fa-location-crosshairs:before,.fa-location:before{content:"\f601"}.fa-mars-double:before{content:"\f227"}.fa-left-from-bracket:before{content:"\e66c"}.fa-house-leave:before,.fa-house-person-depart:before,.fa-house-person-leave:before{content:"\e00f"}.fa-ruler-triangle:before{content:"\f61c"}.fa-card-club:before{content:"\e3e9"}.fa-child-dress:before{content:"\e59c"}.fa-users-between-lines:before{content:"\e591"}.fa-lungs-virus:before{content:"\e067"}.fa-spinner-third:before{content:"\f3f4"}.fa-face-grin-tears:before,.fa-grin-tears:before{content:"\f588"}.fa-phone:before{content:"\f095"}.fa-computer-mouse-scrollwheel:before,.fa-mouse-alt:before{content:"\f8cd"}.fa-calendar-times:before,.fa-calendar-xmark:before{content:"\f273"}.fa-child-reaching:before{content:"\e59d"}.fa-table-layout:before{content:"\e290"}.fa-narwhal:before{content:"\f6fe"}.fa-ramp-loading:before{content:"\f4d4"}.fa-calendar-circle-plus:before{content:"\e470"}.fa-toothbrush:before{content:"\f635"}.fa-border-inner:before{content:"\f84e"}.fa-paw-claws:before{content:"\f702"}.fa-kiwi-fruit:before{content:"\e30c"}.fa-traffic-light-slow:before{content:"\f639"}.fa-rectangle-code:before{content:"\e322"}.fa-head-side-virus:before{content:"\e064"}.fa-keyboard-brightness:before{content:"\e1c0"}.fa-books-medical:before{content:"\f7e8"}.fa-lightbulb-slash:before{content:"\f673"}.fa-home-blank:before,.fa-house-blank:before{content:"\e487"}.fa-square-5:before{content:"\e25a"}.fa-heart-square:before,.fa-square-heart:before{content:"\f4c8"}.fa-puzzle:before{content:"\e443"}.fa-user-cog:before,.fa-user-gear:before{content:"\f4fe"}.fa-pipe-circle-check:before{content:"\e436"}.fa-arrow-up-1-9:before,.fa-sort-numeric-up:before{content:"\f163"}.fa-octagon-exclamation:before{content:"\e204"}.fa-dial-low:before{content:"\e15d"}.fa-door-closed:before{content:"\f52a"}.fa-laptop-mobile:before,.fa-phone-laptop:before{content:"\f87a"}.fa-conveyor-belt-alt:before,.fa-conveyor-belt-boxes:before{content:"\f46f"}.fa-shield-virus:before{content:"\e06c"}.fa-starfighter-alt-advanced:before,.fa-starfighter-twin-ion-engine-advanced:before{content:"\e28e"}.fa-dice-six:before{content:"\f526"}.fa-starfighter-alt:before,.fa-starfighter-twin-ion-engine:before{content:"\e038"}.fa-rocket-launch:before{content:"\e027"}.fa-mosquito-net:before{content:"\e52c"}.fa-vent-damper:before{content:"\e465"}.fa-bridge-water:before{content:"\e4ce"}.fa-ban-bug:before,.fa-debug:before{content:"\f7f9"}.fa-person-booth:before{content:"\f756"}.fa-text-width:before{content:"\f035"}.fa-garage-car:before{content:"\e00a"}.fa-square-kanban:before{content:"\e488"}.fa-hat-wizard:before{content:"\f6e8"}.fa-chart-kanban:before{content:"\e64f"}.fa-pen-fancy:before{content:"\f5ac"}.fa-coffee-pot:before{content:"\e002"}.fa-mouse-field:before{content:"\e5a8"}.fa-digging:before,.fa-person-digging:before{content:"\f85e"}.fa-shower-alt:before,.fa-shower-down:before{content:"\e24d"}.fa-box-circle-check:before{content:"\e0c4"}.fa-brightness:before{content:"\e0c9"}.fa-car-side-bolt:before{content:"\e344"}.fa-file-xml:before{content:"\e654"}.fa-ornament:before{content:"\f7b8"}.fa-phone-arrow-down-left:before,.fa-phone-arrow-down:before,.fa-phone-incoming:before{content:"\e223"}.fa-cloud-word:before{content:"\e138"}.fa-hand-fingers-crossed:before{content:"\e1a3"}.fa-trash:before{content:"\f1f8"}.fa-gauge-simple-med:before,.fa-gauge-simple:before,.fa-tachometer-average:before{content:"\f629"}.fa-arrow-down-small-big:before,.fa-sort-size-down-alt:before{content:"\f88d"}.fa-book-medical:before{content:"\f7e6"}.fa-face-melting:before{content:"\e483"}.fa-poo:before{content:"\f2fe"}.fa-pen-alt-slash:before,.fa-pen-clip-slash:before{content:"\e20f"}.fa-quote-right-alt:before,.fa-quote-right:before{content:"\f10e"}.fa-scroll-old:before{content:"\f70f"}.fa-guitars:before{content:"\f8bf"}.fa-phone-xmark:before{content:"\e227"}.fa-hose:before{content:"\e419"}.fa-clock-six:before{content:"\e352"}.fa-shirt:before,.fa-t-shirt:before,.fa-tshirt:before{content:"\f553"}.fa-billboard:before{content:"\e5cd"}.fa-square-r:before{content:"\e27c"}.fa-cubes:before{content:"\f1b3"}.fa-envelope-open-dollar:before{content:"\f657"}.fa-divide:before{content:"\f529"}.fa-sun-cloud:before{content:"\f763"}.fa-lamp-floor:before{content:"\e015"}.fa-square-7:before{content:"\e25c"}.fa-tenge-sign:before,.fa-tenge:before{content:"\f7d7"}.fa-headphones:before{content:"\f025"}.fa-hands-holding:before{content:"\f4c2"}.fa-campfire:before{content:"\f6ba"}.fa-circle-ampersand:before{content:"\e0f8"}.fa-snowflakes:before{content:"\f7cf"}.fa-hands-clapping:before{content:"\e1a8"}.fa-republican:before{content:"\f75e"}.fa-leaf-maple:before{content:"\f6f6"}.fa-arrow-left:before{content:"\f060"}.fa-person-circle-xmark:before{content:"\e543"}.fa-ruler:before{content:"\f545"}.fa-arrow-left-from-bracket:before{content:"\e668"}.fa-cup-straw-swoosh:before{content:"\e364"}.fa-temperature-hot:before,.fa-temperature-sun:before{content:"\f76a"}.fa-align-left:before{content:"\f036"}.fa-dice-d6:before{content:"\f6d1"}.fa-restroom:before{content:"\f7bd"}.fa-high-definition:before,.fa-rectangle-hd:before{content:"\e1ae"}.fa-j:before{content:"\4a"}.fa-galaxy:before{content:"\e008"}.fa-users-viewfinder:before{content:"\e595"}.fa-file-video:before{content:"\f1c8"}.fa-cherries:before{content:"\e0ec"}.fa-external-link-alt:before,.fa-up-right-from-square:before{content:"\f35d"}.fa-circle-sort:before,.fa-sort-circle:before{content:"\e030"}.fa-table-cells:before,.fa-th:before{content:"\f00a"}.fa-bag-shopping-minus:before{content:"\e650"}.fa-file-pdf:before{content:"\f1c1"}.fa-siren:before{content:"\e02d"}.fa-arrow-up-to-dotted-line:before{content:"\e0a1"}.fa-image-landscape:before,.fa-landscape:before{content:"\e1b5"}.fa-tank-water:before{content:"\e452"}.fa-curling-stone:before,.fa-curling:before{content:"\f44a"}.fa-gamepad-alt:before,.fa-gamepad-modern:before{content:"\e5a2"}.fa-messages-question:before{content:"\e1e7"}.fa-bible:before,.fa-book-bible:before{content:"\f647"}.fa-o:before{content:"\4f"}.fa-medkit:before,.fa-suitcase-medical:before{content:"\f0fa"}.fa-briefcase-arrow-right:before{content:"\e2f2"}.fa-expand-wide:before{content:"\f320"}.fa-clock-eleven-thirty:before{content:"\e348"}.fa-rv:before{content:"\f7be"}.fa-user-secret:before{content:"\f21b"}.fa-otter:before{content:"\f700"}.fa-dreidel:before{content:"\f792"}.fa-female:before,.fa-person-dress:before{content:"\f182"}.fa-comment-dollar:before{content:"\f651"}.fa-briefcase-clock:before,.fa-business-time:before{content:"\f64a"}.fa-flower-tulip:before{content:"\f801"}.fa-people-pants-simple:before{content:"\e21a"}.fa-cloud-drizzle:before{content:"\f738"}.fa-table-cells-large:before,.fa-th-large:before{content:"\f009"}.fa-book-tanakh:before,.fa-tanakh:before{content:"\f827"}.fa-solar-system:before{content:"\e02f"}.fa-seal-question:before{content:"\e243"}.fa-phone-volume:before,.fa-volume-control-phone:before{content:"\f2a0"}.fa-disc-drive:before{content:"\f8b5"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-rows:before,.fa-table-rows:before{content:"\e292"}.fa-location-exclamation:before,.fa-map-marker-exclamation:before{content:"\f608"}.fa-face-fearful:before{content:"\e375"}.fa-clipboard-user:before{content:"\f7f3"}.fa-bus-school:before{content:"\f5dd"}.fa-film-slash:before{content:"\e179"}.fa-square-arrow-down-right:before{content:"\e262"}.fa-book-sparkles:before,.fa-book-spells:before{content:"\f6b8"}.fa-washer:before,.fa-washing-machine:before{content:"\f898"}.fa-child:before{content:"\f1ae"}.fa-lira-sign:before{content:"\f195"}.fa-user-visor:before{content:"\e04c"}.fa-file-plus-minus:before{content:"\e177"}.fa-chess-clock-alt:before,.fa-chess-clock-flip:before{content:"\f43e"}.fa-satellite:before{content:"\f7bf"}.fa-truck-fire:before{content:"\e65a"}.fa-plane-lock:before{content:"\e558"}.fa-steering-wheel:before{content:"\f622"}.fa-tag:before{content:"\f02b"}.fa-stretcher:before{content:"\f825"}.fa-book-law:before,.fa-book-section:before{content:"\e0c1"}.fa-inboxes:before{content:"\e1bb"}.fa-coffee-bean:before{content:"\e13e"}.fa-circle-yen:before{content:"\e5d0"}.fa-brackets-curly:before{content:"\f7ea"}.fa-ellipsis-stroke-vertical:before,.fa-ellipsis-v-alt:before{content:"\f39c"}.fa-comment:before{content:"\f075"}.fa-square-1:before{content:"\e256"}.fa-birthday-cake:before,.fa-cake-candles:before,.fa-cake:before{content:"\f1fd"}.fa-head-side:before{content:"\f6e9"}.fa-truck-ladder:before{content:"\e657"}.fa-envelope:before{content:"\f0e0"}.fa-dolly-empty:before{content:"\f473"}.fa-face-tissue:before{content:"\e39c"}.fa-angle-double-up:before,.fa-angles-up:before{content:"\f102"}.fa-bin-recycle:before{content:"\e5f7"}.fa-paperclip:before{content:"\f0c6"}.fa-chart-line-down:before{content:"\f64d"}.fa-arrow-right-to-city:before{content:"\e4b3"}.fa-lock-a:before{content:"\e422"}.fa-ribbon:before{content:"\f4d6"}.fa-lungs:before{content:"\f604"}.fa-person-pinball:before{content:"\e21d"}.fa-arrow-up-9-1:before,.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-apple-core:before{content:"\e08f"}.fa-circle-y:before{content:"\e12f"}.fa-h6:before{content:"\e413"}.fa-litecoin-sign:before{content:"\e1d3"}.fa-bottle-baby:before{content:"\e673"}.fa-circle-small:before{content:"\e122"}.fa-border-none:before{content:"\f850"}.fa-arrow-turn-down-left:before{content:"\e2e1"}.fa-circle-wifi-circle-wifi:before,.fa-circle-wifi-group:before{content:"\e67e"}.fa-circle-nodes:before{content:"\e4e2"}.fa-parachute-box:before{content:"\f4cd"}.fa-reflect-horizontal:before{content:"\e664"}.fa-comment-alt-medical:before,.fa-message-medical:before{content:"\f7f4"}.fa-rugby-ball:before{content:"\e3c6"}.fa-comment-music:before{content:"\f8b0"}.fa-indent:before{content:"\f03c"}.fa-tree-alt:before,.fa-tree-deciduous:before{content:"\f400"}.fa-puzzle-piece-alt:before,.fa-puzzle-piece-simple:before{content:"\e231"}.fa-truck-field-un:before{content:"\e58e"}.fa-nfc-trash:before{content:"\e1fd"}.fa-hourglass-empty:before,.fa-hourglass:before{content:"\f254"}.fa-mountain:before{content:"\f6fc"}.fa-file-times:before,.fa-file-xmark:before{content:"\f317"}.fa-home-heart:before,.fa-house-heart:before{content:"\f4c9"}.fa-house-chimney-blank:before{content:"\e3b0"}.fa-meter-bolt:before{content:"\e1e9"}.fa-user-doctor:before,.fa-user-md:before{content:"\f0f0"}.fa-slash-back:before{content:"\5c"}.fa-circle-info:before,.fa-info-circle:before{content:"\f05a"}.fa-fishing-rod:before{content:"\e3a8"}.fa-hammer-crash:before{content:"\e414"}.fa-message-heart:before{content:"\e5c9"}.fa-cloud-meatball:before{content:"\f73b"}.fa-camera-polaroid:before{content:"\f8aa"}.fa-camera-alt:before,.fa-camera:before{content:"\f030"}.fa-square-virus:before{content:"\e578"}.fa-cart-arrow-up:before{content:"\e3ee"}.fa-meteor:before{content:"\f753"}.fa-car-on:before{content:"\e4dd"}.fa-sleigh:before{content:"\f7cc"}.fa-arrow-down-1-9:before,.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:"\f162"}.fa-buoy-mooring:before{content:"\e5b6"}.fa-square-4:before{content:"\e259"}.fa-hand-holding-droplet:before,.fa-hand-holding-water:before{content:"\f4c1"}.fa-file-eps:before{content:"\e644"}.fa-tricycle-adult:before{content:"\e5c4"}.fa-waveform:before{content:"\f8f1"}.fa-water:before{content:"\f773"}.fa-star-sharp-half-alt:before,.fa-star-sharp-half-stroke:before{content:"\e28d"}.fa-nfc-signal:before{content:"\e1fb"}.fa-plane-prop:before{content:"\e22b"}.fa-calendar-check:before{content:"\f274"}.fa-clock-desk:before{content:"\e134"}.fa-calendar-clock:before,.fa-calendar-time:before{content:"\e0d2"}.fa-braille:before{content:"\f2a1"}.fa-prescription-bottle-alt:before,.fa-prescription-bottle-medical:before{content:"\f486"}.fa-plate-utensils:before{content:"\e43b"}.fa-family-pants:before{content:"\e302"}.fa-hose-reel:before{content:"\e41a"}.fa-house-window:before{content:"\e3b3"}.fa-landmark:before{content:"\f66f"}.fa-truck:before{content:"\f0d1"}.fa-music-magnifying-glass:before{content:"\e662"}.fa-crosshairs:before{content:"\f05b"}.fa-cloud-rainbow:before{content:"\f73e"}.fa-person-cane:before{content:"\e53c"}.fa-alien:before{content:"\f8f5"}.fa-tent:before{content:"\e57d"}.fa-laptop-binary:before{content:"\e5e7"}.fa-vest-patches:before{content:"\e086"}.fa-people-dress-simple:before{content:"\e218"}.fa-check-double:before{content:"\f560"}.fa-arrow-down-a-z:before,.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:"\f15d"}.fa-bowling-ball-pin:before{content:"\e0c3"}.fa-bell-school-slash:before{content:"\f5d6"}.fa-plus-large:before{content:"\e59e"}.fa-money-bill-wheat:before{content:"\e52a"}.fa-camera-viewfinder:before,.fa-screenshot:before{content:"\e0da"}.fa-comment-alt-music:before,.fa-message-music:before{content:"\f8af"}.fa-car-building:before{content:"\f859"}.fa-border-bottom-right:before,.fa-border-style-alt:before{content:"\f854"}.fa-octagon:before{content:"\f306"}.fa-comment-arrow-up-right:before{content:"\e145"}.fa-octagon-divide:before{content:"\e203"}.fa-cookie:before{content:"\f563"}.fa-arrow-left-rotate:before,.fa-arrow-rotate-back:before,.fa-arrow-rotate-backward:before,.fa-arrow-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-tv-music:before{content:"\f8e6"}.fa-hard-drive:before,.fa-hdd:before{content:"\f0a0"}.fa-reel:before{content:"\e238"}.fa-face-grin-squint-tears:before,.fa-grin-squint-tears:before{content:"\f586"}.fa-dumbbell:before{content:"\f44b"}.fa-list-alt:before,.fa-rectangle-list:before{content:"\f022"}.fa-tarp-droplet:before{content:"\e57c"}.fa-alarm-exclamation:before{content:"\f843"}.fa-house-medical-circle-check:before{content:"\e511"}.fa-traffic-cone:before{content:"\f636"}.fa-grate:before{content:"\e193"}.fa-arrow-down-right:before{content:"\e093"}.fa-person-skiing-nordic:before,.fa-skiing-nordic:before{content:"\f7ca"}.fa-calendar-plus:before{content:"\f271"}.fa-person-from-portal:before,.fa-portal-exit:before{content:"\e023"}.fa-plane-arrival:before{content:"\f5af"}.fa-cowbell-circle-plus:before,.fa-cowbell-more:before{content:"\f8b4"}.fa-arrow-alt-circle-left:before,.fa-circle-left:before{content:"\f359"}.fa-distribute-spacing-vertical:before{content:"\e366"}.fa-signal-alt-2:before,.fa-signal-bars-fair:before{content:"\f692"}.fa-sportsball:before{content:"\e44b"}.fa-game-console-handheld-crank:before{content:"\e5b9"}.fa-subway:before,.fa-train-subway:before{content:"\f239"}.fa-chart-gantt:before{content:"\e0e4"}.fa-face-smile-upside-down:before{content:"\e395"}.fa-ball-pile:before{content:"\f77e"}.fa-badge-dollar:before{content:"\f645"}.fa-money-bills-alt:before,.fa-money-bills-simple:before{content:"\e1f4"}.fa-list-timeline:before{content:"\e1d1"}.fa-indian-rupee-sign:before,.fa-indian-rupee:before,.fa-inr:before{content:"\e1bc"}.fa-crop-alt:before,.fa-crop-simple:before{content:"\f565"}.fa-money-bill-1:before,.fa-money-bill-alt:before{content:"\f3d1"}.fa-left-long:before,.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-keyboard-down:before{content:"\e1c2"}.fa-circle-up-right:before{content:"\e129"}.fa-cloud-bolt-moon:before,.fa-thunderstorm-moon:before{content:"\f76d"}.fa-turn-left-up:before{content:"\e638"}.fa-dna:before{content:"\f471"}.fa-virus-slash:before{content:"\e075"}.fa-bracket-round-right:before{content:"\29"}.fa-circle-sterling:before{content:"\e5cf"}.fa-circle-5:before{content:"\e0f2"}.fa-minus:before,.fa-subtract:before{content:"\f068"}.fa-fire-flame:before,.fa-flame:before{content:"\f6df"}.fa-arrow-alt-to-right:before,.fa-right-to-line:before{content:"\f34c"}.fa-gif:before{content:"\e190"}.fa-chess:before{content:"\f439"}.fa-trash-slash:before{content:"\e2b3"}.fa-arrow-left-long:before,.fa-long-arrow-left:before{content:"\f177"}.fa-plug-circle-check:before{content:"\e55c"}.fa-font-case:before{content:"\f866"}.fa-street-view:before{content:"\f21d"}.fa-arrow-down-left:before{content:"\e091"}.fa-franc-sign:before{content:"\e18f"}.fa-flask-poison:before,.fa-flask-round-poison:before{content:"\f6e0"}.fa-volume-off:before{content:"\f026"}.fa-book-circle-arrow-right:before{content:"\e0bc"}.fa-chart-user:before,.fa-user-chart:before{content:"\f6a3"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before,.fa-hands-american-sign-language-interpreting:before,.fa-hands-asl-interpreting:before{content:"\f2a3"}.fa-presentation-screen:before,.fa-presentation:before{content:"\f685"}.fa-circle-bolt:before{content:"\e0fe"}.fa-face-smile-halo:before{content:"\e38f"}.fa-cart-circle-arrow-down:before{content:"\e3ef"}.fa-house-person-arrive:before,.fa-house-person-return:before,.fa-house-return:before{content:"\e011"}.fa-comment-alt-times:before,.fa-message-times:before,.fa-message-xmark:before{content:"\f4ab"}.fa-file-award:before,.fa-file-certificate:before{content:"\f5f3"}.fa-user-doctor-hair-long:before{content:"\e459"}.fa-camera-home:before,.fa-camera-security:before{content:"\f8fe"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-droplet-slash:before,.fa-tint-slash:before{content:"\f5c7"}.fa-book-heart:before{content:"\f499"}.fa-mosque:before{content:"\f678"}.fa-duck:before{content:"\f6d8"}.fa-mosquito:before{content:"\e52b"}.fa-star-of-david:before{content:"\f69a"}.fa-flag-alt:before,.fa-flag-swallowtail:before{content:"\f74c"}.fa-person-military-rifle:before{content:"\e54b"}.fa-car-garage:before{content:"\f5e2"}.fa-cart-shopping:before,.fa-shopping-cart:before{content:"\f07a"}.fa-book-font:before{content:"\e0bf"}.fa-shield-plus:before{content:"\e24a"}.fa-vials:before{content:"\f493"}.fa-eye-dropper-full:before{content:"\e172"}.fa-distribute-spacing-horizontal:before{content:"\e365"}.fa-tablet-rugged:before{content:"\f48f"}.fa-temperature-frigid:before,.fa-temperature-snow:before{content:"\f768"}.fa-moped:before{content:"\e3b9"}.fa-face-smile-plus:before,.fa-smile-plus:before{content:"\f5b9"}.fa-radio-alt:before,.fa-radio-tuner:before{content:"\f8d8"}.fa-face-swear:before{content:"\e399"}.fa-water-arrow-down:before,.fa-water-lower:before{content:"\f774"}.fa-scanner-touchscreen:before{content:"\f48a"}.fa-circle-7:before{content:"\e0f4"}.fa-plug-circle-plus:before{content:"\e55f"}.fa-person-ski-jumping:before,.fa-ski-jump:before{content:"\f7c7"}.fa-place-of-worship:before{content:"\f67f"}.fa-water-arrow-up:before,.fa-water-rise:before{content:"\f775"}.fa-waveform-lines:before,.fa-waveform-path:before{content:"\f8f2"}.fa-split:before{content:"\e254"}.fa-film-canister:before,.fa-film-cannister:before{content:"\f8b7"}.fa-folder-times:before,.fa-folder-xmark:before{content:"\f65f"}.fa-toilet-paper-alt:before,.fa-toilet-paper-blank:before{content:"\f71f"}.fa-tablet-android-alt:before,.fa-tablet-screen:before{content:"\f3fc"}.fa-hexagon-vertical-nft-slanted:before{content:"\e506"}.fa-folder-music:before{content:"\e18d"}.fa-desktop-medical:before,.fa-display-medical:before{content:"\e166"}.fa-share-all:before{content:"\f367"}.fa-peapod:before{content:"\e31c"}.fa-chess-clock:before{content:"\f43d"}.fa-axe:before{content:"\f6b2"}.fa-square-d:before{content:"\e268"}.fa-grip-vertical:before{content:"\f58e"}.fa-mobile-signal-out:before{content:"\e1f0"}.fa-arrow-turn-up:before,.fa-level-up:before{content:"\f148"}.fa-u:before{content:"\55"}.fa-arrow-up-from-dotted-line:before{content:"\e09b"}.fa-square-root-alt:before,.fa-square-root-variable:before{content:"\f698"}.fa-light-switch-on:before{content:"\e019"}.fa-arrow-down-arrow-up:before,.fa-sort-alt:before{content:"\f883"}.fa-raindrops:before{content:"\f75c"}.fa-dash:before,.fa-minus-large:before{content:"\e404"}.fa-clock-four:before,.fa-clock:before{content:"\f017"}.fa-input-numeric:before{content:"\e1bd"}.fa-truck-tow:before{content:"\e2b8"}.fa-backward-step:before,.fa-step-backward:before{content:"\f048"}.fa-pallet:before{content:"\f482"}.fa-car-bolt:before{content:"\e341"}.fa-arrows-maximize:before,.fa-expand-arrows:before{content:"\f31d"}.fa-faucet:before{content:"\e005"}.fa-cloud-sleet:before{content:"\f741"}.fa-lamp-street:before{content:"\e1c5"}.fa-list-radio:before{content:"\e1d0"}.fa-pen-nib-slash:before{content:"\e4a1"}.fa-baseball-bat-ball:before{content:"\f432"}.fa-square-up-left:before{content:"\e282"}.fa-overline:before{content:"\f876"}.fa-s:before{content:"\53"}.fa-timeline:before{content:"\e29c"}.fa-keyboard:before{content:"\f11c"}.fa-arrows-from-dotted-line:before{content:"\e0a3"}.fa-usb-drive:before{content:"\f8e9"}.fa-ballot:before{content:"\f732"}.fa-caret-down:before{content:"\f0d7"}.fa-location-dot-slash:before,.fa-map-marker-alt-slash:before{content:"\f605"}.fa-cards:before{content:"\e3ed"}.fa-clinic-medical:before,.fa-house-chimney-medical:before{content:"\f7f2"}.fa-boxing-glove:before,.fa-glove-boxing:before{content:"\f438"}.fa-temperature-3:before,.fa-temperature-three-quarters:before,.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-bell-school:before{content:"\f5d5"}.fa-mobile-android-alt:before,.fa-mobile-screen:before{content:"\f3cf"}.fa-plane-up:before{content:"\e22d"}.fa-folder-heart:before{content:"\e189"}.fa-circle-location-arrow:before,.fa-location-circle:before{content:"\f602"}.fa-face-head-bandage:before{content:"\e37a"}.fa-maki-roll:before,.fa-makizushi:before,.fa-sushi-roll:before{content:"\e48b"}.fa-car-bump:before{content:"\f5e0"}.fa-piggy-bank:before{content:"\f4d3"}.fa-racquet:before{content:"\f45a"}.fa-car-mirrors:before{content:"\e343"}.fa-industry-alt:before,.fa-industry-windows:before{content:"\f3b3"}.fa-bolt-auto:before{content:"\e0b6"}.fa-battery-3:before,.fa-battery-half:before{content:"\f242"}.fa-flux-capacitor:before{content:"\f8ba"}.fa-mountain-city:before{content:"\e52e"}.fa-coins:before{content:"\f51e"}.fa-honey-pot:before{content:"\e418"}.fa-olive:before{content:"\e316"}.fa-khanda:before{content:"\f66d"}.fa-filter-list:before{content:"\e17c"}.fa-outlet:before{content:"\e01c"}.fa-sliders-h:before,.fa-sliders:before{content:"\f1de"}.fa-cauldron:before{content:"\f6bf"}.fa-people:before{content:"\e216"}.fa-folder-tree:before{content:"\f802"}.fa-network-wired:before{content:"\f6ff"}.fa-croissant:before{content:"\f7f6"}.fa-map-pin:before{content:"\f276"}.fa-hamsa:before{content:"\f665"}.fa-cent-sign:before{content:"\e3f5"}.fa-swords-laser:before{content:"\e03d"}.fa-flask:before{content:"\f0c3"}.fa-person-pregnant:before{content:"\e31e"}.fa-square-u:before{content:"\e281"}.fa-wand-sparkles:before{content:"\f72b"}.fa-router:before{content:"\f8da"}.fa-ellipsis-v:before,.fa-ellipsis-vertical:before{content:"\f142"}.fa-sword-laser-alt:before{content:"\e03c"}.fa-ticket:before{content:"\f145"}.fa-power-off:before{content:"\f011"}.fa-coin:before{content:"\f85c"}.fa-laptop-slash:before{content:"\e1c7"}.fa-long-arrow-alt-right:before,.fa-right-long:before{content:"\f30b"}.fa-circle-b:before{content:"\e0fd"}.fa-person-dress-simple:before{content:"\e21c"}.fa-pipe-collar:before{content:"\e437"}.fa-lights-holiday:before{content:"\f7b2"}.fa-citrus:before{content:"\e2f4"}.fa-flag-usa:before{content:"\f74d"}.fa-laptop-file:before{content:"\e51d"}.fa-teletype:before,.fa-tty:before{content:"\f1e4"}.fa-chart-tree-map:before{content:"\e0ea"}.fa-diagram-next:before{content:"\e476"}.fa-person-rifle:before{content:"\e54e"}.fa-clock-five-thirty:before{content:"\e34a"}.fa-pipe-valve:before{content:"\e439"}.fa-arrow-up-from-arc:before{content:"\e4b4"}.fa-face-spiral-eyes:before{content:"\e485"}.fa-compress-wide:before{content:"\f326"}.fa-circle-phone-hangup:before,.fa-phone-circle-down:before{content:"\e11d"}.fa-gear-complex-code:before{content:"\e5eb"}.fa-house-medical-circle-exclamation:before{content:"\e512"}.fa-badminton:before{content:"\e33a"}.fa-closed-captioning:before{content:"\f20a"}.fa-hiking:before,.fa-person-hiking:before{content:"\f6ec"}.fa-arrow-alt-from-left:before,.fa-right-from-line:before{content:"\f347"}.fa-venus-double:before{content:"\f226"}.fa-images:before{content:"\f302"}.fa-calculator:before{content:"\f1ec"}.fa-shuttlecock:before{content:"\f45b"}.fa-user-hair:before{content:"\e45a"}.fa-eye-evil:before{content:"\f6db"}.fa-people-pulling:before{content:"\e535"}.fa-n:before{content:"\4e"}.fa-swap:before{content:"\e609"}.fa-garage:before{content:"\e009"}.fa-cable-car:before,.fa-tram:before{content:"\f7da"}.fa-shovel-snow:before{content:"\f7c3"}.fa-cloud-rain:before{content:"\f73d"}.fa-face-lying:before{content:"\e37e"}.fa-sprinkler:before{content:"\e035"}.fa-building-circle-xmark:before{content:"\e4d4"}.fa-person-sledding:before,.fa-sledding:before{content:"\f7cb"}.fa-game-console-handheld:before{content:"\f8bb"}.fa-ship:before{content:"\f21a"}.fa-clock-six-thirty:before{content:"\e353"}.fa-battery-slash:before{content:"\f377"}.fa-tugrik-sign:before{content:"\e2ba"}.fa-arrows-down-to-line:before{content:"\e4b8"}.fa-download:before{content:"\f019"}.fa-angles-up-down:before{content:"\e60d"}.fa-inventory:before,.fa-shelves:before{content:"\f480"}.fa-cloud-snow:before{content:"\f742"}.fa-face-grin:before,.fa-grin:before{content:"\f580"}.fa-backspace:before,.fa-delete-left:before{content:"\f55a"}.fa-oven:before{content:"\e01d"}.fa-cloud-binary:before{content:"\e601"}.fa-eye-dropper-empty:before,.fa-eye-dropper:before,.fa-eyedropper:before{content:"\f1fb"}.fa-comment-captions:before{content:"\e146"}.fa-comments-question:before{content:"\e14e"}.fa-scribble:before{content:"\e23f"}.fa-rotate-exclamation:before{content:"\e23c"}.fa-file-circle-check:before{content:"\e5a0"}.fa-glass:before{content:"\f804"}.fa-loader:before{content:"\e1d4"}.fa-forward:before{content:"\f04e"}.fa-user-pilot:before{content:"\e2c0"}.fa-mobile-android:before,.fa-mobile-phone:before,.fa-mobile:before{content:"\f3ce"}.fa-code-pull-request-closed:before{content:"\e3f9"}.fa-face-meh:before,.fa-meh:before{content:"\f11a"}.fa-align-center:before{content:"\f037"}.fa-book-dead:before,.fa-book-skull:before{content:"\f6b7"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-face-dotted:before{content:"\e47f"}.fa-face-worried:before{content:"\e3a3"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-court-sport:before{content:"\e643"}.fa-heart-circle-exclamation:before{content:"\e4fe"}.fa-home-alt:before,.fa-home-lg-alt:before,.fa-home:before,.fa-house:before{content:"\f015"}.fa-vector-circle:before{content:"\e2c6"}.fa-car-circle-bolt:before{content:"\e342"}.fa-calendar-week:before{content:"\f784"}.fa-flying-disc:before{content:"\e3a9"}.fa-laptop-medical:before{content:"\f812"}.fa-square-down-right:before{content:"\e26c"}.fa-b:before{content:"\42"}.fa-seat-airline:before{content:"\e244"}.fa-eclipse-alt:before,.fa-moon-over-sun:before{content:"\f74a"}.fa-pipe:before{content:"\7c"}.fa-file-medical:before{content:"\f477"}.fa-potato:before{content:"\e440"}.fa-dice-one:before{content:"\f525"}.fa-circle-a:before{content:"\e0f7"}.fa-helmet-battle:before{content:"\f6eb"}.fa-butter:before{content:"\e3e4"}.fa-blanket-fire:before{content:"\e3da"}.fa-kiwi-bird:before{content:"\f535"}.fa-castle:before{content:"\e0de"}.fa-golf-club:before{content:"\f451"}.fa-arrow-right-arrow-left:before,.fa-exchange:before{content:"\f0ec"}.fa-redo-alt:before,.fa-rotate-forward:before,.fa-rotate-right:before{content:"\f2f9"}.fa-cutlery:before,.fa-utensils:before{content:"\f2e7"}.fa-arrow-up-wide-short:before,.fa-sort-amount-up:before{content:"\f161"}.fa-chart-pie-simple-circle-dollar:before{content:"\e605"}.fa-balloons:before{content:"\e2e4"}.fa-mill-sign:before{content:"\e1ed"}.fa-bowl-rice:before{content:"\e2eb"}.fa-timeline-arrow:before{content:"\e29d"}.fa-skull:before{content:"\f54c"}.fa-game-board-alt:before,.fa-game-board-simple:before{content:"\f868"}.fa-circle-video:before,.fa-video-circle:before{content:"\e12b"}.fa-chart-scatter-bubble:before{content:"\e0e9"}.fa-house-turret:before{content:"\e1b4"}.fa-banana:before{content:"\e2e5"}.fa-hand-holding-skull:before{content:"\e1a4"}.fa-people-dress:before{content:"\e217"}.fa-couch-small:before,.fa-loveseat:before{content:"\f4cc"}.fa-broadcast-tower:before,.fa-tower-broadcast:before{content:"\f519"}.fa-truck-pickup:before{content:"\f63c"}.fa-block-quote:before{content:"\e0b5"}.fa-long-arrow-alt-up:before,.fa-up-long:before{content:"\f30c"}.fa-stop:before{content:"\f04d"}.fa-code-merge:before{content:"\f387"}.fa-money-check-dollar-pen:before,.fa-money-check-edit-alt:before{content:"\f873"}.fa-arrow-alt-from-bottom:before,.fa-up-from-line:before{content:"\f346"}.fa-upload:before{content:"\f093"}.fa-hurricane:before{content:"\f751"}.fa-grid-round-2-plus:before{content:"\e5dc"}.fa-people-pants:before{content:"\e219"}.fa-mound:before{content:"\e52d"}.fa-windsock:before{content:"\f777"}.fa-circle-half:before{content:"\e110"}.fa-brake-warning:before{content:"\e0c7"}.fa-toilet-portable:before{content:"\e583"}.fa-compact-disc:before{content:"\f51f"}.fa-file-arrow-down:before,.fa-file-download:before{content:"\f56d"}.fa-sax-hot:before,.fa-saxophone-fire:before{content:"\f8db"}.fa-camera-web-slash:before,.fa-webcam-slash:before{content:"\f833"}.fa-folder-medical:before{content:"\e18c"}.fa-folder-cog:before,.fa-folder-gear:before{content:"\e187"}.fa-hand-wave:before{content:"\e1a7"}.fa-arrow-up-arrow-down:before,.fa-sort-up-down:before{content:"\e099"}.fa-caravan:before{content:"\f8ff"}.fa-shield-cat:before{content:"\e572"}.fa-comment-alt-slash:before,.fa-message-slash:before{content:"\f4a9"}.fa-bolt:before,.fa-zap:before{content:"\f0e7"}.fa-trash-can-check:before{content:"\e2a9"}.fa-glass-water:before{content:"\e4f4"}.fa-oil-well:before{content:"\e532"}.fa-person-simple:before{content:"\e220"}.fa-arrow-turn-left-up:before{content:"\e634"}.fa-vault:before{content:"\e2c5"}.fa-mars:before{content:"\f222"}.fa-toilet:before{content:"\f7d8"}.fa-plane-circle-xmark:before{content:"\e557"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen-sign:before,.fa-yen:before{content:"\f157"}.fa-gear-code:before{content:"\e5e8"}.fa-notes:before{content:"\e202"}.fa-rouble:before,.fa-rub:before,.fa-ruble-sign:before,.fa-ruble:before{content:"\f158"}.fa-trash-arrow-turn-left:before,.fa-trash-undo:before{content:"\f895"}.fa-champagne-glass:before,.fa-glass-champagne:before{content:"\f79e"}.fa-objects-align-center-horizontal:before{content:"\e3bc"}.fa-sun:before{content:"\f185"}.fa-trash-alt-slash:before,.fa-trash-can-slash:before{content:"\e2ad"}.fa-screen-users:before,.fa-users-class:before{content:"\f63d"}.fa-guitar:before{content:"\f7a6"}.fa-arrow-square-left:before,.fa-square-arrow-left:before{content:"\f33a"}.fa-square-8:before{content:"\e25d"}.fa-face-smile-hearts:before{content:"\e390"}.fa-brackets-square:before,.fa-brackets:before{content:"\f7e9"}.fa-laptop-arrow-down:before{content:"\e1c6"}.fa-hockey-stick-puck:before{content:"\e3ae"}.fa-house-tree:before{content:"\e1b3"}.fa-signal-2:before,.fa-signal-fair:before{content:"\f68d"}.fa-face-laugh-wink:before,.fa-laugh-wink:before{content:"\f59c"}.fa-circle-dollar:before,.fa-dollar-circle:before,.fa-usd-circle:before{content:"\f2e8"}.fa-horse-head:before{content:"\f7ab"}.fa-arrows-repeat:before,.fa-repeat-alt:before{content:"\f364"}.fa-bore-hole:before{content:"\e4c3"}.fa-industry:before{content:"\f275"}.fa-image-polaroid:before{content:"\f8c4"}.fa-wave-triangle:before{content:"\f89a"}.fa-turn-left-down:before{content:"\e637"}.fa-person-running-fast:before{content:"\e5ff"}.fa-arrow-alt-circle-down:before,.fa-circle-down:before{content:"\f358"}.fa-grill:before{content:"\e5a3"}.fa-arrows-turn-to-dots:before{content:"\e4c1"}.fa-analytics:before,.fa-chart-mixed:before{content:"\f643"}.fa-florin-sign:before{content:"\e184"}.fa-arrow-down-short-wide:before,.fa-sort-amount-desc:before,.fa-sort-amount-down-alt:before{content:"\f884"}.fa-less-than:before{content:"\3c"}.fa-desktop-code:before,.fa-display-code:before{content:"\e165"}.fa-face-drooling:before{content:"\e372"}.fa-oil-temp:before,.fa-oil-temperature:before{content:"\f614"}.fa-question-square:before,.fa-square-question:before{content:"\f2fd"}.fa-air-conditioner:before{content:"\f8f4"}.fa-angle-down:before{content:"\f107"}.fa-mountains:before{content:"\f6fd"}.fa-omega:before{content:"\f67a"}.fa-car-tunnel:before{content:"\e4de"}.fa-person-dolly-empty:before{content:"\f4d1"}.fa-pan-food:before{content:"\e42b"}.fa-head-side-cough:before{content:"\e061"}.fa-grip-lines:before{content:"\f7a4"}.fa-thumbs-down:before{content:"\f165"}.fa-user-lock:before{content:"\f502"}.fa-arrow-right-long:before,.fa-long-arrow-right:before{content:"\f178"}.fa-tickets-airline:before,.fa-tickets-perforated-plane:before,.fa-tickets-plane:before{content:"\e29b"}.fa-tent-double-peak:before{content:"\e627"}.fa-anchor-circle-xmark:before{content:"\e4ac"}.fa-ellipsis-h:before,.fa-ellipsis:before{content:"\f141"}.fa-nfc-slash:before{content:"\e1fc"}.fa-chess-pawn:before{content:"\f443"}.fa-first-aid:before,.fa-kit-medical:before{content:"\f479"}.fa-grid-2-plus:before{content:"\e197"}.fa-bells:before{content:"\f77f"}.fa-person-through-window:before{content:"\e5a9"}.fa-toolbox:before{content:"\f552"}.fa-envelope-badge:before,.fa-envelope-dot:before{content:"\e16f"}.fa-magnifying-glass-waveform:before{content:"\e661"}.fa-hands-holding-circle:before{content:"\e4fb"}.fa-bug:before{content:"\f188"}.fa-bowl-chopsticks:before{content:"\e2e9"}.fa-credit-card-alt:before,.fa-credit-card:before{content:"\f09d"}.fa-circle-s:before{content:"\e121"}.fa-box-ballot:before{content:"\f735"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-hand-holding-hand:before{content:"\e4f7"}.fa-user-tie-hair:before{content:"\e45f"}.fa-podium-star:before{content:"\f758"}.fa-business-front:before,.fa-party-back:before,.fa-trian-balbot:before,.fa-user-hair-mullet:before{content:"\e45c"}.fa-microphone-stand:before{content:"\f8cb"}.fa-book-open-reader:before,.fa-book-reader:before{content:"\f5da"}.fa-family-dress:before{content:"\e301"}.fa-circle-x:before{content:"\e12e"}.fa-cabin:before{content:"\e46d"}.fa-mountain-sun:before{content:"\e52f"}.fa-chart-simple-horizontal:before{content:"\e474"}.fa-arrows-left-right-to-line:before{content:"\e4ba"}.fa-hand-back-point-left:before{content:"\e19f"}.fa-comment-alt-dots:before,.fa-message-dots:before,.fa-messaging:before{content:"\f4a3"}.fa-file-heart:before{content:"\e176"}.fa-beer-foam:before,.fa-beer-mug:before{content:"\e0b3"}.fa-dice-d20:before{content:"\f6cf"}.fa-drone:before{content:"\f85f"}.fa-truck-droplet:before{content:"\e58c"}.fa-file-circle-xmark:before{content:"\e5a1"}.fa-temperature-arrow-up:before,.fa-temperature-up:before{content:"\e040"}.fa-medal:before{content:"\f5a2"}.fa-person-fairy:before{content:"\e608"}.fa-bed:before{content:"\f236"}.fa-book-copy:before{content:"\e0be"}.fa-h-square:before,.fa-square-h:before{content:"\f0fd"}.fa-square-c:before{content:"\e266"}.fa-clock-two:before{content:"\e35a"}.fa-square-ellipsis-vertical:before{content:"\e26f"}.fa-calendar-users:before{content:"\e5e2"}.fa-podcast:before{content:"\f2ce"}.fa-bee:before{content:"\e0b2"}.fa-temperature-4:before,.fa-temperature-full:before,.fa-thermometer-4:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-bell:before{content:"\f0f3"}.fa-candy-bar:before,.fa-chocolate-bar:before{content:"\e3e8"}.fa-xmark-large:before{content:"\e59b"}.fa-pinata:before{content:"\e3c3"}.fa-file-ppt:before{content:"\e64a"}.fa-arrows-from-line:before{content:"\e0a4"}.fa-superscript:before{content:"\f12b"}.fa-bowl-spoon:before{content:"\e3e0"}.fa-hexagon-check:before{content:"\e416"}.fa-plug-circle-xmark:before{content:"\e560"}.fa-star-of-life:before{content:"\f621"}.fa-phone-slash:before{content:"\f3dd"}.fa-traffic-light-stop:before{content:"\f63a"}.fa-paint-roller:before{content:"\f5aa"}.fa-accent-grave:before{content:"\60"}.fa-hands-helping:before,.fa-handshake-angle:before{content:"\f4c4"}.fa-circle-0:before{content:"\e0ed"}.fa-dial-med-low:before{content:"\e160"}.fa-location-dot:before,.fa-map-marker-alt:before{content:"\f3c5"}.fa-crab:before{content:"\e3ff"}.fa-box-full:before,.fa-box-open-full:before{content:"\f49c"}.fa-file:before{content:"\f15b"}.fa-greater-than:before{content:"\3e"}.fa-quotes:before{content:"\e234"}.fa-pretzel:before{content:"\e441"}.fa-t-rex:before{content:"\e629"}.fa-person-swimming:before,.fa-swimmer:before{content:"\f5c4"}.fa-arrow-down:before{content:"\f063"}.fa-user-robot-xmarks:before{content:"\e4a7"}.fa-comment-alt-quote:before,.fa-message-quote:before{content:"\e1e4"}.fa-candy-corn:before{content:"\f6bd"}.fa-folder-magnifying-glass:before,.fa-folder-search:before{content:"\e18b"}.fa-notebook:before{content:"\e201"}.fa-circle-wifi:before{content:"\e67d"}.fa-droplet:before,.fa-tint:before{content:"\f043"}.fa-bullseye-pointer:before{content:"\f649"}.fa-eraser:before{content:"\f12d"}.fa-hexagon-image:before{content:"\e504"}.fa-earth-america:before,.fa-earth-americas:before,.fa-earth:before,.fa-globe-americas:before{content:"\f57d"}.fa-file-svg:before{content:"\e64b"}.fa-crate-apple:before{content:"\f6b1"}.fa-apple-crate:before{content:"\f6b1"}.fa-person-burst:before{content:"\e53b"}.fa-game-board:before{content:"\f867"}.fa-hat-chef:before{content:"\f86b"}.fa-hand-back-point-right:before{content:"\e1a1"}.fa-dove:before{content:"\f4ba"}.fa-snowflake-droplets:before{content:"\e5c1"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-grid-4:before{content:"\e198"}.fa-socks:before{content:"\f696"}.fa-face-sunglasses:before{content:"\e398"}.fa-inbox:before{content:"\f01c"}.fa-square-0:before{content:"\e255"}.fa-section:before{content:"\e447"}.fa-box-up:before,.fa-square-this-way-up:before{content:"\f49f"}.fa-gauge-high:before,.fa-tachometer-alt-fast:before,.fa-tachometer-alt:before{content:"\f625"}.fa-square-ampersand:before{content:"\e260"}.fa-envelope-open-text:before{content:"\f658"}.fa-lamp-desk:before{content:"\e014"}.fa-hospital-alt:before,.fa-hospital-wide:before,.fa-hospital:before{content:"\f0f8"}.fa-poll-people:before{content:"\f759"}.fa-glass-whiskey-rocks:before,.fa-whiskey-glass-ice:before{content:"\f7a1"}.fa-wine-bottle:before{content:"\f72f"}.fa-chess-rook:before{content:"\f447"}.fa-user-bounty-hunter:before{content:"\e2bf"}.fa-bars-staggered:before,.fa-reorder:before,.fa-stream:before{content:"\f550"}.fa-diagram-sankey:before{content:"\e158"}.fa-cloud-hail-mixed:before{content:"\f73a"}.fa-circle-up-left:before{content:"\e128"}.fa-dharmachakra:before{content:"\f655"}.fa-objects-align-left:before{content:"\e3be"}.fa-oil-can-drip:before{content:"\e205"}.fa-face-smiling-hands:before{content:"\e396"}.fa-broccoli:before{content:"\e3e2"}.fa-route-interstate:before{content:"\f61b"}.fa-ear-muffs:before{content:"\f795"}.fa-hotdog:before{content:"\f80f"}.fa-transporter-empty:before{content:"\e046"}.fa-blind:before,.fa-person-walking-with-cane:before{content:"\f29d"}.fa-angle-90:before{content:"\e08d"}.fa-rectangle-terminal:before{content:"\e236"}.fa-kite:before{content:"\f6f4"}.fa-drum:before{content:"\f569"}.fa-scrubber:before{content:"\f2f8"}.fa-ice-cream:before{content:"\f810"}.fa-heart-circle-bolt:before{content:"\e4fc"}.fa-fish-bones:before{content:"\e304"}.fa-deer-rudolph:before{content:"\f78f"}.fa-fax:before{content:"\f1ac"}.fa-paragraph:before{content:"\f1dd"}.fa-head-side-heart:before{content:"\e1aa"}.fa-square-e:before{content:"\e26d"}.fa-meter-fire:before{content:"\e1eb"}.fa-cloud-hail:before{content:"\f739"}.fa-check-to-slot:before,.fa-vote-yea:before{content:"\f772"}.fa-money-from-bracket:before{content:"\e312"}.fa-star-half:before{content:"\f089"}.fa-car-bus:before{content:"\f85a"}.fa-speaker:before{content:"\f8df"}.fa-timer:before{content:"\e29e"}.fa-boxes-alt:before,.fa-boxes-stacked:before,.fa-boxes:before{content:"\f468"}.fa-landmark-magnifying-glass:before{content:"\e622"}.fa-grill-hot:before{content:"\e5a5"}.fa-ballot-check:before{content:"\f733"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-assistive-listening-systems:before,.fa-ear-listen:before{content:"\f2a2"}.fa-file-minus:before{content:"\f318"}.fa-tree-city:before{content:"\e587"}.fa-play:before{content:"\f04b"}.fa-font:before{content:"\f031"}.fa-coffee-togo:before,.fa-cup-togo:before{content:"\f6c5"}.fa-square-down-left:before{content:"\e26b"}.fa-burger-lettuce:before{content:"\e3e3"}.fa-table-cells-row-lock:before{content:"\e67a"}.fa-rupiah-sign:before{content:"\e23d"}.fa-magnifying-glass:before,.fa-search:before{content:"\f002"}.fa-ping-pong-paddle-ball:before,.fa-table-tennis-paddle-ball:before,.fa-table-tennis:before{content:"\f45d"}.fa-diagnoses:before,.fa-person-dots-from-line:before{content:"\f470"}.fa-chevron-double-down:before,.fa-chevrons-down:before{content:"\f322"}.fa-trash-can-arrow-up:before,.fa-trash-restore-alt:before{content:"\f82a"}.fa-signal-3:before,.fa-signal-good:before{content:"\f68e"}.fa-location-question:before,.fa-map-marker-question:before{content:"\f60b"}.fa-floppy-disk-circle-xmark:before,.fa-floppy-disk-times:before,.fa-save-circle-xmark:before,.fa-save-times:before{content:"\e181"}.fa-naira-sign:before{content:"\e1f6"}.fa-peach:before{content:"\e20b"}.fa-taxi-bus:before{content:"\e298"}.fa-bracket-curly-left:before,.fa-bracket-curly:before{content:"\7b"}.fa-lobster:before{content:"\e421"}.fa-cart-flatbed-empty:before,.fa-dolly-flatbed-empty:before{content:"\f476"}.fa-colon:before{content:"\3a"}.fa-cart-arrow-down:before{content:"\f218"}.fa-wand:before{content:"\f72a"}.fa-walkie-talkie:before{content:"\f8ef"}.fa-file-edit:before,.fa-file-pen:before{content:"\f31c"}.fa-receipt:before{content:"\f543"}.fa-table-picnic:before{content:"\e32d"}.fa-pen-square:before,.fa-pencil-square:before,.fa-square-pen:before{content:"\f14b"}.fa-circle-microphone-lines:before,.fa-microphone-circle-alt:before{content:"\e117"}.fa-desktop-slash:before,.fa-display-slash:before{content:"\e2fa"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-person-circle-exclamation:before{content:"\e53f"}.fa-transporter-2:before{content:"\e044"}.fa-hand-receiving:before,.fa-hands-holding-diamond:before{content:"\f47c"}.fa-money-bill-simple-wave:before{content:"\e1f2"}.fa-chevron-down:before{content:"\f078"}.fa-battery-5:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-bell-plus:before{content:"\f849"}.fa-book-arrow-right:before{content:"\e0b9"}.fa-hospitals:before{content:"\f80e"}.fa-club:before{content:"\f327"}.fa-skull-crossbones:before{content:"\f714"}.fa-dewpoint:before,.fa-droplet-degree:before{content:"\f748"}.fa-code-compare:before{content:"\e13a"}.fa-list-dots:before,.fa-list-ul:before{content:"\f0ca"}.fa-hand-holding-magic:before{content:"\f6e5"}.fa-watermelon-slice:before{content:"\e337"}.fa-circle-ellipsis:before{content:"\e10a"}.fa-school-lock:before{content:"\e56f"}.fa-tower-cell:before{content:"\e585"}.fa-sd-cards:before{content:"\e240"}.fa-jug-bottle:before{content:"\e5fb"}.fa-down-long:before,.fa-long-arrow-alt-down:before{content:"\f309"}.fa-envelopes:before{content:"\e170"}.fa-phone-office:before{content:"\f67d"}.fa-ranking-star:before{content:"\e561"}.fa-chess-king:before{content:"\f43f"}.fa-nfc-pen:before{content:"\e1fa"}.fa-person-harassing:before{content:"\e549"}.fa-magnifying-glass-play:before{content:"\e660"}.fa-hat-winter:before{content:"\f7a8"}.fa-brazilian-real-sign:before{content:"\e46c"}.fa-landmark-alt:before,.fa-landmark-dome:before{content:"\f752"}.fa-bone-break:before{content:"\f5d8"}.fa-arrow-up:before{content:"\f062"}.fa-down-from-dotted-line:before{content:"\e407"}.fa-television:before,.fa-tv-alt:before,.fa-tv:before{content:"\f26c"}.fa-border-left:before{content:"\f84f"}.fa-circle-divide:before{content:"\e106"}.fa-shrimp:before{content:"\e448"}.fa-list-check:before,.fa-tasks:before{content:"\f0ae"}.fa-diagram-subtask:before{content:"\e479"}.fa-jug-detergent:before{content:"\e519"}.fa-circle-user:before,.fa-user-circle:before{content:"\f2bd"}.fa-square-y:before{content:"\e287"}.fa-user-doctor-hair:before{content:"\e458"}.fa-planet-ringed:before{content:"\e020"}.fa-mushroom:before{content:"\e425"}.fa-user-shield:before{content:"\f505"}.fa-megaphone:before{content:"\f675"}.fa-wreath-laurel:before{content:"\e5d2"}.fa-circle-exclamation-check:before{content:"\e10d"}.fa-wind:before{content:"\f72e"}.fa-box-dollar:before,.fa-box-usd:before{content:"\f4a0"}.fa-car-burst:before,.fa-car-crash:before{content:"\f5e1"}.fa-y:before{content:"\59"}.fa-user-headset:before{content:"\f82d"}.fa-arrows-retweet:before,.fa-retweet-alt:before{content:"\f361"}.fa-person-snowboarding:before,.fa-snowboarding:before{content:"\f7ce"}.fa-chevron-square-right:before,.fa-square-chevron-right:before{content:"\f32b"}.fa-lacrosse-stick-ball:before{content:"\e3b6"}.fa-shipping-fast:before,.fa-truck-fast:before{content:"\f48b"}.fa-user-magnifying-glass:before{content:"\e5c5"}.fa-star-sharp:before{content:"\e28b"}.fa-comment-heart:before{content:"\e5c8"}.fa-circle-1:before{content:"\e0ee"}.fa-circle-star:before,.fa-star-circle:before{content:"\e123"}.fa-fish:before{content:"\f578"}.fa-cloud-fog:before,.fa-fog:before{content:"\f74e"}.fa-waffle:before{content:"\e466"}.fa-music-alt:before,.fa-music-note:before{content:"\f8cf"}.fa-hexagon-exclamation:before{content:"\e417"}.fa-cart-shopping-fast:before{content:"\e0dc"}.fa-object-union:before{content:"\e49f"}.fa-user-graduate:before{content:"\f501"}.fa-starfighter:before{content:"\e037"}.fa-adjust:before,.fa-circle-half-stroke:before{content:"\f042"}.fa-arrow-right-long-to-line:before{content:"\e3d5"}.fa-arrow-square-down:before,.fa-square-arrow-down:before{content:"\f339"}.fa-diamond-half-stroke:before{content:"\e5b8"}.fa-clapperboard:before{content:"\e131"}.fa-chevron-square-left:before,.fa-square-chevron-left:before{content:"\f32a"}.fa-phone-intercom:before{content:"\e434"}.fa-chain-horizontal:before,.fa-link-horizontal:before{content:"\e1cb"}.fa-mango:before{content:"\e30f"}.fa-music-alt-slash:before,.fa-music-note-slash:before{content:"\f8d0"}.fa-circle-radiation:before,.fa-radiation-alt:before{content:"\f7ba"}.fa-face-tongue-sweat:before{content:"\e39e"}.fa-globe-stand:before{content:"\f5f6"}.fa-baseball-ball:before,.fa-baseball:before{content:"\f433"}.fa-circle-p:before{content:"\e11a"}.fa-award-simple:before{content:"\e0ab"}.fa-jet-fighter-up:before{content:"\e518"}.fa-diagram-project:before,.fa-project-diagram:before{content:"\f542"}.fa-pedestal:before{content:"\e20d"}.fa-chart-pyramid:before{content:"\e0e6"}.fa-sidebar:before{content:"\e24e"}.fa-frosty-head:before,.fa-snowman-head:before{content:"\f79b"}.fa-copy:before{content:"\f0c5"}.fa-burger-glass:before{content:"\e0ce"}.fa-volume-mute:before,.fa-volume-times:before,.fa-volume-xmark:before{content:"\f6a9"}.fa-hand-sparkles:before{content:"\e05d"}.fa-bars-filter:before{content:"\e0ad"}.fa-paintbrush-pencil:before{content:"\e206"}.fa-party-bell:before{content:"\e31a"}.fa-user-vneck-hair:before{content:"\e462"}.fa-jack-o-lantern:before{content:"\f30e"}.fa-grip-horizontal:before,.fa-grip:before{content:"\f58d"}.fa-share-from-square:before,.fa-share-square:before{content:"\f14d"}.fa-keynote:before{content:"\f66c"}.fa-child-combatant:before,.fa-child-rifle:before{content:"\e4e0"}.fa-gun:before{content:"\e19b"}.fa-phone-square:before,.fa-square-phone:before{content:"\f098"}.fa-hat-beach:before{content:"\e606"}.fa-add:before,.fa-plus:before{content:"\2b"}.fa-expand:before{content:"\f065"}.fa-computer:before{content:"\e4e5"}.fa-fort:before{content:"\e486"}.fa-cloud-check:before{content:"\e35c"}.fa-close:before,.fa-multiply:before,.fa-remove:before,.fa-times:before,.fa-xmark:before{content:"\f00d"}.fa-face-smirking:before{content:"\e397"}.fa-arrows-up-down-left-right:before,.fa-arrows:before{content:"\f047"}.fa-chalkboard-teacher:before,.fa-chalkboard-user:before{content:"\f51c"}.fa-rhombus:before{content:"\e23b"}.fa-claw-marks:before{content:"\f6c2"}.fa-peso-sign:before{content:"\e222"}.fa-face-smile-tongue:before{content:"\e394"}.fa-cart-circle-xmark:before{content:"\e3f4"}.fa-building-shield:before{content:"\e4d8"}.fa-circle-phone-flip:before,.fa-phone-circle-alt:before{content:"\e11c"}.fa-baby:before{content:"\f77c"}.fa-users-line:before{content:"\e592"}.fa-quote-left-alt:before,.fa-quote-left:before{content:"\f10d"}.fa-tractor:before{content:"\f722"}.fa-down-from-bracket:before{content:"\e66b"}.fa-key-skeleton:before{content:"\f6f3"}.fa-trash-arrow-up:before,.fa-trash-restore:before{content:"\f829"}.fa-arrow-down-up-lock:before{content:"\e4b0"}.fa-arrow-down-to-bracket:before{content:"\e094"}.fa-lines-leaning:before{content:"\e51e"}.fa-square-q:before{content:"\e27b"}.fa-ruler-combined:before{content:"\f546"}.fa-icons-alt:before,.fa-symbols:before{content:"\f86e"}.fa-copyright:before{content:"\f1f9"}.fa-flask-gear:before{content:"\e5f1"}.fa-highlighter-line:before{content:"\e1af"}.fa-bracket-left:before,.fa-bracket-square:before,.fa-bracket:before{content:"\5b"}.fa-island-tree-palm:before,.fa-island-tropical:before{content:"\f811"}.fa-arrow-from-left:before,.fa-arrow-right-from-line:before{content:"\f343"}.fa-h2:before{content:"\f314"}.fa-equals:before{content:"\3d"}.fa-cake-slice:before,.fa-shortcake:before{content:"\e3e5"}.fa-building-magnifying-glass:before{content:"\e61c"}.fa-peanut:before{content:"\e430"}.fa-wrench-simple:before{content:"\e2d1"}.fa-blender:before{content:"\f517"}.fa-teeth:before{content:"\f62e"}.fa-tally-2:before{content:"\e295"}.fa-ils:before,.fa-shekel-sign:before,.fa-shekel:before,.fa-sheqel-sign:before,.fa-sheqel:before{content:"\f20b"}.fa-cars:before{content:"\f85b"}.fa-axe-battle:before{content:"\f6b3"}.fa-user-hair-long:before{content:"\e45b"}.fa-map:before{content:"\f279"}.fa-arrow-left-from-arc:before{content:"\e615"}.fa-file-circle-info:before{content:"\e493"}.fa-face-disappointed:before{content:"\e36f"}.fa-lasso-sparkles:before{content:"\e1c9"}.fa-clock-eleven:before{content:"\e347"}.fa-rocket:before{content:"\f135"}.fa-siren-on:before{content:"\e02e"}.fa-clock-ten:before{content:"\e354"}.fa-candle-holder:before{content:"\f6bc"}.fa-video-arrow-down-left:before{content:"\e2c8"}.fa-photo-film:before,.fa-photo-video:before{content:"\f87c"}.fa-floppy-disk-circle-arrow-right:before,.fa-save-circle-arrow-right:before{content:"\e180"}.fa-folder-minus:before{content:"\f65d"}.fa-planet-moon:before{content:"\e01f"}.fa-face-eyes-xmarks:before{content:"\e374"}.fa-chart-scatter:before{content:"\f7ee"}.fa-circle-gf:before{content:"\e67f"}.fa-display-arrow-down:before{content:"\e164"}.fa-store:before{content:"\f54e"}.fa-arrow-trend-up:before{content:"\e098"}.fa-plug-circle-minus:before{content:"\e55e"}.fa-olive-branch:before{content:"\e317"}.fa-angle:before{content:"\e08c"}.fa-vacuum-robot:before{content:"\e04e"}.fa-sign-hanging:before,.fa-sign:before{content:"\f4d9"}.fa-square-divide:before{content:"\e26a"}.fa-folder-check:before{content:"\e64e"}.fa-signal-stream-slash:before{content:"\e250"}.fa-bezier-curve:before{content:"\f55b"}.fa-eye-dropper-half:before{content:"\e173"}.fa-store-lock:before{content:"\e4a6"}.fa-bell-slash:before{content:"\f1f6"}.fa-cloud-bolt-sun:before,.fa-thunderstorm-sun:before{content:"\f76e"}.fa-camera-slash:before{content:"\e0d9"}.fa-comment-quote:before{content:"\e14c"}.fa-tablet-android:before,.fa-tablet:before{content:"\f3fb"}.fa-school-flag:before{content:"\e56e"}.fa-message-code:before{content:"\e1df"}.fa-glass-half-empty:before,.fa-glass-half-full:before,.fa-glass-half:before{content:"\e192"}.fa-fill:before{content:"\f575"}.fa-comment-alt-minus:before,.fa-message-minus:before{content:"\f4a7"}.fa-angle-up:before{content:"\f106"}.fa-dinosaur:before{content:"\e5fe"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-chain-horizontal-slash:before,.fa-link-horizontal-slash:before{content:"\e1cc"}.fa-holly-berry:before{content:"\f7aa"}.fa-nose:before{content:"\e5bd"}.fa-arrow-left-to-arc:before{content:"\e616"}.fa-chevron-left:before{content:"\f053"}.fa-bacteria:before{content:"\e059"}.fa-clouds:before{content:"\f744"}.fa-money-bill-simple:before{content:"\e1f1"}.fa-hand-lizard:before{content:"\f258"}.fa-table-pivot:before{content:"\e291"}.fa-filter-slash:before{content:"\e17d"}.fa-trash-can-arrow-turn-left:before,.fa-trash-can-undo:before,.fa-trash-undo-alt:before{content:"\f896"}.fa-notdef:before{content:"\e1fe"}.fa-disease:before{content:"\f7fa"}.fa-person-to-door:before{content:"\e433"}.fa-turntable:before{content:"\f8e4"}.fa-briefcase-medical:before{content:"\f469"}.fa-genderless:before{content:"\f22d"}.fa-chevron-right:before{content:"\f054"}.fa-signal-1:before,.fa-signal-weak:before{content:"\f68c"}.fa-clock-five:before{content:"\e349"}.fa-retweet:before{content:"\f079"}.fa-car-alt:before,.fa-car-rear:before{content:"\f5de"}.fa-pump-soap:before{content:"\e06b"}.fa-computer-classic:before{content:"\f8b1"}.fa-frame:before{content:"\e495"}.fa-video-slash:before{content:"\f4e2"}.fa-battery-2:before,.fa-battery-quarter:before{content:"\f243"}.fa-ellipsis-h-alt:before,.fa-ellipsis-stroke:before{content:"\f39b"}.fa-radio:before{content:"\f8d7"}.fa-baby-carriage:before,.fa-carriage-baby:before{content:"\f77d"}.fa-face-expressionless:before{content:"\e373"}.fa-down-to-dotted-line:before{content:"\e408"}.fa-cloud-music:before{content:"\f8ae"}.fa-traffic-light:before{content:"\f637"}.fa-cloud-minus:before{content:"\e35d"}.fa-thermometer:before{content:"\f491"}.fa-shield-minus:before{content:"\e249"}.fa-vr-cardboard:before{content:"\f729"}.fa-car-tilt:before{content:"\f5e5"}.fa-gauge-circle-minus:before{content:"\e497"}.fa-brightness-low:before{content:"\e0ca"}.fa-hand-middle-finger:before{content:"\f806"}.fa-percent:before,.fa-percentage:before{content:"\25"}.fa-truck-moving:before{content:"\f4df"}.fa-glass-water-droplet:before{content:"\e4f5"}.fa-conveyor-belt:before{content:"\f46e"}.fa-location-check:before,.fa-map-marker-check:before{content:"\f606"}.fa-coin-vertical:before{content:"\e3fd"}.fa-display:before{content:"\e163"}.fa-person-sign:before{content:"\f757"}.fa-face-smile:before,.fa-smile:before{content:"\f118"}.fa-phone-hangup:before{content:"\e225"}.fa-signature-slash:before{content:"\e3cb"}.fa-thumb-tack:before,.fa-thumbtack:before{content:"\f08d"}.fa-wheat-slash:before{content:"\e339"}.fa-trophy:before{content:"\f091"}.fa-clouds-sun:before{content:"\f746"}.fa-person-praying:before,.fa-pray:before{content:"\f683"}.fa-hammer:before{content:"\f6e3"}.fa-face-vomit:before{content:"\e3a0"}.fa-speakers:before{content:"\f8e0"}.fa-teletype-answer:before,.fa-tty-answer:before{content:"\e2b9"}.fa-mug-tea-saucer:before{content:"\e1f5"}.fa-diagram-lean-canvas:before{content:"\e156"}.fa-alt:before{content:"\e08a"}.fa-dial-med-high:before,.fa-dial:before{content:"\e15b"}.fa-hand-peace:before{content:"\f25b"}.fa-circle-trash:before,.fa-trash-circle:before{content:"\e126"}.fa-rotate:before,.fa-sync-alt:before{content:"\f2f1"}.fa-circle-quarters:before{content:"\e3f8"}.fa-spinner:before{content:"\f110"}.fa-tower-control:before{content:"\e2a2"}.fa-arrow-up-triangle-square:before,.fa-sort-shapes-up:before{content:"\f88a"}.fa-whale:before{content:"\f72c"}.fa-robot:before{content:"\f544"}.fa-peace:before{content:"\f67c"}.fa-party-horn:before{content:"\e31b"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-sun-alt:before,.fa-sun-bright:before{content:"\e28f"}.fa-warehouse:before{content:"\f494"}.fa-conveyor-belt-arm:before{content:"\e5f8"}.fa-lock-keyhole-open:before,.fa-lock-open-alt:before{content:"\f3c2"}.fa-box-fragile:before,.fa-square-fragile:before,.fa-square-wine-glass-crack:before{content:"\f49b"}.fa-arrow-up-right-dots:before{content:"\e4b7"}.fa-square-n:before{content:"\e277"}.fa-splotch:before{content:"\f5bc"}.fa-face-grin-hearts:before,.fa-grin-hearts:before{content:"\f584"}.fa-meter:before{content:"\e1e8"}.fa-mandolin:before{content:"\f6f9"}.fa-dice-four:before{content:"\f524"}.fa-sim-card:before{content:"\f7c4"}.fa-transgender-alt:before,.fa-transgender:before{content:"\f225"}.fa-mercury:before{content:"\f223"}.fa-up-from-bracket:before{content:"\e590"}.fa-knife-kitchen:before{content:"\f6f5"}.fa-border-right:before{content:"\f852"}.fa-arrow-turn-down:before,.fa-level-down:before{content:"\f149"}.fa-spade:before{content:"\f2f4"}.fa-card-spade:before{content:"\e3ec"}.fa-line-columns:before{content:"\f870"}.fa-ant:before{content:"\e680"}.fa-arrow-right-to-line:before,.fa-arrow-to-right:before{content:"\f340"}.fa-person-falling-burst:before{content:"\e547"}.fa-flag-pennant:before,.fa-pennant:before{content:"\f456"}.fa-conveyor-belt-empty:before{content:"\e150"}.fa-user-group-simple:before{content:"\e603"}.fa-award:before{content:"\f559"}.fa-ticket-alt:before,.fa-ticket-simple:before{content:"\f3ff"}.fa-building:before{content:"\f1ad"}.fa-angle-double-left:before,.fa-angles-left:before{content:"\f100"}.fa-camcorder:before,.fa-video-handheld:before{content:"\f8a8"}.fa-pancakes:before{content:"\e42d"}.fa-album-circle-user:before{content:"\e48d"}.fa-subtitles-slash:before{content:"\e610"}.fa-qrcode:before{content:"\f029"}.fa-dice-d10:before{content:"\f6cd"}.fa-fireplace:before{content:"\f79a"}.fa-browser:before{content:"\f37e"}.fa-pen-paintbrush:before,.fa-pencil-paintbrush:before{content:"\f618"}.fa-fish-cooked:before{content:"\f7fe"}.fa-chair-office:before{content:"\f6c1"}.fa-magnifying-glass-music:before{content:"\e65f"}.fa-nesting-dolls:before{content:"\e3ba"}.fa-clock-rotate-left:before,.fa-history:before{content:"\f1da"}.fa-trumpet:before{content:"\f8e3"}.fa-face-grin-beam-sweat:before,.fa-grin-beam-sweat:before{content:"\f583"}.fa-fire-smoke:before{content:"\f74b"}.fa-phone-missed:before{content:"\e226"}.fa-arrow-right-from-file:before,.fa-file-export:before{content:"\f56e"}.fa-shield-blank:before,.fa-shield:before{content:"\f132"}.fa-arrow-up-short-wide:before,.fa-sort-amount-up-alt:before{content:"\f885"}.fa-arrows-repeat-1:before,.fa-repeat-1-alt:before{content:"\f366"}.fa-gun-slash:before{content:"\e19c"}.fa-avocado:before{content:"\e0aa"}.fa-binary:before{content:"\e33b"}.fa-glasses-alt:before,.fa-glasses-round:before{content:"\f5f5"}.fa-phone-plus:before{content:"\f4d2"}.fa-ditto:before{content:"\22"}.fa-person-seat:before{content:"\e21e"}.fa-house-medical:before{content:"\e3b2"}.fa-golf-ball-tee:before,.fa-golf-ball:before{content:"\f450"}.fa-chevron-circle-left:before,.fa-circle-chevron-left:before{content:"\f137"}.fa-house-chimney-window:before{content:"\e00d"}.fa-scythe:before{content:"\f710"}.fa-pen-nib:before{content:"\f5ad"}.fa-ban-parking:before,.fa-parking-circle-slash:before{content:"\f616"}.fa-tent-arrow-turn-left:before{content:"\e580"}.fa-face-diagonal-mouth:before{content:"\e47e"}.fa-diagram-cells:before{content:"\e475"}.fa-cricket-bat-ball:before,.fa-cricket:before{content:"\f449"}.fa-tents:before{content:"\e582"}.fa-magic:before,.fa-wand-magic:before{content:"\f0d0"}.fa-dog:before{content:"\f6d3"}.fa-pen-line:before{content:"\e212"}.fa-atom-alt:before,.fa-atom-simple:before{content:"\f5d3"}.fa-ampersand:before{content:"\26"}.fa-carrot:before{content:"\f787"}.fa-arrow-from-bottom:before,.fa-arrow-up-from-line:before{content:"\f342"}.fa-moon:before{content:"\f186"}.fa-pen-slash:before{content:"\e213"}.fa-wine-glass-alt:before,.fa-wine-glass-empty:before{content:"\f5ce"}.fa-square-star:before{content:"\e27f"}.fa-cheese:before{content:"\f7ef"}.fa-send-backward:before{content:"\f87f"}.fa-yin-yang:before{content:"\f6ad"}.fa-music:before{content:"\f001"}.fa-compass-slash:before{content:"\f5e9"}.fa-clock-one:before{content:"\e34e"}.fa-file-music:before{content:"\f8b6"}.fa-code-commit:before{content:"\f386"}.fa-temperature-low:before{content:"\f76b"}.fa-biking:before,.fa-person-biking:before{content:"\f84a"}.fa-display-chart-up-circle-currency:before{content:"\e5e5"}.fa-skeleton:before{content:"\f620"}.fa-circle-g:before{content:"\e10f"}.fa-circle-arrow-up-left:before{content:"\e0fb"}.fa-coin-blank:before{content:"\e3fb"}.fa-broom:before{content:"\f51a"}.fa-vacuum:before{content:"\e04d"}.fa-shield-heart:before{content:"\e574"}.fa-card-heart:before{content:"\e3eb"}.fa-lightbulb-cfl-on:before{content:"\e5a7"}.fa-melon:before{content:"\e310"}.fa-gopuram:before{content:"\f664"}.fa-earth-oceania:before,.fa-globe-oceania:before{content:"\e47b"}.fa-container-storage:before{content:"\f4b7"}.fa-face-pouting:before{content:"\e387"}.fa-square-xmark:before,.fa-times-square:before,.fa-xmark-square:before{content:"\f2d3"}.fa-exploding-head:before,.fa-face-explode:before{content:"\e2fe"}.fa-hashtag:before{content:"\23"}.fa-expand-alt:before,.fa-up-right-and-down-left-from-center:before{content:"\f424"}.fa-oil-can:before{content:"\f613"}.fa-t:before{content:"\54"}.fa-transformer-bolt:before{content:"\e2a4"}.fa-hippo:before{content:"\f6ed"}.fa-chart-column:before{content:"\e0e3"}.fa-cassette-vhs:before,.fa-vhs:before{content:"\f8ec"}.fa-infinity:before{content:"\f534"}.fa-vial-circle-check:before{content:"\e596"}.fa-chimney:before{content:"\f78b"}.fa-object-intersect:before{content:"\e49d"}.fa-person-arrow-down-to-line:before{content:"\e538"}.fa-voicemail:before{content:"\f897"}.fa-block-brick:before,.fa-wall-brick:before{content:"\e3db"}.fa-fan:before{content:"\f863"}.fa-bags-shopping:before{content:"\f847"}.fa-paragraph-left:before,.fa-paragraph-rtl:before{content:"\f878"}.fa-person-walking-luggage:before{content:"\e554"}.fa-caravan-alt:before,.fa-caravan-simple:before{content:"\e000"}.fa-turtle:before{content:"\f726"}.fa-pencil-mechanical:before{content:"\e5ca"}.fa-arrows-alt-v:before,.fa-up-down:before{content:"\f338"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-booth-curtain:before{content:"\f734"}.fa-calendar:before{content:"\f133"}.fa-box-heart:before{content:"\f49d"}.fa-trailer:before{content:"\e041"}.fa-user-doctor-message:before,.fa-user-md-chat:before{content:"\f82e"}.fa-bahai:before,.fa-haykal:before{content:"\f666"}.fa-lighthouse:before{content:"\e612"}.fa-amp-guitar:before{content:"\f8a1"}.fa-sd-card:before{content:"\f7c2"}.fa-volume-slash:before{content:"\f2e2"}.fa-border-bottom:before{content:"\f84d"}.fa-wifi-1:before,.fa-wifi-weak:before{content:"\f6aa"}.fa-dragon:before{content:"\f6d5"}.fa-shoe-prints:before{content:"\f54b"}.fa-circle-plus:before,.fa-plus-circle:before{content:"\f055"}.fa-face-grin-tongue-wink:before,.fa-grin-tongue-wink:before{content:"\f58b"}.fa-hand-holding:before{content:"\f4bd"}.fa-plug-circle-exclamation:before{content:"\e55d"}.fa-chain-broken:before,.fa-chain-slash:before,.fa-link-slash:before,.fa-unlink:before{content:"\f127"}.fa-clone:before{content:"\f24d"}.fa-person-walking-arrow-loop-left:before{content:"\e551"}.fa-arrow-up-z-a:before,.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-fire-alt:before,.fa-fire-flame-curved:before{content:"\f7e4"}.fa-tornado:before{content:"\f76f"}.fa-file-circle-plus:before{content:"\e494"}.fa-delete-right:before{content:"\e154"}.fa-book-quran:before,.fa-quran:before{content:"\f687"}.fa-circle-quarter:before{content:"\e11f"}.fa-anchor:before{content:"\f13d"}.fa-border-all:before{content:"\f84c"}.fa-function:before{content:"\f661"}.fa-angry:before,.fa-face-angry:before{content:"\f556"}.fa-people-simple:before{content:"\e21b"}.fa-cookie-bite:before{content:"\f564"}.fa-arrow-trend-down:before{content:"\e097"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-face-monocle:before{content:"\e380"}.fa-draw-polygon:before{content:"\f5ee"}.fa-balance-scale:before,.fa-scale-balanced:before{content:"\f24e"}.fa-calendar-lines:before,.fa-calendar-note:before{content:"\e0d5"}.fa-arrow-down-big-small:before,.fa-sort-size-down:before{content:"\f88c"}.fa-gauge-simple-high:before,.fa-tachometer-fast:before,.fa-tachometer:before{content:"\f62a"}.fa-do-not-enter:before{content:"\f5ec"}.fa-shower:before{content:"\f2cc"}.fa-dice-d8:before{content:"\f6d2"}.fa-desktop-alt:before,.fa-desktop:before{content:"\f390"}.fa-m:before{content:"\4d"}.fa-spinner-scale:before{content:"\e62a"}.fa-grip-dots-vertical:before{content:"\e411"}.fa-face-viewfinder:before{content:"\e2ff"}.fa-creemee:before,.fa-soft-serve:before{content:"\e400"}.fa-h5:before{content:"\e412"}.fa-hand-back-point-down:before{content:"\e19e"}.fa-table-list:before,.fa-th-list:before{content:"\f00b"}.fa-basket-shopping-minus:before{content:"\e652"}.fa-comment-sms:before,.fa-sms:before{content:"\f7cd"}.fa-rectangle-landscape:before,.fa-rectangle:before{content:"\f2fa"}.fa-clipboard-list-check:before{content:"\f737"}.fa-turkey:before{content:"\f725"}.fa-book:before{content:"\f02d"}.fa-user-plus:before{content:"\f234"}.fa-ice-skate:before{content:"\f7ac"}.fa-check:before{content:"\f00c"}.fa-battery-4:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-tomato:before{content:"\e330"}.fa-sword-laser:before{content:"\e03b"}.fa-house-circle-check:before{content:"\e509"}.fa-buildings:before{content:"\e0cc"}.fa-angle-left:before{content:"\f104"}.fa-cart-flatbed-boxes:before,.fa-dolly-flatbed-alt:before{content:"\f475"}.fa-diagram-successor:before{content:"\e47a"}.fa-truck-arrow-right:before{content:"\e58b"}.fa-square-w:before{content:"\e285"}.fa-arrows-split-up-and-left:before{content:"\e4bc"}.fa-lamp:before{content:"\f4ca"}.fa-airplay:before{content:"\e089"}.fa-fist-raised:before,.fa-hand-fist:before{content:"\f6de"}.fa-shield-quartered:before{content:"\e575"}.fa-slash-forward:before{content:"\2f"}.fa-location-pen:before,.fa-map-marker-edit:before{content:"\f607"}.fa-cloud-moon:before{content:"\f6c3"}.fa-pot-food:before{content:"\e43f"}.fa-briefcase:before{content:"\f0b1"}.fa-person-falling:before{content:"\e546"}.fa-image-portrait:before,.fa-portrait:before{content:"\f3e0"}.fa-user-tag:before{content:"\f507"}.fa-rug:before{content:"\e569"}.fa-print-slash:before{content:"\f686"}.fa-earth-europe:before,.fa-globe-europe:before{content:"\f7a2"}.fa-cart-flatbed-suitcase:before,.fa-luggage-cart:before{content:"\f59d"}.fa-hand-back-point-ribbon:before{content:"\e1a0"}.fa-rectangle-times:before,.fa-rectangle-xmark:before,.fa-times-rectangle:before,.fa-window-close:before{content:"\f410"}.fa-tire-rugged:before{content:"\f634"}.fa-lightbulb-dollar:before{content:"\f670"}.fa-cowbell:before{content:"\f8b3"}.fa-baht-sign:before{content:"\e0ac"}.fa-corner:before{content:"\e3fe"}.fa-chevron-double-right:before,.fa-chevrons-right:before{content:"\f324"}.fa-book-open:before{content:"\f518"}.fa-book-journal-whills:before,.fa-journal-whills:before{content:"\f66a"}.fa-inhaler:before{content:"\f5f9"}.fa-handcuffs:before{content:"\e4f8"}.fa-snake:before{content:"\f716"}.fa-exclamation-triangle:before,.fa-triangle-exclamation:before,.fa-warning:before{content:"\f071"}.fa-note-medical:before{content:"\e200"}.fa-database:before{content:"\f1c0"}.fa-down-left:before{content:"\e16a"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-face-thinking:before{content:"\e39b"}.fa-turn-down-right:before{content:"\e455"}.fa-bottle-droplet:before{content:"\e4c4"}.fa-mask-face:before{content:"\e1d7"}.fa-hill-rockslide:before{content:"\e508"}.fa-scanner-keyboard:before{content:"\f489"}.fa-circle-o:before{content:"\e119"}.fa-grid-horizontal:before{content:"\e307"}.fa-comment-alt-dollar:before,.fa-message-dollar:before{content:"\f650"}.fa-exchange-alt:before,.fa-right-left:before{content:"\f362"}.fa-columns-3:before{content:"\e361"}.fa-paper-plane:before{content:"\f1d8"}.fa-road-circle-exclamation:before{content:"\e565"}.fa-dungeon:before{content:"\f6d9"}.fa-hand-holding-box:before{content:"\f47b"}.fa-input-text:before{content:"\e1bf"}.fa-window-alt:before,.fa-window-flip:before{content:"\f40f"}.fa-align-right:before{content:"\f038"}.fa-scanner-gun:before,.fa-scanner:before{content:"\f488"}.fa-tire:before{content:"\f631"}.fa-engine:before{content:"\e16e"}.fa-money-bill-1-wave:before,.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-life-ring:before{content:"\f1cd"}.fa-hands:before,.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-caret-circle-right:before,.fa-circle-caret-right:before{content:"\f330"}.fa-turn-left:before{content:"\e636"}.fa-wheat:before{content:"\f72d"}.fa-file-spreadsheet:before{content:"\f65b"}.fa-audio-description-slash:before{content:"\e0a8"}.fa-bell-ring:before{content:"\e62c"}.fa-calendar-day:before{content:"\f783"}.fa-ladder-water:before,.fa-swimming-pool:before,.fa-water-ladder:before{content:"\f5c5"}.fa-arrows-up-down:before,.fa-arrows-v:before{content:"\f07d"}.fa-chess-pawn-alt:before,.fa-chess-pawn-piece:before{content:"\f444"}.fa-face-grimace:before,.fa-grimace:before{content:"\f57f"}.fa-wheelchair-alt:before,.fa-wheelchair-move:before{content:"\e2ce"}.fa-level-down-alt:before,.fa-turn-down:before{content:"\f3be"}.fa-square-s:before{content:"\e27d"}.fa-barcode-alt:before,.fa-rectangle-barcode:before{content:"\f463"}.fa-person-walking-arrow-right:before{content:"\e552"}.fa-envelope-square:before,.fa-square-envelope:before{content:"\f199"}.fa-dice:before{content:"\f522"}.fa-unicorn:before{content:"\f727"}.fa-bowling-ball:before{content:"\f436"}.fa-pompebled:before{content:"\e43d"}.fa-brain:before{content:"\f5dc"}.fa-watch-smart:before{content:"\e2cc"}.fa-book-user:before{content:"\f7e7"}.fa-sensor-cloud:before,.fa-sensor-smoke:before{content:"\e02c"}.fa-clapperboard-play:before{content:"\e132"}.fa-band-aid:before,.fa-bandage:before{content:"\f462"}.fa-calendar-minus:before{content:"\f272"}.fa-circle-xmark:before,.fa-times-circle:before,.fa-xmark-circle:before{content:"\f057"}.fa-circle-4:before{content:"\e0f1"}.fa-gifts:before{content:"\f79c"}.fa-album-collection:before{content:"\f8a0"}.fa-hotel:before{content:"\f594"}.fa-earth-asia:before,.fa-globe-asia:before{content:"\f57e"}.fa-id-card-alt:before,.fa-id-card-clip:before{content:"\f47f"}.fa-magnifying-glass-plus:before,.fa-search-plus:before{content:"\f00e"}.fa-thumbs-up:before{content:"\f164"}.fa-cloud-showers:before{content:"\f73f"}.fa-user-clock:before{content:"\f4fd"}.fa-onion:before{content:"\e427"}.fa-clock-twelve-thirty:before{content:"\e359"}.fa-arrow-down-to-dotted-line:before{content:"\e095"}.fa-allergies:before,.fa-hand-dots:before{content:"\f461"}.fa-file-invoice:before{content:"\f570"}.fa-window-minimize:before{content:"\f2d1"}.fa-rectangle-wide:before{content:"\f2fc"}.fa-comment-arrow-up:before{content:"\e144"}.fa-garlic:before{content:"\e40e"}.fa-coffee:before,.fa-mug-saucer:before{content:"\f0f4"}.fa-brush:before{content:"\f55d"}.fa-tree-decorated:before{content:"\f7dc"}.fa-mask:before{content:"\f6fa"}.fa-calendar-heart:before{content:"\e0d3"}.fa-magnifying-glass-minus:before,.fa-search-minus:before{content:"\f010"}.fa-flower:before{content:"\f7ff"}.fa-arrow-down-from-arc:before{content:"\e614"}.fa-right-left-large:before{content:"\e5e1"}.fa-ruler-vertical:before{content:"\f548"}.fa-circles-overlap:before{content:"\e600"}.fa-user-alt:before,.fa-user-large:before{content:"\f406"}.fa-starship-freighter:before{content:"\e03a"}.fa-train-tram:before{content:"\e5b4"}.fa-bridge-suspension:before{content:"\e4cd"}.fa-trash-check:before{content:"\e2af"}.fa-user-nurse:before{content:"\f82f"}.fa-boombox:before{content:"\f8a5"}.fa-syringe:before{content:"\f48e"}.fa-cloud-sun:before{content:"\f6c4"}.fa-shield-exclamation:before{content:"\e247"}.fa-stopwatch-20:before{content:"\e06f"}.fa-square-full:before{content:"\f45c"}.fa-grip-dots:before{content:"\e410"}.fa-comment-exclamation:before{content:"\f4af"}.fa-pen-swirl:before{content:"\e214"}.fa-falafel:before{content:"\e40a"}.fa-circle-2:before{content:"\e0ef"}.fa-magnet:before{content:"\f076"}.fa-jar:before{content:"\e516"}.fa-gramophone:before{content:"\f8bd"}.fa-dice-d12:before{content:"\f6ce"}.fa-note-sticky:before,.fa-sticky-note:before{content:"\f249"}.fa-arrow-alt-down:before,.fa-down:before{content:"\f354"}.fa-100:before,.fa-hundred-points:before{content:"\e41c"}.fa-paperclip-vertical:before{content:"\e3c2"}.fa-wind-circle-exclamation:before,.fa-wind-warning:before{content:"\f776"}.fa-location-pin-slash:before,.fa-map-marker-slash:before{content:"\f60c"}.fa-face-sad-sweat:before{content:"\e38a"}.fa-bug-slash:before{content:"\e490"}.fa-cupcake:before{content:"\e402"}.fa-light-switch-off:before{content:"\e018"}.fa-toggle-large-off:before{content:"\e5b0"}.fa-pen-fancy-slash:before{content:"\e210"}.fa-truck-container:before{content:"\f4dc"}.fa-boot:before{content:"\f782"}.fa-arrow-up-from-water-pump:before{content:"\e4b6"}.fa-file-check:before{content:"\f316"}.fa-bone:before{content:"\f5d7"}.fa-cards-blank:before{content:"\e4df"}.fa-circle-3:before{content:"\e0f0"}.fa-bench-tree:before{content:"\e2e7"}.fa-keyboard-brightness-low:before{content:"\e1c1"}.fa-ski-boot-ski:before{content:"\e3cd"}.fa-brain-circuit:before{content:"\e0c6"}.fa-user-injured:before{content:"\f728"}.fa-block-brick-fire:before,.fa-firewall:before{content:"\e3dc"}.fa-face-sad-tear:before,.fa-sad-tear:before{content:"\f5b4"}.fa-plane:before{content:"\f072"}.fa-tent-arrows-down:before{content:"\e581"}.fa-exclamation:before{content:"\21"}.fa-arrows-spin:before{content:"\e4bb"}.fa-face-smile-relaxed:before{content:"\e392"}.fa-comment-times:before,.fa-comment-xmark:before{content:"\f4b5"}.fa-print:before{content:"\f02f"}.fa-try:before,.fa-turkish-lira-sign:before,.fa-turkish-lira:before{content:"\e2bb"}.fa-face-nose-steam:before{content:"\e382"}.fa-circle-waveform-lines:before,.fa-waveform-circle:before{content:"\e12d"}.fa-dollar-sign:before,.fa-dollar:before,.fa-usd:before{content:"\24"}.fa-ferris-wheel:before{content:"\e174"}.fa-computer-speaker:before{content:"\f8b2"}.fa-skull-cow:before{content:"\f8de"}.fa-x:before{content:"\58"}.fa-magnifying-glass-dollar:before,.fa-search-dollar:before{content:"\f688"}.fa-users-cog:before,.fa-users-gear:before{content:"\f509"}.fa-person-military-pointing:before{content:"\e54a"}.fa-bank:before,.fa-building-columns:before,.fa-institution:before,.fa-museum:before,.fa-university:before{content:"\f19c"}.fa-circle-t:before{content:"\e124"}.fa-sack:before{content:"\f81c"}.fa-grid-2:before{content:"\e196"}.fa-camera-cctv:before,.fa-cctv:before{content:"\f8ac"}.fa-umbrella:before{content:"\f0e9"}.fa-trowel:before{content:"\e589"}.fa-horizontal-rule:before{content:"\f86c"}.fa-bed-alt:before,.fa-bed-front:before{content:"\f8f7"}.fa-d:before{content:"\44"}.fa-stapler:before{content:"\e5af"}.fa-masks-theater:before,.fa-theater-masks:before{content:"\f630"}.fa-file-gif:before{content:"\e645"}.fa-kip-sign:before{content:"\e1c4"}.fa-face-woozy:before{content:"\e3a2"}.fa-cloud-question:before{content:"\e492"}.fa-pineapple:before{content:"\e31f"}.fa-hand-point-left:before{content:"\f0a5"}.fa-gallery-thumbnails:before{content:"\e3aa"}.fa-circle-j:before{content:"\e112"}.fa-eyes:before{content:"\e367"}.fa-handshake-alt:before,.fa-handshake-simple:before{content:"\f4c6"}.fa-file-caret-up:before,.fa-page-caret-up:before{content:"\e42a"}.fa-fighter-jet:before,.fa-jet-fighter:before{content:"\f0fb"}.fa-comet:before{content:"\e003"}.fa-share-alt-square:before,.fa-square-share-nodes:before{content:"\f1e1"}.fa-reflect-vertical:before{content:"\e665"}.fa-shield-keyhole:before{content:"\e248"}.fa-file-mp4:before{content:"\e649"}.fa-barcode:before{content:"\f02a"}.fa-bulldozer:before{content:"\e655"}.fa-plus-minus:before{content:"\e43c"}.fa-sliders-v-square:before,.fa-square-sliders-vertical:before{content:"\f3f2"}.fa-video-camera:before,.fa-video:before{content:"\f03d"}.fa-comment-middle-alt:before,.fa-message-middle:before{content:"\e1e1"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-person-circle-check:before{content:"\e53e"}.fa-square-z:before{content:"\e288"}.fa-comment-alt-text:before,.fa-message-text:before{content:"\e1e6"}.fa-level-up-alt:before,.fa-turn-up:before{content:"\f3bf"}.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border-width:0;white-space:nowrap}.tykon:before{font-family:tykon,sans-serif!important;font-style:normal!important;font-variant:normal!important;font-weight:400!important;line-height:1;text-transform:none!important;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.tykon-arrowdown:before{content:"\61"}.tykon-arrowleft:before{content:"\62"}.tykon-arrowright:before{content:"\63"}.tykon-arrowup:before{content:"\64"}.tykon-doublearrowdown:before{content:"\65"}.tykon-filter:before{content:"\66"}.tykon-graph1:before{content:"\67"}.tykon-graph2:before{content:"\68"}.tykon-label:before{content:"\69"}.tykon-reload:before{content:"\6a"}.tykon-select:before{content:"\6b"}.tykon-target:before{content:"\6c"}.tykon-undo:before{content:"\6d"}.tykon-deployment:before{content:"\6e"}.tykon-team:before{content:"\6f"}.tykon-overview:before{content:"\70"}.tykon-loadout:before{content:"\71"}.tykon-entitlement:before{content:"\72"}.tykon-users:before{content:"\73"}.tykon-arrowsort:before{content:"\57"}.tykon-check:before{content:"\56"}.tykon-copy:before{content:"\43"}.tykon-delete:before{content:"\55"}.tykon-download:before{content:"\4c"}.tykon-draft:before{content:"\44"}.tykon-edit:before{content:"\45"}.tykon-graphq2:before{content:"\68"}.tykon-help:before{content:"\3f"}.tykon-link:before{content:"\52"}.tykon-lock1:before{content:"\59"}.tykon-lock2:before{content:"\5A"}.tykon-notifications:before{content:"\4E"}.tykon-plus:before{content:"\2B"}.tykon-profile:before{content:"\50"}.tykon-search:before{content:"\4F"}.tykon-settings:before{content:"\53"}.tykon-warning:before{content:"\21"}.tykon-x:before{content:"\58"}.tykon-waiting:before{content:"\54"}.tykon-fullscreen:before{content:"\e000"}.tykon-fullscreen-exit:before{content:"\e001"}.tykon-time:before{content:"\74"}h1,h2,h3,h4,h5,h6{color:var(--headings-color);font-family:var(--headings-font-family);font-weight:var(--headings-font-weight);margin-block-end:var(--headings-margin-bottom)}label{color:var(--label-color);display:inline-block;margin-block-end:5px;max-inline-size:100%}h1{font-size:var(--xxl-font-size);line-height:var(--xxl-line-height)}h2{font-size:var(--xl-font-size);line-height:var(--xl-line-height)}h3{font-size:var(--lg-font-size);line-height:var(--lg-line-height)}h4{font-size:var(--md-font-size);line-height:var(--md-line-height)}h5{font-size:var(--sm-font-size);line-height:var(--sm-line-height)}h6{font-size:var(--xs-font-size);line-height:var(--xs-line-height)}label,p{font-family:var(--font-family-regular);font-size:var(--sm-font-size);line-height:var(--sm-line-height);a{font-size:var(--sm-font-size);text-decoration:underline}}strong{font-family:var(--font-family-bold)}a:not(.tyk-button){color:var(--text-color);cursor:pointer;font-family:var(--font-family-regular);&.link--bold{font-family:var(--font-family-bold)}+a{margin-inline-start:5px}i{font-size:9px}}.font-family-regular{font-family:var(--font-family-regular)}.font-family-medium{font-family:var(--font-family-medium)}.font-family-bold{font-family:var(--font-family-bold)}.heading-font-family-regular{font-family:var(--headings-font-family-regular)}.heading-font-family-medium{font-family:var(--headings-font-family-medium)}.heading-font-family-bold{font-family:var(--headings-font-family-bold)}.text--info{color:var(--color-info-base)}.text--medium{font-family:var(--font-family-medium)}.text--bold{font-family:var(--font-family-bold)}.text--uppercase{text-transform:uppercase}.text--ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--underline{text-decoration:underline}.text--default-light{color:var(--color-default-light)!important}.text--default{color:var(--color-default-base)!important}.text--primary{color:var(--color-primary-base)!important}.text--danger{color:var(--color-danger-base)!important}.text--success{color:var(--color-success-base)!important}.text--warning{color:var(--color-warning-base)!important}td.text-ellipsis{max-inline-size:250px}.section-title{font-family:var(--headings-font-family-bold);margin-block-end:5px;.tyk-icon{margin-inline-start:5px}}.sub-section-title{font-family:var(--font-family-medium);font-size:var(--md-font-size);line-height:var(--md-line-height);margin-block-end:5px;.tyk-icon{margin-inline-start:5px}}.section-group-title{font-family:var(--font-family-bold);font-size:var(--sm-font-size);line-height:var(--sm-line-height);margin-block-end:5px;text-transform:uppercase;.tyk-icon{margin-inline-start:5px}}.tyk-form-section__title{font-size:var(--base-font-size);margin-block:var(--spacing-xs) var(--spacing-base);margin-inline:0}.tyk-form-section__title--light{color:var(--color-background-dark)}.tyk-form-group{margin-block-end:var(--form-group-margin-bottom);&.has-error .tyk-file-input__wrapper>.tyk-form-control,&.has-error>.tyk-form-control__wrapper>.tyk-form-control,&.has-error>.tyk-form-control__wrapper>.tyk-input-group>.tyk-form-control{border:var(--error-border);border-inline-start:var(--error-border-left);outline:none;&:focus{border-inline-start:2px solid var(--color-danger-dark);border-color:var(--color-danger-dark);outline:none}}label{font-family:var(--font-family-medium)}}.tyk-form-group--inline{align-items:stretch;display:flex;flex-wrap:nowrap;.tyk-form-control__wrapper{flex:1}label{margin-block-start:14px;margin-inline-end:var(--spacing-md);white-space:nowrap}input,label,select{display:flex}.tyk-form-control__help-block{display:flex;margin-inline-start:auto}}.tyk-form-group--default{color:var(--text-color);>.tyk-form-control__wrapper>.tyk-file-input__wrapper>.tyk-form-control,>.tyk-form-control__wrapper>.tyk-form-control,>.tyk-form-control__wrapper>.tyk-input-group>.tyk-form-control{border:var(--general-border-width) solid var(--form-default-color);color:var(--text-color);&[disabled]{background-color:var(--form-control-disabled-background-color);border:var(--general-border-width) solid var(--form-default-color);color:var(--form-control-disabled-color);cursor:not-allowed;+.tyk-input-group__addon{background-color:var(--form-control-disabled-background-color)}}&::placeholder{opacity:.8}&:-ms-input-placeholder{opacity:.8}}&.tyk-form-group--addon-left{.tyk-input-group__addon{border-block:2px solid var(--form-default-color);border-inline-start:2px solid var(--form-default-color);color:var(--text-color)}}&.tyk-form-group--addon-right{.tyk-input-group__addon{border-block:2px solid var(--form-default-color);border-inline-end:2px solid var(--form-default-color);color:var(--text-color)}}}.tyk-form-group--primary{color:var(--text-color);>.tyk-form-control__wrapper>.tyk-file-input__wrapper>.tyk-form-control,>.tyk-form-control__wrapper>.tyk-form-control,>.tyk-form-control__wrapper>.tyk-input-group>.tyk-form-control{border:var(--general-border-width) solid var(--form-primary-color);color:var(--text-color);&[disabled]{background-color:var(--form-control-disabled-background-color);border:var(--general-border-width) solid var(--form-primary-color);color:var(--form-control-disabled-color);cursor:not-allowed;+.tyk-input-group__addon{background-color:var(--form-control-disabled-background-color)}}&::placeholder{opacity:.8}&:-ms-input-placeholder{opacity:.8}}&.tyk-form-group--addon-left{.tyk-input-group__addon{border-block:2px solid var(--form-primary-color);border-inline-start:2px solid var(--form-primary-color);color:var(--form-primary-color)}}&.tyk-form-group--addon-right{.tyk-input-group__addon{border-block:2px solid var(--form-primary-color);border-inline-end:2px solid var(--form-primary-color);color:var(--form-primary-color)}}}.tyk-form-group--success{color:var(--text-color);>.tyk-form-control__wrapper>.tyk-file-input__wrapper>.tyk-form-control,>.tyk-form-control__wrapper>.tyk-form-control,>.tyk-form-control__wrapper>.tyk-input-group>.tyk-form-control{border:var(--general-border-width) solid var(--form-success-color);color:var(--text-color);&[disabled]{background-color:var(--form-control-disabled-background-color);border:var(--general-border-width) solid var(--form-success-color);color:var(--form-control-disabled-color);cursor:not-allowed;+.tyk-input-group__addon{background-color:var(--form-control-disabled-background-color)}}&::placeholder{opacity:.8}&:-ms-input-placeholder{opacity:.8}}&.tyk-form-group--addon-left{.tyk-input-group__addon{border-block:2px solid var(--form-success-color);border-inline-start:2px solid var(--form-success-color);color:var(--form-success-color)}}&.tyk-form-group--addon-right{.tyk-input-group__addon{border-block:2px solid var(--form-success-color);border-inline-end:2px solid var(--form-success-color);color:var(--form-success-color)}}}.tyk-form-group--rounded-corners{&.has-error>.tyk-form-control__wrapper>.tyk-form-control{border-inline-start:var(--error-border);&:focus{border-inline-start:var(--error-border);outline:none}}.tyk-form-control{border-radius:var(--general-border-radius)}}.tyk-form-group--addon-right input{border-inline-end:0!important;padding-inline-end:0}.tyk-form-group--addon-left input{border-inline-start:0!important;padding-inline-start:0}.tyk-form-group--rounded-corners.tyk-form-group--addon-right{input{border-end-end-radius:0;border-start-end-radius:0}.tyk-input-group__addon{background:var(--form-control-addon-background-color);border-end-end-radius:var(--general-border-radius);border-start-end-radius:var(--general-border-radius);color:var(--text-color)}}.tyk-form-group--rounded-corners.tyk-form-group--addon-left{input{border-end-start-radius:0;border-inline-start:0!important;border-start-start-radius:0}.tyk-input-group__addon{background:var(--form-control-addon-background-color);border-end-start-radius:var(--general-border-radius);border-start-start-radius:var(--general-border-radius);color:var(--text-color)}}.tyk-form-control__error-message{font-family:var(--font-family-regular);font-size:var(--xs-font-size);line-height:var(--xs-line-height);margin-block-start:5px;padding:var(--error-message-padding);position:relative;&:before{background:var(--color-danger-base);border-radius:8px;color:#fff;content:"!";display:inline-block;font-family:var(--font-family-bold);margin-inline-end:5px;padding-block:0;padding-inline:7px}}.tyk-input-group{align-items:center;display:flex;outline:none}.tyk-input-group__addon{align-items:center;background-color:var(--form-control-addon-background-color);block-size:var(--form-control-height);border:var(--form-control-border);display:flex;padding-block:var(--form-control-addon-padding-top) var(--form-control-addon-padding-bottom);padding-inline:var(--form-control-addon-padding-left) var(--form-control-addon-padding-right);&:first-child{border-inline-end:0}&:last-child{border-inline-start:0}}.tyk-form-control{background-color:#fff;block-size:var(--form-control-height);border:var(--form-control-border);color:var(--text-color);display:block;font-family:var(--font-family-medium);font-size:var(--sm-font-size);inline-size:100%;line-height:var(--sm-line-height);padding-block:var(--form-control-padding-top) var(--form-control-padding-bottom);padding-inline:var(--form-control-padding-left) var(--form-control-padding-right);transition:all .2s linear;&[disabled]{background-color:var(--form-control-disabled-background-color);cursor:not-allowed;.tyk-input-group__addon{background-color:var(--form-control-disabled-background-color)}}&::placeholder{color:var(--form-control-placeholder-color);font-family:var(--form-control-placeholder-font-family)}&:active,&:focus{border:var(--form-control-border-focus)!important;outline:none;+.tyk-input-group__addon{border:var(--form-control-border-focus)!important;border-inline-start:none!important}}}.tyk-form-control__help-block{color:var(--help-block-color);font-family:var(--font-family-regular);font-size:var(--xs-font-size);font-style:var(--help-block-font-style);line-height:var(--xs-line-height);margin-block:5px 0;margin-inline:0;padding:var(--help-block-padding)}select{appearance:none;border-radius:0}.inline-form-wrapper{align-items:center;display:flex;inline-size:100%;.inline-form{inline-size:100%}>button{margin-block-end:var(--spacing-base);margin-inline-start:10px}}.tyk-checkbox,.tyk-radio{margin-block:10px;margin-inline:0;label{font-family:var(--font-family-medium)}input{margin-block:0;margin-inline:0 5px}}.tyk-checkbox--inline,.tyk-radio--inline{display:inline-flex;margin-inline-start:var(--spacing-base);&:first-child{margin-inline-start:0}}.tyk-inline-form{align-items:center;display:flex;flex-wrap:wrap;.tyk-form-group{flex:1;margin-inline-start:var(--spacing-md);min-inline-size:200px;&:first-child{margin-inline-start:0}}>.tyk-button{margin-block-end:var(--spacing-base);margin-inline-start:var(--spacing-md)}}:root{--accordion-item-header-padding-y:var(--spacing-base);--accordion-item-header-padding-x:var(--spacing-base);--accordion-item-header-font-size:var(--base-font-size);--accordion-item-outside-trigger-width:var(--spacing-xxl)}.tyk-accordion__item{display:grid}.tyk-accordion__item--trigger-position-left{grid-template-areas:"trigger header" "trigger content";grid-template-columns:var(--accordion-item-outside-trigger-width) auto}.tyk-accordion__item--trigger-position-right{grid-template-areas:"header trigger" "content trigger";grid-template-columns:auto var(--accordion-item-outside-trigger-width)}.tyk-accordion__item--trigger-in-header{grid-template-areas:"header" "content";grid-template-columns:auto}.tyk-accordion__trigger-wrapper{align-items:flex-start;display:flex;grid-area:trigger;justify-content:center;.tyk-icon{margin-inline:auto}}.tyk-accordion__item-header>button,.tyk-accordion__trigger{background:none;border:none;cursor:pointer;display:flex;font-size:var(--accordion-item-header-font-size);inline-size:100%;outline:none;padding-block:var(--accordion-item-header-padding-y);padding-inline:var(--accordion-item-header-padding-x);.tyk-icon{margin-inline-start:auto}}.tyk-accordion__item-header{grid-area:header}.tyk-accordion__trigger--disabled{color:var(--color-background-base)}.tyk-accordion__item-header.tyk-accordion__arrow-trigger{align-items:center;display:flex;>div{flex:1}>button{inline-size:auto;margin-inline-start:auto}}.tyk-accordion__item-content{grid-area:content}:root{--button-font-family:var(--font-family-bold);--button-border-radius:var(--spacing-md);--padding-y-button-sm:3px;--padding-x-button-sm:var(--spacing-base);--padding-y-button-md:8px;--padding-x-button-md:23px;--padding-y-button-lg:13px;--padding-x-button-lg:23px;--line-height-button-sm:var(--xs-line-height);--line-height-button-md:var(--md-line-height);--line-height-button-lg:var(--lg-line-height);--button-default-color:var(--color-default-base);--button-default-hover-color:var(--color-default-dark);--button-default-gradient-start-color:var(--color-default-base);--button-default-gradient-end-color:var(--color-default-dark);--button-primary-color:var(--color-default-base-light);--button-primary-hover-color:var(--color-default-dark);--button-primary-text-color:#fff;--button-primary-gradient-start-color:var(--color-primary-base);--button-primary-gradient-end-color:var(--color-primary-dark);--button-success-color:var(--color-success-base);--button-success-hover-color:var(--color-success-dark);--button-success-gradient-start-color:var(--color-success-base);--button-success-gradient-end-color:var(--color-success-dark);--button-danger-color:var(--color-danger-base);--button-danger-hover-color:var(--color-danger-dark);--button-danger-gradient-start-color:var(--color-danger-base);--button-danger-gradient-end-color:var(--color-danger-dark);--button-warning-color:var(--color-warning-base);--button-warning-font-color:#fff;--button-warning-gradient-start-color:var(--color-warning-base);--button-warning-gradient-end-color:var(--color-warning-light);--button-info-color:var(--color-info-base);--button-info-font-color:var(--text-color);--button-info-gradient-start-color:var(--color-info-base);--button-info-gradient-end-color:var(--color-info-light);--button-icon-only-background-hover:var(--color-background-light)}.tyk-button{--button-padding-y:var(--padding-y-button-md);--button-padding-x:var(--padding-x-button-md);--button-font-size:var(--sm-font-size);--button-line-height:var(--line-height-button-md);background-color:transparent;border:none;color:#fff;cursor:pointer;display:inline-block;font-family:var(--button-font-family);text-align:center;text-decoration:none;text-transform:uppercase;transition:all .2s linear;user-select:none;vertical-align:middle;white-space:nowrap;+.tyk-button,+.tyk-dropdown,+.tyk-toggle,i+span,span+i{margin-inline-start:var(--spacing-sm)}&.disabled{cursor:not-allowed;opacity:.7}&:hover{color:#fff;text-decoration:none}&:focus{outline:none}}.tyk-button--white{--button-variant-background:#fff;--button-variant-border:transparent;--button-variant-color:var(--color-default-base);--button-variant-hover-background:var(--color-background-dark);--button-variant-hover-color:#fff}.tyk-button--primary{--button-variant-background:var(--button-primary-color);--button-variant-border:var(--button-primary-color);--button-variant-color:var(--button-primary-text-color);--button-variant-hover-background:var(--button-primary-hover-color);--button-variant-hover-color:var(--button-primary-text-color)}.tyk-button--success{--button-variant-background:var(--button-success-color);--button-variant-border:var(--button-success-color);--button-variant-color:#fff;--button-variant-hover-background:var(--button-success-hover-color);--button-variant-hover-color:#fff}.tyk-button--danger{--button-variant-background:var(--button-danger-color);--button-variant-border:var(--button-danger-color);--button-variant-color:#fff;--button-variant-hover-background:var(--button-danger-hover-color);--button-variant-hover-color:#fff}.tyk-button--warning{--button-variant-background:var(--button-warning-color);--button-variant-border:transparent;--button-variant-color:var(--button-warning-font-color);--button-variant-hover-background:color-mix(in srgb,var(--button-variant-background),#000 15%);--button-variant-hover-color:var(--button-warning-font-color)}.tyk-button--info{--button-variant-background:var(--button-info-color);--button-variant-border:var(--button-info-color);--button-variant-color:#fff;--button-variant-hover-background:color-mix(in srgb,var(--button-variant-background),#000 15%);--button-variant-hover-color:#fff}.tyk-button--default{--button-variant-background:var(--button-default-color);--button-variant-border:var(--button-default-color);--button-variant-color:#fff;--button-variant-hover-background:var(--button-default-hover-color);--button-variant-hover-color:#fff}.tyk-button--danger,.tyk-button--default,.tyk-button--info,.tyk-button--primary,.tyk-button--success,.tyk-button--warning,.tyk-button--white{background-color:var(--button-variant-background);border:var(--general-border-width) solid var(--button-variant-border);color:var(--button-variant-color);&:hover{background-color:var(--button-variant-hover-background);color:var(--button-variant-hover-color)}}.tyk-button--primary-link{--button-variant-link-color:var(--button-primary-color)}.tyk-button--success-link{--button-variant-link-color:var(--button-success-color)}.tyk-button--danger-link{--button-variant-link-color:var(--button-danger-color)}.tyk-button--warning-link{--button-variant-link-color:var(--button-warning-color)}.tyk-button--info-link{--button-variant-link-color:var(--button-info-color)}.tyk-button--default-link{--button-variant-link-color:var(--text-color)}.tyk-button--danger-link,.tyk-button--default-link,.tyk-button--info-link,.tyk-button--primary-link,.tyk-button--success-link,.tyk-button--warning-link{background-color:transparent;border:var(--general-border-width) solid transparent;color:var(--button-variant-link-color);&:hover{background-color:transparent;border-color:var(--button-variant-link-color);color:var(--button-variant-link-color);text-decoration:underline}}.tyk-button--primary-outline{--button-variant-outline-border:var(--button-primary-color);--button-variant-outline-color:var(--button-primary-color);--button-variant-outline-hover-color:#fff}.tyk-button--success-outline{--button-variant-outline-border:var(--button-success-color);--button-variant-outline-color:var(--button-success-color);--button-variant-outline-hover-color:#fff}.tyk-button--danger-outline{--button-variant-outline-border:var(--button-danger-color);--button-variant-outline-color:var(--button-danger-color);--button-variant-outline-hover-color:#fff}.tyk-button--warning-outline{--button-variant-outline-border:var(--button-warning-color);--button-variant-outline-color:var(--button-warning-color);--button-variant-outline-hover-color:#fff}.tyk-button--info-outline{--button-variant-outline-border:var(--button-info-color);--button-variant-outline-color:var(--button-info-color);--button-variant-outline-hover-color:#fff}.tyk-button--default-outline{--button-variant-outline-border:var(--button-default-color);--button-variant-outline-color:var(--button-default-color);--button-variant-outline-hover-color:#fff}.tyk-button--danger-outline,.tyk-button--default-outline,.tyk-button--info-outline,.tyk-button--primary-outline,.tyk-button--success-outline,.tyk-button--warning-outline{background-color:transparent;border:var(--general-border-width) solid var(--button-variant-outline-border);color:var(--button-variant-outline-color);&:hover{background-color:var(--button-variant-outline-border);color:var(--button-variant-outline-hover-color)}&.disabled{color:var(--button-variant-outline-border);&:hover{background-color:transparent;color:var(--button-variant-outline-border)}}}.tyk-button--primary-gradient{--button-variant-gradient-left-color:var(--button-primary-gradient-start-color);--button-variant-gradient-right-color:var(--button-primary-gradient-end-color)}.tyk-button--success-gradient{--button-variant-gradient-left-color:var(--button-success-gradient-start-color);--button-variant-gradient-right-color:var(--button-success-gradient-end-color)}.tyk-button--danger-gradient{--button-variant-gradient-left-color:var(--button-danger-gradient-start-color);--button-variant-gradient-right-color:var(--button-danger-gradient-end-color)}.tyk-button--warning-gradient{--button-variant-gradient-left-color:var(--button-warning-gradient-start-color);--button-variant-gradient-right-color:var(--button-warning-gradient-end-color);--button-variant-gradient-color:var(--button-warning-font-color)}.tyk-button--info-gradient{--button-variant-gradient-left-color:var(--button-info-gradient-start-color);--button-variant-gradient-right-color:var(--button-info-gradient-end-color);--button-variant-gradient-color:var(--button-info-font-color)}.tyk-button--default-gradient{--button-variant-gradient-left-color:var(--button-default-gradient-start-color);--button-variant-gradient-right-color:var(--button-default-gradient-end-color)}.tyk-button--danger-gradient,.tyk-button--default-gradient,.tyk-button--info-gradient,.tyk-button--primary-gradient,.tyk-button--success-gradient,.tyk-button--warning-gradient{background:transparent linear-gradient(to right,var(--button-variant-gradient-left-color),var(--button-variant-gradient-right-color),var(--button-variant-gradient-left-color));background-clip:border-box;background-origin:border-box;background-position:0 0;background-size:200% auto;border-image:linear-gradient(to right,var(--button-variant-gradient-left-color),var(--button-variant-gradient-right-color),var(--button-variant-gradient-left-color)) 0 round;color:var(--button-variant-gradient-color,#fff);&:active,&:active:focus,&:hover{background:transparent linear-gradient(to right,var(--button-variant-gradient-left-color),var(--button-variant-gradient-right-color),var(--button-variant-gradient-left-color));background-clip:border-box;background-position:100% 0;background-size:200% auto;border-image:linear-gradient(to right,var(--button-variant-gradient-left-color),var(--button-variant-gradient-right-color),var(--button-variant-gradient-left-color)) 0 round;&.disabled{background:transparent linear-gradient(to right,var(--button-variant-gradient-left-color),var(--button-variant-gradient-right-color),var(--button-variant-gradient-left-color));background-clip:border-box;background-origin:border-box;background-position:0 0;background-size:200% auto;border-image:linear-gradient(to right,var(--button-variant-gradient-left-color),var(--button-variant-gradient-right-color),var(--button-variant-gradient-left-color)) 0 round;color:var(--button-variant-gradient-color,#fff)}}}.tyk-button--sm{--button-padding-y:var(--padding-y-button-sm);--button-padding-x:var(--padding-x-button-sm);--button-font-size:var(--xs-font-size);--button-line-height:var(--xs-line-height)}.tyk-button--md{--button-padding-y:var(--padding-y-button-md);--button-padding-x:var(--padding-x-button-md);--button-font-size:var(--sm-font-size);--button-line-height:var(--sm-line-height)}.tyk-button--lg{--button-padding-y:var(--padding-y-button-lg);--button-padding-x:var(--padding-x-button-lg);--button-font-size:var(--md-font-size);--button-line-height:var(--line-height-button-md)}.tyk-button,.tyk-button--lg,.tyk-button--md,.tyk-button--sm{border-radius:var(--button-border-radius);font-size:var(--button-font-size);line-height:var(--button-line-height);padding-block:var(--button-padding-y);padding-inline:var(--button-padding-x)}.tyk-button--icon-only{border-radius:var(--general-border-radius);inline-size:24px;line-height:var(--spacing-md);padding:0;&:hover{border-radius:var(--general-border-radius)}}.tyk-button--fit{block-size:auto;inline-size:auto;line-height:normal}.tyk-button--no-style{background:transparent;border:none;color:var(--text-color);&:hover{background:transparent;border:none;color:var(--text-color)}}.tyk-button-group__wrapper{display:inline-block;position:relative;vertical-align:middle;label{font-family:var(--font-family-medium)}+.tyk-button,+.tyk-button-group__wrapper,+.tyk-dropdown,+.tyk-toggle{margin-inline-start:var(--spacing-sm)}.tyk-button-group{display:flex;>.tyk-button-group:not(:first-child){>.tyk-button{border-end-start-radius:0;border-start-start-radius:0}}>.tyk-button-group:not(:last-child){>.tyk-button{border-end-end-radius:0;border-start-end-radius:0}}.tyk-button{border-radius:0;+.tyk-button,+.tyk-dropdown{margin-inline-start:0}&:first-child{border-end-start-radius:var(--spacing-md);border-start-start-radius:var(--spacing-md)}&:last-child{border-end-end-radius:var(--spacing-md);border-start-end-radius:var(--spacing-md);&.tyk-button--icon-only{inline-size:42px}}}}}.tyk-card{background-color:#fff;border:1px solid var(--color-background-base);border-radius:8px;box-shadow:2px 2px 3px var(--color-background-base);display:flex;flex-direction:column;overflow:hidden}.tyk-card__header{align-items:center;display:flex;font-family:var(--font-inter-regular);font-size:var(--sm-font-size);padding-block:var(--spacing-base) 0;padding-inline:var(--spacing-base)}.tyk-card__header-right{margin-inline-start:auto}.tyk-card__title-group{align-items:center;display:grid;grid-template-columns:auto 1fr;.tyk-card__title-icon{align-items:center;block-size:42px;display:flex;grid-row:span 2;inline-size:42px;justify-content:center;margin-inline-end:10px}}.tyk-card__title{display:-webkit-box;font-family:var(--font-inter-bold);font-size:var(--lg-font-size);-webkit-box-orient:vertical;margin:0;overflow:hidden;text-overflow:ellipsis}.tyk-card__title--max-1-lines{-webkit-line-clamp:1}.tyk-card__title--max-2-lines{-webkit-line-clamp:2}.tyk-card__sub-title{font-family:var(--font-inter-medium);font-size:var(--xs-font-size);margin:0}.tyk-card__sub-title+.tyk-card__summary,.tyk-card__title+.tyk-card__summary,.tyk-card__title-group+.tyk-card__summary{margin-block-start:var(--spacing-sm)}.tyk-card__summary{color:var(--text-color);display:-webkit-box;font-family:var(--font-inter-regular);font-size:var(--sm-font-size);-webkit-box-orient:vertical;margin:0;overflow:hidden;text-overflow:ellipsis}.tyk-card__summary--max-1-lines{-webkit-line-clamp:1}.tyk-card__summary--max-2-lines{-webkit-line-clamp:2}.tyk-card__summary--max-3-lines{-webkit-line-clamp:3}.tyk-card__summary--max-4-lines{-webkit-line-clamp:4}.tyk-card__summary--max-5-lines{-webkit-line-clamp:5}.tyk-card__body{display:flex;flex:1 0 auto;flex-grow:1;padding:var(--spacing-base)}.tyk-card__body--align-top{align-items:flex-start}.tyk-card__body--align-center{align-items:center}.tyk-card__body--align-bottom{align-items:flex-end}.tyk-card__footer{border-block-start:1px solid var(--color-background-base);display:flex;justify-content:end;padding:var(--spacing-base)}.tyk-chart__wrapper{position:relative}.tyk-chart--loading-chart,.tyk-chart--no-data{filter:blur(var(--spacing-sm))}.collapse-exit,.collapse-exit-active,.collapse-exit-done{block-size:0}.collapse-wrapper{overflow:hidden;transition:all .2s}.collapse-horizontal-exit,.collapse-horizontal-exit-active,.collapse-horizontal-exit-done{inline-size:0}.collapse-horizontal-enter,.collapse-horizontal-enter-active,.collapse-horizontal-enter-done{inline-size:100%}.tyk-copy-to-clipboard{inset-block-start:-1000px;inset-inline-start:-1000px;position:absolute}:root{--fixed-wrapper-top:0;--fixed-wrapper-left:0;--fixed-wrapper-right:0}.tyk-fixed-wrapper{inset-block-start:var(--fixed-wrapper-top);inset-inline-end:var(--fixed-wrapper-right);inset-inline-start:var(--fixed-wrapper-left);position:sticky;z-index:8}.tyk-fixed-wrapper--scrolled{box-shadow:2px 2px 5px rgba(0,0,0,.1)}.floating-container{inset-block-start:-9999px;overflow:auto;position:fixed;z-index:var(--modal-z-index,1080)}.floating-container__content-wrapper{block-size:100%}.tyk-icon{+.tyk-icon{margin-inline-start:var(--spacing-sm)}}.tyk-infinite-scroller{block-size:100%;overflow:hidden;position:relative;.loading{background:linear-gradient(180deg,hsla(0,0%,100%,0),#fff);display:flex;inline-size:100%;inset-block-end:0;inset-block-start:auto;inset-inline:0;justify-content:center;padding-block:var(--spacing-base);padding-inline:0}}.tyk-infinite-scroller__wrapper{block-size:100%;overflow-y:auto}.tyk-info-note{border-radius:0;position:relative;p+p{margin-block-start:var(--spacing-base)}&:after{block-size:0;border-color:transparent var(--color-info-base) transparent transparent;border-style:solid;border-width:0 var(--spacing-md) var(--spacing-md) 0;content:"";inline-size:0;inset-block-start:0;inset-inline-end:0;position:absolute}.tyk-message{border-radius:0;padding-block:40px}}.tyk-loading__wrapper{background:hsla(0,0%,100%,.6);inset:0;position:absolute;z-index:99}.loader-wrapper{min-block-size:100px;position:relative}.loading{inset-block-start:calc(50% - var(--spacing-sm));inset-inline-start:50%;position:absolute;&.relative{inline-size:100%;inset-block-start:auto;inset-inline-start:auto;padding:25px;position:relative;text-align:center}}.loading-bar{animation:loading 1s ease-in-out infinite;block-size:var(--spacing-md);border-radius:4px;display:inline-block;inline-size:4px;margin-inline-start:2px}.loading-bar:first-child{animation-delay:0;background-color:var(--color-success-base);opacity:1}.loading-bar:nth-child(2){animation-delay:.09s;background-color:var(--color-success-base);opacity:.8}.loading-bar:nth-child(3){animation-delay:.18s;background-color:var(--color-success-base);opacity:.6}.loading-bar:nth-child(4){animation-delay:.27s;background-color:var(--color-success-base);opacity:.4}@keyframes loading{0%{transform:scale(1)}20%{transform:scaleY(2.2)}40%{transform:scale(1)}}.tyk-list{border:var(--general-border-width) solid var(--color-default-light);border-radius:var(--general-border-radius);font-size:var(--sm-font-size);list-style-type:none;margin:0;max-block-size:191px;overflow:auto;padding:0;li{border-block-end:1px solid var(--color-default-light);font-family:var(--font-family-medium);padding-block:var(--spacing-sm);padding-inline:var(--spacing-md);&.tyk-list__item--selected{background-color:var(--color-default-light)}&:last-child{border:none}}}.tyk-list--with-inline-label{display:flex;>label{margin-inline-end:var(--spacing-md)}}.tyk-list--default{border-color:var(--color-default-light)}.tyk-list--primary{border-color:var(--color-primary-base);li{border-color:var(--color-primary-light);color:var(--text-color);&.tyk-list__item--selected{background-color:var(--color-primary-light)}}}.tyk-list--primary-light{border-color:var(--color-primary-light);li{border-color:var(--color-primary-light);color:var(--text-color);&.tyk-list__item--selected{background-color:var(--color-primary-light)}}}.tyk-list--success{border-color:var(--color-success-base);color:var(--color-success-base);li{border-color:var(--color-success-base);&.tyk-list__item--selected{background-color:var(--color-success-light)}}}.tyk-list--danger{border-color:var(--color-danger-base);color:var(--text-color);li{border-color:var(--color-danger-light);&.tyk-list__item--selected{background-color:var(--color-danger-light)}}}ul.tyk-list--inline{align-items:center;display:flex;li{padding-block:0;padding-inline:var(--spacing-sm)}&.tyk-list--with-separator{li:not(:first-child){border-inline-start:1px solid var(--color-default-base)}}}:root{--tyk-message-padding-top:var(--spacing-md);--tyk-message-padding-right:var(--spacing-md);--tyk-message-padding-bottom:var(--spacing-md);--tyk-message-padding-left:var(--spacing-md);--tyk-message-border-radius:var(--general-border-radius);--tyk-message-default-background:var(--color-primary-light);--tyk-message-default-border:var(--color-default-dark);--tyk-message-default-text-color:var(--color-default-dark);--tyk-message-info-background:var(--color-info-light);--tyk-message-info-border:var(--color-info-base);--tyk-message-info-text-color:var(--color-info-base);--tyk-message-success-background:var(--color-success-light);--tyk-message-success-border:var(--color-success-dark);--tyk-message-success-text-color:var(--color-success-dark);--tyk-message-warning-background:var(--color-warning-light);--tyk-message-warning-border:var(--color-warning-base);--tyk-message-warning-text-color:var(--color-warning-dark);--tyk-message-danger-background:var(--color-danger-extra-light);--tyk-message-danger-border:var(--color-danger-base);--tyk-message-danger-text-color:var(--color-danger-dark)}.tyk-message{align-items:center;border-radius:var(--tyk-message-border-radius);display:flex;margin-block-end:var(--spacing-md);padding-block:var(--tyk-message-padding-top) var(--tyk-message-padding-bottom);padding-inline:var(--tyk-message-padding-left) var(--tyk-message-padding-right);>.tyk-icon:first-child{block-size:32px;border-radius:50%;color:#fff;flex-shrink:0;inline-size:32px;&:before{align-items:center;block-size:100%;display:flex;inline-size:100%;justify-content:center}}>.tyk-icon:last-child{cursor:pointer}}.tyk-message__content{flex-grow:1;margin-inline:var(--spacing-md)}.tyk-message--default{--message-variant-background:var(--tyk-message-default-background);--message-variant-border:var(--tyk-message-default-border);--message-variant-color:var(--tyk-message-default-text-color);>.tyk-icon:first-child{transform:rotate(180deg)}}.tyk-message--info{--message-variant-background:var(--tyk-message-info-background);--message-variant-border:var(--tyk-message-info-border);--message-variant-color:var(--tyk-message-info-text-color)}.tyk-message--success{--message-variant-background:var(--tyk-message-success-background);--message-variant-border:var(--tyk-message-success-border);--message-variant-color:var(--tyk-message-success-text-color)}.tyk-message--warning{--message-variant-background:var(--tyk-message-warning-background);--message-variant-border:var(--tyk-message-warning-border);--message-variant-color:var(--tyk-message-warning-text-color)}.tyk-message--danger{--message-variant-background:var(--tyk-message-danger-background);--message-variant-border:var(--tyk-message-danger-border);--message-variant-color:var(--tyk-message-danger-text-color)}.tyk-message--danger,.tyk-message--default,.tyk-message--info,.tyk-message--success,.tyk-message--warning{background-color:var(--message-variant-background);border:var(--general-border-width) solid var(--message-variant-border);color:var(--message-variant-color);&>.tyk-icon:first-child{background-color:var(--message-variant-border)}}:root{--tyk-modal-body-padding:var(--spacing-lg);--tyk-modal-footer-padding:var(--spacing-lg);--tyk-modal-header-padding:var(--spacing-lg);--tyk-modal-borders-color:var(--color-background-light)}.tyk-modal{--theme-header-height:15px;--theme-header-icon-size:65px;align-items:center;inset:0;pointer-events:none;position:fixed;z-index:-1;.tyk-panel{border:var(--general-border-width) solid var(--color-background-dark);box-shadow:none}.tyk-modal__dialog{opacity:0;transition:all .2s ease}&.opened{display:flex;z-index:var(--modal-z-index);.tyk-modal__dialog{display:flex;max-block-size:92vh;opacity:1;pointer-events:all}}&.appear-enter-done{.tyk-modal__dialog{margin-block-start:0;opacity:1}}}.tyk-modal__theme-header{block-size:var(--theme-header-height);border-start-end-radius:var(--general-border-radius);border-start-start-radius:var(--general-border-radius);inset-block-start:-1px;inset-inline:0;position:absolute;.tyk-icon{align-items:center;block-size:var(--theme-header-icon-size);border-radius:50%;color:#fff;display:flex;font-size:var(--xxl-font-size);inline-size:var(--theme-header-icon-size);inset-block-start:calc((var(--theme-header-icon-size) - var(--theme-header-height))/-2);inset-inline-start:calc(50% - var(--theme-header-icon-size)/2);justify-content:center;position:absolute}}.tyk-modal--theme-success{.tyk-modal__theme-header{background-color:var(--color-success-base);.tyk-icon{background-color:var(--color-success-base)}}}.tyk-modal--theme-warning{.tyk-modal__theme-header{background-color:var(--color-warning-base);.tyk-icon{background-color:var(--color-warning-base)}}}.tyk-modal--theme-danger{.tyk-modal__theme-header{background-color:var(--color-danger-base);.tyk-icon{background-color:var(--color-danger-base)}}}.tyk-modal__dialog{inline-size:85%;margin-block-end:0;margin-block-start:-5%;margin-inline:auto;opacity:0;pointer-events:all;transition:all .2s linear}@media only screen and (width >= 768px){.tyk-modal__dialog{inline-size:600px;&.tyk-modal--lg{inline-size:800px}}}.tyk-modal__content{background:#fff;border-radius:var(--general-border-radius);display:flex;flex-direction:column;inline-size:100%;position:relative}.tyk-modal__body{flex:1;overflow:auto;padding-block-end:var(--tyk-modal-body-padding);padding-block-start:calc(var(--tyk-modal-body-padding) + (var(--theme-header-icon-size) - var(--theme-header-height))/2);padding-inline:var(--tyk-modal-body-padding);&.no-padding{padding:0}}.tyk-modal__footer{align-items:center;display:flex;justify-content:flex-end;padding:var(--tyk-modal-footer-padding);>:not(:first-child){margin-inline-start:var(--spacing-xs)}}.tyk-modal__backdrop{background-color:var(--color-default-dark);border:none;display:none;inline-size:100%;inset:0;position:fixed;z-index:var(--modal-z-index) - 1;&.opened{display:block;opacity:.5;transition:opacity .2s ease}&.fade-enter-done{opacity:.5;z-index:9}}.tyk-modal__header{align-items:center;border-block-end:1px solid var(--tyk-modal-borders-color);display:flex;inline-size:100%;padding-block-end:var(--tyk-modal-header-padding);padding-block-start:calc(var(--tyk-modal-header-padding) + (var(--theme-header-icon-size) - var(--theme-header-height))/2);padding-inline:var(--tyk-modal-header-padding);.tyk-modal--theme-none &{padding-block-start:var(--tyk-modal-header-padding)}button{margin-inline-start:auto;padding-block:0;padding-inline:5px}+.tyk-modal__body{padding-block-start:var(--tyk-modal-body-padding)}}.tyk-modal__title{font-family:var(--font-family-medium);font-weight:500;inline-size:100%;margin:0}:root{--navigation-background-color:#fff;--navigation-item-padding-y:var(--spacing-sm);--navigation-item-padding-x:var(--spacing-md);--navigation-item-background-color:#fff;--navigation-item-color:var(--text-color);--navigation-item-hover-background-color:var(--color-primary-base);--navigation-item-hover-color:#fff;--navigation-item-active-background-color:var(--color-primary-dark);--navigation-item-active-color:#fff;--navigation-padding:0}.tyk-navigation{background-color:var(--navigation-background-color);block-size:100%;inline-size:100%;overflow:auto;padding:var(--navigation-padding);.tyk-navigation-item{inline-size:100%;a{color:var(--navigation-item-color);display:flex;padding-block:var(--navigation-item-padding-y);padding-inline:var(--navigation-item-padding-x);text-decoration:none;transition:all .2s ease;&:hover{background-color:var(--navigation-item-hover-background-color);color:var(--navigation-item-hover-color)}&.active{background-color:var(--navigation-item-active-background-color);color:var(--navigation-item-active-color)}}}}:root{--nav-bar-background-color:#fff;--nav-bar-text-color:var(--color-default-base);--nav-bar-padding-left:265px;--nav-bar-animate-left:245px;--nav-bar-top-padding:var(--spacing-sm);--nav-bar-bottom-padding:0;--nav-bar-left-padding:var(--spacing-md);--nav-bar-right-padding:var(--spacing-md);--nav-bar-padding:0 var(--nav-bar-right-padding) 0 var(--nav-bar-left-padding);--nav-bar-top:51px;--nav-bar-header-font-size:var(--xxl-font-size);--nav-bar-header-font-family:var(--headings-font-family-bold);--nav-bar-header-line-height:var(--xxl-line-height);--nav-bar-height:92px;--nav-bar-font-family:var(--font-family-regular)}.tyk-nav-bar{align-items:center;background-color:var(--nav-bar-background-color);border:none;color:var(--nav-bar-text-color);font-family:var(--nav-bar-font-family);inline-size:100%;margin:0;padding:var(--nav-bar-padding);transition:all .2s linear;z-index:8;&.tyk-nav-bar__with-tabs .tyk-tabs--default>ul li button{padding-block-start:0}@media screen and (width <= 1024px){padding-inline-start:var(--spacing-md);.menu-opened &{transform:translate(var(--nav-bar-animate-left))}}h1{color:var(--nav-bar-text-color)}h4{margin:0}.tyk-nav-bar__wrapper{align-items:center;block-size:var(--nav-bar-height);display:flex;flex-wrap:wrap;padding-block-end:var(--nav-bar-bottom-padding);&.tyk-nav-bar--align-top{align-items:flex-start}@media screen and (width <= 1024px){padding-inline-start:0}h1{font-family:var(--nav-bar-header-font-family);font-size:var(--nav-bar-header-font-size);line-height:var(--nav-bar-header-line-height);margin:0}h1,h4{padding-inline-end:var(--spacing-sm)}.tyk-nav-bar__container{align-items:center;display:flex;flex-grow:1;justify-content:space-between}.tyk-nav-bar__left{flex-grow:1}.tyk-nav-bar__right{margin-inline-start:auto}}}.tyk-nav-bar__pre{align-self:flex-end;color:var(--text-color);flex-basis:100%;a{color:var(--text-color);font-family:var(--font-family-bold);font-size:var(--xs-font-size);line-height:var(--xs-line-height)}}:root{--padding-y-panel-header:var(--spacing-sm);--padding-x-panel-header:25px;--padding-y-blank-panel-header:var(--spacing-md);--padding-panel-body:25px;--padding-x-right-panel-collapsable:48px;--padding-x-left-panel-collapsable:var(--padding-x-right-panel-collapsable);--panel-border-radius:0;--panel-default-border-bottom-color:var(--color-background-base);--panel-header-font-size:var(--base-font-size);--panel-header-font-family:var(--font-family-medium);--panel-primary-header-color:var(--color-primary-base);--panel-primary-body-color:#fff;--panel-primary-header-text-color:#fff;--panel-primary-body-text-color:var(--text-color);--panel-primary-label-color:var(--text-color);--panel-primary-border-color:none}.tyk-panel{background:#fff;border-radius:var(--panel-border-radius);font-family:var(--font-family-medium);margin-block-end:20px;position:relative;& &.has-error,&.has-error{border:var(--general-border-width) solid var(--color-danger-base)}.tyk-panel{border:var(--general-border-width) solid var(--color-default-light);box-shadow:none}.tyk-panel__header{border:none;font-size:var(--lg-font-size);line-height:var(--lg-line-height)}}.tyk-panel--blank{&.tyk-panel--collapsed{margin-block-end:20px;.tyk-panel__header{margin-block-end:0}}.tyk-panel__header{background-color:#fff;color:var(--color-default-base);margin-block-end:-20px;padding-block:var(--padding-y-blank-panel-header);padding-inline:var(--padding-x-panel-header)}}.tyk-panel--primary{background-color:transparent;.tyk-panel__header{background-color:var(--panel-primary-header-color);border:var(--panel-primary-border-color);color:var(--panel-primary-header-text-color)}.tyk-panel__body{background-color:var(--panel-primary-body-color);color:var(--panel-primary-body-text-color)}& .tyk-form-group{label{color:var(--panel-primary-label-color)}}.tyk-toggle{.tyk-toggle__label{color:var(--panel-primary-label-color)}}}.tyk-panel--success{.tyk-panel__header{background-color:var(--color-success-base);color:#fff}}.tyk-panel--danger{.tyk-panel__header{background-color:var(--color-danger-base);color:#fff}}.tyk-panel--warning{.tyk-panel__header{background-color:var(--color-warning-base);color:#fff}}.tyk-panel__body{background-color:#fff;border-radius:var(--panel-border-radius);font-family:var(--font-family-regular);padding:var(--padding-panel-body);position:relative;transition:block-size .2s;&~.tyk-panel__header{border-end-end-radius:0;border-end-start-radius:0}&.no-padding{padding:0}}.tyk-panel__header{align-items:center;border-block-end:1px solid var(--panel-default-border-bottom-color);border-radius:var(--panel-border-radius);border-end-end-radius:0;border-end-start-radius:0;display:flex;font-family:var(--panel-header-font-family);overflow:hidden;padding-block:var(--padding-y-panel-header);padding-inline:var(--padding-x-panel-header);position:relative;>.tyk-icon,>.tyk-tooltip__wrapper{margin-inline-start:5px}.tyk-panel--collapsed &{border-end-end-radius:var(--panel-border-radius);border-end-start-radius:var(--panel-border-radius)}&~.tyk-panel__body{border-start-end-radius:0;border-start-start-radius:0}& h3{margin:0}ng-transclude{vertical-align:middle}&.collapsable{cursor:pointer;.tyk-panel__icon-collapse--right &{padding-inline-end:var(--padding-x-right-panel-collapsable)}.tyk-panel__icon-collapse--left &{padding-inline-start:var(--padding-x-left-panel-collapsable)}}.collapsable__arrow-right{inset-inline-end:var(--spacing-sm);padding:var(--spacing-sm)}.collapsable__arrow-left,.collapsable__arrow-right{font-size:var(--sm-font-size);inset-block-start:calc(50% - 21px);position:absolute}.collapsable__arrow-left{inset-inline-start:0;padding-block:8px var(--spacing-sm);padding-inline:20px 0}}.tyk-panel__footer{align-items:center;border-block-start:1px solid var(--color-background-light);display:flex;justify-content:flex-end;padding:var(--spacing-lg);>:not(:first-child){margin-inline-start:5px}}.tyk-pill{align-items:center;border-radius:var(--general-border-radius);display:inline-flex;font-family:var(--font-family-medium);font-size:var(--xs-font-size);line-height:19px;margin:var(--pill-margin);padding-block:6px;padding-inline:var(--spacing-base);i{font-size:var(--xs-font-size)}+.tyk-pill{margin-inline-end:var(--spacing-sm)}button+span,span+button{margin-inline-start:var(--spacing-sm)}&:first-child{margin-inline-end:var(--spacing-sm)}&:last-child{margin-inline-end:0}}.tyk-pill--square{border-radius:8px}.tyk-pill--default{background-color:var(--default-pill-background-color);color:var(--default-pill-color);i{color:var(--default-pill-color)}}.tyk-pill--default-outline{box-shadow:var(--default-outline-pill-box-shadow);color:var(--text-color);i{color:var(--text-color)}}.tyk-pill--primary{background-color:var(--color-primary-base);color:#fff;i{color:var(--default-pill-color)}}.tyk-pill--primary-outline{box-shadow:inset 0 0 0 2px var(--color-primary-base);color:var(--text-color);i{color:var(--text-color)}}.tyk-pill--success{background-color:var(--color-success-base);color:#fff;i{color:#fff}}.tyk-pill--success-outline{box-shadow:inset 0 0 0 2px var(--color-success-base);color:var(--text-color);i{color:var(--text-color)}}.tyk-pill--danger{background-color:var(--color-danger-base);color:#fff;i{color:#fff}}.tyk-pill--danger-outline{box-shadow:inset 0 0 0 2px var(--color-danger-base);color:var(--text-color);i{color:var(--text-color)}}.tyk-pill--warning{background-color:var(--color-warning-base);color:#fff;i{color:#fff}}.tyk-pill--warning-outline{box-shadow:inset 0 0 0 2px var(--color-warning-base);color:var(--text-color);i{color:var(--text-color)}}.tyk-pill--info{background-color:var(--color-info-base);color:#fff;i{color:#fff}}.tyk-pill--info-outline{box-shadow:inset 0 0 0 2px var(--color-info-base);color:var(--text-color);i{color:var(--text-color)}}.tyk-ui-reveal-wrapper{align-items:stretch;block-size:100%;display:flex;flex-direction:column;inline-size:100%;inset-block-end:0;inset-inline-start:0;justify-content:flex-end;pointer-events:none;position:absolute;z-index:1000}.tyk-ui-reveal-wrapper__panel{background-color:#fff;display:flex;flex-direction:column;flex-shrink:0;margin:0;max-block-size:calc(100% - 2rem);overflow:auto;padding:0;pointer-events:all}.tyk-ui-reveal-wrapper__hole{background-color:green;flex-grow:1;inline-size:100%;opacity:0;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:-1}.tyk-ui-reveal-wrapper__gutter{align-items:stretch;background-color:var(--color-primary-base);block-size:2rem;box-shadow:0 5px 10px rgba(0,0,0,.3);cursor:row-resize;display:flex;inline-size:100%;justify-content:space-between;pointer-events:all;position:relative;z-index:2}.tyk-ui-reveal-wrapper__gutter__headerleft,.tyk-ui-reveal-wrapper__gutter__headerright{align-items:center;display:flex;flex:1}.tyk-ui-reveal-wrapper__gutter__headerleft{justify-content:flex-start}.tyk-ui-reveal-wrapper__gutter__headerright{justify-content:flex-end}.tyk-ui-reveal-wrapper__gutter__logo{align-self:center;background-image:url(images/drag.svg);block-size:1rem;inline-size:1rem;padding:.2rem;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:2;&:hover{border:dashed}}:root{--sidebar-background-color:#fff;--sidebar-top:58px;--sidebar-height:calc(100vh - 58px);--sidebar-width:280px;--sidebar-padding:0}.tyk-sidebar{background-color:var(--sidebar-background-color);block-size:var(--sidebar-height);flex:0 0 var(--sidebar-width);inset-block-start:var(--sidebar-top);overflow:auto;padding:var(--sidebar-padding);position:sticky}:root{--table-th-padding:var(--spacing-base) var(--spacing-sm);--table-td-padding-y:var(--spacing-xs);--table-td-padding-x:var(--spacing-sm);--table-first-last-padding:20px;--table-pagination-padding:var(--spacing-md) 25px}.tyk-table{background-color:#fff;border-collapse:collapse;border-radius:var(--general-border-radius);border-spacing:0;inline-size:100%;>thead th{border-inline-end:1px solid var(--color-default-light);color:var(--text-color);font-family:var(--font-family-bold);font-size:var(--sm-font-size);line-height:var(--sm-line-height);padding:var(--table-th-padding);text-transform:uppercase;&:last-child{border-inline-end:none}i{font-size:var(--xs-font-size)}.tyk-button{background:none;color:var(--color-default-base);padding:0}}>tbody tr:hover{background:rgba(var(--color-background-light)/40%)}>tbody td{border-inline-end:1px solid var(--color-default-light);font-family:var(--font-family-regular);font-size:var(--sm-font-size);line-height:var(--sm-line-height);padding-block:var(--table-td-padding-y);padding-inline:var(--table-td-padding-x);vertical-align:middle;&:last-child{border-inline-end:none}&.fit{inline-size:1%;white-space:nowrap}input:not([type=checkbox],[type=radio]){margin-block-start:var(--spacing-base)}a{color:var(--text-color);font-family:var(--font-family-medium)}input[type=checkbox],label{margin:0}}tbody>tr{border-block-start:1px solid var(--color-default-light);border-radius:var(--general-border-radius);transition:all .4s linear;&.clickable{cursor:pointer}}>tbody tr td:first-child,>thead tr th:first-child{padding-inline-start:var(--table-first-last-padding);&.with-icon{padding-inline-start:var(--spacing-base)}}>tbody tr td:last-child,>thead tr th:last-child{padding-inline-end:var(--table-first-last-padding);&.with-icon{padding-inline-end:var(--spacing-base)}}.tyk-pagination{padding:var(--table-pagination-padding);li:first-child{margin-inline-start:auto}}.nowrap{white-space:nowrap}.wrap{word-break:break-all}}.tyk-table__wrapper{border:var(--general-border-width) solid var(--color-default-light);border-radius:var(--general-border-radius);overflow:auto;&.no-innner-horizontal-borders{& .tyk-table>tbody td,& .tyk-table>thead th{border-inline-end:none}}}.tyk-table__wrapper--no-border{border:none}.tyk-table-search{padding-block:var(--spacing-sm) 0;padding-inline:25px;label{font-size:var(--sm-font-size);text-transform:uppercase}}.header-sort{padding-block-start:var(--spacing-xs);padding-inline-start:3px;vertical-align:middle}.new-table-pagination{float:inline-end}.selectable>div{margin-inline-start:var(--spacing-md)}.scrollable{display:block;overflow:auto}.fixed-header{background:#fff;inset-block-start:0;position:sticky}.tyk-table.has-error,.tyk-table__wrapper.has-error{border:var(--general-border-width) solid var(--color-danger-base)!important}:root{--tabs-default-content-padding:25px;--tab-button-padding:var(--spacing-sm) 2px 3px 2px;--tab-button-margin:0;--tabs-font-familly:var(--font-family-medium);--tab-button-color:var(--text-color);--tab-active-button-color:var(--text-color);--tab-border-color:var(--color-success-base)}.tyk-tabs--default{>ul{display:flex;list-style-type:none;margin:0;overflow:auto;padding:0;li{display:flex;margin-inline-end:var(--tab-button-margin);white-space:nowrap;&:last-child{margin-inline-end:0}&.active button,button:hover{border-block-end-color:var(--tab-border-color);color:var(--tab-active-button-color);opacity:1}button{background:none;border:none;border-block-end:4px solid transparent;color:var(--tab-button-color);cursor:pointer;font-family:var(--tabs-font-familly);font-size:var(--sm-font-size);margin-inline-end:var(--spacing-md);opacity:.7;padding:var(--tab-button-padding);transition:all .2s linear;&:focus{outline:none}}}}}.tyk-tab__content{padding:var(--tabs-default-content-padding)}.tyk-toast__container{inset-block-end:0;inset-inline-end:var(--spacing-md);min-inline-size:300px;position:fixed;z-index:11}.tyk-toast__message{position:relative}.tyk-toast-message__button{block-size:var(--spacing-md);color:var(--text-color);inline-size:var(--spacing-md);inset-block-start:var(--spacing-xs);inset-inline-end:var(--spacing-xs);line-height:1;padding:var(--spacing-xs);position:absolute;&:hover{background:hsla(0,0%,100%,.3);color:var(--text-color)}}:root{--tooltip-max-width:450px}.tyk-tooltip{align-items:center;background-color:var(--color-primary-light);border:2px solid var(--color-primary-base);border-radius:var(--general-border-radius);display:flex;max-inline-size:var(--tooltip-max-width);padding:var(--spacing-md);>.tyk-icon:first-child{background-color:var(--color-default-base-light);block-size:32px;border-radius:50%;color:#fff;inline-size:32px;&:before{align-items:center;block-size:100%;display:flex;inline-size:100%;justify-content:center}}>.tyk-icon+.tyk-tooltip__content{margin-inline-start:var(--spacing-md)}>.tyk-icon:last-child{cursor:pointer}}.tyk-tooltip__content{color:var(--color-default-dark);word-break:break-word;word-wrap:break-word;+.tyk-icon{margin-inline-start:var(--spacing-md)}}:root{--tyk-combobox-pill-background:#f0f0f0;--tyk-combobox-pill-color:var(--text-color);--tyk-combobox-list-item-hover-color:var(--form-default-color);--tyk-combobox-list-item-disabled-color:var(--form-default-color)}.tyk-combobox2{--container-trigger-width:40px;--values-default-height:38px;outline:none;&.disabled{.tyk-form-control{background-color:var(--form-control-disabled-background-color);border:var(--form-control-disabled-border)!important;color:var(--form-control-disabled-color)}&:not(.is-expand-mode) .tyk-combobox2__values-container-trigger,.tyk-combobox2__current-values .tyk-pill--combobox button,.tyk-form-control{cursor:not-allowed}.tyk-combobox2__entry-field{background-color:transparent;cursor:not-allowed}}.tyk-form-control{block-size:auto;display:flex;flex-direction:row;min-block-size:40px;padding:0;position:relative;&:focus-within{border:var(--form-control-border-focus);outline:none}}}.tyk-combobox2__current-values{display:flex;flex-grow:1;flex-wrap:wrap;max-inline-size:calc(100% - var(--container-trigger-width));padding-block:2px;padding-inline-start:var(--spacing-sm);&.expand-mode{max-block-size:1000px;overflow:hidden;transition:max-block-size 1s ease}.tyk-pill--combobox{background-color:var(--tyk-combobox-pill-background);border-radius:var(--spacing-sm);color:var(--tyk-combobox-pill-color);margin-block:3px;max-block-size:26px;max-inline-size:100%;padding-block:var(--spacing-xs);padding-inline:var(--spacing-sm);button{background:none;border:none;cursor:pointer;inline-size:23px;outline:none;+span{margin-inline-start:0}}span{overflow:hidden;text-overflow:ellipsis}i{margin-inline-end:var(--spacing-xs)}}}.tyk-combobox2__current-values--collapsed.expand-mode{max-block-size:var(--values-default-height);transition:max-block-size .2s ease}.tyk-combobox2__entry-field{border:none;line-height:30px;&:active,&:focus{border:none;outline:none}&::placeholder{color:var(--form-control-placeholder-color);font-family:var(--form-control-placeholder-font-family)}}.tyk-combobox2__text-value{font-family:var(--font-family-medium);font-size:var(--sm-font-size);inline-size:100%;line-height:1;outline:none;overflow:hidden;padding-block:9px;padding-inline:5px;text-overflow:ellipsis;&.overflow-single{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}&.is-placeholder{color:var(--form-control-placeholder-color);font-family:var(--form-control-placeholder-font-family)}}.tyk-combobox2__values-container-trigger{align-items:center;color:var(--text-color);cursor:pointer;display:flex;flex-basis:var(--container-trigger-width);justify-content:center;outline:none;position:relative;transition:all .2s;.tyk-icon{block-size:14px}}.tyk-combobox2__values-container-trigger--expanded{transform:rotate(180deg)}.tyk-form-group--rounded-corners .tyk-combobox2-disabled-overlay{border-radius:calc(var(--general-border-radius) - 2px)}.tyk-combobox2__combobox-dropdown{background-color:#fff;border:var(--general-border-width) solid var(--form-default-color);display:flex;flex-direction:column;&.tyk-form-group--rounded-corners{border-radius:var(--general-border-radius);z-index:1081}.tyk-combobox2__combobox-search{background-color:#fff;inset-block-start:0;padding-block:var(--spacing-sm);padding-inline:var(--spacing-md);position:sticky;+.combobox-list{border-block-start:1px solid var(--form-default-color)}}.tyk-combobox2__combobox-list{max-block-size:255px;li{cursor:pointer;display:flex;font-family:var(--font-family-medium);padding-block:9px;padding-inline:var(--spacing-md);transition:all .2s;&.active,&:hover{background-color:var(--tyk-combobox-list-item-hover-color)}&.disabled{background-color:initial;color:var(--tyk-combobox-list-item-disabled-color)}+li{border-block-start:1px solid var(--form-default-color)}i{margin-inline-end:var(--spacing-xs)}.item-name{line-height:16px;overflow:hidden;text-overflow:ellipsis}}}}:root{--tyk-checkbox-theme-light-label-color:#fff;--tyk-checkbox-theme-light-label-disabled-color:#fff;--tyk-checkbox-theme-dark-label-color:var(--text-color);--tyk-checkbox-theme-dark-label-disabled-color:var(--text-color)}.tyk-checkbox{label{--label-indent:20px;align-items:flex-start;display:flex;padding-inline-start:var(--label-indent);input{margin-block-start:5px;margin-inline-start:calc(var(--label-indent)*-1)}}}.tyk-checkbox--theme-light{label{color:var(--tyk-checkbox-theme-light-label-color)}&.tyk-checkbox--is-disabled{label{color:var(--tyk-checkbox-theme-light-label-disabled-color)}}}.tyk-checkbox--is-disabled{label,p{cursor:not-allowed;opacity:.5}}.flatpickr-calendar{-webkit-animation:none;animation:none;background:transparent;background:#fff;border:0;border-radius:5px;-webkit-box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,.08);box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,.08);-webkit-box-sizing:border-box;box-sizing:border-box;direction:ltr;display:none;font-size:14px;line-height:24px;opacity:0;padding:0;position:absolute;text-align:center;-ms-touch-action:manipulation;touch-action:manipulation;visibility:hidden;width:307.875px}.flatpickr-calendar.inline,.flatpickr-calendar.open{max-height:640px;opacity:1;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{-webkit-animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1);animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{display:block;z-index:999}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){-webkit-box-shadow:none!important;box-shadow:none!important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){-webkit-box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-calendar .hasTime .dayContainer,.flatpickr-calendar .hasWeeks .dayContainer{border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.hasTime .flatpickr-time{border-top:1px solid #e6e6e6;height:40px}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:after,.flatpickr-calendar:before{border:solid transparent;content:"";display:block;height:0;left:22px;pointer-events:none;position:absolute;width:0}.flatpickr-calendar.arrowRight:after,.flatpickr-calendar.arrowRight:before,.flatpickr-calendar.rightMost:after,.flatpickr-calendar.rightMost:before{left:auto;right:22px}.flatpickr-calendar.arrowCenter:after,.flatpickr-calendar.arrowCenter:before{left:50%;right:50%}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:after,.flatpickr-calendar.arrowTop:before{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:after,.flatpickr-calendar.arrowBottom:before{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{display:inline-block;position:relative}.flatpickr-months{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-months .flatpickr-month{background:transparent;line-height:1;overflow:hidden;position:relative;text-align:center;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.flatpickr-months .flatpickr-month,.flatpickr-months .flatpickr-next-month,.flatpickr-months .flatpickr-prev-month{color:rgba(0,0,0,.9);fill:rgba(0,0,0,.9);height:34px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.flatpickr-months .flatpickr-next-month,.flatpickr-months .flatpickr-prev-month{cursor:pointer;padding:10px;position:absolute;text-decoration:none;top:0;z-index:3}.flatpickr-months .flatpickr-next-month.flatpickr-disabled,.flatpickr-months .flatpickr-prev-month.flatpickr-disabled{display:none}.flatpickr-months .flatpickr-next-month i,.flatpickr-months .flatpickr-prev-month i{position:relative}.flatpickr-months .flatpickr-next-month.flatpickr-prev-month,.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month{left:0}.flatpickr-months .flatpickr-next-month.flatpickr-next-month,.flatpickr-months .flatpickr-prev-month.flatpickr-next-month{right:0}.flatpickr-months .flatpickr-next-month:hover,.flatpickr-months .flatpickr-prev-month:hover{color:#959ea9}.flatpickr-months .flatpickr-next-month:hover svg,.flatpickr-months .flatpickr-prev-month:hover svg{fill:#f64747}.flatpickr-months .flatpickr-next-month svg,.flatpickr-months .flatpickr-prev-month svg{height:14px;width:14px}.flatpickr-months .flatpickr-next-month svg path,.flatpickr-months .flatpickr-prev-month svg path{-webkit-transition:fill .1s;transition:fill .1s;fill:inherit}.numInputWrapper{height:auto;position:relative}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper input::-webkit-inner-spin-button,.numInputWrapper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.numInputWrapper span{border:1px solid rgba(57,57,57,.15);-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer;height:50%;line-height:50%;opacity:0;padding:0 4px 0 2px;position:absolute;right:0;width:14px}.numInputWrapper span:hover{background:rgba(0,0,0,.1)}.numInputWrapper span:active{background:rgba(0,0,0,.2)}.numInputWrapper span:after{content:"";display:block;position:absolute}.numInputWrapper span.arrowUp{border-bottom:0;top:0}.numInputWrapper span.arrowUp:after{border-bottom:4px solid rgba(57,57,57,.6);border-left:4px solid transparent;border-right:4px solid transparent;top:26%}.numInputWrapper span.arrowDown{top:50%}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(57,57,57,.6);top:40%}.numInputWrapper span svg{height:auto;width:inherit}.numInputWrapper span svg path{fill:rgba(0,0,0,.5)}.numInputWrapper:hover{background:rgba(0,0,0,.05)}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{color:inherit;display:inline-block;font-size:135%;font-weight:300;height:34px;left:12.5%;line-height:inherit;line-height:1;padding:7.48px 0 0;position:absolute;text-align:center;-webkit-transform:translateZ(0);transform:translateZ(0);width:75%}.flatpickr-current-month span.cur-month{color:inherit;display:inline-block;font-family:inherit;font-weight:700;margin-left:.5ch;padding:0}.flatpickr-current-month span.cur-month:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .numInputWrapper{display:inline-block;width:6ch;width:7ch\0}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:rgba(0,0,0,.9)}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:rgba(0,0,0,.9)}.flatpickr-current-month input.cur-year{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;background:transparent;border:0;border-radius:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;cursor:text;display:inline-block;font-family:inherit;font-size:inherit;font-weight:300;height:auto;line-height:inherit;margin:0;padding:0 0 0 .5ch;vertical-align:initial}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{background:transparent;color:rgba(0,0,0,.5);font-size:100%;pointer-events:none}.flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;-webkit-appearance:menulist;-moz-appearance:menulist;background:transparent;border:none;border-radius:0;box-sizing:border-box;-webkit-box-sizing:border-box;color:inherit;cursor:pointer;font-family:inherit;font-size:inherit;font-weight:300;height:auto;line-height:inherit;margin:-1px 0 0;outline:none;padding:0 0 0 .5ch;position:relative;vertical-align:initial;width:auto}.flatpickr-current-month .flatpickr-monthDropdown-months:active,.flatpickr-current-month .flatpickr-monthDropdown-months:focus{outline:none}.flatpickr-current-month .flatpickr-monthDropdown-months:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:transparent;outline:none;padding:0}.flatpickr-weekdays{background:transparent;overflow:hidden;text-align:center;width:100%;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:28px}.flatpickr-weekdays,.flatpickr-weekdays .flatpickr-weekdaycontainer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-weekdays .flatpickr-weekdaycontainer,span.flatpickr-weekday{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}span.flatpickr-weekday{background:transparent;color:rgba(0,0,0,.54);cursor:default;display:block;font-size:90%;font-weight:bolder;line-height:1;margin:0;text-align:center}.dayContainer,.flatpickr-weeks{padding:1px 0 0}.flatpickr-days{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;overflow:hidden;position:relative;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;width:307.875px}.flatpickr-days:focus{outline:0}.dayContainer{-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;display:-ms-flexbox;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-wrap:wrap;max-width:307.875px;min-width:307.875px;outline:0;padding:0;text-align:left;width:307.875px;-ms-flex-pack:justify;-webkit-justify-content:space-around;justify-content:space-around;opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}.dayContainer+.dayContainer{-webkit-box-shadow:-1px 0 0 #e6e6e6;box-shadow:-1px 0 0 #e6e6e6}.flatpickr-day{background:none;border:1px solid transparent;border-radius:150px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#393939;cursor:pointer;-webkit-flex-basis:14.2857143%;font-weight:400;width:14.2857143%;-ms-flex-preferred-size:14.2857143%;display:inline-block;flex-basis:14.2857143%;height:39px;line-height:39px;margin:0;max-width:39px;position:relative;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center}.flatpickr-day.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day.nextMonthDay:focus,.flatpickr-day.nextMonthDay:hover,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.today.inRange,.flatpickr-day:focus,.flatpickr-day:hover{background:#e6e6e6;border-color:#e6e6e6;cursor:pointer;outline:0}.flatpickr-day.today{border-color:#959ea9}.flatpickr-day.today:focus,.flatpickr-day.today:hover{background:#959ea9;border-color:#959ea9;color:#fff}.flatpickr-day.endRange,.flatpickr-day.endRange.inRange,.flatpickr-day.endRange.nextMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.endRange:focus,.flatpickr-day.endRange:hover,.flatpickr-day.selected,.flatpickr-day.selected.inRange,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.selected:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange,.flatpickr-day.startRange.inRange,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.startRange:focus,.flatpickr-day.startRange:hover{background:#569ff7;border-color:#569ff7;-webkit-box-shadow:none;box-shadow:none;color:#fff}.flatpickr-day.endRange.startRange,.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.endRange.endRange,.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)){-webkit-box-shadow:-10px 0 0 #569ff7;box-shadow:-10px 0 0 #569ff7}.flatpickr-day.endRange.startRange.endRange,.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;-webkit-box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.nextMonthDay,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.prevMonthDay{background:transparent;border-color:transparent;color:rgba(57,57,57,.3);cursor:default}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{color:rgba(57,57,57,.1);cursor:not-allowed}.flatpickr-day.week.selected{border-radius:0;-webkit-box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7;box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{float:left}.flatpickr-weekwrapper .flatpickr-weeks{-webkit-box-shadow:1px 0 0 #e6e6e6;box-shadow:1px 0 0 #e6e6e6;padding:0 12px}.flatpickr-weekwrapper .flatpickr-weekday{float:none;line-height:28px;width:100%}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{background:transparent;border:none;color:rgba(57,57,57,.3);cursor:default;display:block;max-width:none;width:100%}.flatpickr-innerContainer{display:block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;overflow:hidden}.flatpickr-innerContainer,.flatpickr-rContainer{-webkit-box-sizing:border-box;box-sizing:border-box}.flatpickr-rContainer{display:inline-block;padding:0}.flatpickr-time{-webkit-box-sizing:border-box;box-sizing:border-box;display:block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:0;line-height:40px;max-height:40px;outline:0;overflow:hidden;text-align:center}.flatpickr-time:after{clear:both;content:"";display:table}.flatpickr-time .numInputWrapper{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;float:left;height:40px;width:40%}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#393939}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#393939}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;background:transparent;border:0;border-radius:0;-webkit-box-shadow:none;box-shadow:none;-webkit-box-sizing:border-box;box-sizing:border-box;color:#393939;font-size:14px;height:inherit;line-height:inherit;margin:0;padding:0;position:relative;text-align:center}.flatpickr-time input.flatpickr-hour{font-weight:700}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{border:0;outline:0}.flatpickr-time .flatpickr-am-pm,.flatpickr-time .flatpickr-time-separator{-webkit-align-self:center;color:#393939;float:left;font-weight:700;height:inherit;line-height:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:2%;-ms-flex-item-align:center;align-self:center}.flatpickr-time .flatpickr-am-pm{cursor:pointer;font-weight:400;outline:0;text-align:center;width:18%}.flatpickr-time .flatpickr-am-pm:focus,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time input:hover{background:#eee}.flatpickr-input[readonly]{cursor:pointer}@-webkit-keyframes fpFadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fpFadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.flatpickr-day.endRange,.flatpickr-day.endRange.inRange,.flatpickr-day.endRange.nextMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.endRange:focus,.flatpickr-day.endRange:hover,.flatpickr-day.selected,.flatpickr-day.selected.inRange,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.selected:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange,.flatpickr-day.startRange.inRange,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.startRange:focus,.flatpickr-day.startRange:hover{background:var(--color-success-base)!important;border-color:var(--color-success-base)!important}:root{--tyk-dropdown-item-background:#fff;--tyk-dropdown-item-background-hover:var(--color-background-light);--tyk-dropdown-item-border-color:#fff;--tyk-dropdown-item-text-color:var(--text-color);--tyk-dropdown-item-hover-text-color:var(--text-color)}.tyk-dropdown{display:inline-block;+.tyk-button,+.tyk-dropdown,+.tyk-toggle{margin-inline-start:var(--spacing-sm)}label{display:block}&.theme-list .tyk-button{background:#fff;border:var(--general-border-width) solid var(--color-default-base);border-radius:var(--general-border-radius);color:var(--text-color);&:active,&:active:focus,&:focus,&:hover{background:#fff;border-color:var(--color-background-dark);color:var(--text-color)}}}.tyk-dropdown--block{inset-inline:var(--spacing-md)}.tyk-dropdown--relative{inset-inline:auto}.tyk-dropdown--custom{padding-block:var(--spacing-md);padding-inline:25px}.tyk-dropdown__trigger{position:relative}.tyk-dropdown-menu{background:var(--tyk-dropdown-item-background);border:var(--general-border-width) solid var(--color-default-light);border-radius:var(--general-border-radius);filter:drop-shadow(1px 2px 1px rgba(0 0 0/10%));list-style-type:none;margin-block:3px 0;margin-inline:0;overflow:hidden;padding:0;z-index:1081;&.tyk-dropdown--scrollable{overflow:auto}.tyk-panel{margin:0}&.opened{display:flex;flex-direction:column;position:absolute}>li{background:var(--tyk-dropdown-item-background);border-block-end:1px solid var(--tyk-dropdown-item-border-color);display:flex;position:relative;z-index:7;&:last-child{border:none}i{inset-block-start:9px;inset-inline-start:7px;position:absolute}}}.tyk-dropdown-menu>li>a{color:var(--tyk-dropdown-item-text-color);cursor:pointer;display:flex;font-size:12px;inline-size:100%;padding-block:7px;padding-inline:24px;text-decoration:none;text-transform:uppercase;&:hover{background-color:var(--tyk-dropdown-item-background-hover);color:var(--tyk-dropdown-item-hover-text-color);text-decoration:none}.badge{background:var(--text-color);color:#fff;font-size:var(--spacing-sm);margin-block-start:-4px;margin-inline-start:6px}}.tyk-dropdown--relative.opened{position:relative}.dropdown__menu{.tyk-list{background:#fff;max-block-size:none;li{padding:0;&:hover{background:var(--primary-light)}a{cursor:pointer;display:block;padding-block:10px;padding-inline:20px;text-decoration:none}}}}.tyk-editable-list__submit-btn{white-space:nowrap}.tyk-editable-list__form{align-items:center;display:flex;.tyk-form-group{margin-block-end:0}span.inline{margin-block-start:0}>span{margin-inline-start:var(--spacing-base);&.inline-with-label{align-self:flex-end}}}.tyk-editable-list__form--sticked{margin-inline-start:0;button{border-end-end-radius:3px;border-end-start-radius:0;border-start-end-radius:3px;border-start-start-radius:0;padding-block:var(--spacing-sm) 11px;padding-inline:var(--spacing-base)}}.tyk-editable-list__header{background-color:#fff;border:var(--general-border-width) solid var(--color-default-light);border-block-end:1px solid var(--color-default-light)!important;border-start-end-radius:var(--general-border-radius);border-start-start-radius:var(--general-border-radius);color:var(--text-color)!important;font-family:var(--font-family-bold);font-size:11px;margin-block-start:var(--spacing-sm);padding-block:var(--spacing-base);text-transform:uppercase;&+.tyk-editable-list-items.table{border-block-start:none;border-start-end-radius:0;border-start-start-radius:0}.tyk-row{margin:0}}.tyk-editable-list-items{list-style:none;overflow:hidden;padding-block:var(--spacing-md) 0;padding-inline:0;.edit-mode-wrapper.table button{margin-block-start:23px}.tyk-row{margin:0}button[disabled]{cursor:not-allowed}&.tyk-editable-list-items--inline{align-items:center;color:var(--text-color);display:flex;flex-wrap:wrap}li{border-block-start:1px solid var(--color-default-light);transition:all .2s linear;&.tyk-editable-list-item--inline{background-color:var(--color-default-light);border:none;border-radius:25px;color:#fff;float:inline-start;font-family:var(--font-family-medium);margin-block-end:var(--spacing-sm);margin-inline-end:var(--spacing-base);padding-block:0;padding-inline:var(--spacing-base);white-space:nowrap;.tyk-editable-list-item__text{color:var(--text-color);padding-block:var(--spacing-xs);padding-inline:0}.tyk-editable-list-action__button.on-edit{margin-block-start:0}}&:first-child{border-block-start:none}.tyk-editable-list-item__text{display:flex;padding-block:var(--spacing-sm);padding-inline:0;>span{flex-grow:1}>div:first-child{flex-grow:1;.error-message{margin:0}}}.tyk-editable-list-items{overflow:hidden;padding-block-end:var(--spacing-sm)}.tyk-editable-list{background:var(--background-light);border-block-start:var(--spacing-xs) solid var(--background-dark);padding-block:var(--spacing-sm);padding-inline:var(--spacing-base)}}.tyk-editable-list-item__text{display:block;word-wrap:break-word;word-break:break-all}.tyk-editable-list-action__button{background:transparent;border:none;&.on-edit{margin-inline-start:var(--spacing-sm)}}.tyk-editable-list-item-controls{flex-grow:0;text-align:end}}.tyk-editable-list-item__controls{text-align:end}.tyk-editable-list-items.table{background-color:#fff;border:var(--general-border-width) solid var(--color-default-light);border-radius:var(--general-border-radius);padding:0!important;li{border-color:var(--color-default-light);&:hover{background:var(--color-background-light)}}.tyk-editable-list-item__text{background:transparent}.tyk-editable-list-action__button{border-radius:6px;cursor:pointer;margin-inline-end:var(--spacing-sm)}}.editable-list__header{align-items:center;display:flex;margin-block-end:10px;.tyk-button{margin-inline-start:auto}}.editable-list__wrapper.has-error .editable-list__list{border:var(--general-border-width) solid var(--color-danger-base)}.editable-list__list{border:var(--general-border-width) solid var(--color-default-light);border-radius:var(--general-border-radius);display:flex;flex-direction:column-reverse}.editable-list__item{border-block-end:1px solid var(--color-default-light);display:flex;flex-wrap:nowrap;inline-size:100%;&:first-child{border-block-end:none}}.editable-list__item-header{border-block-end:1px solid var(--color-default-light);color:var(--text-color);font-family:var(--font-family-bold);font-size:var(--sm-font-size);line-height:var(--sm-line-height);text-transform:uppercase;.editable-list__item-cell{padding:10px}}.editable-list__item-cell{border-inline-start:1px solid var(--color-default-light);overflow:hidden;padding-block:0;padding-inline:10px;.tyk-form-control--readonly{overflow:hidden;text-overflow:ellipsis;word-break:break-all}&:first-child{border-inline-start:none;padding-inline-start:15px}&:last-child{padding-inline-end:15px}.tyk-form-group{inline-size:100%;margin-block:10px;margin-inline:0}}.editable-list__item--size-1{display:flex;flex-grow:2;inline-size:8.3333333333%}.editable-list__item--size-2{display:flex;flex-grow:3;inline-size:16.6666666667%}.editable-list__item--size-3{display:flex;flex-grow:4;inline-size:25%}.editable-list__item--size-4{display:flex;flex-grow:5;inline-size:33.3333333333%}.editable-list__item--size-5{display:flex;flex-grow:6;inline-size:41.6666666667%}.editable-list__item--size-6{display:flex;flex-grow:7;inline-size:50%}.editable-list__item--size-7{display:flex;flex-grow:8;inline-size:58.3333333333%}.editable-list__item--size-8{display:flex;flex-grow:9;inline-size:66.6666666667%}.editable-list__item--size-9{display:flex;flex-grow:10;inline-size:75%}.editable-list__item--size-10{display:flex;flex-grow:11;inline-size:83.3333333333%}.editable-list__item--size-11{display:flex;flex-grow:12;inline-size:91.6666666667%}.editable-list__item--size-12{display:flex;flex-grow:13;inline-size:100%}.editable-list__item--size-fit{inline-size:fit-content}.editable-list__item-action{align-items:flex-start;display:flex;inline-size:100px;justify-content:center;.tyk-button{margin-block-start:20px}}.editable-list__item-action--read-only{align-items:center;color:var(--color-default-light);.tyk-button{margin-block-start:0}}.tyk-file-input__wrapper{position:relative;>input{padding-block:6px;padding-inline:var(--spacing-md)}>button{background:none;border:none;cursor:pointer;inset-block-start:9px;inset-inline-end:var(--spacing-base);position:absolute}}.tyk-multiselect{align-items:flex-start;border-radius:var(--general-border-radius);display:flex;flex-wrap:wrap;inline-size:100%;margin-block-end:var(--spacing-md);.input-group .input-group-addon+.form-control{border-end-end-radius:0!important;border-end-start-radius:0!important;border-width:1px!important;border-inline-start:none!important;border-start-end-radius:0!important;border-start-start-radius:0!important}.input-group .input-group-addon{background:transparent!important;border-end-end-radius:0!important;border-end-start-radius:0!important;border-width:1px!important;border-inline-end:0!important;border-start-end-radius:0!important;border-start-start-radius:0!important}&.has-error{border:var(--general-border-width) solid var(--color-danger-base)}.tyk-form-group{margin:0}.tyk-multiselect-item__controls{display:flex;flex-wrap:nowrap;margin-inline-start:auto;.tyk-button{color:var(--text-color);margin-inline-start:var(--spacing-xs);&:last-child{margin-inline-start:0}}}}.tyk-multiselect__header{background-color:var(--color-default-base);border-start-end-radius:var(--general-border-radius);border-start-start-radius:var(--general-border-radius);color:#fff;display:flex;inline-size:100%;>div{inline-size:50%;padding-block:var(--spacing-sm);padding-inline:var(--spacing-base)}}.tyk-multiselect__panel-wrapper{block-size:265px;border:var(--form-control-border);border-block-start:none;border-end-end-radius:var(--general-border-radius);border-end-start-radius:var(--general-border-radius);display:flex;flex:1;inline-size:100%}.tyk-multiselect__panel{display:flex;flex-direction:column;inline-size:calc(50% + 1px);margin-block:0;margin-inline:-1px 0;position:relative;&:last-child{border-inline-start:var(--form-control-border);.tyk-form-group{inline-size:calc(100% + 2px);margin-inline-start:-1px}}.tyk-message{margin-block:var(--spacing-md) 0;margin-inline:var(--spacing-md)}}.tyk-multiselect__list{list-style-type:none;margin:0;padding:0;>li{border-block-end:var(--form-control-border);display:flex;flex-direction:column;padding-block:var(--spacing-sm);padding-inline:var(--spacing-base);>div{align-items:start;display:flex;inline-size:100%}.loading{justify-content:center}&:last-child{border-block-end:none}}}.tyk-multiselect__list--scroll{block-size:100%;overflow-y:auto}.tyk-multiselect-item__name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:root{--pagination-border-radius:var(--general-border-radius);--pagination-button-padding:var(--spacing-sm) var(--spacing-base)}.tyk-pagination{display:flex;list-style-type:none;margin-block:var(--spacing-sm);margin-inline:0;padding:0;li{align-items:center;display:flex}li:first-child button{border-end-start-radius:var(--pagination-border-radius);border-start-start-radius:var(--pagination-border-radius)}li:last-child button{border-end-end-radius:var(--pagination-border-radius);border-start-end-radius:var(--pagination-border-radius)}span{margin-block:0;margin-inline:var(--spacing-sm)}button{background:#fff;border:none;color:var(--color-default-base);cursor:pointer;font-family:var(--font-family-bold);font-size:var(--sm-font-size);margin-inline-start:-1px;padding:var(--pagination-button-padding);&:hover{background-color:var(--color-success-light)}}.active button{background-color:var(--color-success-base);color:#fff}}:root{--radio-description-text-padding:0 0 0 20px}.tyk-radio{label{align-items:center;display:flex}}.tyk-radio--is-disabled{label,p{cursor:not-allowed;opacity:.5}}.tyk-radio__description-text{padding:var(--radio-description-text-padding)}.tyk-select{background:transparent url(images/arrow_down.svg) no-repeat calc(100% - 15px);background-size:var(--spacing-base) var(--spacing-base)}.tyk-selectable-list{inline-size:100%;margin-block-end:var(--spacing-md);li:not(.tyk-selectable-list__no-items-message){font-family:var(--font-family-medium);padding:0;.tyk-message{margin-block-end:0}label{font-family:var(--font-family-medium);margin:0}>label{align-items:center;cursor:pointer;display:flex;padding-block:var(--spacing-sm);padding-inline:var(--spacing-md);input[type=checkbox]{margin-inline-start:auto}}}}.tyk-selectable-list__item--with-icon{& input[type=checkbox]{visibility:hidden}}textarea.tyk-form-control{block-size:auto}:root{--toggle-font-family:var(--font-family-bold);--toggle-list-background-color:var(--color-background-light);--toggle-list-text-color:#fff;--toggle-list-background-color-on-dark:#fff;--toggle-list-text-color-on-dark:var(--text-color);--toggle-top:4px;--toggle-bottom:4px;--toggle-label-font-size:var(--sm-font-size);--toggle-label-font-family:var(--font-family-medium);--toggle-label-color:var(--label-color);--toggle-padding:0}.tyk-toggle{display:inline-flex;flex-wrap:wrap;font-family:var(--toggle-font-family);font-size:var(--sm-font-size);line-height:var(--sm-line-height);white-space:nowrap;&.block{inline-size:100%;margin-block-end:var(--spacing-md);+.tyk-toggle{margin-inline-start:0}}&.inline-label{align-items:center;flex-wrap:nowrap}+.tyk-button,+.tyk-dropdown,+.tyk-toggle{margin-inline-start:var(--spacing-sm)}}.tyk-toggle__list--has-error{border:var(--error-border)}.tyk-toggle .tyk-toggle__label{color:var(--toggle-label-color);display:block;font-family:var(--toggle-label-font-family);font-size:var(--toggle-label-font-size);inline-size:100%;padding:var(--toggle-padding)}.tyk-toggle.inline-label .tyk-toggle__label{inline-size:auto;margin-inline-end:var(--spacing-sm)}.tyk-toggle--disabled-true{cursor:not-allowed;opacity:.7}.tyk-toggle--column{.tyk-toggle__list--separated{display:flex;flex-direction:column;margin-inline-end:var(--spacing-md);.tyk-toggle__item{background-color:var(--toggle-list-background-color);margin-inline-end:auto}}}.tyk-toggle__list{background:var(--toggle-list-background-color);border-radius:25px;display:flex;list-style-type:none;margin:0;padding:0;position:relative}.tyk-toggle__list--separated{background:transparent;flex-wrap:wrap}.tyk-toggle--on-dark .tyk-toggle__list{background:var(--toggle-list-background-color-on-dark)}.tyk-toggle--default .tyk-toggle__item--active span{color:#fff}.tyk-toggle--default .tyk-toggle__list--separated .tyk-toggle__item--active,.tyk-toggle--default .tyk-toggle__list--single .tyk-toggle__item--active{background-color:var(--button-default-color);border:var(--general-border-width) solid transparent;color:#fff;&:hover{background-color:var(--button-default-color)}&:hover,span{color:#fff}}.tyk-toggle--primary .tyk-toggle__item--active span{color:#fff}.tyk-toggle--primary .tyk-toggle__list--separated .tyk-toggle__item--active,.tyk-toggle--primary .tyk-toggle__list--single .tyk-toggle__item--active{background-color:var(--color-primary-base);border:var(--general-border-width) solid transparent;color:#fff;&:hover{background-color:var(--color-primary-base)}&:hover,span{color:#fff}}.tyk-toggle--success .tyk-toggle__item--active span{color:#fff}.tyk-toggle--success .tyk-toggle__list--separated .tyk-toggle__item--active,.tyk-toggle--success .tyk-toggle__list--single .tyk-toggle__item--active{background-color:var(--color-success-dark);border:var(--general-border-width) solid transparent;color:#fff;&:hover{background-color:var(--color-success-dark)}&:hover,span{color:#fff}}.tyk-toggle--danger .tyk-toggle__item--active span{color:#fff}.tyk-toggle--danger .tyk-toggle__list--separated .tyk-toggle__item--active,.tyk-toggle--danger .tyk-toggle__list--single .tyk-toggle__item--active{background-color:var(--color-danger-base);border:var(--general-border-width) solid transparent;color:#fff;&:hover{background-color:var(--color-danger-base);color:#fff}}.tyk-toggle--warning .tyk-toggle__item--active span{color:var(--text-color)}.tyk-toggle--warning .tyk-toggle__list--separated .tyk-toggle__item--active,.tyk-toggle--warning .tyk-toggle__list--single .tyk-toggle__item--active{background-color:var(--color-warning-base);border:var(--general-border-width) solid transparent;color:var(--text-color);&:hover{background-color:var(--color-warning-base);color:var(--text-color)}}.tyk-toggle--primary-gradient .tyk-toggle__item--active span{color:#fff}.tyk-toggle--primary-gradient .tyk-toggle__list--separated .tyk-toggle__item--active,.tyk-toggle--primary-gradient .tyk-toggle__list--single .tyk-toggle__item--active{background:transparent linear-gradient(to right,var(--color-primary-base),var(--color-primary-dark),var(--color-primary-base));background-clip:border-box;background-origin:border-box;background-position:0 0;background-size:200% auto;border-image:linear-gradient(to right,var(--color-primary-base),var(--color-primary-dark),var(--color-primary-base)) 0 round;color:#fff;span{color:#fff}}.tyk-toggle--success-gradient .tyk-toggle__item--active span{color:#fff}.tyk-toggle--success-gradient .tyk-toggle__list--separated .tyk-toggle__item--active,.tyk-toggle--success-gradient .tyk-toggle__list--single .tyk-toggle__item--active{background:transparent linear-gradient(to right,var(--color-success-base),var(--color-success-dark),var(--color-success-base));background-clip:border-box;background-origin:border-box;background-position:0 0;background-size:200% auto;border-image:linear-gradient(to right,var(--color-success-base),var(--color-success-dark),var(--color-success-base)) 0 round;color:#fff;span{color:#fff}}.tyk-toggle--danger-gradient .tyk-toggle__item--active span{color:#fff}.tyk-toggle--danger-gradient .tyk-toggle__list--separated .tyk-toggle__item--active,.tyk-toggle--danger-gradient .tyk-toggle__list--single .tyk-toggle__item--active{background:transparent linear-gradient(to right,var(--color-danger-base),var(--color-danger-dark),var(--color-danger-base));background-clip:border-box;background-origin:border-box;background-position:0 0;background-size:200% auto;border-image:linear-gradient(to right,var(--color-danger-base),var(--color-danger-dark),var(--color-danger-base)) 0 round;color:#fff;span{color:#fff}}.tyk-toggle--warning-gradient .tyk-toggle__item--active span{color:#fff}.tyk-toggle--warning-gradient .tyk-toggle__list--separated .tyk-toggle__item--active,.tyk-toggle--warning-gradient .tyk-toggle__list--single .tyk-toggle__item--active{background:transparent linear-gradient(to right,var(--color-warning-light),var(--color-warning-base),var(--color-warning-light));background-clip:border-box;background-origin:border-box;background-position:0 0;background-size:200% auto;border-image:linear-gradient(to right,var(--color-warning-light),var(--color-warning-base),var(--color-warning-light)) 0 round;color:var(--text-color);span{color:#fff}}.tyk-toggle__item{border:2px solid transparent;color:var(--toggle-list-text-color);text-transform:uppercase;z-index:2;&:first-child{border-end-start-radius:25px;border-start-start-radius:25px}&:last-child{border-end-end-radius:25px;border-start-end-radius:25px}.tyk-toggle__list--separated &{border-radius:25px;margin-block:var(--spacing-xs);margin-inline-end:var(--spacing-sm);&:last-child{margin-inline-end:0}}input{display:none}label{cursor:pointer;font-family:var(--toggle-font-family);margin:0;position:relative;transition:all .2s ease;.tyk-toggle__list--single &{padding-inline-start:45px}}}.tyk-toggle__list--single .tyk-toggle__item--active{label{padding-inline-end:45px;padding-inline-start:25px;.tyk-toggle__item-notch{inset-inline-start:calc(100% - 35px)}}}.tyk-toggle--on-dark .tyk-toggle__item:not(.tyk-toggle__item--active){color:var(--toggle-list-text-color-on-dark)}.tyk-toggle--on-dark .tyk-toggle__item-notch--single{background:var(--color-background-light)}.tyk-toggle--sm label{border-radius:var(--button-border-radius);font-size:var(--xs-font-size);line-height:var(--xs-line-height);padding-block:calc(var(--padding-y-button-sm) + 2px);padding-inline:calc(var(--padding-x-button-sm) + 2px)}.tyk-toggle--sm .tyk-toggle__list--single label{padding-inline-start:35px}.tyk-toggle--sm .tyk-toggle__list--single .tyk-toggle__item--active label{padding-inline-end:35px;padding-inline-start:17px;.tyk-toggle__item-notch{inset-inline-start:calc(100% - 27px)}}.tyk-toggle--md label{padding-block:calc(var(--padding-y-button-md) + 2px);padding-inline:calc(var(--padding-x-button-md) + 2px)}.tyk-toggle--lg label,.tyk-toggle--md label{border-radius:var(--button-border-radius);font-size:var(--sm-font-size);line-height:var(--line-height-button-sm)}.tyk-toggle--lg label{padding-block:calc(var(--padding-y-button-lg) + 2px);padding-inline:calc(var(--padding-x-button-lg) + 2px)}.tyk-toggle--lg .tyk-toggle__list--single label{padding-inline-start:45px}.tyk-toggle--lg .tyk-toggle__list--single .tyk-toggle__item--active label{padding-inline-end:45px;padding-inline-start:25px;.tyk-toggle__item-notch{inset-inline-start:calc(100% - 43px)}}.tyk-toggle__item-notch{border-radius:25px;inset-block:2px;position:absolute;transition:all .2s ease}.tyk-toggle__item-notch--single{background:#fff;inline-size:32px;inset-inline-start:2px}.tyk-toggle--sm .tyk-toggle__item-notch--single{inline-size:24px}.tyk-toggle--lg .tyk-toggle__item-notch--single{inline-size:40px}.tyk-toggle__notch{border-radius:25px;inline-size:100px;inset-block-end:var(--toggle-bottom);inset-block-start:var(--toggle-top);inset-inline-start:0;position:absolute;transition:all .2s ease;z-index:1}.tyk-toggle--default .tyk-toggle__notch{--toggle-notch-background:var(--button-default-color);--toggle-notch-border:transparent;--toggle-notch-color:#fff;--toggle-notch-hover-background:var(--button-default-color);--toggle-notch-hover-color:#fff}.tyk-toggle--primary .tyk-toggle__notch{--toggle-notch-background:var(--primary-base);--toggle-notch-border:transparent;--toggle-notch-color:#fff;--toggle-notch-hover-background:var(--primary-base);--toggle-notch-hover-color:#fff}.tyk-toggle--success .tyk-toggle__notch{--toggle-notch-background:var(--success-base);--toggle-notch-border:transparent;--toggle-notch-color:#fff;--toggle-notch-hover-background:var(--success-base);--toggle-notch-hover-color:#fff}.tyk-toggle--danger .tyk-toggle__notch{--toggle-notch-background:var(--color-danger-base);--toggle-notch-border:transparent;--toggle-notch-color:#fff;--toggle-notch-hover-background:var(--color-danger-base);--toggle-notch-hover-color:#fff}.tyk-toggle--warning .tyk-toggle__notch{--toggle-notch-background:var(--color-warning-base);--toggle-notch-border:transparent;--toggle-notch-color:var(--text-color);--toggle-notch-hover-background:var(--color-warning-base);--toggle-notch-hover-color:var(--text-color)}.tyk-toggle--danger .tyk-toggle__notch,.tyk-toggle--default .tyk-toggle__notch,.tyk-toggle--primary .tyk-toggle__notch,.tyk-toggle--success .tyk-toggle__notch,.tyk-toggle--warning .tyk-toggle__notch{background-color:var(--toggle-notch-background);border:var(--general-border-width) solid var(--toggle-notch-border);color:var(--toggle-notch-color);&:hover{background-color:var(--toggle-notch-hover-background);color:var(--toggle-notch-hover-color)}}.tyk-toggle--primary-gradient .tyk-toggle__notch{--toggle-notch-gradient-left-color:var(--color-primary-base);--toggle-notch-gradient-right-color:var(--color-primary-dark);--toggle-notch-gradient-color:#fff}.tyk-toggle--success-gradient .tyk-toggle__notch{--toggle-notch-gradient-left-color:var(--color-success-base);--toggle-notch-gradient-right-color:var(--color-success-dark);--toggle-notch-gradient-color:#fff}.tyk-toggle--danger-gradient .tyk-toggle__notch{--toggle-notch-gradient-left-color:var(--color-danger-base);--toggle-notch-gradient-right-color:var(--color-danger-dark);--toggle-notch-gradient-color:#fff}.tyk-toggle--warning-gradient .tyk-toggle__notch{--toggle-notch-gradient-left-color:var(--color-warning-light);--toggle-notch-gradient-right-color:var(--color-warning-base);--toggle-notch-gradient-color:var(--text-color)}.tyk-toggle--danger-gradient .tyk-toggle__notch,.tyk-toggle--primary-gradient .tyk-toggle__notch,.tyk-toggle--success-gradient .tyk-toggle__notch,.tyk-toggle--warning-gradient .tyk-toggle__notch{background:transparent linear-gradient(to right,var(--toggle-notch-gradient-left-color),var(--toggle-notch-gradient-right-color),var(--toggle-notch-gradient-left-color));background-clip:border-box;background-origin:border-box;background-position:0 0;background-size:200% auto;border-image:linear-gradient(to right,var(--toggle-notch-gradient-left-color),var(--toggle-notch-gradient-right-color),var(--toggle-notch-gradient-left-color)) 0 round;color:var(--toggle-notch-gradient-color)}.empty-toggle{padding:1px}*{box-sizing:border-box}body{background-color:var(--color-background-base);color:var(--text-color);font-family:var(--font-family-regular);font-size:var(--sm-font-size);line-height:var(--sm-line-height)}.tyk-main-wrapper{display:flex;flex-wrap:nowrap}.tyk-main-content-wrapper{flex:1}.well{background:transparent;border:var(--general-border-width) solid var(--color-default-light);border-radius:var(--general-border-radius);box-shadow:none;&.has-error{border-color:var(--color-danger-base)}}.title-medium{color:var(--label-color);font-family:var(--font-family-medium);font-size:var(--title-medium-font-size)}.right-align{text-align:end!important}.left-align{text-align:start!important}.center-align{text-align:center!important}.left{float:inline-start!important}.right{float:inline-end!important}.hide{display:none!important}.no-margin{margin:0!important}.no-margin-bottom{margin-block-end:0!important}.no-margin-top{margin-block-start:0!important}.no-margin-right{margin-inline-end:0!important}.no-margin-left{margin-inline-start:0!important}.disabled-section{color:var(--color-default-light)}.top-buffer-large{margin-block-start:var(--top-buffer-large)!important}.top-buffer-small{margin-block-start:var(--top-buffer-small)!important}.top-buffer-medium{margin-block-start:var(--top-buffer-medium)!important}.bottom-buffer-large{margin-block-end:var(--bottom-buffer-large)!important}.bottom-buffer-small{margin-block-end:var(--bottom-buffer-small)!important}.bottom-buffer-medium{margin-block-end:var(--bottom-buffer-medium)!important}.right-buffer-large{margin-inline-end:var(--right-buffer-large)!important}.right-buffer-small{margin-inline-end:var(--right-buffer-small)!important}.right-buffer-medium{margin-inline-end:var(--right-buffer-medium)!important}.left-buffer-large{margin-inline-start:var(--left-buffer-large)!important}.left-buffer-small{margin-inline-start:var(--left-buffer-small)!important}.left-buffer-medium{margin-inline-start:var(--left-buffer-medium)!important}.word-wrap{word-wrap:break-word;word-break:break-all}.clear-left{clear:inline-start}.flex-container{display:flex}.vertical-center-align{align-items:center}.right-align-controls{align-items:center;display:flex;margin-inline-start:auto}.inline-label{margin-inline-end:15px}.nowrap{white-space:nowrap} /*# sourceMappingURL=index.css.map*/ \ No newline at end of file diff --git a/lib/index.css.map b/lib/index.css.map index a4c9e326..324c47d1 100644 --- a/lib/index.css.map +++ b/lib/index.css.map @@ -1 +1 @@ -{"version":3,"file":"index.css","mappings":"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,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,4BAA6B,CAC7B,iCACF,CAEA,uBACE,wBACF,CACF,CAEA,6CACE,eACE,gBAA2B,CAC3B,qBACF,CAEA,sBACE,qBACF,CAEA,eACE,gCAAsC,CACtC,qCACF,CAEA,sBACE,iCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,4BAA6B,CAC7B,iCACF,CAEA,uBACE,wBACF,CACF,CAEA,2CACE,eACE,gBAA2B,CAC3B,qBACF,CAEA,sBACE,qBACF,CAEA,eACE,gCAAsC,CACtC,qCACF,CAEA,sBACE,iCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,4BAA6B,CAC7B,iCACF,CAEA,uBACE,wBACF,CACF,CAEA,mCACE,eACE,gBAA2B,CAC3B,qBACF,CAEA,sBACE,qBACF,CAEA,eACE,gCAAsC,CACtC,qCACF,CAEA,sBACE,iCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,4BAA6B,CAC7B,iCACF,CAEA,uBACE,wBACF,CACF,CC1iBA,WACE,sBAAuB,CAIvB,iBAAkB,CADlB,eAAmB,CAFnB,qGAIF,CAEA,WACE,uBAAwB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E,aACF,CAEA,mBACE,aACF,CAEA,yBACE,aACF,CAEA,mBACE,aACF,CAEA,uBACE,aACF,CAEA,sBACE,aACF,CAEA,0BACE,aACF,CAEA,oBACE,aACF,CAEA,wBACE,aACF,CAEA,oBACE,aACF,CAEA,mBACE,aACF,CAEA,qBACE,aACF,CAEA,uBACE,aACF,CAEA,oBACE,aACF,CAEA,mBACE,aACF,CAEA,sBACE,aACF,CAEA,mBACE,aACF,CAEA,mBACE,aACF,CAEA,oBACE,aACF,CAEA,oBACE,aACF,CAEA,4BACE,aACF,CAEA,mBACE,aACF,CAEA,sBACE,aACF,CAEA,qBACE,aACF,CAEA,uBACE,aACF,CAEA,sBACE,aACF,CAEA,gBACE,aACF,CAEA,sBACE,aACF,CAEA,yBACE,eACF,CAEA,8BACE,eACF,CAEA,mBACE,aACF,CCjLA,kBAIE,2BAA4B,CAF5B,uCAAwC,CACxC,uCAAwC,CAFxC,8CAIF,CAEA,MAIE,wBAAyB,CAHzB,oBAAqB,CAErB,oBAAqB,CADrB,oBAGF,CAEA,GACE,8BAA+B,CAC/B,kCACF,CAEA,GACE,6BAA8B,CAC9B,iCACF,CAEA,GACE,6BAA8B,CAC9B,iCACF,CAEA,GACE,6BAA8B,CAC9B,iCACF,CAEA,GACE,6BAA8B,CAC9B,iCACF,CAEA,GACE,6BAA8B,CAC9B,iCACF,CAEA,QAIE,sCAAuC,CAFvC,6BAA8B,CAC9B,iCAAkC,CAGlC,EACE,6BAA8B,CAC9B,yBACF,CACF,CAEA,OACE,mCACF,CAEA,mBAEE,uBAAwB,CADxB,cAAe,CAEf,sCAAuC,CAEvC,aACE,mCACF,CAEA,GACE,uBACF,CAEA,EACE,aACF,CACF,CAEA,qBACE,sCACF,CAEA,oBACE,qCACF,CAEA,kBACE,mCACF,CAEA,6BACE,+CACF,CAEA,4BACE,8CACF,CAEA,0BACE,4CACF,CAEA,YACE,4BACF,CAEA,cACE,qCACF,CAEA,YACE,mCACF,CAEA,iBACE,wBACF,CAEA,gBAEE,eAAgB,CAChB,sBAAuB,CAFvB,kBAGF,CAEA,iBACE,yBACF,CAEA,qBACE,0C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ACE,sBAAuB,CACvB,mEAAoE,CACpE,0CAA2C,CAC3C,eAAgB,CAEhB,YACE,qCACF,CACF,CC9BA,cAEE,wBAAyB,CADzB,qCAAsC,CAEtC,uCACF,CCJA,aACE,wBACF,CAEA,YACE,0BACF,CAEA,cACE,2BACF,CAEA,MACE,4BACF,CAEA,OACE,0BACF,CAEA,MACE,sBACF,CAEA,WACE,kBACF,CAEA,kBACE,4BACF,CAEA,eACE,8BACF,CAEA,iBACE,6BACF,CAEA,gBACE,+BACF,CAEA,kBACE,gCACF,CAEA,kBACE,oDACF,CAEA,kBACE,oDACF,CAEA,mBACE,qDACF,CAEA,qBACE,qDACF,CAEA,qBACE,qDACF,CAEA,sBACE,sDACF,CAEA,oBACE,qDACF,CAEA,oBACE,qDACF,CAEA,qBACE,sDACF,CAEA,mBACE,sDACF,CAEA,mBACE,sDACF,CAEA,oBACE,uDACF,CAEA,WACE,oBAAqB,CACrB,oBACF,CAEA,YACE,kBACF,CAEA,gBACE,YACF,CAEA,uBACE,kBACF,CAGA,sBACE,kBAAmB,CACnB,YAAa,CACb,wBACF,CAEA,cACE,sBACF,CAEA,QACE,kBACF","sources":["webpack://@tyk-technologies/tyk-ui/./src/common/css/reset.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/variables.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/grid.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/fonts.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/fontawesome.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/tykon.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/typography.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/form.css","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/Accordion.css","webpack://@tyk-technologies/tyk-ui/./src/components/Button/Button.css","webpack://@tyk-technologies/tyk-ui/./src/components/ButtonGroup/ButtonGroup.css","webpack://@tyk-technologies/tyk-ui/./src/components/Card/Card.css","webpack://@tyk-technologies/tyk-ui/./src/components/Chart/Chart.css","webpack://@tyk-technologies/tyk-ui/./src/components/Collapsible/Collapsible.css","webpack://@tyk-technologies/tyk-ui/./src/components/CopyToClipboard/CopyToClipboard.css","webpack://@tyk-technologies/tyk-ui/./src/components/FixedWrapper/FixedWrapper.css","webpack://@tyk-technologies/tyk-ui/./src/components/FloatingContainer/FloatingContainer.css","webpack://@tyk-technologies/tyk-ui/./src/components/Icon/Icon.css","webpack://@tyk-technologies/tyk-ui/./src/components/InfiniteScroller/InfiniteScroller.css","webpack://@tyk-technologies/tyk-ui/./src/components/InfoNote/InfoNote.css","webpack://@tyk-technologies/tyk-ui/./src/components/Loader/Loader.css","webpack://@tyk-technologies/tyk-ui/./src/components/List/List.css","webpack://@tyk-technologies/tyk-ui/./src/components/Message/Message.css","webpack://@tyk-technologies/tyk-ui/./src/components/Modal/Modal.css","webpack://@tyk-technologies/tyk-ui/./src/components/Navigation/Navigation.css","webpack://@tyk-technologies/tyk-ui/./src/components/NavBar/NavBar.css","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/Panel.css","webpack://@tyk-technologies/tyk-ui/./src/components/Pill/Pill.css","webpack://@tyk-technologies/tyk-ui/./src/components/RevealPanel/RevealPanel.css","webpack://@tyk-technologies/tyk-ui/./src/components/Sidebar/Sidebar.css","webpack://@tyk-technologies/tyk-ui/./src/components/Table/Table.css","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/Tabs.css","webpack://@tyk-technologies/tyk-ui/./src/components/Toast/Toast.css","webpack://@tyk-technologies/tyk-ui/./src/components/Tooltip/Tooltip.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox2/Combobox.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Checkbox/Checkbox.css","webpack://@tyk-technologies/tyk-ui/./node_modules/flatpickr/dist/flatpickr.min.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/DatePicker/DatePicker.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown/Dropdown.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/Dropdown.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList/EditableList.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/EditableList2.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/FileInput/FileInput.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/Multiselect.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Pagination/Pagination.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Radio/Radio.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Select/Select.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/SelectableList/SelectableList.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Textarea/Textarea.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/Toggle.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/layout.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/texts.css","webpack://@tyk-technologies/tyk-ui/./src/utils/css-helpers/helpers.css"],"sourcesContent":["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 {\n margin: 0;\n padding: 0;\n border: 0;\n font: inherit;\n font-size: 100%;\n vertical-align: baseline;\n}\n\n/* HTML5 display-role reset for older browsers */\n\narticle, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {\n display: block; }\n\nbody {\n line-height: 1; }\n\nol, ul {\n list-style: none; }\n\nblockquote, q {\n quotes: none; }\n\nblockquote {\n &::before, &::after {\n content: '';\n content: none; } }\n\nq {\n &::before, &::after {\n content: '';\n content: none; } }\n\ntable {\n border-collapse: collapse;\n border-spacing: 0; }\n",":root {\n --general-border-radius: 18px;\n --general-border-width: 2px;\n\n --color-default-base: #36364C;\n --color-default-base-light: #7A79A1;\n --color-default-light: #C3C3E5;\n --color-default-dark: #505071;\n --color-primary-base: #A2A2CC;\n --color-primary-light: #EDEDF9;\n --color-primary-dark: #505071;\n --color-success-base: #00d9ba;\n --color-success-light: #C2F2E9;\n --color-success-dark: #00B798;\n --color-info-base: #82BBC6;\n --color-info-light: #D3EBEF;\n --color-danger-base: #FF6C7D;\n --color-danger-extra-light: #F5CCD1;\n --color-danger-light: #FFBBC5;\n --color-danger-dark: #EA4766;\n --color-warning-base: #D6B218;\n --color-warning-light: #FFE885;\n --color-warning-dark: #C58C11;\n --color-foreground-base: #393939;\n --color-foreground-base-dark: #22272B;\n --color-foreground-light: #5a5a68;\n --color-foreground-dark: #161B20;\n --color-foreground-extra-dark: #0A0D10;\n --color-background-base: #E1E1E1;\n --color-background-light: #EDEDF9;\n --color-background-dark: #43435B;\n --color-background-extra-dark: #0A0D10;\n\n --text-color: var(--color-default-dark);\n --label-color: var(--color-default-base);\n\n --xs-line-height: 16px;\n --sm-line-height: 19px;\n --md-line-height: 22px;\n --lg-line-height: 23px;\n --xl-line-height: 24px;\n --xxl-line-height: 30px;\n\n --xs-font-size: 13px;\n --sm-font-size: 14px;\n --md-font-size: 16px;\n --lg-font-size: 18px;\n --xl-font-size: 20px;\n --xxl-font-size: 25px;\n\n --base-font-size: var(--sm-font-size);\n --base-line-height: var(--sm-line-height);\n\n --spacing-xs: 5px;\n --spacing-sm: 10px;\n --spacing-base: 15px;\n --spacing-md: 20px;\n --spacing-lg: 25px;\n --spacing-xl: 30px;\n --spacing-xxl: 40px;\n\n --grid-gutter: var(--spacing-md);\n --grid-max-width: calc(1200px + var(--grid-gutter) * 2);\n\n --breakpoint-xs: 420px;\n --breakpoint-sm: 768px;\n --breakpoint-md: 1024px;\n --breakpoint-lg: 1248px;\n\n --font-inter-light: 'Inter-Light';\n --font-inter-medium: 'Inter-Medium';\n --font-inter-regular: 'Inter-Regular';\n --font-inter-bold: 'Inter-Bold';\n\n --font-family-regular: 'OpenSans-regular';\n --font-family-medium: 'OpenSans-SemiBold';\n --font-family-bold: 'OpenSans-Bold';\n\n --headings-color: var(--color-default-base);\n --headings-font-family-regular: 'smoolthan_regular';\n --headings-font-family-medium: 'smoolthan_medium';\n --headings-font-family-bold: 'smoolthan_bold';\n\n --headings-margin-bottom: 15px;\n --headings-font-family: var(--headings-font-family-medium);\n --headings-font-weight: 500;\n --headings-line-height: var(--base-line-height);\n\n --form-group-margin-bottom: 15px;\n --form-control-height: 39px;\n --form-control-padding-left: var(--spacing-md);\n --form-control-padding-right: var(--spacing-md);\n --form-control-padding-top: 10px;\n --form-control-padding-bottom: 10px;\n --form-control-addon-background-color: white;\n --form-control-addon-padding-top: 10px;\n --form-control-addon-padding-bottom: 10px;\n --form-control-addon-padding-left: 10px;\n --form-control-addon-padding-right: 10px;\n --form-control-border: var(--general-border-width) solid var(--color-default-light);\n --form-control-disabled-border: var(--general-border-width) solid var(--color-default-light);\n --form-control-placeholder-color: var(--color-primary-base);\n --form-control-disabled-background-color: var(--color-background-light);\n --form-control-disabled-color:var(--text-color);\n --form-control-border-focus: 2px solid var(--color-success-base);\n --form-control-placeholder-font-family: var(--font-family-medium);\n --form-control-error-colour: var(--color-danger-dark);\n --form-default-color: var(--color-default-light);\n --form-primary-color: var(--color-primary-base);\n --form-success-color: var(--color-success-base);\n\n --error-border: var(--general-border-width) solid var(--color-danger-base);\n --error-border-left: 2px solid var(--color-danger-dark);\n --help-block-color: var(--color-default-base);\n --help-block-font-style: normal;\n --help-block-padding: 0 0 0 var(--form-control-padding-left);\n --error-message-padding: 0 0 0 var(--form-control-padding-left);\n --default-pill-background-color: var(--color-default-base);\n --default-pill-color: white;\n --pill-margin: 0 0 10px 0;\n --default-outline-pill-box-shadow: inset 0 0 0 2px var(--color-default-base);\n --default-outline-pill-color: var(--text-color);\n\n --title-medium-font-size: 16px;\n\n --bottom-buffer-large: var(--spacing-md);\n --bottom-buffer-medium: 10px;\n --bottom-buffer-small: 5px;\n --top-buffer-large: var(--spacing-md);\n --top-buffer-medium: 10px;\n --top-buffer-small: 5px;\n --right-buffer-large: var(--spacing-md);\n --right-buffer-medium: 10px;\n --right-buffer-small: 5px;\n --left-buffer-large: var(--spacing-md);\n --left-buffer-medium: 10px;\n --left-buffer-small: 5px;\n\n --modal-z-index: 1080;\n}\n","/* stylelint-disable number-max-precision */\n\n.container {\n max-inline-size: var(--grid-max-width);\n margin-block: 0;\n margin-inline: auto;\n}\n\n.container,\n.container-fluid {\n padding-block: 0;\n padding-inline: var(--grid-gutter);\n}\n\n.tyk-row {\n display: flex;\n box-sizing: border-box;\n list-style: none;\n flex: 0 1 auto;\n flex-direction: row;\n flex-wrap: wrap;\n margin-inline-start: calc(-1 * var(--grid-gutter));\n inline-size: calc(100% + var(--grid-gutter));\n\n &.no-gutters {\n margin: 0;\n }\n\n &.tyk-row--gutterless {\n margin: 0;\n inline-size: 100%;\n }\n\n &.tyk-row--reverse {\n flex-direction: row-reverse;\n }\n}\n\n.tyk-col {\n max-inline-size: calc(100% - var(--grid-gutter));\n box-sizing: border-box;\n flex: 0 0 auto;\n flex-grow: 1;\n flex-basis: calc(100% - var(--grid-gutter));\n margin-inline-start: var(--grid-gutter);\n inline-size: calc(100% - var(--grid-gutter));\n\n &:last-child {\n margin-inline-end: 0;\n }\n\n .tyk-row--gutterless & {\n margin: 0;\n }\n\n &.tyk-col--reverse {\n flex-direction: column-reverse;\n }\n\n &.tyk-col--align-bottom {\n align-self: flex-end;\n }\n\n &.tyk-col--align-top {\n align-self: flex-start;\n }\n\n &.tyk-col--align-center {\n align-self: center;\n }\n\n &.tyk-col--align-baseline {\n align-self: baseline;\n }\n\n &.tyk-col--align-stretch {\n align-self: stretch;\n }\n}\n\n@media screen and (width >= 1248px) {\n .tyk-col--lg-0 {\n flex-basis: calc(0% - 20px);\n max-inline-size: calc(0% - 20px);\n }\n\n .tyk-col--offset-lg-0 {\n margin-inline-start: 0%;\n }\n\n .tyk-col--lg-1 {\n flex-basis: calc(8.3333333333% - 20px);\n max-inline-size: calc(8.3333333333% - 20px);\n }\n\n .tyk-col--offset-lg-1 {\n margin-inline-start: 8.3333333333%;\n }\n\n .tyk-col--lg-2 {\n flex-basis: calc(16.6666666667% - 20px);\n max-inline-size: calc(16.6666666667% - 20px);\n }\n\n .tyk-col--offset-lg-2 {\n margin-inline-start: 16.6666666667%;\n }\n\n .tyk-col--lg-3 {\n flex-basis: calc(25% - 20px);\n max-inline-size: calc(25% - 20px);\n }\n\n .tyk-col--offset-lg-3 {\n margin-inline-start: 25%;\n }\n\n .tyk-col--lg-4 {\n flex-basis: calc(33.3333333333% - 20px);\n max-inline-size: calc(33.3333333333% - 20px);\n }\n\n .tyk-col--offset-lg-4 {\n margin-inline-start: 33.3333333333%;\n }\n\n .tyk-col--lg-5 {\n flex-basis: calc(41.6666666667% - 20px);\n max-inline-size: calc(41.6666666667% - 20px);\n }\n\n .tyk-col--offset-lg-5 {\n margin-inline-start: 41.6666666667%;\n }\n\n .tyk-col--lg-6 {\n flex-basis: calc(50% - 20px);\n max-inline-size: calc(50% - 20px);\n }\n\n .tyk-col--offset-lg-6 {\n margin-inline-start: 50%;\n }\n\n .tyk-col--lg-7 {\n flex-basis: calc(58.3333333333% - 20px);\n max-inline-size: calc(58.3333333333% - 20px);\n }\n\n .tyk-col--offset-lg-7 {\n margin-inline-start: 58.3333333333%;\n }\n\n .tyk-col--lg-8 {\n flex-basis: calc(66.6666666667% - 20px);\n max-inline-size: calc(66.6666666667% - 20px);\n }\n\n .tyk-col--offset-lg-8 {\n margin-inline-start: 66.6666666667%;\n }\n\n .tyk-col--lg-9 {\n flex-basis: calc(75% - 20px);\n max-inline-size: calc(75% - 20px);\n }\n\n .tyk-col--offset-lg-9 {\n margin-inline-start: 75%;\n }\n\n .tyk-col--lg-10 {\n flex-basis: calc(83.3333333333% - 20px);\n max-inline-size: calc(83.3333333333% - 20px);\n }\n\n .tyk-col--offset-lg-10 {\n margin-inline-start: 83.3333333333%;\n }\n\n .tyk-col--lg-11 {\n flex-basis: calc(91.6666666667% - 20px);\n max-inline-size: calc(91.6666666667% - 20px);\n }\n\n .tyk-col--offset-lg-11 {\n margin-inline-start: 91.6666666667%;\n }\n\n .tyk-col--lg-12 {\n flex-basis: calc(100% - 20px);\n max-inline-size: calc(100% - 20px);\n }\n\n .tyk-col--offset-lg-12 {\n margin-inline-start: 100%;\n }\n}\n\n@media screen and (1024px <= width < 1248px) {\n .tyk-col--md-0 {\n flex-basis: calc(0% - 20px);\n max-inline-size: calc(0% - 20px);\n }\n\n .tyk-col--offset-md-0 {\n margin-inline-start: 0%;\n }\n\n .tyk-col--md-1 {\n flex-basis: calc(8.3333333333% - 20px);\n max-inline-size: calc(8.3333333333% - 20px);\n }\n\n .tyk-col--offset-md-1 {\n margin-inline-start: 8.3333333333%;\n }\n\n .tyk-col--md-2 {\n flex-basis: calc(16.6666666667% - 20px);\n max-inline-size: calc(16.6666666667% - 20px);\n }\n\n .tyk-col--offset-md-2 {\n margin-inline-start: 16.6666666667%;\n }\n\n .tyk-col--md-3 {\n flex-basis: calc(25% - 20px);\n max-inline-size: calc(25% - 20px);\n }\n\n .tyk-col--offset-md-3 {\n margin-inline-start: 25%;\n }\n\n .tyk-col--md-4 {\n flex-basis: calc(33.3333333333% - 20px);\n max-inline-size: calc(33.3333333333% - 20px);\n }\n\n .tyk-col--offset-md-4 {\n margin-inline-start: 33.3333333333%;\n }\n\n .tyk-col--md-5 {\n flex-basis: calc(41.6666666667% - 20px);\n max-inline-size: calc(41.6666666667% - 20px);\n }\n\n .tyk-col--offset-md-5 {\n margin-inline-start: 41.6666666667%;\n }\n\n .tyk-col--md-6 {\n flex-basis: calc(50% - 20px);\n max-inline-size: calc(50% - 20px);\n }\n\n .tyk-col--offset-md-6 {\n margin-inline-start: 50%;\n }\n\n .tyk-col--md-7 {\n flex-basis: calc(58.3333333333% - 20px);\n max-inline-size: calc(58.3333333333% - 20px);\n }\n\n .tyk-col--offset-md-7 {\n margin-inline-start: 58.3333333333%;\n }\n\n .tyk-col--md-8 {\n flex-basis: calc(66.6666666667% - 20px);\n max-inline-size: calc(66.6666666667% - 20px);\n }\n\n .tyk-col--offset-md-8 {\n margin-inline-start: 66.6666666667%;\n }\n\n .tyk-col--md-9 {\n flex-basis: calc(75% - 20px);\n max-inline-size: calc(75% - 20px);\n }\n\n .tyk-col--offset-md-9 {\n margin-inline-start: 75%;\n }\n\n .tyk-col--md-10 {\n flex-basis: calc(83.3333333333% - 20px);\n max-inline-size: calc(83.3333333333% - 20px);\n }\n\n .tyk-col--offset-md-10 {\n margin-inline-start: 83.3333333333%;\n }\n\n .tyk-col--md-11 {\n flex-basis: calc(91.6666666667% - 20px);\n max-inline-size: calc(91.6666666667% - 20px);\n }\n\n .tyk-col--offset-md-11 {\n margin-inline-start: 91.6666666667%;\n }\n\n .tyk-col--md-12 {\n flex-basis: calc(100% - 20px);\n max-inline-size: calc(100% - 20px);\n }\n\n .tyk-col--offset-md-12 {\n margin-inline-start: 100%;\n }\n}\n\n@media screen and (768px < width < 1024px) {\n .tyk-col--sm-0 {\n flex-basis: calc(0% - 20px);\n max-inline-size: calc(0% - 20px);\n }\n\n .tyk-col--offset-sm-0 {\n margin-inline-start: 0%;\n }\n\n .tyk-col--sm-1 {\n flex-basis: calc(8.3333333333% - 20px);\n max-inline-size: calc(8.3333333333% - 20px);\n }\n\n .tyk-col--offset-sm-1 {\n margin-inline-start: 8.3333333333%;\n }\n\n .tyk-col--sm-2 {\n flex-basis: calc(16.6666666667% - 20px);\n max-inline-size: calc(16.6666666667% - 20px);\n }\n\n .tyk-col--offset-sm-2 {\n margin-inline-start: 16.6666666667%;\n }\n\n .tyk-col--sm-3 {\n flex-basis: calc(25% - 20px);\n max-inline-size: calc(25% - 20px);\n }\n\n .tyk-col--offset-sm-3 {\n margin-inline-start: 25%;\n }\n\n .tyk-col--sm-4 {\n flex-basis: calc(33.3333333333% - 20px);\n max-inline-size: calc(33.3333333333% - 20px);\n }\n\n .tyk-col--offset-sm-4 {\n margin-inline-start: 33.3333333333%;\n }\n\n .tyk-col--sm-5 {\n flex-basis: calc(41.6666666667% - 20px);\n max-inline-size: calc(41.6666666667% - 20px);\n }\n\n .tyk-col--offset-sm-5 {\n margin-inline-start: 41.6666666667%;\n }\n\n .tyk-col--sm-6 {\n flex-basis: calc(50% - 20px);\n max-inline-size: calc(50% - 20px);\n }\n\n .tyk-col--offset-sm-6 {\n margin-inline-start: 50%;\n }\n\n .tyk-col--sm-7 {\n flex-basis: calc(58.3333333333% - 20px);\n max-inline-size: calc(58.3333333333% - 20px);\n }\n\n .tyk-col--offset-sm-7 {\n margin-inline-start: 58.3333333333%;\n }\n\n .tyk-col--sm-8 {\n flex-basis: calc(66.6666666667% - 20px);\n max-inline-size: calc(66.6666666667% - 20px);\n }\n\n .tyk-col--offset-sm-8 {\n margin-inline-start: 66.6666666667%;\n }\n\n .tyk-col--sm-9 {\n flex-basis: calc(75% - 20px);\n max-inline-size: calc(75% - 20px);\n }\n\n .tyk-col--offset-sm-9 {\n margin-inline-start: 75%;\n }\n\n .tyk-col--sm-10 {\n flex-basis: calc(83.3333333333% - 20px);\n max-inline-size: calc(83.3333333333% - 20px);\n }\n\n .tyk-col--offset-sm-10 {\n margin-inline-start: 83.3333333333%;\n }\n\n .tyk-col--sm-11 {\n flex-basis: calc(91.6666666667% - 20px);\n max-inline-size: calc(91.6666666667% - 20px);\n }\n\n .tyk-col--offset-sm-11 {\n margin-inline-start: 91.6666666667%;\n }\n\n .tyk-col--sm-12 {\n flex-basis: calc(100% - 20px);\n max-inline-size: calc(100% - 20px);\n }\n\n .tyk-col--offset-sm-12 {\n margin-inline-start: 100%;\n }\n}\n\n@media screen and (width <= 768px) {\n .tyk-col--xs-0 {\n flex-basis: calc(0% - 20px);\n max-inline-size: calc(0% - 20px);\n }\n\n .tyk-col--offset-xs-0 {\n margin-inline-start: 0%;\n }\n\n .tyk-col--xs-1 {\n flex-basis: calc(8.3333333333% - 20px);\n max-inline-size: calc(8.3333333333% - 20px);\n }\n\n .tyk-col--offset-xs-1 {\n margin-inline-start: 8.3333333333%;\n }\n\n .tyk-col--xs-2 {\n flex-basis: calc(16.6666666667% - 20px);\n max-inline-size: calc(16.6666666667% - 20px);\n }\n\n .tyk-col--offset-xs-2 {\n margin-inline-start: 16.6666666667%;\n }\n\n .tyk-col--xs-3 {\n flex-basis: calc(25% - 20px);\n max-inline-size: calc(25% - 20px);\n }\n\n .tyk-col--offset-xs-3 {\n margin-inline-start: 25%;\n }\n\n .tyk-col--xs-4 {\n flex-basis: calc(33.3333333333% - 20px);\n max-inline-size: calc(33.3333333333% - 20px);\n }\n\n .tyk-col--offset-xs-4 {\n margin-inline-start: 33.3333333333%;\n }\n\n .tyk-col--xs-5 {\n flex-basis: calc(41.6666666667% - 20px);\n max-inline-size: calc(41.6666666667% - 20px);\n }\n\n .tyk-col--offset-xs-5 {\n margin-inline-start: 41.6666666667%;\n }\n\n .tyk-col--xs-6 {\n flex-basis: calc(50% - 20px);\n max-inline-size: calc(50% - 20px);\n }\n\n .tyk-col--offset-xs-6 {\n margin-inline-start: 50%;\n }\n\n .tyk-col--xs-7 {\n flex-basis: calc(58.3333333333% - 20px);\n max-inline-size: calc(58.3333333333% - 20px);\n }\n\n .tyk-col--offset-xs-7 {\n margin-inline-start: 58.3333333333%;\n }\n\n .tyk-col--xs-8 {\n flex-basis: calc(66.6666666667% - 20px);\n max-inline-size: calc(66.6666666667% - 20px);\n }\n\n .tyk-col--offset-xs-8 {\n margin-inline-start: 66.6666666667%;\n }\n\n .tyk-col--xs-9 {\n flex-basis: calc(75% - 20px);\n max-inline-size: calc(75% - 20px);\n }\n\n .tyk-col--offset-xs-9 {\n margin-inline-start: 75%;\n }\n\n .tyk-col--xs-10 {\n flex-basis: calc(83.3333333333% - 20px);\n max-inline-size: calc(83.3333333333% - 20px);\n }\n\n .tyk-col--offset-xs-10 {\n margin-inline-start: 83.3333333333%;\n }\n\n .tyk-col--xs-11 {\n flex-basis: calc(91.6666666667% - 20px);\n max-inline-size: calc(91.6666666667% - 20px);\n }\n\n .tyk-col--offset-xs-11 {\n margin-inline-start: 91.6666666667%;\n }\n\n .tyk-col--xs-12 {\n flex-basis: calc(100% - 20px);\n max-inline-size: calc(100% - 20px);\n }\n\n .tyk-col--offset-xs-12 {\n margin-inline-start: 100%;\n }\n}\n","@font-face {\n font-family: Inter-Bold;\n src: url('../fonts/inter/Inter-Bold.woff2') format('woff2'),\n url('../fonts/inter/Inter-Bold.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: Inter-Light;\n src: url('../fonts/inter/Inter-Light.woff2') format('woff2'),\n url('../fonts/inter/Inter-Light.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: Inter-Medium;\n src: url('../fonts/inter/Inter-Medium.woff2') format('woff2'),\n url('../fonts/inter/Inter-Medium.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: Inter-Regular;\n src: url('../fonts/inter/Inter-Regular.woff2') format('woff2'),\n url('../fonts/inter/Inter-Regular.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: Inter-SemiBold;\n src: url('../fonts/inter/Inter-SemiBold.woff2') format('woff2'),\n url('../fonts/inter/Inter-SemiBold.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: OpenSans-Bold;\n src: url('../fonts/OpenSans-Bold.woff2') format('woff2'),\n url('../fonts/OpenSans-Bold.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: OpenSans-SemiBold;\n src: url('../fonts/OpenSans-SemiBold.woff2') format('woff2'),\n url('../fonts/OpenSans-SemiBold.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: OpenSans-Regular;\n src: url('../fonts/OpenSans-Regular.woff2') format('woff2'),\n url('../fonts/OpenSans-Regular.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'smoolthan_bold';\n src: url('../fonts/smoolthan_bold-webfont.woff2') format('woff2'),\n url('../fonts/smoolthan_bold-webfont.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'smoolthan_medium';\n src: url('../fonts/smoolthan_medium-webfont.woff2') format('woff2'),\n url('../fonts/smoolthan_medium-webfont.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'smoolthan_regular';\n src: url('../fonts/smoolthan_regular-webfont.woff2') format('woff2'),\n url('../fonts/smoolthan_regular-webfont.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: tykon;\n src: url('../fonts/tykon.woff2') format('woff2'),\n url('../fonts/tykon.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n","/*!\n * Font Awesome Free 5.5.0 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n.fa,\n.fas,\n.far,\n.fal,\n.fab {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n display: inline-block;\n font-style: normal;\n font-variant: normal;\n text-rendering: auto;\n line-height: 1; }\n\n.fa-lg {\n font-size: 1.33333em;\n line-height: 0.75em;\n vertical-align: -.0667em; }\n\n.fa-xs {\n font-size: .75em; }\n\n.fa-sm {\n font-size: .875em; }\n\n.fa-1x {\n font-size: 1em; }\n\n.fa-2x {\n font-size: 2em; }\n\n.fa-3x {\n font-size: 3em; }\n\n.fa-4x {\n font-size: 4em; }\n\n.fa-5x {\n font-size: 5em; }\n\n.fa-6x {\n font-size: 6em; }\n\n.fa-7x {\n font-size: 7em; }\n\n.fa-8x {\n font-size: 8em; }\n\n.fa-9x {\n font-size: 9em; }\n\n.fa-10x {\n font-size: 10em; }\n\n.fa-fw {\n text-align: center;\n width: 1.25em; }\n\n.fa-ul {\n list-style-type: none;\n margin-left: 2.5em;\n padding-left: 0; }\n .fa-ul > li {\n position: relative; }\n\n.fa-li {\n left: -2em;\n position: absolute;\n text-align: center;\n width: 2em;\n line-height: inherit; }\n\n.fa-border {\n border: solid 0.08em #eee;\n border-radius: .1em;\n padding: .2em .25em .15em; }\n\n.fa-pull-left {\n float: left; }\n\n.fa-pull-right {\n float: right; }\n\n.fa.fa-pull-left,\n.fas.fa-pull-left,\n.far.fa-pull-left,\n.fal.fa-pull-left,\n.fab.fa-pull-left {\n margin-right: .3em; }\n\n.fa.fa-pull-right,\n.fas.fa-pull-right,\n.far.fa-pull-right,\n.fal.fa-pull-right,\n.fab.fa-pull-right {\n margin-left: .3em; }\n\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear; }\n\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8); }\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n\n.fa-rotate-90 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg); }\n\n.fa-rotate-180 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg); }\n\n.fa-rotate-270 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg); }\n\n.fa-flip-horizontal {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1); }\n\n.fa-flip-vertical {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1); }\n\n.fa-flip-horizontal.fa-flip-vertical {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1); }\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n -webkit-filter: none;\n filter: none; }\n\n.fa-stack {\n display: inline-block;\n height: 2em;\n line-height: 2em;\n position: relative;\n vertical-align: middle;\n width: 2.5em; }\n\n.fa-stack-1x,\n.fa-stack-2x {\n left: 0;\n position: absolute;\n text-align: center;\n width: 100%; }\n\n.fa-stack-1x {\n line-height: inherit; }\n\n.fa-stack-2x {\n font-size: 2em; }\n\n.fa-inverse {\n color: #fff; }\n\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\nreaders do not read off random characters that represent icons */\n.fa-500px:before {\n content: \"\\f26e\"; }\n\n.fa-accessible-icon:before {\n content: \"\\f368\"; }\n\n.fa-accusoft:before {\n content: \"\\f369\"; }\n\n.fa-acquisitions-incorporated:before {\n content: \"\\f6af\"; }\n\n.fa-ad:before {\n content: \"\\f641\"; }\n\n.fa-address-book:before {\n content: \"\\f2b9\"; }\n\n.fa-address-card:before {\n content: \"\\f2bb\"; }\n\n.fa-adjust:before {\n content: \"\\f042\"; }\n\n.fa-adn:before {\n content: \"\\f170\"; }\n\n.fa-adversal:before {\n content: \"\\f36a\"; }\n\n.fa-affiliatetheme:before {\n content: \"\\f36b\"; }\n\n.fa-air-freshener:before {\n content: \"\\f5d0\"; }\n\n.fa-algolia:before {\n content: \"\\f36c\"; }\n\n.fa-align-center:before {\n content: \"\\f037\"; }\n\n.fa-align-justify:before {\n content: \"\\f039\"; }\n\n.fa-align-left:before {\n content: \"\\f036\"; }\n\n.fa-align-right:before {\n content: \"\\f038\"; }\n\n.fa-alipay:before {\n content: \"\\f642\"; }\n\n.fa-allergies:before {\n content: \"\\f461\"; }\n\n.fa-amazon:before {\n content: \"\\f270\"; }\n\n.fa-amazon-pay:before {\n content: \"\\f42c\"; }\n\n.fa-ambulance:before {\n content: \"\\f0f9\"; }\n\n.fa-american-sign-language-interpreting:before {\n content: \"\\f2a3\"; }\n\n.fa-amilia:before {\n content: \"\\f36d\"; }\n\n.fa-anchor:before {\n content: \"\\f13d\"; }\n\n.fa-android:before {\n content: \"\\f17b\"; }\n\n.fa-angellist:before {\n content: \"\\f209\"; }\n\n.fa-angle-double-down:before {\n content: \"\\f103\"; }\n\n.fa-angle-double-left:before {\n content: \"\\f100\"; }\n\n.fa-angle-double-right:before {\n content: \"\\f101\"; }\n\n.fa-angle-double-up:before {\n content: \"\\f102\"; }\n\n.fa-angle-down:before {\n content: \"\\f107\"; }\n\n.fa-angle-left:before {\n content: \"\\f104\"; }\n\n.fa-angle-right:before {\n content: \"\\f105\"; }\n\n.fa-angle-up:before {\n content: \"\\f106\"; }\n\n.fa-angry:before {\n content: \"\\f556\"; }\n\n.fa-angrycreative:before {\n content: \"\\f36e\"; }\n\n.fa-angular:before {\n content: \"\\f420\"; }\n\n.fa-ankh:before {\n content: \"\\f644\"; }\n\n.fa-app-store:before {\n content: \"\\f36f\"; }\n\n.fa-app-store-ios:before {\n content: \"\\f370\"; }\n\n.fa-apper:before {\n content: \"\\f371\"; }\n\n.fa-apple:before {\n content: \"\\f179\"; }\n\n.fa-apple-alt:before {\n content: \"\\f5d1\"; }\n\n.fa-apple-pay:before {\n content: \"\\f415\"; }\n\n.fa-archive:before {\n content: \"\\f187\"; }\n\n.fa-archway:before {\n content: \"\\f557\"; }\n\n.fa-arrow-alt-circle-down:before {\n content: \"\\f358\"; }\n\n.fa-arrow-alt-circle-left:before {\n content: \"\\f359\"; }\n\n.fa-arrow-alt-circle-right:before {\n content: \"\\f35a\"; }\n\n.fa-arrow-alt-circle-up:before {\n content: \"\\f35b\"; }\n\n.fa-arrow-circle-down:before {\n content: \"\\f0ab\"; }\n\n.fa-arrow-circle-left:before {\n content: \"\\f0a8\"; }\n\n.fa-arrow-circle-right:before {\n content: \"\\f0a9\"; }\n\n.fa-arrow-circle-up:before {\n content: \"\\f0aa\"; }\n\n.fa-arrow-down:before {\n content: \"\\f063\"; }\n\n.fa-arrow-left:before {\n content: \"\\f060\"; }\n\n.fa-arrow-right:before {\n content: \"\\f061\"; }\n\n.fa-arrow-up:before {\n content: \"\\f062\"; }\n\n.fa-arrows-alt:before {\n content: \"\\f0b2\"; }\n\n.fa-arrows-alt-h:before {\n content: \"\\f337\"; }\n\n.fa-arrows-alt-v:before {\n content: \"\\f338\"; }\n\n.fa-assistive-listening-systems:before {\n content: \"\\f2a2\"; }\n\n.fa-asterisk:before {\n content: \"\\f069\"; }\n\n.fa-asymmetrik:before {\n content: \"\\f372\"; }\n\n.fa-at:before {\n content: \"\\f1fa\"; }\n\n.fa-atlas:before {\n content: \"\\f558\"; }\n\n.fa-atom:before {\n content: \"\\f5d2\"; }\n\n.fa-audible:before {\n content: \"\\f373\"; }\n\n.fa-audio-description:before {\n content: \"\\f29e\"; }\n\n.fa-autoprefixer:before {\n content: \"\\f41c\"; }\n\n.fa-avianex:before {\n content: \"\\f374\"; }\n\n.fa-aviato:before {\n content: \"\\f421\"; }\n\n.fa-award:before {\n content: \"\\f559\"; }\n\n.fa-aws:before {\n content: \"\\f375\"; }\n\n.fa-backspace:before {\n content: \"\\f55a\"; }\n\n.fa-backward:before {\n content: \"\\f04a\"; }\n\n.fa-balance-scale:before {\n content: \"\\f24e\"; }\n\n.fa-ban:before {\n content: \"\\f05e\"; }\n\n.fa-band-aid:before {\n content: \"\\f462\"; }\n\n.fa-bandcamp:before {\n content: \"\\f2d5\"; }\n\n.fa-barcode:before {\n content: \"\\f02a\"; }\n\n.fa-bars:before {\n content: \"\\f0c9\"; }\n\n.fa-baseball-ball:before {\n content: \"\\f433\"; }\n\n.fa-basketball-ball:before {\n content: \"\\f434\"; }\n\n.fa-bath:before {\n content: \"\\f2cd\"; }\n\n.fa-battery-empty:before {\n content: \"\\f244\"; }\n\n.fa-battery-full:before {\n content: \"\\f240\"; }\n\n.fa-battery-half:before {\n content: \"\\f242\"; }\n\n.fa-battery-quarter:before {\n content: \"\\f243\"; }\n\n.fa-battery-three-quarters:before {\n content: \"\\f241\"; }\n\n.fa-bed:before {\n content: \"\\f236\"; }\n\n.fa-beer:before {\n content: \"\\f0fc\"; }\n\n.fa-behance:before {\n content: \"\\f1b4\"; }\n\n.fa-behance-square:before {\n content: \"\\f1b5\"; }\n\n.fa-bell:before {\n content: \"\\f0f3\"; }\n\n.fa-bell-slash:before {\n content: \"\\f1f6\"; }\n\n.fa-bezier-curve:before {\n content: \"\\f55b\"; }\n\n.fa-bible:before {\n content: \"\\f647\"; }\n\n.fa-bicycle:before {\n content: \"\\f206\"; }\n\n.fa-bimobject:before {\n content: \"\\f378\"; }\n\n.fa-binoculars:before {\n content: \"\\f1e5\"; }\n\n.fa-birthday-cake:before {\n content: \"\\f1fd\"; }\n\n.fa-bitbucket:before {\n content: \"\\f171\"; }\n\n.fa-bitcoin:before {\n content: \"\\f379\"; }\n\n.fa-bity:before {\n content: \"\\f37a\"; }\n\n.fa-black-tie:before {\n content: \"\\f27e\"; }\n\n.fa-blackberry:before {\n content: \"\\f37b\"; }\n\n.fa-blender:before {\n content: \"\\f517\"; }\n\n.fa-blender-phone:before {\n content: \"\\f6b6\"; }\n\n.fa-blind:before {\n content: \"\\f29d\"; }\n\n.fa-blogger:before {\n content: \"\\f37c\"; }\n\n.fa-blogger-b:before {\n content: \"\\f37d\"; }\n\n.fa-bluetooth:before {\n content: \"\\f293\"; }\n\n.fa-bluetooth-b:before {\n content: \"\\f294\"; }\n\n.fa-bold:before {\n content: \"\\f032\"; }\n\n.fa-bolt:before {\n content: \"\\f0e7\"; }\n\n.fa-bomb:before {\n content: \"\\f1e2\"; }\n\n.fa-bone:before {\n content: \"\\f5d7\"; }\n\n.fa-bong:before {\n content: \"\\f55c\"; }\n\n.fa-book:before {\n content: \"\\f02d\"; }\n\n.fa-book-dead:before {\n content: \"\\f6b7\"; }\n\n.fa-book-open:before {\n content: \"\\f518\"; }\n\n.fa-book-reader:before {\n content: \"\\f5da\"; }\n\n.fa-bookmark:before {\n content: \"\\f02e\"; }\n\n.fa-bowling-ball:before {\n content: \"\\f436\"; }\n\n.fa-box:before {\n content: \"\\f466\"; }\n\n.fa-box-open:before {\n content: \"\\f49e\"; }\n\n.fa-boxes:before {\n content: \"\\f468\"; }\n\n.fa-braille:before {\n content: \"\\f2a1\"; }\n\n.fa-brain:before {\n content: \"\\f5dc\"; }\n\n.fa-briefcase:before {\n content: \"\\f0b1\"; }\n\n.fa-briefcase-medical:before {\n content: \"\\f469\"; }\n\n.fa-broadcast-tower:before {\n content: \"\\f519\"; }\n\n.fa-broom:before {\n content: \"\\f51a\"; }\n\n.fa-brush:before {\n content: \"\\f55d\"; }\n\n.fa-btc:before {\n content: \"\\f15a\"; }\n\n.fa-bug:before {\n content: \"\\f188\"; }\n\n.fa-building:before {\n content: \"\\f1ad\"; }\n\n.fa-bullhorn:before {\n content: \"\\f0a1\"; }\n\n.fa-bullseye:before {\n content: \"\\f140\"; }\n\n.fa-burn:before {\n content: \"\\f46a\"; }\n\n.fa-buromobelexperte:before {\n content: \"\\f37f\"; }\n\n.fa-bus:before {\n content: \"\\f207\"; }\n\n.fa-bus-alt:before {\n content: \"\\f55e\"; }\n\n.fa-business-time:before {\n content: \"\\f64a\"; }\n\n.fa-buysellads:before {\n content: \"\\f20d\"; }\n\n.fa-calculator:before {\n content: \"\\f1ec\"; }\n\n.fa-calendar:before {\n content: \"\\f133\"; }\n\n.fa-calendar-alt:before {\n content: \"\\f073\"; }\n\n.fa-calendar-check:before {\n content: \"\\f274\"; }\n\n.fa-calendar-minus:before {\n content: \"\\f272\"; }\n\n.fa-calendar-plus:before {\n content: \"\\f271\"; }\n\n.fa-calendar-times:before {\n content: \"\\f273\"; }\n\n.fa-camera:before {\n content: \"\\f030\"; }\n\n.fa-camera-retro:before {\n content: \"\\f083\"; }\n\n.fa-campground:before {\n content: \"\\f6bb\"; }\n\n.fa-cannabis:before {\n content: \"\\f55f\"; }\n\n.fa-capsules:before {\n content: \"\\f46b\"; }\n\n.fa-car:before {\n content: \"\\f1b9\"; }\n\n.fa-car-alt:before {\n content: \"\\f5de\"; }\n\n.fa-car-battery:before {\n content: \"\\f5df\"; }\n\n.fa-car-crash:before {\n content: \"\\f5e1\"; }\n\n.fa-car-side:before {\n content: \"\\f5e4\"; }\n\n.fa-caret-down:before {\n content: \"\\f0d7\"; }\n\n.fa-caret-left:before {\n content: \"\\f0d9\"; }\n\n.fa-caret-right:before {\n content: \"\\f0da\"; }\n\n.fa-caret-square-down:before {\n content: \"\\f150\"; }\n\n.fa-caret-square-left:before {\n content: \"\\f191\"; }\n\n.fa-caret-square-right:before {\n content: \"\\f152\"; }\n\n.fa-caret-square-up:before {\n content: \"\\f151\"; }\n\n.fa-caret-up:before {\n content: \"\\f0d8\"; }\n\n.fa-cart-arrow-down:before {\n content: \"\\f218\"; }\n\n.fa-cart-plus:before {\n content: \"\\f217\"; }\n\n.fa-cat:before {\n content: \"\\f6be\"; }\n\n.fa-cc-amazon-pay:before {\n content: \"\\f42d\"; }\n\n.fa-cc-amex:before {\n content: \"\\f1f3\"; }\n\n.fa-cc-apple-pay:before {\n content: \"\\f416\"; }\n\n.fa-cc-diners-club:before {\n content: \"\\f24c\"; }\n\n.fa-cc-discover:before {\n content: \"\\f1f2\"; }\n\n.fa-cc-jcb:before {\n content: \"\\f24b\"; }\n\n.fa-cc-mastercard:before {\n content: \"\\f1f1\"; }\n\n.fa-cc-paypal:before {\n content: \"\\f1f4\"; }\n\n.fa-cc-stripe:before {\n content: \"\\f1f5\"; }\n\n.fa-cc-visa:before {\n content: \"\\f1f0\"; }\n\n.fa-centercode:before {\n content: \"\\f380\"; }\n\n.fa-certificate:before {\n content: \"\\f0a3\"; }\n\n.fa-chair:before {\n content: \"\\f6c0\"; }\n\n.fa-chalkboard:before {\n content: \"\\f51b\"; }\n\n.fa-chalkboard-teacher:before {\n content: \"\\f51c\"; }\n\n.fa-charging-station:before {\n content: \"\\f5e7\"; }\n\n.fa-chart-area:before {\n content: \"\\f1fe\"; }\n\n.fa-chart-bar:before {\n content: \"\\f080\"; }\n\n.fa-chart-line:before {\n content: \"\\f201\"; }\n\n.fa-chart-pie:before {\n content: \"\\f200\"; }\n\n.fa-check:before {\n content: \"\\f00c\"; }\n\n.fa-check-circle:before {\n content: \"\\f058\"; }\n\n.fa-check-double:before {\n content: \"\\f560\"; }\n\n.fa-check-square:before {\n content: \"\\f14a\"; }\n\n.fa-chess:before {\n content: \"\\f439\"; }\n\n.fa-chess-bishop:before {\n content: \"\\f43a\"; }\n\n.fa-chess-board:before {\n content: \"\\f43c\"; }\n\n.fa-chess-king:before {\n content: \"\\f43f\"; }\n\n.fa-chess-knight:before {\n content: \"\\f441\"; }\n\n.fa-chess-pawn:before {\n content: \"\\f443\"; }\n\n.fa-chess-queen:before {\n content: \"\\f445\"; }\n\n.fa-chess-rook:before {\n content: \"\\f447\"; }\n\n.fa-chevron-circle-down:before {\n content: \"\\f13a\"; }\n\n.fa-chevron-circle-left:before {\n content: \"\\f137\"; }\n\n.fa-chevron-circle-right:before {\n content: \"\\f138\"; }\n\n.fa-chevron-circle-up:before {\n content: \"\\f139\"; }\n\n.fa-chevron-down:before {\n content: \"\\f078\"; }\n\n.fa-chevron-left:before {\n content: \"\\f053\"; }\n\n.fa-chevron-right:before {\n content: \"\\f054\"; }\n\n.fa-chevron-up:before {\n content: \"\\f077\"; }\n\n.fa-child:before {\n content: \"\\f1ae\"; }\n\n.fa-chrome:before {\n content: \"\\f268\"; }\n\n.fa-church:before {\n content: \"\\f51d\"; }\n\n.fa-circle:before {\n content: \"\\f111\"; }\n\n.fa-circle-notch:before {\n content: \"\\f1ce\"; }\n\n.fa-city:before {\n content: \"\\f64f\"; }\n\n.fa-clipboard:before {\n content: \"\\f328\"; }\n\n.fa-clipboard-check:before {\n content: \"\\f46c\"; }\n\n.fa-clipboard-list:before {\n content: \"\\f46d\"; }\n\n.fa-clock:before {\n content: \"\\f017\"; }\n\n.fa-clone:before {\n content: \"\\f24d\"; }\n\n.fa-closed-captioning:before {\n content: \"\\f20a\"; }\n\n.fa-cloud:before {\n content: \"\\f0c2\"; }\n\n.fa-cloud-download-alt:before {\n content: \"\\f381\"; }\n\n.fa-cloud-meatball:before {\n content: \"\\f73b\"; }\n\n.fa-cloud-moon:before {\n content: \"\\f6c3\"; }\n\n.fa-cloud-moon-rain:before {\n content: \"\\f73c\"; }\n\n.fa-cloud-rain:before {\n content: \"\\f73d\"; }\n\n.fa-cloud-showers-heavy:before {\n content: \"\\f740\"; }\n\n.fa-cloud-sun:before {\n content: \"\\f6c4\"; }\n\n.fa-cloud-sun-rain:before {\n content: \"\\f743\"; }\n\n.fa-cloud-upload-alt:before {\n content: \"\\f382\"; }\n\n.fa-cloudscale:before {\n content: \"\\f383\"; }\n\n.fa-cloudsmith:before {\n content: \"\\f384\"; }\n\n.fa-cloudversify:before {\n content: \"\\f385\"; }\n\n.fa-cocktail:before {\n content: \"\\f561\"; }\n\n.fa-code:before {\n content: \"\\f121\"; }\n\n.fa-code-branch:before {\n content: \"\\f126\"; }\n\n.fa-codepen:before {\n content: \"\\f1cb\"; }\n\n.fa-codiepie:before {\n content: \"\\f284\"; }\n\n.fa-coffee:before {\n content: \"\\f0f4\"; }\n\n.fa-cog:before {\n content: \"\\f013\"; }\n\n.fa-cogs:before {\n content: \"\\f085\"; }\n\n.fa-coins:before {\n content: \"\\f51e\"; }\n\n.fa-columns:before {\n content: \"\\f0db\"; }\n\n.fa-comment:before {\n content: \"\\f075\"; }\n\n.fa-comment-alt:before {\n content: \"\\f27a\"; }\n\n.fa-comment-dollar:before {\n content: \"\\f651\"; }\n\n.fa-comment-dots:before {\n content: \"\\f4ad\"; }\n\n.fa-comment-slash:before {\n content: \"\\f4b3\"; }\n\n.fa-comments:before {\n content: \"\\f086\"; }\n\n.fa-comments-dollar:before {\n content: \"\\f653\"; }\n\n.fa-compact-disc:before {\n content: \"\\f51f\"; }\n\n.fa-compass:before {\n content: \"\\f14e\"; }\n\n.fa-compress:before {\n content: \"\\f066\"; }\n\n.fa-compress-arrows-alt:before {\n content: \"\\f78c\"; }\n\n.fa-concierge-bell:before {\n content: \"\\f562\"; }\n\n.fa-connectdevelop:before {\n content: \"\\f20e\"; }\n\n.fa-contao:before {\n content: \"\\f26d\"; }\n\n.fa-cookie:before {\n content: \"\\f563\"; }\n\n.fa-cookie-bite:before {\n content: \"\\f564\"; }\n\n.fa-copy:before {\n content: \"\\f0c5\"; }\n\n.fa-copyright:before {\n content: \"\\f1f9\"; }\n\n.fa-couch:before {\n content: \"\\f4b8\"; }\n\n.fa-cpanel:before {\n content: \"\\f388\"; }\n\n.fa-creative-commons:before {\n content: \"\\f25e\"; }\n\n.fa-creative-commons-by:before {\n content: \"\\f4e7\"; }\n\n.fa-creative-commons-nc:before {\n content: \"\\f4e8\"; }\n\n.fa-creative-commons-nc-eu:before {\n content: \"\\f4e9\"; }\n\n.fa-creative-commons-nc-jp:before {\n content: \"\\f4ea\"; }\n\n.fa-creative-commons-nd:before {\n content: \"\\f4eb\"; }\n\n.fa-creative-commons-pd:before {\n content: \"\\f4ec\"; }\n\n.fa-creative-commons-pd-alt:before {\n content: \"\\f4ed\"; }\n\n.fa-creative-commons-remix:before {\n content: \"\\f4ee\"; }\n\n.fa-creative-commons-sa:before {\n content: \"\\f4ef\"; }\n\n.fa-creative-commons-sampling:before {\n content: \"\\f4f0\"; }\n\n.fa-creative-commons-sampling-plus:before {\n content: \"\\f4f1\"; }\n\n.fa-creative-commons-share:before {\n content: \"\\f4f2\"; }\n\n.fa-creative-commons-zero:before {\n content: \"\\f4f3\"; }\n\n.fa-credit-card:before {\n content: \"\\f09d\"; }\n\n.fa-critical-role:before {\n content: \"\\f6c9\"; }\n\n.fa-crop:before {\n content: \"\\f125\"; }\n\n.fa-crop-alt:before {\n content: \"\\f565\"; }\n\n.fa-cross:before {\n content: \"\\f654\"; }\n\n.fa-crosshairs:before {\n content: \"\\f05b\"; }\n\n.fa-crow:before {\n content: \"\\f520\"; }\n\n.fa-crown:before {\n content: \"\\f521\"; }\n\n.fa-css3:before {\n content: \"\\f13c\"; }\n\n.fa-css3-alt:before {\n content: \"\\f38b\"; }\n\n.fa-cube:before {\n content: \"\\f1b2\"; }\n\n.fa-cubes:before {\n content: \"\\f1b3\"; }\n\n.fa-cut:before {\n content: \"\\f0c4\"; }\n\n.fa-cuttlefish:before {\n content: \"\\f38c\"; }\n\n.fa-d-and-d:before {\n content: \"\\f38d\"; }\n\n.fa-d-and-d-beyond:before {\n content: \"\\f6ca\"; }\n\n.fa-dashcube:before {\n content: \"\\f210\"; }\n\n.fa-database:before {\n content: \"\\f1c0\"; }\n\n.fa-deaf:before {\n content: \"\\f2a4\"; }\n\n.fa-delicious:before {\n content: \"\\f1a5\"; }\n\n.fa-democrat:before {\n content: \"\\f747\"; }\n\n.fa-deploydog:before {\n content: \"\\f38e\"; }\n\n.fa-deskpro:before {\n content: \"\\f38f\"; }\n\n.fa-desktop:before {\n content: \"\\f108\"; }\n\n.fa-dev:before {\n content: \"\\f6cc\"; }\n\n.fa-deviantart:before {\n content: \"\\f1bd\"; }\n\n.fa-dharmachakra:before {\n content: \"\\f655\"; }\n\n.fa-diagnoses:before {\n content: \"\\f470\"; }\n\n.fa-dice:before {\n content: \"\\f522\"; }\n\n.fa-dice-d20:before {\n content: \"\\f6cf\"; }\n\n.fa-dice-d6:before {\n content: \"\\f6d1\"; }\n\n.fa-dice-five:before {\n content: \"\\f523\"; }\n\n.fa-dice-four:before {\n content: \"\\f524\"; }\n\n.fa-dice-one:before {\n content: \"\\f525\"; }\n\n.fa-dice-six:before {\n content: \"\\f526\"; }\n\n.fa-dice-three:before {\n content: \"\\f527\"; }\n\n.fa-dice-two:before {\n content: \"\\f528\"; }\n\n.fa-digg:before {\n content: \"\\f1a6\"; }\n\n.fa-digital-ocean:before {\n content: \"\\f391\"; }\n\n.fa-digital-tachograph:before {\n content: \"\\f566\"; }\n\n.fa-directions:before {\n content: \"\\f5eb\"; }\n\n.fa-discord:before {\n content: \"\\f392\"; }\n\n.fa-discourse:before {\n content: \"\\f393\"; }\n\n.fa-divide:before {\n content: \"\\f529\"; }\n\n.fa-dizzy:before {\n content: \"\\f567\"; }\n\n.fa-dna:before {\n content: \"\\f471\"; }\n\n.fa-dochub:before {\n content: \"\\f394\"; }\n\n.fa-docker:before {\n content: \"\\f395\"; }\n\n.fa-dog:before {\n content: \"\\f6d3\"; }\n\n.fa-dollar-sign:before {\n content: \"\\f155\"; }\n\n.fa-dolly:before {\n content: \"\\f472\"; }\n\n.fa-dolly-flatbed:before {\n content: \"\\f474\"; }\n\n.fa-donate:before {\n content: \"\\f4b9\"; }\n\n.fa-door-closed:before {\n content: \"\\f52a\"; }\n\n.fa-door-open:before {\n content: \"\\f52b\"; }\n\n.fa-dot-circle:before {\n content: \"\\f192\"; }\n\n.fa-dove:before {\n content: \"\\f4ba\"; }\n\n.fa-download:before {\n content: \"\\f019\"; }\n\n.fa-draft2digital:before {\n content: \"\\f396\"; }\n\n.fa-drafting-compass:before {\n content: \"\\f568\"; }\n\n.fa-dragon:before {\n content: \"\\f6d5\"; }\n\n.fa-draw-polygon:before {\n content: \"\\f5ee\"; }\n\n.fa-dribbble:before {\n content: \"\\f17d\"; }\n\n.fa-dribbble-square:before {\n content: \"\\f397\"; }\n\n.fa-dropbox:before {\n content: \"\\f16b\"; }\n\n.fa-drum:before {\n content: \"\\f569\"; }\n\n.fa-drum-steelpan:before {\n content: \"\\f56a\"; }\n\n.fa-drumstick-bite:before {\n content: \"\\f6d7\"; }\n\n.fa-drupal:before {\n content: \"\\f1a9\"; }\n\n.fa-dumbbell:before {\n content: \"\\f44b\"; }\n\n.fa-dungeon:before {\n content: \"\\f6d9\"; }\n\n.fa-dyalog:before {\n content: \"\\f399\"; }\n\n.fa-earlybirds:before {\n content: \"\\f39a\"; }\n\n.fa-ebay:before {\n content: \"\\f4f4\"; }\n\n.fa-edge:before {\n content: \"\\f282\"; }\n\n.fa-edit:before {\n content: \"\\f044\"; }\n\n.fa-eject:before {\n content: \"\\f052\"; }\n\n.fa-elementor:before {\n content: \"\\f430\"; }\n\n.fa-ellipsis-h:before {\n content: \"\\f141\"; }\n\n.fa-ellipsis-v:before {\n content: \"\\f142\"; }\n\n.fa-ello:before {\n content: \"\\f5f1\"; }\n\n.fa-ember:before {\n content: \"\\f423\"; }\n\n.fa-empire:before {\n content: \"\\f1d1\"; }\n\n.fa-envelope:before {\n content: \"\\f0e0\"; }\n\n.fa-envelope-open:before {\n content: \"\\f2b6\"; }\n\n.fa-envelope-open-text:before {\n content: \"\\f658\"; }\n\n.fa-envelope-square:before {\n content: \"\\f199\"; }\n\n.fa-envira:before {\n content: \"\\f299\"; }\n\n.fa-equals:before {\n content: \"\\f52c\"; }\n\n.fa-eraser:before {\n content: \"\\f12d\"; }\n\n.fa-erlang:before {\n content: \"\\f39d\"; }\n\n.fa-ethereum:before {\n content: \"\\f42e\"; }\n\n.fa-etsy:before {\n content: \"\\f2d7\"; }\n\n.fa-euro-sign:before {\n content: \"\\f153\"; }\n\n.fa-exchange-alt:before {\n content: \"\\f362\"; }\n\n.fa-exclamation:before {\n content: \"\\f12a\"; }\n\n.fa-exclamation-circle:before {\n content: \"\\f06a\"; }\n\n.fa-exclamation-triangle:before {\n content: \"\\f071\"; }\n\n.fa-expand:before {\n content: \"\\f065\"; }\n\n.fa-expand-arrows-alt:before {\n content: \"\\f31e\"; }\n\n.fa-expeditedssl:before {\n content: \"\\f23e\"; }\n\n.fa-external-link-alt:before {\n content: \"\\f35d\"; }\n\n.fa-external-link-square-alt:before {\n content: \"\\f360\"; }\n\n.fa-eye:before {\n content: \"\\f06e\"; }\n\n.fa-eye-dropper:before {\n content: \"\\f1fb\"; }\n\n.fa-eye-slash:before {\n content: \"\\f070\"; }\n\n.fa-facebook:before {\n content: \"\\f09a\"; }\n\n.fa-facebook-f:before {\n content: \"\\f39e\"; }\n\n.fa-facebook-messenger:before {\n content: \"\\f39f\"; }\n\n.fa-facebook-square:before {\n content: \"\\f082\"; }\n\n.fa-fantasy-flight-games:before {\n content: \"\\f6dc\"; }\n\n.fa-fast-backward:before {\n content: \"\\f049\"; }\n\n.fa-fast-forward:before {\n content: \"\\f050\"; }\n\n.fa-fax:before {\n content: \"\\f1ac\"; }\n\n.fa-feather:before {\n content: \"\\f52d\"; }\n\n.fa-feather-alt:before {\n content: \"\\f56b\"; }\n\n.fa-female:before {\n content: \"\\f182\"; }\n\n.fa-fighter-jet:before {\n content: \"\\f0fb\"; }\n\n.fa-file:before {\n content: \"\\f15b\"; }\n\n.fa-file-alt:before {\n content: \"\\f15c\"; }\n\n.fa-file-archive:before {\n content: \"\\f1c6\"; }\n\n.fa-file-audio:before {\n content: \"\\f1c7\"; }\n\n.fa-file-code:before {\n content: \"\\f1c9\"; }\n\n.fa-file-contract:before {\n content: \"\\f56c\"; }\n\n.fa-file-csv:before {\n content: \"\\f6dd\"; }\n\n.fa-file-download:before {\n content: \"\\f56d\"; }\n\n.fa-file-excel:before {\n content: \"\\f1c3\"; }\n\n.fa-file-export:before {\n content: \"\\f56e\"; }\n\n.fa-file-image:before {\n content: \"\\f1c5\"; }\n\n.fa-file-import:before {\n content: \"\\f56f\"; }\n\n.fa-file-invoice:before {\n content: \"\\f570\"; }\n\n.fa-file-invoice-dollar:before {\n content: \"\\f571\"; }\n\n.fa-file-medical:before {\n content: \"\\f477\"; }\n\n.fa-file-medical-alt:before {\n content: \"\\f478\"; }\n\n.fa-file-pdf:before {\n content: \"\\f1c1\"; }\n\n.fa-file-powerpoint:before {\n content: \"\\f1c4\"; }\n\n.fa-file-prescription:before {\n content: \"\\f572\"; }\n\n.fa-file-signature:before {\n content: \"\\f573\"; }\n\n.fa-file-upload:before {\n content: \"\\f574\"; }\n\n.fa-file-video:before {\n content: \"\\f1c8\"; }\n\n.fa-file-word:before {\n content: \"\\f1c2\"; }\n\n.fa-fill:before {\n content: \"\\f575\"; }\n\n.fa-fill-drip:before {\n content: \"\\f576\"; }\n\n.fa-film:before {\n content: \"\\f008\"; }\n\n.fa-filter:before {\n content: \"\\f0b0\"; }\n\n.fa-fingerprint:before {\n content: \"\\f577\"; }\n\n.fa-fire:before {\n content: \"\\f06d\"; }\n\n.fa-fire-extinguisher:before {\n content: \"\\f134\"; }\n\n.fa-firefox:before {\n content: \"\\f269\"; }\n\n.fa-first-aid:before {\n content: \"\\f479\"; }\n\n.fa-first-order:before {\n content: \"\\f2b0\"; }\n\n.fa-first-order-alt:before {\n content: \"\\f50a\"; }\n\n.fa-firstdraft:before {\n content: \"\\f3a1\"; }\n\n.fa-fish:before {\n content: \"\\f578\"; }\n\n.fa-fist-raised:before {\n content: \"\\f6de\"; }\n\n.fa-flag:before {\n content: \"\\f024\"; }\n\n.fa-flag-checkered:before {\n content: \"\\f11e\"; }\n\n.fa-flag-usa:before {\n content: \"\\f74d\"; }\n\n.fa-flask:before {\n content: \"\\f0c3\"; }\n\n.fa-flickr:before {\n content: \"\\f16e\"; }\n\n.fa-flipboard:before {\n content: \"\\f44d\"; }\n\n.fa-flushed:before {\n content: \"\\f579\"; }\n\n.fa-fly:before {\n content: \"\\f417\"; }\n\n.fa-folder:before {\n content: \"\\f07b\"; }\n\n.fa-folder-minus:before {\n content: \"\\f65d\"; }\n\n.fa-folder-open:before {\n content: \"\\f07c\"; }\n\n.fa-folder-plus:before {\n content: \"\\f65e\"; }\n\n.fa-font:before {\n content: \"\\f031\"; }\n\n.fa-font-awesome:before {\n content: \"\\f2b4\"; }\n\n.fa-font-awesome-alt:before {\n content: \"\\f35c\"; }\n\n.fa-font-awesome-flag:before {\n content: \"\\f425\"; }\n\n.fa-font-awesome-logo-full:before {\n content: \"\\f4e6\"; }\n\n.fa-fonticons:before {\n content: \"\\f280\"; }\n\n.fa-fonticons-fi:before {\n content: \"\\f3a2\"; }\n\n.fa-football-ball:before {\n content: \"\\f44e\"; }\n\n.fa-fort-awesome:before {\n content: \"\\f286\"; }\n\n.fa-fort-awesome-alt:before {\n content: \"\\f3a3\"; }\n\n.fa-forumbee:before {\n content: \"\\f211\"; }\n\n.fa-forward:before {\n content: \"\\f04e\"; }\n\n.fa-foursquare:before {\n content: \"\\f180\"; }\n\n.fa-free-code-camp:before {\n content: \"\\f2c5\"; }\n\n.fa-freebsd:before {\n content: \"\\f3a4\"; }\n\n.fa-frog:before {\n content: \"\\f52e\"; }\n\n.fa-frown:before {\n content: \"\\f119\"; }\n\n.fa-frown-open:before {\n content: \"\\f57a\"; }\n\n.fa-fulcrum:before {\n content: \"\\f50b\"; }\n\n.fa-funnel-dollar:before {\n content: \"\\f662\"; }\n\n.fa-futbol:before {\n content: \"\\f1e3\"; }\n\n.fa-galactic-republic:before {\n content: \"\\f50c\"; }\n\n.fa-galactic-senate:before {\n content: \"\\f50d\"; }\n\n.fa-gamepad:before {\n content: \"\\f11b\"; }\n\n.fa-gas-pump:before {\n content: \"\\f52f\"; }\n\n.fa-gavel:before {\n content: \"\\f0e3\"; }\n\n.fa-gem:before {\n content: \"\\f3a5\"; }\n\n.fa-genderless:before {\n content: \"\\f22d\"; }\n\n.fa-get-pocket:before {\n content: \"\\f265\"; }\n\n.fa-gg:before {\n content: \"\\f260\"; }\n\n.fa-gg-circle:before {\n content: \"\\f261\"; }\n\n.fa-ghost:before {\n content: \"\\f6e2\"; }\n\n.fa-gift:before {\n content: \"\\f06b\"; }\n\n.fa-git:before {\n content: \"\\f1d3\"; }\n\n.fa-git-square:before {\n content: \"\\f1d2\"; }\n\n.fa-github:before {\n content: \"\\f09b\"; }\n\n.fa-github-alt:before {\n content: \"\\f113\"; }\n\n.fa-github-square:before {\n content: \"\\f092\"; }\n\n.fa-gitkraken:before {\n content: \"\\f3a6\"; }\n\n.fa-gitlab:before {\n content: \"\\f296\"; }\n\n.fa-gitter:before {\n content: \"\\f426\"; }\n\n.fa-glass-martini:before {\n content: \"\\f000\"; }\n\n.fa-glass-martini-alt:before {\n content: \"\\f57b\"; }\n\n.fa-glasses:before {\n content: \"\\f530\"; }\n\n.fa-glide:before {\n content: \"\\f2a5\"; }\n\n.fa-glide-g:before {\n content: \"\\f2a6\"; }\n\n.fa-globe:before {\n content: \"\\f0ac\"; }\n\n.fa-globe-africa:before {\n content: \"\\f57c\"; }\n\n.fa-globe-americas:before {\n content: \"\\f57d\"; }\n\n.fa-globe-asia:before {\n content: \"\\f57e\"; }\n\n.fa-gofore:before {\n content: \"\\f3a7\"; }\n\n.fa-golf-ball:before {\n content: \"\\f450\"; }\n\n.fa-goodreads:before {\n content: \"\\f3a8\"; }\n\n.fa-goodreads-g:before {\n content: \"\\f3a9\"; }\n\n.fa-google:before {\n content: \"\\f1a0\"; }\n\n.fa-google-drive:before {\n content: \"\\f3aa\"; }\n\n.fa-google-play:before {\n content: \"\\f3ab\"; }\n\n.fa-google-plus:before {\n content: \"\\f2b3\"; }\n\n.fa-google-plus-g:before {\n content: \"\\f0d5\"; }\n\n.fa-google-plus-square:before {\n content: \"\\f0d4\"; }\n\n.fa-google-wallet:before {\n content: \"\\f1ee\"; }\n\n.fa-gopuram:before {\n content: \"\\f664\"; }\n\n.fa-graduation-cap:before {\n content: \"\\f19d\"; }\n\n.fa-gratipay:before {\n content: \"\\f184\"; }\n\n.fa-grav:before {\n content: \"\\f2d6\"; }\n\n.fa-greater-than:before {\n content: \"\\f531\"; }\n\n.fa-greater-than-equal:before {\n content: \"\\f532\"; }\n\n.fa-grimace:before {\n content: \"\\f57f\"; }\n\n.fa-grin:before {\n content: \"\\f580\"; }\n\n.fa-grin-alt:before {\n content: \"\\f581\"; }\n\n.fa-grin-beam:before {\n content: \"\\f582\"; }\n\n.fa-grin-beam-sweat:before {\n content: \"\\f583\"; }\n\n.fa-grin-hearts:before {\n content: \"\\f584\"; }\n\n.fa-grin-squint:before {\n content: \"\\f585\"; }\n\n.fa-grin-squint-tears:before {\n content: \"\\f586\"; }\n\n.fa-grin-stars:before {\n content: \"\\f587\"; }\n\n.fa-grin-tears:before {\n content: \"\\f588\"; }\n\n.fa-grin-tongue:before {\n content: \"\\f589\"; }\n\n.fa-grin-tongue-squint:before {\n content: \"\\f58a\"; }\n\n.fa-grin-tongue-wink:before {\n content: \"\\f58b\"; }\n\n.fa-grin-wink:before {\n content: \"\\f58c\"; }\n\n.fa-grip-horizontal:before {\n content: \"\\f58d\"; }\n\n.fa-grip-vertical:before {\n content: \"\\f58e\"; }\n\n.fa-gripfire:before {\n content: \"\\f3ac\"; }\n\n.fa-grunt:before {\n content: \"\\f3ad\"; }\n\n.fa-gulp:before {\n content: \"\\f3ae\"; }\n\n.fa-h-square:before {\n content: \"\\f0fd\"; }\n\n.fa-hacker-news:before {\n content: \"\\f1d4\"; }\n\n.fa-hacker-news-square:before {\n content: \"\\f3af\"; }\n\n.fa-hackerrank:before {\n content: \"\\f5f7\"; }\n\n.fa-hammer:before {\n content: \"\\f6e3\"; }\n\n.fa-hamsa:before {\n content: \"\\f665\"; }\n\n.fa-hand-holding:before {\n content: \"\\f4bd\"; }\n\n.fa-hand-holding-heart:before {\n content: \"\\f4be\"; }\n\n.fa-hand-holding-usd:before {\n content: \"\\f4c0\"; }\n\n.fa-hand-lizard:before {\n content: \"\\f258\"; }\n\n.fa-hand-paper:before {\n content: \"\\f256\"; }\n\n.fa-hand-peace:before {\n content: \"\\f25b\"; }\n\n.fa-hand-point-down:before {\n content: \"\\f0a7\"; }\n\n.fa-hand-point-left:before {\n content: \"\\f0a5\"; }\n\n.fa-hand-point-right:before {\n content: \"\\f0a4\"; }\n\n.fa-hand-point-up:before {\n content: \"\\f0a6\"; }\n\n.fa-hand-pointer:before {\n content: \"\\f25a\"; }\n\n.fa-hand-rock:before {\n content: \"\\f255\"; }\n\n.fa-hand-scissors:before {\n content: \"\\f257\"; }\n\n.fa-hand-spock:before {\n content: \"\\f259\"; }\n\n.fa-hands:before {\n content: \"\\f4c2\"; }\n\n.fa-hands-helping:before {\n content: \"\\f4c4\"; }\n\n.fa-handshake:before {\n content: \"\\f2b5\"; }\n\n.fa-hanukiah:before {\n content: \"\\f6e6\"; }\n\n.fa-hashtag:before {\n content: \"\\f292\"; }\n\n.fa-hat-wizard:before {\n content: \"\\f6e8\"; }\n\n.fa-haykal:before {\n content: \"\\f666\"; }\n\n.fa-hdd:before {\n content: \"\\f0a0\"; }\n\n.fa-heading:before {\n content: \"\\f1dc\"; }\n\n.fa-headphones:before {\n content: \"\\f025\"; }\n\n.fa-headphones-alt:before {\n content: \"\\f58f\"; }\n\n.fa-headset:before {\n content: \"\\f590\"; }\n\n.fa-heart:before {\n content: \"\\f004\"; }\n\n.fa-heartbeat:before {\n content: \"\\f21e\"; }\n\n.fa-helicopter:before {\n content: \"\\f533\"; }\n\n.fa-highlighter:before {\n content: \"\\f591\"; }\n\n.fa-hiking:before {\n content: \"\\f6ec\"; }\n\n.fa-hippo:before {\n content: \"\\f6ed\"; }\n\n.fa-hips:before {\n content: \"\\f452\"; }\n\n.fa-hire-a-helper:before {\n content: \"\\f3b0\"; }\n\n.fa-history:before {\n content: \"\\f1da\"; }\n\n.fa-hockey-puck:before {\n content: \"\\f453\"; }\n\n.fa-home:before {\n content: \"\\f015\"; }\n\n.fa-hooli:before {\n content: \"\\f427\"; }\n\n.fa-hornbill:before {\n content: \"\\f592\"; }\n\n.fa-horse:before {\n content: \"\\f6f0\"; }\n\n.fa-hospital:before {\n content: \"\\f0f8\"; }\n\n.fa-hospital-alt:before {\n content: \"\\f47d\"; }\n\n.fa-hospital-symbol:before {\n content: \"\\f47e\"; }\n\n.fa-hot-tub:before {\n content: \"\\f593\"; }\n\n.fa-hotel:before {\n content: \"\\f594\"; }\n\n.fa-hotjar:before {\n content: \"\\f3b1\"; }\n\n.fa-hourglass:before {\n content: \"\\f254\"; }\n\n.fa-hourglass-end:before {\n content: \"\\f253\"; }\n\n.fa-hourglass-half:before {\n content: \"\\f252\"; }\n\n.fa-hourglass-start:before {\n content: \"\\f251\"; }\n\n.fa-house-damage:before {\n content: \"\\f6f1\"; }\n\n.fa-houzz:before {\n content: \"\\f27c\"; }\n\n.fa-hryvnia:before {\n content: \"\\f6f2\"; }\n\n.fa-html5:before {\n content: \"\\f13b\"; }\n\n.fa-hubspot:before {\n content: \"\\f3b2\"; }\n\n.fa-i-cursor:before {\n content: \"\\f246\"; }\n\n.fa-id-badge:before {\n content: \"\\f2c1\"; }\n\n.fa-id-card:before {\n content: \"\\f2c2\"; }\n\n.fa-id-card-alt:before {\n content: \"\\f47f\"; }\n\n.fa-image:before {\n content: \"\\f03e\"; }\n\n.fa-images:before {\n content: \"\\f302\"; }\n\n.fa-imdb:before {\n content: \"\\f2d8\"; }\n\n.fa-inbox:before {\n content: \"\\f01c\"; }\n\n.fa-indent:before {\n content: \"\\f03c\"; }\n\n.fa-industry:before {\n content: \"\\f275\"; }\n\n.fa-infinity:before {\n content: \"\\f534\"; }\n\n.fa-info:before {\n content: \"\\f129\"; }\n\n.fa-info-circle:before {\n content: \"\\f05a\"; }\n\n.fa-instagram:before {\n content: \"\\f16d\"; }\n\n.fa-internet-explorer:before {\n content: \"\\f26b\"; }\n\n.fa-ioxhost:before {\n content: \"\\f208\"; }\n\n.fa-italic:before {\n content: \"\\f033\"; }\n\n.fa-itunes:before {\n content: \"\\f3b4\"; }\n\n.fa-itunes-note:before {\n content: \"\\f3b5\"; }\n\n.fa-java:before {\n content: \"\\f4e4\"; }\n\n.fa-jedi:before {\n content: \"\\f669\"; }\n\n.fa-jedi-order:before {\n content: \"\\f50e\"; }\n\n.fa-jenkins:before {\n content: \"\\f3b6\"; }\n\n.fa-joget:before {\n content: \"\\f3b7\"; }\n\n.fa-joint:before {\n content: \"\\f595\"; }\n\n.fa-joomla:before {\n content: \"\\f1aa\"; }\n\n.fa-journal-whills:before {\n content: \"\\f66a\"; }\n\n.fa-js:before {\n content: \"\\f3b8\"; }\n\n.fa-js-square:before {\n content: \"\\f3b9\"; }\n\n.fa-jsfiddle:before {\n content: \"\\f1cc\"; }\n\n.fa-kaaba:before {\n content: \"\\f66b\"; }\n\n.fa-kaggle:before {\n content: \"\\f5fa\"; }\n\n.fa-key:before {\n content: \"\\f084\"; }\n\n.fa-keybase:before {\n content: \"\\f4f5\"; }\n\n.fa-keyboard:before {\n content: \"\\f11c\"; }\n\n.fa-keycdn:before {\n content: \"\\f3ba\"; }\n\n.fa-khanda:before {\n content: \"\\f66d\"; }\n\n.fa-kickstarter:before {\n content: \"\\f3bb\"; }\n\n.fa-kickstarter-k:before {\n content: \"\\f3bc\"; }\n\n.fa-kiss:before {\n content: \"\\f596\"; }\n\n.fa-kiss-beam:before {\n content: \"\\f597\"; }\n\n.fa-kiss-wink-heart:before {\n content: \"\\f598\"; }\n\n.fa-kiwi-bird:before {\n content: \"\\f535\"; }\n\n.fa-korvue:before {\n content: \"\\f42f\"; }\n\n.fa-landmark:before {\n content: \"\\f66f\"; }\n\n.fa-language:before {\n content: \"\\f1ab\"; }\n\n.fa-laptop:before {\n content: \"\\f109\"; }\n\n.fa-laptop-code:before {\n content: \"\\f5fc\"; }\n\n.fa-laravel:before {\n content: \"\\f3bd\"; }\n\n.fa-lastfm:before {\n content: \"\\f202\"; }\n\n.fa-lastfm-square:before {\n content: \"\\f203\"; }\n\n.fa-laugh:before {\n content: \"\\f599\"; }\n\n.fa-laugh-beam:before {\n content: \"\\f59a\"; }\n\n.fa-laugh-squint:before {\n content: \"\\f59b\"; }\n\n.fa-laugh-wink:before {\n content: \"\\f59c\"; }\n\n.fa-layer-group:before {\n content: \"\\f5fd\"; }\n\n.fa-leaf:before {\n content: \"\\f06c\"; }\n\n.fa-leanpub:before {\n content: \"\\f212\"; }\n\n.fa-lemon:before {\n content: \"\\f094\"; }\n\n.fa-less:before {\n content: \"\\f41d\"; }\n\n.fa-less-than:before {\n content: \"\\f536\"; }\n\n.fa-less-than-equal:before {\n content: \"\\f537\"; }\n\n.fa-level-down-alt:before {\n content: \"\\f3be\"; }\n\n.fa-level-up-alt:before {\n content: \"\\f3bf\"; }\n\n.fa-life-ring:before {\n content: \"\\f1cd\"; }\n\n.fa-lightbulb:before {\n content: \"\\f0eb\"; }\n\n.fa-line:before {\n content: \"\\f3c0\"; }\n\n.fa-link:before {\n content: \"\\f0c1\"; }\n\n.fa-linkedin:before {\n content: \"\\f08c\"; }\n\n.fa-linkedin-in:before {\n content: \"\\f0e1\"; }\n\n.fa-linode:before {\n content: \"\\f2b8\"; }\n\n.fa-linux:before {\n content: \"\\f17c\"; }\n\n.fa-lira-sign:before {\n content: \"\\f195\"; }\n\n.fa-list:before {\n content: \"\\f03a\"; }\n\n.fa-list-alt:before {\n content: \"\\f022\"; }\n\n.fa-list-ol:before {\n content: \"\\f0cb\"; }\n\n.fa-list-ul:before {\n content: \"\\f0ca\"; }\n\n.fa-location-arrow:before {\n content: \"\\f124\"; }\n\n.fa-lock:before {\n content: \"\\f023\"; }\n\n.fa-lock-open:before {\n content: \"\\f3c1\"; }\n\n.fa-long-arrow-alt-down:before {\n content: \"\\f309\"; }\n\n.fa-long-arrow-alt-left:before {\n content: \"\\f30a\"; }\n\n.fa-long-arrow-alt-right:before {\n content: \"\\f30b\"; }\n\n.fa-long-arrow-alt-up:before {\n content: \"\\f30c\"; }\n\n.fa-low-vision:before {\n content: \"\\f2a8\"; }\n\n.fa-luggage-cart:before {\n content: \"\\f59d\"; }\n\n.fa-lyft:before {\n content: \"\\f3c3\"; }\n\n.fa-magento:before {\n content: \"\\f3c4\"; }\n\n.fa-magic:before {\n content: \"\\f0d0\"; }\n\n.fa-magnet:before {\n content: \"\\f076\"; }\n\n.fa-mail-bulk:before {\n content: \"\\f674\"; }\n\n.fa-mailchimp:before {\n content: \"\\f59e\"; }\n\n.fa-male:before {\n content: \"\\f183\"; }\n\n.fa-mandalorian:before {\n content: \"\\f50f\"; }\n\n.fa-map:before {\n content: \"\\f279\"; }\n\n.fa-map-marked:before {\n content: \"\\f59f\"; }\n\n.fa-map-marked-alt:before {\n content: \"\\f5a0\"; }\n\n.fa-map-marker:before {\n content: \"\\f041\"; }\n\n.fa-map-marker-alt:before {\n content: \"\\f3c5\"; }\n\n.fa-map-pin:before {\n content: \"\\f276\"; }\n\n.fa-map-signs:before {\n content: \"\\f277\"; }\n\n.fa-markdown:before {\n content: \"\\f60f\"; }\n\n.fa-marker:before {\n content: \"\\f5a1\"; }\n\n.fa-mars:before {\n content: \"\\f222\"; }\n\n.fa-mars-double:before {\n content: \"\\f227\"; }\n\n.fa-mars-stroke:before {\n content: \"\\f229\"; }\n\n.fa-mars-stroke-h:before {\n content: \"\\f22b\"; }\n\n.fa-mars-stroke-v:before {\n content: \"\\f22a\"; }\n\n.fa-mask:before {\n content: \"\\f6fa\"; }\n\n.fa-mastodon:before {\n content: \"\\f4f6\"; }\n\n.fa-maxcdn:before {\n content: \"\\f136\"; }\n\n.fa-medal:before {\n content: \"\\f5a2\"; }\n\n.fa-medapps:before {\n content: \"\\f3c6\"; }\n\n.fa-medium:before {\n content: \"\\f23a\"; }\n\n.fa-medium-m:before {\n content: \"\\f3c7\"; }\n\n.fa-medkit:before {\n content: \"\\f0fa\"; }\n\n.fa-medrt:before {\n content: \"\\f3c8\"; }\n\n.fa-meetup:before {\n content: \"\\f2e0\"; }\n\n.fa-megaport:before {\n content: \"\\f5a3\"; }\n\n.fa-meh:before {\n content: \"\\f11a\"; }\n\n.fa-meh-blank:before {\n content: \"\\f5a4\"; }\n\n.fa-meh-rolling-eyes:before {\n content: \"\\f5a5\"; }\n\n.fa-memory:before {\n content: \"\\f538\"; }\n\n.fa-menorah:before {\n content: \"\\f676\"; }\n\n.fa-mercury:before {\n content: \"\\f223\"; }\n\n.fa-meteor:before {\n content: \"\\f753\"; }\n\n.fa-microchip:before {\n content: \"\\f2db\"; }\n\n.fa-microphone:before {\n content: \"\\f130\"; }\n\n.fa-microphone-alt:before {\n content: \"\\f3c9\"; }\n\n.fa-microphone-alt-slash:before {\n content: \"\\f539\"; }\n\n.fa-microphone-slash:before {\n content: \"\\f131\"; }\n\n.fa-microscope:before {\n content: \"\\f610\"; }\n\n.fa-microsoft:before {\n content: \"\\f3ca\"; }\n\n.fa-minus:before {\n content: \"\\f068\"; }\n\n.fa-minus-circle:before {\n content: \"\\f056\"; }\n\n.fa-minus-square:before {\n content: \"\\f146\"; }\n\n.fa-mix:before {\n content: \"\\f3cb\"; }\n\n.fa-mixcloud:before {\n content: \"\\f289\"; }\n\n.fa-mizuni:before {\n content: \"\\f3cc\"; }\n\n.fa-mobile:before {\n content: \"\\f10b\"; }\n\n.fa-mobile-alt:before {\n content: \"\\f3cd\"; }\n\n.fa-modx:before {\n content: \"\\f285\"; }\n\n.fa-monero:before {\n content: \"\\f3d0\"; }\n\n.fa-money-bill:before {\n content: \"\\f0d6\"; }\n\n.fa-money-bill-alt:before {\n content: \"\\f3d1\"; }\n\n.fa-money-bill-wave:before {\n content: \"\\f53a\"; }\n\n.fa-money-bill-wave-alt:before {\n content: \"\\f53b\"; }\n\n.fa-money-check:before {\n content: \"\\f53c\"; }\n\n.fa-money-check-alt:before {\n content: \"\\f53d\"; }\n\n.fa-monument:before {\n content: \"\\f5a6\"; }\n\n.fa-moon:before {\n content: \"\\f186\"; }\n\n.fa-mortar-pestle:before {\n content: \"\\f5a7\"; }\n\n.fa-mosque:before {\n content: \"\\f678\"; }\n\n.fa-motorcycle:before {\n content: \"\\f21c\"; }\n\n.fa-mountain:before {\n content: \"\\f6fc\"; }\n\n.fa-mouse-pointer:before {\n content: \"\\f245\"; }\n\n.fa-music:before {\n content: \"\\f001\"; }\n\n.fa-napster:before {\n content: \"\\f3d2\"; }\n\n.fa-neos:before {\n content: \"\\f612\"; }\n\n.fa-network-wired:before {\n content: \"\\f6ff\"; }\n\n.fa-neuter:before {\n content: \"\\f22c\"; }\n\n.fa-newspaper:before {\n content: \"\\f1ea\"; }\n\n.fa-nimblr:before {\n content: \"\\f5a8\"; }\n\n.fa-nintendo-switch:before {\n content: \"\\f418\"; }\n\n.fa-node:before {\n content: \"\\f419\"; }\n\n.fa-node-js:before {\n content: \"\\f3d3\"; }\n\n.fa-not-equal:before {\n content: \"\\f53e\"; }\n\n.fa-notes-medical:before {\n content: \"\\f481\"; }\n\n.fa-npm:before {\n content: \"\\f3d4\"; }\n\n.fa-ns8:before {\n content: \"\\f3d5\"; }\n\n.fa-nutritionix:before {\n content: \"\\f3d6\"; }\n\n.fa-object-group:before {\n content: \"\\f247\"; }\n\n.fa-object-ungroup:before {\n content: \"\\f248\"; }\n\n.fa-odnoklassniki:before {\n content: \"\\f263\"; }\n\n.fa-odnoklassniki-square:before {\n content: \"\\f264\"; }\n\n.fa-oil-can:before {\n content: \"\\f613\"; }\n\n.fa-old-republic:before {\n content: \"\\f510\"; }\n\n.fa-om:before {\n content: \"\\f679\"; }\n\n.fa-opencart:before {\n content: \"\\f23d\"; }\n\n.fa-openid:before {\n content: \"\\f19b\"; }\n\n.fa-opera:before {\n content: \"\\f26a\"; }\n\n.fa-optin-monster:before {\n content: \"\\f23c\"; }\n\n.fa-osi:before {\n content: \"\\f41a\"; }\n\n.fa-otter:before {\n content: \"\\f700\"; }\n\n.fa-outdent:before {\n content: \"\\f03b\"; }\n\n.fa-page4:before {\n content: \"\\f3d7\"; }\n\n.fa-pagelines:before {\n content: \"\\f18c\"; }\n\n.fa-paint-brush:before {\n content: \"\\f1fc\"; }\n\n.fa-paint-roller:before {\n content: \"\\f5aa\"; }\n\n.fa-palette:before {\n content: \"\\f53f\"; }\n\n.fa-palfed:before {\n content: \"\\f3d8\"; }\n\n.fa-pallet:before {\n content: \"\\f482\"; }\n\n.fa-paper-plane:before {\n content: \"\\f1d8\"; }\n\n.fa-paperclip:before {\n content: \"\\f0c6\"; }\n\n.fa-parachute-box:before {\n content: \"\\f4cd\"; }\n\n.fa-paragraph:before {\n content: \"\\f1dd\"; }\n\n.fa-parking:before {\n content: \"\\f540\"; }\n\n.fa-passport:before {\n content: \"\\f5ab\"; }\n\n.fa-pastafarianism:before {\n content: \"\\f67b\"; }\n\n.fa-paste:before {\n content: \"\\f0ea\"; }\n\n.fa-patreon:before {\n content: \"\\f3d9\"; }\n\n.fa-pause:before {\n content: \"\\f04c\"; }\n\n.fa-pause-circle:before {\n content: \"\\f28b\"; }\n\n.fa-paw:before {\n content: \"\\f1b0\"; }\n\n.fa-paypal:before {\n content: \"\\f1ed\"; }\n\n.fa-peace:before {\n content: \"\\f67c\"; }\n\n.fa-pen:before {\n content: \"\\f304\"; }\n\n.fa-pen-alt:before {\n content: \"\\f305\"; }\n\n.fa-pen-fancy:before {\n content: \"\\f5ac\"; }\n\n.fa-pen-nib:before {\n content: \"\\f5ad\"; }\n\n.fa-pen-square:before {\n content: \"\\f14b\"; }\n\n.fa-pencil-alt:before {\n content: \"\\f303\"; }\n\n.fa-pencil-ruler:before {\n content: \"\\f5ae\"; }\n\n.fa-penny-arcade:before {\n content: \"\\f704\"; }\n\n.fa-people-carry:before {\n content: \"\\f4ce\"; }\n\n.fa-percent:before {\n content: \"\\f295\"; }\n\n.fa-percentage:before {\n content: \"\\f541\"; }\n\n.fa-periscope:before {\n content: \"\\f3da\"; }\n\n.fa-person-booth:before {\n content: \"\\f756\"; }\n\n.fa-phabricator:before {\n content: \"\\f3db\"; }\n\n.fa-phoenix-framework:before {\n content: \"\\f3dc\"; }\n\n.fa-phoenix-squadron:before {\n content: \"\\f511\"; }\n\n.fa-phone:before {\n content: \"\\f095\"; }\n\n.fa-phone-slash:before {\n content: \"\\f3dd\"; }\n\n.fa-phone-square:before {\n content: \"\\f098\"; }\n\n.fa-phone-volume:before {\n content: \"\\f2a0\"; }\n\n.fa-php:before {\n content: \"\\f457\"; }\n\n.fa-pied-piper:before {\n content: \"\\f2ae\"; }\n\n.fa-pied-piper-alt:before {\n content: \"\\f1a8\"; }\n\n.fa-pied-piper-hat:before {\n content: \"\\f4e5\"; }\n\n.fa-pied-piper-pp:before {\n content: \"\\f1a7\"; }\n\n.fa-piggy-bank:before {\n content: \"\\f4d3\"; }\n\n.fa-pills:before {\n content: \"\\f484\"; }\n\n.fa-pinterest:before {\n content: \"\\f0d2\"; }\n\n.fa-pinterest-p:before {\n content: \"\\f231\"; }\n\n.fa-pinterest-square:before {\n content: \"\\f0d3\"; }\n\n.fa-place-of-worship:before {\n content: \"\\f67f\"; }\n\n.fa-plane:before {\n content: \"\\f072\"; }\n\n.fa-plane-arrival:before {\n content: \"\\f5af\"; }\n\n.fa-plane-departure:before {\n content: \"\\f5b0\"; }\n\n.fa-play:before {\n content: \"\\f04b\"; }\n\n.fa-play-circle:before {\n content: \"\\f144\"; }\n\n.fa-playstation:before {\n content: \"\\f3df\"; }\n\n.fa-plug:before {\n content: \"\\f1e6\"; }\n\n.fa-plus:before {\n content: \"\\f067\"; }\n\n.fa-plus-circle:before {\n content: \"\\f055\"; }\n\n.fa-plus-square:before {\n content: \"\\f0fe\"; }\n\n.fa-podcast:before {\n content: \"\\f2ce\"; }\n\n.fa-poll:before {\n content: \"\\f681\"; }\n\n.fa-poll-h:before {\n content: \"\\f682\"; }\n\n.fa-poo:before {\n content: \"\\f2fe\"; }\n\n.fa-poo-storm:before {\n content: \"\\f75a\"; }\n\n.fa-poop:before {\n content: \"\\f619\"; }\n\n.fa-portrait:before {\n content: \"\\f3e0\"; }\n\n.fa-pound-sign:before {\n content: \"\\f154\"; }\n\n.fa-power-off:before {\n content: \"\\f011\"; }\n\n.fa-pray:before {\n content: \"\\f683\"; }\n\n.fa-praying-hands:before {\n content: \"\\f684\"; }\n\n.fa-prescription:before {\n content: \"\\f5b1\"; }\n\n.fa-prescription-bottle:before {\n content: \"\\f485\"; }\n\n.fa-prescription-bottle-alt:before {\n content: \"\\f486\"; }\n\n.fa-print:before {\n content: \"\\f02f\"; }\n\n.fa-procedures:before {\n content: \"\\f487\"; }\n\n.fa-product-hunt:before {\n content: \"\\f288\"; }\n\n.fa-project-diagram:before {\n content: \"\\f542\"; }\n\n.fa-pushed:before {\n content: \"\\f3e1\"; }\n\n.fa-puzzle-piece:before {\n content: \"\\f12e\"; }\n\n.fa-python:before {\n content: \"\\f3e2\"; }\n\n.fa-qq:before {\n content: \"\\f1d6\"; }\n\n.fa-qrcode:before {\n content: \"\\f029\"; }\n\n.fa-question:before {\n content: \"\\f128\"; }\n\n.fa-question-circle:before {\n content: \"\\f059\"; }\n\n.fa-quidditch:before {\n content: \"\\f458\"; }\n\n.fa-quinscape:before {\n content: \"\\f459\"; }\n\n.fa-quora:before {\n content: \"\\f2c4\"; }\n\n.fa-quote-left:before {\n content: \"\\f10d\"; }\n\n.fa-quote-right:before {\n content: \"\\f10e\"; }\n\n.fa-quran:before {\n content: \"\\f687\"; }\n\n.fa-r-project:before {\n content: \"\\f4f7\"; }\n\n.fa-rainbow:before {\n content: \"\\f75b\"; }\n\n.fa-random:before {\n content: \"\\f074\"; }\n\n.fa-ravelry:before {\n content: \"\\f2d9\"; }\n\n.fa-react:before {\n content: \"\\f41b\"; }\n\n.fa-reacteurope:before {\n content: \"\\f75d\"; }\n\n.fa-readme:before {\n content: \"\\f4d5\"; }\n\n.fa-rebel:before {\n content: \"\\f1d0\"; }\n\n.fa-receipt:before {\n content: \"\\f543\"; }\n\n.fa-recycle:before {\n content: \"\\f1b8\"; }\n\n.fa-red-river:before {\n content: \"\\f3e3\"; }\n\n.fa-reddit:before {\n content: \"\\f1a1\"; }\n\n.fa-reddit-alien:before {\n content: \"\\f281\"; }\n\n.fa-reddit-square:before {\n content: \"\\f1a2\"; }\n\n.fa-redo:before {\n content: \"\\f01e\"; }\n\n.fa-redo-alt:before {\n content: \"\\f2f9\"; }\n\n.fa-registered:before {\n content: \"\\f25d\"; }\n\n.fa-renren:before {\n content: \"\\f18b\"; }\n\n.fa-reply:before {\n content: \"\\f3e5\"; }\n\n.fa-reply-all:before {\n content: \"\\f122\"; }\n\n.fa-replyd:before {\n content: \"\\f3e6\"; }\n\n.fa-republican:before {\n content: \"\\f75e\"; }\n\n.fa-researchgate:before {\n content: \"\\f4f8\"; }\n\n.fa-resolving:before {\n content: \"\\f3e7\"; }\n\n.fa-retweet:before {\n content: \"\\f079\"; }\n\n.fa-rev:before {\n content: \"\\f5b2\"; }\n\n.fa-ribbon:before {\n content: \"\\f4d6\"; }\n\n.fa-ring:before {\n content: \"\\f70b\"; }\n\n.fa-road:before {\n content: \"\\f018\"; }\n\n.fa-robot:before {\n content: \"\\f544\"; }\n\n.fa-rocket:before {\n content: \"\\f135\"; }\n\n.fa-rocketchat:before {\n content: \"\\f3e8\"; }\n\n.fa-rockrms:before {\n content: \"\\f3e9\"; }\n\n.fa-route:before {\n content: \"\\f4d7\"; }\n\n.fa-rss:before {\n content: \"\\f09e\"; }\n\n.fa-rss-square:before {\n content: \"\\f143\"; }\n\n.fa-ruble-sign:before {\n content: \"\\f158\"; }\n\n.fa-ruler:before {\n content: \"\\f545\"; }\n\n.fa-ruler-combined:before {\n content: \"\\f546\"; }\n\n.fa-ruler-horizontal:before {\n content: \"\\f547\"; }\n\n.fa-ruler-vertical:before {\n content: \"\\f548\"; }\n\n.fa-running:before {\n content: \"\\f70c\"; }\n\n.fa-rupee-sign:before {\n content: \"\\f156\"; }\n\n.fa-sad-cry:before {\n content: \"\\f5b3\"; }\n\n.fa-sad-tear:before {\n content: \"\\f5b4\"; }\n\n.fa-safari:before {\n content: \"\\f267\"; }\n\n.fa-sass:before {\n content: \"\\f41e\"; }\n\n.fa-save:before {\n content: \"\\f0c7\"; }\n\n.fa-schlix:before {\n content: \"\\f3ea\"; }\n\n.fa-school:before {\n content: \"\\f549\"; }\n\n.fa-screwdriver:before {\n content: \"\\f54a\"; }\n\n.fa-scribd:before {\n content: \"\\f28a\"; }\n\n.fa-scroll:before {\n content: \"\\f70e\"; }\n\n.fa-search:before {\n content: \"\\f002\"; }\n\n.fa-search-dollar:before {\n content: \"\\f688\"; }\n\n.fa-search-location:before {\n content: \"\\f689\"; }\n\n.fa-search-minus:before {\n content: \"\\f010\"; }\n\n.fa-search-plus:before {\n content: \"\\f00e\"; }\n\n.fa-searchengin:before {\n content: \"\\f3eb\"; }\n\n.fa-seedling:before {\n content: \"\\f4d8\"; }\n\n.fa-sellcast:before {\n content: \"\\f2da\"; }\n\n.fa-sellsy:before {\n content: \"\\f213\"; }\n\n.fa-server:before {\n content: \"\\f233\"; }\n\n.fa-servicestack:before {\n content: \"\\f3ec\"; }\n\n.fa-shapes:before {\n content: \"\\f61f\"; }\n\n.fa-share:before {\n content: \"\\f064\"; }\n\n.fa-share-alt:before {\n content: \"\\f1e0\"; }\n\n.fa-share-alt-square:before {\n content: \"\\f1e1\"; }\n\n.fa-share-square:before {\n content: \"\\f14d\"; }\n\n.fa-shekel-sign:before {\n content: \"\\f20b\"; }\n\n.fa-shield-alt:before {\n content: \"\\f3ed\"; }\n\n.fa-ship:before {\n content: \"\\f21a\"; }\n\n.fa-shipping-fast:before {\n content: \"\\f48b\"; }\n\n.fa-shirtsinbulk:before {\n content: \"\\f214\"; }\n\n.fa-shoe-prints:before {\n content: \"\\f54b\"; }\n\n.fa-shopping-bag:before {\n content: \"\\f290\"; }\n\n.fa-shopping-basket:before {\n content: \"\\f291\"; }\n\n.fa-shopping-cart:before {\n content: \"\\f07a\"; }\n\n.fa-shopware:before {\n content: \"\\f5b5\"; }\n\n.fa-shower:before {\n content: \"\\f2cc\"; }\n\n.fa-shuttle-van:before {\n content: \"\\f5b6\"; }\n\n.fa-sign:before {\n content: \"\\f4d9\"; }\n\n.fa-sign-in-alt:before {\n content: \"\\f2f6\"; }\n\n.fa-sign-language:before {\n content: \"\\f2a7\"; }\n\n.fa-sign-out-alt:before {\n content: \"\\f2f5\"; }\n\n.fa-signal:before {\n content: \"\\f012\"; }\n\n.fa-signature:before {\n content: \"\\f5b7\"; }\n\n.fa-simplybuilt:before {\n content: \"\\f215\"; }\n\n.fa-sistrix:before {\n content: \"\\f3ee\"; }\n\n.fa-sitemap:before {\n content: \"\\f0e8\"; }\n\n.fa-sith:before {\n content: \"\\f512\"; }\n\n.fa-skull:before {\n content: \"\\f54c\"; }\n\n.fa-skull-crossbones:before {\n content: \"\\f714\"; }\n\n.fa-skyatlas:before {\n content: \"\\f216\"; }\n\n.fa-skype:before {\n content: \"\\f17e\"; }\n\n.fa-slack:before {\n content: \"\\f198\"; }\n\n.fa-slack-hash:before {\n content: \"\\f3ef\"; }\n\n.fa-slash:before {\n content: \"\\f715\"; }\n\n.fa-sliders-h:before {\n content: \"\\f1de\"; }\n\n.fa-slideshare:before {\n content: \"\\f1e7\"; }\n\n.fa-smile:before {\n content: \"\\f118\"; }\n\n.fa-smile-beam:before {\n content: \"\\f5b8\"; }\n\n.fa-smile-wink:before {\n content: \"\\f4da\"; }\n\n.fa-smog:before {\n content: \"\\f75f\"; }\n\n.fa-smoking:before {\n content: \"\\f48d\"; }\n\n.fa-smoking-ban:before {\n content: \"\\f54d\"; }\n\n.fa-snapchat:before {\n content: \"\\f2ab\"; }\n\n.fa-snapchat-ghost:before {\n content: \"\\f2ac\"; }\n\n.fa-snapchat-square:before {\n content: \"\\f2ad\"; }\n\n.fa-snowflake:before {\n content: \"\\f2dc\"; }\n\n.fa-socks:before {\n content: \"\\f696\"; }\n\n.fa-solar-panel:before {\n content: \"\\f5ba\"; }\n\n.fa-sort:before {\n content: \"\\f0dc\"; }\n\n.fa-sort-alpha-down:before {\n content: \"\\f15d\"; }\n\n.fa-sort-alpha-up:before {\n content: \"\\f15e\"; }\n\n.fa-sort-amount-down:before {\n content: \"\\f160\"; }\n\n.fa-sort-amount-up:before {\n content: \"\\f161\"; }\n\n.fa-sort-down:before {\n content: \"\\f0dd\"; }\n\n.fa-sort-numeric-down:before {\n content: \"\\f162\"; }\n\n.fa-sort-numeric-up:before {\n content: \"\\f163\"; }\n\n.fa-sort-up:before {\n content: \"\\f0de\"; }\n\n.fa-soundcloud:before {\n content: \"\\f1be\"; }\n\n.fa-spa:before {\n content: \"\\f5bb\"; }\n\n.fa-space-shuttle:before {\n content: \"\\f197\"; }\n\n.fa-speakap:before {\n content: \"\\f3f3\"; }\n\n.fa-spider:before {\n content: \"\\f717\"; }\n\n.fa-spinner:before {\n content: \"\\f110\"; }\n\n.fa-splotch:before {\n content: \"\\f5bc\"; }\n\n.fa-spotify:before {\n content: \"\\f1bc\"; }\n\n.fa-spray-can:before {\n content: \"\\f5bd\"; }\n\n.fa-square:before {\n content: \"\\f0c8\"; }\n\n.fa-square-full:before {\n content: \"\\f45c\"; }\n\n.fa-square-root-alt:before {\n content: \"\\f698\"; }\n\n.fa-squarespace:before {\n content: \"\\f5be\"; }\n\n.fa-stack-exchange:before {\n content: \"\\f18d\"; }\n\n.fa-stack-overflow:before {\n content: \"\\f16c\"; }\n\n.fa-stamp:before {\n content: \"\\f5bf\"; }\n\n.fa-star:before {\n content: \"\\f005\"; }\n\n.fa-star-and-crescent:before {\n content: \"\\f699\"; }\n\n.fa-star-half:before {\n content: \"\\f089\"; }\n\n.fa-star-half-alt:before {\n content: \"\\f5c0\"; }\n\n.fa-star-of-david:before {\n content: \"\\f69a\"; }\n\n.fa-star-of-life:before {\n content: \"\\f621\"; }\n\n.fa-staylinked:before {\n content: \"\\f3f5\"; }\n\n.fa-steam:before {\n content: \"\\f1b6\"; }\n\n.fa-steam-square:before {\n content: \"\\f1b7\"; }\n\n.fa-steam-symbol:before {\n content: \"\\f3f6\"; }\n\n.fa-step-backward:before {\n content: \"\\f048\"; }\n\n.fa-step-forward:before {\n content: \"\\f051\"; }\n\n.fa-stethoscope:before {\n content: \"\\f0f1\"; }\n\n.fa-sticker-mule:before {\n content: \"\\f3f7\"; }\n\n.fa-sticky-note:before {\n content: \"\\f249\"; }\n\n.fa-stop:before {\n content: \"\\f04d\"; }\n\n.fa-stop-circle:before {\n content: \"\\f28d\"; }\n\n.fa-stopwatch:before {\n content: \"\\f2f2\"; }\n\n.fa-store:before {\n content: \"\\f54e\"; }\n\n.fa-store-alt:before {\n content: \"\\f54f\"; }\n\n.fa-strava:before {\n content: \"\\f428\"; }\n\n.fa-stream:before {\n content: \"\\f550\"; }\n\n.fa-street-view:before {\n content: \"\\f21d\"; }\n\n.fa-strikethrough:before {\n content: \"\\f0cc\"; }\n\n.fa-stripe:before {\n content: \"\\f429\"; }\n\n.fa-stripe-s:before {\n content: \"\\f42a\"; }\n\n.fa-stroopwafel:before {\n content: \"\\f551\"; }\n\n.fa-studiovinari:before {\n content: \"\\f3f8\"; }\n\n.fa-stumbleupon:before {\n content: \"\\f1a4\"; }\n\n.fa-stumbleupon-circle:before {\n content: \"\\f1a3\"; }\n\n.fa-subscript:before {\n content: \"\\f12c\"; }\n\n.fa-subway:before {\n content: \"\\f239\"; }\n\n.fa-suitcase:before {\n content: \"\\f0f2\"; }\n\n.fa-suitcase-rolling:before {\n content: \"\\f5c1\"; }\n\n.fa-sun:before {\n content: \"\\f185\"; }\n\n.fa-superpowers:before {\n content: \"\\f2dd\"; }\n\n.fa-superscript:before {\n content: \"\\f12b\"; }\n\n.fa-supple:before {\n content: \"\\f3f9\"; }\n\n.fa-surprise:before {\n content: \"\\f5c2\"; }\n\n.fa-swatchbook:before {\n content: \"\\f5c3\"; }\n\n.fa-swimmer:before {\n content: \"\\f5c4\"; }\n\n.fa-swimming-pool:before {\n content: \"\\f5c5\"; }\n\n.fa-synagogue:before {\n content: \"\\f69b\"; }\n\n.fa-sync:before {\n content: \"\\f021\"; }\n\n.fa-sync-alt:before {\n content: \"\\f2f1\"; }\n\n.fa-syringe:before {\n content: \"\\f48e\"; }\n\n.fa-table:before {\n content: \"\\f0ce\"; }\n\n.fa-table-tennis:before {\n content: \"\\f45d\"; }\n\n.fa-tablet:before {\n content: \"\\f10a\"; }\n\n.fa-tablet-alt:before {\n content: \"\\f3fa\"; }\n\n.fa-tablets:before {\n content: \"\\f490\"; }\n\n.fa-tachometer-alt:before {\n content: \"\\f3fd\"; }\n\n.fa-tag:before {\n content: \"\\f02b\"; }\n\n.fa-tags:before {\n content: \"\\f02c\"; }\n\n.fa-tape:before {\n content: \"\\f4db\"; }\n\n.fa-tasks:before {\n content: \"\\f0ae\"; }\n\n.fa-taxi:before {\n content: \"\\f1ba\"; }\n\n.fa-teamspeak:before {\n content: \"\\f4f9\"; }\n\n.fa-teeth:before {\n content: \"\\f62e\"; }\n\n.fa-teeth-open:before {\n content: \"\\f62f\"; }\n\n.fa-telegram:before {\n content: \"\\f2c6\"; }\n\n.fa-telegram-plane:before {\n content: \"\\f3fe\"; }\n\n.fa-temperature-high:before {\n content: \"\\f769\"; }\n\n.fa-temperature-low:before {\n content: \"\\f76b\"; }\n\n.fa-tencent-weibo:before {\n content: \"\\f1d5\"; }\n\n.fa-terminal:before {\n content: \"\\f120\"; }\n\n.fa-text-height:before {\n content: \"\\f034\"; }\n\n.fa-text-width:before {\n content: \"\\f035\"; }\n\n.fa-th:before {\n content: \"\\f00a\"; }\n\n.fa-th-large:before {\n content: \"\\f009\"; }\n\n.fa-th-list:before {\n content: \"\\f00b\"; }\n\n.fa-the-red-yeti:before {\n content: \"\\f69d\"; }\n\n.fa-theater-masks:before {\n content: \"\\f630\"; }\n\n.fa-themeco:before {\n content: \"\\f5c6\"; }\n\n.fa-themeisle:before {\n content: \"\\f2b2\"; }\n\n.fa-thermometer:before {\n content: \"\\f491\"; }\n\n.fa-thermometer-empty:before {\n content: \"\\f2cb\"; }\n\n.fa-thermometer-full:before {\n content: \"\\f2c7\"; }\n\n.fa-thermometer-half:before {\n content: \"\\f2c9\"; }\n\n.fa-thermometer-quarter:before {\n content: \"\\f2ca\"; }\n\n.fa-thermometer-three-quarters:before {\n content: \"\\f2c8\"; }\n\n.fa-think-peaks:before {\n content: \"\\f731\"; }\n\n.fa-thumbs-down:before {\n content: \"\\f165\"; }\n\n.fa-thumbs-up:before {\n content: \"\\f164\"; }\n\n.fa-thumbtack:before {\n content: \"\\f08d\"; }\n\n.fa-ticket-alt:before {\n content: \"\\f3ff\"; }\n\n.fa-times:before {\n content: \"\\f00d\"; }\n\n.fa-times-circle:before {\n content: \"\\f057\"; }\n\n.fa-tint:before {\n content: \"\\f043\"; }\n\n.fa-tint-slash:before {\n content: \"\\f5c7\"; }\n\n.fa-tired:before {\n content: \"\\f5c8\"; }\n\n.fa-toggle-off:before {\n content: \"\\f204\"; }\n\n.fa-toggle-on:before {\n content: \"\\f205\"; }\n\n.fa-toilet-paper:before {\n content: \"\\f71e\"; }\n\n.fa-toolbox:before {\n content: \"\\f552\"; }\n\n.fa-tooth:before {\n content: \"\\f5c9\"; }\n\n.fa-torah:before {\n content: \"\\f6a0\"; }\n\n.fa-torii-gate:before {\n content: \"\\f6a1\"; }\n\n.fa-tractor:before {\n content: \"\\f722\"; }\n\n.fa-trade-federation:before {\n content: \"\\f513\"; }\n\n.fa-trademark:before {\n content: \"\\f25c\"; }\n\n.fa-traffic-light:before {\n content: \"\\f637\"; }\n\n.fa-train:before {\n content: \"\\f238\"; }\n\n.fa-transgender:before {\n content: \"\\f224\"; }\n\n.fa-transgender-alt:before {\n content: \"\\f225\"; }\n\n.fa-trash:before {\n content: \"\\f1f8\"; }\n\n.fa-trash-alt:before {\n content: \"\\f2ed\"; }\n\n.fa-tree:before {\n content: \"\\f1bb\"; }\n\n.fa-trello:before {\n content: \"\\f181\"; }\n\n.fa-tripadvisor:before {\n content: \"\\f262\"; }\n\n.fa-trophy:before {\n content: \"\\f091\"; }\n\n.fa-truck:before {\n content: \"\\f0d1\"; }\n\n.fa-truck-loading:before {\n content: \"\\f4de\"; }\n\n.fa-truck-monster:before {\n content: \"\\f63b\"; }\n\n.fa-truck-moving:before {\n content: \"\\f4df\"; }\n\n.fa-truck-pickup:before {\n content: \"\\f63c\"; }\n\n.fa-tshirt:before {\n content: \"\\f553\"; }\n\n.fa-tty:before {\n content: \"\\f1e4\"; }\n\n.fa-tumblr:before {\n content: \"\\f173\"; }\n\n.fa-tumblr-square:before {\n content: \"\\f174\"; }\n\n.fa-tv:before {\n content: \"\\f26c\"; }\n\n.fa-twitch:before {\n content: \"\\f1e8\"; }\n\n.fa-twitter:before {\n content: \"\\f099\"; }\n\n.fa-twitter-square:before {\n content: \"\\f081\"; }\n\n.fa-typo3:before {\n content: \"\\f42b\"; }\n\n.fa-uber:before {\n content: \"\\f402\"; }\n\n.fa-uikit:before {\n content: \"\\f403\"; }\n\n.fa-umbrella:before {\n content: \"\\f0e9\"; }\n\n.fa-umbrella-beach:before {\n content: \"\\f5ca\"; }\n\n.fa-underline:before {\n content: \"\\f0cd\"; }\n\n.fa-undo:before {\n content: \"\\f0e2\"; }\n\n.fa-undo-alt:before {\n content: \"\\f2ea\"; }\n\n.fa-uniregistry:before {\n content: \"\\f404\"; }\n\n.fa-universal-access:before {\n content: \"\\f29a\"; }\n\n.fa-university:before {\n content: \"\\f19c\"; }\n\n.fa-unlink:before {\n content: \"\\f127\"; }\n\n.fa-unlock:before {\n content: \"\\f09c\"; }\n\n.fa-unlock-alt:before {\n content: \"\\f13e\"; }\n\n.fa-untappd:before {\n content: \"\\f405\"; }\n\n.fa-upload:before {\n content: \"\\f093\"; }\n\n.fa-usb:before {\n content: \"\\f287\"; }\n\n.fa-user:before {\n content: \"\\f007\"; }\n\n.fa-user-alt:before {\n content: \"\\f406\"; }\n\n.fa-user-alt-slash:before {\n content: \"\\f4fa\"; }\n\n.fa-user-astronaut:before {\n content: \"\\f4fb\"; }\n\n.fa-user-check:before {\n content: \"\\f4fc\"; }\n\n.fa-user-circle:before {\n content: \"\\f2bd\"; }\n\n.fa-user-clock:before {\n content: \"\\f4fd\"; }\n\n.fa-user-cog:before {\n content: \"\\f4fe\"; }\n\n.fa-user-edit:before {\n content: \"\\f4ff\"; }\n\n.fa-user-friends:before {\n content: \"\\f500\"; }\n\n.fa-user-graduate:before {\n content: \"\\f501\"; }\n\n.fa-user-injured:before {\n content: \"\\f728\"; }\n\n.fa-user-lock:before {\n content: \"\\f502\"; }\n\n.fa-user-md:before {\n content: \"\\f0f0\"; }\n\n.fa-user-minus:before {\n content: \"\\f503\"; }\n\n.fa-user-ninja:before {\n content: \"\\f504\"; }\n\n.fa-user-plus:before {\n content: \"\\f234\"; }\n\n.fa-user-secret:before {\n content: \"\\f21b\"; }\n\n.fa-user-shield:before {\n content: \"\\f505\"; }\n\n.fa-user-slash:before {\n content: \"\\f506\"; }\n\n.fa-user-tag:before {\n content: \"\\f507\"; }\n\n.fa-user-tie:before {\n content: \"\\f508\"; }\n\n.fa-user-times:before {\n content: \"\\f235\"; }\n\n.fa-users:before {\n content: \"\\f0c0\"; }\n\n.fa-users-cog:before {\n content: \"\\f509\"; }\n\n.fa-ussunnah:before {\n content: \"\\f407\"; }\n\n.fa-utensil-spoon:before {\n content: \"\\f2e5\"; }\n\n.fa-utensils:before {\n content: \"\\f2e7\"; }\n\n.fa-vaadin:before {\n content: \"\\f408\"; }\n\n.fa-vector-square:before {\n content: \"\\f5cb\"; }\n\n.fa-venus:before {\n content: \"\\f221\"; }\n\n.fa-venus-double:before {\n content: \"\\f226\"; }\n\n.fa-venus-mars:before {\n content: \"\\f228\"; }\n\n.fa-viacoin:before {\n content: \"\\f237\"; }\n\n.fa-viadeo:before {\n content: \"\\f2a9\"; }\n\n.fa-viadeo-square:before {\n content: \"\\f2aa\"; }\n\n.fa-vial:before {\n content: \"\\f492\"; }\n\n.fa-vials:before {\n content: \"\\f493\"; }\n\n.fa-viber:before {\n content: \"\\f409\"; }\n\n.fa-video:before {\n content: \"\\f03d\"; }\n\n.fa-video-slash:before {\n content: \"\\f4e2\"; }\n\n.fa-vihara:before {\n content: \"\\f6a7\"; }\n\n.fa-vimeo:before {\n content: \"\\f40a\"; }\n\n.fa-vimeo-square:before {\n content: \"\\f194\"; }\n\n.fa-vimeo-v:before {\n content: \"\\f27d\"; }\n\n.fa-vine:before {\n content: \"\\f1ca\"; }\n\n.fa-vk:before {\n content: \"\\f189\"; }\n\n.fa-vnv:before {\n content: \"\\f40b\"; }\n\n.fa-volleyball-ball:before {\n content: \"\\f45f\"; }\n\n.fa-volume-down:before {\n content: \"\\f027\"; }\n\n.fa-volume-mute:before {\n content: \"\\f6a9\"; }\n\n.fa-volume-off:before {\n content: \"\\f026\"; }\n\n.fa-volume-up:before {\n content: \"\\f028\"; }\n\n.fa-vote-yea:before {\n content: \"\\f772\"; }\n\n.fa-vr-cardboard:before {\n content: \"\\f729\"; }\n\n.fa-vuejs:before {\n content: \"\\f41f\"; }\n\n.fa-walking:before {\n content: \"\\f554\"; }\n\n.fa-wallet:before {\n content: \"\\f555\"; }\n\n.fa-warehouse:before {\n content: \"\\f494\"; }\n\n.fa-water:before {\n content: \"\\f773\"; }\n\n.fa-weebly:before {\n content: \"\\f5cc\"; }\n\n.fa-weibo:before {\n content: \"\\f18a\"; }\n\n.fa-weight:before {\n content: \"\\f496\"; }\n\n.fa-weight-hanging:before {\n content: \"\\f5cd\"; }\n\n.fa-weixin:before {\n content: \"\\f1d7\"; }\n\n.fa-whatsapp:before {\n content: \"\\f232\"; }\n\n.fa-whatsapp-square:before {\n content: \"\\f40c\"; }\n\n.fa-wheelchair:before {\n content: \"\\f193\"; }\n\n.fa-whmcs:before {\n content: \"\\f40d\"; }\n\n.fa-wifi:before {\n content: \"\\f1eb\"; }\n\n.fa-wikipedia-w:before {\n content: \"\\f266\"; }\n\n.fa-wind:before {\n content: \"\\f72e\"; }\n\n.fa-window-close:before {\n content: \"\\f410\"; }\n\n.fa-window-maximize:before {\n content: \"\\f2d0\"; }\n\n.fa-window-minimize:before {\n content: \"\\f2d1\"; }\n\n.fa-window-restore:before {\n content: \"\\f2d2\"; }\n\n.fa-windows:before {\n content: \"\\f17a\"; }\n\n.fa-wine-bottle:before {\n content: \"\\f72f\"; }\n\n.fa-wine-glass:before {\n content: \"\\f4e3\"; }\n\n.fa-wine-glass-alt:before {\n content: \"\\f5ce\"; }\n\n.fa-wix:before {\n content: \"\\f5cf\"; }\n\n.fa-wizards-of-the-coast:before {\n content: \"\\f730\"; }\n\n.fa-wolf-pack-battalion:before {\n content: \"\\f514\"; }\n\n.fa-won-sign:before {\n content: \"\\f159\"; }\n\n.fa-wordpress:before {\n content: \"\\f19a\"; }\n\n.fa-wordpress-simple:before {\n content: \"\\f411\"; }\n\n.fa-wpbeginner:before {\n content: \"\\f297\"; }\n\n.fa-wpexplorer:before {\n content: \"\\f2de\"; }\n\n.fa-wpforms:before {\n content: \"\\f298\"; }\n\n.fa-wpressr:before {\n content: \"\\f3e4\"; }\n\n.fa-wrench:before {\n content: \"\\f0ad\"; }\n\n.fa-x-ray:before {\n content: \"\\f497\"; }\n\n.fa-xbox:before {\n content: \"\\f412\"; }\n\n.fa-xing:before {\n content: \"\\f168\"; }\n\n.fa-xing-square:before {\n content: \"\\f169\"; }\n\n.fa-y-combinator:before {\n content: \"\\f23b\"; }\n\n.fa-yahoo:before {\n content: \"\\f19e\"; }\n\n.fa-yandex:before {\n content: \"\\f413\"; }\n\n.fa-yandex-international:before {\n content: \"\\f414\"; }\n\n.fa-yelp:before {\n content: \"\\f1e9\"; }\n\n.fa-yen-sign:before {\n content: \"\\f157\"; }\n\n.fa-yin-yang:before {\n content: \"\\f6ad\"; }\n\n.fa-yoast:before {\n content: \"\\f2b1\"; }\n\n.fa-youtube:before {\n content: \"\\f167\"; }\n\n.fa-youtube-square:before {\n content: \"\\f431\"; }\n\n.fa-zhihu:before {\n content: \"\\f63f\"; }\n\n.sr-only {\n border: 0;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px; }\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n clip: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n position: static;\n width: auto; }\n@font-face {\n font-family: 'Font Awesome 5 Brands';\n font-style: normal;\n font-weight: normal;\n src: url(\"../fonts/fa-brands-400.eot\");\n src: url(\"../fonts/fa-brands-400.eot?#iefix\") format(\"embedded-opentype\"), url(\"../fonts/fa-brands-400.woff2\") format(\"woff2\"), url(\"../fonts/fa-brands-400.woff\") format(\"woff\"), url(\"../fonts/fa-brands-400.ttf\") format(\"truetype\"), url(\"../fonts/fa-brands-400.svg#fontawesome\") format(\"svg\"); }\n\n.fab {\n font-family: 'Font Awesome 5 Brands'; }\n@font-face {\n font-family: 'Font Awesome 5 Free';\n font-style: normal;\n font-weight: 400;\n src: url(\"../fonts/fa-regular-400.eot\");\n src: url(\"../fonts/fa-regular-400.eot?#iefix\") format(\"embedded-opentype\"), url(\"../fonts/fa-regular-400.woff2\") format(\"woff2\"), url(\"../fonts/fa-regular-400.woff\") format(\"woff\"), url(\"../fonts/fa-regular-400.ttf\") format(\"truetype\"), url(\"../fonts/fa-regular-400.svg#fontawesome\") format(\"svg\"); }\n\n.far {\n font-family: 'Font Awesome 5 Free';\n font-weight: 400; }\n@font-face {\n font-family: 'Font Awesome 5 Free';\n font-style: normal;\n font-weight: 900;\n src: url(\"../fonts/fa-solid-900.eot\");\n src: url(\"../fonts/fa-solid-900.eot?#iefix\") format(\"embedded-opentype\"), url(\"../fonts/fa-solid-900.woff2\") format(\"woff2\"), url(\"../fonts/fa-solid-900.woff\") format(\"woff\"), url(\"../fonts/fa-solid-900.ttf\") format(\"truetype\"), url(\"../fonts/fa-solid-900.svg#fontawesome\") format(\"svg\"); }\n\n.fa,\n.fas {\n font-family: 'Font Awesome 5 Free';\n font-weight: 900; }\n",".tykon::before {\n font-family: tykon, sans-serif !important;\n font-style: normal !important;\n font-weight: normal !important;\n font-variant: normal !important;\n text-transform: none !important;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.tykon-arrowdown::before {\n content: \"\\61\";\n}\n\n.tykon-arrowleft::before {\n content: \"\\62\";\n}\n\n.tykon-arrowright::before {\n content: \"\\63\";\n}\n\n.tykon-arrowup::before {\n content: \"\\64\";\n}\n\n.tykon-doublearrowdown::before {\n content: \"\\65\";\n}\n\n.tykon-filter::before {\n content: \"\\66\";\n}\n\n.tykon-graph1::before {\n content: \"\\67\";\n}\n\n.tykon-graph2::before {\n content: \"\\68\";\n}\n\n.tykon-label::before {\n content: \"\\69\";\n}\n\n.tykon-reload::before {\n content: \"\\6a\";\n}\n\n.tykon-select::before {\n content: \"\\6b\";\n}\n\n.tykon-target::before {\n content: \"\\6c\";\n}\n\n.tykon-undo::before {\n content: \"\\6d\";\n}\n\n.tykon-deployment::before {\n content: \"\\6e\";\n}\n\n.tykon-team::before {\n content: \"\\6f\";\n}\n\n.tykon-overview::before {\n content: \"\\70\";\n}\n\n.tykon-loadout::before {\n content: \"\\71\";\n}\n\n.tykon-entitlement::before {\n content: \"\\72\";\n}\n\n.tykon-users::before {\n content: \"\\73\";\n}\n\n.tykon-arrowsort::before {\n content: \"\\57\";\n}\n\n.tykon-check::before {\n content: \"\\56\";\n}\n\n.tykon-copy::before {\n content: \"\\43\";\n}\n\n.tykon-delete::before {\n content: \"\\55\";\n}\n\n.tykon-download::before {\n content: \"\\4c\";\n}\n\n.tykon-draft::before {\n content: \"\\44\";\n}\n\n.tykon-edit::before {\n content: \"\\45\";\n}\n\n.tykon-graphq2::before {\n content: \"\\68\";\n}\n\n.tykon-help::before {\n content: \"\\3f\";\n}\n\n.tykon-link::before {\n content: \"\\52\";\n}\n\n.tykon-lock1::before {\n content: \"\\59\";\n}\n\n.tykon-lock2::before {\n content: \"\\5A\";\n}\n\n.tykon-notifications::before {\n content: \"\\4E\";\n}\n\n.tykon-plus::before {\n content: \"\\2B\";\n}\n\n.tykon-profile::before {\n content: \"\\50\";\n}\n\n.tykon-search::before {\n content: \"\\4F\";\n}\n\n.tykon-settings::before {\n content: \"\\53\";\n}\n\n.tykon-warning::before {\n content: \"\\21\";\n}\n\n.tykon-x::before {\n content: \"\\58\";\n}\n\n.tykon-waiting::before {\n content: \"\\54\";\n}\n\n.tykon-fullscreen::before {\n content: \"\\e000\";\n}\n\n.tykon-fullscreen-exit::before {\n content: \"\\e001\";\n}\n\n.tykon-time::before {\n content: \"\\74\";\n}\n","h1, h2, h3, h4, h5, h6 {\n margin-block-end: var(--headings-margin-bottom);\n font-family: var(--headings-font-family);\n font-weight: var(--headings-font-weight);\n color: var(--headings-color);\n}\n\nlabel {\n display: inline-block;\n max-inline-size: 100%;\n margin-block-end: 5px;\n color: var(--label-color);\n}\n\nh1 {\n font-size: var(--xxl-font-size);\n line-height: var(--xxl-line-height);\n}\n\nh2 {\n font-size: var(--xl-font-size);\n line-height: var(--xl-line-height);\n}\n\nh3 {\n font-size: var(--lg-font-size);\n line-height: var(--lg-line-height);\n}\n\nh4 {\n font-size: var(--md-font-size);\n line-height: var(--md-line-height);\n}\n\nh5 {\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n}\n\nh6 {\n font-size: var(--xs-font-size);\n line-height: var(--xs-line-height);\n}\n\np,\nlabel {\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n font-family: var(--font-family-regular);\n\n a {\n font-size: var(--sm-font-size);\n text-decoration: underline;\n }\n}\n\nstrong {\n font-family: var(--font-family-bold);\n}\n\na:not(.tyk-button) {\n cursor: pointer;\n color: var(--text-color);\n font-family: var(--font-family-regular);\n\n &.link--bold {\n font-family: var(--font-family-bold);\n }\n\n + a {\n margin-inline-start: 5px;\n }\n\n i {\n font-size: 9px\n }\n}\n\n.font-family-regular {\n font-family: var(--font-family-regular);\n}\n\n.font-family-medium {\n font-family: var(--font-family-medium);\n}\n\n.font-family-bold {\n font-family: var(--font-family-bold);\n}\n\n.heading-font-family-regular {\n font-family: var(--headings-font-family-regular);\n}\n\n.heading-font-family-medium {\n font-family: var(--headings-font-family-medium);\n}\n\n.heading-font-family-bold {\n font-family: var(--headings-font-family-bold);\n}\n\n.text--info {\n color: var(--color-info-base);\n}\n\n.text--medium {\n font-family: var(--font-family-medium);\n}\n\n.text--bold {\n font-family: var(--font-family-bold);\n}\n\n.text--uppercase {\n text-transform: uppercase;\n}\n\n.text--ellipsis {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.text--underline {\n text-decoration: underline;\n}\n\n.text--default-light {\n color: var(--color-default-light) !important;\n}\n\n.text--default {\n color: var(--color-default-base) !important;\n}\n\n.text--primary {\n color: var(--color-primary-base) !important;\n}\n\n.text--danger {\n color: var(--color-danger-base) !important;\n}\n\n.text--success {\n color: var(--color-success-base) !important;\n}\n\n.text--warning {\n color: var(--color-warning-base) !important;\n}\n\ntd.text-ellipsis {\n max-inline-size: 250px;\n}\n\n.section-title {\n font-family: var(--headings-font-family-bold);\n margin-block-end: 5px;\n\n .tyk-icon {\n margin-inline-start: 5px;\n }\n}\n\n.sub-section-title {\n margin-block-end: 5px;\n font-family: var(--font-family-medium);\n font-size: var(--md-font-size);\n line-height: var(--md-line-height);\n\n .tyk-icon {\n margin-inline-start: 5px;\n }\n}\n\n.section-group-title {\n margin-block-end: 5px;\n font-family: var(--font-family-bold);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n text-transform: uppercase;\n\n .tyk-icon {\n margin-inline-start: 5px;\n }\n}\n",".tyk-form-section__title {\n font-size: var(--base-font-size);\n margin-block: var(--spacing-xs) var(--spacing-base);\n margin-inline: 0;\n}\n\n.tyk-form-section__title--light {\n color: var(--color-background-dark);\n}\n\n.tyk-form-group {\n margin-block-end: var(--form-group-margin-bottom);\n\n &.has-error > .tyk-form-control__wrapper > .tyk-form-control,\n &.has-error > .tyk-form-control__wrapper > .tyk-input-group > .tyk-form-control,\n &.has-error .tyk-file-input__wrapper > .tyk-form-control {\n border: var(--error-border);\n border-inline-start: var(--error-border-left);\n outline: none;\n\n &:focus {\n border-inline-start: 2px solid var(--color-danger-dark);\n border-color: var(--color-danger-dark);\n outline: none;\n }\n }\n\n label {\n font-family: var(--font-family-medium);\n }\n}\n\n.tyk-form-group--inline {\n align-items: stretch;\n display: flex;\n flex-wrap: nowrap;\n\n .tyk-form-control__wrapper {\n flex: 1;\n }\n\n label {\n display: flex;\n white-space: nowrap;\n margin-inline-end: var(--spacing-md);\n margin-block-start: 14px;\n }\n\n input,\n select {\n display: flex;\n }\n\n .tyk-form-control__help-block {\n display: flex;\n margin-inline-start: auto;\n }\n}\n\n.tyk-form-group--default {\n color: var(--text-color);\n\n > .tyk-form-control__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-file-input__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-input-group > .tyk-form-control {\n border: var(--general-border-width) solid var(--form-default-color);\n color: var(--text-color);\n\n &[disabled] {\n border: var(--general-border-width) solid var(--form-default-color);\n background-color: var(--form-control-disabled-background-color);\n color: var(--form-control-disabled-color);\n cursor: not-allowed;\n\n + .tyk-input-group__addon {\n background-color: var(--form-control-disabled-background-color);\n }\n }\n\n &::placeholder {\n opacity: 0.8;\n }\n\n &:-ms-input-placeholder {\n opacity: 0.8;\n }\n }\n\n &.tyk-form-group--addon-left {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-default-color);\n border-inline-start: 2px solid var(--form-default-color);\n color: var(--text-color);\n }\n }\n\n &.tyk-form-group--addon-right {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-default-color);\n border-inline-end: 2px solid var(--form-default-color);\n color: var(--text-color);\n }\n }\n}\n\n.tyk-form-group--primary {\n color: var(--text-color);\n\n > .tyk-form-control__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-file-input__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-input-group > .tyk-form-control {\n border: var(--general-border-width) solid var(--form-primary-color);\n color: var(--text-color);\n\n &[disabled] {\n border: var(--general-border-width) solid var(--form-primary-color);\n background-color: var(--form-control-disabled-background-color);\n color: var(--form-control-disabled-color);\n cursor: not-allowed;\n\n + .tyk-input-group__addon {\n background-color: var(--form-control-disabled-background-color);\n }\n }\n\n &::placeholder {\n opacity: 0.8;\n }\n\n &:-ms-input-placeholder {\n opacity: 0.8;\n }\n }\n\n &.tyk-form-group--addon-left {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-primary-color);\n border-inline-start: 2px solid var(--form-primary-color);\n color: var(--form-primary-color);\n }\n }\n\n &.tyk-form-group--addon-right {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-primary-color);\n border-inline-end: 2px solid var(--form-primary-color);\n color: var(--form-primary-color);\n }\n }\n}\n\n.tyk-form-group--success {\n color: var(--text-color);\n\n > .tyk-form-control__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-file-input__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-input-group > .tyk-form-control {\n border: var(--general-border-width) solid var(--form-success-color);\n color: var(--text-color);\n\n &[disabled] {\n border: var(--general-border-width) solid var(--form-success-color);\n background-color: var(--form-control-disabled-background-color);\n color: var(--form-control-disabled-color);\n cursor: not-allowed;\n\n + .tyk-input-group__addon {\n background-color: var(--form-control-disabled-background-color);\n }\n }\n\n &::placeholder {\n opacity: 0.8;\n }\n\n &:-ms-input-placeholder {\n opacity: 0.8;\n }\n }\n\n &.tyk-form-group--addon-left {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-success-color);\n border-inline-start: 2px solid var(--form-success-color);\n color: var(--form-success-color);\n }\n }\n\n &.tyk-form-group--addon-right {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-success-color);\n border-inline-end: 2px solid var(--form-success-color);\n color: var(--form-success-color);\n }\n }\n}\n\n.tyk-form-group--rounded-corners {\n &.has-error > .tyk-form-control__wrapper > .tyk-form-control {\n border-inline-start: var(--error-border);\n\n &:focus {\n border-inline-start: var(--error-border);\n outline: none;\n }\n }\n\n .tyk-form-control {\n border-radius: var(--general-border-radius);\n }\n}\n\n.tyk-form-group--addon-right input {\n border-inline-end: 0 !important;\n padding-inline-end: 0;\n}\n\n.tyk-form-group--addon-left input {\n border-inline-start: 0 !important;\n padding-inline-start: 0;\n}\n\n.tyk-form-group--rounded-corners.tyk-form-group--addon-right {\n input {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n }\n\n .tyk-input-group__addon {\n background: var(--form-control-addon-background-color);\n border-start-end-radius: var(--general-border-radius);\n border-end-end-radius: var(--general-border-radius);\n color: var(--text-color);\n }\n}\n\n.tyk-form-group--rounded-corners.tyk-form-group--addon-left {\n input {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n border-inline-start: 0 !important;\n }\n\n .tyk-input-group__addon {\n background: var(--form-control-addon-background-color);\n border-start-start-radius: var(--general-border-radius);\n border-end-start-radius: var(--general-border-radius);\n color: var(--text-color);\n }\n}\n\n.tyk-form-control__error-message {\n font-family: var(--font-family-regular);\n font-size: var(--xs-font-size);\n line-height: var(--xs-line-height);\n margin-block-start: 5px;\n padding: var(--error-message-padding);\n position: relative;\n\n &::before {\n content: '!';\n background: var(--color-danger-base);\n color: white;\n font-family: var(--font-family-bold);\n border-radius: 8px;\n display: inline-block;\n margin-inline-end: 5px;\n padding-block: 0;\n padding-inline: 7px;\n }\n}\n\n.tyk-input-group {\n align-items: center;\n display: flex;\n outline: none;\n}\n\n.tyk-input-group__addon {\n align-items: center;\n background-color: var(--form-control-addon-background-color);\n border: var(--form-control-border);\n display: flex;\n block-size: var(--form-control-height);\n padding-block: var(--form-control-addon-padding-top) var(--form-control-addon-padding-bottom);\n padding-inline: var(--form-control-addon-padding-left) var(--form-control-addon-padding-right);\n\n &:first-child {\n border-inline-end: 0;\n }\n\n &:last-child {\n border-inline-start: 0;\n }\n}\n\n.tyk-form-control {\n font-family: var(--font-family-medium);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n border: var(--form-control-border);\n background-color: white;\n color: var(--text-color);\n display: block;\n block-size: var(--form-control-height);\n padding-block: var(--form-control-padding-top) var(--form-control-padding-bottom);\n padding-inline: var(--form-control-padding-left) var(--form-control-padding-right);\n transition: all .2s linear;\n inline-size: 100%;\n\n &[disabled] {\n background-color: var(--form-control-disabled-background-color);\n\n .tyk-input-group__addon {\n background-color: var(--form-control-disabled-background-color);\n }\n\n cursor: not-allowed;\n }\n\n &::placeholder {\n font-family: var(--form-control-placeholder-font-family);\n color: var(--form-control-placeholder-color);\n }\n\n &:focus,\n &:active {\n outline: none;\n border: var(--form-control-border-focus) !important;\n\n + .tyk-input-group__addon {\n border: var(--form-control-border-focus) !important;\n border-inline-start: none !important;\n }\n }\n}\n\n.tyk-form-control__help-block {\n color: var(--help-block-color);\n font-style: var(--help-block-font-style);\n font-family: var(--font-family-regular);\n font-size: var(--xs-font-size);\n line-height: var(--xs-line-height);\n padding: var(--help-block-padding);\n margin-block: 5px 0;\n margin-inline: 0;\n}\n\nselect {\n border-radius: 0;\n appearance: none;\n}\n\n.inline-form-wrapper {\n align-items: center;\n display: flex;\n inline-size: 100%;\n\n .inline-form {\n inline-size: 100%;\n }\n\n > button {\n margin-inline-start: 10px;\n margin-block-end: var(--spacing-base);\n }\n}\n\n.tyk-checkbox,\n.tyk-radio {\n margin-block: 10px;\n margin-inline: 0;\n\n label {\n font-family: var(--font-family-medium);\n }\n\n input {\n margin-block: 0;\n margin-inline: 0 5px;\n }\n}\n\n.tyk-checkbox--inline,\n.tyk-radio--inline {\n display: inline-flex;\n margin-inline-start: var(--spacing-base);\n\n &:first-child {\n margin-inline-start: 0;\n }\n}\n\n.tyk-inline-form {\n align-items: center;\n display: flex;\n flex-wrap: wrap;\n\n .tyk-form-group {\n flex: 1;\n margin-inline-start: var(--spacing-md);\n min-inline-size: 200px;\n\n &:first-child {\n margin-inline-start:0\n }\n }\n\n > .tyk-button {\n margin-inline-start: var(--spacing-md);\n margin-block-end: var(--spacing-base);\n }\n}\n",":root {\n --accordion-item-header-padding-y: var(--spacing-base);\n --accordion-item-header-padding-x: var(--spacing-base);\n --accordion-item-header-font-size: var(--base-font-size);\n --accordion-item-outside-trigger-width: var(--spacing-xxl);\n}\n\n.tyk-accordion__item {\n display: grid;\n}\n\n.tyk-accordion__item--trigger-position-left {\n grid-template-columns: var(--accordion-item-outside-trigger-width) auto;\n grid-template-areas:\n \"trigger header\"\n \"trigger content\";\n}\n\n.tyk-accordion__item--trigger-position-right {\n grid-template-columns: auto var(--accordion-item-outside-trigger-width);\n grid-template-areas:\n \"header trigger\"\n \"content trigger\";\n}\n\n.tyk-accordion__item--trigger-in-header {\n grid-template-columns: auto;\n grid-template-areas:\n \"header\"\n \"content\";\n}\n\n.tyk-accordion__trigger-wrapper {\n grid-area: trigger;\n display: flex;\n align-items: flex-start;\n justify-content: center;\n\n .tyk-icon {\n margin-inline: auto;\n }\n}\n\n.tyk-accordion__trigger,\n.tyk-accordion__item-header > button {\n background: none;\n border: none;\n cursor: pointer;\n display: flex;\n font-size: var(--accordion-item-header-font-size);\n outline: none;\n padding-inline: var(--accordion-item-header-padding-x);\n padding-block: var(--accordion-item-header-padding-y);\n inline-size: 100%;\n\n .tyk-icon {\n margin-inline-start: auto;\n }\n}\n\n.tyk-accordion__item-header {\n grid-area: header;\n}\n\n.tyk-accordion__trigger--disabled {\n color: var(--color-background-base);\n}\n\n.tyk-accordion__item-header.tyk-accordion__arrow-trigger {\n align-items: center;\n display: flex;\n\n > div {\n flex: 1;\n }\n\n > button {\n margin-inline-start: auto;\n inline-size: auto;\n }\n}\n\n.tyk-accordion__item-content {\n grid-area: content;\n}\n",":root {\n --button-font-family: var(--font-family-bold);\n --button-border-radius: var(--spacing-md);\n\n --padding-y-button-sm: 3px;\n --padding-x-button-sm: var(--spacing-base);\n --padding-y-button-md: 8px;\n --padding-x-button-md: 23px;\n --padding-y-button-lg: 13px;\n --padding-x-button-lg: 23px;\n\n --line-height-button-sm: var(--xs-line-height);\n --line-height-button-md: var(--md-line-height);\n --line-height-button-lg: var(--lg-line-height);\n\n --button-default-color: var(--color-default-base);\n --button-default-hover-color: var(--color-default-dark);\n --button-default-gradient-start-color: var(--color-default-base);\n --button-default-gradient-end-color: var(--color-default-dark);\n\n --button-primary-color: var(--color-default-base-light);\n --button-primary-hover-color: var(--color-default-dark);\n --button-primary-text-color: white;\n --button-primary-gradient-start-color: var(--color-primary-base);\n --button-primary-gradient-end-color: var(--color-primary-dark);\n\n --button-success-color: var(--color-success-base);\n --button-success-hover-color: var(--color-success-dark);\n --button-success-gradient-start-color: var(--color-success-base);\n --button-success-gradient-end-color: var(--color-success-dark);\n\n --button-danger-color: var(--color-danger-base);\n --button-danger-hover-color: var(--color-danger-dark);\n --button-danger-gradient-start-color: var(--color-danger-base);\n --button-danger-gradient-end-color: var(--color-danger-dark);\n\n --button-warning-color: var(--color-warning-base);\n --button-warning-font-color: white;\n --button-warning-gradient-start-color: var(--color-warning-base);\n --button-warning-gradient-end-color: var(--color-warning-light);\n\n --button-info-color: var(--color-info-base);\n --button-info-font-color: var(--text-color);\n --button-info-gradient-start-color: var(--color-info-base);\n --button-info-gradient-end-color: var(--color-info-light);\n\n --button-icon-only-background-hover: var(--color-background-light);\n}\n\n.tyk-button {\n --button-padding-y: var(--padding-y-button-md);\n --button-padding-x: var(--padding-x-button-md);\n --button-font-size: var(--sm-font-size);\n --button-line-height: var(--line-height-button-md);\n\n background-color: transparent;\n border: none;\n color: white;\n cursor: pointer;\n display: inline-block;\n font-family: var(--button-font-family);\n text-align: center;\n text-transform: uppercase;\n text-decoration: none;\n transition: all .2s linear;\n user-select: none;\n vertical-align: middle;\n white-space: nowrap;\n\n + .tyk-button,\n + .tyk-dropdown,\n + .tyk-toggle {\n margin-inline-start: var(--spacing-sm);\n }\n\n span + i {\n margin-inline-start: var(--spacing-sm);\n }\n\n i + span {\n margin-inline-start: var(--spacing-sm);\n }\n\n &.disabled {\n cursor: not-allowed;\n opacity: 0.7;\n }\n\n &:hover {\n color: white;\n text-decoration: none;\n }\n\n &:focus {\n outline: none;\n }\n}\n\n.tyk-button--white {\n --button-variant-background: white;\n --button-variant-border: transparent;\n --button-variant-color: var(--color-default-base);\n --button-variant-hover-background: var(--color-background-dark);\n --button-variant-hover-color: white;\n}\n\n.tyk-button--primary {\n --button-variant-background: var(--button-primary-color);\n --button-variant-border: var(--button-primary-color);\n --button-variant-color: var(--button-primary-text-color);\n --button-variant-hover-background: var(--button-primary-hover-color);\n --button-variant-hover-color: var(--button-primary-text-color);\n}\n\n.tyk-button--success {\n --button-variant-background: var(--button-success-color);\n --button-variant-border: var(--button-success-color);\n --button-variant-color: white;\n --button-variant-hover-background: var(--button-success-hover-color);\n --button-variant-hover-color: white;\n}\n\n.tyk-button--danger {\n --button-variant-background: var(--button-danger-color);\n --button-variant-border: var(--button-danger-color);\n --button-variant-color: white;\n --button-variant-hover-background: var(--button-danger-hover-color);\n --button-variant-hover-color: white;\n}\n\n.tyk-button--warning {\n --button-variant-background: var(--button-warning-color);\n --button-variant-border: transparent;\n --button-variant-color: var(--button-warning-font-color);\n --button-variant-hover-background: color-mix(in srgb, var(--button-variant-background), black 15%);\n --button-variant-hover-color: var(--button-warning-font-color);\n}\n\n.tyk-button--info {\n --button-variant-background: var(--button-info-color);\n --button-variant-border: var(--button-info-color);\n --button-variant-color: white;\n --button-variant-hover-background: color-mix(in srgb, var(--button-variant-background), black 15%);\n --button-variant-hover-color: white;\n}\n\n.tyk-button--default {\n --button-variant-background: var(--button-default-color);\n --button-variant-border: var(--button-default-color);\n --button-variant-color: white;\n --button-variant-hover-background: var(--button-default-hover-color);\n --button-variant-hover-color: white;\n}\n\n.tyk-button--white,\n.tyk-button--primary,\n.tyk-button--success,\n.tyk-button--danger,\n.tyk-button--warning,\n.tyk-button--info,\n.tyk-button--default {\n background-color: var(--button-variant-background);\n color: var(--button-variant-color);\n border: var(--general-border-width) solid var(--button-variant-border);\n\n &:hover {\n background-color: var(--button-variant-hover-background);\n color: var(--button-variant-hover-color);\n }\n}\n\n.tyk-button--primary-link {\n --button-variant-link-color: var(--button-primary-color);\n}\n\n.tyk-button--success-link {\n --button-variant-link-color: var(--button-success-color);\n}\n\n.tyk-button--danger-link {\n --button-variant-link-color: var(--button-danger-color);\n}\n\n.tyk-button--warning-link {\n --button-variant-link-color: var(--button-warning-color);\n}\n\n.tyk-button--info-link {\n --button-variant-link-color: var(--button-info-color);\n}\n\n.tyk-button--default-link {\n --button-variant-link-color: var(--text-color);\n}\n\n.tyk-button--primary-link,\n.tyk-button--success-link,\n.tyk-button--danger-link,\n.tyk-button--warning-link,\n.tyk-button--info-link,\n.tyk-button--default-link {\n background-color: transparent;\n border: var(--general-border-width) solid transparent;\n color: var(--button-variant-link-color);\n\n &:hover {\n background-color: transparent;\n color: var(--button-variant-link-color);\n border-color: var(--button-variant-link-color);\n text-decoration: underline;\n }\n}\n\n.tyk-button--primary-outline {\n --button-variant-outline-border: var(--button-primary-color);\n --button-variant-outline-color: var(--button-primary-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--success-outline {\n --button-variant-outline-border: var(--button-success-color);\n --button-variant-outline-color: var(--button-success-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--danger-outline {\n --button-variant-outline-border: var(--button-danger-color);\n --button-variant-outline-color: var(--button-danger-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--warning-outline {\n --button-variant-outline-border: var(--button-warning-color);\n --button-variant-outline-color: var(--button-warning-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--info-outline {\n --button-variant-outline-border: var(--button-info-color);\n --button-variant-outline-color: var(--button-info-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--default-outline {\n --button-variant-outline-border: var(--button-default-color);\n --button-variant-outline-color: var(--button-default-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--primary-outline,\n.tyk-button--success-outline,\n.tyk-button--danger-outline,\n.tyk-button--warning-outline,\n.tyk-button--info-outline,\n.tyk-button--default-outline {\n border: var(--general-border-width) solid var(--button-variant-outline-border);\n background-color: transparent;\n color: var(--button-variant-outline-color);\n\n &:hover {\n background-color: var(--button-variant-outline-border);\n color: var(--button-variant-outline-hover-color);\n }\n\n &.disabled {\n color: var(--button-variant-outline-border);\n\n &:hover {\n background-color: transparent;\n color: var(--button-variant-outline-border);\n }\n }\n}\n\n.tyk-button--primary-gradient {\n --button-variant-gradient-left-color: var(--button-primary-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-primary-gradient-end-color);\n}\n\n.tyk-button--success-gradient {\n --button-variant-gradient-left-color: var(--button-success-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-success-gradient-end-color);\n}\n\n.tyk-button--danger-gradient {\n --button-variant-gradient-left-color: var(--button-danger-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-danger-gradient-end-color);\n}\n\n.tyk-button--warning-gradient {\n --button-variant-gradient-left-color: var(--button-warning-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-warning-gradient-end-color);\n --button-variant-gradient-color: var(--button-warning-font-color);\n}\n\n.tyk-button--info-gradient {\n --button-variant-gradient-left-color: var(--button-info-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-info-gradient-end-color);\n --button-variant-gradient-color: var(--button-info-font-color);\n}\n\n.tyk-button--default-gradient {\n --button-variant-gradient-left-color: var(--button-default-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-default-gradient-end-color);\n}\n\n.tyk-button--primary-gradient,\n.tyk-button--success-gradient,\n.tyk-button--danger-gradient,\n.tyk-button--warning-gradient,\n.tyk-button--info-gradient,\n.tyk-button--default-gradient {\n border-image: linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color)) 0 round;\n background: transparent linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: var(--button-variant-gradient-color, white);\n\n &:hover,\n &:active,\n &:active:focus {\n border-image: linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color)) 0 round;\n background: transparent linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color));\n background-position: 100% 0;\n background-size: 200% auto;\n background-clip: border-box;\n\n &.disabled {\n border-image: linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color)) 0 round;\n background: transparent linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: var(--button-variant-gradient-color, white);\n }\n }\n}\n\n.tyk-button--sm {\n --button-padding-y: var(--padding-y-button-sm);\n --button-padding-x: var(--padding-x-button-sm);\n --button-font-size: var(--xs-font-size);\n --button-line-height: var(--xs-line-height);\n}\n\n.tyk-button--md {\n --button-padding-y: var(--padding-y-button-md);\n --button-padding-x: var(--padding-x-button-md);\n --button-font-size: var(--sm-font-size);\n --button-line-height: var(--sm-line-height);\n}\n\n.tyk-button--lg {\n --button-padding-y: var(--padding-y-button-lg);\n --button-padding-x: var(--padding-x-button-lg);\n --button-font-size: var(--md-font-size);\n --button-line-height: var(--line-height-button-md);\n}\n\n.tyk-button,\n.tyk-button--sm,\n.tyk-button--md,\n.tyk-button--lg {\n padding-block: var(--button-padding-y);\n padding-inline: var(--button-padding-x);\n font-size: var(--button-font-size);\n line-height: var(--button-line-height);\n border-radius: var(--button-border-radius);\n}\n\n.tyk-button--icon-only {\n border-radius: var(--general-border-radius);\n padding: 0;\n line-height: var(--spacing-md);\n inline-size: 24px;\n\n &:hover {\n border-radius: var(--general-border-radius);\n }\n}\n\n.tyk-button--fit {\n block-size: auto;\n inline-size: auto;\n line-height: normal;\n}\n\n.tyk-button--no-style {\n background: transparent;\n border: none;\n color: var(--text-color);\n\n &:hover {\n background: transparent;\n border: none;\n color: var(--text-color);\n }\n}\n",".tyk-button-group__wrapper {\n display: inline-block;\n position: relative;\n vertical-align: middle;\n\n label {\n font-family: var(--font-family-medium);\n }\n\n + .tyk-button,\n + .tyk-dropdown,\n + .tyk-toggle,\n + .tyk-button-group__wrapper {\n margin-inline-start: var(--spacing-sm);\n }\n\n .tyk-button-group {\n display: flex;\n\n > .tyk-button-group:not(:first-child) {\n > .tyk-button {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n }\n }\n\n > .tyk-button-group:not(:last-child) {\n > .tyk-button {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n }\n }\n\n .tyk-button {\n border-radius: 0;\n\n + .tyk-button {\n margin-inline-start: 0;\n }\n\n + .tyk-dropdown {\n margin-inline-start: 0;\n }\n\n &:first-child {\n border-start-start-radius: var(--spacing-md);\n border-end-start-radius: var(--spacing-md);\n }\n\n &:last-child {\n border-start-end-radius: var(--spacing-md);\n border-end-end-radius: var(--spacing-md);\n\n &.tyk-button--icon-only {\n inline-size: 42px;\n }\n }\n }\n }\n}\n",".tyk-card {\n background-color: white;\n border: 1px solid var(--color-background-base);\n border-radius: 8px;\n box-shadow: 2px 2px 3px var(--color-background-base);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.tyk-card__header {\n align-items: center;\n display: flex;\n font-family: var(--font-inter-regular);\n font-size: var(--sm-font-size);\n padding-block: var(--spacing-base) 0;\n padding-inline: var(--spacing-base);\n}\n\n.tyk-card__header-right {\n margin-inline-start: auto;\n}\n\n.tyk-card__title-group {\n display: grid;\n grid-template-columns: auto 1fr;\n align-items: center;\n\n .tyk-card__title-icon {\n align-items: center;\n display: flex;\n inline-size: 42px;\n block-size: 42px;\n justify-content: center;\n margin-inline-end: 10px;\n grid-row: span 2;\n }\n}\n\n.tyk-card__title {\n font-family: var(--font-inter-bold);\n font-size: var(--lg-font-size);\n display: -webkit-box;\n -webkit-box-orient: vertical;\n overflow: hidden;\n margin: 0;\n text-overflow: ellipsis;\n}\n\n.tyk-card__title--max-1-lines {\n -webkit-line-clamp: 1;\n}\n\n.tyk-card__title--max-2-lines {\n -webkit-line-clamp: 2;\n}\n\n.tyk-card__sub-title {\n font-family: var(--font-inter-medium);\n font-size: var(--xs-font-size);\n margin: 0;\n}\n\n.tyk-card__title-group + .tyk-card__summary,\n.tyk-card__sub-title + .tyk-card__summary,\n.tyk-card__title + .tyk-card__summary {\n margin-block-start: var(--spacing-sm);\n}\n\n.tyk-card__summary {\n color: var(--text-color);\n font-family: var(--font-inter-regular);\n font-size: var(--sm-font-size);\n display: -webkit-box;\n -webkit-box-orient: vertical;\n overflow: hidden;\n margin: 0;\n text-overflow: ellipsis;\n}\n\n.tyk-card__summary--max-1-lines {\n -webkit-line-clamp: 1;\n}\n\n.tyk-card__summary--max-2-lines {\n -webkit-line-clamp: 2;\n}\n\n.tyk-card__summary--max-3-lines {\n -webkit-line-clamp: 3;\n}\n\n.tyk-card__summary--max-4-lines {\n -webkit-line-clamp: 4;\n}\n\n.tyk-card__summary--max-5-lines {\n -webkit-line-clamp: 5;\n}\n\n.tyk-card__body {\n display: flex;\n flex: 1 0 auto;\n flex-grow: 1;\n padding: var(--spacing-base);\n}\n\n.tyk-card__body--align-top {\n align-items: flex-start;\n}\n\n.tyk-card__body--align-center {\n align-items: center;\n}\n\n.tyk-card__body--align-bottom {\n align-items: flex-end;\n}\n\n.tyk-card__footer {\n display: flex;\n justify-content: end;\n border-block-start: 1px solid var(--color-background-base);\n padding: var(--spacing-base);\n}",".tyk-chart__wrapper {\n position: relative;\n}\n\n.tyk-chart--no-data,\n.tyk-chart--loading-chart {\n filter: blur(var(--spacing-sm));\n}\n",".collapse-exit,\n.collapse-exit-active,\n.collapse-exit-done {\n block-size: 0;\n}\n\n.collapse-wrapper {\n overflow: hidden;\n transition: all .2s;\n}\n\n.collapse-horizontal-exit,\n.collapse-horizontal-exit-active,\n.collapse-horizontal-exit-done {\n inline-size: 0;\n}\n\n.collapse-horizontal-enter,\n.collapse-horizontal-enter-active,\n.collapse-horizontal-enter-done {\n inline-size: 100%;\n}\n",".tyk-copy-to-clipboard {\n position: absolute;\n inset-inline-start: -1000px;\n inset-block-start: -1000px;\n}",":root {\n --fixed-wrapper-top: 0;\n --fixed-wrapper-left: 0;\n --fixed-wrapper-right: 0;\n}\n\n.tyk-fixed-wrapper {\n inset-inline-start: var(--fixed-wrapper-left);\n inset-inline-end: var(--fixed-wrapper-right);\n position: sticky;\n inset-block-start: var(--fixed-wrapper-top);\n z-index: 8;\n}\n\n.tyk-fixed-wrapper--scrolled {\n box-shadow: 2px 2px 5px rgba(0 0 0 / 10%);\n}\n",".floating-container {\n position: fixed;\n inset-block-start: -9999px;\n overflow: auto;\n z-index: var(--modal-z-index, 1080);\n}\n\n.floating-container__content-wrapper {\n block-size: 100%;\n}",".tyk-icon {\n + .tyk-icon {\n margin-inline-start: var(--spacing-sm);\n }\n}\n",".tyk-infinite-scroller {\n block-size: 100%;\n overflow: hidden;\n position: relative;\n\n .loading {\n background: linear-gradient(180deg, rgba(255 255 255 / 0%), rgba(255 255 255 / 100%));\n justify-content: center;\n display: flex;\n inset-inline: 0;\n inset-block-start: auto;\n inset-block-end: 0;\n padding-block: var(--spacing-base);\n padding-inline: 0;\n inline-size: 100%;\n }\n}\n\n.tyk-infinite-scroller__wrapper {\n block-size: 100%;\n overflow-y: auto;\n}\n",".tyk-info-note {\n border-radius: 0;\n position: relative;\n\n p + p {\n margin-block-start: var(--spacing-base);\n }\n\n &::after {\n content: '';\n border-style: solid;\n border-width: 0 var(--spacing-md) var(--spacing-md) 0;\n border-color: transparent var(--color-info-base) transparent transparent;\n block-size: 0;\n position: absolute;\n inset-inline-end: 0;\n inset-block-start: 0;\n inline-size: 0;\n }\n\n .tyk-message {\n border-radius: 0;\n padding-block: 40px;\n }\n}\n",".tyk-loading__wrapper {\n background: rgba(255 255 255 / 60%);\n position: absolute;\n inset: 0;\n z-index: 99;\n}\n\n.loader-wrapper {\n min-block-size: 100px;\n position: relative;\n}\n\n.loading {\n position: absolute;\n inset-block-start: calc(50% - var(--spacing-sm));\n inset-inline-start: 50%;\n\n &.relative {\n inset-inline-start: auto;\n padding: 25px;\n position: relative;\n text-align: center;\n inset-block-start: auto;\n inline-size: 100%;\n }\n}\n\n.loading-bar {\n display: inline-block;\n inline-size: 4px;\n block-size: var(--spacing-md);\n border-radius: 4px;\n animation: loading 1s ease-in-out infinite;\n margin-inline-start: 2px;\n}\n\n.loading-bar:nth-child(1) {\n animation-delay: 0;\n background-color: var(--color-success-base);\n opacity: 1;\n}\n\n.loading-bar:nth-child(2) {\n animation-delay: 0.09s;\n background-color: var(--color-success-base);\n opacity: 0.80;\n}\n\n.loading-bar:nth-child(3) {\n animation-delay: .18s;\n background-color: var(--color-success-base);\n opacity: 0.60;\n}\n\n.loading-bar:nth-child(4) {\n animation-delay: .27s;\n background-color: var(--color-success-base);\n opacity: 0.40;\n}\n\n@keyframes loading {\n 0% {\n transform: scale(1);\n }\n\n 20% {\n transform: scale(1, 2.2);\n }\n\n 40% {\n transform: scale(1);\n }\n}\n",".tyk-list {\n border: var(--general-border-width) solid var(--color-default-light);\n border-radius: var(--general-border-radius);\n font-size: var(--sm-font-size);\n list-style-type: none;\n margin: 0;\n max-block-size: 191px;\n padding: 0;\n overflow: auto;\n\n li {\n border-block-end: 1px solid var(--color-default-light);\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-md);\n font-family: var(--font-family-medium);\n\n &.tyk-list__item--selected {\n background-color: var(--color-default-light);\n }\n\n &:last-child {\n border: none;\n }\n }\n}\n\n.tyk-list--with-inline-label {\n display: flex;\n\n > label {\n margin-inline-end: var(--spacing-md);\n }\n}\n\n.tyk-list--default {\n border-color: var(--color-default-light);\n}\n\n.tyk-list--primary {\n border-color: var(--color-primary-base);\n\n li {\n border-color: var(--color-primary-light);\n color: var(--text-color);\n\n &.tyk-list__item--selected {\n background-color: var(--color-primary-light);\n }\n }\n}\n\n.tyk-list--primary-light {\n border-color: var(--color-primary-light);\n\n li {\n border-color: var(--color-primary-light);\n color: var(--text-color);\n\n &.tyk-list__item--selected {\n background-color: var(--color-primary-light);\n }\n }\n}\n\n.tyk-list--success {\n border-color: var(--color-success-base);\n color: var(--color-success-base);\n\n li {\n border-color: var(--color-success-base);\n\n &.tyk-list__item--selected {\n background-color: var(--color-success-light);\n }\n }\n}\n\n.tyk-list--danger {\n border-color: var(--color-danger-base);\n color: var(--text-color);\n\n li {\n border-color: var(--color-danger-light);\n\n &.tyk-list__item--selected {\n background-color: var(--color-danger-light);\n }\n }\n}\n\nul.tyk-list--inline {\n align-items: center;\n display: flex;\n\n li {\n padding-block: 0;\n padding-inline: var(--spacing-sm);\n }\n\n &.tyk-list--with-separator {\n li:not(:first-child) {\n border-inline-start: 1px solid var(--color-default-base);\n }\n }\n}\n",":root {\n --tyk-message-padding-top: var(--spacing-md);\n --tyk-message-padding-right: var(--spacing-md);\n --tyk-message-padding-bottom: var(--spacing-md);\n --tyk-message-padding-left: var(--spacing-md);\n --tyk-message-border-radius: var(--general-border-radius);\n --tyk-message-default-background: var(--color-primary-light);\n --tyk-message-default-border: var(--color-default-dark);\n --tyk-message-default-text-color: var(--color-default-dark);\n --tyk-message-info-background: var(--color-info-light);\n --tyk-message-info-border: var(--color-info-base);\n --tyk-message-info-text-color: var(--color-info-base);\n --tyk-message-success-background: var(--color-success-light);\n --tyk-message-success-border: var(--color-success-dark);\n --tyk-message-success-text-color: var(--color-success-dark);\n --tyk-message-warning-background: var(--color-warning-light);\n --tyk-message-warning-border: var(--color-warning-base);\n --tyk-message-warning-text-color: var(--color-warning-dark);\n --tyk-message-danger-background: var(--color-danger-extra-light);\n --tyk-message-danger-border: var(--color-danger-base);\n --tyk-message-danger-text-color: var(--color-danger-dark);\n}\n\n.tyk-message {\n display: flex;\n align-items: center;\n border-radius: var(--tyk-message-border-radius);\n margin-block-end: var(--spacing-md);\n padding-block: var(--tyk-message-padding-top) var(--tyk-message-padding-bottom);\n padding-inline: var(--tyk-message-padding-left) var(--tyk-message-padding-right);\n\n > .tyk-icon:first-child {\n inline-size: 32px;\n block-size: 32px;\n flex-shrink: 0;\n border-radius: 50%;\n color: white;\n\n &::before {\n display: flex;\n inline-size: 100%;\n block-size: 100%;\n align-items: center;\n justify-content: center;\n }\n }\n\n > .tyk-icon:last-child {\n cursor: pointer;\n }\n\n /* &--default {\n @include message-variant(\n $tyk-message-default-background,\n $tyk-message-default-border,\n $tyk-message-default-text-color\n );\n\n > .tyk-icon:first-child {\n transform: rotate(180deg);\n }\n }\n\n &--info {\n @include message-variant(\n $tyk-message-info-background,\n $tyk-message-info-border,\n $tyk-message-info-text-color\n );\n }\n\n &--success {\n @include message-variant(\n $tyk-message-success-background,\n $tyk-message-success-border,\n $tyk-message-success-text-color\n );\n }\n\n &--warning {\n @include message-variant(\n $tyk-message-warning-background,\n $tyk-message-warning-border,\n $tyk-message-warning-text-color\n );\n }\n\n &--danger {\n @include message-variant(\n $tyk-message-danger-background,\n $tyk-message-danger-border,\n $tyk-message-danger-text-color\n );\n } */\n}\n\n.tyk-message__content {\n flex-grow: 1;\n margin-inline: var(--spacing-md);\n}\n\n.tyk-message--default {\n --message-variant-background: var(--tyk-message-default-background);\n --message-variant-border: var(--tyk-message-default-border);\n --message-variant-color: var(--tyk-message-default-text-color);\n\n > .tyk-icon:first-child {\n transform: rotate(180deg);\n }\n}\n\n.tyk-message--info {\n --message-variant-background: var(--tyk-message-info-background);\n --message-variant-border: var(--tyk-message-info-border);\n --message-variant-color: var(--tyk-message-info-text-color);\n}\n\n.tyk-message--success {\n --message-variant-background: var(--tyk-message-success-background);\n --message-variant-border: var(--tyk-message-success-border);\n --message-variant-color: var(--tyk-message-success-text-color);\n}\n\n.tyk-message--warning {\n --message-variant-background: var(--tyk-message-warning-background);\n --message-variant-border: var(--tyk-message-warning-border);\n --message-variant-color: var(--tyk-message-warning-text-color);\n}\n\n.tyk-message--danger {\n --message-variant-background: var(--tyk-message-danger-background);\n --message-variant-border: var(--tyk-message-danger-border);\n --message-variant-color: var(--tyk-message-danger-text-color);\n}\n\n.tyk-message--default,\n.tyk-message--info,\n.tyk-message--success,\n.tyk-message--warning,\n.tyk-message--danger {\n background-color: var(--message-variant-background);\n border: var(--general-border-width) solid var(--message-variant-border);\n color: var(--message-variant-color);\n\n & > .tyk-icon:first-child {\n background-color: var(--message-variant-border);\n }\n}\n",":root {\n --tyk-modal-body-padding: var(--spacing-lg);\n --tyk-modal-footer-padding: var(--spacing-lg);\n\n /* Deprecated Modal.Header and Modal.Title */\n --tyk-modal-header-padding: var(--spacing-lg);\n --tyk-modal-borders-color: var(--color-background-light);\n\n /* End of deprecated styles */\n}\n\n.tyk-modal {\n --theme-header-height: 15px;\n --theme-header-icon-size: 65px;\n\n align-items: center;\n pointer-events: none;\n position: fixed;\n inset: 0;\n z-index: -1;\n\n .tyk-panel {\n border: var(--general-border-width) solid var(--color-background-dark);\n box-shadow: none;\n }\n\n .tyk-modal__dialog {\n opacity: 0;\n transition: all .2s ease;\n }\n\n &.opened {\n display: flex;\n z-index: var(--modal-z-index);\n\n .tyk-modal__dialog {\n display: flex;\n max-block-size: 92vh;\n opacity: 1;\n pointer-events: all;\n }\n }\n\n &.appear-enter-done {\n .tyk-modal__dialog {\n opacity: 1;\n margin-block-start: 0;\n }\n }\n}\n\n.tyk-modal__theme-header {\n position: absolute;\n inset-block-start: -1px;\n inset-inline: 0;\n block-size: var(--theme-header-height);\n border-start-start-radius: var(--general-border-radius);\n border-start-end-radius: var(--general-border-radius);\n\n .tyk-icon {\n position: absolute;\n inset-inline-start: calc(50% - var(--theme-header-icon-size) / 2);\n inset-block-start: calc((var(--theme-header-icon-size) - var(--theme-header-height)) / -2);\n inline-size: var(--theme-header-icon-size);\n block-size: var(--theme-header-icon-size);\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: var(--xxl-font-size);\n color: white;\n }\n}\n\n.tyk-modal--theme-success {\n .tyk-modal__theme-header {\n background-color: var(--color-success-base);\n\n .tyk-icon {\n background-color: var(--color-success-base);\n }\n }\n}\n\n.tyk-modal--theme-warning {\n .tyk-modal__theme-header {\n background-color: var(--color-warning-base);\n\n .tyk-icon {\n background-color: var(--color-warning-base);\n }\n }\n}\n\n.tyk-modal--theme-danger {\n .tyk-modal__theme-header {\n background-color: var(--color-danger-base);\n\n .tyk-icon {\n background-color: var(--color-danger-base);\n }\n }\n}\n\n.tyk-modal__dialog {\n opacity: 0;\n margin-inline: auto;\n margin-block-start: -5%;\n margin-block-end: 0;\n pointer-events: all;\n transition: all .2s linear;\n inline-size: 85%;\n}\n\n@media only screen and (width >= 768px) {\n .tyk-modal__dialog {\n inline-size: 600px;\n\n &.tyk-modal--lg {\n inline-size: 800px;\n }\n }\n}\n\n.tyk-modal__content {\n background: white;\n border-radius: var(--general-border-radius);\n display: flex;\n flex-direction: column;\n position: relative;\n inline-size: 100%;\n}\n\n.tyk-modal__body {\n flex: 1;\n overflow: auto;\n padding-block-start: calc(var(--tyk-modal-body-padding) + (var(--theme-header-icon-size) - var(--theme-header-height)) / 2);\n padding-block-end: var(--tyk-modal-body-padding);\n padding-inline: var(--tyk-modal-body-padding);\n\n &.no-padding {\n padding: 0;\n }\n}\n\n.tyk-modal__footer {\n align-items: center;\n display: flex;\n justify-content: flex-end;\n padding: var(--tyk-modal-footer-padding);\n\n >:not(:first-child) {\n margin-inline-start: var(--spacing-xs);\n }\n}\n\n.tyk-modal__backdrop {\n background-color: var(--color-default-dark);\n border: none;\n display: none;\n position: fixed;\n inset: 0;\n inline-size: 100%;\n z-index: var(--modal-z-index) - 1;\n\n &.opened {\n display: block;\n opacity: 0.5;\n transition: opacity .2s ease;\n }\n\n &.fade-enter-done {\n opacity: 0.5;\n z-index: 9;\n }\n}\n\n/* Deprecated Modal.Header and Modal.Title */\n.tyk-modal__header {\n padding-block-start: calc(var(--tyk-modal-header-padding) + (var(--theme-header-icon-size) - var(--theme-header-height)) / 2);\n padding-block-end: var(--tyk-modal-header-padding);\n padding-inline: var(--tyk-modal-header-padding);\n align-items: center;\n border-block-end: 1px solid var(--tyk-modal-borders-color);\n display: flex;\n inline-size: 100%;\n\n .tyk-modal--theme-none & {\n padding-block-start: var(--tyk-modal-header-padding);\n }\n\n button {\n margin-inline-start: auto;\n padding-block: 0;\n padding-inline: 5px;\n }\n\n + .tyk-modal__body {\n padding-block-start: var(--tyk-modal-body-padding);\n }\n}\n\n.tyk-modal__title {\n font-family: var(--font-family-medium);\n font-weight: 500;\n margin: 0;\n inline-size: 100%;\n}\n\n/* End of deprecated styles */\n",":root {\n --navigation-background-color: white;\n --navigation-item-padding-y: var(--spacing-sm);\n --navigation-item-padding-x: var(--spacing-md);\n --navigation-item-background-color: white;\n --navigation-item-color: var(--text-color);\n --navigation-item-hover-background-color: var(--color-primary-base);\n --navigation-item-hover-color: white;\n --navigation-item-active-background-color: var(--color-primary-dark);\n --navigation-item-active-color: white;\n --navigation-padding: 0;\n}\n\n.tyk-navigation {\n background-color: var(--navigation-background-color);\n block-size: 100%;\n overflow: auto;\n padding: var(--navigation-padding);\n inline-size: 100%;\n\n .tyk-navigation-item {\n inline-size: 100%;\n\n a {\n color: var(--navigation-item-color);\n display: flex;\n padding-block: var(--navigation-item-padding-y);\n padding-inline: var(--navigation-item-padding-x);\n text-decoration: none;\n transition: all .2s ease;\n\n &:hover {\n background-color: var(--navigation-item-hover-background-color);\n color: var(--navigation-item-hover-color);\n }\n\n &.active {\n background-color: var(--navigation-item-active-background-color);\n color: var(--navigation-item-active-color);\n }\n }\n }\n}\n",":root {\n --nav-bar-background-color: white;\n --nav-bar-text-color: var(--color-default-base);\n --nav-bar-padding-left: 265px;\n --nav-bar-animate-left: 245px;\n --nav-bar-top-padding: var(--spacing-sm);\n --nav-bar-bottom-padding: 0;\n --nav-bar-left-padding: var(--spacing-md);\n --nav-bar-right-padding: var(--spacing-md);\n --nav-bar-padding: 0 var(--nav-bar-right-padding) 0 var(--nav-bar-left-padding);\n --nav-bar-top: 51px;\n --nav-bar-header-font-size: var(--xxl-font-size);\n --nav-bar-header-font-family: var(--headings-font-family-bold);\n --nav-bar-header-line-height: var(--xxl-line-height);\n --nav-bar-height: 92px;\n --nav-bar-font-family: var(--font-family-regular);\n}\n\n.tyk-nav-bar {\n align-items: center;\n border: none;\n background-color: var(--nav-bar-background-color);\n font-family: var(--nav-bar-font-family);\n color: var(--nav-bar-text-color);\n margin: 0;\n padding: var(--nav-bar-padding);\n inline-size: 100%;\n z-index: 8;\n transition: all .2s linear;\n\n &.tyk-nav-bar__with-tabs .tyk-tabs--default > ul li button {\n padding-block-start: 0;\n }\n\n @media screen and (width <= 1024px) {\n padding-inline-start: var(--spacing-md);\n\n .menu-opened & {\n transform: translate(var(--nav-bar-animate-left));\n }\n }\n\n h1 {\n color: var(--nav-bar-text-color);\n }\n\n h4 {\n margin: 0;\n }\n\n .tyk-nav-bar__wrapper {\n align-items: center;\n padding-block-end: var(--nav-bar-bottom-padding);\n display: flex;\n flex-wrap: wrap;\n block-size: var(--nav-bar-height);\n\n &.tyk-nav-bar--align-top {\n align-items: flex-start;\n }\n\n @media screen and (width <= 1024px) {\n padding-inline-start: 0;\n }\n\n h1 {\n font-size: var(--nav-bar-header-font-size);\n font-family: var(--nav-bar-header-font-family);\n line-height: var(--nav-bar-header-line-height);\n margin: 0;\n padding-inline-end: var(--spacing-sm);\n }\n\n h4 {\n padding-inline-end: var(--spacing-sm);\n }\n\n .tyk-nav-bar__container {\n align-items: center;\n display: flex;\n flex-grow: 1;\n justify-content: space-between;\n }\n\n .tyk-nav-bar__left {\n flex-grow: 1;\n }\n\n .tyk-nav-bar__right {\n margin-inline-start: auto;\n }\n }\n}\n\n.tyk-nav-bar__pre {\n align-self: flex-end;\n color: var(--text-color);\n flex-basis: 100%;\n\n a {\n font-family: var(--font-family-bold);\n font-size: var(--xs-font-size);\n line-height: var(--xs-line-height);\n color: var(--text-color);\n }\n}\n",":root {\n --padding-y-panel-header: var(--spacing-sm);\n --padding-x-panel-header: 25px;\n --padding-y-blank-panel-header: var(--spacing-md);\n --padding-panel-body: 25px;\n --padding-x-right-panel-collapsable: 48px;\n --padding-x-left-panel-collapsable: var(--padding-x-right-panel-collapsable);\n --panel-border-radius: 0;\n --panel-default-border-bottom-color: var(--color-background-base);\n --panel-header-font-size: var(--base-font-size);\n --panel-header-font-family: var(--font-family-medium);\n --panel-primary-header-color: var(--color-primary-base);\n --panel-primary-body-color: white;\n --panel-primary-header-text-color: white;\n --panel-primary-body-text-color: var(--text-color);\n --panel-primary-label-color: var(--text-color);\n --panel-primary-border-color: none;\n}\n\n.tyk-panel {\n background: white;\n border-radius: var(--panel-border-radius);\n margin-block-end: 20px;\n font-family: var(--font-family-medium);\n position: relative;\n\n &.has-error,\n & &.has-error {\n border: var(--general-border-width) solid var(--color-danger-base);\n }\n\n .tyk-panel {\n border: var(--general-border-width) solid var(--color-default-light);\n box-shadow: none;\n }\n\n .tyk-panel__header {\n border: none;\n font-size: var(--lg-font-size);\n line-height: var(--lg-line-height);\n }\n}\n\n.tyk-panel--blank {\n &.tyk-panel--collapsed {\n margin-block-end: 20px;\n\n .tyk-panel__header {\n margin-block-end: 0;\n }\n }\n\n .tyk-panel__header {\n margin-block-end: -20px;\n padding-block: var(--padding-y-blank-panel-header);\n padding-inline: var(--padding-x-panel-header);\n background-color: white;\n color: var(--color-default-base);\n }\n}\n\n.tyk-panel--primary {\n background-color: transparent;\n\n .tyk-panel__header {\n background-color: var(--panel-primary-header-color);\n color: var(--panel-primary-header-text-color);\n border: var(--panel-primary-border-color);\n }\n\n .tyk-panel__body {\n background-color: var(--panel-primary-body-color);\n color: var(--panel-primary-body-text-color);\n }\n\n & .tyk-form-group {\n label {\n color: var(--panel-primary-label-color);\n }\n }\n\n .tyk-toggle {\n .tyk-toggle__label {\n color: var(--panel-primary-label-color);\n }\n }\n}\n\n.tyk-panel--success {\n .tyk-panel__header {\n background-color: var(--color-success-base);\n color: white;\n }\n}\n\n.tyk-panel--danger {\n .tyk-panel__header {\n background-color: var(--color-danger-base);\n color: white;\n }\n}\n\n.tyk-panel--warning {\n .tyk-panel__header {\n background-color: var(--color-warning-base);\n color: white;\n }\n}\n\n.tyk-panel__body {\n background-color: white;\n border-radius: var(--panel-border-radius);\n font-family: var(--font-family-regular);\n padding: var(--padding-panel-body);\n position: relative;\n transition: block-size .2s;\n\n & ~ .tyk-panel__header {\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n\n &.no-padding {\n padding: 0;\n }\n}\n\n.tyk-panel__header {\n display: flex;\n align-items: center;\n border-block-end: 1px solid var(--panel-default-border-bottom-color);\n border-radius: var(--panel-border-radius);\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n font-family: var(--panel-header-font-family);\n overflow: hidden;\n padding-block: var(--padding-y-panel-header);\n padding-inline: var(--padding-x-panel-header);\n position: relative;\n\n > .tyk-icon,\n > .tyk-tooltip__wrapper {\n margin-inline-start: 5px;\n }\n\n .tyk-panel--collapsed & {\n border-end-start-radius: var(--panel-border-radius);\n border-end-end-radius: var(--panel-border-radius);\n }\n\n & ~ .tyk-panel__body {\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n }\n\n & h3 {\n margin: 0;\n }\n\n ng-transclude {\n vertical-align: middle;\n }\n\n &.collapsable {\n cursor: pointer;\n\n .tyk-panel__icon-collapse--right & {\n padding-inline-end: var(--padding-x-right-panel-collapsable);\n }\n\n .tyk-panel__icon-collapse--left & {\n padding-inline-start: var(--padding-x-left-panel-collapsable);\n }\n }\n\n .collapsable__arrow-right {\n font-size: var(--sm-font-size);\n position: absolute;\n padding: var(--spacing-sm);\n inset-inline-end: var(--spacing-sm);\n inset-block-start: calc(50% - 21px);\n }\n\n .collapsable__arrow-left {\n font-size: var(--sm-font-size);\n position: absolute;\n padding-block: 8px var(--spacing-sm);\n padding-inline: 20px 0;\n inset-inline-start: 0;\n inset-block-start: calc(50% - 21px);\n }\n}\n\n.tyk-panel__footer {\n align-items: center;\n border-block-start: 1px solid var(--color-background-light);\n display: flex;\n justify-content: flex-end;\n padding: var(--spacing-lg);\n\n >:not(:first-child) {\n margin-inline-start: 5px;\n }\n}\n",".tyk-pill {\n align-items: center;\n border-radius: var(--general-border-radius);\n display: inline-flex;\n font-size: var(--xs-font-size);\n line-height: 19px;\n margin: var(--pill-margin);\n padding-block: 6px;\n padding-inline: var(--spacing-base);\n font-family: var(--font-family-medium);\n\n i {\n font-size: var(--xs-font-size);\n }\n\n + .tyk-pill {\n margin-inline-end: var(--spacing-sm);\n }\n\n button + span {\n margin-inline-start: var(--spacing-sm);\n }\n\n span + button {\n margin-inline-start: var(--spacing-sm);\n }\n\n &:first-child {\n margin-inline-end: var(--spacing-sm);\n }\n\n &:last-child {\n margin-inline-end: 0;\n }\n}\n\n.tyk-pill--square {\n border-radius: 8px;\n}\n\n.tyk-pill--default {\n background-color: var(--default-pill-background-color);\n color: var(--default-pill-color);\n\n i {\n color: var(--default-pill-color);\n }\n}\n\n.tyk-pill--default-outline {\n box-shadow: var(--default-outline-pill-box-shadow);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n\n.tyk-pill--primary {\n background-color: var(--color-primary-base);\n color: white;\n\n i {\n color: var(--default-pill-color);\n }\n}\n\n.tyk-pill--primary-outline {\n box-shadow: inset 0 0 0 2px var(--color-primary-base);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n\n.tyk-pill--success {\n background-color: var(--color-success-base);\n color: white;\n\n i {\n color: white;\n }\n}\n\n.tyk-pill--success-outline {\n box-shadow: inset 0 0 0 2px var(--color-success-base);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n\n.tyk-pill--danger {\n background-color: var(--color-danger-base);\n color: white;\n\n i {\n color: white;\n }\n}\n\n.tyk-pill--danger-outline {\n box-shadow: inset 0 0 0 2px var(--color-danger-base);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n\n.tyk-pill--warning {\n background-color: var(--color-warning-base);\n color: white;\n\n i {\n color: white;\n }\n}\n\n.tyk-pill--warning-outline {\n box-shadow: inset 0 0 0 2px var(--color-warning-base);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n\n.tyk-pill--info {\n background-color: var(--color-info-base);\n color: white;\n\n i {\n color: white;\n }\n}\n\n.tyk-pill--info-outline {\n box-shadow: inset 0 0 0 2px var(--color-info-base);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n",".tyk-ui-reveal-wrapper {\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n align-items: stretch;\n inline-size: 100%;\n block-size: 100%;\n z-index: 1000;\n position: absolute;\n inset-block-end: 0;\n inset-inline-start: 0;\n pointer-events: none;\n}\n\n.tyk-ui-reveal-wrapper__panel {\n max-block-size: calc(100% - 2rem);\n background-color: white;\n padding: 0;\n margin: 0;\n display: flex;\n flex-direction: column;\n pointer-events: all;\n flex-shrink: 0;\n overflow: auto;\n}\n\n.tyk-ui-reveal-wrapper__hole {\n flex-grow: 1;\n opacity: 0;\n inline-size: 100%;\n background-color: green;\n -webkit-user-select: none;\n user-select: none;\n pointer-events: none;\n z-index: -1;\n}\n\n.tyk-ui-reveal-wrapper__gutter {\n block-size: 2rem;\n inline-size: 100%;\n cursor: row-resize;\n display: flex;\n background-color: var(--color-primary-base);\n z-index: 2;\n pointer-events: all;\n justify-content: space-between;\n align-items: stretch;\n position: relative;\n box-shadow: 0 5px 10px rgba(0 0 0 / 30%);\n}\n\n.tyk-ui-reveal-wrapper__gutter__headerleft,\n.tyk-ui-reveal-wrapper__gutter__headerright {\n display: flex;\n align-items: center;\n flex: 1;\n}\n\n.tyk-ui-reveal-wrapper__gutter__headerleft {\n justify-content: flex-start;\n}\n\n.tyk-ui-reveal-wrapper__gutter__headerright {\n justify-content: flex-end;\n}\n\n.tyk-ui-reveal-wrapper__gutter__logo {\n inline-size: 1rem;\n block-size: 1rem;\n -webkit-user-select: none;\n user-select: none;\n pointer-events: none;\n padding: 0.2rem;\n z-index: 2;\n background-image: url('./images/drag.svg');\n align-self: center;\n\n &:hover {\n border: dashed;\n }\n}\n",":root {\n --sidebar-background-color: white;\n --sidebar-top: 58px;\n --sidebar-height: calc(100vh - 58px);\n --sidebar-width: 280px;\n --sidebar-padding: 0;\n}\n\n.tyk-sidebar {\n background-color: var(--sidebar-background-color);\n block-size: var(--sidebar-height);\n flex: 0 0 var(--sidebar-width);\n padding: var(--sidebar-padding);\n position: sticky;\n overflow: auto;\n inset-block-start: var(--sidebar-top);\n}\n",":root {\n --table-th-padding: var(--spacing-base) var(--spacing-sm);\n --table-td-padding-y: var(--spacing-xs);\n --table-td-padding-x: var(--spacing-sm);\n --table-first-last-padding: 20px;\n --table-pagination-padding: var(--spacing-md) 25px;\n}\n\n.tyk-table {\n border-collapse: collapse;\n border-spacing: 0;\n background-color: white;\n border-radius: var(--general-border-radius);\n inline-size: 100%;\n\n > thead th {\n border-inline-end: 1px solid var(--color-default-light);\n color: var(--text-color);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n font-family: var(--font-family-bold);\n text-transform: uppercase;\n padding: var(--table-th-padding);\n\n &:last-child {\n border-inline-end: none;\n }\n\n i {\n font-size: var(--xs-font-size);\n }\n\n .tyk-button {\n background: none;\n color: var(--color-default-base);\n padding: 0;\n }\n }\n\n > tbody tr:hover {\n background: rgba(var(--color-background-light) / 40%);\n }\n\n > tbody td {\n border-inline-end: 1px solid var(--color-default-light);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n font-family: var(--font-family-regular);\n padding-block: var(--table-td-padding-y);\n padding-inline: var(--table-td-padding-x);\n vertical-align: middle;\n\n &:last-child {\n border-inline-end: none;\n }\n\n &.fit {\n white-space: nowrap;\n inline-size: 1%;\n }\n\n input:not([type='checkbox'], [type='radio']) {\n margin-block-start: var(--spacing-base);\n }\n\n a {\n color: var(--text-color);\n font-family: var(--font-family-medium);\n }\n\n label {\n margin: 0;\n }\n\n input[type='checkbox'] {\n margin: 0;\n }\n }\n\n tbody > tr {\n border-block-start: 1px solid var(--color-default-light);\n transition: all .4s linear;\n border-radius: var(--general-border-radius);\n\n &.clickable {\n cursor: pointer;\n }\n }\n\n > tbody tr td:first-child,\n > thead tr th:first-child {\n padding-inline-start: var(--table-first-last-padding);\n\n &.with-icon {\n padding-inline-start: var(--spacing-base);\n }\n }\n\n > tbody tr td:last-child,\n > thead tr th:last-child {\n padding-inline-end: var(--table-first-last-padding);\n\n &.with-icon {\n padding-inline-end: var(--spacing-base);\n }\n }\n\n .tyk-pagination {\n padding: var(--table-pagination-padding);\n\n li:first-child {\n margin-inline-start: auto;\n }\n }\n\n .nowrap {\n white-space: nowrap;\n }\n\n .wrap {\n word-break: break-all;\n }\n}\n\n.tyk-table__wrapper {\n border: var(--general-border-width) solid var(--color-default-light);\n border-radius: var(--general-border-radius);\n overflow: auto;\n\n &.no-innner-horizontal-borders {\n & .tyk-table > thead th,\n & .tyk-table > tbody td {\n border-inline-end: none;\n }\n }\n}\n\n.tyk-table__wrapper--no-border {\n border: none\n}\n\n.tyk-table-search {\n padding-block: var(--spacing-sm) 0;\n padding-inline: 25px;\n\n label {\n font-size: var(--sm-font-size);\n text-transform: uppercase;\n }\n}\n\n.header-sort {\n padding-inline-start: 3px;\n padding-block-start: var(--spacing-xs);\n vertical-align: middle;\n}\n\n.new-table-pagination {\n float: inline-end;\n}\n\n.selectable > div {\n margin-inline-start: var(--spacing-md);\n}\n\n.scrollable {\n display: block;\n overflow: auto;\n}\n\n.fixed-header {\n background: white;\n position: sticky;\n inset-block-start: 0;\n}\n\n.tyk-table.has-error,\n.tyk-table__wrapper.has-error {\n border: var(--general-border-width) solid var(--color-danger-base) !important;\n}",":root {\n --tabs-default-content-padding: 25px;\n --tab-button-padding: var(--spacing-sm) 2px 3px 2px;\n --tab-button-margin: 0;\n --tabs-font-familly: var(--font-family-medium);\n --tab-button-color: var(--text-color);\n --tab-active-button-color: var(--text-color);\n --tab-border-color: var(--color-success-base);\n}\n\n.tyk-tabs--default {\n > ul {\n display: flex;\n list-style-type: none;\n margin: 0;\n padding: 0;\n overflow: auto;\n\n li {\n display: flex;\n white-space: nowrap;\n margin-inline-end: var(--tab-button-margin);\n\n &:last-child {\n margin-inline-end: 0;\n }\n\n &.active button,\n button:hover {\n border-block-end-color: var(--tab-border-color);\n color: var(--tab-active-button-color);\n opacity: 1;\n }\n\n button {\n background: none;\n border: none;\n border-block-end: 4px solid transparent;\n color: var(--tab-button-color);\n cursor: pointer;\n font-size: var(--sm-font-size);\n font-family: var(--tabs-font-familly);\n padding: var(--tab-button-padding);\n margin-inline-end: var(--spacing-md);\n transition: all .2s linear;\n opacity: 0.7;\n\n &:focus {\n outline: none;\n }\n }\n }\n }\n}\n\n.tyk-tab__content {\n padding: var(--tabs-default-content-padding);\n}\n",".tyk-toast__container {\n inset-block-end: 0;\n min-inline-size: 300px;\n position: fixed;\n inset-inline-end: var(--spacing-md);\n z-index: 11;\n}\n\n.tyk-toast__message {\n position: relative;\n}\n\n.tyk-toast-message__button {\n color: var(--text-color);\n block-size: var(--spacing-md);\n line-height: 1;\n padding: var(--spacing-xs);\n position: absolute;\n inset-inline-end: var(--spacing-xs);\n inset-block-start: var(--spacing-xs);\n inline-size: var(--spacing-md);\n\n &:hover {\n background: rgba(255 255 255 / 30%);\n color: var(--text-color);\n }\n}\n",":root {\n --tooltip-max-width: 450px;\n}\n\n.tyk-tooltip {\n display: flex;\n align-items: center;\n background-color: var(--color-primary-light);\n border: 2px solid var(--color-primary-base);\n border-radius: var(--general-border-radius);\n max-inline-size: var(--tooltip-max-width);\n padding: var(--spacing-md);\n\n > .tyk-icon:first-child {\n inline-size: 32px;\n block-size: 32px;\n border-radius: 50%;\n color: white;\n background-color: var(--color-default-base-light);\n\n &::before {\n display: flex;\n inline-size: 100%;\n block-size: 100%;\n align-items: center;\n justify-content: center;\n }\n }\n\n > .tyk-icon + .tyk-tooltip__content {\n margin-inline-start: var(--spacing-md);\n }\n\n > .tyk-icon:last-child {\n cursor: pointer;\n }\n}\n\n.tyk-tooltip__content {\n color: var(--color-default-dark);\n word-break: break-word;\n word-wrap: break-word;\n\n + .tyk-icon {\n margin-inline-start: var(--spacing-md);\n }\n}\n",":root {\n --tyk-combobox-pill-background: #F0F0F0;\n --tyk-combobox-pill-color: var(--text-color);\n --tyk-combobox-list-item-hover-color: var(--form-default-color);\n --tyk-combobox-list-item-disabled-color: var(--form-default-color);\n}\n\n.tyk-combobox2 {\n --container-trigger-width: 40px;\n --values-default-height: 38px;\n\n outline: none;\n\n &.disabled {\n .tyk-form-control {\n border: var(--form-control-disabled-border) !important;\n background-color: var(--form-control-disabled-background-color);\n color: var(--form-control-disabled-color);\n cursor: not-allowed;\n }\n\n .tyk-combobox2__current-values .tyk-pill--combobox button {\n cursor: not-allowed;\n }\n\n &:not(.is-expand-mode) .tyk-combobox2__values-container-trigger {\n cursor: not-allowed;\n }\n\n .tyk-combobox2__entry-field {\n background-color: transparent;\n cursor: not-allowed;\n }\n }\n\n .tyk-form-control {\n display: flex;\n flex-direction: row;\n position: relative;\n min-block-size: 40px;\n block-size: auto;\n padding: 0;\n\n &:focus-within {\n outline: none;\n border: var(--form-control-border-focus);\n }\n }\n}\n\n.tyk-combobox2__current-values {\n display: flex;\n flex-grow: 1;\n flex-wrap: wrap;\n padding-block: 2px;\n padding-inline-start: var(--spacing-sm);\n max-inline-size: calc(100% - var(--container-trigger-width));\n\n &.expand-mode {\n max-block-size: 1000px;\n overflow: hidden;\n transition: max-block-size 1s ease;\n }\n\n .tyk-pill--combobox {\n margin-block: 3px;\n background-color: var(--tyk-combobox-pill-background);\n border-radius: var(--spacing-sm);\n color: var(--tyk-combobox-pill-color);\n padding-block: var(--spacing-xs);\n padding-inline: var(--spacing-sm);\n max-inline-size: 100%;\n max-block-size: 26px;\n\n button {\n background: none;\n border: none;\n cursor: pointer;\n inline-size: 23px;\n outline: none;\n\n + span {\n margin-inline-start: 0;\n }\n }\n\n span {\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n i {\n margin-inline-end: var(--spacing-xs);\n }\n }\n}\n\n.tyk-combobox2__current-values--collapsed.expand-mode {\n max-block-size: var(--values-default-height);\n transition: max-block-size .2s ease;\n}\n\n.tyk-combobox2__entry-field {\n border: none;\n line-height: 30px;\n\n &:focus,\n &:active {\n border: none;\n outline: none;\n }\n\n &::placeholder {\n color: var(--form-control-placeholder-color);\n font-family: var(--form-control-placeholder-font-family);\n }\n}\n\n.tyk-combobox2__text-value {\n font-family: var(--font-family-medium);\n font-size: var(--sm-font-size);\n padding-block: 9px;\n padding-inline: 5px;\n inline-size: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: 1;\n outline: none;\n\n &.overflow-single {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n &.is-placeholder {\n color: var(--form-control-placeholder-color);\n font-family: var(--form-control-placeholder-font-family);\n }\n}\n\n.tyk-combobox2__values-container-trigger {\n position: relative;\n flex-basis: var(--container-trigger-width);\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n outline: none;\n transition: all .2s;\n color: var(--text-color);\n\n .tyk-icon {\n block-size: 14px;\n }\n}\n\n.tyk-combobox2__values-container-trigger--expanded {\n transform: rotate(180deg);\n}\n\n.tyk-form-group--rounded-corners .tyk-combobox2-disabled-overlay {\n border-radius: calc(var(--general-border-radius) - 2px);\n}\n\n.tyk-combobox2__combobox-dropdown {\n display: flex;\n flex-direction: column;\n border: var(--general-border-width) solid var(--form-default-color);\n background-color: white;\n\n &.tyk-form-group--rounded-corners {\n border-radius: var(--general-border-radius);\n z-index: 1081;\n }\n\n .tyk-combobox2__combobox-search {\n background-color: white;\n position: sticky;\n inset-block-start: 0;\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-md);\n\n + .combobox-list {\n border-block-start: 1px solid var(--form-default-color);\n }\n }\n\n .tyk-combobox2__combobox-list {\n max-block-size: 255px;\n\n li {\n display: flex;\n cursor: pointer;\n padding-block: 9px;\n padding-inline: var(--spacing-md);\n transition: all .2s;\n font-family: var(--font-family-medium);\n\n &:hover,\n &.active {\n background-color: var(--tyk-combobox-list-item-hover-color);\n }\n\n &.disabled {\n color: var(--tyk-combobox-list-item-disabled-color);\n background-color: initial;\n }\n\n + li {\n border-block-start: 1px solid var(--form-default-color);\n }\n\n i {\n margin-inline-end: var(--spacing-xs);\n }\n\n .item-name {\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: 16px;\n }\n }\n }\n}\n",":root {\n --tyk-checkbox-theme-light-label-color: white;\n --tyk-checkbox-theme-light-label-disabled-color: white;\n --tyk-checkbox-theme-dark-label-color: var(--text-color);\n --tyk-checkbox-theme-dark-label-disabled-color: var(--text-color);\n}\n\n.tyk-checkbox {\n label {\n --label-indent: 20px;\n\n display: flex;\n align-items: flex-start;\n padding-inline-start: var(--label-indent);\n\n input {\n margin-inline-start: calc(-1 * var(--label-indent));\n margin-block-start: 5px;\n }\n }\n}\n\n.tyk-checkbox--theme-light {\n label {\n color: var(--tyk-checkbox-theme-light-label-color);\n }\n\n &.tyk-checkbox--is-disabled {\n label {\n color: var(--tyk-checkbox-theme-light-label-disabled-color);\n }\n }\n}\n\n.tyk-checkbox--is-disabled {\n label, p {\n cursor: not-allowed;\n opacity: 0.5;\n }\n}",".flatpickr-calendar{background:transparent;opacity:0;display:none;text-align:center;visibility:hidden;padding:0;-webkit-animation:none;animation:none;direction:ltr;border:0;font-size:14px;line-height:24px;border-radius:5px;position:absolute;width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-touch-action:manipulation;touch-action:manipulation;background:#fff;-webkit-box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,0.08);box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,0.08)}.flatpickr-calendar.open,.flatpickr-calendar.inline{opacity:1;max-height:640px;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{-webkit-animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1);animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{z-index:999;display:block}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){-webkit-box-shadow:none !important;box-shadow:none !important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){-webkit-box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-calendar .hasWeeks .dayContainer,.flatpickr-calendar .hasTime .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.hasTime .flatpickr-time{height:40px;border-top:1px solid #e6e6e6}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:before,.flatpickr-calendar:after{position:absolute;display:block;pointer-events:none;border:solid transparent;content:'';height:0;width:0;left:22px}.flatpickr-calendar.rightMost:before,.flatpickr-calendar.arrowRight:before,.flatpickr-calendar.rightMost:after,.flatpickr-calendar.arrowRight:after{left:auto;right:22px}.flatpickr-calendar.arrowCenter:before,.flatpickr-calendar.arrowCenter:after{left:50%;right:50%}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:before,.flatpickr-calendar.arrowTop:after{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:before,.flatpickr-calendar.arrowBottom:after{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{position:relative;display:inline-block}.flatpickr-months{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-months .flatpickr-month{background:transparent;color:rgba(0,0,0,0.9);fill:rgba(0,0,0,0.9);height:34px;line-height:1;text-align:center;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.flatpickr-months .flatpickr-prev-month,.flatpickr-months .flatpickr-next-month{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-decoration:none;cursor:pointer;position:absolute;top:0;height:34px;padding:10px;z-index:3;color:rgba(0,0,0,0.9);fill:rgba(0,0,0,0.9)}.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,.flatpickr-months .flatpickr-next-month.flatpickr-disabled{display:none}.flatpickr-months .flatpickr-prev-month i,.flatpickr-months .flatpickr-next-month i{position:relative}.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,.flatpickr-months .flatpickr-next-month.flatpickr-prev-month{/*\n /*rtl:begin:ignore*/left:0/*\n /*rtl:end:ignore*/}/*\n /*rtl:begin:ignore*/\n/*\n /*rtl:end:ignore*/\n.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,.flatpickr-months .flatpickr-next-month.flatpickr-next-month{/*\n /*rtl:begin:ignore*/right:0/*\n /*rtl:end:ignore*/}/*\n /*rtl:begin:ignore*/\n/*\n /*rtl:end:ignore*/\n.flatpickr-months .flatpickr-prev-month:hover,.flatpickr-months .flatpickr-next-month:hover{color:#959ea9}.flatpickr-months .flatpickr-prev-month:hover svg,.flatpickr-months .flatpickr-next-month:hover svg{fill:#f64747}.flatpickr-months .flatpickr-prev-month svg,.flatpickr-months .flatpickr-next-month svg{width:14px;height:14px}.flatpickr-months .flatpickr-prev-month svg path,.flatpickr-months .flatpickr-next-month svg path{-webkit-transition:fill .1s;transition:fill .1s;fill:inherit}.numInputWrapper{position:relative;height:auto}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper input::-webkit-outer-spin-button,.numInputWrapper input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none}.numInputWrapper span{position:absolute;right:0;width:14px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer;border:1px solid rgba(57,57,57,0.15);-webkit-box-sizing:border-box;box-sizing:border-box}.numInputWrapper span:hover{background:rgba(0,0,0,0.1)}.numInputWrapper span:active{background:rgba(0,0,0,0.2)}.numInputWrapper span:after{display:block;content:\"\";position:absolute}.numInputWrapper span.arrowUp{top:0;border-bottom:0}.numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid rgba(57,57,57,0.6);top:26%}.numInputWrapper span.arrowDown{top:50%}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(57,57,57,0.6);top:40%}.numInputWrapper span svg{width:inherit;height:auto}.numInputWrapper span svg path{fill:rgba(0,0,0,0.5)}.numInputWrapper:hover{background:rgba(0,0,0,0.05)}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{font-size:135%;line-height:inherit;font-weight:300;color:inherit;position:absolute;width:75%;left:12.5%;padding:7.48px 0 0 0;line-height:1;height:34px;display:inline-block;text-align:center;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.flatpickr-current-month span.cur-month{font-family:inherit;font-weight:700;color:inherit;display:inline-block;margin-left:.5ch;padding:0}.flatpickr-current-month span.cur-month:hover{background:rgba(0,0,0,0.05)}.flatpickr-current-month .numInputWrapper{width:6ch;width:7ch\\0;display:inline-block}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:rgba(0,0,0,0.9)}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:rgba(0,0,0,0.9)}.flatpickr-current-month input.cur-year{background:transparent;-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;cursor:text;padding:0 0 0 .5ch;margin:0;display:inline-block;font-size:inherit;font-family:inherit;font-weight:300;line-height:inherit;height:auto;border:0;border-radius:0;vertical-align:initial;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{font-size:100%;color:rgba(0,0,0,0.5);background:transparent;pointer-events:none}.flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;background:transparent;border:none;border-radius:0;box-sizing:border-box;color:inherit;cursor:pointer;font-size:inherit;font-family:inherit;font-weight:300;height:auto;line-height:inherit;margin:-1px 0 0 0;outline:none;padding:0 0 0 .5ch;position:relative;vertical-align:initial;-webkit-box-sizing:border-box;-webkit-appearance:menulist;-moz-appearance:menulist;width:auto}.flatpickr-current-month .flatpickr-monthDropdown-months:focus,.flatpickr-current-month .flatpickr-monthDropdown-months:active{outline:none}.flatpickr-current-month .flatpickr-monthDropdown-months:hover{background:rgba(0,0,0,0.05)}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:transparent;outline:none;padding:0}.flatpickr-weekdays{background:transparent;text-align:center;overflow:hidden;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:28px}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}span.flatpickr-weekday{cursor:default;font-size:90%;background:transparent;color:rgba(0,0,0,0.54);line-height:1;margin:0;text-align:center;display:block;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;font-weight:bolder}.dayContainer,.flatpickr-weeks{padding:1px 0 0 0}.flatpickr-days{position:relative;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;width:307.875px}.flatpickr-days:focus{outline:0}.dayContainer{padding:0;outline:0;text-align:left;width:307.875px;min-width:307.875px;max-width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;display:-ms-flexbox;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-wrap:wrap;-ms-flex-pack:justify;-webkit-justify-content:space-around;justify-content:space-around;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.dayContainer + .dayContainer{-webkit-box-shadow:-1px 0 0 #e6e6e6;box-shadow:-1px 0 0 #e6e6e6}.flatpickr-day{background:none;border:1px solid transparent;border-radius:150px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#393939;cursor:pointer;font-weight:400;width:14.2857143%;-webkit-flex-basis:14.2857143%;-ms-flex-preferred-size:14.2857143%;flex-basis:14.2857143%;max-width:39px;height:39px;line-height:39px;margin:0;display:inline-block;position:relative;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center}.flatpickr-day.inRange,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.today.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day:hover,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.nextMonthDay:hover,.flatpickr-day:focus,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.nextMonthDay:focus{cursor:pointer;outline:0;background:#e6e6e6;border-color:#e6e6e6}.flatpickr-day.today{border-color:#959ea9}.flatpickr-day.today:hover,.flatpickr-day.today:focus{border-color:#959ea9;background:#959ea9;color:#fff}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange,.flatpickr-day.selected.inRange,.flatpickr-day.startRange.inRange,.flatpickr-day.endRange.inRange,.flatpickr-day.selected:focus,.flatpickr-day.startRange:focus,.flatpickr-day.endRange:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange:hover,.flatpickr-day.endRange:hover,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.endRange.nextMonthDay{background:#569ff7;-webkit-box-shadow:none;box-shadow:none;color:#fff;border-color:#569ff7}.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange,.flatpickr-day.endRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange,.flatpickr-day.endRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)),.flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)){-webkit-box-shadow:-10px 0 0 #569ff7;box-shadow:-10px 0 0 #569ff7}.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange,.flatpickr-day.endRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;-webkit-box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.notAllowed.nextMonthDay{color:rgba(57,57,57,0.3);background:transparent;border-color:transparent;cursor:default}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{cursor:not-allowed;color:rgba(57,57,57,0.1)}.flatpickr-day.week.selected{border-radius:0;-webkit-box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7;box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{float:left}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;-webkit-box-shadow:1px 0 0 #e6e6e6;box-shadow:1px 0 0 #e6e6e6}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:rgba(57,57,57,0.3);background:transparent;cursor:default;border:none}.flatpickr-innerContainer{display:block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.flatpickr-rContainer{display:inline-block;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box}.flatpickr-time{text-align:center;outline:0;display:block;height:0;line-height:40px;max-height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-time:after{content:\"\";display:table;clear:both}.flatpickr-time .numInputWrapper{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;width:40%;height:40px;float:left}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#393939}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#393939}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{background:transparent;-webkit-box-shadow:none;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;color:#393939;font-size:14px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-time input.flatpickr-hour{font-weight:bold}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{outline:0;border:0}.flatpickr-time .flatpickr-time-separator,.flatpickr-time .flatpickr-am-pm{height:inherit;float:left;line-height:inherit;color:#393939;font-weight:bold;width:2%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.flatpickr-time .flatpickr-am-pm{outline:0;width:18%;cursor:pointer;text-align:center;font-weight:400}.flatpickr-time input:hover,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time .flatpickr-am-pm:focus{background:#eee}.flatpickr-input[readonly]{cursor:pointer}@-webkit-keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}","@import 'flatpickr/dist/flatpickr.min.css';\n\n.flatpickr-day.selected,\n.flatpickr-day.startRange,\n.flatpickr-day.endRange,\n.flatpickr-day.selected.inRange,\n.flatpickr-day.startRange.inRange,\n.flatpickr-day.endRange.inRange,\n.flatpickr-day.selected:focus,\n.flatpickr-day.startRange:focus,\n.flatpickr-day.endRange:focus,\n.flatpickr-day.selected:hover,\n.flatpickr-day.startRange:hover,\n.flatpickr-day.endRange:hover,\n.flatpickr-day.selected.prevMonthDay,\n.flatpickr-day.startRange.prevMonthDay,\n.flatpickr-day.endRange.prevMonthDay,\n.flatpickr-day.selected.nextMonthDay,\n.flatpickr-day.startRange.nextMonthDay,\n.flatpickr-day.endRange.nextMonthDay {\n background: var(--color-success-base) !important;\n border-color: var(--color-success-base) !important;\n}",":root {\n --tyk-dropdown-item-background: white;\n --tyk-dropdown-item-background-hover: var(--color-background-light);\n --tyk-dropdown-item-border-color: white;\n --tyk-dropdown-item-text-color: var(--text-color);\n --tyk-dropdown-item-hover-text-color: var(--text-color);\n}\n\n.tyk-dropdown {\n display: inline-block;\n\n + .tyk-button,\n + .tyk-dropdown,\n + .tyk-toggle {\n margin-inline-start: var(--spacing-sm)\n }\n\n label {\n display: block;\n }\n\n &.theme-list .tyk-button {\n background: white;\n border: var(--general-border-width) solid var(--color-default-base);\n border-radius: var(--general-border-radius);\n color: var(--text-color);\n\n &:hover,\n &:active,\n &:active:focus,\n &:focus {\n background: white;\n border-color: var(--color-background-dark);\n color: var(--text-color);\n }\n }\n}\n\n.tyk-dropdown--block {\n inset-inline: var(--spacing-md);\n}\n\n.tyk-dropdown--relative {\n inset-inline: auto;\n}\n\n.tyk-dropdown--custom {\n padding-block: var(--spacing-md);\n padding-inline: 25px;\n}\n\n.tyk-dropdown__trigger {\n position: relative;\n}\n\n.tyk-dropdown-menu {\n background: var(--tyk-dropdown-item-background);\n border: var(--general-border-width) solid var(--color-default-light);\n border-radius: var(--general-border-radius);\n filter: drop-shadow(1px 2px 1px rgba(0 0 0 / 10%));\n list-style-type: none;\n margin-inline: 0;\n margin-block: 3px 0;\n overflow: hidden;\n padding: 0;\n z-index: 1081;\n\n &.tyk-dropdown--scrollable {\n overflow: auto;\n }\n\n .tyk-panel {\n margin: 0;\n }\n\n &.opened {\n display: flex;\n flex-direction: column;\n position: absolute;\n }\n\n > li {\n background: var(--tyk-dropdown-item-background);\n border-block-end: 1px solid var(--tyk-dropdown-item-border-color);\n display: flex;\n position: relative;\n z-index: 7;\n\n &:last-child {\n border: none;\n }\n\n i {\n position: absolute;\n inset-inline-start: 7px;\n inset-block-start: 9px;\n }\n }\n}\n\n.tyk-dropdown-menu > li > a {\n cursor: pointer;\n color: var(--tyk-dropdown-item-text-color);\n display: flex;\n font-size: 12px;\n padding-block: 7px;\n padding-inline: 24px;\n text-transform: uppercase;\n text-decoration: none;\n inline-size: 100%;\n\n &:hover {\n color: var(--tyk-dropdown-item-hover-text-color);\n background-color: var(--tyk-dropdown-item-background-hover);\n text-decoration: none;\n }\n\n .badge {\n background: var(--text-color);\n color: white;\n font-size: var(--spacing-sm);\n margin-block-start: -4px;\n margin-inline-start: 6px;\n }\n}\n\n.tyk-dropdown--relative.opened {\n position: relative;\n}\n",".dropdown__menu {\n .tyk-list {\n background: white;\n max-block-size: none;\n\n li {\n padding: 0;\n\n &:hover {\n background: var(--primary-light);\n }\n\n a {\n cursor: pointer;\n display: block;\n padding-block: 10px;\n padding-inline: 20px;\n text-decoration: none;\n }\n }\n }\n}",".tyk-editable-list__submit-btn {\n white-space: nowrap;\n}\n\n.tyk-editable-list__form {\n align-items: center;\n display: flex;\n\n .tyk-form-group {\n margin-block-end: 0;\n }\n\n span.inline {\n margin-block-start: 0;\n }\n\n > span {\n margin-inline-start: var(--spacing-base);\n\n &.inline-with-label {\n align-self: flex-end;\n }\n }\n}\n\n.tyk-editable-list__form--sticked {\n margin-inline-start: 0;\n\n button {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n border-start-end-radius: 3px;\n border-end-end-radius: 3px;\n padding-block: var(--spacing-sm) 11px;\n padding-inline: var(--spacing-base);\n }\n}\n\n.tyk-editable-list__header {\n padding-block: var(--spacing-base);\n font-size: 11px;\n text-transform: uppercase;\n background-color: white;\n border-start-start-radius: var(--general-border-radius);\n border-start-end-radius: var(--general-border-radius);\n border: var(--general-border-width) solid var(--color-default-light);\n border-block-end: 1px solid var(--color-default-light) !important;\n color: var(--text-color) !important;\n font-family: var(--font-family-bold);\n margin-block-start: var(--spacing-sm);\n\n & + .tyk-editable-list-items.table {\n border-block-start: none;\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n }\n\n .tyk-row {\n margin: 0;\n }\n}\n\n.tyk-editable-list-items {\n overflow: hidden;\n list-style: none;\n padding-block: var(--spacing-md) 0;\n padding-inline: 0;\n\n .edit-mode-wrapper.table button {\n margin-block-start: 23px;\n }\n\n .tyk-row {\n margin: 0;\n }\n\n button[disabled] {\n cursor: not-allowed;\n }\n\n &.tyk-editable-list-items--inline {\n align-items: center;\n color: var(--text-color);\n display: flex;\n flex-wrap: wrap;\n }\n\n li {\n border-block-start: 1px solid var(--color-default-light);\n transition: all .2s linear;\n\n &.tyk-editable-list-item--inline {\n background-color: var(--color-default-light);\n border-radius: 25px;\n border: none;\n color: white;\n float: inline-start;\n font-family: var(--font-family-medium);\n margin-block-end: var(--spacing-sm);\n margin-inline-end: var(--spacing-base);\n padding-block: 0;\n padding-inline: var(--spacing-base);\n white-space: nowrap;\n\n .tyk-editable-list-item__text {\n color: var(--text-color);\n padding-block: var(--spacing-xs);\n padding-inline: 0;\n }\n\n .tyk-editable-list-action__button.on-edit {\n margin-block-start: 0;\n }\n }\n\n &:first-child {\n border-block-start: none;\n }\n\n .tyk-editable-list-item__text {\n display: flex;\n padding-block: var(--spacing-sm);\n padding-inline: 0;\n\n > span {\n flex-grow: 1;\n }\n\n > div:first-child {\n flex-grow: 1;\n\n .error-message {\n margin: 0;\n }\n }\n }\n\n .tyk-editable-list-items {\n overflow: hidden;\n padding-block-end: var(--spacing-sm);\n }\n\n .tyk-editable-list {\n border-block-start: var(--spacing-xs) solid var(--background-dark);\n background: var(--background-light);\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-base);\n }\n }\n\n .tyk-editable-list-item__text {\n display: block;\n word-wrap: break-word;\n word-break:break-all;\n }\n\n .tyk-editable-list-action__button {\n border: none;\n background: transparent;\n\n &.on-edit {\n margin-inline-start: var(--spacing-sm);\n }\n }\n\n .tyk-editable-list-item-controls {\n flex-grow: 0;\n text-align: end;\n }\n}\n\n.tyk-editable-list-item__controls {\n text-align: end;\n}\n\n.tyk-editable-list-items.table {\n background-color: white;\n border-radius: var(--general-border-radius);\n border: var(--general-border-width) solid var(--color-default-light);\n padding: 0 !important;\n\n li {\n border-color: var(--color-default-light);\n\n &:hover {\n background: var(--color-background-light);\n }\n }\n\n .tyk-editable-list-item__text {\n background: transparent;\n }\n\n .tyk-editable-list-action__button {\n border-radius: 6px;\n cursor: pointer;\n margin-inline-end: var(--spacing-sm);\n }\n}\n","/* stylelint-disable number-max-precision */\n\n.editable-list__header {\n align-items: center;\n display: flex;\n margin-block-end: 10px;\n\n .tyk-button {\n margin-inline-start: auto;\n }\n}\n\n.editable-list__wrapper.has-error .editable-list__list{\n border: var(--general-border-width) solid var(--color-danger-base);\n}\n\n.editable-list__list {\n border: var(--general-border-width) solid var(--color-default-light);\n border-radius: var(--general-border-radius);\n display: flex;\n flex-direction: column-reverse;\n}\n\n.editable-list__item {\n border-block-end: 1px solid var(--color-default-light);\n display: flex;\n flex-wrap: nowrap;\n inline-size: 100%;\n\n &:first-child {\n border-block-end: none;\n }\n}\n\n.editable-list__item-header {\n border-block-end: 1px solid var(--color-default-light);\n color: var(--text-color);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n font-family: var(--font-family-bold);\n text-transform: uppercase;\n\n .editable-list__item-cell {\n padding: 10px;\n }\n}\n\n.editable-list__item-cell {\n border-inline-start: 1px solid var(--color-default-light);\n overflow: hidden;\n padding-block: 0;\n padding-inline: 10px;\n\n .tyk-form-control--readonly {\n overflow: hidden;\n text-overflow: ellipsis;\n word-break: break-all;\n }\n\n &:first-child {\n border-inline-start: none;\n padding-inline-start: 15px;\n }\n\n &:last-child {\n padding-inline-end: 15px;\n }\n\n .tyk-form-group {\n margin-block: 10px;\n margin-inline: 0;\n inline-size: 100%;\n }\n}\n\n.editable-list__item--size-1 {\n display: flex;\n flex-grow: 2;\n inline-size: 8.3333333333%;\n}\n\n.editable-list__item--size-2 {\n display: flex;\n flex-grow: 3;\n inline-size: 16.6666666667%;\n}\n\n.editable-list__item--size-3 {\n display: flex;\n flex-grow: 4;\n inline-size: 25%;\n}\n\n.editable-list__item--size-4 {\n display: flex;\n flex-grow: 5;\n inline-size: 33.3333333333%;\n}\n\n.editable-list__item--size-5 {\n display: flex;\n flex-grow: 6;\n inline-size: 41.6666666667%;\n}\n\n.editable-list__item--size-6 {\n display: flex;\n flex-grow: 7;\n inline-size: 50%;\n}\n\n.editable-list__item--size-7 {\n display: flex;\n flex-grow: 8;\n inline-size: 58.3333333333%;\n}\n\n.editable-list__item--size-8 {\n display: flex;\n flex-grow: 9;\n inline-size: 66.6666666667%;\n}\n\n.editable-list__item--size-9 {\n display: flex;\n flex-grow: 10;\n inline-size: 75%;\n}\n\n.editable-list__item--size-10 {\n display: flex;\n flex-grow: 11;\n inline-size: 83.3333333333%;\n}\n\n.editable-list__item--size-11 {\n display: flex;\n flex-grow: 12;\n inline-size: 91.6666666667%;\n}\n\n.editable-list__item--size-12 {\n display: flex;\n flex-grow: 13;\n inline-size: 100%;\n}\n\n.editable-list__item--size-fit {\n inline-size: fit-content;\n}\n\n.editable-list__item-action {\n align-items: flex-start;\n display: flex;\n justify-content: center;\n inline-size: 100px;\n\n .tyk-button {\n margin-block-start: 20px;\n }\n}\n\n.editable-list__item-action--read-only {\n color: var(--color-default-light);\n align-items: center;\n\n .tyk-button {\n margin-block-start: 0;\n }\n}",".tyk-file-input__wrapper {\n position: relative;\n\n > input {\n padding-block: 6px;\n padding-inline: var(--spacing-md);\n }\n\n > button {\n background: none;\n border: none;\n cursor: pointer;\n position: absolute;\n inset-inline-end: var(--spacing-base);\n inset-block-start: 9px;\n }\n}\n",".tyk-multiselect {\n align-items: flex-start;\n border-radius: var(--general-border-radius);\n flex-wrap: wrap;\n display: flex;\n margin-block-end: var(--spacing-md);\n inline-size: 100%;\n\n /* FALLBACK FOR ANGULAR COMPONENTS */\n .input-group .input-group-addon + .form-control {\n border-width: 1px !important;\n border-inline-start: none !important;\n border-start-start-radius: 0 !important;\n border-start-end-radius: 0 !important;\n border-end-start-radius: 0 !important;\n border-end-end-radius: 0 !important;\n }\n\n .input-group .input-group-addon {\n background: transparent !important;\n border-width: 1px !important;\n border-inline-end: 0 !important;\n border-start-start-radius: 0 !important;\n border-start-end-radius: 0 !important;\n border-end-start-radius: 0 !important;\n border-end-end-radius: 0 !important;\n }\n\n /* END FALLBACK FOR ANGULAR COMPONENTS */\n\n &.has-error {\n border: var(--general-border-width) solid var(--color-danger-base);\n }\n\n .tyk-form-group {\n margin: 0;\n }\n\n .tyk-multiselect-item__controls {\n display: flex;\n margin-inline-start: auto;\n flex-wrap: nowrap;\n\n .tyk-button {\n color: var(--text-color);\n margin-inline-start: var(--spacing-xs);\n\n &:last-child {\n margin-inline-start: 0;\n }\n }\n }\n}\n\n.tyk-multiselect__header {\n background-color: var(--color-default-base);\n border-start-start-radius: var(--general-border-radius);\n border-start-end-radius: var(--general-border-radius);\n color: white;\n display: flex;\n inline-size: 100%;\n\n > div {\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-base);\n inline-size: 50%;\n }\n}\n\n.tyk-multiselect__panel-wrapper {\n border: var(--form-control-border);\n border-block-start: none;\n border-end-start-radius: var(--general-border-radius);\n border-end-end-radius: var(--general-border-radius);\n display: flex;\n flex: 1;\n block-size: 265px;\n inline-size: 100%;\n}\n\n.tyk-multiselect__panel {\n display: flex;\n flex-direction: column;\n margin-block: 0;\n margin-inline: -1px 0;\n position: relative;\n inline-size: calc(50% + 1px);\n\n &:last-child {\n border-inline-start: var(--form-control-border);\n\n .tyk-form-group {\n margin-inline-start: -1px;\n inline-size: calc(100% + 2px);\n }\n }\n\n .tyk-message {\n margin-block: var(--spacing-md) 0;\n margin-inline: var(--spacing-md);\n }\n}\n\n.tyk-multiselect__list {\n list-style-type: none;\n margin: 0;\n padding: 0;\n\n > li {\n border-block-end: var(--form-control-border);\n display: flex;\n flex-direction: column;\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-base);\n\n > div {\n align-items: start;\n display: flex;\n inline-size: 100%;\n }\n\n .loading {\n justify-content: center;\n }\n\n &:last-child {\n border-block-end: none;\n }\n }\n}\n\n.tyk-multiselect__list--scroll {\n block-size: 100%;\n overflow-y: auto;\n}\n\n.tyk-multiselect-item__name {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n",":root {\n --pagination-border-radius: var(--general-border-radius);\n --pagination-button-padding: var(--spacing-sm) var(--spacing-base);\n}\n\n.tyk-pagination {\n display: flex;\n list-style-type: none;\n margin-block: var(--spacing-sm);\n margin-inline: 0;\n padding: 0;\n\n li {\n align-items: center;\n display: flex;\n }\n\n li:first-child button {\n border-start-start-radius: var(--pagination-border-radius);\n border-end-start-radius: var(--pagination-border-radius);\n }\n\n li:last-child button {\n border-start-end-radius: var(--pagination-border-radius);\n border-end-end-radius: var(--pagination-border-radius);\n }\n\n span {\n margin-block: 0;\n margin-inline: var(--spacing-sm);\n }\n\n button {\n background: white;\n border: none;\n font-size: var(--sm-font-size);\n font-family: var(--font-family-bold);\n cursor: pointer;\n color: var(--color-default-base);\n margin-inline-start: -1px;\n padding: var(--pagination-button-padding);\n\n &:hover {\n background-color: var(--color-success-light);\n }\n }\n\n .active button {\n background-color: var(--color-success-base);\n color: white;\n }\n}\n",":root {\n --radio-description-text-padding: 0 0 0 20px;\n}\n\n.tyk-radio {\n label {\n align-items: center;\n display: flex;\n }\n}\n\n.tyk-radio--is-disabled {\n label, p {\n cursor: not-allowed;\n opacity: 0.5;\n }\n}\n\n.tyk-radio__description-text {\n padding: var(--radio-description-text-padding);\n}",".tyk-select {\n background: transparent url('./images/arrow_down.svg') no-repeat calc(100% - 15px) center;\n background-size: var(--spacing-base) var(--spacing-base);\n}",".tyk-selectable-list {\n margin-block-end: var(--spacing-md);\n inline-size: 100%;\n\n li:not(.tyk-selectable-list__no-items-message) {\n font-family: var(--font-family-medium);\n padding: 0;\n\n .tyk-message {\n margin-block-end: 0;\n }\n\n label {\n font-family: var(--font-family-medium);\n margin: 0;\n }\n\n > label {\n align-items: center;\n cursor: pointer;\n display: flex;\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-md);\n\n input[type=\"checkbox\"] {\n margin-inline-start: auto;\n }\n }\n }\n}\n\n.tyk-selectable-list__item--with-icon {\n & input[type=\"checkbox\"] {\n visibility: hidden;\n }\n}\n","textarea.tyk-form-control {\n block-size: auto;\n}\n",":root {\n --toggle-font-family: var(--font-family-bold);\n --toggle-list-background-color: var(--color-background-light);\n --toggle-list-text-color: white;\n --toggle-list-background-color-on-dark: white;\n --toggle-list-text-color-on-dark: var(--text-color);\n --toggle-top: 4px;\n --toggle-bottom: 4px;\n --toggle-label-font-size: var(--sm-font-size);\n --toggle-label-font-family: var(--font-family-medium);\n --toggle-label-color: var(--label-color);\n --toggle-padding: 0;\n}\n\n.tyk-toggle {\n display: inline-flex;\n flex-wrap: wrap;\n font-family: var(--toggle-font-family);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n white-space: nowrap;\n\n &.block {\n margin-block-end: var(--spacing-md);\n inline-size: 100%;\n\n + .tyk-toggle {\n margin-inline-start: 0;\n }\n }\n\n &.inline-label {\n align-items: center;\n flex-wrap: nowrap;\n }\n\n + .tyk-button,\n + .tyk-dropdown,\n + .tyk-toggle {\n margin-inline-start: var(--spacing-sm)\n }\n}\n\n.tyk-toggle__list--has-error {\n border: var(--error-border);\n}\n\n.tyk-toggle .tyk-toggle__label {\n display: block;\n font-family: var(--toggle-label-font-family);\n font-size: var(--toggle-label-font-size);\n padding: var(--toggle-padding);\n inline-size: 100%;\n color: var(--toggle-label-color);\n}\n\n.tyk-toggle.inline-label .tyk-toggle__label {\n margin-inline-end: var(--spacing-sm);\n inline-size: auto;\n}\n\n.tyk-toggle--disabled-true {\n cursor: not-allowed;\n opacity: 0.7;\n}\n\n.tyk-toggle--column {\n .tyk-toggle__list--separated {\n display: flex;\n flex-direction: column;\n margin-inline-end: var(--spacing-md);\n\n .tyk-toggle__item {\n background-color: var(--toggle-list-background-color);\n margin-inline-end: auto;\n }\n }\n}\n\n.tyk-toggle__list {\n background: var(--toggle-list-background-color);\n border-radius: 25px;\n display: flex;\n list-style-type: none;\n margin: 0;\n padding: 0;\n position: relative;\n}\n\n.tyk-toggle__list--separated {\n background: transparent;\n flex-wrap: wrap;\n}\n\n.tyk-toggle--on-dark .tyk-toggle__list {\n background: var(--toggle-list-background-color-on-dark);\n}\n\n.tyk-toggle--default .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--default .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--default .tyk-toggle__list--separated .tyk-toggle__item--active {\n background-color: var(--button-default-color);\n color: white;\n border: var(--general-border-width) solid transparent;\n\n &:hover {\n background-color: var(--button-default-color);\n color: white;\n }\n\n span {\n color: white;\n }\n}\n\n.tyk-toggle--primary .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--primary .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--primary .tyk-toggle__list--separated .tyk-toggle__item--active {\n background-color: var(--color-primary-base);\n color: white;\n border: var(--general-border-width) solid transparent;\n\n &:hover {\n background-color: var(--color-primary-base);\n color: white;\n }\n\n span {\n color: white;\n }\n}\n\n.tyk-toggle--success .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--success .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--success .tyk-toggle__list--separated .tyk-toggle__item--active {\n background-color: var(--color-success-dark);\n color: white;\n border: var(--general-border-width) solid transparent;\n\n &:hover {\n background-color: var(--color-success-dark);\n color: white;\n }\n\n span {\n color: white;\n }\n}\n\n.tyk-toggle--danger .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--danger .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--danger .tyk-toggle__list--separated .tyk-toggle__item--active {\n background-color: var(--color-danger-base);\n color: white;\n border: var(--general-border-width) solid transparent;\n\n &:hover {\n background-color: var(--color-danger-base);\n color: white;\n }\n}\n\n.tyk-toggle--warning .tyk-toggle__item--active span {\n color: var(--text-color);\n}\n\n.tyk-toggle--warning .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--warning .tyk-toggle__list--separated .tyk-toggle__item--active {\n background-color: var(--color-warning-base);\n color: var(--text-color);\n border: var(--general-border-width) solid transparent;\n\n &:hover {\n background-color: var(--color-warning-base);\n color: var(--text-color);\n }\n}\n\n\n.tyk-toggle--primary-gradient .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--primary-gradient .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--primary-gradient .tyk-toggle__list--separated .tyk-toggle__item--active {\n border-image: linear-gradient(to right, var(--color-primary-base), var(--color-primary-dark), var(--color-primary-base)) 0 round;\n background: transparent linear-gradient(to right, var(--color-primary-base), var(--color-primary-dark), var(--color-primary-base));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: white;\n\n span {\n color: white;\n }\n}\n\n.tyk-toggle--success-gradient .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--success-gradient .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--success-gradient .tyk-toggle__list--separated .tyk-toggle__item--active {\n border-image: linear-gradient(to right, var(--color-success-base), var(--color-success-dark), var(--color-success-base)) 0 round;\n background: transparent linear-gradient(to right, var(--color-success-base), var(--color-success-dark), var(--color-success-base));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: white;\n\n span {\n color: white;\n }\n}\n\n\n.tyk-toggle--danger-gradient .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--danger-gradient .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--danger-gradient .tyk-toggle__list--separated .tyk-toggle__item--active {\n border-image: linear-gradient(to right, var(--color-danger-base), var(--color-danger-dark), var(--color-danger-base)) 0 round;\n background: transparent linear-gradient(to right, var(--color-danger-base), var(--color-danger-dark), var(--color-danger-base));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: white;\n\n span {\n color: white;\n }\n}\n\n\n.tyk-toggle--warning-gradient .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--warning-gradient .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--warning-gradient .tyk-toggle__list--separated .tyk-toggle__item--active {\n border-image: linear-gradient(to right, var(--color-warning-light), var(--color-warning-base), var(--color-warning-light)) 0 round;\n background: transparent linear-gradient(to right, var(--color-warning-light), var(--color-warning-base), var(--color-warning-light));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: var(--text-color);\n\n span {\n color: white;\n }\n}\n\n.tyk-toggle__item {\n color: var(--toggle-list-text-color);\n text-transform: uppercase;\n z-index: 2;\n border: 2px solid transparent;\n\n &:first-child {\n border-start-start-radius: 25px;\n border-end-start-radius: 25px;\n }\n\n &:last-child {\n border-start-end-radius: 25px;\n border-end-end-radius: 25px;\n }\n\n .tyk-toggle__list--separated & {\n border-radius: 25px;\n margin-block: var(--spacing-xs);\n margin-inline-end: var(--spacing-sm);\n\n &:last-child {\n margin-inline-end: 0;\n }\n }\n\n input {\n display: none;\n }\n\n label {\n cursor: pointer;\n font-family: var(--toggle-font-family);\n position: relative;\n margin: 0;\n transition: all .2s ease;\n\n .tyk-toggle__list--single & {\n padding-inline-start: 45px;\n }\n }\n}\n\n.tyk-toggle__list--single .tyk-toggle__item--active {\n label {\n padding-inline-start: 25px;\n padding-inline-end: 45px;\n\n .tyk-toggle__item-notch {\n inset-inline-start: calc(100% - 35px);\n }\n }\n}\n\n.tyk-toggle--on-dark .tyk-toggle__item:not(.tyk-toggle__item--active) {\n color: var(--toggle-list-text-color-on-dark);\n}\n\n.tyk-toggle--on-dark .tyk-toggle__item-notch--single {\n background: var(--color-background-light);\n}\n\n.tyk-toggle--sm label {\n padding-block: calc(var(--padding-y-button-sm) + 2px);\n padding-inline: calc(var(--padding-x-button-sm) + 2px);\n font-size: var(--xs-font-size);\n line-height: var(--xs-line-height);\n border-radius: var(--button-border-radius);\n}\n\n.tyk-toggle--sm .tyk-toggle__list--single label {\n padding-inline-start: 35px;\n}\n\n.tyk-toggle--sm .tyk-toggle__list--single .tyk-toggle__item--active label {\n padding-inline-start: 17px;\n padding-inline-end: 35px;\n\n .tyk-toggle__item-notch {\n inset-inline-start: calc(100% - 27px);\n }\n}\n\n.tyk-toggle--md label {\n padding-block: calc(var(--padding-y-button-md) + 2px);\n padding-inline: calc(var(--padding-x-button-md) + 2px);\n font-size: var(--sm-font-size);\n line-height: var(--line-height-button-sm);\n border-radius: var(--button-border-radius);\n}\n\n.tyk-toggle--lg label {\n padding-block: calc(var(--padding-y-button-lg) + 2px);\n padding-inline: calc(var(--padding-x-button-lg) + 2px);\n font-size: var(--sm-font-size);\n line-height: var(--line-height-button-sm);\n border-radius: var(--button-border-radius);\n}\n\n.tyk-toggle--lg .tyk-toggle__list--single label {\n padding-inline-start: 45px;\n}\n\n.tyk-toggle--lg .tyk-toggle__list--single .tyk-toggle__item--active label {\n padding-inline-start: 25px;\n padding-inline-end: 45px;\n\n .tyk-toggle__item-notch {\n inset-inline-start: calc(100% - 43px);\n }\n}\n\n.tyk-toggle__item-notch {\n border-radius: 25px;\n inset-block: 2px;\n position: absolute;\n transition: all .2s ease;\n}\n\n.tyk-toggle__item-notch--single {\n background: white;\n inset-inline-start: 2px;\n inline-size: 32px;\n}\n\n.tyk-toggle--sm .tyk-toggle__item-notch--single {\n inline-size: 24px;\n}\n\n.tyk-toggle--lg .tyk-toggle__item-notch--single {\n inline-size: 40px;\n}\n\n.tyk-toggle__notch {\n border-radius: 25px;\n inset-inline-start: 0;\n position: absolute;\n inset-block-start: var(--toggle-top);\n inset-block-end: var(--toggle-bottom);\n transition: all .2s ease;\n inline-size: 100px;\n z-index: 1;\n}\n\n.tyk-toggle--default .tyk-toggle__notch {\n --toggle-notch-background: var(--button-default-color);\n --toggle-notch-border: transparent;\n --toggle-notch-color: white;\n --toggle-notch-hover-background: var(--button-default-color);\n --toggle-notch-hover-color: white;\n}\n\n.tyk-toggle--primary .tyk-toggle__notch {\n --toggle-notch-background: var(--primary-base);\n --toggle-notch-border: transparent;\n --toggle-notch-color: white;\n --toggle-notch-hover-background: var(--primary-base);\n --toggle-notch-hover-color: white;\n}\n\n.tyk-toggle--success .tyk-toggle__notch {\n --toggle-notch-background: var(--success-base);\n --toggle-notch-border: transparent;\n --toggle-notch-color: white;\n --toggle-notch-hover-background: var(--success-base);\n --toggle-notch-hover-color: white;\n}\n\n.tyk-toggle--danger .tyk-toggle__notch {\n --toggle-notch-background: var(--color-danger-base);\n --toggle-notch-border: transparent;\n --toggle-notch-color: white;\n --toggle-notch-hover-background: var(--color-danger-base);\n --toggle-notch-hover-color: white;\n}\n\n.tyk-toggle--warning .tyk-toggle__notch {\n --toggle-notch-background: var(--color-warning-base);\n --toggle-notch-border: transparent;\n --toggle-notch-color: var(--text-color);\n --toggle-notch-hover-background: var(--color-warning-base);\n --toggle-notch-hover-color: var(--text-color);\n}\n\n.tyk-toggle--default .tyk-toggle__notch,\n.tyk-toggle--primary .tyk-toggle__notch,\n.tyk-toggle--success .tyk-toggle__notch,\n.tyk-toggle--danger .tyk-toggle__notch,\n.tyk-toggle--warning .tyk-toggle__notch {\n background-color: var(--toggle-notch-background);\n color: var(--toggle-notch-color);\n border: var(--general-border-width) solid var(--toggle-notch-border);\n\n &:hover {\n background-color: var(--toggle-notch-hover-background);\n color: var(--toggle-notch-hover-color);\n }\n}\n\n.tyk-toggle--primary-gradient .tyk-toggle__notch {\n --toggle-notch-gradient-left-color: var(--color-primary-base);\n --toggle-notch-gradient-right-color: var(--color-primary-dark);\n --toggle-notch-gradient-color: white;\n}\n\n.tyk-toggle--success-gradient .tyk-toggle__notch {\n --toggle-notch-gradient-left-color: var(--color-success-base);\n --toggle-notch-gradient-right-color: var(--color-success-dark);\n --toggle-notch-gradient-color: white;\n}\n\n.tyk-toggle--danger-gradient .tyk-toggle__notch {\n --toggle-notch-gradient-left-color: var(--color-danger-base);\n --toggle-notch-gradient-right-color: var(--color-danger-dark);\n --toggle-notch-gradient-color: white;\n}\n\n.tyk-toggle--warning-gradient .tyk-toggle__notch {\n --toggle-notch-gradient-left-color: var(--color-warning-light);\n --toggle-notch-gradient-right-color: var(--color-warning-base);\n --toggle-notch-gradient-color: var(--text-color);\n}\n\n.tyk-toggle--primary-gradient .tyk-toggle__notch,\n.tyk-toggle--success-gradient .tyk-toggle__notch,\n.tyk-toggle--danger-gradient .tyk-toggle__notch,\n.tyk-toggle--warning-gradient .tyk-toggle__notch {\n border-image: linear-gradient(to right, var(--toggle-notch-gradient-left-color), var(--toggle-notch-gradient-right-color), var(--toggle-notch-gradient-left-color)) 0 round;\n background: transparent linear-gradient(to right, var(--toggle-notch-gradient-left-color), var(--toggle-notch-gradient-right-color), var(--toggle-notch-gradient-left-color));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: var(--toggle-notch-gradient-color);\n}\n\n.empty-toggle {\n padding: 1px;\n}","* {\n box-sizing: border-box;\n}\n\nbody {\n background-color: var(--color-background-base);\n color: var(--text-color);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n font-family: var(--font-family-regular);\n}\n\n.tyk-main-wrapper {\n display: flex;\n flex-wrap: nowrap;\n}\n\n.tyk-main-content-wrapper {\n flex: 1;\n}\n\n.well {\n background: transparent;\n border: var(--general-border-width) solid var(--color-default-light);\n border-radius: var(--general-border-radius);\n box-shadow: none;\n\n &.has-error {\n border-color: var(--color-danger-base);\n }\n}\n",".title-medium {\n font-family: var(--font-family-medium);\n color: var(--label-color);\n font-size: var(--title-medium-font-size);\n}",".right-align {\n text-align: end !important;\n}\n\n.left-align {\n text-align: start !important;\n}\n\n.center-align {\n text-align: center !important;\n}\n\n.left {\n float: inline-start !important;\n}\n\n.right {\n float: inline-end !important;\n}\n\n.hide {\n display: none !important;\n}\n\n.no-margin {\n margin: 0 !important;\n}\n\n.no-margin-bottom {\n margin-block-end: 0 !important;\n}\n\n.no-margin-top {\n margin-block-start: 0 !important;\n}\n\n.no-margin-right {\n margin-inline-end: 0 !important;\n}\n\n.no-margin-left {\n margin-inline-start: 0 !important;\n}\n\n.disabled-section {\n color: var(--color-default-light);\n}\n\n.top-buffer-large {\n margin-block-start: var(--top-buffer-large) !important;\n}\n\n.top-buffer-small {\n margin-block-start: var(--top-buffer-small) !important;\n}\n\n.top-buffer-medium {\n margin-block-start: var(--top-buffer-medium) !important;\n}\n\n.bottom-buffer-large {\n margin-block-end: var(--bottom-buffer-large) !important;\n}\n\n.bottom-buffer-small {\n margin-block-end: var(--bottom-buffer-small) !important;\n}\n\n.bottom-buffer-medium {\n margin-block-end: var(--bottom-buffer-medium) !important;\n}\n\n.right-buffer-large {\n margin-inline-end: var(--right-buffer-large) !important;\n}\n\n.right-buffer-small {\n margin-inline-end: var(--right-buffer-small) !important;\n}\n\n.right-buffer-medium {\n margin-inline-end: var(--right-buffer-medium) !important;\n}\n\n.left-buffer-large {\n margin-inline-start: var(--left-buffer-large) !important;\n}\n\n.left-buffer-small {\n margin-inline-start: var(--left-buffer-small) !important;\n}\n\n.left-buffer-medium {\n margin-inline-start: var(--left-buffer-medium) !important;\n}\n\n.word-wrap {\n word-wrap: break-word;\n word-break: break-all;\n}\n\n.clear-left {\n clear: inline-start;\n}\n\n.flex-container {\n display: flex;\n}\n\n.vertical-center-align {\n align-items: center;\n}\n\n\n.right-align-controls {\n align-items: center;\n display: flex;\n margin-inline-start: auto;\n}\n\n.inline-label {\n margin-inline-end: 15px;\n}\n\n.nowrap {\n white-space: nowrap;\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"index.css","mappings":"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,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,4BAA6B,CAC7B,iCACF,CAEA,uBACE,wBACF,CACF,CAEA,6CACE,eACE,gBAA2B,CAC3B,qBACF,CAEA,sBACE,qBACF,CAEA,eACE,gCAAsC,CACtC,qCACF,CAEA,sBACE,iCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,4BAA6B,CAC7B,iCACF,CAEA,uBACE,wBACF,CACF,CAEA,2CACE,eACE,gBAA2B,CAC3B,qBACF,CAEA,sBACE,qBACF,CAEA,eACE,gCAAsC,CACtC,qCACF,CAEA,sBACE,iCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,4BAA6B,CAC7B,iCACF,CAEA,uBACE,wBACF,CACF,CAEA,mCACE,eACE,gBAA2B,CAC3B,qBACF,CAEA,sBACE,qBACF,CAEA,eACE,gCAAsC,CACtC,qCACF,CAEA,sBACE,iCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,4BAA6B,CAC7B,iCACF,CAEA,uBACE,wBACF,CACF,CC1iBA,WACE,sBAAuB,CAIvB,iBAAkB,CADlB,eAAmB,CAFnB,qGAIF,CAEA,WACE,uBAAwB,CAIxB,iBAAkB,CADlB,eAAmB,CAFnB,uGAIF,CAEA,WACE,wBAAyB,CAIzB,iBAAkB,CADlB,eAAmB,CAFnB,yGAIF,CAEA,WACE,yBAA0B,CAI1B,iBAAkB,CADlB,eAAmB,CAFnB,2GAIF,CAEA,WACE,0BAA2B,CAI3B,iBAAkB,CADlB,eAAmB,CAFnB,6GAIF,CAEA,WACE,yBAA0B,CAI1B,iBAAkB,CADlB,eAAmB,CAFnB,+FAIF,CAEA,WACE,6BAA8B,CAI9B,iBAAkB,CADlB,eAAmB,CAFnB,uGAIF,CAEA,WACE,4BAA6B,CAI7B,iBAAkB,CADlB,eAAmB,CAFnB,qGAIF,CAEA,WACE,0BAA6B,CAI7B,iBAAkB,CADlB,eAAmB,CAFnB,iHAIF,CAEA,WACE,4BAA+B,CAI/B,iBAAkB,CADlB,eAAmB,CAFnB,qHAIF,CAEA,WACE,6BAAgC,CAIhC,iBAAkB,CADlB,eAAmB,CAFnB,uHAIF,CAEA,WACE,iBAAkB,CAIlB,iBAAkB,CADlB,eAAmB,CAFnB,+EAIF;;AC9FA;;;;EAIE,CACF,YAEE,qDAAwD,CAE1D,WAIE,kBAAmB,CAHnB,+BAAiC,CACjC,iBAAkB,CAClB,eAAgB,CAEhB,wHAA4I,CAE9I,eAEE,eAAkB;;AClBpB;;;;EAIE,CACF,YACE,8CAA+C,CAC/C,qDAAwD,CAE1D,WAIE,kBAAmB,CAHnB,+BAAiC,CACjC,iBAAkB,CAClB,eAAgB,CAEhB,wHAA4I,CAE9I,eAEE,eAAkB;;AClBpB;;;;EAIE,CACF,IACE,uDAAyD,CACzD,+BAAmC,CAErC,gKAoBE,iCAAkC,CAClC,kCAAmC,CACnC,sCAAwC,CACxC,iBAAkB,CAClB,mBAAoB,CACpB,aAAc,CACd,mBAAsB,CAExB,yEASE,+BAAmC,CAErC,gBAEE,kCAAsC,CAExC,wCAGE,mCAAuC,CAEzC,kCAKE,iCAAqC,CAEvC,gBAEE,eAAkB,CAEpB,OACE,aAAgB,CAElB,OACE,aAAgB,CAElB,OACE,aAAgB,CAElB,OACE,aAAgB,CAElB,OACE,aAAgB,CAElB,OACE,aAAgB,CAElB,OACE,aAAgB,CAElB,OACE,aAAgB,CAElB,OACE,aAAgB,CAElB,QACE,cAAiB,CAEnB,QACE,gBAAkB,CAClB,gBAAkB,CAClB,qBAAyB,CAE3B,OACE,eAAiB,CACjB,oBAAsB,CACtB,qBAAyB,CAE3B,OACE,gBAAkB,CAClB,oBAAsB,CACtB,uBAA2B,CAE7B,OACE,gBAAiB,CACjB,iBAAmB,CACnB,sBAA0B,CAE5B,OACE,eAAgB,CAChB,oBAAsB,CACtB,sBAA0B,CAE5B,QACE,aAAc,CACd,oBAAsB,CACtB,uBAA2B,CAE7B,OACE,iBAAkB,CAClB,YAAe,CAEjB,OACE,oBAAqB,CACrB,qCAAuC,CACvC,cAAiB,CACjB,UACE,iBAAoB,CAExB,OACE,qCAAwC,CAIxC,mBAAoB,CAHpB,iBAAkB,CAClB,iBAAkB,CAClB,4BACsB,CAExB,WACE,wCAA0C,CAC1C,0CAA6C,CAC7C,yCAA2C,CAC3C,yCAA4C,CAC5C,iDAAwD,CAE1D,cACE,UAAW,CACX,uCAA4C,CAE9C,eACE,WAAY,CACZ,sCAA2C,CAE7C,SAGE,oDAAsD,CAC9C,4CAA8C,CACtD,gEAAkE,CAC1D,wDAA0D,CAClE,0DAA4D,CACpD,kDAAoD,CAC5D,8EAAgF,CACxE,sEAAwE,CAThF,8BAA+B,CACvB,sBAAuB,CAS/B,wEAA0E,CAClE,gEAAoE,CAE9E,WAGE,oDAAsD,CAC9C,4CAA8C,CACtD,gEAAkE,CAC1D,wDAA0D,CAClE,0DAA4D,CACpD,kDAAoD,CAC5D,8EAAgF,CACxE,sEAAwE,CAThF,gCAAiC,CACzB,wBAAyB,CASjC,wFAAgG,CACxF,gFAA0F,CAEpG,SASE,8EAAgF,CACxE,sEAAwE,CAThF,8BAA+B,CACvB,sBAAuB,CAS/B,oFAA2F,CACnF,4EAAqF,CAE/F,uBAXE,oDAAsD,CAC9C,4CAA8C,CACtD,gEAAkE,CAC1D,wDAA0D,CAClE,0DAA4D,CACpD,kDAkBqF,CAZ/F,cASE,8EAAgF,CACxE,sEAAwE,CAThF,mCAAoC,CAC5B,2BAA4B,CASpC,oFAA2F,CACnF,4EAAqF,CAE/F,SAGE,oDAAsD,CAC9C,4CAA8C,CACtD,gEAAkE,CAC1D,wDAA0D,CAClE,0DAA4D,CACpD,kDAAoD,CAC5D,8EAAgF,CACxE,sEAAwE,CAThF,8BAA+B,CACvB,sBAAuB,CAS/B,wEAA0E,CAClE,gEAAoE,CAE9E,UAOE,0DAA4D,CACpD,kDAAoD,CAC5D,8EAAgF,CACxE,sEAAwE,CAThF,+BAAgC,CACxB,uBAAwB,CAShC,mEAAqE,CAC7D,2DAA+D,CAEzE,mBAXE,oDAAsD,CAC9C,4CAA8C,CACtD,gEAAkE,CAC1D,wDAoB+D,CAZzE,SAOE,0DAA4D,CACpD,kDAAoD,CAC5D,8EAAgF,CACxE,sEAAwE,CAThF,8BAA+B,CACvB,sBAAuB,CAS/B,mEAAqE,CAC7D,2DAA+D,CAEzE,iBACE,gCAAmC,CAErC,yBAIE,gEAAkE,CAC1D,wDAA0D,CAClE,0DAA4D,CACpD,kDAAoD,CAC5D,8EAAgF,CACxE,sEAAwE,CAPhF,8BAA+B,CACvB,sBAAuB,CAO/B,qEAAuE,CAC/D,6DAAiE,CAE3E,uCACE,gGASE,4BAA6B,CACrB,oBAAqB,CAC7B,8BAA+B,CACvB,sBAAuB,CAC/B,mCAAoC,CAC5B,2BAA4B,CACpC,2BAA4B,CACpB,mBAAoB,CAC5B,8BAA+B,CACvB,sBAAyB,CAAE,CAEvC,2BACE,OACE,0BAA2B,CACnB,kBAAqB,CAC/B,IACE,kDAAoD,CAC5C,0CAA8C,CAAE,CAE5D,mBACE,OACE,0BAA2B,CACnB,kBAAqB,CAC/B,IACE,kDAAoD,CAC5C,0CAA8C,CAAE,CAE5D,6BACE,GACE,wCAA4C,CACpC,gCAAsC,CAChD,IACE,2GAAgH,CACxG,mGAA0G,CACpH,IACE,qIAA4I,CACpI,6HAAsI,CAChJ,IACE,2GAAgH,CACxG,mGAA0G,CACpH,IACE,uEAA6E,CACrE,+DAAuE,CACjF,IACE,wCAA4C,CACpC,gCAAsC,CAChD,GACE,wCAA4C,CACpC,gCAAsC,CAAE,CAEpD,qBACE,GACE,wCAA4C,CACpC,gCAAsC,CAChD,IACE,2GAAgH,CACxG,mGAA0G,CACpH,IACE,qIAA4I,CACpI,6HAAsI,CAChJ,IACE,2GAAgH,CACxG,mGAA0G,CACpH,IACE,uEAA6E,CACrE,+DAAuE,CACjF,IACE,wCAA4C,CACpC,gCAAsC,CAChD,GACE,wCAA4C,CACpC,gCAAsC,CAAE,CAEpD,2BACE,IACE,iCAAsC,CAAE,CAE5C,mBACE,IACE,iCAAsC,CAAE,CAE5C,gCACE,MACE,sCAAyC,CACzC,0BAA2B,CACnB,kBAAqB,CAC/B,IACE,SAAU,CACV,wDAA0D,CAClD,gDAAoD,CAAE,CAElE,wBACE,MACE,sCAAyC,CACzC,0BAA2B,CACnB,kBAAqB,CAC/B,IACE,SAAU,CACV,wDAA0D,CAClD,gDAAoD,CAAE,CAElE,2BACE,IACE,iHAAyH,CACjH,yGAAmH,CAAE,CAEjI,mBACE,IACE,iHAAyH,CACjH,yGAAmH,CAAE,CAEjI,4BACE,GACE,gCAAiC,CACzB,wBAA2B,CACrC,GACE,+BAAgC,CACxB,uBAA0B,CACpC,OACE,gCAAiC,CACzB,wBAA2B,CACrC,QACE,+BAAgC,CACxB,uBAA0B,CACpC,IACE,gCAAiC,CACzB,wBAA2B,CACrC,IACE,+BAAgC,CACxB,uBAA0B,CACpC,IACE,gCAAiC,CACzB,wBAA2B,CACrC,IACE,+BAAgC,CACxB,uBAA0B,CACpC,OACE,8BAA+B,CACvB,sBAAyB,CAAE,CAEvC,oBACE,GACE,gCAAiC,CACzB,wBAA2B,CACrC,GACE,+BAAgC,CACxB,uBAA0B,CACpC,OACE,gCAAiC,CACzB,wBAA2B,CACrC,QACE,+BAAgC,CACxB,uBAA0B,CACpC,IACE,gCAAiC,CACzB,wBAA2B,CACrC,IACE,+BAAgC,CACxB,uBAA0B,CACpC,IACE,gCAAiC,CACzB,wBAA2B,CACrC,IACE,+BAAgC,CACxB,uBAA0B,CACpC,OACE,8BAA+B,CACvB,sBAAyB,CAAE,CAEvC,2BACE,GACE,8BAA+B,CACvB,sBAAyB,CACnC,GACE,+BAAiC,CACzB,uBAA2B,CAAE,CAEzC,mBACE,GACE,8BAA+B,CACvB,sBAAyB,CACnC,GACE,+BAAiC,CACzB,uBAA2B,CAAE,CAEzC,cACE,+BAAgC,CACxB,uBAA0B,CAEpC,eACE,gCAAiC,CACzB,wBAA2B,CAErC,eACE,gCAAiC,CACzB,wBAA2B,CAErC,oBACE,4BAA+B,CACvB,oBAAyB,CAEnC,kBACE,4BAA+B,CACvB,oBAAyB,CAEnC,mDAEE,2BAAgC,CACxB,mBAA0B,CAEpC,cACE,kDAAoD,CAC5C,0CAA8C,CAExD,UACE,oBAAqB,CACrB,UAAW,CACX,eAAgB,CAChB,iBAAkB,CAClB,qBAAsB,CACtB,WAAc,CAEhB,0BAEE,MAAO,CACP,iBAAkB,CAClB,iBAAkB,CAClB,UAAW,CACX,oCAAwC,CAE1C,aACE,mBAAsB,CAExB,aACE,aAAgB,CAElB,YACE,4BAAgC,CAKlC,aACE,aAAgB,CAElB,aACE,aAAgB,CAElB,aACE,aAAgB,CAElB,aACE,aAAgB,CAElB,aACE,aAAgB,CAElB,aACE,aAAgB,CAElB,aACE,aAAgB,CAElB,aACE,aAAgB,CAElB,aACE,aAAgB,CAElB,aACE,aAAgB,CAElB,qBACE,eAAkB,CAEpB,4BACE,eAAkB,CAKpB,gEACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,cACE,aAAgB,CAElB,4BACE,eAAkB,CAQpB,oFACE,eAAkB,CAKpB,0CACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,0CACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,oEACE,eAAkB,CAEpB,qBACE,eAAkB,CAQpB,+DACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,iCACE,eAAkB,CAKpB,uCACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,uCACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,eACE,eAAkB,CAKpB,wCACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,0CACE,eAAkB,CAKpB,wDACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,oDACE,eAAkB,CAKpB,kEACE,eAAkB,CAEpB,mCACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,+BACE,eAAkB,CAKpB,2CACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,cACE,eAAkB,CAEpB,4BACE,eAAkB,CAKpB,gEACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,gDACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,kEACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,oDACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,qCACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,4DACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,oCACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,0CACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,gCACE,eAAkB,CAKpB,kDACE,eAAkB,CAKpB,oDACE,eAAkB,CAKpB,6CACE,eAAkB,CAKpB,kCACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,wDACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,8DACE,eAAkB,CAEpB,qCACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,0CACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,mCACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,sBACE,eAAkB,CAQpB,2EACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,kCACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,aACE,aAAgB,CAElB,4BACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,wCACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,2CACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,0CACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,gEACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,qCACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,yCACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,sCACE,eAAkB,CAQpB,2EACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,4BACE,eAAkB,CAKpB,0CACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,0DACE,eAAkB,CAQpB,wFACE,eAAkB,CAKpB,iEACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,aACE,aAAgB,CAElB,mCACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,2CACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,kCACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,iBACE,eAAkB,CAQpB,2EACE,eAAkB,CAKpB,oDACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,wCACE,eAAkB,CAKpB,6DACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,4DACE,eAAkB,CAKpB,mCACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,kBACE,aAAgB,CAElB,iBACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,+DACE,eAAkB,CAEpB,wCACE,eAAkB,CAKpB,4DACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,0DACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,sCACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,+BACE,eAAkB,CAKpB,mCACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,gDACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,qCACE,eAAkB,CAKpB,+CACE,eAAkB,CAKpB,+DACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,4DACE,eAAkB,CAEpB,+BACE,eAAkB,CAKpB,wDACE,eAAkB,CAEpB,6BACE,eAAkB,CAKpB,8DACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,+BACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,6EACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,6CACE,eAAkB,CAQpB,sEACE,eAAkB,CAKpB,wCACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,0CACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,oBACE,aAAgB,CAElB,mCACE,eAAkB,CAEpB,yBACE,eAAkB,CAQpB,sEACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,yDACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,qCACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,2CACE,eAAkB,CAKpB,wCACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,yDACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,6BACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,eACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,sCACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,eACE,eAAkB,CAQpB,gEACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,yDACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,wCACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,mCACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,yCACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,gEACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,0CACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,0CACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,sDACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,gDACE,eAAkB,CAQpB,oFACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,sCACE,eAAkB,CAKpB,6DACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,cACE,eAAkB,CAEpB,cACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,uCACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,4BACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,2DACE,eAAkB,CAKpB,kEACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,wCACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,6BACE,eAAkB,CAKpB,qCACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,kBACE,aAAgB,CAKlB,mDACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,8BACE,eAAkB,CAWpB,mFACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,kDACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,wCACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,0EACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,qBACE,eAAkB,CAQpB,oFACE,eAAkB,CAEpB,aACE,aAAgB,CAKlB,2CACE,eAAkB,CAEpB,wDACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,aACE,aAAgB,CAElB,oBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,8BACE,eAAkB,CAWpB,kGACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,wCACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,gDACE,aAAgB,CAElB,iBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,aACE,aAAgB,CAKlB,0DACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,aACE,aAAgB,CAKlB,+CACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,yBACE,eAAkB,CAWpB,0GACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,qCACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,yCACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,mCACE,eAAkB,CAKpB,oDACE,eAAkB,CAKpB,wDACE,eAAkB,CAKpB,4DACE,eAAkB,CAEpB,qBACE,aAAgB,CAElB,oBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,6BACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,sDACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,mCACE,eAAkB,CAKpB,4DACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,6BACE,eAAkB,CAKpB,0CACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,6BACE,eAAkB,CAKpB,qDACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,gBACE,eAAkB,CAWpB,6FACE,eAAkB,CAKpB,8DACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,aACE,aAAgB,CAElB,iBACE,eAAkB,CAEpB,mCACE,eAAkB,CAEpB,cACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,qCACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,iBACE,aAAgB,CAElB,+BACE,eAAkB,CAKpB,8DACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,+DACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,wDACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,aACE,aAAgB,CAElB,yBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,yCACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,wCACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,iCACE,eAAkB,CAEpB,4BACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,uDACE,eAAkB,CAWpB,mGACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,8BACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,6BACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,4BACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,4DACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,qCACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,gCACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,+BACE,aAAgB,CAElB,kBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,oCACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,mCACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,uBACE,eAAkB,CAQpB,kFACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,2CACE,eAAkB,CAKpB,qDACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,gCACE,eAAkB,CAQpB,sEACE,eAAkB,CAKpB,4DACE,eAAkB,CAEpB,iCACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,4CACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,sBACE,aAAgB,CAElB,oBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,gDACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,4BACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,8BACE,eAAkB,CAKpB,0CACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,8CACE,eAAkB,CAKpB,iDACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,iCACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,qCACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,qBACE,eAAkB,CAQpB,uEACE,eAAkB,CAKpB,qDACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,8DACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,yDACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,4DACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,aACE,aAAgB,CAElB,yBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,2CACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,6BACE,eAAkB,CAKpB,qDACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,wCACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,oCACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,oDACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,cACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,mDACE,eAAkB,CAKpB,qDACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,oCACE,eAAkB,CAKpB,gDACE,eAAkB,CAQpB,yDACE,eAAkB,CAKpB,4CACE,eAAkB,CAKpB,mCACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,yCACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,oCACE,eAAkB,CAKpB,yCACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,wDACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,mDACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,iBACE,aAAgB,CAElB,gBACE,eAAkB,CAKpB,gDACE,eAAkB,CAKpB,sEACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,2CACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,kCACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,uBACE,eAAkB,CAWpB,4GACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,yDACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,6BACE,eAAkB,CAKpB,sDACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,oCACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,+BACE,eAAkB,CAKpB,0CACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,+BACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,cACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,6BACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,wDACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,wDACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,sCACE,eAAkB,CAEpB,gCACE,aAAgB,CAKlB,sDACE,eAAkB,CAWpB,6FACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,eACE,eAAkB,CAKpB,sCACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,oBACE,eAAkB,CAQpB,2EACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,sDACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,0DACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,oBACE,eAAkB,CAQpB,oDACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,qCACE,eAAkB,CAEpB,sCACE,eAAkB,CAEpB,qCACE,eAAkB,CAEpB,eACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,+BACE,eAAkB,CAKpB,wDACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,kCACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,wDACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,kDACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,iBACE,eAAkB,CAQpB,8DACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,kCACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,mCACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,yDACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,0DACE,eAAkB,CAKpB,+CACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,iEACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,eACE,eAAkB,CAKpB,4DACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,8BACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,0BACE,eAAkB,CAWpB,4GACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,0BACE,eAAkB,CAQpB,iEACE,eAAkB,CAKpB,gEACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,gDACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,0BACE,eAAkB,CAQpB,8EACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,0CACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,sDACE,eAAkB,CAKpB,2DACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,iCACE,eAAkB,CAKpB,sCACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,sBACE,eAAkB,CAQpB,wFACE,eAAkB,CAQpB,wEACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,iCACE,eAAkB,CAKpB,sDACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,8BACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,iDACE,eAAkB,CAKpB,oDACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,0CACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,wDACE,eAAkB,CAEpB,yCACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,sBACE,eAAkB,CAQpB,oFACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,4CACE,eAAkB,CAKpB,sDACE,eAAkB,CAKpB,6CACE,eAAkB,CAKpB,wCACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,iEACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,sBACE,eAAkB,CAQpB,4DACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,0CACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,8BACE,eAAkB,CAKpB,uDACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,wDACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,mCACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,qDACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,aACE,aAAgB,CAKlB,2CACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,aACE,aAAgB,CAElB,0BACE,eAAkB,CAKpB,8DACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,aACE,aAAgB,CAElB,sBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,sCACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,8BACE,eAAkB,CAKpB,4DACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,oCACE,eAAkB,CAQpB,+DACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,yDACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,2DACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,kCACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,oBACE,aAAgB,CAElB,0BACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,oDACE,eAAkB,CAKpB,2CACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,8BACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,qDACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,uCACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,kCACE,eAAkB,CAKpB,+DACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,uBACE,eAAkB,CAQpB,kDACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,eACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,aACE,aAAgB,CAElB,gBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,+BACE,eAAkB,CAEpB,8BACE,eAAkB,CAKpB,0CACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,mCACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,wBACE,eAAkB,CAQpB,iEACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,gCACE,eAAkB,CAKpB,yDACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,4CACE,eAAkB,CAKpB,4DACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,2CACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,kCACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,8BACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,aACE,aAAgB,CAKlB,iEACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,iCACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,2CACE,eAAkB,CAEpB,kCACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,kDACE,eAAkB,CAKpB,qDACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,yCACE,eAAkB,CAEpB,mCACE,eAAkB,CAKpB,iDACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,8BACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,aACE,aAAgB,CAWlB,gHACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,8BACE,eAAkB,CAKpB,qDACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,kEACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,gDACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,mCACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,iDACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,4BACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,4BACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,2CACE,eAAkB,CAEpB,uCACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,qCACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,gDACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,0DACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,iDACE,eAAkB,CAKpB,8CACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,8BACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,yCACE,eAAkB,CAEpB,eACE,eAAkB,CAKpB,2CACE,eAAkB,CAEpB,gBACE,eAAkB,CAQpB,qFACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,qCACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,wEACE,eAAkB,CAEpB,qBACE,eAAkB,CAQpB,gEACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,qCACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,uCACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,qCACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,iCACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,uCACE,eAAkB,CAKpB,wDACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,wDACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,oCACE,eAAkB,CAKpB,2DACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,sBACE,eAAkB,CAWpB,4GACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,wDACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,6BACE,eAAkB,CAQpB,oFACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,2DACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,yCACE,eAAkB,CAEpB,6BACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,iDACE,eAAkB,CAKpB,4DACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,oFACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,kEACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,oCACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,6CACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,oBACE,eAAkB,CAQpB,uFACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,iBACE,eAAkB,CAQpB,kFACE,eAAkB,CAKpB,8DACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,eACE,eAAkB,CAKpB,mDACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,qBACE,eAAkB,CAQpB,sDACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,mCACE,eAAkB,CAEpB,4BACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,aACE,aAAgB,CAElB,kBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,6DACE,eAAkB,CAKpB,8CACE,eAAkB,CAKpB,qCACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,mCACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,4CACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,6BACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,aACE,aAAgB,CAKlB,8CACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,cACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,0CACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,iDACE,eAAkB,CAKpB,yCACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,wDACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,sCACE,eAAkB,CAKpB,kEACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,mCACE,eAAkB,CAKpB,gDACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,8DACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,oBACE,eAAkB,CAQpB,iEACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,cACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,gCACE,eAAkB,CAKpB,gEACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,8BACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,8CACE,eAAkB,CAKpB,2DACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,4CACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,0CACE,eAAkB,CAEpB,sBACE,aAAgB,CAKlB,8CACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,wCACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,kBACE,eAAkB,CAQpB,mFACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,8DACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,iEACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,0EACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,kCACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,wBACE,eAAkB,CAQpB,+EACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,4BACE,eAAkB,CAKpB,mDACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,2DACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,kCACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,kBACE,eAAkB,CAcpB,wIACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,qCACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,+DACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,sCACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,4BACE,eAAkB,CAKpB,yDACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,qDACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,uDACE,eAAkB,CAKpB,wDACE,eAAkB,CAEpB,uCACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,uCACE,eAAkB,CAKpB,0CACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,kCACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,yDACE,eAAkB,CAEpB,yBACE,eAAkB,CAQpB,oEACE,eAAkB,CAKpB,2CACE,eAAkB,CAKpB,kDACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,wDACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,+BACE,aAAgB,CAElB,2BACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,qCACE,eAAkB,CAKpB,uCACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,mCACE,eAAkB,CAKpB,4CACE,eAAkB,CAWpB,kKACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,kCACE,eAAkB,CAQpB,sFACE,eAAkB,CAQpB,+EACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,iCACE,eAAkB,CAKpB,kDACE,eAAkB,CAKpB,+BACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,yCACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,iDACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,4BACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,4BACE,eAAkB,CAKpB,gDACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,mDACE,eAAkB,CAKpB,gDACE,eAAkB,CAKpB,0DACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,wCACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,6BACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,aACE,aAAgB,CAElB,qCACE,eAAkB,CAKpB,2DACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,uCACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,aACE,aAAgB,CAElB,oBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,mCACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,8DACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,2DACE,eAAkB,CAKpB,gDACE,eAAkB,CAWpB,8HACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,4DACE,eAAkB,CAEpB,6BACE,eAAkB,CAQpB,gEACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,wCACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,mCACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,4DACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,4CACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,6BACE,eAAkB,CAKpB,2CACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,aACE,aAAgB,CAElB,gBACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,qCACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,iCACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,wCACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,qCACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,wBACE,eAAkB,CAQpB,0EACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,sBACE,eAAkB,CAQpB,oEACE,eAAkB,CAEpB,oCACE,eAAkB,CAKpB,mCACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,2CACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,qCACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,oCACE,eAAkB,CAWpB,4EACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,aACE,aAAgB,CAElB,wBACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,gBACE,aAAgB,CAElB,wBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,sDACE,eAAkB,CAQpB,sEACE,eAAkB,CAKpB,uCACE,eAAkB,CAKpB,yDACE,eAAkB,CAEpB,0CACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,uDACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,2CACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,kEACE,eAAkB,CAKpB,yDACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,oDACE,eAAkB,CAKpB,6CACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,sDACE,eAAkB,CAKpB,+BACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,8BACE,eAAkB,CAcpB,gFACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,iBACE,eAAkB,CAWpB,wEACE,eAAkB,CAKpB,uDACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,2CACE,eAAkB,CAEpB,eACE,eAAkB,CAKpB,sDACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,6BACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,2CACE,eAAkB,CAKpB,iDACE,eAAkB,CAQpB,wEACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,+BACE,eAAkB,CAKpB,wDACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,+BACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,uBACE,eAAkB,CAQpB,6FACE,eAAkB,CAEpB,qBACE,aAAgB,CAKlB,gDACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,+CACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,wDACE,eAAkB,CAQpB,wFACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,+BACE,eAAkB,CAKpB,0CACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,qCACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,qCACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,uBACE,eAAkB,CAWpB,oGACE,eAAkB,CAEpB,4BACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,mCACE,eAAkB,CAEpB,qCACE,eAAkB,CAEpB,gCACE,eAAkB,CAQpB,yEACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,yCACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,6BACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,wCACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,oCACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,eACE,eAAkB,CAWpB,0GACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,wBACE,aAAgB,CAKlB,oDACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,wBACE,aAAgB,CAElB,kBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,6BACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,4DACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,mCACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,yBACE,eAAkB,CAWpB,8FACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,8BACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,gDACE,eAAkB,CAQpB,+EACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,qBACE,eAAkB,CAQpB,qEACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,4DACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,8BACE,eAAkB,CAQpB,+DACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,6BACE,eAAkB,CAKpB,qDACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,iBACE,eAAkB,CAQpB,+DACE,eAAkB,CAEpB,qCACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,iCACE,eAAkB,CAKpB,6DACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,2CACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,8CACE,eAAkB,CAQpB,6FACE,eAAkB,CAKpB,sDACE,eAAkB,CAKpB,wDACE,eAAkB,CAKpB,2DACE,eAAkB,CAKpB,2CACE,eAAkB,CAKpB,4DACE,eAAkB,CAWpB,oHACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,uDACE,aAAgB,CAElB,mBACE,eAAkB,CAKpB,6DACE,eAAkB,CAEpB,iBACE,aAAgB,CAElB,2BACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,yCACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,wBACE,eAAkB,CAQpB,qEACE,eAAkB,CAKpB,oEACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,qCACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,2DACE,eAAkB,CAEpB,kCACE,eAAkB,CAEpB,wBACE,eAAkB,CAQpB,gEACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,4BACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,wCACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,+BACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,iCACE,eAAkB,CAQpB,sDACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,oCACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,yCACE,eAAkB,CAKpB,0CACE,eAAkB,CAEpB,aACE,aAAgB,CAElB,wBACE,eAAkB,CAKpB,iDACE,eAAkB,CAKpB,uDACE,eAAkB,CAKpB,gEACE,eAAkB,CAEpB,+BACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,oCACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,2CACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,oCACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,8DACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,uDACE,eAAkB,CAKpB,qDACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,wBACE,eAAkB,CAQpB,uEACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,2CACE,eAAkB,CAKpB,qDACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,eACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,+BACE,aAAgB,CAElB,kBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,uBACE,eAAkB,CAcpB,yFACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,uDACE,eAAkB,CAKpB,yDACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,yDACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,wCACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,4BACE,eAAkB,CAQpB,qEACE,aAAgB,CAKlB,uDACE,eAAkB,CAKpB,4DACE,eAAkB,CAEpB,cACE,eAAkB,CAEpB,kBACE,aAAgB,CAKlB,2CACE,eAAkB,CAEpB,qCACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,mBACE,eAAkB,CAcpB,iGACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,iCACE,eAAkB,CAKpB,6CACE,eAAkB,CAKpB,6EACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,wCACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,wBACE,eAAkB,CAQpB,6EACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,mEACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,wBACE,eAAkB,CAQpB,yFACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,2CACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,gDACE,eAAkB,CAKpB,qDACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,8BACE,eAAkB,CAKpB,yCACE,aAAgB,CAElB,wBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,2CACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,0CACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,eACE,eAAkB,CAKpB,yCACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,gDACE,eAAkB,CAKpB,sCACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,8DACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,iCACE,eAAkB,CAKpB,yCACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,6BACE,eAAkB,CAKpB,sDACE,eAAkB,CAQpB,oFACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,eACE,eAAkB,CAKpB,yDACE,eAAkB,CAEpB,gCACE,eAAkB,CAKpB,2CACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,oDACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,kCACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,2DACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,wDACE,eAAkB,CAKpB,0CACE,eAAkB,CAKpB,6DACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,iBACE,aAAgB,CAElB,uBACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,8CACE,eAAkB,CAKpB,8DACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,2CACE,eAAkB,CAEpB,qBACE,aAAgB,CAElB,kBACE,eAAkB,CAKpB,2DACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,2CACE,eAAkB,CAEpB,4CACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,wBACE,eAAkB,CAQpB,wEACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,mBACE,aAAgB,CAKlB,oEACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,aACE,aAAgB,CAElB,4BACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,qCACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,kCACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,6BACE,eAAkB,CAKpB,2CACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,uDACE,eAAkB,CAKpB,mCACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,8CACE,eAAkB,CAKpB,6DACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,mCACE,eAAkB,CAWpB,uFACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,0CACE,eAAkB,CAKpB,qDACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,4BACE,eAAkB,CAKpB,+BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,mDACE,eAAkB,CAKpB,mDACE,eAAkB,CAKpB,0DACE,eAAkB,CAQpB,8EACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,0CACE,eAAkB,CAEpB,aACE,aAAgB,CAElB,yBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,yCACE,eAAkB,CAEpB,cACE,eAAkB,CAEpB,gCACE,eAAkB,CAKpB,yCACE,eAAkB,CAEpB,iCACE,eAAkB,CAKpB,sCACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,2DACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,oCACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,yBACE,aAAgB,CAKlB,mDACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,gDACE,eAAkB,CAKpB,yDACE,eAAkB,CAEpB,kCACE,eAAkB,CAWpB,yGACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,yDACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,iBACE,eAAkB,CAQpB,mFACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,yCACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,wDACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,mCACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,0CACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,4DACE,eAAkB,CAEpB,qBACE,eAAkB,CAQpB,6DACE,eAAkB,CAKpB,4DACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,mCACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,wBACE,eAAkB,CAQpB,yEACE,eAAkB,CAKpB,8CACE,eAAkB,CAKpB,sDACE,eAAkB,CAKpB,2CACE,eAAkB,CAKpB,qDACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,sCACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,6BACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,0BACE,eAAkB,CAQpB,wEACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,4CACE,eAAkB,CAKpB,+CACE,eAAkB,CAKpB,wDACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,qCACE,eAAkB,CAKpB,0CACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,wCACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,0CACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,8CACE,eAAkB,CAKpB,0CACE,eAAkB,CAKpB,yCACE,eAAkB,CAEpB,8BACE,eAAkB,CAKpB,2DACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,oCACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,mCACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,gDACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,uBACE,aAAgB,CAElB,uBACE,eAAkB,CAEpB,8BACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,iBACE,eAAkB,CAQpB,oEACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,4DACE,eAAkB,CAQpB,wDACE,aAAgB,CAElB,wBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,aACE,aAAgB,CAKlB,4DACE,eAAkB,CAKpB,2CACE,eAAkB,CAEpB,oCACE,eAAkB,CAcpB,2GACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,wCACE,eAAkB,CAEpB,aACE,aAAgB,CAElB,mBACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,qDACE,eAAkB,CAKpB,kDACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,+DACE,eAAkB,CAKpB,yCACE,eAAkB,CAKpB,wDACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,oDACE,eAAkB,CAKpB,2CACE,eAAkB,CAcpB,sFAIE,UAAW,CAEX,WAAY,CACZ,eAAgB,CAFhB,SAAU,CAHV,iBAAkB,CAClB,SAAU,CAKV,kBAAsB,CAEtB,cAAe,CADf,kBACiB,CCnlanB,cACE,sCAAyC,CACzC,2BAA6B,CAE7B,6BAA+B,CAD/B,yBAA8B,CAG9B,aAAc,CADd,6BAA+B,CAE/B,kCAAmC,CACnC,iCACF,CAEA,wBACE,aACF,CAEA,wBACE,aACF,CAEA,yBACE,aACF,CAEA,sBACE,aACF,CAEA,8BACE,aACF,CAEA,qBACE,aACF,CAEA,qBACE,aACF,CAEA,qBACE,aACF,CAEA,oBACE,aACF,CAEA,qBACE,aACF,CAEA,qBACE,aACF,CAEA,qBACE,aACF,CAEA,mBACE,aACF,CAEA,yBACE,aACF,CAEA,mBACE,aACF,CAEA,uBACE,aACF,CAEA,sBACE,aACF,CAEA,0BACE,aACF,CAEA,oBACE,aACF,CAEA,wBACE,aACF,CAEA,oBACE,aACF,CAEA,mBACE,aACF,CAEA,qBACE,aACF,CAEA,uBACE,aACF,CAEA,oBACE,aACF,CAEA,mBACE,aACF,CAEA,sBACE,aACF,CAEA,mBACE,aACF,CAEA,mBACE,aACF,CAEA,oBACE,aACF,CAEA,oBACE,aACF,CAEA,4BACE,aACF,CAEA,mBACE,aACF,CAEA,sBACE,aACF,CAEA,qBACE,aACF,CAEA,uBACE,aACF,CAEA,sBACE,aACF,CAEA,gBACE,aACF,CAEA,sBACE,aACF,CAEA,yBACE,eACF,CAEA,8BACE,eACF,CAEA,mBACE,aACF,CCjLA,kBAIE,2BAA4B,CAF5B,uCAAwC,CACxC,uCAAwC,CAFxC,8CAIF,CAEA,MAIE,wBAAyB,CAHzB,oBAAqB,CAErB,oBAAqB,CADrB,oBAGF,CAEA,GACE,8BAA+B,CAC/B,kCACF,CAEA,GACE,6BAA8B,CAC9B,iCACF,CAEA,GACE,6BAA8B,CAC9B,iCACF,CAEA,GACE,6BAA8B,CAC9B,iCACF,CAEA,GACE,6BAA8B,CAC9B,iCACF,CAEA,GACE,6BAA8B,CAC9B,iCACF,CAEA,QAIE,sCAAuC,CAFvC,6BAA8B,CAC9B,iCAAkC,CAGlC,EACE,6BAA8B,CAC9B,yBACF,CACF,CAEA,OACE,mCACF,CAEA,mBAEE,uBAAwB,CADxB,cAAe,CAEf,sCAAuC,CAEvC,aACE,mCACF,CAEA,GACE,uBACF,CAEA,EACE,aACF,CACF,CAEA,qBACE,sCACF,CAEA,oBACE,qCACF,CAEA,kBACE,mCACF,CAEA,6BACE,+CACF,CAEA,4BACE,8CACF,CAEA,0BACE,4CACF,CAEA,YACE,4BACF,CAEA,cACE,qCACF,CAEA,YACE,mCACF,CAEA,iBACE,wBACF,CAEA,gBAEE,eAAgB,CAChB,sBA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A,kBACE,YAAa,CACb,gBACF,CAEA,0BACE,MACF,CAEA,MACE,sBAAuB,CACvB,mEAAoE,CACpE,0CAA2C,CAC3C,eAAgB,CAEhB,YACE,qCACF,CACF,CC9BA,cAEE,wBAAyB,CADzB,qCAAsC,CAEtC,uCACF,CCJA,aACE,wBACF,CAEA,YACE,0BACF,CAEA,cACE,2BACF,CAEA,MACE,4BACF,CAEA,OACE,0BACF,CAEA,MACE,sBACF,CAEA,WACE,kBACF,CAEA,kBACE,4BACF,CAEA,eACE,8BACF,CAEA,iBACE,6BACF,CAEA,gBACE,+BACF,CAEA,kBACE,gCACF,CAEA,kBACE,oDACF,CAEA,kBACE,oDACF,CAEA,mBACE,qDACF,CAEA,qBACE,qDACF,CAEA,qBACE,qDACF,CAEA,sBACE,sDACF,CAEA,oBACE,qDACF,CAEA,oBACE,qDACF,CAEA,qBACE,sDACF,CAEA,mBACE,sDACF,CAEA,mBACE,sDACF,CAEA,oBACE,uDACF,CAEA,WACE,oBAAqB,CACrB,oBACF,CAEA,YACE,kBACF,CAEA,gBACE,YACF,CAEA,uBACE,kBACF,CAGA,sBACE,kBAAmB,CACnB,YAAa,CACb,wBACF,CAEA,cACE,sBACF,CAEA,QACE,kBACF","sources":["webpack://@tyk-technologies/tyk-ui/./src/common/css/reset.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/variables.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/grid.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/fonts.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/fontawesome/light.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/fontawesome/solid.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/fontawesome/fontawesome.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/tykon.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/typography.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/form.css","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/Accordion.css","webpack://@tyk-technologies/tyk-ui/./src/components/Button/Button.css","webpack://@tyk-technologies/tyk-ui/./src/components/ButtonGroup/ButtonGroup.css","webpack://@tyk-technologies/tyk-ui/./src/components/Card/Card.css","webpack://@tyk-technologies/tyk-ui/./src/components/Chart/Chart.css","webpack://@tyk-technologies/tyk-ui/./src/components/Collapsible/Collapsible.css","webpack://@tyk-technologies/tyk-ui/./src/components/CopyToClipboard/CopyToClipboard.css","webpack://@tyk-technologies/tyk-ui/./src/components/FixedWrapper/FixedWrapper.css","webpack://@tyk-technologies/tyk-ui/./src/components/FloatingContainer/FloatingContainer.css","webpack://@tyk-technologies/tyk-ui/./src/components/Icon/Icon.css","webpack://@tyk-technologies/tyk-ui/./src/components/InfiniteScroller/InfiniteScroller.css","webpack://@tyk-technologies/tyk-ui/./src/components/InfoNote/InfoNote.css","webpack://@tyk-technologies/tyk-ui/./src/components/Loader/Loader.css","webpack://@tyk-technologies/tyk-ui/./src/components/List/List.css","webpack://@tyk-technologies/tyk-ui/./src/components/Message/Message.css","webpack://@tyk-technologies/tyk-ui/./src/components/Modal/Modal.css","webpack://@tyk-technologies/tyk-ui/./src/components/Navigation/Navigation.css","webpack://@tyk-technologies/tyk-ui/./src/components/NavBar/NavBar.css","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/Panel.css","webpack://@tyk-technologies/tyk-ui/./src/components/Pill/Pill.css","webpack://@tyk-technologies/tyk-ui/./src/components/RevealPanel/RevealPanel.css","webpack://@tyk-technologies/tyk-ui/./src/components/Sidebar/Sidebar.css","webpack://@tyk-technologies/tyk-ui/./src/components/Table/Table.css","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/Tabs.css","webpack://@tyk-technologies/tyk-ui/./src/components/Toast/Toast.css","webpack://@tyk-technologies/tyk-ui/./src/components/Tooltip/Tooltip.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox2/Combobox.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Checkbox/Checkbox.css","webpack://@tyk-technologies/tyk-ui/./node_modules/flatpickr/dist/flatpickr.min.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/DatePicker/DatePicker.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown/Dropdown.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/Dropdown.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList/EditableList.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/EditableList2.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/FileInput/FileInput.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/Multiselect.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Pagination/Pagination.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Radio/Radio.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Select/Select.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/SelectableList/SelectableList.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Textarea/Textarea.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/Toggle.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/layout.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/texts.css","webpack://@tyk-technologies/tyk-ui/./src/utils/css-helpers/helpers.css"],"sourcesContent":["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 {\n margin: 0;\n padding: 0;\n border: 0;\n font: inherit;\n font-size: 100%;\n vertical-align: baseline;\n}\n\n/* HTML5 display-role reset for older browsers */\n\narticle, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {\n display: block; }\n\nbody {\n line-height: 1; }\n\nol, ul {\n list-style: none; }\n\nblockquote, q {\n quotes: none; }\n\nblockquote {\n &::before, &::after {\n content: '';\n content: none; } }\n\nq {\n &::before, &::after {\n content: '';\n content: none; } }\n\ntable {\n border-collapse: collapse;\n border-spacing: 0; }\n",":root {\n --general-border-radius: 18px;\n --general-border-width: 2px;\n\n --color-default-base: #36364C;\n --color-default-base-light: #7A79A1;\n --color-default-light: #C3C3E5;\n --color-default-dark: #505071;\n --color-primary-base: #A2A2CC;\n --color-primary-light: #EDEDF9;\n --color-primary-dark: #505071;\n --color-success-base: #00d9ba;\n --color-success-light: #C2F2E9;\n --color-success-dark: #00B798;\n --color-info-base: #82BBC6;\n --color-info-light: #D3EBEF;\n --color-danger-base: #FF6C7D;\n --color-danger-extra-light: #F5CCD1;\n --color-danger-light: #FFBBC5;\n --color-danger-dark: #EA4766;\n --color-warning-base: #D6B218;\n --color-warning-light: #FFE885;\n --color-warning-dark: #C58C11;\n --color-foreground-base: #393939;\n --color-foreground-base-dark: #22272B;\n --color-foreground-light: #5a5a68;\n --color-foreground-dark: #161B20;\n --color-foreground-extra-dark: #0A0D10;\n --color-background-base: #E1E1E1;\n --color-background-light: #EDEDF9;\n --color-background-dark: #43435B;\n --color-background-extra-dark: #0A0D10;\n\n --text-color: var(--color-default-dark);\n --label-color: var(--color-default-base);\n\n --xs-line-height: 16px;\n --sm-line-height: 19px;\n --md-line-height: 22px;\n --lg-line-height: 23px;\n --xl-line-height: 24px;\n --xxl-line-height: 30px;\n\n --xs-font-size: 13px;\n --sm-font-size: 14px;\n --md-font-size: 16px;\n --lg-font-size: 18px;\n --xl-font-size: 20px;\n --xxl-font-size: 25px;\n\n --base-font-size: var(--sm-font-size);\n --base-line-height: var(--sm-line-height);\n\n --spacing-xs: 5px;\n --spacing-sm: 10px;\n --spacing-base: 15px;\n --spacing-md: 20px;\n --spacing-lg: 25px;\n --spacing-xl: 30px;\n --spacing-xxl: 40px;\n\n --grid-gutter: var(--spacing-md);\n --grid-max-width: calc(1200px + var(--grid-gutter) * 2);\n\n --breakpoint-xs: 420px;\n --breakpoint-sm: 768px;\n --breakpoint-md: 1024px;\n --breakpoint-lg: 1248px;\n\n --font-inter-light: 'Inter-Light';\n --font-inter-medium: 'Inter-Medium';\n --font-inter-regular: 'Inter-Regular';\n --font-inter-bold: 'Inter-Bold';\n\n --font-family-regular: 'OpenSans-regular';\n --font-family-medium: 'OpenSans-SemiBold';\n --font-family-bold: 'OpenSans-Bold';\n\n --headings-color: var(--color-default-base);\n --headings-font-family-regular: 'smoolthan_regular';\n --headings-font-family-medium: 'smoolthan_medium';\n --headings-font-family-bold: 'smoolthan_bold';\n\n --headings-margin-bottom: 15px;\n --headings-font-family: var(--headings-font-family-medium);\n --headings-font-weight: 500;\n --headings-line-height: var(--base-line-height);\n\n --form-group-margin-bottom: 15px;\n --form-control-height: 39px;\n --form-control-padding-left: var(--spacing-md);\n --form-control-padding-right: var(--spacing-md);\n --form-control-padding-top: 10px;\n --form-control-padding-bottom: 10px;\n --form-control-addon-background-color: white;\n --form-control-addon-padding-top: 10px;\n --form-control-addon-padding-bottom: 10px;\n --form-control-addon-padding-left: 10px;\n --form-control-addon-padding-right: 10px;\n --form-control-border: var(--general-border-width) solid var(--color-default-light);\n --form-control-disabled-border: var(--general-border-width) solid var(--color-default-light);\n --form-control-placeholder-color: var(--color-primary-base);\n --form-control-disabled-background-color: var(--color-background-light);\n --form-control-disabled-color:var(--text-color);\n --form-control-border-focus: 2px solid var(--color-success-base);\n --form-control-placeholder-font-family: var(--font-family-medium);\n --form-control-error-colour: var(--color-danger-dark);\n --form-default-color: var(--color-default-light);\n --form-primary-color: var(--color-primary-base);\n --form-success-color: var(--color-success-base);\n\n --error-border: var(--general-border-width) solid var(--color-danger-base);\n --error-border-left: 2px solid var(--color-danger-dark);\n --help-block-color: var(--color-default-base);\n --help-block-font-style: normal;\n --help-block-padding: 0 0 0 var(--form-control-padding-left);\n --error-message-padding: 0 0 0 var(--form-control-padding-left);\n --default-pill-background-color: var(--color-default-base);\n --default-pill-color: white;\n --pill-margin: 0 0 10px 0;\n --default-outline-pill-box-shadow: inset 0 0 0 2px var(--color-default-base);\n --default-outline-pill-color: var(--text-color);\n\n --title-medium-font-size: 16px;\n\n --bottom-buffer-large: var(--spacing-md);\n --bottom-buffer-medium: 10px;\n --bottom-buffer-small: 5px;\n --top-buffer-large: var(--spacing-md);\n --top-buffer-medium: 10px;\n --top-buffer-small: 5px;\n --right-buffer-large: var(--spacing-md);\n --right-buffer-medium: 10px;\n --right-buffer-small: 5px;\n --left-buffer-large: var(--spacing-md);\n --left-buffer-medium: 10px;\n --left-buffer-small: 5px;\n\n --modal-z-index: 1080;\n}\n","/* stylelint-disable number-max-precision */\n\n.container {\n max-inline-size: var(--grid-max-width);\n margin-block: 0;\n margin-inline: auto;\n}\n\n.container,\n.container-fluid {\n padding-block: 0;\n padding-inline: var(--grid-gutter);\n}\n\n.tyk-row {\n display: flex;\n box-sizing: border-box;\n list-style: none;\n flex: 0 1 auto;\n flex-direction: row;\n flex-wrap: wrap;\n margin-inline-start: calc(-1 * var(--grid-gutter));\n inline-size: calc(100% + var(--grid-gutter));\n\n &.no-gutters {\n margin: 0;\n }\n\n &.tyk-row--gutterless {\n margin: 0;\n inline-size: 100%;\n }\n\n &.tyk-row--reverse {\n flex-direction: row-reverse;\n }\n}\n\n.tyk-col {\n max-inline-size: calc(100% - var(--grid-gutter));\n box-sizing: border-box;\n flex: 0 0 auto;\n flex-grow: 1;\n flex-basis: calc(100% - var(--grid-gutter));\n margin-inline-start: var(--grid-gutter);\n inline-size: calc(100% - var(--grid-gutter));\n\n &:last-child {\n margin-inline-end: 0;\n }\n\n .tyk-row--gutterless & {\n margin: 0;\n }\n\n &.tyk-col--reverse {\n flex-direction: column-reverse;\n }\n\n &.tyk-col--align-bottom {\n align-self: flex-end;\n }\n\n &.tyk-col--align-top {\n align-self: flex-start;\n }\n\n &.tyk-col--align-center {\n align-self: center;\n }\n\n &.tyk-col--align-baseline {\n align-self: baseline;\n }\n\n &.tyk-col--align-stretch {\n align-self: stretch;\n }\n}\n\n@media screen and (width >= 1248px) {\n .tyk-col--lg-0 {\n flex-basis: calc(0% - 20px);\n max-inline-size: calc(0% - 20px);\n }\n\n .tyk-col--offset-lg-0 {\n margin-inline-start: 0%;\n }\n\n .tyk-col--lg-1 {\n flex-basis: calc(8.3333333333% - 20px);\n max-inline-size: calc(8.3333333333% - 20px);\n }\n\n .tyk-col--offset-lg-1 {\n margin-inline-start: 8.3333333333%;\n }\n\n .tyk-col--lg-2 {\n flex-basis: calc(16.6666666667% - 20px);\n max-inline-size: calc(16.6666666667% - 20px);\n }\n\n .tyk-col--offset-lg-2 {\n margin-inline-start: 16.6666666667%;\n }\n\n .tyk-col--lg-3 {\n flex-basis: calc(25% - 20px);\n max-inline-size: calc(25% - 20px);\n }\n\n .tyk-col--offset-lg-3 {\n margin-inline-start: 25%;\n }\n\n .tyk-col--lg-4 {\n flex-basis: calc(33.3333333333% - 20px);\n max-inline-size: calc(33.3333333333% - 20px);\n }\n\n .tyk-col--offset-lg-4 {\n margin-inline-start: 33.3333333333%;\n }\n\n .tyk-col--lg-5 {\n flex-basis: calc(41.6666666667% - 20px);\n max-inline-size: calc(41.6666666667% - 20px);\n }\n\n .tyk-col--offset-lg-5 {\n margin-inline-start: 41.6666666667%;\n }\n\n .tyk-col--lg-6 {\n flex-basis: calc(50% - 20px);\n max-inline-size: calc(50% - 20px);\n }\n\n .tyk-col--offset-lg-6 {\n margin-inline-start: 50%;\n }\n\n .tyk-col--lg-7 {\n flex-basis: calc(58.3333333333% - 20px);\n max-inline-size: calc(58.3333333333% - 20px);\n }\n\n .tyk-col--offset-lg-7 {\n margin-inline-start: 58.3333333333%;\n }\n\n .tyk-col--lg-8 {\n flex-basis: calc(66.6666666667% - 20px);\n max-inline-size: calc(66.6666666667% - 20px);\n }\n\n .tyk-col--offset-lg-8 {\n margin-inline-start: 66.6666666667%;\n }\n\n .tyk-col--lg-9 {\n flex-basis: calc(75% - 20px);\n max-inline-size: calc(75% - 20px);\n }\n\n .tyk-col--offset-lg-9 {\n margin-inline-start: 75%;\n }\n\n .tyk-col--lg-10 {\n flex-basis: calc(83.3333333333% - 20px);\n max-inline-size: calc(83.3333333333% - 20px);\n }\n\n .tyk-col--offset-lg-10 {\n margin-inline-start: 83.3333333333%;\n }\n\n .tyk-col--lg-11 {\n flex-basis: calc(91.6666666667% - 20px);\n max-inline-size: calc(91.6666666667% - 20px);\n }\n\n .tyk-col--offset-lg-11 {\n margin-inline-start: 91.6666666667%;\n }\n\n .tyk-col--lg-12 {\n flex-basis: calc(100% - 20px);\n max-inline-size: calc(100% - 20px);\n }\n\n .tyk-col--offset-lg-12 {\n margin-inline-start: 100%;\n }\n}\n\n@media screen and (1024px <= width < 1248px) {\n .tyk-col--md-0 {\n flex-basis: calc(0% - 20px);\n max-inline-size: calc(0% - 20px);\n }\n\n .tyk-col--offset-md-0 {\n margin-inline-start: 0%;\n }\n\n .tyk-col--md-1 {\n flex-basis: calc(8.3333333333% - 20px);\n max-inline-size: calc(8.3333333333% - 20px);\n }\n\n .tyk-col--offset-md-1 {\n margin-inline-start: 8.3333333333%;\n }\n\n .tyk-col--md-2 {\n flex-basis: calc(16.6666666667% - 20px);\n max-inline-size: calc(16.6666666667% - 20px);\n }\n\n .tyk-col--offset-md-2 {\n margin-inline-start: 16.6666666667%;\n }\n\n .tyk-col--md-3 {\n flex-basis: calc(25% - 20px);\n max-inline-size: calc(25% - 20px);\n }\n\n .tyk-col--offset-md-3 {\n margin-inline-start: 25%;\n }\n\n .tyk-col--md-4 {\n flex-basis: calc(33.3333333333% - 20px);\n max-inline-size: calc(33.3333333333% - 20px);\n }\n\n .tyk-col--offset-md-4 {\n margin-inline-start: 33.3333333333%;\n }\n\n .tyk-col--md-5 {\n flex-basis: calc(41.6666666667% - 20px);\n max-inline-size: calc(41.6666666667% - 20px);\n }\n\n .tyk-col--offset-md-5 {\n margin-inline-start: 41.6666666667%;\n }\n\n .tyk-col--md-6 {\n flex-basis: calc(50% - 20px);\n max-inline-size: calc(50% - 20px);\n }\n\n .tyk-col--offset-md-6 {\n margin-inline-start: 50%;\n }\n\n .tyk-col--md-7 {\n flex-basis: calc(58.3333333333% - 20px);\n max-inline-size: calc(58.3333333333% - 20px);\n }\n\n .tyk-col--offset-md-7 {\n margin-inline-start: 58.3333333333%;\n }\n\n .tyk-col--md-8 {\n flex-basis: calc(66.6666666667% - 20px);\n max-inline-size: calc(66.6666666667% - 20px);\n }\n\n .tyk-col--offset-md-8 {\n margin-inline-start: 66.6666666667%;\n }\n\n .tyk-col--md-9 {\n flex-basis: calc(75% - 20px);\n max-inline-size: calc(75% - 20px);\n }\n\n .tyk-col--offset-md-9 {\n margin-inline-start: 75%;\n }\n\n .tyk-col--md-10 {\n flex-basis: calc(83.3333333333% - 20px);\n max-inline-size: calc(83.3333333333% - 20px);\n }\n\n .tyk-col--offset-md-10 {\n margin-inline-start: 83.3333333333%;\n }\n\n .tyk-col--md-11 {\n flex-basis: calc(91.6666666667% - 20px);\n max-inline-size: calc(91.6666666667% - 20px);\n }\n\n .tyk-col--offset-md-11 {\n margin-inline-start: 91.6666666667%;\n }\n\n .tyk-col--md-12 {\n flex-basis: calc(100% - 20px);\n max-inline-size: calc(100% - 20px);\n }\n\n .tyk-col--offset-md-12 {\n margin-inline-start: 100%;\n }\n}\n\n@media screen and (768px < width < 1024px) {\n .tyk-col--sm-0 {\n flex-basis: calc(0% - 20px);\n max-inline-size: calc(0% - 20px);\n }\n\n .tyk-col--offset-sm-0 {\n margin-inline-start: 0%;\n }\n\n .tyk-col--sm-1 {\n flex-basis: calc(8.3333333333% - 20px);\n max-inline-size: calc(8.3333333333% - 20px);\n }\n\n .tyk-col--offset-sm-1 {\n margin-inline-start: 8.3333333333%;\n }\n\n .tyk-col--sm-2 {\n flex-basis: calc(16.6666666667% - 20px);\n max-inline-size: calc(16.6666666667% - 20px);\n }\n\n .tyk-col--offset-sm-2 {\n margin-inline-start: 16.6666666667%;\n }\n\n .tyk-col--sm-3 {\n flex-basis: calc(25% - 20px);\n max-inline-size: calc(25% - 20px);\n }\n\n .tyk-col--offset-sm-3 {\n margin-inline-start: 25%;\n }\n\n .tyk-col--sm-4 {\n flex-basis: calc(33.3333333333% - 20px);\n max-inline-size: calc(33.3333333333% - 20px);\n }\n\n .tyk-col--offset-sm-4 {\n margin-inline-start: 33.3333333333%;\n }\n\n .tyk-col--sm-5 {\n flex-basis: calc(41.6666666667% - 20px);\n max-inline-size: calc(41.6666666667% - 20px);\n }\n\n .tyk-col--offset-sm-5 {\n margin-inline-start: 41.6666666667%;\n }\n\n .tyk-col--sm-6 {\n flex-basis: calc(50% - 20px);\n max-inline-size: calc(50% - 20px);\n }\n\n .tyk-col--offset-sm-6 {\n margin-inline-start: 50%;\n }\n\n .tyk-col--sm-7 {\n flex-basis: calc(58.3333333333% - 20px);\n max-inline-size: calc(58.3333333333% - 20px);\n }\n\n .tyk-col--offset-sm-7 {\n margin-inline-start: 58.3333333333%;\n }\n\n .tyk-col--sm-8 {\n flex-basis: calc(66.6666666667% - 20px);\n max-inline-size: calc(66.6666666667% - 20px);\n }\n\n .tyk-col--offset-sm-8 {\n margin-inline-start: 66.6666666667%;\n }\n\n .tyk-col--sm-9 {\n flex-basis: calc(75% - 20px);\n max-inline-size: calc(75% - 20px);\n }\n\n .tyk-col--offset-sm-9 {\n margin-inline-start: 75%;\n }\n\n .tyk-col--sm-10 {\n flex-basis: calc(83.3333333333% - 20px);\n max-inline-size: calc(83.3333333333% - 20px);\n }\n\n .tyk-col--offset-sm-10 {\n margin-inline-start: 83.3333333333%;\n }\n\n .tyk-col--sm-11 {\n flex-basis: calc(91.6666666667% - 20px);\n max-inline-size: calc(91.6666666667% - 20px);\n }\n\n .tyk-col--offset-sm-11 {\n margin-inline-start: 91.6666666667%;\n }\n\n .tyk-col--sm-12 {\n flex-basis: calc(100% - 20px);\n max-inline-size: calc(100% - 20px);\n }\n\n .tyk-col--offset-sm-12 {\n margin-inline-start: 100%;\n }\n}\n\n@media screen and (width <= 768px) {\n .tyk-col--xs-0 {\n flex-basis: calc(0% - 20px);\n max-inline-size: calc(0% - 20px);\n }\n\n .tyk-col--offset-xs-0 {\n margin-inline-start: 0%;\n }\n\n .tyk-col--xs-1 {\n flex-basis: calc(8.3333333333% - 20px);\n max-inline-size: calc(8.3333333333% - 20px);\n }\n\n .tyk-col--offset-xs-1 {\n margin-inline-start: 8.3333333333%;\n }\n\n .tyk-col--xs-2 {\n flex-basis: calc(16.6666666667% - 20px);\n max-inline-size: calc(16.6666666667% - 20px);\n }\n\n .tyk-col--offset-xs-2 {\n margin-inline-start: 16.6666666667%;\n }\n\n .tyk-col--xs-3 {\n flex-basis: calc(25% - 20px);\n max-inline-size: calc(25% - 20px);\n }\n\n .tyk-col--offset-xs-3 {\n margin-inline-start: 25%;\n }\n\n .tyk-col--xs-4 {\n flex-basis: calc(33.3333333333% - 20px);\n max-inline-size: calc(33.3333333333% - 20px);\n }\n\n .tyk-col--offset-xs-4 {\n margin-inline-start: 33.3333333333%;\n }\n\n .tyk-col--xs-5 {\n flex-basis: calc(41.6666666667% - 20px);\n max-inline-size: calc(41.6666666667% - 20px);\n }\n\n .tyk-col--offset-xs-5 {\n margin-inline-start: 41.6666666667%;\n }\n\n .tyk-col--xs-6 {\n flex-basis: calc(50% - 20px);\n max-inline-size: calc(50% - 20px);\n }\n\n .tyk-col--offset-xs-6 {\n margin-inline-start: 50%;\n }\n\n .tyk-col--xs-7 {\n flex-basis: calc(58.3333333333% - 20px);\n max-inline-size: calc(58.3333333333% - 20px);\n }\n\n .tyk-col--offset-xs-7 {\n margin-inline-start: 58.3333333333%;\n }\n\n .tyk-col--xs-8 {\n flex-basis: calc(66.6666666667% - 20px);\n max-inline-size: calc(66.6666666667% - 20px);\n }\n\n .tyk-col--offset-xs-8 {\n margin-inline-start: 66.6666666667%;\n }\n\n .tyk-col--xs-9 {\n flex-basis: calc(75% - 20px);\n max-inline-size: calc(75% - 20px);\n }\n\n .tyk-col--offset-xs-9 {\n margin-inline-start: 75%;\n }\n\n .tyk-col--xs-10 {\n flex-basis: calc(83.3333333333% - 20px);\n max-inline-size: calc(83.3333333333% - 20px);\n }\n\n .tyk-col--offset-xs-10 {\n margin-inline-start: 83.3333333333%;\n }\n\n .tyk-col--xs-11 {\n flex-basis: calc(91.6666666667% - 20px);\n max-inline-size: calc(91.6666666667% - 20px);\n }\n\n .tyk-col--offset-xs-11 {\n margin-inline-start: 91.6666666667%;\n }\n\n .tyk-col--xs-12 {\n flex-basis: calc(100% - 20px);\n max-inline-size: calc(100% - 20px);\n }\n\n .tyk-col--offset-xs-12 {\n margin-inline-start: 100%;\n }\n}\n","@font-face {\n font-family: Inter-Bold;\n src: url('../fonts/inter/Inter-Bold.woff2') format('woff2'),\n url('../fonts/inter/Inter-Bold.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: Inter-Light;\n src: url('../fonts/inter/Inter-Light.woff2') format('woff2'),\n url('../fonts/inter/Inter-Light.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: Inter-Medium;\n src: url('../fonts/inter/Inter-Medium.woff2') format('woff2'),\n url('../fonts/inter/Inter-Medium.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: Inter-Regular;\n src: url('../fonts/inter/Inter-Regular.woff2') format('woff2'),\n url('../fonts/inter/Inter-Regular.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: Inter-SemiBold;\n src: url('../fonts/inter/Inter-SemiBold.woff2') format('woff2'),\n url('../fonts/inter/Inter-SemiBold.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: OpenSans-Bold;\n src: url('../fonts/OpenSans-Bold.woff2') format('woff2'),\n url('../fonts/OpenSans-Bold.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: OpenSans-SemiBold;\n src: url('../fonts/OpenSans-SemiBold.woff2') format('woff2'),\n url('../fonts/OpenSans-SemiBold.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: OpenSans-Regular;\n src: url('../fonts/OpenSans-Regular.woff2') format('woff2'),\n url('../fonts/OpenSans-Regular.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'smoolthan_bold';\n src: url('../fonts/smoolthan_bold-webfont.woff2') format('woff2'),\n url('../fonts/smoolthan_bold-webfont.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'smoolthan_medium';\n src: url('../fonts/smoolthan_medium-webfont.woff2') format('woff2'),\n url('../fonts/smoolthan_medium-webfont.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'smoolthan_regular';\n src: url('../fonts/smoolthan_regular-webfont.woff2') format('woff2'),\n url('../fonts/smoolthan_regular-webfont.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: tykon;\n src: url('../fonts/tykon.woff2') format('woff2'),\n url('../fonts/tykon.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n","/*!\n * Font Awesome Pro 6.5.2 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license (Commercial License)\n * Copyright 2024 Fonticons, Inc.\n */\n:root, :host {\n --fa-style-family-classic: 'Font Awesome 6 Pro';\n --fa-font-light: normal 300 1em/1 'Font Awesome 6 Pro'; }\n\n@font-face {\n font-family: 'Font Awesome 6 Pro';\n font-style: normal;\n font-weight: 300;\n font-display: block;\n src: url(\"../../fonts/fontawesome/fa-light-300.woff2\") format(\"woff2\"), url(\"../../fonts/fontawesome/fa-light-300.ttf\") format(\"truetype\"); }\n\n.fal,\n.fa-light {\n font-weight: 300; }\n","/*!\n * Font Awesome Pro 6.5.2 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license (Commercial License)\n * Copyright 2024 Fonticons, Inc.\n */\n:root, :host {\n --fa-style-family-classic: 'Font Awesome 6 Pro';\n --fa-font-solid: normal 900 1em/1 'Font Awesome 6 Pro'; }\n\n@font-face {\n font-family: 'Font Awesome 6 Pro';\n font-style: normal;\n font-weight: 900;\n font-display: block;\n src: url(\"../../fonts/fontawesome/fa-solid-900.woff2\") format(\"woff2\"), url(\"../../fonts/fontawesome/fa-solid-900.ttf\") format(\"truetype\"); }\n\n.fas,\n.fa-solid {\n font-weight: 900; }\n","/*!\n * Font Awesome Pro 6.5.2 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license (Commercial License)\n * Copyright 2024 Fonticons, Inc.\n */\n.fa {\n font-family: var(--fa-style-family, \"Font Awesome 6 Pro\");\n font-weight: var(--fa-style, 900); }\n\n.fa,\n.fa-classic,\n.fa-sharp,\n.fas,\n.fa-solid,\n.far,\n.fa-regular,\n.fasr,\n.fal,\n.fa-light,\n.fasl,\n.fat,\n.fa-thin,\n.fast,\n.fad,\n.fa-duotone,\n.fass,\n.fa-sharp-solid,\n.fab,\n.fa-brands {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n display: var(--fa-display, inline-block);\n font-style: normal;\n font-variant: normal;\n line-height: 1;\n text-rendering: auto; }\n\n.fas,\n.fa-classic,\n.fa-solid,\n.far,\n.fa-regular,\n.fal,\n.fa-light,\n.fat,\n.fa-thin {\n font-family: 'Font Awesome 6 Pro'; }\n\n.fab,\n.fa-brands {\n font-family: 'Font Awesome 6 Brands'; }\n\n.fad,\n.fa-classic.fa-duotone,\n.fa-duotone {\n font-family: 'Font Awesome 6 Duotone'; }\n\n.fass,\n.fasr,\n.fasl,\n.fast,\n.fa-sharp {\n font-family: 'Font Awesome 6 Sharp'; }\n\n.fass,\n.fa-sharp {\n font-weight: 900; }\n\n.fa-1x {\n font-size: 1em; }\n\n.fa-2x {\n font-size: 2em; }\n\n.fa-3x {\n font-size: 3em; }\n\n.fa-4x {\n font-size: 4em; }\n\n.fa-5x {\n font-size: 5em; }\n\n.fa-6x {\n font-size: 6em; }\n\n.fa-7x {\n font-size: 7em; }\n\n.fa-8x {\n font-size: 8em; }\n\n.fa-9x {\n font-size: 9em; }\n\n.fa-10x {\n font-size: 10em; }\n\n.fa-2xs {\n font-size: 0.625em;\n line-height: 0.1em;\n vertical-align: 0.225em; }\n\n.fa-xs {\n font-size: 0.75em;\n line-height: 0.08333em;\n vertical-align: 0.125em; }\n\n.fa-sm {\n font-size: 0.875em;\n line-height: 0.07143em;\n vertical-align: 0.05357em; }\n\n.fa-lg {\n font-size: 1.25em;\n line-height: 0.05em;\n vertical-align: -0.075em; }\n\n.fa-xl {\n font-size: 1.5em;\n line-height: 0.04167em;\n vertical-align: -0.125em; }\n\n.fa-2xl {\n font-size: 2em;\n line-height: 0.03125em;\n vertical-align: -0.1875em; }\n\n.fa-fw {\n text-align: center;\n width: 1.25em; }\n\n.fa-ul {\n list-style-type: none;\n margin-left: var(--fa-li-margin, 2.5em);\n padding-left: 0; }\n .fa-ul > li {\n position: relative; }\n\n.fa-li {\n left: calc(var(--fa-li-width, 2em) * -1);\n position: absolute;\n text-align: center;\n width: var(--fa-li-width, 2em);\n line-height: inherit; }\n\n.fa-border {\n border-color: var(--fa-border-color, #eee);\n border-radius: var(--fa-border-radius, 0.1em);\n border-style: var(--fa-border-style, solid);\n border-width: var(--fa-border-width, 0.08em);\n padding: var(--fa-border-padding, 0.2em 0.25em 0.15em); }\n\n.fa-pull-left {\n float: left;\n margin-right: var(--fa-pull-margin, 0.3em); }\n\n.fa-pull-right {\n float: right;\n margin-left: var(--fa-pull-margin, 0.3em); }\n\n.fa-beat {\n -webkit-animation-name: fa-beat;\n animation-name: fa-beat;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\n animation-timing-function: var(--fa-animation-timing, ease-in-out); }\n\n.fa-bounce {\n -webkit-animation-name: fa-bounce;\n animation-name: fa-bounce;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); }\n\n.fa-fade {\n -webkit-animation-name: fa-fade;\n animation-name: fa-fade;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); }\n\n.fa-beat-fade {\n -webkit-animation-name: fa-beat-fade;\n animation-name: fa-beat-fade;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); }\n\n.fa-flip {\n -webkit-animation-name: fa-flip;\n animation-name: fa-flip;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\n animation-timing-function: var(--fa-animation-timing, ease-in-out); }\n\n.fa-shake {\n -webkit-animation-name: fa-shake;\n animation-name: fa-shake;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\n animation-timing-function: var(--fa-animation-timing, linear); }\n\n.fa-spin {\n -webkit-animation-name: fa-spin;\n animation-name: fa-spin;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 2s);\n animation-duration: var(--fa-animation-duration, 2s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\n animation-timing-function: var(--fa-animation-timing, linear); }\n\n.fa-spin-reverse {\n --fa-animation-direction: reverse; }\n\n.fa-pulse,\n.fa-spin-pulse {\n -webkit-animation-name: fa-spin;\n animation-name: fa-spin;\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, steps(8));\n animation-timing-function: var(--fa-animation-timing, steps(8)); }\n\n@media (prefers-reduced-motion: reduce) {\n .fa-beat,\n .fa-bounce,\n .fa-fade,\n .fa-beat-fade,\n .fa-flip,\n .fa-pulse,\n .fa-shake,\n .fa-spin,\n .fa-spin-pulse {\n -webkit-animation-delay: -1ms;\n animation-delay: -1ms;\n -webkit-animation-duration: 1ms;\n animation-duration: 1ms;\n -webkit-animation-iteration-count: 1;\n animation-iteration-count: 1;\n -webkit-transition-delay: 0s;\n transition-delay: 0s;\n -webkit-transition-duration: 0s;\n transition-duration: 0s; } }\n\n@-webkit-keyframes fa-beat {\n 0%, 90% {\n -webkit-transform: scale(1);\n transform: scale(1); }\n 45% {\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\n transform: scale(var(--fa-beat-scale, 1.25)); } }\n\n@keyframes fa-beat {\n 0%, 90% {\n -webkit-transform: scale(1);\n transform: scale(1); }\n 45% {\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\n transform: scale(var(--fa-beat-scale, 1.25)); } }\n\n@-webkit-keyframes fa-bounce {\n 0% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0); }\n 10% {\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); }\n 30% {\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); }\n 50% {\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); }\n 57% {\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); }\n 64% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0); }\n 100% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0); } }\n\n@keyframes fa-bounce {\n 0% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0); }\n 10% {\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); }\n 30% {\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); }\n 50% {\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); }\n 57% {\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); }\n 64% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0); }\n 100% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0); } }\n\n@-webkit-keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4); } }\n\n@keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4); } }\n\n@-webkit-keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n -webkit-transform: scale(1);\n transform: scale(1); }\n 50% {\n opacity: 1;\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\n transform: scale(var(--fa-beat-fade-scale, 1.125)); } }\n\n@keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n -webkit-transform: scale(1);\n transform: scale(1); }\n 50% {\n opacity: 1;\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\n transform: scale(var(--fa-beat-fade-scale, 1.125)); } }\n\n@-webkit-keyframes fa-flip {\n 50% {\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } }\n\n@keyframes fa-flip {\n 50% {\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } }\n\n@-webkit-keyframes fa-shake {\n 0% {\n -webkit-transform: rotate(-15deg);\n transform: rotate(-15deg); }\n 4% {\n -webkit-transform: rotate(15deg);\n transform: rotate(15deg); }\n 8%, 24% {\n -webkit-transform: rotate(-18deg);\n transform: rotate(-18deg); }\n 12%, 28% {\n -webkit-transform: rotate(18deg);\n transform: rotate(18deg); }\n 16% {\n -webkit-transform: rotate(-22deg);\n transform: rotate(-22deg); }\n 20% {\n -webkit-transform: rotate(22deg);\n transform: rotate(22deg); }\n 32% {\n -webkit-transform: rotate(-12deg);\n transform: rotate(-12deg); }\n 36% {\n -webkit-transform: rotate(12deg);\n transform: rotate(12deg); }\n 40%, 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); } }\n\n@keyframes fa-shake {\n 0% {\n -webkit-transform: rotate(-15deg);\n transform: rotate(-15deg); }\n 4% {\n -webkit-transform: rotate(15deg);\n transform: rotate(15deg); }\n 8%, 24% {\n -webkit-transform: rotate(-18deg);\n transform: rotate(-18deg); }\n 12%, 28% {\n -webkit-transform: rotate(18deg);\n transform: rotate(18deg); }\n 16% {\n -webkit-transform: rotate(-22deg);\n transform: rotate(-22deg); }\n 20% {\n -webkit-transform: rotate(22deg);\n transform: rotate(22deg); }\n 32% {\n -webkit-transform: rotate(-12deg);\n transform: rotate(-12deg); }\n 36% {\n -webkit-transform: rotate(12deg);\n transform: rotate(12deg); }\n 40%, 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); } }\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n\n.fa-rotate-90 {\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg); }\n\n.fa-rotate-180 {\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg); }\n\n.fa-rotate-270 {\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg); }\n\n.fa-flip-horizontal {\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1); }\n\n.fa-flip-vertical {\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1); }\n\n.fa-flip-both,\n.fa-flip-horizontal.fa-flip-vertical {\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1); }\n\n.fa-rotate-by {\n -webkit-transform: rotate(var(--fa-rotate-angle, 0));\n transform: rotate(var(--fa-rotate-angle, 0)); }\n\n.fa-stack {\n display: inline-block;\n height: 2em;\n line-height: 2em;\n position: relative;\n vertical-align: middle;\n width: 2.5em; }\n\n.fa-stack-1x,\n.fa-stack-2x {\n left: 0;\n position: absolute;\n text-align: center;\n width: 100%;\n z-index: var(--fa-stack-z-index, auto); }\n\n.fa-stack-1x {\n line-height: inherit; }\n\n.fa-stack-2x {\n font-size: 2em; }\n\n.fa-inverse {\n color: var(--fa-inverse, #fff); }\n\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\nreaders do not read off random characters that represent icons */\n\n.fa-0::before {\n content: \"\\30\"; }\n\n.fa-1::before {\n content: \"\\31\"; }\n\n.fa-2::before {\n content: \"\\32\"; }\n\n.fa-3::before {\n content: \"\\33\"; }\n\n.fa-4::before {\n content: \"\\34\"; }\n\n.fa-5::before {\n content: \"\\35\"; }\n\n.fa-6::before {\n content: \"\\36\"; }\n\n.fa-7::before {\n content: \"\\37\"; }\n\n.fa-8::before {\n content: \"\\38\"; }\n\n.fa-9::before {\n content: \"\\39\"; }\n\n.fa-fill-drip::before {\n content: \"\\f576\"; }\n\n.fa-arrows-to-circle::before {\n content: \"\\e4bd\"; }\n\n.fa-circle-chevron-right::before {\n content: \"\\f138\"; }\n\n.fa-chevron-circle-right::before {\n content: \"\\f138\"; }\n\n.fa-wagon-covered::before {\n content: \"\\f8ee\"; }\n\n.fa-line-height::before {\n content: \"\\f871\"; }\n\n.fa-bagel::before {\n content: \"\\e3d7\"; }\n\n.fa-transporter-7::before {\n content: \"\\e2a8\"; }\n\n.fa-at::before {\n content: \"\\40\"; }\n\n.fa-rectangles-mixed::before {\n content: \"\\e323\"; }\n\n.fa-phone-arrow-up-right::before {\n content: \"\\e224\"; }\n\n.fa-phone-arrow-up::before {\n content: \"\\e224\"; }\n\n.fa-phone-outgoing::before {\n content: \"\\e224\"; }\n\n.fa-trash-can::before {\n content: \"\\f2ed\"; }\n\n.fa-trash-alt::before {\n content: \"\\f2ed\"; }\n\n.fa-circle-l::before {\n content: \"\\e114\"; }\n\n.fa-head-side-goggles::before {\n content: \"\\f6ea\"; }\n\n.fa-head-vr::before {\n content: \"\\f6ea\"; }\n\n.fa-text-height::before {\n content: \"\\f034\"; }\n\n.fa-user-xmark::before {\n content: \"\\f235\"; }\n\n.fa-user-times::before {\n content: \"\\f235\"; }\n\n.fa-face-hand-yawn::before {\n content: \"\\e379\"; }\n\n.fa-gauge-simple-min::before {\n content: \"\\f62d\"; }\n\n.fa-tachometer-slowest::before {\n content: \"\\f62d\"; }\n\n.fa-stethoscope::before {\n content: \"\\f0f1\"; }\n\n.fa-coffin::before {\n content: \"\\f6c6\"; }\n\n.fa-message::before {\n content: \"\\f27a\"; }\n\n.fa-comment-alt::before {\n content: \"\\f27a\"; }\n\n.fa-salad::before {\n content: \"\\f81e\"; }\n\n.fa-bowl-salad::before {\n content: \"\\f81e\"; }\n\n.fa-info::before {\n content: \"\\f129\"; }\n\n.fa-robot-astromech::before {\n content: \"\\e2d2\"; }\n\n.fa-ring-diamond::before {\n content: \"\\e5ab\"; }\n\n.fa-fondue-pot::before {\n content: \"\\e40d\"; }\n\n.fa-theta::before {\n content: \"\\f69e\"; }\n\n.fa-face-hand-peeking::before {\n content: \"\\e481\"; }\n\n.fa-square-user::before {\n content: \"\\e283\"; }\n\n.fa-down-left-and-up-right-to-center::before {\n content: \"\\f422\"; }\n\n.fa-compress-alt::before {\n content: \"\\f422\"; }\n\n.fa-explosion::before {\n content: \"\\e4e9\"; }\n\n.fa-file-lines::before {\n content: \"\\f15c\"; }\n\n.fa-file-alt::before {\n content: \"\\f15c\"; }\n\n.fa-file-text::before {\n content: \"\\f15c\"; }\n\n.fa-wave-square::before {\n content: \"\\f83e\"; }\n\n.fa-ring::before {\n content: \"\\f70b\"; }\n\n.fa-building-un::before {\n content: \"\\e4d9\"; }\n\n.fa-dice-three::before {\n content: \"\\f527\"; }\n\n.fa-tire-pressure-warning::before {\n content: \"\\f633\"; }\n\n.fa-wifi-fair::before {\n content: \"\\f6ab\"; }\n\n.fa-wifi-2::before {\n content: \"\\f6ab\"; }\n\n.fa-calendar-days::before {\n content: \"\\f073\"; }\n\n.fa-calendar-alt::before {\n content: \"\\f073\"; }\n\n.fa-mp3-player::before {\n content: \"\\f8ce\"; }\n\n.fa-anchor-circle-check::before {\n content: \"\\e4aa\"; }\n\n.fa-tally-4::before {\n content: \"\\e297\"; }\n\n.fa-rectangle-history::before {\n content: \"\\e4a2\"; }\n\n.fa-building-circle-arrow-right::before {\n content: \"\\e4d1\"; }\n\n.fa-volleyball::before {\n content: \"\\f45f\"; }\n\n.fa-volleyball-ball::before {\n content: \"\\f45f\"; }\n\n.fa-sun-haze::before {\n content: \"\\f765\"; }\n\n.fa-text-size::before {\n content: \"\\f894\"; }\n\n.fa-ufo::before {\n content: \"\\e047\"; }\n\n.fa-fork::before {\n content: \"\\f2e3\"; }\n\n.fa-utensil-fork::before {\n content: \"\\f2e3\"; }\n\n.fa-arrows-up-to-line::before {\n content: \"\\e4c2\"; }\n\n.fa-mobile-signal::before {\n content: \"\\e1ef\"; }\n\n.fa-barcode-scan::before {\n content: \"\\f465\"; }\n\n.fa-sort-down::before {\n content: \"\\f0dd\"; }\n\n.fa-sort-desc::before {\n content: \"\\f0dd\"; }\n\n.fa-folder-arrow-down::before {\n content: \"\\e053\"; }\n\n.fa-folder-download::before {\n content: \"\\e053\"; }\n\n.fa-circle-minus::before {\n content: \"\\f056\"; }\n\n.fa-minus-circle::before {\n content: \"\\f056\"; }\n\n.fa-face-icicles::before {\n content: \"\\e37c\"; }\n\n.fa-shovel::before {\n content: \"\\f713\"; }\n\n.fa-door-open::before {\n content: \"\\f52b\"; }\n\n.fa-films::before {\n content: \"\\e17a\"; }\n\n.fa-right-from-bracket::before {\n content: \"\\f2f5\"; }\n\n.fa-sign-out-alt::before {\n content: \"\\f2f5\"; }\n\n.fa-face-glasses::before {\n content: \"\\e377\"; }\n\n.fa-nfc::before {\n content: \"\\e1f7\"; }\n\n.fa-atom::before {\n content: \"\\f5d2\"; }\n\n.fa-soap::before {\n content: \"\\e06e\"; }\n\n.fa-icons::before {\n content: \"\\f86d\"; }\n\n.fa-heart-music-camera-bolt::before {\n content: \"\\f86d\"; }\n\n.fa-microphone-lines-slash::before {\n content: \"\\f539\"; }\n\n.fa-microphone-alt-slash::before {\n content: \"\\f539\"; }\n\n.fa-closed-captioning-slash::before {\n content: \"\\e135\"; }\n\n.fa-calculator-simple::before {\n content: \"\\f64c\"; }\n\n.fa-calculator-alt::before {\n content: \"\\f64c\"; }\n\n.fa-bridge-circle-check::before {\n content: \"\\e4c9\"; }\n\n.fa-sliders-up::before {\n content: \"\\f3f1\"; }\n\n.fa-sliders-v::before {\n content: \"\\f3f1\"; }\n\n.fa-location-minus::before {\n content: \"\\f609\"; }\n\n.fa-map-marker-minus::before {\n content: \"\\f609\"; }\n\n.fa-pump-medical::before {\n content: \"\\e06a\"; }\n\n.fa-fingerprint::before {\n content: \"\\f577\"; }\n\n.fa-ski-boot::before {\n content: \"\\e3cc\"; }\n\n.fa-standard-definition::before {\n content: \"\\e28a\"; }\n\n.fa-rectangle-sd::before {\n content: \"\\e28a\"; }\n\n.fa-h1::before {\n content: \"\\f313\"; }\n\n.fa-hand-point-right::before {\n content: \"\\f0a4\"; }\n\n.fa-magnifying-glass-location::before {\n content: \"\\f689\"; }\n\n.fa-search-location::before {\n content: \"\\f689\"; }\n\n.fa-message-bot::before {\n content: \"\\e3b8\"; }\n\n.fa-forward-step::before {\n content: \"\\f051\"; }\n\n.fa-step-forward::before {\n content: \"\\f051\"; }\n\n.fa-face-smile-beam::before {\n content: \"\\f5b8\"; }\n\n.fa-smile-beam::before {\n content: \"\\f5b8\"; }\n\n.fa-light-ceiling::before {\n content: \"\\e016\"; }\n\n.fa-message-exclamation::before {\n content: \"\\f4a5\"; }\n\n.fa-comment-alt-exclamation::before {\n content: \"\\f4a5\"; }\n\n.fa-bowl-scoop::before {\n content: \"\\e3de\"; }\n\n.fa-bowl-shaved-ice::before {\n content: \"\\e3de\"; }\n\n.fa-square-x::before {\n content: \"\\e286\"; }\n\n.fa-building-memo::before {\n content: \"\\e61e\"; }\n\n.fa-utility-pole-double::before {\n content: \"\\e2c4\"; }\n\n.fa-flag-checkered::before {\n content: \"\\f11e\"; }\n\n.fa-chevrons-up::before {\n content: \"\\f325\"; }\n\n.fa-chevron-double-up::before {\n content: \"\\f325\"; }\n\n.fa-football::before {\n content: \"\\f44e\"; }\n\n.fa-football-ball::before {\n content: \"\\f44e\"; }\n\n.fa-user-vneck::before {\n content: \"\\e461\"; }\n\n.fa-school-circle-exclamation::before {\n content: \"\\e56c\"; }\n\n.fa-crop::before {\n content: \"\\f125\"; }\n\n.fa-angles-down::before {\n content: \"\\f103\"; }\n\n.fa-angle-double-down::before {\n content: \"\\f103\"; }\n\n.fa-users-rectangle::before {\n content: \"\\e594\"; }\n\n.fa-people-roof::before {\n content: \"\\e537\"; }\n\n.fa-square-arrow-right::before {\n content: \"\\f33b\"; }\n\n.fa-arrow-square-right::before {\n content: \"\\f33b\"; }\n\n.fa-location-plus::before {\n content: \"\\f60a\"; }\n\n.fa-map-marker-plus::before {\n content: \"\\f60a\"; }\n\n.fa-lightbulb-exclamation-on::before {\n content: \"\\e1ca\"; }\n\n.fa-people-line::before {\n content: \"\\e534\"; }\n\n.fa-beer-mug-empty::before {\n content: \"\\f0fc\"; }\n\n.fa-beer::before {\n content: \"\\f0fc\"; }\n\n.fa-crate-empty::before {\n content: \"\\e151\"; }\n\n.fa-diagram-predecessor::before {\n content: \"\\e477\"; }\n\n.fa-transporter::before {\n content: \"\\e042\"; }\n\n.fa-calendar-circle-user::before {\n content: \"\\e471\"; }\n\n.fa-arrow-up-long::before {\n content: \"\\f176\"; }\n\n.fa-long-arrow-up::before {\n content: \"\\f176\"; }\n\n.fa-person-carry-box::before {\n content: \"\\f4cf\"; }\n\n.fa-person-carry::before {\n content: \"\\f4cf\"; }\n\n.fa-fire-flame-simple::before {\n content: \"\\f46a\"; }\n\n.fa-burn::before {\n content: \"\\f46a\"; }\n\n.fa-person::before {\n content: \"\\f183\"; }\n\n.fa-male::before {\n content: \"\\f183\"; }\n\n.fa-laptop::before {\n content: \"\\f109\"; }\n\n.fa-file-csv::before {\n content: \"\\f6dd\"; }\n\n.fa-menorah::before {\n content: \"\\f676\"; }\n\n.fa-union::before {\n content: \"\\f6a2\"; }\n\n.fa-chevrons-left::before {\n content: \"\\f323\"; }\n\n.fa-chevron-double-left::before {\n content: \"\\f323\"; }\n\n.fa-circle-heart::before {\n content: \"\\f4c7\"; }\n\n.fa-heart-circle::before {\n content: \"\\f4c7\"; }\n\n.fa-truck-plane::before {\n content: \"\\e58f\"; }\n\n.fa-record-vinyl::before {\n content: \"\\f8d9\"; }\n\n.fa-bring-forward::before {\n content: \"\\f856\"; }\n\n.fa-square-p::before {\n content: \"\\e279\"; }\n\n.fa-face-grin-stars::before {\n content: \"\\f587\"; }\n\n.fa-grin-stars::before {\n content: \"\\f587\"; }\n\n.fa-sigma::before {\n content: \"\\f68b\"; }\n\n.fa-camera-movie::before {\n content: \"\\f8a9\"; }\n\n.fa-bong::before {\n content: \"\\f55c\"; }\n\n.fa-clarinet::before {\n content: \"\\f8ad\"; }\n\n.fa-truck-flatbed::before {\n content: \"\\e2b6\"; }\n\n.fa-spaghetti-monster-flying::before {\n content: \"\\f67b\"; }\n\n.fa-pastafarianism::before {\n content: \"\\f67b\"; }\n\n.fa-arrow-down-up-across-line::before {\n content: \"\\e4af\"; }\n\n.fa-arrows-rotate-reverse::before {\n content: \"\\e630\"; }\n\n.fa-leaf-heart::before {\n content: \"\\f4cb\"; }\n\n.fa-house-building::before {\n content: \"\\e1b1\"; }\n\n.fa-cheese-swiss::before {\n content: \"\\f7f0\"; }\n\n.fa-spoon::before {\n content: \"\\f2e5\"; }\n\n.fa-utensil-spoon::before {\n content: \"\\f2e5\"; }\n\n.fa-jar-wheat::before {\n content: \"\\e517\"; }\n\n.fa-envelopes-bulk::before {\n content: \"\\f674\"; }\n\n.fa-mail-bulk::before {\n content: \"\\f674\"; }\n\n.fa-file-circle-exclamation::before {\n content: \"\\e4eb\"; }\n\n.fa-bow-arrow::before {\n content: \"\\f6b9\"; }\n\n.fa-cart-xmark::before {\n content: \"\\e0dd\"; }\n\n.fa-hexagon-xmark::before {\n content: \"\\f2ee\"; }\n\n.fa-times-hexagon::before {\n content: \"\\f2ee\"; }\n\n.fa-xmark-hexagon::before {\n content: \"\\f2ee\"; }\n\n.fa-circle-h::before {\n content: \"\\f47e\"; }\n\n.fa-hospital-symbol::before {\n content: \"\\f47e\"; }\n\n.fa-merge::before {\n content: \"\\e526\"; }\n\n.fa-pager::before {\n content: \"\\f815\"; }\n\n.fa-cart-minus::before {\n content: \"\\e0db\"; }\n\n.fa-address-book::before {\n content: \"\\f2b9\"; }\n\n.fa-contact-book::before {\n content: \"\\f2b9\"; }\n\n.fa-pan-frying::before {\n content: \"\\e42c\"; }\n\n.fa-grid::before {\n content: \"\\e195\"; }\n\n.fa-grid-3::before {\n content: \"\\e195\"; }\n\n.fa-football-helmet::before {\n content: \"\\f44f\"; }\n\n.fa-hand-love::before {\n content: \"\\e1a5\"; }\n\n.fa-trees::before {\n content: \"\\f724\"; }\n\n.fa-strikethrough::before {\n content: \"\\f0cc\"; }\n\n.fa-page::before {\n content: \"\\e428\"; }\n\n.fa-k::before {\n content: \"\\4b\"; }\n\n.fa-diagram-previous::before {\n content: \"\\e478\"; }\n\n.fa-gauge-min::before {\n content: \"\\f628\"; }\n\n.fa-tachometer-alt-slowest::before {\n content: \"\\f628\"; }\n\n.fa-folder-grid::before {\n content: \"\\e188\"; }\n\n.fa-eggplant::before {\n content: \"\\e16c\"; }\n\n.fa-excavator::before {\n content: \"\\e656\"; }\n\n.fa-ram::before {\n content: \"\\f70a\"; }\n\n.fa-landmark-flag::before {\n content: \"\\e51c\"; }\n\n.fa-lips::before {\n content: \"\\f600\"; }\n\n.fa-pencil::before {\n content: \"\\f303\"; }\n\n.fa-pencil-alt::before {\n content: \"\\f303\"; }\n\n.fa-backward::before {\n content: \"\\f04a\"; }\n\n.fa-caret-right::before {\n content: \"\\f0da\"; }\n\n.fa-comments::before {\n content: \"\\f086\"; }\n\n.fa-paste::before {\n content: \"\\f0ea\"; }\n\n.fa-file-clipboard::before {\n content: \"\\f0ea\"; }\n\n.fa-desktop-arrow-down::before {\n content: \"\\e155\"; }\n\n.fa-code-pull-request::before {\n content: \"\\e13c\"; }\n\n.fa-pumpkin::before {\n content: \"\\f707\"; }\n\n.fa-clipboard-list::before {\n content: \"\\f46d\"; }\n\n.fa-pen-field::before {\n content: \"\\e211\"; }\n\n.fa-blueberries::before {\n content: \"\\e2e8\"; }\n\n.fa-truck-ramp-box::before {\n content: \"\\f4de\"; }\n\n.fa-truck-loading::before {\n content: \"\\f4de\"; }\n\n.fa-note::before {\n content: \"\\e1ff\"; }\n\n.fa-arrow-down-to-square::before {\n content: \"\\e096\"; }\n\n.fa-user-check::before {\n content: \"\\f4fc\"; }\n\n.fa-cloud-xmark::before {\n content: \"\\e35f\"; }\n\n.fa-vial-virus::before {\n content: \"\\e597\"; }\n\n.fa-book-blank::before {\n content: \"\\f5d9\"; }\n\n.fa-book-alt::before {\n content: \"\\f5d9\"; }\n\n.fa-golf-flag-hole::before {\n content: \"\\e3ac\"; }\n\n.fa-message-arrow-down::before {\n content: \"\\e1db\"; }\n\n.fa-comment-alt-arrow-down::before {\n content: \"\\e1db\"; }\n\n.fa-face-unamused::before {\n content: \"\\e39f\"; }\n\n.fa-sheet-plastic::before {\n content: \"\\e571\"; }\n\n.fa-circle-9::before {\n content: \"\\e0f6\"; }\n\n.fa-blog::before {\n content: \"\\f781\"; }\n\n.fa-user-ninja::before {\n content: \"\\f504\"; }\n\n.fa-pencil-slash::before {\n content: \"\\e215\"; }\n\n.fa-bowling-pins::before {\n content: \"\\f437\"; }\n\n.fa-person-arrow-up-from-line::before {\n content: \"\\e539\"; }\n\n.fa-down-right::before {\n content: \"\\e16b\"; }\n\n.fa-scroll-torah::before {\n content: \"\\f6a0\"; }\n\n.fa-torah::before {\n content: \"\\f6a0\"; }\n\n.fa-webhook::before {\n content: \"\\e5d5\"; }\n\n.fa-blinds-open::before {\n content: \"\\f8fc\"; }\n\n.fa-fence::before {\n content: \"\\e303\"; }\n\n.fa-up::before {\n content: \"\\f357\"; }\n\n.fa-arrow-alt-up::before {\n content: \"\\f357\"; }\n\n.fa-broom-ball::before {\n content: \"\\f458\"; }\n\n.fa-quidditch::before {\n content: \"\\f458\"; }\n\n.fa-quidditch-broom-ball::before {\n content: \"\\f458\"; }\n\n.fa-drumstick::before {\n content: \"\\f6d6\"; }\n\n.fa-square-v::before {\n content: \"\\e284\"; }\n\n.fa-face-awesome::before {\n content: \"\\e409\"; }\n\n.fa-gave-dandy::before {\n content: \"\\e409\"; }\n\n.fa-dial-off::before {\n content: \"\\e162\"; }\n\n.fa-toggle-off::before {\n content: \"\\f204\"; }\n\n.fa-face-smile-horns::before {\n content: \"\\e391\"; }\n\n.fa-box-archive::before {\n content: \"\\f187\"; }\n\n.fa-archive::before {\n content: \"\\f187\"; }\n\n.fa-grapes::before {\n content: \"\\e306\"; }\n\n.fa-person-drowning::before {\n content: \"\\e545\"; }\n\n.fa-dial-max::before {\n content: \"\\e15e\"; }\n\n.fa-circle-m::before {\n content: \"\\e115\"; }\n\n.fa-calendar-image::before {\n content: \"\\e0d4\"; }\n\n.fa-circle-caret-down::before {\n content: \"\\f32d\"; }\n\n.fa-caret-circle-down::before {\n content: \"\\f32d\"; }\n\n.fa-arrow-down-9-1::before {\n content: \"\\f886\"; }\n\n.fa-sort-numeric-desc::before {\n content: \"\\f886\"; }\n\n.fa-sort-numeric-down-alt::before {\n content: \"\\f886\"; }\n\n.fa-face-grin-tongue-squint::before {\n content: \"\\f58a\"; }\n\n.fa-grin-tongue-squint::before {\n content: \"\\f58a\"; }\n\n.fa-shish-kebab::before {\n content: \"\\f821\"; }\n\n.fa-spray-can::before {\n content: \"\\f5bd\"; }\n\n.fa-alarm-snooze::before {\n content: \"\\f845\"; }\n\n.fa-scarecrow::before {\n content: \"\\f70d\"; }\n\n.fa-truck-monster::before {\n content: \"\\f63b\"; }\n\n.fa-gift-card::before {\n content: \"\\f663\"; }\n\n.fa-w::before {\n content: \"\\57\"; }\n\n.fa-code-pull-request-draft::before {\n content: \"\\e3fa\"; }\n\n.fa-square-b::before {\n content: \"\\e264\"; }\n\n.fa-elephant::before {\n content: \"\\f6da\"; }\n\n.fa-earth-africa::before {\n content: \"\\f57c\"; }\n\n.fa-globe-africa::before {\n content: \"\\f57c\"; }\n\n.fa-rainbow::before {\n content: \"\\f75b\"; }\n\n.fa-circle-notch::before {\n content: \"\\f1ce\"; }\n\n.fa-tablet-screen-button::before {\n content: \"\\f3fa\"; }\n\n.fa-tablet-alt::before {\n content: \"\\f3fa\"; }\n\n.fa-paw::before {\n content: \"\\f1b0\"; }\n\n.fa-message-question::before {\n content: \"\\e1e3\"; }\n\n.fa-cloud::before {\n content: \"\\f0c2\"; }\n\n.fa-trowel-bricks::before {\n content: \"\\e58a\"; }\n\n.fa-square-3::before {\n content: \"\\e258\"; }\n\n.fa-face-flushed::before {\n content: \"\\f579\"; }\n\n.fa-flushed::before {\n content: \"\\f579\"; }\n\n.fa-hospital-user::before {\n content: \"\\f80d\"; }\n\n.fa-microwave::before {\n content: \"\\e01b\"; }\n\n.fa-chf-sign::before {\n content: \"\\e602\"; }\n\n.fa-tent-arrow-left-right::before {\n content: \"\\e57f\"; }\n\n.fa-cart-circle-arrow-up::before {\n content: \"\\e3f0\"; }\n\n.fa-trash-clock::before {\n content: \"\\e2b0\"; }\n\n.fa-reflect-both::before {\n content: \"\\e66f\"; }\n\n.fa-gavel::before {\n content: \"\\f0e3\"; }\n\n.fa-legal::before {\n content: \"\\f0e3\"; }\n\n.fa-sprinkler-ceiling::before {\n content: \"\\e44c\"; }\n\n.fa-browsers::before {\n content: \"\\e0cb\"; }\n\n.fa-trillium::before {\n content: \"\\e588\"; }\n\n.fa-music-slash::before {\n content: \"\\f8d1\"; }\n\n.fa-truck-ramp::before {\n content: \"\\f4e0\"; }\n\n.fa-binoculars::before {\n content: \"\\f1e5\"; }\n\n.fa-microphone-slash::before {\n content: \"\\f131\"; }\n\n.fa-box-tissue::before {\n content: \"\\e05b\"; }\n\n.fa-circle-c::before {\n content: \"\\e101\"; }\n\n.fa-star-christmas::before {\n content: \"\\f7d4\"; }\n\n.fa-chart-bullet::before {\n content: \"\\e0e1\"; }\n\n.fa-motorcycle::before {\n content: \"\\f21c\"; }\n\n.fa-tree-christmas::before {\n content: \"\\f7db\"; }\n\n.fa-tire-flat::before {\n content: \"\\f632\"; }\n\n.fa-sunglasses::before {\n content: \"\\f892\"; }\n\n.fa-badge::before {\n content: \"\\f335\"; }\n\n.fa-message-pen::before {\n content: \"\\f4a4\"; }\n\n.fa-comment-alt-edit::before {\n content: \"\\f4a4\"; }\n\n.fa-message-edit::before {\n content: \"\\f4a4\"; }\n\n.fa-bell-concierge::before {\n content: \"\\f562\"; }\n\n.fa-concierge-bell::before {\n content: \"\\f562\"; }\n\n.fa-pen-ruler::before {\n content: \"\\f5ae\"; }\n\n.fa-pencil-ruler::before {\n content: \"\\f5ae\"; }\n\n.fa-file-mp3::before {\n content: \"\\e648\"; }\n\n.fa-arrow-progress::before {\n content: \"\\e5df\"; }\n\n.fa-chess-rook-piece::before {\n content: \"\\f448\"; }\n\n.fa-chess-rook-alt::before {\n content: \"\\f448\"; }\n\n.fa-square-root::before {\n content: \"\\f697\"; }\n\n.fa-album-collection-circle-plus::before {\n content: \"\\e48e\"; }\n\n.fa-people-arrows::before {\n content: \"\\e068\"; }\n\n.fa-people-arrows-left-right::before {\n content: \"\\e068\"; }\n\n.fa-sign-post::before {\n content: \"\\e624\"; }\n\n.fa-face-angry-horns::before {\n content: \"\\e368\"; }\n\n.fa-mars-and-venus-burst::before {\n content: \"\\e523\"; }\n\n.fa-tombstone::before {\n content: \"\\f720\"; }\n\n.fa-square-caret-right::before {\n content: \"\\f152\"; }\n\n.fa-caret-square-right::before {\n content: \"\\f152\"; }\n\n.fa-scissors::before {\n content: \"\\f0c4\"; }\n\n.fa-cut::before {\n content: \"\\f0c4\"; }\n\n.fa-list-music::before {\n content: \"\\f8c9\"; }\n\n.fa-sun-plant-wilt::before {\n content: \"\\e57a\"; }\n\n.fa-toilets-portable::before {\n content: \"\\e584\"; }\n\n.fa-hockey-puck::before {\n content: \"\\f453\"; }\n\n.fa-mustache::before {\n content: \"\\e5bc\"; }\n\n.fa-hyphen::before {\n content: \"\\2d\"; }\n\n.fa-table::before {\n content: \"\\f0ce\"; }\n\n.fa-user-chef::before {\n content: \"\\e3d2\"; }\n\n.fa-message-image::before {\n content: \"\\e1e0\"; }\n\n.fa-comment-alt-image::before {\n content: \"\\e1e0\"; }\n\n.fa-users-medical::before {\n content: \"\\f830\"; }\n\n.fa-sensor-triangle-exclamation::before {\n content: \"\\e029\"; }\n\n.fa-sensor-alert::before {\n content: \"\\e029\"; }\n\n.fa-magnifying-glass-arrow-right::before {\n content: \"\\e521\"; }\n\n.fa-tachograph-digital::before {\n content: \"\\f566\"; }\n\n.fa-digital-tachograph::before {\n content: \"\\f566\"; }\n\n.fa-face-mask::before {\n content: \"\\e37f\"; }\n\n.fa-pickleball::before {\n content: \"\\e435\"; }\n\n.fa-star-sharp-half::before {\n content: \"\\e28c\"; }\n\n.fa-users-slash::before {\n content: \"\\e073\"; }\n\n.fa-clover::before {\n content: \"\\e139\"; }\n\n.fa-meat::before {\n content: \"\\f814\"; }\n\n.fa-reply::before {\n content: \"\\f3e5\"; }\n\n.fa-mail-reply::before {\n content: \"\\f3e5\"; }\n\n.fa-star-and-crescent::before {\n content: \"\\f699\"; }\n\n.fa-empty-set::before {\n content: \"\\f656\"; }\n\n.fa-house-fire::before {\n content: \"\\e50c\"; }\n\n.fa-square-minus::before {\n content: \"\\f146\"; }\n\n.fa-minus-square::before {\n content: \"\\f146\"; }\n\n.fa-helicopter::before {\n content: \"\\f533\"; }\n\n.fa-bird::before {\n content: \"\\e469\"; }\n\n.fa-compass::before {\n content: \"\\f14e\"; }\n\n.fa-square-caret-down::before {\n content: \"\\f150\"; }\n\n.fa-caret-square-down::before {\n content: \"\\f150\"; }\n\n.fa-heart-half-stroke::before {\n content: \"\\e1ac\"; }\n\n.fa-heart-half-alt::before {\n content: \"\\e1ac\"; }\n\n.fa-file-circle-question::before {\n content: \"\\e4ef\"; }\n\n.fa-truck-utensils::before {\n content: \"\\e628\"; }\n\n.fa-laptop-code::before {\n content: \"\\f5fc\"; }\n\n.fa-joystick::before {\n content: \"\\f8c5\"; }\n\n.fa-grill-fire::before {\n content: \"\\e5a4\"; }\n\n.fa-rectangle-vertical-history::before {\n content: \"\\e237\"; }\n\n.fa-swatchbook::before {\n content: \"\\f5c3\"; }\n\n.fa-prescription-bottle::before {\n content: \"\\f485\"; }\n\n.fa-bars::before {\n content: \"\\f0c9\"; }\n\n.fa-navicon::before {\n content: \"\\f0c9\"; }\n\n.fa-keyboard-left::before {\n content: \"\\e1c3\"; }\n\n.fa-people-group::before {\n content: \"\\e533\"; }\n\n.fa-hourglass-end::before {\n content: \"\\f253\"; }\n\n.fa-hourglass-3::before {\n content: \"\\f253\"; }\n\n.fa-heart-crack::before {\n content: \"\\f7a9\"; }\n\n.fa-heart-broken::before {\n content: \"\\f7a9\"; }\n\n.fa-face-beam-hand-over-mouth::before {\n content: \"\\e47c\"; }\n\n.fa-droplet-percent::before {\n content: \"\\f750\"; }\n\n.fa-humidity::before {\n content: \"\\f750\"; }\n\n.fa-square-up-right::before {\n content: \"\\f360\"; }\n\n.fa-external-link-square-alt::before {\n content: \"\\f360\"; }\n\n.fa-face-kiss-beam::before {\n content: \"\\f597\"; }\n\n.fa-kiss-beam::before {\n content: \"\\f597\"; }\n\n.fa-corn::before {\n content: \"\\f6c7\"; }\n\n.fa-roller-coaster::before {\n content: \"\\e324\"; }\n\n.fa-photo-film-music::before {\n content: \"\\e228\"; }\n\n.fa-radar::before {\n content: \"\\e024\"; }\n\n.fa-sickle::before {\n content: \"\\f822\"; }\n\n.fa-film::before {\n content: \"\\f008\"; }\n\n.fa-coconut::before {\n content: \"\\e2f6\"; }\n\n.fa-ruler-horizontal::before {\n content: \"\\f547\"; }\n\n.fa-shield-cross::before {\n content: \"\\f712\"; }\n\n.fa-cassette-tape::before {\n content: \"\\f8ab\"; }\n\n.fa-square-terminal::before {\n content: \"\\e32a\"; }\n\n.fa-people-robbery::before {\n content: \"\\e536\"; }\n\n.fa-lightbulb::before {\n content: \"\\f0eb\"; }\n\n.fa-caret-left::before {\n content: \"\\f0d9\"; }\n\n.fa-comment-middle::before {\n content: \"\\e149\"; }\n\n.fa-trash-can-list::before {\n content: \"\\e2ab\"; }\n\n.fa-block::before {\n content: \"\\e46a\"; }\n\n.fa-circle-exclamation::before {\n content: \"\\f06a\"; }\n\n.fa-exclamation-circle::before {\n content: \"\\f06a\"; }\n\n.fa-school-circle-xmark::before {\n content: \"\\e56d\"; }\n\n.fa-arrow-right-from-bracket::before {\n content: \"\\f08b\"; }\n\n.fa-sign-out::before {\n content: \"\\f08b\"; }\n\n.fa-face-frown-slight::before {\n content: \"\\e376\"; }\n\n.fa-circle-chevron-down::before {\n content: \"\\f13a\"; }\n\n.fa-chevron-circle-down::before {\n content: \"\\f13a\"; }\n\n.fa-sidebar-flip::before {\n content: \"\\e24f\"; }\n\n.fa-unlock-keyhole::before {\n content: \"\\f13e\"; }\n\n.fa-unlock-alt::before {\n content: \"\\f13e\"; }\n\n.fa-temperature-list::before {\n content: \"\\e299\"; }\n\n.fa-cloud-showers-heavy::before {\n content: \"\\f740\"; }\n\n.fa-headphones-simple::before {\n content: \"\\f58f\"; }\n\n.fa-headphones-alt::before {\n content: \"\\f58f\"; }\n\n.fa-sitemap::before {\n content: \"\\f0e8\"; }\n\n.fa-pipe-section::before {\n content: \"\\e438\"; }\n\n.fa-space-station-moon-construction::before {\n content: \"\\e034\"; }\n\n.fa-space-station-moon-alt::before {\n content: \"\\e034\"; }\n\n.fa-circle-dollar-to-slot::before {\n content: \"\\f4b9\"; }\n\n.fa-donate::before {\n content: \"\\f4b9\"; }\n\n.fa-memory::before {\n content: \"\\f538\"; }\n\n.fa-face-sleeping::before {\n content: \"\\e38d\"; }\n\n.fa-road-spikes::before {\n content: \"\\e568\"; }\n\n.fa-fire-burner::before {\n content: \"\\e4f1\"; }\n\n.fa-squirrel::before {\n content: \"\\f71a\"; }\n\n.fa-arrow-up-to-line::before {\n content: \"\\f341\"; }\n\n.fa-arrow-to-top::before {\n content: \"\\f341\"; }\n\n.fa-flag::before {\n content: \"\\f024\"; }\n\n.fa-face-cowboy-hat::before {\n content: \"\\e36e\"; }\n\n.fa-hanukiah::before {\n content: \"\\f6e6\"; }\n\n.fa-chart-scatter-3d::before {\n content: \"\\e0e8\"; }\n\n.fa-display-chart-up::before {\n content: \"\\e5e3\"; }\n\n.fa-square-code::before {\n content: \"\\e267\"; }\n\n.fa-feather::before {\n content: \"\\f52d\"; }\n\n.fa-volume-low::before {\n content: \"\\f027\"; }\n\n.fa-volume-down::before {\n content: \"\\f027\"; }\n\n.fa-xmark-to-slot::before {\n content: \"\\f771\"; }\n\n.fa-times-to-slot::before {\n content: \"\\f771\"; }\n\n.fa-vote-nay::before {\n content: \"\\f771\"; }\n\n.fa-box-taped::before {\n content: \"\\f49a\"; }\n\n.fa-box-alt::before {\n content: \"\\f49a\"; }\n\n.fa-comment-slash::before {\n content: \"\\f4b3\"; }\n\n.fa-swords::before {\n content: \"\\f71d\"; }\n\n.fa-cloud-sun-rain::before {\n content: \"\\f743\"; }\n\n.fa-album::before {\n content: \"\\f89f\"; }\n\n.fa-circle-n::before {\n content: \"\\e118\"; }\n\n.fa-compress::before {\n content: \"\\f066\"; }\n\n.fa-wheat-awn::before {\n content: \"\\e2cd\"; }\n\n.fa-wheat-alt::before {\n content: \"\\e2cd\"; }\n\n.fa-ankh::before {\n content: \"\\f644\"; }\n\n.fa-hands-holding-child::before {\n content: \"\\e4fa\"; }\n\n.fa-asterisk::before {\n content: \"\\2a\"; }\n\n.fa-key-skeleton-left-right::before {\n content: \"\\e3b4\"; }\n\n.fa-comment-lines::before {\n content: \"\\f4b0\"; }\n\n.fa-luchador-mask::before {\n content: \"\\f455\"; }\n\n.fa-luchador::before {\n content: \"\\f455\"; }\n\n.fa-mask-luchador::before {\n content: \"\\f455\"; }\n\n.fa-square-check::before {\n content: \"\\f14a\"; }\n\n.fa-check-square::before {\n content: \"\\f14a\"; }\n\n.fa-shredder::before {\n content: \"\\f68a\"; }\n\n.fa-book-open-cover::before {\n content: \"\\e0c0\"; }\n\n.fa-book-open-alt::before {\n content: \"\\e0c0\"; }\n\n.fa-sandwich::before {\n content: \"\\f81f\"; }\n\n.fa-peseta-sign::before {\n content: \"\\e221\"; }\n\n.fa-square-parking-slash::before {\n content: \"\\f617\"; }\n\n.fa-parking-slash::before {\n content: \"\\f617\"; }\n\n.fa-train-tunnel::before {\n content: \"\\e454\"; }\n\n.fa-heading::before {\n content: \"\\f1dc\"; }\n\n.fa-header::before {\n content: \"\\f1dc\"; }\n\n.fa-ghost::before {\n content: \"\\f6e2\"; }\n\n.fa-face-anguished::before {\n content: \"\\e369\"; }\n\n.fa-hockey-sticks::before {\n content: \"\\f454\"; }\n\n.fa-abacus::before {\n content: \"\\f640\"; }\n\n.fa-film-simple::before {\n content: \"\\f3a0\"; }\n\n.fa-film-alt::before {\n content: \"\\f3a0\"; }\n\n.fa-list::before {\n content: \"\\f03a\"; }\n\n.fa-list-squares::before {\n content: \"\\f03a\"; }\n\n.fa-tree-palm::before {\n content: \"\\f82b\"; }\n\n.fa-square-phone-flip::before {\n content: \"\\f87b\"; }\n\n.fa-phone-square-alt::before {\n content: \"\\f87b\"; }\n\n.fa-cart-plus::before {\n content: \"\\f217\"; }\n\n.fa-gamepad::before {\n content: \"\\f11b\"; }\n\n.fa-border-center-v::before {\n content: \"\\f89d\"; }\n\n.fa-circle-dot::before {\n content: \"\\f192\"; }\n\n.fa-dot-circle::before {\n content: \"\\f192\"; }\n\n.fa-clipboard-medical::before {\n content: \"\\e133\"; }\n\n.fa-face-dizzy::before {\n content: \"\\f567\"; }\n\n.fa-dizzy::before {\n content: \"\\f567\"; }\n\n.fa-egg::before {\n content: \"\\f7fb\"; }\n\n.fa-up-to-line::before {\n content: \"\\f34d\"; }\n\n.fa-arrow-alt-to-top::before {\n content: \"\\f34d\"; }\n\n.fa-house-medical-circle-xmark::before {\n content: \"\\e513\"; }\n\n.fa-watch-fitness::before {\n content: \"\\f63e\"; }\n\n.fa-clock-nine-thirty::before {\n content: \"\\e34d\"; }\n\n.fa-campground::before {\n content: \"\\f6bb\"; }\n\n.fa-folder-plus::before {\n content: \"\\f65e\"; }\n\n.fa-jug::before {\n content: \"\\f8c6\"; }\n\n.fa-futbol::before {\n content: \"\\f1e3\"; }\n\n.fa-futbol-ball::before {\n content: \"\\f1e3\"; }\n\n.fa-soccer-ball::before {\n content: \"\\f1e3\"; }\n\n.fa-snow-blowing::before {\n content: \"\\f761\"; }\n\n.fa-paintbrush::before {\n content: \"\\f1fc\"; }\n\n.fa-paint-brush::before {\n content: \"\\f1fc\"; }\n\n.fa-lock::before {\n content: \"\\f023\"; }\n\n.fa-arrow-down-from-line::before {\n content: \"\\f345\"; }\n\n.fa-arrow-from-top::before {\n content: \"\\f345\"; }\n\n.fa-gas-pump::before {\n content: \"\\f52f\"; }\n\n.fa-signal-bars-slash::before {\n content: \"\\f694\"; }\n\n.fa-signal-alt-slash::before {\n content: \"\\f694\"; }\n\n.fa-monkey::before {\n content: \"\\f6fb\"; }\n\n.fa-rectangle-pro::before {\n content: \"\\e235\"; }\n\n.fa-pro::before {\n content: \"\\e235\"; }\n\n.fa-house-night::before {\n content: \"\\e010\"; }\n\n.fa-hot-tub-person::before {\n content: \"\\f593\"; }\n\n.fa-hot-tub::before {\n content: \"\\f593\"; }\n\n.fa-globe-pointer::before {\n content: \"\\e60e\"; }\n\n.fa-blanket::before {\n content: \"\\f498\"; }\n\n.fa-map-location::before {\n content: \"\\f59f\"; }\n\n.fa-map-marked::before {\n content: \"\\f59f\"; }\n\n.fa-house-flood-water::before {\n content: \"\\e50e\"; }\n\n.fa-comments-question-check::before {\n content: \"\\e14f\"; }\n\n.fa-tree::before {\n content: \"\\f1bb\"; }\n\n.fa-arrows-cross::before {\n content: \"\\e0a2\"; }\n\n.fa-backpack::before {\n content: \"\\f5d4\"; }\n\n.fa-square-small::before {\n content: \"\\e27e\"; }\n\n.fa-folder-arrow-up::before {\n content: \"\\e054\"; }\n\n.fa-folder-upload::before {\n content: \"\\e054\"; }\n\n.fa-bridge-lock::before {\n content: \"\\e4cc\"; }\n\n.fa-crosshairs-simple::before {\n content: \"\\e59f\"; }\n\n.fa-sack-dollar::before {\n content: \"\\f81d\"; }\n\n.fa-pen-to-square::before {\n content: \"\\f044\"; }\n\n.fa-edit::before {\n content: \"\\f044\"; }\n\n.fa-square-sliders::before {\n content: \"\\f3f0\"; }\n\n.fa-sliders-h-square::before {\n content: \"\\f3f0\"; }\n\n.fa-car-side::before {\n content: \"\\f5e4\"; }\n\n.fa-message-middle-top::before {\n content: \"\\e1e2\"; }\n\n.fa-comment-middle-top-alt::before {\n content: \"\\e1e2\"; }\n\n.fa-lightbulb-on::before {\n content: \"\\f672\"; }\n\n.fa-knife::before {\n content: \"\\f2e4\"; }\n\n.fa-utensil-knife::before {\n content: \"\\f2e4\"; }\n\n.fa-share-nodes::before {\n content: \"\\f1e0\"; }\n\n.fa-share-alt::before {\n content: \"\\f1e0\"; }\n\n.fa-display-chart-up-circle-dollar::before {\n content: \"\\e5e6\"; }\n\n.fa-wave-sine::before {\n content: \"\\f899\"; }\n\n.fa-heart-circle-minus::before {\n content: \"\\e4ff\"; }\n\n.fa-circle-w::before {\n content: \"\\e12c\"; }\n\n.fa-circle-calendar::before {\n content: \"\\e102\"; }\n\n.fa-calendar-circle::before {\n content: \"\\e102\"; }\n\n.fa-hourglass-half::before {\n content: \"\\f252\"; }\n\n.fa-hourglass-2::before {\n content: \"\\f252\"; }\n\n.fa-microscope::before {\n content: \"\\f610\"; }\n\n.fa-sunset::before {\n content: \"\\f767\"; }\n\n.fa-sink::before {\n content: \"\\e06d\"; }\n\n.fa-calendar-exclamation::before {\n content: \"\\f334\"; }\n\n.fa-truck-container-empty::before {\n content: \"\\e2b5\"; }\n\n.fa-hand-heart::before {\n content: \"\\f4bc\"; }\n\n.fa-bag-shopping::before {\n content: \"\\f290\"; }\n\n.fa-shopping-bag::before {\n content: \"\\f290\"; }\n\n.fa-arrow-down-z-a::before {\n content: \"\\f881\"; }\n\n.fa-sort-alpha-desc::before {\n content: \"\\f881\"; }\n\n.fa-sort-alpha-down-alt::before {\n content: \"\\f881\"; }\n\n.fa-mitten::before {\n content: \"\\f7b5\"; }\n\n.fa-reply-clock::before {\n content: \"\\e239\"; }\n\n.fa-reply-time::before {\n content: \"\\e239\"; }\n\n.fa-person-rays::before {\n content: \"\\e54d\"; }\n\n.fa-right::before {\n content: \"\\f356\"; }\n\n.fa-arrow-alt-right::before {\n content: \"\\f356\"; }\n\n.fa-circle-f::before {\n content: \"\\e10e\"; }\n\n.fa-users::before {\n content: \"\\f0c0\"; }\n\n.fa-face-pleading::before {\n content: \"\\e386\"; }\n\n.fa-eye-slash::before {\n content: \"\\f070\"; }\n\n.fa-flask-vial::before {\n content: \"\\e4f3\"; }\n\n.fa-police-box::before {\n content: \"\\e021\"; }\n\n.fa-cucumber::before {\n content: \"\\e401\"; }\n\n.fa-head-side-brain::before {\n content: \"\\f808\"; }\n\n.fa-hand::before {\n content: \"\\f256\"; }\n\n.fa-hand-paper::before {\n content: \"\\f256\"; }\n\n.fa-person-biking-mountain::before {\n content: \"\\f84b\"; }\n\n.fa-biking-mountain::before {\n content: \"\\f84b\"; }\n\n.fa-utensils-slash::before {\n content: \"\\e464\"; }\n\n.fa-print-magnifying-glass::before {\n content: \"\\f81a\"; }\n\n.fa-print-search::before {\n content: \"\\f81a\"; }\n\n.fa-turn-right::before {\n content: \"\\e639\"; }\n\n.fa-folder-bookmark::before {\n content: \"\\e186\"; }\n\n.fa-arrow-turn-left-down::before {\n content: \"\\e633\"; }\n\n.fa-om::before {\n content: \"\\f679\"; }\n\n.fa-pi::before {\n content: \"\\f67e\"; }\n\n.fa-flask-round-potion::before {\n content: \"\\f6e1\"; }\n\n.fa-flask-potion::before {\n content: \"\\f6e1\"; }\n\n.fa-face-shush::before {\n content: \"\\e38c\"; }\n\n.fa-worm::before {\n content: \"\\e599\"; }\n\n.fa-house-circle-xmark::before {\n content: \"\\e50b\"; }\n\n.fa-plug::before {\n content: \"\\f1e6\"; }\n\n.fa-calendar-circle-exclamation::before {\n content: \"\\e46e\"; }\n\n.fa-square-i::before {\n content: \"\\e272\"; }\n\n.fa-chevron-up::before {\n content: \"\\f077\"; }\n\n.fa-face-saluting::before {\n content: \"\\e484\"; }\n\n.fa-gauge-simple-low::before {\n content: \"\\f62c\"; }\n\n.fa-tachometer-slow::before {\n content: \"\\f62c\"; }\n\n.fa-face-persevering::before {\n content: \"\\e385\"; }\n\n.fa-circle-camera::before {\n content: \"\\e103\"; }\n\n.fa-camera-circle::before {\n content: \"\\e103\"; }\n\n.fa-hand-spock::before {\n content: \"\\f259\"; }\n\n.fa-spider-web::before {\n content: \"\\f719\"; }\n\n.fa-circle-microphone::before {\n content: \"\\e116\"; }\n\n.fa-microphone-circle::before {\n content: \"\\e116\"; }\n\n.fa-book-arrow-up::before {\n content: \"\\e0ba\"; }\n\n.fa-popsicle::before {\n content: \"\\e43e\"; }\n\n.fa-command::before {\n content: \"\\e142\"; }\n\n.fa-blinds::before {\n content: \"\\f8fb\"; }\n\n.fa-stopwatch::before {\n content: \"\\f2f2\"; }\n\n.fa-saxophone::before {\n content: \"\\f8dc\"; }\n\n.fa-square-2::before {\n content: \"\\e257\"; }\n\n.fa-field-hockey-stick-ball::before {\n content: \"\\f44c\"; }\n\n.fa-field-hockey::before {\n content: \"\\f44c\"; }\n\n.fa-arrow-up-square-triangle::before {\n content: \"\\f88b\"; }\n\n.fa-sort-shapes-up-alt::before {\n content: \"\\f88b\"; }\n\n.fa-face-scream::before {\n content: \"\\e38b\"; }\n\n.fa-square-m::before {\n content: \"\\e276\"; }\n\n.fa-camera-web::before {\n content: \"\\f832\"; }\n\n.fa-webcam::before {\n content: \"\\f832\"; }\n\n.fa-comment-arrow-down::before {\n content: \"\\e143\"; }\n\n.fa-lightbulb-cfl::before {\n content: \"\\e5a6\"; }\n\n.fa-window-frame-open::before {\n content: \"\\e050\"; }\n\n.fa-face-kiss::before {\n content: \"\\f596\"; }\n\n.fa-kiss::before {\n content: \"\\f596\"; }\n\n.fa-bridge-circle-xmark::before {\n content: \"\\e4cb\"; }\n\n.fa-period::before {\n content: \"\\2e\"; }\n\n.fa-face-grin-tongue::before {\n content: \"\\f589\"; }\n\n.fa-grin-tongue::before {\n content: \"\\f589\"; }\n\n.fa-up-to-dotted-line::before {\n content: \"\\e457\"; }\n\n.fa-thought-bubble::before {\n content: \"\\e32e\"; }\n\n.fa-skeleton-ribs::before {\n content: \"\\e5cb\"; }\n\n.fa-raygun::before {\n content: \"\\e025\"; }\n\n.fa-flute::before {\n content: \"\\f8b9\"; }\n\n.fa-acorn::before {\n content: \"\\f6ae\"; }\n\n.fa-video-arrow-up-right::before {\n content: \"\\e2c9\"; }\n\n.fa-grate-droplet::before {\n content: \"\\e194\"; }\n\n.fa-seal-exclamation::before {\n content: \"\\e242\"; }\n\n.fa-chess-bishop::before {\n content: \"\\f43a\"; }\n\n.fa-message-sms::before {\n content: \"\\e1e5\"; }\n\n.fa-coffee-beans::before {\n content: \"\\e13f\"; }\n\n.fa-hat-witch::before {\n content: \"\\f6e7\"; }\n\n.fa-face-grin-wink::before {\n content: \"\\f58c\"; }\n\n.fa-grin-wink::before {\n content: \"\\f58c\"; }\n\n.fa-clock-three-thirty::before {\n content: \"\\e357\"; }\n\n.fa-ear-deaf::before {\n content: \"\\f2a4\"; }\n\n.fa-deaf::before {\n content: \"\\f2a4\"; }\n\n.fa-deafness::before {\n content: \"\\f2a4\"; }\n\n.fa-hard-of-hearing::before {\n content: \"\\f2a4\"; }\n\n.fa-alarm-clock::before {\n content: \"\\f34e\"; }\n\n.fa-eclipse::before {\n content: \"\\f749\"; }\n\n.fa-face-relieved::before {\n content: \"\\e389\"; }\n\n.fa-road-circle-check::before {\n content: \"\\e564\"; }\n\n.fa-dice-five::before {\n content: \"\\f523\"; }\n\n.fa-octagon-minus::before {\n content: \"\\f308\"; }\n\n.fa-minus-octagon::before {\n content: \"\\f308\"; }\n\n.fa-square-rss::before {\n content: \"\\f143\"; }\n\n.fa-rss-square::before {\n content: \"\\f143\"; }\n\n.fa-face-zany::before {\n content: \"\\e3a4\"; }\n\n.fa-tricycle::before {\n content: \"\\e5c3\"; }\n\n.fa-land-mine-on::before {\n content: \"\\e51b\"; }\n\n.fa-square-arrow-up-left::before {\n content: \"\\e263\"; }\n\n.fa-i-cursor::before {\n content: \"\\f246\"; }\n\n.fa-chart-mixed-up-circle-dollar::before {\n content: \"\\e5d9\"; }\n\n.fa-salt-shaker::before {\n content: \"\\e446\"; }\n\n.fa-stamp::before {\n content: \"\\f5bf\"; }\n\n.fa-file-plus::before {\n content: \"\\f319\"; }\n\n.fa-draw-square::before {\n content: \"\\f5ef\"; }\n\n.fa-toilet-paper-under-slash::before {\n content: \"\\e2a1\"; }\n\n.fa-toilet-paper-reverse-slash::before {\n content: \"\\e2a1\"; }\n\n.fa-stairs::before {\n content: \"\\e289\"; }\n\n.fa-drone-front::before {\n content: \"\\f860\"; }\n\n.fa-drone-alt::before {\n content: \"\\f860\"; }\n\n.fa-glass-empty::before {\n content: \"\\e191\"; }\n\n.fa-dial-high::before {\n content: \"\\e15c\"; }\n\n.fa-user-helmet-safety::before {\n content: \"\\f82c\"; }\n\n.fa-user-construction::before {\n content: \"\\f82c\"; }\n\n.fa-user-hard-hat::before {\n content: \"\\f82c\"; }\n\n.fa-i::before {\n content: \"\\49\"; }\n\n.fa-hryvnia-sign::before {\n content: \"\\f6f2\"; }\n\n.fa-hryvnia::before {\n content: \"\\f6f2\"; }\n\n.fa-arrow-down-left-and-arrow-up-right-to-center::before {\n content: \"\\e092\"; }\n\n.fa-pills::before {\n content: \"\\f484\"; }\n\n.fa-face-grin-wide::before {\n content: \"\\f581\"; }\n\n.fa-grin-alt::before {\n content: \"\\f581\"; }\n\n.fa-tooth::before {\n content: \"\\f5c9\"; }\n\n.fa-basketball-hoop::before {\n content: \"\\f435\"; }\n\n.fa-objects-align-bottom::before {\n content: \"\\e3bb\"; }\n\n.fa-v::before {\n content: \"\\56\"; }\n\n.fa-sparkles::before {\n content: \"\\f890\"; }\n\n.fa-squid::before {\n content: \"\\e450\"; }\n\n.fa-leafy-green::before {\n content: \"\\e41d\"; }\n\n.fa-circle-arrow-up-right::before {\n content: \"\\e0fc\"; }\n\n.fa-calendars::before {\n content: \"\\e0d7\"; }\n\n.fa-bangladeshi-taka-sign::before {\n content: \"\\e2e6\"; }\n\n.fa-bicycle::before {\n content: \"\\f206\"; }\n\n.fa-hammer-war::before {\n content: \"\\f6e4\"; }\n\n.fa-circle-d::before {\n content: \"\\e104\"; }\n\n.fa-spider-black-widow::before {\n content: \"\\f718\"; }\n\n.fa-staff-snake::before {\n content: \"\\e579\"; }\n\n.fa-rod-asclepius::before {\n content: \"\\e579\"; }\n\n.fa-rod-snake::before {\n content: \"\\e579\"; }\n\n.fa-staff-aesculapius::before {\n content: \"\\e579\"; }\n\n.fa-pear::before {\n content: \"\\e20c\"; }\n\n.fa-head-side-cough-slash::before {\n content: \"\\e062\"; }\n\n.fa-file-mov::before {\n content: \"\\e647\"; }\n\n.fa-triangle::before {\n content: \"\\f2ec\"; }\n\n.fa-apartment::before {\n content: \"\\e468\"; }\n\n.fa-truck-medical::before {\n content: \"\\f0f9\"; }\n\n.fa-ambulance::before {\n content: \"\\f0f9\"; }\n\n.fa-pepper::before {\n content: \"\\e432\"; }\n\n.fa-piano::before {\n content: \"\\f8d4\"; }\n\n.fa-gun-squirt::before {\n content: \"\\e19d\"; }\n\n.fa-wheat-awn-circle-exclamation::before {\n content: \"\\e598\"; }\n\n.fa-snowman::before {\n content: \"\\f7d0\"; }\n\n.fa-user-alien::before {\n content: \"\\e04a\"; }\n\n.fa-shield-check::before {\n content: \"\\f2f7\"; }\n\n.fa-mortar-pestle::before {\n content: \"\\f5a7\"; }\n\n.fa-road-barrier::before {\n content: \"\\e562\"; }\n\n.fa-chart-candlestick::before {\n content: \"\\e0e2\"; }\n\n.fa-briefcase-blank::before {\n content: \"\\e0c8\"; }\n\n.fa-school::before {\n content: \"\\f549\"; }\n\n.fa-igloo::before {\n content: \"\\f7ae\"; }\n\n.fa-bracket-round::before {\n content: \"\\28\"; }\n\n.fa-parenthesis::before {\n content: \"\\28\"; }\n\n.fa-joint::before {\n content: \"\\f595\"; }\n\n.fa-horse-saddle::before {\n content: \"\\f8c3\"; }\n\n.fa-mug-marshmallows::before {\n content: \"\\f7b7\"; }\n\n.fa-filters::before {\n content: \"\\e17e\"; }\n\n.fa-bell-on::before {\n content: \"\\f8fa\"; }\n\n.fa-angle-right::before {\n content: \"\\f105\"; }\n\n.fa-dial-med::before {\n content: \"\\e15f\"; }\n\n.fa-horse::before {\n content: \"\\f6f0\"; }\n\n.fa-q::before {\n content: \"\\51\"; }\n\n.fa-monitor-waveform::before {\n content: \"\\f611\"; }\n\n.fa-monitor-heart-rate::before {\n content: \"\\f611\"; }\n\n.fa-link-simple::before {\n content: \"\\e1cd\"; }\n\n.fa-whistle::before {\n content: \"\\f460\"; }\n\n.fa-g::before {\n content: \"\\47\"; }\n\n.fa-wine-glass-crack::before {\n content: \"\\f4bb\"; }\n\n.fa-fragile::before {\n content: \"\\f4bb\"; }\n\n.fa-slot-machine::before {\n content: \"\\e3ce\"; }\n\n.fa-notes-medical::before {\n content: \"\\f481\"; }\n\n.fa-car-wash::before {\n content: \"\\f5e6\"; }\n\n.fa-escalator::before {\n content: \"\\e171\"; }\n\n.fa-comment-image::before {\n content: \"\\e148\"; }\n\n.fa-temperature-half::before {\n content: \"\\f2c9\"; }\n\n.fa-temperature-2::before {\n content: \"\\f2c9\"; }\n\n.fa-thermometer-2::before {\n content: \"\\f2c9\"; }\n\n.fa-thermometer-half::before {\n content: \"\\f2c9\"; }\n\n.fa-dong-sign::before {\n content: \"\\e169\"; }\n\n.fa-donut::before {\n content: \"\\e406\"; }\n\n.fa-doughnut::before {\n content: \"\\e406\"; }\n\n.fa-capsules::before {\n content: \"\\f46b\"; }\n\n.fa-poo-storm::before {\n content: \"\\f75a\"; }\n\n.fa-poo-bolt::before {\n content: \"\\f75a\"; }\n\n.fa-tally-1::before {\n content: \"\\e294\"; }\n\n.fa-file-vector::before {\n content: \"\\e64c\"; }\n\n.fa-face-frown-open::before {\n content: \"\\f57a\"; }\n\n.fa-frown-open::before {\n content: \"\\f57a\"; }\n\n.fa-square-dashed::before {\n content: \"\\e269\"; }\n\n.fa-bag-shopping-plus::before {\n content: \"\\e651\"; }\n\n.fa-square-j::before {\n content: \"\\e273\"; }\n\n.fa-hand-point-up::before {\n content: \"\\f0a6\"; }\n\n.fa-money-bill::before {\n content: \"\\f0d6\"; }\n\n.fa-arrow-up-big-small::before {\n content: \"\\f88e\"; }\n\n.fa-sort-size-up::before {\n content: \"\\f88e\"; }\n\n.fa-barcode-read::before {\n content: \"\\f464\"; }\n\n.fa-baguette::before {\n content: \"\\e3d8\"; }\n\n.fa-bowl-soft-serve::before {\n content: \"\\e46b\"; }\n\n.fa-face-holding-back-tears::before {\n content: \"\\e482\"; }\n\n.fa-square-up::before {\n content: \"\\f353\"; }\n\n.fa-arrow-alt-square-up::before {\n content: \"\\f353\"; }\n\n.fa-train-subway-tunnel::before {\n content: \"\\e2a3\"; }\n\n.fa-subway-tunnel::before {\n content: \"\\e2a3\"; }\n\n.fa-square-exclamation::before {\n content: \"\\f321\"; }\n\n.fa-exclamation-square::before {\n content: \"\\f321\"; }\n\n.fa-semicolon::before {\n content: \"\\3b\"; }\n\n.fa-bookmark::before {\n content: \"\\f02e\"; }\n\n.fa-fan-table::before {\n content: \"\\e004\"; }\n\n.fa-align-justify::before {\n content: \"\\f039\"; }\n\n.fa-battery-low::before {\n content: \"\\e0b1\"; }\n\n.fa-battery-1::before {\n content: \"\\e0b1\"; }\n\n.fa-credit-card-front::before {\n content: \"\\f38a\"; }\n\n.fa-brain-arrow-curved-right::before {\n content: \"\\f677\"; }\n\n.fa-mind-share::before {\n content: \"\\f677\"; }\n\n.fa-umbrella-beach::before {\n content: \"\\f5ca\"; }\n\n.fa-helmet-un::before {\n content: \"\\e503\"; }\n\n.fa-location-smile::before {\n content: \"\\f60d\"; }\n\n.fa-map-marker-smile::before {\n content: \"\\f60d\"; }\n\n.fa-arrow-left-to-line::before {\n content: \"\\f33e\"; }\n\n.fa-arrow-to-left::before {\n content: \"\\f33e\"; }\n\n.fa-bullseye::before {\n content: \"\\f140\"; }\n\n.fa-sushi::before {\n content: \"\\e48a\"; }\n\n.fa-nigiri::before {\n content: \"\\e48a\"; }\n\n.fa-message-captions::before {\n content: \"\\e1de\"; }\n\n.fa-comment-alt-captions::before {\n content: \"\\e1de\"; }\n\n.fa-trash-list::before {\n content: \"\\e2b1\"; }\n\n.fa-bacon::before {\n content: \"\\f7e5\"; }\n\n.fa-option::before {\n content: \"\\e318\"; }\n\n.fa-raccoon::before {\n content: \"\\e613\"; }\n\n.fa-hand-point-down::before {\n content: \"\\f0a7\"; }\n\n.fa-arrow-up-from-bracket::before {\n content: \"\\e09a\"; }\n\n.fa-head-side-gear::before {\n content: \"\\e611\"; }\n\n.fa-trash-plus::before {\n content: \"\\e2b2\"; }\n\n.fa-file-cad::before {\n content: \"\\e672\"; }\n\n.fa-objects-align-top::before {\n content: \"\\e3c0\"; }\n\n.fa-folder::before {\n content: \"\\f07b\"; }\n\n.fa-folder-blank::before {\n content: \"\\f07b\"; }\n\n.fa-face-anxious-sweat::before {\n content: \"\\e36a\"; }\n\n.fa-credit-card-blank::before {\n content: \"\\f389\"; }\n\n.fa-file-waveform::before {\n content: \"\\f478\"; }\n\n.fa-file-medical-alt::before {\n content: \"\\f478\"; }\n\n.fa-microchip-ai::before {\n content: \"\\e1ec\"; }\n\n.fa-mug::before {\n content: \"\\f874\"; }\n\n.fa-plane-up-slash::before {\n content: \"\\e22e\"; }\n\n.fa-radiation::before {\n content: \"\\f7b9\"; }\n\n.fa-pen-circle::before {\n content: \"\\e20e\"; }\n\n.fa-bag-seedling::before {\n content: \"\\e5f2\"; }\n\n.fa-chart-simple::before {\n content: \"\\e473\"; }\n\n.fa-crutches::before {\n content: \"\\f7f8\"; }\n\n.fa-circle-parking::before {\n content: \"\\f615\"; }\n\n.fa-parking-circle::before {\n content: \"\\f615\"; }\n\n.fa-mars-stroke::before {\n content: \"\\f229\"; }\n\n.fa-leaf-oak::before {\n content: \"\\f6f7\"; }\n\n.fa-square-bolt::before {\n content: \"\\e265\"; }\n\n.fa-vial::before {\n content: \"\\f492\"; }\n\n.fa-gauge::before {\n content: \"\\f624\"; }\n\n.fa-dashboard::before {\n content: \"\\f624\"; }\n\n.fa-gauge-med::before {\n content: \"\\f624\"; }\n\n.fa-tachometer-alt-average::before {\n content: \"\\f624\"; }\n\n.fa-wand-magic-sparkles::before {\n content: \"\\e2ca\"; }\n\n.fa-magic-wand-sparkles::before {\n content: \"\\e2ca\"; }\n\n.fa-lambda::before {\n content: \"\\f66e\"; }\n\n.fa-e::before {\n content: \"\\45\"; }\n\n.fa-pizza::before {\n content: \"\\f817\"; }\n\n.fa-bowl-chopsticks-noodles::before {\n content: \"\\e2ea\"; }\n\n.fa-h3::before {\n content: \"\\f315\"; }\n\n.fa-pen-clip::before {\n content: \"\\f305\"; }\n\n.fa-pen-alt::before {\n content: \"\\f305\"; }\n\n.fa-bridge-circle-exclamation::before {\n content: \"\\e4ca\"; }\n\n.fa-badge-percent::before {\n content: \"\\f646\"; }\n\n.fa-rotate-reverse::before {\n content: \"\\e631\"; }\n\n.fa-user::before {\n content: \"\\f007\"; }\n\n.fa-sensor::before {\n content: \"\\e028\"; }\n\n.fa-comma::before {\n content: \"\\2c\"; }\n\n.fa-school-circle-check::before {\n content: \"\\e56b\"; }\n\n.fa-toilet-paper-under::before {\n content: \"\\e2a0\"; }\n\n.fa-toilet-paper-reverse::before {\n content: \"\\e2a0\"; }\n\n.fa-light-emergency::before {\n content: \"\\e41f\"; }\n\n.fa-arrow-down-to-arc::before {\n content: \"\\e4ae\"; }\n\n.fa-dumpster::before {\n content: \"\\f793\"; }\n\n.fa-van-shuttle::before {\n content: \"\\f5b6\"; }\n\n.fa-shuttle-van::before {\n content: \"\\f5b6\"; }\n\n.fa-building-user::before {\n content: \"\\e4da\"; }\n\n.fa-light-switch::before {\n content: \"\\e017\"; }\n\n.fa-square-caret-left::before {\n content: \"\\f191\"; }\n\n.fa-caret-square-left::before {\n content: \"\\f191\"; }\n\n.fa-highlighter::before {\n content: \"\\f591\"; }\n\n.fa-wave-pulse::before {\n content: \"\\f5f8\"; }\n\n.fa-heart-rate::before {\n content: \"\\f5f8\"; }\n\n.fa-key::before {\n content: \"\\f084\"; }\n\n.fa-arrow-left-to-bracket::before {\n content: \"\\e669\"; }\n\n.fa-hat-santa::before {\n content: \"\\f7a7\"; }\n\n.fa-tamale::before {\n content: \"\\e451\"; }\n\n.fa-box-check::before {\n content: \"\\f467\"; }\n\n.fa-bullhorn::before {\n content: \"\\f0a1\"; }\n\n.fa-steak::before {\n content: \"\\f824\"; }\n\n.fa-location-crosshairs-slash::before {\n content: \"\\f603\"; }\n\n.fa-location-slash::before {\n content: \"\\f603\"; }\n\n.fa-person-dolly::before {\n content: \"\\f4d0\"; }\n\n.fa-globe::before {\n content: \"\\f0ac\"; }\n\n.fa-synagogue::before {\n content: \"\\f69b\"; }\n\n.fa-file-chart-column::before {\n content: \"\\f659\"; }\n\n.fa-file-chart-line::before {\n content: \"\\f659\"; }\n\n.fa-person-half-dress::before {\n content: \"\\e548\"; }\n\n.fa-folder-image::before {\n content: \"\\e18a\"; }\n\n.fa-calendar-pen::before {\n content: \"\\f333\"; }\n\n.fa-calendar-edit::before {\n content: \"\\f333\"; }\n\n.fa-road-bridge::before {\n content: \"\\e563\"; }\n\n.fa-face-smile-tear::before {\n content: \"\\e393\"; }\n\n.fa-message-plus::before {\n content: \"\\f4a8\"; }\n\n.fa-comment-alt-plus::before {\n content: \"\\f4a8\"; }\n\n.fa-location-arrow::before {\n content: \"\\f124\"; }\n\n.fa-c::before {\n content: \"\\43\"; }\n\n.fa-tablet-button::before {\n content: \"\\f10a\"; }\n\n.fa-person-dress-fairy::before {\n content: \"\\e607\"; }\n\n.fa-rectangle-history-circle-user::before {\n content: \"\\e4a4\"; }\n\n.fa-building-lock::before {\n content: \"\\e4d6\"; }\n\n.fa-chart-line-up::before {\n content: \"\\e0e5\"; }\n\n.fa-mailbox::before {\n content: \"\\f813\"; }\n\n.fa-sign-posts::before {\n content: \"\\e625\"; }\n\n.fa-truck-bolt::before {\n content: \"\\e3d0\"; }\n\n.fa-pizza-slice::before {\n content: \"\\f818\"; }\n\n.fa-money-bill-wave::before {\n content: \"\\f53a\"; }\n\n.fa-chart-area::before {\n content: \"\\f1fe\"; }\n\n.fa-area-chart::before {\n content: \"\\f1fe\"; }\n\n.fa-house-flag::before {\n content: \"\\e50d\"; }\n\n.fa-circle-three-quarters-stroke::before {\n content: \"\\e5d4\"; }\n\n.fa-person-circle-minus::before {\n content: \"\\e540\"; }\n\n.fa-scalpel::before {\n content: \"\\f61d\"; }\n\n.fa-ban::before {\n content: \"\\f05e\"; }\n\n.fa-cancel::before {\n content: \"\\f05e\"; }\n\n.fa-bell-exclamation::before {\n content: \"\\f848\"; }\n\n.fa-circle-bookmark::before {\n content: \"\\e100\"; }\n\n.fa-bookmark-circle::before {\n content: \"\\e100\"; }\n\n.fa-egg-fried::before {\n content: \"\\f7fc\"; }\n\n.fa-face-weary::before {\n content: \"\\e3a1\"; }\n\n.fa-uniform-martial-arts::before {\n content: \"\\e3d1\"; }\n\n.fa-camera-rotate::before {\n content: \"\\e0d8\"; }\n\n.fa-sun-dust::before {\n content: \"\\f764\"; }\n\n.fa-comment-text::before {\n content: \"\\e14d\"; }\n\n.fa-spray-can-sparkles::before {\n content: \"\\f5d0\"; }\n\n.fa-air-freshener::before {\n content: \"\\f5d0\"; }\n\n.fa-signal-bars::before {\n content: \"\\f690\"; }\n\n.fa-signal-alt::before {\n content: \"\\f690\"; }\n\n.fa-signal-alt-4::before {\n content: \"\\f690\"; }\n\n.fa-signal-bars-strong::before {\n content: \"\\f690\"; }\n\n.fa-diamond-exclamation::before {\n content: \"\\e405\"; }\n\n.fa-star::before {\n content: \"\\f005\"; }\n\n.fa-dial-min::before {\n content: \"\\e161\"; }\n\n.fa-repeat::before {\n content: \"\\f363\"; }\n\n.fa-cross::before {\n content: \"\\f654\"; }\n\n.fa-page-caret-down::before {\n content: \"\\e429\"; }\n\n.fa-file-caret-down::before {\n content: \"\\e429\"; }\n\n.fa-box::before {\n content: \"\\f466\"; }\n\n.fa-venus-mars::before {\n content: \"\\f228\"; }\n\n.fa-clock-seven-thirty::before {\n content: \"\\e351\"; }\n\n.fa-arrow-pointer::before {\n content: \"\\f245\"; }\n\n.fa-mouse-pointer::before {\n content: \"\\f245\"; }\n\n.fa-clock-four-thirty::before {\n content: \"\\e34b\"; }\n\n.fa-signal-bars-good::before {\n content: \"\\f693\"; }\n\n.fa-signal-alt-3::before {\n content: \"\\f693\"; }\n\n.fa-cactus::before {\n content: \"\\f8a7\"; }\n\n.fa-lightbulb-gear::before {\n content: \"\\e5fd\"; }\n\n.fa-maximize::before {\n content: \"\\f31e\"; }\n\n.fa-expand-arrows-alt::before {\n content: \"\\f31e\"; }\n\n.fa-charging-station::before {\n content: \"\\f5e7\"; }\n\n.fa-shapes::before {\n content: \"\\f61f\"; }\n\n.fa-triangle-circle-square::before {\n content: \"\\f61f\"; }\n\n.fa-plane-tail::before {\n content: \"\\e22c\"; }\n\n.fa-gauge-simple-max::before {\n content: \"\\f62b\"; }\n\n.fa-tachometer-fastest::before {\n content: \"\\f62b\"; }\n\n.fa-circle-u::before {\n content: \"\\e127\"; }\n\n.fa-shield-slash::before {\n content: \"\\e24b\"; }\n\n.fa-square-phone-hangup::before {\n content: \"\\e27a\"; }\n\n.fa-phone-square-down::before {\n content: \"\\e27a\"; }\n\n.fa-arrow-up-left::before {\n content: \"\\e09d\"; }\n\n.fa-transporter-1::before {\n content: \"\\e043\"; }\n\n.fa-peanuts::before {\n content: \"\\e431\"; }\n\n.fa-shuffle::before {\n content: \"\\f074\"; }\n\n.fa-random::before {\n content: \"\\f074\"; }\n\n.fa-person-running::before {\n content: \"\\f70c\"; }\n\n.fa-running::before {\n content: \"\\f70c\"; }\n\n.fa-mobile-retro::before {\n content: \"\\e527\"; }\n\n.fa-grip-lines-vertical::before {\n content: \"\\f7a5\"; }\n\n.fa-bin-bottles-recycle::before {\n content: \"\\e5f6\"; }\n\n.fa-arrow-up-from-square::before {\n content: \"\\e09c\"; }\n\n.fa-file-dashed-line::before {\n content: \"\\f877\"; }\n\n.fa-page-break::before {\n content: \"\\f877\"; }\n\n.fa-bracket-curly-right::before {\n content: \"\\7d\"; }\n\n.fa-spider::before {\n content: \"\\f717\"; }\n\n.fa-clock-three::before {\n content: \"\\e356\"; }\n\n.fa-hands-bound::before {\n content: \"\\e4f9\"; }\n\n.fa-scalpel-line-dashed::before {\n content: \"\\f61e\"; }\n\n.fa-scalpel-path::before {\n content: \"\\f61e\"; }\n\n.fa-file-invoice-dollar::before {\n content: \"\\f571\"; }\n\n.fa-pipe-smoking::before {\n content: \"\\e3c4\"; }\n\n.fa-face-astonished::before {\n content: \"\\e36b\"; }\n\n.fa-window::before {\n content: \"\\f40e\"; }\n\n.fa-plane-circle-exclamation::before {\n content: \"\\e556\"; }\n\n.fa-ear::before {\n content: \"\\f5f0\"; }\n\n.fa-file-lock::before {\n content: \"\\e3a6\"; }\n\n.fa-diagram-venn::before {\n content: \"\\e15a\"; }\n\n.fa-arrow-down-from-bracket::before {\n content: \"\\e667\"; }\n\n.fa-x-ray::before {\n content: \"\\f497\"; }\n\n.fa-goal-net::before {\n content: \"\\e3ab\"; }\n\n.fa-coffin-cross::before {\n content: \"\\e051\"; }\n\n.fa-spell-check::before {\n content: \"\\f891\"; }\n\n.fa-location-xmark::before {\n content: \"\\f60e\"; }\n\n.fa-map-marker-times::before {\n content: \"\\f60e\"; }\n\n.fa-map-marker-xmark::before {\n content: \"\\f60e\"; }\n\n.fa-circle-quarter-stroke::before {\n content: \"\\e5d3\"; }\n\n.fa-lasso::before {\n content: \"\\f8c8\"; }\n\n.fa-slash::before {\n content: \"\\f715\"; }\n\n.fa-person-to-portal::before {\n content: \"\\e022\"; }\n\n.fa-portal-enter::before {\n content: \"\\e022\"; }\n\n.fa-calendar-star::before {\n content: \"\\f736\"; }\n\n.fa-computer-mouse::before {\n content: \"\\f8cc\"; }\n\n.fa-mouse::before {\n content: \"\\f8cc\"; }\n\n.fa-arrow-right-to-bracket::before {\n content: \"\\f090\"; }\n\n.fa-sign-in::before {\n content: \"\\f090\"; }\n\n.fa-pegasus::before {\n content: \"\\f703\"; }\n\n.fa-files-medical::before {\n content: \"\\f7fd\"; }\n\n.fa-cannon::before {\n content: \"\\e642\"; }\n\n.fa-nfc-lock::before {\n content: \"\\e1f8\"; }\n\n.fa-person-ski-lift::before {\n content: \"\\f7c8\"; }\n\n.fa-ski-lift::before {\n content: \"\\f7c8\"; }\n\n.fa-square-6::before {\n content: \"\\e25b\"; }\n\n.fa-shop-slash::before {\n content: \"\\e070\"; }\n\n.fa-store-alt-slash::before {\n content: \"\\e070\"; }\n\n.fa-wind-turbine::before {\n content: \"\\f89b\"; }\n\n.fa-sliders-simple::before {\n content: \"\\e253\"; }\n\n.fa-grid-round::before {\n content: \"\\e5da\"; }\n\n.fa-badge-sheriff::before {\n content: \"\\f8a2\"; }\n\n.fa-server::before {\n content: \"\\f233\"; }\n\n.fa-virus-covid-slash::before {\n content: \"\\e4a9\"; }\n\n.fa-intersection::before {\n content: \"\\f668\"; }\n\n.fa-shop-lock::before {\n content: \"\\e4a5\"; }\n\n.fa-family::before {\n content: \"\\e300\"; }\n\n.fa-hourglass-start::before {\n content: \"\\f251\"; }\n\n.fa-hourglass-1::before {\n content: \"\\f251\"; }\n\n.fa-user-hair-buns::before {\n content: \"\\e3d3\"; }\n\n.fa-blender-phone::before {\n content: \"\\f6b6\"; }\n\n.fa-hourglass-clock::before {\n content: \"\\e41b\"; }\n\n.fa-person-seat-reclined::before {\n content: \"\\e21f\"; }\n\n.fa-paper-plane-top::before {\n content: \"\\e20a\"; }\n\n.fa-paper-plane-alt::before {\n content: \"\\e20a\"; }\n\n.fa-send::before {\n content: \"\\e20a\"; }\n\n.fa-message-arrow-up::before {\n content: \"\\e1dc\"; }\n\n.fa-comment-alt-arrow-up::before {\n content: \"\\e1dc\"; }\n\n.fa-lightbulb-exclamation::before {\n content: \"\\f671\"; }\n\n.fa-layer-minus::before {\n content: \"\\f5fe\"; }\n\n.fa-layer-group-minus::before {\n content: \"\\f5fe\"; }\n\n.fa-chart-pie-simple-circle-currency::before {\n content: \"\\e604\"; }\n\n.fa-circle-e::before {\n content: \"\\e109\"; }\n\n.fa-building-wheat::before {\n content: \"\\e4db\"; }\n\n.fa-gauge-max::before {\n content: \"\\f626\"; }\n\n.fa-tachometer-alt-fastest::before {\n content: \"\\f626\"; }\n\n.fa-person-breastfeeding::before {\n content: \"\\e53a\"; }\n\n.fa-apostrophe::before {\n content: \"\\27\"; }\n\n.fa-file-png::before {\n content: \"\\e666\"; }\n\n.fa-fire-hydrant::before {\n content: \"\\e17f\"; }\n\n.fa-right-to-bracket::before {\n content: \"\\f2f6\"; }\n\n.fa-sign-in-alt::before {\n content: \"\\f2f6\"; }\n\n.fa-video-plus::before {\n content: \"\\f4e1\"; }\n\n.fa-square-right::before {\n content: \"\\f352\"; }\n\n.fa-arrow-alt-square-right::before {\n content: \"\\f352\"; }\n\n.fa-comment-smile::before {\n content: \"\\f4b4\"; }\n\n.fa-venus::before {\n content: \"\\f221\"; }\n\n.fa-passport::before {\n content: \"\\f5ab\"; }\n\n.fa-inbox-in::before {\n content: \"\\f310\"; }\n\n.fa-inbox-arrow-down::before {\n content: \"\\f310\"; }\n\n.fa-heart-pulse::before {\n content: \"\\f21e\"; }\n\n.fa-heartbeat::before {\n content: \"\\f21e\"; }\n\n.fa-circle-8::before {\n content: \"\\e0f5\"; }\n\n.fa-clouds-moon::before {\n content: \"\\f745\"; }\n\n.fa-clock-ten-thirty::before {\n content: \"\\e355\"; }\n\n.fa-people-carry-box::before {\n content: \"\\f4ce\"; }\n\n.fa-people-carry::before {\n content: \"\\f4ce\"; }\n\n.fa-folder-user::before {\n content: \"\\e18e\"; }\n\n.fa-trash-can-xmark::before {\n content: \"\\e2ae\"; }\n\n.fa-temperature-high::before {\n content: \"\\f769\"; }\n\n.fa-microchip::before {\n content: \"\\f2db\"; }\n\n.fa-left-long-to-line::before {\n content: \"\\e41e\"; }\n\n.fa-crown::before {\n content: \"\\f521\"; }\n\n.fa-weight-hanging::before {\n content: \"\\f5cd\"; }\n\n.fa-xmarks-lines::before {\n content: \"\\e59a\"; }\n\n.fa-file-prescription::before {\n content: \"\\f572\"; }\n\n.fa-table-cells-lock::before {\n content: \"\\e679\"; }\n\n.fa-calendar-range::before {\n content: \"\\e0d6\"; }\n\n.fa-flower-daffodil::before {\n content: \"\\f800\"; }\n\n.fa-hand-back-point-up::before {\n content: \"\\e1a2\"; }\n\n.fa-weight-scale::before {\n content: \"\\f496\"; }\n\n.fa-weight::before {\n content: \"\\f496\"; }\n\n.fa-arrow-up-to-arc::before {\n content: \"\\e617\"; }\n\n.fa-star-exclamation::before {\n content: \"\\f2f3\"; }\n\n.fa-books::before {\n content: \"\\f5db\"; }\n\n.fa-user-group::before {\n content: \"\\f500\"; }\n\n.fa-user-friends::before {\n content: \"\\f500\"; }\n\n.fa-arrow-up-a-z::before {\n content: \"\\f15e\"; }\n\n.fa-sort-alpha-up::before {\n content: \"\\f15e\"; }\n\n.fa-layer-plus::before {\n content: \"\\f5ff\"; }\n\n.fa-layer-group-plus::before {\n content: \"\\f5ff\"; }\n\n.fa-play-pause::before {\n content: \"\\e22f\"; }\n\n.fa-block-question::before {\n content: \"\\e3dd\"; }\n\n.fa-snooze::before {\n content: \"\\f880\"; }\n\n.fa-zzz::before {\n content: \"\\f880\"; }\n\n.fa-scanner-image::before {\n content: \"\\f8f3\"; }\n\n.fa-tv-retro::before {\n content: \"\\f401\"; }\n\n.fa-square-t::before {\n content: \"\\e280\"; }\n\n.fa-farm::before {\n content: \"\\f864\"; }\n\n.fa-barn-silo::before {\n content: \"\\f864\"; }\n\n.fa-chess-knight::before {\n content: \"\\f441\"; }\n\n.fa-bars-sort::before {\n content: \"\\e0ae\"; }\n\n.fa-pallet-boxes::before {\n content: \"\\f483\"; }\n\n.fa-palette-boxes::before {\n content: \"\\f483\"; }\n\n.fa-pallet-alt::before {\n content: \"\\f483\"; }\n\n.fa-face-laugh-squint::before {\n content: \"\\f59b\"; }\n\n.fa-laugh-squint::before {\n content: \"\\f59b\"; }\n\n.fa-code-simple::before {\n content: \"\\e13d\"; }\n\n.fa-bolt-slash::before {\n content: \"\\e0b8\"; }\n\n.fa-panel-fire::before {\n content: \"\\e42f\"; }\n\n.fa-binary-circle-check::before {\n content: \"\\e33c\"; }\n\n.fa-comment-minus::before {\n content: \"\\f4b1\"; }\n\n.fa-burrito::before {\n content: \"\\f7ed\"; }\n\n.fa-violin::before {\n content: \"\\f8ed\"; }\n\n.fa-objects-column::before {\n content: \"\\e3c1\"; }\n\n.fa-square-chevron-down::before {\n content: \"\\f329\"; }\n\n.fa-chevron-square-down::before {\n content: \"\\f329\"; }\n\n.fa-comment-plus::before {\n content: \"\\f4b2\"; }\n\n.fa-triangle-instrument::before {\n content: \"\\f8e2\"; }\n\n.fa-triangle-music::before {\n content: \"\\f8e2\"; }\n\n.fa-wheelchair::before {\n content: \"\\f193\"; }\n\n.fa-user-pilot-tie::before {\n content: \"\\e2c1\"; }\n\n.fa-piano-keyboard::before {\n content: \"\\f8d5\"; }\n\n.fa-bed-empty::before {\n content: \"\\f8f9\"; }\n\n.fa-circle-arrow-up::before {\n content: \"\\f0aa\"; }\n\n.fa-arrow-circle-up::before {\n content: \"\\f0aa\"; }\n\n.fa-toggle-on::before {\n content: \"\\f205\"; }\n\n.fa-rectangle-vertical::before {\n content: \"\\f2fb\"; }\n\n.fa-rectangle-portrait::before {\n content: \"\\f2fb\"; }\n\n.fa-person-walking::before {\n content: \"\\f554\"; }\n\n.fa-walking::before {\n content: \"\\f554\"; }\n\n.fa-l::before {\n content: \"\\4c\"; }\n\n.fa-signal-stream::before {\n content: \"\\f8dd\"; }\n\n.fa-down-to-bracket::before {\n content: \"\\e4e7\"; }\n\n.fa-circle-z::before {\n content: \"\\e130\"; }\n\n.fa-stars::before {\n content: \"\\f762\"; }\n\n.fa-fire::before {\n content: \"\\f06d\"; }\n\n.fa-bed-pulse::before {\n content: \"\\f487\"; }\n\n.fa-procedures::before {\n content: \"\\f487\"; }\n\n.fa-house-day::before {\n content: \"\\e00e\"; }\n\n.fa-shuttle-space::before {\n content: \"\\f197\"; }\n\n.fa-space-shuttle::before {\n content: \"\\f197\"; }\n\n.fa-shirt-long-sleeve::before {\n content: \"\\e3c7\"; }\n\n.fa-chart-pie-simple::before {\n content: \"\\f64e\"; }\n\n.fa-chart-pie-alt::before {\n content: \"\\f64e\"; }\n\n.fa-face-laugh::before {\n content: \"\\f599\"; }\n\n.fa-laugh::before {\n content: \"\\f599\"; }\n\n.fa-folder-open::before {\n content: \"\\f07c\"; }\n\n.fa-album-collection-circle-user::before {\n content: \"\\e48f\"; }\n\n.fa-candy::before {\n content: \"\\e3e7\"; }\n\n.fa-bowl-hot::before {\n content: \"\\f823\"; }\n\n.fa-soup::before {\n content: \"\\f823\"; }\n\n.fa-flatbread::before {\n content: \"\\e40b\"; }\n\n.fa-heart-circle-plus::before {\n content: \"\\e500\"; }\n\n.fa-code-fork::before {\n content: \"\\e13b\"; }\n\n.fa-city::before {\n content: \"\\f64f\"; }\n\n.fa-signal-bars-weak::before {\n content: \"\\f691\"; }\n\n.fa-signal-alt-1::before {\n content: \"\\f691\"; }\n\n.fa-microphone-lines::before {\n content: \"\\f3c9\"; }\n\n.fa-microphone-alt::before {\n content: \"\\f3c9\"; }\n\n.fa-clock-twelve::before {\n content: \"\\e358\"; }\n\n.fa-pepper-hot::before {\n content: \"\\f816\"; }\n\n.fa-citrus-slice::before {\n content: \"\\e2f5\"; }\n\n.fa-sheep::before {\n content: \"\\f711\"; }\n\n.fa-unlock::before {\n content: \"\\f09c\"; }\n\n.fa-colon-sign::before {\n content: \"\\e140\"; }\n\n.fa-headset::before {\n content: \"\\f590\"; }\n\n.fa-badger-honey::before {\n content: \"\\f6b4\"; }\n\n.fa-h4::before {\n content: \"\\f86a\"; }\n\n.fa-store-slash::before {\n content: \"\\e071\"; }\n\n.fa-road-circle-xmark::before {\n content: \"\\e566\"; }\n\n.fa-signal-slash::before {\n content: \"\\f695\"; }\n\n.fa-user-minus::before {\n content: \"\\f503\"; }\n\n.fa-mars-stroke-up::before {\n content: \"\\f22a\"; }\n\n.fa-mars-stroke-v::before {\n content: \"\\f22a\"; }\n\n.fa-champagne-glasses::before {\n content: \"\\f79f\"; }\n\n.fa-glass-cheers::before {\n content: \"\\f79f\"; }\n\n.fa-taco::before {\n content: \"\\f826\"; }\n\n.fa-hexagon-plus::before {\n content: \"\\f300\"; }\n\n.fa-plus-hexagon::before {\n content: \"\\f300\"; }\n\n.fa-clipboard::before {\n content: \"\\f328\"; }\n\n.fa-house-circle-exclamation::before {\n content: \"\\e50a\"; }\n\n.fa-file-arrow-up::before {\n content: \"\\f574\"; }\n\n.fa-file-upload::before {\n content: \"\\f574\"; }\n\n.fa-wifi::before {\n content: \"\\f1eb\"; }\n\n.fa-wifi-3::before {\n content: \"\\f1eb\"; }\n\n.fa-wifi-strong::before {\n content: \"\\f1eb\"; }\n\n.fa-messages::before {\n content: \"\\f4b6\"; }\n\n.fa-comments-alt::before {\n content: \"\\f4b6\"; }\n\n.fa-bath::before {\n content: \"\\f2cd\"; }\n\n.fa-bathtub::before {\n content: \"\\f2cd\"; }\n\n.fa-umbrella-simple::before {\n content: \"\\e2bc\"; }\n\n.fa-umbrella-alt::before {\n content: \"\\e2bc\"; }\n\n.fa-rectangle-history-circle-plus::before {\n content: \"\\e4a3\"; }\n\n.fa-underline::before {\n content: \"\\f0cd\"; }\n\n.fa-prescription-bottle-pill::before {\n content: \"\\e5c0\"; }\n\n.fa-user-pen::before {\n content: \"\\f4ff\"; }\n\n.fa-user-edit::before {\n content: \"\\f4ff\"; }\n\n.fa-binary-slash::before {\n content: \"\\e33e\"; }\n\n.fa-square-o::before {\n content: \"\\e278\"; }\n\n.fa-caduceus::before {\n content: \"\\e681\"; }\n\n.fa-signature::before {\n content: \"\\f5b7\"; }\n\n.fa-stroopwafel::before {\n content: \"\\f551\"; }\n\n.fa-bold::before {\n content: \"\\f032\"; }\n\n.fa-anchor-lock::before {\n content: \"\\e4ad\"; }\n\n.fa-building-ngo::before {\n content: \"\\e4d7\"; }\n\n.fa-transporter-3::before {\n content: \"\\e045\"; }\n\n.fa-engine-warning::before {\n content: \"\\f5f2\"; }\n\n.fa-engine-exclamation::before {\n content: \"\\f5f2\"; }\n\n.fa-circle-down-right::before {\n content: \"\\e108\"; }\n\n.fa-square-k::before {\n content: \"\\e274\"; }\n\n.fa-manat-sign::before {\n content: \"\\e1d5\"; }\n\n.fa-money-check-pen::before {\n content: \"\\f872\"; }\n\n.fa-money-check-edit::before {\n content: \"\\f872\"; }\n\n.fa-not-equal::before {\n content: \"\\f53e\"; }\n\n.fa-border-top-left::before {\n content: \"\\f853\"; }\n\n.fa-border-style::before {\n content: \"\\f853\"; }\n\n.fa-map-location-dot::before {\n content: \"\\f5a0\"; }\n\n.fa-map-marked-alt::before {\n content: \"\\f5a0\"; }\n\n.fa-tilde::before {\n content: \"\\7e\"; }\n\n.fa-jedi::before {\n content: \"\\f669\"; }\n\n.fa-square-poll-vertical::before {\n content: \"\\f681\"; }\n\n.fa-poll::before {\n content: \"\\f681\"; }\n\n.fa-arrow-down-square-triangle::before {\n content: \"\\f889\"; }\n\n.fa-sort-shapes-down-alt::before {\n content: \"\\f889\"; }\n\n.fa-mug-hot::before {\n content: \"\\f7b6\"; }\n\n.fa-dog-leashed::before {\n content: \"\\f6d4\"; }\n\n.fa-car-battery::before {\n content: \"\\f5df\"; }\n\n.fa-battery-car::before {\n content: \"\\f5df\"; }\n\n.fa-face-downcast-sweat::before {\n content: \"\\e371\"; }\n\n.fa-mailbox-flag-up::before {\n content: \"\\e5bb\"; }\n\n.fa-memo-circle-info::before {\n content: \"\\e49a\"; }\n\n.fa-gift::before {\n content: \"\\f06b\"; }\n\n.fa-dice-two::before {\n content: \"\\f528\"; }\n\n.fa-volume::before {\n content: \"\\f6a8\"; }\n\n.fa-volume-medium::before {\n content: \"\\f6a8\"; }\n\n.fa-transporter-5::before {\n content: \"\\e2a6\"; }\n\n.fa-gauge-circle-bolt::before {\n content: \"\\e496\"; }\n\n.fa-coin-front::before {\n content: \"\\e3fc\"; }\n\n.fa-file-slash::before {\n content: \"\\e3a7\"; }\n\n.fa-message-arrow-up-right::before {\n content: \"\\e1dd\"; }\n\n.fa-treasure-chest::before {\n content: \"\\f723\"; }\n\n.fa-chess-queen::before {\n content: \"\\f445\"; }\n\n.fa-paintbrush-fine::before {\n content: \"\\f5a9\"; }\n\n.fa-paint-brush-alt::before {\n content: \"\\f5a9\"; }\n\n.fa-paint-brush-fine::before {\n content: \"\\f5a9\"; }\n\n.fa-paintbrush-alt::before {\n content: \"\\f5a9\"; }\n\n.fa-glasses::before {\n content: \"\\f530\"; }\n\n.fa-hood-cloak::before {\n content: \"\\f6ef\"; }\n\n.fa-square-quote::before {\n content: \"\\e329\"; }\n\n.fa-up-left::before {\n content: \"\\e2bd\"; }\n\n.fa-bring-front::before {\n content: \"\\f857\"; }\n\n.fa-chess-board::before {\n content: \"\\f43c\"; }\n\n.fa-burger-cheese::before {\n content: \"\\f7f1\"; }\n\n.fa-cheeseburger::before {\n content: \"\\f7f1\"; }\n\n.fa-building-circle-check::before {\n content: \"\\e4d2\"; }\n\n.fa-repeat-1::before {\n content: \"\\f365\"; }\n\n.fa-arrow-down-to-line::before {\n content: \"\\f33d\"; }\n\n.fa-arrow-to-bottom::before {\n content: \"\\f33d\"; }\n\n.fa-grid-5::before {\n content: \"\\e199\"; }\n\n.fa-swap-arrows::before {\n content: \"\\e60a\"; }\n\n.fa-right-long-to-line::before {\n content: \"\\e444\"; }\n\n.fa-person-chalkboard::before {\n content: \"\\e53d\"; }\n\n.fa-mars-stroke-right::before {\n content: \"\\f22b\"; }\n\n.fa-mars-stroke-h::before {\n content: \"\\f22b\"; }\n\n.fa-hand-back-fist::before {\n content: \"\\f255\"; }\n\n.fa-hand-rock::before {\n content: \"\\f255\"; }\n\n.fa-grid-round-5::before {\n content: \"\\e5de\"; }\n\n.fa-tally::before {\n content: \"\\f69c\"; }\n\n.fa-tally-5::before {\n content: \"\\f69c\"; }\n\n.fa-square-caret-up::before {\n content: \"\\f151\"; }\n\n.fa-caret-square-up::before {\n content: \"\\f151\"; }\n\n.fa-cloud-showers-water::before {\n content: \"\\e4e4\"; }\n\n.fa-chart-bar::before {\n content: \"\\f080\"; }\n\n.fa-bar-chart::before {\n content: \"\\f080\"; }\n\n.fa-hands-bubbles::before {\n content: \"\\e05e\"; }\n\n.fa-hands-wash::before {\n content: \"\\e05e\"; }\n\n.fa-less-than-equal::before {\n content: \"\\f537\"; }\n\n.fa-train::before {\n content: \"\\f238\"; }\n\n.fa-up-from-dotted-line::before {\n content: \"\\e456\"; }\n\n.fa-eye-low-vision::before {\n content: \"\\f2a8\"; }\n\n.fa-low-vision::before {\n content: \"\\f2a8\"; }\n\n.fa-traffic-light-go::before {\n content: \"\\f638\"; }\n\n.fa-face-exhaling::before {\n content: \"\\e480\"; }\n\n.fa-sensor-fire::before {\n content: \"\\e02a\"; }\n\n.fa-user-unlock::before {\n content: \"\\e058\"; }\n\n.fa-hexagon-divide::before {\n content: \"\\e1ad\"; }\n\n.fa-00::before {\n content: \"\\e467\"; }\n\n.fa-crow::before {\n content: \"\\f520\"; }\n\n.fa-cassette-betamax::before {\n content: \"\\f8a4\"; }\n\n.fa-betamax::before {\n content: \"\\f8a4\"; }\n\n.fa-sailboat::before {\n content: \"\\e445\"; }\n\n.fa-window-restore::before {\n content: \"\\f2d2\"; }\n\n.fa-nfc-magnifying-glass::before {\n content: \"\\e1f9\"; }\n\n.fa-file-binary::before {\n content: \"\\e175\"; }\n\n.fa-circle-v::before {\n content: \"\\e12a\"; }\n\n.fa-square-plus::before {\n content: \"\\f0fe\"; }\n\n.fa-plus-square::before {\n content: \"\\f0fe\"; }\n\n.fa-bowl-scoops::before {\n content: \"\\e3df\"; }\n\n.fa-mistletoe::before {\n content: \"\\f7b4\"; }\n\n.fa-custard::before {\n content: \"\\e403\"; }\n\n.fa-lacrosse-stick::before {\n content: \"\\e3b5\"; }\n\n.fa-hockey-mask::before {\n content: \"\\f6ee\"; }\n\n.fa-sunrise::before {\n content: \"\\f766\"; }\n\n.fa-subtitles::before {\n content: \"\\e60f\"; }\n\n.fa-panel-ews::before {\n content: \"\\e42e\"; }\n\n.fa-torii-gate::before {\n content: \"\\f6a1\"; }\n\n.fa-cloud-exclamation::before {\n content: \"\\e491\"; }\n\n.fa-message-lines::before {\n content: \"\\f4a6\"; }\n\n.fa-comment-alt-lines::before {\n content: \"\\f4a6\"; }\n\n.fa-frog::before {\n content: \"\\f52e\"; }\n\n.fa-bucket::before {\n content: \"\\e4cf\"; }\n\n.fa-floppy-disk-pen::before {\n content: \"\\e182\"; }\n\n.fa-image::before {\n content: \"\\f03e\"; }\n\n.fa-window-frame::before {\n content: \"\\e04f\"; }\n\n.fa-microphone::before {\n content: \"\\f130\"; }\n\n.fa-cow::before {\n content: \"\\f6c8\"; }\n\n.fa-file-zip::before {\n content: \"\\e5ee\"; }\n\n.fa-square-ring::before {\n content: \"\\e44f\"; }\n\n.fa-down-from-line::before {\n content: \"\\f349\"; }\n\n.fa-arrow-alt-from-top::before {\n content: \"\\f349\"; }\n\n.fa-caret-up::before {\n content: \"\\f0d8\"; }\n\n.fa-shield-xmark::before {\n content: \"\\e24c\"; }\n\n.fa-shield-times::before {\n content: \"\\e24c\"; }\n\n.fa-screwdriver::before {\n content: \"\\f54a\"; }\n\n.fa-circle-sort-down::before {\n content: \"\\e031\"; }\n\n.fa-sort-circle-down::before {\n content: \"\\e031\"; }\n\n.fa-folder-closed::before {\n content: \"\\e185\"; }\n\n.fa-house-tsunami::before {\n content: \"\\e515\"; }\n\n.fa-square-nfi::before {\n content: \"\\e576\"; }\n\n.fa-forklift::before {\n content: \"\\f47a\"; }\n\n.fa-arrow-up-from-ground-water::before {\n content: \"\\e4b5\"; }\n\n.fa-bracket-square-right::before {\n content: \"\\5d\"; }\n\n.fa-martini-glass::before {\n content: \"\\f57b\"; }\n\n.fa-glass-martini-alt::before {\n content: \"\\f57b\"; }\n\n.fa-rotate-left::before {\n content: \"\\f2ea\"; }\n\n.fa-rotate-back::before {\n content: \"\\f2ea\"; }\n\n.fa-rotate-backward::before {\n content: \"\\f2ea\"; }\n\n.fa-undo-alt::before {\n content: \"\\f2ea\"; }\n\n.fa-table-columns::before {\n content: \"\\f0db\"; }\n\n.fa-columns::before {\n content: \"\\f0db\"; }\n\n.fa-square-a::before {\n content: \"\\e25f\"; }\n\n.fa-tick::before {\n content: \"\\e32f\"; }\n\n.fa-lemon::before {\n content: \"\\f094\"; }\n\n.fa-head-side-mask::before {\n content: \"\\e063\"; }\n\n.fa-handshake::before {\n content: \"\\f2b5\"; }\n\n.fa-gem::before {\n content: \"\\f3a5\"; }\n\n.fa-dolly::before {\n content: \"\\f472\"; }\n\n.fa-dolly-box::before {\n content: \"\\f472\"; }\n\n.fa-smoking::before {\n content: \"\\f48d\"; }\n\n.fa-minimize::before {\n content: \"\\f78c\"; }\n\n.fa-compress-arrows-alt::before {\n content: \"\\f78c\"; }\n\n.fa-refrigerator::before {\n content: \"\\e026\"; }\n\n.fa-monument::before {\n content: \"\\f5a6\"; }\n\n.fa-octagon-xmark::before {\n content: \"\\f2f0\"; }\n\n.fa-times-octagon::before {\n content: \"\\f2f0\"; }\n\n.fa-xmark-octagon::before {\n content: \"\\f2f0\"; }\n\n.fa-align-slash::before {\n content: \"\\f846\"; }\n\n.fa-snowplow::before {\n content: \"\\f7d2\"; }\n\n.fa-angles-right::before {\n content: \"\\f101\"; }\n\n.fa-angle-double-right::before {\n content: \"\\f101\"; }\n\n.fa-truck-ramp-couch::before {\n content: \"\\f4dd\"; }\n\n.fa-truck-couch::before {\n content: \"\\f4dd\"; }\n\n.fa-cannabis::before {\n content: \"\\f55f\"; }\n\n.fa-circle-play::before {\n content: \"\\f144\"; }\n\n.fa-play-circle::before {\n content: \"\\f144\"; }\n\n.fa-arrow-up-right-and-arrow-down-left-from-center::before {\n content: \"\\e0a0\"; }\n\n.fa-location-arrow-up::before {\n content: \"\\e63a\"; }\n\n.fa-tablets::before {\n content: \"\\f490\"; }\n\n.fa-360-degrees::before {\n content: \"\\e2dc\"; }\n\n.fa-ethernet::before {\n content: \"\\f796\"; }\n\n.fa-euro-sign::before {\n content: \"\\f153\"; }\n\n.fa-eur::before {\n content: \"\\f153\"; }\n\n.fa-euro::before {\n content: \"\\f153\"; }\n\n.fa-chair::before {\n content: \"\\f6c0\"; }\n\n.fa-circle-check::before {\n content: \"\\f058\"; }\n\n.fa-check-circle::before {\n content: \"\\f058\"; }\n\n.fa-square-dashed-circle-plus::before {\n content: \"\\e5c2\"; }\n\n.fa-hand-holding-circle-dollar::before {\n content: \"\\e621\"; }\n\n.fa-money-simple-from-bracket::before {\n content: \"\\e313\"; }\n\n.fa-bat::before {\n content: \"\\f6b5\"; }\n\n.fa-circle-stop::before {\n content: \"\\f28d\"; }\n\n.fa-stop-circle::before {\n content: \"\\f28d\"; }\n\n.fa-head-side-headphones::before {\n content: \"\\f8c2\"; }\n\n.fa-phone-rotary::before {\n content: \"\\f8d3\"; }\n\n.fa-arrow-up-to-bracket::before {\n content: \"\\e66a\"; }\n\n.fa-compass-drafting::before {\n content: \"\\f568\"; }\n\n.fa-drafting-compass::before {\n content: \"\\f568\"; }\n\n.fa-plate-wheat::before {\n content: \"\\e55a\"; }\n\n.fa-calendar-circle-minus::before {\n content: \"\\e46f\"; }\n\n.fa-chopsticks::before {\n content: \"\\e3f7\"; }\n\n.fa-car-wrench::before {\n content: \"\\f5e3\"; }\n\n.fa-car-mechanic::before {\n content: \"\\f5e3\"; }\n\n.fa-icicles::before {\n content: \"\\f7ad\"; }\n\n.fa-person-shelter::before {\n content: \"\\e54f\"; }\n\n.fa-neuter::before {\n content: \"\\f22c\"; }\n\n.fa-id-badge::before {\n content: \"\\f2c1\"; }\n\n.fa-kazoo::before {\n content: \"\\f8c7\"; }\n\n.fa-marker::before {\n content: \"\\f5a1\"; }\n\n.fa-bin-bottles::before {\n content: \"\\e5f5\"; }\n\n.fa-face-laugh-beam::before {\n content: \"\\f59a\"; }\n\n.fa-laugh-beam::before {\n content: \"\\f59a\"; }\n\n.fa-square-arrow-down-left::before {\n content: \"\\e261\"; }\n\n.fa-battery-bolt::before {\n content: \"\\f376\"; }\n\n.fa-tree-large::before {\n content: \"\\f7dd\"; }\n\n.fa-helicopter-symbol::before {\n content: \"\\e502\"; }\n\n.fa-aperture::before {\n content: \"\\e2df\"; }\n\n.fa-universal-access::before {\n content: \"\\f29a\"; }\n\n.fa-gear-complex::before {\n content: \"\\e5e9\"; }\n\n.fa-file-magnifying-glass::before {\n content: \"\\f865\"; }\n\n.fa-file-search::before {\n content: \"\\f865\"; }\n\n.fa-up-right::before {\n content: \"\\e2be\"; }\n\n.fa-circle-chevron-up::before {\n content: \"\\f139\"; }\n\n.fa-chevron-circle-up::before {\n content: \"\\f139\"; }\n\n.fa-user-police::before {\n content: \"\\e333\"; }\n\n.fa-lari-sign::before {\n content: \"\\e1c8\"; }\n\n.fa-volcano::before {\n content: \"\\f770\"; }\n\n.fa-teddy-bear::before {\n content: \"\\e3cf\"; }\n\n.fa-stocking::before {\n content: \"\\f7d5\"; }\n\n.fa-person-walking-dashed-line-arrow-right::before {\n content: \"\\e553\"; }\n\n.fa-image-slash::before {\n content: \"\\e1b7\"; }\n\n.fa-mask-snorkel::before {\n content: \"\\e3b7\"; }\n\n.fa-smoke::before {\n content: \"\\f760\"; }\n\n.fa-sterling-sign::before {\n content: \"\\f154\"; }\n\n.fa-gbp::before {\n content: \"\\f154\"; }\n\n.fa-pound-sign::before {\n content: \"\\f154\"; }\n\n.fa-battery-exclamation::before {\n content: \"\\e0b0\"; }\n\n.fa-viruses::before {\n content: \"\\e076\"; }\n\n.fa-square-person-confined::before {\n content: \"\\e577\"; }\n\n.fa-user-tie::before {\n content: \"\\f508\"; }\n\n.fa-up-to-bracket::before {\n content: \"\\e66e\"; }\n\n.fa-arrow-down-long::before {\n content: \"\\f175\"; }\n\n.fa-long-arrow-down::before {\n content: \"\\f175\"; }\n\n.fa-tent-arrow-down-to-line::before {\n content: \"\\e57e\"; }\n\n.fa-certificate::before {\n content: \"\\f0a3\"; }\n\n.fa-crystal-ball::before {\n content: \"\\e362\"; }\n\n.fa-reply-all::before {\n content: \"\\f122\"; }\n\n.fa-mail-reply-all::before {\n content: \"\\f122\"; }\n\n.fa-suitcase::before {\n content: \"\\f0f2\"; }\n\n.fa-person-skating::before {\n content: \"\\f7c5\"; }\n\n.fa-skating::before {\n content: \"\\f7c5\"; }\n\n.fa-star-shooting::before {\n content: \"\\e036\"; }\n\n.fa-binary-lock::before {\n content: \"\\e33d\"; }\n\n.fa-filter-circle-dollar::before {\n content: \"\\f662\"; }\n\n.fa-funnel-dollar::before {\n content: \"\\f662\"; }\n\n.fa-camera-retro::before {\n content: \"\\f083\"; }\n\n.fa-circle-arrow-down::before {\n content: \"\\f0ab\"; }\n\n.fa-arrow-circle-down::before {\n content: \"\\f0ab\"; }\n\n.fa-comment-pen::before {\n content: \"\\f4ae\"; }\n\n.fa-comment-edit::before {\n content: \"\\f4ae\"; }\n\n.fa-file-import::before {\n content: \"\\f56f\"; }\n\n.fa-arrow-right-to-file::before {\n content: \"\\f56f\"; }\n\n.fa-banjo::before {\n content: \"\\f8a3\"; }\n\n.fa-square-arrow-up-right::before {\n content: \"\\f14c\"; }\n\n.fa-external-link-square::before {\n content: \"\\f14c\"; }\n\n.fa-light-emergency-on::before {\n content: \"\\e420\"; }\n\n.fa-kerning::before {\n content: \"\\f86f\"; }\n\n.fa-box-open::before {\n content: \"\\f49e\"; }\n\n.fa-square-f::before {\n content: \"\\e270\"; }\n\n.fa-scroll::before {\n content: \"\\f70e\"; }\n\n.fa-spa::before {\n content: \"\\f5bb\"; }\n\n.fa-arrow-left-from-line::before {\n content: \"\\f344\"; }\n\n.fa-arrow-from-right::before {\n content: \"\\f344\"; }\n\n.fa-strawberry::before {\n content: \"\\e32b\"; }\n\n.fa-location-pin-lock::before {\n content: \"\\e51f\"; }\n\n.fa-pause::before {\n content: \"\\f04c\"; }\n\n.fa-clock-eight-thirty::before {\n content: \"\\e346\"; }\n\n.fa-plane-engines::before {\n content: \"\\f3de\"; }\n\n.fa-plane-alt::before {\n content: \"\\f3de\"; }\n\n.fa-hill-avalanche::before {\n content: \"\\e507\"; }\n\n.fa-temperature-empty::before {\n content: \"\\f2cb\"; }\n\n.fa-temperature-0::before {\n content: \"\\f2cb\"; }\n\n.fa-thermometer-0::before {\n content: \"\\f2cb\"; }\n\n.fa-thermometer-empty::before {\n content: \"\\f2cb\"; }\n\n.fa-bomb::before {\n content: \"\\f1e2\"; }\n\n.fa-gauge-low::before {\n content: \"\\f627\"; }\n\n.fa-tachometer-alt-slow::before {\n content: \"\\f627\"; }\n\n.fa-registered::before {\n content: \"\\f25d\"; }\n\n.fa-trash-can-plus::before {\n content: \"\\e2ac\"; }\n\n.fa-address-card::before {\n content: \"\\f2bb\"; }\n\n.fa-contact-card::before {\n content: \"\\f2bb\"; }\n\n.fa-vcard::before {\n content: \"\\f2bb\"; }\n\n.fa-scale-unbalanced-flip::before {\n content: \"\\f516\"; }\n\n.fa-balance-scale-right::before {\n content: \"\\f516\"; }\n\n.fa-globe-snow::before {\n content: \"\\f7a3\"; }\n\n.fa-subscript::before {\n content: \"\\f12c\"; }\n\n.fa-diamond-turn-right::before {\n content: \"\\f5eb\"; }\n\n.fa-directions::before {\n content: \"\\f5eb\"; }\n\n.fa-integral::before {\n content: \"\\f667\"; }\n\n.fa-burst::before {\n content: \"\\e4dc\"; }\n\n.fa-house-laptop::before {\n content: \"\\e066\"; }\n\n.fa-laptop-house::before {\n content: \"\\e066\"; }\n\n.fa-face-tired::before {\n content: \"\\f5c8\"; }\n\n.fa-tired::before {\n content: \"\\f5c8\"; }\n\n.fa-money-bills::before {\n content: \"\\e1f3\"; }\n\n.fa-blinds-raised::before {\n content: \"\\f8fd\"; }\n\n.fa-smog::before {\n content: \"\\f75f\"; }\n\n.fa-ufo-beam::before {\n content: \"\\e048\"; }\n\n.fa-circle-caret-up::before {\n content: \"\\f331\"; }\n\n.fa-caret-circle-up::before {\n content: \"\\f331\"; }\n\n.fa-user-vneck-hair-long::before {\n content: \"\\e463\"; }\n\n.fa-square-a-lock::before {\n content: \"\\e44d\"; }\n\n.fa-crutch::before {\n content: \"\\f7f7\"; }\n\n.fa-gas-pump-slash::before {\n content: \"\\f5f4\"; }\n\n.fa-cloud-arrow-up::before {\n content: \"\\f0ee\"; }\n\n.fa-cloud-upload::before {\n content: \"\\f0ee\"; }\n\n.fa-cloud-upload-alt::before {\n content: \"\\f0ee\"; }\n\n.fa-palette::before {\n content: \"\\f53f\"; }\n\n.fa-transporter-4::before {\n content: \"\\e2a5\"; }\n\n.fa-chart-mixed-up-circle-currency::before {\n content: \"\\e5d8\"; }\n\n.fa-objects-align-right::before {\n content: \"\\e3bf\"; }\n\n.fa-arrows-turn-right::before {\n content: \"\\e4c0\"; }\n\n.fa-vest::before {\n content: \"\\e085\"; }\n\n.fa-pig::before {\n content: \"\\f706\"; }\n\n.fa-inbox-full::before {\n content: \"\\e1ba\"; }\n\n.fa-circle-envelope::before {\n content: \"\\e10c\"; }\n\n.fa-envelope-circle::before {\n content: \"\\e10c\"; }\n\n.fa-triangle-person-digging::before {\n content: \"\\f85d\"; }\n\n.fa-construction::before {\n content: \"\\f85d\"; }\n\n.fa-ferry::before {\n content: \"\\e4ea\"; }\n\n.fa-bullseye-arrow::before {\n content: \"\\f648\"; }\n\n.fa-arrows-down-to-people::before {\n content: \"\\e4b9\"; }\n\n.fa-seedling::before {\n content: \"\\f4d8\"; }\n\n.fa-sprout::before {\n content: \"\\f4d8\"; }\n\n.fa-clock-seven::before {\n content: \"\\e350\"; }\n\n.fa-left-right::before {\n content: \"\\f337\"; }\n\n.fa-arrows-alt-h::before {\n content: \"\\f337\"; }\n\n.fa-boxes-packing::before {\n content: \"\\e4c7\"; }\n\n.fa-circle-arrow-left::before {\n content: \"\\f0a8\"; }\n\n.fa-arrow-circle-left::before {\n content: \"\\f0a8\"; }\n\n.fa-flashlight::before {\n content: \"\\f8b8\"; }\n\n.fa-file-jpg::before {\n content: \"\\e646\"; }\n\n.fa-group-arrows-rotate::before {\n content: \"\\e4f6\"; }\n\n.fa-bowl-food::before {\n content: \"\\e4c6\"; }\n\n.fa-square-9::before {\n content: \"\\e25e\"; }\n\n.fa-candy-cane::before {\n content: \"\\f786\"; }\n\n.fa-arrow-down-wide-short::before {\n content: \"\\f160\"; }\n\n.fa-sort-amount-asc::before {\n content: \"\\f160\"; }\n\n.fa-sort-amount-down::before {\n content: \"\\f160\"; }\n\n.fa-square-dollar::before {\n content: \"\\f2e9\"; }\n\n.fa-dollar-square::before {\n content: \"\\f2e9\"; }\n\n.fa-usd-square::before {\n content: \"\\f2e9\"; }\n\n.fa-phone-arrow-right::before {\n content: \"\\e5be\"; }\n\n.fa-hand-holding-seedling::before {\n content: \"\\f4bf\"; }\n\n.fa-message-check::before {\n content: \"\\f4a2\"; }\n\n.fa-comment-alt-check::before {\n content: \"\\f4a2\"; }\n\n.fa-cloud-bolt::before {\n content: \"\\f76c\"; }\n\n.fa-thunderstorm::before {\n content: \"\\f76c\"; }\n\n.fa-chart-line-up-down::before {\n content: \"\\e5d7\"; }\n\n.fa-text-slash::before {\n content: \"\\f87d\"; }\n\n.fa-remove-format::before {\n content: \"\\f87d\"; }\n\n.fa-watch::before {\n content: \"\\f2e1\"; }\n\n.fa-circle-down-left::before {\n content: \"\\e107\"; }\n\n.fa-text::before {\n content: \"\\f893\"; }\n\n.fa-projector::before {\n content: \"\\f8d6\"; }\n\n.fa-face-smile-wink::before {\n content: \"\\f4da\"; }\n\n.fa-smile-wink::before {\n content: \"\\f4da\"; }\n\n.fa-tombstone-blank::before {\n content: \"\\f721\"; }\n\n.fa-tombstone-alt::before {\n content: \"\\f721\"; }\n\n.fa-chess-king-piece::before {\n content: \"\\f440\"; }\n\n.fa-chess-king-alt::before {\n content: \"\\f440\"; }\n\n.fa-circle-6::before {\n content: \"\\e0f3\"; }\n\n.fa-waves-sine::before {\n content: \"\\e65d\"; }\n\n.fa-left::before {\n content: \"\\f355\"; }\n\n.fa-arrow-alt-left::before {\n content: \"\\f355\"; }\n\n.fa-file-word::before {\n content: \"\\f1c2\"; }\n\n.fa-file-powerpoint::before {\n content: \"\\f1c4\"; }\n\n.fa-square-down::before {\n content: \"\\f350\"; }\n\n.fa-arrow-alt-square-down::before {\n content: \"\\f350\"; }\n\n.fa-objects-align-center-vertical::before {\n content: \"\\e3bd\"; }\n\n.fa-arrows-left-right::before {\n content: \"\\f07e\"; }\n\n.fa-arrows-h::before {\n content: \"\\f07e\"; }\n\n.fa-house-lock::before {\n content: \"\\e510\"; }\n\n.fa-cloud-arrow-down::before {\n content: \"\\f0ed\"; }\n\n.fa-cloud-download::before {\n content: \"\\f0ed\"; }\n\n.fa-cloud-download-alt::before {\n content: \"\\f0ed\"; }\n\n.fa-wreath::before {\n content: \"\\f7e2\"; }\n\n.fa-children::before {\n content: \"\\e4e1\"; }\n\n.fa-meter-droplet::before {\n content: \"\\e1ea\"; }\n\n.fa-chalkboard::before {\n content: \"\\f51b\"; }\n\n.fa-blackboard::before {\n content: \"\\f51b\"; }\n\n.fa-user-large-slash::before {\n content: \"\\f4fa\"; }\n\n.fa-user-alt-slash::before {\n content: \"\\f4fa\"; }\n\n.fa-signal-strong::before {\n content: \"\\f68f\"; }\n\n.fa-signal-4::before {\n content: \"\\f68f\"; }\n\n.fa-lollipop::before {\n content: \"\\e424\"; }\n\n.fa-lollypop::before {\n content: \"\\e424\"; }\n\n.fa-list-tree::before {\n content: \"\\e1d2\"; }\n\n.fa-envelope-open::before {\n content: \"\\f2b6\"; }\n\n.fa-draw-circle::before {\n content: \"\\f5ed\"; }\n\n.fa-cat-space::before {\n content: \"\\e001\"; }\n\n.fa-handshake-simple-slash::before {\n content: \"\\e05f\"; }\n\n.fa-handshake-alt-slash::before {\n content: \"\\e05f\"; }\n\n.fa-rabbit-running::before {\n content: \"\\f709\"; }\n\n.fa-rabbit-fast::before {\n content: \"\\f709\"; }\n\n.fa-memo-pad::before {\n content: \"\\e1da\"; }\n\n.fa-mattress-pillow::before {\n content: \"\\e525\"; }\n\n.fa-alarm-plus::before {\n content: \"\\f844\"; }\n\n.fa-alicorn::before {\n content: \"\\f6b0\"; }\n\n.fa-comment-question::before {\n content: \"\\e14b\"; }\n\n.fa-gingerbread-man::before {\n content: \"\\f79d\"; }\n\n.fa-guarani-sign::before {\n content: \"\\e19a\"; }\n\n.fa-burger-fries::before {\n content: \"\\e0cd\"; }\n\n.fa-mug-tea::before {\n content: \"\\f875\"; }\n\n.fa-border-top::before {\n content: \"\\f855\"; }\n\n.fa-arrows-rotate::before {\n content: \"\\f021\"; }\n\n.fa-refresh::before {\n content: \"\\f021\"; }\n\n.fa-sync::before {\n content: \"\\f021\"; }\n\n.fa-circle-book-open::before {\n content: \"\\e0ff\"; }\n\n.fa-book-circle::before {\n content: \"\\e0ff\"; }\n\n.fa-arrows-to-dotted-line::before {\n content: \"\\e0a6\"; }\n\n.fa-fire-extinguisher::before {\n content: \"\\f134\"; }\n\n.fa-magnifying-glass-arrows-rotate::before {\n content: \"\\e65e\"; }\n\n.fa-garage-open::before {\n content: \"\\e00b\"; }\n\n.fa-shelves-empty::before {\n content: \"\\e246\"; }\n\n.fa-cruzeiro-sign::before {\n content: \"\\e152\"; }\n\n.fa-watch-apple::before {\n content: \"\\e2cb\"; }\n\n.fa-watch-calculator::before {\n content: \"\\f8f0\"; }\n\n.fa-list-dropdown::before {\n content: \"\\e1cf\"; }\n\n.fa-cabinet-filing::before {\n content: \"\\f64b\"; }\n\n.fa-burger-soda::before {\n content: \"\\f858\"; }\n\n.fa-square-arrow-up::before {\n content: \"\\f33c\"; }\n\n.fa-arrow-square-up::before {\n content: \"\\f33c\"; }\n\n.fa-greater-than-equal::before {\n content: \"\\f532\"; }\n\n.fa-pallet-box::before {\n content: \"\\e208\"; }\n\n.fa-face-confounded::before {\n content: \"\\e36c\"; }\n\n.fa-shield-halved::before {\n content: \"\\f3ed\"; }\n\n.fa-shield-alt::before {\n content: \"\\f3ed\"; }\n\n.fa-truck-plow::before {\n content: \"\\f7de\"; }\n\n.fa-book-atlas::before {\n content: \"\\f558\"; }\n\n.fa-atlas::before {\n content: \"\\f558\"; }\n\n.fa-virus::before {\n content: \"\\e074\"; }\n\n.fa-grid-round-2::before {\n content: \"\\e5db\"; }\n\n.fa-comment-middle-top::before {\n content: \"\\e14a\"; }\n\n.fa-wave::before {\n content: \"\\e65b\"; }\n\n.fa-envelope-circle-check::before {\n content: \"\\e4e8\"; }\n\n.fa-layer-group::before {\n content: \"\\f5fd\"; }\n\n.fa-restroom-simple::before {\n content: \"\\e23a\"; }\n\n.fa-arrows-to-dot::before {\n content: \"\\e4be\"; }\n\n.fa-border-outer::before {\n content: \"\\f851\"; }\n\n.fa-hashtag-lock::before {\n content: \"\\e415\"; }\n\n.fa-clock-two-thirty::before {\n content: \"\\e35b\"; }\n\n.fa-archway::before {\n content: \"\\f557\"; }\n\n.fa-heart-circle-check::before {\n content: \"\\e4fd\"; }\n\n.fa-house-chimney-crack::before {\n content: \"\\f6f1\"; }\n\n.fa-house-damage::before {\n content: \"\\f6f1\"; }\n\n.fa-file-zipper::before {\n content: \"\\f1c6\"; }\n\n.fa-file-archive::before {\n content: \"\\f1c6\"; }\n\n.fa-ticket-perforated::before {\n content: \"\\e63e\"; }\n\n.fa-heart-half::before {\n content: \"\\e1ab\"; }\n\n.fa-comment-check::before {\n content: \"\\f4ac\"; }\n\n.fa-square::before {\n content: \"\\f0c8\"; }\n\n.fa-memo::before {\n content: \"\\e1d8\"; }\n\n.fa-martini-glass-empty::before {\n content: \"\\f000\"; }\n\n.fa-glass-martini::before {\n content: \"\\f000\"; }\n\n.fa-couch::before {\n content: \"\\f4b8\"; }\n\n.fa-cedi-sign::before {\n content: \"\\e0df\"; }\n\n.fa-italic::before {\n content: \"\\f033\"; }\n\n.fa-glass-citrus::before {\n content: \"\\f869\"; }\n\n.fa-calendar-lines-pen::before {\n content: \"\\e472\"; }\n\n.fa-table-cells-column-lock::before {\n content: \"\\e678\"; }\n\n.fa-church::before {\n content: \"\\f51d\"; }\n\n.fa-person-snowmobiling::before {\n content: \"\\f7d1\"; }\n\n.fa-snowmobile::before {\n content: \"\\f7d1\"; }\n\n.fa-face-hushed::before {\n content: \"\\e37b\"; }\n\n.fa-comments-dollar::before {\n content: \"\\f653\"; }\n\n.fa-tickets-simple::before {\n content: \"\\e659\"; }\n\n.fa-pickaxe::before {\n content: \"\\e5bf\"; }\n\n.fa-link-simple-slash::before {\n content: \"\\e1ce\"; }\n\n.fa-democrat::before {\n content: \"\\f747\"; }\n\n.fa-face-confused::before {\n content: \"\\e36d\"; }\n\n.fa-pinball::before {\n content: \"\\e229\"; }\n\n.fa-z::before {\n content: \"\\5a\"; }\n\n.fa-person-skiing::before {\n content: \"\\f7c9\"; }\n\n.fa-skiing::before {\n content: \"\\f7c9\"; }\n\n.fa-deer::before {\n content: \"\\f78e\"; }\n\n.fa-input-pipe::before {\n content: \"\\e1be\"; }\n\n.fa-road-lock::before {\n content: \"\\e567\"; }\n\n.fa-a::before {\n content: \"\\41\"; }\n\n.fa-bookmark-slash::before {\n content: \"\\e0c2\"; }\n\n.fa-temperature-arrow-down::before {\n content: \"\\e03f\"; }\n\n.fa-temperature-down::before {\n content: \"\\e03f\"; }\n\n.fa-mace::before {\n content: \"\\f6f8\"; }\n\n.fa-feather-pointed::before {\n content: \"\\f56b\"; }\n\n.fa-feather-alt::before {\n content: \"\\f56b\"; }\n\n.fa-sausage::before {\n content: \"\\f820\"; }\n\n.fa-trash-can-clock::before {\n content: \"\\e2aa\"; }\n\n.fa-p::before {\n content: \"\\50\"; }\n\n.fa-broom-wide::before {\n content: \"\\e5d1\"; }\n\n.fa-snowflake::before {\n content: \"\\f2dc\"; }\n\n.fa-stomach::before {\n content: \"\\f623\"; }\n\n.fa-newspaper::before {\n content: \"\\f1ea\"; }\n\n.fa-rectangle-ad::before {\n content: \"\\f641\"; }\n\n.fa-ad::before {\n content: \"\\f641\"; }\n\n.fa-guitar-electric::before {\n content: \"\\f8be\"; }\n\n.fa-arrow-turn-down-right::before {\n content: \"\\e3d6\"; }\n\n.fa-moon-cloud::before {\n content: \"\\f754\"; }\n\n.fa-bread-slice-butter::before {\n content: \"\\e3e1\"; }\n\n.fa-circle-arrow-right::before {\n content: \"\\f0a9\"; }\n\n.fa-arrow-circle-right::before {\n content: \"\\f0a9\"; }\n\n.fa-user-group-crown::before {\n content: \"\\f6a5\"; }\n\n.fa-users-crown::before {\n content: \"\\f6a5\"; }\n\n.fa-circle-i::before {\n content: \"\\e111\"; }\n\n.fa-toilet-paper-check::before {\n content: \"\\e5b2\"; }\n\n.fa-filter-circle-xmark::before {\n content: \"\\e17b\"; }\n\n.fa-locust::before {\n content: \"\\e520\"; }\n\n.fa-sort::before {\n content: \"\\f0dc\"; }\n\n.fa-unsorted::before {\n content: \"\\f0dc\"; }\n\n.fa-list-ol::before {\n content: \"\\f0cb\"; }\n\n.fa-list-1-2::before {\n content: \"\\f0cb\"; }\n\n.fa-list-numeric::before {\n content: \"\\f0cb\"; }\n\n.fa-chart-waterfall::before {\n content: \"\\e0eb\"; }\n\n.fa-sparkle::before {\n content: \"\\e5d6\"; }\n\n.fa-face-party::before {\n content: \"\\e383\"; }\n\n.fa-kidneys::before {\n content: \"\\f5fb\"; }\n\n.fa-wifi-exclamation::before {\n content: \"\\e2cf\"; }\n\n.fa-chart-network::before {\n content: \"\\f78a\"; }\n\n.fa-person-dress-burst::before {\n content: \"\\e544\"; }\n\n.fa-dice-d4::before {\n content: \"\\f6d0\"; }\n\n.fa-money-check-dollar::before {\n content: \"\\f53d\"; }\n\n.fa-money-check-alt::before {\n content: \"\\f53d\"; }\n\n.fa-vector-square::before {\n content: \"\\f5cb\"; }\n\n.fa-bread-slice::before {\n content: \"\\f7ec\"; }\n\n.fa-language::before {\n content: \"\\f1ab\"; }\n\n.fa-wheat-awn-slash::before {\n content: \"\\e338\"; }\n\n.fa-face-kiss-wink-heart::before {\n content: \"\\f598\"; }\n\n.fa-kiss-wink-heart::before {\n content: \"\\f598\"; }\n\n.fa-dagger::before {\n content: \"\\f6cb\"; }\n\n.fa-podium::before {\n content: \"\\f680\"; }\n\n.fa-memo-circle-check::before {\n content: \"\\e1d9\"; }\n\n.fa-route-highway::before {\n content: \"\\f61a\"; }\n\n.fa-down-to-line::before {\n content: \"\\f34a\"; }\n\n.fa-arrow-alt-to-bottom::before {\n content: \"\\f34a\"; }\n\n.fa-filter::before {\n content: \"\\f0b0\"; }\n\n.fa-square-g::before {\n content: \"\\e271\"; }\n\n.fa-circle-phone::before {\n content: \"\\e11b\"; }\n\n.fa-phone-circle::before {\n content: \"\\e11b\"; }\n\n.fa-clipboard-prescription::before {\n content: \"\\f5e8\"; }\n\n.fa-user-nurse-hair::before {\n content: \"\\e45d\"; }\n\n.fa-question::before {\n content: \"\\3f\"; }\n\n.fa-file-signature::before {\n content: \"\\f573\"; }\n\n.fa-toggle-large-on::before {\n content: \"\\e5b1\"; }\n\n.fa-up-down-left-right::before {\n content: \"\\f0b2\"; }\n\n.fa-arrows-alt::before {\n content: \"\\f0b2\"; }\n\n.fa-dryer-heat::before {\n content: \"\\f862\"; }\n\n.fa-dryer-alt::before {\n content: \"\\f862\"; }\n\n.fa-house-chimney-user::before {\n content: \"\\e065\"; }\n\n.fa-hand-holding-heart::before {\n content: \"\\f4be\"; }\n\n.fa-arrow-up-small-big::before {\n content: \"\\f88f\"; }\n\n.fa-sort-size-up-alt::before {\n content: \"\\f88f\"; }\n\n.fa-train-track::before {\n content: \"\\e453\"; }\n\n.fa-puzzle-piece::before {\n content: \"\\f12e\"; }\n\n.fa-money-check::before {\n content: \"\\f53c\"; }\n\n.fa-star-half-stroke::before {\n content: \"\\f5c0\"; }\n\n.fa-star-half-alt::before {\n content: \"\\f5c0\"; }\n\n.fa-file-exclamation::before {\n content: \"\\f31a\"; }\n\n.fa-code::before {\n content: \"\\f121\"; }\n\n.fa-whiskey-glass::before {\n content: \"\\f7a0\"; }\n\n.fa-glass-whiskey::before {\n content: \"\\f7a0\"; }\n\n.fa-moon-stars::before {\n content: \"\\f755\"; }\n\n.fa-building-circle-exclamation::before {\n content: \"\\e4d3\"; }\n\n.fa-clothes-hanger::before {\n content: \"\\e136\"; }\n\n.fa-mobile-notch::before {\n content: \"\\e1ee\"; }\n\n.fa-mobile-iphone::before {\n content: \"\\e1ee\"; }\n\n.fa-magnifying-glass-chart::before {\n content: \"\\e522\"; }\n\n.fa-arrow-up-right-from-square::before {\n content: \"\\f08e\"; }\n\n.fa-external-link::before {\n content: \"\\f08e\"; }\n\n.fa-cubes-stacked::before {\n content: \"\\e4e6\"; }\n\n.fa-images-user::before {\n content: \"\\e1b9\"; }\n\n.fa-won-sign::before {\n content: \"\\f159\"; }\n\n.fa-krw::before {\n content: \"\\f159\"; }\n\n.fa-won::before {\n content: \"\\f159\"; }\n\n.fa-image-polaroid-user::before {\n content: \"\\e1b6\"; }\n\n.fa-virus-covid::before {\n content: \"\\e4a8\"; }\n\n.fa-square-ellipsis::before {\n content: \"\\e26e\"; }\n\n.fa-pie::before {\n content: \"\\f705\"; }\n\n.fa-chess-knight-piece::before {\n content: \"\\f442\"; }\n\n.fa-chess-knight-alt::before {\n content: \"\\f442\"; }\n\n.fa-austral-sign::before {\n content: \"\\e0a9\"; }\n\n.fa-cloud-plus::before {\n content: \"\\e35e\"; }\n\n.fa-f::before {\n content: \"\\46\"; }\n\n.fa-leaf::before {\n content: \"\\f06c\"; }\n\n.fa-bed-bunk::before {\n content: \"\\f8f8\"; }\n\n.fa-road::before {\n content: \"\\f018\"; }\n\n.fa-taxi::before {\n content: \"\\f1ba\"; }\n\n.fa-cab::before {\n content: \"\\f1ba\"; }\n\n.fa-person-circle-plus::before {\n content: \"\\e541\"; }\n\n.fa-chart-pie::before {\n content: \"\\f200\"; }\n\n.fa-pie-chart::before {\n content: \"\\f200\"; }\n\n.fa-bolt-lightning::before {\n content: \"\\e0b7\"; }\n\n.fa-clock-eight::before {\n content: \"\\e345\"; }\n\n.fa-sack-xmark::before {\n content: \"\\e56a\"; }\n\n.fa-file-xls::before {\n content: \"\\e64d\"; }\n\n.fa-file-excel::before {\n content: \"\\f1c3\"; }\n\n.fa-file-contract::before {\n content: \"\\f56c\"; }\n\n.fa-fish-fins::before {\n content: \"\\e4f2\"; }\n\n.fa-circle-q::before {\n content: \"\\e11e\"; }\n\n.fa-building-flag::before {\n content: \"\\e4d5\"; }\n\n.fa-face-grin-beam::before {\n content: \"\\f582\"; }\n\n.fa-grin-beam::before {\n content: \"\\f582\"; }\n\n.fa-object-ungroup::before {\n content: \"\\f248\"; }\n\n.fa-face-disguise::before {\n content: \"\\e370\"; }\n\n.fa-circle-arrow-down-right::before {\n content: \"\\e0fa\"; }\n\n.fa-alien-8bit::before {\n content: \"\\f8f6\"; }\n\n.fa-alien-monster::before {\n content: \"\\f8f6\"; }\n\n.fa-hand-point-ribbon::before {\n content: \"\\e1a6\"; }\n\n.fa-poop::before {\n content: \"\\f619\"; }\n\n.fa-object-exclude::before {\n content: \"\\e49c\"; }\n\n.fa-telescope::before {\n content: \"\\e03e\"; }\n\n.fa-location-pin::before {\n content: \"\\f041\"; }\n\n.fa-map-marker::before {\n content: \"\\f041\"; }\n\n.fa-square-list::before {\n content: \"\\e489\"; }\n\n.fa-kaaba::before {\n content: \"\\f66b\"; }\n\n.fa-toilet-paper::before {\n content: \"\\f71e\"; }\n\n.fa-helmet-safety::before {\n content: \"\\f807\"; }\n\n.fa-hard-hat::before {\n content: \"\\f807\"; }\n\n.fa-hat-hard::before {\n content: \"\\f807\"; }\n\n.fa-comment-code::before {\n content: \"\\e147\"; }\n\n.fa-sim-cards::before {\n content: \"\\e251\"; }\n\n.fa-starship::before {\n content: \"\\e039\"; }\n\n.fa-eject::before {\n content: \"\\f052\"; }\n\n.fa-circle-right::before {\n content: \"\\f35a\"; }\n\n.fa-arrow-alt-circle-right::before {\n content: \"\\f35a\"; }\n\n.fa-plane-circle-check::before {\n content: \"\\e555\"; }\n\n.fa-seal::before {\n content: \"\\e241\"; }\n\n.fa-user-cowboy::before {\n content: \"\\f8ea\"; }\n\n.fa-hexagon-vertical-nft::before {\n content: \"\\e505\"; }\n\n.fa-face-rolling-eyes::before {\n content: \"\\f5a5\"; }\n\n.fa-meh-rolling-eyes::before {\n content: \"\\f5a5\"; }\n\n.fa-bread-loaf::before {\n content: \"\\f7eb\"; }\n\n.fa-rings-wedding::before {\n content: \"\\f81b\"; }\n\n.fa-object-group::before {\n content: \"\\f247\"; }\n\n.fa-french-fries::before {\n content: \"\\f803\"; }\n\n.fa-chart-line::before {\n content: \"\\f201\"; }\n\n.fa-line-chart::before {\n content: \"\\f201\"; }\n\n.fa-calendar-arrow-down::before {\n content: \"\\e0d0\"; }\n\n.fa-calendar-download::before {\n content: \"\\e0d0\"; }\n\n.fa-send-back::before {\n content: \"\\f87e\"; }\n\n.fa-mask-ventilator::before {\n content: \"\\e524\"; }\n\n.fa-tickets::before {\n content: \"\\e658\"; }\n\n.fa-signature-lock::before {\n content: \"\\e3ca\"; }\n\n.fa-arrow-right::before {\n content: \"\\f061\"; }\n\n.fa-signs-post::before {\n content: \"\\f277\"; }\n\n.fa-map-signs::before {\n content: \"\\f277\"; }\n\n.fa-octagon-plus::before {\n content: \"\\f301\"; }\n\n.fa-plus-octagon::before {\n content: \"\\f301\"; }\n\n.fa-cash-register::before {\n content: \"\\f788\"; }\n\n.fa-person-circle-question::before {\n content: \"\\e542\"; }\n\n.fa-melon-slice::before {\n content: \"\\e311\"; }\n\n.fa-space-station-moon::before {\n content: \"\\e033\"; }\n\n.fa-message-smile::before {\n content: \"\\f4aa\"; }\n\n.fa-comment-alt-smile::before {\n content: \"\\f4aa\"; }\n\n.fa-cup-straw::before {\n content: \"\\e363\"; }\n\n.fa-left-from-line::before {\n content: \"\\f348\"; }\n\n.fa-arrow-alt-from-right::before {\n content: \"\\f348\"; }\n\n.fa-h::before {\n content: \"\\48\"; }\n\n.fa-basket-shopping-simple::before {\n content: \"\\e0af\"; }\n\n.fa-shopping-basket-alt::before {\n content: \"\\e0af\"; }\n\n.fa-hands-holding-heart::before {\n content: \"\\f4c3\"; }\n\n.fa-hands-heart::before {\n content: \"\\f4c3\"; }\n\n.fa-clock-nine::before {\n content: \"\\e34c\"; }\n\n.fa-hammer-brush::before {\n content: \"\\e620\"; }\n\n.fa-tarp::before {\n content: \"\\e57b\"; }\n\n.fa-face-sleepy::before {\n content: \"\\e38e\"; }\n\n.fa-hand-horns::before {\n content: \"\\e1a9\"; }\n\n.fa-screwdriver-wrench::before {\n content: \"\\f7d9\"; }\n\n.fa-tools::before {\n content: \"\\f7d9\"; }\n\n.fa-arrows-to-eye::before {\n content: \"\\e4bf\"; }\n\n.fa-circle-three-quarters::before {\n content: \"\\e125\"; }\n\n.fa-trophy-star::before {\n content: \"\\f2eb\"; }\n\n.fa-trophy-alt::before {\n content: \"\\f2eb\"; }\n\n.fa-plug-circle-bolt::before {\n content: \"\\e55b\"; }\n\n.fa-face-thermometer::before {\n content: \"\\e39a\"; }\n\n.fa-grid-round-4::before {\n content: \"\\e5dd\"; }\n\n.fa-sign-posts-wrench::before {\n content: \"\\e626\"; }\n\n.fa-shirt-running::before {\n content: \"\\e3c8\"; }\n\n.fa-book-circle-arrow-up::before {\n content: \"\\e0bd\"; }\n\n.fa-face-nauseated::before {\n content: \"\\e381\"; }\n\n.fa-heart::before {\n content: \"\\f004\"; }\n\n.fa-file-chart-pie::before {\n content: \"\\f65a\"; }\n\n.fa-mars-and-venus::before {\n content: \"\\f224\"; }\n\n.fa-house-user::before {\n content: \"\\e1b0\"; }\n\n.fa-home-user::before {\n content: \"\\e1b0\"; }\n\n.fa-circle-arrow-down-left::before {\n content: \"\\e0f9\"; }\n\n.fa-dumpster-fire::before {\n content: \"\\f794\"; }\n\n.fa-hexagon-minus::before {\n content: \"\\f307\"; }\n\n.fa-minus-hexagon::before {\n content: \"\\f307\"; }\n\n.fa-left-to-line::before {\n content: \"\\f34b\"; }\n\n.fa-arrow-alt-to-left::before {\n content: \"\\f34b\"; }\n\n.fa-house-crack::before {\n content: \"\\e3b1\"; }\n\n.fa-paw-simple::before {\n content: \"\\f701\"; }\n\n.fa-paw-alt::before {\n content: \"\\f701\"; }\n\n.fa-arrow-left-long-to-line::before {\n content: \"\\e3d4\"; }\n\n.fa-brackets-round::before {\n content: \"\\e0c5\"; }\n\n.fa-parentheses::before {\n content: \"\\e0c5\"; }\n\n.fa-martini-glass-citrus::before {\n content: \"\\f561\"; }\n\n.fa-cocktail::before {\n content: \"\\f561\"; }\n\n.fa-user-shakespeare::before {\n content: \"\\e2c2\"; }\n\n.fa-arrow-right-to-arc::before {\n content: \"\\e4b2\"; }\n\n.fa-face-surprise::before {\n content: \"\\f5c2\"; }\n\n.fa-surprise::before {\n content: \"\\f5c2\"; }\n\n.fa-bottle-water::before {\n content: \"\\e4c5\"; }\n\n.fa-circle-pause::before {\n content: \"\\f28b\"; }\n\n.fa-pause-circle::before {\n content: \"\\f28b\"; }\n\n.fa-gauge-circle-plus::before {\n content: \"\\e498\"; }\n\n.fa-folders::before {\n content: \"\\f660\"; }\n\n.fa-angel::before {\n content: \"\\f779\"; }\n\n.fa-value-absolute::before {\n content: \"\\f6a6\"; }\n\n.fa-rabbit::before {\n content: \"\\f708\"; }\n\n.fa-toilet-paper-slash::before {\n content: \"\\e072\"; }\n\n.fa-circle-euro::before {\n content: \"\\e5ce\"; }\n\n.fa-apple-whole::before {\n content: \"\\f5d1\"; }\n\n.fa-apple-alt::before {\n content: \"\\f5d1\"; }\n\n.fa-kitchen-set::before {\n content: \"\\e51a\"; }\n\n.fa-diamond-half::before {\n content: \"\\e5b7\"; }\n\n.fa-lock-keyhole::before {\n content: \"\\f30d\"; }\n\n.fa-lock-alt::before {\n content: \"\\f30d\"; }\n\n.fa-r::before {\n content: \"\\52\"; }\n\n.fa-temperature-quarter::before {\n content: \"\\f2ca\"; }\n\n.fa-temperature-1::before {\n content: \"\\f2ca\"; }\n\n.fa-thermometer-1::before {\n content: \"\\f2ca\"; }\n\n.fa-thermometer-quarter::before {\n content: \"\\f2ca\"; }\n\n.fa-square-info::before {\n content: \"\\f30f\"; }\n\n.fa-info-square::before {\n content: \"\\f30f\"; }\n\n.fa-wifi-slash::before {\n content: \"\\f6ac\"; }\n\n.fa-toilet-paper-xmark::before {\n content: \"\\e5b3\"; }\n\n.fa-hands-holding-dollar::before {\n content: \"\\f4c5\"; }\n\n.fa-hands-usd::before {\n content: \"\\f4c5\"; }\n\n.fa-cube::before {\n content: \"\\f1b2\"; }\n\n.fa-arrow-down-triangle-square::before {\n content: \"\\f888\"; }\n\n.fa-sort-shapes-down::before {\n content: \"\\f888\"; }\n\n.fa-bitcoin-sign::before {\n content: \"\\e0b4\"; }\n\n.fa-shutters::before {\n content: \"\\e449\"; }\n\n.fa-shield-dog::before {\n content: \"\\e573\"; }\n\n.fa-solar-panel::before {\n content: \"\\f5ba\"; }\n\n.fa-lock-open::before {\n content: \"\\f3c1\"; }\n\n.fa-table-tree::before {\n content: \"\\e293\"; }\n\n.fa-house-chimney-heart::before {\n content: \"\\e1b2\"; }\n\n.fa-tally-3::before {\n content: \"\\e296\"; }\n\n.fa-elevator::before {\n content: \"\\e16d\"; }\n\n.fa-money-bill-transfer::before {\n content: \"\\e528\"; }\n\n.fa-money-bill-trend-up::before {\n content: \"\\e529\"; }\n\n.fa-house-flood-water-circle-arrow-right::before {\n content: \"\\e50f\"; }\n\n.fa-square-poll-horizontal::before {\n content: \"\\f682\"; }\n\n.fa-poll-h::before {\n content: \"\\f682\"; }\n\n.fa-circle::before {\n content: \"\\f111\"; }\n\n.fa-left-to-bracket::before {\n content: \"\\e66d\"; }\n\n.fa-cart-circle-exclamation::before {\n content: \"\\e3f2\"; }\n\n.fa-sword::before {\n content: \"\\f71c\"; }\n\n.fa-backward-fast::before {\n content: \"\\f049\"; }\n\n.fa-fast-backward::before {\n content: \"\\f049\"; }\n\n.fa-recycle::before {\n content: \"\\f1b8\"; }\n\n.fa-user-astronaut::before {\n content: \"\\f4fb\"; }\n\n.fa-interrobang::before {\n content: \"\\e5ba\"; }\n\n.fa-plane-slash::before {\n content: \"\\e069\"; }\n\n.fa-circle-dashed::before {\n content: \"\\e105\"; }\n\n.fa-trademark::before {\n content: \"\\f25c\"; }\n\n.fa-basketball::before {\n content: \"\\f434\"; }\n\n.fa-basketball-ball::before {\n content: \"\\f434\"; }\n\n.fa-fork-knife::before {\n content: \"\\f2e6\"; }\n\n.fa-utensils-alt::before {\n content: \"\\f2e6\"; }\n\n.fa-satellite-dish::before {\n content: \"\\f7c0\"; }\n\n.fa-badge-check::before {\n content: \"\\f336\"; }\n\n.fa-circle-up::before {\n content: \"\\f35b\"; }\n\n.fa-arrow-alt-circle-up::before {\n content: \"\\f35b\"; }\n\n.fa-slider::before {\n content: \"\\e252\"; }\n\n.fa-mobile-screen-button::before {\n content: \"\\f3cd\"; }\n\n.fa-mobile-alt::before {\n content: \"\\f3cd\"; }\n\n.fa-clock-one-thirty::before {\n content: \"\\e34f\"; }\n\n.fa-inbox-out::before {\n content: \"\\f311\"; }\n\n.fa-inbox-arrow-up::before {\n content: \"\\f311\"; }\n\n.fa-cloud-slash::before {\n content: \"\\e137\"; }\n\n.fa-volume-high::before {\n content: \"\\f028\"; }\n\n.fa-volume-up::before {\n content: \"\\f028\"; }\n\n.fa-users-rays::before {\n content: \"\\e593\"; }\n\n.fa-wallet::before {\n content: \"\\f555\"; }\n\n.fa-octagon-check::before {\n content: \"\\e426\"; }\n\n.fa-flatbread-stuffed::before {\n content: \"\\e40c\"; }\n\n.fa-clipboard-check::before {\n content: \"\\f46c\"; }\n\n.fa-cart-circle-plus::before {\n content: \"\\e3f3\"; }\n\n.fa-truck-clock::before {\n content: \"\\f48c\"; }\n\n.fa-shipping-timed::before {\n content: \"\\f48c\"; }\n\n.fa-pool-8-ball::before {\n content: \"\\e3c5\"; }\n\n.fa-file-audio::before {\n content: \"\\f1c7\"; }\n\n.fa-turn-down-left::before {\n content: \"\\e331\"; }\n\n.fa-lock-hashtag::before {\n content: \"\\e423\"; }\n\n.fa-chart-radar::before {\n content: \"\\e0e7\"; }\n\n.fa-staff::before {\n content: \"\\f71b\"; }\n\n.fa-burger::before {\n content: \"\\f805\"; }\n\n.fa-hamburger::before {\n content: \"\\f805\"; }\n\n.fa-utility-pole::before {\n content: \"\\e2c3\"; }\n\n.fa-transporter-6::before {\n content: \"\\e2a7\"; }\n\n.fa-arrow-turn-left::before {\n content: \"\\e632\"; }\n\n.fa-wrench::before {\n content: \"\\f0ad\"; }\n\n.fa-bugs::before {\n content: \"\\e4d0\"; }\n\n.fa-vector-polygon::before {\n content: \"\\e2c7\"; }\n\n.fa-diagram-nested::before {\n content: \"\\e157\"; }\n\n.fa-rupee-sign::before {\n content: \"\\f156\"; }\n\n.fa-rupee::before {\n content: \"\\f156\"; }\n\n.fa-file-image::before {\n content: \"\\f1c5\"; }\n\n.fa-circle-question::before {\n content: \"\\f059\"; }\n\n.fa-question-circle::before {\n content: \"\\f059\"; }\n\n.fa-tickets-perforated::before {\n content: \"\\e63f\"; }\n\n.fa-image-user::before {\n content: \"\\e1b8\"; }\n\n.fa-buoy::before {\n content: \"\\e5b5\"; }\n\n.fa-plane-departure::before {\n content: \"\\f5b0\"; }\n\n.fa-handshake-slash::before {\n content: \"\\e060\"; }\n\n.fa-book-bookmark::before {\n content: \"\\e0bb\"; }\n\n.fa-border-center-h::before {\n content: \"\\f89c\"; }\n\n.fa-can-food::before {\n content: \"\\e3e6\"; }\n\n.fa-typewriter::before {\n content: \"\\f8e7\"; }\n\n.fa-arrow-right-from-arc::before {\n content: \"\\e4b1\"; }\n\n.fa-circle-k::before {\n content: \"\\e113\"; }\n\n.fa-face-hand-over-mouth::before {\n content: \"\\e378\"; }\n\n.fa-popcorn::before {\n content: \"\\f819\"; }\n\n.fa-house-water::before {\n content: \"\\f74f\"; }\n\n.fa-house-flood::before {\n content: \"\\f74f\"; }\n\n.fa-object-subtract::before {\n content: \"\\e49e\"; }\n\n.fa-code-branch::before {\n content: \"\\f126\"; }\n\n.fa-warehouse-full::before {\n content: \"\\f495\"; }\n\n.fa-warehouse-alt::before {\n content: \"\\f495\"; }\n\n.fa-hat-cowboy::before {\n content: \"\\f8c0\"; }\n\n.fa-bridge::before {\n content: \"\\e4c8\"; }\n\n.fa-phone-flip::before {\n content: \"\\f879\"; }\n\n.fa-phone-alt::before {\n content: \"\\f879\"; }\n\n.fa-arrow-down-from-dotted-line::before {\n content: \"\\e090\"; }\n\n.fa-file-doc::before {\n content: \"\\e5ed\"; }\n\n.fa-square-quarters::before {\n content: \"\\e44e\"; }\n\n.fa-truck-front::before {\n content: \"\\e2b7\"; }\n\n.fa-cat::before {\n content: \"\\f6be\"; }\n\n.fa-trash-xmark::before {\n content: \"\\e2b4\"; }\n\n.fa-circle-caret-left::before {\n content: \"\\f32e\"; }\n\n.fa-caret-circle-left::before {\n content: \"\\f32e\"; }\n\n.fa-files::before {\n content: \"\\e178\"; }\n\n.fa-anchor-circle-exclamation::before {\n content: \"\\e4ab\"; }\n\n.fa-face-clouds::before {\n content: \"\\e47d\"; }\n\n.fa-user-crown::before {\n content: \"\\f6a4\"; }\n\n.fa-basket-shopping-plus::before {\n content: \"\\e653\"; }\n\n.fa-truck-field::before {\n content: \"\\e58d\"; }\n\n.fa-route::before {\n content: \"\\f4d7\"; }\n\n.fa-cart-circle-check::before {\n content: \"\\e3f1\"; }\n\n.fa-clipboard-question::before {\n content: \"\\e4e3\"; }\n\n.fa-panorama::before {\n content: \"\\e209\"; }\n\n.fa-comment-medical::before {\n content: \"\\f7f5\"; }\n\n.fa-teeth-open::before {\n content: \"\\f62f\"; }\n\n.fa-user-tie-hair-long::before {\n content: \"\\e460\"; }\n\n.fa-file-circle-minus::before {\n content: \"\\e4ed\"; }\n\n.fa-head-side-medical::before {\n content: \"\\f809\"; }\n\n.fa-arrow-turn-right::before {\n content: \"\\e635\"; }\n\n.fa-tags::before {\n content: \"\\f02c\"; }\n\n.fa-wine-glass::before {\n content: \"\\f4e3\"; }\n\n.fa-forward-fast::before {\n content: \"\\f050\"; }\n\n.fa-fast-forward::before {\n content: \"\\f050\"; }\n\n.fa-face-meh-blank::before {\n content: \"\\f5a4\"; }\n\n.fa-meh-blank::before {\n content: \"\\f5a4\"; }\n\n.fa-user-robot::before {\n content: \"\\e04b\"; }\n\n.fa-square-parking::before {\n content: \"\\f540\"; }\n\n.fa-parking::before {\n content: \"\\f540\"; }\n\n.fa-card-diamond::before {\n content: \"\\e3ea\"; }\n\n.fa-face-zipper::before {\n content: \"\\e3a5\"; }\n\n.fa-face-raised-eyebrow::before {\n content: \"\\e388\"; }\n\n.fa-house-signal::before {\n content: \"\\e012\"; }\n\n.fa-square-chevron-up::before {\n content: \"\\f32c\"; }\n\n.fa-chevron-square-up::before {\n content: \"\\f32c\"; }\n\n.fa-bars-progress::before {\n content: \"\\f828\"; }\n\n.fa-tasks-alt::before {\n content: \"\\f828\"; }\n\n.fa-faucet-drip::before {\n content: \"\\e006\"; }\n\n.fa-arrows-to-line::before {\n content: \"\\e0a7\"; }\n\n.fa-dolphin::before {\n content: \"\\e168\"; }\n\n.fa-arrow-up-right::before {\n content: \"\\e09f\"; }\n\n.fa-circle-r::before {\n content: \"\\e120\"; }\n\n.fa-cart-flatbed::before {\n content: \"\\f474\"; }\n\n.fa-dolly-flatbed::before {\n content: \"\\f474\"; }\n\n.fa-ban-smoking::before {\n content: \"\\f54d\"; }\n\n.fa-smoking-ban::before {\n content: \"\\f54d\"; }\n\n.fa-circle-sort-up::before {\n content: \"\\e032\"; }\n\n.fa-sort-circle-up::before {\n content: \"\\e032\"; }\n\n.fa-terminal::before {\n content: \"\\f120\"; }\n\n.fa-mobile-button::before {\n content: \"\\f10b\"; }\n\n.fa-house-medical-flag::before {\n content: \"\\e514\"; }\n\n.fa-basket-shopping::before {\n content: \"\\f291\"; }\n\n.fa-shopping-basket::before {\n content: \"\\f291\"; }\n\n.fa-tape::before {\n content: \"\\f4db\"; }\n\n.fa-chestnut::before {\n content: \"\\e3f6\"; }\n\n.fa-bus-simple::before {\n content: \"\\f55e\"; }\n\n.fa-bus-alt::before {\n content: \"\\f55e\"; }\n\n.fa-eye::before {\n content: \"\\f06e\"; }\n\n.fa-face-sad-cry::before {\n content: \"\\f5b3\"; }\n\n.fa-sad-cry::before {\n content: \"\\f5b3\"; }\n\n.fa-heat::before {\n content: \"\\e00c\"; }\n\n.fa-ticket-airline::before {\n content: \"\\e29a\"; }\n\n.fa-ticket-perforated-plane::before {\n content: \"\\e29a\"; }\n\n.fa-ticket-plane::before {\n content: \"\\e29a\"; }\n\n.fa-boot-heeled::before {\n content: \"\\e33f\"; }\n\n.fa-arrows-minimize::before {\n content: \"\\e0a5\"; }\n\n.fa-compress-arrows::before {\n content: \"\\e0a5\"; }\n\n.fa-audio-description::before {\n content: \"\\f29e\"; }\n\n.fa-person-military-to-person::before {\n content: \"\\e54c\"; }\n\n.fa-file-shield::before {\n content: \"\\e4f0\"; }\n\n.fa-hexagon::before {\n content: \"\\f312\"; }\n\n.fa-manhole::before {\n content: \"\\e1d6\"; }\n\n.fa-user-slash::before {\n content: \"\\f506\"; }\n\n.fa-pen::before {\n content: \"\\f304\"; }\n\n.fa-tower-observation::before {\n content: \"\\e586\"; }\n\n.fa-floppy-disks::before {\n content: \"\\e183\"; }\n\n.fa-toilet-paper-blank-under::before {\n content: \"\\e29f\"; }\n\n.fa-toilet-paper-reverse-alt::before {\n content: \"\\e29f\"; }\n\n.fa-file-code::before {\n content: \"\\f1c9\"; }\n\n.fa-signal::before {\n content: \"\\f012\"; }\n\n.fa-signal-5::before {\n content: \"\\f012\"; }\n\n.fa-signal-perfect::before {\n content: \"\\f012\"; }\n\n.fa-pump::before {\n content: \"\\e442\"; }\n\n.fa-bus::before {\n content: \"\\f207\"; }\n\n.fa-heart-circle-xmark::before {\n content: \"\\e501\"; }\n\n.fa-arrow-up-left-from-circle::before {\n content: \"\\e09e\"; }\n\n.fa-house-chimney::before {\n content: \"\\e3af\"; }\n\n.fa-home-lg::before {\n content: \"\\e3af\"; }\n\n.fa-window-maximize::before {\n content: \"\\f2d0\"; }\n\n.fa-dryer::before {\n content: \"\\f861\"; }\n\n.fa-face-frown::before {\n content: \"\\f119\"; }\n\n.fa-frown::before {\n content: \"\\f119\"; }\n\n.fa-chess-bishop-piece::before {\n content: \"\\f43b\"; }\n\n.fa-chess-bishop-alt::before {\n content: \"\\f43b\"; }\n\n.fa-shirt-tank-top::before {\n content: \"\\e3c9\"; }\n\n.fa-diploma::before {\n content: \"\\f5ea\"; }\n\n.fa-scroll-ribbon::before {\n content: \"\\f5ea\"; }\n\n.fa-screencast::before {\n content: \"\\e23e\"; }\n\n.fa-walker::before {\n content: \"\\f831\"; }\n\n.fa-prescription::before {\n content: \"\\f5b1\"; }\n\n.fa-shop::before {\n content: \"\\f54f\"; }\n\n.fa-store-alt::before {\n content: \"\\f54f\"; }\n\n.fa-floppy-disk::before {\n content: \"\\f0c7\"; }\n\n.fa-save::before {\n content: \"\\f0c7\"; }\n\n.fa-vihara::before {\n content: \"\\f6a7\"; }\n\n.fa-face-kiss-closed-eyes::before {\n content: \"\\e37d\"; }\n\n.fa-scale-unbalanced::before {\n content: \"\\f515\"; }\n\n.fa-balance-scale-left::before {\n content: \"\\f515\"; }\n\n.fa-file-user::before {\n content: \"\\f65c\"; }\n\n.fa-user-police-tie::before {\n content: \"\\e334\"; }\n\n.fa-face-tongue-money::before {\n content: \"\\e39d\"; }\n\n.fa-tennis-ball::before {\n content: \"\\f45e\"; }\n\n.fa-square-l::before {\n content: \"\\e275\"; }\n\n.fa-sort-up::before {\n content: \"\\f0de\"; }\n\n.fa-sort-asc::before {\n content: \"\\f0de\"; }\n\n.fa-calendar-arrow-up::before {\n content: \"\\e0d1\"; }\n\n.fa-calendar-upload::before {\n content: \"\\e0d1\"; }\n\n.fa-comment-dots::before {\n content: \"\\f4ad\"; }\n\n.fa-commenting::before {\n content: \"\\f4ad\"; }\n\n.fa-plant-wilt::before {\n content: \"\\e5aa\"; }\n\n.fa-scarf::before {\n content: \"\\f7c1\"; }\n\n.fa-album-circle-plus::before {\n content: \"\\e48c\"; }\n\n.fa-user-nurse-hair-long::before {\n content: \"\\e45e\"; }\n\n.fa-diamond::before {\n content: \"\\f219\"; }\n\n.fa-square-left::before {\n content: \"\\f351\"; }\n\n.fa-arrow-alt-square-left::before {\n content: \"\\f351\"; }\n\n.fa-face-grin-squint::before {\n content: \"\\f585\"; }\n\n.fa-grin-squint::before {\n content: \"\\f585\"; }\n\n.fa-circle-ellipsis-vertical::before {\n content: \"\\e10b\"; }\n\n.fa-hand-holding-dollar::before {\n content: \"\\f4c0\"; }\n\n.fa-hand-holding-usd::before {\n content: \"\\f4c0\"; }\n\n.fa-grid-dividers::before {\n content: \"\\e3ad\"; }\n\n.fa-bacterium::before {\n content: \"\\e05a\"; }\n\n.fa-hand-pointer::before {\n content: \"\\f25a\"; }\n\n.fa-drum-steelpan::before {\n content: \"\\f56a\"; }\n\n.fa-hand-scissors::before {\n content: \"\\f257\"; }\n\n.fa-hands-praying::before {\n content: \"\\f684\"; }\n\n.fa-praying-hands::before {\n content: \"\\f684\"; }\n\n.fa-face-pensive::before {\n content: \"\\e384\"; }\n\n.fa-user-music::before {\n content: \"\\f8eb\"; }\n\n.fa-arrow-rotate-right::before {\n content: \"\\f01e\"; }\n\n.fa-arrow-right-rotate::before {\n content: \"\\f01e\"; }\n\n.fa-arrow-rotate-forward::before {\n content: \"\\f01e\"; }\n\n.fa-redo::before {\n content: \"\\f01e\"; }\n\n.fa-messages-dollar::before {\n content: \"\\f652\"; }\n\n.fa-comments-alt-dollar::before {\n content: \"\\f652\"; }\n\n.fa-sensor-on::before {\n content: \"\\e02b\"; }\n\n.fa-balloon::before {\n content: \"\\e2e3\"; }\n\n.fa-biohazard::before {\n content: \"\\f780\"; }\n\n.fa-chess-queen-piece::before {\n content: \"\\f446\"; }\n\n.fa-chess-queen-alt::before {\n content: \"\\f446\"; }\n\n.fa-location-crosshairs::before {\n content: \"\\f601\"; }\n\n.fa-location::before {\n content: \"\\f601\"; }\n\n.fa-mars-double::before {\n content: \"\\f227\"; }\n\n.fa-left-from-bracket::before {\n content: \"\\e66c\"; }\n\n.fa-house-person-leave::before {\n content: \"\\e00f\"; }\n\n.fa-house-leave::before {\n content: \"\\e00f\"; }\n\n.fa-house-person-depart::before {\n content: \"\\e00f\"; }\n\n.fa-ruler-triangle::before {\n content: \"\\f61c\"; }\n\n.fa-card-club::before {\n content: \"\\e3e9\"; }\n\n.fa-child-dress::before {\n content: \"\\e59c\"; }\n\n.fa-users-between-lines::before {\n content: \"\\e591\"; }\n\n.fa-lungs-virus::before {\n content: \"\\e067\"; }\n\n.fa-spinner-third::before {\n content: \"\\f3f4\"; }\n\n.fa-face-grin-tears::before {\n content: \"\\f588\"; }\n\n.fa-grin-tears::before {\n content: \"\\f588\"; }\n\n.fa-phone::before {\n content: \"\\f095\"; }\n\n.fa-computer-mouse-scrollwheel::before {\n content: \"\\f8cd\"; }\n\n.fa-mouse-alt::before {\n content: \"\\f8cd\"; }\n\n.fa-calendar-xmark::before {\n content: \"\\f273\"; }\n\n.fa-calendar-times::before {\n content: \"\\f273\"; }\n\n.fa-child-reaching::before {\n content: \"\\e59d\"; }\n\n.fa-table-layout::before {\n content: \"\\e290\"; }\n\n.fa-narwhal::before {\n content: \"\\f6fe\"; }\n\n.fa-ramp-loading::before {\n content: \"\\f4d4\"; }\n\n.fa-calendar-circle-plus::before {\n content: \"\\e470\"; }\n\n.fa-toothbrush::before {\n content: \"\\f635\"; }\n\n.fa-border-inner::before {\n content: \"\\f84e\"; }\n\n.fa-paw-claws::before {\n content: \"\\f702\"; }\n\n.fa-kiwi-fruit::before {\n content: \"\\e30c\"; }\n\n.fa-traffic-light-slow::before {\n content: \"\\f639\"; }\n\n.fa-rectangle-code::before {\n content: \"\\e322\"; }\n\n.fa-head-side-virus::before {\n content: \"\\e064\"; }\n\n.fa-keyboard-brightness::before {\n content: \"\\e1c0\"; }\n\n.fa-books-medical::before {\n content: \"\\f7e8\"; }\n\n.fa-lightbulb-slash::before {\n content: \"\\f673\"; }\n\n.fa-house-blank::before {\n content: \"\\e487\"; }\n\n.fa-home-blank::before {\n content: \"\\e487\"; }\n\n.fa-square-5::before {\n content: \"\\e25a\"; }\n\n.fa-square-heart::before {\n content: \"\\f4c8\"; }\n\n.fa-heart-square::before {\n content: \"\\f4c8\"; }\n\n.fa-puzzle::before {\n content: \"\\e443\"; }\n\n.fa-user-gear::before {\n content: \"\\f4fe\"; }\n\n.fa-user-cog::before {\n content: \"\\f4fe\"; }\n\n.fa-pipe-circle-check::before {\n content: \"\\e436\"; }\n\n.fa-arrow-up-1-9::before {\n content: \"\\f163\"; }\n\n.fa-sort-numeric-up::before {\n content: \"\\f163\"; }\n\n.fa-octagon-exclamation::before {\n content: \"\\e204\"; }\n\n.fa-dial-low::before {\n content: \"\\e15d\"; }\n\n.fa-door-closed::before {\n content: \"\\f52a\"; }\n\n.fa-laptop-mobile::before {\n content: \"\\f87a\"; }\n\n.fa-phone-laptop::before {\n content: \"\\f87a\"; }\n\n.fa-conveyor-belt-boxes::before {\n content: \"\\f46f\"; }\n\n.fa-conveyor-belt-alt::before {\n content: \"\\f46f\"; }\n\n.fa-shield-virus::before {\n content: \"\\e06c\"; }\n\n.fa-starfighter-twin-ion-engine-advanced::before {\n content: \"\\e28e\"; }\n\n.fa-starfighter-alt-advanced::before {\n content: \"\\e28e\"; }\n\n.fa-dice-six::before {\n content: \"\\f526\"; }\n\n.fa-starfighter-twin-ion-engine::before {\n content: \"\\e038\"; }\n\n.fa-starfighter-alt::before {\n content: \"\\e038\"; }\n\n.fa-rocket-launch::before {\n content: \"\\e027\"; }\n\n.fa-mosquito-net::before {\n content: \"\\e52c\"; }\n\n.fa-vent-damper::before {\n content: \"\\e465\"; }\n\n.fa-bridge-water::before {\n content: \"\\e4ce\"; }\n\n.fa-ban-bug::before {\n content: \"\\f7f9\"; }\n\n.fa-debug::before {\n content: \"\\f7f9\"; }\n\n.fa-person-booth::before {\n content: \"\\f756\"; }\n\n.fa-text-width::before {\n content: \"\\f035\"; }\n\n.fa-garage-car::before {\n content: \"\\e00a\"; }\n\n.fa-square-kanban::before {\n content: \"\\e488\"; }\n\n.fa-hat-wizard::before {\n content: \"\\f6e8\"; }\n\n.fa-chart-kanban::before {\n content: \"\\e64f\"; }\n\n.fa-pen-fancy::before {\n content: \"\\f5ac\"; }\n\n.fa-coffee-pot::before {\n content: \"\\e002\"; }\n\n.fa-mouse-field::before {\n content: \"\\e5a8\"; }\n\n.fa-person-digging::before {\n content: \"\\f85e\"; }\n\n.fa-digging::before {\n content: \"\\f85e\"; }\n\n.fa-shower-down::before {\n content: \"\\e24d\"; }\n\n.fa-shower-alt::before {\n content: \"\\e24d\"; }\n\n.fa-box-circle-check::before {\n content: \"\\e0c4\"; }\n\n.fa-brightness::before {\n content: \"\\e0c9\"; }\n\n.fa-car-side-bolt::before {\n content: \"\\e344\"; }\n\n.fa-file-xml::before {\n content: \"\\e654\"; }\n\n.fa-ornament::before {\n content: \"\\f7b8\"; }\n\n.fa-phone-arrow-down-left::before {\n content: \"\\e223\"; }\n\n.fa-phone-arrow-down::before {\n content: \"\\e223\"; }\n\n.fa-phone-incoming::before {\n content: \"\\e223\"; }\n\n.fa-cloud-word::before {\n content: \"\\e138\"; }\n\n.fa-hand-fingers-crossed::before {\n content: \"\\e1a3\"; }\n\n.fa-trash::before {\n content: \"\\f1f8\"; }\n\n.fa-gauge-simple::before {\n content: \"\\f629\"; }\n\n.fa-gauge-simple-med::before {\n content: \"\\f629\"; }\n\n.fa-tachometer-average::before {\n content: \"\\f629\"; }\n\n.fa-arrow-down-small-big::before {\n content: \"\\f88d\"; }\n\n.fa-sort-size-down-alt::before {\n content: \"\\f88d\"; }\n\n.fa-book-medical::before {\n content: \"\\f7e6\"; }\n\n.fa-face-melting::before {\n content: \"\\e483\"; }\n\n.fa-poo::before {\n content: \"\\f2fe\"; }\n\n.fa-pen-clip-slash::before {\n content: \"\\e20f\"; }\n\n.fa-pen-alt-slash::before {\n content: \"\\e20f\"; }\n\n.fa-quote-right::before {\n content: \"\\f10e\"; }\n\n.fa-quote-right-alt::before {\n content: \"\\f10e\"; }\n\n.fa-scroll-old::before {\n content: \"\\f70f\"; }\n\n.fa-guitars::before {\n content: \"\\f8bf\"; }\n\n.fa-phone-xmark::before {\n content: \"\\e227\"; }\n\n.fa-hose::before {\n content: \"\\e419\"; }\n\n.fa-clock-six::before {\n content: \"\\e352\"; }\n\n.fa-shirt::before {\n content: \"\\f553\"; }\n\n.fa-t-shirt::before {\n content: \"\\f553\"; }\n\n.fa-tshirt::before {\n content: \"\\f553\"; }\n\n.fa-billboard::before {\n content: \"\\e5cd\"; }\n\n.fa-square-r::before {\n content: \"\\e27c\"; }\n\n.fa-cubes::before {\n content: \"\\f1b3\"; }\n\n.fa-envelope-open-dollar::before {\n content: \"\\f657\"; }\n\n.fa-divide::before {\n content: \"\\f529\"; }\n\n.fa-sun-cloud::before {\n content: \"\\f763\"; }\n\n.fa-lamp-floor::before {\n content: \"\\e015\"; }\n\n.fa-square-7::before {\n content: \"\\e25c\"; }\n\n.fa-tenge-sign::before {\n content: \"\\f7d7\"; }\n\n.fa-tenge::before {\n content: \"\\f7d7\"; }\n\n.fa-headphones::before {\n content: \"\\f025\"; }\n\n.fa-hands-holding::before {\n content: \"\\f4c2\"; }\n\n.fa-campfire::before {\n content: \"\\f6ba\"; }\n\n.fa-circle-ampersand::before {\n content: \"\\e0f8\"; }\n\n.fa-snowflakes::before {\n content: \"\\f7cf\"; }\n\n.fa-hands-clapping::before {\n content: \"\\e1a8\"; }\n\n.fa-republican::before {\n content: \"\\f75e\"; }\n\n.fa-leaf-maple::before {\n content: \"\\f6f6\"; }\n\n.fa-arrow-left::before {\n content: \"\\f060\"; }\n\n.fa-person-circle-xmark::before {\n content: \"\\e543\"; }\n\n.fa-ruler::before {\n content: \"\\f545\"; }\n\n.fa-arrow-left-from-bracket::before {\n content: \"\\e668\"; }\n\n.fa-cup-straw-swoosh::before {\n content: \"\\e364\"; }\n\n.fa-temperature-sun::before {\n content: \"\\f76a\"; }\n\n.fa-temperature-hot::before {\n content: \"\\f76a\"; }\n\n.fa-align-left::before {\n content: \"\\f036\"; }\n\n.fa-dice-d6::before {\n content: \"\\f6d1\"; }\n\n.fa-restroom::before {\n content: \"\\f7bd\"; }\n\n.fa-high-definition::before {\n content: \"\\e1ae\"; }\n\n.fa-rectangle-hd::before {\n content: \"\\e1ae\"; }\n\n.fa-j::before {\n content: \"\\4a\"; }\n\n.fa-galaxy::before {\n content: \"\\e008\"; }\n\n.fa-users-viewfinder::before {\n content: \"\\e595\"; }\n\n.fa-file-video::before {\n content: \"\\f1c8\"; }\n\n.fa-cherries::before {\n content: \"\\e0ec\"; }\n\n.fa-up-right-from-square::before {\n content: \"\\f35d\"; }\n\n.fa-external-link-alt::before {\n content: \"\\f35d\"; }\n\n.fa-circle-sort::before {\n content: \"\\e030\"; }\n\n.fa-sort-circle::before {\n content: \"\\e030\"; }\n\n.fa-table-cells::before {\n content: \"\\f00a\"; }\n\n.fa-th::before {\n content: \"\\f00a\"; }\n\n.fa-bag-shopping-minus::before {\n content: \"\\e650\"; }\n\n.fa-file-pdf::before {\n content: \"\\f1c1\"; }\n\n.fa-siren::before {\n content: \"\\e02d\"; }\n\n.fa-arrow-up-to-dotted-line::before {\n content: \"\\e0a1\"; }\n\n.fa-image-landscape::before {\n content: \"\\e1b5\"; }\n\n.fa-landscape::before {\n content: \"\\e1b5\"; }\n\n.fa-tank-water::before {\n content: \"\\e452\"; }\n\n.fa-curling-stone::before {\n content: \"\\f44a\"; }\n\n.fa-curling::before {\n content: \"\\f44a\"; }\n\n.fa-gamepad-modern::before {\n content: \"\\e5a2\"; }\n\n.fa-gamepad-alt::before {\n content: \"\\e5a2\"; }\n\n.fa-messages-question::before {\n content: \"\\e1e7\"; }\n\n.fa-book-bible::before {\n content: \"\\f647\"; }\n\n.fa-bible::before {\n content: \"\\f647\"; }\n\n.fa-o::before {\n content: \"\\4f\"; }\n\n.fa-suitcase-medical::before {\n content: \"\\f0fa\"; }\n\n.fa-medkit::before {\n content: \"\\f0fa\"; }\n\n.fa-briefcase-arrow-right::before {\n content: \"\\e2f2\"; }\n\n.fa-expand-wide::before {\n content: \"\\f320\"; }\n\n.fa-clock-eleven-thirty::before {\n content: \"\\e348\"; }\n\n.fa-rv::before {\n content: \"\\f7be\"; }\n\n.fa-user-secret::before {\n content: \"\\f21b\"; }\n\n.fa-otter::before {\n content: \"\\f700\"; }\n\n.fa-dreidel::before {\n content: \"\\f792\"; }\n\n.fa-person-dress::before {\n content: \"\\f182\"; }\n\n.fa-female::before {\n content: \"\\f182\"; }\n\n.fa-comment-dollar::before {\n content: \"\\f651\"; }\n\n.fa-business-time::before {\n content: \"\\f64a\"; }\n\n.fa-briefcase-clock::before {\n content: \"\\f64a\"; }\n\n.fa-flower-tulip::before {\n content: \"\\f801\"; }\n\n.fa-people-pants-simple::before {\n content: \"\\e21a\"; }\n\n.fa-cloud-drizzle::before {\n content: \"\\f738\"; }\n\n.fa-table-cells-large::before {\n content: \"\\f009\"; }\n\n.fa-th-large::before {\n content: \"\\f009\"; }\n\n.fa-book-tanakh::before {\n content: \"\\f827\"; }\n\n.fa-tanakh::before {\n content: \"\\f827\"; }\n\n.fa-solar-system::before {\n content: \"\\e02f\"; }\n\n.fa-seal-question::before {\n content: \"\\e243\"; }\n\n.fa-phone-volume::before {\n content: \"\\f2a0\"; }\n\n.fa-volume-control-phone::before {\n content: \"\\f2a0\"; }\n\n.fa-disc-drive::before {\n content: \"\\f8b5\"; }\n\n.fa-hat-cowboy-side::before {\n content: \"\\f8c1\"; }\n\n.fa-table-rows::before {\n content: \"\\e292\"; }\n\n.fa-rows::before {\n content: \"\\e292\"; }\n\n.fa-location-exclamation::before {\n content: \"\\f608\"; }\n\n.fa-map-marker-exclamation::before {\n content: \"\\f608\"; }\n\n.fa-face-fearful::before {\n content: \"\\e375\"; }\n\n.fa-clipboard-user::before {\n content: \"\\f7f3\"; }\n\n.fa-bus-school::before {\n content: \"\\f5dd\"; }\n\n.fa-film-slash::before {\n content: \"\\e179\"; }\n\n.fa-square-arrow-down-right::before {\n content: \"\\e262\"; }\n\n.fa-book-sparkles::before {\n content: \"\\f6b8\"; }\n\n.fa-book-spells::before {\n content: \"\\f6b8\"; }\n\n.fa-washing-machine::before {\n content: \"\\f898\"; }\n\n.fa-washer::before {\n content: \"\\f898\"; }\n\n.fa-child::before {\n content: \"\\f1ae\"; }\n\n.fa-lira-sign::before {\n content: \"\\f195\"; }\n\n.fa-user-visor::before {\n content: \"\\e04c\"; }\n\n.fa-file-plus-minus::before {\n content: \"\\e177\"; }\n\n.fa-chess-clock-flip::before {\n content: \"\\f43e\"; }\n\n.fa-chess-clock-alt::before {\n content: \"\\f43e\"; }\n\n.fa-satellite::before {\n content: \"\\f7bf\"; }\n\n.fa-truck-fire::before {\n content: \"\\e65a\"; }\n\n.fa-plane-lock::before {\n content: \"\\e558\"; }\n\n.fa-steering-wheel::before {\n content: \"\\f622\"; }\n\n.fa-tag::before {\n content: \"\\f02b\"; }\n\n.fa-stretcher::before {\n content: \"\\f825\"; }\n\n.fa-book-section::before {\n content: \"\\e0c1\"; }\n\n.fa-book-law::before {\n content: \"\\e0c1\"; }\n\n.fa-inboxes::before {\n content: \"\\e1bb\"; }\n\n.fa-coffee-bean::before {\n content: \"\\e13e\"; }\n\n.fa-circle-yen::before {\n content: \"\\e5d0\"; }\n\n.fa-brackets-curly::before {\n content: \"\\f7ea\"; }\n\n.fa-ellipsis-stroke-vertical::before {\n content: \"\\f39c\"; }\n\n.fa-ellipsis-v-alt::before {\n content: \"\\f39c\"; }\n\n.fa-comment::before {\n content: \"\\f075\"; }\n\n.fa-square-1::before {\n content: \"\\e256\"; }\n\n.fa-cake-candles::before {\n content: \"\\f1fd\"; }\n\n.fa-birthday-cake::before {\n content: \"\\f1fd\"; }\n\n.fa-cake::before {\n content: \"\\f1fd\"; }\n\n.fa-head-side::before {\n content: \"\\f6e9\"; }\n\n.fa-truck-ladder::before {\n content: \"\\e657\"; }\n\n.fa-envelope::before {\n content: \"\\f0e0\"; }\n\n.fa-dolly-empty::before {\n content: \"\\f473\"; }\n\n.fa-face-tissue::before {\n content: \"\\e39c\"; }\n\n.fa-angles-up::before {\n content: \"\\f102\"; }\n\n.fa-angle-double-up::before {\n content: \"\\f102\"; }\n\n.fa-bin-recycle::before {\n content: \"\\e5f7\"; }\n\n.fa-paperclip::before {\n content: \"\\f0c6\"; }\n\n.fa-chart-line-down::before {\n content: \"\\f64d\"; }\n\n.fa-arrow-right-to-city::before {\n content: \"\\e4b3\"; }\n\n.fa-lock-a::before {\n content: \"\\e422\"; }\n\n.fa-ribbon::before {\n content: \"\\f4d6\"; }\n\n.fa-lungs::before {\n content: \"\\f604\"; }\n\n.fa-person-pinball::before {\n content: \"\\e21d\"; }\n\n.fa-arrow-up-9-1::before {\n content: \"\\f887\"; }\n\n.fa-sort-numeric-up-alt::before {\n content: \"\\f887\"; }\n\n.fa-apple-core::before {\n content: \"\\e08f\"; }\n\n.fa-circle-y::before {\n content: \"\\e12f\"; }\n\n.fa-h6::before {\n content: \"\\e413\"; }\n\n.fa-litecoin-sign::before {\n content: \"\\e1d3\"; }\n\n.fa-bottle-baby::before {\n content: \"\\e673\"; }\n\n.fa-circle-small::before {\n content: \"\\e122\"; }\n\n.fa-border-none::before {\n content: \"\\f850\"; }\n\n.fa-arrow-turn-down-left::before {\n content: \"\\e2e1\"; }\n\n.fa-circle-wifi-circle-wifi::before {\n content: \"\\e67e\"; }\n\n.fa-circle-wifi-group::before {\n content: \"\\e67e\"; }\n\n.fa-circle-nodes::before {\n content: \"\\e4e2\"; }\n\n.fa-parachute-box::before {\n content: \"\\f4cd\"; }\n\n.fa-reflect-horizontal::before {\n content: \"\\e664\"; }\n\n.fa-message-medical::before {\n content: \"\\f7f4\"; }\n\n.fa-comment-alt-medical::before {\n content: \"\\f7f4\"; }\n\n.fa-rugby-ball::before {\n content: \"\\e3c6\"; }\n\n.fa-comment-music::before {\n content: \"\\f8b0\"; }\n\n.fa-indent::before {\n content: \"\\f03c\"; }\n\n.fa-tree-deciduous::before {\n content: \"\\f400\"; }\n\n.fa-tree-alt::before {\n content: \"\\f400\"; }\n\n.fa-puzzle-piece-simple::before {\n content: \"\\e231\"; }\n\n.fa-puzzle-piece-alt::before {\n content: \"\\e231\"; }\n\n.fa-truck-field-un::before {\n content: \"\\e58e\"; }\n\n.fa-nfc-trash::before {\n content: \"\\e1fd\"; }\n\n.fa-hourglass::before {\n content: \"\\f254\"; }\n\n.fa-hourglass-empty::before {\n content: \"\\f254\"; }\n\n.fa-mountain::before {\n content: \"\\f6fc\"; }\n\n.fa-file-xmark::before {\n content: \"\\f317\"; }\n\n.fa-file-times::before {\n content: \"\\f317\"; }\n\n.fa-house-heart::before {\n content: \"\\f4c9\"; }\n\n.fa-home-heart::before {\n content: \"\\f4c9\"; }\n\n.fa-house-chimney-blank::before {\n content: \"\\e3b0\"; }\n\n.fa-meter-bolt::before {\n content: \"\\e1e9\"; }\n\n.fa-user-doctor::before {\n content: \"\\f0f0\"; }\n\n.fa-user-md::before {\n content: \"\\f0f0\"; }\n\n.fa-slash-back::before {\n content: \"\\5c\"; }\n\n.fa-circle-info::before {\n content: \"\\f05a\"; }\n\n.fa-info-circle::before {\n content: \"\\f05a\"; }\n\n.fa-fishing-rod::before {\n content: \"\\e3a8\"; }\n\n.fa-hammer-crash::before {\n content: \"\\e414\"; }\n\n.fa-message-heart::before {\n content: \"\\e5c9\"; }\n\n.fa-cloud-meatball::before {\n content: \"\\f73b\"; }\n\n.fa-camera-polaroid::before {\n content: \"\\f8aa\"; }\n\n.fa-camera::before {\n content: \"\\f030\"; }\n\n.fa-camera-alt::before {\n content: \"\\f030\"; }\n\n.fa-square-virus::before {\n content: \"\\e578\"; }\n\n.fa-cart-arrow-up::before {\n content: \"\\e3ee\"; }\n\n.fa-meteor::before {\n content: \"\\f753\"; }\n\n.fa-car-on::before {\n content: \"\\e4dd\"; }\n\n.fa-sleigh::before {\n content: \"\\f7cc\"; }\n\n.fa-arrow-down-1-9::before {\n content: \"\\f162\"; }\n\n.fa-sort-numeric-asc::before {\n content: \"\\f162\"; }\n\n.fa-sort-numeric-down::before {\n content: \"\\f162\"; }\n\n.fa-buoy-mooring::before {\n content: \"\\e5b6\"; }\n\n.fa-square-4::before {\n content: \"\\e259\"; }\n\n.fa-hand-holding-droplet::before {\n content: \"\\f4c1\"; }\n\n.fa-hand-holding-water::before {\n content: \"\\f4c1\"; }\n\n.fa-file-eps::before {\n content: \"\\e644\"; }\n\n.fa-tricycle-adult::before {\n content: \"\\e5c4\"; }\n\n.fa-waveform::before {\n content: \"\\f8f1\"; }\n\n.fa-water::before {\n content: \"\\f773\"; }\n\n.fa-star-sharp-half-stroke::before {\n content: \"\\e28d\"; }\n\n.fa-star-sharp-half-alt::before {\n content: \"\\e28d\"; }\n\n.fa-nfc-signal::before {\n content: \"\\e1fb\"; }\n\n.fa-plane-prop::before {\n content: \"\\e22b\"; }\n\n.fa-calendar-check::before {\n content: \"\\f274\"; }\n\n.fa-clock-desk::before {\n content: \"\\e134\"; }\n\n.fa-calendar-clock::before {\n content: \"\\e0d2\"; }\n\n.fa-calendar-time::before {\n content: \"\\e0d2\"; }\n\n.fa-braille::before {\n content: \"\\f2a1\"; }\n\n.fa-prescription-bottle-medical::before {\n content: \"\\f486\"; }\n\n.fa-prescription-bottle-alt::before {\n content: \"\\f486\"; }\n\n.fa-plate-utensils::before {\n content: \"\\e43b\"; }\n\n.fa-family-pants::before {\n content: \"\\e302\"; }\n\n.fa-hose-reel::before {\n content: \"\\e41a\"; }\n\n.fa-house-window::before {\n content: \"\\e3b3\"; }\n\n.fa-landmark::before {\n content: \"\\f66f\"; }\n\n.fa-truck::before {\n content: \"\\f0d1\"; }\n\n.fa-music-magnifying-glass::before {\n content: \"\\e662\"; }\n\n.fa-crosshairs::before {\n content: \"\\f05b\"; }\n\n.fa-cloud-rainbow::before {\n content: \"\\f73e\"; }\n\n.fa-person-cane::before {\n content: \"\\e53c\"; }\n\n.fa-alien::before {\n content: \"\\f8f5\"; }\n\n.fa-tent::before {\n content: \"\\e57d\"; }\n\n.fa-laptop-binary::before {\n content: \"\\e5e7\"; }\n\n.fa-vest-patches::before {\n content: \"\\e086\"; }\n\n.fa-people-dress-simple::before {\n content: \"\\e218\"; }\n\n.fa-check-double::before {\n content: \"\\f560\"; }\n\n.fa-arrow-down-a-z::before {\n content: \"\\f15d\"; }\n\n.fa-sort-alpha-asc::before {\n content: \"\\f15d\"; }\n\n.fa-sort-alpha-down::before {\n content: \"\\f15d\"; }\n\n.fa-bowling-ball-pin::before {\n content: \"\\e0c3\"; }\n\n.fa-bell-school-slash::before {\n content: \"\\f5d6\"; }\n\n.fa-plus-large::before {\n content: \"\\e59e\"; }\n\n.fa-money-bill-wheat::before {\n content: \"\\e52a\"; }\n\n.fa-camera-viewfinder::before {\n content: \"\\e0da\"; }\n\n.fa-screenshot::before {\n content: \"\\e0da\"; }\n\n.fa-message-music::before {\n content: \"\\f8af\"; }\n\n.fa-comment-alt-music::before {\n content: \"\\f8af\"; }\n\n.fa-car-building::before {\n content: \"\\f859\"; }\n\n.fa-border-bottom-right::before {\n content: \"\\f854\"; }\n\n.fa-border-style-alt::before {\n content: \"\\f854\"; }\n\n.fa-octagon::before {\n content: \"\\f306\"; }\n\n.fa-comment-arrow-up-right::before {\n content: \"\\e145\"; }\n\n.fa-octagon-divide::before {\n content: \"\\e203\"; }\n\n.fa-cookie::before {\n content: \"\\f563\"; }\n\n.fa-arrow-rotate-left::before {\n content: \"\\f0e2\"; }\n\n.fa-arrow-left-rotate::before {\n content: \"\\f0e2\"; }\n\n.fa-arrow-rotate-back::before {\n content: \"\\f0e2\"; }\n\n.fa-arrow-rotate-backward::before {\n content: \"\\f0e2\"; }\n\n.fa-undo::before {\n content: \"\\f0e2\"; }\n\n.fa-tv-music::before {\n content: \"\\f8e6\"; }\n\n.fa-hard-drive::before {\n content: \"\\f0a0\"; }\n\n.fa-hdd::before {\n content: \"\\f0a0\"; }\n\n.fa-reel::before {\n content: \"\\e238\"; }\n\n.fa-face-grin-squint-tears::before {\n content: \"\\f586\"; }\n\n.fa-grin-squint-tears::before {\n content: \"\\f586\"; }\n\n.fa-dumbbell::before {\n content: \"\\f44b\"; }\n\n.fa-rectangle-list::before {\n content: \"\\f022\"; }\n\n.fa-list-alt::before {\n content: \"\\f022\"; }\n\n.fa-tarp-droplet::before {\n content: \"\\e57c\"; }\n\n.fa-alarm-exclamation::before {\n content: \"\\f843\"; }\n\n.fa-house-medical-circle-check::before {\n content: \"\\e511\"; }\n\n.fa-traffic-cone::before {\n content: \"\\f636\"; }\n\n.fa-grate::before {\n content: \"\\e193\"; }\n\n.fa-arrow-down-right::before {\n content: \"\\e093\"; }\n\n.fa-person-skiing-nordic::before {\n content: \"\\f7ca\"; }\n\n.fa-skiing-nordic::before {\n content: \"\\f7ca\"; }\n\n.fa-calendar-plus::before {\n content: \"\\f271\"; }\n\n.fa-person-from-portal::before {\n content: \"\\e023\"; }\n\n.fa-portal-exit::before {\n content: \"\\e023\"; }\n\n.fa-plane-arrival::before {\n content: \"\\f5af\"; }\n\n.fa-cowbell-circle-plus::before {\n content: \"\\f8b4\"; }\n\n.fa-cowbell-more::before {\n content: \"\\f8b4\"; }\n\n.fa-circle-left::before {\n content: \"\\f359\"; }\n\n.fa-arrow-alt-circle-left::before {\n content: \"\\f359\"; }\n\n.fa-distribute-spacing-vertical::before {\n content: \"\\e366\"; }\n\n.fa-signal-bars-fair::before {\n content: \"\\f692\"; }\n\n.fa-signal-alt-2::before {\n content: \"\\f692\"; }\n\n.fa-sportsball::before {\n content: \"\\e44b\"; }\n\n.fa-game-console-handheld-crank::before {\n content: \"\\e5b9\"; }\n\n.fa-train-subway::before {\n content: \"\\f239\"; }\n\n.fa-subway::before {\n content: \"\\f239\"; }\n\n.fa-chart-gantt::before {\n content: \"\\e0e4\"; }\n\n.fa-face-smile-upside-down::before {\n content: \"\\e395\"; }\n\n.fa-ball-pile::before {\n content: \"\\f77e\"; }\n\n.fa-badge-dollar::before {\n content: \"\\f645\"; }\n\n.fa-money-bills-simple::before {\n content: \"\\e1f4\"; }\n\n.fa-money-bills-alt::before {\n content: \"\\e1f4\"; }\n\n.fa-list-timeline::before {\n content: \"\\e1d1\"; }\n\n.fa-indian-rupee-sign::before {\n content: \"\\e1bc\"; }\n\n.fa-indian-rupee::before {\n content: \"\\e1bc\"; }\n\n.fa-inr::before {\n content: \"\\e1bc\"; }\n\n.fa-crop-simple::before {\n content: \"\\f565\"; }\n\n.fa-crop-alt::before {\n content: \"\\f565\"; }\n\n.fa-money-bill-1::before {\n content: \"\\f3d1\"; }\n\n.fa-money-bill-alt::before {\n content: \"\\f3d1\"; }\n\n.fa-left-long::before {\n content: \"\\f30a\"; }\n\n.fa-long-arrow-alt-left::before {\n content: \"\\f30a\"; }\n\n.fa-keyboard-down::before {\n content: \"\\e1c2\"; }\n\n.fa-circle-up-right::before {\n content: \"\\e129\"; }\n\n.fa-cloud-bolt-moon::before {\n content: \"\\f76d\"; }\n\n.fa-thunderstorm-moon::before {\n content: \"\\f76d\"; }\n\n.fa-turn-left-up::before {\n content: \"\\e638\"; }\n\n.fa-dna::before {\n content: \"\\f471\"; }\n\n.fa-virus-slash::before {\n content: \"\\e075\"; }\n\n.fa-bracket-round-right::before {\n content: \"\\29\"; }\n\n.fa-circle-sterling::before {\n content: \"\\e5cf\"; }\n\n.fa-circle-5::before {\n content: \"\\e0f2\"; }\n\n.fa-minus::before {\n content: \"\\f068\"; }\n\n.fa-subtract::before {\n content: \"\\f068\"; }\n\n.fa-fire-flame::before {\n content: \"\\f6df\"; }\n\n.fa-flame::before {\n content: \"\\f6df\"; }\n\n.fa-right-to-line::before {\n content: \"\\f34c\"; }\n\n.fa-arrow-alt-to-right::before {\n content: \"\\f34c\"; }\n\n.fa-gif::before {\n content: \"\\e190\"; }\n\n.fa-chess::before {\n content: \"\\f439\"; }\n\n.fa-trash-slash::before {\n content: \"\\e2b3\"; }\n\n.fa-arrow-left-long::before {\n content: \"\\f177\"; }\n\n.fa-long-arrow-left::before {\n content: \"\\f177\"; }\n\n.fa-plug-circle-check::before {\n content: \"\\e55c\"; }\n\n.fa-font-case::before {\n content: \"\\f866\"; }\n\n.fa-street-view::before {\n content: \"\\f21d\"; }\n\n.fa-arrow-down-left::before {\n content: \"\\e091\"; }\n\n.fa-franc-sign::before {\n content: \"\\e18f\"; }\n\n.fa-flask-round-poison::before {\n content: \"\\f6e0\"; }\n\n.fa-flask-poison::before {\n content: \"\\f6e0\"; }\n\n.fa-volume-off::before {\n content: \"\\f026\"; }\n\n.fa-book-circle-arrow-right::before {\n content: \"\\e0bc\"; }\n\n.fa-chart-user::before {\n content: \"\\f6a3\"; }\n\n.fa-user-chart::before {\n content: \"\\f6a3\"; }\n\n.fa-hands-asl-interpreting::before {\n content: \"\\f2a3\"; }\n\n.fa-american-sign-language-interpreting::before {\n content: \"\\f2a3\"; }\n\n.fa-asl-interpreting::before {\n content: \"\\f2a3\"; }\n\n.fa-hands-american-sign-language-interpreting::before {\n content: \"\\f2a3\"; }\n\n.fa-presentation-screen::before {\n content: \"\\f685\"; }\n\n.fa-presentation::before {\n content: \"\\f685\"; }\n\n.fa-circle-bolt::before {\n content: \"\\e0fe\"; }\n\n.fa-face-smile-halo::before {\n content: \"\\e38f\"; }\n\n.fa-cart-circle-arrow-down::before {\n content: \"\\e3ef\"; }\n\n.fa-house-person-return::before {\n content: \"\\e011\"; }\n\n.fa-house-person-arrive::before {\n content: \"\\e011\"; }\n\n.fa-house-return::before {\n content: \"\\e011\"; }\n\n.fa-message-xmark::before {\n content: \"\\f4ab\"; }\n\n.fa-comment-alt-times::before {\n content: \"\\f4ab\"; }\n\n.fa-message-times::before {\n content: \"\\f4ab\"; }\n\n.fa-file-certificate::before {\n content: \"\\f5f3\"; }\n\n.fa-file-award::before {\n content: \"\\f5f3\"; }\n\n.fa-user-doctor-hair-long::before {\n content: \"\\e459\"; }\n\n.fa-camera-security::before {\n content: \"\\f8fe\"; }\n\n.fa-camera-home::before {\n content: \"\\f8fe\"; }\n\n.fa-gear::before {\n content: \"\\f013\"; }\n\n.fa-cog::before {\n content: \"\\f013\"; }\n\n.fa-droplet-slash::before {\n content: \"\\f5c7\"; }\n\n.fa-tint-slash::before {\n content: \"\\f5c7\"; }\n\n.fa-book-heart::before {\n content: \"\\f499\"; }\n\n.fa-mosque::before {\n content: \"\\f678\"; }\n\n.fa-duck::before {\n content: \"\\f6d8\"; }\n\n.fa-mosquito::before {\n content: \"\\e52b\"; }\n\n.fa-star-of-david::before {\n content: \"\\f69a\"; }\n\n.fa-flag-swallowtail::before {\n content: \"\\f74c\"; }\n\n.fa-flag-alt::before {\n content: \"\\f74c\"; }\n\n.fa-person-military-rifle::before {\n content: \"\\e54b\"; }\n\n.fa-car-garage::before {\n content: \"\\f5e2\"; }\n\n.fa-cart-shopping::before {\n content: \"\\f07a\"; }\n\n.fa-shopping-cart::before {\n content: \"\\f07a\"; }\n\n.fa-book-font::before {\n content: \"\\e0bf\"; }\n\n.fa-shield-plus::before {\n content: \"\\e24a\"; }\n\n.fa-vials::before {\n content: \"\\f493\"; }\n\n.fa-eye-dropper-full::before {\n content: \"\\e172\"; }\n\n.fa-distribute-spacing-horizontal::before {\n content: \"\\e365\"; }\n\n.fa-tablet-rugged::before {\n content: \"\\f48f\"; }\n\n.fa-temperature-snow::before {\n content: \"\\f768\"; }\n\n.fa-temperature-frigid::before {\n content: \"\\f768\"; }\n\n.fa-moped::before {\n content: \"\\e3b9\"; }\n\n.fa-face-smile-plus::before {\n content: \"\\f5b9\"; }\n\n.fa-smile-plus::before {\n content: \"\\f5b9\"; }\n\n.fa-radio-tuner::before {\n content: \"\\f8d8\"; }\n\n.fa-radio-alt::before {\n content: \"\\f8d8\"; }\n\n.fa-face-swear::before {\n content: \"\\e399\"; }\n\n.fa-water-arrow-down::before {\n content: \"\\f774\"; }\n\n.fa-water-lower::before {\n content: \"\\f774\"; }\n\n.fa-scanner-touchscreen::before {\n content: \"\\f48a\"; }\n\n.fa-circle-7::before {\n content: \"\\e0f4\"; }\n\n.fa-plug-circle-plus::before {\n content: \"\\e55f\"; }\n\n.fa-person-ski-jumping::before {\n content: \"\\f7c7\"; }\n\n.fa-ski-jump::before {\n content: \"\\f7c7\"; }\n\n.fa-place-of-worship::before {\n content: \"\\f67f\"; }\n\n.fa-water-arrow-up::before {\n content: \"\\f775\"; }\n\n.fa-water-rise::before {\n content: \"\\f775\"; }\n\n.fa-waveform-lines::before {\n content: \"\\f8f2\"; }\n\n.fa-waveform-path::before {\n content: \"\\f8f2\"; }\n\n.fa-split::before {\n content: \"\\e254\"; }\n\n.fa-film-canister::before {\n content: \"\\f8b7\"; }\n\n.fa-film-cannister::before {\n content: \"\\f8b7\"; }\n\n.fa-folder-xmark::before {\n content: \"\\f65f\"; }\n\n.fa-folder-times::before {\n content: \"\\f65f\"; }\n\n.fa-toilet-paper-blank::before {\n content: \"\\f71f\"; }\n\n.fa-toilet-paper-alt::before {\n content: \"\\f71f\"; }\n\n.fa-tablet-screen::before {\n content: \"\\f3fc\"; }\n\n.fa-tablet-android-alt::before {\n content: \"\\f3fc\"; }\n\n.fa-hexagon-vertical-nft-slanted::before {\n content: \"\\e506\"; }\n\n.fa-folder-music::before {\n content: \"\\e18d\"; }\n\n.fa-display-medical::before {\n content: \"\\e166\"; }\n\n.fa-desktop-medical::before {\n content: \"\\e166\"; }\n\n.fa-share-all::before {\n content: \"\\f367\"; }\n\n.fa-peapod::before {\n content: \"\\e31c\"; }\n\n.fa-chess-clock::before {\n content: \"\\f43d\"; }\n\n.fa-axe::before {\n content: \"\\f6b2\"; }\n\n.fa-square-d::before {\n content: \"\\e268\"; }\n\n.fa-grip-vertical::before {\n content: \"\\f58e\"; }\n\n.fa-mobile-signal-out::before {\n content: \"\\e1f0\"; }\n\n.fa-arrow-turn-up::before {\n content: \"\\f148\"; }\n\n.fa-level-up::before {\n content: \"\\f148\"; }\n\n.fa-u::before {\n content: \"\\55\"; }\n\n.fa-arrow-up-from-dotted-line::before {\n content: \"\\e09b\"; }\n\n.fa-square-root-variable::before {\n content: \"\\f698\"; }\n\n.fa-square-root-alt::before {\n content: \"\\f698\"; }\n\n.fa-light-switch-on::before {\n content: \"\\e019\"; }\n\n.fa-arrow-down-arrow-up::before {\n content: \"\\f883\"; }\n\n.fa-sort-alt::before {\n content: \"\\f883\"; }\n\n.fa-raindrops::before {\n content: \"\\f75c\"; }\n\n.fa-dash::before {\n content: \"\\e404\"; }\n\n.fa-minus-large::before {\n content: \"\\e404\"; }\n\n.fa-clock::before {\n content: \"\\f017\"; }\n\n.fa-clock-four::before {\n content: \"\\f017\"; }\n\n.fa-input-numeric::before {\n content: \"\\e1bd\"; }\n\n.fa-truck-tow::before {\n content: \"\\e2b8\"; }\n\n.fa-backward-step::before {\n content: \"\\f048\"; }\n\n.fa-step-backward::before {\n content: \"\\f048\"; }\n\n.fa-pallet::before {\n content: \"\\f482\"; }\n\n.fa-car-bolt::before {\n content: \"\\e341\"; }\n\n.fa-arrows-maximize::before {\n content: \"\\f31d\"; }\n\n.fa-expand-arrows::before {\n content: \"\\f31d\"; }\n\n.fa-faucet::before {\n content: \"\\e005\"; }\n\n.fa-cloud-sleet::before {\n content: \"\\f741\"; }\n\n.fa-lamp-street::before {\n content: \"\\e1c5\"; }\n\n.fa-list-radio::before {\n content: \"\\e1d0\"; }\n\n.fa-pen-nib-slash::before {\n content: \"\\e4a1\"; }\n\n.fa-baseball-bat-ball::before {\n content: \"\\f432\"; }\n\n.fa-square-up-left::before {\n content: \"\\e282\"; }\n\n.fa-overline::before {\n content: \"\\f876\"; }\n\n.fa-s::before {\n content: \"\\53\"; }\n\n.fa-timeline::before {\n content: \"\\e29c\"; }\n\n.fa-keyboard::before {\n content: \"\\f11c\"; }\n\n.fa-arrows-from-dotted-line::before {\n content: \"\\e0a3\"; }\n\n.fa-usb-drive::before {\n content: \"\\f8e9\"; }\n\n.fa-ballot::before {\n content: \"\\f732\"; }\n\n.fa-caret-down::before {\n content: \"\\f0d7\"; }\n\n.fa-location-dot-slash::before {\n content: \"\\f605\"; }\n\n.fa-map-marker-alt-slash::before {\n content: \"\\f605\"; }\n\n.fa-cards::before {\n content: \"\\e3ed\"; }\n\n.fa-house-chimney-medical::before {\n content: \"\\f7f2\"; }\n\n.fa-clinic-medical::before {\n content: \"\\f7f2\"; }\n\n.fa-boxing-glove::before {\n content: \"\\f438\"; }\n\n.fa-glove-boxing::before {\n content: \"\\f438\"; }\n\n.fa-temperature-three-quarters::before {\n content: \"\\f2c8\"; }\n\n.fa-temperature-3::before {\n content: \"\\f2c8\"; }\n\n.fa-thermometer-3::before {\n content: \"\\f2c8\"; }\n\n.fa-thermometer-three-quarters::before {\n content: \"\\f2c8\"; }\n\n.fa-bell-school::before {\n content: \"\\f5d5\"; }\n\n.fa-mobile-screen::before {\n content: \"\\f3cf\"; }\n\n.fa-mobile-android-alt::before {\n content: \"\\f3cf\"; }\n\n.fa-plane-up::before {\n content: \"\\e22d\"; }\n\n.fa-folder-heart::before {\n content: \"\\e189\"; }\n\n.fa-circle-location-arrow::before {\n content: \"\\f602\"; }\n\n.fa-location-circle::before {\n content: \"\\f602\"; }\n\n.fa-face-head-bandage::before {\n content: \"\\e37a\"; }\n\n.fa-sushi-roll::before {\n content: \"\\e48b\"; }\n\n.fa-maki-roll::before {\n content: \"\\e48b\"; }\n\n.fa-makizushi::before {\n content: \"\\e48b\"; }\n\n.fa-car-bump::before {\n content: \"\\f5e0\"; }\n\n.fa-piggy-bank::before {\n content: \"\\f4d3\"; }\n\n.fa-racquet::before {\n content: \"\\f45a\"; }\n\n.fa-car-mirrors::before {\n content: \"\\e343\"; }\n\n.fa-industry-windows::before {\n content: \"\\f3b3\"; }\n\n.fa-industry-alt::before {\n content: \"\\f3b3\"; }\n\n.fa-bolt-auto::before {\n content: \"\\e0b6\"; }\n\n.fa-battery-half::before {\n content: \"\\f242\"; }\n\n.fa-battery-3::before {\n content: \"\\f242\"; }\n\n.fa-flux-capacitor::before {\n content: \"\\f8ba\"; }\n\n.fa-mountain-city::before {\n content: \"\\e52e\"; }\n\n.fa-coins::before {\n content: \"\\f51e\"; }\n\n.fa-honey-pot::before {\n content: \"\\e418\"; }\n\n.fa-olive::before {\n content: \"\\e316\"; }\n\n.fa-khanda::before {\n content: \"\\f66d\"; }\n\n.fa-filter-list::before {\n content: \"\\e17c\"; }\n\n.fa-outlet::before {\n content: \"\\e01c\"; }\n\n.fa-sliders::before {\n content: \"\\f1de\"; }\n\n.fa-sliders-h::before {\n content: \"\\f1de\"; }\n\n.fa-cauldron::before {\n content: \"\\f6bf\"; }\n\n.fa-people::before {\n content: \"\\e216\"; }\n\n.fa-folder-tree::before {\n content: \"\\f802\"; }\n\n.fa-network-wired::before {\n content: \"\\f6ff\"; }\n\n.fa-croissant::before {\n content: \"\\f7f6\"; }\n\n.fa-map-pin::before {\n content: \"\\f276\"; }\n\n.fa-hamsa::before {\n content: \"\\f665\"; }\n\n.fa-cent-sign::before {\n content: \"\\e3f5\"; }\n\n.fa-swords-laser::before {\n content: \"\\e03d\"; }\n\n.fa-flask::before {\n content: \"\\f0c3\"; }\n\n.fa-person-pregnant::before {\n content: \"\\e31e\"; }\n\n.fa-square-u::before {\n content: \"\\e281\"; }\n\n.fa-wand-sparkles::before {\n content: \"\\f72b\"; }\n\n.fa-router::before {\n content: \"\\f8da\"; }\n\n.fa-ellipsis-vertical::before {\n content: \"\\f142\"; }\n\n.fa-ellipsis-v::before {\n content: \"\\f142\"; }\n\n.fa-sword-laser-alt::before {\n content: \"\\e03c\"; }\n\n.fa-ticket::before {\n content: \"\\f145\"; }\n\n.fa-power-off::before {\n content: \"\\f011\"; }\n\n.fa-coin::before {\n content: \"\\f85c\"; }\n\n.fa-laptop-slash::before {\n content: \"\\e1c7\"; }\n\n.fa-right-long::before {\n content: \"\\f30b\"; }\n\n.fa-long-arrow-alt-right::before {\n content: \"\\f30b\"; }\n\n.fa-circle-b::before {\n content: \"\\e0fd\"; }\n\n.fa-person-dress-simple::before {\n content: \"\\e21c\"; }\n\n.fa-pipe-collar::before {\n content: \"\\e437\"; }\n\n.fa-lights-holiday::before {\n content: \"\\f7b2\"; }\n\n.fa-citrus::before {\n content: \"\\e2f4\"; }\n\n.fa-flag-usa::before {\n content: \"\\f74d\"; }\n\n.fa-laptop-file::before {\n content: \"\\e51d\"; }\n\n.fa-tty::before {\n content: \"\\f1e4\"; }\n\n.fa-teletype::before {\n content: \"\\f1e4\"; }\n\n.fa-chart-tree-map::before {\n content: \"\\e0ea\"; }\n\n.fa-diagram-next::before {\n content: \"\\e476\"; }\n\n.fa-person-rifle::before {\n content: \"\\e54e\"; }\n\n.fa-clock-five-thirty::before {\n content: \"\\e34a\"; }\n\n.fa-pipe-valve::before {\n content: \"\\e439\"; }\n\n.fa-arrow-up-from-arc::before {\n content: \"\\e4b4\"; }\n\n.fa-face-spiral-eyes::before {\n content: \"\\e485\"; }\n\n.fa-compress-wide::before {\n content: \"\\f326\"; }\n\n.fa-circle-phone-hangup::before {\n content: \"\\e11d\"; }\n\n.fa-phone-circle-down::before {\n content: \"\\e11d\"; }\n\n.fa-gear-complex-code::before {\n content: \"\\e5eb\"; }\n\n.fa-house-medical-circle-exclamation::before {\n content: \"\\e512\"; }\n\n.fa-badminton::before {\n content: \"\\e33a\"; }\n\n.fa-closed-captioning::before {\n content: \"\\f20a\"; }\n\n.fa-person-hiking::before {\n content: \"\\f6ec\"; }\n\n.fa-hiking::before {\n content: \"\\f6ec\"; }\n\n.fa-right-from-line::before {\n content: \"\\f347\"; }\n\n.fa-arrow-alt-from-left::before {\n content: \"\\f347\"; }\n\n.fa-venus-double::before {\n content: \"\\f226\"; }\n\n.fa-images::before {\n content: \"\\f302\"; }\n\n.fa-calculator::before {\n content: \"\\f1ec\"; }\n\n.fa-shuttlecock::before {\n content: \"\\f45b\"; }\n\n.fa-user-hair::before {\n content: \"\\e45a\"; }\n\n.fa-eye-evil::before {\n content: \"\\f6db\"; }\n\n.fa-people-pulling::before {\n content: \"\\e535\"; }\n\n.fa-n::before {\n content: \"\\4e\"; }\n\n.fa-swap::before {\n content: \"\\e609\"; }\n\n.fa-garage::before {\n content: \"\\e009\"; }\n\n.fa-cable-car::before {\n content: \"\\f7da\"; }\n\n.fa-tram::before {\n content: \"\\f7da\"; }\n\n.fa-shovel-snow::before {\n content: \"\\f7c3\"; }\n\n.fa-cloud-rain::before {\n content: \"\\f73d\"; }\n\n.fa-face-lying::before {\n content: \"\\e37e\"; }\n\n.fa-sprinkler::before {\n content: \"\\e035\"; }\n\n.fa-building-circle-xmark::before {\n content: \"\\e4d4\"; }\n\n.fa-person-sledding::before {\n content: \"\\f7cb\"; }\n\n.fa-sledding::before {\n content: \"\\f7cb\"; }\n\n.fa-game-console-handheld::before {\n content: \"\\f8bb\"; }\n\n.fa-ship::before {\n content: \"\\f21a\"; }\n\n.fa-clock-six-thirty::before {\n content: \"\\e353\"; }\n\n.fa-battery-slash::before {\n content: \"\\f377\"; }\n\n.fa-tugrik-sign::before {\n content: \"\\e2ba\"; }\n\n.fa-arrows-down-to-line::before {\n content: \"\\e4b8\"; }\n\n.fa-download::before {\n content: \"\\f019\"; }\n\n.fa-angles-up-down::before {\n content: \"\\e60d\"; }\n\n.fa-shelves::before {\n content: \"\\f480\"; }\n\n.fa-inventory::before {\n content: \"\\f480\"; }\n\n.fa-cloud-snow::before {\n content: \"\\f742\"; }\n\n.fa-face-grin::before {\n content: \"\\f580\"; }\n\n.fa-grin::before {\n content: \"\\f580\"; }\n\n.fa-delete-left::before {\n content: \"\\f55a\"; }\n\n.fa-backspace::before {\n content: \"\\f55a\"; }\n\n.fa-oven::before {\n content: \"\\e01d\"; }\n\n.fa-cloud-binary::before {\n content: \"\\e601\"; }\n\n.fa-eye-dropper::before {\n content: \"\\f1fb\"; }\n\n.fa-eye-dropper-empty::before {\n content: \"\\f1fb\"; }\n\n.fa-eyedropper::before {\n content: \"\\f1fb\"; }\n\n.fa-comment-captions::before {\n content: \"\\e146\"; }\n\n.fa-comments-question::before {\n content: \"\\e14e\"; }\n\n.fa-scribble::before {\n content: \"\\e23f\"; }\n\n.fa-rotate-exclamation::before {\n content: \"\\e23c\"; }\n\n.fa-file-circle-check::before {\n content: \"\\e5a0\"; }\n\n.fa-glass::before {\n content: \"\\f804\"; }\n\n.fa-loader::before {\n content: \"\\e1d4\"; }\n\n.fa-forward::before {\n content: \"\\f04e\"; }\n\n.fa-user-pilot::before {\n content: \"\\e2c0\"; }\n\n.fa-mobile::before {\n content: \"\\f3ce\"; }\n\n.fa-mobile-android::before {\n content: \"\\f3ce\"; }\n\n.fa-mobile-phone::before {\n content: \"\\f3ce\"; }\n\n.fa-code-pull-request-closed::before {\n content: \"\\e3f9\"; }\n\n.fa-face-meh::before {\n content: \"\\f11a\"; }\n\n.fa-meh::before {\n content: \"\\f11a\"; }\n\n.fa-align-center::before {\n content: \"\\f037\"; }\n\n.fa-book-skull::before {\n content: \"\\f6b7\"; }\n\n.fa-book-dead::before {\n content: \"\\f6b7\"; }\n\n.fa-id-card::before {\n content: \"\\f2c2\"; }\n\n.fa-drivers-license::before {\n content: \"\\f2c2\"; }\n\n.fa-face-dotted::before {\n content: \"\\e47f\"; }\n\n.fa-face-worried::before {\n content: \"\\e3a3\"; }\n\n.fa-outdent::before {\n content: \"\\f03b\"; }\n\n.fa-dedent::before {\n content: \"\\f03b\"; }\n\n.fa-court-sport::before {\n content: \"\\e643\"; }\n\n.fa-heart-circle-exclamation::before {\n content: \"\\e4fe\"; }\n\n.fa-house::before {\n content: \"\\f015\"; }\n\n.fa-home::before {\n content: \"\\f015\"; }\n\n.fa-home-alt::before {\n content: \"\\f015\"; }\n\n.fa-home-lg-alt::before {\n content: \"\\f015\"; }\n\n.fa-vector-circle::before {\n content: \"\\e2c6\"; }\n\n.fa-car-circle-bolt::before {\n content: \"\\e342\"; }\n\n.fa-calendar-week::before {\n content: \"\\f784\"; }\n\n.fa-flying-disc::before {\n content: \"\\e3a9\"; }\n\n.fa-laptop-medical::before {\n content: \"\\f812\"; }\n\n.fa-square-down-right::before {\n content: \"\\e26c\"; }\n\n.fa-b::before {\n content: \"\\42\"; }\n\n.fa-seat-airline::before {\n content: \"\\e244\"; }\n\n.fa-moon-over-sun::before {\n content: \"\\f74a\"; }\n\n.fa-eclipse-alt::before {\n content: \"\\f74a\"; }\n\n.fa-pipe::before {\n content: \"\\7c\"; }\n\n.fa-file-medical::before {\n content: \"\\f477\"; }\n\n.fa-potato::before {\n content: \"\\e440\"; }\n\n.fa-dice-one::before {\n content: \"\\f525\"; }\n\n.fa-circle-a::before {\n content: \"\\e0f7\"; }\n\n.fa-helmet-battle::before {\n content: \"\\f6eb\"; }\n\n.fa-butter::before {\n content: \"\\e3e4\"; }\n\n.fa-blanket-fire::before {\n content: \"\\e3da\"; }\n\n.fa-kiwi-bird::before {\n content: \"\\f535\"; }\n\n.fa-castle::before {\n content: \"\\e0de\"; }\n\n.fa-golf-club::before {\n content: \"\\f451\"; }\n\n.fa-arrow-right-arrow-left::before {\n content: \"\\f0ec\"; }\n\n.fa-exchange::before {\n content: \"\\f0ec\"; }\n\n.fa-rotate-right::before {\n content: \"\\f2f9\"; }\n\n.fa-redo-alt::before {\n content: \"\\f2f9\"; }\n\n.fa-rotate-forward::before {\n content: \"\\f2f9\"; }\n\n.fa-utensils::before {\n content: \"\\f2e7\"; }\n\n.fa-cutlery::before {\n content: \"\\f2e7\"; }\n\n.fa-arrow-up-wide-short::before {\n content: \"\\f161\"; }\n\n.fa-sort-amount-up::before {\n content: \"\\f161\"; }\n\n.fa-chart-pie-simple-circle-dollar::before {\n content: \"\\e605\"; }\n\n.fa-balloons::before {\n content: \"\\e2e4\"; }\n\n.fa-mill-sign::before {\n content: \"\\e1ed\"; }\n\n.fa-bowl-rice::before {\n content: \"\\e2eb\"; }\n\n.fa-timeline-arrow::before {\n content: \"\\e29d\"; }\n\n.fa-skull::before {\n content: \"\\f54c\"; }\n\n.fa-game-board-simple::before {\n content: \"\\f868\"; }\n\n.fa-game-board-alt::before {\n content: \"\\f868\"; }\n\n.fa-circle-video::before {\n content: \"\\e12b\"; }\n\n.fa-video-circle::before {\n content: \"\\e12b\"; }\n\n.fa-chart-scatter-bubble::before {\n content: \"\\e0e9\"; }\n\n.fa-house-turret::before {\n content: \"\\e1b4\"; }\n\n.fa-banana::before {\n content: \"\\e2e5\"; }\n\n.fa-hand-holding-skull::before {\n content: \"\\e1a4\"; }\n\n.fa-people-dress::before {\n content: \"\\e217\"; }\n\n.fa-loveseat::before {\n content: \"\\f4cc\"; }\n\n.fa-couch-small::before {\n content: \"\\f4cc\"; }\n\n.fa-tower-broadcast::before {\n content: \"\\f519\"; }\n\n.fa-broadcast-tower::before {\n content: \"\\f519\"; }\n\n.fa-truck-pickup::before {\n content: \"\\f63c\"; }\n\n.fa-block-quote::before {\n content: \"\\e0b5\"; }\n\n.fa-up-long::before {\n content: \"\\f30c\"; }\n\n.fa-long-arrow-alt-up::before {\n content: \"\\f30c\"; }\n\n.fa-stop::before {\n content: \"\\f04d\"; }\n\n.fa-code-merge::before {\n content: \"\\f387\"; }\n\n.fa-money-check-dollar-pen::before {\n content: \"\\f873\"; }\n\n.fa-money-check-edit-alt::before {\n content: \"\\f873\"; }\n\n.fa-up-from-line::before {\n content: \"\\f346\"; }\n\n.fa-arrow-alt-from-bottom::before {\n content: \"\\f346\"; }\n\n.fa-upload::before {\n content: \"\\f093\"; }\n\n.fa-hurricane::before {\n content: \"\\f751\"; }\n\n.fa-grid-round-2-plus::before {\n content: \"\\e5dc\"; }\n\n.fa-people-pants::before {\n content: \"\\e219\"; }\n\n.fa-mound::before {\n content: \"\\e52d\"; }\n\n.fa-windsock::before {\n content: \"\\f777\"; }\n\n.fa-circle-half::before {\n content: \"\\e110\"; }\n\n.fa-brake-warning::before {\n content: \"\\e0c7\"; }\n\n.fa-toilet-portable::before {\n content: \"\\e583\"; }\n\n.fa-compact-disc::before {\n content: \"\\f51f\"; }\n\n.fa-file-arrow-down::before {\n content: \"\\f56d\"; }\n\n.fa-file-download::before {\n content: \"\\f56d\"; }\n\n.fa-saxophone-fire::before {\n content: \"\\f8db\"; }\n\n.fa-sax-hot::before {\n content: \"\\f8db\"; }\n\n.fa-camera-web-slash::before {\n content: \"\\f833\"; }\n\n.fa-webcam-slash::before {\n content: \"\\f833\"; }\n\n.fa-folder-medical::before {\n content: \"\\e18c\"; }\n\n.fa-folder-gear::before {\n content: \"\\e187\"; }\n\n.fa-folder-cog::before {\n content: \"\\e187\"; }\n\n.fa-hand-wave::before {\n content: \"\\e1a7\"; }\n\n.fa-arrow-up-arrow-down::before {\n content: \"\\e099\"; }\n\n.fa-sort-up-down::before {\n content: \"\\e099\"; }\n\n.fa-caravan::before {\n content: \"\\f8ff\"; }\n\n.fa-shield-cat::before {\n content: \"\\e572\"; }\n\n.fa-message-slash::before {\n content: \"\\f4a9\"; }\n\n.fa-comment-alt-slash::before {\n content: \"\\f4a9\"; }\n\n.fa-bolt::before {\n content: \"\\f0e7\"; }\n\n.fa-zap::before {\n content: \"\\f0e7\"; }\n\n.fa-trash-can-check::before {\n content: \"\\e2a9\"; }\n\n.fa-glass-water::before {\n content: \"\\e4f4\"; }\n\n.fa-oil-well::before {\n content: \"\\e532\"; }\n\n.fa-person-simple::before {\n content: \"\\e220\"; }\n\n.fa-arrow-turn-left-up::before {\n content: \"\\e634\"; }\n\n.fa-vault::before {\n content: \"\\e2c5\"; }\n\n.fa-mars::before {\n content: \"\\f222\"; }\n\n.fa-toilet::before {\n content: \"\\f7d8\"; }\n\n.fa-plane-circle-xmark::before {\n content: \"\\e557\"; }\n\n.fa-yen-sign::before {\n content: \"\\f157\"; }\n\n.fa-cny::before {\n content: \"\\f157\"; }\n\n.fa-jpy::before {\n content: \"\\f157\"; }\n\n.fa-rmb::before {\n content: \"\\f157\"; }\n\n.fa-yen::before {\n content: \"\\f157\"; }\n\n.fa-gear-code::before {\n content: \"\\e5e8\"; }\n\n.fa-notes::before {\n content: \"\\e202\"; }\n\n.fa-ruble-sign::before {\n content: \"\\f158\"; }\n\n.fa-rouble::before {\n content: \"\\f158\"; }\n\n.fa-rub::before {\n content: \"\\f158\"; }\n\n.fa-ruble::before {\n content: \"\\f158\"; }\n\n.fa-trash-undo::before {\n content: \"\\f895\"; }\n\n.fa-trash-arrow-turn-left::before {\n content: \"\\f895\"; }\n\n.fa-champagne-glass::before {\n content: \"\\f79e\"; }\n\n.fa-glass-champagne::before {\n content: \"\\f79e\"; }\n\n.fa-objects-align-center-horizontal::before {\n content: \"\\e3bc\"; }\n\n.fa-sun::before {\n content: \"\\f185\"; }\n\n.fa-trash-can-slash::before {\n content: \"\\e2ad\"; }\n\n.fa-trash-alt-slash::before {\n content: \"\\e2ad\"; }\n\n.fa-screen-users::before {\n content: \"\\f63d\"; }\n\n.fa-users-class::before {\n content: \"\\f63d\"; }\n\n.fa-guitar::before {\n content: \"\\f7a6\"; }\n\n.fa-square-arrow-left::before {\n content: \"\\f33a\"; }\n\n.fa-arrow-square-left::before {\n content: \"\\f33a\"; }\n\n.fa-square-8::before {\n content: \"\\e25d\"; }\n\n.fa-face-smile-hearts::before {\n content: \"\\e390\"; }\n\n.fa-brackets-square::before {\n content: \"\\f7e9\"; }\n\n.fa-brackets::before {\n content: \"\\f7e9\"; }\n\n.fa-laptop-arrow-down::before {\n content: \"\\e1c6\"; }\n\n.fa-hockey-stick-puck::before {\n content: \"\\e3ae\"; }\n\n.fa-house-tree::before {\n content: \"\\e1b3\"; }\n\n.fa-signal-fair::before {\n content: \"\\f68d\"; }\n\n.fa-signal-2::before {\n content: \"\\f68d\"; }\n\n.fa-face-laugh-wink::before {\n content: \"\\f59c\"; }\n\n.fa-laugh-wink::before {\n content: \"\\f59c\"; }\n\n.fa-circle-dollar::before {\n content: \"\\f2e8\"; }\n\n.fa-dollar-circle::before {\n content: \"\\f2e8\"; }\n\n.fa-usd-circle::before {\n content: \"\\f2e8\"; }\n\n.fa-horse-head::before {\n content: \"\\f7ab\"; }\n\n.fa-arrows-repeat::before {\n content: \"\\f364\"; }\n\n.fa-repeat-alt::before {\n content: \"\\f364\"; }\n\n.fa-bore-hole::before {\n content: \"\\e4c3\"; }\n\n.fa-industry::before {\n content: \"\\f275\"; }\n\n.fa-image-polaroid::before {\n content: \"\\f8c4\"; }\n\n.fa-wave-triangle::before {\n content: \"\\f89a\"; }\n\n.fa-turn-left-down::before {\n content: \"\\e637\"; }\n\n.fa-person-running-fast::before {\n content: \"\\e5ff\"; }\n\n.fa-circle-down::before {\n content: \"\\f358\"; }\n\n.fa-arrow-alt-circle-down::before {\n content: \"\\f358\"; }\n\n.fa-grill::before {\n content: \"\\e5a3\"; }\n\n.fa-arrows-turn-to-dots::before {\n content: \"\\e4c1\"; }\n\n.fa-chart-mixed::before {\n content: \"\\f643\"; }\n\n.fa-analytics::before {\n content: \"\\f643\"; }\n\n.fa-florin-sign::before {\n content: \"\\e184\"; }\n\n.fa-arrow-down-short-wide::before {\n content: \"\\f884\"; }\n\n.fa-sort-amount-desc::before {\n content: \"\\f884\"; }\n\n.fa-sort-amount-down-alt::before {\n content: \"\\f884\"; }\n\n.fa-less-than::before {\n content: \"\\3c\"; }\n\n.fa-display-code::before {\n content: \"\\e165\"; }\n\n.fa-desktop-code::before {\n content: \"\\e165\"; }\n\n.fa-face-drooling::before {\n content: \"\\e372\"; }\n\n.fa-oil-temperature::before {\n content: \"\\f614\"; }\n\n.fa-oil-temp::before {\n content: \"\\f614\"; }\n\n.fa-square-question::before {\n content: \"\\f2fd\"; }\n\n.fa-question-square::before {\n content: \"\\f2fd\"; }\n\n.fa-air-conditioner::before {\n content: \"\\f8f4\"; }\n\n.fa-angle-down::before {\n content: \"\\f107\"; }\n\n.fa-mountains::before {\n content: \"\\f6fd\"; }\n\n.fa-omega::before {\n content: \"\\f67a\"; }\n\n.fa-car-tunnel::before {\n content: \"\\e4de\"; }\n\n.fa-person-dolly-empty::before {\n content: \"\\f4d1\"; }\n\n.fa-pan-food::before {\n content: \"\\e42b\"; }\n\n.fa-head-side-cough::before {\n content: \"\\e061\"; }\n\n.fa-grip-lines::before {\n content: \"\\f7a4\"; }\n\n.fa-thumbs-down::before {\n content: \"\\f165\"; }\n\n.fa-user-lock::before {\n content: \"\\f502\"; }\n\n.fa-arrow-right-long::before {\n content: \"\\f178\"; }\n\n.fa-long-arrow-right::before {\n content: \"\\f178\"; }\n\n.fa-tickets-airline::before {\n content: \"\\e29b\"; }\n\n.fa-tickets-perforated-plane::before {\n content: \"\\e29b\"; }\n\n.fa-tickets-plane::before {\n content: \"\\e29b\"; }\n\n.fa-tent-double-peak::before {\n content: \"\\e627\"; }\n\n.fa-anchor-circle-xmark::before {\n content: \"\\e4ac\"; }\n\n.fa-ellipsis::before {\n content: \"\\f141\"; }\n\n.fa-ellipsis-h::before {\n content: \"\\f141\"; }\n\n.fa-nfc-slash::before {\n content: \"\\e1fc\"; }\n\n.fa-chess-pawn::before {\n content: \"\\f443\"; }\n\n.fa-kit-medical::before {\n content: \"\\f479\"; }\n\n.fa-first-aid::before {\n content: \"\\f479\"; }\n\n.fa-grid-2-plus::before {\n content: \"\\e197\"; }\n\n.fa-bells::before {\n content: \"\\f77f\"; }\n\n.fa-person-through-window::before {\n content: \"\\e5a9\"; }\n\n.fa-toolbox::before {\n content: \"\\f552\"; }\n\n.fa-envelope-dot::before {\n content: \"\\e16f\"; }\n\n.fa-envelope-badge::before {\n content: \"\\e16f\"; }\n\n.fa-magnifying-glass-waveform::before {\n content: \"\\e661\"; }\n\n.fa-hands-holding-circle::before {\n content: \"\\e4fb\"; }\n\n.fa-bug::before {\n content: \"\\f188\"; }\n\n.fa-bowl-chopsticks::before {\n content: \"\\e2e9\"; }\n\n.fa-credit-card::before {\n content: \"\\f09d\"; }\n\n.fa-credit-card-alt::before {\n content: \"\\f09d\"; }\n\n.fa-circle-s::before {\n content: \"\\e121\"; }\n\n.fa-box-ballot::before {\n content: \"\\f735\"; }\n\n.fa-car::before {\n content: \"\\f1b9\"; }\n\n.fa-automobile::before {\n content: \"\\f1b9\"; }\n\n.fa-hand-holding-hand::before {\n content: \"\\e4f7\"; }\n\n.fa-user-tie-hair::before {\n content: \"\\e45f\"; }\n\n.fa-podium-star::before {\n content: \"\\f758\"; }\n\n.fa-user-hair-mullet::before {\n content: \"\\e45c\"; }\n\n.fa-business-front::before {\n content: \"\\e45c\"; }\n\n.fa-party-back::before {\n content: \"\\e45c\"; }\n\n.fa-trian-balbot::before {\n content: \"\\e45c\"; }\n\n.fa-microphone-stand::before {\n content: \"\\f8cb\"; }\n\n.fa-book-open-reader::before {\n content: \"\\f5da\"; }\n\n.fa-book-reader::before {\n content: \"\\f5da\"; }\n\n.fa-family-dress::before {\n content: \"\\e301\"; }\n\n.fa-circle-x::before {\n content: \"\\e12e\"; }\n\n.fa-cabin::before {\n content: \"\\e46d\"; }\n\n.fa-mountain-sun::before {\n content: \"\\e52f\"; }\n\n.fa-chart-simple-horizontal::before {\n content: \"\\e474\"; }\n\n.fa-arrows-left-right-to-line::before {\n content: \"\\e4ba\"; }\n\n.fa-hand-back-point-left::before {\n content: \"\\e19f\"; }\n\n.fa-message-dots::before {\n content: \"\\f4a3\"; }\n\n.fa-comment-alt-dots::before {\n content: \"\\f4a3\"; }\n\n.fa-messaging::before {\n content: \"\\f4a3\"; }\n\n.fa-file-heart::before {\n content: \"\\e176\"; }\n\n.fa-beer-mug::before {\n content: \"\\e0b3\"; }\n\n.fa-beer-foam::before {\n content: \"\\e0b3\"; }\n\n.fa-dice-d20::before {\n content: \"\\f6cf\"; }\n\n.fa-drone::before {\n content: \"\\f85f\"; }\n\n.fa-truck-droplet::before {\n content: \"\\e58c\"; }\n\n.fa-file-circle-xmark::before {\n content: \"\\e5a1\"; }\n\n.fa-temperature-arrow-up::before {\n content: \"\\e040\"; }\n\n.fa-temperature-up::before {\n content: \"\\e040\"; }\n\n.fa-medal::before {\n content: \"\\f5a2\"; }\n\n.fa-person-fairy::before {\n content: \"\\e608\"; }\n\n.fa-bed::before {\n content: \"\\f236\"; }\n\n.fa-book-copy::before {\n content: \"\\e0be\"; }\n\n.fa-square-h::before {\n content: \"\\f0fd\"; }\n\n.fa-h-square::before {\n content: \"\\f0fd\"; }\n\n.fa-square-c::before {\n content: \"\\e266\"; }\n\n.fa-clock-two::before {\n content: \"\\e35a\"; }\n\n.fa-square-ellipsis-vertical::before {\n content: \"\\e26f\"; }\n\n.fa-calendar-users::before {\n content: \"\\e5e2\"; }\n\n.fa-podcast::before {\n content: \"\\f2ce\"; }\n\n.fa-bee::before {\n content: \"\\e0b2\"; }\n\n.fa-temperature-full::before {\n content: \"\\f2c7\"; }\n\n.fa-temperature-4::before {\n content: \"\\f2c7\"; }\n\n.fa-thermometer-4::before {\n content: \"\\f2c7\"; }\n\n.fa-thermometer-full::before {\n content: \"\\f2c7\"; }\n\n.fa-bell::before {\n content: \"\\f0f3\"; }\n\n.fa-candy-bar::before {\n content: \"\\e3e8\"; }\n\n.fa-chocolate-bar::before {\n content: \"\\e3e8\"; }\n\n.fa-xmark-large::before {\n content: \"\\e59b\"; }\n\n.fa-pinata::before {\n content: \"\\e3c3\"; }\n\n.fa-file-ppt::before {\n content: \"\\e64a\"; }\n\n.fa-arrows-from-line::before {\n content: \"\\e0a4\"; }\n\n.fa-superscript::before {\n content: \"\\f12b\"; }\n\n.fa-bowl-spoon::before {\n content: \"\\e3e0\"; }\n\n.fa-hexagon-check::before {\n content: \"\\e416\"; }\n\n.fa-plug-circle-xmark::before {\n content: \"\\e560\"; }\n\n.fa-star-of-life::before {\n content: \"\\f621\"; }\n\n.fa-phone-slash::before {\n content: \"\\f3dd\"; }\n\n.fa-traffic-light-stop::before {\n content: \"\\f63a\"; }\n\n.fa-paint-roller::before {\n content: \"\\f5aa\"; }\n\n.fa-accent-grave::before {\n content: \"\\60\"; }\n\n.fa-handshake-angle::before {\n content: \"\\f4c4\"; }\n\n.fa-hands-helping::before {\n content: \"\\f4c4\"; }\n\n.fa-circle-0::before {\n content: \"\\e0ed\"; }\n\n.fa-dial-med-low::before {\n content: \"\\e160\"; }\n\n.fa-location-dot::before {\n content: \"\\f3c5\"; }\n\n.fa-map-marker-alt::before {\n content: \"\\f3c5\"; }\n\n.fa-crab::before {\n content: \"\\e3ff\"; }\n\n.fa-box-open-full::before {\n content: \"\\f49c\"; }\n\n.fa-box-full::before {\n content: \"\\f49c\"; }\n\n.fa-file::before {\n content: \"\\f15b\"; }\n\n.fa-greater-than::before {\n content: \"\\3e\"; }\n\n.fa-quotes::before {\n content: \"\\e234\"; }\n\n.fa-pretzel::before {\n content: \"\\e441\"; }\n\n.fa-t-rex::before {\n content: \"\\e629\"; }\n\n.fa-person-swimming::before {\n content: \"\\f5c4\"; }\n\n.fa-swimmer::before {\n content: \"\\f5c4\"; }\n\n.fa-arrow-down::before {\n content: \"\\f063\"; }\n\n.fa-user-robot-xmarks::before {\n content: \"\\e4a7\"; }\n\n.fa-message-quote::before {\n content: \"\\e1e4\"; }\n\n.fa-comment-alt-quote::before {\n content: \"\\e1e4\"; }\n\n.fa-candy-corn::before {\n content: \"\\f6bd\"; }\n\n.fa-folder-magnifying-glass::before {\n content: \"\\e18b\"; }\n\n.fa-folder-search::before {\n content: \"\\e18b\"; }\n\n.fa-notebook::before {\n content: \"\\e201\"; }\n\n.fa-circle-wifi::before {\n content: \"\\e67d\"; }\n\n.fa-droplet::before {\n content: \"\\f043\"; }\n\n.fa-tint::before {\n content: \"\\f043\"; }\n\n.fa-bullseye-pointer::before {\n content: \"\\f649\"; }\n\n.fa-eraser::before {\n content: \"\\f12d\"; }\n\n.fa-hexagon-image::before {\n content: \"\\e504\"; }\n\n.fa-earth-americas::before {\n content: \"\\f57d\"; }\n\n.fa-earth::before {\n content: \"\\f57d\"; }\n\n.fa-earth-america::before {\n content: \"\\f57d\"; }\n\n.fa-globe-americas::before {\n content: \"\\f57d\"; }\n\n.fa-file-svg::before {\n content: \"\\e64b\"; }\n\n.fa-crate-apple::before {\n content: \"\\f6b1\"; }\n\n.fa-apple-crate::before {\n content: \"\\f6b1\"; }\n\n.fa-person-burst::before {\n content: \"\\e53b\"; }\n\n.fa-game-board::before {\n content: \"\\f867\"; }\n\n.fa-hat-chef::before {\n content: \"\\f86b\"; }\n\n.fa-hand-back-point-right::before {\n content: \"\\e1a1\"; }\n\n.fa-dove::before {\n content: \"\\f4ba\"; }\n\n.fa-snowflake-droplets::before {\n content: \"\\e5c1\"; }\n\n.fa-battery-empty::before {\n content: \"\\f244\"; }\n\n.fa-battery-0::before {\n content: \"\\f244\"; }\n\n.fa-grid-4::before {\n content: \"\\e198\"; }\n\n.fa-socks::before {\n content: \"\\f696\"; }\n\n.fa-face-sunglasses::before {\n content: \"\\e398\"; }\n\n.fa-inbox::before {\n content: \"\\f01c\"; }\n\n.fa-square-0::before {\n content: \"\\e255\"; }\n\n.fa-section::before {\n content: \"\\e447\"; }\n\n.fa-square-this-way-up::before {\n content: \"\\f49f\"; }\n\n.fa-box-up::before {\n content: \"\\f49f\"; }\n\n.fa-gauge-high::before {\n content: \"\\f625\"; }\n\n.fa-tachometer-alt::before {\n content: \"\\f625\"; }\n\n.fa-tachometer-alt-fast::before {\n content: \"\\f625\"; }\n\n.fa-square-ampersand::before {\n content: \"\\e260\"; }\n\n.fa-envelope-open-text::before {\n content: \"\\f658\"; }\n\n.fa-lamp-desk::before {\n content: \"\\e014\"; }\n\n.fa-hospital::before {\n content: \"\\f0f8\"; }\n\n.fa-hospital-alt::before {\n content: \"\\f0f8\"; }\n\n.fa-hospital-wide::before {\n content: \"\\f0f8\"; }\n\n.fa-poll-people::before {\n content: \"\\f759\"; }\n\n.fa-whiskey-glass-ice::before {\n content: \"\\f7a1\"; }\n\n.fa-glass-whiskey-rocks::before {\n content: \"\\f7a1\"; }\n\n.fa-wine-bottle::before {\n content: \"\\f72f\"; }\n\n.fa-chess-rook::before {\n content: \"\\f447\"; }\n\n.fa-user-bounty-hunter::before {\n content: \"\\e2bf\"; }\n\n.fa-bars-staggered::before {\n content: \"\\f550\"; }\n\n.fa-reorder::before {\n content: \"\\f550\"; }\n\n.fa-stream::before {\n content: \"\\f550\"; }\n\n.fa-diagram-sankey::before {\n content: \"\\e158\"; }\n\n.fa-cloud-hail-mixed::before {\n content: \"\\f73a\"; }\n\n.fa-circle-up-left::before {\n content: \"\\e128\"; }\n\n.fa-dharmachakra::before {\n content: \"\\f655\"; }\n\n.fa-objects-align-left::before {\n content: \"\\e3be\"; }\n\n.fa-oil-can-drip::before {\n content: \"\\e205\"; }\n\n.fa-face-smiling-hands::before {\n content: \"\\e396\"; }\n\n.fa-broccoli::before {\n content: \"\\e3e2\"; }\n\n.fa-route-interstate::before {\n content: \"\\f61b\"; }\n\n.fa-ear-muffs::before {\n content: \"\\f795\"; }\n\n.fa-hotdog::before {\n content: \"\\f80f\"; }\n\n.fa-transporter-empty::before {\n content: \"\\e046\"; }\n\n.fa-person-walking-with-cane::before {\n content: \"\\f29d\"; }\n\n.fa-blind::before {\n content: \"\\f29d\"; }\n\n.fa-angle-90::before {\n content: \"\\e08d\"; }\n\n.fa-rectangle-terminal::before {\n content: \"\\e236\"; }\n\n.fa-kite::before {\n content: \"\\f6f4\"; }\n\n.fa-drum::before {\n content: \"\\f569\"; }\n\n.fa-scrubber::before {\n content: \"\\f2f8\"; }\n\n.fa-ice-cream::before {\n content: \"\\f810\"; }\n\n.fa-heart-circle-bolt::before {\n content: \"\\e4fc\"; }\n\n.fa-fish-bones::before {\n content: \"\\e304\"; }\n\n.fa-deer-rudolph::before {\n content: \"\\f78f\"; }\n\n.fa-fax::before {\n content: \"\\f1ac\"; }\n\n.fa-paragraph::before {\n content: \"\\f1dd\"; }\n\n.fa-head-side-heart::before {\n content: \"\\e1aa\"; }\n\n.fa-square-e::before {\n content: \"\\e26d\"; }\n\n.fa-meter-fire::before {\n content: \"\\e1eb\"; }\n\n.fa-cloud-hail::before {\n content: \"\\f739\"; }\n\n.fa-check-to-slot::before {\n content: \"\\f772\"; }\n\n.fa-vote-yea::before {\n content: \"\\f772\"; }\n\n.fa-money-from-bracket::before {\n content: \"\\e312\"; }\n\n.fa-star-half::before {\n content: \"\\f089\"; }\n\n.fa-car-bus::before {\n content: \"\\f85a\"; }\n\n.fa-speaker::before {\n content: \"\\f8df\"; }\n\n.fa-timer::before {\n content: \"\\e29e\"; }\n\n.fa-boxes-stacked::before {\n content: \"\\f468\"; }\n\n.fa-boxes::before {\n content: \"\\f468\"; }\n\n.fa-boxes-alt::before {\n content: \"\\f468\"; }\n\n.fa-landmark-magnifying-glass::before {\n content: \"\\e622\"; }\n\n.fa-grill-hot::before {\n content: \"\\e5a5\"; }\n\n.fa-ballot-check::before {\n content: \"\\f733\"; }\n\n.fa-link::before {\n content: \"\\f0c1\"; }\n\n.fa-chain::before {\n content: \"\\f0c1\"; }\n\n.fa-ear-listen::before {\n content: \"\\f2a2\"; }\n\n.fa-assistive-listening-systems::before {\n content: \"\\f2a2\"; }\n\n.fa-file-minus::before {\n content: \"\\f318\"; }\n\n.fa-tree-city::before {\n content: \"\\e587\"; }\n\n.fa-play::before {\n content: \"\\f04b\"; }\n\n.fa-font::before {\n content: \"\\f031\"; }\n\n.fa-cup-togo::before {\n content: \"\\f6c5\"; }\n\n.fa-coffee-togo::before {\n content: \"\\f6c5\"; }\n\n.fa-square-down-left::before {\n content: \"\\e26b\"; }\n\n.fa-burger-lettuce::before {\n content: \"\\e3e3\"; }\n\n.fa-table-cells-row-lock::before {\n content: \"\\e67a\"; }\n\n.fa-rupiah-sign::before {\n content: \"\\e23d\"; }\n\n.fa-magnifying-glass::before {\n content: \"\\f002\"; }\n\n.fa-search::before {\n content: \"\\f002\"; }\n\n.fa-table-tennis-paddle-ball::before {\n content: \"\\f45d\"; }\n\n.fa-ping-pong-paddle-ball::before {\n content: \"\\f45d\"; }\n\n.fa-table-tennis::before {\n content: \"\\f45d\"; }\n\n.fa-person-dots-from-line::before {\n content: \"\\f470\"; }\n\n.fa-diagnoses::before {\n content: \"\\f470\"; }\n\n.fa-chevrons-down::before {\n content: \"\\f322\"; }\n\n.fa-chevron-double-down::before {\n content: \"\\f322\"; }\n\n.fa-trash-can-arrow-up::before {\n content: \"\\f82a\"; }\n\n.fa-trash-restore-alt::before {\n content: \"\\f82a\"; }\n\n.fa-signal-good::before {\n content: \"\\f68e\"; }\n\n.fa-signal-3::before {\n content: \"\\f68e\"; }\n\n.fa-location-question::before {\n content: \"\\f60b\"; }\n\n.fa-map-marker-question::before {\n content: \"\\f60b\"; }\n\n.fa-floppy-disk-circle-xmark::before {\n content: \"\\e181\"; }\n\n.fa-floppy-disk-times::before {\n content: \"\\e181\"; }\n\n.fa-save-circle-xmark::before {\n content: \"\\e181\"; }\n\n.fa-save-times::before {\n content: \"\\e181\"; }\n\n.fa-naira-sign::before {\n content: \"\\e1f6\"; }\n\n.fa-peach::before {\n content: \"\\e20b\"; }\n\n.fa-taxi-bus::before {\n content: \"\\e298\"; }\n\n.fa-bracket-curly::before {\n content: \"\\7b\"; }\n\n.fa-bracket-curly-left::before {\n content: \"\\7b\"; }\n\n.fa-lobster::before {\n content: \"\\e421\"; }\n\n.fa-cart-flatbed-empty::before {\n content: \"\\f476\"; }\n\n.fa-dolly-flatbed-empty::before {\n content: \"\\f476\"; }\n\n.fa-colon::before {\n content: \"\\3a\"; }\n\n.fa-cart-arrow-down::before {\n content: \"\\f218\"; }\n\n.fa-wand::before {\n content: \"\\f72a\"; }\n\n.fa-walkie-talkie::before {\n content: \"\\f8ef\"; }\n\n.fa-file-pen::before {\n content: \"\\f31c\"; }\n\n.fa-file-edit::before {\n content: \"\\f31c\"; }\n\n.fa-receipt::before {\n content: \"\\f543\"; }\n\n.fa-table-picnic::before {\n content: \"\\e32d\"; }\n\n.fa-square-pen::before {\n content: \"\\f14b\"; }\n\n.fa-pen-square::before {\n content: \"\\f14b\"; }\n\n.fa-pencil-square::before {\n content: \"\\f14b\"; }\n\n.fa-circle-microphone-lines::before {\n content: \"\\e117\"; }\n\n.fa-microphone-circle-alt::before {\n content: \"\\e117\"; }\n\n.fa-display-slash::before {\n content: \"\\e2fa\"; }\n\n.fa-desktop-slash::before {\n content: \"\\e2fa\"; }\n\n.fa-suitcase-rolling::before {\n content: \"\\f5c1\"; }\n\n.fa-person-circle-exclamation::before {\n content: \"\\e53f\"; }\n\n.fa-transporter-2::before {\n content: \"\\e044\"; }\n\n.fa-hands-holding-diamond::before {\n content: \"\\f47c\"; }\n\n.fa-hand-receiving::before {\n content: \"\\f47c\"; }\n\n.fa-money-bill-simple-wave::before {\n content: \"\\e1f2\"; }\n\n.fa-chevron-down::before {\n content: \"\\f078\"; }\n\n.fa-battery-full::before {\n content: \"\\f240\"; }\n\n.fa-battery::before {\n content: \"\\f240\"; }\n\n.fa-battery-5::before {\n content: \"\\f240\"; }\n\n.fa-bell-plus::before {\n content: \"\\f849\"; }\n\n.fa-book-arrow-right::before {\n content: \"\\e0b9\"; }\n\n.fa-hospitals::before {\n content: \"\\f80e\"; }\n\n.fa-club::before {\n content: \"\\f327\"; }\n\n.fa-skull-crossbones::before {\n content: \"\\f714\"; }\n\n.fa-droplet-degree::before {\n content: \"\\f748\"; }\n\n.fa-dewpoint::before {\n content: \"\\f748\"; }\n\n.fa-code-compare::before {\n content: \"\\e13a\"; }\n\n.fa-list-ul::before {\n content: \"\\f0ca\"; }\n\n.fa-list-dots::before {\n content: \"\\f0ca\"; }\n\n.fa-hand-holding-magic::before {\n content: \"\\f6e5\"; }\n\n.fa-watermelon-slice::before {\n content: \"\\e337\"; }\n\n.fa-circle-ellipsis::before {\n content: \"\\e10a\"; }\n\n.fa-school-lock::before {\n content: \"\\e56f\"; }\n\n.fa-tower-cell::before {\n content: \"\\e585\"; }\n\n.fa-sd-cards::before {\n content: \"\\e240\"; }\n\n.fa-jug-bottle::before {\n content: \"\\e5fb\"; }\n\n.fa-down-long::before {\n content: \"\\f309\"; }\n\n.fa-long-arrow-alt-down::before {\n content: \"\\f309\"; }\n\n.fa-envelopes::before {\n content: \"\\e170\"; }\n\n.fa-phone-office::before {\n content: \"\\f67d\"; }\n\n.fa-ranking-star::before {\n content: \"\\e561\"; }\n\n.fa-chess-king::before {\n content: \"\\f43f\"; }\n\n.fa-nfc-pen::before {\n content: \"\\e1fa\"; }\n\n.fa-person-harassing::before {\n content: \"\\e549\"; }\n\n.fa-magnifying-glass-play::before {\n content: \"\\e660\"; }\n\n.fa-hat-winter::before {\n content: \"\\f7a8\"; }\n\n.fa-brazilian-real-sign::before {\n content: \"\\e46c\"; }\n\n.fa-landmark-dome::before {\n content: \"\\f752\"; }\n\n.fa-landmark-alt::before {\n content: \"\\f752\"; }\n\n.fa-bone-break::before {\n content: \"\\f5d8\"; }\n\n.fa-arrow-up::before {\n content: \"\\f062\"; }\n\n.fa-down-from-dotted-line::before {\n content: \"\\e407\"; }\n\n.fa-tv::before {\n content: \"\\f26c\"; }\n\n.fa-television::before {\n content: \"\\f26c\"; }\n\n.fa-tv-alt::before {\n content: \"\\f26c\"; }\n\n.fa-border-left::before {\n content: \"\\f84f\"; }\n\n.fa-circle-divide::before {\n content: \"\\e106\"; }\n\n.fa-shrimp::before {\n content: \"\\e448\"; }\n\n.fa-list-check::before {\n content: \"\\f0ae\"; }\n\n.fa-tasks::before {\n content: \"\\f0ae\"; }\n\n.fa-diagram-subtask::before {\n content: \"\\e479\"; }\n\n.fa-jug-detergent::before {\n content: \"\\e519\"; }\n\n.fa-circle-user::before {\n content: \"\\f2bd\"; }\n\n.fa-user-circle::before {\n content: \"\\f2bd\"; }\n\n.fa-square-y::before {\n content: \"\\e287\"; }\n\n.fa-user-doctor-hair::before {\n content: \"\\e458\"; }\n\n.fa-planet-ringed::before {\n content: \"\\e020\"; }\n\n.fa-mushroom::before {\n content: \"\\e425\"; }\n\n.fa-user-shield::before {\n content: \"\\f505\"; }\n\n.fa-megaphone::before {\n content: \"\\f675\"; }\n\n.fa-wreath-laurel::before {\n content: \"\\e5d2\"; }\n\n.fa-circle-exclamation-check::before {\n content: \"\\e10d\"; }\n\n.fa-wind::before {\n content: \"\\f72e\"; }\n\n.fa-box-dollar::before {\n content: \"\\f4a0\"; }\n\n.fa-box-usd::before {\n content: \"\\f4a0\"; }\n\n.fa-car-burst::before {\n content: \"\\f5e1\"; }\n\n.fa-car-crash::before {\n content: \"\\f5e1\"; }\n\n.fa-y::before {\n content: \"\\59\"; }\n\n.fa-user-headset::before {\n content: \"\\f82d\"; }\n\n.fa-arrows-retweet::before {\n content: \"\\f361\"; }\n\n.fa-retweet-alt::before {\n content: \"\\f361\"; }\n\n.fa-person-snowboarding::before {\n content: \"\\f7ce\"; }\n\n.fa-snowboarding::before {\n content: \"\\f7ce\"; }\n\n.fa-square-chevron-right::before {\n content: \"\\f32b\"; }\n\n.fa-chevron-square-right::before {\n content: \"\\f32b\"; }\n\n.fa-lacrosse-stick-ball::before {\n content: \"\\e3b6\"; }\n\n.fa-truck-fast::before {\n content: \"\\f48b\"; }\n\n.fa-shipping-fast::before {\n content: \"\\f48b\"; }\n\n.fa-user-magnifying-glass::before {\n content: \"\\e5c5\"; }\n\n.fa-star-sharp::before {\n content: \"\\e28b\"; }\n\n.fa-comment-heart::before {\n content: \"\\e5c8\"; }\n\n.fa-circle-1::before {\n content: \"\\e0ee\"; }\n\n.fa-circle-star::before {\n content: \"\\e123\"; }\n\n.fa-star-circle::before {\n content: \"\\e123\"; }\n\n.fa-fish::before {\n content: \"\\f578\"; }\n\n.fa-cloud-fog::before {\n content: \"\\f74e\"; }\n\n.fa-fog::before {\n content: \"\\f74e\"; }\n\n.fa-waffle::before {\n content: \"\\e466\"; }\n\n.fa-music-note::before {\n content: \"\\f8cf\"; }\n\n.fa-music-alt::before {\n content: \"\\f8cf\"; }\n\n.fa-hexagon-exclamation::before {\n content: \"\\e417\"; }\n\n.fa-cart-shopping-fast::before {\n content: \"\\e0dc\"; }\n\n.fa-object-union::before {\n content: \"\\e49f\"; }\n\n.fa-user-graduate::before {\n content: \"\\f501\"; }\n\n.fa-starfighter::before {\n content: \"\\e037\"; }\n\n.fa-circle-half-stroke::before {\n content: \"\\f042\"; }\n\n.fa-adjust::before {\n content: \"\\f042\"; }\n\n.fa-arrow-right-long-to-line::before {\n content: \"\\e3d5\"; }\n\n.fa-square-arrow-down::before {\n content: \"\\f339\"; }\n\n.fa-arrow-square-down::before {\n content: \"\\f339\"; }\n\n.fa-diamond-half-stroke::before {\n content: \"\\e5b8\"; }\n\n.fa-clapperboard::before {\n content: \"\\e131\"; }\n\n.fa-square-chevron-left::before {\n content: \"\\f32a\"; }\n\n.fa-chevron-square-left::before {\n content: \"\\f32a\"; }\n\n.fa-phone-intercom::before {\n content: \"\\e434\"; }\n\n.fa-link-horizontal::before {\n content: \"\\e1cb\"; }\n\n.fa-chain-horizontal::before {\n content: \"\\e1cb\"; }\n\n.fa-mango::before {\n content: \"\\e30f\"; }\n\n.fa-music-note-slash::before {\n content: \"\\f8d0\"; }\n\n.fa-music-alt-slash::before {\n content: \"\\f8d0\"; }\n\n.fa-circle-radiation::before {\n content: \"\\f7ba\"; }\n\n.fa-radiation-alt::before {\n content: \"\\f7ba\"; }\n\n.fa-face-tongue-sweat::before {\n content: \"\\e39e\"; }\n\n.fa-globe-stand::before {\n content: \"\\f5f6\"; }\n\n.fa-baseball::before {\n content: \"\\f433\"; }\n\n.fa-baseball-ball::before {\n content: \"\\f433\"; }\n\n.fa-circle-p::before {\n content: \"\\e11a\"; }\n\n.fa-award-simple::before {\n content: \"\\e0ab\"; }\n\n.fa-jet-fighter-up::before {\n content: \"\\e518\"; }\n\n.fa-diagram-project::before {\n content: \"\\f542\"; }\n\n.fa-project-diagram::before {\n content: \"\\f542\"; }\n\n.fa-pedestal::before {\n content: \"\\e20d\"; }\n\n.fa-chart-pyramid::before {\n content: \"\\e0e6\"; }\n\n.fa-sidebar::before {\n content: \"\\e24e\"; }\n\n.fa-snowman-head::before {\n content: \"\\f79b\"; }\n\n.fa-frosty-head::before {\n content: \"\\f79b\"; }\n\n.fa-copy::before {\n content: \"\\f0c5\"; }\n\n.fa-burger-glass::before {\n content: \"\\e0ce\"; }\n\n.fa-volume-xmark::before {\n content: \"\\f6a9\"; }\n\n.fa-volume-mute::before {\n content: \"\\f6a9\"; }\n\n.fa-volume-times::before {\n content: \"\\f6a9\"; }\n\n.fa-hand-sparkles::before {\n content: \"\\e05d\"; }\n\n.fa-bars-filter::before {\n content: \"\\e0ad\"; }\n\n.fa-paintbrush-pencil::before {\n content: \"\\e206\"; }\n\n.fa-party-bell::before {\n content: \"\\e31a\"; }\n\n.fa-user-vneck-hair::before {\n content: \"\\e462\"; }\n\n.fa-jack-o-lantern::before {\n content: \"\\f30e\"; }\n\n.fa-grip::before {\n content: \"\\f58d\"; }\n\n.fa-grip-horizontal::before {\n content: \"\\f58d\"; }\n\n.fa-share-from-square::before {\n content: \"\\f14d\"; }\n\n.fa-share-square::before {\n content: \"\\f14d\"; }\n\n.fa-keynote::before {\n content: \"\\f66c\"; }\n\n.fa-child-combatant::before {\n content: \"\\e4e0\"; }\n\n.fa-child-rifle::before {\n content: \"\\e4e0\"; }\n\n.fa-gun::before {\n content: \"\\e19b\"; }\n\n.fa-square-phone::before {\n content: \"\\f098\"; }\n\n.fa-phone-square::before {\n content: \"\\f098\"; }\n\n.fa-hat-beach::before {\n content: \"\\e606\"; }\n\n.fa-plus::before {\n content: \"\\2b\"; }\n\n.fa-add::before {\n content: \"\\2b\"; }\n\n.fa-expand::before {\n content: \"\\f065\"; }\n\n.fa-computer::before {\n content: \"\\e4e5\"; }\n\n.fa-fort::before {\n content: \"\\e486\"; }\n\n.fa-cloud-check::before {\n content: \"\\e35c\"; }\n\n.fa-xmark::before {\n content: \"\\f00d\"; }\n\n.fa-close::before {\n content: \"\\f00d\"; }\n\n.fa-multiply::before {\n content: \"\\f00d\"; }\n\n.fa-remove::before {\n content: \"\\f00d\"; }\n\n.fa-times::before {\n content: \"\\f00d\"; }\n\n.fa-face-smirking::before {\n content: \"\\e397\"; }\n\n.fa-arrows-up-down-left-right::before {\n content: \"\\f047\"; }\n\n.fa-arrows::before {\n content: \"\\f047\"; }\n\n.fa-chalkboard-user::before {\n content: \"\\f51c\"; }\n\n.fa-chalkboard-teacher::before {\n content: \"\\f51c\"; }\n\n.fa-rhombus::before {\n content: \"\\e23b\"; }\n\n.fa-claw-marks::before {\n content: \"\\f6c2\"; }\n\n.fa-peso-sign::before {\n content: \"\\e222\"; }\n\n.fa-face-smile-tongue::before {\n content: \"\\e394\"; }\n\n.fa-cart-circle-xmark::before {\n content: \"\\e3f4\"; }\n\n.fa-building-shield::before {\n content: \"\\e4d8\"; }\n\n.fa-circle-phone-flip::before {\n content: \"\\e11c\"; }\n\n.fa-phone-circle-alt::before {\n content: \"\\e11c\"; }\n\n.fa-baby::before {\n content: \"\\f77c\"; }\n\n.fa-users-line::before {\n content: \"\\e592\"; }\n\n.fa-quote-left::before {\n content: \"\\f10d\"; }\n\n.fa-quote-left-alt::before {\n content: \"\\f10d\"; }\n\n.fa-tractor::before {\n content: \"\\f722\"; }\n\n.fa-down-from-bracket::before {\n content: \"\\e66b\"; }\n\n.fa-key-skeleton::before {\n content: \"\\f6f3\"; }\n\n.fa-trash-arrow-up::before {\n content: \"\\f829\"; }\n\n.fa-trash-restore::before {\n content: \"\\f829\"; }\n\n.fa-arrow-down-up-lock::before {\n content: \"\\e4b0\"; }\n\n.fa-arrow-down-to-bracket::before {\n content: \"\\e094\"; }\n\n.fa-lines-leaning::before {\n content: \"\\e51e\"; }\n\n.fa-square-q::before {\n content: \"\\e27b\"; }\n\n.fa-ruler-combined::before {\n content: \"\\f546\"; }\n\n.fa-symbols::before {\n content: \"\\f86e\"; }\n\n.fa-icons-alt::before {\n content: \"\\f86e\"; }\n\n.fa-copyright::before {\n content: \"\\f1f9\"; }\n\n.fa-flask-gear::before {\n content: \"\\e5f1\"; }\n\n.fa-highlighter-line::before {\n content: \"\\e1af\"; }\n\n.fa-bracket-square::before {\n content: \"\\5b\"; }\n\n.fa-bracket::before {\n content: \"\\5b\"; }\n\n.fa-bracket-left::before {\n content: \"\\5b\"; }\n\n.fa-island-tropical::before {\n content: \"\\f811\"; }\n\n.fa-island-tree-palm::before {\n content: \"\\f811\"; }\n\n.fa-arrow-right-from-line::before {\n content: \"\\f343\"; }\n\n.fa-arrow-from-left::before {\n content: \"\\f343\"; }\n\n.fa-h2::before {\n content: \"\\f314\"; }\n\n.fa-equals::before {\n content: \"\\3d\"; }\n\n.fa-cake-slice::before {\n content: \"\\e3e5\"; }\n\n.fa-shortcake::before {\n content: \"\\e3e5\"; }\n\n.fa-building-magnifying-glass::before {\n content: \"\\e61c\"; }\n\n.fa-peanut::before {\n content: \"\\e430\"; }\n\n.fa-wrench-simple::before {\n content: \"\\e2d1\"; }\n\n.fa-blender::before {\n content: \"\\f517\"; }\n\n.fa-teeth::before {\n content: \"\\f62e\"; }\n\n.fa-tally-2::before {\n content: \"\\e295\"; }\n\n.fa-shekel-sign::before {\n content: \"\\f20b\"; }\n\n.fa-ils::before {\n content: \"\\f20b\"; }\n\n.fa-shekel::before {\n content: \"\\f20b\"; }\n\n.fa-sheqel::before {\n content: \"\\f20b\"; }\n\n.fa-sheqel-sign::before {\n content: \"\\f20b\"; }\n\n.fa-cars::before {\n content: \"\\f85b\"; }\n\n.fa-axe-battle::before {\n content: \"\\f6b3\"; }\n\n.fa-user-hair-long::before {\n content: \"\\e45b\"; }\n\n.fa-map::before {\n content: \"\\f279\"; }\n\n.fa-arrow-left-from-arc::before {\n content: \"\\e615\"; }\n\n.fa-file-circle-info::before {\n content: \"\\e493\"; }\n\n.fa-face-disappointed::before {\n content: \"\\e36f\"; }\n\n.fa-lasso-sparkles::before {\n content: \"\\e1c9\"; }\n\n.fa-clock-eleven::before {\n content: \"\\e347\"; }\n\n.fa-rocket::before {\n content: \"\\f135\"; }\n\n.fa-siren-on::before {\n content: \"\\e02e\"; }\n\n.fa-clock-ten::before {\n content: \"\\e354\"; }\n\n.fa-candle-holder::before {\n content: \"\\f6bc\"; }\n\n.fa-video-arrow-down-left::before {\n content: \"\\e2c8\"; }\n\n.fa-photo-film::before {\n content: \"\\f87c\"; }\n\n.fa-photo-video::before {\n content: \"\\f87c\"; }\n\n.fa-floppy-disk-circle-arrow-right::before {\n content: \"\\e180\"; }\n\n.fa-save-circle-arrow-right::before {\n content: \"\\e180\"; }\n\n.fa-folder-minus::before {\n content: \"\\f65d\"; }\n\n.fa-planet-moon::before {\n content: \"\\e01f\"; }\n\n.fa-face-eyes-xmarks::before {\n content: \"\\e374\"; }\n\n.fa-chart-scatter::before {\n content: \"\\f7ee\"; }\n\n.fa-circle-gf::before {\n content: \"\\e67f\"; }\n\n.fa-display-arrow-down::before {\n content: \"\\e164\"; }\n\n.fa-store::before {\n content: \"\\f54e\"; }\n\n.fa-arrow-trend-up::before {\n content: \"\\e098\"; }\n\n.fa-plug-circle-minus::before {\n content: \"\\e55e\"; }\n\n.fa-olive-branch::before {\n content: \"\\e317\"; }\n\n.fa-angle::before {\n content: \"\\e08c\"; }\n\n.fa-vacuum-robot::before {\n content: \"\\e04e\"; }\n\n.fa-sign-hanging::before {\n content: \"\\f4d9\"; }\n\n.fa-sign::before {\n content: \"\\f4d9\"; }\n\n.fa-square-divide::before {\n content: \"\\e26a\"; }\n\n.fa-folder-check::before {\n content: \"\\e64e\"; }\n\n.fa-signal-stream-slash::before {\n content: \"\\e250\"; }\n\n.fa-bezier-curve::before {\n content: \"\\f55b\"; }\n\n.fa-eye-dropper-half::before {\n content: \"\\e173\"; }\n\n.fa-store-lock::before {\n content: \"\\e4a6\"; }\n\n.fa-bell-slash::before {\n content: \"\\f1f6\"; }\n\n.fa-cloud-bolt-sun::before {\n content: \"\\f76e\"; }\n\n.fa-thunderstorm-sun::before {\n content: \"\\f76e\"; }\n\n.fa-camera-slash::before {\n content: \"\\e0d9\"; }\n\n.fa-comment-quote::before {\n content: \"\\e14c\"; }\n\n.fa-tablet::before {\n content: \"\\f3fb\"; }\n\n.fa-tablet-android::before {\n content: \"\\f3fb\"; }\n\n.fa-school-flag::before {\n content: \"\\e56e\"; }\n\n.fa-message-code::before {\n content: \"\\e1df\"; }\n\n.fa-glass-half::before {\n content: \"\\e192\"; }\n\n.fa-glass-half-empty::before {\n content: \"\\e192\"; }\n\n.fa-glass-half-full::before {\n content: \"\\e192\"; }\n\n.fa-fill::before {\n content: \"\\f575\"; }\n\n.fa-message-minus::before {\n content: \"\\f4a7\"; }\n\n.fa-comment-alt-minus::before {\n content: \"\\f4a7\"; }\n\n.fa-angle-up::before {\n content: \"\\f106\"; }\n\n.fa-dinosaur::before {\n content: \"\\e5fe\"; }\n\n.fa-drumstick-bite::before {\n content: \"\\f6d7\"; }\n\n.fa-link-horizontal-slash::before {\n content: \"\\e1cc\"; }\n\n.fa-chain-horizontal-slash::before {\n content: \"\\e1cc\"; }\n\n.fa-holly-berry::before {\n content: \"\\f7aa\"; }\n\n.fa-nose::before {\n content: \"\\e5bd\"; }\n\n.fa-arrow-left-to-arc::before {\n content: \"\\e616\"; }\n\n.fa-chevron-left::before {\n content: \"\\f053\"; }\n\n.fa-bacteria::before {\n content: \"\\e059\"; }\n\n.fa-clouds::before {\n content: \"\\f744\"; }\n\n.fa-money-bill-simple::before {\n content: \"\\e1f1\"; }\n\n.fa-hand-lizard::before {\n content: \"\\f258\"; }\n\n.fa-table-pivot::before {\n content: \"\\e291\"; }\n\n.fa-filter-slash::before {\n content: \"\\e17d\"; }\n\n.fa-trash-can-undo::before {\n content: \"\\f896\"; }\n\n.fa-trash-can-arrow-turn-left::before {\n content: \"\\f896\"; }\n\n.fa-trash-undo-alt::before {\n content: \"\\f896\"; }\n\n.fa-notdef::before {\n content: \"\\e1fe\"; }\n\n.fa-disease::before {\n content: \"\\f7fa\"; }\n\n.fa-person-to-door::before {\n content: \"\\e433\"; }\n\n.fa-turntable::before {\n content: \"\\f8e4\"; }\n\n.fa-briefcase-medical::before {\n content: \"\\f469\"; }\n\n.fa-genderless::before {\n content: \"\\f22d\"; }\n\n.fa-chevron-right::before {\n content: \"\\f054\"; }\n\n.fa-signal-weak::before {\n content: \"\\f68c\"; }\n\n.fa-signal-1::before {\n content: \"\\f68c\"; }\n\n.fa-clock-five::before {\n content: \"\\e349\"; }\n\n.fa-retweet::before {\n content: \"\\f079\"; }\n\n.fa-car-rear::before {\n content: \"\\f5de\"; }\n\n.fa-car-alt::before {\n content: \"\\f5de\"; }\n\n.fa-pump-soap::before {\n content: \"\\e06b\"; }\n\n.fa-computer-classic::before {\n content: \"\\f8b1\"; }\n\n.fa-frame::before {\n content: \"\\e495\"; }\n\n.fa-video-slash::before {\n content: \"\\f4e2\"; }\n\n.fa-battery-quarter::before {\n content: \"\\f243\"; }\n\n.fa-battery-2::before {\n content: \"\\f243\"; }\n\n.fa-ellipsis-stroke::before {\n content: \"\\f39b\"; }\n\n.fa-ellipsis-h-alt::before {\n content: \"\\f39b\"; }\n\n.fa-radio::before {\n content: \"\\f8d7\"; }\n\n.fa-baby-carriage::before {\n content: \"\\f77d\"; }\n\n.fa-carriage-baby::before {\n content: \"\\f77d\"; }\n\n.fa-face-expressionless::before {\n content: \"\\e373\"; }\n\n.fa-down-to-dotted-line::before {\n content: \"\\e408\"; }\n\n.fa-cloud-music::before {\n content: \"\\f8ae\"; }\n\n.fa-traffic-light::before {\n content: \"\\f637\"; }\n\n.fa-cloud-minus::before {\n content: \"\\e35d\"; }\n\n.fa-thermometer::before {\n content: \"\\f491\"; }\n\n.fa-shield-minus::before {\n content: \"\\e249\"; }\n\n.fa-vr-cardboard::before {\n content: \"\\f729\"; }\n\n.fa-car-tilt::before {\n content: \"\\f5e5\"; }\n\n.fa-gauge-circle-minus::before {\n content: \"\\e497\"; }\n\n.fa-brightness-low::before {\n content: \"\\e0ca\"; }\n\n.fa-hand-middle-finger::before {\n content: \"\\f806\"; }\n\n.fa-percent::before {\n content: \"\\25\"; }\n\n.fa-percentage::before {\n content: \"\\25\"; }\n\n.fa-truck-moving::before {\n content: \"\\f4df\"; }\n\n.fa-glass-water-droplet::before {\n content: \"\\e4f5\"; }\n\n.fa-conveyor-belt::before {\n content: \"\\f46e\"; }\n\n.fa-location-check::before {\n content: \"\\f606\"; }\n\n.fa-map-marker-check::before {\n content: \"\\f606\"; }\n\n.fa-coin-vertical::before {\n content: \"\\e3fd\"; }\n\n.fa-display::before {\n content: \"\\e163\"; }\n\n.fa-person-sign::before {\n content: \"\\f757\"; }\n\n.fa-face-smile::before {\n content: \"\\f118\"; }\n\n.fa-smile::before {\n content: \"\\f118\"; }\n\n.fa-phone-hangup::before {\n content: \"\\e225\"; }\n\n.fa-signature-slash::before {\n content: \"\\e3cb\"; }\n\n.fa-thumbtack::before {\n content: \"\\f08d\"; }\n\n.fa-thumb-tack::before {\n content: \"\\f08d\"; }\n\n.fa-wheat-slash::before {\n content: \"\\e339\"; }\n\n.fa-trophy::before {\n content: \"\\f091\"; }\n\n.fa-clouds-sun::before {\n content: \"\\f746\"; }\n\n.fa-person-praying::before {\n content: \"\\f683\"; }\n\n.fa-pray::before {\n content: \"\\f683\"; }\n\n.fa-hammer::before {\n content: \"\\f6e3\"; }\n\n.fa-face-vomit::before {\n content: \"\\e3a0\"; }\n\n.fa-speakers::before {\n content: \"\\f8e0\"; }\n\n.fa-tty-answer::before {\n content: \"\\e2b9\"; }\n\n.fa-teletype-answer::before {\n content: \"\\e2b9\"; }\n\n.fa-mug-tea-saucer::before {\n content: \"\\e1f5\"; }\n\n.fa-diagram-lean-canvas::before {\n content: \"\\e156\"; }\n\n.fa-alt::before {\n content: \"\\e08a\"; }\n\n.fa-dial::before {\n content: \"\\e15b\"; }\n\n.fa-dial-med-high::before {\n content: \"\\e15b\"; }\n\n.fa-hand-peace::before {\n content: \"\\f25b\"; }\n\n.fa-circle-trash::before {\n content: \"\\e126\"; }\n\n.fa-trash-circle::before {\n content: \"\\e126\"; }\n\n.fa-rotate::before {\n content: \"\\f2f1\"; }\n\n.fa-sync-alt::before {\n content: \"\\f2f1\"; }\n\n.fa-circle-quarters::before {\n content: \"\\e3f8\"; }\n\n.fa-spinner::before {\n content: \"\\f110\"; }\n\n.fa-tower-control::before {\n content: \"\\e2a2\"; }\n\n.fa-arrow-up-triangle-square::before {\n content: \"\\f88a\"; }\n\n.fa-sort-shapes-up::before {\n content: \"\\f88a\"; }\n\n.fa-whale::before {\n content: \"\\f72c\"; }\n\n.fa-robot::before {\n content: \"\\f544\"; }\n\n.fa-peace::before {\n content: \"\\f67c\"; }\n\n.fa-party-horn::before {\n content: \"\\e31b\"; }\n\n.fa-gears::before {\n content: \"\\f085\"; }\n\n.fa-cogs::before {\n content: \"\\f085\"; }\n\n.fa-sun-bright::before {\n content: \"\\e28f\"; }\n\n.fa-sun-alt::before {\n content: \"\\e28f\"; }\n\n.fa-warehouse::before {\n content: \"\\f494\"; }\n\n.fa-conveyor-belt-arm::before {\n content: \"\\e5f8\"; }\n\n.fa-lock-keyhole-open::before {\n content: \"\\f3c2\"; }\n\n.fa-lock-open-alt::before {\n content: \"\\f3c2\"; }\n\n.fa-square-fragile::before {\n content: \"\\f49b\"; }\n\n.fa-box-fragile::before {\n content: \"\\f49b\"; }\n\n.fa-square-wine-glass-crack::before {\n content: \"\\f49b\"; }\n\n.fa-arrow-up-right-dots::before {\n content: \"\\e4b7\"; }\n\n.fa-square-n::before {\n content: \"\\e277\"; }\n\n.fa-splotch::before {\n content: \"\\f5bc\"; }\n\n.fa-face-grin-hearts::before {\n content: \"\\f584\"; }\n\n.fa-grin-hearts::before {\n content: \"\\f584\"; }\n\n.fa-meter::before {\n content: \"\\e1e8\"; }\n\n.fa-mandolin::before {\n content: \"\\f6f9\"; }\n\n.fa-dice-four::before {\n content: \"\\f524\"; }\n\n.fa-sim-card::before {\n content: \"\\f7c4\"; }\n\n.fa-transgender::before {\n content: \"\\f225\"; }\n\n.fa-transgender-alt::before {\n content: \"\\f225\"; }\n\n.fa-mercury::before {\n content: \"\\f223\"; }\n\n.fa-up-from-bracket::before {\n content: \"\\e590\"; }\n\n.fa-knife-kitchen::before {\n content: \"\\f6f5\"; }\n\n.fa-border-right::before {\n content: \"\\f852\"; }\n\n.fa-arrow-turn-down::before {\n content: \"\\f149\"; }\n\n.fa-level-down::before {\n content: \"\\f149\"; }\n\n.fa-spade::before {\n content: \"\\f2f4\"; }\n\n.fa-card-spade::before {\n content: \"\\e3ec\"; }\n\n.fa-line-columns::before {\n content: \"\\f870\"; }\n\n.fa-ant::before {\n content: \"\\e680\"; }\n\n.fa-arrow-right-to-line::before {\n content: \"\\f340\"; }\n\n.fa-arrow-to-right::before {\n content: \"\\f340\"; }\n\n.fa-person-falling-burst::before {\n content: \"\\e547\"; }\n\n.fa-flag-pennant::before {\n content: \"\\f456\"; }\n\n.fa-pennant::before {\n content: \"\\f456\"; }\n\n.fa-conveyor-belt-empty::before {\n content: \"\\e150\"; }\n\n.fa-user-group-simple::before {\n content: \"\\e603\"; }\n\n.fa-award::before {\n content: \"\\f559\"; }\n\n.fa-ticket-simple::before {\n content: \"\\f3ff\"; }\n\n.fa-ticket-alt::before {\n content: \"\\f3ff\"; }\n\n.fa-building::before {\n content: \"\\f1ad\"; }\n\n.fa-angles-left::before {\n content: \"\\f100\"; }\n\n.fa-angle-double-left::before {\n content: \"\\f100\"; }\n\n.fa-camcorder::before {\n content: \"\\f8a8\"; }\n\n.fa-video-handheld::before {\n content: \"\\f8a8\"; }\n\n.fa-pancakes::before {\n content: \"\\e42d\"; }\n\n.fa-album-circle-user::before {\n content: \"\\e48d\"; }\n\n.fa-subtitles-slash::before {\n content: \"\\e610\"; }\n\n.fa-qrcode::before {\n content: \"\\f029\"; }\n\n.fa-dice-d10::before {\n content: \"\\f6cd\"; }\n\n.fa-fireplace::before {\n content: \"\\f79a\"; }\n\n.fa-browser::before {\n content: \"\\f37e\"; }\n\n.fa-pen-paintbrush::before {\n content: \"\\f618\"; }\n\n.fa-pencil-paintbrush::before {\n content: \"\\f618\"; }\n\n.fa-fish-cooked::before {\n content: \"\\f7fe\"; }\n\n.fa-chair-office::before {\n content: \"\\f6c1\"; }\n\n.fa-magnifying-glass-music::before {\n content: \"\\e65f\"; }\n\n.fa-nesting-dolls::before {\n content: \"\\e3ba\"; }\n\n.fa-clock-rotate-left::before {\n content: \"\\f1da\"; }\n\n.fa-history::before {\n content: \"\\f1da\"; }\n\n.fa-trumpet::before {\n content: \"\\f8e3\"; }\n\n.fa-face-grin-beam-sweat::before {\n content: \"\\f583\"; }\n\n.fa-grin-beam-sweat::before {\n content: \"\\f583\"; }\n\n.fa-fire-smoke::before {\n content: \"\\f74b\"; }\n\n.fa-phone-missed::before {\n content: \"\\e226\"; }\n\n.fa-file-export::before {\n content: \"\\f56e\"; }\n\n.fa-arrow-right-from-file::before {\n content: \"\\f56e\"; }\n\n.fa-shield::before {\n content: \"\\f132\"; }\n\n.fa-shield-blank::before {\n content: \"\\f132\"; }\n\n.fa-arrow-up-short-wide::before {\n content: \"\\f885\"; }\n\n.fa-sort-amount-up-alt::before {\n content: \"\\f885\"; }\n\n.fa-arrows-repeat-1::before {\n content: \"\\f366\"; }\n\n.fa-repeat-1-alt::before {\n content: \"\\f366\"; }\n\n.fa-gun-slash::before {\n content: \"\\e19c\"; }\n\n.fa-avocado::before {\n content: \"\\e0aa\"; }\n\n.fa-binary::before {\n content: \"\\e33b\"; }\n\n.fa-glasses-round::before {\n content: \"\\f5f5\"; }\n\n.fa-glasses-alt::before {\n content: \"\\f5f5\"; }\n\n.fa-phone-plus::before {\n content: \"\\f4d2\"; }\n\n.fa-ditto::before {\n content: \"\\22\"; }\n\n.fa-person-seat::before {\n content: \"\\e21e\"; }\n\n.fa-house-medical::before {\n content: \"\\e3b2\"; }\n\n.fa-golf-ball-tee::before {\n content: \"\\f450\"; }\n\n.fa-golf-ball::before {\n content: \"\\f450\"; }\n\n.fa-circle-chevron-left::before {\n content: \"\\f137\"; }\n\n.fa-chevron-circle-left::before {\n content: \"\\f137\"; }\n\n.fa-house-chimney-window::before {\n content: \"\\e00d\"; }\n\n.fa-scythe::before {\n content: \"\\f710\"; }\n\n.fa-pen-nib::before {\n content: \"\\f5ad\"; }\n\n.fa-ban-parking::before {\n content: \"\\f616\"; }\n\n.fa-parking-circle-slash::before {\n content: \"\\f616\"; }\n\n.fa-tent-arrow-turn-left::before {\n content: \"\\e580\"; }\n\n.fa-face-diagonal-mouth::before {\n content: \"\\e47e\"; }\n\n.fa-diagram-cells::before {\n content: \"\\e475\"; }\n\n.fa-cricket-bat-ball::before {\n content: \"\\f449\"; }\n\n.fa-cricket::before {\n content: \"\\f449\"; }\n\n.fa-tents::before {\n content: \"\\e582\"; }\n\n.fa-wand-magic::before {\n content: \"\\f0d0\"; }\n\n.fa-magic::before {\n content: \"\\f0d0\"; }\n\n.fa-dog::before {\n content: \"\\f6d3\"; }\n\n.fa-pen-line::before {\n content: \"\\e212\"; }\n\n.fa-atom-simple::before {\n content: \"\\f5d3\"; }\n\n.fa-atom-alt::before {\n content: \"\\f5d3\"; }\n\n.fa-ampersand::before {\n content: \"\\26\"; }\n\n.fa-carrot::before {\n content: \"\\f787\"; }\n\n.fa-arrow-up-from-line::before {\n content: \"\\f342\"; }\n\n.fa-arrow-from-bottom::before {\n content: \"\\f342\"; }\n\n.fa-moon::before {\n content: \"\\f186\"; }\n\n.fa-pen-slash::before {\n content: \"\\e213\"; }\n\n.fa-wine-glass-empty::before {\n content: \"\\f5ce\"; }\n\n.fa-wine-glass-alt::before {\n content: \"\\f5ce\"; }\n\n.fa-square-star::before {\n content: \"\\e27f\"; }\n\n.fa-cheese::before {\n content: \"\\f7ef\"; }\n\n.fa-send-backward::before {\n content: \"\\f87f\"; }\n\n.fa-yin-yang::before {\n content: \"\\f6ad\"; }\n\n.fa-music::before {\n content: \"\\f001\"; }\n\n.fa-compass-slash::before {\n content: \"\\f5e9\"; }\n\n.fa-clock-one::before {\n content: \"\\e34e\"; }\n\n.fa-file-music::before {\n content: \"\\f8b6\"; }\n\n.fa-code-commit::before {\n content: \"\\f386\"; }\n\n.fa-temperature-low::before {\n content: \"\\f76b\"; }\n\n.fa-person-biking::before {\n content: \"\\f84a\"; }\n\n.fa-biking::before {\n content: \"\\f84a\"; }\n\n.fa-display-chart-up-circle-currency::before {\n content: \"\\e5e5\"; }\n\n.fa-skeleton::before {\n content: \"\\f620\"; }\n\n.fa-circle-g::before {\n content: \"\\e10f\"; }\n\n.fa-circle-arrow-up-left::before {\n content: \"\\e0fb\"; }\n\n.fa-coin-blank::before {\n content: \"\\e3fb\"; }\n\n.fa-broom::before {\n content: \"\\f51a\"; }\n\n.fa-vacuum::before {\n content: \"\\e04d\"; }\n\n.fa-shield-heart::before {\n content: \"\\e574\"; }\n\n.fa-card-heart::before {\n content: \"\\e3eb\"; }\n\n.fa-lightbulb-cfl-on::before {\n content: \"\\e5a7\"; }\n\n.fa-melon::before {\n content: \"\\e310\"; }\n\n.fa-gopuram::before {\n content: \"\\f664\"; }\n\n.fa-earth-oceania::before {\n content: \"\\e47b\"; }\n\n.fa-globe-oceania::before {\n content: \"\\e47b\"; }\n\n.fa-container-storage::before {\n content: \"\\f4b7\"; }\n\n.fa-face-pouting::before {\n content: \"\\e387\"; }\n\n.fa-square-xmark::before {\n content: \"\\f2d3\"; }\n\n.fa-times-square::before {\n content: \"\\f2d3\"; }\n\n.fa-xmark-square::before {\n content: \"\\f2d3\"; }\n\n.fa-face-explode::before {\n content: \"\\e2fe\"; }\n\n.fa-exploding-head::before {\n content: \"\\e2fe\"; }\n\n.fa-hashtag::before {\n content: \"\\23\"; }\n\n.fa-up-right-and-down-left-from-center::before {\n content: \"\\f424\"; }\n\n.fa-expand-alt::before {\n content: \"\\f424\"; }\n\n.fa-oil-can::before {\n content: \"\\f613\"; }\n\n.fa-t::before {\n content: \"\\54\"; }\n\n.fa-transformer-bolt::before {\n content: \"\\e2a4\"; }\n\n.fa-hippo::before {\n content: \"\\f6ed\"; }\n\n.fa-chart-column::before {\n content: \"\\e0e3\"; }\n\n.fa-cassette-vhs::before {\n content: \"\\f8ec\"; }\n\n.fa-vhs::before {\n content: \"\\f8ec\"; }\n\n.fa-infinity::before {\n content: \"\\f534\"; }\n\n.fa-vial-circle-check::before {\n content: \"\\e596\"; }\n\n.fa-chimney::before {\n content: \"\\f78b\"; }\n\n.fa-object-intersect::before {\n content: \"\\e49d\"; }\n\n.fa-person-arrow-down-to-line::before {\n content: \"\\e538\"; }\n\n.fa-voicemail::before {\n content: \"\\f897\"; }\n\n.fa-block-brick::before {\n content: \"\\e3db\"; }\n\n.fa-wall-brick::before {\n content: \"\\e3db\"; }\n\n.fa-fan::before {\n content: \"\\f863\"; }\n\n.fa-bags-shopping::before {\n content: \"\\f847\"; }\n\n.fa-paragraph-left::before {\n content: \"\\f878\"; }\n\n.fa-paragraph-rtl::before {\n content: \"\\f878\"; }\n\n.fa-person-walking-luggage::before {\n content: \"\\e554\"; }\n\n.fa-caravan-simple::before {\n content: \"\\e000\"; }\n\n.fa-caravan-alt::before {\n content: \"\\e000\"; }\n\n.fa-turtle::before {\n content: \"\\f726\"; }\n\n.fa-pencil-mechanical::before {\n content: \"\\e5ca\"; }\n\n.fa-up-down::before {\n content: \"\\f338\"; }\n\n.fa-arrows-alt-v::before {\n content: \"\\f338\"; }\n\n.fa-cloud-moon-rain::before {\n content: \"\\f73c\"; }\n\n.fa-booth-curtain::before {\n content: \"\\f734\"; }\n\n.fa-calendar::before {\n content: \"\\f133\"; }\n\n.fa-box-heart::before {\n content: \"\\f49d\"; }\n\n.fa-trailer::before {\n content: \"\\e041\"; }\n\n.fa-user-doctor-message::before {\n content: \"\\f82e\"; }\n\n.fa-user-md-chat::before {\n content: \"\\f82e\"; }\n\n.fa-bahai::before {\n content: \"\\f666\"; }\n\n.fa-haykal::before {\n content: \"\\f666\"; }\n\n.fa-lighthouse::before {\n content: \"\\e612\"; }\n\n.fa-amp-guitar::before {\n content: \"\\f8a1\"; }\n\n.fa-sd-card::before {\n content: \"\\f7c2\"; }\n\n.fa-volume-slash::before {\n content: \"\\f2e2\"; }\n\n.fa-border-bottom::before {\n content: \"\\f84d\"; }\n\n.fa-wifi-weak::before {\n content: \"\\f6aa\"; }\n\n.fa-wifi-1::before {\n content: \"\\f6aa\"; }\n\n.fa-dragon::before {\n content: \"\\f6d5\"; }\n\n.fa-shoe-prints::before {\n content: \"\\f54b\"; }\n\n.fa-circle-plus::before {\n content: \"\\f055\"; }\n\n.fa-plus-circle::before {\n content: \"\\f055\"; }\n\n.fa-face-grin-tongue-wink::before {\n content: \"\\f58b\"; }\n\n.fa-grin-tongue-wink::before {\n content: \"\\f58b\"; }\n\n.fa-hand-holding::before {\n content: \"\\f4bd\"; }\n\n.fa-plug-circle-exclamation::before {\n content: \"\\e55d\"; }\n\n.fa-link-slash::before {\n content: \"\\f127\"; }\n\n.fa-chain-broken::before {\n content: \"\\f127\"; }\n\n.fa-chain-slash::before {\n content: \"\\f127\"; }\n\n.fa-unlink::before {\n content: \"\\f127\"; }\n\n.fa-clone::before {\n content: \"\\f24d\"; }\n\n.fa-person-walking-arrow-loop-left::before {\n content: \"\\e551\"; }\n\n.fa-arrow-up-z-a::before {\n content: \"\\f882\"; }\n\n.fa-sort-alpha-up-alt::before {\n content: \"\\f882\"; }\n\n.fa-fire-flame-curved::before {\n content: \"\\f7e4\"; }\n\n.fa-fire-alt::before {\n content: \"\\f7e4\"; }\n\n.fa-tornado::before {\n content: \"\\f76f\"; }\n\n.fa-file-circle-plus::before {\n content: \"\\e494\"; }\n\n.fa-delete-right::before {\n content: \"\\e154\"; }\n\n.fa-book-quran::before {\n content: \"\\f687\"; }\n\n.fa-quran::before {\n content: \"\\f687\"; }\n\n.fa-circle-quarter::before {\n content: \"\\e11f\"; }\n\n.fa-anchor::before {\n content: \"\\f13d\"; }\n\n.fa-border-all::before {\n content: \"\\f84c\"; }\n\n.fa-function::before {\n content: \"\\f661\"; }\n\n.fa-face-angry::before {\n content: \"\\f556\"; }\n\n.fa-angry::before {\n content: \"\\f556\"; }\n\n.fa-people-simple::before {\n content: \"\\e21b\"; }\n\n.fa-cookie-bite::before {\n content: \"\\f564\"; }\n\n.fa-arrow-trend-down::before {\n content: \"\\e097\"; }\n\n.fa-rss::before {\n content: \"\\f09e\"; }\n\n.fa-feed::before {\n content: \"\\f09e\"; }\n\n.fa-face-monocle::before {\n content: \"\\e380\"; }\n\n.fa-draw-polygon::before {\n content: \"\\f5ee\"; }\n\n.fa-scale-balanced::before {\n content: \"\\f24e\"; }\n\n.fa-balance-scale::before {\n content: \"\\f24e\"; }\n\n.fa-calendar-lines::before {\n content: \"\\e0d5\"; }\n\n.fa-calendar-note::before {\n content: \"\\e0d5\"; }\n\n.fa-arrow-down-big-small::before {\n content: \"\\f88c\"; }\n\n.fa-sort-size-down::before {\n content: \"\\f88c\"; }\n\n.fa-gauge-simple-high::before {\n content: \"\\f62a\"; }\n\n.fa-tachometer::before {\n content: \"\\f62a\"; }\n\n.fa-tachometer-fast::before {\n content: \"\\f62a\"; }\n\n.fa-do-not-enter::before {\n content: \"\\f5ec\"; }\n\n.fa-shower::before {\n content: \"\\f2cc\"; }\n\n.fa-dice-d8::before {\n content: \"\\f6d2\"; }\n\n.fa-desktop::before {\n content: \"\\f390\"; }\n\n.fa-desktop-alt::before {\n content: \"\\f390\"; }\n\n.fa-m::before {\n content: \"\\4d\"; }\n\n.fa-spinner-scale::before {\n content: \"\\e62a\"; }\n\n.fa-grip-dots-vertical::before {\n content: \"\\e411\"; }\n\n.fa-face-viewfinder::before {\n content: \"\\e2ff\"; }\n\n.fa-soft-serve::before {\n content: \"\\e400\"; }\n\n.fa-creemee::before {\n content: \"\\e400\"; }\n\n.fa-h5::before {\n content: \"\\e412\"; }\n\n.fa-hand-back-point-down::before {\n content: \"\\e19e\"; }\n\n.fa-table-list::before {\n content: \"\\f00b\"; }\n\n.fa-th-list::before {\n content: \"\\f00b\"; }\n\n.fa-basket-shopping-minus::before {\n content: \"\\e652\"; }\n\n.fa-comment-sms::before {\n content: \"\\f7cd\"; }\n\n.fa-sms::before {\n content: \"\\f7cd\"; }\n\n.fa-rectangle::before {\n content: \"\\f2fa\"; }\n\n.fa-rectangle-landscape::before {\n content: \"\\f2fa\"; }\n\n.fa-clipboard-list-check::before {\n content: \"\\f737\"; }\n\n.fa-turkey::before {\n content: \"\\f725\"; }\n\n.fa-book::before {\n content: \"\\f02d\"; }\n\n.fa-user-plus::before {\n content: \"\\f234\"; }\n\n.fa-ice-skate::before {\n content: \"\\f7ac\"; }\n\n.fa-check::before {\n content: \"\\f00c\"; }\n\n.fa-battery-three-quarters::before {\n content: \"\\f241\"; }\n\n.fa-battery-4::before {\n content: \"\\f241\"; }\n\n.fa-tomato::before {\n content: \"\\e330\"; }\n\n.fa-sword-laser::before {\n content: \"\\e03b\"; }\n\n.fa-house-circle-check::before {\n content: \"\\e509\"; }\n\n.fa-buildings::before {\n content: \"\\e0cc\"; }\n\n.fa-angle-left::before {\n content: \"\\f104\"; }\n\n.fa-cart-flatbed-boxes::before {\n content: \"\\f475\"; }\n\n.fa-dolly-flatbed-alt::before {\n content: \"\\f475\"; }\n\n.fa-diagram-successor::before {\n content: \"\\e47a\"; }\n\n.fa-truck-arrow-right::before {\n content: \"\\e58b\"; }\n\n.fa-square-w::before {\n content: \"\\e285\"; }\n\n.fa-arrows-split-up-and-left::before {\n content: \"\\e4bc\"; }\n\n.fa-lamp::before {\n content: \"\\f4ca\"; }\n\n.fa-airplay::before {\n content: \"\\e089\"; }\n\n.fa-hand-fist::before {\n content: \"\\f6de\"; }\n\n.fa-fist-raised::before {\n content: \"\\f6de\"; }\n\n.fa-shield-quartered::before {\n content: \"\\e575\"; }\n\n.fa-slash-forward::before {\n content: \"\\2f\"; }\n\n.fa-location-pen::before {\n content: \"\\f607\"; }\n\n.fa-map-marker-edit::before {\n content: \"\\f607\"; }\n\n.fa-cloud-moon::before {\n content: \"\\f6c3\"; }\n\n.fa-pot-food::before {\n content: \"\\e43f\"; }\n\n.fa-briefcase::before {\n content: \"\\f0b1\"; }\n\n.fa-person-falling::before {\n content: \"\\e546\"; }\n\n.fa-image-portrait::before {\n content: \"\\f3e0\"; }\n\n.fa-portrait::before {\n content: \"\\f3e0\"; }\n\n.fa-user-tag::before {\n content: \"\\f507\"; }\n\n.fa-rug::before {\n content: \"\\e569\"; }\n\n.fa-print-slash::before {\n content: \"\\f686\"; }\n\n.fa-earth-europe::before {\n content: \"\\f7a2\"; }\n\n.fa-globe-europe::before {\n content: \"\\f7a2\"; }\n\n.fa-cart-flatbed-suitcase::before {\n content: \"\\f59d\"; }\n\n.fa-luggage-cart::before {\n content: \"\\f59d\"; }\n\n.fa-hand-back-point-ribbon::before {\n content: \"\\e1a0\"; }\n\n.fa-rectangle-xmark::before {\n content: \"\\f410\"; }\n\n.fa-rectangle-times::before {\n content: \"\\f410\"; }\n\n.fa-times-rectangle::before {\n content: \"\\f410\"; }\n\n.fa-window-close::before {\n content: \"\\f410\"; }\n\n.fa-tire-rugged::before {\n content: \"\\f634\"; }\n\n.fa-lightbulb-dollar::before {\n content: \"\\f670\"; }\n\n.fa-cowbell::before {\n content: \"\\f8b3\"; }\n\n.fa-baht-sign::before {\n content: \"\\e0ac\"; }\n\n.fa-corner::before {\n content: \"\\e3fe\"; }\n\n.fa-chevrons-right::before {\n content: \"\\f324\"; }\n\n.fa-chevron-double-right::before {\n content: \"\\f324\"; }\n\n.fa-book-open::before {\n content: \"\\f518\"; }\n\n.fa-book-journal-whills::before {\n content: \"\\f66a\"; }\n\n.fa-journal-whills::before {\n content: \"\\f66a\"; }\n\n.fa-inhaler::before {\n content: \"\\f5f9\"; }\n\n.fa-handcuffs::before {\n content: \"\\e4f8\"; }\n\n.fa-snake::before {\n content: \"\\f716\"; }\n\n.fa-triangle-exclamation::before {\n content: \"\\f071\"; }\n\n.fa-exclamation-triangle::before {\n content: \"\\f071\"; }\n\n.fa-warning::before {\n content: \"\\f071\"; }\n\n.fa-note-medical::before {\n content: \"\\e200\"; }\n\n.fa-database::before {\n content: \"\\f1c0\"; }\n\n.fa-down-left::before {\n content: \"\\e16a\"; }\n\n.fa-share::before {\n content: \"\\f064\"; }\n\n.fa-mail-forward::before {\n content: \"\\f064\"; }\n\n.fa-face-thinking::before {\n content: \"\\e39b\"; }\n\n.fa-turn-down-right::before {\n content: \"\\e455\"; }\n\n.fa-bottle-droplet::before {\n content: \"\\e4c4\"; }\n\n.fa-mask-face::before {\n content: \"\\e1d7\"; }\n\n.fa-hill-rockslide::before {\n content: \"\\e508\"; }\n\n.fa-scanner-keyboard::before {\n content: \"\\f489\"; }\n\n.fa-circle-o::before {\n content: \"\\e119\"; }\n\n.fa-grid-horizontal::before {\n content: \"\\e307\"; }\n\n.fa-message-dollar::before {\n content: \"\\f650\"; }\n\n.fa-comment-alt-dollar::before {\n content: \"\\f650\"; }\n\n.fa-right-left::before {\n content: \"\\f362\"; }\n\n.fa-exchange-alt::before {\n content: \"\\f362\"; }\n\n.fa-columns-3::before {\n content: \"\\e361\"; }\n\n.fa-paper-plane::before {\n content: \"\\f1d8\"; }\n\n.fa-road-circle-exclamation::before {\n content: \"\\e565\"; }\n\n.fa-dungeon::before {\n content: \"\\f6d9\"; }\n\n.fa-hand-holding-box::before {\n content: \"\\f47b\"; }\n\n.fa-input-text::before {\n content: \"\\e1bf\"; }\n\n.fa-window-flip::before {\n content: \"\\f40f\"; }\n\n.fa-window-alt::before {\n content: \"\\f40f\"; }\n\n.fa-align-right::before {\n content: \"\\f038\"; }\n\n.fa-scanner-gun::before {\n content: \"\\f488\"; }\n\n.fa-scanner::before {\n content: \"\\f488\"; }\n\n.fa-tire::before {\n content: \"\\f631\"; }\n\n.fa-engine::before {\n content: \"\\e16e\"; }\n\n.fa-money-bill-1-wave::before {\n content: \"\\f53b\"; }\n\n.fa-money-bill-wave-alt::before {\n content: \"\\f53b\"; }\n\n.fa-life-ring::before {\n content: \"\\f1cd\"; }\n\n.fa-hands::before {\n content: \"\\f2a7\"; }\n\n.fa-sign-language::before {\n content: \"\\f2a7\"; }\n\n.fa-signing::before {\n content: \"\\f2a7\"; }\n\n.fa-circle-caret-right::before {\n content: \"\\f330\"; }\n\n.fa-caret-circle-right::before {\n content: \"\\f330\"; }\n\n.fa-turn-left::before {\n content: \"\\e636\"; }\n\n.fa-wheat::before {\n content: \"\\f72d\"; }\n\n.fa-file-spreadsheet::before {\n content: \"\\f65b\"; }\n\n.fa-audio-description-slash::before {\n content: \"\\e0a8\"; }\n\n.fa-bell-ring::before {\n content: \"\\e62c\"; }\n\n.fa-calendar-day::before {\n content: \"\\f783\"; }\n\n.fa-water-ladder::before {\n content: \"\\f5c5\"; }\n\n.fa-ladder-water::before {\n content: \"\\f5c5\"; }\n\n.fa-swimming-pool::before {\n content: \"\\f5c5\"; }\n\n.fa-arrows-up-down::before {\n content: \"\\f07d\"; }\n\n.fa-arrows-v::before {\n content: \"\\f07d\"; }\n\n.fa-chess-pawn-piece::before {\n content: \"\\f444\"; }\n\n.fa-chess-pawn-alt::before {\n content: \"\\f444\"; }\n\n.fa-face-grimace::before {\n content: \"\\f57f\"; }\n\n.fa-grimace::before {\n content: \"\\f57f\"; }\n\n.fa-wheelchair-move::before {\n content: \"\\e2ce\"; }\n\n.fa-wheelchair-alt::before {\n content: \"\\e2ce\"; }\n\n.fa-turn-down::before {\n content: \"\\f3be\"; }\n\n.fa-level-down-alt::before {\n content: \"\\f3be\"; }\n\n.fa-square-s::before {\n content: \"\\e27d\"; }\n\n.fa-rectangle-barcode::before {\n content: \"\\f463\"; }\n\n.fa-barcode-alt::before {\n content: \"\\f463\"; }\n\n.fa-person-walking-arrow-right::before {\n content: \"\\e552\"; }\n\n.fa-square-envelope::before {\n content: \"\\f199\"; }\n\n.fa-envelope-square::before {\n content: \"\\f199\"; }\n\n.fa-dice::before {\n content: \"\\f522\"; }\n\n.fa-unicorn::before {\n content: \"\\f727\"; }\n\n.fa-bowling-ball::before {\n content: \"\\f436\"; }\n\n.fa-pompebled::before {\n content: \"\\e43d\"; }\n\n.fa-brain::before {\n content: \"\\f5dc\"; }\n\n.fa-watch-smart::before {\n content: \"\\e2cc\"; }\n\n.fa-book-user::before {\n content: \"\\f7e7\"; }\n\n.fa-sensor-cloud::before {\n content: \"\\e02c\"; }\n\n.fa-sensor-smoke::before {\n content: \"\\e02c\"; }\n\n.fa-clapperboard-play::before {\n content: \"\\e132\"; }\n\n.fa-bandage::before {\n content: \"\\f462\"; }\n\n.fa-band-aid::before {\n content: \"\\f462\"; }\n\n.fa-calendar-minus::before {\n content: \"\\f272\"; }\n\n.fa-circle-xmark::before {\n content: \"\\f057\"; }\n\n.fa-times-circle::before {\n content: \"\\f057\"; }\n\n.fa-xmark-circle::before {\n content: \"\\f057\"; }\n\n.fa-circle-4::before {\n content: \"\\e0f1\"; }\n\n.fa-gifts::before {\n content: \"\\f79c\"; }\n\n.fa-album-collection::before {\n content: \"\\f8a0\"; }\n\n.fa-hotel::before {\n content: \"\\f594\"; }\n\n.fa-earth-asia::before {\n content: \"\\f57e\"; }\n\n.fa-globe-asia::before {\n content: \"\\f57e\"; }\n\n.fa-id-card-clip::before {\n content: \"\\f47f\"; }\n\n.fa-id-card-alt::before {\n content: \"\\f47f\"; }\n\n.fa-magnifying-glass-plus::before {\n content: \"\\f00e\"; }\n\n.fa-search-plus::before {\n content: \"\\f00e\"; }\n\n.fa-thumbs-up::before {\n content: \"\\f164\"; }\n\n.fa-cloud-showers::before {\n content: \"\\f73f\"; }\n\n.fa-user-clock::before {\n content: \"\\f4fd\"; }\n\n.fa-onion::before {\n content: \"\\e427\"; }\n\n.fa-clock-twelve-thirty::before {\n content: \"\\e359\"; }\n\n.fa-arrow-down-to-dotted-line::before {\n content: \"\\e095\"; }\n\n.fa-hand-dots::before {\n content: \"\\f461\"; }\n\n.fa-allergies::before {\n content: \"\\f461\"; }\n\n.fa-file-invoice::before {\n content: \"\\f570\"; }\n\n.fa-window-minimize::before {\n content: \"\\f2d1\"; }\n\n.fa-rectangle-wide::before {\n content: \"\\f2fc\"; }\n\n.fa-comment-arrow-up::before {\n content: \"\\e144\"; }\n\n.fa-garlic::before {\n content: \"\\e40e\"; }\n\n.fa-mug-saucer::before {\n content: \"\\f0f4\"; }\n\n.fa-coffee::before {\n content: \"\\f0f4\"; }\n\n.fa-brush::before {\n content: \"\\f55d\"; }\n\n.fa-tree-decorated::before {\n content: \"\\f7dc\"; }\n\n.fa-mask::before {\n content: \"\\f6fa\"; }\n\n.fa-calendar-heart::before {\n content: \"\\e0d3\"; }\n\n.fa-magnifying-glass-minus::before {\n content: \"\\f010\"; }\n\n.fa-search-minus::before {\n content: \"\\f010\"; }\n\n.fa-flower::before {\n content: \"\\f7ff\"; }\n\n.fa-arrow-down-from-arc::before {\n content: \"\\e614\"; }\n\n.fa-right-left-large::before {\n content: \"\\e5e1\"; }\n\n.fa-ruler-vertical::before {\n content: \"\\f548\"; }\n\n.fa-circles-overlap::before {\n content: \"\\e600\"; }\n\n.fa-user-large::before {\n content: \"\\f406\"; }\n\n.fa-user-alt::before {\n content: \"\\f406\"; }\n\n.fa-starship-freighter::before {\n content: \"\\e03a\"; }\n\n.fa-train-tram::before {\n content: \"\\e5b4\"; }\n\n.fa-bridge-suspension::before {\n content: \"\\e4cd\"; }\n\n.fa-trash-check::before {\n content: \"\\e2af\"; }\n\n.fa-user-nurse::before {\n content: \"\\f82f\"; }\n\n.fa-boombox::before {\n content: \"\\f8a5\"; }\n\n.fa-syringe::before {\n content: \"\\f48e\"; }\n\n.fa-cloud-sun::before {\n content: \"\\f6c4\"; }\n\n.fa-shield-exclamation::before {\n content: \"\\e247\"; }\n\n.fa-stopwatch-20::before {\n content: \"\\e06f\"; }\n\n.fa-square-full::before {\n content: \"\\f45c\"; }\n\n.fa-grip-dots::before {\n content: \"\\e410\"; }\n\n.fa-comment-exclamation::before {\n content: \"\\f4af\"; }\n\n.fa-pen-swirl::before {\n content: \"\\e214\"; }\n\n.fa-falafel::before {\n content: \"\\e40a\"; }\n\n.fa-circle-2::before {\n content: \"\\e0ef\"; }\n\n.fa-magnet::before {\n content: \"\\f076\"; }\n\n.fa-jar::before {\n content: \"\\e516\"; }\n\n.fa-gramophone::before {\n content: \"\\f8bd\"; }\n\n.fa-dice-d12::before {\n content: \"\\f6ce\"; }\n\n.fa-note-sticky::before {\n content: \"\\f249\"; }\n\n.fa-sticky-note::before {\n content: \"\\f249\"; }\n\n.fa-down::before {\n content: \"\\f354\"; }\n\n.fa-arrow-alt-down::before {\n content: \"\\f354\"; }\n\n.fa-hundred-points::before {\n content: \"\\e41c\"; }\n\n.fa-100::before {\n content: \"\\e41c\"; }\n\n.fa-paperclip-vertical::before {\n content: \"\\e3c2\"; }\n\n.fa-wind-warning::before {\n content: \"\\f776\"; }\n\n.fa-wind-circle-exclamation::before {\n content: \"\\f776\"; }\n\n.fa-location-pin-slash::before {\n content: \"\\f60c\"; }\n\n.fa-map-marker-slash::before {\n content: \"\\f60c\"; }\n\n.fa-face-sad-sweat::before {\n content: \"\\e38a\"; }\n\n.fa-bug-slash::before {\n content: \"\\e490\"; }\n\n.fa-cupcake::before {\n content: \"\\e402\"; }\n\n.fa-light-switch-off::before {\n content: \"\\e018\"; }\n\n.fa-toggle-large-off::before {\n content: \"\\e5b0\"; }\n\n.fa-pen-fancy-slash::before {\n content: \"\\e210\"; }\n\n.fa-truck-container::before {\n content: \"\\f4dc\"; }\n\n.fa-boot::before {\n content: \"\\f782\"; }\n\n.fa-arrow-up-from-water-pump::before {\n content: \"\\e4b6\"; }\n\n.fa-file-check::before {\n content: \"\\f316\"; }\n\n.fa-bone::before {\n content: \"\\f5d7\"; }\n\n.fa-cards-blank::before {\n content: \"\\e4df\"; }\n\n.fa-circle-3::before {\n content: \"\\e0f0\"; }\n\n.fa-bench-tree::before {\n content: \"\\e2e7\"; }\n\n.fa-keyboard-brightness-low::before {\n content: \"\\e1c1\"; }\n\n.fa-ski-boot-ski::before {\n content: \"\\e3cd\"; }\n\n.fa-brain-circuit::before {\n content: \"\\e0c6\"; }\n\n.fa-user-injured::before {\n content: \"\\f728\"; }\n\n.fa-block-brick-fire::before {\n content: \"\\e3dc\"; }\n\n.fa-firewall::before {\n content: \"\\e3dc\"; }\n\n.fa-face-sad-tear::before {\n content: \"\\f5b4\"; }\n\n.fa-sad-tear::before {\n content: \"\\f5b4\"; }\n\n.fa-plane::before {\n content: \"\\f072\"; }\n\n.fa-tent-arrows-down::before {\n content: \"\\e581\"; }\n\n.fa-exclamation::before {\n content: \"\\21\"; }\n\n.fa-arrows-spin::before {\n content: \"\\e4bb\"; }\n\n.fa-face-smile-relaxed::before {\n content: \"\\e392\"; }\n\n.fa-comment-xmark::before {\n content: \"\\f4b5\"; }\n\n.fa-comment-times::before {\n content: \"\\f4b5\"; }\n\n.fa-print::before {\n content: \"\\f02f\"; }\n\n.fa-turkish-lira-sign::before {\n content: \"\\e2bb\"; }\n\n.fa-try::before {\n content: \"\\e2bb\"; }\n\n.fa-turkish-lira::before {\n content: \"\\e2bb\"; }\n\n.fa-face-nose-steam::before {\n content: \"\\e382\"; }\n\n.fa-circle-waveform-lines::before {\n content: \"\\e12d\"; }\n\n.fa-waveform-circle::before {\n content: \"\\e12d\"; }\n\n.fa-dollar-sign::before {\n content: \"\\24\"; }\n\n.fa-dollar::before {\n content: \"\\24\"; }\n\n.fa-usd::before {\n content: \"\\24\"; }\n\n.fa-ferris-wheel::before {\n content: \"\\e174\"; }\n\n.fa-computer-speaker::before {\n content: \"\\f8b2\"; }\n\n.fa-skull-cow::before {\n content: \"\\f8de\"; }\n\n.fa-x::before {\n content: \"\\58\"; }\n\n.fa-magnifying-glass-dollar::before {\n content: \"\\f688\"; }\n\n.fa-search-dollar::before {\n content: \"\\f688\"; }\n\n.fa-users-gear::before {\n content: \"\\f509\"; }\n\n.fa-users-cog::before {\n content: \"\\f509\"; }\n\n.fa-person-military-pointing::before {\n content: \"\\e54a\"; }\n\n.fa-building-columns::before {\n content: \"\\f19c\"; }\n\n.fa-bank::before {\n content: \"\\f19c\"; }\n\n.fa-institution::before {\n content: \"\\f19c\"; }\n\n.fa-museum::before {\n content: \"\\f19c\"; }\n\n.fa-university::before {\n content: \"\\f19c\"; }\n\n.fa-circle-t::before {\n content: \"\\e124\"; }\n\n.fa-sack::before {\n content: \"\\f81c\"; }\n\n.fa-grid-2::before {\n content: \"\\e196\"; }\n\n.fa-camera-cctv::before {\n content: \"\\f8ac\"; }\n\n.fa-cctv::before {\n content: \"\\f8ac\"; }\n\n.fa-umbrella::before {\n content: \"\\f0e9\"; }\n\n.fa-trowel::before {\n content: \"\\e589\"; }\n\n.fa-horizontal-rule::before {\n content: \"\\f86c\"; }\n\n.fa-bed-front::before {\n content: \"\\f8f7\"; }\n\n.fa-bed-alt::before {\n content: \"\\f8f7\"; }\n\n.fa-d::before {\n content: \"\\44\"; }\n\n.fa-stapler::before {\n content: \"\\e5af\"; }\n\n.fa-masks-theater::before {\n content: \"\\f630\"; }\n\n.fa-theater-masks::before {\n content: \"\\f630\"; }\n\n.fa-file-gif::before {\n content: \"\\e645\"; }\n\n.fa-kip-sign::before {\n content: \"\\e1c4\"; }\n\n.fa-face-woozy::before {\n content: \"\\e3a2\"; }\n\n.fa-cloud-question::before {\n content: \"\\e492\"; }\n\n.fa-pineapple::before {\n content: \"\\e31f\"; }\n\n.fa-hand-point-left::before {\n content: \"\\f0a5\"; }\n\n.fa-gallery-thumbnails::before {\n content: \"\\e3aa\"; }\n\n.fa-circle-j::before {\n content: \"\\e112\"; }\n\n.fa-eyes::before {\n content: \"\\e367\"; }\n\n.fa-handshake-simple::before {\n content: \"\\f4c6\"; }\n\n.fa-handshake-alt::before {\n content: \"\\f4c6\"; }\n\n.fa-page-caret-up::before {\n content: \"\\e42a\"; }\n\n.fa-file-caret-up::before {\n content: \"\\e42a\"; }\n\n.fa-jet-fighter::before {\n content: \"\\f0fb\"; }\n\n.fa-fighter-jet::before {\n content: \"\\f0fb\"; }\n\n.fa-comet::before {\n content: \"\\e003\"; }\n\n.fa-square-share-nodes::before {\n content: \"\\f1e1\"; }\n\n.fa-share-alt-square::before {\n content: \"\\f1e1\"; }\n\n.fa-reflect-vertical::before {\n content: \"\\e665\"; }\n\n.fa-shield-keyhole::before {\n content: \"\\e248\"; }\n\n.fa-file-mp4::before {\n content: \"\\e649\"; }\n\n.fa-barcode::before {\n content: \"\\f02a\"; }\n\n.fa-bulldozer::before {\n content: \"\\e655\"; }\n\n.fa-plus-minus::before {\n content: \"\\e43c\"; }\n\n.fa-square-sliders-vertical::before {\n content: \"\\f3f2\"; }\n\n.fa-sliders-v-square::before {\n content: \"\\f3f2\"; }\n\n.fa-video::before {\n content: \"\\f03d\"; }\n\n.fa-video-camera::before {\n content: \"\\f03d\"; }\n\n.fa-message-middle::before {\n content: \"\\e1e1\"; }\n\n.fa-comment-middle-alt::before {\n content: \"\\e1e1\"; }\n\n.fa-graduation-cap::before {\n content: \"\\f19d\"; }\n\n.fa-mortar-board::before {\n content: \"\\f19d\"; }\n\n.fa-hand-holding-medical::before {\n content: \"\\e05c\"; }\n\n.fa-person-circle-check::before {\n content: \"\\e53e\"; }\n\n.fa-square-z::before {\n content: \"\\e288\"; }\n\n.fa-message-text::before {\n content: \"\\e1e6\"; }\n\n.fa-comment-alt-text::before {\n content: \"\\e1e6\"; }\n\n.fa-turn-up::before {\n content: \"\\f3bf\"; }\n\n.fa-level-up-alt::before {\n content: \"\\f3bf\"; }\n\n.sr-only,\n.fa-sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0; }\n\n.sr-only-focusable:not(:focus),\n.fa-sr-only-focusable:not(:focus) {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0; }\n",".tykon::before {\n font-family: tykon, sans-serif !important;\n font-style: normal !important;\n font-weight: normal !important;\n font-variant: normal !important;\n text-transform: none !important;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.tykon-arrowdown::before {\n content: \"\\61\";\n}\n\n.tykon-arrowleft::before {\n content: \"\\62\";\n}\n\n.tykon-arrowright::before {\n content: \"\\63\";\n}\n\n.tykon-arrowup::before {\n content: \"\\64\";\n}\n\n.tykon-doublearrowdown::before {\n content: \"\\65\";\n}\n\n.tykon-filter::before {\n content: \"\\66\";\n}\n\n.tykon-graph1::before {\n content: \"\\67\";\n}\n\n.tykon-graph2::before {\n content: \"\\68\";\n}\n\n.tykon-label::before {\n content: \"\\69\";\n}\n\n.tykon-reload::before {\n content: \"\\6a\";\n}\n\n.tykon-select::before {\n content: \"\\6b\";\n}\n\n.tykon-target::before {\n content: \"\\6c\";\n}\n\n.tykon-undo::before {\n content: \"\\6d\";\n}\n\n.tykon-deployment::before {\n content: \"\\6e\";\n}\n\n.tykon-team::before {\n content: \"\\6f\";\n}\n\n.tykon-overview::before {\n content: \"\\70\";\n}\n\n.tykon-loadout::before {\n content: \"\\71\";\n}\n\n.tykon-entitlement::before {\n content: \"\\72\";\n}\n\n.tykon-users::before {\n content: \"\\73\";\n}\n\n.tykon-arrowsort::before {\n content: \"\\57\";\n}\n\n.tykon-check::before {\n content: \"\\56\";\n}\n\n.tykon-copy::before {\n content: \"\\43\";\n}\n\n.tykon-delete::before {\n content: \"\\55\";\n}\n\n.tykon-download::before {\n content: \"\\4c\";\n}\n\n.tykon-draft::before {\n content: \"\\44\";\n}\n\n.tykon-edit::before {\n content: \"\\45\";\n}\n\n.tykon-graphq2::before {\n content: \"\\68\";\n}\n\n.tykon-help::before {\n content: \"\\3f\";\n}\n\n.tykon-link::before {\n content: \"\\52\";\n}\n\n.tykon-lock1::before {\n content: \"\\59\";\n}\n\n.tykon-lock2::before {\n content: \"\\5A\";\n}\n\n.tykon-notifications::before {\n content: \"\\4E\";\n}\n\n.tykon-plus::before {\n content: \"\\2B\";\n}\n\n.tykon-profile::before {\n content: \"\\50\";\n}\n\n.tykon-search::before {\n content: \"\\4F\";\n}\n\n.tykon-settings::before {\n content: \"\\53\";\n}\n\n.tykon-warning::before {\n content: \"\\21\";\n}\n\n.tykon-x::before {\n content: \"\\58\";\n}\n\n.tykon-waiting::before {\n content: \"\\54\";\n}\n\n.tykon-fullscreen::before {\n content: \"\\e000\";\n}\n\n.tykon-fullscreen-exit::before {\n content: \"\\e001\";\n}\n\n.tykon-time::before {\n content: \"\\74\";\n}\n","h1, h2, h3, h4, h5, h6 {\n margin-block-end: var(--headings-margin-bottom);\n font-family: var(--headings-font-family);\n font-weight: var(--headings-font-weight);\n color: var(--headings-color);\n}\n\nlabel {\n display: inline-block;\n max-inline-size: 100%;\n margin-block-end: 5px;\n color: var(--label-color);\n}\n\nh1 {\n font-size: var(--xxl-font-size);\n line-height: var(--xxl-line-height);\n}\n\nh2 {\n font-size: var(--xl-font-size);\n line-height: var(--xl-line-height);\n}\n\nh3 {\n font-size: var(--lg-font-size);\n line-height: var(--lg-line-height);\n}\n\nh4 {\n font-size: var(--md-font-size);\n line-height: var(--md-line-height);\n}\n\nh5 {\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n}\n\nh6 {\n font-size: var(--xs-font-size);\n line-height: var(--xs-line-height);\n}\n\np,\nlabel {\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n font-family: var(--font-family-regular);\n\n a {\n font-size: var(--sm-font-size);\n text-decoration: underline;\n }\n}\n\nstrong {\n font-family: var(--font-family-bold);\n}\n\na:not(.tyk-button) {\n cursor: pointer;\n color: var(--text-color);\n font-family: var(--font-family-regular);\n\n &.link--bold {\n font-family: var(--font-family-bold);\n }\n\n + a {\n margin-inline-start: 5px;\n }\n\n i {\n font-size: 9px\n }\n}\n\n.font-family-regular {\n font-family: var(--font-family-regular);\n}\n\n.font-family-medium {\n font-family: var(--font-family-medium);\n}\n\n.font-family-bold {\n font-family: var(--font-family-bold);\n}\n\n.heading-font-family-regular {\n font-family: var(--headings-font-family-regular);\n}\n\n.heading-font-family-medium {\n font-family: var(--headings-font-family-medium);\n}\n\n.heading-font-family-bold {\n font-family: var(--headings-font-family-bold);\n}\n\n.text--info {\n color: var(--color-info-base);\n}\n\n.text--medium {\n font-family: var(--font-family-medium);\n}\n\n.text--bold {\n font-family: var(--font-family-bold);\n}\n\n.text--uppercase {\n text-transform: uppercase;\n}\n\n.text--ellipsis {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.text--underline {\n text-decoration: underline;\n}\n\n.text--default-light {\n color: var(--color-default-light) !important;\n}\n\n.text--default {\n color: var(--color-default-base) !important;\n}\n\n.text--primary {\n color: var(--color-primary-base) !important;\n}\n\n.text--danger {\n color: var(--color-danger-base) !important;\n}\n\n.text--success {\n color: var(--color-success-base) !important;\n}\n\n.text--warning {\n color: var(--color-warning-base) !important;\n}\n\ntd.text-ellipsis {\n max-inline-size: 250px;\n}\n\n.section-title {\n font-family: var(--headings-font-family-bold);\n margin-block-end: 5px;\n\n .tyk-icon {\n margin-inline-start: 5px;\n }\n}\n\n.sub-section-title {\n margin-block-end: 5px;\n font-family: var(--font-family-medium);\n font-size: var(--md-font-size);\n line-height: var(--md-line-height);\n\n .tyk-icon {\n margin-inline-start: 5px;\n }\n}\n\n.section-group-title {\n margin-block-end: 5px;\n font-family: var(--font-family-bold);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n text-transform: uppercase;\n\n .tyk-icon {\n margin-inline-start: 5px;\n }\n}\n",".tyk-form-section__title {\n font-size: var(--base-font-size);\n margin-block: var(--spacing-xs) var(--spacing-base);\n margin-inline: 0;\n}\n\n.tyk-form-section__title--light {\n color: var(--color-background-dark);\n}\n\n.tyk-form-group {\n margin-block-end: var(--form-group-margin-bottom);\n\n &.has-error > .tyk-form-control__wrapper > .tyk-form-control,\n &.has-error > .tyk-form-control__wrapper > .tyk-input-group > .tyk-form-control,\n &.has-error .tyk-file-input__wrapper > .tyk-form-control {\n border: var(--error-border);\n border-inline-start: var(--error-border-left);\n outline: none;\n\n &:focus {\n border-inline-start: 2px solid var(--color-danger-dark);\n border-color: var(--color-danger-dark);\n outline: none;\n }\n }\n\n label {\n font-family: var(--font-family-medium);\n }\n}\n\n.tyk-form-group--inline {\n align-items: stretch;\n display: flex;\n flex-wrap: nowrap;\n\n .tyk-form-control__wrapper {\n flex: 1;\n }\n\n label {\n display: flex;\n white-space: nowrap;\n margin-inline-end: var(--spacing-md);\n margin-block-start: 14px;\n }\n\n input,\n select {\n display: flex;\n }\n\n .tyk-form-control__help-block {\n display: flex;\n margin-inline-start: auto;\n }\n}\n\n.tyk-form-group--default {\n color: var(--text-color);\n\n > .tyk-form-control__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-file-input__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-input-group > .tyk-form-control {\n border: var(--general-border-width) solid var(--form-default-color);\n color: var(--text-color);\n\n &[disabled] {\n border: var(--general-border-width) solid var(--form-default-color);\n background-color: var(--form-control-disabled-background-color);\n color: var(--form-control-disabled-color);\n cursor: not-allowed;\n\n + .tyk-input-group__addon {\n background-color: var(--form-control-disabled-background-color);\n }\n }\n\n &::placeholder {\n opacity: 0.8;\n }\n\n &:-ms-input-placeholder {\n opacity: 0.8;\n }\n }\n\n &.tyk-form-group--addon-left {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-default-color);\n border-inline-start: 2px solid var(--form-default-color);\n color: var(--text-color);\n }\n }\n\n &.tyk-form-group--addon-right {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-default-color);\n border-inline-end: 2px solid var(--form-default-color);\n color: var(--text-color);\n }\n }\n}\n\n.tyk-form-group--primary {\n color: var(--text-color);\n\n > .tyk-form-control__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-file-input__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-input-group > .tyk-form-control {\n border: var(--general-border-width) solid var(--form-primary-color);\n color: var(--text-color);\n\n &[disabled] {\n border: var(--general-border-width) solid var(--form-primary-color);\n background-color: var(--form-control-disabled-background-color);\n color: var(--form-control-disabled-color);\n cursor: not-allowed;\n\n + .tyk-input-group__addon {\n background-color: var(--form-control-disabled-background-color);\n }\n }\n\n &::placeholder {\n opacity: 0.8;\n }\n\n &:-ms-input-placeholder {\n opacity: 0.8;\n }\n }\n\n &.tyk-form-group--addon-left {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-primary-color);\n border-inline-start: 2px solid var(--form-primary-color);\n color: var(--form-primary-color);\n }\n }\n\n &.tyk-form-group--addon-right {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-primary-color);\n border-inline-end: 2px solid var(--form-primary-color);\n color: var(--form-primary-color);\n }\n }\n}\n\n.tyk-form-group--success {\n color: var(--text-color);\n\n > .tyk-form-control__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-file-input__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-input-group > .tyk-form-control {\n border: var(--general-border-width) solid var(--form-success-color);\n color: var(--text-color);\n\n &[disabled] {\n border: var(--general-border-width) solid var(--form-success-color);\n background-color: var(--form-control-disabled-background-color);\n color: var(--form-control-disabled-color);\n cursor: not-allowed;\n\n + .tyk-input-group__addon {\n background-color: var(--form-control-disabled-background-color);\n }\n }\n\n &::placeholder {\n opacity: 0.8;\n }\n\n &:-ms-input-placeholder {\n opacity: 0.8;\n }\n }\n\n &.tyk-form-group--addon-left {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-success-color);\n border-inline-start: 2px solid var(--form-success-color);\n color: var(--form-success-color);\n }\n }\n\n &.tyk-form-group--addon-right {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-success-color);\n border-inline-end: 2px solid var(--form-success-color);\n color: var(--form-success-color);\n }\n }\n}\n\n.tyk-form-group--rounded-corners {\n &.has-error > .tyk-form-control__wrapper > .tyk-form-control {\n border-inline-start: var(--error-border);\n\n &:focus {\n border-inline-start: var(--error-border);\n outline: none;\n }\n }\n\n .tyk-form-control {\n border-radius: var(--general-border-radius);\n }\n}\n\n.tyk-form-group--addon-right input {\n border-inline-end: 0 !important;\n padding-inline-end: 0;\n}\n\n.tyk-form-group--addon-left input {\n border-inline-start: 0 !important;\n padding-inline-start: 0;\n}\n\n.tyk-form-group--rounded-corners.tyk-form-group--addon-right {\n input {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n }\n\n .tyk-input-group__addon {\n background: var(--form-control-addon-background-color);\n border-start-end-radius: var(--general-border-radius);\n border-end-end-radius: var(--general-border-radius);\n color: var(--text-color);\n }\n}\n\n.tyk-form-group--rounded-corners.tyk-form-group--addon-left {\n input {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n border-inline-start: 0 !important;\n }\n\n .tyk-input-group__addon {\n background: var(--form-control-addon-background-color);\n border-start-start-radius: var(--general-border-radius);\n border-end-start-radius: var(--general-border-radius);\n color: var(--text-color);\n }\n}\n\n.tyk-form-control__error-message {\n font-family: var(--font-family-regular);\n font-size: var(--xs-font-size);\n line-height: var(--xs-line-height);\n margin-block-start: 5px;\n padding: var(--error-message-padding);\n position: relative;\n\n &::before {\n content: '!';\n background: var(--color-danger-base);\n color: white;\n font-family: var(--font-family-bold);\n border-radius: 8px;\n display: inline-block;\n margin-inline-end: 5px;\n padding-block: 0;\n padding-inline: 7px;\n }\n}\n\n.tyk-input-group {\n align-items: center;\n display: flex;\n outline: none;\n}\n\n.tyk-input-group__addon {\n align-items: center;\n background-color: var(--form-control-addon-background-color);\n border: var(--form-control-border);\n display: flex;\n block-size: var(--form-control-height);\n padding-block: var(--form-control-addon-padding-top) var(--form-control-addon-padding-bottom);\n padding-inline: var(--form-control-addon-padding-left) var(--form-control-addon-padding-right);\n\n &:first-child {\n border-inline-end: 0;\n }\n\n &:last-child {\n border-inline-start: 0;\n }\n}\n\n.tyk-form-control {\n font-family: var(--font-family-medium);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n border: var(--form-control-border);\n background-color: white;\n color: var(--text-color);\n display: block;\n block-size: var(--form-control-height);\n padding-block: var(--form-control-padding-top) var(--form-control-padding-bottom);\n padding-inline: var(--form-control-padding-left) var(--form-control-padding-right);\n transition: all .2s linear;\n inline-size: 100%;\n\n &[disabled] {\n background-color: var(--form-control-disabled-background-color);\n\n .tyk-input-group__addon {\n background-color: var(--form-control-disabled-background-color);\n }\n\n cursor: not-allowed;\n }\n\n &::placeholder {\n font-family: var(--form-control-placeholder-font-family);\n color: var(--form-control-placeholder-color);\n }\n\n &:focus,\n &:active {\n outline: none;\n border: var(--form-control-border-focus) !important;\n\n + .tyk-input-group__addon {\n border: var(--form-control-border-focus) !important;\n border-inline-start: none !important;\n }\n }\n}\n\n.tyk-form-control__help-block {\n color: var(--help-block-color);\n font-style: var(--help-block-font-style);\n font-family: var(--font-family-regular);\n font-size: var(--xs-font-size);\n line-height: var(--xs-line-height);\n padding: var(--help-block-padding);\n margin-block: 5px 0;\n margin-inline: 0;\n}\n\nselect {\n border-radius: 0;\n appearance: none;\n}\n\n.inline-form-wrapper {\n align-items: center;\n display: flex;\n inline-size: 100%;\n\n .inline-form {\n inline-size: 100%;\n }\n\n > button {\n margin-inline-start: 10px;\n margin-block-end: var(--spacing-base);\n }\n}\n\n.tyk-checkbox,\n.tyk-radio {\n margin-block: 10px;\n margin-inline: 0;\n\n label {\n font-family: var(--font-family-medium);\n }\n\n input {\n margin-block: 0;\n margin-inline: 0 5px;\n }\n}\n\n.tyk-checkbox--inline,\n.tyk-radio--inline {\n display: inline-flex;\n margin-inline-start: var(--spacing-base);\n\n &:first-child {\n margin-inline-start: 0;\n }\n}\n\n.tyk-inline-form {\n align-items: center;\n display: flex;\n flex-wrap: wrap;\n\n .tyk-form-group {\n flex: 1;\n margin-inline-start: var(--spacing-md);\n min-inline-size: 200px;\n\n &:first-child {\n margin-inline-start:0\n }\n }\n\n > .tyk-button {\n margin-inline-start: var(--spacing-md);\n margin-block-end: var(--spacing-base);\n }\n}\n",":root {\n --accordion-item-header-padding-y: var(--spacing-base);\n --accordion-item-header-padding-x: var(--spacing-base);\n --accordion-item-header-font-size: var(--base-font-size);\n --accordion-item-outside-trigger-width: var(--spacing-xxl);\n}\n\n.tyk-accordion__item {\n display: grid;\n}\n\n.tyk-accordion__item--trigger-position-left {\n grid-template-columns: var(--accordion-item-outside-trigger-width) auto;\n grid-template-areas:\n \"trigger header\"\n \"trigger content\";\n}\n\n.tyk-accordion__item--trigger-position-right {\n grid-template-columns: auto var(--accordion-item-outside-trigger-width);\n grid-template-areas:\n \"header trigger\"\n \"content trigger\";\n}\n\n.tyk-accordion__item--trigger-in-header {\n grid-template-columns: auto;\n grid-template-areas:\n \"header\"\n \"content\";\n}\n\n.tyk-accordion__trigger-wrapper {\n grid-area: trigger;\n display: flex;\n align-items: flex-start;\n justify-content: center;\n\n .tyk-icon {\n margin-inline: auto;\n }\n}\n\n.tyk-accordion__trigger,\n.tyk-accordion__item-header > button {\n background: none;\n border: none;\n cursor: pointer;\n display: flex;\n font-size: var(--accordion-item-header-font-size);\n outline: none;\n padding-inline: var(--accordion-item-header-padding-x);\n padding-block: var(--accordion-item-header-padding-y);\n inline-size: 100%;\n\n .tyk-icon {\n margin-inline-start: auto;\n }\n}\n\n.tyk-accordion__item-header {\n grid-area: header;\n}\n\n.tyk-accordion__trigger--disabled {\n color: var(--color-background-base);\n}\n\n.tyk-accordion__item-header.tyk-accordion__arrow-trigger {\n align-items: center;\n display: flex;\n\n > div {\n flex: 1;\n }\n\n > button {\n margin-inline-start: auto;\n inline-size: auto;\n }\n}\n\n.tyk-accordion__item-content {\n grid-area: content;\n}\n",":root {\n --button-font-family: var(--font-family-bold);\n --button-border-radius: var(--spacing-md);\n\n --padding-y-button-sm: 3px;\n --padding-x-button-sm: var(--spacing-base);\n --padding-y-button-md: 8px;\n --padding-x-button-md: 23px;\n --padding-y-button-lg: 13px;\n --padding-x-button-lg: 23px;\n\n --line-height-button-sm: var(--xs-line-height);\n --line-height-button-md: var(--md-line-height);\n --line-height-button-lg: var(--lg-line-height);\n\n --button-default-color: var(--color-default-base);\n --button-default-hover-color: var(--color-default-dark);\n --button-default-gradient-start-color: var(--color-default-base);\n --button-default-gradient-end-color: var(--color-default-dark);\n\n --button-primary-color: var(--color-default-base-light);\n --button-primary-hover-color: var(--color-default-dark);\n --button-primary-text-color: white;\n --button-primary-gradient-start-color: var(--color-primary-base);\n --button-primary-gradient-end-color: var(--color-primary-dark);\n\n --button-success-color: var(--color-success-base);\n --button-success-hover-color: var(--color-success-dark);\n --button-success-gradient-start-color: var(--color-success-base);\n --button-success-gradient-end-color: var(--color-success-dark);\n\n --button-danger-color: var(--color-danger-base);\n --button-danger-hover-color: var(--color-danger-dark);\n --button-danger-gradient-start-color: var(--color-danger-base);\n --button-danger-gradient-end-color: var(--color-danger-dark);\n\n --button-warning-color: var(--color-warning-base);\n --button-warning-font-color: white;\n --button-warning-gradient-start-color: var(--color-warning-base);\n --button-warning-gradient-end-color: var(--color-warning-light);\n\n --button-info-color: var(--color-info-base);\n --button-info-font-color: var(--text-color);\n --button-info-gradient-start-color: var(--color-info-base);\n --button-info-gradient-end-color: var(--color-info-light);\n\n --button-icon-only-background-hover: var(--color-background-light);\n}\n\n.tyk-button {\n --button-padding-y: var(--padding-y-button-md);\n --button-padding-x: var(--padding-x-button-md);\n --button-font-size: var(--sm-font-size);\n --button-line-height: var(--line-height-button-md);\n\n background-color: transparent;\n border: none;\n color: white;\n cursor: pointer;\n display: inline-block;\n font-family: var(--button-font-family);\n text-align: center;\n text-transform: uppercase;\n text-decoration: none;\n transition: all .2s linear;\n user-select: none;\n vertical-align: middle;\n white-space: nowrap;\n\n + .tyk-button,\n + .tyk-dropdown,\n + .tyk-toggle {\n margin-inline-start: var(--spacing-sm);\n }\n\n span + i {\n margin-inline-start: var(--spacing-sm);\n }\n\n i + span {\n margin-inline-start: var(--spacing-sm);\n }\n\n &.disabled {\n cursor: not-allowed;\n opacity: 0.7;\n }\n\n &:hover {\n color: white;\n text-decoration: none;\n }\n\n &:focus {\n outline: none;\n }\n}\n\n.tyk-button--white {\n --button-variant-background: white;\n --button-variant-border: transparent;\n --button-variant-color: var(--color-default-base);\n --button-variant-hover-background: var(--color-background-dark);\n --button-variant-hover-color: white;\n}\n\n.tyk-button--primary {\n --button-variant-background: var(--button-primary-color);\n --button-variant-border: var(--button-primary-color);\n --button-variant-color: var(--button-primary-text-color);\n --button-variant-hover-background: var(--button-primary-hover-color);\n --button-variant-hover-color: var(--button-primary-text-color);\n}\n\n.tyk-button--success {\n --button-variant-background: var(--button-success-color);\n --button-variant-border: var(--button-success-color);\n --button-variant-color: white;\n --button-variant-hover-background: var(--button-success-hover-color);\n --button-variant-hover-color: white;\n}\n\n.tyk-button--danger {\n --button-variant-background: var(--button-danger-color);\n --button-variant-border: var(--button-danger-color);\n --button-variant-color: white;\n --button-variant-hover-background: var(--button-danger-hover-color);\n --button-variant-hover-color: white;\n}\n\n.tyk-button--warning {\n --button-variant-background: var(--button-warning-color);\n --button-variant-border: transparent;\n --button-variant-color: var(--button-warning-font-color);\n --button-variant-hover-background: color-mix(in srgb, var(--button-variant-background), black 15%);\n --button-variant-hover-color: var(--button-warning-font-color);\n}\n\n.tyk-button--info {\n --button-variant-background: var(--button-info-color);\n --button-variant-border: var(--button-info-color);\n --button-variant-color: white;\n --button-variant-hover-background: color-mix(in srgb, var(--button-variant-background), black 15%);\n --button-variant-hover-color: white;\n}\n\n.tyk-button--default {\n --button-variant-background: var(--button-default-color);\n --button-variant-border: var(--button-default-color);\n --button-variant-color: white;\n --button-variant-hover-background: var(--button-default-hover-color);\n --button-variant-hover-color: white;\n}\n\n.tyk-button--white,\n.tyk-button--primary,\n.tyk-button--success,\n.tyk-button--danger,\n.tyk-button--warning,\n.tyk-button--info,\n.tyk-button--default {\n background-color: var(--button-variant-background);\n color: var(--button-variant-color);\n border: var(--general-border-width) solid var(--button-variant-border);\n\n &:hover {\n background-color: var(--button-variant-hover-background);\n color: var(--button-variant-hover-color);\n }\n}\n\n.tyk-button--primary-link {\n --button-variant-link-color: var(--button-primary-color);\n}\n\n.tyk-button--success-link {\n --button-variant-link-color: var(--button-success-color);\n}\n\n.tyk-button--danger-link {\n --button-variant-link-color: var(--button-danger-color);\n}\n\n.tyk-button--warning-link {\n --button-variant-link-color: var(--button-warning-color);\n}\n\n.tyk-button--info-link {\n --button-variant-link-color: var(--button-info-color);\n}\n\n.tyk-button--default-link {\n --button-variant-link-color: var(--text-color);\n}\n\n.tyk-button--primary-link,\n.tyk-button--success-link,\n.tyk-button--danger-link,\n.tyk-button--warning-link,\n.tyk-button--info-link,\n.tyk-button--default-link {\n background-color: transparent;\n border: var(--general-border-width) solid transparent;\n color: var(--button-variant-link-color);\n\n &:hover {\n background-color: transparent;\n color: var(--button-variant-link-color);\n border-color: var(--button-variant-link-color);\n text-decoration: underline;\n }\n}\n\n.tyk-button--primary-outline {\n --button-variant-outline-border: var(--button-primary-color);\n --button-variant-outline-color: var(--button-primary-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--success-outline {\n --button-variant-outline-border: var(--button-success-color);\n --button-variant-outline-color: var(--button-success-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--danger-outline {\n --button-variant-outline-border: var(--button-danger-color);\n --button-variant-outline-color: var(--button-danger-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--warning-outline {\n --button-variant-outline-border: var(--button-warning-color);\n --button-variant-outline-color: var(--button-warning-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--info-outline {\n --button-variant-outline-border: var(--button-info-color);\n --button-variant-outline-color: var(--button-info-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--default-outline {\n --button-variant-outline-border: var(--button-default-color);\n --button-variant-outline-color: var(--button-default-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--primary-outline,\n.tyk-button--success-outline,\n.tyk-button--danger-outline,\n.tyk-button--warning-outline,\n.tyk-button--info-outline,\n.tyk-button--default-outline {\n border: var(--general-border-width) solid var(--button-variant-outline-border);\n background-color: transparent;\n color: var(--button-variant-outline-color);\n\n &:hover {\n background-color: var(--button-variant-outline-border);\n color: var(--button-variant-outline-hover-color);\n }\n\n &.disabled {\n color: var(--button-variant-outline-border);\n\n &:hover {\n background-color: transparent;\n color: var(--button-variant-outline-border);\n }\n }\n}\n\n.tyk-button--primary-gradient {\n --button-variant-gradient-left-color: var(--button-primary-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-primary-gradient-end-color);\n}\n\n.tyk-button--success-gradient {\n --button-variant-gradient-left-color: var(--button-success-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-success-gradient-end-color);\n}\n\n.tyk-button--danger-gradient {\n --button-variant-gradient-left-color: var(--button-danger-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-danger-gradient-end-color);\n}\n\n.tyk-button--warning-gradient {\n --button-variant-gradient-left-color: var(--button-warning-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-warning-gradient-end-color);\n --button-variant-gradient-color: var(--button-warning-font-color);\n}\n\n.tyk-button--info-gradient {\n --button-variant-gradient-left-color: var(--button-info-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-info-gradient-end-color);\n --button-variant-gradient-color: var(--button-info-font-color);\n}\n\n.tyk-button--default-gradient {\n --button-variant-gradient-left-color: var(--button-default-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-default-gradient-end-color);\n}\n\n.tyk-button--primary-gradient,\n.tyk-button--success-gradient,\n.tyk-button--danger-gradient,\n.tyk-button--warning-gradient,\n.tyk-button--info-gradient,\n.tyk-button--default-gradient {\n border-image: linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color)) 0 round;\n background: transparent linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: var(--button-variant-gradient-color, white);\n\n &:hover,\n &:active,\n &:active:focus {\n border-image: linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color)) 0 round;\n background: transparent linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color));\n background-position: 100% 0;\n background-size: 200% auto;\n background-clip: border-box;\n\n &.disabled {\n border-image: linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color)) 0 round;\n background: transparent linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: var(--button-variant-gradient-color, white);\n }\n }\n}\n\n.tyk-button--sm {\n --button-padding-y: var(--padding-y-button-sm);\n --button-padding-x: var(--padding-x-button-sm);\n --button-font-size: var(--xs-font-size);\n --button-line-height: var(--xs-line-height);\n}\n\n.tyk-button--md {\n --button-padding-y: var(--padding-y-button-md);\n --button-padding-x: var(--padding-x-button-md);\n --button-font-size: var(--sm-font-size);\n --button-line-height: var(--sm-line-height);\n}\n\n.tyk-button--lg {\n --button-padding-y: var(--padding-y-button-lg);\n --button-padding-x: var(--padding-x-button-lg);\n --button-font-size: var(--md-font-size);\n --button-line-height: var(--line-height-button-md);\n}\n\n.tyk-button,\n.tyk-button--sm,\n.tyk-button--md,\n.tyk-button--lg {\n padding-block: var(--button-padding-y);\n padding-inline: var(--button-padding-x);\n font-size: var(--button-font-size);\n line-height: var(--button-line-height);\n border-radius: var(--button-border-radius);\n}\n\n.tyk-button--icon-only {\n border-radius: var(--general-border-radius);\n padding: 0;\n line-height: var(--spacing-md);\n inline-size: 24px;\n\n &:hover {\n border-radius: var(--general-border-radius);\n }\n}\n\n.tyk-button--fit {\n block-size: auto;\n inline-size: auto;\n line-height: normal;\n}\n\n.tyk-button--no-style {\n background: transparent;\n border: none;\n color: var(--text-color);\n\n &:hover {\n background: transparent;\n border: none;\n color: var(--text-color);\n }\n}\n",".tyk-button-group__wrapper {\n display: inline-block;\n position: relative;\n vertical-align: middle;\n\n label {\n font-family: var(--font-family-medium);\n }\n\n + .tyk-button,\n + .tyk-dropdown,\n + .tyk-toggle,\n + .tyk-button-group__wrapper {\n margin-inline-start: var(--spacing-sm);\n }\n\n .tyk-button-group {\n display: flex;\n\n > .tyk-button-group:not(:first-child) {\n > .tyk-button {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n }\n }\n\n > .tyk-button-group:not(:last-child) {\n > .tyk-button {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n }\n }\n\n .tyk-button {\n border-radius: 0;\n\n + .tyk-button {\n margin-inline-start: 0;\n }\n\n + .tyk-dropdown {\n margin-inline-start: 0;\n }\n\n &:first-child {\n border-start-start-radius: var(--spacing-md);\n border-end-start-radius: var(--spacing-md);\n }\n\n &:last-child {\n border-start-end-radius: var(--spacing-md);\n border-end-end-radius: var(--spacing-md);\n\n &.tyk-button--icon-only {\n inline-size: 42px;\n }\n }\n }\n }\n}\n",".tyk-card {\n background-color: white;\n border: 1px solid var(--color-background-base);\n border-radius: 8px;\n box-shadow: 2px 2px 3px var(--color-background-base);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.tyk-card__header {\n align-items: center;\n display: flex;\n font-family: var(--font-inter-regular);\n font-size: var(--sm-font-size);\n padding-block: var(--spacing-base) 0;\n padding-inline: var(--spacing-base);\n}\n\n.tyk-card__header-right {\n margin-inline-start: auto;\n}\n\n.tyk-card__title-group {\n display: grid;\n grid-template-columns: auto 1fr;\n align-items: center;\n\n .tyk-card__title-icon {\n align-items: center;\n display: flex;\n inline-size: 42px;\n block-size: 42px;\n justify-content: center;\n margin-inline-end: 10px;\n grid-row: span 2;\n }\n}\n\n.tyk-card__title {\n font-family: var(--font-inter-bold);\n font-size: var(--lg-font-size);\n display: -webkit-box;\n -webkit-box-orient: vertical;\n overflow: hidden;\n margin: 0;\n text-overflow: ellipsis;\n}\n\n.tyk-card__title--max-1-lines {\n -webkit-line-clamp: 1;\n}\n\n.tyk-card__title--max-2-lines {\n -webkit-line-clamp: 2;\n}\n\n.tyk-card__sub-title {\n font-family: var(--font-inter-medium);\n font-size: var(--xs-font-size);\n margin: 0;\n}\n\n.tyk-card__title-group + .tyk-card__summary,\n.tyk-card__sub-title + .tyk-card__summary,\n.tyk-card__title + .tyk-card__summary {\n margin-block-start: var(--spacing-sm);\n}\n\n.tyk-card__summary {\n color: var(--text-color);\n font-family: var(--font-inter-regular);\n font-size: var(--sm-font-size);\n display: -webkit-box;\n -webkit-box-orient: vertical;\n overflow: hidden;\n margin: 0;\n text-overflow: ellipsis;\n}\n\n.tyk-card__summary--max-1-lines {\n -webkit-line-clamp: 1;\n}\n\n.tyk-card__summary--max-2-lines {\n -webkit-line-clamp: 2;\n}\n\n.tyk-card__summary--max-3-lines {\n -webkit-line-clamp: 3;\n}\n\n.tyk-card__summary--max-4-lines {\n -webkit-line-clamp: 4;\n}\n\n.tyk-card__summary--max-5-lines {\n -webkit-line-clamp: 5;\n}\n\n.tyk-card__body {\n display: flex;\n flex: 1 0 auto;\n flex-grow: 1;\n padding: var(--spacing-base);\n}\n\n.tyk-card__body--align-top {\n align-items: flex-start;\n}\n\n.tyk-card__body--align-center {\n align-items: center;\n}\n\n.tyk-card__body--align-bottom {\n align-items: flex-end;\n}\n\n.tyk-card__footer {\n display: flex;\n justify-content: end;\n border-block-start: 1px solid var(--color-background-base);\n padding: var(--spacing-base);\n}",".tyk-chart__wrapper {\n position: relative;\n}\n\n.tyk-chart--no-data,\n.tyk-chart--loading-chart {\n filter: blur(var(--spacing-sm));\n}\n",".collapse-exit,\n.collapse-exit-active,\n.collapse-exit-done {\n block-size: 0;\n}\n\n.collapse-wrapper {\n overflow: hidden;\n transition: all .2s;\n}\n\n.collapse-horizontal-exit,\n.collapse-horizontal-exit-active,\n.collapse-horizontal-exit-done {\n inline-size: 0;\n}\n\n.collapse-horizontal-enter,\n.collapse-horizontal-enter-active,\n.collapse-horizontal-enter-done {\n inline-size: 100%;\n}\n",".tyk-copy-to-clipboard {\n position: absolute;\n inset-inline-start: -1000px;\n inset-block-start: -1000px;\n}",":root {\n --fixed-wrapper-top: 0;\n --fixed-wrapper-left: 0;\n --fixed-wrapper-right: 0;\n}\n\n.tyk-fixed-wrapper {\n inset-inline-start: var(--fixed-wrapper-left);\n inset-inline-end: var(--fixed-wrapper-right);\n position: sticky;\n inset-block-start: var(--fixed-wrapper-top);\n z-index: 8;\n}\n\n.tyk-fixed-wrapper--scrolled {\n box-shadow: 2px 2px 5px rgba(0 0 0 / 10%);\n}\n",".floating-container {\n position: fixed;\n inset-block-start: -9999px;\n overflow: auto;\n z-index: var(--modal-z-index, 1080);\n}\n\n.floating-container__content-wrapper {\n block-size: 100%;\n}",".tyk-icon {\n + .tyk-icon {\n margin-inline-start: var(--spacing-sm);\n }\n}\n",".tyk-infinite-scroller {\n block-size: 100%;\n overflow: hidden;\n position: relative;\n\n .loading {\n background: linear-gradient(180deg, rgba(255 255 255 / 0%), rgba(255 255 255 / 100%));\n justify-content: center;\n display: flex;\n inset-inline: 0;\n inset-block-start: auto;\n inset-block-end: 0;\n padding-block: var(--spacing-base);\n padding-inline: 0;\n inline-size: 100%;\n }\n}\n\n.tyk-infinite-scroller__wrapper {\n block-size: 100%;\n overflow-y: auto;\n}\n",".tyk-info-note {\n border-radius: 0;\n position: relative;\n\n p + p {\n margin-block-start: var(--spacing-base);\n }\n\n &::after {\n content: '';\n border-style: solid;\n border-width: 0 var(--spacing-md) var(--spacing-md) 0;\n border-color: transparent var(--color-info-base) transparent transparent;\n block-size: 0;\n position: absolute;\n inset-inline-end: 0;\n inset-block-start: 0;\n inline-size: 0;\n }\n\n .tyk-message {\n border-radius: 0;\n padding-block: 40px;\n }\n}\n",".tyk-loading__wrapper {\n background: rgba(255 255 255 / 60%);\n position: absolute;\n inset: 0;\n z-index: 99;\n}\n\n.loader-wrapper {\n min-block-size: 100px;\n position: relative;\n}\n\n.loading {\n position: absolute;\n inset-block-start: calc(50% - var(--spacing-sm));\n inset-inline-start: 50%;\n\n &.relative {\n inset-inline-start: auto;\n padding: 25px;\n position: relative;\n text-align: center;\n inset-block-start: auto;\n inline-size: 100%;\n }\n}\n\n.loading-bar {\n display: inline-block;\n inline-size: 4px;\n block-size: var(--spacing-md);\n border-radius: 4px;\n animation: loading 1s ease-in-out infinite;\n margin-inline-start: 2px;\n}\n\n.loading-bar:nth-child(1) {\n animation-delay: 0;\n background-color: var(--color-success-base);\n opacity: 1;\n}\n\n.loading-bar:nth-child(2) {\n animation-delay: 0.09s;\n background-color: var(--color-success-base);\n opacity: 0.80;\n}\n\n.loading-bar:nth-child(3) {\n animation-delay: .18s;\n background-color: var(--color-success-base);\n opacity: 0.60;\n}\n\n.loading-bar:nth-child(4) {\n animation-delay: .27s;\n background-color: var(--color-success-base);\n opacity: 0.40;\n}\n\n@keyframes loading {\n 0% {\n transform: scale(1);\n }\n\n 20% {\n transform: scale(1, 2.2);\n }\n\n 40% {\n transform: scale(1);\n }\n}\n",".tyk-list {\n border: var(--general-border-width) solid var(--color-default-light);\n border-radius: var(--general-border-radius);\n font-size: var(--sm-font-size);\n list-style-type: none;\n margin: 0;\n max-block-size: 191px;\n padding: 0;\n overflow: auto;\n\n li {\n border-block-end: 1px solid var(--color-default-light);\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-md);\n font-family: var(--font-family-medium);\n\n &.tyk-list__item--selected {\n background-color: var(--color-default-light);\n }\n\n &:last-child {\n border: none;\n }\n }\n}\n\n.tyk-list--with-inline-label {\n display: flex;\n\n > label {\n margin-inline-end: var(--spacing-md);\n }\n}\n\n.tyk-list--default {\n border-color: var(--color-default-light);\n}\n\n.tyk-list--primary {\n border-color: var(--color-primary-base);\n\n li {\n border-color: var(--color-primary-light);\n color: var(--text-color);\n\n &.tyk-list__item--selected {\n background-color: var(--color-primary-light);\n }\n }\n}\n\n.tyk-list--primary-light {\n border-color: var(--color-primary-light);\n\n li {\n border-color: var(--color-primary-light);\n color: var(--text-color);\n\n &.tyk-list__item--selected {\n background-color: var(--color-primary-light);\n }\n }\n}\n\n.tyk-list--success {\n border-color: var(--color-success-base);\n color: var(--color-success-base);\n\n li {\n border-color: var(--color-success-base);\n\n &.tyk-list__item--selected {\n background-color: var(--color-success-light);\n }\n }\n}\n\n.tyk-list--danger {\n border-color: var(--color-danger-base);\n color: var(--text-color);\n\n li {\n border-color: var(--color-danger-light);\n\n &.tyk-list__item--selected {\n background-color: var(--color-danger-light);\n }\n }\n}\n\nul.tyk-list--inline {\n align-items: center;\n display: flex;\n\n li {\n padding-block: 0;\n padding-inline: var(--spacing-sm);\n }\n\n &.tyk-list--with-separator {\n li:not(:first-child) {\n border-inline-start: 1px solid var(--color-default-base);\n }\n }\n}\n",":root {\n --tyk-message-padding-top: var(--spacing-md);\n --tyk-message-padding-right: var(--spacing-md);\n --tyk-message-padding-bottom: var(--spacing-md);\n --tyk-message-padding-left: var(--spacing-md);\n --tyk-message-border-radius: var(--general-border-radius);\n --tyk-message-default-background: var(--color-primary-light);\n --tyk-message-default-border: var(--color-default-dark);\n --tyk-message-default-text-color: var(--color-default-dark);\n --tyk-message-info-background: var(--color-info-light);\n --tyk-message-info-border: var(--color-info-base);\n --tyk-message-info-text-color: var(--color-info-base);\n --tyk-message-success-background: var(--color-success-light);\n --tyk-message-success-border: var(--color-success-dark);\n --tyk-message-success-text-color: var(--color-success-dark);\n --tyk-message-warning-background: var(--color-warning-light);\n --tyk-message-warning-border: var(--color-warning-base);\n --tyk-message-warning-text-color: var(--color-warning-dark);\n --tyk-message-danger-background: var(--color-danger-extra-light);\n --tyk-message-danger-border: var(--color-danger-base);\n --tyk-message-danger-text-color: var(--color-danger-dark);\n}\n\n.tyk-message {\n display: flex;\n align-items: center;\n border-radius: var(--tyk-message-border-radius);\n margin-block-end: var(--spacing-md);\n padding-block: var(--tyk-message-padding-top) var(--tyk-message-padding-bottom);\n padding-inline: var(--tyk-message-padding-left) var(--tyk-message-padding-right);\n\n > .tyk-icon:first-child {\n inline-size: 32px;\n block-size: 32px;\n flex-shrink: 0;\n border-radius: 50%;\n color: white;\n\n &::before {\n display: flex;\n inline-size: 100%;\n block-size: 100%;\n align-items: center;\n justify-content: center;\n }\n }\n\n > .tyk-icon:last-child {\n cursor: pointer;\n }\n\n /* &--default {\n @include message-variant(\n $tyk-message-default-background,\n $tyk-message-default-border,\n $tyk-message-default-text-color\n );\n\n > .tyk-icon:first-child {\n transform: rotate(180deg);\n }\n }\n\n &--info {\n @include message-variant(\n $tyk-message-info-background,\n $tyk-message-info-border,\n $tyk-message-info-text-color\n );\n }\n\n &--success {\n @include message-variant(\n $tyk-message-success-background,\n $tyk-message-success-border,\n $tyk-message-success-text-color\n );\n }\n\n &--warning {\n @include message-variant(\n $tyk-message-warning-background,\n $tyk-message-warning-border,\n $tyk-message-warning-text-color\n );\n }\n\n &--danger {\n @include message-variant(\n $tyk-message-danger-background,\n $tyk-message-danger-border,\n $tyk-message-danger-text-color\n );\n } */\n}\n\n.tyk-message__content {\n flex-grow: 1;\n margin-inline: var(--spacing-md);\n}\n\n.tyk-message--default {\n --message-variant-background: var(--tyk-message-default-background);\n --message-variant-border: var(--tyk-message-default-border);\n --message-variant-color: var(--tyk-message-default-text-color);\n\n > .tyk-icon:first-child {\n transform: rotate(180deg);\n }\n}\n\n.tyk-message--info {\n --message-variant-background: var(--tyk-message-info-background);\n --message-variant-border: var(--tyk-message-info-border);\n --message-variant-color: var(--tyk-message-info-text-color);\n}\n\n.tyk-message--success {\n --message-variant-background: var(--tyk-message-success-background);\n --message-variant-border: var(--tyk-message-success-border);\n --message-variant-color: var(--tyk-message-success-text-color);\n}\n\n.tyk-message--warning {\n --message-variant-background: var(--tyk-message-warning-background);\n --message-variant-border: var(--tyk-message-warning-border);\n --message-variant-color: var(--tyk-message-warning-text-color);\n}\n\n.tyk-message--danger {\n --message-variant-background: var(--tyk-message-danger-background);\n --message-variant-border: var(--tyk-message-danger-border);\n --message-variant-color: var(--tyk-message-danger-text-color);\n}\n\n.tyk-message--default,\n.tyk-message--info,\n.tyk-message--success,\n.tyk-message--warning,\n.tyk-message--danger {\n background-color: var(--message-variant-background);\n border: var(--general-border-width) solid var(--message-variant-border);\n color: var(--message-variant-color);\n\n & > .tyk-icon:first-child {\n background-color: var(--message-variant-border);\n }\n}\n",":root {\n --tyk-modal-body-padding: var(--spacing-lg);\n --tyk-modal-footer-padding: var(--spacing-lg);\n\n /* Deprecated Modal.Header and Modal.Title */\n --tyk-modal-header-padding: var(--spacing-lg);\n --tyk-modal-borders-color: var(--color-background-light);\n\n /* End of deprecated styles */\n}\n\n.tyk-modal {\n --theme-header-height: 15px;\n --theme-header-icon-size: 65px;\n\n align-items: center;\n pointer-events: none;\n position: fixed;\n inset: 0;\n z-index: -1;\n\n .tyk-panel {\n border: var(--general-border-width) solid var(--color-background-dark);\n box-shadow: none;\n }\n\n .tyk-modal__dialog {\n opacity: 0;\n transition: all .2s ease;\n }\n\n &.opened {\n display: flex;\n z-index: var(--modal-z-index);\n\n .tyk-modal__dialog {\n display: flex;\n max-block-size: 92vh;\n opacity: 1;\n pointer-events: all;\n }\n }\n\n &.appear-enter-done {\n .tyk-modal__dialog {\n opacity: 1;\n margin-block-start: 0;\n }\n }\n}\n\n.tyk-modal__theme-header {\n position: absolute;\n inset-block-start: -1px;\n inset-inline: 0;\n block-size: var(--theme-header-height);\n border-start-start-radius: var(--general-border-radius);\n border-start-end-radius: var(--general-border-radius);\n\n .tyk-icon {\n position: absolute;\n inset-inline-start: calc(50% - var(--theme-header-icon-size) / 2);\n inset-block-start: calc((var(--theme-header-icon-size) - var(--theme-header-height)) / -2);\n inline-size: var(--theme-header-icon-size);\n block-size: var(--theme-header-icon-size);\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: var(--xxl-font-size);\n color: white;\n }\n}\n\n.tyk-modal--theme-success {\n .tyk-modal__theme-header {\n background-color: var(--color-success-base);\n\n .tyk-icon {\n background-color: var(--color-success-base);\n }\n }\n}\n\n.tyk-modal--theme-warning {\n .tyk-modal__theme-header {\n background-color: var(--color-warning-base);\n\n .tyk-icon {\n background-color: var(--color-warning-base);\n }\n }\n}\n\n.tyk-modal--theme-danger {\n .tyk-modal__theme-header {\n background-color: var(--color-danger-base);\n\n .tyk-icon {\n background-color: var(--color-danger-base);\n }\n }\n}\n\n.tyk-modal__dialog {\n opacity: 0;\n margin-inline: auto;\n margin-block-start: -5%;\n margin-block-end: 0;\n pointer-events: all;\n transition: all .2s linear;\n inline-size: 85%;\n}\n\n@media only screen and (width >= 768px) {\n .tyk-modal__dialog {\n inline-size: 600px;\n\n &.tyk-modal--lg {\n inline-size: 800px;\n }\n }\n}\n\n.tyk-modal__content {\n background: white;\n border-radius: var(--general-border-radius);\n display: flex;\n flex-direction: column;\n position: relative;\n inline-size: 100%;\n}\n\n.tyk-modal__body {\n flex: 1;\n overflow: auto;\n padding-block-start: calc(var(--tyk-modal-body-padding) + (var(--theme-header-icon-size) - var(--theme-header-height)) / 2);\n padding-block-end: var(--tyk-modal-body-padding);\n padding-inline: var(--tyk-modal-body-padding);\n\n &.no-padding {\n padding: 0;\n }\n}\n\n.tyk-modal__footer {\n align-items: center;\n display: flex;\n justify-content: flex-end;\n padding: var(--tyk-modal-footer-padding);\n\n >:not(:first-child) {\n margin-inline-start: var(--spacing-xs);\n }\n}\n\n.tyk-modal__backdrop {\n background-color: var(--color-default-dark);\n border: none;\n display: none;\n position: fixed;\n inset: 0;\n inline-size: 100%;\n z-index: var(--modal-z-index) - 1;\n\n &.opened {\n display: block;\n opacity: 0.5;\n transition: opacity .2s ease;\n }\n\n &.fade-enter-done {\n opacity: 0.5;\n z-index: 9;\n }\n}\n\n/* Deprecated Modal.Header and Modal.Title */\n.tyk-modal__header {\n padding-block-start: calc(var(--tyk-modal-header-padding) + (var(--theme-header-icon-size) - var(--theme-header-height)) / 2);\n padding-block-end: var(--tyk-modal-header-padding);\n padding-inline: var(--tyk-modal-header-padding);\n align-items: center;\n border-block-end: 1px solid var(--tyk-modal-borders-color);\n display: flex;\n inline-size: 100%;\n\n .tyk-modal--theme-none & {\n padding-block-start: var(--tyk-modal-header-padding);\n }\n\n button {\n margin-inline-start: auto;\n padding-block: 0;\n padding-inline: 5px;\n }\n\n + .tyk-modal__body {\n padding-block-start: var(--tyk-modal-body-padding);\n }\n}\n\n.tyk-modal__title {\n font-family: var(--font-family-medium);\n font-weight: 500;\n margin: 0;\n inline-size: 100%;\n}\n\n/* End of deprecated styles */\n",":root {\n --navigation-background-color: white;\n --navigation-item-padding-y: var(--spacing-sm);\n --navigation-item-padding-x: var(--spacing-md);\n --navigation-item-background-color: white;\n --navigation-item-color: var(--text-color);\n --navigation-item-hover-background-color: var(--color-primary-base);\n --navigation-item-hover-color: white;\n --navigation-item-active-background-color: var(--color-primary-dark);\n --navigation-item-active-color: white;\n --navigation-padding: 0;\n}\n\n.tyk-navigation {\n background-color: var(--navigation-background-color);\n block-size: 100%;\n overflow: auto;\n padding: var(--navigation-padding);\n inline-size: 100%;\n\n .tyk-navigation-item {\n inline-size: 100%;\n\n a {\n color: var(--navigation-item-color);\n display: flex;\n padding-block: var(--navigation-item-padding-y);\n padding-inline: var(--navigation-item-padding-x);\n text-decoration: none;\n transition: all .2s ease;\n\n &:hover {\n background-color: var(--navigation-item-hover-background-color);\n color: var(--navigation-item-hover-color);\n }\n\n &.active {\n background-color: var(--navigation-item-active-background-color);\n color: var(--navigation-item-active-color);\n }\n }\n }\n}\n",":root {\n --nav-bar-background-color: white;\n --nav-bar-text-color: var(--color-default-base);\n --nav-bar-padding-left: 265px;\n --nav-bar-animate-left: 245px;\n --nav-bar-top-padding: var(--spacing-sm);\n --nav-bar-bottom-padding: 0;\n --nav-bar-left-padding: var(--spacing-md);\n --nav-bar-right-padding: var(--spacing-md);\n --nav-bar-padding: 0 var(--nav-bar-right-padding) 0 var(--nav-bar-left-padding);\n --nav-bar-top: 51px;\n --nav-bar-header-font-size: var(--xxl-font-size);\n --nav-bar-header-font-family: var(--headings-font-family-bold);\n --nav-bar-header-line-height: var(--xxl-line-height);\n --nav-bar-height: 92px;\n --nav-bar-font-family: var(--font-family-regular);\n}\n\n.tyk-nav-bar {\n align-items: center;\n border: none;\n background-color: var(--nav-bar-background-color);\n font-family: var(--nav-bar-font-family);\n color: var(--nav-bar-text-color);\n margin: 0;\n padding: var(--nav-bar-padding);\n inline-size: 100%;\n z-index: 8;\n transition: all .2s linear;\n\n &.tyk-nav-bar__with-tabs .tyk-tabs--default > ul li button {\n padding-block-start: 0;\n }\n\n @media screen and (width <= 1024px) {\n padding-inline-start: var(--spacing-md);\n\n .menu-opened & {\n transform: translate(var(--nav-bar-animate-left));\n }\n }\n\n h1 {\n color: var(--nav-bar-text-color);\n }\n\n h4 {\n margin: 0;\n }\n\n .tyk-nav-bar__wrapper {\n align-items: center;\n padding-block-end: var(--nav-bar-bottom-padding);\n display: flex;\n flex-wrap: wrap;\n block-size: var(--nav-bar-height);\n\n &.tyk-nav-bar--align-top {\n align-items: flex-start;\n }\n\n @media screen and (width <= 1024px) {\n padding-inline-start: 0;\n }\n\n h1 {\n font-size: var(--nav-bar-header-font-size);\n font-family: var(--nav-bar-header-font-family);\n line-height: var(--nav-bar-header-line-height);\n margin: 0;\n padding-inline-end: var(--spacing-sm);\n }\n\n h4 {\n padding-inline-end: var(--spacing-sm);\n }\n\n .tyk-nav-bar__container {\n align-items: center;\n display: flex;\n flex-grow: 1;\n justify-content: space-between;\n }\n\n .tyk-nav-bar__left {\n flex-grow: 1;\n }\n\n .tyk-nav-bar__right {\n margin-inline-start: auto;\n }\n }\n}\n\n.tyk-nav-bar__pre {\n align-self: flex-end;\n color: var(--text-color);\n flex-basis: 100%;\n\n a {\n font-family: var(--font-family-bold);\n font-size: var(--xs-font-size);\n line-height: var(--xs-line-height);\n color: var(--text-color);\n }\n}\n",":root {\n --padding-y-panel-header: var(--spacing-sm);\n --padding-x-panel-header: 25px;\n --padding-y-blank-panel-header: var(--spacing-md);\n --padding-panel-body: 25px;\n --padding-x-right-panel-collapsable: 48px;\n --padding-x-left-panel-collapsable: var(--padding-x-right-panel-collapsable);\n --panel-border-radius: 0;\n --panel-default-border-bottom-color: var(--color-background-base);\n --panel-header-font-size: var(--base-font-size);\n --panel-header-font-family: var(--font-family-medium);\n --panel-primary-header-color: var(--color-primary-base);\n --panel-primary-body-color: white;\n --panel-primary-header-text-color: white;\n --panel-primary-body-text-color: var(--text-color);\n --panel-primary-label-color: var(--text-color);\n --panel-primary-border-color: none;\n}\n\n.tyk-panel {\n background: white;\n border-radius: var(--panel-border-radius);\n margin-block-end: 20px;\n font-family: var(--font-family-medium);\n position: relative;\n\n &.has-error,\n & &.has-error {\n border: var(--general-border-width) solid var(--color-danger-base);\n }\n\n .tyk-panel {\n border: var(--general-border-width) solid var(--color-default-light);\n box-shadow: none;\n }\n\n .tyk-panel__header {\n border: none;\n font-size: var(--lg-font-size);\n line-height: var(--lg-line-height);\n }\n}\n\n.tyk-panel--blank {\n &.tyk-panel--collapsed {\n margin-block-end: 20px;\n\n .tyk-panel__header {\n margin-block-end: 0;\n }\n }\n\n .tyk-panel__header {\n margin-block-end: -20px;\n padding-block: var(--padding-y-blank-panel-header);\n padding-inline: var(--padding-x-panel-header);\n background-color: white;\n color: var(--color-default-base);\n }\n}\n\n.tyk-panel--primary {\n background-color: transparent;\n\n .tyk-panel__header {\n background-color: var(--panel-primary-header-color);\n color: var(--panel-primary-header-text-color);\n border: var(--panel-primary-border-color);\n }\n\n .tyk-panel__body {\n background-color: var(--panel-primary-body-color);\n color: var(--panel-primary-body-text-color);\n }\n\n & .tyk-form-group {\n label {\n color: var(--panel-primary-label-color);\n }\n }\n\n .tyk-toggle {\n .tyk-toggle__label {\n color: var(--panel-primary-label-color);\n }\n }\n}\n\n.tyk-panel--success {\n .tyk-panel__header {\n background-color: var(--color-success-base);\n color: white;\n }\n}\n\n.tyk-panel--danger {\n .tyk-panel__header {\n background-color: var(--color-danger-base);\n color: white;\n }\n}\n\n.tyk-panel--warning {\n .tyk-panel__header {\n background-color: var(--color-warning-base);\n color: white;\n }\n}\n\n.tyk-panel__body {\n background-color: white;\n border-radius: var(--panel-border-radius);\n font-family: var(--font-family-regular);\n padding: var(--padding-panel-body);\n position: relative;\n transition: block-size .2s;\n\n & ~ .tyk-panel__header {\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n\n &.no-padding {\n padding: 0;\n }\n}\n\n.tyk-panel__header {\n display: flex;\n align-items: center;\n border-block-end: 1px solid var(--panel-default-border-bottom-color);\n border-radius: var(--panel-border-radius);\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n font-family: var(--panel-header-font-family);\n overflow: hidden;\n padding-block: var(--padding-y-panel-header);\n padding-inline: var(--padding-x-panel-header);\n position: relative;\n\n > .tyk-icon,\n > .tyk-tooltip__wrapper {\n margin-inline-start: 5px;\n }\n\n .tyk-panel--collapsed & {\n border-end-start-radius: var(--panel-border-radius);\n border-end-end-radius: var(--panel-border-radius);\n }\n\n & ~ .tyk-panel__body {\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n }\n\n & h3 {\n margin: 0;\n }\n\n ng-transclude {\n vertical-align: middle;\n }\n\n &.collapsable {\n cursor: pointer;\n\n .tyk-panel__icon-collapse--right & {\n padding-inline-end: var(--padding-x-right-panel-collapsable);\n }\n\n .tyk-panel__icon-collapse--left & {\n padding-inline-start: var(--padding-x-left-panel-collapsable);\n }\n }\n\n .collapsable__arrow-right {\n font-size: var(--sm-font-size);\n position: absolute;\n padding: var(--spacing-sm);\n inset-inline-end: var(--spacing-sm);\n inset-block-start: calc(50% - 21px);\n }\n\n .collapsable__arrow-left {\n font-size: var(--sm-font-size);\n position: absolute;\n padding-block: 8px var(--spacing-sm);\n padding-inline: 20px 0;\n inset-inline-start: 0;\n inset-block-start: calc(50% - 21px);\n }\n}\n\n.tyk-panel__footer {\n align-items: center;\n border-block-start: 1px solid var(--color-background-light);\n display: flex;\n justify-content: flex-end;\n padding: var(--spacing-lg);\n\n >:not(:first-child) {\n margin-inline-start: 5px;\n }\n}\n",".tyk-pill {\n align-items: center;\n border-radius: var(--general-border-radius);\n display: inline-flex;\n font-size: var(--xs-font-size);\n line-height: 19px;\n margin: var(--pill-margin);\n padding-block: 6px;\n padding-inline: var(--spacing-base);\n font-family: var(--font-family-medium);\n\n i {\n font-size: var(--xs-font-size);\n }\n\n + .tyk-pill {\n margin-inline-end: var(--spacing-sm);\n }\n\n button + span {\n margin-inline-start: var(--spacing-sm);\n }\n\n span + button {\n margin-inline-start: var(--spacing-sm);\n }\n\n &:first-child {\n margin-inline-end: var(--spacing-sm);\n }\n\n &:last-child {\n margin-inline-end: 0;\n }\n}\n\n.tyk-pill--square {\n border-radius: 8px;\n}\n\n.tyk-pill--default {\n background-color: var(--default-pill-background-color);\n color: var(--default-pill-color);\n\n i {\n color: var(--default-pill-color);\n }\n}\n\n.tyk-pill--default-outline {\n box-shadow: var(--default-outline-pill-box-shadow);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n\n.tyk-pill--primary {\n background-color: var(--color-primary-base);\n color: white;\n\n i {\n color: var(--default-pill-color);\n }\n}\n\n.tyk-pill--primary-outline {\n box-shadow: inset 0 0 0 2px var(--color-primary-base);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n\n.tyk-pill--success {\n background-color: var(--color-success-base);\n color: white;\n\n i {\n color: white;\n }\n}\n\n.tyk-pill--success-outline {\n box-shadow: inset 0 0 0 2px var(--color-success-base);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n\n.tyk-pill--danger {\n background-color: var(--color-danger-base);\n color: white;\n\n i {\n color: white;\n }\n}\n\n.tyk-pill--danger-outline {\n box-shadow: inset 0 0 0 2px var(--color-danger-base);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n\n.tyk-pill--warning {\n background-color: var(--color-warning-base);\n color: white;\n\n i {\n color: white;\n }\n}\n\n.tyk-pill--warning-outline {\n box-shadow: inset 0 0 0 2px var(--color-warning-base);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n\n.tyk-pill--info {\n background-color: var(--color-info-base);\n color: white;\n\n i {\n color: white;\n }\n}\n\n.tyk-pill--info-outline {\n box-shadow: inset 0 0 0 2px var(--color-info-base);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n",".tyk-ui-reveal-wrapper {\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n align-items: stretch;\n inline-size: 100%;\n block-size: 100%;\n z-index: 1000;\n position: absolute;\n inset-block-end: 0;\n inset-inline-start: 0;\n pointer-events: none;\n}\n\n.tyk-ui-reveal-wrapper__panel {\n max-block-size: calc(100% - 2rem);\n background-color: white;\n padding: 0;\n margin: 0;\n display: flex;\n flex-direction: column;\n pointer-events: all;\n flex-shrink: 0;\n overflow: auto;\n}\n\n.tyk-ui-reveal-wrapper__hole {\n flex-grow: 1;\n opacity: 0;\n inline-size: 100%;\n background-color: green;\n -webkit-user-select: none;\n user-select: none;\n pointer-events: none;\n z-index: -1;\n}\n\n.tyk-ui-reveal-wrapper__gutter {\n block-size: 2rem;\n inline-size: 100%;\n cursor: row-resize;\n display: flex;\n background-color: var(--color-primary-base);\n z-index: 2;\n pointer-events: all;\n justify-content: space-between;\n align-items: stretch;\n position: relative;\n box-shadow: 0 5px 10px rgba(0 0 0 / 30%);\n}\n\n.tyk-ui-reveal-wrapper__gutter__headerleft,\n.tyk-ui-reveal-wrapper__gutter__headerright {\n display: flex;\n align-items: center;\n flex: 1;\n}\n\n.tyk-ui-reveal-wrapper__gutter__headerleft {\n justify-content: flex-start;\n}\n\n.tyk-ui-reveal-wrapper__gutter__headerright {\n justify-content: flex-end;\n}\n\n.tyk-ui-reveal-wrapper__gutter__logo {\n inline-size: 1rem;\n block-size: 1rem;\n -webkit-user-select: none;\n user-select: none;\n pointer-events: none;\n padding: 0.2rem;\n z-index: 2;\n background-image: url('./images/drag.svg');\n align-self: center;\n\n &:hover {\n border: dashed;\n }\n}\n",":root {\n --sidebar-background-color: white;\n --sidebar-top: 58px;\n --sidebar-height: calc(100vh - 58px);\n --sidebar-width: 280px;\n --sidebar-padding: 0;\n}\n\n.tyk-sidebar {\n background-color: var(--sidebar-background-color);\n block-size: var(--sidebar-height);\n flex: 0 0 var(--sidebar-width);\n padding: var(--sidebar-padding);\n position: sticky;\n overflow: auto;\n inset-block-start: var(--sidebar-top);\n}\n",":root {\n --table-th-padding: var(--spacing-base) var(--spacing-sm);\n --table-td-padding-y: var(--spacing-xs);\n --table-td-padding-x: var(--spacing-sm);\n --table-first-last-padding: 20px;\n --table-pagination-padding: var(--spacing-md) 25px;\n}\n\n.tyk-table {\n border-collapse: collapse;\n border-spacing: 0;\n background-color: white;\n border-radius: var(--general-border-radius);\n inline-size: 100%;\n\n > thead th {\n border-inline-end: 1px solid var(--color-default-light);\n color: var(--text-color);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n font-family: var(--font-family-bold);\n text-transform: uppercase;\n padding: var(--table-th-padding);\n\n &:last-child {\n border-inline-end: none;\n }\n\n i {\n font-size: var(--xs-font-size);\n }\n\n .tyk-button {\n background: none;\n color: var(--color-default-base);\n padding: 0;\n }\n }\n\n > tbody tr:hover {\n background: rgba(var(--color-background-light) / 40%);\n }\n\n > tbody td {\n border-inline-end: 1px solid var(--color-default-light);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n font-family: var(--font-family-regular);\n padding-block: var(--table-td-padding-y);\n padding-inline: var(--table-td-padding-x);\n vertical-align: middle;\n\n &:last-child {\n border-inline-end: none;\n }\n\n &.fit {\n white-space: nowrap;\n inline-size: 1%;\n }\n\n input:not([type='checkbox'], [type='radio']) {\n margin-block-start: var(--spacing-base);\n }\n\n a {\n color: var(--text-color);\n font-family: var(--font-family-medium);\n }\n\n label {\n margin: 0;\n }\n\n input[type='checkbox'] {\n margin: 0;\n }\n }\n\n tbody > tr {\n border-block-start: 1px solid var(--color-default-light);\n transition: all .4s linear;\n border-radius: var(--general-border-radius);\n\n &.clickable {\n cursor: pointer;\n }\n }\n\n > tbody tr td:first-child,\n > thead tr th:first-child {\n padding-inline-start: var(--table-first-last-padding);\n\n &.with-icon {\n padding-inline-start: var(--spacing-base);\n }\n }\n\n > tbody tr td:last-child,\n > thead tr th:last-child {\n padding-inline-end: var(--table-first-last-padding);\n\n &.with-icon {\n padding-inline-end: var(--spacing-base);\n }\n }\n\n .tyk-pagination {\n padding: var(--table-pagination-padding);\n\n li:first-child {\n margin-inline-start: auto;\n }\n }\n\n .nowrap {\n white-space: nowrap;\n }\n\n .wrap {\n word-break: break-all;\n }\n}\n\n.tyk-table__wrapper {\n border: var(--general-border-width) solid var(--color-default-light);\n border-radius: var(--general-border-radius);\n overflow: auto;\n\n &.no-innner-horizontal-borders {\n & .tyk-table > thead th,\n & .tyk-table > tbody td {\n border-inline-end: none;\n }\n }\n}\n\n.tyk-table__wrapper--no-border {\n border: none\n}\n\n.tyk-table-search {\n padding-block: var(--spacing-sm) 0;\n padding-inline: 25px;\n\n label {\n font-size: var(--sm-font-size);\n text-transform: uppercase;\n }\n}\n\n.header-sort {\n padding-inline-start: 3px;\n padding-block-start: var(--spacing-xs);\n vertical-align: middle;\n}\n\n.new-table-pagination {\n float: inline-end;\n}\n\n.selectable > div {\n margin-inline-start: var(--spacing-md);\n}\n\n.scrollable {\n display: block;\n overflow: auto;\n}\n\n.fixed-header {\n background: white;\n position: sticky;\n inset-block-start: 0;\n}\n\n.tyk-table.has-error,\n.tyk-table__wrapper.has-error {\n border: var(--general-border-width) solid var(--color-danger-base) !important;\n}",":root {\n --tabs-default-content-padding: 25px;\n --tab-button-padding: var(--spacing-sm) 2px 3px 2px;\n --tab-button-margin: 0;\n --tabs-font-familly: var(--font-family-medium);\n --tab-button-color: var(--text-color);\n --tab-active-button-color: var(--text-color);\n --tab-border-color: var(--color-success-base);\n}\n\n.tyk-tabs--default {\n > ul {\n display: flex;\n list-style-type: none;\n margin: 0;\n padding: 0;\n overflow: auto;\n\n li {\n display: flex;\n white-space: nowrap;\n margin-inline-end: var(--tab-button-margin);\n\n &:last-child {\n margin-inline-end: 0;\n }\n\n &.active button,\n button:hover {\n border-block-end-color: var(--tab-border-color);\n color: var(--tab-active-button-color);\n opacity: 1;\n }\n\n button {\n background: none;\n border: none;\n border-block-end: 4px solid transparent;\n color: var(--tab-button-color);\n cursor: pointer;\n font-size: var(--sm-font-size);\n font-family: var(--tabs-font-familly);\n padding: var(--tab-button-padding);\n margin-inline-end: var(--spacing-md);\n transition: all .2s linear;\n opacity: 0.7;\n\n &:focus {\n outline: none;\n }\n }\n }\n }\n}\n\n.tyk-tab__content {\n padding: var(--tabs-default-content-padding);\n}\n",".tyk-toast__container {\n inset-block-end: 0;\n min-inline-size: 300px;\n position: fixed;\n inset-inline-end: var(--spacing-md);\n z-index: 11;\n}\n\n.tyk-toast__message {\n position: relative;\n}\n\n.tyk-toast-message__button {\n color: var(--text-color);\n block-size: var(--spacing-md);\n line-height: 1;\n padding: var(--spacing-xs);\n position: absolute;\n inset-inline-end: var(--spacing-xs);\n inset-block-start: var(--spacing-xs);\n inline-size: var(--spacing-md);\n\n &:hover {\n background: rgba(255 255 255 / 30%);\n color: var(--text-color);\n }\n}\n",":root {\n --tooltip-max-width: 450px;\n}\n\n.tyk-tooltip {\n display: flex;\n align-items: center;\n background-color: var(--color-primary-light);\n border: 2px solid var(--color-primary-base);\n border-radius: var(--general-border-radius);\n max-inline-size: var(--tooltip-max-width);\n padding: var(--spacing-md);\n\n > .tyk-icon:first-child {\n inline-size: 32px;\n block-size: 32px;\n border-radius: 50%;\n color: white;\n background-color: var(--color-default-base-light);\n\n &::before {\n display: flex;\n inline-size: 100%;\n block-size: 100%;\n align-items: center;\n justify-content: center;\n }\n }\n\n > .tyk-icon + .tyk-tooltip__content {\n margin-inline-start: var(--spacing-md);\n }\n\n > .tyk-icon:last-child {\n cursor: pointer;\n }\n}\n\n.tyk-tooltip__content {\n color: var(--color-default-dark);\n word-break: break-word;\n word-wrap: break-word;\n\n + .tyk-icon {\n margin-inline-start: var(--spacing-md);\n }\n}\n",":root {\n --tyk-combobox-pill-background: #F0F0F0;\n --tyk-combobox-pill-color: var(--text-color);\n --tyk-combobox-list-item-hover-color: var(--form-default-color);\n --tyk-combobox-list-item-disabled-color: var(--form-default-color);\n}\n\n.tyk-combobox2 {\n --container-trigger-width: 40px;\n --values-default-height: 38px;\n\n outline: none;\n\n &.disabled {\n .tyk-form-control {\n border: var(--form-control-disabled-border) !important;\n background-color: var(--form-control-disabled-background-color);\n color: var(--form-control-disabled-color);\n cursor: not-allowed;\n }\n\n .tyk-combobox2__current-values .tyk-pill--combobox button {\n cursor: not-allowed;\n }\n\n &:not(.is-expand-mode) .tyk-combobox2__values-container-trigger {\n cursor: not-allowed;\n }\n\n .tyk-combobox2__entry-field {\n background-color: transparent;\n cursor: not-allowed;\n }\n }\n\n .tyk-form-control {\n display: flex;\n flex-direction: row;\n position: relative;\n min-block-size: 40px;\n block-size: auto;\n padding: 0;\n\n &:focus-within {\n outline: none;\n border: var(--form-control-border-focus);\n }\n }\n}\n\n.tyk-combobox2__current-values {\n display: flex;\n flex-grow: 1;\n flex-wrap: wrap;\n padding-block: 2px;\n padding-inline-start: var(--spacing-sm);\n max-inline-size: calc(100% - var(--container-trigger-width));\n\n &.expand-mode {\n max-block-size: 1000px;\n overflow: hidden;\n transition: max-block-size 1s ease;\n }\n\n .tyk-pill--combobox {\n margin-block: 3px;\n background-color: var(--tyk-combobox-pill-background);\n border-radius: var(--spacing-sm);\n color: var(--tyk-combobox-pill-color);\n padding-block: var(--spacing-xs);\n padding-inline: var(--spacing-sm);\n max-inline-size: 100%;\n max-block-size: 26px;\n\n button {\n background: none;\n border: none;\n cursor: pointer;\n inline-size: 23px;\n outline: none;\n\n + span {\n margin-inline-start: 0;\n }\n }\n\n span {\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n i {\n margin-inline-end: var(--spacing-xs);\n }\n }\n}\n\n.tyk-combobox2__current-values--collapsed.expand-mode {\n max-block-size: var(--values-default-height);\n transition: max-block-size .2s ease;\n}\n\n.tyk-combobox2__entry-field {\n border: none;\n line-height: 30px;\n\n &:focus,\n &:active {\n border: none;\n outline: none;\n }\n\n &::placeholder {\n color: var(--form-control-placeholder-color);\n font-family: var(--form-control-placeholder-font-family);\n }\n}\n\n.tyk-combobox2__text-value {\n font-family: var(--font-family-medium);\n font-size: var(--sm-font-size);\n padding-block: 9px;\n padding-inline: 5px;\n inline-size: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: 1;\n outline: none;\n\n &.overflow-single {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n &.is-placeholder {\n color: var(--form-control-placeholder-color);\n font-family: var(--form-control-placeholder-font-family);\n }\n}\n\n.tyk-combobox2__values-container-trigger {\n position: relative;\n flex-basis: var(--container-trigger-width);\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n outline: none;\n transition: all .2s;\n color: var(--text-color);\n\n .tyk-icon {\n block-size: 14px;\n }\n}\n\n.tyk-combobox2__values-container-trigger--expanded {\n transform: rotate(180deg);\n}\n\n.tyk-form-group--rounded-corners .tyk-combobox2-disabled-overlay {\n border-radius: calc(var(--general-border-radius) - 2px);\n}\n\n.tyk-combobox2__combobox-dropdown {\n display: flex;\n flex-direction: column;\n border: var(--general-border-width) solid var(--form-default-color);\n background-color: white;\n\n &.tyk-form-group--rounded-corners {\n border-radius: var(--general-border-radius);\n z-index: 1081;\n }\n\n .tyk-combobox2__combobox-search {\n background-color: white;\n position: sticky;\n inset-block-start: 0;\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-md);\n\n + .combobox-list {\n border-block-start: 1px solid var(--form-default-color);\n }\n }\n\n .tyk-combobox2__combobox-list {\n max-block-size: 255px;\n\n li {\n display: flex;\n cursor: pointer;\n padding-block: 9px;\n padding-inline: var(--spacing-md);\n transition: all .2s;\n font-family: var(--font-family-medium);\n\n &:hover,\n &.active {\n background-color: var(--tyk-combobox-list-item-hover-color);\n }\n\n &.disabled {\n color: var(--tyk-combobox-list-item-disabled-color);\n background-color: initial;\n }\n\n + li {\n border-block-start: 1px solid var(--form-default-color);\n }\n\n i {\n margin-inline-end: var(--spacing-xs);\n }\n\n .item-name {\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: 16px;\n }\n }\n }\n}\n",":root {\n --tyk-checkbox-theme-light-label-color: white;\n --tyk-checkbox-theme-light-label-disabled-color: white;\n --tyk-checkbox-theme-dark-label-color: var(--text-color);\n --tyk-checkbox-theme-dark-label-disabled-color: var(--text-color);\n}\n\n.tyk-checkbox {\n label {\n --label-indent: 20px;\n\n display: flex;\n align-items: flex-start;\n padding-inline-start: var(--label-indent);\n\n input {\n margin-inline-start: calc(-1 * var(--label-indent));\n margin-block-start: 5px;\n }\n }\n}\n\n.tyk-checkbox--theme-light {\n label {\n color: var(--tyk-checkbox-theme-light-label-color);\n }\n\n &.tyk-checkbox--is-disabled {\n label {\n color: var(--tyk-checkbox-theme-light-label-disabled-color);\n }\n }\n}\n\n.tyk-checkbox--is-disabled {\n label, p {\n cursor: not-allowed;\n opacity: 0.5;\n }\n}",".flatpickr-calendar{background:transparent;opacity:0;display:none;text-align:center;visibility:hidden;padding:0;-webkit-animation:none;animation:none;direction:ltr;border:0;font-size:14px;line-height:24px;border-radius:5px;position:absolute;width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-touch-action:manipulation;touch-action:manipulation;background:#fff;-webkit-box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,0.08);box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,0.08)}.flatpickr-calendar.open,.flatpickr-calendar.inline{opacity:1;max-height:640px;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{-webkit-animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1);animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{z-index:999;display:block}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){-webkit-box-shadow:none !important;box-shadow:none !important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){-webkit-box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-calendar .hasWeeks .dayContainer,.flatpickr-calendar .hasTime .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.hasTime .flatpickr-time{height:40px;border-top:1px solid #e6e6e6}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:before,.flatpickr-calendar:after{position:absolute;display:block;pointer-events:none;border:solid transparent;content:'';height:0;width:0;left:22px}.flatpickr-calendar.rightMost:before,.flatpickr-calendar.arrowRight:before,.flatpickr-calendar.rightMost:after,.flatpickr-calendar.arrowRight:after{left:auto;right:22px}.flatpickr-calendar.arrowCenter:before,.flatpickr-calendar.arrowCenter:after{left:50%;right:50%}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:before,.flatpickr-calendar.arrowTop:after{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:before,.flatpickr-calendar.arrowBottom:after{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{position:relative;display:inline-block}.flatpickr-months{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-months .flatpickr-month{background:transparent;color:rgba(0,0,0,0.9);fill:rgba(0,0,0,0.9);height:34px;line-height:1;text-align:center;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.flatpickr-months .flatpickr-prev-month,.flatpickr-months .flatpickr-next-month{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-decoration:none;cursor:pointer;position:absolute;top:0;height:34px;padding:10px;z-index:3;color:rgba(0,0,0,0.9);fill:rgba(0,0,0,0.9)}.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,.flatpickr-months .flatpickr-next-month.flatpickr-disabled{display:none}.flatpickr-months .flatpickr-prev-month i,.flatpickr-months .flatpickr-next-month i{position:relative}.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,.flatpickr-months .flatpickr-next-month.flatpickr-prev-month{/*\n /*rtl:begin:ignore*/left:0/*\n /*rtl:end:ignore*/}/*\n /*rtl:begin:ignore*/\n/*\n /*rtl:end:ignore*/\n.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,.flatpickr-months .flatpickr-next-month.flatpickr-next-month{/*\n /*rtl:begin:ignore*/right:0/*\n /*rtl:end:ignore*/}/*\n /*rtl:begin:ignore*/\n/*\n /*rtl:end:ignore*/\n.flatpickr-months .flatpickr-prev-month:hover,.flatpickr-months .flatpickr-next-month:hover{color:#959ea9}.flatpickr-months .flatpickr-prev-month:hover svg,.flatpickr-months .flatpickr-next-month:hover svg{fill:#f64747}.flatpickr-months .flatpickr-prev-month svg,.flatpickr-months .flatpickr-next-month svg{width:14px;height:14px}.flatpickr-months .flatpickr-prev-month svg path,.flatpickr-months .flatpickr-next-month svg path{-webkit-transition:fill .1s;transition:fill .1s;fill:inherit}.numInputWrapper{position:relative;height:auto}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper input::-webkit-outer-spin-button,.numInputWrapper input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none}.numInputWrapper span{position:absolute;right:0;width:14px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer;border:1px solid rgba(57,57,57,0.15);-webkit-box-sizing:border-box;box-sizing:border-box}.numInputWrapper span:hover{background:rgba(0,0,0,0.1)}.numInputWrapper span:active{background:rgba(0,0,0,0.2)}.numInputWrapper span:after{display:block;content:\"\";position:absolute}.numInputWrapper span.arrowUp{top:0;border-bottom:0}.numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid rgba(57,57,57,0.6);top:26%}.numInputWrapper span.arrowDown{top:50%}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(57,57,57,0.6);top:40%}.numInputWrapper span svg{width:inherit;height:auto}.numInputWrapper span svg path{fill:rgba(0,0,0,0.5)}.numInputWrapper:hover{background:rgba(0,0,0,0.05)}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{font-size:135%;line-height:inherit;font-weight:300;color:inherit;position:absolute;width:75%;left:12.5%;padding:7.48px 0 0 0;line-height:1;height:34px;display:inline-block;text-align:center;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.flatpickr-current-month span.cur-month{font-family:inherit;font-weight:700;color:inherit;display:inline-block;margin-left:.5ch;padding:0}.flatpickr-current-month span.cur-month:hover{background:rgba(0,0,0,0.05)}.flatpickr-current-month .numInputWrapper{width:6ch;width:7ch\\0;display:inline-block}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:rgba(0,0,0,0.9)}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:rgba(0,0,0,0.9)}.flatpickr-current-month input.cur-year{background:transparent;-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;cursor:text;padding:0 0 0 .5ch;margin:0;display:inline-block;font-size:inherit;font-family:inherit;font-weight:300;line-height:inherit;height:auto;border:0;border-radius:0;vertical-align:initial;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{font-size:100%;color:rgba(0,0,0,0.5);background:transparent;pointer-events:none}.flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;background:transparent;border:none;border-radius:0;box-sizing:border-box;color:inherit;cursor:pointer;font-size:inherit;font-family:inherit;font-weight:300;height:auto;line-height:inherit;margin:-1px 0 0 0;outline:none;padding:0 0 0 .5ch;position:relative;vertical-align:initial;-webkit-box-sizing:border-box;-webkit-appearance:menulist;-moz-appearance:menulist;width:auto}.flatpickr-current-month .flatpickr-monthDropdown-months:focus,.flatpickr-current-month .flatpickr-monthDropdown-months:active{outline:none}.flatpickr-current-month .flatpickr-monthDropdown-months:hover{background:rgba(0,0,0,0.05)}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:transparent;outline:none;padding:0}.flatpickr-weekdays{background:transparent;text-align:center;overflow:hidden;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:28px}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}span.flatpickr-weekday{cursor:default;font-size:90%;background:transparent;color:rgba(0,0,0,0.54);line-height:1;margin:0;text-align:center;display:block;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;font-weight:bolder}.dayContainer,.flatpickr-weeks{padding:1px 0 0 0}.flatpickr-days{position:relative;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;width:307.875px}.flatpickr-days:focus{outline:0}.dayContainer{padding:0;outline:0;text-align:left;width:307.875px;min-width:307.875px;max-width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;display:-ms-flexbox;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-wrap:wrap;-ms-flex-pack:justify;-webkit-justify-content:space-around;justify-content:space-around;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.dayContainer + .dayContainer{-webkit-box-shadow:-1px 0 0 #e6e6e6;box-shadow:-1px 0 0 #e6e6e6}.flatpickr-day{background:none;border:1px solid transparent;border-radius:150px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#393939;cursor:pointer;font-weight:400;width:14.2857143%;-webkit-flex-basis:14.2857143%;-ms-flex-preferred-size:14.2857143%;flex-basis:14.2857143%;max-width:39px;height:39px;line-height:39px;margin:0;display:inline-block;position:relative;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center}.flatpickr-day.inRange,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.today.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day:hover,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.nextMonthDay:hover,.flatpickr-day:focus,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.nextMonthDay:focus{cursor:pointer;outline:0;background:#e6e6e6;border-color:#e6e6e6}.flatpickr-day.today{border-color:#959ea9}.flatpickr-day.today:hover,.flatpickr-day.today:focus{border-color:#959ea9;background:#959ea9;color:#fff}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange,.flatpickr-day.selected.inRange,.flatpickr-day.startRange.inRange,.flatpickr-day.endRange.inRange,.flatpickr-day.selected:focus,.flatpickr-day.startRange:focus,.flatpickr-day.endRange:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange:hover,.flatpickr-day.endRange:hover,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.endRange.nextMonthDay{background:#569ff7;-webkit-box-shadow:none;box-shadow:none;color:#fff;border-color:#569ff7}.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange,.flatpickr-day.endRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange,.flatpickr-day.endRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)),.flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)){-webkit-box-shadow:-10px 0 0 #569ff7;box-shadow:-10px 0 0 #569ff7}.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange,.flatpickr-day.endRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;-webkit-box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.notAllowed.nextMonthDay{color:rgba(57,57,57,0.3);background:transparent;border-color:transparent;cursor:default}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{cursor:not-allowed;color:rgba(57,57,57,0.1)}.flatpickr-day.week.selected{border-radius:0;-webkit-box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7;box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{float:left}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;-webkit-box-shadow:1px 0 0 #e6e6e6;box-shadow:1px 0 0 #e6e6e6}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:rgba(57,57,57,0.3);background:transparent;cursor:default;border:none}.flatpickr-innerContainer{display:block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.flatpickr-rContainer{display:inline-block;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box}.flatpickr-time{text-align:center;outline:0;display:block;height:0;line-height:40px;max-height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-time:after{content:\"\";display:table;clear:both}.flatpickr-time .numInputWrapper{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;width:40%;height:40px;float:left}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#393939}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#393939}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{background:transparent;-webkit-box-shadow:none;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;color:#393939;font-size:14px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-time input.flatpickr-hour{font-weight:bold}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{outline:0;border:0}.flatpickr-time .flatpickr-time-separator,.flatpickr-time .flatpickr-am-pm{height:inherit;float:left;line-height:inherit;color:#393939;font-weight:bold;width:2%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.flatpickr-time .flatpickr-am-pm{outline:0;width:18%;cursor:pointer;text-align:center;font-weight:400}.flatpickr-time input:hover,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time .flatpickr-am-pm:focus{background:#eee}.flatpickr-input[readonly]{cursor:pointer}@-webkit-keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}","@import 'flatpickr/dist/flatpickr.min.css';\n\n.flatpickr-day.selected,\n.flatpickr-day.startRange,\n.flatpickr-day.endRange,\n.flatpickr-day.selected.inRange,\n.flatpickr-day.startRange.inRange,\n.flatpickr-day.endRange.inRange,\n.flatpickr-day.selected:focus,\n.flatpickr-day.startRange:focus,\n.flatpickr-day.endRange:focus,\n.flatpickr-day.selected:hover,\n.flatpickr-day.startRange:hover,\n.flatpickr-day.endRange:hover,\n.flatpickr-day.selected.prevMonthDay,\n.flatpickr-day.startRange.prevMonthDay,\n.flatpickr-day.endRange.prevMonthDay,\n.flatpickr-day.selected.nextMonthDay,\n.flatpickr-day.startRange.nextMonthDay,\n.flatpickr-day.endRange.nextMonthDay {\n background: var(--color-success-base) !important;\n border-color: var(--color-success-base) !important;\n}",":root {\n --tyk-dropdown-item-background: white;\n --tyk-dropdown-item-background-hover: var(--color-background-light);\n --tyk-dropdown-item-border-color: white;\n --tyk-dropdown-item-text-color: var(--text-color);\n --tyk-dropdown-item-hover-text-color: var(--text-color);\n}\n\n.tyk-dropdown {\n display: inline-block;\n\n + .tyk-button,\n + .tyk-dropdown,\n + .tyk-toggle {\n margin-inline-start: var(--spacing-sm)\n }\n\n label {\n display: block;\n }\n\n &.theme-list .tyk-button {\n background: white;\n border: var(--general-border-width) solid var(--color-default-base);\n border-radius: var(--general-border-radius);\n color: var(--text-color);\n\n &:hover,\n &:active,\n &:active:focus,\n &:focus {\n background: white;\n border-color: var(--color-background-dark);\n color: var(--text-color);\n }\n }\n}\n\n.tyk-dropdown--block {\n inset-inline: var(--spacing-md);\n}\n\n.tyk-dropdown--relative {\n inset-inline: auto;\n}\n\n.tyk-dropdown--custom {\n padding-block: var(--spacing-md);\n padding-inline: 25px;\n}\n\n.tyk-dropdown__trigger {\n position: relative;\n}\n\n.tyk-dropdown-menu {\n background: var(--tyk-dropdown-item-background);\n border: var(--general-border-width) solid var(--color-default-light);\n border-radius: var(--general-border-radius);\n filter: drop-shadow(1px 2px 1px rgba(0 0 0 / 10%));\n list-style-type: none;\n margin-inline: 0;\n margin-block: 3px 0;\n overflow: hidden;\n padding: 0;\n z-index: 1081;\n\n &.tyk-dropdown--scrollable {\n overflow: auto;\n }\n\n .tyk-panel {\n margin: 0;\n }\n\n &.opened {\n display: flex;\n flex-direction: column;\n position: absolute;\n }\n\n > li {\n background: var(--tyk-dropdown-item-background);\n border-block-end: 1px solid var(--tyk-dropdown-item-border-color);\n display: flex;\n position: relative;\n z-index: 7;\n\n &:last-child {\n border: none;\n }\n\n i {\n position: absolute;\n inset-inline-start: 7px;\n inset-block-start: 9px;\n }\n }\n}\n\n.tyk-dropdown-menu > li > a {\n cursor: pointer;\n color: var(--tyk-dropdown-item-text-color);\n display: flex;\n font-size: 12px;\n padding-block: 7px;\n padding-inline: 24px;\n text-transform: uppercase;\n text-decoration: none;\n inline-size: 100%;\n\n &:hover {\n color: var(--tyk-dropdown-item-hover-text-color);\n background-color: var(--tyk-dropdown-item-background-hover);\n text-decoration: none;\n }\n\n .badge {\n background: var(--text-color);\n color: white;\n font-size: var(--spacing-sm);\n margin-block-start: -4px;\n margin-inline-start: 6px;\n }\n}\n\n.tyk-dropdown--relative.opened {\n position: relative;\n}\n",".dropdown__menu {\n .tyk-list {\n background: white;\n max-block-size: none;\n\n li {\n padding: 0;\n\n &:hover {\n background: var(--primary-light);\n }\n\n a {\n cursor: pointer;\n display: block;\n padding-block: 10px;\n padding-inline: 20px;\n text-decoration: none;\n }\n }\n }\n}",".tyk-editable-list__submit-btn {\n white-space: nowrap;\n}\n\n.tyk-editable-list__form {\n align-items: center;\n display: flex;\n\n .tyk-form-group {\n margin-block-end: 0;\n }\n\n span.inline {\n margin-block-start: 0;\n }\n\n > span {\n margin-inline-start: var(--spacing-base);\n\n &.inline-with-label {\n align-self: flex-end;\n }\n }\n}\n\n.tyk-editable-list__form--sticked {\n margin-inline-start: 0;\n\n button {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n border-start-end-radius: 3px;\n border-end-end-radius: 3px;\n padding-block: var(--spacing-sm) 11px;\n padding-inline: var(--spacing-base);\n }\n}\n\n.tyk-editable-list__header {\n padding-block: var(--spacing-base);\n font-size: 11px;\n text-transform: uppercase;\n background-color: white;\n border-start-start-radius: var(--general-border-radius);\n border-start-end-radius: var(--general-border-radius);\n border: var(--general-border-width) solid var(--color-default-light);\n border-block-end: 1px solid var(--color-default-light) !important;\n color: var(--text-color) !important;\n font-family: var(--font-family-bold);\n margin-block-start: var(--spacing-sm);\n\n & + .tyk-editable-list-items.table {\n border-block-start: none;\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n }\n\n .tyk-row {\n margin: 0;\n }\n}\n\n.tyk-editable-list-items {\n overflow: hidden;\n list-style: none;\n padding-block: var(--spacing-md) 0;\n padding-inline: 0;\n\n .edit-mode-wrapper.table button {\n margin-block-start: 23px;\n }\n\n .tyk-row {\n margin: 0;\n }\n\n button[disabled] {\n cursor: not-allowed;\n }\n\n &.tyk-editable-list-items--inline {\n align-items: center;\n color: var(--text-color);\n display: flex;\n flex-wrap: wrap;\n }\n\n li {\n border-block-start: 1px solid var(--color-default-light);\n transition: all .2s linear;\n\n &.tyk-editable-list-item--inline {\n background-color: var(--color-default-light);\n border-radius: 25px;\n border: none;\n color: white;\n float: inline-start;\n font-family: var(--font-family-medium);\n margin-block-end: var(--spacing-sm);\n margin-inline-end: var(--spacing-base);\n padding-block: 0;\n padding-inline: var(--spacing-base);\n white-space: nowrap;\n\n .tyk-editable-list-item__text {\n color: var(--text-color);\n padding-block: var(--spacing-xs);\n padding-inline: 0;\n }\n\n .tyk-editable-list-action__button.on-edit {\n margin-block-start: 0;\n }\n }\n\n &:first-child {\n border-block-start: none;\n }\n\n .tyk-editable-list-item__text {\n display: flex;\n padding-block: var(--spacing-sm);\n padding-inline: 0;\n\n > span {\n flex-grow: 1;\n }\n\n > div:first-child {\n flex-grow: 1;\n\n .error-message {\n margin: 0;\n }\n }\n }\n\n .tyk-editable-list-items {\n overflow: hidden;\n padding-block-end: var(--spacing-sm);\n }\n\n .tyk-editable-list {\n border-block-start: var(--spacing-xs) solid var(--background-dark);\n background: var(--background-light);\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-base);\n }\n }\n\n .tyk-editable-list-item__text {\n display: block;\n word-wrap: break-word;\n word-break:break-all;\n }\n\n .tyk-editable-list-action__button {\n border: none;\n background: transparent;\n\n &.on-edit {\n margin-inline-start: var(--spacing-sm);\n }\n }\n\n .tyk-editable-list-item-controls {\n flex-grow: 0;\n text-align: end;\n }\n}\n\n.tyk-editable-list-item__controls {\n text-align: end;\n}\n\n.tyk-editable-list-items.table {\n background-color: white;\n border-radius: var(--general-border-radius);\n border: var(--general-border-width) solid var(--color-default-light);\n padding: 0 !important;\n\n li {\n border-color: var(--color-default-light);\n\n &:hover {\n background: var(--color-background-light);\n }\n }\n\n .tyk-editable-list-item__text {\n background: transparent;\n }\n\n .tyk-editable-list-action__button {\n border-radius: 6px;\n cursor: pointer;\n margin-inline-end: var(--spacing-sm);\n }\n}\n","/* stylelint-disable number-max-precision */\n\n.editable-list__header {\n align-items: center;\n display: flex;\n margin-block-end: 10px;\n\n .tyk-button {\n margin-inline-start: auto;\n }\n}\n\n.editable-list__wrapper.has-error .editable-list__list{\n border: var(--general-border-width) solid var(--color-danger-base);\n}\n\n.editable-list__list {\n border: var(--general-border-width) solid var(--color-default-light);\n border-radius: var(--general-border-radius);\n display: flex;\n flex-direction: column-reverse;\n}\n\n.editable-list__item {\n border-block-end: 1px solid var(--color-default-light);\n display: flex;\n flex-wrap: nowrap;\n inline-size: 100%;\n\n &:first-child {\n border-block-end: none;\n }\n}\n\n.editable-list__item-header {\n border-block-end: 1px solid var(--color-default-light);\n color: var(--text-color);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n font-family: var(--font-family-bold);\n text-transform: uppercase;\n\n .editable-list__item-cell {\n padding: 10px;\n }\n}\n\n.editable-list__item-cell {\n border-inline-start: 1px solid var(--color-default-light);\n overflow: hidden;\n padding-block: 0;\n padding-inline: 10px;\n\n .tyk-form-control--readonly {\n overflow: hidden;\n text-overflow: ellipsis;\n word-break: break-all;\n }\n\n &:first-child {\n border-inline-start: none;\n padding-inline-start: 15px;\n }\n\n &:last-child {\n padding-inline-end: 15px;\n }\n\n .tyk-form-group {\n margin-block: 10px;\n margin-inline: 0;\n inline-size: 100%;\n }\n}\n\n.editable-list__item--size-1 {\n display: flex;\n flex-grow: 2;\n inline-size: 8.3333333333%;\n}\n\n.editable-list__item--size-2 {\n display: flex;\n flex-grow: 3;\n inline-size: 16.6666666667%;\n}\n\n.editable-list__item--size-3 {\n display: flex;\n flex-grow: 4;\n inline-size: 25%;\n}\n\n.editable-list__item--size-4 {\n display: flex;\n flex-grow: 5;\n inline-size: 33.3333333333%;\n}\n\n.editable-list__item--size-5 {\n display: flex;\n flex-grow: 6;\n inline-size: 41.6666666667%;\n}\n\n.editable-list__item--size-6 {\n display: flex;\n flex-grow: 7;\n inline-size: 50%;\n}\n\n.editable-list__item--size-7 {\n display: flex;\n flex-grow: 8;\n inline-size: 58.3333333333%;\n}\n\n.editable-list__item--size-8 {\n display: flex;\n flex-grow: 9;\n inline-size: 66.6666666667%;\n}\n\n.editable-list__item--size-9 {\n display: flex;\n flex-grow: 10;\n inline-size: 75%;\n}\n\n.editable-list__item--size-10 {\n display: flex;\n flex-grow: 11;\n inline-size: 83.3333333333%;\n}\n\n.editable-list__item--size-11 {\n display: flex;\n flex-grow: 12;\n inline-size: 91.6666666667%;\n}\n\n.editable-list__item--size-12 {\n display: flex;\n flex-grow: 13;\n inline-size: 100%;\n}\n\n.editable-list__item--size-fit {\n inline-size: fit-content;\n}\n\n.editable-list__item-action {\n align-items: flex-start;\n display: flex;\n justify-content: center;\n inline-size: 100px;\n\n .tyk-button {\n margin-block-start: 20px;\n }\n}\n\n.editable-list__item-action--read-only {\n color: var(--color-default-light);\n align-items: center;\n\n .tyk-button {\n margin-block-start: 0;\n }\n}",".tyk-file-input__wrapper {\n position: relative;\n\n > input {\n padding-block: 6px;\n padding-inline: var(--spacing-md);\n }\n\n > button {\n background: none;\n border: none;\n cursor: pointer;\n position: absolute;\n inset-inline-end: var(--spacing-base);\n inset-block-start: 9px;\n }\n}\n",".tyk-multiselect {\n align-items: flex-start;\n border-radius: var(--general-border-radius);\n flex-wrap: wrap;\n display: flex;\n margin-block-end: var(--spacing-md);\n inline-size: 100%;\n\n /* FALLBACK FOR ANGULAR COMPONENTS */\n .input-group .input-group-addon + .form-control {\n border-width: 1px !important;\n border-inline-start: none !important;\n border-start-start-radius: 0 !important;\n border-start-end-radius: 0 !important;\n border-end-start-radius: 0 !important;\n border-end-end-radius: 0 !important;\n }\n\n .input-group .input-group-addon {\n background: transparent !important;\n border-width: 1px !important;\n border-inline-end: 0 !important;\n border-start-start-radius: 0 !important;\n border-start-end-radius: 0 !important;\n border-end-start-radius: 0 !important;\n border-end-end-radius: 0 !important;\n }\n\n /* END FALLBACK FOR ANGULAR COMPONENTS */\n\n &.has-error {\n border: var(--general-border-width) solid var(--color-danger-base);\n }\n\n .tyk-form-group {\n margin: 0;\n }\n\n .tyk-multiselect-item__controls {\n display: flex;\n margin-inline-start: auto;\n flex-wrap: nowrap;\n\n .tyk-button {\n color: var(--text-color);\n margin-inline-start: var(--spacing-xs);\n\n &:last-child {\n margin-inline-start: 0;\n }\n }\n }\n}\n\n.tyk-multiselect__header {\n background-color: var(--color-default-base);\n border-start-start-radius: var(--general-border-radius);\n border-start-end-radius: var(--general-border-radius);\n color: white;\n display: flex;\n inline-size: 100%;\n\n > div {\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-base);\n inline-size: 50%;\n }\n}\n\n.tyk-multiselect__panel-wrapper {\n border: var(--form-control-border);\n border-block-start: none;\n border-end-start-radius: var(--general-border-radius);\n border-end-end-radius: var(--general-border-radius);\n display: flex;\n flex: 1;\n block-size: 265px;\n inline-size: 100%;\n}\n\n.tyk-multiselect__panel {\n display: flex;\n flex-direction: column;\n margin-block: 0;\n margin-inline: -1px 0;\n position: relative;\n inline-size: calc(50% + 1px);\n\n &:last-child {\n border-inline-start: var(--form-control-border);\n\n .tyk-form-group {\n margin-inline-start: -1px;\n inline-size: calc(100% + 2px);\n }\n }\n\n .tyk-message {\n margin-block: var(--spacing-md) 0;\n margin-inline: var(--spacing-md);\n }\n}\n\n.tyk-multiselect__list {\n list-style-type: none;\n margin: 0;\n padding: 0;\n\n > li {\n border-block-end: var(--form-control-border);\n display: flex;\n flex-direction: column;\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-base);\n\n > div {\n align-items: start;\n display: flex;\n inline-size: 100%;\n }\n\n .loading {\n justify-content: center;\n }\n\n &:last-child {\n border-block-end: none;\n }\n }\n}\n\n.tyk-multiselect__list--scroll {\n block-size: 100%;\n overflow-y: auto;\n}\n\n.tyk-multiselect-item__name {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n",":root {\n --pagination-border-radius: var(--general-border-radius);\n --pagination-button-padding: var(--spacing-sm) var(--spacing-base);\n}\n\n.tyk-pagination {\n display: flex;\n list-style-type: none;\n margin-block: var(--spacing-sm);\n margin-inline: 0;\n padding: 0;\n\n li {\n align-items: center;\n display: flex;\n }\n\n li:first-child button {\n border-start-start-radius: var(--pagination-border-radius);\n border-end-start-radius: var(--pagination-border-radius);\n }\n\n li:last-child button {\n border-start-end-radius: var(--pagination-border-radius);\n border-end-end-radius: var(--pagination-border-radius);\n }\n\n span {\n margin-block: 0;\n margin-inline: var(--spacing-sm);\n }\n\n button {\n background: white;\n border: none;\n font-size: var(--sm-font-size);\n font-family: var(--font-family-bold);\n cursor: pointer;\n color: var(--color-default-base);\n margin-inline-start: -1px;\n padding: var(--pagination-button-padding);\n\n &:hover {\n background-color: var(--color-success-light);\n }\n }\n\n .active button {\n background-color: var(--color-success-base);\n color: white;\n }\n}\n",":root {\n --radio-description-text-padding: 0 0 0 20px;\n}\n\n.tyk-radio {\n label {\n align-items: center;\n display: flex;\n }\n}\n\n.tyk-radio--is-disabled {\n label, p {\n cursor: not-allowed;\n opacity: 0.5;\n }\n}\n\n.tyk-radio__description-text {\n padding: var(--radio-description-text-padding);\n}",".tyk-select {\n background: transparent url('./images/arrow_down.svg') no-repeat calc(100% - 15px) center;\n background-size: var(--spacing-base) var(--spacing-base);\n}",".tyk-selectable-list {\n margin-block-end: var(--spacing-md);\n inline-size: 100%;\n\n li:not(.tyk-selectable-list__no-items-message) {\n font-family: var(--font-family-medium);\n padding: 0;\n\n .tyk-message {\n margin-block-end: 0;\n }\n\n label {\n font-family: var(--font-family-medium);\n margin: 0;\n }\n\n > label {\n align-items: center;\n cursor: pointer;\n display: flex;\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-md);\n\n input[type=\"checkbox\"] {\n margin-inline-start: auto;\n }\n }\n }\n}\n\n.tyk-selectable-list__item--with-icon {\n & input[type=\"checkbox\"] {\n visibility: hidden;\n }\n}\n","textarea.tyk-form-control {\n block-size: auto;\n}\n",":root {\n --toggle-font-family: var(--font-family-bold);\n --toggle-list-background-color: var(--color-background-light);\n --toggle-list-text-color: white;\n --toggle-list-background-color-on-dark: white;\n --toggle-list-text-color-on-dark: var(--text-color);\n --toggle-top: 4px;\n --toggle-bottom: 4px;\n --toggle-label-font-size: var(--sm-font-size);\n --toggle-label-font-family: var(--font-family-medium);\n --toggle-label-color: var(--label-color);\n --toggle-padding: 0;\n}\n\n.tyk-toggle {\n display: inline-flex;\n flex-wrap: wrap;\n font-family: var(--toggle-font-family);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n white-space: nowrap;\n\n &.block {\n margin-block-end: var(--spacing-md);\n inline-size: 100%;\n\n + .tyk-toggle {\n margin-inline-start: 0;\n }\n }\n\n &.inline-label {\n align-items: center;\n flex-wrap: nowrap;\n }\n\n + .tyk-button,\n + .tyk-dropdown,\n + .tyk-toggle {\n margin-inline-start: var(--spacing-sm)\n }\n}\n\n.tyk-toggle__list--has-error {\n border: var(--error-border);\n}\n\n.tyk-toggle .tyk-toggle__label {\n display: block;\n font-family: var(--toggle-label-font-family);\n font-size: var(--toggle-label-font-size);\n padding: var(--toggle-padding);\n inline-size: 100%;\n color: var(--toggle-label-color);\n}\n\n.tyk-toggle.inline-label .tyk-toggle__label {\n margin-inline-end: var(--spacing-sm);\n inline-size: auto;\n}\n\n.tyk-toggle--disabled-true {\n cursor: not-allowed;\n opacity: 0.7;\n}\n\n.tyk-toggle--column {\n .tyk-toggle__list--separated {\n display: flex;\n flex-direction: column;\n margin-inline-end: var(--spacing-md);\n\n .tyk-toggle__item {\n background-color: var(--toggle-list-background-color);\n margin-inline-end: auto;\n }\n }\n}\n\n.tyk-toggle__list {\n background: var(--toggle-list-background-color);\n border-radius: 25px;\n display: flex;\n list-style-type: none;\n margin: 0;\n padding: 0;\n position: relative;\n}\n\n.tyk-toggle__list--separated {\n background: transparent;\n flex-wrap: wrap;\n}\n\n.tyk-toggle--on-dark .tyk-toggle__list {\n background: var(--toggle-list-background-color-on-dark);\n}\n\n.tyk-toggle--default .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--default .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--default .tyk-toggle__list--separated .tyk-toggle__item--active {\n background-color: var(--button-default-color);\n color: white;\n border: var(--general-border-width) solid transparent;\n\n &:hover {\n background-color: var(--button-default-color);\n color: white;\n }\n\n span {\n color: white;\n }\n}\n\n.tyk-toggle--primary .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--primary .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--primary .tyk-toggle__list--separated .tyk-toggle__item--active {\n background-color: var(--color-primary-base);\n color: white;\n border: var(--general-border-width) solid transparent;\n\n &:hover {\n background-color: var(--color-primary-base);\n color: white;\n }\n\n span {\n color: white;\n }\n}\n\n.tyk-toggle--success .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--success .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--success .tyk-toggle__list--separated .tyk-toggle__item--active {\n background-color: var(--color-success-dark);\n color: white;\n border: var(--general-border-width) solid transparent;\n\n &:hover {\n background-color: var(--color-success-dark);\n color: white;\n }\n\n span {\n color: white;\n }\n}\n\n.tyk-toggle--danger .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--danger .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--danger .tyk-toggle__list--separated .tyk-toggle__item--active {\n background-color: var(--color-danger-base);\n color: white;\n border: var(--general-border-width) solid transparent;\n\n &:hover {\n background-color: var(--color-danger-base);\n color: white;\n }\n}\n\n.tyk-toggle--warning .tyk-toggle__item--active span {\n color: var(--text-color);\n}\n\n.tyk-toggle--warning .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--warning .tyk-toggle__list--separated .tyk-toggle__item--active {\n background-color: var(--color-warning-base);\n color: var(--text-color);\n border: var(--general-border-width) solid transparent;\n\n &:hover {\n background-color: var(--color-warning-base);\n color: var(--text-color);\n }\n}\n\n\n.tyk-toggle--primary-gradient .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--primary-gradient .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--primary-gradient .tyk-toggle__list--separated .tyk-toggle__item--active {\n border-image: linear-gradient(to right, var(--color-primary-base), var(--color-primary-dark), var(--color-primary-base)) 0 round;\n background: transparent linear-gradient(to right, var(--color-primary-base), var(--color-primary-dark), var(--color-primary-base));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: white;\n\n span {\n color: white;\n }\n}\n\n.tyk-toggle--success-gradient .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--success-gradient .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--success-gradient .tyk-toggle__list--separated .tyk-toggle__item--active {\n border-image: linear-gradient(to right, var(--color-success-base), var(--color-success-dark), var(--color-success-base)) 0 round;\n background: transparent linear-gradient(to right, var(--color-success-base), var(--color-success-dark), var(--color-success-base));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: white;\n\n span {\n color: white;\n }\n}\n\n\n.tyk-toggle--danger-gradient .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--danger-gradient .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--danger-gradient .tyk-toggle__list--separated .tyk-toggle__item--active {\n border-image: linear-gradient(to right, var(--color-danger-base), var(--color-danger-dark), var(--color-danger-base)) 0 round;\n background: transparent linear-gradient(to right, var(--color-danger-base), var(--color-danger-dark), var(--color-danger-base));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: white;\n\n span {\n color: white;\n }\n}\n\n\n.tyk-toggle--warning-gradient .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--warning-gradient .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--warning-gradient .tyk-toggle__list--separated .tyk-toggle__item--active {\n border-image: linear-gradient(to right, var(--color-warning-light), var(--color-warning-base), var(--color-warning-light)) 0 round;\n background: transparent linear-gradient(to right, var(--color-warning-light), var(--color-warning-base), var(--color-warning-light));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: var(--text-color);\n\n span {\n color: white;\n }\n}\n\n.tyk-toggle__item {\n color: var(--toggle-list-text-color);\n text-transform: uppercase;\n z-index: 2;\n border: 2px solid transparent;\n\n &:first-child {\n border-start-start-radius: 25px;\n border-end-start-radius: 25px;\n }\n\n &:last-child {\n border-start-end-radius: 25px;\n border-end-end-radius: 25px;\n }\n\n .tyk-toggle__list--separated & {\n border-radius: 25px;\n margin-block: var(--spacing-xs);\n margin-inline-end: var(--spacing-sm);\n\n &:last-child {\n margin-inline-end: 0;\n }\n }\n\n input {\n display: none;\n }\n\n label {\n cursor: pointer;\n font-family: var(--toggle-font-family);\n position: relative;\n margin: 0;\n transition: all .2s ease;\n\n .tyk-toggle__list--single & {\n padding-inline-start: 45px;\n }\n }\n}\n\n.tyk-toggle__list--single .tyk-toggle__item--active {\n label {\n padding-inline-start: 25px;\n padding-inline-end: 45px;\n\n .tyk-toggle__item-notch {\n inset-inline-start: calc(100% - 35px);\n }\n }\n}\n\n.tyk-toggle--on-dark .tyk-toggle__item:not(.tyk-toggle__item--active) {\n color: var(--toggle-list-text-color-on-dark);\n}\n\n.tyk-toggle--on-dark .tyk-toggle__item-notch--single {\n background: var(--color-background-light);\n}\n\n.tyk-toggle--sm label {\n padding-block: calc(var(--padding-y-button-sm) + 2px);\n padding-inline: calc(var(--padding-x-button-sm) + 2px);\n font-size: var(--xs-font-size);\n line-height: var(--xs-line-height);\n border-radius: var(--button-border-radius);\n}\n\n.tyk-toggle--sm .tyk-toggle__list--single label {\n padding-inline-start: 35px;\n}\n\n.tyk-toggle--sm .tyk-toggle__list--single .tyk-toggle__item--active label {\n padding-inline-start: 17px;\n padding-inline-end: 35px;\n\n .tyk-toggle__item-notch {\n inset-inline-start: calc(100% - 27px);\n }\n}\n\n.tyk-toggle--md label {\n padding-block: calc(var(--padding-y-button-md) + 2px);\n padding-inline: calc(var(--padding-x-button-md) + 2px);\n font-size: var(--sm-font-size);\n line-height: var(--line-height-button-sm);\n border-radius: var(--button-border-radius);\n}\n\n.tyk-toggle--lg label {\n padding-block: calc(var(--padding-y-button-lg) + 2px);\n padding-inline: calc(var(--padding-x-button-lg) + 2px);\n font-size: var(--sm-font-size);\n line-height: var(--line-height-button-sm);\n border-radius: var(--button-border-radius);\n}\n\n.tyk-toggle--lg .tyk-toggle__list--single label {\n padding-inline-start: 45px;\n}\n\n.tyk-toggle--lg .tyk-toggle__list--single .tyk-toggle__item--active label {\n padding-inline-start: 25px;\n padding-inline-end: 45px;\n\n .tyk-toggle__item-notch {\n inset-inline-start: calc(100% - 43px);\n }\n}\n\n.tyk-toggle__item-notch {\n border-radius: 25px;\n inset-block: 2px;\n position: absolute;\n transition: all .2s ease;\n}\n\n.tyk-toggle__item-notch--single {\n background: white;\n inset-inline-start: 2px;\n inline-size: 32px;\n}\n\n.tyk-toggle--sm .tyk-toggle__item-notch--single {\n inline-size: 24px;\n}\n\n.tyk-toggle--lg .tyk-toggle__item-notch--single {\n inline-size: 40px;\n}\n\n.tyk-toggle__notch {\n border-radius: 25px;\n inset-inline-start: 0;\n position: absolute;\n inset-block-start: var(--toggle-top);\n inset-block-end: var(--toggle-bottom);\n transition: all .2s ease;\n inline-size: 100px;\n z-index: 1;\n}\n\n.tyk-toggle--default .tyk-toggle__notch {\n --toggle-notch-background: var(--button-default-color);\n --toggle-notch-border: transparent;\n --toggle-notch-color: white;\n --toggle-notch-hover-background: var(--button-default-color);\n --toggle-notch-hover-color: white;\n}\n\n.tyk-toggle--primary .tyk-toggle__notch {\n --toggle-notch-background: var(--primary-base);\n --toggle-notch-border: transparent;\n --toggle-notch-color: white;\n --toggle-notch-hover-background: var(--primary-base);\n --toggle-notch-hover-color: white;\n}\n\n.tyk-toggle--success .tyk-toggle__notch {\n --toggle-notch-background: var(--success-base);\n --toggle-notch-border: transparent;\n --toggle-notch-color: white;\n --toggle-notch-hover-background: var(--success-base);\n --toggle-notch-hover-color: white;\n}\n\n.tyk-toggle--danger .tyk-toggle__notch {\n --toggle-notch-background: var(--color-danger-base);\n --toggle-notch-border: transparent;\n --toggle-notch-color: white;\n --toggle-notch-hover-background: var(--color-danger-base);\n --toggle-notch-hover-color: white;\n}\n\n.tyk-toggle--warning .tyk-toggle__notch {\n --toggle-notch-background: var(--color-warning-base);\n --toggle-notch-border: transparent;\n --toggle-notch-color: var(--text-color);\n --toggle-notch-hover-background: var(--color-warning-base);\n --toggle-notch-hover-color: var(--text-color);\n}\n\n.tyk-toggle--default .tyk-toggle__notch,\n.tyk-toggle--primary .tyk-toggle__notch,\n.tyk-toggle--success .tyk-toggle__notch,\n.tyk-toggle--danger .tyk-toggle__notch,\n.tyk-toggle--warning .tyk-toggle__notch {\n background-color: var(--toggle-notch-background);\n color: var(--toggle-notch-color);\n border: var(--general-border-width) solid var(--toggle-notch-border);\n\n &:hover {\n background-color: var(--toggle-notch-hover-background);\n color: var(--toggle-notch-hover-color);\n }\n}\n\n.tyk-toggle--primary-gradient .tyk-toggle__notch {\n --toggle-notch-gradient-left-color: var(--color-primary-base);\n --toggle-notch-gradient-right-color: var(--color-primary-dark);\n --toggle-notch-gradient-color: white;\n}\n\n.tyk-toggle--success-gradient .tyk-toggle__notch {\n --toggle-notch-gradient-left-color: var(--color-success-base);\n --toggle-notch-gradient-right-color: var(--color-success-dark);\n --toggle-notch-gradient-color: white;\n}\n\n.tyk-toggle--danger-gradient .tyk-toggle__notch {\n --toggle-notch-gradient-left-color: var(--color-danger-base);\n --toggle-notch-gradient-right-color: var(--color-danger-dark);\n --toggle-notch-gradient-color: white;\n}\n\n.tyk-toggle--warning-gradient .tyk-toggle__notch {\n --toggle-notch-gradient-left-color: var(--color-warning-light);\n --toggle-notch-gradient-right-color: var(--color-warning-base);\n --toggle-notch-gradient-color: var(--text-color);\n}\n\n.tyk-toggle--primary-gradient .tyk-toggle__notch,\n.tyk-toggle--success-gradient .tyk-toggle__notch,\n.tyk-toggle--danger-gradient .tyk-toggle__notch,\n.tyk-toggle--warning-gradient .tyk-toggle__notch {\n border-image: linear-gradient(to right, var(--toggle-notch-gradient-left-color), var(--toggle-notch-gradient-right-color), var(--toggle-notch-gradient-left-color)) 0 round;\n background: transparent linear-gradient(to right, var(--toggle-notch-gradient-left-color), var(--toggle-notch-gradient-right-color), var(--toggle-notch-gradient-left-color));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: var(--toggle-notch-gradient-color);\n}\n\n.empty-toggle {\n padding: 1px;\n}","* {\n box-sizing: border-box;\n}\n\nbody {\n background-color: var(--color-background-base);\n color: var(--text-color);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n font-family: var(--font-family-regular);\n}\n\n.tyk-main-wrapper {\n display: flex;\n flex-wrap: nowrap;\n}\n\n.tyk-main-content-wrapper {\n flex: 1;\n}\n\n.well {\n background: transparent;\n border: var(--general-border-width) solid var(--color-default-light);\n border-radius: var(--general-border-radius);\n box-shadow: none;\n\n &.has-error {\n border-color: var(--color-danger-base);\n }\n}\n",".title-medium {\n font-family: var(--font-family-medium);\n color: var(--label-color);\n font-size: var(--title-medium-font-size);\n}",".right-align {\n text-align: end !important;\n}\n\n.left-align {\n text-align: start !important;\n}\n\n.center-align {\n text-align: center !important;\n}\n\n.left {\n float: inline-start !important;\n}\n\n.right {\n float: inline-end !important;\n}\n\n.hide {\n display: none !important;\n}\n\n.no-margin {\n margin: 0 !important;\n}\n\n.no-margin-bottom {\n margin-block-end: 0 !important;\n}\n\n.no-margin-top {\n margin-block-start: 0 !important;\n}\n\n.no-margin-right {\n margin-inline-end: 0 !important;\n}\n\n.no-margin-left {\n margin-inline-start: 0 !important;\n}\n\n.disabled-section {\n color: var(--color-default-light);\n}\n\n.top-buffer-large {\n margin-block-start: var(--top-buffer-large) !important;\n}\n\n.top-buffer-small {\n margin-block-start: var(--top-buffer-small) !important;\n}\n\n.top-buffer-medium {\n margin-block-start: var(--top-buffer-medium) !important;\n}\n\n.bottom-buffer-large {\n margin-block-end: var(--bottom-buffer-large) !important;\n}\n\n.bottom-buffer-small {\n margin-block-end: var(--bottom-buffer-small) !important;\n}\n\n.bottom-buffer-medium {\n margin-block-end: var(--bottom-buffer-medium) !important;\n}\n\n.right-buffer-large {\n margin-inline-end: var(--right-buffer-large) !important;\n}\n\n.right-buffer-small {\n margin-inline-end: var(--right-buffer-small) !important;\n}\n\n.right-buffer-medium {\n margin-inline-end: var(--right-buffer-medium) !important;\n}\n\n.left-buffer-large {\n margin-inline-start: var(--left-buffer-large) !important;\n}\n\n.left-buffer-small {\n margin-inline-start: var(--left-buffer-small) !important;\n}\n\n.left-buffer-medium {\n margin-inline-start: var(--left-buffer-medium) !important;\n}\n\n.word-wrap {\n word-wrap: break-word;\n word-break: break-all;\n}\n\n.clear-left {\n clear: inline-start;\n}\n\n.flex-container {\n display: flex;\n}\n\n.vertical-center-align {\n align-items: center;\n}\n\n\n.right-align-controls {\n align-items: center;\n display: flex;\n margin-inline-start: auto;\n}\n\n.inline-label {\n margin-inline-end: 15px;\n}\n\n.nowrap {\n white-space: nowrap;\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js index 0b3dba50..bd597607 100644 --- a/lib/index.js +++ b/lib/index.js @@ -1,3 +1,3 @@ /*! For license information please see index.js.LICENSE.txt */ -(()=>{var e={239:(e,t,n)=>{e=n.nmd(e),function(){var e=function(){return this}();e||"undefined"==typeof window||(e=window);var t=function(e,n,o){"string"==typeof e?(2==arguments.length&&(o=n),t.modules[e]||(t.payloads[e]=o,t.modules[e]=null)):t.original?t.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace())};t.modules={},t.payloads={};var n,o,i=function(e,t,n){if("string"==typeof t){var o=a(e,t);if(null!=o)return n&&n(),o}else if("[object Array]"===Object.prototype.toString.call(t)){for(var i=[],s=0,l=t.length;sn.length)&&(t=n.length),t-=e.length;var o=n.indexOf(e,t);return-1!==o&&o===t})),String.prototype.repeat||o(String.prototype,"repeat",(function(e){for(var t="",n=this;e>0;)1&e&&(t+=n),(e>>=1)&&(n+=n);return t})),String.prototype.includes||o(String.prototype,"includes",(function(e,t){return-1!=this.indexOf(e,t)})),Object.assign||(Object.assign=function(e){if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),n=1;n>>0,o=0|arguments[1],i=o<0?Math.max(n+o,0):Math.min(o,n),r=arguments[2],s=void 0===r?n:0|r,a=s<0?Math.max(n+s,0):Math.min(s,n);i0;)1&t&&(n+=e),(t>>=1)&&(e+=e);return n};var o=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(o,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){for(var t=[],n=0,o=e.length;n65535?2:1}})),ace.define("ace/lib/useragent",["require","exports","module"],(function(e,t,n){"use strict";t.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},t.getOS=function(){return t.isMac?t.OS.MAC:t.isLinux?t.OS.LINUX:t.OS.WINDOWS};var o="object"==typeof navigator?navigator:{},i=(/mac|win|linux/i.exec(o.platform)||["other"])[0].toLowerCase(),r=o.userAgent||"",s=o.appName||"";t.isWin="win"==i,t.isMac="mac"==i,t.isLinux="linux"==i,t.isIE="Microsoft Internet Explorer"==s||s.indexOf("MSAppHost")>=0?parseFloat((r.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((r.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=r.match(/ Gecko\/\d+/),t.isOpera="object"==typeof opera&&"[object Opera]"==Object.prototype.toString.call(window.opera),t.isWebKit=parseFloat(r.split("WebKit/")[1])||void 0,t.isChrome=parseFloat(r.split(" Chrome/")[1])||void 0,t.isSafari=parseFloat(r.split(" Safari/")[1])&&!t.isChrome||void 0,t.isEdge=parseFloat(r.split(" Edge/")[1])||void 0,t.isAIR=r.indexOf("AdobeAIR")>=0,t.isAndroid=r.indexOf("Android")>=0,t.isChromeOS=r.indexOf(" CrOS ")>=0,t.isIOS=/iPad|iPhone|iPod/.test(r)&&!window.MSStream,t.isIOS&&(t.isMac=!0),t.isMobile=t.isIOS||t.isAndroid})),ace.define("ace/lib/dom",["require","exports","module","ace/lib/useragent"],(function(e,t,n){"use strict";var o,i=e("./useragent");t.buildDom=function e(t,n,o){if("string"==typeof t&&t){var i=document.createTextNode(t);return n&&n.appendChild(i),i}if(!Array.isArray(t))return t&&t.appendChild&&n&&n.appendChild(t),t;if("string"!=typeof t[0]||!t[0]){for(var r=[],s=0;s=1.5,i.isChromeOS&&(t.HI_DPI=!1),"undefined"!=typeof document){var l=document.createElement("div");t.HI_DPI&&void 0!==l.style.transform&&(t.HAS_CSS_TRANSFORMS=!0),i.isEdge||void 0===l.style.animationName||(t.HAS_CSS_ANIMATION=!0),l=null}t.HAS_CSS_TRANSFORMS?t.translate=function(e,t,n){e.style.transform="translate("+Math.round(t)+"px, "+Math.round(n)+"px)"}:t.translate=function(e,t,n){e.style.top=Math.round(n)+"px",e.style.left=Math.round(t)+"px"}})),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("./dom");t.get=function(e,t){var n=new XMLHttpRequest;n.open("GET",e,!0),n.onreadystatechange=function(){4===n.readyState&&t(n.responseText)},n.send(null)},t.loadScript=function(e,t){var n=o.getDocumentHead(),i=document.createElement("script");i.src=e,n.appendChild(i),i.onload=i.onreadystatechange=function(e,n){!n&&i.readyState&&"loaded"!=i.readyState&&"complete"!=i.readyState||(i=i.onload=i.onreadystatechange=null,n||t())}},t.qualifyURL=function(e){var t=document.createElement("a");return t.href=e,t.href}})),ace.define("ace/lib/oop",["require","exports","module"],(function(e,t,n){"use strict";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}})),ace.define("ace/lib/event_emitter",["require","exports","module"],(function(e,t,n){"use strict";var o={},i=function(){this.propagationStopped=!0},r=function(){this.defaultPrevented=!0};o._emit=o._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],o=this._defaultHandlers[e];if(n.length||o){"object"==typeof t&&t||(t={}),t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=r),n=n.slice();for(var s=0;s1&&(i=n[n.length-2]);var s=l[t+"Path"];return null==s?s=l.basePath:"/"==o&&(t=o=""),s&&"/"!=s.slice(-1)&&(s+="/"),s+t+o+i+this.get("suffix")},t.setModuleUrl=function(e,t){return l.$moduleUrls[e]=t},t.setLoader=function(e){a=e},t.dynamicModules=Object.create(null),t.$loading={},t.$loaded={},t.loadModule=function(n,o){var r,s;Array.isArray(n)&&(s=n[0],n=n[1]);var l=function(r){if(r&&!t.$loading[n])return o&&o(r);if(t.$loading[n]||(t.$loading[n]=[]),t.$loading[n].push(o),!(t.$loading[n].length>1)){var l=function(){!function(t,n){"ace/theme/textmate"===t||"./theme/textmate"===t?n(0,e("./theme/textmate")):a?a(t,n):console.error("loader is not configured")}(n,(function(e,o){o&&(t.$loaded[n]=o),t._emit("load.module",{name:n,module:o});var i=t.$loading[n];t.$loading[n]=null,i.forEach((function(e){e&&e(o)}))}))};if(!t.get("packaged"))return l();i.loadScript(t.moduleUrl(n,s),l),c()}};if(t.dynamicModules[n])t.dynamicModules[n]().then((function(e){e.default?l(e.default):l(e)}));else{try{r=this.$require(n)}catch(e){}l(r||t.$loaded[n])}},t.$require=function(e){if("function"==typeof n.require)return n.require(e)},t.setModuleLoader=function(e,n){t.dynamicModules[e]=n};var c=function(){l.basePath||l.workerPath||l.modePath||l.themePath||Object.keys(l.$moduleUrls).length||(console.error("Unable to infer path to ace from script src,","use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes","or with webpack use ace/webpack-resolver"),c=function(){})};t.version="1.32.0"})),ace.define("ace/loader_build",["require","exports","module","ace/lib/fixoldbrowsers","ace/config"],(function(e,t,o){"use strict";e("./lib/fixoldbrowsers");var i=e("./config");i.setLoader((function(t,n){e([t],(function(e){n(null,e)}))}));var r=function(){return this||"undefined"!=typeof window&&window}();function s(t){if(r&&r.document){i.set("packaged",t||e.packaged||o.packaged||r.define&&n.amdD.packaged);var s={},a="",l=document.currentScript||document._currentScript,c=l&&l.ownerDocument||document;l&&l.src&&(a=l.src.split(/[?#]/)[0].split("/").slice(0,-1).join("/")||"");for(var u,h=c.getElementsByTagName("script"),d=0;d ["+this.end.row+"/"+this.end.column+"]"},e.prototype.contains=function(e,t){return 0==this.compare(e,t)},e.prototype.compareRange=function(e){var t,n=e.end,o=e.start;return 1==(t=this.compare(n.row,n.column))?1==(t=this.compare(o.row,o.column))?2:0==t?1:0:-1==t?-2:-1==(t=this.compare(o.row,o.column))?-1:1==t?42:0},e.prototype.comparePoint=function(e){return this.compare(e.row,e.column)},e.prototype.containsRange=function(e){return 0==this.comparePoint(e.start)&&0==this.comparePoint(e.end)},e.prototype.intersects=function(e){var t=this.compareRange(e);return-1==t||0==t||1==t},e.prototype.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},e.prototype.isStart=function(e,t){return this.start.row==e&&this.start.column==t},e.prototype.setStart=function(e,t){"object"==typeof e?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},e.prototype.setEnd=function(e,t){"object"==typeof e?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},e.prototype.inside=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)&&!this.isStart(e,t)},e.prototype.insideStart=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)},e.prototype.insideEnd=function(e,t){return 0==this.compare(e,t)&&!this.isStart(e,t)},e.prototype.compare=function(e,t){return this.isMultiLine()||e!==this.start.row?ethis.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0:tthis.end.column?1:0},e.prototype.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},e.prototype.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},e.prototype.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},e.prototype.clipRows=function(t,n){if(this.end.row>n)var o={row:n+1,column:0};else this.end.rown)var i={row:n+1,column:0};else this.start.row1?++h>4&&(h=1):h=1,r.isIE){var s=Math.abs(e.clientX-a)>5||Math.abs(e.clientY-l)>5;c&&!s||(h=1),c&&clearTimeout(c),c=setTimeout((function(){c=null}),n[h-1]||600),1==h&&(a=e.clientX,l=e.clientY)}if(e._clicks=h,o[i]("mousedown",e),h>4)h=0;else if(h>1)return o[i](d[h],e)}Array.isArray(e)||(e=[e]),e.forEach((function(e){u(e,"mousedown",p,s)}))};var d=function(e){return(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)};function p(e,t,n){var o=d(t);if(!r.isMac&&s){if(t.getModifierState&&(t.getModifierState("OS")||t.getModifierState("Win"))&&(o|=8),s.altGr){if(!(3&~o))return;s.altGr=0}if(18===n||17===n){var l="location"in t?t.location:t.keyLocation;17===n&&1===l?1==s[n]&&(a=t.timeStamp):18===n&&3===o&&2===l&&t.timeStamp-a<50&&(s.altGr=!0)}}if(n in i.MODIFIER_KEYS&&(n=-1),o||13!==n||3!==(l="location"in t?t.location:t.keyLocation)||(e(t,o,-n),!t.defaultPrevented)){if(r.isChromeOS&&8&o){if(e(t,o,n),t.defaultPrevented)return;o&=-9}return!!(o||n in i.FUNCTION_KEYS||n in i.PRINTABLE_KEYS)&&e(t,o,n)}}function g(){s=Object.create(null)}if(t.getModifierString=function(e){return i.KEY_MODS[d(e)]},t.addCommandKeyListener=function(e,n,o){if(r.isOldGecko||r.isOpera&&!("KeyboardEvent"in window)){var i=null;u(e,"keydown",(function(e){i=e.keyCode}),o),u(e,"keypress",(function(e){return p(n,e,i)}),o)}else{var a=null;u(e,"keydown",(function(e){s[e.keyCode]=(s[e.keyCode]||0)+1;var t=p(n,e,e.keyCode);return a=e.defaultPrevented,t}),o),u(e,"keypress",(function(e){a&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),a=null)}),o),u(e,"keyup",(function(e){s[e.keyCode]=null}),o),s||(g(),u(window,"focus",g))}},"object"==typeof window&&window.postMessage&&!r.isOldIE){var m=1;t.nextTick=function(e,n){n=n||window;var o="zero-timeout-message-"+m++,i=function(r){r.data==o&&(t.stopPropagation(r),h(n,"message",i),e())};u(n,"message",i),n.postMessage(o,"*")}}t.$idleBlocked=!1,t.onIdle=function(e,n){return setTimeout((function n(){t.$idleBlocked?setTimeout(n,100):e()}),n)},t.$idleBlockId=null,t.blockIdle=function(e){t.$idleBlockId&&clearTimeout(t.$idleBlockId),t.$idleBlocked=!0,t.$idleBlockId=setTimeout((function(){t.$idleBlocked=!1}),e||100)},t.nextFrame="object"==typeof window&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}})),ace.define("ace/clipboard",["require","exports","module"],(function(e,t,n){"use strict";var o;n.exports={lineMode:!1,pasteCancelled:function(){return!!(o&&o>Date.now()-50)||(o=!1)},cancel:function(){o=Date.now()}}})),ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/config","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/clipboard","ace/lib/keys"],(function(e,t,n){"use strict";var o=e("../lib/event"),i=e("../config").nls,r=e("../lib/useragent"),s=e("../lib/dom"),a=e("../lib/lang"),l=e("../clipboard"),c=r.isChrome<18,u=r.isIE,h=r.isChrome>63,d=400,p=e("../lib/keys"),g=p.KEY_MODS,m=r.isIOS,f=m?/\s/:/\n/,y=r.isMobile;t.TextInput=function(e,t){var n=s.createElement("textarea");n.className="ace_text-input",n.setAttribute("wrap","off"),n.setAttribute("autocorrect","off"),n.setAttribute("autocapitalize","off"),n.setAttribute("spellcheck",!1),n.style.opacity="0",e.insertBefore(n,e.firstChild);var v=!1,b=!1,w=!1,x=!1,k="";y||(n.style.fontSize="1px");var C=!1,$=!1,S="",E=0,O=0,T=0,A=Number.MAX_SAFE_INTEGER,_=Number.MIN_SAFE_INTEGER,L=0;try{var M=document.activeElement===n}catch(e){}this.setNumberOfExtraLines=function(e){A=Number.MAX_SAFE_INTEGER,_=Number.MIN_SAFE_INTEGER,L=e<0?0:e},this.setAriaOptions=function(e){if(e.activeDescendant?(n.setAttribute("aria-haspopup","true"),n.setAttribute("aria-autocomplete",e.inline?"both":"list"),n.setAttribute("aria-activedescendant",e.activeDescendant)):(n.setAttribute("aria-haspopup","false"),n.setAttribute("aria-autocomplete","both"),n.removeAttribute("aria-activedescendant")),e.role&&n.setAttribute("role",e.role),e.setLabel&&(n.setAttribute("aria-roledescription",i("editor")),t.session)){var o=t.session.selection.cursor.row;n.setAttribute("aria-label",i("Cursor at row $0",[o+1]))}},this.setAriaOptions({role:"textbox"}),o.addListener(n,"blur",(function(e){$||(t.onBlur(e),M=!1)}),t),o.addListener(n,"focus",(function(e){if(!$){if(M=!0,r.isEdge)try{if(!document.hasFocus())return}catch(e){}t.onFocus(e),r.isEdge?setTimeout(N):N()}}),t),this.$focusScroll=!1,this.focus=function(){if(this.setAriaOptions({setLabel:t.renderer.enableKeyboardAccessibility}),k||h||"browser"==this.$focusScroll)return n.focus({preventScroll:!0});var e=n.style.top;n.style.position="fixed",n.style.top="0px";try{var o=0!=n.getBoundingClientRect().top}catch(e){return}var i=[];if(o)for(var r=n.parentElement;r&&1==r.nodeType;)i.push(r),r.setAttribute("ace_nocontext",!0),r=!r.parentElement&&r.getRootNode?r.getRootNode().host:r.parentElement;n.focus({preventScroll:!0}),o&&i.forEach((function(e){e.removeAttribute("ace_nocontext")})),setTimeout((function(){n.style.position="","0px"==n.style.top&&(n.style.top=e)}),0)},this.blur=function(){n.blur()},this.isFocused=function(){return M},t.on("beforeEndOperation",(function(){var e=t.curOp,o=e&&e.command&&e.command.name;if("insertstring"!=o){var i=o&&(e.docChanged||e.selectionChanged);w&&i&&(S=n.value="",U()),N()}}));var R=function(e,n){for(var o=n,i=1;i<=e-A&&i<2*L+1;i++)o+=t.session.getLine(e-i).length+1;return o},N=m?function(e){if(M&&(!v||e)&&!x){e||(e="");var o="\n ab"+e+"cde fg\n";o!=n.value&&(n.value=S=o);var i=4+(e.length||(t.selection.isEmpty()?0:1));4==E&&O==i||n.setSelectionRange(4,i),E=4,O=i}}:function(){if(!w&&!x&&(M||P)){w=!0;var e=0,o=0,i="";if(t.session){var r=t.selection,s=r.getRange(),a=r.cursor.row;a===_+1?_=(A=_+1)+2*L:a===A-1?A=(_=A-1)-2*L:(a_+1)&&(A=a>L?a-L:0,_=a>L?a+L:2*L);for(var l=[],c=A;c<=_;c++)l.push(t.session.getLine(c));if(i=l.join("\n"),e=R(s.start.row,s.start.column),o=R(s.end.row,s.end.column),s.start.row_){var h=t.session.getLine(_+1);o=s.end.row>_+1?h.length:s.end.column,o+=i.length+1,i=i+"\n"+h}else y&&a>0&&(i="\n"+i,o+=1,e+=1);i.length>d&&(e0&&S[d]==e[d];)d++,a--;for(c=c.slice(d),d=1;l>0&&S.length-d>E-1&&S[S.length-d]==e[e.length-d];)d++,l--;u-=d-1,h-=d-1;var p=c.length-d+1;if(p<0&&(a=-p,p=0),c=c.slice(0,p),!(o||c||u||a||l||h))return"";x=!0;var g=!1;return r.isAndroid&&". "==c&&(c=" ",g=!0),c&&!a&&!l&&!u&&!h||C?t.onTextInput(c):t.onTextInput(c,{extendLeft:a,extendRight:l,restoreStart:u,restoreEnd:h}),x=!1,S=e,E=i,O=s,T=h,g?"\n":c},F=function(e){if(w)return V();if(e&&e.inputType){if("historyUndo"==e.inputType)return t.execCommand("undo");if("historyRedo"==e.inputType)return t.execCommand("redo")}var o=n.value,i=D(o,!0);(o.length>500||f.test(i)||y&&E<1&&E==O)&&N()},B=function(e,t,n){var o=e.clipboardData||window.clipboardData;if(o&&!c){var i=u||n?"Text":"text/plain";try{return t?!1!==o.setData(i,t):o.getData(i)}catch(e){if(!n)return B(e,t,!0)}}},W=function(e,i){var r=t.getCopyText();if(!r)return o.preventDefault(e);B(e,r)?(m&&(N(r),v=r,setTimeout((function(){v=!1}),10)),i?t.onCut():t.onCopy(),o.preventDefault(e)):(v=!0,n.value=r,n.select(),setTimeout((function(){v=!1,N(),i?t.onCut():t.onCopy()})))},H=function(e){W(e,!0)},j=function(e){W(e,!1)},z=function(e){var i=B(e);l.pasteCancelled()||("string"==typeof i?(i&&t.onPaste(i,e),r.isIE&&setTimeout(N),o.preventDefault(e)):(n.value="",b=!0))};o.addCommandKeyListener(n,t.onCommandKey.bind(t),t),o.addListener(n,"select",(function(e){w||(v?v=!1:function(e){return 0===e.selectionStart&&e.selectionEnd>=S.length&&e.value===S&&S&&e.selectionEnd!==O}(n)?(t.selectAll(),N()):y&&n.selectionStart!=E&&N())}),t),o.addListener(n,"input",F,t),o.addListener(n,"cut",H,t),o.addListener(n,"copy",j,t),o.addListener(n,"paste",z,t),"oncut"in n&&"oncopy"in n&&"onpaste"in n||o.addListener(e,"keydown",(function(e){if((!r.isMac||e.metaKey)&&e.ctrlKey)switch(e.keyCode){case 67:j(e);break;case 86:z(e);break;case 88:H(e)}}),t);var V=function(){if(w&&t.onCompositionUpdate&&!t.$readOnly){if(C)return G();if(w.useTextareaForIME)t.onCompositionUpdate(n.value);else{var e=n.value;D(e),w.markerRange&&(w.context&&(w.markerRange.start.column=w.selectionStart=w.context.compositionStartOffset),w.markerRange.end.column=w.markerRange.start.column+O-w.selectionStart+T)}}},U=function(e){t.onCompositionEnd&&!t.$readOnly&&(w=!1,t.onCompositionEnd(),t.off("mousedown",G),e&&F())};function G(){$=!0,n.blur(),n.focus(),$=!1}var K,q=a.delayedCall(V,50).schedule.bind(null,null);function Y(){clearTimeout(K),K=setTimeout((function(){k&&(n.style.cssText=k,k=""),t.renderer.$isMousePressed=!1,t.renderer.$keepTextAreaAtCursor&&t.renderer.$moveTextAreaToCursor()}),0)}o.addListener(n,"compositionstart",(function(e){if(!w&&t.onCompositionStart&&!t.$readOnly&&(w={},!C)){e.data&&(w.useTextareaForIME=!1),setTimeout(V,0),t._signal("compositionStart"),t.on("mousedown",G);var o=t.getSelectionRange();o.end.row=o.start.row,o.end.column=o.start.column,w.markerRange=o,w.selectionStart=E,t.onCompositionStart(w),w.useTextareaForIME?(S=n.value="",E=0,O=0):(n.msGetInputContext&&(w.context=n.msGetInputContext()),n.getInputContext&&(w.context=n.getInputContext()))}}),t),o.addListener(n,"compositionupdate",V,t),o.addListener(n,"keyup",(function(e){27==e.keyCode&&n.value.lengthO&&"\n"==S[r]?s=p.end:oO&&S.slice(0,r).split("\n").length>2?s=p.down:r>O&&" "==S[r-1]?(s=p.right,a=g.option):(r>O||r==O&&O!=E&&o==r)&&(s=p.right),o!==r&&(a|=g.shift),s){if(!t.onCommandKey({},a,s)&&t.commands){s=p.keyCodeToString(s);var l=t.commands.findKeyCommand(a,s);l&&t.execCommand(l)}E=o,O=r,N("")}}};document.addEventListener("selectionchange",r),t.on("destroy",(function(){document.removeEventListener("selectionchange",r)}))}(0,t,n),this.destroy=function(){n.parentElement&&n.parentElement.removeChild(n)}},t.$setUserAgentForTests=function(e,t){y=e,m=t}})),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/useragent"],(function(e,t,n){"use strict";var o=e("../lib/useragent"),i=function(){function e(e){e.$clickSelection=null;var t=e.editor;t.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),t.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),t.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),t.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),t.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e)),["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"].forEach((function(t){e[t]=this[t]}),this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}return e.prototype.onMouseDown=function(e){var t=e.inSelection(),n=e.getDocumentPosition();this.mousedownEvent=e;var i=this.editor,r=e.getButton();return 0!==r?((i.getSelectionRange().isEmpty()||1==r)&&i.selection.moveToPosition(n),void(2==r&&(i.textInput.onContextMenu(e.domEvent),o.isMozilla||e.preventDefault()))):(this.mousedownEvent.time=Date.now(),!t||i.isFocused()||(i.focus(),!this.$focusTimeout||this.$clickSelection||i.inMultiSelectMode)?(this.captureMouse(e),this.startSelect(n,e.domEvent._clicks>1),e.preventDefault()):(this.setState("focusWait"),void this.captureMouse(e)))},e.prototype.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var n=this.editor;this.mousedownEvent&&(this.mousedownEvent.getShiftKey()?n.selection.selectToPosition(e):t||n.selection.moveToPosition(e),t||this.select(),n.setStyle("ace_selecting"),this.setState("select"))},e.prototype.select=function(){var e,t=this.editor,n=t.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var o=this.$clickSelection.comparePoint(n);if(-1==o)e=this.$clickSelection.end;else if(1==o)e=this.$clickSelection.start;else{var i=r(this.$clickSelection,n);n=i.cursor,e=i.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(n),t.renderer.scrollCursorIntoView()},e.prototype.extendSelectionBy=function(e){var t,n=this.editor,o=n.renderer.screenToTextCoordinates(this.x,this.y),i=n.selection[e](o.row,o.column);if(this.$clickSelection){var s=this.$clickSelection.comparePoint(i.start),a=this.$clickSelection.comparePoint(i.end);if(-1==s&&a<=0)t=this.$clickSelection.end,i.end.row==o.row&&i.end.column==o.column||(o=i.start);else if(1==a&&s>=0)t=this.$clickSelection.start,i.start.row==o.row&&i.start.column==o.column||(o=i.end);else if(-1==s&&1==a)o=i.end,t=i.start;else{var l=r(this.$clickSelection,o);o=l.cursor,t=l.anchor}n.selection.setSelectionAnchor(t.row,t.column)}n.selection.selectToPosition(o),n.renderer.scrollCursorIntoView()},e.prototype.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting")},e.prototype.focusWait=function(){var e,t,n,o,i=(e=this.mousedownEvent.x,t=this.mousedownEvent.y,n=this.x,o=this.y,Math.sqrt(Math.pow(n-e,2)+Math.pow(o-t,2))),r=Date.now();(i>0||r-this.mousedownEvent.time>this.$focusTimeout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},e.prototype.onDoubleClick=function(e){var t=e.getDocumentPosition(),n=this.editor,o=n.session.getBracketRange(t);o?(o.isEmpty()&&(o.start.column--,o.end.column++),this.setState("select")):(o=n.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=o,this.select()},e.prototype.onTripleClick=function(e){var t=e.getDocumentPosition(),n=this.editor;this.setState("selectByLines");var o=n.getSelectionRange();o.isMultiLine()&&o.contains(t.row,t.column)?(this.$clickSelection=n.selection.getLineRange(o.start.row),this.$clickSelection.end=n.selection.getLineRange(o.end.row).end):this.$clickSelection=n.selection.getLineRange(t.row),this.select()},e.prototype.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},e.prototype.onMouseWheel=function(e){if(!e.getAccelKey()){e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var n=this.$lastScroll,o=e.domEvent.timeStamp,i=o-n.t,r=i?e.wheelX/i:n.vx,s=i?e.wheelY/i:n.vy;i<550&&(r=(r+n.vx)/2,s=(s+n.vy)/2);var a=Math.abs(r/s),l=!1;return a>=1&&t.renderer.isScrollableBy(e.wheelX*e.speed,0)&&(l=!0),a<=1&&t.renderer.isScrollableBy(0,e.wheelY*e.speed)&&(l=!0),l?n.allowed=o:o-n.allowed<550&&(Math.abs(r)<=1.5*Math.abs(n.vx)&&Math.abs(s)<=1.5*Math.abs(n.vy)?(l=!0,n.allowed=o):n.allowed=0),n.t=o,n.vx=r,n.vy=s,l?(t.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()):void 0}},e}();function r(e,t){if(e.start.row==e.end.row)var n=2*t.column-e.start.column-e.end.column;else if(e.start.row!=e.end.row-1||e.start.column||e.end.column)n=2*t.row-e.start.row-e.end.row;else n=t.column-4;return n<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}i.prototype.selectEnd=i.prototype.selectByLinesEnd,i.prototype.selectAllEnd=i.prototype.selectByLinesEnd,i.prototype.selectByWordsEnd=i.prototype.selectByLinesEnd,t.DefaultHandlers=i})),ace.define("ace/tooltip",["require","exports","module","ace/lib/dom","ace/lib/event","ace/range"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=this&&this.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],o=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&o>=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},s=e("./lib/dom"),a=e("./lib/event"),l=e("./range").Range,c="ace_tooltip",u=function(){function e(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}return e.prototype.$init=function(){return this.$element=s.createElement("div"),this.$element.className=c,this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},e.prototype.getElement=function(){return this.$element||this.$init()},e.prototype.setText=function(e){this.getElement().textContent=e},e.prototype.setHtml=function(e){this.getElement().innerHTML=e},e.prototype.setPosition=function(e,t){this.getElement().style.left=e+"px",this.getElement().style.top=t+"px"},e.prototype.setClassName=function(e){s.addCssClass(this.getElement(),e)},e.prototype.setTheme=function(e){this.$element.className=c+" "+(e.isDark?"ace_dark ":"")+(e.cssClass||"")},e.prototype.show=function(e,t,n){null!=e&&this.setText(e),null!=t&&null!=n&&this.setPosition(t,n),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},e.prototype.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.getElement().className=c,this.isOpen=!1)},e.prototype.getHeight=function(){return this.getElement().offsetHeight},e.prototype.getWidth=function(){return this.getElement().offsetWidth},e.prototype.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)},e}(),h=new(function(){function e(){this.popups=[]}return e.prototype.addPopup=function(e){this.popups.push(e),this.updatePopups()},e.prototype.removePopup=function(e){var t=this.popups.indexOf(e);-1!==t&&(this.popups.splice(t,1),this.updatePopups())},e.prototype.updatePopups=function(){var e,t,n,o;this.popups.sort((function(e,t){return t.priority-e.priority}));var i=[];try{for(var s=r(this.popups),a=s.next();!a.done;a=s.next()){var l=a.value,c=!0;try{for(var u=(n=void 0,r(i)),h=u.next();!h.done;h=u.next()){var d=h.value;if(this.doPopupsOverlap(d,l)){c=!1;break}}}catch(e){n={error:e}}finally{try{h&&!h.done&&(o=u.return)&&o.call(u)}finally{if(n)throw n.error}}c?i.push(l):l.hide()}}catch(t){e={error:t}}finally{try{a&&!a.done&&(t=s.return)&&t.call(s)}finally{if(e)throw e.error}}},e.prototype.doPopupsOverlap=function(e,t){var n=e.getElement().getBoundingClientRect(),o=t.getElement().getBoundingClientRect();return n.lefto.left&&n.topo.top},e}());t.popupManager=h,t.Tooltip=u;var d=function(e){function t(t){void 0===t&&(t=document.body);var n=e.call(this,t)||this;n.timeout=void 0,n.lastT=0,n.idleTime=350,n.lastEvent=void 0,n.onMouseOut=n.onMouseOut.bind(n),n.onMouseMove=n.onMouseMove.bind(n),n.waitForHover=n.waitForHover.bind(n),n.hide=n.hide.bind(n);var o=n.getElement();return o.style.whiteSpace="pre-wrap",o.style.pointerEvents="auto",o.addEventListener("mouseout",n.onMouseOut),o.tabIndex=-1,o.addEventListener("blur",function(){o.contains(document.activeElement)||this.hide()}.bind(n)),o.addEventListener("wheel",a.stopPropagation),n}return i(t,e),t.prototype.addToEditor=function(e){e.on("mousemove",this.onMouseMove),e.on("mousedown",this.hide),e.renderer.getMouseEventTarget().addEventListener("mouseout",this.onMouseOut,!0)},t.prototype.removeFromEditor=function(e){e.off("mousemove",this.onMouseMove),e.off("mousedown",this.hide),e.renderer.getMouseEventTarget().removeEventListener("mouseout",this.onMouseOut,!0),this.timeout&&(clearTimeout(this.timeout),this.timeout=null)},t.prototype.onMouseMove=function(e,t){this.lastEvent=e,this.lastT=Date.now();var n=t.$mouseHandler.isMousePressed;if(this.isOpen){var o=this.lastEvent&&this.lastEvent.getDocumentPosition();this.range&&this.range.contains(o.row,o.column)&&!n&&!this.isOutsideOfText(this.lastEvent)||this.hide()}this.timeout||n||(this.lastEvent=e,this.timeout=setTimeout(this.waitForHover,this.idleTime))},t.prototype.waitForHover=function(){this.timeout&&clearTimeout(this.timeout);var e=Date.now()-this.lastT;this.idleTime-e>10?this.timeout=setTimeout(this.waitForHover,this.idleTime-e):(this.timeout=null,this.lastEvent&&!this.isOutsideOfText(this.lastEvent)&&this.$gatherData(this.lastEvent,this.lastEvent.editor))},t.prototype.isOutsideOfText=function(e){var t=e.editor,n=e.getDocumentPosition(),o=t.session.getLine(n.row);if(n.column==o.length){var i=t.renderer.pixelToScreenCoordinates(e.clientX,e.clientY),r=t.session.documentToScreenPosition(n.row,n.column);if(r.column!=i.column||r.row!=i.row)return!0}return!1},t.prototype.setDataProvider=function(e){this.$gatherData=e},t.prototype.showForRange=function(e,t,n,o){if(!(o&&o!=this.lastEvent||this.isOpen&&document.activeElement==this.getElement())){var i=e.renderer;this.isOpen||(h.addPopup(this),this.$registerCloseEvents(),this.setTheme(i.theme)),this.isOpen=!0,this.addMarker(t,e.session),this.range=l.fromPoints(t.start,t.end);var r=i.textToScreenCoordinates(t.start.row,t.start.column),s=i.scroller.getBoundingClientRect();r.pageX=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},s=e("../lib/dom"),a=e("../lib/event"),l=e("../tooltip").Tooltip,c=e("../config").nls;t.GutterHandler=function(e){var t,n,o=e.editor,i=o.renderer.$gutterLayer,r=new u(o);function l(){t&&(t=clearTimeout(t)),r.isOpen&&(r.hideTooltip(),o.off("mousewheel",l))}function c(e){r.setPosition(e.x,e.y)}e.editor.setDefaultHandler("guttermousedown",(function(t){if(o.isFocused()&&0==t.getButton()&&"foldWidgets"!=i.getRegion(t)){var n=t.getDocumentPosition().row,r=o.session.selection;if(t.getShiftKey())r.selectTo(n,0);else{if(2==t.domEvent.detail)return o.selectAll(),t.preventDefault();e.$clickSelection=o.selection.getLineRange(n)}return e.setState("selectByLines"),e.captureMouse(t),t.preventDefault()}})),e.editor.setDefaultHandler("guttermousemove",(function(a){var u=a.domEvent.target||a.domEvent.srcElement;if(s.hasCssClass(u,"ace_fold-widget"))return l();r.isOpen&&e.$tooltipFollowsMouse&&c(a),n=a,t||(t=setTimeout((function(){t=null,n&&!e.isMousePressed?function(){var t=n.getDocumentPosition().row;if(t==o.session.getLength()){var s=o.renderer.pixelToScreenCoordinates(0,n.y).row,a=n.$pos;if(s>o.session.documentToScreenRow(a.row,a.column))return l()}if(r.showTooltip(t),r.isOpen)if(o.on("mousewheel",l),e.$tooltipFollowsMouse)c(n);else{var u=n.getGutterRow(),h=i.$lines.get(u);if(h){var d=h.element.querySelector(".ace_gutter_annotation").getBoundingClientRect(),p=r.getElement().style;p.left=d.right+"px",p.top=d.bottom+"px"}else c(n)}}():l()}),50))})),a.addListener(o.renderer.$gutter,"mouseout",(function(e){n=null,r.isOpen&&!t&&(t=setTimeout((function(){t=null,l()}),50))}),o),o.on("changeSession",l),o.on("input",l)};var u=function(e){function t(t){var n=e.call(this,t.container)||this;return n.editor=t,n}return i(t,e),t.prototype.setPosition=function(e,t){var n=window.innerWidth||document.documentElement.clientWidth,o=window.innerHeight||document.documentElement.clientHeight,i=this.getWidth(),r=this.getHeight();(e+=15)+i>n&&(e-=e+i-n),(t+=15)+r>o&&(t-=20+r),l.prototype.setPosition.call(this,e,t)},Object.defineProperty(t,"annotationLabels",{get:function(){return{error:{singular:c("error"),plural:c("errors")},warning:{singular:c("warning"),plural:c("warnings")},info:{singular:c("information message"),plural:c("information messages")}}},enumerable:!1,configurable:!0}),t.prototype.showTooltip=function(e){var n,o=this.editor.renderer.$gutterLayer,i=o.$annotations[e];n=i?{text:Array.from(i.text),type:Array.from(i.type)}:{text:[],type:[]};var r=o.session.getFoldLine(e);if(r&&o.$showFoldedAnnotations){for(var s,a={error:[],warning:[],info:[]},l=e+1;l<=r.end.row;l++)if(o.$annotations[l])for(var c=0;c ").concat(n.text[l]);d[n.type[l].replace("_fold","")].push(g)}var m=[].concat(d.error,d.warning,d.info).join("
");this.setHtml(m),this.$element.setAttribute("aria-live","polite"),this.isOpen||(this.setTheme(this.editor.renderer.theme),this.setClassName("ace_gutter-tooltip")),this.show(),this.editor._signal("showGutterTooltip",this)},t.prototype.hideTooltip=function(){this.$element.removeAttribute("aria-live"),this.hide(),this.editor._signal("hideGutterTooltip",this)},t.annotationsToSummaryString=function(e){var n,o,i=[];try{for(var s=r(["error","warning","info"]),a=s.next();!a.done;a=s.next()){var l=a.value;if(e[l].length){var c=1===e[l].length?t.annotationLabels[l].singular:t.annotationLabels[l].plural;i.push("".concat(e[l].length," ").concat(c))}}}catch(e){n={error:e}}finally{try{a&&!a.done&&(o=s.return)&&o.call(s)}finally{if(n)throw n.error}}return i.join(", ")},t}(l);t.GutterTooltip=u})),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],(function(e,t,n){"use strict";var o=e("../lib/event"),i=e("../lib/useragent"),r=function(){function e(e,t){this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1}return e.prototype.stopPropagation=function(){o.stopPropagation(this.domEvent),this.propagationStopped=!0},e.prototype.preventDefault=function(){o.preventDefault(this.domEvent),this.defaultPrevented=!0},e.prototype.stop=function(){this.stopPropagation(),this.preventDefault()},e.prototype.getDocumentPosition=function(){return this.$pos||(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY)),this.$pos},e.prototype.getGutterRow=function(){var e=this.getDocumentPosition().row;return this.editor.session.documentToScreenRow(e,0)-this.editor.session.documentToScreenRow(this.editor.renderer.$gutterLayer.$lines.get(0).row,0)},e.prototype.inSelection=function(){if(null!==this.$inSelection)return this.$inSelection;var e=this.editor.getSelectionRange();if(e.isEmpty())this.$inSelection=!1;else{var t=this.getDocumentPosition();this.$inSelection=e.contains(t.row,t.column)}return this.$inSelection},e.prototype.getButton=function(){return o.getButton(this.domEvent)},e.prototype.getShiftKey=function(){return this.domEvent.shiftKey},e.prototype.getAccelKey=function(){return i.isMac?this.domEvent.metaKey:this.domEvent.ctrlKey},e}();t.MouseEvent=r})),ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=e("../lib/event"),r=e("../lib/useragent");function s(e){var t=e.editor,n=o.createElement("div");n.style.cssText="top:-100px;position:absolute;z-index:2147483647;opacity:0.5",n.textContent=" ",["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"].forEach((function(t){e[t]=this[t]}),this),t.on("mousedown",this.onMouseDown.bind(e));var s,l,c,u,h,d,p,g,m,f,y,v=t.container,b=0;function w(){var e=d;(function(e,n){var o=Date.now(),i=!n||e.row!=n.row,r=!n||e.column!=n.column;!f||i||r?(t.moveCursorToPosition(e),f=o,y={x:l,y:c}):a(y.x,y.y,l,c)>5?f=null:o-f>=200&&(t.renderer.scrollCursorIntoView(),f=null)})(d=t.renderer.screenToTextCoordinates(l,c),e),function(e,n){var o=Date.now(),i=t.renderer.layerConfig.lineHeight,r=t.renderer.layerConfig.characterWidth,s=t.renderer.scroller.getBoundingClientRect(),a={x:{left:l-s.left,right:s.right-l},y:{top:c-s.top,bottom:s.bottom-c}},u=Math.min(a.x.left,a.x.right),h=Math.min(a.y.top,a.y.bottom),d={row:e.row,column:e.column};u/r<=2&&(d.column+=a.x.left=200&&t.renderer.scrollCursorIntoView(d):m=o:m=null}(d,e)}function x(){h=t.selection.toOrientedRange(),s=t.session.addMarker(h,"ace_selection",t.getSelectionStyle()),t.clearSelection(),t.isFocused()&&t.renderer.$cursorLayer.setBlinking(!1),clearInterval(u),w(),u=setInterval(w,20),b=0,i.addListener(document,"mousemove",$)}function k(){clearInterval(u),t.session.removeMarker(s),s=null,t.selection.fromOrientedRange(h),t.isFocused()&&!g&&t.$resetCursorStyle(),h=null,d=null,b=0,m=null,f=null,i.removeListener(document,"mousemove",$)}this.onDragStart=function(e){if(this.cancelDrag||!v.draggable){var o=this;return setTimeout((function(){o.startSelect(),o.captureMouse(e)}),0),e.preventDefault()}h=t.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=t.getReadOnly()?"copy":"copyMove",t.container.appendChild(n),i.setDragImage&&i.setDragImage(n,0,0),setTimeout((function(){t.container.removeChild(n)})),i.clearData(),i.setData("Text",t.session.getTextRange()),g=!0,this.setState("drag")},this.onDragEnd=function(e){if(v.draggable=!1,g=!1,this.setState(null),!t.getReadOnly()){var n=e.dataTransfer.dropEffect;p||"move"!=n||t.session.remove(t.getSelectionRange()),t.$resetCursorStyle()}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(!t.getReadOnly()&&S(e.dataTransfer))return l=e.clientX,c=e.clientY,s||x(),b++,e.dataTransfer.dropEffect=p=E(e),i.preventDefault(e)},this.onDragOver=function(e){if(!t.getReadOnly()&&S(e.dataTransfer))return l=e.clientX,c=e.clientY,s||(x(),b++),null!==C&&(C=null),e.dataTransfer.dropEffect=p=E(e),i.preventDefault(e)},this.onDragLeave=function(e){if(--b<=0&&s)return k(),p=null,i.preventDefault(e)},this.onDrop=function(e){if(d){var n=e.dataTransfer;if(g)switch(p){case"move":h=h.contains(d.row,d.column)?{start:d,end:d}:t.moveText(h,d);break;case"copy":h=t.moveText(h,d,!0)}else{var o=n.getData("Text");h={start:d,end:t.session.insert(d,o)},t.focus(),p=null}return k(),i.preventDefault(e)}},i.addListener(v,"dragstart",this.onDragStart.bind(e),t),i.addListener(v,"dragend",this.onDragEnd.bind(e),t),i.addListener(v,"dragenter",this.onDragEnter.bind(e),t),i.addListener(v,"dragover",this.onDragOver.bind(e),t),i.addListener(v,"dragleave",this.onDragLeave.bind(e),t),i.addListener(v,"drop",this.onDrop.bind(e),t);var C=null;function $(){null==C&&(C=setTimeout((function(){null!=C&&s&&k()}),20))}function S(e){var t=e.types;return!t||Array.prototype.some.call(t,(function(e){return"text/plain"==e||"Text"==e}))}function E(e){var t=["copy","copymove","all","uninitialized"],n=r.isMac?e.altKey:e.ctrlKey,o="uninitialized";try{o=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var i="none";return n&&t.indexOf(o)>=0?i="copy":["move","copymove","linkmove","all","uninitialized"].indexOf(o)>=0?i="move":t.indexOf(o)>=0&&(i="copy"),i}}function a(e,t,n,o){return Math.sqrt(Math.pow(n-e,2)+Math.pow(o-t,2))}(function(){this.dragWait=function(){Date.now()-this.mousedownEvent.time>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){this.editor.container.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.$resetCursorStyle(),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor;e.container.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var t=r.isWin?"default":"move";e.renderer.setCursorStyle(t),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;r.isIE&&"dragReady"==this.state&&a(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y)>3&&t.dragDrop(),"dragWait"===this.state&&a(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y)>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))},this.onMouseDown=function(e){if(this.$dragEnabled){this.mousedownEvent=e;var t=this.editor,n=e.inSelection(),o=e.getButton();if(1===(e.domEvent.detail||1)&&0===o&&n){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var i=e.domEvent.target||e.domEvent.srcElement;"unselectable"in i&&(i.unselectable="on"),t.getDragDelay()?(r.isWebKit&&(this.cancelDrag=!0,t.container.draggable=!0),this.setState("dragWait")):this.startDrag(),this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}}).call(s.prototype),t.DragdropHandler=s})),ace.define("ace/mouse/touch_handler",["require","exports","module","ace/mouse/mouse_event","ace/lib/event","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("./mouse_event").MouseEvent,i=e("../lib/event"),r=e("../lib/dom");t.addTouchListeners=function(e,t){var n,s,a,l,c,u,h,d,p,g="scroll",m=0,f=0,y=0,v=0;function b(){var e,n,o;p||(e=window.navigator&&window.navigator.clipboard,n=!1,o=function(o){var i,s,a=o.target.getAttribute("action");if("more"==a||!n)return n=!n,i=t.getCopyText(),s=t.session.getUndoManager().hasUndo(),void p.replaceChild(r.buildDom(n?["span",!i&&["span",{class:"ace_mobile-button",action:"selectall"},"Select All"],i&&["span",{class:"ace_mobile-button",action:"copy"},"Copy"],i&&["span",{class:"ace_mobile-button",action:"cut"},"Cut"],e&&["span",{class:"ace_mobile-button",action:"paste"},"Paste"],s&&["span",{class:"ace_mobile-button",action:"undo"},"Undo"],["span",{class:"ace_mobile-button",action:"find"},"Find"],["span",{class:"ace_mobile-button",action:"openCommandPalette"},"Palette"]]:["span"]),p.firstChild);"paste"==a?e.readText().then((function(e){t.execCommand(a,e)})):a&&("cut"!=a&&"copy"!=a||(e?e.writeText(t.getCopyText()):document.execCommand("copy")),t.execCommand(a)),p.firstChild.style.display="none",n=!1,"openCommandPalette"!=a&&t.focus()},p=r.buildDom(["div",{class:"ace_mobile-menu",ontouchstart:function(e){g="menu",e.stopPropagation(),e.preventDefault(),t.textInput.focus()},ontouchend:function(e){e.stopPropagation(),e.preventDefault(),o(e)},onclick:o},["span"],["span",{class:"ace_mobile-button",action:"more"},"..."]],t.container));var i=t.selection.cursor,s=t.renderer.textToScreenCoordinates(i.row,i.column),a=t.renderer.textToScreenCoordinates(0,0).pageX,l=t.renderer.scrollLeft,c=t.container.getBoundingClientRect();p.style.top=s.pageY-c.top-3+"px",s.pageX-c.left1)return clearTimeout(c),c=null,a=-1,void(g="zoom");d=t.$mouseHandler.isMousePressed=!0;var r=t.renderer.layerConfig.lineHeight,u=t.renderer.layerConfig.lineHeight,p=e.timeStamp;l=p;var b=i[0],w=b.clientX,k=b.clientY;Math.abs(n-w)+Math.abs(s-k)>r&&(a=-1),n=e.clientX=w,s=e.clientY=k,y=v=0;var C=new o(e,t);if(h=C.getDocumentPosition(),p-a<500&&1==i.length&&!m)f++,e.preventDefault(),e.button=0,function(){c=null,clearTimeout(c),t.selection.moveToPosition(h);var e=f>=2?t.selection.getLineRange(h.row):t.session.getBracketRange(h);e&&!e.isEmpty()?t.selection.setRange(e):t.selection.selectWord(),g="wait"}();else{f=0;var $=t.selection.cursor,S=t.selection.isEmpty()?$:t.selection.anchor,E=t.renderer.$cursorLayer.getPixelPosition($,!0),O=t.renderer.$cursorLayer.getPixelPosition(S,!0),T=t.renderer.scroller.getBoundingClientRect(),A=t.renderer.layerConfig.offset,_=t.renderer.scrollLeft,L=function(e,t){return(e/=u)*e+(t=t/r-.75)*t};if(e.clientXR?"cursor":"anchor"),g=R<3.5?"anchor":M<3.5?"cursor":"scroll",c=setTimeout(x,450)}a=p}),t),i.addListener(e,"touchend",(function(e){d=t.$mouseHandler.isMousePressed=!1,u&&clearInterval(u),"zoom"==g?(g="",m=0):c?(t.selection.moveToPosition(h),m=0,b()):"scroll"==g?(m+=60,u=setInterval((function(){m--<=0&&(clearInterval(u),u=null),Math.abs(y)<.01&&(y=0),Math.abs(v)<.01&&(v=0),m<20&&(y*=.9),m<20&&(v*=.9);var e=t.session.getScrollTop();t.renderer.scrollBy(10*y,10*v),e==t.session.getScrollTop()&&(m=0)}),10),w()):b(),clearTimeout(c),c=null}),t),i.addListener(e,"touchmove",(function(e){c&&(clearTimeout(c),c=null);var i=e.touches;if(!(i.length>1||"zoom"==g)){var r=i[0],a=n-r.clientX,u=s-r.clientY;if("wait"==g){if(!(a*a+u*u>4))return e.preventDefault();g="cursor"}n=r.clientX,s=r.clientY,e.clientX=r.clientX,e.clientY=r.clientY;var h=e.timeStamp,d=h-l;if(l=h,"scroll"==g){var p=new o(e,t);p.speed=1,p.wheelX=a,p.wheelY=u,10*Math.abs(a)=e){for(r=h+1;r=e;)r++;for(a=h,l=r-1;a=t.length||2!=(l=n[i-1])&&3!=l||2!=(c=t[i+1])&&3!=c?4:(r&&(c=3),c==l?c:4);case 10:return 2==(l=i>0?n[i-1]:5)&&i+10&&2==n[i-1])return 2;if(r)return 4;for(p=i+1,d=t.length;p=1425&&m<=2303||64286==m;if(l=t[p],f&&(1==l||7==l))return 1}return i<1||5==(l=t[i-1])?4:n[i-1];case 5:return r=!1,s=!0,o;case 6:return a=!0,4;case 13:case 14:case 16:case 17:case 15:r=!1;case h:return 4}}function f(e){var t=e.charCodeAt(0),n=t>>8;return 0==n?t>191?0:d[t]:5==n?/[\u0591-\u05f4]/.test(e)?1:0:6==n?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(e)?12:/[\u0660-\u0669\u066b-\u066c]/.test(e)?3:1642==t?u:/[\u06f0-\u06f9]/.test(e)?2:7:32==n&&t<=8287?p[255&t]:254==n&&t>=65136?7:4}t.L=0,t.R=1,t.EN=2,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.RLE=7,t.DOT="·",t.doBidiReorder=function(e,n,u){if(e.length<2)return{};var d=e.split(""),p=new Array(d.length),y=new Array(d.length),v=[];o=u?1:0,function(e,t,n,u){var h=o?c:l,d=null,p=null,g=null,y=0,v=null,b=-1,w=null,x=null,k=[];if(!u)for(w=0,u=[];w0)if(16==v){for(w=b;w-1){for(w=b;w=0&&8==u[C];C--)t[C]=o}}(d,v,d.length,n);for(var b=0;b7&&n[b]<13||4===n[b]||n[b]===h)?v[b]=t.ON_R:b>0&&"ل"===d[b-1]&&/\u0622|\u0623|\u0625|\u0627/.test(d[b])&&(v[b-1]=v[b]=t.R_H,b++);for(d[d.length-1]===t.DOT&&(v[d.length-1]=t.B),"‫"===d[0]&&(v[0]=t.RLE),b=0;b=0&&(e=this.session.$docRowCache[n])}return e},e.prototype.getSplitIndex=function(){var e=0,t=this.session.$screenRowCache;if(t.length)for(var n,o=this.session.$getRowCacheIndex(t,this.currentRow);this.currentRow-e>0&&(n=this.session.$getRowCacheIndex(t,this.currentRow-e-1))===o;)o=n,e++;else e=this.currentRow;return e},e.prototype.updateRowLine=function(e,t){void 0===e&&(e=this.getDocumentRow());var n=e===this.session.getLength()-1?this.EOF:this.EOL;if(this.wrapIndent=0,this.line=this.session.getLine(e),this.isRtlDir=this.$isRtl||this.line.charAt(0)===this.RLE,this.session.$useWrapMode){var r=this.session.$wrapData[e];r&&(void 0===t&&(t=this.getSplitIndex()),t>0&&r.length?(this.wrapIndent=r.indent,this.wrapOffset=this.wrapIndent*this.charWidths[o.L],this.line=tt?this.session.getOverwrite()?e:e-1:t,i=o.getVisualFromLogicalIdx(n,this.bidiMap),r=this.bidiMap.bidiLevels,s=0;!this.session.getOverwrite()&&e<=t&&r[i]%2!=0&&i++;for(var a=0;at&&r[i]%2==0&&(s+=this.charWidths[r[i]]),this.wrapIndent&&(s+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset),this.isRtlDir&&(s+=this.rtlLineOffset),s},e.prototype.getSelections=function(e,t){var n,o=this.bidiMap,i=o.bidiLevels,r=[],s=0,a=Math.min(e,t)-this.wrapIndent,l=Math.max(e,t)-this.wrapIndent,c=!1,u=!1,h=0;this.wrapIndent&&(s+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset);for(var d,p=0;p=a&&dn+r/2;){if(n+=r,o===i.length-1){r=0;break}r=this.charWidths[i[++o]]}return o>0&&i[o-1]%2!=0&&i[o]%2==0?(e0&&i[o-1]%2==0&&i[o]%2!=0?t=1+(e>n?this.bidiMap.logicalFromVisual[o]:this.bidiMap.logicalFromVisual[o-1]):this.isRtlDir&&o===i.length-1&&0===r&&i[o-1]%2==0||!this.isRtlDir&&0===o&&i[o]%2!=0?t=1+this.bidiMap.logicalFromVisual[o]:(o>0&&i[o-1]%2!=0&&0!==r&&o--,t=this.bidiMap.logicalFromVisual[o]),0===t&&this.isRtlDir&&t++,t+this.wrapIndent},e}();t.BidiHandler=s})),ace.define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],(function(e,t,n){"use strict";var o=e("./lib/oop"),i=e("./lib/lang"),r=e("./lib/event_emitter").EventEmitter,s=e("./range").Range,a=function(){function e(e){this.session=e,this.doc=e.getDocument(),this.clearSelection(),this.cursor=this.lead=this.doc.createAnchor(0,0),this.anchor=this.doc.createAnchor(0,0),this.$silent=!1;var t=this;this.cursor.on("change",(function(e){t.$cursorChanged=!0,t.$silent||t._emit("changeCursor"),t.$isEmpty||t.$silent||t._emit("changeSelection"),t.$keepDesiredColumnOnChange||e.old.column==e.value.column||(t.$desiredColumn=null)})),this.anchor.on("change",(function(){t.$anchorChanged=!0,t.$isEmpty||t.$silent||t._emit("changeSelection")}))}return e.prototype.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},e.prototype.isMultiLine=function(){return!this.$isEmpty&&this.anchor.row!=this.cursor.row},e.prototype.getCursor=function(){return this.lead.getPosition()},e.prototype.setAnchor=function(e,t){this.$isEmpty=!1,this.anchor.setPosition(e,t)},e.prototype.getAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},e.prototype.getSelectionLead=function(){return this.lead.getPosition()},e.prototype.isBackwards=function(){var e=this.anchor,t=this.lead;return e.row>t.row||e.row==t.row&&e.column>t.column},e.prototype.getRange=function(){var e=this.anchor,t=this.lead;return this.$isEmpty?s.fromPoints(t,t):this.isBackwards()?s.fromPoints(t,e):s.fromPoints(e,t)},e.prototype.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},e.prototype.selectAll=function(){this.$setSelection(0,0,Number.MAX_VALUE,Number.MAX_VALUE)},e.prototype.setRange=function(e,t){var n=t?e.end:e.start,o=t?e.start:e.end;this.$setSelection(n.row,n.column,o.row,o.column)},e.prototype.$setSelection=function(e,t,n,o){if(!this.$silent){var i=this.$isEmpty,r=this.inMultiSelectMode;this.$silent=!0,this.$cursorChanged=this.$anchorChanged=!1,this.anchor.setPosition(e,t),this.cursor.setPosition(n,o),this.$isEmpty=!s.comparePoints(this.anchor,this.cursor),this.$silent=!1,this.$cursorChanged&&this._emit("changeCursor"),(this.$cursorChanged||this.$anchorChanged||i!=this.$isEmpty||r)&&this._emit("changeSelection")}},e.prototype.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},e.prototype.selectTo=function(e,t){this.$moveSelection((function(){this.moveCursorTo(e,t)}))},e.prototype.selectToPosition=function(e){this.$moveSelection((function(){this.moveCursorToPosition(e)}))},e.prototype.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},e.prototype.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},e.prototype.selectUp=function(){this.$moveSelection(this.moveCursorUp)},e.prototype.selectDown=function(){this.$moveSelection(this.moveCursorDown)},e.prototype.selectRight=function(){this.$moveSelection(this.moveCursorRight)},e.prototype.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},e.prototype.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},e.prototype.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},e.prototype.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},e.prototype.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},e.prototype.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},e.prototype.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},e.prototype.getWordRange=function(e,t){if(void 0===t){var n=e||this.lead;e=n.row,t=n.column}return this.session.getWordRange(e,t)},e.prototype.selectWord=function(){this.setSelectionRange(this.getWordRange())},e.prototype.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},e.prototype.getLineRange=function(e,t){var n,o="number"==typeof e?e:this.lead.row,i=this.session.getFoldLine(o);return i?(o=i.start.row,n=i.end.row):n=o,!0===t?new s(o,0,n,this.session.getLine(n).length):new s(o,0,n+1,0)},e.prototype.selectLine=function(){this.setSelectionRange(this.getLineRange())},e.prototype.moveCursorUp=function(){this.moveCursorBy(-1,0)},e.prototype.moveCursorDown=function(){this.moveCursorBy(1,0)},e.prototype.wouldMoveIntoSoftTab=function(e,t,n){var o=e.column,i=e.column+t;return n<0&&(o=e.column-t,i=e.column),this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(o,i).split(" ").length-1==t},e.prototype.moveCursorLeft=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,-1))this.moveCursorTo(e.start.row,e.start.column);else if(0===t.column)t.row>0&&this.moveCursorTo(t.row-1,this.doc.getLine(t.row-1).length);else{var n=this.session.getTabSize();this.wouldMoveIntoSoftTab(t,n,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-n):this.moveCursorBy(0,-1)}},e.prototype.moveCursorRight=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,1))this.moveCursorTo(e.end.row,e.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(t.column=o)}}this.moveCursorTo(t.row,t.column)},e.prototype.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},e.prototype.moveCursorFileStart=function(){this.moveCursorTo(0,0)},e.prototype.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),o=n.substring(t);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var i=this.session.getFoldAt(e,t,1);if(i)this.moveCursorTo(i.end.row,i.end.column);else{if(this.session.nonTokenRe.exec(o)&&(t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,o=n.substring(t)),t>=n.length)return this.moveCursorTo(e,n.length),this.moveCursorRight(),void(e0&&this.moveCursorWordLeft());this.session.tokenRe.exec(r)&&(n-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,n)}},e.prototype.$shortWordEndIndex=function(e){var t,n=0,o=/\s/,i=this.session.tokenRe;if(i.lastIndex=0,this.session.tokenRe.exec(e))n=this.session.tokenRe.lastIndex;else{for(;(t=e[n])&&o.test(t);)n++;if(n<1)for(i.lastIndex=0;(t=e[n])&&!i.test(t);)if(i.lastIndex=0,n++,o.test(t)){if(n>2){n--;break}for(;(t=e[n])&&o.test(t);)n++;if(n>2)break}}return i.lastIndex=0,n},e.prototype.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),o=n.substring(t),i=this.session.getFoldAt(e,t,1);if(i)return this.moveCursorTo(i.end.row,i.end.column);if(t==n.length){var r=this.doc.getLength();do{e++,o=this.doc.getLine(e)}while(e0&&/^\s*$/.test(o));n=o.length,/\s+$/.test(o)||(o="")}var r=i.stringReverse(o),s=this.$shortWordEndIndex(r);return this.moveCursorTo(t,n-s)},e.prototype.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},e.prototype.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},e.prototype.moveCursorBy=function(e,t){var n,o=this.session.documentToScreenPosition(this.lead.row,this.lead.column);if(0===t&&(0!==e&&(this.session.$bidiHandler.isBidiRow(o.row,this.lead.row)?(n=this.session.$bidiHandler.getPosLeft(o.column),o.column=Math.round(n/this.session.$bidiHandler.charWidths[0])):n=o.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?o.column=this.$desiredColumn:this.$desiredColumn=o.column),0!=e&&this.session.lineWidgets&&this.session.lineWidgets[this.lead.row]){var i=this.session.lineWidgets[this.lead.row];e<0?e-=i.rowsAbove||0:e>0&&(e+=i.rowCount-(i.rowsAbove||0))}var r=this.session.screenToDocumentPosition(o.row+e,o.column,n);0!==e&&0===t&&r.row===this.lead.row&&(r.column,this.lead.column),this.moveCursorTo(r.row,r.column+t,0===t)},e.prototype.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},e.prototype.moveCursorTo=function(e,t,n){var o=this.session.getFoldAt(e,t,1);o&&(e=o.start.row,t=o.start.column),this.$keepDesiredColumnOnChange=!0;var i=this.session.getLine(e);/[\uDC00-\uDFFF]/.test(i.charAt(t))&&i.charAt(t-1)&&(this.lead.row==e&&this.lead.column==t+1?t-=1:t+=1),this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,n||(this.$desiredColumn=null)},e.prototype.moveCursorToScreen=function(e,t,n){var o=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(o.row,o.column,n)},e.prototype.detach=function(){this.lead.detach(),this.anchor.detach()},e.prototype.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},e.prototype.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},e.prototype.getRangeOfMovements=function(e){var t=this.getCursor();try{e(this);var n=this.getCursor();return s.fromPoints(t,n)}catch(e){return s.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},e.prototype.toJSON=function(){if(this.rangeCount)var e=this.ranges.map((function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t}));else(e=this.getRange()).isBackwards=this.isBackwards();return e},e.prototype.fromJSON=function(e){if(null==e.start){if(this.rangeList&&e.length>1){this.toSingleRange(e[0]);for(var t=e.length;t--;){var n=s.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(n.cursor=n.start),this.addRange(n,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},e.prototype.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0},e}();a.prototype.setSelectionAnchor=a.prototype.setAnchor,a.prototype.getSelectionAnchor=a.prototype.getAnchor,a.prototype.setSelectionRange=a.prototype.setRange,o.implement(a.prototype,r),t.Selection=a})),ace.define("ace/tokenizer",["require","exports","module","ace/lib/report_error"],(function(e,t,n){"use strict";var o=e("./lib/report_error").reportError,i=2e3,r=function(){function e(e){for(var t in this.states=e,this.regExps={},this.matchMappings={},this.states){for(var n=this.states[t],o=[],i=0,r=this.matchMappings[t]={defaultToken:"text"},s="g",a=[],l=0;l1?this.$applyToken:c.token),h>1&&(/\\\d/.test(c.regex)?u=c.regex.replace(/\\([0-9]+)/g,(function(e,t){return"\\"+(parseInt(t,10)+i+1)})):(h=1,u=this.removeCapturingGroups(c.regex)),c.splitRegex||"string"==typeof c.token||a.push(c)),r[i]=l,i+=h,o.push(u),c.onMatch||(c.onMatch=null)}}o.length||(r[0]=0,o.push("$")),a.forEach((function(e){e.splitRegex=this.createSplitterRegexp(e.regex,s)}),this),this.regExps[t]=new RegExp("("+o.join(")|(")+")|($)",s)}}return e.prototype.$setMaxTokenCount=function(e){i=0|e},e.prototype.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),n=this.token.apply(this,t);if("string"==typeof n)return[{type:n,value:e}];for(var o=[],i=0,r=n.length;iu){var y=e.substring(u,f-m.length);d.type==p?d.value+=y:(d.type&&c.push(d),d={type:p,value:y})}for(var v=0;vi){for(h>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});u1&&n[0]!==o&&n.unshift("#tmp",o),{tokens:c,state:n.length?n:o}},e}();r.prototype.reportError=o,t.Tokenizer=r})),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/deep_copy"],(function(e,t,n){"use strict";var o=e("../lib/deep_copy").deepCopy,i=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(e,t){if(t)for(var n in e){for(var o=e[n],i=0;i=this.$rowTokens.length;){if(this.$row+=1,e||(e=this.$session.getLength()),this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},e.prototype.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},e.prototype.getCurrentTokenRow=function(){return this.$row},e.prototype.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,n=e[t].start;if(void 0!==n)return n;for(n=0;t>0;)n+=e[t-=1].value.length;return n},e.prototype.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},e.prototype.getCurrentTokenRange=function(){var e=this.$rowTokens[this.$tokenIndex],t=this.getCurrentTokenColumn();return new o(this.$row,t,this.$row,t+e.value.length)},e}();t.TokenIterator=i})),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],(function(e,t,n){"use strict";var o,i=e("../../lib/oop"),r=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,a=e("../../lib/lang"),l=["text","paren.rparen","rparen","paren","punctuation.operator"],c=["text","paren.rparen","rparen","paren","punctuation.operator","comment"],u={},h={'"':'"',"'":"'"},d=function(e){var t=-1;if(e.multiSelect&&(t=e.selection.index,u.rangeCount!=e.multiSelect.rangeCount&&(u={rangeCount:e.multiSelect.rangeCount})),u[t])return o=u[t];o=u[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},p=function(e,t,n,o){var i=e.end.row-e.start.row;return{text:n+t+o,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},g=function(e){e=e||{},this.add("braces","insertion",(function(t,n,i,r,s){var l=i.getCursorPosition(),c=r.doc.getLine(l.row);if("{"==s){d(i);var u=i.getSelectionRange(),h=r.doc.getTextRange(u);if(""!==h&&"{"!==h&&i.getWrapBehavioursEnabled())return p(u,h,"{","}");if(g.isSaneInsertion(i,r))return/[\]\}\)]/.test(c[l.column])||i.inMultiSelectMode||e.braces?(g.recordAutoInsert(i,r,"}"),{text:"{}",selection:[1,1]}):(g.recordMaybeInsert(i,r,"{"),{text:"{",selection:[1,1]})}else if("}"==s){if(d(i),"}"==c.substring(l.column,l.column+1)&&null!==r.$findOpeningBracket("}",{column:l.column+1,row:l.row})&&g.isAutoInsertedClosing(l,c,s))return g.popAutoInsertedClosing(),{text:"",selection:[1,1]}}else{if("\n"==s||"\r\n"==s){d(i);var m="";if(g.isMaybeInsertedClosing(l,c)&&(m=a.stringRepeat("}",o.maybeInsertedBrackets),g.clearMaybeInsertedClosing()),"}"===c.substring(l.column,l.column+1)){var f=r.findMatchingBracket({row:l.row,column:l.column+1},"}");if(!f)return null;var y=this.$getIndent(r.getLine(f.row))}else{if(!m)return void g.clearMaybeInsertedClosing();y=this.$getIndent(c)}var v=y+r.getTabString();return{text:"\n"+v+"\n"+y+m,selection:[1,v.length,1,v.length]}}g.clearMaybeInsertedClosing()}})),this.add("braces","deletion",(function(e,t,n,i,r){var s=i.doc.getTextRange(r);if(!r.isMultiLine()&&"{"==s){if(d(n),"}"==i.doc.getLine(r.start.row).substring(r.end.column,r.end.column+1))return r.end.column++,r;o.maybeInsertedBrackets--}})),this.add("parens","insertion",(function(e,t,n,o,i){if("("==i){d(n);var r=n.getSelectionRange(),s=o.doc.getTextRange(r);if(""!==s&&n.getWrapBehavioursEnabled())return p(r,s,"(",")");if(g.isSaneInsertion(n,o))return g.recordAutoInsert(n,o,")"),{text:"()",selection:[1,1]}}else if(")"==i){d(n);var a=n.getCursorPosition(),l=o.doc.getLine(a.row);if(")"==l.substring(a.column,a.column+1)&&null!==o.$findOpeningBracket(")",{column:a.column+1,row:a.row})&&g.isAutoInsertedClosing(a,l,i))return g.popAutoInsertedClosing(),{text:"",selection:[1,1]}}})),this.add("parens","deletion",(function(e,t,n,o,i){var r=o.doc.getTextRange(i);if(!i.isMultiLine()&&"("==r&&(d(n),")"==o.doc.getLine(i.start.row).substring(i.start.column+1,i.start.column+2)))return i.end.column++,i})),this.add("brackets","insertion",(function(e,t,n,o,i){if("["==i){d(n);var r=n.getSelectionRange(),s=o.doc.getTextRange(r);if(""!==s&&n.getWrapBehavioursEnabled())return p(r,s,"[","]");if(g.isSaneInsertion(n,o))return g.recordAutoInsert(n,o,"]"),{text:"[]",selection:[1,1]}}else if("]"==i){d(n);var a=n.getCursorPosition(),l=o.doc.getLine(a.row);if("]"==l.substring(a.column,a.column+1)&&null!==o.$findOpeningBracket("]",{column:a.column+1,row:a.row})&&g.isAutoInsertedClosing(a,l,i))return g.popAutoInsertedClosing(),{text:"",selection:[1,1]}}})),this.add("brackets","deletion",(function(e,t,n,o,i){var r=o.doc.getTextRange(i);if(!i.isMultiLine()&&"["==r&&(d(n),"]"==o.doc.getLine(i.start.row).substring(i.start.column+1,i.start.column+2)))return i.end.column++,i})),this.add("string_dquotes","insertion",(function(e,t,n,o,i){var r=o.$mode.$quotes||h;if(1==i.length&&r[i]){if(this.lineCommentStart&&-1!=this.lineCommentStart.indexOf(i))return;d(n);var s=i,a=n.getSelectionRange(),l=o.doc.getTextRange(a);if(!(""===l||1==l.length&&r[l])&&n.getWrapBehavioursEnabled())return p(a,l,s,s);if(!l){var c=n.getCursorPosition(),u=o.doc.getLine(c.row),g=u.substring(c.column-1,c.column),m=u.substring(c.column,c.column+1),f=o.getTokenAt(c.row,c.column),y=o.getTokenAt(c.row,c.column+1);if("\\"==g&&f&&/escape/.test(f.type))return null;var v,b=f&&/string|escape/.test(f.type),w=!y||/string|escape/.test(y.type);if(m==s)(v=b!==w)&&/string\.end/.test(y.type)&&(v=!1);else{if(b&&!w)return null;if(b&&w)return null;var x=o.$mode.tokenRe;x.lastIndex=0;var k=x.test(g);x.lastIndex=0;var C=x.test(m),$=o.$mode.$pairQuotesAfter;if(!($&&$[s]&&$[s].test(g))&&k||C)return null;if(m&&!/[\s;,.})\]\\]/.test(m))return null;var S=u[c.column-2];if(g==s&&(S==s||x.test(S)))return null;v=!0}return{text:v?s+s:"",selection:[1,1]}}}})),this.add("string_dquotes","deletion",(function(e,t,n,o,i){var r=o.$mode.$quotes||h,s=o.doc.getTextRange(i);if(!i.isMultiLine()&&r.hasOwnProperty(s)&&(d(n),o.doc.getLine(i.start.row).substring(i.start.column+1,i.start.column+2)==s))return i.end.column++,i})),!1!==e.closeDocComment&&this.add("doc comment end","insertion",(function(e,t,n,o,i){if("doc-start"===e&&("\n"===i||"\r\n"===i)&&n.selection.isEmpty()){var r=n.getCursorPosition(),s=o.doc.getLine(r.row),a=o.doc.getLine(r.row+1),l=this.$getIndent(s);if(/\s*\*/.test(a))return/^\s*\*/.test(s)?{text:i+l+"* ",selection:[1,3+l.length,1,3+l.length]}:{text:i+l+" * ",selection:[1,3+l.length,1,3+l.length]};if(/\/\*\*/.test(s.substring(0,r.column)))return{text:i+l+" * "+i+" "+l+"*/",selection:[1,4+l.length,1,4+l.length]}}}))};g.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),o=new s(t,n.row,n.column);if(!this.$matchTokenType(o.getCurrentToken()||"text",l)){if(/[)}\]]/.test(e.session.getLine(n.row)[n.column]))return!0;var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",l))return!1}return o.stepForward(),o.getCurrentTokenRow()!==n.row||this.$matchTokenType(o.getCurrentToken()||"text",c)},g.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},g.recordAutoInsert=function(e,t,n){var i=e.getCursorPosition(),r=t.doc.getLine(i.row);this.isAutoInsertedClosing(i,r,o.autoInsertedLineEnd[0])||(o.autoInsertedBrackets=0),o.autoInsertedRow=i.row,o.autoInsertedLineEnd=n+r.substr(i.column),o.autoInsertedBrackets++},g.recordMaybeInsert=function(e,t,n){var i=e.getCursorPosition(),r=t.doc.getLine(i.row);this.isMaybeInsertedClosing(i,r)||(o.maybeInsertedBrackets=0),o.maybeInsertedRow=i.row,o.maybeInsertedLineStart=r.substr(0,i.column)+n,o.maybeInsertedLineEnd=r.substr(i.column),o.maybeInsertedBrackets++},g.isAutoInsertedClosing=function(e,t,n){return o.autoInsertedBrackets>0&&e.row===o.autoInsertedRow&&n===o.autoInsertedLineEnd[0]&&t.substr(e.column)===o.autoInsertedLineEnd},g.isMaybeInsertedClosing=function(e,t){return o.maybeInsertedBrackets>0&&e.row===o.maybeInsertedRow&&t.substr(e.column)===o.maybeInsertedLineEnd&&t.substr(0,e.column)==o.maybeInsertedLineStart},g.popAutoInsertedClosing=function(){o.autoInsertedLineEnd=o.autoInsertedLineEnd.substr(1),o.autoInsertedBrackets--},g.clearMaybeInsertedClosing=function(){o&&(o.maybeInsertedBrackets=0,o.maybeInsertedRow=-1)},i.inherits(g,r),t.CstyleBehaviour=g})),ace.define("ace/unicode",["require","exports","module"],(function(e,t,n){"use strict";for(var o=[48,9,8,25,5,0,2,25,48,0,11,0,5,0,6,22,2,30,2,457,5,11,15,4,8,0,2,0,18,116,2,1,3,3,9,0,2,2,2,0,2,19,2,82,2,138,2,4,3,155,12,37,3,0,8,38,10,44,2,0,2,1,2,1,2,0,9,26,6,2,30,10,7,61,2,9,5,101,2,7,3,9,2,18,3,0,17,58,3,100,15,53,5,0,6,45,211,57,3,18,2,5,3,11,3,9,2,1,7,6,2,2,2,7,3,1,3,21,2,6,2,0,4,3,3,8,3,1,3,3,9,0,5,1,2,4,3,11,16,2,2,5,5,1,3,21,2,6,2,1,2,1,2,1,3,0,2,4,5,1,3,2,4,0,8,3,2,0,8,15,12,2,2,8,2,2,2,21,2,6,2,1,2,4,3,9,2,2,2,2,3,0,16,3,3,9,18,2,2,7,3,1,3,21,2,6,2,1,2,4,3,8,3,1,3,2,9,1,5,1,2,4,3,9,2,0,17,1,2,5,4,2,2,3,4,1,2,0,2,1,4,1,4,2,4,11,5,4,4,2,2,3,3,0,7,0,15,9,18,2,2,7,2,2,2,22,2,9,2,4,4,7,2,2,2,3,8,1,2,1,7,3,3,9,19,1,2,7,2,2,2,22,2,9,2,4,3,8,2,2,2,3,8,1,8,0,2,3,3,9,19,1,2,7,2,2,2,22,2,15,4,7,2,2,2,3,10,0,9,3,3,9,11,5,3,1,2,17,4,23,2,8,2,0,3,6,4,0,5,5,2,0,2,7,19,1,14,57,6,14,2,9,40,1,2,0,3,1,2,0,3,0,7,3,2,6,2,2,2,0,2,0,3,1,2,12,2,2,3,4,2,0,2,5,3,9,3,1,35,0,24,1,7,9,12,0,2,0,2,0,5,9,2,35,5,19,2,5,5,7,2,35,10,0,58,73,7,77,3,37,11,42,2,0,4,328,2,3,3,6,2,0,2,3,3,40,2,3,3,32,2,3,3,6,2,0,2,3,3,14,2,56,2,3,3,66,5,0,33,15,17,84,13,619,3,16,2,25,6,74,22,12,2,6,12,20,12,19,13,12,2,2,2,1,13,51,3,29,4,0,5,1,3,9,34,2,3,9,7,87,9,42,6,69,11,28,4,11,5,11,11,39,3,4,12,43,5,25,7,10,38,27,5,62,2,28,3,10,7,9,14,0,89,75,5,9,18,8,13,42,4,11,71,55,9,9,4,48,83,2,2,30,14,230,23,280,3,5,3,37,3,5,3,7,2,0,2,0,2,0,2,30,3,52,2,6,2,0,4,2,2,6,4,3,3,5,5,12,6,2,2,6,67,1,20,0,29,0,14,0,17,4,60,12,5,0,4,11,18,0,5,0,3,9,2,0,4,4,7,0,2,0,2,0,2,3,2,10,3,3,6,4,5,0,53,1,2684,46,2,46,2,132,7,6,15,37,11,53,10,0,17,22,10,6,2,6,2,6,2,6,2,6,2,6,2,6,2,6,2,31,48,0,470,1,36,5,2,4,6,1,5,85,3,1,3,2,2,89,2,3,6,40,4,93,18,23,57,15,513,6581,75,20939,53,1164,68,45,3,268,4,27,21,31,3,13,13,1,2,24,9,69,11,1,38,8,3,102,3,1,111,44,25,51,13,68,12,9,7,23,4,0,5,45,3,35,13,28,4,64,15,10,39,54,10,13,3,9,7,22,4,1,5,66,25,2,227,42,2,1,3,9,7,11171,13,22,5,48,8453,301,3,61,3,105,39,6,13,4,6,11,2,12,2,4,2,0,2,1,2,1,2,107,34,362,19,63,3,53,41,11,5,15,17,6,13,1,25,2,33,4,2,134,20,9,8,25,5,0,2,25,12,88,4,5,3,5,3,5,3,2],i=0,r=[],s=0;s2?o%c!=c-1:o%c==0})}else{if(!this.blockComment)return!1;var p=this.blockComment.start,g=this.blockComment.end,m=new RegExp("^(\\s*)(?:"+l.escapeRegExp(p)+")"),f=new RegExp("(?:"+l.escapeRegExp(g)+")\\s*$"),y=function(e,t){b(e,t)||r&&!/\S/.test(e)||(i.insertInLine({row:t,column:e.length},g),i.insertInLine({row:t,column:a},p))},v=function(e,t){var n;(n=e.match(f))&&i.removeInLine(t,e.length-n[0].length,e.length),(n=e.match(m))&&i.removeInLine(t,n[1].length,n[0].length)},b=function(e,n){if(m.test(e))return!0;for(var o=t.getTokens(n),i=0;ie.length&&(x=e.length)})),a==1/0&&(a=x,r=!1,s=!1),u&&a%c!=0&&(a=Math.floor(a/c)*c),w(s?v:y)},this.toggleBlockComment=function(e,t,n,o){var i=this.blockComment;if(i){!i.start&&i[0]&&(i=i[0]);var r,s,a=(m=new c(t,o.row,o.column)).getCurrentToken(),l=(t.selection,t.selection.toOrientedRange());if(a&&/comment/.test(a.type)){for(var h,d;a&&/comment/.test(a.type);){if(-1!=(f=a.value.indexOf(i.start))){var p=m.getCurrentTokenRow(),g=m.getCurrentTokenColumn()+f;h=new u(p,g,p,g+i.start.length);break}a=m.stepBackward()}var m;for(a=(m=new c(t,o.row,o.column)).getCurrentToken();a&&/comment/.test(a.type);){var f;if(-1!=(f=a.value.indexOf(i.end))){p=m.getCurrentTokenRow(),g=m.getCurrentTokenColumn()+f,d=new u(p,g,p,g+i.end.length);break}a=m.stepForward()}d&&t.remove(d),h&&(t.remove(h),r=h.start.row,s=-i.start.length)}else s=i.start.length,r=n.start.row,t.insert(n.end,i.end),t.insert(n.start,i.start);l.start.row==r&&(l.start.column+=s),l.end.row==r&&(l.end.column+=s),t.selection.fromOrientedRange(l)}},this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.autoOutdent=function(e,t,n){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){for(var t in this.$embeds=[],this.$modes={},e)if(e[t]){var n=e[t],i=n.prototype.$id,r=o.$modes[i];r||(o.$modes[i]=r=new n),o.$modes[t]||(o.$modes[t]=r),this.$embeds.push(t),this.$modes[t]=r}var s=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"];for(t=0;tthis.row)){var t=function(e,t,n){var o="insert"==e.action,i=(o?1:-1)*(e.end.row-e.start.row),r=(o?1:-1)*(e.end.column-e.start.column),a=e.start,l=o?a:e.end;return s(t,a,n)?{row:t.row,column:t.column}:s(l,t,!n)?{row:t.row+i,column:t.column+(t.row==l.row?r:0)}:{row:a.row,column:a.column}}(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(t.row,t.column,!0)}},e.prototype.setPosition=function(e,t,n){var o;if(o=n?{row:e,column:t}:this.$clipPositionToDocument(e,t),this.row!=o.row||this.column!=o.column){var i={row:this.row,column:this.column};this.row=o.row,this.column=o.column,this._signal("change",{old:i,value:o})}},e.prototype.detach=function(){this.document.off("change",this.$onChange)},e.prototype.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},e.prototype.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n},e}();function s(e,t,n){var o=n?e.column<=t.column:e.column=n&&(e=n-1,t=void 0);var o=this.getLine(e);return null==t&&(t=o.length),{row:e,column:t=Math.min(Math.max(t,0),o.length)}},e.prototype.clonePos=function(e){return{row:e.row,column:e.column}},e.prototype.pos=function(e,t){return{row:e,column:t}},e.prototype.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},e.prototype.insertFullLines=function(e,t){var n=0;(e=Math.min(Math.max(e,0),this.getLength()))0,o=t=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},e.prototype.replace=function(e,t){return e instanceof s||(e=s.fromPoints(e.start,e.end)),0===t.length&&e.isEmpty()?e.start:t==this.getTextRange(e)?e.end:(this.remove(e),t?this.insert(e.start,t):e.start)},e.prototype.applyDeltas=function(e){for(var t=0;t=0;t--)this.revertDelta(e[t])},e.prototype.applyDelta=function(e,t){var n="insert"==e.action;(n?e.lines.length<=1&&!e.lines[0]:!s.comparePoints(e.start,e.end))||(n&&e.lines.length>2e4?this.$splitAndapplyLargeDelta(e,2e4):(i(this.$lines,e,t),this._signal("change",e)))},e.prototype.$safeApplyDelta=function(e){var t=this.$lines.length;("remove"==e.action&&e.start.row20){n.running=setTimeout(n.$worker,20);break}}n.currentLine=t,-1==o&&(o=t),r<=o&&n.fireUpdateEvent(r,o)}}}return e.prototype.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},e.prototype.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},e.prototype.fireUpdateEvent=function(e,t){var n={first:e,last:t};this._signal("update",{data:n})},e.prototype.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},e.prototype.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},e.prototype.$updateOnChange=function(e){var t=e.start.row,n=e.end.row-t;if(0===n)this.lines[t]=null;else if("remove"==e.action)this.lines.splice(t,n+1,null),this.states.splice(t,n+1,null);else{var o=Array(n+1);o.unshift(t,1),this.lines.splice.apply(this.lines,o),this.states.splice.apply(this.states,o)}this.currentLine=Math.min(t,this.currentLine,this.doc.getLength()),this.stop()},e.prototype.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},e.prototype.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},e.prototype.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||"start"},e.prototype.$tokenizeRow=function(e){var t=this.doc.getLine(e),n=this.states[e-1],o=this.tokenizer.getLineTokens(t,n,e);return this.states[e]+""!=o.state+""?(this.states[e]=o.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=o.tokens},e.prototype.cleanup=function(){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.removeAllListeners()},e}();o.implement(r.prototype,i),t.BackgroundTokenizer=r})),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/range"],(function(e,t,n){"use strict";var o=e("./lib/lang"),i=e("./range").Range,r=function(){function e(e,t,n){void 0===n&&(n="text"),this.setRegexp(e),this.clazz=t,this.type=n}return e.prototype.setRegexp=function(e){this.regExp+""!=e+""&&(this.regExp=e,this.cache=[])},e.prototype.update=function(e,t,n,r){if(this.regExp)for(var s=r.firstRow,a=r.lastRow,l={},c=s;c<=a;c++){var u=this.cache[c];null==u&&((u=o.getMatchOffsets(n.getLine(c),this.regExp)).length>this.MAX_RANGES&&(u=u.slice(0,this.MAX_RANGES)),u=u.map((function(e){return new i(c,e.offset,c,e.offset+e.length)})),this.cache[c]=u.length?u:"");for(var h=u.length;h--;){var d=u[h].toScreenRange(n),p=d.toString();l[p]||(l[p]=!0,t.drawSingleLineMarker(e,d,this.clazz,r))}}},e}();r.prototype.MAX_RANGES=500,t.SearchHighlight=r})),ace.define("ace/undomanager",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=function(){function e(){this.$maxRev=0,this.$fromUndo=!1,this.$undoDepth=1/0,this.reset()}return e.prototype.addSession=function(e){this.$session=e},e.prototype.add=function(e,t,n){if(!this.$fromUndo&&e!=this.$lastDelta){if(this.$keepRedoStack||(this.$redoStack.length=0),!1===t||!this.lastDeltas){this.lastDeltas=[];var o=this.$undoStack.length;o>this.$undoDepth-1&&this.$undoStack.splice(0,o-this.$undoDepth+1),this.$undoStack.push(this.lastDeltas),e.id=this.$rev=++this.$maxRev}"remove"!=e.action&&"insert"!=e.action||(this.$lastDelta=e),this.lastDeltas.push(e)}},e.prototype.addSelection=function(e,t){this.selections.push({value:e,rev:t||this.$rev})},e.prototype.startNewGroup=function(){return this.lastDeltas=null,this.$rev},e.prototype.markIgnored=function(e,t){null==t&&(t=this.$rev+1);for(var n=this.$undoStack,o=n.length;o--;){var i=n[o][0];if(i.id<=e)break;i.id0},e.prototype.canRedo=function(){return this.$redoStack.length>0},e.prototype.bookmark=function(e){null==e&&(e=this.$rev),this.mark=e},e.prototype.isAtBookmark=function(){return this.$rev===this.mark},e.prototype.toJSON=function(){return{$redoStack:this.$redoStack,$undoStack:this.$undoStack}},e.prototype.fromJSON=function(e){this.reset(),this.$undoStack=e.$undoStack,this.$redoStack=e.$redoStack},e.prototype.$prettyPrint=function(e){return e?a(e):a(this.$undoStack)+"\n---\n"+a(this.$redoStack)},e}();o.prototype.hasUndo=o.prototype.canUndo,o.prototype.hasRedo=o.prototype.canRedo,o.prototype.isClean=o.prototype.isAtBookmark,o.prototype.markClean=o.prototype.bookmark;var i=e("./range").Range,r=i.comparePoints;function s(e){return{row:e.row,column:e.column}}function a(e){if(e=e||this,Array.isArray(e))return e.map(a).join("\n");var t="";return e.action?(t="insert"==e.action?"+":"-",t+="["+e.lines+"]"):e.value&&(t=Array.isArray(e.value)?e.value.map(l).join("\n"):l(e.value)),e.start&&(t+=l(e)),(e.id||e.rev)&&(t+="\t("+(e.id||e.rev)+")"),t}function l(e){return e.start.row+":"+e.start.column+"=>"+e.end.row+":"+e.end.column}function c(e,t){var n="insert"==e.action,o="insert"==t.action;if(n&&o)if(r(t.start,e.end)>=0)d(t,e,-1);else{if(!(r(t.start,e.start)<=0))return null;d(e,t,1)}else if(n&&!o)if(r(t.start,e.end)>=0)d(t,e,-1);else{if(!(r(t.end,e.start)<=0))return null;d(e,t,-1)}else if(!n&&o)if(r(t.start,e.start)>=0)d(t,e,1);else{if(!(r(t.start,e.start)<=0))return null;d(e,t,1)}else if(!n&&!o)if(r(t.start,e.start)>=0)d(t,e,1);else{if(!(r(t.end,e.start)<=0))return null;d(e,t,-1)}return[t,e]}function u(e,t){for(var n=e.length;n--;)for(var o=0;o=0?d(e,t,-1):(r(e.start,t.start)<=0||d(e,i.fromPoints(t.start,e.start),-1),d(t,e,1));else if(!n&&o)r(t.start,e.end)>=0?d(t,e,-1):(r(t.start,e.start)<=0||d(t,i.fromPoints(e.start,t.start),-1),d(e,t,1));else if(!n&&!o)if(r(t.start,e.end)>=0)d(t,e,-1);else{var s,a;if(!(r(t.end,e.start)<=0))return r(e.start,t.start)<0&&(s=e,e=g(e,t.start)),r(e.end,t.end)>0&&(a=g(e,t.end)),p(t.end,e.start,e.end,-1),a&&!s&&(e.lines=a.lines,e.start=a.start,e.end=a.end,a=e),[t,s,a].filter(Boolean);d(e,t,-1)}return[t,e]}function d(e,t,n){p(e.start,t.start,t.end,n),p(e.end,t.start,t.end,n)}function p(e,t,n,o){e.row==(1==o?t:n).row&&(e.column+=o*(n.column-t.column)),e.row+=o*(n.row-t.row)}function g(e,t){var n=e.lines,o=e.end;e.end=s(t);var i=e.end.row-e.start.row,r=n.splice(i,n.length),a=i?t.column:t.column-e.start.column;return n.push(r[0].substring(0,a)),r[0]=r[0].substr(a),{start:s(t),end:o,lines:r,action:e.action}}function m(e,t){t=function(e){return{start:s(e.start),end:s(e.end),action:e.action,lines:e.lines.slice()}}(t);for(var n=e.length;n--;){for(var o=e[n],i=0;ithis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(e),this.folds.sort((function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)})),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},e.prototype.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},e.prototype.walk=function(e,t,n){var o,i,r=0,s=this.folds,a=!0;null==t&&(t=this.end.row,n=this.end.column);for(var l=0;l0)){var l=o(e,s.start);return 0===a?t&&0!==l?-r-2:r:l>0||0===l&&!t?r:-r-1}}return-r-1},e.prototype.add=function(e){var t=!e.isEmpty(),n=this.pointIndex(e.start,t);n<0&&(n=-n-1);var o=this.pointIndex(e.end,t,n);return o<0?o=-o-1:o++,this.ranges.splice(n,o-n,e)},e.prototype.addList=function(e){for(var t=[],n=e.length;n--;)t.push.apply(t,this.add(e[n]));return t},e.prototype.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},e.prototype.merge=function(){for(var e,t=[],n=this.ranges,i=(n=n.sort((function(e,t){return o(e.start,t.start)})))[0],r=1;r=0},e.prototype.containsPoint=function(e){return this.pointIndex(e)>=0},e.prototype.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},e.prototype.clipRows=function(e,t){var n=this.ranges;if(n[0].start.row>t||n[n.length-1].start.row=o);s++);if("insert"==e.action){for(var l=i-o,c=-t.column+n.column;so);s++)if(u.start.row==o&&u.start.column>=t.column&&(u.start.column==t.column&&this.$bias<=0||(u.start.column+=c,u.start.row+=l)),u.end.row==o&&u.end.column>=t.column){if(u.end.column==t.column&&this.$bias<0)continue;u.end.column==t.column&&c>0&&su.start.column&&u.end.column==r[s+1].start.column&&(u.end.column-=c),u.end.column+=c,u.end.row+=l}}else for(l=o-i,c=t.column-n.column;si);s++)u.end.rowt.column)&&(u.end.column=t.column,u.end.row=t.row):(u.end.column+=c,u.end.row+=l):u.end.row>i&&(u.end.row+=l),u.start.rowt.column)&&(u.start.column=t.column,u.start.row=t.row):(u.start.column+=c,u.start.row+=l):u.start.row>i&&(u.start.row+=l);if(0!=l&&s=e)return i;if(i.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var n=this.$foldData,o=0;for(t&&(o=n.indexOf(t)),-1==o&&(o=0);o=e)return i}return null},this.getFoldedRowCount=function(e,t){for(var n=this.$foldData,o=t-e+1,i=0;i=t){a=e?o-=t-a:o=0);break}s>=e&&(o-=a>=e?s-a:s-e+1)}return o},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort((function(e,t){return e.start.row-t.start.row})),e},this.addFold=function(e,t){var n,o=this.$foldData,s=!1;e instanceof r?n=e:(n=new r(t,e)).collapseChildren=t.collapseChildren,this.$clipRangeToDocument(n.range);var a=n.start.row,l=n.start.column,c=n.end.row,u=n.end.column,h=this.getFoldAt(a,l,1),d=this.getFoldAt(c,u,-1);if(h&&d==h)return h.addSubFold(n);h&&!h.range.isStart(a,l)&&this.removeFold(h),d&&!d.range.isEnd(c,u)&&this.removeFold(d);var p=this.getFoldsInRange(n.range);p.length>0&&(this.removeFolds(p),n.collapseChildren||p.forEach((function(e){n.addSubFold(e)})));for(var g=0;g0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach((function(e){this.expandFold(e)}),this)},this.unfold=function(e,t){var n,i;if(null==e)n=new o(0,0,this.getLength(),0),null==t&&(t=!0);else if("number"==typeof e)n=new o(e,0,e,this.getLine(e).length);else if("row"in e)n=o.fromPoints(e,e);else{if(Array.isArray(e))return i=[],e.forEach((function(e){i=i.concat(this.unfold(e))}),this),i;n=e}for(var r=i=this.getFoldsInRangeList(n);1==i.length&&o.comparePoints(i[0].start,n.start)<0&&o.comparePoints(i[0].end,n.end)>0;)this.expandFolds(i),i=this.getFoldsInRangeList(n);if(0!=t?this.removeFolds(i):this.expandFolds(i),r.length)return r},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var n=this.getFoldLine(e,t);return n?n.end.row:e},this.getRowFoldStart=function(e,t){var n=this.getFoldLine(e,t);return n?n.start.row:e},this.getFoldDisplayLine=function(e,t,n,o,i){null==o&&(o=e.start.row),null==i&&(i=0),null==t&&(t=e.end.row),null==n&&(n=this.getLine(t).length);var r=this.doc,s="";return e.walk((function(e,t,n,a){if(!(tu)break}while(r&&l.test(r.type)&&!/^comment.start/.test(r.type));r=i.stepBackward()}else r=i.getCurrentToken();return c.end.row=i.getCurrentTokenRow(),c.end.column=i.getCurrentTokenColumn(),/^comment.end/.test(r.type)||(c.end.column+=r.value.length-2),c}},this.foldAll=function(e,t,n,o){null==n&&(n=1e5);var i=this.foldWidgets;if(i){t=t||this.getLength();for(var r=e=e||0;r=e&&(r=s.end.row,s.collapseChildren=n,this.addFold("...",s))}}},this.foldToLevel=function(e){for(this.foldAll();e-- >0;)this.unfold(null,!1)},this.foldAllComments=function(){var e=this;this.foldAll(null,null,null,(function(t){for(var n=e.getTokens(t),o=0;o=0;){var r=n[i];if(null==r&&(r=n[i]=this.getFoldWidget(i)),"start"==r){var s=this.getFoldWidgetRange(i);if(o||(o=s),s&&s.end.row>=e)break}i--}return{range:-1!==i&&s,firstRange:o}},this.onFoldWidgetClick=function(e,t){t instanceof a&&(t=t.domEvent);var n={children:t.shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey};if(!this.$toggleFoldWidget(e,n)){var o=t.target||t.srcElement;o&&/ace_fold-widget/.test(o.className)&&(o.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(this.getFoldWidget){var n=this.getFoldWidget(e),o=this.getLine(e),i="end"===n?-1:1,r=this.getFoldAt(e,-1===i?0:o.length,i);if(r)return t.children||t.all?this.removeFold(r):this.expandFold(r),r;var s=this.getFoldWidgetRange(e,!0);if(s&&!s.isMultiLine()&&(r=this.getFoldAt(s.start.row,s.start.column,1))&&s.isEqual(r.range))return this.removeFold(r),r;if(t.siblings){var a=this.getParentFoldRangeData(e);if(a.range)var l=a.range.start.row+1,c=a.range.end.row;this.foldAll(l,c,t.all?1e4:0)}else t.children?(c=s?s.end.row:this.getLength(),this.foldAll(e+1,c,t.all?1e4:0)):s&&(t.all&&(s.collapseChildren=1e4),this.addFold("...",s));return s}},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var n=this.$toggleFoldWidget(t,{});if(!n){var o=this.getParentFoldRangeData(t,!0);if(n=o.range||o.firstRange){t=n.start.row;var i=this.getFoldAt(t,this.getLine(t).length,1);i?this.removeFold(i):this.addFold("...",n)}}},this.updateFoldWidgets=function(e){var t=e.start.row,n=e.end.row-t;if(0===n)this.foldWidgets[t]=null;else if("remove"==e.action)this.foldWidgets.splice(t,n+1,null);else{var o=Array(n+1);o.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,o)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}})),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],(function(e,t,n){"use strict";var o=e("../token_iterator").TokenIterator,i=e("../range").Range;t.BracketMatch=function(){this.findMatchingBracket=function(e,t){if(0==e.column)return null;var n=t||this.getLine(e.row).charAt(e.column-1);if(""==n)return null;var o=n.match(/([\(\[\{])|([\)\]\}])/);return o?o[1]?this.$findClosingBracket(o[1],e):this.$findOpeningBracket(o[2],e):null},this.getBracketRange=function(e){var t,n=this.getLine(e.row),o=!0,r=n.charAt(e.column-1),s=r&&r.match(/([\(\[\{])|([\)\]\}])/);if(s||(r=n.charAt(e.column),e={row:e.row,column:e.column+1},s=r&&r.match(/([\(\[\{])|([\)\]\}])/),o=!1),!s)return null;if(s[1]){if(!(a=this.$findClosingBracket(s[1],e)))return null;t=i.fromPoints(e,a),o||(t.end.column++,t.start.column--),t.cursor=t.end}else{var a;if(!(a=this.$findOpeningBracket(s[2],e)))return null;t=i.fromPoints(a,e),o||(t.start.column++,t.end.column--),t.cursor=t.start}return t},this.getMatchingBracketRanges=function(e,t){var n=this.getLine(e.row),o=/([\(\[\{])|([\)\]\}])/,r=!t&&n.charAt(e.column-1),s=r&&r.match(o);if(s||(r=(void 0===t||t)&&n.charAt(e.column),e={row:e.row,column:e.column+1},s=r&&r.match(o)),!s)return null;var a=new i(e.row,e.column-1,e.row,e.column),l=s[1]?this.$findClosingBracket(s[1],e):this.$findOpeningBracket(s[2],e);return l?[a,new i(l.row,l.column,l.row,l.column+1)]:[a]},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{","<":">",">":"<"},this.$findOpeningBracket=function(e,t,n){var i=this.$brackets[e],r=1,s=new o(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){n||(n=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)").replace(/-close\b/,"-(close|open)")+")+"));for(var l=t.column-s.getCurrentTokenColumn()-2,c=a.value;;){for(;l>=0;){var u=c.charAt(l);if(u==i){if(0==(r-=1))return{row:s.getCurrentTokenRow(),column:l+s.getCurrentTokenColumn()}}else u==e&&(r+=1);l-=1}do{a=s.stepBackward()}while(a&&!n.test(a.type));if(null==a)break;l=(c=a.value).length-1}return null}},this.$findClosingBracket=function(e,t,n){var i=this.$brackets[e],r=1,s=new o(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){n||(n=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)").replace(/-open\b/,"-(close|open)")+")+"));for(var l=t.column-s.getCurrentTokenColumn();;){for(var c=a.value,u=c.length;l"===t.value?o=!0:-1!==t.type.indexOf("tag-name")&&(n=!0))}while(t&&!n);return t},this.$findClosingTag=function(e,t){var n,o=t.value,r=t.value,s=0,a=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);t=e.stepForward();var l=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+t.value.length),c=!1;do{if(n=t,t=e.stepForward()){if(">"===t.value&&!c){var u=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);c=!0}if(-1!==t.type.indexOf("tag-name")){if(r===(o=t.value))if("<"===n.value)s++;else if(""!==t.value)return;var p=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1)}}else r===o&&"/>"===t.value&&--s<0&&(p=d=h=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+2),u=new i(l.end.row,l.end.column,l.end.row,l.end.column+1))}}while(t&&s>=0);if(a&&u&&h&&p&&l&&d)return{openTag:new i(a.start.row,a.start.column,u.end.row,u.end.column),closeTag:new i(h.start.row,h.start.column,p.end.row,p.end.column),openTagName:l,closeTagName:d}},this.$findOpeningTag=function(e,t){var n=e.getCurrentToken(),o=t.value,r=0,s=e.getCurrentTokenRow(),a=e.getCurrentTokenColumn(),l=a+2,c=new i(s,a,s,l);e.stepForward();var u=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+t.value.length);if((t=e.stepForward())&&">"===t.value){var h=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);e.stepBackward(),e.stepBackward();do{if(t=n,s=e.getCurrentTokenRow(),l=(a=e.getCurrentTokenColumn())+t.value.length,n=e.stepBackward(),t)if(-1!==t.type.indexOf("tag-name")){if(o===t.value)if("<"===n.value){if(++r>0){var d=new i(s,a,s,l),p=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);do{t=e.stepForward()}while(t&&">"!==t.value);var g=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1)}}else""===t.value){for(var m=0,f=n;f;){if(-1!==f.type.indexOf("tag-name")&&f.value===o){r--;break}if("<"===f.value)break;f=e.stepBackward(),m++}for(var y=0;yn&&(this.$docRowCache.splice(n,t),this.$screenRowCache.splice(n,t))},e.prototype.$getRowCacheIndex=function(e,t){for(var n=0,o=e.length-1;n<=o;){var i=n+o>>1,r=e[i];if(t>r)n=i+1;else{if(!(t=t);r++);return(n=o[r])?(n.index=r,n.start=i-n.value.length,n):null},e.prototype.setUndoManager=function(e){if(this.$undoManager=e,this.$informUndoManager&&this.$informUndoManager.cancel(),e){var t=this;e.addSession(this),this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.mergeUndoDeltas=!1},this.$informUndoManager=i.delayedCall(this.$syncInformUndoManager)}else this.$syncInformUndoManager=function(){}},e.prototype.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},e.prototype.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},e.prototype.getTabString=function(){return this.getUseSoftTabs()?i.stringRepeat(" ",this.getTabSize()):"\t"},e.prototype.setUseSoftTabs=function(e){this.setOption("useSoftTabs",e)},e.prototype.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},e.prototype.setTabSize=function(e){this.setOption("tabSize",e)},e.prototype.getTabSize=function(){return this.$tabSize},e.prototype.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize==0},e.prototype.setNavigateWithinSoftTabs=function(e){this.setOption("navigateWithinSoftTabs",e)},e.prototype.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},e.prototype.setOverwrite=function(e){this.setOption("overwrite",e)},e.prototype.getOverwrite=function(){return this.$overwrite},e.prototype.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},e.prototype.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._signal("changeBreakpoint",{})},e.prototype.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._signal("changeBreakpoint",{})},e.prototype.getBreakpoints=function(){return this.$breakpoints},e.prototype.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t0&&(o=!!n.charAt(t-1).match(this.tokenRe)),o||(o=!!n.charAt(t).match(this.tokenRe)),o)var i=this.tokenRe;else i=/^\s+$/.test(n.slice(t-1,t+1))?/\s/:this.nonTokenRe;var r=t;if(r>0){do{r--}while(r>=0&&n.charAt(r).match(i));r++}for(var s=t;se&&(e=t.screenWidth)})),this.lineWidgetWidth=e},e.prototype.$computeWidth=function(e){if(this.$modified||e){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var t=this.doc.getAllLines(),n=this.$rowLengthCache,o=0,i=0,r=this.$foldData[i],s=r?r.start.row:1/0,a=t.length,l=0;ls){if((l=r.end.row+1)>=a)break;s=(r=this.$foldData[i++])?r.start.row:1/0}null==n[l]&&(n[l]=this.$getStringScreenWidth(t[l])[0]),n[l]>o&&(o=n[l])}this.screenWidth=o}},e.prototype.getLine=function(e){return this.doc.getLine(e)},e.prototype.getLines=function(e,t){return this.doc.getLines(e,t)},e.prototype.getLength=function(){return this.doc.getLength()},e.prototype.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},e.prototype.insert=function(e,t){return this.doc.insert(e,t)},e.prototype.remove=function(e){return this.doc.remove(e)},e.prototype.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},e.prototype.undoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var n=e.length-1;-1!=n;n--){var o=e[n];"insert"==o.action||"remove"==o.action?this.doc.revertDelta(o):o.folds&&this.addFolds(o.folds)}!t&&this.$undoSelect&&(e.selectionBefore?this.selection.fromJSON(e.selectionBefore):this.selection.setRange(this.$getUndoSelection(e,!0))),this.$fromUndo=!1}},e.prototype.redoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var n=0;ne.end.column&&(r.start.column+=c),r.end.row==e.end.row&&r.end.column>e.end.column&&(r.end.column+=c)),s&&r.start.row>=e.end.row&&(r.start.row+=s,r.end.row+=s)}if(r.end=this.insert(r.start,o),i.length){var a=e.start,l=r.start,c=(s=l.row-a.row,l.column-a.column);this.addFolds(i.map((function(e){return(e=e.clone()).start.row==a.row&&(e.start.column+=c),e.end.row==a.row&&(e.end.column+=c),e.start.row+=s,e.end.row+=s,e})))}return r},e.prototype.indentRows=function(e,t,n){n=n.replace(/\t/g,this.getTabString());for(var o=e;o<=t;o++)this.doc.insertInLine({row:o,column:0},n)},e.prototype.outdentRows=function(e){for(var t=e.collapseRows(),n=new u(0,0,0,0),o=this.getTabSize(),i=t.start.row;i<=t.end.row;++i){var r=this.getLine(i);n.start.row=i,n.end.row=i;for(var s=0;s0){var i;if((i=this.getRowFoldEnd(t+n))>this.doc.getLength()-1)return 0;o=i-t}else e=this.$clipRowToDocument(e),o=(t=this.$clipRowToDocument(t))-e+1;var r=new u(e,0,t,Number.MAX_VALUE),s=this.getFoldsInRange(r).map((function(e){return(e=e.clone()).start.row+=o,e.end.row+=o,e})),a=0==n?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+o,a),s.length&&this.addFolds(s),o},e.prototype.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},e.prototype.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},e.prototype.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},e.prototype.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},e.prototype.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},e.prototype.$clipPositionToDocument=function(e,t){if(t=Math.max(0,t),e<0)e=0,t=0;else{var n=this.doc.getLength();e>=n?(e=n-1,t=this.doc.getLine(n-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},e.prototype.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},e.prototype.setUseWrapMode=function(e){if(e!=this.$useWrapMode){if(this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0),e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal("changeWrapMode")}},e.prototype.getUseWrapMode=function(){return this.$useWrapMode},e.prototype.setWrapLimitRange=function(e,t){this.$wrapLimitRange.min===e&&this.$wrapLimitRange.max===t||(this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},e.prototype.adjustWrapLimit=function(e,t){var n=this.$wrapLimitRange;n.max<0&&(n={min:t,max:t});var o=this.$constrainWrapLimit(e,n.min,n.max);return o!=this.$wrapLimit&&o>1&&(this.$wrapLimit=o,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0)},e.prototype.$constrainWrapLimit=function(e,t,n){return t&&(e=Math.max(t,e)),n&&(e=Math.min(n,e)),e},e.prototype.getWrapLimit=function(){return this.$wrapLimit},e.prototype.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},e.prototype.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},e.prototype.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,n=e.action,o=e.start,i=e.end,r=o.row,s=i.row,a=s-r,l=null;if(this.$updating=!0,0!=a)if("remove"===n){this[t?"$wrapData":"$rowLengthCache"].splice(r,a);var c=this.$foldData;l=this.getFoldsInRange(e),this.removeFolds(l);var u=0;if(m=this.getFoldLine(i.row)){m.addRemoveChars(i.row,i.column,o.column-i.column),m.shiftRow(-a);var h=this.getFoldLine(r);h&&h!==m&&(h.merge(m),m=h),u=c.indexOf(m)+1}for(;u=i.row&&m.shiftRow(-a);s=r}else{var d=Array(a);d.unshift(r,0);var p=t?this.$wrapData:this.$rowLengthCache;if(p.splice.apply(p,d),c=this.$foldData,u=0,m=this.getFoldLine(r)){var g=m.range.compareInside(o.row,o.column);0==g?(m=m.split(o.row,o.column))&&(m.shiftRow(a),m.addRemoveChars(s,0,i.column-o.column)):-1==g&&(m.addRemoveChars(r,0,i.column-o.column),m.shiftRow(a)),u=c.indexOf(m)+1}for(;u=r&&m.shiftRow(a)}}else a=Math.abs(e.start.column-e.end.column),"remove"===n&&(l=this.getFoldsInRange(e),this.removeFolds(l),a=-a),(m=this.getFoldLine(r))&&m.addRemoveChars(r,o.column,a);return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(r,s):this.$updateRowLengthCache(r,s),l},e.prototype.$updateRowLengthCache=function(e,t,n){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},e.prototype.$updateWrapData=function(e,t){var n,o,i=this.doc.getAllLines(),r=this.getTabSize(),s=this.$wrapData,a=this.$wrapLimit,l=e;for(t=Math.min(t,i.length-1);l<=t;)(o=this.getFoldLine(l,o))?(n=[],o.walk(function(e,t,o,r){var s;if(null!=e){(s=this.$getDisplayTokens(e,n.length))[0]=v;for(var a=1;at-h;){var d=r+t-h;if(e[d-1]>=x&&e[d]>=x)u(d);else if(e[d]!=v&&e[d]!=b){for(var p=Math.max(d-(t-(t>>2)),r-1);d>p&&e[d]p&&e[d]p&&e[d]==w;)d--}else for(;d>p&&e[d]p?u(++d):(e[d=r+t]==y&&d--,u(d-h))}else{for(;d!=r-1&&e[d]!=v;d--);if(d>r){u(d);continue}for(d=r+t;d39&&r<48||r>57&&r<64?o.push(w):r>=4352&&$(r)?o.push(f,y):o.push(f)}return o},e.prototype.$getStringScreenWidth=function(e,t,n){if(0==t)return[0,0];var o,i;for(null==t&&(t=1/0),n=n||0,i=0;i=4352&&$(o)?n+=2:n+=1,!(n>t));i++);return[n,i]},e.prototype.getRowLength=function(e){var t=1;return this.lineWidgets&&(t+=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0),this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+t:t},e.prototype.getRowLineCount=function(e){return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1:1},e.prototype.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),n=this.$wrapData[t.row];return n.length&&n[0]=0){a=c[u],r=this.$docRowCache[u];var d=e>c[h-1]}else d=!h;for(var p=this.getLength()-1,g=this.getNextFoldLine(r),m=g?g.start.row:1/0;a<=e&&!(a+(l=this.getRowLength(r))>e||r>=p);)a+=l,++r>m&&(r=g.end.row+1,m=(g=this.getNextFoldLine(r,g))?g.start.row:1/0),d&&(this.$docRowCache.push(r),this.$screenRowCache.push(a));if(g&&g.start.row<=r)o=this.getFoldDisplayLine(g),r=g.start.row;else{if(a+l<=e||r>p)return{row:p,column:this.getLine(p).length};o=this.getLine(r),g=null}var f=0,y=Math.floor(e-a);if(this.$useWrapMode){var v=this.$wrapData[r];v&&(i=v[y],y>0&&v.length&&(f=v.indent,s=v[y-1]||v[v.length-1],o=o.substring(s)))}return void 0!==n&&this.$bidiHandler.isBidiRow(a+y,r,y)&&(t=this.$bidiHandler.offsetToCol(n)),s+=this.$getStringScreenWidth(o,t-f)[1],this.$useWrapMode&&s>=i&&(s=i-1),g?g.idxToPosition(s):{row:r,column:s}},e.prototype.documentToScreenPosition=function(e,t){if(void 0===t)var n=this.$clipPositionToDocument(e.row,e.column);else n=this.$clipPositionToDocument(e,t);e=n.row,t=n.column;var o,i=0,r=null;(o=this.getFoldAt(e,t,1))&&(e=o.start.row,t=o.start.column);var s,a=0,l=this.$docRowCache,c=this.$getRowCacheIndex(l,e),u=l.length;if(u&&c>=0){a=l[c],i=this.$screenRowCache[c];var h=e>l[u-1]}else h=!u;for(var d=this.getNextFoldLine(a),p=d?d.start.row:1/0;a=p){if((s=d.end.row+1)>e)break;p=(d=this.getNextFoldLine(s,d))?d.start.row:1/0}else s=a+1;i+=this.getRowLength(a),a=s,h&&(this.$docRowCache.push(a),this.$screenRowCache.push(i))}var g="";d&&a>=p?(g=this.getFoldDisplayLine(d,e,t),r=d.start.row):(g=this.getLine(e).substring(0,t),r=e);var m=0;if(this.$useWrapMode){var f=this.$wrapData[r];if(f){for(var y=0;g.length>=f[y];)i++,y++;g=g.substring(f[y-1]||0,g.length),m=y>0?f.indent:0}}return this.lineWidgets&&this.lineWidgets[a]&&this.lineWidgets[a].rowsAbove&&(i+=this.lineWidgets[a].rowsAbove),{row:i,column:m+this.$getStringScreenWidth(g)[0]}},e.prototype.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},e.prototype.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},e.prototype.getScreenLength=function(){var e=0,t=null;if(this.$useWrapMode)for(var n=this.$wrapData.length,o=0,i=(a=0,(t=this.$foldData[a++])?t.start.row:1/0);oi&&(o=t.end.row+1,i=(t=this.$foldData[a++])?t.start.row:1/0)}else{e=this.getLength();for(var s=this.$foldData,a=0;an);r++);return[o,r]})},e.prototype.destroy=function(){this.destroyed||(this.bgTokenizer.setDocument(null),this.bgTokenizer.cleanup(),this.destroyed=!0),this.$stopWorker(),this.removeAllListeners(),this.doc&&this.doc.off("change",this.$onChange),this.selection.detach()},e}();m.$uid=0,m.prototype.$modes=s.$modes,m.prototype.getValue=m.prototype.toString,m.prototype.$defaultUndoManager={undo:function(){},redo:function(){},hasUndo:function(){},hasRedo:function(){},reset:function(){},add:function(){},addSelection:function(){},startNewGroup:function(){},addSession:function(){}},m.prototype.$overwrite=!1,m.prototype.$mode=null,m.prototype.$modeId=null,m.prototype.$scrollTop=0,m.prototype.$scrollLeft=0,m.prototype.$wrapLimit=80,m.prototype.$useWrapMode=!1,m.prototype.$wrapLimitRange={min:null,max:null},m.prototype.lineWidgets=null,m.prototype.isFullWidth=$,o.implement(m.prototype,a);var f=1,y=2,v=3,b=4,w=9,x=10,k=11,C=12;function $(e){return!(e<4352)&&(e>=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510)}e("./edit_session/folding").Folding.call(m.prototype),e("./edit_session/bracket_match").BracketMatch.call(m.prototype),s.defineOptions(m.prototype,"session",{wrap:{set:function(e){if(e&&"off"!=e?"free"==e?e=!0:"printMargin"==e?e=-1:"string"==typeof e&&(e=parseInt(e,10)||!1):e=!1,this.$wrap!=e)if(this.$wrap=e,e){var t="number"==typeof e?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}else this.setUseWrapMode(!1)},get:function(){return this.getUseWrapMode()?-1==this.$wrap?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){(e="auto"==e?"text"!=this.$mode.type:"text"!=e)!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0)))},initialValue:"auto"},indentedSoftWrap:{set:function(){this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0))},initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){(e=parseInt(e))>0&&this.$tabSize!==e&&(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},foldStyle:{set:function(e){this.setFoldStyle(e)},handlesSet:!0},overwrite:{set:function(e){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId},handlesSet:!0}}),t.EditSession=m})),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],(function(e,t,n){"use strict";var o=e("./lib/lang"),i=e("./lib/oop"),r=e("./range").Range,s=function(){function e(){this.$options={}}return e.prototype.set=function(e){return i.mixin(this.$options,e),this},e.prototype.getOptions=function(){return o.copyObject(this.$options)},e.prototype.setOptions=function(e){this.$options=e},e.prototype.find=function(e){var t=this.$options,n=this.$matchIterator(e,t);if(!n)return!1;var o=null;return n.forEach((function(e,n,i,s){return o=new r(e,n,i,s),!(n==s&&t.start&&t.start.start&&0!=t.skipCurrent&&o.isEqual(t.start)&&(o=null,1))})),o},e.prototype.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var n=t.range,i=n?e.getLines(n.start.row,n.end.row):e.doc.getAllLines(),s=[],a=t.re;if(t.$isMultiLine){var l,c=a.length,u=i.length-c;e:for(var h=a.offset||0;h<=u;h++){for(var d=0;dm||(s.push(l=new r(h,m,h+c-1,f)),c>2&&(h=h+c-2))}}else for(var y=0;yx&&s[d].end.row==k;)d--;for(s=s.slice(y,d+1),y=0,d=s.length;y=c;n--)if(p(n,Number.MAX_VALUE,e))return;if(0!=t.wrap)for(n=u,c=l.row;n>=c;n--)if(p(n,Number.MAX_VALUE,e))return}};else h=function(e){var n=l.row;if(!p(n,l.column,e)){for(n+=1;n<=u;n++)if(p(n,0,e))return;if(0!=t.wrap)for(n=c,u=l.row;n<=u;n++)if(p(n,0,e))return}};if(t.$isMultiLine)var d=n.length,p=function(t,o,r){var s=i?t-d+1:t;if(!(s<0||s+d>e.getLength())){var a=e.getLine(s),l=a.search(n[0]);if(!(!i&&lo))return!!r(s,l,s+d-1,u)||void 0}}};else p=i?function(t,i,r){var a,l=e.getLine(t),c=[],u=0;for(n.lastIndex=0;a=n.exec(l);){var h=a[0].length;if(u=a.index,!h){if(u>=l.length)break;n.lastIndex=u+=o.skipEmptyMatch(l,u,s)}if(a.index+h>i)break;c.push(a.index,h)}for(var d=c.length-1;d>=0;d-=2){var p=c[d-1];if(r(t,p,t,p+(h=c[d])))return!0}}:function(t,i,r){var a,l,c=e.getLine(t);for(n.lastIndex=i;l=n.exec(c);){var u=l[0].length;if(r(t,a=l.index,t,a+u))return!0;if(!u&&(n.lastIndex=a+=o.skipEmptyMatch(c,a,s),a>=c.length))return!1}};return{forEach:h}},e}();t.Search=s})),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=e("../lib/keys"),s=e("../lib/useragent"),a=r.KEY_MODS,l=function(){function e(e,t){this.$init(e,t,!1)}return e.prototype.$init=function(e,t,n){this.platform=t||(s.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=n},e.prototype.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},e.prototype.removeCommand=function(e,t){var n=e&&("string"==typeof e?e:e.name);e=this.commands[n],t||delete this.commands[n];var o=this.commandKeyBinding;for(var i in o){var r=o[i];if(r==e)delete o[i];else if(Array.isArray(r)){var s=r.indexOf(e);-1!=s&&(r.splice(s,1),1==r.length&&(o[i]=r[0]))}}},e.prototype.bindKey=function(e,t,n){if("object"==typeof e&&e&&(null==n&&(n=e.position),e=e[this.platform]),e)return"function"==typeof t?this.addCommand({exec:t,bindKey:e,name:t.name||e}):void e.split("|").forEach((function(e){var o="";if(-1!=e.indexOf(" ")){var i=e.split(/\s+/);e=i.pop(),i.forEach((function(e){var t=this.parseKeys(e),n=a[t.hashId]+t.key;o+=(o?" ":"")+n,this._addCommandToBinding(o,"chainKeys")}),this),o+=" "}var r=this.parseKeys(e),s=a[r.hashId]+r.key;this._addCommandToBinding(o+s,t,n)}),this)},e.prototype._addCommandToBinding=function(e,t,n){var o,i=this.commandKeyBinding;if(t)if(!i[e]||this.$singleCommand)i[e]=t;else{Array.isArray(i[e])?-1!=(o=i[e].indexOf(t))&&i[e].splice(o,1):i[e]=[i[e]],"number"!=typeof n&&(n=c(t));var r=i[e];for(o=0;on);o++);r.splice(o,0,t)}else delete i[e]},e.prototype.addCommands=function(e){e&&Object.keys(e).forEach((function(t){var n=e[t];if(n){if("string"==typeof n)return this.bindKey(n,t);"function"==typeof n&&(n={exec:n}),"object"==typeof n&&(n.name||(n.name=t),this.addCommand(n))}}),this)},e.prototype.removeCommands=function(e){Object.keys(e).forEach((function(t){this.removeCommand(e[t])}),this)},e.prototype.bindKeys=function(e){Object.keys(e).forEach((function(t){this.bindKey(t,e[t])}),this)},e.prototype._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},e.prototype.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter((function(e){return e})),n=t.pop(),o=r[n];if(r.FUNCTION_KEYS[o])n=r.FUNCTION_KEYS[o].toLowerCase();else{if(!t.length)return{key:n,hashId:-1};if(1==t.length&&"shift"==t[0])return{key:n.toUpperCase(),hashId:-1}}for(var i=0,s=t.length;s--;){var a=r.KEY_MODS[t[s]];if(null==a)return"undefined"!=typeof console&&console.error("invalid modifier "+t[s]+" in "+e),!1;i|=a}return{key:n,hashId:i}},e.prototype.findKeyCommand=function(e,t){var n=a[e]+t;return this.commandKeyBinding[n]},e.prototype.handleKeyboard=function(e,t,n,o){if(!(o<0)){var i=a[t]+n,r=this.commandKeyBinding[i];return e.$keyChain&&(e.$keyChain+=" "+i,r=this.commandKeyBinding[e.$keyChain]||r),!r||"chainKeys"!=r&&"chainKeys"!=r[r.length-1]?(e.$keyChain&&(t&&4!=t||1!=n.length?(-1==t||o>0)&&(e.$keyChain=""):e.$keyChain=e.$keyChain.slice(0,-i.length-1)),{command:r}):(e.$keyChain=e.$keyChain||i,{command:"null"})}},e.prototype.getStatusText=function(e,t){return t.$keyChain||""},e}();function c(e){return"object"==typeof e&&e.bindKey&&e.bindKey.position||(e.isDefault?-100:0)}var u=function(e){function t(t,n){var o=e.call(this,t,n)||this;return o.$singleCommand=!0,o}return i(t,e),t}(l);u.call=function(e,t,n){l.prototype.$init.call(e,t,n,!0)},l.call=function(e,t,n){l.prototype.$init.call(e,t,n,!1)},t.HashHandler=u,t.MultiHashHandler=l})),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=e("../lib/oop"),s=e("../keyboard/hash_handler").MultiHashHandler,a=e("../lib/event_emitter").EventEmitter,l=function(e){function t(t,n){var o=e.call(this,n,t)||this;return o.byName=o.commands,o.setDefaultHandler("exec",(function(e){return e.args?e.command.exec(e.editor,e.args,e.event,!1):e.command.exec(e.editor,{},e.event,!0)})),o}return i(t,e),t.prototype.exec=function(e,t,n){if(Array.isArray(e)){for(var o=e.length;o--;)if(this.exec(e[o],t,n))return!0;return!1}if("string"==typeof e&&(e=this.commands[e]),!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;if(0!=this.$checkCommandState&&e.isAvailable&&!e.isAvailable(t))return!1;var i={editor:t,command:e,args:n};return i.returnValue=this._emit("exec",i),this._signal("afterExec",i),!1!==i.returnValue},t.prototype.toggleRecording=function(e){if(!this.$inReplay)return e&&e._emit("changeStatus"),this.recording?(this.macro.pop(),this.off("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},t.prototype.replay=function(e){if(!this.$inReplay&&this.macro){if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach((function(t){"string"==typeof t?this.exec(t,e):this.exec(t[0],e,t[1])}),this)}finally{this.$inReplay=!1}}},t.prototype.trimMacro=function(e){return e.map((function(e){return"string"!=typeof e[0]&&(e[0]=e[0].name),e[1]||(e=e[0]),e}))},t}(s);r.implement(l.prototype,a),t.CommandManager=l})),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],(function(e,t,n){"use strict";var o=e("../lib/lang"),i=e("../config"),r=e("../range").Range;function s(e,t){return{win:e,mac:t}}t.commands=[{name:"showSettingsMenu",description:"Show settings menu",bindKey:s("Ctrl-,","Command-,"),exec:function(e){i.loadModule("ace/ext/settings_menu",(function(t){t.init(e),e.showSettingsMenu()}))},readOnly:!0},{name:"goToNextError",description:"Go to next error",bindKey:s("Alt-E","F4"),exec:function(e){i.loadModule("ace/ext/error_marker",(function(t){t.showErrorMarker(e,1)}))},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",description:"Go to previous error",bindKey:s("Alt-Shift-E","Shift-F4"),exec:function(e){i.loadModule("ace/ext/error_marker",(function(t){t.showErrorMarker(e,-1)}))},scrollIntoView:"animate",readOnly:!0},{name:"selectall",description:"Select all",bindKey:s("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",description:"Center selection",bindKey:s(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",description:"Go to line...",bindKey:s("Ctrl-L","Command-L"),exec:function(e,t){"number"!=typeof t||isNaN(t)||e.gotoLine(t),e.prompt({$type:"gotoLine"})},readOnly:!0},{name:"fold",bindKey:s("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:s("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",description:"Toggle fold widget",bindKey:s("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",description:"Toggle parent fold widget",bindKey:s("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",description:"Fold all",bindKey:s(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldAllComments",description:"Fold all comments",bindKey:s(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAllComments()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",description:"Fold other",bindKey:s("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",description:"Unfold all",bindKey:s("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",description:"Find next",bindKey:s("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",description:"Find previous",bindKey:s("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",description:"Select or find next",bindKey:s("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",description:"Select or find previous",bindKey:s("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",description:"Find",bindKey:s("Ctrl-F","Command-F"),exec:function(e){i.loadModule("ace/ext/searchbox",(function(t){t.Search(e)}))},readOnly:!0},{name:"overwrite",description:"Overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",description:"Select to start",bindKey:s("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",description:"Go to start",bindKey:s("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",description:"Select up",bindKey:s("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",description:"Go line up",bindKey:s("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",description:"Select to end",bindKey:s("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",description:"Go to end",bindKey:s("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",description:"Select down",bindKey:s("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",description:"Go line down",bindKey:s("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",description:"Select word left",bindKey:s("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",description:"Go to word left",bindKey:s("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",description:"Select to line start",bindKey:s("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",description:"Go to line start",bindKey:s("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",description:"Select left",bindKey:s("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",description:"Go to left",bindKey:s("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",description:"Select word right",bindKey:s("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",description:"Go to word right",bindKey:s("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",description:"Select to line end",bindKey:s("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",description:"Go to line end",bindKey:s("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",description:"Select right",bindKey:s("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",description:"Go to right",bindKey:s("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",description:"Select page down",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",description:"Page down",bindKey:s(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",description:"Go to page down",bindKey:s("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",description:"Select page up",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",description:"Page up",bindKey:s(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",description:"Go to page up",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",description:"Scroll up",bindKey:s("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",description:"Scroll down",bindKey:s("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",description:"Select line start",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",description:"Select line end",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",description:"Toggle recording",bindKey:s("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",description:"Replay macro",bindKey:s("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",description:"Jump to matching",bindKey:s("Ctrl-\\|Ctrl-P","Command-\\"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",description:"Select to matching",bindKey:s("Ctrl-Shift-\\|Ctrl-Shift-P","Command-Shift-\\"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",description:"Expand to matching",bindKey:s("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",description:"Pass keys to browser",bindKey:s(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",description:"Copy",exec:function(e){},readOnly:!0},{name:"cut",description:"Cut",exec:function(e){var t=e.$copyWithEmptySelection&&e.selection.isEmpty()?e.selection.getLineRange():e.selection.getRange();e._emit("cut",t),t.isEmpty()||e.session.remove(t),e.clearSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",description:"Paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",description:"Remove line",bindKey:s("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",description:"Duplicate selection",bindKey:s("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",description:"Sort lines",bindKey:s("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",description:"Toggle comment",bindKey:s("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",description:"Toggle block comment",bindKey:s("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",description:"Modify number up",bindKey:s("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",description:"Modify number down",bindKey:s("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",description:"Replace",bindKey:s("Ctrl-H","Command-Option-F"),exec:function(e){i.loadModule("ace/ext/searchbox",(function(t){t.Search(e,!0)}))}},{name:"undo",description:"Undo",bindKey:s("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",description:"Redo",bindKey:s("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",description:"Copy lines up",bindKey:s("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",description:"Move lines up",bindKey:s("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",description:"Copy lines down",bindKey:s("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",description:"Move lines down",bindKey:s("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",description:"Delete",bindKey:s("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",description:"Backspace",bindKey:s("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",description:"Cut or delete",bindKey:s("Shift-Delete",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",description:"Remove to line start",bindKey:s("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",description:"Remove to line end",bindKey:s("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",description:"Remove to line start hard",bindKey:s("Ctrl-Shift-Backspace",null),exec:function(e){var t=e.selection.getRange();t.start.column=0,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",description:"Remove to line end hard",bindKey:s("Ctrl-Shift-Delete",null),exec:function(e){var t=e.selection.getRange();t.end.column=Number.MAX_VALUE,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",description:"Remove word left",bindKey:s("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",description:"Remove word right",bindKey:s("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",description:"Outdent",bindKey:s("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",description:"Indent",bindKey:s("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",description:"Block outdent",bindKey:s("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",description:"Block indent",bindKey:s("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",description:"Insert string",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",description:"Insert text",exec:function(e,t){e.insert(o.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",description:"Split line",bindKey:s(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",description:"Transpose letters",bindKey:s("Alt-Shift-X","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",description:"To uppercase",bindKey:s("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",description:"To lowercase",bindKey:s("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"autoindent",description:"Auto Indent",bindKey:s(null,null),exec:function(e){e.autoIndent()},multiSelectAction:"forEachLine",scrollIntoView:"animate"},{name:"expandtoline",description:"Expand to line",bindKey:s("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"openlink",bindKey:s("Ctrl+F3","F3"),exec:function(e){e.openLink()}},{name:"joinlines",description:"Join lines",bindKey:s(null,null),exec:function(e){for(var t=e.selection.isBackwards(),n=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),i=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),s=e.session.doc.getLine(n.row).length,a=e.session.doc.getTextRange(e.selection.getRange()).replace(/\n\s*/," ").length,l=e.session.doc.getLine(n.row),c=n.row+1;c<=i.row+1;c++){var u=o.stringTrimLeft(o.stringTrimRight(e.session.doc.getLine(c)));0!==u.length&&(u=" "+u),l+=u}i.row+10?(e.selection.moveCursorTo(n.row,n.column),e.selection.selectTo(n.row,n.column+a)):(s=e.session.doc.getLine(n.row).length>s?s+1:s,e.selection.moveCursorTo(n.row,s))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",description:"Invert selection",bindKey:s(null,null),exec:function(e){var t=e.session.doc.getLength()-1,n=e.session.doc.getLine(t).length,o=e.selection.rangeList.ranges,i=[];o.length<1&&(o=[e.selection.getRange()]);for(var s=0;st[n].column&&n++,r.unshift(n,0),t.splice.apply(t,r),this.$updateRows()}}},e.prototype.$updateRows=function(){var e=this.session.lineWidgets;if(e){var t=!0;e.forEach((function(e,n){if(e)for(t=!1,e.row=n;e.$oldWidget;)e.$oldWidget.row=n,e=e.$oldWidget})),t&&(this.session.lineWidgets=null)}},e.prototype.$registerLineWidget=function(e){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var t=this.session.lineWidgets[e.row];return t&&(e.$oldWidget=t,t.el&&t.el.parentNode&&(t.el.parentNode.removeChild(t.el),t._inDocument=!1)),this.session.lineWidgets[e.row]=e,e},e.prototype.addLineWidget=function(e){if(this.$registerLineWidget(e),e.session=this.session,!this.editor)return e;var t=this.editor.renderer;e.html&&!e.el&&(e.el=o.createElement("div"),e.el.innerHTML=e.html),e.text&&!e.el&&(e.el=o.createElement("div"),e.el.textContent=e.text),e.el&&(o.addCssClass(e.el,"ace_lineWidgetContainer"),e.className&&o.addCssClass(e.el,e.className),e.el.style.position="absolute",e.el.style.zIndex=5,t.container.appendChild(e.el),e._inDocument=!0,e.coverGutter||(e.el.style.zIndex=3),null==e.pixelHeight&&(e.pixelHeight=e.el.offsetHeight)),null==e.rowCount&&(e.rowCount=e.pixelHeight/t.layerConfig.lineHeight);var n=this.session.getFoldAt(e.row,0);if(e.$fold=n,n){var i=this.session.lineWidgets;e.row!=n.end.row||i[n.start.row]?e.hidden=!0:i[n.start.row]=e}return this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows(),this.renderWidgets(null,t),this.onWidgetChanged(e),e},e.prototype.removeLineWidget=function(e){if(e._inDocument=!1,e.session=null,e.el&&e.el.parentNode&&e.el.parentNode.removeChild(e.el),e.editor&&e.editor.destroy)try{e.editor.destroy()}catch(e){}if(this.session.lineWidgets){var t=this.session.lineWidgets[e.row];if(t==e)this.session.lineWidgets[e.row]=e.$oldWidget,e.$oldWidget&&this.onWidgetChanged(e.$oldWidget);else for(;t;){if(t.$oldWidget==e){t.$oldWidget=e.$oldWidget;break}t=t.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows()},e.prototype.getWidgetsAtRow=function(e){for(var t=this.session.lineWidgets,n=t&&t[e],o=[];n;)o.push(n),n=n.$oldWidget;return o},e.prototype.onWidgetChanged=function(e){this.session._changedWidgets.push(e),this.editor&&this.editor.renderer.updateFull()},e.prototype.measureWidgets=function(e,t){var n=this.session._changedWidgets,o=t.layerConfig;if(n&&n.length){for(var i=1/0,r=0;r0&&!o[i];)i--;this.firstRow=n.firstRow,this.lastRow=n.lastRow,t.$cursorLayer.config=n;for(var s=i;s<=r;s++){var a=o[s];if(a&&a.el)if(a.hidden)a.el.style.top=-100-(a.pixelHeight||0)+"px";else{a._inDocument||(a._inDocument=!0,t.container.appendChild(a.el));var l=t.$cursorLayer.getPixelPosition({row:s,column:0},!0).top;a.coverLine||(l+=n.lineHeight*this.session.getRowLineCount(a.row)),a.el.style.top=l-n.offset+"px";var c=a.coverGutter?0:t.gutterWidth;a.fixedWidth||(c-=t.scrollLeft),a.el.style.left=c+"px",a.fullWidth&&a.screenWidth&&(a.el.style.minWidth=n.width+2*n.padding+"px"),a.fixedWidth?a.el.style.right=t.scrollBar.getWidth()+"px":a.el.style.right=""}}}},e}();t.LineWidgets=i})),ace.define("ace/keyboard/gutter_handler",["require","exports","module","ace/lib/keys","ace/mouse/default_gutter_handler"],(function(e,t,n){"use strict";var o=e("../lib/keys"),i=e("../mouse/default_gutter_handler").GutterTooltip,r=function(){function e(e){this.editor=e,this.gutterLayer=e.renderer.$gutterLayer,this.element=e.renderer.$gutter,this.lines=e.renderer.$gutterLayer.$lines,this.activeRowIndex=null,this.activeLane=null,this.annotationTooltip=new i(this.editor)}return e.prototype.addListener=function(){this.element.addEventListener("keydown",this.$onGutterKeyDown.bind(this)),this.element.addEventListener("focusout",this.$blurGutter.bind(this)),this.editor.on("mousewheel",this.$blurGutter.bind(this))},e.prototype.removeListener=function(){this.element.removeEventListener("keydown",this.$onGutterKeyDown.bind(this)),this.element.removeEventListener("focusout",this.$blurGutter.bind(this)),this.editor.off("mousewheel",this.$blurGutter.bind(this))},e.prototype.$onGutterKeyDown=function(e){if(this.annotationTooltip.isOpen)return e.preventDefault(),void(e.keyCode===o.escape&&this.annotationTooltip.hideTooltip());if(e.target===this.element){if(e.keyCode!=o.enter)return;e.preventDefault();var t=this.editor.getCursorPosition().row;return this.editor.isRowVisible(t)||this.editor.scrollToLine(t,!0,!0),void setTimeout(function(){var e=this.$rowToRowIndex(this.gutterLayer.$cursorCell.row),t=this.$findNearestFoldWidget(e),n=this.$findNearestAnnotation(e);if(null!==t||null!==n)return null===t&&null!==n?(this.activeRowIndex=n,this.activeLane="annotation",void this.$focusAnnotation(this.activeRowIndex)):null!==t&&null===n?(this.activeRowIndex=t,this.activeLane="fold",void this.$focusFoldWidget(this.activeRowIndex)):Math.abs(n-e)0||e+t=0&&this.$isFoldWidgetVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isFoldWidgetVisible(e+t))return e+t}return null},e.prototype.$findNearestAnnotation=function(e){if(this.$isAnnotationVisible(e))return e;for(var t=0;e-t>0||e+t=0&&this.$isAnnotationVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isAnnotationVisible(e+t))return e+t}return null},e.prototype.$focusFoldWidget=function(e){if(null!=e){var t=this.$getFoldWidget(e);t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus()}},e.prototype.$focusAnnotation=function(e){if(null!=e){var t=this.$getAnnotation(e);t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus()}},e.prototype.$blurFoldWidget=function(e){var t=this.$getFoldWidget(e);t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur()},e.prototype.$blurAnnotation=function(e){var t=this.$getAnnotation(e);t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur()},e.prototype.$moveFoldWidgetUp=function(){for(var e=this.activeRowIndex;e>0;)if(e--,this.$isFoldWidgetVisible(e))return this.$blurFoldWidget(this.activeRowIndex),this.activeRowIndex=e,void this.$focusFoldWidget(this.activeRowIndex)},e.prototype.$moveFoldWidgetDown=function(){for(var e=this.activeRowIndex;e0;)if(e--,this.$isAnnotationVisible(e))return this.$blurAnnotation(this.activeRowIndex),this.activeRowIndex=e,void this.$focusAnnotation(this.activeRowIndex)},e.prototype.$moveAnnotationDown=function(){for(var e=this.activeRowIndex;e=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},i=e("./lib/oop"),r=e("./lib/dom"),s=e("./lib/lang"),a=e("./lib/useragent"),l=e("./keyboard/textinput").TextInput,c=e("./mouse/mouse_handler").MouseHandler,u=e("./mouse/fold_handler").FoldHandler,h=e("./keyboard/keybinding").KeyBinding,d=e("./edit_session").EditSession,p=e("./search").Search,g=e("./range").Range,m=e("./lib/event_emitter").EventEmitter,f=e("./commands/command_manager").CommandManager,y=e("./commands/default_commands").commands,v=e("./config"),b=e("./token_iterator").TokenIterator,w=e("./line_widgets").LineWidgets,x=e("./keyboard/gutter_handler").GutterKeyboardHandler,k=e("./config").nls,C=e("./clipboard"),$=e("./lib/keys"),S=function(){function e(t,n,o){this.$toDestroy=[];var i=t.getContainerElement();this.container=i,this.renderer=t,this.id="editor"+ ++e.$uid,this.commands=new f(a.isMac?"mac":"win",y),"object"==typeof document&&(this.textInput=new l(t.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.$mouseHandler=new c(this),new u(this)),this.keyBinding=new h(this),this.$search=(new p).set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=s.delayedCall(function(){this._signal("input",{}),this.session&&!this.session.destroyed&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on("change",(function(e,t){t._$emitInputEvent.schedule(31)})),this.setSession(n||o&&o.session||new d("")),v.resetOptions(this),o&&this.setOptions(o),v._signal("editor",this)}return e.prototype.$initOperationListeners=function(){this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0),this.$opResetTimer=s.delayedCall(this.endOperation.bind(this,!0)),this.on("change",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.docChanged=!0}.bind(this),!0),this.on("changeSelection",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.selectionChanged=!0}.bind(this),!0)},e.prototype.startOperation=function(e){if(this.curOp){if(!e||this.curOp.command)return;this.prevOp=this.curOp}e||(this.previousCommand=null,e={}),this.$opResetTimer.schedule(),this.curOp=this.session.curOp={command:e.command||{},args:e.args,scrollTop:this.renderer.scrollTop},this.curOp.selectionBefore=this.selection.toJSON()},e.prototype.endOperation=function(e){if(this.curOp&&this.session){if(e&&!1===e.returnValue||!this.session)return this.curOp=null;if(1==e&&this.curOp.command&&"mouse"==this.curOp.command.name)return;if(this._signal("beforeEndOperation"),!this.curOp)return;var t=this.curOp.command,n=t&&t.scrollIntoView;if(n){switch(n){case"center-animate":n="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var o=this.selection.getRange(),i=this.renderer.layerConfig;(o.start.row>=i.lastRow||o.end.row<=i.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead)}"animate"==n&&this.renderer.animateScrolling(this.curOp.scrollTop)}var r=this.selection.toJSON();this.curOp.selectionAfter=r,this.$lastSel=this.selection.toJSON(),this.session.getUndoManager().addSelection(r),this.prevOp=this.curOp,this.curOp=null}},e.prototype.$historyTracker=function(e){if(this.$mergeUndoDeltas){var t=this.prevOp,n=this.$mergeableCommands,o=t.command&&e.command.name==t.command.name;if("insertstring"==e.command.name){var i=e.args;void 0===this.mergeNextCommand&&(this.mergeNextCommand=!0),o=o&&this.mergeNextCommand&&(!/\s/.test(i)||/\s/.test(t.args)),this.mergeNextCommand=!0}else o=o&&-1!==n.indexOf(e.command.name);"always"!=this.$mergeUndoDeltas&&Date.now()-this.sequenceStartTime>2e3&&(o=!1),o?this.session.mergeUndoDeltas=!0:-1!==n.indexOf(e.command.name)&&(this.sequenceStartTime=Date.now())}},e.prototype.setKeyboardHandler=function(e,t){if(e&&"string"==typeof e&&"ace"!=e){this.$keybindingId=e;var n=this;v.loadModule(["keybinding",e],(function(o){n.$keybindingId==e&&n.keyBinding.setKeyboardHandler(o&&o.handler),t&&t()}))}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},e.prototype.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},e.prototype.setSession=function(e){if(this.session!=e){this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var n=this.session.getSelection();n.off("changeCursor",this.$onCursorChange),n.off("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal("changeSession",{session:e,oldSession:t}),this.curOp=null,t&&t._signal("changeEditor",{oldEditor:this}),e&&e._signal("changeEditor",{editor:this}),e&&!e.destroyed&&e.bgTokenizer.scheduleStart()}},e.prototype.getSession=function(){return this.session},e.prototype.setValue=function(e,t){return this.session.doc.setValue(e),t?1==t?this.navigateFileEnd():-1==t&&this.navigateFileStart():this.selectAll(),e},e.prototype.getValue=function(){return this.session.getValue()},e.prototype.getSelection=function(){return this.selection},e.prototype.resize=function(e){this.renderer.onResize(e)},e.prototype.setTheme=function(e,t){this.renderer.setTheme(e,t)},e.prototype.getTheme=function(){return this.renderer.getTheme()},e.prototype.setStyle=function(e){this.renderer.setStyle(e)},e.prototype.unsetStyle=function(e){this.renderer.unsetStyle(e)},e.prototype.getFontSize=function(){return this.getOption("fontSize")||r.computedStyle(this.container).fontSize},e.prototype.setFontSize=function(e){this.setOption("fontSize",e)},e.prototype.$highlightBrackets=function(){if(!this.$highlightPending){var e=this;this.$highlightPending=!0,setTimeout((function(){e.$highlightPending=!1;var t=e.session;if(t&&!t.destroyed){t.$bracketHighlight&&(t.$bracketHighlight.markerIds.forEach((function(e){t.removeMarker(e)})),t.$bracketHighlight=null);var n=e.getCursorPosition(),o=e.getKeyboardHandler(),i=o&&o.$getDirectionForHighlight&&o.$getDirectionForHighlight(e),r=t.getMatchingBracketRanges(n,i);if(!r){var s=new b(t,n.row,n.column).getCurrentToken();if(s&&/\b(?:tag-open|tag-name)/.test(s.type)){var a=t.getMatchingTags(n);a&&(r=[a.openTagName,a.closeTagName])}}if(!r&&t.$mode.getMatching&&(r=t.$mode.getMatching(e.session)),r){var l="ace_bracket";Array.isArray(r)?1==r.length&&(l="ace_error_bracket"):r=[r],2==r.length&&(0==g.comparePoints(r[0].end,r[1].start)?r=[g.fromPoints(r[0].start,r[1].end)]:0==g.comparePoints(r[0].start,r[1].end)&&(r=[g.fromPoints(r[1].start,r[0].end)])),t.$bracketHighlight={ranges:r,markerIds:r.map((function(e){return t.addMarker(e,l,"text")}))},e.getHighlightIndentGuides()&&e.renderer.$textLayer.$highlightIndentGuide()}else e.getHighlightIndentGuides()&&e.renderer.$textLayer.$highlightIndentGuide()}}),50)}},e.prototype.focus=function(){this.textInput.focus()},e.prototype.isFocused=function(){return this.textInput.isFocused()},e.prototype.blur=function(){this.textInput.blur()},e.prototype.onFocus=function(e){this.$isFocused||(this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",e))},e.prototype.onBlur=function(e){this.$isFocused&&(this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",e))},e.prototype.$cursorChange=function(){this.renderer.updateCursor(),this.$highlightBrackets(),this.$updateHighlightActiveLine()},e.prototype.onDocumentChange=function(e){var t=this.session.$useWrapMode,n=e.start.row==e.end.row?e.end.row:1/0;this.renderer.updateLines(e.start.row,n,t),this._signal("change",e),this.$cursorChange()},e.prototype.onTokenizerUpdate=function(e){var t=e.data;this.renderer.updateLines(t.first,t.last)},e.prototype.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},e.prototype.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},e.prototype.onCursorChange=function(){this.$cursorChange(),this._signal("changeSelection")},e.prototype.$updateHighlightActiveLine=function(){var e,t=this.getSession();if(this.$highlightActiveLine&&("line"==this.$selectionStyle&&this.selection.isMultiLine()||(e=this.getCursorPosition()),this.renderer.theme&&this.renderer.theme.$selectionColorConflict&&!this.selection.isEmpty()&&(e=!1),!this.renderer.$maxLines||1!==this.session.getLength()||this.renderer.$minLines>1||(e=!1)),t.$highlightLineMarker&&!e)t.removeMarker(t.$highlightLineMarker.id),t.$highlightLineMarker=null;else if(!t.$highlightLineMarker&&e){var n=new g(e.row,e.column,e.row,1/0);n.id=t.addMarker(n,"ace_active-line","screenLine"),t.$highlightLineMarker=n}else e&&(t.$highlightLineMarker.start.row=e.row,t.$highlightLineMarker.end.row=e.row,t.$highlightLineMarker.start.column=e.column,t._signal("changeBackMarker"))},e.prototype.onSelectionChange=function(e){var t=this.session;if(t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var n=this.selection.getRange(),o=this.getSelectionStyle();t.$selectionMarker=t.addMarker(n,"ace_selection",o)}var i=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(i),this._signal("changeSelection")},e.prototype.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(!t.isEmpty()&&!t.isMultiLine()){var n=t.start.column,o=t.end.column,i=e.getLine(t.start.row),r=i.substring(n,o);if(!(r.length>5e3)&&/[\w\d]/.test(r)){var s=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:r}),a=i.substring(n-1,o+1);if(s.test(a))return s}}},e.prototype.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},e.prototype.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},e.prototype.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},e.prototype.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},e.prototype.onChangeMode=function(e){this.renderer.updateText(),this._emit("changeMode",e)},e.prototype.onChangeWrapLimit=function(){this.renderer.updateFull()},e.prototype.onChangeWrapMode=function(){this.renderer.onResize(!0)},e.prototype.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},e.prototype.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},e.prototype.getCopyText=function(){var e=this.getSelectedText(),t=this.session.doc.getNewLineCharacter(),n=!1;if(!e&&this.$copyWithEmptySelection){n=!0;for(var o=this.selection.getAllRanges(),i=0;ia.search(/\S|$/)){var l=a.substr(i.column).search(/\S|$/);n.doc.removeInLine(i.row,i.column,i.column+l)}}this.clearSelection();var c=i.column,u=n.getState(i.row),h=(a=n.getLine(i.row),o.checkOutdent(u,a,e));if(n.insert(i,e),r&&r.selection&&(2==r.selection.length?this.selection.setSelectionRange(new g(i.row,c+r.selection[0],i.row,c+r.selection[1])):this.selection.setSelectionRange(new g(i.row+r.selection[0],r.selection[1],i.row+r.selection[2],r.selection[3]))),this.$enableAutoIndent){if(n.getDocument().isNewLine(e)){var d=o.getNextLineIndent(u,a.slice(0,i.column),n.getTabString());n.insert({row:i.row+1,column:0},d)}h&&o.autoOutdent(u,n,i.row)}},e.prototype.autoIndent=function(){var e,t,n=this.session,o=n.getMode();if(this.selection.isEmpty())e=0,t=n.doc.getLength()-1;else{var i=this.getSelectionRange();e=i.start.row,t=i.end.row}for(var r,s,a,l="",c="",u="",h=n.getTabString(),d=e;d<=t;d++)d>0&&(l=n.getState(d-1),c=n.getLine(d-1),u=o.getNextLineIndent(l,c,h)),r=n.getLine(d),u!==(s=o.$getIndent(r))&&(s.length>0&&(a=new g(d,0,d,s.length),n.remove(a)),u.length>0&&n.insert({row:d,column:0},u)),o.autoOutdent(l,n,d)},e.prototype.onTextInput=function(e,t){if(!t)return this.keyBinding.onTextInput(e);this.startOperation({command:{name:"insertstring"}});var n=this.applyComposition.bind(this,e,t);this.selection.rangeCount?this.forEachSelection(n):n(),this.endOperation()},e.prototype.applyComposition=function(e,t){var n;(t.extendLeft||t.extendRight)&&((n=this.selection.getRange()).start.column-=t.extendLeft,n.end.column+=t.extendRight,n.start.column<0&&(n.start.row--,n.start.column+=this.session.getLine(n.start.row).length+1),this.selection.setRange(n),e||n.isEmpty()||this.remove()),!e&&this.selection.isEmpty()||this.insert(e,!0),(t.restoreStart||t.restoreEnd)&&((n=this.selection.getRange()).start.column-=t.restoreStart,n.end.column-=t.restoreEnd,this.selection.setRange(n))},e.prototype.onCommandKey=function(e,t,n){return this.keyBinding.onCommandKey(e,t,n)},e.prototype.setOverwrite=function(e){this.session.setOverwrite(e)},e.prototype.getOverwrite=function(){return this.session.getOverwrite()},e.prototype.toggleOverwrite=function(){this.session.toggleOverwrite()},e.prototype.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},e.prototype.getScrollSpeed=function(){return this.getOption("scrollSpeed")},e.prototype.setDragDelay=function(e){this.setOption("dragDelay",e)},e.prototype.getDragDelay=function(){return this.getOption("dragDelay")},e.prototype.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},e.prototype.getSelectionStyle=function(){return this.getOption("selectionStyle")},e.prototype.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},e.prototype.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},e.prototype.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},e.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},e.prototype.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},e.prototype.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},e.prototype.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},e.prototype.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},e.prototype.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},e.prototype.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},e.prototype.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},e.prototype.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},e.prototype.setHighlightIndentGuides=function(e){this.renderer.setHighlightIndentGuides(e)},e.prototype.getHighlightIndentGuides=function(){return this.renderer.getHighlightIndentGuides()},e.prototype.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},e.prototype.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},e.prototype.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},e.prototype.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},e.prototype.setReadOnly=function(e){this.setOption("readOnly",e)},e.prototype.getReadOnly=function(){return this.getOption("readOnly")},e.prototype.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},e.prototype.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},e.prototype.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},e.prototype.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},e.prototype.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},e.prototype.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},e.prototype.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},e.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},e.prototype.remove=function(e){this.selection.isEmpty()&&("left"==e?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var n=this.session,o=n.getState(t.start.row),i=n.getMode().transformAction(o,"deletion",this,n,t);if(0===t.end.column){var r=n.getTextRange(t);if("\n"==r[r.length-1]){var s=n.getLine(t.end.row);/^\s+$/.test(s)&&(t.end.column=s.length)}}i&&(t=i)}this.session.remove(t),this.clearSelection()},e.prototype.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.selection.isEmpty()&&this.selection.selectLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},e.prototype.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},e.prototype.setGhostText=function(e,t){this.session.widgetManager||(this.session.widgetManager=new w(this.session),this.session.widgetManager.attach(this)),this.renderer.setGhostText(e,t)},e.prototype.removeGhostText=function(){this.session.widgetManager&&this.renderer.removeGhostText()},e.prototype.transposeLetters=function(){if(this.selection.isEmpty()){var e=this.getCursorPosition(),t=e.column;if(0!==t){var n,o,i=this.session.getLine(e.row);tt.toLowerCase()?1:0}));var i=new g(0,0,0,0);for(o=e.first;o<=e.last;o++){var r=t.getLine(o);i.start.row=o,i.end.row=o,i.end.column=r.length,t.replace(i,n[o-e.first])}},e.prototype.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},e.prototype.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),n=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,n,e)},e.prototype.getNumberAt=function(e,t){var n=/[\-]?[0-9]+(?:\.[0-9]+)?/g;n.lastIndex=0;for(var o=this.session.getLine(e);n.lastIndex=t)return{value:i[0],start:i.index,end:i.index+i[0].length}}return null},e.prototype.modifyNumber=function(e){var t=this.selection.getCursor().row,n=this.selection.getCursor().column,o=new g(t,n-1,t,n),i=this.session.getTextRange(o);if(!isNaN(parseFloat(i))&&isFinite(i)){var r=this.getNumberAt(t,n);if(r){var s=r.value.indexOf(".")>=0?r.start+r.value.indexOf(".")+1:r.end,a=r.start+r.value.length-s,l=parseFloat(r.value);l*=Math.pow(10,a),s!==r.end&&n=a&&r<=l&&(n=t,c.selection.clearSelection(),c.moveCursorTo(e,a+o),c.selection.selectTo(e,l+o)),a=l}));for(var u,h=this.$toggleWordPairs,d=0;d=l&&s<=c&&d.match(/((?:https?|ftp):\/\/[\S]+)/)){a=d.replace(/[\s:.,'";}\]]+$/,"");break}l=c}}catch(e){n={error:e}}finally{try{h&&!h.done&&(i=u.return)&&i.call(u)}finally{if(n)throw n.error}}return a},e.prototype.openLink=function(){var e=this.selection.getCursor(),t=this.findLinkAt(e.row,e.column);return t&&window.open(t,"_blank"),null!=t},e.prototype.removeLines=function(){var e=this.$getSelectedRows();this.session.removeFullLines(e.first,e.last),this.clearSelection()},e.prototype.duplicateSelection=function(){var e=this.selection,t=this.session,n=e.getRange(),o=e.isBackwards();if(n.isEmpty()){var i=n.start.row;t.duplicateLines(i,i)}else{var r=o?n.start:n.end,s=t.insert(r,t.getTextRange(n),!1);n.start=r,n.end=s,e.setSelectionRange(n,o)}},e.prototype.moveLinesDown=function(){this.$moveLines(1,!1)},e.prototype.moveLinesUp=function(){this.$moveLines(-1,!1)},e.prototype.moveText=function(e,t,n){return this.session.moveText(e,t,n)},e.prototype.copyLinesUp=function(){this.$moveLines(-1,!0)},e.prototype.copyLinesDown=function(){this.$moveLines(1,!0)},e.prototype.$moveLines=function(e,t){var n,o,i=this.selection;if(!i.inMultiSelectMode||this.inVirtualSelectionMode){var r=i.toOrientedRange();n=this.$getSelectedRows(r),o=this.session.$moveLines(n.first,n.last,t?0:e),t&&-1==e&&(o=0),r.moveBy(o,0),i.fromOrientedRange(r)}else{var s=i.rangeList.ranges;i.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;for(var a=0,l=0,c=s.length,u=0;up+1)break;p=g.last}for(u--,a=this.session.$moveLines(d,p,t?0:e),t&&-1==e&&(h=u+1);h<=u;)s[h].moveBy(a,0),h++;t||(a=0),l+=a}i.fromOrientedRange(i.ranges[0]),i.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},e.prototype.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},e.prototype.onCompositionStart=function(e){this.renderer.showComposition(e)},e.prototype.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},e.prototype.onCompositionEnd=function(){this.renderer.hideComposition()},e.prototype.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},e.prototype.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},e.prototype.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},e.prototype.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},e.prototype.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},e.prototype.$moveByPage=function(e,t){var n=this.renderer,o=this.renderer.layerConfig,i=e*Math.floor(o.height/o.lineHeight);!0===t?this.selection.$moveSelection((function(){this.moveCursorBy(i,0)})):!1===t&&(this.selection.moveCursorBy(i,0),this.selection.clearSelection());var r=n.scrollTop;n.scrollBy(0,i*o.lineHeight),null!=t&&n.scrollCursorIntoView(null,.5),n.animateScrolling(r)},e.prototype.selectPageDown=function(){this.$moveByPage(1,!0)},e.prototype.selectPageUp=function(){this.$moveByPage(-1,!0)},e.prototype.gotoPageDown=function(){this.$moveByPage(1,!1)},e.prototype.gotoPageUp=function(){this.$moveByPage(-1,!1)},e.prototype.scrollPageDown=function(){this.$moveByPage(1)},e.prototype.scrollPageUp=function(){this.$moveByPage(-1)},e.prototype.scrollToRow=function(e){this.renderer.scrollToRow(e)},e.prototype.scrollToLine=function(e,t,n,o){this.renderer.scrollToLine(e,t,n,o)},e.prototype.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},e.prototype.getCursorPosition=function(){return this.selection.getCursor()},e.prototype.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},e.prototype.getSelectionRange=function(){return this.selection.getRange()},e.prototype.selectAll=function(){this.selection.selectAll()},e.prototype.clearSelection=function(){this.selection.clearSelection()},e.prototype.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},e.prototype.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},e.prototype.jumpToMatching=function(e,t){var n=this.getCursorPosition(),o=new b(this.session,n.row,n.column),i=o.getCurrentToken(),r=0;i&&-1!==i.type.indexOf("tag-name")&&(i=o.stepBackward());var s=i||o.stepForward();if(s){var a,l,c=!1,u={},h=n.column-s.start,d={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(s.value.match(/[{}()\[\]]/g)){for(;h1?u[s.value]++:"=0;--r)this.$tryReplace(n[r],e)&&o++;return this.selection.setSelectionRange(i),o},e.prototype.$tryReplace=function(e,t){var n=this.session.getTextRange(e);return null!==(t=this.$search.replace(n,t))?(e.end=this.session.replace(e,t),e):null},e.prototype.getLastSearchOptions=function(){return this.$search.getOptions()},e.prototype.find=function(e,t,n){t||(t={}),"string"==typeof e||e instanceof RegExp?t.needle=e:"object"==typeof e&&i.mixin(t,e);var o=this.selection.getRange();null==t.needle&&((e=this.session.getTextRange(o)||this.$search.$options.needle)||(o=this.session.getWordRange(o.start.row,o.start.column),e=this.session.getTextRange(o)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:o});var r=this.$search.find(this.session);return t.preventScroll?r:r?(this.revealRange(r,n),r):(t.backwards?o.start=o.end:o.end=o.start,void this.selection.setRange(o))},e.prototype.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},e.prototype.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},e.prototype.revealRange=function(e,t){this.session.unfold(e),this.selection.setSelectionRange(e);var n=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),!1!==t&&this.renderer.animateScrolling(n)},e.prototype.undo=function(){this.session.getUndoManager().undo(this.session),this.renderer.scrollCursorIntoView(null,.5)},e.prototype.redo=function(){this.session.getUndoManager().redo(this.session),this.renderer.scrollCursorIntoView(null,.5)},e.prototype.destroy=function(){this.$toDestroy&&(this.$toDestroy.forEach((function(e){e.destroy()})),this.$toDestroy=null),this.$mouseHandler&&this.$mouseHandler.destroy(),this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy(),this._$emitInputEvent&&this._$emitInputEvent.cancel(),this.removeAllListeners()},e.prototype.setAutoScrollEditorIntoView=function(e){if(e){var t,n=this,o=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var i=this.$scrollAnchor;i.style.cssText="position:absolute",this.container.insertBefore(i,this.container.firstChild);var r=this.on("changeSelection",(function(){o=!0})),s=this.renderer.on("beforeRender",(function(){o&&(t=n.renderer.container.getBoundingClientRect())})),a=this.renderer.on("afterRender",(function(){if(o&&t&&(n.isFocused()||n.searchBox&&n.searchBox.isFocused())){var e=n.renderer,r=e.$cursorLayer.$pixelPos,s=e.layerConfig,a=r.top-s.offset;null!=(o=r.top>=0&&a+t.top<0||!(r.topwindow.innerHeight)&&null)&&(i.style.top=a+"px",i.style.left=r.left+"px",i.style.height=s.lineHeight+"px",i.scrollIntoView(o)),o=t=null}}));this.setAutoScrollEditorIntoView=function(e){e||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",r),this.renderer.off("afterRender",a),this.renderer.off("beforeRender",s))}}},e.prototype.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;t&&(t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&"wide"!=e,r.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e)))},e.prototype.prompt=function(e,t,n){var o=this;v.loadModule("ace/ext/prompt",(function(i){i.prompt(o,e,t,n)}))},e}();S.$uid=0,S.prototype.curOp=null,S.prototype.prevOp={},S.prototype.$mergeableCommands=["backspace","del","insertstring"],S.prototype.$toggleWordPairs=[["first","last"],["true","false"],["yes","no"],["width","height"],["top","bottom"],["right","left"],["on","off"],["x","y"],["get","set"],["max","min"],["horizontal","vertical"],["show","hide"],["add","remove"],["up","down"],["before","after"],["even","odd"],["in","out"],["inside","outside"],["next","previous"],["increase","decrease"],["attach","detach"],["&&","||"],["==","!="]],i.implement(S.prototype,m),v.defineOptions(S.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.textInput.setReadOnly(e),this.$resetCursorStyle()},initialValue:!1},copyWithEmptySelection:{set:function(e){this.textInput.setCopyWithEmptySelection(e)},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},enableAutoIndent:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.$keybindingId},handlesSet:!0},value:{set:function(e){this.session.setValue(e)},get:function(){return this.getValue()},handlesSet:!0,hidden:!0},session:{set:function(e){this.setSession(e)},get:function(){return this.session},handlesSet:!0,hidden:!0},showLineNumbers:{set:function(e){this.renderer.$gutterLayer.setShowLineNumbers(e),this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER),e&&this.$relativeLineNumbers?E.attach(this):E.detach(this)},initialValue:!0},relativeLineNumbers:{set:function(e){this.$showLineNumbers&&e?E.attach(this):E.detach(this)}},placeholder:{set:function(e){this.$updatePlaceholder||(this.$updatePlaceholder=function(){var e=this.session&&(this.renderer.$composition||this.session.getLength()>1||this.session.getLine(0).length>0);if(e&&this.renderer.placeholderNode)this.renderer.off("afterRender",this.$updatePlaceholder),r.removeCssClass(this.container,"ace_hasPlaceholder"),this.renderer.placeholderNode.remove(),this.renderer.placeholderNode=null;else if(e||this.renderer.placeholderNode)!e&&this.renderer.placeholderNode&&(this.renderer.placeholderNode.textContent=this.$placeholder||"");else{this.renderer.on("afterRender",this.$updatePlaceholder),r.addCssClass(this.container,"ace_hasPlaceholder");var t=r.createElement("div");t.className="ace_placeholder",t.textContent=this.$placeholder||"",this.renderer.placeholderNode=t,this.renderer.content.appendChild(this.renderer.placeholderNode)}}.bind(this),this.on("input",this.$updatePlaceholder)),this.$updatePlaceholder()}},enableKeyboardAccessibility:{set:function(e){var t,n={name:"blurTextInput",description:"Set focus to the editor content div to allow tabbing through the page",bindKey:"Esc",exec:function(e){e.blur(),e.renderer.scroller.focus()},readOnly:!0},o=function(e){if(e.target==this.renderer.scroller&&e.keyCode===$.enter){e.preventDefault();var t=this.getCursorPosition().row;this.isRowVisible(t)||this.scrollToLine(t,!0,!0),this.focus()}};e?(this.renderer.enableKeyboardAccessibility=!0,this.renderer.keyboardFocusClassName="ace_keyboard-focus",this.textInput.getElement().setAttribute("tabindex",-1),this.textInput.setNumberOfExtraLines(a.isWin?3:0),this.renderer.scroller.setAttribute("tabindex",0),this.renderer.scroller.setAttribute("role","group"),this.renderer.scroller.setAttribute("aria-roledescription",k("editor")),this.renderer.scroller.classList.add(this.renderer.keyboardFocusClassName),this.renderer.scroller.setAttribute("aria-label",k("Editor content, press Enter to start editing, press Escape to exit")),this.renderer.scroller.addEventListener("keyup",o.bind(this)),this.commands.addCommand(n),this.renderer.$gutter.setAttribute("tabindex",0),this.renderer.$gutter.setAttribute("aria-hidden",!1),this.renderer.$gutter.setAttribute("role","group"),this.renderer.$gutter.setAttribute("aria-roledescription",k("editor")),this.renderer.$gutter.setAttribute("aria-label",k("Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit")),this.renderer.$gutter.classList.add(this.renderer.keyboardFocusClassName),this.renderer.content.setAttribute("aria-hidden",!0),t||(t=new x(this)),t.addListener()):(this.renderer.enableKeyboardAccessibility=!1,this.textInput.getElement().setAttribute("tabindex",0),this.textInput.setNumberOfExtraLines(0),this.renderer.scroller.setAttribute("tabindex",-1),this.renderer.scroller.removeAttribute("role"),this.renderer.scroller.removeAttribute("aria-roledescription"),this.renderer.scroller.classList.remove(this.renderer.keyboardFocusClassName),this.renderer.scroller.removeAttribute("aria-label"),this.renderer.scroller.removeEventListener("keyup",o.bind(this)),this.commands.removeCommand(n),this.renderer.content.removeAttribute("aria-hidden"),this.renderer.$gutter.setAttribute("tabindex",-1),this.renderer.$gutter.setAttribute("aria-hidden",!0),this.renderer.$gutter.removeAttribute("role"),this.renderer.$gutter.removeAttribute("aria-roledescription"),this.renderer.$gutter.removeAttribute("aria-label"),this.renderer.$gutter.classList.remove(this.renderer.keyboardFocusClassName),t&&t.removeListener())},initialValue:!1},customScrollbar:"renderer",hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",displayIndentGuides:"renderer",highlightIndentGuides:"renderer",showGutter:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",hasCssTransforms:"renderer",maxPixelHeight:"renderer",useTextareaForIME:"renderer",useResizeObserver:"renderer",useSvgGutterIcons:"renderer",showFoldedAnnotations:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimeout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",navigateWithinSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"});var E={getText:function(e,t){return(Math.abs(e.selection.lead.row-t)||t+1+(t<9?"·":""))+""},getWidth:function(e,t,n){return Math.max(t.toString().length,(n.lastRow+1).toString().length,2)*n.characterWidth},update:function(e,t){t.renderer.$loop.schedule(t.renderer.CHANGE_GUTTER)},attach:function(e){e.renderer.$gutterLayer.$renderer=this,e.on("changeSelection",this.update),this.update(null,e)},detach:function(e){e.renderer.$gutterLayer.$renderer==this&&(e.renderer.$gutterLayer.$renderer=null),e.off("changeSelection",this.update),this.update(null,e)}};t.Editor=S})),ace.define("ace/layer/lines",["require","exports","module","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=function(){function e(e,t){this.element=e,this.canvasHeight=t||5e5,this.element.style.height=2*this.canvasHeight+"px",this.cells=[],this.cellCache=[],this.$offsetCoefficient=0}return e.prototype.moveContainer=function(e){o.translate(this.element,0,-e.firstRowScreen*e.lineHeight%this.canvasHeight-e.offset*this.$offsetCoefficient)},e.prototype.pageChanged=function(e,t){return Math.floor(e.firstRowScreen*e.lineHeight/this.canvasHeight)!==Math.floor(t.firstRowScreen*t.lineHeight/this.canvasHeight)},e.prototype.computeLineTop=function(e,t,n){var o=t.firstRowScreen*t.lineHeight,i=Math.floor(o/this.canvasHeight);return n.documentToScreenRow(e,0)*t.lineHeight-i*this.canvasHeight},e.prototype.computeLineHeight=function(e,t,n){return t.lineHeight*n.getRowLineCount(e)},e.prototype.getLength=function(){return this.cells.length},e.prototype.get=function(e){return this.cells[e]},e.prototype.shift=function(){this.$cacheCell(this.cells.shift())},e.prototype.pop=function(){this.$cacheCell(this.cells.pop())},e.prototype.push=function(e){if(Array.isArray(e)){this.cells.push.apply(this.cells,e);for(var t=o.createFragment(this.element),n=0;nr&&(l=i.end.row+1,r=(i=t.getNextFoldLine(l,i))?i.start.row:1/0),l>o){for(;this.$lines.getLength()>a+1;)this.$lines.pop();break}(s=this.$lines.get(++a))?s.row=l:(s=this.$lines.createCell(l,e,this.session,u),this.$lines.push(s)),this.$renderCell(s,e,i,l),l++}this._signal("afterRender"),this.$updateGutterWidth(e)},e.prototype.$updateGutterWidth=function(e){var t=this.session,n=t.gutterRenderer||this.$renderer,o=t.$firstLineNumber,i=this.$lines.last()?this.$lines.last().text:"";(this.$fixedWidth||t.$useWrapMode)&&(i=t.getLength()+o-1);var r=n?n.getWidth(t,i,e):i.toString().length*e.characterWidth,s=this.$padding||this.$computePadding();(r+=s.left+s.right)===this.gutterWidth||isNaN(r)||(this.gutterWidth=r,this.element.parentNode.style.width=this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._signal("changeGutterWidth",r))},e.prototype.$updateCursorRow=function(){if(this.$highlightGutterLine){var e=this.session.selection.getCursor();this.$cursorRow!==e.row&&(this.$cursorRow=e.row)}},e.prototype.updateLineHighlight=function(){if(this.$highlightGutterLine){var e=this.session.selection.cursor.row;if(this.$cursorRow=e,!this.$cursorCell||this.$cursorCell.row!=e){this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ",""));var t=this.$lines.cells;this.$cursorCell=null;for(var n=0;n=this.$cursorRow){if(o.row>this.$cursorRow){var i=this.session.getFoldLine(this.$cursorRow);if(!(n>0&&i&&i.start.row==t[n-1].row))break;o=t[n-1]}o.element.className="ace_gutter-active-line "+o.element.className,this.$cursorCell=o;break}}}}},e.prototype.scrollLines=function(e){var t=this.config;if(this.config=e,this.$updateCursorRow(),this.$lines.pageChanged(t,e))return this.update(e);this.$lines.moveContainer(e);var n=Math.min(e.lastRow+e.gutterOffset,this.session.getLength()-1),o=this.oldLastRow;if(this.oldLastRow=n,!t||o0;i--)this.$lines.shift();if(o>n)for(i=this.session.getFoldedRowCount(n+1,o);i>0;i--)this.$lines.pop();e.firstRowo&&this.$lines.push(this.$renderLines(e,o+1,n)),this.updateLineHighlight(),this._signal("afterRender"),this.$updateGutterWidth(e)},e.prototype.$renderLines=function(e,t,n){for(var o=[],i=t,r=this.session.getNextFoldLine(i),s=r?r.start.row:1/0;i>s&&(i=r.end.row+1,s=(r=this.session.getNextFoldLine(i,r))?r.start.row:1/0),!(i>n);){var a=this.$lines.createCell(i,e,this.session,u);this.$renderCell(a,e,r,i),o.push(a),i++}return o},e.prototype.$renderCell=function(e,t,n,i){var r=e.element,s=this.session,a=r.childNodes[0],c=r.childNodes[1],u=r.childNodes[2],h=u.firstChild,d=s.$firstLineNumber,p=s.$breakpoints,g=s.$decorations,m=s.gutterRenderer||this.$renderer,f=this.$showFoldWidgets&&s.foldWidgets,y=n?n.start.row:Number.MAX_VALUE,v=t.lineHeight+"px",b=this.$useSvgGutterIcons?"ace_gutter-cell_svg-icons ":"ace_gutter-cell ",w=this.$useSvgGutterIcons?"ace_icon_svg":"ace_icon",x=(m?m.getText(s,i):i+d).toString();if(this.$highlightGutterLine&&(i==this.$cursorRow||n&&i=y&&this.$cursorRow<=n.end.row)&&(b+="ace_gutter-active-line ",this.$cursorCell!=e&&(this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ","")),this.$cursorCell=e)),p[i]&&(b+=p[i]),g[i]&&(b+=g[i]),this.$annotations[i]&&i!==y&&(b+=this.$annotations[i].className),f){var k=f[i];null==k&&(k=f[i]=s.getFoldWidget(i))}if(k){var C="ace_fold-widget ace_"+k,$="start"==k&&i==y&&in.right-t.right?"foldWidgets":void 0},e}();function u(e){var t=document.createTextNode("");e.appendChild(t);var n=o.createElement("span");e.appendChild(n);var i=o.createElement("span");e.appendChild(i);var r=o.createElement("span");return i.appendChild(r),e}c.prototype.$fixedWidth=!1,c.prototype.$highlightGutterLine=!0,c.prototype.$renderer="",c.prototype.$showLineNumbers=!0,c.prototype.$showFoldWidgets=!0,i.implement(c.prototype,s),t.Gutter=c})),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("../range").Range,i=e("../lib/dom"),r=function(){function e(e){this.element=i.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)}return e.prototype.setPadding=function(e){this.$padding=e},e.prototype.setSession=function(e){this.session=e},e.prototype.setMarkers=function(e){this.markers=e},e.prototype.elt=function(e,t){var n=-1!=this.i&&this.element.childNodes[this.i];n?this.i++:(n=document.createElement("div"),this.element.appendChild(n),this.i=-1),n.style.cssText=t,n.className=e},e.prototype.update=function(e){if(e){var t;for(var n in this.config=e,this.i=0,this.markers){var o=this.markers[n];if(o.range){var i=o.range.clipRows(e.firstRow,e.lastRow);if(!i.isEmpty())if(i=i.toScreenRange(this.session),o.renderer){var r=this.$getTop(i.start.row,e),s=this.$padding+i.start.column*e.characterWidth;o.renderer(t,i,s,r,e)}else"fullLine"==o.type?this.drawFullLineMarker(t,i,o.clazz,e):"screenLine"==o.type?this.drawScreenLineMarker(t,i,o.clazz,e):i.isMultiLine()?"text"==o.type?this.drawTextMarker(t,i,o.clazz,e):this.drawMultiLineMarker(t,i,o.clazz,e):this.drawSingleLineMarker(t,i,o.clazz+" ace_start ace_br15",e)}else o.update(t,this,this.session,e)}if(-1!=this.i)for(;this.id?4:0)|(c==l?8:0)),i,c==l?0:1,r)},e.prototype.drawMultiLineMarker=function(e,t,n,o,i){var r=this.$padding,s=o.lineHeight,a=this.$getTop(t.start.row,o),l=r+t.start.column*o.characterWidth;if(i=i||"",this.session.$bidiHandler.isBidiRow(t.start.row)?((c=t.clone()).end.row=c.start.row,c.end.column=this.session.getLine(c.start.row).length,this.drawBidiSingleLineMarker(e,c,n+" ace_br1 ace_start",o,null,i)):this.elt(n+" ace_br1 ace_start","height:"+s+"px;right:0;top:"+a+"px;left:"+l+"px;"+(i||"")),this.session.$bidiHandler.isBidiRow(t.end.row)){var c;(c=t.clone()).start.row=c.end.row,c.start.column=0,this.drawBidiSingleLineMarker(e,c,n+" ace_br12",o,null,i)}else{a=this.$getTop(t.end.row,o);var u=t.end.column*o.characterWidth;this.elt(n+" ace_br12","height:"+s+"px;width:"+u+"px;top:"+a+"px;left:"+r+"px;"+(i||""))}if(!((s=(t.end.row-t.start.row-1)*o.lineHeight)<=0)){a=this.$getTop(t.start.row+1,o);var h=(t.start.column?1:0)|(t.end.column?0:8);this.elt(n+(h?" ace_br"+h:""),"height:"+s+"px;right:0;top:"+a+"px;left:"+r+"px;"+(i||""))}},e.prototype.drawSingleLineMarker=function(e,t,n,o,i,r){if(this.session.$bidiHandler.isBidiRow(t.start.row))return this.drawBidiSingleLineMarker(e,t,n,o,i,r);var s=o.lineHeight,a=(t.end.column+(i||0)-t.start.column)*o.characterWidth,l=this.$getTop(t.start.row,o),c=this.$padding+t.start.column*o.characterWidth;this.elt(n,"height:"+s+"px;width:"+a+"px;top:"+l+"px;left:"+c+"px;"+(r||""))},e.prototype.drawBidiSingleLineMarker=function(e,t,n,o,i,r){var s=o.lineHeight,a=this.$getTop(t.start.row,o),l=this.$padding;this.session.$bidiHandler.getSelections(t.start.column,t.end.column).forEach((function(e){this.elt(n,"height:"+s+"px;width:"+(e.width+(i||0))+"px;top:"+a+"px;left:"+(l+e.left)+"px;"+(r||""))}),this)},e.prototype.drawFullLineMarker=function(e,t,n,o,i){var r=this.$getTop(t.start.row,o),s=o.lineHeight;t.start.row!=t.end.row&&(s+=this.$getTop(t.end.row,o)-r),this.elt(n,"height:"+s+"px;top:"+r+"px;left:0;right:0;"+(i||""))},e.prototype.drawScreenLineMarker=function(e,t,n,o,i){var r=this.$getTop(t.start.row,o),s=o.lineHeight;this.elt(n,"height:"+s+"px;top:"+r+"px;left:0;right:0;"+(i||""))},e}();r.prototype.$padding=0,t.Marker=r})),ace.define("ace/layer/text_util",["require","exports","module"],(function(e,t,n){var o=new Set(["text","rparen","lparen"]);t.isTextToken=function(e){return o.has(e)}})),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/layer/lines","ace/lib/event_emitter","ace/config","ace/layer/text_util"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("../lib/dom"),r=e("../lib/lang"),s=e("./lines").Lines,a=e("../lib/event_emitter").EventEmitter,l=e("../config").nls,c=e("./text_util").isTextToken,u=function(){function e(e){this.dom=i,this.element=this.dom.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this),this.$lines=new s(this.element)}return e.prototype.$updateEolChar=function(){var e=this.session.doc,t="\n"==e.getNewLineCharacter()&&"windows"!=e.getNewLineMode()?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=t)return this.EOL_CHAR=t,!0},e.prototype.setPadding=function(e){this.$padding=e,this.element.style.margin="0 "+e+"px"},e.prototype.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},e.prototype.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},e.prototype.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},e.prototype.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},e.prototype.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},e.prototype.setSession=function(e){this.session=e,e&&this.$computeTabString()},e.prototype.setShowInvisibles=function(e){return this.showInvisibles!=e&&(this.showInvisibles=e,"string"==typeof e?(this.showSpaces=/tab/i.test(e),this.showTabs=/space/i.test(e),this.showEOL=/eol/i.test(e)):this.showSpaces=this.showTabs=this.showEOL=e,this.$computeTabString(),!0)},e.prototype.setDisplayIndentGuides=function(e){return this.displayIndentGuides!=e&&(this.displayIndentGuides=e,this.$computeTabString(),!0)},e.prototype.setHighlightIndentGuides=function(e){return this.$highlightIndentGuides!==e&&(this.$highlightIndentGuides=e,e)},e.prototype.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;for(var t=this.$tabStrings=[0],n=1;nu&&(a=l.end.row+1,u=(l=this.session.getNextFoldLine(a,l))?l.start.row:1/0),!(a>i);){var h=r[s++];if(h){this.dom.removeChildren(h),this.$renderLine(h,a,a==u&&l),c&&(h.style.top=this.$lines.computeLineTop(a,e,this.session)+"px");var d=e.lineHeight*this.session.getRowLength(a)+"px";h.style.height!=d&&(c=!0,h.style.height=d)}a++}if(c)for(;s0;i--)this.$lines.shift();if(t.lastRow>e.lastRow)for(i=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);i>0;i--)this.$lines.pop();e.firstRowt.lastRow&&this.$lines.push(this.$renderLinesFragment(e,t.lastRow+1,e.lastRow)),this.$highlightIndentGuide()},e.prototype.$renderLinesFragment=function(e,t,n){for(var o=[],r=t,s=this.session.getNextFoldLine(r),a=s?s.start.row:1/0;r>a&&(r=s.end.row+1,a=(s=this.session.getNextFoldLine(r,s))?s.start.row:1/0),!(r>n);){var l=this.$lines.createCell(r,e,this.session),c=l.element;this.dom.removeChildren(c),i.setStyle(c.style,"height",this.$lines.computeLineHeight(r,e,this.session)+"px"),i.setStyle(c.style,"top",this.$lines.computeLineTop(r,e,this.session)+"px"),this.$renderLine(c,r,r==a&&s),this.$useLineGroups()?c.className="ace_line_group":c.className="ace_line",o.push(l),r++}return o},e.prototype.update=function(e){this.$lines.moveContainer(e),this.config=e;for(var t=e.firstRow,n=e.lastRow,o=this.$lines;o.getLength();)o.pop();o.push(this.$renderLinesFragment(e,t,n))},e.prototype.$renderToken=function(e,t,n,o){for(var i,s=this,a=/(\t)|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\uFEFF\uFFF9-\uFFFC\u2066\u2067\u2068\u202A\u202B\u202D\u202E\u202C\u2069]+)|(\u3000)|([\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3001-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF])/g,u=this.dom.createFragment(this.element),h=0;i=a.exec(o);){var d=i[1],p=i[2],g=i[3],m=i[4],f=i[5];if(s.showSpaces||!p){var y=h!=i.index?o.slice(h,i.index):"";if(h=i.index+i[0].length,y&&u.appendChild(this.dom.createTextNode(y,this.element)),d){var v=s.session.getScreenTabSize(t+i.index);u.appendChild(s.$tabStrings[v].cloneNode(!0)),t+=v-1}else p?s.showSpaces?((w=this.dom.createElement("span")).className="ace_invisible ace_invisible_space",w.textContent=r.stringRepeat(s.SPACE_CHAR,p.length),u.appendChild(w)):u.appendChild(this.dom.createTextNode(p,this.element)):g?((w=this.dom.createElement("span")).className="ace_invisible ace_invisible_space ace_invalid",w.textContent=r.stringRepeat(s.SPACE_CHAR,g.length),u.appendChild(w)):m?(t+=1,(w=this.dom.createElement("span")).style.width=2*s.config.characterWidth+"px",w.className=s.showSpaces?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",w.textContent=s.showSpaces?s.SPACE_CHAR:m,u.appendChild(w)):f&&(t+=1,(w=this.dom.createElement("span")).style.width=2*s.config.characterWidth+"px",w.className="ace_cjk",w.textContent=f,u.appendChild(w))}}if(u.appendChild(this.dom.createTextNode(h?o.slice(h):o,this.element)),c(n.type))e.appendChild(u);else{var b="ace_"+n.type.replace(/\./g," ace_"),w=this.dom.createElement("span");"fold"==n.type&&(w.style.width=n.value.length*this.config.characterWidth+"px",w.setAttribute("title",l("Unfold code"))),w.className=b,w.appendChild(u),e.appendChild(w)}return t+o.length},e.prototype.renderIndentGuide=function(e,t,n){var o=t.search(this.$indentGuideRe);if(o<=0||o>=n)return t;if(" "==t[0]){for(var i=(o-=o%this.tabSize)/this.tabSize,r=0;ri[r].start.row?this.$highlightIndentGuideMarker.dir=-1:this.$highlightIndentGuideMarker.dir=1;break}if(!this.$highlightIndentGuideMarker.end&&""!==e[t.row]&&t.column===e[t.row].length)for(this.$highlightIndentGuideMarker.dir=1,r=t.row+1;r0)for(var o=0;o=this.$highlightIndentGuideMarker.start+1){if(o.row>=this.$highlightIndentGuideMarker.end)break;this.$setIndentGuideActive(o,t)}}else for(n=e.length-1;n>=0;n--)if(o=e[n],this.$highlightIndentGuideMarker.end&&o.row=s;)a=this.$renderToken(l,a,u,h.substring(0,s-o)),h=h.substring(s-o),o=s,l=this.$createLineElement(),e.appendChild(l),l.appendChild(this.dom.createTextNode(r.stringRepeat(" ",n.indent),this.element)),a=0,s=n[++i]||Number.MAX_VALUE;0!=h.length&&(o+=h.length,a=this.$renderToken(l,a,u,h))}}n[n.length-1]>this.MAX_LINE_LENGTH&&this.$renderOverflowMessage(l,a,null,"",!0)},e.prototype.$renderSimpleLine=function(e,t){for(var n=0,o=0;othis.MAX_LINE_LENGTH)return this.$renderOverflowMessage(e,n,i,r);n=this.$renderToken(e,n,i,r)}}},e.prototype.$renderOverflowMessage=function(e,t,n,o,i){n&&this.$renderToken(e,t,n,o.slice(0,this.MAX_LINE_LENGTH-t));var r=this.dom.createElement("span");r.className="ace_inline_button ace_keyword ace_toggle_wrap",r.textContent=i?"":"",e.appendChild(r)},e.prototype.$renderLine=function(e,t,n){if(n||0==n||(n=this.session.getFoldLine(t)),n)var o=this.$getFoldLineTokens(t,n);else o=this.session.getTokens(t);var i=e;if(o.length){var r=this.session.getRowSplitData(t);r&&r.length?(this.$renderWrappedLine(e,o,r),i=e.lastChild):(i=e,this.$useLineGroups()&&(i=this.$createLineElement(),e.appendChild(i)),this.$renderSimpleLine(i,o))}else this.$useLineGroups()&&(i=this.$createLineElement(),e.appendChild(i));if(this.showEOL&&i){n&&(t=n.end.row);var s=this.dom.createElement("span");s.className="ace_invisible ace_invisible_eol",s.textContent=t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,i.appendChild(s)}},e.prototype.$getFoldLineTokens=function(e,t){var n=this.session,o=[],i=n.getTokens(e);return t.walk((function(e,t,r,s,a){null!=e?o.push({type:"fold",value:e}):(a&&(i=n.getTokens(t)),i.length&&function(e,t,n){for(var i=0,r=0;r+e[i].value.lengthn-t&&(s=s.substring(0,n-t)),o.push({type:e[i].type,value:s}),r=t+s.length,i+=1);rn?o.push({type:e[i].type,value:s.substring(0,n-r)}):o.push(e[i]),r+=s.length,i+=1}}(i,s,r))}),t.end.row,this.session.getLine(t.end.row).length),o},e.prototype.$useLineGroups=function(){return this.session.getUseWrapMode()},e}();u.prototype.EOF_CHAR="¶",u.prototype.EOL_CHAR_LF="¬",u.prototype.EOL_CHAR_CRLF="¤",u.prototype.EOL_CHAR=u.prototype.EOL_CHAR_LF,u.prototype.TAB_CHAR="—",u.prototype.SPACE_CHAR="·",u.prototype.$padding=0,u.prototype.MAX_LINE_LENGTH=1e4,u.prototype.showInvisibles=!1,u.prototype.showSpaces=!1,u.prototype.showTabs=!1,u.prototype.showEOL=!1,u.prototype.displayIndentGuides=!0,u.prototype.$highlightIndentGuides=!0,u.prototype.$tabStrings=[],u.prototype.destroy={},u.prototype.onChangeTabSize=u.prototype.$computeTabString,o.implement(u.prototype,a),t.Text=u})),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=function(){function e(e){this.element=o.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),o.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=this.$updateOpacity.bind(this)}return e.prototype.$updateOpacity=function(e){for(var t=this.cursors,n=t.length;n--;)o.setStyle(t[n].style,"opacity",e?"":"0")},e.prototype.$startCssAnimation=function(){for(var e=this.cursors,t=e.length;t--;)e[t].style.animationDuration=this.blinkInterval+"ms";this.$isAnimating=!0,setTimeout(function(){this.$isAnimating&&o.addCssClass(this.element,"ace_animate-blinking")}.bind(this))},e.prototype.$stopCssAnimation=function(){this.$isAnimating=!1,o.removeCssClass(this.element,"ace_animate-blinking")},e.prototype.setPadding=function(e){this.$padding=e},e.prototype.setSession=function(e){this.session=e},e.prototype.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},e.prototype.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},e.prototype.setSmoothBlinking=function(e){e!=this.smoothBlinking&&(this.smoothBlinking=e,o.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.restartTimer())},e.prototype.addCursor=function(){var e=o.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},e.prototype.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},e.prototype.hideCursor=function(){this.isVisible=!1,o.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},e.prototype.showCursor=function(){this.isVisible=!0,o.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},e.prototype.restartTimer=function(){var e=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.$stopCssAnimation(),this.smoothBlinking&&(this.$isSmoothBlinking=!1,o.removeCssClass(this.element,"ace_smooth-blinking")),e(!0),this.isBlinking&&this.blinkInterval&&this.isVisible)if(this.smoothBlinking&&(this.$isSmoothBlinking=!0,setTimeout(function(){this.$isSmoothBlinking&&o.addCssClass(this.element,"ace_smooth-blinking")}.bind(this))),o.HAS_CSS_ANIMATION)this.$startCssAnimation();else{var t=function(){this.timeoutId=setTimeout((function(){e(!1)}),.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval((function(){e(!0),t()}),this.blinkInterval),t()}else this.$stopCssAnimation()},e.prototype.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var n=this.session.documentToScreenPosition(e);return{left:this.$padding+(this.session.$bidiHandler.isBidiRow(n.row,e.row)?this.session.$bidiHandler.getPosLeft(n.column):n.column*this.config.characterWidth),top:(n.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight}},e.prototype.isCursorInView=function(e,t){return e.top>=0&&e.tope.height+e.offset||s.top<0)&&n>1)){var a=this.cursors[i++]||this.addCursor(),l=a.style;this.drawCursor?this.drawCursor(a,s,e,t[n],this.session):this.isCursorInView(s,e)?(o.setStyle(l,"display","block"),o.translate(a,s.left,s.top),o.setStyle(l,"width",Math.round(e.characterWidth)+"px"),o.setStyle(l,"height",e.lineHeight+"px")):o.setStyle(l,"display","none")}}for(;this.cursors.length>i;)this.removeCursor();var c=this.session.getOverwrite();this.$setOverwrite(c),this.$pixelPos=s,this.restartTimer()},e.prototype.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?o.addCssClass(this.element,"ace_overwrite-cursors"):o.removeCssClass(this.element,"ace_overwrite-cursors"))},e.prototype.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)},e}();i.prototype.$padding=0,i.prototype.drawCursor=null,t.Cursor=i})),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=e("./lib/oop"),s=e("./lib/dom"),a=e("./lib/event"),l=e("./lib/event_emitter").EventEmitter,c=32768,u=function(){function e(e,t){this.element=s.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+t,this.inner=s.createElement("div"),this.inner.className="ace_scrollbar-inner",this.inner.textContent=" ",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,a.addListener(this.element,"scroll",this.onScroll.bind(this)),a.addListener(this.element,"mousedown",a.preventDefault)}return e.prototype.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1},e}();r.implement(u.prototype,l);var h=function(e){function t(t,n){var o=e.call(this,t,"-v")||this;return o.scrollTop=0,o.scrollHeight=0,n.$scrollbarWidth=o.width=s.scrollbarWidth(t.ownerDocument),o.inner.style.width=o.element.style.width=(o.width||15)+5+"px",o.$minWidth=0,o}return i(t,e),t.prototype.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,1!=this.coeff){var e=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},t.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},t.prototype.setHeight=function(e){this.element.style.height=e+"px"},t.prototype.setScrollHeight=function(e){this.scrollHeight=e,e>c?(this.coeff=c/e,e=c):1!=this.coeff&&(this.coeff=1),this.inner.style.height=e+"px"},t.prototype.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)},t}(u);h.prototype.setInnerHeight=h.prototype.setScrollHeight;var d=function(e){function t(t,n){var o=e.call(this,t,"-h")||this;return o.scrollLeft=0,o.height=n.$scrollbarWidth,o.inner.style.height=o.element.style.height=(o.height||15)+5+"px",o}return i(t,e),t.prototype.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},t.prototype.getHeight=function(){return this.isVisible?this.height:0},t.prototype.setWidth=function(e){this.element.style.width=e+"px"},t.prototype.setInnerWidth=function(e){this.inner.style.width=e+"px"},t.prototype.setScrollWidth=function(e){this.inner.style.width=e+"px"},t.prototype.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)},t}(u);t.ScrollBar=h,t.ScrollBarV=h,t.ScrollBarH=d,t.VScrollBar=h,t.HScrollBar=d})),ace.define("ace/scrollbar_custom",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=e("./lib/oop"),s=e("./lib/dom"),a=e("./lib/event"),l=e("./lib/event_emitter").EventEmitter;s.importCssString(".ace_editor>.ace_sb-v div, .ace_editor>.ace_sb-h div{\n position: absolute;\n background: rgba(128, 128, 128, 0.6);\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n border: 1px solid #bbb;\n border-radius: 2px;\n z-index: 8;\n}\n.ace_editor>.ace_sb-v, .ace_editor>.ace_sb-h {\n position: absolute;\n z-index: 6;\n background: none;\n overflow: hidden!important;\n}\n.ace_editor>.ace_sb-v {\n z-index: 6;\n right: 0;\n top: 0;\n width: 12px;\n}\n.ace_editor>.ace_sb-v div {\n z-index: 8;\n right: 0;\n width: 100%;\n}\n.ace_editor>.ace_sb-h {\n bottom: 0;\n left: 0;\n height: 12px;\n}\n.ace_editor>.ace_sb-h div {\n bottom: 0;\n height: 100%;\n}\n.ace_editor>.ace_sb_grabbed {\n z-index: 8;\n background: #000;\n}","ace_scrollbar.css",!1);var c=function(){function e(e,t){this.element=s.createElement("div"),this.element.className="ace_sb"+t,this.inner=s.createElement("div"),this.inner.className="",this.element.appendChild(this.inner),this.VScrollWidth=12,this.HScrollHeight=12,e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,a.addMultiMouseDownListener(this.element,[500,300,300],this,"onMouseDown")}return e.prototype.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1},e}();r.implement(c.prototype,l);var u=function(e){function t(t,n){var o=e.call(this,t,"-v")||this;return o.scrollTop=0,o.scrollHeight=0,o.parent=t,o.width=o.VScrollWidth,o.renderer=n,o.inner.style.width=o.element.style.width=(o.width||15)+"px",o.$minWidth=0,o}return i(t,e),t.prototype.onMouseDown=function(e,t){if("mousedown"===e&&0===a.getButton(t)&&2!==t.detail){if(t.target===this.inner){var n=this,o=t.clientY,i=t.clientY,r=this.thumbTop;a.capture(this.inner,(function(e){o=e.clientY}),(function(){clearInterval(s)}));var s=setInterval((function(){if(void 0!==o){var e=n.scrollTopFromThumbTop(r+o-i);e!==n.scrollTop&&n._emit("scroll",{data:e})}}),20);return a.preventDefault(t)}var l=t.clientY-this.element.getBoundingClientRect().top-this.thumbHeight/2;return this._emit("scroll",{data:this.scrollTopFromThumbTop(l)}),a.preventDefault(t)}},t.prototype.getHeight=function(){return this.height},t.prototype.scrollTopFromThumbTop=function(e){var t=e*(this.pageHeight-this.viewHeight)/(this.slideHeight-this.thumbHeight);return(t|=0)<0?t=0:t>this.pageHeight-this.viewHeight&&(t=this.pageHeight-this.viewHeight),t},t.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},t.prototype.setHeight=function(e){this.height=Math.max(0,e),this.slideHeight=this.height,this.viewHeight=this.height,this.setScrollHeight(this.pageHeight,!0)},t.prototype.setScrollHeight=function(e,t){(this.pageHeight!==e||t)&&(this.pageHeight=e,this.thumbHeight=this.slideHeight*this.viewHeight/this.pageHeight,this.thumbHeight>this.slideHeight&&(this.thumbHeight=this.slideHeight),this.thumbHeight<15&&(this.thumbHeight=15),this.inner.style.height=this.thumbHeight+"px",this.scrollTop>this.pageHeight-this.viewHeight&&(this.scrollTop=this.pageHeight-this.viewHeight,this.scrollTop<0&&(this.scrollTop=0),this._emit("scroll",{data:this.scrollTop})))},t.prototype.setScrollTop=function(e){this.scrollTop=e,e<0&&(e=0),this.thumbTop=e*(this.slideHeight-this.thumbHeight)/(this.pageHeight-this.viewHeight),this.inner.style.top=this.thumbTop+"px"},t}(c);u.prototype.setInnerHeight=u.prototype.setScrollHeight;var h=function(e){function t(t,n){var o=e.call(this,t,"-h")||this;return o.scrollLeft=0,o.scrollWidth=0,o.height=o.HScrollHeight,o.inner.style.height=o.element.style.height=(o.height||12)+"px",o.renderer=n,o}return i(t,e),t.prototype.onMouseDown=function(e,t){if("mousedown"===e&&0===a.getButton(t)&&2!==t.detail){if(t.target===this.inner){var n=this,o=t.clientX,i=t.clientX,r=this.thumbLeft;a.capture(this.inner,(function(e){o=e.clientX}),(function(){clearInterval(s)}));var s=setInterval((function(){if(void 0!==o){var e=n.scrollLeftFromThumbLeft(r+o-i);e!==n.scrollLeft&&n._emit("scroll",{data:e})}}),20);return a.preventDefault(t)}var l=t.clientX-this.element.getBoundingClientRect().left-this.thumbWidth/2;return this._emit("scroll",{data:this.scrollLeftFromThumbLeft(l)}),a.preventDefault(t)}},t.prototype.getHeight=function(){return this.isVisible?this.height:0},t.prototype.scrollLeftFromThumbLeft=function(e){var t=e*(this.pageWidth-this.viewWidth)/(this.slideWidth-this.thumbWidth);return(t|=0)<0?t=0:t>this.pageWidth-this.viewWidth&&(t=this.pageWidth-this.viewWidth),t},t.prototype.setWidth=function(e){this.width=Math.max(0,e),this.element.style.width=this.width+"px",this.slideWidth=this.width,this.viewWidth=this.width,this.setScrollWidth(this.pageWidth,!0)},t.prototype.setScrollWidth=function(e,t){(this.pageWidth!==e||t)&&(this.pageWidth=e,this.thumbWidth=this.slideWidth*this.viewWidth/this.pageWidth,this.thumbWidth>this.slideWidth&&(this.thumbWidth=this.slideWidth),this.thumbWidth<15&&(this.thumbWidth=15),this.inner.style.width=this.thumbWidth+"px",this.scrollLeft>this.pageWidth-this.viewWidth&&(this.scrollLeft=this.pageWidth-this.viewWidth,this.scrollLeft<0&&(this.scrollLeft=0),this._emit("scroll",{data:this.scrollLeft})))},t.prototype.setScrollLeft=function(e){this.scrollLeft=e,e<0&&(e=0),this.thumbLeft=e*(this.slideWidth-this.thumbWidth)/(this.pageWidth-this.viewWidth),this.inner.style.left=this.thumbLeft+"px"},t}(c);h.prototype.setInnerWidth=h.prototype.setScrollWidth,t.ScrollBar=u,t.ScrollBarV=u,t.ScrollBarH=h,t.VScrollBar=u,t.HScrollBar=h})),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],(function(e,t,n){"use strict";var o=e("./lib/event"),i=function(){function e(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.$recursionLimit=2,this.window=t||window;var n=this;this._flush=function(e){n.pending=!1;var t=n.changes;if(t&&(o.blockIdle(100),n.changes=0,n.onRender(t)),n.changes){if(n.$recursionLimit--<0)return;n.schedule()}else n.$recursionLimit=2}}return e.prototype.schedule=function(e){this.changes=this.changes|e,this.changes&&!this.pending&&(o.nextFrame(this._flush),this.pending=!0)},e.prototype.clear=function(e){var t=this.changes;return this.changes=0,t},e}();t.RenderLoop=i})),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/lib/useragent","ace/lib/event_emitter"],(function(e,t,n){var o=e("../lib/oop"),i=e("../lib/dom"),r=e("../lib/lang"),s=e("../lib/event"),a=e("../lib/useragent"),l=e("../lib/event_emitter").EventEmitter,c=512,u="function"==typeof ResizeObserver,h=200,d=function(){function e(e){this.el=i.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=i.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=i.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),this.$measureNode.textContent=r.stringRepeat("X",c),this.$characterSize={width:0,height:0},u?this.$addObserver():this.checkForSizeChanges()}return e.prototype.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",a.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},e.prototype.checkForSizeChanges=function(e){if(void 0===e&&(e=this.$measureSizes()),e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},e.prototype.$addObserver=function(){var e=this;this.$observer=new window.ResizeObserver((function(t){e.checkForSizeChanges()})),this.$observer.observe(this.$measureNode)},e.prototype.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer||this.$observer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=s.onIdle((function t(){e.checkForSizeChanges(),s.onIdle(t,500)}),500)},e.prototype.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},e.prototype.$measureSizes=function(e){var t={height:(e||this.$measureNode).clientHeight,width:(e||this.$measureNode).clientWidth/c};return 0===t.width||0===t.height?null:t},e.prototype.$measureCharWidth=function(e){return this.$main.textContent=r.stringRepeat(e,c),this.$main.getBoundingClientRect().width/c},e.prototype.getCharacterWidth=function(e){var t=this.charSizes[e];return void 0===t&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},e.prototype.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$observer&&this.$observer.disconnect(),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)},e.prototype.$getZoom=function(e){return e&&e.parentElement?(window.getComputedStyle(e).zoom||1)*this.$getZoom(e.parentElement):1},e.prototype.$initTransformMeasureNodes=function(){var e=function(e,t){return["div",{style:"position: absolute;top:"+e+"px;left:"+t+"px;"}]};this.els=i.buildDom([e(0,0),e(h,0),e(0,h),e(h,h)],this.el)},e.prototype.transformCoordinates=function(e,t){function n(e,t,n){var o=e[1]*t[0]-e[0]*t[1];return[(-t[1]*n[0]+t[0]*n[1])/o,(+e[1]*n[0]-e[0]*n[1])/o]}function o(e,t){return[e[0]-t[0],e[1]-t[1]]}function i(e,t){return[e[0]+t[0],e[1]+t[1]]}function r(e,t){return[e*t[0],e*t[1]]}function s(e){var t=e.getBoundingClientRect();return[t.left,t.top]}e&&(e=r(1/this.$getZoom(this.el),e)),this.els||this.$initTransformMeasureNodes();var a=s(this.els[0]),l=s(this.els[1]),c=s(this.els[2]),u=s(this.els[3]),d=n(o(u,l),o(u,c),o(i(l,c),i(u,a))),p=r(1+d[0],o(l,a)),g=r(1+d[1],o(c,a));if(t){var m=t,f=d[0]*m[0]/h+d[1]*m[1]/h+1,y=i(r(m[0],p),r(m[1],g));return i(r(1/f/h,y),a)}var v=o(e,a),b=n(o(p,r(d[0],v)),o(g,r(d[1],v)),v);return r(h,b)},e}();d.prototype.$characterSize={width:0,height:0},o.implement(d.prototype,l),t.FontMetrics=d})),ace.define("ace/css/editor-css",["require","exports","module"],(function(e,t,n){n.exports='\n.ace_br1 {border-top-left-radius : 3px;}\n.ace_br2 {border-top-right-radius : 3px;}\n.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}\n.ace_br4 {border-bottom-right-radius: 3px;}\n.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}\n.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}\n.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}\n.ace_br8 {border-bottom-left-radius : 3px;}\n.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}\n.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}\n.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n\n\n.ace_editor {\n position: relative;\n overflow: hidden;\n padding: 0;\n font: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'Source Code Pro\', \'source-code-pro\', monospace;\n direction: ltr;\n text-align: left;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\n.ace_scroller {\n position: absolute;\n overflow: hidden;\n top: 0;\n bottom: 0;\n background-color: inherit;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n cursor: text;\n}\n\n.ace_content {\n position: absolute;\n box-sizing: border-box;\n min-width: 100%;\n contain: style size layout;\n font-variant-ligatures: no-common-ligatures;\n}\n\n.ace_keyboard-focus:focus {\n box-shadow: inset 0 0 0 2px #5E9ED6;\n outline: none;\n}\n\n.ace_dragging .ace_scroller:before{\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n content: \'\';\n background: rgba(250, 250, 250, 0.01);\n z-index: 1000;\n}\n.ace_dragging.ace_dark .ace_scroller:before{\n background: rgba(0, 0, 0, 0.01);\n}\n\n.ace_gutter {\n position: absolute;\n overflow : hidden;\n width: auto;\n top: 0;\n bottom: 0;\n left: 0;\n cursor: default;\n z-index: 4;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n contain: style size layout;\n}\n\n.ace_gutter-active-line {\n position: absolute;\n left: 0;\n right: 0;\n}\n\n.ace_scroller.ace_scroll-left:after {\n content: "";\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;\n pointer-events: none;\n}\n\n.ace_gutter-cell, .ace_gutter-cell_svg-icons {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n padding-left: 19px;\n padding-right: 6px;\n background-repeat: no-repeat;\n}\n\n.ace_gutter-cell_svg-icons .ace_gutter_annotation {\n margin-left: -14px;\n float: left;\n}\n\n.ace_gutter-cell .ace_gutter_annotation {\n margin-left: -19px;\n float: left;\n}\n\n.ace_gutter-cell.ace_error, .ace_icon.ace_error, .ace_icon.ace_error_fold {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_warning, .ace_icon.ace_warning, .ace_icon.ace_warning_fold {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_info, .ace_icon.ace_info {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n.ace_dark .ace_gutter-cell.ace_info, .ace_dark .ace_icon.ace_info {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");\n}\n\n.ace_icon_svg.ace_error {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJyZWQiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIj4KPGNpcmNsZSBmaWxsPSJub25lIiBjeD0iOCIgY3k9IjgiIHI9IjciIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPGxpbmUgeDE9IjExIiB5MT0iNSIgeDI9IjUiIHkyPSIxMSIvPgo8bGluZSB4MT0iMTEiIHkxPSIxMSIgeDI9IjUiIHkyPSI1Ii8+CjwvZz4KPC9zdmc+");\n background-color: crimson;\n}\n.ace_icon_svg.ace_warning {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJkYXJrb3JhbmdlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+Cjxwb2x5Z29uIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGZpbGw9Im5vbmUiIHBvaW50cz0iOCAxIDE1IDE1IDEgMTUgOCAxIi8+CjxyZWN0IHg9IjgiIHk9IjEyIiB3aWR0aD0iMC4wMSIgaGVpZ2h0PSIwLjAxIi8+CjxsaW5lIHgxPSI4IiB5MT0iNiIgeDI9IjgiIHkyPSIxMCIvPgo8L2c+Cjwvc3ZnPg==");\n background-color: darkorange;\n}\n.ace_icon_svg.ace_info {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJibHVlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+CjxjaXJjbGUgZmlsbD0ibm9uZSIgY3g9IjgiIGN5PSI4IiByPSI3IiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjxwb2x5bGluZSBwb2ludHM9IjggMTEgOCA4Ii8+Cjxwb2x5bGluZSBwb2ludHM9IjkgOCA2IDgiLz4KPGxpbmUgeDE9IjEwIiB5MT0iMTEiIHgyPSI2IiB5Mj0iMTEiLz4KPHJlY3QgeD0iOCIgeT0iNSIgd2lkdGg9IjAuMDEiIGhlaWdodD0iMC4wMSIvPgo8L2c+Cjwvc3ZnPg==");\n background-color: royalblue;\n}\n\n.ace_icon_svg.ace_error_fold {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSI+CiAgPHBhdGggZD0ibSAxOC45Mjk4NTEsNy44Mjk4MDc2IGMgMC4xNDYzNTMsNi4zMzc0NjA0IC02LjMyMzE0Nyw3Ljc3Nzg0NDQgLTcuNDc3OTEyLDcuNzc3ODQ0NCAtMi4xMDcyNzI2LC0wLjEyODc1IDUuMTE3Njc4LDAuMzU2MjQ5IDUuMDUxNjk4LC03Ljg3MDA2MTggLTAuNjA0NjcyLC04LjAwMzk3MzQ5IC03LjA3NzI3MDYsLTcuNTYzMTE4OSAtNC44NTczLC03LjQzMDM5NTU2IDEuNjA2LC0wLjExNTE0MjI1IDYuODk3NDg1LDEuMjYyNTQ1OTYgNy4yODM1MTQsNy41MjI2MTI5NiB6IiBmaWxsPSJjcmltc29uIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0ibSA4LjExNDc1NjIsMi4wNTI5ODI4IGMgMy4zNDkxNjk4LDAgNi4wNjQxMzI4LDIuNjc2ODYyNyA2LjA2NDEzMjgsNS45Nzg5NTMgMCwzLjMwMjExMjIgLTIuNzE0OTYzLDUuOTc4OTIwMiAtNi4wNjQxMzI4LDUuOTc4OTIwMiAtMy4zNDkxNDczLDAgLTYuMDY0MTc3MiwtMi42NzY4MDggLTYuMDY0MTc3MiwtNS45Nzg5MjAyIDAuMDA1MzksLTMuMjk5ODg2MSAyLjcxNzI2NTYsLTUuOTczNjQwOCA2LjA2NDE3NzIsLTUuOTc4OTUzIHogbSAwLC0xLjczNTgyNzE5IGMgLTQuMzIxNDgzNiwwIC03LjgyNDc0MDM4LDMuNDU0MDE4NDkgLTcuODI0NzQwMzgsNy43MTQ3ODAxOSAwLDQuMjYwNzI4MiAzLjUwMzI1Njc4LDcuNzE0NzQ1MiA3LjgyNDc0MDM4LDcuNzE0NzQ1MiA0LjMyMTQ0OTgsMCA3LjgyNDY5OTgsLTMuNDU0MDE3IDcuODI0Njk5OCwtNy43MTQ3NDUyIDAsLTIuMDQ2MDkxNCAtMC44MjQzOTIsLTQuMDA4MzY3MiAtMi4yOTE3NTYsLTUuNDU1MTc0NiBDIDEyLjE4MDIyNSwxLjEyOTk2NDggMTAuMTkwMDEzLDAuMzE3MTU1NjEgOC4xMTQ3NTYyLDAuMzE3MTU1NjEgWiBNIDYuOTM3NDU2Myw4LjI0MDU5ODUgNC42NzE4Njg1LDEwLjQ4NTg1MiA2LjAwODY4MTQsMTEuODc2NzI4IDguMzE3MDAzNSw5LjYwMDc5MTEgMTAuNjI1MzM3LDExLjg3NjcyOCAxMS45NjIxMzgsMTAuNDg1ODUyIDkuNjk2NTUwOCw4LjI0MDU5ODUgMTEuOTYyMTM4LDYuMDA2ODA2NiAxMC41NzMyNDYsNC42Mzc0MzM1IDguMzE3MDAzNSw2Ljg3MzQyOTcgNi4wNjA3NjA3LDQuNjM3NDMzNSA0LjY3MTg2ODUsNi4wMDY4MDY2IFoiIGZpbGw9ImNyaW1zb24iIHN0cm9rZS13aWR0aD0iMiIvPgo8L3N2Zz4=");\n background-color: crimson;\n}\n.ace_icon_svg.ace_warning_fold {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNC43NzY5IDE0LjczMzdMOC42NTE5MiAyLjQ4MzY5QzguMzI5NDYgMS44Mzg3NyA3LjQwOTEzIDEuODM4NzcgNy4wODY2NyAyLjQ4MzY5TDAuOTYxNjY5IDE0LjczMzdDMC42NzA3NzUgMTUuMzE1NSAxLjA5MzgzIDE2IDEuNzQ0MjkgMTZIMTMuOTk0M0MxNC42NDQ4IDE2IDE1LjA2NzggMTUuMzE1NSAxNC43NzY5IDE0LjczMzdaTTMuMTYwMDcgMTQuMjVMNy44NjkyOSA0LjgzMTU2TDEyLjU3ODUgMTQuMjVIMy4xNjAwN1pNOC43NDQyOSAxMS42MjVWMTMuMzc1SDYuOTk0MjlWMTEuNjI1SDguNzQ0MjlaTTYuOTk0MjkgMTAuNzVWNy4yNUg4Ljc0NDI5VjEwLjc1SDYuOTk0MjlaIiBmaWxsPSIjRUM3MjExIi8+CjxwYXRoIGQ9Ik0xMS4xOTkxIDIuOTUyMzhDMTAuODgwOSAyLjMxNDY3IDEwLjM1MzcgMS44MDUyNiA5LjcwNTUgMS41MDlMMTEuMDQxIDEuMDY5NzhDMTEuNjg4MyAwLjk0OTgxNCAxMi4zMzcgMS4yNzI2MyAxMi42MzE3IDEuODYxNDFMMTcuNjEzNiAxMS44MTYxQzE4LjM1MjcgMTMuMjkyOSAxNy41OTM4IDE1LjA4MDQgMTYuMDE4IDE1LjU3NDVDMTYuNDA0NCAxNC40NTA3IDE2LjMyMzEgMTMuMjE4OCAxNS43OTI0IDEyLjE1NTVMMTEuMTk5MSAyLjk1MjM4WiIgZmlsbD0iI0VDNzIxMSIvPgo8L3N2Zz4=");\n background-color: darkorange;\n}\n\n.ace_scrollbar {\n contain: strict;\n position: absolute;\n right: 0;\n bottom: 0;\n z-index: 6;\n}\n\n.ace_scrollbar-inner {\n position: absolute;\n cursor: text;\n left: 0;\n top: 0;\n}\n\n.ace_scrollbar-v{\n overflow-x: hidden;\n overflow-y: scroll;\n top: 0;\n}\n\n.ace_scrollbar-h {\n overflow-x: scroll;\n overflow-y: hidden;\n left: 0;\n}\n\n.ace_print-margin {\n position: absolute;\n height: 100%;\n}\n\n.ace_text-input {\n position: absolute;\n z-index: 0;\n width: 0.5em;\n height: 1em;\n opacity: 0;\n background: transparent;\n -moz-appearance: none;\n appearance: none;\n border: none;\n resize: none;\n outline: none;\n overflow: hidden;\n font: inherit;\n padding: 0 1px;\n margin: 0 -1px;\n contain: strict;\n -ms-user-select: text;\n -moz-user-select: text;\n -webkit-user-select: text;\n user-select: text;\n /*with `pre-line` chrome inserts   instead of space*/\n white-space: pre!important;\n}\n.ace_text-input.ace_composition {\n background: transparent;\n color: inherit;\n z-index: 1000;\n opacity: 1;\n}\n.ace_composition_placeholder { color: transparent }\n.ace_composition_marker { \n border-bottom: 1px solid;\n position: absolute;\n border-radius: 0;\n margin-top: 1px;\n}\n\n[ace_nocontext=true] {\n transform: none!important;\n filter: none!important;\n clip-path: none!important;\n mask : none!important;\n contain: none!important;\n perspective: none!important;\n mix-blend-mode: initial!important;\n z-index: auto;\n}\n\n.ace_layer {\n z-index: 1;\n position: absolute;\n overflow: hidden;\n /* workaround for chrome bug https://github.com/ajaxorg/ace/issues/2312*/\n word-wrap: normal;\n white-space: pre;\n height: 100%;\n width: 100%;\n box-sizing: border-box;\n /* setting pointer-events: auto; on node under the mouse, which changes\n during scroll, will break mouse wheel scrolling in Safari */\n pointer-events: none;\n}\n\n.ace_gutter-layer {\n position: relative;\n width: auto;\n text-align: right;\n pointer-events: auto;\n height: 1000000px;\n contain: style size layout;\n}\n\n.ace_text-layer {\n font: inherit !important;\n position: absolute;\n height: 1000000px;\n width: 1000000px;\n contain: style size layout;\n}\n\n.ace_text-layer > .ace_line, .ace_text-layer > .ace_line_group {\n contain: style size layout;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n}\n\n.ace_hidpi .ace_text-layer,\n.ace_hidpi .ace_gutter-layer,\n.ace_hidpi .ace_content,\n.ace_hidpi .ace_gutter {\n contain: strict;\n}\n.ace_hidpi .ace_text-layer > .ace_line, \n.ace_hidpi .ace_text-layer > .ace_line_group {\n contain: strict;\n}\n\n.ace_cjk {\n display: inline-block;\n text-align: center;\n}\n\n.ace_cursor-layer {\n z-index: 4;\n}\n\n.ace_cursor {\n z-index: 4;\n position: absolute;\n box-sizing: border-box;\n border-left: 2px solid;\n /* workaround for smooth cursor repaintng whole screen in chrome */\n transform: translatez(0);\n}\n\n.ace_multiselect .ace_cursor {\n border-left-width: 1px;\n}\n\n.ace_slim-cursors .ace_cursor {\n border-left-width: 1px;\n}\n\n.ace_overwrite-cursors .ace_cursor {\n border-left-width: 0;\n border-bottom: 1px solid;\n}\n\n.ace_hidden-cursors .ace_cursor {\n opacity: 0.2;\n}\n\n.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor {\n opacity: 0;\n}\n\n.ace_smooth-blinking .ace_cursor {\n transition: opacity 0.18s;\n}\n\n.ace_animate-blinking .ace_cursor {\n animation-duration: 1000ms;\n animation-timing-function: step-end;\n animation-name: blink-ace-animate;\n animation-iteration-count: infinite;\n}\n\n.ace_animate-blinking.ace_smooth-blinking .ace_cursor {\n animation-duration: 1000ms;\n animation-timing-function: ease-in-out;\n animation-name: blink-ace-animate-smooth;\n}\n \n@keyframes blink-ace-animate {\n from, to { opacity: 1; }\n 60% { opacity: 0; }\n}\n\n@keyframes blink-ace-animate-smooth {\n from, to { opacity: 1; }\n 45% { opacity: 1; }\n 60% { opacity: 0; }\n 85% { opacity: 0; }\n}\n\n.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\n position: absolute;\n z-index: 3;\n}\n\n.ace_marker-layer .ace_selection {\n position: absolute;\n z-index: 5;\n}\n\n.ace_marker-layer .ace_bracket {\n position: absolute;\n z-index: 6;\n}\n\n.ace_marker-layer .ace_error_bracket {\n position: absolute;\n border-bottom: 1px solid #DE5555;\n border-radius: 0;\n}\n\n.ace_marker-layer .ace_active-line {\n position: absolute;\n z-index: 2;\n}\n\n.ace_marker-layer .ace_selected-word {\n position: absolute;\n z-index: 4;\n box-sizing: border-box;\n}\n\n.ace_line .ace_fold {\n box-sizing: border-box;\n\n display: inline-block;\n height: 11px;\n margin-top: -2px;\n vertical-align: middle;\n\n background-image:\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");\n background-repeat: no-repeat, repeat-x;\n background-position: center center, top left;\n color: transparent;\n\n border: 1px solid black;\n border-radius: 2px;\n\n cursor: pointer;\n pointer-events: auto;\n}\n\n.ace_dark .ace_fold {\n}\n\n.ace_fold:hover{\n background-image:\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");\n}\n\n.ace_tooltip {\n background-color: #f5f5f5;\n border: 1px solid gray;\n border-radius: 1px;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\n color: black;\n max-width: 100%;\n padding: 3px 4px;\n position: fixed;\n z-index: 999999;\n box-sizing: border-box;\n cursor: default;\n white-space: pre-wrap;\n word-wrap: break-word;\n line-height: normal;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n pointer-events: none;\n overflow: auto;\n max-width: min(60em, 66vw);\n}\n.ace_tooltip pre {\n white-space: pre-wrap;\n}\n\n.ace_tooltip.ace_dark {\n background-color: #636363;\n color: #fff;\n}\n\n.ace_tooltip:focus {\n outline: 1px solid #5E9ED6;\n}\n\n.ace_icon {\n display: inline-block;\n width: 18px;\n vertical-align: top;\n}\n\n.ace_icon_svg {\n display: inline-block;\n width: 12px;\n vertical-align: top;\n -webkit-mask-repeat: no-repeat;\n -webkit-mask-size: 12px;\n -webkit-mask-position: center;\n}\n\n.ace_folding-enabled > .ace_gutter-cell, .ace_folding-enabled > .ace_gutter-cell_svg-icons {\n padding-right: 13px;\n}\n\n.ace_fold-widget {\n box-sizing: border-box;\n\n margin: 0 -12px 0 1px;\n display: none;\n width: 11px;\n vertical-align: top;\n\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: center;\n\n border-radius: 3px;\n \n border: 1px solid transparent;\n cursor: pointer;\n}\n\n.ace_folding-enabled .ace_fold-widget {\n display: inline-block; \n}\n\n.ace_fold-widget.ace_end {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");\n}\n\n.ace_fold-widget.ace_closed {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");\n}\n\n.ace_fold-widget:hover {\n border: 1px solid rgba(0, 0, 0, 0.3);\n background-color: rgba(255, 255, 255, 0.2);\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n}\n\n.ace_fold-widget:active {\n border: 1px solid rgba(0, 0, 0, 0.4);\n background-color: rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n}\n/**\n * Dark version for fold widgets\n */\n.ace_dark .ace_fold-widget {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");\n}\n.ace_dark .ace_fold-widget.ace_end {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");\n}\n.ace_dark .ace_fold-widget.ace_closed {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");\n}\n.ace_dark .ace_fold-widget:hover {\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n background-color: rgba(255, 255, 255, 0.1);\n}\n.ace_dark .ace_fold-widget:active {\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n}\n\n.ace_inline_button {\n border: 1px solid lightgray;\n display: inline-block;\n margin: -1px 8px;\n padding: 0 5px;\n pointer-events: auto;\n cursor: pointer;\n}\n.ace_inline_button:hover {\n border-color: gray;\n background: rgba(200,200,200,0.2);\n display: inline-block;\n pointer-events: auto;\n}\n\n.ace_fold-widget.ace_invalid {\n background-color: #FFB4B4;\n border-color: #DE5555;\n}\n\n.ace_fade-fold-widgets .ace_fold-widget {\n transition: opacity 0.4s ease 0.05s;\n opacity: 0;\n}\n\n.ace_fade-fold-widgets:hover .ace_fold-widget {\n transition: opacity 0.05s ease 0.05s;\n opacity:1;\n}\n\n.ace_underline {\n text-decoration: underline;\n}\n\n.ace_bold {\n font-weight: bold;\n}\n\n.ace_nobold .ace_bold {\n font-weight: normal;\n}\n\n.ace_italic {\n font-style: italic;\n}\n\n\n.ace_error-marker {\n background-color: rgba(255, 0, 0,0.2);\n position: absolute;\n z-index: 9;\n}\n\n.ace_highlight-marker {\n background-color: rgba(255, 255, 0,0.2);\n position: absolute;\n z-index: 8;\n}\n\n.ace_mobile-menu {\n position: absolute;\n line-height: 1.5;\n border-radius: 4px;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n background: white;\n box-shadow: 1px 3px 2px grey;\n border: 1px solid #dcdcdc;\n color: black;\n}\n.ace_dark > .ace_mobile-menu {\n background: #333;\n color: #ccc;\n box-shadow: 1px 3px 2px grey;\n border: 1px solid #444;\n\n}\n.ace_mobile-button {\n padding: 2px;\n cursor: pointer;\n overflow: hidden;\n}\n.ace_mobile-button:hover {\n background-color: #eee;\n opacity:1;\n}\n.ace_mobile-button:active {\n background-color: #ddd;\n}\n\n.ace_placeholder {\n font-family: arial;\n transform: scale(0.9);\n transform-origin: left;\n white-space: pre;\n opacity: 0.7;\n margin: 0 10px;\n}\n\n.ace_ghost_text {\n opacity: 0.5;\n font-style: italic;\n white-space: pre;\n}\n\n.ace_screenreader-only {\n position:absolute;\n left:-10000px;\n top:auto;\n width:1px;\n height:1px;\n overflow:hidden;\n}'})),ace.define("ace/layer/decorators",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=e("../lib/oop"),r=e("../lib/event_emitter").EventEmitter,s=function(){function e(e,t){this.canvas=o.createElement("canvas"),this.renderer=t,this.pixelRatio=1,this.maxHeight=t.layerConfig.maxHeight,this.lineHeight=t.layerConfig.lineHeight,this.canvasHeight=e.parent.scrollHeight,this.heightRatio=this.canvasHeight/this.maxHeight,this.canvasWidth=e.width,this.minDecorationHeight=2*this.pixelRatio|0,this.halfMinDecorationHeight=this.minDecorationHeight/2|0,this.canvas.width=this.canvasWidth,this.canvas.height=this.canvasHeight,this.canvas.style.top="0px",this.canvas.style.right="0px",this.canvas.style.zIndex="7px",this.canvas.style.position="absolute",this.colors={},this.colors.dark={error:"rgba(255, 18, 18, 1)",warning:"rgba(18, 136, 18, 1)",info:"rgba(18, 18, 136, 1)"},this.colors.light={error:"rgb(255,51,51)",warning:"rgb(32,133,72)",info:"rgb(35,68,138)"},e.element.appendChild(this.canvas)}return e.prototype.$updateDecorators=function(e){var t=!0===this.renderer.theme.isDark?this.colors.dark:this.colors.light;e&&(this.maxHeight=e.maxHeight,this.lineHeight=e.lineHeight,this.canvasHeight=e.height,(e.lastRow+1)*this.lineHeightt.priority?1:0}));for(var r=this.renderer.session.$foldData,s=0;sthis.canvasHeight&&(d=this.canvasHeight-this.halfMinDecorationHeight),u=Math.round(d-this.halfMinDecorationHeight),h=Math.round(d+this.halfMinDecorationHeight)}n.fillStyle=t[o[s].type]||null,n.fillRect(0,c,this.canvasWidth,h-u)}}var p=this.renderer.session.selection.getCursor();p&&(l=this.compensateFoldRows(p.row,r),c=Math.round((p.row-l)*this.lineHeight*this.heightRatio),n.fillStyle="rgba(0, 0, 0, 0.5)",n.fillRect(0,c,this.canvasWidth,2))},e.prototype.compensateFoldRows=function(e,t){var n=0;if(t&&t.length>0)for(var o=0;ot[o].start.row&&e=t[o].end.row&&(n+=t[o].end.row-t[o].start.row);return n},e}();i.implement(s.prototype,r),t.Decorator=s})),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/config","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/scrollbar_custom","ace/scrollbar_custom","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter","ace/css/editor-css","ace/layer/decorators","ace/lib/useragent"],(function(e,t,n){"use strict";var o=e("./lib/oop"),i=e("./lib/dom"),r=e("./lib/lang"),s=e("./config"),a=e("./layer/gutter").Gutter,l=e("./layer/marker").Marker,c=e("./layer/text").Text,u=e("./layer/cursor").Cursor,h=e("./scrollbar").HScrollBar,d=e("./scrollbar").VScrollBar,p=e("./scrollbar_custom").HScrollBar,g=e("./scrollbar_custom").VScrollBar,m=e("./renderloop").RenderLoop,f=e("./layer/font_metrics").FontMetrics,y=e("./lib/event_emitter").EventEmitter,v=e("./css/editor-css"),b=e("./layer/decorators").Decorator,w=e("./lib/useragent");i.importCssString(v,"ace_editor.css",!1);var x=function(){function e(e,t){var n=this;this.container=e||i.createElement("div"),i.addCssClass(this.container,"ace_editor"),i.HI_DPI&&i.addCssClass(this.container,"ace_hidpi"),this.setTheme(t),null==s.get("useStrictCSP")&&s.set("useStrictCSP",!1),this.$gutter=i.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden",!0),this.scroller=i.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=i.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new a(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new l(this.content);var o=this.$textLayer=new c(this.content);this.canvas=o.element,this.$markerFront=new l(this.content),this.$cursorLayer=new u(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new d(this.container,this),this.scrollBarH=new h(this.container,this),this.scrollBarV.on("scroll",(function(e){n.$scrollAnimation||n.session.setScrollTop(e.data-n.scrollMargin.top)})),this.scrollBarH.on("scroll",(function(e){n.$scrollAnimation||n.session.setScrollLeft(e.data-n.scrollMargin.left)})),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new f(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.on("changeCharacterSize",(function(e){n.updateCharacterSize(),n.onResize(!0,n.gutterWidth,n.$size.width,n.$size.height),n._signal("changeCharacterSize",e)})),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.margin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$keepTextAreaAtCursor=!w.isIOS,this.$loop=new m(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),this.$addResizeObserver(),s.resetOptions(this),s._signal("renderer",this)}return e.prototype.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin(),i.setStyle(this.scroller.style,"line-height",this.lineHeight+"px")},e.prototype.setSession=function(e){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e),e&&(this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode))},e.prototype.updateLines=function(e,t,n){if(void 0===t&&(t=1/0),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRowthis.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},e.prototype.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},e.prototype.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},e.prototype.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},e.prototype.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},e.prototype.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},e.prototype.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},e.prototype.onResize=function(e,t,n,o){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=e?1:0;var i=this.container;o||(o=i.clientHeight||i.scrollHeight),n||(n=i.clientWidth||i.scrollWidth);var r=this.$updateCachedSize(e,t,n,o);if(this.$resizeTimer&&this.$resizeTimer.cancel(),!this.$size.scrollerHeight||!n&&!o)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(r|this.$changes,!0):this.$loop.schedule(r|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.$customScrollbar&&this.$updateCustomScrollbar(!0)}},e.prototype.$updateCachedSize=function(e,t,n,o){o-=this.$extraHeight||0;var r=0,s=this.$size,a={width:s.width,height:s.height,scrollerHeight:s.scrollerHeight,scrollerWidth:s.scrollerWidth};if(o&&(e||s.height!=o)&&(s.height=o,r|=this.CHANGE_SIZE,s.scrollerHeight=s.height,this.$horizScroll&&(s.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.setHeight(s.scrollerHeight),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",r|=this.CHANGE_SCROLL),n&&(e||s.width!=n)){r|=this.CHANGE_SIZE,s.width=n,null==t&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,i.setStyle(this.scrollBarH.element.style,"left",t+"px"),i.setStyle(this.scroller.style,"left",t+this.margin.left+"px"),s.scrollerWidth=Math.max(0,n-t-this.scrollBarV.getWidth()-this.margin.h),i.setStyle(this.$gutter.style,"left",this.margin.left+"px");var l=this.scrollBarV.getWidth()+"px";i.setStyle(this.scrollBarH.element.style,"right",l),i.setStyle(this.scroller.style,"right",l),i.setStyle(this.scroller.style,"bottom",this.scrollBarH.getHeight()),this.scrollBarH.setWidth(s.scrollerWidth),(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)&&(r|=this.CHANGE_FULL)}return s.$dirty=!n||!o,r&&this._signal("resize",a),r},e.prototype.onGutterResize=function(e){var t=this.$showGutter?e:0;t!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,t,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()||this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):this.$computeLayerConfig()},e.prototype.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-2*this.$padding,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},e.prototype.setAnimatedScroll=function(e){this.setOption("animatedScroll",e)},e.prototype.getAnimatedScroll=function(){return this.$animatedScroll},e.prototype.setShowInvisibles=function(e){this.setOption("showInvisibles",e),this.session.$bidiHandler.setShowInvisibles(e)},e.prototype.getShowInvisibles=function(){return this.getOption("showInvisibles")},e.prototype.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},e.prototype.setDisplayIndentGuides=function(e){this.setOption("displayIndentGuides",e)},e.prototype.getHighlightIndentGuides=function(){return this.getOption("highlightIndentGuides")},e.prototype.setHighlightIndentGuides=function(e){this.setOption("highlightIndentGuides",e)},e.prototype.setShowPrintMargin=function(e){this.setOption("showPrintMargin",e)},e.prototype.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},e.prototype.setPrintMarginColumn=function(e){this.setOption("printMarginColumn",e)},e.prototype.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},e.prototype.getShowGutter=function(){return this.getOption("showGutter")},e.prototype.setShowGutter=function(e){return this.setOption("showGutter",e)},e.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},e.prototype.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},e.prototype.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},e.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},e.prototype.$updatePrintMargin=function(){if(this.$showPrintMargin||this.$printMarginEl){if(!this.$printMarginEl){var e=i.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=i.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=Math.round(this.characterWidth*this.$printMarginColumn+this.$padding)+"px",t.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&-1==this.session.$wrap&&this.adjustWrapLimit()}},e.prototype.getContainerElement=function(){return this.container},e.prototype.getMouseEventTarget=function(){return this.scroller},e.prototype.getTextAreaContainer=function(){return this.container},e.prototype.$moveTextAreaToCursor=function(){if(!this.$isMousePressed){var e=this.textarea.style,t=this.$composition;if(this.$keepTextAreaAtCursor||t){var n=this.$cursorLayer.$pixelPos;if(n){t&&t.markerRange&&(n=this.$cursorLayer.getPixelPosition(t.markerRange.start,!0));var o=this.layerConfig,r=n.top,s=n.left;r-=o.offset;var a=t&&t.useTextareaForIME||w.isMobile?this.lineHeight:1;if(r<0||r>o.height-a)i.translate(this.textarea,0,0);else{var l=1,c=this.$size.height-a;if(t)if(t.useTextareaForIME){var u=this.textarea.value;l=this.characterWidth*this.session.$getStringScreenWidth(u)[0]}else r+=this.lineHeight+2;else r+=this.lineHeight;(s-=this.scrollLeft)>this.$size.scrollerWidth-l&&(s=this.$size.scrollerWidth-l),s+=this.gutterWidth+this.margin.left,i.setStyle(e,"height",a+"px"),i.setStyle(e,"width",l+"px"),i.translate(this.textarea,Math.min(s,this.$size.scrollerWidth-l),Math.min(r,c))}}}else i.translate(this.textarea,-100,0)}},e.prototype.getFirstVisibleRow=function(){return this.layerConfig.firstRow},e.prototype.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(0===this.layerConfig.offset?0:1)},e.prototype.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow;return this.session.documentToScreenRow(t,0)*e.lineHeight-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},e.prototype.getLastVisibleRow=function(){return this.layerConfig.lastRow},e.prototype.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},e.prototype.setScrollMargin=function(e,t,n,o){var i=this.scrollMargin;i.top=0|e,i.bottom=0|t,i.right=0|o,i.left=0|n,i.v=i.top+i.bottom,i.h=i.left+i.right,i.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-i.top),this.updateFull()},e.prototype.setMargin=function(e,t,n,o){var i=this.margin;i.top=0|e,i.bottom=0|t,i.right=0|o,i.left=0|n,i.v=i.top+i.bottom,i.h=i.left+i.right,this.$updateCachedSize(!0,this.gutterWidth,this.$size.width,this.$size.height),this.updateFull()},e.prototype.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},e.prototype.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},e.prototype.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},e.prototype.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},e.prototype.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},e.prototype.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},e.prototype.freeze=function(){this.$frozen=!0},e.prototype.unfreeze=function(){this.$frozen=!1},e.prototype.$renderChanges=function(e,t){if(this.$changes&&(e|=this.$changes,this.$changes=0),this.session&&this.container.offsetWidth&&!this.$frozen&&(e||t)){if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender",e),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var n=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){if(e|=this.$computeLayerConfig()|this.$loop.clear(),n.firstRow!=this.layerConfig.firstRow&&n.firstRowScreen==this.layerConfig.firstRowScreen){var o=this.scrollTop+(n.firstRow-Math.max(this.layerConfig.firstRow,0))*this.lineHeight;o>0&&(this.scrollTop=o,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig()|this.$loop.clear())}n=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),i.translate(this.content,-this.scrollLeft,-n.offset);var r=n.width+2*this.$padding+"px",s=n.minHeight+"px";i.setStyle(this.content.style,"width",r),i.setStyle(this.content.style,"height",s)}if(e&this.CHANGE_H_SCROLL&&(i.translate(this.content,-this.scrollLeft,-n.offset),this.scroller.className=this.scrollLeft<=0?"ace_scroller ":"ace_scroller ace_scroll-left ",this.enableKeyboardAccessibility&&(this.scroller.className+=this.keyboardFocusClassName)),e&this.CHANGE_FULL)return this.$changedLines=null,this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),void this._signal("afterRender",e);if(e&this.CHANGE_SCROLL)return this.$changedLines=null,e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(n):this.$textLayer.scrollLines(n),this.$showGutter&&(e&this.CHANGE_GUTTER||e&this.CHANGE_LINES?this.$gutterLayer.update(n):this.$gutterLayer.scrollLines(n)),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),void this._signal("afterRender",e);e&this.CHANGE_TEXT?(this.$changedLines=null,this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_LINES?((this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER?(this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_CURSOR&&(this.$highlightGutterLine&&this.$gutterLayer.updateLineHighlight(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(n),this.$moveTextAreaToCursor()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(n),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(n),this._signal("afterRender",e)}else this.$changes|=e},e.prototype.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,n=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(n+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&n>this.$maxPixelHeight&&(n=this.$maxPixelHeight);var o=!(n<=2*this.lineHeight)&&e>t;if(n!=this.desiredHeight||this.$size.height!=this.desiredHeight||o!=this.$vScroll){o!=this.$vScroll&&(this.$vScroll=o,this.scrollBarV.setVisible(o));var i=this.container.clientWidth;this.container.style.height=n+"px",this.$updateCachedSize(!0,this.$gutterWidth,i,n),this.desiredHeight=n,this._signal("autosize")}},e.prototype.$computeLayerConfig=function(){var e=this.session,t=this.$size,n=t.height<=2*this.lineHeight,o=this.session.getScreenLength()*this.lineHeight,i=this.$getLongestLine(),r=!n&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-i-2*this.$padding<0),s=this.$horizScroll!==r;s&&(this.$horizScroll=r,this.scrollBarH.setVisible(r));var a=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var l=t.scrollerHeight+this.lineHeight,c=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;o+=c;var u=this.scrollMargin;this.session.setScrollTop(Math.max(-u.top,Math.min(this.scrollTop,o-t.scrollerHeight+u.bottom))),this.session.setScrollLeft(Math.max(-u.left,Math.min(this.scrollLeft,i+2*this.$padding-t.scrollerWidth+u.right)));var h=!n&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-o+c<0||this.scrollTop>u.top),d=a!==h;d&&(this.$vScroll=h,this.scrollBarV.setVisible(h));var p,g,m=this.scrollTop%this.lineHeight,f=Math.ceil(l/this.lineHeight)-1,y=Math.max(0,Math.round((this.scrollTop-m)/this.lineHeight)),v=y+f,b=this.lineHeight;y=e.screenToDocumentRow(y,0);var w=e.getFoldLine(y);w&&(y=w.start.row),p=e.documentToScreenRow(y,0),g=e.getRowLength(y)*b,v=Math.min(e.screenToDocumentRow(v,0),e.getLength()-1),l=t.scrollerHeight+e.getRowLength(v)*b+g,m=this.scrollTop-p*b;var x=0;return(this.layerConfig.width!=i||s)&&(x=this.CHANGE_H_SCROLL),(s||d)&&(x|=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),d&&(i=this.$getLongestLine())),this.layerConfig={width:i,padding:this.$padding,firstRow:y,firstRowScreen:p,lastRow:v,lineHeight:b,characterWidth:this.characterWidth,minHeight:l,maxHeight:o,offset:m,gutterOffset:b?Math.max(0,Math.ceil((m+t.height-t.scrollerHeight)/b)):0,height:this.$size.scrollerHeight},this.session.$bidiHandler&&this.session.$bidiHandler.setContentWidth(i-this.$padding),x},e.prototype.$updateLines=function(){if(this.$changedLines){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var n=this.layerConfig;if(!(e>n.lastRow+1||tthis.$textLayer.MAX_LINE_LENGTH&&(e=this.$textLayer.MAX_LINE_LENGTH+30),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(e*this.characterWidth))},e.prototype.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},e.prototype.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},e.prototype.addGutterDecoration=function(e,t){this.$gutterLayer.addGutterDecoration(e,t)},e.prototype.removeGutterDecoration=function(e,t){this.$gutterLayer.removeGutterDecoration(e,t)},e.prototype.updateBreakpoints=function(e){this.$loop.schedule(this.CHANGE_GUTTER)},e.prototype.setAnnotations=function(e){this.$gutterLayer.setAnnotations(e),this.$loop.schedule(this.CHANGE_GUTTER)},e.prototype.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},e.prototype.hideCursor=function(){this.$cursorLayer.hideCursor()},e.prototype.showCursor=function(){this.$cursorLayer.showCursor()},e.prototype.scrollSelectionIntoView=function(e,t,n){this.scrollCursorIntoView(e,n),this.scrollCursorIntoView(t,n)},e.prototype.scrollCursorIntoView=function(e,t,n){if(0!==this.$size.scrollerHeight){var o=this.$cursorLayer.getPixelPosition(e),i=o.left,r=o.top,s=n&&n.top||0,a=n&&n.bottom||0;this.$scrollAnimation&&(this.$stopAnimation=!0);var l=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;l+s>r?(t&&l+s>r+this.lineHeight&&(r-=t*this.$size.scrollerHeight),0===r&&(r=-this.scrollMargin.top),this.session.setScrollTop(r)):l+this.$size.scrollerHeight-a=1-this.scrollMargin.top||t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right||void 0},e.prototype.pixelToScreenCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var o=this.$fontMetrics.transformCoordinates([e,t]);e=o[1]-this.gutterWidth-this.margin.left,t=o[0]}else n=this.scroller.getBoundingClientRect();var i=e+this.scrollLeft-n.left-this.$padding,r=i/this.characterWidth,s=Math.floor((t+this.scrollTop-n.top)/this.lineHeight),a=this.$blockCursor?Math.floor(r):Math.round(r);return{row:s,column:a,side:r-a>0?1:-1,offsetX:i}},e.prototype.screenToTextCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var o=this.$fontMetrics.transformCoordinates([e,t]);e=o[1]-this.gutterWidth-this.margin.left,t=o[0]}else n=this.scroller.getBoundingClientRect();var i=e+this.scrollLeft-n.left-this.$padding,r=i/this.characterWidth,s=this.$blockCursor?Math.floor(r):Math.round(r),a=Math.floor((t+this.scrollTop-n.top)/this.lineHeight);return this.session.screenToDocumentPosition(a,Math.max(s,0),i)},e.prototype.textToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),o=this.session.documentToScreenPosition(e,t),i=this.$padding+(this.session.$bidiHandler.isBidiRow(o.row,e)?this.session.$bidiHandler.getPosLeft(o.column):Math.round(o.column*this.characterWidth)),r=o.row*this.lineHeight;return{pageX:n.left+i-this.scrollLeft,pageY:n.top+r-this.scrollTop}},e.prototype.visualizeFocus=function(){i.addCssClass(this.container,"ace_focus")},e.prototype.visualizeBlur=function(){i.removeCssClass(this.container,"ace_focus")},e.prototype.showComposition=function(e){this.$composition=e,e.cssText||(e.cssText=this.textarea.style.cssText),null==e.useTextareaForIME&&(e.useTextareaForIME=this.$useTextareaForIME),this.$useTextareaForIME?(i.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor(),this.$cursorLayer.element.style.display="none"):e.markerId=this.session.addMarker(e.markerRange,"ace_composition_marker","text")},e.prototype.setCompositionText=function(e){var t=this.session.selection.cursor;this.addToken(e,"composition_placeholder",t.row,t.column),this.$moveTextAreaToCursor()},e.prototype.hideComposition=function(){if(this.$composition){this.$composition.markerId&&this.session.removeMarker(this.$composition.markerId),i.removeCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText=this.$composition.cssText;var e=this.session.selection.cursor;this.removeExtraToken(e.row,e.column),this.$composition=null,this.$cursorLayer.element.style.display=""}},e.prototype.setGhostText=function(e,t){var n=this.session.selection.cursor,o=t||{row:n.row,column:n.column};this.removeGhostText();var i=e.split("\n");if(this.addToken(i[0],"ghost_text",o.row,o.column),this.$ghostText={text:e,position:{row:o.row,column:o.column}},i.length>1){this.$ghostTextWidget={text:i.slice(1).join("\n"),row:o.row,column:o.column,className:"ace_ghost_text"},this.session.widgetManager.addLineWidget(this.$ghostTextWidget);var r=this.$cursorLayer.getPixelPosition(o,!0),s=this.container.getBoundingClientRect().height,a=i.length*this.lineHeight;if(a1||Math.abs(e.$size.height-o)>1?e.$resizeTimer.delay():e.$resizeTimer.cancel()})),this.$resizeObserver.observe(this.container)}},e}();x.prototype.CHANGE_CURSOR=1,x.prototype.CHANGE_MARKER=2,x.prototype.CHANGE_GUTTER=4,x.prototype.CHANGE_SCROLL=8,x.prototype.CHANGE_LINES=16,x.prototype.CHANGE_TEXT=32,x.prototype.CHANGE_SIZE=64,x.prototype.CHANGE_MARKER_BACK=128,x.prototype.CHANGE_MARKER_FRONT=256,x.prototype.CHANGE_FULL=512,x.prototype.CHANGE_H_SCROLL=1024,x.prototype.$changes=0,x.prototype.$padding=null,x.prototype.$frozen=!1,x.prototype.STEPS=8,o.implement(x.prototype,y),s.defineOptions(x.prototype,"renderer",{useResizeObserver:{set:function(e){!e&&this.$resizeObserver?(this.$resizeObserver.disconnect(),this.$resizeTimer.cancel(),this.$resizeTimer=this.$resizeObserver=null):e&&!this.$resizeObserver&&this.$addResizeObserver()}},animatedScroll:{initialValue:!1},showInvisibles:{set:function(e){this.$textLayer.setShowInvisibles(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(e){"number"==typeof e&&(this.$printMarginColumn=e),this.$showPrintMargin=!!e,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(e){this.$gutter.style.display=e?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},useSvgGutterIcons:{set:function(e){this.$gutterLayer.$useSvgGutterIcons=e},initialValue:!1},showFoldedAnnotations:{set:function(e){this.$gutterLayer.$showFoldedAnnotations=e},initialValue:!1},fadeFoldWidgets:{set:function(e){i.setCssClass(this.$gutter,"ace_fade-fold-widgets",e)},initialValue:!1},showFoldWidgets:{set:function(e){this.$gutterLayer.setShowFoldWidgets(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightIndentGuides:{set:function(e){1==this.$textLayer.setHighlightIndentGuides(e)?this.$textLayer.$highlightIndentGuide():this.$textLayer.$clearActiveIndentGuide(this.$textLayer.$lines.cells)},initialValue:!0},highlightGutterLine:{set:function(e){this.$gutterLayer.setHighlightGutterLine(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},hScrollBarAlwaysVisible:{set:function(e){this.$hScrollBarAlwaysVisible&&this.$horizScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(e){this.$vScrollBarAlwaysVisible&&this.$vScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(e){"number"==typeof e&&(e+="px"),this.container.style.fontSize=e,this.updateFontSize()},initialValue:12},fontFamily:{set:function(e){this.container.style.fontFamily=e,this.updateFontSize()}},maxLines:{set:function(e){this.updateFull()}},minLines:{set:function(e){this.$minLines<562949953421311||(this.$minLines=0),this.updateFull()}},maxPixelHeight:{set:function(e){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(e){e=+e||0,this.$scrollPastEnd!=e&&(this.$scrollPastEnd=e,this.$loop.schedule(this.CHANGE_SCROLL))},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(e){this.$gutterLayer.$fixedWidth=!!e,this.$loop.schedule(this.CHANGE_GUTTER)}},customScrollbar:{set:function(e){this.$updateCustomScrollbar(e)},initialValue:!1},theme:{set:function(e){this.setTheme(e)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0},hasCssTransforms:{},useTextareaForIME:{initialValue:!w.isMobile&&!w.isIE}}),t.VirtualRenderer=x})),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("../lib/net"),r=e("../lib/event_emitter").EventEmitter,s=e("../config");function a(e){if("undefined"==typeof Worker)return{postMessage:function(){},terminate:function(){}};if(s.get("loadWorkerFromBlob")){var t=function(e){var t="importScripts('"+i.qualifyURL(e)+"');";try{return new Blob([t],{type:"application/javascript"})}catch(e){var n=new(window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder);return n.append(t),n.getBlob("application/javascript")}}(e),n=(window.URL||window.webkitURL).createObjectURL(t);return new Worker(n)}return new Worker(e)}var l=function(e){e.postMessage||(e=this.$createWorkerFromOldConfig.apply(this,arguments)),this.$worker=e,this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){o.implement(this,r),this.$createWorkerFromOldConfig=function(t,n,o,i,r){if(e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl),s.get("packaged")||!e.toUrl)i=i||s.moduleUrl(n,"worker");else{var l=this.$normalizePath;i=i||l(e.toUrl("ace/worker/worker.js",null,"_"));var c={};t.forEach((function(t){c[t]=l(e.toUrl(t,null,"_").replace(/(\.js)?(\?.*)?$/,""))}))}return this.$worker=a(i),r&&this.send("importScripts",r),this.$worker.postMessage({init:!0,tlns:c,module:n,classname:o}),this.$worker},this.onMessage=function(e){var t=e.data;switch(t.type){case"event":this._signal(t.name,{data:t.data});break;case"call":var n=this.callbacks[t.id];n&&(n(t.data),delete this.callbacks[t.id]);break;case"error":this.reportError(t.data);break;case"log":window.console&&console.log&&console.log.apply(console,t.data)}},this.reportError=function(e){window.console&&console.error&&console.error(e)},this.$normalizePath=function(e){return i.qualifyURL(e)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker.onerror=function(e){e.preventDefault()},this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,n){if(n){var o=this.callbackId++;this.callbacks[o]=n,t.push(o)}this.send(e,t)},this.emit=function(e,t){try{t.data&&t.data.err&&(t.data.err={message:t.data.err.message,stack:t.data.err.stack,code:t.data.err.code}),this.$worker&&this.$worker.postMessage({event:e,data:{data:t.data}})}catch(e){console.error(e.stack)}},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call("setValue",[e.getValue()]),e.on("change",this.changeListener,!0)},this.changeListener=function(e){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),"insert"==e.action?this.deltaQueue.push(e.start,e.lines):this.deltaQueue.push(e.start,e.end)},this.$sendDeltaQueue=function(){var e=this.deltaQueue;e&&(this.deltaQueue=null,e.length>50&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e}))}}).call(l.prototype),t.UIWorkerClient=function(e,t,n){var o=null,i=!1,a=Object.create(r),c=[],u=new l({messageBuffer:c,terminate:function(){},postMessage:function(e){c.push(e),o&&(i?setTimeout(h):h())}});u.setEmitSync=function(e){i=e};var h=function(){var e=c.shift();e.command?o[e.command].apply(o,e.args):e.event&&a._signal(e.event,e.data)};return a.postMessage=function(e){u.onMessage({data:e})},a.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},a.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},s.loadModule(["worker",t],(function(e){for(o=new e[n](a);c.length;)h()})),u},t.WorkerClient=l,t.createWorker=a})),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],(function(e,t,n){"use strict";var o=e("./range").Range,i=e("./lib/event_emitter").EventEmitter,r=e("./lib/oop"),s=function(){function e(e,t,n,o,i,r){var s=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=i,this.othersClass=r,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate,!0),this.$others=o,this.$onCursorChange=function(){setTimeout((function(){s.onCursorChange()}))},this.$pos=n;var a=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=a.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)}return e.prototype.setup=function(){var e=this,t=this.doc,n=this.session;this.selectionBefore=n.selection.toJSON(),n.selection.inMultiSelectMode&&n.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var i=this.pos;i.$insertRight=!0,i.detach(),i.markerId=n.addMarker(new o(i.row,i.column,i.row,i.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach((function(n){var o=t.createAnchor(n.row,n.column);o.$insertRight=!0,o.detach(),e.others.push(o)})),n.setUndoSelect(!1)},e.prototype.showOtherMarkers=function(){if(!this.othersActive){var e=this.session,t=this;this.othersActive=!0,this.others.forEach((function(n){n.markerId=e.addMarker(new o(n.row,n.column,n.row,n.column+t.length),t.othersClass,null,!1)}))}},e.prototype.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var e=0;e=this.pos.column&&t.start.column<=this.pos.column+this.length+1,r=t.start.column-this.pos.column;if(this.updateAnchors(e),i&&(this.length+=n),i&&!this.session.$fromUndo)if("insert"===e.action)for(var s=this.others.length-1;s>=0;s--){var a={row:(l=this.others[s]).row,column:l.column+r};this.doc.insertMergedLines(a,e.lines)}else if("remove"===e.action)for(s=this.others.length-1;s>=0;s--){var l;a={row:(l=this.others[s]).row,column:l.column+r},this.doc.remove(new o(a.row,a.column,a.row,a.column-n))}this.$updating=!1,this.updateMarkers()}},e.prototype.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},e.prototype.updateMarkers=function(){if(!this.$updating){var e=this,t=this.session,n=function(n,i){t.removeMarker(n.markerId),n.markerId=t.addMarker(new o(n.row,n.column,n.row,n.column+e.length),i,null,!1)};n(this.pos,this.mainClass);for(var i=this.others.length;i--;)n(this.others[i],this.othersClass)}},e.prototype.onCursorChange=function(e){if(!this.$updating&&this.session){var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))}},e.prototype.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.off("change",this.$onUpdate),this.session.selection.off("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},e.prototype.cancel=function(){if(-1!==this.$undoStackDepth){for(var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth,n=0;n1?e.multiSelect.joinSelections():e.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"splitSelectionIntoLines",description:"Split into lines",exec:function(e){e.multiSelect.splitIntoLines()},readOnly:!0},{name:"alignCursors",description:"Align cursors",exec:function(e){e.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",description:"Find all",exec:function(e){e.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],t.multiSelectCommands=[{name:"singleSelection",description:"Single selection",bindKey:"esc",exec:function(e){e.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(e){return e&&e.inMultiSelectMode}}];var o=e("../keyboard/hash_handler").HashHandler;t.keyboardHandler=new o(t.multiSelectCommands)})),ace.define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],(function(e,t,n){var o=e("./range_list").RangeList,i=e("./range").Range,r=e("./selection").Selection,s=e("./mouse/multi_select_handler").onMouseDown,a=e("./lib/event"),l=e("./lib/lang"),c=e("./commands/multi_select_commands");t.commands=c.defaultCommands.concat(c.multiSelectCommands);var u=new(0,e("./search").Search),h=e("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(h.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(e,t){if(e){if(!this.inMultiSelectMode&&0===this.rangeCount){var n=this.toOrientedRange();if(this.rangeList.add(n),this.rangeList.add(e),2!=this.rangeList.ranges.length)return this.rangeList.removeAll(),t||this.fromOrientedRange(e);this.rangeList.removeAll(),this.rangeList.add(n),this.$onAddRange(n)}e.cursor||(e.cursor=e.end);var o=this.rangeList.add(e);return this.$onAddRange(e),o.length&&this.$onRemoveRange(o),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)}},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length&&this.$onRemoveRange(e)},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal("addRange",{range:e})},this.$onRemoveRange=function(e){if(this.rangeCount=this.rangeList.ranges.length,1==this.rangeCount&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var n=e.length;n--;){var o=this.ranges.indexOf(e[n]);this.ranges.splice(o,1)}this._signal("removeRange",{ranges:e}),0===this.rangeCount&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),(t=t||this.ranges[0])&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new o,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){for(var e=this.ranges.length?this.ranges:[this.getRange()],t=[],n=0;n1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var o=this.session.documentToScreenPosition(this.cursor),r=this.session.documentToScreenPosition(this.anchor);this.rectangularRangeBlock(o,r).forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,n){var o=[],r=e.column0;)v--;if(v>0)for(var b=0;o[b].isEmpty();)b++;for(var w=v;w>=b;w--)o[w].isEmpty()&&o.splice(w,1)}return o}}.call(r.prototype);var d=e("./editor").Editor;function p(e){e.$multiselectOnSessionChange||(e.$onAddRange=e.$onAddRange.bind(e),e.$onRemoveRange=e.$onRemoveRange.bind(e),e.$onMultiSelect=e.$onMultiSelect.bind(e),e.$onSingleSelect=e.$onSingleSelect.bind(e),e.$multiselectOnSessionChange=t.onSessionChange.bind(e),e.$checkMultiselectChange=e.$checkMultiselectChange.bind(e),e.$multiselectOnSessionChange(e),e.on("changeSession",e.$multiselectOnSessionChange),e.on("mousedown",s),e.commands.addCommands(c.defaultCommands),function(e){if(e.textInput){var t=e.textInput.getElement(),n=!1;a.addListener(t,"keydown",(function(t){var i=18==t.keyCode&&!(t.ctrlKey||t.shiftKey||t.metaKey);e.$blockSelectEnabled&&i?n||(e.renderer.setMouseCursor("crosshair"),n=!0):n&&o()}),e),a.addListener(t,"keyup",o,e),a.addListener(t,"blur",o,e)}function o(t){n&&(e.renderer.setMouseCursor(""),n=!1)}}(e))}(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(e.marker){this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);-1!=t&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(e){for(var t=this.session.$selectionMarkers,n=e.length;n--;){var o=e[n];if(o.marker){this.session.removeMarker(o.marker);var i=t.indexOf(o);-1!=i&&t.splice(i,1)}}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(c.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(e){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(c.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(e){var t=e.command,n=e.editor;if(n.multiSelect){if(t.multiSelectAction)"forEach"==t.multiSelectAction?o=n.forEachSelection(t,e.args):"forEachLine"==t.multiSelectAction?o=n.forEachSelection(t,e.args,!0):"single"==t.multiSelectAction?(n.exitMultiSelectMode(),o=t.exec(n,e.args||{})):o=t.multiSelectAction(n,e.args||{});else{var o=t.exec(n,e.args||{});n.multiSelect.addRange(n.multiSelect.toOrientedRange()),n.multiSelect.mergeOverlappingRanges()}return o}},this.forEachSelection=function(e,t,n){if(!this.inVirtualSelectionMode){var o,i=n&&n.keepOrder,s=1==n||n&&n.$byLines,a=this.session,l=this.selection,c=l.rangeList,u=(i?l:c).ranges;if(!u.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var h=l._eventRegistry;l._eventRegistry={};var d=new r(a);this.inVirtualSelectionMode=!0;for(var p=u.length;p--;){if(s)for(;p>0&&u[p].start.row==u[p-1].end.row;)p--;d.fromOrientedRange(u[p]),d.index=p,this.selection=a.selection=d;var g=e.exec?e.exec(this,t||{}):e(this,t||{});o||void 0===g||(o=g),d.toOrientedRange(u[p])}d.detach(),this.selection=a.selection=l,this.inVirtualSelectionMode=!1,l._eventRegistry=h,l.mergeOverlappingRanges(),l.ranges[0]&&l.fromOrientedRange(l.ranges[0]);var m=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),m&&m.from==m.to&&this.renderer.animateScrolling(m.from),o}},this.exitMultiSelectMode=function(){this.inMultiSelectMode&&!this.inVirtualSelectionMode&&this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var t=this.multiSelect.rangeList.ranges,n=[],o=0;os&&(s=n.column),ou?e.insert(o,l.stringRepeat(" ",r-u)):e.remove(new i(o.row,o.column,o.row,o.column-r+u)),t.start.column=t.end.column=s,t.start.row=t.end.row=o.row,t.cursor=t.end})),t.fromOrientedRange(n[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}else{var u=this.selection.getRange(),h=u.start.row,d=u.end.row,p=h==d;if(p){var g,m=this.session.getLength();do{g=this.session.getLine(d)}while(/[=:]/.test(g)&&++d0);h<0&&(h=0),d>=m&&(d=m-1)}var f=this.session.removeFullLines(h,d);f=this.$reAlignText(f,p),this.session.insert({row:h,column:0},f.join("\n")+"\n"),p||(u.start.column=0,u.end.column=f[f.length-1].length),this.selection.setRange(u)}},this.$reAlignText=function(e,t){var n,o,i,r=!0,s=!0;return e.map((function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?null==n?(n=t[1].length,o=t[2].length,i=t[3].length,t):(n+o+i!=t[1].length+t[2].length+t[3].length&&(s=!1),n!=t[1].length&&(r=!1),n>t[1].length&&(n=t[1].length),ot[3].length&&(i=t[3].length),t):[e]})).map(t?c:r?s?function(e){return e[2]?a(n+o-e[2].length)+e[2]+a(i)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}:c:function(e){return e[2]?a(n)+e[2]+a(i)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]});function a(e){return l.stringRepeat(" ",e)}function c(e){return e[2]?a(n)+e[2]+a(o-e[2].length+i)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}}}).call(d.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var n=e.oldSession;n&&(n.multiSelect.off("addRange",this.$onAddRange),n.multiSelect.off("removeRange",this.$onRemoveRange),n.multiSelect.off("multiSelect",this.$onMultiSelect),n.multiSelect.off("singleSelect",this.$onSingleSelect),n.multiSelect.lead.off("change",this.$checkMultiselectChange),n.multiSelect.anchor.off("change",this.$checkMultiselectChange)),t&&(t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),t.multiSelect.lead.on("change",this.$checkMultiselectChange),t.multiSelect.anchor.on("change",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=p,e("./config").defineOptions(d.prototype,"editor",{enableMultiselect:{set:function(e){p(this),e?this.on("mousedown",s):this.off("mousedown",s)},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})})),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../../range").Range,i=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);return this.foldingStartMarker.test(o)?"start":"markbeginend"==t&&this.foldingStopMarker&&this.foldingStopMarker.test(o)?"end":""},this.getFoldWidgetRange=function(e,t,n){return null},this.indentationBlock=function(e,t,n){var i=/\S/,r=e.getLine(t),s=r.search(i);if(-1!=s){for(var a=n||r.length,l=e.getLength(),c=t,u=t;++tc){var p=e.getLine(u).length;return new o(c,a,u,p)}}},this.openingBracketBlock=function(e,t,n,i,r){var s={row:n,column:i+1},a=e.$findClosingBracket(t,s,r);if(a){var l=e.foldWidgets[a.row];return null==l&&(l=e.getFoldWidget(a.row)),"start"==l&&a.row>s.row&&(a.row--,a.column=e.getLine(a.row).length),o.fromPoints(s,a)}},this.closingBracketBlock=function(e,t,n,i,r){var s={row:n,column:i},a=e.$findOpeningBracket(t,s);if(a)return a.column++,s.column--,o.fromPoints(a,s)}}).call(i.prototype)})),ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range","ace/config"],(function(e,t,n){"use strict";var o=e("../line_widgets").LineWidgets,i=e("../lib/dom"),r=e("../range").Range,s=e("../config").nls;t.showErrorMarker=function(e,t){var n=e.session;n.widgetManager||(n.widgetManager=new o(n),n.widgetManager.attach(e));var a=e.getCursorPosition(),l=a.row,c=n.widgetManager.getWidgetsAtRow(l).filter((function(e){return"errorMarker"==e.type}))[0];c?c.destroy():l-=t;var u,h=function(e,t,n){var o=e.getAnnotations().sort(r.comparePoints);if(o.length){var i=function(e,t,n){for(var o=0,i=e.length-1;o<=i;){var r=o+i>>1,s=n(t,e[r]);if(s>0)o=r+1;else{if(!(s<0))return r;i=r-1}}return-(o+1)}(o,{row:t,column:-1},r.comparePoints);i<0&&(i=-i-1),i>=o.length?i=n>0?0:o.length-1:0===i&&n<0&&(i=o.length-1);var s=o[i];if(s&&n){if(s.row===t){do{s=o[i+=n]}while(s&&s.row===t);if(!s)return o.slice()}var a=[];t=s.row;do{a[n<0?"unshift":"push"](s),s=o[i+=n]}while(s&&s.row==t);return a.length&&a}}}(n,l,t);if(h){var d=h[0];a.column=(d.pos&&"number"!=typeof d.column?d.pos.sc:d.column)||0,a.row=d.row,u=e.renderer.$gutterLayer.$annotations[a.row]}else{if(c)return;u={text:[s("Looks good!")],className:"ace_ok"}}e.session.unfold(a.row),e.selection.moveToPosition(a);var p={row:a.row,fixedWidth:!0,coverGutter:!0,el:i.createElement("div"),type:"errorMarker"},g=p.el.appendChild(i.createElement("div")),m=p.el.appendChild(i.createElement("div"));m.className="error_widget_arrow "+u.className;var f=e.renderer.$cursorLayer.getPixelPosition(a).left;m.style.left=f+e.renderer.gutterWidth-5+"px",p.el.className="error_widget_wrapper",g.className="error_widget "+u.className,g.innerHTML=u.text.join("
"),g.appendChild(i.createElement("div"));var y=function(e,t,n){if(0===t&&("esc"===n||"return"===n))return p.destroy(),{command:"null"}};p.destroy=function(){e.$mouseHandler.isMousePressed||(e.keyBinding.removeKeyboardHandler(y),n.widgetManager.removeLineWidget(p),e.off("changeSelection",p.destroy),e.off("changeSession",p.destroy),e.off("mouseup",p.destroy),e.off("change",p.destroy))},e.keyBinding.addKeyboardHandler(y),e.on("changeSelection",p.destroy),e.on("changeSession",p.destroy),e.on("mouseup",p.destroy),e.on("change",p.destroy),e.session.widgetManager.addLineWidget(p),p.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:p.el.offsetHeight})},i.importCssString("\n .error_widget_wrapper {\n background: inherit;\n color: inherit;\n border:none\n }\n .error_widget {\n border-top: solid 2px;\n border-bottom: solid 2px;\n margin: 5px 0;\n padding: 10px 40px;\n white-space: pre-wrap;\n }\n .error_widget.ace_error, .error_widget_arrow.ace_error{\n border-color: #ff5a5a\n }\n .error_widget.ace_warning, .error_widget_arrow.ace_warning{\n border-color: #F1D817\n }\n .error_widget.ace_info, .error_widget_arrow.ace_info{\n border-color: #5a5a5a\n }\n .error_widget.ace_ok, .error_widget_arrow.ace_ok{\n border-color: #5aaa5a\n }\n .error_widget_arrow {\n position: absolute;\n border: solid 5px;\n border-top-color: transparent!important;\n border-right-color: transparent!important;\n border-left-color: transparent!important;\n top: -5px;\n }\n","error_marker.css",!1)})),ace.define("ace/ace",["require","exports","module","ace/lib/dom","ace/range","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config","ace/loader_build"],(function(e,t,n){"use strict";e("./loader_build")(t);var o=e("./lib/dom"),i=e("./range").Range,r=e("./editor").Editor,s=e("./edit_session").EditSession,a=e("./undomanager").UndoManager,l=e("./virtual_renderer").VirtualRenderer;e("./worker/worker_client"),e("./keyboard/hash_handler"),e("./placeholder"),e("./multi_select"),e("./mode/folding/fold_mode"),e("./theme/textmate"),e("./ext/error_marker"),t.config=e("./config"),t.edit=function(e,n){if("string"==typeof e){var i=e;if(!(e=document.getElementById(i)))throw new Error("ace.edit can't find div #"+i)}if(e&&e.env&&e.env.editor instanceof r)return e.env.editor;var s="";if(e&&/input|textarea/i.test(e.tagName)){var a=e;s=a.value,e=o.createElement("pre"),a.parentNode.replaceChild(e,a)}else e&&(s=e.textContent,e.innerHTML="");var c=t.createEditSession(s),u=new r(new l(e),c,n),h={document:c,editor:u,onResize:u.resize.bind(u,null)};return a&&(h.textarea=a),u.on("destroy",(function(){h.editor.container.env=null})),u.container.env=u.env=h,u},t.createEditSession=function(e,t){var n=new s(e,t);return n.setUndoManager(new a),n},t.Range=i,t.Editor=r,t.EditSession=s,t.UndoManager=a,t.VirtualRenderer=l,t.version=t.config.version})),ace.require(["ace/ace"],(function(t){t&&(t.config.init(!0),t.define=ace.define);var n=function(){return this}();for(var o in n||"undefined"==typeof window||(n=window),n||"undefined"==typeof self||(n=self),n.ace||(n.ace=t),t)t.hasOwnProperty(o)&&(n.ace[o]=t[o]);n.ace.default=n.ace,e&&(e.exports=n.ace)}))},134:(e,t,n)=>{e=n.nmd(e),ace.define("ace/ext/beautify",["require","exports","module","ace/token_iterator"],(function(e,t,n){"use strict";var o=e("../token_iterator").TokenIterator;function i(e,t){return e.type.lastIndexOf(t+".xml")>-1}t.singletonTags=["area","base","br","col","command","embed","hr","html","img","input","keygen","link","meta","param","source","track","wbr"],t.blockTags=["article","aside","blockquote","body","div","dl","fieldset","footer","form","head","header","html","nav","ol","p","script","section","style","table","tbody","tfoot","thead","ul"],t.formatOptions={lineBreaksAfterCommasInCurlyBlock:!0},t.beautify=function(e){for(var n,r,s,a=new o(e,0,0),l=a.getCurrentToken(),c=e.getTabString(),u=t.singletonTags,h=t.blockTags,d=t.formatOptions||{},p=!1,g=!1,m=!1,f="",y="",v="",b=0,w=0,x=0,k=0,C=0,$=0,S=0,E=0,O=0,T=!1,A=!1,_=!1,L=!1,M={0:0},R=[],N=!1,I=function(){n&&n.value&&"string.regexp"!==n.type&&(n.value=n.value.replace(/^\s*/,""))},P=function(){for(var e=f.length-1;0!=e&&" "===f[e];)e-=1;f=f.slice(0,e+1)},D=function(){f=f.trimRight(),p=!1};null!==l;){if(E=a.getCurrentTokenRow(),a.$rowTokens,n=a.stepForward(),void 0!==l){if(y=l.value,C=0,_="style"===v||"ace/mode/css"===e.$modeId,i(l,"tag-open")?(A=!0,n&&(L=-1!==h.indexOf(n.value)),"0;O--)f+="\n";p=!0,i(l,"comment")||l.type.match(/^(comment|string)$/)||(y=y.trimLeft())}if(y){if("keyword"===l.type&&y.match(/^(if|else|elseif|for|foreach|while|switch)$/)?(R[b]=y,I(),m=!0,y.match(/^(else|elseif)$/)&&f.match(/\}[\s]*$/)&&(D(),g=!0)):"paren.lparen"===l.type?(I(),"{"===y.substr(-1)&&(m=!0,T=!1,A||(O=1)),"{"===y.substr(0,1)&&(g=!0,"["!==f.substr(-1)&&"["===f.trimRight().substr(-1)?(D(),g=!1):")"===f.trimRight().substr(-1)?D():P())):"paren.rparen"===l.type?(C=1,"}"===y.substr(0,1)&&("case"===R[b-1]&&C++,"{"===f.trimRight().substr(-1)?D():(g=!0,_&&(O+=2))),"]"===y.substr(0,1)&&"}"!==f.substr(-1)&&"}"===f.trimRight().substr(-1)&&(g=!1,k++,D()),")"===y.substr(0,1)&&"("!==f.substr(-1)&&"("===f.trimRight().substr(-1)&&(g=!1,k++,D()),P()):"keyword.operator"!==l.type&&"keyword"!==l.type||!y.match(/^(=|==|===|!=|!==|&&|\|\||and|or|xor|\+=|.=|>|>=|<|<=|=>)$/)?"punctuation.operator"===l.type&&";"===y?(D(),I(),m=!0,_&&O++):"punctuation.operator"===l.type&&y.match(/^(:|,)$/)?(D(),I(),y.match(/^(,)$/)&&S>0&&0===$&&d.lineBreaksAfterCommasInCurlyBlock?O++:(m=!0,p=!1)):"support.php_tag"!==l.type||"?>"!==y||p?i(l,"attribute-name")&&f.substr(-1).match(/^\s$/)?g=!0:i(l,"attribute-equals")?(P(),I()):i(l,"tag-close")?(P(),"/>"===y&&(g=!0)):"keyword"===l.type&&y.match(/^(case|default)$/)&&N&&(C=1):(D(),g=!0):(D(),I(),g=!0,m=!0),p&&(!l.type.match(/^(comment)$/)||y.substr(0,1).match(/^[/#]$/))&&(!l.type.match(/^(string)$/)||y.substr(0,1).match(/^['"@]$/))){if(k=x,b>w)for(k++,s=b;s>w;s--)M[s]=k;else b"===y)&&(O=L&&n&&""===y&&b--),i(l,"tag-name")&&(v=y),r=E}}l=n}f=f.trim(),e.doc.setValue(f)},t.commands=[{name:"beautify",description:"Format selection (Beautify)",exec:function(e){t.beautify(e.session)},bindKey:"Ctrl-Shift-B"}]})),ace.require(["ace/ext/beautify"],(function(t){e&&(e.exports=t)}))},604:(e,t,n)=>{e=n.nmd(e),ace.define("ace/ext/searchbox-css",["require","exports","module"],(function(e,t,n){n.exports='\n\n/* ------------------------------------------------------------------------------------------\n * Editor Search Form\n * --------------------------------------------------------------------------------------- */\n.ace_search {\n background-color: #ddd;\n color: #666;\n border: 1px solid #cbcbcb;\n border-top: 0 none;\n overflow: hidden;\n margin: 0;\n padding: 4px 6px 0 4px;\n position: absolute;\n top: 0;\n z-index: 99;\n white-space: normal;\n}\n.ace_search.left {\n border-left: 0 none;\n border-radius: 0px 0px 5px 0px;\n left: 0;\n}\n.ace_search.right {\n border-radius: 0px 0px 0px 5px;\n border-right: 0 none;\n right: 0;\n}\n\n.ace_search_form, .ace_replace_form {\n margin: 0 20px 4px 0;\n overflow: hidden;\n line-height: 1.9;\n}\n.ace_replace_form {\n margin-right: 0;\n}\n.ace_search_form.ace_nomatch {\n outline: 1px solid red;\n}\n\n.ace_search_field {\n border-radius: 3px 0 0 3px;\n background-color: white;\n color: black;\n border: 1px solid #cbcbcb;\n border-right: 0 none;\n outline: 0;\n padding: 0;\n font-size: inherit;\n margin: 0;\n line-height: inherit;\n padding: 0 6px;\n min-width: 17em;\n vertical-align: top;\n min-height: 1.8em;\n box-sizing: content-box;\n}\n.ace_searchbtn {\n border: 1px solid #cbcbcb;\n line-height: inherit;\n display: inline-block;\n padding: 0 6px;\n background: #fff;\n border-right: 0 none;\n border-left: 1px solid #dcdcdc;\n cursor: pointer;\n margin: 0;\n position: relative;\n color: #666;\n}\n.ace_searchbtn:last-child {\n border-radius: 0 3px 3px 0;\n border-right: 1px solid #cbcbcb;\n}\n.ace_searchbtn:disabled {\n background: none;\n cursor: default;\n}\n.ace_searchbtn:hover {\n background-color: #eef1f6;\n}\n.ace_searchbtn.prev, .ace_searchbtn.next {\n padding: 0px 0.7em\n}\n.ace_searchbtn.prev:after, .ace_searchbtn.next:after {\n content: "";\n border: solid 2px #888;\n width: 0.5em;\n height: 0.5em;\n border-width: 2px 0 0 2px;\n display:inline-block;\n transform: rotate(-45deg);\n}\n.ace_searchbtn.next:after {\n border-width: 0 2px 2px 0 ;\n}\n.ace_searchbtn_close {\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\n border-radius: 50%;\n border: 0 none;\n color: #656565;\n cursor: pointer;\n font: 16px/16px Arial;\n padding: 0;\n height: 14px;\n width: 14px;\n top: 9px;\n right: 7px;\n position: absolute;\n}\n.ace_searchbtn_close:hover {\n background-color: #656565;\n background-position: 50% 100%;\n color: white;\n}\n\n.ace_button {\n margin-left: 2px;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -o-user-select: none;\n -ms-user-select: none;\n user-select: none;\n overflow: hidden;\n opacity: 0.7;\n border: 1px solid rgba(100,100,100,0.23);\n padding: 1px;\n box-sizing: border-box!important;\n color: black;\n}\n\n.ace_button:hover {\n background-color: #eee;\n opacity:1;\n}\n.ace_button:active {\n background-color: #ddd;\n}\n\n.ace_button.checked {\n border-color: #3399ff;\n opacity:1;\n}\n\n.ace_search_options{\n margin-bottom: 3px;\n text-align: right;\n -webkit-user-select: none;\n -moz-user-select: none;\n -o-user-select: none;\n -ms-user-select: none;\n user-select: none;\n clear: both;\n}\n\n.ace_search_counter {\n float: left;\n font-family: arial;\n padding: 0 8px;\n}'})),ace.define("ace/ext/searchbox",["require","exports","module","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/ext/searchbox-css","ace/keyboard/hash_handler","ace/lib/keys","ace/config"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=e("../lib/lang"),r=e("../lib/event"),s=e("./searchbox-css"),a=e("../keyboard/hash_handler").HashHandler,l=e("../lib/keys"),c=e("../config").nls;o.importCssString(s,"ace_searchbox",!1);var u=function(){function e(e,t,n){var i=o.createElement("div");o.buildDom(["div",{class:"ace_search right"},["span",{action:"hide",class:"ace_searchbtn_close"}],["div",{class:"ace_search_form"},["input",{class:"ace_search_field",placeholder:c("Search for"),spellcheck:"false"}],["span",{action:"findPrev",class:"ace_searchbtn prev"},"​"],["span",{action:"findNext",class:"ace_searchbtn next"},"​"],["span",{action:"findAll",class:"ace_searchbtn",title:"Alt-Enter"},c("All")]],["div",{class:"ace_replace_form"},["input",{class:"ace_search_field",placeholder:c("Replace with"),spellcheck:"false"}],["span",{action:"replaceAndFindNext",class:"ace_searchbtn"},c("Replace")],["span",{action:"replaceAll",class:"ace_searchbtn"},c("All")]],["div",{class:"ace_search_options"},["span",{action:"toggleReplace",class:"ace_button",title:c("Toggle Replace mode"),style:"float:left;margin-top:-2px;padding:0 5px;"},"+"],["span",{class:"ace_search_counter"}],["span",{action:"toggleRegexpMode",class:"ace_button",title:c("RegExp Search")},".*"],["span",{action:"toggleCaseSensitive",class:"ace_button",title:c("CaseSensitive Search")},"Aa"],["span",{action:"toggleWholeWords",class:"ace_button",title:c("Whole Word Search")},"\\b"],["span",{action:"searchInSelection",class:"ace_button",title:c("Search In Selection")},"S"]]],i),this.element=i.firstChild,this.setSession=this.setSession.bind(this),this.$init(),this.setEditor(e),o.importCssString(s,"ace_searchbox",e.container)}return e.prototype.setEditor=function(e){e.searchBox=this,e.renderer.scroller.appendChild(this.element),this.editor=e},e.prototype.setSession=function(e){this.searchRange=null,this.$syncOptions(!0)},e.prototype.$initElements=function(e){this.searchBox=e.querySelector(".ace_search_form"),this.replaceBox=e.querySelector(".ace_replace_form"),this.searchOption=e.querySelector("[action=searchInSelection]"),this.replaceOption=e.querySelector("[action=toggleReplace]"),this.regExpOption=e.querySelector("[action=toggleRegexpMode]"),this.caseSensitiveOption=e.querySelector("[action=toggleCaseSensitive]"),this.wholeWordOption=e.querySelector("[action=toggleWholeWords]"),this.searchInput=this.searchBox.querySelector(".ace_search_field"),this.replaceInput=this.replaceBox.querySelector(".ace_search_field"),this.searchCounter=e.querySelector(".ace_search_counter")},e.prototype.$init=function(){var e=this.element;this.$initElements(e);var t=this;r.addListener(e,"mousedown",(function(e){setTimeout((function(){t.activeInput.focus()}),0),r.stopPropagation(e)})),r.addListener(e,"click",(function(e){var n=(e.target||e.srcElement).getAttribute("action");n&&t[n]?t[n]():t.$searchBarKb.commands[n]&&t.$searchBarKb.commands[n].exec(t),r.stopPropagation(e)})),r.addCommandKeyListener(e,(function(e,n,o){var i=l.keyCodeToString(o),s=t.$searchBarKb.findKeyCommand(n,i);s&&s.exec&&(s.exec(t),r.stopEvent(e))})),this.$onChange=i.delayedCall((function(){t.find(!1,!1)})),r.addListener(this.searchInput,"input",(function(){t.$onChange.schedule(20)})),r.addListener(this.searchInput,"focus",(function(){t.activeInput=t.searchInput,t.searchInput.value&&t.highlight()})),r.addListener(this.replaceInput,"focus",(function(){t.activeInput=t.replaceInput,t.searchInput.value&&t.highlight()}))},e.prototype.setSearchRange=function(e){this.searchRange=e,e?this.searchRangeMarker=this.editor.session.addMarker(e,"ace_active-line"):this.searchRangeMarker&&(this.editor.session.removeMarker(this.searchRangeMarker),this.searchRangeMarker=null)},e.prototype.$syncOptions=function(e){o.setCssClass(this.replaceOption,"checked",this.searchRange),o.setCssClass(this.searchOption,"checked",this.searchOption.checked),this.replaceOption.textContent=this.replaceOption.checked?"-":"+",o.setCssClass(this.regExpOption,"checked",this.regExpOption.checked),o.setCssClass(this.wholeWordOption,"checked",this.wholeWordOption.checked),o.setCssClass(this.caseSensitiveOption,"checked",this.caseSensitiveOption.checked);var t=this.editor.getReadOnly();this.replaceOption.style.display=t?"none":"",this.replaceBox.style.display=this.replaceOption.checked&&!t?"":"none",this.find(!1,!1,e)},e.prototype.highlight=function(e){this.editor.session.highlight(e||this.editor.$search.$options.re),this.editor.renderer.updateBackMarkers()},e.prototype.find=function(e,t,n){var i=!this.editor.find(this.searchInput.value,{skipCurrent:e,backwards:t,wrap:!0,regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked,preventScroll:n,range:this.searchRange})&&this.searchInput.value;o.setCssClass(this.searchBox,"ace_nomatch",i),this.editor._emit("findSearchBox",{match:!i}),this.highlight(),this.updateCounter()},e.prototype.updateCounter=function(){var e=this.editor,t=e.$search.$options.re,n=t.unicode,o=0,r=0;if(t){var s=this.searchRange?e.session.getTextRange(this.searchRange):e.getValue(),a=e.session.doc.positionToIndex(e.selection.anchor);this.searchRange&&(a-=e.session.doc.positionToIndex(this.searchRange.start));for(var l,u=t.lastIndex=0;(l=t.exec(s))&&(o++,(u=l.index)<=a&&r++,!(o>999))&&(l[0]||(t.lastIndex=u+=i.skipEmptyMatch(s,u,n),!(u>=s.length))););}this.searchCounter.textContent=c("$0 of $1",[r,o>999?"999+":o])},e.prototype.findNext=function(){this.find(!0,!1)},e.prototype.findPrev=function(){this.find(!0,!0)},e.prototype.findAll=function(){var e=!this.editor.findAll(this.searchInput.value,{regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked})&&this.searchInput.value;o.setCssClass(this.searchBox,"ace_nomatch",e),this.editor._emit("findSearchBox",{match:!e}),this.highlight(),this.hide()},e.prototype.replace=function(){this.editor.getReadOnly()||this.editor.replace(this.replaceInput.value)},e.prototype.replaceAndFindNext=function(){this.editor.getReadOnly()||(this.editor.replace(this.replaceInput.value),this.findNext())},e.prototype.replaceAll=function(){this.editor.getReadOnly()||this.editor.replaceAll(this.replaceInput.value)},e.prototype.hide=function(){this.active=!1,this.setSearchRange(null),this.editor.off("changeSession",this.setSession),this.element.style.display="none",this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb),this.editor.focus()},e.prototype.show=function(e,t){this.active=!0,this.editor.on("changeSession",this.setSession),this.element.style.display="",this.replaceOption.checked=t,e&&(this.searchInput.value=e),this.searchInput.focus(),this.searchInput.select(),this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb),this.$syncOptions(!0)},e.prototype.isFocused=function(){var e=document.activeElement;return e==this.searchInput||e==this.replaceInput},e}(),h=new a;h.bindKeys({"Ctrl-f|Command-f":function(e){var t=e.isReplace=!e.isReplace;e.replaceBox.style.display=t?"":"none",e.replaceOption.checked=!1,e.$syncOptions(),e.searchInput.focus()},"Ctrl-H|Command-Option-F":function(e){e.editor.getReadOnly()||(e.replaceOption.checked=!0,e.$syncOptions(),e.replaceInput.focus())},"Ctrl-G|Command-G":function(e){e.findNext()},"Ctrl-Shift-G|Command-Shift-G":function(e){e.findPrev()},esc:function(e){setTimeout((function(){e.hide()}))},Return:function(e){e.activeInput==e.replaceInput&&e.replace(),e.findNext()},"Shift-Return":function(e){e.activeInput==e.replaceInput&&e.replace(),e.findPrev()},"Alt-Return":function(e){e.activeInput==e.replaceInput&&e.replaceAll(),e.findAll()},Tab:function(e){(e.activeInput==e.replaceInput?e.searchInput:e.replaceInput).focus()}}),h.addCommands([{name:"toggleRegexpMode",bindKey:{win:"Alt-R|Alt-/",mac:"Ctrl-Alt-R|Ctrl-Alt-/"},exec:function(e){e.regExpOption.checked=!e.regExpOption.checked,e.$syncOptions()}},{name:"toggleCaseSensitive",bindKey:{win:"Alt-C|Alt-I",mac:"Ctrl-Alt-R|Ctrl-Alt-I"},exec:function(e){e.caseSensitiveOption.checked=!e.caseSensitiveOption.checked,e.$syncOptions()}},{name:"toggleWholeWords",bindKey:{win:"Alt-B|Alt-W",mac:"Ctrl-Alt-B|Ctrl-Alt-W"},exec:function(e){e.wholeWordOption.checked=!e.wholeWordOption.checked,e.$syncOptions()}},{name:"toggleReplace",exec:function(e){e.replaceOption.checked=!e.replaceOption.checked,e.$syncOptions()}},{name:"searchInSelection",exec:function(e){e.searchOption.checked=!e.searchRange,e.setSearchRange(e.searchOption.checked&&e.editor.getSelectionRange()),e.$syncOptions()}}]);var d=new a([{bindKey:"Esc",name:"closeSearchBar",exec:function(e){e.searchBox.hide()}}]);u.prototype.$searchBarKb=h,u.prototype.$closeSearchBarKb=d,t.SearchBox=u,t.Search=function(e,t){(e.searchBox||new u(e)).show(e.session.getTextRange(),t)}})),ace.require(["ace/ext/searchbox"],(function(t){e&&(e.exports=t)}))},549:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=(e("../lib/lang"),e("./text_highlight_rules").TextHighlightRules),r=t.supportType="align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index",s=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|flex-end|flex-start|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom",l=t.supportConstantColor="aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen",c=t.supportConstantFonts="arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",u=t.numRe="\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",d=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",p=function(){var e=this.createKeywordMapper({"support.function":s,"support.constant":a,"support.type":r,"support.constant.color":l,"support.constant.fonts":c},"text",!0);this.$rules={start:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"paren.rparen",regex:"\\}"},{token:"string",regex:"@(?!viewport)",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"keyword",regex:"%"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant.numeric",regex:u},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"start"},{token:"paren.rparen",regex:"\\}",next:"start"},{token:"string",regex:";",next:"start"},{token:"keyword",regex:"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)"}],comments:[{token:"comment",regex:"\\/\\*",push:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}]}],ruleset:[{regex:"-(webkit|ms|moz|o)-",token:"text"},{token:"punctuation.operator",regex:"[:;]"},{token:"paren.rparen",regex:"\\}",next:"start"},{include:["strings","url","comments"]},{token:["constant.numeric","keyword"],regex:"("+u+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)"},{token:"constant.numeric",regex:u},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:d},{include:"url"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}],url:[{token:"support.function",regex:"(?:url(:?-prefix)?|domain|regexp)\\(",push:[{token:"support.function",regex:"\\)",next:"pop"},{defaultToken:"string"}]}],strings:[{token:"string.start",regex:"'",push:[{token:"string.end",regex:"'|$",next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]},{token:"string.start",regex:'"',push:[{token:"string.end",regex:'"|$',next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]}],escapes:[{token:"constant.language.escape",regex:/\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/}]},this.normalizeRules()};o.inherits(p,i),t.CssHighlightRules=p})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/css_completions",["require","exports","module"],(function(e,t,n){"use strict";var o={background:{"#$0":1},"background-color":{"#$0":1,transparent:1,fixed:1},"background-image":{"url('/$0')":1},"background-repeat":{repeat:1,"repeat-x":1,"repeat-y":1,"no-repeat":1,inherit:1},"background-position":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},"background-attachment":{scroll:1,fixed:1},"background-size":{cover:1,contain:1},"background-clip":{"border-box":1,"padding-box":1,"content-box":1},"background-origin":{"border-box":1,"padding-box":1,"content-box":1},border:{"solid $0":1,"dashed $0":1,"dotted $0":1,"#$0":1},"border-color":{"#$0":1},"border-style":{solid:2,dashed:2,dotted:2,double:2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},"border-collapse":{collapse:1,separate:1},bottom:{px:1,em:1,"%":1},clear:{left:1,right:1,both:1,none:1},color:{"#$0":1,"rgb(#$00,0,0)":1},cursor:{default:1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,"n-resize":1,"ne-resize":1,"e-resize":1,"se-resize":1,"s-resize":1,"sw-resize":1,"w-resize":1,"nw-resize":1},display:{none:1,block:1,inline:1,"inline-block":1,"table-cell":1},"empty-cells":{show:1,hide:1},float:{left:1,right:1,none:1},"font-family":{Arial:2,"Comic Sans MS":2,Consolas:2,"Courier New":2,Courier:2,Georgia:2,Monospace:2,"Sans-Serif":2,"Segoe UI":2,Tahoma:2,"Times New Roman":2,"Trebuchet MS":2,Verdana:1},"font-size":{px:1,em:1,"%":1},"font-weight":{bold:1,normal:1},"font-style":{italic:1,normal:1},"font-variant":{normal:1,"small-caps":1},height:{px:1,em:1,"%":1},left:{px:1,em:1,"%":1},"letter-spacing":{normal:1},"line-height":{normal:1},"list-style-type":{none:1,disc:1,circle:1,square:1,decimal:1,"decimal-leading-zero":1,"lower-roman":1,"upper-roman":1,"lower-greek":1,"lower-latin":1,"upper-latin":1,georgian:1,"lower-alpha":1,"upper-alpha":1},margin:{px:1,em:1,"%":1},"margin-right":{px:1,em:1,"%":1},"margin-left":{px:1,em:1,"%":1},"margin-top":{px:1,em:1,"%":1},"margin-bottom":{px:1,em:1,"%":1},"max-height":{px:1,em:1,"%":1},"max-width":{px:1,em:1,"%":1},"min-height":{px:1,em:1,"%":1},"min-width":{px:1,em:1,"%":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},"overflow-x":{hidden:1,visible:1,auto:1,scroll:1},"overflow-y":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,"%":1},"padding-top":{px:1,em:1,"%":1},"padding-right":{px:1,em:1,"%":1},"padding-bottom":{px:1,em:1,"%":1},"padding-left":{px:1,em:1,"%":1},"page-break-after":{auto:1,always:1,avoid:1,left:1,right:1},"page-break-before":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,static:1},right:{px:1,em:1,"%":1},"table-layout":{fixed:1,auto:1},"text-decoration":{none:1,underline:1,"line-through":1,blink:1},"text-align":{left:1,right:1,center:1,justify:1},"text-transform":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,"%":1},"vertical-align":{top:1,bottom:1},visibility:{hidden:1,visible:1},"white-space":{nowrap:1,normal:1,pre:1,"pre-line":1,"pre-wrap":1},width:{px:1,em:1,"%":1},"word-spacing":{normal:1},filter:{"alpha(opacity=$0100)":1},"text-shadow":{"$02px 2px 2px #777":1},"text-overflow":{"ellipsis-word":1,clip:1,ellipsis:1},"-moz-border-radius":1,"-moz-border-radius-topright":1,"-moz-border-radius-bottomright":1,"-moz-border-radius-topleft":1,"-moz-border-radius-bottomleft":1,"-webkit-border-radius":1,"-webkit-border-top-right-radius":1,"-webkit-border-top-left-radius":1,"-webkit-border-bottom-right-radius":1,"-webkit-border-bottom-left-radius":1,"-moz-box-shadow":1,"-webkit-box-shadow":1,transform:{"rotate($00deg)":1,"skew($00deg)":1},"-moz-transform":{"rotate($00deg)":1,"skew($00deg)":1},"-webkit-transform":{"rotate($00deg)":1,"skew($00deg)":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement("c").style;for(var t in e)if("string"==typeof e[t]){var n=t.replace(/[A-Z]/g,(function(e){return"-"+e.toLowerCase()}));o.hasOwnProperty(n)||(o[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,o){if(this.completionsDefined||this.defineCompletions(),"ruleset"===e||"ace/mode/scss"==t.$mode.$id){var i=t.getLine(n.row).substr(0,n.column),r=/\([^)]*$/.test(i);return r&&(i=i.substr(i.lastIndexOf("(")+1)),/:[^;]+$/.test(i)?(/([\w\-]+):[^:]*$/.test(i),this.getPropertyValueCompletions(e,t,n,o)):this.getPropertyCompletions(e,t,n,o,r)}return[]},this.getPropertyCompletions=function(e,t,n,i,r){return r=r||!1,Object.keys(o).map((function(e){return{caption:e,snippet:e+": $0"+(r?"":";"),meta:"property",score:1e6}}))},this.getPropertyValueCompletions=function(e,t,n,i){var r=t.getLine(n.row).substr(0,n.column),s=(/([\w\-]+):[^:]*$/.exec(r)||{})[1];if(!s)return[];var a=[];return s in o&&"object"==typeof o[s]&&(a=Object.keys(o[s])),a.map((function(e){return{caption:e,snippet:e,meta:"property value",score:1e6}}))}}).call(i.prototype),t.CssCompletions=i})),ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=(e("../behaviour").Behaviour,e("./cstyle").CstyleBehaviour),r=e("../../token_iterator").TokenIterator,s=function(){this.inherit(i),this.add("colon","insertion",(function(e,t,n,o,i){if(":"===i&&n.selection.isEmpty()){var s=n.getCursorPosition(),a=new r(o,s.row,s.column),l=a.getCurrentToken();if(l&&l.value.match(/\s+/)&&(l=a.stepBackward()),l&&"support.type"===l.type){var c=o.doc.getLine(s.row);if(":"===c.substring(s.column,s.column+1))return{text:"",selection:[1,1]};if(/^(\s+[^;]|\s*$)/.test(c.substring(s.column)))return{text:":;",selection:[1,1]}}}})),this.add("colon","deletion",(function(e,t,n,o,i){var s=o.doc.getTextRange(i);if(!i.isMultiLine()&&":"===s){var a=n.getCursorPosition(),l=new r(o,a.row,a.column),c=l.getCurrentToken();if(c&&c.value.match(/\s+/)&&(c=l.stepBackward()),c&&"support.type"===c.type&&";"===o.doc.getLine(i.start.row).substring(i.end.column,i.end.column+1))return i.end.column++,i}})),this.add("semicolon","insertion",(function(e,t,n,o,i){if(";"===i&&n.selection.isEmpty()){var r=n.getCursorPosition();if(";"===o.doc.getLine(r.row).substring(r.column,r.column+1))return{text:"",selection:[1,1]}}})),this.add("!important","insertion",(function(e,t,n,o,i){if("!"===i&&n.selection.isEmpty()){var r=n.getCursorPosition(),s=o.doc.getLine(r.row);if(/^\s*(;|}|$)/.test(s.substring(r.column)))return{text:"!important",selection:[10,10]}}}))};o.inherits(s,i),t.CssBehaviour=s})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./css_highlight_rules").CssHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../worker/worker_client").WorkerClient,l=e("./css_completions").CssCompletions,c=e("./behaviour/css").CssBehaviour,u=e("./folding/cstyle").FoldMode,h=function(){this.HighlightRules=r,this.$outdent=new s,this.$behaviour=new c,this.$completer=new l,this.foldingRules=new u};o.inherits(h,i),function(){this.foldingRules="cStyle",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;return i.length&&"comment"==i[i.length-1].type||t.match(/^.*\{\s*$/)&&(o+=n),o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,o){return this.$completer.getCompletions(e,t,n,o)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/css_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("annotate",(function(t){e.setAnnotations(t.data)})),t.on("terminate",(function(){e.clearAnnotations()})),t},this.$id="ace/mode/css",this.snippetFileId="ace/snippets/css"}.call(h.prototype),t.Mode=h})),ace.require(["ace/mode/css"],(function(t){e&&(e.exports=t)}))},576:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@\\w+(?=\\s|$)"},r.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};o.inherits(r,i),r.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},r.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},r.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=r})),ace.define("ace/mode/golang_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],(function(e,t,n){var o=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,r=e("./text_highlight_rules").TextHighlightRules,s=function(){var e=this.createKeywordMapper({keyword:"else|break|case|return|goto|if|const|select|continue|struct|default|switch|for|range|func|import|package|chan|defer|fallthrough|go|interface|map|range|select|type|var","constant.language":"nil|true|false|iota","support.function":"new|close|cap|copy|panic|panicln|print|println|len|make|delete|real|recover|imag|append","support.type":"string|uint8|uint16|uint32|uint64|int8|int16|int32|int64|float32|float64|complex64|complex128|byte|rune|uint|int|uintptr|bool|error"},""),t="\\\\(?:[0-7]{3}|x\\h{2}|u{4}|U\\h{6}|[abfnrtv'\"\\\\])".replace(/\\h/g,"[a-fA-F\\d]");this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},i.getStartRule("doc-start"),{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"string",regex:/"(?:[^"\\]|\\.)*?"/},{token:"string",regex:"`",next:"bqstring"},{token:"constant.numeric",regex:"'(?:[^\\'\ud800-\udbff]|[\ud800-\udbff][\udc00-\udfff]|"+t.replace('"',"")+")'"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:["keyword","text","entity.name.function"],regex:"(func)(\\s+)([a-zA-Z_$][a-zA-Z0-9_$]*)\\b"},{token:function(t){return"("==t[t.length-1]?[{type:e(t.slice(0,-1))||"support.function",value:t.slice(0,-1)},{type:"paren.lparen",value:t.slice(-1)}]:e(t)||"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b\\(?"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^="},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}],bqstring:[{token:"string",regex:"`",next:"start"},{defaultToken:"string"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};o.inherits(s,r),t.GolangHighlightRules=s})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/golang",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/golang_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle"],(function(e,t,n){var o=e("../lib/oop"),i=e("./text").Mode,r=e("./golang_highlight_rules").GolangHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=r,this.$outdent=new s,this.foldingRules=new a,this.$behaviour=this.$defaultBehaviour};o.inherits(l,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),r=i.tokens;return i.state,r.length&&"comment"==r[r.length-1].type||"start"==e&&t.match(/^.*[\{\(\[]\s*$/)&&(o+=n),o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/golang"}.call(l.prototype),t.Mode=l})),ace.require(["ace/mode/golang"],(function(t){e&&(e.exports=t)}))},395:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/jsdoc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:["comment.doc.tag","comment.doc.text","lparen.doc"],regex:"(@(?:param|member|typedef|property|namespace|var|const|callback))(\\s*)({)",push:[{token:"lparen.doc",regex:"{",push:[{include:"doc-syntax"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"}]},{token:["rparen.doc","text.doc","variable.parameter.doc","lparen.doc","variable.parameter.doc","rparen.doc"],regex:/(})(\s*)(?:([\w=:\/\.]+)|(?:(\[)([\w=:\/\.]+)(\])))/,next:"pop"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"},{include:"doc-syntax"},{defaultToken:"text.doc"}]},{token:["comment.doc.tag","text.doc","lparen.doc"],regex:"(@(?:returns?|yields|type|this|suppress|public|protected|private|package|modifies|implements|external|exception|throws|enum|define|extends))(\\s*)({)",push:[{token:"lparen.doc",regex:"{",push:[{include:"doc-syntax"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"}]},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"},{include:"doc-syntax"},{defaultToken:"text.doc"}]},{token:["comment.doc.tag","text.doc","variable.parameter.doc"],regex:'(@(?:alias|memberof|instance|module|name|lends|namespace|external|this|template|requires|param|implements|function|extends|typedef|mixes|constructor|var|memberof\\!|event|listens|exports|class|constructs|interface|emits|fires|throws|const|callback|borrows|augments))(\\s+)(\\w[\\w#.:/~"\\-]*)?'},{token:["comment.doc.tag","text.doc","variable.parameter.doc"],regex:"(@method)(\\s+)(\\w[\\w.\\(\\)]*)"},{token:"comment.doc.tag",regex:"@access\\s+(?:private|public|protected)"},{token:"comment.doc.tag",regex:"@kind\\s+(?:class|constant|event|external|file|function|member|mixin|module|namespace|typedef)"},{token:"comment.doc.tag",regex:"@\\w+(?=\\s|$)"},r.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}],"doc-syntax":[{token:"operator.doc",regex:/[|:]/},{token:"paren.doc",regex:/[\[\]]/}]},this.normalizeRules()};o.inherits(r,i),r.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},r.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},r.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.JsDocCommentHighlightRules=r})),ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/jsdoc_comment_highlight_rules","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./jsdoc_comment_highlight_rules").JsDocCommentHighlightRules,r=e("./text_highlight_rules").TextHighlightRules,s="[a-zA-Z\\$_¡-￿][a-zA-Z\\d\\$_¡-￿]*",a=function(e){var t=this.createKeywordMapper({"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Symbol|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static|constructor","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert","constant.language.boolean":"true|false"},"identifier"),n="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)";this.$rules={no_regex:[i.getStartRule("doc-start"),c("no_regex"),{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator"],regex:"("+s+")(\\.)(prototype)(\\.)("+s+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+s+")(\\.)("+s+")(\\s*)(=)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+s+")(\\s*)(=)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+s+")(\\.)("+s+")(\\s*)(=)(\\s*)(function\\*?)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function\\*?)(\\s+)("+s+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+s+")(\\s*)(:)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:"keyword",regex:"from(?=\\s*('|\"))"},{token:"keyword",regex:"(?:case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void)\\b",next:"start"},{token:"support.constant",regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:s},{token:"punctuation.operator",regex:/[.](?![.])/,next:"property"},{token:"storage.type",regex:/=>/,next:"start"},{token:"keyword.operator",regex:/--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],property:[{token:"text",regex:"\\s+"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+s+")(\\.)("+s+")(\\s*)(=)(\\s*)(function\\*?)(?:(\\s+)(\\w+))?(\\s*)(\\()",next:"function_arguments"},{token:"punctuation.operator",regex:/[.](?![.])/},{token:"support.function",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|lter|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward|rEach)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:"support.function.dom",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:"support.constant",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:"identifier",regex:s},{regex:"",token:"empty",next:"no_regex"}],start:[i.getStartRule("doc-start"),c("start"),{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+|^$",next:"start"},{token:"empty",regex:"",next:"no_regex"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/[sxngimy]*",next:"no_regex"},{token:"invalid",regex:/\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/},{token:"constant.language.delimiter",regex:/\|/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp"}],regex_character_class:[{token:"regexp.charclass.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp.charachterclass"}],default_parameter:[{token:"string",regex:"'(?=.)",push:[{token:"string",regex:"'|$",next:"pop"},{include:"qstring"}]},{token:"string",regex:'"(?=.)',push:[{token:"string",regex:'"|$',next:"pop"},{include:"qqstring"}]},{token:"constant.language",regex:"null|Infinity|NaN|undefined"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:"punctuation.operator",regex:",",next:"function_arguments"},{token:"text",regex:"\\s+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],function_arguments:[c("function_arguments"),{token:"variable.parameter",regex:s},{token:"punctuation.operator",regex:","},{token:"text",regex:"\\s+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],qqstring:[{token:"constant.language.escape",regex:n},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:n},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},e&&e.noES6||(this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){if(this.next="{"==e?this.nextState:"","{"==e&&n.length)n.unshift("start",t);else if("}"==e&&n.length&&(n.shift(),this.next=n.shift(),-1!=this.next.indexOf("string")||-1!=this.next.indexOf("jsx")))return"paren.quasi.end";return"{"==e?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:n},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]},{token:["variable.parameter","text"],regex:"("+s+")(\\s*)(?=\\=>)"},{token:"paren.lparen",regex:"(\\()(?=.+\\s*=>)",next:"function_arguments"},{token:"variable.language",regex:"(?:(?:(?:Weak)?(?:Set|Map))|Promise)\\b"}),this.$rules.function_arguments.unshift({token:"keyword.operator",regex:"=",next:"default_parameter"},{token:"keyword.operator",regex:"\\.{3}"}),this.$rules.property.unshift({token:"support.function",regex:"(findIndex|repeat|startsWith|endsWith|includes|isSafeInteger|trunc|cbrt|log2|log10|sign|then|catch|finally|resolve|reject|race|any|all|allSettled|keys|entries|isInteger)\\b(?=\\()"},{token:"constant.language",regex:"(?:MAX_SAFE_INTEGER|MIN_SAFE_INTEGER|EPSILON)\\b"}),e&&0==e.jsx||l.call(this)),this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};function l(){var e=s.replace("\\d","\\d\\-"),t={onMatch:function(e,t,n){var o="/"==e.charAt(1)?2:1;return 1==o?(t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++):2==o&&t==this.nextState&&(n[1]--,(!n[1]||n[1]<0)&&(n.shift(),n.shift())),[{type:"meta.tag.punctuation."+(1==o?"":"end-")+"tag-open.xml",value:e.slice(0,o)},{type:"meta.tag.tag-name.xml",value:e.substr(o)}]},regex:"",onMatch:function(e,t,n){return t==n[0]&&n.shift(),2==e.length&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||"start",[{type:this.token,value:e}]},nextState:"jsx"},n,c("jsxAttributes"),{token:"entity.other.attribute-name.xml",regex:e},{token:"keyword.operator.attribute-equals.xml",regex:"="},{token:"text.tag-whitespace.xml",regex:"\\s+"},{token:"string.attribute-value.xml",regex:"'",stateName:"jsx_attr_q",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',stateName:"jsx_attr_qq",push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},t],this.$rules.reference=[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}]}function c(e){return[{token:"comment",regex:/\/\*/,next:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]},{token:"comment",regex:"\\/\\/",next:[i.getTagRule(),{token:"comment",regex:"$|^",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]}]}o.inherits(a,r),t.JavaScriptHighlightRules=a})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./javascript_highlight_rules").JavaScriptHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../worker/worker_client").WorkerClient,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,u=function(){this.HighlightRules=r,this.$outdent=new s,this.$behaviour=new l,this.foldingRules=new c};o.inherits(u,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.$quotes={'"':'"',"'":"'","`":"`"},this.$pairQuotesAfter={"`":/\w/},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),r=i.tokens,s=i.state;if(r.length&&"comment"==r[r.length-1].type)return o;if("start"==e||"no_regex"==e)(a=t.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/))&&(o+=n);else if("doc-start"==e){if("start"==s||"no_regex"==s)return"";var a;(a=t.match(/^\s*(\/?)\*/))&&(a[1]&&(o+=" "),o+="* ")}return o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",(function(t){e.setAnnotations(t.data)})),t.on("terminate",(function(){e.clearAnnotations()})),t},this.$id="ace/mode/javascript",this.snippetFileId="ace/snippets/javascript"}.call(u.prototype),t.Mode=u})),ace.require(["ace/mode/javascript"],(function(t){e&&(e.exports=t)}))},252:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"punctuation.operator",regex:/[,]/},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};o.inherits(r,i),t.JsonHighlightRules=r})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle","ace/worker/worker_client"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./json_highlight_rules").JsonHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("./folding/cstyle").FoldMode,l=e("../worker/worker_client").WorkerClient,c=function(){this.HighlightRules=r,this.$outdent=new s,this.$behaviour=this.$defaultBehaviour,this.foldingRules=new a};o.inherits(c,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t);return"start"==e&&t.match(/^.*[\{\(\[]\s*$/)&&(o+=n),o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new l(["ace"],"ace/mode/json_worker","JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",(function(t){e.setAnnotations(t.data)})),t.on("terminate",(function(){e.clearAnnotations()})),t},this.$id="ace/mode/json"}.call(c.prototype),t.Mode=c})),ace.require(["ace/mode/json"],(function(t){e&&(e.exports=t)}))},711:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@\\w+(?=\\s|$)"},r.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};o.inherits(r,i),r.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},r.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},r.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=r})),ace.define("ace/mode/jsx_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],(function(e,t,n){var o=e("../lib/oop"),i=e("../lib/lang"),r=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,a=function(){var e=i.arrayToMap("break|do|instanceof|typeof|case|else|new|var|catch|finally|return|void|continue|for|switch|default|while|function|this|if|throw|delete|in|try|class|extends|super|import|from|into|implements|interface|static|mixin|override|abstract|final|number|int|string|boolean|variant|log|assert".split("|")),t=i.arrayToMap("null|true|false|NaN|Infinity|__FILE__|__LINE__|undefined".split("|")),n=i.arrayToMap("debugger|with|const|export|let|private|public|yield|protected|extern|native|as|operator|__fake__|__readonly__".split("|")),o="[a-zA-Z_][a-zA-Z0-9_]*\\b";this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},r.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:["storage.type","text","entity.name.function"],regex:"(function)(\\s+)("+o+")"},{token:function(o){return"this"==o?"variable.language":"function"==o?"storage.type":e.hasOwnProperty(o)||n.hasOwnProperty(o)?"keyword":t.hasOwnProperty(o)?"constant.language":/^_?[A-Z][a-zA-Z0-9_]*$/.test(o)?"language.support.class":"identifier"},regex:o},{token:"keyword.operator",regex:"!|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({<]"},{token:"paren.rparen",regex:"[\\])}>]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]},this.embedRules(r,"doc-",[r.getEndRule("start")])};o.inherits(a,s),t.JsxHighlightRules=a})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/jsx",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/jsx_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./jsx_highlight_rules").JsxHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("./folding/cstyle").FoldMode;function l(){this.HighlightRules=r,this.$outdent=new s,this.$behaviour=this.$defaultBehaviour,this.foldingRules=new a}o.inherits(l,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;return i.length&&"comment"==i[i.length-1].type||"start"==e&&t.match(/^.*[\{\(\[]\s*$/)&&(o+=n),o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/jsx"}.call(l.prototype),t.Mode=l})),ace.require(["ace/mode/jsx"],(function(t){e&&(e.exports=t)}))},7:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/python_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){var e=this.createKeywordMapper({"invalid.deprecated":"debugger","support.function":"abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|binfile|bin|iter|property|tuple|bool|filter|len|range|type|bytearray|float|list|raw_input|unichr|callable|format|locals|reduce|unicode|chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|__import__|complex|hash|min|apply|delattr|help|next|setattr|set|buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern|ascii|breakpoint|bytes","variable.language":"self|cls","constant.language":"True|False|None|NotImplemented|Ellipsis|__debug__",keyword:"and|as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|raise|return|try|while|with|yield|async|await|nonlocal"},"identifier"),t="[uU]?",n="[rR]",o="[fF]",i="(?:[rR][fF]|[fF][rR])",r="(?:(?:(?:[1-9]\\d*)|(?:0))|(?:0[oO]?[0-7]+)|(?:0[xX][\\dA-Fa-f]+)|(?:0[bB][01]+))",s="(?:\\d+)",a="(?:(?:"+s+"?(?:\\.\\d+))|(?:"+s+"\\.))",l="(?:(?:(?:"+a+"|"+s+")(?:[eE][+-]?\\d+))|"+a+")",c="\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\abfnrtv'\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})";this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"string",regex:t+'"{3}',next:"qqstring3"},{token:"string",regex:t+'"(?=.)',next:"qqstring"},{token:"string",regex:t+"'{3}",next:"qstring3"},{token:"string",regex:t+"'(?=.)",next:"qstring"},{token:"string",regex:n+'"{3}',next:"rawqqstring3"},{token:"string",regex:n+'"(?=.)',next:"rawqqstring"},{token:"string",regex:n+"'{3}",next:"rawqstring3"},{token:"string",regex:n+"'(?=.)",next:"rawqstring"},{token:"string",regex:o+'"{3}',next:"fqqstring3"},{token:"string",regex:o+'"(?=.)',next:"fqqstring"},{token:"string",regex:o+"'{3}",next:"fqstring3"},{token:"string",regex:o+"'(?=.)",next:"fqstring"},{token:"string",regex:i+'"{3}',next:"rfqqstring3"},{token:"string",regex:i+'"(?=.)',next:"rfqqstring"},{token:"string",regex:i+"'{3}",next:"rfqstring3"},{token:"string",regex:i+"'(?=.)",next:"rfqstring"},{token:"keyword.operator",regex:"\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|%|@|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|="},{token:"punctuation",regex:",|:|;|\\->|\\+=|\\-=|\\*=|\\/=|\\/\\/=|%=|@=|&=|\\|=|^=|>>=|<<=|\\*\\*="},{token:"paren.lparen",regex:"[\\[\\(\\{]"},{token:"paren.rparen",regex:"[\\]\\)\\}]"},{token:["keyword","text","entity.name.function"],regex:"(def|class)(\\s+)([\\u00BF-\\u1FFF\\u2C00-\\uD7FF\\w]+)"},{token:"text",regex:"\\s+"},{include:"constants"}],qqstring3:[{token:"constant.language.escape",regex:c},{token:"string",regex:'"{3}',next:"start"},{defaultToken:"string"}],qstring3:[{token:"constant.language.escape",regex:c},{token:"string",regex:"'{3}",next:"start"},{defaultToken:"string"}],qqstring:[{token:"constant.language.escape",regex:c},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:c},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"start"},{defaultToken:"string"}],rawqqstring3:[{token:"string",regex:'"{3}',next:"start"},{defaultToken:"string"}],rawqstring3:[{token:"string",regex:"'{3}",next:"start"},{defaultToken:"string"}],rawqqstring:[{token:"string",regex:"\\\\$",next:"rawqqstring"},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],rawqstring:[{token:"string",regex:"\\\\$",next:"rawqstring"},{token:"string",regex:"'|$",next:"start"},{defaultToken:"string"}],fqqstring3:[{token:"constant.language.escape",regex:c},{token:"string",regex:'"{3}',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqstring3:[{token:"constant.language.escape",regex:c},{token:"string",regex:"'{3}",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqqstring:[{token:"constant.language.escape",regex:c},{token:"string",regex:"\\\\$",next:"fqqstring"},{token:"string",regex:'"|$',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqstring:[{token:"constant.language.escape",regex:c},{token:"string",regex:"'|$",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqqstring3:[{token:"string",regex:'"{3}',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqstring3:[{token:"string",regex:"'{3}",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqqstring:[{token:"string",regex:"\\\\$",next:"rfqqstring"},{token:"string",regex:'"|$',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqstring:[{token:"string",regex:"'|$",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqstringParRules:[{token:"paren.lparen",regex:"[\\[\\(]"},{token:"paren.rparen",regex:"[\\]\\)]"},{token:"string",regex:"\\s+"},{token:"string",regex:"'[^']*'"},{token:"string",regex:'"[^"]*"'},{token:"function.support",regex:"(!s|!r|!a)"},{include:"constants"},{token:"paren.rparen",regex:"}",next:"pop"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"}],constants:[{token:"constant.numeric",regex:"(?:"+l+"|\\d+)[jJ]\\b"},{token:"constant.numeric",regex:l},{token:"constant.numeric",regex:r+"[lL]\\b"},{token:"constant.numeric",regex:r+"\\b"},{token:["punctuation","function.support"],regex:"(\\.)([a-zA-Z_]+)\\b"},{token:e,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"}]},this.normalizeRules()};o.inherits(r,i),t.PythonHighlightRules=r})),ace.define("ace/mode/folding/pythonic",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("./fold_mode").FoldMode,r=t.FoldMode=function(e){this.foldingStartMarker=new RegExp("([\\[{])(?:\\s*)$|("+e+")(?:\\s*)(?:#.*)?$")};o.inherits(r,i),function(){this.getFoldWidgetRange=function(e,t,n){var o=e.getLine(n).match(this.foldingStartMarker);if(o)return o[1]?this.openingBracketBlock(e,o[1],n,o.index):o[2]?this.indentationBlock(e,n,o.index+o[2].length):this.indentationBlock(e,n)}}.call(r.prototype)})),ace.define("ace/mode/python",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/python_highlight_rules","ace/mode/folding/pythonic","ace/range"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./python_highlight_rules").PythonHighlightRules,s=e("./folding/pythonic").FoldMode,a=e("../range").Range,l=function(){this.HighlightRules=r,this.foldingRules=new s("\\:"),this.$behaviour=this.$defaultBehaviour};o.inherits(l,i),function(){this.lineCommentStart="#",this.$pairQuotesAfter={"'":/[ruf]/i,'"':/[ruf]/i},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;return i.length&&"comment"==i[i.length-1].type||"start"==e&&t.match(/^.*[\{\(\[:]\s*$/)&&(o+=n),o};var e={pass:1,return:1,raise:1,break:1,continue:1};this.checkOutdent=function(t,n,o){if("\r\n"!==o&&"\r"!==o&&"\n"!==o)return!1;var i=this.getTokenizer().getLineTokens(n.trim(),t).tokens;if(!i)return!1;do{var r=i.pop()}while(r&&("comment"==r.type||"text"==r.type&&r.value.match(/^\s+$/)));return!!r&&"keyword"==r.type&&e[r.value]},this.autoOutdent=function(e,t,n){n+=1;var o=this.$getIndent(t.getLine(n)),i=t.getTabString();o.slice(-i.length)==i&&t.remove(new a(n,o.length-i.length,n,o.length))},this.$id="ace/mode/python",this.snippetFileId="ace/snippets/python"}.call(l.prototype),t.Mode=l})),ace.require(["ace/mode/python"],(function(t){e&&(e.exports=t)}))},202:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(e){var t="[_:a-zA-ZÀ-￿][-_:.a-zA-Z0-9À-￿]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+t+")",next:"processing_instruction"},{token:"comment.start.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"",next:"start"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+t+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.end.xml",regex:"--\x3e",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:t},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===r&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(<)("+n+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:t+"start"}]}),this.$rules[n+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(|$))",next:n+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(i.prototype),o.inherits(r,i),t.XmlHighlightRules=r})),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../behaviour").Behaviour,r=e("../../token_iterator").TokenIterator;function s(e,t){return e&&e.type.lastIndexOf(t+".xml")>-1}e("../../lib/lang");var a=function(){this.add("string_dquotes","insertion",(function(e,t,n,o,i){if('"'==i||"'"==i){var a=i,l=o.doc.getTextRange(n.getSelectionRange());if(""!==l&&"'"!==l&&'"'!=l&&n.getWrapBehavioursEnabled())return{text:a+l+a,selection:!1};var c=n.getCursorPosition(),u=o.doc.getLine(c.row).substring(c.column,c.column+1),h=new r(o,c.row,c.column),d=h.getCurrentToken();if(u==a&&(s(d,"attribute-value")||s(d,"string")))return{text:"",selection:[1,1]};if(d||(d=h.stepBackward()),!d)return;for(;s(d,"tag-whitespace")||s(d,"whitespace");)d=h.stepBackward();var p=!u||u.match(/\s/);if(s(d,"attribute-equals")&&(p||">"==u)||s(d,"decl-attribute-equals")&&(p||"?"==u))return{text:a+a,selection:[1,1]}}})),this.add("string_dquotes","deletion",(function(e,t,n,o,i){var r=o.doc.getTextRange(i);if(!i.isMultiLine()&&('"'==r||"'"==r)&&o.doc.getLine(i.start.row).substring(i.start.column+1,i.start.column+2)==r)return i.end.column++,i})),this.add("autoclosing","insertion",(function(e,t,n,o,i){if(">"==i){var a=n.getSelectionRange().start,l=new r(o,a.row,a.column),c=l.getCurrentToken()||l.stepBackward();if(!c||!(s(c,"tag-name")||s(c,"tag-whitespace")||s(c,"attribute-name")||s(c,"attribute-equals")||s(c,"attribute-value")))return;if(s(c,"reference.attribute-value"))return;if(s(c,"attribute-value")){var u=l.getCurrentTokenColumn()+c.value.length;if(a.column/.test(o.getLine(a.row).slice(a.column)))return;for(;!s(c,"tag-name");)if("<"==(c=l.stepBackward()).value){c=l.stepForward();break}var d=l.getCurrentTokenRow(),p=l.getCurrentTokenColumn();if(s(l.stepBackward(),"end-tag-open"))return;var g=c.value;if(d==a.row&&(g=g.substring(0,a.column-p)),this.voidElements.hasOwnProperty(g.toLowerCase()))return;return{text:">",selection:[1,1]}}})),this.add("autoindent","insertion",(function(e,t,n,o,i){if("\n"==i){var s=n.getCursorPosition(),a=o.getLine(s.row),l=new r(o,s.row,s.column),c=l.getCurrentToken();if(c&&-1!==c.type.indexOf("tag-close")){if("/>"==c.value)return;for(;c&&-1===c.type.indexOf("tag-name");)c=l.stepBackward();if(!c)return;var u=c.value,h=l.getCurrentTokenRow();if(!(c=l.stepBackward())||-1!==c.type.indexOf("end-tag"))return;if(this.voidElements&&!this.voidElements[u]){var d=o.getTokenAt(s.row,s.column+1),p=(a=o.getLine(h),this.$getIndent(a)),g=p+o.getTabString();return d&&"-1}(function(){this.getFoldWidget=function(e,t,n){var o=this._getFirstTagInLine(e,n);return o?o.closing||!o.tagName&&o.selfClosing?"markbeginend"===t?"end":"":!o.tagName||o.selfClosing||this.voidElements.hasOwnProperty(o.tagName.toLowerCase())||this._findEndTagInLine(e,n,o.tagName,o.end.column)?"":"start":this.getCommentFoldWidget(e,n)},this.getCommentFoldWidget=function(e,t){return/comment/.test(e.getState(t))&&/"==r.value;break}return o}if(l(r,"tag-close"))return o.selfClosing="/>"==r.value,o;o.start.column+=r.value.length}return null},this._findEndTagInLine=function(e,t,n,o){for(var i=e.getTokens(t),r=0,s=0;s{e=n.nmd(e),ace.define("ace/theme/github-css",["require","exports","module"],(function(e,t,n){n.exports='/* CSS style content from github\'s default pygments highlighter template.\n Cursor and selection styles from textmate.css. */\n.ace-github .ace_gutter {\n background: #e8e8e8;\n color: #AAA;\n}\n\n.ace-github {\n background: #fff;\n color: #000;\n}\n\n.ace-github .ace_keyword {\n font-weight: bold;\n}\n\n.ace-github .ace_string {\n color: #D14;\n}\n\n.ace-github .ace_variable.ace_class {\n color: teal;\n}\n\n.ace-github .ace_constant.ace_numeric {\n color: #099;\n}\n\n.ace-github .ace_constant.ace_buildin {\n color: #0086B3;\n}\n\n.ace-github .ace_support.ace_function {\n color: #0086B3;\n}\n\n.ace-github .ace_comment {\n color: #998;\n font-style: italic;\n}\n\n.ace-github .ace_variable.ace_language {\n color: #0086B3;\n}\n\n.ace-github .ace_paren {\n font-weight: bold;\n}\n\n.ace-github .ace_boolean {\n font-weight: bold;\n}\n\n.ace-github .ace_string.ace_regexp {\n color: #009926;\n font-weight: normal;\n}\n\n.ace-github .ace_variable.ace_instance {\n color: teal;\n}\n\n.ace-github .ace_constant.ace_language {\n font-weight: bold;\n}\n\n.ace-github .ace_cursor {\n color: black;\n}\n\n.ace-github.ace_focus .ace_marker-layer .ace_active-line {\n background: rgb(255, 255, 204);\n}\n.ace-github .ace_marker-layer .ace_active-line {\n background: rgb(245, 245, 245);\n}\n\n.ace-github .ace_marker-layer .ace_selection {\n background: rgb(181, 213, 255);\n}\n\n.ace-github.ace_multiselect .ace_selection.ace_start {\n box-shadow: 0 0 3px 0px white;\n}\n/* bold keywords cause cursor issues for some fonts */\n/* this disables bold style for editor and keeps for static highlighter */\n.ace-github.ace_nobold .ace_line > span {\n font-weight: normal !important;\n}\n\n.ace-github .ace_marker-layer .ace_step {\n background: rgb(252, 255, 0);\n}\n\n.ace-github .ace_marker-layer .ace_stack {\n background: rgb(164, 229, 101);\n}\n\n.ace-github .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-github .ace_gutter-active-line {\n background-color : rgba(0, 0, 0, 0.07);\n}\n\n.ace-github .ace_marker-layer .ace_selected-word {\n background: rgb(250, 250, 255);\n border: 1px solid rgb(200, 200, 250);\n}\n\n.ace-github .ace_invisible {\n color: #BFBFBF\n}\n\n.ace-github .ace_print-margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-github .ace_indent-guide {\n background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;\n}\n\n.ace-github .ace_indent-guide-active {\n background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC") right repeat-y;\n}\n'})),ace.define("ace/theme/github",["require","exports","module","ace/theme/github-css","ace/lib/dom"],(function(e,t,n){t.isDark=!1,t.cssClass="ace-github",t.cssText=e("./github-css"),e("../lib/dom").importCssString(t.cssText,t.cssClass,!1)})),ace.require(["ace/theme/github"],(function(t){e&&(e.exports=t)}))},745:(e,t,n)=>{"use strict";var o=n(137);t.s=o.createRoot,o.hydrateRoot},590:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,o="function"==typeof Set,i="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function r(e,s){if(e===s)return!0;if(e&&s&&"object"==typeof e&&"object"==typeof s){if(e.constructor!==s.constructor)return!1;var a,l,c,u;if(Array.isArray(e)){if((a=e.length)!=s.length)return!1;for(l=a;0!=l--;)if(!r(e[l],s[l]))return!1;return!0}if(n&&e instanceof Map&&s instanceof Map){if(e.size!==s.size)return!1;for(u=e.entries();!(l=u.next()).done;)if(!s.has(l.value[0]))return!1;for(u=e.entries();!(l=u.next()).done;)if(!r(l.value[1],s.get(l.value[0])))return!1;return!0}if(o&&e instanceof Set&&s instanceof Set){if(e.size!==s.size)return!1;for(u=e.entries();!(l=u.next()).done;)if(!s.has(l.value[0]))return!1;return!0}if(i&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(s)){if((a=e.length)!=s.length)return!1;for(l=a;0!=l--;)if(e[l]!==s[l])return!1;return!0}if(e.constructor===RegExp)return e.source===s.source&&e.flags===s.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof s.valueOf)return e.valueOf()===s.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof s.toString)return e.toString()===s.toString();if((a=(c=Object.keys(e)).length)!==Object.keys(s).length)return!1;for(l=a;0!=l--;)if(!Object.prototype.hasOwnProperty.call(s,c[l]))return!1;if(t&&e instanceof Element)return!1;for(l=a;0!=l--;)if(("_owner"!==c[l]&&"__v"!==c[l]&&"__o"!==c[l]||!e.$$typeof)&&!r(e[c[l]],s[c[l]]))return!1;return!0}return e!=e&&s!=s}e.exports=function(e,t){try{return r(e,t)}catch(e){if((e.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw e}}},137:e=>{"use strict";e.exports=require("react-dom")}},t={};function n(o){var i=t[o];if(void 0!==i)return i.exports;var r=t[o]={id:o,loaded:!1,exports:{}};return e[o](r,r.exports,n),r.loaded=!0,r.exports}n.amdD=function(){throw new Error("define cannot be used indirect")},n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),n.p="";var o={};(()=>{"use strict";n.r(o),n.d(o,{Accordion:()=>D,Button:()=>U,ButtonGroup:()=>K,Card:()=>he,Chart:()=>Te,Checkbox:()=>Io,CodeEditor:()=>gr,Collapsible:()=>R,Column:()=>li,Combobox:()=>Sr,Combobox2:()=>Wr,Confirm:()=>St,CopyToClipboard:()=>ut,DatePicker:()=>Zr,Dropdown:()=>Oi,Dropdown2:()=>Zi,EditableList:()=>ha,EditableList2:()=>Na,FieldCodeEditor:()=>ru,FieldCombobox:()=>gu,FieldCombobox2:()=>ju,FieldDatePicker:()=>Xu,FieldDropdown:()=>Cu,FieldEditableList:()=>sh,FieldFileInput:()=>fh,FieldInput:()=>Eh,FieldMultiselect:()=>Ih,FieldPagination:()=>Ru,FieldSelect:()=>Uh,FieldSelectableList:()=>ed,FieldToggle:()=>cd,FileInput:()=>za,FixedWrapper:()=>Ot,FloatingContainer:()=>Pt,FormikCheckbox:()=>Nc,FormikCodeEditor:()=>Ic,FormikCombobox:()=>Pc,FormikCombobox2:()=>Dc,FormikDatePicker:()=>Fc,FormikEditableList:()=>Bc,FormikEditableList2:()=>Wc,FormikFileInput:()=>Hc,FormikInput:()=>jc,FormikInput2:()=>zc,FormikMultiselect:()=>Vc,FormikRadio:()=>Uc,FormikSelect:()=>Gc,FormikSelectableList:()=>Kc,FormikTextarea:()=>qc,FormikToggle:()=>Yc,FormikWrapper:()=>Rc,Icon:()=>g,InfiniteScroller:()=>At,InfoNote:()=>Ft,Input:()=>Qa,Input2:()=>ll,List:()=>jt,Loader:()=>ye,Message:()=>be,Modal:()=>Ct,Multiselect:()=>Cl,NavBar:()=>Vt,Navigation:()=>qt,Pagination:()=>po,Panel:()=>pn,Pill:()=>mn,Radio:()=>Rl,RevealPanel:()=>Nn,Row:()=>yi,Select:()=>jl,SelectableList:()=>Xl,Table:()=>ti,Tabs:()=>eo,TextEllipsis:()=>uo,Textarea:()=>rc,Toggle:()=>bc,Tooltip:()=>lo,setConfig:()=>xc,toast:()=>ot,useComponentSize:()=>C,useEventListener:()=>$,useInterval:()=>ud,usePrevious:()=>me,useTimeout:()=>_e});const e=require("react");var t=n.n(e);const i=require("prop-types");var r=n.n(i);const s=(0,e.createContext)(),a=(0,e.createContext)();var l=Object.defineProperty,c=Object.getOwnPropertySymbols,u=Object.prototype.hasOwnProperty,h=Object.prototype.propertyIsEnumerable,d=(e,t,n)=>t in e?l(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function p(e){var n=e,{className:o,family:i,type:r}=n,s=((e,t)=>{var n={};for(var o in e)u.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&c)for(var o of c(e))t.indexOf(o)<0&&h.call(e,o)&&(n[o]=e[o]);return n})(n,["className","family","type"]);return t().createElement("i",((e,t)=>{for(var n in t||(t={}))u.call(t,n)&&d(e,n,t[n]);if(c)for(var n of c(t))h.call(t,n)&&d(e,n,t[n]);return e})({className:function(){const e=i||"fa";return["tyk-icon",e,`${e}-${r}`,o].filter(Boolean).join(" ")}()},s))}p.propTypes={className:r().string,family:r().string,type:r().string.isRequired};const g=p;function m({wrap:n}){const{collapsed:o,disabled:i,toggleChange:r}=(0,e.useContext)(a),s=o?"chevron-down":"chevron-up",l=["tyk-accordion__trigger",i&&"tyk-accordion__trigger--disabled"].filter(Boolean).join(" "),c=t().createElement("button",{className:l,onClick:r,type:"button","aria-label":"collapse/expand"},t().createElement(g,{className:"collapsable__arrow",type:s}));return n?t().createElement("div",{className:"tyk-accordion__trigger-wrapper"},c):c}m.propTypes={wrap:r().bool};const f=m;function y({collapsed:n,children:o,className:i,disabled:r},l){const{arrow:c}=(0,e.useContext)(s),[u,h]=(0,e.useState)(n),d=()=>{r||h(!u)},p=(0,e.useMemo)((()=>["tyk-accordion__item",c.expandToContent?`tyk-accordion__item--trigger-position-${c.position}`:"tyk-accordion__item--trigger-in-header",i,!1===u&&"tyk-accordion__item--active"].filter(Boolean).join(" ")),[c,i,u]),g=(0,e.useMemo)((()=>({collapsed:u,disabled:r,toggleChange:d})),[u,r,d]);return t().createElement("div",{ref:l,className:p},t().createElement(a.Provider,{value:g},c.expandToContent&&t().createElement(f,{wrap:!0}),o))}y.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),collapsed:r().bool,className:r().string,disabled:r().bool},y.defaultProps={collapsed:!1};const v=(0,e.forwardRef)(y);function b({className:n,children:o}){const{collapsed:i,disabled:r,toggleChange:l}=(0,e.useContext)(a),{usearrowastrigger:c,arrow:u}=(0,e.useContext)(s),h=i?"chevron-down":"chevron-up",d=["tyk-accordion__item-header",c&&"tyk-accordion__arrow-trigger",n].filter(Boolean).join(" ");return t().createElement("div",{className:d},c?t().createElement(t().Fragment,null,!u.expandToContent&&"left"===u.position&&t().createElement(f,null),t().createElement("div",null,o),!u.expandToContent&&"right"===u.position&&t().createElement(f,null)):t().createElement("button",{className:r?"tyk-accordion__trigger--disabled":"",onClick:l,type:"button"},t().createElement("span",null,o),t().createElement(g,{className:"collapsable__arrow",type:h})))}b.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string};const w=b,x=require("react-transition-group"),k=e=>e?{width:e.offsetWidth,height:e.offsetHeight}:{width:0,height:0},C=t=>{const[n,o]=(0,e.useState)(k(t?t.current:{})),i=(0,e.useCallback)((()=>{t.current&&o(k(t.current))}),[t]);return(0,e.useLayoutEffect)((()=>{i();let e=new ResizeObserver((()=>{i()}));return e.observe(t.current),()=>{e.disconnect(t.current),e=null}}),[t.current]),n},$=(t,n,o)=>{const i=(0,e.useRef)();(0,e.useEffect)((()=>{i.current=n}),[n]),(0,e.useEffect)((()=>{if(!(null==o?void 0:o.addEventListener))return;const e=e=>i.current(e);return o.addEventListener(t,e),()=>{o.removeEventListener(t,e)}}),[t,o])};var S=Object.defineProperty,E=Object.defineProperties,O=Object.getOwnPropertyDescriptors,T=Object.getOwnPropertySymbols,A=Object.prototype.hasOwnProperty,_=Object.prototype.propertyIsEnumerable,L=(e,t,n)=>t in e?S(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function M(n){var o=n,{className:i,collapsed:r,children:s}=o,a=((e,t)=>{var n={};for(var o in e)A.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&T)for(var o of T(e))t.indexOf(o)<0&&_.call(e,o)&&(n[o]=e[o]);return n})(o,["className","collapsed","children"]);const l=(0,e.useRef)(null),c=(0,e.useRef)(null),u=C(l),[h,d]=(0,e.useState)({height:r?0:"auto"}),p=e=>{d({height:`${e}px`})},g=()=>l.current?l.current.clientHeight:0;(0,e.useEffect)((()=>{!r&&(null==u?void 0:u.height)&&h.height!==(null==u?void 0:u.height)&&p(u.height)}),[u.height]);const m=(0,e.useCallback)((()=>{!r&&l.current&&(p(g()),c.current.style.height=`${g()}px`)}),[r,l.current]);return $("resize",m,window),t().createElement(x.CSSTransition,{onEnter:()=>{p(g())},onExit:()=>{p(0)},in:!r,timeout:0,classNames:"collapse"},t().createElement("div",{className:"collapse-wrapper",ref:c,style:h},t().createElement("div",(f=((e,t)=>{for(var n in t||(t={}))A.call(t,n)&&L(e,n,t[n]);if(T)for(var n of T(t))_.call(t,n)&&L(e,n,t[n]);return e})({},a),E(f,O({className:i,ref:l}))),s)));var f}M.propTypes={children:r().oneOfType([r().element,r().node,r().string]),collapsed:r().bool,className:r().string};const R=M;function N({children:n,className:o}){const{collapsed:i}=(0,e.useContext)(a),r=["tyk-accordion__item-content",o].filter(Boolean).join(" ");return t().createElement("div",{className:r},t().createElement(R,{collapsed:i},n))}N.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string};const I=N;function P({className:n,children:o,usearrowastrigger:i,arrow:r={position:"right",expandToContent:!1}}){const a=["tyk-accordion",n].filter(Boolean).join(" "),l=(0,e.useMemo)((()=>({usearrowastrigger:i,arrow:r})),[i,r]);return t().createElement("div",{className:a},t().createElement(s.Provider,{value:l},o))}P.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,usearrowastrigger:r().bool,arrow:r().shape({position:r().oneOf(["left","right"]),expandToContent:r().bool})},P.defaultProps={usearrowastrigger:!1},P.Item=v,P.Item.Header=w,P.Item.Content=I;const D=P;var F=Object.defineProperty,B=Object.getOwnPropertySymbols,W=Object.prototype.hasOwnProperty,H=Object.prototype.propertyIsEnumerable,j=(e,t,n)=>t in e?F(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,z=(e,t)=>{for(var n in t||(t={}))W.call(t,n)&&j(e,n,t[n]);if(B)for(var n of B(t))H.call(t,n)&&j(e,n,t[n]);return e};function V(n,o){const i=n,{customButton:r,children:s,iconType:a,iconFamily:l,iconPosition:c,iconOnly:u,id:h,className:d,disabled:p,display:m,href:f,onClick:y,noStyle:v,size:b,theme:w,type:x}=i,k=((e,t)=>{var n={};for(var o in e)W.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&B)for(var o of B(e))t.indexOf(o)<0&&H.call(e,o)&&(n[o]=e[o]);return n})(i,["customButton","children","iconType","iconFamily","iconPosition","iconOnly","id","className","disabled","display","href","onClick","noStyle","size","theme","type"]),C=()=>{const e=["tyk-button"].concat(d?d.split(" "):[]),t=b?`tyk-button--${b}`:"tyk-button--md",n=p?"disabled":"",o=m||"",i=w?`tyk-button--${w}`:"",r=u?"tyk-button--icon-only":"",s=v?"tyk-button--no-style":"";return e.push(r),e.push(i),e.push(t),e.push(n),e.push(o),e.push(s),a&&e.push(`icon-${c||"left"}`),e.join(" ")},$=e=>a&&(c||"left")===e?t().createElement(g,{family:l,type:a}):null;return(()=>{let n;return r?t().createElement(t().Fragment,null,(0,e.cloneElement)(r,{className:C(),disabled:p})):(n=f?t().createElement("a",z({id:h,className:C(),disabled:p,onClick:y,href:f,ref:o},k),$("left"),s,$("right")):t().createElement("button",z({id:h,className:C(),disabled:p,onClick:y,type:x||"button",ref:o},k),$("left"),s&&t().createElement("span",null,s),$("right")),n)})()}V.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),customButton:r().oneOfType([r().arrayOf(r().node),r().node,r().element]),className:r().string,display:r().string,disabled:r().bool,id:r().string,href:r().string,iconPosition:r().string,iconFamily:r().string,iconOnly:r().bool,iconType:r().string,noStyle:r().bool,onClick:r().func,theme:r().string,type:r().string,size:r().string},V.defaultProps={theme:"",type:"button"};const U=(0,e.forwardRef)(V);function G({className:e,children:n,label:o},i){return t().createElement("div",{ref:i,className:`tyk-button-group__wrapper ${e}`},Boolean(o)&&t().createElement("label",null,o),t().createElement("div",{className:"tyk-button-group"},n))}G.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string.isRequired,label:r().string.isRequired};const K=(0,e.forwardRef)(G);function q({right:e=null,children:n}){return t().createElement("div",{className:"tyk-card__header"},n&&t().createElement("div",{className:"tyk-card__header-content"},n),e&&t().createElement("div",{className:"tyk-card__header-right"},e))}q.propTypes={right:r().oneOfType([r().element,r().node,r().string]),children:r().oneOfType([r().element,r().node,r().string])};const Y=q;function J({align:e="top",children:n}){return t().createElement("div",{className:`tyk-card__body tyk-card__body--align-${e}`},t().createElement("div",null,n))}J.propTypes={align:r().oneOf(["top","center","bottom"]),children:r().oneOfType([r().element,r().node,r().string])};const X=J;function Q({children:e}){return t().createElement("div",{className:"tyk-card__footer"},e)}Q.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const Z=Q;function ee({maxLines:e=1,children:n}){return t().createElement("h4",{className:`tyk-card__title tyk-card__title--max-${e}-lines`},n)}ee.propTypes={maxLines:r().number,children:r().oneOfType([r().element,r().node,r().string])};const te=ee;function ne({children:e}){return t().createElement("div",{className:"tyk-card__title-group"},e)}ne.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const oe=ne;function ie({children:e}){return t().createElement("h5",{className:"tyk-card__sub-title"},e)}ie.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const re=ie;function se({maxLines:e=2,children:n}){return t().createElement("p",{className:`tyk-card__summary tyk-card__summary--max-${e}-lines`},n)}se.propTypes={maxLines:r().number,children:r().oneOfType([r().element,r().node,r().string])};const ae=se;function le({children:e}){return t().createElement("div",{className:"tyk-card__title-icon"},e)}le.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const ce=le;function ue({className:e="",height:n="auto",children:o}){return t().createElement("div",{style:{height:n},className:`tyk-card ${e}`},o)}ue.propTypes={className:r().string,height:r().oneOfType([r().number,r().string]),children:r().oneOfType([r().element,r().node,r().string])},ue.Header=Y,ue.Body=X,ue.Footer=Z,ue.Title=te,ue.TitleGroup=oe,ue.Icon=ce,ue.SubTitle=re,ue.Summary=ae;const he=ue,de=require("echarts"),pe=require("immutable"),ge=(e,t,n)=>{let o;return function(...i){const r=this,s=n&&!o;clearTimeout(o),o=setTimeout((()=>{o=null,n||e.apply(r,i)}),t),s&&e.apply(r,i)}},me=t=>{const n=(0,e.useRef)();return(0,e.useEffect)((()=>{n.current=t}),[t]),n.current};function fe({className:e,position:n="relative",withbackground:o=!1}){const i=["loading",n,e].filter(Boolean).join(" "),r=t().createElement("div",{className:i},t().createElement("div",{className:"loading-bar"}),t().createElement("div",{className:"loading-bar"}),t().createElement("div",{className:"loading-bar"}),t().createElement("div",{className:"loading-bar"}));return o?t().createElement("div",{className:"tyk-loading__wrapper"},r):r}fe.propTypes={className:r().string,position:r().string,withbackground:r().bool};const ye=fe;function ve({children:e,theme:n,onClose:o,noMargin:i,className:r}){const s="success"===n?"check":"warning";return t().createElement("div",{className:["tyk-message",`tyk-message--${n||"info"}`,i&&"no-margin",r].filter(Boolean).join(" ")},t().createElement(g,{family:"tykon",type:s}),t().createElement("div",{className:"tyk-message__content"},e),o&&t().createElement(g,{family:"tykon",type:"x",onClick:o}))}ve.propTypes={theme:r().string,children:r().oneOfType([r().element,r().node,r().string]),className:r().string,noMargin:r().bool,onClose:r().func};const be=ve,we=JSON.parse('{"type":"FeatureCollection","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:OGC:1.3:CRS84"}},"features":[{"geometry":{"type":"Polygon","coordinates":[[[47.97822265625001,7.9970703125],[46.97822265625001,7.9970703125],[43.98378906250002,9.008837890624989],[43.482519531250006,9.379492187499991],[43.181640625,9.879980468749991],[42.84160156250002,10.203076171874997],[42.65644531250001,10.6],[42.92275390625002,10.999316406249989],[43.24599609375002,11.499804687499989],[43.85273437500001,10.784277343749991],[44.38652343750002,10.430224609374989],[44.94296875,10.43671875],[45.81669921875002,10.835888671874997],[46.565039062500006,10.745996093749994],[47.40498046875001,11.174023437499997],[48.01923828125001,11.139355468749997],[48.57255859375002,11.320507812499997],[48.938574218750006,11.258447265624994],[50.11005859375001,11.529296875],[50.79228515625002,11.983691406249989],[51.2548828125,11.830712890624994],[51.08427734375002,11.335644531249997],[51.140625,10.656884765624994],[51.031835937500006,10.444775390624997],[51.19296875,10.554638671874997],[51.390234375,10.422607421875],[50.93007812500002,10.33554687499999],[50.825,9.428173828124997],[50.10283203125002,8.199804687499991],[49.85205078125,7.962548828124994],[49.234960937500006,6.77734375],[49.04931640625,6.173632812499989],[47.97529296875001,4.497021484374997],[46.87880859375002,3.28564453125],[46.05117187500002,2.475146484374989],[44.92021484375002,1.81015625],[43.71757812500002,0.857861328124997],[41.97988281250002,-0.973046875],[41.53271484375,-1.6953125],[41.521875,-1.572265625],[41.42695312500001,-1.449511718750003],[41.24980468750002,-1.220507812500003],[40.97871093750001,-0.870312500000011],[40.964453125,2.814648437499997],[41.341796875,3.20166015625],[41.61347656250001,3.590478515624994],[41.88398437500001,3.977734375],[41.91533203125002,4.031298828124989],[42.02412109375001,4.137939453125],[42.85664062500001,4.32421875],[43.12568359375001,4.644482421874997],[43.58349609375,4.85498046875],[43.988867187500006,4.950537109374991],[44.940527343750006,4.912011718749994],[47.97822265625001,7.9970703125]]]},"properties":{"name":"Somalia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[9.579979133936737,47.05856388629306],[9.409458596647225,47.02019676540292],[9.46249431093294,47.09010747968864],[9.46249431093294,47.19858962254578],[9.527658197470123,47.27026989773668],[9.579979133936737,47.05856388629306]]]},"properties":{"name":"Liechtenstein","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-8.683349609375,27.77800740805682],[-13.038761787013554,27.81190166624856],[-12.948925781249926,27.914160156250034],[-11.552685546874955,28.31010742187496],[-10.486474609374994,29.06494140625],[-10.200585937499994,29.380371093750057],[-9.667089843749949,30.10927734375005],[-9.652929687499977,30.447558593750045],[-9.875488281249943,30.717919921874966],[-9.80869140624992,31.42460937499996],[-9.347460937499932,32.086376953124955],[-9.245849609375,32.572460937499955],[-8.512841796874994,33.25244140625003],[-6.900976562499949,33.96904296874999],[-6.353125,34.77607421875001],[-5.924804687499943,35.78579101562502],[-5.277832031249943,35.90273437500002],[-5.252685546874972,35.61474609374997],[-4.628320312499966,35.206396484375006],[-4.329980468749937,35.161474609375006],[-3.693261718749994,35.27998046874998],[-3.394726562499926,35.21181640625005],[-2.972216796874989,35.40727539062499],[-2.839941406249949,35.127832031249994],[-2.731396484374955,35.13520507812498],[-2.636816406249977,35.11269531250002],[-2.423730468749994,35.12348632812498],[-2.219628906249966,35.10419921874998],[-1.795605468749926,34.751904296874955],[-1.67919921875,33.31865234375002],[-1.550732421874955,33.073583984375006],[-1.510009765625,32.877636718749955],[-1.45,32.784814453124966],[-1.352148437499977,32.70336914062497],[-1.29638671875,32.67568359375002],[-1.188232421875,32.608496093750006],[-1.111035156249983,32.55229492187502],[-1.065527343749949,32.46831054687496],[-1.16259765625,32.399169921875],[-1.275341796874983,32.089013671874966],[-2.863427734374937,32.07470703124997],[-2.930859374999926,32.04252929687499],[-2.988232421874983,31.874218749999983],[-3.01738281249996,31.834277343750017],[-3.439794921874949,31.704541015624983],[-3.604589843749949,31.686767578125],[-3.700244140624989,31.70009765625005],[-3.768164062499977,31.689550781250034],[-3.837109374999983,31.512353515624994],[-3.833398437499937,31.197802734375045],[-3.626904296874955,31.000927734374983],[-4.148779296874977,30.8095703125],[-4.322851562500006,30.698876953124994],[-4.52915039062492,30.62553710937499],[-4.778515624999926,30.552392578124994],[-4.968261718749943,30.465380859375045],[-5.061914062499937,30.326416015625057],[-5.180126953124955,30.166162109374994],[-5.293652343749983,30.058642578125045],[-5.44877929687496,29.956933593750023],[-6.00429687499999,29.83125],[-6.479736328124943,29.82036132812499],[-6.520556640624989,29.659863281249983],[-6.59775390624992,29.578955078125006],[-6.635351562499949,29.568798828124983],[-6.755126953125,29.583837890625034],[-6.855566406249949,29.601611328125017],[-7.142431640624949,29.61958007812504],[-7.427685546874983,29.425],[-7.485742187499994,29.392236328124994],[-8.659912109375,28.718603515625063],[-8.683349609375,27.900390625],[-8.683349609375,27.77800740805682]]]},"properties":{"name":"Morocco","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-13.038761787013554,27.81190166624856],[-8.683349609375,27.77800740805682],[-8.683349609375,27.65644531250004],[-8.817822265624955,27.65644531250004],[-8.817822265624951,27.656445312499997],[-8.683349609375,27.656445312499997],[-8.683349609375,27.2859375],[-8.682861328125,26.921337890624997],[-8.6826171875,26.72314453125],[-8.682324218749983,26.497705078124994],[-8.68212890625,26.273193359375],[-8.68212890625,26.10947265625],[-8.682226562499977,25.995507812499994],[-12.016308593749983,25.995410156250003],[-12.016308593749983,25.740136718749994],[-12.016308593749983,25.331689453124994],[-12.016308593749983,25.059375],[-12.016308593749983,24.923242187499994],[-12.016308593749983,24.378662109375],[-12.016308593749983,23.97021484375],[-12.0234375,23.467578125],[-12.372900390624977,23.318017578124994],[-12.559375,23.290820312500003],[-12.620410156249989,23.27133789062499],[-13.031494140625,23.000244140625],[-13.153271484374983,22.820507812499997],[-13.12702845982141,22.703770926339278],[-13.136540684091575,22.708182548616723],[-13.094335937499977,22.495996093749994],[-13.051220703124983,21.854785156250003],[-13.041748046875,21.713818359374997],[-13.0322265625,21.572070312500003],[-13.025097656249983,21.466796875],[-13.016210937499977,21.333935546874997],[-15.231201171875,21.331298828125],[-16.964550781249983,21.329248046874994],[-17.06396484375,20.89882812499999],[-17.048046874999983,20.80615234375],[-17.098779296874994,20.856884765624997],[-16.930859374999983,21.9],[-16.35874023437495,22.594531250000045],[-16.21025390624999,23.097900390625],[-15.789257812499926,23.792871093750023],[-15.980712890624943,23.670312500000023],[-15.899316406249966,23.844433593749955],[-14.904296875000028,24.719775390625017],[-14.794921874999943,25.404150390625006],[-14.413867187499932,26.25371093749999],[-13.57578125,26.735107421875],[-13.175976562499983,27.655712890624983],[-13.038761787013554,27.81190166624856]],[[-8.774365234374983,27.460546875],[-8.794873046874983,27.120703125000034],[-8.794873046874983,27.120703125],[-8.774365234374983,27.460546875]]]},"properties":{"name":"W. Sahara","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[21.5625,42.247509765625],[21.560839843750017,42.24765625],[21.389550781250023,42.21982421875],[21.28662109375,42.100390625],[21.05976562500001,42.171289062499994],[20.778125,42.071044921875],[20.725,41.87353515625],[20.566210937500017,41.873681640624994],[20.485449218750006,42.223388671875],[20.06396484375,42.54726562499999],[20.054296875,42.760058593749996],[20.344335937500006,42.827929687499996],[20.40996305279786,42.84373166741877],[20.344335937500063,42.82792968750002],[19.670996093750006,43.163964843749994],[19.21875,43.449951171875],[19.196484375000068,43.48500976562502],[19.19160156250004,43.52104492187499],[19.19433593749997,43.533300781250006],[19.495117187500057,43.642871093750045],[19.245019531249994,43.96503906250004],[19.583789062500017,44.04345703125003],[19.118457031250074,44.359960937500006],[19.348632812500057,44.88090820312502],[19.007128906250045,44.86918945312502],[19.062890625000023,45.13720703125],[19.4,45.2125],[19.004687500000074,45.39951171875006],[19.064257812500045,45.51499023437506],[18.839062499999983,45.83574218750002],[18.905371093750006,45.931738281250034],[19.421289062500023,46.064453125],[19.61347656250001,46.169189453125],[19.84443359375001,46.145898437499966],[19.934082031250057,46.161474609375034],[20.161425781250017,46.14189453124996],[20.210156250000068,46.12602539062502],[20.241796875000034,46.10859375000001],[20.301367187500006,46.05068359375002],[20.35859375000004,45.975488281249994],[20.581152343749977,45.86948242187506],[20.65273437499999,45.779394531250006],[20.709277343750074,45.735253906249994],[20.727832031250017,45.73740234374998],[20.746875,45.74897460937501],[20.76015625000005,45.75810546875002],[20.775,45.74980468750002],[20.794042968750006,45.467871093750034],[21.431445312500017,45.192529296874994],[21.465429687500006,45.171875],[21.357031250000034,44.99077148437502],[21.532324218750063,44.900683593750045],[21.519921875000023,44.88081054687498],[21.442187500000074,44.87338867187498],[21.384375,44.87006835937501],[21.357910156250057,44.86181640625003],[21.36005859375004,44.82666015624997],[21.52314453125004,44.79008789062499],[21.63613281250005,44.71044921875],[21.909277343750034,44.666113281250034],[22.026953125,44.61987304687503],[22.093066406250074,44.541943359374955],[22.200976562500017,44.560693359374966],[22.350683593750063,44.676123046875034],[22.497656249999977,44.70625],[22.64208984375,44.65097656249998],[22.720898437499983,44.605517578125045],[22.734375,44.56992187499998],[22.700781250000063,44.55551757812498],[22.620117187500057,44.562353515625034],[22.554003906250017,44.54033203124999],[22.49453125000005,44.43544921875002],[22.687890625000023,44.248291015625],[22.42080078125005,44.00742187500006],[22.399023437500063,43.96953125],[22.36542968750004,43.86210937500002],[22.36962890625003,43.78129882812499],[22.55458984375005,43.45449218750002],[22.767578125,43.35415039062502],[22.81972656250005,43.300732421874955],[22.85957031250001,43.252343749999966],[22.97685546874999,43.18798828125],[22.799902343750006,42.985742187499994],[22.706152343750006,42.88393554687505],[22.466796875,42.842480468749955],[22.53242187500004,42.48120117187497],[22.523535156250006,42.440966796875045],[22.44570312500005,42.35913085937497],[22.42207031250004,42.32885742187503],[22.344042968750045,42.31396484375003],[22.23974609375003,42.303110028468716],[21.81464843750001,42.303125],[21.5625,42.24750976562498],[21.5625,42.247509765625]]]},"properties":{"name":"Serbia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[74.54140625000002,37.02216796875],[74.03886718750002,36.825732421874996],[73.116796875,36.868554687499994],[72.24980468750002,36.734716796875],[71.23291015625,36.12177734375],[71.18505859375,36.04208984375],[71.57197265625001,35.546826171875],[71.62050781250002,35.183007812499994],[70.965625,34.53037109375],[71.095703125,34.369433593749996],[71.05156250000002,34.049707031249994],[70.65400390625001,33.952294921874994],[69.8896484375,34.007275390625],[70.26113281250002,33.289013671875],[69.5015625,33.020068359374996],[69.24140625000001,32.433544921875],[69.279296875,31.936816406249996],[68.86894531250002,31.634228515624997],[68.59765625,31.802978515625],[68.16103515625002,31.802978515625],[67.57822265625,31.506494140624994],[67.737890625,31.343945312499997],[67.45283203125001,31.234619140625],[66.82929687500001,31.263671875],[66.346875,30.802783203124996],[66.23125,29.86572265625],[65.09550781250002,29.559472656249994],[64.39375,29.544335937499994],[64.09873046875,29.391943359375],[63.56757812500001,29.497998046874997],[62.4765625,29.408349609374994],[62.0009765625,29.530419921874994],[61.22441406250002,29.749414062499994],[60.843359375,29.858691406249996],[61.331640625,30.363720703124997],[61.55947265625002,30.599365234375],[61.7841796875,30.831933593749994],[61.81083984375002,30.91328125],[61.81425781250002,31.072558593749996],[61.75507812500001,31.285302734374994],[61.66015625,31.382421875],[61.34648437500002,31.421630859375],[61.11074218750002,31.451123046874997],[60.854101562500006,31.483251953125],[60.82070312500002,31.495166015624996],[60.791601562500006,31.660595703124997],[60.804296875,31.73447265625],[60.7875,31.877197265625],[60.78994140625002,31.987109375],[60.827246093750006,32.16796875],[60.82929687500001,32.249414062499994],[60.71044921875,32.6],[60.57656250000002,32.994873046875],[60.560546875,33.137841796874994],[60.9169921875,33.505224609375],[60.573828125,33.588330078125],[60.4859375,33.7119140625],[60.48574218750002,34.094775390624996],[60.642675781250006,34.307177734374996],[60.88945312500002,34.31943359375],[60.80390625000001,34.418017578124996],[60.76259765625002,34.475244140624994],[60.73613281250002,34.491796875],[60.72626953125001,34.51826171875],[60.73945312500001,34.544726562499996],[60.80234375,34.554638671875],[60.8453125,34.587695312499996],[60.91474609375001,34.633984375],[60.951171875,34.653857421874996],[61.080078125,34.855615234374994],[61.1,35.272314453125],[61.18925781250002,35.31201171875],[61.24550781250002,35.474072265625],[61.27851562500001,35.51376953125],[61.281835937500006,35.55341796875],[61.26201171875002,35.619580078125],[61.3447265625,35.6294921875],[61.62099609375002,35.43232421875],[62.08964843750002,35.3796875],[62.30781250000001,35.170800781249994],[62.688085937500006,35.255322265625],[63.056640625,35.44580078125],[63.08417968750001,35.56806640625],[63.16972656250002,35.678125],[63.129980468750006,35.84619140625],[63.8625,36.012353515624994],[64.184375,36.14892578125],[64.51103515625002,36.340673828125],[64.56582031250002,36.427587890625],[64.6025390625,36.554541015625],[64.78242187500001,37.05927734375],[64.81630859375002,37.132080078125],[64.95156250000002,37.1935546875],[65.08964843750002,37.237939453124994],[65.30361328125002,37.24677734375],[65.55498046875002,37.251171875],[65.76503906250002,37.569140625],[66.471875,37.3447265625],[66.52226562500002,37.348486328125],[66.827734375,37.3712890625],[67.06884765625,37.334814453125],[67.19550781250001,37.235205078125],[67.31972656250002,37.2095703125],[67.44169921875002,37.2580078125],[67.51728515625001,37.266650390624996],[67.546484375,37.235644531249996],[67.607421875,37.222509765625],[67.7,37.22724609375],[67.7529296875,37.1998046875],[67.75898437500001,37.172216796875],[67.76601562500002,37.14013671875],[67.83447265625,37.064208984375],[67.9580078125,36.972021484375],[68.06777343750002,36.9498046875],[68.26093750000001,37.013085937499994],[68.284765625,37.036328125],[68.29951171875001,37.088427734374996],[68.38691406250001,37.1375],[68.66914062500001,37.2583984375],[68.7232421875,37.268017578125],[68.78203125000002,37.2580078125],[68.82373046875,37.270703125],[68.8384765625,37.30283203125],[68.85537109375002,37.316845703125],[68.88525390625,37.328076171875],[68.91181640625001,37.333935546875],[68.96044921875,37.325048828125],[69.18017578125,37.15830078125],[69.26484375000001,37.1083984375],[69.30390625000001,37.116943359375],[69.35380859375002,37.150048828124994],[69.41445312500002,37.207763671875],[69.4296875,37.290869140625],[69.39921875000002,37.399316406249994],[69.42011718750001,37.48671875],[69.49208984375002,37.553076171875],[69.62578125000002,37.594042968749996],[69.8208984375,37.6095703125],[69.9849609375,37.566162109375],[70.18867187500001,37.582470703125],[70.25146484375,37.66416015625],[70.25498046875,37.765380859375],[70.19941406250001,37.886035156249996],[70.21464843750002,37.9244140625],[70.41777343750002,38.075439453125],[70.7359375,38.42255859375],[71.255859375,38.306982421875],[71.33271484375001,38.170263671875],[71.27851562500001,37.918408203125],[71.319921875,37.90185546875],[71.3896484375,37.906298828124996],[71.48779296875,37.931884765625],[71.55195312500001,37.933154296874996],[71.58222656250001,37.910107421875],[71.43291015625002,37.1275390625],[71.530859375,36.845117187499994],[71.665625,36.696923828124994],[72.65742187500001,37.029052734375],[72.8955078125,37.267529296875],[73.21113281250001,37.408496093749996],[73.38291015625,37.462255859375],[73.48134765625002,37.4716796875],[73.60468750000001,37.446044921875],[73.65712890625002,37.43046875],[73.72060546875002,37.41875],[73.73378906250002,37.37578125],[73.71728515625,37.329443359375],[73.6275390625,37.261572265625],[73.65351562500001,37.23935546875],[73.749609375,37.231787109375],[74.16708984375,37.329443359375],[74.20351562500002,37.372460937499994],[74.25966796875002,37.415429687499994],[74.659375,37.394482421875],[74.73056640625,37.35703125],[74.83046875000002,37.2859375],[74.89130859375001,37.231640625],[74.84023437500002,37.225048828125],[74.76738281250002,37.249169921874994],[74.73896484375001,37.28564453125],[74.72666015625,37.29072265625],[74.6689453125,37.26669921875],[74.55898437500002,37.236621093749996],[74.37216796875,37.15771484375],[74.37617187500001,37.137353515624994],[74.49794921875002,37.0572265625],[74.52646484375,37.030664062499994],[74.54140625000002,37.02216796875]]]},"properties":{"name":"Afghanistan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[17.57958984375,-8.099023437500009],[17.643359375000017,-8.090722656250009],[18.00878906250003,-8.107617187499983],[18.56269531250001,-7.9359375],[18.944433593750063,-8.001464843750028],[19.142675781250034,-8.001464843750028],[19.34082031249997,-7.966601562500031],[19.369921875000045,-7.706542968749986],[19.371679687500063,-7.655078124999989],[19.47988281250008,-7.472167968750028],[19.48378906250008,-7.279492187500026],[19.527636718750017,-7.144433593749952],[19.87519531250004,-6.986328124999986],[19.99746093750008,-6.976464843750023],[20.190039062500063,-6.9462890625],[20.482226562500074,-6.915820312500017],[20.59003906250001,-6.919921874999957],[20.598730468750006,-6.935156249999949],[20.536914062500045,-7.121777343749955],[20.535839843749983,-7.182812499999955],[20.558398437500045,-7.244433593749989],[20.60781250000008,-7.277734375000023],[20.910937500000017,-7.281445312499983],[21.190332031250023,-7.284960937499989],[21.751074218750034,-7.305468749999989],[21.80605468750005,-7.32861328125],[21.905371093750034,-8.693359374999943],[21.813183593750068,-9.46875],[22.19775390625,-10.040625],[22.30703125000005,-10.691308593750023],[22.203515625000023,-10.829492187500009],[22.226171875,-11.121972656250009],[22.27880859375,-11.19414062499996],[22.314941406250057,-11.198632812499994],[22.39296875000005,-11.159472656250003],[22.486132812500045,-11.086718750000017],[22.56103515625003,-11.05585937500004],[22.814746093750017,-11.08027343750004],[23.076269531250006,-11.087890624999986],[23.463964843750034,-10.969335937499991],[23.83388671875008,-11.013671874999972],[23.96650390625001,-10.871777343750011],[23.98388671875,-11.725],[23.909375,-12.636132812500009],[23.886523437500045,-12.743261718749991],[23.882421875,-12.799023437499983],[23.968066406250045,-12.956933593749994],[23.962988281250006,-12.988476562500026],[23.843164062500023,-13.0009765625],[22.209570312500006,-13.0009765625],[21.97890625000008,-13.0009765625],[21.979101562500034,-13.798730468749994],[21.979296875000074,-14.11962890625],[21.979394531249994,-14.440527343750006],[21.97978515624999,-15.955566406250014],[22.193945312500006,-16.628125],[23.380664062500017,-17.640625],[22.32421875,-17.8375],[20.74550781250008,-18.019726562499983],[20.194335937500057,-17.86367187499999],[18.95527343750004,-17.80351562499999],[18.39638671875005,-17.3994140625],[16.14843750000003,-17.39023437499999],[14.017480468750023,-17.40888671874997],[13.475976562500023,-17.04003906249997],[13.179492187500017,-16.971679687499986],[12.548144531250017,-17.212695312499974],[12.35927734375008,-17.205859375],[12.318457031250006,-17.21337890625003],[12.213378906250028,-17.209960937500043],[12.013964843750074,-17.168554687500034],[11.902539062500011,-17.226562499999957],[11.743066406250023,-17.24921875000004],[11.780078125000017,-16.87128906249997],[11.818945312500034,-16.704101562500014],[11.750878906250023,-15.831933593749966],[12.016113281250057,-15.513671874999957],[12.55048828125004,-13.437792968750003],[12.983203124999989,-12.775683593750017],[13.4169921875,-12.52041015624998],[13.597949218750017,-12.286132812500028],[13.785351562499983,-11.81279296874996],[13.833593750000063,-10.9296875],[13.33222656250004,-9.998925781250009],[12.99853515625,-9.048046875],[13.358984375,-8.687207031250026],[13.378515625000063,-8.369726562500006],[12.82343750000004,-6.954785156249955],[12.283300781250063,-6.12431640624996],[13.184375,-5.85625],[13.346484375000017,-5.863378906250006],[13.978515625,-5.857226562500003],[16.315234375000074,-5.865625],[16.431445312500045,-5.90019531249996],[16.53710937499997,-5.9658203125],[16.697265625,-6.164257812500026],[16.74296874999999,-6.618457031250003],[16.813085937500063,-6.772558593749963],[16.919433593750057,-6.93398437499998],[16.98476562500005,-7.257421874999977],[17.57958984375,-8.099023437500009]]],[[[12.50146484375,-4.5875],[12.848144531250028,-4.428906249999983],[12.881054687500068,-4.445117187499989],[12.971386718750068,-4.551757812499957],[13.048046875000068,-4.619238281250034],[13.072753906250028,-4.634765625],[13.057324218750011,-4.651074218750026],[12.947460937500011,-4.695312499999986],[12.829687499999977,-4.73662109374996],[12.451464843750017,-5.071484374999969],[12.453222656250034,-5.090625],[12.52236328125008,-5.148925781250028],[12.484570312500011,-5.71875],[12.213671875000074,-5.758691406249994],[12.177148437499994,-5.324804687499977],[12.018359375000074,-5.004296874999966],[12.50146484375,-4.5875]]]]},"properties":{"name":"Angola","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[20.06396484375,42.54726562499999],[20.485449218750006,42.223388671875],[20.566210937500017,41.873681640624994],[20.48896484375001,41.272607421874994],[20.709277343750017,40.928369140624994],[20.964257812500023,40.849902343749996],[20.95576171875001,40.775292968749994],[21.030859375,40.622460937499994],[20.881640625000017,40.467919921874994],[20.65742187500001,40.1173828125],[20.4560546875,40.065576171874994],[20.408007812500017,40.049462890624994],[20.383691406250023,40.0171875],[20.338476562500006,39.991064453125],[20.311132812500006,39.979443359375],[20.311328125000017,39.95078125],[20.381640625000017,39.841796875],[20.382421875,39.802636718749994],[20.206835937500017,39.653515625],[20.13105468750001,39.66162109375],[20.05976562500001,39.699121093749994],[20.022558593750006,39.710693359375],[20.001269531250017,39.709423828125],[19.851855468750017,40.0435546875],[19.322265625,40.407080078125],[19.45917968750001,40.40537109375],[19.3375,40.663818359375],[19.57568359375,41.640429687499996],[19.577539062500023,41.7875],[19.342382812500006,41.869091796875],[19.280664062500023,42.17255859375],[19.65449218750001,42.628564453124994],[19.78828125000001,42.476171875],[20.06396484375,42.54726562499999]]]},"properties":{"name":"Albania","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[19.66230468750001,60.187158203124994],[19.53652343750005,60.14497070312501],[19.551367187500063,60.24384765625001],[19.66230468750001,60.187158203124994]]],[[[19.989550781250074,60.351171875],[20.258886718750063,60.26127929687499],[19.799804687500057,60.08173828125001],[19.68691406250005,60.267626953125045],[19.84765625000003,60.22055664062506],[19.823046875000074,60.390185546875045],[19.989550781250074,60.351171875]]]]},"properties":{"name":"Aland","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[1.7060546875,42.503320312499994],[1.534082031250023,42.441699218749996],[1.448828125,42.437451171875],[1.428125,42.46132812499999],[1.414843750000017,42.548388671874996],[1.428320312500006,42.5958984375],[1.501367187500023,42.642724609374994],[1.568164062500017,42.635009765625],[1.709863281250023,42.604443359375],[1.739453125000011,42.575927734375],[1.740234375,42.55673828125],[1.713964843750006,42.525634765625],[1.7060546875,42.503320312499994]]]},"properties":{"name":"Andorra","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[53.927832031250006,24.177197265624983],[53.63447265625004,24.169775390624977],[53.83378906250002,24.258935546875023],[53.927832031250006,24.177197265624983]]],[[[53.3322265625001,24.258593750000045],[53.19091796874997,24.290917968749966],[53.412402343750074,24.411035156250023],[53.3322265625001,24.258593750000045]]],[[[56.29785156250003,25.650683593750045],[56.38798828125002,24.97919921875004],[56.06386718750005,24.73876953125],[56.00058593750006,24.953222656249977],[55.795703125000074,24.868115234374955],[55.76083984375006,24.24267578125],[55.92861328125005,24.215136718750074],[55.98515625000002,24.063378906249966],[55.4684570312501,23.94111328125001],[55.53164062499999,23.81904296875001],[55.1999023437501,23.034765625000034],[55.185839843750074,22.7041015625],[55.104296875000074,22.621484375000023],[52.55507812500005,22.932812499999955],[51.592578125000074,24.07885742187503],[51.56835937500003,24.286181640625074],[51.76757812500003,24.25439453125],[51.84316406250005,24.010888671875023],[52.118554687499994,23.97109375],[52.64824218750002,24.154638671875006],[53.80175781249997,24.069482421874966],[54.14794921875003,24.17119140624999],[54.39707031250006,24.278173828125034],[54.74677734375004,24.810449218750023],[55.94121093750002,25.793994140625017],[56.08046875,26.06264648437505],[56.16748046875003,26.047460937499977],[56.144628906250006,25.690527343750006],[56.29785156250003,25.650683593750045]]]]},"properties":{"name":"United Arab Emirates","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-64.54916992187498,-54.71621093749998],[-63.81542968749997,-54.725097656250014],[-64.637353515625,-54.90253906250001],[-64.75732421875,-54.82656249999999],[-64.54916992187498,-54.71621093749998]]],[[[-68.65322265624994,-54.85361328124999],[-68.62993164062499,-52.65263671875004],[-68.24013671875,-53.08183593749999],[-68.43115234375,-53.0552734375],[-68.48852539062497,-53.260937499999976],[-68.16113281249997,-53.30644531250001],[-68.00849609374995,-53.5640625],[-67.29423828125002,-54.049804687500014],[-66.23564453124999,-54.53349609374997],[-65.17900390624993,-54.678125],[-65.47114257812495,-54.91464843749999],[-66.5111328125,-55.032128906249945],[-67.127099609375,-54.90380859375001],[-68.65322265624994,-54.85361328124999]]],[[[-61.084716796875,-23.65644531250001],[-60.83984375000003,-23.85810546874997],[-59.89248046874994,-24.093554687499974],[-59.18725585937497,-24.56230468749999],[-57.82167968749994,-25.136425781249983],[-57.56313476562494,-25.473730468749963],[-57.943115234375,-26.05292968750001],[-58.18149414062498,-26.30742187499999],[-58.222070312499994,-26.65],[-58.618603515624955,-27.13212890624996],[-58.64174804687494,-27.196093750000017],[-58.60483398437498,-27.314355468750037],[-58.16826171874993,-27.27343749999997],[-56.437158203124966,-27.553808593749977],[-56.16406250000003,-27.321484374999983],[-55.95146484374996,-27.325683593749957],[-55.789990234374926,-27.416406249999966],[-55.71464843749996,-27.41484375],[-55.632910156250006,-27.35712890624997],[-55.59379882812502,-27.288085937500014],[-55.597265625,-27.207617187499963],[-55.56489257812498,-27.15],[-55.496728515624966,-27.11533203124999],[-55.45063476562498,-27.068359375000014],[-55.426660156249994,-27.00927734374997],[-55.13593750000001,-26.931152343749957],[-54.934472656249994,-26.70253906250001],[-54.677734375,-26.308789062499997],[-54.631933593750006,-26.005761718749994],[-54.615869140624994,-25.576074218750023],[-54.44394531249998,-25.625],[-54.15458984374999,-25.523046874999963],[-53.89116210937499,-25.66884765625001],[-53.668554687500006,-26.288183593749977],[-53.83818359375002,-27.121093750000014],[-54.32700195312495,-27.423535156249997],[-54.82910156250003,-27.55058593750003],[-55.10151367187501,-27.866796874999963],[-55.72548828125002,-28.20410156250003],[-55.68725585937497,-28.38164062499996],[-55.890527343749994,-28.370019531249994],[-56.938623046874994,-29.594824218750034],[-57.22465820312499,-29.782128906249994],[-57.40522460937501,-30.03388671875004],[-57.563867187499994,-30.139941406249974],[-57.60888671875003,-30.187792968750045],[-57.65087890624997,-30.295019531250034],[-57.71269531249996,-30.38447265624997],[-57.83120117187502,-30.495214843749963],[-57.87250976562501,-30.591015625000026],[-57.81059570312499,-30.85859375000001],[-57.88632812499998,-30.937402343749994],[-57.86840820312497,-31.104394531249994],[-57.89335937499999,-31.195312499999957],[-58.03339843750001,-31.416601562500006],[-58.053857421874994,-31.494921874999974],[-58.009667968749966,-31.534375],[-57.98798828124998,-31.576171875],[-58.00698242187494,-31.684960937499966],[-58.04233398437495,-31.769238281249997],[-58.16748046874997,-31.87265625],[-58.18901367187499,-31.924218750000037],[-58.16040039062503,-31.986523437500026],[-58.156347656250006,-32.0515625],[-58.17700195312494,-32.11904296875002],[-58.16479492187494,-32.18486328125002],[-58.119726562500006,-32.24892578125002],[-58.12304687499997,-32.321875],[-58.201171875,-32.471679687500014],[-58.219970703125,-32.563964843749986],[-58.17099609374998,-32.95927734374996],[-58.424462890624994,-33.11152343749998],[-58.54721679687498,-33.66347656249998],[-58.392480468749966,-34.192968750000034],[-58.52548828124998,-34.29619140625002],[-58.28334960937494,-34.68349609375005],[-57.54785156250003,-35.018945312499994],[-57.170654296875,-35.3625],[-57.35390624999994,-35.72031249999998],[-57.33544921875,-36.026757812499966],[-57.07617187499994,-36.296777343749994],[-56.74946289062501,-36.346484375],[-56.67202148437494,-36.85126953124998],[-57.546972656250034,-38.085644531250026],[-58.17919921874994,-38.435839843750045],[-59.82832031250001,-38.83818359375003],[-61.112207031249994,-38.99296875000003],[-61.84790039062497,-38.961816406249994],[-62.33476562499993,-38.80009765625],[-62.29506835937502,-39.24326171874996],[-62.053662109374955,-39.373828125],[-62.179345703124994,-39.38046875000002],[-62.076806640624966,-39.46152343750002],[-62.131542968749926,-39.82539062499998],[-62.28691406249996,-39.89531250000002],[-62.40185546875003,-40.19658203125002],[-62.24633789062494,-40.674609374999974],[-62.39501953124997,-40.89082031249997],[-62.95903320312493,-41.10966796875006],[-63.621777343749955,-41.15976562499996],[-64.86948242187503,-40.735839843750014],[-65.13339843749998,-40.88066406250003],[-64.98637695312496,-42.102050781249986],[-64.53774414062494,-42.25458984374998],[-64.57099609374998,-42.416015625],[-64.42041015625003,-42.43378906249998],[-64.10087890624993,-42.395117187500006],[-64.06118164062494,-42.266113281250014],[-64.228515625,-42.21826171874996],[-63.795556640624994,-42.113867187500006],[-63.6298828125,-42.28271484375003],[-63.61733398437502,-42.695800781249986],[-64.03476562499998,-42.88125],[-64.48784179687499,-42.51347656250006],[-64.97070312499997,-42.66630859375002],[-65.02690429687496,-42.75888671874996],[-64.31914062499999,-42.968945312500026],[-64.83994140624998,-43.18886718749998],[-65.25234374999997,-43.571875],[-65.26552734375,-44.2796875],[-65.64760742187502,-44.661425781250045],[-65.63876953125,-45.0078125],[-66.19013671874995,-44.96474609375002],[-66.94140625,-45.25732421875003],[-67.59956054687495,-46.05253906250003],[-67.5064453125,-46.44277343749995],[-66.77685546874994,-47.005859375],[-65.99853515625,-47.09375],[-65.73808593749999,-47.34492187499998],[-65.81430664062495,-47.63818359374996],[-66.22524414062502,-47.826757812500006],[-65.93422851562497,-47.826757812500006],[-65.81005859374997,-47.941113281250026],[-67.46630859375,-48.95175781250004],[-67.68486328125002,-49.2466796875],[-67.82597656249999,-49.91962890625005],[-68.2572265625,-50.104589843749984],[-68.66757812500003,-49.75253906250003],[-68.66162109374997,-49.93574218750005],[-68.97958984375,-50.003027343749984],[-68.59794921874996,-50.00947265624997],[-68.421875,-50.15791015625001],[-69.04477539062495,-50.49912109374998],[-69.35859374999993,-51.028125],[-69.20102539062498,-50.99365234375001],[-69.03530273437497,-51.48896484375002],[-69.46542968750003,-51.58447265625003],[-68.96533203125003,-51.67714843749999],[-68.443359375,-52.35664062500004],[-69.96025390624993,-52.00820312500002],[-71.91865234374995,-51.98955078125004],[-72.40766601562501,-51.54082031250002],[-72.34023437499997,-50.68183593749999],[-72.50981445312496,-50.607519531250034],[-73.15292968749998,-50.73828125000003],[-73.50126953124996,-50.125292968750024],[-73.55419921875,-49.463867187500014],[-73.46157226562497,-49.31386718750001],[-73.13525390625,-49.30068359374999],[-73.03364257812501,-49.014355468750004],[-72.65126953125,-48.84160156249998],[-72.582861328125,-48.47539062499999],[-72.35473632812497,-48.36582031250005],[-72.32832031250001,-48.11005859374998],[-72.517919921875,-47.87636718749998],[-72.34594726562497,-47.49267578124997],[-71.90498046875001,-47.201660156250014],[-71.94023437499999,-46.83125],[-71.69965820312501,-46.6513671875],[-71.87568359374998,-46.160546875],[-71.63154296874998,-45.95371093749998],[-71.74619140624998,-45.57890625],[-71.34931640624995,-45.33193359374995],[-71.5962890625,-44.97919921875004],[-72.04169921874998,-44.90419921875004],[-72.06372070312503,-44.771875],[-71.26113281250002,-44.763085937499966],[-71.15971679687496,-44.56025390625004],[-71.21259765624998,-44.44121093750003],[-71.82001953124993,-44.38310546875],[-71.68007812500002,-43.92958984374998],[-71.90498046875001,-43.34755859374998],[-71.750634765625,-43.237304687499986],[-72.14643554687498,-42.990039062499974],[-72.10820312499993,-42.25185546874995],[-71.75,-42.04677734375001],[-71.91127929687497,-41.650390624999986],[-71.93212890624994,-40.69169921874999],[-71.70898437499997,-40.381738281249994],[-71.81831054687493,-40.17666015624995],[-71.65976562499998,-40.02080078125],[-71.71992187499995,-39.63525390624997],[-71.53945312499997,-39.60244140624995],[-71.40156249999995,-38.93505859374996],[-70.858642578125,-38.60449218750003],[-71.16757812499998,-37.76230468749996],[-71.19218750000002,-36.84365234375004],[-71.05551757812498,-36.52373046874996],[-70.40478515625,-36.06171874999998],[-70.41572265625001,-35.52304687500002],[-70.55517578125,-35.246875],[-70.39316406250003,-35.146875],[-70.05205078124999,-34.30078124999997],[-69.85244140625,-34.224316406250026],[-69.81962890624999,-33.28378906249999],[-70.08486328125002,-33.20175781249998],[-70.02197265625,-32.88457031250002],[-70.36376953125,-32.08349609374997],[-70.25439453125,-31.957714843750026],[-70.585205078125,-31.569433593749963],[-70.51958007812493,-31.1484375],[-70.30908203124994,-31.02265625000004],[-70.15322265625,-30.360937499999963],[-69.95634765624996,-30.35820312500003],[-69.84428710937493,-30.175],[-69.95996093749997,-30.078320312500026],[-70.02680664062501,-29.324023437500017],[-69.82788085937497,-29.10322265624997],[-69.65693359374995,-28.413574218749986],[-69.17441406249998,-27.924707031250037],[-68.84633789062494,-27.153710937499994],[-68.59208984375002,-27.140039062499966],[-68.31865234374999,-26.973242187500006],[-68.59160156249999,-26.47041015624997],[-68.41450195312498,-26.153710937500023],[-68.59208984375002,-25.420019531250034],[-68.38422851562495,-25.091894531249977],[-68.56201171875,-24.74736328125003],[-68.25029296875002,-24.391992187500023],[-67.35620117187503,-24.033789062499963],[-67.00878906249994,-23.00136718750005],[-67.19487304687493,-22.821679687500037],[-66.99111328125,-22.509863281250006],[-66.71171874999999,-22.216308593749986],[-66.36518554687501,-22.113769531249957],[-66.32246093750001,-22.053125],[-66.28212890624997,-21.94746093750001],[-66.24760742187496,-21.83046875],[-66.22016601562495,-21.802539062499974],[-66.174658203125,-21.805664062499986],[-66.09858398437495,-21.83505859375002],[-66.05859375,-21.87949218750002],[-65.86015624999999,-22.019726562499983],[-65.77104492187493,-22.099609375000014],[-65.68618164062497,-22.11025390625005],[-65.51879882812497,-22.094531250000045],[-64.99262695312498,-22.109667968750017],[-64.60551757812499,-22.228808593750045],[-64.52363281250001,-22.37158203125],[-64.47773437499998,-22.485351562499986],[-64.44550781249998,-22.585351562500023],[-64.37397460937498,-22.761035156250017],[-64.32529296875,-22.82763671875],[-64.30791015624993,-22.7953125],[-64.26640625000002,-22.60332031249996],[-63.97612304687502,-22.072558593750003],[-63.92167968749993,-22.028613281250017],[-62.843359375,-21.997265625000026],[-62.62597656250003,-22.29042968749998],[-62.54155273437496,-22.349609374999957],[-62.37250976562498,-22.439160156249997],[-62.21416015624996,-22.612402343750034],[-61.798535156249955,-23.18203125],[-61.084716796875,-23.65644531250001]]]]},"properties":{"name":"Argentina","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[46.490625,38.90668945312498],[46.1144531250001,38.877783203125034],[45.977441406249994,39.24389648437503],[45.76630859375004,39.37846679687499],[45.78447265625002,39.54560546875001],[45.456835937500074,39.494482421875006],[45.15283203125003,39.58266601562502],[45.03164062500005,39.76513671874997],[44.76826171875004,39.70351562500005],[44.28925781250004,40.040380859375006],[43.66621093750004,40.12636718750002],[43.56933593750003,40.48237304687498],[43.72265624999997,40.71953124999999],[43.43945312500003,41.10712890625001],[44.077246093750006,41.182519531249994],[44.81132812500002,41.259375],[45.001367187499994,41.29096679687498],[45.188574218750006,41.14741210937504],[45.07050781250004,41.075585937499966],[45.5875,40.846923828125],[45.37890624999997,40.67358398437506],[45.45439453125002,40.532373046874966],[45.96464843750002,40.233789062499966],[45.8859375000001,40.024853515624955],[45.57978515625004,39.9775390625],[46.202050781249994,39.59448242187503],[46.48144531249997,39.55517578125003],[46.36523437500003,39.402490234374994],[46.584765625000074,39.22368164062499],[46.400292968749994,39.1921875],[46.490625,38.90668945312498]]]},"properties":{"name":"Armenia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-170.72626953125,-14.351171875],[-170.8205078125,-14.312109375],[-170.568115234375,-14.266796875000011],[-170.72626953125,-14.351171875]]]},"properties":{"name":"American Samoa","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[69.2824218750001,-49.05888671875002],[69.16718750000004,-48.88291015624996],[69.36875,-48.89042968749998],[69.2824218750001,-49.05888671875002]]],[[[69.18486328125002,-49.10957031250004],[69.59277343749997,-48.97099609375005],[69.64404296875003,-49.11738281250003],[69.40507812500002,-49.18173828125],[69.5423828125,-49.25566406250005],[70.32021484375005,-49.05859374999996],[70.55546875000007,-49.201464843750024],[70.38613281250005,-49.433984374999966],[70.16582031250002,-49.34296874999998],[69.75996093750004,-49.430175781249986],[69.98642578125006,-49.58164062500003],[70.2477539062501,-49.53066406250003],[70.12431640625002,-49.70439453124999],[69.153125,-49.5296875],[68.99296875000007,-49.704980468750016],[68.81474609375002,-49.69960937499999],[68.88339843750006,-49.16494140624995],[68.76953125000003,-49.06591796875003],[69.00244140624997,-48.661230468750006],[69.13613281250005,-48.86103515625003],[69.05214843750005,-49.08193359375001],[69.18486328125002,-49.10957031250004]]],[[[51.83457031250006,-46.43994140625],[51.65927734375006,-46.37363281249999],[51.7418945312501,-46.32685546874997],[51.83457031250006,-46.43994140625]]]]},"properties":{"name":"Fr. S. Antarctic Lands","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[-61.71606445312503,17.037011718749994],[-61.85966796874996,17.013330078124966],[-61.887109374999966,17.09814453125],[-61.81728515624994,17.168945312500057],[-61.71606445312503,17.037011718749994]]]},"properties":{"name":"Antigua and Barb.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[147.35605468750006,-43.396972656250014],[147.30888671875007,-43.50078125000002],[147.10498046875003,-43.43115234374996],[147.28388671875004,-43.278906250000034],[147.35605468750006,-43.396972656250014]]],[[[145.04296875000003,-40.78671875],[145.28300781250002,-40.76992187500002],[146.31748046875006,-41.16347656250001],[146.72343750000002,-41.07802734375001],[146.84814453124997,-41.16806640624996],[146.98984375000006,-40.99238281249997],[147.45478515625004,-41.00166015624998],[147.62167968750012,-40.844726562499986],[147.87294921875005,-40.87255859374997],[147.96875,-40.779589843750045],[148.215234375,-40.85488281250002],[148.34257812500007,-42.21533203124997],[148.21367187500002,-41.97001953125],[147.92441406250006,-42.5724609375],[147.94541015625006,-43.18183593749997],[147.7858398437501,-43.22001953125002],[147.69892578125004,-43.12255859374997],[147.64794921874997,-43.02060546874999],[147.8,-42.928125],[147.57382812500006,-42.84570312499997],[147.4523437500001,-43.03339843750001],[147.29794921875006,-42.790917968749994],[147.24501953125005,-43.21591796874999],[146.99697265625005,-43.15634765625002],[147.07734375000004,-43.27587890625003],[146.87392578125,-43.6125],[146.54853515625004,-43.50888671874999],[146.04316406250004,-43.547167968749974],[145.99443359375007,-43.37607421875002],[146.20800781249997,-43.31621093749999],[145.8732421875001,-43.29238281250002],[145.48759765625002,-42.92666015625004],[145.19882812500006,-42.23085937500004],[145.46826171874997,-42.492871093750026],[145.51660156249997,-42.3544921875],[145.33105468750003,-42.14707031250002],[145.23486328124997,-42.19697265624997],[145.23818359375,-42.01962890624999],[144.76611328125003,-41.39003906249998],[144.64609375000006,-40.980859375],[144.71855468750002,-40.67226562500002],[145.04296875000003,-40.78671875]]],[[[148.23691406250006,-40.515136718749986],[148.18779296875007,-40.592578125000045],[148.11728515625012,-40.52148437499996],[148.23691406250006,-40.515136718749986]]],[[[144.784375,-40.506738281249966],[144.74804687499997,-40.589453125000034],[144.7833984375001,-40.434863281249974],[144.784375,-40.506738281249966]]],[[[148.32626953125006,-40.30693359375003],[148.40400390625004,-40.486523437500026],[148.02011718750012,-40.40419921874995],[148.32626953125006,-40.30693359375003]]],[[[148.000390625,-39.75761718750003],[148.29736328125003,-39.985742187499966],[148.31357421875012,-40.173535156250026],[148.10566406250004,-40.26210937499995],[147.76718750000012,-39.87031249999998],[148.000390625,-39.75761718750003]]],[[[143.92792968750004,-40.116113281249966],[143.83857421875004,-39.90410156250003],[144.00078125000007,-39.580175781250034],[144.14101562500005,-39.953808593750026],[143.92792968750004,-40.116113281249966]]],[[[145.31445312500003,-38.49082031249996],[145.35507812500012,-38.55703124999995],[145.12841796875003,-38.52763671875],[145.31445312500003,-38.49082031249996]]],[[[137.59648437500007,-35.73867187499998],[137.92890625000004,-35.72607421875],[138.12343750000005,-35.85234375],[137.67089843749997,-35.897949218750014],[137.44843750000004,-36.07480468749999],[137.20957031250012,-35.982421875],[136.7550781250001,-36.03310546875002],[136.540625,-35.89013671875003],[136.63867187499997,-35.74882812500002],[137.33408203125006,-35.59248046875004],[137.58496093749997,-35.620214843750006],[137.59648437500007,-35.73867187499998]]],[[[153.53876953125004,-27.436425781250037],[153.42656250000002,-27.70644531249998],[153.43544921875,-27.40537109375002],[153.53876953125004,-27.436425781250037]]],[[[113.18300781250005,-26.053125],[112.96425781250005,-25.78310546875001],[112.94707031250002,-25.531542968750017],[113.18300781250005,-26.053125]]],[[[153.07744140625002,-25.75078125],[152.97666015625012,-25.551367187499963],[153.03808593750003,-25.193164062500003],[153.22753906249997,-25.00576171875001],[153.14375,-24.814843750000023],[153.25693359375012,-24.72890625],[153.35019531250012,-25.063085937499963],[153.07744140625002,-25.75078125]]],[[[151.14658203125006,-23.49082031250002],[151.24013671875,-23.529687500000037],[151.23828124999997,-23.77578125],[151.03330078125006,-23.530175781250037],[151.14658203125006,-23.49082031250002]]],[[[115.44619140625005,-20.78779296875001],[115.31806640625004,-20.850585937500014],[115.43457031249997,-20.66796875000003],[115.44619140625005,-20.78779296875001]]],[[[149.04375,-20.29150390624997],[148.93886718750005,-20.283691406249986],[148.98105468750012,-20.153515625000026],[149.04375,-20.29150390624997]]],[[[146.27832031249997,-18.23125],[146.29882812499997,-18.48476562500005],[146.09882812500004,-18.251757812500003],[146.27832031249997,-18.23125]]],[[[139.45917968750004,-17.11455078124996],[139.49277343750006,-16.990429687499983],[139.57089843750006,-17.09443359375004],[139.45917968750004,-17.11455078124996]]],[[[139.50781250000003,-16.57304687499996],[139.1595703125,-16.74169921875003],[139.29296875000003,-16.467285156249986],[139.58789062499997,-16.39521484374997],[139.69775390624997,-16.514941406250017],[139.50781250000003,-16.57304687499996]]],[[[137.09365234375005,-15.778125],[136.94267578125002,-15.711718749999989],[137.00957031250007,-15.594824218749977],[137.09365234375005,-15.778125]]],[[[124.59726562500006,-15.40195312500002],[124.52421875000002,-15.421484375],[124.51933593750002,-15.26748046874998],[124.59726562500006,-15.40195312500002]]],[[[125.19882812500006,-14.57949218749998],[125.0912109375,-14.59169921874998],[125.15996093750002,-14.456054687499972],[125.19882812500006,-14.57949218749998]]],[[[136.71464843750002,-13.803906249999983],[136.89082031250004,-13.786621093750014],[136.74531250000004,-14.072656250000023],[136.95078125000006,-14.184277343750026],[136.89433593750002,-14.293066406249977],[136.33544921875003,-14.211816406250037],[136.42470703125,-13.864843749999963],[136.6556640625,-13.675878906250006],[136.71464843750002,-13.803906249999983]]],[[[136.23740234375006,-13.824511718750003],[136.12265625000012,-13.816601562499983],[136.21542968750012,-13.664746093750054],[136.23740234375006,-13.824511718750003]]],[[[136.33867187500007,-11.602343749999989],[136.18027343750006,-11.676757812499957],[136.47929687500002,-11.465917968749991],[136.33867187500007,-11.602343749999989]]],[[[130.45927734375007,-11.679296875000034],[130.60625,-11.816601562500026],[130.04326171875007,-11.787304687500011],[130.19755859375007,-11.658203125],[130.15283203124997,-11.477539062499972],[130.29492187499997,-11.33681640624998],[130.45927734375007,-11.679296875000034]]],[[[130.6188476562501,-11.376074218749991],[131.02304687500006,-11.334375],[131.26826171875004,-11.18984375],[131.53857421874997,-11.436914062500037],[130.95097656250007,-11.926464843750026],[130.51191406250004,-11.617871093749955],[130.38457031250002,-11.1921875],[130.6188476562501,-11.376074218749991]]],[[[136.59853515625,-11.378906249999943],[136.52656250000004,-11.438867187499994],[136.78027343749997,-11.0125],[136.59853515625,-11.378906249999943]]],[[[132.59335937500006,-11.302832031249991],[132.48378906250005,-11.037304687499983],[132.57880859375004,-10.968847656249977],[132.59335937500006,-11.302832031249991]]],[[[143.17890625000004,-11.954492187499966],[143.11025390625,-12.303515625000017],[143.40156250000004,-12.639941406249989],[143.5866210937501,-13.443652343750031],[143.54843750000012,-13.74101562499996],[143.75634765625003,-14.348828124999969],[143.96181640625005,-14.462890625000028],[144.473046875,-14.231835937500023],[144.64804687500006,-14.492480468750017],[145.28769531250006,-14.943164062499989],[145.42607421875002,-16.406152343749966],[145.75478515625,-16.879492187500034],[145.91210937499997,-16.9125],[146.12587890625005,-17.63525390625],[146.03222656249997,-18.272851562500037],[146.3332031250001,-18.55371093749997],[146.38339843750006,-18.97705078124997],[147.13876953125006,-19.39316406250002],[147.41855468750012,-19.378125],[147.7423828125001,-19.770117187499977],[148.759375,-20.28955078125003],[148.88476562499997,-20.480859375],[148.72998046874997,-20.4677734375],[148.68369140625012,-20.58017578124999],[149.20488281250007,-21.125097656249977],[149.45410156249997,-21.57871093750002],[149.70390625000002,-22.440527343750006],[149.82246093750004,-22.389843749999983],[149.97441406250007,-22.55068359374998],[149.94189453125003,-22.30810546875003],[150.07617187500003,-22.16445312499998],[150.54130859375002,-22.55908203125],[150.56855468750004,-22.38398437500004],[150.67246093750012,-22.418164062499983],[150.84316406250005,-23.4580078125],[151.15380859375003,-23.784082031249994],[151.83164062500006,-24.12294921875001],[152.12988281250003,-24.59755859374998],[152.45634765625007,-24.802441406249983],[152.65429687499997,-25.201953125000017],[152.91347656250005,-25.432128906250014],[152.98496093750012,-25.816210937500003],[153.16494140625,-25.964160156250045],[153.11679687500006,-27.194433593750034],[153.57568359375003,-28.24052734374999],[153.6168945312501,-28.673046875],[153.03056640625002,-30.563378906249994],[152.94394531250012,-31.43486328124999],[152.5592773437501,-32.045703125],[152.4704101562501,-32.439062500000034],[152.13652343750002,-32.678125],[152.1642578125001,-32.75742187499996],[151.812890625,-32.90107421875001],[151.29208984375012,-33.580957031249966],[151.28027343750003,-33.92666015625005],[151.12480468750007,-34.00527343749998],[151.23154296875006,-34.0296875],[150.8712890625001,-34.49912109374996],[150.80458984375,-35.01289062500001],[150.19531249999997,-35.83359374999996],[149.93271484375012,-37.528515625000026],[149.480859375,-37.77119140625],[147.87675781250002,-37.93417968749998],[146.8568359375,-38.663476562499966],[146.21748046875004,-38.72744140625004],[146.33662109375004,-38.89423828125],[146.46660156250007,-38.84033203125003],[146.40000000000012,-39.14550781250003],[146.1583984375001,-38.86572265624996],[145.93535156250002,-38.90175781250002],[145.79082031250007,-38.66699218749997],[145.39726562500002,-38.53535156249998],[145.54218750000004,-38.39384765625002],[145.4757812500001,-38.24375],[145.29277343750002,-38.237597656249974],[144.95957031250012,-38.500781250000045],[144.71777343749997,-38.34033203125004],[144.91142578125007,-38.34404296874999],[145.11992187500007,-38.091308593750014],[144.89130859375004,-37.899804687499994],[144.39550781250003,-38.13691406249998],[144.6652343750001,-38.20996093750003],[143.53896484375005,-38.82089843749998],[142.45585937500002,-38.38632812499999],[141.725,-38.27138671875002],[141.5939453125001,-38.38779296875002],[141.42421875,-38.36347656250004],[141.0109375000001,-38.07695312500003],[140.39042968750007,-37.89667968749998],[139.78427734375012,-37.24580078124998],[139.85732421875,-36.662109375],[139.72900390625003,-36.37138671875002],[138.9689453125001,-35.58076171874997],[139.17802734375007,-35.52304687500002],[139.289453125,-35.61132812499997],[139.28251953125002,-35.375390624999966],[138.521875,-35.6423828125],[138.184375,-35.612695312499994],[138.5111328125,-35.02441406249996],[138.48994140625004,-34.76357421875002],[138.0892578125,-34.16982421875002],[137.69169921875002,-35.14296875000004],[136.88359375000007,-35.23974609375004],[137.01425781250012,-34.91582031250003],[137.39101562500005,-34.91328124999997],[137.49384765625004,-34.16113281250003],[137.9318359375001,-33.57910156250003],[137.85234375000007,-33.20078124999996],[137.99257812500005,-33.094238281250014],[137.78320312500003,-32.578125],[137.79091796875,-32.82324218749996],[137.44228515625,-33.1935546875],[137.23730468750003,-33.62949218749999],[136.43066406249997,-34.02998046875004],[135.891015625,-34.660937499999974],[135.96972656249997,-34.98183593749998],[135.7923828125,-34.863281249999986],[135.64755859375006,-34.93964843750001],[135.12304687499997,-34.58574218750003],[135.21679687499997,-34.48730468749996],[135.45,-34.58105468749996],[135.21894531250004,-33.959765625000045],[134.88876953125012,-33.62636718749998],[134.79101562499997,-33.32832031250001],[134.60771484375002,-33.19013671875001],[134.30126953124997,-33.16503906249996],[134.17353515625004,-32.979101562500006],[134.10039062500007,-32.748632812500034],[134.22714843750006,-32.73056640624999],[134.23417968750007,-32.54853515625004],[133.66533203125007,-32.207226562500054],[133.21210937500004,-32.18378906249998],[132.75742187500012,-31.95625],[132.21464843750002,-32.00712890624996],[131.14365234375006,-31.49570312500005],[130.78300781250002,-31.604003906249986],[129.1876953125001,-31.659960937500017],[127.31982421874997,-32.2640625],[125.91718750000004,-32.296972656250034],[124.75878906250003,-32.882714843749994],[124.24375,-33.01523437499999],[123.50683593749997,-33.916210937500054],[122.15097656250006,-33.99179687499999],[122.06113281250006,-33.874414062499966],[121.40507812500007,-33.826757812500034],[119.85410156250012,-33.97470703124998],[119.45058593750005,-34.368261718750034],[118.89531250000007,-34.47988281250004],[118.13554687500002,-34.98662109374999],[117.58193359375005,-35.09775390624998],[116.51718750000012,-34.98789062499998],[115.98671875000005,-34.795019531250034],[115.56503906250012,-34.42578125000003],[115.00878906250003,-34.25585937499997],[114.9938476562501,-33.51533203125],[115.3587890625,-33.63994140624999],[115.68300781250005,-33.19287109375003],[115.6984375000001,-31.694531250000054],[115.07792968750007,-30.560449218750023],[114.85683593750005,-29.14296875],[114.16513671875012,-28.08066406250002],[114.028125,-27.34726562499999],[113.18476562500004,-26.182226562499963],[113.32324218749997,-26.243847656249997],[113.35605468750012,-26.080468750000023],[113.58164062500006,-26.558105468749986],[113.73369140625002,-26.59511718749998],[113.83642578125003,-26.50058593749999],[113.85283203125007,-26.33212890625005],[113.39531250000002,-25.71328125],[113.4513671875001,-25.599121093750014],[113.7130859375001,-25.83076171875004],[113.72373046875006,-26.129785156250037],[113.85390625,-26.01445312499999],[113.99199218750007,-26.32148437500001],[114.09033203124997,-26.393652343749963],[114.21572265625,-26.289453124999966],[114.2142578125,-25.851562500000014],[113.41767578125004,-24.435644531250034],[113.48984375000012,-23.869628906250014],[113.7570312500001,-23.418164062500054],[113.79511718750004,-22.91455078125003],[113.68281250000004,-22.637792968749963],[114.02285156250005,-21.881445312499977],[114.12392578125005,-21.828613281249957],[114.14160156250003,-22.483105468749983],[114.37773437500007,-22.341503906249997],[114.70927734375002,-21.82343749999997],[115.45615234375012,-21.49169921874997],[116.0109375000001,-21.030371093749963],[116.7067382812501,-20.653808593749986],[117.40625,-20.72119140625003],[118.19921875000003,-20.37519531249997],[118.75146484374997,-20.261914062499983],[119.10449218749997,-19.995312500000026],[119.58593750000003,-20.03828125],[120.99794921875,-19.604394531249966],[121.33769531250002,-19.31992187500002],[121.83378906250002,-18.477050781249986],[122.34541015625004,-18.11191406250002],[122.14746093749997,-17.54902343750001],[122.2609375000001,-17.135742187500014],[122.72041015625004,-16.78769531249999],[122.97070312499997,-16.436816406250003],[123.56308593750006,-17.520898437499966],[123.59355468750007,-17.03037109375005],[123.83105468750003,-17.120800781249997],[123.8744140625,-16.918652343750026],[123.4904296875001,-16.49072265624997],[123.62597656249997,-16.416308593750003],[123.60703125000006,-16.224023437499994],[123.72890625,-16.192480468749963],[123.85917968750007,-16.38232421875],[124.04443359374997,-16.264941406249974],[124.30039062500006,-16.388281249999977],[124.77197265624997,-16.40263671874996],[124.40488281250006,-16.298925781249977],[124.41640625,-16.133496093750026],[124.5768554687501,-16.11367187499998],[124.64853515625012,-15.870214843750034],[124.50429687500005,-15.972460937499989],[124.38164062500002,-15.758203125000037],[124.43955078125012,-15.493554687500037],[124.56162109375012,-15.496289062499969],[124.69257812500004,-15.273632812499997],[125.06298828125003,-15.44228515624998],[125.0729492187501,-15.306738281249991],[124.90917968750003,-15.310058593749957],[124.83906250000004,-15.160742187500006],[125.03818359375012,-15.004101562499969],[125.35566406250004,-15.119824218750011],[125.17871093749997,-14.714746093749994],[125.57978515625004,-14.483203124999989],[125.62773437500002,-14.256640625000017],[125.70458984374997,-14.29140625],[125.66162109375003,-14.529492187500011],[125.81953125000004,-14.469140624999966],[125.890625,-14.61796875],[126.0207031250001,-14.49453125],[126.0539062500001,-13.977246093750026],[126.1842773437501,-14.00205078125002],[126.25849609375004,-14.163574218749972],[126.403125,-14.018945312499994],[126.5697265625,-14.160937499999974],[126.7806640625,-13.955175781249977],[126.77558593750004,-13.788476562500037],[126.90322265625,-13.744140624999972],[127.45761718750006,-14.031445312499969],[128.18046875000007,-14.711621093749983],[128.06943359375012,-15.329296874999969],[128.15546875000004,-15.225585937499972],[128.25468750000002,-15.298535156250011],[128.175,-15.043164062500026],[128.57578125000006,-14.774511718750006],[129.05820312500012,-14.884375],[129.21582031249997,-15.160253906249991],[129.26757812500003,-14.871484375000051],[129.63476562499997,-15.139746093749991],[129.637109375,-14.850976562500037],[129.84873046875012,-14.828906249999989],[129.60468750000004,-14.647070312499977],[129.69794921875004,-14.557421875000017],[129.37871093750002,-14.39248046874998],[129.70986328125,-13.979980468749972],[129.83886718749997,-13.572949218749997],[130.25976562500003,-13.30224609375],[130.1349609375001,-13.145507812499957],[130.1681640625001,-12.957421875],[130.39990234374997,-12.68789062499999],[130.61748046875007,-12.646875],[130.62265625000006,-12.43105468749998],[130.8673828125001,-12.557812499999955],[130.87382812500007,-12.367187500000028],[131.29160156250006,-12.067871093749972],[131.43828125000002,-12.27695312500002],[132.06406250000006,-12.28076171875],[132.25322265625007,-12.186035156249972],[132.41103515625,-12.295117187499997],[132.51054687500002,-12.134863281250034],[132.71279296875,-12.1234375],[132.63046875000012,-12.035156249999972],[132.67421875000005,-11.649023437499991],[132.47519531250006,-11.491503906249974],[132.07285156250006,-11.474707031250006],[131.82246093750004,-11.302441406249997],[131.96152343750006,-11.180859375000011],[132.15546875000004,-11.311132812499991],[132.33398437499997,-11.223535156249994],[132.6828125000001,-11.505566406249997],[132.96103515625012,-11.407324218749963],[133.18525390625004,-11.705664062499991],[133.90419921875,-11.832031249999972],[134.4173828125,-12.052734375],[134.73027343750002,-11.984375],[135.02968750000005,-12.19375],[135.2179687500001,-12.221679687499957],[135.92246093750012,-11.825781250000034],[135.70439453125007,-12.209863281250037],[136.00849609375004,-12.19140625],[136.08183593750007,-12.422460937500006],[136.26064453125,-12.433789062499997],[136.32851562500005,-12.305566406249994],[136.24990234375,-12.173046875],[136.44335937499997,-11.951464843749974],[136.7194335937501,-12.226464843749952],[136.89746093749997,-12.243554687499966],[136.94746093750004,-12.34990234374996],[136.53701171875,-12.784277343749991],[136.59433593750012,-13.003808593750051],[136.46103515625006,-13.225195312500034],[136.29414062500004,-13.137988281250031],[135.92734375000012,-13.304296874999977],[135.95449218750005,-13.934863281250017],[135.40517578125005,-14.758203124999966],[135.4533203125001,-14.923144531250003],[136.20537109375002,-15.403417968749963],[136.29140625000005,-15.570117187500003],[136.70488281250007,-15.685253906250011],[136.78466796874997,-15.89423828125004],[137.00214843750004,-15.878320312499994],[137.70371093750006,-16.233007812499963],[138.24501953125005,-16.718359374999977],[139.00986328125006,-16.899316406249994],[139.2484375,-17.328613281249957],[140.03583984375004,-17.702636718749957],[140.51113281250005,-17.62451171875003],[140.83046875,-17.414453125000037],[141.29140625,-16.46347656250002],[141.62548828124997,-15.056640625000014],[141.52294921875003,-14.470117187499994],[141.59433593750006,-14.152832031250014],[141.47255859375,-13.797558593750011],[141.64541015625,-13.259082031250003],[141.61357421875002,-12.943457031250006],[141.92978515625006,-12.73984375],[141.67773437500003,-12.491406250000011],[141.68857421875012,-12.351074218750028],[141.87050781250005,-11.9755859375],[141.96113281250004,-12.054296874999963],[142.168359375,-10.946582031249974],[142.45644531250005,-10.707324218749989],[142.60507812500012,-10.748242187499983],[142.55273437500003,-10.874414062500023],[142.7796875,-11.115332031249977],[142.87255859374997,-11.821386718750034],[143.17890625000004,-11.954492187499966]]],[[[142.2748046875,-10.704785156250011],[142.19140624999997,-10.762011718750031],[142.1310546875001,-10.640625],[142.19794921875004,-10.59199218750004],[142.2748046875,-10.704785156250011]]]]},"properties":{"name":"Australia","childNum":30}},{"geometry":{"type":"Polygon","coordinates":[[[16.953125,48.598828125],[16.86542968750001,48.3869140625],[17.147363281250023,48.00595703125],[17.06660156250001,47.707568359374996],[16.421289062500023,47.674462890624994],[16.676562500000017,47.536035156249994],[16.44287109375,47.39951171875],[16.453417968750017,47.006787109375],[16.093066406250017,46.86328125],[15.957617187500006,46.677636718749994],[14.893261718750011,46.605908203125],[14.5498046875,46.399707031249996],[13.7,46.520263671875],[13.490039062500017,46.555566406249994],[13.3515625,46.557910156249996],[13.16875,46.57265625],[12.479199218750011,46.672509765624994],[12.38828125,46.70263671875],[12.330078125,46.759814453124996],[12.267968750000023,46.835888671875],[12.154101562500017,46.93525390625],[12.130761718750023,46.98476562499999],[12.16552734375,47.028173828125],[12.201269531250006,47.060888671875],[12.197167968750023,47.075],[12.16943359375,47.08212890625],[11.775683593750017,46.986083984375],[11.527539062500011,46.997412109375],[11.433203125,46.983056640624994],[11.244433593750017,46.97568359375],[11.133886718750006,46.936181640624994],[11.0634765625,46.859130859375],[11.025097656250011,46.79697265625],[10.993261718750006,46.777001953124994],[10.92734375,46.769482421875],[10.828906250000017,46.775244140625],[10.759765625,46.793310546875],[10.689257812500017,46.84638671875],[10.579785156250011,46.8537109375],[10.479394531250023,46.855126953124994],[10.452832031250011,46.86494140625],[10.45458984375,46.8994140625],[10.414941406250023,46.964404296874996],[10.349414062500017,46.98476562499999],[10.133496093750011,46.851513671875],[9.580273437500011,47.057373046875],[9.527539062500011,47.270751953125],[9.625878906250023,47.467041015625],[9.524023437500006,47.52421875],[9.748925781250023,47.575537109375],[9.839160156250017,47.552294921874996],[9.971582031250023,47.505322265625],[10.034082031250023,47.473583984375],[10.059863281250017,47.449072265625],[10.066308593750023,47.393359375],[10.200292968750006,47.363427734374994],[10.183007812500023,47.27880859375],[10.369140625,47.366064453125],[10.40390625,47.4169921875],[10.439453125,47.5515625],[10.482812500000023,47.541796875],[10.65869140625,47.547216796875],[10.741601562500023,47.52412109375],[10.873046875,47.52021484375],[11.0419921875,47.393115234374996],[12.185644531250006,47.61953125],[12.203808593750011,47.646728515625],[12.196875,47.70908203125],[12.209277343750017,47.71826171875],[12.268359375000017,47.702734375],[12.353540736607165,47.70264787946429],[12.492553013392856,47.68551897321428],[12.685839843750017,47.669335937499994],[12.771386718750023,47.639404296875],[12.796191406250017,47.60703125],[12.781152343750023,47.5904296875],[12.7828125,47.56416015625],[12.809375,47.5421875],[12.87890625,47.5064453125],[12.968066406250017,47.47568359375],[13.014355468750011,47.478076171874996],[13.031542968750017,47.5080078125],[13.047949218750006,47.579150390624996],[13.054101562500023,47.655126953125],[12.897656250000011,47.721875],[12.953515625000023,47.890625],[12.760351562500006,48.106982421874996],[13.215234375000023,48.301904296874994],[13.322851562500006,48.33125],[13.409375,48.394140625],[13.459863281250023,48.56455078125],[13.4716796875,48.571826171874996],[13.486621093750017,48.581835937499996],[13.636623883928596,48.580904017857144],[13.785351562500011,48.587451171874996],[13.798828125,48.6216796875],[13.802929687500011,48.747509765625],[13.814746093750017,48.766943359375],[14.049121093750017,48.602490234375],[14.691308593750023,48.59921875],[15.066796875000023,48.997851562499996],[16.057226562500006,48.754785156249994],[16.543554687500006,48.796240234375],[16.953125,48.598828125]]]},"properties":{"name":"Austria","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[46.1144531250001,38.877783203125034],[45.4796875000001,39.00625],[44.81718750000002,39.65043945312496],[44.76826171875004,39.70351562500005],[45.03164062500005,39.76513671874997],[45.15283203125003,39.58266601562502],[45.456835937500074,39.494482421875006],[45.78447265625002,39.54560546875001],[45.76630859375004,39.37846679687499],[45.977441406249994,39.24389648437503],[46.1144531250001,38.877783203125034]]],[[[48.572851562500006,41.84448242187503],[49.45673828125004,40.79985351562502],[49.77597656250006,40.583984375],[50.18251953125005,40.50478515625002],[50.3659179687501,40.279492187499955],[49.91884765625005,40.31640625000003],[49.55117187499999,40.19414062499999],[49.3244140625001,39.60834960937501],[49.36279296875003,39.349560546874955],[49.16533203125002,39.03027343750003],[49.013476562500074,39.13398437500001],[48.85449218750003,38.83881835937501],[48.86875,38.43549804687498],[48.59267578125005,38.41108398437498],[47.99648437499999,38.85375976562503],[48.292089843750006,39.01884765624999],[48.10439453125005,39.241113281249994],[48.322167968749994,39.39907226562502],[47.995898437500074,39.683935546875034],[46.490625,38.90668945312498],[46.400292968749994,39.1921875],[46.584765625000074,39.22368164062499],[46.36523437500003,39.402490234374994],[46.48144531249997,39.55517578125003],[46.202050781249994,39.59448242187503],[45.57978515625004,39.9775390625],[45.8859375000001,40.024853515624955],[45.96464843750002,40.233789062499966],[45.45439453125002,40.532373046874966],[45.37890624999997,40.67358398437506],[45.5875,40.846923828125],[45.07050781250004,41.075585937499966],[45.188574218750006,41.14741210937504],[45.001367187499994,41.29096679687498],[45.2171875,41.423193359375006],[45.28095703125004,41.449560546875034],[46.086523437500006,41.183837890625],[46.43095703125002,41.077050781249994],[46.534375,41.08857421875004],[46.62636718750005,41.15966796875006],[46.66240234375002,41.24550781250002],[46.67255859375004,41.28681640625001],[46.61894531250002,41.34375],[46.30546875000002,41.507714843749994],[46.18427734375004,41.70214843749997],[46.42988281250004,41.890966796875006],[46.74931640625002,41.812597656250006],[47.31767578125002,41.28242187500001],[47.79101562499997,41.19926757812502],[48.572851562500006,41.84448242187503]]]]},"properties":{"name":"Azerbaijan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[30.553613281250023,-2.400097656250011],[30.53369140625,-2.42626953125],[30.441992187500006,-2.613476562500011],[30.424218750000023,-2.6416015625],[30.47333984375001,-2.6943359375],[30.42402343750001,-2.824023437500003],[30.433496093750023,-2.87451171875],[30.515039062500023,-2.917578125],[30.604296875000017,-2.935253906250011],[30.70947265625,-2.977246093750011],[30.7802734375,-2.98486328125],[30.811132812500006,-3.116406250000011],[30.79023437500001,-3.274609375000011],[30.4,-3.65390625],[29.947265625,-4.307324218750011],[29.7177734375,-4.455859375],[29.403222656250023,-4.449316406250006],[29.211816406250023,-3.833789062500003],[29.224414062500017,-3.053515625],[29.01435546875001,-2.72021484375],[29.10205078125,-2.595703125],[29.390234375,-2.80859375],[29.698046875000017,-2.794726562500003],[29.8681640625,-2.71640625],[29.93017578125,-2.339550781250011],[30.117285156250006,-2.416601562500006],[30.408496093750017,-2.31298828125],[30.553613281250023,-2.400097656250011]]]},"properties":{"name":"Burundi","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[5.693554687500011,50.774755859375006],[5.993945312500017,50.75043945312504],[6.340917968750006,50.451757812500034],[6.116503906250045,50.120996093749966],[6.08906250000004,50.15458984374996],[6.054785156249977,50.154296875],[5.976269531250068,50.167187499999955],[5.866894531250068,50.08281250000002],[5.817382812500028,50.01269531250003],[5.7880859375,49.96123046875002],[5.744042968749994,49.91962890624998],[5.789746093749983,49.53828125000001],[5.50732421875,49.51088867187502],[4.867578125000051,49.78813476562502],[4.818652343750045,50.153173828125034],[4.545019531250063,49.96025390624999],[4.149316406250023,49.971582031249994],[4.174609375000017,50.24648437500005],[3.689355468750023,50.30605468750002],[3.595410156250068,50.47734374999999],[3.27333984375008,50.53154296875002],[3.10683593750008,50.779443359374994],[2.759375,50.750634765624994],[2.52490234375,51.097119140624955],[3.35009765625,51.37768554687503],[3.43251953125008,51.24575195312505],[3.902050781250011,51.20766601562502],[4.226171875000034,51.38647460937503],[5.03095703125004,51.46909179687498],[5.214160156250045,51.278955078124966],[5.796484375000034,51.153076171875],[5.693554687500011,50.774755859375006]]]},"properties":{"name":"Belgium","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[3.595410156250011,11.6962890625],[3.553906250000011,11.631884765624989],[3.490527343750017,11.49921875],[3.48779296875,11.395410156249994],[3.638867187500011,11.176855468749991],[3.65625,11.154589843749989],[3.6953125,11.1203125],[3.71640625,11.07958984375],[3.7568359375,10.76875],[3.83447265625,10.607421875],[3.771777343750017,10.417626953124994],[3.646582031250006,10.408984374999989],[3.60205078125,10.004541015624994],[3.3251953125,9.778466796874994],[3.044921875,9.083837890624991],[2.774804687500023,9.048535156249997],[2.703125,8.371826171875],[2.68603515625,7.873730468749997],[2.719335937500006,7.616259765624989],[2.7509765625,7.541894531249994],[2.78515625,7.476855468749989],[2.783984375000017,7.443408203124989],[2.765820312500011,7.422509765624994],[2.75048828125,7.395068359374989],[2.756738281250023,7.067919921874989],[2.721386718750011,6.980273437499989],[2.731738281250017,6.852832031249989],[2.7529296875,6.771630859374994],[2.774609375000011,6.711718749999989],[2.753710937500017,6.661767578124994],[2.735644531250017,6.595703125],[2.706445312500023,6.369238281249991],[1.62265625,6.216796875],[1.777929687500006,6.294628906249997],[1.530957031250011,6.992431640625],[1.624707031250011,6.997314453125],[1.600195312500006,9.050048828125],[1.3857421875,9.361669921874991],[1.330078125,9.996972656249994],[0.763378906250011,10.386669921874997],[0.900488281250006,10.993261718749991],[1.4267578125,11.447119140624991],[1.980371093750023,11.418408203124997],[2.38916015625,11.897070312499991],[2.366015625000017,12.221923828125],[2.805273437500006,12.383837890624989],[3.595410156250011,11.6962890625]]]},"properties":{"name":"Benin","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[0.217480468750011,14.911474609374991],[0.163867187500017,14.497216796874994],[0.382519531250011,14.245800781249997],[0.42919921875,13.972119140624997],[0.6181640625,13.703417968750003],[1.201171875,13.357519531249991],[0.988476562500011,13.36484375],[0.9873046875,13.041894531249994],[1.56494140625,12.635400390624994],[2.104589843750006,12.701269531249991],[2.226269531250011,12.466064453125],[2.072949218750011,12.309375],[2.38916015625,11.897070312499991],[1.980371093750023,11.418408203124997],[1.4267578125,11.447119140624991],[0.900488281250006,10.993261718749991],[0.49267578125,10.954980468749994],[-0.068603515625,11.115625],[-0.299462890624994,11.166894531249994],[-0.627148437499983,10.927392578124994],[-1.04248046875,11.010058593749989],[-2.829931640624977,10.998388671874991],[-2.914892578124977,10.592333984374989],[-2.791162109374994,10.432421874999989],[-2.780517578125,9.745849609375],[-2.765966796874977,9.658056640624991],[-2.706201171874994,9.533935546875],[-2.695849609374989,9.481347656249994],[-2.7171875,9.457128906249991],[-2.7666015625,9.424707031249994],[-2.816748046874977,9.425830078124989],[-2.875146484374994,9.500927734374997],[-2.90087890625,9.534619140624997],[-2.948144531249994,9.610742187499994],[-2.98828125,9.687353515624991],[-3.042626953124994,9.720898437499997],[-3.095800781249977,9.752099609374994],[-3.160693359374989,9.849169921874989],[-3.223535156249994,9.895458984374997],[-3.289697265624994,9.882226562499994],[-3.581152343749977,9.92431640625],[-3.790625,9.9171875],[-4.18115234375,9.78173828125],[-4.267187499999977,9.743261718749991],[-4.332226562499983,9.645703125],[-4.406201171874983,9.647998046874989],[-4.526611328125,9.723486328124991],[-4.625830078124977,9.713574218749997],[-4.721777343749977,9.756542968749997],[-5.262304687499977,10.319677734374991],[-5.523535156249977,10.426025390625],[-5.490478515625,11.042382812499994],[-5.250244140625,11.375781249999989],[-5.288134765624989,11.827929687499989],[-4.699316406249977,12.076171875],[-4.4287109375,12.337597656249997],[-4.480615234374994,12.672216796874991],[-4.227099609374989,12.793701171875],[-4.328710937499977,13.119042968749994],[-4.151025390624994,13.306201171875003],[-3.947314453124989,13.402197265624991],[-3.527636718749989,13.182714843749991],[-3.3017578125,13.28076171875],[-3.248632812499977,13.658349609374994],[-2.950830078124994,13.6484375],[-2.873925781249994,13.950732421875003],[-2.586718749999989,14.227587890625003],[-2.113232421874983,14.16845703125],[-1.97304687499999,14.45654296875],[-1.049560546875,14.81953125],[-0.760449218749983,15.047753906249994],[-0.235888671874989,15.059423828124991],[0.217480468750011,14.911474609374991]]]},"properties":{"name":"Burkina Faso","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[91.94921875000003,21.50805664062503],[91.85947265625012,21.532958984375057],[91.90771484374997,21.722949218750017],[91.94921875000003,21.50805664062503]]],[[[91.87382812500002,21.832128906249977],[91.8375976562501,21.750244140625],[91.85068359375012,21.927050781250045],[91.87382812500002,21.832128906249977]]],[[[91.15078125000005,22.175195312499966],[91.04472656250002,22.10517578125001],[91.0794921875,22.519726562499983],[91.15078125000005,22.175195312499966]]],[[[91.55673828125006,22.38222656250005],[91.41132812500004,22.475683593750006],[91.45605468749997,22.61650390624999],[91.55673828125006,22.38222656250005]]],[[[90.77763671875007,22.089306640624983],[90.51503906250005,22.06513671875001],[90.68046875000007,22.327490234375006],[90.50292968749997,22.835351562499994],[90.59648437500002,22.863525390625057],[90.86816406250003,22.48486328125],[90.77763671875007,22.089306640624983]]],[[[88.94072265625002,26.24536132812497],[88.97041015625004,26.250878906250023],[88.95195312500002,26.412109375],[89.01865234375012,26.410253906249977],[89.28925781250004,26.03759765625],[89.54990234375006,26.005273437499994],[89.57275390625003,26.13232421875003],[89.67089843750003,26.21381835937504],[89.8229492187501,25.94140625000003],[89.82490234375004,25.56015625],[89.80087890625012,25.33613281250001],[89.81406250000006,25.305371093749955],[89.86630859375012,25.293164062499955],[90.11962890625003,25.21997070312497],[90.61308593750002,25.16772460937497],[92.04970703125005,25.16948242187499],[92.46835937500006,24.94414062499999],[92.38496093750004,24.848779296875023],[92.25126953125007,24.895068359375045],[92.22832031250002,24.88134765625],[92.22666015625012,24.77099609374997],[92.11748046875002,24.493945312500017],[92.06416015625004,24.374365234375006],[91.84619140624997,24.17529296875003],[91.72656250000003,24.20507812499997],[91.35019531250012,24.06049804687501],[91.16044921875007,23.66064453125],[91.359375,23.06835937500003],[91.43623046875004,23.19990234375001],[91.55351562500002,22.991552734375006],[91.61953125,22.97968750000001],[91.75097656250003,23.053515625000017],[91.75419921875007,23.287304687499955],[91.79003906249997,23.361035156249983],[91.937890625,23.504687500000017],[91.92949218750007,23.598242187499977],[91.92958984375,23.68598632812501],[91.97851562500003,23.691992187499977],[92.04404296875006,23.677783203125017],[92.24609375000003,23.683593750000057],[92.33378906250002,23.242382812499955],[92.36162109375002,22.929003906250074],[92.46445312500006,22.734423828125045],[92.49140625000004,22.685400390625006],[92.5612304687501,22.04804687500001],[92.57490234375004,21.978076171875045],[92.58281250000002,21.940332031249994],[92.5934570312501,21.46733398437499],[92.63164062500002,21.306201171875045],[92.33056640624997,21.439794921874977],[92.17958984375005,21.293115234375023],[92.32412109375,20.791845703125063],[92.0560546875,21.1748046875],[91.86337890625012,22.350488281249966],[91.7970703125001,22.297460937500006],[91.48007812500006,22.884814453125045],[91.2162109375,22.642236328124994],[90.94560546875002,22.597021484375034],[90.65625,23.025488281250006],[90.60400390624997,23.59135742187499],[90.55566406249997,23.42153320312505],[90.26914062500012,23.455859375000017],[90.59091796875012,23.266406250000045],[90.43505859374997,22.751904296874955],[90.61611328125,22.362158203125034],[90.23056640625006,21.82978515625004],[90.07119140625005,21.887255859375017],[90.20957031250006,22.156591796875006],[89.95419921875006,22.022851562500023],[89.91806640625012,22.11616210937501],[89.98515625000002,22.466406250000063],[89.81191406250005,21.983496093750006],[89.56855468750004,21.767431640625034],[89.48320312500007,22.275537109374994],[89.50058593750006,21.914355468750045],[89.35371093750004,21.72109375],[89.09394531250004,21.872753906249983],[89.05,22.274609374999983],[88.92070312500002,22.632031249999955],[88.89970703125002,22.843505859375057],[88.85058593749997,23.040527343750057],[88.928125,23.186621093750063],[88.72441406250002,23.254980468750034],[88.69765625,23.493017578125034],[88.63574218749997,23.55],[88.56738281249997,23.674414062500034],[88.69980468750006,24.002539062500006],[88.71376953125,24.069628906250017],[88.72656250000003,24.186230468749955],[88.7335937500001,24.23090820312501],[88.72353515625,24.27490234375],[88.64228515625004,24.325976562500017],[88.49853515625003,24.34663085937504],[88.3375,24.45385742187503],[88.225,24.460644531249983],[88.14550781250003,24.485791015624955],[88.07910156249997,24.549902343750063],[88.02343750000003,24.62783203125005],[88.03027343749997,24.66445312500005],[88.0451171875001,24.713037109374994],[88.1498046875,24.914648437500034],[88.1888671875,24.92060546875001],[88.27949218750004,24.881933593750034],[88.31337890625005,24.8818359375],[88.37294921875,24.961523437499977],[88.45625,25.18842773437504],[88.57382812500006,25.18789062499999],[88.92978515625012,25.222998046875063],[88.94414062500002,25.290771484375],[88.85478515625002,25.333544921875017],[88.76914062500006,25.490478515625],[88.50244140624997,25.537011718749994],[88.14746093749997,25.811425781250023],[88.1066406250001,25.841113281250045],[88.15078125000005,26.08715820312497],[88.33398437499997,26.257519531249955],[88.44042968749997,26.369482421875034],[88.38623046875003,26.471533203125034],[88.35146484375005,26.482568359374966],[88.36992187500002,26.564111328124994],[88.51826171875004,26.517773437499955],[88.68281250000004,26.291699218749983],[88.94072265625002,26.24536132812497]]]]},"properties":{"name":"Bangladesh","childNum":6}},{"geometry":{"type":"Polygon","coordinates":[[[28.585351562500023,43.742236328124996],[28.465429687500006,43.389306640624994],[28.133691406250023,43.39560546875],[27.92890625000001,43.1861328125],[27.88886718750001,42.74970703125],[27.484765625000023,42.468066406249996],[28.014453125000017,41.969042968749996],[27.47480468750001,41.946875],[27.294921875,42.079541015625],[27.24433593750001,42.09326171875],[27.01171875,42.058642578124996],[26.96875,42.02685546875],[26.884863281250006,41.991845703124994],[26.615332031250006,41.964892578124996],[26.549707031250023,41.896728515625],[26.51142578125001,41.8263671875],[26.3603515625,41.8015625],[26.327246093750006,41.772802734375],[26.31796875,41.744677734374996],[26.320898437500006,41.716552734375],[26.200585937500023,41.743798828124994],[26.107421875,41.72568359375],[26.085546875,41.704150390624996],[26.066015625,41.673242187499994],[26.1435546875,41.521533203124996],[26.155175781250023,41.434863281249996],[26.135351562500006,41.3857421875],[26.06640625,41.35068359375],[25.92333984375,41.311914062499994],[25.784960937500017,41.330419921875],[25.52705078125001,41.2998046875],[25.381933593750006,41.26435546875],[25.25117187500001,41.243554687499994],[24.773730468750017,41.356103515624994],[24.595996093750017,41.442724609375],[24.5693359375,41.4673828125],[24.51826171875001,41.552539062499996],[24.487890625,41.555224609374996],[24.056054687500023,41.527246093749994],[24.03291015625001,41.469091796875],[24.011328125,41.46005859375],[23.635156250000023,41.386767578124996],[23.53583984375001,41.386035156249996],[23.433398437500017,41.398730468749996],[23.3720703125,41.3896484375],[23.23984375,41.3849609375],[23.15595703125001,41.322070312499996],[22.916015625,41.336279296875],[23.00361328125001,41.73984375],[22.836816406250023,41.993603515625],[22.344042968750017,42.31396484375],[22.42207031250001,42.328857421875],[22.445703125000023,42.359130859375],[22.523535156250006,42.440966796874996],[22.53242187500001,42.481201171875],[22.524218750000017,42.50390625],[22.43623046875001,42.6291015625],[22.466796875,42.84248046875],[22.799902343750006,42.985742187499994],[22.976855468750017,43.18798828125],[22.85957031250001,43.25234375],[22.819726562500023,43.300732421875],[22.767578125,43.354150390624994],[22.554589843750023,43.454492187499994],[22.36962890625,43.781298828124996],[22.36542968750001,43.862109375],[22.399023437500006,43.96953125],[22.420800781250023,44.007421875],[22.452529688228115,44.0510441391688],[22.547921095934313,44.113823956634434],[22.688564844478098,44.254306249271906],[23.02851562500001,44.077978515625],[22.868261718750006,43.947900390624994],[22.919042968750006,43.83447265625],[25.4970703125,43.670800781249994],[26.2158203125,44.007275390625],[27.0869140625,44.167382812499994],[27.425390625,44.0205078125],[27.88427734375,43.987353515624996],[28.221972656250017,43.772851562499994],[28.585351562500023,43.742236328124996]]]},"properties":{"name":"Bulgaria","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[50.60722656250002,25.883105468750003],[50.57490234375001,25.806787109374994],[50.465917968750006,25.965527343749997],[50.46992187500001,26.228955078124997],[50.5859375,26.24072265625],[50.60722656250002,25.883105468750003]]]},"properties":{"name":"Bahrain","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-73.02685546874994,21.19238281250003],[-73.16455078125003,20.979150390625023],[-73.68115234375003,20.9755859375],[-73.68037109374995,21.103320312500017],[-73.52309570312497,21.190820312499966],[-73.23535156249997,21.15449218750004],[-73.05849609375,21.313378906249994],[-73.02685546874994,21.19238281250003]]],[[[-73.041015625,22.429052734375006],[-72.74726562500001,22.32739257812497],[-73.16191406250002,22.380712890625006],[-73.041015625,22.429052734375006]]],[[[-74.20673828124998,22.213769531250023],[-74.27690429687499,22.183691406250006],[-73.906396484375,22.527441406250063],[-73.95419921874995,22.71552734375001],[-73.84995117187503,22.731054687500063],[-73.83652343749998,22.538427734374977],[-74.20673828124998,22.213769531250023]]],[[[-74.05751953124997,22.723486328125034],[-74.27460937499995,22.71166992187503],[-74.30703125,22.83959960937497],[-74.05751953124997,22.723486328125034]]],[[[-74.84047851562494,22.894335937500017],[-75.22333984374995,23.165332031250074],[-75.13056640624998,23.267919921875006],[-75.31596679687502,23.668359374999966],[-74.84047851562494,22.894335937500017]]],[[[-75.66455078124997,23.45014648437501],[-76.03710937500003,23.60278320312503],[-76.01044921875001,23.671386718750057],[-75.66455078124997,23.45014648437501]]],[[[-74.42944335937497,24.068066406249955],[-74.55092773437502,23.96894531250001],[-74.52690429687502,24.105078125000034],[-74.42944335937497,24.068066406249955]]],[[[-77.65771484374994,24.249462890624955],[-77.75527343750002,24.163476562500023],[-77.61538085937494,24.216357421875045],[-77.5615234375,24.136816406250006],[-77.57373046875,23.739160156249994],[-77.77128906249999,23.752539062499977],[-77.99990234374994,24.219824218750063],[-77.65771484374994,24.249462890624955]]],[[[-75.30839843749999,24.2],[-75.50322265624996,24.139062500000023],[-75.40893554687503,24.265771484374994],[-75.72666015625,24.68935546875005],[-75.30839843749999,24.2]]],[[[-77.34755859375,25.013867187499983],[-77.56191406249997,25.030029296875],[-77.27558593750001,25.055761718750006],[-77.34755859375,25.013867187499983]]],[[[-77.74384765625001,24.70742187499999],[-77.74521484375,24.463476562500034],[-78.04492187499997,24.287451171875063],[-78.14580078125002,24.493457031250017],[-78.36650390624993,24.544189453125057],[-78.435302734375,24.627587890624994],[-78.24272460937493,24.65380859375],[-78.21137695312495,25.191259765624977],[-77.97529296874998,25.084814453125063],[-77.74384765625001,24.70742187499999]]],[[[-76.64882812499994,25.487402343750006],[-76.34379882812496,25.33203124999997],[-76.12661132812497,25.14052734375005],[-76.16953125,24.6494140625],[-76.319970703125,24.81767578124999],[-76.21376953124994,24.822460937499983],[-76.160400390625,25.119335937499983],[-76.36928710937502,25.312597656250006],[-76.62070312499998,25.43164062500003],[-76.78066406249997,25.426855468750006],[-76.71083984374997,25.564892578124983],[-76.64882812499994,25.487402343750006]]],[[[-78.49287109375001,26.729052734375017],[-77.92246093749998,26.69111328125001],[-78.74365234374994,26.50068359375004],[-78.98564453124996,26.689501953125045],[-78.79804687500001,26.58242187499999],[-78.59711914062493,26.797949218750006],[-78.49287109375001,26.729052734375017]]],[[[-77.22563476562496,25.904199218750023],[-77.40317382812498,26.02470703124996],[-77.24677734374998,26.156347656250034],[-77.238623046875,26.561132812500006],[-77.510595703125,26.845996093750045],[-77.94375,26.90356445312503],[-77.53388671874995,26.903417968750006],[-77.06635742187501,26.530175781249994],[-77.03828124999998,26.333447265624983],[-77.16728515624996,26.240332031250006],[-77.22563476562496,25.904199218750023]]]]},"properties":{"name":"Bahamas","childNum":14}},{"geometry":{"type":"Polygon","coordinates":[[[19.007128906250045,44.86918945312502],[19.348632812500057,44.88090820312502],[19.118457031250074,44.359960937500006],[19.583789062500017,44.04345703125003],[19.245019531249994,43.96503906250004],[19.495117187500057,43.642871093750045],[19.19433593749997,43.533300781250006],[19.164355468750017,43.53544921874999],[19.11279296874997,43.52773437500002],[19.080078125000057,43.51772460937502],[19.0283203125,43.53251953125002],[18.97421875,43.54233398437498],[18.95068359375,43.52666015624999],[19.036718750000034,43.35732421875002],[19.026660156250017,43.292431640624955],[18.97871093750001,43.28540039062503],[18.934667968750006,43.339453125000034],[18.85107421875003,43.34633789062502],[18.749218750000068,43.283544921875006],[18.67421875000008,43.230810546875006],[18.623632812500063,43.027685546875034],[18.488476562500068,43.01215820312498],[18.44384765625003,42.96845703125004],[18.46601562500001,42.777246093749994],[18.54589843750003,42.64160156249997],[18.436328125000017,42.559716796874994],[17.667578125000063,42.897119140624994],[17.585156250000068,42.93837890625005],[17.650488281250063,43.006591796875],[17.27382812500005,43.44575195312501],[16.300097656250017,44.12451171875],[16.10341796875008,44.52099609375006],[15.736621093750045,44.76582031250001],[15.788085937500057,45.17895507812497],[16.028320312500057,45.18959960937502],[16.29335937500005,45.00883789062496],[16.53066406250008,45.21669921875002],[16.918652343749983,45.27656249999998],[17.812792968750074,45.078125],[18.66259765625,45.07744140624999],[18.83642578125,44.883251953124955],[19.007128906250045,44.86918945312502]]]},"properties":{"name":"Bosnia and Herz.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[28.14794921875,56.142919921875],[28.284277343750006,56.055908203125],[29.375,55.938720703125],[29.353417968750023,55.784375],[29.412988281250023,55.724853515625],[29.482226562500017,55.6845703125],[29.63007812500001,55.751171875],[29.6845703125,55.7697265625],[29.744140625,55.77041015625],[29.82392578125001,55.7951171875],[29.881640625000017,55.832324218749996],[29.93701171875,55.845263671874996],[30.04267578125001,55.83642578125],[30.23359375000001,55.84521484375],[30.625585937500006,55.666259765625],[30.906835937500006,55.57001953125],[30.90058593750001,55.397412109375],[30.82099609375001,55.3302734375],[30.810546875,55.306982421875],[30.814453125,55.2787109375],[30.87744140625,55.2234375],[30.958886718750023,55.13759765625],[30.97773437500001,55.08779296875],[30.97773437500001,55.05048828125],[30.829882812500017,54.914990234375],[30.804492187500017,54.8609375],[30.791015625,54.806005859375],[30.798828125,54.783251953124996],[30.984179687500017,54.6958984375],[31.12128906250001,54.648486328124996],[31.152148437500017,54.625341796875],[31.074804687500006,54.491796875],[31.18476562500001,54.452978515625],[31.299121093750017,54.29169921875],[31.403613281250017,54.195947265625],[31.62841796875,54.111181640625],[31.7919921875,54.055908203125],[31.825976562500017,54.030712890625],[31.837792968750023,54.00078125],[31.825292968750006,53.935009765625],[31.783007812500017,53.85498046875],[31.754199218750017,53.81044921875],[31.82080078125,53.791943359375],[31.9921875,53.796875],[32.20039062500001,53.78125],[32.45097656250002,53.6533203125],[32.70429687500001,53.336328125],[32.64443359375002,53.32890625],[32.57802734375002,53.31240234375],[32.469335937500006,53.2703125],[32.14199218750002,53.091162109375],[31.849707031250006,53.106201171875],[31.668261718750017,53.200927734375],[31.417871093750023,53.196044921875],[31.38837890625001,53.184814453125],[31.364550781250017,53.138964843749996],[31.30292968750001,53.060888671875],[31.2587890625,53.01669921875],[31.29511718750001,52.989794921874996],[31.35302734375,52.933447265625],[31.442773437500023,52.86181640625],[31.53515625,52.7982421875],[31.564843750000023,52.759228515625],[31.585546875,52.532470703125],[31.57734375000001,52.312304687499996],[31.6015625,52.284814453125],[31.64990234375,52.26220703125],[31.690625,52.220654296875],[31.758593750000017,52.125830078125],[31.76337890625001,52.10107421875],[31.57373046875,52.10810546875],[31.345996093750017,52.10537109375],[31.21796875000001,52.050244140625],[30.98066406250001,52.046191406249996],[30.845703125,51.953076171875],[30.755273437500023,51.895166015625],[30.667285156250017,51.814111328125],[30.583886718750023,51.68896484375],[30.533007812500017,51.596337890624994],[30.56074218750001,51.531494140625],[30.602343750000017,51.471240234374996],[30.611718750000023,51.40634765625],[30.63251953125001,51.355419921875],[30.449511718750017,51.274316406249994],[30.160742187500006,51.477880859375],[29.346484375000017,51.382568359375],[29.10205078125,51.6275390625],[29.06074218750001,51.625439453125],[29.013085937500023,51.598925781249996],[28.97773437500001,51.57177734375],[28.927539062500017,51.562158203124994],[28.849511718750023,51.540185546874994],[28.73125,51.433398437499996],[28.690234375000017,51.438867187499994],[28.647753906250017,51.45654296875],[28.599023437500023,51.542626953124994],[28.532031250000017,51.562451171875],[27.85859375000001,51.5923828125],[27.7,51.477978515625],[27.689746093750017,51.572412109374994],[27.296289062500023,51.597412109375],[27.270117187500006,51.613574218749996],[27.141992187500023,51.75205078125],[27.074121093750023,51.76083984375],[26.95283203125001,51.75400390625],[26.7734375,51.770703125],[25.785742187500006,51.923828125],[24.361914062500006,51.867529296875],[24.280078125000017,51.774707031249996],[24.126855468750023,51.6646484375],[23.978320312500017,51.59130859375],[23.951171875,51.58505859375],[23.8642578125,51.623974609375],[23.79169921875001,51.637109375],[23.706835937500017,51.64130859375],[23.61376953125,51.525390625],[23.605273437500017,51.517919921875],[23.652441406250006,52.040380859375],[23.175097656250017,52.28662109375],[23.915429687500023,52.770263671875],[23.484667968750017,53.939794921875],[23.55908203125,53.91982421875],[23.733691406250017,53.912255859375],[24.191308593750023,53.950439453125],[24.236621093750017,53.919970703124996],[24.31796875,53.89296875],[24.620703125,53.979833984375],[24.768164062500006,53.974658203124996],[24.78925781250001,53.9982421875],[24.82568359375,54.118994140625],[24.869531250000023,54.145166015625],[25.04609375000001,54.133056640625],[25.111425781250006,54.154931640625],[25.179492187500017,54.2142578125],[25.46113281250001,54.292773437499996],[25.505664062500017,54.264941406249996],[25.52734375,54.215136718749996],[25.497363281250017,54.175244140625],[25.573046875000017,54.139892578125],[25.765234375,54.17978515625],[25.702539062500023,54.29296875],[25.61689453125001,54.310107421874996],[25.557519531250023,54.310693359375],[25.54736328125,54.331835937499996],[25.56757812500001,54.37705078125],[25.62031250000001,54.460400390625],[25.68515625,54.535791015625],[25.72480468750001,54.564257812499996],[25.73164062500001,54.590380859374996],[25.722460937500017,54.71787109375],[25.859277343750023,54.919287109375],[25.964453125,54.94716796875],[26.09296875000001,54.9623046875],[26.175195312500023,55.003271484375],[26.250781250000017,55.12451171875],[26.291796875000017,55.139599609375],[26.601171875,55.130175781249996],[26.6484375,55.20419921875],[26.775683593750017,55.273095703125],[26.760156250000023,55.293359375],[26.68125,55.306445312499996],[26.49531250000001,55.318017578125],[26.457617187500006,55.34248046875],[26.469531250000017,55.371923828125],[26.51923828125001,55.44814453125],[26.56660156250001,55.546484375],[26.5908203125,55.62265625],[26.593554687500017,55.667529296874996],[27.052539062500017,55.83056640625],[27.576757812500006,55.798779296875],[28.14794921875,56.142919921875]]]},"properties":{"name":"Belarus","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-87.8529296875,17.4228515625],[-87.92998046874996,17.283007812500017],[-87.826416015625,17.546289062499994],[-87.8529296875,17.4228515625]]],[[[-88.89404296875,15.890625],[-89.2328125,15.888671875],[-89.16147460937503,17.81484375],[-89.13354492187503,17.970800781249977],[-88.80634765624998,17.965527343749983],[-88.52299804687499,18.445898437500063],[-88.29565429687494,18.47241210937503],[-88.34926757812494,18.358837890624983],[-88.1302734375,18.350732421875023],[-88.08525390624999,18.226123046875045],[-88.27172851562494,17.60986328125],[-88.203466796875,17.5166015625],[-88.31342773437501,16.632763671874983],[-88.89404296875,15.890625]]]]},"properties":{"name":"Belize","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-64.73027343749999,32.29345703125],[-64.86284179687499,32.273876953125],[-64.66831054687499,32.38193359375],[-64.73027343749999,32.29345703125]]]},"properties":{"name":"Bermuda","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-58.15976562499999,-20.164648437500006],[-58.18017578125,-19.81787109375],[-59.09052734375,-19.286230468750006],[-60.00737304687499,-19.29755859375001],[-61.7568359375,-19.6453125],[-62.276318359375,-20.5625],[-62.27666015624999,-21.066015625],[-62.65097656249999,-22.233691406250003],[-62.84335937499999,-21.99726562500001],[-63.92167968749999,-22.028613281250003],[-63.97612304687499,-22.072558593750003],[-64.26640624999999,-22.603320312500003],[-64.30791015624999,-22.7953125],[-64.32529296874999,-22.82763671875],[-64.373974609375,-22.761035156250003],[-64.4455078125,-22.58535156250001],[-64.477734375,-22.4853515625],[-64.5236328125,-22.37158203125],[-64.60551757812499,-22.228808593750003],[-64.992626953125,-22.109667968750003],[-65.518798828125,-22.09453125],[-65.686181640625,-22.11025390625001],[-65.77104492187499,-22.099609375],[-65.86015624999999,-22.01972656250001],[-66.05859375,-21.879492187500006],[-66.098583984375,-21.835058593750006],[-66.17465820312499,-21.8056640625],[-66.220166015625,-21.802539062500003],[-66.24760742187499,-21.83046875],[-66.28212890625,-21.94746093750001],[-66.3224609375,-22.053125],[-66.365185546875,-22.11376953125],[-66.71171874999999,-22.21630859375],[-66.99111328125,-22.509863281250006],[-67.19487304687499,-22.82167968750001],[-67.362255859375,-22.85517578125001],[-67.57993164062499,-22.891699218750006],[-67.79443359375,-22.879492187500006],[-67.87944335937499,-22.82294921875001],[-67.88173828125,-22.49335937500001],[-68.18642578125,-21.61855468750001],[-68.197021484375,-21.30029296875],[-68.558251953125,-20.901953125],[-68.484326171875,-20.62841796875],[-68.74516601562499,-20.45859375],[-68.75932617187499,-20.115527343750003],[-68.560693359375,-19.967089843750003],[-68.559375,-19.90234375],[-68.578271484375,-19.856542968750006],[-68.69619140625,-19.74072265625],[-68.69829101562499,-19.72109375],[-68.57529296874999,-19.56015625],[-68.462890625,-19.43281250000001],[-68.470166015625,-19.409960937500003],[-68.49199218749999,-19.381933593750006],[-68.85795898437499,-19.093359375],[-68.96831054687499,-18.96796875000001],[-68.97885742187499,-18.81298828125],[-69.026806640625,-18.65625],[-69.09228515625,-18.28242187500001],[-69.145458984375,-18.14404296875],[-69.0939453125,-18.05048828125001],[-69.28232421874999,-17.96484375],[-69.31337890625,-17.943164062500003],[-69.5109375,-17.50605468750001],[-69.51108398437499,-17.5048828125],[-69.510986328125,-17.46035156250001],[-69.521923828125,-17.388964843750003],[-69.645703125,-17.24853515625],[-69.62485351562499,-17.2001953125],[-69.020703125,-16.6421875],[-69.03291015625,-16.47597656250001],[-68.8427734375,-16.337890625],[-69.21757812499999,-16.14912109375001],[-69.4208984375,-15.640625],[-69.17246093749999,-15.236621093750003],[-69.37470703125,-14.962988281250006],[-69.35947265624999,-14.7953125],[-68.87089843749999,-14.169726562500003],[-69.07412109375,-13.682812500000011],[-68.97861328124999,-12.880078125000011],[-68.68525390625,-12.501953125],[-69.57861328125,-10.951757812500006],[-69.228515625,-10.955664062500006],[-68.84833984375,-11.011132812500009],[-68.678369140625,-11.11279296875],[-68.39799804687499,-11.01875],[-68.0716796875,-10.703125],[-67.99169921875,-10.674414062500006],[-67.83500976562499,-10.662792968750011],[-67.72177734374999,-10.68310546875],[-67.416943359375,-10.389843750000011],[-66.575341796875,-9.89990234375],[-65.396142578125,-9.71240234375],[-65.298583984375,-10.146777343750003],[-65.31308593749999,-10.253027343750006],[-65.395458984375,-10.392285156250011],[-65.4369140625,-10.449023437500003],[-65.44711914062499,-10.507421875],[-65.33403320312499,-10.892773437500011],[-65.32377929687499,-11.024804687500009],[-65.389892578125,-11.246289062500011],[-65.1857421875,-11.74951171875],[-64.783447265625,-12.059375],[-64.42050781249999,-12.439746093750003],[-63.68857421874999,-12.47802734375],[-63.3466796875,-12.680078125],[-63.06748046874999,-12.669140625000011],[-62.76547851562499,-12.997265625000011],[-62.11801757812499,-13.159765625],[-62.09477539062499,-13.241992187500003],[-61.944726562499994,-13.40625],[-61.87412109374999,-13.470410156250011],[-61.789941406249994,-13.525585937500011],[-61.57568359375,-13.524804687500009],[-61.51157226562499,-13.541210937500011],[-61.41606445312499,-13.526562500000011],[-61.129150390625,-13.49853515625],[-61.07700195312499,-13.48974609375],[-60.506591796875,-13.78984375],[-60.372705078124994,-14.41875],[-60.273339843749994,-15.088769531250009],[-60.402001953124994,-15.0927734375],[-60.583203125,-15.098339843750011],[-60.53046875,-15.143164062500006],[-60.38046875,-15.318261718750009],[-60.242333984374994,-15.479589843750006],[-60.20664062499999,-15.901953125],[-60.18720703125,-16.132128906250003],[-60.17558593749999,-16.269335937500003],[-58.53793945312499,-16.328222656250006],[-58.49658203125,-16.32666015625],[-58.42368164062499,-16.307910156250003],[-58.37539062499999,-16.28359375],[-58.345605468749994,-16.284375],[-58.35039062499999,-16.490820312500006],[-58.470605468749994,-16.650195312500003],[-58.478125,-16.70068359375],[-58.45981445312499,-16.910742187500006],[-58.417382812499994,-17.08056640625],[-58.39599609375,-17.23427734375001],[-58.34775390624999,-17.28212890625001],[-57.99091796875,-17.51289062500001],[-57.905029296875,-17.532324218750006],[-57.832470703125,-17.512109375],[-57.78886718749999,-17.573046875],[-57.780175781249994,-17.67177734375001],[-57.66166992187499,-17.947363281250006],[-57.58647460937499,-18.12226562500001],[-57.49565429687499,-18.214648437500003],[-57.57402343749999,-18.279296875],[-57.725,-18.733203125],[-57.783105468749994,-18.91425781250001],[-57.716796875,-19.044042968750006],[-58.131494140624994,-19.74453125],[-57.860742187499994,-19.979589843750006],[-57.887597656249994,-20.02041015625001],[-57.96015625,-20.04072265625001],[-58.021142578124994,-20.05517578125],[-58.09375,-20.15107421875001],[-58.15976562499999,-20.164648437500006]]]},"properties":{"name":"Bolivia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-48.48588867187493,-27.76699218749998],[-48.554589843749994,-27.81220703125004],[-48.542187499999955,-27.57480468749999],[-48.41489257812495,-27.399609375],[-48.48588867187493,-27.76699218749998]]],[[[-48.584423828124955,-26.401562499999983],[-48.665771484375,-26.289648437500006],[-48.53974609374998,-26.170312500000023],[-48.584423828124955,-26.401562499999983]]],[[[-45.26025390624997,-23.889160156249986],[-45.451416015625,-23.895605468749977],[-45.30234375,-23.727539062500014],[-45.26025390624997,-23.889160156249986]]],[[[-44.12929687499994,-23.14189453124999],[-44.36015624999999,-23.17207031250001],[-44.24287109374998,-23.074121093750037],[-44.12929687499994,-23.14189453124999]]],[[[-38.90356445312497,-13.473437499999974],[-38.97758789062496,-13.523535156249963],[-39.02216796874998,-13.445605468749989],[-38.907128906249994,-13.401074218749983],[-38.90356445312497,-13.473437499999974]]],[[[-38.743847656249955,-13.097070312500037],[-38.668115234374966,-12.880175781249989],[-38.601171875,-12.99257812499998],[-38.743847656249955,-13.097070312500037]]],[[[-44.49931640625002,-2.939648437499983],[-44.597753906250006,-3.037597656249943],[-44.4814453125,-2.717578125000031],[-44.49931640625002,-2.939648437499983]]],[[[-44.88310546874996,-1.317871093749986],[-45.020849609375034,-1.372363281249974],[-44.978662109374966,-1.267285156249983],[-44.88310546874996,-1.317871093749986]]],[[[-51.83251953124997,-1.433789062499969],[-51.938378906249966,-1.452636718749986],[-51.680029296875006,-1.086132812500026],[-51.546044921874966,-0.649609375],[-51.25400390624998,-0.54140625],[-51.16074218749998,-0.666699218750011],[-51.27631835937498,-1.02177734374996],[-51.83251953124997,-1.433789062499969]]],[[[-49.62866210937497,-0.229199218749969],[-49.11699218749999,-0.163574218750014],[-48.39267578124995,-0.29736328125],[-48.83359375,-1.390039062500023],[-49.038476562499994,-1.5140625],[-49.17270507812498,-1.41259765625],[-49.233984375000034,-1.59951171874998],[-49.50664062499999,-1.511621093750023],[-49.587890625,-1.712402343749972],[-49.805126953124955,-1.790234375000026],[-50.06572265625002,-1.703808593749997],[-50.50761718749999,-1.787988281250009],[-50.759765625,-1.240234374999972],[-50.72949218749997,-1.126757812499946],[-50.57695312499999,-1.103125],[-50.709619140624994,-1.07773437499999],[-50.796093749999955,-0.90625],[-50.6455078125,-0.27285156249998],[-50.24824218749998,-0.11640625],[-49.62866210937497,-0.229199218749969]]],[[[-50.65288085937499,-0.131640624999989],[-50.926367187500034,-0.327343749999983],[-51.03808593749994,-0.225878906250003],[-50.84218750000002,-0.050195312500009],[-50.65288085937499,-0.131640624999989]]],[[[-49.44389648437499,-0.112402343749977],[-49.83007812499997,-0.093896484375023],[-49.50346679687496,0.083691406250011],[-49.37231445312497,0.001074218749963],[-49.44389648437499,-0.112402343749977]]],[[[-49.73823242187498,0.26816406250002],[-49.917089843750006,-0.023193359375014],[-50.339453125,0.043359375000051],[-50.27265624999998,0.231738281249974],[-49.73823242187498,0.26816406250002]]],[[[-50.42612304687498,0.139257812500048],[-50.44394531249998,-0.007666015624949],[-50.623925781249966,0.054394531249983],[-50.372753906249955,0.590869140625031],[-50.33227539062497,0.259033203125028],[-50.42612304687498,0.139257812500048]]],[[[-50.152929687500006,0.393017578125054],[-50.26132812499998,0.359179687500003],[-50.281689453124955,0.51650390624998],[-50.05883789062503,0.638037109374963],[-50.152929687500006,0.393017578125054]]],[[[-50.29897460937502,1.93852539062496],[-50.45610351562496,1.910498046875034],[-50.49101562499996,2.128613281249969],[-50.34199218749998,2.14174804687498],[-50.29897460937502,1.93852539062496]]],[[[-59.69970703125,4.353515625],[-59.73857421874993,4.226757812500026],[-59.62021484374998,4.023144531250026],[-59.557763671874966,3.960009765625031],[-59.551123046875034,3.933544921874969],[-59.854394531249994,3.5875],[-59.99433593749998,2.689990234375031],[-59.88964843749997,2.362939453125009],[-59.75522460937495,2.27412109375004],[-59.74350585937498,2.12163085937496],[-59.75175781249996,1.962402343750028],[-59.75620117187498,1.900634765624972],[-59.666601562500006,1.746289062499969],[-59.53569335937499,1.7],[-59.23120117187494,1.376025390625031],[-58.82177734374994,1.201220703125031],[-58.787207031250006,1.208496093750014],[-58.73032226562498,1.247509765625054],[-58.68461914062499,1.28105468749996],[-58.511865234374966,1.284667968749986],[-58.506054687499926,1.438671875000011],[-58.39580078124993,1.481738281249989],[-58.38037109375,1.530224609375011],[-58.34067382812498,1.587548828125051],[-58.03466796875,1.520263671875014],[-57.9828125,1.648437500000014],[-57.87343750000002,1.667285156250045],[-57.79565429687497,1.7],[-57.59443359375001,1.704101562499986],[-57.54575195312495,1.726074218750028],[-57.31748046874998,1.963476562499991],[-57.27558593749998,1.959228515625014],[-57.189599609374966,1.981591796875037],[-57.11889648437494,2.013964843749974],[-57.09267578125002,2.005810546874997],[-57.03759765625,1.936474609374997],[-56.96953124999999,1.91640625],[-56.48281249999994,1.942138671874986],[-56.019921874999966,1.842236328124983],[-55.96333007812498,1.85708007812498],[-55.929638671874955,1.8875],[-55.92163085937503,1.976660156250006],[-55.91533203124999,2.039550781250028],[-55.96196289062496,2.09511718749998],[-56.02006835937499,2.15815429687504],[-56.073632812499994,2.236767578124969],[-56.13769531249997,2.259033203124986],[-56.12939453124997,2.299511718749969],[-56.08779296875002,2.341308593750043],[-56.045117187499955,2.364404296875037],[-56.02036132812498,2.392773437500054],[-55.993505859375006,2.497509765624983],[-55.9755859375,2.515966796875006],[-55.957470703124955,2.52045898437504],[-55.730566406250006,2.406152343750023],[-55.385351562500006,2.440625],[-55.34399414062503,2.488769531249972],[-55.28603515625002,2.49965820312498],[-55.18769531249998,2.547509765625037],[-55.114111328125006,2.539208984375037],[-55.07031249999994,2.548339843750028],[-55.005810546874955,2.592968749999983],[-54.97866210937502,2.597656250000043],[-54.968408203124966,2.548339843750028],[-54.92656249999999,2.497363281250045],[-54.876074218750006,2.450390624999969],[-54.72221679687499,2.441650390624972],[-54.69741210937502,2.359814453124997],[-54.66186523437497,2.327539062499994],[-54.61625976562499,2.326757812500006],[-54.59194335937502,2.313769531250031],[-54.55048828125001,2.293066406249991],[-54.51508789062498,2.245458984374963],[-54.43310546875,2.207519531250057],[-54.13007812499998,2.121044921875026],[-53.76777343749998,2.354833984375048],[-52.90346679687502,2.211523437499977],[-52.58300781250003,2.528906249999977],[-52.327880859375,3.18173828125002],[-51.65253906249998,4.061279296874972],[-51.54707031250001,4.31088867187502],[-51.219921874999955,4.093603515624991],[-50.71440429687502,2.134033203125],[-50.458886718749994,1.829589843749972],[-49.957128906250006,1.65986328125004],[-49.898876953124955,1.16298828124998],[-50.29443359374997,0.835742187500003],[-50.755078124999955,0.222558593749966],[-51.28291015625001,-0.085205078125028],[-51.98081054687498,-1.367968749999974],[-52.22924804687497,-1.3625],[-52.664160156250034,-1.551757812500028],[-51.94755859374996,-1.586718749999946],[-50.89492187500002,-0.937597656249963],[-50.690039062500006,-1.761718749999986],[-50.40322265625002,-2.015527343750009],[-49.999218749999955,-1.831835937499974],[-49.71953125000002,-1.926367187499963],[-49.31367187500001,-1.731738281250003],[-49.63652343749996,-2.656933593750026],[-49.45751953125,-2.504589843749983],[-49.21103515624998,-1.916503906249986],[-48.99130859374998,-1.829785156249997],[-48.71000976562496,-1.487695312500023],[-48.46293945312499,-1.613964843749997],[-48.349804687499926,-1.482128906249955],[-48.46806640624996,-1.393847656250003],[-48.44980468749998,-1.145507812499943],[-48.11508789062498,-0.7375],[-47.557324218749955,-0.669921874999957],[-47.418652343749955,-0.765917968749974],[-47.39809570312502,-0.626660156250026],[-45.45859374999995,-1.35625],[-45.32915039062496,-1.71728515625],[-45.07636718749998,-1.466406249999949],[-44.72114257812498,-1.733496093750006],[-44.778515624999955,-1.798828125],[-44.651269531249966,-1.745800781250026],[-44.537792968749955,-2.052734374999943],[-44.75634765624997,-2.265527343749952],[-44.66240234375002,-2.373242187499955],[-44.435449218749966,-2.168066406249991],[-44.38183593749997,-2.365527343749989],[-44.52011718749998,-2.40546875000004],[-44.589013671874994,-2.573437499999983],[-44.72304687500002,-3.204785156249997],[-44.43754882812496,-2.944433593749977],[-44.228613281250006,-2.471289062499949],[-44.105566406250006,-2.493457031250031],[-44.19267578124999,-2.809570312499943],[-43.93291015624999,-2.583496093749986],[-43.45512695312499,-2.502050781250006],[-43.38007812499998,-2.376074218750006],[-42.93671874999998,-2.465039062500011],[-42.24960937499998,-2.7919921875],[-41.876171874999926,-2.746582031249986],[-41.479931640624955,-2.916503906249972],[-40.474560546874926,-2.795605468750026],[-39.96469726562498,-2.861523437499955],[-38.475781249999955,-3.717480468749997],[-38.04882812500003,-4.216406250000034],[-37.626318359375006,-4.592089843750003],[-37.30146484375001,-4.713085937499969],[-37.174658203125006,-4.912402343749974],[-36.590722656249966,-5.097558593749952],[-35.549414062500006,-5.129394531249957],[-35.39257812499994,-5.250878906250009],[-34.833886718749994,-7.024414062500014],[-34.83466796874998,-7.97148437499996],[-35.34086914062499,-9.230664062499983],[-35.76396484374993,-9.702539062500023],[-35.890820312499926,-9.687011718749957],[-35.88544921875001,-9.84765625],[-36.39833984374994,-10.484082031249983],[-36.768310546875,-10.671679687500017],[-37.18281249999998,-11.06845703125002],[-37.35600585937502,-11.403906249999977],[-37.35922851562495,-11.252539062499963],[-37.68872070312503,-12.1],[-38.019238281249955,-12.591308593750028],[-38.401757812499994,-12.966210937500023],[-38.69096679687502,-12.623925781250009],[-38.85175781250001,-12.790136718750034],[-38.76372070312502,-12.9072265625],[-38.835302734375034,-13.147167968750026],[-39.030908203124994,-13.365136718750023],[-39.08935546875,-13.588183593749989],[-38.988623046875006,-13.61503906249996],[-39.04814453124996,-14.043945312500028],[-38.94233398437498,-14.030664062499994],[-39.05957031249997,-14.654785156249957],[-38.88061523437503,-15.864257812499972],[-39.20288085937503,-17.178125],[-39.154003906249926,-17.70390625000003],[-39.650781249999966,-18.252343750000037],[-39.78330078124998,-19.571777343749986],[-40.001367187499994,-19.74199218750003],[-40.39594726562501,-20.56943359375002],[-40.78925781250001,-20.90605468750003],[-40.954541015624926,-21.237890624999963],[-41.04726562499999,-21.505664062499974],[-41.00029296875002,-21.99902343750003],[-41.70551757812498,-22.30966796874999],[-41.980419921874955,-22.580664062499963],[-42.042382812499966,-22.947070312500003],[-42.95830078124996,-22.96708984374999],[-43.154296875,-22.725195312500006],[-43.22416992187502,-22.991210937500014],[-43.898828124999966,-23.10146484375001],[-43.97382812499998,-23.057324218749983],[-43.675976562499955,-23.00947265625001],[-43.86616210937498,-22.910546875000023],[-44.63725585937496,-23.05546875],[-44.67382812499994,-23.206640625000034],[-44.56967773437495,-23.27402343749999],[-45.32539062499998,-23.59970703124999],[-45.464306640624955,-23.802539062500017],[-45.97207031250002,-23.795507812500006],[-46.86728515624998,-24.236328125000014],[-47.989160156249994,-25.03574218749999],[-47.92939453124998,-25.16826171874999],[-48.20273437499998,-25.41650390625003],[-48.18593749999994,-25.309863281249974],[-48.402490234374994,-25.27207031249999],[-48.47612304687499,-25.44296875],[-48.73173828124993,-25.36875],[-48.6921875,-25.49150390625003],[-48.40117187500002,-25.59736328125001],[-48.665771484375,-25.844335937499963],[-48.576318359374994,-25.935449218749966],[-48.61943359374996,-26.17939453125001],[-48.74829101562503,-26.26865234374999],[-48.55415039062498,-27.195996093749997],[-48.62080078124998,-28.075585937499966],[-48.799658203125006,-28.575292968749977],[-49.27128906249999,-28.87119140625005],[-49.745996093749966,-29.363183593749994],[-50.299511718749955,-30.42578125000003],[-50.92138671874997,-31.25839843750002],[-52.039208984374994,-32.11484374999996],[-52.063232421875,-31.830371093750017],[-51.68066406249994,-31.774609375000026],[-51.272167968749955,-31.476953125000037],[-51.16142578124996,-31.11884765625001],[-50.980078125000034,-31.09423828124997],[-50.94082031249994,-30.903710937499966],[-50.68930664062495,-30.70419921874999],[-50.71630859374994,-30.425976562499983],[-50.58193359375002,-30.438867187500037],[-50.56352539062499,-30.25361328125004],[-51.02495117187493,-30.36865234375003],[-51.29804687499998,-30.03486328124997],[-51.15727539062499,-30.364257812500014],[-51.283056640625034,-30.751562499999963],[-51.35908203124998,-30.674511718749983],[-51.506298828124955,-31.104492187500014],[-51.97246093749999,-31.383789062499986],[-52.19355468749998,-31.885546874999974],[-52.12739257812501,-32.1677734375],[-52.652246093749994,-33.137792968750006],[-53.37060546874997,-33.74218750000003],[-53.39755859374995,-33.737304687500014],[-53.46357421875001,-33.70986328125002],[-53.531347656250034,-33.65546875000004],[-53.531347656250034,-33.1708984375],[-53.511865234374966,-33.10869140625003],[-53.482861328124926,-33.068554687500026],[-53.39521484375001,-33.01035156249998],[-53.31010742187499,-32.927050781249974],[-53.21406249999998,-32.82109375],[-53.12558593749998,-32.73671875],[-53.15727539062496,-32.680078125],[-53.601708984374994,-32.40302734374997],[-53.76171875,-32.05683593749997],[-53.920605468749926,-31.95234375],[-54.220556640625034,-31.855175781249997],[-54.58764648437503,-31.48515625000003],[-55.036035156249994,-31.27900390625004],[-55.091162109375034,-31.31396484374997],[-55.173535156249926,-31.279589843749974],[-55.557324218749955,-30.8759765625],[-55.60302734375003,-30.85078125000001],[-55.62714843749998,-30.858105468749997],[-55.650488281250034,-30.89208984375],[-55.66523437500001,-30.92490234375002],[-55.807763671874994,-31.036718749999977],[-55.87368164062502,-31.069628906250017],[-55.95200195312498,-31.08085937499999],[-56.0046875,-31.079199218750006],[-56.01845703125002,-30.991894531249983],[-55.998974609374955,-30.837207031250003],[-56.4072265625,-30.44746093750001],[-56.83271484374998,-30.107226562499974],[-57.120507812499994,-30.144433593749994],[-57.21445312499995,-30.283398437499983],[-57.55229492187496,-30.261230468749986],[-57.60888671875003,-30.187792968750045],[-57.563867187499994,-30.139941406249974],[-57.40522460937501,-30.03388671875004],[-57.22465820312499,-29.782128906249994],[-56.938623046874994,-29.594824218750034],[-55.890527343749994,-28.370019531249994],[-55.68725585937497,-28.38164062499996],[-55.72548828125002,-28.20410156250003],[-55.10151367187501,-27.866796874999963],[-54.82910156250003,-27.55058593750003],[-54.32700195312495,-27.423535156249997],[-53.83818359375002,-27.121093750000014],[-53.668554687500006,-26.288183593749977],[-53.89116210937499,-25.66884765625001],[-54.15458984374999,-25.523046874999963],[-54.44394531249998,-25.625],[-54.615869140624994,-25.576074218750023],[-54.61054687499998,-25.432714843750034],[-54.47314453124997,-25.22021484375],[-54.43623046875001,-25.12128906250001],[-54.281005859375,-24.30605468750001],[-54.31826171874994,-24.128125],[-54.26689453124996,-24.06582031250001],[-54.241796875,-24.047265624999966],[-54.44023437500002,-23.90175781249998],[-54.62548828125,-23.8125],[-54.98266601562494,-23.974511718749966],[-55.081884765625006,-23.997656249999977],[-55.1943359375,-24.017480468750023],[-55.28691406249993,-24.00429687499999],[-55.366308593750034,-23.99101562499996],[-55.41591796875002,-23.95136718749997],[-55.4423828125,-23.86533203125002],[-55.4423828125,-23.792578125000034],[-55.458886718749966,-23.686718750000054],[-55.51845703124994,-23.627246093750017],[-55.53828124999998,-23.580957031249994],[-55.61767578125,-22.67148437499999],[-55.74663085937499,-22.51269531249997],[-55.753271484375006,-22.410156250000043],[-55.84916992187499,-22.307617187500014],[-55.991406249999926,-22.28115234375005],[-56.18984374999994,-22.28115234375005],[-56.246044921874926,-22.26464843749997],[-56.39487304687498,-22.092675781250023],[-56.44780273437502,-22.07617187500003],[-56.77519531249999,-22.261328125],[-57.955908203125034,-22.109179687500003],[-57.94267578124999,-21.79833984375],[-57.830224609374994,-20.99794921875001],[-57.91513671874998,-20.690332031249966],[-57.97905273437493,-20.65732421874999],[-58.00224609374996,-20.465429687499977],[-58.02539062499997,-20.41582031249999],[-58.05844726562495,-20.38613281249998],[-58.091503906249926,-20.33320312500004],[-58.124609375000034,-20.293457031250014],[-58.13779296874995,-20.237304687500043],[-58.15976562499998,-20.164648437499977],[-58.09375,-20.15107421874997],[-58.021142578124994,-20.05517578124997],[-57.96015625000001,-20.04072265625004],[-57.887597656249966,-20.020410156249994],[-57.860742187499994,-19.97958984375002],[-58.029931640624994,-19.83271484375004],[-58.131494140624994,-19.74453125],[-57.71679687499997,-19.044042968750034],[-57.73085937499999,-18.91718750000004],[-57.783105468749994,-18.91425781249997],[-57.725,-18.73320312500003],[-57.57402343749993,-18.279296875000014],[-57.49565429687496,-18.21464843749999],[-57.58647460937499,-18.122265625],[-57.66166992187493,-17.94736328124999],[-57.78017578125002,-17.67177734374998],[-57.78886718750002,-17.573046875000017],[-57.83247070312501,-17.512109375000037],[-57.90502929687497,-17.53232421874999],[-57.990917968749955,-17.512890625000026],[-58.20556640625,-17.363085937499974],[-58.347753906250006,-17.282128906249994],[-58.39599609374997,-17.234277343750023],[-58.417382812499994,-17.08056640624997],[-58.459814453125006,-16.910742187500006],[-58.478125,-16.70068359375003],[-58.470605468749994,-16.650195312500045],[-58.35039062500002,-16.49082031249999],[-58.34560546875002,-16.284375],[-58.375390624999966,-16.283593749999966],[-58.423681640625034,-16.30791015625003],[-58.49658203124994,-16.32666015625003],[-58.537939453125034,-16.32822265624999],[-60.17558593749996,-16.26933593749999],[-60.187207031249955,-16.132128906250017],[-60.206640625,-15.90195312500002],[-60.242333984374994,-15.479589843750034],[-60.38046874999998,-15.318261718750023],[-60.53046874999998,-15.143164062499977],[-60.58320312499998,-15.098339843749983],[-60.273339843749994,-15.088769531249994],[-60.372705078124994,-14.41875],[-60.506591796875,-13.78984375],[-61.077001953125034,-13.489746093750014],[-61.129150390625,-13.498535156250028],[-61.41606445312502,-13.526562499999969],[-61.511572265625006,-13.541210937500011],[-61.789941406249966,-13.525585937500026],[-61.87412109374998,-13.470410156249983],[-61.944726562499966,-13.40625],[-62.09477539062499,-13.241992187499989],[-62.118017578125006,-13.15976562500002],[-62.765478515625034,-12.99726562500004],[-63.01518554687502,-12.80556640624998],[-63.067480468750006,-12.669140624999983],[-63.34667968749994,-12.68007812499999],[-63.68857421874998,-12.478027343749957],[-64.42050781249995,-12.439746093749974],[-64.783447265625,-12.059375],[-65.18574218749998,-11.749511718749957],[-65.389892578125,-11.246289062500011],[-65.33403320312499,-10.892773437500026],[-65.44711914062503,-10.507421875000034],[-65.4369140625,-10.449023437499946],[-65.39545898437498,-10.392285156250026],[-65.31308593749998,-10.253027343749991],[-65.29858398437497,-10.146777343750017],[-65.39614257812494,-9.712402343749986],[-66.57534179687502,-9.899902343749986],[-67.41694335937495,-10.389843749999969],[-67.72177734374998,-10.683105468749943],[-67.83500976562496,-10.662792968749983],[-67.99169921875,-10.674414062499949],[-68.07167968749994,-10.703125],[-68.39799804687499,-11.01875],[-68.678369140625,-11.11279296875],[-68.84833984374998,-11.01113281249998],[-69.228515625,-10.955664062499963],[-69.46254882812497,-10.948144531250023],[-69.57861328125,-10.951757812499963],[-69.67402343749998,-10.9541015625],[-69.83979492187501,-10.93339843749996],[-69.96035156249997,-10.92988281250004],[-70.06630859374997,-10.982421875],[-70.22006835937503,-11.04765625],[-70.29038085937498,-11.064257812499974],[-70.34199218750001,-11.066699218750017],[-70.39228515624995,-11.058593749999972],[-70.45087890624998,-11.024804687500009],[-70.53325195312496,-10.946875],[-70.59653320312498,-10.976855468750017],[-70.642333984375,-11.010253906249986],[-70.59916992187499,-9.620507812500009],[-70.54111328124998,-9.4375],[-70.60791015625,-9.463671875000031],[-70.63691406249995,-9.478222656249969],[-71.041748046875,-9.81875],[-71.11528320312499,-9.852441406250009],[-71.33940429687499,-9.988574218750031],[-72.18159179687495,-10.003710937500003],[-72.37905273437497,-9.51015625],[-73.20942382812493,-9.411425781249946],[-73.08984375,-9.26572265625002],[-72.970361328125,-9.120117187500028],[-72.97402343750002,-8.9931640625],[-73.07050781249995,-8.8828125],[-73.203125,-8.719335937499991],[-73.30244140624995,-8.654003906250011],[-73.36040039062496,-8.479296875000031],[-73.39814453125001,-8.458984374999986],[-73.54912109374993,-8.34580078125002],[-73.73203125,-7.875390625],[-73.72041015624993,-7.782519531250017],[-73.76689453124999,-7.753515624999963],[-73.82207031249996,-7.738964843750026],[-73.89462890624998,-7.654785156250014],[-73.946875,-7.611230468750023],[-73.98173828124996,-7.58505859375002],[-74.00205078125003,-7.556054687499966],[-73.98173828124996,-7.535742187500006],[-73.95849609374994,-7.506640625000031],[-73.96430664062498,-7.378906250000028],[-73.74946289062498,-7.335351562500037],[-73.72041015624993,-7.309277343749969],[-73.758203125,-7.172753906249952],[-73.79301757812499,-7.135058593750003],[-73.75810546874999,-6.90576171875],[-73.137353515625,-6.4658203125],[-73.23554687500001,-6.098437500000017],[-73.209375,-6.028710937500023],[-73.16289062499996,-5.933398437499974],[-72.97988281249997,-5.634863281249991],[-72.88706054687498,-5.122753906250026],[-72.83193359374994,-5.09375],[-72.69873046874997,-5.067187499999989],[-72.60834960937495,-5.009570312499974],[-72.46899414062497,-4.901269531250023],[-72.35283203124993,-4.786035156249994],[-72.25678710937501,-4.74892578124998],[-71.8447265625,-4.504394531249986],[-70.97368164062499,-4.350488281249994],[-70.86601562499999,-4.229589843749963],[-70.79951171874995,-4.173339843749957],[-70.72158203124997,-4.15888671875004],[-70.53066406249997,-4.167578125000034],[-70.40463867187498,-4.150097656250026],[-70.34365234375,-4.193652343750017],[-70.31689453124994,-4.246972656250037],[-70.23916015625002,-4.30117187499998],[-70.12880859375,-4.286621093749943],[-70.05332031249998,-4.333105468750006],[-70.00395507812496,-4.327246093749963],[-69.97202148437503,-4.30117187499998],[-69.96591796875003,-4.2359375],[-69.94819335937498,-4.200585937500009],[-69.66904296875003,-2.667675781249997],[-69.40024414062498,-1.194921874999977],[-69.63398437500001,-0.50927734375],[-70.07050781249993,-0.13886718750004],[-70.05390624999993,0.578613281250028],[-69.47211914062498,0.72993164062504],[-69.15332031249994,0.65878906250002],[-69.31181640624999,1.050488281249969],[-69.85214843750003,1.05952148437504],[-69.84858398437493,1.708740234375043],[-68.17656249999999,1.719824218749991],[-68.25595703125,1.845507812500017],[-68.19379882812495,1.987011718749983],[-67.93623046874998,1.748486328124969],[-67.40043945312499,2.116699218750028],[-67.11923828124998,1.703613281249986],[-67.082275390625,1.185400390625006],[-66.87602539062499,1.223046875000037],[-66.34711914062498,0.7671875],[-66.06005859375003,0.78535156250004],[-65.68144531249999,0.983447265624989],[-65.52299804687493,0.843408203124966],[-65.55605468750002,0.687988281250014],[-65.47338867187497,0.691259765624977],[-65.10375976562497,1.108105468749983],[-64.20502929687493,1.52949218750004],[-64.00849609374995,1.931591796874969],[-63.43251953124994,2.155566406250045],[-63.389257812500006,2.411914062500045],[-64.04658203124998,2.502392578124997],[-64.22109375000002,3.587402343749972],[-64.66899414062496,4.01181640625002],[-64.788671875,4.276025390625023],[-64.57636718750001,4.139892578125],[-64.19248046874995,4.126855468750009],[-64.02148437500003,3.929101562500051],[-63.33867187500002,3.943896484375045],[-62.85698242187502,3.593457031249969],[-62.71210937499998,4.01791992187502],[-62.41064453124994,4.156738281249972],[-62.153125,4.098388671874986],[-61.82084960937496,4.197021484375],[-61.28007812500002,4.516894531249974],[-61.00283203125002,4.535253906249991],[-60.603857421875006,4.94936523437498],[-60.671972656250034,5.164355468749989],[-60.71196289062499,5.191552734375023],[-60.742138671874926,5.202050781250037],[-60.6513671875,5.221142578125011],[-60.45952148437499,5.188085937500034],[-60.40878906249998,5.21015625],[-60.33520507812497,5.199316406250006],[-60.241650390624926,5.257958984374966],[-60.14204101562498,5.238818359374974],[-59.990673828124955,5.082861328124991],[-60.14863281249998,4.533251953125031],[-59.69970703125,4.353515625]]]]},"properties":{"name":"Brazil","childNum":17}},{"geometry":{"type":"Polygon","coordinates":[[[-59.493310546874994,13.081982421874997],[-59.611328125,13.102099609374989],[-59.6466796875,13.303125],[-59.427636718749994,13.152783203124997],[-59.493310546874994,13.081982421874997]]]},"properties":{"name":"Barbados","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[115.02675781250005,4.899707031249989],[115.1400390625,4.899755859374991],[115.290625,4.352587890624989],[115.10703125000006,4.390429687499974],[115.02675781250005,4.899707031249989]]],[[[115.02675781250005,4.899707031249989],[114.74667968750006,4.718066406250017],[114.84023437500005,4.393212890625009],[114.65410156250007,4.037646484375045],[114.0638671875,4.592675781249966],[114.42441406250006,4.660400390625],[114.99541015625002,5.022363281250023],[115.02675781250005,4.899707031249989]]]]},"properties":{"name":"Brunei","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[91.63193359375003,27.759960937499997],[91.5947265625,27.557666015624996],[91.74306640625002,27.442529296874994],[91.85126953125001,27.438623046874994],[91.95097656249999,27.458300781249996],[91.99082031250003,27.4501953125],[92.044921875,27.364697265624997],[92.08339843750002,27.290625],[92.03115234375002,27.214306640624997],[92.00253906250003,27.147363281249994],[91.99228515625003,27.099902343749996],[91.99863281250003,27.079296875],[92.03085937500003,27.040820312499996],[92.06816406249999,26.9751953125],[92.07343750000001,26.91484375],[92.04970703125002,26.874853515625],[91.99833984374999,26.85498046875],[91.84208984374999,26.852978515624997],[91.67158203125001,26.802001953125],[91.517578125,26.807324218749997],[91.45585937499999,26.866894531249997],[91.4267578125,26.867089843749994],[91.28652343750002,26.789941406249994],[90.73964843750002,26.771679687499997],[90.34589843750001,26.890332031249997],[90.2060546875,26.847509765625],[90.12294921875002,26.754589843749997],[89.94316406249999,26.723925781249996],[89.76386718750001,26.7015625],[89.60996093750003,26.719433593749997],[89.58613281250001,26.778955078124994],[89.33212890625003,26.8486328125],[89.14824218749999,26.816162109375],[89.04091796875002,26.865039062499996],[88.85761718750001,26.961474609374996],[88.73876953125,27.175585937499996],[88.76035156250003,27.218115234375],[88.88164062499999,27.2974609375],[88.89140624999999,27.316064453124994],[88.94755859374999,27.464013671874994],[89.48066406250001,28.059960937499994],[89.53691406249999,28.107421875],[89.65273437500002,28.15830078125],[89.74980468749999,28.188183593749997],[89.81689453125,28.256298828124997],[89.89785156250002,28.294140625],[89.98105468750003,28.311181640624994],[90.34824218750003,28.243945312499996],[90.36298828125001,28.216503906249997],[90.33310546875003,28.093994140625],[90.35273437500001,28.080224609374994],[90.47734374999999,28.070849609374996],[90.63007812500001,28.078564453124997],[90.71572265625002,28.071728515624997],[91.02080078124999,27.970068359375],[91.07773437500003,27.974462890625],[91.22587890624999,28.071240234374997],[91.27304687500003,28.078369140625],[91.30683593750001,28.064013671874996],[91.36757812500002,28.021630859374994],[91.64189453124999,27.923242187499994],[91.63193359375003,27.759960937499997]]]},"properties":{"name":"Bhutan","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[25.2587890625,-17.793554687500006],[25.242285156250006,-17.969042968750003],[25.939355468750023,-18.93867187500001],[26.168066406250006,-19.53828125000001],[27.17822265625,-20.10097656250001],[27.28076171875,-20.47871093750001],[27.679296875,-20.503027343750006],[27.66943359375,-21.064257812500003],[28.014062500000023,-21.55419921875],[29.02558593750001,-21.796875],[29.042382812500023,-22.018359375],[29.237207031250023,-22.07949218750001],[29.315234375000017,-22.15771484375],[29.36484375,-22.193945312500006],[29.1298828125,-22.21328125],[29.013476562500017,-22.278417968750006],[28.94580078125,-22.395117187500006],[28.83984375,-22.480859375],[28.21015625000001,-22.693652343750003],[27.812597656250006,-23.108007812500006],[27.7685546875,-23.14892578125],[27.085546875,-23.577929687500003],[26.835058593750006,-24.240820312500006],[26.617773437500006,-24.3955078125],[26.451757812500006,-24.58271484375001],[26.39716796875001,-24.613574218750003],[26.130859375,-24.671484375],[26.031835937500006,-24.702441406250003],[25.912109375,-24.74746093750001],[25.518164062500006,-25.66279296875001],[25.21337890625,-25.75625],[24.33056640625,-25.74287109375001],[24.19296875,-25.632910156250006],[23.969531250000017,-25.626074218750006],[23.89375,-25.600878906250003],[23.389257812500006,-25.29140625],[23.148730468750017,-25.288671875],[22.878808593750023,-25.45791015625001],[22.59765625,-26.13271484375001],[22.548632812500017,-26.17841796875001],[22.47089843750001,-26.219042968750003],[22.217578125000017,-26.38886718750001],[22.090917968750006,-26.580175781250006],[22.01093750000001,-26.635839843750006],[21.78828125000001,-26.710058593750006],[21.738085937500017,-26.80683593750001],[21.694726562500023,-26.840917968750006],[20.73984375,-26.84882812500001],[20.641406250000017,-26.7421875],[20.79316406250001,-25.915625],[20.4306640625,-25.147070312500006],[19.98046875,-24.77675781250001],[19.977343750000017,-22.00019531250001],[20.9794921875,-21.9619140625],[20.97412109375,-18.31884765625],[23.219335937500006,-17.99970703125001],[23.599707031250006,-18.4599609375],[24.243945312500017,-18.0234375],[24.530566406250017,-18.052734375],[24.909082031250023,-17.821386718750006],[25.2587890625,-17.793554687500006]]]},"properties":{"name":"Botswana","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[22.86005859375001,10.919677734375],[23.646289062500017,9.822900390624994],[23.62265625,9.340625],[23.46826171875,9.11474609375],[23.53730468750001,8.815820312499994],[24.147363281250023,8.665625],[24.291406250000023,8.29140625],[24.853320312500017,8.137548828124991],[25.20039062500001,7.807910156249989],[25.18134765625001,7.557226562499991],[25.27890625,7.427490234375],[26.36181640625,6.635302734374989],[26.30859375,6.455322265625],[26.514257812500006,6.069238281249994],[27.143945312500023,5.722949218749989],[27.4033203125,5.109179687499989],[27.071875,5.199755859374989],[26.822070312500017,5.062402343749994],[25.52509765625001,5.31210937499999],[25.065234375000017,4.967431640624994],[24.31982421875,4.994140625],[23.41718750000001,4.663134765624989],[22.864550781250017,4.723876953125],[22.422167968750017,4.134960937499997],[20.55810546875,4.462695312499989],[20.226367187500017,4.829638671874989],[19.806542968750023,5.089306640624997],[19.5009765625,5.127490234374989],[19.06855468750001,4.891406249999989],[18.594140625000023,4.346240234374989],[18.6103515625,3.478417968749994],[18.474414062500017,3.622998046874997],[18.160937500000017,3.499804687499989],[17.491601562500023,3.687304687499989],[16.610742187500023,3.50537109375],[16.468554687500017,2.831738281249997],[16.183398437500017,2.270068359374989],[16.0634765625,2.90859375],[15.128710937500017,3.826904296875],[15.063574218750006,4.284863281249997],[14.73125,4.602392578124991],[14.56298828125,5.279931640624994],[14.616894531250011,5.865136718749994],[14.43115234375,6.038720703124994],[14.7392578125,6.27978515625],[15.206738281250011,7.206152343749991],[15.480078125,7.523779296874991],[15.957617187500006,7.507568359375],[16.37890625,7.683544921874997],[16.545312500000023,7.865478515625],[16.784765625,7.550976562499997],[17.6494140625,7.98359375],[18.56416015625001,8.0458984375],[19.108691406250017,8.656152343749994],[18.886035156250017,8.836035156249991],[18.95625,8.938867187499994],[20.342089843750017,9.127099609374994],[20.773242187500017,9.405664062499994],[21.682714843750006,10.289843749999989],[21.771484375,10.642822265625],[22.49384765625001,10.996240234374994],[22.86005859375001,10.919677734375]]]},"properties":{"name":"Central African Rep.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-59.78759765624997,43.939599609374994],[-60.11748046874996,43.95336914062506],[-59.727148437500006,44.002832031249994],[-59.78759765624997,43.939599609374994]]],[[[-66.7625,44.68178710937502],[-66.8970703125,44.62890625],[-66.80214843749994,44.80537109374998],[-66.7625,44.68178710937502]]],[[[-60.961572265624966,45.48994140625001],[-61.081738281249926,45.55781249999998],[-60.91245117187498,45.56728515625005],[-60.961572265624966,45.48994140625001]]],[[[-73.69531249999997,45.58549804687502],[-73.85771484375002,45.573583984375006],[-73.57236328124998,45.69448242187502],[-73.69531249999997,45.58549804687502]]],[[[-73.56650390625003,45.469091796875034],[-73.960546875,45.44140624999997],[-73.68745117187498,45.561425781249994],[-73.47607421874997,45.704736328124994],[-73.56650390625003,45.469091796875034]]],[[[-61.10517578124998,45.94472656250002],[-60.86523437499997,45.983496093750006],[-61.05903320312501,45.70336914062497],[-60.73789062499995,45.75141601562498],[-60.46059570312494,45.96870117187501],[-60.733300781249994,45.956591796875045],[-60.297949218750034,46.31123046874998],[-60.22646484374994,46.19555664062506],[-59.86503906249993,46.159521484375006],[-59.8421875,45.941552734374994],[-60.67294921874995,45.59082031250006],[-61.28369140624994,45.573876953124966],[-61.44980468749995,45.71621093750002],[-61.40864257812501,46.17036132812498],[-60.87016601562499,46.796777343749966],[-60.40820312500003,47.00351562499998],[-60.332910156249966,46.737011718749955],[-60.49453125000002,46.270263671875],[-61.10517578124998,45.94472656250002]]],[[[-63.811279296875,46.46870117187501],[-63.68144531249993,46.561914062499994],[-63.12939453125,46.422216796875034],[-62.02373046874999,46.42158203125001],[-62.52607421875001,46.20288085937503],[-62.531347656250034,45.977294921875],[-63.02207031249998,46.06660156249998],[-62.89453125000003,46.12358398437496],[-63.056347656249955,46.22392578124996],[-62.97846679687498,46.31635742187498],[-63.21347656249998,46.15986328124998],[-63.641015624999966,46.23046874999997],[-63.758642578125034,46.397607421874994],[-64.11083984375003,46.425439453124994],[-64.13603515624999,46.59970703125006],[-64.388037109375,46.640869140625],[-63.99355468750002,47.06157226562502],[-64.08789062499997,46.77543945312499],[-63.811279296875,46.46870117187501]]],[[[-61.91411132812496,47.284521484375034],[-61.77255859374998,47.25981445312499],[-62.00830078124994,47.23427734375002],[-61.924707031249966,47.425146484375006],[-61.3955078125,47.63764648437504],[-61.91411132812496,47.284521484375034]]],[[[-54.227148437500034,47.44135742187501],[-54.32597656250002,47.408105468749994],[-54.12817382812494,47.646826171875034],[-54.227148437500034,47.44135742187501]]],[[[-74.70888671874997,45.0038574218751],[-73.55810546875,45.425097656250045],[-73.1595703125,46.01005859375002],[-72.10927734374997,46.55122070312504],[-71.26118164062495,46.75625],[-70.51948242187501,47.032519531250045],[-69.47104492187503,47.96728515625006],[-68.23818359374994,48.62641601562504],[-66.17817382812493,49.21313476562503],[-64.83632812499994,49.191748046875006],[-64.2162109375,48.873632812500034],[-64.51372070312493,48.84111328124999],[-64.24609374999994,48.69111328124998],[-64.34882812500001,48.423193359375034],[-65.259423828125,48.02124023437503],[-65.92670898437495,48.188867187499994],[-66.70439453125002,48.0224609375],[-66.35961914062494,48.06064453125006],[-65.84941406250002,47.91103515625005],[-65.60722656249996,47.67001953125006],[-65.00166015624995,47.84682617187502],[-64.70322265625,47.72485351562503],[-64.91220703125003,47.36865234375003],[-65.31889648437502,47.101220703124994],[-64.831396484375,47.06079101562503],[-64.88251953124993,46.822851562500034],[-64.54150390625,46.240332031250034],[-63.91591796875002,46.165820312500045],[-63.831933593749966,46.107177734375],[-64.05639648437503,46.021337890625006],[-63.70288085937494,45.858007812500034],[-62.70068359374997,45.740576171875006],[-62.750097656250006,45.64824218750002],[-62.483056640624966,45.62182617187506],[-61.955517578124955,45.86816406249997],[-61.776513671874994,45.655615234375006],[-61.49228515624998,45.68701171875],[-61.350488281249966,45.57368164062501],[-61.28198242187494,45.441064453124994],[-61.46098632812502,45.36669921875003],[-61.03154296875002,45.29174804687506],[-63.306298828124994,44.64257812500003],[-63.60400390624997,44.68320312500006],[-63.60976562499999,44.47998046875006],[-63.999707031249926,44.64492187499999],[-64.10087890624993,44.487451171874966],[-64.1669921875,44.58666992187503],[-64.28608398437493,44.55034179687499],[-64.27568359374993,44.33408203124998],[-65.48168945312497,43.51806640625],[-65.73813476562498,43.56074218750001],[-65.88691406250001,43.79521484374999],[-66.125732421875,43.813818359375034],[-66.19306640624995,44.143847656250045],[-65.86801757812498,44.56879882812501],[-66.14638671875002,44.43593750000005],[-66.090625,44.50493164062499],[-64.44814453125,45.33745117187502],[-64.13549804687497,45.023046875],[-64.09316406249997,45.21708984375002],[-63.368017578125034,45.36479492187502],[-64.87314453124998,45.35458984375006],[-64.31464843749998,45.83569335937503],[-64.48222656250002,45.80634765624998],[-64.63271484375002,45.94663085937506],[-64.77851562499998,45.63842773437497],[-65.88447265624995,45.22290039062506],[-66.10976562500002,45.316601562499955],[-66.02656249999995,45.417578125],[-66.43984374999994,45.09589843750001],[-66.87246093749997,45.067285156249966],[-67.12485351562498,45.16943359375],[-67.366943359375,45.17377929687498],[-67.43266601562496,45.603125],[-67.80224609374994,45.7275390625],[-67.806787109375,47.08281249999999],[-68.23549804687502,47.34594726562503],[-68.93720703124998,47.21123046875002],[-69.0501953125,47.426611328125034],[-69.24287109374998,47.46298828124998],[-70.00771484375002,46.70893554687501],[-70.296240234375,45.90610351562506],[-70.86503906249999,45.27070312500001],[-71.327294921875,45.29008789062496],[-71.51752929687495,45.00756835937497],[-74.663232421875,45.00390625000003],[-74.70888671874997,45.0038574218751]]],[[[-126.09208984374995,49.35400390625003],[-126.06401367187499,49.26362304687501],[-126.22963867187498,49.29565429687506],[-126.09208984374995,49.35400390625003]]],[[[-54.55439453125001,49.5888671875],[-54.786523437499966,49.496142578125045],[-54.86357421875002,49.576074218749966],[-54.55439453125001,49.5888671875]]],[[[-54.093701171874955,49.74443359374999],[-53.98066406250001,49.66196289062498],[-54.28613281249997,49.595361328124994],[-54.27763671875002,49.71147460937502],[-54.093701171874955,49.74443359374999]]],[[[-126.64121093749999,49.605810546875006],[-126.93857421874999,49.71845703125004],[-126.92583007812497,49.837744140625006],[-126.73813476562502,49.84365234375005],[-126.64121093749999,49.605810546875006]]],[[[-61.801123046875034,49.093896484374966],[-63.04150390624994,49.224951171875034],[-64.485205078125,49.88696289062497],[-64.13144531249995,49.94165039062503],[-62.858544921874966,49.70546875000005],[-61.817138671875,49.28354492187498],[-61.69614257812495,49.139013671875006],[-61.801123046875034,49.093896484374966]]],[[[-125.18413085937497,50.09711914062498],[-125.301171875,50.4140625],[-125.07402343750002,50.22065429687501],[-125.18413085937497,50.09711914062498]]],[[[-127.19731445312495,50.640380859375],[-125.48208007812501,50.316796874999966],[-124.83061523437499,49.53007812500002],[-123.99580078125,49.22402343750002],[-123.49702148437498,48.58208007812499],[-123.38989257812501,48.67021484374999],[-123.31064453125003,48.41103515625002],[-123.57314453124995,48.32280273437499],[-123.91694335937501,48.386572265625034],[-125.12070312500002,48.76079101562496],[-124.84965820312496,49.02827148437501],[-124.81264648437497,49.212646484375],[-124.92734374999998,49.01420898437499],[-125.489453125,48.933789062499955],[-125.82851562499998,49.09184570312499],[-125.64423828125001,49.18579101562506],[-125.95166015625001,49.24804687500003],[-125.93540039062499,49.401464843750006],[-126.51914062499999,49.396777343750045],[-126.54189453125001,49.590478515624966],[-126.13408203124997,49.672314453124955],[-126.52524414062499,49.71958007812498],[-126.90332031250001,49.94414062499999],[-127.114306640625,49.879736328125034],[-127.24980468749999,50.13798828124996],[-127.34941406249995,50.05195312500001],[-127.46713867187503,50.163427734375006],[-127.86391601562495,50.12773437500002],[-127.90585937499998,50.44521484375002],[-127.48652343749998,50.404638671875034],[-127.46591796874996,50.58310546875006],[-128.05834960937494,50.498486328124955],[-128.34604492187503,50.744238281250006],[-127.91806640624998,50.86054687500001],[-127.19731445312495,50.640380859375]]],[[[-55.45874023437494,51.53652343750005],[-55.58339843749994,51.38857421875002],[-56.031103515625034,51.328369140625],[-55.8,51.033300781250034],[-56.732324218749966,50.007714843749994],[-56.822167968749966,49.613476562499955],[-56.179394531249955,50.114990234375],[-56.161279296874994,49.94013671874998],[-55.50292968749997,49.98315429687503],[-56.14018554687496,49.61914062500006],[-55.869824218749955,49.67016601562506],[-56.08730468750002,49.45195312499999],[-55.375927734374955,49.48974609374997],[-55.34384765624998,49.37290039062506],[-55.22954101562496,49.508154296875006],[-55.35317382812502,49.07944335937506],[-54.50219726562503,49.52734375],[-54.44824218749997,49.329443359375006],[-53.957714843749955,49.44184570312498],[-53.61943359374996,49.321630859375006],[-53.57343750000001,49.141210937500034],[-54.16127929687494,48.787695312500034],[-53.852880859375006,48.81132812499996],[-53.966015624999955,48.70668945312505],[-53.70634765624999,48.65551757812503],[-54.11445312499998,48.393603515625045],[-53.027587890625,48.634716796874955],[-53.1357421875,48.40185546875003],[-53.60976562500002,48.20771484375001],[-53.56943359374998,48.088085937499955],[-53.869580078124926,48.019677734374966],[-53.63823242187496,48.01464843750003],[-53.863671874999966,47.787011718749994],[-53.67236328125,47.64824218749999],[-53.28271484375,47.99785156249996],[-52.86601562499993,48.11298828124998],[-53.16982421875002,47.51210937500005],[-52.945019531249955,47.55283203124998],[-52.782421874999955,47.769433593749966],[-52.653662109375034,47.549414062500006],[-53.11484375,46.65581054687502],[-53.32304687499996,46.71835937499998],[-53.589794921874955,46.638867187499955],[-53.59736328124998,47.14599609374997],[-54.00957031249993,46.839599609375],[-54.173730468749994,46.88037109375003],[-53.84951171875002,47.440332031249994],[-53.98901367187503,47.756201171875034],[-54.191845703124955,47.85981445312501],[-54.488134765625006,47.40385742187502],[-54.47392578124996,47.54707031249998],[-54.856640624999955,47.385009765625],[-55.31572265624993,46.905712890624955],[-55.78852539062498,46.86723632812502],[-55.91923828124996,47.01689453124996],[-55.49150390624996,47.16064453125003],[-54.78461914062501,47.664746093749955],[-55.366308593750034,47.66108398437501],[-55.57612304687498,47.46523437499999],[-56.12724609374999,47.50283203125002],[-55.867089843749994,47.592333984375045],[-55.85791015625,47.81918945312498],[-56.774121093749955,47.56499023437499],[-58.33686523437501,47.73085937500002],[-59.11694335937494,47.57070312499999],[-59.32065429687498,47.736914062500006],[-59.272070312500034,47.99555664062504],[-58.330224609374994,48.52211914062502],[-59.16767578124998,48.558496093749966],[-58.84179687500003,48.74643554687498],[-58.906445312499955,48.65019531249999],[-58.716455078124994,48.59804687500002],[-58.403662109375034,49.08432617187498],[-57.99052734374996,48.987939453124966],[-58.09892578124993,49.07744140624999],[-57.98007812499998,49.229638671874994],[-58.19091796875003,49.25874023437498],[-58.21337890625,49.38666992187501],[-58.01582031249998,49.54248046874997],[-57.79130859374999,49.48999023437503],[-57.92617187499999,49.700830078124994],[-57.4326171875,50.50581054687504],[-57.179589843749966,50.614843750000034],[-57.29799804687502,50.69873046874997],[-57.03593750000002,51.01083984374998],[-56.68242187500002,51.332763671875],[-56.025585937499955,51.56835937500006],[-55.6904296875,51.471337890624994],[-55.666406249999966,51.57890624999999],[-55.45874023437494,51.53652343750005]]],[[[-127.92465820312498,51.47387695312497],[-128.14877929687498,51.62670898437503],[-128.03173828125006,51.708398437499966],[-127.92465820312498,51.47387695312497]]],[[[-79.38427734374997,51.951953125000045],[-79.64375,52.01005859374996],[-79.27128906249996,52.086816406249966],[-79.38427734374997,51.951953125000045]]],[[[-128.36875,52.40087890625],[-128.43979492187503,52.696386718750006],[-128.24726562499998,52.784375],[-128.36875,52.40087890625]]],[[[-80.73168945312494,52.74726562499998],[-82.03925781249998,53.04990234374998],[-81.84731445312494,53.18627929687497],[-81.135595703125,53.20581054687503],[-80.73168945312494,52.74726562499998]]],[[[-131.7537109375,53.195556640625],[-131.63466796874997,52.92216796874999],[-131.97177734374998,52.87983398437498],[-131.45522460937502,52.70170898437502],[-131.59057617187494,52.578222656250006],[-131.25971679687495,52.415917968749966],[-131.31992187499998,52.30307617187498],[-131.142626953125,52.291113281250034],[-131.221533203125,52.15361328124999],[-132.16508789062493,52.783300781250034],[-132.14375,52.99931640624999],[-132.54677734374997,53.1375],[-131.7537109375,53.195556640625]]],[[[-128.55244140624998,52.93974609375002],[-128.50991210937502,52.51860351562502],[-128.678955078125,52.289648437500006],[-128.74633789062494,52.763378906249955],[-128.89980468749997,52.67382812500003],[-129.175927734375,52.964941406250006],[-129.033251953125,53.27993164062505],[-128.63266601562498,53.1125],[-128.55244140624998,52.93974609375002]]],[[[-129.167724609375,53.11787109374998],[-129.32387695312502,53.142138671875045],[-129.23818359374997,53.33007812500006],[-129.167724609375,53.11787109374998]]],[[[-129.84858398437498,53.167919921874955],[-130.51757812500003,53.54423828124999],[-130.45200195312498,53.63115234375002],[-129.94472656250002,53.436376953125034],[-129.75483398437498,53.244775390624994],[-129.84858398437498,53.167919921874955]]],[[[-130.236279296875,53.95854492187502],[-130.38422851562504,53.84394531250001],[-130.703173828125,53.892236328124994],[-130.44799804687497,54.08901367187502],[-130.236279296875,53.95854492187502]]],[[[-132.65551757812503,54.12749023437496],[-132.30336914062497,54.098876953125],[-132.16611328124998,53.95522460937505],[-132.53466796875,53.651708984375034],[-132.18696289062504,53.68481445312503],[-132.134423828125,54.03427734374998],[-131.66762695312502,54.14135742187503],[-131.957421875,53.308691406250034],[-132.34726562500003,53.18920898437503],[-132.747509765625,53.310498046874955],[-132.425,53.33696289062502],[-132.84501953125,53.507714843749994],[-133.07949218749997,53.837011718750034],[-133.04838867187493,54.15893554687497],[-132.65551757812503,54.12749023437496]]],[[[-130.92714843749997,54.47905273437499],[-130.90683593750003,54.63178710937504],[-130.75800781249998,54.61376953125],[-130.92714843749997,54.47905273437499]]],[[[-130.57534179687497,54.769677734374966],[-130.2140625,55.02587890625003],[-130.34941406249996,54.814550781250034],[-130.57534179687497,54.769677734374966]]],[[[-79.97758789062499,56.20703125000006],[-80.057470703125,56.28735351562497],[-79.57973632812502,56.466357421875045],[-79.97758789062499,56.20703125000006]]],[[[-78.93559570312496,56.26606445312498],[-79.17548828124998,55.88505859374999],[-79.18212890625,56.21215820312503],[-79.4951171875,55.87475585937503],[-79.76474609374995,55.80678710937505],[-79.54472656249999,56.12836914062501],[-79.9875,55.89213867187502],[-79.45888671875,56.53974609374998],[-79.53632812499995,56.180078124999966],[-79.27241210937493,56.600439453125006],[-78.93559570312496,56.26606445312498]]],[[[-61.743603515624955,57.55458984375005],[-61.6375,57.41606445312499],[-62.01123046875003,57.54848632812505],[-61.743603515624955,57.55458984375005]]],[[[-79.71650390624998,57.515527343749994],[-79.80844726562498,57.44243164062502],[-79.74257812499997,57.60795898437499],[-79.71650390624998,57.515527343749994]]],[[[-69.16005859375,59.04023437500001],[-69.35283203125002,58.96074218749999],[-69.30322265625003,59.144873046875006],[-69.16005859375,59.04023437500001]]],[[[-64.40703125,60.367089843749966],[-64.44194335937496,60.2978515625],[-64.73793945312497,60.37563476562502],[-64.83642578124997,60.50102539062499],[-64.40703125,60.367089843749966]]],[[[-68.23378906250002,60.24091796875001],[-68.36787109374998,60.314746093750045],[-68.08759765624998,60.58784179687501],[-67.81884765624994,60.449511718750074],[-68.23378906250002,60.24091796875001]]],[[[-78.531640625,60.72856445312499],[-78.66889648437498,60.716894531250006],[-78.24169921875,60.818652343750045],[-78.531640625,60.72856445312499]]],[[[-64.83261718749998,61.366064453125006],[-65.43212890625,61.649511718750034],[-64.78964843750003,61.662207031250034],[-64.83261718749998,61.366064453125006]]],[[[-65.03056640624999,61.879052734374966],[-64.89658203124995,61.73330078125005],[-65.23535156249997,61.89770507812506],[-65.03056640624999,61.879052734374966]]],[[[-79.54531250000002,62.41171875000006],[-79.28647460937495,62.247656250000034],[-79.32392578124995,62.02607421875001],[-79.81611328124995,61.59462890625002],[-80.26518554687496,61.818212890625006],[-80.26005859374996,62.10903320312502],[-79.9267578125,62.39287109375002],[-79.54531250000002,62.41171875000006]]],[[[-64.82382812499998,62.558740234374994],[-64.46503906249998,62.535937500000045],[-64.47832031250002,62.417871093749966],[-64.901220703125,62.421044921874994],[-64.82382812499998,62.558740234374994]]],[[[-70.33706054687497,62.548730468749994],[-70.76606445312498,62.596875],[-71.22011718750002,62.873925781249966],[-70.44262695312497,62.73378906250002],[-70.33706054687497,62.548730468749994]]],[[[-82.00048828124997,62.95419921874998],[-82.02583007812498,62.73007812499998],[-82.56826171875002,62.403222656249994],[-83.01582031249998,62.20991210937498],[-83.69887695312497,62.16025390624998],[-83.91049804687498,62.45415039062499],[-83.37641601562498,62.904931640624994],[-82.00048828124997,62.95419921874998]]],[[[-77.87670898437497,63.470556640625034],[-77.53271484374997,63.233642578125],[-77.94243164062496,63.11440429687502],[-78.536767578125,63.423730468749994],[-77.87670898437497,63.470556640625034]]],[[[-76.67758789062503,63.393945312499966],[-77.36474609374994,63.588330078124955],[-77.13369140624997,63.68203125000002],[-76.65244140624998,63.503564453124994],[-76.67758789062503,63.393945312499966]]],[[[-84.91962890624995,65.26108398437503],[-84.50112304687497,65.45844726562501],[-84.08486328125,65.21782226562502],[-82.05,64.64428710937506],[-81.67612304687498,64.21264648437503],[-81.88710937499997,64.01640625000002],[-80.82895507812495,64.08994140625],[-80.30205078124999,63.76220703125003],[-81.04638671875003,63.461572265624966],[-82.378125,63.706787109375],[-82.46708984375002,63.92695312500001],[-83.30395507812497,64.14379882812506],[-84.63291015625,63.30922851562502],[-85.39262695312496,63.119677734375045],[-85.76894531249997,63.70034179687502],[-87.15190429687499,63.58564453125001],[-86.93203124999997,63.90166015625002],[-86.252099609375,64.13686523437497],[-86.37426757812503,64.56582031249997],[-86.074609375,65.533837890625],[-85.55468750000003,65.91865234374995],[-85.17622070312501,65.746875],[-85.23994140624993,65.51030273437499],[-84.91962890624995,65.26108398437503]]],[[[-84.67475585937498,65.575],[-85.096337890625,65.756201171875],[-85.14960937500001,66.01538085937506],[-84.75737304687496,65.85893554687505],[-84.67475585937498,65.575]]],[[[-83.72597656249997,65.796728515625],[-83.23374023437495,65.71503906249995],[-83.332421875,65.63105468749998],[-84.11826171874995,65.77177734375007],[-84.40717773437501,66.13100585937497],[-83.78696289062495,65.96577148437498],[-83.72597656249997,65.796728515625]]],[[[-108.09272460937501,67.00517578124999],[-107.80551757812493,66.99858398437507],[-107.94394531249999,66.8578125],[-108.09272460937501,67.00517578124999]]],[[[-62.681542968749966,67.05629882812502],[-62.87163085937499,67.06259765625006],[-62.41679687499996,67.18847656250003],[-62.681542968749966,67.05629882812502]]],[[[-107.89985351562497,67.40180664062495],[-107.95024414062503,67.31821289062498],[-108.15224609374997,67.429443359375],[-108.04897460937498,67.664892578125],[-107.89985351562497,67.40180664062495]]],[[[-73.621728515625,67.783837890625],[-74.573388671875,67.82866210937507],[-74.70654296875003,68.06708984374995],[-73.49375,68.00063476562502],[-73.40717773437498,67.79306640625],[-73.621728515625,67.783837890625]]],[[[-86.59555664062498,67.7359375],[-86.89252929687498,67.836572265625],[-86.95981445312503,68.10024414062497],[-86.70209960937501,68.30561523437498],[-86.42114257812497,68.18344726562503],[-86.59555664062498,67.7359375]]],[[[-75.67587890624998,68.32250976562506],[-75.078125,68.17314453124999],[-75.20195312499996,67.45917968750001],[-75.78007812499996,67.28354492187503],[-76.94418945312498,67.25029296875002],[-77.30439453125001,67.68510742187505],[-77.12587890624997,67.94707031250002],[-76.59580078124998,68.27895507812497],[-75.67587890624998,68.32250976562506]]],[[[-78.98271484374999,68.19282226562501],[-79.17475585937493,68.26445312500002],[-78.95258789062495,68.35302734375006],[-78.98271484374999,68.19282226562501]]],[[[-104.54067382812497,68.405908203125],[-105.05136718749999,68.55903320312501],[-104.60200195312503,68.56152343749997],[-104.54067382812497,68.405908203125]]],[[[-74.880859375,68.34868164062505],[-75.40024414062503,68.52548828125],[-75.28740234374996,68.68774414062503],[-74.98364257812497,68.64760742187502],[-74.880859375,68.34868164062505]]],[[[-101.84589843749994,68.58632812499997],[-102.30815429687497,68.681982421875],[-102.01337890624995,68.82539062500001],[-101.73295898437495,68.75341796875],[-101.84589843749994,68.58632812499997]]],[[[-100.21723632812497,68.80668945312502],[-100.59653320312496,68.76640625000007],[-100.56547851562495,69.02680664062501],[-100.21723632812497,68.80668945312502]]],[[[-99.99467773437502,69.01352539062503],[-100.19570312500002,68.991455078125],[-100.153125,69.12949218750003],[-99.99467773437502,69.01352539062503]]],[[[-79.21064453124995,68.845458984375],[-79.24267578125,69.04926757812495],[-78.33256835937496,69.38603515624999],[-78.77919921875,68.95048828124999],[-79.21064453124995,68.845458984375]]],[[[-90.1998046875,69.419091796875],[-90.33027343749993,69.252197265625],[-90.49204101562503,69.369873046875],[-90.1998046875,69.419091796875]]],[[[-76.99536132812503,69.14375],[-77.37939453125,69.2740234375],[-77.18754882812502,69.440087890625],[-76.66884765625002,69.36616210937504],[-76.99536132812503,69.14375]]],[[[-101.171728515625,69.39707031250003],[-101.31289062499998,69.57607421875],[-101.00063476562497,69.4619140625],[-101.171728515625,69.39707031250003]]],[[[-95.51367187499997,69.57363281250002],[-95.43745117187498,69.37846679687505],[-95.73012695312502,69.34755859374997],[-95.80620117187499,69.56049804687501],[-95.89345703125,69.35175781250004],[-95.87583007812495,69.60600585937505],[-95.51367187499997,69.57363281250002]]],[[[-67.91469726562494,69.54096679687504],[-68.22138671874998,69.61674804687502],[-67.908837890625,69.68183593749995],[-67.91469726562494,69.54096679687504]]],[[[-78.02910156249993,69.71489257812502],[-78.03999023437495,69.6083984375],[-78.84819335937502,69.4828125],[-78.02910156249993,69.71489257812502]]],[[[-79.43066406250003,69.78779296874995],[-79.55283203124995,69.63085937500006],[-80.04750976562502,69.63432617187505],[-79.97783203124993,69.50966796874997],[-80.794775390625,69.68925781250005],[-80.42421875000002,69.797607421875],[-79.43066406250003,69.78779296874995]]],[[[-97.439453125,69.64267578125006],[-96.29995117187494,69.34438476562505],[-95.7513671875,68.89765624999998],[-95.26777343749998,68.82607421874997],[-96.40156249999995,68.47070312500003],[-97.47202148437498,68.543701171875],[-98.320556640625,68.84272460937498],[-98.70380859374993,68.80278320312502],[-98.90449218749995,68.93242187500005],[-99.25400390625002,68.86318359374997],[-99.49467773437493,68.95957031249998],[-99.455712890625,69.13120117187503],[-98.45595703124997,69.33466796875001],[-98.54599609375,69.57290039062497],[-98.04135742187498,69.456640625],[-98.20048828124996,69.79697265625006],[-97.79072265624998,69.86162109374999],[-97.439453125,69.64267578125006]]],[[[-86.91303710937501,70.11323242187501],[-86.55766601562499,69.99531249999995],[-87.3232421875,70.08012695312502],[-86.91303710937501,70.11323242187501]]],[[[-74.70888671874997,45.0038574218751],[-74.76245117187494,44.99907226562502],[-74.99614257812496,44.970117187499966],[-75.40126953124997,44.77226562499999],[-75.81933593749997,44.468017578125],[-76.18579101562503,44.24223632812502],[-76.819970703125,43.62880859375011],[-77.59653320312492,43.62861328125007],[-78.45825195312497,43.63149414062511],[-78.72041015624993,43.62495117187501],[-78.84555664062492,43.58334960937506],[-79.171875,43.466552734375085],[-79.0830566406249,43.33139648437509],[-79.05922851562494,43.27807617187506],[-79.066064453125,43.10610351562502],[-79.02617187499996,43.01733398437506],[-78.98076171874993,42.98061523437502],[-78.91508789062496,42.90913085937504],[-79.17373046875,42.74853515625],[-80.24755859374991,42.366015625000045],[-81.02822265624997,42.247167968750006],[-81.50732421874997,42.10346679687504],[-81.97416992187496,41.88872070312499],[-82.43906249999989,41.6748535156251],[-82.69003906249995,41.675195312499994],[-83.141943359375,41.97587890624996],[-83.10952148437497,42.25068359375001],[-82.54531249999997,42.62470703124998],[-82.19038085937495,43.47407226562501],[-82.137841796875,43.570898437500034],[-82.48505859374993,45.08374023437503],[-82.55107421874987,45.3473632812501],[-82.91933593749994,45.51796875000002],[-83.59267578125,45.81713867187506],[-83.46948242187503,45.99467773437499],[-83.61596679687503,46.116845703124994],[-83.97778320312494,46.08491210937507],[-84.12319335937497,46.50292968749997],[-84.44047851562496,46.49814453125006],[-84.66577148437503,46.54326171875002],[-84.87597656249994,46.89990234375003],[-85.07006835937497,46.97993164062498],[-85.65224609375,47.21997070312503],[-86.67216796874996,47.636425781249955],[-87.20800781249997,47.848486328125006],[-87.74389648437497,48.06054687500003],[-88.37817382812497,48.30307617187506],[-89.45566406249992,47.99624023437508],[-90.79731445312495,48.13105468750001],[-91.04345703124991,48.19370117187498],[-91.38720703124997,48.05854492187498],[-92.00517578125002,48.301855468750006],[-92.3484375,48.276611328125],[-92.41459960937493,48.276611328125],[-92.50058593749995,48.43535156250002],[-92.83671875,48.567773437499994],[-93.25795898437497,48.62885742187501],[-93.37788085937498,48.61655273437498],[-93.70771484374995,48.525439453125074],[-93.85161132812496,48.607275390625034],[-94.6208984374999,48.7426269531251],[-94.71279296874997,48.863427734374994],[-94.80346679687497,49.0029296875],[-94.86040039062493,49.258593750000045],[-94.85434570312495,49.304589843749994],[-95.15527343749997,49.3696777343751],[-95.16206054687493,48.991748046875045],[-95.39790039062493,48.99316406249997],[-96.25068359374993,48.99316406249997],[-96.67705078124993,48.99316406249997],[-97.52983398437493,48.99316406249997],[-98.80898437499995,48.99316406249997],[-104.77832031249997,48.993115234375125],[-110.7476562499999,48.993066406250136],[-116.71704101562493,48.993066406250136],[-118.84892578124993,48.993066406250136],[-119.27534179687494,48.993066406250136],[-119.70170898437495,48.99301757812495],[-120.98085937499995,48.99301757812495],[-122.78876953124994,48.99301757812495],[-122.82670898437495,49.028417968750034],[-122.9241699218749,49.07465820312504],[-122.96269531249993,49.07460937500005],[-123.06328125,48.97773437500001],[-123.22944335937493,49.260498046875085],[-122.87910156249995,49.39892578125003],[-123.27675781249997,49.34394531250001],[-123.1875,49.680322265624994],[-123.53056640624989,49.39731445312506],[-124.02861328125002,49.602880859375006],[-123.99262695312497,49.736181640625006],[-123.81718749999993,49.58657226562508],[-123.58247070312498,49.68125],[-123.87441406250005,49.736816406250114],[-123.82543945312493,50.14423828124998],[-123.94589843749995,50.18393554687509],[-123.9849121093749,49.87558593749998],[-124.28125,49.77211914062502],[-124.78237304687492,50.02011718749992],[-125.05668945312495,50.418652343750125],[-124.8598632812499,50.872412109375006],[-125.05878906249993,50.51386718749998],[-125.4763183593749,50.49716796874995],[-125.53935546874996,50.64902343749998],[-125.64130859374994,50.46621093750005],[-126.09433593749995,50.497607421875045],[-126.44746093750004,50.58774414062492],[-125.90410156250002,50.704931640625006],[-126.51435546875,50.679394531250125],[-126.37460937499995,50.83735351562498],[-126.5217773437499,50.86606445312498],[-126.51733398437497,51.0568359375001],[-126.63178710937494,50.915136718750006],[-127.057568359375,50.86752929687509],[-127.70810546875,51.15117187499996],[-127.41967773437496,51.608056640625136],[-126.69145507812502,51.70341796875002],[-127.33872070312489,51.70737304687495],[-127.66870117187497,51.47758789062502],[-127.85053710937498,51.67319335937509],[-127.79536132812493,52.19101562500006],[-127.43793945312504,52.356152343750125],[-127.24223632812496,52.39511718750009],[-126.71396484374989,52.060693359374994],[-127.19399414062498,52.45766601562502],[-126.95136718749994,52.7510253906251],[-127.01933593750002,52.8424804687501],[-127.06621093749989,52.65268554687498],[-127.79189453124994,52.28935546875002],[-128.10224609374993,51.78842773437495],[-128.3576171875,52.1588867187501],[-128.0375,52.318164062500045],[-127.94023437499996,52.545166015625085],[-128.27153320312493,52.3629882812501],[-128.05327148437487,52.91069335937496],[-128.3650390624999,52.82578125000006],[-128.52470703125002,53.1406738281251],[-129.08090820312492,53.36728515625006],[-129.1715820312499,53.53359375000002],[-128.8545898437499,53.70454101562504],[-128.90561523437492,53.559326171875114],[-128.5421386718749,53.420654296875114],[-128.13271484375002,53.417773437500045],[-127.92783203125,53.274707031250045],[-128.2072265624999,53.483203125000074],[-128.67553710937494,53.55458984375005],[-128.76367187500003,53.746875],[-128.5321289062499,53.85810546875007],[-128.959375,53.84145507812505],[-129.2578613281249,53.417968750000085],[-129.56372070312506,53.251464843750114],[-130.33525390625002,53.723925781250074],[-130.04331054687495,54.13354492187503],[-129.62602539062493,54.23027343750002],[-130.08422851562503,54.18139648437503],[-130.4302734375,54.42099609374998],[-129.56064453124995,55.46254882812508],[-129.79516601562503,55.559570312500114],[-130.04848632812494,55.05727539062511],[-130.01406249999997,55.950537109375006],[-130.09785156249995,56.10927734375002],[-130.41313476562487,56.12250976562507],[-130.47709960937496,56.230566406250034],[-130.649072265625,56.26367187500003],[-131.471875,56.55673828125006],[-131.82426757812496,56.58999023437508],[-131.86616210937495,56.792822265625006],[-132.1042968749999,56.85678710937509],[-132.062890625,56.95336914062503],[-132.33798828124992,57.07944335937498],[-132.27939453124998,57.14536132812506],[-132.23217773437494,57.198535156250074],[-132.30166015625005,57.2763183593751],[-132.44248046874986,57.40673828125003],[-132.55048828124995,57.499902343749994],[-133.00141601562495,57.948974609375],[-133.27529296875,58.22285156250004],[-133.54638671874997,58.50346679687499],[-134.21850585937503,58.849902343750045],[-134.32963867187505,58.93969726562506],[-134.39306640625,59.009179687499994],[-134.67724609374997,59.19926757812499],[-134.94375,59.28828125000001],[-135.05102539062491,59.57866210937502],[-135.36787109374998,59.743310546874994],[-135.70258789062504,59.72875976562506],[-136.3218261718749,59.604833984375034],[-136.27797851562494,59.48032226562506],[-136.46635742187493,59.459082031250006],[-136.57875976562494,59.15224609375002],[-136.81328125000002,59.15004882812511],[-137.12622070312491,59.04096679687507],[-137.2775390624999,58.988183593749994],[-137.43857421874995,58.903125],[-137.52089843749994,58.91538085937506],[-137.59331054687493,59.22626953124998],[-138.317626953125,59.611132812500074],[-138.86875,59.94575195312501],[-139.18515624999986,60.083593750000034],[-139.13696289062494,60.17270507812506],[-139.07924804687497,60.279443359375136],[-139.07924804687497,60.3437011718751],[-139.23476562499997,60.339746093749994],[-139.67631835937505,60.32832031249998],[-139.97329101562497,60.183154296875074],[-140.45283203125004,60.29970703125002],[-140.5254394531249,60.21835937499995],[-140.76274414062505,60.25913085937509],[-141.00214843750004,60.300244140625125],[-141.00214843750004,60.884667968749994],[-141.00214843750004,61.761279296875045],[-141.00214843750004,63.22226562499998],[-141.00214843750004,64.09887695312506],[-141.00214843750004,65.55991210937498],[-141.00214843750004,66.43652343750006],[-141.00214843750004,67.89755859374998],[-141.00214843750004,68.77416992187506],[-141.00214843750004,69.65078125000011],[-139.18154296874997,69.51552734375008],[-137.25996093749998,68.96411132812503],[-136.12236328124993,68.88222656250002],[-135.258837890625,68.68432617187503],[-135.93901367187487,68.9741699218751],[-135.575537109375,69.02695312500003],[-135.91020507812487,69.11147460937502],[-135.6914550781249,69.31118164062502],[-135.29282226562486,69.30786132812506],[-135.1408203124999,69.46782226562496],[-134.45683593749993,69.47763671875],[-134.40893554687494,69.68178710937502],[-133.87978515624997,69.50771484375011],[-134.17431640624991,69.25283203125005],[-133.16313476562496,69.43388671874999],[-132.91533203125002,69.62963867187506],[-132.40390625,69.65874023437496],[-132.48847656249993,69.73808593749996],[-132.16342773437498,69.70498046875014],[-131.13637695312497,69.90688476562505],[-130.66547851562495,70.12705078124998],[-129.944970703125,70.09091796875006],[-129.675634765625,70.19296875000009],[-129.64829101562495,69.9977539062501],[-130.83208007812487,69.65146484375006],[-131.9377929687499,69.5347167968751],[-132.8174804687499,69.20576171875004],[-133.41831054687492,68.84428710937493],[-133.138037109375,68.74658203125011],[-133.33666992187497,68.83525390625005],[-132.57763671874997,68.84780273437514],[-132.71894531249998,69.07919921875],[-131.78837890625002,69.43198242187495],[-131.32470703124997,69.36118164062509],[-131.06342773437504,69.45068359375003],[-130.97065429687495,69.20908203125],[-130.1176269531249,69.720068359375],[-128.89892578124994,69.96616210937506],[-129.15791015624995,69.80009765624999],[-129.05434570312502,69.70107421875005],[-128.85302734375003,69.7510253906251],[-127.68378906249994,70.26035156249995],[-128.17011718749998,70.41845703125],[-127.99101562499992,70.57382812500003],[-127.22597656249992,70.29614257812497],[-126.25043945312495,69.54526367187492],[-125.52495117187495,69.35156250000009],[-125.171875,69.42797851562503],[-125.35693359374991,69.62597656250003],[-124.767919921875,69.99003906249996],[-124.99038085937494,70.02661132812511],[-124.55502929687488,70.15122070312509],[-124.40693359374991,69.76743164062506],[-124.12460937499995,69.6899902343751],[-124.33808593749991,69.36484374999995],[-123.5284179687499,69.38935546874995],[-123.02578125,69.81000976562504],[-122.07006835937499,69.81616210937506],[-120.96245117187502,69.66040039062511],[-120.13999023437488,69.38056640625013],[-117.22695312499998,68.913427734375],[-116.05947265625,68.83701171875006],[-116.2434082031249,68.9740722656251],[-115.44228515624994,68.94091796875009],[-114.62016601562496,68.74609375],[-113.96440429687495,68.39907226562502],[-114.09594726562491,68.26679687500007],[-114.76528320312494,68.27021484375004],[-115.12705078124992,68.13203124999995],[-115.43447265624994,67.90234375000006],[-115.13320312499994,67.819189453125],[-112.50302734374993,67.6819335937501],[-110.9900390624999,67.79082031250007],[-110.07392578124995,67.99291992187506],[-109.63037109374991,67.73271484374996],[-109.03803710937504,67.69116210937503],[-108.85200195312497,67.42197265625009],[-108.61333007812493,67.59804687500008],[-107.98872070312495,67.2563964843751],[-107.99130859374995,67.09516601562513],[-108.49604492187493,67.09228515625006],[-107.25947265624998,66.39853515624995],[-107.71035156250001,66.74003906250007],[-107.7250976562499,66.98413085937506],[-107.15649414062497,66.88173828124997],[-107.9583984375,67.81860351562506],[-107.79829101562498,68.03691406249996],[-106.42426757812491,68.20058593750008],[-105.7501953125,68.59228515625011],[-106.45805664062496,68.51645507812495],[-106.60849609374988,68.35737304687504],[-107.61933593749994,68.3310546875],[-107.73417968749989,68.17373046875011],[-108.3228027343749,68.15410156250002],[-108.71811523437488,68.29746093750009],[-108.31347656249996,68.61079101562498],[-106.16445312499992,68.91987304687507],[-105.68559570312489,68.82817382812505],[-105.3774414062499,68.413818359375],[-104.65317382812488,68.23007812500003],[-104.48681640624991,68.06318359374998],[-103.47412109374993,68.11503906250005],[-102.32036132812489,67.73564453125005],[-101.55498046874992,67.69316406250007],[-100.21293945312489,67.83857421875004],[-98.92045898437502,67.72578124999998],[-98.41210937499991,67.80717773437505],[-98.63154296875004,68.0725585937501],[-97.45493164062486,67.61699218750002],[-97.20654296874989,67.85507812500003],[-97.73911132812495,67.97817382812505],[-98.19252929687494,67.92299804687502],[-98.65048828124989,68.36352539062506],[-98.21855468750002,68.31743164062507],[-97.7942382812499,68.38759765625],[-97.9250976562499,68.523681640625],[-97.41035156249993,68.49653320312498],[-96.97670898437497,68.25541992187505],[-96.43066406249991,68.3105957031251],[-96.72207031250005,68.03876953124998],[-95.9703125,68.24912109375],[-96.36914062499991,67.50976562500003],[-96.14145507812489,67.27182617187503],[-95.71992187499998,67.31679687500014],[-95.77768554687495,67.18461914062505],[-95.41591796875005,67.15556640624999],[-95.41889648437504,67.01323242187493],[-96.42255859374995,67.05175781249997],[-95.7875488281249,66.616796875],[-96.03686523437489,66.9375],[-95.39965820312503,66.94946289062509],[-95.25874023437493,67.26254882812492],[-95.65048828124986,67.73745117187505],[-95.46069335937503,68.02138671875],[-94.74443359374993,68.07089843749995],[-93.44892578124998,68.61889648437503],[-93.85244140624994,69.00034179687495],[-94.06489257812495,68.78476562500006],[-94.600439453125,68.80322265625011],[-94.08364257812497,69.12309570312507],[-94.254736328125,69.31376953125002],[-93.61948242187492,69.41699218750009],[-93.74853515624991,69.2261230468751],[-93.5322753906249,69.48090820312495],[-94.2708007812499,69.45512695312505],[-94.63383789062496,69.64965820312506],[-94.82250976562494,69.577783203125],[-95.96494140624989,69.80278320312499],[-96.5513671875,70.21030273437506],[-96.29770507812492,70.51137695312511],[-95.87861328124998,70.54897460937514],[-95.88632812499986,70.69428710937507],[-96.25800781249993,70.64228515625013],[-96.54892578124995,70.80874023437511],[-96.44658203124996,71.23989257812502],[-96.06201171874997,71.41386718749993],[-95.5642578124999,71.33676757812503],[-95.40625,71.49165039062498],[-95.87231445312494,71.57314453125005],[-94.73486328124994,71.98295898437507],[-94.30834960937491,71.76489257812506],[-93.74628906249998,71.742822265625],[-92.94868164062493,71.26210937500011],[-92.98144531249994,70.8522460937501],[-91.56406249999995,70.1782714843751],[-92.32050781250004,70.2353515625],[-92.51186523437494,70.10385742187503],[-91.976708984375,70.03867187500009],[-92.88779296874989,69.66821289062511],[-92.31166992187494,69.67290039062499],[-91.91196289062495,69.53125],[-91.20180664062494,69.64477539062494],[-91.43994140624997,69.52568359375002],[-90.4155761718749,69.45698242187507],[-90.89228515625004,69.26728515624995],[-91.23720703125005,69.28554687500014],[-90.47900390624994,68.88115234374999],[-90.57363281250005,68.47470703124998],[-90.20478515625004,68.25747070312511],[-89.27954101562491,69.25546875000003],[-88.22353515625,68.91503906249997],[-87.81357421874986,68.34570312499997],[-87.89267578125,68.24814453125],[-88.34697265624993,68.28828125000001],[-88.313818359375,67.95034179687508],[-87.359375,67.17724609374997],[-86.56079101562491,67.48212890625007],[-85.64316406249992,68.69970703124997],[-84.86757812499994,68.77333984375005],[-85.10664062499995,68.84404296875007],[-84.86220703125,69.07397460937503],[-85.38676757812493,69.23188476562504],[-85.50737304687487,69.84526367187493],[-82.61835937499993,69.69106445312514],[-82.39023437499989,69.60087890625007],[-82.75483398437493,69.49438476562506],[-82.30986328124996,69.41000976562509],[-82.22753906249997,69.24887695312495],[-81.37783203125005,69.18564453125003],[-81.95791015624991,68.88364257812498],[-81.38090820312496,68.85004882812504],[-81.28154296874987,68.65722656250003],[-81.91484374999993,68.4587890625001],[-82.55268554687504,68.44648437500007],[-82.22241210937489,68.145263671875],[-82.0125,68.19389648437496],[-81.97646484374997,67.86201171875001],[-81.2943359375,67.497412109375],[-81.46757812499996,67.0698730468751],[-83.40644531249998,66.37124023437508],[-84.53847656249994,66.97280273437505],[-84.84575195312502,67.02871093750008],[-85.11372070312498,66.90693359375013],[-84.73774414062504,66.93359375000006],[-84.223046875,66.68247070312506],[-83.86904296875,66.2135742187501],[-84.29306640624995,66.29179687500005],[-84.628076171875,66.20771484374998],[-85.603857421875,66.56826171875005],[-86.708154296875,66.52304687500009],[-86.68510742187502,66.36040039062499],[-85.95874023437491,66.11904296875002],[-87.45288085937503,65.33896484375009],[-87.96997070312503,65.34892578124999],[-89.7494140625,65.93603515625006],[-89.88969726562487,65.86855468749997],[-91.42724609374994,65.94790039062497],[-91.04111328124989,65.82983398437509],[-90.98344726562496,65.91923828124999],[-89.92407226562497,65.78027343750011],[-88.97402343749994,65.34829101562502],[-87.02753906249995,65.19809570312498],[-88.10561523437497,64.18330078125001],[-88.81772460937489,63.99223632812499],[-89.20063476562493,64.11376953125006],[-89.13154296874998,63.96850585937494],[-89.61582031249995,64.030615234375],[-89.8113281249999,64.18056640625],[-90.04165039062494,64.14086914062509],[-89.85571289062497,63.9569824218751],[-90.16816406250004,63.978759765625085],[-90.15473632812498,63.68964843749998],[-90.81191406249991,63.580908203125034],[-91.98222656249996,63.82241210937502],[-92.33842773437496,63.787646484375045],[-93.69633789062493,64.14716796875013],[-93.55981445312491,63.865283203125074],[-93.27021484374998,63.840869140625074],[-93.37851562499992,63.94848632812497],[-92.15688476562491,63.691699218750045],[-92.46508789062491,63.55507812500011],[-91.84184570312496,63.69755859374999],[-90.97006835937489,63.442773437500136],[-90.69858398437492,63.06386718750005],[-91.44897460937503,62.804052734375034],[-92.3612792968749,62.81938476562496],[-91.93583984374993,62.59238281250009],[-92.55141601562491,62.546728515625034],[-92.76596679687492,62.34995117187509],[-92.52797851562494,62.16840820312504],[-93.20537109374993,62.364941406250125],[-92.90551757812503,62.21513671874996],[-93.3330566406249,61.93291015625002],[-93.58178710937494,61.94204101562511],[-93.31201171874997,61.76728515625004],[-93.91274414062497,61.48144531250006],[-94.509375,60.60454101562493],[-94.76171874999991,60.498242187500125],[-94.78828124999998,59.26787109374993],[-94.95732421874996,59.068847656250085],[-94.28706054687493,58.716015625000125],[-94.33222656249998,58.297363281250114],[-94.12319335937494,58.73671875000008],[-93.1787597656249,58.72563476562496],[-92.43281249999993,57.3203125],[-92.7981445312499,56.921972656250034],[-90.89746093750003,57.25693359375006],[-88.94848632812489,56.85131835937503],[-88.07509765624997,56.46728515624994],[-87.48242187499991,56.021289062500045],[-85.55932617187491,55.54018554687508],[-85.21801757812491,55.348974609375034],[-85.3652832031249,55.07929687499998],[-85.06093749999997,55.285644531250085],[-83.91059570312493,55.314648437499955],[-82.39326171874998,55.067822265625125],[-82.219384765625,54.8134765625],[-82.42416992187486,54.2445800781251],[-82.14145507812492,53.81762695312497],[-82.29155273437496,53.03071289062507],[-81.5994140624999,52.432617187500085],[-81.82788085937489,52.22421875000009],[-81.46621093749994,52.204492187500136],[-80.588037109375,51.667236328125114],[-80.4433105468749,51.38857421875002],[-80.85122070312497,51.125],[-80.47832031249993,51.30732421874998],[-80.10356445312487,51.282861328125136],[-79.34790039062494,50.76264648437504],[-79.737451171875,51.186279296875],[-79.33867187500002,51.62817382812497],[-79.04052734375003,51.46376953125005],[-78.90317382812495,51.200292968750034],[-78.73134765624994,51.497460937499994],[-78.98164062499993,51.774560546875136],[-78.44809570312495,52.26137695312502],[-78.74414062499994,52.65537109374998],[-79.10034179687497,53.65664062500005],[-78.99604492187493,54.00249023437499],[-79.241796875,54.098876953125085],[-79.14672851562491,54.16923828125002],[-79.71235351562495,54.6718261718751],[-77.77529296874994,55.291259765625],[-76.60405273437496,56.19956054687495],[-76.52558593749998,56.8917968750001],[-76.80981445312497,57.65795898437506],[-77.15678710937496,58.018896484375034],[-78.51508789062493,58.68237304687503],[-77.76069335937498,59.38002929687505],[-77.72617187499995,59.67587890624992],[-77.34907226562495,59.57895507812509],[-77.48530273437493,59.684570312500114],[-77.28920898437494,60.0220214843751],[-77.58588867187498,60.088183593750074],[-77.45288085937497,60.1458007812501],[-77.6814453124999,60.427099609375034],[-77.503564453125,60.54272460937497],[-77.7908203124999,60.63984375000004],[-77.58955078124993,60.808593750000114],[-78.18134765624995,60.81914062499996],[-77.51435546874998,61.55629882812505],[-78.02138671874997,61.8320800781251],[-78.13339843749986,62.28227539062496],[-77.372412109375,62.572509765625114],[-75.81689453124991,62.31586914062507],[-75.7898437499999,62.17958984375002],[-75.3412109375,62.312109375],[-74.63256835937497,62.115673828125125],[-74.6458007812499,62.21113281250004],[-73.70507812499991,62.47314453124994],[-72.68696289062498,62.12456054687499],[-72.771630859375,61.840429687500006],[-72.50556640624998,61.922656250000074],[-72.22612304687487,61.83159179687499],[-72.04003906249991,61.68027343750006],[-72.21586914062502,61.58725585937495],[-71.86611328125,61.68852539062499],[-71.63828124999995,61.6171875],[-71.85439453124991,61.43979492187492],[-71.42270507812489,61.158935546875085],[-70.27929687499991,61.06865234374999],[-69.99243164062491,60.8564941406251],[-69.50332031249994,61.04042968750011],[-69.40473632812493,60.84677734375009],[-69.75947265624998,60.440234375000045],[-69.67373046874994,60.07587890625007],[-70.65483398437496,60.02622070312506],[-69.73393554687493,59.918017578125045],[-69.68188476562489,59.34174804687507],[-69.3440429687499,59.303076171875006],[-69.53164062499994,58.86923828125009],[-69.64838867187493,58.82080078125],[-69.78417968749994,58.95571289062511],[-70.15434570312496,58.76059570312498],[-69.78989257812486,58.689306640625034],[-69.27109374999986,58.88393554687505],[-68.69819335937495,58.904541015625],[-68.38115234374993,58.74350585937506],[-68.22939453124994,58.48457031250007],[-68.35654296874989,58.163232421875136],[-69.04082031249996,57.902490234375136],[-68.41357421874997,58.0517578125],[-68.02104492187493,58.48530273437504],[-67.88828124999989,58.29575195312495],[-68.06386718750005,58.13896484374999],[-67.75595703124992,58.4045898437501],[-67.6782714843749,57.99111328125008],[-67.5696289062499,58.21347656250006],[-66.72216796874991,58.49101562499996],[-66.36240234374989,58.791162109374994],[-66.0023925781249,58.43120117187502],[-66.04306640624995,58.82065429687495],[-65.72099609374996,59.02377929687495],[-65.38354492187494,59.06020507812508],[-65.7,59.21333007812501],[-65.4117187499999,59.31499023437496],[-65.47509765624994,59.47031249999998],[-65.03823242187494,59.38789062500007],[-65.40742187499993,59.53935546875002],[-65.4333984374999,59.776513671874994],[-65.02817382812495,59.77070312500007],[-65.17172851562489,59.90800781249996],[-64.81733398437498,60.3310546875],[-64.49941406250005,60.26826171875001],[-64.41958007812494,60.17138671874997],[-64.76845703124997,60.01210937500005],[-64.28349609374993,60.06406249999998],[-64.22631835937491,59.741210937500085],[-64.05605468750005,59.82255859374996],[-63.7501953124999,59.51259765625005],[-63.945458984374994,59.380175781250074],[-63.775878906249915,59.277148437500045],[-63.539892578124864,59.332861328125034],[-63.41513671874995,59.194384765625074],[-63.97114257812498,59.053808593750034],[-63.24843749999991,59.068310546874955],[-63.28212890624994,58.86738281250007],[-63.05029296874997,58.87817382812494],[-62.87387695312489,58.67246093749998],[-63.537060546874926,58.329931640625006],[-63.209960937499886,58.46694335937502],[-62.593847656249864,58.47402343750005],[-62.81206054687502,58.20039062500007],[-63.26152343749993,58.014697265625074],[-62.486230468749966,58.15405273437506],[-62.30566406249997,57.97226562499995],[-61.95864257812505,57.91176757812508],[-61.9679687499999,57.61191406250009],[-62.495556640624926,57.489208984375125],[-61.92114257812497,57.42080078125005],[-61.977441406249966,57.24794921875002],[-61.33374023437494,57.01059570312498],[-61.37163085937502,56.68081054687511],[-62.497265624999926,56.80170898437504],[-61.73774414062498,56.52602539062502],[-61.940429687499886,56.423583984375114],[-61.42529296874994,56.360644531250074],[-61.713085937499955,56.230957031250114],[-61.364697265624926,56.2160156250001],[-61.30112304687495,56.04716796874999],[-61.4495117187499,55.99570312499998],[-61.08935546874997,55.86635742187511],[-60.74326171874989,55.94145507812493],[-60.56210937499995,55.727001953125125],[-60.341015624999926,55.78466796874997],[-60.40830078124995,55.649560546874994],[-60.19238281249994,55.4809082031251],[-60.617138671874955,55.060205078124994],[-59.75878906249997,55.3095703125],[-59.68906249999989,55.19633789062502],[-59.43789062500005,55.175927734375136],[-59.837792968749994,54.813964843750114],[-59.25957031249996,55.19995117187506],[-58.99711914062496,55.149462890625074],[-58.780175781249994,54.838378906250114],[-58.39814453124998,54.77412109374998],[-57.96245117187493,54.875732421875085],[-57.40449218750004,54.59086914062496],[-57.69926757812496,54.38657226562506],[-58.435205078124966,54.228125],[-58.63320312499999,54.04956054687497],[-59.8230468749999,53.83442382812504],[-60.14492187499994,53.59614257812498],[-60.395410156249994,53.653320312500085],[-60.1002929687499,53.48696289062511],[-60.329492187499966,53.26611328125006],[-58.652050781249926,53.97788085937495],[-57.935986328124955,54.09116210937492],[-58.31748046874989,54.11445312500007],[-58.192089843749926,54.228173828125136],[-57.4160644531249,54.162744140625136],[-57.134960937499926,53.79184570312506],[-57.524072265624966,53.61142578125006],[-57.331738281249955,53.469091796875034],[-56.84086914062496,53.73945312500004],[-56.46499023437505,53.76503906250011],[-55.96611328125002,53.4711425781251],[-55.79794921874995,53.211962890625045],[-55.80283203124989,52.64316406249998],[-56.324902343749926,52.54453124999998],[-55.74648437499994,52.4745605468751],[-55.7771484374999,52.3642578125],[-56.01171874999997,52.394482421875125],[-55.695214843749994,52.13779296875006],[-56.97597656250005,51.45766601562505],[-58.510351562500006,51.295068359375136],[-59.88632812499992,50.316406250000085],[-61.72485351562503,50.10405273437499],[-61.91953124999989,50.2328613281251],[-62.71542968749995,50.30166015625008],[-66.49550781249991,50.2118652343751],[-66.94116210937503,49.993701171875045],[-67.37202148437495,49.348437500000045],[-68.28193359374998,49.197167968750136],[-69.67387695312496,48.19916992187504],[-71.01826171874993,48.455615234375045],[-69.86552734374993,48.17226562500005],[-69.775,48.09809570312504],[-69.9944335937499,47.73989257812508],[-70.70585937499996,47.13979492187505],[-71.26777343749995,46.79594726562499],[-71.87958984374998,46.68681640624996],[-72.98100585937493,46.209716796875085],[-73.4766113281249,45.738232421874955],[-74.03784179687494,45.501855468750136],[-74.31508789062494,45.531054687500045],[-73.97382812499995,45.345117187499994],[-74.70888671874997,45.0038574218751]]],[[[-96.78232421874998,72.93662109375],[-97.0927734375,72.99692382812503],[-96.86240234374995,73.18881835937506],[-96.78232421874998,72.93662109375]]],[[[-114.52153320312502,72.592919921875],[-113.57807617187501,72.65209960937506],[-113.2923828125,72.94980468750003],[-112.75361328125001,72.98603515624995],[-111.26972656249994,72.71372070312498],[-111.895166015625,72.35610351562497],[-111.67509765625002,72.30014648437503],[-110.20512695312495,72.66127929687497],[-110.66083984374998,73.00820312500002],[-110.00844726562494,72.983642578125],[-108.75498046875002,72.55107421874999],[-108.18823242187501,71.72377929687502],[-107.812841796875,71.62617187500004],[-107.30600585937496,71.89467773437502],[-108.23740234374999,73.14990234375003],[-108.029052734375,73.34873046875003],[-106.48212890624998,73.19619140624997],[-105.41513671874995,72.788330078125],[-104.38593749999997,71.57695312500005],[-104.51479492187502,71.06425781250005],[-103.58457031249995,70.63085937500003],[-103.07719726562497,70.50883789062505],[-103.04956054687503,70.65507812499999],[-101.67631835937495,70.27827148437495],[-101.56240234375001,70.135009765625],[-101.04267578125,70.11079101562504],[-100.98237304687497,69.67988281250001],[-101.483837890625,69.85019531250006],[-101.64765624999997,69.69853515625007],[-102.18212890624997,69.845947265625],[-102.59589843749997,69.71791992187502],[-102.62109374999996,69.55151367187506],[-103.464892578125,69.64448242187498],[-103.04892578124999,69.47177734375006],[-103.12021484374995,69.20458984374997],[-102.44677734374997,69.476318359375],[-102.04594726562493,69.46484374999997],[-101.85712890625001,69.02397460937505],[-102.89506835937499,68.8236328125],[-104.57143554687501,68.87211914062502],[-105.105859375,68.92041015625],[-105.019580078125,69.08125],[-106.27016601562497,69.19458007812497],[-106.65908203124997,69.439599609375],[-107.43989257812497,69.00214843749995],[-108.36499023437497,68.93476562499998],[-109.47211914062501,68.67670898437498],[-113.12773437500002,68.49414062500003],[-113.61684570312501,68.8384765625],[-113.69414062499995,69.19501953124998],[-115.61811523437495,69.28295898437506],[-116.51347656249993,69.42460937500005],[-117.19541015624995,70.05405273437503],[-114.59233398437497,70.31245117187498],[-112.63789062499997,70.225244140625],[-111.63256835937497,70.30883789062497],[-113.75727539062503,70.69072265625005],[-115.99091796874997,70.586279296875],[-117.58706054687498,70.62954101562502],[-118.2640625,70.888330078125],[-118.26909179687493,71.03471679687505],[-115.30341796874997,71.49370117187505],[-117.93564453125003,71.39208984375003],[-118.22646484374995,71.46708984375005],[-117.742333984375,71.65932617187502],[-118.58300781250003,71.64902343749998],[-118.98769531249997,71.7642578125],[-118.94462890624997,71.98554687499995],[-118.21347656249998,72.26289062499998],[-118.481298828125,72.42768554687498],[-118.13310546874995,72.63281250000003],[-114.63823242187499,73.37265625000003],[-114.20639648437495,73.29780273437495],[-114.05170898437497,73.07099609375004],[-114.52153320312502,72.592919921875]]],[[[-105.28891601562499,72.919921875],[-106.92153320312497,73.479833984375],[-106.61396484375001,73.69560546875002],[-105.31796874999995,73.76713867187502],[-104.5875,73.57807617187495],[-104.62172851562495,73.3111328125],[-105.28891601562499,72.919921875]]],[[[-79.53730468749998,73.65449218749998],[-78.2865234375,73.66582031250007],[-77.20654296874997,73.49956054687505],[-76.18339843749999,72.84306640625005],[-77.83593750000003,72.89682617187498],[-79.3193359375,72.75771484375],[-79.820703125,72.82631835937502],[-80.18330078124995,73.22465820312499],[-80.77641601562502,73.33417968750001],[-80.84887695312503,73.72124023437499],[-79.53730468749998,73.65449218749998]]],[[[-86.58935546874997,71.01079101562507],[-85.64384765624999,71.15244140624998],[-85.09487304687497,71.15195312500006],[-84.82373046874997,71.02861328125005],[-84.69941406249995,71.63144531250003],[-85.33906249999998,71.69726562500003],[-85.91162109375,71.98652343749998],[-85.321875,72.23315429687506],[-84.28374023437499,72.04448242187499],[-84.84199218749995,72.30815429687505],[-84.62304687500003,72.37656250000003],[-85.34111328124993,72.42153320312497],[-85.64990234374997,72.72216796875003],[-85.26210937500002,72.95400390625],[-84.25664062499999,72.79672851562503],[-85.454736328125,73.10546875000003],[-84.41606445312496,73.45649414062495],[-83.781884765625,73.41689453125],[-83.72983398437495,73.57587890624995],[-81.946142578125,73.72983398437506],[-81.40615234374997,73.634521484375],[-80.27724609375,72.77016601562502],[-81.229345703125,72.31171874999998],[-80.61147460937497,72.450830078125],[-80.925146484375,71.90766601562501],[-80.18193359374996,72.20878906250007],[-79.884375,72.17719726562501],[-80.10893554687499,72.33217773437497],[-79.83129882812503,72.44628906250003],[-79.000244140625,72.27202148437507],[-79.00781250000003,72.04291992187501],[-78.58510742187497,71.880615234375],[-78.86274414062495,72.100830078125],[-78.69926757812496,72.35141601562498],[-77.51650390624997,72.17778320312505],[-78.48427734374994,72.47060546875002],[-77.75322265624996,72.72475585937502],[-75.70429687499998,72.57153320312497],[-75.05268554687493,72.22636718749999],[-75.92280273437501,71.71723632812501],[-74.90317382812503,72.10048828125002],[-74.20932617187498,71.978662109375],[-74.31572265624999,71.84267578125],[-75.20478515625001,71.70913085937497],[-74.70078125,71.67558593750005],[-74.99619140624998,71.21811523437503],[-74.48808593750002,71.64838867187501],[-73.8140625,71.77143554687495],[-74.197265625,71.404150390625],[-73.71284179687498,71.58759765624998],[-73.18061523437501,71.282861328125],[-73.27822265625,71.53798828125],[-72.901953125,71.67778320312507],[-71.64067382812499,71.51625976562502],[-71.22939453124997,71.33876953125],[-71.49501953124997,71.10512695312502],[-71.93793945312498,71.09428710937502],[-72.63271484374994,70.83076171874998],[-71.74252929687495,71.046875],[-71.370849609375,70.97514648437499],[-70.82607421874994,71.10874023437503],[-70.67265625,71.05219726562498],[-70.76171874999997,70.79223632812503],[-71.89018554687502,70.43154296875002],[-71.27587890625,70.50029296874999],[-71.42944335937503,70.12778320312503],[-70.97978515624999,70.5810546875],[-69.94980468750003,70.84501953125005],[-68.49575195312502,70.61025390625],[-68.363525390625,70.48125],[-70.05771484375,70.042626953125],[-68.77822265625,70.20356445312501],[-69.00830078124997,69.97895507812501],[-68.74404296874997,69.94140625],[-68.05908203124997,70.317236328125],[-67.36367187499994,70.03442382812503],[-67.22163085937495,69.73071289062506],[-68.02041015625,69.77006835937499],[-69.25078124999999,69.51191406249998],[-68.51303710937498,69.57729492187497],[-67.236962890625,69.460107421875],[-66.71674804687495,69.31186523437498],[-66.70742187500002,69.16821289062503],[-68.40629882812499,69.23222656250002],[-69.040625,69.09799804687503],[-68.41552734375,69.17207031250001],[-67.8326171875,69.06596679687499],[-67.88320312500002,68.78398437499999],[-69.31909179687497,68.85698242187505],[-68.21040039062495,68.702978515625],[-67.9384765625,68.524169921875],[-66.74272460937502,68.45776367187497],[-67.032958984375,68.32607421874997],[-66.923095703125,68.06572265625005],[-66.72900390624997,68.12900390625006],[-66.66269531249995,68.03442382812497],[-66.63095703124998,68.21064453124998],[-66.21240234374997,68.280419921875],[-66.44394531249998,67.83383789062506],[-65.94238281250003,68.07094726562505],[-65.86435546875003,67.92285156249997],[-65.50908203124996,67.96826171875],[-65.40126953125002,67.67485351562499],[-65.41533203124996,67.87924804687498],[-64.92231445312495,68.03164062500002],[-65.02109375,67.78754882812495],[-64.63779296875,67.84023437500002],[-63.850195312500034,67.56606445312502],[-64.00795898437502,67.34731445312497],[-64.69995117187494,67.35053710937501],[-63.83623046874993,67.26411132812498],[-63.59160156250002,67.3775390625],[-63.040136718750034,67.235009765625],[-63.70156249999994,66.82236328125003],[-62.962304687499966,66.94926757812505],[-62.37973632812495,66.90537109375],[-62.12358398437499,67.046728515625],[-61.35341796874994,66.689208984375],[-61.52783203124994,66.55810546875003],[-62.12333984374993,66.64306640625003],[-61.57080078125,66.37290039062506],[-61.95634765624993,66.30932617187497],[-62.553125,66.40683593750003],[-62.53359374999994,66.22700195312498],[-61.99160156250002,66.03530273437502],[-62.624121093750006,66.01625976562505],[-62.381982421874966,65.83330078124999],[-62.65888671874998,65.63994140625002],[-63.16894531249997,65.65732421875],[-63.45874023437494,65.85302734375],[-63.42089843749997,65.70859374999998],[-63.651074218749955,65.66098632812506],[-63.33745117187493,65.61674804687502],[-63.36337890624998,65.22973632812503],[-63.606591796874966,64.92807617187503],[-64.345703125,65.17241210937499],[-64.26967773437497,65.40078124999997],[-64.55507812500002,65.1166015625],[-65.401611328125,65.764013671875],[-64.44536132812496,66.31713867187497],[-65.0044921875,66.07773437500003],[-65.82573242187499,65.996923828125],[-65.65634765625003,66.204736328125],[-66.06372070312497,66.13271484374997],[-66.986328125,66.62749023437505],[-67.07685546874995,66.52548828125006],[-67.30732421874993,66.5697265625],[-67.22539062499993,66.31025390624998],[-67.88339843749995,66.46743164062502],[-67.18320312499995,66.03442382812503],[-67.350439453125,65.92973632812502],[-67.82802734374997,65.96518554687503],[-68.45991210937498,66.249267578125],[-68.74892578125,66.200048828125],[-68.21718750000002,66.078857421875],[-68.18671874999993,65.87099609375002],[-67.86645507812497,65.773681640625],[-67.936767578125,65.56489257812501],[-67.56962890624999,65.64355468749997],[-67.11796874999999,65.44038085937495],[-67.3365234375,65.34658203125005],[-66.69741210937502,64.81518554687506],[-66.63549804687503,65.00034179687503],[-66.21464843749999,64.72241210937497],[-65.93852539062496,64.88574218750003],[-65.2748046875,64.63154296875004],[-65.52934570312499,64.50478515624997],[-65.074609375,64.43666992187502],[-65.21298828125003,64.30327148437502],[-65.580322265625,64.29384765624997],[-65.16987304687495,64.02817382812503],[-64.67846679687503,64.027978515625],[-64.79814453124999,63.91596679687498],[-64.4109375,63.70634765625002],[-64.66464843749995,63.24536132812497],[-65.19184570312498,63.764257812500006],[-65.06894531249998,63.26347656250002],[-64.67236328125003,62.921972656250006],[-65.16279296875001,62.93261718750003],[-65.10849609374998,62.62646484375],[-66.22402343749994,63.10717773437497],[-66.228662109375,62.99096679687503],[-66.41445312500002,63.027197265625034],[-66.65498046874998,63.264746093750006],[-66.69746093749993,63.069531249999955],[-67.89326171874993,63.733740234375006],[-67.72255859374997,63.422753906249966],[-68.49375,63.725488281249994],[-68.91108398437498,63.703222656250006],[-68.141259765625,63.17231445312501],[-67.67597656249998,63.093554687500045],[-67.73696289062497,63.00957031249999],[-65.98017578125001,62.20888671875002],[-66.12387695312498,61.89306640625],[-68.53588867187503,62.25561523437506],[-69.12558593749998,62.423974609374966],[-69.604736328125,62.76772460937502],[-70.23613281250002,62.76337890625001],[-70.801416015625,62.91049804687506],[-71.10576171874999,63.00224609375002],[-70.94604492187497,63.12070312499998],[-71.34726562499998,63.066113281249955],[-71.99223632812493,63.41616210937505],[-71.380859375,63.580322265625],[-72.29013671874995,63.72797851562498],[-72.17426757812498,63.893408203125006],[-72.49843749999994,63.82348632812497],[-73.45454101562495,64.39926757812503],[-73.27128906250002,64.58251953125],[-73.91035156249998,64.578125],[-74.064794921875,64.42465820312498],[-74.13046874999998,64.6078125],[-74.46123046874996,64.64467773437505],[-74.68139648437497,64.8306640625],[-74.91943359374997,64.76552734374997],[-74.69472656250002,64.49658203124997],[-75.71503906249995,64.52436523437495],[-75.76669921875,64.39194335937498],[-76.85615234374998,64.23764648437498],[-77.76049804687503,64.36015624999999],[-78.04521484374993,64.499267578125],[-78.09560546875,64.93925781250002],[-77.36088867187496,65.19653320312503],[-77.32670898437493,65.453125],[-75.82832031249993,65.22705078125003],[-75.45209960937495,64.84160156250002],[-75.35712890624995,65.00874023437495],[-75.79868164062503,65.297509765625],[-75.16630859374999,65.28393554687497],[-74.13847656250002,65.50346679687502],[-73.55078125000003,65.48525390625005],[-74.41640624999997,66.16708984375003],[-73.03325195312502,66.72817382812505],[-72.78881835937494,67.030615234375],[-72.22001953124999,67.25429687500002],[-73.28447265624993,68.35698242187505],[-73.82050781249998,68.36293945312502],[-73.82211914062495,68.68598632812501],[-74.11796875000002,68.70092773437506],[-73.9892578125,68.54863281250002],[-74.2701171875,68.54121093750001],[-74.89296875,68.80815429687505],[-74.71669921874997,69.04550781249998],[-76.58505859375,68.69873046875003],[-76.55722656250003,69.00947265625001],[-75.9537109375,69.03081054687502],[-75.64775390625002,69.212548828125],[-76.46494140624995,69.46943359375001],[-76.23408203125001,69.66210937500003],[-76.742333984375,69.57290039062497],[-77.08994140625,69.63510742187503],[-76.85859374999995,69.775390625],[-77.591650390625,69.84560546875002],[-77.77402343750003,70.23852539062503],[-78.28281250000003,70.229150390625],[-79.06640624999997,70.60356445312507],[-79.40522460937498,70.40073242187503],[-78.86284179687499,70.24189453125001],[-78.88964843750003,69.97749023437495],[-79.51542968749996,69.88759765625005],[-81.65195312500003,70.09462890625002],[-80.92172851562503,69.73090820312501],[-81.56469726562503,69.94272460937498],[-82.29384765624997,69.83691406250003],[-83.14995117187493,70.00908203125002],[-83.85908203124998,69.96274414062498],[-85.43237304687497,70.11137695312507],[-85.780029296875,70.03666992187505],[-86.32202148437503,70.14541015625],[-86.396875,70.46533203124997],[-87.838134765625,70.24658203125],[-88.78271484374997,70.49448242187503],[-89.45590820312498,71.06171874999995],[-87.84492187499995,70.94438476562505],[-87.14008789062498,71.01162109374997],[-89.80537109374993,71.46230468750005],[-89.86152343750001,72.41191406250005],[-88.70517578124998,73.40327148437495],[-87.71977539062496,73.72290039062497],[-85.95078124999998,73.85014648437505],[-84.94677734375,73.72163085937498],[-86.00053710937499,73.31254882812505],[-86.65629882812502,72.72402343750005],[-86.21845703124998,71.89912109375004],[-85.02338867187495,71.35322265625001],[-86.58935546874997,71.01079101562507]]],[[[-100.00190429687497,73.9458984375],[-99.15795898437499,73.73159179687497],[-97.66997070312499,73.88774414062499],[-97.1705078125,73.82485351562497],[-97.001708984375,73.66650390625003],[-97.62587890624997,73.50229492187498],[-97.27250976562502,73.38681640624998],[-98.42177734375002,72.94101562500003],[-97.63632812499998,73.02763671874999],[-97.128125,72.62758789062502],[-96.59208984374996,72.71025390624999],[-96.44560546874996,72.55244140624998],[-96.80146484374998,72.32241210937502],[-96.61342773437494,71.83383789062506],[-97.58227539062497,71.62968750000005],[-98.18134765624998,71.66245117187503],[-98.32270507812501,71.85234375000002],[-98.19863281249994,71.44086914062501],[-98.66289062499993,71.302099609375],[-99.22363281249996,71.387109375],[-100.594482421875,72.15234375000003],[-101.20854492187495,72.31699218749998],[-101.72392578124996,72.31489257812501],[-102.70874023437496,72.76450195312503],[-102.20400390624998,73.077294921875],[-101.27319335937497,72.7216796875],[-100.48476562500002,72.77294921874997],[-100.395703125,72.97700195312498],[-100.128125,72.90668945312495],[-100.53637695312497,73.19785156250003],[-99.82514648437503,73.2138671875],[-100.36611328125001,73.359033203125],[-100.88935546875003,73.27534179687501],[-101.52319335937501,73.48637695312502],[-100.97578124999995,73.59975585937502],[-100.5216796875,73.44931640625],[-100.96298828125002,73.79140625],[-99.99111328125,73.79516601562503],[-100.00190429687497,73.9458984375]]],[[[-98.270361328125,73.86850585937498],[-98.97392578124997,73.81206054687502],[-99.4169921875,73.89541015625002],[-97.69824218749997,74.10869140625005],[-98.270361328125,73.86850585937498]]],[[[-93.17084960937498,74.16098632812506],[-92.22270507812502,73.97236328124998],[-90.62744140625,73.95170898437505],[-90.38139648437496,73.82475585937502],[-92.11791992187497,72.75380859375],[-94.21132812499997,72.75693359375],[-93.77055664062496,72.66821289062506],[-93.55517578124994,72.42114257812497],[-94.03754882812498,72.02875976562498],[-95.00786132812496,72.01279296875],[-95.60214843749998,72.88447265624995],[-95.63291015625003,73.69545898437497],[-94.697607421875,73.66357421874997],[-95.134130859375,73.88125],[-94.97353515625,74.04140625000002],[-93.17084960937498,74.16098632812506]]],[[[-119.73632812499997,74.11264648437498],[-119.20595703125002,74.19799804687503],[-119.11796874999995,74.01552734375],[-118.54399414062499,74.24462890625003],[-117.51484375000001,74.23173828124999],[-115.51069335937501,73.61875],[-115.446875,73.43886718750002],[-118.96157226562497,72.68413085937499],[-119.51284179687501,72.30268554687501],[-120.17988281250001,72.21264648437506],[-120.61933593750001,71.50576171875002],[-121.47216796875003,71.38901367187503],[-121.74936523437502,71.44477539062501],[-123.09565429687503,71.09379882812502],[-124.00776367187494,71.67744140624998],[-125.29667968749999,71.973046875],[-125.84531250000002,71.978662109375],[-123.79726562499997,73.76816406250003],[-124.69624023437497,74.34819335937499],[-121.50415039062497,74.54511718749998],[-119.56264648437494,74.23281250000002],[-119.73632812499997,74.11264648437498]]],[[[-97.35551757812496,74.52631835937495],[-97.75,74.51054687500005],[-97.41650390624994,74.62656250000003],[-97.35551757812496,74.52631835937495]]],[[[-95.306640625,74.50541992187505],[-95.850732421875,74.58247070312504],[-95.51020507812498,74.63676757812499],[-95.306640625,74.50541992187505]]],[[[-104.11992187499995,75.03632812500004],[-104.88740234374998,75.14775390624999],[-104.34619140624996,75.42993164062503],[-103.64350585937497,75.18657226562499],[-104.11992187499995,75.03632812500004]]],[[[-93.54257812499995,75.0279296875],[-93.57309570312495,74.66884765625005],[-94.53452148437498,74.63671874999997],[-96.59960937499997,75.03178710937499],[-95.95463867187493,75.44379882812501],[-94.878173828125,75.63002929687502],[-93.90908203125002,75.42250976562502],[-93.54257812499995,75.0279296875]]],[[[-96.07856445312495,75.510107421875],[-96.91513671875003,75.37968749999999],[-96.98281249999997,75.50981445312505],[-96.367822265625,75.65463867187506],[-96.07856445312495,75.510107421875]]],[[[-94.52656249999995,75.74931640624999],[-94.901220703125,75.93076171875],[-94.53789062499996,75.99643554687506],[-94.52656249999995,75.74931640624999]]],[[[-118.328125,75.57968749999998],[-118.81713867187503,75.52211914062497],[-119.39458007812499,75.617333984375],[-117.63369140624998,76.11508789062498],[-118.328125,75.57968749999998]]],[[[-79.0630859375,75.92587890624998],[-79.63876953124995,75.84291992187505],[-79.00932617187499,76.14589843750005],[-79.0630859375,75.92587890624998]]],[[[-102.22734374999995,76.014892578125],[-102.00800781250003,75.93940429687498],[-102.57958984375003,75.78022460937498],[-103.31474609374996,75.76420898437499],[-103.04150390624999,75.91884765624997],[-103.98525390624997,75.93310546875003],[-103.80078124999994,76.03701171874997],[-104.24248046874996,76.04697265625006],[-104.35063476562497,76.18232421875001],[-102.72802734374999,76.30703125],[-102.22734374999995,76.014892578125]]],[[[-104.02285156249998,76.58310546875003],[-103.05131835937495,76.44985351562497],[-103.31137695312499,76.34755859375],[-104.35751953124995,76.33461914062502],[-104.58569335937499,76.60649414062499],[-104.07451171875003,76.66611328124998],[-104.02285156249998,76.58310546875003]]],[[[-97.70092773437497,76.46650390624998],[-97.89052734374997,75.7603515625],[-97.40751953124999,75.67250976562497],[-97.33603515624998,75.41982421875],[-97.65332031249997,75.50776367187498],[-97.87822265624996,75.41611328125003],[-97.67431640624997,75.127294921875],[-98.04531249999997,75.20083007812497],[-98.12094726562503,75.03271484375],[-100.234375,75.00771484374997],[-100.48349609374995,75.18842773437501],[-100.14570312499995,75.24614257812505],[-100.71191406250003,75.40634765625],[-99.19458007812499,75.698388671875],[-102.58740234375001,75.51367187500003],[-102.79750976562501,75.59965820312505],[-102.14472656249998,75.87504882812502],[-100.97280273437498,75.79843750000003],[-101.414990234375,75.84584960937502],[-101.87211914062496,76.08310546875003],[-101.52895507812495,76.21728515625003],[-102.1046875,76.33120117187505],[-101.41518554687495,76.42490234375003],[-99.86547851562499,75.92421875],[-100.11284179687502,76.11723632812507],[-99.54106445312497,76.14628906250005],[-100.41420898437495,76.242529296875],[-99.97773437500003,76.31245117187495],[-100.82973632812497,76.52387695312495],[-99.8140625,76.6322265625],[-98.89033203125,76.46557617187497],[-98.71083984374994,76.69384765625003],[-97.70092773437497,76.46650390624998]]],[[[-101.22612304687497,76.57934570312497],[-101.61308593749995,76.60458984375006],[-100.26914062499998,76.73413085937497],[-101.22612304687497,76.57934570312497]]],[[[-108.29238281250001,76.05712890625],[-107.72348632812502,75.99541015625002],[-108.020703125,75.80478515625],[-107.21621093749997,75.89155273437501],[-106.91352539062503,75.67963867187501],[-106.67700195312499,76.02373046875002],[-105.63266601562493,75.94536132812505],[-105.51948242187497,75.63237304687505],[-106.09262695312495,75.08945312500003],[-107.15341796874996,74.9271484375],[-108.47475585937495,74.94721679687501],[-108.83129882812501,75.06489257812498],[-112.51933593749997,74.41684570312503],[-113.67158203124997,74.45302734375005],[-114.31269531250003,74.71508789062506],[-112.835986328125,74.9755859375],[-111.67109375,75.01943359374997],[-111.09345703125001,75.25629882812498],[-113.71176757812499,75.06860351562503],[-113.85332031249996,75.259375],[-113.46708984374996,75.41611328125003],[-114.01650390624998,75.43427734375001],[-114.16845703124994,75.23950195312503],[-114.51381835937497,75.27548828125],[-114.45175781250002,75.08789062499997],[-115.02011718749999,74.97617187500003],[-115.41318359374995,75.11499023437497],[-115.72885742187496,74.968115234375],[-116.47607421874996,75.17177734375],[-117.56523437499997,75.23334960937504],[-117.25761718750002,75.45952148437502],[-116.07714843749996,75.49296874999999],[-115.14184570312501,75.67851562500005],[-116.42563476562498,75.58535156249997],[-117.16362304687496,75.64487304687503],[-116.80214843749995,75.77158203124998],[-114.99150390625002,75.896337890625],[-116.66455078124999,75.95756835937505],[-116.20986328125,76.19443359374998],[-114.77861328124999,76.17260742187497],[-115.82216796874997,76.27001953125003],[-114.99848632812503,76.4974609375],[-114.19394531249999,76.45146484375005],[-113.82348632812501,76.20683593750002],[-112.69760742187496,76.20170898437505],[-111.05268554687495,75.54853515625001],[-108.94716796875,75.54179687499999],[-108.94477539062495,75.69897460937503],[-109.8705078125,75.929052734375],[-109.48681640624999,76.14467773437497],[-110.31445312500001,76.369384765625],[-109.09824218749996,76.811865234375],[-108.46699218749997,76.73759765625007],[-108.29238281250001,76.05712890625]]],[[[-89.72646484374994,76.50742187499998],[-90.55625,76.73457031249998],[-90.13632812499995,76.83696289062505],[-89.69541015625,76.74116210937498],[-89.72646484374994,76.50742187499998]]],[[[-113.56069335937494,76.74326171874998],[-114.83525390624999,76.79467773437497],[-113.89165039062495,76.89487304687503],[-113.56069335937494,76.74326171874998]]],[[[-94.29497070312493,76.91245117187498],[-93.23002929687496,76.77026367187497],[-93.53457031250002,76.44770507812498],[-92.99536132812494,76.62041015624999],[-91.305029296875,76.68076171875003],[-90.54262695312494,76.495751953125],[-91.41508789062496,76.45585937500005],[-89.28452148437498,76.30161132812506],[-89.40659179687498,76.18916015624998],[-91.40732421874998,76.22006835937506],[-89.27758789062497,75.79506835937497],[-89.64604492187499,75.5650390625],[-88.91669921874998,75.45395507812503],[-88.64497070312495,75.65844726562503],[-88.201318359375,75.51201171875005],[-87.72973632812503,75.57563476562495],[-87.53911132812502,75.48486328125003],[-87.25693359374998,75.61772460937499],[-85.95146484374993,75.39501953125],[-85.97299804687498,75.5287109375],[-83.931982421875,75.81894531250003],[-83.23710937499993,75.75083007812503],[-82.153662109375,75.83105468750003],[-80.32197265624998,75.62910156250001],[-79.50908203125002,75.25981445312499],[-80.38198242187494,75.03417968750003],[-79.40141601562502,74.91762695312502],[-79.944482421875,74.83364257812505],[-80.34775390624998,74.90297851562505],[-80.26274414062499,74.58447265625],[-81.94018554687494,74.47270507812505],[-82.73579101562495,74.53027343749997],[-83.5220703125,74.90146484375],[-83.53188476562494,74.58569335937497],[-84.42553710937503,74.50810546875007],[-85.06142578125,74.60693359375003],[-85.133447265625,74.517431640625],[-85.44233398437495,74.6005859375],[-85.80800781249994,74.49897460937498],[-88.42304687499995,74.49414062499997],[-88.53496093749993,74.83173828125001],[-89.55869140624995,74.55473632812507],[-90.55327148437499,74.61274414062498],[-90.88022460937498,74.8177734375],[-91.13457031250002,74.64985351562498],[-91.54912109375002,74.65556640624999],[-92.3892578125,75.263330078125],[-92.18510742187499,75.84653320312498],[-93.09174804687495,76.35400390624997],[-95.27387695312498,76.26440429687503],[-96.03969726562494,76.48671875000002],[-95.65097656249998,76.58466796874998],[-96.88071289062495,76.73833007812505],[-96.40156249999995,76.79721679687503],[-96.75830078124997,76.97177734374998],[-95.84951171875002,77.06621093750005],[-94.29497070312493,76.91245117187498]]],[[[-115.55126953125001,77.36328125],[-116.32919921874996,77.137060546875],[-115.81005859374999,76.939111328125],[-116.25273437500002,76.90141601562505],[-115.94628906250003,76.71127929687503],[-116.99921874999995,76.531591796875],[-117.23359375000001,76.28154296875005],[-117.99296874999999,76.40581054687505],[-117.88081054687497,76.80507812500005],[-118.79140624999994,76.51298828125005],[-119.080712890625,76.12407226562505],[-119.58037109375,76.32651367187498],[-119.52612304687496,75.99721679687505],[-119.91289062499997,75.85883789062501],[-120.40888671874995,75.82563476562498],[-120.84838867187496,76.18266601562499],[-121.21347656249999,75.98369140625005],[-122.53305664062498,75.95092773437503],[-122.59272460937497,76.16206054687495],[-122.90278320312498,76.13471679687498],[-122.51938476562503,76.353173828125],[-121.56113281250003,76.453466796875],[-119.09018554687496,77.30507812500002],[-116.84355468749995,77.33955078124995],[-117.03974609374995,77.46513671875005],[-116.51132812500003,77.54760742187497],[-115.55126953125001,77.36328125]]],[[[-89.83325195312503,77.26762695312505],[-90.22827148437503,77.21245117187499],[-90.99321289062499,77.32949218750002],[-91.01904296875003,77.64389648437503],[-89.83896484375003,77.49140624999998],[-89.83325195312503,77.26762695312505]]],[[[-104.55815429687497,77.14174804687497],[-105.21508789062496,77.18208007812501],[-106.03559570312495,77.73984375000006],[-105.58789062499997,77.73598632812497],[-104.54223632812501,77.33774414062503],[-104.55815429687497,77.14174804687497]]],[[[-95.484375,77.79199218750003],[-93.30097656249995,77.73979492187505],[-93.54394531249997,77.466650390625],[-95.98706054687497,77.484130859375],[-96.19458007812497,77.70053710937503],[-95.484375,77.79199218750003]]],[[[-101.6935546875,77.69658203125005],[-102.37783203124995,77.728125],[-102.44770507812498,77.88061523437506],[-101.19321289062493,77.82978515624998],[-101.00205078124998,77.73510742187497],[-101.6935546875,77.69658203125005]]],[[[-113.83247070312497,77.75463867187506],[-114.28720703124998,77.72148437500005],[-114.98041992187498,77.91542968750002],[-114.33037109374997,78.07753906250002],[-113.83247070312497,77.75463867187506]]],[[[-110.45805664062496,78.10322265625001],[-109.62226562499995,78.07475585937499],[-110.865625,77.834130859375],[-110.15273437500002,77.76293945312506],[-110.19848632812501,77.52451171874998],[-112.37265625000002,77.36411132812498],[-113.16435546875002,77.5302734375],[-113.21518554687498,77.90351562500001],[-110.45805664062496,78.10322265625001]]],[[[-109.81596679687499,78.65039062500003],[-109.48447265624995,78.31640625],[-111.16918945312499,78.38627929687505],[-111.51748046874997,78.27470703125005],[-112.13125,78.366064453125],[-113.22304687499998,78.29790039062505],[-112.85585937499997,78.46684570312502],[-110.877587890625,78.73505859375004],[-109.81596679687499,78.65039062500003]]],[[[-96.20449218749994,78.53129882812499],[-94.91538085937495,78.39052734375002],[-95.32924804687497,78.22504882812495],[-94.93427734374998,78.07563476562498],[-96.98964843749994,77.80600585937503],[-97.65815429687498,78.090625],[-96.944677734375,78.15185546874997],[-98.04951171874995,78.325927734375],[-98.33261718749998,78.77353515625006],[-97.38232421875,78.78291015625001],[-96.20449218749994,78.53129882812499]]],[[[-103.42602539062499,79.315625],[-102.57617187499996,78.87939453125003],[-101.70366210937502,79.07890625000002],[-101.128125,78.80166015625002],[-100.43549804687503,78.8203125],[-99.60942382812495,78.58305664062507],[-99.16640625000002,77.85693359375003],[-100.27465820312503,77.83271484374995],[-101.07412109375001,78.19384765625],[-102.60698242187502,78.24892578125002],[-102.73134765624995,78.37104492187495],[-103.94658203124999,78.26000976562497],[-104.76357421874998,78.35166015625],[-104.90961914062498,78.55263671875],[-103.57050781250003,78.53984375000005],[-104.02084960937502,78.63491210937497],[-103.37158203125,78.73632812500003],[-104.18500976562498,78.78129882812505],[-104.15195312499999,78.989892578125],[-104.89550781249996,78.80815429687502],[-104.74677734375003,79.02709960937503],[-105.53564453124999,79.03251953125007],[-105.51455078124995,79.24248046875002],[-105.38769531249994,79.32358398437503],[-103.42602539062499,79.315625]]],[[[-98.79160156249995,79.98110351562505],[-98.94521484375,79.72407226562498],[-100.05683593749997,79.89824218750005],[-100.05327148437496,80.093359375],[-99.15322265625001,80.12421874999998],[-98.79160156249995,79.98110351562505]]],[[[-91.88554687499999,81.13286132812505],[-90.64301757812498,80.59370117187498],[-89.23559570312494,80.51064453125002],[-88.85732421874997,80.16621093750001],[-88.19990234374998,80.11147460937497],[-88.5248046875,80.41801757812507],[-87.675,80.37211914062505],[-87.92231445312501,80.09770507812499],[-86.97719726562502,79.89423828125001],[-87.29516601562494,79.58017578124998],[-86.33696289062496,79.63496093749995],[-86.00703124999998,79.47944335937498],[-85.6478515625,79.61142578125006],[-85.04213867187497,79.2845703125],[-86.95717773437502,78.97490234375005],[-87.61738281249995,78.67631835937505],[-88.04018554687494,78.99531250000004],[-87.98286132812498,78.53706054687501],[-88.74160156250002,78.58403320312499],[-88.82241210937497,78.18588867187498],[-90.037109375,78.60683593750002],[-89.52568359374999,78.15961914062495],[-90.29721679687495,78.32802734374997],[-90.614404296875,78.14985351562501],[-92.35126953125001,78.312890625],[-92.8482421875,78.46010742187497],[-91.86689453124998,78.54267578125001],[-93.26660156249997,78.60830078124997],[-93.63442382812502,78.75092773437498],[-93.15986328124998,78.77563476562503],[-94.11459960937498,78.92890625000001],[-92.54721679687495,79.28261718750002],[-91.29990234375003,79.372705078125],[-92.82192382812497,79.44990234375001],[-93.93315429687496,79.29072265624998],[-94.11030273437498,79.40156250000001],[-95.10317382812502,79.289892578125],[-95.66289062500002,79.52734374999997],[-94.40185546874997,79.736328125],[-95.73935546874995,79.66015625000003],[-96.58906249999995,79.91665039062497],[-96.77324218749999,80.13579101562502],[-94.64589843749994,80.04873046874997],[-94.26259765625002,80.19487304687499],[-95.40507812499996,80.13500976562506],[-96.39409179687493,80.31503906250003],[-95.549072265625,80.36660156249997],[-95.92695312499998,80.72065429687498],[-93.92792968749995,80.55917968750003],[-95.51474609375003,80.83813476562503],[-94.98051757812499,81.04965820312503],[-93.28671874999998,81.10029296874998],[-94.22011718749997,81.33076171875004],[-93.03466796874997,81.3462890625],[-91.88554687499999,81.13286132812505]]],[[[-69.4888671875,83.01679687499998],[-66.42255859374998,82.92685546875003],[-68.46933593749995,82.65336914062502],[-65.29902343749995,82.79960937500005],[-64.98388671874997,82.90229492187501],[-64.50400390625,82.77841796874998],[-63.641015624999966,82.81259765625003],[-63.246777343749926,82.4501953125],[-62.47519531249995,82.51958007812502],[-61.392480468749994,82.44189453125],[-61.61538085937502,82.18442382812503],[-64.43579101562497,81.74262695312501],[-66.62573242187497,81.61640624999995],[-68.68852539062493,81.29331054687503],[-64.78007812499993,81.49287109375001],[-69.55068359375,80.38325195312498],[-70.71259765625001,80.53959960937505],[-70.264892578125,80.23359374999998],[-72.05595703124996,80.12324218749995],[-70.56840820312493,80.09370117187498],[-71.387841796875,79.76176757812505],[-72.43652343750003,79.69438476562499],[-74.39448242187495,79.87407226562499],[-73.47246093749996,79.7564453125],[-73.36152343750001,79.50400390625],[-75.50341796875,79.41416015625],[-76.898828125,79.5123046875],[-75.60273437499998,79.23955078125005],[-74.48120117187503,79.22949218750006],[-74.64091796874996,79.03554687499997],[-78.58164062499998,79.075],[-77.88276367187498,78.9423828125],[-76.255859375,79.00683593749997],[-74.486328125,78.75009765624998],[-74.87861328124998,78.54482421875],[-76.41611328124995,78.51152343750005],[-75.19345703125,78.327734375],[-75.86596679687497,78.00981445312499],[-78.01259765624997,77.94604492187506],[-78.07617187500003,77.51904296875],[-78.70849609374997,77.34213867187503],[-80.57304687499996,77.31479492187506],[-81.65908203124997,77.52543945312499],[-81.3013671875,77.34404296875007],[-82.056787109375,77.29653320312497],[-81.75634765624997,77.20400390625005],[-79.49726562500001,77.19609375000005],[-78.97919921874998,76.89287109374999],[-78.28886718750002,76.97797851562501],[-77.98330078124994,76.75498046875006],[-78.284326171875,76.57124023437501],[-80.79970703124997,76.173583984375],[-80.97451171874994,76.470068359375],[-81.71738281250003,76.494970703125],[-82.52983398437499,76.723291015625],[-82.23315429687494,76.46582031250003],[-83.88569335937501,76.453125],[-84.22377929687497,76.67534179687499],[-84.27534179687498,76.35654296875006],[-85.141259765625,76.30458984375005],[-86.45371093750003,76.58486328125002],[-86.68022460937499,76.37661132812497],[-87.35419921874998,76.44804687500005],[-87.48979492187499,76.58583984374997],[-87.49755859374997,76.38627929687499],[-88.39599609374997,76.40527343750003],[-88.49584960937497,76.77285156249997],[-88.54580078125002,76.42089843750003],[-89.36962890624997,76.474462890625],[-89.49975585937503,76.82680664062502],[-88.39814453124995,77.10395507812501],[-86.81225585937497,77.18491210937498],[-87.68144531249996,77.43637695312503],[-88.01699218750002,77.78471679687505],[-86.75507812499998,77.86372070312498],[-85.58847656249998,77.46113281250004],[-84.73867187499997,77.36103515624998],[-83.72128906249998,77.41420898437497],[-82.7103515625,77.84951171875002],[-82.5953125,77.99213867187504],[-83.77939453125,77.53261718750002],[-85.28935546874996,77.55903320312498],[-85.54755859374998,77.92768554687495],[-84.61542968749998,78.19570312500002],[-84.22270507812499,78.176025390625],[-84.91035156249993,78.23969726562501],[-84.78320312499997,78.52758789062506],[-85.5859375,78.10957031249998],[-86.21777343750003,78.08120117187497],[-85.92006835937494,78.34287109374998],[-86.91323242187494,78.126806640625],[-87.5517578125,78.17661132812503],[-86.80791015624999,78.77436523437495],[-85.00375976562495,78.912255859375],[-83.27143554687501,78.77031250000002],[-81.75009765624995,78.97578124999995],[-82.43876953125002,78.903662109375],[-84.41201171875002,78.99658203125003],[-84.38359375000002,79.1185546875],[-83.57587890624995,79.05366210937501],[-86.42075195312498,79.84521484374997],[-86.49853515625003,80.25825195312501],[-83.72363281250003,80.22895507812501],[-81.68837890625,79.685791015625],[-80.47592773437498,79.60625],[-80.12446289062495,79.66948242187507],[-81.01015625000002,79.693115234375],[-82.98701171874995,80.32260742187498],[-76.86298828124995,80.86479492187505],[-78.71621093749994,80.95166015624997],[-76.88510742187503,81.43027343750006],[-81.00703125000001,80.6548828125],[-82.88432617187502,80.57753906249997],[-82.22236328124998,80.77231445312503],[-84.41782226562495,80.52675781250002],[-86.250341796875,80.56577148437506],[-86.60307617187499,80.66401367187498],[-85.63930664062494,80.92460937500007],[-83.288818359375,81.14794921875],[-85.780859375,81.03505859375],[-87.32988281250002,80.669775390625],[-88.00366210937497,80.675390625],[-89.16689453125,80.94130859375],[-86.47675781249993,81.03574218750006],[-84.94121093750002,81.28623046875],[-87.27509765624995,81.080810546875],[-89.623046875,81.032470703125],[-89.94731445312499,81.17265625000005],[-89.20869140624998,81.25009765625003],[-89.67368164062503,81.32861328125003],[-87.59702148437498,81.52583007812498],[-88.47905273437502,81.56464843749998],[-90.41630859374996,81.40537109375003],[-89.82167968749997,81.63486328124998],[-91.29238281250002,81.57124023437498],[-91.64755859374998,81.68383789062503],[-88.06318359375001,82.09648437500007],[-87.01821289062502,81.95874023437497],[-86.62680664062495,82.05102539062503],[-85.04482421874997,81.9828125],[-86.615625,82.21855468750007],[-84.89682617187503,82.44941406250001],[-82.63369140625002,82.07729492187497],[-82.53691406250002,82.24726562499995],[-79.465625,81.85112304687499],[-82.44755859374993,82.39501953125003],[-81.68115234375003,82.51865234375],[-82.11684570312497,82.62866210937503],[-80.8625,82.57153320312503],[-81.01015625000002,82.77905273437503],[-78.748779296875,82.67939453124998],[-80.15493164062497,82.91113281250003],[-77.61806640624997,82.89584960937503],[-76.009375,82.53515625],[-75.565625,82.60854492187502],[-77.12490234374994,83.00854492187497],[-74.41416015624995,83.01313476562501],[-72.65869140625,82.72163085937495],[-73.44189453124994,82.90483398437499],[-72.811669921875,83.08120117187502],[-71.98320312499996,83.10141601562498],[-70.94038085937495,82.90224609375],[-71.08481445312498,83.08266601562497],[-69.96992187499995,83.11611328125005],[-69.4888671875,83.01679687499998]]]]},"properties":{"name":"Canada","childNum":110}},{"geometry":{"type":"Polygon","coordinates":[[[9.527658197470123,47.27026989773668],[9.46249431093294,47.19858962254578],[9.46249431093294,47.09010747968864],[9.409458596647225,47.02019676540292],[9.579979133936737,47.05856388629306],[9.580273437500011,47.057373046875],[10.133496093750011,46.851513671875],[10.349414062500017,46.98476562499999],[10.414941406250023,46.964404296874996],[10.45458984375,46.8994140625],[10.452832031250011,46.86494140625],[10.406054687500017,46.73486328125],[10.39794921875,46.6650390625],[10.4306640625,46.550048828125],[10.195507812500011,46.62109375],[10.1375,46.61435546875],[10.087011718750006,46.599902343749996],[10.061230468750011,46.546777343749994],[10.038281250000011,46.483203125],[10.045605468750011,46.447900390624994],[10.081933593750023,46.420751953125],[10.109667968750017,46.362841796874996],[10.128320312500023,46.238232421875],[10.08056640625,46.227978515625],[10.041015625,46.238085937499996],[9.939257812500017,46.36181640625],[9.884472656250011,46.3677734375],[9.787792968750011,46.346044921875],[9.639453125000017,46.2958984375],[9.57958984375,46.29609375],[9.528710937500023,46.306201171874996],[9.427636718750023,46.482324218749994],[9.399316406250023,46.4806640625],[9.304394531250011,46.495556640625],[9.203417968750017,46.21923828125],[9.11874162946429,46.014892578125],[8.97551618303573,45.81677455357143],[8.74961495535715,46.02246372767857],[8.818554687500011,46.0771484375],[8.458398437500023,46.245898437499996],[8.370703125,46.445117187499996],[8.298535156250011,46.40341796875],[8.23193359375,46.341210937499994],[8.08154296875,46.256005859374994],[7.9931640625,46.015917968749996],[7.327929687500017,45.912353515625],[7.129003906250006,45.880419921874996],[7.055761718750006,45.90380859375],[7.02109375,45.92578125],[6.953710937500006,46.017138671874996],[6.897265625000017,46.0517578125],[6.772070312500006,46.16513671875],[6.758105468750017,46.415771484375],[6.578222656250006,46.437353515625],[6.428906250000011,46.430517578125],[6.321875,46.393701171874994],[6.234667968750017,46.3326171875],[6.199414062500011,46.19306640625],[6.086621093750011,46.147021484374996],[6.006640625000017,46.142333984375],[5.971484375000017,46.151220703125],[5.970019531250017,46.214697265625],[6.0361328125,46.238085937499996],[6.095898437500011,46.27939453125],[6.129687500000017,46.5669921875],[6.41015625,46.755419921874996],[6.429003906250017,46.832275390625],[6.45625,46.94833984375],[6.624804687500017,47.004345703125],[6.666894531250023,47.026513671874994],[6.688085937500006,47.058251953124994],[6.820703125000023,47.16318359375],[6.952050781250023,47.2671875],[6.978515625,47.302050781249996],[7.000585937500006,47.322509765625],[7.000585937500006,47.339453125],[6.900390625,47.39423828125],[6.968359375,47.45322265625],[7.136035156250017,47.48984375],[7.343164062500023,47.43310546875],[7.615625,47.592724609375],[8.454003906250023,47.59619140625],[8.559472656250023,47.6240234375],[8.570507812500011,47.63779296875],[8.567089843750011,47.651904296874996],[8.55234375,47.659130859375],[8.451757812500006,47.651806640625],[8.413281250000011,47.6626953125],[8.403417968750006,47.687792968749996],[8.435742187500011,47.731347656249994],[8.572656250000023,47.775634765625],[9.524023437500006,47.52421875],[9.625878906250023,47.467041015625],[9.527539062500011,47.270751953125],[9.527658197470123,47.27026989773668]]]},"properties":{"name":"Switzerland","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-67.28886718749999,-55.776855468749964],[-67.55996093749997,-55.72480468750002],[-67.39736328124997,-55.58515625],[-67.28886718749999,-55.776855468749964]]],[[[-67.07993164062498,-55.15380859374996],[-67.33969726562495,-55.292578124999984],[-67.4947265625,-55.177441406249976],[-68.07001953124995,-55.22109374999999],[-68.30136718750003,-54.98066406250003],[-67.245263671875,-54.977636718750034],[-67.07993164062498,-55.15380859374996]]],[[[-69.70297851562503,-54.91904296875],[-68.90078125000002,-55.01777343750004],[-68.45800781249997,-54.95966796875002],[-68.61328124999997,-55.155566406250045],[-68.28266601562495,-55.25517578125],[-68.04833984375,-55.6431640625],[-68.86704101562498,-55.45019531250003],[-68.89008789062498,-55.2412109375],[-69.19262695312497,-55.171875],[-69.35922851562498,-55.300683593749945],[-69.18085937499995,-55.47480468749998],[-69.41181640624995,-55.44423828124997],[-69.97978515625002,-55.14746093749999],[-69.88442382812494,-54.88203125000001],[-69.70297851562503,-54.91904296875]]],[[[-70.9916015625,-54.86796874999999],[-70.80483398437497,-54.96767578124996],[-70.41752929687493,-54.908886718749976],[-70.29785156249997,-55.11376953124997],[-70.47558593749994,-55.17705078124998],[-71.43720703125001,-54.88925781249997],[-70.9916015625,-54.86796874999999]]],[[[-71.390478515625,-54.03281250000002],[-71.02192382812495,-54.111816406250036],[-71.14326171874998,-54.374023437499986],[-71.473291015625,-54.23115234375001],[-71.94853515624999,-54.300878906250006],[-72.21044921874997,-54.04775390624995],[-71.996484375,-53.884863281249984],[-71.390478515625,-54.03281250000002]]],[[[-72.92324218749997,-53.481640625],[-72.88222656249997,-53.578320312499976],[-72.48227539062503,-53.58808593750001],[-72.20541992187503,-53.80742187500002],[-72.408544921875,-54.00380859374997],[-72.87099609375,-54.12656250000002],[-72.76376953125,-53.86484375],[-73.03945312499994,-53.83281250000004],[-73.08076171875001,-53.99804687499995],[-73.21064453125001,-53.98583984374995],[-73.31435546875,-53.72919921874998],[-73.845458984375,-53.54580078125001],[-73.44707031249993,-53.41005859374998],[-72.92324218749997,-53.481640625]]],[[[-74.38574218749994,-52.92236328125001],[-73.65400390624998,-53.06982421875003],[-73.13520507812498,-53.35390625],[-73.56728515625,-53.3068359375],[-73.86694335937494,-53.096875],[-74.27021484374995,-53.08154296875002],[-74.71201171874998,-52.74873046874998],[-74.38574218749994,-52.92236328125001]]],[[[-68.62993164062499,-52.65263671875004],[-68.65322265624994,-54.85361328124999],[-69.48627929687493,-54.85888671875],[-69.72343750000002,-54.71210937500003],[-70.49716796875,-54.80957031249999],[-71.83154296874997,-54.62617187500002],[-71.92773437500003,-54.52871093749997],[-71.80014648437498,-54.433984374999945],[-71.07993164062498,-54.444238281249994],[-70.79726562500002,-54.32724609374996],[-70.70112304687498,-54.48544921875004],[-70.31098632812498,-54.52851562500002],[-70.86308593749993,-54.11044921875003],[-70.86772460937499,-53.88417968750002],[-70.53129882812502,-53.627343750000016],[-70.37973632812495,-53.98671874999995],[-70.62983398437493,-54.005566406249976],[-70.53530273437494,-54.136132812500016],[-70.16899414062502,-54.37929687499999],[-69.74184570312494,-54.30585937500005],[-69.25317382812494,-54.557421875000045],[-69.04433593749997,-54.40673828124999],[-69.98813476562503,-54.10908203125001],[-70.15112304687503,-53.88808593750002],[-70.09111328124996,-53.72177734374998],[-69.35595703125003,-53.41630859375001],[-69.63701171874999,-53.33408203125004],[-70.32929687499998,-53.37763671875003],[-70.44335937499994,-53.085546875000034],[-70.130615234375,-52.942773437499994],[-70.38012695312494,-52.75195312500002],[-69.93544921874997,-52.82109374999998],[-69.41406249999997,-52.48623046874997],[-69.16704101562499,-52.66757812499997],[-68.78979492187497,-52.576757812500034],[-68.62993164062499,-52.65263671875004]]],[[[-74.82294921874993,-51.63017578125001],[-74.53681640624998,-51.96513671875004],[-74.69448242187497,-52.27919921874999],[-74.85180664062494,-52.27070312500003],[-75.10537109375,-51.78886718750001],[-74.82294921874993,-51.63017578125001]]],[[[-74.55864257812499,-51.27705078125001],[-74.62036132812497,-51.395703125000026],[-75.04736328125,-51.39833984375003],[-75.28911132812496,-51.625390625000016],[-75.15366210937498,-51.278808593750014],[-74.73666992187503,-51.20761718749999],[-74.55864257812499,-51.27705078125001]]],[[[-75.302001953125,-50.67998046875005],[-75.411376953125,-50.76435546875001],[-75.42763671875002,-50.48056640625002],[-75.11533203124998,-50.510449218749976],[-75.302001953125,-50.67998046875005]]],[[[-75.05478515625,-50.29609375],[-75.44912109374997,-50.34335937500004],[-75.32666015624997,-50.01181640625],[-74.8759765625,-50.10996093750001],[-75.05478515625,-50.29609375]]],[[[-75.106689453125,-48.83652343750001],[-75.38994140624999,-49.15917968750002],[-75.64116210937499,-49.195410156250034],[-75.48764648437498,-49.082421875000016],[-75.58310546874998,-48.85888671874995],[-75.106689453125,-48.83652343750001]]],[[[-74.47617187499998,-49.14785156250002],[-74.59472656249997,-50.00664062500001],[-74.76298828124996,-50.01142578125001],[-74.88041992187502,-49.72587890625001],[-74.72382812499998,-49.42382812500003],[-74.960107421875,-49.533007812499974],[-75.06601562499998,-49.85234375000002],[-75.54980468749994,-49.79130859375002],[-75.30585937499998,-49.49404296875003],[-75.46748046874995,-49.35888671875003],[-75.08603515624998,-49.27021484375],[-75.21015624999995,-49.14804687499998],[-74.94921875,-48.960156249999976],[-74.89624023437503,-48.73320312500002],[-74.54609374999993,-48.76689453125004],[-74.47617187499998,-49.14785156250002]]],[[[-75.51025390624997,-48.76347656250005],[-75.65092773437496,-48.58632812500002],[-75.57148437499993,-48.095898437500026],[-75.39140625000002,-48.01972656249997],[-75.15849609374999,-48.62265624999996],[-75.51025390624997,-48.76347656250005]]],[[[-74.56728515625,-48.591992187500026],[-74.92304687499998,-48.62646484375003],[-75.21289062499997,-48.141699218750034],[-75.19829101562502,-47.974609375000014],[-74.895654296875,-47.839355468749986],[-74.56728515625,-48.591992187500026]]],[[[-75.11220703124997,-47.8376953125],[-75.26103515625002,-47.76386718749998],[-74.92646484374998,-47.72314453125003],[-75.11220703124997,-47.8376953125]]],[[[-74.31289062500002,-45.69150390625002],[-74.46552734374995,-45.757226562499994],[-74.68984375,-45.66259765625],[-74.310546875,-45.17265625000002],[-74.31289062500002,-45.69150390625002]]],[[[-73.63217773437498,-44.82148437499997],[-73.81845703125,-44.65214843750002],[-73.72392578124993,-44.544238281249974],[-73.63217773437498,-44.82148437499997]]],[[[-72.98613281249999,-44.780078124999974],[-73.22846679687498,-44.85996093749999],[-73.39707031249998,-44.77431640624995],[-73.44506835937497,-44.641015624999966],[-73.20771484374993,-44.33496093749997],[-72.7763671875,-44.50859374999999],[-72.98613281249999,-44.780078124999974]]],[[[-73.73535156249997,-44.39453125000003],[-74.00205078125003,-44.59091796874998],[-73.728173828125,-45.195898437500034],[-74.016259765625,-45.344921875000026],[-74.61777343749998,-44.64794921874996],[-74.50180664062498,-44.47353515624995],[-74.09721679687496,-44.38935546875004],[-73.99492187499999,-44.140234375],[-73.70322265624998,-44.27412109375001],[-73.73535156249997,-44.39453125000003]]],[[[-73.81064453125003,-43.827246093750006],[-73.95566406249998,-43.921972656250034],[-74.14296874999997,-43.872167968750006],[-73.81064453125003,-43.827246093750006]]],[[[-73.77338867187498,-43.3458984375],[-74.114404296875,-43.35791015624996],[-74.387353515625,-43.231640625],[-74.03666992187496,-41.79550781249998],[-73.52783203124997,-41.89628906249999],[-73.42290039062499,-42.192871093750014],[-73.47080078124998,-42.46630859375004],[-73.78925781249993,-42.58574218750003],[-73.43632812499996,-42.9365234375],[-73.74965820312494,-43.15908203124995],[-73.77338867187498,-43.3458984375]]],[[[-78.80415039062501,-33.646484374999986],[-78.98945312499993,-33.66171874999998],[-78.87744140625003,-33.57519531250003],[-78.80415039062501,-33.646484374999986]]],[[[-109.27998046874994,-27.14042968749996],[-109.434130859375,-27.171289062500023],[-109.39047851562499,-27.068359375000014],[-109.27998046874994,-27.14042968749996]]],[[[-67.19487304687493,-22.821679687500037],[-67.00878906249994,-23.00136718750005],[-67.35620117187503,-24.033789062499963],[-68.25029296875002,-24.391992187500023],[-68.56201171875,-24.74736328125003],[-68.38422851562495,-25.091894531249977],[-68.59208984375002,-25.420019531250034],[-68.41450195312498,-26.153710937500023],[-68.59160156249999,-26.47041015624997],[-68.31865234374999,-26.973242187500006],[-68.59208984375002,-27.140039062499966],[-68.84633789062494,-27.153710937499994],[-69.17441406249998,-27.924707031250037],[-69.65693359374995,-28.413574218749986],[-69.82788085937497,-29.10322265624997],[-70.02680664062501,-29.324023437500017],[-69.95996093749997,-30.078320312500026],[-69.84428710937493,-30.175],[-69.95634765624996,-30.35820312500003],[-70.15322265625,-30.360937499999963],[-70.30908203124994,-31.02265625000004],[-70.51958007812493,-31.1484375],[-70.585205078125,-31.569433593749963],[-70.25439453125,-31.957714843750026],[-70.36376953125,-32.08349609374997],[-70.02197265625,-32.88457031250002],[-70.08486328125002,-33.20175781249998],[-69.81962890624999,-33.28378906249999],[-69.85244140625,-34.224316406250026],[-70.05205078124999,-34.30078124999997],[-70.39316406250003,-35.146875],[-70.55517578125,-35.246875],[-70.41572265625001,-35.52304687500002],[-70.40478515625,-36.06171874999998],[-71.05551757812498,-36.52373046874996],[-71.19218750000002,-36.84365234375004],[-71.16757812499998,-37.76230468749996],[-70.858642578125,-38.60449218750003],[-71.40156249999995,-38.93505859374996],[-71.53945312499997,-39.60244140624995],[-71.71992187499995,-39.63525390624997],[-71.65976562499998,-40.02080078125],[-71.81831054687493,-40.17666015624995],[-71.70898437499997,-40.381738281249994],[-71.93212890624994,-40.69169921874999],[-71.91127929687497,-41.650390624999986],[-71.75,-42.04677734375001],[-72.10820312499993,-42.25185546874995],[-72.14643554687498,-42.990039062499974],[-71.750634765625,-43.237304687499986],[-71.90498046875001,-43.34755859374998],[-71.68007812500002,-43.92958984374998],[-71.82001953124993,-44.38310546875],[-71.21259765624998,-44.44121093750003],[-71.15971679687496,-44.56025390625004],[-71.26113281250002,-44.763085937499966],[-72.06372070312503,-44.771875],[-72.04169921874998,-44.90419921875004],[-71.5962890625,-44.97919921875004],[-71.34931640624995,-45.33193359374995],[-71.74619140624998,-45.57890625],[-71.63154296874998,-45.95371093749998],[-71.87568359374998,-46.160546875],[-71.69965820312501,-46.6513671875],[-71.94023437499999,-46.83125],[-71.90498046875001,-47.201660156250014],[-72.34594726562497,-47.49267578124997],[-72.517919921875,-47.87636718749998],[-72.32832031250001,-48.11005859374998],[-72.35473632812497,-48.36582031250005],[-72.582861328125,-48.47539062499999],[-72.65126953125,-48.84160156249998],[-73.03364257812501,-49.014355468750004],[-73.13525390625,-49.30068359374999],[-73.46157226562497,-49.31386718750001],[-73.55419921875,-49.463867187500014],[-73.50126953124996,-50.125292968750024],[-73.15292968749998,-50.73828125000003],[-72.50981445312496,-50.607519531250034],[-72.34023437499997,-50.68183593749999],[-72.40766601562501,-51.54082031250002],[-71.91865234374995,-51.98955078125004],[-69.96025390624993,-52.00820312500002],[-68.443359375,-52.35664062500004],[-69.24101562499996,-52.20546874999997],[-69.62031249999995,-52.46474609374995],[-70.79511718749995,-52.76875],[-70.99584960937497,-53.77929687499997],[-71.29775390625002,-53.88339843750004],[-72.1744140625,-53.632324218749964],[-72.41289062500002,-53.35019531250004],[-71.94169921874993,-53.23408203125001],[-71.89169921874998,-53.523535156250006],[-71.79145507812498,-53.48457031249997],[-71.74052734374999,-53.232617187499976],[-71.28896484375002,-53.03369140624995],[-71.22714843750003,-52.810644531249984],[-71.38774414062496,-52.76425781250004],[-72.27802734374998,-53.13232421874997],[-72.54892578125,-53.4607421875],[-73.05273437499997,-53.24345703125005],[-72.72768554687502,-52.7623046875],[-72.453466796875,-52.814453124999964],[-72.11757812499997,-52.65],[-71.51127929687502,-52.60537109375],[-72.22568359374998,-52.52099609374995],[-72.43769531250001,-52.62578124999998],[-72.71210937499995,-52.53554687499999],[-73.12246093749997,-53.073925781249976],[-73.64521484374998,-52.83701171875003],[-73.2408203125,-52.707128906250034],[-73.12392578125,-52.487988281249976],[-73.24414062499997,-52.62402343749998],[-73.58569335937503,-52.68574218750003],[-74.01445312499999,-52.63935546875],[-74.26494140624993,-52.1048828125],[-73.83447265625,-52.23398437500001],[-73.68432617187494,-52.07773437499998],[-73.26044921874993,-52.157812500000034],[-72.79501953124998,-51.94951171875005],[-72.57084960937496,-52.200097656249945],[-72.67705078125002,-52.38466796874998],[-72.52333984374997,-52.255468750000034],[-72.62460937499998,-51.94648437499997],[-72.48964843750002,-51.76367187500003],[-72.76123046875,-51.57324218749996],[-73.16875,-51.45390624999998],[-72.60004882812495,-51.79912109374997],[-73.51816406250003,-52.04101562499996],[-73.75263671874993,-51.795507812500034],[-74.19667968749997,-51.68056640624997],[-73.92978515624995,-51.61787109374999],[-73.93950195312499,-51.26630859375005],[-74.81474609374996,-51.06289062499999],[-75.09467773437495,-50.68125],[-74.68574218749995,-50.662011718749945],[-74.77587890625003,-50.46992187499998],[-74.64448242187498,-50.360937499999984],[-74.365576171875,-50.487890625],[-74.13940429687503,-50.81777343749997],[-73.80654296875,-50.93837890625003],[-73.654443359375,-50.49267578125],[-73.97802734375003,-50.827050781249994],[-74.18559570312493,-50.485351562500014],[-73.95034179687497,-50.510546875],[-74.62958984374998,-50.19404296875],[-74.333740234375,-49.97460937499997],[-73.95859374999998,-49.994726562499984],[-74.32392578124995,-49.783398437500004],[-74.29082031249996,-49.604101562499984],[-73.83637695312493,-49.609375],[-74.09443359374993,-49.42968749999998],[-73.93496093749994,-49.02089843750001],[-74.2212890625,-49.500585937500034],[-74.36655273437503,-49.40048828124998],[-74.34101562499998,-48.59570312499998],[-74.00908203124996,-48.475],[-74.47441406249999,-48.46396484374996],[-74.58466796874998,-47.999023437500014],[-73.39106445312498,-48.14589843750001],[-73.60991210937499,-47.993945312500045],[-73.71586914062499,-47.65546875000001],[-73.94086914062498,-47.92939453125004],[-74.22705078124994,-47.96894531250001],[-74.654931640625,-47.702246093750034],[-74.5337890625,-47.567675781249974],[-74.24296874999999,-47.67929687499998],[-74.13408203125002,-47.590820312499986],[-74.48266601562497,-47.43046875],[-74.15839843749998,-47.18251953125002],[-74.31357421874998,-46.78818359374998],[-74.45419921875003,-46.76679687499997],[-74.51225585937496,-46.88515625000002],[-75.00595703125,-46.74111328124998],[-74.98417968750002,-46.51210937499995],[-75.54033203124999,-46.69873046874996],[-75.43037109374995,-46.93457031249996],[-75.70639648437498,-46.70527343749997],[-74.924462890625,-46.159667968750014],[-75.06669921874993,-45.874902343749994],[-74.15786132812497,-45.7671875],[-74.122705078125,-45.49619140625002],[-73.95717773437494,-45.40439453124998],[-73.825,-45.446875],[-74.01992187500002,-46.055859375],[-74.39296875,-46.21738281250005],[-73.96757812500002,-46.15410156250003],[-73.87871093749993,-45.846875],[-73.73525390624994,-45.81171875],[-73.70815429687502,-46.070312500000014],[-73.94863281249997,-46.533105468749966],[-73.845361328125,-46.56601562500002],[-73.59184570312493,-45.89912109375004],[-73.73076171874999,-45.47998046875],[-73.26621093749995,-45.346191406250014],[-72.933837890625,-45.45234374999997],[-73.44497070312497,-45.23818359374995],[-73.36245117187502,-44.97822265625001],[-72.73896484375001,-44.73417968750003],[-72.680078125,-44.59394531249997],[-72.66386718749999,-44.43642578124995],[-73.26508789062498,-44.16865234375001],[-73.22446289062498,-43.89794921875003],[-73.06879882812495,-43.86201171874998],[-72.99658203125,-43.63154296875001],[-73.07597656250002,-43.323632812499994],[-72.75800781249998,-43.039453125],[-72.84804687500002,-42.66914062499997],[-72.77392578125003,-42.505175781250045],[-72.63183593750003,-42.509667968749994],[-72.77324218749996,-42.257714843749994],[-72.63105468749995,-42.199804687500006],[-72.412353515625,-42.388183593750014],[-72.49941406249997,-41.98085937499999],[-72.82407226562503,-41.90878906249996],[-72.36040039062499,-41.64912109375],[-72.31826171875,-41.49902343749997],[-72.54238281250002,-41.690625],[-72.95283203124995,-41.51474609374998],[-73.24179687499995,-41.78085937500002],[-73.62402343750003,-41.77363281249997],[-73.73515625000002,-41.74248046875002],[-73.62392578125,-41.581347656250045],[-73.81074218749995,-41.51748046875001],[-73.96586914062493,-41.118261718750034],[-73.67099609375,-39.96318359374999],[-73.41040039062503,-39.78916015624998],[-73.22646484375002,-39.22441406250003],[-73.52021484375001,-38.509375],[-73.46479492187498,-38.04033203125003],[-73.66181640624998,-37.69853515625003],[-73.66240234375002,-37.341015625000026],[-73.60166015624998,-37.18847656250003],[-73.21596679687502,-37.16689453124998],[-73.11806640624997,-36.68837890625002],[-72.58735351562493,-35.759667968749994],[-72.62392578125002,-35.5857421875],[-72.22377929687494,-35.096191406250014],[-72.00283203124997,-34.16533203125],[-71.66435546875002,-33.65263671875],[-71.74296875,-33.09511718750001],[-71.45224609374998,-32.65957031250001],[-71.70893554687495,-30.62802734375002],[-71.66948242187499,-30.33037109374996],[-71.40039062499997,-30.142968749999966],[-71.31572265624996,-29.649707031250017],[-71.51923828124993,-28.926464843750026],[-71.30673828124998,-28.672460937499963],[-71.08652343749998,-27.814453124999957],[-70.92578125,-27.588671874999974],[-70.64658203124998,-26.329394531250017],[-70.71372070312498,-25.78417968749997],[-70.44536132812502,-25.17265624999999],[-70.57412109374994,-24.644335937500003],[-70.39233398437494,-23.565917968749957],[-70.59335937499995,-23.255468750000034],[-70.56318359374995,-23.057031250000023],[-70.33168945312494,-22.848632812500014],[-70.08002929687501,-21.356835937500037],[-70.19702148437494,-20.725390625],[-70.15742187499995,-19.70585937500003],[-70.41826171874999,-18.345605468750023],[-69.92636718749998,-18.206054687500014],[-69.80258789062498,-17.990234375000014],[-69.85209960937493,-17.70380859375001],[-69.68476562499995,-17.649804687500023],[-69.58642578125,-17.57324218749997],[-69.51093749999998,-17.50605468749997],[-69.31337890624997,-17.943164062500017],[-69.28232421875003,-17.96484375],[-69.09394531249993,-18.05048828125004],[-69.14545898437495,-18.14404296875],[-69.09228515624994,-18.28242187500004],[-69.02680664062493,-18.65625],[-68.97885742187503,-18.81298828125003],[-68.96831054687502,-18.967968749999983],[-68.85795898437499,-19.09335937500005],[-68.62055664062495,-19.29667968749999],[-68.54785156249997,-19.341113281249974],[-68.49199218749996,-19.381933593750034],[-68.47016601562495,-19.409960937499974],[-68.46289062499997,-19.43281250000001],[-68.57529296874998,-19.56015625000002],[-68.69829101562499,-19.721093750000037],[-68.69619140625,-19.74072265625003],[-68.57827148437494,-19.856542968750006],[-68.559375,-19.902343750000014],[-68.56069335937502,-19.96708984374996],[-68.75932617187499,-20.115527343750003],[-68.74516601562493,-20.45859375],[-68.48432617187498,-20.628417968749957],[-68.55825195312497,-20.90195312499999],[-68.197021484375,-21.30029296874997],[-68.18642578124997,-21.618554687499966],[-67.88173828124997,-22.493359375000026],[-67.87944335937496,-22.822949218750026],[-67.57993164062495,-22.89169921874999],[-67.36225585937493,-22.85517578125001],[-67.19487304687493,-22.821679687500037]]]]},"properties":{"name":"Chile","childNum":26}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[110.88876953125006,19.99194335937497],[111.01367187500003,19.65546875000001],[110.64091796875002,19.291210937499955],[110.45126953125012,18.747949218750023],[110.06738281249997,18.447558593750045],[109.51933593750007,18.21826171875003],[108.7015625,18.535253906250034],[108.66552734375003,19.304101562499994],[109.27666015625002,19.761132812500023],[109.17744140625004,19.768457031250023],[109.26347656250007,19.882666015625006],[110.1715820312501,20.053710937500057],[110.58818359375002,19.976367187500017],[110.6517578125,20.137744140625017],[110.88876953125006,19.99194335937497]]],[[[110.38515625000005,21.093164062499966],[110.52158203125006,21.083105468750063],[110.50390625000003,20.96772460937501],[110.28095703125004,21.001171874999983],[110.38515625000005,21.093164062499966]]],[[[112.64375,21.63964843750003],[112.525,21.62304687500003],[112.64765625000004,21.710253906250017],[112.64375,21.63964843750003]]],[[[112.79023437500004,21.601855468750045],[112.78203125000007,21.772265625000045],[112.86259765625002,21.75263671875004],[112.79023437500004,21.601855468750045]]],[[[118.1830078125,24.496289062499983],[118.0905273437501,24.446142578125063],[118.10380859375002,24.552343750000034],[118.1830078125,24.496289062499983]]],[[[119.82089843750006,25.45698242187504],[119.70029296875012,25.432714843750063],[119.72255859375005,25.638818359375023],[119.83837890625003,25.591064453125],[119.82089843750006,25.45698242187504]]],[[[121.2513671875,28.086425781250057],[121.13154296875004,28.062597656250006],[121.20546875,28.204394531250017],[121.2513671875,28.086425781250057]]],[[[122.29589843750003,29.96342773437499],[122.02402343750012,30.01333007812505],[121.96943359375004,30.143115234375017],[122.28447265625007,30.068017578124994],[122.29589843750003,29.96342773437499]]],[[[121.86269531250005,31.492285156249977],[121.519921875,31.549609375000017],[121.2111328125001,31.80537109375001],[121.86269531250005,31.492285156249977]]],[[[130.52695312500012,42.535400390625],[130.24667968750012,42.744824218749955],[130.24033203125006,42.891796874999955],[129.89824218750002,42.998144531250034],[129.69785156250012,42.448144531249994],[129.3136718750001,42.41357421874997],[128.92343750000006,42.038232421874966],[128.04521484375007,41.9875],[128.28925781250004,41.60742187500006],[128.14941406249997,41.38774414062496],[127.17968750000003,41.531347656250006],[126.95478515625004,41.76948242187501],[126.74306640625,41.724853515625],[125.98906250000002,40.904638671875034],[124.8893554687501,40.459814453125006],[124.36210937500002,40.004052734374994],[124.10576171875002,39.84101562499998],[123.65087890625003,39.881591796875],[122.8400390625001,39.600830078125],[121.98232421875,39.05317382812498],[121.67724609374997,39.00341796875006],[121.64990234375003,38.865087890625034],[121.16357421874997,38.73164062500001],[121.10673828125002,38.920800781249994],[121.6798828125001,39.10869140625002],[121.62763671875004,39.22016601562498],[121.81845703125006,39.38652343750002],[121.27548828125006,39.38476562500003],[121.26748046875,39.544677734375],[121.51757812499997,39.638964843750045],[121.51738281250002,39.84482421875006],[121.8009765625001,39.950537109375006],[122.27500000000012,40.541845703125034],[121.83486328125005,40.97426757812502],[121.72929687500002,40.84614257812504],[121.1745117187501,40.901269531249994],[120.47910156250006,40.23095703125003],[119.39111328125003,39.75249023437499],[118.976953125,39.182568359374955],[118.29785156249997,39.067089843749955],[118.04091796875,39.22675781249998],[117.86572265625003,39.191259765625034],[117.61669921875003,38.852880859375034],[117.5578125000001,38.625146484374994],[117.76669921875012,38.311669921874994],[118.01494140625007,38.18339843749996],[118.94003906250006,38.04277343750002],[119.08916015625007,37.70073242187496],[118.95263671875003,37.33115234374998],[119.28740234375002,37.138281250000034],[119.76054687500007,37.15507812499999],[120.31152343750003,37.62270507812505],[120.2572265625,37.67900390624996],[120.75,37.83393554687501],[121.64023437500012,37.46035156250002],[122.05664062500003,37.528906250000034],[122.66699218750003,37.40283203125003],[122.4466796875,37.06811523437503],[122.51972656250004,36.94682617187502],[122.34091796875012,36.83222656250004],[121.93271484375006,36.95947265625003],[121.05380859375006,36.61137695312499],[120.81083984375007,36.6328125],[120.89580078125007,36.44414062500002],[120.71152343750006,36.41328125000004],[120.6378906250001,36.129931640625045],[120.39306640625003,36.053857421874994],[120.32773437500006,36.228173828124994],[120.18330078125004,36.20244140624999],[120.094140625,36.11889648437503],[120.28476562500006,35.98442382812499],[119.42968749999997,35.301416015624994],[119.16533203125002,34.84882812499998],[119.20097656250002,34.748437499999966],[120.26669921875006,34.274023437500034],[120.87109374999997,33.016503906249994],[120.8532226562501,32.66137695312503],[121.34169921875005,32.42504882812503],[121.40390625000006,32.20625],[121.85634765625,31.816455078125045],[121.86630859375006,31.703564453124955],[121.68085937500004,31.71215820312503],[121.351953125,31.85878906250005],[120.97353515625,31.86938476562497],[120.52011718750006,32.10585937500002],[120.03593750000002,31.93627929687503],[120.7155273437501,31.983740234375006],[120.7877929687501,31.81977539062501],[121.66064453124997,31.319726562499994],[121.87792968750003,30.91699218750003],[121.41894531249997,30.789794921875057],[120.8214843750001,30.354638671875023],[120.44980468750006,30.38784179687505],[120.19462890625002,30.241308593750034],[120.49453125,30.303076171875006],[120.63339843750006,30.133154296875034],[121.25800781250004,30.30410156250005],[121.67792968750004,29.979101562500006],[122.08291015625005,29.870361328125057],[121.50625,29.484570312499955],[121.94121093750002,29.605908203124983],[121.91777343750007,29.13500976562497],[121.71748046875004,29.25634765625],[121.48710937500007,29.193164062500017],[121.67968749999997,28.953125],[121.54003906250003,28.931884765625],[121.6625,28.851416015625034],[121.47519531250006,28.64140625],[121.60996093750006,28.29213867187505],[121.27226562500002,28.222119140624983],[121.14570312500004,28.32666015624997],[120.95859375000006,28.037011718750023],[120.74765625000006,28.00996093750001],[120.83300781249997,27.891455078125034],[120.58750000000012,27.580761718749983],[120.60751953125012,27.41240234374996],[120.2787109375,27.097070312500023],[120.08671875000007,26.67158203125004],[119.88222656250005,26.610449218750006],[119.82421874999997,26.84638671875001],[119.71044921874997,26.728662109375023],[119.58818359375002,26.784960937500045],[119.8810546875001,26.33417968750004],[119.46308593750004,26.05468750000003],[119.13945312500007,26.12177734375001],[119.33203124999997,25.94873046875003],[119.61875000000012,26.003564453124994],[119.53945312500005,25.59125976562504],[119.6224609375,25.391162109375017],[119.180078125,25.449804687499977],[119.285546875,25.232226562500074],[118.97753906249997,25.209277343750017],[118.90908203125005,24.92890625000001],[118.63691406250004,24.835546874999977],[118.65703125000002,24.621435546874977],[118.0871093750001,24.627001953125045],[118.00595703125006,24.48198242187499],[117.84267578125005,24.47431640625004],[118.0560546875,24.24609374999997],[117.62822265625002,23.836718750000074],[117.46640625000012,23.84057617187497],[117.36767578124997,23.58862304687497],[117.29082031250007,23.71435546875],[117.08251953124997,23.578759765625023],[116.91064453124997,23.646679687499983],[116.86093750000006,23.453076171874983],[116.62939453124997,23.353857421875034],[116.69882812500006,23.277783203124983],[116.53828125000004,23.17968749999997],[116.47070312499997,22.945898437500034],[116.25185546875005,22.981347656249994],[115.85214843750006,22.801562500000045],[115.64042968750002,22.853417968750023],[115.49833984375002,22.718847656250063],[115.19580078125003,22.81728515625005],[114.85380859375007,22.616796875000063],[114.65166015625002,22.755273437500023],[114.55419921874997,22.52890625],[114.26601562500005,22.540966796874983],[114.01542968750007,22.51191406250001],[113.61962890624997,22.861425781249977],[113.6205078125,23.12749023437499],[113.51972656250004,23.102099609375074],[113.33105468749997,22.912011718749966],[113.55302734375002,22.594042968750045],[113.54912109375002,22.225195312500034],[113.14902343750012,22.075],[113.08876953125,22.207958984374983],[112.95390625000007,21.907324218750034],[112.80859374999997,21.944628906250074],[112.58632812500005,21.77685546875],[112.35966796875007,21.97802734375003],[112.30498046875002,21.74169921875003],[111.94394531250012,21.84965820312499],[111.60273437500004,21.55908203125003],[111.01689453125007,21.51171874999997],[110.56718750000002,21.21406250000001],[110.41093750000007,21.33813476562497],[110.15400390625004,20.944628906250017],[110.36542968750004,20.837597656249955],[110.31308593750012,20.67167968749999],[110.51152343750007,20.51826171875001],[110.34472656249997,20.29482421875005],[109.88251953125004,20.364062500000045],[109.96835937500006,20.448144531250023],[109.66259765625003,20.91689453125005],[109.68125000000012,21.13164062499999],[109.93076171875012,21.480566406250034],[109.6869140625,21.52460937500004],[109.56640624999997,21.690576171874994],[109.54404296875012,21.537939453125006],[109.14863281250004,21.425537109375],[109.1017578125001,21.59047851562505],[108.77167968750004,21.63046875],[108.59375,21.901025390624994],[108.47988281250005,21.904638671875006],[108.50214843750004,21.633447265624994],[108.32480468750006,21.693505859374994],[108.24628906250004,21.55839843749999],[107.97265624999997,21.507958984375023],[107.75927734374997,21.655029296875057],[107.35117187500012,21.60888671874997],[106.97099609375002,21.923925781250034],[106.66357421875003,21.97890625000005],[106.55039062500006,22.501367187499994],[106.78027343749997,22.778906250000034],[106.54179687500007,22.908349609375023],[106.2790039062501,22.857470703125045],[106.14843749999997,22.970068359375006],[105.8429687500001,22.922802734374955],[105.27539062500003,23.34521484375003],[104.86474609375003,23.136376953125023],[104.68730468750002,22.822216796874983],[104.37177734375004,22.704052734374983],[104.14306640624997,22.800146484375006],[103.94150390625006,22.540087890625045],[103.62021484375006,22.782031250000045],[103.49296875000007,22.587988281250034],[103.32666015625003,22.769775390625057],[102.98193359374997,22.4482421875],[102.47089843750004,22.75092773437501],[102.40644531250004,22.70800781249997],[102.2370117187501,22.466015624999983],[102.1759765625001,22.414648437500006],[102.12744140624997,22.379199218750045],[101.84179687500003,22.38847656249999],[101.75996093750004,22.490332031250034],[101.73876953124997,22.495263671874994],[101.70751953125003,22.486572265625],[101.67148437500006,22.462304687500023],[101.64619140625004,22.405419921874966],[101.61992187500002,22.32744140624999],[101.56787109374997,22.27636718749997],[101.52451171875006,22.25366210937497],[101.7365234375001,21.826513671874977],[101.74394531250007,21.77797851562505],[101.74726562500004,21.605761718750045],[101.72294921875007,21.31494140625003],[101.80058593750007,21.212597656249983],[101.78349609375007,21.204150390625017],[101.728125,21.156396484374994],[101.7047851562501,21.15014648437503],[101.54238281250005,21.23427734375005],[101.2814453125001,21.184130859375045],[101.24785156250007,21.197314453125045],[101.22441406250002,21.223730468750034],[101.21181640625,21.278222656250023],[101.2199218750001,21.34243164062505],[101.17539062500006,21.407519531250074],[101.19667968750005,21.522070312500063],[101.1388671875001,21.567480468749977],[101.07978515625004,21.75585937499997],[100.60458984375012,21.471777343750006],[100.14765625000004,21.480517578125017],[99.94072265625007,21.75874023437504],[99.9176757812501,22.02802734375001],[99.19296875000006,22.12597656249997],[99.50712890625002,22.959130859374994],[99.41806640625006,23.069238281250023],[98.86376953125003,23.191259765625034],[98.8322265625001,23.624365234374977],[98.67675781250003,23.905078125000045],[98.83505859375006,24.121191406250034],[98.2125,24.110644531250017],[97.56455078125012,23.911035156250023],[97.7082031250001,24.228759765625],[97.53144531250004,24.49169921875003],[97.58330078125002,24.77480468750005],[97.73789062500006,24.869873046875057],[97.8195312500001,25.251855468749994],[98.01074218749997,25.292529296875017],[98.14287109375007,25.571093750000017],[98.33378906250007,25.586767578125006],[98.65625,25.86357421874999],[98.56406250000006,26.072412109374994],[98.68554687499997,26.189355468750023],[98.7384765625001,26.785742187500006],[98.65117187500007,27.572460937499983],[98.4525390625,27.6572265625],[98.29882812499997,27.550097656250045],[98.06162109375012,28.185888671874977],[97.59921875000006,28.51704101562504],[97.53789062500002,28.510205078124983],[97.43144531250002,28.353906250000023],[97.35644531249997,28.254492187500006],[97.32158929493812,28.217097107438057],[97.3027336276825,28.08710519614969],[97.34382779482424,27.982305259167095],[97.04929369561631,27.76000444316393],[96.96494598325154,27.699301564540924],[96.19423412199573,28.04146177926422],[95.73730002295082,28.117613231051525],[95.11298892962586,27.748338353239472],[94.07167814294401,27.588707868507477],[93.61247595136224,27.323800298697016],[93.30681393470121,26.786120363519142],[92.74319481218781,26.833531317384058],[92.04974640832253,26.874866505386724],[92.07342257335648,26.915311275859864],[92.06813426293174,26.9752569185349],[92.02985139563152,27.03987087331446],[91.99856592104459,27.079255842602592],[91.99177981607339,27.100605151743654],[92.0025114452454,27.147290053160265],[92.03101585307499,27.214271359861193],[92.08387457645458,27.29090135496722],[92.04520857607581,27.364442429033787],[91.99069061380867,27.450181624174498],[91.95099838734396,27.45828799115413],[91.85276579410389,27.438593286730903],[91.74366351462741,27.442853010105477],[91.59505352446729,27.557262710287986],[91.63193359375012,27.759960937499983],[91.64189453125002,27.923242187500023],[91.36259958579089,28.02438066407592],[91.27304687500012,28.078369140625],[91.22587890625007,28.071240234374983],[91.07773437500012,27.974462890624977],[91.02080078125002,27.970068359374977],[90.71572265625,28.071728515624983],[90.63007812500004,28.078564453124955],[90.47734375000007,28.07084960937499],[90.3527343750001,28.080224609375023],[90.33310546875012,28.093994140625],[90.36298828125004,28.21650390625001],[90.34824218750006,28.24394531249999],[90.22080078125006,28.27773437500005],[90.10449218749997,28.302050781250017],[89.98105468750006,28.311181640625023],[89.8978515625,28.29414062500001],[89.81689453125003,28.25629882812501],[89.74980468750002,28.18818359375001],[89.65273437500005,28.158300781250034],[89.53691406250007,28.10742187499997],[89.4806640625001,28.059960937499994],[88.89140625000002,27.316064453124966],[88.83251953125003,27.36284179687499],[88.7648437500001,27.429882812499983],[88.74902343749997,27.521875],[88.82988281250002,27.76738281249999],[88.84882812500004,27.86865234375],[88.80371093750003,28.006933593750034],[88.57792968750002,28.093359375000034],[88.42597656250004,28.01166992187501],[88.27519531250007,27.968847656250006],[88.14111328125003,27.94892578125001],[88.10898437500006,27.933007812499966],[88.10976562500005,27.870605468750057],[87.8607421875,27.886083984375006],[87.62255859374997,27.81518554687503],[87.29072265625004,27.821923828124994],[87.14140625000002,27.838330078124955],[87.02011718750006,27.928662109374983],[86.9337890625001,27.96845703125001],[86.84238281250012,27.99916992187505],[86.750390625,28.022070312500006],[86.71962890625005,28.070654296875034],[86.69052734375006,28.09492187500001],[86.61445312500004,28.10302734374997],[86.55449218750007,28.08520507812497],[86.51689453125007,27.963525390624966],[86.40869140625003,27.928662109374983],[86.32861328124997,27.95952148437496],[86.2179687500001,28.022070312500006],[86.13701171875002,28.114355468750063],[86.07871093750006,28.08359375],[86.0641601562501,27.934716796874966],[85.99453125000005,27.910400390625],[85.95410156249997,27.92822265624997],[85.92167968750002,27.989697265624983],[85.84023437500005,28.135351562499977],[85.75947265625004,28.220654296874955],[85.67832031250012,28.277441406249977],[85.41064453125003,28.27602539062505],[85.21210937500004,28.292626953124966],[85.1224609375,28.315966796875017],[85.08857421875004,28.37226562500001],[85.121484375,28.484277343750023],[85.16015624999997,28.571875],[85.15908203125,28.592236328124983],[85.1263671875,28.602636718750063],[85.06914062500007,28.60966796874999],[84.85507812500006,28.553613281250023],[84.796875,28.560205078125023],[84.2287109375001,28.911767578124966],[84.17558593750002,29.036376953125057],[84.12783203125005,29.15629882812496],[84.10136718750002,29.21997070312497],[84.02197265624997,29.25385742187504],[83.93593750000005,29.27949218750001],[83.58349609375003,29.18359375000003],[83.15546875000004,29.612646484375034],[82.22070312500003,30.063867187500023],[82.04335937500005,30.326757812500034],[81.8548828125,30.362402343750006],[81.64189453125007,30.3875],[81.4171875000001,30.33759765625001],[81.25507812500004,30.09331054687499],[81.17714843750005,30.039892578125034],[80.98544921875006,30.23710937499999],[80.87353515625003,30.290576171875045],[80.19121093750002,30.56840820312496],[80.20712890625006,30.683740234375023],[79.92451171875004,30.888769531250034],[79.66425781250004,30.96523437499999],[79.38847656250007,31.064208984375],[79.10712890625004,31.402636718750017],[78.74355468750005,31.323779296875017],[78.7550781250001,31.55029296875],[78.69345703125006,31.740380859374994],[78.72558593750003,31.983789062500023],[78.49589843750002,32.21577148437504],[78.4552734375001,32.30034179687502],[78.41748046874997,32.466699218749994],[78.38964843749997,32.51987304687498],[78.73671875,32.55839843750002],[78.75351562500012,32.49926757812506],[78.91894531249997,32.35820312500002],[79.16992187500003,32.497216796874994],[79.14550781250003,33.00146484375006],[79.10283203125007,33.05253906249996],[79.13515625000005,33.17192382812496],[79.1125,33.22626953125001],[78.94843750000004,33.346533203125006],[78.86503906250002,33.43110351562501],[78.78378906250006,33.80878906250004],[78.72666015625006,34.013378906249955],[78.97060546875,34.22822265625004],[78.93642578125,34.35195312500002],[78.86484375000006,34.39033203125001],[78.32695312500007,34.60639648437498],[78.15849609375002,34.94648437499998],[78.07578125000006,35.13491210937502],[78.0426757812501,35.47978515625002],[77.79941406250006,35.49589843750002],[77.44648437500004,35.47558593750006],[77.29482421875005,35.508154296875034],[77.09003906250004,35.55205078124999],[76.87890625000003,35.61328125000003],[76.76689453125002,35.661718750000034],[76.72753906250003,35.67866210937504],[76.63183593749997,35.729394531249966],[76.56347656249997,35.77299804687499],[76.55126953124997,35.887060546875034],[76.50205078125006,35.87822265625002],[76.38574218750003,35.837158203125],[76.25166015625004,35.8109375],[76.17783203125012,35.810546875],[76.14785156250005,35.82900390625002],[76.07089843750006,35.983007812500034],[75.91230468750004,36.048974609374994],[75.97441406250007,36.38242187500006],[75.9518554687501,36.458105468750034],[75.9330078125,36.52158203124998],[75.840234375,36.64970703124999],[75.7721679687501,36.694921875000034],[75.6671875000001,36.741992187500045],[75.57373046874997,36.75932617187502],[75.46025390625002,36.725048828124955],[75.42421875000005,36.73823242187498],[75.37685546875,36.88369140625005],[75.34667968749997,36.913476562499966],[75.05390625000004,36.98715820312498],[74.94912109375,36.96835937500006],[74.88925781250006,36.95244140625002],[74.69218750000007,37.035742187500006],[74.60058593749997,37.03666992187502],[74.54140625,37.02216796875001],[74.52646484375006,37.03066406250005],[74.49794921875,37.057226562500034],[74.37617187500004,37.13735351562502],[74.37216796875006,37.15771484375],[74.558984375,37.23662109374999],[74.66894531250003,37.266699218750006],[74.72666015625006,37.29072265625001],[74.7389648437501,37.28564453125003],[74.76738281250002,37.249169921874966],[74.840234375,37.22504882812504],[74.89130859375004,37.231640624999955],[75.11875,37.38569335937498],[74.8942382812501,37.60141601562498],[74.81230468750002,38.46030273437498],[74.27744140625,38.659765625000034],[74.02558593750004,38.53984375000002],[73.80166015625,38.60688476562501],[73.69609375000007,38.85429687499996],[73.8052734375,38.968652343749994],[73.60732421875,39.229199218749955],[73.63632812500006,39.396679687499955],[73.63164062500007,39.44887695312502],[73.82294921875004,39.48896484375004],[73.90712890625,39.578515624999966],[73.9146484375,39.60649414062499],[73.88251953125004,39.71455078124998],[73.83974609375005,39.76284179687505],[73.8353515625,39.800146484375006],[73.85625,39.828662109375045],[73.88457031250002,39.87792968750006],[73.93876953125002,39.97880859374999],[73.99160156250005,40.04311523437502],[74.83046875,40.32851562499999],[74.80126953124997,40.428515625000045],[74.83515625000004,40.482617187499955],[74.865625,40.493505859375034],[75.0044921875,40.44951171874996],[75.11132812499997,40.4541015625],[75.24101562500002,40.48027343750002],[75.52080078125002,40.627539062500006],[75.55556640625,40.625195312499955],[75.6771484375,40.305810546874994],[75.87197265625,40.30322265625],[76.25830078124997,40.43076171875006],[76.3185546875001,40.352246093749955],[76.39638671875005,40.389794921874966],[76.4801757812501,40.44951171874996],[76.57792968750002,40.577880859375],[76.62216796875006,40.66235351562497],[76.6398437500001,40.74223632812499],[76.66113281249997,40.77963867187498],[76.70839843750005,40.818115234375],[76.82402343750002,40.982324218749966],[76.90771484374997,41.02416992187497],[76.98662109375002,41.039160156250006],[77.58173828125004,40.99277343750006],[77.71933593750012,41.024316406249994],[77.81523437500002,41.05561523437498],[77.9564453125,41.05068359375005],[78.1234375,41.07563476562498],[78.34628906250012,41.28144531249998],[78.36240234375012,41.37163085937496],[78.44287109374997,41.41752929687499],[78.742578125,41.56005859375],[79.29355468750006,41.78281249999998],[79.76611328124997,41.89887695312501],[79.84042968750012,41.99575195312502],[79.90966796875003,42.014990234375034],[80.21621093750005,42.03242187500004],[80.23515625000007,42.04345703124997],[80.24619140625012,42.05981445312503],[80.209375,42.190039062500006],[80.20224609375012,42.73447265624998],[80.53896484375005,42.873486328124955],[80.39023437500006,43.043115234374966],[80.78574218750006,43.16157226562504],[80.35527343750002,44.09726562500006],[80.48154296875006,44.71464843749999],[79.871875,44.88378906249997],[80.05917968750012,45.006445312500006],[81.69199218750012,45.34936523437497],[81.94492187500006,45.16083984375001],[82.26660156249997,45.21909179687498],[82.52148437500003,45.12548828125],[82.61162109375007,45.424267578124955],[82.31523437500002,45.59492187499998],[83.02949218750004,47.18593750000002],[84.016015625,46.97050781250002],[84.66660156250006,46.97236328125004],[84.78613281249997,46.83071289062505],[85.484765625,47.06352539062496],[85.65664062500005,47.254638671875],[85.52597656250006,47.915625],[85.7494140625,48.38505859374999],[86.54941406250012,48.52861328125002],[86.8083007812501,49.04970703125002],[87.32285156250012,49.085791015625006],[87.41669921875004,49.07661132812501],[87.5158203125001,49.122412109375006],[87.7625,49.16582031249996],[87.81425781250002,49.162304687499955],[87.87216796875012,49.000146484374966],[87.74316406250003,48.88164062499999],[87.83183593750007,48.79165039062505],[88.02792968750006,48.735595703125],[88.06005859375003,48.707177734374966],[87.9796875000001,48.55512695312498],[88.30996093750005,48.47207031250002],[88.41396484375,48.403417968750006],[88.51708984374997,48.384472656249955],[88.56679687500005,48.31743164062496],[88.57597656250007,48.220166015624955],[88.68183593750004,48.170556640624994],[88.83828125000005,48.101708984374994],[88.91777343750007,48.089013671874966],[89.04765625000007,48.002539062500034],[89.47919921875004,48.02905273437503],[89.5609375,48.00395507812496],[89.778125,47.82700195312498],[89.83134765625002,47.82329101562502],[89.91044921875007,47.844335937500034],[89.95869140625004,47.88632812499998],[90.02792968750012,47.877685546875],[90.1032226562501,47.74541015624996],[90.19101562500012,47.70209960937501],[90.31328125000007,47.67617187499999],[90.33066406250006,47.655175781249966],[90.42519531250005,47.50410156250001],[90.49619140625012,47.28515625],[90.64335937500007,47.10029296874998],[90.71552734375004,47.00385742187498],[90.7990234375001,46.98515624999999],[90.86992187500002,46.95449218750005],[90.91054687500005,46.88325195312501],[90.9857421875,46.7490234375],[90.9115234375,46.270654296874994],[90.94755859375002,46.17729492187499],[90.99677734375004,46.10498046875],[91.00175781250007,46.03579101562502],[90.6618164062501,45.525244140625006],[90.87724609375002,45.19609375000002],[91.05,45.217431640624994],[91.584375,45.07651367187498],[92.42382812499997,45.008935546874994],[92.57890625000002,45.01098632812506],[92.78789062500007,45.035742187500034],[93.51621093750012,44.944482421874994],[94.71201171875012,44.35083007812503],[95.35029296875004,44.27807617187503],[95.32558593750005,44.03935546874999],[95.52558593750004,43.953955078125006],[95.85957031250004,43.27597656249998],[96.38544921875004,42.72036132812502],[97.20566406250012,42.78979492187506],[99.46787109375012,42.568212890625034],[99.98378906250005,42.67734375000006],[100.08632812500005,42.67075195312506],[100.51904296875003,42.61679687499998],[101.09199218750004,42.55131835937496],[101.49531250000004,42.53876953124998],[101.57910156249997,42.52353515624998],[101.65996093750002,42.50004882812499],[101.97294921875002,42.21586914062502],[102.15664062500005,42.158105468749966],[102.57519531249997,42.09208984375002],[103.07285156250006,42.00595703125006],[103.7111328125001,41.75131835937506],[103.99726562500004,41.796972656250034],[104.30517578124997,41.84614257812501],[104.49824218750004,41.87700195312499],[104.49824218750004,41.65869140625],[104.86035156250003,41.64375],[104.98203125000012,41.59550781250002],[105.05058593750002,41.61591796875001],[105.1154296875001,41.66328124999998],[105.19707031250002,41.738037109375],[105.31435546875005,41.77089843750005],[105.86757812500005,41.993994140625034],[106.77001953125003,42.28872070312502],[108.17119140625002,42.44731445312502],[108.68730468750002,42.416113281250034],[109.33984374999997,42.43837890625005],[109.44316406250002,42.455957031249994],[110.40039062499997,42.77368164062497],[111.00722656250005,43.34140624999998],[111.878125,43.68017578125],[111.93173828125012,43.81494140625],[111.40224609375005,44.367285156250006],[111.89804687500006,45.064062500000034],[112.03261718750005,45.08164062500006],[112.11289062500006,45.06293945312498],[112.41132812500004,45.05820312499998],[112.49931640625002,45.01093750000004],[112.59677734375006,44.917675781249955],[112.7067382812501,44.883447265624994],[113.04941406250006,44.81035156250002],[113.3009765625001,44.79165039062502],[113.50791015625006,44.76235351562502],[113.58701171875006,44.745703125],[113.65263671875002,44.76347656249999],[113.87705078125012,44.89619140625001],[114.03027343749997,44.942578124999955],[114.08027343750004,44.97114257812501],[114.41914062500004,45.20258789062501],[114.56015625000012,45.38999023437498],[114.73876953124997,45.41962890624998],[114.91923828125007,45.378271484375006],[115.16259765624997,45.390234375000034],[115.6810546875,45.45825195312503],[116.19765625,45.739355468750006],[116.240625,45.795996093750006],[116.22910156250012,45.84575195312502],[116.21298828125012,45.88691406249998],[116.56259765625012,46.28979492187497],[116.85908203125004,46.387939453125],[117.3333984375,46.36201171875004],[117.35693359375003,46.391308593749955],[117.35634765625,46.436669921874966],[117.39218750000012,46.53759765625003],[117.40556640625007,46.57089843750006],[117.43808593750012,46.58623046874999],[117.546875,46.58828125000005],[117.74121093749997,46.51816406250006],[118.07128906249997,46.666601562500006],[118.15683593750006,46.678564453125034],[118.30869140625012,46.71704101562497],[118.40439453125006,46.70317382812499],[118.58046875,46.69189453125],[118.64873046875002,46.70166015625006],[118.72294921875007,46.69189453125],[118.8439453125001,46.76020507812498],[118.95712890625006,46.73486328124997],[119.16210937499997,46.638671875],[119.33183593750002,46.61381835937499],[119.47402343750005,46.626660156249955],[119.62021484375006,46.60395507812504],[119.70664062500006,46.60600585937502],[119.74746093750005,46.62719726562497],[119.86718750000003,46.67216796874999],[119.89785156250005,46.857812499999966],[119.71113281250004,47.15],[119.08193359375,47.654150390625034],[119.01757812500003,47.68535156249999],[118.88027343750005,47.72509765625],[118.75996093750004,47.75761718749996],[118.69052734375012,47.822265625],[118.56777343750005,47.94326171875005],[118.49843750000005,47.98398437499998],[117.76835937500002,47.98789062499998],[117.3507812500001,47.65219726562498],[117.28593750000002,47.666357421875034],[117.06972656250005,47.80639648437506],[116.95166015624997,47.836572265624966],[116.90117187500007,47.85307617187496],[116.76054687500002,47.869775390624994],[116.65195312500012,47.86450195312497],[116.51347656250007,47.839550781249955],[116.37822265625002,47.84404296874999],[116.31718750000002,47.85986328125],[116.2311523437501,47.85820312500002],[116.07480468750012,47.78955078125],[115.99384765625004,47.71132812500005],[115.89824218750002,47.68691406250005],[115.6164062500001,47.874804687500045],[115.52509765625004,48.13085937499997],[115.63945312500007,48.18623046874998],[115.785546875,48.24824218750001],[115.7965820312501,48.346337890624994],[115.7916992187501,48.455712890624994],[115.8205078125001,48.57724609375006],[116.6833007812501,49.82377929687499],[117.8734375,49.51347656250002],[118.4515625,49.84448242187503],[119.25986328125012,50.06640625000003],[119.34628906250012,50.278955078124994],[119.16367187500006,50.40600585937503],[120.06689453125003,51.60068359375006],[120.74980468750007,52.096533203125006],[120.65615234375,52.56665039062503],[120.0675781250001,52.632910156250034],[120.09453125000007,52.787207031250034],[120.98544921875012,53.28457031250002],[123.6078125,53.546533203124994],[124.81230468750002,53.133837890625045],[125.075,53.20366210937496],[125.64902343750012,53.042285156250045],[126.34169921875,52.36201171875001],[126.92480468749997,51.10014648437496],[127.30703125000005,50.70795898437501],[127.33720703125007,50.35014648437502],[127.590234375,50.20898437500003],[127.55078124999997,49.801806640625045],[127.99960937500006,49.56860351562506],[128.70400390625,49.60014648437499],[129.0651367187501,49.374658203124966],[129.49814453125012,49.38881835937502],[130.1959960937501,48.89165039062499],[130.553125,48.861181640625006],[130.5521484375,48.602490234374955],[130.80429687500012,48.34150390624998],[130.7326171875001,48.01923828124998],[130.96191406249997,47.70932617187498],[132.47626953125004,47.714990234374994],[132.7072265625001,47.94726562500006],[133.14404296875003,48.10566406249998],[133.46835937500006,48.09716796875003],[134.29335937500005,48.37343750000002],[134.66523437500004,48.25390625],[134.56601562500006,48.02250976562502],[134.75234375,47.71542968749998],[134.1676757812501,47.30219726562501],[133.86132812500003,46.24775390625004],[133.43642578125,45.60468750000004],[133.18603515625003,45.49482421875004],[133.1134765625001,45.130712890625006],[132.93603515624997,45.029931640624994],[131.85185546875002,45.32685546875001],[131.44687500000012,44.984033203124966],[130.9816406250001,44.844335937500034],[131.2552734375,44.07158203124999],[131.25732421875003,43.378076171874994],[131.06855468750004,42.90224609375005],[130.42480468749997,42.72705078124997],[130.52695312500012,42.535400390625]]],[[[113.9977539062501,22.210498046875045],[113.83886718749997,22.24169921875003],[114.04394531250003,22.33339843750005],[113.9977539062501,22.210498046875045]]],[[[114.01542968750007,22.51191406250001],[114.26601562500005,22.540966796874983],[114.26796875,22.295556640624966],[113.93730468750002,22.364990234375],[114.01542968750007,22.51191406250001]]],[],[[[118.4074218750001,24.522119140624994],[118.43271484375006,24.414355468750074],[118.29511718750004,24.436328125000017],[118.4074218750001,24.522119140624994]]],[[[121.00878906249997,22.62036132812497],[120.83984375000003,21.925],[120.2328125,22.71791992187505],[120.0724609375001,23.149755859375006],[120.13212890625007,23.652929687500034],[121.040625,25.032812500000034],[121.59365234375,25.275341796874983],[121.92900390625002,24.973730468749977],[121.39746093750003,23.172509765625023],[121.00878906249997,22.62036132812497]]]]},"properties":{"name":"China","childNum":15}},{"geometry":{"type":"Polygon","coordinates":[[[-5.262304687499977,10.319677734374991],[-4.72177734374992,9.756542968750026],[-4.625830078125006,9.713574218749969],[-4.526611328124943,9.723486328125034],[-4.406201171874926,9.647998046875031],[-4.332226562499955,9.645703125],[-4.18115234375,9.78173828125],[-3.790625,9.917187499999983],[-3.581152343749977,9.924316406250014],[-3.289697265625023,9.882226562500051],[-3.223535156249937,9.895458984374997],[-3.160693359374932,9.849169921874974],[-3.095800781249949,9.752099609375009],[-3.042626953124937,9.72089843750004],[-2.988281249999972,9.687353515624963],[-2.900878906249943,9.534619140625026],[-2.875146484374937,9.500927734374997],[-2.816748046874949,9.425830078124974],[-2.766601562499943,9.424707031250009],[-2.7171875,9.457128906250048],[-2.695849609374989,9.481347656250009],[-2.686132812499977,9.43173828125002],[-2.705761718749983,9.351367187499989],[-2.74692382812492,9.04511718750004],[-2.689892578124955,9.02509765625004],[-2.649218750000017,8.956591796875031],[-2.600390625000017,8.800439453125023],[-2.505859375000028,8.208740234375],[-2.538281249999955,8.171630859374986],[-2.61171875,8.147558593749963],[-2.619970703125006,8.12109375],[-2.600976562499937,8.082226562499983],[-2.613378906249977,8.046679687500017],[-2.668847656249994,8.022216796875014],[-2.789746093749955,7.931933593750003],[-2.959082031249977,7.454541015624997],[-3.227148437499977,6.749121093749991],[-2.998291015624972,5.711328125000051],[-2.793652343749955,5.600097656250028],[-2.754980468749977,5.432519531249994],[-2.815673828125,5.153027343749997],[-3.168701171874972,5.203027343749966],[-3.199951171874943,5.3544921875],[-3.347558593749994,5.13066406249996],[-4.120166015625017,5.309716796875023],[-4.60888671875,5.235888671875003],[-4.037207031249977,5.23012695312498],[-4.899707031249932,5.138330078125023],[-5.282373046874994,5.210253906250017],[-5.36752929687492,5.15078125],[-5.061816406249989,5.13066406249996],[-5.913769531249926,5.0109375],[-7.544970703124989,4.351318359375],[-7.574658203124983,4.572314453124989],[-7.585058593749977,4.916748046875],[-7.39990234375,5.550585937499989],[-7.454394531249989,5.841308593749972],[-7.636132812499994,5.90771484375],[-7.730371093749994,5.919042968749991],[-7.800927734374994,6.038916015624991],[-7.833251953125,6.076367187499983],[-7.855517578125017,6.150146484375],[-7.888623046875011,6.234863281250028],[-7.981591796874937,6.2861328125],[-8.287109375,6.31904296875004],[-8.587890625,6.490527343749989],[-8.324511718749989,6.920019531249991],[-8.408740234374989,7.411816406249997],[-8.429980468749989,7.601855468749989],[-8.351757812499926,7.590576171875],[-8.231884765624955,7.556738281250034],[-8.205957031249994,7.590234375000023],[-8.115429687499926,7.760742187500028],[-8.126855468749937,7.867724609374974],[-8.00986328124992,8.078515625000023],[-8.048583984375,8.169726562500045],[-8.140625,8.181445312500031],[-8.217138671874949,8.219677734375011],[-8.256103515625,8.253710937500017],[-8.244140624999943,8.407910156249983],[-8.236962890624994,8.455664062500034],[-7.953125,8.477734375],[-7.823583984374977,8.467675781249994],[-7.738964843749983,8.375244140624986],[-7.696093749999932,8.375585937499977],[-7.71958007812492,8.643017578125011],[-7.950976562499989,8.786816406249997],[-7.938183593749983,8.97978515624996],[-7.902099609375,9.017089843750014],[-7.777978515624937,9.080859375000031],[-7.799804687499943,9.115039062499989],[-7.839404296875017,9.151611328124972],[-7.918066406249949,9.188525390625031],[-7.896191406249955,9.415869140624991],[-8.136962890624972,9.49570312499999],[-8.155175781249937,9.973193359375017],[-7.990625,10.1625],[-7.661132812500028,10.427441406250011],[-7.385058593749989,10.340136718749989],[-7.01708984375,10.143261718750026],[-6.950341796874994,10.342333984374989],[-6.693261718750023,10.34946289062502],[-6.669335937499937,10.39218750000002],[-6.69199218749992,10.512011718750017],[-6.686132812499977,10.578027343750051],[-6.676367187499949,10.633789062500043],[-6.654150390624949,10.65644531250004],[-6.482617187499983,10.561230468749997],[-6.250244140625,10.717919921875037],[-6.190673828124943,10.400292968749994],[-6.192626953124972,10.369433593750003],[-6.241308593749949,10.279199218750009],[-6.238378906249977,10.26162109374998],[-6.117187499999972,10.201904296874986],[-6.034570312499937,10.194824218750057],[-5.907568359375006,10.307226562500034],[-5.896191406249983,10.354736328125028],[-5.843847656249977,10.389550781250023],[-5.694287109374983,10.433203125000034],[-5.556591796874983,10.439941406249986],[-5.382275390625011,10.314013671875003],[-5.262304687499977,10.319677734374991]]]},"properties":{"name":"Côte d\'Ivoire","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[15.480078125,7.523779296874991],[15.206738281250011,7.206152343749991],[14.7392578125,6.27978515625],[14.43115234375,6.038720703124994],[14.616894531250011,5.865136718749994],[14.56298828125,5.279931640624994],[14.73125,4.602392578124991],[15.063574218750006,4.284863281249997],[15.128710937500017,3.826904296875],[16.0634765625,2.90859375],[16.183398437500017,2.270068359374989],[16.059375,1.676220703124997],[15.741601562500023,1.914990234374997],[14.902441406250006,2.012304687499991],[14.578906250000017,2.199121093749994],[13.293554687500006,2.161572265624997],[13.2203125,2.256445312499991],[11.558984375000023,2.302197265624997],[11.348437500000017,2.299707031249994],[11.328710937500006,2.167431640624997],[11.096582031250023,2.16748046875],[10.790917968750023,2.16757812499999],[9.979882812500023,2.167773437499989],[9.8701171875,2.21328125],[9.8369140625,2.242382812499997],[9.830371093750017,2.275488281249991],[9.826171875,2.297802734374997],[9.80078125,2.304443359375],[9.82177734375,2.539257812499997],[9.948437500000011,3.079052734374997],[9.672070312500011,3.53759765625],[9.765722656250006,3.623828124999989],[9.642382812500017,3.611767578124997],[9.55615234375,3.798046875],[9.739648437500023,3.852929687499994],[9.639941406250017,3.96533203125],[9.688867187500023,4.056396484375],[9.483691406250017,4.066113281249997],[9.42529296875,3.922314453124997],[9.000097656250006,4.091601562499989],[8.918261718750017,4.553759765624989],[8.660351562500011,4.670996093749991],[8.65625,4.516357421875],[8.53955078125,4.571875],[8.715625,5.046875],[8.997167968750006,5.917724609375],[9.490234375,6.418652343749997],[9.779882812500006,6.76015625],[9.820703125000023,6.783935546875],[9.874218750000011,6.803271484374989],[10.038867187500017,6.92138671875],[10.1435546875,6.996435546874991],[10.167773437500017,6.959179687499997],[10.185546875,6.912792968749997],[10.205468750000023,6.8916015625],[10.293066406250006,6.876757812499989],[10.413183593750006,6.877734374999989],[10.60625,7.063085937499991],[10.954199218750006,6.7765625],[11.032519531250017,6.697900390624994],[11.1064453125,6.457714843749997],[11.1533203125,6.437939453124997],[11.2373046875,6.450537109374991],[11.401757812500023,6.533935546875],[11.551660156250023,6.697265625],[11.580078125,6.888867187499997],[11.657519531250017,6.9515625],[11.861425781250006,7.11640625],[11.767382812500017,7.272265624999989],[11.809179687500006,7.345068359374991],[12.016015625000023,7.589746093749994],[12.2333984375,8.282324218749991],[12.403515625000011,8.595556640624991],[12.582714843750011,8.624121093749991],[12.651562500000011,8.667773437499989],[12.7822265625,8.81787109375],[12.806542968750023,8.886621093749994],[12.875683593750011,9.303515624999989],[12.929492187500017,9.42626953125],[13.19873046875,9.563769531249989],[13.269921875000023,10.036181640624989],[13.41455078125,10.171435546874989],[13.535351562500011,10.60507812499999],[13.699902343750011,10.873144531249991],[13.89208984375,11.140087890624997],[13.9814453125,11.211865234374997],[14.056738281250006,11.245019531249994],[14.143261718750011,11.24853515625],[14.202343750000011,11.268164062499991],[14.559765625000011,11.492285156249991],[14.619726562500006,12.150976562499991],[14.518945312500023,12.298242187499994],[14.272851562500023,12.356494140624989],[14.184863281250017,12.447216796874997],[14.06396484375,13.07851562499999],[14.244824218750011,13.07734375],[14.461718750000017,13.021777343749989],[14.847070312500023,12.502099609374994],[15.08125,11.845507812499989],[15.029882812500006,11.11367187499999],[15.132226562500023,10.648486328124989],[15.276074218750011,10.357373046874997],[15.654882812500006,10.0078125],[14.243261718750006,9.979736328125],[13.977246093750011,9.691552734374994],[14.332324218750017,9.20351562499999],[15.1162109375,8.557324218749997],[15.5498046875,7.787890624999989],[15.480078125,7.523779296874991]]]},"properties":{"name":"Cameroon","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[27.4033203125,5.109179687499989],[27.7880859375,4.644677734374994],[28.19208984375001,4.350244140624994],[28.427539062500017,4.324169921874997],[28.72705078125,4.504980468749991],[29.224902343750017,4.391894531249989],[29.469628906250023,4.61181640625],[29.676855468750006,4.5869140625],[30.194921875,3.98193359375],[30.50830078125,3.835693359375],[30.586718750000017,3.62421875],[30.757226562500023,3.62421875],[30.83857421875001,3.49072265625],[30.90644531250001,3.408935546875],[30.754003906250006,3.041796874999989],[30.8466796875,2.847021484374991],[30.728613281250006,2.455371093749989],[31.176367187500006,2.270068359374989],[31.252734375000017,2.044580078124994],[29.94287109375,0.819238281249994],[29.934472656250023,0.4990234375],[29.717675781250023,0.098339843749997],[29.576953125000017,-1.387890625000011],[29.196582031250017,-1.719921875000011],[29.13154296875001,-2.195117187500003],[28.876367187500023,-2.400292968750009],[28.893945312500023,-2.635058593750003],[29.01435546875001,-2.72021484375],[29.224414062500017,-3.053515625],[29.211816406250023,-3.833789062500003],[29.403222656250023,-4.449316406250006],[29.404199218750023,-4.496679687500006],[29.32568359375,-4.835644531250011],[29.32343750000001,-4.898828125],[29.3427734375,-4.983105468750011],[29.542382812500023,-5.499804687500003],[29.594140625000023,-5.65078125],[29.60703125,-5.72265625],[29.59638671875001,-5.775976562500006],[29.490820312500006,-5.965429687500006],[29.480078125,-6.025],[29.50625,-6.172070312500011],[29.540820312500017,-6.313867187500009],[29.590625,-6.394433593750009],[29.70966796875001,-6.616894531250011],[29.798144531250017,-6.69189453125],[29.961816406250023,-6.803125],[30.10625,-6.9150390625],[30.212695312500017,-7.037890625],[30.31318359375001,-7.203710937500006],[30.40673828125,-7.460644531250011],[30.75117187500001,-8.193652343750003],[28.89814453125001,-8.485449218750006],[28.869531250000023,-8.785839843750011],[28.400683593750017,-9.224804687500011],[28.60419921875001,-9.678808593750006],[28.6455078125,-10.550195312500009],[28.383398437500006,-11.566699218750003],[28.482519531250006,-11.812109375],[29.064355468750023,-12.348828125000011],[29.48554687500001,-12.41845703125],[29.508203125000023,-12.228222656250011],[29.79511718750001,-12.155468750000011],[29.775195312500017,-13.438085937500006],[29.55419921875,-13.248925781250009],[29.20185546875001,-13.398339843750009],[29.014257812500006,-13.368847656250011],[28.730078125,-12.925488281250011],[28.550878906250006,-12.836132812500011],[28.412890625000017,-12.51806640625],[27.573828125,-12.22705078125],[27.1591796875,-11.579199218750006],[26.824023437500017,-11.965234375],[26.025976562500006,-11.89013671875],[25.349414062500017,-11.623046875],[25.28876953125001,-11.21240234375],[24.3779296875,-11.417089843750006],[24.36572265625,-11.1298828125],[23.96650390625001,-10.871777343750011],[23.901171875000017,-10.983203125],[23.833886718750023,-11.013671875],[23.463964843750006,-10.969335937500006],[23.076269531250006,-11.087890625],[22.814746093750017,-11.080273437500011],[22.56103515625,-11.055859375000011],[22.486132812500017,-11.08671875],[22.392968750000023,-11.159472656250003],[22.31494140625,-11.198632812500009],[22.27880859375,-11.194140625],[22.226171875,-11.121972656250009],[22.203515625000023,-10.829492187500009],[22.307031250000023,-10.691308593750009],[22.19775390625,-10.040625],[21.81318359375001,-9.46875],[21.905371093750006,-8.693359375],[21.806054687500023,-7.32861328125],[21.751074218750006,-7.30546875],[21.190332031250023,-7.284960937500003],[20.910937500000017,-7.281445312500011],[20.607812500000023,-7.277734375],[20.558398437500017,-7.244433593750003],[20.53583984375001,-7.182812500000011],[20.536914062500017,-7.121777343750011],[20.598730468750006,-6.93515625],[20.59003906250001,-6.919921875],[20.482226562500017,-6.915820312500003],[20.190039062500006,-6.9462890625],[19.997460937500023,-6.976464843750009],[19.87519531250001,-6.986328125],[19.527636718750017,-7.144433593750009],[19.483789062500023,-7.279492187500011],[19.479882812500023,-7.47216796875],[19.371679687500006,-7.655078125],[19.369921875000017,-7.70654296875],[19.3408203125,-7.966601562500003],[19.142675781250006,-8.00146484375],[18.944433593750006,-8.00146484375],[18.56269531250001,-7.9359375],[18.0087890625,-8.107617187500011],[17.643359375000017,-8.090722656250009],[17.57958984375,-8.099023437500009],[16.984765625000023,-7.257421875],[16.91943359375,-6.933984375],[16.813085937500006,-6.772558593750006],[16.742968750000017,-6.618457031250003],[16.697265625,-6.164257812500011],[16.537109375,-5.9658203125],[16.431445312500017,-5.900195312500003],[16.315234375000017,-5.865625],[13.978515625,-5.857226562500003],[13.346484375000017,-5.863378906250006],[13.184375,-5.85625],[12.452929687500017,-6.00048828125],[12.213671875000017,-5.758691406250009],[12.484570312500011,-5.71875],[12.451464843750017,-5.071484375000011],[12.502734375000017,-5.036914062500003],[12.573535156250017,-4.99658203125],[12.59619140625,-4.978417968750009],[12.8296875,-4.736621093750003],[12.947460937500011,-4.6953125],[13.057324218750011,-4.651074218750011],[13.07275390625,-4.634765625],[13.08740234375,-4.601953125],[13.136621093750023,-4.604296875],[13.414941406250023,-4.83740234375],[13.659570312500023,-4.721484375],[13.717089843750017,-4.454492187500009],[13.94091796875,-4.484667968750003],[14.358300781250023,-4.299414062500006],[14.449804687500006,-4.449511718750003],[14.365429687500011,-4.585546875],[14.410742187500006,-4.83125],[14.707910156250023,-4.881738281250009],[15.990039062500017,-3.766210937500006],[16.217382812500006,-3.0302734375],[16.21533203125,-2.177832031250006],[16.54072265625001,-1.840136718750003],[16.8798828125,-1.225878906250003],[17.752832031250023,-0.549023437500011],[18.072167968750023,2.01328125],[18.49091796875001,2.924414062499991],[18.6103515625,3.478417968749994],[18.594140625000023,4.346240234374989],[19.06855468750001,4.891406249999989],[19.5009765625,5.127490234374989],[19.806542968750023,5.089306640624997],[20.226367187500017,4.829638671874989],[20.55810546875,4.462695312499989],[22.422167968750017,4.134960937499997],[22.864550781250017,4.723876953125],[23.41718750000001,4.663134765624989],[24.31982421875,4.994140625],[25.065234375000017,4.967431640624994],[25.52509765625001,5.31210937499999],[26.822070312500017,5.062402343749994],[27.071875,5.199755859374989],[27.4033203125,5.109179687499989]]]},"properties":{"name":"Dem. Rep. Congo","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[18.6103515625,3.478417968749994],[18.49091796875001,2.924414062499991],[18.072167968750023,2.01328125],[17.752832031250023,-0.549023437500011],[16.8798828125,-1.225878906250003],[16.54072265625001,-1.840136718750003],[16.21533203125,-2.177832031250006],[16.217382812500006,-3.0302734375],[15.990039062500017,-3.766210937500006],[14.707910156250023,-4.881738281250009],[14.410742187500006,-4.83125],[14.365429687500011,-4.585546875],[14.449804687500006,-4.449511718750003],[14.358300781250023,-4.299414062500006],[13.94091796875,-4.484667968750003],[13.717089843750017,-4.454492187500009],[13.659570312500023,-4.721484375],[13.414941406250023,-4.83740234375],[13.136621093750023,-4.604296875],[13.08740234375,-4.601953125],[13.07275390625,-4.634765625],[13.048046875000011,-4.619238281250006],[12.971386718750011,-4.5517578125],[12.881054687500011,-4.445117187500003],[12.84814453125,-4.428906250000011],[12.50146484375,-4.5875],[12.018359375000017,-5.004296875],[11.777539062500011,-4.565820312500009],[11.130175781250017,-3.916308593750003],[11.234472656250006,-3.690820312500009],[11.504296875000023,-3.5203125],[11.685742187500011,-3.68203125],[11.8798828125,-3.665917968750009],[11.934179687500006,-3.318554687500011],[11.715429687500006,-3.176953125000011],[11.760156250000023,-2.983105468750011],[11.537792968750011,-2.83671875],[11.60546875,-2.342578125],[12.064453125,-2.41259765625],[12.446386718750006,-2.329980468750009],[12.43212890625,-1.928906250000011],[12.590429687500006,-1.826855468750011],[12.793554687500006,-1.931835937500011],[12.991992187500017,-2.313378906250009],[13.464941406250006,-2.395410156250009],[13.733789062500023,-2.138476562500003],[13.886914062500011,-2.465429687500006],[13.993847656250011,-2.490625],[14.199804687500006,-2.354199218750011],[14.162890625000017,-2.217578125],[14.383984375000011,-1.890039062500009],[14.47412109375,-0.573437500000011],[13.860058593750011,-0.203320312500011],[13.949609375000023,0.353808593749989],[14.32421875,0.62421875],[14.429882812500011,0.901464843749991],[14.180859375000011,1.370214843749991],[13.851367187500017,1.41875],[13.21630859375,1.2484375],[13.172167968750017,1.78857421875],[13.293554687500006,2.161572265624997],[14.578906250000017,2.199121093749994],[14.902441406250006,2.012304687499991],[15.741601562500023,1.914990234374997],[16.059375,1.676220703124997],[16.183398437500017,2.270068359374989],[16.468554687500017,2.831738281249997],[16.610742187500023,3.50537109375],[17.491601562500023,3.687304687499989],[18.160937500000017,3.499804687499989],[18.474414062500017,3.622998046874997],[18.6103515625,3.478417968749994]]]},"properties":{"name":"Congo","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-71.31972656249997,11.861914062500048],[-71.95810546875,11.66640625],[-72.24848632812501,11.196435546875009],[-72.690087890625,10.835839843749994],[-72.86933593750001,10.49125976562496],[-73.00654296874998,9.789160156250006],[-73.36621093749997,9.194140625000017],[-73.05839843749999,9.259570312500031],[-72.79638671874997,9.10898437499999],[-72.66542968749994,8.62758789062498],[-72.39033203124995,8.287060546874969],[-72.47197265624996,7.524267578124991],[-72.20771484374995,7.37026367187498],[-72.00664062499993,7.032617187500023],[-71.12861328124993,6.98671875],[-70.73715820312503,7.090039062499997],[-70.12919921874999,6.95361328125],[-69.42714843749997,6.123974609374997],[-68.47177734375,6.156542968749974],[-67.85917968749999,6.289892578124963],[-67.48198242187499,6.18027343750002],[-67.47387695312503,5.929980468750003],[-67.82490234374995,5.270458984375026],[-67.85527343750002,4.506884765624989],[-67.66162109375,3.864257812499986],[-67.3111328125,3.41586914062502],[-67.85908203124998,2.793603515624994],[-67.61870117187496,2.793603515624994],[-67.21083984375,2.390136718750043],[-66.87602539062499,1.223046875000037],[-67.082275390625,1.185400390625006],[-67.11923828124998,1.703613281249986],[-67.40043945312499,2.116699218750028],[-67.93623046874998,1.748486328124969],[-68.19379882812495,1.987011718749983],[-68.25595703125,1.845507812500017],[-68.17656249999999,1.719824218749991],[-69.84858398437493,1.708740234375043],[-69.85214843750003,1.05952148437504],[-69.31181640624999,1.050488281249969],[-69.15332031249994,0.65878906250002],[-69.47211914062498,0.72993164062504],[-70.05390624999993,0.578613281250028],[-70.07050781249993,-0.13886718750004],[-69.63398437500001,-0.50927734375],[-69.40024414062498,-1.194921874999977],[-69.66904296875003,-2.667675781249997],[-69.94819335937498,-4.200585937500009],[-69.96591796875003,-4.2359375],[-70.16752929687499,-4.050195312500009],[-70.24028320312496,-3.882714843749994],[-70.2984375,-3.844238281249972],[-70.33950195312502,-3.814355468750009],[-70.73510742187497,-3.781542968749989],[-70.09584960937494,-2.658203125000014],[-70.16474609374995,-2.639843750000011],[-70.24443359375002,-2.606542968749977],[-70.29462890624995,-2.552539062499989],[-70.57587890624995,-2.418261718749989],[-70.64799804687499,-2.405761718750014],[-70.70537109374996,-2.341992187499983],[-70.91455078125003,-2.218554687499974],[-70.96855468750002,-2.206835937499989],[-71.02729492187498,-2.225781250000026],[-71.11337890625003,-2.245410156250031],[-71.19638671874998,-2.313085937499963],[-71.39697265625,-2.334082031249977],[-71.55947265624997,-2.224218749999977],[-71.75253906249995,-2.15273437499998],[-71.80273437499997,-2.166308593749989],[-71.86728515624998,-2.227734374999983],[-71.932470703125,-2.288671874999963],[-71.98427734375,-2.326562499999952],[-72.21845703125001,-2.400488281250006],[-72.94111328124998,-2.394042968750028],[-72.9896484375,-2.33974609374998],[-73.15449218749993,-2.278222656249966],[-73.19697265624995,-1.830273437500011],[-73.49628906249993,-1.69306640625004],[-73.66430664062497,-1.248828124999946],[-73.86318359374997,-1.19667968749998],[-73.92695312500001,-1.125195312499983],[-73.98681640625003,-1.098144531249986],[-74.05439453124995,-1.028613281250031],[-74.18076171875,-0.997753906249955],[-74.24638671874999,-0.970605468750023],[-74.28388671874998,-0.927832031250006],[-74.33442382812498,-0.85087890624996],[-74.41787109375,-0.580664062499977],[-74.46518554687498,-0.517675781250034],[-74.51386718749993,-0.470117187500023],[-74.555078125,-0.429882812499997],[-74.61635742187494,-0.370019531249966],[-74.691650390625,-0.335253906249989],[-74.75537109375003,-0.298632812499989],[-74.78046874999998,-0.24453125],[-74.80175781249997,-0.200097656249994],[-75.13837890624998,-0.050488281249969],[-75.28447265624999,-0.10654296875002],[-75.77666015624999,0.08925781249998],[-76.27060546874998,0.439404296874997],[-76.49462890624997,0.23544921875002],[-77.396337890625,0.393896484374963],[-77.46767578124997,0.636523437500017],[-77.702880859375,0.837841796874997],[-78.1806640625,0.968554687499974],[-78.85966796874996,1.455371093750031],[-79.02543945312499,1.623681640625037],[-78.79296874999994,1.848730468749963],[-78.576904296875,1.773779296874977],[-78.59169921875,2.356640624999969],[-78.41689453125,2.483496093749963],[-78.06665039062494,2.509130859375034],[-77.81357421875,2.716357421874974],[-77.076806640625,3.913281250000026],[-77.26352539062503,3.893212890625023],[-77.27802734374995,4.058496093750023],[-77.35820312499996,3.944726562500037],[-77.40874023437496,4.24775390625004],[-77.52070312499993,4.212792968750023],[-77.35351562499997,4.398291015624977],[-77.28632812499995,4.72172851562496],[-77.373291015625,5.323974609375],[-77.53442382812497,5.537109374999986],[-77.24926757812497,5.780175781250037],[-77.46943359374995,6.176757812500014],[-77.368798828125,6.575585937499994],[-77.90117187499999,7.229345703125048],[-77.76191406249995,7.698828125000034],[-77.53828124999995,7.56625976562502],[-77.19599609374995,7.972460937500003],[-77.47851562499994,8.498437500000037],[-77.37421874999993,8.65830078125002],[-76.85185546875002,8.09047851562498],[-76.924658203125,7.973193359374974],[-76.78657226562493,7.931591796875026],[-76.7720703125,8.310546875000043],[-76.92045898437496,8.573730468750014],[-76.27685546875,8.989111328124991],[-76.02724609374997,9.365771484374989],[-75.63935546874998,9.450439453125014],[-75.680029296875,9.729785156249989],[-75.53857421874997,10.205175781250034],[-75.708349609375,10.143408203124963],[-75.44599609374995,10.610888671874989],[-74.84458007812498,11.109716796875006],[-74.330224609375,10.996679687499991],[-74.51625976562497,10.8625],[-74.40087890625,10.76523437499999],[-74.14291992187503,11.320849609375031],[-73.31337890624997,11.295751953124991],[-72.275,11.88925781250002],[-72.13574218749994,12.188574218749977],[-71.71455078124993,12.41997070312496],[-71.26210937499997,12.335302734375034],[-71.13730468750003,12.04633789062504],[-71.31972656249997,11.861914062500048]]]},"properties":{"name":"Colombia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[43.788671875,-12.307031250000023],[43.85898437500006,-12.368261718749977],[43.66367187500006,-12.342871093749949],[43.63134765624997,-12.247070312499972],[43.788671875,-12.307031250000023]]],[[[44.476367187500074,-12.08154296875],[44.504980468750006,-12.356542968749991],[44.220117187499994,-12.171386718750014],[44.476367187500074,-12.08154296875]]],[[[43.46582031249997,-11.901269531249966],[43.226660156250006,-11.75185546874998],[43.2990234375001,-11.374511718750028],[43.39296875000005,-11.408593749999952],[43.46582031249997,-11.901269531249966]]]]},"properties":{"name":"Comoros","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-24.308251953124966,14.856298828124991],[-24.44052734374992,14.834814453124963],[-24.496875,14.980273437500017],[-24.329492187499937,15.019482421875011],[-24.308251953124966,14.856298828124991]]],[[[-23.18212890624997,15.136767578125017],[-23.210253906250017,15.32353515625006],[-23.119335937499955,15.26840820312502],[-23.18212890624997,15.136767578125017]]],[[[-23.444238281249994,15.00795898437498],[-23.5046875,14.916113281250006],[-23.70537109374999,14.96132812499998],[-23.74809570312499,15.328515625],[-23.444238281249994,15.00795898437498]]],[[[-22.917724609375,16.237255859374955],[-22.69262695312497,16.169042968750006],[-22.710107421874994,16.043359374999966],[-22.95927734374996,16.045117187499983],[-22.917724609375,16.237255859374955]]],[[[-24.08769531249999,16.62250976562501],[-24.03271484374997,16.57202148437503],[-24.243066406250023,16.599414062500017],[-24.32236328124992,16.49311523437504],[-24.398095703124966,16.61840820312497],[-24.08769531249999,16.62250976562501]]],[[[-22.888330078124966,16.659082031249994],[-22.980615234374937,16.700878906249983],[-22.93291015624999,16.84101562500004],[-22.888330078124966,16.659082031249994]]],[[[-24.88706054687495,16.81811523437497],[-25.09306640624999,16.83251953125],[-24.936474609374983,16.92211914062503],[-24.88706054687495,16.81811523437497]]],[[[-25.169824218749994,16.94648437500001],[-25.308300781249955,16.93583984374999],[-25.337109374999955,17.091015624999983],[-25.03466796875,17.176464843749983],[-24.979687499999983,17.09472656250003],[-25.169824218749994,16.94648437500001]]]]},"properties":{"name":"Cape Verde","childNum":8}},{"geometry":{"type":"Polygon","coordinates":[[[-83.6419921875,10.917236328125],[-83.346826171875,10.315380859374997],[-82.77841796874999,9.66953125],[-82.56357421874999,9.57666015625],[-82.56923828125,9.55820312499999],[-82.58652343749999,9.538818359375],[-82.64409179687499,9.505859375],[-82.801025390625,9.591796875],[-82.843994140625,9.57080078125],[-82.86015624999999,9.511474609375],[-82.88896484374999,9.481005859374989],[-82.925048828125,9.469042968749989],[-82.93984375,9.449169921874997],[-82.94033203125,9.060107421874989],[-82.88134765625,9.055859375],[-82.78305664062499,8.990283203124989],[-82.741162109375,8.951708984374989],[-82.72783203124999,8.916064453124989],[-82.91704101562499,8.740332031249991],[-82.855712890625,8.635302734374989],[-82.84477539062499,8.489355468749991],[-82.86162109374999,8.45351562499999],[-83.02734375,8.337744140624991],[-82.879345703125,8.070654296874991],[-83.12333984374999,8.353076171874989],[-83.16240234374999,8.588183593749989],[-83.4697265625,8.706835937499989],[-83.29150390625,8.406005859375],[-83.54375,8.445849609374989],[-83.73408203125,8.614453125],[-83.613720703125,8.804052734374991],[-83.73691406249999,9.150292968749994],[-84.58159179687499,9.568359375],[-84.71494140624999,9.8994140625],[-85.23564453124999,10.242089843749994],[-85.2365234375,10.107373046874997],[-84.88642578125,9.820947265624994],[-85.07705078125,9.60195312499999],[-85.31455078124999,9.8109375],[-85.62485351562499,9.902441406249991],[-85.84965820312499,10.292041015624989],[-85.667236328125,10.745019531249994],[-85.90800781249999,10.897558593749991],[-85.7443359375,11.06210937499999],[-85.5841796875,11.189453125],[-84.9091796875,10.9453125],[-84.6341796875,11.045605468749997],[-83.91928710937499,10.7353515625],[-83.71293945312499,10.785888671875],[-83.6419921875,10.917236328125]]]},"properties":{"name":"Costa Rica","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-82.56176757812503,21.571679687500023],[-82.959619140625,21.441308593750023],[-83.18378906250001,21.59345703125004],[-82.97358398437498,21.592285156250057],[-83.08251953124997,21.791406250000023],[-82.99121093750003,21.942724609375034],[-82.71455078124998,21.890283203125023],[-82.56176757812503,21.571679687500023]]],[[[-77.66899414062493,21.951953125000045],[-77.91855468749998,22.088085937499983],[-77.63369140624994,22.054003906250074],[-77.66899414062493,21.951953125000045]]],[[[-77.87939453125,22.127539062500034],[-78.04165039062502,22.201269531250034],[-77.99921874999998,22.298730468749994],[-77.87939453125,22.127539062500034]]],[[[-81.83745117187499,23.163037109374955],[-81.26235351562497,23.156835937500034],[-81.14462890624998,23.054931640625057],[-80.65014648437494,23.10307617187499],[-80.36489257812502,22.943408203125074],[-79.82026367187498,22.887011718750045],[-79.27568359374999,22.407617187499994],[-78.68647460937493,22.366845703125023],[-77.63681640624995,21.79736328125],[-77.49711914062502,21.78833007812503],[-77.58315429687497,21.889257812499977],[-77.49726562499995,21.871630859375045],[-77.14414062499995,21.643603515625017],[-77.36616210937498,21.612646484375034],[-77.25288085937498,21.483496093750006],[-77.0986328125,21.589013671875023],[-76.86743164062497,21.330419921875006],[-75.72294921874996,21.111035156249983],[-75.59580078125,20.99467773437499],[-75.72456054687493,20.71455078125004],[-74.882568359375,20.65063476562497],[-74.51313476562495,20.384570312500045],[-74.16748046874997,20.292187499999955],[-74.15371093750002,20.168554687500006],[-75.11640624999995,19.901416015625017],[-75.151611328125,20.008349609375045],[-75.29047851562495,19.893115234375017],[-76.15844726562497,19.98974609374997],[-77.715087890625,19.85546874999997],[-77.10380859374999,20.407519531250017],[-77.22958984374995,20.64375],[-78.11635742187497,20.761865234374994],[-78.49077148437493,21.05371093750003],[-78.72768554687497,21.592724609374955],[-79.35742187500003,21.58515625000001],[-80.23134765625,21.872167968750063],[-80.48544921874998,22.1234375],[-81.03564453124997,22.073583984375063],[-81.18549804687495,22.26796875000005],[-81.284375,22.109423828125074],[-81.84941406249993,22.21367187499999],[-82.077734375,22.3876953125],[-81.71035156250002,22.496679687500006],[-81.83881835937498,22.672460937500034],[-82.73803710937497,22.689257812500074],[-83.37963867187503,22.222998046875034],[-83.90073242187495,22.17011718750001],[-84.03095703124993,21.94311523437503],[-84.502587890625,21.776171875000045],[-84.50136718750002,21.930273437499977],[-84.88720703125003,21.856982421875074],[-84.32636718749998,22.074316406250034],[-84.36127929687498,22.37890625],[-84.04492187500003,22.666015625000057],[-83.25781249999997,22.967578125000017],[-81.83745117187499,23.163037109374955]]]]},"properties":{"name":"Cuba","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[-68.75107421874999,12.059765625],[-68.9951171875,12.141845703125],[-69.15888671875,12.380273437499994],[-68.75107421874999,12.059765625]]]},"properties":{"name":"Curaçao","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-81.36953124999997,19.34887695312497],[-81.10712890624995,19.305175781250057],[-81.40478515624994,19.278417968750006],[-81.36953124999997,19.34887695312497]]],[[[-79.823388671875,19.711914062500057],[-79.90620117187501,19.702539062499994],[-79.74228515625,19.757128906250017],[-79.823388671875,19.711914062500057]]]]},"properties":{"name":"Cayman Is.","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[34.004492187500006,35.065234375],[33.47578125000001,35.000341796875],[33.3837890625,35.1626953125],[32.91953125,35.087841796875],[32.71269531250002,35.171044921874994],[32.8798828125,35.180566406249994],[32.94160156250001,35.390429687499996],[33.60761718750001,35.354150390624994],[34.55605468750002,35.662060546875],[33.941992187500006,35.292041015624996],[34.004492187500006,35.065234375]]]},"properties":{"name":"N. Cyprus","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[32.71269531250002,35.171044921874994],[32.91953125,35.087841796875],[33.3837890625,35.1626953125],[33.47578125000001,35.000341796875],[34.004492187500006,35.065234375],[34.05019531250002,34.98837890625],[33.69941406250001,34.969873046874994],[33.007910156250006,34.569580078125],[32.44902343750002,34.729443359375],[32.31718750000002,34.9533203125],[32.30097656250001,35.082958984375],[32.71269531250002,35.171044921874994]]]},"properties":{"name":"Cyprus","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[14.809375,50.858984375],[14.895800781250017,50.861376953124996],[14.98291015625,50.886572265625],[14.99375,51.01435546875],[16.007226562500023,50.611621093749996],[16.2822265625,50.655615234375],[16.419726562500017,50.573632812499994],[16.210351562500023,50.423730468749994],[16.63916015625,50.1021484375],[16.989648437500023,50.2369140625],[16.88007812500001,50.427050781249996],[17.41523437500001,50.254785156249994],[17.702246093750006,50.307177734374996],[17.627050781250006,50.11640625],[17.874804687500017,49.972265625],[18.0283203125,50.03525390625],[18.562402343750023,49.879345703125],[18.83222656250001,49.510791015624996],[18.160937500000017,49.257373046874996],[18.0859375,49.06513671875],[17.75849609375001,48.888134765625],[17.135644531250023,48.841064453125],[16.953125,48.598828125],[16.543554687500006,48.796240234375],[16.057226562500006,48.754785156249994],[15.066796875000023,48.997851562499996],[14.691308593750023,48.59921875],[14.049121093750017,48.602490234375],[13.814746093750017,48.766943359375],[13.769921875000023,48.815966796874996],[13.684960937500023,48.876708984375],[13.547656250000017,48.95966796875],[13.440722656250017,48.95556640625],[13.401171875000017,48.977587890624996],[12.916699218750011,49.33046875],[12.68115234375,49.414501953125],[12.390527343750023,49.739648437499994],[12.5125,49.87744140625],[12.09921875,50.310986328125],[12.134863281250006,50.3109375],[12.1748046875,50.288378906249996],[12.231152343750011,50.244873046875],[12.27734375,50.181445312499996],[12.3056640625,50.205712890624994],[12.549023437500011,50.393408203125],[13.016406250000017,50.490380859374994],[13.18115234375,50.510498046875],[14.369042968750023,50.898730468749996],[14.319726562500023,51.03779296875],[14.545703125000017,50.993945312499996],[14.559667968750006,50.954931640625],[14.59521484375,50.918603515624994],[14.623828125000017,50.91474609375],[14.613574218750017,50.85556640625],[14.658203125,50.8326171875],[14.723339843750011,50.814697265625],[14.766503906250023,50.818310546875],[14.797460937500006,50.842333984374996],[14.809375,50.858984375]]]},"properties":{"name":"Czech Rep.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[14.1982421875,53.919042968750034],[13.92578125,53.879052734374966],[13.827734375,54.12724609374999],[14.1982421875,53.919042968750034]]],[[[13.709179687500011,54.382714843749994],[13.707324218750074,54.281152343749994],[13.190039062500034,54.32563476562501],[13.336816406249994,54.697119140625006],[13.65761718750008,54.55957031249997],[13.709179687500011,54.382714843749994]]],[[[9.739746093750028,54.82553710937498],[10.022167968750011,54.673925781250006],[9.86865234375,54.47246093749999],[10.731542968750006,54.31625976562506],[11.013378906250068,54.37915039062497],[11.008593750000074,54.18115234374997],[10.810742187500068,54.075146484374955],[10.917773437500045,53.99531250000004],[11.39960937500004,53.94462890625002],[12.111328125,54.168310546875006],[12.57539062500004,54.467382812500006],[13.028613281250017,54.411035156249994],[13.448046875000017,54.14086914062503],[13.724218750000063,54.153222656249966],[13.865527343750074,53.85336914062498],[14.258886718750006,53.729638671874994],[14.298730468750051,53.55644531249999],[14.41455078125,53.28349609374996],[14.412304687500011,53.216748046874955],[14.410937500000074,53.19902343749999],[14.368554687500051,53.105566406250034],[14.293164062500068,53.026757812499966],[14.138867187500068,52.93286132812503],[14.128613281250011,52.87822265625002],[14.253710937500017,52.78251953124996],[14.514062500000023,52.645605468750034],[14.619433593750017,52.52851562499998],[14.569726562499994,52.431103515624955],[14.554589843750023,52.35966796874996],[14.573925781250068,52.31416015625001],[14.615625,52.277636718750045],[14.679882812500068,52.25],[14.752539062500034,52.08183593750002],[14.601660156250034,51.832373046875006],[14.738671875000051,51.62714843750004],[14.7109375,51.54492187499997],[14.724707031250063,51.523876953124955],[14.90595703125004,51.463330078124955],[14.935546875000028,51.435351562500045],[14.9638671875,51.095117187499994],[14.917480468750057,51.00874023437498],[14.814257812499989,50.871630859375045],[14.809375,50.858984375000034],[14.797460937500034,50.84233398437502],[14.766503906250051,50.81831054687501],[14.72333984375004,50.81469726562497],[14.658203125,50.832617187500006],[14.613574218750045,50.85556640625006],[14.623828125000017,50.91474609375004],[14.595214843750057,50.91860351562502],[14.559667968750006,50.954931640625034],[14.545703124999989,50.99394531249999],[14.319726562500051,51.037792968749955],[14.36904296875008,50.89873046874996],[13.18115234375,50.510498046875],[13.016406250000017,50.490380859374994],[12.549023437500011,50.393408203125034],[12.3056640625,50.205712890624994],[12.27734375,50.18144531250002],[12.231152343749983,50.24487304687497],[12.174804687500057,50.28837890624996],[12.134863281250006,50.31093750000002],[12.099218750000034,50.31098632812504],[12.089843749999972,50.30175781250003],[12.089746093750051,50.2685546875],[12.294598214285761,50.13608119419641],[12.5125,49.87744140625],[12.390527343750051,49.739648437499994],[12.68115234375,49.41450195312501],[12.91669921875004,49.33046875000002],[13.401171875000074,48.97758789062499],[13.440722656250045,48.95556640625003],[13.547656250000074,48.95966796874998],[13.684960937500051,48.87670898437506],[13.769921875000051,48.81596679687502],[13.814746093750017,48.76694335937498],[13.802929687500011,48.74750976562501],[13.798828124999972,48.62167968750006],[13.785351562499983,48.58745117187502],[13.486621093750074,48.58183593750002],[13.471679687500028,48.57182617187502],[13.459863281250023,48.564550781250034],[13.409375,48.39414062500006],[13.322851562500006,48.33125],[13.215234375000023,48.301904296874994],[12.760351562500063,48.10698242187499],[12.95351562500008,47.890625],[12.897656250000068,47.721875],[13.054101562500051,47.655126953125034],[13.047949218750034,47.57915039062502],[13.031542968750074,47.50800781250001],[13.01435546875004,47.478076171875045],[12.968066406250017,47.475683593750006],[12.878906250000057,47.506445312500034],[12.809375,47.542187499999955],[12.782812500000034,47.56416015624998],[12.781152343750051,47.590429687500006],[12.796191406249989,47.60703125],[12.771386718750023,47.63940429687503],[12.685839843750074,47.66933593750002],[12.209277343750074,47.71826171875003],[12.196875,47.709082031250034],[12.203808593750011,47.64672851562503],[12.185644531250063,47.61953125],[11.041992187500028,47.39311523437496],[10.98085937499999,47.39814453125001],[10.893945312500051,47.470458984375],[10.870605468750028,47.500781250000045],[10.873046874999972,47.52021484375001],[10.741601562500023,47.52412109375001],[10.65869140625,47.547216796875006],[10.482812500000051,47.54179687499996],[10.439453125000028,47.55156249999999],[10.403906250000063,47.41699218750003],[10.369140625,47.366064453125034],[10.18300781250008,47.27880859375003],[10.200292968750063,47.36342773437505],[10.066308593750023,47.39335937500002],[10.064575892857171,47.42369419642856],[10.059863281250045,47.44907226562498],[10.034082031250023,47.47358398437501],[9.971582031249994,47.50532226562498],[9.839160156250017,47.55229492187496],[9.748925781250023,47.575537109375006],[9.524023437500034,47.52421875000002],[8.572656250000023,47.775634765625],[8.435742187500011,47.73134765625002],[8.403417968750006,47.687792968750045],[8.413281250000068,47.66269531249998],[8.451757812500006,47.65180664062498],[8.552343750000063,47.65913085937498],[8.56708984375004,47.65190429687502],[8.57050781250004,47.63779296874998],[8.55947265625008,47.62402343750003],[8.477636718750034,47.61269531250002],[8.454003906249994,47.59619140625003],[7.615625,47.59272460937504],[7.616601562500023,48.15678710937502],[8.134863281250006,48.97358398437498],[7.450585937500051,49.152197265625034],[6.735449218750006,49.16059570312498],[6.344335937500006,49.45273437499998],[6.4873046875,49.798486328124994],[6.204882812500017,49.915136718750034],[6.13818359375,49.97431640625001],[6.10976562500008,50.034375],[6.116503906250045,50.120996093749966],[6.340917968750006,50.451757812500034],[5.993945312500017,50.75043945312504],[6.048437500000034,50.90488281250006],[5.857519531250034,51.030126953125006],[6.129980468750034,51.14741210937501],[6.198828125000034,51.45],[5.948730468750057,51.80268554687501],[6.800390625,51.96738281249998],[6.724511718749994,52.080224609374966],[7.035156250000057,52.38022460937498],[6.748828125000074,52.464013671874994],[6.710742187500045,52.61787109374998],[7.033007812500045,52.65136718749997],[7.197265625000028,53.28227539062499],[7.074316406250034,53.477636718750006],[7.285253906250034,53.68134765625001],[8.00927734375,53.69072265624999],[8.108496093750063,53.46767578125002],[8.245214843750006,53.44531249999997],[8.333886718750051,53.606201171875],[8.495214843750063,53.39423828124998],[8.618945312500045,53.875],[9.20556640625,53.85595703124997],[9.783984375000074,53.554638671874955],[9.31201171875,53.859130859375],[8.92041015625,53.96533203125006],[8.906640625000023,54.26079101562502],[8.625781250000017,54.35395507812501],[8.951855468750011,54.46757812499996],[8.670312500000023,54.903417968750034],[9.739746093750028,54.82553710937498]]],[[[8.307714843750034,54.786962890625034],[8.451464843750017,55.05537109374998],[8.3798828125,54.89985351562501],[8.629589843750068,54.891748046874966],[8.307714843750034,54.786962890625034]]]]},"properties":{"name":"Germany","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[43.24599609375002,11.499804687499989],[42.92275390625002,10.999316406249989],[42.557714843750006,11.080761718749997],[41.79824218750002,10.98046875],[41.79267578125001,11.68603515625],[42.378515625,12.46640625],[42.40859375000002,12.494384765625],[42.45,12.521337890624991],[42.47939453125002,12.513623046874997],[42.703710937500006,12.380322265624997],[42.76748046875002,12.4228515625],[42.825292968750006,12.5693359375],[42.86591796875001,12.622802734375],[42.88330078125,12.621289062499997],[43.00566406250002,12.662304687499997],[43.11669921875,12.70859375],[43.353515625,12.367041015624991],[43.38027343750002,12.091259765624997],[42.64003906250002,11.560107421874989],[42.52177734375002,11.572167968749994],[42.58378906250002,11.496777343749997],[43.04277343750002,11.588476562499991],[43.24599609375002,11.499804687499989]]]},"properties":{"name":"Djibouti","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-61.281689453125,15.2490234375],[-61.37539062499999,15.227294921875],[-61.45810546874999,15.633105468750003],[-61.277246093749994,15.526708984374991],[-61.281689453125,15.2490234375]]]},"properties":{"name":"Dominica","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[11.361425781250006,54.891650390625045],[11.739550781250017,54.80742187500002],[11.765917968750074,54.67944335937506],[11.457421875000023,54.628857421874955],[11.035546875000051,54.77309570312505],[11.058593750000028,54.940576171874966],[11.361425781250006,54.891650390625045]]],[[[12.549218750000051,54.96577148437504],[12.11884765625004,54.91440429687506],[12.274023437500034,55.064111328124994],[12.549218750000051,54.96577148437504]]],[[[10.061230468750068,54.88637695312502],[9.80625,54.90600585937503],[9.78125,55.06904296875001],[10.061230468750068,54.88637695312502]]],[[[10.734082031250011,54.750732421875],[10.621679687500006,54.851416015625006],[10.95107421875008,55.15620117187501],[10.734082031250011,54.750732421875]]],[[[15.087695312500017,55.021875],[14.684179687500063,55.10224609375004],[14.765332031250068,55.296728515625034],[15.132617187500017,55.14453125000003],[15.087695312500017,55.021875]]],[[[10.645117187500006,55.60981445312498],[10.785253906250034,55.13339843749998],[10.44277343750008,55.04877929687498],[9.988769531250028,55.163183593750006],[9.860644531250045,55.515478515625034],[10.645117187500006,55.60981445312498]]],[[[12.665722656250068,55.596533203125006],[12.550878906250034,55.55625],[12.59921875,55.68022460937502],[12.665722656250068,55.596533203125006]]],[[[12.56875,55.785058593749966],[12.215039062500011,55.46650390624998],[12.413085937500028,55.28618164062502],[12.089941406250006,55.18813476562505],[12.050390625000034,54.81533203125002],[11.8623046875,54.77260742187502],[11.653808593750057,55.186914062499966],[11.286328125000068,55.20444335937498],[10.978906250000051,55.721533203125006],[11.322265625000028,55.752539062500006],[11.627734375000074,55.95688476562498],[11.819726562500023,55.69765625000002],[11.86640625000004,55.968164062499966],[12.218945312499983,56.11865234374997],[12.578710937500006,56.06406250000006],[12.56875,55.785058593749966]]],[[[11.052148437500051,57.25253906250006],[10.873828125000045,57.26225585937499],[11.174511718750011,57.322900390624994],[11.052148437500051,57.25253906250006]]],[[[9.739746093750028,54.82553710937498],[8.670312500000023,54.903417968750034],[8.61591796875004,55.41821289062503],[8.132128906250074,55.59980468749998],[8.16396484375008,56.60688476562498],[8.671679687500045,56.49565429687496],[8.88808593750008,56.73505859374998],[9.06708984375004,56.79384765625005],[9.196386718750006,56.70166015625],[9.2548828125,57.01171875000003],[8.992773437499977,57.01611328125003],[8.771972656250028,56.72529296875004],[8.468359375,56.66455078125],[8.284082031250023,56.85234374999999],[8.618554687500051,57.11127929687498],[9.43359375,57.17431640625003],[9.96230468750008,57.580957031249994],[10.609960937500034,57.73691406249998],[10.282714843750057,56.620507812499994],[10.926171875000051,56.44326171875002],[10.753417968750028,56.24199218749999],[10.31875,56.212890625],[10.18300781250008,55.86518554687504],[9.903710937500023,55.84282226562502],[10.02363281250004,55.76142578125004],[9.591113281250017,55.49321289062502],[9.670996093750063,55.26640624999999],[9.453710937500006,55.03955078125006],[9.732324218750023,54.96801757812506],[9.739746093750028,54.82553710937498]]]]},"properties":{"name":"Denmark","childNum":10,"cp":[10.2768332,56.1773879]}},{"geometry":{"type":"Polygon","coordinates":[[[-71.647216796875,19.195947265624994],[-71.746484375,19.285839843749997],[-71.71147460937499,19.486572265625],[-71.75742187499999,19.688183593749997],[-71.779248046875,19.718164062499994],[-71.6673828125,19.8486328125],[-70.95415039062499,19.913964843749994],[-70.19384765625,19.63803710937499],[-69.95683593749999,19.671875],[-69.739404296875,19.29921875],[-69.23247070312499,19.27182617187499],[-69.60595703125,19.206494140624997],[-69.62363281249999,19.117822265624994],[-68.684765625,18.90478515625],[-68.33916015624999,18.611523437499997],[-68.68740234375,18.21494140624999],[-68.9349609375,18.408007812500003],[-69.27451171874999,18.43984375],[-69.770654296875,18.443554687499997],[-70.479931640625,18.21728515625],[-70.644677734375,18.336230468750003],[-71.02783203125,18.273193359375],[-71.43896484375,17.63559570312499],[-71.63173828125,17.773632812499997],[-71.768310546875,18.03916015624999],[-71.76376953124999,18.20395507812499],[-71.737255859375,18.270800781250003],[-71.7619140625,18.34130859375],[-71.87255859375,18.416210937499997],[-71.940380859375,18.512597656249994],[-72.000390625,18.597900390625],[-71.98686523437499,18.6103515625],[-71.86650390624999,18.614160156249994],[-71.74321289062499,18.73291015625],[-71.72705078125,18.80322265625],[-71.733642578125,18.856396484374997],[-71.80712890625,18.987011718749997],[-71.647216796875,19.195947265624994]]]},"properties":{"name":"Dominican Rep.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[8.207617187500006,36.518945312499994],[8.348730468750006,36.36796875],[8.318066406250011,35.654931640624994],[8.31640625,35.403125],[8.35986328125,35.299609375],[8.394238281250011,35.203857421875],[8.312109375,35.084619140624994],[8.27685546875,34.9794921875],[8.24560546875,34.73408203125],[7.513867187500011,34.080517578125],[7.534375,33.717919921874994],[7.877246093750017,33.172119140625],[8.1125,33.055322265624994],[8.333398437500023,32.543603515624994],[9.044042968750006,32.07236328125],[9.160253906250006,31.621337890625],[9.224023437500023,31.373681640624994],[9.51875,30.229394531249994],[9.310253906250011,30.115234375],[9.805273437500006,29.176953125],[9.916015625,27.785693359374996],[9.74755859375,27.330859375],[9.883203125000023,26.630810546874997],[9.491406250000011,26.333740234375],[9.4482421875,26.067138671875],[10.000683593750011,25.332080078125003],[10.255859375,24.591015625],[10.395898437500023,24.485595703125],[10.686132812500006,24.55136718749999],[11.507617187500017,24.314355468749994],[11.967871093750006,23.517871093750003],[7.481738281250017,20.873095703125003],[5.836621093750011,19.479150390624994],[4.227636718750006,19.142773437499997],[3.3564453125,18.986621093750003],[3.119726562500006,19.103173828124994],[3.255859375,19.4109375],[3.130273437500023,19.85019531249999],[1.685449218750023,20.378369140624997],[1.610644531250017,20.555566406249994],[1.165722656250011,20.817431640625003],[1.1455078125,21.102246093749997],[-1.947900390624994,23.124804687500003],[-4.822607421874977,24.99560546875],[-8.683349609375,27.2859375],[-8.683349609375,27.656445312499997],[-8.683349609375,27.900390625],[-8.659912109375,28.718603515625],[-7.485742187499994,29.392236328124994],[-7.427685546874983,29.425],[-7.142431640624977,29.619580078124997],[-6.855566406249977,29.601611328124996],[-6.755126953125,29.583837890625],[-6.635351562499977,29.568798828124997],[-6.597753906249977,29.578955078125],[-6.520556640624989,29.659863281249997],[-6.479736328125,29.820361328124996],[-6.00429687499999,29.83125],[-5.448779296874989,29.956933593749994],[-5.293652343749983,30.058642578124996],[-5.180126953124983,30.166162109374994],[-4.96826171875,30.465380859374996],[-4.778515624999983,30.552392578124994],[-4.529150390624977,30.625537109374996],[-4.322851562499977,30.698876953124994],[-4.148779296874977,30.8095703125],[-3.626904296874983,31.000927734374997],[-3.833398437499994,31.197802734374996],[-3.837109374999983,31.512353515624994],[-3.768164062499977,31.68955078125],[-3.700244140624989,31.700097656249994],[-3.604589843749977,31.686767578125],[-3.439794921874977,31.704541015624997],[-3.017382812499989,31.834277343749996],[-2.988232421874983,31.87421875],[-2.930859374999983,32.042529296874996],[-2.863427734374994,32.07470703125],[-1.275341796874983,32.089013671874994],[-1.16259765625,32.399169921875],[-1.111035156249983,32.552294921874996],[-1.188232421875,32.60849609375],[-1.29638671875,32.675683593749994],[-1.352148437499977,32.703369140625],[-1.45,32.784814453124994],[-1.510009765625,32.87763671875],[-1.550732421874983,33.073583984375],[-1.67919921875,33.318652343749996],[-1.795605468749983,34.751904296875],[-2.131787109374983,34.970849609374994],[-2.190771484374977,35.02978515625],[-2.219628906249994,35.10419921875],[-1.673632812499989,35.18310546875],[-0.426123046874977,35.8615234375],[-0.048242187499994,35.8328125],[0.312207031250011,36.162353515625],[0.9716796875,36.4439453125],[2.593359375,36.60068359375],[2.972851562500011,36.784472656249996],[3.779003906250011,36.89619140625],[4.758105468750017,36.896337890625],[5.29541015625,36.648242187499996],[6.486523437500011,37.085742187499996],[6.927539062500017,36.91943359375],[7.238476562500011,36.968505859375],[7.204296875000011,37.0923828125],[7.910449218750017,36.856347656249994],[8.576562500000023,36.93720703125],[8.601269531250011,36.833935546875],[8.207617187500006,36.518945312499994]]]},"properties":{"name":"Algeria","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-80.131591796875,-2.973144531249957],[-80.27294921875003,-2.995898437499974],[-80.22368164062502,-2.753125],[-80.08076171874995,-2.668847656249966],[-79.90903320312495,-2.725585937499972],[-80.131591796875,-2.973144531249957]]],[[[-90.42392578125,-1.339941406250034],[-90.51953124999994,-1.299121093749974],[-90.47719726562494,-1.22099609374996],[-90.42392578125,-1.339941406250034]]],[[[-89.41889648437498,-0.911035156249966],[-89.60859374999998,-0.888574218750009],[-89.28784179687503,-0.689843750000023],[-89.41889648437498,-0.911035156249966]]],[[[-90.33486328125,-0.771582031249977],[-90.54213867187502,-0.676464843749955],[-90.53168945312493,-0.581445312499966],[-90.26938476562498,-0.48466796874996],[-90.19272460937498,-0.658789062500006],[-90.33486328125,-0.771582031249977]]],[[[-91.42597656249995,-0.460839843749994],[-91.61074218749994,-0.44394531250002],[-91.64667968749998,-0.284472656249946],[-91.46015625000001,-0.255664062500031],[-91.42597656249995,-0.460839843749994]]],[[[-90.57392578124993,-0.333984375],[-90.8677734375,-0.271386718750037],[-90.78037109374998,-0.160449218749989],[-90.57392578124993,-0.333984375]]],[[[-91.27216796874998,0.025146484374986],[-90.799658203125,-0.752050781249991],[-90.90551757812497,-0.94052734375002],[-91.13105468750001,-1.019628906249977],[-91.41904296874998,-0.996679687500006],[-91.49541015624999,-0.860937499999977],[-91.120947265625,-0.559082031250028],[-91.36918945312493,-0.287207031249977],[-91.42885742187502,-0.023388671874955],[-91.59682617187497,0.002099609374994],[-91.36137695312496,0.125830078124977],[-91.27216796874998,0.025146484374986]]],[[[-78.90922851562502,1.252783203124977],[-78.99169921875003,1.293212890625043],[-78.89980468749997,1.359765625],[-78.90922851562502,1.252783203124977]]],[[[-75.28447265624999,-0.10654296875002],[-75.62626953124999,-0.122851562499974],[-75.63203125000001,-0.157617187500037],[-75.56059570312502,-0.200097656249994],[-75.49106445312498,-0.24833984374996],[-75.42470703124997,-0.408886718749983],[-75.259375,-0.59013671874996],[-75.24960937499998,-0.951855468750026],[-75.34819335937499,-0.966796874999957],[-75.38012695312503,-0.94023437499996],[-75.40805664062503,-0.92431640625],[-75.42041015624997,-0.962207031250003],[-75.570556640625,-1.53125],[-76.08979492187501,-2.133105468749974],[-76.6791015625,-2.562597656249991],[-77.860595703125,-2.981640625000011],[-78.240380859375,-3.472558593750009],[-78.345361328125,-3.397363281249966],[-78.64799804687499,-4.248144531250006],[-78.68603515625003,-4.562402343749994],[-78.86152343749998,-4.665039062499943],[-78.90761718749997,-4.714453124999977],[-78.92578125,-4.770703124999983],[-78.91420898437497,-4.818652343749974],[-78.919189453125,-4.858398437499986],[-78.97539062499999,-4.873242187499997],[-78.99526367187497,-4.908007812499974],[-79.03330078124998,-4.96914062499999],[-79.07626953125003,-4.990625],[-79.18666992187497,-4.958203124999983],[-79.26811523437493,-4.957617187499949],[-79.33095703124997,-4.92783203125002],[-79.39941406249997,-4.840039062499983],[-79.45576171874998,-4.766210937499949],[-79.50190429687495,-4.670605468750011],[-79.51616210937493,-4.539160156249963],[-79.57768554687496,-4.50058593750002],[-79.638525390625,-4.454882812500031],[-79.71098632812502,-4.467578124999946],[-79.79726562500002,-4.47636718749996],[-79.8451171875,-4.445898437499977],[-79.962890625,-4.390332031250026],[-80.06352539062499,-4.327539062500023],[-80.13955078125002,-4.296093750000011],[-80.19746093750001,-4.311035156249943],[-80.293359375,-4.416796875],[-80.38349609374998,-4.46367187499996],[-80.424169921875,-4.461425781250028],[-80.47856445312499,-4.430078125000037],[-80.48847656249995,-4.393652343749991],[-80.44384765625003,-4.335839843750023],[-80.35288085937495,-4.208496093750014],[-80.453759765625,-4.205175781249963],[-80.48847656249995,-4.165527343749972],[-80.49345703124999,-4.119140625000014],[-80.510009765625,-4.06953125000004],[-80.49013671874994,-4.010058593750003],[-80.43720703125001,-3.978613281249991],[-80.30327148437499,-4.005078124999969],[-80.26689453124993,-3.948828124999963],[-80.23051757812499,-3.924023437499969],[-80.19414062499996,-3.905859375],[-80.24375,-3.576757812500006],[-80.32465820312498,-3.387890625],[-79.96333007812501,-3.15771484375],[-79.72988281249997,-2.579101562499972],[-79.842138671875,-2.0673828125],[-79.92558593749996,-2.548535156249969],[-80.03017578124994,-2.556738281249949],[-80.00664062499993,-2.353808593750003],[-80.28471679687502,-2.706738281249955],[-80.93217773437493,-2.269140624999977],[-80.76059570312498,-1.934570312500028],[-80.90239257812499,-1.078906249999974],[-80.55390624999998,-0.847949218749989],[-80.45546875,-0.585449218749986],[-80.282373046875,-0.620507812500023],[-80.48227539062503,-0.368261718749963],[-80.046142578125,0.155371093750048],[-80.08828124999997,0.78476562500002],[-78.89965820312503,1.20625],[-78.85966796874996,1.455371093750031],[-78.1806640625,0.968554687499974],[-77.702880859375,0.837841796874997],[-77.46767578124997,0.636523437500017],[-77.396337890625,0.393896484374963],[-76.49462890624997,0.23544921875002],[-76.27060546874998,0.439404296874997],[-75.77666015624999,0.08925781249998],[-75.28447265624999,-0.10654296875002]]]]},"properties":{"name":"Ecuador","childNum":9}},{"geometry":{"type":"Polygon","coordinates":[[[34.24531250000001,31.208300781249996],[34.904296875,29.47734375],[34.736425781250006,29.27060546875],[34.39970703125002,28.01601562499999],[34.22011718750002,27.764306640624994],[33.76025390625,28.04765625],[33.24775390625001,28.567724609375],[32.56572265625002,29.973974609375],[32.35976562500002,29.630664062499996],[32.89824218750002,28.565234375],[33.54707031250001,27.898144531249997],[33.5498046875,27.607373046874997],[33.84931640625001,27.184912109375],[33.959082031250006,26.6490234375],[35.19414062500002,24.475146484375003],[35.78388671875001,23.937792968750003],[35.54082031250002,23.920654296875],[35.50439453125,23.779296875],[35.697851562500006,22.946191406249994],[36.22968750000001,22.628808593749994],[36.87138671875002,21.996728515624994],[31.434472656250023,21.995849609375],[31.486132812500017,22.14780273437499],[31.400292968750023,22.202441406250003],[31.260644531250023,22.00229492187499],[31.092675781250023,21.994873046875],[28.036425781250017,21.995361328125],[24.980273437500017,21.995849609375],[24.980273437500017,25.5888671875],[24.980273437500017,29.181884765625],[24.703222656250006,30.201074218749994],[24.96142578125,30.678515625],[24.85273437500001,31.334814453125],[25.150488281250006,31.654980468749997],[25.382226562500023,31.51279296875],[25.89326171875001,31.620898437499996],[27.248046875,31.377880859374997],[27.5400390625,31.212695312499996],[28.51484375000001,31.050439453124994],[29.072070312500017,30.830273437499997],[29.929785156250006,31.227490234374997],[30.22265625,31.2583984375],[30.395117187500006,31.4576171875],[30.92353515625001,31.566845703124997],[30.56298828125,31.4169921875],[31.001757812500017,31.462792968749994],[31.082910156250023,31.603320312499996],[31.5244140625,31.458251953125],[31.888964843750017,31.54140625],[32.13603515625002,31.341064453125],[31.8921875,31.482470703124996],[31.77109375,31.292578125],[32.10175781250001,31.092822265624996],[32.281835937500006,31.200878906249997],[32.21621093750002,31.29375],[32.60332031250002,31.06875],[33.66650390625,31.130419921874996],[34.19814453125002,31.322607421875],[34.24531250000001,31.208300781249996]]]},"properties":{"name":"Egypt","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[40.141210937500006,15.696142578125034],[40.399023437500006,15.579882812500045],[39.975195312500006,15.612451171875023],[39.94746093750004,15.696142578125034],[40.07050781250004,15.676611328125034],[39.93994140625003,15.744531250000023],[39.9567382812501,15.889404296875057],[40.141210937500006,15.696142578125034]]],[[[40.07646484375002,16.082421875000023],[40.11005859375004,15.985742187500051],[39.99609375000003,16.04267578125001],[40.07646484375002,16.082421875000023]]],[[[40.938574218750006,13.983105468749997],[40.82011718750002,14.111669921874991],[40.22148437500002,14.431152343749972],[39.531835937500006,14.53671875],[39.198046875000074,14.479394531250037],[39.1354492187501,14.581884765625034],[39.07421874999997,14.628222656249974],[39.02382812499999,14.628222656249974],[38.99570312500006,14.586865234374983],[38.81201171875003,14.482324218750009],[38.50439453124997,14.42441406250002],[38.43144531250002,14.428613281249994],[38.221484375000074,14.649658203124986],[38.002539062500006,14.737109375000045],[37.94345703125006,14.810546875],[37.884179687499994,14.852294921874972],[37.82031250000003,14.708496093749986],[37.70839843750005,14.45722656250004],[37.64843750000003,14.32255859375006],[37.571191406249994,14.149072265624966],[37.546777343749994,14.143847656249974],[37.507226562499994,14.156396484375037],[37.257226562499994,14.453759765625051],[37.024511718750006,14.271972656250057],[36.81191406250005,14.315039062500034],[36.67910156250005,14.307568359375026],[36.542382812499994,14.25820312499999],[36.52431640625005,14.256835937499986],[36.492285156250006,14.544335937500023],[36.470800781250006,14.736474609375009],[36.448144531249994,14.940087890625009],[36.42675781249997,15.132080078125043],[36.566015625,15.362109375],[36.9137695312501,16.296191406250045],[36.887792968750006,16.624658203124994],[36.9787109375001,16.800585937500045],[36.9757812500001,16.866552734375006],[36.99521484375006,17.020556640625017],[37.00898437500004,17.058886718750017],[37.06152343749997,17.061279296875057],[37.16953125000006,17.04140625],[37.41103515625005,17.061718749999955],[37.452929687500074,17.108691406250017],[37.51015625,17.28813476562499],[37.54746093750006,17.32412109375005],[37.78242187500004,17.458007812500057],[38.253515625,17.584765625000017],[38.26728515625004,17.616699218750057],[38.28984375000002,17.637011718750017],[38.34736328125004,17.68359375],[38.37373046875004,17.717333984375045],[38.42246093750006,17.823925781249983],[38.60947265625006,18.00507812500004],[39.03447265625002,17.085546875000034],[39.298925781250006,15.921093750000011],[39.78554687499999,15.124853515624991],[39.86376953124997,15.470312500000034],[40.20410156250003,15.014111328124983],[41.17646484375004,14.620312500000054],[41.65820312499997,13.983056640624994],[42.24511718749997,13.587646484374986],[42.39931640625005,13.212597656249969],[42.522851562499994,13.221484375],[42.796191406250074,12.864257812500057],[42.96953125000002,12.808349609375028],[42.99902343750003,12.899511718750048],[43.08291015625005,12.824609374999966],[43.11669921874997,12.708593749999963],[43.00566406250002,12.66230468750004],[42.88330078124997,12.621289062500026],[42.86591796875004,12.622802734374986],[42.82529296875006,12.569335937500014],[42.767480468749994,12.422851562500014],[42.70371093750006,12.380322265625054],[42.479394531249994,12.513623046875026],[42.45,12.521337890625006],[42.40859375,12.494384765625014],[42.37851562500006,12.46640625],[42.28994140625005,12.570214843750009],[42.225,12.661962890624963],[42.13427734374997,12.771435546874969],[41.95214843749997,12.88232421875],[41.85957031250004,13.025878906250028],[41.76503906250005,13.183935546874991],[41.362890625,13.499804687500031],[40.938574218750006,13.983105468749997]]]]},"properties":{"name":"Eritrea","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-17.887939453125,27.809570312500057],[-17.984765625000023,27.646386718750023],[-18.160546874999937,27.76147460937503],[-17.887939453125,27.809570312500057]]],[[[-15.400585937499955,28.147363281250023],[-15.436767578124972,27.810693359375023],[-15.71030273437492,27.784082031250023],[-15.809472656249966,27.994482421874977],[-15.682763671874994,28.15405273437497],[-15.400585937499955,28.147363281250023]]],[[[-17.184667968749977,28.02197265624997],[-17.324902343749955,28.11767578125003],[-17.25859375,28.203173828125045],[-17.103759765624943,28.111132812500017],[-17.184667968749977,28.02197265624997]]],[[[-16.33447265624997,28.37993164062499],[-16.41821289062497,28.15141601562496],[-16.65800781249999,28.007177734374977],[-16.905322265625017,28.33959960937503],[-16.12363281249992,28.57597656249996],[-16.33447265624997,28.37993164062499]]],[[[-14.196777343749943,28.169287109375063],[-14.332617187500006,28.056005859374977],[-14.49179687499992,28.100927734374977],[-14.231982421875017,28.21582031250003],[-14.003369140624983,28.706689453125023],[-13.85722656249996,28.73803710937503],[-13.928027343749989,28.25346679687499],[-14.196777343749943,28.169287109375063]]],[[[-17.83427734374999,28.49321289062496],[-18.00078124999999,28.758251953124955],[-17.928808593749977,28.844580078125063],[-17.7265625,28.724462890625006],[-17.83427734374999,28.49321289062496]]],[[[-13.715966796874966,28.911230468750034],[-13.85991210937496,28.869091796874983],[-13.823632812499966,29.013330078124966],[-13.463574218749955,29.237207031250023],[-13.477929687499966,29.00659179687503],[-13.715966796874966,28.911230468750034]]],[[[1.593945312500068,38.672070312499955],[1.40576171875,38.670996093750006],[1.436328125000017,38.768212890624994],[1.593945312500068,38.672070312499955]]],[[[1.445214843750051,38.91870117187503],[1.223339843750068,38.90385742187502],[1.3486328125,39.080810546875],[1.564453125,39.12104492187504],[1.623632812499977,39.03881835937497],[1.445214843750051,38.91870117187503]]],[[[3.145312500000017,39.79008789062499],[3.461816406250023,39.69775390625003],[3.072851562500006,39.30126953124997],[2.799804687500057,39.38505859374999],[2.700585937500023,39.54213867187502],[2.49951171875,39.47788085937498],[2.37001953125008,39.57207031249999],[3.15869140625,39.97050781249999],[3.145312500000017,39.79008789062499]]],[[[4.293652343750011,39.84184570312499],[3.8671875,39.958740234375],[3.853417968750051,40.06303710937502],[4.22578125000004,40.032373046874966],[4.293652343750011,39.84184570312499]]],[[[-1.794042968749949,43.407324218750006],[-1.410693359374932,43.240087890625034],[-1.460839843749937,43.05175781250006],[-1.300048828124943,43.10097656250002],[-0.586425781249943,42.798974609374966],[0.631640625000045,42.689599609374994],[0.696875,42.84511718750005],[1.428320312499977,42.59589843749998],[1.414843750000074,42.54838867187499],[1.448828124999977,42.43745117187504],[1.534082031250051,42.44169921875002],[1.7060546875,42.50332031250005],[1.859765625000051,42.457080078125045],[1.927929687500068,42.42631835937499],[2.032714843750028,42.353515625],[3.21142578125,42.43115234375],[3.248046875,41.94423828125002],[3.0048828125,41.76743164062506],[2.082617187500063,41.287402343750045],[1.032910156250068,41.06206054687496],[0.714648437500074,40.822851562500006],[0.891113281250057,40.72236328125004],[0.59609375000008,40.614501953125],[-0.327001953124949,39.519873046875006],[-0.204931640624949,39.062597656250034],[0.20156250000008,38.75917968750002],[-0.520800781249989,38.317285156249966],[-0.814648437500011,37.76992187500002],[-0.721582031249966,37.63105468749998],[-1.327539062499937,37.561132812500034],[-1.640966796874949,37.38696289062497],[-2.111523437499983,36.77666015624999],[-4.366845703124994,36.71811523437506],[-4.67412109374996,36.506445312500006],[-5.171484374999949,36.423779296874955],[-5.3609375,36.134912109374994],[-5.62548828125,36.02592773437499],[-6.040673828124937,36.18842773437498],[-6.38413085937492,36.63701171874996],[-6.216796875000028,36.91357421875],[-6.396191406249983,36.831640625],[-6.863769531250028,37.27890625],[-7.406152343749937,37.17944335937497],[-7.44394531249992,37.72827148437497],[-6.957568359374932,38.18789062499999],[-7.106396484374983,38.181005859375006],[-7.343017578124943,38.45742187500002],[-6.997949218749994,39.05644531250002],[-7.53569335937496,39.66157226562501],[-7.117675781249972,39.681689453125045],[-6.975390624999932,39.79838867187502],[-6.896093749999949,40.02182617187506],[-7.032617187499966,40.16791992187498],[-6.8101562499999,40.343115234375034],[-6.928466796874972,41.009130859375006],[-6.2125,41.53203125],[-6.542187499999955,41.672509765624994],[-6.61826171874992,41.9423828125],[-7.147119140625023,41.98115234374998],[-7.40361328124996,41.833691406249955],[-8.152490234374937,41.81196289062498],[-8.266064453124983,42.13740234375001],[-8.777148437500017,41.941064453124994],[-8.887207031249943,42.105273437500045],[-8.690917968749943,42.274169921875],[-8.815820312499966,42.285253906250034],[-8.730029296874989,42.411718750000034],[-8.8115234375,42.64033203124998],[-9.033105468750023,42.593847656250006],[-8.927197265624926,42.79858398437497],[-9.235205078124977,42.97690429687498],[-9.178076171874977,43.17402343749998],[-8.248925781249937,43.43940429687498],[-8.256738281249937,43.57988281249999],[-8.004687499999932,43.69438476562496],[-7.503613281249983,43.73994140625001],[-7.060986328124955,43.55395507812503],[-5.846679687499943,43.645068359375045],[-4.52304687499992,43.41572265625004],[-3.604638671874966,43.51948242187504],[-3.045605468749926,43.37158203125],[-2.875048828125017,43.454443359375006],[-2.337109374999926,43.32802734375002],[-1.794042968749949,43.407324218750006]]]]},"properties":{"name":"Spain","childNum":12,"cp":[-2.9366964,40.3438963]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[22.61738281250004,58.62124023437502],[23.323242187500057,58.45083007812502],[22.730273437500045,58.23066406250001],[22.371679687499977,58.217138671875006],[21.996875,57.93134765624998],[22.187695312500068,58.15434570312502],[21.88212890624999,58.262353515624994],[21.862304687500057,58.497167968750034],[22.61738281250004,58.62124023437502]]],[[[23.343554687500017,58.550341796875045],[23.10908203125004,58.65922851562502],[23.332812500000045,58.648583984374994],[23.343554687500017,58.550341796875045]]],[[[22.923730468750023,58.826904296875],[22.54218750000001,58.68999023437499],[22.411035156250023,58.863378906250034],[22.05625,58.94360351562506],[22.6494140625,59.08710937499998],[22.90986328125004,58.99121093749997],[22.923730468750023,58.826904296875]]],[[[28.0125,59.484277343749966],[28.15107421875004,59.374414062499966],[27.434179687500006,58.787255859374994],[27.502441406250057,58.221337890624994],[27.778515625000068,57.87070312500006],[27.542089843750063,57.799414062500006],[27.4,57.66679687499999],[27.35195312500005,57.528125],[26.96601562500001,57.60913085937506],[26.532617187499994,57.53100585937503],[26.29804687500001,57.60107421875],[25.66015625,57.920166015625],[25.27265625000001,58.009375],[25.11103515625004,58.06342773437498],[24.45888671875005,57.907861328124994],[24.3625,57.86616210937501],[24.322558593750074,57.87060546875003],[24.529101562500045,58.35424804687497],[24.114843750000034,58.26611328125006],[23.767578125000057,58.36083984374997],[23.50927734375003,58.65854492187498],[23.680761718750063,58.787158203125074],[23.43203125,58.920654296875],[23.494433593750017,59.19565429687498],[24.083398437500023,59.29189453125005],[24.38037109375003,59.47265625],[25.44375,59.52114257812502],[25.50927734374997,59.63901367187506],[26.974707031250006,59.450634765624955],[28.0125,59.484277343749966]]]]},"properties":{"name":"Estonia","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[38.43144531250002,14.428613281249994],[38.50439453125,14.424414062499991],[38.81201171875,14.482324218749994],[38.995703125,14.586865234374997],[39.02382812500002,14.628222656250003],[39.07421875,14.628222656250003],[39.13544921875001,14.581884765624991],[39.19804687500002,14.479394531249994],[39.531835937500006,14.53671875],[40.22148437500002,14.43115234375],[40.82011718750002,14.111669921874991],[40.938574218750006,13.983105468749997],[41.362890625,13.499804687500003],[41.76503906250002,13.183935546874991],[41.85957031250001,13.02587890625],[41.9521484375,12.88232421875],[42.13427734375,12.771435546874997],[42.225,12.661962890624991],[42.28994140625002,12.570214843749994],[42.378515625,12.46640625],[41.79267578125001,11.68603515625],[41.79824218750002,10.98046875],[42.557714843750006,11.080761718749997],[42.92275390625002,10.999316406249989],[42.65644531250001,10.6],[42.84160156250002,10.203076171874997],[43.181640625,9.879980468749991],[43.482519531250006,9.379492187499991],[43.98378906250002,9.008837890624989],[46.97822265625001,7.9970703125],[47.97822265625001,7.9970703125],[44.940527343750006,4.912011718749994],[43.988867187500006,4.950537109374991],[43.58349609375,4.85498046875],[43.12568359375001,4.644482421874997],[42.85664062500001,4.32421875],[42.02412109375001,4.137939453125],[41.91533203125002,4.031298828124989],[41.88398437500001,3.977734375],[41.73769531250002,3.979052734374989],[41.48193359375,3.96328125],[41.37246093750002,3.946191406249994],[41.22089843750001,3.943554687499997],[41.02080078125002,4.057470703124991],[40.765234375,4.27304687499999],[39.84218750000002,3.851464843749994],[39.79033203125002,3.754248046874991],[39.65751953125002,3.577832031249997],[39.49443359375002,3.456103515624989],[38.608007812500006,3.60009765625],[38.45156250000002,3.604833984374991],[38.22529296875001,3.618994140624991],[38.08613281250001,3.64882812499999],[37.15458984375002,4.254541015624994],[36.90556640625002,4.411474609374991],[36.02197265625,4.468115234374991],[35.76308593750002,4.808007812499994],[35.75615234375002,4.950488281249989],[35.779296875,5.105566406249991],[35.80029296875,5.156933593749997],[35.74501953125002,5.343994140625],[35.325292968750006,5.364892578124994],[35.2646484375,5.412060546874997],[35.26386718750001,5.457910156249994],[35.26835937500002,5.492285156249991],[34.98359375000001,5.858300781249994],[34.71064453125001,6.660302734374994],[34.06425781250002,7.225732421874994],[33.902441406250006,7.509521484375],[32.99892578125002,7.899511718749991],[33.28105468750002,8.437255859375],[33.95332031250001,8.443505859374994],[34.07275390625,8.545263671874991],[34.078125,9.461523437499991],[34.31123046875001,10.190869140624997],[34.34394531250001,10.658642578124997],[34.571875,10.880175781249989],[34.77128906250002,10.746191406249991],[34.93144531250002,10.864794921874989],[35.1123046875,11.816552734374994],[35.67021484375002,12.623730468749997],[36.12519531250001,12.75703125],[36.52431640625002,14.2568359375],[36.54238281250002,14.25820312499999],[36.67910156250002,14.307568359374997],[36.81191406250002,14.315039062499991],[37.024511718750006,14.27197265625],[37.25722656250002,14.453759765624994],[37.50722656250002,14.156396484374994],[37.54677734375002,14.143847656250003],[37.57119140625002,14.149072265624994],[37.6484375,14.322558593750003],[37.70839843750002,14.457226562499997],[37.8203125,14.70849609375],[37.88417968750002,14.852294921875],[37.943457031250006,14.810546875],[38.002539062500006,14.737109375],[38.22148437500002,14.649658203125],[38.43144531250002,14.428613281249994]]]},"properties":{"name":"Ethiopia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[22.17509765624999,60.370751953124994],[22.41552734375003,60.30336914062505],[22.36054687500004,60.165576171875045],[22.07714843750003,60.286328124999955],[22.17509765624999,60.370751953124994]]],[[[21.450878906250068,60.529589843750045],[21.3,60.47978515625002],[21.224707031250006,60.62060546875003],[21.450878906250068,60.529589843750045]]],[[[21.2177734375,63.241308593750034],[21.415625,63.19736328125006],[21.25341796875,63.152001953124966],[21.08388671875008,63.277539062499955],[21.2177734375,63.241308593750034]]],[[[24.848242187500034,64.99101562499999],[24.576562500000023,65.04287109375],[24.970605468750023,65.05532226562502],[24.848242187500034,64.99101562499999]]],[[[28.96582031250003,69.02197265625],[28.414062500000057,68.90415039062506],[28.77285156250005,68.84003906249995],[28.470703125000057,68.48837890625],[28.685156250000034,68.189794921875],[29.343847656250006,68.06186523437506],[29.988085937500017,67.66826171874999],[29.066210937500045,66.89174804687497],[30.102734375000097,65.72626953125004],[29.715917968750063,65.62456054687502],[29.608007812500006,65.248681640625],[29.826953125000017,65.14506835937502],[29.60419921875004,64.968408203125],[30.072851562500063,64.76503906250005],[30.04189453125005,64.44335937499997],[30.513769531250006,64.2],[30.50390625000003,64.02060546875],[29.991503906250074,63.73515625000002],[31.180859375000097,63.208300781250074],[31.533984375000017,62.885400390624994],[31.18671875000004,62.48139648437504],[29.69013671875004,61.54609375000001],[27.797656250000074,60.53613281250003],[26.53466796874997,60.412890625000074],[26.56933593750003,60.62456054687502],[26.377734375000074,60.42407226562503],[25.955957031250023,60.474218750000034],[26.03583984375004,60.34150390625001],[25.75800781250004,60.26752929687504],[25.65644531250004,60.33320312499998],[24.44560546874999,60.021289062500045],[23.46357421875004,59.986230468749994],[23.021289062500074,59.81601562500006],[23.19843750000001,60.02182617187498],[22.911718750000063,60.20971679687497],[22.749804687500017,60.057275390624994],[22.462695312500045,60.029199218749966],[22.5849609375,60.380566406249955],[21.436035156250057,60.596386718749955],[21.605957031250057,61.59155273437503],[21.255957031250063,61.98964843750005],[21.143847656250045,62.73999023437506],[21.650976562500063,63.039306640625],[21.545117187499983,63.204296874999955],[22.31972656250005,63.310449218749994],[22.532324218750034,63.647851562499994],[23.598925781250074,64.04091796874997],[24.557910156250045,64.801025390625],[25.288183593750063,64.8603515625],[25.34785156250004,65.47924804687497],[24.674902343750006,65.67070312499999],[24.628027343750034,65.85917968750002],[24.15546875000004,65.80527343750006],[23.700292968750034,66.25263671874998],[23.988574218750045,66.81054687500003],[23.64150390625005,67.12939453124997],[23.733593750000068,67.42290039062499],[23.454882812500045,67.46025390625007],[23.63886718750004,67.95439453125002],[22.854101562500034,68.36733398437502],[21.99746093750005,68.52060546874998],[20.622167968750006,69.036865234375],[21.065722656250017,69.04174804687503],[21.06611328125001,69.21411132812497],[21.59375,69.273583984375],[22.410937500000074,68.719873046875],[23.324023437500017,68.64897460937502],[23.85400390625,68.80590820312503],[24.94140625000003,68.59326171875006],[25.748339843750017,68.99013671875],[26.07246093750004,69.69155273437497],[26.525390625000057,69.91503906250003],[27.127539062500063,69.90649414062497],[27.747851562500045,70.06484375],[29.14160156250003,69.67143554687505],[29.33339843750005,69.47299804687503],[28.846289062500006,69.17690429687502],[28.96582031250003,69.02197265625]]]]},"properties":{"name":"Finland","childNum":5}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[178.48789062500018,-18.97412109375],[177.95869140624998,-19.121582031250014],[178.33427734375013,-18.93447265625001],[178.48789062500018,-18.97412109375]]],[[[179.34931640625015,-18.10234375000003],[179.25351562500018,-18.030566406249974],[179.30644531250013,-17.944042968750026],[179.34931640625015,-18.10234375000003]]],[[[178.28017578124994,-17.37197265625001],[178.59160156249996,-17.651464843750006],[178.66767578125004,-18.080859375],[177.95546875000005,-18.264062500000023],[177.32138671875,-18.077539062500037],[177.26396484375007,-17.86347656250004],[177.5044921875,-17.539550781250043],[177.81796875000012,-17.38847656249999],[178.28017578124994,-17.37197265625001]]],[[[180,-16.96308593750001],[179.89697265625003,-16.96406250000004],[180,-16.785742187500034],[180,-16.96308593750001]]],[[[-179.97490234374996,-16.92480468750003],[-180,-16.96298828124999],[-180,-16.907812500000034],[-180,-16.82431640624999],[-180,-16.78554687499999],[-179.86098632812502,-16.68828124999999],[-179.97490234374996,-16.92480468750003]]],[[[-179.92944335937503,-16.502832031250037],[-179.999951171875,-16.540039062499986],[-179.900927734375,-16.431542968749994],[-179.92944335937503,-16.502832031250037]]],[[[179.99921875000004,-16.168554687499977],[179.56416015625004,-16.636914062499997],[179.56816406249996,-16.747460937499966],[179.93037109375004,-16.51943359375005],[179.9279296875001,-16.74443359374996],[179.41933593750005,-16.80654296875001],[179.20234375000004,-16.71269531249999],[179.00683593750003,-16.90019531249999],[178.70664062500018,-16.97617187500002],[178.4974609375,-16.78789062500003],[178.58359375000012,-16.621875],[178.80507812499994,-16.631445312500034],[179.55175781250003,-16.249902343750023],[180,-16.15292968749999],[179.99921875000004,-16.168554687499977]]]]},"properties":{"name":"Fiji","childNum":7}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-61.01875,-51.7857421875],[-60.87597656250003,-51.79423828125004],[-60.94755859374996,-51.94628906250002],[-61.14501953125003,-51.83945312500001],[-61.01875,-51.7857421875]]],[[[-60.28623046874995,-51.461914062500014],[-59.38759765625002,-51.35996093750003],[-59.26806640625,-51.42753906250003],[-59.92138671874997,-51.969531250000045],[-60.246337890625,-51.98642578125003],[-60.35346679687498,-52.13994140625004],[-60.686376953125034,-52.18837890624996],[-60.96142578125003,-52.05732421874999],[-60.23847656249998,-51.771972656250036],[-60.58251953125,-51.71269531250004],[-60.24516601562493,-51.638867187500004],[-60.56845703124998,-51.357812499999945],[-60.28623046874995,-51.461914062500014]]],[[[-60.11171875000002,-51.39589843749998],[-60.275341796874955,-51.28056640625002],[-60.06982421875,-51.307910156249996],[-60.11171875000002,-51.39589843749998]]],[[[-58.85019531249995,-51.26992187499998],[-58.42583007812502,-51.32421875000003],[-58.508935546874994,-51.48359375],[-58.271582031250034,-51.57470703124999],[-58.25922851562501,-51.417089843750034],[-57.976513671874955,-51.384375],[-57.80849609375002,-51.51796875],[-57.96044921874997,-51.58320312500003],[-57.79179687499999,-51.63613281249998],[-58.68349609375002,-51.93623046875001],[-58.65278320312498,-52.09921875],[-59.19584960937496,-52.01767578125],[-59.06801757812502,-52.17304687500003],[-59.341503906249955,-52.19599609375],[-59.395654296874966,-52.308007812499994],[-59.64873046875002,-52.134375],[-59.57080078124994,-51.92539062500003],[-59.05952148437498,-51.685449218749994],[-59.09663085937498,-51.49140624999998],[-58.85019531249995,-51.26992187499998]]]]},"properties":{"name":"Falkland Is.","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[55.79736328125003,-21.33935546875003],[55.36269531250005,-21.27363281250004],[55.23281250000005,-21.05839843749999],[55.311328125000074,-20.90410156249999],[55.661914062500074,-20.90625],[55.8390625000001,-21.13857421874998],[55.79736328125003,-21.33935546875003]]],[[[45.180273437500006,-12.97675781250004],[45.069433593750006,-12.895605468750034],[45.09238281250006,-12.653027343749997],[45.22314453124997,-12.752148437500026],[45.180273437500006,-12.97675781250004]]],[[[-51.65253906249998,4.061279296874972],[-52.327880859375,3.18173828125002],[-52.58300781250003,2.528906249999977],[-52.90346679687502,2.211523437499977],[-53.76777343749998,2.354833984375048],[-54.13007812499998,2.121044921875026],[-54.43310546875,2.207519531250057],[-54.51508789062498,2.245458984374963],[-54.55048828125001,2.293066406249991],[-54.59194335937502,2.313769531250031],[-54.61625976562499,2.326757812500006],[-54.60473632812497,2.335791015624991],[-54.56840820312502,2.342578125000031],[-54.53593749999999,2.343310546875003],[-54.48554687500001,2.416113281250006],[-54.402001953124966,2.46152343750002],[-54.25673828125002,2.713720703124977],[-54.19550781249998,2.817871093750057],[-54.17070312499999,2.993603515624969],[-54.203125,3.138183593750028],[-54.18803710937499,3.178759765625031],[-54.063183593749955,3.353320312499989],[-54.00957031249993,3.448535156250017],[-54.03422851562499,3.62939453125],[-54.350732421874994,4.054101562500023],[-54.47968749999998,4.836523437499991],[-53.91992187499997,5.768994140624983],[-52.899316406249966,5.425048828124986],[-52.29052734375003,4.942187500000031],[-52.324609374999966,4.770898437500037],[-52.21997070312494,4.862792968750014],[-52.05810546875003,4.717382812499963],[-52.00292968749997,4.352294921875014],[-51.82753906250002,4.635693359375026],[-51.65253906249998,4.061279296874972]]],[[[-60.826269531250006,14.494482421874991],[-61.063720703125,14.467089843750017],[-61.01132812499998,14.601904296875034],[-61.21333007812501,14.848583984375011],[-60.927148437499966,14.755175781249989],[-60.826269531250006,14.494482421874991]]],[[[-61.23046875000003,15.889941406250074],[-61.310742187499955,15.894677734374966],[-61.25,16.006298828124983],[-61.23046875000003,15.889941406250074]]],[[[-61.58955078125001,16.006933593750006],[-61.759423828124966,16.062060546875045],[-61.74804687499997,16.355273437500017],[-61.55234374999998,16.270898437499966],[-61.58955078125001,16.006933593750006]]],[[[-61.3271484375,16.230419921874983],[-61.522167968749955,16.22802734375003],[-61.47119140624994,16.506640625000045],[-61.17260742187497,16.25610351562497],[-61.3271484375,16.230419921874983]]],[[[9.480371093750023,42.80541992187503],[9.550683593750051,42.12973632812506],[9.186132812500034,41.38491210937502],[8.80751953125008,41.58837890625],[8.886816406249977,41.70068359375003],[8.621875,41.93071289062502],[8.700976562500045,42.09560546875002],[8.565625,42.35771484374996],[8.81484375000008,42.60791015625003],[9.313378906250023,42.71318359374999],[9.363183593750051,43.01738281249996],[9.480371093750023,42.80541992187503]]],[[[-1.17832031249992,45.904052734375],[-1.213574218750011,45.81660156250004],[-1.388671874999972,46.05039062500006],[-1.17832031249992,45.904052734375]]],[[[5.789746093749983,49.53828125000001],[5.823437500000011,49.50507812499998],[5.9013671875,49.48974609374997],[5.928906250000011,49.47753906249997],[5.959472656250028,49.45463867187502],[6.01142578125004,49.44545898437502],[6.074121093750023,49.45463867187502],[6.119921875000017,49.485205078125034],[6.181054687500051,49.498925781249966],[6.344335937500006,49.45273437499998],[6.735449218750006,49.16059570312498],[7.450585937500051,49.152197265625034],[8.134863281250006,48.97358398437498],[7.616601562500023,48.15678710937502],[7.615625,47.59272460937504],[7.343164062499994,47.43310546875003],[7.136035156249989,47.489843750000034],[6.968359375000034,47.453222656250034],[6.900390625000028,47.39423828125001],[7.000585937500034,47.339453125000034],[7.000585937500034,47.32250976562506],[6.978515625000057,47.30205078124996],[6.95205078125008,47.26718750000006],[6.820703125000051,47.163183593750006],[6.688085937500034,47.05825195312505],[6.66689453125008,47.026513671874966],[6.624804687500017,47.00434570312498],[6.45625,46.948339843750034],[6.438646763392874,46.774418247767855],[6.129687500000045,46.56699218750006],[6.118111049107182,46.447459542410726],[6.095898437500011,46.279394531250006],[5.970019531250045,46.214697265625034],[5.971484375000074,46.151220703125006],[6.006640625000045,46.14233398437506],[6.086621093750068,46.14702148437502],[6.19941406250004,46.19306640624998],[6.234667968750045,46.332617187500006],[6.321875,46.39370117187502],[6.428906250000011,46.43051757812506],[6.578222656250034,46.437353515625034],[6.758105468750017,46.41577148437497],[6.772070312500006,46.16513671874998],[6.897265625000017,46.05175781249997],[6.953710937500063,46.017138671875045],[7.00390625,45.95883789062506],[7.021093750000034,45.92578124999997],[6.790917968750023,45.740869140624966],[7.146386718750051,45.381738281249994],[7.07832031250004,45.23994140624998],[6.634765625000028,45.06816406249996],[6.99267578125,44.82729492187502],[6.900195312499989,44.33574218749996],[7.318554687500068,44.13798828125002],[7.637207031250057,44.16484375],[7.4931640625,43.767138671875045],[6.570214843750023,43.199072265625034],[6.115917968750011,43.07236328124998],[5.406542968750074,43.228515625],[5.05976562500004,43.44453125000004],[4.712109375000011,43.373291015625],[3.910839843750011,43.563085937500034],[3.258886718750063,43.193212890625006],[3.051757812500057,42.915136718750006],[3.21142578125,42.43115234375],[2.032714843750028,42.353515625],[1.927929687500068,42.42631835937499],[1.859765625000051,42.457080078125045],[1.7060546875,42.50332031250005],[1.709863281250051,42.604443359374955],[1.568164062500045,42.63500976562506],[1.501367187500023,42.64272460937502],[1.428320312499977,42.59589843749998],[0.696875,42.84511718750005],[0.631640625000045,42.689599609374994],[-0.586425781249943,42.798974609374966],[-1.300048828124943,43.10097656250002],[-1.460839843749937,43.05175781250006],[-1.410693359374932,43.240087890625034],[-1.794042968749949,43.407324218750006],[-1.484863281249943,43.56376953124999],[-1.245507812499937,44.55986328124999],[-1.07695312499996,44.68984375],[-1.152880859374989,44.764013671875006],[-1.245214843749977,44.66669921874998],[-1.081005859374983,45.532421874999955],[-0.548486328124966,45.00058593750006],[-0.790771484375028,45.46801757812497],[-1.195996093749983,45.714453125],[-1.03173828125,45.741064453125006],[-1.14628906249996,46.311376953125034],[-1.786523437499937,46.51484375000001],[-2.059375,46.81030273437497],[-2.01889648437492,47.03764648437502],[-2.197070312499989,47.16293945312506],[-2.027587890625028,47.27358398437502],[-1.742529296874949,47.21596679687502],[-1.97539062499996,47.31069335937505],[-2.503125,47.31206054687496],[-2.427685546874983,47.47089843749998],[-2.770312499999989,47.513867187499955],[-2.787207031249949,47.62553710937496],[-4.312109374999949,47.82290039062502],[-4.678808593749949,48.03950195312501],[-4.32944335937492,48.169970703125045],[-4.577148437499943,48.2900390625],[-4.241406249999926,48.30366210937501],[-4.719384765624966,48.363134765625034],[-4.7625,48.45024414062502],[-4.531201171874983,48.61997070312506],[-3.231445312499972,48.84082031250003],[-2.692333984374983,48.53681640624998],[-2.446191406249937,48.64829101562506],[-2.00371093749996,48.58208007812499],[-1.905712890624955,48.69711914062506],[-1.376464843749972,48.65258789062503],[-1.565478515624932,48.805517578125034],[-1.583105468749977,49.20239257812506],[-1.856445312499972,49.68378906249998],[-1.258642578124949,49.68017578125006],[-1.138525390624977,49.38789062500001],[-0.163476562499937,49.296777343749994],[0.41689453125008,49.448388671874994],[0.129394531250028,49.508447265624966],[0.186718749999983,49.703027343749994],[1.245507812500051,49.99824218750001],[1.5927734375,50.25219726562506],[1.672265625000023,50.885009765625],[2.52490234375,51.097119140624955],[2.759375,50.750634765624994],[3.10683593750008,50.779443359374994],[3.27333984375008,50.53154296875002],[3.595410156250068,50.47734374999999],[3.689355468750023,50.30605468750002],[4.174609375000017,50.24648437500005],[4.149316406250023,49.971582031249994],[4.545019531250063,49.96025390624999],[4.818652343750045,50.153173828125034],[4.867578125000051,49.78813476562502],[5.50732421875,49.51088867187502],[5.789746093749983,49.53828125000001]]]]},"properties":{"name":"France","childNum":10,"cp":[2.8719426,46.8222422]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-7.186865234374949,62.139306640624966],[-7.116796874999977,62.046826171874955],[-7.379101562499926,62.07480468749998],[-7.186865234374949,62.139306640624966]]],[[[-6.631054687499955,62.22788085937498],[-6.655810546874932,62.09360351562498],[-6.840527343749983,62.119287109374994],[-6.725195312499949,61.95146484374999],[-7.17216796874996,62.28559570312501],[-6.631054687499955,62.22788085937498]]],[[[-6.406054687499932,62.258642578125034],[-6.544140624999926,62.20561523437499],[-6.554589843749994,62.35566406250001],[-6.406054687499932,62.258642578125034]]]]},"properties":{"name":"Faeroe Is.","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[158.31484375,6.813671875],[158.18339843750002,6.801269531250057],[158.13476562499997,6.944824218749986],[158.29462890625004,6.951074218750023],[158.31484375,6.813671875]]],[[[138.14267578125006,9.50068359375004],[138.06708984375004,9.419042968750006],[138.18583984375007,9.593310546874989],[138.14267578125006,9.50068359375004]]]]},"properties":{"name":"Micronesia","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[13.293554687500006,2.161572265624997],[13.172167968750017,1.78857421875],[13.21630859375,1.2484375],[13.851367187500017,1.41875],[14.180859375000011,1.370214843749991],[14.429882812500011,0.901464843749991],[14.32421875,0.62421875],[13.949609375000023,0.353808593749989],[13.860058593750011,-0.203320312500011],[14.47412109375,-0.573437500000011],[14.383984375000011,-1.890039062500009],[14.162890625000017,-2.217578125],[14.199804687500006,-2.354199218750011],[13.993847656250011,-2.490625],[13.886914062500011,-2.465429687500006],[13.733789062500023,-2.138476562500003],[13.464941406250006,-2.395410156250009],[12.991992187500017,-2.313378906250009],[12.793554687500006,-1.931835937500011],[12.590429687500006,-1.826855468750011],[12.43212890625,-1.928906250000011],[12.446386718750006,-2.329980468750009],[12.064453125,-2.41259765625],[11.60546875,-2.342578125],[11.537792968750011,-2.83671875],[11.760156250000023,-2.983105468750011],[11.715429687500006,-3.176953125000011],[11.934179687500006,-3.318554687500011],[11.8798828125,-3.665917968750009],[11.685742187500011,-3.68203125],[11.504296875000023,-3.5203125],[11.234472656250006,-3.690820312500009],[11.130175781250017,-3.916308593750003],[10.34765625,-3.013085937500009],[9.722070312500023,-2.467578125],[10.06201171875,-2.549902343750006],[9.624609375,-2.367089843750009],[9.298925781250006,-1.903027343750011],[9.483203125000017,-1.894628906250006],[9.265625,-1.825097656250009],[9.036328125000011,-1.308886718750003],[9.31884765625,-1.632031250000011],[9.501074218750006,-1.55517578125],[9.295800781250023,-1.515234375],[9.3466796875,-1.325],[9.203808593750011,-1.382421875],[9.064648437500011,-1.29833984375],[8.703125,-0.591015625000011],[8.946386718750006,-0.688769531250003],[9.296679687500017,-0.351269531250011],[9.354882812500023,0.343603515624991],[9.468164062500023,0.15976562499999],[9.796777343750023,0.044238281249989],[10.00146484375,0.194970703124994],[9.546484375,0.295947265624989],[9.324804687500006,0.552099609374991],[9.495312500000011,0.664843749999989],[9.617968750000017,0.576513671874991],[9.5908203125,1.031982421875],[9.636132812500023,1.046679687499989],[9.676464843750011,1.07470703125],[9.70458984375,1.079980468749994],[9.760546875000017,1.07470703125],[9.788671875,1.025683593749989],[9.803906250000011,0.998730468749997],[9.90673828125,0.960107421874994],[11.335351562500023,0.999707031249997],[11.332324218750017,1.528369140624989],[11.328710937500006,2.167431640624997],[11.348437500000017,2.299707031249994],[11.558984375000023,2.302197265624997],[13.2203125,2.256445312499991],[13.293554687500006,2.161572265624997]]]},"properties":{"name":"Gabon","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-1.065576171874966,50.69023437500002],[-1.25146484375,50.58881835937498],[-1.563427734374955,50.666113281250006],[-1.31279296874996,50.77348632812502],[-1.065576171874966,50.69023437500002]]],[[[-4.196777343749972,53.321435546874966],[-4.04936523437496,53.30576171874998],[-4.373046875,53.13417968750002],[-4.56787109375,53.386474609375],[-4.315087890625023,53.41723632812503],[-4.196777343749972,53.321435546874966]]],[[[-6.218017578125,54.08872070312506],[-6.649804687499937,54.05864257812496],[-7.007714843749937,54.40668945312501],[-7.324511718750017,54.13344726562502],[-7.606542968750006,54.14384765625002],[-8.118261718749977,54.41425781250004],[-7.75439453125,54.59492187499998],[-7.910595703124955,54.698339843750006],[-7.55039062499992,54.767968749999966],[-7.218652343749937,55.09199218749998],[-6.475048828124955,55.24101562499999],[-6.035791015624994,55.14453125000003],[-5.71684570312496,54.817480468750034],[-5.878613281249955,54.64130859375001],[-5.582519531249943,54.66342773437498],[-5.470410156249926,54.500195312499955],[-5.671093749999955,54.54975585937501],[-5.60678710937492,54.272558593750034],[-6.019042968749972,54.05126953124997],[-6.218017578125,54.08872070312506]]],[[[-5.105419921875011,55.448828125000034],[-5.331494140624955,55.481054687500034],[-5.318115234375,55.709179687499955],[-5.105419921875011,55.448828125000034]]],[[[-6.128906249999972,55.93056640625002],[-6.055322265624994,55.69531249999997],[-6.305078124999966,55.60693359375],[-6.286425781249989,55.77250976562499],[-6.491357421874994,55.697314453125045],[-6.462841796874955,55.808251953124994],[-6.128906249999972,55.93056640625002]]],[[[-5.970068359374949,55.814550781250034],[-6.071972656250011,55.893115234375045],[-5.72514648437496,56.118554687499966],[-5.970068359374949,55.814550781250034]]],[[[-5.77788085937496,56.344335937500034],[-6.313427734374983,56.29365234375001],[-6.138867187499955,56.490625],[-6.286328124999983,56.61186523437502],[-6.102734374999955,56.645654296874966],[-5.760839843749949,56.49067382812501],[-5.77788085937496,56.344335937500034]]],[[[-7.249853515624977,57.115332031250006],[-7.410546874999937,57.38110351562506],[-7.26713867187496,57.37177734375001],[-7.249853515624977,57.115332031250006]]],[[[-6.144726562499983,57.50498046874998],[-6.135546874999989,57.31425781250002],[-5.672460937499977,57.252685546875],[-5.94907226562492,57.045166015625],[-6.034375,57.20122070312499],[-6.322705078124926,57.20249023437498],[-6.761132812499994,57.4423828125],[-6.305957031249989,57.67197265624998],[-6.144726562499983,57.50498046874998]]],[[[-7.205566406250028,57.682958984375006],[-7.182617187499972,57.53330078125006],[-7.514746093749949,57.60195312500002],[-7.205566406250028,57.682958984375006]]],[[[-6.198681640624983,58.36328125000003],[-6.554589843749994,58.092871093750006],[-6.425195312499937,58.02128906249999],[-6.983105468749983,57.75],[-7.083447265624926,57.81376953124999],[-6.856835937499937,57.92353515624998],[-7.085253906249932,58.18217773437499],[-6.726464843749937,58.189404296874955],[-6.776464843750006,58.30151367187497],[-6.237451171874966,58.50283203125005],[-6.198681640624983,58.36328125000003]]],[[[-3.109667968749932,58.515478515625034],[-3.212353515624983,58.32124023437501],[-3.99003906249996,57.95903320312502],[-4.035595703124926,57.85200195312498],[-3.857128906249983,57.81855468750001],[-4.134521484375,57.57773437500006],[-3.402783203124955,57.708251953125],[-2.074072265624977,57.70239257812506],[-1.780664062499994,57.474023437499966],[-2.592675781249937,56.56157226562499],[-3.309960937499966,56.36347656250004],[-2.885156249999937,56.397509765625045],[-2.674267578124955,56.25341796875],[-3.362255859374955,56.02763671875002],[-3.789062499999972,56.09521484375],[-3.048730468749937,55.951953125000045],[-2.599316406249955,56.02729492187501],[-2.14707031249992,55.90297851562502],[-1.655371093749949,55.57036132812502],[-1.232421874999943,54.703710937500034],[-0.084375,54.118066406249994],[-0.20556640625,54.021728515625],[0.115332031250006,53.609277343749994],[-0.270019531249972,53.73676757812504],[-0.659912109375,53.72402343750002],[-0.293701171875,53.69233398437504],[0.270996093750028,53.33549804687499],[0.355761718750045,53.15996093750002],[0.0458984375,52.90561523437498],[0.279785156250028,52.80869140625006],[0.55878906250004,52.96694335937505],[1.05556640625008,52.95898437500003],[1.656738281249972,52.753710937500045],[1.74658203125,52.46899414062503],[1.59140625,52.11977539062502],[1.232421875000057,51.97124023437496],[1.188476562500057,51.803369140624966],[0.752246093750017,51.729589843750034],[0.890917968750017,51.571435546874966],[0.42451171875004,51.465625],[1.414941406250023,51.36328125],[1.397558593750034,51.18203125000002],[0.960156250000011,50.92587890624998],[0.299707031249994,50.775976562500006],[-0.785253906249949,50.76542968749999],[-1.416455078124955,50.896875],[-1.334472656249943,50.82080078124997],[-1.516748046874937,50.747460937499966],[-2.031054687499932,50.72539062499999],[-2.035839843749926,50.603076171875045],[-2.999414062499937,50.71660156249999],[-3.40458984374996,50.63242187499998],[-3.679785156250006,50.239941406249955],[-4.194580078124972,50.39331054687503],[-4.727978515624926,50.29047851562504],[-5.11850585937492,50.038330078125],[-5.622119140624932,50.05068359375002],[-4.188183593749926,51.18852539062502],[-3.135986328124972,51.20502929687501],[-2.433056640624926,51.74072265625],[-3.293115234374994,51.390429687500045],[-3.890771484374994,51.591650390625006],[-4.234570312499955,51.56909179687503],[-4.091015624999926,51.65991210937506],[-4.38627929687496,51.74106445312506],[-4.902294921874926,51.626269531250045],[-5.168359374999937,51.74072265625],[-5.183349609374972,51.94965820312501],[-4.217724609374983,52.277441406250006],[-3.980322265624949,52.54174804687503],[-4.101464843750023,52.915478515624955],[-4.683056640624926,52.80615234374997],[-4.268554687499943,53.14453125],[-3.427734374999972,53.34067382812498],[-3.097558593749937,53.260302734375045],[-3.064746093749932,53.426855468750034],[-2.74951171875,53.310205078124994],[-3.064599609374994,53.512841796874966],[-2.84648437499996,54.135302734375045],[-3.165966796874955,54.12792968750006],[-3.56938476562496,54.46757812499996],[-3.464599609374943,54.77309570312505],[-3.036230468749977,54.95307617187501],[-3.550439453124937,54.94741210937502],[-3.957910156249994,54.780957031249955],[-4.818066406249983,54.84614257812501],[-4.911230468749949,54.68945312500006],[-5.032324218749949,54.76137695312505],[-5.172705078124949,54.98588867187496],[-4.676757812499972,55.50131835937498],[-4.871679687499977,55.87392578125005],[-4.58408203124992,55.93867187500001],[-4.844091796874949,56.05117187499999],[-4.80029296875,56.158349609374994],[-5.228222656249983,55.886328125],[-5.084326171874977,56.197460937499955],[-5.41044921874996,55.995361328125],[-5.55644531249996,55.389599609374955],[-5.730664062499926,55.33413085937502],[-5.504492187499949,55.80239257812502],[-5.609570312499955,56.055273437500034],[-5.188378906249937,56.75805664062503],[-5.652441406249977,56.531982421875],[-6.133691406249966,56.706689453124966],[-5.730615234374994,56.853076171875045],[-5.86142578124992,56.902685546875006],[-5.561914062499994,57.23271484375002],[-5.794921874999972,57.37880859375002],[-5.581787109374972,57.546777343749966],[-5.744921874999989,57.668310546875034],[-5.608349609374955,57.88134765625],[-5.157226562499972,57.88134765625],[-5.413183593750006,58.06972656250002],[-5.338281250000023,58.23872070312498],[-5.008300781250028,58.262646484374955],[-5.016748046874966,58.566552734374966],[-4.433251953124937,58.51284179687505],[-3.25913085937492,58.65],[-3.053076171874949,58.63481445312502],[-3.109667968749932,58.515478515625034]]],[[[-3.057421874999932,59.02963867187498],[-2.793017578124989,58.906933593749955],[-3.331640624999949,58.97124023437499],[-3.31035156249996,59.13081054687498],[-3.057421874999932,59.02963867187498]]],[[[-1.30810546875,60.5375],[-1.052441406249955,60.44448242187502],[-1.299462890624994,59.87866210937503],[-1.290917968749937,60.153466796874966],[-1.663769531249983,60.282519531250074],[-1.374609374999949,60.33291015625002],[-1.571777343749972,60.494433593750074],[-1.363964843750011,60.60957031249998],[-1.30810546875,60.5375]]]]},"properties":{"name":"United Kingdom","childNum":14,"cp":[-2.5830348,54.4598409]}},{"geometry":{"type":"Polygon","coordinates":[[[46.30546875000002,41.507714843749994],[46.61894531250002,41.34375],[46.67255859375001,41.28681640625],[46.66240234375002,41.245507812499994],[46.62636718750002,41.15966796875],[46.534375,41.08857421875],[46.43095703125002,41.077050781249994],[46.086523437500006,41.183837890625],[45.28095703125001,41.449560546875],[45.21718750000002,41.423193359375],[45.00136718750002,41.290966796875],[44.97587890625002,41.277490234374994],[44.81132812500002,41.259375],[44.077246093750006,41.182519531249994],[43.43339843750002,41.155517578125],[43.20546875000002,41.199169921875],[43.15283203125,41.23642578125],[43.14101562500002,41.26484375],[43.17128906250002,41.287939453125],[43.149023437500006,41.30712890625],[43.05712890625,41.352832031249996],[42.90673828125,41.466845703124996],[42.82167968750002,41.4923828125],[42.78789062500002,41.563720703125],[42.75410156250001,41.57890625],[42.68242187500002,41.585742187499996],[42.60683593750002,41.57880859375],[42.590429687500006,41.57070312499999],[42.5673828125,41.55927734375],[42.46640625,41.43984375],[41.92578125,41.495654296874996],[41.82353515625002,41.432373046875],[41.779394531250006,41.44052734375],[41.701757812500006,41.471582031249994],[41.57656250000002,41.497314453125],[41.51005859375002,41.517480468749994],[41.701757812500006,41.705419921875],[41.76298828125002,41.970019531249996],[41.48876953125,42.659326171874994],[40.83662109375001,43.0634765625],[40.46210937500001,43.145703125],[39.97832031250002,43.419824218749994],[40.02373046875002,43.48486328125],[40.084570312500006,43.553125],[40.648046875,43.53388671875],[40.941992187500006,43.41806640625],[41.083105468750006,43.374462890625],[41.35820312500002,43.333398437499994],[41.46074218750002,43.276318359375],[41.58056640625,43.21923828125],[42.76064453125002,43.169580078124994],[42.99160156250002,43.09150390625],[43.00019531250001,43.049658203125],[43.08916015625002,42.9890625],[43.55781250000001,42.844482421875],[43.623046875,42.80771484375],[43.78261718750002,42.747021484375],[43.79873046875002,42.727783203125],[43.79541015625,42.702978515625],[43.74990234375002,42.657519531249996],[43.738378906250006,42.616992187499996],[43.759863281250006,42.59384765625],[43.82597656250002,42.571533203125],[43.95742187500002,42.566552734374994],[44.00468750000002,42.595605468749994],[44.10273437500001,42.616357421874994],[44.32949218750002,42.70351562499999],[44.505859375,42.7486328125],[44.77109375,42.616796875],[44.85048828125002,42.746826171875],[44.87099609375002,42.756396484374996],[44.943359375,42.730273437499996],[45.07158203125002,42.694140625],[45.160253906250006,42.675],[45.34375,42.52978515625],[45.56289062500002,42.5357421875],[45.70527343750001,42.498095703124996],[45.7275390625,42.475048828125],[45.63427734375,42.234716796875],[45.63857421875002,42.205078125],[46.21269531250002,41.989892578124994],[46.42988281250001,41.890966796875],[46.18427734375001,41.7021484375],[46.30546875000002,41.507714843749994]]]},"properties":{"name":"Georgia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-0.068603515625,11.115625],[0.009423828125023,11.02099609375],[-0.08632812499999,10.673046875],[0.380859375,10.291845703124991],[0.264550781250023,9.644726562499997],[0.342578125000017,9.604150390624994],[0.2333984375,9.463525390624994],[0.525683593750017,9.398486328124989],[0.48876953125,8.851464843749994],[0.37255859375,8.75927734375],[0.686328125000017,8.354882812499994],[0.5,7.546875],[0.634765625,7.353662109374994],[0.525585937500011,6.850927734374991],[0.736914062500006,6.452587890624997],[1.187207031250011,6.089404296874989],[0.94970703125,5.810253906249997],[0.259667968750023,5.75732421875],[-2.001855468749994,4.762451171875],[-3.114013671875,5.088671874999989],[-2.815673828125,5.153027343749997],[-2.754980468749977,5.432519531249994],[-2.793652343749983,5.60009765625],[-2.998291015625,5.71132812499999],[-3.227148437499977,6.749121093749991],[-2.959082031249977,7.454541015624997],[-2.789746093749983,7.931933593749989],[-2.668847656249994,8.022216796875],[-2.613378906249977,8.046679687499989],[-2.600976562499994,8.082226562499997],[-2.619970703124977,8.12109375],[-2.61171875,8.147558593749991],[-2.538281249999983,8.171630859375],[-2.505859375,8.208740234375],[-2.600390624999989,8.800439453124994],[-2.649218749999989,8.956591796874989],[-2.689892578124983,9.025097656249997],[-2.746923828124977,9.045117187499997],[-2.705761718749983,9.351367187499989],[-2.695849609374989,9.481347656249994],[-2.706201171874994,9.533935546875],[-2.765966796874977,9.658056640624991],[-2.780517578125,9.745849609375],[-2.791162109374994,10.432421874999989],[-2.914892578124977,10.592333984374989],[-2.829931640624977,10.998388671874991],[-1.04248046875,11.010058593749989],[-0.627148437499983,10.927392578124994],[-0.299462890624994,11.166894531249994],[-0.068603515625,11.115625]]]},"properties":{"name":"Ghana","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-11.389404296875,12.404394531249991],[-11.502197265625,12.198632812499994],[-11.30517578125,12.015429687499989],[-10.933203124999977,12.205175781249991],[-10.709228515625,11.898730468749989],[-10.274853515624983,12.212646484375],[-9.754003906249977,12.029931640624994],[-9.358105468749983,12.255419921874989],[-9.395361328124977,12.464648437499989],[-9.043066406249977,12.40234375],[-8.818310546874983,11.922509765624994],[-8.822021484375,11.673242187499994],[-8.398535156249977,11.366552734374991],[-8.666699218749983,11.009472656249997],[-8.33740234375,10.990625],[-8.266650390624989,10.485986328124994],[-8.007275390624983,10.321875],[-7.990625,10.1625],[-8.155175781249994,9.973193359374989],[-8.136962890625,9.49570312499999],[-7.896191406249983,9.415869140624991],[-7.918066406249977,9.188525390624989],[-7.839404296874989,9.151611328125],[-7.7998046875,9.115039062499989],[-7.777978515624994,9.080859374999989],[-7.902099609375,9.01708984375],[-7.938183593749983,8.979785156249989],[-7.950976562499989,8.786816406249997],[-7.719580078124977,8.643017578124997],[-7.696093749999989,8.375585937499991],[-7.823583984374977,8.467675781249994],[-7.953125,8.477734375],[-8.236962890624994,8.455664062499991],[-8.244140625,8.407910156249997],[-8.256103515625,8.253710937499989],[-8.217138671874977,8.219677734374997],[-8.140625,8.181445312499989],[-8.048583984375,8.169726562499989],[-8.009863281249977,8.07851562499999],[-8.126855468749994,7.867724609374989],[-8.115429687499983,7.7607421875],[-8.205957031249994,7.59023437499999],[-8.231884765624983,7.556738281249991],[-8.429980468749989,7.601855468749989],[-8.486425781249977,7.558496093749994],[-8.659765624999977,7.688378906249994],[-8.8896484375,7.2626953125],[-9.11757812499999,7.215917968749991],[-9.463818359374983,7.415869140624991],[-9.369140625,7.703808593749997],[-9.518261718749983,8.34609375],[-9.781982421875,8.537695312499991],[-10.064355468749994,8.429882812499997],[-10.147412109374983,8.519726562499997],[-10.233056640624994,8.488818359374989],[-10.283203125,8.485156249999989],[-10.360058593749983,8.495507812499994],[-10.394433593749994,8.48095703125],[-10.496435546874977,8.362109374999989],[-10.557714843749977,8.315673828125],[-10.686962890624983,8.321679687499994],[-10.712109374999983,8.335253906249989],[-10.677343749999977,8.400585937499997],[-10.500537109374989,8.687548828124989],[-10.615966796875,9.059179687499991],[-10.726855468749989,9.081689453124994],[-10.747021484374983,9.095263671874989],[-10.749951171874983,9.122363281249989],[-10.687646484374994,9.261132812499994],[-10.682714843749977,9.289355468749989],[-10.758593749999989,9.385351562499991],[-11.047460937499977,9.786328125],[-11.180859374999983,9.925341796874989],[-11.205664062499977,9.977734375],[-11.273632812499983,9.996533203124997],[-11.911083984374983,9.993017578124991],[-12.142333984375,9.87539062499999],[-12.427978515625,9.898144531249997],[-12.557861328125,9.704980468749994],[-12.755859375,9.373583984374989],[-12.958789062499989,9.263330078124994],[-13.077294921874994,9.069628906249989],[-13.292675781249983,9.04921875],[-13.436279296875,9.4203125],[-13.691357421874983,9.535791015624994],[-13.689794921874977,9.927783203124989],[-13.820117187499989,9.88720703125],[-14.045019531249977,10.141259765624994],[-14.426904296874994,10.248339843749989],[-14.609570312499983,10.549853515624989],[-14.593505859375,10.766699218749991],[-14.677343749999977,10.68896484375],[-14.775927734374989,10.931640625],[-14.88671875,10.968066406249989],[-14.975,10.803417968749997],[-15.051220703124983,10.834570312499991],[-15.043017578124989,10.940136718749997],[-14.9990234375,10.9921875],[-14.944433593749977,11.072167968749994],[-14.779296875,11.405517578125],[-14.720263671874989,11.48193359375],[-14.682958984374977,11.508496093749997],[-14.604785156249989,11.511621093749994],[-14.452441406249989,11.556201171874989],[-14.327832031249983,11.629785156249994],[-14.265576171874983,11.659912109375],[-14.122314453125,11.65195312499999],[-13.953222656249977,11.664599609374989],[-13.732763671874977,11.736035156249997],[-13.730664062499983,11.959863281249994],[-13.737988281249983,12.009667968749994],[-13.816308593749994,12.054492187499989],[-13.948876953124994,12.178173828124997],[-13.8875,12.246875],[-13.759765625,12.262353515624994],[-13.673535156249983,12.478515625],[-13.732617187499983,12.592822265624989],[-13.729248046875,12.673925781249991],[-13.082910156249994,12.633544921875],[-13.061279296875,12.489990234375],[-12.930712890624989,12.532275390624989],[-12.399072265624994,12.340087890625],[-11.389404296875,12.404394531249991]]]},"properties":{"name":"Guinea","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-16.763330078124994,13.064160156249997],[-16.824804687499977,13.341064453125],[-16.669335937499994,13.475],[-16.41337890624999,13.269726562499997],[-15.427490234375,13.46835937499999],[-16.135449218749983,13.4482421875],[-16.351806640625,13.34335937499999],[-16.56230468749999,13.587304687499994],[-15.509667968749994,13.586230468750003],[-15.426855468749977,13.727001953124997],[-15.108349609374983,13.81210937499999],[-14.405468749999983,13.503710937500003],[-13.977392578124977,13.54345703125],[-13.826708984374989,13.4078125],[-14.246777343749983,13.23583984375],[-15.151123046875,13.556494140624991],[-15.286230468749977,13.39599609375],[-15.814404296874983,13.325146484374997],[-15.834277343749989,13.156445312499997],[-16.648779296874977,13.154150390624991],[-16.763330078124994,13.064160156249997]]]},"properties":{"name":"Gambia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-15.895898437499966,11.082470703124969],[-15.963964843749977,11.05898437499998],[-15.937695312499955,11.192773437499966],[-15.895898437499966,11.082470703124969]]],[[[-16.11450195312503,11.059423828124977],[-16.236425781249977,11.113427734374966],[-16.06733398437501,11.197216796874983],[-16.11450195312503,11.059423828124977]]],[[[-15.901806640624926,11.4658203125],[-16.02319335937497,11.477148437499991],[-15.964550781249926,11.59829101562498],[-15.901806640624926,11.4658203125]]],[[[-15.986425781249949,11.882031249999969],[-16.038330078124943,11.759716796875011],[-16.15244140624992,11.876806640624963],[-15.986425781249949,11.882031249999969]]],[[[-13.759765625,12.262353515624994],[-13.8875,12.246875],[-13.948876953124966,12.178173828124997],[-13.737988281250011,12.009667968750037],[-13.730664062499926,11.959863281250009],[-13.73276367187492,11.736035156249983],[-13.953222656249977,11.664599609374989],[-14.265576171874926,11.659912109375014],[-14.327832031250011,11.629785156250009],[-14.452441406249989,11.556201171875017],[-14.604785156249932,11.511621093749994],[-14.682958984374949,11.508496093749983],[-14.720263671875017,11.481933593749986],[-14.779296874999972,11.405517578125057],[-14.944433593749949,11.072167968749994],[-14.999023437499972,10.992187500000043],[-15.04301757812496,10.940136718750011],[-15.09375,11.011035156249974],[-15.054589843749994,11.141943359375006],[-15.222119140624926,11.030908203125037],[-15.216699218749994,11.15625],[-15.39311523437496,11.217236328124983],[-15.354687499999955,11.396337890624963],[-15.479492187499972,11.410302734374966],[-15.072656249999937,11.597802734374966],[-15.230371093750023,11.686767578124972],[-15.412988281249994,11.615234374999972],[-15.501904296875011,11.723779296874966],[-15.467187499999937,11.842822265624974],[-15.078271484374937,11.968994140625014],[-15.941748046875006,11.786621093749986],[-15.92021484374996,11.93779296874996],[-16.138427734375,11.917285156250045],[-16.32807617187501,12.051611328124963],[-16.244580078124955,12.237109375],[-16.43681640624996,12.204150390625045],[-16.711816406249937,12.354833984375006],[-16.656933593749955,12.364355468749991],[-16.52133789062495,12.348632812499986],[-16.41630859374996,12.367675781250057],[-16.24150390624996,12.443310546875011],[-16.144189453124937,12.457421875000037],[-15.839550781249955,12.437890624999966],[-15.57480468749992,12.490380859375009],[-15.19609375,12.679931640624986],[-14.3492187499999,12.67641601562498],[-14.064843749999966,12.675292968750014],[-13.729248046875,12.673925781250006],[-13.732617187499983,12.592822265625003],[-13.673535156249926,12.478515624999986],[-13.759765625,12.262353515624994]]]]},"properties":{"name":"Guinea-Bissau","childNum":5}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[11.332324218750017,1.528369140624989],[11.335351562500023,0.999707031250011],[9.906738281250028,0.960107421875037],[9.80390625000004,0.998730468749997],[9.788671875000034,1.025683593749974],[9.760546874999989,1.074707031250014],[9.704589843750057,1.079980468750023],[9.676464843750011,1.074707031250014],[9.636132812500051,1.046679687499989],[9.590820312500057,1.031982421875014],[9.599414062500045,1.054443359374972],[9.509863281250006,1.114794921875017],[9.385937500000068,1.13925781250002],[9.807031250000051,1.927490234375028],[9.77968750000008,2.068212890625006],[9.800781250000028,2.304443359375],[9.826171875000057,2.297802734374969],[9.8369140625,2.242382812500054],[9.870117187500028,2.21328125],[9.979882812499994,2.167773437500045],[10.790917968750023,2.167578125],[11.096582031250051,2.167480468749986],[11.328710937500006,2.167431640624969],[11.332324218750017,1.528369140624989]]],[[[8.735742187500023,3.758300781249972],[8.910058593750023,3.758203125000051],[8.946093750000074,3.627539062499977],[8.704003906250051,3.223632812500028],[8.474902343749989,3.264648437500043],[8.464648437500045,3.450585937499994],[8.735742187500023,3.758300781249972]]]]},"properties":{"name":"Eq. Guinea","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[23.852246093749983,35.53544921874999],[24.166015625000057,35.59521484375],[24.108984374999977,35.49580078124998],[24.35400390625,35.359472656250034],[25.73017578125004,35.34858398437501],[25.791308593750074,35.122851562500045],[26.32021484375008,35.315136718749955],[26.165625,35.018603515625045],[24.79980468750003,34.93447265625002],[24.70888671875008,35.08906250000001],[24.463671875000045,35.160351562499955],[23.59277343749997,35.257226562499966],[23.56982421875,35.534765625000034],[23.67265624999999,35.51391601562506],[23.736914062500034,35.65551757812503],[23.852246093749983,35.53544921874999]]],[[[27.17607421874999,35.46528320312498],[27.070703125000023,35.59775390624998],[27.22314453125,35.820458984374966],[27.17607421874999,35.46528320312498]]],[[[23.053808593750034,36.18979492187498],[22.91083984375004,36.220996093750045],[22.950488281250045,36.38393554687502],[23.053808593750034,36.18979492187498]]],[[[27.84277343750003,35.929296875000034],[27.71552734375004,35.95732421874996],[27.71630859375003,36.17158203125001],[28.23183593750005,36.43364257812502],[28.087792968750023,36.06533203125002],[27.84277343750003,35.929296875000034]]],[[[25.48242187500003,36.39262695312502],[25.37050781250005,36.35893554687499],[25.408984375000074,36.473730468750006],[25.48242187500003,36.39262695312502]]],[[[26.46064453125001,36.58540039062501],[26.270019531250057,36.54692382812499],[26.370019531250023,36.63857421875002],[26.46064453125001,36.58540039062501]]],[[[26.94960937500005,36.72709960937502],[27.214941406250006,36.89863281249998],[27.352148437499977,36.86889648437506],[26.94960937500005,36.72709960937502]]],[[[25.859375,36.79042968750005],[25.74316406250003,36.78974609374998],[26.06445312500003,36.90273437500002],[25.859375,36.79042968750005]]],[[[27.01972656250004,36.95903320312502],[26.91992187500003,36.94521484375005],[26.88867187499997,37.087255859375034],[27.01972656250004,36.95903320312502]]],[[[25.278906250000034,37.06840820312502],[25.105468750000057,37.034960937500045],[25.235058593750068,37.148535156250006],[25.278906250000034,37.06840820312502]]],[[[25.54589843749997,36.96757812499999],[25.45673828125001,36.9296875],[25.361914062500063,37.07041015624998],[25.52529296875005,37.19638671875006],[25.54589843749997,36.96757812499999]]],[[[24.523535156250063,37.125097656250006],[24.42480468750003,37.131982421874994],[24.48378906250005,37.21020507812503],[24.523535156250063,37.125097656250006]]],[[[25.402734375000023,37.419140624999955],[25.312695312500068,37.48930664062496],[25.462988281250063,37.47109375],[25.402734375000023,37.419140624999955]]],[[[26.029296875000057,37.529394531250034],[26.086328125000023,37.63491210937505],[26.351367187500017,37.67431640625],[26.029296875000057,37.529394531250034]]],[[[25.255859375000057,37.59960937500006],[25.156347656250034,37.54506835937505],[24.99648437500005,37.676904296874994],[25.255859375000057,37.59960937500006]]],[[[24.35595703125003,37.57685546875004],[24.28896484375005,37.52827148437498],[24.37910156250004,37.682714843750006],[24.35595703125003,37.57685546875004]]],[[[26.82441406250004,37.81142578125005],[27.05507812500005,37.70927734375002],[26.84492187500004,37.64472656250001],[26.58105468750003,37.723730468750034],[26.82441406250004,37.81142578125005]]],[[[20.888476562500074,37.805371093749955],[20.993945312500074,37.70800781250003],[20.81855468750004,37.66474609375001],[20.61953125000008,37.855029296875045],[20.691503906250006,37.929541015625034],[20.888476562500074,37.805371093749955]]],[[[24.991699218750057,37.75961914062506],[24.962207031250074,37.69238281250003],[24.7001953125,37.961669921875],[24.956347656250045,37.90478515625006],[24.991699218750057,37.75961914062506]]],[[[20.61230468750003,38.38334960937502],[20.761328125,38.07055664062497],[20.523535156250063,38.106640624999955],[20.4521484375,38.23417968750002],[20.35253906250003,38.179882812499955],[20.563183593750068,38.474951171875034],[20.61230468750003,38.38334960937502]]],[[[26.094042968750017,38.21806640625002],[25.891894531250045,38.243310546874994],[25.991406250000068,38.353515625],[25.846093750000023,38.57402343749996],[26.16035156250001,38.54072265625001],[26.094042968750017,38.21806640625002]]],[[[20.68671875000001,38.60869140625002],[20.5546875,38.58256835937502],[20.69414062499999,38.84423828125003],[20.68671875000001,38.60869140625002]]],[[[24.67470703125005,38.80922851562502],[24.54101562499997,38.788671875],[24.485644531250074,38.980273437500045],[24.67470703125005,38.80922851562502]]],[[[23.41542968750008,38.958642578124994],[23.525,38.8134765625],[24.127539062500034,38.648486328125045],[24.27578125000005,38.22001953124996],[24.58837890625003,38.12397460937504],[24.53652343750005,37.97973632812506],[24.212011718750006,38.11752929687506],[24.040136718750006,38.389990234375034],[23.65078125000008,38.44306640625001],[23.25214843750004,38.80122070312498],[22.870312500000068,38.870507812499966],[23.258203125000023,39.03134765625006],[23.41542968750008,38.958642578124994]]],[[[26.41015625000003,39.329443359375034],[26.59560546875005,39.04882812499997],[26.488671875000023,39.074804687500034],[26.46875,38.97280273437502],[26.10791015625,39.08105468749997],[26.273144531249983,39.19755859374999],[26.072363281250034,39.095605468749994],[25.84414062500008,39.20004882812506],[26.16542968750008,39.37353515625006],[26.41015625000003,39.329443359375034]]],[[[20.077929687500045,39.432714843750034],[19.883984375000068,39.461523437500034],[19.646484375,39.76708984375003],[19.926074218750017,39.773730468750045],[19.8466796875,39.66811523437502],[20.077929687500045,39.432714843750034]]],[[[25.43769531250004,39.98330078125002],[25.357031250000063,39.80810546875003],[25.24941406250005,39.89414062500006],[25.06220703125004,39.852392578125006],[25.05800781250005,39.999658203124966],[25.43769531250004,39.98330078125002]]],[[[24.774218750000074,40.615185546874955],[24.515527343750023,40.64702148437496],[24.623339843750045,40.79291992187501],[24.774218750000074,40.615185546874955]]],[[[26.03896484375008,40.726757812499955],[25.10449218750003,40.994726562500006],[24.792968750000057,40.857519531250034],[24.47705078125,40.94775390625003],[24.082324218750074,40.72407226562504],[23.762792968750063,40.74780273437497],[23.866796875000034,40.41855468750006],[24.21279296875008,40.32778320312502],[24.343359375000034,40.14770507812503],[23.913183593750063,40.35878906250005],[23.72792968750008,40.329736328124994],[23.96748046875001,40.11455078125002],[23.947070312500045,39.96557617187506],[23.66455078125003,40.22382812499998],[23.42626953125,40.26396484374999],[23.62734375,39.92407226562503],[22.896484375000057,40.39990234374997],[22.92226562500008,40.59086914062499],[22.629492187500034,40.49555664062501],[22.59218750000005,40.03691406250002],[23.327734374999977,39.174902343750006],[23.15468750000008,39.10146484375005],[23.16171875,39.25776367187501],[22.92138671874997,39.30634765625004],[22.886035156250074,39.16997070312496],[23.066699218750017,39.03793945312498],[22.569140625000074,38.86748046874999],[23.25292968750003,38.66123046875006],[23.68398437500008,38.35244140625002],[23.96699218750001,38.275],[24.024511718750006,38.139794921874966],[24.01972656250001,37.67773437499997],[23.50175781249999,38.03486328124998],[23.03632812500004,37.87836914062501],[23.48925781250003,37.440185546875],[23.16152343750005,37.333837890625006],[22.725390625000017,37.542138671874966],[23.16015625000003,36.448095703125034],[22.717187500000023,36.79394531250006],[22.42773437500003,36.47578124999998],[22.08046875000008,37.028955078124966],[21.95556640625003,36.990087890625034],[21.892382812500045,36.73730468749997],[21.58291015625005,37.080957031249994],[21.678906250000068,37.38720703125003],[21.124707031250068,37.89160156250003],[21.40371093750005,38.19667968750002],[21.658398437500068,38.17509765624996],[21.82470703125003,38.328125],[22.846386718750068,37.96757812499996],[23.18349609375008,38.133691406249966],[22.421679687500045,38.43852539062499],[22.319921875,38.35683593750005],[21.96533203124997,38.412451171875006],[21.47255859375005,38.321386718750006],[21.3310546875,38.48730468749997],[21.303320312500034,38.373925781249966],[21.113183593750023,38.38466796875002],[20.768554687500057,38.874414062499966],[21.111621093750045,38.89628906249999],[21.11835937500001,39.029980468749955],[20.71337890625,39.03515625000003],[20.300781250000057,39.32709960937501],[20.19140625,39.545800781249966],[20.099414062500074,39.641259765624966],[20.001269531250074,39.70942382812501],[20.022558593750063,39.710693359375],[20.059765624999983,39.69912109375002],[20.13105468750004,39.66162109375003],[20.206835937500017,39.65351562499998],[20.382421875,39.802636718749994],[20.381640625000017,39.84179687500006],[20.311328125000074,39.95078125000006],[20.311132812500034,39.97944335937504],[20.338476562500006,39.991064453125006],[20.38369140625008,40.0171875],[20.408007812500074,40.049462890624994],[20.4560546875,40.065576171874994],[20.657421875000068,40.11738281249998],[20.881640625000017,40.467919921874994],[21.030859375000034,40.62246093750002],[20.95576171875001,40.775292968749994],[20.96425781250005,40.84990234374999],[21.575781250000034,40.86894531249996],[21.627539062500006,40.896337890625034],[21.77949218750004,40.95043945312506],[21.99335937500001,41.13095703125006],[22.18447265625005,41.15864257812501],[22.49355468750005,41.118505859375006],[22.603613281249977,41.14018554687499],[22.724804687500068,41.17851562499999],[22.78388671875004,41.33198242187498],[23.155957031250068,41.32207031249999],[23.239843750000034,41.38496093750001],[23.372070312500057,41.3896484375],[23.433398437500017,41.39873046874999],[23.53583984375001,41.38603515624999],[23.63515625000008,41.386767578125045],[24.011328124999977,41.460058593750034],[24.03291015625004,41.469091796875034],[24.05605468750005,41.527246093749966],[24.38671875,41.523535156250006],[24.487890625,41.55522460937499],[24.518261718750068,41.55253906249996],[24.773730468750045,41.356103515624994],[24.99355468750008,41.36499023437503],[25.133398437500063,41.31577148437506],[25.251171875000068,41.243554687499994],[25.923339843750057,41.311914062499966],[26.066406250000057,41.35068359375006],[26.135351562499977,41.3857421875],[26.155175781250023,41.43486328124999],[26.143554687500057,41.52153320312496],[26.085546875000063,41.704150390625045],[26.10742187499997,41.72568359374998],[26.20058593750005,41.74379882812502],[26.320898437500034,41.716552734375],[26.581347656250074,41.60126953125004],[26.62490234375008,41.401757812499994],[26.330664062499977,41.23876953125],[26.331054687500057,40.954492187499994],[26.03896484375008,40.726757812499955]]]]},"properties":{"name":"Greece","childNum":29}},{"geometry":{"type":"Polygon","coordinates":[[[-61.71552734375,12.012646484374997],[-61.714990234374994,12.18515625],[-61.60703125,12.223291015624994],[-61.71552734375,12.012646484374997]]]},"properties":{"name":"Grenada","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-46.266699218750006,60.781396484374994],[-46.381542968749955,60.66030273437502],[-46.7880859375,60.758398437500034],[-46.205224609374994,60.943505859374994],[-46.266699218750006,60.781396484374994]]],[[[-37.03125,65.53198242187497],[-37.23842773437494,65.60986328125003],[-37.047509765624966,65.722265625],[-37.03125,65.53198242187497]]],[[[-51.01367187499994,69.55249023437497],[-51.202050781249966,69.525],[-51.33886718749994,69.73203125000006],[-51.094580078125006,69.92416992187503],[-50.67900390624999,69.84853515625],[-51.01367187499994,69.55249023437497]]],[[[-52.73115234375001,69.94472656250005],[-52.0453125,69.8072265625],[-51.90019531249999,69.60478515625007],[-53.57841796874996,69.25664062500002],[-54.18271484374995,69.40351562500001],[-53.65830078124998,69.46513671875005],[-53.825,69.54033203124999],[-54.91914062499998,69.71362304687503],[-54.78789062499996,69.94985351562502],[-54.322607421875034,69.94189453125],[-54.83076171875001,70.13295898437502],[-54.37163085937499,70.31728515625],[-53.296728515625034,70.20537109375002],[-52.73115234375001,69.94472656250005]]],[[[-51.67514648437498,70.855224609375],[-52.11938476562497,70.87065429687502],[-52.10673828124999,70.96801757812497],[-51.67514648437498,70.855224609375]]],[[[-25.43232421875001,70.92133789062495],[-25.402246093749994,70.65268554687503],[-26.217871093749977,70.45405273437498],[-26.604687499999926,70.55336914062497],[-28.03525390624995,70.48681640625],[-27.61723632812496,70.91376953125001],[-26.621777343749955,70.87563476562497],[-25.81889648437499,71.04365234375001],[-25.43232421875001,70.92133789062495]]],[[[-53.53520507812493,71.04082031250005],[-53.9578125,71.12773437499999],[-53.58447265625003,71.29707031249995],[-53.53520507812493,71.04082031250005]]],[[[-55.01689453124999,72.79111328125003],[-55.56660156249998,72.56435546875002],[-56.214794921874955,72.71918945312495],[-55.01689453124999,72.79111328125003]]],[[[-18.000537109374932,75.40732421875003],[-17.391992187499937,75.03691406250007],[-18.670800781249966,75.00166015624998],[-18.856054687499977,75.31914062500002],[-18.000537109374932,75.40732421875003]]],[[[-18.58261718749995,76.042333984375],[-19.085351562499966,76.43037109375001],[-18.882470703124937,76.70380859375001],[-18.58261718749995,76.042333984375]]],[[[-71.667333984375,77.32529296874998],[-72.48955078124999,77.43164062499997],[-71.43344726562495,77.394384765625],[-71.667333984375,77.32529296874998]]],[[[-17.6125,79.82587890624995],[-18.662011718749966,79.72001953125005],[-19.13828125,79.85234375000002],[-17.98291015625,80.05517578125003],[-17.471386718749955,80.02871093749997],[-17.6125,79.82587890624995]]],[[[-44.86455078124999,82.08364257812502],[-46.75190429687501,82.34819335937502],[-47.27226562499996,82.65693359375001],[-46.399169921875,82.692138671875],[-44.91748046875003,82.48051757812505],[-44.86455078124999,82.08364257812502]]],[[[-29.952880859375,83.56484374999997],[-25.795068359374994,83.26098632812497],[-31.99267578125,83.0853515625],[-32.03271484374997,82.98344726562502],[-25.12338867187495,83.15961914062501],[-24.47031249999995,82.87739257812498],[-21.582519531249943,82.6341796875],[-23.118066406249966,82.32470703125003],[-29.57939453124996,82.16118164062502],[-29.887402343749983,82.05483398437502],[-29.543847656249994,81.93994140624997],[-27.839501953124966,82.04887695312505],[-25.148828124999966,82.001123046875],[-24.293066406249977,81.70097656250005],[-23.103710937499983,82.01181640625003],[-21.337988281249977,82.068701171875],[-21.230517578125017,81.60136718749999],[-23.11772460937499,80.77817382812498],[-19.62993164062499,81.63989257812503],[-17.456054687499943,81.397705078125],[-16.12070312499995,81.776611328125],[-14.241992187500017,81.81386718750005],[-12.434423828125006,81.68251953125002],[-11.430664062499972,81.45683593750005],[-13.126220703124972,81.08779296875],[-14.452343749999955,80.99311523437498],[-14.503564453124994,80.76328125000006],[-16.76059570312492,80.573388671875],[-15.937255859374972,80.42763671874997],[-16.48876953124997,80.25195312499997],[-18.070947265624994,80.17207031249995],[-19.429199218749943,80.25771484375],[-20.150146484375,80.01123046874997],[-18.99199218749996,79.17836914062502],[-21.133740234374926,78.65864257812501],[-21.729589843749977,77.70854492187499],[-20.862597656249932,77.91186523437503],[-19.490429687499983,77.71889648437497],[-19.46752929687503,77.56582031250005],[-20.162060546874926,77.68984375],[-20.680810546875023,77.61899414062503],[-20.23193359374997,77.36840820312497],[-19.30029296874997,77.22236328124995],[-18.442626953124943,77.259375],[-18.51030273437496,76.77817382812498],[-20.48671875,76.92080078125],[-21.614697265624926,76.68789062499997],[-22.18525390625001,76.79409179687502],[-22.609326171874983,76.70429687500004],[-21.877343749999966,76.57348632812503],[-21.488232421874926,76.271875],[-20.10361328124992,76.21909179687503],[-19.508984374999926,75.75751953124995],[-19.52636718750003,75.18022460937505],[-20.484960937500006,75.31425781249999],[-21.649316406249966,75.02343749999997],[-22.232861328124926,75.11972656249998],[-21.69511718749999,74.96445312500003],[-20.985791015624983,75.07436523437497],[-20.86157226562497,74.63593750000001],[-20.41708984374995,74.9751953125],[-19.98491210937499,74.9751953125],[-19.287011718750023,74.54638671875006],[-19.36914062499997,74.28403320312498],[-20.256445312499977,74.2828125],[-20.653125,74.13735351562502],[-21.954931640624977,74.24428710937497],[-21.942919921874932,74.56572265624999],[-22.32158203124999,74.30253906250002],[-22.134814453124932,73.99047851562503],[-20.36728515624992,73.8482421875],[-20.509667968749966,73.49287109375001],[-22.346875,73.26923828125001],[-23.23320312499999,73.39770507812497],[-24.157714843749943,73.76445312499999],[-24.67724609375,73.602197265625],[-25.521289062500017,73.85161132812499],[-24.79125976562497,73.51127929687502],[-26.062304687500017,73.25302734375],[-27.270410156250023,73.43627929687503],[-26.541845703125006,73.24897460937495],[-27.561621093750006,73.13847656250002],[-27.348046875000023,73.06782226562501],[-25.057031250000023,73.396484375],[-24.132666015625006,73.409375],[-22.036328124999955,72.91845703125006],[-22.29321289062497,72.11953125],[-24.06904296875001,72.49873046874998],[-24.629980468749977,73.03764648437499],[-26.657617187499966,72.71582031249997],[-24.81333007812492,72.90151367187497],[-24.65,72.58251953125],[-25.117871093749983,72.34697265625005],[-24.66684570312492,72.437353515625],[-21.959667968749955,71.74467773437502],[-22.479638671874937,71.38344726562497],[-22.417578125,71.24868164062505],[-22.29902343750001,71.43232421874998],[-21.75224609374999,71.47832031250002],[-21.522656249999926,70.52622070312503],[-22.38413085937492,70.46240234375],[-22.437011718749943,70.860009765625],[-22.690673828124943,70.43730468750002],[-23.327832031249983,70.45097656250007],[-23.97138671875001,70.64946289062499],[-24.562207031249926,71.22353515624997],[-25.885156249999966,71.571923828125],[-27.08720703124999,71.6265625],[-27.107031250000034,71.53266601562498],[-25.842724609374955,71.48017578124995],[-25.74223632812499,71.18359375],[-26.717919921874994,70.95048828125005],[-28.39843749999997,70.99291992187497],[-27.99218749999997,70.89521484374998],[-28.06987304687499,70.69902343750005],[-29.07207031249999,70.444970703125],[-26.621777343749955,70.46337890625],[-26.576806640625023,70.35708007812502],[-27.560839843749932,70.12446289062498],[-27.384179687500023,69.9916015625],[-27.027734374999966,70.20122070312499],[-25.529882812499977,70.35317382812502],[-23.66733398437495,70.139306640625],[-22.28447265624996,70.12583007812498],[-22.287060546874955,70.03339843749998],[-23.03364257812501,69.90083007812498],[-23.04956054687497,69.79272460937497],[-23.86572265624997,69.73671875000002],[-23.739404296874994,69.58862304687497],[-24.296679687500017,69.58554687500006],[-24.295556640624966,69.439306640625],[-25.188574218750006,69.26054687500002],[-25.092431640624937,69.16518554687502],[-25.697998046874943,68.889892578125],[-26.48291015624997,68.67592773437502],[-29.24951171874997,68.29877929687501],[-29.86850585937495,68.31157226562505],[-30.318115234375,68.19331054687501],[-30.72001953124999,68.25117187499998],[-30.610742187499994,68.11791992187503],[-30.97856445312499,68.06132812500005],[-32.32744140624999,68.43730468749999],[-32.16455078125,67.99111328125002],[-33.15698242187497,67.62670898437506],[-34.1982421875,66.65507812499999],[-35.18857421874995,66.25029296875002],[-35.86723632812502,66.44140624999997],[-35.630078124999926,66.13994140625002],[-36.37919921874996,65.830810546875],[-36.52724609375002,66.00771484375],[-36.665185546874966,65.79008789062507],[-37.06279296874996,65.87143554687503],[-37.410058593749994,65.65634765625],[-37.954785156249955,65.63359375000007],[-37.278710937499994,66.30439453124995],[-38.156640624999966,66.38559570312498],[-37.75234375000002,66.26152343750002],[-38.13994140625002,65.90351562499998],[-38.52036132812498,66.00966796875002],[-38.20336914062497,65.71171874999999],[-40.17353515624998,65.55615234375],[-39.57792968749996,65.34077148437501],[-39.937255859375,65.14160156250003],[-40.253125,65.04887695312505],[-41.08442382812501,65.10083007812497],[-40.966015624999955,64.86884765624995],[-40.655468749999926,64.91533203125002],[-40.18222656249998,64.47993164062495],[-40.78173828125,64.22177734375003],[-41.581005859374926,64.29833984375],[-41.03056640624996,64.12104492187504],[-40.61777343749998,64.13173828125],[-40.550390625000034,63.72524414062505],[-40.77519531249999,63.53364257812501],[-41.04873046875002,63.51381835937505],[-41.387890624999926,63.06186523437498],[-41.84448242187497,63.07026367187501],[-42.174511718749955,63.20878906249999],[-41.63447265624998,62.972460937500074],[-41.90898437499996,62.73710937499999],[-42.94165039062503,62.72021484375003],[-42.15297851562502,62.568457031250006],[-42.32148437499998,62.15273437500005],[-42.110205078125006,61.857226562500074],[-42.58530273437498,61.71748046875001],[-42.34736328125001,61.61743164062497],[-42.717041015625,60.767480468749994],[-43.04409179687502,60.523681640625],[-43.92270507812495,60.59536132812502],[-43.21298828124998,60.390673828125074],[-43.122900390625006,60.06123046875001],[-43.32011718749993,59.928125],[-43.95502929687498,60.025488281250006],[-43.65791015625001,59.85864257812503],[-43.90654296874996,59.815478515625045],[-44.11699218750002,59.83193359375002],[-44.06547851562499,59.92480468750003],[-44.412939453125006,59.922607421875],[-44.22436523437494,60.273535156250006],[-44.61328124999997,60.01665039062499],[-45.37924804687495,60.20292968750002],[-45.367773437500006,60.37294921875002],[-44.97470703124995,60.457226562499955],[-44.756738281249966,60.66459960937502],[-45.38051757812494,60.444921875],[-46.04663085937503,60.61572265625],[-46.141943359375006,60.776513671874994],[-45.87021484374998,61.21831054687502],[-46.87446289062501,60.81640625000003],[-48.180810546874966,60.76923828125001],[-47.77031249999999,60.99775390625001],[-48.386425781249926,61.004736328125034],[-48.42817382812501,61.18740234375002],[-48.92207031249998,61.27744140624998],[-49.28906249999997,61.58994140625006],[-49.380273437499994,61.89018554687502],[-48.82871093749998,62.0796875],[-49.62377929687494,61.99858398437499],[-49.553466796875,62.23271484374999],[-50.319238281249966,62.473193359375045],[-50.298730468749966,62.72197265625002],[-49.793115234374994,63.04462890625004],[-50.39008789062501,62.82202148437497],[-51.46884765624995,63.64228515625001],[-51.547509765624994,64.00610351562497],[-50.260693359374955,64.21425781250002],[-50.48662109374996,64.20888671875],[-50.43706054687499,64.31284179687503],[-51.58491210937498,64.10317382812502],[-51.70786132812498,64.205078125],[-51.403759765624926,64.46318359375002],[-50.49208984375002,64.69316406250005],[-50.00898437500001,64.44726562499997],[-50.12163085937493,64.703759765625],[-50.51699218750002,64.76650390625],[-50.96064453124998,65.20112304687498],[-50.721582031249966,64.79760742187503],[-51.22060546875002,64.62846679687502],[-51.25537109375,64.75810546875005],[-51.92260742187503,64.21875],[-52.259033203125,65.154931640625],[-52.537695312500034,65.32880859374998],[-51.61914062500003,65.71318359375002],[-51.091894531250006,65.77578125],[-51.7234375,65.723486328125],[-52.55126953125003,65.46137695312498],[-52.760937499999926,65.59082031249997],[-53.198974609375,65.59404296875002],[-53.106347656249966,65.97714843749998],[-53.39204101562498,66.04833984375],[-51.225,66.88154296875001],[-53.035791015624966,66.20141601562503],[-53.538769531249955,66.13935546874998],[-53.41875,66.64853515624998],[-53.038281249999955,66.82680664062497],[-52.38686523437502,66.88115234375005],[-53.44360351562503,66.924658203125],[-53.88442382812502,67.13554687499999],[-53.79858398437494,67.41816406250001],[-52.666455078124955,67.74970703124995],[-50.613476562499955,67.5279296875],[-51.171044921874966,67.693603515625],[-50.96884765624998,67.80664062500003],[-51.765234375000034,67.73784179687505],[-52.34482421874998,67.83691406249997],[-53.735205078125006,67.54902343750004],[-53.151562499999926,68.20776367187503],[-51.779980468749926,68.05673828124998],[-51.456494140624926,68.116064453125],[-51.21015625000001,68.419921875],[-52.19853515624993,68.22080078125],[-53.38315429687495,68.29736328124997],[-53.03945312500002,68.61088867187499],[-52.60458984374998,68.70874023437503],[-51.62314453124995,68.53481445312505],[-50.945703124999966,68.68266601562505],[-50.807714843750006,68.81699218749998],[-51.24941406250002,68.73994140625001],[-51.084863281249994,69.12827148437498],[-50.29736328124994,69.17060546874998],[-51.07695312499996,69.20947265625],[-50.291699218749955,70.01445312500005],[-52.254638671875,70.05893554687503],[-53.02304687499995,70.30190429687497],[-54.01445312499996,70.42167968750005],[-54.53076171875,70.69926757812502],[-54.16582031249999,70.82011718750005],[-52.801953124999955,70.7505859375],[-50.87236328124993,70.36489257812502],[-50.66328124999998,70.417578125],[-51.32285156249998,70.58876953124997],[-51.25659179687497,70.85268554687502],[-51.77431640625002,71.01044921875001],[-51.018945312499966,71.001318359375],[-51.37666015625001,71.11904296875],[-53.007568359375,71.17998046874999],[-52.89184570312497,71.457666015625],[-51.76992187500002,71.67172851562498],[-53.44008789062502,71.57900390625002],[-53.14453125000003,71.80742187500002],[-53.65214843749996,72.36264648437506],[-53.92773437499997,72.31879882812501],[-53.47758789062502,71.84995117187506],[-54.01992187500002,71.657861328125],[-53.96298828124995,71.45898437499997],[-54.6890625,71.36723632812505],[-55.59404296874999,71.55351562500005],[-55.315576171874994,72.11069335937498],[-54.84013671874996,72.35610351562497],[-55.581445312499994,72.178857421875],[-55.63583984374998,72.300439453125],[-55.29570312499996,72.35439453124997],[-55.60170898437494,72.453466796875],[-54.924951171874994,72.57197265624998],[-54.737939453124994,72.87250976562501],[-55.07309570312498,73.01513671875003],[-55.28891601562498,72.93320312500003],[-55.66855468749998,73.00791015624998],[-55.288281249999955,73.32709960937498],[-56.10405273437496,73.55815429687499],[-55.83828125,73.75971679687501],[-56.22539062499999,74.12910156249995],[-57.23056640624995,74.12529296875007],[-56.70634765625002,74.21918945312501],[-56.717675781249994,74.42924804687499],[-56.25546874999998,74.52680664062498],[-58.56552734374998,75.35273437500001],[-58.249658203124994,75.50668945312503],[-58.51621093749995,75.68906250000006],[-61.18823242187494,76.157861328125],[-63.29130859374996,76.35205078125003],[-63.84306640624999,76.21713867187498],[-64.307275390625,76.31650390624998],[-65.36992187499993,76.13056640625004],[-65.87573242187494,76.23833007812505],[-66.46577148437498,76.13916015625],[-66.99257812500002,76.21293945312502],[-66.67480468750003,75.977392578125],[-68.14873046875002,76.06704101562497],[-69.48408203125001,76.39916992187503],[-68.1142578125,76.65063476562503],[-69.67382812499994,76.73588867187507],[-69.69423828125002,76.98945312500004],[-70.613134765625,76.82182617187499],[-71.14145507812498,77.02866210937503],[-70.86284179687496,77.175439453125],[-68.97832031250002,77.19531250000006],[-68.13554687499999,77.37958984375001],[-66.38945312499999,77.28027343750003],[-66.69121093749999,77.68120117187502],[-67.68808593749995,77.523779296875],[-68.62153320312498,77.60185546875002],[-69.35136718749999,77.467138671875],[-70.53540039062497,77.699560546875],[-70.11445312500001,77.84135742187505],[-71.27163085937494,77.81313476562497],[-72.81806640624995,78.1943359375],[-72.47250976562498,78.48203125],[-71.65131835937493,78.62314453124998],[-68.99345703124999,78.857421875],[-68.37705078124998,79.037841796875],[-65.82553710937503,79.17373046874997],[-64.79228515624993,80.00063476562502],[-64.17915039062498,80.09926757812497],[-66.84365234374997,80.07622070312507],[-67.05063476562503,80.384521484375],[-64.51552734374997,81],[-63.72197265624993,81.05732421875001],[-63.028662109375006,80.88955078125002],[-62.90336914062496,81.21835937500003],[-61.43598632812498,81.13359375000002],[-60.842871093750034,81.85537109374997],[-59.28193359374998,81.88403320312503],[-56.615136718749994,81.362890625],[-59.26181640624998,82.00664062500005],[-54.54887695312496,82.35063476562505],[-53.671337890624955,82.16406249999997],[-53.55566406250003,81.65327148437501],[-53.022558593750034,82.32172851562504],[-50.894433593749994,81.89521484375001],[-49.54106445312496,81.91806640625003],[-50.93554687500003,82.38281250000003],[-50.03710937499994,82.472412109375],[-44.7294921875,81.77983398437505],[-44.23886718749998,82.3681640625],[-45.55654296875002,82.74702148437498],[-41.87646484375,82.680322265625],[-41.36962890625003,82.75],[-46.136816406250006,82.85883789062504],[-46.169042968750006,83.06386718749997],[-45.41459960937496,83.01767578124998],[-43.00927734375003,83.26459960937501],[-41.300146484375006,83.10078125000004],[-40.35683593750002,83.332177734375],[-38.15625,82.9986328125],[-38.74956054687496,83.37084960937497],[-37.72333984374998,83.49775390624998],[-29.952880859375,83.56484374999997]]]]},"properties":{"name":"Greenland","childNum":14}},{"geometry":{"type":"Polygon","coordinates":[[[-89.2328125,15.888671875],[-88.89404296875,15.890625],[-88.60336914062499,15.76416015625],[-88.5939453125,15.950292968749991],[-88.22832031249999,15.72900390625],[-88.271435546875,15.694873046875003],[-88.36455078124999,15.616015625],[-88.68447265625,15.360498046874994],[-88.96098632812499,15.152441406249991],[-89.142578125,15.072314453125003],[-89.22236328125,14.866064453124991],[-89.16220703124999,14.669238281250003],[-89.17177734375,14.606884765624997],[-89.28671875,14.529980468749997],[-89.36259765624999,14.416015625],[-89.5736328125,14.390087890624997],[-89.54716796874999,14.241259765625003],[-90.04814453124999,13.904052734375],[-90.09521484375,13.736523437499997],[-90.60693359375,13.929003906250003],[-91.37734375,13.990185546874997],[-92.23515624999999,14.54541015625],[-92.15854492187499,14.963574218749997],[-92.14423828125,15.001953125],[-92.09873046874999,15.026757812499994],[-92.07480468749999,15.07421875],[-92.187158203125,15.320898437499991],[-92.08212890624999,15.495556640624997],[-91.9572265625,15.703222656249991],[-91.736572265625,16.07016601562499],[-91.433984375,16.070458984374994],[-90.97958984374999,16.07080078125],[-90.70322265624999,16.071044921875],[-90.52197265625,16.071191406249994],[-90.44716796875,16.072705078124997],[-90.45986328125,16.162353515625],[-90.450146484375,16.261376953124994],[-90.4169921875,16.351318359375],[-90.4169921875,16.39101562499999],[-90.47109375,16.43955078124999],[-90.57578125,16.467822265625003],[-90.63408203124999,16.5107421875],[-90.634375,16.565136718749997],[-90.65996093749999,16.630908203125003],[-90.710693359375,16.70810546874999],[-90.975830078125,16.867822265624994],[-91.409619140625,17.255859375],[-91.1955078125,17.254101562499997],[-90.99296874999999,17.25244140625],[-90.98916015625,17.81640625],[-89.16147460937499,17.81484375],[-89.2328125,15.888671875]]]},"properties":{"name":"Guatemala","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[144.74179687500003,13.25927734375],[144.64931640625002,13.4287109375],[144.87539062500002,13.614648437499994],[144.94082031250002,13.5703125],[144.74179687500003,13.25927734375]]]},"properties":{"name":"Guam","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-57.194775390625,5.5484375],[-57.3185546875,5.335351562499994],[-57.20981445312499,5.195410156249991],[-57.331005859375,5.020166015624994],[-57.711083984374994,4.991064453124991],[-57.91704101562499,4.820410156249991],[-57.84599609374999,4.668164062499997],[-58.05429687499999,4.101660156249991],[-57.646728515625,3.39453125],[-57.303662109375,3.377099609374994],[-57.19736328124999,2.853271484375],[-56.704345703125,2.036474609374991],[-56.4828125,1.942138671875],[-56.96953124999999,1.91640625],[-57.03759765625,1.936474609374997],[-57.092675781249994,2.005810546874997],[-57.118896484375,2.013964843749989],[-57.31748046874999,1.963476562499991],[-57.41269531249999,1.908935546875],[-57.500439453125,1.77382812499999],[-57.54575195312499,1.72607421875],[-57.59443359375,1.7041015625],[-57.795654296875,1.7],[-57.8734375,1.667285156249989],[-57.9828125,1.6484375],[-58.03466796875,1.520263671875],[-58.34067382812499,1.587548828124994],[-58.38037109375,1.530224609374997],[-58.39580078124999,1.481738281249989],[-58.5060546875,1.438671875],[-58.511865234374994,1.28466796875],[-58.68461914062499,1.281054687499989],[-58.73032226562499,1.247509765624997],[-58.78720703124999,1.20849609375],[-58.82177734375,1.201220703124989],[-59.231201171875,1.376025390624989],[-59.53569335937499,1.7],[-59.66660156249999,1.746289062499997],[-59.66850585937499,1.842333984374989],[-59.74072265625,1.874169921874994],[-59.75620117187499,1.900634765625],[-59.75522460937499,2.274121093749997],[-59.8896484375,2.362939453124994],[-59.9943359375,2.689990234374989],[-59.854394531249994,3.5875],[-59.55112304687499,3.933544921874997],[-59.557763671874994,3.960009765624989],[-59.62021484374999,4.023144531249997],[-59.73857421874999,4.226757812499997],[-59.69970703125,4.353515625],[-60.1486328125,4.533251953124989],[-59.990673828125,5.082861328124991],[-60.142041015625,5.238818359374989],[-60.241650390625,5.257958984374994],[-60.335205078125,5.199316406249991],[-60.45952148437499,5.188085937499991],[-60.6513671875,5.221142578124997],[-60.742138671875,5.202050781249994],[-61.37680664062499,5.906982421875],[-61.3908203125,5.938769531249989],[-61.303125,6.049511718749997],[-61.22495117187499,6.129199218749989],[-61.15947265624999,6.174414062499991],[-61.12871093749999,6.214306640624997],[-61.152294921875,6.385107421874991],[-61.151025390624994,6.446533203125],[-61.181591796875,6.513378906249997],[-61.20361328125,6.58837890625],[-61.14560546874999,6.69453125],[-60.717919921874994,6.768310546875],[-60.35209960937499,7.002880859374997],[-60.32207031249999,7.092041015625],[-60.32548828124999,7.133984375],[-60.34506835937499,7.15],[-60.46494140624999,7.166552734374989],[-60.523193359375,7.143701171874994],[-60.583203125,7.156201171874997],[-60.63330078125,7.211083984374994],[-60.718652343749994,7.535937499999989],[-60.513623046875,7.813183593749997],[-60.032421875,8.053564453124991],[-59.99072265625,8.162011718749994],[-59.96484375,8.191601562499997],[-59.849072265625,8.248681640624994],[-59.83164062499999,8.305957031249989],[-60.017529296875,8.54931640625],[-59.20024414062499,8.07460937499999],[-58.51108398437499,7.39804687499999],[-58.48056640624999,7.038134765624989],[-58.67294921874999,6.390771484374994],[-58.414990234375,6.85117187499999],[-57.982568359374994,6.785888671875],[-57.54013671874999,6.33154296875],[-57.2275390625,6.178417968749997],[-57.194775390625,5.5484375]]]},"properties":{"name":"Guyana","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[73.70742187500002,-53.13710937499999],[73.46513671875002,-53.184179687500006],[73.25117187500001,-52.97578125000001],[73.83779296875002,-53.11279296875],[73.70742187500002,-53.13710937499999]]]},"properties":{"name":"Heard I. and McDonald Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-83.635498046875,14.876416015624997],[-84.53764648437496,14.633398437499963],[-84.64594726562498,14.661083984375011],[-84.86044921874998,14.809765625000011],[-84.98515624999999,14.752441406249972],[-85.059375,14.582958984374997],[-85.20834960937498,14.311816406250003],[-85.73393554687496,13.85869140625006],[-85.75341796875,13.852050781250028],[-85.78671874999995,13.844433593749997],[-85.98378906249997,13.965673828125006],[-86.04038085937503,14.050146484374977],[-86.33173828124995,13.770068359375031],[-86.37695312500003,13.755664062500031],[-86.61025390624997,13.774853515625026],[-86.73364257812494,13.763476562500017],[-86.75898437499995,13.746142578125045],[-86.77060546875003,13.698730468749972],[-86.763525390625,13.635253906250014],[-86.72958984375,13.4072265625],[-86.710693359375,13.31337890624998],[-86.72929687499996,13.284375],[-86.79213867187497,13.279785156249972],[-86.87353515624994,13.266503906250023],[-86.918212890625,13.223583984374983],[-87.00932617187499,13.007812499999986],[-87.0591796875,12.991455078125028],[-87.337255859375,12.979248046875028],[-87.48911132812503,13.352929687500051],[-87.814208984375,13.399169921875057],[-87.781884765625,13.521386718749994],[-87.71533203125003,13.812695312500011],[-87.73144531250003,13.841064453125014],[-87.80224609374997,13.889990234375034],[-87.89199218749997,13.894970703124983],[-87.99101562499996,13.879638671874972],[-88.15102539062497,13.987353515624974],[-88.44912109374994,13.850976562499994],[-88.48266601562503,13.854248046875043],[-88.49765624999998,13.904541015624986],[-88.50434570312501,13.964208984374963],[-88.51254882812498,13.97895507812504],[-89.12050781249994,14.370214843749991],[-89.36259765624996,14.416015625],[-89.17177734375,14.606884765624983],[-89.16220703125,14.669238281249989],[-89.22236328125001,14.86606445312502],[-89.142578125,15.072314453125031],[-88.96098632812496,15.15244140625002],[-88.68447265625002,15.360498046875037],[-88.36455078124996,15.616015625000045],[-88.27143554687498,15.694873046875045],[-88.22832031249999,15.729003906249972],[-88.131103515625,15.701025390625034],[-87.87495117187495,15.879345703124955],[-86.35664062499998,15.783203125],[-85.93627929687497,15.953417968750045],[-85.98564453124999,16.02416992187497],[-85.48369140624996,15.899511718749977],[-84.97373046874998,15.989892578124994],[-84.55966796875,15.802001953125],[-84.26142578124998,15.822607421875034],[-83.765283203125,15.405468750000054],[-83.972802734375,15.519628906250034],[-84.11132812499997,15.492431640625],[-84.09506835937503,15.400927734375017],[-83.92744140624998,15.394042968750028],[-83.76044921874998,15.220361328124994],[-83.49794921874997,15.222119140624997],[-83.64638671875,15.368408203125043],[-83.36918945312493,15.239990234375],[-83.29086914062498,15.078906250000045],[-83.2255859375,15.042285156250045],[-83.15751953124999,14.993066406249966],[-83.41503906249994,15.008056640625],[-83.5365234375,14.977001953124983],[-83.635498046875,14.876416015624997]]]},"properties":{"name":"Honduras","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[17.60781250000005,42.76904296875],[17.744238281250063,42.70034179687505],[17.34414062500008,42.790380859375006],[17.60781250000005,42.76904296875]]],[[[16.650683593750017,42.99658203125],[17.188281250000045,42.917041015625045],[16.850683593750006,42.8955078125],[16.650683593750017,42.99658203125]]],[[[17.667578125000063,42.897119140624994],[18.436328125000017,42.559716796874994],[18.517480468750023,42.43291015624999],[17.823828125,42.79741210937502],[17.045410156250057,43.014892578125],[17.667578125000063,42.897119140624994]]],[[[16.785253906250006,43.270654296874966],[16.490332031250034,43.28618164062502],[16.44892578125004,43.38706054687506],[16.89130859375001,43.314648437499955],[16.785253906250006,43.270654296874966]]],[[[15.371386718750074,43.973828124999955],[15.437207031250068,43.899511718750006],[15.270019531250028,44.01074218750003],[15.371386718750074,43.973828124999955]]],[[[14.488085937500074,44.66005859375005],[14.31240234375008,44.90039062499997],[14.33125,45.16499023437498],[14.488085937500074,44.66005859375005]]],[[[14.810253906250068,44.97705078124997],[14.45039062500004,45.079199218750006],[14.571093750000017,45.224755859374994],[14.810253906250068,44.97705078124997]]],[[[18.905371093750006,45.931738281250034],[18.839062499999983,45.83574218750002],[19.064257812500045,45.51499023437506],[19.004687500000074,45.39951171875006],[19.4,45.2125],[19.062890625000023,45.13720703125],[19.007128906250045,44.86918945312502],[18.83642578125,44.883251953124955],[18.66259765625,45.07744140624999],[17.812792968750074,45.078125],[16.918652343749983,45.27656249999998],[16.53066406250008,45.21669921875002],[16.29335937500005,45.00883789062496],[16.028320312500057,45.18959960937502],[15.788085937500057,45.17895507812497],[15.736621093750045,44.76582031250001],[16.10341796875008,44.52099609375006],[16.300097656250017,44.12451171875],[17.27382812500005,43.44575195312501],[17.650488281250063,43.006591796875],[17.585156250000068,42.93837890625005],[16.903125,43.392431640625006],[16.393945312500023,43.54335937500002],[15.985546875000068,43.519775390625],[15.185839843750017,44.17211914062503],[15.122949218749994,44.256787109374955],[15.470996093750045,44.27197265625003],[14.981347656250023,44.60292968750005],[14.854589843750034,45.08100585937501],[14.550488281249983,45.297705078125006],[14.31269531250004,45.33779296875002],[13.86074218750008,44.83740234375003],[13.517187500000063,45.481787109375034],[13.878710937500017,45.428369140624994],[14.369921875000074,45.48144531250006],[14.427343750000034,45.50576171875002],[14.56884765625,45.65722656249997],[14.591796875000057,45.65126953125002],[14.649511718750006,45.57148437500001],[14.793066406250034,45.47822265625001],[14.95458984375,45.499902343749994],[15.110449218750034,45.450781250000034],[15.242089843750023,45.44140624999997],[15.339453125000063,45.46704101562506],[15.326660156250028,45.502294921875034],[15.291210937500011,45.541552734375045],[15.283593750000051,45.5796875],[15.35371093750004,45.659912109375],[15.27705078125004,45.73261718749998],[15.652148437500074,45.86215820312498],[15.675585937500045,45.98369140624996],[15.666210937500011,46.04848632812502],[15.596875,46.10922851562506],[15.592578125000017,46.139990234375006],[15.608984374999977,46.171923828125045],[16.1064453125,46.382226562499994],[16.32119140625005,46.53461914062504],[16.42763671875005,46.5244140625],[16.516210937499977,46.499902343749966],[16.569921875,46.48500976562505],[16.748046875000057,46.41640625000002],[16.87148437500008,46.33930664062504],[17.310644531250006,45.99614257812502],[17.80712890625,45.79042968750002],[18.358300781250023,45.75302734375006],[18.533593750000023,45.79614257812503],[18.56464843750004,45.81328124999999],[18.666015625,45.90747070312497],[18.905371093750006,45.931738281250034]]]]},"properties":{"name":"Croatia","childNum":8}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-72.80458984374997,18.777685546875063],[-72.82221679687501,18.707128906249977],[-73.07797851562498,18.790917968749994],[-73.27641601562499,18.95405273437501],[-72.80458984374997,18.777685546875063]]],[[[-71.647216796875,19.195947265624994],[-71.80712890624997,18.987011718749983],[-71.733642578125,18.85639648437501],[-71.72705078125,18.80322265625003],[-71.74321289062502,18.73291015625],[-71.86650390624999,18.61416015625005],[-71.98686523437499,18.61035156249997],[-72.000390625,18.59790039062503],[-71.94038085937493,18.51259765625005],[-71.87255859374997,18.416210937499955],[-71.76191406249998,18.34130859374997],[-71.73725585937495,18.27080078124999],[-71.76831054687497,18.039160156250063],[-71.85292968749997,18.119140625],[-71.94609375,18.186083984375045],[-72.05986328124993,18.228564453125017],[-72.87666015624998,18.151757812499994],[-73.38515625000002,18.251171874999983],[-73.747314453125,18.190234375000017],[-73.88496093749998,18.041894531249994],[-74.478125,18.45],[-74.3875,18.624707031249983],[-74.22773437499998,18.662695312499977],[-72.78935546874996,18.434814453125],[-72.37607421874998,18.57446289062503],[-72.34765624999994,18.674951171874994],[-72.81108398437496,19.071582031250074],[-72.70322265625,19.441064453125023],[-73.43837890624994,19.722119140624983],[-73.21777343750003,19.88369140625005],[-72.63701171875002,19.90087890625],[-72.21982421875003,19.744628906250057],[-71.834716796875,19.696728515624983],[-71.77924804687498,19.718164062499994],[-71.75742187499998,19.68818359375001],[-71.71147460937493,19.486572265625057],[-71.74648437499997,19.28583984375001],[-71.647216796875,19.195947265624994]]]]},"properties":{"name":"Haiti","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[22.1318359375,48.405322265624996],[22.253710937500017,48.407373046874994],[22.582421875000023,48.134033203125],[22.769140625,48.109619140625],[22.87666015625001,47.947265625],[21.99970703125001,47.505029296874994],[21.121679687500006,46.282421875],[20.76025390625,46.246240234374994],[20.613671875000023,46.13349609375],[20.508105468750017,46.166943359375],[20.28095703125001,46.1330078125],[20.241796875,46.10859375],[20.21015625000001,46.126025390624996],[20.161425781250017,46.141894531249996],[19.93408203125,46.161474609375],[19.84443359375001,46.145898437499994],[19.61347656250001,46.169189453125],[19.421289062500023,46.064453125],[18.666015625,45.907470703125],[18.56464843750001,45.81328125],[18.533593750000023,45.796142578125],[18.358300781250023,45.75302734375],[17.80712890625,45.790429687499994],[17.310644531250006,45.996142578124996],[16.871484375000023,46.339306640625],[16.748046875,46.41640625],[16.569921875,46.485009765624994],[16.516210937500006,46.499902343749994],[16.283593750000023,46.857275390625],[16.093066406250017,46.86328125],[16.453417968750017,47.006787109375],[16.44287109375,47.39951171875],[16.676562500000017,47.536035156249994],[16.421289062500023,47.674462890624994],[17.06660156250001,47.707568359374996],[17.147363281250023,48.00595703125],[17.76191406250001,47.770166015624994],[18.72421875,47.787158203124996],[18.791894531250023,48.000292968749996],[19.625390625000023,48.223095703125],[19.95039062500001,48.146630859374994],[20.333789062500017,48.295556640624994],[20.490039062500017,48.526904296874996],[21.45136718750001,48.55224609375],[21.766992187500023,48.3380859375],[22.1318359375,48.405322265624996]]]},"properties":{"name":"Hungary","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[122.9489257812501,-10.90927734375002],[122.82617187500003,-10.899121093749983],[122.84570312500003,-10.761816406249991],[123.37109375000003,-10.474902343749989],[123.41816406250004,-10.651269531250037],[122.9489257812501,-10.90927734375002]]],[[[121.8830078125001,-10.590332031249957],[121.70468750000006,-10.5556640625],[121.99833984375002,-10.446972656249983],[121.8830078125001,-10.590332031249957]]],[[[123.41621093750004,-10.302636718749966],[123.3255859375,-10.264160156249943],[123.45878906250002,-10.13994140624996],[123.41621093750004,-10.302636718749966]]],[[[120.0125,-9.374707031250026],[120.78447265625002,-9.95703125],[120.83261718750006,-10.0375],[120.69804687500002,-10.206640624999949],[120.4391601562501,-10.294042968749991],[120.14482421875002,-10.200097656249952],[119.60107421874997,-9.773535156250006],[119.08544921875003,-9.706933593750023],[118.95878906250002,-9.519335937500003],[119.29589843749997,-9.3671875],[119.9420898437501,-9.301464843750026],[120.0125,-9.374707031250026]]],[[[125.06816406250002,-9.511914062499997],[124.42753906250002,-10.14863281250004],[123.7472656250001,-10.347167968749986],[123.60478515625002,-10.270117187500006],[123.71640625000012,-10.078613281249986],[123.5892578125,-9.966796875000028],[123.709375,-9.61484375],[124.0363281250001,-9.341601562500031],[124.28232421875012,-9.427929687500026],[124.44443359375012,-9.190332031250023],[124.92226562500005,-8.942480468749977],[124.93681640625007,-9.053417968750026],[125.14902343750012,-9.042578125000034],[125.10048828125,-9.189843750000023],[124.96015625000004,-9.213769531250009],[125.06816406250002,-9.511914062499997]]],[[[115.60996093750012,-8.769824218749974],[115.48046875000003,-8.715429687500006],[115.56142578125,-8.669921874999972],[115.60996093750012,-8.769824218749974]]],[[[122.97734375000002,-8.54521484374996],[122.88779296875006,-8.587304687500009],[123.01054687500002,-8.448339843750034],[123.153125,-8.475781250000026],[122.97734375000002,-8.54521484374996]]],[[[119.46406250000004,-8.741015624999974],[119.38554687500002,-8.736035156250026],[119.4464843750001,-8.429199218749957],[119.55722656250012,-8.518847656250003],[119.46406250000004,-8.741015624999974]]],[[[123.31748046875012,-8.354785156249974],[123.02500000000012,-8.395507812500014],[123.21708984375002,-8.235449218750006],[123.33603515625006,-8.269042968750014],[123.31748046875012,-8.354785156249974]]],[[[116.64082031250004,-8.613867187500006],[116.51425781250012,-8.820996093750011],[116.58652343750012,-8.886132812499966],[116.23935546875006,-8.912109375000014],[115.85732421875005,-8.787890625000017],[116.07646484375002,-8.744921874999974],[116.06113281250006,-8.437402343750023],[116.4015625000001,-8.204199218750034],[116.7189453125001,-8.336035156249977],[116.64082031250004,-8.613867187500006]]],[[[124.28662109375003,-8.32949218749998],[124.14667968750004,-8.531445312499997],[123.92773437500003,-8.448925781249969],[124.23955078125002,-8.20341796874996],[124.28662109375003,-8.32949218749998]]],[[[123.92480468750003,-8.2724609375],[123.55302734375007,-8.566796875],[123.23007812500006,-8.530664062500023],[123.47587890625007,-8.322265625000014],[123.39121093750012,-8.280468750000026],[123.77597656250006,-8.190429687499986],[123.92480468750003,-8.2724609375]]],[[[138.89511718750006,-8.388671874999957],[138.56337890625,-8.30908203125],[138.79619140625007,-8.173632812500017],[138.89511718750006,-8.388671874999957]]],[[[117.55634765625004,-8.367285156249949],[117.49052734375007,-8.183398437499974],[117.66503906249997,-8.148242187500003],[117.55634765625004,-8.367285156249949]]],[[[124.5755859375,-8.140820312499997],[125.05029296874997,-8.179589843749994],[125.13173828125,-8.326464843749989],[124.38066406250002,-8.41513671875002],[124.43066406249997,-8.18320312500002],[124.5755859375,-8.140820312499997]]],[[[127.8234375000001,-8.098828124999969],[128.11923828125012,-8.17070312499996],[128.02353515625006,-8.255371093749972],[127.82089843750012,-8.190234375000031],[127.8234375000001,-8.098828124999969]]],[[[122.7829101562501,-8.61171875],[121.65136718749997,-8.898730468749946],[121.41464843750006,-8.81484375],[121.32832031250004,-8.916894531250009],[121.03525390625012,-8.935449218749966],[120.55048828125004,-8.80185546875002],[119.909375,-8.857617187500011],[119.80791015625002,-8.697656250000023],[119.87480468750007,-8.419824218749994],[120.61025390625005,-8.24042968750004],[121.44453125000004,-8.57783203125004],[121.96650390625004,-8.455175781250006],[122.32324218749997,-8.628320312500023],[122.85048828125,-8.304394531250011],[122.91914062500004,-8.221875],[122.75859375000002,-8.185937499999952],[122.91699218749997,-8.105566406250006],[123.00595703125006,-8.329101562499986],[122.7829101562501,-8.61171875]]],[[[130.86220703125,-8.31875],[130.77519531250002,-8.34990234374996],[131.02011718750012,-8.091308593749943],[131.17636718750006,-8.130761718749994],[130.86220703125,-8.31875]]],[[[118.24238281250004,-8.317773437499994],[118.61191406250006,-8.28066406249998],[118.71386718749997,-8.41494140624998],[118.926171875,-8.297656249999974],[119.12968750000002,-8.668164062499969],[118.74589843750002,-8.735449218749991],[118.83261718750012,-8.833398437499966],[118.47861328125012,-8.856445312499957],[118.37890625000003,-8.674609375000031],[118.18994140624997,-8.840527343749997],[117.06132812500002,-9.099023437499994],[116.78847656250005,-9.006347656250028],[116.83505859375012,-8.532421875000026],[117.16484375000007,-8.367187500000014],[117.56708984375004,-8.426367187499991],[117.80605468750005,-8.711132812500011],[117.96953125000002,-8.728027343749986],[118.23486328124997,-8.591894531249963],[117.81484375000005,-8.342089843749974],[117.7552734375,-8.149511718749991],[118.11748046875007,-8.12226562500004],[118.24238281250004,-8.317773437499994]]],[[[115.44785156250012,-8.155175781249994],[115.70429687500004,-8.40712890624998],[115.14492187500005,-8.849023437500037],[115.05507812500005,-8.573046874999946],[114.61318359375,-8.37832031249998],[114.46757812500007,-8.166308593749946],[114.93847656249997,-8.18710937500002],[115.15400390625004,-8.065722656249974],[115.44785156250012,-8.155175781249994]]],[[[129.83886718749997,-7.954589843749986],[129.71347656250012,-8.04072265625004],[129.60898437500006,-7.803417968750011],[129.81298828124997,-7.819726562499952],[129.83886718749997,-7.954589843749986]]],[[[126.80097656250004,-7.667871093750009],[126.4720703125,-7.950390625000011],[126.04003906250003,-7.885839843750006],[125.79824218750005,-7.984570312499969],[125.97529296875004,-7.663378906249989],[126.21367187500002,-7.706738281250026],[126.60957031250004,-7.571777343749972],[126.80097656250004,-7.667871093750009]]],[[[127.41943359375003,-7.623046875000028],[127.37070312500012,-7.512792968749949],[127.47519531250012,-7.531054687500031],[127.41943359375003,-7.623046875000028]]],[[[138.53535156250004,-8.273632812499969],[138.2962890625,-8.405175781250037],[137.65039062499997,-8.386132812499966],[138.08183593750002,-7.566210937500003],[138.29550781250012,-7.4384765625],[138.76982421875002,-7.390429687499974],[138.98906250000002,-7.696093749999989],[138.53535156250004,-8.273632812499969]]],[[[131.3255859375,-7.999511718749986],[131.11376953125003,-7.997363281249989],[131.13779296875012,-7.684863281250017],[131.64345703125,-7.11279296875],[131.73613281250007,-7.197070312500017],[131.64384765625002,-7.266894531249946],[131.62441406250005,-7.626171874999955],[131.3255859375,-7.999511718749986]]],[[[131.98203125000006,-7.202050781249966],[131.75078125000002,-7.116796875],[131.92226562500005,-7.104492187499986],[131.98203125000006,-7.202050781249966]]],[[[128.6701171875001,-7.183300781249969],[128.52978515625003,-7.134570312499989],[128.62773437500007,-7.06875],[128.6701171875001,-7.183300781249969]]],[[[120.77441406250003,-7.118945312500003],[120.64082031250004,-7.115820312499991],[120.63339843750006,-7.018261718750011],[120.77441406250003,-7.118945312500003]]],[[[113.84453125000007,-7.105371093749994],[113.12695312499997,-7.224121093750028],[112.72587890625007,-7.072753906250014],[112.86806640625,-6.899902343749972],[113.06738281250003,-6.879980468749991],[113.97470703125012,-6.873046875],[114.0736328125,-6.960156249999983],[113.84453125000007,-7.105371093749994]]],[[[115.37705078125006,-6.97080078125002],[115.22031250000012,-6.952539062500037],[115.24052734375007,-6.861230468749994],[115.54609375000004,-6.938671874999955],[115.37705078125006,-6.97080078125002]]],[[[105.25283203125005,-6.640429687499946],[105.12138671875007,-6.614941406249997],[105.26054687500002,-6.523925781250014],[105.25283203125005,-6.640429687499946]]],[[[134.53681640625004,-6.442285156249994],[134.32275390624997,-6.84873046875002],[134.09082031249997,-6.833789062500003],[134.10703125000006,-6.471582031250009],[134.19462890625007,-6.459765625],[134.11464843750005,-6.190820312500009],[134.53681640625004,-6.442285156249994]]],[[[107.37392578125005,-6.007617187499989],[107.66679687500002,-6.215820312499957],[108.33017578125012,-6.286035156249966],[108.67783203125006,-6.790527343749972],[110.42626953124997,-6.947265625000028],[110.83476562500002,-6.424218749999952],[110.97226562500012,-6.435644531249977],[111.18154296875005,-6.686718749999969],[111.54033203125002,-6.648242187500031],[112.0873046875,-6.89335937499996],[112.53925781250004,-6.926464843749955],[112.64873046875007,-7.221289062499977],[112.7943359375,-7.304492187499974],[112.79453125000012,-7.55244140625004],[113.01357421875005,-7.657714843749986],[113.49765625000006,-7.723828124999955],[114.07070312500005,-7.633007812500011],[114.40927734375012,-7.79248046875],[114.38691406250004,-8.405175781250037],[114.58378906250002,-8.769628906250034],[113.25332031250005,-8.286718749999963],[112.67880859375006,-8.409179687499957],[111.50996093750004,-8.30507812499998],[110.60722656250002,-8.149414062499972],[109.28164062500005,-7.704882812500003],[108.74121093749997,-7.667089843750034],[108.45175781250006,-7.79697265625002],[107.91748046875003,-7.724121093750014],[107.28496093750007,-7.471679687500014],[106.45527343750004,-7.368652343749986],[106.51972656250004,-7.053710937499943],[106.19824218749997,-6.927832031249977],[105.25546875000012,-6.835253906250031],[105.37089843750002,-6.664355468750031],[105.48369140625007,-6.781542968750017],[105.65507812500002,-6.469531249999946],[105.78691406250002,-6.456933593749966],[105.86826171875006,-6.11640625000004],[106.075,-5.914160156249963],[106.82519531249997,-6.098242187499977],[107.0462890625,-5.90419921874998],[107.37392578125005,-6.007617187499989]]],[[[120.52832031249997,-6.2984375],[120.48730468749997,-6.464843749999972],[120.47734375000007,-5.775292968750009],[120.52832031249997,-6.2984375]]],[[[112.7194335937501,-5.81103515625],[112.58603515625006,-5.803613281249994],[112.69003906250006,-5.726171875000034],[112.7194335937501,-5.81103515625]]],[[[132.80712890625003,-5.850781250000011],[132.68144531250002,-5.91259765625],[132.63017578125002,-5.60703125],[132.80712890625003,-5.850781250000011]]],[[[134.74697265625,-5.707031249999957],[134.71416015625007,-6.29511718750004],[134.44111328125004,-6.334863281249966],[134.15488281250006,-6.06289062499998],[134.3019531250001,-6.009765624999986],[134.34306640625002,-5.833007812499943],[134.20537109375002,-5.707226562499997],[134.34130859375003,-5.712890624999986],[134.57080078124997,-5.42734375],[134.74697265625,-5.707031249999957]]],[[[132.92626953124997,-5.902050781249983],[132.84501953125002,-5.987988281249997],[133.13847656250002,-5.317871093749986],[133.11962890625003,-5.575976562499989],[132.92626953124997,-5.902050781249983]]],[[[102.36718750000003,-5.478710937499983],[102.1107421875,-5.32255859374996],[102.3717773437501,-5.366406250000011],[102.36718750000003,-5.478710937499983]]],[[[123.62675781250007,-5.271582031249963],[123.58261718750006,-5.36738281250004],[123.54277343750002,-5.271093749999963],[123.62675781250007,-5.271582031249963]]],[[[122.04296874999997,-5.437988281250028],[121.80849609375,-5.256152343750017],[121.91367187500012,-5.072265624999957],[122.04101562500003,-5.158789062499991],[122.04296874999997,-5.437988281250028]]],[[[122.64511718750012,-5.26943359374998],[122.5638671875,-5.3875],[122.28310546875,-5.319531249999969],[122.39628906250002,-5.069824218749986],[122.36894531250007,-4.767187499999977],[122.70195312500002,-4.61865234375],[122.75986328125012,-4.933886718750003],[122.61406250000007,-5.138671874999986],[122.64511718750012,-5.26943359374998]]],[[[123.17978515625006,-4.551171875000023],[123.195703125,-4.82265625],[123.05517578124997,-4.748242187500026],[122.97167968750003,-5.138476562500031],[123.18730468750007,-5.333007812499957],[122.96875,-5.405761718749943],[122.81210937500012,-5.671289062499952],[122.64501953124997,-5.663378906250031],[122.58642578124997,-5.488867187500006],[122.76650390625005,-5.210156249999983],[122.85332031250007,-4.618359375000026],[123.074609375,-4.38691406250004],[123.17978515625006,-4.551171875000023]]],[[[133.57080078124997,-4.245898437500003],[133.621875,-4.299316406249957],[133.32089843750006,-4.111035156249969],[133.57080078124997,-4.245898437500003]]],[[[123.2423828125001,-4.112988281250011],[123.07617187499997,-4.227148437499991],[122.96904296875002,-4.029980468749969],[123.21191406250003,-3.997558593750028],[123.2423828125001,-4.112988281250011]]],[[[128.56259765625012,-3.58544921875],[128.39160156250003,-3.637890625000026],[128.45156250000005,-3.514746093749991],[128.56259765625012,-3.58544921875]]],[[[128.2755859375001,-3.67460937499996],[127.97802734374997,-3.770996093749972],[127.925,-3.69931640625002],[128.32910156249997,-3.51591796874996],[128.2755859375001,-3.67460937499996]]],[[[116.42412109375007,-3.464453124999963],[116.38779296875012,-3.636718749999972],[116.3265625,-3.539062499999972],[116.42412109375007,-3.464453124999963]]],[[[116.30332031250006,-3.868164062499957],[116.05878906250004,-4.006933593749991],[116.06357421875006,-3.457910156249952],[116.26972656250004,-3.251074218750006],[116.30332031250006,-3.868164062499957]]],[[[126.86113281250007,-3.087890624999986],[127.22734375000007,-3.391015625],[127.22958984375006,-3.633007812500011],[126.68632812500007,-3.823632812500037],[126.21455078125004,-3.605175781250026],[126.05654296875,-3.420996093749991],[126.08828125,-3.105468750000014],[126.86113281250007,-3.087890624999986]]],[[[106.88642578125004,-3.005273437500023],[106.7428710937501,-2.932812500000011],[106.91064453124997,-2.93398437499998],[106.88642578125004,-3.005273437500023]]],[[[129.75468750000007,-2.865820312500034],[130.3791015625001,-2.989355468749977],[130.56992187500006,-3.130859375000028],[130.85996093750006,-3.570312500000028],[130.805078125,-3.85771484374996],[129.844140625,-3.327148437499957],[129.51171875000003,-3.32851562499998],[129.46767578125005,-3.453222656249977],[128.8625,-3.234960937500006],[128.51660156249997,-3.449121093750037],[128.13203125000004,-3.157421875000026],[127.90234374999997,-3.496289062499955],[127.87792968749997,-3.222070312499966],[128.19853515625002,-2.865917968749969],[128.99111328125,-2.82851562499998],[129.17441406250006,-2.933496093749966],[129.48417968750002,-2.785742187499977],[129.75468750000007,-2.865820312500034]]],[[[100.42509765625007,-3.182910156249974],[100.46513671875007,-3.32851562499998],[100.20429687500004,-2.98681640625],[100.19853515625002,-2.785546875000023],[100.45458984375003,-3.001953124999972],[100.42509765625007,-3.182910156249974]]],[[[108.2072265625001,-2.997656249999977],[108.05527343750006,-3.22685546874996],[107.85820312500002,-3.086328125000023],[107.61445312500004,-3.209375],[107.56347656250003,-2.920117187499997],[107.66630859375002,-2.566308593750037],[107.83779296875005,-2.530273437499972],[108.21513671875002,-2.696972656250011],[108.29062500000012,-2.829980468750023],[108.2072265625001,-2.997656249999977]]],[[[100.20410156249997,-2.741015625000017],[100.01494140625007,-2.819726562499966],[99.98789062500006,-2.525390624999957],[100.20410156249997,-2.741015625000017]]],[[[99.84306640625007,-2.343066406250031],[99.60703125000012,-2.257519531250011],[99.57216796875005,-2.025781249999966],[99.84306640625007,-2.343066406250031]]],[[[126.055078125,-2.451269531249963],[125.86289062500006,-2.077148437499943],[125.92275390625,-1.974804687499969],[126.055078125,-2.451269531249963]]],[[[126.02421875000007,-1.789746093750011],[126.33173828125004,-1.822851562500006],[125.47919921875004,-1.940039062499991],[125.38720703124997,-1.843066406249946],[126.02421875000007,-1.789746093750011]]],[[[130.35332031250007,-1.690527343749963],[130.41884765625,-1.971289062499963],[130.24804687500003,-2.047753906249994],[129.7376953125,-1.866894531250011],[130.35332031250007,-1.690527343749963]]],[[[124.96953125000007,-1.70546875],[125.18789062500005,-1.712890624999986],[125.31406250000006,-1.877148437499969],[124.41777343750002,-2.005175781250031],[124.32968750000012,-1.858886718749972],[124.41757812500006,-1.659277343749991],[124.96953125000007,-1.70546875]]],[[[135.47421875000006,-1.591796875000014],[136.89257812500003,-1.799707031249994],[136.22812500000012,-1.893652343749949],[135.47421875000006,-1.591796875000014]]],[[[108.953125,-1.61962890625],[108.83789062499997,-1.661621093750028],[108.80371093750003,-1.567773437499994],[108.953125,-1.61962890625]]],[[[106.04570312500002,-1.669433593750014],[106.36591796875004,-2.464843749999972],[106.81845703125006,-2.573339843749963],[106.6120117187501,-2.895507812499957],[106.66718750000004,-3.071777343749986],[105.99873046875004,-2.824902343749955],[105.7858398437501,-2.18134765625004],[105.13339843750012,-2.042578125],[105.45957031250006,-1.574707031249986],[105.58544921875003,-1.526757812499994],[105.7008789062501,-1.731054687499963],[105.7204101562501,-1.533886718750026],[105.91005859375,-1.504980468749991],[106.04570312500002,-1.669433593750014]]],[[[123.59755859375,-1.704296875000011],[123.48251953125006,-1.681445312499974],[123.52851562500004,-1.502832031250009],[123.59755859375,-1.704296875000011]]],[[[128.1530273437501,-1.66054687499998],[127.56162109375012,-1.728515624999972],[127.39501953125003,-1.589843749999972],[127.64667968750004,-1.332421875],[128.1530273437501,-1.66054687499998]]],[[[123.2123046875,-1.171289062499966],[123.23779296874997,-1.389355468749983],[123.43476562500004,-1.236816406249986],[123.54726562500005,-1.337402343749957],[123.51191406250004,-1.447363281249977],[123.27490234374997,-1.437207031249955],[123.17294921875006,-1.616015624999974],[123.15039062500003,-1.304492187500003],[122.89042968750007,-1.58720703124996],[122.81083984375002,-1.432128906249986],[122.90800781250002,-1.182226562499963],[123.2123046875,-1.171289062499966]]],[[[109.71025390625007,-1.1806640625],[109.46367187500002,-1.277539062500026],[109.4759765625,-0.9853515625],[109.74335937500004,-1.039355468749989],[109.71025390625007,-1.1806640625]]],[[[134.96533203124997,-1.116015624999974],[134.86171875,-1.114160156249952],[134.82792968750002,-0.978808593750003],[134.99628906250004,-1.03408203124998],[134.96533203124997,-1.116015624999974]]],[[[99.16386718750007,-1.777929687500006],[98.82773437500006,-1.609960937499977],[98.60175781250004,-1.197851562499949],[98.67607421875007,-0.970507812500003],[98.93261718750003,-0.954003906250009],[99.2672851562501,-1.62773437499996],[99.16386718750007,-1.777929687500006]]],[[[131.00185546875005,-1.315527343750034],[130.78232421875006,-1.255468749999963],[130.67294921875006,-0.959765625000031],[131.03300781250007,-0.917578124999963],[131.00185546875005,-1.315527343750034]]],[[[135.38300781250004,-0.6513671875],[135.89355468749997,-0.725781249999969],[136.37529296875007,-1.094042968750031],[136.1647460937501,-1.214746093750023],[135.91503906250003,-1.178417968749997],[135.74707031249997,-0.823046874999974],[135.64570312500004,-0.881933593749991],[135.38300781250004,-0.6513671875]]],[[[127.30039062500012,-0.780957031250026],[127.1564453125001,-0.760937500000026],[127.20908203125006,-0.619335937499955],[127.30039062500012,-0.780957031250026]]],[[[130.6266601562501,-0.528710937499966],[130.46542968750006,-0.486523437499983],[130.6159179687501,-0.417285156250003],[130.6266601562501,-0.528710937499966]]],[[[121.86435546875012,-0.406835937500006],[121.88125,-0.502636718749983],[121.65527343749997,-0.526171874999989],[121.86435546875012,-0.406835937500006]]],[[[140.97343750000007,-2.609765625],[140.97353515625,-2.803417968750026],[140.975,-6.346093750000023],[140.86230468749997,-6.740039062499989],[140.97519531250006,-6.90537109375002],[140.97617187500012,-9.11875],[140.00292968749997,-8.19550781250004],[140.11699218750002,-7.923730468750009],[139.93476562500004,-8.101171875],[139.38564453125,-8.189062499999963],[139.24882812500002,-7.982421874999972],[138.890625,-8.237792968749943],[139.08798828125012,-7.587207031250017],[138.74794921875,-7.25146484375],[139.17685546875006,-7.1904296875],[138.84570312500003,-7.13632812499999],[138.60136718750007,-6.936523437499972],[138.86455078125007,-6.858398437499943],[138.43867187500004,-6.343359375],[138.2962890625,-5.94902343749996],[138.37460937500006,-5.84365234374998],[138.19960937500005,-5.80703125],[138.33964843750007,-5.675683593749966],[138.08710937500004,-5.70917968750004],[138.06083984375002,-5.46523437499998],[137.27978515624997,-4.945410156249949],[136.61884765625004,-4.81875],[135.97968750000004,-4.530859374999963],[135.19560546875007,-4.450683593749972],[134.67968749999997,-4.079101562499943],[134.70654296875003,-3.954785156250026],[134.88652343750007,-3.938476562499986],[134.26621093750012,-3.945800781249972],[134.14707031250006,-3.79677734374998],[133.97382812500004,-3.817968750000034],[133.67832031250006,-3.4794921875],[133.8415039062501,-3.054785156249991],[133.70039062500004,-3.0875],[133.653125,-3.364355468749991],[133.51816406250012,-3.411914062500003],[133.40087890625003,-3.899023437500034],[133.24873046875004,-4.062304687499989],[132.91445312500005,-4.05693359374996],[132.75390625000003,-3.703613281250014],[132.86972656250006,-3.550976562499997],[132.75136718750005,-3.294628906249997],[131.97119140624997,-2.788574218750014],[132.2306640625001,-2.680371093749997],[132.725,-2.789062500000028],[133.19101562500006,-2.43779296874996],[133.70009765625005,-2.624609375],[133.75332031250005,-2.450683593750014],[133.90488281250012,-2.390917968750003],[133.79101562500003,-2.293652343749997],[133.92158203125004,-2.102050781249957],[132.96279296875005,-2.272558593749963],[132.30761718749997,-2.24228515625002],[132.02343749999997,-1.99033203125002],[131.93037109375004,-1.559667968750034],[131.29375,-1.393457031250009],[130.99589843750007,-1.42470703124998],[131.1908203125,-1.165820312500003],[131.2572265625,-0.855468750000014],[131.80429687500006,-0.703808593750026],[132.39375,-0.355468750000028],[132.85644531250003,-0.417382812500023],[133.47265624999997,-0.726171874999963],[133.97451171875,-0.744335937500026],[134.11152343750004,-0.84677734375002],[134.07197265625004,-1.001855468749994],[134.25957031250007,-1.362988281250026],[134.105859375,-1.720996093749946],[134.19482421875003,-2.309082031249943],[134.45996093749997,-2.83232421874996],[134.48330078125,-2.583007812499972],[134.62744140624997,-2.536718749999963],[134.70214843749997,-2.933593749999986],[134.84335937500006,-2.909179687499986],[134.88681640625006,-3.209863281249966],[135.25156250000012,-3.368554687499966],[135.48662109375002,-3.34511718749998],[135.85917968750002,-2.99531250000004],[136.38994140625002,-2.273339843750037],[137.07207031250002,-2.105078124999949],[137.1710937500001,-2.025488281249991],[137.1234375,-1.840917968749963],[137.80625000000012,-1.483203125],[139.78955078125003,-2.34824218750002],[140.62255859374997,-2.44580078125],[140.74746093750005,-2.607128906249997],[140.97343750000007,-2.609765625]]],[[[104.47421875000012,-0.334667968749955],[104.59013671875002,-0.466601562500017],[104.36318359375,-0.658593749999966],[104.25712890625002,-0.463281249999966],[104.47421875000012,-0.334667968749955]]],[[[127.56699218750006,-0.318945312499949],[127.68242187500002,-0.46835937500002],[127.60498046874997,-0.610156249999946],[127.88017578125002,-0.808691406249991],[127.7611328125,-0.883691406249994],[127.62382812500002,-0.76601562499999],[127.46269531250002,-0.80595703124996],[127.46865234375,-0.64296875],[127.3,-0.500292968749946],[127.32509765625,-0.335839843750023],[127.45517578125012,-0.406347656249991],[127.56699218750006,-0.318945312499949]]],[[[127.24990234375005,-0.4953125],[127.11914062500003,-0.520507812499986],[127.12646484375003,-0.278613281250003],[127.29003906250003,-0.284375],[127.24990234375005,-0.4953125]]],[[[103.73652343750004,-0.347949218750003],[103.461328125,-0.357617187500011],[103.54892578125006,-0.227539062499986],[103.73652343750004,-0.347949218750003]]],[[[130.81328125000007,-0.004101562500026],[131.27685546875003,-0.149804687499952],[131.33974609375005,-0.290332031249989],[131.00537109374997,-0.360742187500037],[130.62216796875006,-0.0859375],[130.89921875000002,-0.344433593749997],[130.7501953125001,-0.44384765625],[130.6886718750001,-0.296582031250011],[130.55078124999997,-0.366406250000026],[130.23662109375002,-0.209667968749983],[130.3625,-0.072851562500006],[130.81328125000007,-0.004101562500026]]],[[[98.45927734375007,-0.530468749999969],[98.30966796875012,-0.531835937499977],[98.4271484375,-0.226464843750037],[98.3229492187501,-0.000781249999974],[98.54414062500004,-0.257617187499989],[98.45927734375007,-0.530468749999969]]],[[[104.77861328125007,-0.175976562499955],[105.00537109374997,-0.282812499999963],[104.44707031250002,-0.189160156249983],[104.54267578125004,0.01772460937498],[104.77861328125007,-0.175976562499955]]],[[[103.28447265625002,0.541943359375011],[103.13955078125,0.549072265625043],[103.18740234375,0.699755859375017],[103.28447265625002,0.541943359375011]]],[[[103.0275390625001,0.746630859374974],[102.4904296875001,0.856640625],[102.50664062500002,1.088769531250037],[103.00244140624997,0.859277343750009],[103.0275390625001,0.746630859374974]]],[[[103.42392578125012,1.048339843749972],[103.31542968750003,1.071289062500028],[103.37998046875006,1.133642578125034],[103.42392578125012,1.048339843749972]]],[[[103.16640625000005,0.870166015625003],[102.7018554687501,1.0537109375],[102.72558593749997,1.158837890625023],[102.99941406250005,1.067773437500023],[103.16640625000005,0.870166015625003]]],[[[104.02480468750005,1.180566406250009],[104.13984375000004,1.165576171874974],[104.06611328125004,0.989550781249989],[103.93222656250012,1.071386718749963],[104.02480468750005,1.180566406250009]]],[[[104.58535156250005,1.21611328124996],[104.66289062500002,1.04951171875004],[104.57519531250003,0.831933593750037],[104.43925781250002,1.050439453125051],[104.25195312499997,1.014892578125],[104.36181640624997,1.18149414062502],[104.58535156250005,1.21611328124996]]],[[[102.4271484375,0.990136718750023],[102.27958984375002,1.075683593750043],[102.25634765625003,1.397070312499963],[102.44287109374997,1.234228515625006],[102.4271484375,0.990136718750023]]],[[[97.48154296875006,1.465087890624972],[97.93193359375002,0.973925781250003],[97.82041015625012,0.564453124999986],[97.683984375,0.596093750000037],[97.60390625000005,0.83388671874998],[97.40537109375012,0.946972656250026],[97.07919921875006,1.425488281249983],[97.35595703124997,1.539746093749997],[97.48154296875006,1.465087890624972]]],[[[102.49189453125004,1.459179687500011],[102.49941406250005,1.330908203124991],[102.02402343750012,1.607958984375031],[102.49189453125004,1.459179687500011]]],[[[124.88886718750004,0.995312500000011],[124.42753906250002,0.470605468750051],[123.75380859375,0.305517578124991],[123.26542968750007,0.326611328125026],[122.996875,0.493505859375006],[121.01298828125002,0.441699218750017],[120.57900390625,0.5283203125],[120.19228515625,0.268505859374997],[120.01328125000012,-0.196191406249994],[120.062890625,-0.555566406250023],[120.240625,-0.868261718749949],[120.51757812499997,-1.039453125],[120.66738281250005,-1.370117187499972],[121.14853515625012,-1.33945312500002],[121.5755859375,-0.828515625000023],[121.96962890625005,-0.933300781249969],[122.27998046875004,-0.757031250000026],[122.88876953125006,-0.755175781250003],[122.8294921875,-0.658886718750026],[123.17148437500012,-0.57070312499999],[123.37968750000002,-0.648535156249949],[123.43417968750006,-0.778222656249994],[123.37792968749997,-1.004101562500011],[122.90283203125003,-0.900976562499963],[122.25068359375004,-1.555273437500034],[121.8585937500001,-1.69326171874998],[121.65097656250006,-1.895410156249952],[121.35546874999997,-1.878222656250003],[122.29169921875004,-2.907617187500023],[122.39902343750006,-3.200878906249997],[122.25292968749997,-3.620410156250017],[122.68964843750004,-4.084472656249972],[122.84794921875002,-4.064550781250006],[122.8722656250001,-4.391992187500009],[122.71972656250003,-4.340722656249952],[122.11425781250003,-4.540234375000011],[122.03808593749997,-4.832421875000023],[121.58867187500007,-4.759570312500017],[121.48652343750004,-4.581054687499972],[121.61806640625,-4.092675781249952],[120.89179687500004,-3.520605468750034],[121.05429687500012,-3.167089843749949],[121.0521484375,-2.751660156249955],[120.87939453124997,-2.64560546875002],[120.65361328125002,-2.667578124999977],[120.26103515625007,-2.949316406249991],[120.43662109375012,-3.70732421874996],[120.42011718750004,-4.617382812500011],[120.27929687499997,-5.146093749999977],[120.4303710937501,-5.591015625000026],[119.9515625,-5.577636718749972],[119.71728515625003,-5.693359375000014],[119.55742187500007,-5.611035156250026],[119.36035156249997,-5.314160156250026],[119.59404296875007,-4.523144531249997],[119.62363281250006,-4.034375],[119.46748046875004,-3.512988281249989],[118.99462890624997,-3.537597656250028],[118.86767578124997,-3.39804687500002],[118.78330078125006,-2.720800781249977],[119.09218750000005,-2.482910156250014],[119.32187500000012,-1.929687500000014],[119.308984375,-1.408203125],[119.508203125,-0.906738281249972],[119.71132812500005,-0.680761718750034],[119.84433593750006,-0.861914062499991],[119.721875,-0.088476562499991],[119.865625,0.040087890625003],[119.80927734375004,0.238671875000051],[119.9132812500001,0.445068359375],[120.26953125000003,0.970800781249991],[120.60253906249997,0.854394531249994],[120.86796875000007,1.25283203124998],[121.0817382812501,1.327636718750028],[121.40410156250002,1.243603515624969],[121.59179687499997,1.067968749999977],[122.43662109375006,1.018066406250028],[122.83828125,0.845703125],[123.06650390625006,0.941796875000037],[123.93076171875006,0.850439453124977],[124.53369140624997,1.230468750000043],[124.94707031250002,1.672167968749974],[125.11093750000012,1.685693359374966],[125.2337890625,1.502294921875006],[124.88886718750004,0.995312500000011]]],[[[101.70810546875006,2.078417968750045],[101.71943359375004,1.789160156250006],[101.50078125000002,1.733203124999974],[101.40966796875003,2.021679687500026],[101.70810546875006,2.078417968750045]]],[[[127.73271484375007,0.848144531250043],[127.8810546875001,0.832128906249977],[127.96728515624997,1.042578125000048],[128.16074218750006,1.1578125],[128.22246093750002,1.400634765624986],[128.68837890625,1.572558593750017],[128.70263671874997,1.106396484374997],[128.29882812500003,0.87680664062502],[128.26064453125,0.733789062500023],[128.61123046875,0.549951171875051],[128.89960937500004,0.216259765625011],[127.9831054687501,0.471875],[127.88740234375004,0.298339843750043],[127.97783203125002,-0.24833984374996],[128.4254882812501,-0.892675781249949],[128.04638671875003,-0.706054687499943],[127.69160156250004,-0.241894531249983],[127.70869140625004,0.288085937499986],[127.53710937500003,0.610888671875031],[127.60800781250006,0.848242187499977],[127.42851562500002,1.139990234374991],[127.63173828125,1.843701171875011],[128.03642578125002,2.199023437500017],[127.88681640625012,1.83295898437504],[128.0109375000001,1.701220703125031],[128.01171874999997,1.331738281249983],[127.65283203124997,1.013867187499969],[127.73271484375007,0.848144531250043]]],[[[97.3341796875001,2.075634765625011],[97.10830078125,2.216894531250006],[97.29140625,2.200830078125023],[97.3341796875001,2.075634765625011]]],[[[128.45390625000002,2.051757812500028],[128.29589843749997,2.034716796875017],[128.2179687500001,2.297460937499991],[128.60214843750012,2.59760742187504],[128.68847656250003,2.473681640625017],[128.62324218750004,2.224414062500031],[128.45390625000002,2.051757812500028]]],[[[96.46367187500002,2.360009765625037],[95.80859374999997,2.655615234375034],[95.7171875,2.825976562500017],[95.89580078125007,2.8890625],[96.41728515625007,2.515185546875031],[96.46367187500002,2.360009765625037]]],[[[108.8875,2.905419921875037],[108.7865234375,2.885644531250009],[108.88574218750003,2.998974609374997],[108.8875,2.905419921875037]]],[[[105.76035156250006,2.863037109375014],[105.69218750000002,3.0625],[105.83671875000007,2.97651367187504],[105.76035156250006,2.863037109375014]]],[[[106.28525390625006,3.15712890624998],[106.28369140624997,3.088232421874977],[106.20097656250002,3.204882812500031],[106.28525390625006,3.15712890624998]]],[[[117.65839843750004,3.280517578124986],[117.54785156250003,3.43198242187502],[117.68085937500004,3.407519531250017],[117.65839843750004,3.280517578124986]]],[[[125.65810546875,3.436035156250043],[125.51152343750007,3.461132812500011],[125.46884765625006,3.73325195312502],[125.65810546875,3.436035156250043]]],[[[117.88476562499997,4.186132812500006],[117.92285156250003,4.054296874999977],[117.73681640624997,4.004003906250034],[117.64902343750012,4.168994140624974],[117.88476562499997,4.186132812500006]]],[[[108.31601562500006,3.689648437500026],[108.10039062500002,3.70454101562504],[108.24326171875006,3.810351562500017],[108.00234375,3.982861328124983],[108.24833984375002,4.21713867187502],[108.39287109375007,3.986181640625034],[108.31601562500006,3.689648437500026]]],[[[117.5744140625001,4.17060546875004],[117.46533203124997,4.076074218749966],[117.77724609375005,3.689257812500031],[117.05595703125007,3.622656249999963],[117.34628906250006,3.426611328124991],[117.35244140625,3.19375],[117.61064453125002,3.064355468749994],[117.56914062500002,2.92929687500002],[117.69765625,2.887304687499991],[117.6388671875001,2.825292968749963],[118.0666015625001,2.317822265624969],[117.7892578125001,2.026855468750014],[118.98496093750006,0.982128906249983],[118.53476562500006,0.813525390625017],[118.19609375000002,0.874365234374977],[117.91162109374997,1.098681640625017],[117.96425781250005,0.889550781250051],[117.74511718749997,0.72963867187498],[117.52216796875004,0.235888671875017],[117.46289062500003,-0.323730468749957],[117.5625,-0.770898437500009],[116.91396484375,-1.223632812499972],[116.73984375000006,-1.044238281250017],[116.75341796874997,-1.327343749999955],[116.27548828125006,-1.784863281249997],[116.42431640625003,-1.784863281249997],[116.45195312500002,-1.923144531250017],[116.31396484374997,-2.139843750000011],[116.56542968749997,-2.299707031249994],[116.52929687499997,-2.51054687499996],[116.31679687500005,-2.55185546875002],[116.33066406250012,-2.902148437499974],[116.16630859375002,-2.934570312500014],[116.2572265625,-3.126367187500009],[115.95615234375012,-3.595019531250003],[114.6935546875001,-4.169726562500017],[114.5255859375001,-3.376660156250011],[114.44599609375004,-3.481835937500037],[114.34433593750012,-3.444433593749963],[114.34433593750012,-3.23515625],[114.23632812500003,-3.36113281249996],[114.0822265625001,-3.27890625],[113.70507812499997,-3.45527343750004],[113.6100585937501,-3.195703125],[113.34316406250005,-3.246484374999966],[113.03398437500002,-2.933496093749966],[112.97148437500002,-3.187109375000034],[112.75800781250004,-3.322167968750009],[112.60029296875004,-3.400488281249977],[112.28496093750002,-3.32099609375004],[111.85810546875004,-3.551855468750006],[111.82304687500007,-3.057226562499949],[111.69472656250005,-2.88945312499996],[110.93007812500005,-3.071093750000017],[110.82968750000012,-2.9951171875],[110.89931640625,-2.908593749999952],[110.703125,-3.020898437500009],[110.57402343750007,-2.89140625],[110.25605468750004,-2.966113281249946],[110.09658203125,-2.001367187499966],[109.95986328125,-1.862792968749972],[109.98330078125,-1.274804687499994],[109.78740234375007,-1.011328124999963],[109.25878906250003,-0.807421874999989],[109.37275390625004,-0.638183593749972],[109.12109375000003,-0.39091796874996],[109.2575195312501,0.031152343750051],[108.94453125000004,0.355664062499997],[108.91679687500007,0.912646484375045],[108.95859375000006,1.134619140624963],[109.1315429687501,1.253857421875011],[109.01025390624997,1.239648437500051],[109.07587890625004,1.495898437500031],[109.37851562500006,1.922705078125034],[109.62890625000003,2.027539062499983],[109.53896484375,1.89619140625004],[109.65400390625004,1.614892578125023],[110.50576171875005,0.861962890625023],[111.10136718750002,1.050537109374986],[111.80898437500005,1.011669921874969],[112.078515625,1.143359374999974],[112.1857421875001,1.4390625],[112.47617187500006,1.559082031250028],[112.94296875000006,1.566992187500034],[113.00654296875004,1.433886718750003],[113.6222656250001,1.2359375],[113.90234375000003,1.434277343749997],[114.5125,1.452001953124963],[114.83056640625003,1.980029296874989],[114.78642578125002,2.250488281250014],[115.1791015625,2.523193359374972],[115.08076171875004,2.63422851562504],[115.117578125,2.89487304687502],[115.24697265625005,3.025927734374989],[115.45439453125002,3.034326171875009],[115.67880859375006,4.193017578124994],[115.86074218750005,4.348046875000037],[116.51474609375006,4.370800781249969],[117.10058593750003,4.337060546875023],[117.5744140625001,4.17060546875004]]],[[[126.81660156250004,4.033496093750003],[126.70449218750005,4.070996093749997],[126.81357421875006,4.258496093750011],[126.72207031250005,4.344189453124969],[126.75732421874997,4.547900390624989],[126.9210937500001,4.291015624999972],[126.81660156250004,4.033496093750003]]],[[[96.49257812500005,5.229345703124991],[97.54716796875002,5.205859375],[98.2484375,4.41455078125],[98.3073242187501,4.09287109375002],[99.73232421875005,3.183056640625026],[100.523828125,2.18916015625004],[100.88789062500004,1.948242187499986],[100.82822265625012,2.242578125],[101.04619140625002,2.257470703125023],[101.47666015625006,1.693066406250054],[102.019921875,1.442138671875],[102.38994140625007,0.84199218750004],[103.03183593750006,0.57890625],[103.0075195312501,0.415332031249974],[102.55,0.216455078124966],[103.33896484375012,0.513720703125045],[103.67265625000007,0.288916015624977],[103.78671875000012,0.046972656249991],[103.42851562500007,-0.19179687499998],[103.40517578125005,-0.36220703124998],[103.5091796875,-0.465527343749969],[103.43857421875006,-0.575585937500009],[103.72109375,-0.886718749999986],[104.36054687500004,-1.038378906249974],[104.51591796875002,-1.81943359375002],[104.84521484375003,-2.092968749999969],[104.65078125000005,-2.595214843749972],[104.97080078125012,-2.370898437500017],[105.39697265624997,-2.380175781249946],[106.0443359375,-3.10625],[105.84375,-3.61367187499998],[105.93046875000007,-3.833007812499986],[105.83144531250005,-4.16289062499996],[105.88720703124997,-5.009570312499974],[105.74833984375007,-5.818261718749966],[105.34941406250007,-5.549511718750011],[105.08134765625002,-5.74550781249998],[104.63955078125005,-5.520410156250037],[104.68398437500005,-5.89267578125002],[104.60156249999997,-5.90458984374996],[103.8314453125,-5.079589843750028],[102.53769531250006,-4.152148437499989],[102.12753906250006,-3.599218749999963],[101.57861328124997,-3.166992187500014],[100.88955078125,-2.248535156249957],[100.85527343750002,-1.934179687499949],[100.30820312500006,-0.82666015625],[99.66982421875005,0.045068359375037],[99.15917968749997,0.351757812499997],[98.59531250000006,1.864599609375006],[97.70078125000006,2.358544921875009],[97.59082031249997,2.846582031250037],[97.3913085937501,2.975292968749969],[96.9689453125001,3.575146484374969],[96.44472656250005,3.81630859374998],[95.57861328125003,4.661962890625048],[95.20664062500006,5.284033203125034],[95.22783203125002,5.564794921875034],[95.62890625000003,5.609082031249997],[96.13330078125003,5.294287109374991],[96.49257812500005,5.229345703124991]]]]},"properties":{"name":"Indonesia","childNum":107}},{"geometry":{"type":"Polygon","coordinates":[[[-4.412060546874983,54.185351562499996],[-4.785351562499983,54.073046875],[-4.424707031249994,54.407177734375],[-4.412060546874983,54.185351562499996]]]},"properties":{"name":"Isle of Man","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[75.32221348233018,32.28516356678968],[75.62496871116024,32.28516356678968],[75.73585997688717,32.78417426256088],[76.32728006076415,32.87658365066666],[76.62299010270264,33.32014871357439],[77.06655516561037,33.301666835953235],[77.71342088235082,32.6917648744551],[78.10154031239509,32.87658365066666],[78.49194250885338,32.53122786149202],[78.38964843749997,32.51987304687498],[78.41748046874997,32.466699218749994],[78.4552734375001,32.30034179687502],[78.49589843750002,32.21577148437504],[78.72558593750009,31.983789062500023],[78.71972656250009,31.887646484374983],[78.69345703125006,31.740380859374994],[78.7550781250001,31.55029296875],[78.74355468750005,31.323779296875017],[79.10712890625004,31.402636718750102],[79.38847656250013,31.064208984375085],[79.66425781250004,30.96523437499999],[79.92451171875004,30.888769531250034],[80.20712890625006,30.683740234375023],[80.19121093750002,30.56840820312496],[80.87353515625003,30.290576171875045],[80.98544921875006,30.23710937499999],[81.01025390625014,30.164501953125097],[80.96611328125002,30.180029296875063],[80.90761718750005,30.171923828125017],[80.84814453125009,30.139746093750034],[80.81992187500012,30.119335937499955],[80.68408203125014,29.994335937500068],[80.54902343750015,29.899804687499994],[80.40185546875003,29.730273437500102],[80.31689453125014,29.572070312500017],[80.25488281250009,29.423339843750114],[80.25595703125006,29.318017578125136],[80.23300781250006,29.194628906250045],[80.16953125000012,29.124316406250102],[80.13046875000006,29.100390625000045],[80.08457031249995,28.994189453125074],[80.05166015625,28.870312500000068],[80.07070312500005,28.830175781250063],[80.22656250000003,28.723339843750125],[80.32480468750012,28.66640625000008],[80.41855468749995,28.61201171875001],[80.47910156250012,28.604882812499994],[80.49580078125015,28.635791015625074],[80.51787109375002,28.665185546875023],[80.58701171875006,28.64960937500004],[81.16894531250014,28.335009765625074],[81.85263671875018,27.867089843750136],[81.89687500000011,27.87446289062504],[81.94521484375005,27.89926757812495],[81.98769531250016,27.91376953125004],[82.03701171875,27.90058593750004],[82.11191406250006,27.86494140625004],[82.28769531250018,27.756542968749983],[82.45136718750004,27.671826171874955],[82.62988281249997,27.687060546875045],[82.67734375000006,27.67343749999995],[82.71083984375005,27.596679687500114],[82.73339843750003,27.518994140625097],[83.28974609375004,27.370996093750136],[83.36943359375002,27.410253906249977],[83.38398437500004,27.444824218750085],[83.44716796875011,27.46533203125],[83.55166015625011,27.456347656249932],[83.74697265625011,27.395947265625068],[83.8288085937501,27.377832031250108],[84.09101562499993,27.491357421875136],[84.22978515625007,27.427832031250006],[84.48085937500005,27.348193359375102],[84.61015625000002,27.298681640624977],[84.64072265625012,27.249853515624977],[84.65478515625014,27.20366210937499],[84.65380859375009,27.09169921875008],[84.68535156250013,27.041015625000057],[85.19179687500011,26.766552734375097],[85.29296875000009,26.741015625000045],[85.56845703125012,26.839843750000114],[85.64843749999997,26.829003906250023],[85.69990234375004,26.781640624999966],[85.73730468750003,26.639746093750034],[85.79453125000006,26.60415039062505],[86.00732421875009,26.64936523437504],[86.70136718750015,26.435058593750057],[87.01640625000002,26.555419921875085],[87.2874023437499,26.360302734375125],[87.41357421875014,26.42294921875009],[87.84921875000006,26.43691406250008],[87.99511718750014,26.38237304687499],[88.02695312500023,26.395019531250085],[88.05488281250004,26.43002929687492],[88.11152343750004,26.58642578125],[88.1615234375,26.724804687500125],[88.15722656250009,26.807324218750068],[88.1110351562501,26.928466796875057],[87.99316406250009,27.086083984374994],[87.984375,27.133935546874994],[88.14697265625014,27.749218750000097],[88.15029296875011,27.843310546875074],[88.10976562500005,27.87060546874997],[88.10898437499995,27.93300781250005],[88.14111328125003,27.948925781250097],[88.27519531250013,27.96884765625009],[88.42597656250015,28.011669921875097],[88.57792968750002,28.093359375000034],[88.80371093750003,28.006933593750034],[88.74902343749997,27.521875000000136],[88.7648437500001,27.429882812500068],[88.83251953125003,27.362841796875074],[88.89140625000002,27.316064453125136],[88.88164062500007,27.29746093750009],[88.76035156250006,27.21811523437509],[88.73876953125009,27.175585937499932],[88.85761718750015,26.961474609375017],[89.14824218750002,26.816162109375085],[89.33212890625018,26.848632812500114],[89.58613281250004,26.778955078125136],[89.60996093750012,26.719433593750097],[89.71093750000009,26.713916015625045],[89.76386718750004,26.7015625],[89.94316406250013,26.723925781249932],[90.12294921875011,26.754589843749983],[90.20605468749997,26.847509765625063],[90.34589843750004,26.890332031250097],[90.73964843750005,26.771679687500068],[91.2865234375,26.78994140625008],[91.42675781249997,26.867089843749966],[91.45585937500013,26.866894531250125],[91.51757812500009,26.807324218750068],[91.67158203124993,26.80200195312503],[91.84208984375013,26.852978515625125],[91.94375,26.860839843750114],[91.99833984375013,26.85498046875],[92.04970703125016,26.87485351562495],[92.73155507489682,26.833697862861648],[93.30975376159499,26.784950522650554],[93.61047043679247,27.32239435188504],[94.06979001484449,27.589407158584788],[95.10800937321915,27.749636881153737],[95.74000740838363,28.116850432722256],[96.19577594042592,28.04291597700983],[96.96279296875,27.698291015625017],[96.88359375000013,27.514843750000125],[96.90195312500012,27.43959960937508],[97.10371093749993,27.163330078125114],[97.10205078125003,27.115429687500125],[96.95341796875013,27.13330078125003],[96.79785156249997,27.29619140624999],[96.19082031250005,27.26127929687499],[95.20146484375007,26.641406250000017],[95.05976562500015,26.473974609375006],[95.06894531250006,26.191113281250097],[95.10839843750014,26.091406250000034],[95.12929687500011,26.070410156250034],[95.13242187500006,26.041259765624943],[94.99199218750002,25.77045898437504],[94.66777343750007,25.458886718749966],[94.55302734375013,25.215722656249994],[94.70371093750012,25.097851562499955],[94.49316406250003,24.637646484374983],[94.37724609375002,24.473730468750006],[94.29306640625012,24.321875],[94.07480468750006,23.8720703125],[93.68339843750007,24.00654296875004],[93.45214843750003,23.987402343750034],[93.32626953125006,24.064208984375057],[93.36601562500007,23.132519531249955],[93.34941406250007,23.08496093750003],[93.20390625000002,23.03701171875005],[93.07871093750018,22.718212890625097],[93.16201171875,22.360205078125006],[93.07060546875002,22.20942382812501],[92.96455078125015,22.003759765625034],[92.90947265625013,21.988916015625023],[92.85429687500002,22.010156250000108],[92.77138671875,22.104785156250017],[92.68896484375009,22.130957031250006],[92.63037109375014,22.011328124999977],[92.57490234374993,21.97807617187496],[92.5612304687501,22.04804687500001],[92.49140625000004,22.685400390625006],[92.46445312500006,22.734423828125045],[92.36162109375002,22.929003906250074],[92.33378906250002,23.242382812499955],[92.24609375000003,23.68359374999997],[92.04404296875006,23.677783203125017],[91.97851562500003,23.691992187500063],[91.92958984375011,23.685986328125097],[91.92949218750019,23.598242187499977],[91.93789062500011,23.504687500000102],[91.75419921875013,23.28730468750004],[91.75097656250003,23.053515625000017],[91.55351562500013,22.991552734375006],[91.43623046875004,23.19990234375001],[91.359375,23.06835937500003],[91.16044921875019,23.660644531250085],[91.35019531250012,24.06049804687501],[91.72656250000003,24.20507812499997],[91.84619140624997,24.175292968749943],[92.06416015625004,24.374365234375006],[92.11748046875002,24.493945312500017],[92.22666015625012,24.77099609374997],[92.22832031250002,24.881347656250085],[92.2512695312499,24.895068359375045],[92.38496093750004,24.848779296875023],[92.46835937500018,24.944140625000074],[92.04970703125016,25.16948242187499],[90.61308593750002,25.16772460937497],[90.11962890625003,25.21997070312497],[89.86630859375012,25.293164062499955],[89.81406250000006,25.305371093749955],[89.80087890625012,25.33613281250001],[89.82490234375004,25.56015625],[89.82294921875015,25.94140625000003],[89.67089843750009,26.213818359375125],[89.57275390625003,26.13232421875003],[89.54990234375006,26.00527343750008],[89.28925781250015,26.037597656250085],[89.01865234375012,26.410253906249977],[88.95195312500002,26.412109375],[88.97041015625004,26.250878906250023],[88.94072265625002,26.24536132812497],[88.68281250000004,26.291699218749983],[88.51826171875004,26.51777343750004],[88.36992187500002,26.56411132812508],[88.35146484375005,26.482568359374966],[88.38623046875003,26.471533203125034],[88.44042968749997,26.369482421875034],[88.33398437499997,26.257519531249955],[88.15078125000005,26.087158203125057],[88.1066406250001,25.841113281250045],[88.14746093749997,25.811425781250023],[88.50244140625009,25.53701171875008],[88.76914062500006,25.490478515625],[88.85478515625002,25.333544921875017],[88.94414062500002,25.290771484375],[88.92978515625012,25.222998046875063],[88.57382812500006,25.18789062499999],[88.45625,25.188427734375125],[88.37294921875016,24.961523437500063],[88.31337890625011,24.8818359375],[88.27949218750015,24.881933593750034],[88.18886718750016,24.920605468750097],[88.14980468750011,24.91464843749995],[88.04511718750015,24.71303710937508],[88.03027343750009,24.664453125000136],[88.02343750000003,24.627832031250136],[88.07910156250009,24.549902343750063],[88.14550781250003,24.485791015624955],[88.225,24.460644531249983],[88.3375,24.45385742187503],[88.49853515625003,24.34663085937504],[88.64228515625015,24.325976562500102],[88.72353515625011,24.27490234375],[88.7335937500001,24.230908203125097],[88.72656250000009,24.18623046875004],[88.71376953125016,24.069628906250102],[88.69980468750006,24.00253906249992],[88.56738281250009,23.674414062500034],[88.63574218749997,23.55],[88.69765625,23.493017578125034],[88.72441406250002,23.254980468750034],[88.89707031250018,23.21040039062501],[88.92812500000011,23.186621093749977],[88.89970703125002,22.843505859375057],[88.92070312500002,22.632031249999955],[89.05,22.274609374999983],[89.02792968750023,21.937207031249983],[88.94931640625018,21.937939453125125],[89.05166015625,21.654101562500045],[88.85751953125012,21.744677734375017],[88.74501953125011,21.584375],[88.74023437500003,22.005419921875017],[88.64160156250003,22.121972656250136],[88.58466796875015,21.659716796874932],[88.44599609375004,21.614257812500085],[88.28750000000016,21.758203125000108],[88.25371093750002,21.622314453124943],[88.0568359375001,21.694140625000017],[88.19628906249997,22.139550781249994],[87.94140625000003,22.374316406250045],[88.15927734375018,22.12172851562508],[87.82373046875003,21.727343750000045],[87.20068359375009,21.544873046874983],[86.95410156250014,21.365332031250006],[86.84228515625009,21.106347656249994],[86.97548828125005,20.70014648437501],[86.75039062500011,20.313232421875057],[86.37656250000006,20.006738281249966],[86.24521484375012,20.05302734374999],[86.27949218750021,19.919433593749943],[85.575,19.69291992187499],[85.496875,19.696923828125108],[85.50410156250004,19.887695312500057],[85.24863281250006,19.757666015625034],[85.18076171875018,19.59487304687508],[85.44160156249993,19.626562499999977],[84.77099609375009,19.125390625000023],[84.10410156250018,18.29267578125001],[82.35957031250004,17.09619140624997],[82.25878906250014,16.55986328124996],[81.76191406250015,16.32949218750008],[81.28613281249997,16.337060546875023],[80.97871093750004,15.758349609375074],[80.64658203125006,15.895019531250028],[80.29345703125014,15.710742187499989],[80.0534179687501,15.074023437499932],[80.17871093750003,14.478320312500074],[80.11171875000005,14.212207031250045],[80.30654296875016,13.485058593750054],[80.15625,13.713769531250108],[80.06210937500006,13.60625],[80.34238281250006,13.361328125000071],[80.22910156250018,12.690332031249966],[79.85849609375018,11.988769531250043],[79.69316406250007,11.312548828124946],[79.79902343750004,11.338671874999932],[79.84863281250009,11.196875],[79.83818359375002,10.322558593750045],[79.31455078125018,10.256689453124949],[78.93994140625009,9.565771484375063],[79.01992187500005,9.333349609374963],[79.41142578125002,9.192382812500014],[78.97958984375018,9.268554687500085],[78.42148437500006,9.105029296874989],[78.19248046874995,8.890869140625057],[78.06015625000006,8.384570312499932],[77.51757812500003,8.078320312500068],[77.06591796875003,8.315917968749986],[76.5534179687501,8.902783203124997],[76.32460937500016,9.452099609374997],[76.24238281250004,9.927099609374949],[76.37558593750006,9.539892578124935],[76.45878906250013,9.536230468750077],[76.34648437500002,9.922119140625],[76.19560546875002,10.086132812500026],[75.72382812500015,11.361767578125026],[74.94550781250004,12.56455078124992],[74.38222656250005,14.494726562500048],[73.94921875000014,15.074755859375088],[73.80078125000009,15.39697265625],[73.93193359375013,15.39697265625],[73.77177734375013,15.573046874999989],[73.83281250000013,15.659375],[73.67988281250015,15.708886718750136],[73.47607421875003,16.05424804687496],[72.87548828124997,18.642822265625114],[72.97207031250011,19.15332031250003],[72.8346679687501,18.975585937500057],[72.80302734375013,19.07929687500004],[72.81162109375,19.298925781250006],[72.98720703125,19.27744140625009],[72.78789062500013,19.362988281250097],[72.66777343750019,19.83095703125005],[72.89375,20.672753906250136],[72.81386718750011,21.117187500000085],[72.62382812500002,21.371972656250108],[72.73476562500016,21.470800781250006],[72.61328125000009,21.461816406250108],[73.1125,21.750439453125125],[72.54306640625,21.69658203124999],[72.70019531250003,21.971923828124943],[72.52226562500013,21.976220703125108],[72.55302734375007,22.159960937500074],[72.80917968749995,22.23330078125008],[72.18281250000015,22.26972656250004],[72.30644531250002,22.18920898437497],[72.27441406250009,22.089746093749966],[72.03720703125006,21.82304687499999],[72.2103515625,21.72822265625004],[72.25400390625006,21.531005859375],[72.01523437500012,21.155712890625097],[71.0246093750001,20.73886718750009],[70.71933593750006,20.740429687500068],[70.12734375,21.094677734375097],[68.96992187500021,22.29028320312497],[69.05166015625016,22.437304687500074],[69.27656250000004,22.285498046875063],[70.17724609375014,22.57275390624997],[70.48925781250009,23.08950195312508],[70.33945312500012,22.939746093749932],[69.66464843750006,22.759082031250074],[69.23593749999995,22.848535156250023],[68.64072265625006,23.189941406250114],[68.41748046875009,23.57148437500004],[68.7767578125,23.852099609375017],[68.23496093749995,23.596972656250074],[68.16503906250009,23.857324218749994],[68.28251953125013,23.927978515625],[68.38125000000016,23.950878906250068],[68.48867187500011,23.96723632812501],[68.5866210937501,23.966601562500074],[68.72412109375003,23.964697265625034],[68.72812500000012,24.265625],[68.73964843750016,24.291992187500085],[68.75898437499993,24.307226562500006],[68.78115234375011,24.313720703125085],[68.8,24.30908203125003],[68.82832031250004,24.26401367187509],[68.86347656250015,24.26650390625005],[68.90078125000011,24.29243164062501],[68.98457031250015,24.273095703124966],[69.05156250000013,24.28632812500001],[69.11953125000011,24.26865234374995],[69.23505859374993,24.268261718750068],[69.44345703124995,24.275390625000085],[69.55917968750006,24.273095703124966],[69.80517578125009,24.16523437500004],[70.0982421875,24.2875],[70.28906250000009,24.356298828125063],[70.54677734375,24.418310546875063],[70.56503906250006,24.385791015625017],[70.55585937500015,24.331103515625074],[70.57929687500015,24.279052734374943],[70.65947265625013,24.24609374999997],[70.71630859375009,24.237988281250097],[70.7672851562501,24.245410156250017],[70.80507812500011,24.26196289062503],[70.88623046875014,24.34375],[70.92812500000016,24.362353515625045],[70.98281250000011,24.361035156250125],[71.04404296875006,24.400097656250097],[71.04531250000005,24.42998046874996],[70.96982421875012,24.571875],[70.97636718750013,24.61875],[71.00234375000016,24.6539062499999],[71.04785156250003,24.687744140625085],[71.02070312500021,24.75766601562492],[70.95087890625015,24.89160156250003],[70.87773437500019,25.06298828124997],[70.65205078125004,25.422900390625102],[70.64843750000003,25.666943359375068],[70.5695312500001,25.705957031250023],[70.50585937500009,25.685302734375085],[70.44853515625013,25.681347656249983],[70.26464843750009,25.70654296874997],[70.10019531250006,25.91005859375005],[70.14921875000002,26.347558593749994],[70.11464843750016,26.548046874999983],[69.47001953125002,26.804443359375],[69.56796875,27.174609375000102],[69.89628906250007,27.473632812500085],[70.04980468750009,27.694726562500023],[70.14453125000003,27.849023437499994],[70.19394531250006,27.89487304687492],[70.24433593750004,27.934130859375102],[70.4037109375,28.025048828124994],[70.48857421875013,28.023144531250125],[70.62910156250015,27.937451171875068],[70.6916015625001,27.76899414062504],[70.79794921875012,27.709619140625023],[70.87490234375016,27.71445312499995],[71.18476562500004,27.831640625],[71.54296875000003,27.869873046875],[71.8703125000001,27.9625],[71.88886718750004,28.04746093749992],[71.94804687500002,28.177294921875102],[72.12851562500012,28.34633789062508],[72.29199218750003,28.69726562499997],[72.34189453125006,28.751904296875097],[72.90332031250003,29.02875976562501],[73.38164062500013,29.934375],[73.8091796875,30.093359375],[73.88652343750013,30.162011718750136],[73.93339843750002,30.222070312500108],[73.92460937500007,30.28164062499999],[73.88271484375,30.352148437499977],[73.89931640625,30.435351562500045],[74.00898437500004,30.519677734374994],[74.33935546875003,30.893554687499943],[74.38037109375003,30.89340820312509],[74.50976562500009,30.959667968750097],[74.63281250000014,31.034667968750114],[74.62578125000002,31.068750000000108],[74.61035156250009,31.112841796875045],[74.51767578125012,31.185595703124932],[74.53496093750007,31.261376953125108],[74.59394531249993,31.465380859375102],[74.58183593750013,31.523925781250114],[74.50996093750015,31.712939453125074],[74.52597656249995,31.765136718750057],[74.55556640625011,31.818554687500097],[74.63574218750003,31.889746093750034],[74.73945312500015,31.948828125],[75.07148437500015,32.08935546875003],[75.13876953125,32.10478515624999],[75.25410156250004,32.140332031250125],[75.33349609374997,32.279199218749994],[75.32221348233018,32.28516356678968]]]]},"properties":{"name":"India","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[72.49199218750002,-7.37744140625],[72.42910156250002,-7.435351562500003],[72.34970703125,-7.263378906250011],[72.447265625,-7.395703125000011],[72.44560546875002,-7.220410156250011],[72.49199218750002,-7.37744140625]]]},"properties":{"name":"Br. Indian Ocean Ter.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-9.948193359374926,53.91313476562499],[-10.265722656249949,53.977685546874994],[-9.99638671874996,54.00361328125004],[-9.948193359374926,53.91313476562499]]],[[[-6.218017578125,54.08872070312506],[-6.347607421874926,53.94130859375005],[-6.027392578124989,52.927099609375006],[-6.463183593749932,52.345361328124994],[-6.325,52.246679687500034],[-6.890234375,52.15922851562499],[-6.965771484374926,52.24951171875],[-8.057812499999926,51.82558593750005],[-8.4091796875,51.888769531250034],[-8.349121093749943,51.73930664062496],[-8.813427734374926,51.584912109374955],[-9.737304687499943,51.473730468750034],[-9.524902343750028,51.68110351562501],[-10.120751953124994,51.60068359375006],[-9.598828124999983,51.87441406250005],[-10.341064453124943,51.798925781250034],[-9.909667968749972,52.122949218749966],[-10.39023437499992,52.134912109374994],[-10.356689453125,52.20693359375002],[-9.772119140624937,52.250097656250034],[-9.90605468749996,52.403710937499966],[-9.632226562499937,52.54692382812502],[-8.783447265624943,52.679638671874955],[-8.990283203124989,52.755419921875045],[-9.175390624999949,52.634912109374994],[-9.916601562499977,52.56972656250005],[-9.46489257812496,52.82319335937498],[-9.299218749999966,53.09755859375002],[-8.930126953124983,53.207080078125045],[-9.51420898437496,53.23823242187498],[-10.091259765624926,53.41284179687503],[-10.116992187499932,53.548535156249955],[-9.720654296874926,53.6044921875],[-9.901611328124943,53.72719726562502],[-9.578222656249949,53.80541992187497],[-9.578857421875,53.879833984374955],[-9.9140625,53.863720703124955],[-9.856445312499972,54.095361328124994],[-10.092675781249966,54.15576171875003],[-10.056396484374943,54.25781250000006],[-8.545556640624994,54.24121093750003],[-8.623144531249977,54.346875],[-8.133447265624966,54.64082031250001],[-8.763916015624972,54.68120117187496],[-8.377294921874977,54.88945312500002],[-8.274609374999955,55.146289062500045],[-7.667089843749977,55.25649414062502],[-7.65874023437496,54.97094726562503],[-7.308789062500011,55.365820312500006],[-6.961669921874972,55.23789062500006],[-7.218652343749937,55.09199218749998],[-7.55039062499992,54.767968749999966],[-7.910595703124955,54.698339843750006],[-7.75439453125,54.59492187499998],[-8.118261718749977,54.41425781250004],[-7.606542968750006,54.14384765625002],[-7.324511718750017,54.13344726562502],[-7.007714843749937,54.40668945312501],[-6.649804687499937,54.05864257812496],[-6.218017578125,54.08872070312506]]]]},"properties":{"name":"Ireland","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[56.18798828125003,26.92114257812497],[55.95429687500004,26.70112304687501],[55.31152343749997,26.592626953125006],[55.76259765625005,26.81196289062504],[55.75761718750002,26.94765625000005],[56.279394531250006,26.952099609374983],[56.18798828125003,26.92114257812497]]],[[[46.1144531250001,38.877783203125034],[46.490625,38.90668945312498],[47.995898437500074,39.683935546875034],[48.322167968749994,39.39907226562502],[48.10439453125005,39.241113281249994],[48.292089843750006,39.01884765624999],[47.99648437499999,38.85375976562503],[48.59267578125005,38.41108398437498],[48.86875,38.43549804687498],[48.95996093750003,37.89013671875],[49.171191406250074,37.60058593749997],[50.13046875,37.407128906249994],[50.53320312499997,37.01367187500006],[51.11855468750005,36.742578124999966],[52.19013671875004,36.62172851562505],[53.76767578125006,36.93032226562502],[53.91542968750005,36.93032226562502],[53.67949218750002,36.853125],[53.970117187499994,36.818310546874955],[53.91416015625006,37.34355468750002],[54.6994140625001,37.47016601562498],[54.90009765625004,37.77792968750006],[55.38085937500003,38.051123046875034],[56.272070312500006,38.080419921875034],[56.440625,38.249414062499994],[57.1935546875001,38.216406250000034],[57.35371093750004,37.97333984374998],[58.261621093749994,37.665820312500045],[58.81542968750003,37.683496093749994],[59.30175781249997,37.51064453125005],[59.454980468749994,37.25283203125002],[60.06279296875002,36.962890625],[60.34130859375003,36.63764648437501],[61.11962890625003,36.64257812500003],[61.212011718750006,36.190527343750034],[61.15292968750006,35.97675781250001],[61.25214843750004,35.86762695312498],[61.26201171875002,35.61958007812498],[61.28183593750006,35.55341796875001],[61.2785156250001,35.513769531250006],[61.245507812499994,35.47407226562501],[61.18925781250002,35.31201171875003],[61.1,35.272314453125034],[61.08007812499997,34.85561523437505],[60.95117187499997,34.65385742187499],[60.91474609375004,34.63398437500001],[60.80234375000006,34.55463867187501],[60.73945312500004,34.544726562500045],[60.7262695312501,34.51826171874998],[60.736132812500074,34.491796875],[60.76259765625005,34.475244140624994],[60.88945312500002,34.31943359375006],[60.642675781250006,34.30717773437496],[60.48574218750005,34.09477539062502],[60.4859375,33.7119140625],[60.57382812500006,33.58833007812498],[60.91699218749997,33.505224609375006],[60.56054687499997,33.13784179687502],[60.5765625,32.99487304687503],[60.71044921874997,32.6],[60.82929687500004,32.24941406250005],[60.82724609375006,32.16796874999997],[60.789941406249994,31.98710937499999],[60.7875,31.87719726562497],[60.791601562500006,31.660595703124983],[60.82070312499999,31.495166015625045],[60.854101562500006,31.483251953125006],[61.110742187499994,31.45112304687504],[61.346484375000074,31.42163085937497],[61.66015625000003,31.382421874999977],[61.7550781250001,31.285302734374994],[61.814257812500074,31.072558593750017],[61.810839843750074,30.913281249999983],[61.78417968749997,30.831933593750023],[61.55947265625005,30.59936523437497],[61.33164062500006,30.36372070312501],[60.84335937500006,29.85869140624999],[61.03417968750003,29.663427734374977],[61.15214843750002,29.542724609375],[61.8898437500001,28.546533203124994],[62.7625,28.202050781249994],[62.782324218750006,27.800537109375],[62.75273437500002,27.265625],[63.16679687500002,27.25249023437499],[63.19609375000002,27.243945312500017],[63.25625,27.20791015625005],[63.30156250000002,27.151464843750006],[63.30517578124997,27.124560546875017],[63.242089843749994,27.07768554687499],[63.25039062499999,26.879248046875063],[63.24160156250005,26.86474609375003],[63.18613281250006,26.83759765625001],[63.168066406250006,26.66557617187496],[62.31230468750002,26.490869140624994],[62.23935546875006,26.357031249999977],[62.12597656249997,26.368994140625034],[61.842382812500006,26.225927734375006],[61.809960937499994,26.165283203125],[61.78076171874997,25.99584960937503],[61.75439453125003,25.843359375000063],[61.737695312499994,25.821093750000045],[61.66865234375004,25.76899414062501],[61.6618164062501,25.751269531250017],[61.67138671874997,25.69238281250003],[61.64013671875003,25.584619140624994],[61.61542968750004,25.28613281250003],[61.58789062499997,25.20234375000001],[61.533105468749994,25.195507812499955],[61.41220703125006,25.102099609375017],[60.66386718750002,25.28222656250003],[60.51054687500002,25.437060546875045],[60.40019531250002,25.311572265625074],[59.45605468749997,25.481494140625045],[59.0460937500001,25.417285156250017],[58.79785156249997,25.554589843750023],[57.334570312500006,25.791552734375074],[57.03603515625005,26.80068359375005],[56.728125,27.127685546875057],[56.118066406249994,27.14311523437499],[54.75927734375003,26.50507812500004],[54.24707031250003,26.696630859374977],[53.70576171875004,26.72558593750003],[52.69160156250004,27.323388671875023],[52.475878906250074,27.61650390624999],[52.03076171874997,27.824414062499955],[51.58906250000004,27.864208984374983],[51.27890625,28.13134765624997],[51.06201171874997,28.72612304687499],[50.86699218750002,28.870166015625017],[50.87578125000002,29.062695312499983],[50.67519531250005,29.146582031250034],[50.64960937500004,29.420068359374966],[50.16894531250003,29.921240234375034],[50.071582031250074,30.198535156250017],[49.55488281250004,30.028955078125023],[49.028125,30.333447265624983],[49.224511718749994,30.472314453125023],[49.00195312500003,30.506542968749983],[48.91914062500004,30.120898437500017],[48.54648437500006,29.962353515624955],[48.47851562499997,30.003808593749966],[48.43457031249997,30.03759765625],[48.33105468749997,30.28544921874996],[48.01494140625002,30.465625],[48.01064453125005,30.989794921875017],[47.679492187500074,31.00239257812501],[47.679492187500074,31.400585937499955],[47.75390624999997,31.601367187500017],[47.829980468749994,31.79443359375],[47.71455078125004,31.936425781249966],[47.5915039062501,32.087988281250034],[47.51191406250004,32.15083007812504],[47.3297851562501,32.45551757812501],[47.28515625000003,32.474023437499966],[47.121386718750074,32.46660156249996],[46.569921875,32.83393554687501],[46.37705078125006,32.92924804687499],[46.29824218750005,32.95024414062502],[46.11279296875003,32.957666015624994],[46.09306640625002,32.97587890624999],[46.08046875,33.028222656249994],[46.0807617187501,33.08652343750006],[46.14111328125003,33.174414062500034],[46.145898437499994,33.229638671874994],[46.01992187500005,33.41572265624998],[45.39707031250006,33.970849609374994],[45.542773437500074,34.21552734375004],[45.459375,34.470361328124994],[45.50078125000002,34.58159179687499],[45.6375,34.573828125],[45.678125,34.798437500000034],[45.92089843750003,35.02851562500001],[46.04179687500002,35.08017578125006],[46.13378906249997,35.127636718749955],[46.15468750000005,35.19672851562498],[46.112109375000074,35.32167968750005],[45.97109375000005,35.524169921875],[46.03740234375002,35.67314453124999],[46.180957031250074,35.71137695312504],[46.2625,35.74414062500006],[46.27343749999997,35.77324218750002],[46.16748046874997,35.820556640625],[45.77636718749997,35.82182617187499],[45.36162109375002,36.015332031249955],[45.241113281249994,36.35595703125],[45.20654296874997,36.397167968749955],[45.15527343749997,36.407373046874994],[45.11240234375006,36.409277343750034],[45.053125,36.47163085937501],[44.76513671875003,37.142431640625006],[44.79414062500004,37.290380859375034],[44.574023437500074,37.435400390625006],[44.589941406250006,37.710351562499966],[44.21132812499999,37.908056640625006],[44.4499023437501,38.33422851562506],[44.2985351562501,38.38627929687499],[44.27167968750004,38.83603515625006],[44.02324218750002,39.37744140625006],[44.3893554687501,39.422119140625],[44.58710937500004,39.76855468750006],[44.81718750000002,39.65043945312496],[45.4796875000001,39.00625],[46.1144531250001,38.877783203125034]]]]},"properties":{"name":"Iran","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[45.6375,34.573828125],[45.50078125000002,34.581591796874996],[45.459375,34.470361328124994],[45.54277343750002,34.21552734375],[45.397070312500006,33.970849609374994],[46.01992187500002,33.41572265625],[46.14589843750002,33.229638671874994],[46.14111328125,33.1744140625],[46.08076171875001,33.0865234375],[46.08046875000002,33.028222656249994],[46.09306640625002,32.975878906249996],[46.11279296875,32.957666015624994],[46.377050781250006,32.929248046874996],[46.569921875,32.833935546875],[47.12138671875002,32.466601562499996],[47.28515625,32.474023437499994],[47.32978515625001,32.455517578125],[47.51191406250001,32.150830078125],[47.59150390625001,32.08798828125],[47.71455078125001,31.936425781249994],[47.82998046875002,31.79443359375],[47.75390625,31.601367187499996],[47.67949218750002,31.400585937499997],[47.67949218750002,31.002392578124997],[48.01064453125002,30.989794921874996],[48.01494140625002,30.465625],[48.3310546875,30.285449218749996],[48.546484375,29.962353515624997],[48.454199218750006,29.9384765625],[48.354589843750006,29.956738281249997],[48.141699218750006,30.040917968749994],[47.982519531250006,30.011328125],[47.97871093750001,29.9828125],[47.64375,30.097314453124994],[47.14824218750002,30.0009765625],[46.905859375,29.5375],[46.76933593750002,29.347460937499996],[46.69375,29.259667968749994],[46.53144531250001,29.096240234374996],[46.3564453125,29.063671875],[44.71650390625001,29.193603515625],[43.77373046875002,29.84921875],[42.07441406250001,31.080371093749996],[40.47890625000002,31.893359375],[40.36933593750001,31.93896484375],[40.02783203125,31.995019531249994],[39.7041015625,32.042529296874996],[39.14541015625002,32.12451171875],[39.29277343750002,32.24384765625],[39.24746093750002,32.350976562499994],[39.04140625000002,32.3056640625],[38.773535156250006,33.372216796874994],[40.98701171875001,34.429052734375],[41.19472656250002,34.768994140625],[41.354101562500006,35.640429687499996],[41.295996093750006,36.383349609374996],[41.41679687500002,36.5146484375],[41.78857421875,36.59716796875],[42.358984375,37.10859375],[42.45585937500002,37.128710937499996],[42.63544921875001,37.249267578125],[42.74111328125002,37.3619140625],[42.77460937500001,37.371875],[42.869140625,37.334912109375],[42.936621093750006,37.324755859374996],[43.09248046875001,37.3673828125],[43.67578125,37.22724609375],[43.83642578125,37.223535156249994],[44.01318359375,37.313525390624996],[44.11445312500001,37.30185546875],[44.15625,37.282958984375],[44.19179687500002,37.249853515625],[44.20839843750002,37.20263671875],[44.20166015625,37.051806640624996],[44.281835937500006,36.97802734375],[44.32558593750002,37.0107421875],[44.401953125,37.058496093749994],[44.60595703125,37.176025390625],[44.66933593750002,37.173583984375],[44.73095703125,37.165283203125],[44.76513671875,37.142431640625],[45.053125,36.471630859375],[45.112402343750006,36.40927734375],[45.1552734375,36.407373046874994],[45.20654296875,36.39716796875],[45.24111328125002,36.35595703125],[45.36162109375002,36.01533203125],[45.7763671875,35.821826171874996],[46.16748046875,35.820556640625],[46.2734375,35.773242187499996],[46.2625,35.744140625],[46.18095703125002,35.711376953125],[46.03740234375002,35.673144531249996],[45.97109375000002,35.524169921875],[46.11210937500002,35.321679687499994],[46.15468750000002,35.196728515625],[46.1337890625,35.12763671875],[46.04179687500002,35.08017578125],[45.9208984375,35.028515625],[45.678125,34.7984375],[45.6375,34.573828125]]]},"properties":{"name":"Iraq","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-15.543115234374994,66.228515625],[-14.595849609374994,66.38154296875],[-15.117382812499983,66.125634765625],[-14.698193359374983,66.02021484375],[-14.827099609374983,65.7642578125],[-14.391845703125,65.78740234375],[-14.473388671875,65.575341796875],[-14.166943359374983,65.64228515625],[-13.617871093749983,65.5193359375],[-13.804785156249977,65.35478515625],[-13.599316406249983,65.0359375],[-14.04443359375,64.74189453125],[-14.385107421874977,64.74521484375],[-14.475390624999989,64.493994140625],[-14.927392578124994,64.319677734375],[-15.832910156249994,64.17666015625],[-16.640332031249983,63.865478515625],[-17.81572265624999,63.71298828125],[-17.946923828124994,63.5357421875],[-18.65361328124999,63.406689453125],[-20.198144531249994,63.555810546874994],[-20.494042968749994,63.687353515625],[-20.413964843749994,63.80517578125],[-20.65092773437499,63.73740234375],[-21.15239257812499,63.94453125],[-22.652197265624977,63.827734375],[-22.701171875,64.083203125],[-22.51005859374999,63.991455078125],[-22.187597656249977,64.039208984375],[-21.463330078124983,64.379150390625],[-22.053369140624994,64.313916015625],[-21.950341796874994,64.514990234375],[-21.590625,64.6263671875],[-22.10600585937499,64.533056640625],[-22.467041015625,64.794970703125],[-23.818994140624994,64.73916015625],[-24.02617187499999,64.863427734375],[-22.7880859375,65.046484375],[-21.89213867187499,65.048779296875],[-21.779980468749983,65.1876953125],[-22.50908203124999,65.19677734375],[-21.844384765624994,65.44736328125],[-22.902490234374994,65.58046875],[-23.89990234375,65.407568359375],[-24.475683593749977,65.5251953125],[-24.248925781249994,65.614990234375],[-23.85673828124999,65.53837890625],[-24.092626953124977,65.77646484375],[-23.615917968749983,65.67958984375],[-23.285351562499983,65.75],[-23.832617187499977,65.84921875],[-23.52495117187499,65.880029296875],[-23.77734375,66.017578125],[-23.434472656249994,66.02421875],[-23.452539062499994,66.181005859375],[-23.018994140624983,65.98212890625],[-22.659863281249983,66.025927734375],[-22.61601562499999,65.86748046875],[-22.44169921874999,65.90830078125],[-22.4453125,66.07001953125],[-22.947900390624994,66.212744140625],[-22.48442382812499,66.26630859375],[-23.116943359375,66.338720703125],[-22.9443359375,66.429443359375],[-22.426123046874977,66.430126953125],[-21.406884765624994,66.0255859375],[-21.374902343749994,65.74189453125],[-21.658447265625,65.723583984375],[-21.12968749999999,65.2666015625],[-20.804345703124994,65.63642578125],[-20.454833984375,65.571044921875],[-20.20751953125,66.10009765625],[-19.489697265624983,65.76806640625],[-19.382958984374994,66.07568359375],[-18.845898437499983,66.183935546875],[-18.141943359374977,65.73408203125],[-18.29716796874999,66.157421875],[-17.906982421875,66.143310546875],[-17.550439453124994,65.964404296875],[-17.153027343749983,66.20283203125],[-16.838037109374994,66.125244140625],[-16.485009765624994,66.195947265625],[-16.540673828124994,66.446728515625],[-16.24931640624999,66.522900390625],[-15.985400390624989,66.5146484375],[-15.543115234374994,66.228515625]]]},"properties":{"name":"Iceland","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[35.78730468750001,32.734912109374996],[35.572851562500006,32.640869140625],[35.56904296875001,32.619873046875],[35.55146484375001,32.3955078125],[35.484375,32.401660156249996],[35.40263671875002,32.450634765625],[35.38671875,32.493017578125],[35.303808593750006,32.512939453125],[35.19326171875002,32.534423828125],[35.065039062500006,32.46044921875],[35.01054687500002,32.338183593749996],[34.95595703125002,32.1609375],[34.98974609375,31.91328125],[34.97832031250002,31.86640625],[34.95380859375001,31.841259765624997],[34.96113281250001,31.82333984375],[34.983007812500006,31.81679687499999],[35.05322265625,31.837939453124996],[35.12714843750001,31.816748046875],[35.203710937500006,31.75],[34.95097656250002,31.602294921875],[34.88046875,31.3681640625],[35.45058593750002,31.479296875],[34.97343750000002,29.555029296875],[34.904296875,29.47734375],[34.24531250000001,31.208300781249996],[34.34833984375001,31.292919921874997],[34.350195312500006,31.362744140624997],[34.52558593750001,31.525634765625],[34.47734375000002,31.584863281249994],[34.483984375,31.59228515625],[34.67841796875001,31.895703125],[35.10859375000001,33.08369140625],[35.411230468750006,33.07568359375],[35.869140625,33.43173828125],[35.91347656250002,32.94960937499999],[35.78730468750001,32.734912109374996]]]},"properties":{"name":"Israel","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[15.576562500000051,38.220312500000034],[15.099511718750023,37.45859375],[15.295703125000017,37.05517578124997],[15.112597656250017,36.687841796875006],[14.501855468750023,36.798681640625034],[14.142968750000023,37.103662109374994],[13.90546875000004,37.10063476562502],[13.169921875000028,37.47929687499996],[12.640234375000034,37.594335937500034],[12.435546874999972,37.819775390624955],[12.734375,38.18305664062498],[12.902734375000023,38.03486328124998],[13.291113281250034,38.19145507812502],[13.788867187499989,37.981201171875],[15.11875,38.15273437500002],[15.498730468750011,38.290869140625006],[15.576562500000051,38.220312500000034]]],[[[8.478906250000023,39.067529296874966],[8.421484375000034,38.968652343749994],[8.366796875,39.115917968749955],[8.478906250000023,39.067529296874966]]],[[[8.28603515625008,41.03984375],[8.205664062500034,40.99746093750005],[8.320214843750023,41.121875],[8.28603515625008,41.03984375]]],[[[9.632031250000011,40.88203124999998],[9.805273437500063,40.499560546875045],[9.642968750000023,40.268408203125006],[9.5625,39.16601562500006],[9.056347656250068,39.23916015625002],[8.966601562500074,38.963720703125034],[8.648535156250034,38.92656250000002],[8.418164062500068,39.205712890624966],[8.547753906250023,39.83920898437506],[8.4078125,39.91723632812497],[8.471289062500063,40.29267578124998],[8.189941406250028,40.651611328125],[8.22421875,40.91333007812503],[8.571875,40.85019531250006],[9.228417968750023,41.257080078125],[9.615332031249977,41.01728515624998],[9.632031250000011,40.88203124999998]]],[[[10.395117187500034,42.85815429687503],[10.419335937499994,42.71318359374999],[10.13125,42.742041015625006],[10.395117187500034,42.85815429687503]]],[[[13.420996093750006,46.212304687499994],[13.63251953125004,46.17705078125002],[13.634960937499983,46.15776367187499],[13.61660156250008,46.133105468750045],[13.54804687500004,46.08911132812503],[13.486425781250034,46.03955078124997],[13.480273437500017,46.00922851562501],[13.487695312500023,45.987109375000045],[13.509179687500051,45.973779296874994],[13.6005859375,45.97978515624996],[13.663476562500023,45.7919921875],[13.831152343750006,45.680419921875],[13.719824218750063,45.58759765625001],[13.628320312500051,45.77094726562498],[13.206347656250074,45.771386718749966],[12.27431640625008,45.44604492187503],[12.225683593750034,45.24150390625002],[12.523437500000028,44.96796874999998],[12.248339843750045,44.72250976562498],[12.396289062500074,44.223876953125],[13.56416015625004,43.57128906250003],[14.010449218750011,42.68955078125006],[14.54072265625004,42.24428710937502],[15.16875,41.93403320312498],[16.164648437500034,41.89619140624998],[15.900488281250034,41.51206054687498],[17.954980468749994,40.65517578125002],[18.460644531249983,40.221044921875034],[18.34375,39.82138671874998],[18.077929687500017,39.93696289062498],[17.865039062500074,40.28017578125002],[17.395800781250045,40.34023437499999],[17.179980468750045,40.50278320312498],[16.92822265625,40.45805664062502],[16.521875,39.74755859375003],[17.114550781250017,39.38061523437497],[17.174609375000017,38.998095703125045],[16.61669921875003,38.800146484375034],[16.54560546875001,38.40908203125002],[16.05683593750001,37.941845703124955],[15.72451171875008,37.93911132812502],[15.645800781250017,38.034228515625045],[15.87890625,38.61391601562502],[16.19677734375,38.759228515624955],[16.20996093750003,38.94111328124998],[15.692773437499994,39.99018554687501],[14.95087890625004,40.23901367187497],[14.94765625000008,40.469335937500006],[14.765722656250063,40.66840820312498],[14.339941406250006,40.59882812500001],[14.460546875000063,40.72871093750001],[14.04433593750008,40.81225585937506],[13.733398437500057,41.23564453124999],[13.088671875000074,41.243847656249955],[12.630859374999972,41.469677734374955],[11.637304687500063,42.287548828124955],[11.141210937499977,42.38989257812503],[11.167773437500074,42.53515625000006],[10.708398437500023,42.93632812499999],[10.514843750000011,42.96752929687503],[10.188085937500063,43.947509765625],[8.76582031250004,44.42231445312501],[8.004980468750006,43.87675781249999],[7.4931640625,43.767138671875045],[7.637207031250057,44.16484375],[7.318554687500068,44.13798828125002],[6.900195312499989,44.33574218749996],[6.99267578125,44.82729492187502],[6.634765625000028,45.06816406249996],[7.07832031250004,45.23994140624998],[7.146386718750051,45.381738281249994],[6.790917968750023,45.740869140624966],[7.021093750000034,45.92578124999997],[7.055761718749977,45.90380859375003],[7.129003906249977,45.88041992187499],[7.327929687500017,45.912353515625],[7.9931640625,46.01591796874996],[8.081542968750057,46.25600585937502],[8.231933593750057,46.341210937499966],[8.29853515625004,46.403417968750034],[8.370703125,46.44511718750002],[8.458398437500023,46.24589843750002],[8.818554687500011,46.0771484375],[8.826757812500006,46.06103515625],[8.77802734375004,45.996191406250034],[8.953710937500034,45.83002929687501],[9.023730468750074,45.845703125],[9.203417968750017,46.21923828125],[9.304394531250068,46.49555664062498],[9.399316406250023,46.480664062499955],[9.427636718750023,46.48232421875002],[9.528710937500023,46.306201171875045],[9.57958984375,46.29609375000001],[9.639453125000017,46.29589843749997],[9.78779296875004,46.34604492187498],[9.884472656250011,46.36777343750006],[9.939257812500074,46.36181640625],[10.041015625000028,46.23808593750002],[10.08056640625,46.22797851562501],[10.128320312500051,46.238232421874955],[10.109667968750074,46.36284179687502],[10.081933593750023,46.420751953125006],[10.045605468750068,46.44790039062505],[10.038281250000011,46.483203125000045],[10.061230468750068,46.54677734375002],[10.087011718750063,46.59990234375002],[10.1375,46.614355468750034],[10.195507812500068,46.62109374999997],[10.4306640625,46.55004882812497],[10.409352678571473,46.6092047991071],[10.39794921875,46.66503906250006],[10.406054687500045,46.73486328124997],[10.452832031249983,46.86494140625001],[10.47939453125008,46.85512695312505],[10.579785156250011,46.85371093750001],[10.689257812500017,46.846386718749955],[10.759765625,46.79331054687498],[10.828906250000045,46.775244140625034],[10.927343750000034,46.76948242187501],[10.993261718750034,46.77700195312502],[11.02509765625004,46.796972656250006],[11.063476562500057,46.85913085937497],[11.133886718750006,46.93618164062505],[11.244433593750045,46.975683593750006],[11.433203125000063,46.983056640624994],[11.527539062500011,46.99741210937498],[11.775683593750017,46.986083984375],[12.169433593750028,47.082128906250006],[12.19716796875008,47.075],[12.201269531250034,47.060888671875034],[12.165527343750028,47.028173828125034],[12.130761718750051,46.98476562499999],[12.154101562500017,46.93525390625004],[12.267968750000023,46.83588867187504],[12.330078125,46.75981445312499],[12.388281250000034,46.70263671874997],[12.479199218749983,46.672509765624966],[13.16875,46.572656249999966],[13.3515625,46.55791015624999],[13.490039062500045,46.55556640625002],[13.7,46.52026367187503],[13.679687500000057,46.46289062499997],[13.63710937500008,46.44853515624999],[13.563281250000045,46.41508789062502],[13.399511718749977,46.31752929687502],[13.420996093750006,46.212304687499994]]]]},"properties":{"name":"Italy","childNum":6}},{"geometry":{"type":"Polygon","coordinates":[[[-77.261474609375,18.45742187499999],[-76.349853515625,18.15185546875],[-76.21079101562499,17.913525390624997],[-76.524609375,17.8662109375],[-76.85322265625,17.97373046874999],[-76.94414062499999,17.848779296874994],[-77.11948242187499,17.880078125],[-77.20498046875,17.71494140624999],[-77.36142578124999,17.833691406249997],[-77.76816406249999,17.877392578124997],[-78.04448242187499,18.173828125],[-78.339501953125,18.28720703124999],[-78.21669921875,18.44809570312499],[-77.8734375,18.522216796875],[-77.261474609375,18.45742187499999]]]},"properties":{"name":"Jamaica","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-2.018652343749977,49.23125],[-2.23583984375,49.1763671875],[-2.220507812499989,49.266357421875],[-2.018652343749977,49.23125]]]},"properties":{"name":"Jersey","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[39.14541015625002,32.12451171875],[38.9970703125,32.007470703124994],[38.96230468750002,31.994921875],[38.37548828125,31.847460937499996],[38.111425781250006,31.781152343749994],[37.49335937500001,31.625878906249994],[37.215625,31.556103515624997],[36.95859375,31.491503906249996],[37.980078125,30.5],[37.862890625,30.442626953125],[37.66972656250002,30.34814453125],[37.64990234375,30.330957031249994],[37.63359375000002,30.31328125],[37.55361328125002,30.144580078124996],[37.49072265625,30.01171875],[37.46923828125,29.995068359374997],[36.75527343750002,29.866015625],[36.70390625000002,29.831640625],[36.591796875,29.66611328125],[36.47607421875,29.4951171875],[36.2828125,29.355371093749994],[36.068457031250006,29.200537109375],[34.95078125,29.353515625],[34.97343750000002,29.555029296875],[35.45058593750002,31.479296875],[35.57207031250002,32.237890625],[35.55146484375001,32.3955078125],[35.56904296875001,32.619873046875],[35.572851562500006,32.640869140625],[35.78730468750001,32.734912109374996],[36.3720703125,32.3869140625],[36.818359375,32.317285156249994],[38.773535156250006,33.372216796874994],[39.04140625000002,32.3056640625],[39.24746093750002,32.350976562499994],[39.29277343750002,32.24384765625],[39.14541015625002,32.12451171875]]]},"properties":{"name":"Jordan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[123.88867187499997,24.280126953124977],[123.67978515625012,24.317773437500023],[123.77148437499997,24.41445312499999],[123.93486328125002,24.362011718749983],[123.88867187499997,24.280126953124977]]],[[[124.29316406250004,24.515917968750074],[124.13574218750003,24.347607421874983],[124.08476562500002,24.435839843750017],[124.30195312500004,24.58710937500001],[124.29316406250004,24.515917968750074]]],[[[125.44414062500002,24.7431640625],[125.26894531250005,24.732519531250063],[125.28359375,24.871923828125034],[125.44414062500002,24.7431640625]]],[[[128.25878906249997,26.65278320312501],[127.86708984375,26.442480468749977],[127.80361328125005,26.152539062499983],[127.653125,26.0947265625],[127.90722656250003,26.69360351562497],[128.09765624999997,26.66777343749996],[128.25488281249997,26.88188476562496],[128.25878906249997,26.65278320312501]]],[[[128.99814453125012,27.720800781250006],[128.90000000000012,27.727783203125],[128.9076171875,27.897998046875045],[128.99814453125012,27.720800781250006]]],[[[129.45253906250005,28.20898437499997],[129.3664062500001,28.127734375000045],[129.16464843750012,28.24975585937503],[129.68955078125012,28.517480468750023],[129.45253906250005,28.20898437499997]]],[[[130.6227539062501,30.262988281250017],[130.44560546875002,30.264697265625017],[130.38808593750005,30.38818359375003],[130.49716796875006,30.465527343749983],[130.64355468749997,30.388964843750017],[130.6227539062501,30.262988281250017]]],[[[130.95976562500007,30.39692382812504],[130.87031250000004,30.444238281249994],[131.06035156250007,30.828466796875006],[130.95976562500007,30.39692382812504]]],[[[130.38105468750004,32.42373046875002],[130.24169921874997,32.462792968749994],[130.46142578124997,32.515722656250034],[130.38105468750004,32.42373046875002]]],[[[130.08251953124997,32.22968750000001],[129.9601562500001,32.24375],[130.00976562499997,32.521630859374994],[130.16777343750002,32.54121093749998],[130.19951171875002,32.34057617187506],[130.08251953124997,32.22968750000001]]],[[[128.66533203125002,32.783886718749955],[128.89453124999997,32.65214843750002],[128.69296875000012,32.60473632812506],[128.66533203125002,32.783886718749955]]],[[[129.07695312500002,32.84028320312498],[128.99726562500004,32.95185546874998],[129.10976562500005,33.13256835937503],[129.18193359375002,32.99311523437504],[129.07695312500002,32.84028320312498]]],[[[129.49179687500006,33.22304687499999],[129.37041015625002,33.176025390625],[129.56992187500006,33.36103515625004],[129.49179687500006,33.22304687499999]]],[[[129.79570312500007,33.74882812499999],[129.67480468749997,33.73969726562498],[129.71728515624997,33.8583984375],[129.79570312500007,33.74882812499999]]],[[[131.17460937500007,33.602587890625045],[131.69628906250003,33.60283203124999],[131.53740234375007,33.274072265624994],[131.89658203125006,33.25458984375001],[131.8478515625001,33.118066406249994],[132.0021484375001,32.882373046875045],[131.6603515625001,32.465625],[131.33720703125007,31.4046875],[131.07080078124997,31.436865234374977],[131.09843750000002,31.256152343750017],[130.68574218750004,31.01513671875003],[130.77626953125,31.70629882812497],[130.65507812500002,31.71840820312505],[130.5560546875,31.563085937500034],[130.58876953125,31.178515625000017],[130.20068359374997,31.291894531250023],[130.14726562500002,31.40849609374996],[130.2941406250001,31.45068359375003],[130.3219726562501,31.601464843750023],[130.18789062500005,31.768847656250017],[130.19443359375012,32.090771484374955],[130.64052734375005,32.61923828124998],[130.49785156250002,32.65693359375001],[130.547265625,32.83159179687499],[130.2375,33.177636718749966],[130.12685546875005,33.10483398437506],[130.175,32.851318359375],[130.32646484375002,32.852636718750006],[130.34042968750012,32.70185546875004],[130.05410156250005,32.770800781250045],[129.76855468749997,32.57099609375001],[129.82675781250006,32.72534179687503],[129.67910156250005,33.059960937499966],[129.99169921875003,32.85156249999997],[129.58007812500003,33.23627929687501],[129.61015625000002,33.34365234375005],[129.844140625,33.32177734375003],[129.82568359374997,33.43701171875006],[130.36503906250007,33.634472656249955],[130.4837890625,33.834619140624966],[130.715625,33.92778320312502],[130.953125,33.87202148437504],[131.17460937500007,33.602587890625045]]],[[[132.266015625,33.945166015625006],[132.44492187500006,33.91318359374998],[132.20878906250007,33.87285156250002],[132.266015625,33.945166015625006]]],[[[129.27949218750004,34.123388671875006],[129.18642578125,34.14501953125006],[129.21484374999997,34.320654296875034],[129.3371093750001,34.284765625],[129.27949218750004,34.123388671875006]]],[[[134.35742187500003,34.25634765625],[134.6375,34.22661132812499],[134.73886718750012,33.82050781250001],[134.37705078125012,33.60839843749997],[134.18164062500003,33.24721679687502],[133.95869140625004,33.44833984375006],[133.63203125000004,33.51098632812503],[133.28593750000007,33.35996093749998],[132.97724609375004,32.84199218749998],[132.80429687500006,32.75200195312502],[132.6417968750001,32.76245117187503],[132.70898437500003,32.90249023437505],[132.49511718749997,32.91660156249998],[132.41279296875004,33.43046875],[132.0326171875,33.339990234374994],[132.64306640624997,33.68994140624997],[132.93515625000006,34.09531250000006],[133.19306640625004,33.93320312499998],[133.58203124999997,34.01713867187502],[133.60263671875006,34.24384765625001],[133.94833984375006,34.34804687500002],[134.35742187500003,34.25634765625]]],[[[134.35185546875002,34.48364257812503],[134.25185546875,34.42304687500004],[134.18212890625003,34.51923828124998],[134.35185546875002,34.48364257812503]]],[[[134.9328125000001,34.28813476562499],[134.82441406250004,34.202929687500045],[134.66787109375005,34.294140624999955],[135.00468750000002,34.54404296874998],[134.9328125000001,34.28813476562499]]],[[[129.38564453125,34.35366210937502],[129.26669921875012,34.37045898437506],[129.45107421875005,34.68657226562499],[129.38564453125,34.35366210937502]]],[[[133.37050781250005,36.203857421875],[133.23925781249997,36.178759765625045],[133.20615234375006,36.293408203124955],[133.29570312500002,36.34013671874996],[133.37050781250005,36.203857421875]]],[[[138.34404296875007,37.822119140625006],[138.22519531250006,37.82939453124996],[138.25,38.078466796875006],[138.50361328125004,38.31591796875006],[138.45361328124997,38.07568359375006],[138.57519531249997,38.065527343750034],[138.34404296875007,37.822119140625006]]],[[[141.22929687500007,41.37265625],[141.45546875000005,41.404736328124955],[141.43046875000002,40.72333984374998],[141.7970703125001,40.29116210937502],[141.97695312500005,39.428808593750034],[141.90078125,39.111328125],[141.5462890625,38.762841796874966],[141.4674804687501,38.404150390625006],[141.10839843750003,38.33793945312502],[140.9621093750001,38.148876953124955],[141.00166015625004,37.11464843750002],[140.57353515625007,36.23134765625002],[140.87402343749997,35.72495117187506],[140.457421875,35.51025390625],[140.35468750000004,35.18144531249999],[139.8439453125001,34.914892578125034],[139.82646484375002,35.29667968750002],[140.096875,35.58515624999998],[139.83476562500002,35.658056640625006],[139.65000000000012,35.40913085937501],[139.675,35.149267578125006],[139.47441406250002,35.298535156249955],[139.24941406250005,35.27802734375004],[139.08603515625006,34.83916015624999],[138.8375,34.619238281250034],[138.80273437499997,34.97480468749998],[138.90361328125002,35.02524414062506],[138.71962890625,35.12407226562502],[138.18906250000012,34.596337890624994],[137.543359375,34.66420898437505],[137.06171875000004,34.58281249999999],[137.27519531250002,34.77250976562499],[136.96328125000005,34.83491210937501],[136.87128906250004,34.733105468749955],[136.89707031250006,35.03554687500002],[136.80419921874997,35.05029296875],[136.53300781250007,34.678369140624994],[136.8802734375,34.43359375000006],[136.8537109375001,34.324072265625034],[136.32988281250007,34.17685546875006],[135.91621093750004,33.561718749999955],[135.69531250000003,33.48696289062502],[135.4528320312501,33.55336914062505],[135.12792968749997,34.006982421874994],[135.10009765624997,34.288378906250045],[135.41591796875,34.61748046875002],[134.74003906250007,34.765234375],[134.246875,34.71386718750003],[133.96826171874997,34.52729492187504],[133.14238281250002,34.30244140624998],[132.65654296875007,34.24609375000003],[132.31259765625006,34.32495117187503],[132.14648437499997,33.83876953125002],[131.74052734375007,34.05205078125002],[130.91884765625,33.97573242187502],[130.88925781250012,34.261816406250034],[131.00419921875007,34.39257812500003],[131.35439453125,34.41318359375006],[132.92294921875006,35.511279296875045],[133.98125,35.50722656250002],[135.17431640625003,35.74707031250003],[135.32695312500002,35.52553710937502],[135.68027343750006,35.503125],[135.903125,35.60688476562498],[136.09531250000006,35.767626953125045],[136.06748046875006,36.11684570312505],[136.69814453125005,36.742041015625034],[136.84345703125004,37.38212890624999],[137.32265625,37.52207031249998],[136.89990234375003,37.11767578125],[137.01669921875006,36.83720703124999],[137.24628906250004,36.753173828125],[137.5140625,36.95156250000002],[138.31992187500012,37.21840820312502],[138.88505859375007,37.84394531250001],[139.36386718750006,38.09902343750002],[139.80195312500004,38.881591796875],[140.06474609375002,39.624414062499994],[139.99472656250006,39.855078125],[139.74150390625002,39.92084960937498],[140.01113281250005,40.26035156250006],[139.92285156250003,40.59843750000002],[140.28125,40.84609375000002],[140.3444335937501,41.203320312499955],[140.62763671875004,41.195410156250034],[140.74863281250012,40.830322265625],[140.93603515625003,40.940771484375034],[141.1185546875,40.88227539062501],[141.24423828125006,41.20561523437499],[140.80058593750002,41.138818359374966],[140.80185546875012,41.253662109375],[140.9369140625,41.50556640624998],[141.22929687500007,41.37265625]]],[[[139.48125,42.08100585937498],[139.43134765625004,42.19956054687498],[139.55839843750002,42.235205078125034],[139.48125,42.08100585937498]]],[[[141.29541015625003,45.11933593750001],[141.14531250000002,45.153906250000034],[141.19375,45.24785156249999],[141.29541015625003,45.11933593750001]]],[[[141.07275390624997,45.33286132812498],[141.03398437500007,45.26933593750002],[140.97167968749997,45.465478515624994],[141.07275390624997,45.33286132812498]]],[[[143.82431640625012,44.11699218749999],[144.71523437500005,43.92797851562503],[145.36953125000005,44.32739257812506],[145.13964843750003,43.6625],[145.34082031249997,43.30253906249999],[145.83300781249997,43.38593750000001],[144.92138671874997,43.00092773437498],[143.96933593750006,42.88139648437499],[143.42949218750002,42.41889648437498],[143.2365234375001,42.000195312499955],[141.85136718750007,42.57905273437501],[141.40664062500005,42.54692382812496],[140.98613281250002,42.34213867187498],[140.70976562500002,42.555615234374955],[140.48046875000003,42.559375],[140.32666015625003,42.29335937499999],[141.15097656250012,41.80507812499999],[140.99951171874997,41.73740234375006],[140.65986328125004,41.815576171874994],[140.3849609375001,41.51928710937503],[140.08515625000004,41.43408203125],[139.99531250000004,41.57641601562503],[140.10839843749997,41.912939453125034],[139.83544921874997,42.278076171875],[139.86015625000002,42.58173828125004],[140.43222656250012,42.95410156250006],[140.39238281250002,43.303125],[141.13818359374997,43.17993164062506],[141.37412109375006,43.279638671875006],[141.7609375000001,44.482519531250034],[141.58300781250003,45.15595703125001],[141.66796874999997,45.401269531249966],[141.93769531250004,45.509521484375],[142.88476562499997,44.670117187499955],[143.82431640625012,44.11699218749999]]]]},"properties":{"name":"Japan","childNum":28}},{"geometry":{"type":"Polygon","coordinates":[[[77.04863281249999,35.109912109374996],[76.927734375,35.346630859375],[76.88222656250002,35.4357421875],[76.81279296874999,35.571826171874996],[76.76689453124999,35.66171875],[76.87890625,35.61328125],[77.09003906250001,35.552050781249996],[77.29482421875002,35.508154296875],[77.44648437500001,35.4755859375],[77.57255859374999,35.471826171874994],[77.72402343750002,35.48056640625],[77.79941406250003,35.495898437499996],[77.42343750000003,35.302587890625],[77.16855468750003,35.171533203124994],[77.04863281249999,35.109912109374996]]]},"properties":{"name":"Siachen Glacier","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[50.184472656249994,44.854638671874994],[49.99511718750003,44.93696289062498],[50.10986328124997,45.08193359375002],[50.038867187500074,44.949121093749966],[50.184472656249994,44.854638671874994]]],[[[87.32285156250012,49.085791015625006],[86.8083007812501,49.04970703125002],[86.54941406250012,48.52861328125002],[85.7494140625,48.38505859374999],[85.52597656250006,47.915625],[85.65664062500005,47.254638671875],[85.484765625,47.06352539062496],[84.78613281249997,46.83071289062505],[84.66660156250006,46.97236328125004],[84.016015625,46.97050781250002],[83.02949218750004,47.18593750000002],[82.31523437500002,45.59492187499998],[82.61162109375007,45.424267578124955],[82.52148437500003,45.12548828125],[82.26660156249997,45.21909179687498],[81.94492187500006,45.16083984375001],[81.69199218750012,45.34936523437497],[80.05917968750012,45.006445312500006],[79.871875,44.88378906249997],[80.48154296875006,44.71464843749999],[80.35527343750002,44.09726562500006],[80.78574218750006,43.16157226562504],[80.39023437500006,43.043115234374966],[80.53896484375005,42.873486328124955],[80.20224609375012,42.73447265624998],[80.209375,42.190039062500006],[80.07128906249997,42.302978515625],[79.92109375000004,42.41313476562496],[79.49013671875,42.45756835937496],[79.42822265624997,42.483496093750006],[79.20302734375005,42.66601562499997],[79.16484375000007,42.759033203125],[79.1266601562501,42.775732421875034],[76.98808593750007,42.97358398437501],[76.64648437500003,42.928808593750034],[76.50917968750005,42.91889648437498],[75.9322265625,42.92851562499999],[75.84033203125003,42.9375],[75.78955078124997,42.93291015624999],[75.68173828125,42.83046875],[75.04765625000007,42.904394531250034],[74.20908203125006,43.24038085937502],[73.88603515625002,43.132568359375],[73.55625,43.002783203125006],[73.45019531249997,42.703027343749966],[73.421875,42.59350585937503],[73.49296875000007,42.409033203125034],[73.41162109375003,42.41977539062498],[73.316015625,42.46699218750001],[73.2829101562501,42.50410156250004],[72.85507812500006,42.561132812500006],[72.75292968750003,42.63789062500001],[72.54316406250004,42.67773437500006],[72.27578125,42.757666015625006],[71.76054687500002,42.82148437500004],[71.5142578125,42.766943359375006],[71.42207031250004,42.78315429687504],[71.25664062500002,42.733544921874966],[70.89287109375007,42.339990234374994],[70.94677734374997,42.24868164062505],[69.15361328125002,41.42524414062498],[68.58408203125,40.876269531250045],[68.57265625,40.62265624999998],[68.29189453125,40.656103515625034],[68.04765625000007,40.80927734374998],[68.11308593750007,41.02861328124999],[67.9357421875001,41.19658203125002],[66.70966796875004,41.17915039062501],[66.49863281250006,41.99487304687503],[66.00957031250007,42.00488281250003],[66.1002929687501,42.99082031249998],[65.80302734375002,42.87695312500006],[65.49619140625,43.310546875],[64.9054687500001,43.714697265625006],[64.44316406250007,43.55117187499999],[63.20703125000003,43.62797851562502],[61.99023437500003,43.492138671874955],[61.007910156250006,44.39379882812497],[58.555273437500006,45.55537109375001],[55.97568359375006,44.99492187499996],[55.97744140625005,41.32221679687504],[55.434375,41.296289062499994],[54.85380859375002,41.965185546875006],[54.120996093749994,42.335205078125],[53.0558593750001,42.14775390624999],[52.4938476562501,41.780371093750034],[52.59658203125005,42.760156249999966],[51.898242187500074,42.86962890624997],[51.61601562500002,43.15844726562503],[51.29541015624997,43.17412109375002],[51.30175781249997,43.48237304687501],[50.8307617187501,44.192773437499966],[50.331152343750006,44.32548828125002],[50.25292968749997,44.461523437500006],[50.409472656250074,44.6240234375],[51.543554687500006,44.53100585937506],[51.009375,44.92182617187501],[51.4157226562501,45.35786132812501],[53.20039062500004,45.33198242187498],[52.77382812499999,45.57275390625],[53.13525390625003,46.19165039062497],[53.069433593750006,46.85605468750006],[52.48320312500002,46.99067382812504],[52.13828125,46.82861328124997],[51.178027343750074,47.110156250000045],[49.886328125,46.59565429687504],[49.347460937500074,46.51914062499998],[49.232226562500074,46.33715820312503],[48.54121093750004,46.60561523437502],[48.558398437500074,46.75712890624999],[48.959375,46.77460937499998],[48.16699218750003,47.70878906249996],[47.48193359374997,47.80390624999998],[47.292382812499994,47.74091796875004],[47.06464843750004,48.23247070312499],[46.660937500000074,48.41225585937502],[46.70263671875003,48.80556640625002],[47.031347656250006,49.150292968749994],[46.80205078125002,49.36708984375002],[46.889550781249994,49.69697265625001],[47.42919921874997,50.35795898437502],[47.7057617187501,50.37797851562502],[48.33496093750003,49.858251953125006],[48.7589843750001,49.92832031250006],[48.625097656250006,50.61269531250005],[49.32343750000004,50.851708984374966],[49.49804687500003,51.08359375000006],[50.246875,51.28950195312498],[50.79394531249997,51.729199218749955],[51.16347656250005,51.6474609375],[51.344531250000074,51.47534179687503],[52.21914062499999,51.709375],[52.57119140625005,51.481640624999955],[53.33808593750004,51.48237304687504],[54.139746093750006,51.04077148437503],[54.555273437500006,50.535791015624994],[54.64160156250003,51.011572265625034],[55.68623046875004,50.582861328125006],[56.49140625000004,51.01953124999997],[57.01171874999997,51.06518554687503],[57.44218750000002,50.88886718749998],[57.83886718750003,51.091650390625006],[58.359179687500074,51.063818359375034],[58.88369140625005,50.694433593750006],[59.4523437500001,50.62041015625002],[59.523046875,50.492871093749955],[59.812402343749994,50.58203125],[60.05859374999997,50.850292968749955],[60.42480468749997,50.67915039062498],[60.94228515625005,50.69550781250004],[61.38945312500002,50.86103515625001],[61.55468750000003,51.32460937500005],[60.464746093749994,51.651171875000045],[60.03027343749997,51.93325195312505],[60.99453125000005,52.33686523437504],[60.77441406249997,52.67578124999997],[61.047460937500006,52.97246093750002],[62.08271484375004,53.00541992187499],[61.65986328125004,53.22846679687504],[61.19921874999997,53.28715820312502],[61.22890625,53.445898437500006],[61.53496093750002,53.52329101562506],[60.97949218749997,53.62172851562505],[61.231054687500006,54.01948242187498],[61.92871093750003,53.94648437500004],[64.46123046875002,54.38417968750002],[65.08837890624997,54.340185546875034],[65.476953125,54.62329101562497],[68.15585937500006,54.97670898437505],[68.20625,55.16093750000002],[68.9772460937501,55.389599609374955],[70.18242187500002,55.162451171875034],[70.73808593750007,55.30517578125],[71.18554687500003,54.59931640624998],[71.09316406250005,54.21220703124999],[72.00449218750006,54.20566406249998],[72.18603515625003,54.32563476562501],[72.44677734375003,53.94184570312498],[72.62226562500004,54.13432617187502],[73.22988281250005,53.957812500000045],[73.71240234375003,54.04238281250002],[73.30566406250003,53.707226562499955],[73.40693359375004,53.44755859374999],[73.85898437500006,53.61972656249998],[74.35156250000003,53.487646484375006],[74.45195312500007,53.64726562500002],[75.22021484374997,53.89379882812506],[75.43720703125004,54.08964843749999],[76.8373046875,54.4423828125],[76.65458984375007,54.14526367187503],[76.42167968750007,54.151513671874966],[76.48476562500005,54.02255859374998],[77.85996093750006,53.269189453124994],[79.98623046875,50.774560546874966],[80.42363281250002,50.94628906249997],[80.44804687500002,51.18334960937503],[80.73525390625,51.29340820312498],[81.12724609375002,51.19106445312502],[81.0714843750001,50.96875],[81.38828125000006,50.95649414062501],[81.46591796875006,50.73984375],[82.49394531250007,50.72758789062499],[82.76083984375012,50.89335937500002],[83.35732421875005,50.99458007812504],[83.94511718750007,50.774658203125],[84.32324218749997,50.239160156249966],[84.9894531250001,50.061425781249994],[85.2326171875001,49.61582031249998],[86.1808593750001,49.49931640624996],[86.67548828125004,49.77729492187501],[86.62646484374997,49.56269531250001],[87.32285156250012,49.085791015625006]]]]},"properties":{"name":"Kazakhstan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[35.325292968750006,5.364892578124994],[35.745019531249994,5.343994140625],[35.80029296874997,5.156933593749983],[35.77929687499997,5.105566406250006],[35.756152343750074,4.950488281250031],[35.76308593750005,4.808007812500051],[36.02197265625003,4.468115234374991],[36.90556640625002,4.411474609374991],[37.15458984375002,4.254541015624994],[37.944921875,3.746728515625023],[38.0861328125001,3.648828124999966],[38.22529296875004,3.61899414062502],[38.45156250000005,3.604833984374977],[38.608007812500006,3.600097656249986],[39.49443359375002,3.45610351562496],[39.65751953125002,3.577832031249983],[39.79033203125002,3.754248046875034],[39.8421875,3.851464843750037],[40.765234375,4.273046875000034],[41.02080078125002,4.057470703124991],[41.22089843750004,3.943554687499969],[41.372460937499994,3.94619140624998],[41.48193359375003,3.96328125],[41.737695312499994,3.979052734375003],[41.88398437500004,3.977734375000011],[41.6134765625001,3.59047851562498],[41.34179687499997,3.20166015625],[40.964453125,2.814648437500026],[40.9787109375001,-0.870312500000011],[41.249804687500074,-1.220507812499946],[41.4269531250001,-1.449511718749974],[41.521875,-1.572265625000028],[41.53271484374997,-1.695312499999957],[41.26748046875005,-1.945019531250026],[40.889746093750006,-2.023535156250034],[40.89824218750002,-2.269921874999966],[40.64414062500006,-2.53945312499998],[40.22246093750002,-2.688378906250037],[40.1154296875001,-3.250585937499991],[39.8609375,-3.576757812500006],[39.49091796875004,-4.478417968750023],[39.221777343750006,-4.692382812500014],[37.608203125000074,-3.497070312500028],[37.643847656250074,-3.045410156250028],[33.90322265625005,-1.002050781250034],[33.94316406250002,0.173779296874969],[34.160937500000074,0.605175781250026],[34.4108398437501,0.867285156250034],[34.48173828125002,1.042138671875051],[34.79863281250002,1.24453125],[34.976464843749994,1.719628906250051],[34.97753906249997,1.861914062499991],[34.9640625000001,2.06240234374998],[34.8830078125001,2.417919921875026],[34.90576171875003,2.4796875],[34.44785156250006,3.163476562500037],[34.40722656249997,3.357519531250034],[34.39941406249997,3.412695312500006],[34.44179687499999,3.60625],[34.43769531250004,3.650585937499969],[34.392871093750074,3.691503906250048],[34.26708984375003,3.733154296875],[34.16503906250003,3.812988281250014],[34.18574218750004,3.869775390625037],[34.13203125000004,3.889160156249986],[33.97607421874997,4.220214843750028],[34.176855468750006,4.419091796875037],[34.38017578125002,4.620654296874974],[34.6398437500001,4.875488281250028],[34.878320312499994,5.109570312500026],[35.08447265624997,5.31186523437502],[35.268359375000074,5.492285156250006],[35.325292968750006,5.364892578124994]]]},"properties":{"name":"Kenya","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[72.63994140625002,39.385986328125],[72.22998046875,39.20751953125],[72.14736328125002,39.2607421875],[72.08417968750001,39.31064453125],[72.04277343750002,39.3521484375],[71.77861328125002,39.277978515624994],[71.73222656250002,39.422998046874994],[71.50332031250002,39.478808593749996],[71.51738281250002,39.553857421874994],[71.50302734375,39.582177734374994],[71.4703125,39.603662109374994],[70.79931640625,39.3947265625],[70.50117187500001,39.587353515625],[69.29765625000002,39.524804687499994],[69.2447265625,39.827099609375],[69.27880859375,39.917773437499996],[69.3072265625,39.968554687499996],[69.36542968750001,39.947070312499996],[69.43193359375002,39.909765625],[69.47626953125001,39.919726562499996],[69.47099609375002,39.990625],[69.46875,40.020751953125],[69.966796875,40.20224609375],[70.59921875,39.974511718749994],[70.990625,40.2548828125],[71.3046875,40.286914062499996],[71.69248046875,40.15234375],[72.13125,40.438623046874994],[72.3892578125,40.427392578124994],[72.40205078125001,40.578076171875],[72.6041015625,40.525439453124996],[73.13212890625002,40.82851562499999],[72.65830078125,40.869921875],[72.36406250000002,41.04345703125],[72.294921875,41.039941406249994],[72.21308593750001,41.0142578125],[72.18730468750002,41.025927734374996],[72.18095703125002,41.118457031249996],[72.16425781250001,41.173730468749994],[72.11542968750001,41.186572265624996],[72.05244140625001,41.16474609375],[71.95849609375,41.187060546874996],[71.87861328125001,41.19501953125],[71.8580078125,41.311376953125],[71.79248046875,41.413134765624996],[71.75771484375002,41.428027343749996],[71.70068359375,41.454003906249994],[71.66494140625002,41.5412109375],[71.6375,41.5341796875],[71.60224609375001,41.503271484375],[71.60625,41.367431640625],[71.54560546875001,41.308056640625],[71.5,41.307470703125],[71.4208984375,41.34189453125],[71.40839843750001,41.136035156249996],[71.39306640625,41.123388671875],[71.11074218750002,41.152636718749996],[70.86044921875,41.224902343749996],[70.734375,41.400537109374994],[70.18095703125002,41.571435546874994],[70.85664062500001,42.030810546874996],[71.0322265625,42.077783203124994],[71.228515625,42.162890625],[71.23232421875002,42.186279296875],[71.21269531250002,42.206445312499994],[71.12998046875,42.25],[71.03603515625002,42.28466796875],[70.97900390625,42.266552734375],[70.94677734375,42.248681640624994],[70.89287109375002,42.339990234374994],[71.25664062500002,42.733544921874994],[71.42207031250001,42.783154296875],[71.5142578125,42.766943359375],[71.76054687500002,42.821484375],[72.16181640625001,42.760693359375],[72.27578125000002,42.757666015625],[72.54316406250001,42.677734375],[72.7529296875,42.637890625],[72.855078125,42.5611328125],[73.28291015625001,42.5041015625],[73.316015625,42.4669921875],[73.41162109375,42.419775390625],[73.49296875000002,42.409033203125],[73.421875,42.593505859375],[73.4501953125,42.703027343749994],[73.55625,43.002783203125],[73.88603515625002,43.132568359375],[74.20908203125,43.240380859374994],[75.04765625000002,42.90439453125],[75.68173828125,42.83046875],[75.78955078125,42.932910156249996],[75.84033203125,42.9375],[75.9322265625,42.928515625],[76.50917968750002,42.918896484375],[76.646484375,42.92880859375],[76.98808593749999,42.973583984375],[79.12666015625001,42.775732421875],[79.20302734375002,42.666015625],[79.29550781250003,42.604833984375],[79.36777343750003,42.547216796875],[79.42822265625,42.48349609375],[79.92109375000001,42.413134765624996],[80.0712890625,42.302978515625],[80.209375,42.1900390625],[80.24619140625003,42.059814453125],[80.23515624999999,42.04345703125],[80.21621093750002,42.032421875],[79.90966796875,42.014990234375],[79.84042968750003,41.995751953124994],[79.76611328125,41.898876953125],[78.74257812500002,41.56005859375],[78.54316406250001,41.4595703125],[78.44287109375,41.417529296874996],[78.36240234375003,41.371630859374996],[78.34628906250003,41.2814453125],[78.12343750000002,41.075634765625],[77.95644531250002,41.050683593749994],[77.81523437499999,41.055615234375],[77.71933593750003,41.024316406249994],[77.58173828125001,40.9927734375],[76.98662109374999,41.03916015625],[76.90771484375,41.024169921875],[76.82402343749999,40.982324218749994],[76.70839843750002,40.818115234375],[76.6611328125,40.779638671875],[76.63984375000001,40.742236328124996],[76.62216796875003,40.662353515625],[76.57792968749999,40.577880859375],[76.48017578125001,40.449511718749996],[76.39638671875002,40.389794921874994],[76.31855468750001,40.35224609375],[76.25830078125,40.43076171875],[75.87197265625002,40.30322265625],[75.67714843750002,40.305810546874994],[75.55556640625002,40.6251953125],[75.52080078125002,40.6275390625],[75.24101562500002,40.480273437499996],[75.111328125,40.4541015625],[75.0044921875,40.449511718749996],[74.865625,40.493505859375],[74.80126953125,40.428515625],[74.83046875000002,40.32851562499999],[74.41191406250002,40.13720703125],[74.24267578125,40.092041015625],[74.08515625000001,40.07431640625],[73.99160156250002,40.043115234374994],[73.93876953125002,39.978808593749996],[73.88457031250002,39.8779296875],[73.85625,39.828662109374996],[73.83535156250002,39.800146484375],[73.83974609375002,39.762841796874994],[73.88251953125001,39.71455078125],[73.9146484375,39.606494140624996],[73.90712890625002,39.57851562499999],[73.87275390625001,39.53330078125],[73.82294921875001,39.48896484375],[73.71572265625002,39.462255859375],[73.63164062500002,39.448876953124994],[73.47041015625001,39.460595703124994],[73.38740234375001,39.442724609375],[73.33613281250001,39.412353515625],[73.2349609375,39.374560546874996],[73.10927734375002,39.3619140625],[72.63994140625002,39.385986328125]],[[70.66416015625,39.85546875],[70.56708984375001,39.866601562499994],[70.49775390625001,39.882421875],[70.48281250000002,39.882714843749994],[70.4892578125,39.863037109375],[70.5595703125,39.790917968749994],[70.61210937500002,39.786767578124994],[70.70166015625,39.82529296875],[70.66416015625,39.85546875]],[[71.20615234375,39.892578125],[71.22871093750001,40.048144531249996],[71.08037109375002,40.079882812499996],[71.02412109375001,40.149169921875],[71.00546875,40.152294921875],[70.96064453125001,40.08798828125],[71.04482421875002,39.992529296875],[71.04365234375001,39.976318359375],[71.01171875,39.8951171875],[71.06425781250002,39.884912109374994],[71.15625,39.883447265624994],[71.20615234375,39.892578125]]]},"properties":{"name":"Kyrgyzstan","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[104.42636718750006,10.411230468749991],[103.87050781250005,10.655126953125034],[103.58710937500004,10.552197265625026],[103.54042968750005,10.668701171875043],[103.721875,10.890136718750043],[103.5324218750001,11.146679687499997],[103.35361328125006,10.921582031250054],[103.15283203124997,10.913720703125051],[103.12548828124997,11.460644531250011],[102.9486328125,11.773486328124974],[102.93388671875002,11.706689453125037],[102.73662109375007,12.089794921875011],[102.75566406250002,12.42626953125],[102.49960937500012,12.669970703125003],[102.33632812500005,13.560302734375014],[102.546875,13.585693359375043],[102.90927734375006,14.136718750000028],[103.19941406250004,14.332617187499977],[104.77900390625004,14.427832031250006],[105.07412109375005,14.227441406250037],[105.12597656250003,14.280957031250011],[105.16914062500004,14.336083984374966],[105.1833007812501,14.346240234374989],[105.18554687500003,14.319091796874972],[105.20703125000003,14.259375],[105.24570312500006,14.200537109374977],[105.35019531250006,14.109570312500011],[105.53154296875007,14.156152343749994],[105.73974609375003,14.084960937500057],[105.83144531250005,13.976611328125003],[105.9044921875001,13.924511718750054],[106.06679687500005,13.921191406250003],[106.12470703125004,14.049121093750031],[106.09667968749997,14.127099609375023],[106.00410156250004,14.262890624999983],[105.97890625,14.343017578125043],[106.00839843750012,14.357177734375],[106.1652343750001,14.372363281249989],[106.19072265625007,14.388134765624997],[106.22539062500002,14.476220703125009],[106.26796875,14.466210937500009],[106.35498046875003,14.454785156249997],[106.44697265625004,14.515039062500009],[106.50146484375003,14.578222656250006],[106.53115234375005,14.549414062499991],[106.5636718750001,14.505078125000026],[106.59921875000006,14.479394531250037],[106.66542968750005,14.441308593749994],[106.73818359375005,14.387744140625017],[106.78349609375002,14.335107421875037],[106.81992187500006,14.314697265625057],[106.91318359375006,14.329394531250031],[106.93808593750006,14.327343750000054],[106.99218750000003,14.391015624999966],[107.03017578125,14.425683593750009],[107.06240234375,14.415771484375043],[107.109375,14.416699218750054],[107.29267578125004,14.592382812500048],[107.37988281250003,14.555322265625051],[107.41474609375004,14.56289062499999],[107.51943359375005,14.705078125],[107.3314453125,14.126611328125009],[107.60546874999997,13.437792968750017],[107.47539062500002,13.030371093749963],[107.50644531250006,12.364550781250031],[107.39335937500002,12.260498046874972],[107.21210937500004,12.30400390624996],[106.70009765625,11.979296874999974],[106.41386718750002,11.9484375],[106.39921875000007,11.687011718750028],[106.0060546875001,11.758007812500011],[105.85146484375005,11.635009765625],[105.85605468750006,11.294287109375048],[106.16093750000002,11.037109375000057],[106.16396484375005,10.794921875],[105.85332031250007,10.86357421874996],[105.75507812500004,10.989990234375043],[105.40576171875003,10.95161132812504],[105.3146484375001,10.845166015625026],[105.04570312500002,10.911376953125014],[105.04638671874997,10.701660156250014],[104.85058593749997,10.534472656249974],[104.42636718750006,10.411230468749991]]]},"properties":{"name":"Cambodia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-157.34213867187503,1.855566406250034],[-157.17578125,1.73984375],[-157.57895507812498,1.902050781249997],[-157.43583984374993,1.84726562500002],[-157.365185546875,1.94609375],[-157.44189453125003,2.025048828125009],[-157.321875,1.968554687500045],[-157.34213867187503,1.855566406250034]]],[[[-159.3390625,3.923535156249983],[-159.27475585937503,3.796582031250054],[-159.40903320312503,3.87324218750004],[-159.3390625,3.923535156249983]]]]},"properties":{"name":"Kiribati","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[126.32695312500002,33.2236328125],[126.16562500000012,33.31201171875],[126.33769531250002,33.46040039062501],[126.90117187500002,33.51513671874997],[126.87285156250002,33.34116210937498],[126.32695312500002,33.2236328125]]],[[[126.23369140625002,34.370507812499994],[126.12285156250002,34.443945312500034],[126.34384765625012,34.544921875],[126.23369140625002,34.370507812499994]]],[[[126.17197265625006,34.73115234375001],[126.00751953125004,34.86748046874999],[126.07841796875002,34.914843750000045],[126.17197265625006,34.73115234375001]]],[[[128.0658203125,34.80585937500004],[128.05468750000003,34.70805664062502],[127.87343750000005,34.73496093749998],[127.8322265625001,34.87451171875],[128.0658203125,34.80585937500004]]],[[[128.74101562500007,34.798535156249955],[128.64667968750004,34.73686523437502],[128.48925781250003,34.86528320312496],[128.66796875000003,35.0087890625],[128.74101562500007,34.798535156249955]]],[[[126.52070312500004,37.73681640625003],[126.516015625,37.60468750000001],[126.42333984375003,37.62363281250006],[126.41162109374997,37.82265625000002],[126.52070312500004,37.73681640625003]]],[[[128.37460937500012,38.6234375],[129.41826171875002,37.059033203124955],[129.40351562500004,36.052148437499994],[129.57285156250006,36.05053710937503],[129.4191406250001,35.49785156249996],[129.07675781250006,35.12270507812502],[128.5109375000001,35.10097656250002],[128.44394531250012,34.87036132812503],[128.03623046875006,35.02197265625],[127.71484374999997,34.95468749999998],[127.71542968750012,34.72104492187498],[127.40429687499997,34.823095703125006],[127.47910156250012,34.625244140625],[127.324609375,34.463281249999966],[127.17343750000006,34.54614257812497],[127.24707031249997,34.755126953125],[126.89746093749997,34.438867187499966],[126.75478515625005,34.511865234374994],[126.53144531250004,34.31425781249999],[126.26445312500002,34.67324218750002],[126.52451171875006,34.697900390624966],[126.59335937500012,34.824365234374994],[126.42070312500002,34.823388671874966],[126.29111328125012,35.154150390625034],[126.61406250000007,35.57099609375004],[126.4884765625001,35.647070312500006],[126.75302734375006,35.871972656249994],[126.5404296875,36.166162109374966],[126.4876953125,36.69379882812498],[126.18085937500004,36.69160156249998],[126.16054687500005,36.77192382812501],[126.48701171875004,37.00747070312502],[126.78447265625007,36.94843749999998],[126.87207031249997,36.82446289062506],[126.97685546875002,36.93940429687501],[126.74638671875002,37.19355468750001],[126.63388671875012,37.78183593750006],[127.09033203125003,38.28388671875001],[128.03896484375,38.30854492187498],[128.37460937500012,38.6234375]]]]},"properties":{"name":"Korea","childNum":7}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[48.27539062499997,29.624316406250017],[48.17968750000003,29.611425781250063],[48.081445312499994,29.798925781250063],[48.1847656250001,29.978857421875034],[48.348242187500006,29.78266601562504],[48.27539062499997,29.624316406250017]]],[[[48.442480468750006,28.542919921874983],[47.671289062499994,28.53315429687504],[47.433203125,28.989550781250017],[46.53144531250004,29.09624023437499],[46.69375,29.259667968749966],[46.76933593750002,29.347460937500017],[46.90585937500006,29.5375],[47.14824218750002,30.0009765625],[47.64375,30.097314453125023],[47.75390624999997,30.076611328124955],[47.97871093750004,29.98281250000005],[48.00566406250002,29.835791015625034],[48.143457031249994,29.57246093750001],[47.96962890625005,29.61669921874997],[47.72265624999997,29.393017578124955],[48.0514648437501,29.355371093750023],[48.442480468750006,28.542919921874983]]]]},"properties":{"name":"Kuwait","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[102.12744140625011,22.37919921874999],[102.58251953125006,21.904296875000057],[102.66201171875008,21.676025390625057],[102.73857421875005,21.677929687500125],[102.77109375000015,21.70966796875001],[102.79824218750014,21.797949218750034],[102.81591796875,21.807373046875],[102.94960937500008,21.681347656250068],[102.85117187500009,21.26591796874999],[102.8837890625,21.202587890625068],[103.1044921875,20.89165039062499],[103.21074218749999,20.840625],[103.46357421874995,20.779833984375102],[103.6350585937501,20.697070312500102],[104.10136718750005,20.945507812500125],[104.1953125,20.91396484375008],[104.349609375,20.82109374999999],[104.58320312500001,20.646679687499955],[104.53271484375,20.554882812500125],[104.47861328124998,20.529589843750102],[104.40781250000015,20.485742187500023],[104.36777343750015,20.441406250000057],[104.39218750000015,20.424755859375068],[104.49619140625003,20.41367187499992],[104.61884765624995,20.374511718750114],[104.65644531250001,20.328515624999966],[104.66191406250005,20.289013671875125],[104.67695312500007,20.224707031249977],[104.69873046875006,20.205322265625114],[104.84785156250007,20.202441406250045],[104.88867187500006,20.169091796875023],[104.92919921874994,20.082812500000045],[104.92792968750007,20.01811523437499],[104.81513671875001,19.90400390625001],[104.80175781250011,19.836132812500068],[104.74316406250006,19.754736328124977],[104.58789062500006,19.61875],[104.54628906250014,19.610546875000068],[104.25986328125003,19.685498046875068],[104.06279296875005,19.678417968750068],[104.03203124999999,19.67514648437492],[104.0134765625001,19.646484374999943],[104.05156250000005,19.564160156250068],[104.06289062500002,19.482568359375136],[104.02753906250013,19.420458984375102],[103.93203125000002,19.366064453125034],[103.89638671875002,19.339990234375023],[103.89160156249994,19.30498046874999],[105.146484375,18.650976562499977],[105.14541015625014,18.616796874999977],[105.08701171875015,18.49624023437508],[105.11455078125005,18.405273437500057],[105.45820312500007,18.154296875000057],[105.51855468750011,18.077441406250045],[105.58847656250015,17.983691406249932],[105.69140625,17.737841796874932],[106.00625,17.415283203124943],[106.26953125,17.216796875000057],[106.33339843750002,17.14370117187508],[106.42597656250007,17.00253906250009],[106.50224609374999,16.9541015625],[106.52597656250003,16.876611328125023],[106.53369140625,16.821044921875057],[106.54619140625005,16.650732421874977],[106.65644531250013,16.492626953125125],[106.73955078124999,16.452539062500136],[106.79160156250015,16.490332031249977],[106.83242187500008,16.526269531250023],[106.85107421875,16.515625],[106.89277343750013,16.396533203125102],[106.93066406250006,16.353125],[107.39638671875008,16.04301757812499],[107.39199218750008,15.951660156250057],[107.36064453125005,15.921728515624977],[107.18886718750008,15.838623046875114],[107.16591796875002,15.802490234375],[107.27939453125003,15.618701171875045],[107.33876953125002,15.560498046875125],[107.56425781249999,15.3916015625],[107.62167968750015,15.309863281250045],[107.653125,15.255224609375091],[107.63369140625008,15.18984375000008],[107.58964843749999,15.118457031250102],[107.55527343750009,15.057031250000023],[107.48037109375014,14.979882812500136],[107.5046875000001,14.91591796875008],[107.52451171875003,14.871826171874943],[107.51376953124998,14.817382812500057],[107.51943359375008,14.705078125000114],[107.46513671875005,14.664990234375125],[107.41474609375007,14.56289062500008],[107.37988281250006,14.555322265625136],[107.29267578125007,14.592382812500034],[107.109375,14.416699218749955],[107.06240234375008,14.415771484374943],[107.03017578125008,14.425683593750023],[106.99218749999994,14.39101562500008],[106.93808593750015,14.327343750000068],[106.91318359375003,14.329394531249932],[106.81992187500003,14.314697265624943],[106.7834960937501,14.335107421875023],[106.73818359375008,14.387744140625102],[106.66542968750002,14.441308593750023],[106.59921875000003,14.479394531250136],[106.56367187500007,14.505078125000011],[106.53115234375002,14.549414062499977],[106.50146484375,14.578222656250034],[106.22539062500005,14.476220703125023],[106.1907226562501,14.388134765625011],[106.16523437500007,14.372363281249989],[106.00839843750009,14.357177734375114],[105.97890625000014,14.343017578125057],[106.00410156250013,14.262890625000068],[106.09667968750011,14.127099609375136],[106.12470703124995,14.049121093750045],[106.06679687500008,13.921191406250102],[105.90449218750007,13.924511718750068],[105.83144531250008,13.976611328124989],[105.73974609375006,14.084960937500057],[105.5315429687501,14.156152343750023],[105.35019531250009,14.109570312500125],[105.24570312500015,14.200537109374977],[105.20703125000006,14.259375],[105.18554687499994,14.319091796875],[105.18330078125001,14.346240234374989],[105.24365234375006,14.367871093749955],[105.34218750000008,14.416699218749955],[105.42265624999993,14.471630859374955],[105.47558593750006,14.530126953124977],[105.49736328125005,14.590673828125034],[105.52304687500015,14.843310546874989],[105.54667968749999,14.932470703125034],[105.53339843750013,15.041601562500091],[105.49042968750007,15.127587890625023],[105.49042968750007,15.256591796875],[105.615625,15.488281249999943],[105.63886718750013,15.585937499999943],[105.64101562500002,15.656542968749932],[105.62207031250006,15.699951171875114],[105.39892578125011,15.829882812500102],[105.40625,15.987451171875023],[105.33066406250003,16.037890625000045],[105.1487304687501,16.09355468749999],[105.04716796874999,16.16025390625009],[104.81933593749994,16.466064453125057],[104.75058593750015,16.647558593750034],[104.74355468750014,16.884375],[104.75898437500013,17.0771484375],[104.81601562499998,17.30029296875],[104.73964843750008,17.461669921875],[104.428125,17.698974609375057],[104.32265625000002,17.815820312500023],[104.19619140625002,17.988378906250034],[104.04873046875002,18.216699218749966],[103.94960937500008,18.318994140625023],[103.89882812500002,18.295312500000023],[103.79228515624999,18.31650390625009],[103.62968750000005,18.382568359375057],[103.48798828124995,18.41816406250001],[103.36699218750005,18.42333984375],[103.28828124999995,18.408398437499955],[103.25175781249999,18.373486328125125],[103.24892578125014,18.338964843750034],[103.27958984374999,18.304980468750045],[103.26318359375,18.278466796875136],[103.19970703125006,18.25947265625001],[103.14853515625009,18.221728515624932],[103.09121093750014,18.13823242187499],[103.05136718750003,18.02851562500001],[102.80742187500005,17.945556640625],[102.71757812500005,17.892236328125136],[102.67519531250014,17.851757812500068],[102.68007812500008,17.824121093750136],[102.66064453125,17.8179687499999],[102.61679687500015,17.833349609375034],[102.59824218750009,17.926757812500057],[102.55253906249999,17.965087890625057],[102.4587890625001,17.984619140624943],[102.35185546874999,18.045947265625045],[102.14824218750005,18.203857421875057],[102.10146484375014,18.21064453125001],[102.03457031250002,18.169824218750023],[101.94746093750001,18.081494140624955],[101.87548828125011,18.046435546874932],[101.81865234375005,18.064648437500125],[101.77480468750002,18.033398437500125],[101.6875,17.889404296875114],[101.56367187500001,17.820507812500125],[101.55507812500002,17.812353515625034],[101.41367187500015,17.71875],[101.16748046875011,17.4990234375],[101.10517578125001,17.479541015625102],[100.9084960937501,17.583886718750023],[101.14394531250008,18.14262695312499],[101.1375,18.286865234375057],[101.0505859375001,18.407031250000045],[101.04697265625003,18.441992187500034],[101.28632812499995,18.977148437500034],[101.19755859374999,19.327929687500045],[101.22080078125015,19.486621093750045],[101.21191406250011,19.548339843750057],[100.51357421875008,19.553466796875],[100.39765625000013,19.756103515625057],[100.51953125000006,20.177929687500068],[100.31796875000003,20.385888671875136],[100.2180664062501,20.339599609375114],[100.13974609375015,20.245410156250102],[100.11494140625007,20.25766601562492],[100.12246093750002,20.316650390625057],[100.12968750000005,20.372216796875023],[100.1838867187501,20.589111328124943],[100.2493164062501,20.730273437499932],[100.32607421875008,20.795703124999932],[100.40742187499995,20.823242187500057],[100.56513671875013,20.82509765625008],[100.62294921875002,20.85957031250001],[100.61767578125,20.87924804687509],[100.54931640625011,20.884228515625068],[100.5222656250001,20.921923828125102],[100.53613281250006,20.992382812500068],[100.703125,21.25136718750008],[101.0803710937501,21.46865234375008],[101.13886718750013,21.567480468749977],[101.19667968750002,21.522070312499977],[101.17539062500009,21.407519531250102],[101.21992187500013,21.342431640625136],[101.21181640625008,21.278222656250023],[101.22441406249999,21.22373046874992],[101.24785156249993,21.197314453125045],[101.28144531250007,21.184130859375045],[101.44355468750001,21.230810546874977],[101.54238281250008,21.234277343750136],[101.70478515625013,21.150146484375057],[101.728125,21.15639648437508],[101.78349609374999,21.204150390625045],[101.8005859375001,21.212597656249955],[101.7229492187501,21.314941406250057],[101.74726562500007,21.60576171874999],[101.7439453125001,21.77797851562508],[101.73652343750001,21.826513671874977],[101.52451171874998,22.253662109375],[101.56787109375011,22.2763671875],[101.6199218750001,22.327441406250102],[101.67148437500009,22.462304687500023],[101.70751953125,22.486572265625],[101.73876953125011,22.495263671874966],[101.75996093750001,22.490332031250034],[101.841796875,22.388476562500102],[102.02441406250006,22.439208984375114],[102.09150390625007,22.412255859375136],[102.12744140625011,22.37919921874999]]]},"properties":{"name":"Lao PDR","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[35.869140625,33.43173828125],[35.411230468750006,33.07568359375],[35.10859375000001,33.08369140625],[35.64785156250002,34.2482421875],[35.97626953125001,34.629199218749996],[36.383886718750006,34.65791015625],[36.32988281250002,34.499609375],[36.50439453125,34.432373046875],[36.5849609375,34.221240234374996],[36.27783203125,33.92529296875],[36.36503906250002,33.83935546875],[35.98613281250002,33.75263671875],[36.03447265625002,33.58505859375],[35.869140625,33.43173828125]]]},"properties":{"name":"Lebanon","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-8.486425781249977,7.558496093749994],[-8.408740234374989,7.411816406249997],[-8.324511718749989,6.920019531249991],[-8.587890625,6.490527343749989],[-8.287109375,6.319042968749997],[-7.981591796874994,6.2861328125],[-7.888623046874983,6.23486328125],[-7.800927734374994,6.038916015624991],[-7.730371093749994,5.919042968749991],[-7.636132812499994,5.90771484375],[-7.454394531249989,5.84130859375],[-7.39990234375,5.550585937499989],[-7.585058593749977,4.916748046875],[-7.574658203124983,4.572314453124989],[-7.544970703124989,4.351318359375],[-8.259033203125,4.589990234374994],[-9.132177734374977,5.054638671874997],[-10.2763671875,6.07763671875],[-11.291601562499977,6.688232421875],[-11.507519531249983,6.906542968749989],[-11.267675781249977,7.232617187499997],[-10.878076171874994,7.538232421874994],[-10.6474609375,7.759375],[-10.570849609374989,8.071142578124991],[-10.516748046874994,8.125292968749989],[-10.359814453124983,8.187939453124997],[-10.283203125,8.485156249999989],[-10.233056640624994,8.488818359374989],[-10.147412109374983,8.519726562499997],[-10.064355468749994,8.429882812499997],[-9.781982421875,8.537695312499991],[-9.518261718749983,8.34609375],[-9.369140625,7.703808593749997],[-9.463818359374983,7.415869140624991],[-9.11757812499999,7.215917968749991],[-8.8896484375,7.2626953125],[-8.659765624999977,7.688378906249994],[-8.486425781249977,7.558496093749994]]]},"properties":{"name":"Liberia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[25.150488281250006,31.654980468749997],[24.85273437500001,31.334814453125],[24.96142578125,30.678515625],[24.703222656250006,30.201074218749994],[24.980273437500017,29.181884765625],[24.980273437500017,25.5888671875],[24.980273437500017,21.995849609375],[24.9794921875,20.002587890624994],[23.980273437500017,19.99594726562499],[23.980273437500017,19.496630859375003],[20.14765625000001,21.38925781249999],[15.984082031250011,23.445214843749994],[14.97900390625,22.99619140624999],[14.215527343750011,22.619677734375003],[13.48125,23.18017578125],[11.967871093750006,23.517871093750003],[11.507617187500017,24.314355468749994],[10.686132812500006,24.55136718749999],[10.395898437500023,24.485595703125],[10.255859375,24.591015625],[10.000683593750011,25.332080078125003],[9.4482421875,26.067138671875],[9.491406250000011,26.333740234375],[9.883203125000023,26.630810546874997],[9.74755859375,27.330859375],[9.916015625,27.785693359374996],[9.805273437500006,29.176953125],[9.310253906250011,30.115234375],[9.51875,30.229394531249994],[9.89501953125,30.3873046875],[9.932519531250023,30.425341796874996],[10.059765625000011,30.580078125],[10.21640625,30.783203125],[10.114941406250011,31.463769531249994],[10.274609375000011,31.684960937499994],[10.475781250000011,31.736035156249997],[10.60888671875,31.929541015625],[10.826367187500011,32.0806640625],[11.005175781250017,32.172705078125],[11.168261718750017,32.256738281249994],[11.358007812500006,32.34521484375],[11.504980468750006,32.413671875],[11.535937500000017,32.47333984375],[11.533789062500006,32.524951171874996],[11.453906250000017,32.642578125],[11.453906250000017,32.781689453125],[11.459179687500011,32.897363281249994],[11.467187500000023,32.965722656249994],[11.504589843750011,33.181933593749996],[11.657128906250023,33.118896484375],[11.8134765625,33.093701171875],[12.279882812500006,32.858544921874994],[12.753515625,32.801074218749996],[13.283496093750017,32.9146484375],[15.176562500000017,32.391162109374996],[15.705957031250023,31.426416015624994],[17.830468750000023,30.927587890625],[18.669824218750023,30.415673828124994],[19.12373046875001,30.26611328125],[19.713281250000023,30.48837890625],[20.11152343750001,30.963720703125],[19.926367187500006,31.817529296874994],[20.121484375000023,32.21875],[20.62109375,32.58017578125],[21.63593750000001,32.937304687499996],[22.187402343750023,32.918261718749996],[23.090625,32.61875],[23.10625,32.331445312499994],[23.28632812500001,32.213818359375],[24.129687500000017,32.009228515625],[24.878515625,31.984277343749994],[25.150488281250006,31.654980468749997]]]},"properties":{"name":"Libya","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-60.89521484375,13.821972656249997],[-60.951416015625,13.717578125],[-61.073144531249994,13.865576171874991],[-60.908105468749994,14.09335937499999],[-60.89521484375,13.821972656249997]]]},"properties":{"name":"Saint Lucia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[79.87480468750002,9.050732421875026],[79.90371093750005,8.975],[79.74765625000006,9.104589843749991],[79.87480468750002,9.050732421875026]]],[[[79.98232421875,9.812695312500011],[80.25283203125005,9.796337890625054],[80.71113281250004,9.366357421875023],[81.226953125,8.50551757812498],[81.37285156250002,8.431445312499989],[81.42216796875007,8.147851562500023],[81.87412109375012,7.288330078124986],[81.86142578125012,6.901269531249994],[81.63740234375004,6.425146484374991],[80.72412109375003,5.97905273437496],[80.26738281250007,6.009765625],[80.09531250000012,6.153173828125006],[79.859375,6.829296874999983],[79.71298828125012,8.18232421875004],[79.74980468750007,8.294238281250003],[79.78349609375007,8.018457031250051],[79.92890625000004,8.899218749999974],[80.09960937499997,9.209960937500043],[80.08632812500005,9.577832031250026],[80.42832031250006,9.480957031250014],[80.04580078125005,9.649902343749972],[79.98232421875,9.812695312500011]]]]},"properties":{"name":"Sri Lanka","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[28.646875,-30.1265625],[28.39208984375,-30.147558593750006],[28.128710937500017,-30.52509765625001],[28.05683593750001,-30.63105468750001],[27.753125,-30.6],[27.364062500000017,-30.27919921875001],[27.19355468750001,-29.94130859375001],[27.056933593750017,-29.625585937500006],[27.29453125,-29.519335937500003],[27.73554687500001,-28.940039062500006],[27.959863281250023,-28.873339843750003],[28.084375,-28.77998046875001],[28.23261718750001,-28.701269531250006],[28.471875,-28.615820312500006],[28.583398437500023,-28.594140625],[28.625781250000017,-28.58173828125001],[29.301367187500006,-29.08984375],[29.38671875,-29.31972656250001],[29.34882812500001,-29.441992187500006],[29.293554687500006,-29.56689453125],[29.1421875,-29.700976562500003],[29.098046875000023,-29.919042968750006],[28.646875,-30.1265625]]]},"properties":{"name":"Lesotho","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[20.957812500000074,55.27890625000006],[20.89980468750008,55.286669921875045],[21.11484375,55.61650390624999],[20.957812500000074,55.27890625000006]]],[[[25.573046875000017,54.139892578125],[25.497363281250045,54.17524414062501],[25.52734375000003,54.21513671874996],[25.505664062500045,54.26494140624999],[25.46113281250004,54.29277343749996],[25.179492187500017,54.214257812499966],[25.111425781250006,54.15493164062505],[25.04609375000004,54.13305664062503],[24.869531250000023,54.14516601562502],[24.82568359374997,54.118994140625006],[24.78925781250001,53.99824218750001],[24.768164062499977,53.97465820312499],[24.31796875,53.892968749999966],[24.236621093750045,53.91997070312496],[24.19130859375005,53.95043945312503],[23.559082031250057,53.91982421875002],[23.484667968750074,53.939794921875006],[23.453613281250057,54.14345703125002],[23.3701171875,54.20048828124999],[23.282324218750063,54.240332031250034],[23.17031250000008,54.28144531249998],[23.0875,54.299462890624994],[23.042187500000068,54.30419921875],[23.01552734375005,54.34833984375001],[22.976757812500068,54.36635742187505],[22.89394531250008,54.390527343749994],[22.82373046874997,54.39580078124999],[22.766210937499977,54.356787109375034],[22.679882812500068,54.493017578125006],[22.684472656250023,54.56293945312504],[22.82470703125,54.87128906249998],[22.56728515625005,55.05913085937496],[22.072363281250034,55.06367187499998],[21.235742187500023,55.26411132812498],[21.237890625000034,55.455029296874955],[21.06191406250005,55.81342773437498],[21.053808593750006,56.02294921875003],[21.04609375000004,56.07006835937503],[21.31464843750004,56.18813476562502],[21.65351562500004,56.314550781250006],[22.084570312500034,56.40673828125006],[22.875585937500063,56.39643554687501],[22.96826171875003,56.38041992187502],[23.042968750000057,56.324072265625006],[23.119824218749983,56.330664062500006],[23.195898437500034,56.36713867187498],[24.120703125000063,56.26425781249998],[24.90302734375001,56.398193359375],[25.069921875,56.20039062500004],[25.663183593750063,56.104833984375006],[26.593554687500074,55.66752929687502],[26.590820312500057,55.62265625],[26.56660156250001,55.546484375000034],[26.51923828125004,55.448144531249994],[26.469531250000045,55.371923828125006],[26.457617187500006,55.342480468749955],[26.49531250000004,55.31801757812502],[26.68125,55.30644531249999],[26.76015625000008,55.29335937499999],[26.775683593750045,55.27309570312502],[26.601171875000034,55.130175781250045],[26.291796875000074,55.13959960937501],[26.250781250000045,55.12451171875006],[26.175195312500023,55.003271484375034],[26.092968750000068,54.96230468750005],[25.964453124999977,54.947167968749966],[25.85927734375005,54.91928710937498],[25.722460937500074,54.71787109374998],[25.731640625000068,54.59038085937502],[25.72480468750001,54.564257812500045],[25.68515625,54.53579101562502],[25.62031250000004,54.46040039062501],[25.56757812500004,54.377050781250006],[25.54736328125,54.33183593750002],[25.55751953125005,54.310693359374994],[25.702539062499994,54.29296875],[25.765234374999977,54.179785156250034],[25.573046875000017,54.139892578125]]]]},"properties":{"name":"Lithuania","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[6.4873046875,49.798486328124994],[6.344335937500006,49.452734375],[6.181054687500023,49.498925781249994],[6.119921875000017,49.485205078125],[6.074121093750023,49.454638671874996],[6.011425781250011,49.445458984374994],[5.95947265625,49.454638671874996],[5.928906250000011,49.4775390625],[5.9013671875,49.48974609375],[5.823437500000011,49.505078125],[5.789746093750011,49.53828125],[5.776710379464286,49.639953962053575],[5.744042968750023,49.91962890625],[5.7880859375,49.961230468749996],[5.8173828125,50.0126953125],[5.866894531250011,50.0828125],[5.976269531250011,50.1671875],[6.089062500000011,50.154589843749996],[6.110058593750011,50.123779296875],[6.116503906250017,50.120996093749994],[6.109765625000023,50.034375],[6.13818359375,49.97431640625],[6.204882812500017,49.91513671875],[6.272327008928583,49.887234933035714],[6.4873046875,49.798486328124994]]]},"properties":{"name":"Luxembourg","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[28.14794921875,56.142919921875],[27.576757812500006,55.798779296875],[27.052539062500017,55.83056640625],[26.593554687500017,55.667529296874996],[25.663183593750006,56.104833984375],[25.069921875,56.200390625],[24.90302734375001,56.398193359375],[24.120703125,56.2642578125],[23.81269531250001,56.329248046875],[23.195898437500006,56.367138671875],[23.11982421875001,56.3306640625],[23.04296875,56.324072265625],[22.875585937500006,56.396435546875],[22.084570312500006,56.40673828125],[21.730566406250006,56.325976562499996],[21.65351562500001,56.31455078125],[21.31464843750001,56.188134765625],[21.04609375000001,56.070068359375],[21.0712890625,56.82373046875],[21.72871093750001,57.57099609375],[22.554589843750023,57.724267578125],[23.28730468750001,57.08974609375],[23.647753906250017,56.971044921875],[24.382617187500017,57.250048828124996],[24.322558593750017,57.87060546875],[24.3625,57.866162109375],[24.458886718750023,57.907861328125],[25.11103515625001,58.063427734375],[25.27265625000001,58.009375],[25.66015625,57.920166015625],[26.29804687500001,57.60107421875],[26.532617187500023,57.531005859375],[26.96601562500001,57.609130859375],[27.187109375,57.538330078125],[27.326562500000023,57.52548828125],[27.4697265625,57.5240234375],[27.538671875,57.42978515625],[27.796875,57.316943359374996],[27.82861328125,57.293310546875],[27.838281250000023,57.247705078125],[27.83027343750001,57.194482421875],[27.639453125000017,56.845654296875],[27.806054687500023,56.86708984375],[27.8486328125,56.85341796875],[27.89208984375,56.741064453125],[28.00751953125001,56.599853515625],[28.103125,56.545703125],[28.11083984375,56.510693359375],[28.169238281250017,56.386865234375],[28.191699218750017,56.315576171875],[28.202050781250023,56.260400390625],[28.14794921875,56.142919921875]]]},"properties":{"name":"Latvia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[28.2125,45.450439453125],[28.07470703125,45.598974609375],[28.23945312500001,46.6408203125],[28.07177734375,46.978417968749994],[27.614062500000017,47.34052734375],[26.980761718750017,48.155029296875],[26.618945312500017,48.25986328125],[26.640429687500017,48.294140625],[26.847070312500023,48.387158203125],[26.90058593750001,48.371923828125],[27.228515625,48.371435546875],[27.549218750000023,48.477734375],[28.34052734375001,48.144433593749994],[28.42304687500001,48.146875],[29.125390625000023,47.96455078125],[29.134863281250006,47.489697265625],[29.455664062500006,47.292626953124994],[29.57197265625001,46.964013671874994],[29.7197265625,46.88291015625],[29.877832031250023,46.82890625],[29.942480468750006,46.723779296874994],[29.93476562500001,46.625],[29.92431640625,46.538867187499996],[30.13105468750001,46.423095703125],[30.07568359375,46.377832031249994],[29.878027343750006,46.360205078125],[29.837890625,46.350537109375],[29.458789062500017,46.453759765624994],[29.30488281250001,46.466601562499996],[29.22382812500001,46.376953125],[29.20458984375,46.379345703125],[29.20078125,46.50498046875],[29.18623046875001,46.523974609374996],[29.146289062500017,46.526904296874996],[28.958398437500023,46.45849609375],[28.92744140625001,46.424121093749996],[28.930566406250023,46.362255859375],[28.94375,46.288427734375],[29.00625,46.17646484375],[28.971875,46.12763671875],[28.94775390625,46.049951171874994],[28.849511718750023,45.978662109374994],[28.73876953125,45.937158203124994],[28.729296875000017,45.852001953125],[28.667578125,45.793847656249994],[28.562304687500017,45.735791015625],[28.491601562500023,45.665771484375],[28.4990234375,45.517724609374994],[28.310351562500017,45.498583984374996],[28.26484375000001,45.48388671875],[28.2125,45.450439453125]]]},"properties":{"name":"Moldova","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[49.936425781249994,-16.90292968750002],[49.82402343750002,-17.08652343750002],[50.02304687500006,-16.6953125],[49.936425781249994,-16.90292968750002]]],[[[48.3421875,-13.363867187500034],[48.21191406250003,-13.385253906249957],[48.191210937500074,-13.259960937500011],[48.308886718750074,-13.198242187499957],[48.3421875,-13.363867187500034]]],[[[49.53828125000004,-12.432128906250014],[49.9375,-13.072265624999957],[50.23535156249997,-14.732031249999963],[50.482714843750074,-15.385644531249994],[50.20898437499997,-15.960449218750028],[50.02041015625005,-15.801757812500028],[49.89257812500003,-15.457714843750011],[49.664355468750074,-15.521582031249977],[49.83906250000004,-16.486523437499997],[49.76718750000006,-16.815136718749983],[49.44931640625006,-17.240625],[49.477832031250074,-17.89853515624999],[49.362890625,-18.336328125],[47.934472656249994,-22.393945312500023],[47.55800781250005,-23.874609374999963],[47.17734375,-24.787207031249977],[46.72851562499997,-25.14990234374997],[46.15869140624997,-25.230371093750023],[45.5080078125001,-25.56318359374997],[45.2057617187501,-25.57050781250004],[44.0353515625001,-24.995703125],[43.670019531250006,-24.30029296875],[43.722265625,-23.529687500000037],[43.2648437500001,-22.38359375],[43.29052734374997,-21.93251953124998],[43.50185546875005,-21.356445312499957],[43.800195312499994,-21.179199218749986],[44.40468750000005,-19.922070312500026],[44.44882812500006,-19.42871093749997],[44.23876953124997,-19.075195312499986],[44.23310546875004,-18.740625],[44.04003906249997,-18.288476562500023],[43.979394531249994,-17.3916015625],[44.42138671874997,-16.70263671874997],[44.476171875,-16.217285156249957],[44.90917968749997,-16.174511718750026],[45.2228515625001,-15.95048828124996],[45.3421875,-16.03671875000002],[45.598242187500006,-15.992578125],[45.70019531249997,-15.813769531249989],[46.157519531250074,-15.738281249999972],[46.3996093750001,-15.924609375000017],[46.331445312499994,-15.713671875000031],[46.47509765625003,-15.513476562500003],[46.942285156249994,-15.219042968749974],[47.09921875,-15.43417968750002],[47.092578125000074,-15.150097656249969],[47.35195312500005,-14.766113281249986],[47.46474609375005,-14.713281249999966],[47.47832031250002,-15.009375],[47.77402343750006,-14.63671875],[47.964160156250074,-14.672558593750026],[47.773339843749994,-14.369921875],[47.995507812499994,-13.960449218749986],[47.88359375000002,-13.807519531250009],[47.94101562500006,-13.662402343750017],[48.03984375000002,-13.596289062499963],[48.25527343750005,-13.719335937499977],[48.796484375,-13.267480468750023],[48.91943359375003,-12.839062499999969],[48.78632812500004,-12.470898437500011],[48.931738281250006,-12.4390625],[49.20703124999997,-12.079589843749957],[49.53828125000004,-12.432128906250014]]]]},"properties":{"name":"Madagascar","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-91.68369140624998,18.677343750000034],[-91.81611328124995,18.675878906250006],[-91.53671874999998,18.760009765625],[-91.68369140624998,18.677343750000034]]],[[[-86.93964843750001,20.303320312500006],[-86.97797851562498,20.489794921875074],[-86.76328124999995,20.579052734374955],[-86.93964843750001,20.303320312500006]]],[[[-106.50224609374999,21.61083984375003],[-106.60703124999993,21.561474609374983],[-106.63935546874995,21.697851562499977],[-106.50224609374999,21.61083984375003]]],[[[-110.56738281249994,25.003466796875017],[-110.5388671875,24.89155273437504],[-110.69926757812499,25.081445312499994],[-110.56738281249994,25.003466796875017]]],[[[-112.05727539062498,24.545703125000017],[-112.29677734375002,24.789648437500063],[-112.15942382812501,25.28564453125003],[-112.19501953124998,24.841064453125057],[-112.05727539062498,24.545703125000017]]],[[[-111.10029296874998,26.020605468750006],[-111.224658203125,25.83588867187504],[-111.18291015625002,26.040625],[-111.10029296874998,26.020605468750006]]],[[[-115.17060546875001,28.06938476562496],[-115.35292968750002,28.103955078124983],[-115.23354492187495,28.36835937500004],[-115.17060546875001,28.06938476562496]]],[[[-112.20307617187503,29.00532226562504],[-112.27841796875,28.769335937500017],[-112.51406249999997,28.847607421874955],[-112.42353515625,29.203662109375017],[-112.28505859374994,29.240429687499955],[-112.20307617187503,29.00532226562504]]],[[[-113.15561523437502,29.05224609375],[-113.49633789062497,29.30761718749997],[-113.58720703125002,29.57304687499996],[-113.20214843749999,29.301855468750034],[-113.15561523437502,29.05224609375]]],[[[-97.14624023437494,25.961474609375045],[-97.66767578124995,24.389990234374977],[-97.84248046874995,22.510302734375017],[-97.76328124999998,22.105859374999966],[-97.31450195312496,21.56420898437503],[-97.40917968749997,21.272558593750034],[-97.38344726562497,21.56669921874999],[-97.75380859375002,22.02666015624999],[-97.18632812499996,20.717041015625],[-96.45605468749994,19.869775390624966],[-96.28955078124994,19.34375],[-95.778125,18.805517578125034],[-95.92036132812495,18.81958007812497],[-95.62680664062503,18.690576171874994],[-95.71982421874998,18.768359375000017],[-95.18183593749995,18.700732421875017],[-94.79814453124996,18.51459960937501],[-94.45976562499993,18.166650390624994],[-93.55234375,18.430468750000017],[-92.88476562499997,18.468652343749966],[-92.44101562499998,18.67529296874997],[-91.97377929687502,18.715869140625074],[-91.91357421875,18.52851562500001],[-91.53398437499993,18.45654296875],[-91.27524414062498,18.62446289062501],[-91.34306640624996,18.900585937499955],[-91.43666992187502,18.889794921874966],[-90.73925781249994,19.352246093749955],[-90.69316406249996,19.729882812499966],[-90.49169921874997,19.94677734375003],[-90.353125,21.009423828124966],[-89.81977539062495,21.274609374999983],[-88.46669921874997,21.569384765625017],[-88.0068359375,21.604052734375045],[-87.25087890625,21.44697265625004],[-87.18828124999993,21.546435546875045],[-87.36850585937498,21.57373046875],[-87.034765625,21.592236328124955],[-86.824072265625,21.421679687500017],[-86.77177734374999,21.150537109375023],[-86.92622070312493,20.786474609375034],[-87.42138671875,20.23139648437501],[-87.44174804687498,19.861523437499983],[-87.68769531249998,19.63710937499999],[-87.6453125,19.55390625000001],[-87.42475585937498,19.583349609375063],[-87.65869140625003,19.352343750000074],[-87.65576171874997,19.25786132812499],[-87.50107421874998,19.287792968749983],[-87.76181640624998,18.446142578125006],[-87.88198242187497,18.27387695312501],[-88.05644531249996,18.524462890625074],[-88.03173828125,18.838916015625017],[-88.29565429687494,18.47241210937503],[-88.52299804687499,18.445898437500063],[-88.80634765624998,17.965527343749983],[-89.13354492187503,17.970800781249977],[-89.16147460937503,17.81484375],[-90.98916015624997,17.81640624999997],[-90.99296874999993,17.25244140625],[-91.19550781249998,17.254101562499983],[-91.40961914062501,17.255859375],[-90.975830078125,16.867822265624994],[-90.710693359375,16.708105468750034],[-90.65996093749996,16.630908203125045],[-90.634375,16.565136718749955],[-90.63408203125002,16.51074218749997],[-90.57578124999995,16.467822265625017],[-90.47109374999994,16.439550781250034],[-90.41699218750003,16.391015625000023],[-90.41699218750003,16.351318359375],[-90.45014648437493,16.261376953124994],[-90.45986328124997,16.16235351562497],[-90.44716796874994,16.07270507812501],[-90.52197265625,16.07119140625005],[-90.70322265624998,16.07104492187503],[-90.97958984374998,16.07080078124997],[-91.433984375,16.070458984374994],[-91.736572265625,16.070166015625006],[-91.95722656250001,15.703222656250034],[-92.08212890624998,15.495556640625011],[-92.18715820312497,15.320898437499963],[-92.07480468749998,15.074218749999972],[-92.09873046874998,15.026757812499994],[-92.14423828125001,15.001953125],[-92.158544921875,14.963574218749997],[-92.23515625,14.545410156249986],[-93.91606445312493,16.053564453125006],[-94.374169921875,16.284765625000034],[-94.426416015625,16.22626953125001],[-94.00126953124996,16.018945312499966],[-94.66152343750002,16.20190429687503],[-94.58710937499995,16.315820312499966],[-94.79082031249999,16.28715820312499],[-94.85869140624996,16.41972656249999],[-95.02084960937503,16.277636718750017],[-94.79941406249995,16.20966796875001],[-95.134375,16.17695312500001],[-96.21357421874993,15.693066406250011],[-96.80795898437495,15.726416015624977],[-97.18466796874998,15.909277343750006],[-97.75478515624994,15.966845703125017],[-98.52031249999993,16.30483398437505],[-98.76220703125,16.534765624999977],[-99.69067382812499,16.719628906249994],[-100.847802734375,17.20048828124999],[-101.91870117187494,17.959765625000045],[-102.69956054687495,18.062841796875006],[-103.44160156249995,18.32539062500001],[-103.91245117187496,18.828466796875006],[-104.9384765625,19.309375],[-105.482080078125,19.97607421875003],[-105.66943359374997,20.385595703124977],[-105.26015625,20.579052734374955],[-105.32705078124994,20.752978515625045],[-105.51083984374999,20.808740234375023],[-105.23706054687499,21.119189453125045],[-105.20869140624998,21.490820312499977],[-105.43144531249997,21.618261718750006],[-105.64912109375001,21.988085937500045],[-105.64550781249999,22.32690429687497],[-105.79179687500003,22.627490234375017],[-106.93549804687497,23.88125],[-107.76494140625002,24.47192382812497],[-107.52724609375001,24.36005859375001],[-107.51191406249998,24.489160156250023],[-107.95117187499994,24.614892578124966],[-108.28076171874994,25.08154296875],[-108.05146484374995,25.067041015624994],[-108.69638671874998,25.382910156250034],[-108.78725585937502,25.53803710937501],[-109.02880859375003,25.48046875000003],[-108.886572265625,25.733447265625045],[-109.19648437499998,25.59252929687503],[-109.38496093750001,25.727148437500006],[-109.42563476562495,26.032568359375063],[-109.19970703125003,26.30522460937499],[-109.11669921874999,26.25273437499996],[-109.27626953125,26.533886718749955],[-109.48286132812498,26.710351562500023],[-109.75478515624995,26.702929687500017],[-109.94399414062495,27.079345703125057],[-110.37729492187495,27.233300781249966],[-110.59267578124995,27.544335937500023],[-110.52988281249995,27.864208984374983],[-111.12138671875002,27.966992187499983],[-112.16176757812495,29.018896484375034],[-113.05766601562496,30.651025390625023],[-113.04672851562495,31.17924804687499],[-113.62348632812494,31.34589843750001],[-113.75942382812501,31.557763671874994],[-113.94775390625001,31.62934570312501],[-114.14931640624995,31.507373046875045],[-114.93359374999994,31.900732421874977],[-114.78989257812498,31.647119140624994],[-114.88188476562499,31.156396484375023],[-114.55048828124997,30.02226562499999],[-113.75546875,29.367480468750017],[-113.49970703124995,28.92670898437501],[-113.20556640624997,28.798779296874955],[-113.09365234375001,28.511767578125017],[-112.870849609375,28.42421875000005],[-112.73403320312501,27.825976562500017],[-112.32919921874996,27.52343750000003],[-111.86264648437495,26.678515625000017],[-111.6994140625,26.58095703125005],[-111.79526367187499,26.8796875],[-111.56967773437495,26.707617187500006],[-111.29160156249996,25.78979492187497],[-110.68676757812501,24.867675781250057],[-110.65932617187502,24.34145507812505],[-110.36743164062497,24.100488281249994],[-110.30375976562497,24.339453125],[-110.02280273437502,24.17460937499999],[-109.6765625,23.66157226562501],[-109.42084960937495,23.480126953124994],[-109.49570312500002,23.159814453125023],[-110.00625,22.894042968750057],[-110.3626953125,23.60493164062501],[-111.68291015625002,24.555810546875023],[-111.80249023437494,24.542529296875074],[-112.07255859374999,24.84003906250001],[-112.06987304687497,25.572851562500006],[-112.37724609374997,26.21391601562496],[-113.02075195312499,26.58325195312497],[-113.15581054687496,26.94624023437504],[-113.27226562499997,26.79096679687501],[-113.59853515625001,26.721289062500034],[-113.84096679687502,26.966503906249983],[-114.44526367187503,27.218164062499994],[-114.53989257812495,27.431103515624955],[-114.99350585937499,27.736035156249983],[-115.03647460937495,27.84184570312496],[-114.57001953124995,27.78393554687497],[-114.30058593749995,27.87299804687501],[-114.30224609375003,27.775732421875006],[-114.0693359375,27.67568359375005],[-114.15839843750003,27.919677734375],[-114.26586914062499,27.934472656249994],[-114.04848632812502,28.42617187499999],[-114.93730468749999,29.35161132812496],[-115.67382812500003,29.756396484375017],[-116.06215820312501,30.80415039062504],[-116.29628906250001,30.97050781249999],[-116.33344726562494,31.202783203124994],[-116.66215820312495,31.56489257812504],[-116.72207031249998,31.734570312499955],[-116.62080078124995,31.85107421874997],[-116.84799804687496,31.997363281250045],[-117.12827148437495,32.533349609374994],[-114.72475585937495,32.71533203125003],[-114.83593749999994,32.50830078125003],[-111.0419921875,31.32421875000003],[-108.21445312499993,31.329443359375034],[-108.21181640625002,31.779345703125017],[-106.44541015624996,31.768408203125006],[-106.14804687499995,31.450927734375],[-104.97880859374996,30.645947265624955],[-104.50400390624995,29.677685546874955],[-104.110595703125,29.386132812499994],[-103.16831054687498,28.998193359374994],[-102.8919921875,29.216406250000034],[-102.61494140624994,29.75234375],[-102.26894531249998,29.871191406250034],[-101.44038085937503,29.77685546875],[-100.75458984375001,29.182519531249994],[-100.29604492187495,28.32768554687499],[-99.50532226562497,27.54833984375003],[-99.45654296874999,27.05668945312496],[-99.10776367187498,26.446923828124994],[-97.37563476562497,25.871826171875],[-97.14624023437494,25.961474609375045]]]]},"properties":{"name":"Mexico","childNum":10}},{"geometry":{"type":"Polygon","coordinates":[[[22.344042968750017,42.31396484375],[22.836816406250023,41.993603515625],[23.00361328125001,41.73984375],[22.916015625,41.336279296875],[22.78388671875001,41.331982421875],[22.72480468750001,41.178515625],[22.603613281250006,41.140185546874996],[22.493554687500023,41.118505859375],[22.184472656250023,41.158642578125],[21.99335937500001,41.13095703125],[21.77949218750001,40.950439453125],[21.627539062500006,40.896337890625],[21.57578125,40.868945312499996],[20.964257812500023,40.849902343749996],[20.709277343750017,40.928369140624994],[20.48896484375001,41.272607421874994],[20.566210937500017,41.873681640624994],[20.725,41.87353515625],[20.778125,42.071044921875],[21.05976562500001,42.171289062499994],[21.28662109375,42.100390625],[21.389550781250023,42.21982421875],[21.560839843750017,42.24765625],[21.5625,42.247509765625],[21.81464843750001,42.303125],[22.344042968750017,42.31396484375]]]},"properties":{"name":"Macedonia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[4.227636718750006,19.142773437499997],[4.234667968750017,16.996386718750003],[4.121289062500011,16.357714843750003],[3.842968750000011,15.701708984375003],[3.5205078125,15.483105468749997],[3.504296875000023,15.356347656249994],[3.06015625,15.427197265624997],[3.001074218750006,15.340966796874994],[1.300195312500023,15.272265625],[0.947460937500011,14.982128906249997],[0.217480468750011,14.911474609374991],[-0.235888671874989,15.059423828124991],[-0.760449218749983,15.047753906249994],[-1.049560546875,14.81953125],[-1.97304687499999,14.45654296875],[-2.113232421874983,14.16845703125],[-2.586718749999989,14.227587890625003],[-2.873925781249994,13.950732421875003],[-2.950830078124994,13.6484375],[-3.248632812499977,13.658349609374994],[-3.3017578125,13.28076171875],[-3.527636718749989,13.182714843749991],[-3.947314453124989,13.402197265624991],[-4.151025390624994,13.306201171875003],[-4.328710937499977,13.119042968749994],[-4.227099609374989,12.793701171875],[-4.480615234374994,12.672216796874991],[-4.4287109375,12.337597656249997],[-4.699316406249977,12.076171875],[-5.288134765624989,11.827929687499989],[-5.250244140625,11.375781249999989],[-5.490478515625,11.042382812499994],[-5.523535156249977,10.426025390625],[-5.556591796874983,10.43994140625],[-5.694287109374983,10.43320312499999],[-5.843847656249977,10.389550781249994],[-5.896191406249983,10.354736328125],[-5.907568359374977,10.307226562499991],[-6.034570312499994,10.19482421875],[-6.1171875,10.201904296875],[-6.238378906249977,10.261621093749994],[-6.241308593749977,10.279199218749994],[-6.192626953125,10.369433593749989],[-6.190673828125,10.400292968749994],[-6.250244140625,10.717919921874994],[-6.482617187499983,10.561230468749997],[-6.564599609374994,10.58642578125],[-6.654150390624977,10.656445312499997],[-6.676367187499977,10.6337890625],[-6.686132812499977,10.578027343749994],[-6.691992187499977,10.512011718749989],[-6.669335937499994,10.3921875],[-6.693261718749994,10.349462890624991],[-6.950341796874994,10.342333984374989],[-7.01708984375,10.143261718749997],[-7.385058593749989,10.340136718749989],[-7.6611328125,10.427441406249997],[-7.990625,10.1625],[-8.007275390624983,10.321875],[-8.266650390624989,10.485986328124994],[-8.33740234375,10.990625],[-8.666699218749983,11.009472656249997],[-8.398535156249977,11.366552734374991],[-8.822021484375,11.673242187499994],[-8.818310546874983,11.922509765624994],[-9.043066406249977,12.40234375],[-9.395361328124977,12.464648437499989],[-9.358105468749983,12.255419921874989],[-9.754003906249977,12.029931640624994],[-10.274853515624983,12.212646484375],[-10.709228515625,11.898730468749989],[-10.933203124999977,12.205175781249991],[-11.30517578125,12.015429687499989],[-11.502197265625,12.198632812499994],[-11.389404296875,12.404394531249991],[-11.390380859375,12.941992187499991],[-11.634960937499983,13.369873046875],[-11.831689453124994,13.315820312499994],[-12.05419921875,13.633056640625],[-11.960888671874983,13.875292968750003],[-12.019189453124994,14.206494140624997],[-12.228417968749994,14.45859375],[-12.280615234374977,14.809033203124997],[-12.104687499999983,14.745361328125],[-12.08154296875,14.766357421875],[-12.021582031249977,14.804931640625],[-11.76015625,15.425537109375],[-11.675878906249977,15.512060546874991],[-11.502685546875,15.636816406249991],[-11.455224609374994,15.62539062499999],[-10.9482421875,15.151123046875],[-10.696582031249989,15.42265625],[-9.94140625,15.373779296875],[-9.446923828124994,15.458203125],[-9.447705078124983,15.574853515624994],[-9.426562499999989,15.623046875],[-9.3505859375,15.677392578124994],[-9.33544921875,15.525683593750003],[-9.293701171875,15.502832031249994],[-5.5125,15.496289062499997],[-5.359912109374989,16.282861328124994],[-5.509619140624977,16.442041015624994],[-5.628662109375,16.568652343750003],[-5.65625,16.8095703125],[-5.684765624999983,17.058251953124994],[-5.713183593749989,17.306884765625],[-5.74169921875,17.555566406249994],[-5.827099609374983,18.3015625],[-6.026416015624989,20.0421875],[-6.396582031249977,23.274804687499994],[-6.482031249999977,24.020800781250003],[-6.538964843749994,24.51816406249999],[-6.5673828125,24.766796875],[-6.594091796874977,24.99462890625],[-6.287207031249977,24.994824218749997],[-5.959814453124977,24.99497070312499],[-5.640771484374994,24.995166015625003],[-4.822607421874977,24.99560546875],[-1.947900390624994,23.124804687500003],[1.1455078125,21.102246093749997],[1.165722656250011,20.817431640625003],[1.610644531250017,20.555566406249994],[1.685449218750023,20.378369140624997],[3.130273437500023,19.85019531249999],[3.255859375,19.4109375],[3.119726562500006,19.103173828124994],[3.3564453125,18.986621093750003],[4.227636718750006,19.142773437499997]]]},"properties":{"name":"Mali","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[14.566210937499989,35.85273437499998],[14.436425781250023,35.82167968750005],[14.351269531250011,35.978417968749994],[14.566210937499989,35.85273437499998]]]},"properties":{"name":"Malta","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[98.18261718749997,9.933447265625006],[98.11806640625,9.877880859375054],[98.2916992187501,10.051318359375031],[98.18261718749997,9.933447265625006]]],[[[98.20976562500002,10.952734375],[98.27148437499997,10.73989257812498],[98.08046875000005,10.886621093750037],[98.20976562500002,10.952734375]]],[[[98.55380859375012,11.744873046875],[98.52841796875012,11.538671875],[98.43476562500004,11.567089843750026],[98.37646484374997,11.79150390625],[98.55380859375012,11.744873046875]]],[[[98.516015625,11.905029296875028],[98.46621093750005,12.08427734374996],[98.60957031250004,11.956640624999977],[98.516015625,11.905029296875028]]],[[[98.06611328125004,12.389794921875023],[98.00234375000005,12.279003906250011],[97.93867187500004,12.34609375],[98.06611328125004,12.389794921875023]]],[[[98.41396484375005,12.597949218749974],[98.45947265625003,12.473730468749991],[98.3138671875,12.335986328124989],[98.31210937500006,12.678173828124983],[98.41396484375005,12.597949218749974]]],[[[98.31542968749997,13.099072265625026],[98.30917968750012,12.934716796875023],[98.26533203125004,13.202246093749991],[98.31542968749997,13.099072265625026]]],[[[94.80488281250004,15.8193359375],[94.73349609375006,15.823046875000045],[94.82802734375005,15.933007812499966],[94.80488281250004,15.8193359375]]],[[[94.47675781250004,15.945947265625023],[94.41191406250007,15.848388671875057],[94.3878906250001,15.994140624999972],[94.60126953125004,16.205517578124983],[94.47675781250004,15.945947265625023]]],[[[97.575,16.253222656250017],[97.48037109375,16.305712890625045],[97.54199218749997,16.505078124999983],[97.575,16.253222656250017]]],[[[93.6908203125,18.68427734375004],[93.4875,18.867529296875063],[93.74472656250006,18.865527343750017],[93.6908203125,18.68427734375004]]],[[[93.71484374999997,19.558251953124994],[93.94570312500005,19.428613281249966],[93.90195312500012,19.33203125],[93.75585937500003,19.325683593750057],[93.64404296874997,19.49506835937501],[93.71484374999997,19.558251953124994]]],[[[93.49179687500012,19.892578125],[93.51328125000006,19.754785156249994],[93.41289062500002,19.950341796875023],[93.49179687500012,19.892578125]]],[[[93.01015625000005,19.923925781249977],[93.02324218750007,19.82885742187497],[92.91464843750006,20.086474609375045],[93.01015625000005,19.923925781249977]]],[[[101.1388671875001,21.567480468749977],[101.08037109375007,21.468652343749994],[100.703125,21.251367187499966],[100.613671875,21.059326171875],[100.56660156250004,21.038183593750063],[100.53613281250003,20.992382812499955],[100.52226562500007,20.92192382812499],[100.54931640624997,20.884228515624955],[100.61767578125003,20.879248046875006],[100.62294921875005,20.859570312499983],[100.5651367187501,20.825097656249994],[100.4074218750001,20.823242187500057],[100.32607421875005,20.795703125000045],[100.24931640625002,20.730273437500045],[100.18388671875002,20.589111328125057],[100.12968750000002,20.372216796874994],[100.12246093750005,20.316650390625057],[100.0036132812501,20.37958984375001],[99.9542968750001,20.415429687500023],[99.8903320312501,20.424414062499977],[99.72011718750005,20.32543945312497],[99.45888671875005,20.363037109375],[99.48593750000006,20.14985351562501],[99.07421875000003,20.09936523437503],[98.9166992187501,19.77290039062504],[98.37128906250004,19.68916015625004],[98.01503906250005,19.74951171874997],[97.816796875,19.459960937500057],[97.74589843750002,18.58818359374999],[97.37392578125,18.51796875],[97.63222656250005,18.290332031250074],[97.7064453125,17.79711914062503],[98.4388671875,16.975683593750034],[98.66074218750006,16.330419921875006],[98.83544921875003,16.417578125],[98.88828125000006,16.351904296875034],[98.81796875000012,16.180810546874994],[98.59238281250006,16.05068359375005],[98.55693359375007,15.367675781249986],[98.19101562500012,15.204101562499972],[98.20214843749997,14.97592773437502],[98.57001953125004,14.359912109375031],[99.13681640625006,13.716699218749994],[99.12392578125,13.030761718750043],[99.40507812500002,12.547900390625003],[99.61474609374997,11.781201171875026],[99.1901367187501,11.105273437499989],[98.7572265625,10.660937499999974],[98.70253906250005,10.19038085937504],[98.56259765625006,10.034960937499989],[98.46494140625006,10.675830078124989],[98.67558593750007,10.986914062500034],[98.74140625000004,11.591699218749966],[98.87597656250003,11.719726562500028],[98.63632812500006,11.738378906250006],[98.69628906250003,12.225244140624994],[98.6002929687501,12.2453125],[98.67871093749997,12.348486328124963],[98.57597656250002,13.161914062500031],[98.20039062500004,13.980175781250026],[98.14951171875012,13.647607421875037],[98.11064453125007,13.712890625000014],[98.10019531250006,14.161523437500023],[97.90976562500012,14.652685546874991],[98.01875,14.652587890625057],[97.81230468750007,14.858935546874989],[97.7103515625,15.875537109375074],[97.58427734375007,16.019580078125017],[97.72597656250005,16.56855468750004],[97.37587890625005,16.52294921874997],[97.20019531249997,17.095410156249983],[96.85146484375005,17.401025390624994],[96.90859375000005,17.03095703125001],[96.76542968750002,16.710351562499966],[96.43115234374997,16.504931640625045],[96.18906250000012,16.768310546875057],[96.32431640625006,16.444433593750063],[95.76328125000006,16.169042968750006],[95.38955078125005,15.722753906250034],[95.30146484375004,15.756152343749989],[95.34677734375012,16.09760742187501],[95.17695312500004,15.825683593750028],[94.9425781250001,15.818261718750023],[94.89316406250006,16.182812499999955],[94.66152343750005,15.904394531250006],[94.70332031250004,16.511914062499955],[94.4416015625001,16.094384765624966],[94.22382812500004,16.016455078125006],[94.58896484375006,17.5693359375],[94.17070312500007,18.73242187499997],[94.24570312500006,18.741162109374983],[94.07001953125004,18.893408203125006],[94.04492187500003,19.287402343750074],[93.92919921874997,18.89965820312503],[93.70546875000005,19.026904296875017],[93.49306640625005,19.369482421875006],[93.82490234375004,19.238476562499955],[93.99814453125006,19.440869140624983],[93.61171875000005,19.776074218749983],[93.70703125000003,19.912158203125074],[93.25,20.070117187500017],[93.12949218750012,19.858007812500063],[93.00195312499997,20.074853515624994],[93.06679687500005,20.377636718749955],[92.82832031250004,20.177587890625063],[92.89111328124997,20.34033203125],[92.73564453125007,20.56269531250001],[92.72285156250004,20.29560546875004],[92.32412109375,20.791845703125063],[92.17958984375005,21.293115234375023],[92.33056640624997,21.439794921874977],[92.63164062500002,21.306201171875045],[92.5934570312501,21.46733398437499],[92.58281250000002,21.940332031249994],[92.57490234375004,21.978076171875045],[92.68896484374997,22.130957031250006],[92.72099609375002,22.132421875000063],[92.77138671875,22.104785156250017],[92.9645507812501,22.003759765625034],[93.07060546875002,22.20942382812501],[93.16201171875,22.360205078125006],[93.07871093750006,22.71821289062501],[93.20390625000002,23.03701171875005],[93.34941406250007,23.08496093750003],[93.36601562500007,23.132519531249955],[93.32626953125006,24.064208984375057],[93.45214843750003,23.987402343750034],[93.68339843750007,24.00654296875004],[94.07480468750006,23.8720703125],[94.29306640625012,24.321875],[94.37724609375002,24.473730468750006],[94.49316406250003,24.637646484374983],[94.70371093750012,25.097851562499955],[94.55302734375007,25.215722656249994],[94.66777343750007,25.458886718749966],[94.99199218750002,25.77045898437504],[95.01523437500006,25.912939453125006],[95.0929687500001,25.98730468749997],[95.13242187500006,26.041259765625057],[95.12929687500005,26.070410156250034],[95.10839843749997,26.091406250000034],[95.06894531250006,26.19111328125001],[95.0597656250001,26.473974609375006],[95.20146484375007,26.641406250000017],[96.19082031250005,27.26127929687499],[96.79785156249997,27.29619140624999],[96.95341796875002,27.13330078125003],[97.10205078125003,27.11542968750004],[97.10371093750004,27.16333007812503],[96.90195312500012,27.439599609374994],[96.88359375000002,27.514843749999955],[96.96279296875,27.698291015625017],[97.04970703125005,27.760009765625],[97.34355468750002,27.982324218749994],[97.30273437499997,28.08598632812496],[97.3224609375001,28.21796875000004],[97.35644531249997,28.254492187500006],[97.43144531250002,28.353906250000023],[97.53789062500002,28.510205078124983],[97.59921875000006,28.51704101562504],[98.06162109375012,28.185888671874977],[98.29882812499997,27.550097656250045],[98.4525390625,27.6572265625],[98.65117187500007,27.572460937499983],[98.7384765625001,26.785742187500006],[98.68554687499997,26.189355468750023],[98.56406250000006,26.072412109374994],[98.65625,25.86357421874999],[98.33378906250007,25.586767578125006],[98.14287109375007,25.571093750000017],[98.01074218749997,25.292529296875017],[97.8195312500001,25.251855468749994],[97.73789062500006,24.869873046875057],[97.58330078125002,24.77480468750005],[97.53144531250004,24.49169921875003],[97.7082031250001,24.228759765625],[97.56455078125012,23.911035156250023],[98.2125,24.110644531250017],[98.83505859375006,24.121191406250034],[98.67675781250003,23.905078125000045],[98.8322265625001,23.624365234374977],[98.86376953125003,23.191259765625034],[99.41806640625006,23.069238281250023],[99.50712890625002,22.959130859374994],[99.19296875000006,22.12597656249997],[99.9176757812501,22.02802734375001],[99.94072265625007,21.75874023437504],[100.14765625000004,21.480517578125017],[100.60458984375012,21.471777343750006],[101.07978515625004,21.75585937499997],[101.1388671875001,21.567480468749977]]]]},"properties":{"name":"Myanmar","childNum":15}},{"geometry":{"type":"Polygon","coordinates":[[[19.21875,43.449951171875],[19.670996093750006,43.163964843749994],[20.344335937500006,42.827929687499996],[20.054296875,42.760058593749996],[20.06396484375,42.54726562499999],[19.78828125000001,42.476171875],[19.65449218750001,42.628564453124994],[19.280664062500023,42.17255859375],[19.342382812500006,41.869091796875],[18.436328125000017,42.559716796874994],[18.5458984375,42.6416015625],[18.46601562500001,42.777246093749994],[18.44384765625,42.96845703125],[18.46015625000001,42.997900390625],[18.48847656250001,43.012158203125],[18.623632812500006,43.027685546875],[18.621875,43.124609375],[18.674218750000023,43.230810546875],[18.74921875000001,43.283544921875],[18.85107421875,43.346337890624994],[18.934667968750006,43.339453125],[18.97871093750001,43.285400390625],[19.026660156250017,43.292431640625],[19.03671875,43.357324218749994],[18.940234375000017,43.496728515624994],[18.95068359375,43.526660156249996],[18.97421875,43.542333984375],[19.0283203125,43.532519531249996],[19.080078125,43.517724609374994],[19.11279296875,43.52773437499999],[19.164355468750017,43.535449218749996],[19.1943359375,43.53330078125],[19.21875,43.449951171875]]]},"properties":{"name":"Montenegro","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[111.878125,43.68017578125],[111.00722656250002,43.34140625],[110.400390625,42.773681640625],[109.44316406249999,42.455957031249994],[109.33984375,42.438378906249994],[108.68730468749999,42.41611328125],[108.17119140624999,42.447314453124996],[106.77001953125,42.288720703124994],[105.86757812500002,41.993994140625],[105.31435546875002,41.770898437499994],[105.19707031249999,41.738037109375],[105.11542968750001,41.66328125],[105.05058593749999,41.61591796875],[104.98203125000003,41.595507812499996],[104.49824218750001,41.65869140625],[104.49824218750001,41.877001953124996],[104.30517578125,41.846142578125],[103.99726562500001,41.79697265625],[103.71113281250001,41.751318359375],[103.07285156250003,42.00595703125],[102.5751953125,42.092089843749996],[102.15664062500002,42.158105468749994],[101.97294921874999,42.215869140624996],[101.65996093749999,42.500048828124996],[101.5791015625,42.52353515625],[101.49531250000001,42.53876953125],[101.09199218750001,42.551318359374996],[100.51904296875,42.616796875],[100.08632812500002,42.670751953125],[99.98378906250002,42.67734375],[99.46787109375003,42.568212890625],[97.20566406250003,42.789794921875],[96.38544921875001,42.720361328124994],[95.85957031250001,43.2759765625],[95.52558593750001,43.953955078125],[95.32558593750002,44.039355468749996],[95.35029296875001,44.278076171875],[94.71201171875003,44.350830078125],[93.51621093750003,44.944482421874994],[92.78789062499999,45.0357421875],[92.57890624999999,45.010986328125],[92.423828125,45.008935546874994],[92.17265624999999,45.03525390625],[92.02978515625,45.068505859374994],[91.584375,45.076513671875],[91.05,45.217431640624994],[90.87724609374999,45.19609375],[90.66181640625001,45.525244140625],[91.00175781249999,46.035791015624994],[90.99677734375001,46.10498046875],[90.94755859374999,46.177294921874996],[90.91152343750002,46.270654296874994],[90.98574218750002,46.7490234375],[90.91054687500002,46.883251953125],[90.86992187499999,46.954492187499994],[90.79902343750001,46.98515625],[90.71552734375001,47.003857421875],[90.49619140625003,47.28515625],[90.42519531250002,47.5041015625],[90.34746093749999,47.596972656249996],[90.33066406250003,47.655175781249994],[90.31328124999999,47.67617187499999],[90.19101562500003,47.702099609375],[90.10322265625001,47.745410156249996],[90.02792968750003,47.877685546875],[89.95869140625001,47.886328125],[89.91044921874999,47.8443359375],[89.83134765624999,47.823291015624996],[89.778125,47.827001953125],[89.56093750000002,48.003955078124996],[89.47919921875001,48.029052734375],[89.04765624999999,48.0025390625],[88.97109375000002,48.049951171874994],[88.91777343749999,48.089013671874994],[88.83828125000002,48.101708984374994],[88.68183593750001,48.170556640624994],[88.57597656249999,48.220166015625],[88.56679687500002,48.317431640624996],[88.51708984375,48.38447265625],[88.41396484375002,48.40341796875],[88.30996093750002,48.472070312499994],[87.97968750000001,48.555126953125],[88.06005859375,48.707177734374994],[87.83183593749999,48.791650390624994],[87.7431640625,48.881640625],[87.87216796875003,49.000146484374994],[87.81630859375002,49.0802734375],[87.8251953125,49.11630859375],[87.81425781249999,49.1623046875],[87.93476562500001,49.16455078125],[87.98808593749999,49.186914062499994],[88.02851562500001,49.219775390624996],[88.11572265625,49.256298828125],[88.19257812500001,49.451708984374996],[88.63320312500002,49.486132812499996],[88.83164062500003,49.4484375],[88.86386718750003,49.527636718749996],[88.90019531249999,49.539697265624994],[88.94541015625003,49.507666015625],[88.97060546875002,49.483740234375],[89.00839843750003,49.472802734374994],[89.10947265625003,49.501367187499994],[89.17998046874999,49.5322265625],[89.20292968749999,49.595703125],[89.24394531249999,49.62705078125],[89.39560546875003,49.6115234375],[89.475,49.66054687499999],[89.57919921875003,49.69970703125],[89.65410156249999,49.71748046875],[89.64384765624999,49.90302734375],[90.0537109375,50.09375],[90.65507812499999,50.22236328125],[90.71435546875,50.259423828124994],[90.7607421875,50.305957031249996],[91.02158203125003,50.415478515625],[91.23378906250002,50.452392578125],[91.30058593749999,50.46337890625],[91.3408203125,50.470068359375],[91.4150390625,50.468017578125],[91.44648437500001,50.52216796875],[91.80429687500003,50.693603515625],[92.10400390625,50.6919921875],[92.1923828125,50.700585937499994],[92.35478515624999,50.864160156249994],[92.42636718750003,50.803076171875],[92.62666015625001,50.68828125],[92.68134765625001,50.683203125],[92.73867187500002,50.7109375],[92.779296875,50.778662109375],[92.8564453125,50.789111328124996],[92.94130859375002,50.778222656249994],[93.103125,50.60390625],[94.25107421875003,50.556396484375],[94.35468750000001,50.221826171874994],[94.61474609375,50.023730468749996],[94.67548828125001,50.028076171875],[94.71806640624999,50.043261718749996],[94.93027343750003,50.04375],[95.11142578125003,49.935449218749994],[95.52265625000001,49.91123046875],[96.06552734375003,49.99873046875],[96.31503906250003,49.901123046875],[96.98574218750002,49.8828125],[97.20859375000003,49.730810546875],[97.35976562500002,49.741455078125],[97.58935546875,49.911474609375],[98.00390625,50.0142578125],[98.25029296874999,50.30244140625],[98.27949218750001,50.533251953124996],[98.14501953125,50.5685546875],[98.07890624999999,50.603808593749996],[98.02978515625,50.64462890625],[97.82529296875003,50.985253906249994],[98.103125,51.483544921874994],[98.64052734375002,51.801171875],[98.89316406250003,52.11728515625],[99.92167968749999,51.755517578125],[100.03457031250002,51.737109375],[100.23037109375002,51.729833984375],[100.46894531250001,51.72607421875],[100.53623046875003,51.7134765625],[101.38125,51.45263671875],[101.57089843750003,51.4671875],[101.82119140625002,51.421044921874994],[102.11152343750001,51.353466796875],[102.15566406250002,51.313769531249996],[102.16005859375002,51.26083984375],[102.14238281249999,51.216064453125],[102.15195312500003,51.10751953125],[102.19453125000001,51.050683593749994],[102.21503906250001,50.829443359375],[102.31660156250001,50.71845703125],[102.28837890624999,50.585107421874994],[103.30439453125001,50.20029296875],[103.63291015625003,50.138574218749994],[103.72324218750003,50.153857421874996],[103.80263671875002,50.176074218749996],[104.07871093750003,50.154248046875],[105.38359374999999,50.47373046875],[106.21787109375003,50.304589843749994],[106.36845703124999,50.317578125],[106.57441406250001,50.32880859375],[106.71113281250001,50.31259765625],[106.94130859375002,50.196679687499994],[107.04023437500001,50.086474609374996],[107.14306640625,50.033007812499996],[107.23330078125002,49.989404296874994],[107.34707031250002,49.986669921875],[107.63095703125003,49.98310546875],[107.91660156250003,49.947802734374996],[107.96542968750003,49.653515625],[108.40693359375001,49.396386718749994],[108.5224609375,49.34150390625],[108.61367187500002,49.322802734374996],[109.23671875000002,49.334912109375],[109.45371093750003,49.296337890625],[109.52871093750002,49.269873046875],[110.19990234375001,49.17041015625],[110.42783203125003,49.219970703125],[110.70976562499999,49.14296875],[110.82792968749999,49.166162109374994],[111.20419921875003,49.304296875],[111.33662109375001,49.35585937499999],[111.42929687500003,49.342626953125],[112.07968750000003,49.42421875],[112.49492187499999,49.53232421875],[112.69736328125003,49.507275390625],[112.80644531249999,49.523583984374994],[112.91484374999999,49.569238281249994],[113.05556640625002,49.616259765624996],[113.09208984374999,49.692529296874994],[113.16416015625003,49.797167968749996],[113.31904296875001,49.874316406249996],[113.44550781250001,49.9416015625],[113.57421875,50.00703125],[114.29707031250001,50.2744140625],[114.7431640625,50.233691406249996],[115.00332031250002,50.138574218749994],[115.27451171875003,49.948876953124994],[115.36503906249999,49.911767578124994],[115.42919921875,49.896484375],[115.58798828125003,49.886035156249996],[115.7177734375,49.880615234375],[115.79521484374999,49.905908203124994],[115.92597656250001,49.9521484375],[116.13457031249999,50.010791015624996],[116.216796875,50.00927734375],[116.35117187500003,49.978076171874996],[116.55117187500002,49.9203125],[116.68330078125001,49.823779296874996],[115.82050781250001,48.57724609375],[115.79169921875001,48.455712890624994],[115.79658203125001,48.346337890624994],[115.78554687500002,48.2482421875],[115.63945312499999,48.18623046875],[115.52509765625001,48.130859375],[115.61640625000001,47.874804687499996],[115.89824218749999,47.686914062499994],[115.99384765625001,47.71132812499999],[116.07480468750003,47.78955078125],[116.23115234375001,47.858203125],[116.31718749999999,47.85986328125],[116.37822265624999,47.844042968749996],[116.51347656249999,47.83955078125],[116.65195312500003,47.864501953125],[116.76054687499999,47.869775390624994],[116.90117187499999,47.853076171874996],[116.95166015625,47.836572265624994],[117.06972656250002,47.806396484375],[117.28593749999999,47.666357421875],[117.35078125000001,47.652197265625],[117.76835937499999,47.987890625],[118.49843750000002,47.983984375],[118.56777343750002,47.943261718749994],[118.69052734375003,47.822265625],[118.75996093750001,47.757617187499996],[118.88027343750002,47.72509765625],[119.017578125,47.685351562499996],[119.08193359375002,47.654150390625],[119.71113281250001,47.15],[119.89785156250002,46.8578125],[119.8671875,46.672167968749996],[119.74746093750002,46.627197265625],[119.70664062500003,46.606005859374996],[119.62021484375003,46.603955078125],[119.47402343750002,46.62666015625],[119.33183593749999,46.613818359374996],[119.162109375,46.638671875],[118.95712890625003,46.73486328125],[118.84394531250001,46.760205078125],[118.79033203124999,46.7470703125],[118.72294921874999,46.69189453125],[118.64873046874999,46.70166015625],[118.58046875000002,46.69189453125],[118.40439453125003,46.703173828124996],[118.30869140625003,46.717041015625],[118.15683593750003,46.678564453125],[118.0712890625,46.6666015625],[117.7412109375,46.5181640625],[117.546875,46.58828125],[117.43808593750003,46.586230468749996],[117.40556640624999,46.5708984375],[117.39218750000003,46.53759765625],[117.35634765625002,46.436669921874994],[117.35693359375,46.39130859375],[117.33339843750002,46.36201171875],[116.85908203125001,46.387939453125],[116.56259765625003,46.289794921875],[116.21298828125003,45.8869140625],[116.22910156250003,45.845751953124996],[116.240625,45.79599609375],[116.19765625000002,45.73935546875],[115.68105468750002,45.458251953125],[115.16259765625,45.390234375],[114.91923828124999,45.378271484375],[114.73876953125,45.41962890625],[114.56015625000003,45.389990234375],[114.41914062500001,45.202587890625],[114.16738281250002,45.049853515624996],[114.08027343750001,44.971142578125],[113.87705078125003,44.89619140625],[113.65263671874999,44.763476562499996],[113.58701171875003,44.745703125],[113.04941406250003,44.810351562499996],[112.70673828125001,44.883447265624994],[112.59677734375003,44.91767578125],[112.49931640624999,45.0109375],[112.41132812500001,45.058203125],[112.11289062500003,45.062939453125],[112.03261718750002,45.081640625],[111.89804687500003,45.0640625],[111.40224609375002,44.36728515625],[111.93173828125003,43.81494140625],[111.878125,43.68017578125]]]},"properties":{"name":"Mongolia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[145.75195312499997,15.133154296874991],[145.71318359375007,15.215283203125026],[145.821875,15.265380859375014],[145.75195312499997,15.133154296874991]]]},"properties":{"name":"N. Mariana Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[32.112890625,-26.839453125],[32.10595703125,-26.52001953125],[32.04140625000002,-26.28125],[32.060546875,-26.018359375],[31.9482421875,-25.957617187500006],[31.98583984375,-24.46064453125001],[31.799609375000017,-23.8921875],[31.54560546875001,-23.48232421875001],[31.287890625000017,-22.40205078125001],[31.429492187500017,-22.298828125],[32.429785156250006,-21.29707031250001],[32.353613281250006,-21.136523437500003],[32.49238281250001,-20.659765625],[32.992773437500006,-19.98486328125],[32.77763671875002,-19.388769531250006],[32.84980468750001,-19.10439453125001],[32.69970703125,-18.94091796875],[32.99306640625002,-18.35957031250001],[32.87626953125002,-16.88359375],[32.94804687500002,-16.71230468750001],[31.939843750000023,-16.428808593750006],[31.236230468750023,-16.02363281250001],[30.437792968750017,-15.995312500000011],[30.39609375,-15.64306640625],[30.231835937500023,-14.990332031250006],[33.201757812500006,-14.013378906250011],[33.63642578125001,-14.568164062500003],[34.375,-14.4248046875],[34.50527343750002,-14.59814453125],[34.54082031250002,-15.297265625],[34.24609375,-15.829394531250003],[34.528125,-16.319140625],[34.93339843750002,-16.760351562500006],[35.11210937500002,-16.898535156250006],[35.06464843750001,-17.07861328125],[35.124609375,-17.127246093750003],[35.20136718750001,-17.13105468750001],[35.272558593750006,-17.118457031250003],[35.29042968750002,-17.096972656250003],[35.28115234375002,-16.80781250000001],[35.22978515625002,-16.639257812500006],[35.178320312500006,-16.573339843750006],[35.16718750000001,-16.56025390625001],[35.242773437500006,-16.375390625],[35.358496093750006,-16.160546875],[35.59931640625001,-16.12587890625001],[35.70888671875002,-16.095800781250006],[35.75527343750002,-16.05830078125001],[35.79121093750001,-15.958691406250011],[35.89277343750001,-14.891796875000011],[35.86669921875,-14.86376953125],[35.84716796875,-14.6708984375],[35.6904296875,-14.465527343750011],[35.48847656250001,-14.201074218750009],[35.37578125000002,-14.058691406250006],[35.24746093750002,-13.896875],[35.01386718750001,-13.643457031250009],[34.61152343750001,-13.437890625],[34.54570312500002,-13.21630859375],[34.542578125,-13.108691406250003],[34.35781250000002,-12.164746093750011],[34.60625,-11.690039062500006],[34.65957031250002,-11.588671875],[34.82656250000002,-11.57568359375],[34.95947265625,-11.578125],[35.1826171875,-11.574804687500006],[35.41826171875002,-11.583203125000011],[35.50439453125,-11.604785156250003],[35.56435546875002,-11.60234375],[35.630957031250006,-11.58203125],[35.78544921875002,-11.452929687500003],[35.91132812500001,-11.4546875],[36.08222656250001,-11.537304687500011],[36.17548828125001,-11.609277343750009],[36.19130859375002,-11.670703125],[36.3056640625,-11.706347656250003],[36.97890625000002,-11.566992187500006],[37.37285156250002,-11.71044921875],[37.54169921875001,-11.675097656250003],[37.72480468750001,-11.580664062500006],[37.92021484375002,-11.294726562500003],[38.491796875,-11.413281250000011],[38.9875,-11.167285156250003],[39.81708984375001,-10.912402343750003],[39.98867187500002,-10.82080078125],[40.46357421875001,-10.46435546875],[40.61171875000002,-10.661523437500009],[40.48662109375002,-10.76513671875],[40.59716796875,-10.830664062500006],[40.40283203125,-11.33203125],[40.53154296875002,-12.004589843750011],[40.48710937500002,-12.4921875],[40.58085937500002,-12.635546875],[40.43681640625002,-12.983105468750011],[40.56875,-12.984667968750003],[40.595703125,-14.122851562500003],[40.715625,-14.214453125],[40.64609375,-14.538671875],[40.775,-14.421289062500009],[40.84453125000002,-14.718652343750009],[40.617773437500006,-15.115527343750003],[40.650976562500006,-15.260937500000011],[39.98359375000001,-16.22548828125001],[39.79091796875002,-16.29453125],[39.84462890625002,-16.435644531250006],[39.084375,-16.97285156250001],[38.14492187500002,-17.242773437500006],[37.24453125000002,-17.73994140625001],[36.93935546875002,-17.993457031250003],[36.40371093750002,-18.76972656250001],[36.26289062500001,-18.71962890625001],[36.23564453125002,-18.861328125],[35.85371093750001,-18.99335937500001],[34.947851562500006,-19.81269531250001],[34.6494140625,-19.70136718750001],[34.75576171875002,-19.82197265625001],[34.705078125,-20.473046875],[34.98232421875002,-20.80625],[35.267675781250006,-21.650976562500006],[35.31572265625002,-22.396875],[35.38300781250001,-22.45458984375],[35.45634765625002,-22.11591796875001],[35.53007812500002,-22.248144531250006],[35.57539062500001,-22.96308593750001],[35.37041015625002,-23.79824218750001],[35.5419921875,-23.82441406250001],[35.48964843750002,-24.065527343750006],[34.99208984375002,-24.65058593750001],[32.96113281250001,-25.49042968750001],[32.590429687500006,-26.00410156250001],[32.84882812500001,-26.26806640625],[32.95488281250002,-26.08359375],[32.93359375,-26.25234375],[32.88916015625,-26.83046875],[32.88613281250002,-26.84931640625001],[32.353515625,-26.861621093750003],[32.19960937500002,-26.83349609375],[32.112890625,-26.839453125]]]},"properties":{"name":"Mozambique","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-16.37333984374999,19.706445312499994],[-16.437548828124932,19.609277343749994],[-16.477001953124983,19.710351562499994],[-16.343652343749994,19.86621093750003],[-16.37333984374999,19.706445312499994]]],[[[-5.359912109374989,16.282861328124994],[-5.5125,15.496289062499983],[-9.293701171875,15.502832031249994],[-9.350585937499943,15.677392578125023],[-9.38535156249992,15.667626953124994],[-9.4265625,15.623046875000057],[-9.447705078124926,15.574853515624994],[-9.446923828124937,15.458203124999955],[-9.941406249999972,15.373779296874986],[-10.696582031249989,15.42265625],[-10.9482421875,15.151123046875014],[-11.455224609374994,15.62539062499999],[-11.760156249999937,15.425537109375057],[-11.828759765624966,15.244873046875014],[-11.872851562499989,14.995166015625031],[-12.02158203124992,14.804931640625],[-12.081542968749972,14.766357421875057],[-12.104687499999955,14.745361328125043],[-12.40869140625,14.889013671874991],[-12.735253906249994,15.13125],[-13.105273437499989,15.57177734375],[-13.40966796875,16.059179687500006],[-13.756640624999989,16.172509765624994],[-13.868457031249932,16.14814453125001],[-14.300097656249932,16.58027343750001],[-14.990625,16.676904296874994],[-15.768212890624994,16.485107421875],[-16.23901367187497,16.53129882812499],[-16.44101562499992,16.20454101562504],[-16.480078124999977,16.097216796875017],[-16.50205078124992,15.917333984375063],[-16.53525390624995,15.838378906250057],[-16.53574218749995,16.28681640625001],[-16.463623046875,16.60151367187501],[-16.030322265625017,17.88793945312497],[-16.213085937499926,19.003320312500023],[-16.51445312499996,19.361962890624994],[-16.305273437499977,19.51264648437504],[-16.44487304687499,19.47314453124997],[-16.21044921875003,20.227929687500023],[-16.42978515624995,20.652343750000057],[-16.622509765624955,20.634179687499994],[-16.87607421874992,21.086132812499955],[-16.998242187499926,21.039697265625023],[-17.048046874999955,20.80615234375003],[-17.06396484375,20.89882812499999],[-16.96455078125001,21.329248046875023],[-15.231201171875,21.331298828125],[-14.084667968749926,21.33271484375001],[-13.626025390624932,21.33325195312503],[-13.396728515624943,21.333544921875017],[-13.167431640624926,21.333789062500074],[-13.016210937499949,21.33393554687501],[-13.025097656249983,21.46679687499997],[-13.032226562500028,21.572070312500017],[-13.041748046875,21.71381835937504],[-13.051220703124983,21.854785156250074],[-13.094335937499977,22.49599609375005],[-13.153271484374983,22.820507812499983],[-13.031494140624943,23.000244140625],[-12.895996093749972,23.08955078125001],[-12.739599609375006,23.192724609375063],[-12.62041015624996,23.271337890625006],[-12.559375,23.290820312500045],[-12.372900390624977,23.318017578124994],[-12.023437499999943,23.467578125000017],[-12.016308593749983,23.97021484375],[-12.016308593749983,24.378662109375],[-12.016308593749983,24.923242187499994],[-12.016308593749983,25.059375],[-12.016308593749983,25.331689453124994],[-12.016308593749983,25.740136718749994],[-12.016308593749983,25.995410156250017],[-10.376123046874966,25.995458984375034],[-9.444531249999983,25.99550781250005],[-9.071923828124937,25.99550781250005],[-8.885644531249994,25.99550781250005],[-8.682226562499949,25.99550781250005],[-8.68212890625,26.109472656250006],[-8.68212890625,26.273193359375057],[-8.682324218749955,26.49770507812505],[-8.682617187500028,26.723144531250057],[-8.682861328124972,26.92133789062501],[-8.683349609375,27.285937500000045],[-4.822607421874949,24.99560546875],[-5.640771484374994,24.99516601562499],[-5.959814453124977,24.994970703125063],[-6.287207031249977,24.99482421875001],[-6.594091796874977,24.99462890624997],[-6.396582031249977,23.274804687499994],[-6.02641601562496,20.04218750000001],[-5.827099609374955,18.301562500000045],[-5.741699218749943,17.555566406250023],[-5.713183593750017,17.306884765625],[-5.684765624999983,17.058251953124966],[-5.628662109375028,16.568652343750045],[-5.50961914062492,16.442041015625023],[-5.359912109374989,16.282861328124994]]]]},"properties":{"name":"Mauritania","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-62.1484375,16.74033203124999],[-62.221630859375,16.699511718750003],[-62.191357421875,16.804394531249997],[-62.1484375,16.74033203124999]]]},"properties":{"name":"Montserrat","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[57.65126953125002,-20.48486328125],[57.31767578125002,-20.42763671875001],[57.416015625,-20.18378906250001],[57.65654296875002,-19.98994140625001],[57.7919921875,-20.21259765625001],[57.65126953125002,-20.48486328125]]]},"properties":{"name":"Mauritius","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[34.95947265625003,-11.578125],[34.82656250000005,-11.575683593749972],[34.65957031250005,-11.58867187499996],[34.61855468750005,-11.620214843749991],[34.60625,-11.690039062500006],[34.3578125,-12.164746093749997],[34.542578125,-13.108691406250003],[34.54570312500002,-13.21630859375],[34.6115234375001,-13.437890625000023],[35.0138671875001,-13.64345703124998],[35.247460937499994,-13.896875],[35.37578125000002,-14.05869140625002],[35.48847656250004,-14.20107421874998],[35.69042968749997,-14.465527343750026],[35.84716796875003,-14.670898437500043],[35.8927734375001,-14.891796875000011],[35.7912109375001,-15.958691406250026],[35.75527343750005,-16.058300781249983],[35.708886718749994,-16.095800781249977],[35.5993164062501,-16.12587890624998],[35.35849609375006,-16.160546875000023],[35.242773437500006,-16.375390625],[35.16718750000004,-16.56025390625001],[35.178320312500006,-16.57333984375002],[35.22978515625002,-16.639257812500034],[35.281152343749994,-16.8078125],[35.29042968750005,-17.096972656250017],[35.27255859375006,-17.11845703124996],[35.2013671875001,-17.13105468750004],[35.124609375,-17.127246093749974],[35.06464843750004,-17.078613281250014],[35.11210937500002,-16.898535156250006],[34.93339843750002,-16.760351562500006],[34.528125,-16.319140625],[34.24609374999997,-15.829394531249974],[34.54082031250002,-15.297265625],[34.50527343750005,-14.598144531249957],[34.375,-14.4248046875],[33.63642578125004,-14.568164062499974],[33.148046875,-13.94091796875],[32.98125,-14.009375],[32.797460937500006,-13.6884765625],[32.67041015624997,-13.590429687500006],[32.96757812500002,-13.225],[32.97519531250006,-12.701367187499983],[33.51230468750006,-12.347753906249977],[33.340136718750074,-12.308300781250011],[33.25234375000005,-12.112597656250031],[33.3039062500001,-11.69082031249998],[33.23271484375002,-11.417675781250026],[33.26835937500002,-11.403906249999977],[33.379785156249994,-11.15791015625004],[33.29277343750002,-10.85234375],[33.661523437499994,-10.553125],[33.55371093749997,-10.391308593750011],[33.53759765624997,-10.351562499999986],[33.52890625,-10.234667968749974],[33.31152343750003,-10.037988281249966],[33.3371093750001,-9.954003906249994],[33.350976562499994,-9.862207031250037],[33.25,-9.759570312500003],[33.148046875,-9.603515625],[32.99599609375005,-9.622851562499946],[32.91992187500003,-9.407421875000026],[33.88886718750004,-9.670117187499983],[33.99560546875003,-9.495410156250003],[34.32089843750006,-9.731542968749977],[34.56992187500006,-10.241113281249966],[34.66708984375006,-10.792480468750028],[34.60791015624997,-11.08046875],[34.77382812500005,-11.341699218750009],[34.890625,-11.3935546875],[34.93701171874997,-11.463476562500034],[34.95947265625003,-11.578125]]]},"properties":{"name":"Malawi","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[111.38925781250006,2.415332031250031],[111.31152343749997,2.437597656250034],[111.33349609374997,2.768310546875],[111.38925781250006,2.415332031250031]]],[[[104.22158203125,2.731738281250003],[104.1291015625001,2.767236328125037],[104.18476562500004,2.871728515625009],[104.22158203125,2.731738281250003]]],[[[117.88476562499997,4.186132812500006],[117.64902343750012,4.168994140624974],[117.70800781249997,4.262402343749997],[117.88476562499997,4.186132812500006]]],[[[100.28896484375005,5.294726562499989],[100.19101562500006,5.28286132812498],[100.2455078125,5.467773437499986],[100.33886718749997,5.410058593750037],[100.28896484375005,5.294726562499989]]],[[[99.848046875,6.465722656249994],[99.9186523437501,6.358593750000011],[99.74375,6.263281249999963],[99.64628906250002,6.418359375000023],[99.848046875,6.465722656249994]]],[[[102.10107421874997,6.242236328125031],[102.34013671875002,6.172021484375023],[102.534375,5.862548828125028],[103.09707031250005,5.408447265624986],[103.41582031250007,4.85029296875004],[103.43945312499997,2.93310546875],[103.8122070312501,2.58046875],[104.21855468750002,1.722851562499997],[104.25009765625012,1.388574218750009],[104.11494140625004,1.412255859375037],[103.98144531250003,1.623632812500034],[103.99150390625002,1.454785156249997],[103.6945312500001,1.449658203125026],[103.48027343750007,1.329492187499966],[103.35683593750005,1.546142578125057],[102.72714843750012,1.855566406250034],[101.29550781250012,2.885205078125011],[101.29990234375012,3.253271484375034],[100.71542968750006,3.966210937499966],[100.79550781250012,4.023388671874983],[100.61455078125002,4.3734375],[100.34326171874997,5.984179687500031],[100.11914062499997,6.441992187500048],[100.26142578125004,6.682714843749963],[100.3454101562501,6.549902343750006],[100.75449218750012,6.460058593749991],[100.87392578125,6.24541015624996],[101.05351562500002,6.242578125],[100.98164062500004,5.771044921875045],[101.1139648437501,5.636767578125045],[101.5560546875,5.907763671875003],[101.67841796875004,5.778808593750028],[101.87363281250012,5.825292968749991],[102.10107421874997,6.242236328125031]]],[[[117.5744140625001,4.17060546875004],[117.10058593750003,4.337060546875023],[116.51474609375006,4.370800781249969],[115.86074218750005,4.348046875000037],[115.67880859375006,4.193017578124994],[115.45439453125002,3.034326171875009],[115.24697265625005,3.025927734374989],[115.117578125,2.89487304687502],[115.08076171875004,2.63422851562504],[115.1791015625,2.523193359374972],[114.78642578125002,2.250488281250014],[114.83056640625003,1.980029296874989],[114.5125,1.452001953124963],[113.90234375000003,1.434277343749997],[113.6222656250001,1.2359375],[113.00654296875004,1.433886718750003],[112.94296875000006,1.566992187500034],[112.47617187500006,1.559082031250028],[112.1857421875001,1.4390625],[112.078515625,1.143359374999974],[111.80898437500005,1.011669921874969],[111.10136718750002,1.050537109374986],[110.50576171875005,0.861962890625023],[109.65400390625004,1.614892578125023],[109.53896484375,1.89619140625004],[109.62890625000003,2.027539062499983],[109.86484375000012,1.764453125000031],[110.34921875000012,1.719726562499972],[111.22324218750012,1.395849609374991],[111.0287109375,1.557812500000026],[111.26816406250012,2.13974609375002],[111.20859375000012,2.379638671875043],[111.44384765625003,2.381542968749983],[111.5125,2.743017578124991],[112.98789062500006,3.161914062499974],[113.92392578125006,4.243212890625003],[114.0638671875,4.592675781249966],[114.65410156250007,4.037646484375045],[114.84023437500005,4.393212890625009],[114.74667968750006,4.718066406250017],[115.02675781250005,4.899707031249989],[115.10703125000006,4.390429687499974],[115.290625,4.352587890624989],[115.1400390625,4.899755859374991],[115.37490234375,4.932763671874966],[115.55449218750007,5.093554687500045],[115.41904296875012,5.413183593749963],[115.60390625,5.603417968749994],[115.74082031250012,5.533007812500045],[115.8771484375001,5.613525390625014],[116.74980468750007,6.977099609374989],[116.8498046875001,6.826708984374989],[116.78808593749997,6.606103515624994],[117.12851562500012,6.968896484375009],[117.2298828125,6.939990234374974],[117.29404296875006,6.676904296875023],[117.60966796875002,6.512646484375054],[117.69375,6.35],[117.64453124999997,6.001855468749994],[117.5011718750001,5.884667968750009],[118.00380859375,6.053320312499991],[118.11582031250006,5.8625],[117.93476562500004,5.7875],[117.97363281249997,5.70625],[118.35312500000012,5.80605468749998],[118.59482421875006,5.592089843750003],[119.22343750000007,5.412646484375031],[119.2663085937501,5.308105468750057],[119.21962890625,5.159814453125037],[118.9125,5.02290039062504],[118.26054687500007,4.988867187500034],[118.18535156250002,4.828515625000051],[118.5625,4.502148437499997],[118.54833984375003,4.379248046875006],[118.008203125,4.250244140625014],[117.6964843750001,4.342822265625045],[117.5744140625001,4.17060546875004]]],[[[117.14160156250003,7.168212890625028],[117.08066406250006,7.115283203124989],[117.06425781250007,7.26069335937504],[117.2640625,7.351660156250006],[117.26679687500004,7.220800781249991],[117.14160156250003,7.168212890625028]]]]},"properties":{"name":"Malaysia","childNum":8}},{"geometry":{"type":"Polygon","coordinates":[[[23.380664062500017,-17.640625],[24.27490234375,-17.481054687500006],[24.73291015625,-17.51777343750001],[25.001757812500017,-17.56855468750001],[25.2587890625,-17.793554687500006],[24.909082031250023,-17.821386718750006],[24.530566406250017,-18.052734375],[24.243945312500017,-18.0234375],[23.599707031250006,-18.4599609375],[23.219335937500006,-17.99970703125001],[20.97412109375,-18.31884765625],[20.9794921875,-21.9619140625],[19.977343750000017,-22.00019531250001],[19.98046875,-24.77675781250001],[19.98046875,-28.310351562500003],[19.98046875,-28.451269531250006],[19.539843750000017,-28.574609375],[19.31269531250001,-28.73330078125001],[19.24580078125001,-28.901660156250003],[19.16171875,-28.938769531250003],[18.310839843750017,-28.88623046875],[17.44794921875001,-28.69814453125001],[17.34785156250001,-28.50117187500001],[17.358691406250017,-28.26943359375001],[17.1884765625,-28.13251953125001],[17.05625,-28.031054687500003],[16.93330078125001,-28.069628906250003],[16.875292968750017,-28.1279296875],[16.841210937500023,-28.21894531250001],[16.81015625,-28.26455078125001],[16.7875,-28.39472656250001],[16.755761718750023,-28.4521484375],[16.62617187500001,-28.487890625],[16.487109375000017,-28.572851562500006],[16.447558593750017,-28.617578125],[15.719042968750017,-27.9658203125],[15.341503906250011,-27.386523437500003],[15.139062500000023,-26.50800781250001],[14.9677734375,-26.31806640625001],[14.837109375000011,-25.033203125],[14.5015625,-24.201953125],[14.462792968750023,-22.44912109375001],[13.450585937500023,-20.91669921875001],[13.168359375000023,-20.184667968750006],[12.458203125000011,-18.9267578125],[11.77587890625,-18.001757812500003],[11.733496093750006,-17.7509765625],[11.743066406250023,-17.24921875000001],[11.902539062500011,-17.2265625],[12.013964843750017,-17.168554687500006],[12.21337890625,-17.2099609375],[12.318457031250006,-17.21337890625],[12.359277343750023,-17.205859375],[12.548144531250017,-17.212695312500003],[13.179492187500017,-16.9716796875],[13.475976562500023,-17.0400390625],[14.017480468750023,-17.40888671875001],[16.1484375,-17.390234375],[18.396386718750023,-17.3994140625],[18.95527343750001,-17.803515625],[20.1943359375,-17.863671875],[20.745507812500023,-18.01972656250001],[22.32421875,-17.8375],[23.380664062500017,-17.640625]]]},"properties":{"name":"Namibia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[167.54443359375003,-22.62324218750001],[167.44375,-22.63916015624997],[167.44345703125006,-22.541406250000037],[167.54443359375003,-22.62324218750001]]],[[[168.01093750000004,-21.429980468750017],[168.1390625,-21.44521484375001],[168.12070312500012,-21.615820312500034],[167.96679687500003,-21.641601562499957],[167.81542968749997,-21.392675781249963],[167.9884765625001,-21.337890624999986],[168.01093750000004,-21.429980468750017]]],[[[167.40087890625003,-21.16064453125003],[167.07265625,-20.99726562499997],[167.03271484374997,-20.922558593750026],[167.18945312500003,-20.803515625000017],[167.05576171875012,-20.720214843750014],[167.29794921875006,-20.732519531250034],[167.40087890625003,-21.16064453125003]]],[[[164.20234375000004,-20.246093749999957],[164.4359375,-20.282226562499957],[165.191796875,-20.768847656249974],[165.66279296875004,-21.267187499999977],[166.94238281250003,-22.09013671875003],[166.97031250000012,-22.32285156250002],[166.77412109375004,-22.37617187500004],[166.4679687500001,-22.256054687499997],[164.92744140625004,-21.289843749999974],[164.16972656250007,-20.48017578125004],[164.05966796875012,-20.141503906249966],[164.20234375000004,-20.246093749999957]]]]},"properties":{"name":"New Caledonia","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[14.97900390625,22.99619140624999],[15.181835937500011,21.523388671874997],[15.607324218750023,20.954394531250003],[15.587109375000011,20.733300781249994],[15.963183593750017,20.34619140625],[15.735058593750011,19.904052734375],[15.474316406250011,16.908398437499997],[14.367968750000017,15.750146484374994],[13.4482421875,14.380664062500003],[13.505761718750023,14.134423828124994],[13.606347656250023,13.70458984375],[13.426953125000011,13.701757812499991],[13.323828125,13.670849609374997],[12.871679687500006,13.449023437500003],[12.65478515625,13.3265625],[12.463183593750017,13.09375],[10.958886718750023,13.371533203124997],[10.475878906250017,13.330224609374994],[10.229589843750006,13.281005859375],[10.184667968750006,13.270117187499991],[9.615917968750011,12.810644531249991],[9.201562500000023,12.821484375],[8.750585937500006,12.908154296874997],[8.4560546875,13.059667968749991],[8.095019531250017,13.291162109374994],[7.955761718750011,13.32275390625],[7.788671875,13.337890625],[7.056738281250006,13.000195312499997],[6.804296875,13.107666015625],[6.2998046875,13.658789062499991],[6.184277343750011,13.66367187499999],[5.838183593750017,13.765380859375],[5.491992187500017,13.872851562500003],[5.415820312500017,13.859179687500003],[5.361621093750017,13.836865234374997],[5.241894531250011,13.757226562499994],[4.664843750000017,13.733203125],[4.147558593750006,13.457714843749997],[3.947851562500006,12.775048828124994],[3.646679687500011,12.529980468749997],[3.595410156250011,11.6962890625],[2.805273437500006,12.383837890624989],[2.366015625000017,12.221923828125],[2.38916015625,11.897070312499991],[2.072949218750011,12.309375],[2.226269531250011,12.466064453125],[2.104589843750006,12.701269531249991],[1.56494140625,12.635400390624994],[0.9873046875,13.041894531249994],[0.988476562500011,13.36484375],[1.201171875,13.357519531249991],[0.6181640625,13.703417968750003],[0.42919921875,13.972119140624997],[0.382519531250011,14.245800781249997],[0.163867187500017,14.497216796874994],[0.217480468750011,14.911474609374991],[0.947460937500011,14.982128906249997],[1.300195312500023,15.272265625],[3.001074218750006,15.340966796874994],[3.06015625,15.427197265624997],[3.504296875000023,15.356347656249994],[3.5205078125,15.483105468749997],[3.842968750000011,15.701708984375003],[4.121289062500011,16.357714843750003],[4.234667968750017,16.996386718750003],[4.227636718750006,19.142773437499997],[5.836621093750011,19.479150390624994],[7.481738281250017,20.873095703125003],[11.967871093750006,23.517871093750003],[13.48125,23.18017578125],[14.215527343750011,22.619677734375003],[14.97900390625,22.99619140624999]]]},"properties":{"name":"Niger","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[7.30078125,4.418164062500026],[7.140429687500017,4.395117187500034],[7.227343750000045,4.527343749999972],[7.30078125,4.418164062500026]]],[[[6.804296875,13.107666015625],[7.056738281250006,13.00019531250004],[7.788671875,13.337890625],[7.955761718750011,13.322753906250028],[8.095019531250045,13.29116210937498],[8.750585937500034,12.908154296875026],[9.20156250000008,12.82148437500004],[9.615917968750011,12.810644531249963],[10.184667968750063,13.270117187499963],[10.229589843749977,13.281005859375043],[10.475878906250074,13.330224609375037],[10.958886718750051,13.371533203125011],[12.463183593750017,13.09375],[12.654785156250057,13.3265625],[13.426953125000068,13.701757812499963],[13.606347656250023,13.704589843750014],[13.932324218750011,13.258496093749997],[14.06396484375,13.078515625],[14.160058593750023,12.612792968749986],[14.184863281250017,12.447216796874997],[14.272851562500023,12.356494140624989],[14.518945312500051,12.298242187500023],[14.619726562500063,12.150976562500048],[14.559765625000011,11.492285156249963],[14.20234375000004,11.268164062499963],[14.143261718750068,11.248535156250043],[14.056738281250034,11.245019531250037],[13.981445312500057,11.21186523437504],[13.892089843750057,11.140087890624983],[13.699902343749983,10.873144531250048],[13.53535156250004,10.605078124999963],[13.414550781250028,10.171435546874989],[13.269921875000051,10.036181640624974],[13.198730468750028,9.563769531250003],[12.929492187500074,9.426269531249972],[12.87568359375004,9.303515625000017],[12.80654296875008,8.886621093749994],[12.7822265625,8.817871093750014],[12.651562500000011,8.667773437499989],[12.40351562500004,8.59555664062502],[12.311328125000074,8.419726562499989],[12.2333984375,8.282324218749977],[12.016015625000051,7.589746093750009],[11.809179687500006,7.345068359374991],[11.767382812500017,7.272265624999989],[11.861425781249977,7.11640625000004],[11.657519531250017,6.951562500000023],[11.580078125000057,6.88886718750004],[11.551660156250023,6.697265625],[11.153320312500057,6.437939453125011],[11.1064453125,6.457714843750054],[11.032519531250045,6.697900390625037],[10.954199218750006,6.7765625],[10.60625,7.063085937500006],[10.413183593750006,6.877734375],[10.293066406250034,6.876757812499974],[10.205468750000051,6.891601562499986],[10.185546874999972,6.91279296875004],[10.167773437500017,6.959179687499983],[10.143554687500057,6.99643554687502],[10.038867187500045,6.921386718750014],[9.874218750000068,6.803271484375017],[9.82070312500008,6.783935546874986],[9.779882812500034,6.760156250000023],[9.725585937499972,6.65],[9.659960937500017,6.531982421874986],[9.490234375,6.418652343749997],[8.997167968750006,5.917724609375],[8.715625,5.046875],[8.514843750000068,4.724707031250034],[8.23378906250008,4.907470703124972],[8.293066406250006,4.557617187500014],[7.644238281250068,4.525341796875011],[7.530761718750028,4.655175781249994],[7.284375,4.547656250000031],[7.076562500000051,4.716162109374991],[7.15468750000008,4.514404296875],[6.92324218750008,4.390673828125017],[6.767675781250006,4.724707031250034],[6.860351562500057,4.373339843750045],[6.633007812500011,4.340234375000051],[6.579980468750051,4.475976562499994],[6.554589843750023,4.34140625000002],[6.263671875,4.309423828124991],[6.270996093749972,4.432128906250028],[6.173339843749972,4.277392578125031],[5.970703125,4.338574218749983],[5.587792968750051,4.647216796874972],[5.448144531250023,4.945849609374974],[5.383300781250057,5.129003906249977],[5.475976562500023,5.153857421874989],[5.370019531250023,5.195019531250026],[5.367968750000045,5.337744140624963],[5.549707031250023,5.474218749999963],[5.385839843750034,5.401757812500037],[5.199218750000028,5.533544921874977],[5.456640624999977,5.61171875],[5.327343750000011,5.707519531249986],[5.112402343750034,5.64155273437504],[4.861035156250068,6.026318359374997],[4.431347656250011,6.348583984375026],[3.450781249999977,6.427050781250017],[3.71699218750004,6.597949218750017],[3.430175781250057,6.525],[3.335546875000063,6.396923828125011],[2.706445312500051,6.369238281249963],[2.735644531250045,6.595703125],[2.753710937499989,6.661767578124966],[2.774609374999983,6.711718750000017],[2.752929687500028,6.771630859374966],[2.731738281250045,6.852832031249989],[2.721386718750068,6.980273437500017],[2.75673828125008,7.067919921875017],[2.750488281250057,7.39506835937496],[2.765820312500068,7.422509765625051],[2.783984375000045,7.443408203125045],[2.78515625,7.476855468750017],[2.703125,8.371826171875],[2.774804687500023,9.048535156250026],[3.044921875,9.08383789062502],[3.325195312499972,9.778466796875051],[3.60205078125,10.004541015625009],[3.646582031250006,10.408984374999989],[3.771777343750017,10.417626953124966],[3.83447265625,10.607421875],[3.7568359375,10.76875],[3.71640625,11.07958984375],[3.695312499999972,11.12031250000004],[3.63886718750004,11.176855468750006],[3.487792968749972,11.395410156250037],[3.490527343750017,11.499218750000054],[3.55390625000004,11.631884765624989],[3.595410156250068,11.696289062500057],[3.664746093750068,11.762451171875028],[3.646679687500011,12.529980468749983],[3.947851562500006,12.775048828124994],[4.147558593750006,13.457714843749983],[4.664843750000045,13.733203124999974],[5.241894531250011,13.757226562499994],[5.361621093750074,13.836865234375054],[5.415820312500017,13.859179687499974],[5.491992187500074,13.872851562500003],[6.2998046875,13.658789062500006],[6.804296875,13.107666015625]]]]},"properties":{"name":"Nigeria","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-83.6419921875,10.917236328125],[-83.71293945312499,10.785888671875],[-83.91928710937499,10.7353515625],[-84.6341796875,11.045605468749997],[-84.9091796875,10.9453125],[-85.5841796875,11.189453125],[-85.7443359375,11.06210937499999],[-87.670166015625,12.965673828124991],[-87.58505859374999,13.043310546874991],[-87.42436523437499,12.921142578125],[-87.33725585937499,12.979248046875],[-87.05917968749999,12.991455078125],[-87.00932617187499,13.0078125],[-86.918212890625,13.223583984374997],[-86.87353515625,13.266503906249994],[-86.792138671875,13.27978515625],[-86.72929687499999,13.284375],[-86.710693359375,13.313378906249994],[-86.76352539062499,13.63525390625],[-86.77060546874999,13.69873046875],[-86.758984375,13.746142578125003],[-86.733642578125,13.763476562500003],[-86.61025390625,13.774853515624997],[-86.376953125,13.755664062500003],[-86.33173828125,13.770068359375003],[-86.238232421875,13.899462890625003],[-86.15122070312499,13.994580078124997],[-86.0892578125,14.037207031249991],[-86.04038085937499,14.050146484374991],[-85.9837890625,13.965673828124991],[-85.78671875,13.844433593749997],[-85.75341796875,13.85205078125],[-85.73393554687499,13.858691406250003],[-85.727734375,13.876074218749991],[-85.731201171875,13.931835937499997],[-85.68193359374999,13.982568359374994],[-85.20834960937499,14.311816406250003],[-85.059375,14.582958984374997],[-84.86044921874999,14.809765625],[-84.645947265625,14.661083984374997],[-84.53764648437499,14.633398437499991],[-83.635498046875,14.876416015624997],[-83.5365234375,14.977001953124997],[-83.4150390625,15.008056640625],[-83.15751953124999,14.993066406249994],[-83.18535156249999,14.956396484374991],[-83.21591796874999,14.932373046875],[-83.27988281249999,14.812792968750003],[-83.344384765625,14.902099609375],[-83.413720703125,14.825341796874994],[-83.29921875,14.7490234375],[-83.187744140625,14.340087890625],[-83.4123046875,13.99648437499999],[-83.567333984375,13.3203125],[-83.5109375,12.411816406249997],[-83.627197265625,12.459326171874991],[-83.59335937499999,12.713085937499997],[-83.75424804687499,12.501953125],[-83.680419921875,12.024316406249994],[-83.7671875,12.059277343749997],[-83.82890624999999,11.861035156249997],[-83.70458984375,11.824560546874991],[-83.6517578125,11.642041015624997],[-83.86787109375,11.300048828125],[-83.6419921875,10.917236328125]]]},"properties":{"name":"Nicaragua","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-169.80341796875,-19.0830078125],[-169.94833984375,-19.072851562500006],[-169.834033203125,-18.96601562500001],[-169.80341796875,-19.0830078125]]]},"properties":{"name":"Niue","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-68.205810546875,12.144580078124989],[-68.25434570312495,12.032080078124977],[-68.36923828125,12.301953124999983],[-68.205810546875,12.144580078124989]]],[[[4.226171875000034,51.38647460937503],[3.902050781250011,51.20766601562502],[3.43251953125008,51.24575195312505],[3.35009765625,51.37768554687503],[4.226171875000034,51.38647460937503]]],[[[3.94912109375008,51.73945312500001],[4.07509765625008,51.648779296875006],[3.699023437500017,51.70991210937501],[3.94912109375008,51.73945312500001]]],[[[4.886132812500023,53.07070312500005],[4.70917968750004,53.036035156249994],[4.886425781249983,53.18330078124998],[4.886132812500023,53.07070312500005]]],[[[4.226171875000034,51.38647460937503],[3.448925781250068,51.54077148437503],[3.743945312500017,51.596044921875006],[4.27412109375004,51.47163085937498],[4.004785156250051,51.595849609374966],[4.182617187500057,51.61030273437498],[3.946875,51.810546875],[4.482812500000023,52.30917968749998],[4.76875,52.941308593749966],[5.061230468750068,52.96064453125001],[5.532031250000074,53.268701171874966],[6.062207031250068,53.407080078125006],[6.816210937500045,53.44116210937503],[7.197265625000028,53.28227539062499],[7.033007812500045,52.65136718749997],[6.710742187500045,52.61787109374998],[6.748828125000074,52.464013671874994],[7.035156250000057,52.38022460937498],[6.724511718749994,52.080224609374966],[6.800390625,51.96738281249998],[5.948730468750057,51.80268554687501],[6.198828125000034,51.45],[6.129980468750034,51.14741210937501],[5.857519531250034,51.030126953125006],[6.048437500000034,50.90488281250006],[5.993945312500017,50.75043945312504],[5.693554687500011,50.774755859375006],[5.796484375000034,51.153076171875],[5.214160156250045,51.278955078124966],[5.03095703125004,51.46909179687498],[4.226171875000034,51.38647460937503]]],[[[5.325781250000063,53.38574218750003],[5.190234375000074,53.39179687500001],[5.582617187500063,53.438085937500034],[5.325781250000063,53.38574218750003]]]]},"properties":{"name":"Netherlands","childNum":6,"cp":[5.0752777,52.358465]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[5.085839843750023,60.30756835937501],[5.089062500000068,60.188769531250045],[4.95722656250004,60.44726562500006],[5.085839843750023,60.30756835937501]]],[[[4.958691406250068,61.084570312500034],[4.79902343750004,61.08271484375001],[4.861621093749989,61.19384765625],[4.958691406250068,61.084570312500034]]],[[[8.10273437500004,63.33759765625004],[7.804003906250017,63.413916015625034],[8.073535156250045,63.47080078124998],[8.10273437500004,63.33759765625004]]],[[[8.470800781250063,63.66713867187502],[8.287109375000028,63.68715820312502],[8.764648437500057,63.804638671874955],[8.78652343750008,63.703466796875034],[8.470800781250063,63.66713867187502]]],[[[11.2314453125,64.865869140625],[10.739843750000034,64.87031250000001],[11.02099609375,64.97871093749995],[11.2314453125,64.865869140625]]],[[[12.971777343750063,67.87412109375],[12.824023437500074,67.82124023437498],[13.068066406250068,68.07133789062505],[12.971777343750063,67.87412109375]]],[[[13.872851562500045,68.26533203125004],[14.096777343750034,68.218603515625],[13.229394531250051,67.995361328125],[13.300195312499994,68.16044921875007],[13.872851562500045,68.26533203125004]]],[[[15.207128906250006,68.943115234375],[15.222070312500023,68.61630859375003],[14.404687500000051,68.663232421875],[15.037792968750068,69.00053710937507],[15.207128906250006,68.943115234375]]],[[[15.760351562500006,68.56123046875001],[16.328906250000017,68.87631835937498],[16.519238281250068,68.63300781249998],[15.975292968750011,68.402490234375],[14.257519531249983,68.19077148437503],[15.412597656250028,68.61582031250003],[15.483007812500006,69.04345703125003],[16.04804687500001,69.30205078125002],[15.760351562500006,68.56123046875001]]],[[[17.503027343750034,69.59624023437502],[18.004101562500068,69.50498046874998],[17.95068359375003,69.19814453125],[17.487890625000063,69.19682617187499],[17.08251953124997,69.013671875],[16.81044921875008,69.07070312499997],[17.001757812500045,69.36191406250006],[17.36083984375003,69.38149414062497],[17.503027343750034,69.59624023437502]]],[[[29.956152343750006,69.79677734375002],[29.766210937500006,69.76752929687501],[29.835839843749994,69.90556640625005],[29.956152343750006,69.79677734375002]]],[[[20.779199218750023,70.08974609375002],[20.46425781250005,70.0765625],[20.492773437500006,70.20332031249995],[20.78603515625008,70.21953124999999],[20.779199218750023,70.08974609375002]]],[[[19.25507812500001,70.06640625000006],[19.607812500000023,70.019140625],[19.334765625000074,69.82026367187501],[18.784765625000034,69.57900390624997],[18.12988281250003,69.557861328125],[18.34931640625004,69.76787109374999],[18.67402343750004,69.78164062500002],[19.13271484375005,70.24414062500003],[19.25507812500001,70.06640625000006]]],[[[19.76748046875005,70.21669921875002],[20.005957031250034,70.07622070312502],[19.599023437499994,70.26616210937507],[19.76748046875005,70.21669921875002]]],[[[23.615332031250034,70.54931640625003],[23.15917968750003,70.28261718750005],[22.941015625000063,70.444580078125],[23.546679687500017,70.61708984374997],[23.615332031250034,70.54931640625003]]],[[[24.01757812500003,70.56738281249997],[23.716601562500074,70.561865234375],[23.778417968750063,70.74736328125005],[24.01757812500003,70.56738281249997]]],[[[23.440527343750063,70.81577148437503],[22.8291015625,70.54155273437505],[22.358691406250017,70.514794921875],[21.99453125000008,70.65712890624997],[23.440527343750063,70.81577148437503]]],[[[30.869726562500006,69.78344726562506],[30.860742187499994,69.53842773437503],[30.18017578124997,69.63583984375],[30.08730468750005,69.43286132812503],[29.38828125,69.29814453125005],[28.96582031250003,69.02197265625],[28.846289062500006,69.17690429687502],[29.33339843750005,69.47299804687503],[29.14160156250003,69.67143554687505],[27.747851562500045,70.06484375],[27.127539062500063,69.90649414062497],[26.525390625000057,69.91503906250003],[26.07246093750004,69.69155273437497],[25.748339843750017,68.99013671875],[24.94140625000003,68.59326171875006],[23.85400390625,68.80590820312503],[23.324023437500017,68.64897460937502],[22.410937500000074,68.719873046875],[21.59375,69.273583984375],[21.06611328125001,69.21411132812497],[21.065722656250017,69.04174804687503],[20.622167968750006,69.036865234375],[20.116699218750057,69.02089843750005],[20.348046875000023,68.84873046875003],[19.969824218750063,68.35639648437501],[18.303027343750045,68.55541992187497],[17.91669921875001,67.96489257812502],[17.324609375000023,68.10380859374999],[16.783593750000023,67.89501953125],[16.12744140625,67.42583007812507],[16.40351562500004,67.05498046875002],[15.422949218750006,66.48984374999998],[15.483789062500051,66.30595703124999],[14.543261718750045,66.12934570312498],[14.47968750000004,65.30146484374998],[13.650292968750023,64.58154296874997],[14.077636718750028,64.464013671875],[14.141210937500006,64.17353515624998],[13.960546875000063,64.01401367187498],[13.203515625000023,64.07509765625],[12.792773437500017,64],[12.175195312500051,63.595947265625],[11.999902343750051,63.29169921875001],[12.303515625000074,62.28559570312501],[12.155371093750006,61.720751953125045],[12.88076171875008,61.35229492187506],[12.706054687500028,61.059863281250074],[12.29414062500004,61.00268554687506],[12.588671874999989,60.450732421875045],[12.486132812500074,60.10678710937506],[11.680761718750034,59.59228515625003],[11.798144531250074,59.28989257812498],[11.64277343750004,58.92607421875002],[11.470703125000057,58.909521484375034],[11.388281250000063,59.036523437499966],[10.834472656250028,59.18393554687498],[10.595312500000063,59.764550781249966],[10.179394531250068,59.00927734375003],[9.842578125000017,58.95849609374997],[9.557226562500063,59.11269531250002],[9.65693359375004,58.97119140624997],[8.166113281250063,58.145312500000045],[7.0048828125,58.024218750000074],[6.877050781250006,58.15073242187498],[6.590527343750068,58.09731445312502],[6.659863281250068,58.26274414062499],[5.706835937500074,58.52363281250001],[5.55556640625008,58.975195312500006],[6.099023437500023,58.87026367187502],[6.363281250000028,59.00092773437501],[6.099414062500017,58.951953125000074],[5.88916015625,59.097949218750045],[5.951855468750068,59.299072265625],[6.415332031250074,59.547119140625],[5.17324218750008,59.16254882812498],[5.2421875,59.564306640625034],[5.472460937500017,59.713085937499955],[5.77216796875004,59.66093749999999],[6.216601562499989,59.818359375],[5.73046875,59.863085937500045],[6.348730468750006,60.35297851562504],[6.57363281250008,60.36059570312497],[6.526855468750057,60.152929687500034],[6.995703125,60.511962890625],[6.1533203125,60.34624023437499],[5.145800781250074,59.63881835937502],[5.205664062500006,60.087939453125045],[5.688574218749977,60.12319335937502],[5.285839843750011,60.20571289062505],[5.13710937500008,60.445605468750074],[5.648339843750051,60.68798828124997],[5.244042968750023,60.569580078125],[5.115820312500006,60.63598632812503],[5.008593750000017,61.038183593750006],[6.777832031250028,61.142431640625006],[7.038671875000063,60.952929687500045],[7.040136718750006,61.091162109375034],[7.604492187500057,61.210546875000034],[7.34658203125008,61.30058593749999],[7.442578125000011,61.43461914062502],[7.173535156250011,61.16596679687501],[6.599902343750017,61.28964843749998],[6.383496093750068,61.133886718750034],[5.451269531250034,61.10234375000002],[5.106738281250017,61.187548828125045],[5.002734375000074,61.43359375],[5.338671875000017,61.485498046874994],[4.927832031249977,61.71069335937506],[4.93007812499999,61.878320312499994],[6.01582031250004,61.7875],[6.730761718750045,61.86977539062505],[5.266894531250045,61.935595703125045],[5.143164062500063,62.159912109375],[5.908300781249977,62.41601562500003],[6.083496093750057,62.349609375],[6.580078125000057,62.407275390625045],[6.692382812500028,62.46806640624999],[6.136132812500051,62.40747070312497],[6.352929687500051,62.61113281249999],[7.653125,62.56401367187499],[7.538378906250074,62.67207031249998],[8.045507812500006,62.77124023437503],[6.734960937500006,62.72070312500003],[6.940429687500028,62.930468750000045],[7.571875,63.09951171875002],[8.100585937500028,63.090966796874966],[8.623144531250006,62.84624023437502],[8.158007812500017,63.16152343750005],[8.635546875000045,63.34233398437502],[8.360742187500023,63.498876953125034],[8.576171875000028,63.60117187499998],[9.135839843750006,63.593652343749966],[9.156054687500045,63.459326171875034],[9.696875,63.624560546875045],[10.020996093750028,63.39082031250004],[10.76015625000008,63.461279296875006],[10.725292968750068,63.625],[11.370703125000034,63.804833984374994],[11.175585937500074,63.89887695312498],[11.457617187500063,64.00297851562505],[11.306640625000028,64.04887695312499],[10.91425781250004,63.92109374999998],[10.934863281250045,63.770214843749955],[10.055078125000051,63.5126953125],[9.567285156250051,63.70615234374998],[10.565625,64.418310546875],[11.523828125000051,64.744384765625],[11.632910156250063,64.81391601562495],[11.296777343750051,64.75478515625],[11.489355468750034,64.975830078125],[12.15966796875,65.178955078125],[12.508398437499977,65.09941406250005],[12.915527343750057,65.33925781249997],[12.417578125000063,65.18408203124997],[12.133886718749977,65.27915039062498],[12.68886718750008,65.90219726562498],[13.033105468750051,65.95625],[12.783789062500063,66.10043945312506],[14.034179687500057,66.29755859374998],[13.118847656250011,66.23066406250004],[13.211425781250028,66.64082031250001],[13.959472656250028,66.79433593750002],[13.651562500000011,66.90708007812498],[14.10878906250008,67.11923828125003],[15.41572265625004,67.20244140625002],[14.441699218750045,67.27138671875005],[14.961914062500057,67.57426757812502],[15.59443359375004,67.34853515625005],[15.691503906250006,67.52138671875],[15.24873046875004,67.6021484375],[15.303906250000011,67.76528320312502],[14.854687500000068,67.66333007812506],[14.798925781250063,67.80932617187503],[15.13427734375,67.97270507812502],[15.621386718750017,67.94829101562502],[15.316015624999977,68.06875],[16.007910156250006,68.22871093750004],[16.312304687500017,67.88144531249998],[16.20380859375001,68.31674804687503],[17.552832031250063,68.42626953125006],[16.51435546875004,68.53256835937503],[18.101464843749994,69.15629882812499],[18.259765625,69.47060546875],[18.915917968750023,69.33559570312502],[18.614453125000068,69.49057617187498],[19.197265625000057,69.74785156249999],[19.722460937500017,69.78164062500002],[19.64150390625005,69.42402343750001],[20.324218750000057,69.94531249999997],[20.054492187500074,69.33266601562497],[20.486718750000023,69.54208984375],[20.739453124999983,69.52050781250003],[20.622070312500057,69.91391601562498],[21.163085937500057,69.88950195312498],[21.432910156250045,70.01318359375006],[21.974707031250034,69.83457031249998],[21.355761718750045,70.23339843749997],[22.321972656250068,70.264501953125],[22.684570312500057,70.374755859375],[23.35390625000008,69.98339843750003],[23.3291015625,70.20722656249995],[24.420019531250034,70.70200195312503],[24.263476562500017,70.82631835937497],[24.658007812500017,71.00102539062505],[25.264648437500057,70.843505859375],[25.768164062500063,70.85317382812502],[25.043847656250023,70.10903320312502],[26.66132812500004,70.93974609374999],[26.585058593750034,70.41000976562498],[26.989355468750063,70.51137695312502],[27.183691406250034,70.74404296875],[27.546484375000063,70.80400390625005],[27.23525390625008,70.94721679687498],[27.59707031250005,71.09130859375003],[28.392285156250068,70.97529296875004],[27.898046875,70.67792968750001],[28.271777343750017,70.66796875000003],[28.192968750000034,70.24858398437505],[28.83154296875003,70.86396484375001],[29.7375,70.646826171875],[30.065136718750097,70.70297851562498],[30.944140625000017,70.27441406249997],[30.262988281250074,70.12470703125004],[28.804296875000063,70.09252929687506],[29.601367187500017,69.97675781249998],[29.792089843750063,69.727880859375],[30.08828125,69.71757812500005],[30.237597656250017,69.86220703125002],[30.428320312500006,69.722265625],[30.869726562500006,69.78344726562506]]],[[[25.58632812500005,71.14208984375],[26.13378906250003,70.99580078125004],[25.582031250000057,70.960791015625],[25.31494140625,71.03413085937504],[25.58632812500005,71.14208984375]]],[[[-8.953564453124983,70.83916015625002],[-8.001367187499966,71.17768554687495],[-8.002099609374937,71.04125976562497],[-8.953564453124983,70.83916015625002]]],[[[19.219335937500006,74.39101562500002],[18.86123046875008,74.51416015624997],[19.182910156250045,74.51791992187503],[19.219335937500006,74.39101562500002]]],[[[21.60810546875004,78.59570312499997],[22.04316406250004,78.57695312500007],[22.29951171875004,78.22817382812497],[23.451953125000074,78.14946289062502],[23.11669921874997,77.99150390624999],[24.901855468750057,77.756591796875],[22.55371093750003,77.26665039062502],[22.685351562500045,77.55351562500002],[20.928125,77.45966796874998],[21.653125,77.92353515624998],[20.22792968750005,78.47783203125005],[21.60810546875004,78.59570312499997]]],[[[11.250292968750017,78.610693359375],[12.116406250000068,78.232568359375],[11.121289062500011,78.46328125],[10.558203125000063,78.90292968750003],[11.250292968750017,78.610693359375]]],[[[29.047070312500068,78.91206054687504],[29.69667968750005,78.90473632812495],[27.88906250000005,78.8521484375],[28.511132812500023,78.96733398437502],[29.047070312500068,78.91206054687504]]],[[[16.786718750000034,79.90673828125],[17.834570312499977,79.80004882812503],[17.66875,79.38593750000004],[18.39736328125008,79.60517578125001],[18.677832031250006,79.26171875000003],[19.893554687500057,79.05620117187499],[20.61103515625004,79.10664062499998],[21.388769531250034,78.74042968749998],[19.67675781250003,78.60957031249995],[16.700488281250045,76.57929687499995],[14.365820312500034,77.23447265625003],[13.995703125000034,77.50820312500002],[14.69501953125004,77.525048828125],[14.920800781250023,77.68881835937506],[17.033300781250006,77.79770507812503],[16.91406250000003,77.89799804687505],[14.089941406250063,77.77138671875],[13.680566406250051,78.028125],[14.307226562500006,78.00507812500001],[15.783886718750011,78.32705078125005],[17.00292968750003,78.36938476562497],[16.44863281250008,78.50356445312502],[16.78261718750008,78.66362304687505],[15.417382812500023,78.47324218749998],[15.384179687500023,78.77119140625001],[15.01630859375004,78.63012695312497],[14.689257812500017,78.720947265625],[14.638281250000034,78.41459960937502],[14.110449218750063,78.27089843749997],[13.150195312499989,78.2375],[11.365429687500011,78.95039062500004],[12.323437500000068,78.91425781249995],[12.083984375000028,79.26752929687498],[11.579785156250068,79.28349609375005],[11.208105468750034,79.12963867187503],[10.737597656250017,79.52016601562502],[10.804003906250045,79.79877929687504],[11.150390625,79.71699218749998],[11.702343750000011,79.82060546875005],[12.287792968750068,79.713134765625],[12.279980468749983,79.81596679687507],[13.692871093749972,79.860986328125],[13.777539062500011,79.71528320312498],[12.555371093750068,79.56948242187502],[13.333789062500017,79.57480468750006],[14.029589843750017,79.34414062500005],[14.59365234375008,79.79873046875002],[16.34375,78.97612304687502],[15.816113281250011,79.68183593750001],[16.245703125000034,80.04946289062502],[16.786718750000034,79.90673828125]]],[[[32.52597656250006,80.119140625],[31.48193359374997,80.10791015625003],[33.62929687499999,80.21743164062497],[32.52597656250006,80.119140625]]],[[[20.897851562500023,80.24995117187501],[22.289746093749983,80.04921874999997],[22.450781250000034,80.40224609375005],[23.00800781250004,80.473974609375],[23.114550781250074,80.18696289062498],[24.29755859375004,80.36040039062505],[26.86083984375,80.16000976562498],[27.19863281250008,79.90659179687506],[25.641210937500034,79.40302734374995],[23.94775390625,79.19428710937498],[22.903710937500023,79.23066406250001],[22.865527343750045,79.41186523437497],[20.861132812500017,79.39785156249997],[20.128222656250074,79.489599609375],[19.674609375000045,79.591162109375],[20.784082031250023,79.74858398437502],[18.725,79.7607421875],[18.25537109375,79.92919921875003],[18.855957031250057,80.03662109375],[17.91689453125005,80.14311523437502],[19.343359375000063,80.11640624999998],[19.733300781249994,80.47783203124999],[20.897851562500023,80.24995117187501]]]]},"properties":{"name":"Norway","childNum":27}},{"geometry":{"type":"Polygon","coordinates":[[[87.984375,27.133935546874994],[87.9931640625,27.086083984374994],[88.11103515625001,26.928466796875],[88.1572265625,26.807324218749997],[88.16152343750002,26.724804687499997],[88.11152343750001,26.58642578125],[88.05488281250001,26.430029296875],[88.02695312500003,26.39501953125],[87.9951171875,26.382373046874996],[87.28740234374999,26.360302734374997],[87.01640624999999,26.555419921875],[86.70136718750001,26.43505859375],[86.00732421875,26.649365234374997],[85.79453125000003,26.604150390624994],[85.7373046875,26.63974609375],[85.6484375,26.829003906249994],[85.56845703125003,26.83984375],[85.29296875,26.741015625],[85.19179687500002,26.766552734374997],[84.68535156249999,27.041015625],[84.65380859375,27.091699218749994],[84.65478515625,27.203662109374996],[84.64072265625003,27.249853515625],[84.61015624999999,27.298681640625],[84.48085937500002,27.348193359374996],[84.22978515624999,27.42783203125],[84.09101562500001,27.491357421874994],[83.82880859375001,27.377832031249994],[83.74697265625002,27.395947265624997],[83.55166015625002,27.456347656249996],[83.44716796875002,27.46533203125],[83.38398437500001,27.44482421875],[83.36943359374999,27.41025390625],[83.28974609375001,27.370996093749994],[82.7333984375,27.518994140624997],[82.71083984375002,27.5966796875],[82.67734375000003,27.6734375],[82.6298828125,27.687060546874996],[82.45136718750001,27.671826171874997],[82.28769531250003,27.756542968749997],[82.11191406250003,27.864941406249997],[82.03701171875002,27.900585937499997],[81.98769531250002,27.913769531249997],[81.94521484375002,27.899267578125],[81.896875,27.874462890624997],[81.85263671875003,27.867089843749994],[81.1689453125,28.335009765624996],[80.58701171875003,28.649609375],[80.51787109374999,28.665185546874994],[80.49580078125001,28.635791015624996],[80.47910156250003,28.604882812499994],[80.41855468750003,28.612011718749997],[80.32480468750003,28.66640625],[80.2265625,28.723339843749997],[80.07070312500002,28.83017578125],[80.05166015625002,28.8703125],[80.08457031250003,28.994189453124996],[80.13046875000003,29.100390625],[80.16953125000003,29.124316406249996],[80.23300781250003,29.194628906249996],[80.25595703125003,29.318017578124994],[80.2548828125,29.42333984375],[80.31689453125,29.572070312499996],[80.40185546875,29.730273437499996],[80.54902343750001,29.899804687499994],[80.81992187500003,30.119335937499997],[80.84814453125,30.13974609375],[80.90761718750002,30.171923828124996],[80.96611328124999,30.180029296875],[81.17714843750002,30.039892578125],[81.25507812500001,30.093310546874996],[81.41718750000001,30.337597656249997],[81.64189453124999,30.3875],[81.85488281250002,30.36240234375],[82.04335937500002,30.3267578125],[82.220703125,30.063867187499994],[83.15546875000001,29.612646484375],[83.58349609375,29.18359375],[83.93593750000002,29.279492187499997],[84.02197265625,29.253857421874997],[84.10136718749999,29.219970703125],[84.12783203125002,29.156298828124996],[84.17558593749999,29.036376953125],[84.22871093750001,28.911767578124994],[84.796875,28.560205078124994],[84.85507812500003,28.553613281249994],[85.06914062499999,28.609667968749996],[85.12636718750002,28.60263671875],[85.15908203125002,28.592236328124997],[85.16015625,28.571875],[85.12148437500002,28.484277343749994],[85.08857421875001,28.372265625],[85.12246093750002,28.315966796874996],[85.21210937500001,28.292626953124994],[85.41064453125,28.276025390624994],[85.67832031250003,28.27744140625],[85.75947265625001,28.220654296874997],[85.84023437500002,28.1353515625],[85.92167968749999,27.989697265624997],[85.9541015625,27.92822265625],[85.99453125000002,27.910400390625],[86.06416015625001,27.934716796874994],[86.07871093750003,28.08359375],[86.13701171874999,28.11435546875],[86.21796875000001,28.0220703125],[86.32861328125,27.959521484374996],[86.40869140625,27.928662109374997],[86.51689453124999,27.963525390624994],[86.55449218749999,28.085205078125],[86.61445312500001,28.10302734375],[86.69052734375003,28.094921875],[86.71962890625002,28.070654296875],[86.75039062500002,28.0220703125],[86.93378906250001,27.968457031249997],[87.02011718750003,27.928662109374997],[87.14140624999999,27.838330078124997],[87.29072265625001,27.821923828124994],[87.62255859375,27.815185546875],[87.86074218750002,27.886083984375],[88.10976562500002,27.87060546875],[87.984375,27.133935546874994]]]},"properties":{"name":"Nepal","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[169.17822265624997,-52.497265625],[169.12753906250006,-52.570312499999964],[169.02177734375002,-52.49541015624998],[169.17822265624997,-52.497265625]]],[[[166.22109375,-50.76152343749997],[166.2428710937501,-50.84570312499998],[165.88916015624997,-50.80771484374996],[166.10136718750002,-50.538964843750016],[166.26748046875005,-50.558593750000014],[166.22109375,-50.76152343749997]]],[[[168.14492187500005,-46.862207031249966],[168.04316406250004,-46.9326171875],[168.2409179687501,-47.070019531250026],[167.52197265624997,-47.258691406249994],[167.80078125000003,-46.90654296875002],[167.78398437500007,-46.699804687500006],[167.9557617187501,-46.69443359374998],[168.14492187500005,-46.862207031249966]]],[[[166.97949218749997,-45.17968750000003],[167.02265625000004,-45.299804687499986],[166.89267578125012,-45.24052734374999],[166.97949218749997,-45.17968750000003]]],[[[-176.17763671874997,-43.74033203124998],[-176.38173828124997,-43.86679687499998],[-176.40737304687497,-43.7609375],[-176.516552734375,-43.78476562499996],[-176.33359375000003,-44.02529296875004],[-176.51552734374997,-44.11660156249998],[-176.62934570312495,-44.036132812500014],[-176.55512695312504,-43.85195312499998],[-176.84765625000003,-43.82392578125004],[-176.56611328124995,-43.717578125000045],[-176.17763671874997,-43.74033203124998]]],[[[173.91464843750018,-40.86367187500004],[173.78085937500012,-40.921777343749966],[173.964453125,-40.71298828124998],[173.91464843750018,-40.86367187500004]]],[[[173.11533203125006,-41.27929687499997],[173.94716796875005,-40.92412109375],[173.79785156250003,-41.271972656249986],[173.99941406250005,-40.99326171874996],[174.30253906249996,-41.019531249999986],[174.03857421875003,-41.24189453125],[174.37011718750009,-41.1037109375],[174.06933593750009,-41.42949218750002],[174.08369140625015,-41.67080078124998],[174.2831054687501,-41.740625],[173.22119140624997,-42.976562499999986],[172.62402343749997,-43.27246093749996],[172.73476562500005,-43.35478515625003],[172.52666015625002,-43.464746093749966],[172.69345703125006,-43.444335937499986],[172.80703125000005,-43.620996093749994],[173.07324218750003,-43.676171874999966],[173.065625,-43.87460937499998],[172.50273437500002,-43.84365234374998],[172.48037109375,-43.726660156250034],[172.29658203125004,-43.867871093750026],[172.035546875,-43.70175781250002],[172.17978515625006,-43.895996093749986],[171.24072265624997,-44.26416015625003],[171.14628906250002,-44.9123046875],[170.99902343750003,-44.91142578124999],[171.11328125000003,-45.03925781250001],[170.7005859375,-45.68427734374997],[170.77626953125005,-45.870898437499974],[170.4191406250001,-45.94101562499996],[169.68662109375006,-46.55166015625002],[169.34228515625003,-46.62050781250001],[168.38212890625007,-46.60537109374995],[168.1891601562501,-46.362207031249966],[167.8419921875001,-46.366210937499986],[167.539453125,-46.14853515624996],[167.36894531250007,-46.24150390624999],[166.73154296875006,-46.19785156249998],[166.91669921875004,-45.95722656249998],[166.64990234374997,-46.04169921875004],[166.71796875000004,-45.88935546875001],[166.49316406249997,-45.9638671875],[166.48828124999997,-45.83183593750002],[167.0033203125,-45.71210937500004],[166.79765625000002,-45.64560546874999],[166.99082031250012,-45.531738281249986],[166.73398437500012,-45.54355468749999],[166.74306640625,-45.46845703124997],[166.91992187499997,-45.40791015624998],[166.86923828125006,-45.31123046875],[167.15566406250005,-45.410937499999974],[167.23007812500012,-45.29033203125],[167.02587890624997,-45.12363281249998],[167.25947265625004,-45.08222656249997],[167.19453125000004,-44.963476562500034],[167.41074218750006,-44.82792968750003],[167.4662109375,-44.958300781250045],[167.48496093750006,-44.77138671874998],[167.78701171875,-44.59501953125002],[167.90898437500002,-44.66474609375001],[167.85654296875012,-44.50068359374998],[168.45742187500005,-44.030566406250045],[169.17890625000004,-43.9130859375],[169.16953125000006,-43.77705078125],[169.83388671875,-43.53701171875004],[170.24023437499997,-43.163867187500045],[170.39609375000012,-43.18222656249996],[170.30283203125012,-43.10761718750004],[170.61181640625003,-43.091796875000014],[170.5236328125001,-43.00898437500001],[170.6654296875,-42.961230468749974],[170.73525390625005,-43.029785156249986],[170.96992187500004,-42.71835937499996],[171.01171875000003,-42.88505859374999],[171.027734375,-42.696093750000045],[171.31337890625005,-42.460156250000026],[171.48623046875,-41.7947265625],[171.94804687500002,-41.53867187499996],[172.13945312500002,-40.947265625000014],[172.640625,-40.51826171875001],[172.94365234375007,-40.51875],[172.73261718750004,-40.54375],[172.70439453125002,-40.6677734375],[172.988671875,-40.84824218749999],[173.11533203125006,-41.27929687499997]]],[[[175.54316406250015,-36.279296874999986],[175.34619140624997,-36.217773437499986],[175.3895507812501,-36.07773437499996],[175.54316406250015,-36.279296874999986]]],[[[173.26943359375,-34.93476562499998],[173.44785156250012,-34.844335937500034],[173.47265625000003,-34.94697265624998],[174.10400390625003,-35.14287109375002],[174.1431640625,-35.3],[174.32031250000003,-35.246679687500034],[174.58066406250018,-35.78554687500004],[174.39580078124996,-35.79736328124996],[174.8021484375,-36.30947265625001],[174.72246093750007,-36.84121093749998],[175.29951171875004,-36.99326171874996],[175.38535156250012,-37.206933593749966],[175.54248046874997,-37.2013671875],[175.46083984375005,-36.475683593750034],[175.77216796875004,-36.73515625],[176.10839843749997,-37.64511718749998],[177.27402343750012,-37.993457031249974],[178.0091796875,-37.55488281249998],[178.53623046875006,-37.69208984375004],[178.26767578125006,-38.551171875],[177.976171875,-38.72226562500005],[177.90878906250012,-39.23955078125],[177.52294921875003,-39.07382812499999],[177.07675781250012,-39.22177734375002],[176.93925781249996,-39.55527343750002],[177.10986328125009,-39.673144531250045],[176.8421875000001,-40.15781250000002],[175.98291015625003,-41.21328125000002],[175.30976562499998,-41.610644531249974],[175.16562500000012,-41.41738281249995],[174.88134765624997,-41.42402343749997],[174.8656250000001,-41.223046874999966],[174.63535156250012,-41.28945312499999],[175.1625,-40.62158203125],[175.25410156250004,-40.28935546875],[175.1559570312501,-40.11494140625],[175.00927734375009,-39.95214843749996],[173.93437500000013,-39.50908203125002],[173.76367187499997,-39.31875],[173.84433593750006,-39.13935546875001],[174.39843749999997,-38.96259765624998],[174.59736328124998,-38.78505859374995],[174.80166015625005,-37.895507812500014],[174.92802734375002,-37.80449218750003],[174.58583984374994,-37.09775390625002],[174.73427734375,-37.21523437499998],[174.92890625000004,-37.084765625000045],[174.78203125000013,-36.94375],[174.47558593750009,-36.94189453124997],[174.1888671875001,-36.492285156250034],[174.4015625000001,-36.60195312499999],[174.39277343750004,-36.24003906249999],[174.26787109375002,-36.16308593750003],[174.25371093749996,-36.24912109374998],[174.03642578125013,-36.12246093750001],[173.91445312499994,-35.908691406249986],[173.91728515625002,-36.01816406249999],[174.16640624999994,-36.327636718749986],[174.05468749999991,-36.35976562500004],[173.41220703125012,-35.542578125],[173.62617187500004,-35.31914062499996],[173.3763671875001,-35.50009765624996],[173.31396484375003,-35.44335937499996],[173.11669921874997,-35.205273437500026],[173.190625,-35.01621093749998],[172.70595703125005,-34.45517578124998],[173.04394531249997,-34.429101562499994],[172.96376953125,-34.53515625000003],[173.26943359375,-34.93476562499998]]]]},"properties":{"name":"New Zealand","childNum":9}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[58.722070312499994,20.21875],[58.640917968750074,20.210693359375057],[58.64121093750006,20.33735351562501],[58.884375,20.680566406250023],[58.95078125000006,20.516162109375017],[58.722070312499994,20.21875]]],[[[56.38798828125002,24.97919921875004],[56.640625,24.4703125],[57.12304687500003,23.980712890625],[58.773046875,23.517187499999977],[59.42939453125004,22.660839843749955],[59.82324218749997,22.50898437500004],[59.8,22.21992187500001],[59.37148437500005,21.498828125000017],[58.89570312500004,21.11279296874997],[58.47421875000006,20.406884765624966],[58.20898437500003,20.423974609374994],[58.245019531249994,20.599218749999977],[58.16943359375003,20.58950195312505],[57.86181640624997,20.24414062500003],[57.71416015625002,19.678417968749983],[57.81162109375006,19.01708984374997],[56.825976562500074,18.753515625],[56.3834960937501,17.98798828125001],[55.479101562500006,17.84326171875003],[55.25537109375003,17.58564453125004],[55.275195312500074,17.320898437500006],[55.06416015625004,17.038916015625034],[54.06816406250002,17.005517578124966],[53.60986328124997,16.75996093750004],[53.08564453125004,16.648388671874955],[51.977636718750006,18.996142578125074],[54.97734375000002,19.995947265625006],[55.64101562499999,22.001855468749994],[55.185839843750074,22.7041015625],[55.1999023437501,23.034765625000034],[55.53164062499999,23.81904296875001],[55.4684570312501,23.94111328125001],[55.98515625000002,24.063378906249966],[55.92861328125005,24.215136718750074],[55.76083984375006,24.24267578125],[55.795703125000074,24.868115234374955],[56.00058593750006,24.953222656249977],[56.06386718750005,24.73876953125],[56.38798828125002,24.97919921875004]]],[[[56.29785156250003,25.650683593750045],[56.144628906250006,25.690527343750006],[56.16748046875003,26.047460937499977],[56.08046875,26.06264648437505],[56.41308593749997,26.351171875000034],[56.29785156250003,25.650683593750045]]]]},"properties":{"name":"Oman","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[73.08961802927895,36.86435907947333],[73.08203125000107,36.43949943991182],[72.31128647748268,35.77290936638241],[73.13410859949555,34.82510160558277],[73.19895048106557,33.88770931468204],[74.00809389139292,33.25375789331485],[73.98984375,33.22119140625],[74.30361328125002,32.991796875],[74.30546875000002,32.810449218749994],[74.35458984375,32.768701171874994],[74.58828125000002,32.753222656249996],[74.632421875,32.770898437499994],[74.66328125000001,32.757666015625],[74.64335937500002,32.607714843749996],[74.68574218750001,32.493798828124994],[74.78886718750002,32.4578125],[74.9873046875,32.462207031249996],[75.33349609375,32.279199218749994],[75.25410156250001,32.14033203125],[75.13876953125,32.104785156249996],[75.07148437500001,32.08935546875],[74.73945312500001,31.948828125],[74.6357421875,31.88974609375],[74.55556640625002,31.818554687499997],[74.5259765625,31.76513671875],[74.50996093750001,31.712939453124996],[74.58183593750002,31.52392578125],[74.59394531250001,31.465380859374996],[74.53496093750002,31.261376953124994],[74.51767578125,31.185595703124996],[74.6103515625,31.112841796874996],[74.62578125000002,31.06875],[74.6328125,31.03466796875],[74.509765625,30.959667968749997],[74.38037109375,30.893408203125],[74.33935546875,30.8935546875],[74.00898437500001,30.519677734374994],[73.89931640625002,30.435351562499996],[73.88271484375002,30.3521484375],[73.92460937500002,30.28164062499999],[73.93339843750002,30.222070312499994],[73.88652343750002,30.162011718749994],[73.8091796875,30.093359375],[73.38164062500002,29.934375],[72.9033203125,29.028759765624997],[72.34189453125,28.751904296874997],[72.2919921875,28.697265625],[72.128515625,28.346337890624994],[71.94804687500002,28.177294921874996],[71.88886718750001,28.0474609375],[71.87031250000001,27.9625],[71.54296875,27.869873046875],[71.18476562500001,27.831640625],[70.87490234375002,27.714453125],[70.79794921875,27.709619140624994],[70.69160156250001,27.768994140624997],[70.62910156250001,27.937451171874997],[70.40371093750002,28.025048828124994],[70.24433593750001,27.934130859374996],[70.1939453125,27.894873046875],[70.14453125,27.849023437499994],[70.0498046875,27.694726562499994],[69.89628906250002,27.4736328125],[69.56796875,27.174609375],[69.47001953125002,26.804443359375],[70.11464843750002,26.548046875],[70.14921875000002,26.347558593749994],[70.1001953125,25.910058593749994],[70.2646484375,25.70654296875],[70.3251953125,25.685742187499997],[70.44853515625002,25.681347656249997],[70.505859375,25.685302734375],[70.56953125000001,25.705957031249994],[70.6484375,25.666943359374997],[70.65205078125001,25.422900390625003],[70.87773437500002,25.06298828125],[70.95087890625001,24.8916015625],[71.02070312500001,24.75766601562499],[71.0478515625,24.687744140625],[71.00234375000002,24.65390625],[70.97636718750002,24.61875],[70.96982421875,24.571875],[71.04531250000002,24.429980468750003],[71.04404296875,24.400097656249997],[70.98281250000002,24.361035156249997],[70.928125,24.362353515625003],[70.88623046875,24.34375],[70.80507812500002,24.261962890625],[70.76728515625001,24.245410156250003],[70.71630859375,24.237988281249997],[70.65947265625002,24.24609375],[70.57929687500001,24.279052734375],[70.55585937500001,24.331103515625003],[70.5650390625,24.385791015625003],[70.54677734375002,24.41831054687499],[70.2890625,24.35629882812499],[70.0982421875,24.2875],[69.80517578125,24.165234375],[69.71621093750002,24.172607421875],[69.63417968750002,24.22519531249999],[69.5591796875,24.273095703124994],[69.44345703125,24.275390625],[69.23505859375001,24.268261718749997],[69.11953125000002,24.26865234374999],[69.05156250000002,24.286328125],[68.98457031250001,24.273095703124994],[68.90078125000002,24.292431640624997],[68.86347656250001,24.266503906249994],[68.82832031250001,24.26401367187499],[68.78115234375002,24.313720703125],[68.75898437500001,24.30722656249999],[68.73964843750002,24.2919921875],[68.728125,24.265625],[68.72412109375,23.96469726562499],[68.48867187500002,23.967236328124997],[68.38125,23.950878906249997],[68.28251953125002,23.927978515625],[68.1650390625,23.857324218749994],[68.11552734375002,23.753369140624997],[67.8599609375,23.90268554687499],[67.66845703125,23.810986328124997],[67.309375,24.1748046875],[67.171484375,24.756103515625],[66.70302734375002,24.8609375],[66.69863281250002,25.226318359375],[66.32421875,25.601806640625],[66.13115234375002,25.49326171874999],[66.46767578125002,25.4453125],[64.77666015625002,25.307324218749997],[64.65898437500002,25.18408203125],[64.059375,25.40292968749999],[63.556640625,25.353173828124994],[63.49140625000001,25.210839843749994],[61.56689453125,25.186328125],[61.587890625,25.20234375],[61.61542968750001,25.2861328125],[61.64013671875,25.584619140624994],[61.67138671875,25.6923828125],[61.66181640625001,25.751269531250003],[61.66865234375001,25.768994140624997],[61.73769531250002,25.82109375],[61.75439453125,25.84335937499999],[61.78076171875,25.995849609375],[61.80996093750002,26.165283203125],[61.842382812500006,26.225927734375],[62.1259765625,26.368994140625],[62.239355468750006,26.35703125],[62.31230468750002,26.490869140624994],[63.168066406250006,26.665576171874996],[63.186132812500006,26.837597656249997],[63.24160156250002,26.86474609375],[63.25039062500002,26.879248046875],[63.24208984375002,27.077685546874996],[63.30517578125,27.124560546874996],[63.30156250000002,27.15146484375],[63.25625,27.207910156249994],[63.19609375000002,27.243945312499996],[63.16679687500002,27.252490234374996],[62.75273437500002,27.265625],[62.782324218750006,27.800537109375],[62.7625,28.202050781249994],[61.88984375000001,28.546533203124994],[61.15214843750002,29.542724609375],[61.0341796875,29.663427734375],[60.843359375,29.858691406249996],[61.22441406250002,29.749414062499994],[62.0009765625,29.530419921874994],[62.4765625,29.408349609374994],[63.56757812500001,29.497998046874997],[64.09873046875,29.391943359375],[64.39375,29.544335937499994],[65.09550781250002,29.559472656249994],[66.23125,29.86572265625],[66.346875,30.802783203124996],[66.82929687500001,31.263671875],[67.45283203125001,31.234619140625],[67.737890625,31.343945312499997],[67.57822265625,31.506494140624994],[68.16103515625002,31.802978515625],[68.59765625,31.802978515625],[68.86894531250002,31.634228515624997],[69.279296875,31.936816406249996],[69.24140625000001,32.433544921875],[69.5015625,33.020068359374996],[70.26113281250002,33.289013671875],[69.8896484375,34.007275390625],[70.65400390625001,33.952294921874994],[71.05156250000002,34.049707031249994],[71.095703125,34.369433593749996],[70.965625,34.53037109375],[71.62050781250002,35.183007812499994],[71.57197265625001,35.546826171875],[71.18505859375,36.04208984375],[71.23291015625,36.12177734375],[72.24980468750002,36.734716796875],[73.08961802927895,36.86435907947333]]]},"properties":{"name":"Pakistan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-81.60327148437497,7.332812499999989],[-81.85205078125003,7.453320312500026],[-81.812158203125,7.59238281250002],[-81.72875976562494,7.62119140625002],[-81.60327148437497,7.332812499999989]]],[[[-78.89833984375002,8.27426757812502],[-78.960595703125,8.435839843749989],[-78.88325195312495,8.460253906249989],[-78.89833984375002,8.27426757812502]]],[[[-77.37421874999993,8.65830078125002],[-77.47851562499994,8.498437500000037],[-77.19599609374995,7.972460937500003],[-77.53828124999995,7.56625976562502],[-77.76191406249995,7.698828125000034],[-77.90117187499999,7.229345703125048],[-78.42158203124995,8.060986328125011],[-78.28735351562497,8.091796874999972],[-78.14189453125002,8.386083984374977],[-77.76054687499993,8.133251953124983],[-78.09946289062498,8.496972656250009],[-78.22304687500002,8.396630859374994],[-78.39921874999993,8.505664062500003],[-78.40986328124998,8.35532226562502],[-78.51406249999997,8.628173828125],[-79.08637695312495,8.997167968750034],[-79.50708007812494,8.97006835937502],[-79.68745117187493,8.850976562500009],[-79.81591796875,8.639208984375031],[-79.75043945312498,8.595507812500017],[-80.458984375,8.213867187499972],[-80.45810546875,8.077050781249994],[-80.01123046875,7.500048828125031],[-80.66669921874995,7.225683593750006],[-80.90122070312503,7.277148437500017],[-81.06386718749994,7.89975585937502],[-81.26840820312495,7.625488281250014],[-81.50415039062503,7.721191406249972],[-81.72763671875,8.137548828124977],[-82.15986328124995,8.19482421875],[-82.23544921874998,8.311035156250057],[-82.67954101562503,8.321972656249969],[-82.86611328124994,8.246337890625014],[-82.87934570312498,8.07065429687502],[-83.02734375,8.337744140624991],[-82.86162109374999,8.453515625000037],[-82.84477539062493,8.489355468749963],[-82.85571289062494,8.635302734375031],[-82.91704101562502,8.740332031250034],[-82.88198242187497,8.805322265625037],[-82.72783203125002,8.916064453125031],[-82.78305664062498,8.990283203124974],[-82.88134765625003,9.055859375000011],[-82.94033203124997,9.060107421874989],[-82.93984374999994,9.449169921875026],[-82.92504882812494,9.469042968749989],[-82.88896484374999,9.481005859375017],[-82.86015625,9.511474609375014],[-82.84399414062497,9.570800781250014],[-82.801025390625,9.591796875000028],[-82.64409179687502,9.505859375000028],[-82.56357421875003,9.576660156249972],[-82.50034179687503,9.523242187500017],[-82.37080078124993,9.428564453124991],[-82.33974609375,9.209179687499983],[-82.18813476562502,9.191748046874977],[-82.24418945312499,9.031494140625014],[-82.07788085937503,8.93486328124996],[-81.78022460937495,8.957226562499983],[-81.89448242187495,9.140429687500003],[-81.35478515624996,8.78056640624996],[-80.83867187499999,8.887207031250014],[-80.12709960937497,9.20991210937504],[-79.57729492187497,9.597851562500026],[-78.08276367187494,9.236279296874997],[-77.37421874999993,8.65830078125002]]]]},"properties":{"name":"Panama","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[-73.137353515625,-6.4658203125],[-73.75810546874999,-6.90576171875],[-73.79301757812499,-7.135058593750003],[-73.758203125,-7.172753906250009],[-73.72041015625,-7.309277343750011],[-73.964306640625,-7.37890625],[-73.95849609375,-7.506640625],[-73.98173828124999,-7.535742187500006],[-74.00205078124999,-7.556054687500009],[-73.98173828124999,-7.585058593750006],[-73.946875,-7.611230468750009],[-73.89462890624999,-7.65478515625],[-73.82207031249999,-7.738964843750011],[-73.76689453124999,-7.753515625],[-73.72041015625,-7.782519531250003],[-73.73203125,-7.875390625],[-73.54912109374999,-8.345800781250006],[-73.39814453125,-8.458984375],[-73.36040039062499,-8.479296875],[-73.351708984375,-8.51416015625],[-73.35673828124999,-8.566992187500006],[-73.30244140625,-8.654003906250011],[-73.203125,-8.719335937500006],[-73.0705078125,-8.8828125],[-72.9740234375,-8.9931640625],[-72.970361328125,-9.1201171875],[-73.08984375,-9.265722656250006],[-73.209423828125,-9.411425781250003],[-72.379052734375,-9.51015625],[-72.181591796875,-10.003710937500003],[-71.33940429687499,-9.988574218750003],[-71.11528320312499,-9.852441406250009],[-71.041748046875,-9.81875],[-70.6369140625,-9.478222656250011],[-70.60791015625,-9.463671875],[-70.54111328124999,-9.4375],[-70.57016601562499,-9.48984375],[-70.592236328125,-9.54345703125],[-70.59916992187499,-9.620507812500009],[-70.642333984375,-11.01025390625],[-70.59653320312499,-10.976855468750003],[-70.53325195312499,-10.946875],[-70.45087890625,-11.024804687500009],[-70.39228515625,-11.05859375],[-70.3419921875,-11.066699218750003],[-70.29038085937499,-11.064257812500003],[-70.22006835937499,-11.04765625],[-70.06630859375,-10.982421875],[-69.9603515625,-10.929882812500011],[-69.839794921875,-10.933398437500003],[-69.6740234375,-10.9541015625],[-69.57861328125,-10.951757812500006],[-68.68525390625,-12.501953125],[-68.97861328124999,-12.880078125000011],[-69.07412109375,-13.682812500000011],[-68.87089843749999,-14.169726562500003],[-69.35947265624999,-14.7953125],[-69.37470703125,-14.962988281250006],[-69.17246093749999,-15.236621093750003],[-69.4208984375,-15.640625],[-69.21757812499999,-16.14912109375001],[-68.8427734375,-16.337890625],[-69.03291015625,-16.47597656250001],[-69.020703125,-16.6421875],[-69.62485351562499,-17.2001953125],[-69.645703125,-17.24853515625],[-69.521923828125,-17.388964843750003],[-69.510986328125,-17.46035156250001],[-69.51108398437499,-17.5048828125],[-69.5109375,-17.50605468750001],[-69.58642578125,-17.5732421875],[-69.684765625,-17.64980468750001],[-69.85209960937499,-17.70380859375001],[-69.80258789062499,-17.990234375],[-69.92636718749999,-18.2060546875],[-70.41826171874999,-18.34560546875001],[-71.33696289062499,-17.68251953125001],[-71.5322265625,-17.29433593750001],[-72.46767578125,-16.708105468750006],[-73.727685546875,-16.20166015625],[-75.104248046875,-15.411914062500003],[-75.533642578125,-14.89921875],[-75.93388671874999,-14.63359375],[-76.37646484375,-13.863085937500003],[-76.259228515625,-13.802832031250006],[-76.2236328125,-13.371191406250006],[-76.83212890624999,-12.348730468750006],[-77.152734375,-12.060351562500003],[-77.2203125,-11.663378906250003],[-77.633203125,-11.287792968750011],[-77.736083984375,-10.83671875],[-78.18559570312499,-10.089062500000011],[-78.76225585937499,-8.616992187500003],[-79.37724609374999,-7.835546875],[-79.99497070312499,-6.768945312500009],[-81.142041015625,-6.056738281250006],[-81.164306640625,-5.875292968750003],[-80.9306640625,-5.8408203125],[-80.88193359374999,-5.635058593750003],[-81.33662109375,-4.66953125],[-81.283203125,-4.322265625],[-80.503662109375,-3.49609375],[-80.324658203125,-3.387890625000011],[-80.24375,-3.576757812500006],[-80.19414062499999,-3.905859375],[-80.23051757812499,-3.924023437500011],[-80.26689453124999,-3.948828125],[-80.30327148437499,-4.005078125000011],[-80.43720703125,-3.978613281250006],[-80.49013671875,-4.010058593750003],[-80.510009765625,-4.069531250000011],[-80.49345703124999,-4.119140625],[-80.4884765625,-4.16552734375],[-80.453759765625,-4.205175781250006],[-80.35288085937499,-4.20849609375],[-80.44384765625,-4.335839843750009],[-80.4884765625,-4.393652343750006],[-80.47856445312499,-4.430078125],[-80.42416992187499,-4.46142578125],[-80.38349609375,-4.463671875],[-80.293359375,-4.416796875],[-80.1974609375,-4.31103515625],[-80.13955078125,-4.296093750000011],[-80.06352539062499,-4.327539062500009],[-79.962890625,-4.390332031250011],[-79.8451171875,-4.445898437500006],[-79.797265625,-4.476367187500003],[-79.71098632812499,-4.467578125],[-79.63852539062499,-4.454882812500003],[-79.57768554687499,-4.500585937500006],[-79.51616210937499,-4.539160156250006],[-79.501904296875,-4.670605468750011],[-79.45576171875,-4.766210937500006],[-79.3994140625,-4.840039062500011],[-79.33095703125,-4.927832031250006],[-79.26811523437499,-4.957617187500006],[-79.186669921875,-4.958203125000011],[-79.07626953124999,-4.990625],[-79.03330078124999,-4.969140625],[-78.995263671875,-4.908007812500003],[-78.97539062499999,-4.873242187500011],[-78.919189453125,-4.8583984375],[-78.92578125,-4.770703125000011],[-78.9076171875,-4.714453125],[-78.8615234375,-4.6650390625],[-78.68603515625,-4.562402343750009],[-78.64799804687499,-4.248144531250006],[-78.345361328125,-3.397363281250009],[-78.240380859375,-3.472558593750009],[-77.860595703125,-2.981640625000011],[-76.6791015625,-2.562597656250006],[-76.089794921875,-2.133105468750003],[-75.570556640625,-1.53125],[-75.42041015625,-0.962207031250003],[-75.40805664062499,-0.92431640625],[-75.24960937499999,-0.951855468750011],[-75.259375,-0.590136718750003],[-75.42470703125,-0.408886718750011],[-75.49106445312499,-0.248339843750003],[-75.56059570312499,-0.200097656250009],[-75.63203125,-0.157617187500009],[-75.62626953124999,-0.122851562500003],[-75.340478515625,-0.1421875],[-75.13837890625,-0.050488281250011],[-74.8017578125,-0.200097656250009],[-74.78046875,-0.24453125],[-74.75537109375,-0.298632812500003],[-74.691650390625,-0.335253906250003],[-74.616357421875,-0.370019531250009],[-74.555078125,-0.429882812500011],[-74.5138671875,-0.470117187500009],[-74.46518554687499,-0.517675781250006],[-74.41787109375,-0.580664062500006],[-74.334423828125,-0.850878906250003],[-74.28388671875,-0.927832031250006],[-74.24638671874999,-0.970605468750009],[-74.05439453125,-1.028613281250003],[-73.98681640625,-1.09814453125],[-73.926953125,-1.125195312500011],[-73.86318359375,-1.196679687500009],[-73.664306640625,-1.248828125],[-73.4962890625,-1.693066406250011],[-73.19697265625,-1.830273437500011],[-73.1544921875,-2.278222656250009],[-72.9896484375,-2.339746093750009],[-72.94111328125,-2.39404296875],[-72.21845703125,-2.400488281250006],[-71.98427734375,-2.3265625],[-71.93247070312499,-2.288671875],[-71.86728515624999,-2.227734375000011],[-71.802734375,-2.166308593750003],[-71.75253906249999,-2.152734375],[-71.55947265625,-2.22421875],[-71.39697265625,-2.334082031250006],[-71.19638671874999,-2.313085937500006],[-71.11337890624999,-2.245410156250003],[-71.027294921875,-2.225781250000011],[-70.96855468749999,-2.206835937500003],[-70.70537109374999,-2.341992187500011],[-70.64799804687499,-2.40576171875],[-70.57587890625,-2.418261718750003],[-70.29462890625,-2.552539062500003],[-70.24443359374999,-2.606542968750006],[-70.16474609375,-2.639843750000011],[-70.095849609375,-2.658203125],[-70.735107421875,-3.781542968750003],[-70.5296875,-3.866406250000011],[-70.48583984375,-3.869335937500011],[-70.42109375,-3.849609375],[-70.37919921874999,-3.81875],[-70.339501953125,-3.814355468750009],[-70.2984375,-3.84423828125],[-70.24028320312499,-3.882714843750009],[-70.16752929687499,-4.050195312500009],[-70.0171875,-4.162011718750009],[-69.96591796874999,-4.2359375],[-69.97202148437499,-4.301171875],[-70.00395507812499,-4.327246093750006],[-70.05332031249999,-4.333105468750006],[-70.12880859375,-4.28662109375],[-70.23916015625,-4.301171875],[-70.31689453125,-4.246972656250009],[-70.34365234375,-4.193652343750003],[-70.40463867187499,-4.150097656250011],[-70.5306640625,-4.167578125],[-70.72158203125,-4.158886718750011],[-70.79951171875,-4.17333984375],[-70.97368164062499,-4.350488281250009],[-71.8447265625,-4.50439453125],[-72.256787109375,-4.748925781250009],[-72.35283203124999,-4.786035156250009],[-72.468994140625,-4.901269531250009],[-72.608349609375,-5.009570312500003],[-72.69873046875,-5.0671875],[-72.83193359375,-5.09375],[-72.88706054687499,-5.122753906250011],[-72.9798828125,-5.634863281250006],[-73.16289062499999,-5.933398437500003],[-73.209375,-6.028710937500009],[-73.235546875,-6.0984375],[-73.137353515625,-6.4658203125]]]},"properties":{"name":"Peru","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[120.250390625,5.256591796875043],[119.82148437500004,5.06953125000004],[120.1652343750001,5.332421875000037],[120.250390625,5.256591796875043]]],[[[121.159375,6.075634765625011],[121.41103515625005,5.939843749999966],[121.29443359374997,5.869970703125034],[120.8763671875,5.95263671875],[121.159375,6.075634765625011]]],[[[122.09287109375012,6.428320312500006],[121.95917968750004,6.415820312500045],[121.83203125000003,6.664062499999986],[122.0583007812501,6.740722656249972],[122.32353515625002,6.602246093750011],[122.09287109375012,6.428320312500006]]],[[[122.93710937500006,7.409130859374983],[122.80468750000003,7.315966796875017],[122.82216796875,7.428466796875014],[122.93710937500006,7.409130859374983]]],[[[117.07988281250007,7.883398437499977],[117.02832031249997,7.807519531249966],[116.96953125000007,7.894921875],[116.9935546875,8.050537109375014],[117.07705078125,8.069140624999974],[117.07988281250007,7.883398437499977]]],[[[117.35527343750002,8.21464843749996],[117.28701171875,8.191015625000034],[117.28085937500006,8.314990234374974],[117.35527343750002,8.21464843749996]]],[[[124.80664062500003,9.142626953125003],[124.66582031250002,9.132324218750043],[124.65332031250003,9.225830078125],[124.80664062500003,9.142626953125003]]],[[[123.69765625000005,9.237304687500028],[123.61445312500004,9.103320312499989],[123.49345703125002,9.192089843750054],[123.69765625000005,9.237304687500028]]],[[[126.00595703125006,9.320947265625009],[126.19335937499997,9.276708984374963],[126.30458984375,8.952050781249994],[126.13955078125005,8.59565429687504],[126.36533203125012,8.483886718750014],[126.45869140625004,8.20283203125004],[126.43535156250002,7.832812499999974],[126.57011718750002,7.677246093749986],[126.58154296875003,7.247753906249969],[126.1920898437501,6.852539062500014],[126.18935546875,6.309667968749991],[125.82441406250004,7.333300781249989],[125.68925781250007,7.263037109374977],[125.38066406250007,6.689941406250014],[125.58847656250012,6.465771484374997],[125.66796874999997,5.97866210937498],[125.34648437500002,5.598974609374977],[125.23154296875006,6.069531250000011],[124.92734375000006,5.875341796874977],[124.21279296875,6.233251953124977],[124.078125,6.404443359375037],[123.98525390625,6.993701171875003],[124.20664062500006,7.396435546874983],[123.66582031250002,7.817773437500023],[123.49306640625,7.80791015624996],[123.39091796875007,7.407519531250017],[123.09667968749997,7.700439453125],[122.8429687500001,7.529296875000043],[122.79179687500002,7.72246093749996],[122.61621093749997,7.763134765624983],[122.14248046875,6.949658203124997],[121.96425781250005,6.96821289062504],[121.92460937500002,7.199511718750003],[122.24335937500004,7.945117187500031],[122.91113281250003,8.156445312499997],[123.05058593750002,8.433935546875048],[123.43457031249997,8.70332031250004],[123.84921875000006,8.432714843749977],[123.79941406250006,8.049121093749989],[124.19765625,8.229541015624974],[124.40488281250006,8.599853515625014],[124.7311523437501,8.562988281250043],[124.86894531250002,8.972265625000034],[125.141015625,8.86875],[125.20966796875004,9.027148437500017],[125.49873046875004,9.014746093749977],[125.47128906250006,9.756787109374983],[126.00595703125006,9.320947265625009]]],[[[126.059375,9.766210937500034],[125.99121093750003,9.838525390625023],[126.07382812500006,10.059228515625051],[126.1725585937501,9.79995117187498],[126.059375,9.766210937500034]]],[[[124.59384765625006,9.787207031249963],[124.1224609375,9.599316406249969],[123.93564453125012,9.623974609375011],[123.81718750000002,9.817382812499986],[124.17285156250003,10.135205078124983],[124.33574218750002,10.159912109375043],[124.57714843749997,10.026708984374991],[124.59384765625006,9.787207031249963]]],[[[125.69023437500007,9.914453125000037],[125.49482421875004,10.118701171875003],[125.66679687500002,10.440136718750026],[125.69023437500007,9.914453125000037]]],[[[119.91621093750004,10.485986328125037],[119.79316406250004,10.455273437499997],[119.85205078124997,10.64013671875],[120.00839843750012,10.570117187500031],[119.91621093750004,10.485986328125037]]],[[[122.64951171875012,10.472705078125003],[122.53837890625002,10.424951171875037],[122.5375,10.607568359375023],[122.70126953125006,10.740625],[122.64951171875012,10.472705078125003]]],[[[123.13085937500003,9.064111328124994],[122.99472656250006,9.058837890624986],[122.8666015625,9.319824218750043],[122.5625,9.482812500000037],[122.39951171875006,9.823046874999989],[122.47148437500007,9.961523437500034],[122.85556640625006,10.0869140625],[122.81699218750012,10.503808593750023],[122.98330078125,10.886621093750037],[123.25664062500007,10.99394531249996],[123.51064453125005,10.923046875],[123.5675781250001,10.780761718750057],[123.16201171875,9.864257812500028],[123.1498046875,9.606152343750026],[123.32050781250004,9.27294921875],[123.13085937500003,9.064111328124994]]],[[[123.37031250000004,9.449609375000023],[123.38623046874997,9.967089843750017],[124.03886718750002,11.273535156249991],[124.00498046875012,10.40009765625004],[123.70048828125007,10.128320312500009],[123.37031250000004,9.449609375000023]]],[[[123.75703125000004,11.28330078125002],[123.815625,11.15073242187502],[123.73671875,11.151464843749991],[123.75703125000004,11.28330078125002]]],[[[117.31113281250012,8.439599609375051],[117.21855468750007,8.367285156249963],[117.34990234375002,8.713574218749997],[119.22382812500004,10.477294921875043],[119.30566406250003,10.9736328125],[119.55332031250012,11.31352539062496],[119.52666015625002,10.953173828125003],[119.68691406250005,10.500341796875034],[119.36933593750004,10.327294921875037],[119.19150390625012,10.061083984374989],[118.78212890625005,9.91611328125002],[118.4349609375,9.256005859375009],[117.31113281250012,8.439599609375051]]],[[[119.86142578125006,11.52534179687504],[119.83066406250012,11.375683593750011],[119.72998046874997,11.431933593750017],[119.86142578125006,11.52534179687504]]],[[[124.574609375,11.343066406250031],[124.92998046875002,11.372851562499974],[125.02656250000004,11.21171875],[125.01318359374997,10.785693359374989],[125.26845703125005,10.307714843750048],[125.14257812499997,10.189453125000028],[124.9875,10.36757812499998],[125.02656250000004,10.033105468749966],[124.78076171874997,10.16806640625002],[124.78671875000012,10.781396484375009],[124.66269531250006,10.961962890625017],[124.44550781250004,10.923583984375014],[124.33066406250012,11.535205078125003],[124.574609375,11.343066406250031]]],[[[124.60839843750003,11.492187500000043],[124.48349609375006,11.485839843749986],[124.36035156250003,11.665917968749994],[124.5109375000001,11.687109375000048],[124.60839843750003,11.492187500000043]]],[[[122.49619140625006,11.615087890625034],[122.83808593750004,11.595654296874983],[122.89453125000003,11.44130859374998],[123.15830078125012,11.53554687499999],[123.11953125,11.286816406250026],[122.8029296875001,10.99003906249996],[122.76992187500005,10.823828125000034],[121.95400390625,10.444384765625003],[122.10351562499997,11.64291992187502],[121.91601562499997,11.854345703125006],[122.02919921875005,11.895410156250023],[122.49619140625006,11.615087890625034]]],[[[120.03876953125004,11.703320312499969],[119.94492187500006,11.690722656249989],[119.86093750000006,11.953955078124963],[120.03593750000002,11.917236328125028],[120.03876953125004,11.703320312499969]]],[[[120.1,12.167675781249983],[120.22822265625004,12.219824218750034],[120.31455078125012,12.012402343749969],[120.01054687500002,12.008251953125011],[119.88574218749997,12.299853515625003],[120.1,12.167675781249983]]],[[[122.65449218750004,12.309033203125011],[122.42294921875006,12.455078125],[122.60361328125006,12.49160156249998],[122.65449218750004,12.309033203125011]]],[[[125.23955078125002,12.527880859375003],[125.32021484375,12.321826171875031],[125.53564453125003,12.191406250000028],[125.49179687500006,11.594335937499977],[125.57353515625002,11.238232421874997],[125.73564453125002,11.049609375000017],[125.23339843749997,11.145068359375017],[125.03427734375012,11.341259765625026],[124.91699218750003,11.558398437500031],[124.99501953125,11.764941406250003],[124.445703125,12.152783203124969],[124.29472656250007,12.569335937500014],[125.23955078125002,12.527880859375003]]],[[[123.71660156250007,12.287353515625028],[124.04033203125002,11.966796875],[124.04550781250012,11.752441406250028],[123.47373046875006,12.21665039062502],[123.15781250000012,11.925634765624963],[123.23642578125012,12.583496093750057],[123.71660156250007,12.287353515625028]]],[[[122.09404296875002,12.354882812500023],[122.01396484375002,12.105615234375037],[121.9232421875,12.331298828125014],[122.00156250000006,12.598535156250009],[122.14501953124997,12.652636718750017],[122.09404296875002,12.354882812500023]]],[[[123.77539062499997,12.453906250000031],[123.77910156250002,12.366259765625031],[123.62148437500005,12.67490234375002],[123.77539062499997,12.453906250000031]]],[[[123.28183593750006,12.85341796874998],[123.36718750000003,12.70083007812498],[122.95751953124997,13.107177734374986],[123.28183593750006,12.85341796874998]]],[[[120.70439453125002,13.479492187499986],[121.20273437500006,13.432324218749969],[121.52275390625007,13.131201171874991],[121.540625,12.63818359375],[121.39433593750002,12.300585937499974],[121.23671875000005,12.218798828125003],[120.92216796875002,12.51162109374998],[120.65136718749997,13.169140625],[120.33847656250012,13.412353515624986],[120.40126953125,13.517041015624997],[120.70439453125002,13.479492187499986]]],[[[121.91484375000002,13.540332031250031],[122.11455078125002,13.463183593750031],[122.00488281249997,13.204980468750009],[121.82919921875006,13.328613281249972],[121.91484375000002,13.540332031250031]]],[[[124.35361328125006,13.632226562500009],[124.17539062500012,13.531542968750017],[124.03886718750002,13.663134765625003],[124.22490234375007,14.077587890624969],[124.41718750000004,13.871044921874997],[124.35361328125006,13.632226562500009]]],[[[122.03349609375002,15.005029296875009],[121.93300781250005,14.656054687500045],[121.83984374999997,15.038134765625003],[122.03349609375002,15.005029296875009]]],[[[121.10156249999997,18.615283203125017],[121.84560546875,18.29541015625003],[122.03847656250005,18.32792968749999],[122.14667968750004,18.486572265625],[122.26552734375005,18.458837890625034],[122.15234374999997,17.664404296875006],[122.51914062500012,17.124853515625034],[122.13515625000005,16.18481445312503],[121.59531250000012,15.933251953125023],[121.60703125000006,15.669824218749994],[121.39228515625004,15.324414062499969],[121.69541015625006,14.7373046875],[121.62792968749997,14.581152343749977],[121.76660156249997,14.16806640625002],[122.21171875000002,13.930175781250057],[122.2875,13.996191406250006],[122.19970703125003,14.148046875000034],[122.6271484375001,14.317529296875009],[122.93417968750012,14.18808593750002],[123.101953125,13.750244140624986],[123.29697265625012,13.836425781250043],[123.32031249999997,14.061669921875023],[123.81572265625002,13.837109375000011],[123.80625000000012,13.721728515625045],[123.54960937500007,13.645751953125014],[123.81923828125,13.269482421875011],[123.78515625000003,13.110546875000054],[124.14277343750004,13.035791015625009],[124.0597656250001,12.567089843749997],[123.87783203125005,12.689697265625014],[123.94853515625007,12.916406250000023],[123.31093750000005,13.044091796875009],[123.16328125000004,13.44174804687502],[122.59521484374997,13.90761718749998],[122.46796875000004,13.886718749999986],[122.66787109375,13.395361328124991],[122.59990234375002,13.194140625000031],[122.37656250000012,13.520605468750006],[121.77792968750006,13.93764648437498],[121.50107421875006,13.8421875],[121.344140625,13.649121093749997],[121.09550781250007,13.679492187500045],[120.84072265625,13.884716796875026],[120.637109375,13.804492187500031],[120.61679687500006,14.188037109375003],[120.9220703125001,14.493115234374983],[120.94130859375,14.645068359375031],[120.58369140625004,14.88125],[120.58867187500002,14.483105468749983],[120.43876953125002,14.453369140624972],[120.25078125000002,14.793310546875034],[120.08212890625012,14.851074218749986],[119.77255859375012,16.25512695312503],[119.83076171875004,16.326562500000023],[120.15976562500012,16.047656250000045],[120.36875,16.109570312499955],[120.35839843749997,17.63818359375],[120.59970703125012,18.507861328125074],[121.10156249999997,18.615283203125017]]],[[[121.92167968750007,18.89472656250001],[121.82519531250003,18.842724609374983],[121.94335937500003,19.010449218749955],[121.92167968750007,18.89472656250001]]],[[[121.52089843750005,19.361962890624994],[121.53125,19.271337890625006],[121.37460937500006,19.356298828124977],[121.52089843750005,19.361962890624994]]]]},"properties":{"name":"Philippines","childNum":37}},{"geometry":{"type":"Polygon","coordinates":[[[134.5954101562501,7.382031249999969],[134.51572265625012,7.525781250000037],[134.65117187500002,7.712109374999983],[134.5954101562501,7.382031249999969]]]},"properties":{"name":"Palau","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[153.53613281249997,-11.476171874999949],[153.75986328125006,-11.586328125],[153.55371093749997,-11.630566406249969],[153.28681640625004,-11.516992187500009],[153.20361328124997,-11.32412109374998],[153.53613281249997,-11.476171874999949]]],[[[154.28076171874997,-11.36142578125002],[154.12119140625006,-11.425683593749966],[154.02343750000003,-11.347949218750031],[154.28076171874997,-11.36142578125002]]],[[[150.89873046875002,-10.565332031250023],[150.88466796875,-10.643457031250037],[150.78574218750006,-10.603417968749966],[150.89873046875002,-10.565332031250023]]],[[[151.08095703125,-10.020117187499963],[151.29648437500012,-9.956738281250026],[151.230859375,-10.194726562500009],[150.95917968750004,-10.092578124999989],[150.77607421875004,-9.70908203125002],[151.08095703125,-10.020117187499963]]],[[[150.52841796875006,-9.34658203124998],[150.78867187500006,-9.417968749999957],[150.89404296875003,-9.667480468749986],[150.43623046875004,-9.624609374999949],[150.5084960937501,-9.536132812499957],[150.43730468750007,-9.359960937500034],[150.52841796875006,-9.34658203124998]]],[[[150.3454101562501,-9.493847656249955],[150.10976562500005,-9.361914062499991],[150.20830078125002,-9.206347656250003],[150.32011718750007,-9.264160156249972],[150.3454101562501,-9.493847656249955]]],[[[152.63095703125012,-8.959375],[152.95292968750007,-9.07011718749996],[152.96689453125006,-9.208984375000014],[152.51513671874997,-9.009863281250034],[152.63095703125012,-8.959375]]],[[[151.10683593750005,-8.733496093749949],[151.12412109375012,-8.804882812500011],[151.00498046875006,-8.523828124999952],[151.117578125,-8.41884765624998],[151.10683593750005,-8.733496093749949]]],[[[143.58681640625005,-8.481738281250003],[143.321875,-8.367578125],[143.5814453125,-8.390917968749974],[143.58681640625005,-8.481738281250003]]],[[[148.02578125,-5.826367187500011],[147.78105468750007,-5.627246093749946],[147.7946289062501,-5.492382812500011],[148.05478515625006,-5.61152343750004],[148.02578125,-5.826367187500011]]],[[[155.95761718750006,-6.686816406249989],[155.71933593750012,-6.862792968749957],[155.34404296875007,-6.721679687499986],[155.20214843750003,-6.3076171875],[154.75927734375003,-5.931347656249997],[154.72929687500002,-5.444433593750006],[155.09384765625006,-5.620214843750034],[155.46699218750004,-6.145117187500034],[155.82255859375002,-6.38046875000002],[155.95761718750006,-6.686816406249989]]],[[[147.17626953124997,-5.431933593749946],[147.00585937499997,-5.30703125],[147.1310546875001,-5.190820312500037],[147.17626953124997,-5.431933593749946]]],[[[154.64726562500002,-5.43271484375002],[154.54003906250003,-5.11083984375],[154.63261718750007,-5.013867187499955],[154.72714843750006,-5.218066406249989],[154.64726562500002,-5.43271484375002]]],[[[146.01933593750007,-4.726171874999963],[145.88359375000007,-4.66748046875],[145.9958007812501,-4.539257812499983],[146.01933593750007,-4.726171874999963]]],[[[151.915625,-4.296777343749966],[152.11718749999997,-4.212207031249974],[152.40566406250005,-4.340722656249952],[152.35117187500006,-4.82216796874998],[151.98369140625007,-5.07441406250004],[152.14296875,-5.357031249999963],[152.07705078125,-5.458300781249989],[151.86542968750004,-5.564843750000023],[151.51513671874997,-5.552343749999963],[151.22929687500002,-5.919921874999986],[150.47353515625,-6.263378906249969],[149.65253906250004,-6.290429687499966],[149.38232421874997,-6.078125],[149.0990234375,-6.116992187499989],[148.33720703125007,-5.669433593750014],[148.43203125,-5.471777343749991],[149.35888671875003,-5.583984375000014],[149.8314453125,-5.524121093749997],[149.96279296875,-5.447753906249972],[150.0900390625001,-5.011816406249977],[150.1703125,-5.070605468749974],[150.0724609375001,-5.309570312499986],[150.18310546874997,-5.523632812499983],[150.90029296875005,-5.447167968750037],[151.32656250000005,-4.96035156249998],[151.67119140625007,-4.88330078125],[151.59306640625007,-4.200781249999949],[151.915625,-4.296777343749966]]],[[[152.67060546875004,-3.13339843750002],[152.64619140625004,-3.221191406249957],[152.54326171875002,-3.095605468749952],[152.63876953125012,-3.042773437500031],[152.67060546875004,-3.13339843750002]]],[[[140.97617187500012,-9.11875],[140.97519531250006,-6.90537109375002],[140.86230468749997,-6.740039062499989],[140.975,-6.346093750000023],[140.97353515625,-2.803417968750026],[140.97343750000007,-2.609765625],[142.90517578125,-3.32070312499998],[143.50898437500004,-3.431152343750014],[144.06640625000003,-3.80517578125],[144.4777343750001,-3.82529296875002],[145.08779296875,-4.349121093749972],[145.33457031250012,-4.385253906249972],[145.7669921875,-4.823046874999989],[145.74521484375012,-5.402441406249977],[147.56669921875002,-6.056933593750003],[147.80205078125002,-6.31523437499996],[147.84550781250007,-6.662402343749989],[147.11914062499997,-6.721679687499986],[146.95361328124997,-6.834082031249963],[147.19003906250012,-7.378125],[148.12675781250007,-8.103613281249963],[148.246875,-8.554296875000034],[148.45117187499997,-8.694531250000011],[148.58310546875006,-9.051757812499957],[149.19833984375006,-9.03125],[149.26318359374997,-9.497851562499974],[150.01103515625007,-9.688183593750026],[149.76123046874997,-9.805859375000011],[149.87441406250005,-10.012988281250031],[150.84951171875,-10.236035156249997],[150.44609375000007,-10.30732421875004],[150.6471679687501,-10.517968749999966],[150.31992187500012,-10.654882812499963],[150.0167968750001,-10.577148437500028],[149.75410156250004,-10.353027343750028],[147.76865234375012,-10.070117187500031],[147.01718750000006,-9.38789062500004],[146.96376953125,-9.059570312499943],[146.63085937499997,-8.951171874999972],[146.03320312499997,-8.076367187500011],[144.97382812500004,-7.802148437500009],[144.86425781249997,-7.631542968749983],[144.50986328125006,-7.567382812499972],[144.14287109375007,-7.757226562500009],[143.65488281250012,-7.460351562500009],[143.94228515625005,-7.944238281250009],[143.8333984375,-8.029101562499974],[143.51816406250006,-8.000683593749955],[143.61376953125003,-8.200390624999969],[142.52412109375004,-8.32167968749998],[142.34746093750002,-8.167480468750014],[142.20683593750002,-8.195800781250014],[142.47480468750004,-8.369433593750031],[142.79794921875006,-8.345019531250031],[143.11181640624997,-8.474511718750037],[143.37724609375007,-8.762207031250028],[143.36621093750003,-8.961035156250034],[142.6471679687501,-9.327832031249969],[142.22958984375012,-9.169921874999957],[141.13320312500005,-9.221289062500034],[140.97617187500012,-9.11875]]],[[[152.96582031249997,-4.756347656249986],[152.89169921875006,-4.832421875000023],[152.73994140625004,-4.635839843750034],[152.66816406250004,-4.131835937500028],[152.27939453125006,-3.582421875],[151.06679687500005,-2.829003906249994],[150.74609374999997,-2.73886718750002],[150.8253906250001,-2.572949218749969],[152.03291015625004,-3.25136718749998],[153.01679687500004,-4.105664062500026],[153.1325195312501,-4.352441406250037],[152.96582031249997,-4.756347656249986]]],[[[150.43662109375012,-2.66181640625004],[150.16572265625004,-2.660253906249991],[149.96162109375004,-2.473828125000026],[150.22714843750006,-2.384179687499966],[150.42949218750007,-2.47041015625004],[150.43662109375012,-2.66181640625004]]],[[[147.06757812500004,-1.96015625],[147.43808593750012,-2.05898437499998],[147.20634765625007,-2.181933593749974],[146.54648437500012,-2.20859375],[146.65625,-1.97402343749998],[147.06757812500004,-1.96015625]]],[[[149.76542968750007,-1.553027343750017],[149.54589843749997,-1.471679687499957],[149.58095703125005,-1.353222656249983],[149.76542968750007,-1.553027343750017]]]]},"properties":{"name":"Papua New Guinea","childNum":21}},{"geometry":{"type":"Polygon","coordinates":[[[23.484667968750017,53.939794921875],[23.915429687500023,52.770263671875],[23.175097656250017,52.28662109375],[23.652441406250006,52.040380859375],[23.605273437500017,51.517919921875],[23.664453125000023,51.31005859375],[24.095800781250006,50.87275390625],[23.9970703125,50.809375],[24.089941406250006,50.53046875],[23.97265625,50.410058593749994],[23.711718750000017,50.37734375],[23.03632812500001,49.899072265624994],[22.706152343750006,49.606201171875],[22.6494140625,49.539013671875],[22.66064453125,49.483691406249996],[22.71992187500001,49.353808593749996],[22.732421875,49.295166015625],[22.705664062500006,49.171191406249996],[22.847070312500023,49.08125],[22.538671875,49.072705078125],[22.473046875000023,49.081298828125],[22.020117187500006,49.209521484374996],[21.6396484375,49.411962890625],[21.079394531250017,49.418261718749996],[20.868457031250017,49.314697265625],[20.36298828125001,49.38525390625],[20.0576171875,49.181298828124994],[19.756640625000017,49.204394531249996],[19.77392578125,49.37216796875],[19.44160156250001,49.597705078124996],[19.1494140625,49.4],[18.83222656250001,49.510791015624996],[18.562402343750023,49.879345703125],[18.0283203125,50.03525390625],[17.874804687500017,49.972265625],[17.627050781250006,50.11640625],[17.702246093750006,50.307177734374996],[17.41523437500001,50.254785156249994],[16.88007812500001,50.427050781249996],[16.989648437500023,50.2369140625],[16.63916015625,50.1021484375],[16.210351562500023,50.423730468749994],[16.419726562500017,50.573632812499994],[16.2822265625,50.655615234375],[16.007226562500023,50.611621093749996],[14.99375,51.01435546875],[14.98291015625,50.886572265625],[14.895800781250017,50.861376953124996],[14.809375,50.858984375],[14.814257812500017,50.871630859374996],[14.91748046875,51.008740234375],[14.9638671875,51.095117187499994],[14.935546875,51.435351562499996],[14.905957031250011,51.463330078125],[14.724707031250006,51.523876953125],[14.7109375,51.544921875],[14.738671875000023,51.6271484375],[14.601660156250006,51.832373046875],[14.752539062500006,52.081835937499996],[14.679882812500011,52.25],[14.615625,52.277636718749996],[14.573925781250011,52.31416015625],[14.554589843750023,52.359667968749996],[14.569726562500023,52.431103515625],[14.619433593750017,52.528515625],[14.514062500000023,52.64560546875],[14.253710937500017,52.782519531249996],[14.128613281250011,52.878222656249996],[14.138867187500011,52.932861328125],[14.293164062500011,53.0267578125],[14.368554687500023,53.10556640625],[14.410937500000017,53.199023437499996],[14.412304687500011,53.216748046875],[14.41455078125,53.283496093749996],[14.258886718750006,53.729638671875],[14.58349609375,53.63935546875],[14.558398437500017,53.823193359375],[14.21142578125,53.950341796875],[16.186328125000017,54.290380859375],[16.55976562500001,54.55380859375],[18.32343750000001,54.838183593749996],[18.75927734375,54.6845703125],[18.43623046875001,54.7447265625],[18.83642578125,54.369580078125],[19.604394531250023,54.4591796875],[20.20820312500001,54.420751953125],[22.16845703125,54.35986328125],[22.731835937500023,54.35009765625],[22.766210937500006,54.356787109375],[22.82373046875,54.395800781249996],[22.893945312500023,54.39052734375],[22.97675781250001,54.366357421875],[23.015527343750023,54.34833984375],[23.04218750000001,54.30419921875],[23.0875,54.299462890625],[23.170312500000023,54.2814453125],[23.282324218750006,54.24033203125],[23.3701171875,54.200488281249996],[23.45361328125,54.14345703125],[23.484667968750017,53.939794921875]]]},"properties":{"name":"Poland","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-65.42558593749999,18.105615234374994],[-65.57221679687493,18.137304687499977],[-65.29487304687501,18.133349609375045],[-65.42558593749999,18.105615234374994]]],[[[-66.12939453125003,18.444921875000034],[-65.62880859375,18.381396484375045],[-65.62084960937497,18.242333984374966],[-65.97080078124995,17.974365234375],[-67.196875,17.994189453125045],[-67.2640625,18.364599609375006],[-67.15864257812501,18.499218749999983],[-66.12939453125003,18.444921875000034]]]]},"properties":{"name":"Puerto Rico","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[130.52695312500012,42.535400390625],[130.68730468750007,42.30253906249999],[130.2357421875,42.183203125000034],[129.75634765624997,41.712255859375006],[129.70869140625004,40.857324218749994],[129.34111328125002,40.72631835937506],[128.51123046874997,40.130224609375006],[127.56816406250002,39.78198242187503],[127.39453125000003,39.207910156249966],[127.78613281250003,39.084130859374966],[128.37460937500012,38.6234375],[128.03896484375,38.30854492187498],[127.09033203125003,38.28388671875001],[126.63388671875012,37.78183593750006],[126.36992187500007,37.87836914062501],[126.11669921875003,37.74291992187503],[125.76914062500006,37.98535156250003],[125.35781250000005,37.72480468749998],[125.31074218750004,37.843505859375],[124.98876953124997,37.93144531249999],[125.2067382812501,38.08154296875],[124.69091796874997,38.12919921875002],[125.06738281250003,38.556738281250006],[125.55449218750002,38.68623046875001],[125.16884765625,38.80551757812506],[125.40966796875003,39.28837890625002],[125.36083984375003,39.52661132812497],[124.77529296875,39.75805664062506],[124.63828125000006,39.61508789062506],[124.36210937500002,40.004052734374994],[124.8893554687501,40.459814453125006],[125.98906250000002,40.904638671875034],[126.74306640625,41.724853515625],[126.95478515625004,41.76948242187501],[127.17968750000003,41.531347656250006],[128.14941406249997,41.38774414062496],[128.28925781250004,41.60742187500006],[128.04521484375007,41.9875],[128.92343750000006,42.038232421874966],[129.3136718750001,42.41357421874997],[129.69785156250012,42.448144531249994],[129.89824218750002,42.998144531250034],[130.24033203125006,42.891796874999955],[130.24667968750012,42.744824218749955],[130.52695312500012,42.535400390625]]]},"properties":{"name":"Dem. Rep. Korea","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-17.190869140624926,32.86860351562498],[-16.693261718749966,32.75800781250001],[-17.018261718749926,32.66279296874998],[-17.226025390624983,32.76684570312503],[-17.190869140624926,32.86860351562498]]],[[[-25.64897460937499,37.840917968750006],[-25.18193359374996,37.837890625],[-25.19072265624999,37.764355468749955],[-25.73447265624992,37.76289062500001],[-25.845898437499983,37.89404296875],[-25.64897460937499,37.840917968750006]]],[[[-28.14726562499996,38.45268554687502],[-28.064794921875034,38.412744140624966],[-28.454492187500023,38.40864257812504],[-28.54882812499997,38.51855468750003],[-28.14726562499996,38.45268554687502]]],[[[-28.641308593749983,38.525],[-28.842041015625,38.5984375],[-28.69775390625,38.638476562500045],[-28.641308593749983,38.525]]],[[[-27.07524414062496,38.643457031249994],[-27.38593750000001,38.765820312499955],[-27.127001953125017,38.78984375],[-27.07524414062496,38.643457031249994]]],[[[-31.137109374999937,39.40693359375001],[-31.282958984375,39.39409179687496],[-31.260839843750034,39.49677734375001],[-31.137109374999937,39.40693359375001]]],[[[-7.406152343749937,37.17944335937497],[-7.834130859374994,37.005712890625034],[-8.597656249999943,37.12133789062506],[-8.997802734375028,37.03227539062502],[-8.814160156249983,37.43081054687502],[-8.881103515624943,38.44667968750005],[-8.668310546874949,38.42431640625003],[-8.798876953124989,38.518164062500034],[-9.213281249999937,38.44809570312498],[-9.250390624999966,38.65673828125003],[-9.021484374999943,38.746875],[-8.79160156249992,39.07817382812502],[-9.13579101562496,38.74277343749998],[-9.35673828124996,38.697900390624994],[-9.479736328124972,38.79877929687501],[-9.374755859374972,39.338281249999966],[-8.837841796874926,40.11567382812498],[-8.684619140624989,40.75253906250006],[-8.755419921874932,41.69838867187502],[-8.887597656249937,41.76459960937501],[-8.777148437500017,41.941064453124994],[-8.266064453124983,42.13740234375001],[-8.152490234374937,41.81196289062498],[-7.40361328124996,41.833691406249955],[-7.147119140625023,41.98115234374998],[-6.61826171874992,41.9423828125],[-6.542187499999955,41.672509765624994],[-6.2125,41.53203125],[-6.928466796874972,41.009130859375006],[-6.8101562499999,40.343115234375034],[-7.032617187499966,40.16791992187498],[-6.896093749999949,40.02182617187506],[-6.975390624999932,39.79838867187502],[-7.117675781249972,39.681689453125045],[-7.53569335937496,39.66157226562501],[-6.997949218749994,39.05644531250002],[-7.343017578124943,38.45742187500002],[-7.106396484374983,38.181005859375006],[-6.957568359374932,38.18789062499999],[-7.44394531249992,37.72827148437497],[-7.406152343749937,37.17944335937497]]]]},"properties":{"name":"Portugal","childNum":7,"cp":[-8.7440694,39.9251454]}},{"geometry":{"type":"Polygon","coordinates":[[[-58.15976562499999,-20.164648437500006],[-58.13779296874999,-20.2373046875],[-58.12460937499999,-20.29345703125],[-58.09150390625,-20.33320312500001],[-58.05844726562499,-20.38613281250001],[-58.025390625,-20.415820312500003],[-58.00224609374999,-20.465429687500006],[-57.97905273437499,-20.657324218750006],[-57.91513671874999,-20.69033203125001],[-57.830224609374994,-20.99794921875001],[-57.94267578124999,-21.79833984375],[-57.95590820312499,-22.109179687500003],[-56.77519531249999,-22.261328125],[-56.44780273437499,-22.076171875],[-56.39487304687499,-22.09267578125001],[-56.35185546874999,-22.17861328125001],[-56.246044921875,-22.2646484375],[-56.18984375,-22.28115234375001],[-55.99140625,-22.28115234375001],[-55.84916992187499,-22.3076171875],[-55.75327148437499,-22.41015625],[-55.74663085937499,-22.5126953125],[-55.61767578125,-22.671484375],[-55.53828125,-23.58095703125001],[-55.518457031249994,-23.627246093750003],[-55.458886718749994,-23.68671875000001],[-55.4423828125,-23.792578125],[-55.4423828125,-23.865332031250006],[-55.415917968749994,-23.95136718750001],[-55.36630859374999,-23.991015625],[-55.28691406249999,-24.004296875],[-55.1943359375,-24.01748046875001],[-55.08188476562499,-23.99765625],[-54.982666015625,-23.97451171875001],[-54.62548828125,-23.8125],[-54.44023437499999,-23.90175781250001],[-54.37080078125,-23.97119140625],[-54.24179687499999,-24.047265625],[-54.281005859375,-24.30605468750001],[-54.43623046875,-25.12128906250001],[-54.47314453125,-25.22021484375],[-54.610546875,-25.432714843750006],[-54.615869140624994,-25.57607421875001],[-54.63193359374999,-26.00576171875001],[-54.677734375,-26.30878906250001],[-54.934472656249994,-26.70253906250001],[-55.1359375,-26.93115234375],[-55.426660156249994,-27.00927734375],[-55.450634765625,-27.068359375],[-55.496728515624994,-27.115332031250006],[-55.564892578125,-27.15],[-55.59726562499999,-27.207617187500006],[-55.59379882812499,-27.2880859375],[-55.63291015624999,-27.35712890625001],[-55.71464843749999,-27.41484375],[-55.789990234375,-27.41640625],[-55.95146484374999,-27.32568359375],[-56.1640625,-27.32148437500001],[-56.437158203124994,-27.553808593750006],[-58.16826171874999,-27.2734375],[-58.60483398437499,-27.31435546875001],[-58.641748046874994,-27.19609375],[-58.618603515625,-27.132128906250003],[-58.222070312499994,-26.65],[-58.18149414062499,-26.307421875],[-57.943115234375,-26.05292968750001],[-57.563134765624994,-25.473730468750006],[-57.821679687499994,-25.13642578125001],[-59.187255859375,-24.562304687500003],[-59.892480468749994,-24.093554687500003],[-60.83984375,-23.85810546875001],[-61.084716796875,-23.65644531250001],[-61.79853515625,-23.18203125],[-62.21416015624999,-22.612402343750006],[-62.372509765625,-22.43916015625001],[-62.54155273437499,-22.349609375],[-62.6259765625,-22.29042968750001],[-62.62568359375,-22.261523437500003],[-62.65097656249999,-22.233691406250003],[-62.27666015624999,-21.066015625],[-62.276318359375,-20.5625],[-61.7568359375,-19.6453125],[-60.00737304687499,-19.29755859375001],[-59.09052734375,-19.286230468750006],[-58.18017578125,-19.81787109375],[-58.15976562499999,-20.164648437500006]]]},"properties":{"name":"Paraguay","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[34.34833984375004,31.292919921874955],[34.2453125000001,31.208300781250045],[34.2125,31.292285156250017],[34.198144531249994,31.322607421875063],[34.47734375000002,31.584863281250023],[34.52412109375004,31.541650390624994],[34.5255859375001,31.52563476562503],[34.34833984375004,31.292919921874955]]],[[[34.88046875,31.3681640625],[34.950976562500074,31.60229492187503],[35.20371093750006,31.75],[35.1271484375001,31.816748046875006],[35.05322265625003,31.83793945312496],[34.983007812500006,31.816796875000023],[34.9611328125001,31.823339843750006],[34.95380859375004,31.84125976562504],[34.98974609374997,31.913281249999955],[34.955957031249994,32.1609375],[35.01054687500002,32.33818359375002],[35.06503906250006,32.46044921875006],[35.19326171875005,32.53442382812503],[35.303808593750006,32.512939453125],[35.38671875000003,32.493017578125034],[35.402636718750074,32.45063476562501],[35.484375,32.40166015624999],[35.5514648437501,32.39550781250006],[35.57207031250002,32.237890625],[35.450585937499994,31.479296875000017],[34.88046875,31.3681640625]]]]},"properties":{"name":"Palestine","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-149.321533203125,-17.690039062499963],[-149.177685546875,-17.736621093750045],[-149.18178710937497,-17.86230468749997],[-149.34111328125,-17.732421874999986],[-149.57890624999993,-17.734960937499963],[-149.635009765625,-17.564257812500003],[-149.37919921874993,-17.522363281249994],[-149.321533203125,-17.690039062499963]]],[[[-143.44057617187497,-16.619726562499963],[-143.38618164062498,-16.668847656250023],[-143.55068359375002,-16.62109374999997],[-143.44057617187497,-16.619726562499963]]],[[[-139.02431640624997,-9.695214843750037],[-138.82734375,-9.74160156249998],[-139.13408203124996,-9.829492187500037],[-139.02431640624997,-9.695214843750037]]],[[[-140.075634765625,-9.425976562499983],[-140.14438476562498,-9.359375],[-140.07094726562497,-9.328125],[-140.075634765625,-9.425976562499983]]],[[[-140.07260742187503,-8.910449218750031],[-140.21743164062497,-8.929687499999957],[-140.24003906249993,-8.79755859375004],[-140.057666015625,-8.801464843750026],[-140.07260742187503,-8.910449218750031]]]]},"properties":{"name":"Fr. Polynesia","childNum":5}},{"geometry":{"type":"Polygon","coordinates":[[[51.26796875000002,24.607226562500003],[51.17802734375002,24.58671875],[51.093359375,24.564648437499997],[51.02275390625002,24.565234375],[50.96601562500001,24.573925781249997],[50.928320312500006,24.595117187499994],[50.85566406250001,24.679638671874997],[50.80439453125001,24.789257812499997],[50.8359375,24.850390625],[50.846777343750006,24.888574218749994],[50.75458984375001,25.39926757812499],[51.003125,25.9814453125],[51.262304687500006,26.153271484374997],[51.543066406250006,25.902392578125003],[51.4853515625,25.524707031250003],[51.60888671875,25.052880859374994],[51.42792968750001,24.668261718750003],[51.26796875000002,24.607226562500003]]]},"properties":{"name":"Qatar","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[28.2125,45.450439453125],[28.317675781250017,45.347119140625],[28.451269531250006,45.2921875],[28.78828125000001,45.240966796875],[28.78173828125,45.309863281249996],[28.894335937500017,45.289941406249994],[29.223535156250023,45.4029296875],[29.403710937500023,45.419677734375],[29.567675781250017,45.37080078125],[29.705859375000017,45.259912109374994],[29.557519531250023,44.843408203124994],[29.048242187500023,44.757568359375],[29.0953125,44.975048828125],[28.891503906250023,44.91865234375],[28.585351562500023,43.742236328124996],[28.221972656250017,43.772851562499994],[27.88427734375,43.987353515624996],[27.425390625,44.0205078125],[27.0869140625,44.167382812499994],[26.2158203125,44.007275390625],[25.4970703125,43.670800781249994],[22.919042968750006,43.83447265625],[22.868261718750006,43.947900390624994],[23.02851562500001,44.077978515625],[22.705078125,44.23779296875],[22.687890625000023,44.248291015625],[22.494531250000023,44.435449218749994],[22.554003906250017,44.540332031249996],[22.6201171875,44.562353515625],[22.70078125,44.555517578125],[22.734375,44.569921875],[22.72089843750001,44.605517578124996],[22.64208984375,44.6509765625],[22.49765625,44.70625],[22.350683593750006,44.676123046875],[22.200976562500017,44.560693359374994],[22.093066406250017,44.541943359375],[21.909277343750006,44.66611328125],[21.636132812500023,44.71044921875],[21.52314453125001,44.790087890624996],[21.36005859375001,44.82666015625],[21.35791015625,44.86181640625],[21.384375,44.870068359375],[21.442187500000017,44.873388671875],[21.519921875000023,44.880810546875],[21.532324218750006,44.900683593749996],[21.35703125,44.990771484374996],[21.465429687500006,45.171875],[21.431445312500017,45.192529296874994],[20.794042968750006,45.46787109375],[20.775,45.749804687499996],[20.760156250000023,45.758105468749996],[20.746875,45.748974609375],[20.727832031250017,45.73740234375],[20.709277343750017,45.735253906249994],[20.652734375000023,45.77939453125],[20.581152343750006,45.869482421875],[20.35859375000001,45.975488281249994],[20.241796875,46.10859375],[20.28095703125001,46.1330078125],[20.508105468750017,46.166943359375],[20.613671875000023,46.13349609375],[20.76025390625,46.246240234374994],[21.121679687500006,46.282421875],[21.99970703125001,47.505029296874994],[22.87666015625001,47.947265625],[23.054785156250006,48.00654296875],[23.139453125000017,48.08740234375],[23.20263671875,48.084521484374996],[23.408203125,47.989990234375],[23.628710937500017,47.995849609375],[24.578906250000017,47.931054687499994],[24.979101562500006,47.72412109375],[25.464257812500023,47.910791015624994],[25.689257812500017,47.932470703125],[25.90869140625,47.967578125],[26.162695312500006,47.992529296875],[26.236230468750023,48.064355468749994],[26.276953125,48.113232421875],[26.3056640625,48.203759765624994],[26.4423828125,48.22998046875],[26.618945312500017,48.25986328125],[26.980761718750017,48.155029296875],[27.614062500000017,47.34052734375],[28.07177734375,46.978417968749994],[28.23945312500001,46.6408203125],[28.07470703125,45.598974609375],[28.2125,45.450439453125]]]},"properties":{"name":"Romania","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[146.71396484375012,43.743798828124994],[146.62197265625,43.81298828125006],[146.88408203125002,43.82915039062496],[146.71396484375012,43.743798828124994]]],[[[146.20761718750006,44.49765625],[146.5677734375,44.44042968749997],[145.91406249999997,44.10371093750004],[145.58681640625,43.84511718750002],[145.5558593750001,43.66459960937502],[145.46171875000007,43.870898437500045],[146.20761718750006,44.49765625]]],[[[148.59951171875,45.317626953125],[147.91376953125004,44.99038085937502],[147.65781250000012,44.97714843749998],[146.89746093750003,44.404296875],[147.24658203124997,44.856054687500006],[147.88554687500007,45.22563476562499],[147.9240234375001,45.38330078125006],[148.05605468750005,45.26210937500005],[148.32421874999997,45.28242187500001],[148.8122070312501,45.510009765625],[148.83710937500004,45.36269531250002],[148.59951171875,45.317626953125]]],[[[149.68769531250004,45.64204101562501],[149.44707031250002,45.593359375000034],[149.9623046875,46.02192382812504],[150.553125,46.208544921875045],[149.68769531250004,45.64204101562501]]],[[[152.00205078125006,46.89716796874998],[151.72343750000007,46.82880859375001],[152.28886718750007,47.1421875],[152.00205078125006,46.89716796874998]]],[[[154.81044921875005,49.31201171875],[154.61093750000006,49.29404296874998],[154.82490234375004,49.64692382812501],[154.81044921875005,49.31201171875]]],[[[155.9210937500001,50.30219726562501],[155.39716796875004,50.04125976562497],[155.24306640625,50.09462890625002],[155.21835937500012,50.29785156250003],[155.68017578124997,50.400732421875034],[156.096875,50.771875],[155.9210937500001,50.30219726562501]]],[[[156.40507812500002,50.65761718750005],[156.16796874999997,50.73188476562498],[156.37646484374997,50.86210937499996],[156.4875,50.84296874999998],[156.40507812500002,50.65761718750005]]],[[[142.76103515625002,54.393945312499966],[143.32470703125003,52.96308593749998],[143.15556640625002,52.08374023437497],[143.29951171875004,51.632373046875045],[143.81601562500006,50.28261718750002],[144.71376953125,48.64028320312502],[144.04873046875,49.249169921874994],[143.73232421875,49.31201171875],[143.10498046875003,49.198828125000034],[142.57421874999997,48.07216796875002],[142.55693359375002,47.737890625000034],[143.21767578125005,46.79487304687504],[143.48564453125002,46.752050781250006],[143.58066406250012,46.360693359375034],[143.43164062500003,46.02866210937498],[143.28232421875006,46.55898437500002],[142.57802734375005,46.700781250000034],[142.07714843749997,45.91704101562499],[141.83037109375002,46.451074218749966],[142.03867187500012,47.140283203124966],[141.9640625000001,47.58745117187502],[142.18173828125012,48.01337890625001],[141.86630859375006,48.750097656250006],[142.1422851562501,49.56914062499999],[142.06601562500006,50.630468750000034],[142.20673828125004,51.22255859375002],[141.72236328125004,51.73632812499997],[141.66083984375004,52.27294921874997],[141.85556640625012,52.79350585937499],[141.82353515625007,53.33950195312502],[142.1419921875,53.49560546875003],[142.52617187500002,53.44746093749998],[142.70595703125,53.89570312499998],[142.33496093749997,54.28071289062501],[142.76103515625002,54.393945312499966]]],[[[137.17861328125005,55.100439453125034],[137.05527343750006,54.9267578125],[136.71464843750002,54.956152343750034],[137.17861328125005,55.100439453125034]]],[[[137.94052734375012,55.092626953125034],[138.20615234375012,55.03354492187498],[137.72148437500007,54.66323242187505],[137.46269531250002,54.873388671875034],[137.23291015624997,54.79057617187496],[137.5773437500001,55.19702148437497],[137.94052734375012,55.092626953125034]]],[[[21.235742187500023,55.26411132812498],[22.072363281250034,55.06367187499998],[22.56728515625005,55.05913085937496],[22.82470703125,54.87128906249998],[22.684472656250023,54.56293945312504],[22.679882812500068,54.493017578125006],[22.766210937499977,54.356787109375034],[22.168457031250057,54.35986328125006],[21.14052734375008,54.39179687499998],[19.604394531250023,54.45917968750004],[19.974511718750023,54.92119140625002],[20.520312500000017,54.994873046875],[20.89980468750008,55.286669921875045],[20.957812500000074,55.27890625000006],[20.594824218750006,54.982373046874955],[20.995898437500017,54.90268554687506],[21.18886718750008,54.93520507812502],[21.235742187500023,55.26411132812498]]],[[[166.65029296875005,54.83906249999998],[166.64511718750006,54.69409179687503],[165.75107421875006,55.294531250000034],[166.27578125000005,55.311962890624955],[166.24804687499997,55.16542968750002],[166.65029296875005,54.83906249999998]]],[[[150.58994140625006,59.01875],[150.47021484375003,59.05405273437498],[150.66621093750004,59.16015625000003],[150.58994140625006,59.01875]]],[[[163.63515625000005,58.603369140625006],[163.47138671875004,58.509375],[163.7609375000001,59.01503906250002],[164.57265625,59.22114257812501],[164.61572265624997,58.885595703125034],[163.63515625000005,58.603369140625006]]],[[[35.8161132812501,65.18208007812501],[35.77871093750005,64.97666015625],[35.52890625000006,65.15107421875001],[35.8161132812501,65.18208007812501]]],[[[70.02070312500004,66.502197265625],[69.65136718750003,66.56533203125],[69.50273437500002,66.75107421875],[70.07666015624997,66.69589843750003],[70.02070312500004,66.502197265625]]],[[[-179.79853515625,68.9404296875],[-178.873876953125,68.75410156249995],[-178.69262695312503,68.54599609375],[-178.09746093750002,68.4248046875],[-178.05581054687497,68.26489257812503],[-177.79677734374997,68.33798828125],[-178.37304687500003,68.56567382812503],[-177.52724609375002,68.29438476562501],[-177.58920898437503,68.22421875],[-175.34521484375,67.67807617187503],[-175.37470703124998,67.35737304687498],[-175.00268554687494,67.4375],[-174.849853515625,67.34887695312503],[-174.92490234375,66.62314453125006],[-174.503759765625,66.537939453125],[-174.39409179687496,66.34423828124997],[-174.084765625,66.47309570312504],[-174.06503906249998,66.22958984374998],[-173.77397460937502,66.43466796875003],[-174.23159179687497,66.63188476562505],[-174.08642578125,66.94287109375],[-174.55009765624993,67.090625],[-173.6796875,67.144775390625],[-173.15781249999998,67.06909179687503],[-173.32353515625,66.95483398437503],[-173.25893554687497,66.84008789062503],[-173.19301757812497,66.99360351562504],[-172.5201171875,66.952490234375],[-173.00751953125,67.06489257812498],[-171.79555664062502,66.93173828125003],[-170.50952148437503,66.34365234375005],[-170.604443359375,66.24892578125002],[-170.30122070312504,66.29404296874998],[-170.24394531250002,66.16928710937503],[-169.777880859375,66.14311523437505],[-169.83168945312497,65.99892578124997],[-170.54067382812497,65.86542968749995],[-170.66630859375,65.62153320312501],[-171.42153320312502,65.81035156250002],[-171.10585937500002,65.51103515625005],[-171.90712890625,65.495947265625],[-172.78330078124998,65.68105468749997],[-172.23281250000002,65.45571289062497],[-172.30927734375004,65.27563476562497],[-172.66191406249993,65.24853515625006],[-172.28603515625002,65.20571289062502],[-172.21318359375,65.04814453124999],[-173.08579101562498,64.81733398437495],[-172.80107421874996,64.79052734375],[-172.90087890624994,64.62885742187501],[-172.40146484374998,64.413916015625],[-172.73916015624997,64.41225585937502],[-172.90317382812498,64.52607421875004],[-172.96005859375003,64.32768554687502],[-173.27548828124998,64.2896484375],[-173.327490234375,64.53955078125003],[-173.72973632812497,64.36450195312497],[-174.57055664062503,64.7177734375],[-175.39511718749998,64.80239257812502],[-175.85385742187498,65.01083984375003],[-176.09326171875,65.471044921875],[-177.05625,65.613623046875],[-177.48876953125,65.50371093749999],[-178.4125,65.49555664062501],[-178.93906249999998,66.03276367187505],[-178.74672851562497,66.01367187500006],[-178.52656250000004,66.40156250000004],[-178.86811523437498,66.18706054687502],[-179.14340820312503,66.37504882812505],[-179.327197265625,66.16259765625003],[-179.68330078124998,66.18413085937505],[-179.78969726562497,65.90087890625],[-179.352099609375,65.51674804687497],[-180,65.06723632812498],[-180,65.31196289062501],[-180,65.55678710937497],[-180,65.80156250000002],[-180,66.04628906250002],[-180,66.29106445312499],[-180,66.53583984375004],[-180,66.78056640625005],[-180,67.02534179687501],[-180,67.27011718750006],[-180,67.51484374999998],[-180,67.75961914062503],[-180,68.00439453124997],[-180,68.24912109375],[-180,68.49389648437497],[-180,68.738671875],[-179.999951171875,68.98344726562505],[-179.79853515625,68.9404296875]]],[[[50.265234375,69.18559570312502],[49.62626953125002,68.85971679687498],[48.91035156250004,68.74306640625002],[48.4390625,68.80488281249998],[48.319921875,69.26923828125001],[48.8449218750001,69.49472656250003],[49.22519531250006,69.51123046875],[50.265234375,69.18559570312502]]],[[[161.46708984375002,68.90097656250003],[161.08281250000007,69.4056640625],[161.50517578125007,69.63945312500002],[161.46708984375002,68.90097656250003]]],[[[169.20078125000006,69.58046875],[168.34804687500005,69.66435546875005],[167.86474609375003,69.90107421875004],[168.35791015625003,70.01567382812502],[169.37480468750007,69.88261718749999],[169.20078125000006,69.58046875]]],[[[60.450488281250074,69.93486328124999],[60.44023437500002,69.72592773437506],[59.637011718750074,69.72104492187503],[59.50263671875004,69.86621093750003],[58.952734375,69.89277343750004],[58.51992187500005,70.31831054687504],[59.04804687500004,70.46049804687505],[60.450488281250074,69.93486328124999]]],[[[52.90332031250003,71.36499023437503],[53.19257812500004,71.21528320312498],[53.0226562500001,70.96870117187501],[52.24960937500006,71.28491210937506],[52.90332031250003,71.36499023437503]]],[[[178.8615234375001,70.826416015625],[178.68388671875013,71.10566406250004],[180,71.53774414062505],[180,70.993017578125],[178.8615234375001,70.826416015625]]],[[[137.95986328125005,71.50766601562503],[137.71181640625005,71.4232421875],[137.06406250000006,71.52988281250003],[137.816796875,71.58789062500006],[137.95986328125005,71.50766601562503]]],[[[-178.87646484375,71.57705078124997],[-178.13388671874998,71.46547851562497],[-177.523583984375,71.16689453125],[-179.415673828125,70.91899414062502],[-179.999951171875,70.993017578125],[-179.999951171875,71.53774414062505],[-178.87646484375,71.57705078124997]]],[[[77.6325195312501,72.291259765625],[76.87109374999997,72.317041015625],[77.74853515625003,72.63120117187506],[78.36513671875005,72.48242187500003],[77.6325195312501,72.291259765625]]],[[[79.50146484374997,72.72192382812497],[78.63320312500005,72.85073242187502],[79.16425781250004,73.0943359375],[79.50146484374997,72.72192382812497]]],[[[74.660546875,72.87343750000002],[74.18066406250003,72.975341796875],[74.19853515625002,73.10908203124998],[74.9615234375,73.0625],[74.660546875,72.87343750000002]]],[[[120.26132812500012,73.08984374999997],[119.79208984375006,73.04541015624997],[119.64042968750002,73.12431640625007],[120.26132812500012,73.08984374999997]]],[[[55.31982421875003,73.30830078124998],[56.42958984375005,73.201171875],[56.121679687500006,72.80659179687498],[55.40332031249997,72.54907226562503],[55.29785156249997,71.93535156250005],[56.45439453125002,71.10737304687504],[57.62539062500005,70.72880859374999],[57.14589843750005,70.58911132812506],[56.38574218749997,70.73413085937503],[56.49970703125004,70.56640625000003],[55.687304687500074,70.69218749999999],[54.60117187500006,70.68007812500002],[53.383593750000074,70.87353515625],[53.670507812500006,71.08691406250003],[54.155664062499994,71.12548828125],[53.40996093750002,71.34013671875002],[53.41162109375003,71.530126953125],[51.93789062500005,71.47470703124998],[51.511328125,71.64809570312497],[51.58251953124997,72.07119140625],[52.252050781250006,72.12973632812503],[52.66191406250002,72.33686523437495],[52.91660156250006,72.66889648437501],[52.5792968750001,72.791357421875],[53.3698242187501,72.91674804687506],[53.2511718750001,73.182958984375],[54.80390625000004,73.38764648437498],[55.31982421875003,73.30830078124998]]],[[[70.67392578125006,73.09501953125005],[70.04072265625004,73.03715820312507],[69.99589843750002,73.359375],[70.94023437500002,73.51440429687503],[71.6261718750001,73.17397460937497],[70.67392578125006,73.09501953125005]]],[[[142.18486328125007,73.89589843750005],[143.34375,73.56875],[143.45146484375007,73.231298828125],[141.59667968750003,73.31083984375005],[140.66279296875004,73.45200195312503],[139.785546875,73.35522460937503],[141.08476562500002,73.86586914062497],[142.18486328125007,73.89589843750005]]],[[[83.5490234375001,74.07177734375],[82.8177734375,74.09160156250005],[83.14980468750005,74.151611328125],[83.5490234375001,74.07177734375]]],[[[141.01025390625003,73.99946289062501],[140.40947265625002,73.92167968750005],[140.1935546875001,74.23671875000002],[141.03857421875003,74.24272460937502],[141.01025390625003,73.99946289062501]]],[[[113.38720703124997,74.40043945312499],[112.78242187500004,74.09506835937503],[111.50341796874997,74.35307617187502],[111.87978515625,74.36381835937499],[112.08447265624997,74.54897460937505],[113.38720703124997,74.40043945312499]]],[[[86.653125,74.981298828125],[87.05214843750005,74.982568359375],[86.92714843750005,74.83076171874998],[86.25859375000002,74.89350585937498],[86.653125,74.981298828125]]],[[[82.17236328125003,75.41938476562501],[81.97851562499997,75.24711914062499],[81.65478515625003,75.28891601562498],[81.71210937500004,75.45141601562506],[82.165625,75.515625],[82.17236328125003,75.41938476562501]]],[[[146.79521484375007,75.37075195312505],[148.43242187500002,75.41352539062495],[148.59013671875007,75.23637695312502],[150.82236328125006,75.15654296875002],[150.64628906250002,74.944580078125],[149.596875,74.77260742187505],[148.296875,74.80043945312502],[146.14853515625012,75.19829101562499],[146.5375,75.58178710937506],[146.79521484375007,75.37075195312505]]],[[[135.9486328125,75.40957031250005],[135.45195312500007,75.38955078124997],[135.6986328125,75.84526367187499],[136.16894531249997,75.60556640625],[135.9486328125,75.40957031250005]]],[[[140.04873046875,75.82895507812503],[140.81591796874997,75.63071289062498],[141.48544921875012,76.13715820312495],[142.66953125000012,75.86342773437497],[143.68583984375002,75.86367187500002],[145.35996093750006,75.53046874999998],[144.01972656250004,75.04467773437506],[143.1703125,75.11689453125001],[142.72949218749997,75.33764648437506],[142.941796875,75.71328125000002],[142.30791015625007,75.69169921875005],[142.19882812500006,75.39267578124998],[143.12792968749997,74.9703125],[142.47275390625006,74.82041015625],[141.98730468750003,74.99125976562499],[140.26787109375002,74.846923828125],[139.68125,74.96406249999995],[139.09912109374997,74.65654296875002],[138.09228515625003,74.79746093750003],[136.94765625000005,75.32553710937498],[137.28974609375004,75.34863281249997],[137.26884765625002,75.7494140625],[137.70654296875003,75.75957031250002],[137.56054687499997,75.95522460937502],[138.20761718750006,76.11494140624995],[138.91953125000006,76.19672851562501],[140.04873046875,75.82895507812503]]],[[[96.5324218750001,76.278125],[96.30058593750002,76.121728515625],[95.31113281250006,76.21474609375002],[95.37988281250003,76.2890625],[96.5324218750001,76.278125]]],[[[112.47802734375003,76.62089843749999],[112.531640625,76.450048828125],[111.96894531250004,76.62617187500001],[112.47802734375003,76.62089843749999]]],[[[149.15019531250002,76.65991210937506],[148.39863281250004,76.64824218750007],[149.4064453125001,76.78208007812498],[149.15019531250002,76.65991210937506]]],[[[67.7653320312501,76.23759765624999],[61.35595703124997,75.31484375000002],[60.27685546875003,75.00756835937503],[60.501367187499994,74.90463867187503],[59.67402343750004,74.61015624999999],[59.24013671875005,74.69296874999998],[59.040429687499994,74.48554687500001],[58.53466796875003,74.49892578124997],[58.6178710937501,74.22739257812498],[57.76738281250002,74.013818359375],[57.755957031250006,73.769189453125],[57.313085937500006,73.838037109375],[57.54257812500006,73.65820312500003],[56.96386718750003,73.36655273437503],[56.43037109375004,73.29721679687503],[55.00683593750003,73.45385742187506],[54.29990234375006,73.35097656249997],[53.7628906250001,73.76616210937499],[54.64267578125006,73.95957031250006],[55.34091796875006,74.41962890624998],[56.13710937500005,74.49609375000003],[55.5822265625001,74.627685546875],[56.4987304687501,74.95708007812505],[55.81005859374997,75.12490234374997],[56.03554687499999,75.19423828124997],[56.57031250000003,75.09775390625003],[56.8444335937501,75.351416015625],[57.606835937499994,75.34125976562498],[58.05830078125004,75.6630859375],[58.88125,75.85478515625007],[60.27929687499997,76.09624023437505],[60.94218750000002,76.07128906250003],[61.20166015624997,76.28203125000007],[62.97148437500002,76.23666992187498],[64.4634765625,76.37817382812503],[67.65185546874997,77.011572265625],[68.48574218750005,76.93369140625003],[68.94169921875002,76.707666015625],[67.7653320312501,76.23759765624999]]],[[[96.28544921875002,77.02666015625007],[95.27031250000007,77.01884765624999],[96.52841796875006,77.20551757812501],[96.28544921875002,77.02666015625007]]],[[[89.51425781250006,77.18881835937498],[89.14169921875012,77.22680664062497],[89.61621093749997,77.31103515625],[89.51425781250006,77.18881835937498]]],[[[130.68730468750007,42.30253906249999],[130.52695312500012,42.535400390625],[130.42480468749997,42.72705078124997],[131.06855468750004,42.90224609375005],[131.25732421875003,43.378076171874994],[131.2552734375,44.07158203124999],[130.9816406250001,44.844335937500034],[131.44687500000012,44.984033203124966],[131.85185546875002,45.32685546875001],[132.93603515624997,45.029931640624994],[133.1134765625001,45.130712890625006],[133.18603515625003,45.49482421875004],[133.43642578125,45.60468750000004],[133.86132812500003,46.24775390625004],[134.1676757812501,47.30219726562501],[134.75234375,47.71542968749998],[134.56601562500006,48.02250976562502],[134.66523437500004,48.25390625],[134.29335937500005,48.37343750000002],[133.46835937500006,48.09716796875003],[133.14404296875003,48.10566406249998],[132.7072265625001,47.94726562500006],[132.47626953125004,47.714990234374994],[130.96191406249997,47.70932617187498],[130.7326171875001,48.01923828124998],[130.80429687500012,48.34150390624998],[130.5521484375,48.602490234374955],[130.553125,48.861181640625006],[130.1959960937501,48.89165039062499],[129.49814453125012,49.38881835937502],[129.0651367187501,49.374658203124966],[128.70400390625,49.60014648437499],[127.99960937500006,49.56860351562506],[127.55078124999997,49.801806640625045],[127.590234375,50.20898437500003],[127.33720703125007,50.35014648437502],[127.30703125000005,50.70795898437501],[126.92480468749997,51.10014648437496],[126.34169921875,52.36201171875001],[125.64902343750012,53.042285156250045],[125.075,53.20366210937496],[124.81230468750002,53.133837890625045],[123.6078125,53.546533203124994],[120.98544921875012,53.28457031250002],[120.09453125000007,52.787207031250034],[120.0675781250001,52.632910156250034],[120.65615234375,52.56665039062503],[120.74980468750007,52.096533203125006],[120.06689453125003,51.60068359375006],[119.16367187500006,50.40600585937503],[119.34628906250012,50.278955078124994],[119.25986328125012,50.06640625000003],[118.4515625,49.84448242187503],[117.8734375,49.51347656250002],[116.6833007812501,49.82377929687499],[116.551171875,49.92031250000002],[116.35117187500012,49.97807617187499],[116.21679687500003,50.00927734375003],[116.13457031250002,50.01079101562499],[115.9259765625001,49.95214843750003],[115.79521484375002,49.90590820312502],[115.71777343750003,49.88061523437503],[115.58798828125006,49.88603515624996],[115.42919921874997,49.89648437499997],[115.36503906250002,49.911767578124966],[115.27451171875006,49.948876953124994],[115.00332031250005,50.138574218749994],[114.74316406249997,50.23369140625002],[114.29707031250004,50.27441406250006],[113.57421874999997,50.00703125000001],[113.44550781250004,49.94160156250001],[113.31904296875004,49.87431640624999],[113.16416015625012,49.79716796874999],[113.09208984375007,49.692529296874994],[113.05556640625,49.61625976562499],[112.91484375000002,49.569238281249994],[112.80644531250007,49.52358398437502],[112.69736328125012,49.50727539062498],[112.49492187500002,49.532324218750034],[112.07968750000006,49.42421875000002],[111.42929687500006,49.342626953125034],[111.3366210937501,49.355859374999966],[111.20419921875012,49.304296875000034],[110.82792968750002,49.16616210937505],[110.70976562500002,49.14296875000002],[110.42783203125006,49.219970703125],[110.32138671875012,49.215869140625045],[110.19990234375004,49.17041015625003],[109.5287109375,49.269873046875034],[109.45371093750012,49.29633789062501],[109.23671875000005,49.334912109374955],[108.61367187500005,49.32280273437499],[108.52246093750003,49.34150390624998],[108.4069335937501,49.39638671875005],[107.96542968750012,49.65351562500004],[107.91660156250012,49.947802734375045],[107.63095703125012,49.98310546875004],[107.3470703125,49.986669921875034],[107.23330078125,49.989404296874994],[107.14306640625003,50.03300781249999],[107.04023437500004,50.086474609375045],[106.94130859375005,50.19667968750002],[106.71113281250004,50.312597656250006],[106.57441406250004,50.32880859375004],[106.36845703125002,50.317578124999955],[106.21787109375006,50.304589843749966],[105.38359375000002,50.47373046874998],[104.07871093750012,50.15424804687498],[103.63291015625006,50.138574218749994],[103.49628906250004,50.16494140625005],[103.42119140625002,50.18706054687502],[103.3043945312501,50.200292968750034],[102.28837890625007,50.58510742187502],[102.31660156250004,50.71845703125001],[102.21503906250004,50.82944335937506],[102.19453125000004,51.05068359375002],[102.15195312500006,51.107519531250034],[102.14238281250007,51.21606445312503],[102.16005859375005,51.260839843750006],[102.1556640625,51.31376953124996],[102.1115234375001,51.353466796874955],[101.97919921875004,51.382226562499966],[101.82119140625,51.421044921874966],[101.57089843750006,51.46718750000005],[101.38125,51.45263671875],[100.53623046875006,51.713476562500034],[100.46894531250004,51.72607421875003],[100.23037109375,51.729833984375006],[100.0345703125,51.73710937499996],[99.92167968750002,51.755517578124994],[99.71923828124997,51.87163085937502],[98.89316406250006,52.11728515625006],[98.64052734375005,51.80117187500005],[98.103125,51.483544921874994],[97.82529296875012,50.985253906249994],[97.953125,50.85517578124998],[98.02978515625003,50.64462890624998],[98.07890625000002,50.60380859375002],[98.14501953124997,50.56855468750001],[98.22050781250007,50.55717773437502],[98.2794921875001,50.53325195312502],[98.25029296875002,50.30244140624998],[98.00390625000003,50.01425781249998],[97.35976562500005,49.741455078125],[97.20859375000006,49.73081054687506],[96.98574218750005,49.88281250000003],[96.31503906250012,49.90112304687503],[96.06552734375006,49.99873046875001],[95.52265625000004,49.911230468750034],[95.11142578125012,49.935449218749994],[94.93027343750006,50.04375],[94.8112304687501,50.04819335937506],[94.71806640625002,50.04326171875002],[94.67548828125004,50.02807617187506],[94.61474609375003,50.02373046874996],[94.56464843750004,50.08793945312499],[94.35468750000004,50.221826171874994],[94.25107421875006,50.55639648437503],[93.103125,50.60390625000002],[92.94130859375005,50.77822265625002],[92.85644531250003,50.78911132812502],[92.77929687500003,50.778662109375006],[92.738671875,50.71093749999997],[92.68134765625004,50.683203125],[92.6266601562501,50.68828124999999],[92.57890625000002,50.725439453125006],[92.42636718750006,50.803076171875006],[92.35478515625002,50.86416015625002],[92.29580078125,50.84980468750004],[92.19238281249997,50.700585937499994],[91.80429687500006,50.693603515625],[91.4464843750001,50.52216796874998],[91.41503906249997,50.46801757812506],[91.34082031249997,50.470068359375034],[91.30058593750002,50.46337890625],[91.2337890625,50.45239257812497],[91.02158203125012,50.41547851562501],[90.83808593750004,50.32373046874997],[90.76074218749997,50.30595703124999],[90.71435546874997,50.25942382812502],[90.65507812500007,50.22236328125001],[90.05371093750003,50.09375],[89.64384765625002,49.90302734374998],[89.65410156250007,49.71748046875001],[89.57919921875006,49.69970703125003],[89.475,49.66054687500005],[89.39560546875006,49.61152343750001],[89.24394531250007,49.62705078125006],[89.20292968750007,49.59570312499997],[89.17998046875002,49.5322265625],[89.10947265625012,49.50136718750002],[89.00839843750006,49.472802734374994],[88.97060546875,49.483740234375006],[88.94541015625012,49.50766601562498],[88.90019531250002,49.53969726562502],[88.86386718750006,49.52763671874996],[88.83164062500012,49.44843749999998],[88.633203125,49.486132812500045],[88.19257812500004,49.451708984375045],[88.13554687500002,49.38149414062502],[88.11572265624997,49.25629882812501],[88.0285156250001,49.219775390625045],[87.98808593750002,49.186914062499994],[87.9347656250001,49.16455078124997],[87.81425781250002,49.162304687499955],[87.7625,49.16582031249996],[87.5158203125001,49.122412109375006],[87.41669921875004,49.07661132812501],[87.32285156250012,49.085791015625006],[86.62646484374997,49.56269531250001],[86.67548828125004,49.77729492187501],[86.1808593750001,49.49931640624996],[85.2326171875001,49.61582031249998],[84.9894531250001,50.061425781249994],[84.32324218749997,50.239160156249966],[83.94511718750007,50.774658203125],[83.35732421875005,50.99458007812504],[82.76083984375012,50.89335937500002],[82.49394531250007,50.72758789062499],[81.46591796875006,50.73984375],[81.38828125000006,50.95649414062501],[81.0714843750001,50.96875],[81.12724609375002,51.19106445312502],[80.73525390625,51.29340820312498],[80.44804687500002,51.18334960937503],[80.42363281250002,50.94628906249997],[79.98623046875,50.774560546874966],[77.85996093750006,53.269189453124994],[76.48476562500005,54.02255859374998],[76.42167968750007,54.151513671874966],[76.65458984375007,54.14526367187503],[76.8373046875,54.4423828125],[75.43720703125004,54.08964843749999],[75.22021484374997,53.89379882812506],[74.45195312500007,53.64726562500002],[74.35156250000003,53.487646484375006],[73.85898437500006,53.61972656249998],[73.40693359375004,53.44755859374999],[73.30566406250003,53.707226562499955],[73.71240234375003,54.04238281250002],[73.22988281250005,53.957812500000045],[72.62226562500004,54.13432617187502],[72.44677734375003,53.94184570312498],[72.18603515625003,54.32563476562501],[72.00449218750006,54.20566406249998],[71.09316406250005,54.21220703124999],[71.18554687500003,54.59931640624998],[70.73808593750007,55.30517578125],[70.18242187500002,55.162451171875034],[68.9772460937501,55.389599609374955],[68.20625,55.16093750000002],[68.15585937500006,54.97670898437505],[65.476953125,54.62329101562497],[65.08837890624997,54.340185546875034],[64.46123046875002,54.38417968750002],[61.92871093750003,53.94648437500004],[61.231054687500006,54.01948242187498],[60.97949218749997,53.62172851562505],[61.53496093750002,53.52329101562506],[61.22890625,53.445898437500006],[61.19921874999997,53.28715820312502],[61.65986328125004,53.22846679687504],[62.08271484375004,53.00541992187499],[61.047460937500006,52.97246093750002],[60.77441406249997,52.67578124999997],[60.99453125000005,52.33686523437504],[60.03027343749997,51.93325195312505],[60.464746093749994,51.651171875000045],[61.55468750000003,51.32460937500005],[61.38945312500002,50.86103515625001],[60.94228515625005,50.69550781250004],[60.42480468749997,50.67915039062498],[60.05859374999997,50.850292968749955],[59.812402343749994,50.58203125],[59.523046875,50.492871093749955],[59.4523437500001,50.62041015625002],[58.88369140625005,50.694433593750006],[58.359179687500074,51.063818359375034],[57.83886718750003,51.091650390625006],[57.44218750000002,50.88886718749998],[57.01171874999997,51.06518554687503],[56.49140625000004,51.01953124999997],[55.68623046875004,50.582861328125006],[54.64160156250003,51.011572265625034],[54.555273437500006,50.535791015624994],[54.139746093750006,51.04077148437503],[53.33808593750004,51.48237304687504],[52.57119140625005,51.481640624999955],[52.21914062499999,51.709375],[51.344531250000074,51.47534179687503],[51.16347656250005,51.6474609375],[50.79394531249997,51.729199218749955],[50.246875,51.28950195312498],[49.49804687500003,51.08359375000006],[49.32343750000004,50.851708984374966],[48.625097656250006,50.61269531250005],[48.7589843750001,49.92832031250006],[48.33496093750003,49.858251953125006],[47.7057617187501,50.37797851562502],[47.42919921874997,50.35795898437502],[46.889550781249994,49.69697265625001],[46.80205078125002,49.36708984375002],[47.031347656250006,49.150292968749994],[46.70263671875003,48.80556640625002],[46.660937500000074,48.41225585937502],[47.06464843750004,48.23247070312499],[47.292382812499994,47.74091796875004],[47.48193359374997,47.80390624999998],[48.16699218750003,47.70878906249996],[48.959375,46.77460937499998],[48.558398437500074,46.75712890624999],[48.54121093750004,46.60561523437502],[49.232226562500074,46.33715820312503],[48.683691406250006,46.08618164062497],[48.72958984375006,45.896826171875034],[48.4870117187501,45.93486328124996],[47.63330078124997,45.58403320312499],[47.46328125,45.67968750000003],[47.5294921875001,45.530224609374955],[47.3512695312501,45.21772460937498],[46.7072265625001,44.503320312499994],[47.30703125000005,44.103125],[47.462792968749994,43.55502929687498],[47.64648437500003,43.88461914062498],[47.463183593750074,43.03505859375002],[48.572851562500006,41.84448242187503],[47.79101562499997,41.19926757812502],[47.31767578125002,41.28242187500001],[46.74931640625002,41.812597656250006],[46.42988281250004,41.890966796875006],[46.21269531250002,41.989892578124994],[45.63857421875005,42.20507812500003],[45.63427734374997,42.234716796875034],[45.72753906249997,42.47504882812498],[45.70527343750004,42.49809570312496],[45.56289062499999,42.53574218749998],[45.34375,42.52978515625003],[45.16025390625006,42.675],[45.07158203125002,42.69414062500002],[44.94335937499997,42.73027343750002],[44.870996093749994,42.75639648437499],[44.850488281249994,42.746826171875],[44.77109375000006,42.61679687499998],[44.69179687499999,42.709619140624966],[44.64433593750002,42.734716796875034],[44.50585937500003,42.748632812500006],[44.329492187499994,42.703515624999966],[44.10273437500004,42.616357421874994],[44.004687500000074,42.59560546875002],[43.95742187500005,42.56655273437505],[43.825976562500074,42.571533203125],[43.759863281250006,42.593847656250006],[43.738378906250006,42.61699218750002],[43.74990234375005,42.65751953125002],[43.79541015624997,42.702978515625034],[43.78261718750005,42.747021484374955],[43.62304687500003,42.80771484374998],[43.5578125000001,42.844482421875],[43.089160156250074,42.9890625],[43.00019531250004,43.04965820312506],[42.991601562499994,43.09150390624998],[42.76064453125005,43.169580078124966],[41.58056640624997,43.21923828124997],[41.460742187500074,43.276318359374955],[41.35820312500002,43.33339843750005],[41.08310546875006,43.37446289062498],[40.94199218750006,43.41806640624998],[40.801660156249994,43.479931640624955],[40.64804687500006,43.53388671875004],[40.084570312500006,43.553125],[40.02373046875002,43.48486328125],[39.873632812500006,43.47280273437502],[38.71728515624997,44.28808593750003],[38.18125,44.41967773437503],[37.851464843749994,44.698828125000034],[37.49511718750003,44.69526367187504],[37.20478515625004,44.97197265624999],[36.62763671875004,45.15131835937504],[36.941210937500074,45.289697265624994],[36.72041015625004,45.371875],[36.8659179687501,45.42705078124999],[37.21357421875004,45.272314453125006],[37.6471679687501,45.37719726562506],[37.61240234375006,45.56469726562506],[37.93310546875003,46.001708984375],[38.014257812500006,46.047753906249966],[38.07958984375003,45.93481445312506],[38.18359374999997,46.09482421875006],[38.49228515625006,46.09052734374998],[37.913867187500074,46.40649414062503],[37.766503906249994,46.63613281250002],[38.50097656249997,46.663671875000034],[38.43867187500004,46.813085937500006],[39.29345703125003,47.105761718750045],[39.19570312499999,47.268847656250045],[39.023730468750074,47.27221679687503],[38.928320312500006,47.175683593749994],[38.55244140625004,47.15034179687498],[38.7619140625001,47.261621093749994],[38.21435546875003,47.091455078124966],[38.36884765625004,47.609960937500006],[38.90029296875005,47.85512695312502],[39.77871093750005,47.88754882812506],[39.95791015625005,48.268896484375034],[39.8356445312501,48.54277343749996],[39.6447265625001,48.591210937499966],[39.792871093749994,48.807714843750034],[40.00361328125004,48.82207031250002],[39.68652343749997,49.007910156250034],[40.10878906250005,49.251562500000034],[40.080664062500006,49.576855468749955],[39.780566406250074,49.57202148437503],[39.17480468750003,49.85595703124997],[38.91835937499999,49.82470703125],[38.258593750000074,50.05234375],[38.046875,49.92001953125006],[37.42285156249997,50.411474609375006],[36.619433593750074,50.209228515625],[36.1164062500001,50.408544921875006],[35.59111328125002,50.36875],[35.31191406250005,51.043896484374955],[35.0640625,51.203417968750045],[34.21386718750003,51.25537109375006],[34.12109375000003,51.67915039062498],[34.397851562499994,51.780419921874994],[33.735253906249994,52.344775390625045],[32.435449218749994,52.307226562500034],[32.12226562500004,52.05058593749996],[31.763378906250097,52.10107421875003],[31.758593750000017,52.125830078125034],[31.690625,52.22065429687498],[31.64990234374997,52.26220703125],[31.60156250000003,52.284814453124994],[31.57734375000004,52.31230468749999],[31.585546875,52.532470703125],[31.56484375,52.75922851562501],[31.53515624999997,52.798242187499966],[31.442773437499994,52.86181640625003],[31.35302734374997,52.93344726562498],[31.295117187500097,52.98979492187499],[31.25878906249997,53.01669921875006],[31.364550781250017,53.13896484375002],[31.388378906250097,53.18481445312503],[31.41787109375005,53.196044921875],[31.849707031250006,53.106201171875],[32.14199218750005,53.091162109375034],[32.46933593750006,53.270312500000045],[32.578027343749994,53.312402343749994],[32.644433593749994,53.32890624999999],[32.70429687500004,53.33632812499999],[32.45097656250002,53.6533203125],[32.20039062500004,53.78125],[31.99218750000003,53.796875],[31.82080078124997,53.79194335937498],[31.754199218750017,53.81044921875002],[31.825292968750006,53.93500976562501],[31.837792968749994,54.00078124999999],[31.825976562500074,54.030712890624955],[31.79199218749997,54.05590820312503],[31.62841796874997,54.111181640625006],[31.403613281250017,54.195947265624966],[31.299121093750017,54.29169921875001],[31.184765625000097,54.452978515625006],[31.074804687500063,54.491796875],[31.154882812500063,54.610937500000034],[31.152148437500017,54.625341796875034],[31.12128906250004,54.64848632812496],[30.984179687500074,54.695898437500034],[30.79882812499997,54.78325195312499],[30.79101562499997,54.806005859375006],[30.804492187500074,54.8609375],[30.829882812500017,54.91499023437498],[30.977734375000097,55.05048828124998],[30.977734375000097,55.08779296875002],[30.958886718749994,55.13759765625005],[30.87744140625003,55.223437500000045],[30.81445312499997,55.27871093750002],[30.81054687499997,55.306982421875006],[30.82099609375004,55.330273437499955],[30.900585937500097,55.397412109374955],[30.906835937500063,55.57001953125004],[30.625585937500006,55.666259765625],[30.23359375000004,55.84521484375006],[30.04267578125004,55.83642578125003],[29.93701171874997,55.84526367187499],[29.881640625000074,55.83232421875002],[29.82392578125004,55.79511718749998],[29.74414062499997,55.770410156249994],[29.630078125000097,55.75117187499998],[29.482226562500074,55.6845703125],[29.412988281249994,55.72485351562506],[29.35341796875005,55.784375],[29.375,55.938720703125],[28.284277343750006,56.055908203125],[28.14794921875003,56.142919921875034],[28.202050781250023,56.260400390624994],[28.191699218750045,56.31557617187505],[28.169238281250017,56.386865234374994],[28.11083984375,56.51069335937501],[28.103125,56.545703125000045],[27.89208984375003,56.741064453125034],[27.88154296875001,56.82416992187501],[27.848632812500057,56.85341796875002],[27.806054687499994,56.86708984375005],[27.639453125000074,56.84565429687504],[27.83027343750004,57.19448242187505],[27.83828125000008,57.247705078124966],[27.82861328124997,57.293310546875006],[27.796875,57.316943359375045],[27.538671875000063,57.429785156250034],[27.51113281250005,57.508154296875006],[27.469726562500057,57.524023437500034],[27.35195312500005,57.528125],[27.4,57.66679687499999],[27.542089843750063,57.799414062500006],[27.778515625000068,57.87070312500006],[27.502441406250057,58.221337890624994],[27.434179687500006,58.787255859374994],[28.15107421875004,59.374414062499966],[28.0125,59.484277343749966],[28.05800781250008,59.781542968750045],[28.334570312500034,59.69252929687502],[28.518164062500034,59.849560546874955],[28.947265625000057,59.828759765624994],[29.147265625000045,59.999755859375],[30.12255859374997,59.873583984375074],[30.172656250000017,59.957128906250034],[29.72119140624997,60.19531249999997],[29.069140625000017,60.19145507812499],[28.643164062500006,60.375292968750045],[28.512792968750006,60.67729492187502],[27.797656250000074,60.53613281250003],[29.69013671875004,61.54609375000001],[31.18671875000004,62.48139648437504],[31.533984375000017,62.885400390624994],[31.180859375000097,63.208300781250074],[29.991503906250074,63.73515625000002],[30.50390625000003,64.02060546875],[30.513769531250006,64.2],[30.04189453125005,64.44335937499997],[30.072851562500063,64.76503906250005],[29.60419921875004,64.968408203125],[29.826953125000017,65.14506835937502],[29.608007812500006,65.248681640625],[29.715917968750063,65.62456054687502],[30.102734375000097,65.72626953125004],[29.066210937500045,66.89174804687497],[29.988085937500017,67.66826171874999],[29.343847656250006,68.06186523437506],[28.685156250000034,68.189794921875],[28.470703125000057,68.48837890625],[28.77285156250005,68.84003906249995],[28.414062500000057,68.90415039062506],[28.96582031250003,69.02197265625],[29.38828125,69.29814453125005],[30.08730468750005,69.43286132812503],[30.18017578124997,69.63583984375],[30.860742187499994,69.53842773437503],[30.869726562500006,69.78344726562506],[31.546972656250063,69.696923828125],[31.997949218749994,69.80991210937503],[31.98457031250004,69.95366210937499],[33.00781249999997,69.72211914062498],[32.91503906249997,69.60170898437497],[32.17675781250003,69.67402343749995],[32.37773437500002,69.47910156250003],[32.99980468750002,69.4701171875],[32.97890625000005,69.367333984375],[33.45429687500004,69.42817382812495],[33.14121093750006,69.068701171875],[33.684375,69.31025390625001],[35.85791015625003,69.19174804687503],[37.73056640625006,68.69213867187503],[38.43017578125003,68.35561523437505],[39.568945312500006,68.07172851562501],[39.82333984375006,68.05859375],[39.80927734375004,68.15083007812498],[40.38066406250002,67.831884765625],[40.96640625000006,67.71347656250003],[41.358789062499994,67.20966796874998],[41.18896484375003,66.82617187500003],[40.10332031250002,66.29995117187502],[38.65390625000006,66.06904296874995],[35.51347656250002,66.39580078125002],[34.82460937499999,66.61113281249999],[34.48261718750004,66.55034179687505],[34.4515625,66.651220703125],[33.15019531250002,66.84394531250001],[32.93046875000002,67.08681640625002],[31.895312500000074,67.16142578125002],[33.65595703125004,66.44262695312506],[33.36054687500004,66.32954101562501],[34.112695312499994,66.225244140625],[34.69179687500005,65.95185546874998],[34.77695312500006,65.76826171874998],[34.40644531250004,65.39575195312503],[35.03535156250004,64.44023437500005],[35.802050781250074,64.3353515625],[36.3649414062501,64.00283203125002],[37.44218750000002,63.813378906249966],[37.9679687500001,63.949121093749994],[38.0622070312501,64.09101562499995],[37.953710937500006,64.32011718749999],[37.183691406250006,64.40849609375007],[36.6242187500001,64.75053710937502],[36.534570312499994,64.93862304687497],[36.88281249999997,65.17236328124997],[39.7580078125001,64.57705078125002],[40.05781250000004,64.77075195312497],[40.44492187500006,64.7787109375],[39.7980468750001,65.349853515625],[39.816503906250006,65.59794921874999],[41.4757812500001,66.12343750000002],[42.21054687500006,66.51967773437502],[43.23320312500002,66.41552734375003],[43.653125,66.2509765625],[43.54189453125005,66.12338867187503],[43.84375,66.14238281249999],[44.10439453125005,66.00859374999999],[44.42929687500006,66.93774414062503],[43.7824218750001,67.25449218749998],[44.20468750000006,68.25375976562498],[43.33320312500004,68.67338867187502],[44.04804687500004,68.54882812499997],[45.891992187499994,68.47968750000001],[46.69042968750003,67.84882812500001],[45.52871093750005,67.75756835937497],[44.90214843750002,67.41313476562505],[45.56220703125004,67.18559570312507],[45.88535156250006,66.89106445312501],[46.4923828125001,66.80019531249997],[47.65585937500006,66.97592773437498],[47.87470703125004,67.58417968749998],[48.83320312500004,67.681494140625],[48.75429687500005,67.89594726562501],[49.15527343750003,67.87041015625005],[51.994726562500006,68.53876953124995],[52.3966796875001,68.35170898437505],[52.72265624999997,68.484033203125],[52.34404296875002,68.60815429687497],[53.80195312500004,68.99589843750002],[54.49121093750003,68.992333984375],[53.797656250000074,68.90747070312503],[53.9308593750001,68.43554687499997],[53.260546875000074,68.26748046875002],[54.476171875,68.29414062499995],[54.86132812500003,68.20185546874998],[55.418066406250006,68.56782226562501],[56.04365234375004,68.64887695312501],[57.126855468749994,68.55400390625005],[58.17304687500004,68.88974609375006],[59.0573242187501,69.00605468750004],[59.37050781250005,68.73837890625003],[59.09902343750005,68.4443359375],[59.725683593750006,68.35161132812502],[59.89599609374997,68.70634765624999],[60.489160156249994,68.72895507812498],[60.93359374999997,68.98676757812501],[60.17060546875004,69.59091796875],[60.90908203125005,69.84711914062495],[64.19042968750003,69.53466796875],[64.89628906250002,69.247802734375],[67.00244140625003,68.87358398437505],[68.37119140625006,68.31425781250005],[69.14052734375005,68.95063476562501],[68.54277343750002,68.96708984374999],[68.00585937499997,69.48002929687505],[67.62412109375,69.58442382812501],[67.06445312500003,69.69370117187498],[66.89667968750004,69.55380859374998],[67.28476562500006,70.73872070312498],[67.14335937500002,70.83754882812502],[66.70224609375006,70.81850585937497],[66.63964843749997,71.08139648437498],[68.2692382812501,71.68281250000001],[69.61181640625003,72.98193359375],[69.73828124999997,72.88496093749998],[71.5001953125001,72.91367187500003],[72.812109375,72.69140624999997],[72.57412109375,72.01254882812506],[71.86728515625,71.457373046875],[72.70449218750005,70.96323242187498],[72.5767578125,68.96870117187498],[73.59169921875005,68.48188476562501],[73.13945312500002,68.18134765624998],[73.06679687500005,67.766943359375],[71.84746093750002,67.00761718750005],[71.36523437500003,66.96152343749998],[71.53955078125003,66.68310546875],[70.72490234375007,66.51943359374997],[70.38281249999997,66.60249023437501],[70.69072265625002,66.74531249999998],[70.2833984375001,66.68579101562503],[69.8771484375001,66.84545898437506],[69.21777343749997,66.82861328125],[69.01347656250002,66.78833007812503],[69.19433593749997,66.57866210937505],[70.33945312500006,66.34238281250006],[71.35800781250006,66.35942382812505],[71.91699218749997,66.24672851562502],[72.32158203125002,66.33212890625],[72.4173828125,66.56079101562506],[73.79208984375,66.99531250000001],[74.07451171875007,67.41411132812499],[74.76953124999997,67.76635742187497],[74.39140625000007,68.42060546874995],[74.57958984375003,68.751220703125],[76.10751953125006,68.975732421875],[76.45917968750004,68.97827148437497],[77.2384765625001,68.46958007812498],[77.17441406250012,67.77851562499998],[77.77158203125006,67.57026367187501],[78.92246093750006,67.58911132812503],[77.58828125000005,67.75190429687498],[77.66484375000002,68.19038085937495],[77.99511718749997,68.25947265624998],[77.65068359375007,68.90302734375001],[76.00097656249997,69.23505859374998],[75.42001953125,69.23862304687498],[74.81484375,69.09057617187503],[73.83603515625006,69.143212890625],[73.578125,69.80297851562503],[74.34335937500006,70.57871093749998],[73.08623046875007,71.44492187500006],[73.67177734375,71.84506835937503],[74.99218749999997,72.14482421874999],[74.78681640625004,72.811865234375],[75.15244140625,72.85273437499998],[75.74140625000004,72.29624023437503],[75.273828125,71.95893554687495],[75.33203125000003,71.34174804687498],[76.92900390625002,71.12788085937504],[77.58964843750007,71.16791992187501],[78.32060546875002,70.93041992187503],[78.94218750000002,70.93378906250001],[79.08388671875,71.00200195312505],[78.58769531250007,70.993896484375],[78.21259765625004,71.26630859374998],[76.43339843750002,71.55249023437503],[76.03242187500004,71.91040039062503],[76.87138671875002,72.03300781250005],[77.77753906250004,71.83642578125006],[78.23242187500003,71.95229492187502],[78.01640625000007,72.092041015625],[77.49287109375004,72.07172851562504],[77.47158203125,72.19213867187506],[78.22539062500007,72.37744140625006],[79.4220703125001,72.38076171875002],[80.7625,72.08916015625002],[81.66162109374997,71.71596679687502],[82.75781250000003,71.76411132812498],[83.23359375000004,71.66816406249995],[82.32285156250006,71.26000976562503],[82.16318359375012,70.59814453125003],[82.22119140625003,70.39570312499998],[82.86914062499997,70.95483398437503],[83.03017578125,70.58051757812498],[82.6823242187501,70.21772460937498],[83.0807617187501,70.09301757812497],[83.07382812500012,70.276708984375],[83.73593750000006,70.54648437499998],[83.15126953125005,71.10361328124998],[83.534375,71.68393554687498],[83.20029296875012,71.87470703125004],[82.64541015625005,71.92524414062504],[82.09365234375,72.26542968750005],[80.82705078125005,72.48828124999997],[80.84160156250007,72.94916992187498],[80.4245117187501,73.23115234374998],[80.5832031250001,73.56845703125003],[85.20058593750005,73.72153320312506],[86.89296875,73.88710937500002],[85.79257812500012,73.438330078125],[86.67705078125002,73.10678710937503],[85.93896484374997,73.45649414062495],[87.12011718750003,73.61503906250002],[87.57119140625,73.81074218750001],[86.57109375000007,74.24375],[86.0013671875,74.316015625],[86.39580078125007,74.45009765624997],[86.89794921874997,74.32534179687497],[87.22968750000004,74.3638671875],[85.79101562499997,74.6451171875],[86.20126953125006,74.81621093750005],[86.65146484375012,74.68242187500005],[87.04179687500007,74.77885742187499],[87.46757812500002,75.01323242187505],[86.93906250000006,75.06811523437503],[87.00595703125012,75.16982421874997],[87.67138671874997,75.12958984375004],[90.18496093750005,75.59106445312497],[94.07519531249997,75.91289062499999],[92.89042968750002,75.90996093750002],[93.25927734375003,76.09877929687502],[95.57871093750012,76.13730468749998],[96.07548828125007,76.08198242187498],[95.65332031250003,75.89218750000003],[96.50859375000002,76.00556640624995],[96.49707031249997,75.89121093750003],[98.66201171875005,76.24267578125003],[99.77041015625,76.02875976562498],[99.5407226562501,75.79858398437497],[99.85136718750007,75.93027343749998],[99.8253906250001,76.13593749999995],[98.80566406250003,76.48066406250004],[100.84375,76.52519531250005],[101.59775390625006,76.43920898437503],[100.92802734375002,76.55673828124998],[100.98994140625004,76.99047851562497],[102.61015625000007,77.508544921875],[104.01455078125,77.73041992187501],[106.05957031249997,77.39052734375002],[104.20244140625002,77.101806640625],[106.9416015625001,77.034375],[107.42978515625006,76.92656250000002],[106.41357421874997,76.51225585937499],[107.72216796875003,76.52231445312498],[108.18164062500003,76.73784179687502],[111.39248046875,76.686669921875],[112.09394531250004,76.48032226562506],[111.94267578125002,76.38046875000003],[112.61953125,76.38354492187506],[112.65625,76.05356445312498],[113.2726562500001,76.25166015625001],[113.5638671875,75.89165039062502],[113.85722656250007,75.92128906250002],[113.56757812500004,75.56840820312499],[112.45302734375,75.83017578125003],[112.95566406250006,75.571923828125],[113.24296875000007,75.61142578125003],[113.72617187500012,75.45063476562498],[112.92490234375012,75.01503906249997],[109.84033203124997,74.32197265624998],[109.8102539062501,74.16918945312503],[108.19951171875002,73.69409179687497],[107.27109375000006,73.62104492187501],[106.67939453125004,73.3306640625],[106.1886718750001,73.3080078125],[105.14394531250005,72.77705078125001],[105.7082031250001,72.836669921875],[106.47792968750005,73.13940429687503],[107.750390625,73.17314453125007],[109.33105468749997,73.48745117187497],[109.85527343750002,73.47246093750002],[110.86816406249997,73.73071289062497],[109.70673828125004,73.74375],[110.2614257812501,74.01743164062503],[111.05625,73.93935546875002],[111.13085937500003,74.05283203125003],[111.55058593750007,74.02851562499998],[111.22812500000012,73.96855468750002],[111.40039062500003,73.827734375],[112.14726562500007,73.70893554687498],[112.79541015625003,73.74609375],[112.83593750000003,73.96206054687502],[113.03281250000006,73.91386718750007],[113.4162109375001,73.647607421875],[113.15693359375004,73.45957031249998],[113.49091796875004,73.34609375000002],[113.12783203125,72.8306640625],[113.66455078124997,72.63452148437503],[113.2155273437501,72.80585937500001],[113.88623046875003,73.34580078124998],[113.51035156250012,73.50498046874998],[115.33769531250007,73.70258789062501],[118.87089843750007,73.53789062500002],[118.45703124999997,73.46440429687507],[118.43027343750012,73.24653320312501],[119.750390625,72.97910156250006],[122.26015625,72.88056640624995],[122.75195312500003,72.906494140625],[122.61523437499997,73.02792968750006],[123.1603515625001,72.95488281250002],[123.62226562500004,73.19326171875],[123.49111328125005,73.666357421875],[124.54121093750004,73.75126953125007],[125.59853515625005,73.447412109375],[126.25449218750012,73.548193359375],[126.55253906250007,73.33491210937498],[127.03134765625006,73.54746093750003],[127.74033203125012,73.48154296875],[129.10058593750003,73.11235351562502],[128.5990234375,72.895166015625],[129.01728515625004,72.8724609375],[129.250390625,72.70517578125003],[128.41826171875002,72.53515625000003],[129.28134765625006,72.43769531249998],[129.41064453124997,72.16630859375002],[128.93496093750005,72.07949218750002],[127.8034179687501,72.43403320312504],[127.84140625000012,72.308251953125],[128.91142578125002,71.75532226562495],[129.21025390625007,71.91694335937501],[129.46083984375,71.73930664062499],[128.84326171875003,71.6634765625],[129.76191406250004,71.11953125000002],[130.53710937500003,70.89252929687495],[130.75712890625002,70.96235351562498],[131.02158203125006,70.74609374999997],[132.0353515625001,71.24404296875],[132.65390625000006,71.92597656250001],[133.6888671875,71.434228515625],[134.70273437500012,71.38681640625003],[135.55917968750006,71.6103515625],[136.09033203125003,71.61958007812501],[137.9396484375001,71.1333984375],[137.84404296875007,71.22680664062503],[138.31406250000006,71.32553710937498],[137.918359375,71.38408203124999],[138.23417968750007,71.596337890625],[138.78017578125,71.62900390624998],[139.209375,71.44477539062501],[139.98417968750007,71.49150390625005],[139.72294921875002,71.88496093749998],[139.35927734375005,71.95136718750001],[140.18769531250004,72.19130859374997],[139.17636718750006,72.16347656249997],[139.14082031250004,72.32973632812502],[139.60117187500012,72.49609374999997],[141.07929687500004,72.5869140625],[140.80820312500006,72.89096679687503],[142.06142578125005,72.72080078125],[146.25292968749997,72.442236328125],[146.234765625,72.34970703125],[144.77636718749997,72.38227539062495],[144.16923828125002,72.25878906250003],[144.29492187499997,72.19262695312497],[146.83183593750007,72.29541015625003],[146.11328125000003,71.94497070312497],[146.23027343750007,72.1375],[145.75859375000007,72.22587890624999],[145.75673828125005,71.94130859375002],[145.06396484374997,71.92607421875002],[145.18857421875012,71.69580078125],[146.07324218749997,71.80834960937503],[147.26181640625006,72.327880859375],[149.50156250000012,72.16430664062497],[150.01689453125002,71.89565429687505],[149.04873046875005,71.79575195312503],[148.9681640625,71.69047851562499],[150.59980468750004,71.5201171875],[150.09765624999997,71.22656249999997],[150.96777343749997,71.38046874999998],[151.58242187500005,71.28696289062503],[152.09277343749997,71.02329101562503],[151.76201171875002,70.98247070312499],[152.50878906250003,70.83447265625003],[156.68457031250003,71.09375],[158.03701171875005,71.03925781250001],[159.35068359375006,70.79072265625001],[160.00644531250006,70.30966796875006],[159.72939453125005,69.87021484375006],[160.91074218750012,69.60634765625002],[161.03554687500005,69.09819335937507],[161.30986328125007,68.98227539062498],[160.85605468750006,68.53833007812506],[161.565625,68.90517578125],[161.53691406250002,69.379541015625],[162.16601562499997,69.61157226562503],[163.20136718750004,69.71474609375],[166.82031250000003,69.49956054687505],[167.8568359375,69.72822265624998],[168.30302734375002,69.27148437500003],[169.31064453125006,69.07954101562498],[169.60986328124997,68.78603515624997],[170.53759765624997,68.82539062500001],[170.99541015625002,69.04531250000005],[170.58222656250004,69.58334960937506],[170.16093750000007,69.62656249999998],[170.48681640625003,70.107568359375],[173.27744140625006,69.823828125],[173.43867187500004,69.94682617187502],[175.92148437500012,69.89531250000002],[179.27265624999998,69.25966796875002],[180,68.98344726562505],[180,65.06723632812498],[178.51953125000003,64.60297851562498],[177.7486328125,64.71704101562503],[176.88085937499997,65.08193359375002],[176.34101562500015,65.04731445312501],[177.03730468750004,64.99965820312497],[177.22285156250004,64.861669921875],[177.06875,64.78666992187502],[176.06113281250012,64.96088867187498],[174.54882812500009,64.68388671875005],[176.0565429687501,64.90473632812498],[176.35097656250005,64.70512695312502],[176.14091796875007,64.58583984375005],[177.42744140625015,64.76337890624998],[177.43291015625002,64.44448242187502],[177.6875,64.30473632812507],[178.04472656250013,64.21958007812503],[178.22949218749991,64.36440429687497],[178.38144531250018,64.26088867187502],[178.73144531250003,63.667089843750006],[178.44042968750009,63.605566406250006],[178.74404296874994,63.39477539062503],[178.79296874999997,63.54033203125002],[179.38857421875,63.14721679687497],[179.25957031250002,63.00830078125],[179.5705078125001,62.6875],[179.12070312500012,62.32036132812499],[177.292578125,62.59902343750002],[177.33896484375006,62.781347656250034],[177.02353515625012,62.777246093749994],[177.15947265625007,62.56098632812498],[174.51435546875015,61.823632812499966],[173.6234375,61.716064453125],[173.13183593749997,61.40664062500002],[172.85654296875006,61.469189453124955],[172.90800781250002,61.311621093750006],[172.39609375000006,61.16738281250002],[172.39277343750004,61.061767578125],[170.60820312500007,60.434912109375034],[170.3509765625,59.965527343749955],[169.9826171875001,60.067089843749955],[169.2267578125001,60.59594726562497],[168.1375,60.57392578125001],[167.22675781250004,60.406298828125045],[166.27304687500012,59.85625],[166.13603515625007,59.979345703125034],[166.35214843750006,60.48481445312498],[165.08457031250006,60.09858398437498],[164.95371093750006,59.843603515625006],[164.52529296875,60.06127929687503],[164.11328125000003,59.89755859374998],[164.13505859375002,59.984375],[163.74384765625004,60.02802734374998],[163.36484375000012,59.78144531250004],[163.27285156250005,59.302587890625006],[162.14160156249997,58.44741210937502],[161.96005859375012,58.07690429687506],[162.39140625000002,57.717236328124955],[162.65429687499997,57.94824218750003],[163.22578125000004,57.790380859375034],[162.77929687500003,57.35761718749998],[162.79111328125012,56.875390624999966],[162.92207031250004,56.72265625000003],[163.2565429687501,56.68803710937499],[163.33554687500012,56.232519531250006],[163.04736328125003,56.044677734375],[162.84033203125003,56.065625],[162.628125,56.232275390625034],[163.03837890625002,56.521875],[162.67148437500006,56.49008789062498],[162.52822265625005,56.260693359374955],[162.08496093749997,56.08964843750002],[161.72392578125002,55.49614257812499],[162.10556640625006,54.75214843750004],[161.62480468750002,54.51625976562502],[160.77265625000004,54.54135742187498],[160.0744140625001,54.18916015625001],[159.84375,53.78364257812498],[160.02509765625004,53.129589843749955],[159.58593750000003,53.237695312499966],[158.74541015625002,52.90893554687506],[158.47207031250005,53.032373046874966],[158.6087890625,52.873632812500034],[158.49316406249997,52.383154296875034],[158.10351562500003,51.80961914062499],[156.84746093750002,51.006591796875],[156.74775390625004,50.969287109375045],[156.52119140625004,51.38027343750002],[156.36474609374997,52.509375],[156.11035156250003,52.86616210937504],[155.62031250000004,54.86455078125002],[155.5548828125001,55.348486328125034],[155.98251953125012,56.69521484375002],[156.8488281250001,57.290185546874994],[156.97675781250004,57.46630859375],[156.82988281250007,57.77963867187498],[157.4503906250001,57.79926757812498],[157.66640625000005,58.01977539062506],[158.27519531250007,58.00898437499998],[159.21064453125004,58.519433593749966],[159.8473632812501,59.127148437499955],[161.75351562500012,60.15229492187501],[162.06816406250002,60.466406250000034],[163.70996093749997,60.916796875000045],[163.55351562500002,61.02563476562503],[164.00546875000006,61.34379882812499],[163.80439453125004,61.46137695312498],[164.20722656250004,62.29223632812506],[164.59833984375004,62.470556640625034],[165.20810546875012,62.37397460937501],[165.41738281250005,62.447070312500045],[164.418359375,62.704638671875045],[163.33173828125004,62.550927734374994],[163.01767578125006,61.89106445312504],[163.25781249999997,61.69946289062497],[163.08525390625002,61.570556640625],[162.85595703125003,61.705029296874955],[162.39257812500003,61.662109375],[160.76660156249997,60.753320312499966],[160.17363281250002,60.638427734375],[160.37890625000003,61.02548828124998],[159.79042968750005,60.956640625],[160.309375,61.894384765625006],[159.55234375000012,61.71948242187497],[159.18925781250007,61.92939453125001],[158.07011718750002,61.75361328125001],[157.46933593750012,61.798925781250006],[157.0841796875001,61.67568359375002],[155.71611328125002,60.682373046875],[154.97080078125012,60.376660156249955],[154.29306640625006,59.833349609375034],[154.1498046875,59.52851562500001],[154.97128906250006,59.44960937500002],[155.16044921875002,59.19013671875001],[154.45800781250003,59.21655273437497],[154.01093750000004,59.075537109375006],[153.69521484375005,59.22475585937505],[153.36113281250002,59.214794921874955],[152.81787109375003,58.92626953124997],[152.31962890625002,59.03076171875003],[152.08789062499997,58.910449218750045],[151.32675781250006,58.875097656250034],[151.12109375000003,59.08251953125003],[152.26064453125,59.22358398437498],[151.34824218750012,59.561132812500006],[150.4835937500001,59.494384765625],[150.66728515625002,59.55634765625001],[149.64257812499997,59.770410156249994],[149.06523437500002,59.63051757812502],[149.20498046875,59.488183593749966],[148.79707031250004,59.532324218750006],[148.74414062499997,59.37353515624997],[148.96464843750007,59.36914062499997],[148.72666015625006,59.257910156250034],[148.25742187500006,59.414208984374994],[147.51445312500002,59.2685546875],[146.53720703125006,59.45698242187501],[146.0495117187501,59.17055664062502],[145.55458984375,59.413525390624955],[143.19218750000002,59.3701171875],[142.58027343750004,59.240136718749966],[140.79023437500004,58.30346679687503],[140.446875,57.81367187499998],[138.66210937500003,56.96552734375004],[137.69150390625006,56.13935546875004],[135.2625,54.94331054687498],[135.25771484375005,54.73149414062499],[135.85156249999997,54.583935546874955],[136.797265625,54.62099609375005],[136.71884765625006,53.804101562499994],[137.15537109375012,53.82167968750002],[137.14160156249997,54.182226562500006],[137.66601562500003,54.283300781250006],[137.3392578125,54.10053710937498],[137.83476562500002,53.94672851562498],[137.25371093750007,53.546142578125],[137.95048828125007,53.60356445312499],[138.52792968750012,53.959863281249994],[138.56914062500002,53.818798828124955],[138.24970703125004,53.524023437500034],[138.45068359375003,53.53701171875002],[138.69941406250004,53.869726562500034],[138.65722656249997,54.29833984375003],[139.31972656250005,54.19296874999998],[139.707421875,54.27714843749999],[140.68759765625012,53.59643554687503],[141.3737304687501,53.29277343749999],[141.18125,53.01528320312505],[140.83964843750002,53.087890625],[141.25585937499997,52.84013671874996],[141.13242187500006,52.435693359374994],[141.48525390625,52.17851562500002],[141.36689453125004,51.92065429687506],[140.93261718750003,51.61992187499999],[140.5208984375,50.80019531250005],[140.62451171874997,50.08242187500002],[140.46269531250002,49.911474609375006],[140.51718750000012,49.59614257812498],[140.17060546875004,48.52368164062497],[138.58681640625005,47.057226562500006],[138.33691406250003,46.543408203124955],[137.68544921875,45.81835937500003],[136.14228515625004,44.489111328125034],[135.87460937500012,44.37353515625003],[135.1310546875001,43.52573242187506],[134.01044921875004,42.94746093750001],[133.15996093750007,42.69697265624998],[132.70898437500003,42.875830078125006],[132.30380859375006,42.88330078125],[132.30957031249997,43.31352539062499],[131.8666015625,43.09516601562501],[131.93896484374997,43.30195312500004],[131.15830078125012,42.62602539062499],[130.709375,42.656396484374966],[130.8341796875001,42.52294921875006],[130.68730468750007,42.30253906249999]]],[[[107.69550781250004,78.13090820312505],[107.48164062500004,78.057763671875],[106.41552734375003,78.13984375000001],[107.69550781250004,78.13090820312505]]],[[[102.88476562499997,79.25395507812505],[102.4123046875001,78.83544921874997],[103.80078124999997,79.14926757812503],[104.45205078125005,78.880029296875],[105.14599609375003,78.81884765625006],[105.31259765625012,78.49990234375],[104.74179687500012,78.33974609374997],[102.79667968750007,78.18789062500002],[101.20410156249997,78.19194335937505],[99.50029296875002,77.97607421875003],[101.590625,79.350439453125],[102.25126953125002,79.25605468749995],[102.40488281250006,79.43320312499998],[102.88476562499997,79.25395507812505]]],[[[76.24892578125005,79.65107421874995],[77.58896484375012,79.50190429687504],[76.64951171875012,79.493408203125],[76.24892578125005,79.65107421874995]]],[[[92.68349609375005,79.685205078125],[91.37626953125007,79.83549804687505],[91.22929687500007,80.03071289062504],[93.803125,79.904541015625],[92.68349609375005,79.685205078125]]],[[[51.409277343750006,79.94423828125],[50.09140625,79.98056640625003],[50.93632812500002,80.09423828125],[51.409277343750006,79.94423828125]]],[[[59.68886718750005,79.95581054687506],[58.91923828125002,79.98461914062506],[59.54453125000006,80.11884765624995],[59.68886718750005,79.95581054687506]]],[[[97.67451171875004,80.15825195312499],[97.65166015625002,79.76064453125],[98.59648437500002,80.05219726562495],[100.0612304687501,79.77709960937506],[99.68066406250003,79.32333984374998],[99.04179687500007,79.29301757812502],[99.92929687500012,78.96142578124997],[98.41113281250003,78.78779296875004],[95.53105468750007,79.09809570312501],[95.02041015625005,79.05268554687498],[94.21875,79.40234375],[93.07080078124997,79.49531250000001],[94.98730468749997,80.096826171875],[95.28134765625012,80.030517578125],[97.67451171875004,80.15825195312499]]],[[[50.05175781250003,80.07431640625003],[49.55605468750005,80.15893554687503],[49.883691406249994,80.230224609375],[50.05175781250003,80.07431640625003]]],[[[57.07871093750006,80.35092773437498],[56.986914062500006,80.07148437499998],[55.811621093750006,80.08715820312497],[56.02441406250003,80.34130859374997],[57.07871093750006,80.35092773437498]]],[[[53.521386718749994,80.18520507812497],[52.34355468750002,80.213232421875],[52.85390625,80.40239257812499],[53.85166015625006,80.26835937500005],[53.521386718749994,80.18520507812497]]],[[[57.95625,80.12324218749995],[57.33232421875002,80.15810546875005],[57.075,80.49394531249999],[59.25546875000006,80.34321289062501],[58.39794921874997,80.31875],[57.95625,80.12324218749995]]],[[[54.41533203125002,80.47280273437502],[53.811914062499994,80.47622070312502],[53.87724609375002,80.60527343750002],[54.41533203125002,80.47280273437502]]],[[[47.441992187500006,80.853662109375],[48.44570312500005,80.80600585937506],[48.68359375000003,80.63325195312504],[47.7052734375001,80.76518554687499],[46.141406250000074,80.44672851562495],[45.969042968750074,80.56948242187502],[44.9049804687501,80.61127929687501],[47.441992187500006,80.853662109375]]],[[[62.167773437500074,80.83476562500005],[62.07578125000006,80.616943359375],[61.05126953124997,80.418603515625],[60.27832031249997,80.49443359374999],[59.649804687499994,80.43125],[59.59228515625003,80.81650390624998],[62.167773437500074,80.83476562500005]]],[[[50.278125,80.92724609374997],[51.70361328125003,80.68764648437502],[48.81103515625003,80.35371093750001],[48.97753906250003,80.16259765624997],[47.73730468749997,80.08168945312502],[47.89296875000005,80.23925781249997],[46.991015625000074,80.182763671875],[46.644433593749994,80.30034179687507],[47.89580078125002,80.52905273437503],[49.087792968749994,80.515771484375],[49.24433593750004,80.82138671875],[50.278125,80.92724609374997]]],[[[80.02666015625007,80.84814453125003],[79.09853515625005,80.81206054687505],[79.21738281250012,80.96035156249997],[80.27958984375007,80.94980468750003],[80.02666015625007,80.84814453125003]]],[[[61.1408203125001,80.95034179687497],[60.0783203125001,80.99916992187497],[61.45742187499999,81.10395507812501],[61.1408203125001,80.95034179687497]]],[[[54.71894531250004,81.11596679687497],[56.47226562500006,80.99824218749995],[57.58037109375002,80.75546874999998],[55.88339843750006,80.62841796875003],[54.66816406250004,80.73867187500002],[54.04541015624997,80.87197265625],[54.71894531250004,81.11596679687497]]],[[[58.62236328125002,81.04165039062502],[58.930566406249994,80.83168945312497],[58.28564453124997,80.76489257812503],[57.21093749999997,81.01708984374997],[58.04951171875004,81.11845703125002],[58.62236328125002,81.04165039062502]]],[[[63.37382812500002,80.70009765624997],[62.59257812500002,80.85302734375006],[64.80205078125002,81.197265625],[65.43740234375005,80.93071289062507],[63.37382812500002,80.70009765624997]]],[[[91.56718750000007,81.14121093750003],[91.2228515625001,81.063818359375],[89.90117187500002,81.17070312500002],[91.56718750000007,81.14121093750003]]],[[[96.52656250000004,81.0755859375],[97.86992187500007,80.76328125000006],[97.02539062499997,80.53554687500002],[97.29843750000006,80.27275390625005],[93.6546875,80.009619140625],[91.52382812500005,80.35854492187502],[93.2625,80.79125976562497],[92.59257812500007,80.780859375],[92.7103515625,80.87216796875003],[95.1595703125,81.27099609375003],[95.80068359375005,81.28046874999998],[96.52656250000004,81.0755859375]]],[[[57.81025390625004,81.54604492187502],[58.563867187499994,81.41840820312504],[57.858691406250074,81.36806640625],[57.76972656250004,81.16972656249999],[55.71669921875005,81.1884765625],[55.46601562500004,81.31118164062502],[57.81025390625004,81.54604492187502]]],[[[63.65097656250006,81.60932617187501],[62.10644531249997,81.679345703125],[63.709570312500006,81.68730468750002],[63.65097656250006,81.60932617187501]]],[[[58.29541015625003,81.715185546875],[58.13457031250002,81.82797851562498],[59.261816406250006,81.85419921874998],[59.35644531250003,81.75898437499995],[58.29541015625003,81.715185546875]]]]},"properties":{"name":"Russia","childNum":73}},{"geometry":{"type":"Polygon","coordinates":[[[30.50996093750001,-1.067285156250009],[30.47705078125,-1.0830078125],[30.47021484375,-1.131152343750003],[30.508105468750017,-1.208203125000011],[30.631933593750006,-1.367480468750003],[30.710742187500017,-1.396777343750003],[30.76220703125,-1.458691406250011],[30.812597656250006,-1.563085937500006],[30.8765625,-2.143359375],[30.85498046875,-2.265429687500003],[30.828710937500006,-2.338476562500006],[30.7625,-2.371679687500006],[30.71484375,-2.363476562500011],[30.656640625000023,-2.373828125],[30.593359375,-2.396777343750003],[30.553613281250023,-2.400097656250011],[30.408496093750017,-2.31298828125],[30.117285156250006,-2.416601562500006],[29.93017578125,-2.339550781250011],[29.8681640625,-2.71640625],[29.698046875000017,-2.794726562500003],[29.390234375,-2.80859375],[29.10205078125,-2.595703125],[29.01435546875001,-2.72021484375],[28.893945312500023,-2.635058593750003],[28.876367187500023,-2.400292968750009],[29.13154296875001,-2.195117187500003],[29.196582031250017,-1.719921875000011],[29.576953125000017,-1.387890625000011],[29.82539062500001,-1.335546875],[29.930078125000023,-1.469921875000011],[30.360253906250023,-1.074609375],[30.41230468750001,-1.063085937500006],[30.46992187500001,-1.066015625],[30.50996093750001,-1.067285156250009]]]},"properties":{"name":"Rwanda","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[41.98769531250005,16.715625],[42.059960937499994,16.803515625000017],[42.15781250000006,16.570703125000023],[41.80156250000002,16.778759765624955],[41.86044921875006,17.002539062499977],[41.98769531250005,16.715625]]],[[[46.53144531250004,29.09624023437499],[47.433203125,28.989550781250017],[47.671289062499994,28.53315429687504],[48.442480468750006,28.542919921874983],[48.80898437499999,27.895898437499966],[48.797167968750074,27.72431640625001],[49.2375,27.49272460937499],[49.17509765625002,27.43764648437505],[49.40527343749997,27.18095703124996],[50.149804687499994,26.66264648437499],[50.00810546875002,26.678515625000017],[50.21386718750003,26.30849609375005],[50.15546875000004,26.100537109374955],[50.03164062499999,26.11098632812505],[50.55791015625002,25.086669921875],[50.66689453125005,24.96381835937501],[50.72558593749997,24.869384765625057],[50.80439453125004,24.789257812499983],[50.928320312500006,24.595117187500023],[50.96601562500004,24.573925781249983],[51.022753906250074,24.56523437499999],[51.09335937500006,24.564648437499955],[51.178027343750074,24.586718750000017],[51.26796875,24.607226562500017],[51.33847656250006,24.564355468749994],[51.41123046875006,24.570800781250057],[51.30986328125002,24.340380859375017],[51.56835937500003,24.286181640625074],[51.592578125000074,24.07885742187503],[52.55507812500005,22.932812499999955],[55.104296875000074,22.621484375000023],[55.185839843750074,22.7041015625],[55.64101562499999,22.001855468749994],[54.97734375000002,19.995947265625006],[51.977636718750006,18.996142578125074],[49.04199218750003,18.58178710937503],[48.17216796875002,18.156933593749983],[47.57958984374997,17.448339843750034],[47.44179687499999,17.111865234375045],[47.14355468749997,16.946679687499966],[46.97568359375006,16.953466796875034],[46.72763671875006,17.26557617187501],[45.5353515625001,17.30205078124999],[45.14804687500006,17.427441406249955],[43.91699218749997,17.32470703124997],[43.41796875000003,17.516259765625023],[43.19091796875003,17.359375],[43.16503906249997,16.689404296874955],[42.79931640624997,16.37177734375001],[42.29394531249997,17.434960937499966],[41.75,17.88574218749997],[41.22949218750003,18.678417968749983],[40.75917968750005,19.755468750000034],[40.080664062500006,20.265917968750017],[39.728320312500074,20.390332031249955],[39.27607421875004,20.973974609375034],[39.093554687500074,21.31035156249999],[39.14707031250006,21.518994140624955],[38.98789062500006,21.88173828125005],[39.06201171874997,22.592187500000023],[38.46416015625002,23.71186523437504],[37.91972656250002,24.185400390625063],[37.54306640625006,24.291650390625023],[37.18085937500004,24.82001953125001],[37.26630859375004,24.960058593750034],[37.14882812499999,25.291113281249977],[35.18046875000002,28.03486328125004],[34.722070312499994,28.130664062500017],[34.625,28.064501953125017],[34.95078125,29.353515625],[36.068457031250006,29.200537109375006],[36.28281250000006,29.355371093750023],[36.47607421874997,29.49511718749997],[36.59179687500003,29.666113281250006],[36.703906250000074,29.831640624999977],[36.75527343750005,29.86601562499996],[37.46923828125003,29.995068359374955],[37.49072265625003,30.01171874999997],[37.55361328125005,30.14458007812496],[37.63359375000002,30.313281250000045],[37.64990234374997,30.330957031249994],[37.669726562500074,30.34814453125003],[37.862890625,30.44262695312503],[37.98007812500006,30.5],[37.47900390624997,31.007763671874955],[37.10527343750002,31.35517578125004],[36.95859375000006,31.491503906250017],[37.215625,31.55610351562501],[37.49335937500004,31.625878906250023],[38.111425781250006,31.78115234375005],[38.37548828124997,31.84746093749996],[38.962304687499994,31.99492187499999],[38.99707031249997,32.00747070312505],[39.145410156249994,32.12451171875],[39.36865234374997,32.09174804687498],[39.70410156250003,32.04252929687499],[40.02783203124997,31.995019531249994],[40.3693359375001,31.93896484375003],[40.47890625000005,31.89335937499999],[42.07441406250004,31.08037109374999],[43.77373046875002,29.84921875],[44.71650390625004,29.19360351562503],[46.35644531250003,29.06367187500001],[46.53144531250004,29.09624023437499]]]]},"properties":{"name":"Saudi Arabia","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[36.87138671875002,21.996728515624994],[36.92695312500001,21.58652343749999],[37.25859375000002,21.108544921874994],[37.25722656250002,21.03940429687499],[37.15058593750001,21.103759765625],[37.14111328125,20.98178710937499],[37.19316406250002,20.12070312499999],[37.471289062500006,18.820117187500003],[38.609472656250006,18.005078125],[38.422460937500006,17.823925781249997],[38.39716796875001,17.778369140625003],[38.38554687500002,17.751269531250003],[38.37373046875001,17.717333984375003],[38.34736328125001,17.68359375],[38.28984375000002,17.637011718750003],[38.26728515625001,17.61669921875],[38.253515625,17.584765625],[37.78242187500001,17.4580078125],[37.547460937500006,17.324121093749994],[37.51015625000002,17.288134765625003],[37.45292968750002,17.108691406250003],[37.41103515625002,17.06171875],[37.24882812500002,17.056884765625],[37.16953125,17.04140625],[37.0615234375,17.061279296875],[37.00898437500001,17.058886718750003],[36.995214843750006,17.020556640625003],[36.97578125000001,16.86655273437499],[36.97871093750001,16.800585937500003],[36.887792968750006,16.624658203124994],[36.91376953125001,16.296191406250003],[36.566015625,15.362109375],[36.4267578125,15.132080078125],[36.44814453125002,14.940087890624994],[36.470800781250006,14.736474609374994],[36.52431640625002,14.2568359375],[36.12519531250001,12.75703125],[35.67021484375002,12.623730468749997],[35.1123046875,11.816552734374994],[34.93144531250002,10.864794921874989],[34.77128906250002,10.746191406249991],[34.571875,10.880175781249989],[34.34394531250001,10.658642578124997],[34.31123046875001,10.190869140624997],[34.078125,9.461523437499991],[33.87148437500002,9.506152343749989],[33.96328125000002,9.861767578124997],[33.90703125000002,10.181445312499989],[33.13007812500001,10.745947265624991],[33.073339843750006,11.606103515624994],[33.199316406250006,12.21728515625],[32.721875,12.223095703124997],[32.73671875000002,12.009667968749994],[32.072265625,12.006738281249994],[32.338476562500006,11.710107421874994],[32.42080078125002,11.089111328125],[31.224902343750017,9.799267578124997],[30.75537109375,9.731201171875],[30.003027343750006,10.277392578124989],[29.60546875,10.065087890624994],[29.47314453125,9.768603515624989],[28.979589843750006,9.594189453124997],[28.844531250000017,9.326074218749994],[28.048925781250006,9.32861328125],[27.880859375,9.601611328124989],[27.07421875,9.613818359374989],[26.65869140625,9.484130859375],[25.91914062500001,10.169335937499994],[25.858203125000017,10.406494140625],[25.211718750000017,10.329931640624991],[25.066992187500006,10.293798828124991],[24.785253906250006,9.774658203125],[24.53193359375001,8.886914062499997],[24.147363281250023,8.665625],[23.53730468750001,8.815820312499994],[23.46826171875,9.11474609375],[23.62265625,9.340625],[23.646289062500017,9.822900390624994],[22.86005859375001,10.919677734375],[22.922656250000017,11.344873046874994],[22.591113281250017,11.579882812499989],[22.580957031250023,11.990136718749994],[22.472460937500017,12.067773437499994],[22.352343750000017,12.660449218749989],[21.928125,12.678125],[21.825292968750006,12.79052734375],[22.228125,13.32958984375],[22.1064453125,13.7998046875],[22.53857421875,14.161865234375],[22.38154296875001,14.550488281249997],[22.6708984375,14.722460937500003],[22.93232421875001,15.162109375],[22.933886718750017,15.533105468749994],[23.10517578125001,15.702539062499994],[23.970800781250006,15.721533203124991],[23.980273437500017,19.496630859375003],[23.980273437500017,19.99594726562499],[24.9794921875,20.002587890624994],[24.980273437500017,21.995849609375],[28.036425781250017,21.995361328125],[31.092675781250023,21.994873046875],[31.260644531250023,22.00229492187499],[31.400292968750023,22.202441406250003],[31.486132812500017,22.14780273437499],[31.434472656250023,21.995849609375],[36.87138671875002,21.996728515624994]]]},"properties":{"name":"Sudan","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[34.078125,9.461523437499991],[34.07275390625,8.545263671874991],[33.95332031250001,8.443505859374994],[33.28105468750002,8.437255859375],[32.99892578125002,7.899511718749991],[33.902441406250006,7.509521484375],[34.06425781250002,7.225732421874994],[34.71064453125001,6.660302734374994],[34.98359375000001,5.858300781249994],[35.26835937500002,5.492285156249991],[35.08447265625,5.311865234374991],[34.87832031250002,5.109570312499997],[34.63984375000001,4.87548828125],[34.38017578125002,4.620654296874989],[34.176855468750006,4.419091796874994],[33.97607421875,4.22021484375],[33.74160156250002,3.985253906249994],[33.568457031250006,3.81171875],[33.489355468750006,3.755078125],[32.99726562500001,3.880175781249989],[32.33574218750002,3.706201171874994],[32.13593750000001,3.519726562499997],[31.79804687500001,3.802636718749994],[31.547167968750017,3.677587890624991],[31.15234375,3.785595703124997],[30.83857421875001,3.49072265625],[30.757226562500023,3.62421875],[30.586718750000017,3.62421875],[30.50830078125,3.835693359375],[30.194921875,3.98193359375],[29.676855468750006,4.5869140625],[29.469628906250023,4.61181640625],[29.224902343750017,4.391894531249989],[28.72705078125,4.504980468749991],[28.427539062500017,4.324169921874997],[28.19208984375001,4.350244140624994],[27.7880859375,4.644677734374994],[27.4033203125,5.109179687499989],[27.143945312500023,5.722949218749989],[26.514257812500006,6.069238281249994],[26.30859375,6.455322265625],[26.36181640625,6.635302734374989],[25.27890625,7.427490234375],[25.18134765625001,7.557226562499991],[25.20039062500001,7.807910156249989],[24.853320312500017,8.137548828124991],[24.291406250000023,8.29140625],[24.147363281250023,8.665625],[24.53193359375001,8.886914062499997],[24.785253906250006,9.774658203125],[25.066992187500006,10.293798828124991],[25.211718750000017,10.329931640624991],[25.858203125000017,10.406494140625],[25.91914062500001,10.169335937499994],[26.65869140625,9.484130859375],[27.07421875,9.613818359374989],[27.880859375,9.601611328124989],[28.048925781250006,9.32861328125],[28.844531250000017,9.326074218749994],[28.979589843750006,9.594189453124997],[29.47314453125,9.768603515624989],[29.60546875,10.065087890624994],[30.003027343750006,10.277392578124989],[30.75537109375,9.731201171875],[31.224902343750017,9.799267578124997],[32.42080078125002,11.089111328125],[32.338476562500006,11.710107421874994],[32.072265625,12.006738281249994],[32.73671875000002,12.009667968749994],[32.721875,12.223095703124997],[33.199316406250006,12.21728515625],[33.073339843750006,11.606103515624994],[33.13007812500001,10.745947265624991],[33.90703125000002,10.181445312499989],[33.96328125000002,9.861767578124997],[33.87148437500002,9.506152343749989],[34.078125,9.461523437499991]]]},"properties":{"name":"S. Sudan","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-12.280615234374977,14.809033203124997],[-12.228417968749994,14.45859375],[-12.019189453124994,14.206494140624997],[-11.960888671874983,13.875292968750003],[-12.05419921875,13.633056640625],[-11.831689453124994,13.315820312499994],[-11.634960937499983,13.369873046875],[-11.390380859375,12.941992187499991],[-11.389404296875,12.404394531249991],[-12.399072265624994,12.340087890625],[-12.930712890624989,12.532275390624989],[-13.061279296875,12.489990234375],[-13.082910156249994,12.633544921875],[-13.729248046875,12.673925781249991],[-14.06484375,12.67529296875],[-14.349218749999977,12.676416015624994],[-15.196093749999989,12.679931640625],[-15.3779296875,12.588964843749991],[-15.574804687499977,12.490380859374994],[-15.839550781249983,12.43789062499999],[-16.144189453124994,12.45742187499999],[-16.24150390624999,12.443310546874997],[-16.41630859374999,12.36767578125],[-16.521337890624977,12.3486328125],[-16.656933593749983,12.364355468749991],[-16.711816406249994,12.354833984374991],[-16.76030273437499,12.52578125],[-16.44287109375,12.609472656249991],[-16.59765625,12.715283203124997],[-16.743896484375,12.58544921875],[-16.763330078124994,13.064160156249997],[-16.648779296874977,13.154150390624991],[-15.834277343749989,13.156445312499997],[-15.814404296874983,13.325146484374997],[-15.286230468749977,13.39599609375],[-15.151123046875,13.556494140624991],[-14.246777343749983,13.23583984375],[-13.826708984374989,13.4078125],[-13.977392578124977,13.54345703125],[-14.405468749999983,13.503710937500003],[-15.108349609374983,13.81210937499999],[-15.426855468749977,13.727001953124997],[-15.509667968749994,13.586230468750003],[-16.56230468749999,13.587304687499994],[-16.766943359374977,13.904931640624994],[-16.618115234374983,14.04052734375],[-16.791748046875,14.004150390625],[-17.168066406249977,14.640625],[-17.345800781249977,14.729296875],[-17.445019531249983,14.651611328125],[-17.53564453125,14.755126953125],[-17.147167968749983,14.922021484374994],[-16.843408203124994,15.293994140625003],[-16.570751953124983,15.734423828125003],[-16.535253906249977,15.83837890625],[-16.502050781249977,15.917333984374991],[-16.480078124999977,16.097216796875003],[-16.441015624999977,16.204541015624997],[-16.239013671875,16.531298828125003],[-15.768212890624994,16.485107421875],[-14.990625,16.676904296874994],[-14.300097656249989,16.580273437499997],[-13.868457031249989,16.148144531249997],[-13.756640624999989,16.172509765624994],[-13.40966796875,16.05917968749999],[-13.105273437499989,15.57177734375],[-12.735253906249994,15.13125],[-12.40869140625,14.889013671874991],[-12.280615234374977,14.809033203124997]]]},"properties":{"name":"Senegal","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[103.9697265625,1.331445312499994],[103.65019531249999,1.325537109374991],[103.81796875000003,1.447070312499989],[103.9697265625,1.331445312499994]]]},"properties":{"name":"Singapore","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-37.10332031249996,-54.065625],[-36.70380859375001,-54.10810546874999],[-36.64741210937498,-54.26230468749996],[-36.32646484374996,-54.251171875],[-35.79858398437497,-54.76347656250002],[-36.08549804687499,-54.86679687500001],[-36.885986328125,-54.33945312499996],[-37.63090820312496,-54.16748046875001],[-37.61884765625001,-54.04208984375004],[-38.017431640625034,-54.008007812500026],[-37.10332031249996,-54.065625]]]},"properties":{"name":"S. Geo. and S. Sandw. Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-5.692138671874972,-15.997753906249997],[-5.782519531250017,-16.00400390625002],[-5.707861328124977,-15.90615234374998],[-5.692138671874972,-15.997753906249997]]]},"properties":{"name":"Saint Helena","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[160.57626953125006,-11.797851562500028],[160.44306640625004,-11.814941406249957],[159.98632812499997,-11.494726562500006],[160.57626953125006,-11.797851562500028]]],[[[166.13320312500005,-10.757812499999972],[165.90400390625004,-10.851464843749966],[165.79101562500003,-10.784765624999963],[166.02382812500005,-10.6611328125],[166.13320312500005,-10.757812499999972]]],[[[161.71533203124997,-10.387304687499991],[162.10537109375005,-10.45380859375004],[162.37333984375002,-10.823242187499986],[161.78681640625004,-10.716894531249991],[161.53789062500007,-10.566406249999972],[161.4870117187501,-10.361425781249963],[161.29394531250003,-10.326464843750031],[161.30478515625012,-10.204394531250031],[161.71533203124997,-10.387304687499991]]],[[[161.54785156249997,-9.625683593749997],[161.55380859375012,-9.769726562500026],[161.40976562500006,-9.681640625000028],[161.36416015625,-9.353417968750037],[161.54785156249997,-9.625683593749997]]],[[[159.75039062500005,-9.272656250000011],[159.97060546875,-9.433300781249969],[160.35458984375006,-9.421582031249983],[160.81894531250006,-9.862792968749986],[160.64921875000002,-9.92861328124998],[159.80273437499997,-9.763476562500003],[159.61230468749997,-9.470703124999943],[159.62558593750012,-9.311230468749969],[159.75039062500005,-9.272656250000011]]],[[[160.1681640625001,-8.995507812500037],[160.40751953125007,-9.140332031249969],[160.10537109375,-9.080761718749997],[160.1681640625001,-8.995507812500037]]],[[[159.18857421875006,-9.123535156250014],[159.03632812500004,-9.075],[159.12978515625,-8.99306640624998],[159.22841796875005,-9.029980468749955],[159.18857421875006,-9.123535156250014]]],[[[158.10791015625003,-8.684179687500034],[157.93759765625006,-8.73642578125002],[157.90927734375006,-8.565625],[158.10546874999997,-8.536816406250026],[158.10791015625003,-8.684179687500034]]],[[[157.38896484375002,-8.713476562499963],[157.2123046875,-8.565039062500006],[157.37949218750012,-8.420898437499943],[157.38896484375002,-8.713476562499963]]],[[[160.7494140625,-8.313964843750014],[160.99765625000006,-8.612011718749983],[160.94433593750003,-8.799023437499983],[161.15869140624997,-8.961816406250009],[161.36738281250004,-9.61123046874998],[160.77207031250012,-8.963867187499986],[160.7140625000001,-8.539257812499997],[160.59042968750006,-8.372753906249997],[160.7494140625,-8.313964843750014]]],[[[157.76347656250002,-8.242187499999957],[157.89843749999997,-8.506347656249943],[157.81933593750003,-8.612011718749983],[157.58789062500003,-8.445410156249963],[157.5580078125,-8.269921875],[157.30244140625004,-8.33330078124996],[157.21757812500002,-8.262792968749977],[157.490625,-7.965722656250037],[157.76347656250002,-8.242187499999957]]],[[[157.171875,-8.108105468749997],[156.95830078125002,-8.014355468749997],[157.02412109375004,-7.867871093749997],[157.18613281250006,-7.941210937500017],[157.171875,-8.108105468749997]]],[[[156.687890625,-7.92304687500004],[156.5109375000001,-7.707812499999974],[156.5609375,-7.574023437499989],[156.80908203124997,-7.722851562500026],[156.687890625,-7.92304687500004]]],[[[159.8791015625001,-8.534277343749949],[158.9440429687501,-8.04072265625004],[158.457421875,-7.544726562499974],[158.734375,-7.604296875000031],[159.43144531250002,-8.029003906249955],[159.84306640625002,-8.326953124999989],[159.8791015625001,-8.534277343749949]]],[[[155.83984374999997,-7.097167968750014],[155.67753906250002,-7.08896484375002],[155.73896484375004,-6.972949218750017],[155.83984374999997,-7.097167968750014]]],[[[157.48671875000005,-7.330371093750003],[157.44130859375,-7.425683593749966],[157.10156249999997,-7.323632812499966],[156.4525390625,-6.638281249999963],[157.03027343750003,-6.891992187499952],[157.19335937499997,-7.160351562499997],[157.48671875000005,-7.330371093750003]]]]},"properties":{"name":"Solomon Is.","childNum":16}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-12.526074218749926,7.436328125000017],[-12.951611328124926,7.570849609374989],[-12.615234374999972,7.63720703125],[-12.5125,7.582421875000037],[-12.526074218749926,7.436328125000017]]],[[[-10.758593749999989,9.385351562499991],[-10.682714843750006,9.289355468749974],[-10.687646484374937,9.261132812499994],[-10.749951171874926,9.12236328124996],[-10.747021484374955,9.095263671875045],[-10.726855468749932,9.081689453125023],[-10.615966796875,9.059179687499977],[-10.500537109375017,8.687548828125017],[-10.677343749999977,8.400585937499997],[-10.712109374999955,8.335253906250017],[-10.686962890624983,8.321679687500009],[-10.652636718749989,8.330273437499983],[-10.604003906249943,8.319482421874994],[-10.55771484374992,8.315673828125028],[-10.496435546874977,8.362109374999974],[-10.394433593749966,8.480957031250028],[-10.360058593749983,8.49550781249998],[-10.283203124999972,8.48515625],[-10.285742187499949,8.454101562499986],[-10.314648437499983,8.310839843750017],[-10.359814453124926,8.187939453125026],[-10.570849609374932,8.071142578125034],[-10.6474609375,7.759375],[-10.878076171874994,7.538232421874994],[-11.267675781249977,7.232617187499997],[-11.507519531249983,6.906542968750003],[-12.48564453124996,7.386279296875045],[-12.480273437499932,7.75327148437502],[-12.697607421874977,7.715869140625045],[-12.850878906249932,7.818701171875034],[-12.956933593749966,8.145312500000045],[-13.148974609374989,8.214599609375043],[-13.272753906249989,8.429736328124989],[-13.085009765624932,8.42475585937504],[-12.894091796874932,8.62978515624998],[-13.181835937499955,8.576904296875043],[-13.206933593749994,8.843115234375006],[-13.059472656249966,8.881152343750031],[-13.292675781249955,9.04921875],[-13.077294921874966,9.069628906249974],[-12.958789062499989,9.263330078124994],[-12.755859374999943,9.373583984374989],[-12.557861328125,9.704980468749994],[-12.427978515625028,9.898144531250011],[-12.142333984375,9.87539062499999],[-11.911083984374955,9.993017578124977],[-11.273632812499955,9.996533203124983],[-11.205664062499949,9.977734374999969],[-11.180859374999955,9.925341796875045],[-11.047460937499977,9.786328125000054],[-10.758593749999989,9.385351562499991]]]]},"properties":{"name":"Sierra Leone","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-89.36259765624999,14.416015625],[-89.1205078125,14.370214843749991],[-88.51254882812499,13.978955078124997],[-88.504345703125,13.964208984374991],[-88.49765625,13.904541015625],[-88.482666015625,13.854248046875],[-88.44912109375,13.850976562499994],[-88.40849609374999,13.87539062499999],[-88.27622070312499,13.942675781250003],[-88.151025390625,13.987353515625003],[-87.99101562499999,13.879638671875],[-87.8919921875,13.894970703124997],[-87.80224609375,13.889990234374991],[-87.7314453125,13.841064453125],[-87.71533203125,13.812695312499997],[-87.781884765625,13.521386718749994],[-87.930859375,13.1806640625],[-88.68564453124999,13.281494140625],[-88.51201171874999,13.183935546874991],[-89.80419921875,13.560107421875003],[-90.09521484375,13.736523437499997],[-90.04814453124999,13.904052734375],[-89.54716796874999,14.241259765625003],[-89.5736328125,14.390087890624997],[-89.36259765624999,14.416015625]]]},"properties":{"name":"El Salvador","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-56.26708984374997,46.838476562500034],[-56.38476562499994,46.81943359375006],[-56.36464843749994,47.09897460937498],[-56.26708984374997,46.838476562500034]]]},"properties":{"name":"St. Pierre and Miquelon","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[6.659960937499989,0.120654296874989],[6.51972656250004,0.066308593750023],[6.468164062499994,0.22734375],[6.68691406250008,0.404394531249977],[6.75,0.24345703124996],[6.659960937499989,0.120654296874989]]],[[[7.423828125,1.567724609375006],[7.330664062500034,1.603369140624991],[7.414453125000051,1.699121093750037],[7.423828125,1.567724609375006]]]]},"properties":{"name":"São Tomé and Principe","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-54.03422851562499,3.62939453125],[-54.00957031249999,3.448535156249989],[-54.06318359375,3.353320312499989],[-54.18803710937499,3.178759765624989],[-54.203125,3.13818359375],[-54.17070312499999,2.993603515624997],[-54.18808593749999,2.874853515624991],[-54.1955078125,2.81787109375],[-54.256738281249994,2.713720703124991],[-54.402001953124994,2.461523437499991],[-54.53593749999999,2.343310546874989],[-54.56840820312499,2.342578124999989],[-54.604736328125,2.335791015624991],[-54.61625976562499,2.326757812499991],[-54.661865234375,2.327539062499994],[-54.697412109374994,2.359814453124997],[-54.72221679687499,2.441650390625],[-54.87607421874999,2.450390625],[-54.92656249999999,2.497363281249989],[-54.968408203124994,2.54833984375],[-54.978662109374994,2.59765625],[-55.005810546875,2.59296875],[-55.0703125,2.54833984375],[-55.11411132812499,2.539208984374994],[-55.1876953125,2.547509765624994],[-55.286035156249994,2.499658203124994],[-55.343994140625,2.48876953125],[-55.38535156249999,2.440625],[-55.73056640624999,2.406152343749994],[-55.957470703125,2.520458984374997],[-55.99350585937499,2.497509765624997],[-56.02036132812499,2.392773437499997],[-56.0451171875,2.364404296874994],[-56.087792968749994,2.34130859375],[-56.12939453125,2.299511718749997],[-56.1376953125,2.259033203125],[-56.073632812499994,2.236767578124997],[-56.02006835937499,2.158154296874997],[-55.96196289062499,2.095117187499994],[-55.91533203124999,2.03955078125],[-55.921630859375,1.976660156249991],[-55.929638671875,1.8875],[-56.01992187499999,1.842236328124997],[-56.4828125,1.942138671875],[-56.704345703125,2.036474609374991],[-57.19736328124999,2.853271484375],[-57.303662109375,3.377099609374994],[-57.646728515625,3.39453125],[-58.05429687499999,4.101660156249991],[-57.84599609374999,4.668164062499997],[-57.91704101562499,4.820410156249991],[-57.711083984374994,4.991064453124991],[-57.331005859375,5.020166015624994],[-57.20981445312499,5.195410156249991],[-57.3185546875,5.335351562499994],[-57.194775390625,5.5484375],[-56.96982421874999,5.992871093749997],[-56.235595703125,5.885351562499991],[-55.897607421874994,5.699316406249991],[-55.909912109375,5.892626953124989],[-55.648339843749994,5.985888671874989],[-54.83369140625,5.988330078124989],[-54.05419921875,5.807910156249989],[-54.08046875,5.502246093749989],[-54.4796875,4.836523437499991],[-54.350732421874994,4.054101562499994],[-54.03422851562499,3.62939453125]]]},"properties":{"name":"Suriname","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[22.538671875,49.072705078125],[22.52412109375001,49.031396484374994],[22.389453125000017,48.873486328125],[22.295214843750017,48.685839843749996],[22.142871093750017,48.568505859374994],[22.1318359375,48.405322265624996],[21.766992187500023,48.3380859375],[21.45136718750001,48.55224609375],[20.490039062500017,48.526904296874996],[20.333789062500017,48.295556640624994],[19.95039062500001,48.146630859374994],[19.625390625000023,48.223095703125],[18.791894531250023,48.000292968749996],[18.72421875,47.787158203124996],[17.76191406250001,47.770166015624994],[17.147363281250023,48.00595703125],[16.86542968750001,48.3869140625],[16.953125,48.598828125],[17.135644531250023,48.841064453125],[17.75849609375001,48.888134765625],[18.0859375,49.06513671875],[18.160937500000017,49.257373046874996],[18.83222656250001,49.510791015624996],[19.1494140625,49.4],[19.44160156250001,49.597705078124996],[19.77392578125,49.37216796875],[19.756640625000017,49.204394531249996],[20.0576171875,49.181298828124994],[20.36298828125001,49.38525390625],[20.868457031250017,49.314697265625],[21.079394531250017,49.418261718749996],[21.6396484375,49.411962890625],[22.020117187500006,49.209521484374996],[22.473046875000023,49.081298828125],[22.538671875,49.072705078125]]]},"properties":{"name":"Slovakia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[16.516210937500006,46.499902343749994],[16.427636718750023,46.5244140625],[16.321191406250023,46.534619140625],[16.1064453125,46.382226562499994],[15.608984375,46.171923828124996],[15.592578125000017,46.139990234375],[15.596875,46.109228515625],[15.675585937500017,45.983691406249996],[15.652148437500017,45.862158203125],[15.277050781250011,45.7326171875],[15.353710937500011,45.659912109375],[15.283593750000023,45.5796875],[15.291210937500011,45.541552734374996],[15.32666015625,45.502294921875],[15.339453125,45.467041015625],[15.242089843750023,45.44140625],[15.110449218750006,45.45078125],[14.95458984375,45.499902343749994],[14.793066406250006,45.47822265625],[14.649511718750006,45.571484375],[14.591796875,45.651269531249994],[14.56884765625,45.6572265625],[14.548448660714302,45.628388671875],[14.507586495535731,45.59039341517857],[14.42734375,45.505761718749994],[14.369921875000017,45.4814453125],[13.878710937500017,45.428369140624994],[13.577929687500017,45.516894531249996],[13.8447265625,45.59287109375],[13.831152343750006,45.680419921875],[13.663476562500023,45.7919921875],[13.6005859375,45.979785156249996],[13.509179687500023,45.973779296874994],[13.487695312500023,45.987109375],[13.480273437500017,46.009228515625],[13.486425781250006,46.03955078125],[13.548046875000011,46.089111328125],[13.616601562500023,46.133105468749996],[13.634960937500011,46.157763671874996],[13.632519531250011,46.177050781249996],[13.420996093750006,46.212304687499994],[13.399511718750006,46.317529296874994],[13.563281250000017,46.415087890624996],[13.637109375000023,46.448535156249996],[13.6796875,46.462890625],[13.7,46.520263671875],[14.5498046875,46.399707031249996],[14.893261718750011,46.605908203125],[15.957617187500006,46.677636718749994],[16.093066406250017,46.86328125],[16.283593750000023,46.857275390625],[16.516210937500006,46.499902343749994]]]},"properties":{"name":"Slovenia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[16.52851562500001,56.29052734375],[16.431640625,56.24375],[16.41230468750004,56.568994140624994],[17.02539062499997,57.345068359375006],[16.52851562500001,56.29052734375]]],[[[19.076464843750045,57.8359375],[18.813867187500023,57.70620117187502],[18.907910156250068,57.39833984375002],[18.146386718749994,56.920507812500006],[18.285351562500068,57.08320312500001],[18.136523437500045,57.55664062500003],[18.53740234374999,57.83056640625006],[18.90058593750001,57.91547851562504],[19.076464843750045,57.8359375]]],[[[19.156347656250063,57.92260742187497],[19.086523437500034,57.86499023437506],[19.134863281250034,57.98134765625002],[19.331445312500023,57.962890625],[19.156347656250063,57.92260742187497]]],[[[24.15546875000004,65.80527343750006],[23.102343750000074,65.73535156250003],[22.400976562500006,65.86210937499999],[22.254003906250006,65.59755859375002],[21.565527343750063,65.40810546874997],[21.609179687500074,65.261376953125],[21.410351562500068,65.31743164062505],[21.57392578125001,65.12578124999999],[21.138183593750057,64.80869140625006],[21.519628906250034,64.46308593749998],[20.76269531250003,63.86782226562505],[18.60644531250003,63.17827148437499],[18.31289062500008,62.996386718750045],[18.46308593750004,62.895849609375006],[18.170019531250034,62.789355468750074],[17.906640625000023,62.88676757812502],[18.037304687500068,62.60053710937498],[17.834472656250057,62.50273437500002],[17.410253906250063,62.508398437500034],[17.633691406249994,62.23300781250006],[17.374511718750057,61.866308593750034],[17.465429687500006,61.68447265625005],[17.196386718750006,61.72456054687504],[17.13076171875005,61.57573242187499],[17.25097656250003,60.70078125],[17.6611328125,60.53515625000003],[17.955761718750068,60.589794921874955],[18.85273437500001,60.02587890625],[18.970507812500045,59.757226562499994],[17.964257812500023,59.359375],[18.56025390625004,59.39448242187498],[18.285351562500068,59.109375],[16.978125,58.65415039062506],[16.214257812500023,58.636669921874955],[16.92382812499997,58.49257812499999],[16.651953125,58.43432617187503],[16.65224609375008,57.50068359374998],[16.348730468750063,56.70927734374996],[15.826660156250028,56.12495117187501],[14.782031250000017,56.16191406250002],[14.754785156250051,56.03315429687498],[14.401953125000034,55.97675781250004],[14.21503906250004,55.83261718749998],[14.341699218749994,55.52773437500002],[14.17373046875008,55.396630859374966],[12.885839843750063,55.41137695312506],[12.973925781250074,55.748144531250006],[12.471191406250057,56.29052734375],[12.801660156250051,56.263916015625],[12.65644531250004,56.44057617187502],[12.857421875000028,56.45239257812503],[12.883691406250051,56.61772460937496],[12.421484375000034,56.906396484374966],[11.449316406250063,58.118359374999955],[11.43154296875008,58.339990234374994],[11.24824218750004,58.369140625],[11.14716796875004,58.98862304687498],[11.19580078125,59.07827148437505],[11.388281250000063,59.036523437499966],[11.470703125000057,58.909521484375034],[11.64277343750004,58.92607421875002],[11.798144531250074,59.28989257812498],[11.680761718750034,59.59228515625003],[12.486132812500074,60.10678710937506],[12.588671874999989,60.450732421875045],[12.29414062500004,61.00268554687506],[12.706054687500028,61.059863281250074],[12.88076171875008,61.35229492187506],[12.155371093750006,61.720751953125045],[12.303515625000074,62.28559570312501],[11.999902343750051,63.29169921875001],[12.175195312500051,63.595947265625],[12.792773437500017,64],[13.203515625000023,64.07509765625],[13.960546875000063,64.01401367187498],[14.141210937500006,64.17353515624998],[14.077636718750028,64.464013671875],[13.650292968750023,64.58154296874997],[14.47968750000004,65.30146484374998],[14.543261718750045,66.12934570312498],[15.483789062500051,66.30595703124999],[15.422949218750006,66.48984374999998],[16.40351562500004,67.05498046875002],[16.12744140625,67.42583007812507],[16.783593750000023,67.89501953125],[17.324609375000023,68.10380859374999],[17.91669921875001,67.96489257812502],[18.303027343750045,68.55541992187497],[19.969824218750063,68.35639648437501],[20.348046875000023,68.84873046875003],[20.116699218750057,69.02089843750005],[20.622167968750006,69.036865234375],[21.99746093750005,68.52060546874998],[22.854101562500034,68.36733398437502],[23.63886718750004,67.95439453125002],[23.454882812500045,67.46025390625007],[23.733593750000068,67.42290039062499],[23.64150390625005,67.12939453124997],[23.988574218750045,66.81054687500003],[23.700292968750034,66.25263671874998],[24.15546875000004,65.80527343750006]]]]},"properties":{"name":"Sweden","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[31.9482421875,-25.957617187500006],[32.060546875,-26.018359375],[32.04140625000002,-26.28125],[32.10595703125,-26.52001953125],[32.112890625,-26.839453125],[32.02480468750002,-26.811132812500006],[31.994726562500006,-26.817480468750006],[31.967187500000023,-26.96064453125001],[31.946093750000017,-27.173632812500003],[31.958398437500023,-27.30585937500001],[31.742578125000023,-27.30996093750001],[31.469531250000017,-27.295507812500006],[31.274023437500006,-27.238378906250006],[31.063378906250023,-27.1123046875],[30.938085937500006,-26.915820312500003],[30.88330078125,-26.79238281250001],[30.806738281250006,-26.785253906250006],[30.794335937500023,-26.764257812500006],[30.803320312500006,-26.41347656250001],[31.08808593750001,-25.98066406250001],[31.207324218750017,-25.843359375],[31.33515625000001,-25.75556640625001],[31.382617187500017,-25.74296875],[31.415136718750006,-25.74658203125],[31.921679687500017,-25.96875],[31.9482421875,-25.957617187500006]]]},"properties":{"name":"Swaziland","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[55.54033203125002,-4.693066406250011],[55.54296875,-4.785546875],[55.383398437500006,-4.609277343750009],[55.45576171875001,-4.558789062500011],[55.54033203125002,-4.693066406250011]]]},"properties":{"name":"Seychelles","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[42.358984375,37.10859375],[41.78857421875,36.59716796875],[41.41679687500002,36.5146484375],[41.295996093750006,36.383349609374996],[41.354101562500006,35.640429687499996],[41.19472656250002,34.768994140625],[40.98701171875001,34.429052734375],[38.773535156250006,33.372216796874994],[36.818359375,32.317285156249994],[36.3720703125,32.3869140625],[35.78730468750001,32.734912109374996],[35.91347656250002,32.94960937499999],[35.869140625,33.43173828125],[36.03447265625002,33.58505859375],[35.98613281250002,33.75263671875],[36.36503906250002,33.83935546875],[36.27783203125,33.92529296875],[36.5849609375,34.221240234374996],[36.50439453125,34.432373046875],[36.32988281250002,34.499609375],[36.383886718750006,34.65791015625],[35.97626953125001,34.629199218749996],[35.902441406250006,35.420703125],[35.76445312500002,35.571582031249996],[35.83964843750002,35.84921875],[35.892675781250006,35.916552734374996],[35.96757812500002,35.910058593749994],[36.12734375000002,35.831445312499994],[36.15361328125002,35.833886718749994],[36.34755859375002,36.003515625],[36.37539062500002,36.171240234375],[36.63671875,36.233984375],[36.64140625000002,36.263525390625],[36.5375,36.45742187499999],[36.54667968750002,36.50634765625],[36.596875,36.7013671875],[36.62841796875,36.777685546875],[36.65859375000002,36.802539062499996],[36.77656250000001,36.79267578125],[36.94179687500002,36.7583984375],[36.9853515625,36.702392578125],[37.06621093750002,36.652636718749996],[37.43632812500002,36.643310546875],[37.523535156250006,36.6783203125],[37.7203125,36.743701171874996],[37.90664062500002,36.79462890625],[38.19169921875002,36.9015625],[38.7666015625,36.693115234375],[38.90644531250001,36.694677734375],[39.1083984375,36.680566406249994],[39.35664062500001,36.681591796875],[39.50146484375,36.70224609375],[39.6865234375,36.738623046875],[40.01640625000002,36.826074218749994],[40.705664062500006,37.097705078124996],[41.886816406250006,37.156396484374994],[42.05986328125002,37.2060546875],[42.16787109375002,37.288623046874996],[42.202734375,37.29726562499999],[42.24755859375,37.2822265625],[42.2685546875,37.2765625],[42.31289062500002,37.22958984375],[42.358984375,37.10859375]]]},"properties":{"name":"Syria","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-72.3328125,21.85136718749999],[-72.14433593750002,21.79272460937503],[-72.33544921874994,21.758007812499983],[-72.3328125,21.85136718749999]]]},"properties":{"name":"Turks and Caicos Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[23.980273437500017,19.496630859375003],[23.970800781250006,15.721533203124991],[23.10517578125001,15.702539062499994],[22.933886718750017,15.533105468749994],[22.93232421875001,15.162109375],[22.6708984375,14.722460937500003],[22.38154296875001,14.550488281249997],[22.53857421875,14.161865234375],[22.1064453125,13.7998046875],[22.228125,13.32958984375],[21.825292968750006,12.79052734375],[21.928125,12.678125],[22.352343750000017,12.660449218749989],[22.472460937500017,12.067773437499994],[22.580957031250023,11.990136718749994],[22.591113281250017,11.579882812499989],[22.922656250000017,11.344873046874994],[22.86005859375001,10.919677734375],[22.49384765625001,10.996240234374994],[21.771484375,10.642822265625],[21.682714843750006,10.289843749999989],[20.773242187500017,9.405664062499994],[20.342089843750017,9.127099609374994],[18.95625,8.938867187499994],[18.886035156250017,8.836035156249991],[19.108691406250017,8.656152343749994],[18.56416015625001,8.0458984375],[17.6494140625,7.98359375],[16.784765625,7.550976562499997],[16.545312500000023,7.865478515625],[16.37890625,7.683544921874997],[15.957617187500006,7.507568359375],[15.480078125,7.523779296874991],[15.5498046875,7.787890624999989],[15.1162109375,8.557324218749997],[14.332324218750017,9.20351562499999],[13.977246093750011,9.691552734374994],[14.243261718750006,9.979736328125],[15.654882812500006,10.0078125],[15.276074218750011,10.357373046874997],[15.132226562500023,10.648486328124989],[15.029882812500006,11.11367187499999],[15.08125,11.845507812499989],[14.847070312500023,12.502099609374994],[14.461718750000017,13.021777343749989],[14.244824218750011,13.07734375],[14.06396484375,13.07851562499999],[13.932324218750011,13.258496093749997],[13.606347656250023,13.70458984375],[13.505761718750023,14.134423828124994],[13.4482421875,14.380664062500003],[14.367968750000017,15.750146484374994],[15.474316406250011,16.908398437499997],[15.735058593750011,19.904052734375],[15.963183593750017,20.34619140625],[15.587109375000011,20.733300781249994],[15.607324218750023,20.954394531250003],[15.181835937500011,21.523388671874997],[14.97900390625,22.99619140624999],[15.984082031250011,23.445214843749994],[20.14765625000001,21.38925781249999],[23.980273437500017,19.496630859375003]]]},"properties":{"name":"Chad","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[0.900488281250006,10.993261718749991],[0.763378906250011,10.386669921874997],[1.330078125,9.996972656249994],[1.3857421875,9.361669921874991],[1.600195312500006,9.050048828125],[1.624707031250011,6.997314453125],[1.530957031250011,6.992431640625],[1.777929687500006,6.294628906249997],[1.62265625,6.216796875],[1.187207031250011,6.089404296874989],[0.736914062500006,6.452587890624997],[0.525585937500011,6.850927734374991],[0.634765625,7.353662109374994],[0.5,7.546875],[0.686328125000017,8.354882812499994],[0.37255859375,8.75927734375],[0.48876953125,8.851464843749994],[0.525683593750017,9.398486328124989],[0.2333984375,9.463525390624994],[0.342578125000017,9.604150390624994],[0.264550781250023,9.644726562499997],[0.380859375,10.291845703124991],[-0.08632812499999,10.673046875],[0.009423828125023,11.02099609375],[-0.068603515625,11.115625],[0.49267578125,10.954980468749994],[0.900488281250006,10.993261718749991]]]},"properties":{"name":"Togo","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[98.40908203125005,7.90205078125004],[98.2962890625,7.776074218750054],[98.32207031250007,8.166308593749974],[98.4349609375,8.085644531249969],[98.40908203125005,7.90205078125004]]],[[[100.070703125,9.58603515625002],[99.96240234375003,9.421630859375],[99.93955078125006,9.559960937500037],[100.070703125,9.58603515625002]]],[[[102.42675781250003,11.988720703125026],[102.30195312500004,11.98081054687502],[102.27744140625006,12.151855468750043],[102.42675781250003,11.988720703125026]]],[[[100.12246093750005,20.316650390625057],[100.11494140625004,20.257666015625034],[100.13974609375012,20.245410156250017],[100.31796875000006,20.38588867187505],[100.51953125000003,20.17792968750004],[100.39765625000004,19.756103515625],[100.51357421875005,19.553466796875],[101.21191406249997,19.54833984375003],[101.22080078125006,19.486621093750074],[101.19755859375007,19.327929687500074],[101.2863281250001,18.977148437500006],[101.04697265625012,18.441992187500063],[101.05058593750002,18.407031250000045],[101.1375,18.28686523437497],[101.14394531250005,18.14262695312499],[100.90849609375002,17.583886718750023],[100.95585937500002,17.541113281250006],[101.10517578125004,17.47954101562499],[101.16748046874997,17.49902343749997],[101.41367187500012,17.71875],[101.55507812500005,17.812353515625034],[101.56367187500004,17.82050781250001],[101.6875,17.889404296875],[101.77480468750005,18.03339843750004],[101.81865234375002,18.06464843750001],[101.87548828124997,18.046435546875017],[101.94746093750004,18.081494140624983],[102.03457031250005,18.169824218750023],[102.10146484375,18.210644531249983],[102.14824218750002,18.20385742187503],[102.35185546875002,18.045947265625017],[102.45878906250002,17.984619140625057],[102.55253906250007,17.96508789062497],[102.61679687500006,17.833349609375034],[102.66064453124997,17.817968750000034],[102.680078125,17.824121093750023],[103.05136718750006,18.02851562500001],[103.0912109375,18.13823242187499],[103.14853515625006,18.221728515625045],[103.19970703124997,18.259472656249983],[103.26318359374997,18.27846679687505],[103.27958984375002,18.304980468750017],[103.24892578125,18.338964843750034],[103.25175781250002,18.373486328124955],[103.2882812500001,18.408398437499955],[103.36699218750007,18.42333984374997],[103.48798828125004,18.418164062499983],[103.62968750000002,18.38256835937503],[103.79228515625002,18.316503906249977],[103.89882812500005,18.295312500000023],[103.949609375,18.31899414062505],[104.04873046875005,18.216699218749994],[104.19619140625005,17.988378906250006],[104.32265625,17.815820312500023],[104.428125,17.69897460937503],[104.7396484375,17.461669921875],[104.81601562500012,17.30029296874997],[104.75898437500004,17.0771484375],[104.7435546875,16.884375],[104.75058593750012,16.647558593750063],[104.81933593750003,16.46606445312503],[105.04716796875007,16.160253906249977],[105.14873046875007,16.09355468749999],[105.33066406250006,16.037890625000017],[105.40625,15.987451171875051],[105.39892578124997,15.829882812500017],[105.62207031250003,15.699951171875],[105.641015625,15.656542968750045],[105.6388671875001,15.585937500000057],[105.615625,15.488281250000057],[105.49042968750004,15.256591796875],[105.49042968750004,15.127587890625009],[105.5333984375001,15.041601562499991],[105.54667968750002,14.932470703124963],[105.52304687500012,14.843310546875003],[105.49736328125002,14.590673828124963],[105.47558593750003,14.530126953124977],[105.42265625000007,14.471630859375054],[105.34218750000005,14.416699218750054],[105.24365234375003,14.367871093750054],[105.1833007812501,14.346240234374989],[105.16914062500004,14.336083984374966],[105.12597656250003,14.280957031250011],[105.07412109375005,14.227441406250037],[104.77900390625004,14.427832031250006],[103.19941406250004,14.332617187499977],[102.90927734375006,14.136718750000028],[102.546875,13.585693359375043],[102.33632812500005,13.560302734375014],[102.49960937500012,12.669970703125003],[102.75566406250002,12.42626953125],[102.73662109375007,12.089794921875011],[102.93388671875002,11.706689453125037],[102.594140625,12.203027343749994],[102.54023437500004,12.109228515624977],[101.83574218750002,12.640380859375014],[100.89775390625007,12.653808593749986],[100.96269531250007,13.431982421874991],[100.60292968750005,13.568164062500017],[100.23564453125002,13.48447265625002],[99.99052734375007,13.243457031250031],[100.08994140625006,13.045654296874972],[99.96396484375006,12.690039062500006],[99.98906250000007,12.170800781249994],[99.16503906250003,10.319824218750028],[99.25390625000003,9.265234375000034],[99.83554687500012,9.288378906250031],[99.98955078125007,8.589208984374977],[100.129296875,8.428076171875006],[100.16347656250005,8.508398437500034],[100.27939453125006,8.268505859375011],[100.54521484375002,7.226904296874991],[100.43935546875005,7.280761718750043],[100.38037109375003,7.541503906250043],[100.28378906250006,7.551513671875043],[100.25664062500002,7.774902343749986],[100.16074218750012,7.599267578124994],[100.4235351562501,7.18784179687502],[101.01787109375002,6.860937500000034],[101.49794921875005,6.865283203125031],[102.10107421874997,6.242236328125031],[101.87363281250012,5.825292968749991],[101.67841796875004,5.778808593750028],[101.5560546875,5.907763671875003],[101.1139648437501,5.636767578125045],[100.98164062500004,5.771044921875045],[101.05351562500002,6.242578125],[100.87392578125,6.24541015624996],[100.75449218750012,6.460058593749991],[100.3454101562501,6.549902343750006],[100.26142578125004,6.682714843749963],[100.11914062499997,6.441992187500048],[99.69599609375004,6.87666015625004],[99.72031250000012,7.106201171875],[99.55302734375002,7.218798828125031],[99.59697265625002,7.355615234375009],[99.35859375000004,7.372216796875023],[99.26367187499997,7.619042968750037],[99.07763671874997,7.718066406250045],[99.05107421875002,7.887841796874994],[98.78867187500012,8.059814453125028],[98.703515625,8.256738281250009],[98.57919921875006,8.344287109374989],[98.42099609375006,8.17822265625],[98.30546875000007,8.226220703125009],[98.24179687500006,8.767871093750045],[98.70253906250005,10.19038085937504],[98.7572265625,10.660937499999974],[99.1901367187501,11.105273437499989],[99.61474609374997,11.781201171875026],[99.40507812500002,12.547900390625003],[99.12392578125,13.030761718750043],[99.13681640625006,13.716699218749994],[98.57001953125004,14.359912109375031],[98.20214843749997,14.97592773437502],[98.19101562500012,15.204101562499972],[98.55693359375007,15.367675781249986],[98.59238281250006,16.05068359375005],[98.81796875000012,16.180810546874994],[98.88828125000006,16.351904296875034],[98.83544921875003,16.417578125],[98.66074218750006,16.330419921875006],[98.4388671875,16.975683593750034],[97.7064453125,17.79711914062503],[97.63222656250005,18.290332031250074],[97.37392578125,18.51796875],[97.74589843750002,18.58818359374999],[97.816796875,19.459960937500057],[98.01503906250005,19.74951171874997],[98.37128906250004,19.68916015625004],[98.9166992187501,19.77290039062504],[99.07421875000003,20.09936523437503],[99.48593750000006,20.14985351562501],[99.45888671875005,20.363037109375],[99.72011718750005,20.32543945312497],[99.8903320312501,20.424414062499977],[99.9542968750001,20.415429687500023],[100.0036132812501,20.37958984375001],[100.12246093750005,20.316650390625057]]]]},"properties":{"name":"Thailand","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[70.66416015625,39.85546875],[70.55957031250003,39.790917968749994],[70.48925781250003,39.86303710937503],[70.48281250000005,39.88271484375005],[70.49775390625004,39.88242187499998],[70.56708984375004,39.86660156250005],[70.66416015625,39.85546875]]],[[[70.95800781250003,40.238867187500034],[70.59921875,39.974511718749994],[69.96679687499997,40.202246093750034],[69.46875,40.020751953125],[69.47099609375002,39.990625],[69.43193359375007,39.909765625000034],[69.36542968750004,39.94707031250002],[69.30722656250006,39.968554687500045],[69.27880859374997,39.91777343749999],[69.24472656250006,39.82709960937498],[69.29765625000007,39.52480468750005],[70.50117187500004,39.58735351562501],[70.79931640625003,39.39472656250001],[71.4703125,39.60366210937502],[71.50302734375006,39.58217773437502],[71.51738281250002,39.55385742187502],[71.50585937499997,39.51708984374997],[71.5033203125,39.47880859374999],[71.73222656250002,39.422998046874994],[71.77861328125007,39.27797851562502],[72.04277343750002,39.352148437500034],[72.08417968750004,39.310644531250034],[72.14736328125005,39.26074218749997],[72.22998046874997,39.20751953124997],[72.63994140625002,39.385986328125],[73.10927734375,39.36191406249998],[73.2349609375,39.37456054687499],[73.3361328125001,39.41235351562506],[73.38740234375004,39.442724609375034],[73.4704101562501,39.46059570312502],[73.63164062500007,39.44887695312502],[73.63632812500006,39.396679687499955],[73.60732421875,39.229199218749955],[73.8052734375,38.968652343749994],[73.69609375000007,38.85429687499996],[73.80166015625,38.60688476562501],[74.02558593750004,38.53984375000002],[74.27744140625,38.659765625000034],[74.81230468750002,38.46030273437498],[74.8942382812501,37.60141601562498],[75.11875,37.38569335937498],[74.89130859375004,37.231640624999955],[74.875390625,37.24199218750002],[74.83046875,37.28593750000002],[74.73056640625006,37.35703125],[74.659375,37.39448242187501],[74.34902343750005,37.41875],[74.25966796875005,37.41542968750002],[74.20351562500005,37.37246093750005],[74.16708984375,37.32944335937498],[73.74960937500006,37.23178710937498],[73.6535156250001,37.239355468750034],[73.62753906250006,37.261572265625006],[73.71728515625003,37.32944335937498],[73.7337890625,37.37578125000002],[73.72060546875,37.41875],[73.65712890625005,37.43046875],[73.6046875000001,37.44604492187503],[73.48134765625,37.4716796875],[73.38291015625006,37.462255859375034],[73.21113281250004,37.40849609375002],[72.89550781250003,37.26752929687498],[72.65742187500004,37.029052734375],[71.665625,36.696923828124994],[71.530859375,36.845117187499994],[71.43291015625007,37.12753906249998],[71.5822265625001,37.91010742187498],[71.55195312500004,37.93315429687496],[71.48779296874997,37.93188476562497],[71.38964843750003,37.90629882812502],[71.31992187500006,37.90185546875],[71.27851562500004,37.91840820312498],[71.33271484375004,38.170263671875034],[71.25585937499997,38.306982421875006],[70.7359375,38.42255859375001],[70.41777343750002,38.075439453125],[70.21464843750002,37.92441406250006],[70.19941406250004,37.88603515624996],[70.25498046875006,37.76538085937497],[70.25146484374997,37.66416015625006],[70.18867187500004,37.58247070312501],[70.11982421875004,37.54350585937499],[69.9849609375,37.566162109375],[69.8208984375,37.60957031250004],[69.62578125000002,37.59404296874999],[69.49208984375,37.55307617187498],[69.42011718750004,37.486718749999966],[69.39921875000007,37.39931640625002],[69.42968749999997,37.290869140625034],[69.414453125,37.20776367187497],[69.35380859375007,37.15004882812502],[69.3039062500001,37.11694335937503],[69.26484375000004,37.1083984375],[69.18017578125003,37.158300781250034],[68.96044921875003,37.32504882812498],[68.9118164062501,37.33393554687501],[68.88525390624997,37.32807617187498],[68.85537109375005,37.31684570312501],[68.83847656250006,37.30283203124998],[68.82373046874997,37.27070312500001],[68.78203125000002,37.25800781250001],[68.7232421875,37.26801757812501],[68.6691406250001,37.258398437500006],[68.3869140625001,37.1375],[68.29951171875004,37.08842773437502],[68.28476562500006,37.036328124999955],[68.2609375000001,37.01308593750002],[68.2121093750001,37.02153320312496],[68.0677734375,36.949804687500006],[67.95800781249997,36.972021484375006],[67.83447265624997,37.06420898437506],[67.75898437500004,37.172216796875034],[67.7980468750001,37.244970703125006],[67.81435546875005,37.48701171875004],[68.3502929687501,38.211035156250006],[68.08720703125002,38.47353515625002],[68.13251953125004,38.927636718749966],[67.69443359375006,38.99462890625003],[67.64833984375005,39.13105468750004],[67.3576171875001,39.216699218749994],[67.426171875,39.46557617187497],[67.71904296875007,39.62138671875002],[68.46328125,39.53671874999998],[68.63896484375007,39.8388671875],[68.86875,39.90747070312503],[68.80468750000003,40.05034179687499],[68.9720703125,40.08994140624998],[68.63066406250007,40.16708984374998],[69.27490234374997,40.19809570312498],[69.20625,40.566552734374994],[69.35722656250002,40.76738281249996],[69.71289062500003,40.65698242187503],[70.40195312500006,41.03510742187498],[70.75107421875006,40.721777343750006],[70.37158203125003,40.38413085937506],[70.653125,40.201171875],[70.95800781250003,40.238867187500034]]]]},"properties":{"name":"Tajikistan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[66.52226562500007,37.34848632812506],[66.471875,37.3447265625],[65.7650390625,37.56914062499996],[65.55498046875002,37.25117187500004],[65.30361328125005,37.24677734375001],[65.08964843750007,37.237939453124994],[64.9515625,37.19355468750001],[64.81630859375005,37.13208007812503],[64.7824218750001,37.05927734375001],[64.60253906250003,36.554541015625034],[64.5658203125,36.427587890625034],[64.51103515625002,36.34067382812498],[64.184375,36.14892578125],[63.8625,36.012353515624994],[63.12998046875006,35.84619140624997],[63.169726562500074,35.678125],[63.05664062500003,35.44580078125003],[62.98027343750002,35.40917968750003],[62.85800781250006,35.34965820312499],[62.688085937500006,35.25532226562504],[62.3078125000001,35.17080078125005],[62.08964843750002,35.3796875],[61.62099609375005,35.43232421875004],[61.34472656249997,35.62949218750006],[61.26201171875002,35.61958007812498],[61.25214843750004,35.86762695312498],[61.15292968750006,35.97675781250001],[61.212011718750006,36.190527343750034],[61.11962890625003,36.64257812500003],[60.34130859375003,36.63764648437501],[60.06279296875002,36.962890625],[59.454980468749994,37.25283203125002],[59.30175781249997,37.51064453125005],[58.81542968750003,37.683496093749994],[58.261621093749994,37.665820312500045],[57.35371093750004,37.97333984374998],[57.1935546875001,38.216406250000034],[56.440625,38.249414062499994],[56.272070312500006,38.080419921875034],[55.38085937500003,38.051123046875034],[54.90009765625004,37.77792968750006],[54.6994140625001,37.47016601562498],[53.91416015625006,37.34355468750002],[53.86865234375003,38.949267578125045],[53.70458984375003,39.209570312500034],[53.33632812500005,39.34082031250006],[53.15664062499999,39.26499023437506],[53.23564453125002,39.608544921874966],[53.603125,39.546972656250034],[53.472265625,39.66879882812498],[53.48730468749997,39.909375],[52.9875,39.98759765625002],[53.03554687500005,39.7744140625],[52.80468749999997,40.054003906250045],[52.73369140625002,40.39873046875002],[52.943457031250006,41.03808593750006],[53.1452148437501,40.82495117187497],[53.61523437500003,40.818505859374994],[53.87001953125005,40.64868164062503],[54.37734375,40.693261718749966],[54.319433593750006,40.83457031249998],[54.68505859375003,40.873046875],[54.70371093750006,41.071142578125034],[54.094824218750006,41.51938476562506],[53.80468749999997,42.11762695312498],[53.16416015625006,42.09379882812502],[52.97001953125002,41.97622070312505],[52.81484375,41.711816406249994],[52.850390625000074,41.20029296875006],[52.4938476562501,41.780371093750034],[53.0558593750001,42.14775390624999],[54.120996093749994,42.335205078125],[54.85380859375002,41.965185546875006],[55.434375,41.296289062499994],[55.97744140625005,41.32221679687504],[57.01796875,41.26347656249996],[57.11884765625004,41.35029296874998],[56.96406250000004,41.856542968750006],[57.290625,42.123779296875],[57.814257812500074,42.18984375000005],[58.02890625,42.48764648437506],[58.474414062500074,42.29936523437496],[58.15156250000004,42.628076171874966],[58.477148437500006,42.66284179687503],[58.5890625000001,42.778466796874966],[59.35429687500002,42.32329101562496],[59.98515625000002,42.21171875],[59.94179687499999,41.97353515625002],[60.20078125000006,41.803125],[60.07558593750005,41.759667968749966],[60.089648437500074,41.39941406250003],[60.454980468749994,41.221630859374955],[61.2423828125001,41.18920898437503],[61.496972656249994,41.276074218749955],[61.90283203124997,41.09370117187501],[62.48320312500002,39.97563476562496],[63.76367187500003,39.16054687499999],[64.3099609375,38.97729492187497],[65.612890625,38.23857421875002],[65.97119140624997,38.244238281250006],[66.60625,37.98671875000005],[66.52558593750004,37.785742187500034],[66.51132812500006,37.59916992187496],[66.51064453125,37.45869140625004],[66.52226562500007,37.34848632812506]]]},"properties":{"name":"Turkmenistan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[124.0363281250001,-9.341601562500031],[124.44443359375012,-9.190332031250023],[124.28232421875012,-9.427929687500026],[124.0363281250001,-9.341601562500031]]],[[[125.06816406250002,-9.511914062499997],[124.96015625000004,-9.213769531250009],[125.10048828125,-9.189843750000023],[125.14902343750012,-9.042578125000034],[124.93681640625007,-9.053417968750026],[124.92226562500005,-8.942480468749977],[125.17802734375002,-8.647851562499994],[125.38183593749997,-8.575390624999983],[126.61972656250006,-8.459472656249986],[126.96640625000012,-8.315722656250017],[127.29609375000004,-8.424511718749969],[126.91523437500004,-8.715234374999966],[125.40800781250002,-9.275781250000023],[125.06816406250002,-9.511914062499997]]],[[[125.64609375000006,-8.139941406250003],[125.5794921875,-8.311816406250017],[125.50712890625007,-8.275097656249997],[125.64609375000006,-8.139941406250003]]]]},"properties":{"name":"Timor-Leste","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-175.1619140625,-21.169335937500023],[-175.07817382812496,-21.129003906249977],[-175.15659179687495,-21.26367187499997],[-175.36235351562496,-21.106835937499994],[-175.1619140625,-21.169335937500023]]],[[[-173.953515625,-18.63935546875001],[-174.06914062500002,-18.640234375],[-173.96806640624993,-18.565332031250023],[-173.953515625,-18.63935546875001]]]]},"properties":{"name":"Tonga","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-61.012109374999966,10.134326171874989],[-61.906103515625006,10.069140625000031],[-61.49931640624999,10.268554687499972],[-61.47827148437497,10.603369140624977],[-61.65117187499993,10.718066406249974],[-60.917626953124966,10.84023437499999],[-61.03374023437502,10.669873046875026],[-61.012109374999966,10.134326171874989]]]},"properties":{"name":"Trinidad and Tobago","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[10.957617187500063,33.72207031250005],[10.722070312500051,33.738916015624994],[10.745214843750063,33.88867187500006],[11.017871093749989,33.82333984374998],[10.957617187500063,33.72207031250005]]],[[[11.278027343750068,34.753808593749994],[11.123632812500063,34.68168945312496],[11.254882812500057,34.82031250000006],[11.278027343750068,34.753808593749994]]],[[[10.274609375000011,31.684960937499994],[10.114941406250068,31.46376953125005],[10.216406250000063,30.78320312500003],[10.05976562500004,30.58007812500003],[9.932519531250051,30.42534179687496],[9.895019531250028,30.387304687500034],[9.51875,30.229394531249994],[9.224023437500023,31.373681640624994],[9.160253906250006,31.621337890625],[9.044042968750034,32.072363281250034],[8.333398437500051,32.54360351562502],[8.1125,33.055322265624994],[7.877246093750017,33.172119140625],[7.534375,33.717919921874994],[7.513867187500068,34.080517578124955],[8.24560546875,34.73408203124998],[8.276855468750057,34.97949218749997],[8.312109375000063,35.084619140624994],[8.394238281250011,35.20385742187503],[8.318066406250011,35.654931640624994],[8.348730468750063,36.367968750000045],[8.207617187500006,36.518945312499994],[8.601269531250068,36.83393554687504],[8.576562500000023,36.93720703125001],[9.687988281250057,37.34038085937499],[9.838476562500063,37.30898437499999],[9.830273437499983,37.13535156250006],[9.875585937499977,37.25415039062503],[10.196386718750063,37.205859375000045],[10.293261718750074,36.781494140625],[10.412304687499983,36.73183593750002],[11.053906250000068,37.07250976562506],[11.12666015625004,36.874072265625045],[10.476562500000028,36.175146484375006],[10.590820312500028,35.88725585937499],[11.00429687500008,35.63383789062496],[11.120117187500057,35.24028320312499],[10.69091796875,34.67846679687503],[10.118359375000068,34.280078125000045],[10.049023437500068,34.056298828124994],[10.305273437500034,33.72827148437497],[10.713183593750017,33.68901367187496],[10.722753906250006,33.514404296875],[10.958007812500057,33.62631835937498],[11.257421875000034,33.30883789062506],[11.202636718749972,33.24921874999998],[11.50458984375004,33.181933593750045],[11.502441406250028,33.15556640624999],[11.467187500000051,32.96572265625005],[11.459179687500011,32.897363281249966],[11.453906250000017,32.64257812500003],[11.533789062500034,32.52495117187496],[11.535937500000017,32.47333984375001],[11.504980468750034,32.413671875000034],[11.358007812500006,32.34521484375003],[11.168261718750074,32.25673828125002],[11.005175781250074,32.17270507812506],[10.826367187500068,32.080664062500034],[10.771582031250006,32.02119140625001],[10.60888671875,31.929541015624977],[10.47578125000004,31.736035156249983],[10.274609375000011,31.684960937499994]]]]},"properties":{"name":"Tunisia","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[25.970019531250045,40.136328125],[25.6689453125,40.13588867187502],[25.918359375000023,40.23798828125004],[25.970019531250045,40.136328125]]],[[[43.43339843750002,41.155517578125],[43.43945312500003,41.10712890625001],[43.72265624999997,40.71953124999999],[43.56933593750003,40.48237304687498],[43.66621093750004,40.12636718750002],[44.28925781250004,40.040380859375006],[44.76826171875004,39.70351562500005],[44.81718750000002,39.65043945312496],[44.58710937500004,39.76855468750006],[44.3893554687501,39.422119140625],[44.02324218750002,39.37744140625006],[44.27167968750004,38.83603515625006],[44.2985351562501,38.38627929687499],[44.4499023437501,38.33422851562506],[44.21132812499999,37.908056640625006],[44.589941406250006,37.710351562499966],[44.574023437500074,37.435400390625006],[44.79414062500004,37.290380859375034],[44.76513671875003,37.142431640625006],[44.73095703124997,37.16528320312503],[44.66933593750005,37.17358398437503],[44.60595703124997,37.176025390625],[44.401953125,37.05849609375002],[44.325585937499994,37.0107421875],[44.28183593750006,36.97802734374997],[44.24570312500006,36.983300781249994],[44.20166015624997,37.05180664062502],[44.208398437499994,37.20263671875],[44.19179687499999,37.249853515625034],[44.15625,37.28295898437503],[44.11445312500004,37.30185546875006],[44.01318359375003,37.313525390625045],[43.83642578124997,37.223535156249994],[43.67578125000003,37.227246093749955],[43.09248046875004,37.36738281249998],[42.936621093750006,37.32475585937502],[42.77460937500004,37.371875],[42.74111328125005,37.361914062500034],[42.6354492187501,37.249267578125],[42.45585937500002,37.128710937500045],[42.358984375,37.10859375000004],[42.31289062499999,37.22958984374998],[42.26855468749997,37.276562499999955],[42.24755859375003,37.28222656250006],[42.20273437500006,37.29726562499999],[42.16787109375005,37.28862304687502],[42.059863281250074,37.2060546875],[41.886816406250006,37.156396484374994],[40.70566406250006,37.09770507812502],[40.4503906250001,37.00888671875006],[40.016406250000074,36.82607421875002],[39.68652343749997,36.73862304687506],[39.50146484374997,36.702246093750034],[39.35664062500004,36.68159179687498],[39.10839843749997,36.68056640625005],[38.90644531250004,36.69467773437498],[38.76660156249997,36.69311523437503],[38.19169921875002,36.90156250000004],[37.90664062500005,36.79462890625001],[37.7203125,36.74370117187502],[37.52353515625006,36.678320312500034],[37.436328125000074,36.643310546875],[37.327050781249994,36.64658203125006],[37.18740234375005,36.655908203124994],[37.066210937500074,36.652636718750045],[36.98535156250003,36.70239257812506],[36.94179687499999,36.758398437500006],[36.77656250000004,36.79267578124998],[36.65859375000005,36.80253906250002],[36.62841796875003,36.777685546875034],[36.596875,36.70136718750001],[36.546679687500074,36.50634765625],[36.5375,36.457421874999966],[36.63671874999997,36.233984375],[36.37539062499999,36.171240234375034],[36.347558593749994,36.003515625000034],[36.20195312500002,35.93754882812502],[36.15361328125002,35.83388671875005],[36.12734375,35.831445312499994],[35.967578125000074,35.91005859375002],[35.89267578125006,35.91655273437502],[35.81093750000005,36.30986328125002],[36.18847656250003,36.65898437499999],[36.048925781250006,36.91059570312501],[35.393164062500006,36.57519531249997],[34.70361328125003,36.81679687499999],[33.694726562499994,36.18198242187498],[32.794824218749994,36.03588867187497],[32.37773437500002,36.18364257812496],[32.02197265625003,36.53530273437502],[31.35253906249997,36.80107421874999],[30.64404296874997,36.86567382812501],[30.446093750000074,36.269873046875034],[29.6890625,36.15668945312498],[29.22363281249997,36.32446289062497],[28.96962890625008,36.71533203125003],[28.303710937500057,36.81196289062498],[28.01943359375005,36.63447265624998],[28.083984375000057,36.75146484375],[27.453906250000017,36.712158203125],[28.00537109375003,36.83198242187498],[28.242382812500068,37.029052734375],[27.262988281250045,36.97656250000003],[27.30019531250005,37.12685546875002],[27.53505859375005,37.16386718750002],[27.06796875,37.65791015625004],[27.224414062500074,37.725439453125006],[27.23242187500003,37.978662109374994],[26.29072265625001,38.27719726562498],[26.44130859375005,38.64121093749998],[26.67421875000008,38.33574218750002],[27.14423828125001,38.45195312499996],[26.906835937500034,38.48173828124999],[26.763671875,38.709619140624966],[27.013671875000057,38.88686523437502],[26.814941406250057,38.96098632812502],[26.853613281250034,39.115625],[26.68183593750004,39.292236328125],[26.89921874999999,39.549658203125034],[26.113085937500074,39.46738281249998],[26.101367187500074,39.56894531249998],[26.18134765625004,39.99008789062498],[26.738085937500045,40.40024414062506],[27.28457031250008,40.45561523437496],[27.4755859375,40.319921875000034],[27.72802734375,40.32880859374998],[27.84853515625005,40.38173828125002],[27.73183593750008,40.48149414062499],[27.87490234375008,40.512939453125],[27.989550781250074,40.48945312500001],[27.96259765625001,40.369873046875],[29.00712890624999,40.389746093750034],[28.787890625000017,40.534033203125034],[28.95800781250003,40.63056640624998],[29.849218750000063,40.760107421875006],[29.113867187499977,40.93784179687506],[29.14814453125004,41.221044921875034],[31.25488281249997,41.10761718750001],[31.45800781249997,41.32001953125004],[32.306445312500074,41.72958984374998],[33.38134765625003,42.01757812500003],[34.75048828124997,41.95683593749999],[35.006445312500006,42.06328125000002],[35.15488281250006,42.02753906250001],[35.12207031250003,41.89111328125003],[35.297753906249994,41.72851562500003],[35.558007812499994,41.63403320312506],[36.05175781249997,41.68256835937498],[36.40537109375006,41.27460937500001],[36.77773437499999,41.36347656250001],[37.066210937500074,41.184423828125034],[38.38105468750004,40.92451171875001],[39.426367187500006,41.10644531250003],[40.26523437500006,40.96132812500005],[41.08359375000006,41.26118164062504],[41.41435546875002,41.42363281249999],[41.510058593750074,41.51748046875002],[41.70175781250006,41.471582031249994],[41.77939453125006,41.44052734374998],[41.823535156250074,41.432373046875],[41.92578125000003,41.49565429687502],[42.46640625,41.43984375000002],[42.56738281249997,41.55927734375001],[42.590429687500006,41.57070312500002],[42.60683593750005,41.57880859374998],[42.682421875000074,41.58574218749999],[42.75410156250004,41.57890625000002],[42.787890625000074,41.56372070312503],[42.82167968750005,41.49238281249998],[42.90673828125003,41.46684570312502],[43.05712890625003,41.35283203124996],[43.149023437500006,41.30712890624997],[43.171289062499994,41.28793945312498],[43.14101562499999,41.26484374999998],[43.15283203124997,41.23642578125006],[43.20546875000005,41.19916992187501],[43.43339843750002,41.155517578125]]],[[[27.47480468750001,41.946875],[28.014453125000017,41.96904296874999],[28.197851562500063,41.55449218750002],[29.057226562500006,41.22973632812503],[28.95625,41.00820312499999],[28.172167968750074,41.08071289062502],[27.49941406250005,40.97314453124997],[27.258007812499983,40.687353515625006],[26.772070312500034,40.498046875],[26.202734375000034,40.07539062500004],[26.25380859375005,40.31469726562503],[26.792089843750034,40.626611328124994],[26.10546875000003,40.61132812499997],[26.03896484375008,40.726757812499955],[26.331054687500057,40.954492187499994],[26.330664062499977,41.23876953125],[26.62490234375008,41.401757812499994],[26.581347656250074,41.60126953125004],[26.320898437500034,41.716552734375],[26.3603515625,41.80156249999999],[26.51142578125004,41.82636718749998],[26.549707031250023,41.896728515625],[26.5796875,41.947949218749955],[26.615332031250063,41.964892578125045],[26.884863281250006,41.99184570312502],[26.96875,42.02685546875006],[27.01171875,42.05864257812496],[27.193359375000057,42.07709960937498],[27.24433593750004,42.09326171875],[27.294921875000057,42.079541015624955],[27.47480468750001,41.946875]]]]},"properties":{"name":"Turkey","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[39.71132812499999,-7.977441406250023],[39.602929687499994,-7.936132812499949],[39.907128906249994,-7.649218750000031],[39.71132812499999,-7.977441406250023]]],[[[39.49648437499999,-6.174609375],[39.573046875000074,-6.387402343750011],[39.48095703124997,-6.45371093750002],[39.18232421875004,-6.172558593750026],[39.30898437499999,-5.721972656249974],[39.49648437499999,-6.174609375]]],[[[39.86503906250002,-4.906152343750037],[39.74931640625002,-5.443847656249986],[39.646777343750074,-5.368554687500009],[39.6734375,-4.927050781250031],[39.86503906250002,-4.906152343750037]]],[[[33.90322265625005,-1.002050781250034],[37.643847656250074,-3.045410156250028],[37.608203125000074,-3.497070312500028],[39.221777343750006,-4.692382812500014],[38.80468750000003,-6.070117187500031],[38.87402343750003,-6.33125],[39.5460937500001,-7.024023437500034],[39.288476562499994,-7.517871093750003],[39.28701171875005,-7.787695312500006],[39.4284179687501,-7.81279296874996],[39.441015625,-8.011523437499946],[39.304003906250074,-8.44384765625],[39.451269531250006,-8.94296875],[39.64130859375004,-9.19248046875002],[39.72519531250006,-10.000488281249972],[40.46357421875004,-10.464355468749972],[39.98867187499999,-10.820800781250014],[39.81708984375004,-10.912402343750031],[38.9875,-11.167285156250003],[38.49179687500006,-11.413281250000026],[37.92021484375002,-11.294726562500031],[37.72480468750004,-11.58066406250002],[37.54169921875004,-11.675097656249974],[37.37285156250002,-11.710449218749986],[36.97890625000005,-11.566992187499977],[36.30566406250003,-11.706347656249946],[36.191308593749994,-11.670703124999974],[36.17548828125004,-11.60927734374998],[36.08222656250004,-11.537304687499969],[35.91132812500004,-11.45468750000002],[35.785449218750074,-11.452929687500017],[35.63095703125006,-11.582031250000028],[35.564355468749994,-11.602343749999989],[35.418261718750074,-11.583203125],[35.18261718750003,-11.574804687499977],[34.95947265625003,-11.578125],[34.93701171874997,-11.463476562500034],[34.890625,-11.3935546875],[34.77382812500005,-11.341699218750009],[34.60791015624997,-11.08046875],[34.66708984375006,-10.792480468750028],[34.56992187500006,-10.241113281249966],[34.32089843750006,-9.731542968749977],[33.99560546875003,-9.495410156250003],[33.88886718750004,-9.670117187499983],[32.91992187500003,-9.407421875000026],[32.75664062500002,-9.322265625],[31.94257812500004,-9.05400390624996],[31.91865234375004,-8.942187500000017],[31.886132812499994,-8.921972656249977],[31.81806640625004,-8.902246093749952],[31.673632812500017,-8.908789062499963],[31.55625,-8.80546875],[31.44921874999997,-8.65390625],[31.35058593750003,-8.607031250000034],[31.07636718750004,-8.611914062499963],[30.968359375000063,-8.550976562499983],[30.89199218750005,-8.473730468749963],[30.830664062500063,-8.385546875000031],[30.720898437500097,-8.104394531250037],[30.40673828125003,-7.460644531249983],[30.313183593750097,-7.203710937499949],[30.212695312500017,-7.037890625000017],[30.10625,-6.915039062500028],[29.961816406249994,-6.803125],[29.798144531250017,-6.691894531249957],[29.70966796875004,-6.61689453125004],[29.590625,-6.394433593750023],[29.540820312500017,-6.313867187500037],[29.50625,-6.172070312500011],[29.480078125,-6.025],[29.490820312500063,-5.96542968750002],[29.59638671875004,-5.775976562499963],[29.60703125,-5.722656250000028],[29.59414062500005,-5.650781250000037],[29.542382812499994,-5.499804687500017],[29.34277343749997,-4.983105468749997],[29.32343750000004,-4.898828124999966],[29.32568359374997,-4.835644531249969],[29.404199218749994,-4.49667968750002],[29.40322265625005,-4.449316406249963],[29.71777343750003,-4.45585937499996],[29.94726562499997,-4.307324218749983],[30.4,-3.65390625],[30.790234375000097,-3.274609375000011],[30.811132812500006,-3.116406250000011],[30.78027343750003,-2.984863281249957],[30.70947265624997,-2.977246093749997],[30.604296875000074,-2.935253906249969],[30.515039062499994,-2.917578125],[30.45556640625003,-2.893164062500006],[30.433496093749994,-2.874511718750028],[30.424023437500097,-2.82402343749996],[30.473339843750097,-2.6943359375],[30.42421875000005,-2.641601562500014],[30.441992187500006,-2.613476562499969],[30.53369140624997,-2.426269531250014],[30.55361328125005,-2.400097656250011],[30.593359375000063,-2.39677734374996],[30.65664062500005,-2.373828124999989],[30.71484375000003,-2.363476562500011],[30.7625,-2.371679687499991],[30.828710937500006,-2.338476562499977],[30.85498046874997,-2.265429687500017],[30.8765625,-2.143359375000017],[30.864648437499994,-2.044042968749949],[30.819140625000017,-1.967480468749983],[30.812597656250006,-1.56308593750002],[30.76220703124997,-1.458691406249983],[30.710742187500074,-1.396777343749974],[30.631933593750006,-1.36748046874996],[30.508105468750074,-1.208203125000026],[30.47021484374997,-1.13115234374996],[30.47705078124997,-1.0830078125],[30.509960937500097,-1.067285156249994],[30.51992187499999,-1.0625],[30.67275390625005,-1.051367187499949],[30.741992187500017,-1.007519531249997],[30.809179687500063,-0.994921875],[30.82363281250005,-0.999023437499943],[30.84472656250003,-1.002050781250034],[32.371875,-1.002050781250034],[33.90322265625005,-1.002050781250034]]]]},"properties":{"name":"Tanzania","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[30.50996093750001,-1.067285156250009],[30.46992187500001,-1.066015625],[30.41230468750001,-1.063085937500006],[30.360253906250023,-1.074609375],[29.930078125000023,-1.469921875000011],[29.82539062500001,-1.335546875],[29.576953125000017,-1.387890625000011],[29.717675781250023,0.098339843749997],[29.934472656250023,0.4990234375],[29.94287109375,0.819238281249994],[31.252734375000017,2.044580078124994],[31.176367187500006,2.270068359374989],[30.728613281250006,2.455371093749989],[30.8466796875,2.847021484374991],[30.754003906250006,3.041796874999989],[30.90644531250001,3.408935546875],[30.83857421875001,3.49072265625],[31.15234375,3.785595703124997],[31.547167968750017,3.677587890624991],[31.79804687500001,3.802636718749994],[32.13593750000001,3.519726562499997],[32.33574218750002,3.706201171874994],[32.99726562500001,3.880175781249989],[33.489355468750006,3.755078125],[33.568457031250006,3.81171875],[33.74160156250002,3.985253906249994],[33.97607421875,4.22021484375],[34.13203125000001,3.88916015625],[34.18574218750001,3.869775390624994],[34.1650390625,3.81298828125],[34.26708984375,3.733154296875],[34.39287109375002,3.691503906249991],[34.43769531250001,3.650585937499997],[34.44179687500002,3.60625],[34.3994140625,3.412695312499991],[34.4072265625,3.357519531249991],[34.447851562500006,3.163476562499994],[34.90576171875,2.4796875],[34.88300781250001,2.417919921874997],[34.96406250000001,2.062402343749994],[34.9775390625,1.861914062499991],[34.97646484375002,1.719628906249994],[34.79863281250002,1.24453125],[34.48173828125002,1.042138671874994],[34.41083984375001,0.867285156249991],[34.16093750000002,0.605175781249997],[33.94316406250002,0.173779296874997],[33.90322265625002,-1.002050781250006],[32.371875,-1.002050781250006],[30.8447265625,-1.002050781250006],[30.823632812500023,-0.9990234375],[30.809179687500006,-0.994921875],[30.741992187500017,-1.007519531250011],[30.672753906250023,-1.051367187500006],[30.598730468750006,-1.069726562500009],[30.519921875000023,-1.0625],[30.50996093750001,-1.067285156250009]]]},"properties":{"name":"Uganda","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[32.01220703124997,46.20390624999999],[32.15009765625004,46.1546875],[31.56386718750005,46.25776367187504],[31.50878906250003,46.373144531250006],[32.01220703124997,46.20390624999999]]],[[[38.21435546875003,47.091455078124966],[37.54335937499999,47.07456054687498],[36.794824218749994,46.71440429687499],[36.55878906250004,46.76269531250006],[35.82714843749997,46.62431640625002],[35.01455078125005,46.10600585937502],[35.280175781249994,46.27949218750001],[35.23037109375005,46.440625],[34.84960937500003,46.189892578124955],[35.02285156250005,45.70097656250002],[35.45751953124997,45.316308593749994],[36.170507812500006,45.453076171874955],[36.575,45.3935546875],[36.39335937500002,45.06538085937501],[35.87011718750003,45.005322265624955],[35.472558593749994,45.098486328125006],[35.08769531250002,44.802636718749966],[34.46992187500004,44.7216796875],[33.909960937500074,44.387597656249966],[33.45068359374997,44.553662109374955],[33.55517578125003,45.09765625000003],[32.5080078125001,45.40380859375006],[33.664843750000074,45.94707031249996],[33.59414062500005,46.09624023437499],[33.42988281250004,46.05761718750003],[33.20224609375006,46.17573242187501],[32.47675781250004,46.08369140625001],[31.83125,46.28168945312501],[32.00849609375004,46.42998046875002],[31.554882812500097,46.554296875000034],[32.36132812499997,46.474951171875034],[32.578027343749994,46.615625],[32.04433593750005,46.642480468749966],[31.75917968750005,47.21284179687501],[31.872851562500017,46.649755859375034],[31.532128906249994,46.66474609374998],[31.56337890625005,46.77729492187501],[31.402929687500063,46.62880859375002],[30.796289062499994,46.55200195312503],[30.219042968750074,45.866748046875045],[29.62841796875003,45.722460937500045],[29.705859375000074,45.25991210937505],[29.567675781250074,45.37080078124998],[29.40371093750005,45.419677734375],[29.22353515625005,45.402929687500034],[28.894335937500017,45.28994140625002],[28.78173828125,45.30986328125002],[28.76660156250003,45.28623046874998],[28.78828125000001,45.240966796875],[28.451269531250006,45.292187499999955],[28.317675781250045,45.347119140624955],[28.2125,45.45043945312506],[28.26484375000004,45.48388671875003],[28.310351562500074,45.49858398437499],[28.499023437500057,45.517724609374994],[28.513769531250034,45.57241210937502],[28.49160156250005,45.66577148437503],[28.562304687500074,45.73579101562501],[28.667578125,45.79384765625002],[28.729296875000074,45.852001953124955],[28.73876953125003,45.937158203124994],[28.84951171875005,45.97866210937502],[28.94775390624997,46.049951171874966],[28.971875,46.12763671874998],[29.00625,46.17646484374998],[28.94375,46.28842773437506],[28.930566406250023,46.36225585937501],[28.92744140625001,46.42412109374999],[28.958398437500023,46.45849609374997],[29.146289062500017,46.52690429687496],[29.186230468750068,46.52397460937499],[29.20078125,46.504980468750034],[29.20458984374997,46.37934570312501],[29.223828125000097,46.37695312499997],[29.458789062500017,46.453759765624994],[29.83789062499997,46.35053710937501],[29.878027343750063,46.360205078125034],[30.07568359375003,46.377832031249966],[30.131054687500097,46.42309570312506],[29.92431640624997,46.53886718750002],[29.934765625000097,46.625],[29.942480468750063,46.72377929687502],[29.918066406250063,46.78242187499998],[29.877832031249994,46.828906250000045],[29.57197265625004,46.96401367187502],[29.455664062500006,47.292626953124994],[29.134863281250006,47.48969726562501],[29.125390625000023,47.96455078125001],[28.42304687500001,48.146875],[28.34052734375001,48.144433593749994],[27.54921875000008,48.47773437500004],[27.22851562500003,48.37143554687506],[26.90058593750001,48.37192382812506],[26.847070312500023,48.387158203124955],[26.640429687500045,48.29414062500001],[26.618945312500017,48.25986328125006],[26.4423828125,48.22998046875],[26.162695312500063,47.992529296875034],[25.90869140625,47.96757812500002],[25.689257812500045,47.93247070312506],[25.46425781250005,47.910791015624994],[24.979101562500063,47.72412109374997],[24.578906250000074,47.93105468750005],[23.628710937500017,47.995849609375],[23.40820312500003,47.98999023437506],[23.20263671875,48.084521484375045],[23.13945312499999,48.08740234375],[22.87666015625001,47.94726562500006],[22.769140625000063,48.109619140625],[22.582421875000023,48.134033203125],[22.253710937500017,48.407373046874994],[22.131835937500057,48.40532226562502],[22.142871093750017,48.568505859374966],[22.295214843750045,48.68583984374999],[22.389453125000045,48.87348632812501],[22.52412109375004,49.03139648437502],[22.538671875,49.07270507812501],[22.847070312500023,49.08125],[22.705664062500006,49.17119140624999],[22.6494140625,49.53901367187498],[22.706152343750006,49.60620117187497],[23.03632812500004,49.899072265624966],[23.711718750000045,50.377343749999966],[23.97265625,50.410058593749966],[24.089941406250006,50.53046874999998],[24.0947265625,50.617041015625034],[23.9970703125,50.809375],[24.095800781250063,50.87275390625001],[23.664453125000023,51.31005859375],[23.61376953125,51.525390625],[23.706835937500045,51.64130859374998],[23.79169921875001,51.63710937500002],[23.864257812500057,51.62397460937501],[23.951171875,51.58505859374998],[23.978320312500017,51.59130859375003],[24.12685546875008,51.664648437500034],[24.280078125000017,51.77470703124999],[24.361914062500006,51.86752929687498],[25.785742187500006,51.923828125],[26.77343750000003,51.77070312499998],[26.952832031249983,51.754003906250034],[27.074121093750023,51.760839843750006],[27.14199218750008,51.75205078124998],[27.29628906250008,51.59741210937503],[27.689746093750017,51.572412109374994],[27.7,51.47797851562501],[27.85859375000004,51.59238281250006],[28.532031250000017,51.56245117187501],[28.59902343750008,51.54262695312505],[28.647753906250074,51.45654296875],[28.690234375000017,51.43886718750005],[28.73125,51.43339843749999],[28.84951171875005,51.540185546874994],[28.927539062500045,51.56215820312502],[28.97773437500004,51.57177734375003],[29.01308593750005,51.59892578124996],[29.06074218750001,51.625439453124955],[29.102050781250057,51.627539062500034],[29.346484375000017,51.38256835937503],[30.160742187500006,51.477880859375006],[30.449511718750017,51.274316406249994],[30.63251953125004,51.35541992187501],[30.61171875000005,51.406347656250006],[30.602343750000017,51.47124023437499],[30.56074218750004,51.531494140625],[30.533007812500017,51.596337890624966],[30.583886718749994,51.68896484375003],[30.667285156250017,51.81411132812502],[30.755273437499994,51.89516601562502],[30.84570312500003,51.95307617187501],[30.980664062500097,52.04619140624996],[31.217968750000097,52.05024414062498],[31.345996093750074,52.10537109375002],[31.57373046875003,52.108105468749955],[31.763378906250097,52.10107421875003],[32.12226562500004,52.05058593749996],[32.435449218749994,52.307226562500034],[33.735253906249994,52.344775390625045],[34.397851562499994,51.780419921874994],[34.12109375000003,51.67915039062498],[34.21386718750003,51.25537109375006],[35.0640625,51.203417968750045],[35.31191406250005,51.043896484374955],[35.59111328125002,50.36875],[36.1164062500001,50.408544921875006],[36.619433593750074,50.209228515625],[37.42285156249997,50.411474609375006],[38.046875,49.92001953125006],[38.258593750000074,50.05234375],[38.91835937499999,49.82470703125],[39.17480468750003,49.85595703124997],[39.780566406250074,49.57202148437503],[40.080664062500006,49.576855468749955],[40.10878906250005,49.251562500000034],[39.68652343749997,49.007910156250034],[40.00361328125004,48.82207031250002],[39.792871093749994,48.807714843750034],[39.6447265625001,48.591210937499966],[39.8356445312501,48.54277343749996],[39.95791015625005,48.268896484375034],[39.77871093750005,47.88754882812506],[38.90029296875005,47.85512695312502],[38.36884765625004,47.609960937500006],[38.21435546875003,47.091455078124966]]]]},"properties":{"name":"Ukraine","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-57.81059570312499,-30.85859375000001],[-57.872509765625,-30.59101562500001],[-57.831201171874994,-30.495214843750006],[-57.71269531249999,-30.38447265625001],[-57.65087890625,-30.295019531250006],[-57.645751953125,-30.226953125],[-57.60888671875,-30.187792968750003],[-57.55229492187499,-30.26123046875],[-57.21445312499999,-30.28339843750001],[-57.186914062499994,-30.26484375000001],[-57.120507812499994,-30.14443359375001],[-56.83271484375,-30.107226562500003],[-56.4072265625,-30.44746093750001],[-55.998974609375,-30.837207031250003],[-56.018457031249994,-30.99189453125001],[-56.00468749999999,-31.079199218750006],[-55.873681640624994,-31.069628906250003],[-55.6271484375,-30.85810546875001],[-55.60302734375,-30.85078125000001],[-55.55732421875,-30.8759765625],[-55.17353515625,-31.279589843750003],[-55.09116210937499,-31.31396484375],[-55.036035156249994,-31.27900390625001],[-54.587646484375,-31.48515625],[-54.22055664062499,-31.85517578125001],[-53.76171875,-32.05683593750001],[-53.601708984374994,-32.40302734375001],[-53.12558593749999,-32.73671875],[-53.2140625,-32.82109375],[-53.31010742187499,-32.92705078125],[-53.39521484375,-33.010351562500006],[-53.482861328125,-33.06855468750001],[-53.511865234374994,-33.10869140625],[-53.53134765624999,-33.1708984375],[-53.53134765624999,-33.65546875000001],[-53.37060546875,-33.7421875],[-53.419580078124994,-33.77919921875001],[-53.47246093749999,-33.84931640625001],[-53.53452148437499,-34.01748046875001],[-53.742919921875,-34.24951171875],[-53.785302734374994,-34.38037109375],[-54.16855468749999,-34.670703125],[-54.902294921875,-34.93281250000001],[-55.67314453124999,-34.77568359375],[-56.249951171875,-34.90126953125001],[-57.17070312499999,-34.45234375000001],[-57.8291015625,-34.47734375],[-58.40019531249999,-33.91240234375],[-58.363525390625,-33.18232421875001],[-58.08232421874999,-32.893652343750006],[-58.12958984375,-32.75722656250001],[-58.16220703124999,-32.566503906250006],[-58.201171875,-32.4716796875],[-58.123046875,-32.321875],[-58.11972656249999,-32.24892578125001],[-58.164794921875,-32.18486328125],[-58.177001953125,-32.11904296875001],[-58.15634765624999,-32.0515625],[-58.160400390625,-31.98652343750001],[-58.18901367187499,-31.92421875],[-58.16748046875,-31.87265625],[-58.04233398437499,-31.76923828125001],[-58.006982421874994,-31.68496093750001],[-58.053857421874994,-31.494921875],[-58.0333984375,-31.416601562500006],[-57.89335937499999,-31.1953125],[-57.868408203125,-31.10439453125001],[-57.88632812499999,-30.93740234375001],[-57.81059570312499,-30.85859375000001]]]},"properties":{"name":"Uruguay","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-155.58134765624996,19.012011718750017],[-155.88129882812495,19.07050781250001],[-156.04868164062498,19.749951171874983],[-155.82031249999997,20.01416015624997],[-155.83164062499998,20.27583007812501],[-155.198779296875,19.99438476562503],[-154.80419921875,19.524462890625045],[-155.58134765624996,19.012011718750017]]],[[[-156.84960937499997,20.772656249999955],[-156.97338867187497,20.757519531249983],[-157.0505859375,20.912451171875034],[-156.88056640624995,20.904833984375074],[-156.84960937499997,20.772656249999955]]],[[[-156.48681640624994,20.93256835937504],[-156.27753906250004,20.951269531250034],[-155.98984374999998,20.75712890624999],[-156.40878906249998,20.60517578125004],[-156.480078125,20.80122070312501],[-156.69775390625003,20.949072265625034],[-156.58540039062495,21.034326171874994],[-156.48681640624994,20.93256835937504]]],[[[-157.21362304687497,21.215380859375017],[-156.71215820312506,21.155078125000074],[-156.85986328125,21.05634765625004],[-157.29033203124996,21.112597656250017],[-157.21362304687497,21.215380859375017]]],[[[-157.79936523437502,21.456640625000034],[-157.63540039062502,21.30761718749997],[-158.11035156249994,21.318603515625],[-158.27314453125,21.585253906250045],[-157.9625,21.701367187499983],[-157.79936523437502,21.456640625000034]]],[[[-159.37275390625,21.93237304687497],[-159.60883789062495,21.909521484375034],[-159.78916015625003,22.041796875000074],[-159.57919921874998,22.22314453124997],[-159.35205078124997,22.219580078125034],[-159.37275390625,21.93237304687497]]],[[[-81.04418945312503,24.716796875000057],[-81.137353515625,24.710498046875017],[-80.93046875,24.75947265625004],[-81.04418945312503,24.716796875000057]]],[[[-80.3818359375,25.142285156249955],[-80.58056640624997,24.954248046875023],[-80.25708007812497,25.34760742187504],[-80.3818359375,25.142285156249955]]],[[[-97.17070312499996,26.159375],[-97.40209960937494,26.820507812499983],[-97.38598632812494,27.19648437500004],[-97.17070312499996,26.159375]]],[[[-80.18676757812497,27.278417968750034],[-80.17050781250003,27.20478515625004],[-80.43691406249994,27.850537109374955],[-80.18676757812497,27.278417968750034]]],[[[-91.793701171875,29.50073242187497],[-92.00664062499996,29.61030273437501],[-91.875244140625,29.640966796875034],[-91.793701171875,29.50073242187497]]],[[[-84.90791015624998,29.642626953125017],[-85.11674804687499,29.63281249999997],[-84.737158203125,29.732421875],[-84.90791015624998,29.642626953125017]]],[[[-89.22397460937498,30.084082031249977],[-89.34199218749995,30.062841796875006],[-89.18466796874995,30.168652343749983],[-89.22397460937498,30.084082031249977]]],[[[-118.34794921875002,33.3857421875],[-118.29746093750003,33.312109375],[-118.44628906249997,33.317089843749955],[-118.56943359375002,33.46416015624999],[-118.34794921875002,33.3857421875]]],[[[-120.04355468749995,33.918847656249994],[-120.25190429687494,34.01386718749998],[-120.07182617187493,34.026513671874966],[-120.04355468749995,33.918847656249994]]],[[[-119.88237304687497,34.07968749999998],[-119.54926757812497,34.02817382812506],[-119.80957031249997,33.9677734375],[-119.88237304687497,34.07968749999998]]],[[[-75.54414062499995,35.240087890625034],[-75.69008789062502,35.221582031249994],[-75.53637695312497,35.27861328124999],[-75.50351562500003,35.769140625],[-75.46474609374994,35.448632812499966],[-75.54414062499995,35.240087890625034]]],[[[-74.13320312500002,39.680761718750034],[-74.25048828125,39.529394531250006],[-74.10673828124996,39.74643554687498],[-74.13320312500002,39.680761718750034]]],[[[-72.50976562500003,40.98603515625001],[-72.58085937499996,40.92133789062498],[-71.90322265625,41.06069335937505],[-73.19428710937495,40.654199218749994],[-74.01489257812497,40.581201171874966],[-73.87924804687498,40.79165039062502],[-73.573828125,40.91962890624998],[-72.62509765624998,40.99184570312505],[-72.27412109374998,41.15302734375001],[-72.50976562500003,40.98603515625001]]],[[[-69.9779296875,41.26557617187504],[-70.23305664062502,41.28632812500001],[-70.04121093750001,41.3974609375],[-69.9779296875,41.26557617187504]]],[[[-70.50991210937502,41.376318359375034],[-70.82919921874995,41.35898437500006],[-70.61601562499996,41.45722656250001],[-70.50991210937502,41.376318359375034]]],[[[-71.24140625000001,41.49194335937497],[-71.34624023437496,41.469384765624994],[-71.23203124999995,41.654296875],[-71.24140625000001,41.49194335937497]]],[[[-68.18725585937497,44.33247070312501],[-68.41171875000003,44.294335937499966],[-68.29941406249998,44.456494140624955],[-68.18725585937497,44.33247070312501]]],[[[-122.394140625,47.39526367187503],[-122.50991210937497,47.358007812500006],[-122.486474609375,47.48876953125],[-122.394140625,47.39526367187503]]],[[[-122.57275390624999,48.15664062499999],[-122.38315429687499,47.923193359375034],[-122.74150390624999,48.22529296875004],[-122.62861328125,48.38422851562498],[-122.54243164062503,48.29399414062499],[-122.69702148437499,48.228662109374994],[-122.57275390624999,48.15664062499999]]],[[[-94.80346679687497,49.0029296875],[-94.71279296874997,48.863427734374994],[-94.62089843749999,48.74262695312501],[-93.85161132812496,48.607275390625034],[-93.70771484374995,48.52543945312499],[-93.37788085937498,48.61655273437498],[-93.25795898437497,48.62885742187501],[-92.83671875,48.567773437499994],[-92.50058593749995,48.43535156250002],[-92.41459960937493,48.276611328125],[-92.3484375,48.276611328125],[-92.00517578125002,48.301855468750006],[-91.38720703124997,48.05854492187498],[-91.04345703125003,48.19370117187498],[-90.84033203125003,48.20053710937506],[-90.79731445312495,48.13105468750001],[-89.4556640625,47.996240234374994],[-88.37817382812497,48.30307617187498],[-87.74389648437497,48.06054687500003],[-87.20800781249997,47.848486328125006],[-86.67216796874996,47.636425781249955],[-85.65224609375,47.21997070312503],[-85.07006835937497,46.97993164062498],[-84.87597656249994,46.89990234375003],[-84.66577148437503,46.54326171875002],[-84.44047851562496,46.49814453125006],[-84.12319335937497,46.50292968749997],[-83.97778320312503,46.08491210937498],[-83.61596679687503,46.116845703124994],[-83.46948242187503,45.99467773437499],[-83.59267578125,45.81713867187506],[-82.91933593749994,45.51796875000002],[-82.55107421874996,45.34736328125001],[-82.48505859374993,45.08374023437503],[-82.137841796875,43.570898437500034],[-82.19038085937495,43.47407226562501],[-82.54531249999997,42.62470703124998],[-83.10952148437497,42.25068359375001],[-83.141943359375,41.97587890624996],[-82.69003906249995,41.675195312499994],[-82.43906249999998,41.67485351562502],[-81.97416992187496,41.88872070312499],[-81.50732421874997,42.10346679687504],[-81.02822265624997,42.247167968750006],[-80.24755859375,42.36601562499996],[-79.17373046875,42.74853515625],[-78.91508789062496,42.90913085937504],[-78.98076171874993,42.98061523437502],[-79.02617187499996,43.01733398437506],[-79.066064453125,43.10610351562502],[-79.171875,43.466552734375],[-79.00249023437502,43.52714843749999],[-78.845556640625,43.58334960937498],[-78.72041015625001,43.62495117187501],[-78.45825195312497,43.63149414062502],[-77.596533203125,43.62861328124998],[-76.819970703125,43.62880859375002],[-76.18579101562503,44.24223632812502],[-75.81933593749997,44.468017578125],[-75.40126953124997,44.77226562499999],[-74.99614257812496,44.970117187499966],[-74.76245117187494,44.99907226562502],[-74.663232421875,45.00390625000003],[-71.51752929687495,45.00756835937497],[-71.327294921875,45.29008789062496],[-70.86503906249999,45.27070312500001],[-70.296240234375,45.90610351562506],[-70.00771484375002,46.70893554687501],[-69.24287109374998,47.46298828124998],[-69.0501953125,47.426611328125034],[-68.93720703124998,47.21123046875002],[-68.23549804687502,47.34594726562503],[-67.806787109375,47.08281249999999],[-67.80224609374994,45.7275390625],[-67.43266601562496,45.603125],[-67.366943359375,45.17377929687498],[-67.12485351562498,45.16943359375],[-66.98701171874995,44.82768554687502],[-67.191259765625,44.67558593750002],[-67.83906249999998,44.576269531250034],[-68.056640625,44.38432617187502],[-68.15205078124998,44.50200195312499],[-68.45058593749997,44.50761718749999],[-68.53251953124996,44.25864257812498],[-68.81191406249994,44.33935546875],[-68.76269531249994,44.57075195312498],[-69.22607421875003,43.98647460937505],[-69.52075195312503,43.89736328125002],[-69.55668945312496,43.982763671875006],[-69.62392578125,43.88061523437497],[-69.65288085937493,43.99389648437506],[-69.808349609375,43.772314453125034],[-69.965234375,43.855078125],[-70.17880859374998,43.76635742187506],[-70.73310546875001,43.07001953125004],[-70.82905273437493,42.82534179687502],[-70.61293945312497,42.623242187499955],[-71.04619140624993,42.331103515625045],[-70.73828125,42.228857421875006],[-70.42666015625002,41.75727539062501],[-70.00141601562498,41.82617187500003],[-70.24106445312495,42.09121093750002],[-70.10893554687496,42.07832031249998],[-69.97788085937498,41.961279296875006],[-69.94863281249997,41.67714843750005],[-70.65712890625,41.53422851562496],[-70.70112304687498,41.71484375],[-71.1685546875,41.489404296874994],[-71.14873046874996,41.74570312499998],[-71.27109375,41.68125],[-71.39013671875003,41.79531250000005],[-71.52285156249997,41.378955078125045],[-72.92470703125002,41.28515625000003],[-73.98710937499999,40.751367187499994],[-73.87197265625,41.05517578124997],[-73.96992187499995,41.24970703125001],[-73.92719726562495,40.914257812499955],[-74.26420898437496,40.52861328124999],[-73.972265625,40.40034179687498],[-74.079931640625,39.78813476562496],[-74.06459960937497,39.99311523437498],[-74.79448242187499,39.00190429687501],[-74.95429687499995,38.949951171875],[-74.89702148437502,39.14545898437504],[-75.52421874999999,39.49018554687501],[-75.421875,39.78969726562502],[-75.07416992187495,39.98349609375006],[-75.40063476562503,39.83159179687502],[-75.58759765625001,39.64077148437505],[-75.3921875,39.09277343750006],[-75.08867187499999,38.777539062499955],[-75.18710937499995,38.59111328124999],[-75.03876953124993,38.426367187500006],[-75.934375,37.15190429687496],[-75.97504882812498,37.3984375],[-75.65927734374995,37.953955078125034],[-75.850830078125,37.971582031249994],[-75.85869140624999,38.36206054687503],[-76.05122070312495,38.27954101562503],[-76.2646484375,38.436425781249994],[-76.26416015625,38.599951171875006],[-76.016943359375,38.62509765624998],[-76.21298828124998,38.75830078125003],[-76.34116210937498,38.70966796874998],[-76.16816406249998,38.85273437499998],[-76.32958984375,38.95278320312505],[-76.13520507812493,39.082128906250006],[-76.23569335937498,39.19160156250001],[-76.153125,39.315039062500034],[-75.87597656249997,39.3759765625],[-76.003125,39.41083984375001],[-75.87294921874997,39.510888671874966],[-75.95893554687498,39.58505859374998],[-76.2763671875,39.32275390625],[-76.330810546875,39.40390625],[-76.42089843749997,39.225],[-76.57041015624995,39.26933593749996],[-76.42758789062498,39.12602539062499],[-76.55854492187493,39.065234375000045],[-76.39409179687502,38.368994140625034],[-76.67734374999998,38.611962890624966],[-76.66855468749998,38.5375],[-76.34116210937498,38.08701171875006],[-76.86811523437495,38.39028320312502],[-76.88974609375,38.292089843750006],[-77.00117187499995,38.44526367187504],[-77.23251953125,38.40771484375003],[-77.03037109374995,38.88925781249998],[-77.26040039062502,38.6],[-77.27324218749996,38.35175781249998],[-77.04677734375002,38.356689453125],[-76.26425781250003,37.89355468749997],[-76.34414062499997,37.675683593749994],[-76.49248046874999,37.682226562500006],[-77.11108398437497,38.165673828124994],[-76.54946289062494,37.66914062500001],[-76.30556640625,37.57148437500001],[-76.26347656249996,37.35703125],[-76.40097656249998,37.386132812499994],[-76.45390624999993,37.27353515625006],[-76.75771484375002,37.50541992187496],[-76.28330078125,37.05268554687501],[-76.40087890624997,36.991308593750034],[-76.63090820312493,37.22172851562499],[-77.25087890624994,37.329199218750034],[-76.671875,37.172949218750006],[-76.48784179687502,36.89702148437499],[-75.99941406249997,36.91264648437499],[-75.53417968749997,35.81909179687506],[-75.94648437499995,36.65908203125002],[-75.99277343749995,36.47377929687502],[-75.82006835937494,36.11284179687502],[-76.14785156250002,36.279296875],[-76.15,36.14575195312497],[-76.27060546874998,36.18989257812501],[-76.22739257812498,36.11601562499996],[-76.559375,36.015332031249955],[-76.733642578125,36.229150390624994],[-76.726220703125,35.957617187500034],[-76.06977539062501,35.970312500000034],[-76.08359374999998,35.69052734375006],[-75.85390625,35.96015625000001],[-75.75883789062499,35.84326171875],[-75.77392578124997,35.64697265624997],[-76.17382812499997,35.354150390624994],[-76.489501953125,35.397021484375045],[-76.57719726562502,35.53232421874998],[-76.74140624999998,35.431494140625034],[-77.03999023437495,35.527392578125045],[-76.51293945312497,35.270410156249994],[-76.77915039062503,34.990332031250034],[-77.07026367187501,35.154638671875034],[-76.97495117187503,35.025195312500045],[-76.74497070312498,34.94096679687502],[-76.45673828124998,34.989355468750034],[-76.36220703125,34.9365234375],[-76.43979492187498,34.84291992187502],[-77.29624023437503,34.602929687499994],[-77.41225585937497,34.730810546875034],[-77.37978515625,34.526611328125],[-77.750732421875,34.28496093749996],[-77.92783203125,33.93974609374999],[-77.95327148437494,34.16899414062496],[-78.01333007812502,33.91181640624998],[-78.40585937499995,33.91757812499998],[-78.84145507812497,33.72407226562501],[-79.19379882812498,33.24414062500003],[-79.22646484375,33.40488281249998],[-79.27602539062497,33.135400390624966],[-79.80498046874999,32.78740234374996],[-79.93310546874997,32.81005859375006],[-79.94072265625002,32.667138671874966],[-80.36284179687496,32.500732421875],[-80.6341796875,32.51171875000003],[-80.474267578125,32.42275390625002],[-80.579345703125,32.28730468750004],[-80.80253906249999,32.44804687500002],[-80.69423828124997,32.21572265625002],[-81.11328124999997,31.87861328125001],[-81.06611328124995,31.787988281250023],[-81.259375,31.538916015624977],[-81.17543945312494,31.531298828125017],[-81.38095703124998,31.353271484375],[-81.28847656249997,31.263916015625],[-81.441748046875,31.19970703124997],[-81.5162109375,30.801806640625017],[-81.24951171875003,29.793798828125006],[-80.52412109374995,28.48608398437503],[-80.5849609375,28.271582031250034],[-80.456884765625,27.90068359374996],[-80.61000976562494,28.177587890624977],[-80.60693359375003,28.522900390624983],[-80.693505859375,28.34497070312497],[-80.68847656250003,28.578515625000023],[-80.83818359374999,28.757666015625034],[-80.74863281250003,28.381005859375023],[-80.050048828125,26.807714843750063],[-80.1263671875,25.83349609375],[-80.48466796874999,25.229833984375034],[-81.11049804687494,25.138037109374977],[-81.13603515624999,25.309667968750034],[-80.94042968750003,25.264208984375017],[-81.11333007812499,25.367236328125045],[-81.36494140625001,25.83105468750003],[-81.715478515625,25.98315429687503],[-81.95893554687495,26.489941406249983],[-81.82866210937496,26.68706054687499],[-82.03959960937496,26.552050781250017],[-82.01328125,26.96157226562505],[-82.24287109374998,26.848876953125],[-82.44135742187501,27.059667968750034],[-82.71459960937497,27.499609375000063],[-82.40576171874994,27.862890624999977],[-82.67519531249994,27.963769531250023],[-82.61098632812502,27.77724609375005],[-82.74287109374995,27.709375],[-82.84350585937494,27.845996093750017],[-82.65146484375,28.8875],[-83.69438476562502,29.92597656250001],[-84.04423828124996,30.10380859374999],[-84.30966796874995,30.064746093750045],[-84.38281250000003,29.90737304687505],[-85.31894531249995,29.680224609375045],[-85.413818359375,29.76757812499997],[-85.413818359375,29.842480468749955],[-85.31489257812493,29.758105468750017],[-85.35361328125,29.875732421875],[-85.67578125,30.121923828125063],[-85.60351562500003,30.286767578124966],[-85.75581054687495,30.1669921875],[-86.454443359375,30.39912109375004],[-86.12382812499999,30.40581054687499],[-86.25737304687502,30.493017578124977],[-87.201171875,30.339257812499994],[-86.98579101562498,30.43085937500001],[-86.99755859375,30.5703125],[-87.17060546874998,30.538769531249983],[-87.28105468750002,30.339257812499994],[-87.47578124999998,30.294287109375006],[-87.44829101562499,30.394140625],[-87.62226562499998,30.264746093750006],[-88.00595703124998,30.230908203124955],[-87.79028320312503,30.291796875000017],[-88.011328125,30.694189453125006],[-88.13544921874998,30.366601562499994],[-88.90522460937495,30.415136718750006],[-89.32055664062503,30.3453125],[-89.58847656249998,30.165966796874955],[-90.12597656249997,30.369091796874955],[-90.33198242187493,30.277587890625057],[-90.41303710937501,30.140332031249983],[-90.17534179687499,30.02910156249996],[-89.73745117187497,30.171972656250034],[-89.66503906249994,30.117041015625034],[-89.81518554687497,30.007275390624955],[-89.631689453125,29.90380859375003],[-89.400732421875,30.04604492187505],[-89.35444335937501,29.82021484375005],[-89.72089843749995,29.619287109374966],[-89.01572265625,29.202880859375057],[-89.15551757812497,29.01660156250003],[-89.23608398437494,29.081103515625017],[-89.37612304687497,28.981347656250023],[-89.44316406249996,29.194140625000045],[-90.15908203124997,29.537158203125017],[-90.05278320312499,29.336816406249966],[-90.21279296875,29.104931640624983],[-90.37919921874996,29.29511718750001],[-90.75102539062496,29.13085937500003],[-91.29013671875,29.288964843749994],[-91.15078124999994,29.317919921875045],[-91.24882812499993,29.56420898437503],[-91.51420898437499,29.55537109375001],[-91.8931640625,29.836035156249977],[-92.135498046875,29.699462890625057],[-92.08403320312499,29.59282226562499],[-92.26083984374995,29.55683593750004],[-93.17568359375,29.778955078124994],[-93.82646484374999,29.725146484375045],[-93.84145507812502,29.97973632812503],[-93.89047851562495,29.689355468750023],[-94.759619140625,29.384277343750057],[-94.52626953125,29.547949218750006],[-94.77827148437498,29.54785156249997],[-94.74194335937497,29.75],[-95.0228515625,29.70234375000001],[-94.88828125000003,29.37055664062501],[-95.27348632812499,28.96386718750003],[-96.23452148437502,28.488964843749983],[-96.01103515624996,28.631933593749977],[-96.44873046874997,28.594482421875],[-96.64003906249994,28.708789062500017],[-96.42109374999993,28.457324218750045],[-96.67636718749998,28.34130859375003],[-96.77353515624998,28.421630859375057],[-96.839501953125,28.194384765625017],[-97.156494140625,28.144335937500045],[-97.141259765625,28.060742187499983],[-97.034326171875,28.093847656250063],[-97.07309570312498,27.98608398437503],[-97.43149414062498,27.83720703124999],[-97.28872070312494,27.670605468749983],[-97.43911132812502,27.328271484374966],[-97.76845703124997,27.45751953125],[-97.69238281250003,27.287158203125017],[-97.48510742187497,27.237402343750006],[-97.55468749999994,26.96733398437496],[-97.43505859375,26.48583984375003],[-97.14624023437494,25.961474609375045],[-97.37563476562497,25.871826171875],[-99.10776367187498,26.446923828124994],[-99.45654296874999,27.05668945312496],[-99.50532226562497,27.54833984375003],[-100.29604492187495,28.32768554687499],[-100.75458984375001,29.182519531249994],[-101.44038085937503,29.77685546875],[-102.26894531249998,29.871191406250034],[-102.61494140624994,29.75234375],[-102.8919921875,29.216406250000034],[-103.16831054687498,28.998193359374994],[-104.110595703125,29.386132812499994],[-104.50400390624995,29.677685546874955],[-104.97880859374996,30.645947265624955],[-106.14804687499995,31.450927734375],[-106.44541015624996,31.768408203125006],[-108.21181640625002,31.779345703125017],[-108.21445312499993,31.329443359375034],[-111.0419921875,31.32421875000003],[-114.83593749999994,32.50830078125003],[-114.72475585937495,32.71533203125003],[-117.12827148437495,32.533349609374994],[-117.46743164062495,33.295507812500006],[-118.08051757812497,33.72216796874997],[-118.41044921874996,33.74394531249996],[-118.506201171875,34.01738281249999],[-119.14375,34.11201171874998],[-119.60605468749999,34.41801757812499],[-120.48120117187503,34.47163085937498],[-120.64467773437502,34.57998046875002],[-120.65908203124994,35.122412109375034],[-120.85737304687501,35.209667968749955],[-120.899609375,35.42509765624999],[-121.28383789062494,35.67631835937499],[-121.87739257812498,36.33105468749997],[-121.80742187499995,36.851220703124994],[-122.394921875,37.20751953125003],[-122.49921875000001,37.542626953124994],[-122.44560546875002,37.797998046874966],[-122.07050781249998,37.47827148437503],[-122.38544921875001,37.960595703124966],[-122.31425781249999,38.00732421874997],[-121.52534179687503,38.05590820312503],[-122.39335937499995,38.14482421875002],[-122.52133789062499,37.82641601562497],[-122.93198242187498,38.05546875000002],[-122.998779296875,37.98862304687498],[-122.90815429687501,38.19658203124999],[-123.701123046875,38.90727539062502],[-123.83291015624994,39.775488281250034],[-124.35654296875003,40.37109374999997],[-124.07192382812497,41.45952148437502],[-124.53964843750003,42.812890624999966],[-124.14873046874997,43.691748046875034],[-123.92934570312495,45.57695312499996],[-123.989306640625,46.21938476562502],[-123.22060546874998,46.153613281250045],[-123.46484375,46.27109374999998],[-124.07275390624996,46.279443359374994],[-124.04433593750002,46.605078125],[-123.946142578125,46.43256835937501],[-123.88916015625003,46.660009765625006],[-124.11254882812497,46.862695312499994],[-123.84287109375002,46.963183593750045],[-124.11171875,47.03520507812496],[-124.1392578125,46.95468749999998],[-124.376025390625,47.658642578124955],[-124.66308593749996,47.97412109375003],[-124.7099609375,48.38037109375],[-123.97578125,48.16845703125],[-122.97387695312499,48.07329101562496],[-122.77861328125,48.13759765625002],[-122.65664062500002,47.88115234374999],[-122.77841796874996,47.738427734374966],[-122.82138671875,47.79316406250001],[-123.1390625,47.386083984375034],[-122.92216796874993,47.40766601562498],[-123.066796875,47.39965820312506],[-123.04863281249995,47.479345703125034],[-122.53281250000002,47.919726562500045],[-122.67548828124995,47.612353515625045],[-122.57788085937496,47.29316406250001],[-122.76777343750001,47.21835937500006],[-122.82846679687503,47.336572265624994],[-123.02758789062501,47.13891601562503],[-122.70195312500002,47.11088867187502],[-122.35380859374996,47.37158203125],[-122.40180664062497,47.78427734374998],[-122.24199218750002,48.01074218750003],[-122.5169921875,48.15966796874997],[-122.40854492187502,48.29389648437498],[-122.66899414062496,48.465234374999966],[-122.49677734374995,48.50556640625001],[-122.51274414062502,48.66943359375],[-122.56201171875001,48.777978515624994],[-122.68593749999995,48.794287109375034],[-122.72246093750002,48.85302734375003],[-122.78876953125003,48.993017578125034],[-121.40722656249994,48.993017578125034],[-119.70170898437495,48.993017578125034],[-119.27534179687494,48.99306640625005],[-118.84892578124993,48.99306640625005],[-117.99619140625002,48.99306640625005],[-116.71704101562501,48.99306640625005],[-110.74765625,48.99306640625005],[-104.77832031249997,48.993115234374955],[-98.80898437499995,48.99316406249997],[-97.52983398437493,48.99316406249997],[-96.67705078124993,48.99316406249997],[-96.25068359374993,48.99316406249997],[-95.39790039062493,48.99316406249997],[-95.16206054687493,48.991748046875045],[-95.15527343749997,49.36967773437502],[-94.85434570312495,49.304589843749994],[-94.86040039062493,49.258593750000045],[-94.80346679687497,49.0029296875]]],[[[-176.28671874999998,51.79199218750006],[-176.34965820312502,51.733300781249994],[-176.41372070312502,51.840576171875],[-176.28671874999998,51.79199218750006]]],[[[-177.87905273437502,51.64970703125002],[-178.05888671875,51.67260742187497],[-177.98637695312493,51.76425781249998],[-178.16826171874996,51.90302734375001],[-177.644482421875,51.826269531250006],[-177.87905273437502,51.64970703125002]]],[[[-177.14819335937497,51.71674804687498],[-177.67021484375002,51.701074218749994],[-177.11005859375,51.92875976562502],[-177.14819335937497,51.71674804687498]]],[[[-176.593310546875,51.86669921875],[-176.45234374999995,51.735693359375034],[-176.96162109374998,51.60366210937505],[-176.69833984374998,51.986035156249955],[-176.593310546875,51.86669921875]]],[[[179.72773437500015,51.905419921874966],[179.50390625000003,51.97958984374998],[179.6271484375001,52.03041992187502],[179.72773437500015,51.905419921874966]]],[[[177.4154296875,51.88281249999997],[177.25029296875013,51.902929687500006],[177.6696289062501,52.10302734375],[177.4154296875,51.88281249999997]]],[[[-173.5533203125,52.13627929687502],[-173.02290039062504,52.07915039062502],[-173.83579101562498,52.048193359375006],[-173.99248046874993,52.12333984374996],[-173.5533203125,52.13627929687502]]],[[[-172.464794921875,52.27226562500002],[-172.61982421874998,52.27285156250005],[-172.47041015625,52.38803710937506],[-172.31362304687497,52.32958984375006],[-172.464794921875,52.27226562500002]]],[[[-174.67739257812502,52.035009765625006],[-175.29555664062502,52.022167968749955],[-174.30615234375,52.216162109375034],[-174.43554687499997,52.317236328125034],[-174.168896484375,52.42016601562503],[-174.04560546875,52.36723632812499],[-174.12065429687493,52.13520507812498],[-174.67739257812502,52.035009765625006]]],[[[173.72275390625018,52.35957031250004],[173.40234375000009,52.40478515625],[173.77607421875004,52.49511718750003],[173.72275390625018,52.35957031250004]]],[[[172.81181640625002,53.01298828125002],[173.43603515625003,52.85205078125],[172.93515625000012,52.752099609374966],[172.49482421875004,52.93789062499999],[172.81181640625002,53.01298828125002]]],[[[-167.96435546875003,53.345117187499994],[-169.088916015625,52.83203125],[-168.68984375000002,53.227246093749955],[-168.38041992187496,53.28344726562506],[-168.28769531249998,53.500146484374966],[-167.82807617187495,53.50795898437505],[-167.96435546875003,53.345117187499994]]],[[[-166.61533203124998,53.90092773437499],[-166.37231445312494,53.99897460937498],[-166.230859375,53.93261718750006],[-166.54560546875,53.726464843749966],[-166.354541015625,53.67353515625004],[-166.85097656249997,53.45288085937503],[-167.78085937500003,53.30024414062501],[-167.13608398437503,53.526464843750006],[-167.01572265625003,53.69838867187502],[-166.80898437500002,53.64614257812505],[-166.741259765625,53.71293945312496],[-167.10561523437497,53.813378906249994],[-167.03808593749997,53.9421875],[-166.67329101562498,54.00595703124998],[-166.61533203124998,53.90092773437499]]],[[[-165.841552734375,54.070654296875006],[-166.05664062500003,54.054345703124994],[-166.08774414062498,54.16914062500001],[-165.89287109375,54.20698242187498],[-165.69287109375,54.09990234375002],[-165.841552734375,54.070654296875006]]],[[[-165.56113281249998,54.13671874999997],[-165.55063476562498,54.28452148437498],[-165.40786132812502,54.19682617187496],[-165.56113281249998,54.13671874999997]]],[[[-162.29814453124993,54.847021484375006],[-162.43388671875,54.931542968749994],[-162.26459960937504,54.983496093750006],[-162.29814453124993,54.847021484375006]]],[[[-163.476025390625,54.98071289062497],[-163.37895507812496,54.81552734374998],[-163.083251953125,54.66899414062496],[-163.35810546874995,54.73569335937506],[-164.82343749999998,54.41909179687505],[-164.887646484375,54.60781250000002],[-164.47861328124998,54.906835937500006],[-163.80712890624997,55.04907226562503],[-163.476025390625,54.98071289062497]]],[[[-159.51513671875,55.15185546875003],[-159.617724609375,55.05732421875004],[-159.54506835937497,55.22597656250002],[-159.51513671875,55.15185546875003]]],[[[-131.33974609375002,55.079833984375],[-131.32954101562498,54.887744140625045],[-131.592236328125,55.02568359374999],[-131.5654296875,55.26411132812498],[-131.33974609375002,55.079833984375]]],[[[-159.87299804687495,55.128759765625034],[-160.22705078124997,54.92270507812506],[-160.17207031249995,55.123046875],[-159.88735351562497,55.27299804687502],[-159.87299804687495,55.128759765625034]]],[[[-132.86225585937504,54.894433593749966],[-132.61723632812493,54.892431640625006],[-132.70581054687497,54.684179687500034],[-133.42905273437498,55.30380859374998],[-133.097412109375,55.213720703125006],[-132.86225585937504,54.894433593749966]]],[[[-160.329296875,55.337695312500045],[-160.34331054687493,55.25878906250006],[-160.51748046875,55.33383789062506],[-160.329296875,55.337695312500045]]],[[[-160.68491210937498,55.314794921875006],[-160.552783203125,55.38076171875002],[-160.48754882812503,55.18486328124999],[-160.79506835937497,55.14521484375001],[-160.72392578124993,55.404638671875006],[-160.68491210937498,55.314794921875006]]],[[[-133.30507812500002,55.54375],[-133.6501953125,55.26928710937506],[-133.73710937500002,55.49692382812498],[-133.30507812500002,55.54375]]],[[[-155.56601562500003,55.82119140625005],[-155.73735351562493,55.82978515625001],[-155.59394531250004,55.92431640625],[-155.56601562500003,55.82119140625005]]],[[[-130.97915039062502,55.489160156249994],[-131.187890625,55.206298828125],[-131.44755859374996,55.40878906250006],[-131.7625,55.16582031250002],[-131.84609374999997,55.41625976562497],[-131.62495117187504,55.831689453124966],[-131.26923828125004,55.95537109375002],[-130.997802734375,55.727636718750006],[-130.97915039062502,55.489160156249994]]],[[[-133.56611328125,56.33920898437498],[-133.202978515625,56.31982421875003],[-133.096630859375,56.09003906250001],[-132.59760742187504,55.89501953125],[-132.17270507812498,55.48061523437502],[-132.51127929687493,55.59394531250001],[-132.63129882812495,55.47319335937502],[-132.41787109375002,55.48291015625006],[-132.20668945312497,55.22441406249996],[-131.97641601562498,55.208593750000034],[-132.06474609375002,54.713134765625],[-133.11855468750002,55.32763671875003],[-132.95888671875002,55.39555664062502],[-133.0333984375,55.589697265625034],[-133.68017578124994,55.78515625],[-133.24150390624993,55.920800781249994],[-133.371240234375,56.035888671875],[-133.74252929687498,55.96484375],[-133.530859375,56.145654296874966],[-133.56611328125,56.33920898437498]]],[[[-132.77988281249998,56.24726562499998],[-133.03500976562498,56.34091796875006],[-132.90205078124998,56.45375976562505],[-132.62910156249995,56.411914062500045],[-132.77988281249998,56.24726562499998]]],[[[-132.11235351562493,56.109375],[-132.13295898437497,55.94326171875005],[-132.28730468749995,55.92939453124998],[-132.65991210937503,56.07817382812499],[-132.379833984375,56.49877929687497],[-132.06689453125,56.24423828124998],[-132.11235351562493,56.109375]]],[[[-154.208642578125,56.51489257812497],[-154.32221679687504,56.570605468750045],[-154.11040039062496,56.602929687499966],[-154.208642578125,56.51489257812497]]],[[[-169.755224609375,56.63505859375002],[-169.47431640624998,56.59404296875002],[-169.6326171875,56.545703125000045],[-169.755224609375,56.63505859375002]]],[[[-132.746875,56.525683593750045],[-132.94804687500002,56.56723632812498],[-132.842529296875,56.79477539062506],[-132.56796875000003,56.57583007812505],[-132.746875,56.525683593750045]]],[[[-133.98959960937503,56.84497070312497],[-133.73837890625,56.65043945312496],[-133.94970703125,56.12773437499996],[-134.18959960937502,56.07695312500002],[-134.084375,56.456347656250045],[-134.37368164062502,56.838671875000045],[-134.14326171874998,56.93232421875001],[-133.98959960937503,56.84497070312497]]],[[[-133.36621093750006,57.003515625000034],[-132.99624023437497,56.93041992187497],[-132.95917968749998,56.67705078124996],[-133.03491210937494,56.62075195312505],[-133.32895507812498,56.83007812499997],[-133.158154296875,56.495166015625045],[-133.4841796875,56.45175781249998],[-133.979443359375,57.009570312500045],[-133.36621093750006,57.003515625000034]]],[[[-153.007080078125,57.12485351562498],[-153.37460937499998,57.05190429687505],[-153.285205078125,57.18505859375],[-152.90839843750004,57.152441406250006],[-153.007080078125,57.12485351562498]]],[[[-134.96977539062496,57.351416015625034],[-134.62070312499998,56.71831054687502],[-134.68188476562503,56.216162109375034],[-134.98056640625003,56.518945312499994],[-134.88344726562497,56.679052734375034],[-135.33061523437505,56.821875],[-135.19960937499997,57.02734375],[-135.45493164062503,57.24941406250005],[-135.81230468750002,57.00952148437503],[-135.82275390625,57.280419921874966],[-135.448681640625,57.534375],[-134.96977539062496,57.351416015625034]]],[[[-152.89804687499998,57.82392578125004],[-152.42875976562493,57.82568359375003],[-152.48261718749998,57.70332031249998],[-152.21621093749997,57.577001953125006],[-152.41220703125003,57.454785156249955],[-152.94077148437498,57.49809570312499],[-152.67905273437503,57.345117187499994],[-153.274365234375,57.22636718749996],[-153.732568359375,57.052343750000034],[-153.643310546875,56.960742187500045],[-154.02734375,56.77797851562502],[-153.793212890625,56.98950195312503],[-154.24375,57.143017578124955],[-154.33896484374998,56.9208984375],[-154.67319335937498,57.44609375],[-154.11616210937498,57.651220703125006],[-153.6876953125,57.30512695312504],[-153.841552734375,57.86284179687496],[-153.48793945312497,57.73095703125],[-153.21748046875004,57.79575195312506],[-153.16044921875,57.97197265624999],[-152.85039062499993,57.896777343750045],[-152.89804687499998,57.82392578125004]]],[[[-135.73037109375002,58.244238281250034],[-135.61323242187507,57.99184570312505],[-135.346630859375,58.12412109374998],[-134.9546875,58.01533203125004],[-134.97065429687495,57.817236328125006],[-135.33847656250003,57.768652343750034],[-134.97885742187503,57.724365234375],[-134.93149414062498,57.48115234375001],[-135.564208984375,57.66640625],[-135.691943359375,57.41992187500006],[-135.91079101562502,57.44658203124999],[-136.568603515625,57.97216796875003],[-136.32197265625,58.21889648437502],[-136.14375,58.098486328125006],[-136.09438476562502,58.198144531249966],[-135.73037109375002,58.244238281250034]]],[[[-134.68027343749998,58.16166992187499],[-134.24008789062498,58.143994140624955],[-133.82275390624997,57.62866210937503],[-134.29233398437498,58.044726562500074],[-133.91113281250003,57.3525390625],[-134.51601562499997,57.042578125],[-134.48676757812495,57.48203125],[-134.92348632812497,58.354638671874966],[-134.68027343749998,58.16166992187499]]],[[[-152.416943359375,58.360205078125034],[-151.974365234375,58.30986328124999],[-152.068896484375,58.17792968750001],[-152.26835937499993,58.25170898437506],[-152.30922851562502,58.133886718750034],[-152.5982421875,58.16259765625],[-152.92841796875004,57.99370117187499],[-153.38134765625003,58.08720703125002],[-152.976123046875,58.29702148437505],[-152.771875,58.278564453125],[-152.84111328125002,58.41640625000002],[-152.416943359375,58.360205078125034]]],[[[-152.486083984375,58.485009765624966],[-152.63662109375002,58.54169921874998],[-152.3955078125,58.619384765625],[-152.486083984375,58.485009765624966]]],[[[-160.918994140625,58.57709960937498],[-161.13149414062502,58.668212890625],[-160.71513671875005,58.79521484375002],[-160.918994140625,58.57709960937498]]],[[[-148.02177734375,60.06533203125005],[-148.271875,60.05327148437499],[-148.07958984375003,60.151660156250045],[-148.02177734375,60.06533203125005]]],[[[-147.735888671875,59.81323242187503],[-147.76806640625,59.94375],[-147.180859375,60.358251953125034],[-147.01987304687498,60.33222656249998],[-147.735888671875,59.81323242187503]]],[[[-166.13544921875,60.38354492187503],[-165.72968750000004,60.31420898437503],[-165.591796875,59.913134765625045],[-166.14873046874996,59.764111328124955],[-167.13886718749998,60.00854492187503],[-167.43642578125002,60.20664062500006],[-166.836328125,60.21699218750004],[-166.47568359374998,60.382763671874955],[-166.13544921875,60.38354492187503]]],[[[-146.3939453125,60.44965820312501],[-146.10224609374998,60.41118164062499],[-146.61831054687497,60.27368164062503],[-146.70253906249997,60.40854492187498],[-146.3939453125,60.44965820312501]]],[[[-147.658251953125,60.45048828124999],[-147.787841796875,60.17792968749998],[-147.89145507812498,60.299414062500034],[-147.658251953125,60.45048828124999]]],[[[-172.74223632812496,60.45737304687498],[-172.23208007812494,60.299121093750074],[-172.63574218750003,60.328857421875],[-173.04765625000002,60.56831054687501],[-172.74223632812496,60.45737304687498]]],[[[-171.46303710937494,63.640039062499994],[-171.03486328125,63.58549804687499],[-170.29936523437502,63.68061523437501],[-169.55454101562498,63.373486328124955],[-168.71601562500004,63.310595703125045],[-168.76132812500003,63.21376953125002],[-169.364697265625,63.17114257812506],[-169.67636718750003,62.95610351562502],[-169.81860351562494,63.122363281250045],[-170.84838867187494,63.44438476562502],[-171.63183593749997,63.351220703124966],[-171.74638671874993,63.703076171874955],[-171.46303710937494,63.640039062499994]]],[[[-141.00214843750004,68.77416992187506],[-141.00214843750004,67.89755859374998],[-141.00214843750004,66.43652343750006],[-141.00214843750004,65.55991210937498],[-141.00214843750004,64.09887695312506],[-141.00214843750004,63.22226562499998],[-141.00214843750004,61.761279296875045],[-141.00214843750004,60.884667968749994],[-141.00214843750004,60.30024414062504],[-140.76274414062505,60.259130859375006],[-140.525439453125,60.218359375000034],[-140.45283203125004,60.29970703125002],[-139.97329101562497,60.183154296875074],[-139.67631835937505,60.32832031249998],[-139.23476562499997,60.339746093749994],[-139.07924804687497,60.34370117187501],[-139.07924804687497,60.279443359374966],[-139.136962890625,60.17270507812498],[-139.18515624999998,60.083593750000034],[-138.86875,59.94575195312501],[-138.317626953125,59.611132812500074],[-137.59331054687493,59.22626953124998],[-137.52089843750002,58.91538085937498],[-137.43857421875003,58.903125],[-137.2775390625,58.988183593749994],[-137.126220703125,59.04096679687498],[-136.81328125000002,59.150048828124994],[-136.57875976562502,59.15224609375002],[-136.46635742187493,59.459082031250006],[-136.27797851562502,59.48032226562506],[-136.321826171875,59.604833984375034],[-135.70258789062504,59.72875976562506],[-135.36787109374998,59.743310546874994],[-135.051025390625,59.57866210937502],[-134.94375,59.28828125000001],[-134.67724609374997,59.19926757812499],[-134.39306640625,59.009179687499994],[-134.32963867187505,58.93969726562506],[-134.21850585937503,58.849902343750045],[-133.54638671874997,58.50346679687499],[-133.27529296875,58.22285156250004],[-133.00141601562495,57.948974609375],[-132.55048828125,57.499902343749994],[-132.44248046874998,57.40673828125003],[-132.30166015624997,57.27631835937501],[-132.232177734375,57.19853515624999],[-132.27939453124998,57.14536132812498],[-132.33798828124998,57.07944335937506],[-132.15703125,57.048193359375006],[-132.03154296875,57.02656250000004],[-132.062890625,56.95336914062503],[-132.104296875,56.856787109375006],[-131.86616210937495,56.792822265625006],[-131.82426757812496,56.589990234374994],[-131.471875,56.55673828125006],[-130.649072265625,56.26367187500003],[-130.47709960937496,56.230566406250034],[-130.413134765625,56.12250976562498],[-130.09785156249995,56.10927734375002],[-130.01406249999997,55.950537109375006],[-130.2140625,55.02587890625003],[-130.57534179687497,54.769677734374966],[-130.849609375,54.80761718750006],[-131.04785156249997,55.157666015624955],[-130.74819335937502,55.31801757812502],[-131.127685546875,55.96015625000001],[-131.032763671875,56.08808593749998],[-131.78417968749997,55.876562500000034],[-131.98339843749994,55.535009765625006],[-132.15541992187502,55.59956054687501],[-132.20751953124997,55.75341796875],[-131.84384765625003,56.16010742187498],[-131.55136718749998,56.206787109375],[-131.88789062500004,56.24165039062498],[-132.18203125000002,56.42065429687506],[-132.82460937500002,57.05581054687505],[-133.465869140625,57.17216796875002],[-133.64873046874993,57.64228515624998],[-133.11704101562498,57.56621093750002],[-133.535205078125,57.83295898437501],[-133.1943359375,57.87768554687506],[-133.559375,57.924462890624994],[-133.72231445312502,57.84423828125],[-134.03110351562498,58.072167968749966],[-133.87675781249996,58.51816406249998],[-134.20883789062503,58.232958984375045],[-134.77612304687506,58.45385742187503],[-135.36367187500002,59.41943359375],[-135.50234375000002,59.202294921874994],[-135.090234375,58.245849609375],[-135.57177734374994,58.41206054687504],[-135.89755859374998,58.40019531250002],[-136.04311523437497,58.82163085937498],[-135.82636718750004,58.89794921874997],[-136.0166015625,58.87397460937498],[-136.150048828125,59.04809570312503],[-136.22583007812497,58.765478515625006],[-136.98901367187503,59.03447265624999],[-137.05903320312498,58.87373046875001],[-136.613916015625,58.809277343749955],[-136.48374023437503,58.61767578125],[-136.224609375,58.602246093749955],[-136.06147460937495,58.45273437500006],[-136.607421875,58.24399414062498],[-137.54399414062502,58.58120117187502],[-138.51489257812503,59.16591796875005],[-139.77329101562498,59.52729492187504],[-139.51303710937498,59.698095703125006],[-139.5123046875,59.95356445312501],[-139.28671874999998,59.610937500000034],[-139.22080078125003,59.819873046875045],[-138.9880859375,59.83500976562502],[-139.43144531249996,60.012255859375074],[-140.41982421874997,59.71074218750002],[-141.40830078125,59.90278320312498],[-141.408740234375,60.11767578125006],[-141.67016601562497,59.969873046874966],[-142.94565429687503,60.09697265625002],[-144.14721679687494,60.01640625000002],[-144.185498046875,60.150732421875034],[-144.901318359375,60.335156249999955],[-144.69111328125,60.66909179687502],[-145.248291015625,60.38012695312506],[-145.898876953125,60.47817382812505],[-145.67490234374998,60.65112304687503],[-146.57045898437497,60.72915039062502],[-146.39199218749997,60.810839843750045],[-146.63842773437497,60.89731445312498],[-146.59912109374994,61.05351562500002],[-146.284912109375,61.11264648437498],[-147.89111328125,60.889892578125],[-148.00512695312494,60.96855468750002],[-147.75185546874997,61.218945312499955],[-148.34189453125,61.060400390625006],[-148.34443359374998,60.853564453125045],[-148.55615234374994,60.82700195312506],[-148.25673828124997,60.67529296874997],[-148.64013671875,60.48945312500004],[-148.11918945312502,60.57514648437498],[-147.96411132812494,60.48486328124997],[-148.430712890625,59.98911132812498],[-149.2666015625,59.99829101562497],[-149.395263671875,60.10576171875002],[-149.59804687500002,59.77045898437501],[-149.7138671875,59.91958007812502],[-149.80126953124994,59.737939453124966],[-150.00532226562507,59.78442382812503],[-150.19804687499996,59.56655273437505],[-150.60737304687504,59.56337890625002],[-150.934521484375,59.249121093750034],[-151.18276367187502,59.30078124999997],[-151.73818359375002,59.18852539062502],[-151.94951171875,59.26508789062498],[-151.88461914062503,59.386328125],[-151.39960937499995,59.51630859375001],[-151.04648437499998,59.771826171875034],[-151.45009765624997,59.65039062499997],[-151.85322265625,59.78208007812498],[-151.39599609375006,60.27446289062502],[-151.35644531249997,60.72294921874999],[-150.44125976562503,61.02358398437505],[-149.07509765624997,60.87641601562498],[-150.05327148437496,61.17109374999998],[-149.433544921875,61.50078125000002],[-149.97568359374998,61.27934570312502],[-150.61225585937495,61.301123046875006],[-151.59350585937494,60.979638671874966],[-152.54091796874997,60.265429687500045],[-153.025,60.29565429687497],[-152.660107421875,59.99721679687502],[-153.21123046875002,59.84272460937498],[-153.09360351562503,59.70913085937505],[-153.65253906250004,59.64702148437499],[-154.17832031250003,59.155566406250074],[-153.41826171875,58.9599609375],[-153.43759765625003,58.754833984374955],[-154.289013671875,58.30434570312502],[-154.247021484375,58.15942382812497],[-155.006884765625,58.01606445312501],[-155.77797851562497,57.56821289062498],[-156.43588867187498,57.359960937500006],[-156.62900390624998,57.00996093750001],[-158.41440429687498,56.435839843750045],[-158.5521484375,56.31269531249998],[-158.27563476562497,56.19624023437498],[-158.5046875,56.062109375],[-158.59116210937503,56.18452148437498],[-158.78984375000002,55.98691406250006],[-159.52324218749993,55.81000976562498],[-159.65966796875003,55.625927734374955],[-159.77138671874997,55.84111328125002],[-160.49931640625002,55.53730468750004],[-161.38193359374998,55.371289062499955],[-161.44379882812495,55.513281250000034],[-161.202099609375,55.54355468750006],[-161.51694335937503,55.61840820312503],[-162.073974609375,55.13930664062505],[-162.38637695312497,55.05234375],[-162.63037109375003,55.24667968749998],[-162.67436523437505,54.99658203125],[-162.86503906249996,54.954541015624955],[-163.11962890624997,55.06469726562503],[-163.131103515625,54.916552734375045],[-163.33530273437503,54.83916015624999],[-163.27880859374997,55.12182617187503],[-162.906591796875,55.19555664062503],[-161.69731445312502,55.9072265625],[-161.215625,56.02143554687498],[-160.8986328125,55.99365234375],[-161.00537109375,55.88715820312498],[-160.80283203125003,55.754443359375045],[-160.70634765625002,55.870458984375034],[-160.29169921875,55.80507812500005],[-160.53906250000006,56.00629882812501],[-160.30205078125,56.31411132812502],[-158.91801757812502,56.882177734375006],[-158.675146484375,56.79487304687498],[-158.66079101562502,57.03940429687498],[-158.32094726562497,57.29790039062499],[-157.84575195312496,57.52807617187497],[-157.4619140625,57.506201171875034],[-157.697216796875,57.679443359375],[-157.610888671875,58.050830078125074],[-157.19370117187498,58.19418945312506],[-157.48837890624998,58.25371093750002],[-157.52363281249998,58.421337890624955],[-156.97465820312496,58.736328125],[-156.80888671875005,59.13427734375],[-157.14204101562504,58.87763671875001],[-158.19091796875003,58.6142578125],[-158.50317382812494,58.85034179687497],[-158.42563476562498,58.99931640625002],[-158.080517578125,58.97744140625002],[-158.422802734375,59.08984375],[-158.67827148437502,58.92939453124998],[-158.80947265625002,58.973876953125],[-158.78862304687493,58.440966796875045],[-158.95068359375,58.404541015625],[-159.67026367187498,58.9111328125],[-159.92021484375,58.819873046875074],[-160.36313476562498,59.05117187500002],[-161.246826171875,58.799462890624994],[-161.36132812499994,58.66953124999998],[-162.144921875,58.64423828124998],[-161.724365234375,58.794287109375006],[-161.64438476562498,59.109667968750045],[-161.9810546875,59.14614257812502],[-161.82871093749998,59.588623046875],[-162.421337890625,60.28398437500002],[-161.96201171875003,60.695361328125045],[-162.68496093749997,60.268945312499966],[-162.57075195312495,59.98974609375],[-163.68037109374998,59.80151367187503],[-164.14282226562497,59.89677734374999],[-165.02651367187497,60.500634765624994],[-165.35380859375002,60.54121093750001],[-164.80517578125,60.89204101562498],[-164.31850585937497,60.77128906249999],[-164.37236328125002,60.59184570312502],[-163.999560546875,60.76606445312498],[-163.72998046874997,60.589990234374994],[-163.420947265625,60.757421875],[-163.90654296874996,60.85380859375002],[-163.58691406249994,60.902978515624994],[-163.74902343750003,60.9697265625],[-163.99462890624997,60.86469726562501],[-165.11484375,60.93281250000004],[-164.86899414062503,61.11176757812498],[-165.27978515624994,61.169628906249955],[-165.27363281250004,61.27485351562498],[-165.56586914062498,61.10234375000002],[-165.86396484375004,61.33569335937503],[-165.84531249999998,61.536230468750034],[-166.152734375,61.545947265625074],[-166.16811523437502,61.65083007812501],[-165.80893554687503,61.69609375000002],[-166.07880859375,61.803125],[-165.61279296875003,61.86928710937502],[-165.707275390625,62.10043945312506],[-165.19453125,62.47353515625002],[-164.75786132812493,62.496728515624966],[-164.589453125,62.709375],[-164.79267578125,62.623193359374966],[-164.79965820312503,62.918066406250006],[-164.384228515625,63.03046874999998],[-164.40903320312503,63.21503906250001],[-163.94287109375,63.247216796874994],[-163.61630859374998,63.125146484374994],[-163.73784179687496,63.016406250000045],[-163.504345703125,63.105859374999966],[-163.28784179687494,63.046435546875045],[-162.621484375,63.26582031249998],[-162.28281250000003,63.529199218749994],[-161.97397460937498,63.45292968749999],[-161.09970703125003,63.557910156250045],[-160.778564453125,63.818945312500034],[-160.987548828125,64.25126953125002],[-161.49072265625003,64.43378906249998],[-160.93193359374996,64.5791015625],[-160.855908203125,64.755615234375],[-161.13017578125005,64.92543945312505],[-161.759375,64.816259765625],[-162.80703124999997,64.37421875000001],[-163.20390625,64.65200195312502],[-163.14433593750002,64.423828125],[-163.71308593749998,64.588232421875],[-164.978759765625,64.45366210937502],[-166.1427734375,64.58276367187503],[-166.48139648437498,64.72807617187507],[-166.415234375,64.926513671875],[-166.92841796875,65.15708007812498],[-166.15703125,65.28583984375001],[-167.40400390625,65.42211914062497],[-168.08837890624997,65.65776367187502],[-166.39873046875002,66.14443359375005],[-165.62993164062496,66.131201171875],[-165.77617187500002,66.31904296875001],[-164.46049804687502,66.58842773437499],[-163.63823242187502,66.57465820312504],[-163.89394531249997,66.57587890625001],[-164.03374023437493,66.21552734374995],[-163.69536132812502,66.08383789062503],[-161.93369140625003,66.04287109374997],[-161.45541992187503,66.28139648437497],[-161.03427734375003,66.18881835937503],[-161.12031249999995,66.334326171875],[-161.91689453124997,66.41181640624998],[-162.54365234375004,66.80512695312501],[-162.36162109375,66.94731445312502],[-161.591015625,66.45952148437502],[-160.23168945312503,66.420263671875],[-160.360888671875,66.6125],[-160.864013671875,66.67084960937501],[-161.39804687499998,66.55185546875],[-161.85668945312497,66.70034179687497],[-161.719921875,67.02055664062502],[-163.5318359375,67.10258789062502],[-164.1251953125,67.60673828125007],[-166.786279296875,68.35961914062497],[-166.38051757812502,68.425146484375],[-166.20908203125,68.88535156250003],[-165.04394531249994,68.882470703125],[-163.867919921875,69.03666992187505],[-161.88095703125003,70.33173828125001],[-162.073876953125,70.16196289062498],[-160.9962890625,70.30458984375],[-160.11713867187495,70.59121093750002],[-159.86567382812498,70.27885742187499],[-159.81499023437496,70.49707031250003],[-159.38676757812493,70.52451171875003],[-160.081591796875,70.63486328125003],[-159.680908203125,70.786767578125],[-159.31450195312496,70.87851562500003],[-159.251171875,70.7484375],[-157.909375,70.860107421875],[-156.47021484374994,71.40766601562501],[-156.469970703125,71.29155273437507],[-155.57944335937503,71.12109374999997],[-156.14658203125,70.92783203125003],[-155.97353515625002,70.84199218749995],[-155.16684570312498,71.09921875000006],[-154.19521484375002,70.80112304687498],[-153.23291015625,70.93256835937504],[-152.49121093749994,70.88095703125],[-152.23291015625,70.81035156249999],[-152.39921875,70.62045898437503],[-151.76904296875,70.56015625],[-151.94467773437498,70.45209960937501],[-149.26943359374997,70.50078124999999],[-147.70537109375,70.21723632812495],[-145.82314453124997,70.16005859375002],[-145.19736328125003,70.00869140625002],[-143.218310546875,70.11625976562499],[-142.70786132812498,70.03378906249998],[-141.40791015625,69.65336914062502],[-141.00214843750004,69.65078125000002],[-141.00214843750004,68.77416992187506]]]]},"properties":{"name":"United States","childNum":76}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[71.20615234375006,39.892578125],[71.15625,39.88344726562502],[71.06425781250002,39.88491210937505],[71.01171874999997,39.895117187500006],[71.04365234375004,39.97631835937503],[71.04482421875005,39.992529296875034],[70.96064453125004,40.087988281250034],[71.00546875,40.15229492187498],[71.0241210937501,40.14916992187497],[71.08037109375007,40.07988281249999],[71.2287109375001,40.04814453124999],[71.20615234375006,39.892578125]]],[[[70.94677734374997,42.24868164062505],[70.97900390625003,42.26655273437504],[71.03603515625,42.28466796875],[71.12998046875006,42.25],[71.21269531250002,42.20644531250005],[71.23232421875005,42.18627929687503],[71.22851562499997,42.16289062499996],[70.18095703125007,41.571435546874994],[70.734375,41.400537109374994],[70.86044921875006,41.22490234375002],[71.11074218750005,41.152636718750045],[71.29882812500003,41.152490234374994],[71.39306640625003,41.123388671875034],[71.40839843750004,41.13603515625002],[71.42089843750003,41.341894531250034],[71.60625,41.367431640625],[71.66494140625,41.54121093749998],[71.70068359374997,41.454003906249966],[71.75771484375005,41.42802734375002],[71.79248046875003,41.41313476562499],[71.85800781250006,41.311376953125034],[71.8786132812501,41.195019531249955],[71.95849609375003,41.18706054687502],[72.05244140625004,41.16474609375001],[72.1154296875001,41.18657226562502],[72.1642578125001,41.173730468749966],[72.18095703125002,41.11845703124999],[72.18730468750002,41.02592773437499],[72.2130859375001,41.014257812500006],[72.36406250000002,41.04345703125],[72.65830078125,40.86992187499999],[73.13212890625002,40.82851562499999],[72.6041015625,40.52543945312499],[72.40205078125004,40.578076171874955],[72.3892578125,40.427392578124994],[72.13125,40.438623046874966],[71.69248046875,40.15234375],[71.30468749999997,40.28691406249996],[70.990625,40.2548828125],[70.95800781250003,40.238867187500034],[70.653125,40.201171875],[70.37158203125003,40.38413085937506],[70.75107421875006,40.721777343750006],[70.40195312500006,41.03510742187498],[69.71289062500003,40.65698242187503],[69.35722656250002,40.76738281249996],[69.20625,40.566552734374994],[69.27490234374997,40.19809570312498],[68.63066406250007,40.16708984374998],[68.9720703125,40.08994140624998],[68.80468750000003,40.05034179687499],[68.86875,39.90747070312503],[68.63896484375007,39.8388671875],[68.46328125,39.53671874999998],[67.71904296875007,39.62138671875002],[67.426171875,39.46557617187497],[67.3576171875001,39.216699218749994],[67.64833984375005,39.13105468750004],[67.69443359375006,38.99462890625003],[68.13251953125004,38.927636718749966],[68.08720703125002,38.47353515625002],[68.3502929687501,38.211035156250006],[67.81435546875005,37.48701171875004],[67.7980468750001,37.244970703125006],[67.75898437500004,37.172216796875034],[67.75292968749997,37.199804687500034],[67.7,37.227246093749955],[67.60742187499997,37.22250976562506],[67.5172851562501,37.26665039062499],[67.44169921875007,37.25800781250001],[67.3197265625,37.209570312500006],[67.1955078125001,37.23520507812498],[67.06884765624997,37.334814453125006],[66.82773437500006,37.37128906249998],[66.52226562500007,37.34848632812506],[66.51064453125,37.45869140625004],[66.51132812500006,37.59916992187496],[66.52558593750004,37.785742187500034],[66.60625,37.98671875000005],[65.97119140624997,38.244238281250006],[65.612890625,38.23857421875002],[64.3099609375,38.97729492187497],[63.76367187500003,39.16054687499999],[62.48320312500002,39.97563476562496],[61.90283203124997,41.09370117187501],[61.496972656249994,41.276074218749955],[61.2423828125001,41.18920898437503],[60.454980468749994,41.221630859374955],[60.089648437500074,41.39941406250003],[60.07558593750005,41.759667968749966],[60.20078125000006,41.803125],[59.94179687499999,41.97353515625002],[59.98515625000002,42.21171875],[59.35429687500002,42.32329101562496],[58.5890625000001,42.778466796874966],[58.477148437500006,42.66284179687503],[58.15156250000004,42.628076171874966],[58.474414062500074,42.29936523437496],[58.02890625,42.48764648437506],[57.814257812500074,42.18984375000005],[57.290625,42.123779296875],[56.96406250000004,41.856542968750006],[57.11884765625004,41.35029296874998],[57.01796875,41.26347656249996],[55.97744140625005,41.32221679687504],[55.97568359375006,44.99492187499996],[58.555273437500006,45.55537109375001],[61.007910156250006,44.39379882812497],[61.99023437500003,43.492138671874955],[63.20703125000003,43.62797851562502],[64.44316406250007,43.55117187499999],[64.9054687500001,43.714697265625006],[65.49619140625,43.310546875],[65.80302734375002,42.87695312500006],[66.1002929687501,42.99082031249998],[66.00957031250007,42.00488281250003],[66.49863281250006,41.99487304687503],[66.70966796875004,41.17915039062501],[67.9357421875001,41.19658203125002],[68.11308593750007,41.02861328124999],[68.04765625000007,40.80927734374998],[68.29189453125,40.656103515625034],[68.57265625,40.62265624999998],[68.58408203125,40.876269531250045],[69.15361328125002,41.42524414062498],[70.94677734374997,42.24868164062505]]]]},"properties":{"name":"Uzbekistan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-61.17451171875001,13.158105468749966],[-61.268457031249966,13.287695312499991],[-61.13896484374996,13.358740234374991],[-61.17451171875001,13.158105468749966]]]},"properties":{"name":"St. Vin. and Gren.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-60.99790039062498,8.867333984374966],[-61.069189453125034,8.947314453125003],[-60.91582031249996,9.070312500000014],[-60.86142578124998,8.949609375000037],[-60.99790039062498,8.867333984374966]]],[[[-60.821191406249966,9.138378906250026],[-60.94140625000003,9.105566406250006],[-60.73583984374997,9.203320312500026],[-60.821191406249966,9.138378906250026]]],[[[-63.84936523437494,11.131005859374994],[-63.917626953124994,10.887548828125048],[-64.40234375,10.981591796875023],[-64.21367187500002,11.086132812499997],[-64.0283203125,11.00185546874998],[-63.84936523437494,11.131005859374994]]],[[[-60.742138671874926,5.202050781250037],[-60.71196289062499,5.191552734375023],[-60.671972656250034,5.164355468749989],[-60.603857421875006,4.94936523437498],[-61.00283203125002,4.535253906249991],[-61.28007812500002,4.516894531249974],[-61.82084960937496,4.197021484375],[-62.153125,4.098388671874986],[-62.41064453124994,4.156738281249972],[-62.71210937499998,4.01791992187502],[-62.85698242187502,3.593457031249969],[-63.33867187500002,3.943896484375045],[-64.02148437500003,3.929101562500051],[-64.19248046874995,4.126855468750009],[-64.57636718750001,4.139892578125],[-64.788671875,4.276025390625023],[-64.66899414062496,4.01181640625002],[-64.22109375000002,3.587402343749972],[-64.04658203124998,2.502392578124997],[-63.389257812500006,2.411914062500045],[-63.43251953124994,2.155566406250045],[-64.00849609374995,1.931591796874969],[-64.20502929687493,1.52949218750004],[-65.10375976562497,1.108105468749983],[-65.47338867187497,0.691259765624977],[-65.55605468750002,0.687988281250014],[-65.52299804687493,0.843408203124966],[-65.68144531249999,0.983447265624989],[-66.06005859375003,0.78535156250004],[-66.34711914062498,0.7671875],[-66.87602539062499,1.223046875000037],[-67.21083984375,2.390136718750043],[-67.61870117187496,2.793603515624994],[-67.85908203124998,2.793603515624994],[-67.3111328125,3.41586914062502],[-67.66162109375,3.864257812499986],[-67.85527343750002,4.506884765624989],[-67.82490234374995,5.270458984375026],[-67.47387695312503,5.929980468750003],[-67.48198242187499,6.18027343750002],[-67.85917968749999,6.289892578124963],[-68.47177734375,6.156542968749974],[-69.42714843749997,6.123974609374997],[-70.12919921874999,6.95361328125],[-70.73715820312503,7.090039062499997],[-71.12861328124993,6.98671875],[-72.00664062499993,7.032617187500023],[-72.20771484374995,7.37026367187498],[-72.47197265624996,7.524267578124991],[-72.39033203124995,8.287060546874969],[-72.66542968749994,8.62758789062498],[-72.79638671874997,9.10898437499999],[-73.05839843749999,9.259570312500031],[-73.36621093749997,9.194140625000017],[-73.00654296874998,9.789160156250006],[-72.86933593750001,10.49125976562496],[-72.690087890625,10.835839843749994],[-72.24848632812501,11.196435546875009],[-71.95810546875,11.66640625],[-71.31972656249997,11.861914062500048],[-71.95693359375002,11.569921874999977],[-71.835107421875,11.190332031250009],[-71.6416015625,11.013525390625048],[-71.73090820312498,10.994677734375017],[-71.59433593749995,10.657373046875051],[-72.11284179687499,9.815576171874966],[-71.61953124999994,9.047949218749991],[-71.24140625000001,9.160449218750003],[-71.08583984375002,9.348242187499977],[-71.05268554687501,9.705810546874986],[-71.49423828125,10.533203124999972],[-71.46953124999993,10.964160156250017],[-70.23251953124998,11.372998046874997],[-70.09711914062493,11.519775390624972],[-69.80478515624998,11.47421875000002],[-69.81733398437495,11.672070312499997],[-70.19257812499993,11.62460937500002],[-70.28652343749997,11.886035156249989],[-70.20278320312497,12.098388671874986],[-70.00395507812496,12.177880859375023],[-69.63159179687494,11.479931640625026],[-68.827978515625,11.431738281249977],[-68.39863281249995,11.160986328124977],[-68.29628906249997,10.689355468749994],[-68.13994140624999,10.492724609374989],[-66.24721679687497,10.632226562499994],[-65.85175781249995,10.257763671874997],[-65.12910156249998,10.070068359375043],[-64.85048828125,10.098095703124969],[-64.188330078125,10.457812499999989],[-63.73188476562501,10.503417968750043],[-64.24750976562498,10.54257812500002],[-64.298193359375,10.635156249999966],[-61.879492187500006,10.741015625000031],[-62.379980468750006,10.546875],[-62.91357421875,10.531494140624986],[-62.68583984374996,10.289794921875043],[-62.740576171875006,10.056152343750043],[-62.55034179687499,10.200439453125043],[-62.320410156250034,9.783056640625006],[-62.22114257812498,9.882568359375028],[-62.15336914062493,9.821777343749986],[-62.15532226562499,9.979248046875014],[-62.077099609374926,9.97504882812504],[-61.73593749999998,9.631201171874977],[-61.76591796874996,9.813818359374963],[-61.58886718749994,9.894531249999986],[-60.79248046874997,9.360742187500037],[-61.02314453124998,9.15458984374996],[-61.24726562499998,8.600341796875014],[-61.61870117187499,8.59746093749996],[-61.30400390624999,8.410400390625043],[-60.800976562499926,8.592138671875034],[-60.16748046875,8.616992187500031],[-60.01752929687501,8.549316406250014],[-59.83164062499998,8.305957031250003],[-59.84907226562498,8.248681640624966],[-59.96484375000003,8.191601562499969],[-59.99072265624997,8.16201171874998],[-60.032421874999926,8.053564453125006],[-60.51362304687501,7.813183593749969],[-60.71865234374994,7.535937499999974],[-60.606542968750006,7.320849609375031],[-60.63330078124997,7.211083984374966],[-60.58320312499998,7.156201171874969],[-60.523193359375,7.143701171875009],[-60.464941406250034,7.166552734375045],[-60.39238281249999,7.164550781249986],[-60.34506835937495,7.15],[-60.32548828124996,7.133984374999983],[-60.32207031249996,7.092041015625043],[-60.35209960937496,7.002880859374997],[-60.39501953125,6.945361328125003],[-60.717919921874966,6.768310546875],[-61.14560546874998,6.694531249999983],[-61.20361328124997,6.588378906250028],[-61.181591796874926,6.513378906250026],[-61.15102539062502,6.446533203124986],[-61.15229492187501,6.385107421875006],[-61.12871093749999,6.214306640625026],[-61.15947265624996,6.174414062499977],[-61.22495117187498,6.129199218750003],[-61.303125,6.049511718750026],[-61.39082031250001,5.938769531250017],[-61.376806640625006,5.906982421875028],[-61.167187499999926,5.674218750000037],[-60.95400390625002,5.437402343750023],[-60.742138671874926,5.202050781250037]]]]},"properties":{"name":"Venezuela","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[-64.765625,17.794335937499994],[-64.58046874999994,17.750195312499983],[-64.88911132812495,17.701708984375045],[-64.765625,17.794335937499994]]]},"properties":{"name":"U.S. Virgin Is.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[104.06396484375003,10.390820312500011],[104.01845703125,10.029199218749966],[103.84951171875005,10.371093749999986],[104.06396484375003,10.390820312500011]]],[[[107.52128906250007,20.926611328124977],[107.39921875000007,20.903466796874966],[107.55126953125003,21.034033203125006],[107.52128906250007,20.926611328124977]]],[[[107.60273437500004,21.21679687500003],[107.40351562500004,21.093652343749994],[107.47626953125004,21.268945312499994],[107.60273437500004,21.21679687500003]]],[[[107.97265624999997,21.507958984375023],[107.40996093750002,21.284814453125023],[107.35429687500007,21.055175781250057],[107.1647460937501,20.94873046875003],[106.68339843750007,21.000292968750074],[106.75341796875003,20.73505859375004],[106.55078124999997,20.52656250000001],[106.57285156250012,20.392187499999977],[105.98408203125004,19.939062500000034],[105.62177734375004,18.96630859375003],[105.88828125000006,18.502490234375045],[106.49902343749997,17.946435546874994],[106.47890625000005,17.719580078125063],[106.3705078125,17.746875],[107.83378906250002,16.322460937499983],[108.02939453125012,16.331103515625074],[108.82128906249997,15.377929687500028],[109.30332031250012,13.856445312500043],[109.271875,13.279345703124974],[109.42392578125006,12.955957031249994],[109.44492187500006,12.599609375000057],[109.33554687500012,12.751904296874997],[109.21894531250004,12.64580078124996],[109.30468750000003,12.391162109375045],[109.20683593750007,12.415380859375006],[109.1986328125,11.724853515625014],[109.03964843750012,11.592675781249994],[108.98671875,11.336376953124997],[108.09492187500004,10.897265624999989],[108.0013671875,10.720361328125009],[107.26152343750007,10.39838867187504],[107.00664062500002,10.66054687499998],[106.94746093750004,10.400341796874997],[106.72734375000007,10.535644531250028],[106.605859375,10.46494140625002],[106.74121093750003,10.444384765625003],[106.75742187500006,10.295800781250023],[106.46406250000004,10.298291015624997],[106.78525390625012,10.116455078124986],[106.59560546875005,9.859863281250028],[106.1364257812501,10.221679687500014],[106.56435546875005,9.715625],[106.48408203125004,9.559423828125006],[105.83095703125005,10.000732421875028],[106.15859375,9.59414062499998],[106.16835937500005,9.396728515625],[105.50097656249997,9.093212890624983],[105.11435546875006,8.629199218750031],[104.77041015625,8.59765625],[104.89628906250007,8.746630859374974],[104.81855468750004,8.801855468750034],[104.84521484375003,9.606152343750026],[105.08447265625003,9.99570312499999],[104.8019531250001,10.202734374999977],[104.66347656250005,10.169921875000043],[104.42636718750006,10.411230468749991],[104.85058593749997,10.534472656249974],[105.04638671874997,10.701660156250014],[105.04570312500002,10.911376953125014],[105.3146484375001,10.845166015625026],[105.40576171875003,10.95161132812504],[105.75507812500004,10.989990234375043],[105.85332031250007,10.86357421874996],[106.16396484375005,10.794921875],[106.16093750000002,11.037109375000057],[105.85605468750006,11.294287109375048],[105.85146484375005,11.635009765625],[106.0060546875001,11.758007812500011],[106.39921875000007,11.687011718750028],[106.41386718750002,11.9484375],[106.70009765625,11.979296874999974],[107.21210937500004,12.30400390624996],[107.39335937500002,12.260498046874972],[107.50644531250006,12.364550781250031],[107.47539062500002,13.030371093749963],[107.60546874999997,13.437792968750017],[107.3314453125,14.126611328125009],[107.51943359375005,14.705078125],[107.51376953125012,14.817382812500057],[107.52451171875012,14.871826171875043],[107.50468750000007,14.915917968749966],[107.48037109375,14.979882812500037],[107.55527343750006,15.057031250000023],[107.58964843750002,15.118457031250017],[107.63369140625005,15.18984375],[107.653125,15.255224609374991],[107.62167968750006,15.309863281250017],[107.56425781250002,15.391601562499972],[107.45957031250012,15.4658203125],[107.33876953125,15.560498046875011],[107.27939453125006,15.618701171875045],[107.16591796875005,15.802490234375028],[107.1888671875,15.838623046875],[107.36064453125002,15.921728515624977],[107.3919921875,15.951660156250028],[107.39638671875,16.04301757812499],[106.93066406249997,16.353125],[106.8927734375001,16.396533203125074],[106.85107421875003,16.515625],[106.83242187500005,16.526269531250023],[106.79160156250006,16.490332031250006],[106.73955078125007,16.452539062500023],[106.6564453125001,16.49262695312501],[106.54619140625002,16.650732421874977],[106.53369140625003,16.821044921875057],[106.52597656250006,16.876611328124994],[106.50224609375002,16.95410156249997],[106.26953125000003,17.21679687500003],[106.00625,17.415283203125057],[105.69140625000003,17.737841796875045],[105.58847656250012,17.983691406250045],[105.51855468749997,18.077441406250045],[105.45820312500004,18.15429687499997],[105.11455078125002,18.40527343750003],[105.08701171875006,18.496240234374994],[105.14541015625,18.616796875000063],[105.14648437500003,18.650976562500006],[103.89160156250003,19.304980468750017],[103.89638671875,19.339990234375023],[103.93203125,19.366064453125006],[104.0275390625001,19.42045898437499],[104.062890625,19.48256835937505],[104.05156250000007,19.564160156249955],[104.01347656250007,19.64648437500003],[104.03203125000002,19.675146484375006],[104.06279296875007,19.678417968749983],[104.25986328125006,19.685498046874983],[104.5462890625,19.61054687500001],[104.58789062500003,19.61875],[104.74316406250003,19.754736328124977],[104.80175781249997,19.83613281250004],[104.81513671875004,19.90400390625001],[104.9279296875001,20.01811523437499],[104.92919921875003,20.082812500000017],[104.88867187500003,20.169091796875023],[104.84785156250004,20.202441406250045],[104.69873046875003,20.20532226562503],[104.67695312500004,20.224707031249977],[104.66191406250007,20.28901367187501],[104.65644531250004,20.32851562499999],[104.6188476562501,20.37451171875003],[104.49619140625006,20.413671875],[104.39218750000012,20.424755859374955],[104.36777343750012,20.44140624999997],[104.40781250000012,20.48574218750005],[104.47861328125006,20.529589843750017],[104.53271484374997,20.55488281250001],[104.58320312500004,20.646679687499955],[104.34960937499997,20.821093750000074],[104.19531249999997,20.913964843749966],[104.10136718750002,20.94550781250001],[103.63505859375007,20.697070312500017],[103.46357421875004,20.779833984375017],[103.21074218750002,20.840625],[103.10449218749997,20.891650390625045],[102.88378906250003,21.202587890624983],[102.85117187500006,21.26591796874999],[102.94960937500005,21.681347656249983],[102.84521484374997,21.73476562500005],[102.81591796874997,21.807373046875],[102.7982421875,21.797949218750034],[102.77109375000006,21.709667968749983],[102.73857421875002,21.67792968750001],[102.66201171875005,21.67602539062497],[102.58251953125003,21.90429687500003],[102.12744140624997,22.379199218750045],[102.1759765625001,22.414648437500006],[102.2370117187501,22.466015624999983],[102.40644531250004,22.70800781249997],[102.47089843750004,22.75092773437501],[102.98193359374997,22.4482421875],[103.32666015625003,22.769775390625057],[103.49296875000007,22.587988281250034],[103.62021484375006,22.782031250000045],[103.94150390625006,22.540087890625045],[104.14306640624997,22.800146484375006],[104.37177734375004,22.704052734374983],[104.68730468750002,22.822216796874983],[104.86474609375003,23.136376953125023],[105.27539062500003,23.34521484375003],[105.8429687500001,22.922802734374955],[106.14843749999997,22.970068359375006],[106.2790039062501,22.857470703125045],[106.54179687500007,22.908349609375023],[106.78027343749997,22.778906250000034],[106.55039062500006,22.501367187499994],[106.66357421875003,21.97890625000005],[106.97099609375002,21.923925781250034],[107.35117187500012,21.60888671874997],[107.75927734374997,21.655029296875057],[107.97265624999997,21.507958984375023]]]]},"properties":{"name":"Vietnam","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[169.49130859375006,-19.54013671875002],[169.34726562500006,-19.623535156249957],[169.2174804687501,-19.476367187500003],[169.24746093750005,-19.3447265625],[169.49130859375006,-19.54013671875002]]],[[[169.334375,-18.940234375000017],[168.98691406250006,-18.87128906250001],[169.01582031250004,-18.64375],[169.14384765625002,-18.63105468750001],[169.334375,-18.940234375000017]]],[[[168.44580078124997,-17.54218750000004],[168.58496093750003,-17.695898437500006],[168.52460937500004,-17.798046875000026],[168.15820312500003,-17.710546874999963],[168.2731445312501,-17.552246093749957],[168.44580078124997,-17.54218750000004]]],[[[168.44677734375003,-16.778808593749957],[168.18144531250002,-16.804003906250017],[168.13535156250006,-16.636914062499997],[168.44677734375003,-16.778808593749957]]],[[[168.29667968750007,-16.33652343749999],[167.92900390625002,-16.22871093749997],[168.16386718750002,-16.081640625000034],[168.29667968750007,-16.33652343749999]]],[[[167.4125,-16.095898437499997],[167.83662109375004,-16.449707031249957],[167.44931640625012,-16.554980468750003],[167.34921875000006,-16.15449218750004],[167.15146484375006,-16.080468749999966],[167.19951171875002,-15.885058593750031],[167.33574218750007,-15.916699218749997],[167.4125,-16.095898437499997]]],[[[167.9113281250001,-15.435937500000023],[167.67421875,-15.4515625],[168.00253906250012,-15.283203124999986],[167.9113281250001,-15.435937500000023]]],[[[166.74580078125004,-14.826855468750011],[166.81015625000012,-15.15742187500004],[167.0755859375,-14.935644531249977],[167.20078125000012,-15.443066406249969],[167.0939453125001,-15.580859374999974],[166.75830078125003,-15.631152343750003],[166.63105468750004,-15.406054687499974],[166.56738281250003,-14.641796874999969],[166.74580078125004,-14.826855468750011]]],[[[167.58486328125,-14.260937500000011],[167.43027343750012,-14.294921875],[167.41074218750006,-14.19746093750004],[167.50644531250012,-14.142187499999977],[167.58486328125,-14.260937500000011]]],[[[167.48886718750006,-13.907226562499972],[167.3917968750001,-13.788378906250017],[167.48105468750006,-13.709472656250014],[167.48886718750006,-13.907226562499972]]]]},"properties":{"name":"Vanuatu","childNum":10}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-171.4541015625,-14.04648437500002],[-171.9119140625,-14.001660156250026],[-172.04589843750003,-13.857128906249983],[-171.60390624999997,-13.879199218750045],[-171.4541015625,-14.04648437500002]]],[[[-172.33349609375,-13.46523437499999],[-172.17685546874998,-13.68466796875002],[-172.224951171875,-13.804296874999963],[-172.535693359375,-13.791699218749983],[-172.77851562499998,-13.516796875000011],[-172.33349609375,-13.46523437499999]]]]},"properties":{"name":"Samoa","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[53.76318359374997,12.636816406249991],[54.18740234375005,12.664013671875026],[54.511132812499994,12.552783203125017],[54.12949218750006,12.360644531250045],[53.71884765625006,12.318994140624994],[53.31582031250005,12.533154296875011],[53.53496093750002,12.715771484374997],[53.76318359374997,12.636816406249991]]],[[[42.75585937500003,13.70429687500004],[42.689746093750074,13.673632812500017],[42.7941406250001,13.766113281250028],[42.75585937500003,13.70429687500004]]],[[[42.787402343750074,13.971484375000031],[42.69404296875004,14.007910156249991],[42.76210937500005,14.067480468750048],[42.787402343750074,13.971484375000031]]],[[[53.08564453125004,16.648388671874955],[52.327734375,16.293554687500063],[52.17402343750004,15.956835937500017],[52.2174804687501,15.655517578125],[51.3224609375001,15.22626953125004],[49.34990234375002,14.637792968749977],[48.66835937499999,14.050146484374977],[47.9899414062501,14.048095703125],[47.40771484374997,13.661621093750057],[46.78886718750002,13.465576171874986],[45.65732421875006,13.338720703124991],[45.03867187500006,12.815869140624969],[44.617773437500006,12.817236328124977],[44.00585937499997,12.607666015625],[43.634375,12.744482421874991],[43.487597656250074,12.69882812500002],[43.23193359375003,13.267089843750057],[43.2824218750001,13.692529296875037],[43.08906250000004,14.010986328125],[42.93642578125005,14.938574218749963],[42.85566406250004,15.132958984375037],[42.65781250000006,15.232812500000051],[42.79902343750004,15.326269531249991],[42.71718750000005,15.654638671875006],[42.83964843750002,16.032031250000074],[42.79931640624997,16.37177734375001],[43.16503906249997,16.689404296874955],[43.19091796875003,17.359375],[43.41796875000003,17.516259765625023],[43.91699218749997,17.32470703124997],[45.14804687500006,17.427441406249955],[45.5353515625001,17.30205078124999],[46.72763671875006,17.26557617187501],[46.97568359375006,16.953466796875034],[47.14355468749997,16.946679687499966],[47.44179687499999,17.111865234375045],[47.57958984374997,17.448339843750034],[48.17216796875002,18.156933593749983],[49.04199218750003,18.58178710937503],[51.977636718750006,18.996142578125074],[53.08564453125004,16.648388671874955]]]]},"properties":{"name":"Yemen","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[37.85693359375003,-46.94423828124998],[37.5900390625001,-46.90800781250006],[37.78955078124997,-46.8375],[37.85693359375003,-46.94423828124998]]],[[[31.799609375000017,-23.8921875],[31.98583984374997,-24.460644531249983],[31.921679687500017,-25.96875],[31.335156250000097,-25.755566406249997],[31.207324218750074,-25.843359375000034],[31.08808593750004,-25.980664062500026],[30.803320312500006,-26.41347656250001],[30.806738281250006,-26.78525390624999],[30.88330078124997,-26.792382812500023],[30.938085937500006,-26.91582031250003],[31.06337890625005,-27.1123046875],[31.274023437500063,-27.23837890625002],[31.469531250000017,-27.29550781250002],[31.74257812500005,-27.309960937500037],[31.95839843750005,-27.305859375],[31.946093750000017,-27.173632812499974],[31.96718750000005,-26.96064453125001],[31.994726562500006,-26.817480468749977],[32.024804687499994,-26.81113281250002],[32.112890625,-26.83945312500002],[32.19960937499999,-26.833496093749957],[32.35351562499997,-26.861621093750003],[32.7765625000001,-26.850976562499966],[32.88613281250005,-26.849316406249983],[32.53476562500006,-28.19970703125003],[32.285742187500006,-28.62148437499998],[31.335156250000097,-29.378125],[29.97119140625003,-31.322070312500017],[28.449414062500068,-32.62460937499999],[27.077441406250074,-33.52119140625004],[26.429492187500045,-33.75957031250002],[25.80585937500001,-33.737109374999974],[25.574218750000057,-34.03535156249998],[25.00292968750003,-33.97363281250003],[24.8271484375,-34.16894531250003],[24.595507812500074,-34.17451171875],[23.697851562500063,-33.99277343750002],[23.268164062500006,-34.08115234374999],[22.553808593750063,-34.01005859374999],[22.24550781250005,-34.06914062500003],[21.788964843750023,-34.37265624999996],[20.529882812500034,-34.4630859375],[20.020605468750006,-34.785742187500006],[19.298242187500023,-34.61503906249996],[19.330761718750068,-34.49238281250001],[19.098339843750068,-34.350097656249986],[18.831347656250017,-34.36406249999999],[18.75214843750004,-34.08261718750002],[18.50039062499999,-34.10927734375004],[18.46162109375001,-34.346875],[18.35205078124997,-34.1884765625],[18.43300781250005,-33.71728515625003],[17.851074218750057,-32.82744140625002],[17.96523437500005,-32.70859374999996],[18.125,-32.74912109374996],[18.325292968750034,-32.50498046874996],[18.21083984375008,-31.74248046874996],[17.34707031250005,-30.44482421875],[16.95,-29.40341796875002],[16.739453124999983,-29.009375],[16.447558593750045,-28.61757812499998],[16.755761718750023,-28.45214843750003],[16.7875,-28.39472656249997],[16.81015625,-28.264550781249994],[16.841210937500023,-28.21894531250004],[16.875292968750045,-28.12792968749997],[16.93330078125004,-28.06962890624999],[17.05625,-28.03105468750003],[17.1884765625,-28.13251953125001],[17.358691406250017,-28.269433593750023],[17.44794921875001,-28.698144531249966],[18.310839843750017,-28.88623046875],[19.16171875,-28.93876953124996],[19.245800781250068,-28.90166015625003],[19.31269531250004,-28.733300781250023],[19.539843750000017,-28.574609375000023],[19.98046875,-28.45126953125002],[19.98046875,-28.310351562500003],[19.98046875,-24.77675781249998],[20.430664062500057,-25.14707031250002],[20.79316406250001,-25.915625],[20.641406250000017,-26.7421875],[20.739843749999977,-26.84882812499997],[21.694726562500023,-26.840917968749963],[21.738085937500045,-26.806835937500026],[21.788281250000068,-26.710058593750034],[22.01093750000004,-26.635839843750006],[22.090917968749977,-26.580175781250034],[22.217578125000045,-26.38886718749997],[22.47089843750004,-26.219042968750003],[22.548632812500074,-26.178417968749997],[22.59765625000003,-26.13271484375001],[22.878808593750023,-25.457910156250023],[23.148730468750017,-25.288671875],[23.389257812500006,-25.291406250000023],[23.89375,-25.600878906250017],[23.96953124999999,-25.62607421874999],[24.192968750000034,-25.632910156249963],[24.33056640625,-25.742871093749983],[25.21337890625,-25.75625],[25.518164062500006,-25.66279296875001],[25.91210937499997,-24.747460937499966],[26.031835937500034,-24.70244140625003],[26.130859375000057,-24.671484375000034],[26.39716796875004,-24.61357421874996],[26.451757812500063,-24.582714843749983],[26.835058593750063,-24.240820312499963],[27.085546875000034,-23.577929687500003],[27.7685546875,-23.14892578125],[27.812597656250006,-23.108007812500006],[28.210156249999983,-22.693652343749974],[28.83984375000003,-22.480859374999966],[28.94580078125003,-22.39511718749999],[29.013476562500045,-22.27841796875002],[29.129882812500057,-22.21328125],[29.364843750000063,-22.19394531250005],[29.37744140625003,-22.19277343749998],[29.66308593749997,-22.146289062500017],[29.90234375000003,-22.184179687500006],[30.19042968750003,-22.291113281250034],[30.460156250000097,-22.329003906250023],[30.71162109375004,-22.297851562499986],[31.07343750000004,-22.30781249999997],[31.19726562499997,-22.344921874999983],[31.287890625000074,-22.402050781249983],[31.54560546875004,-23.48232421874998],[31.799609375000017,-23.8921875]],[[27.19355468750001,-29.94130859375001],[27.364062500000017,-30.27919921875001],[27.753125,-30.6],[28.05683593750001,-30.63105468750001],[28.128710937500017,-30.52509765625001],[28.39208984375003,-30.14755859375002],[28.646875,-30.1265625],[29.09804687500005,-29.919042968750006],[29.142187500000063,-29.70097656249999],[29.293554687500006,-29.56689453125003],[29.348828125000097,-29.441992187499977],[29.38671874999997,-29.319726562500023],[29.301367187500006,-29.08984375],[28.625781250000017,-28.581738281250054],[28.583398437499994,-28.59414062499999],[28.471875,-28.615820312499977],[28.23261718750004,-28.701269531249977],[28.084375,-28.779980468750026],[27.95986328125008,-28.87333984375003],[27.73554687500004,-28.940039062500034],[27.294531250000063,-29.519335937500017],[27.056933593750074,-29.62558593749999],[27.19355468750001,-29.94130859375001]]]]},"properties":{"name":"South Africa","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[33.148046875,-9.603515625],[33.25,-9.759570312500003],[33.35097656250002,-9.862207031250009],[33.33710937500001,-9.954003906250009],[33.3115234375,-10.037988281250009],[33.52890625,-10.234667968750003],[33.53759765625,-10.3515625],[33.5537109375,-10.391308593750011],[33.66152343750002,-10.553125],[33.29277343750002,-10.85234375],[33.37978515625002,-11.157910156250011],[33.26835937500002,-11.40390625],[33.23271484375002,-11.417675781250011],[33.22636718750002,-11.534863281250011],[33.30390625000001,-11.690820312500009],[33.25234375000002,-12.112597656250003],[33.34013671875002,-12.308300781250011],[33.512304687500006,-12.347753906250006],[32.975195312500006,-12.701367187500011],[32.96757812500002,-13.225],[32.67041015625,-13.590429687500006],[32.797460937500006,-13.6884765625],[32.98125,-14.009375],[33.148046875,-13.94091796875],[33.201757812500006,-14.013378906250011],[30.231835937500023,-14.990332031250006],[30.39609375,-15.64306640625],[29.4873046875,-15.69677734375],[28.9130859375,-15.98779296875],[28.760546875000017,-16.53212890625001],[27.932226562500006,-16.89619140625001],[27.020800781250017,-17.95839843750001],[26.779882812500006,-18.04150390625],[26.333398437500023,-17.929296875],[25.995898437500017,-17.969824218750006],[25.2587890625,-17.793554687500006],[25.001757812500017,-17.56855468750001],[24.73291015625,-17.51777343750001],[24.27490234375,-17.481054687500006],[23.380664062500017,-17.640625],[22.193945312500006,-16.628125],[21.979785156250017,-15.95556640625],[21.979394531250023,-14.440527343750006],[21.979296875000017,-14.11962890625],[21.979101562500006,-13.798730468750009],[21.978906250000023,-13.0009765625],[22.209570312500006,-13.0009765625],[23.843164062500023,-13.0009765625],[23.962988281250006,-12.988476562500011],[23.882421875,-12.799023437500011],[23.886523437500017,-12.743261718750006],[23.909375,-12.636132812500009],[23.98388671875,-11.725],[23.96650390625001,-10.871777343750011],[24.36572265625,-11.1298828125],[24.3779296875,-11.417089843750006],[25.28876953125001,-11.21240234375],[25.349414062500017,-11.623046875],[26.025976562500006,-11.89013671875],[26.824023437500017,-11.965234375],[27.1591796875,-11.579199218750006],[27.573828125,-12.22705078125],[28.412890625000017,-12.51806640625],[28.550878906250006,-12.836132812500011],[28.730078125,-12.925488281250011],[29.014257812500006,-13.368847656250011],[29.20185546875001,-13.398339843750009],[29.55419921875,-13.248925781250009],[29.775195312500017,-13.438085937500006],[29.79511718750001,-12.155468750000011],[29.508203125000023,-12.228222656250011],[29.48554687500001,-12.41845703125],[29.064355468750023,-12.348828125000011],[28.482519531250006,-11.812109375],[28.383398437500006,-11.566699218750003],[28.6455078125,-10.550195312500009],[28.60419921875001,-9.678808593750006],[28.400683593750017,-9.224804687500011],[28.869531250000023,-8.785839843750011],[28.89814453125001,-8.485449218750006],[30.75117187500001,-8.193652343750003],[30.830664062500006,-8.385546875],[30.891992187500023,-8.473730468750006],[30.968359375,-8.550976562500011],[31.07636718750001,-8.611914062500006],[31.3505859375,-8.60703125],[31.44921875,-8.65390625],[31.53486328125001,-8.71328125],[31.55625,-8.80546875],[31.673632812500017,-8.908789062500006],[31.91865234375001,-8.9421875],[31.921875,-9.019433593750009],[31.94257812500001,-9.054003906250003],[32.75664062500002,-9.322265625],[32.919921875,-9.407421875000011],[32.99599609375002,-9.622851562500003],[33.148046875,-9.603515625]]]},"properties":{"name":"Zambia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[31.287890625000017,-22.40205078125001],[31.07343750000001,-22.30781250000001],[30.71162109375001,-22.2978515625],[30.46015625000001,-22.32900390625001],[30.1904296875,-22.291113281250006],[29.90234375,-22.184179687500006],[29.6630859375,-22.146289062500003],[29.37744140625,-22.19277343750001],[29.36484375,-22.193945312500006],[29.315234375000017,-22.15771484375],[29.237207031250023,-22.07949218750001],[29.042382812500023,-22.018359375],[29.02558593750001,-21.796875],[28.014062500000023,-21.55419921875],[27.66943359375,-21.064257812500003],[27.679296875,-20.503027343750006],[27.28076171875,-20.47871093750001],[27.17822265625,-20.10097656250001],[26.168066406250006,-19.53828125000001],[25.939355468750023,-18.93867187500001],[25.242285156250006,-17.969042968750003],[25.2587890625,-17.793554687500006],[25.995898437500017,-17.969824218750006],[26.333398437500023,-17.929296875],[26.779882812500006,-18.04150390625],[27.020800781250017,-17.95839843750001],[27.932226562500006,-16.89619140625001],[28.760546875000017,-16.53212890625001],[28.9130859375,-15.98779296875],[29.4873046875,-15.69677734375],[30.39609375,-15.64306640625],[30.437792968750017,-15.995312500000011],[31.236230468750023,-16.02363281250001],[31.939843750000023,-16.428808593750006],[32.94804687500002,-16.71230468750001],[32.87626953125002,-16.88359375],[32.99306640625002,-18.35957031250001],[32.69970703125,-18.94091796875],[32.84980468750001,-19.10439453125001],[32.77763671875002,-19.388769531250006],[32.992773437500006,-19.98486328125],[32.49238281250001,-20.659765625],[32.353613281250006,-21.136523437500003],[32.429785156250006,-21.29707031250001],[31.429492187500017,-22.298828125],[31.287890625000017,-22.40205078125001]]]},"properties":{"name":"Zimbabwe","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[74.00809389139292,33.25375789331485],[73.19660141888893,33.898124784580936],[73.13410859949555,34.82510160558277],[72.31128647748268,35.77290936638241],[73.08203125000107,36.43949943991182],[73.08961802927895,36.86435907947333],[73.116796875,36.868554687499994],[74.03886718750002,36.825732421874996],[74.54140625000002,37.02216796875],[74.69218750000002,37.0357421875],[74.8892578125,36.952441406249996],[74.94912109375002,36.968359375],[75.05390625000001,36.987158203125],[75.14521484375001,36.9732421875],[75.3466796875,36.913476562499994],[75.37685546875002,36.883691406249994],[75.42421875000002,36.738232421875],[75.46025390625002,36.725048828125],[75.57373046875,36.759326171874996],[75.66718750000001,36.741992187499996],[75.77216796875001,36.694921875],[75.84023437500002,36.649707031249996],[75.88496093750001,36.600732421874994],[75.93300781250002,36.52158203125],[75.95185546875001,36.45810546875],[75.97441406250002,36.382421875],[75.91230468750001,36.048974609374994],[76.07089843750003,35.9830078125],[76.14785156250002,35.829003906249994],[76.17783203125003,35.810546875],[76.25166015625001,35.8109375],[76.3857421875,35.837158203125],[76.50205078125003,35.878222656249996],[76.55126953125,35.887060546875],[76.5634765625,35.772998046874996],[76.6318359375,35.729394531249994],[76.7275390625,35.678662109375],[76.76689453124999,35.66171875],[76.81279296874999,35.571826171874996],[76.88222656250002,35.4357421875],[76.927734375,35.346630859375],[77.04863281249999,35.109912109374996],[77.00087890625002,34.991992187499996],[76.78291015625001,34.900195312499996],[76.75751953125001,34.877832031249994],[76.7490234375,34.847558593749994],[76.6962890625,34.786914062499996],[76.59443359375001,34.73583984375],[76.45673828125001,34.756103515625],[76.17246093750003,34.667724609375],[76.041015625,34.669921875],[75.93828125000002,34.612548828125],[75.86210937500002,34.56025390625],[75.70917968750001,34.503076171874994],[74.300390625,34.765380859375],[74.17197265625,34.7208984375],[74.05585937500001,34.6806640625],[73.96123046875002,34.653466796874994],[73.79453125,34.378222656249996],[73.80996093750002,34.325341796874994],[73.92460937500002,34.287841796875],[73.97236328125001,34.236621093749996],[73.9794921875,34.191308593749994],[73.90390625,34.1080078125],[73.94990234375001,34.018798828125],[74.24648437500002,33.990185546875],[73.97646484375002,33.7212890625],[74.15,33.506982421874994],[74.00809389139292,33.25375789331485]]]},"properties":{"name":"","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[78.49194250885338,32.53122786149202],[78.10154031239509,32.87658365066666],[77.71342088235082,32.6917648744551],[77.06655516561037,33.301666835953235],[76.62299010270264,33.32014871357439],[76.32728006076415,32.87658365066666],[75.73585997688717,32.78417426256088],[75.62496871116024,32.28516356678968],[75.32221348233018,32.28516356678968],[74.98730468749997,32.46220703124996],[74.78886718750013,32.4578125],[74.6857421875001,32.493798828124994],[74.66328125000004,32.75766601562495],[74.63242187499995,32.770898437500136],[74.58828125000011,32.7532226562501],[74.35458984375012,32.76870117187505],[74.30546875000007,32.81044921875002],[74.30361328125005,32.991796875000034],[73.98984375000006,33.22119140625006],[74.15,33.506982421874994],[73.97646484375016,33.72128906249998],[74.24648437500011,33.99018554687504],[73.9499023437501,34.018798828125],[73.90390625000012,34.10800781250006],[73.97949218750009,34.191308593749966],[73.97236328125004,34.23662109374996],[73.92460937500007,34.287841796875114],[73.80996093750016,34.32534179687511],[73.79453125000006,34.378222656250045],[73.96123046875007,34.653466796874994],[74.05585937500015,34.68066406250003],[74.17197265624995,34.72089843750004],[74.30039062500006,34.76538085937506],[75.70917968750004,34.50307617187508],[75.86210937500002,34.56025390625001],[75.93828125000019,34.612548828125],[76.04101562500014,34.66992187499997],[76.17246093750006,34.66772460937506],[76.4567382812501,34.756103515625114],[76.5944335937501,34.73583984375006],[76.69628906249997,34.78691406249999],[76.74902343750014,34.84755859375008],[76.7575195312501,34.87783203125005],[76.7829101562501,34.90019531249999],[77.00087890625011,34.99199218750002],[77.03066406250011,35.06235351562498],[77.04863281250007,35.109912109375074],[77.42343749999995,35.30258789062506],[77.57158203125002,35.37875976562495],[77.69697265625015,35.443261718750136],[77.79941406250006,35.49589843750002],[78.0426757812501,35.4797851562501],[78.07578125000006,35.13491210937502],[78.15849609375002,34.94648437499998],[78.32695312500007,34.60639648437498],[78.86484375000006,34.39033203125001],[78.93642578125,34.35195312500002],[78.97060546875011,34.22822265625004],[78.72666015625006,34.013378906249955],[78.78378906250006,33.80878906250004],[78.86503906250002,33.43110351562501],[78.94843750000004,33.346533203125006],[79.1125,33.22626953125001],[79.13515625000005,33.17192382812496],[79.10283203125007,33.05253906249996],[79.14550781250003,33.00146484375006],[79.16992187500003,32.497216796874994],[78.91894531249997,32.3582031250001],[78.75351562500012,32.49926757812506],[78.73671875,32.55839843750002],[78.49194250885338,32.53122786149202]]]]},"properties":{"name":"","childNum":1}}]}');var xe=Object.defineProperty,ke=Object.getOwnPropertySymbols,Ce=Object.prototype.hasOwnProperty,$e=Object.prototype.propertyIsEnumerable,Se=(e,t,n)=>t in e?xe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ee=(e,t)=>{for(var n in t||(t={}))Ce.call(t,n)&&Se(e,n,t[n]);if(ke)for(var n of ke(t))$e.call(t,n)&&Se(e,n,t[n]);return e};function Oe({areaStyleColors:n,dataLoaded:o,hasData:i,highlight:r,type:s,option:a,series:l,onChange:c,zoomStart:u,zoomEnd:h,title:d,seriesConfig:p=[],noDataComponent:g=null,zoomColors:m,style:f}){const[y,v]=(0,e.useState)(null),b=(0,e.useRef)(null),w=()=>{y&&y.resize()},x=(0,e.useMemo)((()=>g?g():t().createElement(be,{theme:"info"},"No data to display")),[g]),k={defaultOpts:(0,pe.fromJS)({title:{show:!0,text:d,left:0},color:[],toolbox:{right:"0",orient:"horizontal",itemSize:15,showTitle:!0,feature:null},dataZoom:[{show:!0,start:0,end:100,orient:"horizontal",dataBackground:{lineStyle:{color:(null==m?void 0:m.lineStyle)||"#368493"},areaStyle:{color:(null==m?void 0:m.areaStyle)||"#368493"}},handleStyle:{color:(null==m?void 0:m.handleStyle)||"#368493"},textStyle:{color:(null==m?void 0:m.textStyle)||"#368493"},borderColor:"transparent",fillerColor:(null==m?void 0:m.fillerColor)||"rgba(54, 132, 147, 0.1)"}],legend:{show:!1},tooltip:{trigger:"axis",axisPointer:{type:"cross"}},grid:{left:"1%",right:"1%",bottom:"50px",top:"40px",containLabel:!0},xAxis:{boundaryGap:!1,type:"category",splitLine:{show:!0,lineStyle:{type:"dotted",color:"#F0F0F0"}},axisLine:{show:!1},axisTick:{show:!1},data:[]},yAxis:{min:"dataMin",boundaryGap:!0,axisPointer:{show:!0},splitLine:{lineStyle:{type:"dotted",color:"#F0F0F0"},show:!0},axisLabel:{show:!0},axisLine:{show:!0},axisTick:{show:!1},type:"value"},textStyle:{color:"#5a5a68"},series:[],animationEasing:"elasticOut"}),seriesDefault:(0,pe.fromJS)({data:[],type:"line",areaStyle:{opacity:1,color:n?new de.graphic.LinearGradient(0,0,1,1,n.map(((e,t)=>({offset:t,color:e})))):[]},smooth:!1,symbolSize:7,name:""})},C={defaultOpts:(0,pe.fromJS)({tooltip:{trigger:"axis",formatter:"{b}: {c} ({d}%)"},legend:{orient:"horizontal",x:"left",y:"top",data:[]},color:[],series:[]}),seriesDefault:(0,pe.fromJS)({type:"pie",center:["50%","55%"],radius:["50%","75%"],avoidLabelOverlap:!1,animationType:"scale",animationEasing:"elasticOut",labelLine:{normal:{show:!0,smooth:.2,length:6,length2:6}},data:[]})},$={defaultOpts:(0,pe.fromJS)({series:[]}),seriesDefault:(0,pe.fromJS)({type:"map",data:[]})};(0,e.useEffect)((()=>(window.addEventListener("resize",w),()=>{window.removeEventListener("resize",w)})),[y]),(0,e.useEffect)((()=>{if(null==b?void 0:b.current)return v(de.init(b.current)),()=>{y&&y.dispose()}}),[b.current]);const S=e=>{c&&c(e)};(0,e.useEffect)((()=>{let e;return y&&(e=ge(S,500),y.on("dataZoom",e),y.on("restore",e),y.on("click",e),y.on("mousemove",(e=>{e.data&&y.getZr().setCursorStyle("pointer")}))),()=>{y&&(y.off("dataZoom",e),y.off("restore",e),y.off("click",e))}}),[y,c]);const E=me(y),O=me(a),T=me(s),A=me(l);(0,e.useEffect)((()=>{var e,t,n,o,i,r;!y||(null==(t=null==(e=(0,pe.fromJS)(E))?void 0:e.equals)?void 0:t.call(e,(0,pe.fromJS)(y)))&&(null==(o=null==(n=(0,pe.fromJS)(O))?void 0:n.equals)?void 0:o.call(n,(0,pe.fromJS)(a)))&&T===s&&(null==(r=(i=(0,pe.fromJS)(A)).equals)?void 0:r.call(i,(0,pe.fromJS)(l)))||(y.clear(),y.setOption(((e,t,n)=>{let o={};switch(e){case"pie":o=C.defaultOpts.mergeDeep((0,pe.fromJS)(t)).toJS(),n.forEach((e=>{o.series.push(C.seriesDefault.mergeDeep((0,pe.fromJS)(e)).toJS())}));break;case"geo":o=$.defaultOpts.mergeDeep((0,pe.fromJS)(t)).toJS(),n.forEach((e=>{o.series.push($.seriesDefault.mergeDeep((0,pe.fromJS)(e)).toJS())}));break;default:o=k.defaultOpts.mergeDeep((0,pe.fromJS)(t)).toJS(),Array.isArray(t.yAxis)&&(o.yAxis=t.yAxis),n.forEach(((e,t)=>{const n=Ee(Ee(Ee({},k.seriesDefault.toJS()),p[t]),e);o.series.push(n)}))}return o})(s,a,l)),y.dispatchAction({type:"takeGlobalCursor",key:"dataZoomSelect",dataZoomSelectActive:!0}))}),[y,a,l,s]),(0,e.useEffect)((()=>{y&&r&&(y.dispatchAction({type:"highlight",seriesIndex:r.seriesIndex,dataIndex:r.dataIndex}),y.dispatchAction({type:"showTip",seriesIndex:r.seriesIndex,dataIndex:r.dataIndex}))}),[r]);const _=me(u),L=me(h);(0,e.useEffect)((()=>{!y||-1===u||-1===h||_===u&&L===h||y.dispatchAction({type:"dataZoom",startValue:u,endValue:h})}),[u,h]);const M=()=>!o||!1!==i&&!0!==i||i;return t().createElement("div",{className:"tyk-chart__wrapper"},o?null:t().createElement(ye,null),t().createElement("div",{className:(()=>{const e=["tyk-chart"];return o||e.push("tyk-chart--loading-chart"),M()||e.push("tyk-chart--no-data"),e.join(" ")})(),style:(()=>{const e=f||{};return e.height||(e.height="300px"),e.width||(e.width="100%"),e})(),"data-type":s,ref:b}),M()?null:x)}de.registerMap("world",we),Oe.propTypes={areaStyleColors:r().instanceOf(Array),dataLoaded:r().bool,hasData:r().bool,highlight:r().oneOfType([r().number,r().string,r().instanceOf(Array)]),noDataComponent:r().func,zoomStart:r().number,zoomEnd:r().number,zoomColors:r().instanceOf(Object),option:r().instanceOf(Object),onChange:r().func,style:r().instanceOf(Object),type:r().string,title:r().string,series:r().instanceOf(Array),seriesConfig:r().instanceOf(Object)};const Te=(0,e.memo)(Oe);var Ae=n(745);const _e=(t,n)=>{const o=(0,e.useRef)();(0,e.useEffect)((()=>{o.current=t}),[t]),(0,e.useEffect)((()=>{if(null!==n){const e=setTimeout((function(){o.current()}),n);return()=>clearTimeout(e)}return()=>{}}),[n])};var Le=Object.defineProperty,Me=Object.getOwnPropertySymbols,Re=Object.prototype.hasOwnProperty,Ne=Object.prototype.propertyIsEnumerable,Ie=(e,t,n)=>t in e?Le(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Pe(e){const{children:n,options:o,onClose:i,index:r}=e,s=((e,t)=>{for(var n in t||(t={}))Re.call(t,n)&&Ie(e,n,t[n]);if(Me)for(var n of Me(t))Ne.call(t,n)&&Ie(e,n,t[n]);return e})({theme:"success",delay:3e3},o),a=e=>{i(e),clearTimeout(void 0)};return _e((()=>a(r)),s.delay),t().createElement(be,{className:"tyk-toast__message",theme:s.theme,onClose:()=>a(r)},n)}Pe.propTypes={children:r().oneOfType([r().element,r().node,r().string]),options:r().instanceOf(Object),onClose:r().func,index:r().number};const De=Pe;var Fe=Object.defineProperty,Be=Object.defineProperties,We=Object.getOwnPropertyDescriptors,He=Object.getOwnPropertySymbols,je=Object.prototype.hasOwnProperty,ze=Object.prototype.propertyIsEnumerable,Ve=(e,t,n)=>t in e?Fe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ue=(e,t)=>{for(var n in t||(t={}))je.call(t,n)&&Ve(e,n,t[n]);if(He)for(var n of He(t))ze.call(t,n)&&Ve(e,n,t[n]);return e};function Ge(n){const[o,i]=(0,e.useState)({}),{notify:r}=n,s=(e,t)=>{const n=Math.floor(1e6*Math.random());i((o=>{return i=Ue({},o),Be(i,We({[n]:{message:e,options:t}}));var i}))};(0,e.useEffect)((()=>{r(s)}),[o]);const a=e=>{delete Ue({},o)[e],i((t=>{const n=Ue({},t);return delete n[e],n}))};return t().createElement("div",{className:"tyk-toast__container"},Object.keys(o).map((e=>o[e]?t().createElement(De,{options:o[e].options,onClose:a.bind(null,e),index:e,key:e},o[e].message):null)))}Ge.propTypes={notify:r().func};const Ke=Ge;var qe=Object.defineProperty,Ye=Object.defineProperties,Je=Object.getOwnPropertyDescriptors,Xe=Object.getOwnPropertySymbols,Qe=Object.prototype.hasOwnProperty,Ze=Object.prototype.propertyIsEnumerable,et=(e,t,n)=>t in e?qe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,tt=(e,t)=>{for(var n in t||(t={}))Qe.call(t,n)&&et(e,n,t[n]);if(Xe)for(var n of Xe(t))Ze.call(t,n)&&et(e,n,t[n]);return e},nt=(e,t)=>Ye(e,Je(t));const ot=new class{constructor(){var e;et(this,"symbol"!=typeof(e="bindNotify")?e+"":e,(e=>{this.createNotification=e}));const n=document.createElement("div");n.className="tyk-toast",document.body.appendChild(n),(0,Ae.s)(n).render(t().createElement(Ke,{notify:this.bindNotify}))}notify(e,t){this.createNotification&&this.createNotification(e,t)}danger(e,t){this.notify(e,nt(tt({},t),{theme:"danger"}))}success(e,t){this.notify(e,nt(tt({},t),{theme:"success"}))}warning(e,t){this.notify(e,nt(tt({},t),{theme:"warning"}))}info(e,t){this.notify(e,nt(tt({},t),{theme:"info"}))}};var it=Object.defineProperty,rt=Object.getOwnPropertySymbols,st=Object.prototype.hasOwnProperty,at=Object.prototype.propertyIsEnumerable,lt=(e,t,n)=>t in e?it(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function ct(n){const{display:o,copy:i,children:r,onCopy:s,message:a="copied"}=n,l=(0,e.createRef)(),c=(0,e.useCallback)((()=>{if(s&&s(),!window.navigator.clipboard)return l.current.select(),document.execCommand("copy"),void ot.success(a);window.navigator.clipboard.writeText(i),ot.success(a)}),[s,l]);return t().createElement(t().Fragment,null,t().createElement(n.element,((e,t)=>{for(var n in t||(t={}))st.call(t,n)&<(e,n,t[n]);if(rt)for(var n of rt(t))at.call(t,n)&<(e,n,t[n]);return e})({onClick:c,onKeyUp:c},n),r||o),window.navigator.clipboard?null:t().createElement("textarea",{ref:l,className:"tyk-copy-to-clipboard",name:"copy",value:i},i))}ct.propTypes={message:r().string,onCopy:r().func,copy:r().string.isRequired,display:r().string,children:r().oneOfType([r().element,r().string,r().object,r().node])};const ut=ct;var ht=n(137),dt=n.n(ht);function pt({children:e}){return t().createElement("div",{className:"tyk-modal__footer"},e)}pt.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const gt=pt;function mt({children:e}){return t().createElement("div",{className:"tyk-modal__body"},e)}mt.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const ft=mt;var yt=Object.defineProperty,vt=Object.getOwnPropertySymbols,bt=Object.prototype.hasOwnProperty,wt=Object.prototype.propertyIsEnumerable,xt=(e,t,n)=>t in e?yt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function kt(e){var n=e,{children:o,theme:i="none",disableCloseCommands:r=!1,opened:s=!1,onClose:a=(()=>{}),size:l="md",className:c="",showBackdrop:u=!0}=n,h=((e,t)=>{var n={};for(var o in e)bt.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&vt)for(var o of vt(e))t.indexOf(o)<0&&wt.call(e,o)&&(n[o]=e[o]);return n})(n,["children","theme","disableCloseCommands","opened","onClose","size","className","showBackdrop"]);const d=["tyk-modal",`tyk-modal--theme-${i}`,s&&"opened"].concat(c.split(" ")).filter(Boolean).join(" "),p=["tyk-modal__backdrop",s&&"opened"].filter(Boolean).join(" "),m={success:"check",warning:"warning",danger:"delete"}[i];return t().createElement(t().Fragment,null,dt().createPortal(t().createElement(x.CSSTransition,{in:s,timeout:100,classNames:"appear"},t().createElement("div",((e,t)=>{for(var n in t||(t={}))bt.call(t,n)&&xt(e,n,t[n]);if(vt)for(var n of vt(t))wt.call(t,n)&&xt(e,n,t[n]);return e})({className:d},h),t().createElement("div",{className:`tyk-modal__dialog tyk-modal--${l}`},t().createElement("div",{className:"tyk-modal__content"},"none"!==i&&t().createElement("div",{className:"tyk-modal__theme-header"},t().createElement(g,{family:"tykon",type:m})),o)))),document.querySelector("body")),u&&dt().createPortal(t().createElement(x.CSSTransition,{in:s,timeout:100,classNames:"fade"},t().createElement("button",{className:p,onClick:()=>!r&&a(),onKeyDown:()=>{},type:"button","aria-label":"Close"})),document.querySelector("body")))}kt.Body=ft,kt.Footer=gt,kt.Header=({children:e})=>(console.warn("%cModal.Header%c is deprecated.","font-weight: bold",""),t().createElement("div",{className:"tyk-modal__header"},e)),kt.Header.propTypes={children:r().element},kt.Title=({children:e})=>(console.warn("%cModal.Title%c is deprecated.","font-weight: bold",""),t().createElement("h4",{className:"tyk-modal__title"},e)),kt.Title.propTypes={children:r().element},kt.propTypes={children:r().oneOfType([r().element,r().node,r().string]),className:r().string,theme:r().string,disableCloseCommands:r().bool,opened:r().bool,onClose:r().func,size:r().string,showBackdrop:r().bool};const Ct=kt;function $t(n){const{children:o,title:i,description:r,confirmBtnText:s="Confirm",cancelBtnText:a="Cancel"}=n,[l,c]=(0,e.useState)(!1),[u,h]=(0,e.useState)(null),[d,p]=(0,e.useState)(null),g=()=>{c(!1),h(null),p(null)},m=()=>{d&&d(),g()};return t().createElement(t().Fragment,null,o(((e,t,n)=>(...o)=>{n&&n(...o),c(!0),h((()=>()=>e(...o))),t&&p((()=>()=>t(...o)))})),t().createElement(Ct,{opened:l,onClose:m},t().createElement(Ct.Body,null,t().createElement("h4",null,i),r),t().createElement(Ct.Footer,null,t().createElement(U,{onClick:m,theme:"default"},a),t().createElement(U,{onClick:()=>{u(),g()},theme:"success"},s))))}$t.propTypes={confirmBtnText:r().string,cancelBtnText:r().string,title:r().string,description:r().string,children:r().oneOfType([r().element,r().string,r().object,r().node,r().func])};const St=$t;function Et({children:n,className:o,showShadow:i}){const r=(0,e.useRef)(null),s=(0,e.useCallback)((()=>{const e=r.current;e&&(window.scrollY?e.classList.add("tyk-fixed-wrapper--scrolled"):e.classList.remove("tyk-fixed-wrapper--scrolled"))}),[r.current]),a=(0,e.useCallback)(ge(s,100),[s]);return(0,e.useEffect)((()=>(i&&window.addEventListener("scroll",a),()=>{window.removeEventListener("scroll",a)})),[a,i]),t().createElement("div",{className:`tyk-fixed-wrapper ${o}`,ref:r},n)}Et.propTypes={children:r().oneOfType([r().element,r().node,r().string]),className:r().string,showShadow:r().bool},Et.defaultProps={className:""};const Ot=Et;function Tt({children:n,hasMore:o,initialLoad:i,loadMore:r,pageNumber:s,refChild:a}){const[l,c]=(0,e.useState)(!1),u=(0,e.useRef)(null),h=C(a);(0,e.useEffect)((()=>{i&&"function"==typeof r&&(c(!1),r(s))}),[i]);const d=(0,e.useCallback)((()=>{if(!u.current)return!1;const{clientHeight:e,scrollTop:t}=u.current;return o&&(e+Math.round(t)===h.height||e>=h.height)}),[u,h.height]),p=(0,e.useCallback)((()=>{o&&"function"==typeof r?(r(s+1),c(!0)):c(!1)}),[o,s]),g=me(s),m=(0,e.useCallback)(ge((()=>{d()&&g<=s&&p()}),200),[p,d]);(0,e.useEffect)((()=>{var e;return null==(e=u.current)||e.addEventListener("scroll",m),()=>{var e;return null==(e=u.current)?void 0:e.removeEventListener("scroll",m)}}),[u,m]),(0,e.useEffect)((()=>{g>0&&0===s&&(u.current.scrollTop=0)}),[u,s]);const f=me(h);return(0,e.useEffect)((()=>{h&&f&&h.height!==f.height&&!0===l&&c(!1)}),[l,h.height]),(0,e.useEffect)((()=>{a&&h.heightt in e?_t(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function It({element:n,size:o="auto",forceDisplay:i="auto",displayAxis:r="auto",preferredPosition:s,offset:a=0,className:l,children:c,infiniteScrollerConfig:u},h){const d=(0,e.useRef)(null),p=h||d,g=(0,e.useRef)(null),m=(0,e.useRef)(null);return(0,e.useEffect)((()=>{window.requestAnimationFrame((function e(){(function(){var e;const t="auto"!==i?i:function(){const e=n.current,t=p.current;if(!t)return(null!=s?s:"vertical"===r)?"bottom":"right";const{left:o,top:i}=e.getBoundingClientRect(),a=i,l=window.innerHeight-i-e.offsetHeight,c=o,u=window.innerWidth-o-e.offsetWidth,h=a>t.scrollHeight,d=l>t.scrollHeight,g=c>t.offsetWidth,m=u>t.offsetWidth,f=o+e.offsetWidth/2-t.offsetWidth/2>0,y=i+e.offsetHeight/2-t.scrollHeight/2>0;return"vertical"===r||"auto"===r&&(h||d)&&f?function({preferredPosition:e,hasTopSpace:t,hasBottomSpace:n,topSpace:o,bottomSpace:i}){return"top"===e&&t?"top":"bottom"===e&&n||n||i>o?"bottom":"top"}({preferredPosition:s,hasTopSpace:h,hasBottomSpace:d,topSpace:a,bottomSpace:l}):"horizontal"===r?function({preferredPosition:e,hasLeftSpace:t,hasRightSpace:n,leftSpace:o,rightSpace:i}){return"left"===e&&t?"left":"right"===e&&n||n||i>o?"right":"left"}({preferredPosition:s,hasLeftSpace:g,hasRightSpace:m,leftSpace:c,rightSpace:u}):function({preferredPosition:e,hasTopSpace:t,hasBottomSpace:n,hasLeftSpace:o,hasRightSpace:i,positionedHorizontallyFitsInViewport:r,positionedVerticallyFitsInViewport:s}){return t&&s?"top":n&&s?"bottom":i&&r?"right":o&&r?"left":null!=e?e:"bottom"}({preferredPosition:s,hasTopSpace:h,hasBottomSpace:d,hasLeftSpace:g,hasRightSpace:m,positionedHorizontallyFitsInViewport:y,positionedVerticallyFitsInViewport:f})}(),l=n.current,c=p.current;if(!l||!c)return;const u=l.getBoundingClientRect(),{left:h,top:d}=null!=(e=m.current)?e:{left:0,top:0};if("top"===t&&Object.assign(c.style,function({container:e,targetPosition:t,target:n,size:o,offset:i,vpLeft:r,vpTop:s}){const a={},l={auto:t.left+n.offsetWidth/2-e.offsetWidth/2,matchElement:t.left,matchStart:t.left,matchEnd:t.right-e.offsetWidth}[o],c=t.top-e.offsetHeight-i;return a.left=`${l+r}px`,a.top=`${c+s}px`,"matchElement"===o?a.width=`${n.offsetWidth}px`:"matchEnd"===o?a.maxWidth=t.right-5+"px":"function"==typeof o&&(a.width=`${o(n.offsetWidth)}px`),a.maxHeight=t.top-i+"px",a}({container:c,targetPosition:u,target:l,size:o,offset:a,vpLeft:h,vpTop:d})),"bottom"===t&&Object.assign(c.style,function({targetPosition:e,target:t,container:n,size:o,offset:i,vpLeft:r,vpTop:s}){const a={},l={auto:e.left+t.offsetWidth/2-n.offsetWidth/2,matchElement:e.left,matchStart:e.left,matchEnd:e.right-n.offsetWidth}[o],c=e.bottom+i;return a.left=`${l+r}px`,a.top=`${c+s}px`,"matchElement"===o?a.width=`${t.offsetWidth}px`:"matchEnd"===o?a.maxWidth=e.right-5+"px":"function"==typeof o&&(a.width=`${o(t.offsetWidth)}px`),a.maxHeight=window.innerHeight-e.bottom-i+"px",a}({container:c,targetPosition:u,target:l,size:o,offset:a,vpLeft:h,vpTop:d})),"left"===t&&Object.assign(c.style,function({targetPosition:e,target:t,container:n,size:o,offset:i}){const r={},s=e.left-n.offsetWidth-i,a={auto:e.top+t.offsetHeight/2-n.offsetHeight/2,matchElement:e.top,matchStart:e.top,matchEnd:e.bottom-n.offsetHeight}[o];return r.left=`${s}px`,r.top=`${a}px`,"matchElement"===o?r.height=`${t.offsetHeight}px`:"function"==typeof o&&(r.height=`${o(t.offsetHeight)}px`),r.maxWidth=e.left-i+"px",r}({targetPosition:u,target:l,container:c,size:o,offset:a})),"right"===t&&Object.assign(c.style,function({targetPosition:e,target:t,container:n,size:o,offset:i,vpLeft:r,vpTop:s}){const a={},l=e.left+t.offsetWidth+i,c={auto:e.top+t.offsetHeight/2-n.offsetHeight/2,matchElement:e.top,matchStart:e.top,matchEnd:e.bottom-n.offsetHeight}[o];return a.left="auto"===o?`${l+r}px`:`${l}px`,a.top="auto"===o?`${c+s}px`:`${c}px`,"matchElement"===o?a.height=`${t.offsetHeight}px`:"function"==typeof o&&(a.height=`${o(t.offsetHeight)}px`),a.maxWidth=window.innerWidth-e.left-t.offsetWidth-i+"px",a}({targetPosition:u,target:l,container:c,size:o,offset:a,vpLeft:h,vpTop:d})),null===m.current)if("matchEnd"===o)m.current={left:0,top:0};else{const e=Number(c.style.left.replace("px","")),t=Number(c.style.top.replace("px",""));m.current={left:e<0?5-e:0,top:t<0?5-t:0}}})(),window.requestAnimationFrame(e)}))}),[]),(0,ht.createPortal)(t().createElement("div",{className:`floating-container ${l||""}`,ref:p},t().createElement(At,((e,t)=>{for(var n in t||(t={}))Mt.call(t,n)&&Nt(e,n,t[n]);if(Lt)for(var n of Lt(t))Rt.call(t,n)&&Nt(e,n,t[n]);return e})({refChild:g},u),t().createElement("div",{className:"floating-container__content-wrapper",ref:g},c))),document.querySelector("body"))}It.propTypes={element:r().instanceOf(Object),className:r().string,size:r().oneOfType([r().oneOf(["auto","matchElement","matchStart","matchEnd"]),r().func]),offset:r().number,forceDisplay:r().oneOf(["auto","top","bottom","left","right"]),displayAxis:r().oneOf(["auto","vertical","horizontal"]),preferredPosition:r().oneOf(["top","bottom","left","right"]),infiniteScrollerConfig:r().instanceOf(Object)};const Pt=(0,e.forwardRef)(It);function Dt({children:e}){return t().createElement("div",{className:"tyk-info-note"},t().createElement(be,{theme:"info"},e))}Dt.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const Ft=Dt;function Bt(e){const{className:n,children:o,selected:i}=e;return t().createElement("li",{className:`${n} ${i?"tyk-list__item--selected":""}`},o)}Bt.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,selected:r().bool},Bt.defaultProps={className:""};const Wt=Bt;function Ht(e){const{className:n,children:o,label:i,labelwidth:r,theme:s,style:a}=e;return t().createElement("div",{className:"tyk-list__wrapper "+(r?"tyk-list--with-inline-label":"")},void 0!==i?t().createElement("label",{style:{flexBasis:r||"auto"}},i):null,t().createElement("ul",{className:(()=>{let e=["tyk-list"];return s&&e.push(`tyk-list--${s}`),n&&(e=e.concat(n.split(" "))),e.join(" ")})(),style:(()=>{const e=structuredClone(a);return r&&(e.flexBasis=`calc(100% - ${r} - 20px)`),e})()},o))}Ht.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,label:r().string,labelwidth:r().string,theme:r().string,style:r().instanceOf(Object)},Ht.defaultProps={theme:"default",style:{}},Ht.Item=Wt;const jt=Ht;function zt({align:e="center",children:n,left:o,right:i,title:r,pre:s,subtitle:a,withTabs:l}){const c=a?t().createElement("p",{className:"font-family-medium"},a):null;return t().createElement("section",{className:"tyk-nav-bar "+(l?"tyk-nav-bar__with-tabs":"")},t().createElement("div",{className:`tyk-nav-bar__wrapper tyk-nav-bar--align-${e}`},s&&t().createElement("div",{className:"tyk-nav-bar__pre"},s),r?t().createElement("div",null,t().createElement("h1",null,r),c):c,t().createElement("div",{className:"tyk-nav-bar__container"},o&&t().createElement("div",{className:"tyk-nav-bar__left"},o),i&&t().createElement("div",{className:"tyk-nav-bar__right"},i))),n)}zt.propTypes={align:r().string,children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),title:r().string,subtitle:r().string,pre:r().oneOfType([r().element,r().node]),left:r().oneOfType([r().element,r().node]),right:r().oneOfType([r().element,r().node]),withTabs:r().bool};const Vt=zt;function Ut({children:e}){return t().createElement("li",{className:"tyk-navigation-item"},e)}Ut.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string])};const Gt=Ut;function Kt({children:e}){return t().createElement("ul",{className:"tyk-navigation"},e)}Kt.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string])},Kt.Item=Gt;const qt=Kt,Yt=(0,e.createContext)();var Jt=Object.defineProperty,Xt=Object.defineProperties,Qt=Object.getOwnPropertyDescriptors,Zt=Object.getOwnPropertySymbols,en=Object.prototype.hasOwnProperty,tn=Object.prototype.propertyIsEnumerable,nn=(e,t,n)=>t in e?Jt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,on=(e,t)=>{for(var n in t||(t={}))en.call(t,n)&&nn(e,n,t[n]);if(Zt)for(var n of Zt(t))tn.call(t,n)&&nn(e,n,t[n]);return e},rn=(e,t)=>Xt(e,Qt(t));function sn(n){var o=n,{children:i,noPadding:r,className:s}=o,a=((e,t)=>{var n={};for(var o in e)en.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Zt)for(var o of Zt(e))t.indexOf(o)<0&&tn.call(e,o)&&(n[o]=e[o]);return n})(o,["children","noPadding","className"]);const l=(0,e.useCallback)((()=>["tyk-panel__body",s,r&&"no-padding"].filter(Boolean).join(" ")),[s,r]);return t().createElement(Yt.Consumer,null,(e=>e.collapsable?t().createElement(R,rn(on({},a),{collapsed:e.collapsed,className:l()}),i):t().createElement("div",rn(on({},a),{className:l()}),i)))}sn.propTypes={children:r().oneOfType([r().element,r().node,r().string]),noPadding:r().bool,className:r().string};const an=sn;function ln(e){const{children:n}=e;return t().createElement("div",{className:"tyk-panel__footer"},n)}ln.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const cn=ln;class un extends e.Component{getCssClasses(e){const{className:t}=this.props;let n=["tyk-panel__header"];return e.collapsable&&n.push("collapsable"),t&&(n=n.concat(t.split(" "))),n.join(" ")}render(){const{children:e}=this.props;return t().createElement(Yt.Consumer,null,(n=>{const o="blank"===n.theme?"h3":"div",i=n.collapsed?"chevron-down":"chevron-up";return t().createElement(o,{className:this.getCssClasses(n),onClick:n.collapsable?n.onToggle:void 0},e,n.collapsable?t().createElement("div",{className:`collapsable__arrow-${n.collapsibleIconPosition}`},t().createElement(g,{type:i})):null)}))}}un.propTypes={children:r().oneOfType([r().element,r().node,r().string]).isRequired,className:r().string};const hn=un;function dn(n){const{children:o,className:i,collapsed:r,collapsable:s,theme:a,onToggleCollapse:l,collapsibleIconPosition:c="right"}=n,[u,h]=(0,e.useState)(r||!1);(0,e.useEffect)((()=>{r!==u&&h(r)}),[r]);const d=(0,e.useCallback)((()=>{h(!u),l&&l(!u)}),[u,l]),p=(0,e.useMemo)((()=>({collapsable:s,collapsed:u,onToggle:d,theme:a,collapsibleIconPosition:c})),[s,u,c,a,d]);return t().createElement("div",{className:(()=>{let e=["tyk-panel"];const t=`tyk-panel--${a||"default"}`,n=`tyk-panel__icon-collapse--${c}`;return e.push(t),e.push(n),i&&(e=e.concat(i.split(" "))),u&&e.push("tyk-panel--collapsed"),e.join(" ")})()},t().createElement(Yt.Provider,{value:p},"function"==typeof o?o({toggleCollapse:d}):o))}dn.propTypes={children:r().oneOfType([r().func,r().element,r().node,r().string]),className:r().string,collapsable:r().bool,collapsibleIconPosition:r().string,collapsed:r().bool,theme:r().string,onToggleCollapse:r().func},dn.Body=an,dn.Footer=cn,dn.Header=hn;const pn=dn;function gn(e){const{children:n,className:o,theme:i}=e;return t().createElement("div",{className:(()=>{let e=["tyk-pill",...i.split(" ").map((e=>`tyk-pill--${e}`))];return o&&(e=e.concat(o)),e.join(" ")})()},n)}gn.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,theme:r().string},gn.defaultProps={theme:"default"};const mn=gn;var fn,yn,vn,bn,wn,xn,kn,Cn,$n=(e,t,n)=>{if(!t.has(e))throw TypeError("Cannot "+n)},Sn=(e,t,n)=>($n(e,t,"read from private field"),n?n.call(e):t.get(e)),En=(e,t,n)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,n)},On=(e,t,n,o)=>($n(e,t,"write to private field"),o?o.call(e,n):t.set(e,n),n);class Tn{constructor(){En(this,fn,null),En(this,yn,null),En(this,vn,null),En(this,bn,null),En(this,wn,[]),En(this,xn,[]),En(this,kn,[]),En(this,Cn,!1)}on(e,t){let n=null;"onHeightChange"===e?n=Sn(this,wn):"onDragStart"===e?n=Sn(this,xn):"onDragEnd"===e&&(n=Sn(this,kn)),n&&this.addListener(n,t)}off(e,t){let n=null;"onHeightChange"===e?n=Sn(this,wn):"onDragStart"===e?n=Sn(this,xn):"onDragEnd"===e&&(n=Sn(this,kn)),n&&this.removeListener(n,t)}setRefs(e,t,n){(Sn(this,yn)||Sn(this,vn)||Sn(this,bn))&&this.unbindEvents(),On(this,bn,e),On(this,yn,t),On(this,vn,n),On(this,fn,null),this.bindEvents()}bindEvents(){this.ensureRefs("bindEvents"),Sn(this,vn).addEventListener("mousedown",this.onMouseDown.bind(this)),document.addEventListener("mousemove",this.onMouseMove.bind(this)),document.addEventListener("mouseup",this.onMouseUp.bind(this))}getHeight(){return this.ensureRefs("getHeight"),Sn(this,yn).getBoundingClientRect().height}onMouseDown(e){this.ensureRefs("onMouseDown"),On(this,fn,{mouseDown:!0,initialRect:Sn(this,yn).getBoundingClientRect(),initialEvent:e})}onMouseMove(e){if(this.ensureRefs("onMouseMove"),!Sn(this,fn))return;if(!this.isPrimaryMouseButtonDown(e))return void this.onMouseUp();Sn(this,Cn)||(On(this,Cn,!0),this.onDragStart.bind(this)());const t=Sn(this,fn).initialEvent.y-e.y,n=Math.ceil(Sn(this,fn).initialRect.height+t);this.setHeight(`${n}px`,"mousemove")}notifyListeners(e,t){e&&Array.isArray(e)&&e.length&&e.forEach((e=>{"function"==typeof e&&e(t)}))}addListener(e,t){e&&Array.isArray(e)&&"function"==typeof t&&e.push(t)}removeListener(e,t){if(e&&Array.isArray(e)&&"function"==typeof t&&e.length){const n=e.indexOf(t);n>-1&&e.splice(n,1)}}onDragEnd(){Sn(this,Cn)&&this.notifyListeners(Sn(this,kn),this.getHeight())}onDragStart(){this.notifyListeners(Sn(this,xn),this.getHeight())}isPrimaryMouseButtonDown(e){return 1===(void 0!==e.buttons?e.buttons:e.which)}onMouseUp(){On(this,fn,null),this.onDragEnd.bind(this)(),On(this,Cn,!1)}setHeight(e){let t=e;this.ensureRefs("setHeight"),"number"==typeof t&&(t+="px"),Sn(this,yn).style.height=t,this.notifyListeners(Sn(this,wn),this.getHeight())}ensureRefs(e){if(!Sn(this,yn)||!Sn(this,vn)||!Sn(this,bn))throw new Error(`${e}: Wrapper, panel, and gutter elements are required. Use setRefs method first.`)}isHidden(){return this.ensureRefs("isHidden"),"hidden"===Sn(this,bn).style.visibility}hide(){this.ensureRefs("hide"),Sn(this,bn).style.visibility="hidden"}show(){this.ensureRefs("show"),Sn(this,bn).style.visibility="visible"}unbindEvents(){On(this,wn,[]),On(this,xn,[]),On(this,kn,[]),Sn(this,vn).removeEventListener("mousedown",this.onMouseDown.bind(this)),document.removeEventListener("mousemove",this.onMouseMove.bind(this)),document.removeEventListener("mouseup",this.onMouseUp.bind(this))}deinit(){this.unbindEvents()}}function An({children:e}){return t().createElement(t().Fragment,null,e)}function _n({children:e}){return t().createElement(t().Fragment,null,e)}fn=new WeakMap,yn=new WeakMap,vn=new WeakMap,bn=new WeakMap,wn=new WeakMap,xn=new WeakMap,kn=new WeakMap,Cn=new WeakMap,An.propTypes={children:r().instanceOf({})},_n.propTypes={children:r().instanceOf({})};const Ln=(...e)=>e.map((e=>(e||"").trim())).filter(Boolean).join(" ");function Mn({children:n,height:o,onHeightChange:i=null,onDragStart:r=null,onDragEnd:s=null,style:a=null,parentSelector:l=null,contentStyle:c,contentClassName:u,gutterClassName:h,wrapperClassName:d},p){const g=(0,e.useRef)(null),m=(0,e.useRef)(null),f=(0,e.useRef)(null),y=(0,e.useRef)(new Tn).current;(0,e.useEffect)((()=>{if(g.current&&m.current&&f.current&&y)return y.setRefs(f.current,g.current,m.current),y.on("onHeightChange",i),y.on("onDragStart",r),y.on("onDragEnd",s),y.setHeight(o,"initialize"),()=>{y.unbindEvents()}}),[]),(0,e.useImperativeHandle)(p,(()=>{const e=e=>e.bind(y);return{getHeight:e(y.getHeight),setHeight:e(y.setHeight),hide:e(y.hide),show:e(y.show),isHidden:e(y.isHidden),deinit:e(y.deinit),on:e(y.on),off:e(y.off)}}),[]);let v=null,b=null;const w=[];t().Children.forEach(n,(e=>{e&&t().isValidElement(e)&&(e.type===An?v=e:e.type===_n?b=e:w.push(e))}));const x=t().createElement("div",{className:Ln("tyk-ui-reveal-wrapper",d||"cem"),ref:f,style:a},t().createElement("div",{className:"tyk-ui-reveal-wrapper__hole"}),t().createElement("div",{ref:m,className:Ln("tyk-ui-reveal-wrapper__gutter",h)},t().createElement("div",{className:"tyk-ui-reveal-wrapper__gutter__headerleft"},v),t().createElement("div",{className:"tyk-ui-reveal-wrapper__gutter__logo"}," "),t().createElement("div",{className:"tyk-ui-reveal-wrapper__gutter__headerright"},b)),t().createElement("div",{ref:g,className:Ln("tyk-ui-reveal-wrapper__panel",u),style:c},w));if(l)return(0,ht.createPortal)(x,document.querySelector(l))}Mn.propTypes={children:r().instanceOf({}),height:r().string,onHeightChange:r().func,onDragStart:r().func,onDragEnd:r().func,parentSelector:r().string,style:r().instanceOf({}),contentStyle:r().instanceOf({}),contentClassName:r().string,gutterClassName:r().string,wrapperClassName:r().string};const Rn=(0,e.forwardRef)(Mn);Rn.HeaderLeft=An,Rn.HeaderRight=_n;const Nn=Rn,In=(0,e.createContext)(),Pn=(0,e.createContext)();var Dn=Object.defineProperty,Fn=Object.getOwnPropertySymbols,Bn=Object.prototype.hasOwnProperty,Wn=Object.prototype.propertyIsEnumerable,Hn=(e,t,n)=>t in e?Dn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,jn=(e,t)=>{for(var n in t||(t={}))Bn.call(t,n)&&Hn(e,n,t[n]);if(Fn)for(var n of Fn(t))Wn.call(t,n)&&Hn(e,n,t[n]);return e};function zn(n){const{addTab:o,hideTab:i,updateTab:r,showTab:s,children:a,selectedPath:l,tabData:c,tabsId:u,tabExists:h,path:d,rendered:p,hideTabContent:g,tabs:m}=n;(0,e.useEffect)((()=>{const e=jn({},c);h(d)||o(e,d)}),[c,d]);const f=me(c);(0,e.useEffect)((()=>{if(h(d)&&(null==c?void 0:c.title)&&((null==f?void 0:f.title)!==(null==c?void 0:c.title)||(null==f?void 0:f.selected)!==c.selected)){const e=jn({},c);r(e,d)}}),[c,d,f,m]),(0,e.useEffect)((()=>(s(d),()=>i(d))),[]);const y=(0,e.useMemo)((()=>!!Object.keys(m).length&&!g&&!1!==m[c.id].show&&(p?l&&l.indexOf(c.id)>-1:h(d))),[g,p,l,c,m]),v=(0,e.useMemo)((()=>({path:d,tabsId:u})),[d,u]);return y?t().createElement("div",{key:c.id,className:"tyk-tab__content",style:{display:l&&l.indexOf(c.id)>-1?"block":"none"}},t().createElement(Pn.Provider,{value:v},a)):null}zn.propTypes={addTab:r().func,updateTab:r().func,hideTab:r().func,showTab:r().func,children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),path:r().instanceOf(Array),hideTabContent:r().bool,rendered:r().bool,selectedPath:r().instanceOf(Array),tabExists:r().func,tabsId:r().string,tabData:r().instanceOf(Object),tabs:r().instanceOf(Object)};const Vn=zn;function Un(n){const{id:o}=n,i=(0,e.useContext)(In),r=(0,e.useContext)(Pn),{tabExists:s,selectedPath:a,addTab:l,updateTab:c,hideTab:u,showTab:h,rendered:d,hideTabContent:p,tabs:g}=i,{children:m}=n,[f,y]=(0,e.useState)("");return(0,e.useEffect)((()=>{let e;e=r&&f&&r.tabsId===i.id?r.path.concat([o]):[o],y(e)}),[r]),f?t().createElement(Vn,{addTab:l,updateTab:c,hideTab:u,showTab:h,tabExists:s,tabData:n,path:f,tabsId:i.id,selectedPath:a,rendered:d,hideTabContent:p,tabs:g},m):null}Un.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),id:r().string},Un.defaultProps={};const Gn=Un;var Kn=Object.defineProperty,qn=Object.getOwnPropertySymbols,Yn=Object.prototype.hasOwnProperty,Jn=Object.prototype.propertyIsEnumerable,Xn=(e,t,n)=>t in e?Kn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Qn=(e,t)=>{for(var n in t||(t={}))Yn.call(t,n)&&Xn(e,n,t[n]);if(qn)for(var n of qn(t))Jn.call(t,n)&&Xn(e,n,t[n]);return e};function Zn(n){const{children:o,className:i,id:r,onTabChange:s,type:a,hideTabContent:l}=n,[c,u]=(0,e.useState)({}),[h,d]=(0,e.useState)([]),[p,m]=(0,e.useState)(!1),[f,y]=(0,e.useState)(null);(0,e.useEffect)((()=>{d(f)}),[f]);const v=(e,t)=>{const n=e.slice(0);let o=!0;t.collapsible&&(n.push(Object.keys(t.tabs)[0]),o=!1),u((t=>{let n=Qn({},t);return n=((e,t)=>{let n=Qn({},e);const o=t.slice(0);for(;o.length>1;)n=n[o.shift()];const i=o.shift();return void 0===n[i].collapsed?n[i].collapsed=!0:n[i].collapsed=!n[i].collapsed,n})(n,e),n})),d(n),m(o),s&&s(t)},b=e=>{const t=[];return h&&h.indexOf(e)>-1&&t.push("active"),t.join(" ")},w=(e,n)=>e?t().createElement("ul",null,Object.keys(e).map(((o,i)=>{const r=n?n.concat([e[o].id]):[e[o].id],s=e[o].collapsed?"chevron-up":"chevron-down";return!1===e[o].show?null:t().createElement("li",{className:b(e[o].id),key:e[o].id},t().createElement("button",{type:"button",onClick:v.bind(null,r,e[o]),onKeyDown:v.bind(null,r,e[o]),tabIndex:i},e[o].title,e[o].collapsible?t().createElement(g,{className:"collapsable-arrow",type:s}):null),e[o].collapsible?t().createElement(R,{collapsed:e[o].collapsed},w(e[o].tabs,r)):w(e[o].tabs,r))}))):null,x=(e,t)=>{u((n=>((e,t,n)=>{let o=Qn({},e);const i=Qn({},n),r=t.slice(0);for(;r.length>1;)o=o[r.shift()],o||(o={});return i.tempPath=r,o[r.shift()]=i,o})(Qn({},n),t,e))),e.selected&&y(t)},k=(e,t)=>{u((t=>{const n=Qn({},t);return n[e.id]=e,n})),e.selected&&v(t,e)},C=e=>{u((t=>{const n=Qn({},t);return n[e].show=!1,n}))},$=e=>{u((t=>{const n=Qn({},t);return n[e].show=!0,n}))},S=e=>{let t=Qn({},c);const n=e.slice(0);for(;n.length>1;)t=t[n.shift()];const o=n.shift();return Boolean(null==t?void 0:t[o])},E=(0,e.useMemo)((()=>({id:r,addTab:x,hideTab:C,updateTab:k,showTab:$,tabExists:S,selectedPath:h,rendered:p,hideTabContent:l,tabs:c})),[r,x,C,k,$,S,h,p,l,c]);return t().createElement("div",{className:(()=>{let e=["tyk-tabs"];return e.push(`tyk-tabs--${a||"default"}`),i&&(e=e.concat(i.split(" "))),e.join(" ")})()},w(c),t().createElement(In.Provider,{value:E},"function"==typeof o?o({hideTab:C,showTab:$}):o))}Zn.propTypes={className:r().string,children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),hideTabContent:r().bool,id:r().string,onTabChange:r().func,type:r().string},Zn.Tab=Gn;const eo=Zn;var to=Object.defineProperty,no=Object.getOwnPropertySymbols,oo=Object.prototype.hasOwnProperty,io=Object.prototype.propertyIsEnumerable,ro=(e,t,n)=>t in e?to(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,so=(e,t)=>{for(var n in t||(t={}))oo.call(t,n)&&ro(e,n,t[n]);if(no)for(var n of no(t))io.call(t,n)&&ro(e,n,t[n]);return e};function ao(n){var o=n,{render:i,className:r,children:s,position:a="auto",style:l,icon:c=!1,closable:u,isOpened:h=!1,additionalClickParents:d=[]}=o,p=((e,t)=>{var n={};for(var o in e)oo.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&no)for(var o of no(e))t.indexOf(o)<0&&io.call(e,o)&&(n[o]=e[o]);return n})(o,["render","className","children","position","style","icon","closable","isOpened","additionalClickParents"]);const[m,f]=(0,e.useState)(!1),y=(0,e.useRef)(null),v=(0,e.useRef)(null),b=u?{onClick:()=>f(!0)}:{onMouseEnter:()=>f(!0),onMouseLeave:()=>f(!1),onFocus:()=>f(!0),onBlur:()=>f(!1)},w=(0,e.useCallback)((e=>{[...d,v.current].some((t=>{var n;return null==(n=null==t?void 0:t.contains)?void 0:n.call(t,e.target)}))||f(!1)}),[d]);(0,e.useEffect)((()=>(document.addEventListener("click",w,!0),()=>document.removeEventListener("click",w,!0))),[w]),(0,e.useEffect)((()=>{f(h)}),[h]);const x=["tyk-tooltip",r].filter(Boolean).join(" ");return t().createElement("div",so(so({className:"tyk-tooltip__wrapper",style:so({display:"inline-block"},l),ref:y},b),p),s,m&&t().createElement(Pt,{element:y,forceDisplay:a,preferredPosition:"top",offset:20},t().createElement("div",{className:x,ref:v},c&&(!0===c?t().createElement(g,{family:"tykon",type:"help"}):c),t().createElement("div",{className:"tyk-tooltip__content"},i),u&&t().createElement(g,{family:"tykon",type:"x",onClick:e=>{e.stopPropagation(),f(!1)}}))))}ao.propTypes={children:r().node.isRequired,style:r().instanceOf(Object),position:r().string,render:r().oneOfType([r().node,r().string]),className:r().string,icon:r().oneOfType([r().bool,r().node]),closable:r().bool,isOpened:r().bool,additionalClickParents:r().instanceOf(Array)};const lo=ao;function co({text:e,limit:n,position:o}){return e.length>n?t().createElement(lo,{render:e,position:o},e.substring(0,n),"..."):e}co.propTypes={text:r().string,limit:r().number,position:r().string};const uo=co;function ho(n){const{value:o=0,totalNrOfPages:i,onChange:r}=n,[s,a]=(0,e.useState)(o),l=(0,e.useMemo)((()=>function(e,t){let n;const o=[];for(n=0;n<=e;n+=1)i=n,r=t,((s=e)<10||r<5&&i<5||r>s-5&&i>s-5||i>=r-2&&i<=r+2||[0,1,s-1,s].includes(i))&&(n>o.at(-1)&&o.push(`...-${n}`),o.push(n+1));var i,r,s;return o}(i,s)),[s,i]);function c(e){a(e),r&&r(e)}return i?t().createElement("ul",{className:"tyk-pagination"},s>0&&i>5&&t().createElement("li",null,t().createElement("button",{onClick:()=>c(s-1),type:"button"},"Previous")),l.map((e=>t().createElement("li",{key:e,className:s===e-1?"active":""},String(e).startsWith("...")?t().createElement("span",null,"..."):t().createElement("button",{onClick:()=>c(e-1),type:"button"},e)))),s5&&t().createElement("li",null,t().createElement("button",{onClick:()=>c(s+1),type:"button"},"Next"))):null}ho.propTypes={value:r().number,totalNrOfPages:r().number,onChange:r().func};const po=ho,go=(0,e.createContext)();function mo({column:n}){const{sortable:o}=n,[i,r]=(0,e.useState)((null==o?void 0:o.default)||"ASC"),{state:s,sendMessage:a}=(0,e.useContext)(go);return t().createElement("th",{key:n.id,onClick:o?()=>{a("sort",{column:n,sortOrder:i}),r("ASC"===i?"DESC":"ASC")}:null,className:s.maxHeight?"fixed-header":""},n.name,n.sortable&&t().createElement("span",{className:"header-sort"},t().createElement(g,{family:"tykon",type:"arrowsort"})))}mo.propTypes={column:r().instanceOf(Object)};var fo=Object.defineProperty,yo=Object.defineProperties,vo=Object.getOwnPropertyDescriptors,bo=Object.getOwnPropertySymbols,wo=Object.prototype.hasOwnProperty,xo=Object.prototype.propertyIsEnumerable,ko=(e,t,n)=>t in e?fo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Co=(e,t)=>{for(var n in t||(t={}))wo.call(t,n)&&ko(e,n,t[n]);if(bo)for(var n of bo(t))xo.call(t,n)&&ko(e,n,t[n]);return e},$o=(e,t)=>yo(e,vo(t));function So({allRowsSelected:n}){const{state:o,sendMessage:i}=(0,e.useContext)(go),{columns:r,selectable:s}=o,a=()=>{var e;const r=s.type;return t().createElement("th",{className:o.maxHeight?"fixed-header":""},(null==s?void 0:s.allowSelectAll)?t().createElement("div",{className:null==s?void 0:s.style},t().createElement(r,$o(Co({},s.values),{value:n,onChange:e=>{var t,n;const o="input"===(null==(t=null==e?void 0:e.target)?void 0:t.tagName.toLowerCase())&&"checkbox"===(null==(n=null==e?void 0:e.target)?void 0:n.type.toLowerCase());i("header.selectAll.change",o?e.target.checked:Boolean(e))}}),null==(e=s.values)?void 0:e.value)):s.name||"Select")};return t().createElement("thead",null,t().createElement("tr",null,"LEFT"===(null==s?void 0:s.position)&&a(),r.map((e=>t().createElement(mo,{key:e.id,column:e}))),"RIGHT"===(null==s?void 0:s.position)&&a()))}So.propTypes={allRowsSelected:r().bool};var Eo=Object.defineProperty,Oo=Object.defineProperties,To=Object.getOwnPropertyDescriptors,Ao=Object.getOwnPropertySymbols,_o=Object.prototype.hasOwnProperty,Lo=Object.prototype.propertyIsEnumerable,Mo=(e,t,n)=>t in e?Eo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ro=(e,t)=>{for(var n in t||(t={}))_o.call(t,n)&&Mo(e,n,t[n]);if(Ao)for(var n of Ao(t))Lo.call(t,n)&&Mo(e,n,t[n]);return e};class No extends e.Component{getCssClasses(){const{inline:e,disabled:t,readOnly:n,theme:o="",wrapperClassName:i=""}=this.props,r=[i];return r.push("tyk-checkbox"),e&&r.push("tyk-checkbox--inline"),o.trim()&&r.push(...o.split(" ").map((e=>`tyk-checkbox--theme-${e}`))),(t||n)&&r.push("tyk-checkbox--is-disabled"),r.join(" ")}displayError(){const{error:e}=this.props;return e?t().createElement("p",{className:"tyk-form-control__error-message"},e):null}displayNote(){const{note:e}=this.props;return e?t().createElement("p",{className:"tyk-form-control__help-block"},e):null}render(){const e=this.props,{input:n,value:o,label:i}=e,r=((e,t)=>{var n={};for(var o in e)_o.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ao)for(var o of Ao(e))t.indexOf(o)<0&&Lo.call(e,o)&&(n[o]=e[o]);return n})(e,["input","value","label"]);return t().createElement("div",{className:this.getCssClasses()},t().createElement("div",{className:"tyk-form-control__wrapper"},t().createElement("label",null,t().createElement("input",(s=Ro(Ro({checked:n?n.value:o},n),r),Oo(s,To({type:"checkbox"})))),i),this.displayNote(),this.displayError()));var s}}No.propTypes={disabled:r().bool,readOnly:r().bool,inline:r().bool,theme:r().string,error:r().oneOfType([r().string,r().bool]),note:r().string,input:r().instanceOf(Object),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),name:r().string,value:r().oneOfType([r().string,r().bool]),checked:r().oneOfType([r().string,r().bool]),onChange:r().func,wrapperClassName:r().string};const Io=No;var Po=Object.defineProperty,Do=Object.getOwnPropertySymbols,Fo=Object.prototype.hasOwnProperty,Bo=Object.prototype.propertyIsEnumerable,Wo=(e,t,n)=>t in e?Po(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ho=(e,t)=>{for(var n in t||(t={}))Fo.call(t,n)&&Wo(e,n,t[n]);if(Do)for(var n of Do(t))Bo.call(t,n)&&Wo(e,n,t[n]);return e};function jo({col:e,row:n}){var o,i,r,s,a;if(!n.values[e.id])return t().createElement("td",null);if("string"===e.type)return t().createElement("td",Ho({className:(null==(o=n.values[e.id].styling)?void 0:o.className)||null},null==(i=n.values[e.id])?void 0:i.events),null==(r=n.values[e.id])?void 0:r.value);const l=e.type;return t().createElement("td",Ho({className:(null==(s=n.values[e.id].styling)?void 0:s.className)||null},null==(a=n.values[e.id])?void 0:a.events),t().createElement(l,Ho({},n.values[e.id].props),n.values[e.id].children?n.values[e.id].children:null))}function zo({row:n,index:o}){var i,r;const{state:s,sendMessage:a}=(0,e.useContext)(go),{columns:l,selectable:c}=s,u=(0,e.useCallback)((()=>t().createElement("td",null,t().createElement(Io,{value:n.selected,onChange:e=>a("row.selected",{index:o,selected:e.target.checked})}))),[n.selected,o]);return t().createElement("tr",{onClick:null==(i=n.events)?void 0:i.onClick,className:null==(r=n.styling)?void 0:r.className},c&&"LEFT"===c.position&&u(),l.map((e=>t().createElement(jo,{key:e.id,col:e,row:n,index:o}))),c&&"RIGHT"===c.position&&u())}function Vo(){const{state:n}=(0,e.useContext)(go),{rows:o}=n;return t().createElement("tbody",null,o.map(((e,n)=>t().createElement(zo,{key:n,row:e,index:n}))))}jo.propTypes={col:r().instanceOf(Object),row:r().instanceOf(Object),index:r().number},zo.propTypes={row:r().instanceOf(Object),index:r().number};var Uo=Object.defineProperty,Go=Object.defineProperties,Ko=Object.getOwnPropertyDescriptors,qo=Object.getOwnPropertySymbols,Yo=Object.prototype.hasOwnProperty,Jo=Object.prototype.propertyIsEnumerable,Xo=(e,t,n)=>t in e?Uo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Qo=(e,t)=>{for(var n in t||(t={}))Yo.call(t,n)&&Xo(e,n,t[n]);if(qo)for(var n of qo(t))Jo.call(t,n)&&Xo(e,n,t[n]);return e},Zo=(e,t)=>Go(e,Ko(t));function ei({value:n,onChange:o,noDataMessage:i,loading:r,infiniteScrolling:s}){var a;const[l,c]=(0,e.useState)(null),[u,h]=(0,e.useState)("api"),d=(0,e.useRef)(null),p=(0,e.useCallback)(((e,t)=>{c((n=>Zo(Qo({},n),{sort:{order:t,col:e}})))}),[]),g=(0,e.useCallback)((e=>{c((t=>Zo(Qo({},t),{rows:t.rows.map((t=>Zo(Qo({},t),{selected:e})))})))}),[]),m=(0,e.useCallback)((({index:e,selected:t})=>{c((n=>Zo(Qo({},n),{rows:[...n.rows.slice(0,e),Zo(Qo({},n.rows[e]),{selected:t}),...n.rows.slice(e+1)]})))}),[]),f=(0,e.useCallback)((e=>{c((t=>Zo(Qo({},t),{pagination:Zo(Qo({},t.pagination),{current:e+1})})))}),[]),y={getState:()=>l,setState:e=>c(e)},v=(0,e.useCallback)(((e,t)=>{h(e),"sort"===e&&p(t.column.id,t.sortOrder),"header.selectAll.change"===e&&g(t),"row.selected"===e&&m(t),"pagination.change"===e&&f(t)}),[p,g,m,f]),b=(0,e.useMemo)((()=>({state:l,sendMessage:v})),[l,v]);if((0,e.useEffect)((()=>c(n)),[n]),(0,e.useEffect)((()=>{o&&o(u,l,y),h("api")}),[l]),!l)return t().createElement(ye,{position:"absolute"});if(l.rows<=0)return t().createElement(be,{theme:"info"},i||"No Data Available");const w=()=>t().createElement("table",{className:"tyk-table",ref:d},t().createElement(So,{allRowsSelected:l.rows.every((({selected:e})=>e))}),t().createElement(Vo,null));return t().createElement(go.Provider,{value:b},t().createElement("div",{className:`scrollable ${(null==(a=l.styling)?void 0:a.className)||""}`,style:{height:l.maxHeight?l.maxHeight:"auto",position:"relative"}},r&&t().createElement(ye,{position:"absolute",withbackground:!0}),s&&l.pagination?t().createElement(At,{refChild:d,hasMore:l.pagination.totalPages>l.pagination.current,loadMore:e=>v("pagination.change",e),pageNumber:l.pagination.current-1,initialLoad:!1},w()):w()),l.pagination&&!s&&t().createElement("div",{className:"new-table-pagination"},t().createElement(po,{value:l.pagination.current-1,nrItemsOnPage:l.pagination.perPage-1,totalNrOfPages:l.pagination.totalPages-1,onChange:e=>v("pagination.change",e)})))}ei.propTypes={value:r().shape({columns:r().arrayOf(r().shape({id:r().string.isRequired,name:r().string,type:r().oneOfType([r().string,r().element,r().func]),sortable:r().oneOfType([r().bool,r().shape({default:r().string})])})),rows:r().arrayOf(r().shape({})),selectable:r().shape({}),pagination:r().shape({}),maxHeight:r().string,styling:r().shape({className:r().string})}).isRequired,onChange:r().func,noDataMessage:r().string,loading:r().bool,infiniteScrolling:r().bool},ei.defaultProps={loading:!1,infiniteScrolling:!1,noDataMessage:"No Data Available",onChange:null};const ti=ei;var ni=Object.defineProperty,oi=Object.getOwnPropertySymbols,ii=Object.prototype.hasOwnProperty,ri=Object.prototype.propertyIsEnumerable,si=(e,t,n)=>t in e?ni(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function ai(e){var n=e,{children:o,align:i,className:r,offset:s,size:a}=n,l=((e,t)=>{var n={};for(var o in e)ii.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&oi)for(var o of oi(e))t.indexOf(o)<0&&ri.call(e,o)&&(n[o]=e[o]);return n})(n,["children","align","className","offset","size"]);const c=["tyk-col",r,i&&`tyk-col--align-${i}`,...a.split(" ").map((e=>`tyk-col--${e}`)),...(s?s.split(" "):[]).map((e=>`tyk-col--offset-${e}`))].filter(Boolean).join(" ");return t().createElement("div",((e,t)=>{for(var n in t||(t={}))ii.call(t,n)&&si(e,n,t[n]);if(oi)for(var n of oi(t))ri.call(t,n)&&si(e,n,t[n]);return e})({className:c},l),o)}ai.propTypes={align:r().string,className:r().string,size:r().string.isRequired,offset:r().string,children:r().oneOfType([r().element,r().string,r().object,r().node])};const li=ai;var ci=Object.defineProperty,ui=Object.defineProperties,hi=Object.getOwnPropertyDescriptors,di=Object.getOwnPropertySymbols,pi=Object.prototype.hasOwnProperty,gi=Object.prototype.propertyIsEnumerable,mi=(e,t,n)=>t in e?ci(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function fi(e){var n=e,{className:o,nogutters:i,children:r}=n,s=((e,t)=>{var n={};for(var o in e)pi.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&di)for(var o of di(e))t.indexOf(o)<0&&gi.call(e,o)&&(n[o]=e[o]);return n})(n,["className","nogutters","children"]);const a=["tyk-row",o,i&&"no-gutters",i&&"tyk-row--gutterless"].filter(Boolean).join(" ");return t().createElement("div",(l=((e,t)=>{for(var n in t||(t={}))pi.call(t,n)&&mi(e,n,t[n]);if(di)for(var n of di(t))gi.call(t,n)&&mi(e,n,t[n]);return e})({},s),ui(l,hi({className:a}))),r);var l}fi.propTypes={children:r().oneOfType([r().element,r().node]),className:r().string,nogutters:r().bool};const yi=fi,vi=(0,e.createContext)();function bi(n){const{customdropdownitem:o,children:i,eventKey:r,href:s,target:a,title:l,onClick:c}=n,u=(0,e.useCallback)(((e,t)=>{e.onSelectItem(r,t),c&&c(r)}),[]);return t().createElement(vi.Consumer,null,(c=>t().createElement("li",{onClick:()=>u(c,n),onKeyUp:()=>{}},o?(0,e.cloneElement)(o,{}):t().createElement("a",{href:s,target:a},r&&c.selectedItem===r&&c.showCheckmark?t().createElement(g,{type:"check"}):null,t().createElement("span",null,l||i)))))}bi.propTypes={children:r().oneOfType([r().element,r().node,r().string]),customdropdownitem:r().oneOfType([r().arrayOf(r().node),r().node,r().element]),eventKey:r().string,href:r().string,target:r().string,onClick:r().func,title:r().string};const wi=bi;var xi=Object.defineProperty,ki=Object.getOwnPropertySymbols,Ci=Object.prototype.hasOwnProperty,$i=Object.prototype.propertyIsEnumerable,Si=(e,t,n)=>t in e?xi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Ei extends e.Component{static isElemInRightView(e,t){const n=window.innerWidth;return e.getBoundingClientRect().left+t<=n}static isElemInBottomView(e,t){const n=window.innerHeight,o=e.getBoundingClientRect(),i=e.clientHeight;return o.top+i+t<=n}constructor(t){super(t);const{selectedItem:n,open:o}=this.props;this.state={opened:o,selectedItem:n||null},this.dropdownRef=(0,e.createRef)(),this.dropdownListRef=(0,e.createRef)(),this.dropdownButtonRef=(0,e.createRef)(),this.onSelectItem=this.onSelectItem.bind(this),this.toggleDropdown=this.toggleDropdown.bind(this),this.handleClickOutside=this.handleClickOutside.bind(this)}componentDidMount(){document.addEventListener("mousedown",this.handleClickOutside),this.dropdownListRef.current&&this.getStyles()}componentDidUpdate(e){const{open:t}=this.props,{opened:n}=this.state;this.dropdownListRef.current&&this.getStyles(),e.open||!0!==t||n||this.toggleDropdown(),e.open&&!1===t&&n&&this.closeDropdown()}componentWillUnmount(){document.removeEventListener("mousedown",this.handleClickOutside)}handleClickOutside(e){this.dropdownListRef.current&&!this.dropdownListRef.current.contains(e.target)&&this.dropdownRef.current&&!this.dropdownRef.current.contains(e.target)&&this.closeDropdown()}onSelectItem(e,t){const{closeOnSelect:n,onSelect:o}=this.props,i={selectedItem:e,selectedItemProps:t};n&&(i.opened=!1),this.setState(i),o&&"function"==typeof o&&o(e)}getStyles(){const{display:e,position:t,offset:n}=this.props,o=this.dropdownListRef.current;if(n)return o.style.top=`${n.top}`,void(o.style.left=`${n.left}`);const i=Math.max(document.documentElement.scrollTop,document.body.scrollTop,window.scrollY),r=this.dropdownRef.current,s=r.clientHeight,a=o?o.clientHeight:0,l=o?o.clientWidth:0,c=r.getBoundingClientRect(),{left:u,top:h}=c;let d=0,p=u;d=Ei.isElemInBottomView(r,a)?h+i+s:h+i-a-5,Ei.isElemInRightView(r,l)||(p=u+r.clientWidth-l),"relative"!==t&&(o.style.top=`${d}px`,"block"!==e&&(o.style.left=`${p}px`)),"block"!==e&&(o.style.minWidth=`${this.dropdownButtonRef.current.clientWidth}px`)}getWrapperCssClasses(){const{btnGroup:e,btnGroupSize:t,className:n,btnTheme:o,wrapperClassName:i=""}=this.props;let r=[i,"tyk-dropdown"];return r.push(`theme-${o||"default"}`),n&&(r=r.concat(n.split(" "))),e&&(r.push("tyk-button-group"),r.push(t?`tyk-button-group--${t}`:"tyk-button-group--md")),r.join(" ")}getCssClasses(){const{opened:e}=this.state,{hasCustomContent:t,display:n,listclassnames:o,position:i,maxHeight:r}=this.props;let s=["tyk-dropdown-menu","tyk-dropdown"];return r&&s.push("tyk-dropdown--scrollable"),e&&s.push("opened"),o&&(s=s.concat(o.split(" "))),n&&s.push("tyk-dropdown--block"),t&&s.push("tyk-dropdown--custom"),"relative"===i&&s.push("tyk-dropdown--relative"),s.join(" ")}getBtnTitle(){const{btnTitle:e,stopButtonTextChange:t}=this.props,{selectedItemProps:n}=this.state;return!t&&(null==n?void 0:n.title)?n.title:e}closeDropdown(){const{onClose:e}=this.props;this.setState({opened:!1},(()=>{e&&e()}))}toggleDropdown(){const{opened:e}=this.state;e?this.closeDropdown():this.setState({opened:!0})}render(){const{appendTo:e,btnClassName:n,btnSize:o,customBtnTitle:i,hasCustomContent:r,btnTheme:s,children:a,label:l,showDropdownIcon:c,showTriggerButton:u,showCheckmark:h,disabled:d=!1,maxHeight:p}=this.props,{selectedItem:g,opened:m}=this.state,f=r?"div":"ul";return t().createElement("div",{className:this.getWrapperCssClasses(),ref:this.dropdownRef},l?t().createElement("label",{className:"font-family-medium"},l):null,u?t().createElement(U,{className:`tyk-dropdown__trigger ${m?"tyk-dropdown__trigger--opened ":" "} ${n}`,theme:s||"default",onClick:this.toggleDropdown,iconType:c?"chevron-down":null,iconPosition:"right",size:o||"md",type:"button",disabled:d,ref:this.dropdownButtonRef},i||this.getBtnTitle()):null,m?dt().createPortal(t().createElement(vi.Provider,{value:{onSelectItem:this.onSelectItem,selectedItem:g,showCheckmark:h}},m?t().createElement(f,((e,t)=>{for(var n in t||(t={}))Ci.call(t,n)&&Si(e,n,t[n]);if(ki)for(var n of ki(t))$i.call(t,n)&&Si(e,n,t[n]);return e})({className:this.getCssClasses(),ref:this.dropdownListRef},p&&{style:{maxHeight:p}}),"function"==typeof a?a({closeDropdown:this.closeDropdown.bind(this)}):a):null),document.querySelector(e||"body")):null)}}Ei.propTypes={appendTo:r().string,children:r().oneOfType([r().element,r().node,r().string,r().func]),closeOnSelect:r().bool,btnClassName:r().string,btnSize:r().string,btnGroupSize:r().string,btnTheme:r().string,btnTitle:r().oneOfType([r().node,r().element,r().string]),customBtnTitle:r().oneOfType([r().node,r().element,r().string]),btnGroup:r().bool,className:r().string,display:r().string,disabled:r().bool,hasCustomContent:r().bool,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),listclassnames:r().string,onClose:r().func,onSelect:r().func,open:r().bool,offset:r().instanceOf(Object),position:r().string,selectedItem:r().string,showDropdownIcon:r().bool,stopButtonTextChange:r().bool,showTriggerButton:r().bool,showCheckmark:r().bool,maxHeight:r().string,wrapperClassName:r().string},Ei.defaultProps={closeOnSelect:!1,showDropdownIcon:!0,showTriggerButton:!0,showCheckmark:!0,open:!1},Ei.Item=wi;const Oi=Ei;var Ti=Object.defineProperty,Ai=Object.getOwnPropertySymbols,_i=Object.prototype.hasOwnProperty,Li=Object.prototype.propertyIsEnumerable,Mi=(e,t,n)=>t in e?Ti(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Ri({title:e,theme:n="primary",splitTrigger:o,toggle:i,onTriggerClick:r,value:s},a){return o?t().createElement(K,{ref:a},t().createElement(U,((e,t)=>{for(var n in t||(t={}))_i.call(t,n)&&Mi(e,n,t[n]);if(Ai)for(var n of Ai(t))Li.call(t,n)&&Mi(e,n,t[n]);return e})({theme:n},r&&{onClick:()=>r(s)}),e),t().createElement(U,{className:"dropdown__trigger",iconType:"arrowdown",iconFamily:"tykon",iconPosition:"right",theme:n,onClick:i,iconOnly:!0})):t().createElement(U,{className:"dropdown__trigger",iconType:"arrowdown",iconFamily:"tykon",iconPosition:"right",theme:n,ref:a,onClick:i},e)}Ri.propTypes={title:r().string,theme:r().string,splitTrigger:r().bool,toggle:r().func,dropdownRef:r().shape({current:r().instanceOf(Element)}).isRequired,onTriggerClick:r().func,value:r().oneOfType([r().string,r().number])};const Ni=(0,e.forwardRef)(Ri);var Ii=Object.defineProperty,Pi=Object.getOwnPropertySymbols,Di=Object.prototype.hasOwnProperty,Fi=Object.prototype.propertyIsEnumerable,Bi=(e,t,n)=>t in e?Ii(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Wi=(e,t)=>{for(var n in t||(t={}))Di.call(t,n)&&Bi(e,n,t[n]);if(Pi)for(var n of Pi(t))Fi.call(t,n)&&Bi(e,n,t[n]);return e};function Hi({children:e,element:n,maxWidth:o},i){return t().createElement(Pt,{element:n,ref:i,className:"dropdown__menu",position:"bottom",alignment:"auto",offset:5,arrow:!0},t().createElement(jt,{style:Wi({},o&&{maxWidth:o}),theme:"primary"},e))}Hi.propTypes={element:r().shape({current:r().instanceOf(Element)}),children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),maxWidth:r().string};const ji=(0,e.forwardRef)(Hi),zi=(0,e.createContext)();var Vi=Object.defineProperty,Ui=Object.getOwnPropertySymbols,Gi=Object.prototype.hasOwnProperty,Ki=Object.prototype.propertyIsEnumerable,qi=(e,t,n)=>t in e?Vi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Yi=(e,t)=>{for(var n in t||(t={}))Gi.call(t,n)&&qi(e,n,t[n]);if(Ui)for(var n of Ui(t))Ki.call(t,n)&&qi(e,n,t[n]);return e};function Ji({children:n,value:o}){const{onChange:i,value:r}=(0,e.useContext)(zi);return t().createElement(jt.Item,Yi({},o===r&&{selected:!0}),t().createElement("a",Yi({},i&&{onClick:()=>i(o)}),n))}Ji.propTypes={children:r().node,value:r().any};const Xi=Ji;function Qi({children:n,title:o,theme:i,splitTrigger:r,onChange:s,value:a,setSelectedValueAsTitle:l,maxWidth:c,onTriggerClick:u}){const{isOpen:h,toggle:d,dropdownRef:p,dropdownListRef:g}=(({splitTrigger:t})=>{const[n,o]=(0,e.useState)(!1),i=(0,e.useRef)(null),r=(0,e.useRef)(null),s=(0,e.useCallback)((e=>{const s=t?i.current.querySelector(".dropdown__trigger"):i.current;!n||s.contains(e.target)||r.current.contains(e.target)||o(!1)}),[n]);return(0,e.useEffect)((()=>(document.addEventListener("mousedown",s),()=>{document.removeEventListener("mousedown",s)})),[s]),{isOpen:n,toggle:()=>o(!n),dropdownRef:i,dropdownListRef:r}})({splitTrigger:r}),m=(0,e.useMemo)((()=>({onChange:s,value:a})),[s,a]);return t().createElement(zi.Provider,{value:m},t().createElement(Ni,{title:l?a:o,onTriggerClick:u,theme:i,splitTrigger:r,toggle:d,ref:p,value:a}),h&&t().createElement(ji,{element:p,ref:g,maxWidth:c},n))}Qi.propTypes={title:r().string,theme:r().string,children:r().node,splitTrigger:r().bool,onChange:r().func,value:r().oneOfType([r().string,r().number]),setSelectedValueAsTitle:r().bool,maxWidth:r().string,onTriggerClick:r().func},Qi.Item=Xi;const Zi=Qi;var er=n(239),tr=n.n(er);const nr=require("react-ace");var or=n.n(nr);n(395),n(576),n(7),n(549),n(252),n(202),n(711),n(604),n(134),n(203);const ir=n.p+"ee385296b124aae4e5d9.js";var rr=Object.defineProperty,sr=Object.defineProperties,ar=Object.getOwnPropertyDescriptors,lr=Object.getOwnPropertySymbols,cr=Object.prototype.hasOwnProperty,ur=Object.prototype.propertyIsEnumerable,hr=(e,t,n)=>t in e?rr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,dr=(e,t)=>{for(var n in t||(t={}))cr.call(t,n)&&hr(e,n,t[n]);if(lr)for(var n of lr(t))ur.call(t,n)&&hr(e,n,t[n]);return e};function pr(n){const{disabled:o,readOnly:i,disableValidation:r,id:s,error:a,label:l,labelwidth:c,note:u,onBlur:h,onChange:d,theme:p,value:g,setOptions:m,wrapperClassName:f}=n,y=["tyk-form-group",f,...p?p.split(" ").map((e=>`tyk-form-group--${e}`)):[],c&&"tyk-form-group--label-has-width",a&&"has-error"].filter(Boolean).join(" "),v=dr(dr({},m),r&&{useWorker:!1}),b=(0,e.useCallback)((()=>a&&"true"!==a&&"false"!==a?t().createElement("p",{className:"tyk-form-control__error-message"},a):null),[a]),w=(0,e.useCallback)((()=>c?{flexBasis:c}:{}),[c]),x=(0,e.useCallback)((()=>c?{flexBasis:`calc(100% - ${c} - 20px)`}:{}),[c]),k=(0,e.useCallback)((e=>{d&&d(e)}),[d]),C=(0,e.useCallback)((()=>{h&&h(g)}),[h,g]);return t().createElement("div",{className:y},l?t().createElement("label",{htmlFor:s,style:w()},l):null,t().createElement("div",{className:"tyk-form-control__wrapper",style:x()},t().createElement(or(),($=dr({className:"tyk-form-control"},n),sr($,ar({onChange:k,onBlur:C,theme:"github",editorProps:{$blockScrolling:!0},readOnly:i||o,onLoad:e=>{e.container.style.resize="both",document.addEventListener("mouseup",(()=>e.resize()))},setOptions:v})))),u?t().createElement("p",{className:"tyk-form-control__help-block"},u):null,b()));var $}tr().config.setModuleUrl("ace/mode/json_worker",ir),pr.propTypes={disabled:r().bool,readOnly:r().bool,disableValidation:r().bool,id:r().string,error:r().oneOfType([r().string,r().bool]),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,mode:r().string,name:r().string,note:r().string,onBlur:r().func,onChange:r().func,theme:r().string,value:r().string,setOptions:r().instanceOf(Object),wrapperClassName:r().string};const gr=pr;var mr=Object.defineProperty,fr=Object.defineProperties,yr=Object.getOwnPropertyDescriptors,vr=Object.getOwnPropertySymbols,br=Object.prototype.hasOwnProperty,wr=Object.prototype.propertyIsEnumerable,xr=(e,t,n)=>t in e?mr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,kr=(e,t)=>{for(var n in t||(t={}))br.call(t,n)&&xr(e,n,t[n]);if(vr)for(var n of vr(t))wr.call(t,n)&&xr(e,n,t[n]);return e};const Cr=(e,t,n)=>n||(e||t?[]:null);class $r extends e.Component{static closeList(){return{cursor:-1,opened:!1}}static openList(){return{opened:!0}}static filterByName(e,t){return e.name.toLowerCase().indexOf(t)>-1}constructor(t){super(t);const{multiple:n,tags:o,value:i}=t;this.state={cursor:-1,opened:!1,width:50,initialValue:i,stateSelectedValues:Cr(n,o,i),searchText:"",tags:o},this.comboboxRef=(0,e.createRef)(),this.valuesListRef=(0,e.createRef)(),this.inputRef=(0,e.createRef)(),this.textRef=(0,e.createRef)(),this.focusInput=this.focusInput.bind(this),this.onKeyUp=this.onKeyUp.bind(this),$r.openList=$r.openList.bind(this),this.handleClickOutside=this.handleClickOutside.bind(this),this.handleItemsNavigation=this.handleItemsNavigation.bind(this),this.handleComboboxDropdownClick=this.handleComboboxDropdownClick.bind(this),this.handleListItemClick=this.handleListItemClick.bind(this),this.handlePillRemoveClick=this.handlePillRemoveClick.bind(this),this.manageSelectedTags=this.manageSelectedTags.bind(this)}componentDidMount(){const{tags:e}=this.props;e&&this.setInputWidth(),this.bindEvents()}componentWillUnmount(){this.unBindEvents()}static getDerivedStateFromProps(e,t){return JSON.stringify(e.value)!==JSON.stringify(t.initialValue)||e.tags!==t.tags?{initialValue:e.value,stateSelectedValues:Cr(e.multiple,e.tags,e.value),tags:e.tags}:null}handleItemsNavigation(e){const{tags:t}=this.props;if(-1===["ArrowDown","ArrowUp"].indexOf(e.key))return;const{cursor:n}=this.state,o=this.filterValues();let i;if(e.preventDefault(),"ArrowDown"===e.key&&(-1===n||n===o.length-1?i=0:n0?n-1:o.length-1),this.valuesListRef.current&&i>4){const e=38*(i-4);this.valuesListRef.current.scrollTop=t?e:60+e}else this.valuesListRef.current&&(this.valuesListRef.current.scrollTop=0);this.setState((e=>{return t=kr({},e),fr(t,yr({opened:!0,cursor:i}));var t}))}handleListItemClick(e){if(this.props.values[e].disabled)return;const{multiple:t,tags:n}=this.props,o=n?"manageSelectedTags":"manageSelectedValues",i=kr(kr({},this.state),this[o](e));this.setState((e=>(t||n||(i.opened=!1),kr(kr({},e),i))))}handlePillRemoveClick(e){const{disabled:t}=this.props;if(t)return;const n=this.removeSelectedValue(e);this.setState((e=>kr(kr({},e),n)))}handleClickOutside(e){this.valuesListRef.current&&!this.valuesListRef.current.contains(e.target)&&this.comboboxRef.current&&!this.comboboxRef.current.contains(e.target)&&this.setState((e=>kr(kr({},e),$r.closeList())))}handleComboboxDropdownClick(){const{disabled:e}=this.props;e||this.setState((e=>kr(kr({},e),$r.openList())))}onKeyUp(e){const{tags:t,allowCustomValues:n}=this.props,{cursor:o,opened:i}=this.state,r=this.filterValues();let s=this.getSearchText();if(t&&"Escape"!==e.key&&(s=kr(kr({},s),this.setInputWidth())),"Enter"===e.key){const e=t?"manageSelectedTags":"manageSelectedValues";s=kr(kr({},s),this[e](o))}n&&" "!==e.key&&t&&(s=kr(kr({},s),this.manageSelectedTags())),!i&&this.inputRef.current.value&&(null==r?void 0:r.length)&&"Escape"!==e.key&&(s=kr(kr({},s),$r.openList())),"Escape"===e.key&&i&&(s=kr(kr({},s),$r.closeList())),i&&r&&!r.length&&(s=kr(kr({},s),$r.closeList())),this.setState((e=>kr(kr({},e),s)))}getLabelStyles(){const{labelwidth:e}=this.props,t={};return e&&(t.flexBasis=e),t}getNonLabelWidth(){const{labelwidth:e}=this.props,t={};return e&&(t.flexBasis=`calc(100% - ${e} - 20px)`),t}setInputWidth(){return{width:50+this.textRef.current.offsetWidth}}getSelectedIndex(e){const{stateSelectedValues:t}=this.state;let n=-1;return Array.isArray(t)?t.forEach(((t,o)=>{t.id===e.id&&(n=o)})):t&&t.id===e.id&&(n=0),n}getSearchText(){return{searchText:this.inputRef.current.value}}getListItemCssClasses(e,t){const n=[],{cursor:o}=this.state;return o===t&&n.push("active"),e.disabled&&n.push("disabled"),n.join(" ")}getComboboxListCssClass(){const{opened:e}=this.state,{tags:t,theme:n}=this.props,o=n?n.split(" "):[],i=["tyk-combobox__list"];return e&&i.push("tyk-combobox__list--opened"),t&&i.push("tyk-combobox__list--has-tags"),o.length&&o.forEach((e=>{i.push(`tyk-form-group--${e}`)})),i.join(" ")}getCssClasses(){const{error:e,disabled:t,theme:n,labelwidth:o}=this.props,i=["tyk-form-group","tyk-combobox"],r=n?n.split(" "):[];return e&&i.push("has-error"),o&&i.push("tyk-form-group--label-has-width"),r.length&&r.forEach((e=>{i.push(`tyk-form-group--${e}`)})),t&&i.push("disabled"),i.join(" ")}getInputError(){const{error:e}=this.props;return e&&"true"!==e&&"false"!==e?t().createElement("p",{className:"tyk-form-control__error-message"},e):null}getStyles(){const{scrollTop:e}=document.documentElement,t=this.comboboxRef.current,n=t.offsetHeight,o=t.offsetWidth,i=t.getBoundingClientRect(),{left:r}=i;let s=0;return s=i.top+e+n,{top:s-1+"px",left:`${r}px`,width:`${o}px`}}getComboboxDisplayData(){const{stateSelectedValues:e}=this.state,{multiple:t,placeholder:n,values:o}=this.props;return e?e&&Array.isArray(e)&&!e.length?n:!e||Array.isArray(e)||e.id?Array.isArray(e)&&t?e.reduce(((t,n,o)=>t+n.name+(o!==e.length-1?", ":"")),""):!(null==o?void 0:o.length)||Array.isArray(e)||e.name?e.name:o.filter((t=>t.id===e.id))[0].name:n:n}manageSelectedTags(e){const{max:t,allowCustomValues:n}=this.props,{stateSelectedValues:o}=this.state,i=this.filterValues(),r={id:this.inputRef.current.value,name:this.inputRef.current.value};if(!1===n&&-1===e)return null;const s=i[e]||r,a=this.getSelectedIndex(s);let l={};if(this.inputRef.current.value="",a>-1&&this.isInInitialValues(s))l=this.removeSelectedValue(a);else if(-1===a){if(t&&o.length>=t)return l;l=this.addSelectedValue(s)}return l}manageSelectedValues(e){const{stateSelectedValues:t}=this.state,{multiple:n,onChange:o,max:i}=this.props,r=this.filterValues(),s=r[e];let a;const l=this.getSelectedIndex(s);if(s&&n)if(l>-1)a=this.removeSelectedValue(l);else{if(i&&t.length>=i)return a;a=this.addSelectedValue(r[e])}else a={stateSelectedValues:-1===l?s:{id:null}},null==o||o(-1===l?s:null);return a}removeSelectedValue(e){const{stateSelectedValues:t}=this.state,{onChange:n}=this.props,o=JSON.parse(JSON.stringify(t));return o.splice(e,1),n&&"function"==typeof n&&n(o.length?o:null),{stateSelectedValues:o,searchText:""}}addSelectedValue(e){const{stateSelectedValues:t}=this.state,{onChange:n}=this.props,o=JSON.parse(JSON.stringify(t));return o.push(e),n&&"function"==typeof n&&n(o.length?o:null),{stateSelectedValues:o,searchText:""}}isInInitialValues(e){const{values:t}=this.props;let n=!1;return t.forEach((t=>{e.id===t.id&&(n=!0)})),n}filterValues(){const{values:e,searchItem:t}=this.props;return this.inputRef.current?e.filter((e=>t?t(e,this.inputRef.current.value.toLowerCase()):$r.filterByName(e,this.inputRef.current.value.toLowerCase()))):e}bindEvents(){document.addEventListener("mousedown",this.handleClickOutside)}unBindEvents(){document.removeEventListener("mousedown",this.handleClickOutside)}reset(){const{multiple:e,tags:t,value:n}=this.props;this.setState({stateSelectedValues:Cr(e,t,n)})}focusInput(){this.inputRef.current&&this.inputRef.current.focus()}renderInput(e){const{disabled:n,tags:o,max:i,placeholder:r}=this.props,{width:s,searchText:a,stateSelectedValues:l}=this.state;return t().createElement("ul",{className:"tyk-form-control"+(o?" tyk-form-control--with-tags":""),onClick:this.focusInput,onKeyDown:()=>{},ref:this.comboboxRef},o?t().createElement(t().Fragment,null,(l||[]).map(((e,n)=>t().createElement("li",{className:"pill",key:e.id},t().createElement("button",{type:"button",onClick:this.handlePillRemoveClick.bind(this,n),"aria-label":"remove"},t().createElement(g,{type:"times"})),t().createElement("span",null,e.name)))),t().createElement("li",{className:"tyk-combobox__search-box",style:{width:(null==l?void 0:l.length)?"auto":"100%"}},(void 0===i||(null==l?void 0:l.length){"Enter"===e.key&&e.preventDefault(),this.handleItemsNavigation(e)},onKeyUp:this.onKeyUp,placeholder:(null==l?void 0:l.length)?"":r,ref:this.inputRef,style:{width:(null==l?void 0:l.length)?`${s}px`:"100%"}}),t().createElement("span",{ref:this.textRef,style:{visbility:"hidden",position:"absolute",top:"-9999px"}},a)),e.length>0&&t().createElement(U,{className:"tyk-combobox--with-tags__button-down",iconType:"arrow-down",iconOnly:!0,onClick:this.handleComboboxDropdownClick}))):t().createElement("li",{className:"tyk-combobox__placeholder",onClick:this.handleComboboxDropdownClick,onKeyDown:()=>{}},this.getComboboxDisplayData(),t().createElement(g,{family:"tykon",type:"arrowdown"})))}renderDropdown(e){const{tags:n}=this.props,{opened:o}=this.state;return t().createElement("ul",{className:this.getComboboxListCssClass(),ref:this.valuesListRef,style:this.getStyles()},n?null:t().createElement("li",{className:"combobox-search__container"},t().createElement("input",{autoFocus:o,className:"tyk-form-control",onKeyUp:this.onKeyUp,onKeyDown:this.handleItemsNavigation,key:"searchInput",ref:this.inputRef})),e.map(((e,n)=>t().createElement("li",{className:this.getListItemCssClasses(e,n),onClick:this.handleListItemClick.bind(this,n),onKeyDown:()=>{},key:e.id},this.getSelectedIndex(e)>-1?t().createElement(g,{type:"check"}):null,t().createElement("span",null," ",e.name)))))}render(){const{CustomListComponent:e,id:n,label:o,note:i}=this.props,{opened:r}=this.state,s=this.filterValues();return t().createElement(t().Fragment,null,t().createElement("div",{className:this.getCssClasses()},o?t().createElement("label",{htmlFor:n,style:this.getLabelStyles()},o):null,t().createElement("div",{className:"tyk-form-control__wrapper",style:this.getNonLabelWidth()},this.renderInput(s),i?t().createElement("p",{className:"tyk-form-control__help-block"},i):null,this.getInputError())),e?t().createElement(e,{ref:this.valuesListRef,className:this.getComboboxListCssClass(),getListItemCssClasses:this.getListItemCssClasses.bind(this),getSelectedIndex:this.getSelectedIndex.bind(this),filteredValues:s,handleListItemClick:this.handleListItemClick.bind(this)}):r&&s.length?dt().createPortal(this.renderDropdown(s),document.querySelector("body")):null)}}$r.propTypes={allowCustomValues:r().bool,CustomListComponent:r().elementType,searchItem:r().func,disabled:r().bool,error:r().string,id:r().string,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,multiple:r().bool,max:r().number,note:r().oneOfType([r().node,r().element,r().string]),onChange:r().func,placeholder:r().string,tags:r().bool,theme:r().string,value:r().oneOfType([r().string,r().instanceOf(Object),r().instanceOf(Array)]),values:r().instanceOf(Array)},$r.defaultProps={allowCustomValues:!0};const Sr=$r;function Er(n){const{value:o,max:i,tags:r,tagSeparators:s,addTagOnBlur:a,placeholder:l,disabled:c,renderValue:u,valueOverflow:h,focus:d,onMessage:p,readOnly:m}=n,f=(0,e.useRef)(null),y=(0,e.useRef)(null),[v,b]=(0,e.useState)(""),[w,x]=(0,e.useState)("70px");function k(e){if(s.some((t=>e.slice(-1)===t)))return;const t=y.current;t.innerHTML=e,x(`${Math.max(t.clientWidth,60)+10}px`),b(e),p("tag.input.change",e)}function C(){p("text-value.click")}function $(e,n=!1){if(m)return e||"-";const o=["tyk-combobox2__text-value",`overflow-${h}`,n&&"is-placeholder"].filter(Boolean).join(" ");return t().createElement("span",{className:o,title:"single"===h?e:void 0,role:"none",tabIndex:c?"-1":"0",onClick:C,onKeyDown:C},e)}function S(e){return u(e,{tags:r,tagSeparators:s,placeholder:l,disabled:c,renderValue:u,sendMessage:p})}return(0,e.useEffect)((()=>{d&&f.current&&f.current.focus()}),[d]),m?t().createElement("div",{className:"tyk-form-control--readonly"},$(o.map((e=>e.name)).join(", "))):r?t().createElement(t().Fragment,null,o.map((function(e){return u?S(e):t().createElement(mn,{key:e.id,theme:"combobox"},t().createElement("button",{type:"button",onClick:t=>{t.stopPropagation(),p("tag.remove",e.id)},"aria-label":"remove"},t().createElement(g,{type:"times"})),t().createElement("span",{title:e.name},e.name))})),o.lengthk(e.target.value),onKeyDown:e=>{"Enter"===e.key&&e.preventDefault(),function(e,t){if(r){if(""!==t||"Backspace"!==e||!o.length)return"Enter"===e?(p("tag.input.enter",t),void k("")):void("ArrowUp"!==e?"ArrowDown"!==e?"Escape"!==e?s.includes(e)&&(p("tag.add",t),k("")):p("tag.input.escape"):p("tag.input.arrowDown"):p("tag.input.arrowUp"));p("tag.remove",o[o.length-1].id)}}(e.key,e.target.value)},onFocus:()=>p("tag.input.focus"),onBlur:e=>{p("tag.input.blur",e.target.value),a&&k("")}}),t().createElement("span",{ref:y,style:{visbility:"hidden",position:"absolute",top:"-9999px"}}))):u?0===o.length?$(l,!0):o.map(S):0===o.length?$(l,!0):$(o.map((e=>e.name)).join(", "))}Er.propTypes={value:r().instanceOf(Array),max:r().number,tags:r().instanceOf(Array),tagSeparators:r().instanceOf(Array),addTagOnBlur:r().bool,placeholder:r().string,disabled:r().bool,renderValue:r().func,valueOverflow:r().string,focus:r().bool,onMessage:r().func,readOnly:r().bool};const Or=Er;function Tr(n){const{listRef:o,tags:i,values:r,searchValue:s,activeItem:a,onMessage:l,renderListItem:c,selectAll:u,showSearch:h}=n;return(0,e.useEffect)((()=>{if(!o.current)return;const e=o.current.querySelector(".active");e&&e.scrollIntoView({block:"end"})}),[a]),t().createElement(t().Fragment,null,!i&&h&&t().createElement("div",{className:"tyk-combobox2__combobox-search"},t().createElement("input",{autoFocus:!0,className:"tyk-form-control",value:s,onChange:e=>l("search.change",e.target.value),onKeyDown:e=>{"Escape"===e.key&&l("search.escape"),"ArrowUp"===e.key&&l("search.arrowUp"),"ArrowDown"===e.key&&l("search.arrowDown"),"Enter"===e.key&&l("search.enter")}})),r.length>0&&t().createElement("ul",{ref:o,className:"tyk-combobox2__combobox-list"},Boolean(u)&&function(){var e,n,o;const i=r.every((e=>e.selected)),s=r.every((e=>!e.selected)),a=null!=(e=null==u?void 0:u.label)?e:"Select All",c=null!=(n=null==u?void 0:u.mode)?n:"select",h=null!=(o=null==u?void 0:u.show)?o:"always",d=null==u?void 0:u.render;return"always"!==h&&("select"===c?i:s)?null:d?d({label:a,mode:c,show:h,isAllSelected:i,isNoneSelected:s},l):t().createElement("li",{onClick:()=>l("value.select-all","select"===c?!i:s),onKeyDown:()=>{}},("select"===c?i:s)&&t().createElement(g,{type:"check"}),a)}(),r.map((function(e){return c?c(e,{tags:i,searchValue:s,sendMessage:l,activeItem:a}):t().createElement("li",{key:e.id,title:e.name,className:[e.disabled&&"disabled",a&&e.id===a.id&&"active"].filter(Boolean).join(" "),onClick:()=>!e.disabled&&l("value.select",{item:e}),onKeyDown:()=>{}},e.selected&&t().createElement(g,{type:"check"}),t().createElement("span",{className:"item-name"},e.name))}))))}Tr.propTypes={listRef:r().instanceOf(Object),tags:r().bool,values:r().instanceOf(Array),searchValue:r().string,activeItem:r().instanceOf(Object),onMessage:r().func,renderListItem:r().func,selectAll:r().oneOfType([r().bool,r().shape({label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),mode:r().oneOf(["select","unselect"]),show:r().oneOf(["always","notSameState"]),render:r().func})]),showSearch:r().bool};const Ar=Tr;var _r=Object.defineProperty,Lr=Object.defineProperties,Mr=Object.getOwnPropertyDescriptors,Rr=Object.getOwnPropertySymbols,Nr=Object.prototype.hasOwnProperty,Ir=Object.prototype.propertyIsEnumerable,Pr=(e,t,n)=>t in e?_r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Dr=(e,t)=>{for(var n in t||(t={}))Nr.call(t,n)&&Pr(e,n,t[n]);if(Rr)for(var n of Rr(t))Ir.call(t,n)&&Pr(e,n,t[n]);return e},Fr=(e,t)=>Lr(e,Mr(t));function Br(n){var o=n,{value:i,values:r=[],valueOverflow:s="single",label:a="",labelwidth:l,tags:c=!1,tagSeparators:u=[" ","Enter"],addTagOnBlur:h=!1,max:d,multiple:p=!1,placeholder:m="",theme:f,note:y="",error:v="",disabled:b=!1,readOnly:w=!1,allowCustomValues:x=!0,searchItem:k,renderValue:C,renderListItem:$,renderList:S,CustomListComponent:E,onBeforeChange:O=(()=>!0),onChange:T=(()=>{}),floatingContainerConfig:A,expandMode:_,infiniteScrollerConfig:L,displayDropdownTrigger:M=!0,selectAll:R,closeOnSelect:N,showSearch:I=!1,required:P=!1,validateOnChange:D=(()=>{}),wrapperClassName:F=""}=o,B=((e,t)=>{var n={};for(var o in e)Nr.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Rr)for(var o of Rr(e))t.indexOf(o)<0&&Ir.call(e,o)&&(n[o]=e[o]);return n})(o,["value","values","valueOverflow","label","labelwidth","tags","tagSeparators","addTagOnBlur","max","multiple","placeholder","theme","note","error","disabled","readOnly","allowCustomValues","searchItem","renderValue","renderListItem","renderList","CustomListComponent","onBeforeChange","onChange","floatingContainerConfig","expandMode","infiniteScrollerConfig","displayDropdownTrigger","selectAll","closeOnSelect","showSearch","required","validateOnChange","wrapperClassName"]);const W=(0,e.useMemo)((()=>p?1/0:d||(c?1/0:1)),[p,d,c]),H=E?(e,{sendMessage:n})=>t().createElement(E,{filteredValues:e,handleListItemClick:t=>n("value.select",{item:e[t]})}):S,j=(0,e.useRef)(null),z=(0,e.useRef)(null),V=(0,e.useRef)(null),U=(0,e.useRef)(null),[G,K]=(0,e.useState)(jr(i,r)),[q,Y]=(0,e.useState)(r.map((e=>Hr(e)))),[J,X]=(0,e.useState)(""),[Q,Z]=(0,e.useState)(null),[ee,te]=(0,e.useState)(!1),[ne,oe]=(0,e.useState)(!1),[ie,re]=(0,e.useState)("");function se(){return(f?f.split(" "):[]).map((e=>`tyk-form-group--${e}`))}function ae(){const e=k||((e,t)=>{var n,o;return null==(o=null==(n=null==e?void 0:e.name)?void 0:n.toLowerCase())?void 0:o.includes(t)});return q.filter((t=>e(t,J.toLowerCase())))}function le(){te(!0)}function ce(){te(!1),c||ue(""),Z(null)}function ue(e){X(e),Q&&ae().every((e=>e.id!==Q.id))&&Z(null),e&&!ee&&le()}function he(e,t){const n=D(e,t);return re(n),void 0===n}function de(e){K(e),T(1!==W||c?e:e[0]||null)}function pe(e){if(!e)return;if(G.length>=W)return;if(G.some((({name:t})=>t===e)))return;const t=q.findIndex((t=>t.name===e));let n,o,i=[...G];-1===t?x&&(n={id:e,name:e},i=[...G,n]):(o=[...q.slice(0,t),Fr(Dr({},q[t]),{selected:!0}),...q.slice(t+1)],n=q[t],i=[...G,q[t]]),he(i,n)&&O(G,i)&&(o&&Y(o),de(i))}function ge({id:e}){const t=q.find((t=>t.id===e)),n=q.findIndex((t=>t.id===e));let o=G,i=q;t.selected?P&&1===W||(o=G.filter((e=>e.id!==t.id)),i=q.with(n,Fr(Dr({},t),{selected:!1}))):G.lengthFr(Dr({},e),{selected:e.id===t.id})))),he(o,t)&&O(G,o)&&(de(o),Y(i)),(1===W||N)&&ce()}function me(e){if(q.length>W)return;const t=e?[...q]:[];O(G,t)&&(de(t),Y(q.map((t=>Fr(Dr({},t),{selected:e})))),N&&ce())}function fe(){const e=ae().filter((e=>!e.disabled));if(0===e.length)return;if(null===Q||1===e.length)return void Z(e[e.length-1]);const t=e.findIndex((e=>e.id===Q.id));Z(e[t>0?t-1:e.length-1])}function ye(){const e=ae().filter((e=>!e.disabled));if(0===e.length)return;if(null===Q||1===e.length)return void Z(e[0]);const t=e.findIndex((e=>e.id===Q.id));Z(e[tt.id===e)),n=G.filter((t=>t.id!==e));O(G,n)&&(-1!==t&&Y([...q.slice(0,t),Fr(Dr({},q[t]),{selected:!1}),...q.slice(t+1)]),de(n))}(t),"input.change"===e&&ue(t),"input.enter"===e&&(Q?ge(Q):u.includes("Enter")&&(pe(t),ue(""))),"input.arrowUp"===e&&(le(),fe()),"input.arrowDown"===e&&(le(),ye()),"input.escape"===e&&ce(),"input.blur"===e&&h&&(pe(t),ue("")),"input.focus"===e&&le()}const xe=(0,e.useCallback)(((e,t)=>{e.startsWith("tag.")&&we(e.slice(4),t),"value.select"===e&&ge(t.item),"value.select-all"===e&&me(t),"text-value.click"===e&&le(),"search.change"===e&&ue(t),"search.escape"===e&&ce(),"search.arrowUp"===e&&fe(),"search.arrowDown"===e&&ye(),"search.enter"===e&&Q&&ge(Q)}),[we,ge,me,le,ue,ce,fe,ye]),ke=(0,e.useCallback)((()=>_?t().createElement(g,{type:ne?"compress-arrows-alt":"expand-arrows-alt"}):t().createElement(g,{family:"tykon",type:"arrowdown"})),[_,ne]);(0,e.useEffect)((()=>(window.addEventListener("click",be,!0),()=>window.removeEventListener("click",be,!0))),[]),(0,e.useEffect)((()=>{if(r.length){const e=r.map((e=>Fr(Dr({},Hr(e)),{selected:G.some((t=>t.id===e.id))})));Y(e),K((t=>t.map((t=>e.find((e=>e.id===t.id))||t))))}else q.length&&Y([])}),[r]),(0,e.useEffect)((()=>{const e=jr(i,q);K(e),Y((t=>t.map((t=>Fr(Dr({},Hr(t)),{selected:e.some((e=>e.id===t.id))})))))}),[i]),(0,e.useEffect)((()=>{if(!_)return()=>{};const e=z.current.querySelector(".tyk-combobox2__current-values"),t=()=>{e.scrollTop=e.scrollHeight},n=new MutationObserver(t),o=new ResizeObserver(t);return n.observe(e,{attributes:!0,childList:!0,subtree:!0}),o.observe(e),()=>{n.disconnect(),o.disconnect()}}));const Ce=ae(),$e=["tyk-combobox2__current-values",_&&"expand-mode","tyk-combobox2__current-values--"+(ne?"expanded":"collapsed")].join(" ");return t().createElement("div",Fr(Dr({ref:j,tabIndex:b?"-1":"0",onClickCapture:function(e){if(!b)return;if(!_)return void e.stopPropagation();const t=j.current.querySelector(".tyk-combobox2__values-container-trigger");t&&(t===e.target||t.contains(e.target)||e.stopPropagation())}},B),{className:[F,"tyk-form-group","tyk-combobox2",...se(),(v||ie)&&"has-error",l&&"tyk-form-group--label-has-width",b&&"disabled",_&&"is-expand-mode"].filter(Boolean).join(" ")}),a&&t().createElement("label",{style:{flexBasis:l||"auto"}},a),!w&&t().createElement("div",{className:"tyk-form-control__wrapper",style:{flexBasis:`calc(100% - ${l} - 20px)`}},t().createElement("div",{className:"tyk-form-control",ref:z},t().createElement("div",{className:$e,onClick:le,role:"none"},t().createElement(Or,{value:G,max:W,tags:c,tagSeparators:u,addTagOnBlur:h,allowCustomValues:x,placeholder:m,disabled:b,valueOverflow:s,renderValue:C,focus:ee,onMessage:xe,readOnly:w})),M&&t().createElement("div",{className:"tyk-combobox2__values-container-trigger"+(ne?" tyk-combobox2__values-container-trigger--expanded":""),role:"button",tabIndex:b?-1:0,onClick:ve,onKeyDown:ve},ke())),ee&&(!c||Ce.length>0)&&t().createElement(Pt,Fr(Dr({element:z,size:"matchElement",className:`tyk-combobox2__combobox-dropdown tyk-form-group ${se().join(" ")}`,ref:V,displayAxis:"vertical"},A),{infiniteScrollerConfig:L}),H?H(Ce,{tags:c,searchValue:J,activeItem:Q,listRef:U,sendMessage:xe}):t().createElement(Ar,{listRef:U,showSearch:I,values:Ce,tags:c,searchValue:J,activeItem:Q,onMessage:xe,renderListItem:$,selectAll:R})),y&&t().createElement("p",{className:"tyk-form-control__help-block"},y),(v&&"true"!==v&&"false"!==v||Boolean(ie))&&t().createElement("p",{className:"tyk-form-control__error-message"},v||ie)),w&&t().createElement("div",null,t().createElement(Or,{value:G,tags:c,renderValue:C,readOnly:w})))}Br.propTypes={allowCustomValues:r().bool,CustomListComponent:r().elementType,searchItem:r().func,renderValue:r().func,renderListItem:r().func,renderList:r().func,disabled:r().bool,readOnly:r().bool,error:r().string,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,max:r().number,multiple:r().bool,note:r().oneOfType([r().node,r().element,r().string]),onBeforeChange:r().func,onChange:r().func,placeholder:r().string,tags:r().bool,tagSeparators:r().arrayOf(r().string),addTagOnBlur:r().bool,theme:r().string,value:r().oneOfType([r().string,r().instanceOf(Array),r().instanceOf(Object)]),values:r().instanceOf(Array),floatingContainerConfig:r().instanceOf(Object),valueOverflow:r().oneOf(["single","multiple"]),expandMode:r().bool,infiniteScrollerConfig:r().instanceOf(Object),displayDropdownTrigger:r().bool,selectAll:r().oneOfType([r().bool,r().shape({label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),mode:r().oneOf(["select","unselect"]),show:r().oneOf(["always","notSameState"]),render:r().func})]),closeOnSelect:r().bool,showSearch:r().bool,required:r().bool,validateOnChange:r().func,wrapperClassName:r().string};const Wr=Br;function Hr(e,t){let n=e;if("string"==typeof e?n={id:e,name:e}:e.hasOwnProperty("name")||(n=Fr(Dr({},e),{name:e.id})),!t)return n;const o=t.find((e=>e.id===n.id));return o?Dr(Dr({},n),o):n}function jr(e,t){return e?Array.isArray(e)?e.map((e=>Hr(e,t))):[Hr(e,t)]:[]}const zr=require("flatpickr");var Vr=n.n(zr),Ur=Object.defineProperty,Gr=Object.defineProperties,Kr=Object.getOwnPropertyDescriptors,qr=Object.getOwnPropertySymbols,Yr=Object.prototype.hasOwnProperty,Jr=Object.prototype.propertyIsEnumerable,Xr=(e,t,n)=>t in e?Ur(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Qr({children:n,disabled:o,readOnly:i=!1,error:r,id:s,label:a,labelwidth:l,note:c,onClose:u,onChange:h,onOpen:d,theme:p,config:m={},value:f,wrapperClassName:y=""}){const[v,b]=(0,e.useState)(null),w=(0,e.useRef)(null),x=me(f),k=(0,e.useCallback)(((e,t)=>{if(!e)return!0;if(!Array.isArray(t))return e.getTime()!==t.getTime();let n=t;return e&&t.length&&e.length?(n=t.filter(((t,n)=>t.getTime()!==e[n].getTime())),n.length>0):t.length>0}),[]),C=(0,e.useCallback)((e=>{const t="range"===m.mode?e:e[0]||null;h&&("range"===m.mode?2===t.length&&k(x,t)&&h(t):h(t))}),[x,h,k]);(0,e.useEffect)((()=>{if(w.current&&!v){const t=Vr()(w.current,(e=((e,t)=>{for(var n in t||(t={}))Yr.call(t,n)&&Xr(e,n,t[n]);if(qr)for(var n of qr(t))Jr.call(t,n)&&Xr(e,n,t[n]);return e})({},m),Gr(e,Kr({defaultDate:f,onChange:C,onClose:u,onOpen:d}))));b(t)}var e;return()=>{v&&v.destroy()}}),[v]),(0,e.useEffect)((()=>{if(v){let e=f;"string"==typeof f?e=new Date(f):Array.isArray(f)&&(e=f.map((e=>new Date(e)))),k(x,e)&&(v.set("onChange",C),"range"===m.mode?e&&2===e.length&&v.setDate(e,!0):v.setDate(e,!0))}}),[x,f,v]);const $=["tyk-form-group","tyk-form-group--addon-right",y,...p?p.split(" ").map((e=>`tyk-form-group--${e}`)):[],l&&"tyk-form-group--label-has-width",r&&"has-error"].filter(Boolean).join(" "),S=(0,e.useCallback)((()=>{v&&v.open()}),[v]);return t().createElement(t().Fragment,null,(null==n?void 0:n.length)?n({openCalendar:S,ref:w}):t().createElement("div",{className:$},a?t().createElement("label",{htmlFor:s,style:l?{flexBasis:l}:{}},a):null,!i&&t().createElement("div",{className:"tyk-form-control__wrapper flatpickr",style:l?{flexBasis:`calc(100% - ${l} - 20px)`}:{}},t().createElement("div",{className:"tyk-input-group"},(()=>{let e={},n={};return(null==m?void 0:m.inline)&&(e={height:0,padding:0,width:0,visibility:"hidden"},n={display:"none"}),t().createElement(t().Fragment,null,t().createElement("input",{disabled:o,className:"tyk-form-control","data-input":!0,type:"date",ref:w,style:e}),t().createElement("div",{className:"tyk-input-group__addon",onClick:S,role:"button",onKeyUp:()=>{},tabIndex:0,style:n,"aria-label":"show calendar"},t().createElement(g,{type:"calendar"})))})()),c?t().createElement("p",{className:"tyk-form-control__help-block"},c):null,r&&"true"!==r&&"false"!==r?t().createElement("p",{className:"tyk-form-control__error-message"},r):null)),t().createElement("div",{className:"tyk-form-control--readonly"},i&&!f&&"-",i&&f&&Vr().formatDate(f,m.dateFormat||"d/m/Y")))}Qr.propTypes={config:r().instanceOf(Object),children:r().oneOfType([r().element,r().node,r().string,r().func]),disabled:r().bool,readOnly:r().bool,id:r().string,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,note:r().string,onChange:r().oneOfType([r().func,r().instanceOf(Array)]),onClose:r().oneOfType([r().func,r().instanceOf(Array)]),onOpen:r().oneOfType([r().func,r().instanceOf(Array)]),theme:r().string,error:r().string,value:r().oneOfType([r().instanceOf(Array),r().instanceOf(Object),r().string]),wrapperClassName:r().string};const Zr=Qr;function es(e){return es="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},es(e)}function ts(e,t){if(t.length1?"s":"")+" required, but only "+t.length+" present")}function ns(e){return ts(1,arguments),e instanceof Date||"object"===es(e)&&"[object Date]"===Object.prototype.toString.call(e)}function os(e){ts(1,arguments);var t=Object.prototype.toString.call(e);return e instanceof Date||"object"===es(e)&&"[object Date]"===t?new Date(e.getTime()):"number"==typeof e||"[object Number]"===t?new Date(e):("string"!=typeof e&&"[object String]"!==t||"undefined"==typeof console||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn((new Error).stack)),new Date(NaN))}function is(e){if(null===e||!0===e||!1===e)return NaN;var t=Number(e);return isNaN(t)?t:t<0?Math.ceil(t):Math.floor(t)}function rs(e){ts(1,arguments);var t=os(e),n=t.getUTCDay(),o=(n<1?7:0)+n-1;return t.setUTCDate(t.getUTCDate()-o),t.setUTCHours(0,0,0,0),t}function ss(e){ts(1,arguments);var t=os(e),n=t.getUTCFullYear(),o=new Date(0);o.setUTCFullYear(n+1,0,4),o.setUTCHours(0,0,0,0);var i=rs(o),r=new Date(0);r.setUTCFullYear(n,0,4),r.setUTCHours(0,0,0,0);var s=rs(r);return t.getTime()>=i.getTime()?n+1:t.getTime()>=s.getTime()?n:n-1}var as={};function ls(){return as}function cs(e,t){var n,o,i,r,s,a,l,c;ts(1,arguments);var u=ls(),h=is(null!==(n=null!==(o=null!==(i=null!==(r=null==t?void 0:t.weekStartsOn)&&void 0!==r?r:null==t||null===(s=t.locale)||void 0===s||null===(a=s.options)||void 0===a?void 0:a.weekStartsOn)&&void 0!==i?i:u.weekStartsOn)&&void 0!==o?o:null===(l=u.locale)||void 0===l||null===(c=l.options)||void 0===c?void 0:c.weekStartsOn)&&void 0!==n?n:0);if(!(h>=0&&h<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var d=os(e),p=d.getUTCDay(),g=(p=1&&p<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var g=new Date(0);g.setUTCFullYear(h+1,0,p),g.setUTCHours(0,0,0,0);var m=cs(g,t),f=new Date(0);f.setUTCFullYear(h,0,p),f.setUTCHours(0,0,0,0);var y=cs(f,t);return u.getTime()>=m.getTime()?h+1:u.getTime()>=y.getTime()?h:h-1}function hs(e,t){for(var n=e<0?"-":"",o=Math.abs(e).toString();o.length0?n:1-n;return hs("yy"===t?o%100:o,t.length)},ps=function(e,t){var n=e.getUTCMonth();return"M"===t?String(n+1):hs(n+1,2)},gs=function(e,t){return hs(e.getUTCDate(),t.length)},ms=function(e,t){return hs(e.getUTCHours()%12||12,t.length)},fs=function(e,t){return hs(e.getUTCHours(),t.length)},ys=function(e,t){return hs(e.getUTCMinutes(),t.length)},vs=function(e,t){return hs(e.getUTCSeconds(),t.length)},bs=function(e,t){var n=t.length,o=e.getUTCMilliseconds();return hs(Math.floor(o*Math.pow(10,n-3)),t.length)};var ws={G:function(e,t,n){var o=e.getUTCFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(o,{width:"abbreviated"});case"GGGGG":return n.era(o,{width:"narrow"});default:return n.era(o,{width:"wide"})}},y:function(e,t,n){if("yo"===t){var o=e.getUTCFullYear(),i=o>0?o:1-o;return n.ordinalNumber(i,{unit:"year"})}return ds(e,t)},Y:function(e,t,n,o){var i=us(e,o),r=i>0?i:1-i;return"YY"===t?hs(r%100,2):"Yo"===t?n.ordinalNumber(r,{unit:"year"}):hs(r,t.length)},R:function(e,t){return hs(ss(e),t.length)},u:function(e,t){return hs(e.getUTCFullYear(),t.length)},Q:function(e,t,n){var o=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"Q":return String(o);case"QQ":return hs(o,2);case"Qo":return n.ordinalNumber(o,{unit:"quarter"});case"QQQ":return n.quarter(o,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(o,{width:"narrow",context:"formatting"});default:return n.quarter(o,{width:"wide",context:"formatting"})}},q:function(e,t,n){var o=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"q":return String(o);case"qq":return hs(o,2);case"qo":return n.ordinalNumber(o,{unit:"quarter"});case"qqq":return n.quarter(o,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(o,{width:"narrow",context:"standalone"});default:return n.quarter(o,{width:"wide",context:"standalone"})}},M:function(e,t,n){var o=e.getUTCMonth();switch(t){case"M":case"MM":return ps(e,t);case"Mo":return n.ordinalNumber(o+1,{unit:"month"});case"MMM":return n.month(o,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(o,{width:"narrow",context:"formatting"});default:return n.month(o,{width:"wide",context:"formatting"})}},L:function(e,t,n){var o=e.getUTCMonth();switch(t){case"L":return String(o+1);case"LL":return hs(o+1,2);case"Lo":return n.ordinalNumber(o+1,{unit:"month"});case"LLL":return n.month(o,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(o,{width:"narrow",context:"standalone"});default:return n.month(o,{width:"wide",context:"standalone"})}},w:function(e,t,n,o){var i=function(e,t){ts(1,arguments);var n=os(e),o=cs(n,t).getTime()-function(e,t){var n,o,i,r,s,a,l,c;ts(1,arguments);var u=ls(),h=is(null!==(n=null!==(o=null!==(i=null!==(r=null==t?void 0:t.firstWeekContainsDate)&&void 0!==r?r:null==t||null===(s=t.locale)||void 0===s||null===(a=s.options)||void 0===a?void 0:a.firstWeekContainsDate)&&void 0!==i?i:u.firstWeekContainsDate)&&void 0!==o?o:null===(l=u.locale)||void 0===l||null===(c=l.options)||void 0===c?void 0:c.firstWeekContainsDate)&&void 0!==n?n:1),d=us(e,t),p=new Date(0);return p.setUTCFullYear(d,0,h),p.setUTCHours(0,0,0,0),cs(p,t)}(n,t).getTime();return Math.round(o/6048e5)+1}(e,o);return"wo"===t?n.ordinalNumber(i,{unit:"week"}):hs(i,t.length)},I:function(e,t,n){var o=function(e){ts(1,arguments);var t=os(e),n=rs(t).getTime()-function(e){ts(1,arguments);var t=ss(e),n=new Date(0);return n.setUTCFullYear(t,0,4),n.setUTCHours(0,0,0,0),rs(n)}(t).getTime();return Math.round(n/6048e5)+1}(e);return"Io"===t?n.ordinalNumber(o,{unit:"week"}):hs(o,t.length)},d:function(e,t,n){return"do"===t?n.ordinalNumber(e.getUTCDate(),{unit:"date"}):gs(e,t)},D:function(e,t,n){var o=function(e){ts(1,arguments);var t=os(e),n=t.getTime();t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0);var o=n-t.getTime();return Math.floor(o/864e5)+1}(e);return"Do"===t?n.ordinalNumber(o,{unit:"dayOfYear"}):hs(o,t.length)},E:function(e,t,n){var o=e.getUTCDay();switch(t){case"E":case"EE":case"EEE":return n.day(o,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(o,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(o,{width:"short",context:"formatting"});default:return n.day(o,{width:"wide",context:"formatting"})}},e:function(e,t,n,o){var i=e.getUTCDay(),r=(i-o.weekStartsOn+8)%7||7;switch(t){case"e":return String(r);case"ee":return hs(r,2);case"eo":return n.ordinalNumber(r,{unit:"day"});case"eee":return n.day(i,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(i,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(i,{width:"short",context:"formatting"});default:return n.day(i,{width:"wide",context:"formatting"})}},c:function(e,t,n,o){var i=e.getUTCDay(),r=(i-o.weekStartsOn+8)%7||7;switch(t){case"c":return String(r);case"cc":return hs(r,t.length);case"co":return n.ordinalNumber(r,{unit:"day"});case"ccc":return n.day(i,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(i,{width:"narrow",context:"standalone"});case"cccccc":return n.day(i,{width:"short",context:"standalone"});default:return n.day(i,{width:"wide",context:"standalone"})}},i:function(e,t,n){var o=e.getUTCDay(),i=0===o?7:o;switch(t){case"i":return String(i);case"ii":return hs(i,t.length);case"io":return n.ordinalNumber(i,{unit:"day"});case"iii":return n.day(o,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(o,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(o,{width:"short",context:"formatting"});default:return n.day(o,{width:"wide",context:"formatting"})}},a:function(e,t,n){var o=e.getUTCHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(o,{width:"narrow",context:"formatting"});default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},b:function(e,t,n){var o,i=e.getUTCHours();switch(o=12===i?"noon":0===i?"midnight":i/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(o,{width:"narrow",context:"formatting"});default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},B:function(e,t,n){var o,i=e.getUTCHours();switch(o=i>=17?"evening":i>=12?"afternoon":i>=4?"morning":"night",t){case"B":case"BB":case"BBB":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(o,{width:"narrow",context:"formatting"});default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},h:function(e,t,n){if("ho"===t){var o=e.getUTCHours()%12;return 0===o&&(o=12),n.ordinalNumber(o,{unit:"hour"})}return ms(e,t)},H:function(e,t,n){return"Ho"===t?n.ordinalNumber(e.getUTCHours(),{unit:"hour"}):fs(e,t)},K:function(e,t,n){var o=e.getUTCHours()%12;return"Ko"===t?n.ordinalNumber(o,{unit:"hour"}):hs(o,t.length)},k:function(e,t,n){var o=e.getUTCHours();return 0===o&&(o=24),"ko"===t?n.ordinalNumber(o,{unit:"hour"}):hs(o,t.length)},m:function(e,t,n){return"mo"===t?n.ordinalNumber(e.getUTCMinutes(),{unit:"minute"}):ys(e,t)},s:function(e,t,n){return"so"===t?n.ordinalNumber(e.getUTCSeconds(),{unit:"second"}):vs(e,t)},S:function(e,t){return bs(e,t)},X:function(e,t,n,o){var i=(o._originalDate||e).getTimezoneOffset();if(0===i)return"Z";switch(t){case"X":return ks(i);case"XXXX":case"XX":return Cs(i);default:return Cs(i,":")}},x:function(e,t,n,o){var i=(o._originalDate||e).getTimezoneOffset();switch(t){case"x":return ks(i);case"xxxx":case"xx":return Cs(i);default:return Cs(i,":")}},O:function(e,t,n,o){var i=(o._originalDate||e).getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+xs(i,":");default:return"GMT"+Cs(i,":")}},z:function(e,t,n,o){var i=(o._originalDate||e).getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+xs(i,":");default:return"GMT"+Cs(i,":")}},t:function(e,t,n,o){var i=o._originalDate||e;return hs(Math.floor(i.getTime()/1e3),t.length)},T:function(e,t,n,o){return hs((o._originalDate||e).getTime(),t.length)}};function xs(e,t){var n=e>0?"-":"+",o=Math.abs(e),i=Math.floor(o/60),r=o%60;if(0===r)return n+String(i);var s=t||"";return n+String(i)+s+hs(r,2)}function ks(e,t){return e%60==0?(e>0?"-":"+")+hs(Math.abs(e)/60,2):Cs(e,t)}function Cs(e,t){var n=t||"",o=e>0?"-":"+",i=Math.abs(e);return o+hs(Math.floor(i/60),2)+n+hs(i%60,2)}const $s=ws;var Ss=function(e,t){switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}},Es=function(e,t){switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}},Os={p:Es,P:function(e,t){var n,o=e.match(/(P+)(p+)?/)||[],i=o[1],r=o[2];if(!r)return Ss(e,t);switch(i){case"P":n=t.dateTime({width:"short"});break;case"PP":n=t.dateTime({width:"medium"});break;case"PPP":n=t.dateTime({width:"long"});break;default:n=t.dateTime({width:"full"})}return n.replace("{{date}}",Ss(i,t)).replace("{{time}}",Es(r,t))}};const Ts=Os;var As=["D","DD"],_s=["YY","YYYY"];function Ls(e,t,n){if("YYYY"===e)throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(t,"`) for formatting years to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("YY"===e)throw new RangeError("Use `yy` instead of `YY` (in `".concat(t,"`) for formatting years to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("D"===e)throw new RangeError("Use `d` instead of `D` (in `".concat(t,"`) for formatting days of the month to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("DD"===e)throw new RangeError("Use `dd` instead of `DD` (in `".concat(t,"`) for formatting days of the month to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"))}var Ms={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function Rs(e){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}var Ns,Is={date:Rs({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:Rs({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:Rs({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},Ps={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function Ds(e){return function(t,n){var o;if("formatting"===(null!=n&&n.context?String(n.context):"standalone")&&e.formattingValues){var i=e.defaultFormattingWidth||e.defaultWidth,r=null!=n&&n.width?String(n.width):i;o=e.formattingValues[r]||e.formattingValues[i]}else{var s=e.defaultWidth,a=null!=n&&n.width?String(n.width):e.defaultWidth;o=e.values[a]||e.values[s]}return o[e.argumentCallback?e.argumentCallback(t):t]}}function Fs(e){return function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=n.width,i=o&&e.matchPatterns[o]||e.matchPatterns[e.defaultMatchWidth],r=t.match(i);if(!r)return null;var s,a=r[0],l=o&&e.parsePatterns[o]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(l)?function(e,t){for(var n=0;n0?"in "+o:o+" ago":o},formatLong:Is,formatRelative:function(e,t,n,o){return Ps[e]},localize:{ordinalNumber:function(e,t){var n=Number(e),o=n%100;if(o>20||o<10)switch(o%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:Ds({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:Ds({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:function(e){return e-1}}),month:Ds({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:Ds({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:Ds({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(Ns={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:function(e){return parseInt(e,10)}},function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.match(Ns.matchPattern);if(!n)return null;var o=n[0],i=e.match(Ns.parsePattern);if(!i)return null;var r=Ns.valueCallback?Ns.valueCallback(i[0]):i[0];return{value:r=t.valueCallback?t.valueCallback(r):r,rest:e.slice(o.length)}}),era:Fs({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:Fs({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(e){return e+1}}),month:Fs({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:Fs({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:Fs({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}};var Ws=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Hs=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,js=/^'([^]*?)'?$/,zs=/''/g,Vs=/[a-zA-Z]/;function Us(e,t,n){var o,i,r,s,a,l,c,u,h,d,p,g,m,f,y,v,b,w;ts(2,arguments);var x=String(t),k=ls(),C=null!==(o=null!==(i=null==n?void 0:n.locale)&&void 0!==i?i:k.locale)&&void 0!==o?o:Bs,$=is(null!==(r=null!==(s=null!==(a=null!==(l=null==n?void 0:n.firstWeekContainsDate)&&void 0!==l?l:null==n||null===(c=n.locale)||void 0===c||null===(u=c.options)||void 0===u?void 0:u.firstWeekContainsDate)&&void 0!==a?a:k.firstWeekContainsDate)&&void 0!==s?s:null===(h=k.locale)||void 0===h||null===(d=h.options)||void 0===d?void 0:d.firstWeekContainsDate)&&void 0!==r?r:1);if(!($>=1&&$<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var S=is(null!==(p=null!==(g=null!==(m=null!==(f=null==n?void 0:n.weekStartsOn)&&void 0!==f?f:null==n||null===(y=n.locale)||void 0===y||null===(v=y.options)||void 0===v?void 0:v.weekStartsOn)&&void 0!==m?m:k.weekStartsOn)&&void 0!==g?g:null===(b=k.locale)||void 0===b||null===(w=b.options)||void 0===w?void 0:w.weekStartsOn)&&void 0!==p?p:0);if(!(S>=0&&S<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!C.localize)throw new RangeError("locale must contain localize property");if(!C.formatLong)throw new RangeError("locale must contain formatLong property");var E=os(e);if(!function(e){if(ts(1,arguments),!ns(e)&&"number"!=typeof e)return!1;var t=os(e);return!isNaN(Number(t))}(E))throw new RangeError("Invalid time value");var O=function(e){var t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),e.getTime()-t.getTime()}(E),T=function(e,t){return ts(2,arguments),function(e,t){ts(2,arguments);var n=os(e).getTime(),o=is(t);return new Date(n+o)}(e,-is(t))}(E,O),A={firstWeekContainsDate:$,weekStartsOn:S,locale:C,_originalDate:E};return x.match(Hs).map((function(e){var t=e[0];return"p"===t||"P"===t?(0,Ts[t])(e,C.formatLong):e})).join("").match(Ws).map((function(o){if("''"===o)return"'";var i,r,s=o[0];if("'"===s)return(r=(i=o).match(js))?r[1].replace(zs,"'"):i;var a,l=$s[s];if(l)return null!=n&&n.useAdditionalWeekYearTokens||(a=o,-1===_s.indexOf(a))||Ls(o,t,String(e)),null!=n&&n.useAdditionalDayOfYearTokens||!function(e){return-1!==As.indexOf(e)}(o)||Ls(o,t,String(e)),l(T,o,C.localize,A);if(s.match(Vs))throw new RangeError("Format string contains an unescaped latin alphabet character `"+s+"`");return o})).join("")}var Gs=n(590),Ks=n.n(Gs),qs=Object.defineProperty,Ys=Object.defineProperties,Js=Object.getOwnPropertyDescriptors,Xs=Object.getOwnPropertySymbols,Qs=Object.prototype.hasOwnProperty,Zs=Object.prototype.propertyIsEnumerable,ea=(e,t,n)=>t in e?qs(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ta=(e,t)=>{for(var n in t||(t={}))Qs.call(t,n)&&ea(e,n,t[n]);if(Xs)for(var n of Xs(t))Zs.call(t,n)&&ea(e,n,t[n]);return e};class na extends e.Component{static getMainFormValue(e){const t=new Array(e.length);return e.forEach(((e,n)=>{t[n]=e.props.value||void 0})),t}constructor(t){super(t);const{components:n}=t;this.submitButtonRef=(0,e.createRef)(),this.handleOnChange=this.handleOnChange.bind(this),this.submitForm=this.submitForm.bind(this),this.state={components:n,errors:{},mainError:null,mainFormValue:na.getMainFormValue(n),refs:[]}}componentDidMount(){const{addValueOnFieldChange:e,getMainFormButtonWidth:t}=this.props;this.createRefs(),t&&t(e?0:this.submitButtonRef.current.clientWidth)}static getDerivedStateFromProps(e,t){const n={},{components:o}=e,{components:i}=t;return Ks()(o,i)||Ks()(na.getMainFormValue(o),na.getMainFormValue(i))||(n.mainFormValue=na.getMainFormValue(o),n.components=o),n}handleOnChange(e,t,n){const{addValueOnFieldChange:o}=this.props;let i=this.state;i=ta(ta({},i),this.validateValue(n,e.props)),i.errors[e.props.name]||(i.mainFormValue[t]=n,e.props.onChange&&e.props.onChange(n)),this.setState((e=>ta(ta({},e),i)),(()=>{o&&this.submitForm()}))}getFormCssClasses(){const{noLabels:e}=this.props,t=["tyk-editable-list__form"];return e&&t.push("no-labels"),t.join(" ")}getButtonClassName(){const{buttonStyle:e,displayType:t}=this.props,n=[];return e&&n.push(e),t&&n.push(t),n.join(" ")}getComponentsError(e){const{error:t,errors:n,mainError:o}=this.state;return t||o?n[e.props.name]="true":t||o||"true"!==n[e.props.name]||delete n[e.props.name],n[e.props.name]?n[e.props.name].toString():void 0}createRefs(){const{components:t}=this.props,n=[];t.forEach((()=>{n.push((0,e.createRef)())})),this.setState({refs:n})}validateValue(e,t){const{mainError:n,errors:o}=this.state,{error:i,errorPersist:r}=this.props,s=t.validate?Object.keys(t.validate):[],a={errors:i||n?{}:ta({},o)};let l=!0;if(r)return a;for(const n of s)if((0,t.validate[n])(e)){a.errors[t.name]=t.validationmessages[n],l=!1;break}return l&&delete a.errors[t.name],a.mainError=null,a}hasMainFormErrors(e){const{components:t,errorPersist:n}=this.props,{mainFormValue:o}=this.state,i={errors:ta({},e)};return(!n||-1!==o.indexOf(void 0))&&(Object.keys(i.errors).length>0||(t.forEach(((e,t)=>{i.errors=ta(ta({},i.errors),this.validateValue(o[t],e.props).errors)})),Object.keys(i.errors).length>0))}resetForm(){const{refs:e}=this.state,{components:t}=this.props;e.forEach((e=>{var t;(null==(t=e.current)?void 0:t.reset)&&e.current.reset()})),this.setState({errors:{},mainError:null,mainFormValue:na.getMainFormValue(t)})}showMainError(e){this.setState({mainError:e})}submitForm(){const{errors:e,mainFormValue:t}=this.state,{errorPersist:n,onSubmit:o,validate:i,validationmessage:r}=this.props;n&&(o(t),this.resetForm()),0===Object.keys(e).length&&o&&"function"==typeof o&&(i&&i(t)?this.showMainError(r):(o(t),this.resetForm()))}render(){const{addValueOnFieldChange:e,components:n,buttonName:o,disabled:i,displayType:r,error:s}=this.props,{mainError:a,refs:l,errors:c}=this.state;return t().createElement("div",null,t().createElement("div",{className:this.getFormCssClasses()},t().createElement(yi,null,n.map(((e,n)=>{const o=e.name;console.log("ComponentName",o);const s=e.props,{onChange:a,value:c}=s,u=((e,t)=>{var n={};for(var o in e)Qs.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Xs)for(var o of Xs(e))t.indexOf(o)<0&&Zs.call(e,o)&&(n[o]=e[o]);return n})(s,["onChange","value"]);return t().createElement(li,{size:`md-${e.size||"12"} lg-${e.size||"12"}`,key:e.props.name},t().createElement(o,(h=ta({disabled:i||e.props.disabled,onChange:this.handleOnChange.bind(this,e,n)},u),d={label:"inline"===r?"":e.props.label,error:this.getComponentsError(e),ref:l[n],value:c},Ys(h,Js(d)))));var h,d}))),e?null:t().createElement("span",{className:this.getButtonClassName(),ref:this.submitButtonRef},t().createElement(U,{disabled:this.hasMainFormErrors(c),className:"tyk-editable-list__submit-btn",onClick:this.submitForm,theme:"default",type:"button",size:"inline"===r?"sm":"md"},o||"ADD"))),s||a?t().createElement("div",{className:"tyk-editable-list-main-error"},t().createElement("p",{className:"error-message"},s||a)):null)}}na.propTypes={addValueOnFieldChange:r().bool,noLabels:r().bool,buttonName:r().string,buttonStyle:r().string,components:r().instanceOf(Array),displayType:r().string,disabled:r().bool,getMainFormButtonWidth:r().func,error:r().string,errorPersist:r().bool,onSubmit:r().func,validate:r().func,validationmessage:r().string};const oa=na;var ia=Object.defineProperty,ra=Object.getOwnPropertySymbols,sa=Object.prototype.hasOwnProperty,aa=Object.prototype.propertyIsEnumerable,la=(e,t,n)=>t in e?ia(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ca=(e,t)=>{for(var n in t||(t={}))sa.call(t,n)&&la(e,n,t[n]);if(ra)for(var n of ra(t))aa.call(t,n)&&la(e,n,t[n]);return e};class ua extends e.Component{static getItemListValue(e){let t=null;return"string"==typeof e&&(t=e),"[object Object]"===Object.prototype.toString.call(e)&&(t=e.name),ns(e)&&(t=Us(e,"dd/MM/yyyy")),t}static getListItemCssClass(e){const t=[];return"inline"===e&&t.push("tyk-editable-list-item--inline"),t.join(" ")}constructor(t){super(t);const{value:n}=this.props;this.state={initialValue:n||"",value:n||[],buttonWidth:0},this.startIndex=1,this.handleFormSubmit=this.handleFormSubmit.bind(this),this.getMainFormButtonWidth=this.getMainFormButtonWidth.bind(this),this.dropdownListItemRef=(0,e.createRef)()}static getDerivedStateFromProps(e,t){const n={};return e.value&&JSON.stringify(e.value)!==JSON.stringify(t.initialValue)&&(n.value=e.value||[],n.initialValue=e.value||""),n.value?n:null}handleFormSubmit(e){const t=this.addValues(e);this.setState((e=>ca(ca({},e),t)),(()=>{this.triggerOnChange(t.value.length-1,null,e)}))}handleItemUpdate(e,t){let n;this.setState((o=>{const i=ca({},o);return n=(0,pe.fromJS)(i.value[e].value).toJS(),i.value[e].value=t,i.value[e].editMode=!1,i}),(()=>{this.triggerOnChange(e,n,t)}))}handleChildrenOnChange(e,t){let n;this.setState((o=>{const i=ca({},o);return n=(0,pe.fromJS)(i.value[e].children).toJS(),i.value[e].children=t,i}),(()=>{this.triggerOnChange(e,n,t)}))}getListItemsCssClass(e){const{config:t}=this.props,n=["tyk-editable-list-items"];return n.push(t.displayType||"table"),"inline"===e&&n.push("tyk-editable-list-items--inline"),n.join(" ")}getFormInputKey(){return this.startIndex+=1,this.startIndex}getListItemText(e){const{config:n}=this.props;let o=null;switch(n.displayType){case"list":case"inline":o=e.value.reduce(((t,n,o)=>{const i=ua.getItemListValue(n);let r=", ";return o===e.value.length-1&&(r=""),t+i+r}),"");break;default:o=t().createElement(yi,null,n.components.map(((n,o)=>t().createElement(li,{key:this.getFormInputKey(),size:`md-${n.size} lg-${n.size}`},ua.getItemListValue(e.value[o])))))}return o}getMainFormButtonWidth(e){this.setState({buttonWidth:e})}setItemEditMode(e){const t=this.closeListItems();this.setState((n=>{const o=ca({},n);return o.value=t,o.value[e].editMode=!o.value[e].editMode,o}))}isInList(e,t){const{value:n}=this.state;let o=!1;return n.forEach(((n,i)=>{JSON.stringify(n.value)===JSON.stringify(t)&&(o=!(e>=0&&i===e))})),o}addValues(e){const{value:t}=this.state,{config:n}=this.props,o={editMode:!1,value:e},i={value:t.slice(0)};return n.children&&(o.children=[]),i.value.push(o),i}removeListItem(e){let t;this.setState((n=>{const o=n.value.slice(0);return t=o.splice(e,1),{value:o}}),(()=>{this.triggerOnChange(e,t,null)}))}closeListItems(){const{value:e}=this.state;return e.map((e=>{const t=ca({},e);return t.editMode?(t.editMode=!1,t):t}))}triggerOnChange(e,t,n){const{onChange:o}=this.props,{value:i}=this.state;o&&"function"==typeof o&&o(i.length?i:null,e,t,n)}genListItem(e,n){var o;const{config:i,disabled:r}=this.props,{buttonWidth:s,value:a}=this.state,l=(0,pe.fromJS)(i.components).toJS();return e.value.forEach(((e,t)=>{l[t].props.value=e})),t().createElement("li",{key:n,className:ua.getListItemCssClass(i.displayType),ref:this.dropdownListItemRef},t().createElement("div",{className:`tyk-editable-list-item__text ${i.displayType||"table"}${e.editMode?" edit-mode-wrapper":""}`},e.editMode?t().createElement(t().Fragment,null,t().createElement(oa,{buttonName:"Update",noLabels:i.noLabels,disabled:r,displayType:i.displayType,components:l,onSubmit:this.handleItemUpdate.bind(this,n),validate:this.isInList.bind(this,n),validationmessage:"This value is already in the list"}),t().createElement("button",{type:"button",className:"tyk-editable-list-action__button on-edit",onClick:this.removeListItem.bind(this,n),"aria-label":"remove"},t().createElement(g,{type:"trash"}))):t().createElement(t().Fragment,null,this.getListItemText(e,n),t().createElement("div",{className:"tyk-editable-list-item__controls",style:{display:"block",width:"inline"===i.displayType?"auto":`${s+60}px`}},t().createElement("button",{disabled:r,type:"button",className:"tyk-editable-list-action__button",onClick:this.setItemEditMode.bind(this,n),"aria-label":"edit"},t().createElement(g,{type:"edit"})),t().createElement("button",{disabled:r,type:"button",className:"tyk-editable-list-action__button",onClick:this.removeListItem.bind(this,n),"aria-label":"remove"},t().createElement(g,{type:"trash"}))))),i.children?t().createElement(ua,{disabled:r,onChange:this.handleChildrenOnChange.bind(this,n),config:i.children.config,value:(null==(o=a[n])?void 0:o.children)||[]}):null)}genList(){const{config:e}=this.props,{buttonWidth:n,value:o}=this.state;return o&&0!==o.length?t().createElement(t().Fragment,null,"table"!==e.displayType&&e.displayType?null:t().createElement("div",{className:"tyk-editable-list__header",style:{paddingRight:`${n+60}px`}},t().createElement(yi,null,e.components.map(((e,n)=>t().createElement(li,{key:e.props.label||n,size:`md-${e.size||12} lg-${e.size||12}`},e.props.label))))),t().createElement("ul",{className:this.getListItemsCssClass(e.displayType)},o.map(((e,t)=>this.genListItem(e,t))))):null}render(){const{addValueOnFieldChange:e,config:n,error:o,disabled:i,label:r}=this.props,s=document.querySelector(n.appendTo)||document.querySelector("body");return t().createElement("div",{className:"tyk-editable-list"},r?t().createElement("label",null,r):null,t().createElement(oa,{addValueOnFieldChange:e,components:n.components,buttonName:n.formButtonTitle,buttonStyle:n.formButtonStyle,disabled:i,error:o,errorPersist:!!o,noLabels:n.noLabels,onSubmit:this.handleFormSubmit,validate:this.isInList.bind(this,-1),validationmessage:"This value is already in the list",getMainFormButtonWidth:this.getMainFormButtonWidth}),n.appendTo?dt().createPortal(this.genList(),s):this.genList())}}ua.propTypes={addValueOnFieldChange:r().bool,disabled:r().bool,error:r().string,config:r().instanceOf(Object),onChange:r().func,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),value:r().oneOfType([r().instanceOf(Array),r().instanceOf(Object)])};const ha=ua;function da({label:e,addButtonName:n,onAddRow:o,disabled:i,readOnly:r}){return t().createElement("div",{className:"editable-list__header"},e?t().createElement("label",null,e):null,!i&&!r&&t().createElement(U,{theme:"primary rounded-corners",onClick:o},n||"Add"))}da.propTypes={disabled:r().bool,readOnly:r().bool,onAddRow:r().func,addButtonName:r().string,label:r().oneOfType([r().string,r().element,r().node])};const pa=da;function ga({fields:e,readOnly:n}){return t().createElement("li",{className:"editable-list__item editable-list__item-header"},e.map((e=>{var n,o;return t().createElement("div",{key:(null==(n=null==e?void 0:e.props)?void 0:n.label)||JSON.stringify(e),className:`editable-list__item-cell editable-list__item--size-${(null==e?void 0:e.size)||12}`},null==(o=null==e?void 0:e.props)?void 0:o.label)})),t().createElement("div",{className:`editable-list__item-cell editable-list__item-action ${n&&"editable-list__item-action--read-only"}`},"Delete"))}ga.propTypes={fields:r().instanceOf(Array),readOnly:r().bool};const ma=ga;var fa=Object.defineProperty,ya=Object.defineProperties,va=Object.getOwnPropertyDescriptors,ba=Object.getOwnPropertySymbols,wa=Object.prototype.hasOwnProperty,xa=Object.prototype.propertyIsEnumerable,ka=(e,t,n)=>t in e?fa(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Ca({fields:e,disabled:n,readOnly:o,errors:i,components:r,onChange:s,onDelete:a,value:l,rowIndex:c}){return t().createElement("li",{className:"editable-list__item"},r.map(((r,a)=>{var u,h,d;const p=e[a],g="function"==typeof p?p(c,a):p;return t().createElement("div",{key:`${c}-${a}`,className:`editable-list__item-cell editable-list__item--size-${(null==(u=e[a])?void 0:u.size)||12}`},t().createElement(r,(m=((e,t)=>{for(var n in t||(t={}))wa.call(t,n)&&ka(e,n,t[n]);if(ba)for(var n of ba(t))xa.call(t,n)&&ka(e,n,t[n]);return e})({},null==g?void 0:g.props),f={label:"",value:l[a],onChange:s.bind(null,a),error:null==i?void 0:i[a],disabled:n||(null==(h=null==g?void 0:g.props)?void 0:h.disabled),readOnly:o||(null==(d=null==g?void 0:g.props)?void 0:d.readOnly)},ya(m,va(f)))));var m,f})),t().createElement("div",{className:`editable-list__item-cell editable-list__item-action ${o&&"editable-list__item-action--read-only"}`},t().createElement(U,{iconOnly:!0,iconType:"trash-alt",theme:"primary-link",onClick:a,disabled:o||n})))}Ca.propTypes={disabled:r().bool,readOnly:r().bool,rowIndex:r().oneOfType([r().string,r().number]),fields:r().instanceOf(Array),errors:r().instanceOf(Array),components:r().instanceOf(Array),value:r().instanceOf(Array),onChange:r().func,onDelete:r().func};const $a=Ca;var Sa=Object.defineProperty,Ea=Object.defineProperties,Oa=Object.getOwnPropertyDescriptors,Ta=Object.getOwnPropertySymbols,Aa=Object.prototype.hasOwnProperty,_a=Object.prototype.propertyIsEnumerable,La=(e,t,n)=>t in e?Sa(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;let Ma=1;function Ra({addButtonName:n,disabled:o,readOnly:i,fields:r,label:s,error:a,value:l=[],onChange:c=(()=>{}),hideOnEmpty:u=!0,wrapperClassName:h=""}){const[d,p]=(0,e.useState)(null),g=(e,t,n,o)=>{var i;const s=l?[...l]:[];if(l){const o=[...s[e]];o[t]=n,s[e]=o,s[e].id=l[e].id}else s[e]=[...new Array(r.length)],s[e][t]=n;if((null==(i=null==d?void 0:d[e])?void 0:i[t])&&o){const n=[...d],o=[...n[e]];o[t]=null,n[e]=o,p(n)}c(s)},m=(0,e.useMemo)((()=>r.map((n=>{const o="function"==typeof n?n():n;return i=(null==o?void 0:o.component)||null,n=>{var o=n,{onChange:r,validate:s,error:a}=o,l=((e,t)=>{var n={};for(var o in e)Aa.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ta)for(var o of Ta(e))t.indexOf(o)<0&&_a.call(e,o)&&(n[o]=e[o]);return n})(o,["onChange","validate","error"]);const[c,u]=(0,e.useState)(null),h=(0,e.useCallback)((e=>{const t=(null==e?void 0:e.target)?["radio","checkbox"].includes(e.target.type)?e.target.checked:null==e?void 0:e.target.value:e;let n=!0;if(s&&"function"==typeof s){const e=s(t);n=!e,u(e)}r(t,n)}),[s,r]);return t().createElement(i,(d=((e,t)=>{for(var n in t||(t={}))Aa.call(t,n)&&La(e,n,t[n]);if(Ta)for(var n of Ta(t))_a.call(t,n)&&La(e,n,t[n]);return e})({},l),Ea(d,Oa({onChange:h,error:c||a}))));var d};var i}))),[]),f=e=>{if(!l)return;const t=[...l];t.splice(e,1),c(t)};return t().createElement("div",{className:`editable-list__wrapper tyk-form-group tyk-form-group--default ${a?"has-error":""} ${h}`},t().createElement(pa,{disabled:o,readOnly:i,label:s,addButtonName:n,onAddRow:()=>{const e=((e,t)=>{var n;return null==(n=t||[[void 0,void 0]])?void 0:n.map((t=>null==t?void 0:t.map(((t,n)=>{var o,i;return null==(i=(o=e[n].props).validate)?void 0:i.call(o,t)}))))})(r,l);if((e=>{var t;return Boolean(null==(t=null==e?void 0:e.flat())?void 0:t.filter(Boolean).length)})(e))return void p(e);const t=[...new Array(r.length)];t.id="row-"+Ma++,c([...l,t])}}),(null==l?void 0:l.length)||!u?t().createElement("ul",{className:"editable-list__list"},(l||[[]]).map(((e,n)=>t().createElement($a,{key:e.id||n,rowIndex:n,disabled:o,readOnly:i,fields:r,onChange:g.bind(null,n),onDelete:f.bind(null,n),value:e,errors:null==d?void 0:d[n],components:m}))),t().createElement(ma,{fields:r,readOnly:i})):null,a&&"true"!==a&&"false"!==a?t().createElement("p",{className:"tyk-form-control__error-message"},a):null)}Ra.propTypes={disabled:r().bool,readOnly:r().bool,addButtonName:r().string,label:r().oneOfType([r().string,r().element,r().node]),fields:r().instanceOf(Array),onChange:r().func,value:r().oneOfType([r().instanceOf(Object),r().instanceOf(Array)]),error:r().string,hideOnEmpty:r().bool,wrapperClassName:r().string};const Na=Ra;var Ia=Object.defineProperty,Pa=Object.defineProperties,Da=Object.getOwnPropertyDescriptors,Fa=Object.getOwnPropertySymbols,Ba=Object.prototype.hasOwnProperty,Wa=Object.prototype.propertyIsEnumerable,Ha=(e,t,n)=>t in e?Ia(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function ja(n){var o=n,{error:i,theme:r,labelwidth:s,wrapperClassName:a="",id:l,label:c,note:u,accept:h,value:d,onChange:p}=o,m=((e,t)=>{var n={};for(var o in e)Ba.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Fa)for(var o of Fa(e))t.indexOf(o)<0&&Wa.call(e,o)&&(n[o]=e[o]);return n})(o,["error","theme","labelwidth","wrapperClassName","id","label","note","accept","value","onChange"]);const f=(0,e.useRef)();return t().createElement("div",{className:function(){const e=[a,"tyk-form-group"],t=r?r.split(" "):[];return t.length&&t.forEach((t=>{e.push(`tyk-form-group--${t}`)})),s&&e.push("tyk-form-group--label-has-width"),i&&e.push("has-error"),e.join(" ")}()},c?t().createElement("label",{htmlFor:l,style:function(){const e={};return s&&(e.flexBasis=s),e}()},c):null,t().createElement("div",{className:"tyk-form-control__wrapper"},t().createElement("div",{className:"tyk-file-input__wrapper",style:function(){const e={};return s&&(e.flexBasis=`calc(100% - ${s} - 20px)`),e}()},t().createElement("input",(y=((e,t)=>{for(var n in t||(t={}))Ba.call(t,n)&&Ha(e,n,t[n]);if(Fa)for(var n of Fa(t))Wa.call(t,n)&&Ha(e,n,t[n]);return e})({accept:h,className:"tyk-form-control"},m),Pa(y,Da({onChange:function(e){p(e.target.files)},ref:f,type:"file"})))),f.current&&f.current.files.length>0?t().createElement("button",{onClick:function(){f.current.value="",p("")},type:"button","aria-label":"clear value"},t().createElement(g,{type:"times"})):null),u?t().createElement("p",{className:"tyk-form-control__help-block"},u):null),i&&"true"!==i&&"false"!==i?t().createElement("p",{className:"tyk-form-control__error-message"},i):null);var y}ja.propTypes={accept:r().string,disabled:r().bool,id:r().string,error:r().oneOfType([r().string,r().bool]),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,name:r().string,note:r().string,onChange:r().func,placeholder:r().string,theme:r().string,value:r().instanceOf(Object),wrapperClassName:r().string};const za=ja;var Va=Object.defineProperty,Ua=Object.defineProperties,Ga=Object.getOwnPropertyDescriptors,Ka=Object.getOwnPropertySymbols,qa=Object.prototype.hasOwnProperty,Ya=Object.prototype.propertyIsEnumerable,Ja=(e,t,n)=>t in e?Va(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Xa extends e.Component{static getAddon(e){return t().createElement("div",{className:"tyk-input-group__addon"},e)}constructor(e){super(e);const{value:t}=this.props;this.state={initValue:t,stateValue:t},this.handleOnChange=this.handleOnChange.bind(this)}componentDidUpdate(e){const{isfield:t,value:n,onChange:o}=this.props;t||e.value===n||this.setState({stateValue:n},(()=>{o&&o(n)}))}handleOnChange(e){const{onChange:t,isfield:n}=this.props,o=e.target.value;n?t(o):this.setState({stateValue:o},(()=>{t&&t(o)}))}getLabelStyles(){const{labelwidth:e}=this.props,t={};return e&&(t.flexBasis=e),t}getNonLabelWidth(){const{labelwidth:e}=this.props,t={};return e&&(t.flexBasis=`calc(100% - ${e} - 20px)`),t}getInputError(){const{error:e}=this.props;return e&&"true"!==e&&"false"!==e?t().createElement("p",{className:"tyk-form-control__error-message"},e):null}getCssClasses(){const{error:e,theme:t,labelwidth:n,inputgroupaddonleft:o,inputgroupaddonright:i}=this.props,r=["tyk-form-group"],s=t?t.split(" "):[];return s.length&&s.forEach((e=>{r.push(`tyk-form-group--${e}`)})),o&&r.push("tyk-form-group--addon-left"),i&&r.push("tyk-form-group--addon-right"),n&&r.push("tyk-form-group--label-has-width"),e&&r.push("has-error"),r.join(" ")}getInputGroupAddon(){const{inputgroupaddonleft:e,inputgroupaddonright:n}=this.props;return t().createElement("div",{className:"tyk-input-group"},e?Xa.getAddon(e):null,this.getInputComponent(),n?Xa.getAddon(n):null)}getInputComponent(){const e=this.props,{isfield:n,onChange:o,value:i}=e,r=((e,t)=>{var n={};for(var o in e)qa.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ka)for(var o of Ka(e))t.indexOf(o)<0&&Ya.call(e,o)&&(n[o]=e[o]);return n})(e,["isfield","onChange","value"]),{stateValue:s}=this.state;return t().createElement("input",(a=((e,t)=>{for(var n in t||(t={}))qa.call(t,n)&&Ja(e,n,t[n]);if(Ka)for(var n of Ka(t))Ya.call(t,n)&&Ja(e,n,t[n]);return e})({autoComplete:"off",className:"tyk-form-control"},r),l={onChange:this.handleOnChange,value:n?i:s},Ua(a,Ga(l))));var a,l}reset(){const{initValue:e}=this.state;this.setState({stateValue:e})}render(){const{label:e,id:n,inputgroupaddonleft:o,inputgroupaddonright:i,note:r,readOnly:s,value:a}=this.props;return t().createElement("div",{className:this.getCssClasses()},e?t().createElement("label",{htmlFor:n,style:this.getLabelStyles()},e):null,!s&&t().createElement("div",{className:"tyk-form-control__wrapper",style:this.getNonLabelWidth()},o||i?this.getInputGroupAddon():this.getInputComponent(),r?t().createElement("p",{className:"tyk-form-control__help-block"},r):null,this.getInputError()),s&&t().createElement("div",{className:"tyk-form-control--readonly"},a||"-"))}}Xa.propTypes={disabled:r().bool,readOnly:r().bool,id:r().string,isfield:r().bool,error:r().oneOfType([r().string,r().bool]),inputgroupaddonleft:r().oneOfType([r().element,r().node,r().string]),inputgroupaddonright:r().oneOfType([r().element,r().node,r().string]),label:r().oneOfType([r().string,r().element,r().node]),labelwidth:r().string,name:r().string,note:r().string,onChange:r().func,placeholder:r().string,theme:r().string,value:r().oneOfType([r().number,r().string])};const Qa=Xa;var Za=Object.defineProperty,el=Object.defineProperties,tl=Object.getOwnPropertyDescriptors,nl=Object.getOwnPropertySymbols,ol=Object.prototype.hasOwnProperty,il=Object.prototype.propertyIsEnumerable,rl=(e,t,n)=>t in e?Za(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,sl=(e,t)=>{for(var n in t||(t={}))ol.call(t,n)&&rl(e,n,t[n]);if(nl)for(var n of nl(t))il.call(t,n)&&rl(e,n,t[n]);return e};function al(n,o){var i=n,{error:r,onChange:s,readOnly:a,id:l,inputgroupaddonleft:c,inputgroupaddonright:u,label:h,labelwidth:d,note:p,theme:g,value:m,wrapperClassName:f=""}=i,y=((e,t)=>{var n={};for(var o in e)ol.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&nl)for(var o of nl(e))t.indexOf(o)<0&&il.call(e,o)&&(n[o]=e[o]);return n})(i,["error","onChange","readOnly","id","inputgroupaddonleft","inputgroupaddonright","label","labelwidth","note","theme","value","wrapperClassName"]);const v=(0,e.useRef)();(0,e.useImperativeHandle)(o,(()=>({focus:()=>{v.current.focus()}})));const b=e=>t().createElement("div",{className:"tyk-input-group__addon"},e),w=e=>{s(e,e.target.value)},x=()=>{return t().createElement("input",(e=sl({autoComplete:"off",className:"tyk-form-control"},y),el(e,tl({onChange:w,value:m,ref:v}))));var e};return t().createElement("div",{className:(()=>{const e=[f,"tyk-form-group"],t=g?g.split(" "):[];return t.length&&t.forEach((t=>{e.push(`tyk-form-group--${t}`)})),c&&e.push("tyk-form-group--addon-left"),u&&e.push("tyk-form-group--addon-right"),d&&e.push("tyk-form-group--label-has-width"),r&&e.push("has-error"),e.join(" ")})()},h?t().createElement("label",{htmlFor:l,style:sl({},d&&{flexBasis:d})},h):null,!a&&t().createElement("div",{className:"tyk-form-control__wrapper",style:sl({},d&&{flexBasis:`calc(100% - ${d} - 20px)`})},c||u?t().createElement("div",{className:"tyk-input-group"},c?b(c):null,x(),u?b(u):null):x(),p?t().createElement("p",{className:"tyk-form-control__help-block"},p):null,r&&"true"!==r&&"false"!==r?t().createElement("p",{className:"tyk-form-control__error-message"},r):null),a&&t().createElement("div",{className:"tyk-form-control--readonly"},m||"-"))}al.propTypes={disabled:r().bool,readOnly:r().bool,id:r().string,error:r().oneOfType([r().string,r().bool]),inputgroupaddonleft:r().oneOfType([r().element,r().node,r().string]),inputgroupaddonright:r().oneOfType([r().element,r().node,r().string]),label:r().oneOfType([r().string,r().element,r().node]),labelwidth:r().string,name:r().string,note:r().string,onChange:r().func,placeholder:r().string,theme:r().string,value:r().oneOfType([r().number,r().string]),wrapperClassName:r().string};const ll=(0,e.forwardRef)(al),cl=(0,e.createContext)();function ul({item:n,itemType:o,searchValue:i,onChange:r}){const s=(0,e.useCallback)((e=>(null==e?void 0:e.length)>0?e.some((e=>{var t;return null==(t=n[e])?void 0:t.includes(i)})):JSON.stringify(n).includes(i)),[n,i]),a=(0,e.useCallback)((()=>{r(n)}),[r,n]);return t().createElement(cl.Consumer,null,(e=>s(e.fieldsToSearchOn)?t().createElement("li",null,t().createElement("div",null,t().createElement("span",{className:"tyk-multiselect-item__name"},e.itemDisplayTemplate?e.itemDisplayTemplate(n):JSON.stringify(n)),t().createElement("span",{className:"tyk-multiselect-item__controls"},t().createElement(U,{iconType:"normal"===o?"plus":"minus",iconOnly:!0,onClick:a,disabled:e.disabled||e.maxSelections&&e.maxSelections===e.nrSelectedItems&&"normal"===o}),t().createElement(U,{iconType:e.opened[n.id]?"chevron-up":"chevron-down",iconOnly:!0,onClick:()=>e.onGetItemDetails(n)}))),n.details?t().createElement(R,{collapsed:!e.opened[n.id],className:"tyk-multiselect-item__details"},((e,t)=>e.detailsDisplayTemplate?e.detailsDisplayTemplate(t):JSON.stringify(t.details))(e,n)):((e,n)=>{const{opened:o}=e;return o[n.id]?t().createElement(ye,{position:"relative"}):null})(e,n)):null))}ul.propTypes={item:r().instanceOf(Object),itemType:r().string,searchValue:r().string,onChange:r().func};const hl=ul;function dl({inputPlaceholder:n,noItemsMessage:o,items:i,onCustomSearch:r,onChange:s,customSearch:a,panelType:l,serverLoad:c,itemsPageNumber:u,itemsNrPages:h,loadMoreItems:d}){const[p,m]=(0,e.useState)(""),f=(0,e.useRef)(0),y=(0,e.useRef)(),v=(0,e.useCallback)((e=>{r?r(e):m(e)}),[r]),b=(0,e.useCallback)((e=>{let t=structuredClone(i);t=t.filter((t=>e.id!==t.id)),s(t,e)}),[i]);function w(){return t().createElement("ul",{className:"tyk-multiselect__list"+(c?"":" tyk-multiselect__list--scroll"),ref:y},i.map((e=>t().createElement(hl,{itemType:l,key:(f.current+=1,f.current),onChange:b,searchValue:a?"":p,item:e}))))}return t().createElement("div",{className:"tyk-multiselect__panel"},t().createElement(Qa,{inputgroupaddonleft:t().createElement(g,{type:"search"}),name:"search",onChange:v,placeholder:n,value:p}),i.length?c?t().createElement(At,{refChild:y,hasMore:h>u,loadMore:d,pageNumber:u},w()):w():t().createElement(be,{theme:"info"},o))}dl.propTypes={customSearch:r().bool,onCustomSearch:r().func,panelType:r().string,onChange:r().func,items:r().instanceOf(Array),itemsPageNumber:r().number,itemsNrPages:r().number,inputPlaceholder:r().string,loadMoreItems:r().func,noItemsMessage:r().string,serverLoad:r().bool};const pl=dl;var gl=Object.defineProperty,ml=Object.defineProperties,fl=Object.getOwnPropertyDescriptors,yl=Object.getOwnPropertySymbols,vl=Object.prototype.hasOwnProperty,bl=Object.prototype.propertyIsEnumerable,wl=(e,t,n)=>t in e?gl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const xl=(e,t)=>t.filter((t=>!e.find((e=>e.id===t.id))));function kl({customSearch:n,entityNamePlural:o,disabled:i,error:r,getItemDetails:s,itemDisplayTemplate:a,detailsDisplayTemplate:l,fieldsToSearchOn:c,items:u,itemsPageNumber:h,itemsNrPages:d,loadMoreItems:p,maxSelections:g,note:m,value:f,onChange:y,wrapperClassName:v=""}){const[b,w]=(0,e.useState)({}),x=(0,e.useCallback)((e=>{w((t=>{return n=((e,t)=>{for(var n in t||(t={}))vl.call(t,n)&&wl(e,n,t[n]);if(yl)for(var n of yl(t))bl.call(t,n)&&wl(e,n,t[n]);return e})({},t),o={[e.id]:!t[e.id]},ml(n,fl(o));var n,o})),s&&s(e)}),[s]),k=(0,e.useCallback)((()=>[v,"tyk-multiselect",r&&"has-error"].filter(Boolean).join(" ")),[v,r]),C=(0,e.useCallback)(((e,t)=>{const n=structuredClone(f);n.unshift(t),y(n,t,"added")}),[f]),$=(0,e.useCallback)(((e,t)=>{y(e,t,"removed")}),[u]),S=(0,e.useMemo)((()=>({disabled:i,itemDisplayTemplate:a,detailsDisplayTemplate:l,fieldsToSearchOn:c,maxSelections:g,nrSelectedItems:f.length,onGetItemDetails:x,opened:b})),[i,a,l,c,g,f,x,b]);return t().createElement(t().Fragment,null,t().createElement("div",{className:k()},t().createElement(cl.Provider,{value:S},t().createElement("div",{className:"tyk-multiselect__header"},t().createElement("div",null,f.length," ","Selected"," ",o),t().createElement("div",null,"Select from existing",o)),t().createElement("div",{className:"tyk-multiselect__panel-wrapper"},t().createElement(pl,{inputPlaceholder:`Search through selected ${o}`,noItemsMessage:`Selected ${o} will show here`,items:f,onChange:$,panelType:"selected"}),t().createElement(pl,{inputPlaceholder:`Search existing ${o}`,noItemsMessage:`No ${o} to display`,entityNamePlural:o,customSearch:!!n,onCustomSearch:n,items:xl(f,u),onChange:C,serverLoad:!!p,loadMoreItems:p,itemsPageNumber:h,itemsNrPages:d,panelType:"normal"})))),t().createElement("div",null,m?t().createElement("p",{className:"tyk-form-control__help-block"},m):null),r&&"true"!==r&&"false"!==r?t().createElement("p",{className:"tyk-form-control__error-message"},r):null)}kl.propTypes={customSearch:r().func,disabled:r().bool,error:r().string,entityNamePlural:r().string,items:r().instanceOf(Array),itemDisplayTemplate:r().func,detailsDisplayTemplate:r().func,fieldsToSearchOn:r().instanceOf(Array),onChange:r().func,getItemDetails:r().func,itemsPageNumber:r().number,itemsNrPages:r().number,loadMoreItems:r().func,note:r().string,maxSelections:r().number,value:r().instanceOf(Array),wrapperClassName:r().string};const Cl=kl;var $l=Object.defineProperty,Sl=Object.defineProperties,El=Object.getOwnPropertyDescriptors,Ol=Object.getOwnPropertySymbols,Tl=Object.prototype.hasOwnProperty,Al=Object.prototype.propertyIsEnumerable,_l=(e,t,n)=>t in e?$l(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ll=(e,t)=>{for(var n in t||(t={}))Tl.call(t,n)&&_l(e,n,t[n]);if(Ol)for(var n of Ol(t))Al.call(t,n)&&_l(e,n,t[n]);return e};function Ml(e){var n=e,{label:o,input:i,note:r,inline:s,nospace:a,theme:l="",disabled:c,readOnly:u,wrapperClassName:h=""}=n,d=((e,t)=>{var n={};for(var o in e)Tl.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ol)for(var o of Ol(e))t.indexOf(o)<0&&Al.call(e,o)&&(n[o]=e[o]);return n})(n,["label","input","note","inline","nospace","theme","disabled","readOnly","wrapperClassName"]);const p=[s?"tyk-radio--inline":"tyk-radio",h,a&&"no-margin",...l?l.split(" ").filter(Boolean).map((e=>`tyk-radio--theme-${e}`)):[],(u||c)&&"tyk-radio--is-disabled"].filter(Boolean).join(" ");return t().createElement("div",{className:p},t().createElement("label",null,t().createElement("input",(g=Ll(Ll({},i),d),Sl(g,El({type:"radio",disabled:u||c})))),o),r&&t().createElement("p",{className:"tyk-form-control__help-block"},r));var g}Ml.propTypes={disabled:r().bool,readOnly:r().bool,inline:r().bool,theme:r().string,input:r().instanceOf(Object),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),name:r().string,nospace:r().bool,value:r().string,note:r().oneOfType([r().string,r().element,r().node]),wrapperClassName:r().string};const Rl=Ml;var Nl=Object.defineProperty,Il=Object.defineProperties,Pl=Object.getOwnPropertyDescriptors,Dl=Object.getOwnPropertySymbols,Fl=Object.prototype.hasOwnProperty,Bl=Object.prototype.propertyIsEnumerable,Wl=(e,t,n)=>t in e?Nl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Hl(n){const o=n,{value:i,onChange:r,onBlur:s,isfield:a,label:l,labelwidth:c,id:u,note:h,readOnly:d,options:p,error:g,theme:m,wrapperClassName:f=""}=o,y=((e,t)=>{var n={};for(var o in e)Fl.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Dl)for(var o of Dl(e))t.indexOf(o)<0&&Bl.call(e,o)&&(n[o]=e[o]);return n})(o,["value","onChange","onBlur","isfield","label","labelwidth","id","note","readOnly","options","error","theme","wrapperClassName"]),[v,b]=(0,e.useState)(i);(0,e.useEffect)((()=>{a||v===i||(b(i),r&&r(i))}),[v,i]);const w=(0,e.useCallback)((e=>{const t=p.find((t=>t.id===e.target.value));a||b(t),r(t.id?t:null)}),[p,a,r]),x=(0,e.useCallback)((()=>{s&&s(i)}),[s]),k=(0,e.useCallback)((()=>g&&"true"!==g&&"false"!==g?t().createElement("p",{className:"tyk-form-control__error-message"},g):null),[g]),C=(0,e.useCallback)((()=>["tyk-form-group",f,...m?m.split(" ").map((e=>`tyk-form-group--${e}`)):[],c&&"tyk-form-group--label-has-width",g&&"has-error"].filter(Boolean).join(" ")),[f,m,c,g]),$=(0,e.useCallback)((()=>c?{flexBasis:c}:{}),[c]),S=(0,e.useCallback)((()=>c?{flexBasis:`calc(100% - ${c} - 20px)`}:{}),[c]),E=(0,e.useCallback)((()=>{const e=a&&i?i:v;return t().createElement("select",(n=((e,t)=>{for(var n in t||(t={}))Fl.call(t,n)&&Wl(e,n,t[n]);if(Dl)for(var n of Dl(t))Bl.call(t,n)&&Wl(e,n,t[n]);return e})({className:"tyk-form-control tyk-select"},y),o={onChange:w,onBlur:x,value:e?e.id:""},Il(n,Pl(o))),p.map((e=>t().createElement("option",{key:e.id,value:e.id},e.name))));var n,o}),[a,i,v,w,x,p,y]);return t().createElement("div",{className:C()},l?t().createElement("label",{htmlFor:u,style:$()},l):null,!d&&t().createElement("div",{className:"tyk-form-control__wrapper",style:S()},E(),h?t().createElement("p",{className:"tyk-form-control__help-block"},h):null,k()),d&&t().createElement("div",{className:"tyk-form-control--readonly"},i||"-"))}Hl.propTypes={disabled:r().bool,readOnly:r().bool,id:r().string,isfield:r().bool,error:r().oneOfType([r().string,r().bool]),options:r().instanceOf(Array),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,name:r().string,note:r().string,onBlur:r().func,onChange:r().func,placeholder:r().string,theme:r().string,value:r().oneOfType([r().string,r().object]),wrapperClassName:r().string};const jl=Hl;var zl=Object.defineProperty,Vl=Object.defineProperties,Ul=Object.getOwnPropertyDescriptors,Gl=Object.getOwnPropertySymbols,Kl=Object.prototype.hasOwnProperty,ql=Object.prototype.propertyIsEnumerable,Yl=(e,t,n)=>t in e?zl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Jl(e){const{checkboxalticon:n,items:o,itemTemplate:i,value:r,noItemsMessage:s="No items in the list",onChange:a,theme:l,primaryKey:c,wrapperClassName:u=""}=e,h=e=>{const t=structuredClone(r),n=t.findIndex((t=>JSON.stringify(t)===JSON.stringify(Array.isArray(t)?e.target.value.split(","):e.target.value)));if(e.target.checked&&-1===n){const n=e.target.value.split(","),o=n.length>1?n:e.target.value;t.push(o)}else!e.target.checked&&n>-1&&t.splice(n,1);a&&a(t)},d=e=>{const t=[];return n&&t.push("tyk-selectable-list__item--with-icon"),e&&t.push("tyk-selectable-list__item--active"),t.join(" ")};return t().createElement(jt,(p=((e,t)=>{for(var n in t||(t={}))Kl.call(t,n)&&Yl(e,n,t[n]);if(Gl)for(var n of Gl(t))ql.call(t,n)&&Yl(e,n,t[n]);return e})({},e),Vl(p,Ul({theme:l||"default",className:`tyk-selectable-list ${u}`}))),o.length?o.map(((e,o)=>{return t().createElement(jt.Item,{key:o,className:d(r.includes(e[c]))},t().createElement("label",null,t().createElement("div",{className:"tyk-selectable-list__item"},i?i(e):e.name),t().createElement("input",{type:"checkbox",checked:(s=r,a=e[c],Boolean(s.find((e=>JSON.stringify(a)===JSON.stringify(e))))),onChange:h.bind(e),value:e[c]}),n?t().createElement(g,{type:n}):null));var s,a})):t().createElement("li",{className:"tyk-selectable-list__no-items-message"},t().createElement(be,{theme:"info"},s)));var p}Jl.propTypes={items:r().instanceOf(Array),itemTemplate:r().oneOfType([r().node,r().element,r().string,r().func]),value:r().instanceOf(Array),onChange:r().func,primaryKey:r().string,noItemsMessage:r().string,checkboxalticon:r().oneOfType([r().node,r().element,r().string]),theme:r().string,wrapperClassName:r().string},Jl.defaultProps={items:[],primaryKey:"id",value:[]};const Xl=Jl;var Ql=Object.defineProperty,Zl=Object.getOwnPropertySymbols,ec=Object.prototype.hasOwnProperty,tc=Object.prototype.propertyIsEnumerable,nc=(e,t,n)=>t in e?Ql(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,oc=(e,t)=>{for(var n in t||(t={}))ec.call(t,n)&&nc(e,n,t[n]);if(Zl)for(var n of Zl(t))tc.call(t,n)&&nc(e,n,t[n]);return e};function ic(e){var n=e,{id:o,input:i,label:r,note:s,error:a,theme:l,labelwidth:c,value:u,readOnly:h,wrapperClassName:d}=n,p=((e,t)=>{var n={};for(var o in e)ec.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Zl)for(var o of Zl(e))t.indexOf(o)<0&&tc.call(e,o)&&(n[o]=e[o]);return n})(n,["id","input","label","note","error","theme","labelwidth","value","readOnly","wrapperClassName"]);const g=["tyk-form-group",d,...l?l.split(" ").map((e=>`tyk-form-group--${e}`)):[],c&&"tyk-form-group--label-has-width",a&&"has-error"].filter(Boolean).join(" ");return t().createElement("div",{className:g},r?t().createElement("label",{htmlFor:o,style:c?{flexBasis:c}:{}},r):null,!h&&t().createElement("div",{className:"tyk-form-control__wrapper",style:c?{flexBasis:`calc(100% - ${c} - 20px)`}:{}},t().createElement("textarea",oc(oc({className:"tyk-form-control"},p),i),u),s?t().createElement("p",{className:"tyk-form-control__help-block"},s):null,a&&"true"!==a&&"false"!==a?t().createElement("p",{className:"tyk-form-control__error-message"},a):null),h&&t().createElement("div",{className:"tyk-form-control--readonly"},u||"-"))}ic.propTypes={disabled:r().bool,readOnly:r().bool,input:r().instanceOf(Object),error:r().string,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,name:r().string,note:r().string,onChange:r().func,id:r().string,theme:r().string,value:r().string,wrapperClassName:r().string};const rc=ic,sc=(0,e.createContext)();class ac extends e.Component{static getNotchCssClasses(e){return["tyk-toggle__item-notch",`tyk-toggle__item-notch--${e.type}`].join(" ")}constructor(t){super(t),this.itemRef=(0,e.createRef)()}componentDidMount(){const{context:e,value:t}=this.props;e.value===t&&e.saveSelectedRef(this.itemRef)}componentDidUpdate(e){const{context:t,value:n}=this.props;e.context.value!==t.value&&t.value===n&&t.saveSelectedRef(this.itemRef)}onChange(e){const{context:t,value:n}=this.props,{disabled:o,readOnly:i}=t;o||i||t.onItemSelected("single"===t.type?!t.value:n,e)}render(){const{context:e,label:n,name:o,value:i}=this.props;return t().createElement("li",{className:"tyk-toggle__item "+(!e.value||"single"!==e.type&&e.value!==i?"":"tyk-toggle__item--active"),ref:this.itemRef},t().createElement("label",null,t().createElement("input",{type:"single"===e.type?"checkbox":"radio",name:o,checked:e.value===i,onChange:this.onChange.bind(this),value:i}),n?t().createElement("span",null,n):t().createElement("span",{className:"empty-toggle"}," "),"single"===e.type?t().createElement("span",{className:ac.getNotchCssClasses(e)}):null))}}ac.propTypes={context:r().instanceOf(Object),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),name:r().string,value:r().string};const lc=ac;var cc=Object.defineProperty,uc=Object.defineProperties,hc=Object.getOwnPropertyDescriptors,dc=Object.getOwnPropertySymbols,pc=Object.prototype.hasOwnProperty,gc=Object.prototype.propertyIsEnumerable,mc=(e,t,n)=>t in e?cc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function fc(e,n){var o=e,{children:i}=o,r=((e,t)=>{var n={};for(var o in e)pc.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&dc)for(var o of dc(e))t.indexOf(o)<0&&gc.call(e,o)&&(n[o]=e[o]);return n})(o,["children"]);return t().createElement(sc.Consumer,null,(e=>{return t().createElement(lc,(o=((e,t)=>{for(var n in t||(t={}))pc.call(t,n)&&mc(e,n,t[n]);if(dc)for(var n of dc(t))gc.call(t,n)&&mc(e,n,t[n]);return e})({},r),uc(o,hc({context:e,ref:n}))),i);var o}))}fc.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string])};const yc=(0,e.forwardRef)(fc);function vc({className:n,disabled:o,readOnly:i,size:r,theme:s,direction:a,onDark:l,wrapperClassName:c="",onChange:u,labelwidth:h,label:d,separated:p,children:g,type:m,value:f,error:y}){const[v,b]=(0,e.useState)(null),w=(0,e.useRef)(),x=(0,e.useRef)(),k=[c,n,"tyk-toggle",`tyk-toggle--disabled-${i||o}`,`tyk-toggle--${r||"md"}`,`tyk-toggle--${s}`,`tyk-toggle--${a}`,l&&"tyk-toggle--on-dark"].filter(Boolean).join(" "),C=(0,e.useCallback)(((e,t)=>{u&&u(e,t)}),[u]),$=(0,e.useCallback)((()=>h?{flexBasis:h}:{}),[h]),S=(0,e.useCallback)((()=>{if(!v||p)return{};const e=v.current.offsetWidth;return{left:v.current.getBoundingClientRect().left-x.current.getBoundingClientRect().left+4+"px",width:e-8+"px"}}),[v,p]),E=(0,e.useMemo)((()=>({disabled:o,readOnly:i,onItemSelected:C,saveSelectedRef:b,separated:p,type:m,value:f})),[o,i,C,p,m,f]);return t().createElement(t().Fragment,null,t().createElement("div",{className:k,ref:x},t().createElement(sc.Provider,{value:E},d?t().createElement("label",{className:"tyk-toggle__label",style:$()},d):null,t().createElement("ul",{className:`tyk-toggle__list tyk-toggle__list--${m} ${y&&"tyk-toggle__list--has-error"} tyk-toggle__list--${p?"separated":"not-separated"}`},g,"multiple"!==m||p?null:t().createElement("li",{className:"tyk-toggle__notch",ref:w,style:S()})))),y&&t().createElement("p",{className:"tyk-form-control__error-message"},y))}vc.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,disabled:r().bool,readOnly:r().bool,error:r().string,onChange:r().func,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,theme:r().string,type:r().string,size:r().string,separated:r().bool,direction:r().string,value:r().oneOfType([r().bool,r().string]),onDark:r().bool,wrapperClassName:r().string},vc.defaultProps={separated:!1,theme:"primary",type:"single",direction:"row"},vc.Item=yc;const bc=vc,wc={FORM_DEBOUNCE:200};function xc(e,t){wc[e]=t}const kc=wc;var Cc=Object.defineProperty,$c=Object.defineProperties,Sc=Object.getOwnPropertyDescriptors,Ec=Object.getOwnPropertySymbols,Oc=Object.prototype.hasOwnProperty,Tc=Object.prototype.propertyIsEnumerable,Ac=(e,t,n)=>t in e?Cc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,_c=(e,t)=>{for(var n in t||(t={}))Oc.call(t,n)&&Ac(e,n,t[n]);if(Ec)for(var n of Ec(t))Tc.call(t,n)&&Ac(e,n,t[n]);return e},Lc=(e,t)=>$c(e,Sc(t));function Mc(e,t){return t.split(/[\][.]/).filter(Boolean).reduce(((e,t)=>e?e[t]:e),e)}const Rc=(n,o)=>i=>{var r,s=i,{field:a,form:l}=s,c=((e,t)=>{var n={};for(var o in e)Oc.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ec)for(var o of Ec(e))t.indexOf(o)<0&&Tc.call(e,o)&&(n[o]=e[o]);return n})(s,["field","form"]);const u="number"==typeof kc.FORM_DEBOUNCE?kc.FORM_DEBOUNCE:200,[h,d]=(0,e.useState)(a.value),p=_c({getOnChangeProps:()=>({}),hasIsFieldProp:!1},o),g=(0,e.useCallback)((()=>{const e=e=>e();return!1===c.debounce||!1===kc.FORM_DEBOUNCE&&!c.debounce?e:function(e,t){let n;return(...o)=>{clearTimeout(n),n=setTimeout(e,t,...o)}}(e,"number"==typeof c.debounce?c.debounce:u)})(),[]),m=e=>{const t=(null==(n=e)?void 0:n.target)?"INPUT"!==n.target.nodeName||"checkbox"!==n.target.type&&"radio"!==n.target.type?n.target.value:n.target.checked:n;var n;const o=p.getOnChangeProps(t,a,l,c),i=o.value||c.value||t;g((()=>{"function"==typeof c.onChange&&c.onChange(i),a.onChange({target:_c({name:a.name,value:i},o)})})),d(i)},f=(Mc(l.touched,a.name)||Boolean(l.submitCount))&&Mc(l.errors,a.name),y="string"==typeof f?f:"";(0,e.useEffect)((()=>{d(a.value)}),[a.value]),(null==(r=l.status)?void 0:r.disabled)&&(c.disabled=!0);const v=_c({},c);return delete v.debounce,Object.hasOwn(v,"className")&&void 0===v.className&&delete v.className,Object.hasOwn(v,"children")&&void 0===v.children&&delete v.children,t().createElement(n,Lc(_c(_c(Lc(_c({},a),{error:y}),p.hasIsFieldProp?{isfield:!0}:{}),v),{checked:"string"==typeof c.value?a.value===c.value:a.value,onChange:m,value:h,input:{value:h,onChange:m}}))},Nc=Rc(Io,{getOnChangeProps:e=>({checked:e})}),Ic=Rc(gr),Pc=Rc(Sr),Dc=Rc(Wr),Fc=Rc(Zr),Bc=Rc(ha,{getOnChangeProps:e=>({value:e||[]})}),Wc=Rc(Na),Hc=Rc(za),jc=Rc(Qa,{hasIsFieldProp:!0}),zc=Rc(ll),Vc=Rc(Cl),Uc=Rc(Rl,{getOnChangeProps:(e,t,n,o)=>({checked:e===o.value,value:o.value})}),Gc=Rc(jl,{hasIsFieldProp:!0}),Kc=Rc(Xl),qc=Rc(rc),Yc=Rc(bc);var Jc=Object.defineProperty,Xc=Object.defineProperties,Qc=Object.getOwnPropertyDescriptors,Zc=Object.getOwnPropertySymbols,eu=Object.prototype.hasOwnProperty,tu=Object.prototype.propertyIsEnumerable,nu=(e,t,n)=>t in e?Jc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ou=(e,t)=>{for(var n in t||(t={}))eu.call(t,n)&&nu(e,n,t[n]);if(Zc)for(var n of Zc(t))tu.call(t,n)&&nu(e,n,t[n]);return e};class iu extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.prop,{onChange:n}=t;n((0,pe.fromJS)(e))}getInputError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=this.props,{input:n}=e,o=((e,t)=>{var n={};for(var o in e)eu.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Zc)for(var o of Zc(e))t.indexOf(o)<0&&tu.call(e,o)&&(n[o]=e[o]);return n})(e,["input"]);return t().createElement(gr,(i=ou(ou({},n),o),r={error:this.getInputError()},Xc(i,Qc(r))));var i,r}}iu.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const ru=iu;var su=Object.defineProperty,au=Object.defineProperties,lu=Object.getOwnPropertyDescriptors,cu=Object.getOwnPropertySymbols,uu=Object.prototype.hasOwnProperty,hu=Object.prototype.propertyIsEnumerable,du=(e,t,n)=>t in e?su(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class pu extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props,{onChange:n}=t;n((0,pe.fromJS)(e))}getComboboxError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=((e,t)=>{var n={};for(var o in e)uu.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&cu)for(var o of cu(e))t.indexOf(o)<0&&hu.call(e,o)&&(n[o]=e[o]);return n})(this.props,[]);return t().createElement(Sr,(n=((e,t)=>{for(var n in t||(t={}))uu.call(t,n)&&du(e,n,t[n]);if(cu)for(var n of cu(t))hu.call(t,n)&&du(e,n,t[n]);return e})({},e),o={onChange:this.handleOnChange,value:e.input.value?e.input.value.toJS():e.input.value,error:this.getComboboxError()},au(n,lu(o))));var n,o}}pu.propTypes={meta:r().instanceOf(Object),input:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const gu=pu;var mu=Object.defineProperty,fu=Object.defineProperties,yu=Object.getOwnPropertyDescriptors,vu=Object.getOwnPropertySymbols,bu=Object.prototype.hasOwnProperty,wu=Object.prototype.propertyIsEnumerable,xu=(e,t,n)=>t in e?mu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class ku extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props,{onChange:n}=t;n((0,pe.fromJS)(e))}render(){const e=this.props,{children:n,input:o}=e,i=((e,t)=>{var n={};for(var o in e)bu.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&vu)for(var o of vu(e))t.indexOf(o)<0&&wu.call(e,o)&&(n[o]=e[o]);return n})(e,["children","input"]);return t().createElement(Oi,(r=((e,t)=>{for(var n in t||(t={}))bu.call(t,n)&&xu(e,n,t[n]);if(vu)for(var n of vu(t))wu.call(t,n)&&xu(e,n,t[n]);return e})({},i),s={onSelect:this.handleOnChange,selectedItem:o.value},fu(r,yu(s))),n);var r,s}}ku.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),input:r().instanceOf(Object)};const Cu=ku;var $u=Object.defineProperty,Su=Object.defineProperties,Eu=Object.getOwnPropertyDescriptors,Ou=Object.getOwnPropertySymbols,Tu=Object.prototype.hasOwnProperty,Au=Object.prototype.propertyIsEnumerable,_u=(e,t,n)=>t in e?$u(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Lu=(e,t)=>{for(var n in t||(t={}))Tu.call(t,n)&&_u(e,n,t[n]);if(Ou)for(var n of Ou(t))Au.call(t,n)&&_u(e,n,t[n]);return e};function Mu(e){const n=e,{input:o}=n,i=((e,t)=>{var n={};for(var o in e)Tu.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ou)for(var o of Ou(e))t.indexOf(o)<0&&Au.call(e,o)&&(n[o]=e[o]);return n})(n,["input"]);return t().createElement(po,(r=Lu(Lu({},o),i),s={onChange:o.onChange,value:o.value?o.value:0},Su(r,Eu(s))));var r,s}Mu.propTypes={input:r().instanceOf(Object)};const Ru=Mu;var Nu=Object.defineProperty,Iu=Object.defineProperties,Pu=Object.getOwnPropertyDescriptors,Du=Object.getOwnPropertySymbols,Fu=Object.prototype.hasOwnProperty,Bu=Object.prototype.propertyIsEnumerable,Wu=(e,t,n)=>t in e?Nu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Hu(e){const{input:n,meta:o,validationmessages:i}=e;return t().createElement(Wr,(r=((e,t)=>{for(var n in t||(t={}))Fu.call(t,n)&&Wu(e,n,t[n]);if(Du)for(var n of Du(t))Bu.call(t,n)&&Wu(e,n,t[n]);return e})({},e),s={onChange:e=>{const{onChange:t}=n;t((0,pe.fromJS)(e))},value:n.value?n.value.toJS():n.value,error:(()=>{const{touched:e,error:t,warning:n}=o;let r=null;return e&&t&&i[t]?r=i[t]:e&&n&&(r="warning"),r})()},Iu(r,Pu(s))));var r,s}Hu.propTypes={meta:r().instanceOf(Object),input:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const ju=Hu;var zu=Object.defineProperty,Vu=Object.defineProperties,Uu=Object.getOwnPropertyDescriptors,Gu=Object.getOwnPropertySymbols,Ku=Object.prototype.hasOwnProperty,qu=Object.prototype.propertyIsEnumerable,Yu=(e,t,n)=>t in e?zu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Ju(e){const n=e,{input:o,meta:i,validationmessages:r}=n,s=((e,t)=>{var n={};for(var o in e)Ku.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Gu)for(var o of Gu(e))t.indexOf(o)<0&&qu.call(e,o)&&(n[o]=e[o]);return n})(n,["input","meta","validationmessages"]);return t().createElement(Zr,(a=((e,t)=>{for(var n in t||(t={}))Ku.call(t,n)&&Yu(e,n,t[n]);if(Gu)for(var n of Gu(t))qu.call(t,n)&&Yu(e,n,t[n]);return e})({},s),l={onChange:e=>{const{onChange:t}=o;t((0,pe.fromJS)(e))},value:o.value?o.value.toJS():o.value,error:(()=>{const{touched:e,error:t}=i;let n=null;return e&&t&&r[t]&&(n=r[t]),n})()},Vu(a,Uu(l))));var a,l}Ju.propTypes={meta:r().instanceOf(Object),input:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const Xu=Ju;var Qu=Object.defineProperty,Zu=Object.defineProperties,eh=Object.getOwnPropertyDescriptors,th=Object.getOwnPropertySymbols,nh=Object.prototype.hasOwnProperty,oh=Object.prototype.propertyIsEnumerable,ih=(e,t,n)=>t in e?Qu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class rh extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props,{onChange:n}=t;n((0,pe.fromJS)(e))}getEditableListError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o}=e;let i=null;return n&&o&&t[o]&&(i=t[o]),i}render(){const e=((e,t)=>{var n={};for(var o in e)nh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&th)for(var o of th(e))t.indexOf(o)<0&&oh.call(e,o)&&(n[o]=e[o]);return n})(this.props,[]);return t().createElement(ha,(n=((e,t)=>{for(var n in t||(t={}))nh.call(t,n)&&ih(e,n,t[n]);if(th)for(var n of th(t))oh.call(t,n)&&ih(e,n,t[n]);return e})({},e),o={onChange:this.handleOnChange,value:e.input.value?e.input.value.toJS():null,error:this.getEditableListError()},Zu(n,eh(o))));var n,o}}rh.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const sh=rh;var ah=Object.defineProperty,lh=Object.defineProperties,ch=Object.getOwnPropertyDescriptors,uh=Object.getOwnPropertySymbols,hh=Object.prototype.hasOwnProperty,dh=Object.prototype.propertyIsEnumerable,ph=(e,t,n)=>t in e?ah(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,gh=(e,t)=>{for(var n in t||(t={}))hh.call(t,n)&&ph(e,n,t[n]);if(uh)for(var n of uh(t))dh.call(t,n)&&ph(e,n,t[n]);return e};class mh extends e.Component{getInputError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=this.props,{input:n}=e,o=((e,t)=>{var n={};for(var o in e)hh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&uh)for(var o of uh(e))t.indexOf(o)<0&&dh.call(e,o)&&(n[o]=e[o]);return n})(e,["input"]);return t().createElement(za,(i=gh(gh({},n),o),r={error:this.getInputError()},lh(i,ch(r))));var i,r}}mh.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const fh=mh;var yh=Object.defineProperty,vh=Object.defineProperties,bh=Object.getOwnPropertyDescriptors,wh=Object.getOwnPropertySymbols,xh=Object.prototype.hasOwnProperty,kh=Object.prototype.propertyIsEnumerable,Ch=(e,t,n)=>t in e?yh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,$h=(e,t)=>{for(var n in t||(t={}))xh.call(t,n)&&Ch(e,n,t[n]);if(wh)for(var n of wh(t))kh.call(t,n)&&Ch(e,n,t[n]);return e};class Sh extends e.Component{getInputError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=this.props,{input:n}=e,o=((e,t)=>{var n={};for(var o in e)xh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&wh)for(var o of wh(e))t.indexOf(o)<0&&kh.call(e,o)&&(n[o]=e[o]);return n})(e,["input"]);return t().createElement(Qa,(i=$h($h({},n),o),r={isfield:!0,error:this.getInputError()},vh(i,bh(r))));var i,r}}Sh.propTypes={meta:r().instanceOf(Object),input:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const Eh=Sh;var Oh=Object.defineProperty,Th=Object.defineProperties,Ah=Object.getOwnPropertyDescriptors,_h=Object.getOwnPropertySymbols,Lh=Object.prototype.hasOwnProperty,Mh=Object.prototype.propertyIsEnumerable,Rh=(e,t,n)=>t in e?Oh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Nh extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props,{onChange:n}=t;n((0,pe.fromJS)(e))}getMultiselectError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=((e,t)=>{var n={};for(var o in e)Lh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&_h)for(var o of _h(e))t.indexOf(o)<0&&Mh.call(e,o)&&(n[o]=e[o]);return n})(this.props,[]);return t().createElement(Cl,(n=((e,t)=>{for(var n in t||(t={}))Lh.call(t,n)&&Rh(e,n,t[n]);if(_h)for(var n of _h(t))Mh.call(t,n)&&Rh(e,n,t[n]);return e})({},e),o={onChange:this.handleOnChange,value:e.input.value?e.input.value.toJS():e.input.value,error:this.getMultiselectError()},Th(n,Ah(o))));var n,o}}Nh.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const Ih=Nh;var Ph=Object.defineProperty,Dh=Object.defineProperties,Fh=Object.getOwnPropertyDescriptors,Bh=Object.getOwnPropertySymbols,Wh=Object.prototype.hasOwnProperty,Hh=Object.prototype.propertyIsEnumerable,jh=(e,t,n)=>t in e?Ph(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,zh=(e,t)=>{for(var n in t||(t={}))Wh.call(t,n)&&jh(e,n,t[n]);if(Bh)for(var n of Bh(t))Hh.call(t,n)&&jh(e,n,t[n]);return e};class Vh extends e.Component{constructor(e){super(e),this.handleEvent=this.handleEvent.bind(this)}handleEvent(e){const{input:t}=this.props,{onChange:n,value:o}=t;n((0,pe.fromJS)(void 0!==e?e:o))}getSelectError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=this.props,{input:n}=e,o=((e,t)=>{var n={};for(var o in e)Wh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Bh)for(var o of Bh(e))t.indexOf(o)<0&&Hh.call(e,o)&&(n[o]=e[o]);return n})(e,["input"]);return t().createElement(jl,(i=zh(zh({},n),o),r={isfield:!0,error:this.getSelectError(),onChange:this.handleEvent,onBlur:this.handleEvent,value:n.value?n.value.toJS():n.value},Dh(i,Fh(r))));var i,r}}Vh.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const Uh=Vh;var Gh=Object.defineProperty,Kh=Object.defineProperties,qh=Object.getOwnPropertyDescriptors,Yh=Object.getOwnPropertySymbols,Jh=Object.prototype.hasOwnProperty,Xh=Object.prototype.propertyIsEnumerable,Qh=(e,t,n)=>t in e?Gh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Zh extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props;t.onChange((0,pe.fromJS)(e))}render(){const e=this.props,{children:n}=e,o=((e,t)=>{var n={};for(var o in e)Jh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Yh)for(var o of Yh(e))t.indexOf(o)<0&&Xh.call(e,o)&&(n[o]=e[o]);return n})(e,["children"]);return t().createElement(Xl,(i=((e,t)=>{for(var n in t||(t={}))Jh.call(t,n)&&Qh(e,n,t[n]);if(Yh)for(var n of Yh(t))Xh.call(t,n)&&Qh(e,n,t[n]);return e})({},o),r={onChange:this.handleOnChange,value:o.input.value?o.input.value.toJS():[]},Kh(i,qh(r))));var i,r}}Zh.propTypes={children:r().oneOfType([r().node]),onChange:r().func,input:r().instanceOf(Object)};const ed=Zh;var td=Object.defineProperty,nd=Object.defineProperties,od=Object.getOwnPropertyDescriptors,id=Object.getOwnPropertySymbols,rd=Object.prototype.hasOwnProperty,sd=Object.prototype.propertyIsEnumerable,ad=(e,t,n)=>t in e?td(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class ld extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props;t.onChange((0,pe.fromJS)(e))}render(){const e=this.props,{children:n}=e,o=((e,t)=>{var n={};for(var o in e)rd.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&id)for(var o of id(e))t.indexOf(o)<0&&sd.call(e,o)&&(n[o]=e[o]);return n})(e,["children"]);return t().createElement(bc,(i=((e,t)=>{for(var n in t||(t={}))rd.call(t,n)&&ad(e,n,t[n]);if(id)for(var n of id(t))sd.call(t,n)&&ad(e,n,t[n]);return e})({},o),r={onChange:this.handleOnChange,value:o.input.value},nd(i,od(r))),n);var i,r}}ld.propTypes={children:r().oneOfType([r().node]),onChange:r().func,input:r().instanceOf(Object)};const cd=ld;function ud(t,n,...o){const i=(0,e.useRef)();(0,e.useEffect)((()=>{i.current=t}),[t]),(0,e.useEffect)((()=>{if(null!=n){const e=setInterval((function(){i.current(...o)}),n);return()=>clearInterval(e)}}),[n])}})(),module.exports=o})(); +(()=>{var e={239:(e,t,n)=>{e=n.nmd(e),function(){var e=function(){return this}();e||"undefined"==typeof window||(e=window);var t=function(e,n,o){"string"==typeof e?(2==arguments.length&&(o=n),t.modules[e]||(t.payloads[e]=o,t.modules[e]=null)):t.original?t.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace())};t.modules={},t.payloads={};var n,o,i=function(e,t,n){if("string"==typeof t){var o=a(e,t);if(null!=o)return n&&n(),o}else if("[object Array]"===Object.prototype.toString.call(t)){for(var i=[],s=0,l=t.length;sn.length)&&(t=n.length),t-=e.length;var o=n.indexOf(e,t);return-1!==o&&o===t})),String.prototype.repeat||o(String.prototype,"repeat",(function(e){for(var t="",n=this;e>0;)1&e&&(t+=n),(e>>=1)&&(n+=n);return t})),String.prototype.includes||o(String.prototype,"includes",(function(e,t){return-1!=this.indexOf(e,t)})),Object.assign||(Object.assign=function(e){if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),n=1;n>>0,o=0|arguments[1],i=o<0?Math.max(n+o,0):Math.min(o,n),r=arguments[2],s=void 0===r?n:0|r,a=s<0?Math.max(n+s,0):Math.min(s,n);i0;)1&t&&(n+=e),(t>>=1)&&(e+=e);return n};var o=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(o,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){for(var t=[],n=0,o=e.length;n65535?2:1}})),ace.define("ace/lib/useragent",["require","exports","module"],(function(e,t,n){"use strict";t.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},t.getOS=function(){return t.isMac?t.OS.MAC:t.isLinux?t.OS.LINUX:t.OS.WINDOWS};var o="object"==typeof navigator?navigator:{},i=(/mac|win|linux/i.exec(o.platform)||["other"])[0].toLowerCase(),r=o.userAgent||"",s=o.appName||"";t.isWin="win"==i,t.isMac="mac"==i,t.isLinux="linux"==i,t.isIE="Microsoft Internet Explorer"==s||s.indexOf("MSAppHost")>=0?parseFloat((r.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((r.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=r.match(/ Gecko\/\d+/),t.isOpera="object"==typeof opera&&"[object Opera]"==Object.prototype.toString.call(window.opera),t.isWebKit=parseFloat(r.split("WebKit/")[1])||void 0,t.isChrome=parseFloat(r.split(" Chrome/")[1])||void 0,t.isSafari=parseFloat(r.split(" Safari/")[1])&&!t.isChrome||void 0,t.isEdge=parseFloat(r.split(" Edge/")[1])||void 0,t.isAIR=r.indexOf("AdobeAIR")>=0,t.isAndroid=r.indexOf("Android")>=0,t.isChromeOS=r.indexOf(" CrOS ")>=0,t.isIOS=/iPad|iPhone|iPod/.test(r)&&!window.MSStream,t.isIOS&&(t.isMac=!0),t.isMobile=t.isIOS||t.isAndroid})),ace.define("ace/lib/dom",["require","exports","module","ace/lib/useragent"],(function(e,t,n){"use strict";var o,i=e("./useragent");t.buildDom=function e(t,n,o){if("string"==typeof t&&t){var i=document.createTextNode(t);return n&&n.appendChild(i),i}if(!Array.isArray(t))return t&&t.appendChild&&n&&n.appendChild(t),t;if("string"!=typeof t[0]||!t[0]){for(var r=[],s=0;s=1.5,i.isChromeOS&&(t.HI_DPI=!1),"undefined"!=typeof document){var l=document.createElement("div");t.HI_DPI&&void 0!==l.style.transform&&(t.HAS_CSS_TRANSFORMS=!0),i.isEdge||void 0===l.style.animationName||(t.HAS_CSS_ANIMATION=!0),l=null}t.HAS_CSS_TRANSFORMS?t.translate=function(e,t,n){e.style.transform="translate("+Math.round(t)+"px, "+Math.round(n)+"px)"}:t.translate=function(e,t,n){e.style.top=Math.round(n)+"px",e.style.left=Math.round(t)+"px"}})),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("./dom");t.get=function(e,t){var n=new XMLHttpRequest;n.open("GET",e,!0),n.onreadystatechange=function(){4===n.readyState&&t(n.responseText)},n.send(null)},t.loadScript=function(e,t){var n=o.getDocumentHead(),i=document.createElement("script");i.src=e,n.appendChild(i),i.onload=i.onreadystatechange=function(e,n){!n&&i.readyState&&"loaded"!=i.readyState&&"complete"!=i.readyState||(i=i.onload=i.onreadystatechange=null,n||t())}},t.qualifyURL=function(e){var t=document.createElement("a");return t.href=e,t.href}})),ace.define("ace/lib/oop",["require","exports","module"],(function(e,t,n){"use strict";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}})),ace.define("ace/lib/event_emitter",["require","exports","module"],(function(e,t,n){"use strict";var o={},i=function(){this.propagationStopped=!0},r=function(){this.defaultPrevented=!0};o._emit=o._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],o=this._defaultHandlers[e];if(n.length||o){"object"==typeof t&&t||(t={}),t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=r),n=n.slice();for(var s=0;s1&&(i=n[n.length-2]);var s=l[t+"Path"];return null==s?s=l.basePath:"/"==o&&(t=o=""),s&&"/"!=s.slice(-1)&&(s+="/"),s+t+o+i+this.get("suffix")},t.setModuleUrl=function(e,t){return l.$moduleUrls[e]=t},t.setLoader=function(e){a=e},t.dynamicModules=Object.create(null),t.$loading={},t.$loaded={},t.loadModule=function(n,o){var r,s;Array.isArray(n)&&(s=n[0],n=n[1]);var l=function(r){if(r&&!t.$loading[n])return o&&o(r);if(t.$loading[n]||(t.$loading[n]=[]),t.$loading[n].push(o),!(t.$loading[n].length>1)){var l=function(){!function(t,n){"ace/theme/textmate"===t||"./theme/textmate"===t?n(0,e("./theme/textmate")):a?a(t,n):console.error("loader is not configured")}(n,(function(e,o){o&&(t.$loaded[n]=o),t._emit("load.module",{name:n,module:o});var i=t.$loading[n];t.$loading[n]=null,i.forEach((function(e){e&&e(o)}))}))};if(!t.get("packaged"))return l();i.loadScript(t.moduleUrl(n,s),l),c()}};if(t.dynamicModules[n])t.dynamicModules[n]().then((function(e){e.default?l(e.default):l(e)}));else{try{r=this.$require(n)}catch(e){}l(r||t.$loaded[n])}},t.$require=function(e){if("function"==typeof n.require)return n.require(e)},t.setModuleLoader=function(e,n){t.dynamicModules[e]=n};var c=function(){l.basePath||l.workerPath||l.modePath||l.themePath||Object.keys(l.$moduleUrls).length||(console.error("Unable to infer path to ace from script src,","use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes","or with webpack use ace/webpack-resolver"),c=function(){})};t.version="1.32.0"})),ace.define("ace/loader_build",["require","exports","module","ace/lib/fixoldbrowsers","ace/config"],(function(e,t,o){"use strict";e("./lib/fixoldbrowsers");var i=e("./config");i.setLoader((function(t,n){e([t],(function(e){n(null,e)}))}));var r=function(){return this||"undefined"!=typeof window&&window}();function s(t){if(r&&r.document){i.set("packaged",t||e.packaged||o.packaged||r.define&&n.amdD.packaged);var s={},a="",l=document.currentScript||document._currentScript,c=l&&l.ownerDocument||document;l&&l.src&&(a=l.src.split(/[?#]/)[0].split("/").slice(0,-1).join("/")||"");for(var u,h=c.getElementsByTagName("script"),d=0;d ["+this.end.row+"/"+this.end.column+"]"},e.prototype.contains=function(e,t){return 0==this.compare(e,t)},e.prototype.compareRange=function(e){var t,n=e.end,o=e.start;return 1==(t=this.compare(n.row,n.column))?1==(t=this.compare(o.row,o.column))?2:0==t?1:0:-1==t?-2:-1==(t=this.compare(o.row,o.column))?-1:1==t?42:0},e.prototype.comparePoint=function(e){return this.compare(e.row,e.column)},e.prototype.containsRange=function(e){return 0==this.comparePoint(e.start)&&0==this.comparePoint(e.end)},e.prototype.intersects=function(e){var t=this.compareRange(e);return-1==t||0==t||1==t},e.prototype.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},e.prototype.isStart=function(e,t){return this.start.row==e&&this.start.column==t},e.prototype.setStart=function(e,t){"object"==typeof e?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},e.prototype.setEnd=function(e,t){"object"==typeof e?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},e.prototype.inside=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)&&!this.isStart(e,t)},e.prototype.insideStart=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)},e.prototype.insideEnd=function(e,t){return 0==this.compare(e,t)&&!this.isStart(e,t)},e.prototype.compare=function(e,t){return this.isMultiLine()||e!==this.start.row?ethis.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0:tthis.end.column?1:0},e.prototype.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},e.prototype.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},e.prototype.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},e.prototype.clipRows=function(t,n){if(this.end.row>n)var o={row:n+1,column:0};else this.end.rown)var i={row:n+1,column:0};else this.start.row1?++h>4&&(h=1):h=1,r.isIE){var s=Math.abs(e.clientX-a)>5||Math.abs(e.clientY-l)>5;c&&!s||(h=1),c&&clearTimeout(c),c=setTimeout((function(){c=null}),n[h-1]||600),1==h&&(a=e.clientX,l=e.clientY)}if(e._clicks=h,o[i]("mousedown",e),h>4)h=0;else if(h>1)return o[i](d[h],e)}Array.isArray(e)||(e=[e]),e.forEach((function(e){u(e,"mousedown",p,s)}))};var d=function(e){return(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)};function p(e,t,n){var o=d(t);if(!r.isMac&&s){if(t.getModifierState&&(t.getModifierState("OS")||t.getModifierState("Win"))&&(o|=8),s.altGr){if(!(3&~o))return;s.altGr=0}if(18===n||17===n){var l="location"in t?t.location:t.keyLocation;17===n&&1===l?1==s[n]&&(a=t.timeStamp):18===n&&3===o&&2===l&&t.timeStamp-a<50&&(s.altGr=!0)}}if(n in i.MODIFIER_KEYS&&(n=-1),o||13!==n||3!==(l="location"in t?t.location:t.keyLocation)||(e(t,o,-n),!t.defaultPrevented)){if(r.isChromeOS&&8&o){if(e(t,o,n),t.defaultPrevented)return;o&=-9}return!!(o||n in i.FUNCTION_KEYS||n in i.PRINTABLE_KEYS)&&e(t,o,n)}}function g(){s=Object.create(null)}if(t.getModifierString=function(e){return i.KEY_MODS[d(e)]},t.addCommandKeyListener=function(e,n,o){if(r.isOldGecko||r.isOpera&&!("KeyboardEvent"in window)){var i=null;u(e,"keydown",(function(e){i=e.keyCode}),o),u(e,"keypress",(function(e){return p(n,e,i)}),o)}else{var a=null;u(e,"keydown",(function(e){s[e.keyCode]=(s[e.keyCode]||0)+1;var t=p(n,e,e.keyCode);return a=e.defaultPrevented,t}),o),u(e,"keypress",(function(e){a&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),a=null)}),o),u(e,"keyup",(function(e){s[e.keyCode]=null}),o),s||(g(),u(window,"focus",g))}},"object"==typeof window&&window.postMessage&&!r.isOldIE){var m=1;t.nextTick=function(e,n){n=n||window;var o="zero-timeout-message-"+m++,i=function(r){r.data==o&&(t.stopPropagation(r),h(n,"message",i),e())};u(n,"message",i),n.postMessage(o,"*")}}t.$idleBlocked=!1,t.onIdle=function(e,n){return setTimeout((function n(){t.$idleBlocked?setTimeout(n,100):e()}),n)},t.$idleBlockId=null,t.blockIdle=function(e){t.$idleBlockId&&clearTimeout(t.$idleBlockId),t.$idleBlocked=!0,t.$idleBlockId=setTimeout((function(){t.$idleBlocked=!1}),e||100)},t.nextFrame="object"==typeof window&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}})),ace.define("ace/clipboard",["require","exports","module"],(function(e,t,n){"use strict";var o;n.exports={lineMode:!1,pasteCancelled:function(){return!!(o&&o>Date.now()-50)||(o=!1)},cancel:function(){o=Date.now()}}})),ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/config","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/clipboard","ace/lib/keys"],(function(e,t,n){"use strict";var o=e("../lib/event"),i=e("../config").nls,r=e("../lib/useragent"),s=e("../lib/dom"),a=e("../lib/lang"),l=e("../clipboard"),c=r.isChrome<18,u=r.isIE,h=r.isChrome>63,d=400,p=e("../lib/keys"),g=p.KEY_MODS,m=r.isIOS,f=m?/\s/:/\n/,y=r.isMobile;t.TextInput=function(e,t){var n=s.createElement("textarea");n.className="ace_text-input",n.setAttribute("wrap","off"),n.setAttribute("autocorrect","off"),n.setAttribute("autocapitalize","off"),n.setAttribute("spellcheck",!1),n.style.opacity="0",e.insertBefore(n,e.firstChild);var v=!1,b=!1,w=!1,x=!1,k="";y||(n.style.fontSize="1px");var C=!1,$=!1,S="",E=0,O=0,T=0,A=Number.MAX_SAFE_INTEGER,_=Number.MIN_SAFE_INTEGER,L=0;try{var M=document.activeElement===n}catch(e){}this.setNumberOfExtraLines=function(e){A=Number.MAX_SAFE_INTEGER,_=Number.MIN_SAFE_INTEGER,L=e<0?0:e},this.setAriaOptions=function(e){if(e.activeDescendant?(n.setAttribute("aria-haspopup","true"),n.setAttribute("aria-autocomplete",e.inline?"both":"list"),n.setAttribute("aria-activedescendant",e.activeDescendant)):(n.setAttribute("aria-haspopup","false"),n.setAttribute("aria-autocomplete","both"),n.removeAttribute("aria-activedescendant")),e.role&&n.setAttribute("role",e.role),e.setLabel&&(n.setAttribute("aria-roledescription",i("editor")),t.session)){var o=t.session.selection.cursor.row;n.setAttribute("aria-label",i("Cursor at row $0",[o+1]))}},this.setAriaOptions({role:"textbox"}),o.addListener(n,"blur",(function(e){$||(t.onBlur(e),M=!1)}),t),o.addListener(n,"focus",(function(e){if(!$){if(M=!0,r.isEdge)try{if(!document.hasFocus())return}catch(e){}t.onFocus(e),r.isEdge?setTimeout(N):N()}}),t),this.$focusScroll=!1,this.focus=function(){if(this.setAriaOptions({setLabel:t.renderer.enableKeyboardAccessibility}),k||h||"browser"==this.$focusScroll)return n.focus({preventScroll:!0});var e=n.style.top;n.style.position="fixed",n.style.top="0px";try{var o=0!=n.getBoundingClientRect().top}catch(e){return}var i=[];if(o)for(var r=n.parentElement;r&&1==r.nodeType;)i.push(r),r.setAttribute("ace_nocontext",!0),r=!r.parentElement&&r.getRootNode?r.getRootNode().host:r.parentElement;n.focus({preventScroll:!0}),o&&i.forEach((function(e){e.removeAttribute("ace_nocontext")})),setTimeout((function(){n.style.position="","0px"==n.style.top&&(n.style.top=e)}),0)},this.blur=function(){n.blur()},this.isFocused=function(){return M},t.on("beforeEndOperation",(function(){var e=t.curOp,o=e&&e.command&&e.command.name;if("insertstring"!=o){var i=o&&(e.docChanged||e.selectionChanged);w&&i&&(S=n.value="",U()),N()}}));var R=function(e,n){for(var o=n,i=1;i<=e-A&&i<2*L+1;i++)o+=t.session.getLine(e-i).length+1;return o},N=m?function(e){if(M&&(!v||e)&&!x){e||(e="");var o="\n ab"+e+"cde fg\n";o!=n.value&&(n.value=S=o);var i=4+(e.length||(t.selection.isEmpty()?0:1));4==E&&O==i||n.setSelectionRange(4,i),E=4,O=i}}:function(){if(!w&&!x&&(M||P)){w=!0;var e=0,o=0,i="";if(t.session){var r=t.selection,s=r.getRange(),a=r.cursor.row;a===_+1?_=(A=_+1)+2*L:a===A-1?A=(_=A-1)-2*L:(a_+1)&&(A=a>L?a-L:0,_=a>L?a+L:2*L);for(var l=[],c=A;c<=_;c++)l.push(t.session.getLine(c));if(i=l.join("\n"),e=R(s.start.row,s.start.column),o=R(s.end.row,s.end.column),s.start.row_){var h=t.session.getLine(_+1);o=s.end.row>_+1?h.length:s.end.column,o+=i.length+1,i=i+"\n"+h}else y&&a>0&&(i="\n"+i,o+=1,e+=1);i.length>d&&(e0&&S[d]==e[d];)d++,a--;for(c=c.slice(d),d=1;l>0&&S.length-d>E-1&&S[S.length-d]==e[e.length-d];)d++,l--;u-=d-1,h-=d-1;var p=c.length-d+1;if(p<0&&(a=-p,p=0),c=c.slice(0,p),!(o||c||u||a||l||h))return"";x=!0;var g=!1;return r.isAndroid&&". "==c&&(c=" ",g=!0),c&&!a&&!l&&!u&&!h||C?t.onTextInput(c):t.onTextInput(c,{extendLeft:a,extendRight:l,restoreStart:u,restoreEnd:h}),x=!1,S=e,E=i,O=s,T=h,g?"\n":c},F=function(e){if(w)return V();if(e&&e.inputType){if("historyUndo"==e.inputType)return t.execCommand("undo");if("historyRedo"==e.inputType)return t.execCommand("redo")}var o=n.value,i=D(o,!0);(o.length>500||f.test(i)||y&&E<1&&E==O)&&N()},B=function(e,t,n){var o=e.clipboardData||window.clipboardData;if(o&&!c){var i=u||n?"Text":"text/plain";try{return t?!1!==o.setData(i,t):o.getData(i)}catch(e){if(!n)return B(e,t,!0)}}},W=function(e,i){var r=t.getCopyText();if(!r)return o.preventDefault(e);B(e,r)?(m&&(N(r),v=r,setTimeout((function(){v=!1}),10)),i?t.onCut():t.onCopy(),o.preventDefault(e)):(v=!0,n.value=r,n.select(),setTimeout((function(){v=!1,N(),i?t.onCut():t.onCopy()})))},H=function(e){W(e,!0)},j=function(e){W(e,!1)},z=function(e){var i=B(e);l.pasteCancelled()||("string"==typeof i?(i&&t.onPaste(i,e),r.isIE&&setTimeout(N),o.preventDefault(e)):(n.value="",b=!0))};o.addCommandKeyListener(n,t.onCommandKey.bind(t),t),o.addListener(n,"select",(function(e){w||(v?v=!1:function(e){return 0===e.selectionStart&&e.selectionEnd>=S.length&&e.value===S&&S&&e.selectionEnd!==O}(n)?(t.selectAll(),N()):y&&n.selectionStart!=E&&N())}),t),o.addListener(n,"input",F,t),o.addListener(n,"cut",H,t),o.addListener(n,"copy",j,t),o.addListener(n,"paste",z,t),"oncut"in n&&"oncopy"in n&&"onpaste"in n||o.addListener(e,"keydown",(function(e){if((!r.isMac||e.metaKey)&&e.ctrlKey)switch(e.keyCode){case 67:j(e);break;case 86:z(e);break;case 88:H(e)}}),t);var V=function(){if(w&&t.onCompositionUpdate&&!t.$readOnly){if(C)return G();if(w.useTextareaForIME)t.onCompositionUpdate(n.value);else{var e=n.value;D(e),w.markerRange&&(w.context&&(w.markerRange.start.column=w.selectionStart=w.context.compositionStartOffset),w.markerRange.end.column=w.markerRange.start.column+O-w.selectionStart+T)}}},U=function(e){t.onCompositionEnd&&!t.$readOnly&&(w=!1,t.onCompositionEnd(),t.off("mousedown",G),e&&F())};function G(){$=!0,n.blur(),n.focus(),$=!1}var K,q=a.delayedCall(V,50).schedule.bind(null,null);function Y(){clearTimeout(K),K=setTimeout((function(){k&&(n.style.cssText=k,k=""),t.renderer.$isMousePressed=!1,t.renderer.$keepTextAreaAtCursor&&t.renderer.$moveTextAreaToCursor()}),0)}o.addListener(n,"compositionstart",(function(e){if(!w&&t.onCompositionStart&&!t.$readOnly&&(w={},!C)){e.data&&(w.useTextareaForIME=!1),setTimeout(V,0),t._signal("compositionStart"),t.on("mousedown",G);var o=t.getSelectionRange();o.end.row=o.start.row,o.end.column=o.start.column,w.markerRange=o,w.selectionStart=E,t.onCompositionStart(w),w.useTextareaForIME?(S=n.value="",E=0,O=0):(n.msGetInputContext&&(w.context=n.msGetInputContext()),n.getInputContext&&(w.context=n.getInputContext()))}}),t),o.addListener(n,"compositionupdate",V,t),o.addListener(n,"keyup",(function(e){27==e.keyCode&&n.value.lengthO&&"\n"==S[r]?s=p.end:oO&&S.slice(0,r).split("\n").length>2?s=p.down:r>O&&" "==S[r-1]?(s=p.right,a=g.option):(r>O||r==O&&O!=E&&o==r)&&(s=p.right),o!==r&&(a|=g.shift),s){if(!t.onCommandKey({},a,s)&&t.commands){s=p.keyCodeToString(s);var l=t.commands.findKeyCommand(a,s);l&&t.execCommand(l)}E=o,O=r,N("")}}};document.addEventListener("selectionchange",r),t.on("destroy",(function(){document.removeEventListener("selectionchange",r)}))}(0,t,n),this.destroy=function(){n.parentElement&&n.parentElement.removeChild(n)}},t.$setUserAgentForTests=function(e,t){y=e,m=t}})),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/useragent"],(function(e,t,n){"use strict";var o=e("../lib/useragent"),i=function(){function e(e){e.$clickSelection=null;var t=e.editor;t.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),t.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),t.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),t.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),t.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e)),["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"].forEach((function(t){e[t]=this[t]}),this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}return e.prototype.onMouseDown=function(e){var t=e.inSelection(),n=e.getDocumentPosition();this.mousedownEvent=e;var i=this.editor,r=e.getButton();return 0!==r?((i.getSelectionRange().isEmpty()||1==r)&&i.selection.moveToPosition(n),void(2==r&&(i.textInput.onContextMenu(e.domEvent),o.isMozilla||e.preventDefault()))):(this.mousedownEvent.time=Date.now(),!t||i.isFocused()||(i.focus(),!this.$focusTimeout||this.$clickSelection||i.inMultiSelectMode)?(this.captureMouse(e),this.startSelect(n,e.domEvent._clicks>1),e.preventDefault()):(this.setState("focusWait"),void this.captureMouse(e)))},e.prototype.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var n=this.editor;this.mousedownEvent&&(this.mousedownEvent.getShiftKey()?n.selection.selectToPosition(e):t||n.selection.moveToPosition(e),t||this.select(),n.setStyle("ace_selecting"),this.setState("select"))},e.prototype.select=function(){var e,t=this.editor,n=t.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var o=this.$clickSelection.comparePoint(n);if(-1==o)e=this.$clickSelection.end;else if(1==o)e=this.$clickSelection.start;else{var i=r(this.$clickSelection,n);n=i.cursor,e=i.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(n),t.renderer.scrollCursorIntoView()},e.prototype.extendSelectionBy=function(e){var t,n=this.editor,o=n.renderer.screenToTextCoordinates(this.x,this.y),i=n.selection[e](o.row,o.column);if(this.$clickSelection){var s=this.$clickSelection.comparePoint(i.start),a=this.$clickSelection.comparePoint(i.end);if(-1==s&&a<=0)t=this.$clickSelection.end,i.end.row==o.row&&i.end.column==o.column||(o=i.start);else if(1==a&&s>=0)t=this.$clickSelection.start,i.start.row==o.row&&i.start.column==o.column||(o=i.end);else if(-1==s&&1==a)o=i.end,t=i.start;else{var l=r(this.$clickSelection,o);o=l.cursor,t=l.anchor}n.selection.setSelectionAnchor(t.row,t.column)}n.selection.selectToPosition(o),n.renderer.scrollCursorIntoView()},e.prototype.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting")},e.prototype.focusWait=function(){var e,t,n,o,i=(e=this.mousedownEvent.x,t=this.mousedownEvent.y,n=this.x,o=this.y,Math.sqrt(Math.pow(n-e,2)+Math.pow(o-t,2))),r=Date.now();(i>0||r-this.mousedownEvent.time>this.$focusTimeout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},e.prototype.onDoubleClick=function(e){var t=e.getDocumentPosition(),n=this.editor,o=n.session.getBracketRange(t);o?(o.isEmpty()&&(o.start.column--,o.end.column++),this.setState("select")):(o=n.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=o,this.select()},e.prototype.onTripleClick=function(e){var t=e.getDocumentPosition(),n=this.editor;this.setState("selectByLines");var o=n.getSelectionRange();o.isMultiLine()&&o.contains(t.row,t.column)?(this.$clickSelection=n.selection.getLineRange(o.start.row),this.$clickSelection.end=n.selection.getLineRange(o.end.row).end):this.$clickSelection=n.selection.getLineRange(t.row),this.select()},e.prototype.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},e.prototype.onMouseWheel=function(e){if(!e.getAccelKey()){e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var n=this.$lastScroll,o=e.domEvent.timeStamp,i=o-n.t,r=i?e.wheelX/i:n.vx,s=i?e.wheelY/i:n.vy;i<550&&(r=(r+n.vx)/2,s=(s+n.vy)/2);var a=Math.abs(r/s),l=!1;return a>=1&&t.renderer.isScrollableBy(e.wheelX*e.speed,0)&&(l=!0),a<=1&&t.renderer.isScrollableBy(0,e.wheelY*e.speed)&&(l=!0),l?n.allowed=o:o-n.allowed<550&&(Math.abs(r)<=1.5*Math.abs(n.vx)&&Math.abs(s)<=1.5*Math.abs(n.vy)?(l=!0,n.allowed=o):n.allowed=0),n.t=o,n.vx=r,n.vy=s,l?(t.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()):void 0}},e}();function r(e,t){if(e.start.row==e.end.row)var n=2*t.column-e.start.column-e.end.column;else if(e.start.row!=e.end.row-1||e.start.column||e.end.column)n=2*t.row-e.start.row-e.end.row;else n=t.column-4;return n<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}i.prototype.selectEnd=i.prototype.selectByLinesEnd,i.prototype.selectAllEnd=i.prototype.selectByLinesEnd,i.prototype.selectByWordsEnd=i.prototype.selectByLinesEnd,t.DefaultHandlers=i})),ace.define("ace/tooltip",["require","exports","module","ace/lib/dom","ace/lib/event","ace/range"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=this&&this.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],o=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&o>=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},s=e("./lib/dom"),a=e("./lib/event"),l=e("./range").Range,c="ace_tooltip",u=function(){function e(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}return e.prototype.$init=function(){return this.$element=s.createElement("div"),this.$element.className=c,this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},e.prototype.getElement=function(){return this.$element||this.$init()},e.prototype.setText=function(e){this.getElement().textContent=e},e.prototype.setHtml=function(e){this.getElement().innerHTML=e},e.prototype.setPosition=function(e,t){this.getElement().style.left=e+"px",this.getElement().style.top=t+"px"},e.prototype.setClassName=function(e){s.addCssClass(this.getElement(),e)},e.prototype.setTheme=function(e){this.$element.className=c+" "+(e.isDark?"ace_dark ":"")+(e.cssClass||"")},e.prototype.show=function(e,t,n){null!=e&&this.setText(e),null!=t&&null!=n&&this.setPosition(t,n),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},e.prototype.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.getElement().className=c,this.isOpen=!1)},e.prototype.getHeight=function(){return this.getElement().offsetHeight},e.prototype.getWidth=function(){return this.getElement().offsetWidth},e.prototype.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)},e}(),h=new(function(){function e(){this.popups=[]}return e.prototype.addPopup=function(e){this.popups.push(e),this.updatePopups()},e.prototype.removePopup=function(e){var t=this.popups.indexOf(e);-1!==t&&(this.popups.splice(t,1),this.updatePopups())},e.prototype.updatePopups=function(){var e,t,n,o;this.popups.sort((function(e,t){return t.priority-e.priority}));var i=[];try{for(var s=r(this.popups),a=s.next();!a.done;a=s.next()){var l=a.value,c=!0;try{for(var u=(n=void 0,r(i)),h=u.next();!h.done;h=u.next()){var d=h.value;if(this.doPopupsOverlap(d,l)){c=!1;break}}}catch(e){n={error:e}}finally{try{h&&!h.done&&(o=u.return)&&o.call(u)}finally{if(n)throw n.error}}c?i.push(l):l.hide()}}catch(t){e={error:t}}finally{try{a&&!a.done&&(t=s.return)&&t.call(s)}finally{if(e)throw e.error}}},e.prototype.doPopupsOverlap=function(e,t){var n=e.getElement().getBoundingClientRect(),o=t.getElement().getBoundingClientRect();return n.lefto.left&&n.topo.top},e}());t.popupManager=h,t.Tooltip=u;var d=function(e){function t(t){void 0===t&&(t=document.body);var n=e.call(this,t)||this;n.timeout=void 0,n.lastT=0,n.idleTime=350,n.lastEvent=void 0,n.onMouseOut=n.onMouseOut.bind(n),n.onMouseMove=n.onMouseMove.bind(n),n.waitForHover=n.waitForHover.bind(n),n.hide=n.hide.bind(n);var o=n.getElement();return o.style.whiteSpace="pre-wrap",o.style.pointerEvents="auto",o.addEventListener("mouseout",n.onMouseOut),o.tabIndex=-1,o.addEventListener("blur",function(){o.contains(document.activeElement)||this.hide()}.bind(n)),o.addEventListener("wheel",a.stopPropagation),n}return i(t,e),t.prototype.addToEditor=function(e){e.on("mousemove",this.onMouseMove),e.on("mousedown",this.hide),e.renderer.getMouseEventTarget().addEventListener("mouseout",this.onMouseOut,!0)},t.prototype.removeFromEditor=function(e){e.off("mousemove",this.onMouseMove),e.off("mousedown",this.hide),e.renderer.getMouseEventTarget().removeEventListener("mouseout",this.onMouseOut,!0),this.timeout&&(clearTimeout(this.timeout),this.timeout=null)},t.prototype.onMouseMove=function(e,t){this.lastEvent=e,this.lastT=Date.now();var n=t.$mouseHandler.isMousePressed;if(this.isOpen){var o=this.lastEvent&&this.lastEvent.getDocumentPosition();this.range&&this.range.contains(o.row,o.column)&&!n&&!this.isOutsideOfText(this.lastEvent)||this.hide()}this.timeout||n||(this.lastEvent=e,this.timeout=setTimeout(this.waitForHover,this.idleTime))},t.prototype.waitForHover=function(){this.timeout&&clearTimeout(this.timeout);var e=Date.now()-this.lastT;this.idleTime-e>10?this.timeout=setTimeout(this.waitForHover,this.idleTime-e):(this.timeout=null,this.lastEvent&&!this.isOutsideOfText(this.lastEvent)&&this.$gatherData(this.lastEvent,this.lastEvent.editor))},t.prototype.isOutsideOfText=function(e){var t=e.editor,n=e.getDocumentPosition(),o=t.session.getLine(n.row);if(n.column==o.length){var i=t.renderer.pixelToScreenCoordinates(e.clientX,e.clientY),r=t.session.documentToScreenPosition(n.row,n.column);if(r.column!=i.column||r.row!=i.row)return!0}return!1},t.prototype.setDataProvider=function(e){this.$gatherData=e},t.prototype.showForRange=function(e,t,n,o){if(!(o&&o!=this.lastEvent||this.isOpen&&document.activeElement==this.getElement())){var i=e.renderer;this.isOpen||(h.addPopup(this),this.$registerCloseEvents(),this.setTheme(i.theme)),this.isOpen=!0,this.addMarker(t,e.session),this.range=l.fromPoints(t.start,t.end);var r=i.textToScreenCoordinates(t.start.row,t.start.column),s=i.scroller.getBoundingClientRect();r.pageX=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},s=e("../lib/dom"),a=e("../lib/event"),l=e("../tooltip").Tooltip,c=e("../config").nls;t.GutterHandler=function(e){var t,n,o=e.editor,i=o.renderer.$gutterLayer,r=new u(o);function l(){t&&(t=clearTimeout(t)),r.isOpen&&(r.hideTooltip(),o.off("mousewheel",l))}function c(e){r.setPosition(e.x,e.y)}e.editor.setDefaultHandler("guttermousedown",(function(t){if(o.isFocused()&&0==t.getButton()&&"foldWidgets"!=i.getRegion(t)){var n=t.getDocumentPosition().row,r=o.session.selection;if(t.getShiftKey())r.selectTo(n,0);else{if(2==t.domEvent.detail)return o.selectAll(),t.preventDefault();e.$clickSelection=o.selection.getLineRange(n)}return e.setState("selectByLines"),e.captureMouse(t),t.preventDefault()}})),e.editor.setDefaultHandler("guttermousemove",(function(a){var u=a.domEvent.target||a.domEvent.srcElement;if(s.hasCssClass(u,"ace_fold-widget"))return l();r.isOpen&&e.$tooltipFollowsMouse&&c(a),n=a,t||(t=setTimeout((function(){t=null,n&&!e.isMousePressed?function(){var t=n.getDocumentPosition().row;if(t==o.session.getLength()){var s=o.renderer.pixelToScreenCoordinates(0,n.y).row,a=n.$pos;if(s>o.session.documentToScreenRow(a.row,a.column))return l()}if(r.showTooltip(t),r.isOpen)if(o.on("mousewheel",l),e.$tooltipFollowsMouse)c(n);else{var u=n.getGutterRow(),h=i.$lines.get(u);if(h){var d=h.element.querySelector(".ace_gutter_annotation").getBoundingClientRect(),p=r.getElement().style;p.left=d.right+"px",p.top=d.bottom+"px"}else c(n)}}():l()}),50))})),a.addListener(o.renderer.$gutter,"mouseout",(function(e){n=null,r.isOpen&&!t&&(t=setTimeout((function(){t=null,l()}),50))}),o),o.on("changeSession",l),o.on("input",l)};var u=function(e){function t(t){var n=e.call(this,t.container)||this;return n.editor=t,n}return i(t,e),t.prototype.setPosition=function(e,t){var n=window.innerWidth||document.documentElement.clientWidth,o=window.innerHeight||document.documentElement.clientHeight,i=this.getWidth(),r=this.getHeight();(e+=15)+i>n&&(e-=e+i-n),(t+=15)+r>o&&(t-=20+r),l.prototype.setPosition.call(this,e,t)},Object.defineProperty(t,"annotationLabels",{get:function(){return{error:{singular:c("error"),plural:c("errors")},warning:{singular:c("warning"),plural:c("warnings")},info:{singular:c("information message"),plural:c("information messages")}}},enumerable:!1,configurable:!0}),t.prototype.showTooltip=function(e){var n,o=this.editor.renderer.$gutterLayer,i=o.$annotations[e];n=i?{text:Array.from(i.text),type:Array.from(i.type)}:{text:[],type:[]};var r=o.session.getFoldLine(e);if(r&&o.$showFoldedAnnotations){for(var s,a={error:[],warning:[],info:[]},l=e+1;l<=r.end.row;l++)if(o.$annotations[l])for(var c=0;c ").concat(n.text[l]);d[n.type[l].replace("_fold","")].push(g)}var m=[].concat(d.error,d.warning,d.info).join("
");this.setHtml(m),this.$element.setAttribute("aria-live","polite"),this.isOpen||(this.setTheme(this.editor.renderer.theme),this.setClassName("ace_gutter-tooltip")),this.show(),this.editor._signal("showGutterTooltip",this)},t.prototype.hideTooltip=function(){this.$element.removeAttribute("aria-live"),this.hide(),this.editor._signal("hideGutterTooltip",this)},t.annotationsToSummaryString=function(e){var n,o,i=[];try{for(var s=r(["error","warning","info"]),a=s.next();!a.done;a=s.next()){var l=a.value;if(e[l].length){var c=1===e[l].length?t.annotationLabels[l].singular:t.annotationLabels[l].plural;i.push("".concat(e[l].length," ").concat(c))}}}catch(e){n={error:e}}finally{try{a&&!a.done&&(o=s.return)&&o.call(s)}finally{if(n)throw n.error}}return i.join(", ")},t}(l);t.GutterTooltip=u})),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],(function(e,t,n){"use strict";var o=e("../lib/event"),i=e("../lib/useragent"),r=function(){function e(e,t){this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1}return e.prototype.stopPropagation=function(){o.stopPropagation(this.domEvent),this.propagationStopped=!0},e.prototype.preventDefault=function(){o.preventDefault(this.domEvent),this.defaultPrevented=!0},e.prototype.stop=function(){this.stopPropagation(),this.preventDefault()},e.prototype.getDocumentPosition=function(){return this.$pos||(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY)),this.$pos},e.prototype.getGutterRow=function(){var e=this.getDocumentPosition().row;return this.editor.session.documentToScreenRow(e,0)-this.editor.session.documentToScreenRow(this.editor.renderer.$gutterLayer.$lines.get(0).row,0)},e.prototype.inSelection=function(){if(null!==this.$inSelection)return this.$inSelection;var e=this.editor.getSelectionRange();if(e.isEmpty())this.$inSelection=!1;else{var t=this.getDocumentPosition();this.$inSelection=e.contains(t.row,t.column)}return this.$inSelection},e.prototype.getButton=function(){return o.getButton(this.domEvent)},e.prototype.getShiftKey=function(){return this.domEvent.shiftKey},e.prototype.getAccelKey=function(){return i.isMac?this.domEvent.metaKey:this.domEvent.ctrlKey},e}();t.MouseEvent=r})),ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=e("../lib/event"),r=e("../lib/useragent");function s(e){var t=e.editor,n=o.createElement("div");n.style.cssText="top:-100px;position:absolute;z-index:2147483647;opacity:0.5",n.textContent=" ",["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"].forEach((function(t){e[t]=this[t]}),this),t.on("mousedown",this.onMouseDown.bind(e));var s,l,c,u,h,d,p,g,m,f,y,v=t.container,b=0;function w(){var e=d;(function(e,n){var o=Date.now(),i=!n||e.row!=n.row,r=!n||e.column!=n.column;!f||i||r?(t.moveCursorToPosition(e),f=o,y={x:l,y:c}):a(y.x,y.y,l,c)>5?f=null:o-f>=200&&(t.renderer.scrollCursorIntoView(),f=null)})(d=t.renderer.screenToTextCoordinates(l,c),e),function(e,n){var o=Date.now(),i=t.renderer.layerConfig.lineHeight,r=t.renderer.layerConfig.characterWidth,s=t.renderer.scroller.getBoundingClientRect(),a={x:{left:l-s.left,right:s.right-l},y:{top:c-s.top,bottom:s.bottom-c}},u=Math.min(a.x.left,a.x.right),h=Math.min(a.y.top,a.y.bottom),d={row:e.row,column:e.column};u/r<=2&&(d.column+=a.x.left=200&&t.renderer.scrollCursorIntoView(d):m=o:m=null}(d,e)}function x(){h=t.selection.toOrientedRange(),s=t.session.addMarker(h,"ace_selection",t.getSelectionStyle()),t.clearSelection(),t.isFocused()&&t.renderer.$cursorLayer.setBlinking(!1),clearInterval(u),w(),u=setInterval(w,20),b=0,i.addListener(document,"mousemove",$)}function k(){clearInterval(u),t.session.removeMarker(s),s=null,t.selection.fromOrientedRange(h),t.isFocused()&&!g&&t.$resetCursorStyle(),h=null,d=null,b=0,m=null,f=null,i.removeListener(document,"mousemove",$)}this.onDragStart=function(e){if(this.cancelDrag||!v.draggable){var o=this;return setTimeout((function(){o.startSelect(),o.captureMouse(e)}),0),e.preventDefault()}h=t.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=t.getReadOnly()?"copy":"copyMove",t.container.appendChild(n),i.setDragImage&&i.setDragImage(n,0,0),setTimeout((function(){t.container.removeChild(n)})),i.clearData(),i.setData("Text",t.session.getTextRange()),g=!0,this.setState("drag")},this.onDragEnd=function(e){if(v.draggable=!1,g=!1,this.setState(null),!t.getReadOnly()){var n=e.dataTransfer.dropEffect;p||"move"!=n||t.session.remove(t.getSelectionRange()),t.$resetCursorStyle()}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(!t.getReadOnly()&&S(e.dataTransfer))return l=e.clientX,c=e.clientY,s||x(),b++,e.dataTransfer.dropEffect=p=E(e),i.preventDefault(e)},this.onDragOver=function(e){if(!t.getReadOnly()&&S(e.dataTransfer))return l=e.clientX,c=e.clientY,s||(x(),b++),null!==C&&(C=null),e.dataTransfer.dropEffect=p=E(e),i.preventDefault(e)},this.onDragLeave=function(e){if(--b<=0&&s)return k(),p=null,i.preventDefault(e)},this.onDrop=function(e){if(d){var n=e.dataTransfer;if(g)switch(p){case"move":h=h.contains(d.row,d.column)?{start:d,end:d}:t.moveText(h,d);break;case"copy":h=t.moveText(h,d,!0)}else{var o=n.getData("Text");h={start:d,end:t.session.insert(d,o)},t.focus(),p=null}return k(),i.preventDefault(e)}},i.addListener(v,"dragstart",this.onDragStart.bind(e),t),i.addListener(v,"dragend",this.onDragEnd.bind(e),t),i.addListener(v,"dragenter",this.onDragEnter.bind(e),t),i.addListener(v,"dragover",this.onDragOver.bind(e),t),i.addListener(v,"dragleave",this.onDragLeave.bind(e),t),i.addListener(v,"drop",this.onDrop.bind(e),t);var C=null;function $(){null==C&&(C=setTimeout((function(){null!=C&&s&&k()}),20))}function S(e){var t=e.types;return!t||Array.prototype.some.call(t,(function(e){return"text/plain"==e||"Text"==e}))}function E(e){var t=["copy","copymove","all","uninitialized"],n=r.isMac?e.altKey:e.ctrlKey,o="uninitialized";try{o=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var i="none";return n&&t.indexOf(o)>=0?i="copy":["move","copymove","linkmove","all","uninitialized"].indexOf(o)>=0?i="move":t.indexOf(o)>=0&&(i="copy"),i}}function a(e,t,n,o){return Math.sqrt(Math.pow(n-e,2)+Math.pow(o-t,2))}(function(){this.dragWait=function(){Date.now()-this.mousedownEvent.time>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){this.editor.container.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.$resetCursorStyle(),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor;e.container.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var t=r.isWin?"default":"move";e.renderer.setCursorStyle(t),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;r.isIE&&"dragReady"==this.state&&a(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y)>3&&t.dragDrop(),"dragWait"===this.state&&a(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y)>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))},this.onMouseDown=function(e){if(this.$dragEnabled){this.mousedownEvent=e;var t=this.editor,n=e.inSelection(),o=e.getButton();if(1===(e.domEvent.detail||1)&&0===o&&n){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var i=e.domEvent.target||e.domEvent.srcElement;"unselectable"in i&&(i.unselectable="on"),t.getDragDelay()?(r.isWebKit&&(this.cancelDrag=!0,t.container.draggable=!0),this.setState("dragWait")):this.startDrag(),this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}}).call(s.prototype),t.DragdropHandler=s})),ace.define("ace/mouse/touch_handler",["require","exports","module","ace/mouse/mouse_event","ace/lib/event","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("./mouse_event").MouseEvent,i=e("../lib/event"),r=e("../lib/dom");t.addTouchListeners=function(e,t){var n,s,a,l,c,u,h,d,p,g="scroll",m=0,f=0,y=0,v=0;function b(){var e,n,o;p||(e=window.navigator&&window.navigator.clipboard,n=!1,o=function(o){var i,s,a=o.target.getAttribute("action");if("more"==a||!n)return n=!n,i=t.getCopyText(),s=t.session.getUndoManager().hasUndo(),void p.replaceChild(r.buildDom(n?["span",!i&&["span",{class:"ace_mobile-button",action:"selectall"},"Select All"],i&&["span",{class:"ace_mobile-button",action:"copy"},"Copy"],i&&["span",{class:"ace_mobile-button",action:"cut"},"Cut"],e&&["span",{class:"ace_mobile-button",action:"paste"},"Paste"],s&&["span",{class:"ace_mobile-button",action:"undo"},"Undo"],["span",{class:"ace_mobile-button",action:"find"},"Find"],["span",{class:"ace_mobile-button",action:"openCommandPalette"},"Palette"]]:["span"]),p.firstChild);"paste"==a?e.readText().then((function(e){t.execCommand(a,e)})):a&&("cut"!=a&&"copy"!=a||(e?e.writeText(t.getCopyText()):document.execCommand("copy")),t.execCommand(a)),p.firstChild.style.display="none",n=!1,"openCommandPalette"!=a&&t.focus()},p=r.buildDom(["div",{class:"ace_mobile-menu",ontouchstart:function(e){g="menu",e.stopPropagation(),e.preventDefault(),t.textInput.focus()},ontouchend:function(e){e.stopPropagation(),e.preventDefault(),o(e)},onclick:o},["span"],["span",{class:"ace_mobile-button",action:"more"},"..."]],t.container));var i=t.selection.cursor,s=t.renderer.textToScreenCoordinates(i.row,i.column),a=t.renderer.textToScreenCoordinates(0,0).pageX,l=t.renderer.scrollLeft,c=t.container.getBoundingClientRect();p.style.top=s.pageY-c.top-3+"px",s.pageX-c.left1)return clearTimeout(c),c=null,a=-1,void(g="zoom");d=t.$mouseHandler.isMousePressed=!0;var r=t.renderer.layerConfig.lineHeight,u=t.renderer.layerConfig.lineHeight,p=e.timeStamp;l=p;var b=i[0],w=b.clientX,k=b.clientY;Math.abs(n-w)+Math.abs(s-k)>r&&(a=-1),n=e.clientX=w,s=e.clientY=k,y=v=0;var C=new o(e,t);if(h=C.getDocumentPosition(),p-a<500&&1==i.length&&!m)f++,e.preventDefault(),e.button=0,function(){c=null,clearTimeout(c),t.selection.moveToPosition(h);var e=f>=2?t.selection.getLineRange(h.row):t.session.getBracketRange(h);e&&!e.isEmpty()?t.selection.setRange(e):t.selection.selectWord(),g="wait"}();else{f=0;var $=t.selection.cursor,S=t.selection.isEmpty()?$:t.selection.anchor,E=t.renderer.$cursorLayer.getPixelPosition($,!0),O=t.renderer.$cursorLayer.getPixelPosition(S,!0),T=t.renderer.scroller.getBoundingClientRect(),A=t.renderer.layerConfig.offset,_=t.renderer.scrollLeft,L=function(e,t){return(e/=u)*e+(t=t/r-.75)*t};if(e.clientXR?"cursor":"anchor"),g=R<3.5?"anchor":M<3.5?"cursor":"scroll",c=setTimeout(x,450)}a=p}),t),i.addListener(e,"touchend",(function(e){d=t.$mouseHandler.isMousePressed=!1,u&&clearInterval(u),"zoom"==g?(g="",m=0):c?(t.selection.moveToPosition(h),m=0,b()):"scroll"==g?(m+=60,u=setInterval((function(){m--<=0&&(clearInterval(u),u=null),Math.abs(y)<.01&&(y=0),Math.abs(v)<.01&&(v=0),m<20&&(y*=.9),m<20&&(v*=.9);var e=t.session.getScrollTop();t.renderer.scrollBy(10*y,10*v),e==t.session.getScrollTop()&&(m=0)}),10),w()):b(),clearTimeout(c),c=null}),t),i.addListener(e,"touchmove",(function(e){c&&(clearTimeout(c),c=null);var i=e.touches;if(!(i.length>1||"zoom"==g)){var r=i[0],a=n-r.clientX,u=s-r.clientY;if("wait"==g){if(!(a*a+u*u>4))return e.preventDefault();g="cursor"}n=r.clientX,s=r.clientY,e.clientX=r.clientX,e.clientY=r.clientY;var h=e.timeStamp,d=h-l;if(l=h,"scroll"==g){var p=new o(e,t);p.speed=1,p.wheelX=a,p.wheelY=u,10*Math.abs(a)=e){for(r=h+1;r=e;)r++;for(a=h,l=r-1;a=t.length||2!=(l=n[i-1])&&3!=l||2!=(c=t[i+1])&&3!=c?4:(r&&(c=3),c==l?c:4);case 10:return 2==(l=i>0?n[i-1]:5)&&i+10&&2==n[i-1])return 2;if(r)return 4;for(p=i+1,d=t.length;p=1425&&m<=2303||64286==m;if(l=t[p],f&&(1==l||7==l))return 1}return i<1||5==(l=t[i-1])?4:n[i-1];case 5:return r=!1,s=!0,o;case 6:return a=!0,4;case 13:case 14:case 16:case 17:case 15:r=!1;case h:return 4}}function f(e){var t=e.charCodeAt(0),n=t>>8;return 0==n?t>191?0:d[t]:5==n?/[\u0591-\u05f4]/.test(e)?1:0:6==n?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(e)?12:/[\u0660-\u0669\u066b-\u066c]/.test(e)?3:1642==t?u:/[\u06f0-\u06f9]/.test(e)?2:7:32==n&&t<=8287?p[255&t]:254==n&&t>=65136?7:4}t.L=0,t.R=1,t.EN=2,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.RLE=7,t.DOT="·",t.doBidiReorder=function(e,n,u){if(e.length<2)return{};var d=e.split(""),p=new Array(d.length),y=new Array(d.length),v=[];o=u?1:0,function(e,t,n,u){var h=o?c:l,d=null,p=null,g=null,y=0,v=null,b=-1,w=null,x=null,k=[];if(!u)for(w=0,u=[];w0)if(16==v){for(w=b;w-1){for(w=b;w=0&&8==u[C];C--)t[C]=o}}(d,v,d.length,n);for(var b=0;b7&&n[b]<13||4===n[b]||n[b]===h)?v[b]=t.ON_R:b>0&&"ل"===d[b-1]&&/\u0622|\u0623|\u0625|\u0627/.test(d[b])&&(v[b-1]=v[b]=t.R_H,b++);for(d[d.length-1]===t.DOT&&(v[d.length-1]=t.B),"‫"===d[0]&&(v[0]=t.RLE),b=0;b=0&&(e=this.session.$docRowCache[n])}return e},e.prototype.getSplitIndex=function(){var e=0,t=this.session.$screenRowCache;if(t.length)for(var n,o=this.session.$getRowCacheIndex(t,this.currentRow);this.currentRow-e>0&&(n=this.session.$getRowCacheIndex(t,this.currentRow-e-1))===o;)o=n,e++;else e=this.currentRow;return e},e.prototype.updateRowLine=function(e,t){void 0===e&&(e=this.getDocumentRow());var n=e===this.session.getLength()-1?this.EOF:this.EOL;if(this.wrapIndent=0,this.line=this.session.getLine(e),this.isRtlDir=this.$isRtl||this.line.charAt(0)===this.RLE,this.session.$useWrapMode){var r=this.session.$wrapData[e];r&&(void 0===t&&(t=this.getSplitIndex()),t>0&&r.length?(this.wrapIndent=r.indent,this.wrapOffset=this.wrapIndent*this.charWidths[o.L],this.line=tt?this.session.getOverwrite()?e:e-1:t,i=o.getVisualFromLogicalIdx(n,this.bidiMap),r=this.bidiMap.bidiLevels,s=0;!this.session.getOverwrite()&&e<=t&&r[i]%2!=0&&i++;for(var a=0;at&&r[i]%2==0&&(s+=this.charWidths[r[i]]),this.wrapIndent&&(s+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset),this.isRtlDir&&(s+=this.rtlLineOffset),s},e.prototype.getSelections=function(e,t){var n,o=this.bidiMap,i=o.bidiLevels,r=[],s=0,a=Math.min(e,t)-this.wrapIndent,l=Math.max(e,t)-this.wrapIndent,c=!1,u=!1,h=0;this.wrapIndent&&(s+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset);for(var d,p=0;p=a&&dn+r/2;){if(n+=r,o===i.length-1){r=0;break}r=this.charWidths[i[++o]]}return o>0&&i[o-1]%2!=0&&i[o]%2==0?(e0&&i[o-1]%2==0&&i[o]%2!=0?t=1+(e>n?this.bidiMap.logicalFromVisual[o]:this.bidiMap.logicalFromVisual[o-1]):this.isRtlDir&&o===i.length-1&&0===r&&i[o-1]%2==0||!this.isRtlDir&&0===o&&i[o]%2!=0?t=1+this.bidiMap.logicalFromVisual[o]:(o>0&&i[o-1]%2!=0&&0!==r&&o--,t=this.bidiMap.logicalFromVisual[o]),0===t&&this.isRtlDir&&t++,t+this.wrapIndent},e}();t.BidiHandler=s})),ace.define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],(function(e,t,n){"use strict";var o=e("./lib/oop"),i=e("./lib/lang"),r=e("./lib/event_emitter").EventEmitter,s=e("./range").Range,a=function(){function e(e){this.session=e,this.doc=e.getDocument(),this.clearSelection(),this.cursor=this.lead=this.doc.createAnchor(0,0),this.anchor=this.doc.createAnchor(0,0),this.$silent=!1;var t=this;this.cursor.on("change",(function(e){t.$cursorChanged=!0,t.$silent||t._emit("changeCursor"),t.$isEmpty||t.$silent||t._emit("changeSelection"),t.$keepDesiredColumnOnChange||e.old.column==e.value.column||(t.$desiredColumn=null)})),this.anchor.on("change",(function(){t.$anchorChanged=!0,t.$isEmpty||t.$silent||t._emit("changeSelection")}))}return e.prototype.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},e.prototype.isMultiLine=function(){return!this.$isEmpty&&this.anchor.row!=this.cursor.row},e.prototype.getCursor=function(){return this.lead.getPosition()},e.prototype.setAnchor=function(e,t){this.$isEmpty=!1,this.anchor.setPosition(e,t)},e.prototype.getAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},e.prototype.getSelectionLead=function(){return this.lead.getPosition()},e.prototype.isBackwards=function(){var e=this.anchor,t=this.lead;return e.row>t.row||e.row==t.row&&e.column>t.column},e.prototype.getRange=function(){var e=this.anchor,t=this.lead;return this.$isEmpty?s.fromPoints(t,t):this.isBackwards()?s.fromPoints(t,e):s.fromPoints(e,t)},e.prototype.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},e.prototype.selectAll=function(){this.$setSelection(0,0,Number.MAX_VALUE,Number.MAX_VALUE)},e.prototype.setRange=function(e,t){var n=t?e.end:e.start,o=t?e.start:e.end;this.$setSelection(n.row,n.column,o.row,o.column)},e.prototype.$setSelection=function(e,t,n,o){if(!this.$silent){var i=this.$isEmpty,r=this.inMultiSelectMode;this.$silent=!0,this.$cursorChanged=this.$anchorChanged=!1,this.anchor.setPosition(e,t),this.cursor.setPosition(n,o),this.$isEmpty=!s.comparePoints(this.anchor,this.cursor),this.$silent=!1,this.$cursorChanged&&this._emit("changeCursor"),(this.$cursorChanged||this.$anchorChanged||i!=this.$isEmpty||r)&&this._emit("changeSelection")}},e.prototype.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},e.prototype.selectTo=function(e,t){this.$moveSelection((function(){this.moveCursorTo(e,t)}))},e.prototype.selectToPosition=function(e){this.$moveSelection((function(){this.moveCursorToPosition(e)}))},e.prototype.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},e.prototype.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},e.prototype.selectUp=function(){this.$moveSelection(this.moveCursorUp)},e.prototype.selectDown=function(){this.$moveSelection(this.moveCursorDown)},e.prototype.selectRight=function(){this.$moveSelection(this.moveCursorRight)},e.prototype.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},e.prototype.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},e.prototype.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},e.prototype.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},e.prototype.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},e.prototype.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},e.prototype.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},e.prototype.getWordRange=function(e,t){if(void 0===t){var n=e||this.lead;e=n.row,t=n.column}return this.session.getWordRange(e,t)},e.prototype.selectWord=function(){this.setSelectionRange(this.getWordRange())},e.prototype.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},e.prototype.getLineRange=function(e,t){var n,o="number"==typeof e?e:this.lead.row,i=this.session.getFoldLine(o);return i?(o=i.start.row,n=i.end.row):n=o,!0===t?new s(o,0,n,this.session.getLine(n).length):new s(o,0,n+1,0)},e.prototype.selectLine=function(){this.setSelectionRange(this.getLineRange())},e.prototype.moveCursorUp=function(){this.moveCursorBy(-1,0)},e.prototype.moveCursorDown=function(){this.moveCursorBy(1,0)},e.prototype.wouldMoveIntoSoftTab=function(e,t,n){var o=e.column,i=e.column+t;return n<0&&(o=e.column-t,i=e.column),this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(o,i).split(" ").length-1==t},e.prototype.moveCursorLeft=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,-1))this.moveCursorTo(e.start.row,e.start.column);else if(0===t.column)t.row>0&&this.moveCursorTo(t.row-1,this.doc.getLine(t.row-1).length);else{var n=this.session.getTabSize();this.wouldMoveIntoSoftTab(t,n,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-n):this.moveCursorBy(0,-1)}},e.prototype.moveCursorRight=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,1))this.moveCursorTo(e.end.row,e.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(t.column=o)}}this.moveCursorTo(t.row,t.column)},e.prototype.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},e.prototype.moveCursorFileStart=function(){this.moveCursorTo(0,0)},e.prototype.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),o=n.substring(t);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var i=this.session.getFoldAt(e,t,1);if(i)this.moveCursorTo(i.end.row,i.end.column);else{if(this.session.nonTokenRe.exec(o)&&(t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,o=n.substring(t)),t>=n.length)return this.moveCursorTo(e,n.length),this.moveCursorRight(),void(e0&&this.moveCursorWordLeft());this.session.tokenRe.exec(r)&&(n-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,n)}},e.prototype.$shortWordEndIndex=function(e){var t,n=0,o=/\s/,i=this.session.tokenRe;if(i.lastIndex=0,this.session.tokenRe.exec(e))n=this.session.tokenRe.lastIndex;else{for(;(t=e[n])&&o.test(t);)n++;if(n<1)for(i.lastIndex=0;(t=e[n])&&!i.test(t);)if(i.lastIndex=0,n++,o.test(t)){if(n>2){n--;break}for(;(t=e[n])&&o.test(t);)n++;if(n>2)break}}return i.lastIndex=0,n},e.prototype.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),o=n.substring(t),i=this.session.getFoldAt(e,t,1);if(i)return this.moveCursorTo(i.end.row,i.end.column);if(t==n.length){var r=this.doc.getLength();do{e++,o=this.doc.getLine(e)}while(e0&&/^\s*$/.test(o));n=o.length,/\s+$/.test(o)||(o="")}var r=i.stringReverse(o),s=this.$shortWordEndIndex(r);return this.moveCursorTo(t,n-s)},e.prototype.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},e.prototype.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},e.prototype.moveCursorBy=function(e,t){var n,o=this.session.documentToScreenPosition(this.lead.row,this.lead.column);if(0===t&&(0!==e&&(this.session.$bidiHandler.isBidiRow(o.row,this.lead.row)?(n=this.session.$bidiHandler.getPosLeft(o.column),o.column=Math.round(n/this.session.$bidiHandler.charWidths[0])):n=o.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?o.column=this.$desiredColumn:this.$desiredColumn=o.column),0!=e&&this.session.lineWidgets&&this.session.lineWidgets[this.lead.row]){var i=this.session.lineWidgets[this.lead.row];e<0?e-=i.rowsAbove||0:e>0&&(e+=i.rowCount-(i.rowsAbove||0))}var r=this.session.screenToDocumentPosition(o.row+e,o.column,n);0!==e&&0===t&&r.row===this.lead.row&&(r.column,this.lead.column),this.moveCursorTo(r.row,r.column+t,0===t)},e.prototype.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},e.prototype.moveCursorTo=function(e,t,n){var o=this.session.getFoldAt(e,t,1);o&&(e=o.start.row,t=o.start.column),this.$keepDesiredColumnOnChange=!0;var i=this.session.getLine(e);/[\uDC00-\uDFFF]/.test(i.charAt(t))&&i.charAt(t-1)&&(this.lead.row==e&&this.lead.column==t+1?t-=1:t+=1),this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,n||(this.$desiredColumn=null)},e.prototype.moveCursorToScreen=function(e,t,n){var o=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(o.row,o.column,n)},e.prototype.detach=function(){this.lead.detach(),this.anchor.detach()},e.prototype.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},e.prototype.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},e.prototype.getRangeOfMovements=function(e){var t=this.getCursor();try{e(this);var n=this.getCursor();return s.fromPoints(t,n)}catch(e){return s.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},e.prototype.toJSON=function(){if(this.rangeCount)var e=this.ranges.map((function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t}));else(e=this.getRange()).isBackwards=this.isBackwards();return e},e.prototype.fromJSON=function(e){if(null==e.start){if(this.rangeList&&e.length>1){this.toSingleRange(e[0]);for(var t=e.length;t--;){var n=s.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(n.cursor=n.start),this.addRange(n,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},e.prototype.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0},e}();a.prototype.setSelectionAnchor=a.prototype.setAnchor,a.prototype.getSelectionAnchor=a.prototype.getAnchor,a.prototype.setSelectionRange=a.prototype.setRange,o.implement(a.prototype,r),t.Selection=a})),ace.define("ace/tokenizer",["require","exports","module","ace/lib/report_error"],(function(e,t,n){"use strict";var o=e("./lib/report_error").reportError,i=2e3,r=function(){function e(e){for(var t in this.states=e,this.regExps={},this.matchMappings={},this.states){for(var n=this.states[t],o=[],i=0,r=this.matchMappings[t]={defaultToken:"text"},s="g",a=[],l=0;l1?this.$applyToken:c.token),h>1&&(/\\\d/.test(c.regex)?u=c.regex.replace(/\\([0-9]+)/g,(function(e,t){return"\\"+(parseInt(t,10)+i+1)})):(h=1,u=this.removeCapturingGroups(c.regex)),c.splitRegex||"string"==typeof c.token||a.push(c)),r[i]=l,i+=h,o.push(u),c.onMatch||(c.onMatch=null)}}o.length||(r[0]=0,o.push("$")),a.forEach((function(e){e.splitRegex=this.createSplitterRegexp(e.regex,s)}),this),this.regExps[t]=new RegExp("("+o.join(")|(")+")|($)",s)}}return e.prototype.$setMaxTokenCount=function(e){i=0|e},e.prototype.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),n=this.token.apply(this,t);if("string"==typeof n)return[{type:n,value:e}];for(var o=[],i=0,r=n.length;iu){var y=e.substring(u,f-m.length);d.type==p?d.value+=y:(d.type&&c.push(d),d={type:p,value:y})}for(var v=0;vi){for(h>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});u1&&n[0]!==o&&n.unshift("#tmp",o),{tokens:c,state:n.length?n:o}},e}();r.prototype.reportError=o,t.Tokenizer=r})),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/deep_copy"],(function(e,t,n){"use strict";var o=e("../lib/deep_copy").deepCopy,i=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(e,t){if(t)for(var n in e){for(var o=e[n],i=0;i=this.$rowTokens.length;){if(this.$row+=1,e||(e=this.$session.getLength()),this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},e.prototype.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},e.prototype.getCurrentTokenRow=function(){return this.$row},e.prototype.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,n=e[t].start;if(void 0!==n)return n;for(n=0;t>0;)n+=e[t-=1].value.length;return n},e.prototype.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},e.prototype.getCurrentTokenRange=function(){var e=this.$rowTokens[this.$tokenIndex],t=this.getCurrentTokenColumn();return new o(this.$row,t,this.$row,t+e.value.length)},e}();t.TokenIterator=i})),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],(function(e,t,n){"use strict";var o,i=e("../../lib/oop"),r=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,a=e("../../lib/lang"),l=["text","paren.rparen","rparen","paren","punctuation.operator"],c=["text","paren.rparen","rparen","paren","punctuation.operator","comment"],u={},h={'"':'"',"'":"'"},d=function(e){var t=-1;if(e.multiSelect&&(t=e.selection.index,u.rangeCount!=e.multiSelect.rangeCount&&(u={rangeCount:e.multiSelect.rangeCount})),u[t])return o=u[t];o=u[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},p=function(e,t,n,o){var i=e.end.row-e.start.row;return{text:n+t+o,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},g=function(e){e=e||{},this.add("braces","insertion",(function(t,n,i,r,s){var l=i.getCursorPosition(),c=r.doc.getLine(l.row);if("{"==s){d(i);var u=i.getSelectionRange(),h=r.doc.getTextRange(u);if(""!==h&&"{"!==h&&i.getWrapBehavioursEnabled())return p(u,h,"{","}");if(g.isSaneInsertion(i,r))return/[\]\}\)]/.test(c[l.column])||i.inMultiSelectMode||e.braces?(g.recordAutoInsert(i,r,"}"),{text:"{}",selection:[1,1]}):(g.recordMaybeInsert(i,r,"{"),{text:"{",selection:[1,1]})}else if("}"==s){if(d(i),"}"==c.substring(l.column,l.column+1)&&null!==r.$findOpeningBracket("}",{column:l.column+1,row:l.row})&&g.isAutoInsertedClosing(l,c,s))return g.popAutoInsertedClosing(),{text:"",selection:[1,1]}}else{if("\n"==s||"\r\n"==s){d(i);var m="";if(g.isMaybeInsertedClosing(l,c)&&(m=a.stringRepeat("}",o.maybeInsertedBrackets),g.clearMaybeInsertedClosing()),"}"===c.substring(l.column,l.column+1)){var f=r.findMatchingBracket({row:l.row,column:l.column+1},"}");if(!f)return null;var y=this.$getIndent(r.getLine(f.row))}else{if(!m)return void g.clearMaybeInsertedClosing();y=this.$getIndent(c)}var v=y+r.getTabString();return{text:"\n"+v+"\n"+y+m,selection:[1,v.length,1,v.length]}}g.clearMaybeInsertedClosing()}})),this.add("braces","deletion",(function(e,t,n,i,r){var s=i.doc.getTextRange(r);if(!r.isMultiLine()&&"{"==s){if(d(n),"}"==i.doc.getLine(r.start.row).substring(r.end.column,r.end.column+1))return r.end.column++,r;o.maybeInsertedBrackets--}})),this.add("parens","insertion",(function(e,t,n,o,i){if("("==i){d(n);var r=n.getSelectionRange(),s=o.doc.getTextRange(r);if(""!==s&&n.getWrapBehavioursEnabled())return p(r,s,"(",")");if(g.isSaneInsertion(n,o))return g.recordAutoInsert(n,o,")"),{text:"()",selection:[1,1]}}else if(")"==i){d(n);var a=n.getCursorPosition(),l=o.doc.getLine(a.row);if(")"==l.substring(a.column,a.column+1)&&null!==o.$findOpeningBracket(")",{column:a.column+1,row:a.row})&&g.isAutoInsertedClosing(a,l,i))return g.popAutoInsertedClosing(),{text:"",selection:[1,1]}}})),this.add("parens","deletion",(function(e,t,n,o,i){var r=o.doc.getTextRange(i);if(!i.isMultiLine()&&"("==r&&(d(n),")"==o.doc.getLine(i.start.row).substring(i.start.column+1,i.start.column+2)))return i.end.column++,i})),this.add("brackets","insertion",(function(e,t,n,o,i){if("["==i){d(n);var r=n.getSelectionRange(),s=o.doc.getTextRange(r);if(""!==s&&n.getWrapBehavioursEnabled())return p(r,s,"[","]");if(g.isSaneInsertion(n,o))return g.recordAutoInsert(n,o,"]"),{text:"[]",selection:[1,1]}}else if("]"==i){d(n);var a=n.getCursorPosition(),l=o.doc.getLine(a.row);if("]"==l.substring(a.column,a.column+1)&&null!==o.$findOpeningBracket("]",{column:a.column+1,row:a.row})&&g.isAutoInsertedClosing(a,l,i))return g.popAutoInsertedClosing(),{text:"",selection:[1,1]}}})),this.add("brackets","deletion",(function(e,t,n,o,i){var r=o.doc.getTextRange(i);if(!i.isMultiLine()&&"["==r&&(d(n),"]"==o.doc.getLine(i.start.row).substring(i.start.column+1,i.start.column+2)))return i.end.column++,i})),this.add("string_dquotes","insertion",(function(e,t,n,o,i){var r=o.$mode.$quotes||h;if(1==i.length&&r[i]){if(this.lineCommentStart&&-1!=this.lineCommentStart.indexOf(i))return;d(n);var s=i,a=n.getSelectionRange(),l=o.doc.getTextRange(a);if(!(""===l||1==l.length&&r[l])&&n.getWrapBehavioursEnabled())return p(a,l,s,s);if(!l){var c=n.getCursorPosition(),u=o.doc.getLine(c.row),g=u.substring(c.column-1,c.column),m=u.substring(c.column,c.column+1),f=o.getTokenAt(c.row,c.column),y=o.getTokenAt(c.row,c.column+1);if("\\"==g&&f&&/escape/.test(f.type))return null;var v,b=f&&/string|escape/.test(f.type),w=!y||/string|escape/.test(y.type);if(m==s)(v=b!==w)&&/string\.end/.test(y.type)&&(v=!1);else{if(b&&!w)return null;if(b&&w)return null;var x=o.$mode.tokenRe;x.lastIndex=0;var k=x.test(g);x.lastIndex=0;var C=x.test(m),$=o.$mode.$pairQuotesAfter;if(!($&&$[s]&&$[s].test(g))&&k||C)return null;if(m&&!/[\s;,.})\]\\]/.test(m))return null;var S=u[c.column-2];if(g==s&&(S==s||x.test(S)))return null;v=!0}return{text:v?s+s:"",selection:[1,1]}}}})),this.add("string_dquotes","deletion",(function(e,t,n,o,i){var r=o.$mode.$quotes||h,s=o.doc.getTextRange(i);if(!i.isMultiLine()&&r.hasOwnProperty(s)&&(d(n),o.doc.getLine(i.start.row).substring(i.start.column+1,i.start.column+2)==s))return i.end.column++,i})),!1!==e.closeDocComment&&this.add("doc comment end","insertion",(function(e,t,n,o,i){if("doc-start"===e&&("\n"===i||"\r\n"===i)&&n.selection.isEmpty()){var r=n.getCursorPosition(),s=o.doc.getLine(r.row),a=o.doc.getLine(r.row+1),l=this.$getIndent(s);if(/\s*\*/.test(a))return/^\s*\*/.test(s)?{text:i+l+"* ",selection:[1,3+l.length,1,3+l.length]}:{text:i+l+" * ",selection:[1,3+l.length,1,3+l.length]};if(/\/\*\*/.test(s.substring(0,r.column)))return{text:i+l+" * "+i+" "+l+"*/",selection:[1,4+l.length,1,4+l.length]}}}))};g.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),o=new s(t,n.row,n.column);if(!this.$matchTokenType(o.getCurrentToken()||"text",l)){if(/[)}\]]/.test(e.session.getLine(n.row)[n.column]))return!0;var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",l))return!1}return o.stepForward(),o.getCurrentTokenRow()!==n.row||this.$matchTokenType(o.getCurrentToken()||"text",c)},g.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},g.recordAutoInsert=function(e,t,n){var i=e.getCursorPosition(),r=t.doc.getLine(i.row);this.isAutoInsertedClosing(i,r,o.autoInsertedLineEnd[0])||(o.autoInsertedBrackets=0),o.autoInsertedRow=i.row,o.autoInsertedLineEnd=n+r.substr(i.column),o.autoInsertedBrackets++},g.recordMaybeInsert=function(e,t,n){var i=e.getCursorPosition(),r=t.doc.getLine(i.row);this.isMaybeInsertedClosing(i,r)||(o.maybeInsertedBrackets=0),o.maybeInsertedRow=i.row,o.maybeInsertedLineStart=r.substr(0,i.column)+n,o.maybeInsertedLineEnd=r.substr(i.column),o.maybeInsertedBrackets++},g.isAutoInsertedClosing=function(e,t,n){return o.autoInsertedBrackets>0&&e.row===o.autoInsertedRow&&n===o.autoInsertedLineEnd[0]&&t.substr(e.column)===o.autoInsertedLineEnd},g.isMaybeInsertedClosing=function(e,t){return o.maybeInsertedBrackets>0&&e.row===o.maybeInsertedRow&&t.substr(e.column)===o.maybeInsertedLineEnd&&t.substr(0,e.column)==o.maybeInsertedLineStart},g.popAutoInsertedClosing=function(){o.autoInsertedLineEnd=o.autoInsertedLineEnd.substr(1),o.autoInsertedBrackets--},g.clearMaybeInsertedClosing=function(){o&&(o.maybeInsertedBrackets=0,o.maybeInsertedRow=-1)},i.inherits(g,r),t.CstyleBehaviour=g})),ace.define("ace/unicode",["require","exports","module"],(function(e,t,n){"use strict";for(var o=[48,9,8,25,5,0,2,25,48,0,11,0,5,0,6,22,2,30,2,457,5,11,15,4,8,0,2,0,18,116,2,1,3,3,9,0,2,2,2,0,2,19,2,82,2,138,2,4,3,155,12,37,3,0,8,38,10,44,2,0,2,1,2,1,2,0,9,26,6,2,30,10,7,61,2,9,5,101,2,7,3,9,2,18,3,0,17,58,3,100,15,53,5,0,6,45,211,57,3,18,2,5,3,11,3,9,2,1,7,6,2,2,2,7,3,1,3,21,2,6,2,0,4,3,3,8,3,1,3,3,9,0,5,1,2,4,3,11,16,2,2,5,5,1,3,21,2,6,2,1,2,1,2,1,3,0,2,4,5,1,3,2,4,0,8,3,2,0,8,15,12,2,2,8,2,2,2,21,2,6,2,1,2,4,3,9,2,2,2,2,3,0,16,3,3,9,18,2,2,7,3,1,3,21,2,6,2,1,2,4,3,8,3,1,3,2,9,1,5,1,2,4,3,9,2,0,17,1,2,5,4,2,2,3,4,1,2,0,2,1,4,1,4,2,4,11,5,4,4,2,2,3,3,0,7,0,15,9,18,2,2,7,2,2,2,22,2,9,2,4,4,7,2,2,2,3,8,1,2,1,7,3,3,9,19,1,2,7,2,2,2,22,2,9,2,4,3,8,2,2,2,3,8,1,8,0,2,3,3,9,19,1,2,7,2,2,2,22,2,15,4,7,2,2,2,3,10,0,9,3,3,9,11,5,3,1,2,17,4,23,2,8,2,0,3,6,4,0,5,5,2,0,2,7,19,1,14,57,6,14,2,9,40,1,2,0,3,1,2,0,3,0,7,3,2,6,2,2,2,0,2,0,3,1,2,12,2,2,3,4,2,0,2,5,3,9,3,1,35,0,24,1,7,9,12,0,2,0,2,0,5,9,2,35,5,19,2,5,5,7,2,35,10,0,58,73,7,77,3,37,11,42,2,0,4,328,2,3,3,6,2,0,2,3,3,40,2,3,3,32,2,3,3,6,2,0,2,3,3,14,2,56,2,3,3,66,5,0,33,15,17,84,13,619,3,16,2,25,6,74,22,12,2,6,12,20,12,19,13,12,2,2,2,1,13,51,3,29,4,0,5,1,3,9,34,2,3,9,7,87,9,42,6,69,11,28,4,11,5,11,11,39,3,4,12,43,5,25,7,10,38,27,5,62,2,28,3,10,7,9,14,0,89,75,5,9,18,8,13,42,4,11,71,55,9,9,4,48,83,2,2,30,14,230,23,280,3,5,3,37,3,5,3,7,2,0,2,0,2,0,2,30,3,52,2,6,2,0,4,2,2,6,4,3,3,5,5,12,6,2,2,6,67,1,20,0,29,0,14,0,17,4,60,12,5,0,4,11,18,0,5,0,3,9,2,0,4,4,7,0,2,0,2,0,2,3,2,10,3,3,6,4,5,0,53,1,2684,46,2,46,2,132,7,6,15,37,11,53,10,0,17,22,10,6,2,6,2,6,2,6,2,6,2,6,2,6,2,6,2,31,48,0,470,1,36,5,2,4,6,1,5,85,3,1,3,2,2,89,2,3,6,40,4,93,18,23,57,15,513,6581,75,20939,53,1164,68,45,3,268,4,27,21,31,3,13,13,1,2,24,9,69,11,1,38,8,3,102,3,1,111,44,25,51,13,68,12,9,7,23,4,0,5,45,3,35,13,28,4,64,15,10,39,54,10,13,3,9,7,22,4,1,5,66,25,2,227,42,2,1,3,9,7,11171,13,22,5,48,8453,301,3,61,3,105,39,6,13,4,6,11,2,12,2,4,2,0,2,1,2,1,2,107,34,362,19,63,3,53,41,11,5,15,17,6,13,1,25,2,33,4,2,134,20,9,8,25,5,0,2,25,12,88,4,5,3,5,3,5,3,2],i=0,r=[],s=0;s2?o%c!=c-1:o%c==0})}else{if(!this.blockComment)return!1;var p=this.blockComment.start,g=this.blockComment.end,m=new RegExp("^(\\s*)(?:"+l.escapeRegExp(p)+")"),f=new RegExp("(?:"+l.escapeRegExp(g)+")\\s*$"),y=function(e,t){b(e,t)||r&&!/\S/.test(e)||(i.insertInLine({row:t,column:e.length},g),i.insertInLine({row:t,column:a},p))},v=function(e,t){var n;(n=e.match(f))&&i.removeInLine(t,e.length-n[0].length,e.length),(n=e.match(m))&&i.removeInLine(t,n[1].length,n[0].length)},b=function(e,n){if(m.test(e))return!0;for(var o=t.getTokens(n),i=0;ie.length&&(x=e.length)})),a==1/0&&(a=x,r=!1,s=!1),u&&a%c!=0&&(a=Math.floor(a/c)*c),w(s?v:y)},this.toggleBlockComment=function(e,t,n,o){var i=this.blockComment;if(i){!i.start&&i[0]&&(i=i[0]);var r,s,a=(m=new c(t,o.row,o.column)).getCurrentToken(),l=(t.selection,t.selection.toOrientedRange());if(a&&/comment/.test(a.type)){for(var h,d;a&&/comment/.test(a.type);){if(-1!=(f=a.value.indexOf(i.start))){var p=m.getCurrentTokenRow(),g=m.getCurrentTokenColumn()+f;h=new u(p,g,p,g+i.start.length);break}a=m.stepBackward()}var m;for(a=(m=new c(t,o.row,o.column)).getCurrentToken();a&&/comment/.test(a.type);){var f;if(-1!=(f=a.value.indexOf(i.end))){p=m.getCurrentTokenRow(),g=m.getCurrentTokenColumn()+f,d=new u(p,g,p,g+i.end.length);break}a=m.stepForward()}d&&t.remove(d),h&&(t.remove(h),r=h.start.row,s=-i.start.length)}else s=i.start.length,r=n.start.row,t.insert(n.end,i.end),t.insert(n.start,i.start);l.start.row==r&&(l.start.column+=s),l.end.row==r&&(l.end.column+=s),t.selection.fromOrientedRange(l)}},this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.autoOutdent=function(e,t,n){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){for(var t in this.$embeds=[],this.$modes={},e)if(e[t]){var n=e[t],i=n.prototype.$id,r=o.$modes[i];r||(o.$modes[i]=r=new n),o.$modes[t]||(o.$modes[t]=r),this.$embeds.push(t),this.$modes[t]=r}var s=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"];for(t=0;tthis.row)){var t=function(e,t,n){var o="insert"==e.action,i=(o?1:-1)*(e.end.row-e.start.row),r=(o?1:-1)*(e.end.column-e.start.column),a=e.start,l=o?a:e.end;return s(t,a,n)?{row:t.row,column:t.column}:s(l,t,!n)?{row:t.row+i,column:t.column+(t.row==l.row?r:0)}:{row:a.row,column:a.column}}(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(t.row,t.column,!0)}},e.prototype.setPosition=function(e,t,n){var o;if(o=n?{row:e,column:t}:this.$clipPositionToDocument(e,t),this.row!=o.row||this.column!=o.column){var i={row:this.row,column:this.column};this.row=o.row,this.column=o.column,this._signal("change",{old:i,value:o})}},e.prototype.detach=function(){this.document.off("change",this.$onChange)},e.prototype.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},e.prototype.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n},e}();function s(e,t,n){var o=n?e.column<=t.column:e.column=n&&(e=n-1,t=void 0);var o=this.getLine(e);return null==t&&(t=o.length),{row:e,column:t=Math.min(Math.max(t,0),o.length)}},e.prototype.clonePos=function(e){return{row:e.row,column:e.column}},e.prototype.pos=function(e,t){return{row:e,column:t}},e.prototype.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},e.prototype.insertFullLines=function(e,t){var n=0;(e=Math.min(Math.max(e,0),this.getLength()))0,o=t=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},e.prototype.replace=function(e,t){return e instanceof s||(e=s.fromPoints(e.start,e.end)),0===t.length&&e.isEmpty()?e.start:t==this.getTextRange(e)?e.end:(this.remove(e),t?this.insert(e.start,t):e.start)},e.prototype.applyDeltas=function(e){for(var t=0;t=0;t--)this.revertDelta(e[t])},e.prototype.applyDelta=function(e,t){var n="insert"==e.action;(n?e.lines.length<=1&&!e.lines[0]:!s.comparePoints(e.start,e.end))||(n&&e.lines.length>2e4?this.$splitAndapplyLargeDelta(e,2e4):(i(this.$lines,e,t),this._signal("change",e)))},e.prototype.$safeApplyDelta=function(e){var t=this.$lines.length;("remove"==e.action&&e.start.row20){n.running=setTimeout(n.$worker,20);break}}n.currentLine=t,-1==o&&(o=t),r<=o&&n.fireUpdateEvent(r,o)}}}return e.prototype.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},e.prototype.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},e.prototype.fireUpdateEvent=function(e,t){var n={first:e,last:t};this._signal("update",{data:n})},e.prototype.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},e.prototype.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},e.prototype.$updateOnChange=function(e){var t=e.start.row,n=e.end.row-t;if(0===n)this.lines[t]=null;else if("remove"==e.action)this.lines.splice(t,n+1,null),this.states.splice(t,n+1,null);else{var o=Array(n+1);o.unshift(t,1),this.lines.splice.apply(this.lines,o),this.states.splice.apply(this.states,o)}this.currentLine=Math.min(t,this.currentLine,this.doc.getLength()),this.stop()},e.prototype.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},e.prototype.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},e.prototype.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||"start"},e.prototype.$tokenizeRow=function(e){var t=this.doc.getLine(e),n=this.states[e-1],o=this.tokenizer.getLineTokens(t,n,e);return this.states[e]+""!=o.state+""?(this.states[e]=o.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=o.tokens},e.prototype.cleanup=function(){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.removeAllListeners()},e}();o.implement(r.prototype,i),t.BackgroundTokenizer=r})),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/range"],(function(e,t,n){"use strict";var o=e("./lib/lang"),i=e("./range").Range,r=function(){function e(e,t,n){void 0===n&&(n="text"),this.setRegexp(e),this.clazz=t,this.type=n}return e.prototype.setRegexp=function(e){this.regExp+""!=e+""&&(this.regExp=e,this.cache=[])},e.prototype.update=function(e,t,n,r){if(this.regExp)for(var s=r.firstRow,a=r.lastRow,l={},c=s;c<=a;c++){var u=this.cache[c];null==u&&((u=o.getMatchOffsets(n.getLine(c),this.regExp)).length>this.MAX_RANGES&&(u=u.slice(0,this.MAX_RANGES)),u=u.map((function(e){return new i(c,e.offset,c,e.offset+e.length)})),this.cache[c]=u.length?u:"");for(var h=u.length;h--;){var d=u[h].toScreenRange(n),p=d.toString();l[p]||(l[p]=!0,t.drawSingleLineMarker(e,d,this.clazz,r))}}},e}();r.prototype.MAX_RANGES=500,t.SearchHighlight=r})),ace.define("ace/undomanager",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=function(){function e(){this.$maxRev=0,this.$fromUndo=!1,this.$undoDepth=1/0,this.reset()}return e.prototype.addSession=function(e){this.$session=e},e.prototype.add=function(e,t,n){if(!this.$fromUndo&&e!=this.$lastDelta){if(this.$keepRedoStack||(this.$redoStack.length=0),!1===t||!this.lastDeltas){this.lastDeltas=[];var o=this.$undoStack.length;o>this.$undoDepth-1&&this.$undoStack.splice(0,o-this.$undoDepth+1),this.$undoStack.push(this.lastDeltas),e.id=this.$rev=++this.$maxRev}"remove"!=e.action&&"insert"!=e.action||(this.$lastDelta=e),this.lastDeltas.push(e)}},e.prototype.addSelection=function(e,t){this.selections.push({value:e,rev:t||this.$rev})},e.prototype.startNewGroup=function(){return this.lastDeltas=null,this.$rev},e.prototype.markIgnored=function(e,t){null==t&&(t=this.$rev+1);for(var n=this.$undoStack,o=n.length;o--;){var i=n[o][0];if(i.id<=e)break;i.id0},e.prototype.canRedo=function(){return this.$redoStack.length>0},e.prototype.bookmark=function(e){null==e&&(e=this.$rev),this.mark=e},e.prototype.isAtBookmark=function(){return this.$rev===this.mark},e.prototype.toJSON=function(){return{$redoStack:this.$redoStack,$undoStack:this.$undoStack}},e.prototype.fromJSON=function(e){this.reset(),this.$undoStack=e.$undoStack,this.$redoStack=e.$redoStack},e.prototype.$prettyPrint=function(e){return e?a(e):a(this.$undoStack)+"\n---\n"+a(this.$redoStack)},e}();o.prototype.hasUndo=o.prototype.canUndo,o.prototype.hasRedo=o.prototype.canRedo,o.prototype.isClean=o.prototype.isAtBookmark,o.prototype.markClean=o.prototype.bookmark;var i=e("./range").Range,r=i.comparePoints;function s(e){return{row:e.row,column:e.column}}function a(e){if(e=e||this,Array.isArray(e))return e.map(a).join("\n");var t="";return e.action?(t="insert"==e.action?"+":"-",t+="["+e.lines+"]"):e.value&&(t=Array.isArray(e.value)?e.value.map(l).join("\n"):l(e.value)),e.start&&(t+=l(e)),(e.id||e.rev)&&(t+="\t("+(e.id||e.rev)+")"),t}function l(e){return e.start.row+":"+e.start.column+"=>"+e.end.row+":"+e.end.column}function c(e,t){var n="insert"==e.action,o="insert"==t.action;if(n&&o)if(r(t.start,e.end)>=0)d(t,e,-1);else{if(!(r(t.start,e.start)<=0))return null;d(e,t,1)}else if(n&&!o)if(r(t.start,e.end)>=0)d(t,e,-1);else{if(!(r(t.end,e.start)<=0))return null;d(e,t,-1)}else if(!n&&o)if(r(t.start,e.start)>=0)d(t,e,1);else{if(!(r(t.start,e.start)<=0))return null;d(e,t,1)}else if(!n&&!o)if(r(t.start,e.start)>=0)d(t,e,1);else{if(!(r(t.end,e.start)<=0))return null;d(e,t,-1)}return[t,e]}function u(e,t){for(var n=e.length;n--;)for(var o=0;o=0?d(e,t,-1):(r(e.start,t.start)<=0||d(e,i.fromPoints(t.start,e.start),-1),d(t,e,1));else if(!n&&o)r(t.start,e.end)>=0?d(t,e,-1):(r(t.start,e.start)<=0||d(t,i.fromPoints(e.start,t.start),-1),d(e,t,1));else if(!n&&!o)if(r(t.start,e.end)>=0)d(t,e,-1);else{var s,a;if(!(r(t.end,e.start)<=0))return r(e.start,t.start)<0&&(s=e,e=g(e,t.start)),r(e.end,t.end)>0&&(a=g(e,t.end)),p(t.end,e.start,e.end,-1),a&&!s&&(e.lines=a.lines,e.start=a.start,e.end=a.end,a=e),[t,s,a].filter(Boolean);d(e,t,-1)}return[t,e]}function d(e,t,n){p(e.start,t.start,t.end,n),p(e.end,t.start,t.end,n)}function p(e,t,n,o){e.row==(1==o?t:n).row&&(e.column+=o*(n.column-t.column)),e.row+=o*(n.row-t.row)}function g(e,t){var n=e.lines,o=e.end;e.end=s(t);var i=e.end.row-e.start.row,r=n.splice(i,n.length),a=i?t.column:t.column-e.start.column;return n.push(r[0].substring(0,a)),r[0]=r[0].substr(a),{start:s(t),end:o,lines:r,action:e.action}}function m(e,t){t=function(e){return{start:s(e.start),end:s(e.end),action:e.action,lines:e.lines.slice()}}(t);for(var n=e.length;n--;){for(var o=e[n],i=0;ithis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(e),this.folds.sort((function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)})),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},e.prototype.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},e.prototype.walk=function(e,t,n){var o,i,r=0,s=this.folds,a=!0;null==t&&(t=this.end.row,n=this.end.column);for(var l=0;l0)){var l=o(e,s.start);return 0===a?t&&0!==l?-r-2:r:l>0||0===l&&!t?r:-r-1}}return-r-1},e.prototype.add=function(e){var t=!e.isEmpty(),n=this.pointIndex(e.start,t);n<0&&(n=-n-1);var o=this.pointIndex(e.end,t,n);return o<0?o=-o-1:o++,this.ranges.splice(n,o-n,e)},e.prototype.addList=function(e){for(var t=[],n=e.length;n--;)t.push.apply(t,this.add(e[n]));return t},e.prototype.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},e.prototype.merge=function(){for(var e,t=[],n=this.ranges,i=(n=n.sort((function(e,t){return o(e.start,t.start)})))[0],r=1;r=0},e.prototype.containsPoint=function(e){return this.pointIndex(e)>=0},e.prototype.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},e.prototype.clipRows=function(e,t){var n=this.ranges;if(n[0].start.row>t||n[n.length-1].start.row=o);s++);if("insert"==e.action){for(var l=i-o,c=-t.column+n.column;so);s++)if(u.start.row==o&&u.start.column>=t.column&&(u.start.column==t.column&&this.$bias<=0||(u.start.column+=c,u.start.row+=l)),u.end.row==o&&u.end.column>=t.column){if(u.end.column==t.column&&this.$bias<0)continue;u.end.column==t.column&&c>0&&su.start.column&&u.end.column==r[s+1].start.column&&(u.end.column-=c),u.end.column+=c,u.end.row+=l}}else for(l=o-i,c=t.column-n.column;si);s++)u.end.rowt.column)&&(u.end.column=t.column,u.end.row=t.row):(u.end.column+=c,u.end.row+=l):u.end.row>i&&(u.end.row+=l),u.start.rowt.column)&&(u.start.column=t.column,u.start.row=t.row):(u.start.column+=c,u.start.row+=l):u.start.row>i&&(u.start.row+=l);if(0!=l&&s=e)return i;if(i.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var n=this.$foldData,o=0;for(t&&(o=n.indexOf(t)),-1==o&&(o=0);o=e)return i}return null},this.getFoldedRowCount=function(e,t){for(var n=this.$foldData,o=t-e+1,i=0;i=t){a=e?o-=t-a:o=0);break}s>=e&&(o-=a>=e?s-a:s-e+1)}return o},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort((function(e,t){return e.start.row-t.start.row})),e},this.addFold=function(e,t){var n,o=this.$foldData,s=!1;e instanceof r?n=e:(n=new r(t,e)).collapseChildren=t.collapseChildren,this.$clipRangeToDocument(n.range);var a=n.start.row,l=n.start.column,c=n.end.row,u=n.end.column,h=this.getFoldAt(a,l,1),d=this.getFoldAt(c,u,-1);if(h&&d==h)return h.addSubFold(n);h&&!h.range.isStart(a,l)&&this.removeFold(h),d&&!d.range.isEnd(c,u)&&this.removeFold(d);var p=this.getFoldsInRange(n.range);p.length>0&&(this.removeFolds(p),n.collapseChildren||p.forEach((function(e){n.addSubFold(e)})));for(var g=0;g0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach((function(e){this.expandFold(e)}),this)},this.unfold=function(e,t){var n,i;if(null==e)n=new o(0,0,this.getLength(),0),null==t&&(t=!0);else if("number"==typeof e)n=new o(e,0,e,this.getLine(e).length);else if("row"in e)n=o.fromPoints(e,e);else{if(Array.isArray(e))return i=[],e.forEach((function(e){i=i.concat(this.unfold(e))}),this),i;n=e}for(var r=i=this.getFoldsInRangeList(n);1==i.length&&o.comparePoints(i[0].start,n.start)<0&&o.comparePoints(i[0].end,n.end)>0;)this.expandFolds(i),i=this.getFoldsInRangeList(n);if(0!=t?this.removeFolds(i):this.expandFolds(i),r.length)return r},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var n=this.getFoldLine(e,t);return n?n.end.row:e},this.getRowFoldStart=function(e,t){var n=this.getFoldLine(e,t);return n?n.start.row:e},this.getFoldDisplayLine=function(e,t,n,o,i){null==o&&(o=e.start.row),null==i&&(i=0),null==t&&(t=e.end.row),null==n&&(n=this.getLine(t).length);var r=this.doc,s="";return e.walk((function(e,t,n,a){if(!(tu)break}while(r&&l.test(r.type)&&!/^comment.start/.test(r.type));r=i.stepBackward()}else r=i.getCurrentToken();return c.end.row=i.getCurrentTokenRow(),c.end.column=i.getCurrentTokenColumn(),/^comment.end/.test(r.type)||(c.end.column+=r.value.length-2),c}},this.foldAll=function(e,t,n,o){null==n&&(n=1e5);var i=this.foldWidgets;if(i){t=t||this.getLength();for(var r=e=e||0;r=e&&(r=s.end.row,s.collapseChildren=n,this.addFold("...",s))}}},this.foldToLevel=function(e){for(this.foldAll();e-- >0;)this.unfold(null,!1)},this.foldAllComments=function(){var e=this;this.foldAll(null,null,null,(function(t){for(var n=e.getTokens(t),o=0;o=0;){var r=n[i];if(null==r&&(r=n[i]=this.getFoldWidget(i)),"start"==r){var s=this.getFoldWidgetRange(i);if(o||(o=s),s&&s.end.row>=e)break}i--}return{range:-1!==i&&s,firstRange:o}},this.onFoldWidgetClick=function(e,t){t instanceof a&&(t=t.domEvent);var n={children:t.shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey};if(!this.$toggleFoldWidget(e,n)){var o=t.target||t.srcElement;o&&/ace_fold-widget/.test(o.className)&&(o.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(this.getFoldWidget){var n=this.getFoldWidget(e),o=this.getLine(e),i="end"===n?-1:1,r=this.getFoldAt(e,-1===i?0:o.length,i);if(r)return t.children||t.all?this.removeFold(r):this.expandFold(r),r;var s=this.getFoldWidgetRange(e,!0);if(s&&!s.isMultiLine()&&(r=this.getFoldAt(s.start.row,s.start.column,1))&&s.isEqual(r.range))return this.removeFold(r),r;if(t.siblings){var a=this.getParentFoldRangeData(e);if(a.range)var l=a.range.start.row+1,c=a.range.end.row;this.foldAll(l,c,t.all?1e4:0)}else t.children?(c=s?s.end.row:this.getLength(),this.foldAll(e+1,c,t.all?1e4:0)):s&&(t.all&&(s.collapseChildren=1e4),this.addFold("...",s));return s}},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var n=this.$toggleFoldWidget(t,{});if(!n){var o=this.getParentFoldRangeData(t,!0);if(n=o.range||o.firstRange){t=n.start.row;var i=this.getFoldAt(t,this.getLine(t).length,1);i?this.removeFold(i):this.addFold("...",n)}}},this.updateFoldWidgets=function(e){var t=e.start.row,n=e.end.row-t;if(0===n)this.foldWidgets[t]=null;else if("remove"==e.action)this.foldWidgets.splice(t,n+1,null);else{var o=Array(n+1);o.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,o)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}})),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],(function(e,t,n){"use strict";var o=e("../token_iterator").TokenIterator,i=e("../range").Range;t.BracketMatch=function(){this.findMatchingBracket=function(e,t){if(0==e.column)return null;var n=t||this.getLine(e.row).charAt(e.column-1);if(""==n)return null;var o=n.match(/([\(\[\{])|([\)\]\}])/);return o?o[1]?this.$findClosingBracket(o[1],e):this.$findOpeningBracket(o[2],e):null},this.getBracketRange=function(e){var t,n=this.getLine(e.row),o=!0,r=n.charAt(e.column-1),s=r&&r.match(/([\(\[\{])|([\)\]\}])/);if(s||(r=n.charAt(e.column),e={row:e.row,column:e.column+1},s=r&&r.match(/([\(\[\{])|([\)\]\}])/),o=!1),!s)return null;if(s[1]){if(!(a=this.$findClosingBracket(s[1],e)))return null;t=i.fromPoints(e,a),o||(t.end.column++,t.start.column--),t.cursor=t.end}else{var a;if(!(a=this.$findOpeningBracket(s[2],e)))return null;t=i.fromPoints(a,e),o||(t.start.column++,t.end.column--),t.cursor=t.start}return t},this.getMatchingBracketRanges=function(e,t){var n=this.getLine(e.row),o=/([\(\[\{])|([\)\]\}])/,r=!t&&n.charAt(e.column-1),s=r&&r.match(o);if(s||(r=(void 0===t||t)&&n.charAt(e.column),e={row:e.row,column:e.column+1},s=r&&r.match(o)),!s)return null;var a=new i(e.row,e.column-1,e.row,e.column),l=s[1]?this.$findClosingBracket(s[1],e):this.$findOpeningBracket(s[2],e);return l?[a,new i(l.row,l.column,l.row,l.column+1)]:[a]},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{","<":">",">":"<"},this.$findOpeningBracket=function(e,t,n){var i=this.$brackets[e],r=1,s=new o(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){n||(n=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)").replace(/-close\b/,"-(close|open)")+")+"));for(var l=t.column-s.getCurrentTokenColumn()-2,c=a.value;;){for(;l>=0;){var u=c.charAt(l);if(u==i){if(0==(r-=1))return{row:s.getCurrentTokenRow(),column:l+s.getCurrentTokenColumn()}}else u==e&&(r+=1);l-=1}do{a=s.stepBackward()}while(a&&!n.test(a.type));if(null==a)break;l=(c=a.value).length-1}return null}},this.$findClosingBracket=function(e,t,n){var i=this.$brackets[e],r=1,s=new o(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){n||(n=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)").replace(/-open\b/,"-(close|open)")+")+"));for(var l=t.column-s.getCurrentTokenColumn();;){for(var c=a.value,u=c.length;l"===t.value?o=!0:-1!==t.type.indexOf("tag-name")&&(n=!0))}while(t&&!n);return t},this.$findClosingTag=function(e,t){var n,o=t.value,r=t.value,s=0,a=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);t=e.stepForward();var l=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+t.value.length),c=!1;do{if(n=t,t=e.stepForward()){if(">"===t.value&&!c){var u=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);c=!0}if(-1!==t.type.indexOf("tag-name")){if(r===(o=t.value))if("<"===n.value)s++;else if(""!==t.value)return;var p=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1)}}else r===o&&"/>"===t.value&&--s<0&&(p=d=h=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+2),u=new i(l.end.row,l.end.column,l.end.row,l.end.column+1))}}while(t&&s>=0);if(a&&u&&h&&p&&l&&d)return{openTag:new i(a.start.row,a.start.column,u.end.row,u.end.column),closeTag:new i(h.start.row,h.start.column,p.end.row,p.end.column),openTagName:l,closeTagName:d}},this.$findOpeningTag=function(e,t){var n=e.getCurrentToken(),o=t.value,r=0,s=e.getCurrentTokenRow(),a=e.getCurrentTokenColumn(),l=a+2,c=new i(s,a,s,l);e.stepForward();var u=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+t.value.length);if((t=e.stepForward())&&">"===t.value){var h=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);e.stepBackward(),e.stepBackward();do{if(t=n,s=e.getCurrentTokenRow(),l=(a=e.getCurrentTokenColumn())+t.value.length,n=e.stepBackward(),t)if(-1!==t.type.indexOf("tag-name")){if(o===t.value)if("<"===n.value){if(++r>0){var d=new i(s,a,s,l),p=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);do{t=e.stepForward()}while(t&&">"!==t.value);var g=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1)}}else""===t.value){for(var m=0,f=n;f;){if(-1!==f.type.indexOf("tag-name")&&f.value===o){r--;break}if("<"===f.value)break;f=e.stepBackward(),m++}for(var y=0;yn&&(this.$docRowCache.splice(n,t),this.$screenRowCache.splice(n,t))},e.prototype.$getRowCacheIndex=function(e,t){for(var n=0,o=e.length-1;n<=o;){var i=n+o>>1,r=e[i];if(t>r)n=i+1;else{if(!(t=t);r++);return(n=o[r])?(n.index=r,n.start=i-n.value.length,n):null},e.prototype.setUndoManager=function(e){if(this.$undoManager=e,this.$informUndoManager&&this.$informUndoManager.cancel(),e){var t=this;e.addSession(this),this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.mergeUndoDeltas=!1},this.$informUndoManager=i.delayedCall(this.$syncInformUndoManager)}else this.$syncInformUndoManager=function(){}},e.prototype.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},e.prototype.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},e.prototype.getTabString=function(){return this.getUseSoftTabs()?i.stringRepeat(" ",this.getTabSize()):"\t"},e.prototype.setUseSoftTabs=function(e){this.setOption("useSoftTabs",e)},e.prototype.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},e.prototype.setTabSize=function(e){this.setOption("tabSize",e)},e.prototype.getTabSize=function(){return this.$tabSize},e.prototype.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize==0},e.prototype.setNavigateWithinSoftTabs=function(e){this.setOption("navigateWithinSoftTabs",e)},e.prototype.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},e.prototype.setOverwrite=function(e){this.setOption("overwrite",e)},e.prototype.getOverwrite=function(){return this.$overwrite},e.prototype.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},e.prototype.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._signal("changeBreakpoint",{})},e.prototype.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._signal("changeBreakpoint",{})},e.prototype.getBreakpoints=function(){return this.$breakpoints},e.prototype.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t0&&(o=!!n.charAt(t-1).match(this.tokenRe)),o||(o=!!n.charAt(t).match(this.tokenRe)),o)var i=this.tokenRe;else i=/^\s+$/.test(n.slice(t-1,t+1))?/\s/:this.nonTokenRe;var r=t;if(r>0){do{r--}while(r>=0&&n.charAt(r).match(i));r++}for(var s=t;se&&(e=t.screenWidth)})),this.lineWidgetWidth=e},e.prototype.$computeWidth=function(e){if(this.$modified||e){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var t=this.doc.getAllLines(),n=this.$rowLengthCache,o=0,i=0,r=this.$foldData[i],s=r?r.start.row:1/0,a=t.length,l=0;ls){if((l=r.end.row+1)>=a)break;s=(r=this.$foldData[i++])?r.start.row:1/0}null==n[l]&&(n[l]=this.$getStringScreenWidth(t[l])[0]),n[l]>o&&(o=n[l])}this.screenWidth=o}},e.prototype.getLine=function(e){return this.doc.getLine(e)},e.prototype.getLines=function(e,t){return this.doc.getLines(e,t)},e.prototype.getLength=function(){return this.doc.getLength()},e.prototype.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},e.prototype.insert=function(e,t){return this.doc.insert(e,t)},e.prototype.remove=function(e){return this.doc.remove(e)},e.prototype.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},e.prototype.undoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var n=e.length-1;-1!=n;n--){var o=e[n];"insert"==o.action||"remove"==o.action?this.doc.revertDelta(o):o.folds&&this.addFolds(o.folds)}!t&&this.$undoSelect&&(e.selectionBefore?this.selection.fromJSON(e.selectionBefore):this.selection.setRange(this.$getUndoSelection(e,!0))),this.$fromUndo=!1}},e.prototype.redoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var n=0;ne.end.column&&(r.start.column+=c),r.end.row==e.end.row&&r.end.column>e.end.column&&(r.end.column+=c)),s&&r.start.row>=e.end.row&&(r.start.row+=s,r.end.row+=s)}if(r.end=this.insert(r.start,o),i.length){var a=e.start,l=r.start,c=(s=l.row-a.row,l.column-a.column);this.addFolds(i.map((function(e){return(e=e.clone()).start.row==a.row&&(e.start.column+=c),e.end.row==a.row&&(e.end.column+=c),e.start.row+=s,e.end.row+=s,e})))}return r},e.prototype.indentRows=function(e,t,n){n=n.replace(/\t/g,this.getTabString());for(var o=e;o<=t;o++)this.doc.insertInLine({row:o,column:0},n)},e.prototype.outdentRows=function(e){for(var t=e.collapseRows(),n=new u(0,0,0,0),o=this.getTabSize(),i=t.start.row;i<=t.end.row;++i){var r=this.getLine(i);n.start.row=i,n.end.row=i;for(var s=0;s0){var i;if((i=this.getRowFoldEnd(t+n))>this.doc.getLength()-1)return 0;o=i-t}else e=this.$clipRowToDocument(e),o=(t=this.$clipRowToDocument(t))-e+1;var r=new u(e,0,t,Number.MAX_VALUE),s=this.getFoldsInRange(r).map((function(e){return(e=e.clone()).start.row+=o,e.end.row+=o,e})),a=0==n?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+o,a),s.length&&this.addFolds(s),o},e.prototype.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},e.prototype.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},e.prototype.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},e.prototype.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},e.prototype.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},e.prototype.$clipPositionToDocument=function(e,t){if(t=Math.max(0,t),e<0)e=0,t=0;else{var n=this.doc.getLength();e>=n?(e=n-1,t=this.doc.getLine(n-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},e.prototype.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},e.prototype.setUseWrapMode=function(e){if(e!=this.$useWrapMode){if(this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0),e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal("changeWrapMode")}},e.prototype.getUseWrapMode=function(){return this.$useWrapMode},e.prototype.setWrapLimitRange=function(e,t){this.$wrapLimitRange.min===e&&this.$wrapLimitRange.max===t||(this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},e.prototype.adjustWrapLimit=function(e,t){var n=this.$wrapLimitRange;n.max<0&&(n={min:t,max:t});var o=this.$constrainWrapLimit(e,n.min,n.max);return o!=this.$wrapLimit&&o>1&&(this.$wrapLimit=o,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0)},e.prototype.$constrainWrapLimit=function(e,t,n){return t&&(e=Math.max(t,e)),n&&(e=Math.min(n,e)),e},e.prototype.getWrapLimit=function(){return this.$wrapLimit},e.prototype.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},e.prototype.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},e.prototype.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,n=e.action,o=e.start,i=e.end,r=o.row,s=i.row,a=s-r,l=null;if(this.$updating=!0,0!=a)if("remove"===n){this[t?"$wrapData":"$rowLengthCache"].splice(r,a);var c=this.$foldData;l=this.getFoldsInRange(e),this.removeFolds(l);var u=0;if(m=this.getFoldLine(i.row)){m.addRemoveChars(i.row,i.column,o.column-i.column),m.shiftRow(-a);var h=this.getFoldLine(r);h&&h!==m&&(h.merge(m),m=h),u=c.indexOf(m)+1}for(;u=i.row&&m.shiftRow(-a);s=r}else{var d=Array(a);d.unshift(r,0);var p=t?this.$wrapData:this.$rowLengthCache;if(p.splice.apply(p,d),c=this.$foldData,u=0,m=this.getFoldLine(r)){var g=m.range.compareInside(o.row,o.column);0==g?(m=m.split(o.row,o.column))&&(m.shiftRow(a),m.addRemoveChars(s,0,i.column-o.column)):-1==g&&(m.addRemoveChars(r,0,i.column-o.column),m.shiftRow(a)),u=c.indexOf(m)+1}for(;u=r&&m.shiftRow(a)}}else a=Math.abs(e.start.column-e.end.column),"remove"===n&&(l=this.getFoldsInRange(e),this.removeFolds(l),a=-a),(m=this.getFoldLine(r))&&m.addRemoveChars(r,o.column,a);return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(r,s):this.$updateRowLengthCache(r,s),l},e.prototype.$updateRowLengthCache=function(e,t,n){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},e.prototype.$updateWrapData=function(e,t){var n,o,i=this.doc.getAllLines(),r=this.getTabSize(),s=this.$wrapData,a=this.$wrapLimit,l=e;for(t=Math.min(t,i.length-1);l<=t;)(o=this.getFoldLine(l,o))?(n=[],o.walk(function(e,t,o,r){var s;if(null!=e){(s=this.$getDisplayTokens(e,n.length))[0]=v;for(var a=1;at-h;){var d=r+t-h;if(e[d-1]>=x&&e[d]>=x)u(d);else if(e[d]!=v&&e[d]!=b){for(var p=Math.max(d-(t-(t>>2)),r-1);d>p&&e[d]p&&e[d]p&&e[d]==w;)d--}else for(;d>p&&e[d]p?u(++d):(e[d=r+t]==y&&d--,u(d-h))}else{for(;d!=r-1&&e[d]!=v;d--);if(d>r){u(d);continue}for(d=r+t;d39&&r<48||r>57&&r<64?o.push(w):r>=4352&&$(r)?o.push(f,y):o.push(f)}return o},e.prototype.$getStringScreenWidth=function(e,t,n){if(0==t)return[0,0];var o,i;for(null==t&&(t=1/0),n=n||0,i=0;i=4352&&$(o)?n+=2:n+=1,!(n>t));i++);return[n,i]},e.prototype.getRowLength=function(e){var t=1;return this.lineWidgets&&(t+=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0),this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+t:t},e.prototype.getRowLineCount=function(e){return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1:1},e.prototype.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),n=this.$wrapData[t.row];return n.length&&n[0]=0){a=c[u],r=this.$docRowCache[u];var d=e>c[h-1]}else d=!h;for(var p=this.getLength()-1,g=this.getNextFoldLine(r),m=g?g.start.row:1/0;a<=e&&!(a+(l=this.getRowLength(r))>e||r>=p);)a+=l,++r>m&&(r=g.end.row+1,m=(g=this.getNextFoldLine(r,g))?g.start.row:1/0),d&&(this.$docRowCache.push(r),this.$screenRowCache.push(a));if(g&&g.start.row<=r)o=this.getFoldDisplayLine(g),r=g.start.row;else{if(a+l<=e||r>p)return{row:p,column:this.getLine(p).length};o=this.getLine(r),g=null}var f=0,y=Math.floor(e-a);if(this.$useWrapMode){var v=this.$wrapData[r];v&&(i=v[y],y>0&&v.length&&(f=v.indent,s=v[y-1]||v[v.length-1],o=o.substring(s)))}return void 0!==n&&this.$bidiHandler.isBidiRow(a+y,r,y)&&(t=this.$bidiHandler.offsetToCol(n)),s+=this.$getStringScreenWidth(o,t-f)[1],this.$useWrapMode&&s>=i&&(s=i-1),g?g.idxToPosition(s):{row:r,column:s}},e.prototype.documentToScreenPosition=function(e,t){if(void 0===t)var n=this.$clipPositionToDocument(e.row,e.column);else n=this.$clipPositionToDocument(e,t);e=n.row,t=n.column;var o,i=0,r=null;(o=this.getFoldAt(e,t,1))&&(e=o.start.row,t=o.start.column);var s,a=0,l=this.$docRowCache,c=this.$getRowCacheIndex(l,e),u=l.length;if(u&&c>=0){a=l[c],i=this.$screenRowCache[c];var h=e>l[u-1]}else h=!u;for(var d=this.getNextFoldLine(a),p=d?d.start.row:1/0;a=p){if((s=d.end.row+1)>e)break;p=(d=this.getNextFoldLine(s,d))?d.start.row:1/0}else s=a+1;i+=this.getRowLength(a),a=s,h&&(this.$docRowCache.push(a),this.$screenRowCache.push(i))}var g="";d&&a>=p?(g=this.getFoldDisplayLine(d,e,t),r=d.start.row):(g=this.getLine(e).substring(0,t),r=e);var m=0;if(this.$useWrapMode){var f=this.$wrapData[r];if(f){for(var y=0;g.length>=f[y];)i++,y++;g=g.substring(f[y-1]||0,g.length),m=y>0?f.indent:0}}return this.lineWidgets&&this.lineWidgets[a]&&this.lineWidgets[a].rowsAbove&&(i+=this.lineWidgets[a].rowsAbove),{row:i,column:m+this.$getStringScreenWidth(g)[0]}},e.prototype.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},e.prototype.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},e.prototype.getScreenLength=function(){var e=0,t=null;if(this.$useWrapMode)for(var n=this.$wrapData.length,o=0,i=(a=0,(t=this.$foldData[a++])?t.start.row:1/0);oi&&(o=t.end.row+1,i=(t=this.$foldData[a++])?t.start.row:1/0)}else{e=this.getLength();for(var s=this.$foldData,a=0;an);r++);return[o,r]})},e.prototype.destroy=function(){this.destroyed||(this.bgTokenizer.setDocument(null),this.bgTokenizer.cleanup(),this.destroyed=!0),this.$stopWorker(),this.removeAllListeners(),this.doc&&this.doc.off("change",this.$onChange),this.selection.detach()},e}();m.$uid=0,m.prototype.$modes=s.$modes,m.prototype.getValue=m.prototype.toString,m.prototype.$defaultUndoManager={undo:function(){},redo:function(){},hasUndo:function(){},hasRedo:function(){},reset:function(){},add:function(){},addSelection:function(){},startNewGroup:function(){},addSession:function(){}},m.prototype.$overwrite=!1,m.prototype.$mode=null,m.prototype.$modeId=null,m.prototype.$scrollTop=0,m.prototype.$scrollLeft=0,m.prototype.$wrapLimit=80,m.prototype.$useWrapMode=!1,m.prototype.$wrapLimitRange={min:null,max:null},m.prototype.lineWidgets=null,m.prototype.isFullWidth=$,o.implement(m.prototype,a);var f=1,y=2,v=3,b=4,w=9,x=10,k=11,C=12;function $(e){return!(e<4352)&&(e>=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510)}e("./edit_session/folding").Folding.call(m.prototype),e("./edit_session/bracket_match").BracketMatch.call(m.prototype),s.defineOptions(m.prototype,"session",{wrap:{set:function(e){if(e&&"off"!=e?"free"==e?e=!0:"printMargin"==e?e=-1:"string"==typeof e&&(e=parseInt(e,10)||!1):e=!1,this.$wrap!=e)if(this.$wrap=e,e){var t="number"==typeof e?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}else this.setUseWrapMode(!1)},get:function(){return this.getUseWrapMode()?-1==this.$wrap?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){(e="auto"==e?"text"!=this.$mode.type:"text"!=e)!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0)))},initialValue:"auto"},indentedSoftWrap:{set:function(){this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0))},initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){(e=parseInt(e))>0&&this.$tabSize!==e&&(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},foldStyle:{set:function(e){this.setFoldStyle(e)},handlesSet:!0},overwrite:{set:function(e){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId},handlesSet:!0}}),t.EditSession=m})),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],(function(e,t,n){"use strict";var o=e("./lib/lang"),i=e("./lib/oop"),r=e("./range").Range,s=function(){function e(){this.$options={}}return e.prototype.set=function(e){return i.mixin(this.$options,e),this},e.prototype.getOptions=function(){return o.copyObject(this.$options)},e.prototype.setOptions=function(e){this.$options=e},e.prototype.find=function(e){var t=this.$options,n=this.$matchIterator(e,t);if(!n)return!1;var o=null;return n.forEach((function(e,n,i,s){return o=new r(e,n,i,s),!(n==s&&t.start&&t.start.start&&0!=t.skipCurrent&&o.isEqual(t.start)&&(o=null,1))})),o},e.prototype.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var n=t.range,i=n?e.getLines(n.start.row,n.end.row):e.doc.getAllLines(),s=[],a=t.re;if(t.$isMultiLine){var l,c=a.length,u=i.length-c;e:for(var h=a.offset||0;h<=u;h++){for(var d=0;dm||(s.push(l=new r(h,m,h+c-1,f)),c>2&&(h=h+c-2))}}else for(var y=0;yx&&s[d].end.row==k;)d--;for(s=s.slice(y,d+1),y=0,d=s.length;y=c;n--)if(p(n,Number.MAX_VALUE,e))return;if(0!=t.wrap)for(n=u,c=l.row;n>=c;n--)if(p(n,Number.MAX_VALUE,e))return}};else h=function(e){var n=l.row;if(!p(n,l.column,e)){for(n+=1;n<=u;n++)if(p(n,0,e))return;if(0!=t.wrap)for(n=c,u=l.row;n<=u;n++)if(p(n,0,e))return}};if(t.$isMultiLine)var d=n.length,p=function(t,o,r){var s=i?t-d+1:t;if(!(s<0||s+d>e.getLength())){var a=e.getLine(s),l=a.search(n[0]);if(!(!i&&lo))return!!r(s,l,s+d-1,u)||void 0}}};else p=i?function(t,i,r){var a,l=e.getLine(t),c=[],u=0;for(n.lastIndex=0;a=n.exec(l);){var h=a[0].length;if(u=a.index,!h){if(u>=l.length)break;n.lastIndex=u+=o.skipEmptyMatch(l,u,s)}if(a.index+h>i)break;c.push(a.index,h)}for(var d=c.length-1;d>=0;d-=2){var p=c[d-1];if(r(t,p,t,p+(h=c[d])))return!0}}:function(t,i,r){var a,l,c=e.getLine(t);for(n.lastIndex=i;l=n.exec(c);){var u=l[0].length;if(r(t,a=l.index,t,a+u))return!0;if(!u&&(n.lastIndex=a+=o.skipEmptyMatch(c,a,s),a>=c.length))return!1}};return{forEach:h}},e}();t.Search=s})),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=e("../lib/keys"),s=e("../lib/useragent"),a=r.KEY_MODS,l=function(){function e(e,t){this.$init(e,t,!1)}return e.prototype.$init=function(e,t,n){this.platform=t||(s.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=n},e.prototype.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},e.prototype.removeCommand=function(e,t){var n=e&&("string"==typeof e?e:e.name);e=this.commands[n],t||delete this.commands[n];var o=this.commandKeyBinding;for(var i in o){var r=o[i];if(r==e)delete o[i];else if(Array.isArray(r)){var s=r.indexOf(e);-1!=s&&(r.splice(s,1),1==r.length&&(o[i]=r[0]))}}},e.prototype.bindKey=function(e,t,n){if("object"==typeof e&&e&&(null==n&&(n=e.position),e=e[this.platform]),e)return"function"==typeof t?this.addCommand({exec:t,bindKey:e,name:t.name||e}):void e.split("|").forEach((function(e){var o="";if(-1!=e.indexOf(" ")){var i=e.split(/\s+/);e=i.pop(),i.forEach((function(e){var t=this.parseKeys(e),n=a[t.hashId]+t.key;o+=(o?" ":"")+n,this._addCommandToBinding(o,"chainKeys")}),this),o+=" "}var r=this.parseKeys(e),s=a[r.hashId]+r.key;this._addCommandToBinding(o+s,t,n)}),this)},e.prototype._addCommandToBinding=function(e,t,n){var o,i=this.commandKeyBinding;if(t)if(!i[e]||this.$singleCommand)i[e]=t;else{Array.isArray(i[e])?-1!=(o=i[e].indexOf(t))&&i[e].splice(o,1):i[e]=[i[e]],"number"!=typeof n&&(n=c(t));var r=i[e];for(o=0;on);o++);r.splice(o,0,t)}else delete i[e]},e.prototype.addCommands=function(e){e&&Object.keys(e).forEach((function(t){var n=e[t];if(n){if("string"==typeof n)return this.bindKey(n,t);"function"==typeof n&&(n={exec:n}),"object"==typeof n&&(n.name||(n.name=t),this.addCommand(n))}}),this)},e.prototype.removeCommands=function(e){Object.keys(e).forEach((function(t){this.removeCommand(e[t])}),this)},e.prototype.bindKeys=function(e){Object.keys(e).forEach((function(t){this.bindKey(t,e[t])}),this)},e.prototype._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},e.prototype.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter((function(e){return e})),n=t.pop(),o=r[n];if(r.FUNCTION_KEYS[o])n=r.FUNCTION_KEYS[o].toLowerCase();else{if(!t.length)return{key:n,hashId:-1};if(1==t.length&&"shift"==t[0])return{key:n.toUpperCase(),hashId:-1}}for(var i=0,s=t.length;s--;){var a=r.KEY_MODS[t[s]];if(null==a)return"undefined"!=typeof console&&console.error("invalid modifier "+t[s]+" in "+e),!1;i|=a}return{key:n,hashId:i}},e.prototype.findKeyCommand=function(e,t){var n=a[e]+t;return this.commandKeyBinding[n]},e.prototype.handleKeyboard=function(e,t,n,o){if(!(o<0)){var i=a[t]+n,r=this.commandKeyBinding[i];return e.$keyChain&&(e.$keyChain+=" "+i,r=this.commandKeyBinding[e.$keyChain]||r),!r||"chainKeys"!=r&&"chainKeys"!=r[r.length-1]?(e.$keyChain&&(t&&4!=t||1!=n.length?(-1==t||o>0)&&(e.$keyChain=""):e.$keyChain=e.$keyChain.slice(0,-i.length-1)),{command:r}):(e.$keyChain=e.$keyChain||i,{command:"null"})}},e.prototype.getStatusText=function(e,t){return t.$keyChain||""},e}();function c(e){return"object"==typeof e&&e.bindKey&&e.bindKey.position||(e.isDefault?-100:0)}var u=function(e){function t(t,n){var o=e.call(this,t,n)||this;return o.$singleCommand=!0,o}return i(t,e),t}(l);u.call=function(e,t,n){l.prototype.$init.call(e,t,n,!0)},l.call=function(e,t,n){l.prototype.$init.call(e,t,n,!1)},t.HashHandler=u,t.MultiHashHandler=l})),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=e("../lib/oop"),s=e("../keyboard/hash_handler").MultiHashHandler,a=e("../lib/event_emitter").EventEmitter,l=function(e){function t(t,n){var o=e.call(this,n,t)||this;return o.byName=o.commands,o.setDefaultHandler("exec",(function(e){return e.args?e.command.exec(e.editor,e.args,e.event,!1):e.command.exec(e.editor,{},e.event,!0)})),o}return i(t,e),t.prototype.exec=function(e,t,n){if(Array.isArray(e)){for(var o=e.length;o--;)if(this.exec(e[o],t,n))return!0;return!1}if("string"==typeof e&&(e=this.commands[e]),!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;if(0!=this.$checkCommandState&&e.isAvailable&&!e.isAvailable(t))return!1;var i={editor:t,command:e,args:n};return i.returnValue=this._emit("exec",i),this._signal("afterExec",i),!1!==i.returnValue},t.prototype.toggleRecording=function(e){if(!this.$inReplay)return e&&e._emit("changeStatus"),this.recording?(this.macro.pop(),this.off("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},t.prototype.replay=function(e){if(!this.$inReplay&&this.macro){if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach((function(t){"string"==typeof t?this.exec(t,e):this.exec(t[0],e,t[1])}),this)}finally{this.$inReplay=!1}}},t.prototype.trimMacro=function(e){return e.map((function(e){return"string"!=typeof e[0]&&(e[0]=e[0].name),e[1]||(e=e[0]),e}))},t}(s);r.implement(l.prototype,a),t.CommandManager=l})),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],(function(e,t,n){"use strict";var o=e("../lib/lang"),i=e("../config"),r=e("../range").Range;function s(e,t){return{win:e,mac:t}}t.commands=[{name:"showSettingsMenu",description:"Show settings menu",bindKey:s("Ctrl-,","Command-,"),exec:function(e){i.loadModule("ace/ext/settings_menu",(function(t){t.init(e),e.showSettingsMenu()}))},readOnly:!0},{name:"goToNextError",description:"Go to next error",bindKey:s("Alt-E","F4"),exec:function(e){i.loadModule("ace/ext/error_marker",(function(t){t.showErrorMarker(e,1)}))},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",description:"Go to previous error",bindKey:s("Alt-Shift-E","Shift-F4"),exec:function(e){i.loadModule("ace/ext/error_marker",(function(t){t.showErrorMarker(e,-1)}))},scrollIntoView:"animate",readOnly:!0},{name:"selectall",description:"Select all",bindKey:s("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",description:"Center selection",bindKey:s(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",description:"Go to line...",bindKey:s("Ctrl-L","Command-L"),exec:function(e,t){"number"!=typeof t||isNaN(t)||e.gotoLine(t),e.prompt({$type:"gotoLine"})},readOnly:!0},{name:"fold",bindKey:s("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:s("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",description:"Toggle fold widget",bindKey:s("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",description:"Toggle parent fold widget",bindKey:s("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",description:"Fold all",bindKey:s(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldAllComments",description:"Fold all comments",bindKey:s(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAllComments()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",description:"Fold other",bindKey:s("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",description:"Unfold all",bindKey:s("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",description:"Find next",bindKey:s("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",description:"Find previous",bindKey:s("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",description:"Select or find next",bindKey:s("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",description:"Select or find previous",bindKey:s("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",description:"Find",bindKey:s("Ctrl-F","Command-F"),exec:function(e){i.loadModule("ace/ext/searchbox",(function(t){t.Search(e)}))},readOnly:!0},{name:"overwrite",description:"Overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",description:"Select to start",bindKey:s("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",description:"Go to start",bindKey:s("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",description:"Select up",bindKey:s("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",description:"Go line up",bindKey:s("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",description:"Select to end",bindKey:s("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",description:"Go to end",bindKey:s("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",description:"Select down",bindKey:s("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",description:"Go line down",bindKey:s("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",description:"Select word left",bindKey:s("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",description:"Go to word left",bindKey:s("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",description:"Select to line start",bindKey:s("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",description:"Go to line start",bindKey:s("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",description:"Select left",bindKey:s("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",description:"Go to left",bindKey:s("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",description:"Select word right",bindKey:s("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",description:"Go to word right",bindKey:s("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",description:"Select to line end",bindKey:s("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",description:"Go to line end",bindKey:s("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",description:"Select right",bindKey:s("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",description:"Go to right",bindKey:s("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",description:"Select page down",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",description:"Page down",bindKey:s(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",description:"Go to page down",bindKey:s("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",description:"Select page up",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",description:"Page up",bindKey:s(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",description:"Go to page up",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",description:"Scroll up",bindKey:s("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",description:"Scroll down",bindKey:s("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",description:"Select line start",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",description:"Select line end",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",description:"Toggle recording",bindKey:s("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",description:"Replay macro",bindKey:s("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",description:"Jump to matching",bindKey:s("Ctrl-\\|Ctrl-P","Command-\\"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",description:"Select to matching",bindKey:s("Ctrl-Shift-\\|Ctrl-Shift-P","Command-Shift-\\"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",description:"Expand to matching",bindKey:s("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",description:"Pass keys to browser",bindKey:s(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",description:"Copy",exec:function(e){},readOnly:!0},{name:"cut",description:"Cut",exec:function(e){var t=e.$copyWithEmptySelection&&e.selection.isEmpty()?e.selection.getLineRange():e.selection.getRange();e._emit("cut",t),t.isEmpty()||e.session.remove(t),e.clearSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",description:"Paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",description:"Remove line",bindKey:s("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",description:"Duplicate selection",bindKey:s("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",description:"Sort lines",bindKey:s("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",description:"Toggle comment",bindKey:s("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",description:"Toggle block comment",bindKey:s("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",description:"Modify number up",bindKey:s("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",description:"Modify number down",bindKey:s("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",description:"Replace",bindKey:s("Ctrl-H","Command-Option-F"),exec:function(e){i.loadModule("ace/ext/searchbox",(function(t){t.Search(e,!0)}))}},{name:"undo",description:"Undo",bindKey:s("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",description:"Redo",bindKey:s("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",description:"Copy lines up",bindKey:s("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",description:"Move lines up",bindKey:s("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",description:"Copy lines down",bindKey:s("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",description:"Move lines down",bindKey:s("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",description:"Delete",bindKey:s("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",description:"Backspace",bindKey:s("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",description:"Cut or delete",bindKey:s("Shift-Delete",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",description:"Remove to line start",bindKey:s("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",description:"Remove to line end",bindKey:s("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",description:"Remove to line start hard",bindKey:s("Ctrl-Shift-Backspace",null),exec:function(e){var t=e.selection.getRange();t.start.column=0,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",description:"Remove to line end hard",bindKey:s("Ctrl-Shift-Delete",null),exec:function(e){var t=e.selection.getRange();t.end.column=Number.MAX_VALUE,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",description:"Remove word left",bindKey:s("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",description:"Remove word right",bindKey:s("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",description:"Outdent",bindKey:s("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",description:"Indent",bindKey:s("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",description:"Block outdent",bindKey:s("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",description:"Block indent",bindKey:s("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",description:"Insert string",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",description:"Insert text",exec:function(e,t){e.insert(o.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",description:"Split line",bindKey:s(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",description:"Transpose letters",bindKey:s("Alt-Shift-X","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",description:"To uppercase",bindKey:s("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",description:"To lowercase",bindKey:s("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"autoindent",description:"Auto Indent",bindKey:s(null,null),exec:function(e){e.autoIndent()},multiSelectAction:"forEachLine",scrollIntoView:"animate"},{name:"expandtoline",description:"Expand to line",bindKey:s("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"openlink",bindKey:s("Ctrl+F3","F3"),exec:function(e){e.openLink()}},{name:"joinlines",description:"Join lines",bindKey:s(null,null),exec:function(e){for(var t=e.selection.isBackwards(),n=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),i=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),s=e.session.doc.getLine(n.row).length,a=e.session.doc.getTextRange(e.selection.getRange()).replace(/\n\s*/," ").length,l=e.session.doc.getLine(n.row),c=n.row+1;c<=i.row+1;c++){var u=o.stringTrimLeft(o.stringTrimRight(e.session.doc.getLine(c)));0!==u.length&&(u=" "+u),l+=u}i.row+10?(e.selection.moveCursorTo(n.row,n.column),e.selection.selectTo(n.row,n.column+a)):(s=e.session.doc.getLine(n.row).length>s?s+1:s,e.selection.moveCursorTo(n.row,s))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",description:"Invert selection",bindKey:s(null,null),exec:function(e){var t=e.session.doc.getLength()-1,n=e.session.doc.getLine(t).length,o=e.selection.rangeList.ranges,i=[];o.length<1&&(o=[e.selection.getRange()]);for(var s=0;st[n].column&&n++,r.unshift(n,0),t.splice.apply(t,r),this.$updateRows()}}},e.prototype.$updateRows=function(){var e=this.session.lineWidgets;if(e){var t=!0;e.forEach((function(e,n){if(e)for(t=!1,e.row=n;e.$oldWidget;)e.$oldWidget.row=n,e=e.$oldWidget})),t&&(this.session.lineWidgets=null)}},e.prototype.$registerLineWidget=function(e){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var t=this.session.lineWidgets[e.row];return t&&(e.$oldWidget=t,t.el&&t.el.parentNode&&(t.el.parentNode.removeChild(t.el),t._inDocument=!1)),this.session.lineWidgets[e.row]=e,e},e.prototype.addLineWidget=function(e){if(this.$registerLineWidget(e),e.session=this.session,!this.editor)return e;var t=this.editor.renderer;e.html&&!e.el&&(e.el=o.createElement("div"),e.el.innerHTML=e.html),e.text&&!e.el&&(e.el=o.createElement("div"),e.el.textContent=e.text),e.el&&(o.addCssClass(e.el,"ace_lineWidgetContainer"),e.className&&o.addCssClass(e.el,e.className),e.el.style.position="absolute",e.el.style.zIndex=5,t.container.appendChild(e.el),e._inDocument=!0,e.coverGutter||(e.el.style.zIndex=3),null==e.pixelHeight&&(e.pixelHeight=e.el.offsetHeight)),null==e.rowCount&&(e.rowCount=e.pixelHeight/t.layerConfig.lineHeight);var n=this.session.getFoldAt(e.row,0);if(e.$fold=n,n){var i=this.session.lineWidgets;e.row!=n.end.row||i[n.start.row]?e.hidden=!0:i[n.start.row]=e}return this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows(),this.renderWidgets(null,t),this.onWidgetChanged(e),e},e.prototype.removeLineWidget=function(e){if(e._inDocument=!1,e.session=null,e.el&&e.el.parentNode&&e.el.parentNode.removeChild(e.el),e.editor&&e.editor.destroy)try{e.editor.destroy()}catch(e){}if(this.session.lineWidgets){var t=this.session.lineWidgets[e.row];if(t==e)this.session.lineWidgets[e.row]=e.$oldWidget,e.$oldWidget&&this.onWidgetChanged(e.$oldWidget);else for(;t;){if(t.$oldWidget==e){t.$oldWidget=e.$oldWidget;break}t=t.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows()},e.prototype.getWidgetsAtRow=function(e){for(var t=this.session.lineWidgets,n=t&&t[e],o=[];n;)o.push(n),n=n.$oldWidget;return o},e.prototype.onWidgetChanged=function(e){this.session._changedWidgets.push(e),this.editor&&this.editor.renderer.updateFull()},e.prototype.measureWidgets=function(e,t){var n=this.session._changedWidgets,o=t.layerConfig;if(n&&n.length){for(var i=1/0,r=0;r0&&!o[i];)i--;this.firstRow=n.firstRow,this.lastRow=n.lastRow,t.$cursorLayer.config=n;for(var s=i;s<=r;s++){var a=o[s];if(a&&a.el)if(a.hidden)a.el.style.top=-100-(a.pixelHeight||0)+"px";else{a._inDocument||(a._inDocument=!0,t.container.appendChild(a.el));var l=t.$cursorLayer.getPixelPosition({row:s,column:0},!0).top;a.coverLine||(l+=n.lineHeight*this.session.getRowLineCount(a.row)),a.el.style.top=l-n.offset+"px";var c=a.coverGutter?0:t.gutterWidth;a.fixedWidth||(c-=t.scrollLeft),a.el.style.left=c+"px",a.fullWidth&&a.screenWidth&&(a.el.style.minWidth=n.width+2*n.padding+"px"),a.fixedWidth?a.el.style.right=t.scrollBar.getWidth()+"px":a.el.style.right=""}}}},e}();t.LineWidgets=i})),ace.define("ace/keyboard/gutter_handler",["require","exports","module","ace/lib/keys","ace/mouse/default_gutter_handler"],(function(e,t,n){"use strict";var o=e("../lib/keys"),i=e("../mouse/default_gutter_handler").GutterTooltip,r=function(){function e(e){this.editor=e,this.gutterLayer=e.renderer.$gutterLayer,this.element=e.renderer.$gutter,this.lines=e.renderer.$gutterLayer.$lines,this.activeRowIndex=null,this.activeLane=null,this.annotationTooltip=new i(this.editor)}return e.prototype.addListener=function(){this.element.addEventListener("keydown",this.$onGutterKeyDown.bind(this)),this.element.addEventListener("focusout",this.$blurGutter.bind(this)),this.editor.on("mousewheel",this.$blurGutter.bind(this))},e.prototype.removeListener=function(){this.element.removeEventListener("keydown",this.$onGutterKeyDown.bind(this)),this.element.removeEventListener("focusout",this.$blurGutter.bind(this)),this.editor.off("mousewheel",this.$blurGutter.bind(this))},e.prototype.$onGutterKeyDown=function(e){if(this.annotationTooltip.isOpen)return e.preventDefault(),void(e.keyCode===o.escape&&this.annotationTooltip.hideTooltip());if(e.target===this.element){if(e.keyCode!=o.enter)return;e.preventDefault();var t=this.editor.getCursorPosition().row;return this.editor.isRowVisible(t)||this.editor.scrollToLine(t,!0,!0),void setTimeout(function(){var e=this.$rowToRowIndex(this.gutterLayer.$cursorCell.row),t=this.$findNearestFoldWidget(e),n=this.$findNearestAnnotation(e);if(null!==t||null!==n)return null===t&&null!==n?(this.activeRowIndex=n,this.activeLane="annotation",void this.$focusAnnotation(this.activeRowIndex)):null!==t&&null===n?(this.activeRowIndex=t,this.activeLane="fold",void this.$focusFoldWidget(this.activeRowIndex)):Math.abs(n-e)0||e+t=0&&this.$isFoldWidgetVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isFoldWidgetVisible(e+t))return e+t}return null},e.prototype.$findNearestAnnotation=function(e){if(this.$isAnnotationVisible(e))return e;for(var t=0;e-t>0||e+t=0&&this.$isAnnotationVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isAnnotationVisible(e+t))return e+t}return null},e.prototype.$focusFoldWidget=function(e){if(null!=e){var t=this.$getFoldWidget(e);t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus()}},e.prototype.$focusAnnotation=function(e){if(null!=e){var t=this.$getAnnotation(e);t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus()}},e.prototype.$blurFoldWidget=function(e){var t=this.$getFoldWidget(e);t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur()},e.prototype.$blurAnnotation=function(e){var t=this.$getAnnotation(e);t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur()},e.prototype.$moveFoldWidgetUp=function(){for(var e=this.activeRowIndex;e>0;)if(e--,this.$isFoldWidgetVisible(e))return this.$blurFoldWidget(this.activeRowIndex),this.activeRowIndex=e,void this.$focusFoldWidget(this.activeRowIndex)},e.prototype.$moveFoldWidgetDown=function(){for(var e=this.activeRowIndex;e0;)if(e--,this.$isAnnotationVisible(e))return this.$blurAnnotation(this.activeRowIndex),this.activeRowIndex=e,void this.$focusAnnotation(this.activeRowIndex)},e.prototype.$moveAnnotationDown=function(){for(var e=this.activeRowIndex;e=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},i=e("./lib/oop"),r=e("./lib/dom"),s=e("./lib/lang"),a=e("./lib/useragent"),l=e("./keyboard/textinput").TextInput,c=e("./mouse/mouse_handler").MouseHandler,u=e("./mouse/fold_handler").FoldHandler,h=e("./keyboard/keybinding").KeyBinding,d=e("./edit_session").EditSession,p=e("./search").Search,g=e("./range").Range,m=e("./lib/event_emitter").EventEmitter,f=e("./commands/command_manager").CommandManager,y=e("./commands/default_commands").commands,v=e("./config"),b=e("./token_iterator").TokenIterator,w=e("./line_widgets").LineWidgets,x=e("./keyboard/gutter_handler").GutterKeyboardHandler,k=e("./config").nls,C=e("./clipboard"),$=e("./lib/keys"),S=function(){function e(t,n,o){this.$toDestroy=[];var i=t.getContainerElement();this.container=i,this.renderer=t,this.id="editor"+ ++e.$uid,this.commands=new f(a.isMac?"mac":"win",y),"object"==typeof document&&(this.textInput=new l(t.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.$mouseHandler=new c(this),new u(this)),this.keyBinding=new h(this),this.$search=(new p).set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=s.delayedCall(function(){this._signal("input",{}),this.session&&!this.session.destroyed&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on("change",(function(e,t){t._$emitInputEvent.schedule(31)})),this.setSession(n||o&&o.session||new d("")),v.resetOptions(this),o&&this.setOptions(o),v._signal("editor",this)}return e.prototype.$initOperationListeners=function(){this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0),this.$opResetTimer=s.delayedCall(this.endOperation.bind(this,!0)),this.on("change",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.docChanged=!0}.bind(this),!0),this.on("changeSelection",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.selectionChanged=!0}.bind(this),!0)},e.prototype.startOperation=function(e){if(this.curOp){if(!e||this.curOp.command)return;this.prevOp=this.curOp}e||(this.previousCommand=null,e={}),this.$opResetTimer.schedule(),this.curOp=this.session.curOp={command:e.command||{},args:e.args,scrollTop:this.renderer.scrollTop},this.curOp.selectionBefore=this.selection.toJSON()},e.prototype.endOperation=function(e){if(this.curOp&&this.session){if(e&&!1===e.returnValue||!this.session)return this.curOp=null;if(1==e&&this.curOp.command&&"mouse"==this.curOp.command.name)return;if(this._signal("beforeEndOperation"),!this.curOp)return;var t=this.curOp.command,n=t&&t.scrollIntoView;if(n){switch(n){case"center-animate":n="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var o=this.selection.getRange(),i=this.renderer.layerConfig;(o.start.row>=i.lastRow||o.end.row<=i.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead)}"animate"==n&&this.renderer.animateScrolling(this.curOp.scrollTop)}var r=this.selection.toJSON();this.curOp.selectionAfter=r,this.$lastSel=this.selection.toJSON(),this.session.getUndoManager().addSelection(r),this.prevOp=this.curOp,this.curOp=null}},e.prototype.$historyTracker=function(e){if(this.$mergeUndoDeltas){var t=this.prevOp,n=this.$mergeableCommands,o=t.command&&e.command.name==t.command.name;if("insertstring"==e.command.name){var i=e.args;void 0===this.mergeNextCommand&&(this.mergeNextCommand=!0),o=o&&this.mergeNextCommand&&(!/\s/.test(i)||/\s/.test(t.args)),this.mergeNextCommand=!0}else o=o&&-1!==n.indexOf(e.command.name);"always"!=this.$mergeUndoDeltas&&Date.now()-this.sequenceStartTime>2e3&&(o=!1),o?this.session.mergeUndoDeltas=!0:-1!==n.indexOf(e.command.name)&&(this.sequenceStartTime=Date.now())}},e.prototype.setKeyboardHandler=function(e,t){if(e&&"string"==typeof e&&"ace"!=e){this.$keybindingId=e;var n=this;v.loadModule(["keybinding",e],(function(o){n.$keybindingId==e&&n.keyBinding.setKeyboardHandler(o&&o.handler),t&&t()}))}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},e.prototype.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},e.prototype.setSession=function(e){if(this.session!=e){this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var n=this.session.getSelection();n.off("changeCursor",this.$onCursorChange),n.off("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal("changeSession",{session:e,oldSession:t}),this.curOp=null,t&&t._signal("changeEditor",{oldEditor:this}),e&&e._signal("changeEditor",{editor:this}),e&&!e.destroyed&&e.bgTokenizer.scheduleStart()}},e.prototype.getSession=function(){return this.session},e.prototype.setValue=function(e,t){return this.session.doc.setValue(e),t?1==t?this.navigateFileEnd():-1==t&&this.navigateFileStart():this.selectAll(),e},e.prototype.getValue=function(){return this.session.getValue()},e.prototype.getSelection=function(){return this.selection},e.prototype.resize=function(e){this.renderer.onResize(e)},e.prototype.setTheme=function(e,t){this.renderer.setTheme(e,t)},e.prototype.getTheme=function(){return this.renderer.getTheme()},e.prototype.setStyle=function(e){this.renderer.setStyle(e)},e.prototype.unsetStyle=function(e){this.renderer.unsetStyle(e)},e.prototype.getFontSize=function(){return this.getOption("fontSize")||r.computedStyle(this.container).fontSize},e.prototype.setFontSize=function(e){this.setOption("fontSize",e)},e.prototype.$highlightBrackets=function(){if(!this.$highlightPending){var e=this;this.$highlightPending=!0,setTimeout((function(){e.$highlightPending=!1;var t=e.session;if(t&&!t.destroyed){t.$bracketHighlight&&(t.$bracketHighlight.markerIds.forEach((function(e){t.removeMarker(e)})),t.$bracketHighlight=null);var n=e.getCursorPosition(),o=e.getKeyboardHandler(),i=o&&o.$getDirectionForHighlight&&o.$getDirectionForHighlight(e),r=t.getMatchingBracketRanges(n,i);if(!r){var s=new b(t,n.row,n.column).getCurrentToken();if(s&&/\b(?:tag-open|tag-name)/.test(s.type)){var a=t.getMatchingTags(n);a&&(r=[a.openTagName,a.closeTagName])}}if(!r&&t.$mode.getMatching&&(r=t.$mode.getMatching(e.session)),r){var l="ace_bracket";Array.isArray(r)?1==r.length&&(l="ace_error_bracket"):r=[r],2==r.length&&(0==g.comparePoints(r[0].end,r[1].start)?r=[g.fromPoints(r[0].start,r[1].end)]:0==g.comparePoints(r[0].start,r[1].end)&&(r=[g.fromPoints(r[1].start,r[0].end)])),t.$bracketHighlight={ranges:r,markerIds:r.map((function(e){return t.addMarker(e,l,"text")}))},e.getHighlightIndentGuides()&&e.renderer.$textLayer.$highlightIndentGuide()}else e.getHighlightIndentGuides()&&e.renderer.$textLayer.$highlightIndentGuide()}}),50)}},e.prototype.focus=function(){this.textInput.focus()},e.prototype.isFocused=function(){return this.textInput.isFocused()},e.prototype.blur=function(){this.textInput.blur()},e.prototype.onFocus=function(e){this.$isFocused||(this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",e))},e.prototype.onBlur=function(e){this.$isFocused&&(this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",e))},e.prototype.$cursorChange=function(){this.renderer.updateCursor(),this.$highlightBrackets(),this.$updateHighlightActiveLine()},e.prototype.onDocumentChange=function(e){var t=this.session.$useWrapMode,n=e.start.row==e.end.row?e.end.row:1/0;this.renderer.updateLines(e.start.row,n,t),this._signal("change",e),this.$cursorChange()},e.prototype.onTokenizerUpdate=function(e){var t=e.data;this.renderer.updateLines(t.first,t.last)},e.prototype.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},e.prototype.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},e.prototype.onCursorChange=function(){this.$cursorChange(),this._signal("changeSelection")},e.prototype.$updateHighlightActiveLine=function(){var e,t=this.getSession();if(this.$highlightActiveLine&&("line"==this.$selectionStyle&&this.selection.isMultiLine()||(e=this.getCursorPosition()),this.renderer.theme&&this.renderer.theme.$selectionColorConflict&&!this.selection.isEmpty()&&(e=!1),!this.renderer.$maxLines||1!==this.session.getLength()||this.renderer.$minLines>1||(e=!1)),t.$highlightLineMarker&&!e)t.removeMarker(t.$highlightLineMarker.id),t.$highlightLineMarker=null;else if(!t.$highlightLineMarker&&e){var n=new g(e.row,e.column,e.row,1/0);n.id=t.addMarker(n,"ace_active-line","screenLine"),t.$highlightLineMarker=n}else e&&(t.$highlightLineMarker.start.row=e.row,t.$highlightLineMarker.end.row=e.row,t.$highlightLineMarker.start.column=e.column,t._signal("changeBackMarker"))},e.prototype.onSelectionChange=function(e){var t=this.session;if(t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var n=this.selection.getRange(),o=this.getSelectionStyle();t.$selectionMarker=t.addMarker(n,"ace_selection",o)}var i=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(i),this._signal("changeSelection")},e.prototype.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(!t.isEmpty()&&!t.isMultiLine()){var n=t.start.column,o=t.end.column,i=e.getLine(t.start.row),r=i.substring(n,o);if(!(r.length>5e3)&&/[\w\d]/.test(r)){var s=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:r}),a=i.substring(n-1,o+1);if(s.test(a))return s}}},e.prototype.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},e.prototype.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},e.prototype.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},e.prototype.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},e.prototype.onChangeMode=function(e){this.renderer.updateText(),this._emit("changeMode",e)},e.prototype.onChangeWrapLimit=function(){this.renderer.updateFull()},e.prototype.onChangeWrapMode=function(){this.renderer.onResize(!0)},e.prototype.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},e.prototype.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},e.prototype.getCopyText=function(){var e=this.getSelectedText(),t=this.session.doc.getNewLineCharacter(),n=!1;if(!e&&this.$copyWithEmptySelection){n=!0;for(var o=this.selection.getAllRanges(),i=0;ia.search(/\S|$/)){var l=a.substr(i.column).search(/\S|$/);n.doc.removeInLine(i.row,i.column,i.column+l)}}this.clearSelection();var c=i.column,u=n.getState(i.row),h=(a=n.getLine(i.row),o.checkOutdent(u,a,e));if(n.insert(i,e),r&&r.selection&&(2==r.selection.length?this.selection.setSelectionRange(new g(i.row,c+r.selection[0],i.row,c+r.selection[1])):this.selection.setSelectionRange(new g(i.row+r.selection[0],r.selection[1],i.row+r.selection[2],r.selection[3]))),this.$enableAutoIndent){if(n.getDocument().isNewLine(e)){var d=o.getNextLineIndent(u,a.slice(0,i.column),n.getTabString());n.insert({row:i.row+1,column:0},d)}h&&o.autoOutdent(u,n,i.row)}},e.prototype.autoIndent=function(){var e,t,n=this.session,o=n.getMode();if(this.selection.isEmpty())e=0,t=n.doc.getLength()-1;else{var i=this.getSelectionRange();e=i.start.row,t=i.end.row}for(var r,s,a,l="",c="",u="",h=n.getTabString(),d=e;d<=t;d++)d>0&&(l=n.getState(d-1),c=n.getLine(d-1),u=o.getNextLineIndent(l,c,h)),r=n.getLine(d),u!==(s=o.$getIndent(r))&&(s.length>0&&(a=new g(d,0,d,s.length),n.remove(a)),u.length>0&&n.insert({row:d,column:0},u)),o.autoOutdent(l,n,d)},e.prototype.onTextInput=function(e,t){if(!t)return this.keyBinding.onTextInput(e);this.startOperation({command:{name:"insertstring"}});var n=this.applyComposition.bind(this,e,t);this.selection.rangeCount?this.forEachSelection(n):n(),this.endOperation()},e.prototype.applyComposition=function(e,t){var n;(t.extendLeft||t.extendRight)&&((n=this.selection.getRange()).start.column-=t.extendLeft,n.end.column+=t.extendRight,n.start.column<0&&(n.start.row--,n.start.column+=this.session.getLine(n.start.row).length+1),this.selection.setRange(n),e||n.isEmpty()||this.remove()),!e&&this.selection.isEmpty()||this.insert(e,!0),(t.restoreStart||t.restoreEnd)&&((n=this.selection.getRange()).start.column-=t.restoreStart,n.end.column-=t.restoreEnd,this.selection.setRange(n))},e.prototype.onCommandKey=function(e,t,n){return this.keyBinding.onCommandKey(e,t,n)},e.prototype.setOverwrite=function(e){this.session.setOverwrite(e)},e.prototype.getOverwrite=function(){return this.session.getOverwrite()},e.prototype.toggleOverwrite=function(){this.session.toggleOverwrite()},e.prototype.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},e.prototype.getScrollSpeed=function(){return this.getOption("scrollSpeed")},e.prototype.setDragDelay=function(e){this.setOption("dragDelay",e)},e.prototype.getDragDelay=function(){return this.getOption("dragDelay")},e.prototype.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},e.prototype.getSelectionStyle=function(){return this.getOption("selectionStyle")},e.prototype.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},e.prototype.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},e.prototype.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},e.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},e.prototype.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},e.prototype.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},e.prototype.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},e.prototype.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},e.prototype.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},e.prototype.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},e.prototype.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},e.prototype.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},e.prototype.setHighlightIndentGuides=function(e){this.renderer.setHighlightIndentGuides(e)},e.prototype.getHighlightIndentGuides=function(){return this.renderer.getHighlightIndentGuides()},e.prototype.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},e.prototype.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},e.prototype.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},e.prototype.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},e.prototype.setReadOnly=function(e){this.setOption("readOnly",e)},e.prototype.getReadOnly=function(){return this.getOption("readOnly")},e.prototype.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},e.prototype.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},e.prototype.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},e.prototype.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},e.prototype.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},e.prototype.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},e.prototype.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},e.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},e.prototype.remove=function(e){this.selection.isEmpty()&&("left"==e?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var n=this.session,o=n.getState(t.start.row),i=n.getMode().transformAction(o,"deletion",this,n,t);if(0===t.end.column){var r=n.getTextRange(t);if("\n"==r[r.length-1]){var s=n.getLine(t.end.row);/^\s+$/.test(s)&&(t.end.column=s.length)}}i&&(t=i)}this.session.remove(t),this.clearSelection()},e.prototype.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.selection.isEmpty()&&this.selection.selectLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},e.prototype.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},e.prototype.setGhostText=function(e,t){this.session.widgetManager||(this.session.widgetManager=new w(this.session),this.session.widgetManager.attach(this)),this.renderer.setGhostText(e,t)},e.prototype.removeGhostText=function(){this.session.widgetManager&&this.renderer.removeGhostText()},e.prototype.transposeLetters=function(){if(this.selection.isEmpty()){var e=this.getCursorPosition(),t=e.column;if(0!==t){var n,o,i=this.session.getLine(e.row);tt.toLowerCase()?1:0}));var i=new g(0,0,0,0);for(o=e.first;o<=e.last;o++){var r=t.getLine(o);i.start.row=o,i.end.row=o,i.end.column=r.length,t.replace(i,n[o-e.first])}},e.prototype.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},e.prototype.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),n=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,n,e)},e.prototype.getNumberAt=function(e,t){var n=/[\-]?[0-9]+(?:\.[0-9]+)?/g;n.lastIndex=0;for(var o=this.session.getLine(e);n.lastIndex=t)return{value:i[0],start:i.index,end:i.index+i[0].length}}return null},e.prototype.modifyNumber=function(e){var t=this.selection.getCursor().row,n=this.selection.getCursor().column,o=new g(t,n-1,t,n),i=this.session.getTextRange(o);if(!isNaN(parseFloat(i))&&isFinite(i)){var r=this.getNumberAt(t,n);if(r){var s=r.value.indexOf(".")>=0?r.start+r.value.indexOf(".")+1:r.end,a=r.start+r.value.length-s,l=parseFloat(r.value);l*=Math.pow(10,a),s!==r.end&&n=a&&r<=l&&(n=t,c.selection.clearSelection(),c.moveCursorTo(e,a+o),c.selection.selectTo(e,l+o)),a=l}));for(var u,h=this.$toggleWordPairs,d=0;d=l&&s<=c&&d.match(/((?:https?|ftp):\/\/[\S]+)/)){a=d.replace(/[\s:.,'";}\]]+$/,"");break}l=c}}catch(e){n={error:e}}finally{try{h&&!h.done&&(i=u.return)&&i.call(u)}finally{if(n)throw n.error}}return a},e.prototype.openLink=function(){var e=this.selection.getCursor(),t=this.findLinkAt(e.row,e.column);return t&&window.open(t,"_blank"),null!=t},e.prototype.removeLines=function(){var e=this.$getSelectedRows();this.session.removeFullLines(e.first,e.last),this.clearSelection()},e.prototype.duplicateSelection=function(){var e=this.selection,t=this.session,n=e.getRange(),o=e.isBackwards();if(n.isEmpty()){var i=n.start.row;t.duplicateLines(i,i)}else{var r=o?n.start:n.end,s=t.insert(r,t.getTextRange(n),!1);n.start=r,n.end=s,e.setSelectionRange(n,o)}},e.prototype.moveLinesDown=function(){this.$moveLines(1,!1)},e.prototype.moveLinesUp=function(){this.$moveLines(-1,!1)},e.prototype.moveText=function(e,t,n){return this.session.moveText(e,t,n)},e.prototype.copyLinesUp=function(){this.$moveLines(-1,!0)},e.prototype.copyLinesDown=function(){this.$moveLines(1,!0)},e.prototype.$moveLines=function(e,t){var n,o,i=this.selection;if(!i.inMultiSelectMode||this.inVirtualSelectionMode){var r=i.toOrientedRange();n=this.$getSelectedRows(r),o=this.session.$moveLines(n.first,n.last,t?0:e),t&&-1==e&&(o=0),r.moveBy(o,0),i.fromOrientedRange(r)}else{var s=i.rangeList.ranges;i.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;for(var a=0,l=0,c=s.length,u=0;up+1)break;p=g.last}for(u--,a=this.session.$moveLines(d,p,t?0:e),t&&-1==e&&(h=u+1);h<=u;)s[h].moveBy(a,0),h++;t||(a=0),l+=a}i.fromOrientedRange(i.ranges[0]),i.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},e.prototype.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},e.prototype.onCompositionStart=function(e){this.renderer.showComposition(e)},e.prototype.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},e.prototype.onCompositionEnd=function(){this.renderer.hideComposition()},e.prototype.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},e.prototype.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},e.prototype.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},e.prototype.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},e.prototype.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},e.prototype.$moveByPage=function(e,t){var n=this.renderer,o=this.renderer.layerConfig,i=e*Math.floor(o.height/o.lineHeight);!0===t?this.selection.$moveSelection((function(){this.moveCursorBy(i,0)})):!1===t&&(this.selection.moveCursorBy(i,0),this.selection.clearSelection());var r=n.scrollTop;n.scrollBy(0,i*o.lineHeight),null!=t&&n.scrollCursorIntoView(null,.5),n.animateScrolling(r)},e.prototype.selectPageDown=function(){this.$moveByPage(1,!0)},e.prototype.selectPageUp=function(){this.$moveByPage(-1,!0)},e.prototype.gotoPageDown=function(){this.$moveByPage(1,!1)},e.prototype.gotoPageUp=function(){this.$moveByPage(-1,!1)},e.prototype.scrollPageDown=function(){this.$moveByPage(1)},e.prototype.scrollPageUp=function(){this.$moveByPage(-1)},e.prototype.scrollToRow=function(e){this.renderer.scrollToRow(e)},e.prototype.scrollToLine=function(e,t,n,o){this.renderer.scrollToLine(e,t,n,o)},e.prototype.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},e.prototype.getCursorPosition=function(){return this.selection.getCursor()},e.prototype.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},e.prototype.getSelectionRange=function(){return this.selection.getRange()},e.prototype.selectAll=function(){this.selection.selectAll()},e.prototype.clearSelection=function(){this.selection.clearSelection()},e.prototype.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},e.prototype.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},e.prototype.jumpToMatching=function(e,t){var n=this.getCursorPosition(),o=new b(this.session,n.row,n.column),i=o.getCurrentToken(),r=0;i&&-1!==i.type.indexOf("tag-name")&&(i=o.stepBackward());var s=i||o.stepForward();if(s){var a,l,c=!1,u={},h=n.column-s.start,d={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(s.value.match(/[{}()\[\]]/g)){for(;h1?u[s.value]++:"=0;--r)this.$tryReplace(n[r],e)&&o++;return this.selection.setSelectionRange(i),o},e.prototype.$tryReplace=function(e,t){var n=this.session.getTextRange(e);return null!==(t=this.$search.replace(n,t))?(e.end=this.session.replace(e,t),e):null},e.prototype.getLastSearchOptions=function(){return this.$search.getOptions()},e.prototype.find=function(e,t,n){t||(t={}),"string"==typeof e||e instanceof RegExp?t.needle=e:"object"==typeof e&&i.mixin(t,e);var o=this.selection.getRange();null==t.needle&&((e=this.session.getTextRange(o)||this.$search.$options.needle)||(o=this.session.getWordRange(o.start.row,o.start.column),e=this.session.getTextRange(o)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:o});var r=this.$search.find(this.session);return t.preventScroll?r:r?(this.revealRange(r,n),r):(t.backwards?o.start=o.end:o.end=o.start,void this.selection.setRange(o))},e.prototype.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},e.prototype.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},e.prototype.revealRange=function(e,t){this.session.unfold(e),this.selection.setSelectionRange(e);var n=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),!1!==t&&this.renderer.animateScrolling(n)},e.prototype.undo=function(){this.session.getUndoManager().undo(this.session),this.renderer.scrollCursorIntoView(null,.5)},e.prototype.redo=function(){this.session.getUndoManager().redo(this.session),this.renderer.scrollCursorIntoView(null,.5)},e.prototype.destroy=function(){this.$toDestroy&&(this.$toDestroy.forEach((function(e){e.destroy()})),this.$toDestroy=null),this.$mouseHandler&&this.$mouseHandler.destroy(),this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy(),this._$emitInputEvent&&this._$emitInputEvent.cancel(),this.removeAllListeners()},e.prototype.setAutoScrollEditorIntoView=function(e){if(e){var t,n=this,o=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var i=this.$scrollAnchor;i.style.cssText="position:absolute",this.container.insertBefore(i,this.container.firstChild);var r=this.on("changeSelection",(function(){o=!0})),s=this.renderer.on("beforeRender",(function(){o&&(t=n.renderer.container.getBoundingClientRect())})),a=this.renderer.on("afterRender",(function(){if(o&&t&&(n.isFocused()||n.searchBox&&n.searchBox.isFocused())){var e=n.renderer,r=e.$cursorLayer.$pixelPos,s=e.layerConfig,a=r.top-s.offset;null!=(o=r.top>=0&&a+t.top<0||!(r.topwindow.innerHeight)&&null)&&(i.style.top=a+"px",i.style.left=r.left+"px",i.style.height=s.lineHeight+"px",i.scrollIntoView(o)),o=t=null}}));this.setAutoScrollEditorIntoView=function(e){e||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",r),this.renderer.off("afterRender",a),this.renderer.off("beforeRender",s))}}},e.prototype.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;t&&(t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&"wide"!=e,r.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e)))},e.prototype.prompt=function(e,t,n){var o=this;v.loadModule("ace/ext/prompt",(function(i){i.prompt(o,e,t,n)}))},e}();S.$uid=0,S.prototype.curOp=null,S.prototype.prevOp={},S.prototype.$mergeableCommands=["backspace","del","insertstring"],S.prototype.$toggleWordPairs=[["first","last"],["true","false"],["yes","no"],["width","height"],["top","bottom"],["right","left"],["on","off"],["x","y"],["get","set"],["max","min"],["horizontal","vertical"],["show","hide"],["add","remove"],["up","down"],["before","after"],["even","odd"],["in","out"],["inside","outside"],["next","previous"],["increase","decrease"],["attach","detach"],["&&","||"],["==","!="]],i.implement(S.prototype,m),v.defineOptions(S.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.textInput.setReadOnly(e),this.$resetCursorStyle()},initialValue:!1},copyWithEmptySelection:{set:function(e){this.textInput.setCopyWithEmptySelection(e)},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},enableAutoIndent:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.$keybindingId},handlesSet:!0},value:{set:function(e){this.session.setValue(e)},get:function(){return this.getValue()},handlesSet:!0,hidden:!0},session:{set:function(e){this.setSession(e)},get:function(){return this.session},handlesSet:!0,hidden:!0},showLineNumbers:{set:function(e){this.renderer.$gutterLayer.setShowLineNumbers(e),this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER),e&&this.$relativeLineNumbers?E.attach(this):E.detach(this)},initialValue:!0},relativeLineNumbers:{set:function(e){this.$showLineNumbers&&e?E.attach(this):E.detach(this)}},placeholder:{set:function(e){this.$updatePlaceholder||(this.$updatePlaceholder=function(){var e=this.session&&(this.renderer.$composition||this.session.getLength()>1||this.session.getLine(0).length>0);if(e&&this.renderer.placeholderNode)this.renderer.off("afterRender",this.$updatePlaceholder),r.removeCssClass(this.container,"ace_hasPlaceholder"),this.renderer.placeholderNode.remove(),this.renderer.placeholderNode=null;else if(e||this.renderer.placeholderNode)!e&&this.renderer.placeholderNode&&(this.renderer.placeholderNode.textContent=this.$placeholder||"");else{this.renderer.on("afterRender",this.$updatePlaceholder),r.addCssClass(this.container,"ace_hasPlaceholder");var t=r.createElement("div");t.className="ace_placeholder",t.textContent=this.$placeholder||"",this.renderer.placeholderNode=t,this.renderer.content.appendChild(this.renderer.placeholderNode)}}.bind(this),this.on("input",this.$updatePlaceholder)),this.$updatePlaceholder()}},enableKeyboardAccessibility:{set:function(e){var t,n={name:"blurTextInput",description:"Set focus to the editor content div to allow tabbing through the page",bindKey:"Esc",exec:function(e){e.blur(),e.renderer.scroller.focus()},readOnly:!0},o=function(e){if(e.target==this.renderer.scroller&&e.keyCode===$.enter){e.preventDefault();var t=this.getCursorPosition().row;this.isRowVisible(t)||this.scrollToLine(t,!0,!0),this.focus()}};e?(this.renderer.enableKeyboardAccessibility=!0,this.renderer.keyboardFocusClassName="ace_keyboard-focus",this.textInput.getElement().setAttribute("tabindex",-1),this.textInput.setNumberOfExtraLines(a.isWin?3:0),this.renderer.scroller.setAttribute("tabindex",0),this.renderer.scroller.setAttribute("role","group"),this.renderer.scroller.setAttribute("aria-roledescription",k("editor")),this.renderer.scroller.classList.add(this.renderer.keyboardFocusClassName),this.renderer.scroller.setAttribute("aria-label",k("Editor content, press Enter to start editing, press Escape to exit")),this.renderer.scroller.addEventListener("keyup",o.bind(this)),this.commands.addCommand(n),this.renderer.$gutter.setAttribute("tabindex",0),this.renderer.$gutter.setAttribute("aria-hidden",!1),this.renderer.$gutter.setAttribute("role","group"),this.renderer.$gutter.setAttribute("aria-roledescription",k("editor")),this.renderer.$gutter.setAttribute("aria-label",k("Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit")),this.renderer.$gutter.classList.add(this.renderer.keyboardFocusClassName),this.renderer.content.setAttribute("aria-hidden",!0),t||(t=new x(this)),t.addListener()):(this.renderer.enableKeyboardAccessibility=!1,this.textInput.getElement().setAttribute("tabindex",0),this.textInput.setNumberOfExtraLines(0),this.renderer.scroller.setAttribute("tabindex",-1),this.renderer.scroller.removeAttribute("role"),this.renderer.scroller.removeAttribute("aria-roledescription"),this.renderer.scroller.classList.remove(this.renderer.keyboardFocusClassName),this.renderer.scroller.removeAttribute("aria-label"),this.renderer.scroller.removeEventListener("keyup",o.bind(this)),this.commands.removeCommand(n),this.renderer.content.removeAttribute("aria-hidden"),this.renderer.$gutter.setAttribute("tabindex",-1),this.renderer.$gutter.setAttribute("aria-hidden",!0),this.renderer.$gutter.removeAttribute("role"),this.renderer.$gutter.removeAttribute("aria-roledescription"),this.renderer.$gutter.removeAttribute("aria-label"),this.renderer.$gutter.classList.remove(this.renderer.keyboardFocusClassName),t&&t.removeListener())},initialValue:!1},customScrollbar:"renderer",hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",displayIndentGuides:"renderer",highlightIndentGuides:"renderer",showGutter:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",hasCssTransforms:"renderer",maxPixelHeight:"renderer",useTextareaForIME:"renderer",useResizeObserver:"renderer",useSvgGutterIcons:"renderer",showFoldedAnnotations:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimeout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",navigateWithinSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"});var E={getText:function(e,t){return(Math.abs(e.selection.lead.row-t)||t+1+(t<9?"·":""))+""},getWidth:function(e,t,n){return Math.max(t.toString().length,(n.lastRow+1).toString().length,2)*n.characterWidth},update:function(e,t){t.renderer.$loop.schedule(t.renderer.CHANGE_GUTTER)},attach:function(e){e.renderer.$gutterLayer.$renderer=this,e.on("changeSelection",this.update),this.update(null,e)},detach:function(e){e.renderer.$gutterLayer.$renderer==this&&(e.renderer.$gutterLayer.$renderer=null),e.off("changeSelection",this.update),this.update(null,e)}};t.Editor=S})),ace.define("ace/layer/lines",["require","exports","module","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=function(){function e(e,t){this.element=e,this.canvasHeight=t||5e5,this.element.style.height=2*this.canvasHeight+"px",this.cells=[],this.cellCache=[],this.$offsetCoefficient=0}return e.prototype.moveContainer=function(e){o.translate(this.element,0,-e.firstRowScreen*e.lineHeight%this.canvasHeight-e.offset*this.$offsetCoefficient)},e.prototype.pageChanged=function(e,t){return Math.floor(e.firstRowScreen*e.lineHeight/this.canvasHeight)!==Math.floor(t.firstRowScreen*t.lineHeight/this.canvasHeight)},e.prototype.computeLineTop=function(e,t,n){var o=t.firstRowScreen*t.lineHeight,i=Math.floor(o/this.canvasHeight);return n.documentToScreenRow(e,0)*t.lineHeight-i*this.canvasHeight},e.prototype.computeLineHeight=function(e,t,n){return t.lineHeight*n.getRowLineCount(e)},e.prototype.getLength=function(){return this.cells.length},e.prototype.get=function(e){return this.cells[e]},e.prototype.shift=function(){this.$cacheCell(this.cells.shift())},e.prototype.pop=function(){this.$cacheCell(this.cells.pop())},e.prototype.push=function(e){if(Array.isArray(e)){this.cells.push.apply(this.cells,e);for(var t=o.createFragment(this.element),n=0;nr&&(l=i.end.row+1,r=(i=t.getNextFoldLine(l,i))?i.start.row:1/0),l>o){for(;this.$lines.getLength()>a+1;)this.$lines.pop();break}(s=this.$lines.get(++a))?s.row=l:(s=this.$lines.createCell(l,e,this.session,u),this.$lines.push(s)),this.$renderCell(s,e,i,l),l++}this._signal("afterRender"),this.$updateGutterWidth(e)},e.prototype.$updateGutterWidth=function(e){var t=this.session,n=t.gutterRenderer||this.$renderer,o=t.$firstLineNumber,i=this.$lines.last()?this.$lines.last().text:"";(this.$fixedWidth||t.$useWrapMode)&&(i=t.getLength()+o-1);var r=n?n.getWidth(t,i,e):i.toString().length*e.characterWidth,s=this.$padding||this.$computePadding();(r+=s.left+s.right)===this.gutterWidth||isNaN(r)||(this.gutterWidth=r,this.element.parentNode.style.width=this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._signal("changeGutterWidth",r))},e.prototype.$updateCursorRow=function(){if(this.$highlightGutterLine){var e=this.session.selection.getCursor();this.$cursorRow!==e.row&&(this.$cursorRow=e.row)}},e.prototype.updateLineHighlight=function(){if(this.$highlightGutterLine){var e=this.session.selection.cursor.row;if(this.$cursorRow=e,!this.$cursorCell||this.$cursorCell.row!=e){this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ",""));var t=this.$lines.cells;this.$cursorCell=null;for(var n=0;n=this.$cursorRow){if(o.row>this.$cursorRow){var i=this.session.getFoldLine(this.$cursorRow);if(!(n>0&&i&&i.start.row==t[n-1].row))break;o=t[n-1]}o.element.className="ace_gutter-active-line "+o.element.className,this.$cursorCell=o;break}}}}},e.prototype.scrollLines=function(e){var t=this.config;if(this.config=e,this.$updateCursorRow(),this.$lines.pageChanged(t,e))return this.update(e);this.$lines.moveContainer(e);var n=Math.min(e.lastRow+e.gutterOffset,this.session.getLength()-1),o=this.oldLastRow;if(this.oldLastRow=n,!t||o0;i--)this.$lines.shift();if(o>n)for(i=this.session.getFoldedRowCount(n+1,o);i>0;i--)this.$lines.pop();e.firstRowo&&this.$lines.push(this.$renderLines(e,o+1,n)),this.updateLineHighlight(),this._signal("afterRender"),this.$updateGutterWidth(e)},e.prototype.$renderLines=function(e,t,n){for(var o=[],i=t,r=this.session.getNextFoldLine(i),s=r?r.start.row:1/0;i>s&&(i=r.end.row+1,s=(r=this.session.getNextFoldLine(i,r))?r.start.row:1/0),!(i>n);){var a=this.$lines.createCell(i,e,this.session,u);this.$renderCell(a,e,r,i),o.push(a),i++}return o},e.prototype.$renderCell=function(e,t,n,i){var r=e.element,s=this.session,a=r.childNodes[0],c=r.childNodes[1],u=r.childNodes[2],h=u.firstChild,d=s.$firstLineNumber,p=s.$breakpoints,g=s.$decorations,m=s.gutterRenderer||this.$renderer,f=this.$showFoldWidgets&&s.foldWidgets,y=n?n.start.row:Number.MAX_VALUE,v=t.lineHeight+"px",b=this.$useSvgGutterIcons?"ace_gutter-cell_svg-icons ":"ace_gutter-cell ",w=this.$useSvgGutterIcons?"ace_icon_svg":"ace_icon",x=(m?m.getText(s,i):i+d).toString();if(this.$highlightGutterLine&&(i==this.$cursorRow||n&&i=y&&this.$cursorRow<=n.end.row)&&(b+="ace_gutter-active-line ",this.$cursorCell!=e&&(this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ","")),this.$cursorCell=e)),p[i]&&(b+=p[i]),g[i]&&(b+=g[i]),this.$annotations[i]&&i!==y&&(b+=this.$annotations[i].className),f){var k=f[i];null==k&&(k=f[i]=s.getFoldWidget(i))}if(k){var C="ace_fold-widget ace_"+k,$="start"==k&&i==y&&in.right-t.right?"foldWidgets":void 0},e}();function u(e){var t=document.createTextNode("");e.appendChild(t);var n=o.createElement("span");e.appendChild(n);var i=o.createElement("span");e.appendChild(i);var r=o.createElement("span");return i.appendChild(r),e}c.prototype.$fixedWidth=!1,c.prototype.$highlightGutterLine=!0,c.prototype.$renderer="",c.prototype.$showLineNumbers=!0,c.prototype.$showFoldWidgets=!0,i.implement(c.prototype,s),t.Gutter=c})),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("../range").Range,i=e("../lib/dom"),r=function(){function e(e){this.element=i.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)}return e.prototype.setPadding=function(e){this.$padding=e},e.prototype.setSession=function(e){this.session=e},e.prototype.setMarkers=function(e){this.markers=e},e.prototype.elt=function(e,t){var n=-1!=this.i&&this.element.childNodes[this.i];n?this.i++:(n=document.createElement("div"),this.element.appendChild(n),this.i=-1),n.style.cssText=t,n.className=e},e.prototype.update=function(e){if(e){var t;for(var n in this.config=e,this.i=0,this.markers){var o=this.markers[n];if(o.range){var i=o.range.clipRows(e.firstRow,e.lastRow);if(!i.isEmpty())if(i=i.toScreenRange(this.session),o.renderer){var r=this.$getTop(i.start.row,e),s=this.$padding+i.start.column*e.characterWidth;o.renderer(t,i,s,r,e)}else"fullLine"==o.type?this.drawFullLineMarker(t,i,o.clazz,e):"screenLine"==o.type?this.drawScreenLineMarker(t,i,o.clazz,e):i.isMultiLine()?"text"==o.type?this.drawTextMarker(t,i,o.clazz,e):this.drawMultiLineMarker(t,i,o.clazz,e):this.drawSingleLineMarker(t,i,o.clazz+" ace_start ace_br15",e)}else o.update(t,this,this.session,e)}if(-1!=this.i)for(;this.id?4:0)|(c==l?8:0)),i,c==l?0:1,r)},e.prototype.drawMultiLineMarker=function(e,t,n,o,i){var r=this.$padding,s=o.lineHeight,a=this.$getTop(t.start.row,o),l=r+t.start.column*o.characterWidth;if(i=i||"",this.session.$bidiHandler.isBidiRow(t.start.row)?((c=t.clone()).end.row=c.start.row,c.end.column=this.session.getLine(c.start.row).length,this.drawBidiSingleLineMarker(e,c,n+" ace_br1 ace_start",o,null,i)):this.elt(n+" ace_br1 ace_start","height:"+s+"px;right:0;top:"+a+"px;left:"+l+"px;"+(i||"")),this.session.$bidiHandler.isBidiRow(t.end.row)){var c;(c=t.clone()).start.row=c.end.row,c.start.column=0,this.drawBidiSingleLineMarker(e,c,n+" ace_br12",o,null,i)}else{a=this.$getTop(t.end.row,o);var u=t.end.column*o.characterWidth;this.elt(n+" ace_br12","height:"+s+"px;width:"+u+"px;top:"+a+"px;left:"+r+"px;"+(i||""))}if(!((s=(t.end.row-t.start.row-1)*o.lineHeight)<=0)){a=this.$getTop(t.start.row+1,o);var h=(t.start.column?1:0)|(t.end.column?0:8);this.elt(n+(h?" ace_br"+h:""),"height:"+s+"px;right:0;top:"+a+"px;left:"+r+"px;"+(i||""))}},e.prototype.drawSingleLineMarker=function(e,t,n,o,i,r){if(this.session.$bidiHandler.isBidiRow(t.start.row))return this.drawBidiSingleLineMarker(e,t,n,o,i,r);var s=o.lineHeight,a=(t.end.column+(i||0)-t.start.column)*o.characterWidth,l=this.$getTop(t.start.row,o),c=this.$padding+t.start.column*o.characterWidth;this.elt(n,"height:"+s+"px;width:"+a+"px;top:"+l+"px;left:"+c+"px;"+(r||""))},e.prototype.drawBidiSingleLineMarker=function(e,t,n,o,i,r){var s=o.lineHeight,a=this.$getTop(t.start.row,o),l=this.$padding;this.session.$bidiHandler.getSelections(t.start.column,t.end.column).forEach((function(e){this.elt(n,"height:"+s+"px;width:"+(e.width+(i||0))+"px;top:"+a+"px;left:"+(l+e.left)+"px;"+(r||""))}),this)},e.prototype.drawFullLineMarker=function(e,t,n,o,i){var r=this.$getTop(t.start.row,o),s=o.lineHeight;t.start.row!=t.end.row&&(s+=this.$getTop(t.end.row,o)-r),this.elt(n,"height:"+s+"px;top:"+r+"px;left:0;right:0;"+(i||""))},e.prototype.drawScreenLineMarker=function(e,t,n,o,i){var r=this.$getTop(t.start.row,o),s=o.lineHeight;this.elt(n,"height:"+s+"px;top:"+r+"px;left:0;right:0;"+(i||""))},e}();r.prototype.$padding=0,t.Marker=r})),ace.define("ace/layer/text_util",["require","exports","module"],(function(e,t,n){var o=new Set(["text","rparen","lparen"]);t.isTextToken=function(e){return o.has(e)}})),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/layer/lines","ace/lib/event_emitter","ace/config","ace/layer/text_util"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("../lib/dom"),r=e("../lib/lang"),s=e("./lines").Lines,a=e("../lib/event_emitter").EventEmitter,l=e("../config").nls,c=e("./text_util").isTextToken,u=function(){function e(e){this.dom=i,this.element=this.dom.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this),this.$lines=new s(this.element)}return e.prototype.$updateEolChar=function(){var e=this.session.doc,t="\n"==e.getNewLineCharacter()&&"windows"!=e.getNewLineMode()?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=t)return this.EOL_CHAR=t,!0},e.prototype.setPadding=function(e){this.$padding=e,this.element.style.margin="0 "+e+"px"},e.prototype.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},e.prototype.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},e.prototype.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},e.prototype.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},e.prototype.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},e.prototype.setSession=function(e){this.session=e,e&&this.$computeTabString()},e.prototype.setShowInvisibles=function(e){return this.showInvisibles!=e&&(this.showInvisibles=e,"string"==typeof e?(this.showSpaces=/tab/i.test(e),this.showTabs=/space/i.test(e),this.showEOL=/eol/i.test(e)):this.showSpaces=this.showTabs=this.showEOL=e,this.$computeTabString(),!0)},e.prototype.setDisplayIndentGuides=function(e){return this.displayIndentGuides!=e&&(this.displayIndentGuides=e,this.$computeTabString(),!0)},e.prototype.setHighlightIndentGuides=function(e){return this.$highlightIndentGuides!==e&&(this.$highlightIndentGuides=e,e)},e.prototype.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;for(var t=this.$tabStrings=[0],n=1;nu&&(a=l.end.row+1,u=(l=this.session.getNextFoldLine(a,l))?l.start.row:1/0),!(a>i);){var h=r[s++];if(h){this.dom.removeChildren(h),this.$renderLine(h,a,a==u&&l),c&&(h.style.top=this.$lines.computeLineTop(a,e,this.session)+"px");var d=e.lineHeight*this.session.getRowLength(a)+"px";h.style.height!=d&&(c=!0,h.style.height=d)}a++}if(c)for(;s0;i--)this.$lines.shift();if(t.lastRow>e.lastRow)for(i=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);i>0;i--)this.$lines.pop();e.firstRowt.lastRow&&this.$lines.push(this.$renderLinesFragment(e,t.lastRow+1,e.lastRow)),this.$highlightIndentGuide()},e.prototype.$renderLinesFragment=function(e,t,n){for(var o=[],r=t,s=this.session.getNextFoldLine(r),a=s?s.start.row:1/0;r>a&&(r=s.end.row+1,a=(s=this.session.getNextFoldLine(r,s))?s.start.row:1/0),!(r>n);){var l=this.$lines.createCell(r,e,this.session),c=l.element;this.dom.removeChildren(c),i.setStyle(c.style,"height",this.$lines.computeLineHeight(r,e,this.session)+"px"),i.setStyle(c.style,"top",this.$lines.computeLineTop(r,e,this.session)+"px"),this.$renderLine(c,r,r==a&&s),this.$useLineGroups()?c.className="ace_line_group":c.className="ace_line",o.push(l),r++}return o},e.prototype.update=function(e){this.$lines.moveContainer(e),this.config=e;for(var t=e.firstRow,n=e.lastRow,o=this.$lines;o.getLength();)o.pop();o.push(this.$renderLinesFragment(e,t,n))},e.prototype.$renderToken=function(e,t,n,o){for(var i,s=this,a=/(\t)|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\uFEFF\uFFF9-\uFFFC\u2066\u2067\u2068\u202A\u202B\u202D\u202E\u202C\u2069]+)|(\u3000)|([\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3001-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF])/g,u=this.dom.createFragment(this.element),h=0;i=a.exec(o);){var d=i[1],p=i[2],g=i[3],m=i[4],f=i[5];if(s.showSpaces||!p){var y=h!=i.index?o.slice(h,i.index):"";if(h=i.index+i[0].length,y&&u.appendChild(this.dom.createTextNode(y,this.element)),d){var v=s.session.getScreenTabSize(t+i.index);u.appendChild(s.$tabStrings[v].cloneNode(!0)),t+=v-1}else p?s.showSpaces?((w=this.dom.createElement("span")).className="ace_invisible ace_invisible_space",w.textContent=r.stringRepeat(s.SPACE_CHAR,p.length),u.appendChild(w)):u.appendChild(this.dom.createTextNode(p,this.element)):g?((w=this.dom.createElement("span")).className="ace_invisible ace_invisible_space ace_invalid",w.textContent=r.stringRepeat(s.SPACE_CHAR,g.length),u.appendChild(w)):m?(t+=1,(w=this.dom.createElement("span")).style.width=2*s.config.characterWidth+"px",w.className=s.showSpaces?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",w.textContent=s.showSpaces?s.SPACE_CHAR:m,u.appendChild(w)):f&&(t+=1,(w=this.dom.createElement("span")).style.width=2*s.config.characterWidth+"px",w.className="ace_cjk",w.textContent=f,u.appendChild(w))}}if(u.appendChild(this.dom.createTextNode(h?o.slice(h):o,this.element)),c(n.type))e.appendChild(u);else{var b="ace_"+n.type.replace(/\./g," ace_"),w=this.dom.createElement("span");"fold"==n.type&&(w.style.width=n.value.length*this.config.characterWidth+"px",w.setAttribute("title",l("Unfold code"))),w.className=b,w.appendChild(u),e.appendChild(w)}return t+o.length},e.prototype.renderIndentGuide=function(e,t,n){var o=t.search(this.$indentGuideRe);if(o<=0||o>=n)return t;if(" "==t[0]){for(var i=(o-=o%this.tabSize)/this.tabSize,r=0;ri[r].start.row?this.$highlightIndentGuideMarker.dir=-1:this.$highlightIndentGuideMarker.dir=1;break}if(!this.$highlightIndentGuideMarker.end&&""!==e[t.row]&&t.column===e[t.row].length)for(this.$highlightIndentGuideMarker.dir=1,r=t.row+1;r0)for(var o=0;o=this.$highlightIndentGuideMarker.start+1){if(o.row>=this.$highlightIndentGuideMarker.end)break;this.$setIndentGuideActive(o,t)}}else for(n=e.length-1;n>=0;n--)if(o=e[n],this.$highlightIndentGuideMarker.end&&o.row=s;)a=this.$renderToken(l,a,u,h.substring(0,s-o)),h=h.substring(s-o),o=s,l=this.$createLineElement(),e.appendChild(l),l.appendChild(this.dom.createTextNode(r.stringRepeat(" ",n.indent),this.element)),a=0,s=n[++i]||Number.MAX_VALUE;0!=h.length&&(o+=h.length,a=this.$renderToken(l,a,u,h))}}n[n.length-1]>this.MAX_LINE_LENGTH&&this.$renderOverflowMessage(l,a,null,"",!0)},e.prototype.$renderSimpleLine=function(e,t){for(var n=0,o=0;othis.MAX_LINE_LENGTH)return this.$renderOverflowMessage(e,n,i,r);n=this.$renderToken(e,n,i,r)}}},e.prototype.$renderOverflowMessage=function(e,t,n,o,i){n&&this.$renderToken(e,t,n,o.slice(0,this.MAX_LINE_LENGTH-t));var r=this.dom.createElement("span");r.className="ace_inline_button ace_keyword ace_toggle_wrap",r.textContent=i?"":"",e.appendChild(r)},e.prototype.$renderLine=function(e,t,n){if(n||0==n||(n=this.session.getFoldLine(t)),n)var o=this.$getFoldLineTokens(t,n);else o=this.session.getTokens(t);var i=e;if(o.length){var r=this.session.getRowSplitData(t);r&&r.length?(this.$renderWrappedLine(e,o,r),i=e.lastChild):(i=e,this.$useLineGroups()&&(i=this.$createLineElement(),e.appendChild(i)),this.$renderSimpleLine(i,o))}else this.$useLineGroups()&&(i=this.$createLineElement(),e.appendChild(i));if(this.showEOL&&i){n&&(t=n.end.row);var s=this.dom.createElement("span");s.className="ace_invisible ace_invisible_eol",s.textContent=t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,i.appendChild(s)}},e.prototype.$getFoldLineTokens=function(e,t){var n=this.session,o=[],i=n.getTokens(e);return t.walk((function(e,t,r,s,a){null!=e?o.push({type:"fold",value:e}):(a&&(i=n.getTokens(t)),i.length&&function(e,t,n){for(var i=0,r=0;r+e[i].value.lengthn-t&&(s=s.substring(0,n-t)),o.push({type:e[i].type,value:s}),r=t+s.length,i+=1);rn?o.push({type:e[i].type,value:s.substring(0,n-r)}):o.push(e[i]),r+=s.length,i+=1}}(i,s,r))}),t.end.row,this.session.getLine(t.end.row).length),o},e.prototype.$useLineGroups=function(){return this.session.getUseWrapMode()},e}();u.prototype.EOF_CHAR="¶",u.prototype.EOL_CHAR_LF="¬",u.prototype.EOL_CHAR_CRLF="¤",u.prototype.EOL_CHAR=u.prototype.EOL_CHAR_LF,u.prototype.TAB_CHAR="—",u.prototype.SPACE_CHAR="·",u.prototype.$padding=0,u.prototype.MAX_LINE_LENGTH=1e4,u.prototype.showInvisibles=!1,u.prototype.showSpaces=!1,u.prototype.showTabs=!1,u.prototype.showEOL=!1,u.prototype.displayIndentGuides=!0,u.prototype.$highlightIndentGuides=!0,u.prototype.$tabStrings=[],u.prototype.destroy={},u.prototype.onChangeTabSize=u.prototype.$computeTabString,o.implement(u.prototype,a),t.Text=u})),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=function(){function e(e){this.element=o.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),o.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=this.$updateOpacity.bind(this)}return e.prototype.$updateOpacity=function(e){for(var t=this.cursors,n=t.length;n--;)o.setStyle(t[n].style,"opacity",e?"":"0")},e.prototype.$startCssAnimation=function(){for(var e=this.cursors,t=e.length;t--;)e[t].style.animationDuration=this.blinkInterval+"ms";this.$isAnimating=!0,setTimeout(function(){this.$isAnimating&&o.addCssClass(this.element,"ace_animate-blinking")}.bind(this))},e.prototype.$stopCssAnimation=function(){this.$isAnimating=!1,o.removeCssClass(this.element,"ace_animate-blinking")},e.prototype.setPadding=function(e){this.$padding=e},e.prototype.setSession=function(e){this.session=e},e.prototype.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},e.prototype.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},e.prototype.setSmoothBlinking=function(e){e!=this.smoothBlinking&&(this.smoothBlinking=e,o.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.restartTimer())},e.prototype.addCursor=function(){var e=o.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},e.prototype.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},e.prototype.hideCursor=function(){this.isVisible=!1,o.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},e.prototype.showCursor=function(){this.isVisible=!0,o.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},e.prototype.restartTimer=function(){var e=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.$stopCssAnimation(),this.smoothBlinking&&(this.$isSmoothBlinking=!1,o.removeCssClass(this.element,"ace_smooth-blinking")),e(!0),this.isBlinking&&this.blinkInterval&&this.isVisible)if(this.smoothBlinking&&(this.$isSmoothBlinking=!0,setTimeout(function(){this.$isSmoothBlinking&&o.addCssClass(this.element,"ace_smooth-blinking")}.bind(this))),o.HAS_CSS_ANIMATION)this.$startCssAnimation();else{var t=function(){this.timeoutId=setTimeout((function(){e(!1)}),.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval((function(){e(!0),t()}),this.blinkInterval),t()}else this.$stopCssAnimation()},e.prototype.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var n=this.session.documentToScreenPosition(e);return{left:this.$padding+(this.session.$bidiHandler.isBidiRow(n.row,e.row)?this.session.$bidiHandler.getPosLeft(n.column):n.column*this.config.characterWidth),top:(n.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight}},e.prototype.isCursorInView=function(e,t){return e.top>=0&&e.tope.height+e.offset||s.top<0)&&n>1)){var a=this.cursors[i++]||this.addCursor(),l=a.style;this.drawCursor?this.drawCursor(a,s,e,t[n],this.session):this.isCursorInView(s,e)?(o.setStyle(l,"display","block"),o.translate(a,s.left,s.top),o.setStyle(l,"width",Math.round(e.characterWidth)+"px"),o.setStyle(l,"height",e.lineHeight+"px")):o.setStyle(l,"display","none")}}for(;this.cursors.length>i;)this.removeCursor();var c=this.session.getOverwrite();this.$setOverwrite(c),this.$pixelPos=s,this.restartTimer()},e.prototype.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?o.addCssClass(this.element,"ace_overwrite-cursors"):o.removeCssClass(this.element,"ace_overwrite-cursors"))},e.prototype.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)},e}();i.prototype.$padding=0,i.prototype.drawCursor=null,t.Cursor=i})),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=e("./lib/oop"),s=e("./lib/dom"),a=e("./lib/event"),l=e("./lib/event_emitter").EventEmitter,c=32768,u=function(){function e(e,t){this.element=s.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+t,this.inner=s.createElement("div"),this.inner.className="ace_scrollbar-inner",this.inner.textContent=" ",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,a.addListener(this.element,"scroll",this.onScroll.bind(this)),a.addListener(this.element,"mousedown",a.preventDefault)}return e.prototype.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1},e}();r.implement(u.prototype,l);var h=function(e){function t(t,n){var o=e.call(this,t,"-v")||this;return o.scrollTop=0,o.scrollHeight=0,n.$scrollbarWidth=o.width=s.scrollbarWidth(t.ownerDocument),o.inner.style.width=o.element.style.width=(o.width||15)+5+"px",o.$minWidth=0,o}return i(t,e),t.prototype.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,1!=this.coeff){var e=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},t.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},t.prototype.setHeight=function(e){this.element.style.height=e+"px"},t.prototype.setScrollHeight=function(e){this.scrollHeight=e,e>c?(this.coeff=c/e,e=c):1!=this.coeff&&(this.coeff=1),this.inner.style.height=e+"px"},t.prototype.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)},t}(u);h.prototype.setInnerHeight=h.prototype.setScrollHeight;var d=function(e){function t(t,n){var o=e.call(this,t,"-h")||this;return o.scrollLeft=0,o.height=n.$scrollbarWidth,o.inner.style.height=o.element.style.height=(o.height||15)+5+"px",o}return i(t,e),t.prototype.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},t.prototype.getHeight=function(){return this.isVisible?this.height:0},t.prototype.setWidth=function(e){this.element.style.width=e+"px"},t.prototype.setInnerWidth=function(e){this.inner.style.width=e+"px"},t.prototype.setScrollWidth=function(e){this.inner.style.width=e+"px"},t.prototype.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)},t}(u);t.ScrollBar=h,t.ScrollBarV=h,t.ScrollBarH=d,t.VScrollBar=h,t.HScrollBar=d})),ace.define("ace/scrollbar_custom",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=e("./lib/oop"),s=e("./lib/dom"),a=e("./lib/event"),l=e("./lib/event_emitter").EventEmitter;s.importCssString(".ace_editor>.ace_sb-v div, .ace_editor>.ace_sb-h div{\n position: absolute;\n background: rgba(128, 128, 128, 0.6);\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n border: 1px solid #bbb;\n border-radius: 2px;\n z-index: 8;\n}\n.ace_editor>.ace_sb-v, .ace_editor>.ace_sb-h {\n position: absolute;\n z-index: 6;\n background: none;\n overflow: hidden!important;\n}\n.ace_editor>.ace_sb-v {\n z-index: 6;\n right: 0;\n top: 0;\n width: 12px;\n}\n.ace_editor>.ace_sb-v div {\n z-index: 8;\n right: 0;\n width: 100%;\n}\n.ace_editor>.ace_sb-h {\n bottom: 0;\n left: 0;\n height: 12px;\n}\n.ace_editor>.ace_sb-h div {\n bottom: 0;\n height: 100%;\n}\n.ace_editor>.ace_sb_grabbed {\n z-index: 8;\n background: #000;\n}","ace_scrollbar.css",!1);var c=function(){function e(e,t){this.element=s.createElement("div"),this.element.className="ace_sb"+t,this.inner=s.createElement("div"),this.inner.className="",this.element.appendChild(this.inner),this.VScrollWidth=12,this.HScrollHeight=12,e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,a.addMultiMouseDownListener(this.element,[500,300,300],this,"onMouseDown")}return e.prototype.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1},e}();r.implement(c.prototype,l);var u=function(e){function t(t,n){var o=e.call(this,t,"-v")||this;return o.scrollTop=0,o.scrollHeight=0,o.parent=t,o.width=o.VScrollWidth,o.renderer=n,o.inner.style.width=o.element.style.width=(o.width||15)+"px",o.$minWidth=0,o}return i(t,e),t.prototype.onMouseDown=function(e,t){if("mousedown"===e&&0===a.getButton(t)&&2!==t.detail){if(t.target===this.inner){var n=this,o=t.clientY,i=t.clientY,r=this.thumbTop;a.capture(this.inner,(function(e){o=e.clientY}),(function(){clearInterval(s)}));var s=setInterval((function(){if(void 0!==o){var e=n.scrollTopFromThumbTop(r+o-i);e!==n.scrollTop&&n._emit("scroll",{data:e})}}),20);return a.preventDefault(t)}var l=t.clientY-this.element.getBoundingClientRect().top-this.thumbHeight/2;return this._emit("scroll",{data:this.scrollTopFromThumbTop(l)}),a.preventDefault(t)}},t.prototype.getHeight=function(){return this.height},t.prototype.scrollTopFromThumbTop=function(e){var t=e*(this.pageHeight-this.viewHeight)/(this.slideHeight-this.thumbHeight);return(t|=0)<0?t=0:t>this.pageHeight-this.viewHeight&&(t=this.pageHeight-this.viewHeight),t},t.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},t.prototype.setHeight=function(e){this.height=Math.max(0,e),this.slideHeight=this.height,this.viewHeight=this.height,this.setScrollHeight(this.pageHeight,!0)},t.prototype.setScrollHeight=function(e,t){(this.pageHeight!==e||t)&&(this.pageHeight=e,this.thumbHeight=this.slideHeight*this.viewHeight/this.pageHeight,this.thumbHeight>this.slideHeight&&(this.thumbHeight=this.slideHeight),this.thumbHeight<15&&(this.thumbHeight=15),this.inner.style.height=this.thumbHeight+"px",this.scrollTop>this.pageHeight-this.viewHeight&&(this.scrollTop=this.pageHeight-this.viewHeight,this.scrollTop<0&&(this.scrollTop=0),this._emit("scroll",{data:this.scrollTop})))},t.prototype.setScrollTop=function(e){this.scrollTop=e,e<0&&(e=0),this.thumbTop=e*(this.slideHeight-this.thumbHeight)/(this.pageHeight-this.viewHeight),this.inner.style.top=this.thumbTop+"px"},t}(c);u.prototype.setInnerHeight=u.prototype.setScrollHeight;var h=function(e){function t(t,n){var o=e.call(this,t,"-h")||this;return o.scrollLeft=0,o.scrollWidth=0,o.height=o.HScrollHeight,o.inner.style.height=o.element.style.height=(o.height||12)+"px",o.renderer=n,o}return i(t,e),t.prototype.onMouseDown=function(e,t){if("mousedown"===e&&0===a.getButton(t)&&2!==t.detail){if(t.target===this.inner){var n=this,o=t.clientX,i=t.clientX,r=this.thumbLeft;a.capture(this.inner,(function(e){o=e.clientX}),(function(){clearInterval(s)}));var s=setInterval((function(){if(void 0!==o){var e=n.scrollLeftFromThumbLeft(r+o-i);e!==n.scrollLeft&&n._emit("scroll",{data:e})}}),20);return a.preventDefault(t)}var l=t.clientX-this.element.getBoundingClientRect().left-this.thumbWidth/2;return this._emit("scroll",{data:this.scrollLeftFromThumbLeft(l)}),a.preventDefault(t)}},t.prototype.getHeight=function(){return this.isVisible?this.height:0},t.prototype.scrollLeftFromThumbLeft=function(e){var t=e*(this.pageWidth-this.viewWidth)/(this.slideWidth-this.thumbWidth);return(t|=0)<0?t=0:t>this.pageWidth-this.viewWidth&&(t=this.pageWidth-this.viewWidth),t},t.prototype.setWidth=function(e){this.width=Math.max(0,e),this.element.style.width=this.width+"px",this.slideWidth=this.width,this.viewWidth=this.width,this.setScrollWidth(this.pageWidth,!0)},t.prototype.setScrollWidth=function(e,t){(this.pageWidth!==e||t)&&(this.pageWidth=e,this.thumbWidth=this.slideWidth*this.viewWidth/this.pageWidth,this.thumbWidth>this.slideWidth&&(this.thumbWidth=this.slideWidth),this.thumbWidth<15&&(this.thumbWidth=15),this.inner.style.width=this.thumbWidth+"px",this.scrollLeft>this.pageWidth-this.viewWidth&&(this.scrollLeft=this.pageWidth-this.viewWidth,this.scrollLeft<0&&(this.scrollLeft=0),this._emit("scroll",{data:this.scrollLeft})))},t.prototype.setScrollLeft=function(e){this.scrollLeft=e,e<0&&(e=0),this.thumbLeft=e*(this.slideWidth-this.thumbWidth)/(this.pageWidth-this.viewWidth),this.inner.style.left=this.thumbLeft+"px"},t}(c);h.prototype.setInnerWidth=h.prototype.setScrollWidth,t.ScrollBar=u,t.ScrollBarV=u,t.ScrollBarH=h,t.VScrollBar=u,t.HScrollBar=h})),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],(function(e,t,n){"use strict";var o=e("./lib/event"),i=function(){function e(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.$recursionLimit=2,this.window=t||window;var n=this;this._flush=function(e){n.pending=!1;var t=n.changes;if(t&&(o.blockIdle(100),n.changes=0,n.onRender(t)),n.changes){if(n.$recursionLimit--<0)return;n.schedule()}else n.$recursionLimit=2}}return e.prototype.schedule=function(e){this.changes=this.changes|e,this.changes&&!this.pending&&(o.nextFrame(this._flush),this.pending=!0)},e.prototype.clear=function(e){var t=this.changes;return this.changes=0,t},e}();t.RenderLoop=i})),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/lib/useragent","ace/lib/event_emitter"],(function(e,t,n){var o=e("../lib/oop"),i=e("../lib/dom"),r=e("../lib/lang"),s=e("../lib/event"),a=e("../lib/useragent"),l=e("../lib/event_emitter").EventEmitter,c=512,u="function"==typeof ResizeObserver,h=200,d=function(){function e(e){this.el=i.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=i.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=i.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),this.$measureNode.textContent=r.stringRepeat("X",c),this.$characterSize={width:0,height:0},u?this.$addObserver():this.checkForSizeChanges()}return e.prototype.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",a.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},e.prototype.checkForSizeChanges=function(e){if(void 0===e&&(e=this.$measureSizes()),e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},e.prototype.$addObserver=function(){var e=this;this.$observer=new window.ResizeObserver((function(t){e.checkForSizeChanges()})),this.$observer.observe(this.$measureNode)},e.prototype.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer||this.$observer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=s.onIdle((function t(){e.checkForSizeChanges(),s.onIdle(t,500)}),500)},e.prototype.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},e.prototype.$measureSizes=function(e){var t={height:(e||this.$measureNode).clientHeight,width:(e||this.$measureNode).clientWidth/c};return 0===t.width||0===t.height?null:t},e.prototype.$measureCharWidth=function(e){return this.$main.textContent=r.stringRepeat(e,c),this.$main.getBoundingClientRect().width/c},e.prototype.getCharacterWidth=function(e){var t=this.charSizes[e];return void 0===t&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},e.prototype.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$observer&&this.$observer.disconnect(),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)},e.prototype.$getZoom=function(e){return e&&e.parentElement?(window.getComputedStyle(e).zoom||1)*this.$getZoom(e.parentElement):1},e.prototype.$initTransformMeasureNodes=function(){var e=function(e,t){return["div",{style:"position: absolute;top:"+e+"px;left:"+t+"px;"}]};this.els=i.buildDom([e(0,0),e(h,0),e(0,h),e(h,h)],this.el)},e.prototype.transformCoordinates=function(e,t){function n(e,t,n){var o=e[1]*t[0]-e[0]*t[1];return[(-t[1]*n[0]+t[0]*n[1])/o,(+e[1]*n[0]-e[0]*n[1])/o]}function o(e,t){return[e[0]-t[0],e[1]-t[1]]}function i(e,t){return[e[0]+t[0],e[1]+t[1]]}function r(e,t){return[e*t[0],e*t[1]]}function s(e){var t=e.getBoundingClientRect();return[t.left,t.top]}e&&(e=r(1/this.$getZoom(this.el),e)),this.els||this.$initTransformMeasureNodes();var a=s(this.els[0]),l=s(this.els[1]),c=s(this.els[2]),u=s(this.els[3]),d=n(o(u,l),o(u,c),o(i(l,c),i(u,a))),p=r(1+d[0],o(l,a)),g=r(1+d[1],o(c,a));if(t){var m=t,f=d[0]*m[0]/h+d[1]*m[1]/h+1,y=i(r(m[0],p),r(m[1],g));return i(r(1/f/h,y),a)}var v=o(e,a),b=n(o(p,r(d[0],v)),o(g,r(d[1],v)),v);return r(h,b)},e}();d.prototype.$characterSize={width:0,height:0},o.implement(d.prototype,l),t.FontMetrics=d})),ace.define("ace/css/editor-css",["require","exports","module"],(function(e,t,n){n.exports='\n.ace_br1 {border-top-left-radius : 3px;}\n.ace_br2 {border-top-right-radius : 3px;}\n.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}\n.ace_br4 {border-bottom-right-radius: 3px;}\n.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}\n.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}\n.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}\n.ace_br8 {border-bottom-left-radius : 3px;}\n.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}\n.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}\n.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n\n\n.ace_editor {\n position: relative;\n overflow: hidden;\n padding: 0;\n font: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'Source Code Pro\', \'source-code-pro\', monospace;\n direction: ltr;\n text-align: left;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\n.ace_scroller {\n position: absolute;\n overflow: hidden;\n top: 0;\n bottom: 0;\n background-color: inherit;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n cursor: text;\n}\n\n.ace_content {\n position: absolute;\n box-sizing: border-box;\n min-width: 100%;\n contain: style size layout;\n font-variant-ligatures: no-common-ligatures;\n}\n\n.ace_keyboard-focus:focus {\n box-shadow: inset 0 0 0 2px #5E9ED6;\n outline: none;\n}\n\n.ace_dragging .ace_scroller:before{\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n content: \'\';\n background: rgba(250, 250, 250, 0.01);\n z-index: 1000;\n}\n.ace_dragging.ace_dark .ace_scroller:before{\n background: rgba(0, 0, 0, 0.01);\n}\n\n.ace_gutter {\n position: absolute;\n overflow : hidden;\n width: auto;\n top: 0;\n bottom: 0;\n left: 0;\n cursor: default;\n z-index: 4;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n contain: style size layout;\n}\n\n.ace_gutter-active-line {\n position: absolute;\n left: 0;\n right: 0;\n}\n\n.ace_scroller.ace_scroll-left:after {\n content: "";\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;\n pointer-events: none;\n}\n\n.ace_gutter-cell, .ace_gutter-cell_svg-icons {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n padding-left: 19px;\n padding-right: 6px;\n background-repeat: no-repeat;\n}\n\n.ace_gutter-cell_svg-icons .ace_gutter_annotation {\n margin-left: -14px;\n float: left;\n}\n\n.ace_gutter-cell .ace_gutter_annotation {\n margin-left: -19px;\n float: left;\n}\n\n.ace_gutter-cell.ace_error, .ace_icon.ace_error, .ace_icon.ace_error_fold {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_warning, .ace_icon.ace_warning, .ace_icon.ace_warning_fold {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_info, .ace_icon.ace_info {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n.ace_dark .ace_gutter-cell.ace_info, .ace_dark .ace_icon.ace_info {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");\n}\n\n.ace_icon_svg.ace_error {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJyZWQiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIj4KPGNpcmNsZSBmaWxsPSJub25lIiBjeD0iOCIgY3k9IjgiIHI9IjciIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPGxpbmUgeDE9IjExIiB5MT0iNSIgeDI9IjUiIHkyPSIxMSIvPgo8bGluZSB4MT0iMTEiIHkxPSIxMSIgeDI9IjUiIHkyPSI1Ii8+CjwvZz4KPC9zdmc+");\n background-color: crimson;\n}\n.ace_icon_svg.ace_warning {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJkYXJrb3JhbmdlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+Cjxwb2x5Z29uIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGZpbGw9Im5vbmUiIHBvaW50cz0iOCAxIDE1IDE1IDEgMTUgOCAxIi8+CjxyZWN0IHg9IjgiIHk9IjEyIiB3aWR0aD0iMC4wMSIgaGVpZ2h0PSIwLjAxIi8+CjxsaW5lIHgxPSI4IiB5MT0iNiIgeDI9IjgiIHkyPSIxMCIvPgo8L2c+Cjwvc3ZnPg==");\n background-color: darkorange;\n}\n.ace_icon_svg.ace_info {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJibHVlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+CjxjaXJjbGUgZmlsbD0ibm9uZSIgY3g9IjgiIGN5PSI4IiByPSI3IiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjxwb2x5bGluZSBwb2ludHM9IjggMTEgOCA4Ii8+Cjxwb2x5bGluZSBwb2ludHM9IjkgOCA2IDgiLz4KPGxpbmUgeDE9IjEwIiB5MT0iMTEiIHgyPSI2IiB5Mj0iMTEiLz4KPHJlY3QgeD0iOCIgeT0iNSIgd2lkdGg9IjAuMDEiIGhlaWdodD0iMC4wMSIvPgo8L2c+Cjwvc3ZnPg==");\n background-color: royalblue;\n}\n\n.ace_icon_svg.ace_error_fold {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSI+CiAgPHBhdGggZD0ibSAxOC45Mjk4NTEsNy44Mjk4MDc2IGMgMC4xNDYzNTMsNi4zMzc0NjA0IC02LjMyMzE0Nyw3Ljc3Nzg0NDQgLTcuNDc3OTEyLDcuNzc3ODQ0NCAtMi4xMDcyNzI2LC0wLjEyODc1IDUuMTE3Njc4LDAuMzU2MjQ5IDUuMDUxNjk4LC03Ljg3MDA2MTggLTAuNjA0NjcyLC04LjAwMzk3MzQ5IC03LjA3NzI3MDYsLTcuNTYzMTE4OSAtNC44NTczLC03LjQzMDM5NTU2IDEuNjA2LC0wLjExNTE0MjI1IDYuODk3NDg1LDEuMjYyNTQ1OTYgNy4yODM1MTQsNy41MjI2MTI5NiB6IiBmaWxsPSJjcmltc29uIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0ibSA4LjExNDc1NjIsMi4wNTI5ODI4IGMgMy4zNDkxNjk4LDAgNi4wNjQxMzI4LDIuNjc2ODYyNyA2LjA2NDEzMjgsNS45Nzg5NTMgMCwzLjMwMjExMjIgLTIuNzE0OTYzLDUuOTc4OTIwMiAtNi4wNjQxMzI4LDUuOTc4OTIwMiAtMy4zNDkxNDczLDAgLTYuMDY0MTc3MiwtMi42NzY4MDggLTYuMDY0MTc3MiwtNS45Nzg5MjAyIDAuMDA1MzksLTMuMjk5ODg2MSAyLjcxNzI2NTYsLTUuOTczNjQwOCA2LjA2NDE3NzIsLTUuOTc4OTUzIHogbSAwLC0xLjczNTgyNzE5IGMgLTQuMzIxNDgzNiwwIC03LjgyNDc0MDM4LDMuNDU0MDE4NDkgLTcuODI0NzQwMzgsNy43MTQ3ODAxOSAwLDQuMjYwNzI4MiAzLjUwMzI1Njc4LDcuNzE0NzQ1MiA3LjgyNDc0MDM4LDcuNzE0NzQ1MiA0LjMyMTQ0OTgsMCA3LjgyNDY5OTgsLTMuNDU0MDE3IDcuODI0Njk5OCwtNy43MTQ3NDUyIDAsLTIuMDQ2MDkxNCAtMC44MjQzOTIsLTQuMDA4MzY3MiAtMi4yOTE3NTYsLTUuNDU1MTc0NiBDIDEyLjE4MDIyNSwxLjEyOTk2NDggMTAuMTkwMDEzLDAuMzE3MTU1NjEgOC4xMTQ3NTYyLDAuMzE3MTU1NjEgWiBNIDYuOTM3NDU2Myw4LjI0MDU5ODUgNC42NzE4Njg1LDEwLjQ4NTg1MiA2LjAwODY4MTQsMTEuODc2NzI4IDguMzE3MDAzNSw5LjYwMDc5MTEgMTAuNjI1MzM3LDExLjg3NjcyOCAxMS45NjIxMzgsMTAuNDg1ODUyIDkuNjk2NTUwOCw4LjI0MDU5ODUgMTEuOTYyMTM4LDYuMDA2ODA2NiAxMC41NzMyNDYsNC42Mzc0MzM1IDguMzE3MDAzNSw2Ljg3MzQyOTcgNi4wNjA3NjA3LDQuNjM3NDMzNSA0LjY3MTg2ODUsNi4wMDY4MDY2IFoiIGZpbGw9ImNyaW1zb24iIHN0cm9rZS13aWR0aD0iMiIvPgo8L3N2Zz4=");\n background-color: crimson;\n}\n.ace_icon_svg.ace_warning_fold {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNC43NzY5IDE0LjczMzdMOC42NTE5MiAyLjQ4MzY5QzguMzI5NDYgMS44Mzg3NyA3LjQwOTEzIDEuODM4NzcgNy4wODY2NyAyLjQ4MzY5TDAuOTYxNjY5IDE0LjczMzdDMC42NzA3NzUgMTUuMzE1NSAxLjA5MzgzIDE2IDEuNzQ0MjkgMTZIMTMuOTk0M0MxNC42NDQ4IDE2IDE1LjA2NzggMTUuMzE1NSAxNC43NzY5IDE0LjczMzdaTTMuMTYwMDcgMTQuMjVMNy44NjkyOSA0LjgzMTU2TDEyLjU3ODUgMTQuMjVIMy4xNjAwN1pNOC43NDQyOSAxMS42MjVWMTMuMzc1SDYuOTk0MjlWMTEuNjI1SDguNzQ0MjlaTTYuOTk0MjkgMTAuNzVWNy4yNUg4Ljc0NDI5VjEwLjc1SDYuOTk0MjlaIiBmaWxsPSIjRUM3MjExIi8+CjxwYXRoIGQ9Ik0xMS4xOTkxIDIuOTUyMzhDMTAuODgwOSAyLjMxNDY3IDEwLjM1MzcgMS44MDUyNiA5LjcwNTUgMS41MDlMMTEuMDQxIDEuMDY5NzhDMTEuNjg4MyAwLjk0OTgxNCAxMi4zMzcgMS4yNzI2MyAxMi42MzE3IDEuODYxNDFMMTcuNjEzNiAxMS44MTYxQzE4LjM1MjcgMTMuMjkyOSAxNy41OTM4IDE1LjA4MDQgMTYuMDE4IDE1LjU3NDVDMTYuNDA0NCAxNC40NTA3IDE2LjMyMzEgMTMuMjE4OCAxNS43OTI0IDEyLjE1NTVMMTEuMTk5MSAyLjk1MjM4WiIgZmlsbD0iI0VDNzIxMSIvPgo8L3N2Zz4=");\n background-color: darkorange;\n}\n\n.ace_scrollbar {\n contain: strict;\n position: absolute;\n right: 0;\n bottom: 0;\n z-index: 6;\n}\n\n.ace_scrollbar-inner {\n position: absolute;\n cursor: text;\n left: 0;\n top: 0;\n}\n\n.ace_scrollbar-v{\n overflow-x: hidden;\n overflow-y: scroll;\n top: 0;\n}\n\n.ace_scrollbar-h {\n overflow-x: scroll;\n overflow-y: hidden;\n left: 0;\n}\n\n.ace_print-margin {\n position: absolute;\n height: 100%;\n}\n\n.ace_text-input {\n position: absolute;\n z-index: 0;\n width: 0.5em;\n height: 1em;\n opacity: 0;\n background: transparent;\n -moz-appearance: none;\n appearance: none;\n border: none;\n resize: none;\n outline: none;\n overflow: hidden;\n font: inherit;\n padding: 0 1px;\n margin: 0 -1px;\n contain: strict;\n -ms-user-select: text;\n -moz-user-select: text;\n -webkit-user-select: text;\n user-select: text;\n /*with `pre-line` chrome inserts   instead of space*/\n white-space: pre!important;\n}\n.ace_text-input.ace_composition {\n background: transparent;\n color: inherit;\n z-index: 1000;\n opacity: 1;\n}\n.ace_composition_placeholder { color: transparent }\n.ace_composition_marker { \n border-bottom: 1px solid;\n position: absolute;\n border-radius: 0;\n margin-top: 1px;\n}\n\n[ace_nocontext=true] {\n transform: none!important;\n filter: none!important;\n clip-path: none!important;\n mask : none!important;\n contain: none!important;\n perspective: none!important;\n mix-blend-mode: initial!important;\n z-index: auto;\n}\n\n.ace_layer {\n z-index: 1;\n position: absolute;\n overflow: hidden;\n /* workaround for chrome bug https://github.com/ajaxorg/ace/issues/2312*/\n word-wrap: normal;\n white-space: pre;\n height: 100%;\n width: 100%;\n box-sizing: border-box;\n /* setting pointer-events: auto; on node under the mouse, which changes\n during scroll, will break mouse wheel scrolling in Safari */\n pointer-events: none;\n}\n\n.ace_gutter-layer {\n position: relative;\n width: auto;\n text-align: right;\n pointer-events: auto;\n height: 1000000px;\n contain: style size layout;\n}\n\n.ace_text-layer {\n font: inherit !important;\n position: absolute;\n height: 1000000px;\n width: 1000000px;\n contain: style size layout;\n}\n\n.ace_text-layer > .ace_line, .ace_text-layer > .ace_line_group {\n contain: style size layout;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n}\n\n.ace_hidpi .ace_text-layer,\n.ace_hidpi .ace_gutter-layer,\n.ace_hidpi .ace_content,\n.ace_hidpi .ace_gutter {\n contain: strict;\n}\n.ace_hidpi .ace_text-layer > .ace_line, \n.ace_hidpi .ace_text-layer > .ace_line_group {\n contain: strict;\n}\n\n.ace_cjk {\n display: inline-block;\n text-align: center;\n}\n\n.ace_cursor-layer {\n z-index: 4;\n}\n\n.ace_cursor {\n z-index: 4;\n position: absolute;\n box-sizing: border-box;\n border-left: 2px solid;\n /* workaround for smooth cursor repaintng whole screen in chrome */\n transform: translatez(0);\n}\n\n.ace_multiselect .ace_cursor {\n border-left-width: 1px;\n}\n\n.ace_slim-cursors .ace_cursor {\n border-left-width: 1px;\n}\n\n.ace_overwrite-cursors .ace_cursor {\n border-left-width: 0;\n border-bottom: 1px solid;\n}\n\n.ace_hidden-cursors .ace_cursor {\n opacity: 0.2;\n}\n\n.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor {\n opacity: 0;\n}\n\n.ace_smooth-blinking .ace_cursor {\n transition: opacity 0.18s;\n}\n\n.ace_animate-blinking .ace_cursor {\n animation-duration: 1000ms;\n animation-timing-function: step-end;\n animation-name: blink-ace-animate;\n animation-iteration-count: infinite;\n}\n\n.ace_animate-blinking.ace_smooth-blinking .ace_cursor {\n animation-duration: 1000ms;\n animation-timing-function: ease-in-out;\n animation-name: blink-ace-animate-smooth;\n}\n \n@keyframes blink-ace-animate {\n from, to { opacity: 1; }\n 60% { opacity: 0; }\n}\n\n@keyframes blink-ace-animate-smooth {\n from, to { opacity: 1; }\n 45% { opacity: 1; }\n 60% { opacity: 0; }\n 85% { opacity: 0; }\n}\n\n.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\n position: absolute;\n z-index: 3;\n}\n\n.ace_marker-layer .ace_selection {\n position: absolute;\n z-index: 5;\n}\n\n.ace_marker-layer .ace_bracket {\n position: absolute;\n z-index: 6;\n}\n\n.ace_marker-layer .ace_error_bracket {\n position: absolute;\n border-bottom: 1px solid #DE5555;\n border-radius: 0;\n}\n\n.ace_marker-layer .ace_active-line {\n position: absolute;\n z-index: 2;\n}\n\n.ace_marker-layer .ace_selected-word {\n position: absolute;\n z-index: 4;\n box-sizing: border-box;\n}\n\n.ace_line .ace_fold {\n box-sizing: border-box;\n\n display: inline-block;\n height: 11px;\n margin-top: -2px;\n vertical-align: middle;\n\n background-image:\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");\n background-repeat: no-repeat, repeat-x;\n background-position: center center, top left;\n color: transparent;\n\n border: 1px solid black;\n border-radius: 2px;\n\n cursor: pointer;\n pointer-events: auto;\n}\n\n.ace_dark .ace_fold {\n}\n\n.ace_fold:hover{\n background-image:\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");\n}\n\n.ace_tooltip {\n background-color: #f5f5f5;\n border: 1px solid gray;\n border-radius: 1px;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\n color: black;\n max-width: 100%;\n padding: 3px 4px;\n position: fixed;\n z-index: 999999;\n box-sizing: border-box;\n cursor: default;\n white-space: pre-wrap;\n word-wrap: break-word;\n line-height: normal;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n pointer-events: none;\n overflow: auto;\n max-width: min(60em, 66vw);\n}\n.ace_tooltip pre {\n white-space: pre-wrap;\n}\n\n.ace_tooltip.ace_dark {\n background-color: #636363;\n color: #fff;\n}\n\n.ace_tooltip:focus {\n outline: 1px solid #5E9ED6;\n}\n\n.ace_icon {\n display: inline-block;\n width: 18px;\n vertical-align: top;\n}\n\n.ace_icon_svg {\n display: inline-block;\n width: 12px;\n vertical-align: top;\n -webkit-mask-repeat: no-repeat;\n -webkit-mask-size: 12px;\n -webkit-mask-position: center;\n}\n\n.ace_folding-enabled > .ace_gutter-cell, .ace_folding-enabled > .ace_gutter-cell_svg-icons {\n padding-right: 13px;\n}\n\n.ace_fold-widget {\n box-sizing: border-box;\n\n margin: 0 -12px 0 1px;\n display: none;\n width: 11px;\n vertical-align: top;\n\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: center;\n\n border-radius: 3px;\n \n border: 1px solid transparent;\n cursor: pointer;\n}\n\n.ace_folding-enabled .ace_fold-widget {\n display: inline-block; \n}\n\n.ace_fold-widget.ace_end {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");\n}\n\n.ace_fold-widget.ace_closed {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");\n}\n\n.ace_fold-widget:hover {\n border: 1px solid rgba(0, 0, 0, 0.3);\n background-color: rgba(255, 255, 255, 0.2);\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n}\n\n.ace_fold-widget:active {\n border: 1px solid rgba(0, 0, 0, 0.4);\n background-color: rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n}\n/**\n * Dark version for fold widgets\n */\n.ace_dark .ace_fold-widget {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");\n}\n.ace_dark .ace_fold-widget.ace_end {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");\n}\n.ace_dark .ace_fold-widget.ace_closed {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");\n}\n.ace_dark .ace_fold-widget:hover {\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n background-color: rgba(255, 255, 255, 0.1);\n}\n.ace_dark .ace_fold-widget:active {\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n}\n\n.ace_inline_button {\n border: 1px solid lightgray;\n display: inline-block;\n margin: -1px 8px;\n padding: 0 5px;\n pointer-events: auto;\n cursor: pointer;\n}\n.ace_inline_button:hover {\n border-color: gray;\n background: rgba(200,200,200,0.2);\n display: inline-block;\n pointer-events: auto;\n}\n\n.ace_fold-widget.ace_invalid {\n background-color: #FFB4B4;\n border-color: #DE5555;\n}\n\n.ace_fade-fold-widgets .ace_fold-widget {\n transition: opacity 0.4s ease 0.05s;\n opacity: 0;\n}\n\n.ace_fade-fold-widgets:hover .ace_fold-widget {\n transition: opacity 0.05s ease 0.05s;\n opacity:1;\n}\n\n.ace_underline {\n text-decoration: underline;\n}\n\n.ace_bold {\n font-weight: bold;\n}\n\n.ace_nobold .ace_bold {\n font-weight: normal;\n}\n\n.ace_italic {\n font-style: italic;\n}\n\n\n.ace_error-marker {\n background-color: rgba(255, 0, 0,0.2);\n position: absolute;\n z-index: 9;\n}\n\n.ace_highlight-marker {\n background-color: rgba(255, 255, 0,0.2);\n position: absolute;\n z-index: 8;\n}\n\n.ace_mobile-menu {\n position: absolute;\n line-height: 1.5;\n border-radius: 4px;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n background: white;\n box-shadow: 1px 3px 2px grey;\n border: 1px solid #dcdcdc;\n color: black;\n}\n.ace_dark > .ace_mobile-menu {\n background: #333;\n color: #ccc;\n box-shadow: 1px 3px 2px grey;\n border: 1px solid #444;\n\n}\n.ace_mobile-button {\n padding: 2px;\n cursor: pointer;\n overflow: hidden;\n}\n.ace_mobile-button:hover {\n background-color: #eee;\n opacity:1;\n}\n.ace_mobile-button:active {\n background-color: #ddd;\n}\n\n.ace_placeholder {\n font-family: arial;\n transform: scale(0.9);\n transform-origin: left;\n white-space: pre;\n opacity: 0.7;\n margin: 0 10px;\n}\n\n.ace_ghost_text {\n opacity: 0.5;\n font-style: italic;\n white-space: pre;\n}\n\n.ace_screenreader-only {\n position:absolute;\n left:-10000px;\n top:auto;\n width:1px;\n height:1px;\n overflow:hidden;\n}'})),ace.define("ace/layer/decorators",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=e("../lib/oop"),r=e("../lib/event_emitter").EventEmitter,s=function(){function e(e,t){this.canvas=o.createElement("canvas"),this.renderer=t,this.pixelRatio=1,this.maxHeight=t.layerConfig.maxHeight,this.lineHeight=t.layerConfig.lineHeight,this.canvasHeight=e.parent.scrollHeight,this.heightRatio=this.canvasHeight/this.maxHeight,this.canvasWidth=e.width,this.minDecorationHeight=2*this.pixelRatio|0,this.halfMinDecorationHeight=this.minDecorationHeight/2|0,this.canvas.width=this.canvasWidth,this.canvas.height=this.canvasHeight,this.canvas.style.top="0px",this.canvas.style.right="0px",this.canvas.style.zIndex="7px",this.canvas.style.position="absolute",this.colors={},this.colors.dark={error:"rgba(255, 18, 18, 1)",warning:"rgba(18, 136, 18, 1)",info:"rgba(18, 18, 136, 1)"},this.colors.light={error:"rgb(255,51,51)",warning:"rgb(32,133,72)",info:"rgb(35,68,138)"},e.element.appendChild(this.canvas)}return e.prototype.$updateDecorators=function(e){var t=!0===this.renderer.theme.isDark?this.colors.dark:this.colors.light;e&&(this.maxHeight=e.maxHeight,this.lineHeight=e.lineHeight,this.canvasHeight=e.height,(e.lastRow+1)*this.lineHeightt.priority?1:0}));for(var r=this.renderer.session.$foldData,s=0;sthis.canvasHeight&&(d=this.canvasHeight-this.halfMinDecorationHeight),u=Math.round(d-this.halfMinDecorationHeight),h=Math.round(d+this.halfMinDecorationHeight)}n.fillStyle=t[o[s].type]||null,n.fillRect(0,c,this.canvasWidth,h-u)}}var p=this.renderer.session.selection.getCursor();p&&(l=this.compensateFoldRows(p.row,r),c=Math.round((p.row-l)*this.lineHeight*this.heightRatio),n.fillStyle="rgba(0, 0, 0, 0.5)",n.fillRect(0,c,this.canvasWidth,2))},e.prototype.compensateFoldRows=function(e,t){var n=0;if(t&&t.length>0)for(var o=0;ot[o].start.row&&e=t[o].end.row&&(n+=t[o].end.row-t[o].start.row);return n},e}();i.implement(s.prototype,r),t.Decorator=s})),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/config","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/scrollbar_custom","ace/scrollbar_custom","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter","ace/css/editor-css","ace/layer/decorators","ace/lib/useragent"],(function(e,t,n){"use strict";var o=e("./lib/oop"),i=e("./lib/dom"),r=e("./lib/lang"),s=e("./config"),a=e("./layer/gutter").Gutter,l=e("./layer/marker").Marker,c=e("./layer/text").Text,u=e("./layer/cursor").Cursor,h=e("./scrollbar").HScrollBar,d=e("./scrollbar").VScrollBar,p=e("./scrollbar_custom").HScrollBar,g=e("./scrollbar_custom").VScrollBar,m=e("./renderloop").RenderLoop,f=e("./layer/font_metrics").FontMetrics,y=e("./lib/event_emitter").EventEmitter,v=e("./css/editor-css"),b=e("./layer/decorators").Decorator,w=e("./lib/useragent");i.importCssString(v,"ace_editor.css",!1);var x=function(){function e(e,t){var n=this;this.container=e||i.createElement("div"),i.addCssClass(this.container,"ace_editor"),i.HI_DPI&&i.addCssClass(this.container,"ace_hidpi"),this.setTheme(t),null==s.get("useStrictCSP")&&s.set("useStrictCSP",!1),this.$gutter=i.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden",!0),this.scroller=i.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=i.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new a(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new l(this.content);var o=this.$textLayer=new c(this.content);this.canvas=o.element,this.$markerFront=new l(this.content),this.$cursorLayer=new u(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new d(this.container,this),this.scrollBarH=new h(this.container,this),this.scrollBarV.on("scroll",(function(e){n.$scrollAnimation||n.session.setScrollTop(e.data-n.scrollMargin.top)})),this.scrollBarH.on("scroll",(function(e){n.$scrollAnimation||n.session.setScrollLeft(e.data-n.scrollMargin.left)})),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new f(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.on("changeCharacterSize",(function(e){n.updateCharacterSize(),n.onResize(!0,n.gutterWidth,n.$size.width,n.$size.height),n._signal("changeCharacterSize",e)})),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.margin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$keepTextAreaAtCursor=!w.isIOS,this.$loop=new m(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),this.$addResizeObserver(),s.resetOptions(this),s._signal("renderer",this)}return e.prototype.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin(),i.setStyle(this.scroller.style,"line-height",this.lineHeight+"px")},e.prototype.setSession=function(e){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e),e&&(this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode))},e.prototype.updateLines=function(e,t,n){if(void 0===t&&(t=1/0),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRowthis.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},e.prototype.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},e.prototype.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},e.prototype.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},e.prototype.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},e.prototype.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},e.prototype.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},e.prototype.onResize=function(e,t,n,o){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=e?1:0;var i=this.container;o||(o=i.clientHeight||i.scrollHeight),n||(n=i.clientWidth||i.scrollWidth);var r=this.$updateCachedSize(e,t,n,o);if(this.$resizeTimer&&this.$resizeTimer.cancel(),!this.$size.scrollerHeight||!n&&!o)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(r|this.$changes,!0):this.$loop.schedule(r|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.$customScrollbar&&this.$updateCustomScrollbar(!0)}},e.prototype.$updateCachedSize=function(e,t,n,o){o-=this.$extraHeight||0;var r=0,s=this.$size,a={width:s.width,height:s.height,scrollerHeight:s.scrollerHeight,scrollerWidth:s.scrollerWidth};if(o&&(e||s.height!=o)&&(s.height=o,r|=this.CHANGE_SIZE,s.scrollerHeight=s.height,this.$horizScroll&&(s.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.setHeight(s.scrollerHeight),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",r|=this.CHANGE_SCROLL),n&&(e||s.width!=n)){r|=this.CHANGE_SIZE,s.width=n,null==t&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,i.setStyle(this.scrollBarH.element.style,"left",t+"px"),i.setStyle(this.scroller.style,"left",t+this.margin.left+"px"),s.scrollerWidth=Math.max(0,n-t-this.scrollBarV.getWidth()-this.margin.h),i.setStyle(this.$gutter.style,"left",this.margin.left+"px");var l=this.scrollBarV.getWidth()+"px";i.setStyle(this.scrollBarH.element.style,"right",l),i.setStyle(this.scroller.style,"right",l),i.setStyle(this.scroller.style,"bottom",this.scrollBarH.getHeight()),this.scrollBarH.setWidth(s.scrollerWidth),(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)&&(r|=this.CHANGE_FULL)}return s.$dirty=!n||!o,r&&this._signal("resize",a),r},e.prototype.onGutterResize=function(e){var t=this.$showGutter?e:0;t!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,t,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()||this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):this.$computeLayerConfig()},e.prototype.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-2*this.$padding,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},e.prototype.setAnimatedScroll=function(e){this.setOption("animatedScroll",e)},e.prototype.getAnimatedScroll=function(){return this.$animatedScroll},e.prototype.setShowInvisibles=function(e){this.setOption("showInvisibles",e),this.session.$bidiHandler.setShowInvisibles(e)},e.prototype.getShowInvisibles=function(){return this.getOption("showInvisibles")},e.prototype.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},e.prototype.setDisplayIndentGuides=function(e){this.setOption("displayIndentGuides",e)},e.prototype.getHighlightIndentGuides=function(){return this.getOption("highlightIndentGuides")},e.prototype.setHighlightIndentGuides=function(e){this.setOption("highlightIndentGuides",e)},e.prototype.setShowPrintMargin=function(e){this.setOption("showPrintMargin",e)},e.prototype.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},e.prototype.setPrintMarginColumn=function(e){this.setOption("printMarginColumn",e)},e.prototype.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},e.prototype.getShowGutter=function(){return this.getOption("showGutter")},e.prototype.setShowGutter=function(e){return this.setOption("showGutter",e)},e.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},e.prototype.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},e.prototype.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},e.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},e.prototype.$updatePrintMargin=function(){if(this.$showPrintMargin||this.$printMarginEl){if(!this.$printMarginEl){var e=i.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=i.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=Math.round(this.characterWidth*this.$printMarginColumn+this.$padding)+"px",t.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&-1==this.session.$wrap&&this.adjustWrapLimit()}},e.prototype.getContainerElement=function(){return this.container},e.prototype.getMouseEventTarget=function(){return this.scroller},e.prototype.getTextAreaContainer=function(){return this.container},e.prototype.$moveTextAreaToCursor=function(){if(!this.$isMousePressed){var e=this.textarea.style,t=this.$composition;if(this.$keepTextAreaAtCursor||t){var n=this.$cursorLayer.$pixelPos;if(n){t&&t.markerRange&&(n=this.$cursorLayer.getPixelPosition(t.markerRange.start,!0));var o=this.layerConfig,r=n.top,s=n.left;r-=o.offset;var a=t&&t.useTextareaForIME||w.isMobile?this.lineHeight:1;if(r<0||r>o.height-a)i.translate(this.textarea,0,0);else{var l=1,c=this.$size.height-a;if(t)if(t.useTextareaForIME){var u=this.textarea.value;l=this.characterWidth*this.session.$getStringScreenWidth(u)[0]}else r+=this.lineHeight+2;else r+=this.lineHeight;(s-=this.scrollLeft)>this.$size.scrollerWidth-l&&(s=this.$size.scrollerWidth-l),s+=this.gutterWidth+this.margin.left,i.setStyle(e,"height",a+"px"),i.setStyle(e,"width",l+"px"),i.translate(this.textarea,Math.min(s,this.$size.scrollerWidth-l),Math.min(r,c))}}}else i.translate(this.textarea,-100,0)}},e.prototype.getFirstVisibleRow=function(){return this.layerConfig.firstRow},e.prototype.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(0===this.layerConfig.offset?0:1)},e.prototype.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow;return this.session.documentToScreenRow(t,0)*e.lineHeight-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},e.prototype.getLastVisibleRow=function(){return this.layerConfig.lastRow},e.prototype.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},e.prototype.setScrollMargin=function(e,t,n,o){var i=this.scrollMargin;i.top=0|e,i.bottom=0|t,i.right=0|o,i.left=0|n,i.v=i.top+i.bottom,i.h=i.left+i.right,i.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-i.top),this.updateFull()},e.prototype.setMargin=function(e,t,n,o){var i=this.margin;i.top=0|e,i.bottom=0|t,i.right=0|o,i.left=0|n,i.v=i.top+i.bottom,i.h=i.left+i.right,this.$updateCachedSize(!0,this.gutterWidth,this.$size.width,this.$size.height),this.updateFull()},e.prototype.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},e.prototype.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},e.prototype.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},e.prototype.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},e.prototype.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},e.prototype.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},e.prototype.freeze=function(){this.$frozen=!0},e.prototype.unfreeze=function(){this.$frozen=!1},e.prototype.$renderChanges=function(e,t){if(this.$changes&&(e|=this.$changes,this.$changes=0),this.session&&this.container.offsetWidth&&!this.$frozen&&(e||t)){if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender",e),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var n=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){if(e|=this.$computeLayerConfig()|this.$loop.clear(),n.firstRow!=this.layerConfig.firstRow&&n.firstRowScreen==this.layerConfig.firstRowScreen){var o=this.scrollTop+(n.firstRow-Math.max(this.layerConfig.firstRow,0))*this.lineHeight;o>0&&(this.scrollTop=o,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig()|this.$loop.clear())}n=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),i.translate(this.content,-this.scrollLeft,-n.offset);var r=n.width+2*this.$padding+"px",s=n.minHeight+"px";i.setStyle(this.content.style,"width",r),i.setStyle(this.content.style,"height",s)}if(e&this.CHANGE_H_SCROLL&&(i.translate(this.content,-this.scrollLeft,-n.offset),this.scroller.className=this.scrollLeft<=0?"ace_scroller ":"ace_scroller ace_scroll-left ",this.enableKeyboardAccessibility&&(this.scroller.className+=this.keyboardFocusClassName)),e&this.CHANGE_FULL)return this.$changedLines=null,this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),void this._signal("afterRender",e);if(e&this.CHANGE_SCROLL)return this.$changedLines=null,e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(n):this.$textLayer.scrollLines(n),this.$showGutter&&(e&this.CHANGE_GUTTER||e&this.CHANGE_LINES?this.$gutterLayer.update(n):this.$gutterLayer.scrollLines(n)),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),void this._signal("afterRender",e);e&this.CHANGE_TEXT?(this.$changedLines=null,this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_LINES?((this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER?(this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_CURSOR&&(this.$highlightGutterLine&&this.$gutterLayer.updateLineHighlight(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(n),this.$moveTextAreaToCursor()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(n),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(n),this._signal("afterRender",e)}else this.$changes|=e},e.prototype.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,n=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(n+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&n>this.$maxPixelHeight&&(n=this.$maxPixelHeight);var o=!(n<=2*this.lineHeight)&&e>t;if(n!=this.desiredHeight||this.$size.height!=this.desiredHeight||o!=this.$vScroll){o!=this.$vScroll&&(this.$vScroll=o,this.scrollBarV.setVisible(o));var i=this.container.clientWidth;this.container.style.height=n+"px",this.$updateCachedSize(!0,this.$gutterWidth,i,n),this.desiredHeight=n,this._signal("autosize")}},e.prototype.$computeLayerConfig=function(){var e=this.session,t=this.$size,n=t.height<=2*this.lineHeight,o=this.session.getScreenLength()*this.lineHeight,i=this.$getLongestLine(),r=!n&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-i-2*this.$padding<0),s=this.$horizScroll!==r;s&&(this.$horizScroll=r,this.scrollBarH.setVisible(r));var a=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var l=t.scrollerHeight+this.lineHeight,c=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;o+=c;var u=this.scrollMargin;this.session.setScrollTop(Math.max(-u.top,Math.min(this.scrollTop,o-t.scrollerHeight+u.bottom))),this.session.setScrollLeft(Math.max(-u.left,Math.min(this.scrollLeft,i+2*this.$padding-t.scrollerWidth+u.right)));var h=!n&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-o+c<0||this.scrollTop>u.top),d=a!==h;d&&(this.$vScroll=h,this.scrollBarV.setVisible(h));var p,g,m=this.scrollTop%this.lineHeight,f=Math.ceil(l/this.lineHeight)-1,y=Math.max(0,Math.round((this.scrollTop-m)/this.lineHeight)),v=y+f,b=this.lineHeight;y=e.screenToDocumentRow(y,0);var w=e.getFoldLine(y);w&&(y=w.start.row),p=e.documentToScreenRow(y,0),g=e.getRowLength(y)*b,v=Math.min(e.screenToDocumentRow(v,0),e.getLength()-1),l=t.scrollerHeight+e.getRowLength(v)*b+g,m=this.scrollTop-p*b;var x=0;return(this.layerConfig.width!=i||s)&&(x=this.CHANGE_H_SCROLL),(s||d)&&(x|=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),d&&(i=this.$getLongestLine())),this.layerConfig={width:i,padding:this.$padding,firstRow:y,firstRowScreen:p,lastRow:v,lineHeight:b,characterWidth:this.characterWidth,minHeight:l,maxHeight:o,offset:m,gutterOffset:b?Math.max(0,Math.ceil((m+t.height-t.scrollerHeight)/b)):0,height:this.$size.scrollerHeight},this.session.$bidiHandler&&this.session.$bidiHandler.setContentWidth(i-this.$padding),x},e.prototype.$updateLines=function(){if(this.$changedLines){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var n=this.layerConfig;if(!(e>n.lastRow+1||tthis.$textLayer.MAX_LINE_LENGTH&&(e=this.$textLayer.MAX_LINE_LENGTH+30),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(e*this.characterWidth))},e.prototype.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},e.prototype.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},e.prototype.addGutterDecoration=function(e,t){this.$gutterLayer.addGutterDecoration(e,t)},e.prototype.removeGutterDecoration=function(e,t){this.$gutterLayer.removeGutterDecoration(e,t)},e.prototype.updateBreakpoints=function(e){this.$loop.schedule(this.CHANGE_GUTTER)},e.prototype.setAnnotations=function(e){this.$gutterLayer.setAnnotations(e),this.$loop.schedule(this.CHANGE_GUTTER)},e.prototype.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},e.prototype.hideCursor=function(){this.$cursorLayer.hideCursor()},e.prototype.showCursor=function(){this.$cursorLayer.showCursor()},e.prototype.scrollSelectionIntoView=function(e,t,n){this.scrollCursorIntoView(e,n),this.scrollCursorIntoView(t,n)},e.prototype.scrollCursorIntoView=function(e,t,n){if(0!==this.$size.scrollerHeight){var o=this.$cursorLayer.getPixelPosition(e),i=o.left,r=o.top,s=n&&n.top||0,a=n&&n.bottom||0;this.$scrollAnimation&&(this.$stopAnimation=!0);var l=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;l+s>r?(t&&l+s>r+this.lineHeight&&(r-=t*this.$size.scrollerHeight),0===r&&(r=-this.scrollMargin.top),this.session.setScrollTop(r)):l+this.$size.scrollerHeight-a=1-this.scrollMargin.top||t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right||void 0},e.prototype.pixelToScreenCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var o=this.$fontMetrics.transformCoordinates([e,t]);e=o[1]-this.gutterWidth-this.margin.left,t=o[0]}else n=this.scroller.getBoundingClientRect();var i=e+this.scrollLeft-n.left-this.$padding,r=i/this.characterWidth,s=Math.floor((t+this.scrollTop-n.top)/this.lineHeight),a=this.$blockCursor?Math.floor(r):Math.round(r);return{row:s,column:a,side:r-a>0?1:-1,offsetX:i}},e.prototype.screenToTextCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var o=this.$fontMetrics.transformCoordinates([e,t]);e=o[1]-this.gutterWidth-this.margin.left,t=o[0]}else n=this.scroller.getBoundingClientRect();var i=e+this.scrollLeft-n.left-this.$padding,r=i/this.characterWidth,s=this.$blockCursor?Math.floor(r):Math.round(r),a=Math.floor((t+this.scrollTop-n.top)/this.lineHeight);return this.session.screenToDocumentPosition(a,Math.max(s,0),i)},e.prototype.textToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),o=this.session.documentToScreenPosition(e,t),i=this.$padding+(this.session.$bidiHandler.isBidiRow(o.row,e)?this.session.$bidiHandler.getPosLeft(o.column):Math.round(o.column*this.characterWidth)),r=o.row*this.lineHeight;return{pageX:n.left+i-this.scrollLeft,pageY:n.top+r-this.scrollTop}},e.prototype.visualizeFocus=function(){i.addCssClass(this.container,"ace_focus")},e.prototype.visualizeBlur=function(){i.removeCssClass(this.container,"ace_focus")},e.prototype.showComposition=function(e){this.$composition=e,e.cssText||(e.cssText=this.textarea.style.cssText),null==e.useTextareaForIME&&(e.useTextareaForIME=this.$useTextareaForIME),this.$useTextareaForIME?(i.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor(),this.$cursorLayer.element.style.display="none"):e.markerId=this.session.addMarker(e.markerRange,"ace_composition_marker","text")},e.prototype.setCompositionText=function(e){var t=this.session.selection.cursor;this.addToken(e,"composition_placeholder",t.row,t.column),this.$moveTextAreaToCursor()},e.prototype.hideComposition=function(){if(this.$composition){this.$composition.markerId&&this.session.removeMarker(this.$composition.markerId),i.removeCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText=this.$composition.cssText;var e=this.session.selection.cursor;this.removeExtraToken(e.row,e.column),this.$composition=null,this.$cursorLayer.element.style.display=""}},e.prototype.setGhostText=function(e,t){var n=this.session.selection.cursor,o=t||{row:n.row,column:n.column};this.removeGhostText();var i=e.split("\n");if(this.addToken(i[0],"ghost_text",o.row,o.column),this.$ghostText={text:e,position:{row:o.row,column:o.column}},i.length>1){this.$ghostTextWidget={text:i.slice(1).join("\n"),row:o.row,column:o.column,className:"ace_ghost_text"},this.session.widgetManager.addLineWidget(this.$ghostTextWidget);var r=this.$cursorLayer.getPixelPosition(o,!0),s=this.container.getBoundingClientRect().height,a=i.length*this.lineHeight;if(a1||Math.abs(e.$size.height-o)>1?e.$resizeTimer.delay():e.$resizeTimer.cancel()})),this.$resizeObserver.observe(this.container)}},e}();x.prototype.CHANGE_CURSOR=1,x.prototype.CHANGE_MARKER=2,x.prototype.CHANGE_GUTTER=4,x.prototype.CHANGE_SCROLL=8,x.prototype.CHANGE_LINES=16,x.prototype.CHANGE_TEXT=32,x.prototype.CHANGE_SIZE=64,x.prototype.CHANGE_MARKER_BACK=128,x.prototype.CHANGE_MARKER_FRONT=256,x.prototype.CHANGE_FULL=512,x.prototype.CHANGE_H_SCROLL=1024,x.prototype.$changes=0,x.prototype.$padding=null,x.prototype.$frozen=!1,x.prototype.STEPS=8,o.implement(x.prototype,y),s.defineOptions(x.prototype,"renderer",{useResizeObserver:{set:function(e){!e&&this.$resizeObserver?(this.$resizeObserver.disconnect(),this.$resizeTimer.cancel(),this.$resizeTimer=this.$resizeObserver=null):e&&!this.$resizeObserver&&this.$addResizeObserver()}},animatedScroll:{initialValue:!1},showInvisibles:{set:function(e){this.$textLayer.setShowInvisibles(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(e){"number"==typeof e&&(this.$printMarginColumn=e),this.$showPrintMargin=!!e,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(e){this.$gutter.style.display=e?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},useSvgGutterIcons:{set:function(e){this.$gutterLayer.$useSvgGutterIcons=e},initialValue:!1},showFoldedAnnotations:{set:function(e){this.$gutterLayer.$showFoldedAnnotations=e},initialValue:!1},fadeFoldWidgets:{set:function(e){i.setCssClass(this.$gutter,"ace_fade-fold-widgets",e)},initialValue:!1},showFoldWidgets:{set:function(e){this.$gutterLayer.setShowFoldWidgets(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightIndentGuides:{set:function(e){1==this.$textLayer.setHighlightIndentGuides(e)?this.$textLayer.$highlightIndentGuide():this.$textLayer.$clearActiveIndentGuide(this.$textLayer.$lines.cells)},initialValue:!0},highlightGutterLine:{set:function(e){this.$gutterLayer.setHighlightGutterLine(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},hScrollBarAlwaysVisible:{set:function(e){this.$hScrollBarAlwaysVisible&&this.$horizScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(e){this.$vScrollBarAlwaysVisible&&this.$vScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(e){"number"==typeof e&&(e+="px"),this.container.style.fontSize=e,this.updateFontSize()},initialValue:12},fontFamily:{set:function(e){this.container.style.fontFamily=e,this.updateFontSize()}},maxLines:{set:function(e){this.updateFull()}},minLines:{set:function(e){this.$minLines<562949953421311||(this.$minLines=0),this.updateFull()}},maxPixelHeight:{set:function(e){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(e){e=+e||0,this.$scrollPastEnd!=e&&(this.$scrollPastEnd=e,this.$loop.schedule(this.CHANGE_SCROLL))},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(e){this.$gutterLayer.$fixedWidth=!!e,this.$loop.schedule(this.CHANGE_GUTTER)}},customScrollbar:{set:function(e){this.$updateCustomScrollbar(e)},initialValue:!1},theme:{set:function(e){this.setTheme(e)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0},hasCssTransforms:{},useTextareaForIME:{initialValue:!w.isMobile&&!w.isIE}}),t.VirtualRenderer=x})),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("../lib/net"),r=e("../lib/event_emitter").EventEmitter,s=e("../config");function a(e){if("undefined"==typeof Worker)return{postMessage:function(){},terminate:function(){}};if(s.get("loadWorkerFromBlob")){var t=function(e){var t="importScripts('"+i.qualifyURL(e)+"');";try{return new Blob([t],{type:"application/javascript"})}catch(e){var n=new(window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder);return n.append(t),n.getBlob("application/javascript")}}(e),n=(window.URL||window.webkitURL).createObjectURL(t);return new Worker(n)}return new Worker(e)}var l=function(e){e.postMessage||(e=this.$createWorkerFromOldConfig.apply(this,arguments)),this.$worker=e,this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){o.implement(this,r),this.$createWorkerFromOldConfig=function(t,n,o,i,r){if(e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl),s.get("packaged")||!e.toUrl)i=i||s.moduleUrl(n,"worker");else{var l=this.$normalizePath;i=i||l(e.toUrl("ace/worker/worker.js",null,"_"));var c={};t.forEach((function(t){c[t]=l(e.toUrl(t,null,"_").replace(/(\.js)?(\?.*)?$/,""))}))}return this.$worker=a(i),r&&this.send("importScripts",r),this.$worker.postMessage({init:!0,tlns:c,module:n,classname:o}),this.$worker},this.onMessage=function(e){var t=e.data;switch(t.type){case"event":this._signal(t.name,{data:t.data});break;case"call":var n=this.callbacks[t.id];n&&(n(t.data),delete this.callbacks[t.id]);break;case"error":this.reportError(t.data);break;case"log":window.console&&console.log&&console.log.apply(console,t.data)}},this.reportError=function(e){window.console&&console.error&&console.error(e)},this.$normalizePath=function(e){return i.qualifyURL(e)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker.onerror=function(e){e.preventDefault()},this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,n){if(n){var o=this.callbackId++;this.callbacks[o]=n,t.push(o)}this.send(e,t)},this.emit=function(e,t){try{t.data&&t.data.err&&(t.data.err={message:t.data.err.message,stack:t.data.err.stack,code:t.data.err.code}),this.$worker&&this.$worker.postMessage({event:e,data:{data:t.data}})}catch(e){console.error(e.stack)}},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call("setValue",[e.getValue()]),e.on("change",this.changeListener,!0)},this.changeListener=function(e){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),"insert"==e.action?this.deltaQueue.push(e.start,e.lines):this.deltaQueue.push(e.start,e.end)},this.$sendDeltaQueue=function(){var e=this.deltaQueue;e&&(this.deltaQueue=null,e.length>50&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e}))}}).call(l.prototype),t.UIWorkerClient=function(e,t,n){var o=null,i=!1,a=Object.create(r),c=[],u=new l({messageBuffer:c,terminate:function(){},postMessage:function(e){c.push(e),o&&(i?setTimeout(h):h())}});u.setEmitSync=function(e){i=e};var h=function(){var e=c.shift();e.command?o[e.command].apply(o,e.args):e.event&&a._signal(e.event,e.data)};return a.postMessage=function(e){u.onMessage({data:e})},a.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},a.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},s.loadModule(["worker",t],(function(e){for(o=new e[n](a);c.length;)h()})),u},t.WorkerClient=l,t.createWorker=a})),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],(function(e,t,n){"use strict";var o=e("./range").Range,i=e("./lib/event_emitter").EventEmitter,r=e("./lib/oop"),s=function(){function e(e,t,n,o,i,r){var s=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=i,this.othersClass=r,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate,!0),this.$others=o,this.$onCursorChange=function(){setTimeout((function(){s.onCursorChange()}))},this.$pos=n;var a=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=a.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)}return e.prototype.setup=function(){var e=this,t=this.doc,n=this.session;this.selectionBefore=n.selection.toJSON(),n.selection.inMultiSelectMode&&n.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var i=this.pos;i.$insertRight=!0,i.detach(),i.markerId=n.addMarker(new o(i.row,i.column,i.row,i.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach((function(n){var o=t.createAnchor(n.row,n.column);o.$insertRight=!0,o.detach(),e.others.push(o)})),n.setUndoSelect(!1)},e.prototype.showOtherMarkers=function(){if(!this.othersActive){var e=this.session,t=this;this.othersActive=!0,this.others.forEach((function(n){n.markerId=e.addMarker(new o(n.row,n.column,n.row,n.column+t.length),t.othersClass,null,!1)}))}},e.prototype.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var e=0;e=this.pos.column&&t.start.column<=this.pos.column+this.length+1,r=t.start.column-this.pos.column;if(this.updateAnchors(e),i&&(this.length+=n),i&&!this.session.$fromUndo)if("insert"===e.action)for(var s=this.others.length-1;s>=0;s--){var a={row:(l=this.others[s]).row,column:l.column+r};this.doc.insertMergedLines(a,e.lines)}else if("remove"===e.action)for(s=this.others.length-1;s>=0;s--){var l;a={row:(l=this.others[s]).row,column:l.column+r},this.doc.remove(new o(a.row,a.column,a.row,a.column-n))}this.$updating=!1,this.updateMarkers()}},e.prototype.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},e.prototype.updateMarkers=function(){if(!this.$updating){var e=this,t=this.session,n=function(n,i){t.removeMarker(n.markerId),n.markerId=t.addMarker(new o(n.row,n.column,n.row,n.column+e.length),i,null,!1)};n(this.pos,this.mainClass);for(var i=this.others.length;i--;)n(this.others[i],this.othersClass)}},e.prototype.onCursorChange=function(e){if(!this.$updating&&this.session){var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))}},e.prototype.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.off("change",this.$onUpdate),this.session.selection.off("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},e.prototype.cancel=function(){if(-1!==this.$undoStackDepth){for(var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth,n=0;n1?e.multiSelect.joinSelections():e.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"splitSelectionIntoLines",description:"Split into lines",exec:function(e){e.multiSelect.splitIntoLines()},readOnly:!0},{name:"alignCursors",description:"Align cursors",exec:function(e){e.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",description:"Find all",exec:function(e){e.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],t.multiSelectCommands=[{name:"singleSelection",description:"Single selection",bindKey:"esc",exec:function(e){e.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(e){return e&&e.inMultiSelectMode}}];var o=e("../keyboard/hash_handler").HashHandler;t.keyboardHandler=new o(t.multiSelectCommands)})),ace.define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],(function(e,t,n){var o=e("./range_list").RangeList,i=e("./range").Range,r=e("./selection").Selection,s=e("./mouse/multi_select_handler").onMouseDown,a=e("./lib/event"),l=e("./lib/lang"),c=e("./commands/multi_select_commands");t.commands=c.defaultCommands.concat(c.multiSelectCommands);var u=new(0,e("./search").Search),h=e("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(h.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(e,t){if(e){if(!this.inMultiSelectMode&&0===this.rangeCount){var n=this.toOrientedRange();if(this.rangeList.add(n),this.rangeList.add(e),2!=this.rangeList.ranges.length)return this.rangeList.removeAll(),t||this.fromOrientedRange(e);this.rangeList.removeAll(),this.rangeList.add(n),this.$onAddRange(n)}e.cursor||(e.cursor=e.end);var o=this.rangeList.add(e);return this.$onAddRange(e),o.length&&this.$onRemoveRange(o),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)}},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length&&this.$onRemoveRange(e)},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal("addRange",{range:e})},this.$onRemoveRange=function(e){if(this.rangeCount=this.rangeList.ranges.length,1==this.rangeCount&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var n=e.length;n--;){var o=this.ranges.indexOf(e[n]);this.ranges.splice(o,1)}this._signal("removeRange",{ranges:e}),0===this.rangeCount&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),(t=t||this.ranges[0])&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new o,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){for(var e=this.ranges.length?this.ranges:[this.getRange()],t=[],n=0;n1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var o=this.session.documentToScreenPosition(this.cursor),r=this.session.documentToScreenPosition(this.anchor);this.rectangularRangeBlock(o,r).forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,n){var o=[],r=e.column0;)v--;if(v>0)for(var b=0;o[b].isEmpty();)b++;for(var w=v;w>=b;w--)o[w].isEmpty()&&o.splice(w,1)}return o}}.call(r.prototype);var d=e("./editor").Editor;function p(e){e.$multiselectOnSessionChange||(e.$onAddRange=e.$onAddRange.bind(e),e.$onRemoveRange=e.$onRemoveRange.bind(e),e.$onMultiSelect=e.$onMultiSelect.bind(e),e.$onSingleSelect=e.$onSingleSelect.bind(e),e.$multiselectOnSessionChange=t.onSessionChange.bind(e),e.$checkMultiselectChange=e.$checkMultiselectChange.bind(e),e.$multiselectOnSessionChange(e),e.on("changeSession",e.$multiselectOnSessionChange),e.on("mousedown",s),e.commands.addCommands(c.defaultCommands),function(e){if(e.textInput){var t=e.textInput.getElement(),n=!1;a.addListener(t,"keydown",(function(t){var i=18==t.keyCode&&!(t.ctrlKey||t.shiftKey||t.metaKey);e.$blockSelectEnabled&&i?n||(e.renderer.setMouseCursor("crosshair"),n=!0):n&&o()}),e),a.addListener(t,"keyup",o,e),a.addListener(t,"blur",o,e)}function o(t){n&&(e.renderer.setMouseCursor(""),n=!1)}}(e))}(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(e.marker){this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);-1!=t&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(e){for(var t=this.session.$selectionMarkers,n=e.length;n--;){var o=e[n];if(o.marker){this.session.removeMarker(o.marker);var i=t.indexOf(o);-1!=i&&t.splice(i,1)}}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(c.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(e){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(c.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(e){var t=e.command,n=e.editor;if(n.multiSelect){if(t.multiSelectAction)"forEach"==t.multiSelectAction?o=n.forEachSelection(t,e.args):"forEachLine"==t.multiSelectAction?o=n.forEachSelection(t,e.args,!0):"single"==t.multiSelectAction?(n.exitMultiSelectMode(),o=t.exec(n,e.args||{})):o=t.multiSelectAction(n,e.args||{});else{var o=t.exec(n,e.args||{});n.multiSelect.addRange(n.multiSelect.toOrientedRange()),n.multiSelect.mergeOverlappingRanges()}return o}},this.forEachSelection=function(e,t,n){if(!this.inVirtualSelectionMode){var o,i=n&&n.keepOrder,s=1==n||n&&n.$byLines,a=this.session,l=this.selection,c=l.rangeList,u=(i?l:c).ranges;if(!u.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var h=l._eventRegistry;l._eventRegistry={};var d=new r(a);this.inVirtualSelectionMode=!0;for(var p=u.length;p--;){if(s)for(;p>0&&u[p].start.row==u[p-1].end.row;)p--;d.fromOrientedRange(u[p]),d.index=p,this.selection=a.selection=d;var g=e.exec?e.exec(this,t||{}):e(this,t||{});o||void 0===g||(o=g),d.toOrientedRange(u[p])}d.detach(),this.selection=a.selection=l,this.inVirtualSelectionMode=!1,l._eventRegistry=h,l.mergeOverlappingRanges(),l.ranges[0]&&l.fromOrientedRange(l.ranges[0]);var m=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),m&&m.from==m.to&&this.renderer.animateScrolling(m.from),o}},this.exitMultiSelectMode=function(){this.inMultiSelectMode&&!this.inVirtualSelectionMode&&this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var t=this.multiSelect.rangeList.ranges,n=[],o=0;os&&(s=n.column),ou?e.insert(o,l.stringRepeat(" ",r-u)):e.remove(new i(o.row,o.column,o.row,o.column-r+u)),t.start.column=t.end.column=s,t.start.row=t.end.row=o.row,t.cursor=t.end})),t.fromOrientedRange(n[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}else{var u=this.selection.getRange(),h=u.start.row,d=u.end.row,p=h==d;if(p){var g,m=this.session.getLength();do{g=this.session.getLine(d)}while(/[=:]/.test(g)&&++d0);h<0&&(h=0),d>=m&&(d=m-1)}var f=this.session.removeFullLines(h,d);f=this.$reAlignText(f,p),this.session.insert({row:h,column:0},f.join("\n")+"\n"),p||(u.start.column=0,u.end.column=f[f.length-1].length),this.selection.setRange(u)}},this.$reAlignText=function(e,t){var n,o,i,r=!0,s=!0;return e.map((function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?null==n?(n=t[1].length,o=t[2].length,i=t[3].length,t):(n+o+i!=t[1].length+t[2].length+t[3].length&&(s=!1),n!=t[1].length&&(r=!1),n>t[1].length&&(n=t[1].length),ot[3].length&&(i=t[3].length),t):[e]})).map(t?c:r?s?function(e){return e[2]?a(n+o-e[2].length)+e[2]+a(i)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}:c:function(e){return e[2]?a(n)+e[2]+a(i)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]});function a(e){return l.stringRepeat(" ",e)}function c(e){return e[2]?a(n)+e[2]+a(o-e[2].length+i)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}}}).call(d.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var n=e.oldSession;n&&(n.multiSelect.off("addRange",this.$onAddRange),n.multiSelect.off("removeRange",this.$onRemoveRange),n.multiSelect.off("multiSelect",this.$onMultiSelect),n.multiSelect.off("singleSelect",this.$onSingleSelect),n.multiSelect.lead.off("change",this.$checkMultiselectChange),n.multiSelect.anchor.off("change",this.$checkMultiselectChange)),t&&(t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),t.multiSelect.lead.on("change",this.$checkMultiselectChange),t.multiSelect.anchor.on("change",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=p,e("./config").defineOptions(d.prototype,"editor",{enableMultiselect:{set:function(e){p(this),e?this.on("mousedown",s):this.off("mousedown",s)},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})})),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../../range").Range,i=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);return this.foldingStartMarker.test(o)?"start":"markbeginend"==t&&this.foldingStopMarker&&this.foldingStopMarker.test(o)?"end":""},this.getFoldWidgetRange=function(e,t,n){return null},this.indentationBlock=function(e,t,n){var i=/\S/,r=e.getLine(t),s=r.search(i);if(-1!=s){for(var a=n||r.length,l=e.getLength(),c=t,u=t;++tc){var p=e.getLine(u).length;return new o(c,a,u,p)}}},this.openingBracketBlock=function(e,t,n,i,r){var s={row:n,column:i+1},a=e.$findClosingBracket(t,s,r);if(a){var l=e.foldWidgets[a.row];return null==l&&(l=e.getFoldWidget(a.row)),"start"==l&&a.row>s.row&&(a.row--,a.column=e.getLine(a.row).length),o.fromPoints(s,a)}},this.closingBracketBlock=function(e,t,n,i,r){var s={row:n,column:i},a=e.$findOpeningBracket(t,s);if(a)return a.column++,s.column--,o.fromPoints(a,s)}}).call(i.prototype)})),ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range","ace/config"],(function(e,t,n){"use strict";var o=e("../line_widgets").LineWidgets,i=e("../lib/dom"),r=e("../range").Range,s=e("../config").nls;t.showErrorMarker=function(e,t){var n=e.session;n.widgetManager||(n.widgetManager=new o(n),n.widgetManager.attach(e));var a=e.getCursorPosition(),l=a.row,c=n.widgetManager.getWidgetsAtRow(l).filter((function(e){return"errorMarker"==e.type}))[0];c?c.destroy():l-=t;var u,h=function(e,t,n){var o=e.getAnnotations().sort(r.comparePoints);if(o.length){var i=function(e,t,n){for(var o=0,i=e.length-1;o<=i;){var r=o+i>>1,s=n(t,e[r]);if(s>0)o=r+1;else{if(!(s<0))return r;i=r-1}}return-(o+1)}(o,{row:t,column:-1},r.comparePoints);i<0&&(i=-i-1),i>=o.length?i=n>0?0:o.length-1:0===i&&n<0&&(i=o.length-1);var s=o[i];if(s&&n){if(s.row===t){do{s=o[i+=n]}while(s&&s.row===t);if(!s)return o.slice()}var a=[];t=s.row;do{a[n<0?"unshift":"push"](s),s=o[i+=n]}while(s&&s.row==t);return a.length&&a}}}(n,l,t);if(h){var d=h[0];a.column=(d.pos&&"number"!=typeof d.column?d.pos.sc:d.column)||0,a.row=d.row,u=e.renderer.$gutterLayer.$annotations[a.row]}else{if(c)return;u={text:[s("Looks good!")],className:"ace_ok"}}e.session.unfold(a.row),e.selection.moveToPosition(a);var p={row:a.row,fixedWidth:!0,coverGutter:!0,el:i.createElement("div"),type:"errorMarker"},g=p.el.appendChild(i.createElement("div")),m=p.el.appendChild(i.createElement("div"));m.className="error_widget_arrow "+u.className;var f=e.renderer.$cursorLayer.getPixelPosition(a).left;m.style.left=f+e.renderer.gutterWidth-5+"px",p.el.className="error_widget_wrapper",g.className="error_widget "+u.className,g.innerHTML=u.text.join("
"),g.appendChild(i.createElement("div"));var y=function(e,t,n){if(0===t&&("esc"===n||"return"===n))return p.destroy(),{command:"null"}};p.destroy=function(){e.$mouseHandler.isMousePressed||(e.keyBinding.removeKeyboardHandler(y),n.widgetManager.removeLineWidget(p),e.off("changeSelection",p.destroy),e.off("changeSession",p.destroy),e.off("mouseup",p.destroy),e.off("change",p.destroy))},e.keyBinding.addKeyboardHandler(y),e.on("changeSelection",p.destroy),e.on("changeSession",p.destroy),e.on("mouseup",p.destroy),e.on("change",p.destroy),e.session.widgetManager.addLineWidget(p),p.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:p.el.offsetHeight})},i.importCssString("\n .error_widget_wrapper {\n background: inherit;\n color: inherit;\n border:none\n }\n .error_widget {\n border-top: solid 2px;\n border-bottom: solid 2px;\n margin: 5px 0;\n padding: 10px 40px;\n white-space: pre-wrap;\n }\n .error_widget.ace_error, .error_widget_arrow.ace_error{\n border-color: #ff5a5a\n }\n .error_widget.ace_warning, .error_widget_arrow.ace_warning{\n border-color: #F1D817\n }\n .error_widget.ace_info, .error_widget_arrow.ace_info{\n border-color: #5a5a5a\n }\n .error_widget.ace_ok, .error_widget_arrow.ace_ok{\n border-color: #5aaa5a\n }\n .error_widget_arrow {\n position: absolute;\n border: solid 5px;\n border-top-color: transparent!important;\n border-right-color: transparent!important;\n border-left-color: transparent!important;\n top: -5px;\n }\n","error_marker.css",!1)})),ace.define("ace/ace",["require","exports","module","ace/lib/dom","ace/range","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config","ace/loader_build"],(function(e,t,n){"use strict";e("./loader_build")(t);var o=e("./lib/dom"),i=e("./range").Range,r=e("./editor").Editor,s=e("./edit_session").EditSession,a=e("./undomanager").UndoManager,l=e("./virtual_renderer").VirtualRenderer;e("./worker/worker_client"),e("./keyboard/hash_handler"),e("./placeholder"),e("./multi_select"),e("./mode/folding/fold_mode"),e("./theme/textmate"),e("./ext/error_marker"),t.config=e("./config"),t.edit=function(e,n){if("string"==typeof e){var i=e;if(!(e=document.getElementById(i)))throw new Error("ace.edit can't find div #"+i)}if(e&&e.env&&e.env.editor instanceof r)return e.env.editor;var s="";if(e&&/input|textarea/i.test(e.tagName)){var a=e;s=a.value,e=o.createElement("pre"),a.parentNode.replaceChild(e,a)}else e&&(s=e.textContent,e.innerHTML="");var c=t.createEditSession(s),u=new r(new l(e),c,n),h={document:c,editor:u,onResize:u.resize.bind(u,null)};return a&&(h.textarea=a),u.on("destroy",(function(){h.editor.container.env=null})),u.container.env=u.env=h,u},t.createEditSession=function(e,t){var n=new s(e,t);return n.setUndoManager(new a),n},t.Range=i,t.Editor=r,t.EditSession=s,t.UndoManager=a,t.VirtualRenderer=l,t.version=t.config.version})),ace.require(["ace/ace"],(function(t){t&&(t.config.init(!0),t.define=ace.define);var n=function(){return this}();for(var o in n||"undefined"==typeof window||(n=window),n||"undefined"==typeof self||(n=self),n.ace||(n.ace=t),t)t.hasOwnProperty(o)&&(n.ace[o]=t[o]);n.ace.default=n.ace,e&&(e.exports=n.ace)}))},134:(e,t,n)=>{e=n.nmd(e),ace.define("ace/ext/beautify",["require","exports","module","ace/token_iterator"],(function(e,t,n){"use strict";var o=e("../token_iterator").TokenIterator;function i(e,t){return e.type.lastIndexOf(t+".xml")>-1}t.singletonTags=["area","base","br","col","command","embed","hr","html","img","input","keygen","link","meta","param","source","track","wbr"],t.blockTags=["article","aside","blockquote","body","div","dl","fieldset","footer","form","head","header","html","nav","ol","p","script","section","style","table","tbody","tfoot","thead","ul"],t.formatOptions={lineBreaksAfterCommasInCurlyBlock:!0},t.beautify=function(e){for(var n,r,s,a=new o(e,0,0),l=a.getCurrentToken(),c=e.getTabString(),u=t.singletonTags,h=t.blockTags,d=t.formatOptions||{},p=!1,g=!1,m=!1,f="",y="",v="",b=0,w=0,x=0,k=0,C=0,$=0,S=0,E=0,O=0,T=!1,A=!1,_=!1,L=!1,M={0:0},R=[],N=!1,I=function(){n&&n.value&&"string.regexp"!==n.type&&(n.value=n.value.replace(/^\s*/,""))},P=function(){for(var e=f.length-1;0!=e&&" "===f[e];)e-=1;f=f.slice(0,e+1)},D=function(){f=f.trimRight(),p=!1};null!==l;){if(E=a.getCurrentTokenRow(),a.$rowTokens,n=a.stepForward(),void 0!==l){if(y=l.value,C=0,_="style"===v||"ace/mode/css"===e.$modeId,i(l,"tag-open")?(A=!0,n&&(L=-1!==h.indexOf(n.value)),"0;O--)f+="\n";p=!0,i(l,"comment")||l.type.match(/^(comment|string)$/)||(y=y.trimLeft())}if(y){if("keyword"===l.type&&y.match(/^(if|else|elseif|for|foreach|while|switch)$/)?(R[b]=y,I(),m=!0,y.match(/^(else|elseif)$/)&&f.match(/\}[\s]*$/)&&(D(),g=!0)):"paren.lparen"===l.type?(I(),"{"===y.substr(-1)&&(m=!0,T=!1,A||(O=1)),"{"===y.substr(0,1)&&(g=!0,"["!==f.substr(-1)&&"["===f.trimRight().substr(-1)?(D(),g=!1):")"===f.trimRight().substr(-1)?D():P())):"paren.rparen"===l.type?(C=1,"}"===y.substr(0,1)&&("case"===R[b-1]&&C++,"{"===f.trimRight().substr(-1)?D():(g=!0,_&&(O+=2))),"]"===y.substr(0,1)&&"}"!==f.substr(-1)&&"}"===f.trimRight().substr(-1)&&(g=!1,k++,D()),")"===y.substr(0,1)&&"("!==f.substr(-1)&&"("===f.trimRight().substr(-1)&&(g=!1,k++,D()),P()):"keyword.operator"!==l.type&&"keyword"!==l.type||!y.match(/^(=|==|===|!=|!==|&&|\|\||and|or|xor|\+=|.=|>|>=|<|<=|=>)$/)?"punctuation.operator"===l.type&&";"===y?(D(),I(),m=!0,_&&O++):"punctuation.operator"===l.type&&y.match(/^(:|,)$/)?(D(),I(),y.match(/^(,)$/)&&S>0&&0===$&&d.lineBreaksAfterCommasInCurlyBlock?O++:(m=!0,p=!1)):"support.php_tag"!==l.type||"?>"!==y||p?i(l,"attribute-name")&&f.substr(-1).match(/^\s$/)?g=!0:i(l,"attribute-equals")?(P(),I()):i(l,"tag-close")?(P(),"/>"===y&&(g=!0)):"keyword"===l.type&&y.match(/^(case|default)$/)&&N&&(C=1):(D(),g=!0):(D(),I(),g=!0,m=!0),p&&(!l.type.match(/^(comment)$/)||y.substr(0,1).match(/^[/#]$/))&&(!l.type.match(/^(string)$/)||y.substr(0,1).match(/^['"@]$/))){if(k=x,b>w)for(k++,s=b;s>w;s--)M[s]=k;else b"===y)&&(O=L&&n&&""===y&&b--),i(l,"tag-name")&&(v=y),r=E}}l=n}f=f.trim(),e.doc.setValue(f)},t.commands=[{name:"beautify",description:"Format selection (Beautify)",exec:function(e){t.beautify(e.session)},bindKey:"Ctrl-Shift-B"}]})),ace.require(["ace/ext/beautify"],(function(t){e&&(e.exports=t)}))},604:(e,t,n)=>{e=n.nmd(e),ace.define("ace/ext/searchbox-css",["require","exports","module"],(function(e,t,n){n.exports='\n\n/* ------------------------------------------------------------------------------------------\n * Editor Search Form\n * --------------------------------------------------------------------------------------- */\n.ace_search {\n background-color: #ddd;\n color: #666;\n border: 1px solid #cbcbcb;\n border-top: 0 none;\n overflow: hidden;\n margin: 0;\n padding: 4px 6px 0 4px;\n position: absolute;\n top: 0;\n z-index: 99;\n white-space: normal;\n}\n.ace_search.left {\n border-left: 0 none;\n border-radius: 0px 0px 5px 0px;\n left: 0;\n}\n.ace_search.right {\n border-radius: 0px 0px 0px 5px;\n border-right: 0 none;\n right: 0;\n}\n\n.ace_search_form, .ace_replace_form {\n margin: 0 20px 4px 0;\n overflow: hidden;\n line-height: 1.9;\n}\n.ace_replace_form {\n margin-right: 0;\n}\n.ace_search_form.ace_nomatch {\n outline: 1px solid red;\n}\n\n.ace_search_field {\n border-radius: 3px 0 0 3px;\n background-color: white;\n color: black;\n border: 1px solid #cbcbcb;\n border-right: 0 none;\n outline: 0;\n padding: 0;\n font-size: inherit;\n margin: 0;\n line-height: inherit;\n padding: 0 6px;\n min-width: 17em;\n vertical-align: top;\n min-height: 1.8em;\n box-sizing: content-box;\n}\n.ace_searchbtn {\n border: 1px solid #cbcbcb;\n line-height: inherit;\n display: inline-block;\n padding: 0 6px;\n background: #fff;\n border-right: 0 none;\n border-left: 1px solid #dcdcdc;\n cursor: pointer;\n margin: 0;\n position: relative;\n color: #666;\n}\n.ace_searchbtn:last-child {\n border-radius: 0 3px 3px 0;\n border-right: 1px solid #cbcbcb;\n}\n.ace_searchbtn:disabled {\n background: none;\n cursor: default;\n}\n.ace_searchbtn:hover {\n background-color: #eef1f6;\n}\n.ace_searchbtn.prev, .ace_searchbtn.next {\n padding: 0px 0.7em\n}\n.ace_searchbtn.prev:after, .ace_searchbtn.next:after {\n content: "";\n border: solid 2px #888;\n width: 0.5em;\n height: 0.5em;\n border-width: 2px 0 0 2px;\n display:inline-block;\n transform: rotate(-45deg);\n}\n.ace_searchbtn.next:after {\n border-width: 0 2px 2px 0 ;\n}\n.ace_searchbtn_close {\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\n border-radius: 50%;\n border: 0 none;\n color: #656565;\n cursor: pointer;\n font: 16px/16px Arial;\n padding: 0;\n height: 14px;\n width: 14px;\n top: 9px;\n right: 7px;\n position: absolute;\n}\n.ace_searchbtn_close:hover {\n background-color: #656565;\n background-position: 50% 100%;\n color: white;\n}\n\n.ace_button {\n margin-left: 2px;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -o-user-select: none;\n -ms-user-select: none;\n user-select: none;\n overflow: hidden;\n opacity: 0.7;\n border: 1px solid rgba(100,100,100,0.23);\n padding: 1px;\n box-sizing: border-box!important;\n color: black;\n}\n\n.ace_button:hover {\n background-color: #eee;\n opacity:1;\n}\n.ace_button:active {\n background-color: #ddd;\n}\n\n.ace_button.checked {\n border-color: #3399ff;\n opacity:1;\n}\n\n.ace_search_options{\n margin-bottom: 3px;\n text-align: right;\n -webkit-user-select: none;\n -moz-user-select: none;\n -o-user-select: none;\n -ms-user-select: none;\n user-select: none;\n clear: both;\n}\n\n.ace_search_counter {\n float: left;\n font-family: arial;\n padding: 0 8px;\n}'})),ace.define("ace/ext/searchbox",["require","exports","module","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/ext/searchbox-css","ace/keyboard/hash_handler","ace/lib/keys","ace/config"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=e("../lib/lang"),r=e("../lib/event"),s=e("./searchbox-css"),a=e("../keyboard/hash_handler").HashHandler,l=e("../lib/keys"),c=e("../config").nls;o.importCssString(s,"ace_searchbox",!1);var u=function(){function e(e,t,n){var i=o.createElement("div");o.buildDom(["div",{class:"ace_search right"},["span",{action:"hide",class:"ace_searchbtn_close"}],["div",{class:"ace_search_form"},["input",{class:"ace_search_field",placeholder:c("Search for"),spellcheck:"false"}],["span",{action:"findPrev",class:"ace_searchbtn prev"},"​"],["span",{action:"findNext",class:"ace_searchbtn next"},"​"],["span",{action:"findAll",class:"ace_searchbtn",title:"Alt-Enter"},c("All")]],["div",{class:"ace_replace_form"},["input",{class:"ace_search_field",placeholder:c("Replace with"),spellcheck:"false"}],["span",{action:"replaceAndFindNext",class:"ace_searchbtn"},c("Replace")],["span",{action:"replaceAll",class:"ace_searchbtn"},c("All")]],["div",{class:"ace_search_options"},["span",{action:"toggleReplace",class:"ace_button",title:c("Toggle Replace mode"),style:"float:left;margin-top:-2px;padding:0 5px;"},"+"],["span",{class:"ace_search_counter"}],["span",{action:"toggleRegexpMode",class:"ace_button",title:c("RegExp Search")},".*"],["span",{action:"toggleCaseSensitive",class:"ace_button",title:c("CaseSensitive Search")},"Aa"],["span",{action:"toggleWholeWords",class:"ace_button",title:c("Whole Word Search")},"\\b"],["span",{action:"searchInSelection",class:"ace_button",title:c("Search In Selection")},"S"]]],i),this.element=i.firstChild,this.setSession=this.setSession.bind(this),this.$init(),this.setEditor(e),o.importCssString(s,"ace_searchbox",e.container)}return e.prototype.setEditor=function(e){e.searchBox=this,e.renderer.scroller.appendChild(this.element),this.editor=e},e.prototype.setSession=function(e){this.searchRange=null,this.$syncOptions(!0)},e.prototype.$initElements=function(e){this.searchBox=e.querySelector(".ace_search_form"),this.replaceBox=e.querySelector(".ace_replace_form"),this.searchOption=e.querySelector("[action=searchInSelection]"),this.replaceOption=e.querySelector("[action=toggleReplace]"),this.regExpOption=e.querySelector("[action=toggleRegexpMode]"),this.caseSensitiveOption=e.querySelector("[action=toggleCaseSensitive]"),this.wholeWordOption=e.querySelector("[action=toggleWholeWords]"),this.searchInput=this.searchBox.querySelector(".ace_search_field"),this.replaceInput=this.replaceBox.querySelector(".ace_search_field"),this.searchCounter=e.querySelector(".ace_search_counter")},e.prototype.$init=function(){var e=this.element;this.$initElements(e);var t=this;r.addListener(e,"mousedown",(function(e){setTimeout((function(){t.activeInput.focus()}),0),r.stopPropagation(e)})),r.addListener(e,"click",(function(e){var n=(e.target||e.srcElement).getAttribute("action");n&&t[n]?t[n]():t.$searchBarKb.commands[n]&&t.$searchBarKb.commands[n].exec(t),r.stopPropagation(e)})),r.addCommandKeyListener(e,(function(e,n,o){var i=l.keyCodeToString(o),s=t.$searchBarKb.findKeyCommand(n,i);s&&s.exec&&(s.exec(t),r.stopEvent(e))})),this.$onChange=i.delayedCall((function(){t.find(!1,!1)})),r.addListener(this.searchInput,"input",(function(){t.$onChange.schedule(20)})),r.addListener(this.searchInput,"focus",(function(){t.activeInput=t.searchInput,t.searchInput.value&&t.highlight()})),r.addListener(this.replaceInput,"focus",(function(){t.activeInput=t.replaceInput,t.searchInput.value&&t.highlight()}))},e.prototype.setSearchRange=function(e){this.searchRange=e,e?this.searchRangeMarker=this.editor.session.addMarker(e,"ace_active-line"):this.searchRangeMarker&&(this.editor.session.removeMarker(this.searchRangeMarker),this.searchRangeMarker=null)},e.prototype.$syncOptions=function(e){o.setCssClass(this.replaceOption,"checked",this.searchRange),o.setCssClass(this.searchOption,"checked",this.searchOption.checked),this.replaceOption.textContent=this.replaceOption.checked?"-":"+",o.setCssClass(this.regExpOption,"checked",this.regExpOption.checked),o.setCssClass(this.wholeWordOption,"checked",this.wholeWordOption.checked),o.setCssClass(this.caseSensitiveOption,"checked",this.caseSensitiveOption.checked);var t=this.editor.getReadOnly();this.replaceOption.style.display=t?"none":"",this.replaceBox.style.display=this.replaceOption.checked&&!t?"":"none",this.find(!1,!1,e)},e.prototype.highlight=function(e){this.editor.session.highlight(e||this.editor.$search.$options.re),this.editor.renderer.updateBackMarkers()},e.prototype.find=function(e,t,n){var i=!this.editor.find(this.searchInput.value,{skipCurrent:e,backwards:t,wrap:!0,regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked,preventScroll:n,range:this.searchRange})&&this.searchInput.value;o.setCssClass(this.searchBox,"ace_nomatch",i),this.editor._emit("findSearchBox",{match:!i}),this.highlight(),this.updateCounter()},e.prototype.updateCounter=function(){var e=this.editor,t=e.$search.$options.re,n=t.unicode,o=0,r=0;if(t){var s=this.searchRange?e.session.getTextRange(this.searchRange):e.getValue(),a=e.session.doc.positionToIndex(e.selection.anchor);this.searchRange&&(a-=e.session.doc.positionToIndex(this.searchRange.start));for(var l,u=t.lastIndex=0;(l=t.exec(s))&&(o++,(u=l.index)<=a&&r++,!(o>999))&&(l[0]||(t.lastIndex=u+=i.skipEmptyMatch(s,u,n),!(u>=s.length))););}this.searchCounter.textContent=c("$0 of $1",[r,o>999?"999+":o])},e.prototype.findNext=function(){this.find(!0,!1)},e.prototype.findPrev=function(){this.find(!0,!0)},e.prototype.findAll=function(){var e=!this.editor.findAll(this.searchInput.value,{regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked})&&this.searchInput.value;o.setCssClass(this.searchBox,"ace_nomatch",e),this.editor._emit("findSearchBox",{match:!e}),this.highlight(),this.hide()},e.prototype.replace=function(){this.editor.getReadOnly()||this.editor.replace(this.replaceInput.value)},e.prototype.replaceAndFindNext=function(){this.editor.getReadOnly()||(this.editor.replace(this.replaceInput.value),this.findNext())},e.prototype.replaceAll=function(){this.editor.getReadOnly()||this.editor.replaceAll(this.replaceInput.value)},e.prototype.hide=function(){this.active=!1,this.setSearchRange(null),this.editor.off("changeSession",this.setSession),this.element.style.display="none",this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb),this.editor.focus()},e.prototype.show=function(e,t){this.active=!0,this.editor.on("changeSession",this.setSession),this.element.style.display="",this.replaceOption.checked=t,e&&(this.searchInput.value=e),this.searchInput.focus(),this.searchInput.select(),this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb),this.$syncOptions(!0)},e.prototype.isFocused=function(){var e=document.activeElement;return e==this.searchInput||e==this.replaceInput},e}(),h=new a;h.bindKeys({"Ctrl-f|Command-f":function(e){var t=e.isReplace=!e.isReplace;e.replaceBox.style.display=t?"":"none",e.replaceOption.checked=!1,e.$syncOptions(),e.searchInput.focus()},"Ctrl-H|Command-Option-F":function(e){e.editor.getReadOnly()||(e.replaceOption.checked=!0,e.$syncOptions(),e.replaceInput.focus())},"Ctrl-G|Command-G":function(e){e.findNext()},"Ctrl-Shift-G|Command-Shift-G":function(e){e.findPrev()},esc:function(e){setTimeout((function(){e.hide()}))},Return:function(e){e.activeInput==e.replaceInput&&e.replace(),e.findNext()},"Shift-Return":function(e){e.activeInput==e.replaceInput&&e.replace(),e.findPrev()},"Alt-Return":function(e){e.activeInput==e.replaceInput&&e.replaceAll(),e.findAll()},Tab:function(e){(e.activeInput==e.replaceInput?e.searchInput:e.replaceInput).focus()}}),h.addCommands([{name:"toggleRegexpMode",bindKey:{win:"Alt-R|Alt-/",mac:"Ctrl-Alt-R|Ctrl-Alt-/"},exec:function(e){e.regExpOption.checked=!e.regExpOption.checked,e.$syncOptions()}},{name:"toggleCaseSensitive",bindKey:{win:"Alt-C|Alt-I",mac:"Ctrl-Alt-R|Ctrl-Alt-I"},exec:function(e){e.caseSensitiveOption.checked=!e.caseSensitiveOption.checked,e.$syncOptions()}},{name:"toggleWholeWords",bindKey:{win:"Alt-B|Alt-W",mac:"Ctrl-Alt-B|Ctrl-Alt-W"},exec:function(e){e.wholeWordOption.checked=!e.wholeWordOption.checked,e.$syncOptions()}},{name:"toggleReplace",exec:function(e){e.replaceOption.checked=!e.replaceOption.checked,e.$syncOptions()}},{name:"searchInSelection",exec:function(e){e.searchOption.checked=!e.searchRange,e.setSearchRange(e.searchOption.checked&&e.editor.getSelectionRange()),e.$syncOptions()}}]);var d=new a([{bindKey:"Esc",name:"closeSearchBar",exec:function(e){e.searchBox.hide()}}]);u.prototype.$searchBarKb=h,u.prototype.$closeSearchBarKb=d,t.SearchBox=u,t.Search=function(e,t){(e.searchBox||new u(e)).show(e.session.getTextRange(),t)}})),ace.require(["ace/ext/searchbox"],(function(t){e&&(e.exports=t)}))},549:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=(e("../lib/lang"),e("./text_highlight_rules").TextHighlightRules),r=t.supportType="align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index",s=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|flex-end|flex-start|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom",l=t.supportConstantColor="aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen",c=t.supportConstantFonts="arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",u=t.numRe="\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",d=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",p=function(){var e=this.createKeywordMapper({"support.function":s,"support.constant":a,"support.type":r,"support.constant.color":l,"support.constant.fonts":c},"text",!0);this.$rules={start:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"paren.rparen",regex:"\\}"},{token:"string",regex:"@(?!viewport)",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"keyword",regex:"%"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant.numeric",regex:u},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"start"},{token:"paren.rparen",regex:"\\}",next:"start"},{token:"string",regex:";",next:"start"},{token:"keyword",regex:"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)"}],comments:[{token:"comment",regex:"\\/\\*",push:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}]}],ruleset:[{regex:"-(webkit|ms|moz|o)-",token:"text"},{token:"punctuation.operator",regex:"[:;]"},{token:"paren.rparen",regex:"\\}",next:"start"},{include:["strings","url","comments"]},{token:["constant.numeric","keyword"],regex:"("+u+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)"},{token:"constant.numeric",regex:u},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:d},{include:"url"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}],url:[{token:"support.function",regex:"(?:url(:?-prefix)?|domain|regexp)\\(",push:[{token:"support.function",regex:"\\)",next:"pop"},{defaultToken:"string"}]}],strings:[{token:"string.start",regex:"'",push:[{token:"string.end",regex:"'|$",next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]},{token:"string.start",regex:'"',push:[{token:"string.end",regex:'"|$',next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]}],escapes:[{token:"constant.language.escape",regex:/\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/}]},this.normalizeRules()};o.inherits(p,i),t.CssHighlightRules=p})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/css_completions",["require","exports","module"],(function(e,t,n){"use strict";var o={background:{"#$0":1},"background-color":{"#$0":1,transparent:1,fixed:1},"background-image":{"url('/$0')":1},"background-repeat":{repeat:1,"repeat-x":1,"repeat-y":1,"no-repeat":1,inherit:1},"background-position":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},"background-attachment":{scroll:1,fixed:1},"background-size":{cover:1,contain:1},"background-clip":{"border-box":1,"padding-box":1,"content-box":1},"background-origin":{"border-box":1,"padding-box":1,"content-box":1},border:{"solid $0":1,"dashed $0":1,"dotted $0":1,"#$0":1},"border-color":{"#$0":1},"border-style":{solid:2,dashed:2,dotted:2,double:2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},"border-collapse":{collapse:1,separate:1},bottom:{px:1,em:1,"%":1},clear:{left:1,right:1,both:1,none:1},color:{"#$0":1,"rgb(#$00,0,0)":1},cursor:{default:1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,"n-resize":1,"ne-resize":1,"e-resize":1,"se-resize":1,"s-resize":1,"sw-resize":1,"w-resize":1,"nw-resize":1},display:{none:1,block:1,inline:1,"inline-block":1,"table-cell":1},"empty-cells":{show:1,hide:1},float:{left:1,right:1,none:1},"font-family":{Arial:2,"Comic Sans MS":2,Consolas:2,"Courier New":2,Courier:2,Georgia:2,Monospace:2,"Sans-Serif":2,"Segoe UI":2,Tahoma:2,"Times New Roman":2,"Trebuchet MS":2,Verdana:1},"font-size":{px:1,em:1,"%":1},"font-weight":{bold:1,normal:1},"font-style":{italic:1,normal:1},"font-variant":{normal:1,"small-caps":1},height:{px:1,em:1,"%":1},left:{px:1,em:1,"%":1},"letter-spacing":{normal:1},"line-height":{normal:1},"list-style-type":{none:1,disc:1,circle:1,square:1,decimal:1,"decimal-leading-zero":1,"lower-roman":1,"upper-roman":1,"lower-greek":1,"lower-latin":1,"upper-latin":1,georgian:1,"lower-alpha":1,"upper-alpha":1},margin:{px:1,em:1,"%":1},"margin-right":{px:1,em:1,"%":1},"margin-left":{px:1,em:1,"%":1},"margin-top":{px:1,em:1,"%":1},"margin-bottom":{px:1,em:1,"%":1},"max-height":{px:1,em:1,"%":1},"max-width":{px:1,em:1,"%":1},"min-height":{px:1,em:1,"%":1},"min-width":{px:1,em:1,"%":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},"overflow-x":{hidden:1,visible:1,auto:1,scroll:1},"overflow-y":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,"%":1},"padding-top":{px:1,em:1,"%":1},"padding-right":{px:1,em:1,"%":1},"padding-bottom":{px:1,em:1,"%":1},"padding-left":{px:1,em:1,"%":1},"page-break-after":{auto:1,always:1,avoid:1,left:1,right:1},"page-break-before":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,static:1},right:{px:1,em:1,"%":1},"table-layout":{fixed:1,auto:1},"text-decoration":{none:1,underline:1,"line-through":1,blink:1},"text-align":{left:1,right:1,center:1,justify:1},"text-transform":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,"%":1},"vertical-align":{top:1,bottom:1},visibility:{hidden:1,visible:1},"white-space":{nowrap:1,normal:1,pre:1,"pre-line":1,"pre-wrap":1},width:{px:1,em:1,"%":1},"word-spacing":{normal:1},filter:{"alpha(opacity=$0100)":1},"text-shadow":{"$02px 2px 2px #777":1},"text-overflow":{"ellipsis-word":1,clip:1,ellipsis:1},"-moz-border-radius":1,"-moz-border-radius-topright":1,"-moz-border-radius-bottomright":1,"-moz-border-radius-topleft":1,"-moz-border-radius-bottomleft":1,"-webkit-border-radius":1,"-webkit-border-top-right-radius":1,"-webkit-border-top-left-radius":1,"-webkit-border-bottom-right-radius":1,"-webkit-border-bottom-left-radius":1,"-moz-box-shadow":1,"-webkit-box-shadow":1,transform:{"rotate($00deg)":1,"skew($00deg)":1},"-moz-transform":{"rotate($00deg)":1,"skew($00deg)":1},"-webkit-transform":{"rotate($00deg)":1,"skew($00deg)":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement("c").style;for(var t in e)if("string"==typeof e[t]){var n=t.replace(/[A-Z]/g,(function(e){return"-"+e.toLowerCase()}));o.hasOwnProperty(n)||(o[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,o){if(this.completionsDefined||this.defineCompletions(),"ruleset"===e||"ace/mode/scss"==t.$mode.$id){var i=t.getLine(n.row).substr(0,n.column),r=/\([^)]*$/.test(i);return r&&(i=i.substr(i.lastIndexOf("(")+1)),/:[^;]+$/.test(i)?(/([\w\-]+):[^:]*$/.test(i),this.getPropertyValueCompletions(e,t,n,o)):this.getPropertyCompletions(e,t,n,o,r)}return[]},this.getPropertyCompletions=function(e,t,n,i,r){return r=r||!1,Object.keys(o).map((function(e){return{caption:e,snippet:e+": $0"+(r?"":";"),meta:"property",score:1e6}}))},this.getPropertyValueCompletions=function(e,t,n,i){var r=t.getLine(n.row).substr(0,n.column),s=(/([\w\-]+):[^:]*$/.exec(r)||{})[1];if(!s)return[];var a=[];return s in o&&"object"==typeof o[s]&&(a=Object.keys(o[s])),a.map((function(e){return{caption:e,snippet:e,meta:"property value",score:1e6}}))}}).call(i.prototype),t.CssCompletions=i})),ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=(e("../behaviour").Behaviour,e("./cstyle").CstyleBehaviour),r=e("../../token_iterator").TokenIterator,s=function(){this.inherit(i),this.add("colon","insertion",(function(e,t,n,o,i){if(":"===i&&n.selection.isEmpty()){var s=n.getCursorPosition(),a=new r(o,s.row,s.column),l=a.getCurrentToken();if(l&&l.value.match(/\s+/)&&(l=a.stepBackward()),l&&"support.type"===l.type){var c=o.doc.getLine(s.row);if(":"===c.substring(s.column,s.column+1))return{text:"",selection:[1,1]};if(/^(\s+[^;]|\s*$)/.test(c.substring(s.column)))return{text:":;",selection:[1,1]}}}})),this.add("colon","deletion",(function(e,t,n,o,i){var s=o.doc.getTextRange(i);if(!i.isMultiLine()&&":"===s){var a=n.getCursorPosition(),l=new r(o,a.row,a.column),c=l.getCurrentToken();if(c&&c.value.match(/\s+/)&&(c=l.stepBackward()),c&&"support.type"===c.type&&";"===o.doc.getLine(i.start.row).substring(i.end.column,i.end.column+1))return i.end.column++,i}})),this.add("semicolon","insertion",(function(e,t,n,o,i){if(";"===i&&n.selection.isEmpty()){var r=n.getCursorPosition();if(";"===o.doc.getLine(r.row).substring(r.column,r.column+1))return{text:"",selection:[1,1]}}})),this.add("!important","insertion",(function(e,t,n,o,i){if("!"===i&&n.selection.isEmpty()){var r=n.getCursorPosition(),s=o.doc.getLine(r.row);if(/^\s*(;|}|$)/.test(s.substring(r.column)))return{text:"!important",selection:[10,10]}}}))};o.inherits(s,i),t.CssBehaviour=s})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./css_highlight_rules").CssHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../worker/worker_client").WorkerClient,l=e("./css_completions").CssCompletions,c=e("./behaviour/css").CssBehaviour,u=e("./folding/cstyle").FoldMode,h=function(){this.HighlightRules=r,this.$outdent=new s,this.$behaviour=new c,this.$completer=new l,this.foldingRules=new u};o.inherits(h,i),function(){this.foldingRules="cStyle",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;return i.length&&"comment"==i[i.length-1].type||t.match(/^.*\{\s*$/)&&(o+=n),o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,o){return this.$completer.getCompletions(e,t,n,o)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/css_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("annotate",(function(t){e.setAnnotations(t.data)})),t.on("terminate",(function(){e.clearAnnotations()})),t},this.$id="ace/mode/css",this.snippetFileId="ace/snippets/css"}.call(h.prototype),t.Mode=h})),ace.require(["ace/mode/css"],(function(t){e&&(e.exports=t)}))},576:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@\\w+(?=\\s|$)"},r.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};o.inherits(r,i),r.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},r.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},r.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=r})),ace.define("ace/mode/golang_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],(function(e,t,n){var o=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,r=e("./text_highlight_rules").TextHighlightRules,s=function(){var e=this.createKeywordMapper({keyword:"else|break|case|return|goto|if|const|select|continue|struct|default|switch|for|range|func|import|package|chan|defer|fallthrough|go|interface|map|range|select|type|var","constant.language":"nil|true|false|iota","support.function":"new|close|cap|copy|panic|panicln|print|println|len|make|delete|real|recover|imag|append","support.type":"string|uint8|uint16|uint32|uint64|int8|int16|int32|int64|float32|float64|complex64|complex128|byte|rune|uint|int|uintptr|bool|error"},""),t="\\\\(?:[0-7]{3}|x\\h{2}|u{4}|U\\h{6}|[abfnrtv'\"\\\\])".replace(/\\h/g,"[a-fA-F\\d]");this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},i.getStartRule("doc-start"),{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"string",regex:/"(?:[^"\\]|\\.)*?"/},{token:"string",regex:"`",next:"bqstring"},{token:"constant.numeric",regex:"'(?:[^\\'\ud800-\udbff]|[\ud800-\udbff][\udc00-\udfff]|"+t.replace('"',"")+")'"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:["keyword","text","entity.name.function"],regex:"(func)(\\s+)([a-zA-Z_$][a-zA-Z0-9_$]*)\\b"},{token:function(t){return"("==t[t.length-1]?[{type:e(t.slice(0,-1))||"support.function",value:t.slice(0,-1)},{type:"paren.lparen",value:t.slice(-1)}]:e(t)||"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b\\(?"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^="},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}],bqstring:[{token:"string",regex:"`",next:"start"},{defaultToken:"string"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};o.inherits(s,r),t.GolangHighlightRules=s})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/golang",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/golang_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle"],(function(e,t,n){var o=e("../lib/oop"),i=e("./text").Mode,r=e("./golang_highlight_rules").GolangHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=r,this.$outdent=new s,this.foldingRules=new a,this.$behaviour=this.$defaultBehaviour};o.inherits(l,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),r=i.tokens;return i.state,r.length&&"comment"==r[r.length-1].type||"start"==e&&t.match(/^.*[\{\(\[]\s*$/)&&(o+=n),o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/golang"}.call(l.prototype),t.Mode=l})),ace.require(["ace/mode/golang"],(function(t){e&&(e.exports=t)}))},395:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/jsdoc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:["comment.doc.tag","comment.doc.text","lparen.doc"],regex:"(@(?:param|member|typedef|property|namespace|var|const|callback))(\\s*)({)",push:[{token:"lparen.doc",regex:"{",push:[{include:"doc-syntax"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"}]},{token:["rparen.doc","text.doc","variable.parameter.doc","lparen.doc","variable.parameter.doc","rparen.doc"],regex:/(})(\s*)(?:([\w=:\/\.]+)|(?:(\[)([\w=:\/\.]+)(\])))/,next:"pop"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"},{include:"doc-syntax"},{defaultToken:"text.doc"}]},{token:["comment.doc.tag","text.doc","lparen.doc"],regex:"(@(?:returns?|yields|type|this|suppress|public|protected|private|package|modifies|implements|external|exception|throws|enum|define|extends))(\\s*)({)",push:[{token:"lparen.doc",regex:"{",push:[{include:"doc-syntax"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"}]},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"},{include:"doc-syntax"},{defaultToken:"text.doc"}]},{token:["comment.doc.tag","text.doc","variable.parameter.doc"],regex:'(@(?:alias|memberof|instance|module|name|lends|namespace|external|this|template|requires|param|implements|function|extends|typedef|mixes|constructor|var|memberof\\!|event|listens|exports|class|constructs|interface|emits|fires|throws|const|callback|borrows|augments))(\\s+)(\\w[\\w#.:/~"\\-]*)?'},{token:["comment.doc.tag","text.doc","variable.parameter.doc"],regex:"(@method)(\\s+)(\\w[\\w.\\(\\)]*)"},{token:"comment.doc.tag",regex:"@access\\s+(?:private|public|protected)"},{token:"comment.doc.tag",regex:"@kind\\s+(?:class|constant|event|external|file|function|member|mixin|module|namespace|typedef)"},{token:"comment.doc.tag",regex:"@\\w+(?=\\s|$)"},r.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}],"doc-syntax":[{token:"operator.doc",regex:/[|:]/},{token:"paren.doc",regex:/[\[\]]/}]},this.normalizeRules()};o.inherits(r,i),r.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},r.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},r.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.JsDocCommentHighlightRules=r})),ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/jsdoc_comment_highlight_rules","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./jsdoc_comment_highlight_rules").JsDocCommentHighlightRules,r=e("./text_highlight_rules").TextHighlightRules,s="[a-zA-Z\\$_¡-￿][a-zA-Z\\d\\$_¡-￿]*",a=function(e){var t=this.createKeywordMapper({"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Symbol|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static|constructor","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert","constant.language.boolean":"true|false"},"identifier"),n="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)";this.$rules={no_regex:[i.getStartRule("doc-start"),c("no_regex"),{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator"],regex:"("+s+")(\\.)(prototype)(\\.)("+s+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+s+")(\\.)("+s+")(\\s*)(=)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+s+")(\\s*)(=)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+s+")(\\.)("+s+")(\\s*)(=)(\\s*)(function\\*?)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function\\*?)(\\s+)("+s+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+s+")(\\s*)(:)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:"keyword",regex:"from(?=\\s*('|\"))"},{token:"keyword",regex:"(?:case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void)\\b",next:"start"},{token:"support.constant",regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:s},{token:"punctuation.operator",regex:/[.](?![.])/,next:"property"},{token:"storage.type",regex:/=>/,next:"start"},{token:"keyword.operator",regex:/--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],property:[{token:"text",regex:"\\s+"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+s+")(\\.)("+s+")(\\s*)(=)(\\s*)(function\\*?)(?:(\\s+)(\\w+))?(\\s*)(\\()",next:"function_arguments"},{token:"punctuation.operator",regex:/[.](?![.])/},{token:"support.function",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|lter|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward|rEach)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:"support.function.dom",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:"support.constant",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:"identifier",regex:s},{regex:"",token:"empty",next:"no_regex"}],start:[i.getStartRule("doc-start"),c("start"),{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+|^$",next:"start"},{token:"empty",regex:"",next:"no_regex"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/[sxngimy]*",next:"no_regex"},{token:"invalid",regex:/\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/},{token:"constant.language.delimiter",regex:/\|/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp"}],regex_character_class:[{token:"regexp.charclass.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp.charachterclass"}],default_parameter:[{token:"string",regex:"'(?=.)",push:[{token:"string",regex:"'|$",next:"pop"},{include:"qstring"}]},{token:"string",regex:'"(?=.)',push:[{token:"string",regex:'"|$',next:"pop"},{include:"qqstring"}]},{token:"constant.language",regex:"null|Infinity|NaN|undefined"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:"punctuation.operator",regex:",",next:"function_arguments"},{token:"text",regex:"\\s+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],function_arguments:[c("function_arguments"),{token:"variable.parameter",regex:s},{token:"punctuation.operator",regex:","},{token:"text",regex:"\\s+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],qqstring:[{token:"constant.language.escape",regex:n},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:n},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},e&&e.noES6||(this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){if(this.next="{"==e?this.nextState:"","{"==e&&n.length)n.unshift("start",t);else if("}"==e&&n.length&&(n.shift(),this.next=n.shift(),-1!=this.next.indexOf("string")||-1!=this.next.indexOf("jsx")))return"paren.quasi.end";return"{"==e?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:n},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]},{token:["variable.parameter","text"],regex:"("+s+")(\\s*)(?=\\=>)"},{token:"paren.lparen",regex:"(\\()(?=.+\\s*=>)",next:"function_arguments"},{token:"variable.language",regex:"(?:(?:(?:Weak)?(?:Set|Map))|Promise)\\b"}),this.$rules.function_arguments.unshift({token:"keyword.operator",regex:"=",next:"default_parameter"},{token:"keyword.operator",regex:"\\.{3}"}),this.$rules.property.unshift({token:"support.function",regex:"(findIndex|repeat|startsWith|endsWith|includes|isSafeInteger|trunc|cbrt|log2|log10|sign|then|catch|finally|resolve|reject|race|any|all|allSettled|keys|entries|isInteger)\\b(?=\\()"},{token:"constant.language",regex:"(?:MAX_SAFE_INTEGER|MIN_SAFE_INTEGER|EPSILON)\\b"}),e&&0==e.jsx||l.call(this)),this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};function l(){var e=s.replace("\\d","\\d\\-"),t={onMatch:function(e,t,n){var o="/"==e.charAt(1)?2:1;return 1==o?(t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++):2==o&&t==this.nextState&&(n[1]--,(!n[1]||n[1]<0)&&(n.shift(),n.shift())),[{type:"meta.tag.punctuation."+(1==o?"":"end-")+"tag-open.xml",value:e.slice(0,o)},{type:"meta.tag.tag-name.xml",value:e.substr(o)}]},regex:"",onMatch:function(e,t,n){return t==n[0]&&n.shift(),2==e.length&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||"start",[{type:this.token,value:e}]},nextState:"jsx"},n,c("jsxAttributes"),{token:"entity.other.attribute-name.xml",regex:e},{token:"keyword.operator.attribute-equals.xml",regex:"="},{token:"text.tag-whitespace.xml",regex:"\\s+"},{token:"string.attribute-value.xml",regex:"'",stateName:"jsx_attr_q",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',stateName:"jsx_attr_qq",push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},t],this.$rules.reference=[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}]}function c(e){return[{token:"comment",regex:/\/\*/,next:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]},{token:"comment",regex:"\\/\\/",next:[i.getTagRule(),{token:"comment",regex:"$|^",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]}]}o.inherits(a,r),t.JavaScriptHighlightRules=a})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./javascript_highlight_rules").JavaScriptHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../worker/worker_client").WorkerClient,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,u=function(){this.HighlightRules=r,this.$outdent=new s,this.$behaviour=new l,this.foldingRules=new c};o.inherits(u,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.$quotes={'"':'"',"'":"'","`":"`"},this.$pairQuotesAfter={"`":/\w/},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),r=i.tokens,s=i.state;if(r.length&&"comment"==r[r.length-1].type)return o;if("start"==e||"no_regex"==e)(a=t.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/))&&(o+=n);else if("doc-start"==e){if("start"==s||"no_regex"==s)return"";var a;(a=t.match(/^\s*(\/?)\*/))&&(a[1]&&(o+=" "),o+="* ")}return o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",(function(t){e.setAnnotations(t.data)})),t.on("terminate",(function(){e.clearAnnotations()})),t},this.$id="ace/mode/javascript",this.snippetFileId="ace/snippets/javascript"}.call(u.prototype),t.Mode=u})),ace.require(["ace/mode/javascript"],(function(t){e&&(e.exports=t)}))},252:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"punctuation.operator",regex:/[,]/},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};o.inherits(r,i),t.JsonHighlightRules=r})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle","ace/worker/worker_client"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./json_highlight_rules").JsonHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("./folding/cstyle").FoldMode,l=e("../worker/worker_client").WorkerClient,c=function(){this.HighlightRules=r,this.$outdent=new s,this.$behaviour=this.$defaultBehaviour,this.foldingRules=new a};o.inherits(c,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t);return"start"==e&&t.match(/^.*[\{\(\[]\s*$/)&&(o+=n),o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new l(["ace"],"ace/mode/json_worker","JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",(function(t){e.setAnnotations(t.data)})),t.on("terminate",(function(){e.clearAnnotations()})),t},this.$id="ace/mode/json"}.call(c.prototype),t.Mode=c})),ace.require(["ace/mode/json"],(function(t){e&&(e.exports=t)}))},711:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@\\w+(?=\\s|$)"},r.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};o.inherits(r,i),r.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},r.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},r.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=r})),ace.define("ace/mode/jsx_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],(function(e,t,n){var o=e("../lib/oop"),i=e("../lib/lang"),r=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,a=function(){var e=i.arrayToMap("break|do|instanceof|typeof|case|else|new|var|catch|finally|return|void|continue|for|switch|default|while|function|this|if|throw|delete|in|try|class|extends|super|import|from|into|implements|interface|static|mixin|override|abstract|final|number|int|string|boolean|variant|log|assert".split("|")),t=i.arrayToMap("null|true|false|NaN|Infinity|__FILE__|__LINE__|undefined".split("|")),n=i.arrayToMap("debugger|with|const|export|let|private|public|yield|protected|extern|native|as|operator|__fake__|__readonly__".split("|")),o="[a-zA-Z_][a-zA-Z0-9_]*\\b";this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},r.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:["storage.type","text","entity.name.function"],regex:"(function)(\\s+)("+o+")"},{token:function(o){return"this"==o?"variable.language":"function"==o?"storage.type":e.hasOwnProperty(o)||n.hasOwnProperty(o)?"keyword":t.hasOwnProperty(o)?"constant.language":/^_?[A-Z][a-zA-Z0-9_]*$/.test(o)?"language.support.class":"identifier"},regex:o},{token:"keyword.operator",regex:"!|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({<]"},{token:"paren.rparen",regex:"[\\])}>]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]},this.embedRules(r,"doc-",[r.getEndRule("start")])};o.inherits(a,s),t.JsxHighlightRules=a})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/jsx",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/jsx_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./jsx_highlight_rules").JsxHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("./folding/cstyle").FoldMode;function l(){this.HighlightRules=r,this.$outdent=new s,this.$behaviour=this.$defaultBehaviour,this.foldingRules=new a}o.inherits(l,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;return i.length&&"comment"==i[i.length-1].type||"start"==e&&t.match(/^.*[\{\(\[]\s*$/)&&(o+=n),o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/jsx"}.call(l.prototype),t.Mode=l})),ace.require(["ace/mode/jsx"],(function(t){e&&(e.exports=t)}))},7:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/python_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){var e=this.createKeywordMapper({"invalid.deprecated":"debugger","support.function":"abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|binfile|bin|iter|property|tuple|bool|filter|len|range|type|bytearray|float|list|raw_input|unichr|callable|format|locals|reduce|unicode|chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|__import__|complex|hash|min|apply|delattr|help|next|setattr|set|buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern|ascii|breakpoint|bytes","variable.language":"self|cls","constant.language":"True|False|None|NotImplemented|Ellipsis|__debug__",keyword:"and|as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|raise|return|try|while|with|yield|async|await|nonlocal"},"identifier"),t="[uU]?",n="[rR]",o="[fF]",i="(?:[rR][fF]|[fF][rR])",r="(?:(?:(?:[1-9]\\d*)|(?:0))|(?:0[oO]?[0-7]+)|(?:0[xX][\\dA-Fa-f]+)|(?:0[bB][01]+))",s="(?:\\d+)",a="(?:(?:"+s+"?(?:\\.\\d+))|(?:"+s+"\\.))",l="(?:(?:(?:"+a+"|"+s+")(?:[eE][+-]?\\d+))|"+a+")",c="\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\abfnrtv'\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})";this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"string",regex:t+'"{3}',next:"qqstring3"},{token:"string",regex:t+'"(?=.)',next:"qqstring"},{token:"string",regex:t+"'{3}",next:"qstring3"},{token:"string",regex:t+"'(?=.)",next:"qstring"},{token:"string",regex:n+'"{3}',next:"rawqqstring3"},{token:"string",regex:n+'"(?=.)',next:"rawqqstring"},{token:"string",regex:n+"'{3}",next:"rawqstring3"},{token:"string",regex:n+"'(?=.)",next:"rawqstring"},{token:"string",regex:o+'"{3}',next:"fqqstring3"},{token:"string",regex:o+'"(?=.)',next:"fqqstring"},{token:"string",regex:o+"'{3}",next:"fqstring3"},{token:"string",regex:o+"'(?=.)",next:"fqstring"},{token:"string",regex:i+'"{3}',next:"rfqqstring3"},{token:"string",regex:i+'"(?=.)',next:"rfqqstring"},{token:"string",regex:i+"'{3}",next:"rfqstring3"},{token:"string",regex:i+"'(?=.)",next:"rfqstring"},{token:"keyword.operator",regex:"\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|%|@|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|="},{token:"punctuation",regex:",|:|;|\\->|\\+=|\\-=|\\*=|\\/=|\\/\\/=|%=|@=|&=|\\|=|^=|>>=|<<=|\\*\\*="},{token:"paren.lparen",regex:"[\\[\\(\\{]"},{token:"paren.rparen",regex:"[\\]\\)\\}]"},{token:["keyword","text","entity.name.function"],regex:"(def|class)(\\s+)([\\u00BF-\\u1FFF\\u2C00-\\uD7FF\\w]+)"},{token:"text",regex:"\\s+"},{include:"constants"}],qqstring3:[{token:"constant.language.escape",regex:c},{token:"string",regex:'"{3}',next:"start"},{defaultToken:"string"}],qstring3:[{token:"constant.language.escape",regex:c},{token:"string",regex:"'{3}",next:"start"},{defaultToken:"string"}],qqstring:[{token:"constant.language.escape",regex:c},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:c},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"start"},{defaultToken:"string"}],rawqqstring3:[{token:"string",regex:'"{3}',next:"start"},{defaultToken:"string"}],rawqstring3:[{token:"string",regex:"'{3}",next:"start"},{defaultToken:"string"}],rawqqstring:[{token:"string",regex:"\\\\$",next:"rawqqstring"},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],rawqstring:[{token:"string",regex:"\\\\$",next:"rawqstring"},{token:"string",regex:"'|$",next:"start"},{defaultToken:"string"}],fqqstring3:[{token:"constant.language.escape",regex:c},{token:"string",regex:'"{3}',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqstring3:[{token:"constant.language.escape",regex:c},{token:"string",regex:"'{3}",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqqstring:[{token:"constant.language.escape",regex:c},{token:"string",regex:"\\\\$",next:"fqqstring"},{token:"string",regex:'"|$',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqstring:[{token:"constant.language.escape",regex:c},{token:"string",regex:"'|$",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqqstring3:[{token:"string",regex:'"{3}',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqstring3:[{token:"string",regex:"'{3}",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqqstring:[{token:"string",regex:"\\\\$",next:"rfqqstring"},{token:"string",regex:'"|$',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqstring:[{token:"string",regex:"'|$",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqstringParRules:[{token:"paren.lparen",regex:"[\\[\\(]"},{token:"paren.rparen",regex:"[\\]\\)]"},{token:"string",regex:"\\s+"},{token:"string",regex:"'[^']*'"},{token:"string",regex:'"[^"]*"'},{token:"function.support",regex:"(!s|!r|!a)"},{include:"constants"},{token:"paren.rparen",regex:"}",next:"pop"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"}],constants:[{token:"constant.numeric",regex:"(?:"+l+"|\\d+)[jJ]\\b"},{token:"constant.numeric",regex:l},{token:"constant.numeric",regex:r+"[lL]\\b"},{token:"constant.numeric",regex:r+"\\b"},{token:["punctuation","function.support"],regex:"(\\.)([a-zA-Z_]+)\\b"},{token:e,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"}]},this.normalizeRules()};o.inherits(r,i),t.PythonHighlightRules=r})),ace.define("ace/mode/folding/pythonic",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("./fold_mode").FoldMode,r=t.FoldMode=function(e){this.foldingStartMarker=new RegExp("([\\[{])(?:\\s*)$|("+e+")(?:\\s*)(?:#.*)?$")};o.inherits(r,i),function(){this.getFoldWidgetRange=function(e,t,n){var o=e.getLine(n).match(this.foldingStartMarker);if(o)return o[1]?this.openingBracketBlock(e,o[1],n,o.index):o[2]?this.indentationBlock(e,n,o.index+o[2].length):this.indentationBlock(e,n)}}.call(r.prototype)})),ace.define("ace/mode/python",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/python_highlight_rules","ace/mode/folding/pythonic","ace/range"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./python_highlight_rules").PythonHighlightRules,s=e("./folding/pythonic").FoldMode,a=e("../range").Range,l=function(){this.HighlightRules=r,this.foldingRules=new s("\\:"),this.$behaviour=this.$defaultBehaviour};o.inherits(l,i),function(){this.lineCommentStart="#",this.$pairQuotesAfter={"'":/[ruf]/i,'"':/[ruf]/i},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;return i.length&&"comment"==i[i.length-1].type||"start"==e&&t.match(/^.*[\{\(\[:]\s*$/)&&(o+=n),o};var e={pass:1,return:1,raise:1,break:1,continue:1};this.checkOutdent=function(t,n,o){if("\r\n"!==o&&"\r"!==o&&"\n"!==o)return!1;var i=this.getTokenizer().getLineTokens(n.trim(),t).tokens;if(!i)return!1;do{var r=i.pop()}while(r&&("comment"==r.type||"text"==r.type&&r.value.match(/^\s+$/)));return!!r&&"keyword"==r.type&&e[r.value]},this.autoOutdent=function(e,t,n){n+=1;var o=this.$getIndent(t.getLine(n)),i=t.getTabString();o.slice(-i.length)==i&&t.remove(new a(n,o.length-i.length,n,o.length))},this.$id="ace/mode/python",this.snippetFileId="ace/snippets/python"}.call(l.prototype),t.Mode=l})),ace.require(["ace/mode/python"],(function(t){e&&(e.exports=t)}))},202:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(e){var t="[_:a-zA-ZÀ-￿][-_:.a-zA-Z0-9À-￿]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+t+")",next:"processing_instruction"},{token:"comment.start.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"",next:"start"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+t+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.end.xml",regex:"--\x3e",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:t},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===r&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(<)("+n+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:t+"start"}]}),this.$rules[n+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(|$))",next:n+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(i.prototype),o.inherits(r,i),t.XmlHighlightRules=r})),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../behaviour").Behaviour,r=e("../../token_iterator").TokenIterator;function s(e,t){return e&&e.type.lastIndexOf(t+".xml")>-1}e("../../lib/lang");var a=function(){this.add("string_dquotes","insertion",(function(e,t,n,o,i){if('"'==i||"'"==i){var a=i,l=o.doc.getTextRange(n.getSelectionRange());if(""!==l&&"'"!==l&&'"'!=l&&n.getWrapBehavioursEnabled())return{text:a+l+a,selection:!1};var c=n.getCursorPosition(),u=o.doc.getLine(c.row).substring(c.column,c.column+1),h=new r(o,c.row,c.column),d=h.getCurrentToken();if(u==a&&(s(d,"attribute-value")||s(d,"string")))return{text:"",selection:[1,1]};if(d||(d=h.stepBackward()),!d)return;for(;s(d,"tag-whitespace")||s(d,"whitespace");)d=h.stepBackward();var p=!u||u.match(/\s/);if(s(d,"attribute-equals")&&(p||">"==u)||s(d,"decl-attribute-equals")&&(p||"?"==u))return{text:a+a,selection:[1,1]}}})),this.add("string_dquotes","deletion",(function(e,t,n,o,i){var r=o.doc.getTextRange(i);if(!i.isMultiLine()&&('"'==r||"'"==r)&&o.doc.getLine(i.start.row).substring(i.start.column+1,i.start.column+2)==r)return i.end.column++,i})),this.add("autoclosing","insertion",(function(e,t,n,o,i){if(">"==i){var a=n.getSelectionRange().start,l=new r(o,a.row,a.column),c=l.getCurrentToken()||l.stepBackward();if(!c||!(s(c,"tag-name")||s(c,"tag-whitespace")||s(c,"attribute-name")||s(c,"attribute-equals")||s(c,"attribute-value")))return;if(s(c,"reference.attribute-value"))return;if(s(c,"attribute-value")){var u=l.getCurrentTokenColumn()+c.value.length;if(a.column/.test(o.getLine(a.row).slice(a.column)))return;for(;!s(c,"tag-name");)if("<"==(c=l.stepBackward()).value){c=l.stepForward();break}var d=l.getCurrentTokenRow(),p=l.getCurrentTokenColumn();if(s(l.stepBackward(),"end-tag-open"))return;var g=c.value;if(d==a.row&&(g=g.substring(0,a.column-p)),this.voidElements.hasOwnProperty(g.toLowerCase()))return;return{text:">",selection:[1,1]}}})),this.add("autoindent","insertion",(function(e,t,n,o,i){if("\n"==i){var s=n.getCursorPosition(),a=o.getLine(s.row),l=new r(o,s.row,s.column),c=l.getCurrentToken();if(c&&-1!==c.type.indexOf("tag-close")){if("/>"==c.value)return;for(;c&&-1===c.type.indexOf("tag-name");)c=l.stepBackward();if(!c)return;var u=c.value,h=l.getCurrentTokenRow();if(!(c=l.stepBackward())||-1!==c.type.indexOf("end-tag"))return;if(this.voidElements&&!this.voidElements[u]){var d=o.getTokenAt(s.row,s.column+1),p=(a=o.getLine(h),this.$getIndent(a)),g=p+o.getTabString();return d&&"-1}(function(){this.getFoldWidget=function(e,t,n){var o=this._getFirstTagInLine(e,n);return o?o.closing||!o.tagName&&o.selfClosing?"markbeginend"===t?"end":"":!o.tagName||o.selfClosing||this.voidElements.hasOwnProperty(o.tagName.toLowerCase())||this._findEndTagInLine(e,n,o.tagName,o.end.column)?"":"start":this.getCommentFoldWidget(e,n)},this.getCommentFoldWidget=function(e,t){return/comment/.test(e.getState(t))&&/"==r.value;break}return o}if(l(r,"tag-close"))return o.selfClosing="/>"==r.value,o;o.start.column+=r.value.length}return null},this._findEndTagInLine=function(e,t,n,o){for(var i=e.getTokens(t),r=0,s=0;s{e=n.nmd(e),ace.define("ace/theme/github-css",["require","exports","module"],(function(e,t,n){n.exports='/* CSS style content from github\'s default pygments highlighter template.\n Cursor and selection styles from textmate.css. */\n.ace-github .ace_gutter {\n background: #e8e8e8;\n color: #AAA;\n}\n\n.ace-github {\n background: #fff;\n color: #000;\n}\n\n.ace-github .ace_keyword {\n font-weight: bold;\n}\n\n.ace-github .ace_string {\n color: #D14;\n}\n\n.ace-github .ace_variable.ace_class {\n color: teal;\n}\n\n.ace-github .ace_constant.ace_numeric {\n color: #099;\n}\n\n.ace-github .ace_constant.ace_buildin {\n color: #0086B3;\n}\n\n.ace-github .ace_support.ace_function {\n color: #0086B3;\n}\n\n.ace-github .ace_comment {\n color: #998;\n font-style: italic;\n}\n\n.ace-github .ace_variable.ace_language {\n color: #0086B3;\n}\n\n.ace-github .ace_paren {\n font-weight: bold;\n}\n\n.ace-github .ace_boolean {\n font-weight: bold;\n}\n\n.ace-github .ace_string.ace_regexp {\n color: #009926;\n font-weight: normal;\n}\n\n.ace-github .ace_variable.ace_instance {\n color: teal;\n}\n\n.ace-github .ace_constant.ace_language {\n font-weight: bold;\n}\n\n.ace-github .ace_cursor {\n color: black;\n}\n\n.ace-github.ace_focus .ace_marker-layer .ace_active-line {\n background: rgb(255, 255, 204);\n}\n.ace-github .ace_marker-layer .ace_active-line {\n background: rgb(245, 245, 245);\n}\n\n.ace-github .ace_marker-layer .ace_selection {\n background: rgb(181, 213, 255);\n}\n\n.ace-github.ace_multiselect .ace_selection.ace_start {\n box-shadow: 0 0 3px 0px white;\n}\n/* bold keywords cause cursor issues for some fonts */\n/* this disables bold style for editor and keeps for static highlighter */\n.ace-github.ace_nobold .ace_line > span {\n font-weight: normal !important;\n}\n\n.ace-github .ace_marker-layer .ace_step {\n background: rgb(252, 255, 0);\n}\n\n.ace-github .ace_marker-layer .ace_stack {\n background: rgb(164, 229, 101);\n}\n\n.ace-github .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-github .ace_gutter-active-line {\n background-color : rgba(0, 0, 0, 0.07);\n}\n\n.ace-github .ace_marker-layer .ace_selected-word {\n background: rgb(250, 250, 255);\n border: 1px solid rgb(200, 200, 250);\n}\n\n.ace-github .ace_invisible {\n color: #BFBFBF\n}\n\n.ace-github .ace_print-margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-github .ace_indent-guide {\n background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;\n}\n\n.ace-github .ace_indent-guide-active {\n background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC") right repeat-y;\n}\n'})),ace.define("ace/theme/github",["require","exports","module","ace/theme/github-css","ace/lib/dom"],(function(e,t,n){t.isDark=!1,t.cssClass="ace-github",t.cssText=e("./github-css"),e("../lib/dom").importCssString(t.cssText,t.cssClass,!1)})),ace.require(["ace/theme/github"],(function(t){e&&(e.exports=t)}))},745:(e,t,n)=>{"use strict";var o=n(137);t.s=o.createRoot,o.hydrateRoot},590:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,o="function"==typeof Set,i="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function r(e,s){if(e===s)return!0;if(e&&s&&"object"==typeof e&&"object"==typeof s){if(e.constructor!==s.constructor)return!1;var a,l,c,u;if(Array.isArray(e)){if((a=e.length)!=s.length)return!1;for(l=a;0!=l--;)if(!r(e[l],s[l]))return!1;return!0}if(n&&e instanceof Map&&s instanceof Map){if(e.size!==s.size)return!1;for(u=e.entries();!(l=u.next()).done;)if(!s.has(l.value[0]))return!1;for(u=e.entries();!(l=u.next()).done;)if(!r(l.value[1],s.get(l.value[0])))return!1;return!0}if(o&&e instanceof Set&&s instanceof Set){if(e.size!==s.size)return!1;for(u=e.entries();!(l=u.next()).done;)if(!s.has(l.value[0]))return!1;return!0}if(i&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(s)){if((a=e.length)!=s.length)return!1;for(l=a;0!=l--;)if(e[l]!==s[l])return!1;return!0}if(e.constructor===RegExp)return e.source===s.source&&e.flags===s.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof s.valueOf)return e.valueOf()===s.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof s.toString)return e.toString()===s.toString();if((a=(c=Object.keys(e)).length)!==Object.keys(s).length)return!1;for(l=a;0!=l--;)if(!Object.prototype.hasOwnProperty.call(s,c[l]))return!1;if(t&&e instanceof Element)return!1;for(l=a;0!=l--;)if(("_owner"!==c[l]&&"__v"!==c[l]&&"__o"!==c[l]||!e.$$typeof)&&!r(e[c[l]],s[c[l]]))return!1;return!0}return e!=e&&s!=s}e.exports=function(e,t){try{return r(e,t)}catch(e){if((e.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw e}}},137:e=>{"use strict";e.exports=require("react-dom")}},t={};function n(o){var i=t[o];if(void 0!==i)return i.exports;var r=t[o]={id:o,loaded:!1,exports:{}};return e[o](r,r.exports,n),r.loaded=!0,r.exports}n.amdD=function(){throw new Error("define cannot be used indirect")},n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),n.p="";var o={};(()=>{"use strict";n.r(o),n.d(o,{Accordion:()=>D,Button:()=>U,ButtonGroup:()=>K,Card:()=>he,Chart:()=>Te,Checkbox:()=>Io,CodeEditor:()=>gr,Collapsible:()=>R,Column:()=>li,Combobox:()=>Sr,Combobox2:()=>Wr,Confirm:()=>St,CopyToClipboard:()=>ut,DatePicker:()=>Zr,Dropdown:()=>Oi,Dropdown2:()=>Zi,EditableList:()=>ha,EditableList2:()=>Na,FieldCodeEditor:()=>ru,FieldCombobox:()=>gu,FieldCombobox2:()=>ju,FieldDatePicker:()=>Xu,FieldDropdown:()=>Cu,FieldEditableList:()=>sh,FieldFileInput:()=>fh,FieldInput:()=>Eh,FieldMultiselect:()=>Ih,FieldPagination:()=>Ru,FieldSelect:()=>Uh,FieldSelectableList:()=>ed,FieldToggle:()=>cd,FileInput:()=>za,FixedWrapper:()=>Ot,FloatingContainer:()=>Pt,FormikCheckbox:()=>Nc,FormikCodeEditor:()=>Ic,FormikCombobox:()=>Pc,FormikCombobox2:()=>Dc,FormikDatePicker:()=>Fc,FormikEditableList:()=>Bc,FormikEditableList2:()=>Wc,FormikFileInput:()=>Hc,FormikInput:()=>jc,FormikInput2:()=>zc,FormikMultiselect:()=>Vc,FormikRadio:()=>Uc,FormikSelect:()=>Gc,FormikSelectableList:()=>Kc,FormikTextarea:()=>qc,FormikToggle:()=>Yc,FormikWrapper:()=>Rc,Icon:()=>g,InfiniteScroller:()=>At,InfoNote:()=>Ft,Input:()=>Qa,Input2:()=>ll,List:()=>jt,Loader:()=>ye,Message:()=>be,Modal:()=>Ct,Multiselect:()=>Cl,NavBar:()=>Vt,Navigation:()=>qt,Pagination:()=>po,Panel:()=>pn,Pill:()=>mn,Radio:()=>Rl,RevealPanel:()=>Nn,Row:()=>yi,Select:()=>jl,SelectableList:()=>Xl,Table:()=>ti,Tabs:()=>eo,TextEllipsis:()=>uo,Textarea:()=>rc,Toggle:()=>bc,Tooltip:()=>lo,setConfig:()=>xc,toast:()=>ot,useComponentSize:()=>C,useEventListener:()=>$,useInterval:()=>ud,usePrevious:()=>me,useTimeout:()=>_e});const e=require("react");var t=n.n(e);const i=require("prop-types");var r=n.n(i);const s=(0,e.createContext)(),a=(0,e.createContext)();var l=Object.defineProperty,c=Object.getOwnPropertySymbols,u=Object.prototype.hasOwnProperty,h=Object.prototype.propertyIsEnumerable,d=(e,t,n)=>t in e?l(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function p(e){var n=e,{className:o,family:i,type:r,weight:s}=n,a=((e,t)=>{var n={};for(var o in e)u.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&c)for(var o of c(e))t.indexOf(o)<0&&h.call(e,o)&&(n[o]=e[o]);return n})(n,["className","family","type","weight"]);return t().createElement("i",((e,t)=>{for(var n in t||(t={}))u.call(t,n)&&d(e,n,t[n]);if(c)for(var n of c(t))h.call(t,n)&&d(e,n,t[n]);return e})({className:function(){const e=i||"fa";return["tyk-icon","fa"!==e&&e,`${e}-${r}`,"fa"===e?`fa-${s||"light"}`:"",o].filter(Boolean).join(" ")}()},a))}p.propTypes={className:r().string,family:r().string,type:r().string.isRequired};const g=p;function m({wrap:n}){const{collapsed:o,disabled:i,toggleChange:r}=(0,e.useContext)(a),s=o?"chevron-down":"chevron-up",l=["tyk-accordion__trigger",i&&"tyk-accordion__trigger--disabled"].filter(Boolean).join(" "),c=t().createElement("button",{className:l,onClick:r,type:"button","aria-label":"collapse/expand"},t().createElement(g,{className:"collapsable__arrow",type:s}));return n?t().createElement("div",{className:"tyk-accordion__trigger-wrapper"},c):c}m.propTypes={wrap:r().bool};const f=m;function y({collapsed:n,children:o,className:i,disabled:r},l){const{arrow:c}=(0,e.useContext)(s),[u,h]=(0,e.useState)(n),d=()=>{r||h(!u)},p=(0,e.useMemo)((()=>["tyk-accordion__item",c.expandToContent?`tyk-accordion__item--trigger-position-${c.position}`:"tyk-accordion__item--trigger-in-header",i,!1===u&&"tyk-accordion__item--active"].filter(Boolean).join(" ")),[c,i,u]),g=(0,e.useMemo)((()=>({collapsed:u,disabled:r,toggleChange:d})),[u,r,d]);return t().createElement("div",{ref:l,className:p},t().createElement(a.Provider,{value:g},c.expandToContent&&t().createElement(f,{wrap:!0}),o))}y.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),collapsed:r().bool,className:r().string,disabled:r().bool},y.defaultProps={collapsed:!1};const v=(0,e.forwardRef)(y);function b({className:n,children:o}){const{collapsed:i,disabled:r,toggleChange:l}=(0,e.useContext)(a),{usearrowastrigger:c,arrow:u}=(0,e.useContext)(s),h=i?"chevron-down":"chevron-up",d=["tyk-accordion__item-header",c&&"tyk-accordion__arrow-trigger",n].filter(Boolean).join(" ");return t().createElement("div",{className:d},c?t().createElement(t().Fragment,null,!u.expandToContent&&"left"===u.position&&t().createElement(f,null),t().createElement("div",null,o),!u.expandToContent&&"right"===u.position&&t().createElement(f,null)):t().createElement("button",{className:r?"tyk-accordion__trigger--disabled":"",onClick:l,type:"button"},t().createElement("span",null,o),t().createElement(g,{className:"collapsable__arrow",type:h})))}b.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string};const w=b,x=require("react-transition-group"),k=e=>e?{width:e.offsetWidth,height:e.offsetHeight}:{width:0,height:0},C=t=>{const[n,o]=(0,e.useState)(k(t?t.current:{})),i=(0,e.useCallback)((()=>{t.current&&o(k(t.current))}),[t]);return(0,e.useLayoutEffect)((()=>{i();let e=new ResizeObserver((()=>{i()}));return e.observe(t.current),()=>{e.disconnect(t.current),e=null}}),[t.current]),n},$=(t,n,o)=>{const i=(0,e.useRef)();(0,e.useEffect)((()=>{i.current=n}),[n]),(0,e.useEffect)((()=>{if(!(null==o?void 0:o.addEventListener))return;const e=e=>i.current(e);return o.addEventListener(t,e),()=>{o.removeEventListener(t,e)}}),[t,o])};var S=Object.defineProperty,E=Object.defineProperties,O=Object.getOwnPropertyDescriptors,T=Object.getOwnPropertySymbols,A=Object.prototype.hasOwnProperty,_=Object.prototype.propertyIsEnumerable,L=(e,t,n)=>t in e?S(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function M(n){var o=n,{className:i,collapsed:r,children:s}=o,a=((e,t)=>{var n={};for(var o in e)A.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&T)for(var o of T(e))t.indexOf(o)<0&&_.call(e,o)&&(n[o]=e[o]);return n})(o,["className","collapsed","children"]);const l=(0,e.useRef)(null),c=(0,e.useRef)(null),u=C(l),[h,d]=(0,e.useState)({height:r?0:"auto"}),p=e=>{d({height:`${e}px`})},g=()=>l.current?l.current.clientHeight:0;(0,e.useEffect)((()=>{!r&&(null==u?void 0:u.height)&&h.height!==(null==u?void 0:u.height)&&p(u.height)}),[u.height]);const m=(0,e.useCallback)((()=>{!r&&l.current&&(p(g()),c.current.style.height=`${g()}px`)}),[r,l.current]);return $("resize",m,window),t().createElement(x.CSSTransition,{onEnter:()=>{p(g())},onExit:()=>{p(0)},in:!r,timeout:0,classNames:"collapse"},t().createElement("div",{className:"collapse-wrapper",ref:c,style:h},t().createElement("div",(f=((e,t)=>{for(var n in t||(t={}))A.call(t,n)&&L(e,n,t[n]);if(T)for(var n of T(t))_.call(t,n)&&L(e,n,t[n]);return e})({},a),E(f,O({className:i,ref:l}))),s)));var f}M.propTypes={children:r().oneOfType([r().element,r().node,r().string]),collapsed:r().bool,className:r().string};const R=M;function N({children:n,className:o}){const{collapsed:i}=(0,e.useContext)(a),r=["tyk-accordion__item-content",o].filter(Boolean).join(" ");return t().createElement("div",{className:r},t().createElement(R,{collapsed:i},n))}N.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string};const I=N;function P({className:n,children:o,usearrowastrigger:i,arrow:r={position:"right",expandToContent:!1}}){const a=["tyk-accordion",n].filter(Boolean).join(" "),l=(0,e.useMemo)((()=>({usearrowastrigger:i,arrow:r})),[i,r]);return t().createElement("div",{className:a},t().createElement(s.Provider,{value:l},o))}P.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,usearrowastrigger:r().bool,arrow:r().shape({position:r().oneOf(["left","right"]),expandToContent:r().bool})},P.defaultProps={usearrowastrigger:!1},P.Item=v,P.Item.Header=w,P.Item.Content=I;const D=P;var F=Object.defineProperty,B=Object.getOwnPropertySymbols,W=Object.prototype.hasOwnProperty,H=Object.prototype.propertyIsEnumerable,j=(e,t,n)=>t in e?F(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,z=(e,t)=>{for(var n in t||(t={}))W.call(t,n)&&j(e,n,t[n]);if(B)for(var n of B(t))H.call(t,n)&&j(e,n,t[n]);return e};function V(n,o){const i=n,{customButton:r,children:s,iconType:a,iconFamily:l,iconPosition:c,iconOnly:u,id:h,className:d,disabled:p,display:m,href:f,onClick:y,noStyle:v,size:b,theme:w,type:x}=i,k=((e,t)=>{var n={};for(var o in e)W.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&B)for(var o of B(e))t.indexOf(o)<0&&H.call(e,o)&&(n[o]=e[o]);return n})(i,["customButton","children","iconType","iconFamily","iconPosition","iconOnly","id","className","disabled","display","href","onClick","noStyle","size","theme","type"]),C=()=>{const e=["tyk-button"].concat(d?d.split(" "):[]),t=b?`tyk-button--${b}`:"tyk-button--md",n=p?"disabled":"",o=m||"",i=w?`tyk-button--${w}`:"",r=u?"tyk-button--icon-only":"",s=v?"tyk-button--no-style":"";return e.push(r),e.push(i),e.push(t),e.push(n),e.push(o),e.push(s),a&&e.push(`icon-${c||"left"}`),e.join(" ")},$=e=>a&&(c||"left")===e?t().createElement(g,{family:l,type:a}):null;return(()=>{let n;return r?t().createElement(t().Fragment,null,(0,e.cloneElement)(r,{className:C(),disabled:p})):(n=f?t().createElement("a",z({id:h,className:C(),disabled:p,onClick:y,href:f,ref:o},k),$("left"),s,$("right")):t().createElement("button",z({id:h,className:C(),disabled:p,onClick:y,type:x||"button",ref:o},k),$("left"),s&&t().createElement("span",null,s),$("right")),n)})()}V.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),customButton:r().oneOfType([r().arrayOf(r().node),r().node,r().element]),className:r().string,display:r().string,disabled:r().bool,id:r().string,href:r().string,iconPosition:r().string,iconFamily:r().string,iconOnly:r().bool,iconType:r().string,noStyle:r().bool,onClick:r().func,theme:r().string,type:r().string,size:r().string},V.defaultProps={theme:"",type:"button"};const U=(0,e.forwardRef)(V);function G({className:e,children:n,label:o},i){return t().createElement("div",{ref:i,className:`tyk-button-group__wrapper ${e}`},Boolean(o)&&t().createElement("label",null,o),t().createElement("div",{className:"tyk-button-group"},n))}G.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string.isRequired,label:r().string.isRequired};const K=(0,e.forwardRef)(G);function q({right:e=null,children:n}){return t().createElement("div",{className:"tyk-card__header"},n&&t().createElement("div",{className:"tyk-card__header-content"},n),e&&t().createElement("div",{className:"tyk-card__header-right"},e))}q.propTypes={right:r().oneOfType([r().element,r().node,r().string]),children:r().oneOfType([r().element,r().node,r().string])};const Y=q;function J({align:e="top",children:n}){return t().createElement("div",{className:`tyk-card__body tyk-card__body--align-${e}`},t().createElement("div",null,n))}J.propTypes={align:r().oneOf(["top","center","bottom"]),children:r().oneOfType([r().element,r().node,r().string])};const X=J;function Q({children:e}){return t().createElement("div",{className:"tyk-card__footer"},e)}Q.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const Z=Q;function ee({maxLines:e=1,children:n}){return t().createElement("h4",{className:`tyk-card__title tyk-card__title--max-${e}-lines`},n)}ee.propTypes={maxLines:r().number,children:r().oneOfType([r().element,r().node,r().string])};const te=ee;function ne({children:e}){return t().createElement("div",{className:"tyk-card__title-group"},e)}ne.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const oe=ne;function ie({children:e}){return t().createElement("h5",{className:"tyk-card__sub-title"},e)}ie.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const re=ie;function se({maxLines:e=2,children:n}){return t().createElement("p",{className:`tyk-card__summary tyk-card__summary--max-${e}-lines`},n)}se.propTypes={maxLines:r().number,children:r().oneOfType([r().element,r().node,r().string])};const ae=se;function le({children:e}){return t().createElement("div",{className:"tyk-card__title-icon"},e)}le.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const ce=le;function ue({className:e="",height:n="auto",children:o}){return t().createElement("div",{style:{height:n},className:`tyk-card ${e}`},o)}ue.propTypes={className:r().string,height:r().oneOfType([r().number,r().string]),children:r().oneOfType([r().element,r().node,r().string])},ue.Header=Y,ue.Body=X,ue.Footer=Z,ue.Title=te,ue.TitleGroup=oe,ue.Icon=ce,ue.SubTitle=re,ue.Summary=ae;const he=ue,de=require("echarts"),pe=require("immutable"),ge=(e,t,n)=>{let o;return function(...i){const r=this,s=n&&!o;clearTimeout(o),o=setTimeout((()=>{o=null,n||e.apply(r,i)}),t),s&&e.apply(r,i)}},me=t=>{const n=(0,e.useRef)();return(0,e.useEffect)((()=>{n.current=t}),[t]),n.current};function fe({className:e,position:n="relative",withbackground:o=!1}){const i=["loading",n,e].filter(Boolean).join(" "),r=t().createElement("div",{className:i},t().createElement("div",{className:"loading-bar"}),t().createElement("div",{className:"loading-bar"}),t().createElement("div",{className:"loading-bar"}),t().createElement("div",{className:"loading-bar"}));return o?t().createElement("div",{className:"tyk-loading__wrapper"},r):r}fe.propTypes={className:r().string,position:r().string,withbackground:r().bool};const ye=fe;function ve({children:e,theme:n,onClose:o,noMargin:i,className:r}){const s="success"===n?"check":"warning";return t().createElement("div",{className:["tyk-message",`tyk-message--${n||"info"}`,i&&"no-margin",r].filter(Boolean).join(" ")},t().createElement(g,{family:"tykon",type:s}),t().createElement("div",{className:"tyk-message__content"},e),o&&t().createElement(g,{family:"tykon",type:"x",onClick:o}))}ve.propTypes={theme:r().string,children:r().oneOfType([r().element,r().node,r().string]),className:r().string,noMargin:r().bool,onClose:r().func};const be=ve,we=JSON.parse('{"type":"FeatureCollection","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:OGC:1.3:CRS84"}},"features":[{"geometry":{"type":"Polygon","coordinates":[[[47.97822265625001,7.9970703125],[46.97822265625001,7.9970703125],[43.98378906250002,9.008837890624989],[43.482519531250006,9.379492187499991],[43.181640625,9.879980468749991],[42.84160156250002,10.203076171874997],[42.65644531250001,10.6],[42.92275390625002,10.999316406249989],[43.24599609375002,11.499804687499989],[43.85273437500001,10.784277343749991],[44.38652343750002,10.430224609374989],[44.94296875,10.43671875],[45.81669921875002,10.835888671874997],[46.565039062500006,10.745996093749994],[47.40498046875001,11.174023437499997],[48.01923828125001,11.139355468749997],[48.57255859375002,11.320507812499997],[48.938574218750006,11.258447265624994],[50.11005859375001,11.529296875],[50.79228515625002,11.983691406249989],[51.2548828125,11.830712890624994],[51.08427734375002,11.335644531249997],[51.140625,10.656884765624994],[51.031835937500006,10.444775390624997],[51.19296875,10.554638671874997],[51.390234375,10.422607421875],[50.93007812500002,10.33554687499999],[50.825,9.428173828124997],[50.10283203125002,8.199804687499991],[49.85205078125,7.962548828124994],[49.234960937500006,6.77734375],[49.04931640625,6.173632812499989],[47.97529296875001,4.497021484374997],[46.87880859375002,3.28564453125],[46.05117187500002,2.475146484374989],[44.92021484375002,1.81015625],[43.71757812500002,0.857861328124997],[41.97988281250002,-0.973046875],[41.53271484375,-1.6953125],[41.521875,-1.572265625],[41.42695312500001,-1.449511718750003],[41.24980468750002,-1.220507812500003],[40.97871093750001,-0.870312500000011],[40.964453125,2.814648437499997],[41.341796875,3.20166015625],[41.61347656250001,3.590478515624994],[41.88398437500001,3.977734375],[41.91533203125002,4.031298828124989],[42.02412109375001,4.137939453125],[42.85664062500001,4.32421875],[43.12568359375001,4.644482421874997],[43.58349609375,4.85498046875],[43.988867187500006,4.950537109374991],[44.940527343750006,4.912011718749994],[47.97822265625001,7.9970703125]]]},"properties":{"name":"Somalia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[9.579979133936737,47.05856388629306],[9.409458596647225,47.02019676540292],[9.46249431093294,47.09010747968864],[9.46249431093294,47.19858962254578],[9.527658197470123,47.27026989773668],[9.579979133936737,47.05856388629306]]]},"properties":{"name":"Liechtenstein","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-8.683349609375,27.77800740805682],[-13.038761787013554,27.81190166624856],[-12.948925781249926,27.914160156250034],[-11.552685546874955,28.31010742187496],[-10.486474609374994,29.06494140625],[-10.200585937499994,29.380371093750057],[-9.667089843749949,30.10927734375005],[-9.652929687499977,30.447558593750045],[-9.875488281249943,30.717919921874966],[-9.80869140624992,31.42460937499996],[-9.347460937499932,32.086376953124955],[-9.245849609375,32.572460937499955],[-8.512841796874994,33.25244140625003],[-6.900976562499949,33.96904296874999],[-6.353125,34.77607421875001],[-5.924804687499943,35.78579101562502],[-5.277832031249943,35.90273437500002],[-5.252685546874972,35.61474609374997],[-4.628320312499966,35.206396484375006],[-4.329980468749937,35.161474609375006],[-3.693261718749994,35.27998046874998],[-3.394726562499926,35.21181640625005],[-2.972216796874989,35.40727539062499],[-2.839941406249949,35.127832031249994],[-2.731396484374955,35.13520507812498],[-2.636816406249977,35.11269531250002],[-2.423730468749994,35.12348632812498],[-2.219628906249966,35.10419921874998],[-1.795605468749926,34.751904296874955],[-1.67919921875,33.31865234375002],[-1.550732421874955,33.073583984375006],[-1.510009765625,32.877636718749955],[-1.45,32.784814453124966],[-1.352148437499977,32.70336914062497],[-1.29638671875,32.67568359375002],[-1.188232421875,32.608496093750006],[-1.111035156249983,32.55229492187502],[-1.065527343749949,32.46831054687496],[-1.16259765625,32.399169921875],[-1.275341796874983,32.089013671874966],[-2.863427734374937,32.07470703124997],[-2.930859374999926,32.04252929687499],[-2.988232421874983,31.874218749999983],[-3.01738281249996,31.834277343750017],[-3.439794921874949,31.704541015624983],[-3.604589843749949,31.686767578125],[-3.700244140624989,31.70009765625005],[-3.768164062499977,31.689550781250034],[-3.837109374999983,31.512353515624994],[-3.833398437499937,31.197802734375045],[-3.626904296874955,31.000927734374983],[-4.148779296874977,30.8095703125],[-4.322851562500006,30.698876953124994],[-4.52915039062492,30.62553710937499],[-4.778515624999926,30.552392578124994],[-4.968261718749943,30.465380859375045],[-5.061914062499937,30.326416015625057],[-5.180126953124955,30.166162109374994],[-5.293652343749983,30.058642578125045],[-5.44877929687496,29.956933593750023],[-6.00429687499999,29.83125],[-6.479736328124943,29.82036132812499],[-6.520556640624989,29.659863281249983],[-6.59775390624992,29.578955078125006],[-6.635351562499949,29.568798828124983],[-6.755126953125,29.583837890625034],[-6.855566406249949,29.601611328125017],[-7.142431640624949,29.61958007812504],[-7.427685546874983,29.425],[-7.485742187499994,29.392236328124994],[-8.659912109375,28.718603515625063],[-8.683349609375,27.900390625],[-8.683349609375,27.77800740805682]]]},"properties":{"name":"Morocco","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-13.038761787013554,27.81190166624856],[-8.683349609375,27.77800740805682],[-8.683349609375,27.65644531250004],[-8.817822265624955,27.65644531250004],[-8.817822265624951,27.656445312499997],[-8.683349609375,27.656445312499997],[-8.683349609375,27.2859375],[-8.682861328125,26.921337890624997],[-8.6826171875,26.72314453125],[-8.682324218749983,26.497705078124994],[-8.68212890625,26.273193359375],[-8.68212890625,26.10947265625],[-8.682226562499977,25.995507812499994],[-12.016308593749983,25.995410156250003],[-12.016308593749983,25.740136718749994],[-12.016308593749983,25.331689453124994],[-12.016308593749983,25.059375],[-12.016308593749983,24.923242187499994],[-12.016308593749983,24.378662109375],[-12.016308593749983,23.97021484375],[-12.0234375,23.467578125],[-12.372900390624977,23.318017578124994],[-12.559375,23.290820312500003],[-12.620410156249989,23.27133789062499],[-13.031494140625,23.000244140625],[-13.153271484374983,22.820507812499997],[-13.12702845982141,22.703770926339278],[-13.136540684091575,22.708182548616723],[-13.094335937499977,22.495996093749994],[-13.051220703124983,21.854785156250003],[-13.041748046875,21.713818359374997],[-13.0322265625,21.572070312500003],[-13.025097656249983,21.466796875],[-13.016210937499977,21.333935546874997],[-15.231201171875,21.331298828125],[-16.964550781249983,21.329248046874994],[-17.06396484375,20.89882812499999],[-17.048046874999983,20.80615234375],[-17.098779296874994,20.856884765624997],[-16.930859374999983,21.9],[-16.35874023437495,22.594531250000045],[-16.21025390624999,23.097900390625],[-15.789257812499926,23.792871093750023],[-15.980712890624943,23.670312500000023],[-15.899316406249966,23.844433593749955],[-14.904296875000028,24.719775390625017],[-14.794921874999943,25.404150390625006],[-14.413867187499932,26.25371093749999],[-13.57578125,26.735107421875],[-13.175976562499983,27.655712890624983],[-13.038761787013554,27.81190166624856]],[[-8.774365234374983,27.460546875],[-8.794873046874983,27.120703125000034],[-8.794873046874983,27.120703125],[-8.774365234374983,27.460546875]]]},"properties":{"name":"W. Sahara","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[21.5625,42.247509765625],[21.560839843750017,42.24765625],[21.389550781250023,42.21982421875],[21.28662109375,42.100390625],[21.05976562500001,42.171289062499994],[20.778125,42.071044921875],[20.725,41.87353515625],[20.566210937500017,41.873681640624994],[20.485449218750006,42.223388671875],[20.06396484375,42.54726562499999],[20.054296875,42.760058593749996],[20.344335937500006,42.827929687499996],[20.40996305279786,42.84373166741877],[20.344335937500063,42.82792968750002],[19.670996093750006,43.163964843749994],[19.21875,43.449951171875],[19.196484375000068,43.48500976562502],[19.19160156250004,43.52104492187499],[19.19433593749997,43.533300781250006],[19.495117187500057,43.642871093750045],[19.245019531249994,43.96503906250004],[19.583789062500017,44.04345703125003],[19.118457031250074,44.359960937500006],[19.348632812500057,44.88090820312502],[19.007128906250045,44.86918945312502],[19.062890625000023,45.13720703125],[19.4,45.2125],[19.004687500000074,45.39951171875006],[19.064257812500045,45.51499023437506],[18.839062499999983,45.83574218750002],[18.905371093750006,45.931738281250034],[19.421289062500023,46.064453125],[19.61347656250001,46.169189453125],[19.84443359375001,46.145898437499966],[19.934082031250057,46.161474609375034],[20.161425781250017,46.14189453124996],[20.210156250000068,46.12602539062502],[20.241796875000034,46.10859375000001],[20.301367187500006,46.05068359375002],[20.35859375000004,45.975488281249994],[20.581152343749977,45.86948242187506],[20.65273437499999,45.779394531250006],[20.709277343750074,45.735253906249994],[20.727832031250017,45.73740234374998],[20.746875,45.74897460937501],[20.76015625000005,45.75810546875002],[20.775,45.74980468750002],[20.794042968750006,45.467871093750034],[21.431445312500017,45.192529296874994],[21.465429687500006,45.171875],[21.357031250000034,44.99077148437502],[21.532324218750063,44.900683593750045],[21.519921875000023,44.88081054687498],[21.442187500000074,44.87338867187498],[21.384375,44.87006835937501],[21.357910156250057,44.86181640625003],[21.36005859375004,44.82666015624997],[21.52314453125004,44.79008789062499],[21.63613281250005,44.71044921875],[21.909277343750034,44.666113281250034],[22.026953125,44.61987304687503],[22.093066406250074,44.541943359374955],[22.200976562500017,44.560693359374966],[22.350683593750063,44.676123046875034],[22.497656249999977,44.70625],[22.64208984375,44.65097656249998],[22.720898437499983,44.605517578125045],[22.734375,44.56992187499998],[22.700781250000063,44.55551757812498],[22.620117187500057,44.562353515625034],[22.554003906250017,44.54033203124999],[22.49453125000005,44.43544921875002],[22.687890625000023,44.248291015625],[22.42080078125005,44.00742187500006],[22.399023437500063,43.96953125],[22.36542968750004,43.86210937500002],[22.36962890625003,43.78129882812499],[22.55458984375005,43.45449218750002],[22.767578125,43.35415039062502],[22.81972656250005,43.300732421874955],[22.85957031250001,43.252343749999966],[22.97685546874999,43.18798828125],[22.799902343750006,42.985742187499994],[22.706152343750006,42.88393554687505],[22.466796875,42.842480468749955],[22.53242187500004,42.48120117187497],[22.523535156250006,42.440966796875045],[22.44570312500005,42.35913085937497],[22.42207031250004,42.32885742187503],[22.344042968750045,42.31396484375003],[22.23974609375003,42.303110028468716],[21.81464843750001,42.303125],[21.5625,42.24750976562498],[21.5625,42.247509765625]]]},"properties":{"name":"Serbia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[74.54140625000002,37.02216796875],[74.03886718750002,36.825732421874996],[73.116796875,36.868554687499994],[72.24980468750002,36.734716796875],[71.23291015625,36.12177734375],[71.18505859375,36.04208984375],[71.57197265625001,35.546826171875],[71.62050781250002,35.183007812499994],[70.965625,34.53037109375],[71.095703125,34.369433593749996],[71.05156250000002,34.049707031249994],[70.65400390625001,33.952294921874994],[69.8896484375,34.007275390625],[70.26113281250002,33.289013671875],[69.5015625,33.020068359374996],[69.24140625000001,32.433544921875],[69.279296875,31.936816406249996],[68.86894531250002,31.634228515624997],[68.59765625,31.802978515625],[68.16103515625002,31.802978515625],[67.57822265625,31.506494140624994],[67.737890625,31.343945312499997],[67.45283203125001,31.234619140625],[66.82929687500001,31.263671875],[66.346875,30.802783203124996],[66.23125,29.86572265625],[65.09550781250002,29.559472656249994],[64.39375,29.544335937499994],[64.09873046875,29.391943359375],[63.56757812500001,29.497998046874997],[62.4765625,29.408349609374994],[62.0009765625,29.530419921874994],[61.22441406250002,29.749414062499994],[60.843359375,29.858691406249996],[61.331640625,30.363720703124997],[61.55947265625002,30.599365234375],[61.7841796875,30.831933593749994],[61.81083984375002,30.91328125],[61.81425781250002,31.072558593749996],[61.75507812500001,31.285302734374994],[61.66015625,31.382421875],[61.34648437500002,31.421630859375],[61.11074218750002,31.451123046874997],[60.854101562500006,31.483251953125],[60.82070312500002,31.495166015624996],[60.791601562500006,31.660595703124997],[60.804296875,31.73447265625],[60.7875,31.877197265625],[60.78994140625002,31.987109375],[60.827246093750006,32.16796875],[60.82929687500001,32.249414062499994],[60.71044921875,32.6],[60.57656250000002,32.994873046875],[60.560546875,33.137841796874994],[60.9169921875,33.505224609375],[60.573828125,33.588330078125],[60.4859375,33.7119140625],[60.48574218750002,34.094775390624996],[60.642675781250006,34.307177734374996],[60.88945312500002,34.31943359375],[60.80390625000001,34.418017578124996],[60.76259765625002,34.475244140624994],[60.73613281250002,34.491796875],[60.72626953125001,34.51826171875],[60.73945312500001,34.544726562499996],[60.80234375,34.554638671875],[60.8453125,34.587695312499996],[60.91474609375001,34.633984375],[60.951171875,34.653857421874996],[61.080078125,34.855615234374994],[61.1,35.272314453125],[61.18925781250002,35.31201171875],[61.24550781250002,35.474072265625],[61.27851562500001,35.51376953125],[61.281835937500006,35.55341796875],[61.26201171875002,35.619580078125],[61.3447265625,35.6294921875],[61.62099609375002,35.43232421875],[62.08964843750002,35.3796875],[62.30781250000001,35.170800781249994],[62.688085937500006,35.255322265625],[63.056640625,35.44580078125],[63.08417968750001,35.56806640625],[63.16972656250002,35.678125],[63.129980468750006,35.84619140625],[63.8625,36.012353515624994],[64.184375,36.14892578125],[64.51103515625002,36.340673828125],[64.56582031250002,36.427587890625],[64.6025390625,36.554541015625],[64.78242187500001,37.05927734375],[64.81630859375002,37.132080078125],[64.95156250000002,37.1935546875],[65.08964843750002,37.237939453124994],[65.30361328125002,37.24677734375],[65.55498046875002,37.251171875],[65.76503906250002,37.569140625],[66.471875,37.3447265625],[66.52226562500002,37.348486328125],[66.827734375,37.3712890625],[67.06884765625,37.334814453125],[67.19550781250001,37.235205078125],[67.31972656250002,37.2095703125],[67.44169921875002,37.2580078125],[67.51728515625001,37.266650390624996],[67.546484375,37.235644531249996],[67.607421875,37.222509765625],[67.7,37.22724609375],[67.7529296875,37.1998046875],[67.75898437500001,37.172216796875],[67.76601562500002,37.14013671875],[67.83447265625,37.064208984375],[67.9580078125,36.972021484375],[68.06777343750002,36.9498046875],[68.26093750000001,37.013085937499994],[68.284765625,37.036328125],[68.29951171875001,37.088427734374996],[68.38691406250001,37.1375],[68.66914062500001,37.2583984375],[68.7232421875,37.268017578125],[68.78203125000002,37.2580078125],[68.82373046875,37.270703125],[68.8384765625,37.30283203125],[68.85537109375002,37.316845703125],[68.88525390625,37.328076171875],[68.91181640625001,37.333935546875],[68.96044921875,37.325048828125],[69.18017578125,37.15830078125],[69.26484375000001,37.1083984375],[69.30390625000001,37.116943359375],[69.35380859375002,37.150048828124994],[69.41445312500002,37.207763671875],[69.4296875,37.290869140625],[69.39921875000002,37.399316406249994],[69.42011718750001,37.48671875],[69.49208984375002,37.553076171875],[69.62578125000002,37.594042968749996],[69.8208984375,37.6095703125],[69.9849609375,37.566162109375],[70.18867187500001,37.582470703125],[70.25146484375,37.66416015625],[70.25498046875,37.765380859375],[70.19941406250001,37.886035156249996],[70.21464843750002,37.9244140625],[70.41777343750002,38.075439453125],[70.7359375,38.42255859375],[71.255859375,38.306982421875],[71.33271484375001,38.170263671875],[71.27851562500001,37.918408203125],[71.319921875,37.90185546875],[71.3896484375,37.906298828124996],[71.48779296875,37.931884765625],[71.55195312500001,37.933154296874996],[71.58222656250001,37.910107421875],[71.43291015625002,37.1275390625],[71.530859375,36.845117187499994],[71.665625,36.696923828124994],[72.65742187500001,37.029052734375],[72.8955078125,37.267529296875],[73.21113281250001,37.408496093749996],[73.38291015625,37.462255859375],[73.48134765625002,37.4716796875],[73.60468750000001,37.446044921875],[73.65712890625002,37.43046875],[73.72060546875002,37.41875],[73.73378906250002,37.37578125],[73.71728515625,37.329443359375],[73.6275390625,37.261572265625],[73.65351562500001,37.23935546875],[73.749609375,37.231787109375],[74.16708984375,37.329443359375],[74.20351562500002,37.372460937499994],[74.25966796875002,37.415429687499994],[74.659375,37.394482421875],[74.73056640625,37.35703125],[74.83046875000002,37.2859375],[74.89130859375001,37.231640625],[74.84023437500002,37.225048828125],[74.76738281250002,37.249169921874994],[74.73896484375001,37.28564453125],[74.72666015625,37.29072265625],[74.6689453125,37.26669921875],[74.55898437500002,37.236621093749996],[74.37216796875,37.15771484375],[74.37617187500001,37.137353515624994],[74.49794921875002,37.0572265625],[74.52646484375,37.030664062499994],[74.54140625000002,37.02216796875]]]},"properties":{"name":"Afghanistan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[17.57958984375,-8.099023437500009],[17.643359375000017,-8.090722656250009],[18.00878906250003,-8.107617187499983],[18.56269531250001,-7.9359375],[18.944433593750063,-8.001464843750028],[19.142675781250034,-8.001464843750028],[19.34082031249997,-7.966601562500031],[19.369921875000045,-7.706542968749986],[19.371679687500063,-7.655078124999989],[19.47988281250008,-7.472167968750028],[19.48378906250008,-7.279492187500026],[19.527636718750017,-7.144433593749952],[19.87519531250004,-6.986328124999986],[19.99746093750008,-6.976464843750023],[20.190039062500063,-6.9462890625],[20.482226562500074,-6.915820312500017],[20.59003906250001,-6.919921874999957],[20.598730468750006,-6.935156249999949],[20.536914062500045,-7.121777343749955],[20.535839843749983,-7.182812499999955],[20.558398437500045,-7.244433593749989],[20.60781250000008,-7.277734375000023],[20.910937500000017,-7.281445312499983],[21.190332031250023,-7.284960937499989],[21.751074218750034,-7.305468749999989],[21.80605468750005,-7.32861328125],[21.905371093750034,-8.693359374999943],[21.813183593750068,-9.46875],[22.19775390625,-10.040625],[22.30703125000005,-10.691308593750023],[22.203515625000023,-10.829492187500009],[22.226171875,-11.121972656250009],[22.27880859375,-11.19414062499996],[22.314941406250057,-11.198632812499994],[22.39296875000005,-11.159472656250003],[22.486132812500045,-11.086718750000017],[22.56103515625003,-11.05585937500004],[22.814746093750017,-11.08027343750004],[23.076269531250006,-11.087890624999986],[23.463964843750034,-10.969335937499991],[23.83388671875008,-11.013671874999972],[23.96650390625001,-10.871777343750011],[23.98388671875,-11.725],[23.909375,-12.636132812500009],[23.886523437500045,-12.743261718749991],[23.882421875,-12.799023437499983],[23.968066406250045,-12.956933593749994],[23.962988281250006,-12.988476562500026],[23.843164062500023,-13.0009765625],[22.209570312500006,-13.0009765625],[21.97890625000008,-13.0009765625],[21.979101562500034,-13.798730468749994],[21.979296875000074,-14.11962890625],[21.979394531249994,-14.440527343750006],[21.97978515624999,-15.955566406250014],[22.193945312500006,-16.628125],[23.380664062500017,-17.640625],[22.32421875,-17.8375],[20.74550781250008,-18.019726562499983],[20.194335937500057,-17.86367187499999],[18.95527343750004,-17.80351562499999],[18.39638671875005,-17.3994140625],[16.14843750000003,-17.39023437499999],[14.017480468750023,-17.40888671874997],[13.475976562500023,-17.04003906249997],[13.179492187500017,-16.971679687499986],[12.548144531250017,-17.212695312499974],[12.35927734375008,-17.205859375],[12.318457031250006,-17.21337890625003],[12.213378906250028,-17.209960937500043],[12.013964843750074,-17.168554687500034],[11.902539062500011,-17.226562499999957],[11.743066406250023,-17.24921875000004],[11.780078125000017,-16.87128906249997],[11.818945312500034,-16.704101562500014],[11.750878906250023,-15.831933593749966],[12.016113281250057,-15.513671874999957],[12.55048828125004,-13.437792968750003],[12.983203124999989,-12.775683593750017],[13.4169921875,-12.52041015624998],[13.597949218750017,-12.286132812500028],[13.785351562499983,-11.81279296874996],[13.833593750000063,-10.9296875],[13.33222656250004,-9.998925781250009],[12.99853515625,-9.048046875],[13.358984375,-8.687207031250026],[13.378515625000063,-8.369726562500006],[12.82343750000004,-6.954785156249955],[12.283300781250063,-6.12431640624996],[13.184375,-5.85625],[13.346484375000017,-5.863378906250006],[13.978515625,-5.857226562500003],[16.315234375000074,-5.865625],[16.431445312500045,-5.90019531249996],[16.53710937499997,-5.9658203125],[16.697265625,-6.164257812500026],[16.74296874999999,-6.618457031250003],[16.813085937500063,-6.772558593749963],[16.919433593750057,-6.93398437499998],[16.98476562500005,-7.257421874999977],[17.57958984375,-8.099023437500009]]],[[[12.50146484375,-4.5875],[12.848144531250028,-4.428906249999983],[12.881054687500068,-4.445117187499989],[12.971386718750068,-4.551757812499957],[13.048046875000068,-4.619238281250034],[13.072753906250028,-4.634765625],[13.057324218750011,-4.651074218750026],[12.947460937500011,-4.695312499999986],[12.829687499999977,-4.73662109374996],[12.451464843750017,-5.071484374999969],[12.453222656250034,-5.090625],[12.52236328125008,-5.148925781250028],[12.484570312500011,-5.71875],[12.213671875000074,-5.758691406249994],[12.177148437499994,-5.324804687499977],[12.018359375000074,-5.004296874999966],[12.50146484375,-4.5875]]]]},"properties":{"name":"Angola","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[20.06396484375,42.54726562499999],[20.485449218750006,42.223388671875],[20.566210937500017,41.873681640624994],[20.48896484375001,41.272607421874994],[20.709277343750017,40.928369140624994],[20.964257812500023,40.849902343749996],[20.95576171875001,40.775292968749994],[21.030859375,40.622460937499994],[20.881640625000017,40.467919921874994],[20.65742187500001,40.1173828125],[20.4560546875,40.065576171874994],[20.408007812500017,40.049462890624994],[20.383691406250023,40.0171875],[20.338476562500006,39.991064453125],[20.311132812500006,39.979443359375],[20.311328125000017,39.95078125],[20.381640625000017,39.841796875],[20.382421875,39.802636718749994],[20.206835937500017,39.653515625],[20.13105468750001,39.66162109375],[20.05976562500001,39.699121093749994],[20.022558593750006,39.710693359375],[20.001269531250017,39.709423828125],[19.851855468750017,40.0435546875],[19.322265625,40.407080078125],[19.45917968750001,40.40537109375],[19.3375,40.663818359375],[19.57568359375,41.640429687499996],[19.577539062500023,41.7875],[19.342382812500006,41.869091796875],[19.280664062500023,42.17255859375],[19.65449218750001,42.628564453124994],[19.78828125000001,42.476171875],[20.06396484375,42.54726562499999]]]},"properties":{"name":"Albania","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[19.66230468750001,60.187158203124994],[19.53652343750005,60.14497070312501],[19.551367187500063,60.24384765625001],[19.66230468750001,60.187158203124994]]],[[[19.989550781250074,60.351171875],[20.258886718750063,60.26127929687499],[19.799804687500057,60.08173828125001],[19.68691406250005,60.267626953125045],[19.84765625000003,60.22055664062506],[19.823046875000074,60.390185546875045],[19.989550781250074,60.351171875]]]]},"properties":{"name":"Aland","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[1.7060546875,42.503320312499994],[1.534082031250023,42.441699218749996],[1.448828125,42.437451171875],[1.428125,42.46132812499999],[1.414843750000017,42.548388671874996],[1.428320312500006,42.5958984375],[1.501367187500023,42.642724609374994],[1.568164062500017,42.635009765625],[1.709863281250023,42.604443359375],[1.739453125000011,42.575927734375],[1.740234375,42.55673828125],[1.713964843750006,42.525634765625],[1.7060546875,42.503320312499994]]]},"properties":{"name":"Andorra","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[53.927832031250006,24.177197265624983],[53.63447265625004,24.169775390624977],[53.83378906250002,24.258935546875023],[53.927832031250006,24.177197265624983]]],[[[53.3322265625001,24.258593750000045],[53.19091796874997,24.290917968749966],[53.412402343750074,24.411035156250023],[53.3322265625001,24.258593750000045]]],[[[56.29785156250003,25.650683593750045],[56.38798828125002,24.97919921875004],[56.06386718750005,24.73876953125],[56.00058593750006,24.953222656249977],[55.795703125000074,24.868115234374955],[55.76083984375006,24.24267578125],[55.92861328125005,24.215136718750074],[55.98515625000002,24.063378906249966],[55.4684570312501,23.94111328125001],[55.53164062499999,23.81904296875001],[55.1999023437501,23.034765625000034],[55.185839843750074,22.7041015625],[55.104296875000074,22.621484375000023],[52.55507812500005,22.932812499999955],[51.592578125000074,24.07885742187503],[51.56835937500003,24.286181640625074],[51.76757812500003,24.25439453125],[51.84316406250005,24.010888671875023],[52.118554687499994,23.97109375],[52.64824218750002,24.154638671875006],[53.80175781249997,24.069482421874966],[54.14794921875003,24.17119140624999],[54.39707031250006,24.278173828125034],[54.74677734375004,24.810449218750023],[55.94121093750002,25.793994140625017],[56.08046875,26.06264648437505],[56.16748046875003,26.047460937499977],[56.144628906250006,25.690527343750006],[56.29785156250003,25.650683593750045]]]]},"properties":{"name":"United Arab Emirates","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-64.54916992187498,-54.71621093749998],[-63.81542968749997,-54.725097656250014],[-64.637353515625,-54.90253906250001],[-64.75732421875,-54.82656249999999],[-64.54916992187498,-54.71621093749998]]],[[[-68.65322265624994,-54.85361328124999],[-68.62993164062499,-52.65263671875004],[-68.24013671875,-53.08183593749999],[-68.43115234375,-53.0552734375],[-68.48852539062497,-53.260937499999976],[-68.16113281249997,-53.30644531250001],[-68.00849609374995,-53.5640625],[-67.29423828125002,-54.049804687500014],[-66.23564453124999,-54.53349609374997],[-65.17900390624993,-54.678125],[-65.47114257812495,-54.91464843749999],[-66.5111328125,-55.032128906249945],[-67.127099609375,-54.90380859375001],[-68.65322265624994,-54.85361328124999]]],[[[-61.084716796875,-23.65644531250001],[-60.83984375000003,-23.85810546874997],[-59.89248046874994,-24.093554687499974],[-59.18725585937497,-24.56230468749999],[-57.82167968749994,-25.136425781249983],[-57.56313476562494,-25.473730468749963],[-57.943115234375,-26.05292968750001],[-58.18149414062498,-26.30742187499999],[-58.222070312499994,-26.65],[-58.618603515624955,-27.13212890624996],[-58.64174804687494,-27.196093750000017],[-58.60483398437498,-27.314355468750037],[-58.16826171874993,-27.27343749999997],[-56.437158203124966,-27.553808593749977],[-56.16406250000003,-27.321484374999983],[-55.95146484374996,-27.325683593749957],[-55.789990234374926,-27.416406249999966],[-55.71464843749996,-27.41484375],[-55.632910156250006,-27.35712890624997],[-55.59379882812502,-27.288085937500014],[-55.597265625,-27.207617187499963],[-55.56489257812498,-27.15],[-55.496728515624966,-27.11533203124999],[-55.45063476562498,-27.068359375000014],[-55.426660156249994,-27.00927734374997],[-55.13593750000001,-26.931152343749957],[-54.934472656249994,-26.70253906250001],[-54.677734375,-26.308789062499997],[-54.631933593750006,-26.005761718749994],[-54.615869140624994,-25.576074218750023],[-54.44394531249998,-25.625],[-54.15458984374999,-25.523046874999963],[-53.89116210937499,-25.66884765625001],[-53.668554687500006,-26.288183593749977],[-53.83818359375002,-27.121093750000014],[-54.32700195312495,-27.423535156249997],[-54.82910156250003,-27.55058593750003],[-55.10151367187501,-27.866796874999963],[-55.72548828125002,-28.20410156250003],[-55.68725585937497,-28.38164062499996],[-55.890527343749994,-28.370019531249994],[-56.938623046874994,-29.594824218750034],[-57.22465820312499,-29.782128906249994],[-57.40522460937501,-30.03388671875004],[-57.563867187499994,-30.139941406249974],[-57.60888671875003,-30.187792968750045],[-57.65087890624997,-30.295019531250034],[-57.71269531249996,-30.38447265624997],[-57.83120117187502,-30.495214843749963],[-57.87250976562501,-30.591015625000026],[-57.81059570312499,-30.85859375000001],[-57.88632812499998,-30.937402343749994],[-57.86840820312497,-31.104394531249994],[-57.89335937499999,-31.195312499999957],[-58.03339843750001,-31.416601562500006],[-58.053857421874994,-31.494921874999974],[-58.009667968749966,-31.534375],[-57.98798828124998,-31.576171875],[-58.00698242187494,-31.684960937499966],[-58.04233398437495,-31.769238281249997],[-58.16748046874997,-31.87265625],[-58.18901367187499,-31.924218750000037],[-58.16040039062503,-31.986523437500026],[-58.156347656250006,-32.0515625],[-58.17700195312494,-32.11904296875002],[-58.16479492187494,-32.18486328125002],[-58.119726562500006,-32.24892578125002],[-58.12304687499997,-32.321875],[-58.201171875,-32.471679687500014],[-58.219970703125,-32.563964843749986],[-58.17099609374998,-32.95927734374996],[-58.424462890624994,-33.11152343749998],[-58.54721679687498,-33.66347656249998],[-58.392480468749966,-34.192968750000034],[-58.52548828124998,-34.29619140625002],[-58.28334960937494,-34.68349609375005],[-57.54785156250003,-35.018945312499994],[-57.170654296875,-35.3625],[-57.35390624999994,-35.72031249999998],[-57.33544921875,-36.026757812499966],[-57.07617187499994,-36.296777343749994],[-56.74946289062501,-36.346484375],[-56.67202148437494,-36.85126953124998],[-57.546972656250034,-38.085644531250026],[-58.17919921874994,-38.435839843750045],[-59.82832031250001,-38.83818359375003],[-61.112207031249994,-38.99296875000003],[-61.84790039062497,-38.961816406249994],[-62.33476562499993,-38.80009765625],[-62.29506835937502,-39.24326171874996],[-62.053662109374955,-39.373828125],[-62.179345703124994,-39.38046875000002],[-62.076806640624966,-39.46152343750002],[-62.131542968749926,-39.82539062499998],[-62.28691406249996,-39.89531250000002],[-62.40185546875003,-40.19658203125002],[-62.24633789062494,-40.674609374999974],[-62.39501953124997,-40.89082031249997],[-62.95903320312493,-41.10966796875006],[-63.621777343749955,-41.15976562499996],[-64.86948242187503,-40.735839843750014],[-65.13339843749998,-40.88066406250003],[-64.98637695312496,-42.102050781249986],[-64.53774414062494,-42.25458984374998],[-64.57099609374998,-42.416015625],[-64.42041015625003,-42.43378906249998],[-64.10087890624993,-42.395117187500006],[-64.06118164062494,-42.266113281250014],[-64.228515625,-42.21826171874996],[-63.795556640624994,-42.113867187500006],[-63.6298828125,-42.28271484375003],[-63.61733398437502,-42.695800781249986],[-64.03476562499998,-42.88125],[-64.48784179687499,-42.51347656250006],[-64.97070312499997,-42.66630859375002],[-65.02690429687496,-42.75888671874996],[-64.31914062499999,-42.968945312500026],[-64.83994140624998,-43.18886718749998],[-65.25234374999997,-43.571875],[-65.26552734375,-44.2796875],[-65.64760742187502,-44.661425781250045],[-65.63876953125,-45.0078125],[-66.19013671874995,-44.96474609375002],[-66.94140625,-45.25732421875003],[-67.59956054687495,-46.05253906250003],[-67.5064453125,-46.44277343749995],[-66.77685546874994,-47.005859375],[-65.99853515625,-47.09375],[-65.73808593749999,-47.34492187499998],[-65.81430664062495,-47.63818359374996],[-66.22524414062502,-47.826757812500006],[-65.93422851562497,-47.826757812500006],[-65.81005859374997,-47.941113281250026],[-67.46630859375,-48.95175781250004],[-67.68486328125002,-49.2466796875],[-67.82597656249999,-49.91962890625005],[-68.2572265625,-50.104589843749984],[-68.66757812500003,-49.75253906250003],[-68.66162109374997,-49.93574218750005],[-68.97958984375,-50.003027343749984],[-68.59794921874996,-50.00947265624997],[-68.421875,-50.15791015625001],[-69.04477539062495,-50.49912109374998],[-69.35859374999993,-51.028125],[-69.20102539062498,-50.99365234375001],[-69.03530273437497,-51.48896484375002],[-69.46542968750003,-51.58447265625003],[-68.96533203125003,-51.67714843749999],[-68.443359375,-52.35664062500004],[-69.96025390624993,-52.00820312500002],[-71.91865234374995,-51.98955078125004],[-72.40766601562501,-51.54082031250002],[-72.34023437499997,-50.68183593749999],[-72.50981445312496,-50.607519531250034],[-73.15292968749998,-50.73828125000003],[-73.50126953124996,-50.125292968750024],[-73.55419921875,-49.463867187500014],[-73.46157226562497,-49.31386718750001],[-73.13525390625,-49.30068359374999],[-73.03364257812501,-49.014355468750004],[-72.65126953125,-48.84160156249998],[-72.582861328125,-48.47539062499999],[-72.35473632812497,-48.36582031250005],[-72.32832031250001,-48.11005859374998],[-72.517919921875,-47.87636718749998],[-72.34594726562497,-47.49267578124997],[-71.90498046875001,-47.201660156250014],[-71.94023437499999,-46.83125],[-71.69965820312501,-46.6513671875],[-71.87568359374998,-46.160546875],[-71.63154296874998,-45.95371093749998],[-71.74619140624998,-45.57890625],[-71.34931640624995,-45.33193359374995],[-71.5962890625,-44.97919921875004],[-72.04169921874998,-44.90419921875004],[-72.06372070312503,-44.771875],[-71.26113281250002,-44.763085937499966],[-71.15971679687496,-44.56025390625004],[-71.21259765624998,-44.44121093750003],[-71.82001953124993,-44.38310546875],[-71.68007812500002,-43.92958984374998],[-71.90498046875001,-43.34755859374998],[-71.750634765625,-43.237304687499986],[-72.14643554687498,-42.990039062499974],[-72.10820312499993,-42.25185546874995],[-71.75,-42.04677734375001],[-71.91127929687497,-41.650390624999986],[-71.93212890624994,-40.69169921874999],[-71.70898437499997,-40.381738281249994],[-71.81831054687493,-40.17666015624995],[-71.65976562499998,-40.02080078125],[-71.71992187499995,-39.63525390624997],[-71.53945312499997,-39.60244140624995],[-71.40156249999995,-38.93505859374996],[-70.858642578125,-38.60449218750003],[-71.16757812499998,-37.76230468749996],[-71.19218750000002,-36.84365234375004],[-71.05551757812498,-36.52373046874996],[-70.40478515625,-36.06171874999998],[-70.41572265625001,-35.52304687500002],[-70.55517578125,-35.246875],[-70.39316406250003,-35.146875],[-70.05205078124999,-34.30078124999997],[-69.85244140625,-34.224316406250026],[-69.81962890624999,-33.28378906249999],[-70.08486328125002,-33.20175781249998],[-70.02197265625,-32.88457031250002],[-70.36376953125,-32.08349609374997],[-70.25439453125,-31.957714843750026],[-70.585205078125,-31.569433593749963],[-70.51958007812493,-31.1484375],[-70.30908203124994,-31.02265625000004],[-70.15322265625,-30.360937499999963],[-69.95634765624996,-30.35820312500003],[-69.84428710937493,-30.175],[-69.95996093749997,-30.078320312500026],[-70.02680664062501,-29.324023437500017],[-69.82788085937497,-29.10322265624997],[-69.65693359374995,-28.413574218749986],[-69.17441406249998,-27.924707031250037],[-68.84633789062494,-27.153710937499994],[-68.59208984375002,-27.140039062499966],[-68.31865234374999,-26.973242187500006],[-68.59160156249999,-26.47041015624997],[-68.41450195312498,-26.153710937500023],[-68.59208984375002,-25.420019531250034],[-68.38422851562495,-25.091894531249977],[-68.56201171875,-24.74736328125003],[-68.25029296875002,-24.391992187500023],[-67.35620117187503,-24.033789062499963],[-67.00878906249994,-23.00136718750005],[-67.19487304687493,-22.821679687500037],[-66.99111328125,-22.509863281250006],[-66.71171874999999,-22.216308593749986],[-66.36518554687501,-22.113769531249957],[-66.32246093750001,-22.053125],[-66.28212890624997,-21.94746093750001],[-66.24760742187496,-21.83046875],[-66.22016601562495,-21.802539062499974],[-66.174658203125,-21.805664062499986],[-66.09858398437495,-21.83505859375002],[-66.05859375,-21.87949218750002],[-65.86015624999999,-22.019726562499983],[-65.77104492187493,-22.099609375000014],[-65.68618164062497,-22.11025390625005],[-65.51879882812497,-22.094531250000045],[-64.99262695312498,-22.109667968750017],[-64.60551757812499,-22.228808593750045],[-64.52363281250001,-22.37158203125],[-64.47773437499998,-22.485351562499986],[-64.44550781249998,-22.585351562500023],[-64.37397460937498,-22.761035156250017],[-64.32529296875,-22.82763671875],[-64.30791015624993,-22.7953125],[-64.26640625000002,-22.60332031249996],[-63.97612304687502,-22.072558593750003],[-63.92167968749993,-22.028613281250017],[-62.843359375,-21.997265625000026],[-62.62597656250003,-22.29042968749998],[-62.54155273437496,-22.349609374999957],[-62.37250976562498,-22.439160156249997],[-62.21416015624996,-22.612402343750034],[-61.798535156249955,-23.18203125],[-61.084716796875,-23.65644531250001]]]]},"properties":{"name":"Argentina","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[46.490625,38.90668945312498],[46.1144531250001,38.877783203125034],[45.977441406249994,39.24389648437503],[45.76630859375004,39.37846679687499],[45.78447265625002,39.54560546875001],[45.456835937500074,39.494482421875006],[45.15283203125003,39.58266601562502],[45.03164062500005,39.76513671874997],[44.76826171875004,39.70351562500005],[44.28925781250004,40.040380859375006],[43.66621093750004,40.12636718750002],[43.56933593750003,40.48237304687498],[43.72265624999997,40.71953124999999],[43.43945312500003,41.10712890625001],[44.077246093750006,41.182519531249994],[44.81132812500002,41.259375],[45.001367187499994,41.29096679687498],[45.188574218750006,41.14741210937504],[45.07050781250004,41.075585937499966],[45.5875,40.846923828125],[45.37890624999997,40.67358398437506],[45.45439453125002,40.532373046874966],[45.96464843750002,40.233789062499966],[45.8859375000001,40.024853515624955],[45.57978515625004,39.9775390625],[46.202050781249994,39.59448242187503],[46.48144531249997,39.55517578125003],[46.36523437500003,39.402490234374994],[46.584765625000074,39.22368164062499],[46.400292968749994,39.1921875],[46.490625,38.90668945312498]]]},"properties":{"name":"Armenia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-170.72626953125,-14.351171875],[-170.8205078125,-14.312109375],[-170.568115234375,-14.266796875000011],[-170.72626953125,-14.351171875]]]},"properties":{"name":"American Samoa","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[69.2824218750001,-49.05888671875002],[69.16718750000004,-48.88291015624996],[69.36875,-48.89042968749998],[69.2824218750001,-49.05888671875002]]],[[[69.18486328125002,-49.10957031250004],[69.59277343749997,-48.97099609375005],[69.64404296875003,-49.11738281250003],[69.40507812500002,-49.18173828125],[69.5423828125,-49.25566406250005],[70.32021484375005,-49.05859374999996],[70.55546875000007,-49.201464843750024],[70.38613281250005,-49.433984374999966],[70.16582031250002,-49.34296874999998],[69.75996093750004,-49.430175781249986],[69.98642578125006,-49.58164062500003],[70.2477539062501,-49.53066406250003],[70.12431640625002,-49.70439453124999],[69.153125,-49.5296875],[68.99296875000007,-49.704980468750016],[68.81474609375002,-49.69960937499999],[68.88339843750006,-49.16494140624995],[68.76953125000003,-49.06591796875003],[69.00244140624997,-48.661230468750006],[69.13613281250005,-48.86103515625003],[69.05214843750005,-49.08193359375001],[69.18486328125002,-49.10957031250004]]],[[[51.83457031250006,-46.43994140625],[51.65927734375006,-46.37363281249999],[51.7418945312501,-46.32685546874997],[51.83457031250006,-46.43994140625]]]]},"properties":{"name":"Fr. S. Antarctic Lands","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[-61.71606445312503,17.037011718749994],[-61.85966796874996,17.013330078124966],[-61.887109374999966,17.09814453125],[-61.81728515624994,17.168945312500057],[-61.71606445312503,17.037011718749994]]]},"properties":{"name":"Antigua and Barb.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[147.35605468750006,-43.396972656250014],[147.30888671875007,-43.50078125000002],[147.10498046875003,-43.43115234374996],[147.28388671875004,-43.278906250000034],[147.35605468750006,-43.396972656250014]]],[[[145.04296875000003,-40.78671875],[145.28300781250002,-40.76992187500002],[146.31748046875006,-41.16347656250001],[146.72343750000002,-41.07802734375001],[146.84814453124997,-41.16806640624996],[146.98984375000006,-40.99238281249997],[147.45478515625004,-41.00166015624998],[147.62167968750012,-40.844726562499986],[147.87294921875005,-40.87255859374997],[147.96875,-40.779589843750045],[148.215234375,-40.85488281250002],[148.34257812500007,-42.21533203124997],[148.21367187500002,-41.97001953125],[147.92441406250006,-42.5724609375],[147.94541015625006,-43.18183593749997],[147.7858398437501,-43.22001953125002],[147.69892578125004,-43.12255859374997],[147.64794921874997,-43.02060546874999],[147.8,-42.928125],[147.57382812500006,-42.84570312499997],[147.4523437500001,-43.03339843750001],[147.29794921875006,-42.790917968749994],[147.24501953125005,-43.21591796874999],[146.99697265625005,-43.15634765625002],[147.07734375000004,-43.27587890625003],[146.87392578125,-43.6125],[146.54853515625004,-43.50888671874999],[146.04316406250004,-43.547167968749974],[145.99443359375007,-43.37607421875002],[146.20800781249997,-43.31621093749999],[145.8732421875001,-43.29238281250002],[145.48759765625002,-42.92666015625004],[145.19882812500006,-42.23085937500004],[145.46826171874997,-42.492871093750026],[145.51660156249997,-42.3544921875],[145.33105468750003,-42.14707031250002],[145.23486328124997,-42.19697265624997],[145.23818359375,-42.01962890624999],[144.76611328125003,-41.39003906249998],[144.64609375000006,-40.980859375],[144.71855468750002,-40.67226562500002],[145.04296875000003,-40.78671875]]],[[[148.23691406250006,-40.515136718749986],[148.18779296875007,-40.592578125000045],[148.11728515625012,-40.52148437499996],[148.23691406250006,-40.515136718749986]]],[[[144.784375,-40.506738281249966],[144.74804687499997,-40.589453125000034],[144.7833984375001,-40.434863281249974],[144.784375,-40.506738281249966]]],[[[148.32626953125006,-40.30693359375003],[148.40400390625004,-40.486523437500026],[148.02011718750012,-40.40419921874995],[148.32626953125006,-40.30693359375003]]],[[[148.000390625,-39.75761718750003],[148.29736328125003,-39.985742187499966],[148.31357421875012,-40.173535156250026],[148.10566406250004,-40.26210937499995],[147.76718750000012,-39.87031249999998],[148.000390625,-39.75761718750003]]],[[[143.92792968750004,-40.116113281249966],[143.83857421875004,-39.90410156250003],[144.00078125000007,-39.580175781250034],[144.14101562500005,-39.953808593750026],[143.92792968750004,-40.116113281249966]]],[[[145.31445312500003,-38.49082031249996],[145.35507812500012,-38.55703124999995],[145.12841796875003,-38.52763671875],[145.31445312500003,-38.49082031249996]]],[[[137.59648437500007,-35.73867187499998],[137.92890625000004,-35.72607421875],[138.12343750000005,-35.85234375],[137.67089843749997,-35.897949218750014],[137.44843750000004,-36.07480468749999],[137.20957031250012,-35.982421875],[136.7550781250001,-36.03310546875002],[136.540625,-35.89013671875003],[136.63867187499997,-35.74882812500002],[137.33408203125006,-35.59248046875004],[137.58496093749997,-35.620214843750006],[137.59648437500007,-35.73867187499998]]],[[[153.53876953125004,-27.436425781250037],[153.42656250000002,-27.70644531249998],[153.43544921875,-27.40537109375002],[153.53876953125004,-27.436425781250037]]],[[[113.18300781250005,-26.053125],[112.96425781250005,-25.78310546875001],[112.94707031250002,-25.531542968750017],[113.18300781250005,-26.053125]]],[[[153.07744140625002,-25.75078125],[152.97666015625012,-25.551367187499963],[153.03808593750003,-25.193164062500003],[153.22753906249997,-25.00576171875001],[153.14375,-24.814843750000023],[153.25693359375012,-24.72890625],[153.35019531250012,-25.063085937499963],[153.07744140625002,-25.75078125]]],[[[151.14658203125006,-23.49082031250002],[151.24013671875,-23.529687500000037],[151.23828124999997,-23.77578125],[151.03330078125006,-23.530175781250037],[151.14658203125006,-23.49082031250002]]],[[[115.44619140625005,-20.78779296875001],[115.31806640625004,-20.850585937500014],[115.43457031249997,-20.66796875000003],[115.44619140625005,-20.78779296875001]]],[[[149.04375,-20.29150390624997],[148.93886718750005,-20.283691406249986],[148.98105468750012,-20.153515625000026],[149.04375,-20.29150390624997]]],[[[146.27832031249997,-18.23125],[146.29882812499997,-18.48476562500005],[146.09882812500004,-18.251757812500003],[146.27832031249997,-18.23125]]],[[[139.45917968750004,-17.11455078124996],[139.49277343750006,-16.990429687499983],[139.57089843750006,-17.09443359375004],[139.45917968750004,-17.11455078124996]]],[[[139.50781250000003,-16.57304687499996],[139.1595703125,-16.74169921875003],[139.29296875000003,-16.467285156249986],[139.58789062499997,-16.39521484374997],[139.69775390624997,-16.514941406250017],[139.50781250000003,-16.57304687499996]]],[[[137.09365234375005,-15.778125],[136.94267578125002,-15.711718749999989],[137.00957031250007,-15.594824218749977],[137.09365234375005,-15.778125]]],[[[124.59726562500006,-15.40195312500002],[124.52421875000002,-15.421484375],[124.51933593750002,-15.26748046874998],[124.59726562500006,-15.40195312500002]]],[[[125.19882812500006,-14.57949218749998],[125.0912109375,-14.59169921874998],[125.15996093750002,-14.456054687499972],[125.19882812500006,-14.57949218749998]]],[[[136.71464843750002,-13.803906249999983],[136.89082031250004,-13.786621093750014],[136.74531250000004,-14.072656250000023],[136.95078125000006,-14.184277343750026],[136.89433593750002,-14.293066406249977],[136.33544921875003,-14.211816406250037],[136.42470703125,-13.864843749999963],[136.6556640625,-13.675878906250006],[136.71464843750002,-13.803906249999983]]],[[[136.23740234375006,-13.824511718750003],[136.12265625000012,-13.816601562499983],[136.21542968750012,-13.664746093750054],[136.23740234375006,-13.824511718750003]]],[[[136.33867187500007,-11.602343749999989],[136.18027343750006,-11.676757812499957],[136.47929687500002,-11.465917968749991],[136.33867187500007,-11.602343749999989]]],[[[130.45927734375007,-11.679296875000034],[130.60625,-11.816601562500026],[130.04326171875007,-11.787304687500011],[130.19755859375007,-11.658203125],[130.15283203124997,-11.477539062499972],[130.29492187499997,-11.33681640624998],[130.45927734375007,-11.679296875000034]]],[[[130.6188476562501,-11.376074218749991],[131.02304687500006,-11.334375],[131.26826171875004,-11.18984375],[131.53857421874997,-11.436914062500037],[130.95097656250007,-11.926464843750026],[130.51191406250004,-11.617871093749955],[130.38457031250002,-11.1921875],[130.6188476562501,-11.376074218749991]]],[[[136.59853515625,-11.378906249999943],[136.52656250000004,-11.438867187499994],[136.78027343749997,-11.0125],[136.59853515625,-11.378906249999943]]],[[[132.59335937500006,-11.302832031249991],[132.48378906250005,-11.037304687499983],[132.57880859375004,-10.968847656249977],[132.59335937500006,-11.302832031249991]]],[[[143.17890625000004,-11.954492187499966],[143.11025390625,-12.303515625000017],[143.40156250000004,-12.639941406249989],[143.5866210937501,-13.443652343750031],[143.54843750000012,-13.74101562499996],[143.75634765625003,-14.348828124999969],[143.96181640625005,-14.462890625000028],[144.473046875,-14.231835937500023],[144.64804687500006,-14.492480468750017],[145.28769531250006,-14.943164062499989],[145.42607421875002,-16.406152343749966],[145.75478515625,-16.879492187500034],[145.91210937499997,-16.9125],[146.12587890625005,-17.63525390625],[146.03222656249997,-18.272851562500037],[146.3332031250001,-18.55371093749997],[146.38339843750006,-18.97705078124997],[147.13876953125006,-19.39316406250002],[147.41855468750012,-19.378125],[147.7423828125001,-19.770117187499977],[148.759375,-20.28955078125003],[148.88476562499997,-20.480859375],[148.72998046874997,-20.4677734375],[148.68369140625012,-20.58017578124999],[149.20488281250007,-21.125097656249977],[149.45410156249997,-21.57871093750002],[149.70390625000002,-22.440527343750006],[149.82246093750004,-22.389843749999983],[149.97441406250007,-22.55068359374998],[149.94189453125003,-22.30810546875003],[150.07617187500003,-22.16445312499998],[150.54130859375002,-22.55908203125],[150.56855468750004,-22.38398437500004],[150.67246093750012,-22.418164062499983],[150.84316406250005,-23.4580078125],[151.15380859375003,-23.784082031249994],[151.83164062500006,-24.12294921875001],[152.12988281250003,-24.59755859374998],[152.45634765625007,-24.802441406249983],[152.65429687499997,-25.201953125000017],[152.91347656250005,-25.432128906250014],[152.98496093750012,-25.816210937500003],[153.16494140625,-25.964160156250045],[153.11679687500006,-27.194433593750034],[153.57568359375003,-28.24052734374999],[153.6168945312501,-28.673046875],[153.03056640625002,-30.563378906249994],[152.94394531250012,-31.43486328124999],[152.5592773437501,-32.045703125],[152.4704101562501,-32.439062500000034],[152.13652343750002,-32.678125],[152.1642578125001,-32.75742187499996],[151.812890625,-32.90107421875001],[151.29208984375012,-33.580957031249966],[151.28027343750003,-33.92666015625005],[151.12480468750007,-34.00527343749998],[151.23154296875006,-34.0296875],[150.8712890625001,-34.49912109374996],[150.80458984375,-35.01289062500001],[150.19531249999997,-35.83359374999996],[149.93271484375012,-37.528515625000026],[149.480859375,-37.77119140625],[147.87675781250002,-37.93417968749998],[146.8568359375,-38.663476562499966],[146.21748046875004,-38.72744140625004],[146.33662109375004,-38.89423828125],[146.46660156250007,-38.84033203125003],[146.40000000000012,-39.14550781250003],[146.1583984375001,-38.86572265624996],[145.93535156250002,-38.90175781250002],[145.79082031250007,-38.66699218749997],[145.39726562500002,-38.53535156249998],[145.54218750000004,-38.39384765625002],[145.4757812500001,-38.24375],[145.29277343750002,-38.237597656249974],[144.95957031250012,-38.500781250000045],[144.71777343749997,-38.34033203125004],[144.91142578125007,-38.34404296874999],[145.11992187500007,-38.091308593750014],[144.89130859375004,-37.899804687499994],[144.39550781250003,-38.13691406249998],[144.6652343750001,-38.20996093750003],[143.53896484375005,-38.82089843749998],[142.45585937500002,-38.38632812499999],[141.725,-38.27138671875002],[141.5939453125001,-38.38779296875002],[141.42421875,-38.36347656250004],[141.0109375000001,-38.07695312500003],[140.39042968750007,-37.89667968749998],[139.78427734375012,-37.24580078124998],[139.85732421875,-36.662109375],[139.72900390625003,-36.37138671875002],[138.9689453125001,-35.58076171874997],[139.17802734375007,-35.52304687500002],[139.289453125,-35.61132812499997],[139.28251953125002,-35.375390624999966],[138.521875,-35.6423828125],[138.184375,-35.612695312499994],[138.5111328125,-35.02441406249996],[138.48994140625004,-34.76357421875002],[138.0892578125,-34.16982421875002],[137.69169921875002,-35.14296875000004],[136.88359375000007,-35.23974609375004],[137.01425781250012,-34.91582031250003],[137.39101562500005,-34.91328124999997],[137.49384765625004,-34.16113281250003],[137.9318359375001,-33.57910156250003],[137.85234375000007,-33.20078124999996],[137.99257812500005,-33.094238281250014],[137.78320312500003,-32.578125],[137.79091796875,-32.82324218749996],[137.44228515625,-33.1935546875],[137.23730468750003,-33.62949218749999],[136.43066406249997,-34.02998046875004],[135.891015625,-34.660937499999974],[135.96972656249997,-34.98183593749998],[135.7923828125,-34.863281249999986],[135.64755859375006,-34.93964843750001],[135.12304687499997,-34.58574218750003],[135.21679687499997,-34.48730468749996],[135.45,-34.58105468749996],[135.21894531250004,-33.959765625000045],[134.88876953125012,-33.62636718749998],[134.79101562499997,-33.32832031250001],[134.60771484375002,-33.19013671875001],[134.30126953124997,-33.16503906249996],[134.17353515625004,-32.979101562500006],[134.10039062500007,-32.748632812500034],[134.22714843750006,-32.73056640624999],[134.23417968750007,-32.54853515625004],[133.66533203125007,-32.207226562500054],[133.21210937500004,-32.18378906249998],[132.75742187500012,-31.95625],[132.21464843750002,-32.00712890624996],[131.14365234375006,-31.49570312500005],[130.78300781250002,-31.604003906249986],[129.1876953125001,-31.659960937500017],[127.31982421874997,-32.2640625],[125.91718750000004,-32.296972656250034],[124.75878906250003,-32.882714843749994],[124.24375,-33.01523437499999],[123.50683593749997,-33.916210937500054],[122.15097656250006,-33.99179687499999],[122.06113281250006,-33.874414062499966],[121.40507812500007,-33.826757812500034],[119.85410156250012,-33.97470703124998],[119.45058593750005,-34.368261718750034],[118.89531250000007,-34.47988281250004],[118.13554687500002,-34.98662109374999],[117.58193359375005,-35.09775390624998],[116.51718750000012,-34.98789062499998],[115.98671875000005,-34.795019531250034],[115.56503906250012,-34.42578125000003],[115.00878906250003,-34.25585937499997],[114.9938476562501,-33.51533203125],[115.3587890625,-33.63994140624999],[115.68300781250005,-33.19287109375003],[115.6984375000001,-31.694531250000054],[115.07792968750007,-30.560449218750023],[114.85683593750005,-29.14296875],[114.16513671875012,-28.08066406250002],[114.028125,-27.34726562499999],[113.18476562500004,-26.182226562499963],[113.32324218749997,-26.243847656249997],[113.35605468750012,-26.080468750000023],[113.58164062500006,-26.558105468749986],[113.73369140625002,-26.59511718749998],[113.83642578125003,-26.50058593749999],[113.85283203125007,-26.33212890625005],[113.39531250000002,-25.71328125],[113.4513671875001,-25.599121093750014],[113.7130859375001,-25.83076171875004],[113.72373046875006,-26.129785156250037],[113.85390625,-26.01445312499999],[113.99199218750007,-26.32148437500001],[114.09033203124997,-26.393652343749963],[114.21572265625,-26.289453124999966],[114.2142578125,-25.851562500000014],[113.41767578125004,-24.435644531250034],[113.48984375000012,-23.869628906250014],[113.7570312500001,-23.418164062500054],[113.79511718750004,-22.91455078125003],[113.68281250000004,-22.637792968749963],[114.02285156250005,-21.881445312499977],[114.12392578125005,-21.828613281249957],[114.14160156250003,-22.483105468749983],[114.37773437500007,-22.341503906249997],[114.70927734375002,-21.82343749999997],[115.45615234375012,-21.49169921874997],[116.0109375000001,-21.030371093749963],[116.7067382812501,-20.653808593749986],[117.40625,-20.72119140625003],[118.19921875000003,-20.37519531249997],[118.75146484374997,-20.261914062499983],[119.10449218749997,-19.995312500000026],[119.58593750000003,-20.03828125],[120.99794921875,-19.604394531249966],[121.33769531250002,-19.31992187500002],[121.83378906250002,-18.477050781249986],[122.34541015625004,-18.11191406250002],[122.14746093749997,-17.54902343750001],[122.2609375000001,-17.135742187500014],[122.72041015625004,-16.78769531249999],[122.97070312499997,-16.436816406250003],[123.56308593750006,-17.520898437499966],[123.59355468750007,-17.03037109375005],[123.83105468750003,-17.120800781249997],[123.8744140625,-16.918652343750026],[123.4904296875001,-16.49072265624997],[123.62597656249997,-16.416308593750003],[123.60703125000006,-16.224023437499994],[123.72890625,-16.192480468749963],[123.85917968750007,-16.38232421875],[124.04443359374997,-16.264941406249974],[124.30039062500006,-16.388281249999977],[124.77197265624997,-16.40263671874996],[124.40488281250006,-16.298925781249977],[124.41640625,-16.133496093750026],[124.5768554687501,-16.11367187499998],[124.64853515625012,-15.870214843750034],[124.50429687500005,-15.972460937499989],[124.38164062500002,-15.758203125000037],[124.43955078125012,-15.493554687500037],[124.56162109375012,-15.496289062499969],[124.69257812500004,-15.273632812499997],[125.06298828125003,-15.44228515624998],[125.0729492187501,-15.306738281249991],[124.90917968750003,-15.310058593749957],[124.83906250000004,-15.160742187500006],[125.03818359375012,-15.004101562499969],[125.35566406250004,-15.119824218750011],[125.17871093749997,-14.714746093749994],[125.57978515625004,-14.483203124999989],[125.62773437500002,-14.256640625000017],[125.70458984374997,-14.29140625],[125.66162109375003,-14.529492187500011],[125.81953125000004,-14.469140624999966],[125.890625,-14.61796875],[126.0207031250001,-14.49453125],[126.0539062500001,-13.977246093750026],[126.1842773437501,-14.00205078125002],[126.25849609375004,-14.163574218749972],[126.403125,-14.018945312499994],[126.5697265625,-14.160937499999974],[126.7806640625,-13.955175781249977],[126.77558593750004,-13.788476562500037],[126.90322265625,-13.744140624999972],[127.45761718750006,-14.031445312499969],[128.18046875000007,-14.711621093749983],[128.06943359375012,-15.329296874999969],[128.15546875000004,-15.225585937499972],[128.25468750000002,-15.298535156250011],[128.175,-15.043164062500026],[128.57578125000006,-14.774511718750006],[129.05820312500012,-14.884375],[129.21582031249997,-15.160253906249991],[129.26757812500003,-14.871484375000051],[129.63476562499997,-15.139746093749991],[129.637109375,-14.850976562500037],[129.84873046875012,-14.828906249999989],[129.60468750000004,-14.647070312499977],[129.69794921875004,-14.557421875000017],[129.37871093750002,-14.39248046874998],[129.70986328125,-13.979980468749972],[129.83886718749997,-13.572949218749997],[130.25976562500003,-13.30224609375],[130.1349609375001,-13.145507812499957],[130.1681640625001,-12.957421875],[130.39990234374997,-12.68789062499999],[130.61748046875007,-12.646875],[130.62265625000006,-12.43105468749998],[130.8673828125001,-12.557812499999955],[130.87382812500007,-12.367187500000028],[131.29160156250006,-12.067871093749972],[131.43828125000002,-12.27695312500002],[132.06406250000006,-12.28076171875],[132.25322265625007,-12.186035156249972],[132.41103515625,-12.295117187499997],[132.51054687500002,-12.134863281250034],[132.71279296875,-12.1234375],[132.63046875000012,-12.035156249999972],[132.67421875000005,-11.649023437499991],[132.47519531250006,-11.491503906249974],[132.07285156250006,-11.474707031250006],[131.82246093750004,-11.302441406249997],[131.96152343750006,-11.180859375000011],[132.15546875000004,-11.311132812499991],[132.33398437499997,-11.223535156249994],[132.6828125000001,-11.505566406249997],[132.96103515625012,-11.407324218749963],[133.18525390625004,-11.705664062499991],[133.90419921875,-11.832031249999972],[134.4173828125,-12.052734375],[134.73027343750002,-11.984375],[135.02968750000005,-12.19375],[135.2179687500001,-12.221679687499957],[135.92246093750012,-11.825781250000034],[135.70439453125007,-12.209863281250037],[136.00849609375004,-12.19140625],[136.08183593750007,-12.422460937500006],[136.26064453125,-12.433789062499997],[136.32851562500005,-12.305566406249994],[136.24990234375,-12.173046875],[136.44335937499997,-11.951464843749974],[136.7194335937501,-12.226464843749952],[136.89746093749997,-12.243554687499966],[136.94746093750004,-12.34990234374996],[136.53701171875,-12.784277343749991],[136.59433593750012,-13.003808593750051],[136.46103515625006,-13.225195312500034],[136.29414062500004,-13.137988281250031],[135.92734375000012,-13.304296874999977],[135.95449218750005,-13.934863281250017],[135.40517578125005,-14.758203124999966],[135.4533203125001,-14.923144531250003],[136.20537109375002,-15.403417968749963],[136.29140625000005,-15.570117187500003],[136.70488281250007,-15.685253906250011],[136.78466796874997,-15.89423828125004],[137.00214843750004,-15.878320312499994],[137.70371093750006,-16.233007812499963],[138.24501953125005,-16.718359374999977],[139.00986328125006,-16.899316406249994],[139.2484375,-17.328613281249957],[140.03583984375004,-17.702636718749957],[140.51113281250005,-17.62451171875003],[140.83046875,-17.414453125000037],[141.29140625,-16.46347656250002],[141.62548828124997,-15.056640625000014],[141.52294921875003,-14.470117187499994],[141.59433593750006,-14.152832031250014],[141.47255859375,-13.797558593750011],[141.64541015625,-13.259082031250003],[141.61357421875002,-12.943457031250006],[141.92978515625006,-12.73984375],[141.67773437500003,-12.491406250000011],[141.68857421875012,-12.351074218750028],[141.87050781250005,-11.9755859375],[141.96113281250004,-12.054296874999963],[142.168359375,-10.946582031249974],[142.45644531250005,-10.707324218749989],[142.60507812500012,-10.748242187499983],[142.55273437500003,-10.874414062500023],[142.7796875,-11.115332031249977],[142.87255859374997,-11.821386718750034],[143.17890625000004,-11.954492187499966]]],[[[142.2748046875,-10.704785156250011],[142.19140624999997,-10.762011718750031],[142.1310546875001,-10.640625],[142.19794921875004,-10.59199218750004],[142.2748046875,-10.704785156250011]]]]},"properties":{"name":"Australia","childNum":30}},{"geometry":{"type":"Polygon","coordinates":[[[16.953125,48.598828125],[16.86542968750001,48.3869140625],[17.147363281250023,48.00595703125],[17.06660156250001,47.707568359374996],[16.421289062500023,47.674462890624994],[16.676562500000017,47.536035156249994],[16.44287109375,47.39951171875],[16.453417968750017,47.006787109375],[16.093066406250017,46.86328125],[15.957617187500006,46.677636718749994],[14.893261718750011,46.605908203125],[14.5498046875,46.399707031249996],[13.7,46.520263671875],[13.490039062500017,46.555566406249994],[13.3515625,46.557910156249996],[13.16875,46.57265625],[12.479199218750011,46.672509765624994],[12.38828125,46.70263671875],[12.330078125,46.759814453124996],[12.267968750000023,46.835888671875],[12.154101562500017,46.93525390625],[12.130761718750023,46.98476562499999],[12.16552734375,47.028173828125],[12.201269531250006,47.060888671875],[12.197167968750023,47.075],[12.16943359375,47.08212890625],[11.775683593750017,46.986083984375],[11.527539062500011,46.997412109375],[11.433203125,46.983056640624994],[11.244433593750017,46.97568359375],[11.133886718750006,46.936181640624994],[11.0634765625,46.859130859375],[11.025097656250011,46.79697265625],[10.993261718750006,46.777001953124994],[10.92734375,46.769482421875],[10.828906250000017,46.775244140625],[10.759765625,46.793310546875],[10.689257812500017,46.84638671875],[10.579785156250011,46.8537109375],[10.479394531250023,46.855126953124994],[10.452832031250011,46.86494140625],[10.45458984375,46.8994140625],[10.414941406250023,46.964404296874996],[10.349414062500017,46.98476562499999],[10.133496093750011,46.851513671875],[9.580273437500011,47.057373046875],[9.527539062500011,47.270751953125],[9.625878906250023,47.467041015625],[9.524023437500006,47.52421875],[9.748925781250023,47.575537109375],[9.839160156250017,47.552294921874996],[9.971582031250023,47.505322265625],[10.034082031250023,47.473583984375],[10.059863281250017,47.449072265625],[10.066308593750023,47.393359375],[10.200292968750006,47.363427734374994],[10.183007812500023,47.27880859375],[10.369140625,47.366064453125],[10.40390625,47.4169921875],[10.439453125,47.5515625],[10.482812500000023,47.541796875],[10.65869140625,47.547216796875],[10.741601562500023,47.52412109375],[10.873046875,47.52021484375],[11.0419921875,47.393115234374996],[12.185644531250006,47.61953125],[12.203808593750011,47.646728515625],[12.196875,47.70908203125],[12.209277343750017,47.71826171875],[12.268359375000017,47.702734375],[12.353540736607165,47.70264787946429],[12.492553013392856,47.68551897321428],[12.685839843750017,47.669335937499994],[12.771386718750023,47.639404296875],[12.796191406250017,47.60703125],[12.781152343750023,47.5904296875],[12.7828125,47.56416015625],[12.809375,47.5421875],[12.87890625,47.5064453125],[12.968066406250017,47.47568359375],[13.014355468750011,47.478076171874996],[13.031542968750017,47.5080078125],[13.047949218750006,47.579150390624996],[13.054101562500023,47.655126953125],[12.897656250000011,47.721875],[12.953515625000023,47.890625],[12.760351562500006,48.106982421874996],[13.215234375000023,48.301904296874994],[13.322851562500006,48.33125],[13.409375,48.394140625],[13.459863281250023,48.56455078125],[13.4716796875,48.571826171874996],[13.486621093750017,48.581835937499996],[13.636623883928596,48.580904017857144],[13.785351562500011,48.587451171874996],[13.798828125,48.6216796875],[13.802929687500011,48.747509765625],[13.814746093750017,48.766943359375],[14.049121093750017,48.602490234375],[14.691308593750023,48.59921875],[15.066796875000023,48.997851562499996],[16.057226562500006,48.754785156249994],[16.543554687500006,48.796240234375],[16.953125,48.598828125]]]},"properties":{"name":"Austria","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[46.1144531250001,38.877783203125034],[45.4796875000001,39.00625],[44.81718750000002,39.65043945312496],[44.76826171875004,39.70351562500005],[45.03164062500005,39.76513671874997],[45.15283203125003,39.58266601562502],[45.456835937500074,39.494482421875006],[45.78447265625002,39.54560546875001],[45.76630859375004,39.37846679687499],[45.977441406249994,39.24389648437503],[46.1144531250001,38.877783203125034]]],[[[48.572851562500006,41.84448242187503],[49.45673828125004,40.79985351562502],[49.77597656250006,40.583984375],[50.18251953125005,40.50478515625002],[50.3659179687501,40.279492187499955],[49.91884765625005,40.31640625000003],[49.55117187499999,40.19414062499999],[49.3244140625001,39.60834960937501],[49.36279296875003,39.349560546874955],[49.16533203125002,39.03027343750003],[49.013476562500074,39.13398437500001],[48.85449218750003,38.83881835937501],[48.86875,38.43549804687498],[48.59267578125005,38.41108398437498],[47.99648437499999,38.85375976562503],[48.292089843750006,39.01884765624999],[48.10439453125005,39.241113281249994],[48.322167968749994,39.39907226562502],[47.995898437500074,39.683935546875034],[46.490625,38.90668945312498],[46.400292968749994,39.1921875],[46.584765625000074,39.22368164062499],[46.36523437500003,39.402490234374994],[46.48144531249997,39.55517578125003],[46.202050781249994,39.59448242187503],[45.57978515625004,39.9775390625],[45.8859375000001,40.024853515624955],[45.96464843750002,40.233789062499966],[45.45439453125002,40.532373046874966],[45.37890624999997,40.67358398437506],[45.5875,40.846923828125],[45.07050781250004,41.075585937499966],[45.188574218750006,41.14741210937504],[45.001367187499994,41.29096679687498],[45.2171875,41.423193359375006],[45.28095703125004,41.449560546875034],[46.086523437500006,41.183837890625],[46.43095703125002,41.077050781249994],[46.534375,41.08857421875004],[46.62636718750005,41.15966796875006],[46.66240234375002,41.24550781250002],[46.67255859375004,41.28681640625001],[46.61894531250002,41.34375],[46.30546875000002,41.507714843749994],[46.18427734375004,41.70214843749997],[46.42988281250004,41.890966796875006],[46.74931640625002,41.812597656250006],[47.31767578125002,41.28242187500001],[47.79101562499997,41.19926757812502],[48.572851562500006,41.84448242187503]]]]},"properties":{"name":"Azerbaijan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[30.553613281250023,-2.400097656250011],[30.53369140625,-2.42626953125],[30.441992187500006,-2.613476562500011],[30.424218750000023,-2.6416015625],[30.47333984375001,-2.6943359375],[30.42402343750001,-2.824023437500003],[30.433496093750023,-2.87451171875],[30.515039062500023,-2.917578125],[30.604296875000017,-2.935253906250011],[30.70947265625,-2.977246093750011],[30.7802734375,-2.98486328125],[30.811132812500006,-3.116406250000011],[30.79023437500001,-3.274609375000011],[30.4,-3.65390625],[29.947265625,-4.307324218750011],[29.7177734375,-4.455859375],[29.403222656250023,-4.449316406250006],[29.211816406250023,-3.833789062500003],[29.224414062500017,-3.053515625],[29.01435546875001,-2.72021484375],[29.10205078125,-2.595703125],[29.390234375,-2.80859375],[29.698046875000017,-2.794726562500003],[29.8681640625,-2.71640625],[29.93017578125,-2.339550781250011],[30.117285156250006,-2.416601562500006],[30.408496093750017,-2.31298828125],[30.553613281250023,-2.400097656250011]]]},"properties":{"name":"Burundi","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[5.693554687500011,50.774755859375006],[5.993945312500017,50.75043945312504],[6.340917968750006,50.451757812500034],[6.116503906250045,50.120996093749966],[6.08906250000004,50.15458984374996],[6.054785156249977,50.154296875],[5.976269531250068,50.167187499999955],[5.866894531250068,50.08281250000002],[5.817382812500028,50.01269531250003],[5.7880859375,49.96123046875002],[5.744042968749994,49.91962890624998],[5.789746093749983,49.53828125000001],[5.50732421875,49.51088867187502],[4.867578125000051,49.78813476562502],[4.818652343750045,50.153173828125034],[4.545019531250063,49.96025390624999],[4.149316406250023,49.971582031249994],[4.174609375000017,50.24648437500005],[3.689355468750023,50.30605468750002],[3.595410156250068,50.47734374999999],[3.27333984375008,50.53154296875002],[3.10683593750008,50.779443359374994],[2.759375,50.750634765624994],[2.52490234375,51.097119140624955],[3.35009765625,51.37768554687503],[3.43251953125008,51.24575195312505],[3.902050781250011,51.20766601562502],[4.226171875000034,51.38647460937503],[5.03095703125004,51.46909179687498],[5.214160156250045,51.278955078124966],[5.796484375000034,51.153076171875],[5.693554687500011,50.774755859375006]]]},"properties":{"name":"Belgium","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[3.595410156250011,11.6962890625],[3.553906250000011,11.631884765624989],[3.490527343750017,11.49921875],[3.48779296875,11.395410156249994],[3.638867187500011,11.176855468749991],[3.65625,11.154589843749989],[3.6953125,11.1203125],[3.71640625,11.07958984375],[3.7568359375,10.76875],[3.83447265625,10.607421875],[3.771777343750017,10.417626953124994],[3.646582031250006,10.408984374999989],[3.60205078125,10.004541015624994],[3.3251953125,9.778466796874994],[3.044921875,9.083837890624991],[2.774804687500023,9.048535156249997],[2.703125,8.371826171875],[2.68603515625,7.873730468749997],[2.719335937500006,7.616259765624989],[2.7509765625,7.541894531249994],[2.78515625,7.476855468749989],[2.783984375000017,7.443408203124989],[2.765820312500011,7.422509765624994],[2.75048828125,7.395068359374989],[2.756738281250023,7.067919921874989],[2.721386718750011,6.980273437499989],[2.731738281250017,6.852832031249989],[2.7529296875,6.771630859374994],[2.774609375000011,6.711718749999989],[2.753710937500017,6.661767578124994],[2.735644531250017,6.595703125],[2.706445312500023,6.369238281249991],[1.62265625,6.216796875],[1.777929687500006,6.294628906249997],[1.530957031250011,6.992431640625],[1.624707031250011,6.997314453125],[1.600195312500006,9.050048828125],[1.3857421875,9.361669921874991],[1.330078125,9.996972656249994],[0.763378906250011,10.386669921874997],[0.900488281250006,10.993261718749991],[1.4267578125,11.447119140624991],[1.980371093750023,11.418408203124997],[2.38916015625,11.897070312499991],[2.366015625000017,12.221923828125],[2.805273437500006,12.383837890624989],[3.595410156250011,11.6962890625]]]},"properties":{"name":"Benin","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[0.217480468750011,14.911474609374991],[0.163867187500017,14.497216796874994],[0.382519531250011,14.245800781249997],[0.42919921875,13.972119140624997],[0.6181640625,13.703417968750003],[1.201171875,13.357519531249991],[0.988476562500011,13.36484375],[0.9873046875,13.041894531249994],[1.56494140625,12.635400390624994],[2.104589843750006,12.701269531249991],[2.226269531250011,12.466064453125],[2.072949218750011,12.309375],[2.38916015625,11.897070312499991],[1.980371093750023,11.418408203124997],[1.4267578125,11.447119140624991],[0.900488281250006,10.993261718749991],[0.49267578125,10.954980468749994],[-0.068603515625,11.115625],[-0.299462890624994,11.166894531249994],[-0.627148437499983,10.927392578124994],[-1.04248046875,11.010058593749989],[-2.829931640624977,10.998388671874991],[-2.914892578124977,10.592333984374989],[-2.791162109374994,10.432421874999989],[-2.780517578125,9.745849609375],[-2.765966796874977,9.658056640624991],[-2.706201171874994,9.533935546875],[-2.695849609374989,9.481347656249994],[-2.7171875,9.457128906249991],[-2.7666015625,9.424707031249994],[-2.816748046874977,9.425830078124989],[-2.875146484374994,9.500927734374997],[-2.90087890625,9.534619140624997],[-2.948144531249994,9.610742187499994],[-2.98828125,9.687353515624991],[-3.042626953124994,9.720898437499997],[-3.095800781249977,9.752099609374994],[-3.160693359374989,9.849169921874989],[-3.223535156249994,9.895458984374997],[-3.289697265624994,9.882226562499994],[-3.581152343749977,9.92431640625],[-3.790625,9.9171875],[-4.18115234375,9.78173828125],[-4.267187499999977,9.743261718749991],[-4.332226562499983,9.645703125],[-4.406201171874983,9.647998046874989],[-4.526611328125,9.723486328124991],[-4.625830078124977,9.713574218749997],[-4.721777343749977,9.756542968749997],[-5.262304687499977,10.319677734374991],[-5.523535156249977,10.426025390625],[-5.490478515625,11.042382812499994],[-5.250244140625,11.375781249999989],[-5.288134765624989,11.827929687499989],[-4.699316406249977,12.076171875],[-4.4287109375,12.337597656249997],[-4.480615234374994,12.672216796874991],[-4.227099609374989,12.793701171875],[-4.328710937499977,13.119042968749994],[-4.151025390624994,13.306201171875003],[-3.947314453124989,13.402197265624991],[-3.527636718749989,13.182714843749991],[-3.3017578125,13.28076171875],[-3.248632812499977,13.658349609374994],[-2.950830078124994,13.6484375],[-2.873925781249994,13.950732421875003],[-2.586718749999989,14.227587890625003],[-2.113232421874983,14.16845703125],[-1.97304687499999,14.45654296875],[-1.049560546875,14.81953125],[-0.760449218749983,15.047753906249994],[-0.235888671874989,15.059423828124991],[0.217480468750011,14.911474609374991]]]},"properties":{"name":"Burkina Faso","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[91.94921875000003,21.50805664062503],[91.85947265625012,21.532958984375057],[91.90771484374997,21.722949218750017],[91.94921875000003,21.50805664062503]]],[[[91.87382812500002,21.832128906249977],[91.8375976562501,21.750244140625],[91.85068359375012,21.927050781250045],[91.87382812500002,21.832128906249977]]],[[[91.15078125000005,22.175195312499966],[91.04472656250002,22.10517578125001],[91.0794921875,22.519726562499983],[91.15078125000005,22.175195312499966]]],[[[91.55673828125006,22.38222656250005],[91.41132812500004,22.475683593750006],[91.45605468749997,22.61650390624999],[91.55673828125006,22.38222656250005]]],[[[90.77763671875007,22.089306640624983],[90.51503906250005,22.06513671875001],[90.68046875000007,22.327490234375006],[90.50292968749997,22.835351562499994],[90.59648437500002,22.863525390625057],[90.86816406250003,22.48486328125],[90.77763671875007,22.089306640624983]]],[[[88.94072265625002,26.24536132812497],[88.97041015625004,26.250878906250023],[88.95195312500002,26.412109375],[89.01865234375012,26.410253906249977],[89.28925781250004,26.03759765625],[89.54990234375006,26.005273437499994],[89.57275390625003,26.13232421875003],[89.67089843750003,26.21381835937504],[89.8229492187501,25.94140625000003],[89.82490234375004,25.56015625],[89.80087890625012,25.33613281250001],[89.81406250000006,25.305371093749955],[89.86630859375012,25.293164062499955],[90.11962890625003,25.21997070312497],[90.61308593750002,25.16772460937497],[92.04970703125005,25.16948242187499],[92.46835937500006,24.94414062499999],[92.38496093750004,24.848779296875023],[92.25126953125007,24.895068359375045],[92.22832031250002,24.88134765625],[92.22666015625012,24.77099609374997],[92.11748046875002,24.493945312500017],[92.06416015625004,24.374365234375006],[91.84619140624997,24.17529296875003],[91.72656250000003,24.20507812499997],[91.35019531250012,24.06049804687501],[91.16044921875007,23.66064453125],[91.359375,23.06835937500003],[91.43623046875004,23.19990234375001],[91.55351562500002,22.991552734375006],[91.61953125,22.97968750000001],[91.75097656250003,23.053515625000017],[91.75419921875007,23.287304687499955],[91.79003906249997,23.361035156249983],[91.937890625,23.504687500000017],[91.92949218750007,23.598242187499977],[91.92958984375,23.68598632812501],[91.97851562500003,23.691992187499977],[92.04404296875006,23.677783203125017],[92.24609375000003,23.683593750000057],[92.33378906250002,23.242382812499955],[92.36162109375002,22.929003906250074],[92.46445312500006,22.734423828125045],[92.49140625000004,22.685400390625006],[92.5612304687501,22.04804687500001],[92.57490234375004,21.978076171875045],[92.58281250000002,21.940332031249994],[92.5934570312501,21.46733398437499],[92.63164062500002,21.306201171875045],[92.33056640624997,21.439794921874977],[92.17958984375005,21.293115234375023],[92.32412109375,20.791845703125063],[92.0560546875,21.1748046875],[91.86337890625012,22.350488281249966],[91.7970703125001,22.297460937500006],[91.48007812500006,22.884814453125045],[91.2162109375,22.642236328124994],[90.94560546875002,22.597021484375034],[90.65625,23.025488281250006],[90.60400390624997,23.59135742187499],[90.55566406249997,23.42153320312505],[90.26914062500012,23.455859375000017],[90.59091796875012,23.266406250000045],[90.43505859374997,22.751904296874955],[90.61611328125,22.362158203125034],[90.23056640625006,21.82978515625004],[90.07119140625005,21.887255859375017],[90.20957031250006,22.156591796875006],[89.95419921875006,22.022851562500023],[89.91806640625012,22.11616210937501],[89.98515625000002,22.466406250000063],[89.81191406250005,21.983496093750006],[89.56855468750004,21.767431640625034],[89.48320312500007,22.275537109374994],[89.50058593750006,21.914355468750045],[89.35371093750004,21.72109375],[89.09394531250004,21.872753906249983],[89.05,22.274609374999983],[88.92070312500002,22.632031249999955],[88.89970703125002,22.843505859375057],[88.85058593749997,23.040527343750057],[88.928125,23.186621093750063],[88.72441406250002,23.254980468750034],[88.69765625,23.493017578125034],[88.63574218749997,23.55],[88.56738281249997,23.674414062500034],[88.69980468750006,24.002539062500006],[88.71376953125,24.069628906250017],[88.72656250000003,24.186230468749955],[88.7335937500001,24.23090820312501],[88.72353515625,24.27490234375],[88.64228515625004,24.325976562500017],[88.49853515625003,24.34663085937504],[88.3375,24.45385742187503],[88.225,24.460644531249983],[88.14550781250003,24.485791015624955],[88.07910156249997,24.549902343750063],[88.02343750000003,24.62783203125005],[88.03027343749997,24.66445312500005],[88.0451171875001,24.713037109374994],[88.1498046875,24.914648437500034],[88.1888671875,24.92060546875001],[88.27949218750004,24.881933593750034],[88.31337890625005,24.8818359375],[88.37294921875,24.961523437499977],[88.45625,25.18842773437504],[88.57382812500006,25.18789062499999],[88.92978515625012,25.222998046875063],[88.94414062500002,25.290771484375],[88.85478515625002,25.333544921875017],[88.76914062500006,25.490478515625],[88.50244140624997,25.537011718749994],[88.14746093749997,25.811425781250023],[88.1066406250001,25.841113281250045],[88.15078125000005,26.08715820312497],[88.33398437499997,26.257519531249955],[88.44042968749997,26.369482421875034],[88.38623046875003,26.471533203125034],[88.35146484375005,26.482568359374966],[88.36992187500002,26.564111328124994],[88.51826171875004,26.517773437499955],[88.68281250000004,26.291699218749983],[88.94072265625002,26.24536132812497]]]]},"properties":{"name":"Bangladesh","childNum":6}},{"geometry":{"type":"Polygon","coordinates":[[[28.585351562500023,43.742236328124996],[28.465429687500006,43.389306640624994],[28.133691406250023,43.39560546875],[27.92890625000001,43.1861328125],[27.88886718750001,42.74970703125],[27.484765625000023,42.468066406249996],[28.014453125000017,41.969042968749996],[27.47480468750001,41.946875],[27.294921875,42.079541015625],[27.24433593750001,42.09326171875],[27.01171875,42.058642578124996],[26.96875,42.02685546875],[26.884863281250006,41.991845703124994],[26.615332031250006,41.964892578124996],[26.549707031250023,41.896728515625],[26.51142578125001,41.8263671875],[26.3603515625,41.8015625],[26.327246093750006,41.772802734375],[26.31796875,41.744677734374996],[26.320898437500006,41.716552734375],[26.200585937500023,41.743798828124994],[26.107421875,41.72568359375],[26.085546875,41.704150390624996],[26.066015625,41.673242187499994],[26.1435546875,41.521533203124996],[26.155175781250023,41.434863281249996],[26.135351562500006,41.3857421875],[26.06640625,41.35068359375],[25.92333984375,41.311914062499994],[25.784960937500017,41.330419921875],[25.52705078125001,41.2998046875],[25.381933593750006,41.26435546875],[25.25117187500001,41.243554687499994],[24.773730468750017,41.356103515624994],[24.595996093750017,41.442724609375],[24.5693359375,41.4673828125],[24.51826171875001,41.552539062499996],[24.487890625,41.555224609374996],[24.056054687500023,41.527246093749994],[24.03291015625001,41.469091796875],[24.011328125,41.46005859375],[23.635156250000023,41.386767578124996],[23.53583984375001,41.386035156249996],[23.433398437500017,41.398730468749996],[23.3720703125,41.3896484375],[23.23984375,41.3849609375],[23.15595703125001,41.322070312499996],[22.916015625,41.336279296875],[23.00361328125001,41.73984375],[22.836816406250023,41.993603515625],[22.344042968750017,42.31396484375],[22.42207031250001,42.328857421875],[22.445703125000023,42.359130859375],[22.523535156250006,42.440966796874996],[22.53242187500001,42.481201171875],[22.524218750000017,42.50390625],[22.43623046875001,42.6291015625],[22.466796875,42.84248046875],[22.799902343750006,42.985742187499994],[22.976855468750017,43.18798828125],[22.85957031250001,43.25234375],[22.819726562500023,43.300732421875],[22.767578125,43.354150390624994],[22.554589843750023,43.454492187499994],[22.36962890625,43.781298828124996],[22.36542968750001,43.862109375],[22.399023437500006,43.96953125],[22.420800781250023,44.007421875],[22.452529688228115,44.0510441391688],[22.547921095934313,44.113823956634434],[22.688564844478098,44.254306249271906],[23.02851562500001,44.077978515625],[22.868261718750006,43.947900390624994],[22.919042968750006,43.83447265625],[25.4970703125,43.670800781249994],[26.2158203125,44.007275390625],[27.0869140625,44.167382812499994],[27.425390625,44.0205078125],[27.88427734375,43.987353515624996],[28.221972656250017,43.772851562499994],[28.585351562500023,43.742236328124996]]]},"properties":{"name":"Bulgaria","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[50.60722656250002,25.883105468750003],[50.57490234375001,25.806787109374994],[50.465917968750006,25.965527343749997],[50.46992187500001,26.228955078124997],[50.5859375,26.24072265625],[50.60722656250002,25.883105468750003]]]},"properties":{"name":"Bahrain","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-73.02685546874994,21.19238281250003],[-73.16455078125003,20.979150390625023],[-73.68115234375003,20.9755859375],[-73.68037109374995,21.103320312500017],[-73.52309570312497,21.190820312499966],[-73.23535156249997,21.15449218750004],[-73.05849609375,21.313378906249994],[-73.02685546874994,21.19238281250003]]],[[[-73.041015625,22.429052734375006],[-72.74726562500001,22.32739257812497],[-73.16191406250002,22.380712890625006],[-73.041015625,22.429052734375006]]],[[[-74.20673828124998,22.213769531250023],[-74.27690429687499,22.183691406250006],[-73.906396484375,22.527441406250063],[-73.95419921874995,22.71552734375001],[-73.84995117187503,22.731054687500063],[-73.83652343749998,22.538427734374977],[-74.20673828124998,22.213769531250023]]],[[[-74.05751953124997,22.723486328125034],[-74.27460937499995,22.71166992187503],[-74.30703125,22.83959960937497],[-74.05751953124997,22.723486328125034]]],[[[-74.84047851562494,22.894335937500017],[-75.22333984374995,23.165332031250074],[-75.13056640624998,23.267919921875006],[-75.31596679687502,23.668359374999966],[-74.84047851562494,22.894335937500017]]],[[[-75.66455078124997,23.45014648437501],[-76.03710937500003,23.60278320312503],[-76.01044921875001,23.671386718750057],[-75.66455078124997,23.45014648437501]]],[[[-74.42944335937497,24.068066406249955],[-74.55092773437502,23.96894531250001],[-74.52690429687502,24.105078125000034],[-74.42944335937497,24.068066406249955]]],[[[-77.65771484374994,24.249462890624955],[-77.75527343750002,24.163476562500023],[-77.61538085937494,24.216357421875045],[-77.5615234375,24.136816406250006],[-77.57373046875,23.739160156249994],[-77.77128906249999,23.752539062499977],[-77.99990234374994,24.219824218750063],[-77.65771484374994,24.249462890624955]]],[[[-75.30839843749999,24.2],[-75.50322265624996,24.139062500000023],[-75.40893554687503,24.265771484374994],[-75.72666015625,24.68935546875005],[-75.30839843749999,24.2]]],[[[-77.34755859375,25.013867187499983],[-77.56191406249997,25.030029296875],[-77.27558593750001,25.055761718750006],[-77.34755859375,25.013867187499983]]],[[[-77.74384765625001,24.70742187499999],[-77.74521484375,24.463476562500034],[-78.04492187499997,24.287451171875063],[-78.14580078125002,24.493457031250017],[-78.36650390624993,24.544189453125057],[-78.435302734375,24.627587890624994],[-78.24272460937493,24.65380859375],[-78.21137695312495,25.191259765624977],[-77.97529296874998,25.084814453125063],[-77.74384765625001,24.70742187499999]]],[[[-76.64882812499994,25.487402343750006],[-76.34379882812496,25.33203124999997],[-76.12661132812497,25.14052734375005],[-76.16953125,24.6494140625],[-76.319970703125,24.81767578124999],[-76.21376953124994,24.822460937499983],[-76.160400390625,25.119335937499983],[-76.36928710937502,25.312597656250006],[-76.62070312499998,25.43164062500003],[-76.78066406249997,25.426855468750006],[-76.71083984374997,25.564892578124983],[-76.64882812499994,25.487402343750006]]],[[[-78.49287109375001,26.729052734375017],[-77.92246093749998,26.69111328125001],[-78.74365234374994,26.50068359375004],[-78.98564453124996,26.689501953125045],[-78.79804687500001,26.58242187499999],[-78.59711914062493,26.797949218750006],[-78.49287109375001,26.729052734375017]]],[[[-77.22563476562496,25.904199218750023],[-77.40317382812498,26.02470703124996],[-77.24677734374998,26.156347656250034],[-77.238623046875,26.561132812500006],[-77.510595703125,26.845996093750045],[-77.94375,26.90356445312503],[-77.53388671874995,26.903417968750006],[-77.06635742187501,26.530175781249994],[-77.03828124999998,26.333447265624983],[-77.16728515624996,26.240332031250006],[-77.22563476562496,25.904199218750023]]]]},"properties":{"name":"Bahamas","childNum":14}},{"geometry":{"type":"Polygon","coordinates":[[[19.007128906250045,44.86918945312502],[19.348632812500057,44.88090820312502],[19.118457031250074,44.359960937500006],[19.583789062500017,44.04345703125003],[19.245019531249994,43.96503906250004],[19.495117187500057,43.642871093750045],[19.19433593749997,43.533300781250006],[19.164355468750017,43.53544921874999],[19.11279296874997,43.52773437500002],[19.080078125000057,43.51772460937502],[19.0283203125,43.53251953125002],[18.97421875,43.54233398437498],[18.95068359375,43.52666015624999],[19.036718750000034,43.35732421875002],[19.026660156250017,43.292431640624955],[18.97871093750001,43.28540039062503],[18.934667968750006,43.339453125000034],[18.85107421875003,43.34633789062502],[18.749218750000068,43.283544921875006],[18.67421875000008,43.230810546875006],[18.623632812500063,43.027685546875034],[18.488476562500068,43.01215820312498],[18.44384765625003,42.96845703125004],[18.46601562500001,42.777246093749994],[18.54589843750003,42.64160156249997],[18.436328125000017,42.559716796874994],[17.667578125000063,42.897119140624994],[17.585156250000068,42.93837890625005],[17.650488281250063,43.006591796875],[17.27382812500005,43.44575195312501],[16.300097656250017,44.12451171875],[16.10341796875008,44.52099609375006],[15.736621093750045,44.76582031250001],[15.788085937500057,45.17895507812497],[16.028320312500057,45.18959960937502],[16.29335937500005,45.00883789062496],[16.53066406250008,45.21669921875002],[16.918652343749983,45.27656249999998],[17.812792968750074,45.078125],[18.66259765625,45.07744140624999],[18.83642578125,44.883251953124955],[19.007128906250045,44.86918945312502]]]},"properties":{"name":"Bosnia and Herz.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[28.14794921875,56.142919921875],[28.284277343750006,56.055908203125],[29.375,55.938720703125],[29.353417968750023,55.784375],[29.412988281250023,55.724853515625],[29.482226562500017,55.6845703125],[29.63007812500001,55.751171875],[29.6845703125,55.7697265625],[29.744140625,55.77041015625],[29.82392578125001,55.7951171875],[29.881640625000017,55.832324218749996],[29.93701171875,55.845263671874996],[30.04267578125001,55.83642578125],[30.23359375000001,55.84521484375],[30.625585937500006,55.666259765625],[30.906835937500006,55.57001953125],[30.90058593750001,55.397412109375],[30.82099609375001,55.3302734375],[30.810546875,55.306982421875],[30.814453125,55.2787109375],[30.87744140625,55.2234375],[30.958886718750023,55.13759765625],[30.97773437500001,55.08779296875],[30.97773437500001,55.05048828125],[30.829882812500017,54.914990234375],[30.804492187500017,54.8609375],[30.791015625,54.806005859375],[30.798828125,54.783251953124996],[30.984179687500017,54.6958984375],[31.12128906250001,54.648486328124996],[31.152148437500017,54.625341796875],[31.074804687500006,54.491796875],[31.18476562500001,54.452978515625],[31.299121093750017,54.29169921875],[31.403613281250017,54.195947265625],[31.62841796875,54.111181640625],[31.7919921875,54.055908203125],[31.825976562500017,54.030712890625],[31.837792968750023,54.00078125],[31.825292968750006,53.935009765625],[31.783007812500017,53.85498046875],[31.754199218750017,53.81044921875],[31.82080078125,53.791943359375],[31.9921875,53.796875],[32.20039062500001,53.78125],[32.45097656250002,53.6533203125],[32.70429687500001,53.336328125],[32.64443359375002,53.32890625],[32.57802734375002,53.31240234375],[32.469335937500006,53.2703125],[32.14199218750002,53.091162109375],[31.849707031250006,53.106201171875],[31.668261718750017,53.200927734375],[31.417871093750023,53.196044921875],[31.38837890625001,53.184814453125],[31.364550781250017,53.138964843749996],[31.30292968750001,53.060888671875],[31.2587890625,53.01669921875],[31.29511718750001,52.989794921874996],[31.35302734375,52.933447265625],[31.442773437500023,52.86181640625],[31.53515625,52.7982421875],[31.564843750000023,52.759228515625],[31.585546875,52.532470703125],[31.57734375000001,52.312304687499996],[31.6015625,52.284814453125],[31.64990234375,52.26220703125],[31.690625,52.220654296875],[31.758593750000017,52.125830078125],[31.76337890625001,52.10107421875],[31.57373046875,52.10810546875],[31.345996093750017,52.10537109375],[31.21796875000001,52.050244140625],[30.98066406250001,52.046191406249996],[30.845703125,51.953076171875],[30.755273437500023,51.895166015625],[30.667285156250017,51.814111328125],[30.583886718750023,51.68896484375],[30.533007812500017,51.596337890624994],[30.56074218750001,51.531494140625],[30.602343750000017,51.471240234374996],[30.611718750000023,51.40634765625],[30.63251953125001,51.355419921875],[30.449511718750017,51.274316406249994],[30.160742187500006,51.477880859375],[29.346484375000017,51.382568359375],[29.10205078125,51.6275390625],[29.06074218750001,51.625439453125],[29.013085937500023,51.598925781249996],[28.97773437500001,51.57177734375],[28.927539062500017,51.562158203124994],[28.849511718750023,51.540185546874994],[28.73125,51.433398437499996],[28.690234375000017,51.438867187499994],[28.647753906250017,51.45654296875],[28.599023437500023,51.542626953124994],[28.532031250000017,51.562451171875],[27.85859375000001,51.5923828125],[27.7,51.477978515625],[27.689746093750017,51.572412109374994],[27.296289062500023,51.597412109375],[27.270117187500006,51.613574218749996],[27.141992187500023,51.75205078125],[27.074121093750023,51.76083984375],[26.95283203125001,51.75400390625],[26.7734375,51.770703125],[25.785742187500006,51.923828125],[24.361914062500006,51.867529296875],[24.280078125000017,51.774707031249996],[24.126855468750023,51.6646484375],[23.978320312500017,51.59130859375],[23.951171875,51.58505859375],[23.8642578125,51.623974609375],[23.79169921875001,51.637109375],[23.706835937500017,51.64130859375],[23.61376953125,51.525390625],[23.605273437500017,51.517919921875],[23.652441406250006,52.040380859375],[23.175097656250017,52.28662109375],[23.915429687500023,52.770263671875],[23.484667968750017,53.939794921875],[23.55908203125,53.91982421875],[23.733691406250017,53.912255859375],[24.191308593750023,53.950439453125],[24.236621093750017,53.919970703124996],[24.31796875,53.89296875],[24.620703125,53.979833984375],[24.768164062500006,53.974658203124996],[24.78925781250001,53.9982421875],[24.82568359375,54.118994140625],[24.869531250000023,54.145166015625],[25.04609375000001,54.133056640625],[25.111425781250006,54.154931640625],[25.179492187500017,54.2142578125],[25.46113281250001,54.292773437499996],[25.505664062500017,54.264941406249996],[25.52734375,54.215136718749996],[25.497363281250017,54.175244140625],[25.573046875000017,54.139892578125],[25.765234375,54.17978515625],[25.702539062500023,54.29296875],[25.61689453125001,54.310107421874996],[25.557519531250023,54.310693359375],[25.54736328125,54.331835937499996],[25.56757812500001,54.37705078125],[25.62031250000001,54.460400390625],[25.68515625,54.535791015625],[25.72480468750001,54.564257812499996],[25.73164062500001,54.590380859374996],[25.722460937500017,54.71787109375],[25.859277343750023,54.919287109375],[25.964453125,54.94716796875],[26.09296875000001,54.9623046875],[26.175195312500023,55.003271484375],[26.250781250000017,55.12451171875],[26.291796875000017,55.139599609375],[26.601171875,55.130175781249996],[26.6484375,55.20419921875],[26.775683593750017,55.273095703125],[26.760156250000023,55.293359375],[26.68125,55.306445312499996],[26.49531250000001,55.318017578125],[26.457617187500006,55.34248046875],[26.469531250000017,55.371923828125],[26.51923828125001,55.44814453125],[26.56660156250001,55.546484375],[26.5908203125,55.62265625],[26.593554687500017,55.667529296874996],[27.052539062500017,55.83056640625],[27.576757812500006,55.798779296875],[28.14794921875,56.142919921875]]]},"properties":{"name":"Belarus","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-87.8529296875,17.4228515625],[-87.92998046874996,17.283007812500017],[-87.826416015625,17.546289062499994],[-87.8529296875,17.4228515625]]],[[[-88.89404296875,15.890625],[-89.2328125,15.888671875],[-89.16147460937503,17.81484375],[-89.13354492187503,17.970800781249977],[-88.80634765624998,17.965527343749983],[-88.52299804687499,18.445898437500063],[-88.29565429687494,18.47241210937503],[-88.34926757812494,18.358837890624983],[-88.1302734375,18.350732421875023],[-88.08525390624999,18.226123046875045],[-88.27172851562494,17.60986328125],[-88.203466796875,17.5166015625],[-88.31342773437501,16.632763671874983],[-88.89404296875,15.890625]]]]},"properties":{"name":"Belize","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-64.73027343749999,32.29345703125],[-64.86284179687499,32.273876953125],[-64.66831054687499,32.38193359375],[-64.73027343749999,32.29345703125]]]},"properties":{"name":"Bermuda","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-58.15976562499999,-20.164648437500006],[-58.18017578125,-19.81787109375],[-59.09052734375,-19.286230468750006],[-60.00737304687499,-19.29755859375001],[-61.7568359375,-19.6453125],[-62.276318359375,-20.5625],[-62.27666015624999,-21.066015625],[-62.65097656249999,-22.233691406250003],[-62.84335937499999,-21.99726562500001],[-63.92167968749999,-22.028613281250003],[-63.97612304687499,-22.072558593750003],[-64.26640624999999,-22.603320312500003],[-64.30791015624999,-22.7953125],[-64.32529296874999,-22.82763671875],[-64.373974609375,-22.761035156250003],[-64.4455078125,-22.58535156250001],[-64.477734375,-22.4853515625],[-64.5236328125,-22.37158203125],[-64.60551757812499,-22.228808593750003],[-64.992626953125,-22.109667968750003],[-65.518798828125,-22.09453125],[-65.686181640625,-22.11025390625001],[-65.77104492187499,-22.099609375],[-65.86015624999999,-22.01972656250001],[-66.05859375,-21.879492187500006],[-66.098583984375,-21.835058593750006],[-66.17465820312499,-21.8056640625],[-66.220166015625,-21.802539062500003],[-66.24760742187499,-21.83046875],[-66.28212890625,-21.94746093750001],[-66.3224609375,-22.053125],[-66.365185546875,-22.11376953125],[-66.71171874999999,-22.21630859375],[-66.99111328125,-22.509863281250006],[-67.19487304687499,-22.82167968750001],[-67.362255859375,-22.85517578125001],[-67.57993164062499,-22.891699218750006],[-67.79443359375,-22.879492187500006],[-67.87944335937499,-22.82294921875001],[-67.88173828125,-22.49335937500001],[-68.18642578125,-21.61855468750001],[-68.197021484375,-21.30029296875],[-68.558251953125,-20.901953125],[-68.484326171875,-20.62841796875],[-68.74516601562499,-20.45859375],[-68.75932617187499,-20.115527343750003],[-68.560693359375,-19.967089843750003],[-68.559375,-19.90234375],[-68.578271484375,-19.856542968750006],[-68.69619140625,-19.74072265625],[-68.69829101562499,-19.72109375],[-68.57529296874999,-19.56015625],[-68.462890625,-19.43281250000001],[-68.470166015625,-19.409960937500003],[-68.49199218749999,-19.381933593750006],[-68.85795898437499,-19.093359375],[-68.96831054687499,-18.96796875000001],[-68.97885742187499,-18.81298828125],[-69.026806640625,-18.65625],[-69.09228515625,-18.28242187500001],[-69.145458984375,-18.14404296875],[-69.0939453125,-18.05048828125001],[-69.28232421874999,-17.96484375],[-69.31337890625,-17.943164062500003],[-69.5109375,-17.50605468750001],[-69.51108398437499,-17.5048828125],[-69.510986328125,-17.46035156250001],[-69.521923828125,-17.388964843750003],[-69.645703125,-17.24853515625],[-69.62485351562499,-17.2001953125],[-69.020703125,-16.6421875],[-69.03291015625,-16.47597656250001],[-68.8427734375,-16.337890625],[-69.21757812499999,-16.14912109375001],[-69.4208984375,-15.640625],[-69.17246093749999,-15.236621093750003],[-69.37470703125,-14.962988281250006],[-69.35947265624999,-14.7953125],[-68.87089843749999,-14.169726562500003],[-69.07412109375,-13.682812500000011],[-68.97861328124999,-12.880078125000011],[-68.68525390625,-12.501953125],[-69.57861328125,-10.951757812500006],[-69.228515625,-10.955664062500006],[-68.84833984375,-11.011132812500009],[-68.678369140625,-11.11279296875],[-68.39799804687499,-11.01875],[-68.0716796875,-10.703125],[-67.99169921875,-10.674414062500006],[-67.83500976562499,-10.662792968750011],[-67.72177734374999,-10.68310546875],[-67.416943359375,-10.389843750000011],[-66.575341796875,-9.89990234375],[-65.396142578125,-9.71240234375],[-65.298583984375,-10.146777343750003],[-65.31308593749999,-10.253027343750006],[-65.395458984375,-10.392285156250011],[-65.4369140625,-10.449023437500003],[-65.44711914062499,-10.507421875],[-65.33403320312499,-10.892773437500011],[-65.32377929687499,-11.024804687500009],[-65.389892578125,-11.246289062500011],[-65.1857421875,-11.74951171875],[-64.783447265625,-12.059375],[-64.42050781249999,-12.439746093750003],[-63.68857421874999,-12.47802734375],[-63.3466796875,-12.680078125],[-63.06748046874999,-12.669140625000011],[-62.76547851562499,-12.997265625000011],[-62.11801757812499,-13.159765625],[-62.09477539062499,-13.241992187500003],[-61.944726562499994,-13.40625],[-61.87412109374999,-13.470410156250011],[-61.789941406249994,-13.525585937500011],[-61.57568359375,-13.524804687500009],[-61.51157226562499,-13.541210937500011],[-61.41606445312499,-13.526562500000011],[-61.129150390625,-13.49853515625],[-61.07700195312499,-13.48974609375],[-60.506591796875,-13.78984375],[-60.372705078124994,-14.41875],[-60.273339843749994,-15.088769531250009],[-60.402001953124994,-15.0927734375],[-60.583203125,-15.098339843750011],[-60.53046875,-15.143164062500006],[-60.38046875,-15.318261718750009],[-60.242333984374994,-15.479589843750006],[-60.20664062499999,-15.901953125],[-60.18720703125,-16.132128906250003],[-60.17558593749999,-16.269335937500003],[-58.53793945312499,-16.328222656250006],[-58.49658203125,-16.32666015625],[-58.42368164062499,-16.307910156250003],[-58.37539062499999,-16.28359375],[-58.345605468749994,-16.284375],[-58.35039062499999,-16.490820312500006],[-58.470605468749994,-16.650195312500003],[-58.478125,-16.70068359375],[-58.45981445312499,-16.910742187500006],[-58.417382812499994,-17.08056640625],[-58.39599609375,-17.23427734375001],[-58.34775390624999,-17.28212890625001],[-57.99091796875,-17.51289062500001],[-57.905029296875,-17.532324218750006],[-57.832470703125,-17.512109375],[-57.78886718749999,-17.573046875],[-57.780175781249994,-17.67177734375001],[-57.66166992187499,-17.947363281250006],[-57.58647460937499,-18.12226562500001],[-57.49565429687499,-18.214648437500003],[-57.57402343749999,-18.279296875],[-57.725,-18.733203125],[-57.783105468749994,-18.91425781250001],[-57.716796875,-19.044042968750006],[-58.131494140624994,-19.74453125],[-57.860742187499994,-19.979589843750006],[-57.887597656249994,-20.02041015625001],[-57.96015625,-20.04072265625001],[-58.021142578124994,-20.05517578125],[-58.09375,-20.15107421875001],[-58.15976562499999,-20.164648437500006]]]},"properties":{"name":"Bolivia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-48.48588867187493,-27.76699218749998],[-48.554589843749994,-27.81220703125004],[-48.542187499999955,-27.57480468749999],[-48.41489257812495,-27.399609375],[-48.48588867187493,-27.76699218749998]]],[[[-48.584423828124955,-26.401562499999983],[-48.665771484375,-26.289648437500006],[-48.53974609374998,-26.170312500000023],[-48.584423828124955,-26.401562499999983]]],[[[-45.26025390624997,-23.889160156249986],[-45.451416015625,-23.895605468749977],[-45.30234375,-23.727539062500014],[-45.26025390624997,-23.889160156249986]]],[[[-44.12929687499994,-23.14189453124999],[-44.36015624999999,-23.17207031250001],[-44.24287109374998,-23.074121093750037],[-44.12929687499994,-23.14189453124999]]],[[[-38.90356445312497,-13.473437499999974],[-38.97758789062496,-13.523535156249963],[-39.02216796874998,-13.445605468749989],[-38.907128906249994,-13.401074218749983],[-38.90356445312497,-13.473437499999974]]],[[[-38.743847656249955,-13.097070312500037],[-38.668115234374966,-12.880175781249989],[-38.601171875,-12.99257812499998],[-38.743847656249955,-13.097070312500037]]],[[[-44.49931640625002,-2.939648437499983],[-44.597753906250006,-3.037597656249943],[-44.4814453125,-2.717578125000031],[-44.49931640625002,-2.939648437499983]]],[[[-44.88310546874996,-1.317871093749986],[-45.020849609375034,-1.372363281249974],[-44.978662109374966,-1.267285156249983],[-44.88310546874996,-1.317871093749986]]],[[[-51.83251953124997,-1.433789062499969],[-51.938378906249966,-1.452636718749986],[-51.680029296875006,-1.086132812500026],[-51.546044921874966,-0.649609375],[-51.25400390624998,-0.54140625],[-51.16074218749998,-0.666699218750011],[-51.27631835937498,-1.02177734374996],[-51.83251953124997,-1.433789062499969]]],[[[-49.62866210937497,-0.229199218749969],[-49.11699218749999,-0.163574218750014],[-48.39267578124995,-0.29736328125],[-48.83359375,-1.390039062500023],[-49.038476562499994,-1.5140625],[-49.17270507812498,-1.41259765625],[-49.233984375000034,-1.59951171874998],[-49.50664062499999,-1.511621093750023],[-49.587890625,-1.712402343749972],[-49.805126953124955,-1.790234375000026],[-50.06572265625002,-1.703808593749997],[-50.50761718749999,-1.787988281250009],[-50.759765625,-1.240234374999972],[-50.72949218749997,-1.126757812499946],[-50.57695312499999,-1.103125],[-50.709619140624994,-1.07773437499999],[-50.796093749999955,-0.90625],[-50.6455078125,-0.27285156249998],[-50.24824218749998,-0.11640625],[-49.62866210937497,-0.229199218749969]]],[[[-50.65288085937499,-0.131640624999989],[-50.926367187500034,-0.327343749999983],[-51.03808593749994,-0.225878906250003],[-50.84218750000002,-0.050195312500009],[-50.65288085937499,-0.131640624999989]]],[[[-49.44389648437499,-0.112402343749977],[-49.83007812499997,-0.093896484375023],[-49.50346679687496,0.083691406250011],[-49.37231445312497,0.001074218749963],[-49.44389648437499,-0.112402343749977]]],[[[-49.73823242187498,0.26816406250002],[-49.917089843750006,-0.023193359375014],[-50.339453125,0.043359375000051],[-50.27265624999998,0.231738281249974],[-49.73823242187498,0.26816406250002]]],[[[-50.42612304687498,0.139257812500048],[-50.44394531249998,-0.007666015624949],[-50.623925781249966,0.054394531249983],[-50.372753906249955,0.590869140625031],[-50.33227539062497,0.259033203125028],[-50.42612304687498,0.139257812500048]]],[[[-50.152929687500006,0.393017578125054],[-50.26132812499998,0.359179687500003],[-50.281689453124955,0.51650390624998],[-50.05883789062503,0.638037109374963],[-50.152929687500006,0.393017578125054]]],[[[-50.29897460937502,1.93852539062496],[-50.45610351562496,1.910498046875034],[-50.49101562499996,2.128613281249969],[-50.34199218749998,2.14174804687498],[-50.29897460937502,1.93852539062496]]],[[[-59.69970703125,4.353515625],[-59.73857421874993,4.226757812500026],[-59.62021484374998,4.023144531250026],[-59.557763671874966,3.960009765625031],[-59.551123046875034,3.933544921874969],[-59.854394531249994,3.5875],[-59.99433593749998,2.689990234375031],[-59.88964843749997,2.362939453125009],[-59.75522460937495,2.27412109375004],[-59.74350585937498,2.12163085937496],[-59.75175781249996,1.962402343750028],[-59.75620117187498,1.900634765624972],[-59.666601562500006,1.746289062499969],[-59.53569335937499,1.7],[-59.23120117187494,1.376025390625031],[-58.82177734374994,1.201220703125031],[-58.787207031250006,1.208496093750014],[-58.73032226562498,1.247509765625054],[-58.68461914062499,1.28105468749996],[-58.511865234374966,1.284667968749986],[-58.506054687499926,1.438671875000011],[-58.39580078124993,1.481738281249989],[-58.38037109375,1.530224609375011],[-58.34067382812498,1.587548828125051],[-58.03466796875,1.520263671875014],[-57.9828125,1.648437500000014],[-57.87343750000002,1.667285156250045],[-57.79565429687497,1.7],[-57.59443359375001,1.704101562499986],[-57.54575195312495,1.726074218750028],[-57.31748046874998,1.963476562499991],[-57.27558593749998,1.959228515625014],[-57.189599609374966,1.981591796875037],[-57.11889648437494,2.013964843749974],[-57.09267578125002,2.005810546874997],[-57.03759765625,1.936474609374997],[-56.96953124999999,1.91640625],[-56.48281249999994,1.942138671874986],[-56.019921874999966,1.842236328124983],[-55.96333007812498,1.85708007812498],[-55.929638671874955,1.8875],[-55.92163085937503,1.976660156250006],[-55.91533203124999,2.039550781250028],[-55.96196289062496,2.09511718749998],[-56.02006835937499,2.15815429687504],[-56.073632812499994,2.236767578124969],[-56.13769531249997,2.259033203124986],[-56.12939453124997,2.299511718749969],[-56.08779296875002,2.341308593750043],[-56.045117187499955,2.364404296875037],[-56.02036132812498,2.392773437500054],[-55.993505859375006,2.497509765624983],[-55.9755859375,2.515966796875006],[-55.957470703124955,2.52045898437504],[-55.730566406250006,2.406152343750023],[-55.385351562500006,2.440625],[-55.34399414062503,2.488769531249972],[-55.28603515625002,2.49965820312498],[-55.18769531249998,2.547509765625037],[-55.114111328125006,2.539208984375037],[-55.07031249999994,2.548339843750028],[-55.005810546874955,2.592968749999983],[-54.97866210937502,2.597656250000043],[-54.968408203124966,2.548339843750028],[-54.92656249999999,2.497363281250045],[-54.876074218750006,2.450390624999969],[-54.72221679687499,2.441650390624972],[-54.69741210937502,2.359814453124997],[-54.66186523437497,2.327539062499994],[-54.61625976562499,2.326757812500006],[-54.59194335937502,2.313769531250031],[-54.55048828125001,2.293066406249991],[-54.51508789062498,2.245458984374963],[-54.43310546875,2.207519531250057],[-54.13007812499998,2.121044921875026],[-53.76777343749998,2.354833984375048],[-52.90346679687502,2.211523437499977],[-52.58300781250003,2.528906249999977],[-52.327880859375,3.18173828125002],[-51.65253906249998,4.061279296874972],[-51.54707031250001,4.31088867187502],[-51.219921874999955,4.093603515624991],[-50.71440429687502,2.134033203125],[-50.458886718749994,1.829589843749972],[-49.957128906250006,1.65986328125004],[-49.898876953124955,1.16298828124998],[-50.29443359374997,0.835742187500003],[-50.755078124999955,0.222558593749966],[-51.28291015625001,-0.085205078125028],[-51.98081054687498,-1.367968749999974],[-52.22924804687497,-1.3625],[-52.664160156250034,-1.551757812500028],[-51.94755859374996,-1.586718749999946],[-50.89492187500002,-0.937597656249963],[-50.690039062500006,-1.761718749999986],[-50.40322265625002,-2.015527343750009],[-49.999218749999955,-1.831835937499974],[-49.71953125000002,-1.926367187499963],[-49.31367187500001,-1.731738281250003],[-49.63652343749996,-2.656933593750026],[-49.45751953125,-2.504589843749983],[-49.21103515624998,-1.916503906249986],[-48.99130859374998,-1.829785156249997],[-48.71000976562496,-1.487695312500023],[-48.46293945312499,-1.613964843749997],[-48.349804687499926,-1.482128906249955],[-48.46806640624996,-1.393847656250003],[-48.44980468749998,-1.145507812499943],[-48.11508789062498,-0.7375],[-47.557324218749955,-0.669921874999957],[-47.418652343749955,-0.765917968749974],[-47.39809570312502,-0.626660156250026],[-45.45859374999995,-1.35625],[-45.32915039062496,-1.71728515625],[-45.07636718749998,-1.466406249999949],[-44.72114257812498,-1.733496093750006],[-44.778515624999955,-1.798828125],[-44.651269531249966,-1.745800781250026],[-44.537792968749955,-2.052734374999943],[-44.75634765624997,-2.265527343749952],[-44.66240234375002,-2.373242187499955],[-44.435449218749966,-2.168066406249991],[-44.38183593749997,-2.365527343749989],[-44.52011718749998,-2.40546875000004],[-44.589013671874994,-2.573437499999983],[-44.72304687500002,-3.204785156249997],[-44.43754882812496,-2.944433593749977],[-44.228613281250006,-2.471289062499949],[-44.105566406250006,-2.493457031250031],[-44.19267578124999,-2.809570312499943],[-43.93291015624999,-2.583496093749986],[-43.45512695312499,-2.502050781250006],[-43.38007812499998,-2.376074218750006],[-42.93671874999998,-2.465039062500011],[-42.24960937499998,-2.7919921875],[-41.876171874999926,-2.746582031249986],[-41.479931640624955,-2.916503906249972],[-40.474560546874926,-2.795605468750026],[-39.96469726562498,-2.861523437499955],[-38.475781249999955,-3.717480468749997],[-38.04882812500003,-4.216406250000034],[-37.626318359375006,-4.592089843750003],[-37.30146484375001,-4.713085937499969],[-37.174658203125006,-4.912402343749974],[-36.590722656249966,-5.097558593749952],[-35.549414062500006,-5.129394531249957],[-35.39257812499994,-5.250878906250009],[-34.833886718749994,-7.024414062500014],[-34.83466796874998,-7.97148437499996],[-35.34086914062499,-9.230664062499983],[-35.76396484374993,-9.702539062500023],[-35.890820312499926,-9.687011718749957],[-35.88544921875001,-9.84765625],[-36.39833984374994,-10.484082031249983],[-36.768310546875,-10.671679687500017],[-37.18281249999998,-11.06845703125002],[-37.35600585937502,-11.403906249999977],[-37.35922851562495,-11.252539062499963],[-37.68872070312503,-12.1],[-38.019238281249955,-12.591308593750028],[-38.401757812499994,-12.966210937500023],[-38.69096679687502,-12.623925781250009],[-38.85175781250001,-12.790136718750034],[-38.76372070312502,-12.9072265625],[-38.835302734375034,-13.147167968750026],[-39.030908203124994,-13.365136718750023],[-39.08935546875,-13.588183593749989],[-38.988623046875006,-13.61503906249996],[-39.04814453124996,-14.043945312500028],[-38.94233398437498,-14.030664062499994],[-39.05957031249997,-14.654785156249957],[-38.88061523437503,-15.864257812499972],[-39.20288085937503,-17.178125],[-39.154003906249926,-17.70390625000003],[-39.650781249999966,-18.252343750000037],[-39.78330078124998,-19.571777343749986],[-40.001367187499994,-19.74199218750003],[-40.39594726562501,-20.56943359375002],[-40.78925781250001,-20.90605468750003],[-40.954541015624926,-21.237890624999963],[-41.04726562499999,-21.505664062499974],[-41.00029296875002,-21.99902343750003],[-41.70551757812498,-22.30966796874999],[-41.980419921874955,-22.580664062499963],[-42.042382812499966,-22.947070312500003],[-42.95830078124996,-22.96708984374999],[-43.154296875,-22.725195312500006],[-43.22416992187502,-22.991210937500014],[-43.898828124999966,-23.10146484375001],[-43.97382812499998,-23.057324218749983],[-43.675976562499955,-23.00947265625001],[-43.86616210937498,-22.910546875000023],[-44.63725585937496,-23.05546875],[-44.67382812499994,-23.206640625000034],[-44.56967773437495,-23.27402343749999],[-45.32539062499998,-23.59970703124999],[-45.464306640624955,-23.802539062500017],[-45.97207031250002,-23.795507812500006],[-46.86728515624998,-24.236328125000014],[-47.989160156249994,-25.03574218749999],[-47.92939453124998,-25.16826171874999],[-48.20273437499998,-25.41650390625003],[-48.18593749999994,-25.309863281249974],[-48.402490234374994,-25.27207031249999],[-48.47612304687499,-25.44296875],[-48.73173828124993,-25.36875],[-48.6921875,-25.49150390625003],[-48.40117187500002,-25.59736328125001],[-48.665771484375,-25.844335937499963],[-48.576318359374994,-25.935449218749966],[-48.61943359374996,-26.17939453125001],[-48.74829101562503,-26.26865234374999],[-48.55415039062498,-27.195996093749997],[-48.62080078124998,-28.075585937499966],[-48.799658203125006,-28.575292968749977],[-49.27128906249999,-28.87119140625005],[-49.745996093749966,-29.363183593749994],[-50.299511718749955,-30.42578125000003],[-50.92138671874997,-31.25839843750002],[-52.039208984374994,-32.11484374999996],[-52.063232421875,-31.830371093750017],[-51.68066406249994,-31.774609375000026],[-51.272167968749955,-31.476953125000037],[-51.16142578124996,-31.11884765625001],[-50.980078125000034,-31.09423828124997],[-50.94082031249994,-30.903710937499966],[-50.68930664062495,-30.70419921874999],[-50.71630859374994,-30.425976562499983],[-50.58193359375002,-30.438867187500037],[-50.56352539062499,-30.25361328125004],[-51.02495117187493,-30.36865234375003],[-51.29804687499998,-30.03486328124997],[-51.15727539062499,-30.364257812500014],[-51.283056640625034,-30.751562499999963],[-51.35908203124998,-30.674511718749983],[-51.506298828124955,-31.104492187500014],[-51.97246093749999,-31.383789062499986],[-52.19355468749998,-31.885546874999974],[-52.12739257812501,-32.1677734375],[-52.652246093749994,-33.137792968750006],[-53.37060546874997,-33.74218750000003],[-53.39755859374995,-33.737304687500014],[-53.46357421875001,-33.70986328125002],[-53.531347656250034,-33.65546875000004],[-53.531347656250034,-33.1708984375],[-53.511865234374966,-33.10869140625003],[-53.482861328124926,-33.068554687500026],[-53.39521484375001,-33.01035156249998],[-53.31010742187499,-32.927050781249974],[-53.21406249999998,-32.82109375],[-53.12558593749998,-32.73671875],[-53.15727539062496,-32.680078125],[-53.601708984374994,-32.40302734374997],[-53.76171875,-32.05683593749997],[-53.920605468749926,-31.95234375],[-54.220556640625034,-31.855175781249997],[-54.58764648437503,-31.48515625000003],[-55.036035156249994,-31.27900390625004],[-55.091162109375034,-31.31396484374997],[-55.173535156249926,-31.279589843749974],[-55.557324218749955,-30.8759765625],[-55.60302734375003,-30.85078125000001],[-55.62714843749998,-30.858105468749997],[-55.650488281250034,-30.89208984375],[-55.66523437500001,-30.92490234375002],[-55.807763671874994,-31.036718749999977],[-55.87368164062502,-31.069628906250017],[-55.95200195312498,-31.08085937499999],[-56.0046875,-31.079199218750006],[-56.01845703125002,-30.991894531249983],[-55.998974609374955,-30.837207031250003],[-56.4072265625,-30.44746093750001],[-56.83271484374998,-30.107226562499974],[-57.120507812499994,-30.144433593749994],[-57.21445312499995,-30.283398437499983],[-57.55229492187496,-30.261230468749986],[-57.60888671875003,-30.187792968750045],[-57.563867187499994,-30.139941406249974],[-57.40522460937501,-30.03388671875004],[-57.22465820312499,-29.782128906249994],[-56.938623046874994,-29.594824218750034],[-55.890527343749994,-28.370019531249994],[-55.68725585937497,-28.38164062499996],[-55.72548828125002,-28.20410156250003],[-55.10151367187501,-27.866796874999963],[-54.82910156250003,-27.55058593750003],[-54.32700195312495,-27.423535156249997],[-53.83818359375002,-27.121093750000014],[-53.668554687500006,-26.288183593749977],[-53.89116210937499,-25.66884765625001],[-54.15458984374999,-25.523046874999963],[-54.44394531249998,-25.625],[-54.615869140624994,-25.576074218750023],[-54.61054687499998,-25.432714843750034],[-54.47314453124997,-25.22021484375],[-54.43623046875001,-25.12128906250001],[-54.281005859375,-24.30605468750001],[-54.31826171874994,-24.128125],[-54.26689453124996,-24.06582031250001],[-54.241796875,-24.047265624999966],[-54.44023437500002,-23.90175781249998],[-54.62548828125,-23.8125],[-54.98266601562494,-23.974511718749966],[-55.081884765625006,-23.997656249999977],[-55.1943359375,-24.017480468750023],[-55.28691406249993,-24.00429687499999],[-55.366308593750034,-23.99101562499996],[-55.41591796875002,-23.95136718749997],[-55.4423828125,-23.86533203125002],[-55.4423828125,-23.792578125000034],[-55.458886718749966,-23.686718750000054],[-55.51845703124994,-23.627246093750017],[-55.53828124999998,-23.580957031249994],[-55.61767578125,-22.67148437499999],[-55.74663085937499,-22.51269531249997],[-55.753271484375006,-22.410156250000043],[-55.84916992187499,-22.307617187500014],[-55.991406249999926,-22.28115234375005],[-56.18984374999994,-22.28115234375005],[-56.246044921874926,-22.26464843749997],[-56.39487304687498,-22.092675781250023],[-56.44780273437502,-22.07617187500003],[-56.77519531249999,-22.261328125],[-57.955908203125034,-22.109179687500003],[-57.94267578124999,-21.79833984375],[-57.830224609374994,-20.99794921875001],[-57.91513671874998,-20.690332031249966],[-57.97905273437493,-20.65732421874999],[-58.00224609374996,-20.465429687499977],[-58.02539062499997,-20.41582031249999],[-58.05844726562495,-20.38613281249998],[-58.091503906249926,-20.33320312500004],[-58.124609375000034,-20.293457031250014],[-58.13779296874995,-20.237304687500043],[-58.15976562499998,-20.164648437499977],[-58.09375,-20.15107421874997],[-58.021142578124994,-20.05517578124997],[-57.96015625000001,-20.04072265625004],[-57.887597656249966,-20.020410156249994],[-57.860742187499994,-19.97958984375002],[-58.029931640624994,-19.83271484375004],[-58.131494140624994,-19.74453125],[-57.71679687499997,-19.044042968750034],[-57.73085937499999,-18.91718750000004],[-57.783105468749994,-18.91425781249997],[-57.725,-18.73320312500003],[-57.57402343749993,-18.279296875000014],[-57.49565429687496,-18.21464843749999],[-57.58647460937499,-18.122265625],[-57.66166992187493,-17.94736328124999],[-57.78017578125002,-17.67177734374998],[-57.78886718750002,-17.573046875000017],[-57.83247070312501,-17.512109375000037],[-57.90502929687497,-17.53232421874999],[-57.990917968749955,-17.512890625000026],[-58.20556640625,-17.363085937499974],[-58.347753906250006,-17.282128906249994],[-58.39599609374997,-17.234277343750023],[-58.417382812499994,-17.08056640624997],[-58.459814453125006,-16.910742187500006],[-58.478125,-16.70068359375003],[-58.470605468749994,-16.650195312500045],[-58.35039062500002,-16.49082031249999],[-58.34560546875002,-16.284375],[-58.375390624999966,-16.283593749999966],[-58.423681640625034,-16.30791015625003],[-58.49658203124994,-16.32666015625003],[-58.537939453125034,-16.32822265624999],[-60.17558593749996,-16.26933593749999],[-60.187207031249955,-16.132128906250017],[-60.206640625,-15.90195312500002],[-60.242333984374994,-15.479589843750034],[-60.38046874999998,-15.318261718750023],[-60.53046874999998,-15.143164062499977],[-60.58320312499998,-15.098339843749983],[-60.273339843749994,-15.088769531249994],[-60.372705078124994,-14.41875],[-60.506591796875,-13.78984375],[-61.077001953125034,-13.489746093750014],[-61.129150390625,-13.498535156250028],[-61.41606445312502,-13.526562499999969],[-61.511572265625006,-13.541210937500011],[-61.789941406249966,-13.525585937500026],[-61.87412109374998,-13.470410156249983],[-61.944726562499966,-13.40625],[-62.09477539062499,-13.241992187499989],[-62.118017578125006,-13.15976562500002],[-62.765478515625034,-12.99726562500004],[-63.01518554687502,-12.80556640624998],[-63.067480468750006,-12.669140624999983],[-63.34667968749994,-12.68007812499999],[-63.68857421874998,-12.478027343749957],[-64.42050781249995,-12.439746093749974],[-64.783447265625,-12.059375],[-65.18574218749998,-11.749511718749957],[-65.389892578125,-11.246289062500011],[-65.33403320312499,-10.892773437500026],[-65.44711914062503,-10.507421875000034],[-65.4369140625,-10.449023437499946],[-65.39545898437498,-10.392285156250026],[-65.31308593749998,-10.253027343749991],[-65.29858398437497,-10.146777343750017],[-65.39614257812494,-9.712402343749986],[-66.57534179687502,-9.899902343749986],[-67.41694335937495,-10.389843749999969],[-67.72177734374998,-10.683105468749943],[-67.83500976562496,-10.662792968749983],[-67.99169921875,-10.674414062499949],[-68.07167968749994,-10.703125],[-68.39799804687499,-11.01875],[-68.678369140625,-11.11279296875],[-68.84833984374998,-11.01113281249998],[-69.228515625,-10.955664062499963],[-69.46254882812497,-10.948144531250023],[-69.57861328125,-10.951757812499963],[-69.67402343749998,-10.9541015625],[-69.83979492187501,-10.93339843749996],[-69.96035156249997,-10.92988281250004],[-70.06630859374997,-10.982421875],[-70.22006835937503,-11.04765625],[-70.29038085937498,-11.064257812499974],[-70.34199218750001,-11.066699218750017],[-70.39228515624995,-11.058593749999972],[-70.45087890624998,-11.024804687500009],[-70.53325195312496,-10.946875],[-70.59653320312498,-10.976855468750017],[-70.642333984375,-11.010253906249986],[-70.59916992187499,-9.620507812500009],[-70.54111328124998,-9.4375],[-70.60791015625,-9.463671875000031],[-70.63691406249995,-9.478222656249969],[-71.041748046875,-9.81875],[-71.11528320312499,-9.852441406250009],[-71.33940429687499,-9.988574218750031],[-72.18159179687495,-10.003710937500003],[-72.37905273437497,-9.51015625],[-73.20942382812493,-9.411425781249946],[-73.08984375,-9.26572265625002],[-72.970361328125,-9.120117187500028],[-72.97402343750002,-8.9931640625],[-73.07050781249995,-8.8828125],[-73.203125,-8.719335937499991],[-73.30244140624995,-8.654003906250011],[-73.36040039062496,-8.479296875000031],[-73.39814453125001,-8.458984374999986],[-73.54912109374993,-8.34580078125002],[-73.73203125,-7.875390625],[-73.72041015624993,-7.782519531250017],[-73.76689453124999,-7.753515624999963],[-73.82207031249996,-7.738964843750026],[-73.89462890624998,-7.654785156250014],[-73.946875,-7.611230468750023],[-73.98173828124996,-7.58505859375002],[-74.00205078125003,-7.556054687499966],[-73.98173828124996,-7.535742187500006],[-73.95849609374994,-7.506640625000031],[-73.96430664062498,-7.378906250000028],[-73.74946289062498,-7.335351562500037],[-73.72041015624993,-7.309277343749969],[-73.758203125,-7.172753906249952],[-73.79301757812499,-7.135058593750003],[-73.75810546874999,-6.90576171875],[-73.137353515625,-6.4658203125],[-73.23554687500001,-6.098437500000017],[-73.209375,-6.028710937500023],[-73.16289062499996,-5.933398437499974],[-72.97988281249997,-5.634863281249991],[-72.88706054687498,-5.122753906250026],[-72.83193359374994,-5.09375],[-72.69873046874997,-5.067187499999989],[-72.60834960937495,-5.009570312499974],[-72.46899414062497,-4.901269531250023],[-72.35283203124993,-4.786035156249994],[-72.25678710937501,-4.74892578124998],[-71.8447265625,-4.504394531249986],[-70.97368164062499,-4.350488281249994],[-70.86601562499999,-4.229589843749963],[-70.79951171874995,-4.173339843749957],[-70.72158203124997,-4.15888671875004],[-70.53066406249997,-4.167578125000034],[-70.40463867187498,-4.150097656250026],[-70.34365234375,-4.193652343750017],[-70.31689453124994,-4.246972656250037],[-70.23916015625002,-4.30117187499998],[-70.12880859375,-4.286621093749943],[-70.05332031249998,-4.333105468750006],[-70.00395507812496,-4.327246093749963],[-69.97202148437503,-4.30117187499998],[-69.96591796875003,-4.2359375],[-69.94819335937498,-4.200585937500009],[-69.66904296875003,-2.667675781249997],[-69.40024414062498,-1.194921874999977],[-69.63398437500001,-0.50927734375],[-70.07050781249993,-0.13886718750004],[-70.05390624999993,0.578613281250028],[-69.47211914062498,0.72993164062504],[-69.15332031249994,0.65878906250002],[-69.31181640624999,1.050488281249969],[-69.85214843750003,1.05952148437504],[-69.84858398437493,1.708740234375043],[-68.17656249999999,1.719824218749991],[-68.25595703125,1.845507812500017],[-68.19379882812495,1.987011718749983],[-67.93623046874998,1.748486328124969],[-67.40043945312499,2.116699218750028],[-67.11923828124998,1.703613281249986],[-67.082275390625,1.185400390625006],[-66.87602539062499,1.223046875000037],[-66.34711914062498,0.7671875],[-66.06005859375003,0.78535156250004],[-65.68144531249999,0.983447265624989],[-65.52299804687493,0.843408203124966],[-65.55605468750002,0.687988281250014],[-65.47338867187497,0.691259765624977],[-65.10375976562497,1.108105468749983],[-64.20502929687493,1.52949218750004],[-64.00849609374995,1.931591796874969],[-63.43251953124994,2.155566406250045],[-63.389257812500006,2.411914062500045],[-64.04658203124998,2.502392578124997],[-64.22109375000002,3.587402343749972],[-64.66899414062496,4.01181640625002],[-64.788671875,4.276025390625023],[-64.57636718750001,4.139892578125],[-64.19248046874995,4.126855468750009],[-64.02148437500003,3.929101562500051],[-63.33867187500002,3.943896484375045],[-62.85698242187502,3.593457031249969],[-62.71210937499998,4.01791992187502],[-62.41064453124994,4.156738281249972],[-62.153125,4.098388671874986],[-61.82084960937496,4.197021484375],[-61.28007812500002,4.516894531249974],[-61.00283203125002,4.535253906249991],[-60.603857421875006,4.94936523437498],[-60.671972656250034,5.164355468749989],[-60.71196289062499,5.191552734375023],[-60.742138671874926,5.202050781250037],[-60.6513671875,5.221142578125011],[-60.45952148437499,5.188085937500034],[-60.40878906249998,5.21015625],[-60.33520507812497,5.199316406250006],[-60.241650390624926,5.257958984374966],[-60.14204101562498,5.238818359374974],[-59.990673828124955,5.082861328124991],[-60.14863281249998,4.533251953125031],[-59.69970703125,4.353515625]]]]},"properties":{"name":"Brazil","childNum":17}},{"geometry":{"type":"Polygon","coordinates":[[[-59.493310546874994,13.081982421874997],[-59.611328125,13.102099609374989],[-59.6466796875,13.303125],[-59.427636718749994,13.152783203124997],[-59.493310546874994,13.081982421874997]]]},"properties":{"name":"Barbados","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[115.02675781250005,4.899707031249989],[115.1400390625,4.899755859374991],[115.290625,4.352587890624989],[115.10703125000006,4.390429687499974],[115.02675781250005,4.899707031249989]]],[[[115.02675781250005,4.899707031249989],[114.74667968750006,4.718066406250017],[114.84023437500005,4.393212890625009],[114.65410156250007,4.037646484375045],[114.0638671875,4.592675781249966],[114.42441406250006,4.660400390625],[114.99541015625002,5.022363281250023],[115.02675781250005,4.899707031249989]]]]},"properties":{"name":"Brunei","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[91.63193359375003,27.759960937499997],[91.5947265625,27.557666015624996],[91.74306640625002,27.442529296874994],[91.85126953125001,27.438623046874994],[91.95097656249999,27.458300781249996],[91.99082031250003,27.4501953125],[92.044921875,27.364697265624997],[92.08339843750002,27.290625],[92.03115234375002,27.214306640624997],[92.00253906250003,27.147363281249994],[91.99228515625003,27.099902343749996],[91.99863281250003,27.079296875],[92.03085937500003,27.040820312499996],[92.06816406249999,26.9751953125],[92.07343750000001,26.91484375],[92.04970703125002,26.874853515625],[91.99833984374999,26.85498046875],[91.84208984374999,26.852978515624997],[91.67158203125001,26.802001953125],[91.517578125,26.807324218749997],[91.45585937499999,26.866894531249997],[91.4267578125,26.867089843749994],[91.28652343750002,26.789941406249994],[90.73964843750002,26.771679687499997],[90.34589843750001,26.890332031249997],[90.2060546875,26.847509765625],[90.12294921875002,26.754589843749997],[89.94316406249999,26.723925781249996],[89.76386718750001,26.7015625],[89.60996093750003,26.719433593749997],[89.58613281250001,26.778955078124994],[89.33212890625003,26.8486328125],[89.14824218749999,26.816162109375],[89.04091796875002,26.865039062499996],[88.85761718750001,26.961474609374996],[88.73876953125,27.175585937499996],[88.76035156250003,27.218115234375],[88.88164062499999,27.2974609375],[88.89140624999999,27.316064453124994],[88.94755859374999,27.464013671874994],[89.48066406250001,28.059960937499994],[89.53691406249999,28.107421875],[89.65273437500002,28.15830078125],[89.74980468749999,28.188183593749997],[89.81689453125,28.256298828124997],[89.89785156250002,28.294140625],[89.98105468750003,28.311181640624994],[90.34824218750003,28.243945312499996],[90.36298828125001,28.216503906249997],[90.33310546875003,28.093994140625],[90.35273437500001,28.080224609374994],[90.47734374999999,28.070849609374996],[90.63007812500001,28.078564453124997],[90.71572265625002,28.071728515624997],[91.02080078124999,27.970068359375],[91.07773437500003,27.974462890625],[91.22587890624999,28.071240234374997],[91.27304687500003,28.078369140625],[91.30683593750001,28.064013671874996],[91.36757812500002,28.021630859374994],[91.64189453124999,27.923242187499994],[91.63193359375003,27.759960937499997]]]},"properties":{"name":"Bhutan","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[25.2587890625,-17.793554687500006],[25.242285156250006,-17.969042968750003],[25.939355468750023,-18.93867187500001],[26.168066406250006,-19.53828125000001],[27.17822265625,-20.10097656250001],[27.28076171875,-20.47871093750001],[27.679296875,-20.503027343750006],[27.66943359375,-21.064257812500003],[28.014062500000023,-21.55419921875],[29.02558593750001,-21.796875],[29.042382812500023,-22.018359375],[29.237207031250023,-22.07949218750001],[29.315234375000017,-22.15771484375],[29.36484375,-22.193945312500006],[29.1298828125,-22.21328125],[29.013476562500017,-22.278417968750006],[28.94580078125,-22.395117187500006],[28.83984375,-22.480859375],[28.21015625000001,-22.693652343750003],[27.812597656250006,-23.108007812500006],[27.7685546875,-23.14892578125],[27.085546875,-23.577929687500003],[26.835058593750006,-24.240820312500006],[26.617773437500006,-24.3955078125],[26.451757812500006,-24.58271484375001],[26.39716796875001,-24.613574218750003],[26.130859375,-24.671484375],[26.031835937500006,-24.702441406250003],[25.912109375,-24.74746093750001],[25.518164062500006,-25.66279296875001],[25.21337890625,-25.75625],[24.33056640625,-25.74287109375001],[24.19296875,-25.632910156250006],[23.969531250000017,-25.626074218750006],[23.89375,-25.600878906250003],[23.389257812500006,-25.29140625],[23.148730468750017,-25.288671875],[22.878808593750023,-25.45791015625001],[22.59765625,-26.13271484375001],[22.548632812500017,-26.17841796875001],[22.47089843750001,-26.219042968750003],[22.217578125000017,-26.38886718750001],[22.090917968750006,-26.580175781250006],[22.01093750000001,-26.635839843750006],[21.78828125000001,-26.710058593750006],[21.738085937500017,-26.80683593750001],[21.694726562500023,-26.840917968750006],[20.73984375,-26.84882812500001],[20.641406250000017,-26.7421875],[20.79316406250001,-25.915625],[20.4306640625,-25.147070312500006],[19.98046875,-24.77675781250001],[19.977343750000017,-22.00019531250001],[20.9794921875,-21.9619140625],[20.97412109375,-18.31884765625],[23.219335937500006,-17.99970703125001],[23.599707031250006,-18.4599609375],[24.243945312500017,-18.0234375],[24.530566406250017,-18.052734375],[24.909082031250023,-17.821386718750006],[25.2587890625,-17.793554687500006]]]},"properties":{"name":"Botswana","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[22.86005859375001,10.919677734375],[23.646289062500017,9.822900390624994],[23.62265625,9.340625],[23.46826171875,9.11474609375],[23.53730468750001,8.815820312499994],[24.147363281250023,8.665625],[24.291406250000023,8.29140625],[24.853320312500017,8.137548828124991],[25.20039062500001,7.807910156249989],[25.18134765625001,7.557226562499991],[25.27890625,7.427490234375],[26.36181640625,6.635302734374989],[26.30859375,6.455322265625],[26.514257812500006,6.069238281249994],[27.143945312500023,5.722949218749989],[27.4033203125,5.109179687499989],[27.071875,5.199755859374989],[26.822070312500017,5.062402343749994],[25.52509765625001,5.31210937499999],[25.065234375000017,4.967431640624994],[24.31982421875,4.994140625],[23.41718750000001,4.663134765624989],[22.864550781250017,4.723876953125],[22.422167968750017,4.134960937499997],[20.55810546875,4.462695312499989],[20.226367187500017,4.829638671874989],[19.806542968750023,5.089306640624997],[19.5009765625,5.127490234374989],[19.06855468750001,4.891406249999989],[18.594140625000023,4.346240234374989],[18.6103515625,3.478417968749994],[18.474414062500017,3.622998046874997],[18.160937500000017,3.499804687499989],[17.491601562500023,3.687304687499989],[16.610742187500023,3.50537109375],[16.468554687500017,2.831738281249997],[16.183398437500017,2.270068359374989],[16.0634765625,2.90859375],[15.128710937500017,3.826904296875],[15.063574218750006,4.284863281249997],[14.73125,4.602392578124991],[14.56298828125,5.279931640624994],[14.616894531250011,5.865136718749994],[14.43115234375,6.038720703124994],[14.7392578125,6.27978515625],[15.206738281250011,7.206152343749991],[15.480078125,7.523779296874991],[15.957617187500006,7.507568359375],[16.37890625,7.683544921874997],[16.545312500000023,7.865478515625],[16.784765625,7.550976562499997],[17.6494140625,7.98359375],[18.56416015625001,8.0458984375],[19.108691406250017,8.656152343749994],[18.886035156250017,8.836035156249991],[18.95625,8.938867187499994],[20.342089843750017,9.127099609374994],[20.773242187500017,9.405664062499994],[21.682714843750006,10.289843749999989],[21.771484375,10.642822265625],[22.49384765625001,10.996240234374994],[22.86005859375001,10.919677734375]]]},"properties":{"name":"Central African Rep.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-59.78759765624997,43.939599609374994],[-60.11748046874996,43.95336914062506],[-59.727148437500006,44.002832031249994],[-59.78759765624997,43.939599609374994]]],[[[-66.7625,44.68178710937502],[-66.8970703125,44.62890625],[-66.80214843749994,44.80537109374998],[-66.7625,44.68178710937502]]],[[[-60.961572265624966,45.48994140625001],[-61.081738281249926,45.55781249999998],[-60.91245117187498,45.56728515625005],[-60.961572265624966,45.48994140625001]]],[[[-73.69531249999997,45.58549804687502],[-73.85771484375002,45.573583984375006],[-73.57236328124998,45.69448242187502],[-73.69531249999997,45.58549804687502]]],[[[-73.56650390625003,45.469091796875034],[-73.960546875,45.44140624999997],[-73.68745117187498,45.561425781249994],[-73.47607421874997,45.704736328124994],[-73.56650390625003,45.469091796875034]]],[[[-61.10517578124998,45.94472656250002],[-60.86523437499997,45.983496093750006],[-61.05903320312501,45.70336914062497],[-60.73789062499995,45.75141601562498],[-60.46059570312494,45.96870117187501],[-60.733300781249994,45.956591796875045],[-60.297949218750034,46.31123046874998],[-60.22646484374994,46.19555664062506],[-59.86503906249993,46.159521484375006],[-59.8421875,45.941552734374994],[-60.67294921874995,45.59082031250006],[-61.28369140624994,45.573876953124966],[-61.44980468749995,45.71621093750002],[-61.40864257812501,46.17036132812498],[-60.87016601562499,46.796777343749966],[-60.40820312500003,47.00351562499998],[-60.332910156249966,46.737011718749955],[-60.49453125000002,46.270263671875],[-61.10517578124998,45.94472656250002]]],[[[-63.811279296875,46.46870117187501],[-63.68144531249993,46.561914062499994],[-63.12939453125,46.422216796875034],[-62.02373046874999,46.42158203125001],[-62.52607421875001,46.20288085937503],[-62.531347656250034,45.977294921875],[-63.02207031249998,46.06660156249998],[-62.89453125000003,46.12358398437496],[-63.056347656249955,46.22392578124996],[-62.97846679687498,46.31635742187498],[-63.21347656249998,46.15986328124998],[-63.641015624999966,46.23046874999997],[-63.758642578125034,46.397607421874994],[-64.11083984375003,46.425439453124994],[-64.13603515624999,46.59970703125006],[-64.388037109375,46.640869140625],[-63.99355468750002,47.06157226562502],[-64.08789062499997,46.77543945312499],[-63.811279296875,46.46870117187501]]],[[[-61.91411132812496,47.284521484375034],[-61.77255859374998,47.25981445312499],[-62.00830078124994,47.23427734375002],[-61.924707031249966,47.425146484375006],[-61.3955078125,47.63764648437504],[-61.91411132812496,47.284521484375034]]],[[[-54.227148437500034,47.44135742187501],[-54.32597656250002,47.408105468749994],[-54.12817382812494,47.646826171875034],[-54.227148437500034,47.44135742187501]]],[[[-74.70888671874997,45.0038574218751],[-73.55810546875,45.425097656250045],[-73.1595703125,46.01005859375002],[-72.10927734374997,46.55122070312504],[-71.26118164062495,46.75625],[-70.51948242187501,47.032519531250045],[-69.47104492187503,47.96728515625006],[-68.23818359374994,48.62641601562504],[-66.17817382812493,49.21313476562503],[-64.83632812499994,49.191748046875006],[-64.2162109375,48.873632812500034],[-64.51372070312493,48.84111328124999],[-64.24609374999994,48.69111328124998],[-64.34882812500001,48.423193359375034],[-65.259423828125,48.02124023437503],[-65.92670898437495,48.188867187499994],[-66.70439453125002,48.0224609375],[-66.35961914062494,48.06064453125006],[-65.84941406250002,47.91103515625005],[-65.60722656249996,47.67001953125006],[-65.00166015624995,47.84682617187502],[-64.70322265625,47.72485351562503],[-64.91220703125003,47.36865234375003],[-65.31889648437502,47.101220703124994],[-64.831396484375,47.06079101562503],[-64.88251953124993,46.822851562500034],[-64.54150390625,46.240332031250034],[-63.91591796875002,46.165820312500045],[-63.831933593749966,46.107177734375],[-64.05639648437503,46.021337890625006],[-63.70288085937494,45.858007812500034],[-62.70068359374997,45.740576171875006],[-62.750097656250006,45.64824218750002],[-62.483056640624966,45.62182617187506],[-61.955517578124955,45.86816406249997],[-61.776513671874994,45.655615234375006],[-61.49228515624998,45.68701171875],[-61.350488281249966,45.57368164062501],[-61.28198242187494,45.441064453124994],[-61.46098632812502,45.36669921875003],[-61.03154296875002,45.29174804687506],[-63.306298828124994,44.64257812500003],[-63.60400390624997,44.68320312500006],[-63.60976562499999,44.47998046875006],[-63.999707031249926,44.64492187499999],[-64.10087890624993,44.487451171874966],[-64.1669921875,44.58666992187503],[-64.28608398437493,44.55034179687499],[-64.27568359374993,44.33408203124998],[-65.48168945312497,43.51806640625],[-65.73813476562498,43.56074218750001],[-65.88691406250001,43.79521484374999],[-66.125732421875,43.813818359375034],[-66.19306640624995,44.143847656250045],[-65.86801757812498,44.56879882812501],[-66.14638671875002,44.43593750000005],[-66.090625,44.50493164062499],[-64.44814453125,45.33745117187502],[-64.13549804687497,45.023046875],[-64.09316406249997,45.21708984375002],[-63.368017578125034,45.36479492187502],[-64.87314453124998,45.35458984375006],[-64.31464843749998,45.83569335937503],[-64.48222656250002,45.80634765624998],[-64.63271484375002,45.94663085937506],[-64.77851562499998,45.63842773437497],[-65.88447265624995,45.22290039062506],[-66.10976562500002,45.316601562499955],[-66.02656249999995,45.417578125],[-66.43984374999994,45.09589843750001],[-66.87246093749997,45.067285156249966],[-67.12485351562498,45.16943359375],[-67.366943359375,45.17377929687498],[-67.43266601562496,45.603125],[-67.80224609374994,45.7275390625],[-67.806787109375,47.08281249999999],[-68.23549804687502,47.34594726562503],[-68.93720703124998,47.21123046875002],[-69.0501953125,47.426611328125034],[-69.24287109374998,47.46298828124998],[-70.00771484375002,46.70893554687501],[-70.296240234375,45.90610351562506],[-70.86503906249999,45.27070312500001],[-71.327294921875,45.29008789062496],[-71.51752929687495,45.00756835937497],[-74.663232421875,45.00390625000003],[-74.70888671874997,45.0038574218751]]],[[[-126.09208984374995,49.35400390625003],[-126.06401367187499,49.26362304687501],[-126.22963867187498,49.29565429687506],[-126.09208984374995,49.35400390625003]]],[[[-54.55439453125001,49.5888671875],[-54.786523437499966,49.496142578125045],[-54.86357421875002,49.576074218749966],[-54.55439453125001,49.5888671875]]],[[[-54.093701171874955,49.74443359374999],[-53.98066406250001,49.66196289062498],[-54.28613281249997,49.595361328124994],[-54.27763671875002,49.71147460937502],[-54.093701171874955,49.74443359374999]]],[[[-126.64121093749999,49.605810546875006],[-126.93857421874999,49.71845703125004],[-126.92583007812497,49.837744140625006],[-126.73813476562502,49.84365234375005],[-126.64121093749999,49.605810546875006]]],[[[-61.801123046875034,49.093896484374966],[-63.04150390624994,49.224951171875034],[-64.485205078125,49.88696289062497],[-64.13144531249995,49.94165039062503],[-62.858544921874966,49.70546875000005],[-61.817138671875,49.28354492187498],[-61.69614257812495,49.139013671875006],[-61.801123046875034,49.093896484374966]]],[[[-125.18413085937497,50.09711914062498],[-125.301171875,50.4140625],[-125.07402343750002,50.22065429687501],[-125.18413085937497,50.09711914062498]]],[[[-127.19731445312495,50.640380859375],[-125.48208007812501,50.316796874999966],[-124.83061523437499,49.53007812500002],[-123.99580078125,49.22402343750002],[-123.49702148437498,48.58208007812499],[-123.38989257812501,48.67021484374999],[-123.31064453125003,48.41103515625002],[-123.57314453124995,48.32280273437499],[-123.91694335937501,48.386572265625034],[-125.12070312500002,48.76079101562496],[-124.84965820312496,49.02827148437501],[-124.81264648437497,49.212646484375],[-124.92734374999998,49.01420898437499],[-125.489453125,48.933789062499955],[-125.82851562499998,49.09184570312499],[-125.64423828125001,49.18579101562506],[-125.95166015625001,49.24804687500003],[-125.93540039062499,49.401464843750006],[-126.51914062499999,49.396777343750045],[-126.54189453125001,49.590478515624966],[-126.13408203124997,49.672314453124955],[-126.52524414062499,49.71958007812498],[-126.90332031250001,49.94414062499999],[-127.114306640625,49.879736328125034],[-127.24980468749999,50.13798828124996],[-127.34941406249995,50.05195312500001],[-127.46713867187503,50.163427734375006],[-127.86391601562495,50.12773437500002],[-127.90585937499998,50.44521484375002],[-127.48652343749998,50.404638671875034],[-127.46591796874996,50.58310546875006],[-128.05834960937494,50.498486328124955],[-128.34604492187503,50.744238281250006],[-127.91806640624998,50.86054687500001],[-127.19731445312495,50.640380859375]]],[[[-55.45874023437494,51.53652343750005],[-55.58339843749994,51.38857421875002],[-56.031103515625034,51.328369140625],[-55.8,51.033300781250034],[-56.732324218749966,50.007714843749994],[-56.822167968749966,49.613476562499955],[-56.179394531249955,50.114990234375],[-56.161279296874994,49.94013671874998],[-55.50292968749997,49.98315429687503],[-56.14018554687496,49.61914062500006],[-55.869824218749955,49.67016601562506],[-56.08730468750002,49.45195312499999],[-55.375927734374955,49.48974609374997],[-55.34384765624998,49.37290039062506],[-55.22954101562496,49.508154296875006],[-55.35317382812502,49.07944335937506],[-54.50219726562503,49.52734375],[-54.44824218749997,49.329443359375006],[-53.957714843749955,49.44184570312498],[-53.61943359374996,49.321630859375006],[-53.57343750000001,49.141210937500034],[-54.16127929687494,48.787695312500034],[-53.852880859375006,48.81132812499996],[-53.966015624999955,48.70668945312505],[-53.70634765624999,48.65551757812503],[-54.11445312499998,48.393603515625045],[-53.027587890625,48.634716796874955],[-53.1357421875,48.40185546875003],[-53.60976562500002,48.20771484375001],[-53.56943359374998,48.088085937499955],[-53.869580078124926,48.019677734374966],[-53.63823242187496,48.01464843750003],[-53.863671874999966,47.787011718749994],[-53.67236328125,47.64824218749999],[-53.28271484375,47.99785156249996],[-52.86601562499993,48.11298828124998],[-53.16982421875002,47.51210937500005],[-52.945019531249955,47.55283203124998],[-52.782421874999955,47.769433593749966],[-52.653662109375034,47.549414062500006],[-53.11484375,46.65581054687502],[-53.32304687499996,46.71835937499998],[-53.589794921874955,46.638867187499955],[-53.59736328124998,47.14599609374997],[-54.00957031249993,46.839599609375],[-54.173730468749994,46.88037109375003],[-53.84951171875002,47.440332031249994],[-53.98901367187503,47.756201171875034],[-54.191845703124955,47.85981445312501],[-54.488134765625006,47.40385742187502],[-54.47392578124996,47.54707031249998],[-54.856640624999955,47.385009765625],[-55.31572265624993,46.905712890624955],[-55.78852539062498,46.86723632812502],[-55.91923828124996,47.01689453124996],[-55.49150390624996,47.16064453125003],[-54.78461914062501,47.664746093749955],[-55.366308593750034,47.66108398437501],[-55.57612304687498,47.46523437499999],[-56.12724609374999,47.50283203125002],[-55.867089843749994,47.592333984375045],[-55.85791015625,47.81918945312498],[-56.774121093749955,47.56499023437499],[-58.33686523437501,47.73085937500002],[-59.11694335937494,47.57070312499999],[-59.32065429687498,47.736914062500006],[-59.272070312500034,47.99555664062504],[-58.330224609374994,48.52211914062502],[-59.16767578124998,48.558496093749966],[-58.84179687500003,48.74643554687498],[-58.906445312499955,48.65019531249999],[-58.716455078124994,48.59804687500002],[-58.403662109375034,49.08432617187498],[-57.99052734374996,48.987939453124966],[-58.09892578124993,49.07744140624999],[-57.98007812499998,49.229638671874994],[-58.19091796875003,49.25874023437498],[-58.21337890625,49.38666992187501],[-58.01582031249998,49.54248046874997],[-57.79130859374999,49.48999023437503],[-57.92617187499999,49.700830078124994],[-57.4326171875,50.50581054687504],[-57.179589843749966,50.614843750000034],[-57.29799804687502,50.69873046874997],[-57.03593750000002,51.01083984374998],[-56.68242187500002,51.332763671875],[-56.025585937499955,51.56835937500006],[-55.6904296875,51.471337890624994],[-55.666406249999966,51.57890624999999],[-55.45874023437494,51.53652343750005]]],[[[-127.92465820312498,51.47387695312497],[-128.14877929687498,51.62670898437503],[-128.03173828125006,51.708398437499966],[-127.92465820312498,51.47387695312497]]],[[[-79.38427734374997,51.951953125000045],[-79.64375,52.01005859374996],[-79.27128906249996,52.086816406249966],[-79.38427734374997,51.951953125000045]]],[[[-128.36875,52.40087890625],[-128.43979492187503,52.696386718750006],[-128.24726562499998,52.784375],[-128.36875,52.40087890625]]],[[[-80.73168945312494,52.74726562499998],[-82.03925781249998,53.04990234374998],[-81.84731445312494,53.18627929687497],[-81.135595703125,53.20581054687503],[-80.73168945312494,52.74726562499998]]],[[[-131.7537109375,53.195556640625],[-131.63466796874997,52.92216796874999],[-131.97177734374998,52.87983398437498],[-131.45522460937502,52.70170898437502],[-131.59057617187494,52.578222656250006],[-131.25971679687495,52.415917968749966],[-131.31992187499998,52.30307617187498],[-131.142626953125,52.291113281250034],[-131.221533203125,52.15361328124999],[-132.16508789062493,52.783300781250034],[-132.14375,52.99931640624999],[-132.54677734374997,53.1375],[-131.7537109375,53.195556640625]]],[[[-128.55244140624998,52.93974609375002],[-128.50991210937502,52.51860351562502],[-128.678955078125,52.289648437500006],[-128.74633789062494,52.763378906249955],[-128.89980468749997,52.67382812500003],[-129.175927734375,52.964941406250006],[-129.033251953125,53.27993164062505],[-128.63266601562498,53.1125],[-128.55244140624998,52.93974609375002]]],[[[-129.167724609375,53.11787109374998],[-129.32387695312502,53.142138671875045],[-129.23818359374997,53.33007812500006],[-129.167724609375,53.11787109374998]]],[[[-129.84858398437498,53.167919921874955],[-130.51757812500003,53.54423828124999],[-130.45200195312498,53.63115234375002],[-129.94472656250002,53.436376953125034],[-129.75483398437498,53.244775390624994],[-129.84858398437498,53.167919921874955]]],[[[-130.236279296875,53.95854492187502],[-130.38422851562504,53.84394531250001],[-130.703173828125,53.892236328124994],[-130.44799804687497,54.08901367187502],[-130.236279296875,53.95854492187502]]],[[[-132.65551757812503,54.12749023437496],[-132.30336914062497,54.098876953125],[-132.16611328124998,53.95522460937505],[-132.53466796875,53.651708984375034],[-132.18696289062504,53.68481445312503],[-132.134423828125,54.03427734374998],[-131.66762695312502,54.14135742187503],[-131.957421875,53.308691406250034],[-132.34726562500003,53.18920898437503],[-132.747509765625,53.310498046874955],[-132.425,53.33696289062502],[-132.84501953125,53.507714843749994],[-133.07949218749997,53.837011718750034],[-133.04838867187493,54.15893554687497],[-132.65551757812503,54.12749023437496]]],[[[-130.92714843749997,54.47905273437499],[-130.90683593750003,54.63178710937504],[-130.75800781249998,54.61376953125],[-130.92714843749997,54.47905273437499]]],[[[-130.57534179687497,54.769677734374966],[-130.2140625,55.02587890625003],[-130.34941406249996,54.814550781250034],[-130.57534179687497,54.769677734374966]]],[[[-79.97758789062499,56.20703125000006],[-80.057470703125,56.28735351562497],[-79.57973632812502,56.466357421875045],[-79.97758789062499,56.20703125000006]]],[[[-78.93559570312496,56.26606445312498],[-79.17548828124998,55.88505859374999],[-79.18212890625,56.21215820312503],[-79.4951171875,55.87475585937503],[-79.76474609374995,55.80678710937505],[-79.54472656249999,56.12836914062501],[-79.9875,55.89213867187502],[-79.45888671875,56.53974609374998],[-79.53632812499995,56.180078124999966],[-79.27241210937493,56.600439453125006],[-78.93559570312496,56.26606445312498]]],[[[-61.743603515624955,57.55458984375005],[-61.6375,57.41606445312499],[-62.01123046875003,57.54848632812505],[-61.743603515624955,57.55458984375005]]],[[[-79.71650390624998,57.515527343749994],[-79.80844726562498,57.44243164062502],[-79.74257812499997,57.60795898437499],[-79.71650390624998,57.515527343749994]]],[[[-69.16005859375,59.04023437500001],[-69.35283203125002,58.96074218749999],[-69.30322265625003,59.144873046875006],[-69.16005859375,59.04023437500001]]],[[[-64.40703125,60.367089843749966],[-64.44194335937496,60.2978515625],[-64.73793945312497,60.37563476562502],[-64.83642578124997,60.50102539062499],[-64.40703125,60.367089843749966]]],[[[-68.23378906250002,60.24091796875001],[-68.36787109374998,60.314746093750045],[-68.08759765624998,60.58784179687501],[-67.81884765624994,60.449511718750074],[-68.23378906250002,60.24091796875001]]],[[[-78.531640625,60.72856445312499],[-78.66889648437498,60.716894531250006],[-78.24169921875,60.818652343750045],[-78.531640625,60.72856445312499]]],[[[-64.83261718749998,61.366064453125006],[-65.43212890625,61.649511718750034],[-64.78964843750003,61.662207031250034],[-64.83261718749998,61.366064453125006]]],[[[-65.03056640624999,61.879052734374966],[-64.89658203124995,61.73330078125005],[-65.23535156249997,61.89770507812506],[-65.03056640624999,61.879052734374966]]],[[[-79.54531250000002,62.41171875000006],[-79.28647460937495,62.247656250000034],[-79.32392578124995,62.02607421875001],[-79.81611328124995,61.59462890625002],[-80.26518554687496,61.818212890625006],[-80.26005859374996,62.10903320312502],[-79.9267578125,62.39287109375002],[-79.54531250000002,62.41171875000006]]],[[[-64.82382812499998,62.558740234374994],[-64.46503906249998,62.535937500000045],[-64.47832031250002,62.417871093749966],[-64.901220703125,62.421044921874994],[-64.82382812499998,62.558740234374994]]],[[[-70.33706054687497,62.548730468749994],[-70.76606445312498,62.596875],[-71.22011718750002,62.873925781249966],[-70.44262695312497,62.73378906250002],[-70.33706054687497,62.548730468749994]]],[[[-82.00048828124997,62.95419921874998],[-82.02583007812498,62.73007812499998],[-82.56826171875002,62.403222656249994],[-83.01582031249998,62.20991210937498],[-83.69887695312497,62.16025390624998],[-83.91049804687498,62.45415039062499],[-83.37641601562498,62.904931640624994],[-82.00048828124997,62.95419921874998]]],[[[-77.87670898437497,63.470556640625034],[-77.53271484374997,63.233642578125],[-77.94243164062496,63.11440429687502],[-78.536767578125,63.423730468749994],[-77.87670898437497,63.470556640625034]]],[[[-76.67758789062503,63.393945312499966],[-77.36474609374994,63.588330078124955],[-77.13369140624997,63.68203125000002],[-76.65244140624998,63.503564453124994],[-76.67758789062503,63.393945312499966]]],[[[-84.91962890624995,65.26108398437503],[-84.50112304687497,65.45844726562501],[-84.08486328125,65.21782226562502],[-82.05,64.64428710937506],[-81.67612304687498,64.21264648437503],[-81.88710937499997,64.01640625000002],[-80.82895507812495,64.08994140625],[-80.30205078124999,63.76220703125003],[-81.04638671875003,63.461572265624966],[-82.378125,63.706787109375],[-82.46708984375002,63.92695312500001],[-83.30395507812497,64.14379882812506],[-84.63291015625,63.30922851562502],[-85.39262695312496,63.119677734375045],[-85.76894531249997,63.70034179687502],[-87.15190429687499,63.58564453125001],[-86.93203124999997,63.90166015625002],[-86.252099609375,64.13686523437497],[-86.37426757812503,64.56582031249997],[-86.074609375,65.533837890625],[-85.55468750000003,65.91865234374995],[-85.17622070312501,65.746875],[-85.23994140624993,65.51030273437499],[-84.91962890624995,65.26108398437503]]],[[[-84.67475585937498,65.575],[-85.096337890625,65.756201171875],[-85.14960937500001,66.01538085937506],[-84.75737304687496,65.85893554687505],[-84.67475585937498,65.575]]],[[[-83.72597656249997,65.796728515625],[-83.23374023437495,65.71503906249995],[-83.332421875,65.63105468749998],[-84.11826171874995,65.77177734375007],[-84.40717773437501,66.13100585937497],[-83.78696289062495,65.96577148437498],[-83.72597656249997,65.796728515625]]],[[[-108.09272460937501,67.00517578124999],[-107.80551757812493,66.99858398437507],[-107.94394531249999,66.8578125],[-108.09272460937501,67.00517578124999]]],[[[-62.681542968749966,67.05629882812502],[-62.87163085937499,67.06259765625006],[-62.41679687499996,67.18847656250003],[-62.681542968749966,67.05629882812502]]],[[[-107.89985351562497,67.40180664062495],[-107.95024414062503,67.31821289062498],[-108.15224609374997,67.429443359375],[-108.04897460937498,67.664892578125],[-107.89985351562497,67.40180664062495]]],[[[-73.621728515625,67.783837890625],[-74.573388671875,67.82866210937507],[-74.70654296875003,68.06708984374995],[-73.49375,68.00063476562502],[-73.40717773437498,67.79306640625],[-73.621728515625,67.783837890625]]],[[[-86.59555664062498,67.7359375],[-86.89252929687498,67.836572265625],[-86.95981445312503,68.10024414062497],[-86.70209960937501,68.30561523437498],[-86.42114257812497,68.18344726562503],[-86.59555664062498,67.7359375]]],[[[-75.67587890624998,68.32250976562506],[-75.078125,68.17314453124999],[-75.20195312499996,67.45917968750001],[-75.78007812499996,67.28354492187503],[-76.94418945312498,67.25029296875002],[-77.30439453125001,67.68510742187505],[-77.12587890624997,67.94707031250002],[-76.59580078124998,68.27895507812497],[-75.67587890624998,68.32250976562506]]],[[[-78.98271484374999,68.19282226562501],[-79.17475585937493,68.26445312500002],[-78.95258789062495,68.35302734375006],[-78.98271484374999,68.19282226562501]]],[[[-104.54067382812497,68.405908203125],[-105.05136718749999,68.55903320312501],[-104.60200195312503,68.56152343749997],[-104.54067382812497,68.405908203125]]],[[[-74.880859375,68.34868164062505],[-75.40024414062503,68.52548828125],[-75.28740234374996,68.68774414062503],[-74.98364257812497,68.64760742187502],[-74.880859375,68.34868164062505]]],[[[-101.84589843749994,68.58632812499997],[-102.30815429687497,68.681982421875],[-102.01337890624995,68.82539062500001],[-101.73295898437495,68.75341796875],[-101.84589843749994,68.58632812499997]]],[[[-100.21723632812497,68.80668945312502],[-100.59653320312496,68.76640625000007],[-100.56547851562495,69.02680664062501],[-100.21723632812497,68.80668945312502]]],[[[-99.99467773437502,69.01352539062503],[-100.19570312500002,68.991455078125],[-100.153125,69.12949218750003],[-99.99467773437502,69.01352539062503]]],[[[-79.21064453124995,68.845458984375],[-79.24267578125,69.04926757812495],[-78.33256835937496,69.38603515624999],[-78.77919921875,68.95048828124999],[-79.21064453124995,68.845458984375]]],[[[-90.1998046875,69.419091796875],[-90.33027343749993,69.252197265625],[-90.49204101562503,69.369873046875],[-90.1998046875,69.419091796875]]],[[[-76.99536132812503,69.14375],[-77.37939453125,69.2740234375],[-77.18754882812502,69.440087890625],[-76.66884765625002,69.36616210937504],[-76.99536132812503,69.14375]]],[[[-101.171728515625,69.39707031250003],[-101.31289062499998,69.57607421875],[-101.00063476562497,69.4619140625],[-101.171728515625,69.39707031250003]]],[[[-95.51367187499997,69.57363281250002],[-95.43745117187498,69.37846679687505],[-95.73012695312502,69.34755859374997],[-95.80620117187499,69.56049804687501],[-95.89345703125,69.35175781250004],[-95.87583007812495,69.60600585937505],[-95.51367187499997,69.57363281250002]]],[[[-67.91469726562494,69.54096679687504],[-68.22138671874998,69.61674804687502],[-67.908837890625,69.68183593749995],[-67.91469726562494,69.54096679687504]]],[[[-78.02910156249993,69.71489257812502],[-78.03999023437495,69.6083984375],[-78.84819335937502,69.4828125],[-78.02910156249993,69.71489257812502]]],[[[-79.43066406250003,69.78779296874995],[-79.55283203124995,69.63085937500006],[-80.04750976562502,69.63432617187505],[-79.97783203124993,69.50966796874997],[-80.794775390625,69.68925781250005],[-80.42421875000002,69.797607421875],[-79.43066406250003,69.78779296874995]]],[[[-97.439453125,69.64267578125006],[-96.29995117187494,69.34438476562505],[-95.7513671875,68.89765624999998],[-95.26777343749998,68.82607421874997],[-96.40156249999995,68.47070312500003],[-97.47202148437498,68.543701171875],[-98.320556640625,68.84272460937498],[-98.70380859374993,68.80278320312502],[-98.90449218749995,68.93242187500005],[-99.25400390625002,68.86318359374997],[-99.49467773437493,68.95957031249998],[-99.455712890625,69.13120117187503],[-98.45595703124997,69.33466796875001],[-98.54599609375,69.57290039062497],[-98.04135742187498,69.456640625],[-98.20048828124996,69.79697265625006],[-97.79072265624998,69.86162109374999],[-97.439453125,69.64267578125006]]],[[[-86.91303710937501,70.11323242187501],[-86.55766601562499,69.99531249999995],[-87.3232421875,70.08012695312502],[-86.91303710937501,70.11323242187501]]],[[[-74.70888671874997,45.0038574218751],[-74.76245117187494,44.99907226562502],[-74.99614257812496,44.970117187499966],[-75.40126953124997,44.77226562499999],[-75.81933593749997,44.468017578125],[-76.18579101562503,44.24223632812502],[-76.819970703125,43.62880859375011],[-77.59653320312492,43.62861328125007],[-78.45825195312497,43.63149414062511],[-78.72041015624993,43.62495117187501],[-78.84555664062492,43.58334960937506],[-79.171875,43.466552734375085],[-79.0830566406249,43.33139648437509],[-79.05922851562494,43.27807617187506],[-79.066064453125,43.10610351562502],[-79.02617187499996,43.01733398437506],[-78.98076171874993,42.98061523437502],[-78.91508789062496,42.90913085937504],[-79.17373046875,42.74853515625],[-80.24755859374991,42.366015625000045],[-81.02822265624997,42.247167968750006],[-81.50732421874997,42.10346679687504],[-81.97416992187496,41.88872070312499],[-82.43906249999989,41.6748535156251],[-82.69003906249995,41.675195312499994],[-83.141943359375,41.97587890624996],[-83.10952148437497,42.25068359375001],[-82.54531249999997,42.62470703124998],[-82.19038085937495,43.47407226562501],[-82.137841796875,43.570898437500034],[-82.48505859374993,45.08374023437503],[-82.55107421874987,45.3473632812501],[-82.91933593749994,45.51796875000002],[-83.59267578125,45.81713867187506],[-83.46948242187503,45.99467773437499],[-83.61596679687503,46.116845703124994],[-83.97778320312494,46.08491210937507],[-84.12319335937497,46.50292968749997],[-84.44047851562496,46.49814453125006],[-84.66577148437503,46.54326171875002],[-84.87597656249994,46.89990234375003],[-85.07006835937497,46.97993164062498],[-85.65224609375,47.21997070312503],[-86.67216796874996,47.636425781249955],[-87.20800781249997,47.848486328125006],[-87.74389648437497,48.06054687500003],[-88.37817382812497,48.30307617187506],[-89.45566406249992,47.99624023437508],[-90.79731445312495,48.13105468750001],[-91.04345703124991,48.19370117187498],[-91.38720703124997,48.05854492187498],[-92.00517578125002,48.301855468750006],[-92.3484375,48.276611328125],[-92.41459960937493,48.276611328125],[-92.50058593749995,48.43535156250002],[-92.83671875,48.567773437499994],[-93.25795898437497,48.62885742187501],[-93.37788085937498,48.61655273437498],[-93.70771484374995,48.525439453125074],[-93.85161132812496,48.607275390625034],[-94.6208984374999,48.7426269531251],[-94.71279296874997,48.863427734374994],[-94.80346679687497,49.0029296875],[-94.86040039062493,49.258593750000045],[-94.85434570312495,49.304589843749994],[-95.15527343749997,49.3696777343751],[-95.16206054687493,48.991748046875045],[-95.39790039062493,48.99316406249997],[-96.25068359374993,48.99316406249997],[-96.67705078124993,48.99316406249997],[-97.52983398437493,48.99316406249997],[-98.80898437499995,48.99316406249997],[-104.77832031249997,48.993115234375125],[-110.7476562499999,48.993066406250136],[-116.71704101562493,48.993066406250136],[-118.84892578124993,48.993066406250136],[-119.27534179687494,48.993066406250136],[-119.70170898437495,48.99301757812495],[-120.98085937499995,48.99301757812495],[-122.78876953124994,48.99301757812495],[-122.82670898437495,49.028417968750034],[-122.9241699218749,49.07465820312504],[-122.96269531249993,49.07460937500005],[-123.06328125,48.97773437500001],[-123.22944335937493,49.260498046875085],[-122.87910156249995,49.39892578125003],[-123.27675781249997,49.34394531250001],[-123.1875,49.680322265624994],[-123.53056640624989,49.39731445312506],[-124.02861328125002,49.602880859375006],[-123.99262695312497,49.736181640625006],[-123.81718749999993,49.58657226562508],[-123.58247070312498,49.68125],[-123.87441406250005,49.736816406250114],[-123.82543945312493,50.14423828124998],[-123.94589843749995,50.18393554687509],[-123.9849121093749,49.87558593749998],[-124.28125,49.77211914062502],[-124.78237304687492,50.02011718749992],[-125.05668945312495,50.418652343750125],[-124.8598632812499,50.872412109375006],[-125.05878906249993,50.51386718749998],[-125.4763183593749,50.49716796874995],[-125.53935546874996,50.64902343749998],[-125.64130859374994,50.46621093750005],[-126.09433593749995,50.497607421875045],[-126.44746093750004,50.58774414062492],[-125.90410156250002,50.704931640625006],[-126.51435546875,50.679394531250125],[-126.37460937499995,50.83735351562498],[-126.5217773437499,50.86606445312498],[-126.51733398437497,51.0568359375001],[-126.63178710937494,50.915136718750006],[-127.057568359375,50.86752929687509],[-127.70810546875,51.15117187499996],[-127.41967773437496,51.608056640625136],[-126.69145507812502,51.70341796875002],[-127.33872070312489,51.70737304687495],[-127.66870117187497,51.47758789062502],[-127.85053710937498,51.67319335937509],[-127.79536132812493,52.19101562500006],[-127.43793945312504,52.356152343750125],[-127.24223632812496,52.39511718750009],[-126.71396484374989,52.060693359374994],[-127.19399414062498,52.45766601562502],[-126.95136718749994,52.7510253906251],[-127.01933593750002,52.8424804687501],[-127.06621093749989,52.65268554687498],[-127.79189453124994,52.28935546875002],[-128.10224609374993,51.78842773437495],[-128.3576171875,52.1588867187501],[-128.0375,52.318164062500045],[-127.94023437499996,52.545166015625085],[-128.27153320312493,52.3629882812501],[-128.05327148437487,52.91069335937496],[-128.3650390624999,52.82578125000006],[-128.52470703125002,53.1406738281251],[-129.08090820312492,53.36728515625006],[-129.1715820312499,53.53359375000002],[-128.8545898437499,53.70454101562504],[-128.90561523437492,53.559326171875114],[-128.5421386718749,53.420654296875114],[-128.13271484375002,53.417773437500045],[-127.92783203125,53.274707031250045],[-128.2072265624999,53.483203125000074],[-128.67553710937494,53.55458984375005],[-128.76367187500003,53.746875],[-128.5321289062499,53.85810546875007],[-128.959375,53.84145507812505],[-129.2578613281249,53.417968750000085],[-129.56372070312506,53.251464843750114],[-130.33525390625002,53.723925781250074],[-130.04331054687495,54.13354492187503],[-129.62602539062493,54.23027343750002],[-130.08422851562503,54.18139648437503],[-130.4302734375,54.42099609374998],[-129.56064453124995,55.46254882812508],[-129.79516601562503,55.559570312500114],[-130.04848632812494,55.05727539062511],[-130.01406249999997,55.950537109375006],[-130.09785156249995,56.10927734375002],[-130.41313476562487,56.12250976562507],[-130.47709960937496,56.230566406250034],[-130.649072265625,56.26367187500003],[-131.471875,56.55673828125006],[-131.82426757812496,56.58999023437508],[-131.86616210937495,56.792822265625006],[-132.1042968749999,56.85678710937509],[-132.062890625,56.95336914062503],[-132.33798828124992,57.07944335937498],[-132.27939453124998,57.14536132812506],[-132.23217773437494,57.198535156250074],[-132.30166015625005,57.2763183593751],[-132.44248046874986,57.40673828125003],[-132.55048828124995,57.499902343749994],[-133.00141601562495,57.948974609375],[-133.27529296875,58.22285156250004],[-133.54638671874997,58.50346679687499],[-134.21850585937503,58.849902343750045],[-134.32963867187505,58.93969726562506],[-134.39306640625,59.009179687499994],[-134.67724609374997,59.19926757812499],[-134.94375,59.28828125000001],[-135.05102539062491,59.57866210937502],[-135.36787109374998,59.743310546874994],[-135.70258789062504,59.72875976562506],[-136.3218261718749,59.604833984375034],[-136.27797851562494,59.48032226562506],[-136.46635742187493,59.459082031250006],[-136.57875976562494,59.15224609375002],[-136.81328125000002,59.15004882812511],[-137.12622070312491,59.04096679687507],[-137.2775390624999,58.988183593749994],[-137.43857421874995,58.903125],[-137.52089843749994,58.91538085937506],[-137.59331054687493,59.22626953124998],[-138.317626953125,59.611132812500074],[-138.86875,59.94575195312501],[-139.18515624999986,60.083593750000034],[-139.13696289062494,60.17270507812506],[-139.07924804687497,60.279443359375136],[-139.07924804687497,60.3437011718751],[-139.23476562499997,60.339746093749994],[-139.67631835937505,60.32832031249998],[-139.97329101562497,60.183154296875074],[-140.45283203125004,60.29970703125002],[-140.5254394531249,60.21835937499995],[-140.76274414062505,60.25913085937509],[-141.00214843750004,60.300244140625125],[-141.00214843750004,60.884667968749994],[-141.00214843750004,61.761279296875045],[-141.00214843750004,63.22226562499998],[-141.00214843750004,64.09887695312506],[-141.00214843750004,65.55991210937498],[-141.00214843750004,66.43652343750006],[-141.00214843750004,67.89755859374998],[-141.00214843750004,68.77416992187506],[-141.00214843750004,69.65078125000011],[-139.18154296874997,69.51552734375008],[-137.25996093749998,68.96411132812503],[-136.12236328124993,68.88222656250002],[-135.258837890625,68.68432617187503],[-135.93901367187487,68.9741699218751],[-135.575537109375,69.02695312500003],[-135.91020507812487,69.11147460937502],[-135.6914550781249,69.31118164062502],[-135.29282226562486,69.30786132812506],[-135.1408203124999,69.46782226562496],[-134.45683593749993,69.47763671875],[-134.40893554687494,69.68178710937502],[-133.87978515624997,69.50771484375011],[-134.17431640624991,69.25283203125005],[-133.16313476562496,69.43388671874999],[-132.91533203125002,69.62963867187506],[-132.40390625,69.65874023437496],[-132.48847656249993,69.73808593749996],[-132.16342773437498,69.70498046875014],[-131.13637695312497,69.90688476562505],[-130.66547851562495,70.12705078124998],[-129.944970703125,70.09091796875006],[-129.675634765625,70.19296875000009],[-129.64829101562495,69.9977539062501],[-130.83208007812487,69.65146484375006],[-131.9377929687499,69.5347167968751],[-132.8174804687499,69.20576171875004],[-133.41831054687492,68.84428710937493],[-133.138037109375,68.74658203125011],[-133.33666992187497,68.83525390625005],[-132.57763671874997,68.84780273437514],[-132.71894531249998,69.07919921875],[-131.78837890625002,69.43198242187495],[-131.32470703124997,69.36118164062509],[-131.06342773437504,69.45068359375003],[-130.97065429687495,69.20908203125],[-130.1176269531249,69.720068359375],[-128.89892578124994,69.96616210937506],[-129.15791015624995,69.80009765624999],[-129.05434570312502,69.70107421875005],[-128.85302734375003,69.7510253906251],[-127.68378906249994,70.26035156249995],[-128.17011718749998,70.41845703125],[-127.99101562499992,70.57382812500003],[-127.22597656249992,70.29614257812497],[-126.25043945312495,69.54526367187492],[-125.52495117187495,69.35156250000009],[-125.171875,69.42797851562503],[-125.35693359374991,69.62597656250003],[-124.767919921875,69.99003906249996],[-124.99038085937494,70.02661132812511],[-124.55502929687488,70.15122070312509],[-124.40693359374991,69.76743164062506],[-124.12460937499995,69.6899902343751],[-124.33808593749991,69.36484374999995],[-123.5284179687499,69.38935546874995],[-123.02578125,69.81000976562504],[-122.07006835937499,69.81616210937506],[-120.96245117187502,69.66040039062511],[-120.13999023437488,69.38056640625013],[-117.22695312499998,68.913427734375],[-116.05947265625,68.83701171875006],[-116.2434082031249,68.9740722656251],[-115.44228515624994,68.94091796875009],[-114.62016601562496,68.74609375],[-113.96440429687495,68.39907226562502],[-114.09594726562491,68.26679687500007],[-114.76528320312494,68.27021484375004],[-115.12705078124992,68.13203124999995],[-115.43447265624994,67.90234375000006],[-115.13320312499994,67.819189453125],[-112.50302734374993,67.6819335937501],[-110.9900390624999,67.79082031250007],[-110.07392578124995,67.99291992187506],[-109.63037109374991,67.73271484374996],[-109.03803710937504,67.69116210937503],[-108.85200195312497,67.42197265625009],[-108.61333007812493,67.59804687500008],[-107.98872070312495,67.2563964843751],[-107.99130859374995,67.09516601562513],[-108.49604492187493,67.09228515625006],[-107.25947265624998,66.39853515624995],[-107.71035156250001,66.74003906250007],[-107.7250976562499,66.98413085937506],[-107.15649414062497,66.88173828124997],[-107.9583984375,67.81860351562506],[-107.79829101562498,68.03691406249996],[-106.42426757812491,68.20058593750008],[-105.7501953125,68.59228515625011],[-106.45805664062496,68.51645507812495],[-106.60849609374988,68.35737304687504],[-107.61933593749994,68.3310546875],[-107.73417968749989,68.17373046875011],[-108.3228027343749,68.15410156250002],[-108.71811523437488,68.29746093750009],[-108.31347656249996,68.61079101562498],[-106.16445312499992,68.91987304687507],[-105.68559570312489,68.82817382812505],[-105.3774414062499,68.413818359375],[-104.65317382812488,68.23007812500003],[-104.48681640624991,68.06318359374998],[-103.47412109374993,68.11503906250005],[-102.32036132812489,67.73564453125005],[-101.55498046874992,67.69316406250007],[-100.21293945312489,67.83857421875004],[-98.92045898437502,67.72578124999998],[-98.41210937499991,67.80717773437505],[-98.63154296875004,68.0725585937501],[-97.45493164062486,67.61699218750002],[-97.20654296874989,67.85507812500003],[-97.73911132812495,67.97817382812505],[-98.19252929687494,67.92299804687502],[-98.65048828124989,68.36352539062506],[-98.21855468750002,68.31743164062507],[-97.7942382812499,68.38759765625],[-97.9250976562499,68.523681640625],[-97.41035156249993,68.49653320312498],[-96.97670898437497,68.25541992187505],[-96.43066406249991,68.3105957031251],[-96.72207031250005,68.03876953124998],[-95.9703125,68.24912109375],[-96.36914062499991,67.50976562500003],[-96.14145507812489,67.27182617187503],[-95.71992187499998,67.31679687500014],[-95.77768554687495,67.18461914062505],[-95.41591796875005,67.15556640624999],[-95.41889648437504,67.01323242187493],[-96.42255859374995,67.05175781249997],[-95.7875488281249,66.616796875],[-96.03686523437489,66.9375],[-95.39965820312503,66.94946289062509],[-95.25874023437493,67.26254882812492],[-95.65048828124986,67.73745117187505],[-95.46069335937503,68.02138671875],[-94.74443359374993,68.07089843749995],[-93.44892578124998,68.61889648437503],[-93.85244140624994,69.00034179687495],[-94.06489257812495,68.78476562500006],[-94.600439453125,68.80322265625011],[-94.08364257812497,69.12309570312507],[-94.254736328125,69.31376953125002],[-93.61948242187492,69.41699218750009],[-93.74853515624991,69.2261230468751],[-93.5322753906249,69.48090820312495],[-94.2708007812499,69.45512695312505],[-94.63383789062496,69.64965820312506],[-94.82250976562494,69.577783203125],[-95.96494140624989,69.80278320312499],[-96.5513671875,70.21030273437506],[-96.29770507812492,70.51137695312511],[-95.87861328124998,70.54897460937514],[-95.88632812499986,70.69428710937507],[-96.25800781249993,70.64228515625013],[-96.54892578124995,70.80874023437511],[-96.44658203124996,71.23989257812502],[-96.06201171874997,71.41386718749993],[-95.5642578124999,71.33676757812503],[-95.40625,71.49165039062498],[-95.87231445312494,71.57314453125005],[-94.73486328124994,71.98295898437507],[-94.30834960937491,71.76489257812506],[-93.74628906249998,71.742822265625],[-92.94868164062493,71.26210937500011],[-92.98144531249994,70.8522460937501],[-91.56406249999995,70.1782714843751],[-92.32050781250004,70.2353515625],[-92.51186523437494,70.10385742187503],[-91.976708984375,70.03867187500009],[-92.88779296874989,69.66821289062511],[-92.31166992187494,69.67290039062499],[-91.91196289062495,69.53125],[-91.20180664062494,69.64477539062494],[-91.43994140624997,69.52568359375002],[-90.4155761718749,69.45698242187507],[-90.89228515625004,69.26728515624995],[-91.23720703125005,69.28554687500014],[-90.47900390624994,68.88115234374999],[-90.57363281250005,68.47470703124998],[-90.20478515625004,68.25747070312511],[-89.27954101562491,69.25546875000003],[-88.22353515625,68.91503906249997],[-87.81357421874986,68.34570312499997],[-87.89267578125,68.24814453125],[-88.34697265624993,68.28828125000001],[-88.313818359375,67.95034179687508],[-87.359375,67.17724609374997],[-86.56079101562491,67.48212890625007],[-85.64316406249992,68.69970703124997],[-84.86757812499994,68.77333984375005],[-85.10664062499995,68.84404296875007],[-84.86220703125,69.07397460937503],[-85.38676757812493,69.23188476562504],[-85.50737304687487,69.84526367187493],[-82.61835937499993,69.69106445312514],[-82.39023437499989,69.60087890625007],[-82.75483398437493,69.49438476562506],[-82.30986328124996,69.41000976562509],[-82.22753906249997,69.24887695312495],[-81.37783203125005,69.18564453125003],[-81.95791015624991,68.88364257812498],[-81.38090820312496,68.85004882812504],[-81.28154296874987,68.65722656250003],[-81.91484374999993,68.4587890625001],[-82.55268554687504,68.44648437500007],[-82.22241210937489,68.145263671875],[-82.0125,68.19389648437496],[-81.97646484374997,67.86201171875001],[-81.2943359375,67.497412109375],[-81.46757812499996,67.0698730468751],[-83.40644531249998,66.37124023437508],[-84.53847656249994,66.97280273437505],[-84.84575195312502,67.02871093750008],[-85.11372070312498,66.90693359375013],[-84.73774414062504,66.93359375000006],[-84.223046875,66.68247070312506],[-83.86904296875,66.2135742187501],[-84.29306640624995,66.29179687500005],[-84.628076171875,66.20771484374998],[-85.603857421875,66.56826171875005],[-86.708154296875,66.52304687500009],[-86.68510742187502,66.36040039062499],[-85.95874023437491,66.11904296875002],[-87.45288085937503,65.33896484375009],[-87.96997070312503,65.34892578124999],[-89.7494140625,65.93603515625006],[-89.88969726562487,65.86855468749997],[-91.42724609374994,65.94790039062497],[-91.04111328124989,65.82983398437509],[-90.98344726562496,65.91923828124999],[-89.92407226562497,65.78027343750011],[-88.97402343749994,65.34829101562502],[-87.02753906249995,65.19809570312498],[-88.10561523437497,64.18330078125001],[-88.81772460937489,63.99223632812499],[-89.20063476562493,64.11376953125006],[-89.13154296874998,63.96850585937494],[-89.61582031249995,64.030615234375],[-89.8113281249999,64.18056640625],[-90.04165039062494,64.14086914062509],[-89.85571289062497,63.9569824218751],[-90.16816406250004,63.978759765625085],[-90.15473632812498,63.68964843749998],[-90.81191406249991,63.580908203125034],[-91.98222656249996,63.82241210937502],[-92.33842773437496,63.787646484375045],[-93.69633789062493,64.14716796875013],[-93.55981445312491,63.865283203125074],[-93.27021484374998,63.840869140625074],[-93.37851562499992,63.94848632812497],[-92.15688476562491,63.691699218750045],[-92.46508789062491,63.55507812500011],[-91.84184570312496,63.69755859374999],[-90.97006835937489,63.442773437500136],[-90.69858398437492,63.06386718750005],[-91.44897460937503,62.804052734375034],[-92.3612792968749,62.81938476562496],[-91.93583984374993,62.59238281250009],[-92.55141601562491,62.546728515625034],[-92.76596679687492,62.34995117187509],[-92.52797851562494,62.16840820312504],[-93.20537109374993,62.364941406250125],[-92.90551757812503,62.21513671874996],[-93.3330566406249,61.93291015625002],[-93.58178710937494,61.94204101562511],[-93.31201171874997,61.76728515625004],[-93.91274414062497,61.48144531250006],[-94.509375,60.60454101562493],[-94.76171874999991,60.498242187500125],[-94.78828124999998,59.26787109374993],[-94.95732421874996,59.068847656250085],[-94.28706054687493,58.716015625000125],[-94.33222656249998,58.297363281250114],[-94.12319335937494,58.73671875000008],[-93.1787597656249,58.72563476562496],[-92.43281249999993,57.3203125],[-92.7981445312499,56.921972656250034],[-90.89746093750003,57.25693359375006],[-88.94848632812489,56.85131835937503],[-88.07509765624997,56.46728515624994],[-87.48242187499991,56.021289062500045],[-85.55932617187491,55.54018554687508],[-85.21801757812491,55.348974609375034],[-85.3652832031249,55.07929687499998],[-85.06093749999997,55.285644531250085],[-83.91059570312493,55.314648437499955],[-82.39326171874998,55.067822265625125],[-82.219384765625,54.8134765625],[-82.42416992187486,54.2445800781251],[-82.14145507812492,53.81762695312497],[-82.29155273437496,53.03071289062507],[-81.5994140624999,52.432617187500085],[-81.82788085937489,52.22421875000009],[-81.46621093749994,52.204492187500136],[-80.588037109375,51.667236328125114],[-80.4433105468749,51.38857421875002],[-80.85122070312497,51.125],[-80.47832031249993,51.30732421874998],[-80.10356445312487,51.282861328125136],[-79.34790039062494,50.76264648437504],[-79.737451171875,51.186279296875],[-79.33867187500002,51.62817382812497],[-79.04052734375003,51.46376953125005],[-78.90317382812495,51.200292968750034],[-78.73134765624994,51.497460937499994],[-78.98164062499993,51.774560546875136],[-78.44809570312495,52.26137695312502],[-78.74414062499994,52.65537109374998],[-79.10034179687497,53.65664062500005],[-78.99604492187493,54.00249023437499],[-79.241796875,54.098876953125085],[-79.14672851562491,54.16923828125002],[-79.71235351562495,54.6718261718751],[-77.77529296874994,55.291259765625],[-76.60405273437496,56.19956054687495],[-76.52558593749998,56.8917968750001],[-76.80981445312497,57.65795898437506],[-77.15678710937496,58.018896484375034],[-78.51508789062493,58.68237304687503],[-77.76069335937498,59.38002929687505],[-77.72617187499995,59.67587890624992],[-77.34907226562495,59.57895507812509],[-77.48530273437493,59.684570312500114],[-77.28920898437494,60.0220214843751],[-77.58588867187498,60.088183593750074],[-77.45288085937497,60.1458007812501],[-77.6814453124999,60.427099609375034],[-77.503564453125,60.54272460937497],[-77.7908203124999,60.63984375000004],[-77.58955078124993,60.808593750000114],[-78.18134765624995,60.81914062499996],[-77.51435546874998,61.55629882812505],[-78.02138671874997,61.8320800781251],[-78.13339843749986,62.28227539062496],[-77.372412109375,62.572509765625114],[-75.81689453124991,62.31586914062507],[-75.7898437499999,62.17958984375002],[-75.3412109375,62.312109375],[-74.63256835937497,62.115673828125125],[-74.6458007812499,62.21113281250004],[-73.70507812499991,62.47314453124994],[-72.68696289062498,62.12456054687499],[-72.771630859375,61.840429687500006],[-72.50556640624998,61.922656250000074],[-72.22612304687487,61.83159179687499],[-72.04003906249991,61.68027343750006],[-72.21586914062502,61.58725585937495],[-71.86611328125,61.68852539062499],[-71.63828124999995,61.6171875],[-71.85439453124991,61.43979492187492],[-71.42270507812489,61.158935546875085],[-70.27929687499991,61.06865234374999],[-69.99243164062491,60.8564941406251],[-69.50332031249994,61.04042968750011],[-69.40473632812493,60.84677734375009],[-69.75947265624998,60.440234375000045],[-69.67373046874994,60.07587890625007],[-70.65483398437496,60.02622070312506],[-69.73393554687493,59.918017578125045],[-69.68188476562489,59.34174804687507],[-69.3440429687499,59.303076171875006],[-69.53164062499994,58.86923828125009],[-69.64838867187493,58.82080078125],[-69.78417968749994,58.95571289062511],[-70.15434570312496,58.76059570312498],[-69.78989257812486,58.689306640625034],[-69.27109374999986,58.88393554687505],[-68.69819335937495,58.904541015625],[-68.38115234374993,58.74350585937506],[-68.22939453124994,58.48457031250007],[-68.35654296874989,58.163232421875136],[-69.04082031249996,57.902490234375136],[-68.41357421874997,58.0517578125],[-68.02104492187493,58.48530273437504],[-67.88828124999989,58.29575195312495],[-68.06386718750005,58.13896484374999],[-67.75595703124992,58.4045898437501],[-67.6782714843749,57.99111328125008],[-67.5696289062499,58.21347656250006],[-66.72216796874991,58.49101562499996],[-66.36240234374989,58.791162109374994],[-66.0023925781249,58.43120117187502],[-66.04306640624995,58.82065429687495],[-65.72099609374996,59.02377929687495],[-65.38354492187494,59.06020507812508],[-65.7,59.21333007812501],[-65.4117187499999,59.31499023437496],[-65.47509765624994,59.47031249999998],[-65.03823242187494,59.38789062500007],[-65.40742187499993,59.53935546875002],[-65.4333984374999,59.776513671874994],[-65.02817382812495,59.77070312500007],[-65.17172851562489,59.90800781249996],[-64.81733398437498,60.3310546875],[-64.49941406250005,60.26826171875001],[-64.41958007812494,60.17138671874997],[-64.76845703124997,60.01210937500005],[-64.28349609374993,60.06406249999998],[-64.22631835937491,59.741210937500085],[-64.05605468750005,59.82255859374996],[-63.7501953124999,59.51259765625005],[-63.945458984374994,59.380175781250074],[-63.775878906249915,59.277148437500045],[-63.539892578124864,59.332861328125034],[-63.41513671874995,59.194384765625074],[-63.97114257812498,59.053808593750034],[-63.24843749999991,59.068310546874955],[-63.28212890624994,58.86738281250007],[-63.05029296874997,58.87817382812494],[-62.87387695312489,58.67246093749998],[-63.537060546874926,58.329931640625006],[-63.209960937499886,58.46694335937502],[-62.593847656249864,58.47402343750005],[-62.81206054687502,58.20039062500007],[-63.26152343749993,58.014697265625074],[-62.486230468749966,58.15405273437506],[-62.30566406249997,57.97226562499995],[-61.95864257812505,57.91176757812508],[-61.9679687499999,57.61191406250009],[-62.495556640624926,57.489208984375125],[-61.92114257812497,57.42080078125005],[-61.977441406249966,57.24794921875002],[-61.33374023437494,57.01059570312498],[-61.37163085937502,56.68081054687511],[-62.497265624999926,56.80170898437504],[-61.73774414062498,56.52602539062502],[-61.940429687499886,56.423583984375114],[-61.42529296874994,56.360644531250074],[-61.713085937499955,56.230957031250114],[-61.364697265624926,56.2160156250001],[-61.30112304687495,56.04716796874999],[-61.4495117187499,55.99570312499998],[-61.08935546874997,55.86635742187511],[-60.74326171874989,55.94145507812493],[-60.56210937499995,55.727001953125125],[-60.341015624999926,55.78466796874997],[-60.40830078124995,55.649560546874994],[-60.19238281249994,55.4809082031251],[-60.617138671874955,55.060205078124994],[-59.75878906249997,55.3095703125],[-59.68906249999989,55.19633789062502],[-59.43789062500005,55.175927734375136],[-59.837792968749994,54.813964843750114],[-59.25957031249996,55.19995117187506],[-58.99711914062496,55.149462890625074],[-58.780175781249994,54.838378906250114],[-58.39814453124998,54.77412109374998],[-57.96245117187493,54.875732421875085],[-57.40449218750004,54.59086914062496],[-57.69926757812496,54.38657226562506],[-58.435205078124966,54.228125],[-58.63320312499999,54.04956054687497],[-59.8230468749999,53.83442382812504],[-60.14492187499994,53.59614257812498],[-60.395410156249994,53.653320312500085],[-60.1002929687499,53.48696289062511],[-60.329492187499966,53.26611328125006],[-58.652050781249926,53.97788085937495],[-57.935986328124955,54.09116210937492],[-58.31748046874989,54.11445312500007],[-58.192089843749926,54.228173828125136],[-57.4160644531249,54.162744140625136],[-57.134960937499926,53.79184570312506],[-57.524072265624966,53.61142578125006],[-57.331738281249955,53.469091796875034],[-56.84086914062496,53.73945312500004],[-56.46499023437505,53.76503906250011],[-55.96611328125002,53.4711425781251],[-55.79794921874995,53.211962890625045],[-55.80283203124989,52.64316406249998],[-56.324902343749926,52.54453124999998],[-55.74648437499994,52.4745605468751],[-55.7771484374999,52.3642578125],[-56.01171874999997,52.394482421875125],[-55.695214843749994,52.13779296875006],[-56.97597656250005,51.45766601562505],[-58.510351562500006,51.295068359375136],[-59.88632812499992,50.316406250000085],[-61.72485351562503,50.10405273437499],[-61.91953124999989,50.2328613281251],[-62.71542968749995,50.30166015625008],[-66.49550781249991,50.2118652343751],[-66.94116210937503,49.993701171875045],[-67.37202148437495,49.348437500000045],[-68.28193359374998,49.197167968750136],[-69.67387695312496,48.19916992187504],[-71.01826171874993,48.455615234375045],[-69.86552734374993,48.17226562500005],[-69.775,48.09809570312504],[-69.9944335937499,47.73989257812508],[-70.70585937499996,47.13979492187505],[-71.26777343749995,46.79594726562499],[-71.87958984374998,46.68681640624996],[-72.98100585937493,46.209716796875085],[-73.4766113281249,45.738232421874955],[-74.03784179687494,45.501855468750136],[-74.31508789062494,45.531054687500045],[-73.97382812499995,45.345117187499994],[-74.70888671874997,45.0038574218751]]],[[[-96.78232421874998,72.93662109375],[-97.0927734375,72.99692382812503],[-96.86240234374995,73.18881835937506],[-96.78232421874998,72.93662109375]]],[[[-114.52153320312502,72.592919921875],[-113.57807617187501,72.65209960937506],[-113.2923828125,72.94980468750003],[-112.75361328125001,72.98603515624995],[-111.26972656249994,72.71372070312498],[-111.895166015625,72.35610351562497],[-111.67509765625002,72.30014648437503],[-110.20512695312495,72.66127929687497],[-110.66083984374998,73.00820312500002],[-110.00844726562494,72.983642578125],[-108.75498046875002,72.55107421874999],[-108.18823242187501,71.72377929687502],[-107.812841796875,71.62617187500004],[-107.30600585937496,71.89467773437502],[-108.23740234374999,73.14990234375003],[-108.029052734375,73.34873046875003],[-106.48212890624998,73.19619140624997],[-105.41513671874995,72.788330078125],[-104.38593749999997,71.57695312500005],[-104.51479492187502,71.06425781250005],[-103.58457031249995,70.63085937500003],[-103.07719726562497,70.50883789062505],[-103.04956054687503,70.65507812499999],[-101.67631835937495,70.27827148437495],[-101.56240234375001,70.135009765625],[-101.04267578125,70.11079101562504],[-100.98237304687497,69.67988281250001],[-101.483837890625,69.85019531250006],[-101.64765624999997,69.69853515625007],[-102.18212890624997,69.845947265625],[-102.59589843749997,69.71791992187502],[-102.62109374999996,69.55151367187506],[-103.464892578125,69.64448242187498],[-103.04892578124999,69.47177734375006],[-103.12021484374995,69.20458984374997],[-102.44677734374997,69.476318359375],[-102.04594726562493,69.46484374999997],[-101.85712890625001,69.02397460937505],[-102.89506835937499,68.8236328125],[-104.57143554687501,68.87211914062502],[-105.105859375,68.92041015625],[-105.019580078125,69.08125],[-106.27016601562497,69.19458007812497],[-106.65908203124997,69.439599609375],[-107.43989257812497,69.00214843749995],[-108.36499023437497,68.93476562499998],[-109.47211914062501,68.67670898437498],[-113.12773437500002,68.49414062500003],[-113.61684570312501,68.8384765625],[-113.69414062499995,69.19501953124998],[-115.61811523437495,69.28295898437506],[-116.51347656249993,69.42460937500005],[-117.19541015624995,70.05405273437503],[-114.59233398437497,70.31245117187498],[-112.63789062499997,70.225244140625],[-111.63256835937497,70.30883789062497],[-113.75727539062503,70.69072265625005],[-115.99091796874997,70.586279296875],[-117.58706054687498,70.62954101562502],[-118.2640625,70.888330078125],[-118.26909179687493,71.03471679687505],[-115.30341796874997,71.49370117187505],[-117.93564453125003,71.39208984375003],[-118.22646484374995,71.46708984375005],[-117.742333984375,71.65932617187502],[-118.58300781250003,71.64902343749998],[-118.98769531249997,71.7642578125],[-118.94462890624997,71.98554687499995],[-118.21347656249998,72.26289062499998],[-118.481298828125,72.42768554687498],[-118.13310546874995,72.63281250000003],[-114.63823242187499,73.37265625000003],[-114.20639648437495,73.29780273437495],[-114.05170898437497,73.07099609375004],[-114.52153320312502,72.592919921875]]],[[[-105.28891601562499,72.919921875],[-106.92153320312497,73.479833984375],[-106.61396484375001,73.69560546875002],[-105.31796874999995,73.76713867187502],[-104.5875,73.57807617187495],[-104.62172851562495,73.3111328125],[-105.28891601562499,72.919921875]]],[[[-79.53730468749998,73.65449218749998],[-78.2865234375,73.66582031250007],[-77.20654296874997,73.49956054687505],[-76.18339843749999,72.84306640625005],[-77.83593750000003,72.89682617187498],[-79.3193359375,72.75771484375],[-79.820703125,72.82631835937502],[-80.18330078124995,73.22465820312499],[-80.77641601562502,73.33417968750001],[-80.84887695312503,73.72124023437499],[-79.53730468749998,73.65449218749998]]],[[[-86.58935546874997,71.01079101562507],[-85.64384765624999,71.15244140624998],[-85.09487304687497,71.15195312500006],[-84.82373046874997,71.02861328125005],[-84.69941406249995,71.63144531250003],[-85.33906249999998,71.69726562500003],[-85.91162109375,71.98652343749998],[-85.321875,72.23315429687506],[-84.28374023437499,72.04448242187499],[-84.84199218749995,72.30815429687505],[-84.62304687500003,72.37656250000003],[-85.34111328124993,72.42153320312497],[-85.64990234374997,72.72216796875003],[-85.26210937500002,72.95400390625],[-84.25664062499999,72.79672851562503],[-85.454736328125,73.10546875000003],[-84.41606445312496,73.45649414062495],[-83.781884765625,73.41689453125],[-83.72983398437495,73.57587890624995],[-81.946142578125,73.72983398437506],[-81.40615234374997,73.634521484375],[-80.27724609375,72.77016601562502],[-81.229345703125,72.31171874999998],[-80.61147460937497,72.450830078125],[-80.925146484375,71.90766601562501],[-80.18193359374996,72.20878906250007],[-79.884375,72.17719726562501],[-80.10893554687499,72.33217773437497],[-79.83129882812503,72.44628906250003],[-79.000244140625,72.27202148437507],[-79.00781250000003,72.04291992187501],[-78.58510742187497,71.880615234375],[-78.86274414062495,72.100830078125],[-78.69926757812496,72.35141601562498],[-77.51650390624997,72.17778320312505],[-78.48427734374994,72.47060546875002],[-77.75322265624996,72.72475585937502],[-75.70429687499998,72.57153320312497],[-75.05268554687493,72.22636718749999],[-75.92280273437501,71.71723632812501],[-74.90317382812503,72.10048828125002],[-74.20932617187498,71.978662109375],[-74.31572265624999,71.84267578125],[-75.20478515625001,71.70913085937497],[-74.70078125,71.67558593750005],[-74.99619140624998,71.21811523437503],[-74.48808593750002,71.64838867187501],[-73.8140625,71.77143554687495],[-74.197265625,71.404150390625],[-73.71284179687498,71.58759765624998],[-73.18061523437501,71.282861328125],[-73.27822265625,71.53798828125],[-72.901953125,71.67778320312507],[-71.64067382812499,71.51625976562502],[-71.22939453124997,71.33876953125],[-71.49501953124997,71.10512695312502],[-71.93793945312498,71.09428710937502],[-72.63271484374994,70.83076171874998],[-71.74252929687495,71.046875],[-71.370849609375,70.97514648437499],[-70.82607421874994,71.10874023437503],[-70.67265625,71.05219726562498],[-70.76171874999997,70.79223632812503],[-71.89018554687502,70.43154296875002],[-71.27587890625,70.50029296874999],[-71.42944335937503,70.12778320312503],[-70.97978515624999,70.5810546875],[-69.94980468750003,70.84501953125005],[-68.49575195312502,70.61025390625],[-68.363525390625,70.48125],[-70.05771484375,70.042626953125],[-68.77822265625,70.20356445312501],[-69.00830078124997,69.97895507812501],[-68.74404296874997,69.94140625],[-68.05908203124997,70.317236328125],[-67.36367187499994,70.03442382812503],[-67.22163085937495,69.73071289062506],[-68.02041015625,69.77006835937499],[-69.25078124999999,69.51191406249998],[-68.51303710937498,69.57729492187497],[-67.236962890625,69.460107421875],[-66.71674804687495,69.31186523437498],[-66.70742187500002,69.16821289062503],[-68.40629882812499,69.23222656250002],[-69.040625,69.09799804687503],[-68.41552734375,69.17207031250001],[-67.8326171875,69.06596679687499],[-67.88320312500002,68.78398437499999],[-69.31909179687497,68.85698242187505],[-68.21040039062495,68.702978515625],[-67.9384765625,68.524169921875],[-66.74272460937502,68.45776367187497],[-67.032958984375,68.32607421874997],[-66.923095703125,68.06572265625005],[-66.72900390624997,68.12900390625006],[-66.66269531249995,68.03442382812497],[-66.63095703124998,68.21064453124998],[-66.21240234374997,68.280419921875],[-66.44394531249998,67.83383789062506],[-65.94238281250003,68.07094726562505],[-65.86435546875003,67.92285156249997],[-65.50908203124996,67.96826171875],[-65.40126953125002,67.67485351562499],[-65.41533203124996,67.87924804687498],[-64.92231445312495,68.03164062500002],[-65.02109375,67.78754882812495],[-64.63779296875,67.84023437500002],[-63.850195312500034,67.56606445312502],[-64.00795898437502,67.34731445312497],[-64.69995117187494,67.35053710937501],[-63.83623046874993,67.26411132812498],[-63.59160156250002,67.3775390625],[-63.040136718750034,67.235009765625],[-63.70156249999994,66.82236328125003],[-62.962304687499966,66.94926757812505],[-62.37973632812495,66.90537109375],[-62.12358398437499,67.046728515625],[-61.35341796874994,66.689208984375],[-61.52783203124994,66.55810546875003],[-62.12333984374993,66.64306640625003],[-61.57080078125,66.37290039062506],[-61.95634765624993,66.30932617187497],[-62.553125,66.40683593750003],[-62.53359374999994,66.22700195312498],[-61.99160156250002,66.03530273437502],[-62.624121093750006,66.01625976562505],[-62.381982421874966,65.83330078124999],[-62.65888671874998,65.63994140625002],[-63.16894531249997,65.65732421875],[-63.45874023437494,65.85302734375],[-63.42089843749997,65.70859374999998],[-63.651074218749955,65.66098632812506],[-63.33745117187493,65.61674804687502],[-63.36337890624998,65.22973632812503],[-63.606591796874966,64.92807617187503],[-64.345703125,65.17241210937499],[-64.26967773437497,65.40078124999997],[-64.55507812500002,65.1166015625],[-65.401611328125,65.764013671875],[-64.44536132812496,66.31713867187497],[-65.0044921875,66.07773437500003],[-65.82573242187499,65.996923828125],[-65.65634765625003,66.204736328125],[-66.06372070312497,66.13271484374997],[-66.986328125,66.62749023437505],[-67.07685546874995,66.52548828125006],[-67.30732421874993,66.5697265625],[-67.22539062499993,66.31025390624998],[-67.88339843749995,66.46743164062502],[-67.18320312499995,66.03442382812503],[-67.350439453125,65.92973632812502],[-67.82802734374997,65.96518554687503],[-68.45991210937498,66.249267578125],[-68.74892578125,66.200048828125],[-68.21718750000002,66.078857421875],[-68.18671874999993,65.87099609375002],[-67.86645507812497,65.773681640625],[-67.936767578125,65.56489257812501],[-67.56962890624999,65.64355468749997],[-67.11796874999999,65.44038085937495],[-67.3365234375,65.34658203125005],[-66.69741210937502,64.81518554687506],[-66.63549804687503,65.00034179687503],[-66.21464843749999,64.72241210937497],[-65.93852539062496,64.88574218750003],[-65.2748046875,64.63154296875004],[-65.52934570312499,64.50478515624997],[-65.074609375,64.43666992187502],[-65.21298828125003,64.30327148437502],[-65.580322265625,64.29384765624997],[-65.16987304687495,64.02817382812503],[-64.67846679687503,64.027978515625],[-64.79814453124999,63.91596679687498],[-64.4109375,63.70634765625002],[-64.66464843749995,63.24536132812497],[-65.19184570312498,63.764257812500006],[-65.06894531249998,63.26347656250002],[-64.67236328125003,62.921972656250006],[-65.16279296875001,62.93261718750003],[-65.10849609374998,62.62646484375],[-66.22402343749994,63.10717773437497],[-66.228662109375,62.99096679687503],[-66.41445312500002,63.027197265625034],[-66.65498046874998,63.264746093750006],[-66.69746093749993,63.069531249999955],[-67.89326171874993,63.733740234375006],[-67.72255859374997,63.422753906249966],[-68.49375,63.725488281249994],[-68.91108398437498,63.703222656250006],[-68.141259765625,63.17231445312501],[-67.67597656249998,63.093554687500045],[-67.73696289062497,63.00957031249999],[-65.98017578125001,62.20888671875002],[-66.12387695312498,61.89306640625],[-68.53588867187503,62.25561523437506],[-69.12558593749998,62.423974609374966],[-69.604736328125,62.76772460937502],[-70.23613281250002,62.76337890625001],[-70.801416015625,62.91049804687506],[-71.10576171874999,63.00224609375002],[-70.94604492187497,63.12070312499998],[-71.34726562499998,63.066113281249955],[-71.99223632812493,63.41616210937505],[-71.380859375,63.580322265625],[-72.29013671874995,63.72797851562498],[-72.17426757812498,63.893408203125006],[-72.49843749999994,63.82348632812497],[-73.45454101562495,64.39926757812503],[-73.27128906250002,64.58251953125],[-73.91035156249998,64.578125],[-74.064794921875,64.42465820312498],[-74.13046874999998,64.6078125],[-74.46123046874996,64.64467773437505],[-74.68139648437497,64.8306640625],[-74.91943359374997,64.76552734374997],[-74.69472656250002,64.49658203124997],[-75.71503906249995,64.52436523437495],[-75.76669921875,64.39194335937498],[-76.85615234374998,64.23764648437498],[-77.76049804687503,64.36015624999999],[-78.04521484374993,64.499267578125],[-78.09560546875,64.93925781250002],[-77.36088867187496,65.19653320312503],[-77.32670898437493,65.453125],[-75.82832031249993,65.22705078125003],[-75.45209960937495,64.84160156250002],[-75.35712890624995,65.00874023437495],[-75.79868164062503,65.297509765625],[-75.16630859374999,65.28393554687497],[-74.13847656250002,65.50346679687502],[-73.55078125000003,65.48525390625005],[-74.41640624999997,66.16708984375003],[-73.03325195312502,66.72817382812505],[-72.78881835937494,67.030615234375],[-72.22001953124999,67.25429687500002],[-73.28447265624993,68.35698242187505],[-73.82050781249998,68.36293945312502],[-73.82211914062495,68.68598632812501],[-74.11796875000002,68.70092773437506],[-73.9892578125,68.54863281250002],[-74.2701171875,68.54121093750001],[-74.89296875,68.80815429687505],[-74.71669921874997,69.04550781249998],[-76.58505859375,68.69873046875003],[-76.55722656250003,69.00947265625001],[-75.9537109375,69.03081054687502],[-75.64775390625002,69.212548828125],[-76.46494140624995,69.46943359375001],[-76.23408203125001,69.66210937500003],[-76.742333984375,69.57290039062497],[-77.08994140625,69.63510742187503],[-76.85859374999995,69.775390625],[-77.591650390625,69.84560546875002],[-77.77402343750003,70.23852539062503],[-78.28281250000003,70.229150390625],[-79.06640624999997,70.60356445312507],[-79.40522460937498,70.40073242187503],[-78.86284179687499,70.24189453125001],[-78.88964843750003,69.97749023437495],[-79.51542968749996,69.88759765625005],[-81.65195312500003,70.09462890625002],[-80.92172851562503,69.73090820312501],[-81.56469726562503,69.94272460937498],[-82.29384765624997,69.83691406250003],[-83.14995117187493,70.00908203125002],[-83.85908203124998,69.96274414062498],[-85.43237304687497,70.11137695312507],[-85.780029296875,70.03666992187505],[-86.32202148437503,70.14541015625],[-86.396875,70.46533203124997],[-87.838134765625,70.24658203125],[-88.78271484374997,70.49448242187503],[-89.45590820312498,71.06171874999995],[-87.84492187499995,70.94438476562505],[-87.14008789062498,71.01162109374997],[-89.80537109374993,71.46230468750005],[-89.86152343750001,72.41191406250005],[-88.70517578124998,73.40327148437495],[-87.71977539062496,73.72290039062497],[-85.95078124999998,73.85014648437505],[-84.94677734375,73.72163085937498],[-86.00053710937499,73.31254882812505],[-86.65629882812502,72.72402343750005],[-86.21845703124998,71.89912109375004],[-85.02338867187495,71.35322265625001],[-86.58935546874997,71.01079101562507]]],[[[-100.00190429687497,73.9458984375],[-99.15795898437499,73.73159179687497],[-97.66997070312499,73.88774414062499],[-97.1705078125,73.82485351562497],[-97.001708984375,73.66650390625003],[-97.62587890624997,73.50229492187498],[-97.27250976562502,73.38681640624998],[-98.42177734375002,72.94101562500003],[-97.63632812499998,73.02763671874999],[-97.128125,72.62758789062502],[-96.59208984374996,72.71025390624999],[-96.44560546874996,72.55244140624998],[-96.80146484374998,72.32241210937502],[-96.61342773437494,71.83383789062506],[-97.58227539062497,71.62968750000005],[-98.18134765624998,71.66245117187503],[-98.32270507812501,71.85234375000002],[-98.19863281249994,71.44086914062501],[-98.66289062499993,71.302099609375],[-99.22363281249996,71.387109375],[-100.594482421875,72.15234375000003],[-101.20854492187495,72.31699218749998],[-101.72392578124996,72.31489257812501],[-102.70874023437496,72.76450195312503],[-102.20400390624998,73.077294921875],[-101.27319335937497,72.7216796875],[-100.48476562500002,72.77294921874997],[-100.395703125,72.97700195312498],[-100.128125,72.90668945312495],[-100.53637695312497,73.19785156250003],[-99.82514648437503,73.2138671875],[-100.36611328125001,73.359033203125],[-100.88935546875003,73.27534179687501],[-101.52319335937501,73.48637695312502],[-100.97578124999995,73.59975585937502],[-100.5216796875,73.44931640625],[-100.96298828125002,73.79140625],[-99.99111328125,73.79516601562503],[-100.00190429687497,73.9458984375]]],[[[-98.270361328125,73.86850585937498],[-98.97392578124997,73.81206054687502],[-99.4169921875,73.89541015625002],[-97.69824218749997,74.10869140625005],[-98.270361328125,73.86850585937498]]],[[[-93.17084960937498,74.16098632812506],[-92.22270507812502,73.97236328124998],[-90.62744140625,73.95170898437505],[-90.38139648437496,73.82475585937502],[-92.11791992187497,72.75380859375],[-94.21132812499997,72.75693359375],[-93.77055664062496,72.66821289062506],[-93.55517578124994,72.42114257812497],[-94.03754882812498,72.02875976562498],[-95.00786132812496,72.01279296875],[-95.60214843749998,72.88447265624995],[-95.63291015625003,73.69545898437497],[-94.697607421875,73.66357421874997],[-95.134130859375,73.88125],[-94.97353515625,74.04140625000002],[-93.17084960937498,74.16098632812506]]],[[[-119.73632812499997,74.11264648437498],[-119.20595703125002,74.19799804687503],[-119.11796874999995,74.01552734375],[-118.54399414062499,74.24462890625003],[-117.51484375000001,74.23173828124999],[-115.51069335937501,73.61875],[-115.446875,73.43886718750002],[-118.96157226562497,72.68413085937499],[-119.51284179687501,72.30268554687501],[-120.17988281250001,72.21264648437506],[-120.61933593750001,71.50576171875002],[-121.47216796875003,71.38901367187503],[-121.74936523437502,71.44477539062501],[-123.09565429687503,71.09379882812502],[-124.00776367187494,71.67744140624998],[-125.29667968749999,71.973046875],[-125.84531250000002,71.978662109375],[-123.79726562499997,73.76816406250003],[-124.69624023437497,74.34819335937499],[-121.50415039062497,74.54511718749998],[-119.56264648437494,74.23281250000002],[-119.73632812499997,74.11264648437498]]],[[[-97.35551757812496,74.52631835937495],[-97.75,74.51054687500005],[-97.41650390624994,74.62656250000003],[-97.35551757812496,74.52631835937495]]],[[[-95.306640625,74.50541992187505],[-95.850732421875,74.58247070312504],[-95.51020507812498,74.63676757812499],[-95.306640625,74.50541992187505]]],[[[-104.11992187499995,75.03632812500004],[-104.88740234374998,75.14775390624999],[-104.34619140624996,75.42993164062503],[-103.64350585937497,75.18657226562499],[-104.11992187499995,75.03632812500004]]],[[[-93.54257812499995,75.0279296875],[-93.57309570312495,74.66884765625005],[-94.53452148437498,74.63671874999997],[-96.59960937499997,75.03178710937499],[-95.95463867187493,75.44379882812501],[-94.878173828125,75.63002929687502],[-93.90908203125002,75.42250976562502],[-93.54257812499995,75.0279296875]]],[[[-96.07856445312495,75.510107421875],[-96.91513671875003,75.37968749999999],[-96.98281249999997,75.50981445312505],[-96.367822265625,75.65463867187506],[-96.07856445312495,75.510107421875]]],[[[-94.52656249999995,75.74931640624999],[-94.901220703125,75.93076171875],[-94.53789062499996,75.99643554687506],[-94.52656249999995,75.74931640624999]]],[[[-118.328125,75.57968749999998],[-118.81713867187503,75.52211914062497],[-119.39458007812499,75.617333984375],[-117.63369140624998,76.11508789062498],[-118.328125,75.57968749999998]]],[[[-79.0630859375,75.92587890624998],[-79.63876953124995,75.84291992187505],[-79.00932617187499,76.14589843750005],[-79.0630859375,75.92587890624998]]],[[[-102.22734374999995,76.014892578125],[-102.00800781250003,75.93940429687498],[-102.57958984375003,75.78022460937498],[-103.31474609374996,75.76420898437499],[-103.04150390624999,75.91884765624997],[-103.98525390624997,75.93310546875003],[-103.80078124999994,76.03701171874997],[-104.24248046874996,76.04697265625006],[-104.35063476562497,76.18232421875001],[-102.72802734374999,76.30703125],[-102.22734374999995,76.014892578125]]],[[[-104.02285156249998,76.58310546875003],[-103.05131835937495,76.44985351562497],[-103.31137695312499,76.34755859375],[-104.35751953124995,76.33461914062502],[-104.58569335937499,76.60649414062499],[-104.07451171875003,76.66611328124998],[-104.02285156249998,76.58310546875003]]],[[[-97.70092773437497,76.46650390624998],[-97.89052734374997,75.7603515625],[-97.40751953124999,75.67250976562497],[-97.33603515624998,75.41982421875],[-97.65332031249997,75.50776367187498],[-97.87822265624996,75.41611328125003],[-97.67431640624997,75.127294921875],[-98.04531249999997,75.20083007812497],[-98.12094726562503,75.03271484375],[-100.234375,75.00771484374997],[-100.48349609374995,75.18842773437501],[-100.14570312499995,75.24614257812505],[-100.71191406250003,75.40634765625],[-99.19458007812499,75.698388671875],[-102.58740234375001,75.51367187500003],[-102.79750976562501,75.59965820312505],[-102.14472656249998,75.87504882812502],[-100.97280273437498,75.79843750000003],[-101.414990234375,75.84584960937502],[-101.87211914062496,76.08310546875003],[-101.52895507812495,76.21728515625003],[-102.1046875,76.33120117187505],[-101.41518554687495,76.42490234375003],[-99.86547851562499,75.92421875],[-100.11284179687502,76.11723632812507],[-99.54106445312497,76.14628906250005],[-100.41420898437495,76.242529296875],[-99.97773437500003,76.31245117187495],[-100.82973632812497,76.52387695312495],[-99.8140625,76.6322265625],[-98.89033203125,76.46557617187497],[-98.71083984374994,76.69384765625003],[-97.70092773437497,76.46650390624998]]],[[[-101.22612304687497,76.57934570312497],[-101.61308593749995,76.60458984375006],[-100.26914062499998,76.73413085937497],[-101.22612304687497,76.57934570312497]]],[[[-108.29238281250001,76.05712890625],[-107.72348632812502,75.99541015625002],[-108.020703125,75.80478515625],[-107.21621093749997,75.89155273437501],[-106.91352539062503,75.67963867187501],[-106.67700195312499,76.02373046875002],[-105.63266601562493,75.94536132812505],[-105.51948242187497,75.63237304687505],[-106.09262695312495,75.08945312500003],[-107.15341796874996,74.9271484375],[-108.47475585937495,74.94721679687501],[-108.83129882812501,75.06489257812498],[-112.51933593749997,74.41684570312503],[-113.67158203124997,74.45302734375005],[-114.31269531250003,74.71508789062506],[-112.835986328125,74.9755859375],[-111.67109375,75.01943359374997],[-111.09345703125001,75.25629882812498],[-113.71176757812499,75.06860351562503],[-113.85332031249996,75.259375],[-113.46708984374996,75.41611328125003],[-114.01650390624998,75.43427734375001],[-114.16845703124994,75.23950195312503],[-114.51381835937497,75.27548828125],[-114.45175781250002,75.08789062499997],[-115.02011718749999,74.97617187500003],[-115.41318359374995,75.11499023437497],[-115.72885742187496,74.968115234375],[-116.47607421874996,75.17177734375],[-117.56523437499997,75.23334960937504],[-117.25761718750002,75.45952148437502],[-116.07714843749996,75.49296874999999],[-115.14184570312501,75.67851562500005],[-116.42563476562498,75.58535156249997],[-117.16362304687496,75.64487304687503],[-116.80214843749995,75.77158203124998],[-114.99150390625002,75.896337890625],[-116.66455078124999,75.95756835937505],[-116.20986328125,76.19443359374998],[-114.77861328124999,76.17260742187497],[-115.82216796874997,76.27001953125003],[-114.99848632812503,76.4974609375],[-114.19394531249999,76.45146484375005],[-113.82348632812501,76.20683593750002],[-112.69760742187496,76.20170898437505],[-111.05268554687495,75.54853515625001],[-108.94716796875,75.54179687499999],[-108.94477539062495,75.69897460937503],[-109.8705078125,75.929052734375],[-109.48681640624999,76.14467773437497],[-110.31445312500001,76.369384765625],[-109.09824218749996,76.811865234375],[-108.46699218749997,76.73759765625007],[-108.29238281250001,76.05712890625]]],[[[-89.72646484374994,76.50742187499998],[-90.55625,76.73457031249998],[-90.13632812499995,76.83696289062505],[-89.69541015625,76.74116210937498],[-89.72646484374994,76.50742187499998]]],[[[-113.56069335937494,76.74326171874998],[-114.83525390624999,76.79467773437497],[-113.89165039062495,76.89487304687503],[-113.56069335937494,76.74326171874998]]],[[[-94.29497070312493,76.91245117187498],[-93.23002929687496,76.77026367187497],[-93.53457031250002,76.44770507812498],[-92.99536132812494,76.62041015624999],[-91.305029296875,76.68076171875003],[-90.54262695312494,76.495751953125],[-91.41508789062496,76.45585937500005],[-89.28452148437498,76.30161132812506],[-89.40659179687498,76.18916015624998],[-91.40732421874998,76.22006835937506],[-89.27758789062497,75.79506835937497],[-89.64604492187499,75.5650390625],[-88.91669921874998,75.45395507812503],[-88.64497070312495,75.65844726562503],[-88.201318359375,75.51201171875005],[-87.72973632812503,75.57563476562495],[-87.53911132812502,75.48486328125003],[-87.25693359374998,75.61772460937499],[-85.95146484374993,75.39501953125],[-85.97299804687498,75.5287109375],[-83.931982421875,75.81894531250003],[-83.23710937499993,75.75083007812503],[-82.153662109375,75.83105468750003],[-80.32197265624998,75.62910156250001],[-79.50908203125002,75.25981445312499],[-80.38198242187494,75.03417968750003],[-79.40141601562502,74.91762695312502],[-79.944482421875,74.83364257812505],[-80.34775390624998,74.90297851562505],[-80.26274414062499,74.58447265625],[-81.94018554687494,74.47270507812505],[-82.73579101562495,74.53027343749997],[-83.5220703125,74.90146484375],[-83.53188476562494,74.58569335937497],[-84.42553710937503,74.50810546875007],[-85.06142578125,74.60693359375003],[-85.133447265625,74.517431640625],[-85.44233398437495,74.6005859375],[-85.80800781249994,74.49897460937498],[-88.42304687499995,74.49414062499997],[-88.53496093749993,74.83173828125001],[-89.55869140624995,74.55473632812507],[-90.55327148437499,74.61274414062498],[-90.88022460937498,74.8177734375],[-91.13457031250002,74.64985351562498],[-91.54912109375002,74.65556640624999],[-92.3892578125,75.263330078125],[-92.18510742187499,75.84653320312498],[-93.09174804687495,76.35400390624997],[-95.27387695312498,76.26440429687503],[-96.03969726562494,76.48671875000002],[-95.65097656249998,76.58466796874998],[-96.88071289062495,76.73833007812505],[-96.40156249999995,76.79721679687503],[-96.75830078124997,76.97177734374998],[-95.84951171875002,77.06621093750005],[-94.29497070312493,76.91245117187498]]],[[[-115.55126953125001,77.36328125],[-116.32919921874996,77.137060546875],[-115.81005859374999,76.939111328125],[-116.25273437500002,76.90141601562505],[-115.94628906250003,76.71127929687503],[-116.99921874999995,76.531591796875],[-117.23359375000001,76.28154296875005],[-117.99296874999999,76.40581054687505],[-117.88081054687497,76.80507812500005],[-118.79140624999994,76.51298828125005],[-119.080712890625,76.12407226562505],[-119.58037109375,76.32651367187498],[-119.52612304687496,75.99721679687505],[-119.91289062499997,75.85883789062501],[-120.40888671874995,75.82563476562498],[-120.84838867187496,76.18266601562499],[-121.21347656249999,75.98369140625005],[-122.53305664062498,75.95092773437503],[-122.59272460937497,76.16206054687495],[-122.90278320312498,76.13471679687498],[-122.51938476562503,76.353173828125],[-121.56113281250003,76.453466796875],[-119.09018554687496,77.30507812500002],[-116.84355468749995,77.33955078124995],[-117.03974609374995,77.46513671875005],[-116.51132812500003,77.54760742187497],[-115.55126953125001,77.36328125]]],[[[-89.83325195312503,77.26762695312505],[-90.22827148437503,77.21245117187499],[-90.99321289062499,77.32949218750002],[-91.01904296875003,77.64389648437503],[-89.83896484375003,77.49140624999998],[-89.83325195312503,77.26762695312505]]],[[[-104.55815429687497,77.14174804687497],[-105.21508789062496,77.18208007812501],[-106.03559570312495,77.73984375000006],[-105.58789062499997,77.73598632812497],[-104.54223632812501,77.33774414062503],[-104.55815429687497,77.14174804687497]]],[[[-95.484375,77.79199218750003],[-93.30097656249995,77.73979492187505],[-93.54394531249997,77.466650390625],[-95.98706054687497,77.484130859375],[-96.19458007812497,77.70053710937503],[-95.484375,77.79199218750003]]],[[[-101.6935546875,77.69658203125005],[-102.37783203124995,77.728125],[-102.44770507812498,77.88061523437506],[-101.19321289062493,77.82978515624998],[-101.00205078124998,77.73510742187497],[-101.6935546875,77.69658203125005]]],[[[-113.83247070312497,77.75463867187506],[-114.28720703124998,77.72148437500005],[-114.98041992187498,77.91542968750002],[-114.33037109374997,78.07753906250002],[-113.83247070312497,77.75463867187506]]],[[[-110.45805664062496,78.10322265625001],[-109.62226562499995,78.07475585937499],[-110.865625,77.834130859375],[-110.15273437500002,77.76293945312506],[-110.19848632812501,77.52451171874998],[-112.37265625000002,77.36411132812498],[-113.16435546875002,77.5302734375],[-113.21518554687498,77.90351562500001],[-110.45805664062496,78.10322265625001]]],[[[-109.81596679687499,78.65039062500003],[-109.48447265624995,78.31640625],[-111.16918945312499,78.38627929687505],[-111.51748046874997,78.27470703125005],[-112.13125,78.366064453125],[-113.22304687499998,78.29790039062505],[-112.85585937499997,78.46684570312502],[-110.877587890625,78.73505859375004],[-109.81596679687499,78.65039062500003]]],[[[-96.20449218749994,78.53129882812499],[-94.91538085937495,78.39052734375002],[-95.32924804687497,78.22504882812495],[-94.93427734374998,78.07563476562498],[-96.98964843749994,77.80600585937503],[-97.65815429687498,78.090625],[-96.944677734375,78.15185546874997],[-98.04951171874995,78.325927734375],[-98.33261718749998,78.77353515625006],[-97.38232421875,78.78291015625001],[-96.20449218749994,78.53129882812499]]],[[[-103.42602539062499,79.315625],[-102.57617187499996,78.87939453125003],[-101.70366210937502,79.07890625000002],[-101.128125,78.80166015625002],[-100.43549804687503,78.8203125],[-99.60942382812495,78.58305664062507],[-99.16640625000002,77.85693359375003],[-100.27465820312503,77.83271484374995],[-101.07412109375001,78.19384765625],[-102.60698242187502,78.24892578125002],[-102.73134765624995,78.37104492187495],[-103.94658203124999,78.26000976562497],[-104.76357421874998,78.35166015625],[-104.90961914062498,78.55263671875],[-103.57050781250003,78.53984375000005],[-104.02084960937502,78.63491210937497],[-103.37158203125,78.73632812500003],[-104.18500976562498,78.78129882812505],[-104.15195312499999,78.989892578125],[-104.89550781249996,78.80815429687502],[-104.74677734375003,79.02709960937503],[-105.53564453124999,79.03251953125007],[-105.51455078124995,79.24248046875002],[-105.38769531249994,79.32358398437503],[-103.42602539062499,79.315625]]],[[[-98.79160156249995,79.98110351562505],[-98.94521484375,79.72407226562498],[-100.05683593749997,79.89824218750005],[-100.05327148437496,80.093359375],[-99.15322265625001,80.12421874999998],[-98.79160156249995,79.98110351562505]]],[[[-91.88554687499999,81.13286132812505],[-90.64301757812498,80.59370117187498],[-89.23559570312494,80.51064453125002],[-88.85732421874997,80.16621093750001],[-88.19990234374998,80.11147460937497],[-88.5248046875,80.41801757812507],[-87.675,80.37211914062505],[-87.92231445312501,80.09770507812499],[-86.97719726562502,79.89423828125001],[-87.29516601562494,79.58017578124998],[-86.33696289062496,79.63496093749995],[-86.00703124999998,79.47944335937498],[-85.6478515625,79.61142578125006],[-85.04213867187497,79.2845703125],[-86.95717773437502,78.97490234375005],[-87.61738281249995,78.67631835937505],[-88.04018554687494,78.99531250000004],[-87.98286132812498,78.53706054687501],[-88.74160156250002,78.58403320312499],[-88.82241210937497,78.18588867187498],[-90.037109375,78.60683593750002],[-89.52568359374999,78.15961914062495],[-90.29721679687495,78.32802734374997],[-90.614404296875,78.14985351562501],[-92.35126953125001,78.312890625],[-92.8482421875,78.46010742187497],[-91.86689453124998,78.54267578125001],[-93.26660156249997,78.60830078124997],[-93.63442382812502,78.75092773437498],[-93.15986328124998,78.77563476562503],[-94.11459960937498,78.92890625000001],[-92.54721679687495,79.28261718750002],[-91.29990234375003,79.372705078125],[-92.82192382812497,79.44990234375001],[-93.93315429687496,79.29072265624998],[-94.11030273437498,79.40156250000001],[-95.10317382812502,79.289892578125],[-95.66289062500002,79.52734374999997],[-94.40185546874997,79.736328125],[-95.73935546874995,79.66015625000003],[-96.58906249999995,79.91665039062497],[-96.77324218749999,80.13579101562502],[-94.64589843749994,80.04873046874997],[-94.26259765625002,80.19487304687499],[-95.40507812499996,80.13500976562506],[-96.39409179687493,80.31503906250003],[-95.549072265625,80.36660156249997],[-95.92695312499998,80.72065429687498],[-93.92792968749995,80.55917968750003],[-95.51474609375003,80.83813476562503],[-94.98051757812499,81.04965820312503],[-93.28671874999998,81.10029296874998],[-94.22011718749997,81.33076171875004],[-93.03466796874997,81.3462890625],[-91.88554687499999,81.13286132812505]]],[[[-69.4888671875,83.01679687499998],[-66.42255859374998,82.92685546875003],[-68.46933593749995,82.65336914062502],[-65.29902343749995,82.79960937500005],[-64.98388671874997,82.90229492187501],[-64.50400390625,82.77841796874998],[-63.641015624999966,82.81259765625003],[-63.246777343749926,82.4501953125],[-62.47519531249995,82.51958007812502],[-61.392480468749994,82.44189453125],[-61.61538085937502,82.18442382812503],[-64.43579101562497,81.74262695312501],[-66.62573242187497,81.61640624999995],[-68.68852539062493,81.29331054687503],[-64.78007812499993,81.49287109375001],[-69.55068359375,80.38325195312498],[-70.71259765625001,80.53959960937505],[-70.264892578125,80.23359374999998],[-72.05595703124996,80.12324218749995],[-70.56840820312493,80.09370117187498],[-71.387841796875,79.76176757812505],[-72.43652343750003,79.69438476562499],[-74.39448242187495,79.87407226562499],[-73.47246093749996,79.7564453125],[-73.36152343750001,79.50400390625],[-75.50341796875,79.41416015625],[-76.898828125,79.5123046875],[-75.60273437499998,79.23955078125005],[-74.48120117187503,79.22949218750006],[-74.64091796874996,79.03554687499997],[-78.58164062499998,79.075],[-77.88276367187498,78.9423828125],[-76.255859375,79.00683593749997],[-74.486328125,78.75009765624998],[-74.87861328124998,78.54482421875],[-76.41611328124995,78.51152343750005],[-75.19345703125,78.327734375],[-75.86596679687497,78.00981445312499],[-78.01259765624997,77.94604492187506],[-78.07617187500003,77.51904296875],[-78.70849609374997,77.34213867187503],[-80.57304687499996,77.31479492187506],[-81.65908203124997,77.52543945312499],[-81.3013671875,77.34404296875007],[-82.056787109375,77.29653320312497],[-81.75634765624997,77.20400390625005],[-79.49726562500001,77.19609375000005],[-78.97919921874998,76.89287109374999],[-78.28886718750002,76.97797851562501],[-77.98330078124994,76.75498046875006],[-78.284326171875,76.57124023437501],[-80.79970703124997,76.173583984375],[-80.97451171874994,76.470068359375],[-81.71738281250003,76.494970703125],[-82.52983398437499,76.723291015625],[-82.23315429687494,76.46582031250003],[-83.88569335937501,76.453125],[-84.22377929687497,76.67534179687499],[-84.27534179687498,76.35654296875006],[-85.141259765625,76.30458984375005],[-86.45371093750003,76.58486328125002],[-86.68022460937499,76.37661132812497],[-87.35419921874998,76.44804687500005],[-87.48979492187499,76.58583984374997],[-87.49755859374997,76.38627929687499],[-88.39599609374997,76.40527343750003],[-88.49584960937497,76.77285156249997],[-88.54580078125002,76.42089843750003],[-89.36962890624997,76.474462890625],[-89.49975585937503,76.82680664062502],[-88.39814453124995,77.10395507812501],[-86.81225585937497,77.18491210937498],[-87.68144531249996,77.43637695312503],[-88.01699218750002,77.78471679687505],[-86.75507812499998,77.86372070312498],[-85.58847656249998,77.46113281250004],[-84.73867187499997,77.36103515624998],[-83.72128906249998,77.41420898437497],[-82.7103515625,77.84951171875002],[-82.5953125,77.99213867187504],[-83.77939453125,77.53261718750002],[-85.28935546874996,77.55903320312498],[-85.54755859374998,77.92768554687495],[-84.61542968749998,78.19570312500002],[-84.22270507812499,78.176025390625],[-84.91035156249993,78.23969726562501],[-84.78320312499997,78.52758789062506],[-85.5859375,78.10957031249998],[-86.21777343750003,78.08120117187497],[-85.92006835937494,78.34287109374998],[-86.91323242187494,78.126806640625],[-87.5517578125,78.17661132812503],[-86.80791015624999,78.77436523437495],[-85.00375976562495,78.912255859375],[-83.27143554687501,78.77031250000002],[-81.75009765624995,78.97578124999995],[-82.43876953125002,78.903662109375],[-84.41201171875002,78.99658203125003],[-84.38359375000002,79.1185546875],[-83.57587890624995,79.05366210937501],[-86.42075195312498,79.84521484374997],[-86.49853515625003,80.25825195312501],[-83.72363281250003,80.22895507812501],[-81.68837890625,79.685791015625],[-80.47592773437498,79.60625],[-80.12446289062495,79.66948242187507],[-81.01015625000002,79.693115234375],[-82.98701171874995,80.32260742187498],[-76.86298828124995,80.86479492187505],[-78.71621093749994,80.95166015624997],[-76.88510742187503,81.43027343750006],[-81.00703125000001,80.6548828125],[-82.88432617187502,80.57753906249997],[-82.22236328124998,80.77231445312503],[-84.41782226562495,80.52675781250002],[-86.250341796875,80.56577148437506],[-86.60307617187499,80.66401367187498],[-85.63930664062494,80.92460937500007],[-83.288818359375,81.14794921875],[-85.780859375,81.03505859375],[-87.32988281250002,80.669775390625],[-88.00366210937497,80.675390625],[-89.16689453125,80.94130859375],[-86.47675781249993,81.03574218750006],[-84.94121093750002,81.28623046875],[-87.27509765624995,81.080810546875],[-89.623046875,81.032470703125],[-89.94731445312499,81.17265625000005],[-89.20869140624998,81.25009765625003],[-89.67368164062503,81.32861328125003],[-87.59702148437498,81.52583007812498],[-88.47905273437502,81.56464843749998],[-90.41630859374996,81.40537109375003],[-89.82167968749997,81.63486328124998],[-91.29238281250002,81.57124023437498],[-91.64755859374998,81.68383789062503],[-88.06318359375001,82.09648437500007],[-87.01821289062502,81.95874023437497],[-86.62680664062495,82.05102539062503],[-85.04482421874997,81.9828125],[-86.615625,82.21855468750007],[-84.89682617187503,82.44941406250001],[-82.63369140625002,82.07729492187497],[-82.53691406250002,82.24726562499995],[-79.465625,81.85112304687499],[-82.44755859374993,82.39501953125003],[-81.68115234375003,82.51865234375],[-82.11684570312497,82.62866210937503],[-80.8625,82.57153320312503],[-81.01015625000002,82.77905273437503],[-78.748779296875,82.67939453124998],[-80.15493164062497,82.91113281250003],[-77.61806640624997,82.89584960937503],[-76.009375,82.53515625],[-75.565625,82.60854492187502],[-77.12490234374994,83.00854492187497],[-74.41416015624995,83.01313476562501],[-72.65869140625,82.72163085937495],[-73.44189453124994,82.90483398437499],[-72.811669921875,83.08120117187502],[-71.98320312499996,83.10141601562498],[-70.94038085937495,82.90224609375],[-71.08481445312498,83.08266601562497],[-69.96992187499995,83.11611328125005],[-69.4888671875,83.01679687499998]]]]},"properties":{"name":"Canada","childNum":110}},{"geometry":{"type":"Polygon","coordinates":[[[9.527658197470123,47.27026989773668],[9.46249431093294,47.19858962254578],[9.46249431093294,47.09010747968864],[9.409458596647225,47.02019676540292],[9.579979133936737,47.05856388629306],[9.580273437500011,47.057373046875],[10.133496093750011,46.851513671875],[10.349414062500017,46.98476562499999],[10.414941406250023,46.964404296874996],[10.45458984375,46.8994140625],[10.452832031250011,46.86494140625],[10.406054687500017,46.73486328125],[10.39794921875,46.6650390625],[10.4306640625,46.550048828125],[10.195507812500011,46.62109375],[10.1375,46.61435546875],[10.087011718750006,46.599902343749996],[10.061230468750011,46.546777343749994],[10.038281250000011,46.483203125],[10.045605468750011,46.447900390624994],[10.081933593750023,46.420751953125],[10.109667968750017,46.362841796874996],[10.128320312500023,46.238232421875],[10.08056640625,46.227978515625],[10.041015625,46.238085937499996],[9.939257812500017,46.36181640625],[9.884472656250011,46.3677734375],[9.787792968750011,46.346044921875],[9.639453125000017,46.2958984375],[9.57958984375,46.29609375],[9.528710937500023,46.306201171874996],[9.427636718750023,46.482324218749994],[9.399316406250023,46.4806640625],[9.304394531250011,46.495556640625],[9.203417968750017,46.21923828125],[9.11874162946429,46.014892578125],[8.97551618303573,45.81677455357143],[8.74961495535715,46.02246372767857],[8.818554687500011,46.0771484375],[8.458398437500023,46.245898437499996],[8.370703125,46.445117187499996],[8.298535156250011,46.40341796875],[8.23193359375,46.341210937499994],[8.08154296875,46.256005859374994],[7.9931640625,46.015917968749996],[7.327929687500017,45.912353515625],[7.129003906250006,45.880419921874996],[7.055761718750006,45.90380859375],[7.02109375,45.92578125],[6.953710937500006,46.017138671874996],[6.897265625000017,46.0517578125],[6.772070312500006,46.16513671875],[6.758105468750017,46.415771484375],[6.578222656250006,46.437353515625],[6.428906250000011,46.430517578125],[6.321875,46.393701171874994],[6.234667968750017,46.3326171875],[6.199414062500011,46.19306640625],[6.086621093750011,46.147021484374996],[6.006640625000017,46.142333984375],[5.971484375000017,46.151220703125],[5.970019531250017,46.214697265625],[6.0361328125,46.238085937499996],[6.095898437500011,46.27939453125],[6.129687500000017,46.5669921875],[6.41015625,46.755419921874996],[6.429003906250017,46.832275390625],[6.45625,46.94833984375],[6.624804687500017,47.004345703125],[6.666894531250023,47.026513671874994],[6.688085937500006,47.058251953124994],[6.820703125000023,47.16318359375],[6.952050781250023,47.2671875],[6.978515625,47.302050781249996],[7.000585937500006,47.322509765625],[7.000585937500006,47.339453125],[6.900390625,47.39423828125],[6.968359375,47.45322265625],[7.136035156250017,47.48984375],[7.343164062500023,47.43310546875],[7.615625,47.592724609375],[8.454003906250023,47.59619140625],[8.559472656250023,47.6240234375],[8.570507812500011,47.63779296875],[8.567089843750011,47.651904296874996],[8.55234375,47.659130859375],[8.451757812500006,47.651806640625],[8.413281250000011,47.6626953125],[8.403417968750006,47.687792968749996],[8.435742187500011,47.731347656249994],[8.572656250000023,47.775634765625],[9.524023437500006,47.52421875],[9.625878906250023,47.467041015625],[9.527539062500011,47.270751953125],[9.527658197470123,47.27026989773668]]]},"properties":{"name":"Switzerland","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-67.28886718749999,-55.776855468749964],[-67.55996093749997,-55.72480468750002],[-67.39736328124997,-55.58515625],[-67.28886718749999,-55.776855468749964]]],[[[-67.07993164062498,-55.15380859374996],[-67.33969726562495,-55.292578124999984],[-67.4947265625,-55.177441406249976],[-68.07001953124995,-55.22109374999999],[-68.30136718750003,-54.98066406250003],[-67.245263671875,-54.977636718750034],[-67.07993164062498,-55.15380859374996]]],[[[-69.70297851562503,-54.91904296875],[-68.90078125000002,-55.01777343750004],[-68.45800781249997,-54.95966796875002],[-68.61328124999997,-55.155566406250045],[-68.28266601562495,-55.25517578125],[-68.04833984375,-55.6431640625],[-68.86704101562498,-55.45019531250003],[-68.89008789062498,-55.2412109375],[-69.19262695312497,-55.171875],[-69.35922851562498,-55.300683593749945],[-69.18085937499995,-55.47480468749998],[-69.41181640624995,-55.44423828124997],[-69.97978515625002,-55.14746093749999],[-69.88442382812494,-54.88203125000001],[-69.70297851562503,-54.91904296875]]],[[[-70.9916015625,-54.86796874999999],[-70.80483398437497,-54.96767578124996],[-70.41752929687493,-54.908886718749976],[-70.29785156249997,-55.11376953124997],[-70.47558593749994,-55.17705078124998],[-71.43720703125001,-54.88925781249997],[-70.9916015625,-54.86796874999999]]],[[[-71.390478515625,-54.03281250000002],[-71.02192382812495,-54.111816406250036],[-71.14326171874998,-54.374023437499986],[-71.473291015625,-54.23115234375001],[-71.94853515624999,-54.300878906250006],[-72.21044921874997,-54.04775390624995],[-71.996484375,-53.884863281249984],[-71.390478515625,-54.03281250000002]]],[[[-72.92324218749997,-53.481640625],[-72.88222656249997,-53.578320312499976],[-72.48227539062503,-53.58808593750001],[-72.20541992187503,-53.80742187500002],[-72.408544921875,-54.00380859374997],[-72.87099609375,-54.12656250000002],[-72.76376953125,-53.86484375],[-73.03945312499994,-53.83281250000004],[-73.08076171875001,-53.99804687499995],[-73.21064453125001,-53.98583984374995],[-73.31435546875,-53.72919921874998],[-73.845458984375,-53.54580078125001],[-73.44707031249993,-53.41005859374998],[-72.92324218749997,-53.481640625]]],[[[-74.38574218749994,-52.92236328125001],[-73.65400390624998,-53.06982421875003],[-73.13520507812498,-53.35390625],[-73.56728515625,-53.3068359375],[-73.86694335937494,-53.096875],[-74.27021484374995,-53.08154296875002],[-74.71201171874998,-52.74873046874998],[-74.38574218749994,-52.92236328125001]]],[[[-68.62993164062499,-52.65263671875004],[-68.65322265624994,-54.85361328124999],[-69.48627929687493,-54.85888671875],[-69.72343750000002,-54.71210937500003],[-70.49716796875,-54.80957031249999],[-71.83154296874997,-54.62617187500002],[-71.92773437500003,-54.52871093749997],[-71.80014648437498,-54.433984374999945],[-71.07993164062498,-54.444238281249994],[-70.79726562500002,-54.32724609374996],[-70.70112304687498,-54.48544921875004],[-70.31098632812498,-54.52851562500002],[-70.86308593749993,-54.11044921875003],[-70.86772460937499,-53.88417968750002],[-70.53129882812502,-53.627343750000016],[-70.37973632812495,-53.98671874999995],[-70.62983398437493,-54.005566406249976],[-70.53530273437494,-54.136132812500016],[-70.16899414062502,-54.37929687499999],[-69.74184570312494,-54.30585937500005],[-69.25317382812494,-54.557421875000045],[-69.04433593749997,-54.40673828124999],[-69.98813476562503,-54.10908203125001],[-70.15112304687503,-53.88808593750002],[-70.09111328124996,-53.72177734374998],[-69.35595703125003,-53.41630859375001],[-69.63701171874999,-53.33408203125004],[-70.32929687499998,-53.37763671875003],[-70.44335937499994,-53.085546875000034],[-70.130615234375,-52.942773437499994],[-70.38012695312494,-52.75195312500002],[-69.93544921874997,-52.82109374999998],[-69.41406249999997,-52.48623046874997],[-69.16704101562499,-52.66757812499997],[-68.78979492187497,-52.576757812500034],[-68.62993164062499,-52.65263671875004]]],[[[-74.82294921874993,-51.63017578125001],[-74.53681640624998,-51.96513671875004],[-74.69448242187497,-52.27919921874999],[-74.85180664062494,-52.27070312500003],[-75.10537109375,-51.78886718750001],[-74.82294921874993,-51.63017578125001]]],[[[-74.55864257812499,-51.27705078125001],[-74.62036132812497,-51.395703125000026],[-75.04736328125,-51.39833984375003],[-75.28911132812496,-51.625390625000016],[-75.15366210937498,-51.278808593750014],[-74.73666992187503,-51.20761718749999],[-74.55864257812499,-51.27705078125001]]],[[[-75.302001953125,-50.67998046875005],[-75.411376953125,-50.76435546875001],[-75.42763671875002,-50.48056640625002],[-75.11533203124998,-50.510449218749976],[-75.302001953125,-50.67998046875005]]],[[[-75.05478515625,-50.29609375],[-75.44912109374997,-50.34335937500004],[-75.32666015624997,-50.01181640625],[-74.8759765625,-50.10996093750001],[-75.05478515625,-50.29609375]]],[[[-75.106689453125,-48.83652343750001],[-75.38994140624999,-49.15917968750002],[-75.64116210937499,-49.195410156250034],[-75.48764648437498,-49.082421875000016],[-75.58310546874998,-48.85888671874995],[-75.106689453125,-48.83652343750001]]],[[[-74.47617187499998,-49.14785156250002],[-74.59472656249997,-50.00664062500001],[-74.76298828124996,-50.01142578125001],[-74.88041992187502,-49.72587890625001],[-74.72382812499998,-49.42382812500003],[-74.960107421875,-49.533007812499974],[-75.06601562499998,-49.85234375000002],[-75.54980468749994,-49.79130859375002],[-75.30585937499998,-49.49404296875003],[-75.46748046874995,-49.35888671875003],[-75.08603515624998,-49.27021484375],[-75.21015624999995,-49.14804687499998],[-74.94921875,-48.960156249999976],[-74.89624023437503,-48.73320312500002],[-74.54609374999993,-48.76689453125004],[-74.47617187499998,-49.14785156250002]]],[[[-75.51025390624997,-48.76347656250005],[-75.65092773437496,-48.58632812500002],[-75.57148437499993,-48.095898437500026],[-75.39140625000002,-48.01972656249997],[-75.15849609374999,-48.62265624999996],[-75.51025390624997,-48.76347656250005]]],[[[-74.56728515625,-48.591992187500026],[-74.92304687499998,-48.62646484375003],[-75.21289062499997,-48.141699218750034],[-75.19829101562502,-47.974609375000014],[-74.895654296875,-47.839355468749986],[-74.56728515625,-48.591992187500026]]],[[[-75.11220703124997,-47.8376953125],[-75.26103515625002,-47.76386718749998],[-74.92646484374998,-47.72314453125003],[-75.11220703124997,-47.8376953125]]],[[[-74.31289062500002,-45.69150390625002],[-74.46552734374995,-45.757226562499994],[-74.68984375,-45.66259765625],[-74.310546875,-45.17265625000002],[-74.31289062500002,-45.69150390625002]]],[[[-73.63217773437498,-44.82148437499997],[-73.81845703125,-44.65214843750002],[-73.72392578124993,-44.544238281249974],[-73.63217773437498,-44.82148437499997]]],[[[-72.98613281249999,-44.780078124999974],[-73.22846679687498,-44.85996093749999],[-73.39707031249998,-44.77431640624995],[-73.44506835937497,-44.641015624999966],[-73.20771484374993,-44.33496093749997],[-72.7763671875,-44.50859374999999],[-72.98613281249999,-44.780078124999974]]],[[[-73.73535156249997,-44.39453125000003],[-74.00205078125003,-44.59091796874998],[-73.728173828125,-45.195898437500034],[-74.016259765625,-45.344921875000026],[-74.61777343749998,-44.64794921874996],[-74.50180664062498,-44.47353515624995],[-74.09721679687496,-44.38935546875004],[-73.99492187499999,-44.140234375],[-73.70322265624998,-44.27412109375001],[-73.73535156249997,-44.39453125000003]]],[[[-73.81064453125003,-43.827246093750006],[-73.95566406249998,-43.921972656250034],[-74.14296874999997,-43.872167968750006],[-73.81064453125003,-43.827246093750006]]],[[[-73.77338867187498,-43.3458984375],[-74.114404296875,-43.35791015624996],[-74.387353515625,-43.231640625],[-74.03666992187496,-41.79550781249998],[-73.52783203124997,-41.89628906249999],[-73.42290039062499,-42.192871093750014],[-73.47080078124998,-42.46630859375004],[-73.78925781249993,-42.58574218750003],[-73.43632812499996,-42.9365234375],[-73.74965820312494,-43.15908203124995],[-73.77338867187498,-43.3458984375]]],[[[-78.80415039062501,-33.646484374999986],[-78.98945312499993,-33.66171874999998],[-78.87744140625003,-33.57519531250003],[-78.80415039062501,-33.646484374999986]]],[[[-109.27998046874994,-27.14042968749996],[-109.434130859375,-27.171289062500023],[-109.39047851562499,-27.068359375000014],[-109.27998046874994,-27.14042968749996]]],[[[-67.19487304687493,-22.821679687500037],[-67.00878906249994,-23.00136718750005],[-67.35620117187503,-24.033789062499963],[-68.25029296875002,-24.391992187500023],[-68.56201171875,-24.74736328125003],[-68.38422851562495,-25.091894531249977],[-68.59208984375002,-25.420019531250034],[-68.41450195312498,-26.153710937500023],[-68.59160156249999,-26.47041015624997],[-68.31865234374999,-26.973242187500006],[-68.59208984375002,-27.140039062499966],[-68.84633789062494,-27.153710937499994],[-69.17441406249998,-27.924707031250037],[-69.65693359374995,-28.413574218749986],[-69.82788085937497,-29.10322265624997],[-70.02680664062501,-29.324023437500017],[-69.95996093749997,-30.078320312500026],[-69.84428710937493,-30.175],[-69.95634765624996,-30.35820312500003],[-70.15322265625,-30.360937499999963],[-70.30908203124994,-31.02265625000004],[-70.51958007812493,-31.1484375],[-70.585205078125,-31.569433593749963],[-70.25439453125,-31.957714843750026],[-70.36376953125,-32.08349609374997],[-70.02197265625,-32.88457031250002],[-70.08486328125002,-33.20175781249998],[-69.81962890624999,-33.28378906249999],[-69.85244140625,-34.224316406250026],[-70.05205078124999,-34.30078124999997],[-70.39316406250003,-35.146875],[-70.55517578125,-35.246875],[-70.41572265625001,-35.52304687500002],[-70.40478515625,-36.06171874999998],[-71.05551757812498,-36.52373046874996],[-71.19218750000002,-36.84365234375004],[-71.16757812499998,-37.76230468749996],[-70.858642578125,-38.60449218750003],[-71.40156249999995,-38.93505859374996],[-71.53945312499997,-39.60244140624995],[-71.71992187499995,-39.63525390624997],[-71.65976562499998,-40.02080078125],[-71.81831054687493,-40.17666015624995],[-71.70898437499997,-40.381738281249994],[-71.93212890624994,-40.69169921874999],[-71.91127929687497,-41.650390624999986],[-71.75,-42.04677734375001],[-72.10820312499993,-42.25185546874995],[-72.14643554687498,-42.990039062499974],[-71.750634765625,-43.237304687499986],[-71.90498046875001,-43.34755859374998],[-71.68007812500002,-43.92958984374998],[-71.82001953124993,-44.38310546875],[-71.21259765624998,-44.44121093750003],[-71.15971679687496,-44.56025390625004],[-71.26113281250002,-44.763085937499966],[-72.06372070312503,-44.771875],[-72.04169921874998,-44.90419921875004],[-71.5962890625,-44.97919921875004],[-71.34931640624995,-45.33193359374995],[-71.74619140624998,-45.57890625],[-71.63154296874998,-45.95371093749998],[-71.87568359374998,-46.160546875],[-71.69965820312501,-46.6513671875],[-71.94023437499999,-46.83125],[-71.90498046875001,-47.201660156250014],[-72.34594726562497,-47.49267578124997],[-72.517919921875,-47.87636718749998],[-72.32832031250001,-48.11005859374998],[-72.35473632812497,-48.36582031250005],[-72.582861328125,-48.47539062499999],[-72.65126953125,-48.84160156249998],[-73.03364257812501,-49.014355468750004],[-73.13525390625,-49.30068359374999],[-73.46157226562497,-49.31386718750001],[-73.55419921875,-49.463867187500014],[-73.50126953124996,-50.125292968750024],[-73.15292968749998,-50.73828125000003],[-72.50981445312496,-50.607519531250034],[-72.34023437499997,-50.68183593749999],[-72.40766601562501,-51.54082031250002],[-71.91865234374995,-51.98955078125004],[-69.96025390624993,-52.00820312500002],[-68.443359375,-52.35664062500004],[-69.24101562499996,-52.20546874999997],[-69.62031249999995,-52.46474609374995],[-70.79511718749995,-52.76875],[-70.99584960937497,-53.77929687499997],[-71.29775390625002,-53.88339843750004],[-72.1744140625,-53.632324218749964],[-72.41289062500002,-53.35019531250004],[-71.94169921874993,-53.23408203125001],[-71.89169921874998,-53.523535156250006],[-71.79145507812498,-53.48457031249997],[-71.74052734374999,-53.232617187499976],[-71.28896484375002,-53.03369140624995],[-71.22714843750003,-52.810644531249984],[-71.38774414062496,-52.76425781250004],[-72.27802734374998,-53.13232421874997],[-72.54892578125,-53.4607421875],[-73.05273437499997,-53.24345703125005],[-72.72768554687502,-52.7623046875],[-72.453466796875,-52.814453124999964],[-72.11757812499997,-52.65],[-71.51127929687502,-52.60537109375],[-72.22568359374998,-52.52099609374995],[-72.43769531250001,-52.62578124999998],[-72.71210937499995,-52.53554687499999],[-73.12246093749997,-53.073925781249976],[-73.64521484374998,-52.83701171875003],[-73.2408203125,-52.707128906250034],[-73.12392578125,-52.487988281249976],[-73.24414062499997,-52.62402343749998],[-73.58569335937503,-52.68574218750003],[-74.01445312499999,-52.63935546875],[-74.26494140624993,-52.1048828125],[-73.83447265625,-52.23398437500001],[-73.68432617187494,-52.07773437499998],[-73.26044921874993,-52.157812500000034],[-72.79501953124998,-51.94951171875005],[-72.57084960937496,-52.200097656249945],[-72.67705078125002,-52.38466796874998],[-72.52333984374997,-52.255468750000034],[-72.62460937499998,-51.94648437499997],[-72.48964843750002,-51.76367187500003],[-72.76123046875,-51.57324218749996],[-73.16875,-51.45390624999998],[-72.60004882812495,-51.79912109374997],[-73.51816406250003,-52.04101562499996],[-73.75263671874993,-51.795507812500034],[-74.19667968749997,-51.68056640624997],[-73.92978515624995,-51.61787109374999],[-73.93950195312499,-51.26630859375005],[-74.81474609374996,-51.06289062499999],[-75.09467773437495,-50.68125],[-74.68574218749995,-50.662011718749945],[-74.77587890625003,-50.46992187499998],[-74.64448242187498,-50.360937499999984],[-74.365576171875,-50.487890625],[-74.13940429687503,-50.81777343749997],[-73.80654296875,-50.93837890625003],[-73.654443359375,-50.49267578125],[-73.97802734375003,-50.827050781249994],[-74.18559570312493,-50.485351562500014],[-73.95034179687497,-50.510546875],[-74.62958984374998,-50.19404296875],[-74.333740234375,-49.97460937499997],[-73.95859374999998,-49.994726562499984],[-74.32392578124995,-49.783398437500004],[-74.29082031249996,-49.604101562499984],[-73.83637695312493,-49.609375],[-74.09443359374993,-49.42968749999998],[-73.93496093749994,-49.02089843750001],[-74.2212890625,-49.500585937500034],[-74.36655273437503,-49.40048828124998],[-74.34101562499998,-48.59570312499998],[-74.00908203124996,-48.475],[-74.47441406249999,-48.46396484374996],[-74.58466796874998,-47.999023437500014],[-73.39106445312498,-48.14589843750001],[-73.60991210937499,-47.993945312500045],[-73.71586914062499,-47.65546875000001],[-73.94086914062498,-47.92939453125004],[-74.22705078124994,-47.96894531250001],[-74.654931640625,-47.702246093750034],[-74.5337890625,-47.567675781249974],[-74.24296874999999,-47.67929687499998],[-74.13408203125002,-47.590820312499986],[-74.48266601562497,-47.43046875],[-74.15839843749998,-47.18251953125002],[-74.31357421874998,-46.78818359374998],[-74.45419921875003,-46.76679687499997],[-74.51225585937496,-46.88515625000002],[-75.00595703125,-46.74111328124998],[-74.98417968750002,-46.51210937499995],[-75.54033203124999,-46.69873046874996],[-75.43037109374995,-46.93457031249996],[-75.70639648437498,-46.70527343749997],[-74.924462890625,-46.159667968750014],[-75.06669921874993,-45.874902343749994],[-74.15786132812497,-45.7671875],[-74.122705078125,-45.49619140625002],[-73.95717773437494,-45.40439453124998],[-73.825,-45.446875],[-74.01992187500002,-46.055859375],[-74.39296875,-46.21738281250005],[-73.96757812500002,-46.15410156250003],[-73.87871093749993,-45.846875],[-73.73525390624994,-45.81171875],[-73.70815429687502,-46.070312500000014],[-73.94863281249997,-46.533105468749966],[-73.845361328125,-46.56601562500002],[-73.59184570312493,-45.89912109375004],[-73.73076171874999,-45.47998046875],[-73.26621093749995,-45.346191406250014],[-72.933837890625,-45.45234374999997],[-73.44497070312497,-45.23818359374995],[-73.36245117187502,-44.97822265625001],[-72.73896484375001,-44.73417968750003],[-72.680078125,-44.59394531249997],[-72.66386718749999,-44.43642578124995],[-73.26508789062498,-44.16865234375001],[-73.22446289062498,-43.89794921875003],[-73.06879882812495,-43.86201171874998],[-72.99658203125,-43.63154296875001],[-73.07597656250002,-43.323632812499994],[-72.75800781249998,-43.039453125],[-72.84804687500002,-42.66914062499997],[-72.77392578125003,-42.505175781250045],[-72.63183593750003,-42.509667968749994],[-72.77324218749996,-42.257714843749994],[-72.63105468749995,-42.199804687500006],[-72.412353515625,-42.388183593750014],[-72.49941406249997,-41.98085937499999],[-72.82407226562503,-41.90878906249996],[-72.36040039062499,-41.64912109375],[-72.31826171875,-41.49902343749997],[-72.54238281250002,-41.690625],[-72.95283203124995,-41.51474609374998],[-73.24179687499995,-41.78085937500002],[-73.62402343750003,-41.77363281249997],[-73.73515625000002,-41.74248046875002],[-73.62392578125,-41.581347656250045],[-73.81074218749995,-41.51748046875001],[-73.96586914062493,-41.118261718750034],[-73.67099609375,-39.96318359374999],[-73.41040039062503,-39.78916015624998],[-73.22646484375002,-39.22441406250003],[-73.52021484375001,-38.509375],[-73.46479492187498,-38.04033203125003],[-73.66181640624998,-37.69853515625003],[-73.66240234375002,-37.341015625000026],[-73.60166015624998,-37.18847656250003],[-73.21596679687502,-37.16689453124998],[-73.11806640624997,-36.68837890625002],[-72.58735351562493,-35.759667968749994],[-72.62392578125002,-35.5857421875],[-72.22377929687494,-35.096191406250014],[-72.00283203124997,-34.16533203125],[-71.66435546875002,-33.65263671875],[-71.74296875,-33.09511718750001],[-71.45224609374998,-32.65957031250001],[-71.70893554687495,-30.62802734375002],[-71.66948242187499,-30.33037109374996],[-71.40039062499997,-30.142968749999966],[-71.31572265624996,-29.649707031250017],[-71.51923828124993,-28.926464843750026],[-71.30673828124998,-28.672460937499963],[-71.08652343749998,-27.814453124999957],[-70.92578125,-27.588671874999974],[-70.64658203124998,-26.329394531250017],[-70.71372070312498,-25.78417968749997],[-70.44536132812502,-25.17265624999999],[-70.57412109374994,-24.644335937500003],[-70.39233398437494,-23.565917968749957],[-70.59335937499995,-23.255468750000034],[-70.56318359374995,-23.057031250000023],[-70.33168945312494,-22.848632812500014],[-70.08002929687501,-21.356835937500037],[-70.19702148437494,-20.725390625],[-70.15742187499995,-19.70585937500003],[-70.41826171874999,-18.345605468750023],[-69.92636718749998,-18.206054687500014],[-69.80258789062498,-17.990234375000014],[-69.85209960937493,-17.70380859375001],[-69.68476562499995,-17.649804687500023],[-69.58642578125,-17.57324218749997],[-69.51093749999998,-17.50605468749997],[-69.31337890624997,-17.943164062500017],[-69.28232421875003,-17.96484375],[-69.09394531249993,-18.05048828125004],[-69.14545898437495,-18.14404296875],[-69.09228515624994,-18.28242187500004],[-69.02680664062493,-18.65625],[-68.97885742187503,-18.81298828125003],[-68.96831054687502,-18.967968749999983],[-68.85795898437499,-19.09335937500005],[-68.62055664062495,-19.29667968749999],[-68.54785156249997,-19.341113281249974],[-68.49199218749996,-19.381933593750034],[-68.47016601562495,-19.409960937499974],[-68.46289062499997,-19.43281250000001],[-68.57529296874998,-19.56015625000002],[-68.69829101562499,-19.721093750000037],[-68.69619140625,-19.74072265625003],[-68.57827148437494,-19.856542968750006],[-68.559375,-19.902343750000014],[-68.56069335937502,-19.96708984374996],[-68.75932617187499,-20.115527343750003],[-68.74516601562493,-20.45859375],[-68.48432617187498,-20.628417968749957],[-68.55825195312497,-20.90195312499999],[-68.197021484375,-21.30029296874997],[-68.18642578124997,-21.618554687499966],[-67.88173828124997,-22.493359375000026],[-67.87944335937496,-22.822949218750026],[-67.57993164062495,-22.89169921874999],[-67.36225585937493,-22.85517578125001],[-67.19487304687493,-22.821679687500037]]]]},"properties":{"name":"Chile","childNum":26}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[110.88876953125006,19.99194335937497],[111.01367187500003,19.65546875000001],[110.64091796875002,19.291210937499955],[110.45126953125012,18.747949218750023],[110.06738281249997,18.447558593750045],[109.51933593750007,18.21826171875003],[108.7015625,18.535253906250034],[108.66552734375003,19.304101562499994],[109.27666015625002,19.761132812500023],[109.17744140625004,19.768457031250023],[109.26347656250007,19.882666015625006],[110.1715820312501,20.053710937500057],[110.58818359375002,19.976367187500017],[110.6517578125,20.137744140625017],[110.88876953125006,19.99194335937497]]],[[[110.38515625000005,21.093164062499966],[110.52158203125006,21.083105468750063],[110.50390625000003,20.96772460937501],[110.28095703125004,21.001171874999983],[110.38515625000005,21.093164062499966]]],[[[112.64375,21.63964843750003],[112.525,21.62304687500003],[112.64765625000004,21.710253906250017],[112.64375,21.63964843750003]]],[[[112.79023437500004,21.601855468750045],[112.78203125000007,21.772265625000045],[112.86259765625002,21.75263671875004],[112.79023437500004,21.601855468750045]]],[[[118.1830078125,24.496289062499983],[118.0905273437501,24.446142578125063],[118.10380859375002,24.552343750000034],[118.1830078125,24.496289062499983]]],[[[119.82089843750006,25.45698242187504],[119.70029296875012,25.432714843750063],[119.72255859375005,25.638818359375023],[119.83837890625003,25.591064453125],[119.82089843750006,25.45698242187504]]],[[[121.2513671875,28.086425781250057],[121.13154296875004,28.062597656250006],[121.20546875,28.204394531250017],[121.2513671875,28.086425781250057]]],[[[122.29589843750003,29.96342773437499],[122.02402343750012,30.01333007812505],[121.96943359375004,30.143115234375017],[122.28447265625007,30.068017578124994],[122.29589843750003,29.96342773437499]]],[[[121.86269531250005,31.492285156249977],[121.519921875,31.549609375000017],[121.2111328125001,31.80537109375001],[121.86269531250005,31.492285156249977]]],[[[130.52695312500012,42.535400390625],[130.24667968750012,42.744824218749955],[130.24033203125006,42.891796874999955],[129.89824218750002,42.998144531250034],[129.69785156250012,42.448144531249994],[129.3136718750001,42.41357421874997],[128.92343750000006,42.038232421874966],[128.04521484375007,41.9875],[128.28925781250004,41.60742187500006],[128.14941406249997,41.38774414062496],[127.17968750000003,41.531347656250006],[126.95478515625004,41.76948242187501],[126.74306640625,41.724853515625],[125.98906250000002,40.904638671875034],[124.8893554687501,40.459814453125006],[124.36210937500002,40.004052734374994],[124.10576171875002,39.84101562499998],[123.65087890625003,39.881591796875],[122.8400390625001,39.600830078125],[121.98232421875,39.05317382812498],[121.67724609374997,39.00341796875006],[121.64990234375003,38.865087890625034],[121.16357421874997,38.73164062500001],[121.10673828125002,38.920800781249994],[121.6798828125001,39.10869140625002],[121.62763671875004,39.22016601562498],[121.81845703125006,39.38652343750002],[121.27548828125006,39.38476562500003],[121.26748046875,39.544677734375],[121.51757812499997,39.638964843750045],[121.51738281250002,39.84482421875006],[121.8009765625001,39.950537109375006],[122.27500000000012,40.541845703125034],[121.83486328125005,40.97426757812502],[121.72929687500002,40.84614257812504],[121.1745117187501,40.901269531249994],[120.47910156250006,40.23095703125003],[119.39111328125003,39.75249023437499],[118.976953125,39.182568359374955],[118.29785156249997,39.067089843749955],[118.04091796875,39.22675781249998],[117.86572265625003,39.191259765625034],[117.61669921875003,38.852880859375034],[117.5578125000001,38.625146484374994],[117.76669921875012,38.311669921874994],[118.01494140625007,38.18339843749996],[118.94003906250006,38.04277343750002],[119.08916015625007,37.70073242187496],[118.95263671875003,37.33115234374998],[119.28740234375002,37.138281250000034],[119.76054687500007,37.15507812499999],[120.31152343750003,37.62270507812505],[120.2572265625,37.67900390624996],[120.75,37.83393554687501],[121.64023437500012,37.46035156250002],[122.05664062500003,37.528906250000034],[122.66699218750003,37.40283203125003],[122.4466796875,37.06811523437503],[122.51972656250004,36.94682617187502],[122.34091796875012,36.83222656250004],[121.93271484375006,36.95947265625003],[121.05380859375006,36.61137695312499],[120.81083984375007,36.6328125],[120.89580078125007,36.44414062500002],[120.71152343750006,36.41328125000004],[120.6378906250001,36.129931640625045],[120.39306640625003,36.053857421874994],[120.32773437500006,36.228173828124994],[120.18330078125004,36.20244140624999],[120.094140625,36.11889648437503],[120.28476562500006,35.98442382812499],[119.42968749999997,35.301416015624994],[119.16533203125002,34.84882812499998],[119.20097656250002,34.748437499999966],[120.26669921875006,34.274023437500034],[120.87109374999997,33.016503906249994],[120.8532226562501,32.66137695312503],[121.34169921875005,32.42504882812503],[121.40390625000006,32.20625],[121.85634765625,31.816455078125045],[121.86630859375006,31.703564453124955],[121.68085937500004,31.71215820312503],[121.351953125,31.85878906250005],[120.97353515625,31.86938476562497],[120.52011718750006,32.10585937500002],[120.03593750000002,31.93627929687503],[120.7155273437501,31.983740234375006],[120.7877929687501,31.81977539062501],[121.66064453124997,31.319726562499994],[121.87792968750003,30.91699218750003],[121.41894531249997,30.789794921875057],[120.8214843750001,30.354638671875023],[120.44980468750006,30.38784179687505],[120.19462890625002,30.241308593750034],[120.49453125,30.303076171875006],[120.63339843750006,30.133154296875034],[121.25800781250004,30.30410156250005],[121.67792968750004,29.979101562500006],[122.08291015625005,29.870361328125057],[121.50625,29.484570312499955],[121.94121093750002,29.605908203124983],[121.91777343750007,29.13500976562497],[121.71748046875004,29.25634765625],[121.48710937500007,29.193164062500017],[121.67968749999997,28.953125],[121.54003906250003,28.931884765625],[121.6625,28.851416015625034],[121.47519531250006,28.64140625],[121.60996093750006,28.29213867187505],[121.27226562500002,28.222119140624983],[121.14570312500004,28.32666015624997],[120.95859375000006,28.037011718750023],[120.74765625000006,28.00996093750001],[120.83300781249997,27.891455078125034],[120.58750000000012,27.580761718749983],[120.60751953125012,27.41240234374996],[120.2787109375,27.097070312500023],[120.08671875000007,26.67158203125004],[119.88222656250005,26.610449218750006],[119.82421874999997,26.84638671875001],[119.71044921874997,26.728662109375023],[119.58818359375002,26.784960937500045],[119.8810546875001,26.33417968750004],[119.46308593750004,26.05468750000003],[119.13945312500007,26.12177734375001],[119.33203124999997,25.94873046875003],[119.61875000000012,26.003564453124994],[119.53945312500005,25.59125976562504],[119.6224609375,25.391162109375017],[119.180078125,25.449804687499977],[119.285546875,25.232226562500074],[118.97753906249997,25.209277343750017],[118.90908203125005,24.92890625000001],[118.63691406250004,24.835546874999977],[118.65703125000002,24.621435546874977],[118.0871093750001,24.627001953125045],[118.00595703125006,24.48198242187499],[117.84267578125005,24.47431640625004],[118.0560546875,24.24609374999997],[117.62822265625002,23.836718750000074],[117.46640625000012,23.84057617187497],[117.36767578124997,23.58862304687497],[117.29082031250007,23.71435546875],[117.08251953124997,23.578759765625023],[116.91064453124997,23.646679687499983],[116.86093750000006,23.453076171874983],[116.62939453124997,23.353857421875034],[116.69882812500006,23.277783203124983],[116.53828125000004,23.17968749999997],[116.47070312499997,22.945898437500034],[116.25185546875005,22.981347656249994],[115.85214843750006,22.801562500000045],[115.64042968750002,22.853417968750023],[115.49833984375002,22.718847656250063],[115.19580078125003,22.81728515625005],[114.85380859375007,22.616796875000063],[114.65166015625002,22.755273437500023],[114.55419921874997,22.52890625],[114.26601562500005,22.540966796874983],[114.01542968750007,22.51191406250001],[113.61962890624997,22.861425781249977],[113.6205078125,23.12749023437499],[113.51972656250004,23.102099609375074],[113.33105468749997,22.912011718749966],[113.55302734375002,22.594042968750045],[113.54912109375002,22.225195312500034],[113.14902343750012,22.075],[113.08876953125,22.207958984374983],[112.95390625000007,21.907324218750034],[112.80859374999997,21.944628906250074],[112.58632812500005,21.77685546875],[112.35966796875007,21.97802734375003],[112.30498046875002,21.74169921875003],[111.94394531250012,21.84965820312499],[111.60273437500004,21.55908203125003],[111.01689453125007,21.51171874999997],[110.56718750000002,21.21406250000001],[110.41093750000007,21.33813476562497],[110.15400390625004,20.944628906250017],[110.36542968750004,20.837597656249955],[110.31308593750012,20.67167968749999],[110.51152343750007,20.51826171875001],[110.34472656249997,20.29482421875005],[109.88251953125004,20.364062500000045],[109.96835937500006,20.448144531250023],[109.66259765625003,20.91689453125005],[109.68125000000012,21.13164062499999],[109.93076171875012,21.480566406250034],[109.6869140625,21.52460937500004],[109.56640624999997,21.690576171874994],[109.54404296875012,21.537939453125006],[109.14863281250004,21.425537109375],[109.1017578125001,21.59047851562505],[108.77167968750004,21.63046875],[108.59375,21.901025390624994],[108.47988281250005,21.904638671875006],[108.50214843750004,21.633447265624994],[108.32480468750006,21.693505859374994],[108.24628906250004,21.55839843749999],[107.97265624999997,21.507958984375023],[107.75927734374997,21.655029296875057],[107.35117187500012,21.60888671874997],[106.97099609375002,21.923925781250034],[106.66357421875003,21.97890625000005],[106.55039062500006,22.501367187499994],[106.78027343749997,22.778906250000034],[106.54179687500007,22.908349609375023],[106.2790039062501,22.857470703125045],[106.14843749999997,22.970068359375006],[105.8429687500001,22.922802734374955],[105.27539062500003,23.34521484375003],[104.86474609375003,23.136376953125023],[104.68730468750002,22.822216796874983],[104.37177734375004,22.704052734374983],[104.14306640624997,22.800146484375006],[103.94150390625006,22.540087890625045],[103.62021484375006,22.782031250000045],[103.49296875000007,22.587988281250034],[103.32666015625003,22.769775390625057],[102.98193359374997,22.4482421875],[102.47089843750004,22.75092773437501],[102.40644531250004,22.70800781249997],[102.2370117187501,22.466015624999983],[102.1759765625001,22.414648437500006],[102.12744140624997,22.379199218750045],[101.84179687500003,22.38847656249999],[101.75996093750004,22.490332031250034],[101.73876953124997,22.495263671874994],[101.70751953125003,22.486572265625],[101.67148437500006,22.462304687500023],[101.64619140625004,22.405419921874966],[101.61992187500002,22.32744140624999],[101.56787109374997,22.27636718749997],[101.52451171875006,22.25366210937497],[101.7365234375001,21.826513671874977],[101.74394531250007,21.77797851562505],[101.74726562500004,21.605761718750045],[101.72294921875007,21.31494140625003],[101.80058593750007,21.212597656249983],[101.78349609375007,21.204150390625017],[101.728125,21.156396484374994],[101.7047851562501,21.15014648437503],[101.54238281250005,21.23427734375005],[101.2814453125001,21.184130859375045],[101.24785156250007,21.197314453125045],[101.22441406250002,21.223730468750034],[101.21181640625,21.278222656250023],[101.2199218750001,21.34243164062505],[101.17539062500006,21.407519531250074],[101.19667968750005,21.522070312500063],[101.1388671875001,21.567480468749977],[101.07978515625004,21.75585937499997],[100.60458984375012,21.471777343750006],[100.14765625000004,21.480517578125017],[99.94072265625007,21.75874023437504],[99.9176757812501,22.02802734375001],[99.19296875000006,22.12597656249997],[99.50712890625002,22.959130859374994],[99.41806640625006,23.069238281250023],[98.86376953125003,23.191259765625034],[98.8322265625001,23.624365234374977],[98.67675781250003,23.905078125000045],[98.83505859375006,24.121191406250034],[98.2125,24.110644531250017],[97.56455078125012,23.911035156250023],[97.7082031250001,24.228759765625],[97.53144531250004,24.49169921875003],[97.58330078125002,24.77480468750005],[97.73789062500006,24.869873046875057],[97.8195312500001,25.251855468749994],[98.01074218749997,25.292529296875017],[98.14287109375007,25.571093750000017],[98.33378906250007,25.586767578125006],[98.65625,25.86357421874999],[98.56406250000006,26.072412109374994],[98.68554687499997,26.189355468750023],[98.7384765625001,26.785742187500006],[98.65117187500007,27.572460937499983],[98.4525390625,27.6572265625],[98.29882812499997,27.550097656250045],[98.06162109375012,28.185888671874977],[97.59921875000006,28.51704101562504],[97.53789062500002,28.510205078124983],[97.43144531250002,28.353906250000023],[97.35644531249997,28.254492187500006],[97.32158929493812,28.217097107438057],[97.3027336276825,28.08710519614969],[97.34382779482424,27.982305259167095],[97.04929369561631,27.76000444316393],[96.96494598325154,27.699301564540924],[96.19423412199573,28.04146177926422],[95.73730002295082,28.117613231051525],[95.11298892962586,27.748338353239472],[94.07167814294401,27.588707868507477],[93.61247595136224,27.323800298697016],[93.30681393470121,26.786120363519142],[92.74319481218781,26.833531317384058],[92.04974640832253,26.874866505386724],[92.07342257335648,26.915311275859864],[92.06813426293174,26.9752569185349],[92.02985139563152,27.03987087331446],[91.99856592104459,27.079255842602592],[91.99177981607339,27.100605151743654],[92.0025114452454,27.147290053160265],[92.03101585307499,27.214271359861193],[92.08387457645458,27.29090135496722],[92.04520857607581,27.364442429033787],[91.99069061380867,27.450181624174498],[91.95099838734396,27.45828799115413],[91.85276579410389,27.438593286730903],[91.74366351462741,27.442853010105477],[91.59505352446729,27.557262710287986],[91.63193359375012,27.759960937499983],[91.64189453125002,27.923242187500023],[91.36259958579089,28.02438066407592],[91.27304687500012,28.078369140625],[91.22587890625007,28.071240234374983],[91.07773437500012,27.974462890624977],[91.02080078125002,27.970068359374977],[90.71572265625,28.071728515624983],[90.63007812500004,28.078564453124955],[90.47734375000007,28.07084960937499],[90.3527343750001,28.080224609375023],[90.33310546875012,28.093994140625],[90.36298828125004,28.21650390625001],[90.34824218750006,28.24394531249999],[90.22080078125006,28.27773437500005],[90.10449218749997,28.302050781250017],[89.98105468750006,28.311181640625023],[89.8978515625,28.29414062500001],[89.81689453125003,28.25629882812501],[89.74980468750002,28.18818359375001],[89.65273437500005,28.158300781250034],[89.53691406250007,28.10742187499997],[89.4806640625001,28.059960937499994],[88.89140625000002,27.316064453124966],[88.83251953125003,27.36284179687499],[88.7648437500001,27.429882812499983],[88.74902343749997,27.521875],[88.82988281250002,27.76738281249999],[88.84882812500004,27.86865234375],[88.80371093750003,28.006933593750034],[88.57792968750002,28.093359375000034],[88.42597656250004,28.01166992187501],[88.27519531250007,27.968847656250006],[88.14111328125003,27.94892578125001],[88.10898437500006,27.933007812499966],[88.10976562500005,27.870605468750057],[87.8607421875,27.886083984375006],[87.62255859374997,27.81518554687503],[87.29072265625004,27.821923828124994],[87.14140625000002,27.838330078124955],[87.02011718750006,27.928662109374983],[86.9337890625001,27.96845703125001],[86.84238281250012,27.99916992187505],[86.750390625,28.022070312500006],[86.71962890625005,28.070654296875034],[86.69052734375006,28.09492187500001],[86.61445312500004,28.10302734374997],[86.55449218750007,28.08520507812497],[86.51689453125007,27.963525390624966],[86.40869140625003,27.928662109374983],[86.32861328124997,27.95952148437496],[86.2179687500001,28.022070312500006],[86.13701171875002,28.114355468750063],[86.07871093750006,28.08359375],[86.0641601562501,27.934716796874966],[85.99453125000005,27.910400390625],[85.95410156249997,27.92822265624997],[85.92167968750002,27.989697265624983],[85.84023437500005,28.135351562499977],[85.75947265625004,28.220654296874955],[85.67832031250012,28.277441406249977],[85.41064453125003,28.27602539062505],[85.21210937500004,28.292626953124966],[85.1224609375,28.315966796875017],[85.08857421875004,28.37226562500001],[85.121484375,28.484277343750023],[85.16015624999997,28.571875],[85.15908203125,28.592236328124983],[85.1263671875,28.602636718750063],[85.06914062500007,28.60966796874999],[84.85507812500006,28.553613281250023],[84.796875,28.560205078125023],[84.2287109375001,28.911767578124966],[84.17558593750002,29.036376953125057],[84.12783203125005,29.15629882812496],[84.10136718750002,29.21997070312497],[84.02197265624997,29.25385742187504],[83.93593750000005,29.27949218750001],[83.58349609375003,29.18359375000003],[83.15546875000004,29.612646484375034],[82.22070312500003,30.063867187500023],[82.04335937500005,30.326757812500034],[81.8548828125,30.362402343750006],[81.64189453125007,30.3875],[81.4171875000001,30.33759765625001],[81.25507812500004,30.09331054687499],[81.17714843750005,30.039892578125034],[80.98544921875006,30.23710937499999],[80.87353515625003,30.290576171875045],[80.19121093750002,30.56840820312496],[80.20712890625006,30.683740234375023],[79.92451171875004,30.888769531250034],[79.66425781250004,30.96523437499999],[79.38847656250007,31.064208984375],[79.10712890625004,31.402636718750017],[78.74355468750005,31.323779296875017],[78.7550781250001,31.55029296875],[78.69345703125006,31.740380859374994],[78.72558593750003,31.983789062500023],[78.49589843750002,32.21577148437504],[78.4552734375001,32.30034179687502],[78.41748046874997,32.466699218749994],[78.38964843749997,32.51987304687498],[78.73671875,32.55839843750002],[78.75351562500012,32.49926757812506],[78.91894531249997,32.35820312500002],[79.16992187500003,32.497216796874994],[79.14550781250003,33.00146484375006],[79.10283203125007,33.05253906249996],[79.13515625000005,33.17192382812496],[79.1125,33.22626953125001],[78.94843750000004,33.346533203125006],[78.86503906250002,33.43110351562501],[78.78378906250006,33.80878906250004],[78.72666015625006,34.013378906249955],[78.97060546875,34.22822265625004],[78.93642578125,34.35195312500002],[78.86484375000006,34.39033203125001],[78.32695312500007,34.60639648437498],[78.15849609375002,34.94648437499998],[78.07578125000006,35.13491210937502],[78.0426757812501,35.47978515625002],[77.79941406250006,35.49589843750002],[77.44648437500004,35.47558593750006],[77.29482421875005,35.508154296875034],[77.09003906250004,35.55205078124999],[76.87890625000003,35.61328125000003],[76.76689453125002,35.661718750000034],[76.72753906250003,35.67866210937504],[76.63183593749997,35.729394531249966],[76.56347656249997,35.77299804687499],[76.55126953124997,35.887060546875034],[76.50205078125006,35.87822265625002],[76.38574218750003,35.837158203125],[76.25166015625004,35.8109375],[76.17783203125012,35.810546875],[76.14785156250005,35.82900390625002],[76.07089843750006,35.983007812500034],[75.91230468750004,36.048974609374994],[75.97441406250007,36.38242187500006],[75.9518554687501,36.458105468750034],[75.9330078125,36.52158203124998],[75.840234375,36.64970703124999],[75.7721679687501,36.694921875000034],[75.6671875000001,36.741992187500045],[75.57373046874997,36.75932617187502],[75.46025390625002,36.725048828124955],[75.42421875000005,36.73823242187498],[75.37685546875,36.88369140625005],[75.34667968749997,36.913476562499966],[75.05390625000004,36.98715820312498],[74.94912109375,36.96835937500006],[74.88925781250006,36.95244140625002],[74.69218750000007,37.035742187500006],[74.60058593749997,37.03666992187502],[74.54140625,37.02216796875001],[74.52646484375006,37.03066406250005],[74.49794921875,37.057226562500034],[74.37617187500004,37.13735351562502],[74.37216796875006,37.15771484375],[74.558984375,37.23662109374999],[74.66894531250003,37.266699218750006],[74.72666015625006,37.29072265625001],[74.7389648437501,37.28564453125003],[74.76738281250002,37.249169921874966],[74.840234375,37.22504882812504],[74.89130859375004,37.231640624999955],[75.11875,37.38569335937498],[74.8942382812501,37.60141601562498],[74.81230468750002,38.46030273437498],[74.27744140625,38.659765625000034],[74.02558593750004,38.53984375000002],[73.80166015625,38.60688476562501],[73.69609375000007,38.85429687499996],[73.8052734375,38.968652343749994],[73.60732421875,39.229199218749955],[73.63632812500006,39.396679687499955],[73.63164062500007,39.44887695312502],[73.82294921875004,39.48896484375004],[73.90712890625,39.578515624999966],[73.9146484375,39.60649414062499],[73.88251953125004,39.71455078124998],[73.83974609375005,39.76284179687505],[73.8353515625,39.800146484375006],[73.85625,39.828662109375045],[73.88457031250002,39.87792968750006],[73.93876953125002,39.97880859374999],[73.99160156250005,40.04311523437502],[74.83046875,40.32851562499999],[74.80126953124997,40.428515625000045],[74.83515625000004,40.482617187499955],[74.865625,40.493505859375034],[75.0044921875,40.44951171874996],[75.11132812499997,40.4541015625],[75.24101562500002,40.48027343750002],[75.52080078125002,40.627539062500006],[75.55556640625,40.625195312499955],[75.6771484375,40.305810546874994],[75.87197265625,40.30322265625],[76.25830078124997,40.43076171875006],[76.3185546875001,40.352246093749955],[76.39638671875005,40.389794921874966],[76.4801757812501,40.44951171874996],[76.57792968750002,40.577880859375],[76.62216796875006,40.66235351562497],[76.6398437500001,40.74223632812499],[76.66113281249997,40.77963867187498],[76.70839843750005,40.818115234375],[76.82402343750002,40.982324218749966],[76.90771484374997,41.02416992187497],[76.98662109375002,41.039160156250006],[77.58173828125004,40.99277343750006],[77.71933593750012,41.024316406249994],[77.81523437500002,41.05561523437498],[77.9564453125,41.05068359375005],[78.1234375,41.07563476562498],[78.34628906250012,41.28144531249998],[78.36240234375012,41.37163085937496],[78.44287109374997,41.41752929687499],[78.742578125,41.56005859375],[79.29355468750006,41.78281249999998],[79.76611328124997,41.89887695312501],[79.84042968750012,41.99575195312502],[79.90966796875003,42.014990234375034],[80.21621093750005,42.03242187500004],[80.23515625000007,42.04345703124997],[80.24619140625012,42.05981445312503],[80.209375,42.190039062500006],[80.20224609375012,42.73447265624998],[80.53896484375005,42.873486328124955],[80.39023437500006,43.043115234374966],[80.78574218750006,43.16157226562504],[80.35527343750002,44.09726562500006],[80.48154296875006,44.71464843749999],[79.871875,44.88378906249997],[80.05917968750012,45.006445312500006],[81.69199218750012,45.34936523437497],[81.94492187500006,45.16083984375001],[82.26660156249997,45.21909179687498],[82.52148437500003,45.12548828125],[82.61162109375007,45.424267578124955],[82.31523437500002,45.59492187499998],[83.02949218750004,47.18593750000002],[84.016015625,46.97050781250002],[84.66660156250006,46.97236328125004],[84.78613281249997,46.83071289062505],[85.484765625,47.06352539062496],[85.65664062500005,47.254638671875],[85.52597656250006,47.915625],[85.7494140625,48.38505859374999],[86.54941406250012,48.52861328125002],[86.8083007812501,49.04970703125002],[87.32285156250012,49.085791015625006],[87.41669921875004,49.07661132812501],[87.5158203125001,49.122412109375006],[87.7625,49.16582031249996],[87.81425781250002,49.162304687499955],[87.87216796875012,49.000146484374966],[87.74316406250003,48.88164062499999],[87.83183593750007,48.79165039062505],[88.02792968750006,48.735595703125],[88.06005859375003,48.707177734374966],[87.9796875000001,48.55512695312498],[88.30996093750005,48.47207031250002],[88.41396484375,48.403417968750006],[88.51708984374997,48.384472656249955],[88.56679687500005,48.31743164062496],[88.57597656250007,48.220166015624955],[88.68183593750004,48.170556640624994],[88.83828125000005,48.101708984374994],[88.91777343750007,48.089013671874966],[89.04765625000007,48.002539062500034],[89.47919921875004,48.02905273437503],[89.5609375,48.00395507812496],[89.778125,47.82700195312498],[89.83134765625002,47.82329101562502],[89.91044921875007,47.844335937500034],[89.95869140625004,47.88632812499998],[90.02792968750012,47.877685546875],[90.1032226562501,47.74541015624996],[90.19101562500012,47.70209960937501],[90.31328125000007,47.67617187499999],[90.33066406250006,47.655175781249966],[90.42519531250005,47.50410156250001],[90.49619140625012,47.28515625],[90.64335937500007,47.10029296874998],[90.71552734375004,47.00385742187498],[90.7990234375001,46.98515624999999],[90.86992187500002,46.95449218750005],[90.91054687500005,46.88325195312501],[90.9857421875,46.7490234375],[90.9115234375,46.270654296874994],[90.94755859375002,46.17729492187499],[90.99677734375004,46.10498046875],[91.00175781250007,46.03579101562502],[90.6618164062501,45.525244140625006],[90.87724609375002,45.19609375000002],[91.05,45.217431640624994],[91.584375,45.07651367187498],[92.42382812499997,45.008935546874994],[92.57890625000002,45.01098632812506],[92.78789062500007,45.035742187500034],[93.51621093750012,44.944482421874994],[94.71201171875012,44.35083007812503],[95.35029296875004,44.27807617187503],[95.32558593750005,44.03935546874999],[95.52558593750004,43.953955078125006],[95.85957031250004,43.27597656249998],[96.38544921875004,42.72036132812502],[97.20566406250012,42.78979492187506],[99.46787109375012,42.568212890625034],[99.98378906250005,42.67734375000006],[100.08632812500005,42.67075195312506],[100.51904296875003,42.61679687499998],[101.09199218750004,42.55131835937496],[101.49531250000004,42.53876953124998],[101.57910156249997,42.52353515624998],[101.65996093750002,42.50004882812499],[101.97294921875002,42.21586914062502],[102.15664062500005,42.158105468749966],[102.57519531249997,42.09208984375002],[103.07285156250006,42.00595703125006],[103.7111328125001,41.75131835937506],[103.99726562500004,41.796972656250034],[104.30517578124997,41.84614257812501],[104.49824218750004,41.87700195312499],[104.49824218750004,41.65869140625],[104.86035156250003,41.64375],[104.98203125000012,41.59550781250002],[105.05058593750002,41.61591796875001],[105.1154296875001,41.66328124999998],[105.19707031250002,41.738037109375],[105.31435546875005,41.77089843750005],[105.86757812500005,41.993994140625034],[106.77001953125003,42.28872070312502],[108.17119140625002,42.44731445312502],[108.68730468750002,42.416113281250034],[109.33984374999997,42.43837890625005],[109.44316406250002,42.455957031249994],[110.40039062499997,42.77368164062497],[111.00722656250005,43.34140624999998],[111.878125,43.68017578125],[111.93173828125012,43.81494140625],[111.40224609375005,44.367285156250006],[111.89804687500006,45.064062500000034],[112.03261718750005,45.08164062500006],[112.11289062500006,45.06293945312498],[112.41132812500004,45.05820312499998],[112.49931640625002,45.01093750000004],[112.59677734375006,44.917675781249955],[112.7067382812501,44.883447265624994],[113.04941406250006,44.81035156250002],[113.3009765625001,44.79165039062502],[113.50791015625006,44.76235351562502],[113.58701171875006,44.745703125],[113.65263671875002,44.76347656249999],[113.87705078125012,44.89619140625001],[114.03027343749997,44.942578124999955],[114.08027343750004,44.97114257812501],[114.41914062500004,45.20258789062501],[114.56015625000012,45.38999023437498],[114.73876953124997,45.41962890624998],[114.91923828125007,45.378271484375006],[115.16259765624997,45.390234375000034],[115.6810546875,45.45825195312503],[116.19765625,45.739355468750006],[116.240625,45.795996093750006],[116.22910156250012,45.84575195312502],[116.21298828125012,45.88691406249998],[116.56259765625012,46.28979492187497],[116.85908203125004,46.387939453125],[117.3333984375,46.36201171875004],[117.35693359375003,46.391308593749955],[117.35634765625,46.436669921874966],[117.39218750000012,46.53759765625003],[117.40556640625007,46.57089843750006],[117.43808593750012,46.58623046874999],[117.546875,46.58828125000005],[117.74121093749997,46.51816406250006],[118.07128906249997,46.666601562500006],[118.15683593750006,46.678564453125034],[118.30869140625012,46.71704101562497],[118.40439453125006,46.70317382812499],[118.58046875,46.69189453125],[118.64873046875002,46.70166015625006],[118.72294921875007,46.69189453125],[118.8439453125001,46.76020507812498],[118.95712890625006,46.73486328124997],[119.16210937499997,46.638671875],[119.33183593750002,46.61381835937499],[119.47402343750005,46.626660156249955],[119.62021484375006,46.60395507812504],[119.70664062500006,46.60600585937502],[119.74746093750005,46.62719726562497],[119.86718750000003,46.67216796874999],[119.89785156250005,46.857812499999966],[119.71113281250004,47.15],[119.08193359375,47.654150390625034],[119.01757812500003,47.68535156249999],[118.88027343750005,47.72509765625],[118.75996093750004,47.75761718749996],[118.69052734375012,47.822265625],[118.56777343750005,47.94326171875005],[118.49843750000005,47.98398437499998],[117.76835937500002,47.98789062499998],[117.3507812500001,47.65219726562498],[117.28593750000002,47.666357421875034],[117.06972656250005,47.80639648437506],[116.95166015624997,47.836572265624966],[116.90117187500007,47.85307617187496],[116.76054687500002,47.869775390624994],[116.65195312500012,47.86450195312497],[116.51347656250007,47.839550781249955],[116.37822265625002,47.84404296874999],[116.31718750000002,47.85986328125],[116.2311523437501,47.85820312500002],[116.07480468750012,47.78955078125],[115.99384765625004,47.71132812500005],[115.89824218750002,47.68691406250005],[115.6164062500001,47.874804687500045],[115.52509765625004,48.13085937499997],[115.63945312500007,48.18623046874998],[115.785546875,48.24824218750001],[115.7965820312501,48.346337890624994],[115.7916992187501,48.455712890624994],[115.8205078125001,48.57724609375006],[116.6833007812501,49.82377929687499],[117.8734375,49.51347656250002],[118.4515625,49.84448242187503],[119.25986328125012,50.06640625000003],[119.34628906250012,50.278955078124994],[119.16367187500006,50.40600585937503],[120.06689453125003,51.60068359375006],[120.74980468750007,52.096533203125006],[120.65615234375,52.56665039062503],[120.0675781250001,52.632910156250034],[120.09453125000007,52.787207031250034],[120.98544921875012,53.28457031250002],[123.6078125,53.546533203124994],[124.81230468750002,53.133837890625045],[125.075,53.20366210937496],[125.64902343750012,53.042285156250045],[126.34169921875,52.36201171875001],[126.92480468749997,51.10014648437496],[127.30703125000005,50.70795898437501],[127.33720703125007,50.35014648437502],[127.590234375,50.20898437500003],[127.55078124999997,49.801806640625045],[127.99960937500006,49.56860351562506],[128.70400390625,49.60014648437499],[129.0651367187501,49.374658203124966],[129.49814453125012,49.38881835937502],[130.1959960937501,48.89165039062499],[130.553125,48.861181640625006],[130.5521484375,48.602490234374955],[130.80429687500012,48.34150390624998],[130.7326171875001,48.01923828124998],[130.96191406249997,47.70932617187498],[132.47626953125004,47.714990234374994],[132.7072265625001,47.94726562500006],[133.14404296875003,48.10566406249998],[133.46835937500006,48.09716796875003],[134.29335937500005,48.37343750000002],[134.66523437500004,48.25390625],[134.56601562500006,48.02250976562502],[134.75234375,47.71542968749998],[134.1676757812501,47.30219726562501],[133.86132812500003,46.24775390625004],[133.43642578125,45.60468750000004],[133.18603515625003,45.49482421875004],[133.1134765625001,45.130712890625006],[132.93603515624997,45.029931640624994],[131.85185546875002,45.32685546875001],[131.44687500000012,44.984033203124966],[130.9816406250001,44.844335937500034],[131.2552734375,44.07158203124999],[131.25732421875003,43.378076171874994],[131.06855468750004,42.90224609375005],[130.42480468749997,42.72705078124997],[130.52695312500012,42.535400390625]]],[[[113.9977539062501,22.210498046875045],[113.83886718749997,22.24169921875003],[114.04394531250003,22.33339843750005],[113.9977539062501,22.210498046875045]]],[[[114.01542968750007,22.51191406250001],[114.26601562500005,22.540966796874983],[114.26796875,22.295556640624966],[113.93730468750002,22.364990234375],[114.01542968750007,22.51191406250001]]],[],[[[118.4074218750001,24.522119140624994],[118.43271484375006,24.414355468750074],[118.29511718750004,24.436328125000017],[118.4074218750001,24.522119140624994]]],[[[121.00878906249997,22.62036132812497],[120.83984375000003,21.925],[120.2328125,22.71791992187505],[120.0724609375001,23.149755859375006],[120.13212890625007,23.652929687500034],[121.040625,25.032812500000034],[121.59365234375,25.275341796874983],[121.92900390625002,24.973730468749977],[121.39746093750003,23.172509765625023],[121.00878906249997,22.62036132812497]]]]},"properties":{"name":"China","childNum":15}},{"geometry":{"type":"Polygon","coordinates":[[[-5.262304687499977,10.319677734374991],[-4.72177734374992,9.756542968750026],[-4.625830078125006,9.713574218749969],[-4.526611328124943,9.723486328125034],[-4.406201171874926,9.647998046875031],[-4.332226562499955,9.645703125],[-4.18115234375,9.78173828125],[-3.790625,9.917187499999983],[-3.581152343749977,9.924316406250014],[-3.289697265625023,9.882226562500051],[-3.223535156249937,9.895458984374997],[-3.160693359374932,9.849169921874974],[-3.095800781249949,9.752099609375009],[-3.042626953124937,9.72089843750004],[-2.988281249999972,9.687353515624963],[-2.900878906249943,9.534619140625026],[-2.875146484374937,9.500927734374997],[-2.816748046874949,9.425830078124974],[-2.766601562499943,9.424707031250009],[-2.7171875,9.457128906250048],[-2.695849609374989,9.481347656250009],[-2.686132812499977,9.43173828125002],[-2.705761718749983,9.351367187499989],[-2.74692382812492,9.04511718750004],[-2.689892578124955,9.02509765625004],[-2.649218750000017,8.956591796875031],[-2.600390625000017,8.800439453125023],[-2.505859375000028,8.208740234375],[-2.538281249999955,8.171630859374986],[-2.61171875,8.147558593749963],[-2.619970703125006,8.12109375],[-2.600976562499937,8.082226562499983],[-2.613378906249977,8.046679687500017],[-2.668847656249994,8.022216796875014],[-2.789746093749955,7.931933593750003],[-2.959082031249977,7.454541015624997],[-3.227148437499977,6.749121093749991],[-2.998291015624972,5.711328125000051],[-2.793652343749955,5.600097656250028],[-2.754980468749977,5.432519531249994],[-2.815673828125,5.153027343749997],[-3.168701171874972,5.203027343749966],[-3.199951171874943,5.3544921875],[-3.347558593749994,5.13066406249996],[-4.120166015625017,5.309716796875023],[-4.60888671875,5.235888671875003],[-4.037207031249977,5.23012695312498],[-4.899707031249932,5.138330078125023],[-5.282373046874994,5.210253906250017],[-5.36752929687492,5.15078125],[-5.061816406249989,5.13066406249996],[-5.913769531249926,5.0109375],[-7.544970703124989,4.351318359375],[-7.574658203124983,4.572314453124989],[-7.585058593749977,4.916748046875],[-7.39990234375,5.550585937499989],[-7.454394531249989,5.841308593749972],[-7.636132812499994,5.90771484375],[-7.730371093749994,5.919042968749991],[-7.800927734374994,6.038916015624991],[-7.833251953125,6.076367187499983],[-7.855517578125017,6.150146484375],[-7.888623046875011,6.234863281250028],[-7.981591796874937,6.2861328125],[-8.287109375,6.31904296875004],[-8.587890625,6.490527343749989],[-8.324511718749989,6.920019531249991],[-8.408740234374989,7.411816406249997],[-8.429980468749989,7.601855468749989],[-8.351757812499926,7.590576171875],[-8.231884765624955,7.556738281250034],[-8.205957031249994,7.590234375000023],[-8.115429687499926,7.760742187500028],[-8.126855468749937,7.867724609374974],[-8.00986328124992,8.078515625000023],[-8.048583984375,8.169726562500045],[-8.140625,8.181445312500031],[-8.217138671874949,8.219677734375011],[-8.256103515625,8.253710937500017],[-8.244140624999943,8.407910156249983],[-8.236962890624994,8.455664062500034],[-7.953125,8.477734375],[-7.823583984374977,8.467675781249994],[-7.738964843749983,8.375244140624986],[-7.696093749999932,8.375585937499977],[-7.71958007812492,8.643017578125011],[-7.950976562499989,8.786816406249997],[-7.938183593749983,8.97978515624996],[-7.902099609375,9.017089843750014],[-7.777978515624937,9.080859375000031],[-7.799804687499943,9.115039062499989],[-7.839404296875017,9.151611328124972],[-7.918066406249949,9.188525390625031],[-7.896191406249955,9.415869140624991],[-8.136962890624972,9.49570312499999],[-8.155175781249937,9.973193359375017],[-7.990625,10.1625],[-7.661132812500028,10.427441406250011],[-7.385058593749989,10.340136718749989],[-7.01708984375,10.143261718750026],[-6.950341796874994,10.342333984374989],[-6.693261718750023,10.34946289062502],[-6.669335937499937,10.39218750000002],[-6.69199218749992,10.512011718750017],[-6.686132812499977,10.578027343750051],[-6.676367187499949,10.633789062500043],[-6.654150390624949,10.65644531250004],[-6.482617187499983,10.561230468749997],[-6.250244140625,10.717919921875037],[-6.190673828124943,10.400292968749994],[-6.192626953124972,10.369433593750003],[-6.241308593749949,10.279199218750009],[-6.238378906249977,10.26162109374998],[-6.117187499999972,10.201904296874986],[-6.034570312499937,10.194824218750057],[-5.907568359375006,10.307226562500034],[-5.896191406249983,10.354736328125028],[-5.843847656249977,10.389550781250023],[-5.694287109374983,10.433203125000034],[-5.556591796874983,10.439941406249986],[-5.382275390625011,10.314013671875003],[-5.262304687499977,10.319677734374991]]]},"properties":{"name":"Côte d\'Ivoire","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[15.480078125,7.523779296874991],[15.206738281250011,7.206152343749991],[14.7392578125,6.27978515625],[14.43115234375,6.038720703124994],[14.616894531250011,5.865136718749994],[14.56298828125,5.279931640624994],[14.73125,4.602392578124991],[15.063574218750006,4.284863281249997],[15.128710937500017,3.826904296875],[16.0634765625,2.90859375],[16.183398437500017,2.270068359374989],[16.059375,1.676220703124997],[15.741601562500023,1.914990234374997],[14.902441406250006,2.012304687499991],[14.578906250000017,2.199121093749994],[13.293554687500006,2.161572265624997],[13.2203125,2.256445312499991],[11.558984375000023,2.302197265624997],[11.348437500000017,2.299707031249994],[11.328710937500006,2.167431640624997],[11.096582031250023,2.16748046875],[10.790917968750023,2.16757812499999],[9.979882812500023,2.167773437499989],[9.8701171875,2.21328125],[9.8369140625,2.242382812499997],[9.830371093750017,2.275488281249991],[9.826171875,2.297802734374997],[9.80078125,2.304443359375],[9.82177734375,2.539257812499997],[9.948437500000011,3.079052734374997],[9.672070312500011,3.53759765625],[9.765722656250006,3.623828124999989],[9.642382812500017,3.611767578124997],[9.55615234375,3.798046875],[9.739648437500023,3.852929687499994],[9.639941406250017,3.96533203125],[9.688867187500023,4.056396484375],[9.483691406250017,4.066113281249997],[9.42529296875,3.922314453124997],[9.000097656250006,4.091601562499989],[8.918261718750017,4.553759765624989],[8.660351562500011,4.670996093749991],[8.65625,4.516357421875],[8.53955078125,4.571875],[8.715625,5.046875],[8.997167968750006,5.917724609375],[9.490234375,6.418652343749997],[9.779882812500006,6.76015625],[9.820703125000023,6.783935546875],[9.874218750000011,6.803271484374989],[10.038867187500017,6.92138671875],[10.1435546875,6.996435546874991],[10.167773437500017,6.959179687499997],[10.185546875,6.912792968749997],[10.205468750000023,6.8916015625],[10.293066406250006,6.876757812499989],[10.413183593750006,6.877734374999989],[10.60625,7.063085937499991],[10.954199218750006,6.7765625],[11.032519531250017,6.697900390624994],[11.1064453125,6.457714843749997],[11.1533203125,6.437939453124997],[11.2373046875,6.450537109374991],[11.401757812500023,6.533935546875],[11.551660156250023,6.697265625],[11.580078125,6.888867187499997],[11.657519531250017,6.9515625],[11.861425781250006,7.11640625],[11.767382812500017,7.272265624999989],[11.809179687500006,7.345068359374991],[12.016015625000023,7.589746093749994],[12.2333984375,8.282324218749991],[12.403515625000011,8.595556640624991],[12.582714843750011,8.624121093749991],[12.651562500000011,8.667773437499989],[12.7822265625,8.81787109375],[12.806542968750023,8.886621093749994],[12.875683593750011,9.303515624999989],[12.929492187500017,9.42626953125],[13.19873046875,9.563769531249989],[13.269921875000023,10.036181640624989],[13.41455078125,10.171435546874989],[13.535351562500011,10.60507812499999],[13.699902343750011,10.873144531249991],[13.89208984375,11.140087890624997],[13.9814453125,11.211865234374997],[14.056738281250006,11.245019531249994],[14.143261718750011,11.24853515625],[14.202343750000011,11.268164062499991],[14.559765625000011,11.492285156249991],[14.619726562500006,12.150976562499991],[14.518945312500023,12.298242187499994],[14.272851562500023,12.356494140624989],[14.184863281250017,12.447216796874997],[14.06396484375,13.07851562499999],[14.244824218750011,13.07734375],[14.461718750000017,13.021777343749989],[14.847070312500023,12.502099609374994],[15.08125,11.845507812499989],[15.029882812500006,11.11367187499999],[15.132226562500023,10.648486328124989],[15.276074218750011,10.357373046874997],[15.654882812500006,10.0078125],[14.243261718750006,9.979736328125],[13.977246093750011,9.691552734374994],[14.332324218750017,9.20351562499999],[15.1162109375,8.557324218749997],[15.5498046875,7.787890624999989],[15.480078125,7.523779296874991]]]},"properties":{"name":"Cameroon","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[27.4033203125,5.109179687499989],[27.7880859375,4.644677734374994],[28.19208984375001,4.350244140624994],[28.427539062500017,4.324169921874997],[28.72705078125,4.504980468749991],[29.224902343750017,4.391894531249989],[29.469628906250023,4.61181640625],[29.676855468750006,4.5869140625],[30.194921875,3.98193359375],[30.50830078125,3.835693359375],[30.586718750000017,3.62421875],[30.757226562500023,3.62421875],[30.83857421875001,3.49072265625],[30.90644531250001,3.408935546875],[30.754003906250006,3.041796874999989],[30.8466796875,2.847021484374991],[30.728613281250006,2.455371093749989],[31.176367187500006,2.270068359374989],[31.252734375000017,2.044580078124994],[29.94287109375,0.819238281249994],[29.934472656250023,0.4990234375],[29.717675781250023,0.098339843749997],[29.576953125000017,-1.387890625000011],[29.196582031250017,-1.719921875000011],[29.13154296875001,-2.195117187500003],[28.876367187500023,-2.400292968750009],[28.893945312500023,-2.635058593750003],[29.01435546875001,-2.72021484375],[29.224414062500017,-3.053515625],[29.211816406250023,-3.833789062500003],[29.403222656250023,-4.449316406250006],[29.404199218750023,-4.496679687500006],[29.32568359375,-4.835644531250011],[29.32343750000001,-4.898828125],[29.3427734375,-4.983105468750011],[29.542382812500023,-5.499804687500003],[29.594140625000023,-5.65078125],[29.60703125,-5.72265625],[29.59638671875001,-5.775976562500006],[29.490820312500006,-5.965429687500006],[29.480078125,-6.025],[29.50625,-6.172070312500011],[29.540820312500017,-6.313867187500009],[29.590625,-6.394433593750009],[29.70966796875001,-6.616894531250011],[29.798144531250017,-6.69189453125],[29.961816406250023,-6.803125],[30.10625,-6.9150390625],[30.212695312500017,-7.037890625],[30.31318359375001,-7.203710937500006],[30.40673828125,-7.460644531250011],[30.75117187500001,-8.193652343750003],[28.89814453125001,-8.485449218750006],[28.869531250000023,-8.785839843750011],[28.400683593750017,-9.224804687500011],[28.60419921875001,-9.678808593750006],[28.6455078125,-10.550195312500009],[28.383398437500006,-11.566699218750003],[28.482519531250006,-11.812109375],[29.064355468750023,-12.348828125000011],[29.48554687500001,-12.41845703125],[29.508203125000023,-12.228222656250011],[29.79511718750001,-12.155468750000011],[29.775195312500017,-13.438085937500006],[29.55419921875,-13.248925781250009],[29.20185546875001,-13.398339843750009],[29.014257812500006,-13.368847656250011],[28.730078125,-12.925488281250011],[28.550878906250006,-12.836132812500011],[28.412890625000017,-12.51806640625],[27.573828125,-12.22705078125],[27.1591796875,-11.579199218750006],[26.824023437500017,-11.965234375],[26.025976562500006,-11.89013671875],[25.349414062500017,-11.623046875],[25.28876953125001,-11.21240234375],[24.3779296875,-11.417089843750006],[24.36572265625,-11.1298828125],[23.96650390625001,-10.871777343750011],[23.901171875000017,-10.983203125],[23.833886718750023,-11.013671875],[23.463964843750006,-10.969335937500006],[23.076269531250006,-11.087890625],[22.814746093750017,-11.080273437500011],[22.56103515625,-11.055859375000011],[22.486132812500017,-11.08671875],[22.392968750000023,-11.159472656250003],[22.31494140625,-11.198632812500009],[22.27880859375,-11.194140625],[22.226171875,-11.121972656250009],[22.203515625000023,-10.829492187500009],[22.307031250000023,-10.691308593750009],[22.19775390625,-10.040625],[21.81318359375001,-9.46875],[21.905371093750006,-8.693359375],[21.806054687500023,-7.32861328125],[21.751074218750006,-7.30546875],[21.190332031250023,-7.284960937500003],[20.910937500000017,-7.281445312500011],[20.607812500000023,-7.277734375],[20.558398437500017,-7.244433593750003],[20.53583984375001,-7.182812500000011],[20.536914062500017,-7.121777343750011],[20.598730468750006,-6.93515625],[20.59003906250001,-6.919921875],[20.482226562500017,-6.915820312500003],[20.190039062500006,-6.9462890625],[19.997460937500023,-6.976464843750009],[19.87519531250001,-6.986328125],[19.527636718750017,-7.144433593750009],[19.483789062500023,-7.279492187500011],[19.479882812500023,-7.47216796875],[19.371679687500006,-7.655078125],[19.369921875000017,-7.70654296875],[19.3408203125,-7.966601562500003],[19.142675781250006,-8.00146484375],[18.944433593750006,-8.00146484375],[18.56269531250001,-7.9359375],[18.0087890625,-8.107617187500011],[17.643359375000017,-8.090722656250009],[17.57958984375,-8.099023437500009],[16.984765625000023,-7.257421875],[16.91943359375,-6.933984375],[16.813085937500006,-6.772558593750006],[16.742968750000017,-6.618457031250003],[16.697265625,-6.164257812500011],[16.537109375,-5.9658203125],[16.431445312500017,-5.900195312500003],[16.315234375000017,-5.865625],[13.978515625,-5.857226562500003],[13.346484375000017,-5.863378906250006],[13.184375,-5.85625],[12.452929687500017,-6.00048828125],[12.213671875000017,-5.758691406250009],[12.484570312500011,-5.71875],[12.451464843750017,-5.071484375000011],[12.502734375000017,-5.036914062500003],[12.573535156250017,-4.99658203125],[12.59619140625,-4.978417968750009],[12.8296875,-4.736621093750003],[12.947460937500011,-4.6953125],[13.057324218750011,-4.651074218750011],[13.07275390625,-4.634765625],[13.08740234375,-4.601953125],[13.136621093750023,-4.604296875],[13.414941406250023,-4.83740234375],[13.659570312500023,-4.721484375],[13.717089843750017,-4.454492187500009],[13.94091796875,-4.484667968750003],[14.358300781250023,-4.299414062500006],[14.449804687500006,-4.449511718750003],[14.365429687500011,-4.585546875],[14.410742187500006,-4.83125],[14.707910156250023,-4.881738281250009],[15.990039062500017,-3.766210937500006],[16.217382812500006,-3.0302734375],[16.21533203125,-2.177832031250006],[16.54072265625001,-1.840136718750003],[16.8798828125,-1.225878906250003],[17.752832031250023,-0.549023437500011],[18.072167968750023,2.01328125],[18.49091796875001,2.924414062499991],[18.6103515625,3.478417968749994],[18.594140625000023,4.346240234374989],[19.06855468750001,4.891406249999989],[19.5009765625,5.127490234374989],[19.806542968750023,5.089306640624997],[20.226367187500017,4.829638671874989],[20.55810546875,4.462695312499989],[22.422167968750017,4.134960937499997],[22.864550781250017,4.723876953125],[23.41718750000001,4.663134765624989],[24.31982421875,4.994140625],[25.065234375000017,4.967431640624994],[25.52509765625001,5.31210937499999],[26.822070312500017,5.062402343749994],[27.071875,5.199755859374989],[27.4033203125,5.109179687499989]]]},"properties":{"name":"Dem. Rep. Congo","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[18.6103515625,3.478417968749994],[18.49091796875001,2.924414062499991],[18.072167968750023,2.01328125],[17.752832031250023,-0.549023437500011],[16.8798828125,-1.225878906250003],[16.54072265625001,-1.840136718750003],[16.21533203125,-2.177832031250006],[16.217382812500006,-3.0302734375],[15.990039062500017,-3.766210937500006],[14.707910156250023,-4.881738281250009],[14.410742187500006,-4.83125],[14.365429687500011,-4.585546875],[14.449804687500006,-4.449511718750003],[14.358300781250023,-4.299414062500006],[13.94091796875,-4.484667968750003],[13.717089843750017,-4.454492187500009],[13.659570312500023,-4.721484375],[13.414941406250023,-4.83740234375],[13.136621093750023,-4.604296875],[13.08740234375,-4.601953125],[13.07275390625,-4.634765625],[13.048046875000011,-4.619238281250006],[12.971386718750011,-4.5517578125],[12.881054687500011,-4.445117187500003],[12.84814453125,-4.428906250000011],[12.50146484375,-4.5875],[12.018359375000017,-5.004296875],[11.777539062500011,-4.565820312500009],[11.130175781250017,-3.916308593750003],[11.234472656250006,-3.690820312500009],[11.504296875000023,-3.5203125],[11.685742187500011,-3.68203125],[11.8798828125,-3.665917968750009],[11.934179687500006,-3.318554687500011],[11.715429687500006,-3.176953125000011],[11.760156250000023,-2.983105468750011],[11.537792968750011,-2.83671875],[11.60546875,-2.342578125],[12.064453125,-2.41259765625],[12.446386718750006,-2.329980468750009],[12.43212890625,-1.928906250000011],[12.590429687500006,-1.826855468750011],[12.793554687500006,-1.931835937500011],[12.991992187500017,-2.313378906250009],[13.464941406250006,-2.395410156250009],[13.733789062500023,-2.138476562500003],[13.886914062500011,-2.465429687500006],[13.993847656250011,-2.490625],[14.199804687500006,-2.354199218750011],[14.162890625000017,-2.217578125],[14.383984375000011,-1.890039062500009],[14.47412109375,-0.573437500000011],[13.860058593750011,-0.203320312500011],[13.949609375000023,0.353808593749989],[14.32421875,0.62421875],[14.429882812500011,0.901464843749991],[14.180859375000011,1.370214843749991],[13.851367187500017,1.41875],[13.21630859375,1.2484375],[13.172167968750017,1.78857421875],[13.293554687500006,2.161572265624997],[14.578906250000017,2.199121093749994],[14.902441406250006,2.012304687499991],[15.741601562500023,1.914990234374997],[16.059375,1.676220703124997],[16.183398437500017,2.270068359374989],[16.468554687500017,2.831738281249997],[16.610742187500023,3.50537109375],[17.491601562500023,3.687304687499989],[18.160937500000017,3.499804687499989],[18.474414062500017,3.622998046874997],[18.6103515625,3.478417968749994]]]},"properties":{"name":"Congo","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-71.31972656249997,11.861914062500048],[-71.95810546875,11.66640625],[-72.24848632812501,11.196435546875009],[-72.690087890625,10.835839843749994],[-72.86933593750001,10.49125976562496],[-73.00654296874998,9.789160156250006],[-73.36621093749997,9.194140625000017],[-73.05839843749999,9.259570312500031],[-72.79638671874997,9.10898437499999],[-72.66542968749994,8.62758789062498],[-72.39033203124995,8.287060546874969],[-72.47197265624996,7.524267578124991],[-72.20771484374995,7.37026367187498],[-72.00664062499993,7.032617187500023],[-71.12861328124993,6.98671875],[-70.73715820312503,7.090039062499997],[-70.12919921874999,6.95361328125],[-69.42714843749997,6.123974609374997],[-68.47177734375,6.156542968749974],[-67.85917968749999,6.289892578124963],[-67.48198242187499,6.18027343750002],[-67.47387695312503,5.929980468750003],[-67.82490234374995,5.270458984375026],[-67.85527343750002,4.506884765624989],[-67.66162109375,3.864257812499986],[-67.3111328125,3.41586914062502],[-67.85908203124998,2.793603515624994],[-67.61870117187496,2.793603515624994],[-67.21083984375,2.390136718750043],[-66.87602539062499,1.223046875000037],[-67.082275390625,1.185400390625006],[-67.11923828124998,1.703613281249986],[-67.40043945312499,2.116699218750028],[-67.93623046874998,1.748486328124969],[-68.19379882812495,1.987011718749983],[-68.25595703125,1.845507812500017],[-68.17656249999999,1.719824218749991],[-69.84858398437493,1.708740234375043],[-69.85214843750003,1.05952148437504],[-69.31181640624999,1.050488281249969],[-69.15332031249994,0.65878906250002],[-69.47211914062498,0.72993164062504],[-70.05390624999993,0.578613281250028],[-70.07050781249993,-0.13886718750004],[-69.63398437500001,-0.50927734375],[-69.40024414062498,-1.194921874999977],[-69.66904296875003,-2.667675781249997],[-69.94819335937498,-4.200585937500009],[-69.96591796875003,-4.2359375],[-70.16752929687499,-4.050195312500009],[-70.24028320312496,-3.882714843749994],[-70.2984375,-3.844238281249972],[-70.33950195312502,-3.814355468750009],[-70.73510742187497,-3.781542968749989],[-70.09584960937494,-2.658203125000014],[-70.16474609374995,-2.639843750000011],[-70.24443359375002,-2.606542968749977],[-70.29462890624995,-2.552539062499989],[-70.57587890624995,-2.418261718749989],[-70.64799804687499,-2.405761718750014],[-70.70537109374996,-2.341992187499983],[-70.91455078125003,-2.218554687499974],[-70.96855468750002,-2.206835937499989],[-71.02729492187498,-2.225781250000026],[-71.11337890625003,-2.245410156250031],[-71.19638671874998,-2.313085937499963],[-71.39697265625,-2.334082031249977],[-71.55947265624997,-2.224218749999977],[-71.75253906249995,-2.15273437499998],[-71.80273437499997,-2.166308593749989],[-71.86728515624998,-2.227734374999983],[-71.932470703125,-2.288671874999963],[-71.98427734375,-2.326562499999952],[-72.21845703125001,-2.400488281250006],[-72.94111328124998,-2.394042968750028],[-72.9896484375,-2.33974609374998],[-73.15449218749993,-2.278222656249966],[-73.19697265624995,-1.830273437500011],[-73.49628906249993,-1.69306640625004],[-73.66430664062497,-1.248828124999946],[-73.86318359374997,-1.19667968749998],[-73.92695312500001,-1.125195312499983],[-73.98681640625003,-1.098144531249986],[-74.05439453124995,-1.028613281250031],[-74.18076171875,-0.997753906249955],[-74.24638671874999,-0.970605468750023],[-74.28388671874998,-0.927832031250006],[-74.33442382812498,-0.85087890624996],[-74.41787109375,-0.580664062499977],[-74.46518554687498,-0.517675781250034],[-74.51386718749993,-0.470117187500023],[-74.555078125,-0.429882812499997],[-74.61635742187494,-0.370019531249966],[-74.691650390625,-0.335253906249989],[-74.75537109375003,-0.298632812499989],[-74.78046874999998,-0.24453125],[-74.80175781249997,-0.200097656249994],[-75.13837890624998,-0.050488281249969],[-75.28447265624999,-0.10654296875002],[-75.77666015624999,0.08925781249998],[-76.27060546874998,0.439404296874997],[-76.49462890624997,0.23544921875002],[-77.396337890625,0.393896484374963],[-77.46767578124997,0.636523437500017],[-77.702880859375,0.837841796874997],[-78.1806640625,0.968554687499974],[-78.85966796874996,1.455371093750031],[-79.02543945312499,1.623681640625037],[-78.79296874999994,1.848730468749963],[-78.576904296875,1.773779296874977],[-78.59169921875,2.356640624999969],[-78.41689453125,2.483496093749963],[-78.06665039062494,2.509130859375034],[-77.81357421875,2.716357421874974],[-77.076806640625,3.913281250000026],[-77.26352539062503,3.893212890625023],[-77.27802734374995,4.058496093750023],[-77.35820312499996,3.944726562500037],[-77.40874023437496,4.24775390625004],[-77.52070312499993,4.212792968750023],[-77.35351562499997,4.398291015624977],[-77.28632812499995,4.72172851562496],[-77.373291015625,5.323974609375],[-77.53442382812497,5.537109374999986],[-77.24926757812497,5.780175781250037],[-77.46943359374995,6.176757812500014],[-77.368798828125,6.575585937499994],[-77.90117187499999,7.229345703125048],[-77.76191406249995,7.698828125000034],[-77.53828124999995,7.56625976562502],[-77.19599609374995,7.972460937500003],[-77.47851562499994,8.498437500000037],[-77.37421874999993,8.65830078125002],[-76.85185546875002,8.09047851562498],[-76.924658203125,7.973193359374974],[-76.78657226562493,7.931591796875026],[-76.7720703125,8.310546875000043],[-76.92045898437496,8.573730468750014],[-76.27685546875,8.989111328124991],[-76.02724609374997,9.365771484374989],[-75.63935546874998,9.450439453125014],[-75.680029296875,9.729785156249989],[-75.53857421874997,10.205175781250034],[-75.708349609375,10.143408203124963],[-75.44599609374995,10.610888671874989],[-74.84458007812498,11.109716796875006],[-74.330224609375,10.996679687499991],[-74.51625976562497,10.8625],[-74.40087890625,10.76523437499999],[-74.14291992187503,11.320849609375031],[-73.31337890624997,11.295751953124991],[-72.275,11.88925781250002],[-72.13574218749994,12.188574218749977],[-71.71455078124993,12.41997070312496],[-71.26210937499997,12.335302734375034],[-71.13730468750003,12.04633789062504],[-71.31972656249997,11.861914062500048]]]},"properties":{"name":"Colombia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[43.788671875,-12.307031250000023],[43.85898437500006,-12.368261718749977],[43.66367187500006,-12.342871093749949],[43.63134765624997,-12.247070312499972],[43.788671875,-12.307031250000023]]],[[[44.476367187500074,-12.08154296875],[44.504980468750006,-12.356542968749991],[44.220117187499994,-12.171386718750014],[44.476367187500074,-12.08154296875]]],[[[43.46582031249997,-11.901269531249966],[43.226660156250006,-11.75185546874998],[43.2990234375001,-11.374511718750028],[43.39296875000005,-11.408593749999952],[43.46582031249997,-11.901269531249966]]]]},"properties":{"name":"Comoros","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-24.308251953124966,14.856298828124991],[-24.44052734374992,14.834814453124963],[-24.496875,14.980273437500017],[-24.329492187499937,15.019482421875011],[-24.308251953124966,14.856298828124991]]],[[[-23.18212890624997,15.136767578125017],[-23.210253906250017,15.32353515625006],[-23.119335937499955,15.26840820312502],[-23.18212890624997,15.136767578125017]]],[[[-23.444238281249994,15.00795898437498],[-23.5046875,14.916113281250006],[-23.70537109374999,14.96132812499998],[-23.74809570312499,15.328515625],[-23.444238281249994,15.00795898437498]]],[[[-22.917724609375,16.237255859374955],[-22.69262695312497,16.169042968750006],[-22.710107421874994,16.043359374999966],[-22.95927734374996,16.045117187499983],[-22.917724609375,16.237255859374955]]],[[[-24.08769531249999,16.62250976562501],[-24.03271484374997,16.57202148437503],[-24.243066406250023,16.599414062500017],[-24.32236328124992,16.49311523437504],[-24.398095703124966,16.61840820312497],[-24.08769531249999,16.62250976562501]]],[[[-22.888330078124966,16.659082031249994],[-22.980615234374937,16.700878906249983],[-22.93291015624999,16.84101562500004],[-22.888330078124966,16.659082031249994]]],[[[-24.88706054687495,16.81811523437497],[-25.09306640624999,16.83251953125],[-24.936474609374983,16.92211914062503],[-24.88706054687495,16.81811523437497]]],[[[-25.169824218749994,16.94648437500001],[-25.308300781249955,16.93583984374999],[-25.337109374999955,17.091015624999983],[-25.03466796875,17.176464843749983],[-24.979687499999983,17.09472656250003],[-25.169824218749994,16.94648437500001]]]]},"properties":{"name":"Cape Verde","childNum":8}},{"geometry":{"type":"Polygon","coordinates":[[[-83.6419921875,10.917236328125],[-83.346826171875,10.315380859374997],[-82.77841796874999,9.66953125],[-82.56357421874999,9.57666015625],[-82.56923828125,9.55820312499999],[-82.58652343749999,9.538818359375],[-82.64409179687499,9.505859375],[-82.801025390625,9.591796875],[-82.843994140625,9.57080078125],[-82.86015624999999,9.511474609375],[-82.88896484374999,9.481005859374989],[-82.925048828125,9.469042968749989],[-82.93984375,9.449169921874997],[-82.94033203125,9.060107421874989],[-82.88134765625,9.055859375],[-82.78305664062499,8.990283203124989],[-82.741162109375,8.951708984374989],[-82.72783203124999,8.916064453124989],[-82.91704101562499,8.740332031249991],[-82.855712890625,8.635302734374989],[-82.84477539062499,8.489355468749991],[-82.86162109374999,8.45351562499999],[-83.02734375,8.337744140624991],[-82.879345703125,8.070654296874991],[-83.12333984374999,8.353076171874989],[-83.16240234374999,8.588183593749989],[-83.4697265625,8.706835937499989],[-83.29150390625,8.406005859375],[-83.54375,8.445849609374989],[-83.73408203125,8.614453125],[-83.613720703125,8.804052734374991],[-83.73691406249999,9.150292968749994],[-84.58159179687499,9.568359375],[-84.71494140624999,9.8994140625],[-85.23564453124999,10.242089843749994],[-85.2365234375,10.107373046874997],[-84.88642578125,9.820947265624994],[-85.07705078125,9.60195312499999],[-85.31455078124999,9.8109375],[-85.62485351562499,9.902441406249991],[-85.84965820312499,10.292041015624989],[-85.667236328125,10.745019531249994],[-85.90800781249999,10.897558593749991],[-85.7443359375,11.06210937499999],[-85.5841796875,11.189453125],[-84.9091796875,10.9453125],[-84.6341796875,11.045605468749997],[-83.91928710937499,10.7353515625],[-83.71293945312499,10.785888671875],[-83.6419921875,10.917236328125]]]},"properties":{"name":"Costa Rica","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-82.56176757812503,21.571679687500023],[-82.959619140625,21.441308593750023],[-83.18378906250001,21.59345703125004],[-82.97358398437498,21.592285156250057],[-83.08251953124997,21.791406250000023],[-82.99121093750003,21.942724609375034],[-82.71455078124998,21.890283203125023],[-82.56176757812503,21.571679687500023]]],[[[-77.66899414062493,21.951953125000045],[-77.91855468749998,22.088085937499983],[-77.63369140624994,22.054003906250074],[-77.66899414062493,21.951953125000045]]],[[[-77.87939453125,22.127539062500034],[-78.04165039062502,22.201269531250034],[-77.99921874999998,22.298730468749994],[-77.87939453125,22.127539062500034]]],[[[-81.83745117187499,23.163037109374955],[-81.26235351562497,23.156835937500034],[-81.14462890624998,23.054931640625057],[-80.65014648437494,23.10307617187499],[-80.36489257812502,22.943408203125074],[-79.82026367187498,22.887011718750045],[-79.27568359374999,22.407617187499994],[-78.68647460937493,22.366845703125023],[-77.63681640624995,21.79736328125],[-77.49711914062502,21.78833007812503],[-77.58315429687497,21.889257812499977],[-77.49726562499995,21.871630859375045],[-77.14414062499995,21.643603515625017],[-77.36616210937498,21.612646484375034],[-77.25288085937498,21.483496093750006],[-77.0986328125,21.589013671875023],[-76.86743164062497,21.330419921875006],[-75.72294921874996,21.111035156249983],[-75.59580078125,20.99467773437499],[-75.72456054687493,20.71455078125004],[-74.882568359375,20.65063476562497],[-74.51313476562495,20.384570312500045],[-74.16748046874997,20.292187499999955],[-74.15371093750002,20.168554687500006],[-75.11640624999995,19.901416015625017],[-75.151611328125,20.008349609375045],[-75.29047851562495,19.893115234375017],[-76.15844726562497,19.98974609374997],[-77.715087890625,19.85546874999997],[-77.10380859374999,20.407519531250017],[-77.22958984374995,20.64375],[-78.11635742187497,20.761865234374994],[-78.49077148437493,21.05371093750003],[-78.72768554687497,21.592724609374955],[-79.35742187500003,21.58515625000001],[-80.23134765625,21.872167968750063],[-80.48544921874998,22.1234375],[-81.03564453124997,22.073583984375063],[-81.18549804687495,22.26796875000005],[-81.284375,22.109423828125074],[-81.84941406249993,22.21367187499999],[-82.077734375,22.3876953125],[-81.71035156250002,22.496679687500006],[-81.83881835937498,22.672460937500034],[-82.73803710937497,22.689257812500074],[-83.37963867187503,22.222998046875034],[-83.90073242187495,22.17011718750001],[-84.03095703124993,21.94311523437503],[-84.502587890625,21.776171875000045],[-84.50136718750002,21.930273437499977],[-84.88720703125003,21.856982421875074],[-84.32636718749998,22.074316406250034],[-84.36127929687498,22.37890625],[-84.04492187500003,22.666015625000057],[-83.25781249999997,22.967578125000017],[-81.83745117187499,23.163037109374955]]]]},"properties":{"name":"Cuba","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[-68.75107421874999,12.059765625],[-68.9951171875,12.141845703125],[-69.15888671875,12.380273437499994],[-68.75107421874999,12.059765625]]]},"properties":{"name":"Curaçao","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-81.36953124999997,19.34887695312497],[-81.10712890624995,19.305175781250057],[-81.40478515624994,19.278417968750006],[-81.36953124999997,19.34887695312497]]],[[[-79.823388671875,19.711914062500057],[-79.90620117187501,19.702539062499994],[-79.74228515625,19.757128906250017],[-79.823388671875,19.711914062500057]]]]},"properties":{"name":"Cayman Is.","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[34.004492187500006,35.065234375],[33.47578125000001,35.000341796875],[33.3837890625,35.1626953125],[32.91953125,35.087841796875],[32.71269531250002,35.171044921874994],[32.8798828125,35.180566406249994],[32.94160156250001,35.390429687499996],[33.60761718750001,35.354150390624994],[34.55605468750002,35.662060546875],[33.941992187500006,35.292041015624996],[34.004492187500006,35.065234375]]]},"properties":{"name":"N. Cyprus","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[32.71269531250002,35.171044921874994],[32.91953125,35.087841796875],[33.3837890625,35.1626953125],[33.47578125000001,35.000341796875],[34.004492187500006,35.065234375],[34.05019531250002,34.98837890625],[33.69941406250001,34.969873046874994],[33.007910156250006,34.569580078125],[32.44902343750002,34.729443359375],[32.31718750000002,34.9533203125],[32.30097656250001,35.082958984375],[32.71269531250002,35.171044921874994]]]},"properties":{"name":"Cyprus","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[14.809375,50.858984375],[14.895800781250017,50.861376953124996],[14.98291015625,50.886572265625],[14.99375,51.01435546875],[16.007226562500023,50.611621093749996],[16.2822265625,50.655615234375],[16.419726562500017,50.573632812499994],[16.210351562500023,50.423730468749994],[16.63916015625,50.1021484375],[16.989648437500023,50.2369140625],[16.88007812500001,50.427050781249996],[17.41523437500001,50.254785156249994],[17.702246093750006,50.307177734374996],[17.627050781250006,50.11640625],[17.874804687500017,49.972265625],[18.0283203125,50.03525390625],[18.562402343750023,49.879345703125],[18.83222656250001,49.510791015624996],[18.160937500000017,49.257373046874996],[18.0859375,49.06513671875],[17.75849609375001,48.888134765625],[17.135644531250023,48.841064453125],[16.953125,48.598828125],[16.543554687500006,48.796240234375],[16.057226562500006,48.754785156249994],[15.066796875000023,48.997851562499996],[14.691308593750023,48.59921875],[14.049121093750017,48.602490234375],[13.814746093750017,48.766943359375],[13.769921875000023,48.815966796874996],[13.684960937500023,48.876708984375],[13.547656250000017,48.95966796875],[13.440722656250017,48.95556640625],[13.401171875000017,48.977587890624996],[12.916699218750011,49.33046875],[12.68115234375,49.414501953125],[12.390527343750023,49.739648437499994],[12.5125,49.87744140625],[12.09921875,50.310986328125],[12.134863281250006,50.3109375],[12.1748046875,50.288378906249996],[12.231152343750011,50.244873046875],[12.27734375,50.181445312499996],[12.3056640625,50.205712890624994],[12.549023437500011,50.393408203125],[13.016406250000017,50.490380859374994],[13.18115234375,50.510498046875],[14.369042968750023,50.898730468749996],[14.319726562500023,51.03779296875],[14.545703125000017,50.993945312499996],[14.559667968750006,50.954931640625],[14.59521484375,50.918603515624994],[14.623828125000017,50.91474609375],[14.613574218750017,50.85556640625],[14.658203125,50.8326171875],[14.723339843750011,50.814697265625],[14.766503906250023,50.818310546875],[14.797460937500006,50.842333984374996],[14.809375,50.858984375]]]},"properties":{"name":"Czech Rep.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[14.1982421875,53.919042968750034],[13.92578125,53.879052734374966],[13.827734375,54.12724609374999],[14.1982421875,53.919042968750034]]],[[[13.709179687500011,54.382714843749994],[13.707324218750074,54.281152343749994],[13.190039062500034,54.32563476562501],[13.336816406249994,54.697119140625006],[13.65761718750008,54.55957031249997],[13.709179687500011,54.382714843749994]]],[[[9.739746093750028,54.82553710937498],[10.022167968750011,54.673925781250006],[9.86865234375,54.47246093749999],[10.731542968750006,54.31625976562506],[11.013378906250068,54.37915039062497],[11.008593750000074,54.18115234374997],[10.810742187500068,54.075146484374955],[10.917773437500045,53.99531250000004],[11.39960937500004,53.94462890625002],[12.111328125,54.168310546875006],[12.57539062500004,54.467382812500006],[13.028613281250017,54.411035156249994],[13.448046875000017,54.14086914062503],[13.724218750000063,54.153222656249966],[13.865527343750074,53.85336914062498],[14.258886718750006,53.729638671874994],[14.298730468750051,53.55644531249999],[14.41455078125,53.28349609374996],[14.412304687500011,53.216748046874955],[14.410937500000074,53.19902343749999],[14.368554687500051,53.105566406250034],[14.293164062500068,53.026757812499966],[14.138867187500068,52.93286132812503],[14.128613281250011,52.87822265625002],[14.253710937500017,52.78251953124996],[14.514062500000023,52.645605468750034],[14.619433593750017,52.52851562499998],[14.569726562499994,52.431103515624955],[14.554589843750023,52.35966796874996],[14.573925781250068,52.31416015625001],[14.615625,52.277636718750045],[14.679882812500068,52.25],[14.752539062500034,52.08183593750002],[14.601660156250034,51.832373046875006],[14.738671875000051,51.62714843750004],[14.7109375,51.54492187499997],[14.724707031250063,51.523876953124955],[14.90595703125004,51.463330078124955],[14.935546875000028,51.435351562500045],[14.9638671875,51.095117187499994],[14.917480468750057,51.00874023437498],[14.814257812499989,50.871630859375045],[14.809375,50.858984375000034],[14.797460937500034,50.84233398437502],[14.766503906250051,50.81831054687501],[14.72333984375004,50.81469726562497],[14.658203125,50.832617187500006],[14.613574218750045,50.85556640625006],[14.623828125000017,50.91474609375004],[14.595214843750057,50.91860351562502],[14.559667968750006,50.954931640625034],[14.545703124999989,50.99394531249999],[14.319726562500051,51.037792968749955],[14.36904296875008,50.89873046874996],[13.18115234375,50.510498046875],[13.016406250000017,50.490380859374994],[12.549023437500011,50.393408203125034],[12.3056640625,50.205712890624994],[12.27734375,50.18144531250002],[12.231152343749983,50.24487304687497],[12.174804687500057,50.28837890624996],[12.134863281250006,50.31093750000002],[12.099218750000034,50.31098632812504],[12.089843749999972,50.30175781250003],[12.089746093750051,50.2685546875],[12.294598214285761,50.13608119419641],[12.5125,49.87744140625],[12.390527343750051,49.739648437499994],[12.68115234375,49.41450195312501],[12.91669921875004,49.33046875000002],[13.401171875000074,48.97758789062499],[13.440722656250045,48.95556640625003],[13.547656250000074,48.95966796874998],[13.684960937500051,48.87670898437506],[13.769921875000051,48.81596679687502],[13.814746093750017,48.76694335937498],[13.802929687500011,48.74750976562501],[13.798828124999972,48.62167968750006],[13.785351562499983,48.58745117187502],[13.486621093750074,48.58183593750002],[13.471679687500028,48.57182617187502],[13.459863281250023,48.564550781250034],[13.409375,48.39414062500006],[13.322851562500006,48.33125],[13.215234375000023,48.301904296874994],[12.760351562500063,48.10698242187499],[12.95351562500008,47.890625],[12.897656250000068,47.721875],[13.054101562500051,47.655126953125034],[13.047949218750034,47.57915039062502],[13.031542968750074,47.50800781250001],[13.01435546875004,47.478076171875045],[12.968066406250017,47.475683593750006],[12.878906250000057,47.506445312500034],[12.809375,47.542187499999955],[12.782812500000034,47.56416015624998],[12.781152343750051,47.590429687500006],[12.796191406249989,47.60703125],[12.771386718750023,47.63940429687503],[12.685839843750074,47.66933593750002],[12.209277343750074,47.71826171875003],[12.196875,47.709082031250034],[12.203808593750011,47.64672851562503],[12.185644531250063,47.61953125],[11.041992187500028,47.39311523437496],[10.98085937499999,47.39814453125001],[10.893945312500051,47.470458984375],[10.870605468750028,47.500781250000045],[10.873046874999972,47.52021484375001],[10.741601562500023,47.52412109375001],[10.65869140625,47.547216796875006],[10.482812500000051,47.54179687499996],[10.439453125000028,47.55156249999999],[10.403906250000063,47.41699218750003],[10.369140625,47.366064453125034],[10.18300781250008,47.27880859375003],[10.200292968750063,47.36342773437505],[10.066308593750023,47.39335937500002],[10.064575892857171,47.42369419642856],[10.059863281250045,47.44907226562498],[10.034082031250023,47.47358398437501],[9.971582031249994,47.50532226562498],[9.839160156250017,47.55229492187496],[9.748925781250023,47.575537109375006],[9.524023437500034,47.52421875000002],[8.572656250000023,47.775634765625],[8.435742187500011,47.73134765625002],[8.403417968750006,47.687792968750045],[8.413281250000068,47.66269531249998],[8.451757812500006,47.65180664062498],[8.552343750000063,47.65913085937498],[8.56708984375004,47.65190429687502],[8.57050781250004,47.63779296874998],[8.55947265625008,47.62402343750003],[8.477636718750034,47.61269531250002],[8.454003906249994,47.59619140625003],[7.615625,47.59272460937504],[7.616601562500023,48.15678710937502],[8.134863281250006,48.97358398437498],[7.450585937500051,49.152197265625034],[6.735449218750006,49.16059570312498],[6.344335937500006,49.45273437499998],[6.4873046875,49.798486328124994],[6.204882812500017,49.915136718750034],[6.13818359375,49.97431640625001],[6.10976562500008,50.034375],[6.116503906250045,50.120996093749966],[6.340917968750006,50.451757812500034],[5.993945312500017,50.75043945312504],[6.048437500000034,50.90488281250006],[5.857519531250034,51.030126953125006],[6.129980468750034,51.14741210937501],[6.198828125000034,51.45],[5.948730468750057,51.80268554687501],[6.800390625,51.96738281249998],[6.724511718749994,52.080224609374966],[7.035156250000057,52.38022460937498],[6.748828125000074,52.464013671874994],[6.710742187500045,52.61787109374998],[7.033007812500045,52.65136718749997],[7.197265625000028,53.28227539062499],[7.074316406250034,53.477636718750006],[7.285253906250034,53.68134765625001],[8.00927734375,53.69072265624999],[8.108496093750063,53.46767578125002],[8.245214843750006,53.44531249999997],[8.333886718750051,53.606201171875],[8.495214843750063,53.39423828124998],[8.618945312500045,53.875],[9.20556640625,53.85595703124997],[9.783984375000074,53.554638671874955],[9.31201171875,53.859130859375],[8.92041015625,53.96533203125006],[8.906640625000023,54.26079101562502],[8.625781250000017,54.35395507812501],[8.951855468750011,54.46757812499996],[8.670312500000023,54.903417968750034],[9.739746093750028,54.82553710937498]]],[[[8.307714843750034,54.786962890625034],[8.451464843750017,55.05537109374998],[8.3798828125,54.89985351562501],[8.629589843750068,54.891748046874966],[8.307714843750034,54.786962890625034]]]]},"properties":{"name":"Germany","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[43.24599609375002,11.499804687499989],[42.92275390625002,10.999316406249989],[42.557714843750006,11.080761718749997],[41.79824218750002,10.98046875],[41.79267578125001,11.68603515625],[42.378515625,12.46640625],[42.40859375000002,12.494384765625],[42.45,12.521337890624991],[42.47939453125002,12.513623046874997],[42.703710937500006,12.380322265624997],[42.76748046875002,12.4228515625],[42.825292968750006,12.5693359375],[42.86591796875001,12.622802734375],[42.88330078125,12.621289062499997],[43.00566406250002,12.662304687499997],[43.11669921875,12.70859375],[43.353515625,12.367041015624991],[43.38027343750002,12.091259765624997],[42.64003906250002,11.560107421874989],[42.52177734375002,11.572167968749994],[42.58378906250002,11.496777343749997],[43.04277343750002,11.588476562499991],[43.24599609375002,11.499804687499989]]]},"properties":{"name":"Djibouti","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-61.281689453125,15.2490234375],[-61.37539062499999,15.227294921875],[-61.45810546874999,15.633105468750003],[-61.277246093749994,15.526708984374991],[-61.281689453125,15.2490234375]]]},"properties":{"name":"Dominica","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[11.361425781250006,54.891650390625045],[11.739550781250017,54.80742187500002],[11.765917968750074,54.67944335937506],[11.457421875000023,54.628857421874955],[11.035546875000051,54.77309570312505],[11.058593750000028,54.940576171874966],[11.361425781250006,54.891650390625045]]],[[[12.549218750000051,54.96577148437504],[12.11884765625004,54.91440429687506],[12.274023437500034,55.064111328124994],[12.549218750000051,54.96577148437504]]],[[[10.061230468750068,54.88637695312502],[9.80625,54.90600585937503],[9.78125,55.06904296875001],[10.061230468750068,54.88637695312502]]],[[[10.734082031250011,54.750732421875],[10.621679687500006,54.851416015625006],[10.95107421875008,55.15620117187501],[10.734082031250011,54.750732421875]]],[[[15.087695312500017,55.021875],[14.684179687500063,55.10224609375004],[14.765332031250068,55.296728515625034],[15.132617187500017,55.14453125000003],[15.087695312500017,55.021875]]],[[[10.645117187500006,55.60981445312498],[10.785253906250034,55.13339843749998],[10.44277343750008,55.04877929687498],[9.988769531250028,55.163183593750006],[9.860644531250045,55.515478515625034],[10.645117187500006,55.60981445312498]]],[[[12.665722656250068,55.596533203125006],[12.550878906250034,55.55625],[12.59921875,55.68022460937502],[12.665722656250068,55.596533203125006]]],[[[12.56875,55.785058593749966],[12.215039062500011,55.46650390624998],[12.413085937500028,55.28618164062502],[12.089941406250006,55.18813476562505],[12.050390625000034,54.81533203125002],[11.8623046875,54.77260742187502],[11.653808593750057,55.186914062499966],[11.286328125000068,55.20444335937498],[10.978906250000051,55.721533203125006],[11.322265625000028,55.752539062500006],[11.627734375000074,55.95688476562498],[11.819726562500023,55.69765625000002],[11.86640625000004,55.968164062499966],[12.218945312499983,56.11865234374997],[12.578710937500006,56.06406250000006],[12.56875,55.785058593749966]]],[[[11.052148437500051,57.25253906250006],[10.873828125000045,57.26225585937499],[11.174511718750011,57.322900390624994],[11.052148437500051,57.25253906250006]]],[[[9.739746093750028,54.82553710937498],[8.670312500000023,54.903417968750034],[8.61591796875004,55.41821289062503],[8.132128906250074,55.59980468749998],[8.16396484375008,56.60688476562498],[8.671679687500045,56.49565429687496],[8.88808593750008,56.73505859374998],[9.06708984375004,56.79384765625005],[9.196386718750006,56.70166015625],[9.2548828125,57.01171875000003],[8.992773437499977,57.01611328125003],[8.771972656250028,56.72529296875004],[8.468359375,56.66455078125],[8.284082031250023,56.85234374999999],[8.618554687500051,57.11127929687498],[9.43359375,57.17431640625003],[9.96230468750008,57.580957031249994],[10.609960937500034,57.73691406249998],[10.282714843750057,56.620507812499994],[10.926171875000051,56.44326171875002],[10.753417968750028,56.24199218749999],[10.31875,56.212890625],[10.18300781250008,55.86518554687504],[9.903710937500023,55.84282226562502],[10.02363281250004,55.76142578125004],[9.591113281250017,55.49321289062502],[9.670996093750063,55.26640624999999],[9.453710937500006,55.03955078125006],[9.732324218750023,54.96801757812506],[9.739746093750028,54.82553710937498]]]]},"properties":{"name":"Denmark","childNum":10,"cp":[10.2768332,56.1773879]}},{"geometry":{"type":"Polygon","coordinates":[[[-71.647216796875,19.195947265624994],[-71.746484375,19.285839843749997],[-71.71147460937499,19.486572265625],[-71.75742187499999,19.688183593749997],[-71.779248046875,19.718164062499994],[-71.6673828125,19.8486328125],[-70.95415039062499,19.913964843749994],[-70.19384765625,19.63803710937499],[-69.95683593749999,19.671875],[-69.739404296875,19.29921875],[-69.23247070312499,19.27182617187499],[-69.60595703125,19.206494140624997],[-69.62363281249999,19.117822265624994],[-68.684765625,18.90478515625],[-68.33916015624999,18.611523437499997],[-68.68740234375,18.21494140624999],[-68.9349609375,18.408007812500003],[-69.27451171874999,18.43984375],[-69.770654296875,18.443554687499997],[-70.479931640625,18.21728515625],[-70.644677734375,18.336230468750003],[-71.02783203125,18.273193359375],[-71.43896484375,17.63559570312499],[-71.63173828125,17.773632812499997],[-71.768310546875,18.03916015624999],[-71.76376953124999,18.20395507812499],[-71.737255859375,18.270800781250003],[-71.7619140625,18.34130859375],[-71.87255859375,18.416210937499997],[-71.940380859375,18.512597656249994],[-72.000390625,18.597900390625],[-71.98686523437499,18.6103515625],[-71.86650390624999,18.614160156249994],[-71.74321289062499,18.73291015625],[-71.72705078125,18.80322265625],[-71.733642578125,18.856396484374997],[-71.80712890625,18.987011718749997],[-71.647216796875,19.195947265624994]]]},"properties":{"name":"Dominican Rep.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[8.207617187500006,36.518945312499994],[8.348730468750006,36.36796875],[8.318066406250011,35.654931640624994],[8.31640625,35.403125],[8.35986328125,35.299609375],[8.394238281250011,35.203857421875],[8.312109375,35.084619140624994],[8.27685546875,34.9794921875],[8.24560546875,34.73408203125],[7.513867187500011,34.080517578125],[7.534375,33.717919921874994],[7.877246093750017,33.172119140625],[8.1125,33.055322265624994],[8.333398437500023,32.543603515624994],[9.044042968750006,32.07236328125],[9.160253906250006,31.621337890625],[9.224023437500023,31.373681640624994],[9.51875,30.229394531249994],[9.310253906250011,30.115234375],[9.805273437500006,29.176953125],[9.916015625,27.785693359374996],[9.74755859375,27.330859375],[9.883203125000023,26.630810546874997],[9.491406250000011,26.333740234375],[9.4482421875,26.067138671875],[10.000683593750011,25.332080078125003],[10.255859375,24.591015625],[10.395898437500023,24.485595703125],[10.686132812500006,24.55136718749999],[11.507617187500017,24.314355468749994],[11.967871093750006,23.517871093750003],[7.481738281250017,20.873095703125003],[5.836621093750011,19.479150390624994],[4.227636718750006,19.142773437499997],[3.3564453125,18.986621093750003],[3.119726562500006,19.103173828124994],[3.255859375,19.4109375],[3.130273437500023,19.85019531249999],[1.685449218750023,20.378369140624997],[1.610644531250017,20.555566406249994],[1.165722656250011,20.817431640625003],[1.1455078125,21.102246093749997],[-1.947900390624994,23.124804687500003],[-4.822607421874977,24.99560546875],[-8.683349609375,27.2859375],[-8.683349609375,27.656445312499997],[-8.683349609375,27.900390625],[-8.659912109375,28.718603515625],[-7.485742187499994,29.392236328124994],[-7.427685546874983,29.425],[-7.142431640624977,29.619580078124997],[-6.855566406249977,29.601611328124996],[-6.755126953125,29.583837890625],[-6.635351562499977,29.568798828124997],[-6.597753906249977,29.578955078125],[-6.520556640624989,29.659863281249997],[-6.479736328125,29.820361328124996],[-6.00429687499999,29.83125],[-5.448779296874989,29.956933593749994],[-5.293652343749983,30.058642578124996],[-5.180126953124983,30.166162109374994],[-4.96826171875,30.465380859374996],[-4.778515624999983,30.552392578124994],[-4.529150390624977,30.625537109374996],[-4.322851562499977,30.698876953124994],[-4.148779296874977,30.8095703125],[-3.626904296874983,31.000927734374997],[-3.833398437499994,31.197802734374996],[-3.837109374999983,31.512353515624994],[-3.768164062499977,31.68955078125],[-3.700244140624989,31.700097656249994],[-3.604589843749977,31.686767578125],[-3.439794921874977,31.704541015624997],[-3.017382812499989,31.834277343749996],[-2.988232421874983,31.87421875],[-2.930859374999983,32.042529296874996],[-2.863427734374994,32.07470703125],[-1.275341796874983,32.089013671874994],[-1.16259765625,32.399169921875],[-1.111035156249983,32.552294921874996],[-1.188232421875,32.60849609375],[-1.29638671875,32.675683593749994],[-1.352148437499977,32.703369140625],[-1.45,32.784814453124994],[-1.510009765625,32.87763671875],[-1.550732421874983,33.073583984375],[-1.67919921875,33.318652343749996],[-1.795605468749983,34.751904296875],[-2.131787109374983,34.970849609374994],[-2.190771484374977,35.02978515625],[-2.219628906249994,35.10419921875],[-1.673632812499989,35.18310546875],[-0.426123046874977,35.8615234375],[-0.048242187499994,35.8328125],[0.312207031250011,36.162353515625],[0.9716796875,36.4439453125],[2.593359375,36.60068359375],[2.972851562500011,36.784472656249996],[3.779003906250011,36.89619140625],[4.758105468750017,36.896337890625],[5.29541015625,36.648242187499996],[6.486523437500011,37.085742187499996],[6.927539062500017,36.91943359375],[7.238476562500011,36.968505859375],[7.204296875000011,37.0923828125],[7.910449218750017,36.856347656249994],[8.576562500000023,36.93720703125],[8.601269531250011,36.833935546875],[8.207617187500006,36.518945312499994]]]},"properties":{"name":"Algeria","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-80.131591796875,-2.973144531249957],[-80.27294921875003,-2.995898437499974],[-80.22368164062502,-2.753125],[-80.08076171874995,-2.668847656249966],[-79.90903320312495,-2.725585937499972],[-80.131591796875,-2.973144531249957]]],[[[-90.42392578125,-1.339941406250034],[-90.51953124999994,-1.299121093749974],[-90.47719726562494,-1.22099609374996],[-90.42392578125,-1.339941406250034]]],[[[-89.41889648437498,-0.911035156249966],[-89.60859374999998,-0.888574218750009],[-89.28784179687503,-0.689843750000023],[-89.41889648437498,-0.911035156249966]]],[[[-90.33486328125,-0.771582031249977],[-90.54213867187502,-0.676464843749955],[-90.53168945312493,-0.581445312499966],[-90.26938476562498,-0.48466796874996],[-90.19272460937498,-0.658789062500006],[-90.33486328125,-0.771582031249977]]],[[[-91.42597656249995,-0.460839843749994],[-91.61074218749994,-0.44394531250002],[-91.64667968749998,-0.284472656249946],[-91.46015625000001,-0.255664062500031],[-91.42597656249995,-0.460839843749994]]],[[[-90.57392578124993,-0.333984375],[-90.8677734375,-0.271386718750037],[-90.78037109374998,-0.160449218749989],[-90.57392578124993,-0.333984375]]],[[[-91.27216796874998,0.025146484374986],[-90.799658203125,-0.752050781249991],[-90.90551757812497,-0.94052734375002],[-91.13105468750001,-1.019628906249977],[-91.41904296874998,-0.996679687500006],[-91.49541015624999,-0.860937499999977],[-91.120947265625,-0.559082031250028],[-91.36918945312493,-0.287207031249977],[-91.42885742187502,-0.023388671874955],[-91.59682617187497,0.002099609374994],[-91.36137695312496,0.125830078124977],[-91.27216796874998,0.025146484374986]]],[[[-78.90922851562502,1.252783203124977],[-78.99169921875003,1.293212890625043],[-78.89980468749997,1.359765625],[-78.90922851562502,1.252783203124977]]],[[[-75.28447265624999,-0.10654296875002],[-75.62626953124999,-0.122851562499974],[-75.63203125000001,-0.157617187500037],[-75.56059570312502,-0.200097656249994],[-75.49106445312498,-0.24833984374996],[-75.42470703124997,-0.408886718749983],[-75.259375,-0.59013671874996],[-75.24960937499998,-0.951855468750026],[-75.34819335937499,-0.966796874999957],[-75.38012695312503,-0.94023437499996],[-75.40805664062503,-0.92431640625],[-75.42041015624997,-0.962207031250003],[-75.570556640625,-1.53125],[-76.08979492187501,-2.133105468749974],[-76.6791015625,-2.562597656249991],[-77.860595703125,-2.981640625000011],[-78.240380859375,-3.472558593750009],[-78.345361328125,-3.397363281249966],[-78.64799804687499,-4.248144531250006],[-78.68603515625003,-4.562402343749994],[-78.86152343749998,-4.665039062499943],[-78.90761718749997,-4.714453124999977],[-78.92578125,-4.770703124999983],[-78.91420898437497,-4.818652343749974],[-78.919189453125,-4.858398437499986],[-78.97539062499999,-4.873242187499997],[-78.99526367187497,-4.908007812499974],[-79.03330078124998,-4.96914062499999],[-79.07626953125003,-4.990625],[-79.18666992187497,-4.958203124999983],[-79.26811523437493,-4.957617187499949],[-79.33095703124997,-4.92783203125002],[-79.39941406249997,-4.840039062499983],[-79.45576171874998,-4.766210937499949],[-79.50190429687495,-4.670605468750011],[-79.51616210937493,-4.539160156249963],[-79.57768554687496,-4.50058593750002],[-79.638525390625,-4.454882812500031],[-79.71098632812502,-4.467578124999946],[-79.79726562500002,-4.47636718749996],[-79.8451171875,-4.445898437499977],[-79.962890625,-4.390332031250026],[-80.06352539062499,-4.327539062500023],[-80.13955078125002,-4.296093750000011],[-80.19746093750001,-4.311035156249943],[-80.293359375,-4.416796875],[-80.38349609374998,-4.46367187499996],[-80.424169921875,-4.461425781250028],[-80.47856445312499,-4.430078125000037],[-80.48847656249995,-4.393652343749991],[-80.44384765625003,-4.335839843750023],[-80.35288085937495,-4.208496093750014],[-80.453759765625,-4.205175781249963],[-80.48847656249995,-4.165527343749972],[-80.49345703124999,-4.119140625000014],[-80.510009765625,-4.06953125000004],[-80.49013671874994,-4.010058593750003],[-80.43720703125001,-3.978613281249991],[-80.30327148437499,-4.005078124999969],[-80.26689453124993,-3.948828124999963],[-80.23051757812499,-3.924023437499969],[-80.19414062499996,-3.905859375],[-80.24375,-3.576757812500006],[-80.32465820312498,-3.387890625],[-79.96333007812501,-3.15771484375],[-79.72988281249997,-2.579101562499972],[-79.842138671875,-2.0673828125],[-79.92558593749996,-2.548535156249969],[-80.03017578124994,-2.556738281249949],[-80.00664062499993,-2.353808593750003],[-80.28471679687502,-2.706738281249955],[-80.93217773437493,-2.269140624999977],[-80.76059570312498,-1.934570312500028],[-80.90239257812499,-1.078906249999974],[-80.55390624999998,-0.847949218749989],[-80.45546875,-0.585449218749986],[-80.282373046875,-0.620507812500023],[-80.48227539062503,-0.368261718749963],[-80.046142578125,0.155371093750048],[-80.08828124999997,0.78476562500002],[-78.89965820312503,1.20625],[-78.85966796874996,1.455371093750031],[-78.1806640625,0.968554687499974],[-77.702880859375,0.837841796874997],[-77.46767578124997,0.636523437500017],[-77.396337890625,0.393896484374963],[-76.49462890624997,0.23544921875002],[-76.27060546874998,0.439404296874997],[-75.77666015624999,0.08925781249998],[-75.28447265624999,-0.10654296875002]]]]},"properties":{"name":"Ecuador","childNum":9}},{"geometry":{"type":"Polygon","coordinates":[[[34.24531250000001,31.208300781249996],[34.904296875,29.47734375],[34.736425781250006,29.27060546875],[34.39970703125002,28.01601562499999],[34.22011718750002,27.764306640624994],[33.76025390625,28.04765625],[33.24775390625001,28.567724609375],[32.56572265625002,29.973974609375],[32.35976562500002,29.630664062499996],[32.89824218750002,28.565234375],[33.54707031250001,27.898144531249997],[33.5498046875,27.607373046874997],[33.84931640625001,27.184912109375],[33.959082031250006,26.6490234375],[35.19414062500002,24.475146484375003],[35.78388671875001,23.937792968750003],[35.54082031250002,23.920654296875],[35.50439453125,23.779296875],[35.697851562500006,22.946191406249994],[36.22968750000001,22.628808593749994],[36.87138671875002,21.996728515624994],[31.434472656250023,21.995849609375],[31.486132812500017,22.14780273437499],[31.400292968750023,22.202441406250003],[31.260644531250023,22.00229492187499],[31.092675781250023,21.994873046875],[28.036425781250017,21.995361328125],[24.980273437500017,21.995849609375],[24.980273437500017,25.5888671875],[24.980273437500017,29.181884765625],[24.703222656250006,30.201074218749994],[24.96142578125,30.678515625],[24.85273437500001,31.334814453125],[25.150488281250006,31.654980468749997],[25.382226562500023,31.51279296875],[25.89326171875001,31.620898437499996],[27.248046875,31.377880859374997],[27.5400390625,31.212695312499996],[28.51484375000001,31.050439453124994],[29.072070312500017,30.830273437499997],[29.929785156250006,31.227490234374997],[30.22265625,31.2583984375],[30.395117187500006,31.4576171875],[30.92353515625001,31.566845703124997],[30.56298828125,31.4169921875],[31.001757812500017,31.462792968749994],[31.082910156250023,31.603320312499996],[31.5244140625,31.458251953125],[31.888964843750017,31.54140625],[32.13603515625002,31.341064453125],[31.8921875,31.482470703124996],[31.77109375,31.292578125],[32.10175781250001,31.092822265624996],[32.281835937500006,31.200878906249997],[32.21621093750002,31.29375],[32.60332031250002,31.06875],[33.66650390625,31.130419921874996],[34.19814453125002,31.322607421875],[34.24531250000001,31.208300781249996]]]},"properties":{"name":"Egypt","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[40.141210937500006,15.696142578125034],[40.399023437500006,15.579882812500045],[39.975195312500006,15.612451171875023],[39.94746093750004,15.696142578125034],[40.07050781250004,15.676611328125034],[39.93994140625003,15.744531250000023],[39.9567382812501,15.889404296875057],[40.141210937500006,15.696142578125034]]],[[[40.07646484375002,16.082421875000023],[40.11005859375004,15.985742187500051],[39.99609375000003,16.04267578125001],[40.07646484375002,16.082421875000023]]],[[[40.938574218750006,13.983105468749997],[40.82011718750002,14.111669921874991],[40.22148437500002,14.431152343749972],[39.531835937500006,14.53671875],[39.198046875000074,14.479394531250037],[39.1354492187501,14.581884765625034],[39.07421874999997,14.628222656249974],[39.02382812499999,14.628222656249974],[38.99570312500006,14.586865234374983],[38.81201171875003,14.482324218750009],[38.50439453124997,14.42441406250002],[38.43144531250002,14.428613281249994],[38.221484375000074,14.649658203124986],[38.002539062500006,14.737109375000045],[37.94345703125006,14.810546875],[37.884179687499994,14.852294921874972],[37.82031250000003,14.708496093749986],[37.70839843750005,14.45722656250004],[37.64843750000003,14.32255859375006],[37.571191406249994,14.149072265624966],[37.546777343749994,14.143847656249974],[37.507226562499994,14.156396484375037],[37.257226562499994,14.453759765625051],[37.024511718750006,14.271972656250057],[36.81191406250005,14.315039062500034],[36.67910156250005,14.307568359375026],[36.542382812499994,14.25820312499999],[36.52431640625005,14.256835937499986],[36.492285156250006,14.544335937500023],[36.470800781250006,14.736474609375009],[36.448144531249994,14.940087890625009],[36.42675781249997,15.132080078125043],[36.566015625,15.362109375],[36.9137695312501,16.296191406250045],[36.887792968750006,16.624658203124994],[36.9787109375001,16.800585937500045],[36.9757812500001,16.866552734375006],[36.99521484375006,17.020556640625017],[37.00898437500004,17.058886718750017],[37.06152343749997,17.061279296875057],[37.16953125000006,17.04140625],[37.41103515625005,17.061718749999955],[37.452929687500074,17.108691406250017],[37.51015625,17.28813476562499],[37.54746093750006,17.32412109375005],[37.78242187500004,17.458007812500057],[38.253515625,17.584765625000017],[38.26728515625004,17.616699218750057],[38.28984375000002,17.637011718750017],[38.34736328125004,17.68359375],[38.37373046875004,17.717333984375045],[38.42246093750006,17.823925781249983],[38.60947265625006,18.00507812500004],[39.03447265625002,17.085546875000034],[39.298925781250006,15.921093750000011],[39.78554687499999,15.124853515624991],[39.86376953124997,15.470312500000034],[40.20410156250003,15.014111328124983],[41.17646484375004,14.620312500000054],[41.65820312499997,13.983056640624994],[42.24511718749997,13.587646484374986],[42.39931640625005,13.212597656249969],[42.522851562499994,13.221484375],[42.796191406250074,12.864257812500057],[42.96953125000002,12.808349609375028],[42.99902343750003,12.899511718750048],[43.08291015625005,12.824609374999966],[43.11669921874997,12.708593749999963],[43.00566406250002,12.66230468750004],[42.88330078124997,12.621289062500026],[42.86591796875004,12.622802734374986],[42.82529296875006,12.569335937500014],[42.767480468749994,12.422851562500014],[42.70371093750006,12.380322265625054],[42.479394531249994,12.513623046875026],[42.45,12.521337890625006],[42.40859375,12.494384765625014],[42.37851562500006,12.46640625],[42.28994140625005,12.570214843750009],[42.225,12.661962890624963],[42.13427734374997,12.771435546874969],[41.95214843749997,12.88232421875],[41.85957031250004,13.025878906250028],[41.76503906250005,13.183935546874991],[41.362890625,13.499804687500031],[40.938574218750006,13.983105468749997]]]]},"properties":{"name":"Eritrea","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-17.887939453125,27.809570312500057],[-17.984765625000023,27.646386718750023],[-18.160546874999937,27.76147460937503],[-17.887939453125,27.809570312500057]]],[[[-15.400585937499955,28.147363281250023],[-15.436767578124972,27.810693359375023],[-15.71030273437492,27.784082031250023],[-15.809472656249966,27.994482421874977],[-15.682763671874994,28.15405273437497],[-15.400585937499955,28.147363281250023]]],[[[-17.184667968749977,28.02197265624997],[-17.324902343749955,28.11767578125003],[-17.25859375,28.203173828125045],[-17.103759765624943,28.111132812500017],[-17.184667968749977,28.02197265624997]]],[[[-16.33447265624997,28.37993164062499],[-16.41821289062497,28.15141601562496],[-16.65800781249999,28.007177734374977],[-16.905322265625017,28.33959960937503],[-16.12363281249992,28.57597656249996],[-16.33447265624997,28.37993164062499]]],[[[-14.196777343749943,28.169287109375063],[-14.332617187500006,28.056005859374977],[-14.49179687499992,28.100927734374977],[-14.231982421875017,28.21582031250003],[-14.003369140624983,28.706689453125023],[-13.85722656249996,28.73803710937503],[-13.928027343749989,28.25346679687499],[-14.196777343749943,28.169287109375063]]],[[[-17.83427734374999,28.49321289062496],[-18.00078124999999,28.758251953124955],[-17.928808593749977,28.844580078125063],[-17.7265625,28.724462890625006],[-17.83427734374999,28.49321289062496]]],[[[-13.715966796874966,28.911230468750034],[-13.85991210937496,28.869091796874983],[-13.823632812499966,29.013330078124966],[-13.463574218749955,29.237207031250023],[-13.477929687499966,29.00659179687503],[-13.715966796874966,28.911230468750034]]],[[[1.593945312500068,38.672070312499955],[1.40576171875,38.670996093750006],[1.436328125000017,38.768212890624994],[1.593945312500068,38.672070312499955]]],[[[1.445214843750051,38.91870117187503],[1.223339843750068,38.90385742187502],[1.3486328125,39.080810546875],[1.564453125,39.12104492187504],[1.623632812499977,39.03881835937497],[1.445214843750051,38.91870117187503]]],[[[3.145312500000017,39.79008789062499],[3.461816406250023,39.69775390625003],[3.072851562500006,39.30126953124997],[2.799804687500057,39.38505859374999],[2.700585937500023,39.54213867187502],[2.49951171875,39.47788085937498],[2.37001953125008,39.57207031249999],[3.15869140625,39.97050781249999],[3.145312500000017,39.79008789062499]]],[[[4.293652343750011,39.84184570312499],[3.8671875,39.958740234375],[3.853417968750051,40.06303710937502],[4.22578125000004,40.032373046874966],[4.293652343750011,39.84184570312499]]],[[[-1.794042968749949,43.407324218750006],[-1.410693359374932,43.240087890625034],[-1.460839843749937,43.05175781250006],[-1.300048828124943,43.10097656250002],[-0.586425781249943,42.798974609374966],[0.631640625000045,42.689599609374994],[0.696875,42.84511718750005],[1.428320312499977,42.59589843749998],[1.414843750000074,42.54838867187499],[1.448828124999977,42.43745117187504],[1.534082031250051,42.44169921875002],[1.7060546875,42.50332031250005],[1.859765625000051,42.457080078125045],[1.927929687500068,42.42631835937499],[2.032714843750028,42.353515625],[3.21142578125,42.43115234375],[3.248046875,41.94423828125002],[3.0048828125,41.76743164062506],[2.082617187500063,41.287402343750045],[1.032910156250068,41.06206054687496],[0.714648437500074,40.822851562500006],[0.891113281250057,40.72236328125004],[0.59609375000008,40.614501953125],[-0.327001953124949,39.519873046875006],[-0.204931640624949,39.062597656250034],[0.20156250000008,38.75917968750002],[-0.520800781249989,38.317285156249966],[-0.814648437500011,37.76992187500002],[-0.721582031249966,37.63105468749998],[-1.327539062499937,37.561132812500034],[-1.640966796874949,37.38696289062497],[-2.111523437499983,36.77666015624999],[-4.366845703124994,36.71811523437506],[-4.67412109374996,36.506445312500006],[-5.171484374999949,36.423779296874955],[-5.3609375,36.134912109374994],[-5.62548828125,36.02592773437499],[-6.040673828124937,36.18842773437498],[-6.38413085937492,36.63701171874996],[-6.216796875000028,36.91357421875],[-6.396191406249983,36.831640625],[-6.863769531250028,37.27890625],[-7.406152343749937,37.17944335937497],[-7.44394531249992,37.72827148437497],[-6.957568359374932,38.18789062499999],[-7.106396484374983,38.181005859375006],[-7.343017578124943,38.45742187500002],[-6.997949218749994,39.05644531250002],[-7.53569335937496,39.66157226562501],[-7.117675781249972,39.681689453125045],[-6.975390624999932,39.79838867187502],[-6.896093749999949,40.02182617187506],[-7.032617187499966,40.16791992187498],[-6.8101562499999,40.343115234375034],[-6.928466796874972,41.009130859375006],[-6.2125,41.53203125],[-6.542187499999955,41.672509765624994],[-6.61826171874992,41.9423828125],[-7.147119140625023,41.98115234374998],[-7.40361328124996,41.833691406249955],[-8.152490234374937,41.81196289062498],[-8.266064453124983,42.13740234375001],[-8.777148437500017,41.941064453124994],[-8.887207031249943,42.105273437500045],[-8.690917968749943,42.274169921875],[-8.815820312499966,42.285253906250034],[-8.730029296874989,42.411718750000034],[-8.8115234375,42.64033203124998],[-9.033105468750023,42.593847656250006],[-8.927197265624926,42.79858398437497],[-9.235205078124977,42.97690429687498],[-9.178076171874977,43.17402343749998],[-8.248925781249937,43.43940429687498],[-8.256738281249937,43.57988281249999],[-8.004687499999932,43.69438476562496],[-7.503613281249983,43.73994140625001],[-7.060986328124955,43.55395507812503],[-5.846679687499943,43.645068359375045],[-4.52304687499992,43.41572265625004],[-3.604638671874966,43.51948242187504],[-3.045605468749926,43.37158203125],[-2.875048828125017,43.454443359375006],[-2.337109374999926,43.32802734375002],[-1.794042968749949,43.407324218750006]]]]},"properties":{"name":"Spain","childNum":12,"cp":[-2.9366964,40.3438963]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[22.61738281250004,58.62124023437502],[23.323242187500057,58.45083007812502],[22.730273437500045,58.23066406250001],[22.371679687499977,58.217138671875006],[21.996875,57.93134765624998],[22.187695312500068,58.15434570312502],[21.88212890624999,58.262353515624994],[21.862304687500057,58.497167968750034],[22.61738281250004,58.62124023437502]]],[[[23.343554687500017,58.550341796875045],[23.10908203125004,58.65922851562502],[23.332812500000045,58.648583984374994],[23.343554687500017,58.550341796875045]]],[[[22.923730468750023,58.826904296875],[22.54218750000001,58.68999023437499],[22.411035156250023,58.863378906250034],[22.05625,58.94360351562506],[22.6494140625,59.08710937499998],[22.90986328125004,58.99121093749997],[22.923730468750023,58.826904296875]]],[[[28.0125,59.484277343749966],[28.15107421875004,59.374414062499966],[27.434179687500006,58.787255859374994],[27.502441406250057,58.221337890624994],[27.778515625000068,57.87070312500006],[27.542089843750063,57.799414062500006],[27.4,57.66679687499999],[27.35195312500005,57.528125],[26.96601562500001,57.60913085937506],[26.532617187499994,57.53100585937503],[26.29804687500001,57.60107421875],[25.66015625,57.920166015625],[25.27265625000001,58.009375],[25.11103515625004,58.06342773437498],[24.45888671875005,57.907861328124994],[24.3625,57.86616210937501],[24.322558593750074,57.87060546875003],[24.529101562500045,58.35424804687497],[24.114843750000034,58.26611328125006],[23.767578125000057,58.36083984374997],[23.50927734375003,58.65854492187498],[23.680761718750063,58.787158203125074],[23.43203125,58.920654296875],[23.494433593750017,59.19565429687498],[24.083398437500023,59.29189453125005],[24.38037109375003,59.47265625],[25.44375,59.52114257812502],[25.50927734374997,59.63901367187506],[26.974707031250006,59.450634765624955],[28.0125,59.484277343749966]]]]},"properties":{"name":"Estonia","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[38.43144531250002,14.428613281249994],[38.50439453125,14.424414062499991],[38.81201171875,14.482324218749994],[38.995703125,14.586865234374997],[39.02382812500002,14.628222656250003],[39.07421875,14.628222656250003],[39.13544921875001,14.581884765624991],[39.19804687500002,14.479394531249994],[39.531835937500006,14.53671875],[40.22148437500002,14.43115234375],[40.82011718750002,14.111669921874991],[40.938574218750006,13.983105468749997],[41.362890625,13.499804687500003],[41.76503906250002,13.183935546874991],[41.85957031250001,13.02587890625],[41.9521484375,12.88232421875],[42.13427734375,12.771435546874997],[42.225,12.661962890624991],[42.28994140625002,12.570214843749994],[42.378515625,12.46640625],[41.79267578125001,11.68603515625],[41.79824218750002,10.98046875],[42.557714843750006,11.080761718749997],[42.92275390625002,10.999316406249989],[42.65644531250001,10.6],[42.84160156250002,10.203076171874997],[43.181640625,9.879980468749991],[43.482519531250006,9.379492187499991],[43.98378906250002,9.008837890624989],[46.97822265625001,7.9970703125],[47.97822265625001,7.9970703125],[44.940527343750006,4.912011718749994],[43.988867187500006,4.950537109374991],[43.58349609375,4.85498046875],[43.12568359375001,4.644482421874997],[42.85664062500001,4.32421875],[42.02412109375001,4.137939453125],[41.91533203125002,4.031298828124989],[41.88398437500001,3.977734375],[41.73769531250002,3.979052734374989],[41.48193359375,3.96328125],[41.37246093750002,3.946191406249994],[41.22089843750001,3.943554687499997],[41.02080078125002,4.057470703124991],[40.765234375,4.27304687499999],[39.84218750000002,3.851464843749994],[39.79033203125002,3.754248046874991],[39.65751953125002,3.577832031249997],[39.49443359375002,3.456103515624989],[38.608007812500006,3.60009765625],[38.45156250000002,3.604833984374991],[38.22529296875001,3.618994140624991],[38.08613281250001,3.64882812499999],[37.15458984375002,4.254541015624994],[36.90556640625002,4.411474609374991],[36.02197265625,4.468115234374991],[35.76308593750002,4.808007812499994],[35.75615234375002,4.950488281249989],[35.779296875,5.105566406249991],[35.80029296875,5.156933593749997],[35.74501953125002,5.343994140625],[35.325292968750006,5.364892578124994],[35.2646484375,5.412060546874997],[35.26386718750001,5.457910156249994],[35.26835937500002,5.492285156249991],[34.98359375000001,5.858300781249994],[34.71064453125001,6.660302734374994],[34.06425781250002,7.225732421874994],[33.902441406250006,7.509521484375],[32.99892578125002,7.899511718749991],[33.28105468750002,8.437255859375],[33.95332031250001,8.443505859374994],[34.07275390625,8.545263671874991],[34.078125,9.461523437499991],[34.31123046875001,10.190869140624997],[34.34394531250001,10.658642578124997],[34.571875,10.880175781249989],[34.77128906250002,10.746191406249991],[34.93144531250002,10.864794921874989],[35.1123046875,11.816552734374994],[35.67021484375002,12.623730468749997],[36.12519531250001,12.75703125],[36.52431640625002,14.2568359375],[36.54238281250002,14.25820312499999],[36.67910156250002,14.307568359374997],[36.81191406250002,14.315039062499991],[37.024511718750006,14.27197265625],[37.25722656250002,14.453759765624994],[37.50722656250002,14.156396484374994],[37.54677734375002,14.143847656250003],[37.57119140625002,14.149072265624994],[37.6484375,14.322558593750003],[37.70839843750002,14.457226562499997],[37.8203125,14.70849609375],[37.88417968750002,14.852294921875],[37.943457031250006,14.810546875],[38.002539062500006,14.737109375],[38.22148437500002,14.649658203125],[38.43144531250002,14.428613281249994]]]},"properties":{"name":"Ethiopia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[22.17509765624999,60.370751953124994],[22.41552734375003,60.30336914062505],[22.36054687500004,60.165576171875045],[22.07714843750003,60.286328124999955],[22.17509765624999,60.370751953124994]]],[[[21.450878906250068,60.529589843750045],[21.3,60.47978515625002],[21.224707031250006,60.62060546875003],[21.450878906250068,60.529589843750045]]],[[[21.2177734375,63.241308593750034],[21.415625,63.19736328125006],[21.25341796875,63.152001953124966],[21.08388671875008,63.277539062499955],[21.2177734375,63.241308593750034]]],[[[24.848242187500034,64.99101562499999],[24.576562500000023,65.04287109375],[24.970605468750023,65.05532226562502],[24.848242187500034,64.99101562499999]]],[[[28.96582031250003,69.02197265625],[28.414062500000057,68.90415039062506],[28.77285156250005,68.84003906249995],[28.470703125000057,68.48837890625],[28.685156250000034,68.189794921875],[29.343847656250006,68.06186523437506],[29.988085937500017,67.66826171874999],[29.066210937500045,66.89174804687497],[30.102734375000097,65.72626953125004],[29.715917968750063,65.62456054687502],[29.608007812500006,65.248681640625],[29.826953125000017,65.14506835937502],[29.60419921875004,64.968408203125],[30.072851562500063,64.76503906250005],[30.04189453125005,64.44335937499997],[30.513769531250006,64.2],[30.50390625000003,64.02060546875],[29.991503906250074,63.73515625000002],[31.180859375000097,63.208300781250074],[31.533984375000017,62.885400390624994],[31.18671875000004,62.48139648437504],[29.69013671875004,61.54609375000001],[27.797656250000074,60.53613281250003],[26.53466796874997,60.412890625000074],[26.56933593750003,60.62456054687502],[26.377734375000074,60.42407226562503],[25.955957031250023,60.474218750000034],[26.03583984375004,60.34150390625001],[25.75800781250004,60.26752929687504],[25.65644531250004,60.33320312499998],[24.44560546874999,60.021289062500045],[23.46357421875004,59.986230468749994],[23.021289062500074,59.81601562500006],[23.19843750000001,60.02182617187498],[22.911718750000063,60.20971679687497],[22.749804687500017,60.057275390624994],[22.462695312500045,60.029199218749966],[22.5849609375,60.380566406249955],[21.436035156250057,60.596386718749955],[21.605957031250057,61.59155273437503],[21.255957031250063,61.98964843750005],[21.143847656250045,62.73999023437506],[21.650976562500063,63.039306640625],[21.545117187499983,63.204296874999955],[22.31972656250005,63.310449218749994],[22.532324218750034,63.647851562499994],[23.598925781250074,64.04091796874997],[24.557910156250045,64.801025390625],[25.288183593750063,64.8603515625],[25.34785156250004,65.47924804687497],[24.674902343750006,65.67070312499999],[24.628027343750034,65.85917968750002],[24.15546875000004,65.80527343750006],[23.700292968750034,66.25263671874998],[23.988574218750045,66.81054687500003],[23.64150390625005,67.12939453124997],[23.733593750000068,67.42290039062499],[23.454882812500045,67.46025390625007],[23.63886718750004,67.95439453125002],[22.854101562500034,68.36733398437502],[21.99746093750005,68.52060546874998],[20.622167968750006,69.036865234375],[21.065722656250017,69.04174804687503],[21.06611328125001,69.21411132812497],[21.59375,69.273583984375],[22.410937500000074,68.719873046875],[23.324023437500017,68.64897460937502],[23.85400390625,68.80590820312503],[24.94140625000003,68.59326171875006],[25.748339843750017,68.99013671875],[26.07246093750004,69.69155273437497],[26.525390625000057,69.91503906250003],[27.127539062500063,69.90649414062497],[27.747851562500045,70.06484375],[29.14160156250003,69.67143554687505],[29.33339843750005,69.47299804687503],[28.846289062500006,69.17690429687502],[28.96582031250003,69.02197265625]]]]},"properties":{"name":"Finland","childNum":5}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[178.48789062500018,-18.97412109375],[177.95869140624998,-19.121582031250014],[178.33427734375013,-18.93447265625001],[178.48789062500018,-18.97412109375]]],[[[179.34931640625015,-18.10234375000003],[179.25351562500018,-18.030566406249974],[179.30644531250013,-17.944042968750026],[179.34931640625015,-18.10234375000003]]],[[[178.28017578124994,-17.37197265625001],[178.59160156249996,-17.651464843750006],[178.66767578125004,-18.080859375],[177.95546875000005,-18.264062500000023],[177.32138671875,-18.077539062500037],[177.26396484375007,-17.86347656250004],[177.5044921875,-17.539550781250043],[177.81796875000012,-17.38847656249999],[178.28017578124994,-17.37197265625001]]],[[[180,-16.96308593750001],[179.89697265625003,-16.96406250000004],[180,-16.785742187500034],[180,-16.96308593750001]]],[[[-179.97490234374996,-16.92480468750003],[-180,-16.96298828124999],[-180,-16.907812500000034],[-180,-16.82431640624999],[-180,-16.78554687499999],[-179.86098632812502,-16.68828124999999],[-179.97490234374996,-16.92480468750003]]],[[[-179.92944335937503,-16.502832031250037],[-179.999951171875,-16.540039062499986],[-179.900927734375,-16.431542968749994],[-179.92944335937503,-16.502832031250037]]],[[[179.99921875000004,-16.168554687499977],[179.56416015625004,-16.636914062499997],[179.56816406249996,-16.747460937499966],[179.93037109375004,-16.51943359375005],[179.9279296875001,-16.74443359374996],[179.41933593750005,-16.80654296875001],[179.20234375000004,-16.71269531249999],[179.00683593750003,-16.90019531249999],[178.70664062500018,-16.97617187500002],[178.4974609375,-16.78789062500003],[178.58359375000012,-16.621875],[178.80507812499994,-16.631445312500034],[179.55175781250003,-16.249902343750023],[180,-16.15292968749999],[179.99921875000004,-16.168554687499977]]]]},"properties":{"name":"Fiji","childNum":7}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-61.01875,-51.7857421875],[-60.87597656250003,-51.79423828125004],[-60.94755859374996,-51.94628906250002],[-61.14501953125003,-51.83945312500001],[-61.01875,-51.7857421875]]],[[[-60.28623046874995,-51.461914062500014],[-59.38759765625002,-51.35996093750003],[-59.26806640625,-51.42753906250003],[-59.92138671874997,-51.969531250000045],[-60.246337890625,-51.98642578125003],[-60.35346679687498,-52.13994140625004],[-60.686376953125034,-52.18837890624996],[-60.96142578125003,-52.05732421874999],[-60.23847656249998,-51.771972656250036],[-60.58251953125,-51.71269531250004],[-60.24516601562493,-51.638867187500004],[-60.56845703124998,-51.357812499999945],[-60.28623046874995,-51.461914062500014]]],[[[-60.11171875000002,-51.39589843749998],[-60.275341796874955,-51.28056640625002],[-60.06982421875,-51.307910156249996],[-60.11171875000002,-51.39589843749998]]],[[[-58.85019531249995,-51.26992187499998],[-58.42583007812502,-51.32421875000003],[-58.508935546874994,-51.48359375],[-58.271582031250034,-51.57470703124999],[-58.25922851562501,-51.417089843750034],[-57.976513671874955,-51.384375],[-57.80849609375002,-51.51796875],[-57.96044921874997,-51.58320312500003],[-57.79179687499999,-51.63613281249998],[-58.68349609375002,-51.93623046875001],[-58.65278320312498,-52.09921875],[-59.19584960937496,-52.01767578125],[-59.06801757812502,-52.17304687500003],[-59.341503906249955,-52.19599609375],[-59.395654296874966,-52.308007812499994],[-59.64873046875002,-52.134375],[-59.57080078124994,-51.92539062500003],[-59.05952148437498,-51.685449218749994],[-59.09663085937498,-51.49140624999998],[-58.85019531249995,-51.26992187499998]]]]},"properties":{"name":"Falkland Is.","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[55.79736328125003,-21.33935546875003],[55.36269531250005,-21.27363281250004],[55.23281250000005,-21.05839843749999],[55.311328125000074,-20.90410156249999],[55.661914062500074,-20.90625],[55.8390625000001,-21.13857421874998],[55.79736328125003,-21.33935546875003]]],[[[45.180273437500006,-12.97675781250004],[45.069433593750006,-12.895605468750034],[45.09238281250006,-12.653027343749997],[45.22314453124997,-12.752148437500026],[45.180273437500006,-12.97675781250004]]],[[[-51.65253906249998,4.061279296874972],[-52.327880859375,3.18173828125002],[-52.58300781250003,2.528906249999977],[-52.90346679687502,2.211523437499977],[-53.76777343749998,2.354833984375048],[-54.13007812499998,2.121044921875026],[-54.43310546875,2.207519531250057],[-54.51508789062498,2.245458984374963],[-54.55048828125001,2.293066406249991],[-54.59194335937502,2.313769531250031],[-54.61625976562499,2.326757812500006],[-54.60473632812497,2.335791015624991],[-54.56840820312502,2.342578125000031],[-54.53593749999999,2.343310546875003],[-54.48554687500001,2.416113281250006],[-54.402001953124966,2.46152343750002],[-54.25673828125002,2.713720703124977],[-54.19550781249998,2.817871093750057],[-54.17070312499999,2.993603515624969],[-54.203125,3.138183593750028],[-54.18803710937499,3.178759765625031],[-54.063183593749955,3.353320312499989],[-54.00957031249993,3.448535156250017],[-54.03422851562499,3.62939453125],[-54.350732421874994,4.054101562500023],[-54.47968749999998,4.836523437499991],[-53.91992187499997,5.768994140624983],[-52.899316406249966,5.425048828124986],[-52.29052734375003,4.942187500000031],[-52.324609374999966,4.770898437500037],[-52.21997070312494,4.862792968750014],[-52.05810546875003,4.717382812499963],[-52.00292968749997,4.352294921875014],[-51.82753906250002,4.635693359375026],[-51.65253906249998,4.061279296874972]]],[[[-60.826269531250006,14.494482421874991],[-61.063720703125,14.467089843750017],[-61.01132812499998,14.601904296875034],[-61.21333007812501,14.848583984375011],[-60.927148437499966,14.755175781249989],[-60.826269531250006,14.494482421874991]]],[[[-61.23046875000003,15.889941406250074],[-61.310742187499955,15.894677734374966],[-61.25,16.006298828124983],[-61.23046875000003,15.889941406250074]]],[[[-61.58955078125001,16.006933593750006],[-61.759423828124966,16.062060546875045],[-61.74804687499997,16.355273437500017],[-61.55234374999998,16.270898437499966],[-61.58955078125001,16.006933593750006]]],[[[-61.3271484375,16.230419921874983],[-61.522167968749955,16.22802734375003],[-61.47119140624994,16.506640625000045],[-61.17260742187497,16.25610351562497],[-61.3271484375,16.230419921874983]]],[[[9.480371093750023,42.80541992187503],[9.550683593750051,42.12973632812506],[9.186132812500034,41.38491210937502],[8.80751953125008,41.58837890625],[8.886816406249977,41.70068359375003],[8.621875,41.93071289062502],[8.700976562500045,42.09560546875002],[8.565625,42.35771484374996],[8.81484375000008,42.60791015625003],[9.313378906250023,42.71318359374999],[9.363183593750051,43.01738281249996],[9.480371093750023,42.80541992187503]]],[[[-1.17832031249992,45.904052734375],[-1.213574218750011,45.81660156250004],[-1.388671874999972,46.05039062500006],[-1.17832031249992,45.904052734375]]],[[[5.789746093749983,49.53828125000001],[5.823437500000011,49.50507812499998],[5.9013671875,49.48974609374997],[5.928906250000011,49.47753906249997],[5.959472656250028,49.45463867187502],[6.01142578125004,49.44545898437502],[6.074121093750023,49.45463867187502],[6.119921875000017,49.485205078125034],[6.181054687500051,49.498925781249966],[6.344335937500006,49.45273437499998],[6.735449218750006,49.16059570312498],[7.450585937500051,49.152197265625034],[8.134863281250006,48.97358398437498],[7.616601562500023,48.15678710937502],[7.615625,47.59272460937504],[7.343164062499994,47.43310546875003],[7.136035156249989,47.489843750000034],[6.968359375000034,47.453222656250034],[6.900390625000028,47.39423828125001],[7.000585937500034,47.339453125000034],[7.000585937500034,47.32250976562506],[6.978515625000057,47.30205078124996],[6.95205078125008,47.26718750000006],[6.820703125000051,47.163183593750006],[6.688085937500034,47.05825195312505],[6.66689453125008,47.026513671874966],[6.624804687500017,47.00434570312498],[6.45625,46.948339843750034],[6.438646763392874,46.774418247767855],[6.129687500000045,46.56699218750006],[6.118111049107182,46.447459542410726],[6.095898437500011,46.279394531250006],[5.970019531250045,46.214697265625034],[5.971484375000074,46.151220703125006],[6.006640625000045,46.14233398437506],[6.086621093750068,46.14702148437502],[6.19941406250004,46.19306640624998],[6.234667968750045,46.332617187500006],[6.321875,46.39370117187502],[6.428906250000011,46.43051757812506],[6.578222656250034,46.437353515625034],[6.758105468750017,46.41577148437497],[6.772070312500006,46.16513671874998],[6.897265625000017,46.05175781249997],[6.953710937500063,46.017138671875045],[7.00390625,45.95883789062506],[7.021093750000034,45.92578124999997],[6.790917968750023,45.740869140624966],[7.146386718750051,45.381738281249994],[7.07832031250004,45.23994140624998],[6.634765625000028,45.06816406249996],[6.99267578125,44.82729492187502],[6.900195312499989,44.33574218749996],[7.318554687500068,44.13798828125002],[7.637207031250057,44.16484375],[7.4931640625,43.767138671875045],[6.570214843750023,43.199072265625034],[6.115917968750011,43.07236328124998],[5.406542968750074,43.228515625],[5.05976562500004,43.44453125000004],[4.712109375000011,43.373291015625],[3.910839843750011,43.563085937500034],[3.258886718750063,43.193212890625006],[3.051757812500057,42.915136718750006],[3.21142578125,42.43115234375],[2.032714843750028,42.353515625],[1.927929687500068,42.42631835937499],[1.859765625000051,42.457080078125045],[1.7060546875,42.50332031250005],[1.709863281250051,42.604443359374955],[1.568164062500045,42.63500976562506],[1.501367187500023,42.64272460937502],[1.428320312499977,42.59589843749998],[0.696875,42.84511718750005],[0.631640625000045,42.689599609374994],[-0.586425781249943,42.798974609374966],[-1.300048828124943,43.10097656250002],[-1.460839843749937,43.05175781250006],[-1.410693359374932,43.240087890625034],[-1.794042968749949,43.407324218750006],[-1.484863281249943,43.56376953124999],[-1.245507812499937,44.55986328124999],[-1.07695312499996,44.68984375],[-1.152880859374989,44.764013671875006],[-1.245214843749977,44.66669921874998],[-1.081005859374983,45.532421874999955],[-0.548486328124966,45.00058593750006],[-0.790771484375028,45.46801757812497],[-1.195996093749983,45.714453125],[-1.03173828125,45.741064453125006],[-1.14628906249996,46.311376953125034],[-1.786523437499937,46.51484375000001],[-2.059375,46.81030273437497],[-2.01889648437492,47.03764648437502],[-2.197070312499989,47.16293945312506],[-2.027587890625028,47.27358398437502],[-1.742529296874949,47.21596679687502],[-1.97539062499996,47.31069335937505],[-2.503125,47.31206054687496],[-2.427685546874983,47.47089843749998],[-2.770312499999989,47.513867187499955],[-2.787207031249949,47.62553710937496],[-4.312109374999949,47.82290039062502],[-4.678808593749949,48.03950195312501],[-4.32944335937492,48.169970703125045],[-4.577148437499943,48.2900390625],[-4.241406249999926,48.30366210937501],[-4.719384765624966,48.363134765625034],[-4.7625,48.45024414062502],[-4.531201171874983,48.61997070312506],[-3.231445312499972,48.84082031250003],[-2.692333984374983,48.53681640624998],[-2.446191406249937,48.64829101562506],[-2.00371093749996,48.58208007812499],[-1.905712890624955,48.69711914062506],[-1.376464843749972,48.65258789062503],[-1.565478515624932,48.805517578125034],[-1.583105468749977,49.20239257812506],[-1.856445312499972,49.68378906249998],[-1.258642578124949,49.68017578125006],[-1.138525390624977,49.38789062500001],[-0.163476562499937,49.296777343749994],[0.41689453125008,49.448388671874994],[0.129394531250028,49.508447265624966],[0.186718749999983,49.703027343749994],[1.245507812500051,49.99824218750001],[1.5927734375,50.25219726562506],[1.672265625000023,50.885009765625],[2.52490234375,51.097119140624955],[2.759375,50.750634765624994],[3.10683593750008,50.779443359374994],[3.27333984375008,50.53154296875002],[3.595410156250068,50.47734374999999],[3.689355468750023,50.30605468750002],[4.174609375000017,50.24648437500005],[4.149316406250023,49.971582031249994],[4.545019531250063,49.96025390624999],[4.818652343750045,50.153173828125034],[4.867578125000051,49.78813476562502],[5.50732421875,49.51088867187502],[5.789746093749983,49.53828125000001]]]]},"properties":{"name":"France","childNum":10,"cp":[2.8719426,46.8222422]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-7.186865234374949,62.139306640624966],[-7.116796874999977,62.046826171874955],[-7.379101562499926,62.07480468749998],[-7.186865234374949,62.139306640624966]]],[[[-6.631054687499955,62.22788085937498],[-6.655810546874932,62.09360351562498],[-6.840527343749983,62.119287109374994],[-6.725195312499949,61.95146484374999],[-7.17216796874996,62.28559570312501],[-6.631054687499955,62.22788085937498]]],[[[-6.406054687499932,62.258642578125034],[-6.544140624999926,62.20561523437499],[-6.554589843749994,62.35566406250001],[-6.406054687499932,62.258642578125034]]]]},"properties":{"name":"Faeroe Is.","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[158.31484375,6.813671875],[158.18339843750002,6.801269531250057],[158.13476562499997,6.944824218749986],[158.29462890625004,6.951074218750023],[158.31484375,6.813671875]]],[[[138.14267578125006,9.50068359375004],[138.06708984375004,9.419042968750006],[138.18583984375007,9.593310546874989],[138.14267578125006,9.50068359375004]]]]},"properties":{"name":"Micronesia","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[13.293554687500006,2.161572265624997],[13.172167968750017,1.78857421875],[13.21630859375,1.2484375],[13.851367187500017,1.41875],[14.180859375000011,1.370214843749991],[14.429882812500011,0.901464843749991],[14.32421875,0.62421875],[13.949609375000023,0.353808593749989],[13.860058593750011,-0.203320312500011],[14.47412109375,-0.573437500000011],[14.383984375000011,-1.890039062500009],[14.162890625000017,-2.217578125],[14.199804687500006,-2.354199218750011],[13.993847656250011,-2.490625],[13.886914062500011,-2.465429687500006],[13.733789062500023,-2.138476562500003],[13.464941406250006,-2.395410156250009],[12.991992187500017,-2.313378906250009],[12.793554687500006,-1.931835937500011],[12.590429687500006,-1.826855468750011],[12.43212890625,-1.928906250000011],[12.446386718750006,-2.329980468750009],[12.064453125,-2.41259765625],[11.60546875,-2.342578125],[11.537792968750011,-2.83671875],[11.760156250000023,-2.983105468750011],[11.715429687500006,-3.176953125000011],[11.934179687500006,-3.318554687500011],[11.8798828125,-3.665917968750009],[11.685742187500011,-3.68203125],[11.504296875000023,-3.5203125],[11.234472656250006,-3.690820312500009],[11.130175781250017,-3.916308593750003],[10.34765625,-3.013085937500009],[9.722070312500023,-2.467578125],[10.06201171875,-2.549902343750006],[9.624609375,-2.367089843750009],[9.298925781250006,-1.903027343750011],[9.483203125000017,-1.894628906250006],[9.265625,-1.825097656250009],[9.036328125000011,-1.308886718750003],[9.31884765625,-1.632031250000011],[9.501074218750006,-1.55517578125],[9.295800781250023,-1.515234375],[9.3466796875,-1.325],[9.203808593750011,-1.382421875],[9.064648437500011,-1.29833984375],[8.703125,-0.591015625000011],[8.946386718750006,-0.688769531250003],[9.296679687500017,-0.351269531250011],[9.354882812500023,0.343603515624991],[9.468164062500023,0.15976562499999],[9.796777343750023,0.044238281249989],[10.00146484375,0.194970703124994],[9.546484375,0.295947265624989],[9.324804687500006,0.552099609374991],[9.495312500000011,0.664843749999989],[9.617968750000017,0.576513671874991],[9.5908203125,1.031982421875],[9.636132812500023,1.046679687499989],[9.676464843750011,1.07470703125],[9.70458984375,1.079980468749994],[9.760546875000017,1.07470703125],[9.788671875,1.025683593749989],[9.803906250000011,0.998730468749997],[9.90673828125,0.960107421874994],[11.335351562500023,0.999707031249997],[11.332324218750017,1.528369140624989],[11.328710937500006,2.167431640624997],[11.348437500000017,2.299707031249994],[11.558984375000023,2.302197265624997],[13.2203125,2.256445312499991],[13.293554687500006,2.161572265624997]]]},"properties":{"name":"Gabon","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-1.065576171874966,50.69023437500002],[-1.25146484375,50.58881835937498],[-1.563427734374955,50.666113281250006],[-1.31279296874996,50.77348632812502],[-1.065576171874966,50.69023437500002]]],[[[-4.196777343749972,53.321435546874966],[-4.04936523437496,53.30576171874998],[-4.373046875,53.13417968750002],[-4.56787109375,53.386474609375],[-4.315087890625023,53.41723632812503],[-4.196777343749972,53.321435546874966]]],[[[-6.218017578125,54.08872070312506],[-6.649804687499937,54.05864257812496],[-7.007714843749937,54.40668945312501],[-7.324511718750017,54.13344726562502],[-7.606542968750006,54.14384765625002],[-8.118261718749977,54.41425781250004],[-7.75439453125,54.59492187499998],[-7.910595703124955,54.698339843750006],[-7.55039062499992,54.767968749999966],[-7.218652343749937,55.09199218749998],[-6.475048828124955,55.24101562499999],[-6.035791015624994,55.14453125000003],[-5.71684570312496,54.817480468750034],[-5.878613281249955,54.64130859375001],[-5.582519531249943,54.66342773437498],[-5.470410156249926,54.500195312499955],[-5.671093749999955,54.54975585937501],[-5.60678710937492,54.272558593750034],[-6.019042968749972,54.05126953124997],[-6.218017578125,54.08872070312506]]],[[[-5.105419921875011,55.448828125000034],[-5.331494140624955,55.481054687500034],[-5.318115234375,55.709179687499955],[-5.105419921875011,55.448828125000034]]],[[[-6.128906249999972,55.93056640625002],[-6.055322265624994,55.69531249999997],[-6.305078124999966,55.60693359375],[-6.286425781249989,55.77250976562499],[-6.491357421874994,55.697314453125045],[-6.462841796874955,55.808251953124994],[-6.128906249999972,55.93056640625002]]],[[[-5.970068359374949,55.814550781250034],[-6.071972656250011,55.893115234375045],[-5.72514648437496,56.118554687499966],[-5.970068359374949,55.814550781250034]]],[[[-5.77788085937496,56.344335937500034],[-6.313427734374983,56.29365234375001],[-6.138867187499955,56.490625],[-6.286328124999983,56.61186523437502],[-6.102734374999955,56.645654296874966],[-5.760839843749949,56.49067382812501],[-5.77788085937496,56.344335937500034]]],[[[-7.249853515624977,57.115332031250006],[-7.410546874999937,57.38110351562506],[-7.26713867187496,57.37177734375001],[-7.249853515624977,57.115332031250006]]],[[[-6.144726562499983,57.50498046874998],[-6.135546874999989,57.31425781250002],[-5.672460937499977,57.252685546875],[-5.94907226562492,57.045166015625],[-6.034375,57.20122070312499],[-6.322705078124926,57.20249023437498],[-6.761132812499994,57.4423828125],[-6.305957031249989,57.67197265624998],[-6.144726562499983,57.50498046874998]]],[[[-7.205566406250028,57.682958984375006],[-7.182617187499972,57.53330078125006],[-7.514746093749949,57.60195312500002],[-7.205566406250028,57.682958984375006]]],[[[-6.198681640624983,58.36328125000003],[-6.554589843749994,58.092871093750006],[-6.425195312499937,58.02128906249999],[-6.983105468749983,57.75],[-7.083447265624926,57.81376953124999],[-6.856835937499937,57.92353515624998],[-7.085253906249932,58.18217773437499],[-6.726464843749937,58.189404296874955],[-6.776464843750006,58.30151367187497],[-6.237451171874966,58.50283203125005],[-6.198681640624983,58.36328125000003]]],[[[-3.109667968749932,58.515478515625034],[-3.212353515624983,58.32124023437501],[-3.99003906249996,57.95903320312502],[-4.035595703124926,57.85200195312498],[-3.857128906249983,57.81855468750001],[-4.134521484375,57.57773437500006],[-3.402783203124955,57.708251953125],[-2.074072265624977,57.70239257812506],[-1.780664062499994,57.474023437499966],[-2.592675781249937,56.56157226562499],[-3.309960937499966,56.36347656250004],[-2.885156249999937,56.397509765625045],[-2.674267578124955,56.25341796875],[-3.362255859374955,56.02763671875002],[-3.789062499999972,56.09521484375],[-3.048730468749937,55.951953125000045],[-2.599316406249955,56.02729492187501],[-2.14707031249992,55.90297851562502],[-1.655371093749949,55.57036132812502],[-1.232421874999943,54.703710937500034],[-0.084375,54.118066406249994],[-0.20556640625,54.021728515625],[0.115332031250006,53.609277343749994],[-0.270019531249972,53.73676757812504],[-0.659912109375,53.72402343750002],[-0.293701171875,53.69233398437504],[0.270996093750028,53.33549804687499],[0.355761718750045,53.15996093750002],[0.0458984375,52.90561523437498],[0.279785156250028,52.80869140625006],[0.55878906250004,52.96694335937505],[1.05556640625008,52.95898437500003],[1.656738281249972,52.753710937500045],[1.74658203125,52.46899414062503],[1.59140625,52.11977539062502],[1.232421875000057,51.97124023437496],[1.188476562500057,51.803369140624966],[0.752246093750017,51.729589843750034],[0.890917968750017,51.571435546874966],[0.42451171875004,51.465625],[1.414941406250023,51.36328125],[1.397558593750034,51.18203125000002],[0.960156250000011,50.92587890624998],[0.299707031249994,50.775976562500006],[-0.785253906249949,50.76542968749999],[-1.416455078124955,50.896875],[-1.334472656249943,50.82080078124997],[-1.516748046874937,50.747460937499966],[-2.031054687499932,50.72539062499999],[-2.035839843749926,50.603076171875045],[-2.999414062499937,50.71660156249999],[-3.40458984374996,50.63242187499998],[-3.679785156250006,50.239941406249955],[-4.194580078124972,50.39331054687503],[-4.727978515624926,50.29047851562504],[-5.11850585937492,50.038330078125],[-5.622119140624932,50.05068359375002],[-4.188183593749926,51.18852539062502],[-3.135986328124972,51.20502929687501],[-2.433056640624926,51.74072265625],[-3.293115234374994,51.390429687500045],[-3.890771484374994,51.591650390625006],[-4.234570312499955,51.56909179687503],[-4.091015624999926,51.65991210937506],[-4.38627929687496,51.74106445312506],[-4.902294921874926,51.626269531250045],[-5.168359374999937,51.74072265625],[-5.183349609374972,51.94965820312501],[-4.217724609374983,52.277441406250006],[-3.980322265624949,52.54174804687503],[-4.101464843750023,52.915478515624955],[-4.683056640624926,52.80615234374997],[-4.268554687499943,53.14453125],[-3.427734374999972,53.34067382812498],[-3.097558593749937,53.260302734375045],[-3.064746093749932,53.426855468750034],[-2.74951171875,53.310205078124994],[-3.064599609374994,53.512841796874966],[-2.84648437499996,54.135302734375045],[-3.165966796874955,54.12792968750006],[-3.56938476562496,54.46757812499996],[-3.464599609374943,54.77309570312505],[-3.036230468749977,54.95307617187501],[-3.550439453124937,54.94741210937502],[-3.957910156249994,54.780957031249955],[-4.818066406249983,54.84614257812501],[-4.911230468749949,54.68945312500006],[-5.032324218749949,54.76137695312505],[-5.172705078124949,54.98588867187496],[-4.676757812499972,55.50131835937498],[-4.871679687499977,55.87392578125005],[-4.58408203124992,55.93867187500001],[-4.844091796874949,56.05117187499999],[-4.80029296875,56.158349609374994],[-5.228222656249983,55.886328125],[-5.084326171874977,56.197460937499955],[-5.41044921874996,55.995361328125],[-5.55644531249996,55.389599609374955],[-5.730664062499926,55.33413085937502],[-5.504492187499949,55.80239257812502],[-5.609570312499955,56.055273437500034],[-5.188378906249937,56.75805664062503],[-5.652441406249977,56.531982421875],[-6.133691406249966,56.706689453124966],[-5.730615234374994,56.853076171875045],[-5.86142578124992,56.902685546875006],[-5.561914062499994,57.23271484375002],[-5.794921874999972,57.37880859375002],[-5.581787109374972,57.546777343749966],[-5.744921874999989,57.668310546875034],[-5.608349609374955,57.88134765625],[-5.157226562499972,57.88134765625],[-5.413183593750006,58.06972656250002],[-5.338281250000023,58.23872070312498],[-5.008300781250028,58.262646484374955],[-5.016748046874966,58.566552734374966],[-4.433251953124937,58.51284179687505],[-3.25913085937492,58.65],[-3.053076171874949,58.63481445312502],[-3.109667968749932,58.515478515625034]]],[[[-3.057421874999932,59.02963867187498],[-2.793017578124989,58.906933593749955],[-3.331640624999949,58.97124023437499],[-3.31035156249996,59.13081054687498],[-3.057421874999932,59.02963867187498]]],[[[-1.30810546875,60.5375],[-1.052441406249955,60.44448242187502],[-1.299462890624994,59.87866210937503],[-1.290917968749937,60.153466796874966],[-1.663769531249983,60.282519531250074],[-1.374609374999949,60.33291015625002],[-1.571777343749972,60.494433593750074],[-1.363964843750011,60.60957031249998],[-1.30810546875,60.5375]]]]},"properties":{"name":"United Kingdom","childNum":14,"cp":[-2.5830348,54.4598409]}},{"geometry":{"type":"Polygon","coordinates":[[[46.30546875000002,41.507714843749994],[46.61894531250002,41.34375],[46.67255859375001,41.28681640625],[46.66240234375002,41.245507812499994],[46.62636718750002,41.15966796875],[46.534375,41.08857421875],[46.43095703125002,41.077050781249994],[46.086523437500006,41.183837890625],[45.28095703125001,41.449560546875],[45.21718750000002,41.423193359375],[45.00136718750002,41.290966796875],[44.97587890625002,41.277490234374994],[44.81132812500002,41.259375],[44.077246093750006,41.182519531249994],[43.43339843750002,41.155517578125],[43.20546875000002,41.199169921875],[43.15283203125,41.23642578125],[43.14101562500002,41.26484375],[43.17128906250002,41.287939453125],[43.149023437500006,41.30712890625],[43.05712890625,41.352832031249996],[42.90673828125,41.466845703124996],[42.82167968750002,41.4923828125],[42.78789062500002,41.563720703125],[42.75410156250001,41.57890625],[42.68242187500002,41.585742187499996],[42.60683593750002,41.57880859375],[42.590429687500006,41.57070312499999],[42.5673828125,41.55927734375],[42.46640625,41.43984375],[41.92578125,41.495654296874996],[41.82353515625002,41.432373046875],[41.779394531250006,41.44052734375],[41.701757812500006,41.471582031249994],[41.57656250000002,41.497314453125],[41.51005859375002,41.517480468749994],[41.701757812500006,41.705419921875],[41.76298828125002,41.970019531249996],[41.48876953125,42.659326171874994],[40.83662109375001,43.0634765625],[40.46210937500001,43.145703125],[39.97832031250002,43.419824218749994],[40.02373046875002,43.48486328125],[40.084570312500006,43.553125],[40.648046875,43.53388671875],[40.941992187500006,43.41806640625],[41.083105468750006,43.374462890625],[41.35820312500002,43.333398437499994],[41.46074218750002,43.276318359375],[41.58056640625,43.21923828125],[42.76064453125002,43.169580078124994],[42.99160156250002,43.09150390625],[43.00019531250001,43.049658203125],[43.08916015625002,42.9890625],[43.55781250000001,42.844482421875],[43.623046875,42.80771484375],[43.78261718750002,42.747021484375],[43.79873046875002,42.727783203125],[43.79541015625,42.702978515625],[43.74990234375002,42.657519531249996],[43.738378906250006,42.616992187499996],[43.759863281250006,42.59384765625],[43.82597656250002,42.571533203125],[43.95742187500002,42.566552734374994],[44.00468750000002,42.595605468749994],[44.10273437500001,42.616357421874994],[44.32949218750002,42.70351562499999],[44.505859375,42.7486328125],[44.77109375,42.616796875],[44.85048828125002,42.746826171875],[44.87099609375002,42.756396484374996],[44.943359375,42.730273437499996],[45.07158203125002,42.694140625],[45.160253906250006,42.675],[45.34375,42.52978515625],[45.56289062500002,42.5357421875],[45.70527343750001,42.498095703124996],[45.7275390625,42.475048828125],[45.63427734375,42.234716796875],[45.63857421875002,42.205078125],[46.21269531250002,41.989892578124994],[46.42988281250001,41.890966796875],[46.18427734375001,41.7021484375],[46.30546875000002,41.507714843749994]]]},"properties":{"name":"Georgia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-0.068603515625,11.115625],[0.009423828125023,11.02099609375],[-0.08632812499999,10.673046875],[0.380859375,10.291845703124991],[0.264550781250023,9.644726562499997],[0.342578125000017,9.604150390624994],[0.2333984375,9.463525390624994],[0.525683593750017,9.398486328124989],[0.48876953125,8.851464843749994],[0.37255859375,8.75927734375],[0.686328125000017,8.354882812499994],[0.5,7.546875],[0.634765625,7.353662109374994],[0.525585937500011,6.850927734374991],[0.736914062500006,6.452587890624997],[1.187207031250011,6.089404296874989],[0.94970703125,5.810253906249997],[0.259667968750023,5.75732421875],[-2.001855468749994,4.762451171875],[-3.114013671875,5.088671874999989],[-2.815673828125,5.153027343749997],[-2.754980468749977,5.432519531249994],[-2.793652343749983,5.60009765625],[-2.998291015625,5.71132812499999],[-3.227148437499977,6.749121093749991],[-2.959082031249977,7.454541015624997],[-2.789746093749983,7.931933593749989],[-2.668847656249994,8.022216796875],[-2.613378906249977,8.046679687499989],[-2.600976562499994,8.082226562499997],[-2.619970703124977,8.12109375],[-2.61171875,8.147558593749991],[-2.538281249999983,8.171630859375],[-2.505859375,8.208740234375],[-2.600390624999989,8.800439453124994],[-2.649218749999989,8.956591796874989],[-2.689892578124983,9.025097656249997],[-2.746923828124977,9.045117187499997],[-2.705761718749983,9.351367187499989],[-2.695849609374989,9.481347656249994],[-2.706201171874994,9.533935546875],[-2.765966796874977,9.658056640624991],[-2.780517578125,9.745849609375],[-2.791162109374994,10.432421874999989],[-2.914892578124977,10.592333984374989],[-2.829931640624977,10.998388671874991],[-1.04248046875,11.010058593749989],[-0.627148437499983,10.927392578124994],[-0.299462890624994,11.166894531249994],[-0.068603515625,11.115625]]]},"properties":{"name":"Ghana","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-11.389404296875,12.404394531249991],[-11.502197265625,12.198632812499994],[-11.30517578125,12.015429687499989],[-10.933203124999977,12.205175781249991],[-10.709228515625,11.898730468749989],[-10.274853515624983,12.212646484375],[-9.754003906249977,12.029931640624994],[-9.358105468749983,12.255419921874989],[-9.395361328124977,12.464648437499989],[-9.043066406249977,12.40234375],[-8.818310546874983,11.922509765624994],[-8.822021484375,11.673242187499994],[-8.398535156249977,11.366552734374991],[-8.666699218749983,11.009472656249997],[-8.33740234375,10.990625],[-8.266650390624989,10.485986328124994],[-8.007275390624983,10.321875],[-7.990625,10.1625],[-8.155175781249994,9.973193359374989],[-8.136962890625,9.49570312499999],[-7.896191406249983,9.415869140624991],[-7.918066406249977,9.188525390624989],[-7.839404296874989,9.151611328125],[-7.7998046875,9.115039062499989],[-7.777978515624994,9.080859374999989],[-7.902099609375,9.01708984375],[-7.938183593749983,8.979785156249989],[-7.950976562499989,8.786816406249997],[-7.719580078124977,8.643017578124997],[-7.696093749999989,8.375585937499991],[-7.823583984374977,8.467675781249994],[-7.953125,8.477734375],[-8.236962890624994,8.455664062499991],[-8.244140625,8.407910156249997],[-8.256103515625,8.253710937499989],[-8.217138671874977,8.219677734374997],[-8.140625,8.181445312499989],[-8.048583984375,8.169726562499989],[-8.009863281249977,8.07851562499999],[-8.126855468749994,7.867724609374989],[-8.115429687499983,7.7607421875],[-8.205957031249994,7.59023437499999],[-8.231884765624983,7.556738281249991],[-8.429980468749989,7.601855468749989],[-8.486425781249977,7.558496093749994],[-8.659765624999977,7.688378906249994],[-8.8896484375,7.2626953125],[-9.11757812499999,7.215917968749991],[-9.463818359374983,7.415869140624991],[-9.369140625,7.703808593749997],[-9.518261718749983,8.34609375],[-9.781982421875,8.537695312499991],[-10.064355468749994,8.429882812499997],[-10.147412109374983,8.519726562499997],[-10.233056640624994,8.488818359374989],[-10.283203125,8.485156249999989],[-10.360058593749983,8.495507812499994],[-10.394433593749994,8.48095703125],[-10.496435546874977,8.362109374999989],[-10.557714843749977,8.315673828125],[-10.686962890624983,8.321679687499994],[-10.712109374999983,8.335253906249989],[-10.677343749999977,8.400585937499997],[-10.500537109374989,8.687548828124989],[-10.615966796875,9.059179687499991],[-10.726855468749989,9.081689453124994],[-10.747021484374983,9.095263671874989],[-10.749951171874983,9.122363281249989],[-10.687646484374994,9.261132812499994],[-10.682714843749977,9.289355468749989],[-10.758593749999989,9.385351562499991],[-11.047460937499977,9.786328125],[-11.180859374999983,9.925341796874989],[-11.205664062499977,9.977734375],[-11.273632812499983,9.996533203124997],[-11.911083984374983,9.993017578124991],[-12.142333984375,9.87539062499999],[-12.427978515625,9.898144531249997],[-12.557861328125,9.704980468749994],[-12.755859375,9.373583984374989],[-12.958789062499989,9.263330078124994],[-13.077294921874994,9.069628906249989],[-13.292675781249983,9.04921875],[-13.436279296875,9.4203125],[-13.691357421874983,9.535791015624994],[-13.689794921874977,9.927783203124989],[-13.820117187499989,9.88720703125],[-14.045019531249977,10.141259765624994],[-14.426904296874994,10.248339843749989],[-14.609570312499983,10.549853515624989],[-14.593505859375,10.766699218749991],[-14.677343749999977,10.68896484375],[-14.775927734374989,10.931640625],[-14.88671875,10.968066406249989],[-14.975,10.803417968749997],[-15.051220703124983,10.834570312499991],[-15.043017578124989,10.940136718749997],[-14.9990234375,10.9921875],[-14.944433593749977,11.072167968749994],[-14.779296875,11.405517578125],[-14.720263671874989,11.48193359375],[-14.682958984374977,11.508496093749997],[-14.604785156249989,11.511621093749994],[-14.452441406249989,11.556201171874989],[-14.327832031249983,11.629785156249994],[-14.265576171874983,11.659912109375],[-14.122314453125,11.65195312499999],[-13.953222656249977,11.664599609374989],[-13.732763671874977,11.736035156249997],[-13.730664062499983,11.959863281249994],[-13.737988281249983,12.009667968749994],[-13.816308593749994,12.054492187499989],[-13.948876953124994,12.178173828124997],[-13.8875,12.246875],[-13.759765625,12.262353515624994],[-13.673535156249983,12.478515625],[-13.732617187499983,12.592822265624989],[-13.729248046875,12.673925781249991],[-13.082910156249994,12.633544921875],[-13.061279296875,12.489990234375],[-12.930712890624989,12.532275390624989],[-12.399072265624994,12.340087890625],[-11.389404296875,12.404394531249991]]]},"properties":{"name":"Guinea","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-16.763330078124994,13.064160156249997],[-16.824804687499977,13.341064453125],[-16.669335937499994,13.475],[-16.41337890624999,13.269726562499997],[-15.427490234375,13.46835937499999],[-16.135449218749983,13.4482421875],[-16.351806640625,13.34335937499999],[-16.56230468749999,13.587304687499994],[-15.509667968749994,13.586230468750003],[-15.426855468749977,13.727001953124997],[-15.108349609374983,13.81210937499999],[-14.405468749999983,13.503710937500003],[-13.977392578124977,13.54345703125],[-13.826708984374989,13.4078125],[-14.246777343749983,13.23583984375],[-15.151123046875,13.556494140624991],[-15.286230468749977,13.39599609375],[-15.814404296874983,13.325146484374997],[-15.834277343749989,13.156445312499997],[-16.648779296874977,13.154150390624991],[-16.763330078124994,13.064160156249997]]]},"properties":{"name":"Gambia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-15.895898437499966,11.082470703124969],[-15.963964843749977,11.05898437499998],[-15.937695312499955,11.192773437499966],[-15.895898437499966,11.082470703124969]]],[[[-16.11450195312503,11.059423828124977],[-16.236425781249977,11.113427734374966],[-16.06733398437501,11.197216796874983],[-16.11450195312503,11.059423828124977]]],[[[-15.901806640624926,11.4658203125],[-16.02319335937497,11.477148437499991],[-15.964550781249926,11.59829101562498],[-15.901806640624926,11.4658203125]]],[[[-15.986425781249949,11.882031249999969],[-16.038330078124943,11.759716796875011],[-16.15244140624992,11.876806640624963],[-15.986425781249949,11.882031249999969]]],[[[-13.759765625,12.262353515624994],[-13.8875,12.246875],[-13.948876953124966,12.178173828124997],[-13.737988281250011,12.009667968750037],[-13.730664062499926,11.959863281250009],[-13.73276367187492,11.736035156249983],[-13.953222656249977,11.664599609374989],[-14.265576171874926,11.659912109375014],[-14.327832031250011,11.629785156250009],[-14.452441406249989,11.556201171875017],[-14.604785156249932,11.511621093749994],[-14.682958984374949,11.508496093749983],[-14.720263671875017,11.481933593749986],[-14.779296874999972,11.405517578125057],[-14.944433593749949,11.072167968749994],[-14.999023437499972,10.992187500000043],[-15.04301757812496,10.940136718750011],[-15.09375,11.011035156249974],[-15.054589843749994,11.141943359375006],[-15.222119140624926,11.030908203125037],[-15.216699218749994,11.15625],[-15.39311523437496,11.217236328124983],[-15.354687499999955,11.396337890624963],[-15.479492187499972,11.410302734374966],[-15.072656249999937,11.597802734374966],[-15.230371093750023,11.686767578124972],[-15.412988281249994,11.615234374999972],[-15.501904296875011,11.723779296874966],[-15.467187499999937,11.842822265624974],[-15.078271484374937,11.968994140625014],[-15.941748046875006,11.786621093749986],[-15.92021484374996,11.93779296874996],[-16.138427734375,11.917285156250045],[-16.32807617187501,12.051611328124963],[-16.244580078124955,12.237109375],[-16.43681640624996,12.204150390625045],[-16.711816406249937,12.354833984375006],[-16.656933593749955,12.364355468749991],[-16.52133789062495,12.348632812499986],[-16.41630859374996,12.367675781250057],[-16.24150390624996,12.443310546875011],[-16.144189453124937,12.457421875000037],[-15.839550781249955,12.437890624999966],[-15.57480468749992,12.490380859375009],[-15.19609375,12.679931640624986],[-14.3492187499999,12.67641601562498],[-14.064843749999966,12.675292968750014],[-13.729248046875,12.673925781250006],[-13.732617187499983,12.592822265625003],[-13.673535156249926,12.478515624999986],[-13.759765625,12.262353515624994]]]]},"properties":{"name":"Guinea-Bissau","childNum":5}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[11.332324218750017,1.528369140624989],[11.335351562500023,0.999707031250011],[9.906738281250028,0.960107421875037],[9.80390625000004,0.998730468749997],[9.788671875000034,1.025683593749974],[9.760546874999989,1.074707031250014],[9.704589843750057,1.079980468750023],[9.676464843750011,1.074707031250014],[9.636132812500051,1.046679687499989],[9.590820312500057,1.031982421875014],[9.599414062500045,1.054443359374972],[9.509863281250006,1.114794921875017],[9.385937500000068,1.13925781250002],[9.807031250000051,1.927490234375028],[9.77968750000008,2.068212890625006],[9.800781250000028,2.304443359375],[9.826171875000057,2.297802734374969],[9.8369140625,2.242382812500054],[9.870117187500028,2.21328125],[9.979882812499994,2.167773437500045],[10.790917968750023,2.167578125],[11.096582031250051,2.167480468749986],[11.328710937500006,2.167431640624969],[11.332324218750017,1.528369140624989]]],[[[8.735742187500023,3.758300781249972],[8.910058593750023,3.758203125000051],[8.946093750000074,3.627539062499977],[8.704003906250051,3.223632812500028],[8.474902343749989,3.264648437500043],[8.464648437500045,3.450585937499994],[8.735742187500023,3.758300781249972]]]]},"properties":{"name":"Eq. Guinea","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[23.852246093749983,35.53544921874999],[24.166015625000057,35.59521484375],[24.108984374999977,35.49580078124998],[24.35400390625,35.359472656250034],[25.73017578125004,35.34858398437501],[25.791308593750074,35.122851562500045],[26.32021484375008,35.315136718749955],[26.165625,35.018603515625045],[24.79980468750003,34.93447265625002],[24.70888671875008,35.08906250000001],[24.463671875000045,35.160351562499955],[23.59277343749997,35.257226562499966],[23.56982421875,35.534765625000034],[23.67265624999999,35.51391601562506],[23.736914062500034,35.65551757812503],[23.852246093749983,35.53544921874999]]],[[[27.17607421874999,35.46528320312498],[27.070703125000023,35.59775390624998],[27.22314453125,35.820458984374966],[27.17607421874999,35.46528320312498]]],[[[23.053808593750034,36.18979492187498],[22.91083984375004,36.220996093750045],[22.950488281250045,36.38393554687502],[23.053808593750034,36.18979492187498]]],[[[27.84277343750003,35.929296875000034],[27.71552734375004,35.95732421874996],[27.71630859375003,36.17158203125001],[28.23183593750005,36.43364257812502],[28.087792968750023,36.06533203125002],[27.84277343750003,35.929296875000034]]],[[[25.48242187500003,36.39262695312502],[25.37050781250005,36.35893554687499],[25.408984375000074,36.473730468750006],[25.48242187500003,36.39262695312502]]],[[[26.46064453125001,36.58540039062501],[26.270019531250057,36.54692382812499],[26.370019531250023,36.63857421875002],[26.46064453125001,36.58540039062501]]],[[[26.94960937500005,36.72709960937502],[27.214941406250006,36.89863281249998],[27.352148437499977,36.86889648437506],[26.94960937500005,36.72709960937502]]],[[[25.859375,36.79042968750005],[25.74316406250003,36.78974609374998],[26.06445312500003,36.90273437500002],[25.859375,36.79042968750005]]],[[[27.01972656250004,36.95903320312502],[26.91992187500003,36.94521484375005],[26.88867187499997,37.087255859375034],[27.01972656250004,36.95903320312502]]],[[[25.278906250000034,37.06840820312502],[25.105468750000057,37.034960937500045],[25.235058593750068,37.148535156250006],[25.278906250000034,37.06840820312502]]],[[[25.54589843749997,36.96757812499999],[25.45673828125001,36.9296875],[25.361914062500063,37.07041015624998],[25.52529296875005,37.19638671875006],[25.54589843749997,36.96757812499999]]],[[[24.523535156250063,37.125097656250006],[24.42480468750003,37.131982421874994],[24.48378906250005,37.21020507812503],[24.523535156250063,37.125097656250006]]],[[[25.402734375000023,37.419140624999955],[25.312695312500068,37.48930664062496],[25.462988281250063,37.47109375],[25.402734375000023,37.419140624999955]]],[[[26.029296875000057,37.529394531250034],[26.086328125000023,37.63491210937505],[26.351367187500017,37.67431640625],[26.029296875000057,37.529394531250034]]],[[[25.255859375000057,37.59960937500006],[25.156347656250034,37.54506835937505],[24.99648437500005,37.676904296874994],[25.255859375000057,37.59960937500006]]],[[[24.35595703125003,37.57685546875004],[24.28896484375005,37.52827148437498],[24.37910156250004,37.682714843750006],[24.35595703125003,37.57685546875004]]],[[[26.82441406250004,37.81142578125005],[27.05507812500005,37.70927734375002],[26.84492187500004,37.64472656250001],[26.58105468750003,37.723730468750034],[26.82441406250004,37.81142578125005]]],[[[20.888476562500074,37.805371093749955],[20.993945312500074,37.70800781250003],[20.81855468750004,37.66474609375001],[20.61953125000008,37.855029296875045],[20.691503906250006,37.929541015625034],[20.888476562500074,37.805371093749955]]],[[[24.991699218750057,37.75961914062506],[24.962207031250074,37.69238281250003],[24.7001953125,37.961669921875],[24.956347656250045,37.90478515625006],[24.991699218750057,37.75961914062506]]],[[[20.61230468750003,38.38334960937502],[20.761328125,38.07055664062497],[20.523535156250063,38.106640624999955],[20.4521484375,38.23417968750002],[20.35253906250003,38.179882812499955],[20.563183593750068,38.474951171875034],[20.61230468750003,38.38334960937502]]],[[[26.094042968750017,38.21806640625002],[25.891894531250045,38.243310546874994],[25.991406250000068,38.353515625],[25.846093750000023,38.57402343749996],[26.16035156250001,38.54072265625001],[26.094042968750017,38.21806640625002]]],[[[20.68671875000001,38.60869140625002],[20.5546875,38.58256835937502],[20.69414062499999,38.84423828125003],[20.68671875000001,38.60869140625002]]],[[[24.67470703125005,38.80922851562502],[24.54101562499997,38.788671875],[24.485644531250074,38.980273437500045],[24.67470703125005,38.80922851562502]]],[[[23.41542968750008,38.958642578124994],[23.525,38.8134765625],[24.127539062500034,38.648486328125045],[24.27578125000005,38.22001953124996],[24.58837890625003,38.12397460937504],[24.53652343750005,37.97973632812506],[24.212011718750006,38.11752929687506],[24.040136718750006,38.389990234375034],[23.65078125000008,38.44306640625001],[23.25214843750004,38.80122070312498],[22.870312500000068,38.870507812499966],[23.258203125000023,39.03134765625006],[23.41542968750008,38.958642578124994]]],[[[26.41015625000003,39.329443359375034],[26.59560546875005,39.04882812499997],[26.488671875000023,39.074804687500034],[26.46875,38.97280273437502],[26.10791015625,39.08105468749997],[26.273144531249983,39.19755859374999],[26.072363281250034,39.095605468749994],[25.84414062500008,39.20004882812506],[26.16542968750008,39.37353515625006],[26.41015625000003,39.329443359375034]]],[[[20.077929687500045,39.432714843750034],[19.883984375000068,39.461523437500034],[19.646484375,39.76708984375003],[19.926074218750017,39.773730468750045],[19.8466796875,39.66811523437502],[20.077929687500045,39.432714843750034]]],[[[25.43769531250004,39.98330078125002],[25.357031250000063,39.80810546875003],[25.24941406250005,39.89414062500006],[25.06220703125004,39.852392578125006],[25.05800781250005,39.999658203124966],[25.43769531250004,39.98330078125002]]],[[[24.774218750000074,40.615185546874955],[24.515527343750023,40.64702148437496],[24.623339843750045,40.79291992187501],[24.774218750000074,40.615185546874955]]],[[[26.03896484375008,40.726757812499955],[25.10449218750003,40.994726562500006],[24.792968750000057,40.857519531250034],[24.47705078125,40.94775390625003],[24.082324218750074,40.72407226562504],[23.762792968750063,40.74780273437497],[23.866796875000034,40.41855468750006],[24.21279296875008,40.32778320312502],[24.343359375000034,40.14770507812503],[23.913183593750063,40.35878906250005],[23.72792968750008,40.329736328124994],[23.96748046875001,40.11455078125002],[23.947070312500045,39.96557617187506],[23.66455078125003,40.22382812499998],[23.42626953125,40.26396484374999],[23.62734375,39.92407226562503],[22.896484375000057,40.39990234374997],[22.92226562500008,40.59086914062499],[22.629492187500034,40.49555664062501],[22.59218750000005,40.03691406250002],[23.327734374999977,39.174902343750006],[23.15468750000008,39.10146484375005],[23.16171875,39.25776367187501],[22.92138671874997,39.30634765625004],[22.886035156250074,39.16997070312496],[23.066699218750017,39.03793945312498],[22.569140625000074,38.86748046874999],[23.25292968750003,38.66123046875006],[23.68398437500008,38.35244140625002],[23.96699218750001,38.275],[24.024511718750006,38.139794921874966],[24.01972656250001,37.67773437499997],[23.50175781249999,38.03486328124998],[23.03632812500004,37.87836914062501],[23.48925781250003,37.440185546875],[23.16152343750005,37.333837890625006],[22.725390625000017,37.542138671874966],[23.16015625000003,36.448095703125034],[22.717187500000023,36.79394531250006],[22.42773437500003,36.47578124999998],[22.08046875000008,37.028955078124966],[21.95556640625003,36.990087890625034],[21.892382812500045,36.73730468749997],[21.58291015625005,37.080957031249994],[21.678906250000068,37.38720703125003],[21.124707031250068,37.89160156250003],[21.40371093750005,38.19667968750002],[21.658398437500068,38.17509765624996],[21.82470703125003,38.328125],[22.846386718750068,37.96757812499996],[23.18349609375008,38.133691406249966],[22.421679687500045,38.43852539062499],[22.319921875,38.35683593750005],[21.96533203124997,38.412451171875006],[21.47255859375005,38.321386718750006],[21.3310546875,38.48730468749997],[21.303320312500034,38.373925781249966],[21.113183593750023,38.38466796875002],[20.768554687500057,38.874414062499966],[21.111621093750045,38.89628906249999],[21.11835937500001,39.029980468749955],[20.71337890625,39.03515625000003],[20.300781250000057,39.32709960937501],[20.19140625,39.545800781249966],[20.099414062500074,39.641259765624966],[20.001269531250074,39.70942382812501],[20.022558593750063,39.710693359375],[20.059765624999983,39.69912109375002],[20.13105468750004,39.66162109375003],[20.206835937500017,39.65351562499998],[20.382421875,39.802636718749994],[20.381640625000017,39.84179687500006],[20.311328125000074,39.95078125000006],[20.311132812500034,39.97944335937504],[20.338476562500006,39.991064453125006],[20.38369140625008,40.0171875],[20.408007812500074,40.049462890624994],[20.4560546875,40.065576171874994],[20.657421875000068,40.11738281249998],[20.881640625000017,40.467919921874994],[21.030859375000034,40.62246093750002],[20.95576171875001,40.775292968749994],[20.96425781250005,40.84990234374999],[21.575781250000034,40.86894531249996],[21.627539062500006,40.896337890625034],[21.77949218750004,40.95043945312506],[21.99335937500001,41.13095703125006],[22.18447265625005,41.15864257812501],[22.49355468750005,41.118505859375006],[22.603613281249977,41.14018554687499],[22.724804687500068,41.17851562499999],[22.78388671875004,41.33198242187498],[23.155957031250068,41.32207031249999],[23.239843750000034,41.38496093750001],[23.372070312500057,41.3896484375],[23.433398437500017,41.39873046874999],[23.53583984375001,41.38603515624999],[23.63515625000008,41.386767578125045],[24.011328124999977,41.460058593750034],[24.03291015625004,41.469091796875034],[24.05605468750005,41.527246093749966],[24.38671875,41.523535156250006],[24.487890625,41.55522460937499],[24.518261718750068,41.55253906249996],[24.773730468750045,41.356103515624994],[24.99355468750008,41.36499023437503],[25.133398437500063,41.31577148437506],[25.251171875000068,41.243554687499994],[25.923339843750057,41.311914062499966],[26.066406250000057,41.35068359375006],[26.135351562499977,41.3857421875],[26.155175781250023,41.43486328124999],[26.143554687500057,41.52153320312496],[26.085546875000063,41.704150390625045],[26.10742187499997,41.72568359374998],[26.20058593750005,41.74379882812502],[26.320898437500034,41.716552734375],[26.581347656250074,41.60126953125004],[26.62490234375008,41.401757812499994],[26.330664062499977,41.23876953125],[26.331054687500057,40.954492187499994],[26.03896484375008,40.726757812499955]]]]},"properties":{"name":"Greece","childNum":29}},{"geometry":{"type":"Polygon","coordinates":[[[-61.71552734375,12.012646484374997],[-61.714990234374994,12.18515625],[-61.60703125,12.223291015624994],[-61.71552734375,12.012646484374997]]]},"properties":{"name":"Grenada","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-46.266699218750006,60.781396484374994],[-46.381542968749955,60.66030273437502],[-46.7880859375,60.758398437500034],[-46.205224609374994,60.943505859374994],[-46.266699218750006,60.781396484374994]]],[[[-37.03125,65.53198242187497],[-37.23842773437494,65.60986328125003],[-37.047509765624966,65.722265625],[-37.03125,65.53198242187497]]],[[[-51.01367187499994,69.55249023437497],[-51.202050781249966,69.525],[-51.33886718749994,69.73203125000006],[-51.094580078125006,69.92416992187503],[-50.67900390624999,69.84853515625],[-51.01367187499994,69.55249023437497]]],[[[-52.73115234375001,69.94472656250005],[-52.0453125,69.8072265625],[-51.90019531249999,69.60478515625007],[-53.57841796874996,69.25664062500002],[-54.18271484374995,69.40351562500001],[-53.65830078124998,69.46513671875005],[-53.825,69.54033203124999],[-54.91914062499998,69.71362304687503],[-54.78789062499996,69.94985351562502],[-54.322607421875034,69.94189453125],[-54.83076171875001,70.13295898437502],[-54.37163085937499,70.31728515625],[-53.296728515625034,70.20537109375002],[-52.73115234375001,69.94472656250005]]],[[[-51.67514648437498,70.855224609375],[-52.11938476562497,70.87065429687502],[-52.10673828124999,70.96801757812497],[-51.67514648437498,70.855224609375]]],[[[-25.43232421875001,70.92133789062495],[-25.402246093749994,70.65268554687503],[-26.217871093749977,70.45405273437498],[-26.604687499999926,70.55336914062497],[-28.03525390624995,70.48681640625],[-27.61723632812496,70.91376953125001],[-26.621777343749955,70.87563476562497],[-25.81889648437499,71.04365234375001],[-25.43232421875001,70.92133789062495]]],[[[-53.53520507812493,71.04082031250005],[-53.9578125,71.12773437499999],[-53.58447265625003,71.29707031249995],[-53.53520507812493,71.04082031250005]]],[[[-55.01689453124999,72.79111328125003],[-55.56660156249998,72.56435546875002],[-56.214794921874955,72.71918945312495],[-55.01689453124999,72.79111328125003]]],[[[-18.000537109374932,75.40732421875003],[-17.391992187499937,75.03691406250007],[-18.670800781249966,75.00166015624998],[-18.856054687499977,75.31914062500002],[-18.000537109374932,75.40732421875003]]],[[[-18.58261718749995,76.042333984375],[-19.085351562499966,76.43037109375001],[-18.882470703124937,76.70380859375001],[-18.58261718749995,76.042333984375]]],[[[-71.667333984375,77.32529296874998],[-72.48955078124999,77.43164062499997],[-71.43344726562495,77.394384765625],[-71.667333984375,77.32529296874998]]],[[[-17.6125,79.82587890624995],[-18.662011718749966,79.72001953125005],[-19.13828125,79.85234375000002],[-17.98291015625,80.05517578125003],[-17.471386718749955,80.02871093749997],[-17.6125,79.82587890624995]]],[[[-44.86455078124999,82.08364257812502],[-46.75190429687501,82.34819335937502],[-47.27226562499996,82.65693359375001],[-46.399169921875,82.692138671875],[-44.91748046875003,82.48051757812505],[-44.86455078124999,82.08364257812502]]],[[[-29.952880859375,83.56484374999997],[-25.795068359374994,83.26098632812497],[-31.99267578125,83.0853515625],[-32.03271484374997,82.98344726562502],[-25.12338867187495,83.15961914062501],[-24.47031249999995,82.87739257812498],[-21.582519531249943,82.6341796875],[-23.118066406249966,82.32470703125003],[-29.57939453124996,82.16118164062502],[-29.887402343749983,82.05483398437502],[-29.543847656249994,81.93994140624997],[-27.839501953124966,82.04887695312505],[-25.148828124999966,82.001123046875],[-24.293066406249977,81.70097656250005],[-23.103710937499983,82.01181640625003],[-21.337988281249977,82.068701171875],[-21.230517578125017,81.60136718749999],[-23.11772460937499,80.77817382812498],[-19.62993164062499,81.63989257812503],[-17.456054687499943,81.397705078125],[-16.12070312499995,81.776611328125],[-14.241992187500017,81.81386718750005],[-12.434423828125006,81.68251953125002],[-11.430664062499972,81.45683593750005],[-13.126220703124972,81.08779296875],[-14.452343749999955,80.99311523437498],[-14.503564453124994,80.76328125000006],[-16.76059570312492,80.573388671875],[-15.937255859374972,80.42763671874997],[-16.48876953124997,80.25195312499997],[-18.070947265624994,80.17207031249995],[-19.429199218749943,80.25771484375],[-20.150146484375,80.01123046874997],[-18.99199218749996,79.17836914062502],[-21.133740234374926,78.65864257812501],[-21.729589843749977,77.70854492187499],[-20.862597656249932,77.91186523437503],[-19.490429687499983,77.71889648437497],[-19.46752929687503,77.56582031250005],[-20.162060546874926,77.68984375],[-20.680810546875023,77.61899414062503],[-20.23193359374997,77.36840820312497],[-19.30029296874997,77.22236328124995],[-18.442626953124943,77.259375],[-18.51030273437496,76.77817382812498],[-20.48671875,76.92080078125],[-21.614697265624926,76.68789062499997],[-22.18525390625001,76.79409179687502],[-22.609326171874983,76.70429687500004],[-21.877343749999966,76.57348632812503],[-21.488232421874926,76.271875],[-20.10361328124992,76.21909179687503],[-19.508984374999926,75.75751953124995],[-19.52636718750003,75.18022460937505],[-20.484960937500006,75.31425781249999],[-21.649316406249966,75.02343749999997],[-22.232861328124926,75.11972656249998],[-21.69511718749999,74.96445312500003],[-20.985791015624983,75.07436523437497],[-20.86157226562497,74.63593750000001],[-20.41708984374995,74.9751953125],[-19.98491210937499,74.9751953125],[-19.287011718750023,74.54638671875006],[-19.36914062499997,74.28403320312498],[-20.256445312499977,74.2828125],[-20.653125,74.13735351562502],[-21.954931640624977,74.24428710937497],[-21.942919921874932,74.56572265624999],[-22.32158203124999,74.30253906250002],[-22.134814453124932,73.99047851562503],[-20.36728515624992,73.8482421875],[-20.509667968749966,73.49287109375001],[-22.346875,73.26923828125001],[-23.23320312499999,73.39770507812497],[-24.157714843749943,73.76445312499999],[-24.67724609375,73.602197265625],[-25.521289062500017,73.85161132812499],[-24.79125976562497,73.51127929687502],[-26.062304687500017,73.25302734375],[-27.270410156250023,73.43627929687503],[-26.541845703125006,73.24897460937495],[-27.561621093750006,73.13847656250002],[-27.348046875000023,73.06782226562501],[-25.057031250000023,73.396484375],[-24.132666015625006,73.409375],[-22.036328124999955,72.91845703125006],[-22.29321289062497,72.11953125],[-24.06904296875001,72.49873046874998],[-24.629980468749977,73.03764648437499],[-26.657617187499966,72.71582031249997],[-24.81333007812492,72.90151367187497],[-24.65,72.58251953125],[-25.117871093749983,72.34697265625005],[-24.66684570312492,72.437353515625],[-21.959667968749955,71.74467773437502],[-22.479638671874937,71.38344726562497],[-22.417578125,71.24868164062505],[-22.29902343750001,71.43232421874998],[-21.75224609374999,71.47832031250002],[-21.522656249999926,70.52622070312503],[-22.38413085937492,70.46240234375],[-22.437011718749943,70.860009765625],[-22.690673828124943,70.43730468750002],[-23.327832031249983,70.45097656250007],[-23.97138671875001,70.64946289062499],[-24.562207031249926,71.22353515624997],[-25.885156249999966,71.571923828125],[-27.08720703124999,71.6265625],[-27.107031250000034,71.53266601562498],[-25.842724609374955,71.48017578124995],[-25.74223632812499,71.18359375],[-26.717919921874994,70.95048828125005],[-28.39843749999997,70.99291992187497],[-27.99218749999997,70.89521484374998],[-28.06987304687499,70.69902343750005],[-29.07207031249999,70.444970703125],[-26.621777343749955,70.46337890625],[-26.576806640625023,70.35708007812502],[-27.560839843749932,70.12446289062498],[-27.384179687500023,69.9916015625],[-27.027734374999966,70.20122070312499],[-25.529882812499977,70.35317382812502],[-23.66733398437495,70.139306640625],[-22.28447265624996,70.12583007812498],[-22.287060546874955,70.03339843749998],[-23.03364257812501,69.90083007812498],[-23.04956054687497,69.79272460937497],[-23.86572265624997,69.73671875000002],[-23.739404296874994,69.58862304687497],[-24.296679687500017,69.58554687500006],[-24.295556640624966,69.439306640625],[-25.188574218750006,69.26054687500002],[-25.092431640624937,69.16518554687502],[-25.697998046874943,68.889892578125],[-26.48291015624997,68.67592773437502],[-29.24951171874997,68.29877929687501],[-29.86850585937495,68.31157226562505],[-30.318115234375,68.19331054687501],[-30.72001953124999,68.25117187499998],[-30.610742187499994,68.11791992187503],[-30.97856445312499,68.06132812500005],[-32.32744140624999,68.43730468749999],[-32.16455078125,67.99111328125002],[-33.15698242187497,67.62670898437506],[-34.1982421875,66.65507812499999],[-35.18857421874995,66.25029296875002],[-35.86723632812502,66.44140624999997],[-35.630078124999926,66.13994140625002],[-36.37919921874996,65.830810546875],[-36.52724609375002,66.00771484375],[-36.665185546874966,65.79008789062507],[-37.06279296874996,65.87143554687503],[-37.410058593749994,65.65634765625],[-37.954785156249955,65.63359375000007],[-37.278710937499994,66.30439453124995],[-38.156640624999966,66.38559570312498],[-37.75234375000002,66.26152343750002],[-38.13994140625002,65.90351562499998],[-38.52036132812498,66.00966796875002],[-38.20336914062497,65.71171874999999],[-40.17353515624998,65.55615234375],[-39.57792968749996,65.34077148437501],[-39.937255859375,65.14160156250003],[-40.253125,65.04887695312505],[-41.08442382812501,65.10083007812497],[-40.966015624999955,64.86884765624995],[-40.655468749999926,64.91533203125002],[-40.18222656249998,64.47993164062495],[-40.78173828125,64.22177734375003],[-41.581005859374926,64.29833984375],[-41.03056640624996,64.12104492187504],[-40.61777343749998,64.13173828125],[-40.550390625000034,63.72524414062505],[-40.77519531249999,63.53364257812501],[-41.04873046875002,63.51381835937505],[-41.387890624999926,63.06186523437498],[-41.84448242187497,63.07026367187501],[-42.174511718749955,63.20878906249999],[-41.63447265624998,62.972460937500074],[-41.90898437499996,62.73710937499999],[-42.94165039062503,62.72021484375003],[-42.15297851562502,62.568457031250006],[-42.32148437499998,62.15273437500005],[-42.110205078125006,61.857226562500074],[-42.58530273437498,61.71748046875001],[-42.34736328125001,61.61743164062497],[-42.717041015625,60.767480468749994],[-43.04409179687502,60.523681640625],[-43.92270507812495,60.59536132812502],[-43.21298828124998,60.390673828125074],[-43.122900390625006,60.06123046875001],[-43.32011718749993,59.928125],[-43.95502929687498,60.025488281250006],[-43.65791015625001,59.85864257812503],[-43.90654296874996,59.815478515625045],[-44.11699218750002,59.83193359375002],[-44.06547851562499,59.92480468750003],[-44.412939453125006,59.922607421875],[-44.22436523437494,60.273535156250006],[-44.61328124999997,60.01665039062499],[-45.37924804687495,60.20292968750002],[-45.367773437500006,60.37294921875002],[-44.97470703124995,60.457226562499955],[-44.756738281249966,60.66459960937502],[-45.38051757812494,60.444921875],[-46.04663085937503,60.61572265625],[-46.141943359375006,60.776513671874994],[-45.87021484374998,61.21831054687502],[-46.87446289062501,60.81640625000003],[-48.180810546874966,60.76923828125001],[-47.77031249999999,60.99775390625001],[-48.386425781249926,61.004736328125034],[-48.42817382812501,61.18740234375002],[-48.92207031249998,61.27744140624998],[-49.28906249999997,61.58994140625006],[-49.380273437499994,61.89018554687502],[-48.82871093749998,62.0796875],[-49.62377929687494,61.99858398437499],[-49.553466796875,62.23271484374999],[-50.319238281249966,62.473193359375045],[-50.298730468749966,62.72197265625002],[-49.793115234374994,63.04462890625004],[-50.39008789062501,62.82202148437497],[-51.46884765624995,63.64228515625001],[-51.547509765624994,64.00610351562497],[-50.260693359374955,64.21425781250002],[-50.48662109374996,64.20888671875],[-50.43706054687499,64.31284179687503],[-51.58491210937498,64.10317382812502],[-51.70786132812498,64.205078125],[-51.403759765624926,64.46318359375002],[-50.49208984375002,64.69316406250005],[-50.00898437500001,64.44726562499997],[-50.12163085937493,64.703759765625],[-50.51699218750002,64.76650390625],[-50.96064453124998,65.20112304687498],[-50.721582031249966,64.79760742187503],[-51.22060546875002,64.62846679687502],[-51.25537109375,64.75810546875005],[-51.92260742187503,64.21875],[-52.259033203125,65.154931640625],[-52.537695312500034,65.32880859374998],[-51.61914062500003,65.71318359375002],[-51.091894531250006,65.77578125],[-51.7234375,65.723486328125],[-52.55126953125003,65.46137695312498],[-52.760937499999926,65.59082031249997],[-53.198974609375,65.59404296875002],[-53.106347656249966,65.97714843749998],[-53.39204101562498,66.04833984375],[-51.225,66.88154296875001],[-53.035791015624966,66.20141601562503],[-53.538769531249955,66.13935546874998],[-53.41875,66.64853515624998],[-53.038281249999955,66.82680664062497],[-52.38686523437502,66.88115234375005],[-53.44360351562503,66.924658203125],[-53.88442382812502,67.13554687499999],[-53.79858398437494,67.41816406250001],[-52.666455078124955,67.74970703124995],[-50.613476562499955,67.5279296875],[-51.171044921874966,67.693603515625],[-50.96884765624998,67.80664062500003],[-51.765234375000034,67.73784179687505],[-52.34482421874998,67.83691406249997],[-53.735205078125006,67.54902343750004],[-53.151562499999926,68.20776367187503],[-51.779980468749926,68.05673828124998],[-51.456494140624926,68.116064453125],[-51.21015625000001,68.419921875],[-52.19853515624993,68.22080078125],[-53.38315429687495,68.29736328124997],[-53.03945312500002,68.61088867187499],[-52.60458984374998,68.70874023437503],[-51.62314453124995,68.53481445312505],[-50.945703124999966,68.68266601562505],[-50.807714843750006,68.81699218749998],[-51.24941406250002,68.73994140625001],[-51.084863281249994,69.12827148437498],[-50.29736328124994,69.17060546874998],[-51.07695312499996,69.20947265625],[-50.291699218749955,70.01445312500005],[-52.254638671875,70.05893554687503],[-53.02304687499995,70.30190429687497],[-54.01445312499996,70.42167968750005],[-54.53076171875,70.69926757812502],[-54.16582031249999,70.82011718750005],[-52.801953124999955,70.7505859375],[-50.87236328124993,70.36489257812502],[-50.66328124999998,70.417578125],[-51.32285156249998,70.58876953124997],[-51.25659179687497,70.85268554687502],[-51.77431640625002,71.01044921875001],[-51.018945312499966,71.001318359375],[-51.37666015625001,71.11904296875],[-53.007568359375,71.17998046874999],[-52.89184570312497,71.457666015625],[-51.76992187500002,71.67172851562498],[-53.44008789062502,71.57900390625002],[-53.14453125000003,71.80742187500002],[-53.65214843749996,72.36264648437506],[-53.92773437499997,72.31879882812501],[-53.47758789062502,71.84995117187506],[-54.01992187500002,71.657861328125],[-53.96298828124995,71.45898437499997],[-54.6890625,71.36723632812505],[-55.59404296874999,71.55351562500005],[-55.315576171874994,72.11069335937498],[-54.84013671874996,72.35610351562497],[-55.581445312499994,72.178857421875],[-55.63583984374998,72.300439453125],[-55.29570312499996,72.35439453124997],[-55.60170898437494,72.453466796875],[-54.924951171874994,72.57197265624998],[-54.737939453124994,72.87250976562501],[-55.07309570312498,73.01513671875003],[-55.28891601562498,72.93320312500003],[-55.66855468749998,73.00791015624998],[-55.288281249999955,73.32709960937498],[-56.10405273437496,73.55815429687499],[-55.83828125,73.75971679687501],[-56.22539062499999,74.12910156249995],[-57.23056640624995,74.12529296875007],[-56.70634765625002,74.21918945312501],[-56.717675781249994,74.42924804687499],[-56.25546874999998,74.52680664062498],[-58.56552734374998,75.35273437500001],[-58.249658203124994,75.50668945312503],[-58.51621093749995,75.68906250000006],[-61.18823242187494,76.157861328125],[-63.29130859374996,76.35205078125003],[-63.84306640624999,76.21713867187498],[-64.307275390625,76.31650390624998],[-65.36992187499993,76.13056640625004],[-65.87573242187494,76.23833007812505],[-66.46577148437498,76.13916015625],[-66.99257812500002,76.21293945312502],[-66.67480468750003,75.977392578125],[-68.14873046875002,76.06704101562497],[-69.48408203125001,76.39916992187503],[-68.1142578125,76.65063476562503],[-69.67382812499994,76.73588867187507],[-69.69423828125002,76.98945312500004],[-70.613134765625,76.82182617187499],[-71.14145507812498,77.02866210937503],[-70.86284179687496,77.175439453125],[-68.97832031250002,77.19531250000006],[-68.13554687499999,77.37958984375001],[-66.38945312499999,77.28027343750003],[-66.69121093749999,77.68120117187502],[-67.68808593749995,77.523779296875],[-68.62153320312498,77.60185546875002],[-69.35136718749999,77.467138671875],[-70.53540039062497,77.699560546875],[-70.11445312500001,77.84135742187505],[-71.27163085937494,77.81313476562497],[-72.81806640624995,78.1943359375],[-72.47250976562498,78.48203125],[-71.65131835937493,78.62314453124998],[-68.99345703124999,78.857421875],[-68.37705078124998,79.037841796875],[-65.82553710937503,79.17373046874997],[-64.79228515624993,80.00063476562502],[-64.17915039062498,80.09926757812497],[-66.84365234374997,80.07622070312507],[-67.05063476562503,80.384521484375],[-64.51552734374997,81],[-63.72197265624993,81.05732421875001],[-63.028662109375006,80.88955078125002],[-62.90336914062496,81.21835937500003],[-61.43598632812498,81.13359375000002],[-60.842871093750034,81.85537109374997],[-59.28193359374998,81.88403320312503],[-56.615136718749994,81.362890625],[-59.26181640624998,82.00664062500005],[-54.54887695312496,82.35063476562505],[-53.671337890624955,82.16406249999997],[-53.55566406250003,81.65327148437501],[-53.022558593750034,82.32172851562504],[-50.894433593749994,81.89521484375001],[-49.54106445312496,81.91806640625003],[-50.93554687500003,82.38281250000003],[-50.03710937499994,82.472412109375],[-44.7294921875,81.77983398437505],[-44.23886718749998,82.3681640625],[-45.55654296875002,82.74702148437498],[-41.87646484375,82.680322265625],[-41.36962890625003,82.75],[-46.136816406250006,82.85883789062504],[-46.169042968750006,83.06386718749997],[-45.41459960937496,83.01767578124998],[-43.00927734375003,83.26459960937501],[-41.300146484375006,83.10078125000004],[-40.35683593750002,83.332177734375],[-38.15625,82.9986328125],[-38.74956054687496,83.37084960937497],[-37.72333984374998,83.49775390624998],[-29.952880859375,83.56484374999997]]]]},"properties":{"name":"Greenland","childNum":14}},{"geometry":{"type":"Polygon","coordinates":[[[-89.2328125,15.888671875],[-88.89404296875,15.890625],[-88.60336914062499,15.76416015625],[-88.5939453125,15.950292968749991],[-88.22832031249999,15.72900390625],[-88.271435546875,15.694873046875003],[-88.36455078124999,15.616015625],[-88.68447265625,15.360498046874994],[-88.96098632812499,15.152441406249991],[-89.142578125,15.072314453125003],[-89.22236328125,14.866064453124991],[-89.16220703124999,14.669238281250003],[-89.17177734375,14.606884765624997],[-89.28671875,14.529980468749997],[-89.36259765624999,14.416015625],[-89.5736328125,14.390087890624997],[-89.54716796874999,14.241259765625003],[-90.04814453124999,13.904052734375],[-90.09521484375,13.736523437499997],[-90.60693359375,13.929003906250003],[-91.37734375,13.990185546874997],[-92.23515624999999,14.54541015625],[-92.15854492187499,14.963574218749997],[-92.14423828125,15.001953125],[-92.09873046874999,15.026757812499994],[-92.07480468749999,15.07421875],[-92.187158203125,15.320898437499991],[-92.08212890624999,15.495556640624997],[-91.9572265625,15.703222656249991],[-91.736572265625,16.07016601562499],[-91.433984375,16.070458984374994],[-90.97958984374999,16.07080078125],[-90.70322265624999,16.071044921875],[-90.52197265625,16.071191406249994],[-90.44716796875,16.072705078124997],[-90.45986328125,16.162353515625],[-90.450146484375,16.261376953124994],[-90.4169921875,16.351318359375],[-90.4169921875,16.39101562499999],[-90.47109375,16.43955078124999],[-90.57578125,16.467822265625003],[-90.63408203124999,16.5107421875],[-90.634375,16.565136718749997],[-90.65996093749999,16.630908203125003],[-90.710693359375,16.70810546874999],[-90.975830078125,16.867822265624994],[-91.409619140625,17.255859375],[-91.1955078125,17.254101562499997],[-90.99296874999999,17.25244140625],[-90.98916015625,17.81640625],[-89.16147460937499,17.81484375],[-89.2328125,15.888671875]]]},"properties":{"name":"Guatemala","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[144.74179687500003,13.25927734375],[144.64931640625002,13.4287109375],[144.87539062500002,13.614648437499994],[144.94082031250002,13.5703125],[144.74179687500003,13.25927734375]]]},"properties":{"name":"Guam","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-57.194775390625,5.5484375],[-57.3185546875,5.335351562499994],[-57.20981445312499,5.195410156249991],[-57.331005859375,5.020166015624994],[-57.711083984374994,4.991064453124991],[-57.91704101562499,4.820410156249991],[-57.84599609374999,4.668164062499997],[-58.05429687499999,4.101660156249991],[-57.646728515625,3.39453125],[-57.303662109375,3.377099609374994],[-57.19736328124999,2.853271484375],[-56.704345703125,2.036474609374991],[-56.4828125,1.942138671875],[-56.96953124999999,1.91640625],[-57.03759765625,1.936474609374997],[-57.092675781249994,2.005810546874997],[-57.118896484375,2.013964843749989],[-57.31748046874999,1.963476562499991],[-57.41269531249999,1.908935546875],[-57.500439453125,1.77382812499999],[-57.54575195312499,1.72607421875],[-57.59443359375,1.7041015625],[-57.795654296875,1.7],[-57.8734375,1.667285156249989],[-57.9828125,1.6484375],[-58.03466796875,1.520263671875],[-58.34067382812499,1.587548828124994],[-58.38037109375,1.530224609374997],[-58.39580078124999,1.481738281249989],[-58.5060546875,1.438671875],[-58.511865234374994,1.28466796875],[-58.68461914062499,1.281054687499989],[-58.73032226562499,1.247509765624997],[-58.78720703124999,1.20849609375],[-58.82177734375,1.201220703124989],[-59.231201171875,1.376025390624989],[-59.53569335937499,1.7],[-59.66660156249999,1.746289062499997],[-59.66850585937499,1.842333984374989],[-59.74072265625,1.874169921874994],[-59.75620117187499,1.900634765625],[-59.75522460937499,2.274121093749997],[-59.8896484375,2.362939453124994],[-59.9943359375,2.689990234374989],[-59.854394531249994,3.5875],[-59.55112304687499,3.933544921874997],[-59.557763671874994,3.960009765624989],[-59.62021484374999,4.023144531249997],[-59.73857421874999,4.226757812499997],[-59.69970703125,4.353515625],[-60.1486328125,4.533251953124989],[-59.990673828125,5.082861328124991],[-60.142041015625,5.238818359374989],[-60.241650390625,5.257958984374994],[-60.335205078125,5.199316406249991],[-60.45952148437499,5.188085937499991],[-60.6513671875,5.221142578124997],[-60.742138671875,5.202050781249994],[-61.37680664062499,5.906982421875],[-61.3908203125,5.938769531249989],[-61.303125,6.049511718749997],[-61.22495117187499,6.129199218749989],[-61.15947265624999,6.174414062499991],[-61.12871093749999,6.214306640624997],[-61.152294921875,6.385107421874991],[-61.151025390624994,6.446533203125],[-61.181591796875,6.513378906249997],[-61.20361328125,6.58837890625],[-61.14560546874999,6.69453125],[-60.717919921874994,6.768310546875],[-60.35209960937499,7.002880859374997],[-60.32207031249999,7.092041015625],[-60.32548828124999,7.133984375],[-60.34506835937499,7.15],[-60.46494140624999,7.166552734374989],[-60.523193359375,7.143701171874994],[-60.583203125,7.156201171874997],[-60.63330078125,7.211083984374994],[-60.718652343749994,7.535937499999989],[-60.513623046875,7.813183593749997],[-60.032421875,8.053564453124991],[-59.99072265625,8.162011718749994],[-59.96484375,8.191601562499997],[-59.849072265625,8.248681640624994],[-59.83164062499999,8.305957031249989],[-60.017529296875,8.54931640625],[-59.20024414062499,8.07460937499999],[-58.51108398437499,7.39804687499999],[-58.48056640624999,7.038134765624989],[-58.67294921874999,6.390771484374994],[-58.414990234375,6.85117187499999],[-57.982568359374994,6.785888671875],[-57.54013671874999,6.33154296875],[-57.2275390625,6.178417968749997],[-57.194775390625,5.5484375]]]},"properties":{"name":"Guyana","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[73.70742187500002,-53.13710937499999],[73.46513671875002,-53.184179687500006],[73.25117187500001,-52.97578125000001],[73.83779296875002,-53.11279296875],[73.70742187500002,-53.13710937499999]]]},"properties":{"name":"Heard I. and McDonald Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-83.635498046875,14.876416015624997],[-84.53764648437496,14.633398437499963],[-84.64594726562498,14.661083984375011],[-84.86044921874998,14.809765625000011],[-84.98515624999999,14.752441406249972],[-85.059375,14.582958984374997],[-85.20834960937498,14.311816406250003],[-85.73393554687496,13.85869140625006],[-85.75341796875,13.852050781250028],[-85.78671874999995,13.844433593749997],[-85.98378906249997,13.965673828125006],[-86.04038085937503,14.050146484374977],[-86.33173828124995,13.770068359375031],[-86.37695312500003,13.755664062500031],[-86.61025390624997,13.774853515625026],[-86.73364257812494,13.763476562500017],[-86.75898437499995,13.746142578125045],[-86.77060546875003,13.698730468749972],[-86.763525390625,13.635253906250014],[-86.72958984375,13.4072265625],[-86.710693359375,13.31337890624998],[-86.72929687499996,13.284375],[-86.79213867187497,13.279785156249972],[-86.87353515624994,13.266503906250023],[-86.918212890625,13.223583984374983],[-87.00932617187499,13.007812499999986],[-87.0591796875,12.991455078125028],[-87.337255859375,12.979248046875028],[-87.48911132812503,13.352929687500051],[-87.814208984375,13.399169921875057],[-87.781884765625,13.521386718749994],[-87.71533203125003,13.812695312500011],[-87.73144531250003,13.841064453125014],[-87.80224609374997,13.889990234375034],[-87.89199218749997,13.894970703124983],[-87.99101562499996,13.879638671874972],[-88.15102539062497,13.987353515624974],[-88.44912109374994,13.850976562499994],[-88.48266601562503,13.854248046875043],[-88.49765624999998,13.904541015624986],[-88.50434570312501,13.964208984374963],[-88.51254882812498,13.97895507812504],[-89.12050781249994,14.370214843749991],[-89.36259765624996,14.416015625],[-89.17177734375,14.606884765624983],[-89.16220703125,14.669238281249989],[-89.22236328125001,14.86606445312502],[-89.142578125,15.072314453125031],[-88.96098632812496,15.15244140625002],[-88.68447265625002,15.360498046875037],[-88.36455078124996,15.616015625000045],[-88.27143554687498,15.694873046875045],[-88.22832031249999,15.729003906249972],[-88.131103515625,15.701025390625034],[-87.87495117187495,15.879345703124955],[-86.35664062499998,15.783203125],[-85.93627929687497,15.953417968750045],[-85.98564453124999,16.02416992187497],[-85.48369140624996,15.899511718749977],[-84.97373046874998,15.989892578124994],[-84.55966796875,15.802001953125],[-84.26142578124998,15.822607421875034],[-83.765283203125,15.405468750000054],[-83.972802734375,15.519628906250034],[-84.11132812499997,15.492431640625],[-84.09506835937503,15.400927734375017],[-83.92744140624998,15.394042968750028],[-83.76044921874998,15.220361328124994],[-83.49794921874997,15.222119140624997],[-83.64638671875,15.368408203125043],[-83.36918945312493,15.239990234375],[-83.29086914062498,15.078906250000045],[-83.2255859375,15.042285156250045],[-83.15751953124999,14.993066406249966],[-83.41503906249994,15.008056640625],[-83.5365234375,14.977001953124983],[-83.635498046875,14.876416015624997]]]},"properties":{"name":"Honduras","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[17.60781250000005,42.76904296875],[17.744238281250063,42.70034179687505],[17.34414062500008,42.790380859375006],[17.60781250000005,42.76904296875]]],[[[16.650683593750017,42.99658203125],[17.188281250000045,42.917041015625045],[16.850683593750006,42.8955078125],[16.650683593750017,42.99658203125]]],[[[17.667578125000063,42.897119140624994],[18.436328125000017,42.559716796874994],[18.517480468750023,42.43291015624999],[17.823828125,42.79741210937502],[17.045410156250057,43.014892578125],[17.667578125000063,42.897119140624994]]],[[[16.785253906250006,43.270654296874966],[16.490332031250034,43.28618164062502],[16.44892578125004,43.38706054687506],[16.89130859375001,43.314648437499955],[16.785253906250006,43.270654296874966]]],[[[15.371386718750074,43.973828124999955],[15.437207031250068,43.899511718750006],[15.270019531250028,44.01074218750003],[15.371386718750074,43.973828124999955]]],[[[14.488085937500074,44.66005859375005],[14.31240234375008,44.90039062499997],[14.33125,45.16499023437498],[14.488085937500074,44.66005859375005]]],[[[14.810253906250068,44.97705078124997],[14.45039062500004,45.079199218750006],[14.571093750000017,45.224755859374994],[14.810253906250068,44.97705078124997]]],[[[18.905371093750006,45.931738281250034],[18.839062499999983,45.83574218750002],[19.064257812500045,45.51499023437506],[19.004687500000074,45.39951171875006],[19.4,45.2125],[19.062890625000023,45.13720703125],[19.007128906250045,44.86918945312502],[18.83642578125,44.883251953124955],[18.66259765625,45.07744140624999],[17.812792968750074,45.078125],[16.918652343749983,45.27656249999998],[16.53066406250008,45.21669921875002],[16.29335937500005,45.00883789062496],[16.028320312500057,45.18959960937502],[15.788085937500057,45.17895507812497],[15.736621093750045,44.76582031250001],[16.10341796875008,44.52099609375006],[16.300097656250017,44.12451171875],[17.27382812500005,43.44575195312501],[17.650488281250063,43.006591796875],[17.585156250000068,42.93837890625005],[16.903125,43.392431640625006],[16.393945312500023,43.54335937500002],[15.985546875000068,43.519775390625],[15.185839843750017,44.17211914062503],[15.122949218749994,44.256787109374955],[15.470996093750045,44.27197265625003],[14.981347656250023,44.60292968750005],[14.854589843750034,45.08100585937501],[14.550488281249983,45.297705078125006],[14.31269531250004,45.33779296875002],[13.86074218750008,44.83740234375003],[13.517187500000063,45.481787109375034],[13.878710937500017,45.428369140624994],[14.369921875000074,45.48144531250006],[14.427343750000034,45.50576171875002],[14.56884765625,45.65722656249997],[14.591796875000057,45.65126953125002],[14.649511718750006,45.57148437500001],[14.793066406250034,45.47822265625001],[14.95458984375,45.499902343749994],[15.110449218750034,45.450781250000034],[15.242089843750023,45.44140624999997],[15.339453125000063,45.46704101562506],[15.326660156250028,45.502294921875034],[15.291210937500011,45.541552734375045],[15.283593750000051,45.5796875],[15.35371093750004,45.659912109375],[15.27705078125004,45.73261718749998],[15.652148437500074,45.86215820312498],[15.675585937500045,45.98369140624996],[15.666210937500011,46.04848632812502],[15.596875,46.10922851562506],[15.592578125000017,46.139990234375006],[15.608984374999977,46.171923828125045],[16.1064453125,46.382226562499994],[16.32119140625005,46.53461914062504],[16.42763671875005,46.5244140625],[16.516210937499977,46.499902343749966],[16.569921875,46.48500976562505],[16.748046875000057,46.41640625000002],[16.87148437500008,46.33930664062504],[17.310644531250006,45.99614257812502],[17.80712890625,45.79042968750002],[18.358300781250023,45.75302734375006],[18.533593750000023,45.79614257812503],[18.56464843750004,45.81328124999999],[18.666015625,45.90747070312497],[18.905371093750006,45.931738281250034]]]]},"properties":{"name":"Croatia","childNum":8}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-72.80458984374997,18.777685546875063],[-72.82221679687501,18.707128906249977],[-73.07797851562498,18.790917968749994],[-73.27641601562499,18.95405273437501],[-72.80458984374997,18.777685546875063]]],[[[-71.647216796875,19.195947265624994],[-71.80712890624997,18.987011718749983],[-71.733642578125,18.85639648437501],[-71.72705078125,18.80322265625003],[-71.74321289062502,18.73291015625],[-71.86650390624999,18.61416015625005],[-71.98686523437499,18.61035156249997],[-72.000390625,18.59790039062503],[-71.94038085937493,18.51259765625005],[-71.87255859374997,18.416210937499955],[-71.76191406249998,18.34130859374997],[-71.73725585937495,18.27080078124999],[-71.76831054687497,18.039160156250063],[-71.85292968749997,18.119140625],[-71.94609375,18.186083984375045],[-72.05986328124993,18.228564453125017],[-72.87666015624998,18.151757812499994],[-73.38515625000002,18.251171874999983],[-73.747314453125,18.190234375000017],[-73.88496093749998,18.041894531249994],[-74.478125,18.45],[-74.3875,18.624707031249983],[-74.22773437499998,18.662695312499977],[-72.78935546874996,18.434814453125],[-72.37607421874998,18.57446289062503],[-72.34765624999994,18.674951171874994],[-72.81108398437496,19.071582031250074],[-72.70322265625,19.441064453125023],[-73.43837890624994,19.722119140624983],[-73.21777343750003,19.88369140625005],[-72.63701171875002,19.90087890625],[-72.21982421875003,19.744628906250057],[-71.834716796875,19.696728515624983],[-71.77924804687498,19.718164062499994],[-71.75742187499998,19.68818359375001],[-71.71147460937493,19.486572265625057],[-71.74648437499997,19.28583984375001],[-71.647216796875,19.195947265624994]]]]},"properties":{"name":"Haiti","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[22.1318359375,48.405322265624996],[22.253710937500017,48.407373046874994],[22.582421875000023,48.134033203125],[22.769140625,48.109619140625],[22.87666015625001,47.947265625],[21.99970703125001,47.505029296874994],[21.121679687500006,46.282421875],[20.76025390625,46.246240234374994],[20.613671875000023,46.13349609375],[20.508105468750017,46.166943359375],[20.28095703125001,46.1330078125],[20.241796875,46.10859375],[20.21015625000001,46.126025390624996],[20.161425781250017,46.141894531249996],[19.93408203125,46.161474609375],[19.84443359375001,46.145898437499994],[19.61347656250001,46.169189453125],[19.421289062500023,46.064453125],[18.666015625,45.907470703125],[18.56464843750001,45.81328125],[18.533593750000023,45.796142578125],[18.358300781250023,45.75302734375],[17.80712890625,45.790429687499994],[17.310644531250006,45.996142578124996],[16.871484375000023,46.339306640625],[16.748046875,46.41640625],[16.569921875,46.485009765624994],[16.516210937500006,46.499902343749994],[16.283593750000023,46.857275390625],[16.093066406250017,46.86328125],[16.453417968750017,47.006787109375],[16.44287109375,47.39951171875],[16.676562500000017,47.536035156249994],[16.421289062500023,47.674462890624994],[17.06660156250001,47.707568359374996],[17.147363281250023,48.00595703125],[17.76191406250001,47.770166015624994],[18.72421875,47.787158203124996],[18.791894531250023,48.000292968749996],[19.625390625000023,48.223095703125],[19.95039062500001,48.146630859374994],[20.333789062500017,48.295556640624994],[20.490039062500017,48.526904296874996],[21.45136718750001,48.55224609375],[21.766992187500023,48.3380859375],[22.1318359375,48.405322265624996]]]},"properties":{"name":"Hungary","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[122.9489257812501,-10.90927734375002],[122.82617187500003,-10.899121093749983],[122.84570312500003,-10.761816406249991],[123.37109375000003,-10.474902343749989],[123.41816406250004,-10.651269531250037],[122.9489257812501,-10.90927734375002]]],[[[121.8830078125001,-10.590332031249957],[121.70468750000006,-10.5556640625],[121.99833984375002,-10.446972656249983],[121.8830078125001,-10.590332031249957]]],[[[123.41621093750004,-10.302636718749966],[123.3255859375,-10.264160156249943],[123.45878906250002,-10.13994140624996],[123.41621093750004,-10.302636718749966]]],[[[120.0125,-9.374707031250026],[120.78447265625002,-9.95703125],[120.83261718750006,-10.0375],[120.69804687500002,-10.206640624999949],[120.4391601562501,-10.294042968749991],[120.14482421875002,-10.200097656249952],[119.60107421874997,-9.773535156250006],[119.08544921875003,-9.706933593750023],[118.95878906250002,-9.519335937500003],[119.29589843749997,-9.3671875],[119.9420898437501,-9.301464843750026],[120.0125,-9.374707031250026]]],[[[125.06816406250002,-9.511914062499997],[124.42753906250002,-10.14863281250004],[123.7472656250001,-10.347167968749986],[123.60478515625002,-10.270117187500006],[123.71640625000012,-10.078613281249986],[123.5892578125,-9.966796875000028],[123.709375,-9.61484375],[124.0363281250001,-9.341601562500031],[124.28232421875012,-9.427929687500026],[124.44443359375012,-9.190332031250023],[124.92226562500005,-8.942480468749977],[124.93681640625007,-9.053417968750026],[125.14902343750012,-9.042578125000034],[125.10048828125,-9.189843750000023],[124.96015625000004,-9.213769531250009],[125.06816406250002,-9.511914062499997]]],[[[115.60996093750012,-8.769824218749974],[115.48046875000003,-8.715429687500006],[115.56142578125,-8.669921874999972],[115.60996093750012,-8.769824218749974]]],[[[122.97734375000002,-8.54521484374996],[122.88779296875006,-8.587304687500009],[123.01054687500002,-8.448339843750034],[123.153125,-8.475781250000026],[122.97734375000002,-8.54521484374996]]],[[[119.46406250000004,-8.741015624999974],[119.38554687500002,-8.736035156250026],[119.4464843750001,-8.429199218749957],[119.55722656250012,-8.518847656250003],[119.46406250000004,-8.741015624999974]]],[[[123.31748046875012,-8.354785156249974],[123.02500000000012,-8.395507812500014],[123.21708984375002,-8.235449218750006],[123.33603515625006,-8.269042968750014],[123.31748046875012,-8.354785156249974]]],[[[116.64082031250004,-8.613867187500006],[116.51425781250012,-8.820996093750011],[116.58652343750012,-8.886132812499966],[116.23935546875006,-8.912109375000014],[115.85732421875005,-8.787890625000017],[116.07646484375002,-8.744921874999974],[116.06113281250006,-8.437402343750023],[116.4015625000001,-8.204199218750034],[116.7189453125001,-8.336035156249977],[116.64082031250004,-8.613867187500006]]],[[[124.28662109375003,-8.32949218749998],[124.14667968750004,-8.531445312499997],[123.92773437500003,-8.448925781249969],[124.23955078125002,-8.20341796874996],[124.28662109375003,-8.32949218749998]]],[[[123.92480468750003,-8.2724609375],[123.55302734375007,-8.566796875],[123.23007812500006,-8.530664062500023],[123.47587890625007,-8.322265625000014],[123.39121093750012,-8.280468750000026],[123.77597656250006,-8.190429687499986],[123.92480468750003,-8.2724609375]]],[[[138.89511718750006,-8.388671874999957],[138.56337890625,-8.30908203125],[138.79619140625007,-8.173632812500017],[138.89511718750006,-8.388671874999957]]],[[[117.55634765625004,-8.367285156249949],[117.49052734375007,-8.183398437499974],[117.66503906249997,-8.148242187500003],[117.55634765625004,-8.367285156249949]]],[[[124.5755859375,-8.140820312499997],[125.05029296874997,-8.179589843749994],[125.13173828125,-8.326464843749989],[124.38066406250002,-8.41513671875002],[124.43066406249997,-8.18320312500002],[124.5755859375,-8.140820312499997]]],[[[127.8234375000001,-8.098828124999969],[128.11923828125012,-8.17070312499996],[128.02353515625006,-8.255371093749972],[127.82089843750012,-8.190234375000031],[127.8234375000001,-8.098828124999969]]],[[[122.7829101562501,-8.61171875],[121.65136718749997,-8.898730468749946],[121.41464843750006,-8.81484375],[121.32832031250004,-8.916894531250009],[121.03525390625012,-8.935449218749966],[120.55048828125004,-8.80185546875002],[119.909375,-8.857617187500011],[119.80791015625002,-8.697656250000023],[119.87480468750007,-8.419824218749994],[120.61025390625005,-8.24042968750004],[121.44453125000004,-8.57783203125004],[121.96650390625004,-8.455175781250006],[122.32324218749997,-8.628320312500023],[122.85048828125,-8.304394531250011],[122.91914062500004,-8.221875],[122.75859375000002,-8.185937499999952],[122.91699218749997,-8.105566406250006],[123.00595703125006,-8.329101562499986],[122.7829101562501,-8.61171875]]],[[[130.86220703125,-8.31875],[130.77519531250002,-8.34990234374996],[131.02011718750012,-8.091308593749943],[131.17636718750006,-8.130761718749994],[130.86220703125,-8.31875]]],[[[118.24238281250004,-8.317773437499994],[118.61191406250006,-8.28066406249998],[118.71386718749997,-8.41494140624998],[118.926171875,-8.297656249999974],[119.12968750000002,-8.668164062499969],[118.74589843750002,-8.735449218749991],[118.83261718750012,-8.833398437499966],[118.47861328125012,-8.856445312499957],[118.37890625000003,-8.674609375000031],[118.18994140624997,-8.840527343749997],[117.06132812500002,-9.099023437499994],[116.78847656250005,-9.006347656250028],[116.83505859375012,-8.532421875000026],[117.16484375000007,-8.367187500000014],[117.56708984375004,-8.426367187499991],[117.80605468750005,-8.711132812500011],[117.96953125000002,-8.728027343749986],[118.23486328124997,-8.591894531249963],[117.81484375000005,-8.342089843749974],[117.7552734375,-8.149511718749991],[118.11748046875007,-8.12226562500004],[118.24238281250004,-8.317773437499994]]],[[[115.44785156250012,-8.155175781249994],[115.70429687500004,-8.40712890624998],[115.14492187500005,-8.849023437500037],[115.05507812500005,-8.573046874999946],[114.61318359375,-8.37832031249998],[114.46757812500007,-8.166308593749946],[114.93847656249997,-8.18710937500002],[115.15400390625004,-8.065722656249974],[115.44785156250012,-8.155175781249994]]],[[[129.83886718749997,-7.954589843749986],[129.71347656250012,-8.04072265625004],[129.60898437500006,-7.803417968750011],[129.81298828124997,-7.819726562499952],[129.83886718749997,-7.954589843749986]]],[[[126.80097656250004,-7.667871093750009],[126.4720703125,-7.950390625000011],[126.04003906250003,-7.885839843750006],[125.79824218750005,-7.984570312499969],[125.97529296875004,-7.663378906249989],[126.21367187500002,-7.706738281250026],[126.60957031250004,-7.571777343749972],[126.80097656250004,-7.667871093750009]]],[[[127.41943359375003,-7.623046875000028],[127.37070312500012,-7.512792968749949],[127.47519531250012,-7.531054687500031],[127.41943359375003,-7.623046875000028]]],[[[138.53535156250004,-8.273632812499969],[138.2962890625,-8.405175781250037],[137.65039062499997,-8.386132812499966],[138.08183593750002,-7.566210937500003],[138.29550781250012,-7.4384765625],[138.76982421875002,-7.390429687499974],[138.98906250000002,-7.696093749999989],[138.53535156250004,-8.273632812499969]]],[[[131.3255859375,-7.999511718749986],[131.11376953125003,-7.997363281249989],[131.13779296875012,-7.684863281250017],[131.64345703125,-7.11279296875],[131.73613281250007,-7.197070312500017],[131.64384765625002,-7.266894531249946],[131.62441406250005,-7.626171874999955],[131.3255859375,-7.999511718749986]]],[[[131.98203125000006,-7.202050781249966],[131.75078125000002,-7.116796875],[131.92226562500005,-7.104492187499986],[131.98203125000006,-7.202050781249966]]],[[[128.6701171875001,-7.183300781249969],[128.52978515625003,-7.134570312499989],[128.62773437500007,-7.06875],[128.6701171875001,-7.183300781249969]]],[[[120.77441406250003,-7.118945312500003],[120.64082031250004,-7.115820312499991],[120.63339843750006,-7.018261718750011],[120.77441406250003,-7.118945312500003]]],[[[113.84453125000007,-7.105371093749994],[113.12695312499997,-7.224121093750028],[112.72587890625007,-7.072753906250014],[112.86806640625,-6.899902343749972],[113.06738281250003,-6.879980468749991],[113.97470703125012,-6.873046875],[114.0736328125,-6.960156249999983],[113.84453125000007,-7.105371093749994]]],[[[115.37705078125006,-6.97080078125002],[115.22031250000012,-6.952539062500037],[115.24052734375007,-6.861230468749994],[115.54609375000004,-6.938671874999955],[115.37705078125006,-6.97080078125002]]],[[[105.25283203125005,-6.640429687499946],[105.12138671875007,-6.614941406249997],[105.26054687500002,-6.523925781250014],[105.25283203125005,-6.640429687499946]]],[[[134.53681640625004,-6.442285156249994],[134.32275390624997,-6.84873046875002],[134.09082031249997,-6.833789062500003],[134.10703125000006,-6.471582031250009],[134.19462890625007,-6.459765625],[134.11464843750005,-6.190820312500009],[134.53681640625004,-6.442285156249994]]],[[[107.37392578125005,-6.007617187499989],[107.66679687500002,-6.215820312499957],[108.33017578125012,-6.286035156249966],[108.67783203125006,-6.790527343749972],[110.42626953124997,-6.947265625000028],[110.83476562500002,-6.424218749999952],[110.97226562500012,-6.435644531249977],[111.18154296875005,-6.686718749999969],[111.54033203125002,-6.648242187500031],[112.0873046875,-6.89335937499996],[112.53925781250004,-6.926464843749955],[112.64873046875007,-7.221289062499977],[112.7943359375,-7.304492187499974],[112.79453125000012,-7.55244140625004],[113.01357421875005,-7.657714843749986],[113.49765625000006,-7.723828124999955],[114.07070312500005,-7.633007812500011],[114.40927734375012,-7.79248046875],[114.38691406250004,-8.405175781250037],[114.58378906250002,-8.769628906250034],[113.25332031250005,-8.286718749999963],[112.67880859375006,-8.409179687499957],[111.50996093750004,-8.30507812499998],[110.60722656250002,-8.149414062499972],[109.28164062500005,-7.704882812500003],[108.74121093749997,-7.667089843750034],[108.45175781250006,-7.79697265625002],[107.91748046875003,-7.724121093750014],[107.28496093750007,-7.471679687500014],[106.45527343750004,-7.368652343749986],[106.51972656250004,-7.053710937499943],[106.19824218749997,-6.927832031249977],[105.25546875000012,-6.835253906250031],[105.37089843750002,-6.664355468750031],[105.48369140625007,-6.781542968750017],[105.65507812500002,-6.469531249999946],[105.78691406250002,-6.456933593749966],[105.86826171875006,-6.11640625000004],[106.075,-5.914160156249963],[106.82519531249997,-6.098242187499977],[107.0462890625,-5.90419921874998],[107.37392578125005,-6.007617187499989]]],[[[120.52832031249997,-6.2984375],[120.48730468749997,-6.464843749999972],[120.47734375000007,-5.775292968750009],[120.52832031249997,-6.2984375]]],[[[112.7194335937501,-5.81103515625],[112.58603515625006,-5.803613281249994],[112.69003906250006,-5.726171875000034],[112.7194335937501,-5.81103515625]]],[[[132.80712890625003,-5.850781250000011],[132.68144531250002,-5.91259765625],[132.63017578125002,-5.60703125],[132.80712890625003,-5.850781250000011]]],[[[134.74697265625,-5.707031249999957],[134.71416015625007,-6.29511718750004],[134.44111328125004,-6.334863281249966],[134.15488281250006,-6.06289062499998],[134.3019531250001,-6.009765624999986],[134.34306640625002,-5.833007812499943],[134.20537109375002,-5.707226562499997],[134.34130859375003,-5.712890624999986],[134.57080078124997,-5.42734375],[134.74697265625,-5.707031249999957]]],[[[132.92626953124997,-5.902050781249983],[132.84501953125002,-5.987988281249997],[133.13847656250002,-5.317871093749986],[133.11962890625003,-5.575976562499989],[132.92626953124997,-5.902050781249983]]],[[[102.36718750000003,-5.478710937499983],[102.1107421875,-5.32255859374996],[102.3717773437501,-5.366406250000011],[102.36718750000003,-5.478710937499983]]],[[[123.62675781250007,-5.271582031249963],[123.58261718750006,-5.36738281250004],[123.54277343750002,-5.271093749999963],[123.62675781250007,-5.271582031249963]]],[[[122.04296874999997,-5.437988281250028],[121.80849609375,-5.256152343750017],[121.91367187500012,-5.072265624999957],[122.04101562500003,-5.158789062499991],[122.04296874999997,-5.437988281250028]]],[[[122.64511718750012,-5.26943359374998],[122.5638671875,-5.3875],[122.28310546875,-5.319531249999969],[122.39628906250002,-5.069824218749986],[122.36894531250007,-4.767187499999977],[122.70195312500002,-4.61865234375],[122.75986328125012,-4.933886718750003],[122.61406250000007,-5.138671874999986],[122.64511718750012,-5.26943359374998]]],[[[123.17978515625006,-4.551171875000023],[123.195703125,-4.82265625],[123.05517578124997,-4.748242187500026],[122.97167968750003,-5.138476562500031],[123.18730468750007,-5.333007812499957],[122.96875,-5.405761718749943],[122.81210937500012,-5.671289062499952],[122.64501953124997,-5.663378906250031],[122.58642578124997,-5.488867187500006],[122.76650390625005,-5.210156249999983],[122.85332031250007,-4.618359375000026],[123.074609375,-4.38691406250004],[123.17978515625006,-4.551171875000023]]],[[[133.57080078124997,-4.245898437500003],[133.621875,-4.299316406249957],[133.32089843750006,-4.111035156249969],[133.57080078124997,-4.245898437500003]]],[[[123.2423828125001,-4.112988281250011],[123.07617187499997,-4.227148437499991],[122.96904296875002,-4.029980468749969],[123.21191406250003,-3.997558593750028],[123.2423828125001,-4.112988281250011]]],[[[128.56259765625012,-3.58544921875],[128.39160156250003,-3.637890625000026],[128.45156250000005,-3.514746093749991],[128.56259765625012,-3.58544921875]]],[[[128.2755859375001,-3.67460937499996],[127.97802734374997,-3.770996093749972],[127.925,-3.69931640625002],[128.32910156249997,-3.51591796874996],[128.2755859375001,-3.67460937499996]]],[[[116.42412109375007,-3.464453124999963],[116.38779296875012,-3.636718749999972],[116.3265625,-3.539062499999972],[116.42412109375007,-3.464453124999963]]],[[[116.30332031250006,-3.868164062499957],[116.05878906250004,-4.006933593749991],[116.06357421875006,-3.457910156249952],[116.26972656250004,-3.251074218750006],[116.30332031250006,-3.868164062499957]]],[[[126.86113281250007,-3.087890624999986],[127.22734375000007,-3.391015625],[127.22958984375006,-3.633007812500011],[126.68632812500007,-3.823632812500037],[126.21455078125004,-3.605175781250026],[126.05654296875,-3.420996093749991],[126.08828125,-3.105468750000014],[126.86113281250007,-3.087890624999986]]],[[[106.88642578125004,-3.005273437500023],[106.7428710937501,-2.932812500000011],[106.91064453124997,-2.93398437499998],[106.88642578125004,-3.005273437500023]]],[[[129.75468750000007,-2.865820312500034],[130.3791015625001,-2.989355468749977],[130.56992187500006,-3.130859375000028],[130.85996093750006,-3.570312500000028],[130.805078125,-3.85771484374996],[129.844140625,-3.327148437499957],[129.51171875000003,-3.32851562499998],[129.46767578125005,-3.453222656249977],[128.8625,-3.234960937500006],[128.51660156249997,-3.449121093750037],[128.13203125000004,-3.157421875000026],[127.90234374999997,-3.496289062499955],[127.87792968749997,-3.222070312499966],[128.19853515625002,-2.865917968749969],[128.99111328125,-2.82851562499998],[129.17441406250006,-2.933496093749966],[129.48417968750002,-2.785742187499977],[129.75468750000007,-2.865820312500034]]],[[[100.42509765625007,-3.182910156249974],[100.46513671875007,-3.32851562499998],[100.20429687500004,-2.98681640625],[100.19853515625002,-2.785546875000023],[100.45458984375003,-3.001953124999972],[100.42509765625007,-3.182910156249974]]],[[[108.2072265625001,-2.997656249999977],[108.05527343750006,-3.22685546874996],[107.85820312500002,-3.086328125000023],[107.61445312500004,-3.209375],[107.56347656250003,-2.920117187499997],[107.66630859375002,-2.566308593750037],[107.83779296875005,-2.530273437499972],[108.21513671875002,-2.696972656250011],[108.29062500000012,-2.829980468750023],[108.2072265625001,-2.997656249999977]]],[[[100.20410156249997,-2.741015625000017],[100.01494140625007,-2.819726562499966],[99.98789062500006,-2.525390624999957],[100.20410156249997,-2.741015625000017]]],[[[99.84306640625007,-2.343066406250031],[99.60703125000012,-2.257519531250011],[99.57216796875005,-2.025781249999966],[99.84306640625007,-2.343066406250031]]],[[[126.055078125,-2.451269531249963],[125.86289062500006,-2.077148437499943],[125.92275390625,-1.974804687499969],[126.055078125,-2.451269531249963]]],[[[126.02421875000007,-1.789746093750011],[126.33173828125004,-1.822851562500006],[125.47919921875004,-1.940039062499991],[125.38720703124997,-1.843066406249946],[126.02421875000007,-1.789746093750011]]],[[[130.35332031250007,-1.690527343749963],[130.41884765625,-1.971289062499963],[130.24804687500003,-2.047753906249994],[129.7376953125,-1.866894531250011],[130.35332031250007,-1.690527343749963]]],[[[124.96953125000007,-1.70546875],[125.18789062500005,-1.712890624999986],[125.31406250000006,-1.877148437499969],[124.41777343750002,-2.005175781250031],[124.32968750000012,-1.858886718749972],[124.41757812500006,-1.659277343749991],[124.96953125000007,-1.70546875]]],[[[135.47421875000006,-1.591796875000014],[136.89257812500003,-1.799707031249994],[136.22812500000012,-1.893652343749949],[135.47421875000006,-1.591796875000014]]],[[[108.953125,-1.61962890625],[108.83789062499997,-1.661621093750028],[108.80371093750003,-1.567773437499994],[108.953125,-1.61962890625]]],[[[106.04570312500002,-1.669433593750014],[106.36591796875004,-2.464843749999972],[106.81845703125006,-2.573339843749963],[106.6120117187501,-2.895507812499957],[106.66718750000004,-3.071777343749986],[105.99873046875004,-2.824902343749955],[105.7858398437501,-2.18134765625004],[105.13339843750012,-2.042578125],[105.45957031250006,-1.574707031249986],[105.58544921875003,-1.526757812499994],[105.7008789062501,-1.731054687499963],[105.7204101562501,-1.533886718750026],[105.91005859375,-1.504980468749991],[106.04570312500002,-1.669433593750014]]],[[[123.59755859375,-1.704296875000011],[123.48251953125006,-1.681445312499974],[123.52851562500004,-1.502832031250009],[123.59755859375,-1.704296875000011]]],[[[128.1530273437501,-1.66054687499998],[127.56162109375012,-1.728515624999972],[127.39501953125003,-1.589843749999972],[127.64667968750004,-1.332421875],[128.1530273437501,-1.66054687499998]]],[[[123.2123046875,-1.171289062499966],[123.23779296874997,-1.389355468749983],[123.43476562500004,-1.236816406249986],[123.54726562500005,-1.337402343749957],[123.51191406250004,-1.447363281249977],[123.27490234374997,-1.437207031249955],[123.17294921875006,-1.616015624999974],[123.15039062500003,-1.304492187500003],[122.89042968750007,-1.58720703124996],[122.81083984375002,-1.432128906249986],[122.90800781250002,-1.182226562499963],[123.2123046875,-1.171289062499966]]],[[[109.71025390625007,-1.1806640625],[109.46367187500002,-1.277539062500026],[109.4759765625,-0.9853515625],[109.74335937500004,-1.039355468749989],[109.71025390625007,-1.1806640625]]],[[[134.96533203124997,-1.116015624999974],[134.86171875,-1.114160156249952],[134.82792968750002,-0.978808593750003],[134.99628906250004,-1.03408203124998],[134.96533203124997,-1.116015624999974]]],[[[99.16386718750007,-1.777929687500006],[98.82773437500006,-1.609960937499977],[98.60175781250004,-1.197851562499949],[98.67607421875007,-0.970507812500003],[98.93261718750003,-0.954003906250009],[99.2672851562501,-1.62773437499996],[99.16386718750007,-1.777929687500006]]],[[[131.00185546875005,-1.315527343750034],[130.78232421875006,-1.255468749999963],[130.67294921875006,-0.959765625000031],[131.03300781250007,-0.917578124999963],[131.00185546875005,-1.315527343750034]]],[[[135.38300781250004,-0.6513671875],[135.89355468749997,-0.725781249999969],[136.37529296875007,-1.094042968750031],[136.1647460937501,-1.214746093750023],[135.91503906250003,-1.178417968749997],[135.74707031249997,-0.823046874999974],[135.64570312500004,-0.881933593749991],[135.38300781250004,-0.6513671875]]],[[[127.30039062500012,-0.780957031250026],[127.1564453125001,-0.760937500000026],[127.20908203125006,-0.619335937499955],[127.30039062500012,-0.780957031250026]]],[[[130.6266601562501,-0.528710937499966],[130.46542968750006,-0.486523437499983],[130.6159179687501,-0.417285156250003],[130.6266601562501,-0.528710937499966]]],[[[121.86435546875012,-0.406835937500006],[121.88125,-0.502636718749983],[121.65527343749997,-0.526171874999989],[121.86435546875012,-0.406835937500006]]],[[[140.97343750000007,-2.609765625],[140.97353515625,-2.803417968750026],[140.975,-6.346093750000023],[140.86230468749997,-6.740039062499989],[140.97519531250006,-6.90537109375002],[140.97617187500012,-9.11875],[140.00292968749997,-8.19550781250004],[140.11699218750002,-7.923730468750009],[139.93476562500004,-8.101171875],[139.38564453125,-8.189062499999963],[139.24882812500002,-7.982421874999972],[138.890625,-8.237792968749943],[139.08798828125012,-7.587207031250017],[138.74794921875,-7.25146484375],[139.17685546875006,-7.1904296875],[138.84570312500003,-7.13632812499999],[138.60136718750007,-6.936523437499972],[138.86455078125007,-6.858398437499943],[138.43867187500004,-6.343359375],[138.2962890625,-5.94902343749996],[138.37460937500006,-5.84365234374998],[138.19960937500005,-5.80703125],[138.33964843750007,-5.675683593749966],[138.08710937500004,-5.70917968750004],[138.06083984375002,-5.46523437499998],[137.27978515624997,-4.945410156249949],[136.61884765625004,-4.81875],[135.97968750000004,-4.530859374999963],[135.19560546875007,-4.450683593749972],[134.67968749999997,-4.079101562499943],[134.70654296875003,-3.954785156250026],[134.88652343750007,-3.938476562499986],[134.26621093750012,-3.945800781249972],[134.14707031250006,-3.79677734374998],[133.97382812500004,-3.817968750000034],[133.67832031250006,-3.4794921875],[133.8415039062501,-3.054785156249991],[133.70039062500004,-3.0875],[133.653125,-3.364355468749991],[133.51816406250012,-3.411914062500003],[133.40087890625003,-3.899023437500034],[133.24873046875004,-4.062304687499989],[132.91445312500005,-4.05693359374996],[132.75390625000003,-3.703613281250014],[132.86972656250006,-3.550976562499997],[132.75136718750005,-3.294628906249997],[131.97119140624997,-2.788574218750014],[132.2306640625001,-2.680371093749997],[132.725,-2.789062500000028],[133.19101562500006,-2.43779296874996],[133.70009765625005,-2.624609375],[133.75332031250005,-2.450683593750014],[133.90488281250012,-2.390917968750003],[133.79101562500003,-2.293652343749997],[133.92158203125004,-2.102050781249957],[132.96279296875005,-2.272558593749963],[132.30761718749997,-2.24228515625002],[132.02343749999997,-1.99033203125002],[131.93037109375004,-1.559667968750034],[131.29375,-1.393457031250009],[130.99589843750007,-1.42470703124998],[131.1908203125,-1.165820312500003],[131.2572265625,-0.855468750000014],[131.80429687500006,-0.703808593750026],[132.39375,-0.355468750000028],[132.85644531250003,-0.417382812500023],[133.47265624999997,-0.726171874999963],[133.97451171875,-0.744335937500026],[134.11152343750004,-0.84677734375002],[134.07197265625004,-1.001855468749994],[134.25957031250007,-1.362988281250026],[134.105859375,-1.720996093749946],[134.19482421875003,-2.309082031249943],[134.45996093749997,-2.83232421874996],[134.48330078125,-2.583007812499972],[134.62744140624997,-2.536718749999963],[134.70214843749997,-2.933593749999986],[134.84335937500006,-2.909179687499986],[134.88681640625006,-3.209863281249966],[135.25156250000012,-3.368554687499966],[135.48662109375002,-3.34511718749998],[135.85917968750002,-2.99531250000004],[136.38994140625002,-2.273339843750037],[137.07207031250002,-2.105078124999949],[137.1710937500001,-2.025488281249991],[137.1234375,-1.840917968749963],[137.80625000000012,-1.483203125],[139.78955078125003,-2.34824218750002],[140.62255859374997,-2.44580078125],[140.74746093750005,-2.607128906249997],[140.97343750000007,-2.609765625]]],[[[104.47421875000012,-0.334667968749955],[104.59013671875002,-0.466601562500017],[104.36318359375,-0.658593749999966],[104.25712890625002,-0.463281249999966],[104.47421875000012,-0.334667968749955]]],[[[127.56699218750006,-0.318945312499949],[127.68242187500002,-0.46835937500002],[127.60498046874997,-0.610156249999946],[127.88017578125002,-0.808691406249991],[127.7611328125,-0.883691406249994],[127.62382812500002,-0.76601562499999],[127.46269531250002,-0.80595703124996],[127.46865234375,-0.64296875],[127.3,-0.500292968749946],[127.32509765625,-0.335839843750023],[127.45517578125012,-0.406347656249991],[127.56699218750006,-0.318945312499949]]],[[[127.24990234375005,-0.4953125],[127.11914062500003,-0.520507812499986],[127.12646484375003,-0.278613281250003],[127.29003906250003,-0.284375],[127.24990234375005,-0.4953125]]],[[[103.73652343750004,-0.347949218750003],[103.461328125,-0.357617187500011],[103.54892578125006,-0.227539062499986],[103.73652343750004,-0.347949218750003]]],[[[130.81328125000007,-0.004101562500026],[131.27685546875003,-0.149804687499952],[131.33974609375005,-0.290332031249989],[131.00537109374997,-0.360742187500037],[130.62216796875006,-0.0859375],[130.89921875000002,-0.344433593749997],[130.7501953125001,-0.44384765625],[130.6886718750001,-0.296582031250011],[130.55078124999997,-0.366406250000026],[130.23662109375002,-0.209667968749983],[130.3625,-0.072851562500006],[130.81328125000007,-0.004101562500026]]],[[[98.45927734375007,-0.530468749999969],[98.30966796875012,-0.531835937499977],[98.4271484375,-0.226464843750037],[98.3229492187501,-0.000781249999974],[98.54414062500004,-0.257617187499989],[98.45927734375007,-0.530468749999969]]],[[[104.77861328125007,-0.175976562499955],[105.00537109374997,-0.282812499999963],[104.44707031250002,-0.189160156249983],[104.54267578125004,0.01772460937498],[104.77861328125007,-0.175976562499955]]],[[[103.28447265625002,0.541943359375011],[103.13955078125,0.549072265625043],[103.18740234375,0.699755859375017],[103.28447265625002,0.541943359375011]]],[[[103.0275390625001,0.746630859374974],[102.4904296875001,0.856640625],[102.50664062500002,1.088769531250037],[103.00244140624997,0.859277343750009],[103.0275390625001,0.746630859374974]]],[[[103.42392578125012,1.048339843749972],[103.31542968750003,1.071289062500028],[103.37998046875006,1.133642578125034],[103.42392578125012,1.048339843749972]]],[[[103.16640625000005,0.870166015625003],[102.7018554687501,1.0537109375],[102.72558593749997,1.158837890625023],[102.99941406250005,1.067773437500023],[103.16640625000005,0.870166015625003]]],[[[104.02480468750005,1.180566406250009],[104.13984375000004,1.165576171874974],[104.06611328125004,0.989550781249989],[103.93222656250012,1.071386718749963],[104.02480468750005,1.180566406250009]]],[[[104.58535156250005,1.21611328124996],[104.66289062500002,1.04951171875004],[104.57519531250003,0.831933593750037],[104.43925781250002,1.050439453125051],[104.25195312499997,1.014892578125],[104.36181640624997,1.18149414062502],[104.58535156250005,1.21611328124996]]],[[[102.4271484375,0.990136718750023],[102.27958984375002,1.075683593750043],[102.25634765625003,1.397070312499963],[102.44287109374997,1.234228515625006],[102.4271484375,0.990136718750023]]],[[[97.48154296875006,1.465087890624972],[97.93193359375002,0.973925781250003],[97.82041015625012,0.564453124999986],[97.683984375,0.596093750000037],[97.60390625000005,0.83388671874998],[97.40537109375012,0.946972656250026],[97.07919921875006,1.425488281249983],[97.35595703124997,1.539746093749997],[97.48154296875006,1.465087890624972]]],[[[102.49189453125004,1.459179687500011],[102.49941406250005,1.330908203124991],[102.02402343750012,1.607958984375031],[102.49189453125004,1.459179687500011]]],[[[124.88886718750004,0.995312500000011],[124.42753906250002,0.470605468750051],[123.75380859375,0.305517578124991],[123.26542968750007,0.326611328125026],[122.996875,0.493505859375006],[121.01298828125002,0.441699218750017],[120.57900390625,0.5283203125],[120.19228515625,0.268505859374997],[120.01328125000012,-0.196191406249994],[120.062890625,-0.555566406250023],[120.240625,-0.868261718749949],[120.51757812499997,-1.039453125],[120.66738281250005,-1.370117187499972],[121.14853515625012,-1.33945312500002],[121.5755859375,-0.828515625000023],[121.96962890625005,-0.933300781249969],[122.27998046875004,-0.757031250000026],[122.88876953125006,-0.755175781250003],[122.8294921875,-0.658886718750026],[123.17148437500012,-0.57070312499999],[123.37968750000002,-0.648535156249949],[123.43417968750006,-0.778222656249994],[123.37792968749997,-1.004101562500011],[122.90283203125003,-0.900976562499963],[122.25068359375004,-1.555273437500034],[121.8585937500001,-1.69326171874998],[121.65097656250006,-1.895410156249952],[121.35546874999997,-1.878222656250003],[122.29169921875004,-2.907617187500023],[122.39902343750006,-3.200878906249997],[122.25292968749997,-3.620410156250017],[122.68964843750004,-4.084472656249972],[122.84794921875002,-4.064550781250006],[122.8722656250001,-4.391992187500009],[122.71972656250003,-4.340722656249952],[122.11425781250003,-4.540234375000011],[122.03808593749997,-4.832421875000023],[121.58867187500007,-4.759570312500017],[121.48652343750004,-4.581054687499972],[121.61806640625,-4.092675781249952],[120.89179687500004,-3.520605468750034],[121.05429687500012,-3.167089843749949],[121.0521484375,-2.751660156249955],[120.87939453124997,-2.64560546875002],[120.65361328125002,-2.667578124999977],[120.26103515625007,-2.949316406249991],[120.43662109375012,-3.70732421874996],[120.42011718750004,-4.617382812500011],[120.27929687499997,-5.146093749999977],[120.4303710937501,-5.591015625000026],[119.9515625,-5.577636718749972],[119.71728515625003,-5.693359375000014],[119.55742187500007,-5.611035156250026],[119.36035156249997,-5.314160156250026],[119.59404296875007,-4.523144531249997],[119.62363281250006,-4.034375],[119.46748046875004,-3.512988281249989],[118.99462890624997,-3.537597656250028],[118.86767578124997,-3.39804687500002],[118.78330078125006,-2.720800781249977],[119.09218750000005,-2.482910156250014],[119.32187500000012,-1.929687500000014],[119.308984375,-1.408203125],[119.508203125,-0.906738281249972],[119.71132812500005,-0.680761718750034],[119.84433593750006,-0.861914062499991],[119.721875,-0.088476562499991],[119.865625,0.040087890625003],[119.80927734375004,0.238671875000051],[119.9132812500001,0.445068359375],[120.26953125000003,0.970800781249991],[120.60253906249997,0.854394531249994],[120.86796875000007,1.25283203124998],[121.0817382812501,1.327636718750028],[121.40410156250002,1.243603515624969],[121.59179687499997,1.067968749999977],[122.43662109375006,1.018066406250028],[122.83828125,0.845703125],[123.06650390625006,0.941796875000037],[123.93076171875006,0.850439453124977],[124.53369140624997,1.230468750000043],[124.94707031250002,1.672167968749974],[125.11093750000012,1.685693359374966],[125.2337890625,1.502294921875006],[124.88886718750004,0.995312500000011]]],[[[101.70810546875006,2.078417968750045],[101.71943359375004,1.789160156250006],[101.50078125000002,1.733203124999974],[101.40966796875003,2.021679687500026],[101.70810546875006,2.078417968750045]]],[[[127.73271484375007,0.848144531250043],[127.8810546875001,0.832128906249977],[127.96728515624997,1.042578125000048],[128.16074218750006,1.1578125],[128.22246093750002,1.400634765624986],[128.68837890625,1.572558593750017],[128.70263671874997,1.106396484374997],[128.29882812500003,0.87680664062502],[128.26064453125,0.733789062500023],[128.61123046875,0.549951171875051],[128.89960937500004,0.216259765625011],[127.9831054687501,0.471875],[127.88740234375004,0.298339843750043],[127.97783203125002,-0.24833984374996],[128.4254882812501,-0.892675781249949],[128.04638671875003,-0.706054687499943],[127.69160156250004,-0.241894531249983],[127.70869140625004,0.288085937499986],[127.53710937500003,0.610888671875031],[127.60800781250006,0.848242187499977],[127.42851562500002,1.139990234374991],[127.63173828125,1.843701171875011],[128.03642578125002,2.199023437500017],[127.88681640625012,1.83295898437504],[128.0109375000001,1.701220703125031],[128.01171874999997,1.331738281249983],[127.65283203124997,1.013867187499969],[127.73271484375007,0.848144531250043]]],[[[97.3341796875001,2.075634765625011],[97.10830078125,2.216894531250006],[97.29140625,2.200830078125023],[97.3341796875001,2.075634765625011]]],[[[128.45390625000002,2.051757812500028],[128.29589843749997,2.034716796875017],[128.2179687500001,2.297460937499991],[128.60214843750012,2.59760742187504],[128.68847656250003,2.473681640625017],[128.62324218750004,2.224414062500031],[128.45390625000002,2.051757812500028]]],[[[96.46367187500002,2.360009765625037],[95.80859374999997,2.655615234375034],[95.7171875,2.825976562500017],[95.89580078125007,2.8890625],[96.41728515625007,2.515185546875031],[96.46367187500002,2.360009765625037]]],[[[108.8875,2.905419921875037],[108.7865234375,2.885644531250009],[108.88574218750003,2.998974609374997],[108.8875,2.905419921875037]]],[[[105.76035156250006,2.863037109375014],[105.69218750000002,3.0625],[105.83671875000007,2.97651367187504],[105.76035156250006,2.863037109375014]]],[[[106.28525390625006,3.15712890624998],[106.28369140624997,3.088232421874977],[106.20097656250002,3.204882812500031],[106.28525390625006,3.15712890624998]]],[[[117.65839843750004,3.280517578124986],[117.54785156250003,3.43198242187502],[117.68085937500004,3.407519531250017],[117.65839843750004,3.280517578124986]]],[[[125.65810546875,3.436035156250043],[125.51152343750007,3.461132812500011],[125.46884765625006,3.73325195312502],[125.65810546875,3.436035156250043]]],[[[117.88476562499997,4.186132812500006],[117.92285156250003,4.054296874999977],[117.73681640624997,4.004003906250034],[117.64902343750012,4.168994140624974],[117.88476562499997,4.186132812500006]]],[[[108.31601562500006,3.689648437500026],[108.10039062500002,3.70454101562504],[108.24326171875006,3.810351562500017],[108.00234375,3.982861328124983],[108.24833984375002,4.21713867187502],[108.39287109375007,3.986181640625034],[108.31601562500006,3.689648437500026]]],[[[117.5744140625001,4.17060546875004],[117.46533203124997,4.076074218749966],[117.77724609375005,3.689257812500031],[117.05595703125007,3.622656249999963],[117.34628906250006,3.426611328124991],[117.35244140625,3.19375],[117.61064453125002,3.064355468749994],[117.56914062500002,2.92929687500002],[117.69765625,2.887304687499991],[117.6388671875001,2.825292968749963],[118.0666015625001,2.317822265624969],[117.7892578125001,2.026855468750014],[118.98496093750006,0.982128906249983],[118.53476562500006,0.813525390625017],[118.19609375000002,0.874365234374977],[117.91162109374997,1.098681640625017],[117.96425781250005,0.889550781250051],[117.74511718749997,0.72963867187498],[117.52216796875004,0.235888671875017],[117.46289062500003,-0.323730468749957],[117.5625,-0.770898437500009],[116.91396484375,-1.223632812499972],[116.73984375000006,-1.044238281250017],[116.75341796874997,-1.327343749999955],[116.27548828125006,-1.784863281249997],[116.42431640625003,-1.784863281249997],[116.45195312500002,-1.923144531250017],[116.31396484374997,-2.139843750000011],[116.56542968749997,-2.299707031249994],[116.52929687499997,-2.51054687499996],[116.31679687500005,-2.55185546875002],[116.33066406250012,-2.902148437499974],[116.16630859375002,-2.934570312500014],[116.2572265625,-3.126367187500009],[115.95615234375012,-3.595019531250003],[114.6935546875001,-4.169726562500017],[114.5255859375001,-3.376660156250011],[114.44599609375004,-3.481835937500037],[114.34433593750012,-3.444433593749963],[114.34433593750012,-3.23515625],[114.23632812500003,-3.36113281249996],[114.0822265625001,-3.27890625],[113.70507812499997,-3.45527343750004],[113.6100585937501,-3.195703125],[113.34316406250005,-3.246484374999966],[113.03398437500002,-2.933496093749966],[112.97148437500002,-3.187109375000034],[112.75800781250004,-3.322167968750009],[112.60029296875004,-3.400488281249977],[112.28496093750002,-3.32099609375004],[111.85810546875004,-3.551855468750006],[111.82304687500007,-3.057226562499949],[111.69472656250005,-2.88945312499996],[110.93007812500005,-3.071093750000017],[110.82968750000012,-2.9951171875],[110.89931640625,-2.908593749999952],[110.703125,-3.020898437500009],[110.57402343750007,-2.89140625],[110.25605468750004,-2.966113281249946],[110.09658203125,-2.001367187499966],[109.95986328125,-1.862792968749972],[109.98330078125,-1.274804687499994],[109.78740234375007,-1.011328124999963],[109.25878906250003,-0.807421874999989],[109.37275390625004,-0.638183593749972],[109.12109375000003,-0.39091796874996],[109.2575195312501,0.031152343750051],[108.94453125000004,0.355664062499997],[108.91679687500007,0.912646484375045],[108.95859375000006,1.134619140624963],[109.1315429687501,1.253857421875011],[109.01025390624997,1.239648437500051],[109.07587890625004,1.495898437500031],[109.37851562500006,1.922705078125034],[109.62890625000003,2.027539062499983],[109.53896484375,1.89619140625004],[109.65400390625004,1.614892578125023],[110.50576171875005,0.861962890625023],[111.10136718750002,1.050537109374986],[111.80898437500005,1.011669921874969],[112.078515625,1.143359374999974],[112.1857421875001,1.4390625],[112.47617187500006,1.559082031250028],[112.94296875000006,1.566992187500034],[113.00654296875004,1.433886718750003],[113.6222656250001,1.2359375],[113.90234375000003,1.434277343749997],[114.5125,1.452001953124963],[114.83056640625003,1.980029296874989],[114.78642578125002,2.250488281250014],[115.1791015625,2.523193359374972],[115.08076171875004,2.63422851562504],[115.117578125,2.89487304687502],[115.24697265625005,3.025927734374989],[115.45439453125002,3.034326171875009],[115.67880859375006,4.193017578124994],[115.86074218750005,4.348046875000037],[116.51474609375006,4.370800781249969],[117.10058593750003,4.337060546875023],[117.5744140625001,4.17060546875004]]],[[[126.81660156250004,4.033496093750003],[126.70449218750005,4.070996093749997],[126.81357421875006,4.258496093750011],[126.72207031250005,4.344189453124969],[126.75732421874997,4.547900390624989],[126.9210937500001,4.291015624999972],[126.81660156250004,4.033496093750003]]],[[[96.49257812500005,5.229345703124991],[97.54716796875002,5.205859375],[98.2484375,4.41455078125],[98.3073242187501,4.09287109375002],[99.73232421875005,3.183056640625026],[100.523828125,2.18916015625004],[100.88789062500004,1.948242187499986],[100.82822265625012,2.242578125],[101.04619140625002,2.257470703125023],[101.47666015625006,1.693066406250054],[102.019921875,1.442138671875],[102.38994140625007,0.84199218750004],[103.03183593750006,0.57890625],[103.0075195312501,0.415332031249974],[102.55,0.216455078124966],[103.33896484375012,0.513720703125045],[103.67265625000007,0.288916015624977],[103.78671875000012,0.046972656249991],[103.42851562500007,-0.19179687499998],[103.40517578125005,-0.36220703124998],[103.5091796875,-0.465527343749969],[103.43857421875006,-0.575585937500009],[103.72109375,-0.886718749999986],[104.36054687500004,-1.038378906249974],[104.51591796875002,-1.81943359375002],[104.84521484375003,-2.092968749999969],[104.65078125000005,-2.595214843749972],[104.97080078125012,-2.370898437500017],[105.39697265624997,-2.380175781249946],[106.0443359375,-3.10625],[105.84375,-3.61367187499998],[105.93046875000007,-3.833007812499986],[105.83144531250005,-4.16289062499996],[105.88720703124997,-5.009570312499974],[105.74833984375007,-5.818261718749966],[105.34941406250007,-5.549511718750011],[105.08134765625002,-5.74550781249998],[104.63955078125005,-5.520410156250037],[104.68398437500005,-5.89267578125002],[104.60156249999997,-5.90458984374996],[103.8314453125,-5.079589843750028],[102.53769531250006,-4.152148437499989],[102.12753906250006,-3.599218749999963],[101.57861328124997,-3.166992187500014],[100.88955078125,-2.248535156249957],[100.85527343750002,-1.934179687499949],[100.30820312500006,-0.82666015625],[99.66982421875005,0.045068359375037],[99.15917968749997,0.351757812499997],[98.59531250000006,1.864599609375006],[97.70078125000006,2.358544921875009],[97.59082031249997,2.846582031250037],[97.3913085937501,2.975292968749969],[96.9689453125001,3.575146484374969],[96.44472656250005,3.81630859374998],[95.57861328125003,4.661962890625048],[95.20664062500006,5.284033203125034],[95.22783203125002,5.564794921875034],[95.62890625000003,5.609082031249997],[96.13330078125003,5.294287109374991],[96.49257812500005,5.229345703124991]]]]},"properties":{"name":"Indonesia","childNum":107}},{"geometry":{"type":"Polygon","coordinates":[[[-4.412060546874983,54.185351562499996],[-4.785351562499983,54.073046875],[-4.424707031249994,54.407177734375],[-4.412060546874983,54.185351562499996]]]},"properties":{"name":"Isle of Man","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[75.32221348233018,32.28516356678968],[75.62496871116024,32.28516356678968],[75.73585997688717,32.78417426256088],[76.32728006076415,32.87658365066666],[76.62299010270264,33.32014871357439],[77.06655516561037,33.301666835953235],[77.71342088235082,32.6917648744551],[78.10154031239509,32.87658365066666],[78.49194250885338,32.53122786149202],[78.38964843749997,32.51987304687498],[78.41748046874997,32.466699218749994],[78.4552734375001,32.30034179687502],[78.49589843750002,32.21577148437504],[78.72558593750009,31.983789062500023],[78.71972656250009,31.887646484374983],[78.69345703125006,31.740380859374994],[78.7550781250001,31.55029296875],[78.74355468750005,31.323779296875017],[79.10712890625004,31.402636718750102],[79.38847656250013,31.064208984375085],[79.66425781250004,30.96523437499999],[79.92451171875004,30.888769531250034],[80.20712890625006,30.683740234375023],[80.19121093750002,30.56840820312496],[80.87353515625003,30.290576171875045],[80.98544921875006,30.23710937499999],[81.01025390625014,30.164501953125097],[80.96611328125002,30.180029296875063],[80.90761718750005,30.171923828125017],[80.84814453125009,30.139746093750034],[80.81992187500012,30.119335937499955],[80.68408203125014,29.994335937500068],[80.54902343750015,29.899804687499994],[80.40185546875003,29.730273437500102],[80.31689453125014,29.572070312500017],[80.25488281250009,29.423339843750114],[80.25595703125006,29.318017578125136],[80.23300781250006,29.194628906250045],[80.16953125000012,29.124316406250102],[80.13046875000006,29.100390625000045],[80.08457031249995,28.994189453125074],[80.05166015625,28.870312500000068],[80.07070312500005,28.830175781250063],[80.22656250000003,28.723339843750125],[80.32480468750012,28.66640625000008],[80.41855468749995,28.61201171875001],[80.47910156250012,28.604882812499994],[80.49580078125015,28.635791015625074],[80.51787109375002,28.665185546875023],[80.58701171875006,28.64960937500004],[81.16894531250014,28.335009765625074],[81.85263671875018,27.867089843750136],[81.89687500000011,27.87446289062504],[81.94521484375005,27.89926757812495],[81.98769531250016,27.91376953125004],[82.03701171875,27.90058593750004],[82.11191406250006,27.86494140625004],[82.28769531250018,27.756542968749983],[82.45136718750004,27.671826171874955],[82.62988281249997,27.687060546875045],[82.67734375000006,27.67343749999995],[82.71083984375005,27.596679687500114],[82.73339843750003,27.518994140625097],[83.28974609375004,27.370996093750136],[83.36943359375002,27.410253906249977],[83.38398437500004,27.444824218750085],[83.44716796875011,27.46533203125],[83.55166015625011,27.456347656249932],[83.74697265625011,27.395947265625068],[83.8288085937501,27.377832031250108],[84.09101562499993,27.491357421875136],[84.22978515625007,27.427832031250006],[84.48085937500005,27.348193359375102],[84.61015625000002,27.298681640624977],[84.64072265625012,27.249853515624977],[84.65478515625014,27.20366210937499],[84.65380859375009,27.09169921875008],[84.68535156250013,27.041015625000057],[85.19179687500011,26.766552734375097],[85.29296875000009,26.741015625000045],[85.56845703125012,26.839843750000114],[85.64843749999997,26.829003906250023],[85.69990234375004,26.781640624999966],[85.73730468750003,26.639746093750034],[85.79453125000006,26.60415039062505],[86.00732421875009,26.64936523437504],[86.70136718750015,26.435058593750057],[87.01640625000002,26.555419921875085],[87.2874023437499,26.360302734375125],[87.41357421875014,26.42294921875009],[87.84921875000006,26.43691406250008],[87.99511718750014,26.38237304687499],[88.02695312500023,26.395019531250085],[88.05488281250004,26.43002929687492],[88.11152343750004,26.58642578125],[88.1615234375,26.724804687500125],[88.15722656250009,26.807324218750068],[88.1110351562501,26.928466796875057],[87.99316406250009,27.086083984374994],[87.984375,27.133935546874994],[88.14697265625014,27.749218750000097],[88.15029296875011,27.843310546875074],[88.10976562500005,27.87060546874997],[88.10898437499995,27.93300781250005],[88.14111328125003,27.948925781250097],[88.27519531250013,27.96884765625009],[88.42597656250015,28.011669921875097],[88.57792968750002,28.093359375000034],[88.80371093750003,28.006933593750034],[88.74902343749997,27.521875000000136],[88.7648437500001,27.429882812500068],[88.83251953125003,27.362841796875074],[88.89140625000002,27.316064453125136],[88.88164062500007,27.29746093750009],[88.76035156250006,27.21811523437509],[88.73876953125009,27.175585937499932],[88.85761718750015,26.961474609375017],[89.14824218750002,26.816162109375085],[89.33212890625018,26.848632812500114],[89.58613281250004,26.778955078125136],[89.60996093750012,26.719433593750097],[89.71093750000009,26.713916015625045],[89.76386718750004,26.7015625],[89.94316406250013,26.723925781249932],[90.12294921875011,26.754589843749983],[90.20605468749997,26.847509765625063],[90.34589843750004,26.890332031250097],[90.73964843750005,26.771679687500068],[91.2865234375,26.78994140625008],[91.42675781249997,26.867089843749966],[91.45585937500013,26.866894531250125],[91.51757812500009,26.807324218750068],[91.67158203124993,26.80200195312503],[91.84208984375013,26.852978515625125],[91.94375,26.860839843750114],[91.99833984375013,26.85498046875],[92.04970703125016,26.87485351562495],[92.73155507489682,26.833697862861648],[93.30975376159499,26.784950522650554],[93.61047043679247,27.32239435188504],[94.06979001484449,27.589407158584788],[95.10800937321915,27.749636881153737],[95.74000740838363,28.116850432722256],[96.19577594042592,28.04291597700983],[96.96279296875,27.698291015625017],[96.88359375000013,27.514843750000125],[96.90195312500012,27.43959960937508],[97.10371093749993,27.163330078125114],[97.10205078125003,27.115429687500125],[96.95341796875013,27.13330078125003],[96.79785156249997,27.29619140624999],[96.19082031250005,27.26127929687499],[95.20146484375007,26.641406250000017],[95.05976562500015,26.473974609375006],[95.06894531250006,26.191113281250097],[95.10839843750014,26.091406250000034],[95.12929687500011,26.070410156250034],[95.13242187500006,26.041259765624943],[94.99199218750002,25.77045898437504],[94.66777343750007,25.458886718749966],[94.55302734375013,25.215722656249994],[94.70371093750012,25.097851562499955],[94.49316406250003,24.637646484374983],[94.37724609375002,24.473730468750006],[94.29306640625012,24.321875],[94.07480468750006,23.8720703125],[93.68339843750007,24.00654296875004],[93.45214843750003,23.987402343750034],[93.32626953125006,24.064208984375057],[93.36601562500007,23.132519531249955],[93.34941406250007,23.08496093750003],[93.20390625000002,23.03701171875005],[93.07871093750018,22.718212890625097],[93.16201171875,22.360205078125006],[93.07060546875002,22.20942382812501],[92.96455078125015,22.003759765625034],[92.90947265625013,21.988916015625023],[92.85429687500002,22.010156250000108],[92.77138671875,22.104785156250017],[92.68896484375009,22.130957031250006],[92.63037109375014,22.011328124999977],[92.57490234374993,21.97807617187496],[92.5612304687501,22.04804687500001],[92.49140625000004,22.685400390625006],[92.46445312500006,22.734423828125045],[92.36162109375002,22.929003906250074],[92.33378906250002,23.242382812499955],[92.24609375000003,23.68359374999997],[92.04404296875006,23.677783203125017],[91.97851562500003,23.691992187500063],[91.92958984375011,23.685986328125097],[91.92949218750019,23.598242187499977],[91.93789062500011,23.504687500000102],[91.75419921875013,23.28730468750004],[91.75097656250003,23.053515625000017],[91.55351562500013,22.991552734375006],[91.43623046875004,23.19990234375001],[91.359375,23.06835937500003],[91.16044921875019,23.660644531250085],[91.35019531250012,24.06049804687501],[91.72656250000003,24.20507812499997],[91.84619140624997,24.175292968749943],[92.06416015625004,24.374365234375006],[92.11748046875002,24.493945312500017],[92.22666015625012,24.77099609374997],[92.22832031250002,24.881347656250085],[92.2512695312499,24.895068359375045],[92.38496093750004,24.848779296875023],[92.46835937500018,24.944140625000074],[92.04970703125016,25.16948242187499],[90.61308593750002,25.16772460937497],[90.11962890625003,25.21997070312497],[89.86630859375012,25.293164062499955],[89.81406250000006,25.305371093749955],[89.80087890625012,25.33613281250001],[89.82490234375004,25.56015625],[89.82294921875015,25.94140625000003],[89.67089843750009,26.213818359375125],[89.57275390625003,26.13232421875003],[89.54990234375006,26.00527343750008],[89.28925781250015,26.037597656250085],[89.01865234375012,26.410253906249977],[88.95195312500002,26.412109375],[88.97041015625004,26.250878906250023],[88.94072265625002,26.24536132812497],[88.68281250000004,26.291699218749983],[88.51826171875004,26.51777343750004],[88.36992187500002,26.56411132812508],[88.35146484375005,26.482568359374966],[88.38623046875003,26.471533203125034],[88.44042968749997,26.369482421875034],[88.33398437499997,26.257519531249955],[88.15078125000005,26.087158203125057],[88.1066406250001,25.841113281250045],[88.14746093749997,25.811425781250023],[88.50244140625009,25.53701171875008],[88.76914062500006,25.490478515625],[88.85478515625002,25.333544921875017],[88.94414062500002,25.290771484375],[88.92978515625012,25.222998046875063],[88.57382812500006,25.18789062499999],[88.45625,25.188427734375125],[88.37294921875016,24.961523437500063],[88.31337890625011,24.8818359375],[88.27949218750015,24.881933593750034],[88.18886718750016,24.920605468750097],[88.14980468750011,24.91464843749995],[88.04511718750015,24.71303710937508],[88.03027343750009,24.664453125000136],[88.02343750000003,24.627832031250136],[88.07910156250009,24.549902343750063],[88.14550781250003,24.485791015624955],[88.225,24.460644531249983],[88.3375,24.45385742187503],[88.49853515625003,24.34663085937504],[88.64228515625015,24.325976562500102],[88.72353515625011,24.27490234375],[88.7335937500001,24.230908203125097],[88.72656250000009,24.18623046875004],[88.71376953125016,24.069628906250102],[88.69980468750006,24.00253906249992],[88.56738281250009,23.674414062500034],[88.63574218749997,23.55],[88.69765625,23.493017578125034],[88.72441406250002,23.254980468750034],[88.89707031250018,23.21040039062501],[88.92812500000011,23.186621093749977],[88.89970703125002,22.843505859375057],[88.92070312500002,22.632031249999955],[89.05,22.274609374999983],[89.02792968750023,21.937207031249983],[88.94931640625018,21.937939453125125],[89.05166015625,21.654101562500045],[88.85751953125012,21.744677734375017],[88.74501953125011,21.584375],[88.74023437500003,22.005419921875017],[88.64160156250003,22.121972656250136],[88.58466796875015,21.659716796874932],[88.44599609375004,21.614257812500085],[88.28750000000016,21.758203125000108],[88.25371093750002,21.622314453124943],[88.0568359375001,21.694140625000017],[88.19628906249997,22.139550781249994],[87.94140625000003,22.374316406250045],[88.15927734375018,22.12172851562508],[87.82373046875003,21.727343750000045],[87.20068359375009,21.544873046874983],[86.95410156250014,21.365332031250006],[86.84228515625009,21.106347656249994],[86.97548828125005,20.70014648437501],[86.75039062500011,20.313232421875057],[86.37656250000006,20.006738281249966],[86.24521484375012,20.05302734374999],[86.27949218750021,19.919433593749943],[85.575,19.69291992187499],[85.496875,19.696923828125108],[85.50410156250004,19.887695312500057],[85.24863281250006,19.757666015625034],[85.18076171875018,19.59487304687508],[85.44160156249993,19.626562499999977],[84.77099609375009,19.125390625000023],[84.10410156250018,18.29267578125001],[82.35957031250004,17.09619140624997],[82.25878906250014,16.55986328124996],[81.76191406250015,16.32949218750008],[81.28613281249997,16.337060546875023],[80.97871093750004,15.758349609375074],[80.64658203125006,15.895019531250028],[80.29345703125014,15.710742187499989],[80.0534179687501,15.074023437499932],[80.17871093750003,14.478320312500074],[80.11171875000005,14.212207031250045],[80.30654296875016,13.485058593750054],[80.15625,13.713769531250108],[80.06210937500006,13.60625],[80.34238281250006,13.361328125000071],[80.22910156250018,12.690332031249966],[79.85849609375018,11.988769531250043],[79.69316406250007,11.312548828124946],[79.79902343750004,11.338671874999932],[79.84863281250009,11.196875],[79.83818359375002,10.322558593750045],[79.31455078125018,10.256689453124949],[78.93994140625009,9.565771484375063],[79.01992187500005,9.333349609374963],[79.41142578125002,9.192382812500014],[78.97958984375018,9.268554687500085],[78.42148437500006,9.105029296874989],[78.19248046874995,8.890869140625057],[78.06015625000006,8.384570312499932],[77.51757812500003,8.078320312500068],[77.06591796875003,8.315917968749986],[76.5534179687501,8.902783203124997],[76.32460937500016,9.452099609374997],[76.24238281250004,9.927099609374949],[76.37558593750006,9.539892578124935],[76.45878906250013,9.536230468750077],[76.34648437500002,9.922119140625],[76.19560546875002,10.086132812500026],[75.72382812500015,11.361767578125026],[74.94550781250004,12.56455078124992],[74.38222656250005,14.494726562500048],[73.94921875000014,15.074755859375088],[73.80078125000009,15.39697265625],[73.93193359375013,15.39697265625],[73.77177734375013,15.573046874999989],[73.83281250000013,15.659375],[73.67988281250015,15.708886718750136],[73.47607421875003,16.05424804687496],[72.87548828124997,18.642822265625114],[72.97207031250011,19.15332031250003],[72.8346679687501,18.975585937500057],[72.80302734375013,19.07929687500004],[72.81162109375,19.298925781250006],[72.98720703125,19.27744140625009],[72.78789062500013,19.362988281250097],[72.66777343750019,19.83095703125005],[72.89375,20.672753906250136],[72.81386718750011,21.117187500000085],[72.62382812500002,21.371972656250108],[72.73476562500016,21.470800781250006],[72.61328125000009,21.461816406250108],[73.1125,21.750439453125125],[72.54306640625,21.69658203124999],[72.70019531250003,21.971923828124943],[72.52226562500013,21.976220703125108],[72.55302734375007,22.159960937500074],[72.80917968749995,22.23330078125008],[72.18281250000015,22.26972656250004],[72.30644531250002,22.18920898437497],[72.27441406250009,22.089746093749966],[72.03720703125006,21.82304687499999],[72.2103515625,21.72822265625004],[72.25400390625006,21.531005859375],[72.01523437500012,21.155712890625097],[71.0246093750001,20.73886718750009],[70.71933593750006,20.740429687500068],[70.12734375,21.094677734375097],[68.96992187500021,22.29028320312497],[69.05166015625016,22.437304687500074],[69.27656250000004,22.285498046875063],[70.17724609375014,22.57275390624997],[70.48925781250009,23.08950195312508],[70.33945312500012,22.939746093749932],[69.66464843750006,22.759082031250074],[69.23593749999995,22.848535156250023],[68.64072265625006,23.189941406250114],[68.41748046875009,23.57148437500004],[68.7767578125,23.852099609375017],[68.23496093749995,23.596972656250074],[68.16503906250009,23.857324218749994],[68.28251953125013,23.927978515625],[68.38125000000016,23.950878906250068],[68.48867187500011,23.96723632812501],[68.5866210937501,23.966601562500074],[68.72412109375003,23.964697265625034],[68.72812500000012,24.265625],[68.73964843750016,24.291992187500085],[68.75898437499993,24.307226562500006],[68.78115234375011,24.313720703125085],[68.8,24.30908203125003],[68.82832031250004,24.26401367187509],[68.86347656250015,24.26650390625005],[68.90078125000011,24.29243164062501],[68.98457031250015,24.273095703124966],[69.05156250000013,24.28632812500001],[69.11953125000011,24.26865234374995],[69.23505859374993,24.268261718750068],[69.44345703124995,24.275390625000085],[69.55917968750006,24.273095703124966],[69.80517578125009,24.16523437500004],[70.0982421875,24.2875],[70.28906250000009,24.356298828125063],[70.54677734375,24.418310546875063],[70.56503906250006,24.385791015625017],[70.55585937500015,24.331103515625074],[70.57929687500015,24.279052734374943],[70.65947265625013,24.24609374999997],[70.71630859375009,24.237988281250097],[70.7672851562501,24.245410156250017],[70.80507812500011,24.26196289062503],[70.88623046875014,24.34375],[70.92812500000016,24.362353515625045],[70.98281250000011,24.361035156250125],[71.04404296875006,24.400097656250097],[71.04531250000005,24.42998046874996],[70.96982421875012,24.571875],[70.97636718750013,24.61875],[71.00234375000016,24.6539062499999],[71.04785156250003,24.687744140625085],[71.02070312500021,24.75766601562492],[70.95087890625015,24.89160156250003],[70.87773437500019,25.06298828124997],[70.65205078125004,25.422900390625102],[70.64843750000003,25.666943359375068],[70.5695312500001,25.705957031250023],[70.50585937500009,25.685302734375085],[70.44853515625013,25.681347656249983],[70.26464843750009,25.70654296874997],[70.10019531250006,25.91005859375005],[70.14921875000002,26.347558593749994],[70.11464843750016,26.548046874999983],[69.47001953125002,26.804443359375],[69.56796875,27.174609375000102],[69.89628906250007,27.473632812500085],[70.04980468750009,27.694726562500023],[70.14453125000003,27.849023437499994],[70.19394531250006,27.89487304687492],[70.24433593750004,27.934130859375102],[70.4037109375,28.025048828124994],[70.48857421875013,28.023144531250125],[70.62910156250015,27.937451171875068],[70.6916015625001,27.76899414062504],[70.79794921875012,27.709619140625023],[70.87490234375016,27.71445312499995],[71.18476562500004,27.831640625],[71.54296875000003,27.869873046875],[71.8703125000001,27.9625],[71.88886718750004,28.04746093749992],[71.94804687500002,28.177294921875102],[72.12851562500012,28.34633789062508],[72.29199218750003,28.69726562499997],[72.34189453125006,28.751904296875097],[72.90332031250003,29.02875976562501],[73.38164062500013,29.934375],[73.8091796875,30.093359375],[73.88652343750013,30.162011718750136],[73.93339843750002,30.222070312500108],[73.92460937500007,30.28164062499999],[73.88271484375,30.352148437499977],[73.89931640625,30.435351562500045],[74.00898437500004,30.519677734374994],[74.33935546875003,30.893554687499943],[74.38037109375003,30.89340820312509],[74.50976562500009,30.959667968750097],[74.63281250000014,31.034667968750114],[74.62578125000002,31.068750000000108],[74.61035156250009,31.112841796875045],[74.51767578125012,31.185595703124932],[74.53496093750007,31.261376953125108],[74.59394531249993,31.465380859375102],[74.58183593750013,31.523925781250114],[74.50996093750015,31.712939453125074],[74.52597656249995,31.765136718750057],[74.55556640625011,31.818554687500097],[74.63574218750003,31.889746093750034],[74.73945312500015,31.948828125],[75.07148437500015,32.08935546875003],[75.13876953125,32.10478515624999],[75.25410156250004,32.140332031250125],[75.33349609374997,32.279199218749994],[75.32221348233018,32.28516356678968]]]]},"properties":{"name":"India","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[72.49199218750002,-7.37744140625],[72.42910156250002,-7.435351562500003],[72.34970703125,-7.263378906250011],[72.447265625,-7.395703125000011],[72.44560546875002,-7.220410156250011],[72.49199218750002,-7.37744140625]]]},"properties":{"name":"Br. Indian Ocean Ter.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-9.948193359374926,53.91313476562499],[-10.265722656249949,53.977685546874994],[-9.99638671874996,54.00361328125004],[-9.948193359374926,53.91313476562499]]],[[[-6.218017578125,54.08872070312506],[-6.347607421874926,53.94130859375005],[-6.027392578124989,52.927099609375006],[-6.463183593749932,52.345361328124994],[-6.325,52.246679687500034],[-6.890234375,52.15922851562499],[-6.965771484374926,52.24951171875],[-8.057812499999926,51.82558593750005],[-8.4091796875,51.888769531250034],[-8.349121093749943,51.73930664062496],[-8.813427734374926,51.584912109374955],[-9.737304687499943,51.473730468750034],[-9.524902343750028,51.68110351562501],[-10.120751953124994,51.60068359375006],[-9.598828124999983,51.87441406250005],[-10.341064453124943,51.798925781250034],[-9.909667968749972,52.122949218749966],[-10.39023437499992,52.134912109374994],[-10.356689453125,52.20693359375002],[-9.772119140624937,52.250097656250034],[-9.90605468749996,52.403710937499966],[-9.632226562499937,52.54692382812502],[-8.783447265624943,52.679638671874955],[-8.990283203124989,52.755419921875045],[-9.175390624999949,52.634912109374994],[-9.916601562499977,52.56972656250005],[-9.46489257812496,52.82319335937498],[-9.299218749999966,53.09755859375002],[-8.930126953124983,53.207080078125045],[-9.51420898437496,53.23823242187498],[-10.091259765624926,53.41284179687503],[-10.116992187499932,53.548535156249955],[-9.720654296874926,53.6044921875],[-9.901611328124943,53.72719726562502],[-9.578222656249949,53.80541992187497],[-9.578857421875,53.879833984374955],[-9.9140625,53.863720703124955],[-9.856445312499972,54.095361328124994],[-10.092675781249966,54.15576171875003],[-10.056396484374943,54.25781250000006],[-8.545556640624994,54.24121093750003],[-8.623144531249977,54.346875],[-8.133447265624966,54.64082031250001],[-8.763916015624972,54.68120117187496],[-8.377294921874977,54.88945312500002],[-8.274609374999955,55.146289062500045],[-7.667089843749977,55.25649414062502],[-7.65874023437496,54.97094726562503],[-7.308789062500011,55.365820312500006],[-6.961669921874972,55.23789062500006],[-7.218652343749937,55.09199218749998],[-7.55039062499992,54.767968749999966],[-7.910595703124955,54.698339843750006],[-7.75439453125,54.59492187499998],[-8.118261718749977,54.41425781250004],[-7.606542968750006,54.14384765625002],[-7.324511718750017,54.13344726562502],[-7.007714843749937,54.40668945312501],[-6.649804687499937,54.05864257812496],[-6.218017578125,54.08872070312506]]]]},"properties":{"name":"Ireland","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[56.18798828125003,26.92114257812497],[55.95429687500004,26.70112304687501],[55.31152343749997,26.592626953125006],[55.76259765625005,26.81196289062504],[55.75761718750002,26.94765625000005],[56.279394531250006,26.952099609374983],[56.18798828125003,26.92114257812497]]],[[[46.1144531250001,38.877783203125034],[46.490625,38.90668945312498],[47.995898437500074,39.683935546875034],[48.322167968749994,39.39907226562502],[48.10439453125005,39.241113281249994],[48.292089843750006,39.01884765624999],[47.99648437499999,38.85375976562503],[48.59267578125005,38.41108398437498],[48.86875,38.43549804687498],[48.95996093750003,37.89013671875],[49.171191406250074,37.60058593749997],[50.13046875,37.407128906249994],[50.53320312499997,37.01367187500006],[51.11855468750005,36.742578124999966],[52.19013671875004,36.62172851562505],[53.76767578125006,36.93032226562502],[53.91542968750005,36.93032226562502],[53.67949218750002,36.853125],[53.970117187499994,36.818310546874955],[53.91416015625006,37.34355468750002],[54.6994140625001,37.47016601562498],[54.90009765625004,37.77792968750006],[55.38085937500003,38.051123046875034],[56.272070312500006,38.080419921875034],[56.440625,38.249414062499994],[57.1935546875001,38.216406250000034],[57.35371093750004,37.97333984374998],[58.261621093749994,37.665820312500045],[58.81542968750003,37.683496093749994],[59.30175781249997,37.51064453125005],[59.454980468749994,37.25283203125002],[60.06279296875002,36.962890625],[60.34130859375003,36.63764648437501],[61.11962890625003,36.64257812500003],[61.212011718750006,36.190527343750034],[61.15292968750006,35.97675781250001],[61.25214843750004,35.86762695312498],[61.26201171875002,35.61958007812498],[61.28183593750006,35.55341796875001],[61.2785156250001,35.513769531250006],[61.245507812499994,35.47407226562501],[61.18925781250002,35.31201171875003],[61.1,35.272314453125034],[61.08007812499997,34.85561523437505],[60.95117187499997,34.65385742187499],[60.91474609375004,34.63398437500001],[60.80234375000006,34.55463867187501],[60.73945312500004,34.544726562500045],[60.7262695312501,34.51826171874998],[60.736132812500074,34.491796875],[60.76259765625005,34.475244140624994],[60.88945312500002,34.31943359375006],[60.642675781250006,34.30717773437496],[60.48574218750005,34.09477539062502],[60.4859375,33.7119140625],[60.57382812500006,33.58833007812498],[60.91699218749997,33.505224609375006],[60.56054687499997,33.13784179687502],[60.5765625,32.99487304687503],[60.71044921874997,32.6],[60.82929687500004,32.24941406250005],[60.82724609375006,32.16796874999997],[60.789941406249994,31.98710937499999],[60.7875,31.87719726562497],[60.791601562500006,31.660595703124983],[60.82070312499999,31.495166015625045],[60.854101562500006,31.483251953125006],[61.110742187499994,31.45112304687504],[61.346484375000074,31.42163085937497],[61.66015625000003,31.382421874999977],[61.7550781250001,31.285302734374994],[61.814257812500074,31.072558593750017],[61.810839843750074,30.913281249999983],[61.78417968749997,30.831933593750023],[61.55947265625005,30.59936523437497],[61.33164062500006,30.36372070312501],[60.84335937500006,29.85869140624999],[61.03417968750003,29.663427734374977],[61.15214843750002,29.542724609375],[61.8898437500001,28.546533203124994],[62.7625,28.202050781249994],[62.782324218750006,27.800537109375],[62.75273437500002,27.265625],[63.16679687500002,27.25249023437499],[63.19609375000002,27.243945312500017],[63.25625,27.20791015625005],[63.30156250000002,27.151464843750006],[63.30517578124997,27.124560546875017],[63.242089843749994,27.07768554687499],[63.25039062499999,26.879248046875063],[63.24160156250005,26.86474609375003],[63.18613281250006,26.83759765625001],[63.168066406250006,26.66557617187496],[62.31230468750002,26.490869140624994],[62.23935546875006,26.357031249999977],[62.12597656249997,26.368994140625034],[61.842382812500006,26.225927734375006],[61.809960937499994,26.165283203125],[61.78076171874997,25.99584960937503],[61.75439453125003,25.843359375000063],[61.737695312499994,25.821093750000045],[61.66865234375004,25.76899414062501],[61.6618164062501,25.751269531250017],[61.67138671874997,25.69238281250003],[61.64013671875003,25.584619140624994],[61.61542968750004,25.28613281250003],[61.58789062499997,25.20234375000001],[61.533105468749994,25.195507812499955],[61.41220703125006,25.102099609375017],[60.66386718750002,25.28222656250003],[60.51054687500002,25.437060546875045],[60.40019531250002,25.311572265625074],[59.45605468749997,25.481494140625045],[59.0460937500001,25.417285156250017],[58.79785156249997,25.554589843750023],[57.334570312500006,25.791552734375074],[57.03603515625005,26.80068359375005],[56.728125,27.127685546875057],[56.118066406249994,27.14311523437499],[54.75927734375003,26.50507812500004],[54.24707031250003,26.696630859374977],[53.70576171875004,26.72558593750003],[52.69160156250004,27.323388671875023],[52.475878906250074,27.61650390624999],[52.03076171874997,27.824414062499955],[51.58906250000004,27.864208984374983],[51.27890625,28.13134765624997],[51.06201171874997,28.72612304687499],[50.86699218750002,28.870166015625017],[50.87578125000002,29.062695312499983],[50.67519531250005,29.146582031250034],[50.64960937500004,29.420068359374966],[50.16894531250003,29.921240234375034],[50.071582031250074,30.198535156250017],[49.55488281250004,30.028955078125023],[49.028125,30.333447265624983],[49.224511718749994,30.472314453125023],[49.00195312500003,30.506542968749983],[48.91914062500004,30.120898437500017],[48.54648437500006,29.962353515624955],[48.47851562499997,30.003808593749966],[48.43457031249997,30.03759765625],[48.33105468749997,30.28544921874996],[48.01494140625002,30.465625],[48.01064453125005,30.989794921875017],[47.679492187500074,31.00239257812501],[47.679492187500074,31.400585937499955],[47.75390624999997,31.601367187500017],[47.829980468749994,31.79443359375],[47.71455078125004,31.936425781249966],[47.5915039062501,32.087988281250034],[47.51191406250004,32.15083007812504],[47.3297851562501,32.45551757812501],[47.28515625000003,32.474023437499966],[47.121386718750074,32.46660156249996],[46.569921875,32.83393554687501],[46.37705078125006,32.92924804687499],[46.29824218750005,32.95024414062502],[46.11279296875003,32.957666015624994],[46.09306640625002,32.97587890624999],[46.08046875,33.028222656249994],[46.0807617187501,33.08652343750006],[46.14111328125003,33.174414062500034],[46.145898437499994,33.229638671874994],[46.01992187500005,33.41572265624998],[45.39707031250006,33.970849609374994],[45.542773437500074,34.21552734375004],[45.459375,34.470361328124994],[45.50078125000002,34.58159179687499],[45.6375,34.573828125],[45.678125,34.798437500000034],[45.92089843750003,35.02851562500001],[46.04179687500002,35.08017578125006],[46.13378906249997,35.127636718749955],[46.15468750000005,35.19672851562498],[46.112109375000074,35.32167968750005],[45.97109375000005,35.524169921875],[46.03740234375002,35.67314453124999],[46.180957031250074,35.71137695312504],[46.2625,35.74414062500006],[46.27343749999997,35.77324218750002],[46.16748046874997,35.820556640625],[45.77636718749997,35.82182617187499],[45.36162109375002,36.015332031249955],[45.241113281249994,36.35595703125],[45.20654296874997,36.397167968749955],[45.15527343749997,36.407373046874994],[45.11240234375006,36.409277343750034],[45.053125,36.47163085937501],[44.76513671875003,37.142431640625006],[44.79414062500004,37.290380859375034],[44.574023437500074,37.435400390625006],[44.589941406250006,37.710351562499966],[44.21132812499999,37.908056640625006],[44.4499023437501,38.33422851562506],[44.2985351562501,38.38627929687499],[44.27167968750004,38.83603515625006],[44.02324218750002,39.37744140625006],[44.3893554687501,39.422119140625],[44.58710937500004,39.76855468750006],[44.81718750000002,39.65043945312496],[45.4796875000001,39.00625],[46.1144531250001,38.877783203125034]]]]},"properties":{"name":"Iran","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[45.6375,34.573828125],[45.50078125000002,34.581591796874996],[45.459375,34.470361328124994],[45.54277343750002,34.21552734375],[45.397070312500006,33.970849609374994],[46.01992187500002,33.41572265625],[46.14589843750002,33.229638671874994],[46.14111328125,33.1744140625],[46.08076171875001,33.0865234375],[46.08046875000002,33.028222656249994],[46.09306640625002,32.975878906249996],[46.11279296875,32.957666015624994],[46.377050781250006,32.929248046874996],[46.569921875,32.833935546875],[47.12138671875002,32.466601562499996],[47.28515625,32.474023437499994],[47.32978515625001,32.455517578125],[47.51191406250001,32.150830078125],[47.59150390625001,32.08798828125],[47.71455078125001,31.936425781249994],[47.82998046875002,31.79443359375],[47.75390625,31.601367187499996],[47.67949218750002,31.400585937499997],[47.67949218750002,31.002392578124997],[48.01064453125002,30.989794921874996],[48.01494140625002,30.465625],[48.3310546875,30.285449218749996],[48.546484375,29.962353515624997],[48.454199218750006,29.9384765625],[48.354589843750006,29.956738281249997],[48.141699218750006,30.040917968749994],[47.982519531250006,30.011328125],[47.97871093750001,29.9828125],[47.64375,30.097314453124994],[47.14824218750002,30.0009765625],[46.905859375,29.5375],[46.76933593750002,29.347460937499996],[46.69375,29.259667968749994],[46.53144531250001,29.096240234374996],[46.3564453125,29.063671875],[44.71650390625001,29.193603515625],[43.77373046875002,29.84921875],[42.07441406250001,31.080371093749996],[40.47890625000002,31.893359375],[40.36933593750001,31.93896484375],[40.02783203125,31.995019531249994],[39.7041015625,32.042529296874996],[39.14541015625002,32.12451171875],[39.29277343750002,32.24384765625],[39.24746093750002,32.350976562499994],[39.04140625000002,32.3056640625],[38.773535156250006,33.372216796874994],[40.98701171875001,34.429052734375],[41.19472656250002,34.768994140625],[41.354101562500006,35.640429687499996],[41.295996093750006,36.383349609374996],[41.41679687500002,36.5146484375],[41.78857421875,36.59716796875],[42.358984375,37.10859375],[42.45585937500002,37.128710937499996],[42.63544921875001,37.249267578125],[42.74111328125002,37.3619140625],[42.77460937500001,37.371875],[42.869140625,37.334912109375],[42.936621093750006,37.324755859374996],[43.09248046875001,37.3673828125],[43.67578125,37.22724609375],[43.83642578125,37.223535156249994],[44.01318359375,37.313525390624996],[44.11445312500001,37.30185546875],[44.15625,37.282958984375],[44.19179687500002,37.249853515625],[44.20839843750002,37.20263671875],[44.20166015625,37.051806640624996],[44.281835937500006,36.97802734375],[44.32558593750002,37.0107421875],[44.401953125,37.058496093749994],[44.60595703125,37.176025390625],[44.66933593750002,37.173583984375],[44.73095703125,37.165283203125],[44.76513671875,37.142431640625],[45.053125,36.471630859375],[45.112402343750006,36.40927734375],[45.1552734375,36.407373046874994],[45.20654296875,36.39716796875],[45.24111328125002,36.35595703125],[45.36162109375002,36.01533203125],[45.7763671875,35.821826171874996],[46.16748046875,35.820556640625],[46.2734375,35.773242187499996],[46.2625,35.744140625],[46.18095703125002,35.711376953125],[46.03740234375002,35.673144531249996],[45.97109375000002,35.524169921875],[46.11210937500002,35.321679687499994],[46.15468750000002,35.196728515625],[46.1337890625,35.12763671875],[46.04179687500002,35.08017578125],[45.9208984375,35.028515625],[45.678125,34.7984375],[45.6375,34.573828125]]]},"properties":{"name":"Iraq","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-15.543115234374994,66.228515625],[-14.595849609374994,66.38154296875],[-15.117382812499983,66.125634765625],[-14.698193359374983,66.02021484375],[-14.827099609374983,65.7642578125],[-14.391845703125,65.78740234375],[-14.473388671875,65.575341796875],[-14.166943359374983,65.64228515625],[-13.617871093749983,65.5193359375],[-13.804785156249977,65.35478515625],[-13.599316406249983,65.0359375],[-14.04443359375,64.74189453125],[-14.385107421874977,64.74521484375],[-14.475390624999989,64.493994140625],[-14.927392578124994,64.319677734375],[-15.832910156249994,64.17666015625],[-16.640332031249983,63.865478515625],[-17.81572265624999,63.71298828125],[-17.946923828124994,63.5357421875],[-18.65361328124999,63.406689453125],[-20.198144531249994,63.555810546874994],[-20.494042968749994,63.687353515625],[-20.413964843749994,63.80517578125],[-20.65092773437499,63.73740234375],[-21.15239257812499,63.94453125],[-22.652197265624977,63.827734375],[-22.701171875,64.083203125],[-22.51005859374999,63.991455078125],[-22.187597656249977,64.039208984375],[-21.463330078124983,64.379150390625],[-22.053369140624994,64.313916015625],[-21.950341796874994,64.514990234375],[-21.590625,64.6263671875],[-22.10600585937499,64.533056640625],[-22.467041015625,64.794970703125],[-23.818994140624994,64.73916015625],[-24.02617187499999,64.863427734375],[-22.7880859375,65.046484375],[-21.89213867187499,65.048779296875],[-21.779980468749983,65.1876953125],[-22.50908203124999,65.19677734375],[-21.844384765624994,65.44736328125],[-22.902490234374994,65.58046875],[-23.89990234375,65.407568359375],[-24.475683593749977,65.5251953125],[-24.248925781249994,65.614990234375],[-23.85673828124999,65.53837890625],[-24.092626953124977,65.77646484375],[-23.615917968749983,65.67958984375],[-23.285351562499983,65.75],[-23.832617187499977,65.84921875],[-23.52495117187499,65.880029296875],[-23.77734375,66.017578125],[-23.434472656249994,66.02421875],[-23.452539062499994,66.181005859375],[-23.018994140624983,65.98212890625],[-22.659863281249983,66.025927734375],[-22.61601562499999,65.86748046875],[-22.44169921874999,65.90830078125],[-22.4453125,66.07001953125],[-22.947900390624994,66.212744140625],[-22.48442382812499,66.26630859375],[-23.116943359375,66.338720703125],[-22.9443359375,66.429443359375],[-22.426123046874977,66.430126953125],[-21.406884765624994,66.0255859375],[-21.374902343749994,65.74189453125],[-21.658447265625,65.723583984375],[-21.12968749999999,65.2666015625],[-20.804345703124994,65.63642578125],[-20.454833984375,65.571044921875],[-20.20751953125,66.10009765625],[-19.489697265624983,65.76806640625],[-19.382958984374994,66.07568359375],[-18.845898437499983,66.183935546875],[-18.141943359374977,65.73408203125],[-18.29716796874999,66.157421875],[-17.906982421875,66.143310546875],[-17.550439453124994,65.964404296875],[-17.153027343749983,66.20283203125],[-16.838037109374994,66.125244140625],[-16.485009765624994,66.195947265625],[-16.540673828124994,66.446728515625],[-16.24931640624999,66.522900390625],[-15.985400390624989,66.5146484375],[-15.543115234374994,66.228515625]]]},"properties":{"name":"Iceland","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[35.78730468750001,32.734912109374996],[35.572851562500006,32.640869140625],[35.56904296875001,32.619873046875],[35.55146484375001,32.3955078125],[35.484375,32.401660156249996],[35.40263671875002,32.450634765625],[35.38671875,32.493017578125],[35.303808593750006,32.512939453125],[35.19326171875002,32.534423828125],[35.065039062500006,32.46044921875],[35.01054687500002,32.338183593749996],[34.95595703125002,32.1609375],[34.98974609375,31.91328125],[34.97832031250002,31.86640625],[34.95380859375001,31.841259765624997],[34.96113281250001,31.82333984375],[34.983007812500006,31.81679687499999],[35.05322265625,31.837939453124996],[35.12714843750001,31.816748046875],[35.203710937500006,31.75],[34.95097656250002,31.602294921875],[34.88046875,31.3681640625],[35.45058593750002,31.479296875],[34.97343750000002,29.555029296875],[34.904296875,29.47734375],[34.24531250000001,31.208300781249996],[34.34833984375001,31.292919921874997],[34.350195312500006,31.362744140624997],[34.52558593750001,31.525634765625],[34.47734375000002,31.584863281249994],[34.483984375,31.59228515625],[34.67841796875001,31.895703125],[35.10859375000001,33.08369140625],[35.411230468750006,33.07568359375],[35.869140625,33.43173828125],[35.91347656250002,32.94960937499999],[35.78730468750001,32.734912109374996]]]},"properties":{"name":"Israel","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[15.576562500000051,38.220312500000034],[15.099511718750023,37.45859375],[15.295703125000017,37.05517578124997],[15.112597656250017,36.687841796875006],[14.501855468750023,36.798681640625034],[14.142968750000023,37.103662109374994],[13.90546875000004,37.10063476562502],[13.169921875000028,37.47929687499996],[12.640234375000034,37.594335937500034],[12.435546874999972,37.819775390624955],[12.734375,38.18305664062498],[12.902734375000023,38.03486328124998],[13.291113281250034,38.19145507812502],[13.788867187499989,37.981201171875],[15.11875,38.15273437500002],[15.498730468750011,38.290869140625006],[15.576562500000051,38.220312500000034]]],[[[8.478906250000023,39.067529296874966],[8.421484375000034,38.968652343749994],[8.366796875,39.115917968749955],[8.478906250000023,39.067529296874966]]],[[[8.28603515625008,41.03984375],[8.205664062500034,40.99746093750005],[8.320214843750023,41.121875],[8.28603515625008,41.03984375]]],[[[9.632031250000011,40.88203124999998],[9.805273437500063,40.499560546875045],[9.642968750000023,40.268408203125006],[9.5625,39.16601562500006],[9.056347656250068,39.23916015625002],[8.966601562500074,38.963720703125034],[8.648535156250034,38.92656250000002],[8.418164062500068,39.205712890624966],[8.547753906250023,39.83920898437506],[8.4078125,39.91723632812497],[8.471289062500063,40.29267578124998],[8.189941406250028,40.651611328125],[8.22421875,40.91333007812503],[8.571875,40.85019531250006],[9.228417968750023,41.257080078125],[9.615332031249977,41.01728515624998],[9.632031250000011,40.88203124999998]]],[[[10.395117187500034,42.85815429687503],[10.419335937499994,42.71318359374999],[10.13125,42.742041015625006],[10.395117187500034,42.85815429687503]]],[[[13.420996093750006,46.212304687499994],[13.63251953125004,46.17705078125002],[13.634960937499983,46.15776367187499],[13.61660156250008,46.133105468750045],[13.54804687500004,46.08911132812503],[13.486425781250034,46.03955078124997],[13.480273437500017,46.00922851562501],[13.487695312500023,45.987109375000045],[13.509179687500051,45.973779296874994],[13.6005859375,45.97978515624996],[13.663476562500023,45.7919921875],[13.831152343750006,45.680419921875],[13.719824218750063,45.58759765625001],[13.628320312500051,45.77094726562498],[13.206347656250074,45.771386718749966],[12.27431640625008,45.44604492187503],[12.225683593750034,45.24150390625002],[12.523437500000028,44.96796874999998],[12.248339843750045,44.72250976562498],[12.396289062500074,44.223876953125],[13.56416015625004,43.57128906250003],[14.010449218750011,42.68955078125006],[14.54072265625004,42.24428710937502],[15.16875,41.93403320312498],[16.164648437500034,41.89619140624998],[15.900488281250034,41.51206054687498],[17.954980468749994,40.65517578125002],[18.460644531249983,40.221044921875034],[18.34375,39.82138671874998],[18.077929687500017,39.93696289062498],[17.865039062500074,40.28017578125002],[17.395800781250045,40.34023437499999],[17.179980468750045,40.50278320312498],[16.92822265625,40.45805664062502],[16.521875,39.74755859375003],[17.114550781250017,39.38061523437497],[17.174609375000017,38.998095703125045],[16.61669921875003,38.800146484375034],[16.54560546875001,38.40908203125002],[16.05683593750001,37.941845703124955],[15.72451171875008,37.93911132812502],[15.645800781250017,38.034228515625045],[15.87890625,38.61391601562502],[16.19677734375,38.759228515624955],[16.20996093750003,38.94111328124998],[15.692773437499994,39.99018554687501],[14.95087890625004,40.23901367187497],[14.94765625000008,40.469335937500006],[14.765722656250063,40.66840820312498],[14.339941406250006,40.59882812500001],[14.460546875000063,40.72871093750001],[14.04433593750008,40.81225585937506],[13.733398437500057,41.23564453124999],[13.088671875000074,41.243847656249955],[12.630859374999972,41.469677734374955],[11.637304687500063,42.287548828124955],[11.141210937499977,42.38989257812503],[11.167773437500074,42.53515625000006],[10.708398437500023,42.93632812499999],[10.514843750000011,42.96752929687503],[10.188085937500063,43.947509765625],[8.76582031250004,44.42231445312501],[8.004980468750006,43.87675781249999],[7.4931640625,43.767138671875045],[7.637207031250057,44.16484375],[7.318554687500068,44.13798828125002],[6.900195312499989,44.33574218749996],[6.99267578125,44.82729492187502],[6.634765625000028,45.06816406249996],[7.07832031250004,45.23994140624998],[7.146386718750051,45.381738281249994],[6.790917968750023,45.740869140624966],[7.021093750000034,45.92578124999997],[7.055761718749977,45.90380859375003],[7.129003906249977,45.88041992187499],[7.327929687500017,45.912353515625],[7.9931640625,46.01591796874996],[8.081542968750057,46.25600585937502],[8.231933593750057,46.341210937499966],[8.29853515625004,46.403417968750034],[8.370703125,46.44511718750002],[8.458398437500023,46.24589843750002],[8.818554687500011,46.0771484375],[8.826757812500006,46.06103515625],[8.77802734375004,45.996191406250034],[8.953710937500034,45.83002929687501],[9.023730468750074,45.845703125],[9.203417968750017,46.21923828125],[9.304394531250068,46.49555664062498],[9.399316406250023,46.480664062499955],[9.427636718750023,46.48232421875002],[9.528710937500023,46.306201171875045],[9.57958984375,46.29609375000001],[9.639453125000017,46.29589843749997],[9.78779296875004,46.34604492187498],[9.884472656250011,46.36777343750006],[9.939257812500074,46.36181640625],[10.041015625000028,46.23808593750002],[10.08056640625,46.22797851562501],[10.128320312500051,46.238232421874955],[10.109667968750074,46.36284179687502],[10.081933593750023,46.420751953125006],[10.045605468750068,46.44790039062505],[10.038281250000011,46.483203125000045],[10.061230468750068,46.54677734375002],[10.087011718750063,46.59990234375002],[10.1375,46.614355468750034],[10.195507812500068,46.62109374999997],[10.4306640625,46.55004882812497],[10.409352678571473,46.6092047991071],[10.39794921875,46.66503906250006],[10.406054687500045,46.73486328124997],[10.452832031249983,46.86494140625001],[10.47939453125008,46.85512695312505],[10.579785156250011,46.85371093750001],[10.689257812500017,46.846386718749955],[10.759765625,46.79331054687498],[10.828906250000045,46.775244140625034],[10.927343750000034,46.76948242187501],[10.993261718750034,46.77700195312502],[11.02509765625004,46.796972656250006],[11.063476562500057,46.85913085937497],[11.133886718750006,46.93618164062505],[11.244433593750045,46.975683593750006],[11.433203125000063,46.983056640624994],[11.527539062500011,46.99741210937498],[11.775683593750017,46.986083984375],[12.169433593750028,47.082128906250006],[12.19716796875008,47.075],[12.201269531250034,47.060888671875034],[12.165527343750028,47.028173828125034],[12.130761718750051,46.98476562499999],[12.154101562500017,46.93525390625004],[12.267968750000023,46.83588867187504],[12.330078125,46.75981445312499],[12.388281250000034,46.70263671874997],[12.479199218749983,46.672509765624966],[13.16875,46.572656249999966],[13.3515625,46.55791015624999],[13.490039062500045,46.55556640625002],[13.7,46.52026367187503],[13.679687500000057,46.46289062499997],[13.63710937500008,46.44853515624999],[13.563281250000045,46.41508789062502],[13.399511718749977,46.31752929687502],[13.420996093750006,46.212304687499994]]]]},"properties":{"name":"Italy","childNum":6}},{"geometry":{"type":"Polygon","coordinates":[[[-77.261474609375,18.45742187499999],[-76.349853515625,18.15185546875],[-76.21079101562499,17.913525390624997],[-76.524609375,17.8662109375],[-76.85322265625,17.97373046874999],[-76.94414062499999,17.848779296874994],[-77.11948242187499,17.880078125],[-77.20498046875,17.71494140624999],[-77.36142578124999,17.833691406249997],[-77.76816406249999,17.877392578124997],[-78.04448242187499,18.173828125],[-78.339501953125,18.28720703124999],[-78.21669921875,18.44809570312499],[-77.8734375,18.522216796875],[-77.261474609375,18.45742187499999]]]},"properties":{"name":"Jamaica","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-2.018652343749977,49.23125],[-2.23583984375,49.1763671875],[-2.220507812499989,49.266357421875],[-2.018652343749977,49.23125]]]},"properties":{"name":"Jersey","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[39.14541015625002,32.12451171875],[38.9970703125,32.007470703124994],[38.96230468750002,31.994921875],[38.37548828125,31.847460937499996],[38.111425781250006,31.781152343749994],[37.49335937500001,31.625878906249994],[37.215625,31.556103515624997],[36.95859375,31.491503906249996],[37.980078125,30.5],[37.862890625,30.442626953125],[37.66972656250002,30.34814453125],[37.64990234375,30.330957031249994],[37.63359375000002,30.31328125],[37.55361328125002,30.144580078124996],[37.49072265625,30.01171875],[37.46923828125,29.995068359374997],[36.75527343750002,29.866015625],[36.70390625000002,29.831640625],[36.591796875,29.66611328125],[36.47607421875,29.4951171875],[36.2828125,29.355371093749994],[36.068457031250006,29.200537109375],[34.95078125,29.353515625],[34.97343750000002,29.555029296875],[35.45058593750002,31.479296875],[35.57207031250002,32.237890625],[35.55146484375001,32.3955078125],[35.56904296875001,32.619873046875],[35.572851562500006,32.640869140625],[35.78730468750001,32.734912109374996],[36.3720703125,32.3869140625],[36.818359375,32.317285156249994],[38.773535156250006,33.372216796874994],[39.04140625000002,32.3056640625],[39.24746093750002,32.350976562499994],[39.29277343750002,32.24384765625],[39.14541015625002,32.12451171875]]]},"properties":{"name":"Jordan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[123.88867187499997,24.280126953124977],[123.67978515625012,24.317773437500023],[123.77148437499997,24.41445312499999],[123.93486328125002,24.362011718749983],[123.88867187499997,24.280126953124977]]],[[[124.29316406250004,24.515917968750074],[124.13574218750003,24.347607421874983],[124.08476562500002,24.435839843750017],[124.30195312500004,24.58710937500001],[124.29316406250004,24.515917968750074]]],[[[125.44414062500002,24.7431640625],[125.26894531250005,24.732519531250063],[125.28359375,24.871923828125034],[125.44414062500002,24.7431640625]]],[[[128.25878906249997,26.65278320312501],[127.86708984375,26.442480468749977],[127.80361328125005,26.152539062499983],[127.653125,26.0947265625],[127.90722656250003,26.69360351562497],[128.09765624999997,26.66777343749996],[128.25488281249997,26.88188476562496],[128.25878906249997,26.65278320312501]]],[[[128.99814453125012,27.720800781250006],[128.90000000000012,27.727783203125],[128.9076171875,27.897998046875045],[128.99814453125012,27.720800781250006]]],[[[129.45253906250005,28.20898437499997],[129.3664062500001,28.127734375000045],[129.16464843750012,28.24975585937503],[129.68955078125012,28.517480468750023],[129.45253906250005,28.20898437499997]]],[[[130.6227539062501,30.262988281250017],[130.44560546875002,30.264697265625017],[130.38808593750005,30.38818359375003],[130.49716796875006,30.465527343749983],[130.64355468749997,30.388964843750017],[130.6227539062501,30.262988281250017]]],[[[130.95976562500007,30.39692382812504],[130.87031250000004,30.444238281249994],[131.06035156250007,30.828466796875006],[130.95976562500007,30.39692382812504]]],[[[130.38105468750004,32.42373046875002],[130.24169921874997,32.462792968749994],[130.46142578124997,32.515722656250034],[130.38105468750004,32.42373046875002]]],[[[130.08251953124997,32.22968750000001],[129.9601562500001,32.24375],[130.00976562499997,32.521630859374994],[130.16777343750002,32.54121093749998],[130.19951171875002,32.34057617187506],[130.08251953124997,32.22968750000001]]],[[[128.66533203125002,32.783886718749955],[128.89453124999997,32.65214843750002],[128.69296875000012,32.60473632812506],[128.66533203125002,32.783886718749955]]],[[[129.07695312500002,32.84028320312498],[128.99726562500004,32.95185546874998],[129.10976562500005,33.13256835937503],[129.18193359375002,32.99311523437504],[129.07695312500002,32.84028320312498]]],[[[129.49179687500006,33.22304687499999],[129.37041015625002,33.176025390625],[129.56992187500006,33.36103515625004],[129.49179687500006,33.22304687499999]]],[[[129.79570312500007,33.74882812499999],[129.67480468749997,33.73969726562498],[129.71728515624997,33.8583984375],[129.79570312500007,33.74882812499999]]],[[[131.17460937500007,33.602587890625045],[131.69628906250003,33.60283203124999],[131.53740234375007,33.274072265624994],[131.89658203125006,33.25458984375001],[131.8478515625001,33.118066406249994],[132.0021484375001,32.882373046875045],[131.6603515625001,32.465625],[131.33720703125007,31.4046875],[131.07080078124997,31.436865234374977],[131.09843750000002,31.256152343750017],[130.68574218750004,31.01513671875003],[130.77626953125,31.70629882812497],[130.65507812500002,31.71840820312505],[130.5560546875,31.563085937500034],[130.58876953125,31.178515625000017],[130.20068359374997,31.291894531250023],[130.14726562500002,31.40849609374996],[130.2941406250001,31.45068359375003],[130.3219726562501,31.601464843750023],[130.18789062500005,31.768847656250017],[130.19443359375012,32.090771484374955],[130.64052734375005,32.61923828124998],[130.49785156250002,32.65693359375001],[130.547265625,32.83159179687499],[130.2375,33.177636718749966],[130.12685546875005,33.10483398437506],[130.175,32.851318359375],[130.32646484375002,32.852636718750006],[130.34042968750012,32.70185546875004],[130.05410156250005,32.770800781250045],[129.76855468749997,32.57099609375001],[129.82675781250006,32.72534179687503],[129.67910156250005,33.059960937499966],[129.99169921875003,32.85156249999997],[129.58007812500003,33.23627929687501],[129.61015625000002,33.34365234375005],[129.844140625,33.32177734375003],[129.82568359374997,33.43701171875006],[130.36503906250007,33.634472656249955],[130.4837890625,33.834619140624966],[130.715625,33.92778320312502],[130.953125,33.87202148437504],[131.17460937500007,33.602587890625045]]],[[[132.266015625,33.945166015625006],[132.44492187500006,33.91318359374998],[132.20878906250007,33.87285156250002],[132.266015625,33.945166015625006]]],[[[129.27949218750004,34.123388671875006],[129.18642578125,34.14501953125006],[129.21484374999997,34.320654296875034],[129.3371093750001,34.284765625],[129.27949218750004,34.123388671875006]]],[[[134.35742187500003,34.25634765625],[134.6375,34.22661132812499],[134.73886718750012,33.82050781250001],[134.37705078125012,33.60839843749997],[134.18164062500003,33.24721679687502],[133.95869140625004,33.44833984375006],[133.63203125000004,33.51098632812503],[133.28593750000007,33.35996093749998],[132.97724609375004,32.84199218749998],[132.80429687500006,32.75200195312502],[132.6417968750001,32.76245117187503],[132.70898437500003,32.90249023437505],[132.49511718749997,32.91660156249998],[132.41279296875004,33.43046875],[132.0326171875,33.339990234374994],[132.64306640624997,33.68994140624997],[132.93515625000006,34.09531250000006],[133.19306640625004,33.93320312499998],[133.58203124999997,34.01713867187502],[133.60263671875006,34.24384765625001],[133.94833984375006,34.34804687500002],[134.35742187500003,34.25634765625]]],[[[134.35185546875002,34.48364257812503],[134.25185546875,34.42304687500004],[134.18212890625003,34.51923828124998],[134.35185546875002,34.48364257812503]]],[[[134.9328125000001,34.28813476562499],[134.82441406250004,34.202929687500045],[134.66787109375005,34.294140624999955],[135.00468750000002,34.54404296874998],[134.9328125000001,34.28813476562499]]],[[[129.38564453125,34.35366210937502],[129.26669921875012,34.37045898437506],[129.45107421875005,34.68657226562499],[129.38564453125,34.35366210937502]]],[[[133.37050781250005,36.203857421875],[133.23925781249997,36.178759765625045],[133.20615234375006,36.293408203124955],[133.29570312500002,36.34013671874996],[133.37050781250005,36.203857421875]]],[[[138.34404296875007,37.822119140625006],[138.22519531250006,37.82939453124996],[138.25,38.078466796875006],[138.50361328125004,38.31591796875006],[138.45361328124997,38.07568359375006],[138.57519531249997,38.065527343750034],[138.34404296875007,37.822119140625006]]],[[[141.22929687500007,41.37265625],[141.45546875000005,41.404736328124955],[141.43046875000002,40.72333984374998],[141.7970703125001,40.29116210937502],[141.97695312500005,39.428808593750034],[141.90078125,39.111328125],[141.5462890625,38.762841796874966],[141.4674804687501,38.404150390625006],[141.10839843750003,38.33793945312502],[140.9621093750001,38.148876953124955],[141.00166015625004,37.11464843750002],[140.57353515625007,36.23134765625002],[140.87402343749997,35.72495117187506],[140.457421875,35.51025390625],[140.35468750000004,35.18144531249999],[139.8439453125001,34.914892578125034],[139.82646484375002,35.29667968750002],[140.096875,35.58515624999998],[139.83476562500002,35.658056640625006],[139.65000000000012,35.40913085937501],[139.675,35.149267578125006],[139.47441406250002,35.298535156249955],[139.24941406250005,35.27802734375004],[139.08603515625006,34.83916015624999],[138.8375,34.619238281250034],[138.80273437499997,34.97480468749998],[138.90361328125002,35.02524414062506],[138.71962890625,35.12407226562502],[138.18906250000012,34.596337890624994],[137.543359375,34.66420898437505],[137.06171875000004,34.58281249999999],[137.27519531250002,34.77250976562499],[136.96328125000005,34.83491210937501],[136.87128906250004,34.733105468749955],[136.89707031250006,35.03554687500002],[136.80419921874997,35.05029296875],[136.53300781250007,34.678369140624994],[136.8802734375,34.43359375000006],[136.8537109375001,34.324072265625034],[136.32988281250007,34.17685546875006],[135.91621093750004,33.561718749999955],[135.69531250000003,33.48696289062502],[135.4528320312501,33.55336914062505],[135.12792968749997,34.006982421874994],[135.10009765624997,34.288378906250045],[135.41591796875,34.61748046875002],[134.74003906250007,34.765234375],[134.246875,34.71386718750003],[133.96826171874997,34.52729492187504],[133.14238281250002,34.30244140624998],[132.65654296875007,34.24609375000003],[132.31259765625006,34.32495117187503],[132.14648437499997,33.83876953125002],[131.74052734375007,34.05205078125002],[130.91884765625,33.97573242187502],[130.88925781250012,34.261816406250034],[131.00419921875007,34.39257812500003],[131.35439453125,34.41318359375006],[132.92294921875006,35.511279296875045],[133.98125,35.50722656250002],[135.17431640625003,35.74707031250003],[135.32695312500002,35.52553710937502],[135.68027343750006,35.503125],[135.903125,35.60688476562498],[136.09531250000006,35.767626953125045],[136.06748046875006,36.11684570312505],[136.69814453125005,36.742041015625034],[136.84345703125004,37.38212890624999],[137.32265625,37.52207031249998],[136.89990234375003,37.11767578125],[137.01669921875006,36.83720703124999],[137.24628906250004,36.753173828125],[137.5140625,36.95156250000002],[138.31992187500012,37.21840820312502],[138.88505859375007,37.84394531250001],[139.36386718750006,38.09902343750002],[139.80195312500004,38.881591796875],[140.06474609375002,39.624414062499994],[139.99472656250006,39.855078125],[139.74150390625002,39.92084960937498],[140.01113281250005,40.26035156250006],[139.92285156250003,40.59843750000002],[140.28125,40.84609375000002],[140.3444335937501,41.203320312499955],[140.62763671875004,41.195410156250034],[140.74863281250012,40.830322265625],[140.93603515625003,40.940771484375034],[141.1185546875,40.88227539062501],[141.24423828125006,41.20561523437499],[140.80058593750002,41.138818359374966],[140.80185546875012,41.253662109375],[140.9369140625,41.50556640624998],[141.22929687500007,41.37265625]]],[[[139.48125,42.08100585937498],[139.43134765625004,42.19956054687498],[139.55839843750002,42.235205078125034],[139.48125,42.08100585937498]]],[[[141.29541015625003,45.11933593750001],[141.14531250000002,45.153906250000034],[141.19375,45.24785156249999],[141.29541015625003,45.11933593750001]]],[[[141.07275390624997,45.33286132812498],[141.03398437500007,45.26933593750002],[140.97167968749997,45.465478515624994],[141.07275390624997,45.33286132812498]]],[[[143.82431640625012,44.11699218749999],[144.71523437500005,43.92797851562503],[145.36953125000005,44.32739257812506],[145.13964843750003,43.6625],[145.34082031249997,43.30253906249999],[145.83300781249997,43.38593750000001],[144.92138671874997,43.00092773437498],[143.96933593750006,42.88139648437499],[143.42949218750002,42.41889648437498],[143.2365234375001,42.000195312499955],[141.85136718750007,42.57905273437501],[141.40664062500005,42.54692382812496],[140.98613281250002,42.34213867187498],[140.70976562500002,42.555615234374955],[140.48046875000003,42.559375],[140.32666015625003,42.29335937499999],[141.15097656250012,41.80507812499999],[140.99951171874997,41.73740234375006],[140.65986328125004,41.815576171874994],[140.3849609375001,41.51928710937503],[140.08515625000004,41.43408203125],[139.99531250000004,41.57641601562503],[140.10839843749997,41.912939453125034],[139.83544921874997,42.278076171875],[139.86015625000002,42.58173828125004],[140.43222656250012,42.95410156250006],[140.39238281250002,43.303125],[141.13818359374997,43.17993164062506],[141.37412109375006,43.279638671875006],[141.7609375000001,44.482519531250034],[141.58300781250003,45.15595703125001],[141.66796874999997,45.401269531249966],[141.93769531250004,45.509521484375],[142.88476562499997,44.670117187499955],[143.82431640625012,44.11699218749999]]]]},"properties":{"name":"Japan","childNum":28}},{"geometry":{"type":"Polygon","coordinates":[[[77.04863281249999,35.109912109374996],[76.927734375,35.346630859375],[76.88222656250002,35.4357421875],[76.81279296874999,35.571826171874996],[76.76689453124999,35.66171875],[76.87890625,35.61328125],[77.09003906250001,35.552050781249996],[77.29482421875002,35.508154296875],[77.44648437500001,35.4755859375],[77.57255859374999,35.471826171874994],[77.72402343750002,35.48056640625],[77.79941406250003,35.495898437499996],[77.42343750000003,35.302587890625],[77.16855468750003,35.171533203124994],[77.04863281249999,35.109912109374996]]]},"properties":{"name":"Siachen Glacier","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[50.184472656249994,44.854638671874994],[49.99511718750003,44.93696289062498],[50.10986328124997,45.08193359375002],[50.038867187500074,44.949121093749966],[50.184472656249994,44.854638671874994]]],[[[87.32285156250012,49.085791015625006],[86.8083007812501,49.04970703125002],[86.54941406250012,48.52861328125002],[85.7494140625,48.38505859374999],[85.52597656250006,47.915625],[85.65664062500005,47.254638671875],[85.484765625,47.06352539062496],[84.78613281249997,46.83071289062505],[84.66660156250006,46.97236328125004],[84.016015625,46.97050781250002],[83.02949218750004,47.18593750000002],[82.31523437500002,45.59492187499998],[82.61162109375007,45.424267578124955],[82.52148437500003,45.12548828125],[82.26660156249997,45.21909179687498],[81.94492187500006,45.16083984375001],[81.69199218750012,45.34936523437497],[80.05917968750012,45.006445312500006],[79.871875,44.88378906249997],[80.48154296875006,44.71464843749999],[80.35527343750002,44.09726562500006],[80.78574218750006,43.16157226562504],[80.39023437500006,43.043115234374966],[80.53896484375005,42.873486328124955],[80.20224609375012,42.73447265624998],[80.209375,42.190039062500006],[80.07128906249997,42.302978515625],[79.92109375000004,42.41313476562496],[79.49013671875,42.45756835937496],[79.42822265624997,42.483496093750006],[79.20302734375005,42.66601562499997],[79.16484375000007,42.759033203125],[79.1266601562501,42.775732421875034],[76.98808593750007,42.97358398437501],[76.64648437500003,42.928808593750034],[76.50917968750005,42.91889648437498],[75.9322265625,42.92851562499999],[75.84033203125003,42.9375],[75.78955078124997,42.93291015624999],[75.68173828125,42.83046875],[75.04765625000007,42.904394531250034],[74.20908203125006,43.24038085937502],[73.88603515625002,43.132568359375],[73.55625,43.002783203125006],[73.45019531249997,42.703027343749966],[73.421875,42.59350585937503],[73.49296875000007,42.409033203125034],[73.41162109375003,42.41977539062498],[73.316015625,42.46699218750001],[73.2829101562501,42.50410156250004],[72.85507812500006,42.561132812500006],[72.75292968750003,42.63789062500001],[72.54316406250004,42.67773437500006],[72.27578125,42.757666015625006],[71.76054687500002,42.82148437500004],[71.5142578125,42.766943359375006],[71.42207031250004,42.78315429687504],[71.25664062500002,42.733544921874966],[70.89287109375007,42.339990234374994],[70.94677734374997,42.24868164062505],[69.15361328125002,41.42524414062498],[68.58408203125,40.876269531250045],[68.57265625,40.62265624999998],[68.29189453125,40.656103515625034],[68.04765625000007,40.80927734374998],[68.11308593750007,41.02861328124999],[67.9357421875001,41.19658203125002],[66.70966796875004,41.17915039062501],[66.49863281250006,41.99487304687503],[66.00957031250007,42.00488281250003],[66.1002929687501,42.99082031249998],[65.80302734375002,42.87695312500006],[65.49619140625,43.310546875],[64.9054687500001,43.714697265625006],[64.44316406250007,43.55117187499999],[63.20703125000003,43.62797851562502],[61.99023437500003,43.492138671874955],[61.007910156250006,44.39379882812497],[58.555273437500006,45.55537109375001],[55.97568359375006,44.99492187499996],[55.97744140625005,41.32221679687504],[55.434375,41.296289062499994],[54.85380859375002,41.965185546875006],[54.120996093749994,42.335205078125],[53.0558593750001,42.14775390624999],[52.4938476562501,41.780371093750034],[52.59658203125005,42.760156249999966],[51.898242187500074,42.86962890624997],[51.61601562500002,43.15844726562503],[51.29541015624997,43.17412109375002],[51.30175781249997,43.48237304687501],[50.8307617187501,44.192773437499966],[50.331152343750006,44.32548828125002],[50.25292968749997,44.461523437500006],[50.409472656250074,44.6240234375],[51.543554687500006,44.53100585937506],[51.009375,44.92182617187501],[51.4157226562501,45.35786132812501],[53.20039062500004,45.33198242187498],[52.77382812499999,45.57275390625],[53.13525390625003,46.19165039062497],[53.069433593750006,46.85605468750006],[52.48320312500002,46.99067382812504],[52.13828125,46.82861328124997],[51.178027343750074,47.110156250000045],[49.886328125,46.59565429687504],[49.347460937500074,46.51914062499998],[49.232226562500074,46.33715820312503],[48.54121093750004,46.60561523437502],[48.558398437500074,46.75712890624999],[48.959375,46.77460937499998],[48.16699218750003,47.70878906249996],[47.48193359374997,47.80390624999998],[47.292382812499994,47.74091796875004],[47.06464843750004,48.23247070312499],[46.660937500000074,48.41225585937502],[46.70263671875003,48.80556640625002],[47.031347656250006,49.150292968749994],[46.80205078125002,49.36708984375002],[46.889550781249994,49.69697265625001],[47.42919921874997,50.35795898437502],[47.7057617187501,50.37797851562502],[48.33496093750003,49.858251953125006],[48.7589843750001,49.92832031250006],[48.625097656250006,50.61269531250005],[49.32343750000004,50.851708984374966],[49.49804687500003,51.08359375000006],[50.246875,51.28950195312498],[50.79394531249997,51.729199218749955],[51.16347656250005,51.6474609375],[51.344531250000074,51.47534179687503],[52.21914062499999,51.709375],[52.57119140625005,51.481640624999955],[53.33808593750004,51.48237304687504],[54.139746093750006,51.04077148437503],[54.555273437500006,50.535791015624994],[54.64160156250003,51.011572265625034],[55.68623046875004,50.582861328125006],[56.49140625000004,51.01953124999997],[57.01171874999997,51.06518554687503],[57.44218750000002,50.88886718749998],[57.83886718750003,51.091650390625006],[58.359179687500074,51.063818359375034],[58.88369140625005,50.694433593750006],[59.4523437500001,50.62041015625002],[59.523046875,50.492871093749955],[59.812402343749994,50.58203125],[60.05859374999997,50.850292968749955],[60.42480468749997,50.67915039062498],[60.94228515625005,50.69550781250004],[61.38945312500002,50.86103515625001],[61.55468750000003,51.32460937500005],[60.464746093749994,51.651171875000045],[60.03027343749997,51.93325195312505],[60.99453125000005,52.33686523437504],[60.77441406249997,52.67578124999997],[61.047460937500006,52.97246093750002],[62.08271484375004,53.00541992187499],[61.65986328125004,53.22846679687504],[61.19921874999997,53.28715820312502],[61.22890625,53.445898437500006],[61.53496093750002,53.52329101562506],[60.97949218749997,53.62172851562505],[61.231054687500006,54.01948242187498],[61.92871093750003,53.94648437500004],[64.46123046875002,54.38417968750002],[65.08837890624997,54.340185546875034],[65.476953125,54.62329101562497],[68.15585937500006,54.97670898437505],[68.20625,55.16093750000002],[68.9772460937501,55.389599609374955],[70.18242187500002,55.162451171875034],[70.73808593750007,55.30517578125],[71.18554687500003,54.59931640624998],[71.09316406250005,54.21220703124999],[72.00449218750006,54.20566406249998],[72.18603515625003,54.32563476562501],[72.44677734375003,53.94184570312498],[72.62226562500004,54.13432617187502],[73.22988281250005,53.957812500000045],[73.71240234375003,54.04238281250002],[73.30566406250003,53.707226562499955],[73.40693359375004,53.44755859374999],[73.85898437500006,53.61972656249998],[74.35156250000003,53.487646484375006],[74.45195312500007,53.64726562500002],[75.22021484374997,53.89379882812506],[75.43720703125004,54.08964843749999],[76.8373046875,54.4423828125],[76.65458984375007,54.14526367187503],[76.42167968750007,54.151513671874966],[76.48476562500005,54.02255859374998],[77.85996093750006,53.269189453124994],[79.98623046875,50.774560546874966],[80.42363281250002,50.94628906249997],[80.44804687500002,51.18334960937503],[80.73525390625,51.29340820312498],[81.12724609375002,51.19106445312502],[81.0714843750001,50.96875],[81.38828125000006,50.95649414062501],[81.46591796875006,50.73984375],[82.49394531250007,50.72758789062499],[82.76083984375012,50.89335937500002],[83.35732421875005,50.99458007812504],[83.94511718750007,50.774658203125],[84.32324218749997,50.239160156249966],[84.9894531250001,50.061425781249994],[85.2326171875001,49.61582031249998],[86.1808593750001,49.49931640624996],[86.67548828125004,49.77729492187501],[86.62646484374997,49.56269531250001],[87.32285156250012,49.085791015625006]]]]},"properties":{"name":"Kazakhstan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[35.325292968750006,5.364892578124994],[35.745019531249994,5.343994140625],[35.80029296874997,5.156933593749983],[35.77929687499997,5.105566406250006],[35.756152343750074,4.950488281250031],[35.76308593750005,4.808007812500051],[36.02197265625003,4.468115234374991],[36.90556640625002,4.411474609374991],[37.15458984375002,4.254541015624994],[37.944921875,3.746728515625023],[38.0861328125001,3.648828124999966],[38.22529296875004,3.61899414062502],[38.45156250000005,3.604833984374977],[38.608007812500006,3.600097656249986],[39.49443359375002,3.45610351562496],[39.65751953125002,3.577832031249983],[39.79033203125002,3.754248046875034],[39.8421875,3.851464843750037],[40.765234375,4.273046875000034],[41.02080078125002,4.057470703124991],[41.22089843750004,3.943554687499969],[41.372460937499994,3.94619140624998],[41.48193359375003,3.96328125],[41.737695312499994,3.979052734375003],[41.88398437500004,3.977734375000011],[41.6134765625001,3.59047851562498],[41.34179687499997,3.20166015625],[40.964453125,2.814648437500026],[40.9787109375001,-0.870312500000011],[41.249804687500074,-1.220507812499946],[41.4269531250001,-1.449511718749974],[41.521875,-1.572265625000028],[41.53271484374997,-1.695312499999957],[41.26748046875005,-1.945019531250026],[40.889746093750006,-2.023535156250034],[40.89824218750002,-2.269921874999966],[40.64414062500006,-2.53945312499998],[40.22246093750002,-2.688378906250037],[40.1154296875001,-3.250585937499991],[39.8609375,-3.576757812500006],[39.49091796875004,-4.478417968750023],[39.221777343750006,-4.692382812500014],[37.608203125000074,-3.497070312500028],[37.643847656250074,-3.045410156250028],[33.90322265625005,-1.002050781250034],[33.94316406250002,0.173779296874969],[34.160937500000074,0.605175781250026],[34.4108398437501,0.867285156250034],[34.48173828125002,1.042138671875051],[34.79863281250002,1.24453125],[34.976464843749994,1.719628906250051],[34.97753906249997,1.861914062499991],[34.9640625000001,2.06240234374998],[34.8830078125001,2.417919921875026],[34.90576171875003,2.4796875],[34.44785156250006,3.163476562500037],[34.40722656249997,3.357519531250034],[34.39941406249997,3.412695312500006],[34.44179687499999,3.60625],[34.43769531250004,3.650585937499969],[34.392871093750074,3.691503906250048],[34.26708984375003,3.733154296875],[34.16503906250003,3.812988281250014],[34.18574218750004,3.869775390625037],[34.13203125000004,3.889160156249986],[33.97607421874997,4.220214843750028],[34.176855468750006,4.419091796875037],[34.38017578125002,4.620654296874974],[34.6398437500001,4.875488281250028],[34.878320312499994,5.109570312500026],[35.08447265624997,5.31186523437502],[35.268359375000074,5.492285156250006],[35.325292968750006,5.364892578124994]]]},"properties":{"name":"Kenya","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[72.63994140625002,39.385986328125],[72.22998046875,39.20751953125],[72.14736328125002,39.2607421875],[72.08417968750001,39.31064453125],[72.04277343750002,39.3521484375],[71.77861328125002,39.277978515624994],[71.73222656250002,39.422998046874994],[71.50332031250002,39.478808593749996],[71.51738281250002,39.553857421874994],[71.50302734375,39.582177734374994],[71.4703125,39.603662109374994],[70.79931640625,39.3947265625],[70.50117187500001,39.587353515625],[69.29765625000002,39.524804687499994],[69.2447265625,39.827099609375],[69.27880859375,39.917773437499996],[69.3072265625,39.968554687499996],[69.36542968750001,39.947070312499996],[69.43193359375002,39.909765625],[69.47626953125001,39.919726562499996],[69.47099609375002,39.990625],[69.46875,40.020751953125],[69.966796875,40.20224609375],[70.59921875,39.974511718749994],[70.990625,40.2548828125],[71.3046875,40.286914062499996],[71.69248046875,40.15234375],[72.13125,40.438623046874994],[72.3892578125,40.427392578124994],[72.40205078125001,40.578076171875],[72.6041015625,40.525439453124996],[73.13212890625002,40.82851562499999],[72.65830078125,40.869921875],[72.36406250000002,41.04345703125],[72.294921875,41.039941406249994],[72.21308593750001,41.0142578125],[72.18730468750002,41.025927734374996],[72.18095703125002,41.118457031249996],[72.16425781250001,41.173730468749994],[72.11542968750001,41.186572265624996],[72.05244140625001,41.16474609375],[71.95849609375,41.187060546874996],[71.87861328125001,41.19501953125],[71.8580078125,41.311376953125],[71.79248046875,41.413134765624996],[71.75771484375002,41.428027343749996],[71.70068359375,41.454003906249994],[71.66494140625002,41.5412109375],[71.6375,41.5341796875],[71.60224609375001,41.503271484375],[71.60625,41.367431640625],[71.54560546875001,41.308056640625],[71.5,41.307470703125],[71.4208984375,41.34189453125],[71.40839843750001,41.136035156249996],[71.39306640625,41.123388671875],[71.11074218750002,41.152636718749996],[70.86044921875,41.224902343749996],[70.734375,41.400537109374994],[70.18095703125002,41.571435546874994],[70.85664062500001,42.030810546874996],[71.0322265625,42.077783203124994],[71.228515625,42.162890625],[71.23232421875002,42.186279296875],[71.21269531250002,42.206445312499994],[71.12998046875,42.25],[71.03603515625002,42.28466796875],[70.97900390625,42.266552734375],[70.94677734375,42.248681640624994],[70.89287109375002,42.339990234374994],[71.25664062500002,42.733544921874994],[71.42207031250001,42.783154296875],[71.5142578125,42.766943359375],[71.76054687500002,42.821484375],[72.16181640625001,42.760693359375],[72.27578125000002,42.757666015625],[72.54316406250001,42.677734375],[72.7529296875,42.637890625],[72.855078125,42.5611328125],[73.28291015625001,42.5041015625],[73.316015625,42.4669921875],[73.41162109375,42.419775390625],[73.49296875000002,42.409033203125],[73.421875,42.593505859375],[73.4501953125,42.703027343749994],[73.55625,43.002783203125],[73.88603515625002,43.132568359375],[74.20908203125,43.240380859374994],[75.04765625000002,42.90439453125],[75.68173828125,42.83046875],[75.78955078125,42.932910156249996],[75.84033203125,42.9375],[75.9322265625,42.928515625],[76.50917968750002,42.918896484375],[76.646484375,42.92880859375],[76.98808593749999,42.973583984375],[79.12666015625001,42.775732421875],[79.20302734375002,42.666015625],[79.29550781250003,42.604833984375],[79.36777343750003,42.547216796875],[79.42822265625,42.48349609375],[79.92109375000001,42.413134765624996],[80.0712890625,42.302978515625],[80.209375,42.1900390625],[80.24619140625003,42.059814453125],[80.23515624999999,42.04345703125],[80.21621093750002,42.032421875],[79.90966796875,42.014990234375],[79.84042968750003,41.995751953124994],[79.76611328125,41.898876953125],[78.74257812500002,41.56005859375],[78.54316406250001,41.4595703125],[78.44287109375,41.417529296874996],[78.36240234375003,41.371630859374996],[78.34628906250003,41.2814453125],[78.12343750000002,41.075634765625],[77.95644531250002,41.050683593749994],[77.81523437499999,41.055615234375],[77.71933593750003,41.024316406249994],[77.58173828125001,40.9927734375],[76.98662109374999,41.03916015625],[76.90771484375,41.024169921875],[76.82402343749999,40.982324218749994],[76.70839843750002,40.818115234375],[76.6611328125,40.779638671875],[76.63984375000001,40.742236328124996],[76.62216796875003,40.662353515625],[76.57792968749999,40.577880859375],[76.48017578125001,40.449511718749996],[76.39638671875002,40.389794921874994],[76.31855468750001,40.35224609375],[76.25830078125,40.43076171875],[75.87197265625002,40.30322265625],[75.67714843750002,40.305810546874994],[75.55556640625002,40.6251953125],[75.52080078125002,40.6275390625],[75.24101562500002,40.480273437499996],[75.111328125,40.4541015625],[75.0044921875,40.449511718749996],[74.865625,40.493505859375],[74.80126953125,40.428515625],[74.83046875000002,40.32851562499999],[74.41191406250002,40.13720703125],[74.24267578125,40.092041015625],[74.08515625000001,40.07431640625],[73.99160156250002,40.043115234374994],[73.93876953125002,39.978808593749996],[73.88457031250002,39.8779296875],[73.85625,39.828662109374996],[73.83535156250002,39.800146484375],[73.83974609375002,39.762841796874994],[73.88251953125001,39.71455078125],[73.9146484375,39.606494140624996],[73.90712890625002,39.57851562499999],[73.87275390625001,39.53330078125],[73.82294921875001,39.48896484375],[73.71572265625002,39.462255859375],[73.63164062500002,39.448876953124994],[73.47041015625001,39.460595703124994],[73.38740234375001,39.442724609375],[73.33613281250001,39.412353515625],[73.2349609375,39.374560546874996],[73.10927734375002,39.3619140625],[72.63994140625002,39.385986328125]],[[70.66416015625,39.85546875],[70.56708984375001,39.866601562499994],[70.49775390625001,39.882421875],[70.48281250000002,39.882714843749994],[70.4892578125,39.863037109375],[70.5595703125,39.790917968749994],[70.61210937500002,39.786767578124994],[70.70166015625,39.82529296875],[70.66416015625,39.85546875]],[[71.20615234375,39.892578125],[71.22871093750001,40.048144531249996],[71.08037109375002,40.079882812499996],[71.02412109375001,40.149169921875],[71.00546875,40.152294921875],[70.96064453125001,40.08798828125],[71.04482421875002,39.992529296875],[71.04365234375001,39.976318359375],[71.01171875,39.8951171875],[71.06425781250002,39.884912109374994],[71.15625,39.883447265624994],[71.20615234375,39.892578125]]]},"properties":{"name":"Kyrgyzstan","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[104.42636718750006,10.411230468749991],[103.87050781250005,10.655126953125034],[103.58710937500004,10.552197265625026],[103.54042968750005,10.668701171875043],[103.721875,10.890136718750043],[103.5324218750001,11.146679687499997],[103.35361328125006,10.921582031250054],[103.15283203124997,10.913720703125051],[103.12548828124997,11.460644531250011],[102.9486328125,11.773486328124974],[102.93388671875002,11.706689453125037],[102.73662109375007,12.089794921875011],[102.75566406250002,12.42626953125],[102.49960937500012,12.669970703125003],[102.33632812500005,13.560302734375014],[102.546875,13.585693359375043],[102.90927734375006,14.136718750000028],[103.19941406250004,14.332617187499977],[104.77900390625004,14.427832031250006],[105.07412109375005,14.227441406250037],[105.12597656250003,14.280957031250011],[105.16914062500004,14.336083984374966],[105.1833007812501,14.346240234374989],[105.18554687500003,14.319091796874972],[105.20703125000003,14.259375],[105.24570312500006,14.200537109374977],[105.35019531250006,14.109570312500011],[105.53154296875007,14.156152343749994],[105.73974609375003,14.084960937500057],[105.83144531250005,13.976611328125003],[105.9044921875001,13.924511718750054],[106.06679687500005,13.921191406250003],[106.12470703125004,14.049121093750031],[106.09667968749997,14.127099609375023],[106.00410156250004,14.262890624999983],[105.97890625,14.343017578125043],[106.00839843750012,14.357177734375],[106.1652343750001,14.372363281249989],[106.19072265625007,14.388134765624997],[106.22539062500002,14.476220703125009],[106.26796875,14.466210937500009],[106.35498046875003,14.454785156249997],[106.44697265625004,14.515039062500009],[106.50146484375003,14.578222656250006],[106.53115234375005,14.549414062499991],[106.5636718750001,14.505078125000026],[106.59921875000006,14.479394531250037],[106.66542968750005,14.441308593749994],[106.73818359375005,14.387744140625017],[106.78349609375002,14.335107421875037],[106.81992187500006,14.314697265625057],[106.91318359375006,14.329394531250031],[106.93808593750006,14.327343750000054],[106.99218750000003,14.391015624999966],[107.03017578125,14.425683593750009],[107.06240234375,14.415771484375043],[107.109375,14.416699218750054],[107.29267578125004,14.592382812500048],[107.37988281250003,14.555322265625051],[107.41474609375004,14.56289062499999],[107.51943359375005,14.705078125],[107.3314453125,14.126611328125009],[107.60546874999997,13.437792968750017],[107.47539062500002,13.030371093749963],[107.50644531250006,12.364550781250031],[107.39335937500002,12.260498046874972],[107.21210937500004,12.30400390624996],[106.70009765625,11.979296874999974],[106.41386718750002,11.9484375],[106.39921875000007,11.687011718750028],[106.0060546875001,11.758007812500011],[105.85146484375005,11.635009765625],[105.85605468750006,11.294287109375048],[106.16093750000002,11.037109375000057],[106.16396484375005,10.794921875],[105.85332031250007,10.86357421874996],[105.75507812500004,10.989990234375043],[105.40576171875003,10.95161132812504],[105.3146484375001,10.845166015625026],[105.04570312500002,10.911376953125014],[105.04638671874997,10.701660156250014],[104.85058593749997,10.534472656249974],[104.42636718750006,10.411230468749991]]]},"properties":{"name":"Cambodia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-157.34213867187503,1.855566406250034],[-157.17578125,1.73984375],[-157.57895507812498,1.902050781249997],[-157.43583984374993,1.84726562500002],[-157.365185546875,1.94609375],[-157.44189453125003,2.025048828125009],[-157.321875,1.968554687500045],[-157.34213867187503,1.855566406250034]]],[[[-159.3390625,3.923535156249983],[-159.27475585937503,3.796582031250054],[-159.40903320312503,3.87324218750004],[-159.3390625,3.923535156249983]]]]},"properties":{"name":"Kiribati","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[126.32695312500002,33.2236328125],[126.16562500000012,33.31201171875],[126.33769531250002,33.46040039062501],[126.90117187500002,33.51513671874997],[126.87285156250002,33.34116210937498],[126.32695312500002,33.2236328125]]],[[[126.23369140625002,34.370507812499994],[126.12285156250002,34.443945312500034],[126.34384765625012,34.544921875],[126.23369140625002,34.370507812499994]]],[[[126.17197265625006,34.73115234375001],[126.00751953125004,34.86748046874999],[126.07841796875002,34.914843750000045],[126.17197265625006,34.73115234375001]]],[[[128.0658203125,34.80585937500004],[128.05468750000003,34.70805664062502],[127.87343750000005,34.73496093749998],[127.8322265625001,34.87451171875],[128.0658203125,34.80585937500004]]],[[[128.74101562500007,34.798535156249955],[128.64667968750004,34.73686523437502],[128.48925781250003,34.86528320312496],[128.66796875000003,35.0087890625],[128.74101562500007,34.798535156249955]]],[[[126.52070312500004,37.73681640625003],[126.516015625,37.60468750000001],[126.42333984375003,37.62363281250006],[126.41162109374997,37.82265625000002],[126.52070312500004,37.73681640625003]]],[[[128.37460937500012,38.6234375],[129.41826171875002,37.059033203124955],[129.40351562500004,36.052148437499994],[129.57285156250006,36.05053710937503],[129.4191406250001,35.49785156249996],[129.07675781250006,35.12270507812502],[128.5109375000001,35.10097656250002],[128.44394531250012,34.87036132812503],[128.03623046875006,35.02197265625],[127.71484374999997,34.95468749999998],[127.71542968750012,34.72104492187498],[127.40429687499997,34.823095703125006],[127.47910156250012,34.625244140625],[127.324609375,34.463281249999966],[127.17343750000006,34.54614257812497],[127.24707031249997,34.755126953125],[126.89746093749997,34.438867187499966],[126.75478515625005,34.511865234374994],[126.53144531250004,34.31425781249999],[126.26445312500002,34.67324218750002],[126.52451171875006,34.697900390624966],[126.59335937500012,34.824365234374994],[126.42070312500002,34.823388671874966],[126.29111328125012,35.154150390625034],[126.61406250000007,35.57099609375004],[126.4884765625001,35.647070312500006],[126.75302734375006,35.871972656249994],[126.5404296875,36.166162109374966],[126.4876953125,36.69379882812498],[126.18085937500004,36.69160156249998],[126.16054687500005,36.77192382812501],[126.48701171875004,37.00747070312502],[126.78447265625007,36.94843749999998],[126.87207031249997,36.82446289062506],[126.97685546875002,36.93940429687501],[126.74638671875002,37.19355468750001],[126.63388671875012,37.78183593750006],[127.09033203125003,38.28388671875001],[128.03896484375,38.30854492187498],[128.37460937500012,38.6234375]]]]},"properties":{"name":"Korea","childNum":7}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[48.27539062499997,29.624316406250017],[48.17968750000003,29.611425781250063],[48.081445312499994,29.798925781250063],[48.1847656250001,29.978857421875034],[48.348242187500006,29.78266601562504],[48.27539062499997,29.624316406250017]]],[[[48.442480468750006,28.542919921874983],[47.671289062499994,28.53315429687504],[47.433203125,28.989550781250017],[46.53144531250004,29.09624023437499],[46.69375,29.259667968749966],[46.76933593750002,29.347460937500017],[46.90585937500006,29.5375],[47.14824218750002,30.0009765625],[47.64375,30.097314453125023],[47.75390624999997,30.076611328124955],[47.97871093750004,29.98281250000005],[48.00566406250002,29.835791015625034],[48.143457031249994,29.57246093750001],[47.96962890625005,29.61669921874997],[47.72265624999997,29.393017578124955],[48.0514648437501,29.355371093750023],[48.442480468750006,28.542919921874983]]]]},"properties":{"name":"Kuwait","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[102.12744140625011,22.37919921874999],[102.58251953125006,21.904296875000057],[102.66201171875008,21.676025390625057],[102.73857421875005,21.677929687500125],[102.77109375000015,21.70966796875001],[102.79824218750014,21.797949218750034],[102.81591796875,21.807373046875],[102.94960937500008,21.681347656250068],[102.85117187500009,21.26591796874999],[102.8837890625,21.202587890625068],[103.1044921875,20.89165039062499],[103.21074218749999,20.840625],[103.46357421874995,20.779833984375102],[103.6350585937501,20.697070312500102],[104.10136718750005,20.945507812500125],[104.1953125,20.91396484375008],[104.349609375,20.82109374999999],[104.58320312500001,20.646679687499955],[104.53271484375,20.554882812500125],[104.47861328124998,20.529589843750102],[104.40781250000015,20.485742187500023],[104.36777343750015,20.441406250000057],[104.39218750000015,20.424755859375068],[104.49619140625003,20.41367187499992],[104.61884765624995,20.374511718750114],[104.65644531250001,20.328515624999966],[104.66191406250005,20.289013671875125],[104.67695312500007,20.224707031249977],[104.69873046875006,20.205322265625114],[104.84785156250007,20.202441406250045],[104.88867187500006,20.169091796875023],[104.92919921874994,20.082812500000045],[104.92792968750007,20.01811523437499],[104.81513671875001,19.90400390625001],[104.80175781250011,19.836132812500068],[104.74316406250006,19.754736328124977],[104.58789062500006,19.61875],[104.54628906250014,19.610546875000068],[104.25986328125003,19.685498046875068],[104.06279296875005,19.678417968750068],[104.03203124999999,19.67514648437492],[104.0134765625001,19.646484374999943],[104.05156250000005,19.564160156250068],[104.06289062500002,19.482568359375136],[104.02753906250013,19.420458984375102],[103.93203125000002,19.366064453125034],[103.89638671875002,19.339990234375023],[103.89160156249994,19.30498046874999],[105.146484375,18.650976562499977],[105.14541015625014,18.616796874999977],[105.08701171875015,18.49624023437508],[105.11455078125005,18.405273437500057],[105.45820312500007,18.154296875000057],[105.51855468750011,18.077441406250045],[105.58847656250015,17.983691406249932],[105.69140625,17.737841796874932],[106.00625,17.415283203124943],[106.26953125,17.216796875000057],[106.33339843750002,17.14370117187508],[106.42597656250007,17.00253906250009],[106.50224609374999,16.9541015625],[106.52597656250003,16.876611328125023],[106.53369140625,16.821044921875057],[106.54619140625005,16.650732421874977],[106.65644531250013,16.492626953125125],[106.73955078124999,16.452539062500136],[106.79160156250015,16.490332031249977],[106.83242187500008,16.526269531250023],[106.85107421875,16.515625],[106.89277343750013,16.396533203125102],[106.93066406250006,16.353125],[107.39638671875008,16.04301757812499],[107.39199218750008,15.951660156250057],[107.36064453125005,15.921728515624977],[107.18886718750008,15.838623046875114],[107.16591796875002,15.802490234375],[107.27939453125003,15.618701171875045],[107.33876953125002,15.560498046875125],[107.56425781249999,15.3916015625],[107.62167968750015,15.309863281250045],[107.653125,15.255224609375091],[107.63369140625008,15.18984375000008],[107.58964843749999,15.118457031250102],[107.55527343750009,15.057031250000023],[107.48037109375014,14.979882812500136],[107.5046875000001,14.91591796875008],[107.52451171875003,14.871826171874943],[107.51376953124998,14.817382812500057],[107.51943359375008,14.705078125000114],[107.46513671875005,14.664990234375125],[107.41474609375007,14.56289062500008],[107.37988281250006,14.555322265625136],[107.29267578125007,14.592382812500034],[107.109375,14.416699218749955],[107.06240234375008,14.415771484374943],[107.03017578125008,14.425683593750023],[106.99218749999994,14.39101562500008],[106.93808593750015,14.327343750000068],[106.91318359375003,14.329394531249932],[106.81992187500003,14.314697265624943],[106.7834960937501,14.335107421875023],[106.73818359375008,14.387744140625102],[106.66542968750002,14.441308593750023],[106.59921875000003,14.479394531250136],[106.56367187500007,14.505078125000011],[106.53115234375002,14.549414062499977],[106.50146484375,14.578222656250034],[106.22539062500005,14.476220703125023],[106.1907226562501,14.388134765625011],[106.16523437500007,14.372363281249989],[106.00839843750009,14.357177734375114],[105.97890625000014,14.343017578125057],[106.00410156250013,14.262890625000068],[106.09667968750011,14.127099609375136],[106.12470703124995,14.049121093750045],[106.06679687500008,13.921191406250102],[105.90449218750007,13.924511718750068],[105.83144531250008,13.976611328124989],[105.73974609375006,14.084960937500057],[105.5315429687501,14.156152343750023],[105.35019531250009,14.109570312500125],[105.24570312500015,14.200537109374977],[105.20703125000006,14.259375],[105.18554687499994,14.319091796875],[105.18330078125001,14.346240234374989],[105.24365234375006,14.367871093749955],[105.34218750000008,14.416699218749955],[105.42265624999993,14.471630859374955],[105.47558593750006,14.530126953124977],[105.49736328125005,14.590673828125034],[105.52304687500015,14.843310546874989],[105.54667968749999,14.932470703125034],[105.53339843750013,15.041601562500091],[105.49042968750007,15.127587890625023],[105.49042968750007,15.256591796875],[105.615625,15.488281249999943],[105.63886718750013,15.585937499999943],[105.64101562500002,15.656542968749932],[105.62207031250006,15.699951171875114],[105.39892578125011,15.829882812500102],[105.40625,15.987451171875023],[105.33066406250003,16.037890625000045],[105.1487304687501,16.09355468749999],[105.04716796874999,16.16025390625009],[104.81933593749994,16.466064453125057],[104.75058593750015,16.647558593750034],[104.74355468750014,16.884375],[104.75898437500013,17.0771484375],[104.81601562499998,17.30029296875],[104.73964843750008,17.461669921875],[104.428125,17.698974609375057],[104.32265625000002,17.815820312500023],[104.19619140625002,17.988378906250034],[104.04873046875002,18.216699218749966],[103.94960937500008,18.318994140625023],[103.89882812500002,18.295312500000023],[103.79228515624999,18.31650390625009],[103.62968750000005,18.382568359375057],[103.48798828124995,18.41816406250001],[103.36699218750005,18.42333984375],[103.28828124999995,18.408398437499955],[103.25175781249999,18.373486328125125],[103.24892578125014,18.338964843750034],[103.27958984374999,18.304980468750045],[103.26318359375,18.278466796875136],[103.19970703125006,18.25947265625001],[103.14853515625009,18.221728515624932],[103.09121093750014,18.13823242187499],[103.05136718750003,18.02851562500001],[102.80742187500005,17.945556640625],[102.71757812500005,17.892236328125136],[102.67519531250014,17.851757812500068],[102.68007812500008,17.824121093750136],[102.66064453125,17.8179687499999],[102.61679687500015,17.833349609375034],[102.59824218750009,17.926757812500057],[102.55253906249999,17.965087890625057],[102.4587890625001,17.984619140624943],[102.35185546874999,18.045947265625045],[102.14824218750005,18.203857421875057],[102.10146484375014,18.21064453125001],[102.03457031250002,18.169824218750023],[101.94746093750001,18.081494140624955],[101.87548828125011,18.046435546874932],[101.81865234375005,18.064648437500125],[101.77480468750002,18.033398437500125],[101.6875,17.889404296875114],[101.56367187500001,17.820507812500125],[101.55507812500002,17.812353515625034],[101.41367187500015,17.71875],[101.16748046875011,17.4990234375],[101.10517578125001,17.479541015625102],[100.9084960937501,17.583886718750023],[101.14394531250008,18.14262695312499],[101.1375,18.286865234375057],[101.0505859375001,18.407031250000045],[101.04697265625003,18.441992187500034],[101.28632812499995,18.977148437500034],[101.19755859374999,19.327929687500045],[101.22080078125015,19.486621093750045],[101.21191406250011,19.548339843750057],[100.51357421875008,19.553466796875],[100.39765625000013,19.756103515625057],[100.51953125000006,20.177929687500068],[100.31796875000003,20.385888671875136],[100.2180664062501,20.339599609375114],[100.13974609375015,20.245410156250102],[100.11494140625007,20.25766601562492],[100.12246093750002,20.316650390625057],[100.12968750000005,20.372216796875023],[100.1838867187501,20.589111328124943],[100.2493164062501,20.730273437499932],[100.32607421875008,20.795703124999932],[100.40742187499995,20.823242187500057],[100.56513671875013,20.82509765625008],[100.62294921875002,20.85957031250001],[100.61767578125,20.87924804687509],[100.54931640625011,20.884228515625068],[100.5222656250001,20.921923828125102],[100.53613281250006,20.992382812500068],[100.703125,21.25136718750008],[101.0803710937501,21.46865234375008],[101.13886718750013,21.567480468749977],[101.19667968750002,21.522070312499977],[101.17539062500009,21.407519531250102],[101.21992187500013,21.342431640625136],[101.21181640625008,21.278222656250023],[101.22441406249999,21.22373046874992],[101.24785156249993,21.197314453125045],[101.28144531250007,21.184130859375045],[101.44355468750001,21.230810546874977],[101.54238281250008,21.234277343750136],[101.70478515625013,21.150146484375057],[101.728125,21.15639648437508],[101.78349609374999,21.204150390625045],[101.8005859375001,21.212597656249955],[101.7229492187501,21.314941406250057],[101.74726562500007,21.60576171874999],[101.7439453125001,21.77797851562508],[101.73652343750001,21.826513671874977],[101.52451171874998,22.253662109375],[101.56787109375011,22.2763671875],[101.6199218750001,22.327441406250102],[101.67148437500009,22.462304687500023],[101.70751953125,22.486572265625],[101.73876953125011,22.495263671874966],[101.75996093750001,22.490332031250034],[101.841796875,22.388476562500102],[102.02441406250006,22.439208984375114],[102.09150390625007,22.412255859375136],[102.12744140625011,22.37919921874999]]]},"properties":{"name":"Lao PDR","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[35.869140625,33.43173828125],[35.411230468750006,33.07568359375],[35.10859375000001,33.08369140625],[35.64785156250002,34.2482421875],[35.97626953125001,34.629199218749996],[36.383886718750006,34.65791015625],[36.32988281250002,34.499609375],[36.50439453125,34.432373046875],[36.5849609375,34.221240234374996],[36.27783203125,33.92529296875],[36.36503906250002,33.83935546875],[35.98613281250002,33.75263671875],[36.03447265625002,33.58505859375],[35.869140625,33.43173828125]]]},"properties":{"name":"Lebanon","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-8.486425781249977,7.558496093749994],[-8.408740234374989,7.411816406249997],[-8.324511718749989,6.920019531249991],[-8.587890625,6.490527343749989],[-8.287109375,6.319042968749997],[-7.981591796874994,6.2861328125],[-7.888623046874983,6.23486328125],[-7.800927734374994,6.038916015624991],[-7.730371093749994,5.919042968749991],[-7.636132812499994,5.90771484375],[-7.454394531249989,5.84130859375],[-7.39990234375,5.550585937499989],[-7.585058593749977,4.916748046875],[-7.574658203124983,4.572314453124989],[-7.544970703124989,4.351318359375],[-8.259033203125,4.589990234374994],[-9.132177734374977,5.054638671874997],[-10.2763671875,6.07763671875],[-11.291601562499977,6.688232421875],[-11.507519531249983,6.906542968749989],[-11.267675781249977,7.232617187499997],[-10.878076171874994,7.538232421874994],[-10.6474609375,7.759375],[-10.570849609374989,8.071142578124991],[-10.516748046874994,8.125292968749989],[-10.359814453124983,8.187939453124997],[-10.283203125,8.485156249999989],[-10.233056640624994,8.488818359374989],[-10.147412109374983,8.519726562499997],[-10.064355468749994,8.429882812499997],[-9.781982421875,8.537695312499991],[-9.518261718749983,8.34609375],[-9.369140625,7.703808593749997],[-9.463818359374983,7.415869140624991],[-9.11757812499999,7.215917968749991],[-8.8896484375,7.2626953125],[-8.659765624999977,7.688378906249994],[-8.486425781249977,7.558496093749994]]]},"properties":{"name":"Liberia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[25.150488281250006,31.654980468749997],[24.85273437500001,31.334814453125],[24.96142578125,30.678515625],[24.703222656250006,30.201074218749994],[24.980273437500017,29.181884765625],[24.980273437500017,25.5888671875],[24.980273437500017,21.995849609375],[24.9794921875,20.002587890624994],[23.980273437500017,19.99594726562499],[23.980273437500017,19.496630859375003],[20.14765625000001,21.38925781249999],[15.984082031250011,23.445214843749994],[14.97900390625,22.99619140624999],[14.215527343750011,22.619677734375003],[13.48125,23.18017578125],[11.967871093750006,23.517871093750003],[11.507617187500017,24.314355468749994],[10.686132812500006,24.55136718749999],[10.395898437500023,24.485595703125],[10.255859375,24.591015625],[10.000683593750011,25.332080078125003],[9.4482421875,26.067138671875],[9.491406250000011,26.333740234375],[9.883203125000023,26.630810546874997],[9.74755859375,27.330859375],[9.916015625,27.785693359374996],[9.805273437500006,29.176953125],[9.310253906250011,30.115234375],[9.51875,30.229394531249994],[9.89501953125,30.3873046875],[9.932519531250023,30.425341796874996],[10.059765625000011,30.580078125],[10.21640625,30.783203125],[10.114941406250011,31.463769531249994],[10.274609375000011,31.684960937499994],[10.475781250000011,31.736035156249997],[10.60888671875,31.929541015625],[10.826367187500011,32.0806640625],[11.005175781250017,32.172705078125],[11.168261718750017,32.256738281249994],[11.358007812500006,32.34521484375],[11.504980468750006,32.413671875],[11.535937500000017,32.47333984375],[11.533789062500006,32.524951171874996],[11.453906250000017,32.642578125],[11.453906250000017,32.781689453125],[11.459179687500011,32.897363281249994],[11.467187500000023,32.965722656249994],[11.504589843750011,33.181933593749996],[11.657128906250023,33.118896484375],[11.8134765625,33.093701171875],[12.279882812500006,32.858544921874994],[12.753515625,32.801074218749996],[13.283496093750017,32.9146484375],[15.176562500000017,32.391162109374996],[15.705957031250023,31.426416015624994],[17.830468750000023,30.927587890625],[18.669824218750023,30.415673828124994],[19.12373046875001,30.26611328125],[19.713281250000023,30.48837890625],[20.11152343750001,30.963720703125],[19.926367187500006,31.817529296874994],[20.121484375000023,32.21875],[20.62109375,32.58017578125],[21.63593750000001,32.937304687499996],[22.187402343750023,32.918261718749996],[23.090625,32.61875],[23.10625,32.331445312499994],[23.28632812500001,32.213818359375],[24.129687500000017,32.009228515625],[24.878515625,31.984277343749994],[25.150488281250006,31.654980468749997]]]},"properties":{"name":"Libya","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-60.89521484375,13.821972656249997],[-60.951416015625,13.717578125],[-61.073144531249994,13.865576171874991],[-60.908105468749994,14.09335937499999],[-60.89521484375,13.821972656249997]]]},"properties":{"name":"Saint Lucia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[79.87480468750002,9.050732421875026],[79.90371093750005,8.975],[79.74765625000006,9.104589843749991],[79.87480468750002,9.050732421875026]]],[[[79.98232421875,9.812695312500011],[80.25283203125005,9.796337890625054],[80.71113281250004,9.366357421875023],[81.226953125,8.50551757812498],[81.37285156250002,8.431445312499989],[81.42216796875007,8.147851562500023],[81.87412109375012,7.288330078124986],[81.86142578125012,6.901269531249994],[81.63740234375004,6.425146484374991],[80.72412109375003,5.97905273437496],[80.26738281250007,6.009765625],[80.09531250000012,6.153173828125006],[79.859375,6.829296874999983],[79.71298828125012,8.18232421875004],[79.74980468750007,8.294238281250003],[79.78349609375007,8.018457031250051],[79.92890625000004,8.899218749999974],[80.09960937499997,9.209960937500043],[80.08632812500005,9.577832031250026],[80.42832031250006,9.480957031250014],[80.04580078125005,9.649902343749972],[79.98232421875,9.812695312500011]]]]},"properties":{"name":"Sri Lanka","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[28.646875,-30.1265625],[28.39208984375,-30.147558593750006],[28.128710937500017,-30.52509765625001],[28.05683593750001,-30.63105468750001],[27.753125,-30.6],[27.364062500000017,-30.27919921875001],[27.19355468750001,-29.94130859375001],[27.056933593750017,-29.625585937500006],[27.29453125,-29.519335937500003],[27.73554687500001,-28.940039062500006],[27.959863281250023,-28.873339843750003],[28.084375,-28.77998046875001],[28.23261718750001,-28.701269531250006],[28.471875,-28.615820312500006],[28.583398437500023,-28.594140625],[28.625781250000017,-28.58173828125001],[29.301367187500006,-29.08984375],[29.38671875,-29.31972656250001],[29.34882812500001,-29.441992187500006],[29.293554687500006,-29.56689453125],[29.1421875,-29.700976562500003],[29.098046875000023,-29.919042968750006],[28.646875,-30.1265625]]]},"properties":{"name":"Lesotho","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[20.957812500000074,55.27890625000006],[20.89980468750008,55.286669921875045],[21.11484375,55.61650390624999],[20.957812500000074,55.27890625000006]]],[[[25.573046875000017,54.139892578125],[25.497363281250045,54.17524414062501],[25.52734375000003,54.21513671874996],[25.505664062500045,54.26494140624999],[25.46113281250004,54.29277343749996],[25.179492187500017,54.214257812499966],[25.111425781250006,54.15493164062505],[25.04609375000004,54.13305664062503],[24.869531250000023,54.14516601562502],[24.82568359374997,54.118994140625006],[24.78925781250001,53.99824218750001],[24.768164062499977,53.97465820312499],[24.31796875,53.892968749999966],[24.236621093750045,53.91997070312496],[24.19130859375005,53.95043945312503],[23.559082031250057,53.91982421875002],[23.484667968750074,53.939794921875006],[23.453613281250057,54.14345703125002],[23.3701171875,54.20048828124999],[23.282324218750063,54.240332031250034],[23.17031250000008,54.28144531249998],[23.0875,54.299462890624994],[23.042187500000068,54.30419921875],[23.01552734375005,54.34833984375001],[22.976757812500068,54.36635742187505],[22.89394531250008,54.390527343749994],[22.82373046874997,54.39580078124999],[22.766210937499977,54.356787109375034],[22.679882812500068,54.493017578125006],[22.684472656250023,54.56293945312504],[22.82470703125,54.87128906249998],[22.56728515625005,55.05913085937496],[22.072363281250034,55.06367187499998],[21.235742187500023,55.26411132812498],[21.237890625000034,55.455029296874955],[21.06191406250005,55.81342773437498],[21.053808593750006,56.02294921875003],[21.04609375000004,56.07006835937503],[21.31464843750004,56.18813476562502],[21.65351562500004,56.314550781250006],[22.084570312500034,56.40673828125006],[22.875585937500063,56.39643554687501],[22.96826171875003,56.38041992187502],[23.042968750000057,56.324072265625006],[23.119824218749983,56.330664062500006],[23.195898437500034,56.36713867187498],[24.120703125000063,56.26425781249998],[24.90302734375001,56.398193359375],[25.069921875,56.20039062500004],[25.663183593750063,56.104833984375006],[26.593554687500074,55.66752929687502],[26.590820312500057,55.62265625],[26.56660156250001,55.546484375000034],[26.51923828125004,55.448144531249994],[26.469531250000045,55.371923828125006],[26.457617187500006,55.342480468749955],[26.49531250000004,55.31801757812502],[26.68125,55.30644531249999],[26.76015625000008,55.29335937499999],[26.775683593750045,55.27309570312502],[26.601171875000034,55.130175781250045],[26.291796875000074,55.13959960937501],[26.250781250000045,55.12451171875006],[26.175195312500023,55.003271484375034],[26.092968750000068,54.96230468750005],[25.964453124999977,54.947167968749966],[25.85927734375005,54.91928710937498],[25.722460937500074,54.71787109374998],[25.731640625000068,54.59038085937502],[25.72480468750001,54.564257812500045],[25.68515625,54.53579101562502],[25.62031250000004,54.46040039062501],[25.56757812500004,54.377050781250006],[25.54736328125,54.33183593750002],[25.55751953125005,54.310693359374994],[25.702539062499994,54.29296875],[25.765234374999977,54.179785156250034],[25.573046875000017,54.139892578125]]]]},"properties":{"name":"Lithuania","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[6.4873046875,49.798486328124994],[6.344335937500006,49.452734375],[6.181054687500023,49.498925781249994],[6.119921875000017,49.485205078125],[6.074121093750023,49.454638671874996],[6.011425781250011,49.445458984374994],[5.95947265625,49.454638671874996],[5.928906250000011,49.4775390625],[5.9013671875,49.48974609375],[5.823437500000011,49.505078125],[5.789746093750011,49.53828125],[5.776710379464286,49.639953962053575],[5.744042968750023,49.91962890625],[5.7880859375,49.961230468749996],[5.8173828125,50.0126953125],[5.866894531250011,50.0828125],[5.976269531250011,50.1671875],[6.089062500000011,50.154589843749996],[6.110058593750011,50.123779296875],[6.116503906250017,50.120996093749994],[6.109765625000023,50.034375],[6.13818359375,49.97431640625],[6.204882812500017,49.91513671875],[6.272327008928583,49.887234933035714],[6.4873046875,49.798486328124994]]]},"properties":{"name":"Luxembourg","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[28.14794921875,56.142919921875],[27.576757812500006,55.798779296875],[27.052539062500017,55.83056640625],[26.593554687500017,55.667529296874996],[25.663183593750006,56.104833984375],[25.069921875,56.200390625],[24.90302734375001,56.398193359375],[24.120703125,56.2642578125],[23.81269531250001,56.329248046875],[23.195898437500006,56.367138671875],[23.11982421875001,56.3306640625],[23.04296875,56.324072265625],[22.875585937500006,56.396435546875],[22.084570312500006,56.40673828125],[21.730566406250006,56.325976562499996],[21.65351562500001,56.31455078125],[21.31464843750001,56.188134765625],[21.04609375000001,56.070068359375],[21.0712890625,56.82373046875],[21.72871093750001,57.57099609375],[22.554589843750023,57.724267578125],[23.28730468750001,57.08974609375],[23.647753906250017,56.971044921875],[24.382617187500017,57.250048828124996],[24.322558593750017,57.87060546875],[24.3625,57.866162109375],[24.458886718750023,57.907861328125],[25.11103515625001,58.063427734375],[25.27265625000001,58.009375],[25.66015625,57.920166015625],[26.29804687500001,57.60107421875],[26.532617187500023,57.531005859375],[26.96601562500001,57.609130859375],[27.187109375,57.538330078125],[27.326562500000023,57.52548828125],[27.4697265625,57.5240234375],[27.538671875,57.42978515625],[27.796875,57.316943359374996],[27.82861328125,57.293310546875],[27.838281250000023,57.247705078125],[27.83027343750001,57.194482421875],[27.639453125000017,56.845654296875],[27.806054687500023,56.86708984375],[27.8486328125,56.85341796875],[27.89208984375,56.741064453125],[28.00751953125001,56.599853515625],[28.103125,56.545703125],[28.11083984375,56.510693359375],[28.169238281250017,56.386865234375],[28.191699218750017,56.315576171875],[28.202050781250023,56.260400390625],[28.14794921875,56.142919921875]]]},"properties":{"name":"Latvia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[28.2125,45.450439453125],[28.07470703125,45.598974609375],[28.23945312500001,46.6408203125],[28.07177734375,46.978417968749994],[27.614062500000017,47.34052734375],[26.980761718750017,48.155029296875],[26.618945312500017,48.25986328125],[26.640429687500017,48.294140625],[26.847070312500023,48.387158203125],[26.90058593750001,48.371923828125],[27.228515625,48.371435546875],[27.549218750000023,48.477734375],[28.34052734375001,48.144433593749994],[28.42304687500001,48.146875],[29.125390625000023,47.96455078125],[29.134863281250006,47.489697265625],[29.455664062500006,47.292626953124994],[29.57197265625001,46.964013671874994],[29.7197265625,46.88291015625],[29.877832031250023,46.82890625],[29.942480468750006,46.723779296874994],[29.93476562500001,46.625],[29.92431640625,46.538867187499996],[30.13105468750001,46.423095703125],[30.07568359375,46.377832031249994],[29.878027343750006,46.360205078125],[29.837890625,46.350537109375],[29.458789062500017,46.453759765624994],[29.30488281250001,46.466601562499996],[29.22382812500001,46.376953125],[29.20458984375,46.379345703125],[29.20078125,46.50498046875],[29.18623046875001,46.523974609374996],[29.146289062500017,46.526904296874996],[28.958398437500023,46.45849609375],[28.92744140625001,46.424121093749996],[28.930566406250023,46.362255859375],[28.94375,46.288427734375],[29.00625,46.17646484375],[28.971875,46.12763671875],[28.94775390625,46.049951171874994],[28.849511718750023,45.978662109374994],[28.73876953125,45.937158203124994],[28.729296875000017,45.852001953125],[28.667578125,45.793847656249994],[28.562304687500017,45.735791015625],[28.491601562500023,45.665771484375],[28.4990234375,45.517724609374994],[28.310351562500017,45.498583984374996],[28.26484375000001,45.48388671875],[28.2125,45.450439453125]]]},"properties":{"name":"Moldova","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[49.936425781249994,-16.90292968750002],[49.82402343750002,-17.08652343750002],[50.02304687500006,-16.6953125],[49.936425781249994,-16.90292968750002]]],[[[48.3421875,-13.363867187500034],[48.21191406250003,-13.385253906249957],[48.191210937500074,-13.259960937500011],[48.308886718750074,-13.198242187499957],[48.3421875,-13.363867187500034]]],[[[49.53828125000004,-12.432128906250014],[49.9375,-13.072265624999957],[50.23535156249997,-14.732031249999963],[50.482714843750074,-15.385644531249994],[50.20898437499997,-15.960449218750028],[50.02041015625005,-15.801757812500028],[49.89257812500003,-15.457714843750011],[49.664355468750074,-15.521582031249977],[49.83906250000004,-16.486523437499997],[49.76718750000006,-16.815136718749983],[49.44931640625006,-17.240625],[49.477832031250074,-17.89853515624999],[49.362890625,-18.336328125],[47.934472656249994,-22.393945312500023],[47.55800781250005,-23.874609374999963],[47.17734375,-24.787207031249977],[46.72851562499997,-25.14990234374997],[46.15869140624997,-25.230371093750023],[45.5080078125001,-25.56318359374997],[45.2057617187501,-25.57050781250004],[44.0353515625001,-24.995703125],[43.670019531250006,-24.30029296875],[43.722265625,-23.529687500000037],[43.2648437500001,-22.38359375],[43.29052734374997,-21.93251953124998],[43.50185546875005,-21.356445312499957],[43.800195312499994,-21.179199218749986],[44.40468750000005,-19.922070312500026],[44.44882812500006,-19.42871093749997],[44.23876953124997,-19.075195312499986],[44.23310546875004,-18.740625],[44.04003906249997,-18.288476562500023],[43.979394531249994,-17.3916015625],[44.42138671874997,-16.70263671874997],[44.476171875,-16.217285156249957],[44.90917968749997,-16.174511718750026],[45.2228515625001,-15.95048828124996],[45.3421875,-16.03671875000002],[45.598242187500006,-15.992578125],[45.70019531249997,-15.813769531249989],[46.157519531250074,-15.738281249999972],[46.3996093750001,-15.924609375000017],[46.331445312499994,-15.713671875000031],[46.47509765625003,-15.513476562500003],[46.942285156249994,-15.219042968749974],[47.09921875,-15.43417968750002],[47.092578125000074,-15.150097656249969],[47.35195312500005,-14.766113281249986],[47.46474609375005,-14.713281249999966],[47.47832031250002,-15.009375],[47.77402343750006,-14.63671875],[47.964160156250074,-14.672558593750026],[47.773339843749994,-14.369921875],[47.995507812499994,-13.960449218749986],[47.88359375000002,-13.807519531250009],[47.94101562500006,-13.662402343750017],[48.03984375000002,-13.596289062499963],[48.25527343750005,-13.719335937499977],[48.796484375,-13.267480468750023],[48.91943359375003,-12.839062499999969],[48.78632812500004,-12.470898437500011],[48.931738281250006,-12.4390625],[49.20703124999997,-12.079589843749957],[49.53828125000004,-12.432128906250014]]]]},"properties":{"name":"Madagascar","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-91.68369140624998,18.677343750000034],[-91.81611328124995,18.675878906250006],[-91.53671874999998,18.760009765625],[-91.68369140624998,18.677343750000034]]],[[[-86.93964843750001,20.303320312500006],[-86.97797851562498,20.489794921875074],[-86.76328124999995,20.579052734374955],[-86.93964843750001,20.303320312500006]]],[[[-106.50224609374999,21.61083984375003],[-106.60703124999993,21.561474609374983],[-106.63935546874995,21.697851562499977],[-106.50224609374999,21.61083984375003]]],[[[-110.56738281249994,25.003466796875017],[-110.5388671875,24.89155273437504],[-110.69926757812499,25.081445312499994],[-110.56738281249994,25.003466796875017]]],[[[-112.05727539062498,24.545703125000017],[-112.29677734375002,24.789648437500063],[-112.15942382812501,25.28564453125003],[-112.19501953124998,24.841064453125057],[-112.05727539062498,24.545703125000017]]],[[[-111.10029296874998,26.020605468750006],[-111.224658203125,25.83588867187504],[-111.18291015625002,26.040625],[-111.10029296874998,26.020605468750006]]],[[[-115.17060546875001,28.06938476562496],[-115.35292968750002,28.103955078124983],[-115.23354492187495,28.36835937500004],[-115.17060546875001,28.06938476562496]]],[[[-112.20307617187503,29.00532226562504],[-112.27841796875,28.769335937500017],[-112.51406249999997,28.847607421874955],[-112.42353515625,29.203662109375017],[-112.28505859374994,29.240429687499955],[-112.20307617187503,29.00532226562504]]],[[[-113.15561523437502,29.05224609375],[-113.49633789062497,29.30761718749997],[-113.58720703125002,29.57304687499996],[-113.20214843749999,29.301855468750034],[-113.15561523437502,29.05224609375]]],[[[-97.14624023437494,25.961474609375045],[-97.66767578124995,24.389990234374977],[-97.84248046874995,22.510302734375017],[-97.76328124999998,22.105859374999966],[-97.31450195312496,21.56420898437503],[-97.40917968749997,21.272558593750034],[-97.38344726562497,21.56669921874999],[-97.75380859375002,22.02666015624999],[-97.18632812499996,20.717041015625],[-96.45605468749994,19.869775390624966],[-96.28955078124994,19.34375],[-95.778125,18.805517578125034],[-95.92036132812495,18.81958007812497],[-95.62680664062503,18.690576171874994],[-95.71982421874998,18.768359375000017],[-95.18183593749995,18.700732421875017],[-94.79814453124996,18.51459960937501],[-94.45976562499993,18.166650390624994],[-93.55234375,18.430468750000017],[-92.88476562499997,18.468652343749966],[-92.44101562499998,18.67529296874997],[-91.97377929687502,18.715869140625074],[-91.91357421875,18.52851562500001],[-91.53398437499993,18.45654296875],[-91.27524414062498,18.62446289062501],[-91.34306640624996,18.900585937499955],[-91.43666992187502,18.889794921874966],[-90.73925781249994,19.352246093749955],[-90.69316406249996,19.729882812499966],[-90.49169921874997,19.94677734375003],[-90.353125,21.009423828124966],[-89.81977539062495,21.274609374999983],[-88.46669921874997,21.569384765625017],[-88.0068359375,21.604052734375045],[-87.25087890625,21.44697265625004],[-87.18828124999993,21.546435546875045],[-87.36850585937498,21.57373046875],[-87.034765625,21.592236328124955],[-86.824072265625,21.421679687500017],[-86.77177734374999,21.150537109375023],[-86.92622070312493,20.786474609375034],[-87.42138671875,20.23139648437501],[-87.44174804687498,19.861523437499983],[-87.68769531249998,19.63710937499999],[-87.6453125,19.55390625000001],[-87.42475585937498,19.583349609375063],[-87.65869140625003,19.352343750000074],[-87.65576171874997,19.25786132812499],[-87.50107421874998,19.287792968749983],[-87.76181640624998,18.446142578125006],[-87.88198242187497,18.27387695312501],[-88.05644531249996,18.524462890625074],[-88.03173828125,18.838916015625017],[-88.29565429687494,18.47241210937503],[-88.52299804687499,18.445898437500063],[-88.80634765624998,17.965527343749983],[-89.13354492187503,17.970800781249977],[-89.16147460937503,17.81484375],[-90.98916015624997,17.81640624999997],[-90.99296874999993,17.25244140625],[-91.19550781249998,17.254101562499983],[-91.40961914062501,17.255859375],[-90.975830078125,16.867822265624994],[-90.710693359375,16.708105468750034],[-90.65996093749996,16.630908203125045],[-90.634375,16.565136718749955],[-90.63408203125002,16.51074218749997],[-90.57578124999995,16.467822265625017],[-90.47109374999994,16.439550781250034],[-90.41699218750003,16.391015625000023],[-90.41699218750003,16.351318359375],[-90.45014648437493,16.261376953124994],[-90.45986328124997,16.16235351562497],[-90.44716796874994,16.07270507812501],[-90.52197265625,16.07119140625005],[-90.70322265624998,16.07104492187503],[-90.97958984374998,16.07080078124997],[-91.433984375,16.070458984374994],[-91.736572265625,16.070166015625006],[-91.95722656250001,15.703222656250034],[-92.08212890624998,15.495556640625011],[-92.18715820312497,15.320898437499963],[-92.07480468749998,15.074218749999972],[-92.09873046874998,15.026757812499994],[-92.14423828125001,15.001953125],[-92.158544921875,14.963574218749997],[-92.23515625,14.545410156249986],[-93.91606445312493,16.053564453125006],[-94.374169921875,16.284765625000034],[-94.426416015625,16.22626953125001],[-94.00126953124996,16.018945312499966],[-94.66152343750002,16.20190429687503],[-94.58710937499995,16.315820312499966],[-94.79082031249999,16.28715820312499],[-94.85869140624996,16.41972656249999],[-95.02084960937503,16.277636718750017],[-94.79941406249995,16.20966796875001],[-95.134375,16.17695312500001],[-96.21357421874993,15.693066406250011],[-96.80795898437495,15.726416015624977],[-97.18466796874998,15.909277343750006],[-97.75478515624994,15.966845703125017],[-98.52031249999993,16.30483398437505],[-98.76220703125,16.534765624999977],[-99.69067382812499,16.719628906249994],[-100.847802734375,17.20048828124999],[-101.91870117187494,17.959765625000045],[-102.69956054687495,18.062841796875006],[-103.44160156249995,18.32539062500001],[-103.91245117187496,18.828466796875006],[-104.9384765625,19.309375],[-105.482080078125,19.97607421875003],[-105.66943359374997,20.385595703124977],[-105.26015625,20.579052734374955],[-105.32705078124994,20.752978515625045],[-105.51083984374999,20.808740234375023],[-105.23706054687499,21.119189453125045],[-105.20869140624998,21.490820312499977],[-105.43144531249997,21.618261718750006],[-105.64912109375001,21.988085937500045],[-105.64550781249999,22.32690429687497],[-105.79179687500003,22.627490234375017],[-106.93549804687497,23.88125],[-107.76494140625002,24.47192382812497],[-107.52724609375001,24.36005859375001],[-107.51191406249998,24.489160156250023],[-107.95117187499994,24.614892578124966],[-108.28076171874994,25.08154296875],[-108.05146484374995,25.067041015624994],[-108.69638671874998,25.382910156250034],[-108.78725585937502,25.53803710937501],[-109.02880859375003,25.48046875000003],[-108.886572265625,25.733447265625045],[-109.19648437499998,25.59252929687503],[-109.38496093750001,25.727148437500006],[-109.42563476562495,26.032568359375063],[-109.19970703125003,26.30522460937499],[-109.11669921874999,26.25273437499996],[-109.27626953125,26.533886718749955],[-109.48286132812498,26.710351562500023],[-109.75478515624995,26.702929687500017],[-109.94399414062495,27.079345703125057],[-110.37729492187495,27.233300781249966],[-110.59267578124995,27.544335937500023],[-110.52988281249995,27.864208984374983],[-111.12138671875002,27.966992187499983],[-112.16176757812495,29.018896484375034],[-113.05766601562496,30.651025390625023],[-113.04672851562495,31.17924804687499],[-113.62348632812494,31.34589843750001],[-113.75942382812501,31.557763671874994],[-113.94775390625001,31.62934570312501],[-114.14931640624995,31.507373046875045],[-114.93359374999994,31.900732421874977],[-114.78989257812498,31.647119140624994],[-114.88188476562499,31.156396484375023],[-114.55048828124997,30.02226562499999],[-113.75546875,29.367480468750017],[-113.49970703124995,28.92670898437501],[-113.20556640624997,28.798779296874955],[-113.09365234375001,28.511767578125017],[-112.870849609375,28.42421875000005],[-112.73403320312501,27.825976562500017],[-112.32919921874996,27.52343750000003],[-111.86264648437495,26.678515625000017],[-111.6994140625,26.58095703125005],[-111.79526367187499,26.8796875],[-111.56967773437495,26.707617187500006],[-111.29160156249996,25.78979492187497],[-110.68676757812501,24.867675781250057],[-110.65932617187502,24.34145507812505],[-110.36743164062497,24.100488281249994],[-110.30375976562497,24.339453125],[-110.02280273437502,24.17460937499999],[-109.6765625,23.66157226562501],[-109.42084960937495,23.480126953124994],[-109.49570312500002,23.159814453125023],[-110.00625,22.894042968750057],[-110.3626953125,23.60493164062501],[-111.68291015625002,24.555810546875023],[-111.80249023437494,24.542529296875074],[-112.07255859374999,24.84003906250001],[-112.06987304687497,25.572851562500006],[-112.37724609374997,26.21391601562496],[-113.02075195312499,26.58325195312497],[-113.15581054687496,26.94624023437504],[-113.27226562499997,26.79096679687501],[-113.59853515625001,26.721289062500034],[-113.84096679687502,26.966503906249983],[-114.44526367187503,27.218164062499994],[-114.53989257812495,27.431103515624955],[-114.99350585937499,27.736035156249983],[-115.03647460937495,27.84184570312496],[-114.57001953124995,27.78393554687497],[-114.30058593749995,27.87299804687501],[-114.30224609375003,27.775732421875006],[-114.0693359375,27.67568359375005],[-114.15839843750003,27.919677734375],[-114.26586914062499,27.934472656249994],[-114.04848632812502,28.42617187499999],[-114.93730468749999,29.35161132812496],[-115.67382812500003,29.756396484375017],[-116.06215820312501,30.80415039062504],[-116.29628906250001,30.97050781249999],[-116.33344726562494,31.202783203124994],[-116.66215820312495,31.56489257812504],[-116.72207031249998,31.734570312499955],[-116.62080078124995,31.85107421874997],[-116.84799804687496,31.997363281250045],[-117.12827148437495,32.533349609374994],[-114.72475585937495,32.71533203125003],[-114.83593749999994,32.50830078125003],[-111.0419921875,31.32421875000003],[-108.21445312499993,31.329443359375034],[-108.21181640625002,31.779345703125017],[-106.44541015624996,31.768408203125006],[-106.14804687499995,31.450927734375],[-104.97880859374996,30.645947265624955],[-104.50400390624995,29.677685546874955],[-104.110595703125,29.386132812499994],[-103.16831054687498,28.998193359374994],[-102.8919921875,29.216406250000034],[-102.61494140624994,29.75234375],[-102.26894531249998,29.871191406250034],[-101.44038085937503,29.77685546875],[-100.75458984375001,29.182519531249994],[-100.29604492187495,28.32768554687499],[-99.50532226562497,27.54833984375003],[-99.45654296874999,27.05668945312496],[-99.10776367187498,26.446923828124994],[-97.37563476562497,25.871826171875],[-97.14624023437494,25.961474609375045]]]]},"properties":{"name":"Mexico","childNum":10}},{"geometry":{"type":"Polygon","coordinates":[[[22.344042968750017,42.31396484375],[22.836816406250023,41.993603515625],[23.00361328125001,41.73984375],[22.916015625,41.336279296875],[22.78388671875001,41.331982421875],[22.72480468750001,41.178515625],[22.603613281250006,41.140185546874996],[22.493554687500023,41.118505859375],[22.184472656250023,41.158642578125],[21.99335937500001,41.13095703125],[21.77949218750001,40.950439453125],[21.627539062500006,40.896337890625],[21.57578125,40.868945312499996],[20.964257812500023,40.849902343749996],[20.709277343750017,40.928369140624994],[20.48896484375001,41.272607421874994],[20.566210937500017,41.873681640624994],[20.725,41.87353515625],[20.778125,42.071044921875],[21.05976562500001,42.171289062499994],[21.28662109375,42.100390625],[21.389550781250023,42.21982421875],[21.560839843750017,42.24765625],[21.5625,42.247509765625],[21.81464843750001,42.303125],[22.344042968750017,42.31396484375]]]},"properties":{"name":"Macedonia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[4.227636718750006,19.142773437499997],[4.234667968750017,16.996386718750003],[4.121289062500011,16.357714843750003],[3.842968750000011,15.701708984375003],[3.5205078125,15.483105468749997],[3.504296875000023,15.356347656249994],[3.06015625,15.427197265624997],[3.001074218750006,15.340966796874994],[1.300195312500023,15.272265625],[0.947460937500011,14.982128906249997],[0.217480468750011,14.911474609374991],[-0.235888671874989,15.059423828124991],[-0.760449218749983,15.047753906249994],[-1.049560546875,14.81953125],[-1.97304687499999,14.45654296875],[-2.113232421874983,14.16845703125],[-2.586718749999989,14.227587890625003],[-2.873925781249994,13.950732421875003],[-2.950830078124994,13.6484375],[-3.248632812499977,13.658349609374994],[-3.3017578125,13.28076171875],[-3.527636718749989,13.182714843749991],[-3.947314453124989,13.402197265624991],[-4.151025390624994,13.306201171875003],[-4.328710937499977,13.119042968749994],[-4.227099609374989,12.793701171875],[-4.480615234374994,12.672216796874991],[-4.4287109375,12.337597656249997],[-4.699316406249977,12.076171875],[-5.288134765624989,11.827929687499989],[-5.250244140625,11.375781249999989],[-5.490478515625,11.042382812499994],[-5.523535156249977,10.426025390625],[-5.556591796874983,10.43994140625],[-5.694287109374983,10.43320312499999],[-5.843847656249977,10.389550781249994],[-5.896191406249983,10.354736328125],[-5.907568359374977,10.307226562499991],[-6.034570312499994,10.19482421875],[-6.1171875,10.201904296875],[-6.238378906249977,10.261621093749994],[-6.241308593749977,10.279199218749994],[-6.192626953125,10.369433593749989],[-6.190673828125,10.400292968749994],[-6.250244140625,10.717919921874994],[-6.482617187499983,10.561230468749997],[-6.564599609374994,10.58642578125],[-6.654150390624977,10.656445312499997],[-6.676367187499977,10.6337890625],[-6.686132812499977,10.578027343749994],[-6.691992187499977,10.512011718749989],[-6.669335937499994,10.3921875],[-6.693261718749994,10.349462890624991],[-6.950341796874994,10.342333984374989],[-7.01708984375,10.143261718749997],[-7.385058593749989,10.340136718749989],[-7.6611328125,10.427441406249997],[-7.990625,10.1625],[-8.007275390624983,10.321875],[-8.266650390624989,10.485986328124994],[-8.33740234375,10.990625],[-8.666699218749983,11.009472656249997],[-8.398535156249977,11.366552734374991],[-8.822021484375,11.673242187499994],[-8.818310546874983,11.922509765624994],[-9.043066406249977,12.40234375],[-9.395361328124977,12.464648437499989],[-9.358105468749983,12.255419921874989],[-9.754003906249977,12.029931640624994],[-10.274853515624983,12.212646484375],[-10.709228515625,11.898730468749989],[-10.933203124999977,12.205175781249991],[-11.30517578125,12.015429687499989],[-11.502197265625,12.198632812499994],[-11.389404296875,12.404394531249991],[-11.390380859375,12.941992187499991],[-11.634960937499983,13.369873046875],[-11.831689453124994,13.315820312499994],[-12.05419921875,13.633056640625],[-11.960888671874983,13.875292968750003],[-12.019189453124994,14.206494140624997],[-12.228417968749994,14.45859375],[-12.280615234374977,14.809033203124997],[-12.104687499999983,14.745361328125],[-12.08154296875,14.766357421875],[-12.021582031249977,14.804931640625],[-11.76015625,15.425537109375],[-11.675878906249977,15.512060546874991],[-11.502685546875,15.636816406249991],[-11.455224609374994,15.62539062499999],[-10.9482421875,15.151123046875],[-10.696582031249989,15.42265625],[-9.94140625,15.373779296875],[-9.446923828124994,15.458203125],[-9.447705078124983,15.574853515624994],[-9.426562499999989,15.623046875],[-9.3505859375,15.677392578124994],[-9.33544921875,15.525683593750003],[-9.293701171875,15.502832031249994],[-5.5125,15.496289062499997],[-5.359912109374989,16.282861328124994],[-5.509619140624977,16.442041015624994],[-5.628662109375,16.568652343750003],[-5.65625,16.8095703125],[-5.684765624999983,17.058251953124994],[-5.713183593749989,17.306884765625],[-5.74169921875,17.555566406249994],[-5.827099609374983,18.3015625],[-6.026416015624989,20.0421875],[-6.396582031249977,23.274804687499994],[-6.482031249999977,24.020800781250003],[-6.538964843749994,24.51816406249999],[-6.5673828125,24.766796875],[-6.594091796874977,24.99462890625],[-6.287207031249977,24.994824218749997],[-5.959814453124977,24.99497070312499],[-5.640771484374994,24.995166015625003],[-4.822607421874977,24.99560546875],[-1.947900390624994,23.124804687500003],[1.1455078125,21.102246093749997],[1.165722656250011,20.817431640625003],[1.610644531250017,20.555566406249994],[1.685449218750023,20.378369140624997],[3.130273437500023,19.85019531249999],[3.255859375,19.4109375],[3.119726562500006,19.103173828124994],[3.3564453125,18.986621093750003],[4.227636718750006,19.142773437499997]]]},"properties":{"name":"Mali","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[14.566210937499989,35.85273437499998],[14.436425781250023,35.82167968750005],[14.351269531250011,35.978417968749994],[14.566210937499989,35.85273437499998]]]},"properties":{"name":"Malta","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[98.18261718749997,9.933447265625006],[98.11806640625,9.877880859375054],[98.2916992187501,10.051318359375031],[98.18261718749997,9.933447265625006]]],[[[98.20976562500002,10.952734375],[98.27148437499997,10.73989257812498],[98.08046875000005,10.886621093750037],[98.20976562500002,10.952734375]]],[[[98.55380859375012,11.744873046875],[98.52841796875012,11.538671875],[98.43476562500004,11.567089843750026],[98.37646484374997,11.79150390625],[98.55380859375012,11.744873046875]]],[[[98.516015625,11.905029296875028],[98.46621093750005,12.08427734374996],[98.60957031250004,11.956640624999977],[98.516015625,11.905029296875028]]],[[[98.06611328125004,12.389794921875023],[98.00234375000005,12.279003906250011],[97.93867187500004,12.34609375],[98.06611328125004,12.389794921875023]]],[[[98.41396484375005,12.597949218749974],[98.45947265625003,12.473730468749991],[98.3138671875,12.335986328124989],[98.31210937500006,12.678173828124983],[98.41396484375005,12.597949218749974]]],[[[98.31542968749997,13.099072265625026],[98.30917968750012,12.934716796875023],[98.26533203125004,13.202246093749991],[98.31542968749997,13.099072265625026]]],[[[94.80488281250004,15.8193359375],[94.73349609375006,15.823046875000045],[94.82802734375005,15.933007812499966],[94.80488281250004,15.8193359375]]],[[[94.47675781250004,15.945947265625023],[94.41191406250007,15.848388671875057],[94.3878906250001,15.994140624999972],[94.60126953125004,16.205517578124983],[94.47675781250004,15.945947265625023]]],[[[97.575,16.253222656250017],[97.48037109375,16.305712890625045],[97.54199218749997,16.505078124999983],[97.575,16.253222656250017]]],[[[93.6908203125,18.68427734375004],[93.4875,18.867529296875063],[93.74472656250006,18.865527343750017],[93.6908203125,18.68427734375004]]],[[[93.71484374999997,19.558251953124994],[93.94570312500005,19.428613281249966],[93.90195312500012,19.33203125],[93.75585937500003,19.325683593750057],[93.64404296874997,19.49506835937501],[93.71484374999997,19.558251953124994]]],[[[93.49179687500012,19.892578125],[93.51328125000006,19.754785156249994],[93.41289062500002,19.950341796875023],[93.49179687500012,19.892578125]]],[[[93.01015625000005,19.923925781249977],[93.02324218750007,19.82885742187497],[92.91464843750006,20.086474609375045],[93.01015625000005,19.923925781249977]]],[[[101.1388671875001,21.567480468749977],[101.08037109375007,21.468652343749994],[100.703125,21.251367187499966],[100.613671875,21.059326171875],[100.56660156250004,21.038183593750063],[100.53613281250003,20.992382812499955],[100.52226562500007,20.92192382812499],[100.54931640624997,20.884228515624955],[100.61767578125003,20.879248046875006],[100.62294921875005,20.859570312499983],[100.5651367187501,20.825097656249994],[100.4074218750001,20.823242187500057],[100.32607421875005,20.795703125000045],[100.24931640625002,20.730273437500045],[100.18388671875002,20.589111328125057],[100.12968750000002,20.372216796874994],[100.12246093750005,20.316650390625057],[100.0036132812501,20.37958984375001],[99.9542968750001,20.415429687500023],[99.8903320312501,20.424414062499977],[99.72011718750005,20.32543945312497],[99.45888671875005,20.363037109375],[99.48593750000006,20.14985351562501],[99.07421875000003,20.09936523437503],[98.9166992187501,19.77290039062504],[98.37128906250004,19.68916015625004],[98.01503906250005,19.74951171874997],[97.816796875,19.459960937500057],[97.74589843750002,18.58818359374999],[97.37392578125,18.51796875],[97.63222656250005,18.290332031250074],[97.7064453125,17.79711914062503],[98.4388671875,16.975683593750034],[98.66074218750006,16.330419921875006],[98.83544921875003,16.417578125],[98.88828125000006,16.351904296875034],[98.81796875000012,16.180810546874994],[98.59238281250006,16.05068359375005],[98.55693359375007,15.367675781249986],[98.19101562500012,15.204101562499972],[98.20214843749997,14.97592773437502],[98.57001953125004,14.359912109375031],[99.13681640625006,13.716699218749994],[99.12392578125,13.030761718750043],[99.40507812500002,12.547900390625003],[99.61474609374997,11.781201171875026],[99.1901367187501,11.105273437499989],[98.7572265625,10.660937499999974],[98.70253906250005,10.19038085937504],[98.56259765625006,10.034960937499989],[98.46494140625006,10.675830078124989],[98.67558593750007,10.986914062500034],[98.74140625000004,11.591699218749966],[98.87597656250003,11.719726562500028],[98.63632812500006,11.738378906250006],[98.69628906250003,12.225244140624994],[98.6002929687501,12.2453125],[98.67871093749997,12.348486328124963],[98.57597656250002,13.161914062500031],[98.20039062500004,13.980175781250026],[98.14951171875012,13.647607421875037],[98.11064453125007,13.712890625000014],[98.10019531250006,14.161523437500023],[97.90976562500012,14.652685546874991],[98.01875,14.652587890625057],[97.81230468750007,14.858935546874989],[97.7103515625,15.875537109375074],[97.58427734375007,16.019580078125017],[97.72597656250005,16.56855468750004],[97.37587890625005,16.52294921874997],[97.20019531249997,17.095410156249983],[96.85146484375005,17.401025390624994],[96.90859375000005,17.03095703125001],[96.76542968750002,16.710351562499966],[96.43115234374997,16.504931640625045],[96.18906250000012,16.768310546875057],[96.32431640625006,16.444433593750063],[95.76328125000006,16.169042968750006],[95.38955078125005,15.722753906250034],[95.30146484375004,15.756152343749989],[95.34677734375012,16.09760742187501],[95.17695312500004,15.825683593750028],[94.9425781250001,15.818261718750023],[94.89316406250006,16.182812499999955],[94.66152343750005,15.904394531250006],[94.70332031250004,16.511914062499955],[94.4416015625001,16.094384765624966],[94.22382812500004,16.016455078125006],[94.58896484375006,17.5693359375],[94.17070312500007,18.73242187499997],[94.24570312500006,18.741162109374983],[94.07001953125004,18.893408203125006],[94.04492187500003,19.287402343750074],[93.92919921874997,18.89965820312503],[93.70546875000005,19.026904296875017],[93.49306640625005,19.369482421875006],[93.82490234375004,19.238476562499955],[93.99814453125006,19.440869140624983],[93.61171875000005,19.776074218749983],[93.70703125000003,19.912158203125074],[93.25,20.070117187500017],[93.12949218750012,19.858007812500063],[93.00195312499997,20.074853515624994],[93.06679687500005,20.377636718749955],[92.82832031250004,20.177587890625063],[92.89111328124997,20.34033203125],[92.73564453125007,20.56269531250001],[92.72285156250004,20.29560546875004],[92.32412109375,20.791845703125063],[92.17958984375005,21.293115234375023],[92.33056640624997,21.439794921874977],[92.63164062500002,21.306201171875045],[92.5934570312501,21.46733398437499],[92.58281250000002,21.940332031249994],[92.57490234375004,21.978076171875045],[92.68896484374997,22.130957031250006],[92.72099609375002,22.132421875000063],[92.77138671875,22.104785156250017],[92.9645507812501,22.003759765625034],[93.07060546875002,22.20942382812501],[93.16201171875,22.360205078125006],[93.07871093750006,22.71821289062501],[93.20390625000002,23.03701171875005],[93.34941406250007,23.08496093750003],[93.36601562500007,23.132519531249955],[93.32626953125006,24.064208984375057],[93.45214843750003,23.987402343750034],[93.68339843750007,24.00654296875004],[94.07480468750006,23.8720703125],[94.29306640625012,24.321875],[94.37724609375002,24.473730468750006],[94.49316406250003,24.637646484374983],[94.70371093750012,25.097851562499955],[94.55302734375007,25.215722656249994],[94.66777343750007,25.458886718749966],[94.99199218750002,25.77045898437504],[95.01523437500006,25.912939453125006],[95.0929687500001,25.98730468749997],[95.13242187500006,26.041259765625057],[95.12929687500005,26.070410156250034],[95.10839843749997,26.091406250000034],[95.06894531250006,26.19111328125001],[95.0597656250001,26.473974609375006],[95.20146484375007,26.641406250000017],[96.19082031250005,27.26127929687499],[96.79785156249997,27.29619140624999],[96.95341796875002,27.13330078125003],[97.10205078125003,27.11542968750004],[97.10371093750004,27.16333007812503],[96.90195312500012,27.439599609374994],[96.88359375000002,27.514843749999955],[96.96279296875,27.698291015625017],[97.04970703125005,27.760009765625],[97.34355468750002,27.982324218749994],[97.30273437499997,28.08598632812496],[97.3224609375001,28.21796875000004],[97.35644531249997,28.254492187500006],[97.43144531250002,28.353906250000023],[97.53789062500002,28.510205078124983],[97.59921875000006,28.51704101562504],[98.06162109375012,28.185888671874977],[98.29882812499997,27.550097656250045],[98.4525390625,27.6572265625],[98.65117187500007,27.572460937499983],[98.7384765625001,26.785742187500006],[98.68554687499997,26.189355468750023],[98.56406250000006,26.072412109374994],[98.65625,25.86357421874999],[98.33378906250007,25.586767578125006],[98.14287109375007,25.571093750000017],[98.01074218749997,25.292529296875017],[97.8195312500001,25.251855468749994],[97.73789062500006,24.869873046875057],[97.58330078125002,24.77480468750005],[97.53144531250004,24.49169921875003],[97.7082031250001,24.228759765625],[97.56455078125012,23.911035156250023],[98.2125,24.110644531250017],[98.83505859375006,24.121191406250034],[98.67675781250003,23.905078125000045],[98.8322265625001,23.624365234374977],[98.86376953125003,23.191259765625034],[99.41806640625006,23.069238281250023],[99.50712890625002,22.959130859374994],[99.19296875000006,22.12597656249997],[99.9176757812501,22.02802734375001],[99.94072265625007,21.75874023437504],[100.14765625000004,21.480517578125017],[100.60458984375012,21.471777343750006],[101.07978515625004,21.75585937499997],[101.1388671875001,21.567480468749977]]]]},"properties":{"name":"Myanmar","childNum":15}},{"geometry":{"type":"Polygon","coordinates":[[[19.21875,43.449951171875],[19.670996093750006,43.163964843749994],[20.344335937500006,42.827929687499996],[20.054296875,42.760058593749996],[20.06396484375,42.54726562499999],[19.78828125000001,42.476171875],[19.65449218750001,42.628564453124994],[19.280664062500023,42.17255859375],[19.342382812500006,41.869091796875],[18.436328125000017,42.559716796874994],[18.5458984375,42.6416015625],[18.46601562500001,42.777246093749994],[18.44384765625,42.96845703125],[18.46015625000001,42.997900390625],[18.48847656250001,43.012158203125],[18.623632812500006,43.027685546875],[18.621875,43.124609375],[18.674218750000023,43.230810546875],[18.74921875000001,43.283544921875],[18.85107421875,43.346337890624994],[18.934667968750006,43.339453125],[18.97871093750001,43.285400390625],[19.026660156250017,43.292431640625],[19.03671875,43.357324218749994],[18.940234375000017,43.496728515624994],[18.95068359375,43.526660156249996],[18.97421875,43.542333984375],[19.0283203125,43.532519531249996],[19.080078125,43.517724609374994],[19.11279296875,43.52773437499999],[19.164355468750017,43.535449218749996],[19.1943359375,43.53330078125],[19.21875,43.449951171875]]]},"properties":{"name":"Montenegro","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[111.878125,43.68017578125],[111.00722656250002,43.34140625],[110.400390625,42.773681640625],[109.44316406249999,42.455957031249994],[109.33984375,42.438378906249994],[108.68730468749999,42.41611328125],[108.17119140624999,42.447314453124996],[106.77001953125,42.288720703124994],[105.86757812500002,41.993994140625],[105.31435546875002,41.770898437499994],[105.19707031249999,41.738037109375],[105.11542968750001,41.66328125],[105.05058593749999,41.61591796875],[104.98203125000003,41.595507812499996],[104.49824218750001,41.65869140625],[104.49824218750001,41.877001953124996],[104.30517578125,41.846142578125],[103.99726562500001,41.79697265625],[103.71113281250001,41.751318359375],[103.07285156250003,42.00595703125],[102.5751953125,42.092089843749996],[102.15664062500002,42.158105468749994],[101.97294921874999,42.215869140624996],[101.65996093749999,42.500048828124996],[101.5791015625,42.52353515625],[101.49531250000001,42.53876953125],[101.09199218750001,42.551318359374996],[100.51904296875,42.616796875],[100.08632812500002,42.670751953125],[99.98378906250002,42.67734375],[99.46787109375003,42.568212890625],[97.20566406250003,42.789794921875],[96.38544921875001,42.720361328124994],[95.85957031250001,43.2759765625],[95.52558593750001,43.953955078125],[95.32558593750002,44.039355468749996],[95.35029296875001,44.278076171875],[94.71201171875003,44.350830078125],[93.51621093750003,44.944482421874994],[92.78789062499999,45.0357421875],[92.57890624999999,45.010986328125],[92.423828125,45.008935546874994],[92.17265624999999,45.03525390625],[92.02978515625,45.068505859374994],[91.584375,45.076513671875],[91.05,45.217431640624994],[90.87724609374999,45.19609375],[90.66181640625001,45.525244140625],[91.00175781249999,46.035791015624994],[90.99677734375001,46.10498046875],[90.94755859374999,46.177294921874996],[90.91152343750002,46.270654296874994],[90.98574218750002,46.7490234375],[90.91054687500002,46.883251953125],[90.86992187499999,46.954492187499994],[90.79902343750001,46.98515625],[90.71552734375001,47.003857421875],[90.49619140625003,47.28515625],[90.42519531250002,47.5041015625],[90.34746093749999,47.596972656249996],[90.33066406250003,47.655175781249994],[90.31328124999999,47.67617187499999],[90.19101562500003,47.702099609375],[90.10322265625001,47.745410156249996],[90.02792968750003,47.877685546875],[89.95869140625001,47.886328125],[89.91044921874999,47.8443359375],[89.83134765624999,47.823291015624996],[89.778125,47.827001953125],[89.56093750000002,48.003955078124996],[89.47919921875001,48.029052734375],[89.04765624999999,48.0025390625],[88.97109375000002,48.049951171874994],[88.91777343749999,48.089013671874994],[88.83828125000002,48.101708984374994],[88.68183593750001,48.170556640624994],[88.57597656249999,48.220166015625],[88.56679687500002,48.317431640624996],[88.51708984375,48.38447265625],[88.41396484375002,48.40341796875],[88.30996093750002,48.472070312499994],[87.97968750000001,48.555126953125],[88.06005859375,48.707177734374994],[87.83183593749999,48.791650390624994],[87.7431640625,48.881640625],[87.87216796875003,49.000146484374994],[87.81630859375002,49.0802734375],[87.8251953125,49.11630859375],[87.81425781249999,49.1623046875],[87.93476562500001,49.16455078125],[87.98808593749999,49.186914062499994],[88.02851562500001,49.219775390624996],[88.11572265625,49.256298828125],[88.19257812500001,49.451708984374996],[88.63320312500002,49.486132812499996],[88.83164062500003,49.4484375],[88.86386718750003,49.527636718749996],[88.90019531249999,49.539697265624994],[88.94541015625003,49.507666015625],[88.97060546875002,49.483740234375],[89.00839843750003,49.472802734374994],[89.10947265625003,49.501367187499994],[89.17998046874999,49.5322265625],[89.20292968749999,49.595703125],[89.24394531249999,49.62705078125],[89.39560546875003,49.6115234375],[89.475,49.66054687499999],[89.57919921875003,49.69970703125],[89.65410156249999,49.71748046875],[89.64384765624999,49.90302734375],[90.0537109375,50.09375],[90.65507812499999,50.22236328125],[90.71435546875,50.259423828124994],[90.7607421875,50.305957031249996],[91.02158203125003,50.415478515625],[91.23378906250002,50.452392578125],[91.30058593749999,50.46337890625],[91.3408203125,50.470068359375],[91.4150390625,50.468017578125],[91.44648437500001,50.52216796875],[91.80429687500003,50.693603515625],[92.10400390625,50.6919921875],[92.1923828125,50.700585937499994],[92.35478515624999,50.864160156249994],[92.42636718750003,50.803076171875],[92.62666015625001,50.68828125],[92.68134765625001,50.683203125],[92.73867187500002,50.7109375],[92.779296875,50.778662109375],[92.8564453125,50.789111328124996],[92.94130859375002,50.778222656249994],[93.103125,50.60390625],[94.25107421875003,50.556396484375],[94.35468750000001,50.221826171874994],[94.61474609375,50.023730468749996],[94.67548828125001,50.028076171875],[94.71806640624999,50.043261718749996],[94.93027343750003,50.04375],[95.11142578125003,49.935449218749994],[95.52265625000001,49.91123046875],[96.06552734375003,49.99873046875],[96.31503906250003,49.901123046875],[96.98574218750002,49.8828125],[97.20859375000003,49.730810546875],[97.35976562500002,49.741455078125],[97.58935546875,49.911474609375],[98.00390625,50.0142578125],[98.25029296874999,50.30244140625],[98.27949218750001,50.533251953124996],[98.14501953125,50.5685546875],[98.07890624999999,50.603808593749996],[98.02978515625,50.64462890625],[97.82529296875003,50.985253906249994],[98.103125,51.483544921874994],[98.64052734375002,51.801171875],[98.89316406250003,52.11728515625],[99.92167968749999,51.755517578125],[100.03457031250002,51.737109375],[100.23037109375002,51.729833984375],[100.46894531250001,51.72607421875],[100.53623046875003,51.7134765625],[101.38125,51.45263671875],[101.57089843750003,51.4671875],[101.82119140625002,51.421044921874994],[102.11152343750001,51.353466796875],[102.15566406250002,51.313769531249996],[102.16005859375002,51.26083984375],[102.14238281249999,51.216064453125],[102.15195312500003,51.10751953125],[102.19453125000001,51.050683593749994],[102.21503906250001,50.829443359375],[102.31660156250001,50.71845703125],[102.28837890624999,50.585107421874994],[103.30439453125001,50.20029296875],[103.63291015625003,50.138574218749994],[103.72324218750003,50.153857421874996],[103.80263671875002,50.176074218749996],[104.07871093750003,50.154248046875],[105.38359374999999,50.47373046875],[106.21787109375003,50.304589843749994],[106.36845703124999,50.317578125],[106.57441406250001,50.32880859375],[106.71113281250001,50.31259765625],[106.94130859375002,50.196679687499994],[107.04023437500001,50.086474609374996],[107.14306640625,50.033007812499996],[107.23330078125002,49.989404296874994],[107.34707031250002,49.986669921875],[107.63095703125003,49.98310546875],[107.91660156250003,49.947802734374996],[107.96542968750003,49.653515625],[108.40693359375001,49.396386718749994],[108.5224609375,49.34150390625],[108.61367187500002,49.322802734374996],[109.23671875000002,49.334912109375],[109.45371093750003,49.296337890625],[109.52871093750002,49.269873046875],[110.19990234375001,49.17041015625],[110.42783203125003,49.219970703125],[110.70976562499999,49.14296875],[110.82792968749999,49.166162109374994],[111.20419921875003,49.304296875],[111.33662109375001,49.35585937499999],[111.42929687500003,49.342626953125],[112.07968750000003,49.42421875],[112.49492187499999,49.53232421875],[112.69736328125003,49.507275390625],[112.80644531249999,49.523583984374994],[112.91484374999999,49.569238281249994],[113.05556640625002,49.616259765624996],[113.09208984374999,49.692529296874994],[113.16416015625003,49.797167968749996],[113.31904296875001,49.874316406249996],[113.44550781250001,49.9416015625],[113.57421875,50.00703125],[114.29707031250001,50.2744140625],[114.7431640625,50.233691406249996],[115.00332031250002,50.138574218749994],[115.27451171875003,49.948876953124994],[115.36503906249999,49.911767578124994],[115.42919921875,49.896484375],[115.58798828125003,49.886035156249996],[115.7177734375,49.880615234375],[115.79521484374999,49.905908203124994],[115.92597656250001,49.9521484375],[116.13457031249999,50.010791015624996],[116.216796875,50.00927734375],[116.35117187500003,49.978076171874996],[116.55117187500002,49.9203125],[116.68330078125001,49.823779296874996],[115.82050781250001,48.57724609375],[115.79169921875001,48.455712890624994],[115.79658203125001,48.346337890624994],[115.78554687500002,48.2482421875],[115.63945312499999,48.18623046875],[115.52509765625001,48.130859375],[115.61640625000001,47.874804687499996],[115.89824218749999,47.686914062499994],[115.99384765625001,47.71132812499999],[116.07480468750003,47.78955078125],[116.23115234375001,47.858203125],[116.31718749999999,47.85986328125],[116.37822265624999,47.844042968749996],[116.51347656249999,47.83955078125],[116.65195312500003,47.864501953125],[116.76054687499999,47.869775390624994],[116.90117187499999,47.853076171874996],[116.95166015625,47.836572265624994],[117.06972656250002,47.806396484375],[117.28593749999999,47.666357421875],[117.35078125000001,47.652197265625],[117.76835937499999,47.987890625],[118.49843750000002,47.983984375],[118.56777343750002,47.943261718749994],[118.69052734375003,47.822265625],[118.75996093750001,47.757617187499996],[118.88027343750002,47.72509765625],[119.017578125,47.685351562499996],[119.08193359375002,47.654150390625],[119.71113281250001,47.15],[119.89785156250002,46.8578125],[119.8671875,46.672167968749996],[119.74746093750002,46.627197265625],[119.70664062500003,46.606005859374996],[119.62021484375003,46.603955078125],[119.47402343750002,46.62666015625],[119.33183593749999,46.613818359374996],[119.162109375,46.638671875],[118.95712890625003,46.73486328125],[118.84394531250001,46.760205078125],[118.79033203124999,46.7470703125],[118.72294921874999,46.69189453125],[118.64873046874999,46.70166015625],[118.58046875000002,46.69189453125],[118.40439453125003,46.703173828124996],[118.30869140625003,46.717041015625],[118.15683593750003,46.678564453125],[118.0712890625,46.6666015625],[117.7412109375,46.5181640625],[117.546875,46.58828125],[117.43808593750003,46.586230468749996],[117.40556640624999,46.5708984375],[117.39218750000003,46.53759765625],[117.35634765625002,46.436669921874994],[117.35693359375,46.39130859375],[117.33339843750002,46.36201171875],[116.85908203125001,46.387939453125],[116.56259765625003,46.289794921875],[116.21298828125003,45.8869140625],[116.22910156250003,45.845751953124996],[116.240625,45.79599609375],[116.19765625000002,45.73935546875],[115.68105468750002,45.458251953125],[115.16259765625,45.390234375],[114.91923828124999,45.378271484375],[114.73876953125,45.41962890625],[114.56015625000003,45.389990234375],[114.41914062500001,45.202587890625],[114.16738281250002,45.049853515624996],[114.08027343750001,44.971142578125],[113.87705078125003,44.89619140625],[113.65263671874999,44.763476562499996],[113.58701171875003,44.745703125],[113.04941406250003,44.810351562499996],[112.70673828125001,44.883447265624994],[112.59677734375003,44.91767578125],[112.49931640624999,45.0109375],[112.41132812500001,45.058203125],[112.11289062500003,45.062939453125],[112.03261718750002,45.081640625],[111.89804687500003,45.0640625],[111.40224609375002,44.36728515625],[111.93173828125003,43.81494140625],[111.878125,43.68017578125]]]},"properties":{"name":"Mongolia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[145.75195312499997,15.133154296874991],[145.71318359375007,15.215283203125026],[145.821875,15.265380859375014],[145.75195312499997,15.133154296874991]]]},"properties":{"name":"N. Mariana Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[32.112890625,-26.839453125],[32.10595703125,-26.52001953125],[32.04140625000002,-26.28125],[32.060546875,-26.018359375],[31.9482421875,-25.957617187500006],[31.98583984375,-24.46064453125001],[31.799609375000017,-23.8921875],[31.54560546875001,-23.48232421875001],[31.287890625000017,-22.40205078125001],[31.429492187500017,-22.298828125],[32.429785156250006,-21.29707031250001],[32.353613281250006,-21.136523437500003],[32.49238281250001,-20.659765625],[32.992773437500006,-19.98486328125],[32.77763671875002,-19.388769531250006],[32.84980468750001,-19.10439453125001],[32.69970703125,-18.94091796875],[32.99306640625002,-18.35957031250001],[32.87626953125002,-16.88359375],[32.94804687500002,-16.71230468750001],[31.939843750000023,-16.428808593750006],[31.236230468750023,-16.02363281250001],[30.437792968750017,-15.995312500000011],[30.39609375,-15.64306640625],[30.231835937500023,-14.990332031250006],[33.201757812500006,-14.013378906250011],[33.63642578125001,-14.568164062500003],[34.375,-14.4248046875],[34.50527343750002,-14.59814453125],[34.54082031250002,-15.297265625],[34.24609375,-15.829394531250003],[34.528125,-16.319140625],[34.93339843750002,-16.760351562500006],[35.11210937500002,-16.898535156250006],[35.06464843750001,-17.07861328125],[35.124609375,-17.127246093750003],[35.20136718750001,-17.13105468750001],[35.272558593750006,-17.118457031250003],[35.29042968750002,-17.096972656250003],[35.28115234375002,-16.80781250000001],[35.22978515625002,-16.639257812500006],[35.178320312500006,-16.573339843750006],[35.16718750000001,-16.56025390625001],[35.242773437500006,-16.375390625],[35.358496093750006,-16.160546875],[35.59931640625001,-16.12587890625001],[35.70888671875002,-16.095800781250006],[35.75527343750002,-16.05830078125001],[35.79121093750001,-15.958691406250011],[35.89277343750001,-14.891796875000011],[35.86669921875,-14.86376953125],[35.84716796875,-14.6708984375],[35.6904296875,-14.465527343750011],[35.48847656250001,-14.201074218750009],[35.37578125000002,-14.058691406250006],[35.24746093750002,-13.896875],[35.01386718750001,-13.643457031250009],[34.61152343750001,-13.437890625],[34.54570312500002,-13.21630859375],[34.542578125,-13.108691406250003],[34.35781250000002,-12.164746093750011],[34.60625,-11.690039062500006],[34.65957031250002,-11.588671875],[34.82656250000002,-11.57568359375],[34.95947265625,-11.578125],[35.1826171875,-11.574804687500006],[35.41826171875002,-11.583203125000011],[35.50439453125,-11.604785156250003],[35.56435546875002,-11.60234375],[35.630957031250006,-11.58203125],[35.78544921875002,-11.452929687500003],[35.91132812500001,-11.4546875],[36.08222656250001,-11.537304687500011],[36.17548828125001,-11.609277343750009],[36.19130859375002,-11.670703125],[36.3056640625,-11.706347656250003],[36.97890625000002,-11.566992187500006],[37.37285156250002,-11.71044921875],[37.54169921875001,-11.675097656250003],[37.72480468750001,-11.580664062500006],[37.92021484375002,-11.294726562500003],[38.491796875,-11.413281250000011],[38.9875,-11.167285156250003],[39.81708984375001,-10.912402343750003],[39.98867187500002,-10.82080078125],[40.46357421875001,-10.46435546875],[40.61171875000002,-10.661523437500009],[40.48662109375002,-10.76513671875],[40.59716796875,-10.830664062500006],[40.40283203125,-11.33203125],[40.53154296875002,-12.004589843750011],[40.48710937500002,-12.4921875],[40.58085937500002,-12.635546875],[40.43681640625002,-12.983105468750011],[40.56875,-12.984667968750003],[40.595703125,-14.122851562500003],[40.715625,-14.214453125],[40.64609375,-14.538671875],[40.775,-14.421289062500009],[40.84453125000002,-14.718652343750009],[40.617773437500006,-15.115527343750003],[40.650976562500006,-15.260937500000011],[39.98359375000001,-16.22548828125001],[39.79091796875002,-16.29453125],[39.84462890625002,-16.435644531250006],[39.084375,-16.97285156250001],[38.14492187500002,-17.242773437500006],[37.24453125000002,-17.73994140625001],[36.93935546875002,-17.993457031250003],[36.40371093750002,-18.76972656250001],[36.26289062500001,-18.71962890625001],[36.23564453125002,-18.861328125],[35.85371093750001,-18.99335937500001],[34.947851562500006,-19.81269531250001],[34.6494140625,-19.70136718750001],[34.75576171875002,-19.82197265625001],[34.705078125,-20.473046875],[34.98232421875002,-20.80625],[35.267675781250006,-21.650976562500006],[35.31572265625002,-22.396875],[35.38300781250001,-22.45458984375],[35.45634765625002,-22.11591796875001],[35.53007812500002,-22.248144531250006],[35.57539062500001,-22.96308593750001],[35.37041015625002,-23.79824218750001],[35.5419921875,-23.82441406250001],[35.48964843750002,-24.065527343750006],[34.99208984375002,-24.65058593750001],[32.96113281250001,-25.49042968750001],[32.590429687500006,-26.00410156250001],[32.84882812500001,-26.26806640625],[32.95488281250002,-26.08359375],[32.93359375,-26.25234375],[32.88916015625,-26.83046875],[32.88613281250002,-26.84931640625001],[32.353515625,-26.861621093750003],[32.19960937500002,-26.83349609375],[32.112890625,-26.839453125]]]},"properties":{"name":"Mozambique","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-16.37333984374999,19.706445312499994],[-16.437548828124932,19.609277343749994],[-16.477001953124983,19.710351562499994],[-16.343652343749994,19.86621093750003],[-16.37333984374999,19.706445312499994]]],[[[-5.359912109374989,16.282861328124994],[-5.5125,15.496289062499983],[-9.293701171875,15.502832031249994],[-9.350585937499943,15.677392578125023],[-9.38535156249992,15.667626953124994],[-9.4265625,15.623046875000057],[-9.447705078124926,15.574853515624994],[-9.446923828124937,15.458203124999955],[-9.941406249999972,15.373779296874986],[-10.696582031249989,15.42265625],[-10.9482421875,15.151123046875014],[-11.455224609374994,15.62539062499999],[-11.760156249999937,15.425537109375057],[-11.828759765624966,15.244873046875014],[-11.872851562499989,14.995166015625031],[-12.02158203124992,14.804931640625],[-12.081542968749972,14.766357421875057],[-12.104687499999955,14.745361328125043],[-12.40869140625,14.889013671874991],[-12.735253906249994,15.13125],[-13.105273437499989,15.57177734375],[-13.40966796875,16.059179687500006],[-13.756640624999989,16.172509765624994],[-13.868457031249932,16.14814453125001],[-14.300097656249932,16.58027343750001],[-14.990625,16.676904296874994],[-15.768212890624994,16.485107421875],[-16.23901367187497,16.53129882812499],[-16.44101562499992,16.20454101562504],[-16.480078124999977,16.097216796875017],[-16.50205078124992,15.917333984375063],[-16.53525390624995,15.838378906250057],[-16.53574218749995,16.28681640625001],[-16.463623046875,16.60151367187501],[-16.030322265625017,17.88793945312497],[-16.213085937499926,19.003320312500023],[-16.51445312499996,19.361962890624994],[-16.305273437499977,19.51264648437504],[-16.44487304687499,19.47314453124997],[-16.21044921875003,20.227929687500023],[-16.42978515624995,20.652343750000057],[-16.622509765624955,20.634179687499994],[-16.87607421874992,21.086132812499955],[-16.998242187499926,21.039697265625023],[-17.048046874999955,20.80615234375003],[-17.06396484375,20.89882812499999],[-16.96455078125001,21.329248046875023],[-15.231201171875,21.331298828125],[-14.084667968749926,21.33271484375001],[-13.626025390624932,21.33325195312503],[-13.396728515624943,21.333544921875017],[-13.167431640624926,21.333789062500074],[-13.016210937499949,21.33393554687501],[-13.025097656249983,21.46679687499997],[-13.032226562500028,21.572070312500017],[-13.041748046875,21.71381835937504],[-13.051220703124983,21.854785156250074],[-13.094335937499977,22.49599609375005],[-13.153271484374983,22.820507812499983],[-13.031494140624943,23.000244140625],[-12.895996093749972,23.08955078125001],[-12.739599609375006,23.192724609375063],[-12.62041015624996,23.271337890625006],[-12.559375,23.290820312500045],[-12.372900390624977,23.318017578124994],[-12.023437499999943,23.467578125000017],[-12.016308593749983,23.97021484375],[-12.016308593749983,24.378662109375],[-12.016308593749983,24.923242187499994],[-12.016308593749983,25.059375],[-12.016308593749983,25.331689453124994],[-12.016308593749983,25.740136718749994],[-12.016308593749983,25.995410156250017],[-10.376123046874966,25.995458984375034],[-9.444531249999983,25.99550781250005],[-9.071923828124937,25.99550781250005],[-8.885644531249994,25.99550781250005],[-8.682226562499949,25.99550781250005],[-8.68212890625,26.109472656250006],[-8.68212890625,26.273193359375057],[-8.682324218749955,26.49770507812505],[-8.682617187500028,26.723144531250057],[-8.682861328124972,26.92133789062501],[-8.683349609375,27.285937500000045],[-4.822607421874949,24.99560546875],[-5.640771484374994,24.99516601562499],[-5.959814453124977,24.994970703125063],[-6.287207031249977,24.99482421875001],[-6.594091796874977,24.99462890624997],[-6.396582031249977,23.274804687499994],[-6.02641601562496,20.04218750000001],[-5.827099609374955,18.301562500000045],[-5.741699218749943,17.555566406250023],[-5.713183593750017,17.306884765625],[-5.684765624999983,17.058251953124966],[-5.628662109375028,16.568652343750045],[-5.50961914062492,16.442041015625023],[-5.359912109374989,16.282861328124994]]]]},"properties":{"name":"Mauritania","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-62.1484375,16.74033203124999],[-62.221630859375,16.699511718750003],[-62.191357421875,16.804394531249997],[-62.1484375,16.74033203124999]]]},"properties":{"name":"Montserrat","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[57.65126953125002,-20.48486328125],[57.31767578125002,-20.42763671875001],[57.416015625,-20.18378906250001],[57.65654296875002,-19.98994140625001],[57.7919921875,-20.21259765625001],[57.65126953125002,-20.48486328125]]]},"properties":{"name":"Mauritius","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[34.95947265625003,-11.578125],[34.82656250000005,-11.575683593749972],[34.65957031250005,-11.58867187499996],[34.61855468750005,-11.620214843749991],[34.60625,-11.690039062500006],[34.3578125,-12.164746093749997],[34.542578125,-13.108691406250003],[34.54570312500002,-13.21630859375],[34.6115234375001,-13.437890625000023],[35.0138671875001,-13.64345703124998],[35.247460937499994,-13.896875],[35.37578125000002,-14.05869140625002],[35.48847656250004,-14.20107421874998],[35.69042968749997,-14.465527343750026],[35.84716796875003,-14.670898437500043],[35.8927734375001,-14.891796875000011],[35.7912109375001,-15.958691406250026],[35.75527343750005,-16.058300781249983],[35.708886718749994,-16.095800781249977],[35.5993164062501,-16.12587890624998],[35.35849609375006,-16.160546875000023],[35.242773437500006,-16.375390625],[35.16718750000004,-16.56025390625001],[35.178320312500006,-16.57333984375002],[35.22978515625002,-16.639257812500034],[35.281152343749994,-16.8078125],[35.29042968750005,-17.096972656250017],[35.27255859375006,-17.11845703124996],[35.2013671875001,-17.13105468750004],[35.124609375,-17.127246093749974],[35.06464843750004,-17.078613281250014],[35.11210937500002,-16.898535156250006],[34.93339843750002,-16.760351562500006],[34.528125,-16.319140625],[34.24609374999997,-15.829394531249974],[34.54082031250002,-15.297265625],[34.50527343750005,-14.598144531249957],[34.375,-14.4248046875],[33.63642578125004,-14.568164062499974],[33.148046875,-13.94091796875],[32.98125,-14.009375],[32.797460937500006,-13.6884765625],[32.67041015624997,-13.590429687500006],[32.96757812500002,-13.225],[32.97519531250006,-12.701367187499983],[33.51230468750006,-12.347753906249977],[33.340136718750074,-12.308300781250011],[33.25234375000005,-12.112597656250031],[33.3039062500001,-11.69082031249998],[33.23271484375002,-11.417675781250026],[33.26835937500002,-11.403906249999977],[33.379785156249994,-11.15791015625004],[33.29277343750002,-10.85234375],[33.661523437499994,-10.553125],[33.55371093749997,-10.391308593750011],[33.53759765624997,-10.351562499999986],[33.52890625,-10.234667968749974],[33.31152343750003,-10.037988281249966],[33.3371093750001,-9.954003906249994],[33.350976562499994,-9.862207031250037],[33.25,-9.759570312500003],[33.148046875,-9.603515625],[32.99599609375005,-9.622851562499946],[32.91992187500003,-9.407421875000026],[33.88886718750004,-9.670117187499983],[33.99560546875003,-9.495410156250003],[34.32089843750006,-9.731542968749977],[34.56992187500006,-10.241113281249966],[34.66708984375006,-10.792480468750028],[34.60791015624997,-11.08046875],[34.77382812500005,-11.341699218750009],[34.890625,-11.3935546875],[34.93701171874997,-11.463476562500034],[34.95947265625003,-11.578125]]]},"properties":{"name":"Malawi","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[111.38925781250006,2.415332031250031],[111.31152343749997,2.437597656250034],[111.33349609374997,2.768310546875],[111.38925781250006,2.415332031250031]]],[[[104.22158203125,2.731738281250003],[104.1291015625001,2.767236328125037],[104.18476562500004,2.871728515625009],[104.22158203125,2.731738281250003]]],[[[117.88476562499997,4.186132812500006],[117.64902343750012,4.168994140624974],[117.70800781249997,4.262402343749997],[117.88476562499997,4.186132812500006]]],[[[100.28896484375005,5.294726562499989],[100.19101562500006,5.28286132812498],[100.2455078125,5.467773437499986],[100.33886718749997,5.410058593750037],[100.28896484375005,5.294726562499989]]],[[[99.848046875,6.465722656249994],[99.9186523437501,6.358593750000011],[99.74375,6.263281249999963],[99.64628906250002,6.418359375000023],[99.848046875,6.465722656249994]]],[[[102.10107421874997,6.242236328125031],[102.34013671875002,6.172021484375023],[102.534375,5.862548828125028],[103.09707031250005,5.408447265624986],[103.41582031250007,4.85029296875004],[103.43945312499997,2.93310546875],[103.8122070312501,2.58046875],[104.21855468750002,1.722851562499997],[104.25009765625012,1.388574218750009],[104.11494140625004,1.412255859375037],[103.98144531250003,1.623632812500034],[103.99150390625002,1.454785156249997],[103.6945312500001,1.449658203125026],[103.48027343750007,1.329492187499966],[103.35683593750005,1.546142578125057],[102.72714843750012,1.855566406250034],[101.29550781250012,2.885205078125011],[101.29990234375012,3.253271484375034],[100.71542968750006,3.966210937499966],[100.79550781250012,4.023388671874983],[100.61455078125002,4.3734375],[100.34326171874997,5.984179687500031],[100.11914062499997,6.441992187500048],[100.26142578125004,6.682714843749963],[100.3454101562501,6.549902343750006],[100.75449218750012,6.460058593749991],[100.87392578125,6.24541015624996],[101.05351562500002,6.242578125],[100.98164062500004,5.771044921875045],[101.1139648437501,5.636767578125045],[101.5560546875,5.907763671875003],[101.67841796875004,5.778808593750028],[101.87363281250012,5.825292968749991],[102.10107421874997,6.242236328125031]]],[[[117.5744140625001,4.17060546875004],[117.10058593750003,4.337060546875023],[116.51474609375006,4.370800781249969],[115.86074218750005,4.348046875000037],[115.67880859375006,4.193017578124994],[115.45439453125002,3.034326171875009],[115.24697265625005,3.025927734374989],[115.117578125,2.89487304687502],[115.08076171875004,2.63422851562504],[115.1791015625,2.523193359374972],[114.78642578125002,2.250488281250014],[114.83056640625003,1.980029296874989],[114.5125,1.452001953124963],[113.90234375000003,1.434277343749997],[113.6222656250001,1.2359375],[113.00654296875004,1.433886718750003],[112.94296875000006,1.566992187500034],[112.47617187500006,1.559082031250028],[112.1857421875001,1.4390625],[112.078515625,1.143359374999974],[111.80898437500005,1.011669921874969],[111.10136718750002,1.050537109374986],[110.50576171875005,0.861962890625023],[109.65400390625004,1.614892578125023],[109.53896484375,1.89619140625004],[109.62890625000003,2.027539062499983],[109.86484375000012,1.764453125000031],[110.34921875000012,1.719726562499972],[111.22324218750012,1.395849609374991],[111.0287109375,1.557812500000026],[111.26816406250012,2.13974609375002],[111.20859375000012,2.379638671875043],[111.44384765625003,2.381542968749983],[111.5125,2.743017578124991],[112.98789062500006,3.161914062499974],[113.92392578125006,4.243212890625003],[114.0638671875,4.592675781249966],[114.65410156250007,4.037646484375045],[114.84023437500005,4.393212890625009],[114.74667968750006,4.718066406250017],[115.02675781250005,4.899707031249989],[115.10703125000006,4.390429687499974],[115.290625,4.352587890624989],[115.1400390625,4.899755859374991],[115.37490234375,4.932763671874966],[115.55449218750007,5.093554687500045],[115.41904296875012,5.413183593749963],[115.60390625,5.603417968749994],[115.74082031250012,5.533007812500045],[115.8771484375001,5.613525390625014],[116.74980468750007,6.977099609374989],[116.8498046875001,6.826708984374989],[116.78808593749997,6.606103515624994],[117.12851562500012,6.968896484375009],[117.2298828125,6.939990234374974],[117.29404296875006,6.676904296875023],[117.60966796875002,6.512646484375054],[117.69375,6.35],[117.64453124999997,6.001855468749994],[117.5011718750001,5.884667968750009],[118.00380859375,6.053320312499991],[118.11582031250006,5.8625],[117.93476562500004,5.7875],[117.97363281249997,5.70625],[118.35312500000012,5.80605468749998],[118.59482421875006,5.592089843750003],[119.22343750000007,5.412646484375031],[119.2663085937501,5.308105468750057],[119.21962890625,5.159814453125037],[118.9125,5.02290039062504],[118.26054687500007,4.988867187500034],[118.18535156250002,4.828515625000051],[118.5625,4.502148437499997],[118.54833984375003,4.379248046875006],[118.008203125,4.250244140625014],[117.6964843750001,4.342822265625045],[117.5744140625001,4.17060546875004]]],[[[117.14160156250003,7.168212890625028],[117.08066406250006,7.115283203124989],[117.06425781250007,7.26069335937504],[117.2640625,7.351660156250006],[117.26679687500004,7.220800781249991],[117.14160156250003,7.168212890625028]]]]},"properties":{"name":"Malaysia","childNum":8}},{"geometry":{"type":"Polygon","coordinates":[[[23.380664062500017,-17.640625],[24.27490234375,-17.481054687500006],[24.73291015625,-17.51777343750001],[25.001757812500017,-17.56855468750001],[25.2587890625,-17.793554687500006],[24.909082031250023,-17.821386718750006],[24.530566406250017,-18.052734375],[24.243945312500017,-18.0234375],[23.599707031250006,-18.4599609375],[23.219335937500006,-17.99970703125001],[20.97412109375,-18.31884765625],[20.9794921875,-21.9619140625],[19.977343750000017,-22.00019531250001],[19.98046875,-24.77675781250001],[19.98046875,-28.310351562500003],[19.98046875,-28.451269531250006],[19.539843750000017,-28.574609375],[19.31269531250001,-28.73330078125001],[19.24580078125001,-28.901660156250003],[19.16171875,-28.938769531250003],[18.310839843750017,-28.88623046875],[17.44794921875001,-28.69814453125001],[17.34785156250001,-28.50117187500001],[17.358691406250017,-28.26943359375001],[17.1884765625,-28.13251953125001],[17.05625,-28.031054687500003],[16.93330078125001,-28.069628906250003],[16.875292968750017,-28.1279296875],[16.841210937500023,-28.21894531250001],[16.81015625,-28.26455078125001],[16.7875,-28.39472656250001],[16.755761718750023,-28.4521484375],[16.62617187500001,-28.487890625],[16.487109375000017,-28.572851562500006],[16.447558593750017,-28.617578125],[15.719042968750017,-27.9658203125],[15.341503906250011,-27.386523437500003],[15.139062500000023,-26.50800781250001],[14.9677734375,-26.31806640625001],[14.837109375000011,-25.033203125],[14.5015625,-24.201953125],[14.462792968750023,-22.44912109375001],[13.450585937500023,-20.91669921875001],[13.168359375000023,-20.184667968750006],[12.458203125000011,-18.9267578125],[11.77587890625,-18.001757812500003],[11.733496093750006,-17.7509765625],[11.743066406250023,-17.24921875000001],[11.902539062500011,-17.2265625],[12.013964843750017,-17.168554687500006],[12.21337890625,-17.2099609375],[12.318457031250006,-17.21337890625],[12.359277343750023,-17.205859375],[12.548144531250017,-17.212695312500003],[13.179492187500017,-16.9716796875],[13.475976562500023,-17.0400390625],[14.017480468750023,-17.40888671875001],[16.1484375,-17.390234375],[18.396386718750023,-17.3994140625],[18.95527343750001,-17.803515625],[20.1943359375,-17.863671875],[20.745507812500023,-18.01972656250001],[22.32421875,-17.8375],[23.380664062500017,-17.640625]]]},"properties":{"name":"Namibia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[167.54443359375003,-22.62324218750001],[167.44375,-22.63916015624997],[167.44345703125006,-22.541406250000037],[167.54443359375003,-22.62324218750001]]],[[[168.01093750000004,-21.429980468750017],[168.1390625,-21.44521484375001],[168.12070312500012,-21.615820312500034],[167.96679687500003,-21.641601562499957],[167.81542968749997,-21.392675781249963],[167.9884765625001,-21.337890624999986],[168.01093750000004,-21.429980468750017]]],[[[167.40087890625003,-21.16064453125003],[167.07265625,-20.99726562499997],[167.03271484374997,-20.922558593750026],[167.18945312500003,-20.803515625000017],[167.05576171875012,-20.720214843750014],[167.29794921875006,-20.732519531250034],[167.40087890625003,-21.16064453125003]]],[[[164.20234375000004,-20.246093749999957],[164.4359375,-20.282226562499957],[165.191796875,-20.768847656249974],[165.66279296875004,-21.267187499999977],[166.94238281250003,-22.09013671875003],[166.97031250000012,-22.32285156250002],[166.77412109375004,-22.37617187500004],[166.4679687500001,-22.256054687499997],[164.92744140625004,-21.289843749999974],[164.16972656250007,-20.48017578125004],[164.05966796875012,-20.141503906249966],[164.20234375000004,-20.246093749999957]]]]},"properties":{"name":"New Caledonia","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[14.97900390625,22.99619140624999],[15.181835937500011,21.523388671874997],[15.607324218750023,20.954394531250003],[15.587109375000011,20.733300781249994],[15.963183593750017,20.34619140625],[15.735058593750011,19.904052734375],[15.474316406250011,16.908398437499997],[14.367968750000017,15.750146484374994],[13.4482421875,14.380664062500003],[13.505761718750023,14.134423828124994],[13.606347656250023,13.70458984375],[13.426953125000011,13.701757812499991],[13.323828125,13.670849609374997],[12.871679687500006,13.449023437500003],[12.65478515625,13.3265625],[12.463183593750017,13.09375],[10.958886718750023,13.371533203124997],[10.475878906250017,13.330224609374994],[10.229589843750006,13.281005859375],[10.184667968750006,13.270117187499991],[9.615917968750011,12.810644531249991],[9.201562500000023,12.821484375],[8.750585937500006,12.908154296874997],[8.4560546875,13.059667968749991],[8.095019531250017,13.291162109374994],[7.955761718750011,13.32275390625],[7.788671875,13.337890625],[7.056738281250006,13.000195312499997],[6.804296875,13.107666015625],[6.2998046875,13.658789062499991],[6.184277343750011,13.66367187499999],[5.838183593750017,13.765380859375],[5.491992187500017,13.872851562500003],[5.415820312500017,13.859179687500003],[5.361621093750017,13.836865234374997],[5.241894531250011,13.757226562499994],[4.664843750000017,13.733203125],[4.147558593750006,13.457714843749997],[3.947851562500006,12.775048828124994],[3.646679687500011,12.529980468749997],[3.595410156250011,11.6962890625],[2.805273437500006,12.383837890624989],[2.366015625000017,12.221923828125],[2.38916015625,11.897070312499991],[2.072949218750011,12.309375],[2.226269531250011,12.466064453125],[2.104589843750006,12.701269531249991],[1.56494140625,12.635400390624994],[0.9873046875,13.041894531249994],[0.988476562500011,13.36484375],[1.201171875,13.357519531249991],[0.6181640625,13.703417968750003],[0.42919921875,13.972119140624997],[0.382519531250011,14.245800781249997],[0.163867187500017,14.497216796874994],[0.217480468750011,14.911474609374991],[0.947460937500011,14.982128906249997],[1.300195312500023,15.272265625],[3.001074218750006,15.340966796874994],[3.06015625,15.427197265624997],[3.504296875000023,15.356347656249994],[3.5205078125,15.483105468749997],[3.842968750000011,15.701708984375003],[4.121289062500011,16.357714843750003],[4.234667968750017,16.996386718750003],[4.227636718750006,19.142773437499997],[5.836621093750011,19.479150390624994],[7.481738281250017,20.873095703125003],[11.967871093750006,23.517871093750003],[13.48125,23.18017578125],[14.215527343750011,22.619677734375003],[14.97900390625,22.99619140624999]]]},"properties":{"name":"Niger","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[7.30078125,4.418164062500026],[7.140429687500017,4.395117187500034],[7.227343750000045,4.527343749999972],[7.30078125,4.418164062500026]]],[[[6.804296875,13.107666015625],[7.056738281250006,13.00019531250004],[7.788671875,13.337890625],[7.955761718750011,13.322753906250028],[8.095019531250045,13.29116210937498],[8.750585937500034,12.908154296875026],[9.20156250000008,12.82148437500004],[9.615917968750011,12.810644531249963],[10.184667968750063,13.270117187499963],[10.229589843749977,13.281005859375043],[10.475878906250074,13.330224609375037],[10.958886718750051,13.371533203125011],[12.463183593750017,13.09375],[12.654785156250057,13.3265625],[13.426953125000068,13.701757812499963],[13.606347656250023,13.704589843750014],[13.932324218750011,13.258496093749997],[14.06396484375,13.078515625],[14.160058593750023,12.612792968749986],[14.184863281250017,12.447216796874997],[14.272851562500023,12.356494140624989],[14.518945312500051,12.298242187500023],[14.619726562500063,12.150976562500048],[14.559765625000011,11.492285156249963],[14.20234375000004,11.268164062499963],[14.143261718750068,11.248535156250043],[14.056738281250034,11.245019531250037],[13.981445312500057,11.21186523437504],[13.892089843750057,11.140087890624983],[13.699902343749983,10.873144531250048],[13.53535156250004,10.605078124999963],[13.414550781250028,10.171435546874989],[13.269921875000051,10.036181640624974],[13.198730468750028,9.563769531250003],[12.929492187500074,9.426269531249972],[12.87568359375004,9.303515625000017],[12.80654296875008,8.886621093749994],[12.7822265625,8.817871093750014],[12.651562500000011,8.667773437499989],[12.40351562500004,8.59555664062502],[12.311328125000074,8.419726562499989],[12.2333984375,8.282324218749977],[12.016015625000051,7.589746093750009],[11.809179687500006,7.345068359374991],[11.767382812500017,7.272265624999989],[11.861425781249977,7.11640625000004],[11.657519531250017,6.951562500000023],[11.580078125000057,6.88886718750004],[11.551660156250023,6.697265625],[11.153320312500057,6.437939453125011],[11.1064453125,6.457714843750054],[11.032519531250045,6.697900390625037],[10.954199218750006,6.7765625],[10.60625,7.063085937500006],[10.413183593750006,6.877734375],[10.293066406250034,6.876757812499974],[10.205468750000051,6.891601562499986],[10.185546874999972,6.91279296875004],[10.167773437500017,6.959179687499983],[10.143554687500057,6.99643554687502],[10.038867187500045,6.921386718750014],[9.874218750000068,6.803271484375017],[9.82070312500008,6.783935546874986],[9.779882812500034,6.760156250000023],[9.725585937499972,6.65],[9.659960937500017,6.531982421874986],[9.490234375,6.418652343749997],[8.997167968750006,5.917724609375],[8.715625,5.046875],[8.514843750000068,4.724707031250034],[8.23378906250008,4.907470703124972],[8.293066406250006,4.557617187500014],[7.644238281250068,4.525341796875011],[7.530761718750028,4.655175781249994],[7.284375,4.547656250000031],[7.076562500000051,4.716162109374991],[7.15468750000008,4.514404296875],[6.92324218750008,4.390673828125017],[6.767675781250006,4.724707031250034],[6.860351562500057,4.373339843750045],[6.633007812500011,4.340234375000051],[6.579980468750051,4.475976562499994],[6.554589843750023,4.34140625000002],[6.263671875,4.309423828124991],[6.270996093749972,4.432128906250028],[6.173339843749972,4.277392578125031],[5.970703125,4.338574218749983],[5.587792968750051,4.647216796874972],[5.448144531250023,4.945849609374974],[5.383300781250057,5.129003906249977],[5.475976562500023,5.153857421874989],[5.370019531250023,5.195019531250026],[5.367968750000045,5.337744140624963],[5.549707031250023,5.474218749999963],[5.385839843750034,5.401757812500037],[5.199218750000028,5.533544921874977],[5.456640624999977,5.61171875],[5.327343750000011,5.707519531249986],[5.112402343750034,5.64155273437504],[4.861035156250068,6.026318359374997],[4.431347656250011,6.348583984375026],[3.450781249999977,6.427050781250017],[3.71699218750004,6.597949218750017],[3.430175781250057,6.525],[3.335546875000063,6.396923828125011],[2.706445312500051,6.369238281249963],[2.735644531250045,6.595703125],[2.753710937499989,6.661767578124966],[2.774609374999983,6.711718750000017],[2.752929687500028,6.771630859374966],[2.731738281250045,6.852832031249989],[2.721386718750068,6.980273437500017],[2.75673828125008,7.067919921875017],[2.750488281250057,7.39506835937496],[2.765820312500068,7.422509765625051],[2.783984375000045,7.443408203125045],[2.78515625,7.476855468750017],[2.703125,8.371826171875],[2.774804687500023,9.048535156250026],[3.044921875,9.08383789062502],[3.325195312499972,9.778466796875051],[3.60205078125,10.004541015625009],[3.646582031250006,10.408984374999989],[3.771777343750017,10.417626953124966],[3.83447265625,10.607421875],[3.7568359375,10.76875],[3.71640625,11.07958984375],[3.695312499999972,11.12031250000004],[3.63886718750004,11.176855468750006],[3.487792968749972,11.395410156250037],[3.490527343750017,11.499218750000054],[3.55390625000004,11.631884765624989],[3.595410156250068,11.696289062500057],[3.664746093750068,11.762451171875028],[3.646679687500011,12.529980468749983],[3.947851562500006,12.775048828124994],[4.147558593750006,13.457714843749983],[4.664843750000045,13.733203124999974],[5.241894531250011,13.757226562499994],[5.361621093750074,13.836865234375054],[5.415820312500017,13.859179687499974],[5.491992187500074,13.872851562500003],[6.2998046875,13.658789062500006],[6.804296875,13.107666015625]]]]},"properties":{"name":"Nigeria","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-83.6419921875,10.917236328125],[-83.71293945312499,10.785888671875],[-83.91928710937499,10.7353515625],[-84.6341796875,11.045605468749997],[-84.9091796875,10.9453125],[-85.5841796875,11.189453125],[-85.7443359375,11.06210937499999],[-87.670166015625,12.965673828124991],[-87.58505859374999,13.043310546874991],[-87.42436523437499,12.921142578125],[-87.33725585937499,12.979248046875],[-87.05917968749999,12.991455078125],[-87.00932617187499,13.0078125],[-86.918212890625,13.223583984374997],[-86.87353515625,13.266503906249994],[-86.792138671875,13.27978515625],[-86.72929687499999,13.284375],[-86.710693359375,13.313378906249994],[-86.76352539062499,13.63525390625],[-86.77060546874999,13.69873046875],[-86.758984375,13.746142578125003],[-86.733642578125,13.763476562500003],[-86.61025390625,13.774853515624997],[-86.376953125,13.755664062500003],[-86.33173828125,13.770068359375003],[-86.238232421875,13.899462890625003],[-86.15122070312499,13.994580078124997],[-86.0892578125,14.037207031249991],[-86.04038085937499,14.050146484374991],[-85.9837890625,13.965673828124991],[-85.78671875,13.844433593749997],[-85.75341796875,13.85205078125],[-85.73393554687499,13.858691406250003],[-85.727734375,13.876074218749991],[-85.731201171875,13.931835937499997],[-85.68193359374999,13.982568359374994],[-85.20834960937499,14.311816406250003],[-85.059375,14.582958984374997],[-84.86044921874999,14.809765625],[-84.645947265625,14.661083984374997],[-84.53764648437499,14.633398437499991],[-83.635498046875,14.876416015624997],[-83.5365234375,14.977001953124997],[-83.4150390625,15.008056640625],[-83.15751953124999,14.993066406249994],[-83.18535156249999,14.956396484374991],[-83.21591796874999,14.932373046875],[-83.27988281249999,14.812792968750003],[-83.344384765625,14.902099609375],[-83.413720703125,14.825341796874994],[-83.29921875,14.7490234375],[-83.187744140625,14.340087890625],[-83.4123046875,13.99648437499999],[-83.567333984375,13.3203125],[-83.5109375,12.411816406249997],[-83.627197265625,12.459326171874991],[-83.59335937499999,12.713085937499997],[-83.75424804687499,12.501953125],[-83.680419921875,12.024316406249994],[-83.7671875,12.059277343749997],[-83.82890624999999,11.861035156249997],[-83.70458984375,11.824560546874991],[-83.6517578125,11.642041015624997],[-83.86787109375,11.300048828125],[-83.6419921875,10.917236328125]]]},"properties":{"name":"Nicaragua","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-169.80341796875,-19.0830078125],[-169.94833984375,-19.072851562500006],[-169.834033203125,-18.96601562500001],[-169.80341796875,-19.0830078125]]]},"properties":{"name":"Niue","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-68.205810546875,12.144580078124989],[-68.25434570312495,12.032080078124977],[-68.36923828125,12.301953124999983],[-68.205810546875,12.144580078124989]]],[[[4.226171875000034,51.38647460937503],[3.902050781250011,51.20766601562502],[3.43251953125008,51.24575195312505],[3.35009765625,51.37768554687503],[4.226171875000034,51.38647460937503]]],[[[3.94912109375008,51.73945312500001],[4.07509765625008,51.648779296875006],[3.699023437500017,51.70991210937501],[3.94912109375008,51.73945312500001]]],[[[4.886132812500023,53.07070312500005],[4.70917968750004,53.036035156249994],[4.886425781249983,53.18330078124998],[4.886132812500023,53.07070312500005]]],[[[4.226171875000034,51.38647460937503],[3.448925781250068,51.54077148437503],[3.743945312500017,51.596044921875006],[4.27412109375004,51.47163085937498],[4.004785156250051,51.595849609374966],[4.182617187500057,51.61030273437498],[3.946875,51.810546875],[4.482812500000023,52.30917968749998],[4.76875,52.941308593749966],[5.061230468750068,52.96064453125001],[5.532031250000074,53.268701171874966],[6.062207031250068,53.407080078125006],[6.816210937500045,53.44116210937503],[7.197265625000028,53.28227539062499],[7.033007812500045,52.65136718749997],[6.710742187500045,52.61787109374998],[6.748828125000074,52.464013671874994],[7.035156250000057,52.38022460937498],[6.724511718749994,52.080224609374966],[6.800390625,51.96738281249998],[5.948730468750057,51.80268554687501],[6.198828125000034,51.45],[6.129980468750034,51.14741210937501],[5.857519531250034,51.030126953125006],[6.048437500000034,50.90488281250006],[5.993945312500017,50.75043945312504],[5.693554687500011,50.774755859375006],[5.796484375000034,51.153076171875],[5.214160156250045,51.278955078124966],[5.03095703125004,51.46909179687498],[4.226171875000034,51.38647460937503]]],[[[5.325781250000063,53.38574218750003],[5.190234375000074,53.39179687500001],[5.582617187500063,53.438085937500034],[5.325781250000063,53.38574218750003]]]]},"properties":{"name":"Netherlands","childNum":6,"cp":[5.0752777,52.358465]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[5.085839843750023,60.30756835937501],[5.089062500000068,60.188769531250045],[4.95722656250004,60.44726562500006],[5.085839843750023,60.30756835937501]]],[[[4.958691406250068,61.084570312500034],[4.79902343750004,61.08271484375001],[4.861621093749989,61.19384765625],[4.958691406250068,61.084570312500034]]],[[[8.10273437500004,63.33759765625004],[7.804003906250017,63.413916015625034],[8.073535156250045,63.47080078124998],[8.10273437500004,63.33759765625004]]],[[[8.470800781250063,63.66713867187502],[8.287109375000028,63.68715820312502],[8.764648437500057,63.804638671874955],[8.78652343750008,63.703466796875034],[8.470800781250063,63.66713867187502]]],[[[11.2314453125,64.865869140625],[10.739843750000034,64.87031250000001],[11.02099609375,64.97871093749995],[11.2314453125,64.865869140625]]],[[[12.971777343750063,67.87412109375],[12.824023437500074,67.82124023437498],[13.068066406250068,68.07133789062505],[12.971777343750063,67.87412109375]]],[[[13.872851562500045,68.26533203125004],[14.096777343750034,68.218603515625],[13.229394531250051,67.995361328125],[13.300195312499994,68.16044921875007],[13.872851562500045,68.26533203125004]]],[[[15.207128906250006,68.943115234375],[15.222070312500023,68.61630859375003],[14.404687500000051,68.663232421875],[15.037792968750068,69.00053710937507],[15.207128906250006,68.943115234375]]],[[[15.760351562500006,68.56123046875001],[16.328906250000017,68.87631835937498],[16.519238281250068,68.63300781249998],[15.975292968750011,68.402490234375],[14.257519531249983,68.19077148437503],[15.412597656250028,68.61582031250003],[15.483007812500006,69.04345703125003],[16.04804687500001,69.30205078125002],[15.760351562500006,68.56123046875001]]],[[[17.503027343750034,69.59624023437502],[18.004101562500068,69.50498046874998],[17.95068359375003,69.19814453125],[17.487890625000063,69.19682617187499],[17.08251953124997,69.013671875],[16.81044921875008,69.07070312499997],[17.001757812500045,69.36191406250006],[17.36083984375003,69.38149414062497],[17.503027343750034,69.59624023437502]]],[[[29.956152343750006,69.79677734375002],[29.766210937500006,69.76752929687501],[29.835839843749994,69.90556640625005],[29.956152343750006,69.79677734375002]]],[[[20.779199218750023,70.08974609375002],[20.46425781250005,70.0765625],[20.492773437500006,70.20332031249995],[20.78603515625008,70.21953124999999],[20.779199218750023,70.08974609375002]]],[[[19.25507812500001,70.06640625000006],[19.607812500000023,70.019140625],[19.334765625000074,69.82026367187501],[18.784765625000034,69.57900390624997],[18.12988281250003,69.557861328125],[18.34931640625004,69.76787109374999],[18.67402343750004,69.78164062500002],[19.13271484375005,70.24414062500003],[19.25507812500001,70.06640625000006]]],[[[19.76748046875005,70.21669921875002],[20.005957031250034,70.07622070312502],[19.599023437499994,70.26616210937507],[19.76748046875005,70.21669921875002]]],[[[23.615332031250034,70.54931640625003],[23.15917968750003,70.28261718750005],[22.941015625000063,70.444580078125],[23.546679687500017,70.61708984374997],[23.615332031250034,70.54931640625003]]],[[[24.01757812500003,70.56738281249997],[23.716601562500074,70.561865234375],[23.778417968750063,70.74736328125005],[24.01757812500003,70.56738281249997]]],[[[23.440527343750063,70.81577148437503],[22.8291015625,70.54155273437505],[22.358691406250017,70.514794921875],[21.99453125000008,70.65712890624997],[23.440527343750063,70.81577148437503]]],[[[30.869726562500006,69.78344726562506],[30.860742187499994,69.53842773437503],[30.18017578124997,69.63583984375],[30.08730468750005,69.43286132812503],[29.38828125,69.29814453125005],[28.96582031250003,69.02197265625],[28.846289062500006,69.17690429687502],[29.33339843750005,69.47299804687503],[29.14160156250003,69.67143554687505],[27.747851562500045,70.06484375],[27.127539062500063,69.90649414062497],[26.525390625000057,69.91503906250003],[26.07246093750004,69.69155273437497],[25.748339843750017,68.99013671875],[24.94140625000003,68.59326171875006],[23.85400390625,68.80590820312503],[23.324023437500017,68.64897460937502],[22.410937500000074,68.719873046875],[21.59375,69.273583984375],[21.06611328125001,69.21411132812497],[21.065722656250017,69.04174804687503],[20.622167968750006,69.036865234375],[20.116699218750057,69.02089843750005],[20.348046875000023,68.84873046875003],[19.969824218750063,68.35639648437501],[18.303027343750045,68.55541992187497],[17.91669921875001,67.96489257812502],[17.324609375000023,68.10380859374999],[16.783593750000023,67.89501953125],[16.12744140625,67.42583007812507],[16.40351562500004,67.05498046875002],[15.422949218750006,66.48984374999998],[15.483789062500051,66.30595703124999],[14.543261718750045,66.12934570312498],[14.47968750000004,65.30146484374998],[13.650292968750023,64.58154296874997],[14.077636718750028,64.464013671875],[14.141210937500006,64.17353515624998],[13.960546875000063,64.01401367187498],[13.203515625000023,64.07509765625],[12.792773437500017,64],[12.175195312500051,63.595947265625],[11.999902343750051,63.29169921875001],[12.303515625000074,62.28559570312501],[12.155371093750006,61.720751953125045],[12.88076171875008,61.35229492187506],[12.706054687500028,61.059863281250074],[12.29414062500004,61.00268554687506],[12.588671874999989,60.450732421875045],[12.486132812500074,60.10678710937506],[11.680761718750034,59.59228515625003],[11.798144531250074,59.28989257812498],[11.64277343750004,58.92607421875002],[11.470703125000057,58.909521484375034],[11.388281250000063,59.036523437499966],[10.834472656250028,59.18393554687498],[10.595312500000063,59.764550781249966],[10.179394531250068,59.00927734375003],[9.842578125000017,58.95849609374997],[9.557226562500063,59.11269531250002],[9.65693359375004,58.97119140624997],[8.166113281250063,58.145312500000045],[7.0048828125,58.024218750000074],[6.877050781250006,58.15073242187498],[6.590527343750068,58.09731445312502],[6.659863281250068,58.26274414062499],[5.706835937500074,58.52363281250001],[5.55556640625008,58.975195312500006],[6.099023437500023,58.87026367187502],[6.363281250000028,59.00092773437501],[6.099414062500017,58.951953125000074],[5.88916015625,59.097949218750045],[5.951855468750068,59.299072265625],[6.415332031250074,59.547119140625],[5.17324218750008,59.16254882812498],[5.2421875,59.564306640625034],[5.472460937500017,59.713085937499955],[5.77216796875004,59.66093749999999],[6.216601562499989,59.818359375],[5.73046875,59.863085937500045],[6.348730468750006,60.35297851562504],[6.57363281250008,60.36059570312497],[6.526855468750057,60.152929687500034],[6.995703125,60.511962890625],[6.1533203125,60.34624023437499],[5.145800781250074,59.63881835937502],[5.205664062500006,60.087939453125045],[5.688574218749977,60.12319335937502],[5.285839843750011,60.20571289062505],[5.13710937500008,60.445605468750074],[5.648339843750051,60.68798828124997],[5.244042968750023,60.569580078125],[5.115820312500006,60.63598632812503],[5.008593750000017,61.038183593750006],[6.777832031250028,61.142431640625006],[7.038671875000063,60.952929687500045],[7.040136718750006,61.091162109375034],[7.604492187500057,61.210546875000034],[7.34658203125008,61.30058593749999],[7.442578125000011,61.43461914062502],[7.173535156250011,61.16596679687501],[6.599902343750017,61.28964843749998],[6.383496093750068,61.133886718750034],[5.451269531250034,61.10234375000002],[5.106738281250017,61.187548828125045],[5.002734375000074,61.43359375],[5.338671875000017,61.485498046874994],[4.927832031249977,61.71069335937506],[4.93007812499999,61.878320312499994],[6.01582031250004,61.7875],[6.730761718750045,61.86977539062505],[5.266894531250045,61.935595703125045],[5.143164062500063,62.159912109375],[5.908300781249977,62.41601562500003],[6.083496093750057,62.349609375],[6.580078125000057,62.407275390625045],[6.692382812500028,62.46806640624999],[6.136132812500051,62.40747070312497],[6.352929687500051,62.61113281249999],[7.653125,62.56401367187499],[7.538378906250074,62.67207031249998],[8.045507812500006,62.77124023437503],[6.734960937500006,62.72070312500003],[6.940429687500028,62.930468750000045],[7.571875,63.09951171875002],[8.100585937500028,63.090966796874966],[8.623144531250006,62.84624023437502],[8.158007812500017,63.16152343750005],[8.635546875000045,63.34233398437502],[8.360742187500023,63.498876953125034],[8.576171875000028,63.60117187499998],[9.135839843750006,63.593652343749966],[9.156054687500045,63.459326171875034],[9.696875,63.624560546875045],[10.020996093750028,63.39082031250004],[10.76015625000008,63.461279296875006],[10.725292968750068,63.625],[11.370703125000034,63.804833984374994],[11.175585937500074,63.89887695312498],[11.457617187500063,64.00297851562505],[11.306640625000028,64.04887695312499],[10.91425781250004,63.92109374999998],[10.934863281250045,63.770214843749955],[10.055078125000051,63.5126953125],[9.567285156250051,63.70615234374998],[10.565625,64.418310546875],[11.523828125000051,64.744384765625],[11.632910156250063,64.81391601562495],[11.296777343750051,64.75478515625],[11.489355468750034,64.975830078125],[12.15966796875,65.178955078125],[12.508398437499977,65.09941406250005],[12.915527343750057,65.33925781249997],[12.417578125000063,65.18408203124997],[12.133886718749977,65.27915039062498],[12.68886718750008,65.90219726562498],[13.033105468750051,65.95625],[12.783789062500063,66.10043945312506],[14.034179687500057,66.29755859374998],[13.118847656250011,66.23066406250004],[13.211425781250028,66.64082031250001],[13.959472656250028,66.79433593750002],[13.651562500000011,66.90708007812498],[14.10878906250008,67.11923828125003],[15.41572265625004,67.20244140625002],[14.441699218750045,67.27138671875005],[14.961914062500057,67.57426757812502],[15.59443359375004,67.34853515625005],[15.691503906250006,67.52138671875],[15.24873046875004,67.6021484375],[15.303906250000011,67.76528320312502],[14.854687500000068,67.66333007812506],[14.798925781250063,67.80932617187503],[15.13427734375,67.97270507812502],[15.621386718750017,67.94829101562502],[15.316015624999977,68.06875],[16.007910156250006,68.22871093750004],[16.312304687500017,67.88144531249998],[16.20380859375001,68.31674804687503],[17.552832031250063,68.42626953125006],[16.51435546875004,68.53256835937503],[18.101464843749994,69.15629882812499],[18.259765625,69.47060546875],[18.915917968750023,69.33559570312502],[18.614453125000068,69.49057617187498],[19.197265625000057,69.74785156249999],[19.722460937500017,69.78164062500002],[19.64150390625005,69.42402343750001],[20.324218750000057,69.94531249999997],[20.054492187500074,69.33266601562497],[20.486718750000023,69.54208984375],[20.739453124999983,69.52050781250003],[20.622070312500057,69.91391601562498],[21.163085937500057,69.88950195312498],[21.432910156250045,70.01318359375006],[21.974707031250034,69.83457031249998],[21.355761718750045,70.23339843749997],[22.321972656250068,70.264501953125],[22.684570312500057,70.374755859375],[23.35390625000008,69.98339843750003],[23.3291015625,70.20722656249995],[24.420019531250034,70.70200195312503],[24.263476562500017,70.82631835937497],[24.658007812500017,71.00102539062505],[25.264648437500057,70.843505859375],[25.768164062500063,70.85317382812502],[25.043847656250023,70.10903320312502],[26.66132812500004,70.93974609374999],[26.585058593750034,70.41000976562498],[26.989355468750063,70.51137695312502],[27.183691406250034,70.74404296875],[27.546484375000063,70.80400390625005],[27.23525390625008,70.94721679687498],[27.59707031250005,71.09130859375003],[28.392285156250068,70.97529296875004],[27.898046875,70.67792968750001],[28.271777343750017,70.66796875000003],[28.192968750000034,70.24858398437505],[28.83154296875003,70.86396484375001],[29.7375,70.646826171875],[30.065136718750097,70.70297851562498],[30.944140625000017,70.27441406249997],[30.262988281250074,70.12470703125004],[28.804296875000063,70.09252929687506],[29.601367187500017,69.97675781249998],[29.792089843750063,69.727880859375],[30.08828125,69.71757812500005],[30.237597656250017,69.86220703125002],[30.428320312500006,69.722265625],[30.869726562500006,69.78344726562506]]],[[[25.58632812500005,71.14208984375],[26.13378906250003,70.99580078125004],[25.582031250000057,70.960791015625],[25.31494140625,71.03413085937504],[25.58632812500005,71.14208984375]]],[[[-8.953564453124983,70.83916015625002],[-8.001367187499966,71.17768554687495],[-8.002099609374937,71.04125976562497],[-8.953564453124983,70.83916015625002]]],[[[19.219335937500006,74.39101562500002],[18.86123046875008,74.51416015624997],[19.182910156250045,74.51791992187503],[19.219335937500006,74.39101562500002]]],[[[21.60810546875004,78.59570312499997],[22.04316406250004,78.57695312500007],[22.29951171875004,78.22817382812497],[23.451953125000074,78.14946289062502],[23.11669921874997,77.99150390624999],[24.901855468750057,77.756591796875],[22.55371093750003,77.26665039062502],[22.685351562500045,77.55351562500002],[20.928125,77.45966796874998],[21.653125,77.92353515624998],[20.22792968750005,78.47783203125005],[21.60810546875004,78.59570312499997]]],[[[11.250292968750017,78.610693359375],[12.116406250000068,78.232568359375],[11.121289062500011,78.46328125],[10.558203125000063,78.90292968750003],[11.250292968750017,78.610693359375]]],[[[29.047070312500068,78.91206054687504],[29.69667968750005,78.90473632812495],[27.88906250000005,78.8521484375],[28.511132812500023,78.96733398437502],[29.047070312500068,78.91206054687504]]],[[[16.786718750000034,79.90673828125],[17.834570312499977,79.80004882812503],[17.66875,79.38593750000004],[18.39736328125008,79.60517578125001],[18.677832031250006,79.26171875000003],[19.893554687500057,79.05620117187499],[20.61103515625004,79.10664062499998],[21.388769531250034,78.74042968749998],[19.67675781250003,78.60957031249995],[16.700488281250045,76.57929687499995],[14.365820312500034,77.23447265625003],[13.995703125000034,77.50820312500002],[14.69501953125004,77.525048828125],[14.920800781250023,77.68881835937506],[17.033300781250006,77.79770507812503],[16.91406250000003,77.89799804687505],[14.089941406250063,77.77138671875],[13.680566406250051,78.028125],[14.307226562500006,78.00507812500001],[15.783886718750011,78.32705078125005],[17.00292968750003,78.36938476562497],[16.44863281250008,78.50356445312502],[16.78261718750008,78.66362304687505],[15.417382812500023,78.47324218749998],[15.384179687500023,78.77119140625001],[15.01630859375004,78.63012695312497],[14.689257812500017,78.720947265625],[14.638281250000034,78.41459960937502],[14.110449218750063,78.27089843749997],[13.150195312499989,78.2375],[11.365429687500011,78.95039062500004],[12.323437500000068,78.91425781249995],[12.083984375000028,79.26752929687498],[11.579785156250068,79.28349609375005],[11.208105468750034,79.12963867187503],[10.737597656250017,79.52016601562502],[10.804003906250045,79.79877929687504],[11.150390625,79.71699218749998],[11.702343750000011,79.82060546875005],[12.287792968750068,79.713134765625],[12.279980468749983,79.81596679687507],[13.692871093749972,79.860986328125],[13.777539062500011,79.71528320312498],[12.555371093750068,79.56948242187502],[13.333789062500017,79.57480468750006],[14.029589843750017,79.34414062500005],[14.59365234375008,79.79873046875002],[16.34375,78.97612304687502],[15.816113281250011,79.68183593750001],[16.245703125000034,80.04946289062502],[16.786718750000034,79.90673828125]]],[[[32.52597656250006,80.119140625],[31.48193359374997,80.10791015625003],[33.62929687499999,80.21743164062497],[32.52597656250006,80.119140625]]],[[[20.897851562500023,80.24995117187501],[22.289746093749983,80.04921874999997],[22.450781250000034,80.40224609375005],[23.00800781250004,80.473974609375],[23.114550781250074,80.18696289062498],[24.29755859375004,80.36040039062505],[26.86083984375,80.16000976562498],[27.19863281250008,79.90659179687506],[25.641210937500034,79.40302734374995],[23.94775390625,79.19428710937498],[22.903710937500023,79.23066406250001],[22.865527343750045,79.41186523437497],[20.861132812500017,79.39785156249997],[20.128222656250074,79.489599609375],[19.674609375000045,79.591162109375],[20.784082031250023,79.74858398437502],[18.725,79.7607421875],[18.25537109375,79.92919921875003],[18.855957031250057,80.03662109375],[17.91689453125005,80.14311523437502],[19.343359375000063,80.11640624999998],[19.733300781249994,80.47783203124999],[20.897851562500023,80.24995117187501]]]]},"properties":{"name":"Norway","childNum":27}},{"geometry":{"type":"Polygon","coordinates":[[[87.984375,27.133935546874994],[87.9931640625,27.086083984374994],[88.11103515625001,26.928466796875],[88.1572265625,26.807324218749997],[88.16152343750002,26.724804687499997],[88.11152343750001,26.58642578125],[88.05488281250001,26.430029296875],[88.02695312500003,26.39501953125],[87.9951171875,26.382373046874996],[87.28740234374999,26.360302734374997],[87.01640624999999,26.555419921875],[86.70136718750001,26.43505859375],[86.00732421875,26.649365234374997],[85.79453125000003,26.604150390624994],[85.7373046875,26.63974609375],[85.6484375,26.829003906249994],[85.56845703125003,26.83984375],[85.29296875,26.741015625],[85.19179687500002,26.766552734374997],[84.68535156249999,27.041015625],[84.65380859375,27.091699218749994],[84.65478515625,27.203662109374996],[84.64072265625003,27.249853515625],[84.61015624999999,27.298681640625],[84.48085937500002,27.348193359374996],[84.22978515624999,27.42783203125],[84.09101562500001,27.491357421874994],[83.82880859375001,27.377832031249994],[83.74697265625002,27.395947265624997],[83.55166015625002,27.456347656249996],[83.44716796875002,27.46533203125],[83.38398437500001,27.44482421875],[83.36943359374999,27.41025390625],[83.28974609375001,27.370996093749994],[82.7333984375,27.518994140624997],[82.71083984375002,27.5966796875],[82.67734375000003,27.6734375],[82.6298828125,27.687060546874996],[82.45136718750001,27.671826171874997],[82.28769531250003,27.756542968749997],[82.11191406250003,27.864941406249997],[82.03701171875002,27.900585937499997],[81.98769531250002,27.913769531249997],[81.94521484375002,27.899267578125],[81.896875,27.874462890624997],[81.85263671875003,27.867089843749994],[81.1689453125,28.335009765624996],[80.58701171875003,28.649609375],[80.51787109374999,28.665185546874994],[80.49580078125001,28.635791015624996],[80.47910156250003,28.604882812499994],[80.41855468750003,28.612011718749997],[80.32480468750003,28.66640625],[80.2265625,28.723339843749997],[80.07070312500002,28.83017578125],[80.05166015625002,28.8703125],[80.08457031250003,28.994189453124996],[80.13046875000003,29.100390625],[80.16953125000003,29.124316406249996],[80.23300781250003,29.194628906249996],[80.25595703125003,29.318017578124994],[80.2548828125,29.42333984375],[80.31689453125,29.572070312499996],[80.40185546875,29.730273437499996],[80.54902343750001,29.899804687499994],[80.81992187500003,30.119335937499997],[80.84814453125,30.13974609375],[80.90761718750002,30.171923828124996],[80.96611328124999,30.180029296875],[81.17714843750002,30.039892578125],[81.25507812500001,30.093310546874996],[81.41718750000001,30.337597656249997],[81.64189453124999,30.3875],[81.85488281250002,30.36240234375],[82.04335937500002,30.3267578125],[82.220703125,30.063867187499994],[83.15546875000001,29.612646484375],[83.58349609375,29.18359375],[83.93593750000002,29.279492187499997],[84.02197265625,29.253857421874997],[84.10136718749999,29.219970703125],[84.12783203125002,29.156298828124996],[84.17558593749999,29.036376953125],[84.22871093750001,28.911767578124994],[84.796875,28.560205078124994],[84.85507812500003,28.553613281249994],[85.06914062499999,28.609667968749996],[85.12636718750002,28.60263671875],[85.15908203125002,28.592236328124997],[85.16015625,28.571875],[85.12148437500002,28.484277343749994],[85.08857421875001,28.372265625],[85.12246093750002,28.315966796874996],[85.21210937500001,28.292626953124994],[85.41064453125,28.276025390624994],[85.67832031250003,28.27744140625],[85.75947265625001,28.220654296874997],[85.84023437500002,28.1353515625],[85.92167968749999,27.989697265624997],[85.9541015625,27.92822265625],[85.99453125000002,27.910400390625],[86.06416015625001,27.934716796874994],[86.07871093750003,28.08359375],[86.13701171874999,28.11435546875],[86.21796875000001,28.0220703125],[86.32861328125,27.959521484374996],[86.40869140625,27.928662109374997],[86.51689453124999,27.963525390624994],[86.55449218749999,28.085205078125],[86.61445312500001,28.10302734375],[86.69052734375003,28.094921875],[86.71962890625002,28.070654296875],[86.75039062500002,28.0220703125],[86.93378906250001,27.968457031249997],[87.02011718750003,27.928662109374997],[87.14140624999999,27.838330078124997],[87.29072265625001,27.821923828124994],[87.62255859375,27.815185546875],[87.86074218750002,27.886083984375],[88.10976562500002,27.87060546875],[87.984375,27.133935546874994]]]},"properties":{"name":"Nepal","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[169.17822265624997,-52.497265625],[169.12753906250006,-52.570312499999964],[169.02177734375002,-52.49541015624998],[169.17822265624997,-52.497265625]]],[[[166.22109375,-50.76152343749997],[166.2428710937501,-50.84570312499998],[165.88916015624997,-50.80771484374996],[166.10136718750002,-50.538964843750016],[166.26748046875005,-50.558593750000014],[166.22109375,-50.76152343749997]]],[[[168.14492187500005,-46.862207031249966],[168.04316406250004,-46.9326171875],[168.2409179687501,-47.070019531250026],[167.52197265624997,-47.258691406249994],[167.80078125000003,-46.90654296875002],[167.78398437500007,-46.699804687500006],[167.9557617187501,-46.69443359374998],[168.14492187500005,-46.862207031249966]]],[[[166.97949218749997,-45.17968750000003],[167.02265625000004,-45.299804687499986],[166.89267578125012,-45.24052734374999],[166.97949218749997,-45.17968750000003]]],[[[-176.17763671874997,-43.74033203124998],[-176.38173828124997,-43.86679687499998],[-176.40737304687497,-43.7609375],[-176.516552734375,-43.78476562499996],[-176.33359375000003,-44.02529296875004],[-176.51552734374997,-44.11660156249998],[-176.62934570312495,-44.036132812500014],[-176.55512695312504,-43.85195312499998],[-176.84765625000003,-43.82392578125004],[-176.56611328124995,-43.717578125000045],[-176.17763671874997,-43.74033203124998]]],[[[173.91464843750018,-40.86367187500004],[173.78085937500012,-40.921777343749966],[173.964453125,-40.71298828124998],[173.91464843750018,-40.86367187500004]]],[[[173.11533203125006,-41.27929687499997],[173.94716796875005,-40.92412109375],[173.79785156250003,-41.271972656249986],[173.99941406250005,-40.99326171874996],[174.30253906249996,-41.019531249999986],[174.03857421875003,-41.24189453125],[174.37011718750009,-41.1037109375],[174.06933593750009,-41.42949218750002],[174.08369140625015,-41.67080078124998],[174.2831054687501,-41.740625],[173.22119140624997,-42.976562499999986],[172.62402343749997,-43.27246093749996],[172.73476562500005,-43.35478515625003],[172.52666015625002,-43.464746093749966],[172.69345703125006,-43.444335937499986],[172.80703125000005,-43.620996093749994],[173.07324218750003,-43.676171874999966],[173.065625,-43.87460937499998],[172.50273437500002,-43.84365234374998],[172.48037109375,-43.726660156250034],[172.29658203125004,-43.867871093750026],[172.035546875,-43.70175781250002],[172.17978515625006,-43.895996093749986],[171.24072265624997,-44.26416015625003],[171.14628906250002,-44.9123046875],[170.99902343750003,-44.91142578124999],[171.11328125000003,-45.03925781250001],[170.7005859375,-45.68427734374997],[170.77626953125005,-45.870898437499974],[170.4191406250001,-45.94101562499996],[169.68662109375006,-46.55166015625002],[169.34228515625003,-46.62050781250001],[168.38212890625007,-46.60537109374995],[168.1891601562501,-46.362207031249966],[167.8419921875001,-46.366210937499986],[167.539453125,-46.14853515624996],[167.36894531250007,-46.24150390624999],[166.73154296875006,-46.19785156249998],[166.91669921875004,-45.95722656249998],[166.64990234374997,-46.04169921875004],[166.71796875000004,-45.88935546875001],[166.49316406249997,-45.9638671875],[166.48828124999997,-45.83183593750002],[167.0033203125,-45.71210937500004],[166.79765625000002,-45.64560546874999],[166.99082031250012,-45.531738281249986],[166.73398437500012,-45.54355468749999],[166.74306640625,-45.46845703124997],[166.91992187499997,-45.40791015624998],[166.86923828125006,-45.31123046875],[167.15566406250005,-45.410937499999974],[167.23007812500012,-45.29033203125],[167.02587890624997,-45.12363281249998],[167.25947265625004,-45.08222656249997],[167.19453125000004,-44.963476562500034],[167.41074218750006,-44.82792968750003],[167.4662109375,-44.958300781250045],[167.48496093750006,-44.77138671874998],[167.78701171875,-44.59501953125002],[167.90898437500002,-44.66474609375001],[167.85654296875012,-44.50068359374998],[168.45742187500005,-44.030566406250045],[169.17890625000004,-43.9130859375],[169.16953125000006,-43.77705078125],[169.83388671875,-43.53701171875004],[170.24023437499997,-43.163867187500045],[170.39609375000012,-43.18222656249996],[170.30283203125012,-43.10761718750004],[170.61181640625003,-43.091796875000014],[170.5236328125001,-43.00898437500001],[170.6654296875,-42.961230468749974],[170.73525390625005,-43.029785156249986],[170.96992187500004,-42.71835937499996],[171.01171875000003,-42.88505859374999],[171.027734375,-42.696093750000045],[171.31337890625005,-42.460156250000026],[171.48623046875,-41.7947265625],[171.94804687500002,-41.53867187499996],[172.13945312500002,-40.947265625000014],[172.640625,-40.51826171875001],[172.94365234375007,-40.51875],[172.73261718750004,-40.54375],[172.70439453125002,-40.6677734375],[172.988671875,-40.84824218749999],[173.11533203125006,-41.27929687499997]]],[[[175.54316406250015,-36.279296874999986],[175.34619140624997,-36.217773437499986],[175.3895507812501,-36.07773437499996],[175.54316406250015,-36.279296874999986]]],[[[173.26943359375,-34.93476562499998],[173.44785156250012,-34.844335937500034],[173.47265625000003,-34.94697265624998],[174.10400390625003,-35.14287109375002],[174.1431640625,-35.3],[174.32031250000003,-35.246679687500034],[174.58066406250018,-35.78554687500004],[174.39580078124996,-35.79736328124996],[174.8021484375,-36.30947265625001],[174.72246093750007,-36.84121093749998],[175.29951171875004,-36.99326171874996],[175.38535156250012,-37.206933593749966],[175.54248046874997,-37.2013671875],[175.46083984375005,-36.475683593750034],[175.77216796875004,-36.73515625],[176.10839843749997,-37.64511718749998],[177.27402343750012,-37.993457031249974],[178.0091796875,-37.55488281249998],[178.53623046875006,-37.69208984375004],[178.26767578125006,-38.551171875],[177.976171875,-38.72226562500005],[177.90878906250012,-39.23955078125],[177.52294921875003,-39.07382812499999],[177.07675781250012,-39.22177734375002],[176.93925781249996,-39.55527343750002],[177.10986328125009,-39.673144531250045],[176.8421875000001,-40.15781250000002],[175.98291015625003,-41.21328125000002],[175.30976562499998,-41.610644531249974],[175.16562500000012,-41.41738281249995],[174.88134765624997,-41.42402343749997],[174.8656250000001,-41.223046874999966],[174.63535156250012,-41.28945312499999],[175.1625,-40.62158203125],[175.25410156250004,-40.28935546875],[175.1559570312501,-40.11494140625],[175.00927734375009,-39.95214843749996],[173.93437500000013,-39.50908203125002],[173.76367187499997,-39.31875],[173.84433593750006,-39.13935546875001],[174.39843749999997,-38.96259765624998],[174.59736328124998,-38.78505859374995],[174.80166015625005,-37.895507812500014],[174.92802734375002,-37.80449218750003],[174.58583984374994,-37.09775390625002],[174.73427734375,-37.21523437499998],[174.92890625000004,-37.084765625000045],[174.78203125000013,-36.94375],[174.47558593750009,-36.94189453124997],[174.1888671875001,-36.492285156250034],[174.4015625000001,-36.60195312499999],[174.39277343750004,-36.24003906249999],[174.26787109375002,-36.16308593750003],[174.25371093749996,-36.24912109374998],[174.03642578125013,-36.12246093750001],[173.91445312499994,-35.908691406249986],[173.91728515625002,-36.01816406249999],[174.16640624999994,-36.327636718749986],[174.05468749999991,-36.35976562500004],[173.41220703125012,-35.542578125],[173.62617187500004,-35.31914062499996],[173.3763671875001,-35.50009765624996],[173.31396484375003,-35.44335937499996],[173.11669921874997,-35.205273437500026],[173.190625,-35.01621093749998],[172.70595703125005,-34.45517578124998],[173.04394531249997,-34.429101562499994],[172.96376953125,-34.53515625000003],[173.26943359375,-34.93476562499998]]]]},"properties":{"name":"New Zealand","childNum":9}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[58.722070312499994,20.21875],[58.640917968750074,20.210693359375057],[58.64121093750006,20.33735351562501],[58.884375,20.680566406250023],[58.95078125000006,20.516162109375017],[58.722070312499994,20.21875]]],[[[56.38798828125002,24.97919921875004],[56.640625,24.4703125],[57.12304687500003,23.980712890625],[58.773046875,23.517187499999977],[59.42939453125004,22.660839843749955],[59.82324218749997,22.50898437500004],[59.8,22.21992187500001],[59.37148437500005,21.498828125000017],[58.89570312500004,21.11279296874997],[58.47421875000006,20.406884765624966],[58.20898437500003,20.423974609374994],[58.245019531249994,20.599218749999977],[58.16943359375003,20.58950195312505],[57.86181640624997,20.24414062500003],[57.71416015625002,19.678417968749983],[57.81162109375006,19.01708984374997],[56.825976562500074,18.753515625],[56.3834960937501,17.98798828125001],[55.479101562500006,17.84326171875003],[55.25537109375003,17.58564453125004],[55.275195312500074,17.320898437500006],[55.06416015625004,17.038916015625034],[54.06816406250002,17.005517578124966],[53.60986328124997,16.75996093750004],[53.08564453125004,16.648388671874955],[51.977636718750006,18.996142578125074],[54.97734375000002,19.995947265625006],[55.64101562499999,22.001855468749994],[55.185839843750074,22.7041015625],[55.1999023437501,23.034765625000034],[55.53164062499999,23.81904296875001],[55.4684570312501,23.94111328125001],[55.98515625000002,24.063378906249966],[55.92861328125005,24.215136718750074],[55.76083984375006,24.24267578125],[55.795703125000074,24.868115234374955],[56.00058593750006,24.953222656249977],[56.06386718750005,24.73876953125],[56.38798828125002,24.97919921875004]]],[[[56.29785156250003,25.650683593750045],[56.144628906250006,25.690527343750006],[56.16748046875003,26.047460937499977],[56.08046875,26.06264648437505],[56.41308593749997,26.351171875000034],[56.29785156250003,25.650683593750045]]]]},"properties":{"name":"Oman","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[73.08961802927895,36.86435907947333],[73.08203125000107,36.43949943991182],[72.31128647748268,35.77290936638241],[73.13410859949555,34.82510160558277],[73.19895048106557,33.88770931468204],[74.00809389139292,33.25375789331485],[73.98984375,33.22119140625],[74.30361328125002,32.991796875],[74.30546875000002,32.810449218749994],[74.35458984375,32.768701171874994],[74.58828125000002,32.753222656249996],[74.632421875,32.770898437499994],[74.66328125000001,32.757666015625],[74.64335937500002,32.607714843749996],[74.68574218750001,32.493798828124994],[74.78886718750002,32.4578125],[74.9873046875,32.462207031249996],[75.33349609375,32.279199218749994],[75.25410156250001,32.14033203125],[75.13876953125,32.104785156249996],[75.07148437500001,32.08935546875],[74.73945312500001,31.948828125],[74.6357421875,31.88974609375],[74.55556640625002,31.818554687499997],[74.5259765625,31.76513671875],[74.50996093750001,31.712939453124996],[74.58183593750002,31.52392578125],[74.59394531250001,31.465380859374996],[74.53496093750002,31.261376953124994],[74.51767578125,31.185595703124996],[74.6103515625,31.112841796874996],[74.62578125000002,31.06875],[74.6328125,31.03466796875],[74.509765625,30.959667968749997],[74.38037109375,30.893408203125],[74.33935546875,30.8935546875],[74.00898437500001,30.519677734374994],[73.89931640625002,30.435351562499996],[73.88271484375002,30.3521484375],[73.92460937500002,30.28164062499999],[73.93339843750002,30.222070312499994],[73.88652343750002,30.162011718749994],[73.8091796875,30.093359375],[73.38164062500002,29.934375],[72.9033203125,29.028759765624997],[72.34189453125,28.751904296874997],[72.2919921875,28.697265625],[72.128515625,28.346337890624994],[71.94804687500002,28.177294921874996],[71.88886718750001,28.0474609375],[71.87031250000001,27.9625],[71.54296875,27.869873046875],[71.18476562500001,27.831640625],[70.87490234375002,27.714453125],[70.79794921875,27.709619140624994],[70.69160156250001,27.768994140624997],[70.62910156250001,27.937451171874997],[70.40371093750002,28.025048828124994],[70.24433593750001,27.934130859374996],[70.1939453125,27.894873046875],[70.14453125,27.849023437499994],[70.0498046875,27.694726562499994],[69.89628906250002,27.4736328125],[69.56796875,27.174609375],[69.47001953125002,26.804443359375],[70.11464843750002,26.548046875],[70.14921875000002,26.347558593749994],[70.1001953125,25.910058593749994],[70.2646484375,25.70654296875],[70.3251953125,25.685742187499997],[70.44853515625002,25.681347656249997],[70.505859375,25.685302734375],[70.56953125000001,25.705957031249994],[70.6484375,25.666943359374997],[70.65205078125001,25.422900390625003],[70.87773437500002,25.06298828125],[70.95087890625001,24.8916015625],[71.02070312500001,24.75766601562499],[71.0478515625,24.687744140625],[71.00234375000002,24.65390625],[70.97636718750002,24.61875],[70.96982421875,24.571875],[71.04531250000002,24.429980468750003],[71.04404296875,24.400097656249997],[70.98281250000002,24.361035156249997],[70.928125,24.362353515625003],[70.88623046875,24.34375],[70.80507812500002,24.261962890625],[70.76728515625001,24.245410156250003],[70.71630859375,24.237988281249997],[70.65947265625002,24.24609375],[70.57929687500001,24.279052734375],[70.55585937500001,24.331103515625003],[70.5650390625,24.385791015625003],[70.54677734375002,24.41831054687499],[70.2890625,24.35629882812499],[70.0982421875,24.2875],[69.80517578125,24.165234375],[69.71621093750002,24.172607421875],[69.63417968750002,24.22519531249999],[69.5591796875,24.273095703124994],[69.44345703125,24.275390625],[69.23505859375001,24.268261718749997],[69.11953125000002,24.26865234374999],[69.05156250000002,24.286328125],[68.98457031250001,24.273095703124994],[68.90078125000002,24.292431640624997],[68.86347656250001,24.266503906249994],[68.82832031250001,24.26401367187499],[68.78115234375002,24.313720703125],[68.75898437500001,24.30722656249999],[68.73964843750002,24.2919921875],[68.728125,24.265625],[68.72412109375,23.96469726562499],[68.48867187500002,23.967236328124997],[68.38125,23.950878906249997],[68.28251953125002,23.927978515625],[68.1650390625,23.857324218749994],[68.11552734375002,23.753369140624997],[67.8599609375,23.90268554687499],[67.66845703125,23.810986328124997],[67.309375,24.1748046875],[67.171484375,24.756103515625],[66.70302734375002,24.8609375],[66.69863281250002,25.226318359375],[66.32421875,25.601806640625],[66.13115234375002,25.49326171874999],[66.46767578125002,25.4453125],[64.77666015625002,25.307324218749997],[64.65898437500002,25.18408203125],[64.059375,25.40292968749999],[63.556640625,25.353173828124994],[63.49140625000001,25.210839843749994],[61.56689453125,25.186328125],[61.587890625,25.20234375],[61.61542968750001,25.2861328125],[61.64013671875,25.584619140624994],[61.67138671875,25.6923828125],[61.66181640625001,25.751269531250003],[61.66865234375001,25.768994140624997],[61.73769531250002,25.82109375],[61.75439453125,25.84335937499999],[61.78076171875,25.995849609375],[61.80996093750002,26.165283203125],[61.842382812500006,26.225927734375],[62.1259765625,26.368994140625],[62.239355468750006,26.35703125],[62.31230468750002,26.490869140624994],[63.168066406250006,26.665576171874996],[63.186132812500006,26.837597656249997],[63.24160156250002,26.86474609375],[63.25039062500002,26.879248046875],[63.24208984375002,27.077685546874996],[63.30517578125,27.124560546874996],[63.30156250000002,27.15146484375],[63.25625,27.207910156249994],[63.19609375000002,27.243945312499996],[63.16679687500002,27.252490234374996],[62.75273437500002,27.265625],[62.782324218750006,27.800537109375],[62.7625,28.202050781249994],[61.88984375000001,28.546533203124994],[61.15214843750002,29.542724609375],[61.0341796875,29.663427734375],[60.843359375,29.858691406249996],[61.22441406250002,29.749414062499994],[62.0009765625,29.530419921874994],[62.4765625,29.408349609374994],[63.56757812500001,29.497998046874997],[64.09873046875,29.391943359375],[64.39375,29.544335937499994],[65.09550781250002,29.559472656249994],[66.23125,29.86572265625],[66.346875,30.802783203124996],[66.82929687500001,31.263671875],[67.45283203125001,31.234619140625],[67.737890625,31.343945312499997],[67.57822265625,31.506494140624994],[68.16103515625002,31.802978515625],[68.59765625,31.802978515625],[68.86894531250002,31.634228515624997],[69.279296875,31.936816406249996],[69.24140625000001,32.433544921875],[69.5015625,33.020068359374996],[70.26113281250002,33.289013671875],[69.8896484375,34.007275390625],[70.65400390625001,33.952294921874994],[71.05156250000002,34.049707031249994],[71.095703125,34.369433593749996],[70.965625,34.53037109375],[71.62050781250002,35.183007812499994],[71.57197265625001,35.546826171875],[71.18505859375,36.04208984375],[71.23291015625,36.12177734375],[72.24980468750002,36.734716796875],[73.08961802927895,36.86435907947333]]]},"properties":{"name":"Pakistan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-81.60327148437497,7.332812499999989],[-81.85205078125003,7.453320312500026],[-81.812158203125,7.59238281250002],[-81.72875976562494,7.62119140625002],[-81.60327148437497,7.332812499999989]]],[[[-78.89833984375002,8.27426757812502],[-78.960595703125,8.435839843749989],[-78.88325195312495,8.460253906249989],[-78.89833984375002,8.27426757812502]]],[[[-77.37421874999993,8.65830078125002],[-77.47851562499994,8.498437500000037],[-77.19599609374995,7.972460937500003],[-77.53828124999995,7.56625976562502],[-77.76191406249995,7.698828125000034],[-77.90117187499999,7.229345703125048],[-78.42158203124995,8.060986328125011],[-78.28735351562497,8.091796874999972],[-78.14189453125002,8.386083984374977],[-77.76054687499993,8.133251953124983],[-78.09946289062498,8.496972656250009],[-78.22304687500002,8.396630859374994],[-78.39921874999993,8.505664062500003],[-78.40986328124998,8.35532226562502],[-78.51406249999997,8.628173828125],[-79.08637695312495,8.997167968750034],[-79.50708007812494,8.97006835937502],[-79.68745117187493,8.850976562500009],[-79.81591796875,8.639208984375031],[-79.75043945312498,8.595507812500017],[-80.458984375,8.213867187499972],[-80.45810546875,8.077050781249994],[-80.01123046875,7.500048828125031],[-80.66669921874995,7.225683593750006],[-80.90122070312503,7.277148437500017],[-81.06386718749994,7.89975585937502],[-81.26840820312495,7.625488281250014],[-81.50415039062503,7.721191406249972],[-81.72763671875,8.137548828124977],[-82.15986328124995,8.19482421875],[-82.23544921874998,8.311035156250057],[-82.67954101562503,8.321972656249969],[-82.86611328124994,8.246337890625014],[-82.87934570312498,8.07065429687502],[-83.02734375,8.337744140624991],[-82.86162109374999,8.453515625000037],[-82.84477539062493,8.489355468749963],[-82.85571289062494,8.635302734375031],[-82.91704101562502,8.740332031250034],[-82.88198242187497,8.805322265625037],[-82.72783203125002,8.916064453125031],[-82.78305664062498,8.990283203124974],[-82.88134765625003,9.055859375000011],[-82.94033203124997,9.060107421874989],[-82.93984374999994,9.449169921875026],[-82.92504882812494,9.469042968749989],[-82.88896484374999,9.481005859375017],[-82.86015625,9.511474609375014],[-82.84399414062497,9.570800781250014],[-82.801025390625,9.591796875000028],[-82.64409179687502,9.505859375000028],[-82.56357421875003,9.576660156249972],[-82.50034179687503,9.523242187500017],[-82.37080078124993,9.428564453124991],[-82.33974609375,9.209179687499983],[-82.18813476562502,9.191748046874977],[-82.24418945312499,9.031494140625014],[-82.07788085937503,8.93486328124996],[-81.78022460937495,8.957226562499983],[-81.89448242187495,9.140429687500003],[-81.35478515624996,8.78056640624996],[-80.83867187499999,8.887207031250014],[-80.12709960937497,9.20991210937504],[-79.57729492187497,9.597851562500026],[-78.08276367187494,9.236279296874997],[-77.37421874999993,8.65830078125002]]]]},"properties":{"name":"Panama","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[-73.137353515625,-6.4658203125],[-73.75810546874999,-6.90576171875],[-73.79301757812499,-7.135058593750003],[-73.758203125,-7.172753906250009],[-73.72041015625,-7.309277343750011],[-73.964306640625,-7.37890625],[-73.95849609375,-7.506640625],[-73.98173828124999,-7.535742187500006],[-74.00205078124999,-7.556054687500009],[-73.98173828124999,-7.585058593750006],[-73.946875,-7.611230468750009],[-73.89462890624999,-7.65478515625],[-73.82207031249999,-7.738964843750011],[-73.76689453124999,-7.753515625],[-73.72041015625,-7.782519531250003],[-73.73203125,-7.875390625],[-73.54912109374999,-8.345800781250006],[-73.39814453125,-8.458984375],[-73.36040039062499,-8.479296875],[-73.351708984375,-8.51416015625],[-73.35673828124999,-8.566992187500006],[-73.30244140625,-8.654003906250011],[-73.203125,-8.719335937500006],[-73.0705078125,-8.8828125],[-72.9740234375,-8.9931640625],[-72.970361328125,-9.1201171875],[-73.08984375,-9.265722656250006],[-73.209423828125,-9.411425781250003],[-72.379052734375,-9.51015625],[-72.181591796875,-10.003710937500003],[-71.33940429687499,-9.988574218750003],[-71.11528320312499,-9.852441406250009],[-71.041748046875,-9.81875],[-70.6369140625,-9.478222656250011],[-70.60791015625,-9.463671875],[-70.54111328124999,-9.4375],[-70.57016601562499,-9.48984375],[-70.592236328125,-9.54345703125],[-70.59916992187499,-9.620507812500009],[-70.642333984375,-11.01025390625],[-70.59653320312499,-10.976855468750003],[-70.53325195312499,-10.946875],[-70.45087890625,-11.024804687500009],[-70.39228515625,-11.05859375],[-70.3419921875,-11.066699218750003],[-70.29038085937499,-11.064257812500003],[-70.22006835937499,-11.04765625],[-70.06630859375,-10.982421875],[-69.9603515625,-10.929882812500011],[-69.839794921875,-10.933398437500003],[-69.6740234375,-10.9541015625],[-69.57861328125,-10.951757812500006],[-68.68525390625,-12.501953125],[-68.97861328124999,-12.880078125000011],[-69.07412109375,-13.682812500000011],[-68.87089843749999,-14.169726562500003],[-69.35947265624999,-14.7953125],[-69.37470703125,-14.962988281250006],[-69.17246093749999,-15.236621093750003],[-69.4208984375,-15.640625],[-69.21757812499999,-16.14912109375001],[-68.8427734375,-16.337890625],[-69.03291015625,-16.47597656250001],[-69.020703125,-16.6421875],[-69.62485351562499,-17.2001953125],[-69.645703125,-17.24853515625],[-69.521923828125,-17.388964843750003],[-69.510986328125,-17.46035156250001],[-69.51108398437499,-17.5048828125],[-69.5109375,-17.50605468750001],[-69.58642578125,-17.5732421875],[-69.684765625,-17.64980468750001],[-69.85209960937499,-17.70380859375001],[-69.80258789062499,-17.990234375],[-69.92636718749999,-18.2060546875],[-70.41826171874999,-18.34560546875001],[-71.33696289062499,-17.68251953125001],[-71.5322265625,-17.29433593750001],[-72.46767578125,-16.708105468750006],[-73.727685546875,-16.20166015625],[-75.104248046875,-15.411914062500003],[-75.533642578125,-14.89921875],[-75.93388671874999,-14.63359375],[-76.37646484375,-13.863085937500003],[-76.259228515625,-13.802832031250006],[-76.2236328125,-13.371191406250006],[-76.83212890624999,-12.348730468750006],[-77.152734375,-12.060351562500003],[-77.2203125,-11.663378906250003],[-77.633203125,-11.287792968750011],[-77.736083984375,-10.83671875],[-78.18559570312499,-10.089062500000011],[-78.76225585937499,-8.616992187500003],[-79.37724609374999,-7.835546875],[-79.99497070312499,-6.768945312500009],[-81.142041015625,-6.056738281250006],[-81.164306640625,-5.875292968750003],[-80.9306640625,-5.8408203125],[-80.88193359374999,-5.635058593750003],[-81.33662109375,-4.66953125],[-81.283203125,-4.322265625],[-80.503662109375,-3.49609375],[-80.324658203125,-3.387890625000011],[-80.24375,-3.576757812500006],[-80.19414062499999,-3.905859375],[-80.23051757812499,-3.924023437500011],[-80.26689453124999,-3.948828125],[-80.30327148437499,-4.005078125000011],[-80.43720703125,-3.978613281250006],[-80.49013671875,-4.010058593750003],[-80.510009765625,-4.069531250000011],[-80.49345703124999,-4.119140625],[-80.4884765625,-4.16552734375],[-80.453759765625,-4.205175781250006],[-80.35288085937499,-4.20849609375],[-80.44384765625,-4.335839843750009],[-80.4884765625,-4.393652343750006],[-80.47856445312499,-4.430078125],[-80.42416992187499,-4.46142578125],[-80.38349609375,-4.463671875],[-80.293359375,-4.416796875],[-80.1974609375,-4.31103515625],[-80.13955078125,-4.296093750000011],[-80.06352539062499,-4.327539062500009],[-79.962890625,-4.390332031250011],[-79.8451171875,-4.445898437500006],[-79.797265625,-4.476367187500003],[-79.71098632812499,-4.467578125],[-79.63852539062499,-4.454882812500003],[-79.57768554687499,-4.500585937500006],[-79.51616210937499,-4.539160156250006],[-79.501904296875,-4.670605468750011],[-79.45576171875,-4.766210937500006],[-79.3994140625,-4.840039062500011],[-79.33095703125,-4.927832031250006],[-79.26811523437499,-4.957617187500006],[-79.186669921875,-4.958203125000011],[-79.07626953124999,-4.990625],[-79.03330078124999,-4.969140625],[-78.995263671875,-4.908007812500003],[-78.97539062499999,-4.873242187500011],[-78.919189453125,-4.8583984375],[-78.92578125,-4.770703125000011],[-78.9076171875,-4.714453125],[-78.8615234375,-4.6650390625],[-78.68603515625,-4.562402343750009],[-78.64799804687499,-4.248144531250006],[-78.345361328125,-3.397363281250009],[-78.240380859375,-3.472558593750009],[-77.860595703125,-2.981640625000011],[-76.6791015625,-2.562597656250006],[-76.089794921875,-2.133105468750003],[-75.570556640625,-1.53125],[-75.42041015625,-0.962207031250003],[-75.40805664062499,-0.92431640625],[-75.24960937499999,-0.951855468750011],[-75.259375,-0.590136718750003],[-75.42470703125,-0.408886718750011],[-75.49106445312499,-0.248339843750003],[-75.56059570312499,-0.200097656250009],[-75.63203125,-0.157617187500009],[-75.62626953124999,-0.122851562500003],[-75.340478515625,-0.1421875],[-75.13837890625,-0.050488281250011],[-74.8017578125,-0.200097656250009],[-74.78046875,-0.24453125],[-74.75537109375,-0.298632812500003],[-74.691650390625,-0.335253906250003],[-74.616357421875,-0.370019531250009],[-74.555078125,-0.429882812500011],[-74.5138671875,-0.470117187500009],[-74.46518554687499,-0.517675781250006],[-74.41787109375,-0.580664062500006],[-74.334423828125,-0.850878906250003],[-74.28388671875,-0.927832031250006],[-74.24638671874999,-0.970605468750009],[-74.05439453125,-1.028613281250003],[-73.98681640625,-1.09814453125],[-73.926953125,-1.125195312500011],[-73.86318359375,-1.196679687500009],[-73.664306640625,-1.248828125],[-73.4962890625,-1.693066406250011],[-73.19697265625,-1.830273437500011],[-73.1544921875,-2.278222656250009],[-72.9896484375,-2.339746093750009],[-72.94111328125,-2.39404296875],[-72.21845703125,-2.400488281250006],[-71.98427734375,-2.3265625],[-71.93247070312499,-2.288671875],[-71.86728515624999,-2.227734375000011],[-71.802734375,-2.166308593750003],[-71.75253906249999,-2.152734375],[-71.55947265625,-2.22421875],[-71.39697265625,-2.334082031250006],[-71.19638671874999,-2.313085937500006],[-71.11337890624999,-2.245410156250003],[-71.027294921875,-2.225781250000011],[-70.96855468749999,-2.206835937500003],[-70.70537109374999,-2.341992187500011],[-70.64799804687499,-2.40576171875],[-70.57587890625,-2.418261718750003],[-70.29462890625,-2.552539062500003],[-70.24443359374999,-2.606542968750006],[-70.16474609375,-2.639843750000011],[-70.095849609375,-2.658203125],[-70.735107421875,-3.781542968750003],[-70.5296875,-3.866406250000011],[-70.48583984375,-3.869335937500011],[-70.42109375,-3.849609375],[-70.37919921874999,-3.81875],[-70.339501953125,-3.814355468750009],[-70.2984375,-3.84423828125],[-70.24028320312499,-3.882714843750009],[-70.16752929687499,-4.050195312500009],[-70.0171875,-4.162011718750009],[-69.96591796874999,-4.2359375],[-69.97202148437499,-4.301171875],[-70.00395507812499,-4.327246093750006],[-70.05332031249999,-4.333105468750006],[-70.12880859375,-4.28662109375],[-70.23916015625,-4.301171875],[-70.31689453125,-4.246972656250009],[-70.34365234375,-4.193652343750003],[-70.40463867187499,-4.150097656250011],[-70.5306640625,-4.167578125],[-70.72158203125,-4.158886718750011],[-70.79951171875,-4.17333984375],[-70.97368164062499,-4.350488281250009],[-71.8447265625,-4.50439453125],[-72.256787109375,-4.748925781250009],[-72.35283203124999,-4.786035156250009],[-72.468994140625,-4.901269531250009],[-72.608349609375,-5.009570312500003],[-72.69873046875,-5.0671875],[-72.83193359375,-5.09375],[-72.88706054687499,-5.122753906250011],[-72.9798828125,-5.634863281250006],[-73.16289062499999,-5.933398437500003],[-73.209375,-6.028710937500009],[-73.235546875,-6.0984375],[-73.137353515625,-6.4658203125]]]},"properties":{"name":"Peru","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[120.250390625,5.256591796875043],[119.82148437500004,5.06953125000004],[120.1652343750001,5.332421875000037],[120.250390625,5.256591796875043]]],[[[121.159375,6.075634765625011],[121.41103515625005,5.939843749999966],[121.29443359374997,5.869970703125034],[120.8763671875,5.95263671875],[121.159375,6.075634765625011]]],[[[122.09287109375012,6.428320312500006],[121.95917968750004,6.415820312500045],[121.83203125000003,6.664062499999986],[122.0583007812501,6.740722656249972],[122.32353515625002,6.602246093750011],[122.09287109375012,6.428320312500006]]],[[[122.93710937500006,7.409130859374983],[122.80468750000003,7.315966796875017],[122.82216796875,7.428466796875014],[122.93710937500006,7.409130859374983]]],[[[117.07988281250007,7.883398437499977],[117.02832031249997,7.807519531249966],[116.96953125000007,7.894921875],[116.9935546875,8.050537109375014],[117.07705078125,8.069140624999974],[117.07988281250007,7.883398437499977]]],[[[117.35527343750002,8.21464843749996],[117.28701171875,8.191015625000034],[117.28085937500006,8.314990234374974],[117.35527343750002,8.21464843749996]]],[[[124.80664062500003,9.142626953125003],[124.66582031250002,9.132324218750043],[124.65332031250003,9.225830078125],[124.80664062500003,9.142626953125003]]],[[[123.69765625000005,9.237304687500028],[123.61445312500004,9.103320312499989],[123.49345703125002,9.192089843750054],[123.69765625000005,9.237304687500028]]],[[[126.00595703125006,9.320947265625009],[126.19335937499997,9.276708984374963],[126.30458984375,8.952050781249994],[126.13955078125005,8.59565429687504],[126.36533203125012,8.483886718750014],[126.45869140625004,8.20283203125004],[126.43535156250002,7.832812499999974],[126.57011718750002,7.677246093749986],[126.58154296875003,7.247753906249969],[126.1920898437501,6.852539062500014],[126.18935546875,6.309667968749991],[125.82441406250004,7.333300781249989],[125.68925781250007,7.263037109374977],[125.38066406250007,6.689941406250014],[125.58847656250012,6.465771484374997],[125.66796874999997,5.97866210937498],[125.34648437500002,5.598974609374977],[125.23154296875006,6.069531250000011],[124.92734375000006,5.875341796874977],[124.21279296875,6.233251953124977],[124.078125,6.404443359375037],[123.98525390625,6.993701171875003],[124.20664062500006,7.396435546874983],[123.66582031250002,7.817773437500023],[123.49306640625,7.80791015624996],[123.39091796875007,7.407519531250017],[123.09667968749997,7.700439453125],[122.8429687500001,7.529296875000043],[122.79179687500002,7.72246093749996],[122.61621093749997,7.763134765624983],[122.14248046875,6.949658203124997],[121.96425781250005,6.96821289062504],[121.92460937500002,7.199511718750003],[122.24335937500004,7.945117187500031],[122.91113281250003,8.156445312499997],[123.05058593750002,8.433935546875048],[123.43457031249997,8.70332031250004],[123.84921875000006,8.432714843749977],[123.79941406250006,8.049121093749989],[124.19765625,8.229541015624974],[124.40488281250006,8.599853515625014],[124.7311523437501,8.562988281250043],[124.86894531250002,8.972265625000034],[125.141015625,8.86875],[125.20966796875004,9.027148437500017],[125.49873046875004,9.014746093749977],[125.47128906250006,9.756787109374983],[126.00595703125006,9.320947265625009]]],[[[126.059375,9.766210937500034],[125.99121093750003,9.838525390625023],[126.07382812500006,10.059228515625051],[126.1725585937501,9.79995117187498],[126.059375,9.766210937500034]]],[[[124.59384765625006,9.787207031249963],[124.1224609375,9.599316406249969],[123.93564453125012,9.623974609375011],[123.81718750000002,9.817382812499986],[124.17285156250003,10.135205078124983],[124.33574218750002,10.159912109375043],[124.57714843749997,10.026708984374991],[124.59384765625006,9.787207031249963]]],[[[125.69023437500007,9.914453125000037],[125.49482421875004,10.118701171875003],[125.66679687500002,10.440136718750026],[125.69023437500007,9.914453125000037]]],[[[119.91621093750004,10.485986328125037],[119.79316406250004,10.455273437499997],[119.85205078124997,10.64013671875],[120.00839843750012,10.570117187500031],[119.91621093750004,10.485986328125037]]],[[[122.64951171875012,10.472705078125003],[122.53837890625002,10.424951171875037],[122.5375,10.607568359375023],[122.70126953125006,10.740625],[122.64951171875012,10.472705078125003]]],[[[123.13085937500003,9.064111328124994],[122.99472656250006,9.058837890624986],[122.8666015625,9.319824218750043],[122.5625,9.482812500000037],[122.39951171875006,9.823046874999989],[122.47148437500007,9.961523437500034],[122.85556640625006,10.0869140625],[122.81699218750012,10.503808593750023],[122.98330078125,10.886621093750037],[123.25664062500007,10.99394531249996],[123.51064453125005,10.923046875],[123.5675781250001,10.780761718750057],[123.16201171875,9.864257812500028],[123.1498046875,9.606152343750026],[123.32050781250004,9.27294921875],[123.13085937500003,9.064111328124994]]],[[[123.37031250000004,9.449609375000023],[123.38623046874997,9.967089843750017],[124.03886718750002,11.273535156249991],[124.00498046875012,10.40009765625004],[123.70048828125007,10.128320312500009],[123.37031250000004,9.449609375000023]]],[[[123.75703125000004,11.28330078125002],[123.815625,11.15073242187502],[123.73671875,11.151464843749991],[123.75703125000004,11.28330078125002]]],[[[117.31113281250012,8.439599609375051],[117.21855468750007,8.367285156249963],[117.34990234375002,8.713574218749997],[119.22382812500004,10.477294921875043],[119.30566406250003,10.9736328125],[119.55332031250012,11.31352539062496],[119.52666015625002,10.953173828125003],[119.68691406250005,10.500341796875034],[119.36933593750004,10.327294921875037],[119.19150390625012,10.061083984374989],[118.78212890625005,9.91611328125002],[118.4349609375,9.256005859375009],[117.31113281250012,8.439599609375051]]],[[[119.86142578125006,11.52534179687504],[119.83066406250012,11.375683593750011],[119.72998046874997,11.431933593750017],[119.86142578125006,11.52534179687504]]],[[[124.574609375,11.343066406250031],[124.92998046875002,11.372851562499974],[125.02656250000004,11.21171875],[125.01318359374997,10.785693359374989],[125.26845703125005,10.307714843750048],[125.14257812499997,10.189453125000028],[124.9875,10.36757812499998],[125.02656250000004,10.033105468749966],[124.78076171874997,10.16806640625002],[124.78671875000012,10.781396484375009],[124.66269531250006,10.961962890625017],[124.44550781250004,10.923583984375014],[124.33066406250012,11.535205078125003],[124.574609375,11.343066406250031]]],[[[124.60839843750003,11.492187500000043],[124.48349609375006,11.485839843749986],[124.36035156250003,11.665917968749994],[124.5109375000001,11.687109375000048],[124.60839843750003,11.492187500000043]]],[[[122.49619140625006,11.615087890625034],[122.83808593750004,11.595654296874983],[122.89453125000003,11.44130859374998],[123.15830078125012,11.53554687499999],[123.11953125,11.286816406250026],[122.8029296875001,10.99003906249996],[122.76992187500005,10.823828125000034],[121.95400390625,10.444384765625003],[122.10351562499997,11.64291992187502],[121.91601562499997,11.854345703125006],[122.02919921875005,11.895410156250023],[122.49619140625006,11.615087890625034]]],[[[120.03876953125004,11.703320312499969],[119.94492187500006,11.690722656249989],[119.86093750000006,11.953955078124963],[120.03593750000002,11.917236328125028],[120.03876953125004,11.703320312499969]]],[[[120.1,12.167675781249983],[120.22822265625004,12.219824218750034],[120.31455078125012,12.012402343749969],[120.01054687500002,12.008251953125011],[119.88574218749997,12.299853515625003],[120.1,12.167675781249983]]],[[[122.65449218750004,12.309033203125011],[122.42294921875006,12.455078125],[122.60361328125006,12.49160156249998],[122.65449218750004,12.309033203125011]]],[[[125.23955078125002,12.527880859375003],[125.32021484375,12.321826171875031],[125.53564453125003,12.191406250000028],[125.49179687500006,11.594335937499977],[125.57353515625002,11.238232421874997],[125.73564453125002,11.049609375000017],[125.23339843749997,11.145068359375017],[125.03427734375012,11.341259765625026],[124.91699218750003,11.558398437500031],[124.99501953125,11.764941406250003],[124.445703125,12.152783203124969],[124.29472656250007,12.569335937500014],[125.23955078125002,12.527880859375003]]],[[[123.71660156250007,12.287353515625028],[124.04033203125002,11.966796875],[124.04550781250012,11.752441406250028],[123.47373046875006,12.21665039062502],[123.15781250000012,11.925634765624963],[123.23642578125012,12.583496093750057],[123.71660156250007,12.287353515625028]]],[[[122.09404296875002,12.354882812500023],[122.01396484375002,12.105615234375037],[121.9232421875,12.331298828125014],[122.00156250000006,12.598535156250009],[122.14501953124997,12.652636718750017],[122.09404296875002,12.354882812500023]]],[[[123.77539062499997,12.453906250000031],[123.77910156250002,12.366259765625031],[123.62148437500005,12.67490234375002],[123.77539062499997,12.453906250000031]]],[[[123.28183593750006,12.85341796874998],[123.36718750000003,12.70083007812498],[122.95751953124997,13.107177734374986],[123.28183593750006,12.85341796874998]]],[[[120.70439453125002,13.479492187499986],[121.20273437500006,13.432324218749969],[121.52275390625007,13.131201171874991],[121.540625,12.63818359375],[121.39433593750002,12.300585937499974],[121.23671875000005,12.218798828125003],[120.92216796875002,12.51162109374998],[120.65136718749997,13.169140625],[120.33847656250012,13.412353515624986],[120.40126953125,13.517041015624997],[120.70439453125002,13.479492187499986]]],[[[121.91484375000002,13.540332031250031],[122.11455078125002,13.463183593750031],[122.00488281249997,13.204980468750009],[121.82919921875006,13.328613281249972],[121.91484375000002,13.540332031250031]]],[[[124.35361328125006,13.632226562500009],[124.17539062500012,13.531542968750017],[124.03886718750002,13.663134765625003],[124.22490234375007,14.077587890624969],[124.41718750000004,13.871044921874997],[124.35361328125006,13.632226562500009]]],[[[122.03349609375002,15.005029296875009],[121.93300781250005,14.656054687500045],[121.83984374999997,15.038134765625003],[122.03349609375002,15.005029296875009]]],[[[121.10156249999997,18.615283203125017],[121.84560546875,18.29541015625003],[122.03847656250005,18.32792968749999],[122.14667968750004,18.486572265625],[122.26552734375005,18.458837890625034],[122.15234374999997,17.664404296875006],[122.51914062500012,17.124853515625034],[122.13515625000005,16.18481445312503],[121.59531250000012,15.933251953125023],[121.60703125000006,15.669824218749994],[121.39228515625004,15.324414062499969],[121.69541015625006,14.7373046875],[121.62792968749997,14.581152343749977],[121.76660156249997,14.16806640625002],[122.21171875000002,13.930175781250057],[122.2875,13.996191406250006],[122.19970703125003,14.148046875000034],[122.6271484375001,14.317529296875009],[122.93417968750012,14.18808593750002],[123.101953125,13.750244140624986],[123.29697265625012,13.836425781250043],[123.32031249999997,14.061669921875023],[123.81572265625002,13.837109375000011],[123.80625000000012,13.721728515625045],[123.54960937500007,13.645751953125014],[123.81923828125,13.269482421875011],[123.78515625000003,13.110546875000054],[124.14277343750004,13.035791015625009],[124.0597656250001,12.567089843749997],[123.87783203125005,12.689697265625014],[123.94853515625007,12.916406250000023],[123.31093750000005,13.044091796875009],[123.16328125000004,13.44174804687502],[122.59521484374997,13.90761718749998],[122.46796875000004,13.886718749999986],[122.66787109375,13.395361328124991],[122.59990234375002,13.194140625000031],[122.37656250000012,13.520605468750006],[121.77792968750006,13.93764648437498],[121.50107421875006,13.8421875],[121.344140625,13.649121093749997],[121.09550781250007,13.679492187500045],[120.84072265625,13.884716796875026],[120.637109375,13.804492187500031],[120.61679687500006,14.188037109375003],[120.9220703125001,14.493115234374983],[120.94130859375,14.645068359375031],[120.58369140625004,14.88125],[120.58867187500002,14.483105468749983],[120.43876953125002,14.453369140624972],[120.25078125000002,14.793310546875034],[120.08212890625012,14.851074218749986],[119.77255859375012,16.25512695312503],[119.83076171875004,16.326562500000023],[120.15976562500012,16.047656250000045],[120.36875,16.109570312499955],[120.35839843749997,17.63818359375],[120.59970703125012,18.507861328125074],[121.10156249999997,18.615283203125017]]],[[[121.92167968750007,18.89472656250001],[121.82519531250003,18.842724609374983],[121.94335937500003,19.010449218749955],[121.92167968750007,18.89472656250001]]],[[[121.52089843750005,19.361962890624994],[121.53125,19.271337890625006],[121.37460937500006,19.356298828124977],[121.52089843750005,19.361962890624994]]]]},"properties":{"name":"Philippines","childNum":37}},{"geometry":{"type":"Polygon","coordinates":[[[134.5954101562501,7.382031249999969],[134.51572265625012,7.525781250000037],[134.65117187500002,7.712109374999983],[134.5954101562501,7.382031249999969]]]},"properties":{"name":"Palau","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[153.53613281249997,-11.476171874999949],[153.75986328125006,-11.586328125],[153.55371093749997,-11.630566406249969],[153.28681640625004,-11.516992187500009],[153.20361328124997,-11.32412109374998],[153.53613281249997,-11.476171874999949]]],[[[154.28076171874997,-11.36142578125002],[154.12119140625006,-11.425683593749966],[154.02343750000003,-11.347949218750031],[154.28076171874997,-11.36142578125002]]],[[[150.89873046875002,-10.565332031250023],[150.88466796875,-10.643457031250037],[150.78574218750006,-10.603417968749966],[150.89873046875002,-10.565332031250023]]],[[[151.08095703125,-10.020117187499963],[151.29648437500012,-9.956738281250026],[151.230859375,-10.194726562500009],[150.95917968750004,-10.092578124999989],[150.77607421875004,-9.70908203125002],[151.08095703125,-10.020117187499963]]],[[[150.52841796875006,-9.34658203124998],[150.78867187500006,-9.417968749999957],[150.89404296875003,-9.667480468749986],[150.43623046875004,-9.624609374999949],[150.5084960937501,-9.536132812499957],[150.43730468750007,-9.359960937500034],[150.52841796875006,-9.34658203124998]]],[[[150.3454101562501,-9.493847656249955],[150.10976562500005,-9.361914062499991],[150.20830078125002,-9.206347656250003],[150.32011718750007,-9.264160156249972],[150.3454101562501,-9.493847656249955]]],[[[152.63095703125012,-8.959375],[152.95292968750007,-9.07011718749996],[152.96689453125006,-9.208984375000014],[152.51513671874997,-9.009863281250034],[152.63095703125012,-8.959375]]],[[[151.10683593750005,-8.733496093749949],[151.12412109375012,-8.804882812500011],[151.00498046875006,-8.523828124999952],[151.117578125,-8.41884765624998],[151.10683593750005,-8.733496093749949]]],[[[143.58681640625005,-8.481738281250003],[143.321875,-8.367578125],[143.5814453125,-8.390917968749974],[143.58681640625005,-8.481738281250003]]],[[[148.02578125,-5.826367187500011],[147.78105468750007,-5.627246093749946],[147.7946289062501,-5.492382812500011],[148.05478515625006,-5.61152343750004],[148.02578125,-5.826367187500011]]],[[[155.95761718750006,-6.686816406249989],[155.71933593750012,-6.862792968749957],[155.34404296875007,-6.721679687499986],[155.20214843750003,-6.3076171875],[154.75927734375003,-5.931347656249997],[154.72929687500002,-5.444433593750006],[155.09384765625006,-5.620214843750034],[155.46699218750004,-6.145117187500034],[155.82255859375002,-6.38046875000002],[155.95761718750006,-6.686816406249989]]],[[[147.17626953124997,-5.431933593749946],[147.00585937499997,-5.30703125],[147.1310546875001,-5.190820312500037],[147.17626953124997,-5.431933593749946]]],[[[154.64726562500002,-5.43271484375002],[154.54003906250003,-5.11083984375],[154.63261718750007,-5.013867187499955],[154.72714843750006,-5.218066406249989],[154.64726562500002,-5.43271484375002]]],[[[146.01933593750007,-4.726171874999963],[145.88359375000007,-4.66748046875],[145.9958007812501,-4.539257812499983],[146.01933593750007,-4.726171874999963]]],[[[151.915625,-4.296777343749966],[152.11718749999997,-4.212207031249974],[152.40566406250005,-4.340722656249952],[152.35117187500006,-4.82216796874998],[151.98369140625007,-5.07441406250004],[152.14296875,-5.357031249999963],[152.07705078125,-5.458300781249989],[151.86542968750004,-5.564843750000023],[151.51513671874997,-5.552343749999963],[151.22929687500002,-5.919921874999986],[150.47353515625,-6.263378906249969],[149.65253906250004,-6.290429687499966],[149.38232421874997,-6.078125],[149.0990234375,-6.116992187499989],[148.33720703125007,-5.669433593750014],[148.43203125,-5.471777343749991],[149.35888671875003,-5.583984375000014],[149.8314453125,-5.524121093749997],[149.96279296875,-5.447753906249972],[150.0900390625001,-5.011816406249977],[150.1703125,-5.070605468749974],[150.0724609375001,-5.309570312499986],[150.18310546874997,-5.523632812499983],[150.90029296875005,-5.447167968750037],[151.32656250000005,-4.96035156249998],[151.67119140625007,-4.88330078125],[151.59306640625007,-4.200781249999949],[151.915625,-4.296777343749966]]],[[[152.67060546875004,-3.13339843750002],[152.64619140625004,-3.221191406249957],[152.54326171875002,-3.095605468749952],[152.63876953125012,-3.042773437500031],[152.67060546875004,-3.13339843750002]]],[[[140.97617187500012,-9.11875],[140.97519531250006,-6.90537109375002],[140.86230468749997,-6.740039062499989],[140.975,-6.346093750000023],[140.97353515625,-2.803417968750026],[140.97343750000007,-2.609765625],[142.90517578125,-3.32070312499998],[143.50898437500004,-3.431152343750014],[144.06640625000003,-3.80517578125],[144.4777343750001,-3.82529296875002],[145.08779296875,-4.349121093749972],[145.33457031250012,-4.385253906249972],[145.7669921875,-4.823046874999989],[145.74521484375012,-5.402441406249977],[147.56669921875002,-6.056933593750003],[147.80205078125002,-6.31523437499996],[147.84550781250007,-6.662402343749989],[147.11914062499997,-6.721679687499986],[146.95361328124997,-6.834082031249963],[147.19003906250012,-7.378125],[148.12675781250007,-8.103613281249963],[148.246875,-8.554296875000034],[148.45117187499997,-8.694531250000011],[148.58310546875006,-9.051757812499957],[149.19833984375006,-9.03125],[149.26318359374997,-9.497851562499974],[150.01103515625007,-9.688183593750026],[149.76123046874997,-9.805859375000011],[149.87441406250005,-10.012988281250031],[150.84951171875,-10.236035156249997],[150.44609375000007,-10.30732421875004],[150.6471679687501,-10.517968749999966],[150.31992187500012,-10.654882812499963],[150.0167968750001,-10.577148437500028],[149.75410156250004,-10.353027343750028],[147.76865234375012,-10.070117187500031],[147.01718750000006,-9.38789062500004],[146.96376953125,-9.059570312499943],[146.63085937499997,-8.951171874999972],[146.03320312499997,-8.076367187500011],[144.97382812500004,-7.802148437500009],[144.86425781249997,-7.631542968749983],[144.50986328125006,-7.567382812499972],[144.14287109375007,-7.757226562500009],[143.65488281250012,-7.460351562500009],[143.94228515625005,-7.944238281250009],[143.8333984375,-8.029101562499974],[143.51816406250006,-8.000683593749955],[143.61376953125003,-8.200390624999969],[142.52412109375004,-8.32167968749998],[142.34746093750002,-8.167480468750014],[142.20683593750002,-8.195800781250014],[142.47480468750004,-8.369433593750031],[142.79794921875006,-8.345019531250031],[143.11181640624997,-8.474511718750037],[143.37724609375007,-8.762207031250028],[143.36621093750003,-8.961035156250034],[142.6471679687501,-9.327832031249969],[142.22958984375012,-9.169921874999957],[141.13320312500005,-9.221289062500034],[140.97617187500012,-9.11875]]],[[[152.96582031249997,-4.756347656249986],[152.89169921875006,-4.832421875000023],[152.73994140625004,-4.635839843750034],[152.66816406250004,-4.131835937500028],[152.27939453125006,-3.582421875],[151.06679687500005,-2.829003906249994],[150.74609374999997,-2.73886718750002],[150.8253906250001,-2.572949218749969],[152.03291015625004,-3.25136718749998],[153.01679687500004,-4.105664062500026],[153.1325195312501,-4.352441406250037],[152.96582031249997,-4.756347656249986]]],[[[150.43662109375012,-2.66181640625004],[150.16572265625004,-2.660253906249991],[149.96162109375004,-2.473828125000026],[150.22714843750006,-2.384179687499966],[150.42949218750007,-2.47041015625004],[150.43662109375012,-2.66181640625004]]],[[[147.06757812500004,-1.96015625],[147.43808593750012,-2.05898437499998],[147.20634765625007,-2.181933593749974],[146.54648437500012,-2.20859375],[146.65625,-1.97402343749998],[147.06757812500004,-1.96015625]]],[[[149.76542968750007,-1.553027343750017],[149.54589843749997,-1.471679687499957],[149.58095703125005,-1.353222656249983],[149.76542968750007,-1.553027343750017]]]]},"properties":{"name":"Papua New Guinea","childNum":21}},{"geometry":{"type":"Polygon","coordinates":[[[23.484667968750017,53.939794921875],[23.915429687500023,52.770263671875],[23.175097656250017,52.28662109375],[23.652441406250006,52.040380859375],[23.605273437500017,51.517919921875],[23.664453125000023,51.31005859375],[24.095800781250006,50.87275390625],[23.9970703125,50.809375],[24.089941406250006,50.53046875],[23.97265625,50.410058593749994],[23.711718750000017,50.37734375],[23.03632812500001,49.899072265624994],[22.706152343750006,49.606201171875],[22.6494140625,49.539013671875],[22.66064453125,49.483691406249996],[22.71992187500001,49.353808593749996],[22.732421875,49.295166015625],[22.705664062500006,49.171191406249996],[22.847070312500023,49.08125],[22.538671875,49.072705078125],[22.473046875000023,49.081298828125],[22.020117187500006,49.209521484374996],[21.6396484375,49.411962890625],[21.079394531250017,49.418261718749996],[20.868457031250017,49.314697265625],[20.36298828125001,49.38525390625],[20.0576171875,49.181298828124994],[19.756640625000017,49.204394531249996],[19.77392578125,49.37216796875],[19.44160156250001,49.597705078124996],[19.1494140625,49.4],[18.83222656250001,49.510791015624996],[18.562402343750023,49.879345703125],[18.0283203125,50.03525390625],[17.874804687500017,49.972265625],[17.627050781250006,50.11640625],[17.702246093750006,50.307177734374996],[17.41523437500001,50.254785156249994],[16.88007812500001,50.427050781249996],[16.989648437500023,50.2369140625],[16.63916015625,50.1021484375],[16.210351562500023,50.423730468749994],[16.419726562500017,50.573632812499994],[16.2822265625,50.655615234375],[16.007226562500023,50.611621093749996],[14.99375,51.01435546875],[14.98291015625,50.886572265625],[14.895800781250017,50.861376953124996],[14.809375,50.858984375],[14.814257812500017,50.871630859374996],[14.91748046875,51.008740234375],[14.9638671875,51.095117187499994],[14.935546875,51.435351562499996],[14.905957031250011,51.463330078125],[14.724707031250006,51.523876953125],[14.7109375,51.544921875],[14.738671875000023,51.6271484375],[14.601660156250006,51.832373046875],[14.752539062500006,52.081835937499996],[14.679882812500011,52.25],[14.615625,52.277636718749996],[14.573925781250011,52.31416015625],[14.554589843750023,52.359667968749996],[14.569726562500023,52.431103515625],[14.619433593750017,52.528515625],[14.514062500000023,52.64560546875],[14.253710937500017,52.782519531249996],[14.128613281250011,52.878222656249996],[14.138867187500011,52.932861328125],[14.293164062500011,53.0267578125],[14.368554687500023,53.10556640625],[14.410937500000017,53.199023437499996],[14.412304687500011,53.216748046875],[14.41455078125,53.283496093749996],[14.258886718750006,53.729638671875],[14.58349609375,53.63935546875],[14.558398437500017,53.823193359375],[14.21142578125,53.950341796875],[16.186328125000017,54.290380859375],[16.55976562500001,54.55380859375],[18.32343750000001,54.838183593749996],[18.75927734375,54.6845703125],[18.43623046875001,54.7447265625],[18.83642578125,54.369580078125],[19.604394531250023,54.4591796875],[20.20820312500001,54.420751953125],[22.16845703125,54.35986328125],[22.731835937500023,54.35009765625],[22.766210937500006,54.356787109375],[22.82373046875,54.395800781249996],[22.893945312500023,54.39052734375],[22.97675781250001,54.366357421875],[23.015527343750023,54.34833984375],[23.04218750000001,54.30419921875],[23.0875,54.299462890625],[23.170312500000023,54.2814453125],[23.282324218750006,54.24033203125],[23.3701171875,54.200488281249996],[23.45361328125,54.14345703125],[23.484667968750017,53.939794921875]]]},"properties":{"name":"Poland","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-65.42558593749999,18.105615234374994],[-65.57221679687493,18.137304687499977],[-65.29487304687501,18.133349609375045],[-65.42558593749999,18.105615234374994]]],[[[-66.12939453125003,18.444921875000034],[-65.62880859375,18.381396484375045],[-65.62084960937497,18.242333984374966],[-65.97080078124995,17.974365234375],[-67.196875,17.994189453125045],[-67.2640625,18.364599609375006],[-67.15864257812501,18.499218749999983],[-66.12939453125003,18.444921875000034]]]]},"properties":{"name":"Puerto Rico","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[130.52695312500012,42.535400390625],[130.68730468750007,42.30253906249999],[130.2357421875,42.183203125000034],[129.75634765624997,41.712255859375006],[129.70869140625004,40.857324218749994],[129.34111328125002,40.72631835937506],[128.51123046874997,40.130224609375006],[127.56816406250002,39.78198242187503],[127.39453125000003,39.207910156249966],[127.78613281250003,39.084130859374966],[128.37460937500012,38.6234375],[128.03896484375,38.30854492187498],[127.09033203125003,38.28388671875001],[126.63388671875012,37.78183593750006],[126.36992187500007,37.87836914062501],[126.11669921875003,37.74291992187503],[125.76914062500006,37.98535156250003],[125.35781250000005,37.72480468749998],[125.31074218750004,37.843505859375],[124.98876953124997,37.93144531249999],[125.2067382812501,38.08154296875],[124.69091796874997,38.12919921875002],[125.06738281250003,38.556738281250006],[125.55449218750002,38.68623046875001],[125.16884765625,38.80551757812506],[125.40966796875003,39.28837890625002],[125.36083984375003,39.52661132812497],[124.77529296875,39.75805664062506],[124.63828125000006,39.61508789062506],[124.36210937500002,40.004052734374994],[124.8893554687501,40.459814453125006],[125.98906250000002,40.904638671875034],[126.74306640625,41.724853515625],[126.95478515625004,41.76948242187501],[127.17968750000003,41.531347656250006],[128.14941406249997,41.38774414062496],[128.28925781250004,41.60742187500006],[128.04521484375007,41.9875],[128.92343750000006,42.038232421874966],[129.3136718750001,42.41357421874997],[129.69785156250012,42.448144531249994],[129.89824218750002,42.998144531250034],[130.24033203125006,42.891796874999955],[130.24667968750012,42.744824218749955],[130.52695312500012,42.535400390625]]]},"properties":{"name":"Dem. Rep. Korea","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-17.190869140624926,32.86860351562498],[-16.693261718749966,32.75800781250001],[-17.018261718749926,32.66279296874998],[-17.226025390624983,32.76684570312503],[-17.190869140624926,32.86860351562498]]],[[[-25.64897460937499,37.840917968750006],[-25.18193359374996,37.837890625],[-25.19072265624999,37.764355468749955],[-25.73447265624992,37.76289062500001],[-25.845898437499983,37.89404296875],[-25.64897460937499,37.840917968750006]]],[[[-28.14726562499996,38.45268554687502],[-28.064794921875034,38.412744140624966],[-28.454492187500023,38.40864257812504],[-28.54882812499997,38.51855468750003],[-28.14726562499996,38.45268554687502]]],[[[-28.641308593749983,38.525],[-28.842041015625,38.5984375],[-28.69775390625,38.638476562500045],[-28.641308593749983,38.525]]],[[[-27.07524414062496,38.643457031249994],[-27.38593750000001,38.765820312499955],[-27.127001953125017,38.78984375],[-27.07524414062496,38.643457031249994]]],[[[-31.137109374999937,39.40693359375001],[-31.282958984375,39.39409179687496],[-31.260839843750034,39.49677734375001],[-31.137109374999937,39.40693359375001]]],[[[-7.406152343749937,37.17944335937497],[-7.834130859374994,37.005712890625034],[-8.597656249999943,37.12133789062506],[-8.997802734375028,37.03227539062502],[-8.814160156249983,37.43081054687502],[-8.881103515624943,38.44667968750005],[-8.668310546874949,38.42431640625003],[-8.798876953124989,38.518164062500034],[-9.213281249999937,38.44809570312498],[-9.250390624999966,38.65673828125003],[-9.021484374999943,38.746875],[-8.79160156249992,39.07817382812502],[-9.13579101562496,38.74277343749998],[-9.35673828124996,38.697900390624994],[-9.479736328124972,38.79877929687501],[-9.374755859374972,39.338281249999966],[-8.837841796874926,40.11567382812498],[-8.684619140624989,40.75253906250006],[-8.755419921874932,41.69838867187502],[-8.887597656249937,41.76459960937501],[-8.777148437500017,41.941064453124994],[-8.266064453124983,42.13740234375001],[-8.152490234374937,41.81196289062498],[-7.40361328124996,41.833691406249955],[-7.147119140625023,41.98115234374998],[-6.61826171874992,41.9423828125],[-6.542187499999955,41.672509765624994],[-6.2125,41.53203125],[-6.928466796874972,41.009130859375006],[-6.8101562499999,40.343115234375034],[-7.032617187499966,40.16791992187498],[-6.896093749999949,40.02182617187506],[-6.975390624999932,39.79838867187502],[-7.117675781249972,39.681689453125045],[-7.53569335937496,39.66157226562501],[-6.997949218749994,39.05644531250002],[-7.343017578124943,38.45742187500002],[-7.106396484374983,38.181005859375006],[-6.957568359374932,38.18789062499999],[-7.44394531249992,37.72827148437497],[-7.406152343749937,37.17944335937497]]]]},"properties":{"name":"Portugal","childNum":7,"cp":[-8.7440694,39.9251454]}},{"geometry":{"type":"Polygon","coordinates":[[[-58.15976562499999,-20.164648437500006],[-58.13779296874999,-20.2373046875],[-58.12460937499999,-20.29345703125],[-58.09150390625,-20.33320312500001],[-58.05844726562499,-20.38613281250001],[-58.025390625,-20.415820312500003],[-58.00224609374999,-20.465429687500006],[-57.97905273437499,-20.657324218750006],[-57.91513671874999,-20.69033203125001],[-57.830224609374994,-20.99794921875001],[-57.94267578124999,-21.79833984375],[-57.95590820312499,-22.109179687500003],[-56.77519531249999,-22.261328125],[-56.44780273437499,-22.076171875],[-56.39487304687499,-22.09267578125001],[-56.35185546874999,-22.17861328125001],[-56.246044921875,-22.2646484375],[-56.18984375,-22.28115234375001],[-55.99140625,-22.28115234375001],[-55.84916992187499,-22.3076171875],[-55.75327148437499,-22.41015625],[-55.74663085937499,-22.5126953125],[-55.61767578125,-22.671484375],[-55.53828125,-23.58095703125001],[-55.518457031249994,-23.627246093750003],[-55.458886718749994,-23.68671875000001],[-55.4423828125,-23.792578125],[-55.4423828125,-23.865332031250006],[-55.415917968749994,-23.95136718750001],[-55.36630859374999,-23.991015625],[-55.28691406249999,-24.004296875],[-55.1943359375,-24.01748046875001],[-55.08188476562499,-23.99765625],[-54.982666015625,-23.97451171875001],[-54.62548828125,-23.8125],[-54.44023437499999,-23.90175781250001],[-54.37080078125,-23.97119140625],[-54.24179687499999,-24.047265625],[-54.281005859375,-24.30605468750001],[-54.43623046875,-25.12128906250001],[-54.47314453125,-25.22021484375],[-54.610546875,-25.432714843750006],[-54.615869140624994,-25.57607421875001],[-54.63193359374999,-26.00576171875001],[-54.677734375,-26.30878906250001],[-54.934472656249994,-26.70253906250001],[-55.1359375,-26.93115234375],[-55.426660156249994,-27.00927734375],[-55.450634765625,-27.068359375],[-55.496728515624994,-27.115332031250006],[-55.564892578125,-27.15],[-55.59726562499999,-27.207617187500006],[-55.59379882812499,-27.2880859375],[-55.63291015624999,-27.35712890625001],[-55.71464843749999,-27.41484375],[-55.789990234375,-27.41640625],[-55.95146484374999,-27.32568359375],[-56.1640625,-27.32148437500001],[-56.437158203124994,-27.553808593750006],[-58.16826171874999,-27.2734375],[-58.60483398437499,-27.31435546875001],[-58.641748046874994,-27.19609375],[-58.618603515625,-27.132128906250003],[-58.222070312499994,-26.65],[-58.18149414062499,-26.307421875],[-57.943115234375,-26.05292968750001],[-57.563134765624994,-25.473730468750006],[-57.821679687499994,-25.13642578125001],[-59.187255859375,-24.562304687500003],[-59.892480468749994,-24.093554687500003],[-60.83984375,-23.85810546875001],[-61.084716796875,-23.65644531250001],[-61.79853515625,-23.18203125],[-62.21416015624999,-22.612402343750006],[-62.372509765625,-22.43916015625001],[-62.54155273437499,-22.349609375],[-62.6259765625,-22.29042968750001],[-62.62568359375,-22.261523437500003],[-62.65097656249999,-22.233691406250003],[-62.27666015624999,-21.066015625],[-62.276318359375,-20.5625],[-61.7568359375,-19.6453125],[-60.00737304687499,-19.29755859375001],[-59.09052734375,-19.286230468750006],[-58.18017578125,-19.81787109375],[-58.15976562499999,-20.164648437500006]]]},"properties":{"name":"Paraguay","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[34.34833984375004,31.292919921874955],[34.2453125000001,31.208300781250045],[34.2125,31.292285156250017],[34.198144531249994,31.322607421875063],[34.47734375000002,31.584863281250023],[34.52412109375004,31.541650390624994],[34.5255859375001,31.52563476562503],[34.34833984375004,31.292919921874955]]],[[[34.88046875,31.3681640625],[34.950976562500074,31.60229492187503],[35.20371093750006,31.75],[35.1271484375001,31.816748046875006],[35.05322265625003,31.83793945312496],[34.983007812500006,31.816796875000023],[34.9611328125001,31.823339843750006],[34.95380859375004,31.84125976562504],[34.98974609374997,31.913281249999955],[34.955957031249994,32.1609375],[35.01054687500002,32.33818359375002],[35.06503906250006,32.46044921875006],[35.19326171875005,32.53442382812503],[35.303808593750006,32.512939453125],[35.38671875000003,32.493017578125034],[35.402636718750074,32.45063476562501],[35.484375,32.40166015624999],[35.5514648437501,32.39550781250006],[35.57207031250002,32.237890625],[35.450585937499994,31.479296875000017],[34.88046875,31.3681640625]]]]},"properties":{"name":"Palestine","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-149.321533203125,-17.690039062499963],[-149.177685546875,-17.736621093750045],[-149.18178710937497,-17.86230468749997],[-149.34111328125,-17.732421874999986],[-149.57890624999993,-17.734960937499963],[-149.635009765625,-17.564257812500003],[-149.37919921874993,-17.522363281249994],[-149.321533203125,-17.690039062499963]]],[[[-143.44057617187497,-16.619726562499963],[-143.38618164062498,-16.668847656250023],[-143.55068359375002,-16.62109374999997],[-143.44057617187497,-16.619726562499963]]],[[[-139.02431640624997,-9.695214843750037],[-138.82734375,-9.74160156249998],[-139.13408203124996,-9.829492187500037],[-139.02431640624997,-9.695214843750037]]],[[[-140.075634765625,-9.425976562499983],[-140.14438476562498,-9.359375],[-140.07094726562497,-9.328125],[-140.075634765625,-9.425976562499983]]],[[[-140.07260742187503,-8.910449218750031],[-140.21743164062497,-8.929687499999957],[-140.24003906249993,-8.79755859375004],[-140.057666015625,-8.801464843750026],[-140.07260742187503,-8.910449218750031]]]]},"properties":{"name":"Fr. Polynesia","childNum":5}},{"geometry":{"type":"Polygon","coordinates":[[[51.26796875000002,24.607226562500003],[51.17802734375002,24.58671875],[51.093359375,24.564648437499997],[51.02275390625002,24.565234375],[50.96601562500001,24.573925781249997],[50.928320312500006,24.595117187499994],[50.85566406250001,24.679638671874997],[50.80439453125001,24.789257812499997],[50.8359375,24.850390625],[50.846777343750006,24.888574218749994],[50.75458984375001,25.39926757812499],[51.003125,25.9814453125],[51.262304687500006,26.153271484374997],[51.543066406250006,25.902392578125003],[51.4853515625,25.524707031250003],[51.60888671875,25.052880859374994],[51.42792968750001,24.668261718750003],[51.26796875000002,24.607226562500003]]]},"properties":{"name":"Qatar","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[28.2125,45.450439453125],[28.317675781250017,45.347119140625],[28.451269531250006,45.2921875],[28.78828125000001,45.240966796875],[28.78173828125,45.309863281249996],[28.894335937500017,45.289941406249994],[29.223535156250023,45.4029296875],[29.403710937500023,45.419677734375],[29.567675781250017,45.37080078125],[29.705859375000017,45.259912109374994],[29.557519531250023,44.843408203124994],[29.048242187500023,44.757568359375],[29.0953125,44.975048828125],[28.891503906250023,44.91865234375],[28.585351562500023,43.742236328124996],[28.221972656250017,43.772851562499994],[27.88427734375,43.987353515624996],[27.425390625,44.0205078125],[27.0869140625,44.167382812499994],[26.2158203125,44.007275390625],[25.4970703125,43.670800781249994],[22.919042968750006,43.83447265625],[22.868261718750006,43.947900390624994],[23.02851562500001,44.077978515625],[22.705078125,44.23779296875],[22.687890625000023,44.248291015625],[22.494531250000023,44.435449218749994],[22.554003906250017,44.540332031249996],[22.6201171875,44.562353515625],[22.70078125,44.555517578125],[22.734375,44.569921875],[22.72089843750001,44.605517578124996],[22.64208984375,44.6509765625],[22.49765625,44.70625],[22.350683593750006,44.676123046875],[22.200976562500017,44.560693359374994],[22.093066406250017,44.541943359375],[21.909277343750006,44.66611328125],[21.636132812500023,44.71044921875],[21.52314453125001,44.790087890624996],[21.36005859375001,44.82666015625],[21.35791015625,44.86181640625],[21.384375,44.870068359375],[21.442187500000017,44.873388671875],[21.519921875000023,44.880810546875],[21.532324218750006,44.900683593749996],[21.35703125,44.990771484374996],[21.465429687500006,45.171875],[21.431445312500017,45.192529296874994],[20.794042968750006,45.46787109375],[20.775,45.749804687499996],[20.760156250000023,45.758105468749996],[20.746875,45.748974609375],[20.727832031250017,45.73740234375],[20.709277343750017,45.735253906249994],[20.652734375000023,45.77939453125],[20.581152343750006,45.869482421875],[20.35859375000001,45.975488281249994],[20.241796875,46.10859375],[20.28095703125001,46.1330078125],[20.508105468750017,46.166943359375],[20.613671875000023,46.13349609375],[20.76025390625,46.246240234374994],[21.121679687500006,46.282421875],[21.99970703125001,47.505029296874994],[22.87666015625001,47.947265625],[23.054785156250006,48.00654296875],[23.139453125000017,48.08740234375],[23.20263671875,48.084521484374996],[23.408203125,47.989990234375],[23.628710937500017,47.995849609375],[24.578906250000017,47.931054687499994],[24.979101562500006,47.72412109375],[25.464257812500023,47.910791015624994],[25.689257812500017,47.932470703125],[25.90869140625,47.967578125],[26.162695312500006,47.992529296875],[26.236230468750023,48.064355468749994],[26.276953125,48.113232421875],[26.3056640625,48.203759765624994],[26.4423828125,48.22998046875],[26.618945312500017,48.25986328125],[26.980761718750017,48.155029296875],[27.614062500000017,47.34052734375],[28.07177734375,46.978417968749994],[28.23945312500001,46.6408203125],[28.07470703125,45.598974609375],[28.2125,45.450439453125]]]},"properties":{"name":"Romania","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[146.71396484375012,43.743798828124994],[146.62197265625,43.81298828125006],[146.88408203125002,43.82915039062496],[146.71396484375012,43.743798828124994]]],[[[146.20761718750006,44.49765625],[146.5677734375,44.44042968749997],[145.91406249999997,44.10371093750004],[145.58681640625,43.84511718750002],[145.5558593750001,43.66459960937502],[145.46171875000007,43.870898437500045],[146.20761718750006,44.49765625]]],[[[148.59951171875,45.317626953125],[147.91376953125004,44.99038085937502],[147.65781250000012,44.97714843749998],[146.89746093750003,44.404296875],[147.24658203124997,44.856054687500006],[147.88554687500007,45.22563476562499],[147.9240234375001,45.38330078125006],[148.05605468750005,45.26210937500005],[148.32421874999997,45.28242187500001],[148.8122070312501,45.510009765625],[148.83710937500004,45.36269531250002],[148.59951171875,45.317626953125]]],[[[149.68769531250004,45.64204101562501],[149.44707031250002,45.593359375000034],[149.9623046875,46.02192382812504],[150.553125,46.208544921875045],[149.68769531250004,45.64204101562501]]],[[[152.00205078125006,46.89716796874998],[151.72343750000007,46.82880859375001],[152.28886718750007,47.1421875],[152.00205078125006,46.89716796874998]]],[[[154.81044921875005,49.31201171875],[154.61093750000006,49.29404296874998],[154.82490234375004,49.64692382812501],[154.81044921875005,49.31201171875]]],[[[155.9210937500001,50.30219726562501],[155.39716796875004,50.04125976562497],[155.24306640625,50.09462890625002],[155.21835937500012,50.29785156250003],[155.68017578124997,50.400732421875034],[156.096875,50.771875],[155.9210937500001,50.30219726562501]]],[[[156.40507812500002,50.65761718750005],[156.16796874999997,50.73188476562498],[156.37646484374997,50.86210937499996],[156.4875,50.84296874999998],[156.40507812500002,50.65761718750005]]],[[[142.76103515625002,54.393945312499966],[143.32470703125003,52.96308593749998],[143.15556640625002,52.08374023437497],[143.29951171875004,51.632373046875045],[143.81601562500006,50.28261718750002],[144.71376953125,48.64028320312502],[144.04873046875,49.249169921874994],[143.73232421875,49.31201171875],[143.10498046875003,49.198828125000034],[142.57421874999997,48.07216796875002],[142.55693359375002,47.737890625000034],[143.21767578125005,46.79487304687504],[143.48564453125002,46.752050781250006],[143.58066406250012,46.360693359375034],[143.43164062500003,46.02866210937498],[143.28232421875006,46.55898437500002],[142.57802734375005,46.700781250000034],[142.07714843749997,45.91704101562499],[141.83037109375002,46.451074218749966],[142.03867187500012,47.140283203124966],[141.9640625000001,47.58745117187502],[142.18173828125012,48.01337890625001],[141.86630859375006,48.750097656250006],[142.1422851562501,49.56914062499999],[142.06601562500006,50.630468750000034],[142.20673828125004,51.22255859375002],[141.72236328125004,51.73632812499997],[141.66083984375004,52.27294921874997],[141.85556640625012,52.79350585937499],[141.82353515625007,53.33950195312502],[142.1419921875,53.49560546875003],[142.52617187500002,53.44746093749998],[142.70595703125,53.89570312499998],[142.33496093749997,54.28071289062501],[142.76103515625002,54.393945312499966]]],[[[137.17861328125005,55.100439453125034],[137.05527343750006,54.9267578125],[136.71464843750002,54.956152343750034],[137.17861328125005,55.100439453125034]]],[[[137.94052734375012,55.092626953125034],[138.20615234375012,55.03354492187498],[137.72148437500007,54.66323242187505],[137.46269531250002,54.873388671875034],[137.23291015624997,54.79057617187496],[137.5773437500001,55.19702148437497],[137.94052734375012,55.092626953125034]]],[[[21.235742187500023,55.26411132812498],[22.072363281250034,55.06367187499998],[22.56728515625005,55.05913085937496],[22.82470703125,54.87128906249998],[22.684472656250023,54.56293945312504],[22.679882812500068,54.493017578125006],[22.766210937499977,54.356787109375034],[22.168457031250057,54.35986328125006],[21.14052734375008,54.39179687499998],[19.604394531250023,54.45917968750004],[19.974511718750023,54.92119140625002],[20.520312500000017,54.994873046875],[20.89980468750008,55.286669921875045],[20.957812500000074,55.27890625000006],[20.594824218750006,54.982373046874955],[20.995898437500017,54.90268554687506],[21.18886718750008,54.93520507812502],[21.235742187500023,55.26411132812498]]],[[[166.65029296875005,54.83906249999998],[166.64511718750006,54.69409179687503],[165.75107421875006,55.294531250000034],[166.27578125000005,55.311962890624955],[166.24804687499997,55.16542968750002],[166.65029296875005,54.83906249999998]]],[[[150.58994140625006,59.01875],[150.47021484375003,59.05405273437498],[150.66621093750004,59.16015625000003],[150.58994140625006,59.01875]]],[[[163.63515625000005,58.603369140625006],[163.47138671875004,58.509375],[163.7609375000001,59.01503906250002],[164.57265625,59.22114257812501],[164.61572265624997,58.885595703125034],[163.63515625000005,58.603369140625006]]],[[[35.8161132812501,65.18208007812501],[35.77871093750005,64.97666015625],[35.52890625000006,65.15107421875001],[35.8161132812501,65.18208007812501]]],[[[70.02070312500004,66.502197265625],[69.65136718750003,66.56533203125],[69.50273437500002,66.75107421875],[70.07666015624997,66.69589843750003],[70.02070312500004,66.502197265625]]],[[[-179.79853515625,68.9404296875],[-178.873876953125,68.75410156249995],[-178.69262695312503,68.54599609375],[-178.09746093750002,68.4248046875],[-178.05581054687497,68.26489257812503],[-177.79677734374997,68.33798828125],[-178.37304687500003,68.56567382812503],[-177.52724609375002,68.29438476562501],[-177.58920898437503,68.22421875],[-175.34521484375,67.67807617187503],[-175.37470703124998,67.35737304687498],[-175.00268554687494,67.4375],[-174.849853515625,67.34887695312503],[-174.92490234375,66.62314453125006],[-174.503759765625,66.537939453125],[-174.39409179687496,66.34423828124997],[-174.084765625,66.47309570312504],[-174.06503906249998,66.22958984374998],[-173.77397460937502,66.43466796875003],[-174.23159179687497,66.63188476562505],[-174.08642578125,66.94287109375],[-174.55009765624993,67.090625],[-173.6796875,67.144775390625],[-173.15781249999998,67.06909179687503],[-173.32353515625,66.95483398437503],[-173.25893554687497,66.84008789062503],[-173.19301757812497,66.99360351562504],[-172.5201171875,66.952490234375],[-173.00751953125,67.06489257812498],[-171.79555664062502,66.93173828125003],[-170.50952148437503,66.34365234375005],[-170.604443359375,66.24892578125002],[-170.30122070312504,66.29404296874998],[-170.24394531250002,66.16928710937503],[-169.777880859375,66.14311523437505],[-169.83168945312497,65.99892578124997],[-170.54067382812497,65.86542968749995],[-170.66630859375,65.62153320312501],[-171.42153320312502,65.81035156250002],[-171.10585937500002,65.51103515625005],[-171.90712890625,65.495947265625],[-172.78330078124998,65.68105468749997],[-172.23281250000002,65.45571289062497],[-172.30927734375004,65.27563476562497],[-172.66191406249993,65.24853515625006],[-172.28603515625002,65.20571289062502],[-172.21318359375,65.04814453124999],[-173.08579101562498,64.81733398437495],[-172.80107421874996,64.79052734375],[-172.90087890624994,64.62885742187501],[-172.40146484374998,64.413916015625],[-172.73916015624997,64.41225585937502],[-172.90317382812498,64.52607421875004],[-172.96005859375003,64.32768554687502],[-173.27548828124998,64.2896484375],[-173.327490234375,64.53955078125003],[-173.72973632812497,64.36450195312497],[-174.57055664062503,64.7177734375],[-175.39511718749998,64.80239257812502],[-175.85385742187498,65.01083984375003],[-176.09326171875,65.471044921875],[-177.05625,65.613623046875],[-177.48876953125,65.50371093749999],[-178.4125,65.49555664062501],[-178.93906249999998,66.03276367187505],[-178.74672851562497,66.01367187500006],[-178.52656250000004,66.40156250000004],[-178.86811523437498,66.18706054687502],[-179.14340820312503,66.37504882812505],[-179.327197265625,66.16259765625003],[-179.68330078124998,66.18413085937505],[-179.78969726562497,65.90087890625],[-179.352099609375,65.51674804687497],[-180,65.06723632812498],[-180,65.31196289062501],[-180,65.55678710937497],[-180,65.80156250000002],[-180,66.04628906250002],[-180,66.29106445312499],[-180,66.53583984375004],[-180,66.78056640625005],[-180,67.02534179687501],[-180,67.27011718750006],[-180,67.51484374999998],[-180,67.75961914062503],[-180,68.00439453124997],[-180,68.24912109375],[-180,68.49389648437497],[-180,68.738671875],[-179.999951171875,68.98344726562505],[-179.79853515625,68.9404296875]]],[[[50.265234375,69.18559570312502],[49.62626953125002,68.85971679687498],[48.91035156250004,68.74306640625002],[48.4390625,68.80488281249998],[48.319921875,69.26923828125001],[48.8449218750001,69.49472656250003],[49.22519531250006,69.51123046875],[50.265234375,69.18559570312502]]],[[[161.46708984375002,68.90097656250003],[161.08281250000007,69.4056640625],[161.50517578125007,69.63945312500002],[161.46708984375002,68.90097656250003]]],[[[169.20078125000006,69.58046875],[168.34804687500005,69.66435546875005],[167.86474609375003,69.90107421875004],[168.35791015625003,70.01567382812502],[169.37480468750007,69.88261718749999],[169.20078125000006,69.58046875]]],[[[60.450488281250074,69.93486328124999],[60.44023437500002,69.72592773437506],[59.637011718750074,69.72104492187503],[59.50263671875004,69.86621093750003],[58.952734375,69.89277343750004],[58.51992187500005,70.31831054687504],[59.04804687500004,70.46049804687505],[60.450488281250074,69.93486328124999]]],[[[52.90332031250003,71.36499023437503],[53.19257812500004,71.21528320312498],[53.0226562500001,70.96870117187501],[52.24960937500006,71.28491210937506],[52.90332031250003,71.36499023437503]]],[[[178.8615234375001,70.826416015625],[178.68388671875013,71.10566406250004],[180,71.53774414062505],[180,70.993017578125],[178.8615234375001,70.826416015625]]],[[[137.95986328125005,71.50766601562503],[137.71181640625005,71.4232421875],[137.06406250000006,71.52988281250003],[137.816796875,71.58789062500006],[137.95986328125005,71.50766601562503]]],[[[-178.87646484375,71.57705078124997],[-178.13388671874998,71.46547851562497],[-177.523583984375,71.16689453125],[-179.415673828125,70.91899414062502],[-179.999951171875,70.993017578125],[-179.999951171875,71.53774414062505],[-178.87646484375,71.57705078124997]]],[[[77.6325195312501,72.291259765625],[76.87109374999997,72.317041015625],[77.74853515625003,72.63120117187506],[78.36513671875005,72.48242187500003],[77.6325195312501,72.291259765625]]],[[[79.50146484374997,72.72192382812497],[78.63320312500005,72.85073242187502],[79.16425781250004,73.0943359375],[79.50146484374997,72.72192382812497]]],[[[74.660546875,72.87343750000002],[74.18066406250003,72.975341796875],[74.19853515625002,73.10908203124998],[74.9615234375,73.0625],[74.660546875,72.87343750000002]]],[[[120.26132812500012,73.08984374999997],[119.79208984375006,73.04541015624997],[119.64042968750002,73.12431640625007],[120.26132812500012,73.08984374999997]]],[[[55.31982421875003,73.30830078124998],[56.42958984375005,73.201171875],[56.121679687500006,72.80659179687498],[55.40332031249997,72.54907226562503],[55.29785156249997,71.93535156250005],[56.45439453125002,71.10737304687504],[57.62539062500005,70.72880859374999],[57.14589843750005,70.58911132812506],[56.38574218749997,70.73413085937503],[56.49970703125004,70.56640625000003],[55.687304687500074,70.69218749999999],[54.60117187500006,70.68007812500002],[53.383593750000074,70.87353515625],[53.670507812500006,71.08691406250003],[54.155664062499994,71.12548828125],[53.40996093750002,71.34013671875002],[53.41162109375003,71.530126953125],[51.93789062500005,71.47470703124998],[51.511328125,71.64809570312497],[51.58251953124997,72.07119140625],[52.252050781250006,72.12973632812503],[52.66191406250002,72.33686523437495],[52.91660156250006,72.66889648437501],[52.5792968750001,72.791357421875],[53.3698242187501,72.91674804687506],[53.2511718750001,73.182958984375],[54.80390625000004,73.38764648437498],[55.31982421875003,73.30830078124998]]],[[[70.67392578125006,73.09501953125005],[70.04072265625004,73.03715820312507],[69.99589843750002,73.359375],[70.94023437500002,73.51440429687503],[71.6261718750001,73.17397460937497],[70.67392578125006,73.09501953125005]]],[[[142.18486328125007,73.89589843750005],[143.34375,73.56875],[143.45146484375007,73.231298828125],[141.59667968750003,73.31083984375005],[140.66279296875004,73.45200195312503],[139.785546875,73.35522460937503],[141.08476562500002,73.86586914062497],[142.18486328125007,73.89589843750005]]],[[[83.5490234375001,74.07177734375],[82.8177734375,74.09160156250005],[83.14980468750005,74.151611328125],[83.5490234375001,74.07177734375]]],[[[141.01025390625003,73.99946289062501],[140.40947265625002,73.92167968750005],[140.1935546875001,74.23671875000002],[141.03857421875003,74.24272460937502],[141.01025390625003,73.99946289062501]]],[[[113.38720703124997,74.40043945312499],[112.78242187500004,74.09506835937503],[111.50341796874997,74.35307617187502],[111.87978515625,74.36381835937499],[112.08447265624997,74.54897460937505],[113.38720703124997,74.40043945312499]]],[[[86.653125,74.981298828125],[87.05214843750005,74.982568359375],[86.92714843750005,74.83076171874998],[86.25859375000002,74.89350585937498],[86.653125,74.981298828125]]],[[[82.17236328125003,75.41938476562501],[81.97851562499997,75.24711914062499],[81.65478515625003,75.28891601562498],[81.71210937500004,75.45141601562506],[82.165625,75.515625],[82.17236328125003,75.41938476562501]]],[[[146.79521484375007,75.37075195312505],[148.43242187500002,75.41352539062495],[148.59013671875007,75.23637695312502],[150.82236328125006,75.15654296875002],[150.64628906250002,74.944580078125],[149.596875,74.77260742187505],[148.296875,74.80043945312502],[146.14853515625012,75.19829101562499],[146.5375,75.58178710937506],[146.79521484375007,75.37075195312505]]],[[[135.9486328125,75.40957031250005],[135.45195312500007,75.38955078124997],[135.6986328125,75.84526367187499],[136.16894531249997,75.60556640625],[135.9486328125,75.40957031250005]]],[[[140.04873046875,75.82895507812503],[140.81591796874997,75.63071289062498],[141.48544921875012,76.13715820312495],[142.66953125000012,75.86342773437497],[143.68583984375002,75.86367187500002],[145.35996093750006,75.53046874999998],[144.01972656250004,75.04467773437506],[143.1703125,75.11689453125001],[142.72949218749997,75.33764648437506],[142.941796875,75.71328125000002],[142.30791015625007,75.69169921875005],[142.19882812500006,75.39267578124998],[143.12792968749997,74.9703125],[142.47275390625006,74.82041015625],[141.98730468750003,74.99125976562499],[140.26787109375002,74.846923828125],[139.68125,74.96406249999995],[139.09912109374997,74.65654296875002],[138.09228515625003,74.79746093750003],[136.94765625000005,75.32553710937498],[137.28974609375004,75.34863281249997],[137.26884765625002,75.7494140625],[137.70654296875003,75.75957031250002],[137.56054687499997,75.95522460937502],[138.20761718750006,76.11494140624995],[138.91953125000006,76.19672851562501],[140.04873046875,75.82895507812503]]],[[[96.5324218750001,76.278125],[96.30058593750002,76.121728515625],[95.31113281250006,76.21474609375002],[95.37988281250003,76.2890625],[96.5324218750001,76.278125]]],[[[112.47802734375003,76.62089843749999],[112.531640625,76.450048828125],[111.96894531250004,76.62617187500001],[112.47802734375003,76.62089843749999]]],[[[149.15019531250002,76.65991210937506],[148.39863281250004,76.64824218750007],[149.4064453125001,76.78208007812498],[149.15019531250002,76.65991210937506]]],[[[67.7653320312501,76.23759765624999],[61.35595703124997,75.31484375000002],[60.27685546875003,75.00756835937503],[60.501367187499994,74.90463867187503],[59.67402343750004,74.61015624999999],[59.24013671875005,74.69296874999998],[59.040429687499994,74.48554687500001],[58.53466796875003,74.49892578124997],[58.6178710937501,74.22739257812498],[57.76738281250002,74.013818359375],[57.755957031250006,73.769189453125],[57.313085937500006,73.838037109375],[57.54257812500006,73.65820312500003],[56.96386718750003,73.36655273437503],[56.43037109375004,73.29721679687503],[55.00683593750003,73.45385742187506],[54.29990234375006,73.35097656249997],[53.7628906250001,73.76616210937499],[54.64267578125006,73.95957031250006],[55.34091796875006,74.41962890624998],[56.13710937500005,74.49609375000003],[55.5822265625001,74.627685546875],[56.4987304687501,74.95708007812505],[55.81005859374997,75.12490234374997],[56.03554687499999,75.19423828124997],[56.57031250000003,75.09775390625003],[56.8444335937501,75.351416015625],[57.606835937499994,75.34125976562498],[58.05830078125004,75.6630859375],[58.88125,75.85478515625007],[60.27929687499997,76.09624023437505],[60.94218750000002,76.07128906250003],[61.20166015624997,76.28203125000007],[62.97148437500002,76.23666992187498],[64.4634765625,76.37817382812503],[67.65185546874997,77.011572265625],[68.48574218750005,76.93369140625003],[68.94169921875002,76.707666015625],[67.7653320312501,76.23759765624999]]],[[[96.28544921875002,77.02666015625007],[95.27031250000007,77.01884765624999],[96.52841796875006,77.20551757812501],[96.28544921875002,77.02666015625007]]],[[[89.51425781250006,77.18881835937498],[89.14169921875012,77.22680664062497],[89.61621093749997,77.31103515625],[89.51425781250006,77.18881835937498]]],[[[130.68730468750007,42.30253906249999],[130.52695312500012,42.535400390625],[130.42480468749997,42.72705078124997],[131.06855468750004,42.90224609375005],[131.25732421875003,43.378076171874994],[131.2552734375,44.07158203124999],[130.9816406250001,44.844335937500034],[131.44687500000012,44.984033203124966],[131.85185546875002,45.32685546875001],[132.93603515624997,45.029931640624994],[133.1134765625001,45.130712890625006],[133.18603515625003,45.49482421875004],[133.43642578125,45.60468750000004],[133.86132812500003,46.24775390625004],[134.1676757812501,47.30219726562501],[134.75234375,47.71542968749998],[134.56601562500006,48.02250976562502],[134.66523437500004,48.25390625],[134.29335937500005,48.37343750000002],[133.46835937500006,48.09716796875003],[133.14404296875003,48.10566406249998],[132.7072265625001,47.94726562500006],[132.47626953125004,47.714990234374994],[130.96191406249997,47.70932617187498],[130.7326171875001,48.01923828124998],[130.80429687500012,48.34150390624998],[130.5521484375,48.602490234374955],[130.553125,48.861181640625006],[130.1959960937501,48.89165039062499],[129.49814453125012,49.38881835937502],[129.0651367187501,49.374658203124966],[128.70400390625,49.60014648437499],[127.99960937500006,49.56860351562506],[127.55078124999997,49.801806640625045],[127.590234375,50.20898437500003],[127.33720703125007,50.35014648437502],[127.30703125000005,50.70795898437501],[126.92480468749997,51.10014648437496],[126.34169921875,52.36201171875001],[125.64902343750012,53.042285156250045],[125.075,53.20366210937496],[124.81230468750002,53.133837890625045],[123.6078125,53.546533203124994],[120.98544921875012,53.28457031250002],[120.09453125000007,52.787207031250034],[120.0675781250001,52.632910156250034],[120.65615234375,52.56665039062503],[120.74980468750007,52.096533203125006],[120.06689453125003,51.60068359375006],[119.16367187500006,50.40600585937503],[119.34628906250012,50.278955078124994],[119.25986328125012,50.06640625000003],[118.4515625,49.84448242187503],[117.8734375,49.51347656250002],[116.6833007812501,49.82377929687499],[116.551171875,49.92031250000002],[116.35117187500012,49.97807617187499],[116.21679687500003,50.00927734375003],[116.13457031250002,50.01079101562499],[115.9259765625001,49.95214843750003],[115.79521484375002,49.90590820312502],[115.71777343750003,49.88061523437503],[115.58798828125006,49.88603515624996],[115.42919921874997,49.89648437499997],[115.36503906250002,49.911767578124966],[115.27451171875006,49.948876953124994],[115.00332031250005,50.138574218749994],[114.74316406249997,50.23369140625002],[114.29707031250004,50.27441406250006],[113.57421874999997,50.00703125000001],[113.44550781250004,49.94160156250001],[113.31904296875004,49.87431640624999],[113.16416015625012,49.79716796874999],[113.09208984375007,49.692529296874994],[113.05556640625,49.61625976562499],[112.91484375000002,49.569238281249994],[112.80644531250007,49.52358398437502],[112.69736328125012,49.50727539062498],[112.49492187500002,49.532324218750034],[112.07968750000006,49.42421875000002],[111.42929687500006,49.342626953125034],[111.3366210937501,49.355859374999966],[111.20419921875012,49.304296875000034],[110.82792968750002,49.16616210937505],[110.70976562500002,49.14296875000002],[110.42783203125006,49.219970703125],[110.32138671875012,49.215869140625045],[110.19990234375004,49.17041015625003],[109.5287109375,49.269873046875034],[109.45371093750012,49.29633789062501],[109.23671875000005,49.334912109374955],[108.61367187500005,49.32280273437499],[108.52246093750003,49.34150390624998],[108.4069335937501,49.39638671875005],[107.96542968750012,49.65351562500004],[107.91660156250012,49.947802734375045],[107.63095703125012,49.98310546875004],[107.3470703125,49.986669921875034],[107.23330078125,49.989404296874994],[107.14306640625003,50.03300781249999],[107.04023437500004,50.086474609375045],[106.94130859375005,50.19667968750002],[106.71113281250004,50.312597656250006],[106.57441406250004,50.32880859375004],[106.36845703125002,50.317578124999955],[106.21787109375006,50.304589843749966],[105.38359375000002,50.47373046874998],[104.07871093750012,50.15424804687498],[103.63291015625006,50.138574218749994],[103.49628906250004,50.16494140625005],[103.42119140625002,50.18706054687502],[103.3043945312501,50.200292968750034],[102.28837890625007,50.58510742187502],[102.31660156250004,50.71845703125001],[102.21503906250004,50.82944335937506],[102.19453125000004,51.05068359375002],[102.15195312500006,51.107519531250034],[102.14238281250007,51.21606445312503],[102.16005859375005,51.260839843750006],[102.1556640625,51.31376953124996],[102.1115234375001,51.353466796874955],[101.97919921875004,51.382226562499966],[101.82119140625,51.421044921874966],[101.57089843750006,51.46718750000005],[101.38125,51.45263671875],[100.53623046875006,51.713476562500034],[100.46894531250004,51.72607421875003],[100.23037109375,51.729833984375006],[100.0345703125,51.73710937499996],[99.92167968750002,51.755517578124994],[99.71923828124997,51.87163085937502],[98.89316406250006,52.11728515625006],[98.64052734375005,51.80117187500005],[98.103125,51.483544921874994],[97.82529296875012,50.985253906249994],[97.953125,50.85517578124998],[98.02978515625003,50.64462890624998],[98.07890625000002,50.60380859375002],[98.14501953124997,50.56855468750001],[98.22050781250007,50.55717773437502],[98.2794921875001,50.53325195312502],[98.25029296875002,50.30244140624998],[98.00390625000003,50.01425781249998],[97.35976562500005,49.741455078125],[97.20859375000006,49.73081054687506],[96.98574218750005,49.88281250000003],[96.31503906250012,49.90112304687503],[96.06552734375006,49.99873046875001],[95.52265625000004,49.911230468750034],[95.11142578125012,49.935449218749994],[94.93027343750006,50.04375],[94.8112304687501,50.04819335937506],[94.71806640625002,50.04326171875002],[94.67548828125004,50.02807617187506],[94.61474609375003,50.02373046874996],[94.56464843750004,50.08793945312499],[94.35468750000004,50.221826171874994],[94.25107421875006,50.55639648437503],[93.103125,50.60390625000002],[92.94130859375005,50.77822265625002],[92.85644531250003,50.78911132812502],[92.77929687500003,50.778662109375006],[92.738671875,50.71093749999997],[92.68134765625004,50.683203125],[92.6266601562501,50.68828124999999],[92.57890625000002,50.725439453125006],[92.42636718750006,50.803076171875006],[92.35478515625002,50.86416015625002],[92.29580078125,50.84980468750004],[92.19238281249997,50.700585937499994],[91.80429687500006,50.693603515625],[91.4464843750001,50.52216796874998],[91.41503906249997,50.46801757812506],[91.34082031249997,50.470068359375034],[91.30058593750002,50.46337890625],[91.2337890625,50.45239257812497],[91.02158203125012,50.41547851562501],[90.83808593750004,50.32373046874997],[90.76074218749997,50.30595703124999],[90.71435546874997,50.25942382812502],[90.65507812500007,50.22236328125001],[90.05371093750003,50.09375],[89.64384765625002,49.90302734374998],[89.65410156250007,49.71748046875001],[89.57919921875006,49.69970703125003],[89.475,49.66054687500005],[89.39560546875006,49.61152343750001],[89.24394531250007,49.62705078125006],[89.20292968750007,49.59570312499997],[89.17998046875002,49.5322265625],[89.10947265625012,49.50136718750002],[89.00839843750006,49.472802734374994],[88.97060546875,49.483740234375006],[88.94541015625012,49.50766601562498],[88.90019531250002,49.53969726562502],[88.86386718750006,49.52763671874996],[88.83164062500012,49.44843749999998],[88.633203125,49.486132812500045],[88.19257812500004,49.451708984375045],[88.13554687500002,49.38149414062502],[88.11572265624997,49.25629882812501],[88.0285156250001,49.219775390625045],[87.98808593750002,49.186914062499994],[87.9347656250001,49.16455078124997],[87.81425781250002,49.162304687499955],[87.7625,49.16582031249996],[87.5158203125001,49.122412109375006],[87.41669921875004,49.07661132812501],[87.32285156250012,49.085791015625006],[86.62646484374997,49.56269531250001],[86.67548828125004,49.77729492187501],[86.1808593750001,49.49931640624996],[85.2326171875001,49.61582031249998],[84.9894531250001,50.061425781249994],[84.32324218749997,50.239160156249966],[83.94511718750007,50.774658203125],[83.35732421875005,50.99458007812504],[82.76083984375012,50.89335937500002],[82.49394531250007,50.72758789062499],[81.46591796875006,50.73984375],[81.38828125000006,50.95649414062501],[81.0714843750001,50.96875],[81.12724609375002,51.19106445312502],[80.73525390625,51.29340820312498],[80.44804687500002,51.18334960937503],[80.42363281250002,50.94628906249997],[79.98623046875,50.774560546874966],[77.85996093750006,53.269189453124994],[76.48476562500005,54.02255859374998],[76.42167968750007,54.151513671874966],[76.65458984375007,54.14526367187503],[76.8373046875,54.4423828125],[75.43720703125004,54.08964843749999],[75.22021484374997,53.89379882812506],[74.45195312500007,53.64726562500002],[74.35156250000003,53.487646484375006],[73.85898437500006,53.61972656249998],[73.40693359375004,53.44755859374999],[73.30566406250003,53.707226562499955],[73.71240234375003,54.04238281250002],[73.22988281250005,53.957812500000045],[72.62226562500004,54.13432617187502],[72.44677734375003,53.94184570312498],[72.18603515625003,54.32563476562501],[72.00449218750006,54.20566406249998],[71.09316406250005,54.21220703124999],[71.18554687500003,54.59931640624998],[70.73808593750007,55.30517578125],[70.18242187500002,55.162451171875034],[68.9772460937501,55.389599609374955],[68.20625,55.16093750000002],[68.15585937500006,54.97670898437505],[65.476953125,54.62329101562497],[65.08837890624997,54.340185546875034],[64.46123046875002,54.38417968750002],[61.92871093750003,53.94648437500004],[61.231054687500006,54.01948242187498],[60.97949218749997,53.62172851562505],[61.53496093750002,53.52329101562506],[61.22890625,53.445898437500006],[61.19921874999997,53.28715820312502],[61.65986328125004,53.22846679687504],[62.08271484375004,53.00541992187499],[61.047460937500006,52.97246093750002],[60.77441406249997,52.67578124999997],[60.99453125000005,52.33686523437504],[60.03027343749997,51.93325195312505],[60.464746093749994,51.651171875000045],[61.55468750000003,51.32460937500005],[61.38945312500002,50.86103515625001],[60.94228515625005,50.69550781250004],[60.42480468749997,50.67915039062498],[60.05859374999997,50.850292968749955],[59.812402343749994,50.58203125],[59.523046875,50.492871093749955],[59.4523437500001,50.62041015625002],[58.88369140625005,50.694433593750006],[58.359179687500074,51.063818359375034],[57.83886718750003,51.091650390625006],[57.44218750000002,50.88886718749998],[57.01171874999997,51.06518554687503],[56.49140625000004,51.01953124999997],[55.68623046875004,50.582861328125006],[54.64160156250003,51.011572265625034],[54.555273437500006,50.535791015624994],[54.139746093750006,51.04077148437503],[53.33808593750004,51.48237304687504],[52.57119140625005,51.481640624999955],[52.21914062499999,51.709375],[51.344531250000074,51.47534179687503],[51.16347656250005,51.6474609375],[50.79394531249997,51.729199218749955],[50.246875,51.28950195312498],[49.49804687500003,51.08359375000006],[49.32343750000004,50.851708984374966],[48.625097656250006,50.61269531250005],[48.7589843750001,49.92832031250006],[48.33496093750003,49.858251953125006],[47.7057617187501,50.37797851562502],[47.42919921874997,50.35795898437502],[46.889550781249994,49.69697265625001],[46.80205078125002,49.36708984375002],[47.031347656250006,49.150292968749994],[46.70263671875003,48.80556640625002],[46.660937500000074,48.41225585937502],[47.06464843750004,48.23247070312499],[47.292382812499994,47.74091796875004],[47.48193359374997,47.80390624999998],[48.16699218750003,47.70878906249996],[48.959375,46.77460937499998],[48.558398437500074,46.75712890624999],[48.54121093750004,46.60561523437502],[49.232226562500074,46.33715820312503],[48.683691406250006,46.08618164062497],[48.72958984375006,45.896826171875034],[48.4870117187501,45.93486328124996],[47.63330078124997,45.58403320312499],[47.46328125,45.67968750000003],[47.5294921875001,45.530224609374955],[47.3512695312501,45.21772460937498],[46.7072265625001,44.503320312499994],[47.30703125000005,44.103125],[47.462792968749994,43.55502929687498],[47.64648437500003,43.88461914062498],[47.463183593750074,43.03505859375002],[48.572851562500006,41.84448242187503],[47.79101562499997,41.19926757812502],[47.31767578125002,41.28242187500001],[46.74931640625002,41.812597656250006],[46.42988281250004,41.890966796875006],[46.21269531250002,41.989892578124994],[45.63857421875005,42.20507812500003],[45.63427734374997,42.234716796875034],[45.72753906249997,42.47504882812498],[45.70527343750004,42.49809570312496],[45.56289062499999,42.53574218749998],[45.34375,42.52978515625003],[45.16025390625006,42.675],[45.07158203125002,42.69414062500002],[44.94335937499997,42.73027343750002],[44.870996093749994,42.75639648437499],[44.850488281249994,42.746826171875],[44.77109375000006,42.61679687499998],[44.69179687499999,42.709619140624966],[44.64433593750002,42.734716796875034],[44.50585937500003,42.748632812500006],[44.329492187499994,42.703515624999966],[44.10273437500004,42.616357421874994],[44.004687500000074,42.59560546875002],[43.95742187500005,42.56655273437505],[43.825976562500074,42.571533203125],[43.759863281250006,42.593847656250006],[43.738378906250006,42.61699218750002],[43.74990234375005,42.65751953125002],[43.79541015624997,42.702978515625034],[43.78261718750005,42.747021484374955],[43.62304687500003,42.80771484374998],[43.5578125000001,42.844482421875],[43.089160156250074,42.9890625],[43.00019531250004,43.04965820312506],[42.991601562499994,43.09150390624998],[42.76064453125005,43.169580078124966],[41.58056640624997,43.21923828124997],[41.460742187500074,43.276318359374955],[41.35820312500002,43.33339843750005],[41.08310546875006,43.37446289062498],[40.94199218750006,43.41806640624998],[40.801660156249994,43.479931640624955],[40.64804687500006,43.53388671875004],[40.084570312500006,43.553125],[40.02373046875002,43.48486328125],[39.873632812500006,43.47280273437502],[38.71728515624997,44.28808593750003],[38.18125,44.41967773437503],[37.851464843749994,44.698828125000034],[37.49511718750003,44.69526367187504],[37.20478515625004,44.97197265624999],[36.62763671875004,45.15131835937504],[36.941210937500074,45.289697265624994],[36.72041015625004,45.371875],[36.8659179687501,45.42705078124999],[37.21357421875004,45.272314453125006],[37.6471679687501,45.37719726562506],[37.61240234375006,45.56469726562506],[37.93310546875003,46.001708984375],[38.014257812500006,46.047753906249966],[38.07958984375003,45.93481445312506],[38.18359374999997,46.09482421875006],[38.49228515625006,46.09052734374998],[37.913867187500074,46.40649414062503],[37.766503906249994,46.63613281250002],[38.50097656249997,46.663671875000034],[38.43867187500004,46.813085937500006],[39.29345703125003,47.105761718750045],[39.19570312499999,47.268847656250045],[39.023730468750074,47.27221679687503],[38.928320312500006,47.175683593749994],[38.55244140625004,47.15034179687498],[38.7619140625001,47.261621093749994],[38.21435546875003,47.091455078124966],[38.36884765625004,47.609960937500006],[38.90029296875005,47.85512695312502],[39.77871093750005,47.88754882812506],[39.95791015625005,48.268896484375034],[39.8356445312501,48.54277343749996],[39.6447265625001,48.591210937499966],[39.792871093749994,48.807714843750034],[40.00361328125004,48.82207031250002],[39.68652343749997,49.007910156250034],[40.10878906250005,49.251562500000034],[40.080664062500006,49.576855468749955],[39.780566406250074,49.57202148437503],[39.17480468750003,49.85595703124997],[38.91835937499999,49.82470703125],[38.258593750000074,50.05234375],[38.046875,49.92001953125006],[37.42285156249997,50.411474609375006],[36.619433593750074,50.209228515625],[36.1164062500001,50.408544921875006],[35.59111328125002,50.36875],[35.31191406250005,51.043896484374955],[35.0640625,51.203417968750045],[34.21386718750003,51.25537109375006],[34.12109375000003,51.67915039062498],[34.397851562499994,51.780419921874994],[33.735253906249994,52.344775390625045],[32.435449218749994,52.307226562500034],[32.12226562500004,52.05058593749996],[31.763378906250097,52.10107421875003],[31.758593750000017,52.125830078125034],[31.690625,52.22065429687498],[31.64990234374997,52.26220703125],[31.60156250000003,52.284814453124994],[31.57734375000004,52.31230468749999],[31.585546875,52.532470703125],[31.56484375,52.75922851562501],[31.53515624999997,52.798242187499966],[31.442773437499994,52.86181640625003],[31.35302734374997,52.93344726562498],[31.295117187500097,52.98979492187499],[31.25878906249997,53.01669921875006],[31.364550781250017,53.13896484375002],[31.388378906250097,53.18481445312503],[31.41787109375005,53.196044921875],[31.849707031250006,53.106201171875],[32.14199218750005,53.091162109375034],[32.46933593750006,53.270312500000045],[32.578027343749994,53.312402343749994],[32.644433593749994,53.32890624999999],[32.70429687500004,53.33632812499999],[32.45097656250002,53.6533203125],[32.20039062500004,53.78125],[31.99218750000003,53.796875],[31.82080078124997,53.79194335937498],[31.754199218750017,53.81044921875002],[31.825292968750006,53.93500976562501],[31.837792968749994,54.00078124999999],[31.825976562500074,54.030712890624955],[31.79199218749997,54.05590820312503],[31.62841796874997,54.111181640625006],[31.403613281250017,54.195947265624966],[31.299121093750017,54.29169921875001],[31.184765625000097,54.452978515625006],[31.074804687500063,54.491796875],[31.154882812500063,54.610937500000034],[31.152148437500017,54.625341796875034],[31.12128906250004,54.64848632812496],[30.984179687500074,54.695898437500034],[30.79882812499997,54.78325195312499],[30.79101562499997,54.806005859375006],[30.804492187500074,54.8609375],[30.829882812500017,54.91499023437498],[30.977734375000097,55.05048828124998],[30.977734375000097,55.08779296875002],[30.958886718749994,55.13759765625005],[30.87744140625003,55.223437500000045],[30.81445312499997,55.27871093750002],[30.81054687499997,55.306982421875006],[30.82099609375004,55.330273437499955],[30.900585937500097,55.397412109374955],[30.906835937500063,55.57001953125004],[30.625585937500006,55.666259765625],[30.23359375000004,55.84521484375006],[30.04267578125004,55.83642578125003],[29.93701171874997,55.84526367187499],[29.881640625000074,55.83232421875002],[29.82392578125004,55.79511718749998],[29.74414062499997,55.770410156249994],[29.630078125000097,55.75117187499998],[29.482226562500074,55.6845703125],[29.412988281249994,55.72485351562506],[29.35341796875005,55.784375],[29.375,55.938720703125],[28.284277343750006,56.055908203125],[28.14794921875003,56.142919921875034],[28.202050781250023,56.260400390624994],[28.191699218750045,56.31557617187505],[28.169238281250017,56.386865234374994],[28.11083984375,56.51069335937501],[28.103125,56.545703125000045],[27.89208984375003,56.741064453125034],[27.88154296875001,56.82416992187501],[27.848632812500057,56.85341796875002],[27.806054687499994,56.86708984375005],[27.639453125000074,56.84565429687504],[27.83027343750004,57.19448242187505],[27.83828125000008,57.247705078124966],[27.82861328124997,57.293310546875006],[27.796875,57.316943359375045],[27.538671875000063,57.429785156250034],[27.51113281250005,57.508154296875006],[27.469726562500057,57.524023437500034],[27.35195312500005,57.528125],[27.4,57.66679687499999],[27.542089843750063,57.799414062500006],[27.778515625000068,57.87070312500006],[27.502441406250057,58.221337890624994],[27.434179687500006,58.787255859374994],[28.15107421875004,59.374414062499966],[28.0125,59.484277343749966],[28.05800781250008,59.781542968750045],[28.334570312500034,59.69252929687502],[28.518164062500034,59.849560546874955],[28.947265625000057,59.828759765624994],[29.147265625000045,59.999755859375],[30.12255859374997,59.873583984375074],[30.172656250000017,59.957128906250034],[29.72119140624997,60.19531249999997],[29.069140625000017,60.19145507812499],[28.643164062500006,60.375292968750045],[28.512792968750006,60.67729492187502],[27.797656250000074,60.53613281250003],[29.69013671875004,61.54609375000001],[31.18671875000004,62.48139648437504],[31.533984375000017,62.885400390624994],[31.180859375000097,63.208300781250074],[29.991503906250074,63.73515625000002],[30.50390625000003,64.02060546875],[30.513769531250006,64.2],[30.04189453125005,64.44335937499997],[30.072851562500063,64.76503906250005],[29.60419921875004,64.968408203125],[29.826953125000017,65.14506835937502],[29.608007812500006,65.248681640625],[29.715917968750063,65.62456054687502],[30.102734375000097,65.72626953125004],[29.066210937500045,66.89174804687497],[29.988085937500017,67.66826171874999],[29.343847656250006,68.06186523437506],[28.685156250000034,68.189794921875],[28.470703125000057,68.48837890625],[28.77285156250005,68.84003906249995],[28.414062500000057,68.90415039062506],[28.96582031250003,69.02197265625],[29.38828125,69.29814453125005],[30.08730468750005,69.43286132812503],[30.18017578124997,69.63583984375],[30.860742187499994,69.53842773437503],[30.869726562500006,69.78344726562506],[31.546972656250063,69.696923828125],[31.997949218749994,69.80991210937503],[31.98457031250004,69.95366210937499],[33.00781249999997,69.72211914062498],[32.91503906249997,69.60170898437497],[32.17675781250003,69.67402343749995],[32.37773437500002,69.47910156250003],[32.99980468750002,69.4701171875],[32.97890625000005,69.367333984375],[33.45429687500004,69.42817382812495],[33.14121093750006,69.068701171875],[33.684375,69.31025390625001],[35.85791015625003,69.19174804687503],[37.73056640625006,68.69213867187503],[38.43017578125003,68.35561523437505],[39.568945312500006,68.07172851562501],[39.82333984375006,68.05859375],[39.80927734375004,68.15083007812498],[40.38066406250002,67.831884765625],[40.96640625000006,67.71347656250003],[41.358789062499994,67.20966796874998],[41.18896484375003,66.82617187500003],[40.10332031250002,66.29995117187502],[38.65390625000006,66.06904296874995],[35.51347656250002,66.39580078125002],[34.82460937499999,66.61113281249999],[34.48261718750004,66.55034179687505],[34.4515625,66.651220703125],[33.15019531250002,66.84394531250001],[32.93046875000002,67.08681640625002],[31.895312500000074,67.16142578125002],[33.65595703125004,66.44262695312506],[33.36054687500004,66.32954101562501],[34.112695312499994,66.225244140625],[34.69179687500005,65.95185546874998],[34.77695312500006,65.76826171874998],[34.40644531250004,65.39575195312503],[35.03535156250004,64.44023437500005],[35.802050781250074,64.3353515625],[36.3649414062501,64.00283203125002],[37.44218750000002,63.813378906249966],[37.9679687500001,63.949121093749994],[38.0622070312501,64.09101562499995],[37.953710937500006,64.32011718749999],[37.183691406250006,64.40849609375007],[36.6242187500001,64.75053710937502],[36.534570312499994,64.93862304687497],[36.88281249999997,65.17236328124997],[39.7580078125001,64.57705078125002],[40.05781250000004,64.77075195312497],[40.44492187500006,64.7787109375],[39.7980468750001,65.349853515625],[39.816503906250006,65.59794921874999],[41.4757812500001,66.12343750000002],[42.21054687500006,66.51967773437502],[43.23320312500002,66.41552734375003],[43.653125,66.2509765625],[43.54189453125005,66.12338867187503],[43.84375,66.14238281249999],[44.10439453125005,66.00859374999999],[44.42929687500006,66.93774414062503],[43.7824218750001,67.25449218749998],[44.20468750000006,68.25375976562498],[43.33320312500004,68.67338867187502],[44.04804687500004,68.54882812499997],[45.891992187499994,68.47968750000001],[46.69042968750003,67.84882812500001],[45.52871093750005,67.75756835937497],[44.90214843750002,67.41313476562505],[45.56220703125004,67.18559570312507],[45.88535156250006,66.89106445312501],[46.4923828125001,66.80019531249997],[47.65585937500006,66.97592773437498],[47.87470703125004,67.58417968749998],[48.83320312500004,67.681494140625],[48.75429687500005,67.89594726562501],[49.15527343750003,67.87041015625005],[51.994726562500006,68.53876953124995],[52.3966796875001,68.35170898437505],[52.72265624999997,68.484033203125],[52.34404296875002,68.60815429687497],[53.80195312500004,68.99589843750002],[54.49121093750003,68.992333984375],[53.797656250000074,68.90747070312503],[53.9308593750001,68.43554687499997],[53.260546875000074,68.26748046875002],[54.476171875,68.29414062499995],[54.86132812500003,68.20185546874998],[55.418066406250006,68.56782226562501],[56.04365234375004,68.64887695312501],[57.126855468749994,68.55400390625005],[58.17304687500004,68.88974609375006],[59.0573242187501,69.00605468750004],[59.37050781250005,68.73837890625003],[59.09902343750005,68.4443359375],[59.725683593750006,68.35161132812502],[59.89599609374997,68.70634765624999],[60.489160156249994,68.72895507812498],[60.93359374999997,68.98676757812501],[60.17060546875004,69.59091796875],[60.90908203125005,69.84711914062495],[64.19042968750003,69.53466796875],[64.89628906250002,69.247802734375],[67.00244140625003,68.87358398437505],[68.37119140625006,68.31425781250005],[69.14052734375005,68.95063476562501],[68.54277343750002,68.96708984374999],[68.00585937499997,69.48002929687505],[67.62412109375,69.58442382812501],[67.06445312500003,69.69370117187498],[66.89667968750004,69.55380859374998],[67.28476562500006,70.73872070312498],[67.14335937500002,70.83754882812502],[66.70224609375006,70.81850585937497],[66.63964843749997,71.08139648437498],[68.2692382812501,71.68281250000001],[69.61181640625003,72.98193359375],[69.73828124999997,72.88496093749998],[71.5001953125001,72.91367187500003],[72.812109375,72.69140624999997],[72.57412109375,72.01254882812506],[71.86728515625,71.457373046875],[72.70449218750005,70.96323242187498],[72.5767578125,68.96870117187498],[73.59169921875005,68.48188476562501],[73.13945312500002,68.18134765624998],[73.06679687500005,67.766943359375],[71.84746093750002,67.00761718750005],[71.36523437500003,66.96152343749998],[71.53955078125003,66.68310546875],[70.72490234375007,66.51943359374997],[70.38281249999997,66.60249023437501],[70.69072265625002,66.74531249999998],[70.2833984375001,66.68579101562503],[69.8771484375001,66.84545898437506],[69.21777343749997,66.82861328125],[69.01347656250002,66.78833007812503],[69.19433593749997,66.57866210937505],[70.33945312500006,66.34238281250006],[71.35800781250006,66.35942382812505],[71.91699218749997,66.24672851562502],[72.32158203125002,66.33212890625],[72.4173828125,66.56079101562506],[73.79208984375,66.99531250000001],[74.07451171875007,67.41411132812499],[74.76953124999997,67.76635742187497],[74.39140625000007,68.42060546874995],[74.57958984375003,68.751220703125],[76.10751953125006,68.975732421875],[76.45917968750004,68.97827148437497],[77.2384765625001,68.46958007812498],[77.17441406250012,67.77851562499998],[77.77158203125006,67.57026367187501],[78.92246093750006,67.58911132812503],[77.58828125000005,67.75190429687498],[77.66484375000002,68.19038085937495],[77.99511718749997,68.25947265624998],[77.65068359375007,68.90302734375001],[76.00097656249997,69.23505859374998],[75.42001953125,69.23862304687498],[74.81484375,69.09057617187503],[73.83603515625006,69.143212890625],[73.578125,69.80297851562503],[74.34335937500006,70.57871093749998],[73.08623046875007,71.44492187500006],[73.67177734375,71.84506835937503],[74.99218749999997,72.14482421874999],[74.78681640625004,72.811865234375],[75.15244140625,72.85273437499998],[75.74140625000004,72.29624023437503],[75.273828125,71.95893554687495],[75.33203125000003,71.34174804687498],[76.92900390625002,71.12788085937504],[77.58964843750007,71.16791992187501],[78.32060546875002,70.93041992187503],[78.94218750000002,70.93378906250001],[79.08388671875,71.00200195312505],[78.58769531250007,70.993896484375],[78.21259765625004,71.26630859374998],[76.43339843750002,71.55249023437503],[76.03242187500004,71.91040039062503],[76.87138671875002,72.03300781250005],[77.77753906250004,71.83642578125006],[78.23242187500003,71.95229492187502],[78.01640625000007,72.092041015625],[77.49287109375004,72.07172851562504],[77.47158203125,72.19213867187506],[78.22539062500007,72.37744140625006],[79.4220703125001,72.38076171875002],[80.7625,72.08916015625002],[81.66162109374997,71.71596679687502],[82.75781250000003,71.76411132812498],[83.23359375000004,71.66816406249995],[82.32285156250006,71.26000976562503],[82.16318359375012,70.59814453125003],[82.22119140625003,70.39570312499998],[82.86914062499997,70.95483398437503],[83.03017578125,70.58051757812498],[82.6823242187501,70.21772460937498],[83.0807617187501,70.09301757812497],[83.07382812500012,70.276708984375],[83.73593750000006,70.54648437499998],[83.15126953125005,71.10361328124998],[83.534375,71.68393554687498],[83.20029296875012,71.87470703125004],[82.64541015625005,71.92524414062504],[82.09365234375,72.26542968750005],[80.82705078125005,72.48828124999997],[80.84160156250007,72.94916992187498],[80.4245117187501,73.23115234374998],[80.5832031250001,73.56845703125003],[85.20058593750005,73.72153320312506],[86.89296875,73.88710937500002],[85.79257812500012,73.438330078125],[86.67705078125002,73.10678710937503],[85.93896484374997,73.45649414062495],[87.12011718750003,73.61503906250002],[87.57119140625,73.81074218750001],[86.57109375000007,74.24375],[86.0013671875,74.316015625],[86.39580078125007,74.45009765624997],[86.89794921874997,74.32534179687497],[87.22968750000004,74.3638671875],[85.79101562499997,74.6451171875],[86.20126953125006,74.81621093750005],[86.65146484375012,74.68242187500005],[87.04179687500007,74.77885742187499],[87.46757812500002,75.01323242187505],[86.93906250000006,75.06811523437503],[87.00595703125012,75.16982421874997],[87.67138671874997,75.12958984375004],[90.18496093750005,75.59106445312497],[94.07519531249997,75.91289062499999],[92.89042968750002,75.90996093750002],[93.25927734375003,76.09877929687502],[95.57871093750012,76.13730468749998],[96.07548828125007,76.08198242187498],[95.65332031250003,75.89218750000003],[96.50859375000002,76.00556640624995],[96.49707031249997,75.89121093750003],[98.66201171875005,76.24267578125003],[99.77041015625,76.02875976562498],[99.5407226562501,75.79858398437497],[99.85136718750007,75.93027343749998],[99.8253906250001,76.13593749999995],[98.80566406250003,76.48066406250004],[100.84375,76.52519531250005],[101.59775390625006,76.43920898437503],[100.92802734375002,76.55673828124998],[100.98994140625004,76.99047851562497],[102.61015625000007,77.508544921875],[104.01455078125,77.73041992187501],[106.05957031249997,77.39052734375002],[104.20244140625002,77.101806640625],[106.9416015625001,77.034375],[107.42978515625006,76.92656250000002],[106.41357421874997,76.51225585937499],[107.72216796875003,76.52231445312498],[108.18164062500003,76.73784179687502],[111.39248046875,76.686669921875],[112.09394531250004,76.48032226562506],[111.94267578125002,76.38046875000003],[112.61953125,76.38354492187506],[112.65625,76.05356445312498],[113.2726562500001,76.25166015625001],[113.5638671875,75.89165039062502],[113.85722656250007,75.92128906250002],[113.56757812500004,75.56840820312499],[112.45302734375,75.83017578125003],[112.95566406250006,75.571923828125],[113.24296875000007,75.61142578125003],[113.72617187500012,75.45063476562498],[112.92490234375012,75.01503906249997],[109.84033203124997,74.32197265624998],[109.8102539062501,74.16918945312503],[108.19951171875002,73.69409179687497],[107.27109375000006,73.62104492187501],[106.67939453125004,73.3306640625],[106.1886718750001,73.3080078125],[105.14394531250005,72.77705078125001],[105.7082031250001,72.836669921875],[106.47792968750005,73.13940429687503],[107.750390625,73.17314453125007],[109.33105468749997,73.48745117187497],[109.85527343750002,73.47246093750002],[110.86816406249997,73.73071289062497],[109.70673828125004,73.74375],[110.2614257812501,74.01743164062503],[111.05625,73.93935546875002],[111.13085937500003,74.05283203125003],[111.55058593750007,74.02851562499998],[111.22812500000012,73.96855468750002],[111.40039062500003,73.827734375],[112.14726562500007,73.70893554687498],[112.79541015625003,73.74609375],[112.83593750000003,73.96206054687502],[113.03281250000006,73.91386718750007],[113.4162109375001,73.647607421875],[113.15693359375004,73.45957031249998],[113.49091796875004,73.34609375000002],[113.12783203125,72.8306640625],[113.66455078124997,72.63452148437503],[113.2155273437501,72.80585937500001],[113.88623046875003,73.34580078124998],[113.51035156250012,73.50498046874998],[115.33769531250007,73.70258789062501],[118.87089843750007,73.53789062500002],[118.45703124999997,73.46440429687507],[118.43027343750012,73.24653320312501],[119.750390625,72.97910156250006],[122.26015625,72.88056640624995],[122.75195312500003,72.906494140625],[122.61523437499997,73.02792968750006],[123.1603515625001,72.95488281250002],[123.62226562500004,73.19326171875],[123.49111328125005,73.666357421875],[124.54121093750004,73.75126953125007],[125.59853515625005,73.447412109375],[126.25449218750012,73.548193359375],[126.55253906250007,73.33491210937498],[127.03134765625006,73.54746093750003],[127.74033203125012,73.48154296875],[129.10058593750003,73.11235351562502],[128.5990234375,72.895166015625],[129.01728515625004,72.8724609375],[129.250390625,72.70517578125003],[128.41826171875002,72.53515625000003],[129.28134765625006,72.43769531249998],[129.41064453124997,72.16630859375002],[128.93496093750005,72.07949218750002],[127.8034179687501,72.43403320312504],[127.84140625000012,72.308251953125],[128.91142578125002,71.75532226562495],[129.21025390625007,71.91694335937501],[129.46083984375,71.73930664062499],[128.84326171875003,71.6634765625],[129.76191406250004,71.11953125000002],[130.53710937500003,70.89252929687495],[130.75712890625002,70.96235351562498],[131.02158203125006,70.74609374999997],[132.0353515625001,71.24404296875],[132.65390625000006,71.92597656250001],[133.6888671875,71.434228515625],[134.70273437500012,71.38681640625003],[135.55917968750006,71.6103515625],[136.09033203125003,71.61958007812501],[137.9396484375001,71.1333984375],[137.84404296875007,71.22680664062503],[138.31406250000006,71.32553710937498],[137.918359375,71.38408203124999],[138.23417968750007,71.596337890625],[138.78017578125,71.62900390624998],[139.209375,71.44477539062501],[139.98417968750007,71.49150390625005],[139.72294921875002,71.88496093749998],[139.35927734375005,71.95136718750001],[140.18769531250004,72.19130859374997],[139.17636718750006,72.16347656249997],[139.14082031250004,72.32973632812502],[139.60117187500012,72.49609374999997],[141.07929687500004,72.5869140625],[140.80820312500006,72.89096679687503],[142.06142578125005,72.72080078125],[146.25292968749997,72.442236328125],[146.234765625,72.34970703125],[144.77636718749997,72.38227539062495],[144.16923828125002,72.25878906250003],[144.29492187499997,72.19262695312497],[146.83183593750007,72.29541015625003],[146.11328125000003,71.94497070312497],[146.23027343750007,72.1375],[145.75859375000007,72.22587890624999],[145.75673828125005,71.94130859375002],[145.06396484374997,71.92607421875002],[145.18857421875012,71.69580078125],[146.07324218749997,71.80834960937503],[147.26181640625006,72.327880859375],[149.50156250000012,72.16430664062497],[150.01689453125002,71.89565429687505],[149.04873046875005,71.79575195312503],[148.9681640625,71.69047851562499],[150.59980468750004,71.5201171875],[150.09765624999997,71.22656249999997],[150.96777343749997,71.38046874999998],[151.58242187500005,71.28696289062503],[152.09277343749997,71.02329101562503],[151.76201171875002,70.98247070312499],[152.50878906250003,70.83447265625003],[156.68457031250003,71.09375],[158.03701171875005,71.03925781250001],[159.35068359375006,70.79072265625001],[160.00644531250006,70.30966796875006],[159.72939453125005,69.87021484375006],[160.91074218750012,69.60634765625002],[161.03554687500005,69.09819335937507],[161.30986328125007,68.98227539062498],[160.85605468750006,68.53833007812506],[161.565625,68.90517578125],[161.53691406250002,69.379541015625],[162.16601562499997,69.61157226562503],[163.20136718750004,69.71474609375],[166.82031250000003,69.49956054687505],[167.8568359375,69.72822265624998],[168.30302734375002,69.27148437500003],[169.31064453125006,69.07954101562498],[169.60986328124997,68.78603515624997],[170.53759765624997,68.82539062500001],[170.99541015625002,69.04531250000005],[170.58222656250004,69.58334960937506],[170.16093750000007,69.62656249999998],[170.48681640625003,70.107568359375],[173.27744140625006,69.823828125],[173.43867187500004,69.94682617187502],[175.92148437500012,69.89531250000002],[179.27265624999998,69.25966796875002],[180,68.98344726562505],[180,65.06723632812498],[178.51953125000003,64.60297851562498],[177.7486328125,64.71704101562503],[176.88085937499997,65.08193359375002],[176.34101562500015,65.04731445312501],[177.03730468750004,64.99965820312497],[177.22285156250004,64.861669921875],[177.06875,64.78666992187502],[176.06113281250012,64.96088867187498],[174.54882812500009,64.68388671875005],[176.0565429687501,64.90473632812498],[176.35097656250005,64.70512695312502],[176.14091796875007,64.58583984375005],[177.42744140625015,64.76337890624998],[177.43291015625002,64.44448242187502],[177.6875,64.30473632812507],[178.04472656250013,64.21958007812503],[178.22949218749991,64.36440429687497],[178.38144531250018,64.26088867187502],[178.73144531250003,63.667089843750006],[178.44042968750009,63.605566406250006],[178.74404296874994,63.39477539062503],[178.79296874999997,63.54033203125002],[179.38857421875,63.14721679687497],[179.25957031250002,63.00830078125],[179.5705078125001,62.6875],[179.12070312500012,62.32036132812499],[177.292578125,62.59902343750002],[177.33896484375006,62.781347656250034],[177.02353515625012,62.777246093749994],[177.15947265625007,62.56098632812498],[174.51435546875015,61.823632812499966],[173.6234375,61.716064453125],[173.13183593749997,61.40664062500002],[172.85654296875006,61.469189453124955],[172.90800781250002,61.311621093750006],[172.39609375000006,61.16738281250002],[172.39277343750004,61.061767578125],[170.60820312500007,60.434912109375034],[170.3509765625,59.965527343749955],[169.9826171875001,60.067089843749955],[169.2267578125001,60.59594726562497],[168.1375,60.57392578125001],[167.22675781250004,60.406298828125045],[166.27304687500012,59.85625],[166.13603515625007,59.979345703125034],[166.35214843750006,60.48481445312498],[165.08457031250006,60.09858398437498],[164.95371093750006,59.843603515625006],[164.52529296875,60.06127929687503],[164.11328125000003,59.89755859374998],[164.13505859375002,59.984375],[163.74384765625004,60.02802734374998],[163.36484375000012,59.78144531250004],[163.27285156250005,59.302587890625006],[162.14160156249997,58.44741210937502],[161.96005859375012,58.07690429687506],[162.39140625000002,57.717236328124955],[162.65429687499997,57.94824218750003],[163.22578125000004,57.790380859375034],[162.77929687500003,57.35761718749998],[162.79111328125012,56.875390624999966],[162.92207031250004,56.72265625000003],[163.2565429687501,56.68803710937499],[163.33554687500012,56.232519531250006],[163.04736328125003,56.044677734375],[162.84033203125003,56.065625],[162.628125,56.232275390625034],[163.03837890625002,56.521875],[162.67148437500006,56.49008789062498],[162.52822265625005,56.260693359374955],[162.08496093749997,56.08964843750002],[161.72392578125002,55.49614257812499],[162.10556640625006,54.75214843750004],[161.62480468750002,54.51625976562502],[160.77265625000004,54.54135742187498],[160.0744140625001,54.18916015625001],[159.84375,53.78364257812498],[160.02509765625004,53.129589843749955],[159.58593750000003,53.237695312499966],[158.74541015625002,52.90893554687506],[158.47207031250005,53.032373046874966],[158.6087890625,52.873632812500034],[158.49316406249997,52.383154296875034],[158.10351562500003,51.80961914062499],[156.84746093750002,51.006591796875],[156.74775390625004,50.969287109375045],[156.52119140625004,51.38027343750002],[156.36474609374997,52.509375],[156.11035156250003,52.86616210937504],[155.62031250000004,54.86455078125002],[155.5548828125001,55.348486328125034],[155.98251953125012,56.69521484375002],[156.8488281250001,57.290185546874994],[156.97675781250004,57.46630859375],[156.82988281250007,57.77963867187498],[157.4503906250001,57.79926757812498],[157.66640625000005,58.01977539062506],[158.27519531250007,58.00898437499998],[159.21064453125004,58.519433593749966],[159.8473632812501,59.127148437499955],[161.75351562500012,60.15229492187501],[162.06816406250002,60.466406250000034],[163.70996093749997,60.916796875000045],[163.55351562500002,61.02563476562503],[164.00546875000006,61.34379882812499],[163.80439453125004,61.46137695312498],[164.20722656250004,62.29223632812506],[164.59833984375004,62.470556640625034],[165.20810546875012,62.37397460937501],[165.41738281250005,62.447070312500045],[164.418359375,62.704638671875045],[163.33173828125004,62.550927734374994],[163.01767578125006,61.89106445312504],[163.25781249999997,61.69946289062497],[163.08525390625002,61.570556640625],[162.85595703125003,61.705029296874955],[162.39257812500003,61.662109375],[160.76660156249997,60.753320312499966],[160.17363281250002,60.638427734375],[160.37890625000003,61.02548828124998],[159.79042968750005,60.956640625],[160.309375,61.894384765625006],[159.55234375000012,61.71948242187497],[159.18925781250007,61.92939453125001],[158.07011718750002,61.75361328125001],[157.46933593750012,61.798925781250006],[157.0841796875001,61.67568359375002],[155.71611328125002,60.682373046875],[154.97080078125012,60.376660156249955],[154.29306640625006,59.833349609375034],[154.1498046875,59.52851562500001],[154.97128906250006,59.44960937500002],[155.16044921875002,59.19013671875001],[154.45800781250003,59.21655273437497],[154.01093750000004,59.075537109375006],[153.69521484375005,59.22475585937505],[153.36113281250002,59.214794921874955],[152.81787109375003,58.92626953124997],[152.31962890625002,59.03076171875003],[152.08789062499997,58.910449218750045],[151.32675781250006,58.875097656250034],[151.12109375000003,59.08251953125003],[152.26064453125,59.22358398437498],[151.34824218750012,59.561132812500006],[150.4835937500001,59.494384765625],[150.66728515625002,59.55634765625001],[149.64257812499997,59.770410156249994],[149.06523437500002,59.63051757812502],[149.20498046875,59.488183593749966],[148.79707031250004,59.532324218750006],[148.74414062499997,59.37353515624997],[148.96464843750007,59.36914062499997],[148.72666015625006,59.257910156250034],[148.25742187500006,59.414208984374994],[147.51445312500002,59.2685546875],[146.53720703125006,59.45698242187501],[146.0495117187501,59.17055664062502],[145.55458984375,59.413525390624955],[143.19218750000002,59.3701171875],[142.58027343750004,59.240136718749966],[140.79023437500004,58.30346679687503],[140.446875,57.81367187499998],[138.66210937500003,56.96552734375004],[137.69150390625006,56.13935546875004],[135.2625,54.94331054687498],[135.25771484375005,54.73149414062499],[135.85156249999997,54.583935546874955],[136.797265625,54.62099609375005],[136.71884765625006,53.804101562499994],[137.15537109375012,53.82167968750002],[137.14160156249997,54.182226562500006],[137.66601562500003,54.283300781250006],[137.3392578125,54.10053710937498],[137.83476562500002,53.94672851562498],[137.25371093750007,53.546142578125],[137.95048828125007,53.60356445312499],[138.52792968750012,53.959863281249994],[138.56914062500002,53.818798828124955],[138.24970703125004,53.524023437500034],[138.45068359375003,53.53701171875002],[138.69941406250004,53.869726562500034],[138.65722656249997,54.29833984375003],[139.31972656250005,54.19296874999998],[139.707421875,54.27714843749999],[140.68759765625012,53.59643554687503],[141.3737304687501,53.29277343749999],[141.18125,53.01528320312505],[140.83964843750002,53.087890625],[141.25585937499997,52.84013671874996],[141.13242187500006,52.435693359374994],[141.48525390625,52.17851562500002],[141.36689453125004,51.92065429687506],[140.93261718750003,51.61992187499999],[140.5208984375,50.80019531250005],[140.62451171874997,50.08242187500002],[140.46269531250002,49.911474609375006],[140.51718750000012,49.59614257812498],[140.17060546875004,48.52368164062497],[138.58681640625005,47.057226562500006],[138.33691406250003,46.543408203124955],[137.68544921875,45.81835937500003],[136.14228515625004,44.489111328125034],[135.87460937500012,44.37353515625003],[135.1310546875001,43.52573242187506],[134.01044921875004,42.94746093750001],[133.15996093750007,42.69697265624998],[132.70898437500003,42.875830078125006],[132.30380859375006,42.88330078125],[132.30957031249997,43.31352539062499],[131.8666015625,43.09516601562501],[131.93896484374997,43.30195312500004],[131.15830078125012,42.62602539062499],[130.709375,42.656396484374966],[130.8341796875001,42.52294921875006],[130.68730468750007,42.30253906249999]]],[[[107.69550781250004,78.13090820312505],[107.48164062500004,78.057763671875],[106.41552734375003,78.13984375000001],[107.69550781250004,78.13090820312505]]],[[[102.88476562499997,79.25395507812505],[102.4123046875001,78.83544921874997],[103.80078124999997,79.14926757812503],[104.45205078125005,78.880029296875],[105.14599609375003,78.81884765625006],[105.31259765625012,78.49990234375],[104.74179687500012,78.33974609374997],[102.79667968750007,78.18789062500002],[101.20410156249997,78.19194335937505],[99.50029296875002,77.97607421875003],[101.590625,79.350439453125],[102.25126953125002,79.25605468749995],[102.40488281250006,79.43320312499998],[102.88476562499997,79.25395507812505]]],[[[76.24892578125005,79.65107421874995],[77.58896484375012,79.50190429687504],[76.64951171875012,79.493408203125],[76.24892578125005,79.65107421874995]]],[[[92.68349609375005,79.685205078125],[91.37626953125007,79.83549804687505],[91.22929687500007,80.03071289062504],[93.803125,79.904541015625],[92.68349609375005,79.685205078125]]],[[[51.409277343750006,79.94423828125],[50.09140625,79.98056640625003],[50.93632812500002,80.09423828125],[51.409277343750006,79.94423828125]]],[[[59.68886718750005,79.95581054687506],[58.91923828125002,79.98461914062506],[59.54453125000006,80.11884765624995],[59.68886718750005,79.95581054687506]]],[[[97.67451171875004,80.15825195312499],[97.65166015625002,79.76064453125],[98.59648437500002,80.05219726562495],[100.0612304687501,79.77709960937506],[99.68066406250003,79.32333984374998],[99.04179687500007,79.29301757812502],[99.92929687500012,78.96142578124997],[98.41113281250003,78.78779296875004],[95.53105468750007,79.09809570312501],[95.02041015625005,79.05268554687498],[94.21875,79.40234375],[93.07080078124997,79.49531250000001],[94.98730468749997,80.096826171875],[95.28134765625012,80.030517578125],[97.67451171875004,80.15825195312499]]],[[[50.05175781250003,80.07431640625003],[49.55605468750005,80.15893554687503],[49.883691406249994,80.230224609375],[50.05175781250003,80.07431640625003]]],[[[57.07871093750006,80.35092773437498],[56.986914062500006,80.07148437499998],[55.811621093750006,80.08715820312497],[56.02441406250003,80.34130859374997],[57.07871093750006,80.35092773437498]]],[[[53.521386718749994,80.18520507812497],[52.34355468750002,80.213232421875],[52.85390625,80.40239257812499],[53.85166015625006,80.26835937500005],[53.521386718749994,80.18520507812497]]],[[[57.95625,80.12324218749995],[57.33232421875002,80.15810546875005],[57.075,80.49394531249999],[59.25546875000006,80.34321289062501],[58.39794921874997,80.31875],[57.95625,80.12324218749995]]],[[[54.41533203125002,80.47280273437502],[53.811914062499994,80.47622070312502],[53.87724609375002,80.60527343750002],[54.41533203125002,80.47280273437502]]],[[[47.441992187500006,80.853662109375],[48.44570312500005,80.80600585937506],[48.68359375000003,80.63325195312504],[47.7052734375001,80.76518554687499],[46.141406250000074,80.44672851562495],[45.969042968750074,80.56948242187502],[44.9049804687501,80.61127929687501],[47.441992187500006,80.853662109375]]],[[[62.167773437500074,80.83476562500005],[62.07578125000006,80.616943359375],[61.05126953124997,80.418603515625],[60.27832031249997,80.49443359374999],[59.649804687499994,80.43125],[59.59228515625003,80.81650390624998],[62.167773437500074,80.83476562500005]]],[[[50.278125,80.92724609374997],[51.70361328125003,80.68764648437502],[48.81103515625003,80.35371093750001],[48.97753906250003,80.16259765624997],[47.73730468749997,80.08168945312502],[47.89296875000005,80.23925781249997],[46.991015625000074,80.182763671875],[46.644433593749994,80.30034179687507],[47.89580078125002,80.52905273437503],[49.087792968749994,80.515771484375],[49.24433593750004,80.82138671875],[50.278125,80.92724609374997]]],[[[80.02666015625007,80.84814453125003],[79.09853515625005,80.81206054687505],[79.21738281250012,80.96035156249997],[80.27958984375007,80.94980468750003],[80.02666015625007,80.84814453125003]]],[[[61.1408203125001,80.95034179687497],[60.0783203125001,80.99916992187497],[61.45742187499999,81.10395507812501],[61.1408203125001,80.95034179687497]]],[[[54.71894531250004,81.11596679687497],[56.47226562500006,80.99824218749995],[57.58037109375002,80.75546874999998],[55.88339843750006,80.62841796875003],[54.66816406250004,80.73867187500002],[54.04541015624997,80.87197265625],[54.71894531250004,81.11596679687497]]],[[[58.62236328125002,81.04165039062502],[58.930566406249994,80.83168945312497],[58.28564453124997,80.76489257812503],[57.21093749999997,81.01708984374997],[58.04951171875004,81.11845703125002],[58.62236328125002,81.04165039062502]]],[[[63.37382812500002,80.70009765624997],[62.59257812500002,80.85302734375006],[64.80205078125002,81.197265625],[65.43740234375005,80.93071289062507],[63.37382812500002,80.70009765624997]]],[[[91.56718750000007,81.14121093750003],[91.2228515625001,81.063818359375],[89.90117187500002,81.17070312500002],[91.56718750000007,81.14121093750003]]],[[[96.52656250000004,81.0755859375],[97.86992187500007,80.76328125000006],[97.02539062499997,80.53554687500002],[97.29843750000006,80.27275390625005],[93.6546875,80.009619140625],[91.52382812500005,80.35854492187502],[93.2625,80.79125976562497],[92.59257812500007,80.780859375],[92.7103515625,80.87216796875003],[95.1595703125,81.27099609375003],[95.80068359375005,81.28046874999998],[96.52656250000004,81.0755859375]]],[[[57.81025390625004,81.54604492187502],[58.563867187499994,81.41840820312504],[57.858691406250074,81.36806640625],[57.76972656250004,81.16972656249999],[55.71669921875005,81.1884765625],[55.46601562500004,81.31118164062502],[57.81025390625004,81.54604492187502]]],[[[63.65097656250006,81.60932617187501],[62.10644531249997,81.679345703125],[63.709570312500006,81.68730468750002],[63.65097656250006,81.60932617187501]]],[[[58.29541015625003,81.715185546875],[58.13457031250002,81.82797851562498],[59.261816406250006,81.85419921874998],[59.35644531250003,81.75898437499995],[58.29541015625003,81.715185546875]]]]},"properties":{"name":"Russia","childNum":73}},{"geometry":{"type":"Polygon","coordinates":[[[30.50996093750001,-1.067285156250009],[30.47705078125,-1.0830078125],[30.47021484375,-1.131152343750003],[30.508105468750017,-1.208203125000011],[30.631933593750006,-1.367480468750003],[30.710742187500017,-1.396777343750003],[30.76220703125,-1.458691406250011],[30.812597656250006,-1.563085937500006],[30.8765625,-2.143359375],[30.85498046875,-2.265429687500003],[30.828710937500006,-2.338476562500006],[30.7625,-2.371679687500006],[30.71484375,-2.363476562500011],[30.656640625000023,-2.373828125],[30.593359375,-2.396777343750003],[30.553613281250023,-2.400097656250011],[30.408496093750017,-2.31298828125],[30.117285156250006,-2.416601562500006],[29.93017578125,-2.339550781250011],[29.8681640625,-2.71640625],[29.698046875000017,-2.794726562500003],[29.390234375,-2.80859375],[29.10205078125,-2.595703125],[29.01435546875001,-2.72021484375],[28.893945312500023,-2.635058593750003],[28.876367187500023,-2.400292968750009],[29.13154296875001,-2.195117187500003],[29.196582031250017,-1.719921875000011],[29.576953125000017,-1.387890625000011],[29.82539062500001,-1.335546875],[29.930078125000023,-1.469921875000011],[30.360253906250023,-1.074609375],[30.41230468750001,-1.063085937500006],[30.46992187500001,-1.066015625],[30.50996093750001,-1.067285156250009]]]},"properties":{"name":"Rwanda","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[41.98769531250005,16.715625],[42.059960937499994,16.803515625000017],[42.15781250000006,16.570703125000023],[41.80156250000002,16.778759765624955],[41.86044921875006,17.002539062499977],[41.98769531250005,16.715625]]],[[[46.53144531250004,29.09624023437499],[47.433203125,28.989550781250017],[47.671289062499994,28.53315429687504],[48.442480468750006,28.542919921874983],[48.80898437499999,27.895898437499966],[48.797167968750074,27.72431640625001],[49.2375,27.49272460937499],[49.17509765625002,27.43764648437505],[49.40527343749997,27.18095703124996],[50.149804687499994,26.66264648437499],[50.00810546875002,26.678515625000017],[50.21386718750003,26.30849609375005],[50.15546875000004,26.100537109374955],[50.03164062499999,26.11098632812505],[50.55791015625002,25.086669921875],[50.66689453125005,24.96381835937501],[50.72558593749997,24.869384765625057],[50.80439453125004,24.789257812499983],[50.928320312500006,24.595117187500023],[50.96601562500004,24.573925781249983],[51.022753906250074,24.56523437499999],[51.09335937500006,24.564648437499955],[51.178027343750074,24.586718750000017],[51.26796875,24.607226562500017],[51.33847656250006,24.564355468749994],[51.41123046875006,24.570800781250057],[51.30986328125002,24.340380859375017],[51.56835937500003,24.286181640625074],[51.592578125000074,24.07885742187503],[52.55507812500005,22.932812499999955],[55.104296875000074,22.621484375000023],[55.185839843750074,22.7041015625],[55.64101562499999,22.001855468749994],[54.97734375000002,19.995947265625006],[51.977636718750006,18.996142578125074],[49.04199218750003,18.58178710937503],[48.17216796875002,18.156933593749983],[47.57958984374997,17.448339843750034],[47.44179687499999,17.111865234375045],[47.14355468749997,16.946679687499966],[46.97568359375006,16.953466796875034],[46.72763671875006,17.26557617187501],[45.5353515625001,17.30205078124999],[45.14804687500006,17.427441406249955],[43.91699218749997,17.32470703124997],[43.41796875000003,17.516259765625023],[43.19091796875003,17.359375],[43.16503906249997,16.689404296874955],[42.79931640624997,16.37177734375001],[42.29394531249997,17.434960937499966],[41.75,17.88574218749997],[41.22949218750003,18.678417968749983],[40.75917968750005,19.755468750000034],[40.080664062500006,20.265917968750017],[39.728320312500074,20.390332031249955],[39.27607421875004,20.973974609375034],[39.093554687500074,21.31035156249999],[39.14707031250006,21.518994140624955],[38.98789062500006,21.88173828125005],[39.06201171874997,22.592187500000023],[38.46416015625002,23.71186523437504],[37.91972656250002,24.185400390625063],[37.54306640625006,24.291650390625023],[37.18085937500004,24.82001953125001],[37.26630859375004,24.960058593750034],[37.14882812499999,25.291113281249977],[35.18046875000002,28.03486328125004],[34.722070312499994,28.130664062500017],[34.625,28.064501953125017],[34.95078125,29.353515625],[36.068457031250006,29.200537109375006],[36.28281250000006,29.355371093750023],[36.47607421874997,29.49511718749997],[36.59179687500003,29.666113281250006],[36.703906250000074,29.831640624999977],[36.75527343750005,29.86601562499996],[37.46923828125003,29.995068359374955],[37.49072265625003,30.01171874999997],[37.55361328125005,30.14458007812496],[37.63359375000002,30.313281250000045],[37.64990234374997,30.330957031249994],[37.669726562500074,30.34814453125003],[37.862890625,30.44262695312503],[37.98007812500006,30.5],[37.47900390624997,31.007763671874955],[37.10527343750002,31.35517578125004],[36.95859375000006,31.491503906250017],[37.215625,31.55610351562501],[37.49335937500004,31.625878906250023],[38.111425781250006,31.78115234375005],[38.37548828124997,31.84746093749996],[38.962304687499994,31.99492187499999],[38.99707031249997,32.00747070312505],[39.145410156249994,32.12451171875],[39.36865234374997,32.09174804687498],[39.70410156250003,32.04252929687499],[40.02783203124997,31.995019531249994],[40.3693359375001,31.93896484375003],[40.47890625000005,31.89335937499999],[42.07441406250004,31.08037109374999],[43.77373046875002,29.84921875],[44.71650390625004,29.19360351562503],[46.35644531250003,29.06367187500001],[46.53144531250004,29.09624023437499]]]]},"properties":{"name":"Saudi Arabia","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[36.87138671875002,21.996728515624994],[36.92695312500001,21.58652343749999],[37.25859375000002,21.108544921874994],[37.25722656250002,21.03940429687499],[37.15058593750001,21.103759765625],[37.14111328125,20.98178710937499],[37.19316406250002,20.12070312499999],[37.471289062500006,18.820117187500003],[38.609472656250006,18.005078125],[38.422460937500006,17.823925781249997],[38.39716796875001,17.778369140625003],[38.38554687500002,17.751269531250003],[38.37373046875001,17.717333984375003],[38.34736328125001,17.68359375],[38.28984375000002,17.637011718750003],[38.26728515625001,17.61669921875],[38.253515625,17.584765625],[37.78242187500001,17.4580078125],[37.547460937500006,17.324121093749994],[37.51015625000002,17.288134765625003],[37.45292968750002,17.108691406250003],[37.41103515625002,17.06171875],[37.24882812500002,17.056884765625],[37.16953125,17.04140625],[37.0615234375,17.061279296875],[37.00898437500001,17.058886718750003],[36.995214843750006,17.020556640625003],[36.97578125000001,16.86655273437499],[36.97871093750001,16.800585937500003],[36.887792968750006,16.624658203124994],[36.91376953125001,16.296191406250003],[36.566015625,15.362109375],[36.4267578125,15.132080078125],[36.44814453125002,14.940087890624994],[36.470800781250006,14.736474609374994],[36.52431640625002,14.2568359375],[36.12519531250001,12.75703125],[35.67021484375002,12.623730468749997],[35.1123046875,11.816552734374994],[34.93144531250002,10.864794921874989],[34.77128906250002,10.746191406249991],[34.571875,10.880175781249989],[34.34394531250001,10.658642578124997],[34.31123046875001,10.190869140624997],[34.078125,9.461523437499991],[33.87148437500002,9.506152343749989],[33.96328125000002,9.861767578124997],[33.90703125000002,10.181445312499989],[33.13007812500001,10.745947265624991],[33.073339843750006,11.606103515624994],[33.199316406250006,12.21728515625],[32.721875,12.223095703124997],[32.73671875000002,12.009667968749994],[32.072265625,12.006738281249994],[32.338476562500006,11.710107421874994],[32.42080078125002,11.089111328125],[31.224902343750017,9.799267578124997],[30.75537109375,9.731201171875],[30.003027343750006,10.277392578124989],[29.60546875,10.065087890624994],[29.47314453125,9.768603515624989],[28.979589843750006,9.594189453124997],[28.844531250000017,9.326074218749994],[28.048925781250006,9.32861328125],[27.880859375,9.601611328124989],[27.07421875,9.613818359374989],[26.65869140625,9.484130859375],[25.91914062500001,10.169335937499994],[25.858203125000017,10.406494140625],[25.211718750000017,10.329931640624991],[25.066992187500006,10.293798828124991],[24.785253906250006,9.774658203125],[24.53193359375001,8.886914062499997],[24.147363281250023,8.665625],[23.53730468750001,8.815820312499994],[23.46826171875,9.11474609375],[23.62265625,9.340625],[23.646289062500017,9.822900390624994],[22.86005859375001,10.919677734375],[22.922656250000017,11.344873046874994],[22.591113281250017,11.579882812499989],[22.580957031250023,11.990136718749994],[22.472460937500017,12.067773437499994],[22.352343750000017,12.660449218749989],[21.928125,12.678125],[21.825292968750006,12.79052734375],[22.228125,13.32958984375],[22.1064453125,13.7998046875],[22.53857421875,14.161865234375],[22.38154296875001,14.550488281249997],[22.6708984375,14.722460937500003],[22.93232421875001,15.162109375],[22.933886718750017,15.533105468749994],[23.10517578125001,15.702539062499994],[23.970800781250006,15.721533203124991],[23.980273437500017,19.496630859375003],[23.980273437500017,19.99594726562499],[24.9794921875,20.002587890624994],[24.980273437500017,21.995849609375],[28.036425781250017,21.995361328125],[31.092675781250023,21.994873046875],[31.260644531250023,22.00229492187499],[31.400292968750023,22.202441406250003],[31.486132812500017,22.14780273437499],[31.434472656250023,21.995849609375],[36.87138671875002,21.996728515624994]]]},"properties":{"name":"Sudan","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[34.078125,9.461523437499991],[34.07275390625,8.545263671874991],[33.95332031250001,8.443505859374994],[33.28105468750002,8.437255859375],[32.99892578125002,7.899511718749991],[33.902441406250006,7.509521484375],[34.06425781250002,7.225732421874994],[34.71064453125001,6.660302734374994],[34.98359375000001,5.858300781249994],[35.26835937500002,5.492285156249991],[35.08447265625,5.311865234374991],[34.87832031250002,5.109570312499997],[34.63984375000001,4.87548828125],[34.38017578125002,4.620654296874989],[34.176855468750006,4.419091796874994],[33.97607421875,4.22021484375],[33.74160156250002,3.985253906249994],[33.568457031250006,3.81171875],[33.489355468750006,3.755078125],[32.99726562500001,3.880175781249989],[32.33574218750002,3.706201171874994],[32.13593750000001,3.519726562499997],[31.79804687500001,3.802636718749994],[31.547167968750017,3.677587890624991],[31.15234375,3.785595703124997],[30.83857421875001,3.49072265625],[30.757226562500023,3.62421875],[30.586718750000017,3.62421875],[30.50830078125,3.835693359375],[30.194921875,3.98193359375],[29.676855468750006,4.5869140625],[29.469628906250023,4.61181640625],[29.224902343750017,4.391894531249989],[28.72705078125,4.504980468749991],[28.427539062500017,4.324169921874997],[28.19208984375001,4.350244140624994],[27.7880859375,4.644677734374994],[27.4033203125,5.109179687499989],[27.143945312500023,5.722949218749989],[26.514257812500006,6.069238281249994],[26.30859375,6.455322265625],[26.36181640625,6.635302734374989],[25.27890625,7.427490234375],[25.18134765625001,7.557226562499991],[25.20039062500001,7.807910156249989],[24.853320312500017,8.137548828124991],[24.291406250000023,8.29140625],[24.147363281250023,8.665625],[24.53193359375001,8.886914062499997],[24.785253906250006,9.774658203125],[25.066992187500006,10.293798828124991],[25.211718750000017,10.329931640624991],[25.858203125000017,10.406494140625],[25.91914062500001,10.169335937499994],[26.65869140625,9.484130859375],[27.07421875,9.613818359374989],[27.880859375,9.601611328124989],[28.048925781250006,9.32861328125],[28.844531250000017,9.326074218749994],[28.979589843750006,9.594189453124997],[29.47314453125,9.768603515624989],[29.60546875,10.065087890624994],[30.003027343750006,10.277392578124989],[30.75537109375,9.731201171875],[31.224902343750017,9.799267578124997],[32.42080078125002,11.089111328125],[32.338476562500006,11.710107421874994],[32.072265625,12.006738281249994],[32.73671875000002,12.009667968749994],[32.721875,12.223095703124997],[33.199316406250006,12.21728515625],[33.073339843750006,11.606103515624994],[33.13007812500001,10.745947265624991],[33.90703125000002,10.181445312499989],[33.96328125000002,9.861767578124997],[33.87148437500002,9.506152343749989],[34.078125,9.461523437499991]]]},"properties":{"name":"S. Sudan","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-12.280615234374977,14.809033203124997],[-12.228417968749994,14.45859375],[-12.019189453124994,14.206494140624997],[-11.960888671874983,13.875292968750003],[-12.05419921875,13.633056640625],[-11.831689453124994,13.315820312499994],[-11.634960937499983,13.369873046875],[-11.390380859375,12.941992187499991],[-11.389404296875,12.404394531249991],[-12.399072265624994,12.340087890625],[-12.930712890624989,12.532275390624989],[-13.061279296875,12.489990234375],[-13.082910156249994,12.633544921875],[-13.729248046875,12.673925781249991],[-14.06484375,12.67529296875],[-14.349218749999977,12.676416015624994],[-15.196093749999989,12.679931640625],[-15.3779296875,12.588964843749991],[-15.574804687499977,12.490380859374994],[-15.839550781249983,12.43789062499999],[-16.144189453124994,12.45742187499999],[-16.24150390624999,12.443310546874997],[-16.41630859374999,12.36767578125],[-16.521337890624977,12.3486328125],[-16.656933593749983,12.364355468749991],[-16.711816406249994,12.354833984374991],[-16.76030273437499,12.52578125],[-16.44287109375,12.609472656249991],[-16.59765625,12.715283203124997],[-16.743896484375,12.58544921875],[-16.763330078124994,13.064160156249997],[-16.648779296874977,13.154150390624991],[-15.834277343749989,13.156445312499997],[-15.814404296874983,13.325146484374997],[-15.286230468749977,13.39599609375],[-15.151123046875,13.556494140624991],[-14.246777343749983,13.23583984375],[-13.826708984374989,13.4078125],[-13.977392578124977,13.54345703125],[-14.405468749999983,13.503710937500003],[-15.108349609374983,13.81210937499999],[-15.426855468749977,13.727001953124997],[-15.509667968749994,13.586230468750003],[-16.56230468749999,13.587304687499994],[-16.766943359374977,13.904931640624994],[-16.618115234374983,14.04052734375],[-16.791748046875,14.004150390625],[-17.168066406249977,14.640625],[-17.345800781249977,14.729296875],[-17.445019531249983,14.651611328125],[-17.53564453125,14.755126953125],[-17.147167968749983,14.922021484374994],[-16.843408203124994,15.293994140625003],[-16.570751953124983,15.734423828125003],[-16.535253906249977,15.83837890625],[-16.502050781249977,15.917333984374991],[-16.480078124999977,16.097216796875003],[-16.441015624999977,16.204541015624997],[-16.239013671875,16.531298828125003],[-15.768212890624994,16.485107421875],[-14.990625,16.676904296874994],[-14.300097656249989,16.580273437499997],[-13.868457031249989,16.148144531249997],[-13.756640624999989,16.172509765624994],[-13.40966796875,16.05917968749999],[-13.105273437499989,15.57177734375],[-12.735253906249994,15.13125],[-12.40869140625,14.889013671874991],[-12.280615234374977,14.809033203124997]]]},"properties":{"name":"Senegal","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[103.9697265625,1.331445312499994],[103.65019531249999,1.325537109374991],[103.81796875000003,1.447070312499989],[103.9697265625,1.331445312499994]]]},"properties":{"name":"Singapore","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-37.10332031249996,-54.065625],[-36.70380859375001,-54.10810546874999],[-36.64741210937498,-54.26230468749996],[-36.32646484374996,-54.251171875],[-35.79858398437497,-54.76347656250002],[-36.08549804687499,-54.86679687500001],[-36.885986328125,-54.33945312499996],[-37.63090820312496,-54.16748046875001],[-37.61884765625001,-54.04208984375004],[-38.017431640625034,-54.008007812500026],[-37.10332031249996,-54.065625]]]},"properties":{"name":"S. Geo. and S. Sandw. Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-5.692138671874972,-15.997753906249997],[-5.782519531250017,-16.00400390625002],[-5.707861328124977,-15.90615234374998],[-5.692138671874972,-15.997753906249997]]]},"properties":{"name":"Saint Helena","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[160.57626953125006,-11.797851562500028],[160.44306640625004,-11.814941406249957],[159.98632812499997,-11.494726562500006],[160.57626953125006,-11.797851562500028]]],[[[166.13320312500005,-10.757812499999972],[165.90400390625004,-10.851464843749966],[165.79101562500003,-10.784765624999963],[166.02382812500005,-10.6611328125],[166.13320312500005,-10.757812499999972]]],[[[161.71533203124997,-10.387304687499991],[162.10537109375005,-10.45380859375004],[162.37333984375002,-10.823242187499986],[161.78681640625004,-10.716894531249991],[161.53789062500007,-10.566406249999972],[161.4870117187501,-10.361425781249963],[161.29394531250003,-10.326464843750031],[161.30478515625012,-10.204394531250031],[161.71533203124997,-10.387304687499991]]],[[[161.54785156249997,-9.625683593749997],[161.55380859375012,-9.769726562500026],[161.40976562500006,-9.681640625000028],[161.36416015625,-9.353417968750037],[161.54785156249997,-9.625683593749997]]],[[[159.75039062500005,-9.272656250000011],[159.97060546875,-9.433300781249969],[160.35458984375006,-9.421582031249983],[160.81894531250006,-9.862792968749986],[160.64921875000002,-9.92861328124998],[159.80273437499997,-9.763476562500003],[159.61230468749997,-9.470703124999943],[159.62558593750012,-9.311230468749969],[159.75039062500005,-9.272656250000011]]],[[[160.1681640625001,-8.995507812500037],[160.40751953125007,-9.140332031249969],[160.10537109375,-9.080761718749997],[160.1681640625001,-8.995507812500037]]],[[[159.18857421875006,-9.123535156250014],[159.03632812500004,-9.075],[159.12978515625,-8.99306640624998],[159.22841796875005,-9.029980468749955],[159.18857421875006,-9.123535156250014]]],[[[158.10791015625003,-8.684179687500034],[157.93759765625006,-8.73642578125002],[157.90927734375006,-8.565625],[158.10546874999997,-8.536816406250026],[158.10791015625003,-8.684179687500034]]],[[[157.38896484375002,-8.713476562499963],[157.2123046875,-8.565039062500006],[157.37949218750012,-8.420898437499943],[157.38896484375002,-8.713476562499963]]],[[[160.7494140625,-8.313964843750014],[160.99765625000006,-8.612011718749983],[160.94433593750003,-8.799023437499983],[161.15869140624997,-8.961816406250009],[161.36738281250004,-9.61123046874998],[160.77207031250012,-8.963867187499986],[160.7140625000001,-8.539257812499997],[160.59042968750006,-8.372753906249997],[160.7494140625,-8.313964843750014]]],[[[157.76347656250002,-8.242187499999957],[157.89843749999997,-8.506347656249943],[157.81933593750003,-8.612011718749983],[157.58789062500003,-8.445410156249963],[157.5580078125,-8.269921875],[157.30244140625004,-8.33330078124996],[157.21757812500002,-8.262792968749977],[157.490625,-7.965722656250037],[157.76347656250002,-8.242187499999957]]],[[[157.171875,-8.108105468749997],[156.95830078125002,-8.014355468749997],[157.02412109375004,-7.867871093749997],[157.18613281250006,-7.941210937500017],[157.171875,-8.108105468749997]]],[[[156.687890625,-7.92304687500004],[156.5109375000001,-7.707812499999974],[156.5609375,-7.574023437499989],[156.80908203124997,-7.722851562500026],[156.687890625,-7.92304687500004]]],[[[159.8791015625001,-8.534277343749949],[158.9440429687501,-8.04072265625004],[158.457421875,-7.544726562499974],[158.734375,-7.604296875000031],[159.43144531250002,-8.029003906249955],[159.84306640625002,-8.326953124999989],[159.8791015625001,-8.534277343749949]]],[[[155.83984374999997,-7.097167968750014],[155.67753906250002,-7.08896484375002],[155.73896484375004,-6.972949218750017],[155.83984374999997,-7.097167968750014]]],[[[157.48671875000005,-7.330371093750003],[157.44130859375,-7.425683593749966],[157.10156249999997,-7.323632812499966],[156.4525390625,-6.638281249999963],[157.03027343750003,-6.891992187499952],[157.19335937499997,-7.160351562499997],[157.48671875000005,-7.330371093750003]]]]},"properties":{"name":"Solomon Is.","childNum":16}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-12.526074218749926,7.436328125000017],[-12.951611328124926,7.570849609374989],[-12.615234374999972,7.63720703125],[-12.5125,7.582421875000037],[-12.526074218749926,7.436328125000017]]],[[[-10.758593749999989,9.385351562499991],[-10.682714843750006,9.289355468749974],[-10.687646484374937,9.261132812499994],[-10.749951171874926,9.12236328124996],[-10.747021484374955,9.095263671875045],[-10.726855468749932,9.081689453125023],[-10.615966796875,9.059179687499977],[-10.500537109375017,8.687548828125017],[-10.677343749999977,8.400585937499997],[-10.712109374999955,8.335253906250017],[-10.686962890624983,8.321679687500009],[-10.652636718749989,8.330273437499983],[-10.604003906249943,8.319482421874994],[-10.55771484374992,8.315673828125028],[-10.496435546874977,8.362109374999974],[-10.394433593749966,8.480957031250028],[-10.360058593749983,8.49550781249998],[-10.283203124999972,8.48515625],[-10.285742187499949,8.454101562499986],[-10.314648437499983,8.310839843750017],[-10.359814453124926,8.187939453125026],[-10.570849609374932,8.071142578125034],[-10.6474609375,7.759375],[-10.878076171874994,7.538232421874994],[-11.267675781249977,7.232617187499997],[-11.507519531249983,6.906542968750003],[-12.48564453124996,7.386279296875045],[-12.480273437499932,7.75327148437502],[-12.697607421874977,7.715869140625045],[-12.850878906249932,7.818701171875034],[-12.956933593749966,8.145312500000045],[-13.148974609374989,8.214599609375043],[-13.272753906249989,8.429736328124989],[-13.085009765624932,8.42475585937504],[-12.894091796874932,8.62978515624998],[-13.181835937499955,8.576904296875043],[-13.206933593749994,8.843115234375006],[-13.059472656249966,8.881152343750031],[-13.292675781249955,9.04921875],[-13.077294921874966,9.069628906249974],[-12.958789062499989,9.263330078124994],[-12.755859374999943,9.373583984374989],[-12.557861328125,9.704980468749994],[-12.427978515625028,9.898144531250011],[-12.142333984375,9.87539062499999],[-11.911083984374955,9.993017578124977],[-11.273632812499955,9.996533203124983],[-11.205664062499949,9.977734374999969],[-11.180859374999955,9.925341796875045],[-11.047460937499977,9.786328125000054],[-10.758593749999989,9.385351562499991]]]]},"properties":{"name":"Sierra Leone","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-89.36259765624999,14.416015625],[-89.1205078125,14.370214843749991],[-88.51254882812499,13.978955078124997],[-88.504345703125,13.964208984374991],[-88.49765625,13.904541015625],[-88.482666015625,13.854248046875],[-88.44912109375,13.850976562499994],[-88.40849609374999,13.87539062499999],[-88.27622070312499,13.942675781250003],[-88.151025390625,13.987353515625003],[-87.99101562499999,13.879638671875],[-87.8919921875,13.894970703124997],[-87.80224609375,13.889990234374991],[-87.7314453125,13.841064453125],[-87.71533203125,13.812695312499997],[-87.781884765625,13.521386718749994],[-87.930859375,13.1806640625],[-88.68564453124999,13.281494140625],[-88.51201171874999,13.183935546874991],[-89.80419921875,13.560107421875003],[-90.09521484375,13.736523437499997],[-90.04814453124999,13.904052734375],[-89.54716796874999,14.241259765625003],[-89.5736328125,14.390087890624997],[-89.36259765624999,14.416015625]]]},"properties":{"name":"El Salvador","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-56.26708984374997,46.838476562500034],[-56.38476562499994,46.81943359375006],[-56.36464843749994,47.09897460937498],[-56.26708984374997,46.838476562500034]]]},"properties":{"name":"St. Pierre and Miquelon","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[6.659960937499989,0.120654296874989],[6.51972656250004,0.066308593750023],[6.468164062499994,0.22734375],[6.68691406250008,0.404394531249977],[6.75,0.24345703124996],[6.659960937499989,0.120654296874989]]],[[[7.423828125,1.567724609375006],[7.330664062500034,1.603369140624991],[7.414453125000051,1.699121093750037],[7.423828125,1.567724609375006]]]]},"properties":{"name":"São Tomé and Principe","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-54.03422851562499,3.62939453125],[-54.00957031249999,3.448535156249989],[-54.06318359375,3.353320312499989],[-54.18803710937499,3.178759765624989],[-54.203125,3.13818359375],[-54.17070312499999,2.993603515624997],[-54.18808593749999,2.874853515624991],[-54.1955078125,2.81787109375],[-54.256738281249994,2.713720703124991],[-54.402001953124994,2.461523437499991],[-54.53593749999999,2.343310546874989],[-54.56840820312499,2.342578124999989],[-54.604736328125,2.335791015624991],[-54.61625976562499,2.326757812499991],[-54.661865234375,2.327539062499994],[-54.697412109374994,2.359814453124997],[-54.72221679687499,2.441650390625],[-54.87607421874999,2.450390625],[-54.92656249999999,2.497363281249989],[-54.968408203124994,2.54833984375],[-54.978662109374994,2.59765625],[-55.005810546875,2.59296875],[-55.0703125,2.54833984375],[-55.11411132812499,2.539208984374994],[-55.1876953125,2.547509765624994],[-55.286035156249994,2.499658203124994],[-55.343994140625,2.48876953125],[-55.38535156249999,2.440625],[-55.73056640624999,2.406152343749994],[-55.957470703125,2.520458984374997],[-55.99350585937499,2.497509765624997],[-56.02036132812499,2.392773437499997],[-56.0451171875,2.364404296874994],[-56.087792968749994,2.34130859375],[-56.12939453125,2.299511718749997],[-56.1376953125,2.259033203125],[-56.073632812499994,2.236767578124997],[-56.02006835937499,2.158154296874997],[-55.96196289062499,2.095117187499994],[-55.91533203124999,2.03955078125],[-55.921630859375,1.976660156249991],[-55.929638671875,1.8875],[-56.01992187499999,1.842236328124997],[-56.4828125,1.942138671875],[-56.704345703125,2.036474609374991],[-57.19736328124999,2.853271484375],[-57.303662109375,3.377099609374994],[-57.646728515625,3.39453125],[-58.05429687499999,4.101660156249991],[-57.84599609374999,4.668164062499997],[-57.91704101562499,4.820410156249991],[-57.711083984374994,4.991064453124991],[-57.331005859375,5.020166015624994],[-57.20981445312499,5.195410156249991],[-57.3185546875,5.335351562499994],[-57.194775390625,5.5484375],[-56.96982421874999,5.992871093749997],[-56.235595703125,5.885351562499991],[-55.897607421874994,5.699316406249991],[-55.909912109375,5.892626953124989],[-55.648339843749994,5.985888671874989],[-54.83369140625,5.988330078124989],[-54.05419921875,5.807910156249989],[-54.08046875,5.502246093749989],[-54.4796875,4.836523437499991],[-54.350732421874994,4.054101562499994],[-54.03422851562499,3.62939453125]]]},"properties":{"name":"Suriname","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[22.538671875,49.072705078125],[22.52412109375001,49.031396484374994],[22.389453125000017,48.873486328125],[22.295214843750017,48.685839843749996],[22.142871093750017,48.568505859374994],[22.1318359375,48.405322265624996],[21.766992187500023,48.3380859375],[21.45136718750001,48.55224609375],[20.490039062500017,48.526904296874996],[20.333789062500017,48.295556640624994],[19.95039062500001,48.146630859374994],[19.625390625000023,48.223095703125],[18.791894531250023,48.000292968749996],[18.72421875,47.787158203124996],[17.76191406250001,47.770166015624994],[17.147363281250023,48.00595703125],[16.86542968750001,48.3869140625],[16.953125,48.598828125],[17.135644531250023,48.841064453125],[17.75849609375001,48.888134765625],[18.0859375,49.06513671875],[18.160937500000017,49.257373046874996],[18.83222656250001,49.510791015624996],[19.1494140625,49.4],[19.44160156250001,49.597705078124996],[19.77392578125,49.37216796875],[19.756640625000017,49.204394531249996],[20.0576171875,49.181298828124994],[20.36298828125001,49.38525390625],[20.868457031250017,49.314697265625],[21.079394531250017,49.418261718749996],[21.6396484375,49.411962890625],[22.020117187500006,49.209521484374996],[22.473046875000023,49.081298828125],[22.538671875,49.072705078125]]]},"properties":{"name":"Slovakia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[16.516210937500006,46.499902343749994],[16.427636718750023,46.5244140625],[16.321191406250023,46.534619140625],[16.1064453125,46.382226562499994],[15.608984375,46.171923828124996],[15.592578125000017,46.139990234375],[15.596875,46.109228515625],[15.675585937500017,45.983691406249996],[15.652148437500017,45.862158203125],[15.277050781250011,45.7326171875],[15.353710937500011,45.659912109375],[15.283593750000023,45.5796875],[15.291210937500011,45.541552734374996],[15.32666015625,45.502294921875],[15.339453125,45.467041015625],[15.242089843750023,45.44140625],[15.110449218750006,45.45078125],[14.95458984375,45.499902343749994],[14.793066406250006,45.47822265625],[14.649511718750006,45.571484375],[14.591796875,45.651269531249994],[14.56884765625,45.6572265625],[14.548448660714302,45.628388671875],[14.507586495535731,45.59039341517857],[14.42734375,45.505761718749994],[14.369921875000017,45.4814453125],[13.878710937500017,45.428369140624994],[13.577929687500017,45.516894531249996],[13.8447265625,45.59287109375],[13.831152343750006,45.680419921875],[13.663476562500023,45.7919921875],[13.6005859375,45.979785156249996],[13.509179687500023,45.973779296874994],[13.487695312500023,45.987109375],[13.480273437500017,46.009228515625],[13.486425781250006,46.03955078125],[13.548046875000011,46.089111328125],[13.616601562500023,46.133105468749996],[13.634960937500011,46.157763671874996],[13.632519531250011,46.177050781249996],[13.420996093750006,46.212304687499994],[13.399511718750006,46.317529296874994],[13.563281250000017,46.415087890624996],[13.637109375000023,46.448535156249996],[13.6796875,46.462890625],[13.7,46.520263671875],[14.5498046875,46.399707031249996],[14.893261718750011,46.605908203125],[15.957617187500006,46.677636718749994],[16.093066406250017,46.86328125],[16.283593750000023,46.857275390625],[16.516210937500006,46.499902343749994]]]},"properties":{"name":"Slovenia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[16.52851562500001,56.29052734375],[16.431640625,56.24375],[16.41230468750004,56.568994140624994],[17.02539062499997,57.345068359375006],[16.52851562500001,56.29052734375]]],[[[19.076464843750045,57.8359375],[18.813867187500023,57.70620117187502],[18.907910156250068,57.39833984375002],[18.146386718749994,56.920507812500006],[18.285351562500068,57.08320312500001],[18.136523437500045,57.55664062500003],[18.53740234374999,57.83056640625006],[18.90058593750001,57.91547851562504],[19.076464843750045,57.8359375]]],[[[19.156347656250063,57.92260742187497],[19.086523437500034,57.86499023437506],[19.134863281250034,57.98134765625002],[19.331445312500023,57.962890625],[19.156347656250063,57.92260742187497]]],[[[24.15546875000004,65.80527343750006],[23.102343750000074,65.73535156250003],[22.400976562500006,65.86210937499999],[22.254003906250006,65.59755859375002],[21.565527343750063,65.40810546874997],[21.609179687500074,65.261376953125],[21.410351562500068,65.31743164062505],[21.57392578125001,65.12578124999999],[21.138183593750057,64.80869140625006],[21.519628906250034,64.46308593749998],[20.76269531250003,63.86782226562505],[18.60644531250003,63.17827148437499],[18.31289062500008,62.996386718750045],[18.46308593750004,62.895849609375006],[18.170019531250034,62.789355468750074],[17.906640625000023,62.88676757812502],[18.037304687500068,62.60053710937498],[17.834472656250057,62.50273437500002],[17.410253906250063,62.508398437500034],[17.633691406249994,62.23300781250006],[17.374511718750057,61.866308593750034],[17.465429687500006,61.68447265625005],[17.196386718750006,61.72456054687504],[17.13076171875005,61.57573242187499],[17.25097656250003,60.70078125],[17.6611328125,60.53515625000003],[17.955761718750068,60.589794921874955],[18.85273437500001,60.02587890625],[18.970507812500045,59.757226562499994],[17.964257812500023,59.359375],[18.56025390625004,59.39448242187498],[18.285351562500068,59.109375],[16.978125,58.65415039062506],[16.214257812500023,58.636669921874955],[16.92382812499997,58.49257812499999],[16.651953125,58.43432617187503],[16.65224609375008,57.50068359374998],[16.348730468750063,56.70927734374996],[15.826660156250028,56.12495117187501],[14.782031250000017,56.16191406250002],[14.754785156250051,56.03315429687498],[14.401953125000034,55.97675781250004],[14.21503906250004,55.83261718749998],[14.341699218749994,55.52773437500002],[14.17373046875008,55.396630859374966],[12.885839843750063,55.41137695312506],[12.973925781250074,55.748144531250006],[12.471191406250057,56.29052734375],[12.801660156250051,56.263916015625],[12.65644531250004,56.44057617187502],[12.857421875000028,56.45239257812503],[12.883691406250051,56.61772460937496],[12.421484375000034,56.906396484374966],[11.449316406250063,58.118359374999955],[11.43154296875008,58.339990234374994],[11.24824218750004,58.369140625],[11.14716796875004,58.98862304687498],[11.19580078125,59.07827148437505],[11.388281250000063,59.036523437499966],[11.470703125000057,58.909521484375034],[11.64277343750004,58.92607421875002],[11.798144531250074,59.28989257812498],[11.680761718750034,59.59228515625003],[12.486132812500074,60.10678710937506],[12.588671874999989,60.450732421875045],[12.29414062500004,61.00268554687506],[12.706054687500028,61.059863281250074],[12.88076171875008,61.35229492187506],[12.155371093750006,61.720751953125045],[12.303515625000074,62.28559570312501],[11.999902343750051,63.29169921875001],[12.175195312500051,63.595947265625],[12.792773437500017,64],[13.203515625000023,64.07509765625],[13.960546875000063,64.01401367187498],[14.141210937500006,64.17353515624998],[14.077636718750028,64.464013671875],[13.650292968750023,64.58154296874997],[14.47968750000004,65.30146484374998],[14.543261718750045,66.12934570312498],[15.483789062500051,66.30595703124999],[15.422949218750006,66.48984374999998],[16.40351562500004,67.05498046875002],[16.12744140625,67.42583007812507],[16.783593750000023,67.89501953125],[17.324609375000023,68.10380859374999],[17.91669921875001,67.96489257812502],[18.303027343750045,68.55541992187497],[19.969824218750063,68.35639648437501],[20.348046875000023,68.84873046875003],[20.116699218750057,69.02089843750005],[20.622167968750006,69.036865234375],[21.99746093750005,68.52060546874998],[22.854101562500034,68.36733398437502],[23.63886718750004,67.95439453125002],[23.454882812500045,67.46025390625007],[23.733593750000068,67.42290039062499],[23.64150390625005,67.12939453124997],[23.988574218750045,66.81054687500003],[23.700292968750034,66.25263671874998],[24.15546875000004,65.80527343750006]]]]},"properties":{"name":"Sweden","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[31.9482421875,-25.957617187500006],[32.060546875,-26.018359375],[32.04140625000002,-26.28125],[32.10595703125,-26.52001953125],[32.112890625,-26.839453125],[32.02480468750002,-26.811132812500006],[31.994726562500006,-26.817480468750006],[31.967187500000023,-26.96064453125001],[31.946093750000017,-27.173632812500003],[31.958398437500023,-27.30585937500001],[31.742578125000023,-27.30996093750001],[31.469531250000017,-27.295507812500006],[31.274023437500006,-27.238378906250006],[31.063378906250023,-27.1123046875],[30.938085937500006,-26.915820312500003],[30.88330078125,-26.79238281250001],[30.806738281250006,-26.785253906250006],[30.794335937500023,-26.764257812500006],[30.803320312500006,-26.41347656250001],[31.08808593750001,-25.98066406250001],[31.207324218750017,-25.843359375],[31.33515625000001,-25.75556640625001],[31.382617187500017,-25.74296875],[31.415136718750006,-25.74658203125],[31.921679687500017,-25.96875],[31.9482421875,-25.957617187500006]]]},"properties":{"name":"Swaziland","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[55.54033203125002,-4.693066406250011],[55.54296875,-4.785546875],[55.383398437500006,-4.609277343750009],[55.45576171875001,-4.558789062500011],[55.54033203125002,-4.693066406250011]]]},"properties":{"name":"Seychelles","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[42.358984375,37.10859375],[41.78857421875,36.59716796875],[41.41679687500002,36.5146484375],[41.295996093750006,36.383349609374996],[41.354101562500006,35.640429687499996],[41.19472656250002,34.768994140625],[40.98701171875001,34.429052734375],[38.773535156250006,33.372216796874994],[36.818359375,32.317285156249994],[36.3720703125,32.3869140625],[35.78730468750001,32.734912109374996],[35.91347656250002,32.94960937499999],[35.869140625,33.43173828125],[36.03447265625002,33.58505859375],[35.98613281250002,33.75263671875],[36.36503906250002,33.83935546875],[36.27783203125,33.92529296875],[36.5849609375,34.221240234374996],[36.50439453125,34.432373046875],[36.32988281250002,34.499609375],[36.383886718750006,34.65791015625],[35.97626953125001,34.629199218749996],[35.902441406250006,35.420703125],[35.76445312500002,35.571582031249996],[35.83964843750002,35.84921875],[35.892675781250006,35.916552734374996],[35.96757812500002,35.910058593749994],[36.12734375000002,35.831445312499994],[36.15361328125002,35.833886718749994],[36.34755859375002,36.003515625],[36.37539062500002,36.171240234375],[36.63671875,36.233984375],[36.64140625000002,36.263525390625],[36.5375,36.45742187499999],[36.54667968750002,36.50634765625],[36.596875,36.7013671875],[36.62841796875,36.777685546875],[36.65859375000002,36.802539062499996],[36.77656250000001,36.79267578125],[36.94179687500002,36.7583984375],[36.9853515625,36.702392578125],[37.06621093750002,36.652636718749996],[37.43632812500002,36.643310546875],[37.523535156250006,36.6783203125],[37.7203125,36.743701171874996],[37.90664062500002,36.79462890625],[38.19169921875002,36.9015625],[38.7666015625,36.693115234375],[38.90644531250001,36.694677734375],[39.1083984375,36.680566406249994],[39.35664062500001,36.681591796875],[39.50146484375,36.70224609375],[39.6865234375,36.738623046875],[40.01640625000002,36.826074218749994],[40.705664062500006,37.097705078124996],[41.886816406250006,37.156396484374994],[42.05986328125002,37.2060546875],[42.16787109375002,37.288623046874996],[42.202734375,37.29726562499999],[42.24755859375,37.2822265625],[42.2685546875,37.2765625],[42.31289062500002,37.22958984375],[42.358984375,37.10859375]]]},"properties":{"name":"Syria","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-72.3328125,21.85136718749999],[-72.14433593750002,21.79272460937503],[-72.33544921874994,21.758007812499983],[-72.3328125,21.85136718749999]]]},"properties":{"name":"Turks and Caicos Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[23.980273437500017,19.496630859375003],[23.970800781250006,15.721533203124991],[23.10517578125001,15.702539062499994],[22.933886718750017,15.533105468749994],[22.93232421875001,15.162109375],[22.6708984375,14.722460937500003],[22.38154296875001,14.550488281249997],[22.53857421875,14.161865234375],[22.1064453125,13.7998046875],[22.228125,13.32958984375],[21.825292968750006,12.79052734375],[21.928125,12.678125],[22.352343750000017,12.660449218749989],[22.472460937500017,12.067773437499994],[22.580957031250023,11.990136718749994],[22.591113281250017,11.579882812499989],[22.922656250000017,11.344873046874994],[22.86005859375001,10.919677734375],[22.49384765625001,10.996240234374994],[21.771484375,10.642822265625],[21.682714843750006,10.289843749999989],[20.773242187500017,9.405664062499994],[20.342089843750017,9.127099609374994],[18.95625,8.938867187499994],[18.886035156250017,8.836035156249991],[19.108691406250017,8.656152343749994],[18.56416015625001,8.0458984375],[17.6494140625,7.98359375],[16.784765625,7.550976562499997],[16.545312500000023,7.865478515625],[16.37890625,7.683544921874997],[15.957617187500006,7.507568359375],[15.480078125,7.523779296874991],[15.5498046875,7.787890624999989],[15.1162109375,8.557324218749997],[14.332324218750017,9.20351562499999],[13.977246093750011,9.691552734374994],[14.243261718750006,9.979736328125],[15.654882812500006,10.0078125],[15.276074218750011,10.357373046874997],[15.132226562500023,10.648486328124989],[15.029882812500006,11.11367187499999],[15.08125,11.845507812499989],[14.847070312500023,12.502099609374994],[14.461718750000017,13.021777343749989],[14.244824218750011,13.07734375],[14.06396484375,13.07851562499999],[13.932324218750011,13.258496093749997],[13.606347656250023,13.70458984375],[13.505761718750023,14.134423828124994],[13.4482421875,14.380664062500003],[14.367968750000017,15.750146484374994],[15.474316406250011,16.908398437499997],[15.735058593750011,19.904052734375],[15.963183593750017,20.34619140625],[15.587109375000011,20.733300781249994],[15.607324218750023,20.954394531250003],[15.181835937500011,21.523388671874997],[14.97900390625,22.99619140624999],[15.984082031250011,23.445214843749994],[20.14765625000001,21.38925781249999],[23.980273437500017,19.496630859375003]]]},"properties":{"name":"Chad","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[0.900488281250006,10.993261718749991],[0.763378906250011,10.386669921874997],[1.330078125,9.996972656249994],[1.3857421875,9.361669921874991],[1.600195312500006,9.050048828125],[1.624707031250011,6.997314453125],[1.530957031250011,6.992431640625],[1.777929687500006,6.294628906249997],[1.62265625,6.216796875],[1.187207031250011,6.089404296874989],[0.736914062500006,6.452587890624997],[0.525585937500011,6.850927734374991],[0.634765625,7.353662109374994],[0.5,7.546875],[0.686328125000017,8.354882812499994],[0.37255859375,8.75927734375],[0.48876953125,8.851464843749994],[0.525683593750017,9.398486328124989],[0.2333984375,9.463525390624994],[0.342578125000017,9.604150390624994],[0.264550781250023,9.644726562499997],[0.380859375,10.291845703124991],[-0.08632812499999,10.673046875],[0.009423828125023,11.02099609375],[-0.068603515625,11.115625],[0.49267578125,10.954980468749994],[0.900488281250006,10.993261718749991]]]},"properties":{"name":"Togo","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[98.40908203125005,7.90205078125004],[98.2962890625,7.776074218750054],[98.32207031250007,8.166308593749974],[98.4349609375,8.085644531249969],[98.40908203125005,7.90205078125004]]],[[[100.070703125,9.58603515625002],[99.96240234375003,9.421630859375],[99.93955078125006,9.559960937500037],[100.070703125,9.58603515625002]]],[[[102.42675781250003,11.988720703125026],[102.30195312500004,11.98081054687502],[102.27744140625006,12.151855468750043],[102.42675781250003,11.988720703125026]]],[[[100.12246093750005,20.316650390625057],[100.11494140625004,20.257666015625034],[100.13974609375012,20.245410156250017],[100.31796875000006,20.38588867187505],[100.51953125000003,20.17792968750004],[100.39765625000004,19.756103515625],[100.51357421875005,19.553466796875],[101.21191406249997,19.54833984375003],[101.22080078125006,19.486621093750074],[101.19755859375007,19.327929687500074],[101.2863281250001,18.977148437500006],[101.04697265625012,18.441992187500063],[101.05058593750002,18.407031250000045],[101.1375,18.28686523437497],[101.14394531250005,18.14262695312499],[100.90849609375002,17.583886718750023],[100.95585937500002,17.541113281250006],[101.10517578125004,17.47954101562499],[101.16748046874997,17.49902343749997],[101.41367187500012,17.71875],[101.55507812500005,17.812353515625034],[101.56367187500004,17.82050781250001],[101.6875,17.889404296875],[101.77480468750005,18.03339843750004],[101.81865234375002,18.06464843750001],[101.87548828124997,18.046435546875017],[101.94746093750004,18.081494140624983],[102.03457031250005,18.169824218750023],[102.10146484375,18.210644531249983],[102.14824218750002,18.20385742187503],[102.35185546875002,18.045947265625017],[102.45878906250002,17.984619140625057],[102.55253906250007,17.96508789062497],[102.61679687500006,17.833349609375034],[102.66064453124997,17.817968750000034],[102.680078125,17.824121093750023],[103.05136718750006,18.02851562500001],[103.0912109375,18.13823242187499],[103.14853515625006,18.221728515625045],[103.19970703124997,18.259472656249983],[103.26318359374997,18.27846679687505],[103.27958984375002,18.304980468750017],[103.24892578125,18.338964843750034],[103.25175781250002,18.373486328124955],[103.2882812500001,18.408398437499955],[103.36699218750007,18.42333984374997],[103.48798828125004,18.418164062499983],[103.62968750000002,18.38256835937503],[103.79228515625002,18.316503906249977],[103.89882812500005,18.295312500000023],[103.949609375,18.31899414062505],[104.04873046875005,18.216699218749994],[104.19619140625005,17.988378906250006],[104.32265625,17.815820312500023],[104.428125,17.69897460937503],[104.7396484375,17.461669921875],[104.81601562500012,17.30029296874997],[104.75898437500004,17.0771484375],[104.7435546875,16.884375],[104.75058593750012,16.647558593750063],[104.81933593750003,16.46606445312503],[105.04716796875007,16.160253906249977],[105.14873046875007,16.09355468749999],[105.33066406250006,16.037890625000017],[105.40625,15.987451171875051],[105.39892578124997,15.829882812500017],[105.62207031250003,15.699951171875],[105.641015625,15.656542968750045],[105.6388671875001,15.585937500000057],[105.615625,15.488281250000057],[105.49042968750004,15.256591796875],[105.49042968750004,15.127587890625009],[105.5333984375001,15.041601562499991],[105.54667968750002,14.932470703124963],[105.52304687500012,14.843310546875003],[105.49736328125002,14.590673828124963],[105.47558593750003,14.530126953124977],[105.42265625000007,14.471630859375054],[105.34218750000005,14.416699218750054],[105.24365234375003,14.367871093750054],[105.1833007812501,14.346240234374989],[105.16914062500004,14.336083984374966],[105.12597656250003,14.280957031250011],[105.07412109375005,14.227441406250037],[104.77900390625004,14.427832031250006],[103.19941406250004,14.332617187499977],[102.90927734375006,14.136718750000028],[102.546875,13.585693359375043],[102.33632812500005,13.560302734375014],[102.49960937500012,12.669970703125003],[102.75566406250002,12.42626953125],[102.73662109375007,12.089794921875011],[102.93388671875002,11.706689453125037],[102.594140625,12.203027343749994],[102.54023437500004,12.109228515624977],[101.83574218750002,12.640380859375014],[100.89775390625007,12.653808593749986],[100.96269531250007,13.431982421874991],[100.60292968750005,13.568164062500017],[100.23564453125002,13.48447265625002],[99.99052734375007,13.243457031250031],[100.08994140625006,13.045654296874972],[99.96396484375006,12.690039062500006],[99.98906250000007,12.170800781249994],[99.16503906250003,10.319824218750028],[99.25390625000003,9.265234375000034],[99.83554687500012,9.288378906250031],[99.98955078125007,8.589208984374977],[100.129296875,8.428076171875006],[100.16347656250005,8.508398437500034],[100.27939453125006,8.268505859375011],[100.54521484375002,7.226904296874991],[100.43935546875005,7.280761718750043],[100.38037109375003,7.541503906250043],[100.28378906250006,7.551513671875043],[100.25664062500002,7.774902343749986],[100.16074218750012,7.599267578124994],[100.4235351562501,7.18784179687502],[101.01787109375002,6.860937500000034],[101.49794921875005,6.865283203125031],[102.10107421874997,6.242236328125031],[101.87363281250012,5.825292968749991],[101.67841796875004,5.778808593750028],[101.5560546875,5.907763671875003],[101.1139648437501,5.636767578125045],[100.98164062500004,5.771044921875045],[101.05351562500002,6.242578125],[100.87392578125,6.24541015624996],[100.75449218750012,6.460058593749991],[100.3454101562501,6.549902343750006],[100.26142578125004,6.682714843749963],[100.11914062499997,6.441992187500048],[99.69599609375004,6.87666015625004],[99.72031250000012,7.106201171875],[99.55302734375002,7.218798828125031],[99.59697265625002,7.355615234375009],[99.35859375000004,7.372216796875023],[99.26367187499997,7.619042968750037],[99.07763671874997,7.718066406250045],[99.05107421875002,7.887841796874994],[98.78867187500012,8.059814453125028],[98.703515625,8.256738281250009],[98.57919921875006,8.344287109374989],[98.42099609375006,8.17822265625],[98.30546875000007,8.226220703125009],[98.24179687500006,8.767871093750045],[98.70253906250005,10.19038085937504],[98.7572265625,10.660937499999974],[99.1901367187501,11.105273437499989],[99.61474609374997,11.781201171875026],[99.40507812500002,12.547900390625003],[99.12392578125,13.030761718750043],[99.13681640625006,13.716699218749994],[98.57001953125004,14.359912109375031],[98.20214843749997,14.97592773437502],[98.19101562500012,15.204101562499972],[98.55693359375007,15.367675781249986],[98.59238281250006,16.05068359375005],[98.81796875000012,16.180810546874994],[98.88828125000006,16.351904296875034],[98.83544921875003,16.417578125],[98.66074218750006,16.330419921875006],[98.4388671875,16.975683593750034],[97.7064453125,17.79711914062503],[97.63222656250005,18.290332031250074],[97.37392578125,18.51796875],[97.74589843750002,18.58818359374999],[97.816796875,19.459960937500057],[98.01503906250005,19.74951171874997],[98.37128906250004,19.68916015625004],[98.9166992187501,19.77290039062504],[99.07421875000003,20.09936523437503],[99.48593750000006,20.14985351562501],[99.45888671875005,20.363037109375],[99.72011718750005,20.32543945312497],[99.8903320312501,20.424414062499977],[99.9542968750001,20.415429687500023],[100.0036132812501,20.37958984375001],[100.12246093750005,20.316650390625057]]]]},"properties":{"name":"Thailand","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[70.66416015625,39.85546875],[70.55957031250003,39.790917968749994],[70.48925781250003,39.86303710937503],[70.48281250000005,39.88271484375005],[70.49775390625004,39.88242187499998],[70.56708984375004,39.86660156250005],[70.66416015625,39.85546875]]],[[[70.95800781250003,40.238867187500034],[70.59921875,39.974511718749994],[69.96679687499997,40.202246093750034],[69.46875,40.020751953125],[69.47099609375002,39.990625],[69.43193359375007,39.909765625000034],[69.36542968750004,39.94707031250002],[69.30722656250006,39.968554687500045],[69.27880859374997,39.91777343749999],[69.24472656250006,39.82709960937498],[69.29765625000007,39.52480468750005],[70.50117187500004,39.58735351562501],[70.79931640625003,39.39472656250001],[71.4703125,39.60366210937502],[71.50302734375006,39.58217773437502],[71.51738281250002,39.55385742187502],[71.50585937499997,39.51708984374997],[71.5033203125,39.47880859374999],[71.73222656250002,39.422998046874994],[71.77861328125007,39.27797851562502],[72.04277343750002,39.352148437500034],[72.08417968750004,39.310644531250034],[72.14736328125005,39.26074218749997],[72.22998046874997,39.20751953124997],[72.63994140625002,39.385986328125],[73.10927734375,39.36191406249998],[73.2349609375,39.37456054687499],[73.3361328125001,39.41235351562506],[73.38740234375004,39.442724609375034],[73.4704101562501,39.46059570312502],[73.63164062500007,39.44887695312502],[73.63632812500006,39.396679687499955],[73.60732421875,39.229199218749955],[73.8052734375,38.968652343749994],[73.69609375000007,38.85429687499996],[73.80166015625,38.60688476562501],[74.02558593750004,38.53984375000002],[74.27744140625,38.659765625000034],[74.81230468750002,38.46030273437498],[74.8942382812501,37.60141601562498],[75.11875,37.38569335937498],[74.89130859375004,37.231640624999955],[74.875390625,37.24199218750002],[74.83046875,37.28593750000002],[74.73056640625006,37.35703125],[74.659375,37.39448242187501],[74.34902343750005,37.41875],[74.25966796875005,37.41542968750002],[74.20351562500005,37.37246093750005],[74.16708984375,37.32944335937498],[73.74960937500006,37.23178710937498],[73.6535156250001,37.239355468750034],[73.62753906250006,37.261572265625006],[73.71728515625003,37.32944335937498],[73.7337890625,37.37578125000002],[73.72060546875,37.41875],[73.65712890625005,37.43046875],[73.6046875000001,37.44604492187503],[73.48134765625,37.4716796875],[73.38291015625006,37.462255859375034],[73.21113281250004,37.40849609375002],[72.89550781250003,37.26752929687498],[72.65742187500004,37.029052734375],[71.665625,36.696923828124994],[71.530859375,36.845117187499994],[71.43291015625007,37.12753906249998],[71.5822265625001,37.91010742187498],[71.55195312500004,37.93315429687496],[71.48779296874997,37.93188476562497],[71.38964843750003,37.90629882812502],[71.31992187500006,37.90185546875],[71.27851562500004,37.91840820312498],[71.33271484375004,38.170263671875034],[71.25585937499997,38.306982421875006],[70.7359375,38.42255859375001],[70.41777343750002,38.075439453125],[70.21464843750002,37.92441406250006],[70.19941406250004,37.88603515624996],[70.25498046875006,37.76538085937497],[70.25146484374997,37.66416015625006],[70.18867187500004,37.58247070312501],[70.11982421875004,37.54350585937499],[69.9849609375,37.566162109375],[69.8208984375,37.60957031250004],[69.62578125000002,37.59404296874999],[69.49208984375,37.55307617187498],[69.42011718750004,37.486718749999966],[69.39921875000007,37.39931640625002],[69.42968749999997,37.290869140625034],[69.414453125,37.20776367187497],[69.35380859375007,37.15004882812502],[69.3039062500001,37.11694335937503],[69.26484375000004,37.1083984375],[69.18017578125003,37.158300781250034],[68.96044921875003,37.32504882812498],[68.9118164062501,37.33393554687501],[68.88525390624997,37.32807617187498],[68.85537109375005,37.31684570312501],[68.83847656250006,37.30283203124998],[68.82373046874997,37.27070312500001],[68.78203125000002,37.25800781250001],[68.7232421875,37.26801757812501],[68.6691406250001,37.258398437500006],[68.3869140625001,37.1375],[68.29951171875004,37.08842773437502],[68.28476562500006,37.036328124999955],[68.2609375000001,37.01308593750002],[68.2121093750001,37.02153320312496],[68.0677734375,36.949804687500006],[67.95800781249997,36.972021484375006],[67.83447265624997,37.06420898437506],[67.75898437500004,37.172216796875034],[67.7980468750001,37.244970703125006],[67.81435546875005,37.48701171875004],[68.3502929687501,38.211035156250006],[68.08720703125002,38.47353515625002],[68.13251953125004,38.927636718749966],[67.69443359375006,38.99462890625003],[67.64833984375005,39.13105468750004],[67.3576171875001,39.216699218749994],[67.426171875,39.46557617187497],[67.71904296875007,39.62138671875002],[68.46328125,39.53671874999998],[68.63896484375007,39.8388671875],[68.86875,39.90747070312503],[68.80468750000003,40.05034179687499],[68.9720703125,40.08994140624998],[68.63066406250007,40.16708984374998],[69.27490234374997,40.19809570312498],[69.20625,40.566552734374994],[69.35722656250002,40.76738281249996],[69.71289062500003,40.65698242187503],[70.40195312500006,41.03510742187498],[70.75107421875006,40.721777343750006],[70.37158203125003,40.38413085937506],[70.653125,40.201171875],[70.95800781250003,40.238867187500034]]]]},"properties":{"name":"Tajikistan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[66.52226562500007,37.34848632812506],[66.471875,37.3447265625],[65.7650390625,37.56914062499996],[65.55498046875002,37.25117187500004],[65.30361328125005,37.24677734375001],[65.08964843750007,37.237939453124994],[64.9515625,37.19355468750001],[64.81630859375005,37.13208007812503],[64.7824218750001,37.05927734375001],[64.60253906250003,36.554541015625034],[64.5658203125,36.427587890625034],[64.51103515625002,36.34067382812498],[64.184375,36.14892578125],[63.8625,36.012353515624994],[63.12998046875006,35.84619140624997],[63.169726562500074,35.678125],[63.05664062500003,35.44580078125003],[62.98027343750002,35.40917968750003],[62.85800781250006,35.34965820312499],[62.688085937500006,35.25532226562504],[62.3078125000001,35.17080078125005],[62.08964843750002,35.3796875],[61.62099609375005,35.43232421875004],[61.34472656249997,35.62949218750006],[61.26201171875002,35.61958007812498],[61.25214843750004,35.86762695312498],[61.15292968750006,35.97675781250001],[61.212011718750006,36.190527343750034],[61.11962890625003,36.64257812500003],[60.34130859375003,36.63764648437501],[60.06279296875002,36.962890625],[59.454980468749994,37.25283203125002],[59.30175781249997,37.51064453125005],[58.81542968750003,37.683496093749994],[58.261621093749994,37.665820312500045],[57.35371093750004,37.97333984374998],[57.1935546875001,38.216406250000034],[56.440625,38.249414062499994],[56.272070312500006,38.080419921875034],[55.38085937500003,38.051123046875034],[54.90009765625004,37.77792968750006],[54.6994140625001,37.47016601562498],[53.91416015625006,37.34355468750002],[53.86865234375003,38.949267578125045],[53.70458984375003,39.209570312500034],[53.33632812500005,39.34082031250006],[53.15664062499999,39.26499023437506],[53.23564453125002,39.608544921874966],[53.603125,39.546972656250034],[53.472265625,39.66879882812498],[53.48730468749997,39.909375],[52.9875,39.98759765625002],[53.03554687500005,39.7744140625],[52.80468749999997,40.054003906250045],[52.73369140625002,40.39873046875002],[52.943457031250006,41.03808593750006],[53.1452148437501,40.82495117187497],[53.61523437500003,40.818505859374994],[53.87001953125005,40.64868164062503],[54.37734375,40.693261718749966],[54.319433593750006,40.83457031249998],[54.68505859375003,40.873046875],[54.70371093750006,41.071142578125034],[54.094824218750006,41.51938476562506],[53.80468749999997,42.11762695312498],[53.16416015625006,42.09379882812502],[52.97001953125002,41.97622070312505],[52.81484375,41.711816406249994],[52.850390625000074,41.20029296875006],[52.4938476562501,41.780371093750034],[53.0558593750001,42.14775390624999],[54.120996093749994,42.335205078125],[54.85380859375002,41.965185546875006],[55.434375,41.296289062499994],[55.97744140625005,41.32221679687504],[57.01796875,41.26347656249996],[57.11884765625004,41.35029296874998],[56.96406250000004,41.856542968750006],[57.290625,42.123779296875],[57.814257812500074,42.18984375000005],[58.02890625,42.48764648437506],[58.474414062500074,42.29936523437496],[58.15156250000004,42.628076171874966],[58.477148437500006,42.66284179687503],[58.5890625000001,42.778466796874966],[59.35429687500002,42.32329101562496],[59.98515625000002,42.21171875],[59.94179687499999,41.97353515625002],[60.20078125000006,41.803125],[60.07558593750005,41.759667968749966],[60.089648437500074,41.39941406250003],[60.454980468749994,41.221630859374955],[61.2423828125001,41.18920898437503],[61.496972656249994,41.276074218749955],[61.90283203124997,41.09370117187501],[62.48320312500002,39.97563476562496],[63.76367187500003,39.16054687499999],[64.3099609375,38.97729492187497],[65.612890625,38.23857421875002],[65.97119140624997,38.244238281250006],[66.60625,37.98671875000005],[66.52558593750004,37.785742187500034],[66.51132812500006,37.59916992187496],[66.51064453125,37.45869140625004],[66.52226562500007,37.34848632812506]]]},"properties":{"name":"Turkmenistan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[124.0363281250001,-9.341601562500031],[124.44443359375012,-9.190332031250023],[124.28232421875012,-9.427929687500026],[124.0363281250001,-9.341601562500031]]],[[[125.06816406250002,-9.511914062499997],[124.96015625000004,-9.213769531250009],[125.10048828125,-9.189843750000023],[125.14902343750012,-9.042578125000034],[124.93681640625007,-9.053417968750026],[124.92226562500005,-8.942480468749977],[125.17802734375002,-8.647851562499994],[125.38183593749997,-8.575390624999983],[126.61972656250006,-8.459472656249986],[126.96640625000012,-8.315722656250017],[127.29609375000004,-8.424511718749969],[126.91523437500004,-8.715234374999966],[125.40800781250002,-9.275781250000023],[125.06816406250002,-9.511914062499997]]],[[[125.64609375000006,-8.139941406250003],[125.5794921875,-8.311816406250017],[125.50712890625007,-8.275097656249997],[125.64609375000006,-8.139941406250003]]]]},"properties":{"name":"Timor-Leste","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-175.1619140625,-21.169335937500023],[-175.07817382812496,-21.129003906249977],[-175.15659179687495,-21.26367187499997],[-175.36235351562496,-21.106835937499994],[-175.1619140625,-21.169335937500023]]],[[[-173.953515625,-18.63935546875001],[-174.06914062500002,-18.640234375],[-173.96806640624993,-18.565332031250023],[-173.953515625,-18.63935546875001]]]]},"properties":{"name":"Tonga","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-61.012109374999966,10.134326171874989],[-61.906103515625006,10.069140625000031],[-61.49931640624999,10.268554687499972],[-61.47827148437497,10.603369140624977],[-61.65117187499993,10.718066406249974],[-60.917626953124966,10.84023437499999],[-61.03374023437502,10.669873046875026],[-61.012109374999966,10.134326171874989]]]},"properties":{"name":"Trinidad and Tobago","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[10.957617187500063,33.72207031250005],[10.722070312500051,33.738916015624994],[10.745214843750063,33.88867187500006],[11.017871093749989,33.82333984374998],[10.957617187500063,33.72207031250005]]],[[[11.278027343750068,34.753808593749994],[11.123632812500063,34.68168945312496],[11.254882812500057,34.82031250000006],[11.278027343750068,34.753808593749994]]],[[[10.274609375000011,31.684960937499994],[10.114941406250068,31.46376953125005],[10.216406250000063,30.78320312500003],[10.05976562500004,30.58007812500003],[9.932519531250051,30.42534179687496],[9.895019531250028,30.387304687500034],[9.51875,30.229394531249994],[9.224023437500023,31.373681640624994],[9.160253906250006,31.621337890625],[9.044042968750034,32.072363281250034],[8.333398437500051,32.54360351562502],[8.1125,33.055322265624994],[7.877246093750017,33.172119140625],[7.534375,33.717919921874994],[7.513867187500068,34.080517578124955],[8.24560546875,34.73408203124998],[8.276855468750057,34.97949218749997],[8.312109375000063,35.084619140624994],[8.394238281250011,35.20385742187503],[8.318066406250011,35.654931640624994],[8.348730468750063,36.367968750000045],[8.207617187500006,36.518945312499994],[8.601269531250068,36.83393554687504],[8.576562500000023,36.93720703125001],[9.687988281250057,37.34038085937499],[9.838476562500063,37.30898437499999],[9.830273437499983,37.13535156250006],[9.875585937499977,37.25415039062503],[10.196386718750063,37.205859375000045],[10.293261718750074,36.781494140625],[10.412304687499983,36.73183593750002],[11.053906250000068,37.07250976562506],[11.12666015625004,36.874072265625045],[10.476562500000028,36.175146484375006],[10.590820312500028,35.88725585937499],[11.00429687500008,35.63383789062496],[11.120117187500057,35.24028320312499],[10.69091796875,34.67846679687503],[10.118359375000068,34.280078125000045],[10.049023437500068,34.056298828124994],[10.305273437500034,33.72827148437497],[10.713183593750017,33.68901367187496],[10.722753906250006,33.514404296875],[10.958007812500057,33.62631835937498],[11.257421875000034,33.30883789062506],[11.202636718749972,33.24921874999998],[11.50458984375004,33.181933593750045],[11.502441406250028,33.15556640624999],[11.467187500000051,32.96572265625005],[11.459179687500011,32.897363281249966],[11.453906250000017,32.64257812500003],[11.533789062500034,32.52495117187496],[11.535937500000017,32.47333984375001],[11.504980468750034,32.413671875000034],[11.358007812500006,32.34521484375003],[11.168261718750074,32.25673828125002],[11.005175781250074,32.17270507812506],[10.826367187500068,32.080664062500034],[10.771582031250006,32.02119140625001],[10.60888671875,31.929541015624977],[10.47578125000004,31.736035156249983],[10.274609375000011,31.684960937499994]]]]},"properties":{"name":"Tunisia","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[25.970019531250045,40.136328125],[25.6689453125,40.13588867187502],[25.918359375000023,40.23798828125004],[25.970019531250045,40.136328125]]],[[[43.43339843750002,41.155517578125],[43.43945312500003,41.10712890625001],[43.72265624999997,40.71953124999999],[43.56933593750003,40.48237304687498],[43.66621093750004,40.12636718750002],[44.28925781250004,40.040380859375006],[44.76826171875004,39.70351562500005],[44.81718750000002,39.65043945312496],[44.58710937500004,39.76855468750006],[44.3893554687501,39.422119140625],[44.02324218750002,39.37744140625006],[44.27167968750004,38.83603515625006],[44.2985351562501,38.38627929687499],[44.4499023437501,38.33422851562506],[44.21132812499999,37.908056640625006],[44.589941406250006,37.710351562499966],[44.574023437500074,37.435400390625006],[44.79414062500004,37.290380859375034],[44.76513671875003,37.142431640625006],[44.73095703124997,37.16528320312503],[44.66933593750005,37.17358398437503],[44.60595703124997,37.176025390625],[44.401953125,37.05849609375002],[44.325585937499994,37.0107421875],[44.28183593750006,36.97802734374997],[44.24570312500006,36.983300781249994],[44.20166015624997,37.05180664062502],[44.208398437499994,37.20263671875],[44.19179687499999,37.249853515625034],[44.15625,37.28295898437503],[44.11445312500004,37.30185546875006],[44.01318359375003,37.313525390625045],[43.83642578124997,37.223535156249994],[43.67578125000003,37.227246093749955],[43.09248046875004,37.36738281249998],[42.936621093750006,37.32475585937502],[42.77460937500004,37.371875],[42.74111328125005,37.361914062500034],[42.6354492187501,37.249267578125],[42.45585937500002,37.128710937500045],[42.358984375,37.10859375000004],[42.31289062499999,37.22958984374998],[42.26855468749997,37.276562499999955],[42.24755859375003,37.28222656250006],[42.20273437500006,37.29726562499999],[42.16787109375005,37.28862304687502],[42.059863281250074,37.2060546875],[41.886816406250006,37.156396484374994],[40.70566406250006,37.09770507812502],[40.4503906250001,37.00888671875006],[40.016406250000074,36.82607421875002],[39.68652343749997,36.73862304687506],[39.50146484374997,36.702246093750034],[39.35664062500004,36.68159179687498],[39.10839843749997,36.68056640625005],[38.90644531250004,36.69467773437498],[38.76660156249997,36.69311523437503],[38.19169921875002,36.90156250000004],[37.90664062500005,36.79462890625001],[37.7203125,36.74370117187502],[37.52353515625006,36.678320312500034],[37.436328125000074,36.643310546875],[37.327050781249994,36.64658203125006],[37.18740234375005,36.655908203124994],[37.066210937500074,36.652636718750045],[36.98535156250003,36.70239257812506],[36.94179687499999,36.758398437500006],[36.77656250000004,36.79267578124998],[36.65859375000005,36.80253906250002],[36.62841796875003,36.777685546875034],[36.596875,36.70136718750001],[36.546679687500074,36.50634765625],[36.5375,36.457421874999966],[36.63671874999997,36.233984375],[36.37539062499999,36.171240234375034],[36.347558593749994,36.003515625000034],[36.20195312500002,35.93754882812502],[36.15361328125002,35.83388671875005],[36.12734375,35.831445312499994],[35.967578125000074,35.91005859375002],[35.89267578125006,35.91655273437502],[35.81093750000005,36.30986328125002],[36.18847656250003,36.65898437499999],[36.048925781250006,36.91059570312501],[35.393164062500006,36.57519531249997],[34.70361328125003,36.81679687499999],[33.694726562499994,36.18198242187498],[32.794824218749994,36.03588867187497],[32.37773437500002,36.18364257812496],[32.02197265625003,36.53530273437502],[31.35253906249997,36.80107421874999],[30.64404296874997,36.86567382812501],[30.446093750000074,36.269873046875034],[29.6890625,36.15668945312498],[29.22363281249997,36.32446289062497],[28.96962890625008,36.71533203125003],[28.303710937500057,36.81196289062498],[28.01943359375005,36.63447265624998],[28.083984375000057,36.75146484375],[27.453906250000017,36.712158203125],[28.00537109375003,36.83198242187498],[28.242382812500068,37.029052734375],[27.262988281250045,36.97656250000003],[27.30019531250005,37.12685546875002],[27.53505859375005,37.16386718750002],[27.06796875,37.65791015625004],[27.224414062500074,37.725439453125006],[27.23242187500003,37.978662109374994],[26.29072265625001,38.27719726562498],[26.44130859375005,38.64121093749998],[26.67421875000008,38.33574218750002],[27.14423828125001,38.45195312499996],[26.906835937500034,38.48173828124999],[26.763671875,38.709619140624966],[27.013671875000057,38.88686523437502],[26.814941406250057,38.96098632812502],[26.853613281250034,39.115625],[26.68183593750004,39.292236328125],[26.89921874999999,39.549658203125034],[26.113085937500074,39.46738281249998],[26.101367187500074,39.56894531249998],[26.18134765625004,39.99008789062498],[26.738085937500045,40.40024414062506],[27.28457031250008,40.45561523437496],[27.4755859375,40.319921875000034],[27.72802734375,40.32880859374998],[27.84853515625005,40.38173828125002],[27.73183593750008,40.48149414062499],[27.87490234375008,40.512939453125],[27.989550781250074,40.48945312500001],[27.96259765625001,40.369873046875],[29.00712890624999,40.389746093750034],[28.787890625000017,40.534033203125034],[28.95800781250003,40.63056640624998],[29.849218750000063,40.760107421875006],[29.113867187499977,40.93784179687506],[29.14814453125004,41.221044921875034],[31.25488281249997,41.10761718750001],[31.45800781249997,41.32001953125004],[32.306445312500074,41.72958984374998],[33.38134765625003,42.01757812500003],[34.75048828124997,41.95683593749999],[35.006445312500006,42.06328125000002],[35.15488281250006,42.02753906250001],[35.12207031250003,41.89111328125003],[35.297753906249994,41.72851562500003],[35.558007812499994,41.63403320312506],[36.05175781249997,41.68256835937498],[36.40537109375006,41.27460937500001],[36.77773437499999,41.36347656250001],[37.066210937500074,41.184423828125034],[38.38105468750004,40.92451171875001],[39.426367187500006,41.10644531250003],[40.26523437500006,40.96132812500005],[41.08359375000006,41.26118164062504],[41.41435546875002,41.42363281249999],[41.510058593750074,41.51748046875002],[41.70175781250006,41.471582031249994],[41.77939453125006,41.44052734374998],[41.823535156250074,41.432373046875],[41.92578125000003,41.49565429687502],[42.46640625,41.43984375000002],[42.56738281249997,41.55927734375001],[42.590429687500006,41.57070312500002],[42.60683593750005,41.57880859374998],[42.682421875000074,41.58574218749999],[42.75410156250004,41.57890625000002],[42.787890625000074,41.56372070312503],[42.82167968750005,41.49238281249998],[42.90673828125003,41.46684570312502],[43.05712890625003,41.35283203124996],[43.149023437500006,41.30712890624997],[43.171289062499994,41.28793945312498],[43.14101562499999,41.26484374999998],[43.15283203124997,41.23642578125006],[43.20546875000005,41.19916992187501],[43.43339843750002,41.155517578125]]],[[[27.47480468750001,41.946875],[28.014453125000017,41.96904296874999],[28.197851562500063,41.55449218750002],[29.057226562500006,41.22973632812503],[28.95625,41.00820312499999],[28.172167968750074,41.08071289062502],[27.49941406250005,40.97314453124997],[27.258007812499983,40.687353515625006],[26.772070312500034,40.498046875],[26.202734375000034,40.07539062500004],[26.25380859375005,40.31469726562503],[26.792089843750034,40.626611328124994],[26.10546875000003,40.61132812499997],[26.03896484375008,40.726757812499955],[26.331054687500057,40.954492187499994],[26.330664062499977,41.23876953125],[26.62490234375008,41.401757812499994],[26.581347656250074,41.60126953125004],[26.320898437500034,41.716552734375],[26.3603515625,41.80156249999999],[26.51142578125004,41.82636718749998],[26.549707031250023,41.896728515625],[26.5796875,41.947949218749955],[26.615332031250063,41.964892578125045],[26.884863281250006,41.99184570312502],[26.96875,42.02685546875006],[27.01171875,42.05864257812496],[27.193359375000057,42.07709960937498],[27.24433593750004,42.09326171875],[27.294921875000057,42.079541015624955],[27.47480468750001,41.946875]]]]},"properties":{"name":"Turkey","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[39.71132812499999,-7.977441406250023],[39.602929687499994,-7.936132812499949],[39.907128906249994,-7.649218750000031],[39.71132812499999,-7.977441406250023]]],[[[39.49648437499999,-6.174609375],[39.573046875000074,-6.387402343750011],[39.48095703124997,-6.45371093750002],[39.18232421875004,-6.172558593750026],[39.30898437499999,-5.721972656249974],[39.49648437499999,-6.174609375]]],[[[39.86503906250002,-4.906152343750037],[39.74931640625002,-5.443847656249986],[39.646777343750074,-5.368554687500009],[39.6734375,-4.927050781250031],[39.86503906250002,-4.906152343750037]]],[[[33.90322265625005,-1.002050781250034],[37.643847656250074,-3.045410156250028],[37.608203125000074,-3.497070312500028],[39.221777343750006,-4.692382812500014],[38.80468750000003,-6.070117187500031],[38.87402343750003,-6.33125],[39.5460937500001,-7.024023437500034],[39.288476562499994,-7.517871093750003],[39.28701171875005,-7.787695312500006],[39.4284179687501,-7.81279296874996],[39.441015625,-8.011523437499946],[39.304003906250074,-8.44384765625],[39.451269531250006,-8.94296875],[39.64130859375004,-9.19248046875002],[39.72519531250006,-10.000488281249972],[40.46357421875004,-10.464355468749972],[39.98867187499999,-10.820800781250014],[39.81708984375004,-10.912402343750031],[38.9875,-11.167285156250003],[38.49179687500006,-11.413281250000026],[37.92021484375002,-11.294726562500031],[37.72480468750004,-11.58066406250002],[37.54169921875004,-11.675097656249974],[37.37285156250002,-11.710449218749986],[36.97890625000005,-11.566992187499977],[36.30566406250003,-11.706347656249946],[36.191308593749994,-11.670703124999974],[36.17548828125004,-11.60927734374998],[36.08222656250004,-11.537304687499969],[35.91132812500004,-11.45468750000002],[35.785449218750074,-11.452929687500017],[35.63095703125006,-11.582031250000028],[35.564355468749994,-11.602343749999989],[35.418261718750074,-11.583203125],[35.18261718750003,-11.574804687499977],[34.95947265625003,-11.578125],[34.93701171874997,-11.463476562500034],[34.890625,-11.3935546875],[34.77382812500005,-11.341699218750009],[34.60791015624997,-11.08046875],[34.66708984375006,-10.792480468750028],[34.56992187500006,-10.241113281249966],[34.32089843750006,-9.731542968749977],[33.99560546875003,-9.495410156250003],[33.88886718750004,-9.670117187499983],[32.91992187500003,-9.407421875000026],[32.75664062500002,-9.322265625],[31.94257812500004,-9.05400390624996],[31.91865234375004,-8.942187500000017],[31.886132812499994,-8.921972656249977],[31.81806640625004,-8.902246093749952],[31.673632812500017,-8.908789062499963],[31.55625,-8.80546875],[31.44921874999997,-8.65390625],[31.35058593750003,-8.607031250000034],[31.07636718750004,-8.611914062499963],[30.968359375000063,-8.550976562499983],[30.89199218750005,-8.473730468749963],[30.830664062500063,-8.385546875000031],[30.720898437500097,-8.104394531250037],[30.40673828125003,-7.460644531249983],[30.313183593750097,-7.203710937499949],[30.212695312500017,-7.037890625000017],[30.10625,-6.915039062500028],[29.961816406249994,-6.803125],[29.798144531250017,-6.691894531249957],[29.70966796875004,-6.61689453125004],[29.590625,-6.394433593750023],[29.540820312500017,-6.313867187500037],[29.50625,-6.172070312500011],[29.480078125,-6.025],[29.490820312500063,-5.96542968750002],[29.59638671875004,-5.775976562499963],[29.60703125,-5.722656250000028],[29.59414062500005,-5.650781250000037],[29.542382812499994,-5.499804687500017],[29.34277343749997,-4.983105468749997],[29.32343750000004,-4.898828124999966],[29.32568359374997,-4.835644531249969],[29.404199218749994,-4.49667968750002],[29.40322265625005,-4.449316406249963],[29.71777343750003,-4.45585937499996],[29.94726562499997,-4.307324218749983],[30.4,-3.65390625],[30.790234375000097,-3.274609375000011],[30.811132812500006,-3.116406250000011],[30.78027343750003,-2.984863281249957],[30.70947265624997,-2.977246093749997],[30.604296875000074,-2.935253906249969],[30.515039062499994,-2.917578125],[30.45556640625003,-2.893164062500006],[30.433496093749994,-2.874511718750028],[30.424023437500097,-2.82402343749996],[30.473339843750097,-2.6943359375],[30.42421875000005,-2.641601562500014],[30.441992187500006,-2.613476562499969],[30.53369140624997,-2.426269531250014],[30.55361328125005,-2.400097656250011],[30.593359375000063,-2.39677734374996],[30.65664062500005,-2.373828124999989],[30.71484375000003,-2.363476562500011],[30.7625,-2.371679687499991],[30.828710937500006,-2.338476562499977],[30.85498046874997,-2.265429687500017],[30.8765625,-2.143359375000017],[30.864648437499994,-2.044042968749949],[30.819140625000017,-1.967480468749983],[30.812597656250006,-1.56308593750002],[30.76220703124997,-1.458691406249983],[30.710742187500074,-1.396777343749974],[30.631933593750006,-1.36748046874996],[30.508105468750074,-1.208203125000026],[30.47021484374997,-1.13115234374996],[30.47705078124997,-1.0830078125],[30.509960937500097,-1.067285156249994],[30.51992187499999,-1.0625],[30.67275390625005,-1.051367187499949],[30.741992187500017,-1.007519531249997],[30.809179687500063,-0.994921875],[30.82363281250005,-0.999023437499943],[30.84472656250003,-1.002050781250034],[32.371875,-1.002050781250034],[33.90322265625005,-1.002050781250034]]]]},"properties":{"name":"Tanzania","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[30.50996093750001,-1.067285156250009],[30.46992187500001,-1.066015625],[30.41230468750001,-1.063085937500006],[30.360253906250023,-1.074609375],[29.930078125000023,-1.469921875000011],[29.82539062500001,-1.335546875],[29.576953125000017,-1.387890625000011],[29.717675781250023,0.098339843749997],[29.934472656250023,0.4990234375],[29.94287109375,0.819238281249994],[31.252734375000017,2.044580078124994],[31.176367187500006,2.270068359374989],[30.728613281250006,2.455371093749989],[30.8466796875,2.847021484374991],[30.754003906250006,3.041796874999989],[30.90644531250001,3.408935546875],[30.83857421875001,3.49072265625],[31.15234375,3.785595703124997],[31.547167968750017,3.677587890624991],[31.79804687500001,3.802636718749994],[32.13593750000001,3.519726562499997],[32.33574218750002,3.706201171874994],[32.99726562500001,3.880175781249989],[33.489355468750006,3.755078125],[33.568457031250006,3.81171875],[33.74160156250002,3.985253906249994],[33.97607421875,4.22021484375],[34.13203125000001,3.88916015625],[34.18574218750001,3.869775390624994],[34.1650390625,3.81298828125],[34.26708984375,3.733154296875],[34.39287109375002,3.691503906249991],[34.43769531250001,3.650585937499997],[34.44179687500002,3.60625],[34.3994140625,3.412695312499991],[34.4072265625,3.357519531249991],[34.447851562500006,3.163476562499994],[34.90576171875,2.4796875],[34.88300781250001,2.417919921874997],[34.96406250000001,2.062402343749994],[34.9775390625,1.861914062499991],[34.97646484375002,1.719628906249994],[34.79863281250002,1.24453125],[34.48173828125002,1.042138671874994],[34.41083984375001,0.867285156249991],[34.16093750000002,0.605175781249997],[33.94316406250002,0.173779296874997],[33.90322265625002,-1.002050781250006],[32.371875,-1.002050781250006],[30.8447265625,-1.002050781250006],[30.823632812500023,-0.9990234375],[30.809179687500006,-0.994921875],[30.741992187500017,-1.007519531250011],[30.672753906250023,-1.051367187500006],[30.598730468750006,-1.069726562500009],[30.519921875000023,-1.0625],[30.50996093750001,-1.067285156250009]]]},"properties":{"name":"Uganda","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[32.01220703124997,46.20390624999999],[32.15009765625004,46.1546875],[31.56386718750005,46.25776367187504],[31.50878906250003,46.373144531250006],[32.01220703124997,46.20390624999999]]],[[[38.21435546875003,47.091455078124966],[37.54335937499999,47.07456054687498],[36.794824218749994,46.71440429687499],[36.55878906250004,46.76269531250006],[35.82714843749997,46.62431640625002],[35.01455078125005,46.10600585937502],[35.280175781249994,46.27949218750001],[35.23037109375005,46.440625],[34.84960937500003,46.189892578124955],[35.02285156250005,45.70097656250002],[35.45751953124997,45.316308593749994],[36.170507812500006,45.453076171874955],[36.575,45.3935546875],[36.39335937500002,45.06538085937501],[35.87011718750003,45.005322265624955],[35.472558593749994,45.098486328125006],[35.08769531250002,44.802636718749966],[34.46992187500004,44.7216796875],[33.909960937500074,44.387597656249966],[33.45068359374997,44.553662109374955],[33.55517578125003,45.09765625000003],[32.5080078125001,45.40380859375006],[33.664843750000074,45.94707031249996],[33.59414062500005,46.09624023437499],[33.42988281250004,46.05761718750003],[33.20224609375006,46.17573242187501],[32.47675781250004,46.08369140625001],[31.83125,46.28168945312501],[32.00849609375004,46.42998046875002],[31.554882812500097,46.554296875000034],[32.36132812499997,46.474951171875034],[32.578027343749994,46.615625],[32.04433593750005,46.642480468749966],[31.75917968750005,47.21284179687501],[31.872851562500017,46.649755859375034],[31.532128906249994,46.66474609374998],[31.56337890625005,46.77729492187501],[31.402929687500063,46.62880859375002],[30.796289062499994,46.55200195312503],[30.219042968750074,45.866748046875045],[29.62841796875003,45.722460937500045],[29.705859375000074,45.25991210937505],[29.567675781250074,45.37080078124998],[29.40371093750005,45.419677734375],[29.22353515625005,45.402929687500034],[28.894335937500017,45.28994140625002],[28.78173828125,45.30986328125002],[28.76660156250003,45.28623046874998],[28.78828125000001,45.240966796875],[28.451269531250006,45.292187499999955],[28.317675781250045,45.347119140624955],[28.2125,45.45043945312506],[28.26484375000004,45.48388671875003],[28.310351562500074,45.49858398437499],[28.499023437500057,45.517724609374994],[28.513769531250034,45.57241210937502],[28.49160156250005,45.66577148437503],[28.562304687500074,45.73579101562501],[28.667578125,45.79384765625002],[28.729296875000074,45.852001953124955],[28.73876953125003,45.937158203124994],[28.84951171875005,45.97866210937502],[28.94775390624997,46.049951171874966],[28.971875,46.12763671874998],[29.00625,46.17646484374998],[28.94375,46.28842773437506],[28.930566406250023,46.36225585937501],[28.92744140625001,46.42412109374999],[28.958398437500023,46.45849609374997],[29.146289062500017,46.52690429687496],[29.186230468750068,46.52397460937499],[29.20078125,46.504980468750034],[29.20458984374997,46.37934570312501],[29.223828125000097,46.37695312499997],[29.458789062500017,46.453759765624994],[29.83789062499997,46.35053710937501],[29.878027343750063,46.360205078125034],[30.07568359375003,46.377832031249966],[30.131054687500097,46.42309570312506],[29.92431640624997,46.53886718750002],[29.934765625000097,46.625],[29.942480468750063,46.72377929687502],[29.918066406250063,46.78242187499998],[29.877832031249994,46.828906250000045],[29.57197265625004,46.96401367187502],[29.455664062500006,47.292626953124994],[29.134863281250006,47.48969726562501],[29.125390625000023,47.96455078125001],[28.42304687500001,48.146875],[28.34052734375001,48.144433593749994],[27.54921875000008,48.47773437500004],[27.22851562500003,48.37143554687506],[26.90058593750001,48.37192382812506],[26.847070312500023,48.387158203124955],[26.640429687500045,48.29414062500001],[26.618945312500017,48.25986328125006],[26.4423828125,48.22998046875],[26.162695312500063,47.992529296875034],[25.90869140625,47.96757812500002],[25.689257812500045,47.93247070312506],[25.46425781250005,47.910791015624994],[24.979101562500063,47.72412109374997],[24.578906250000074,47.93105468750005],[23.628710937500017,47.995849609375],[23.40820312500003,47.98999023437506],[23.20263671875,48.084521484375045],[23.13945312499999,48.08740234375],[22.87666015625001,47.94726562500006],[22.769140625000063,48.109619140625],[22.582421875000023,48.134033203125],[22.253710937500017,48.407373046874994],[22.131835937500057,48.40532226562502],[22.142871093750017,48.568505859374966],[22.295214843750045,48.68583984374999],[22.389453125000045,48.87348632812501],[22.52412109375004,49.03139648437502],[22.538671875,49.07270507812501],[22.847070312500023,49.08125],[22.705664062500006,49.17119140624999],[22.6494140625,49.53901367187498],[22.706152343750006,49.60620117187497],[23.03632812500004,49.899072265624966],[23.711718750000045,50.377343749999966],[23.97265625,50.410058593749966],[24.089941406250006,50.53046874999998],[24.0947265625,50.617041015625034],[23.9970703125,50.809375],[24.095800781250063,50.87275390625001],[23.664453125000023,51.31005859375],[23.61376953125,51.525390625],[23.706835937500045,51.64130859374998],[23.79169921875001,51.63710937500002],[23.864257812500057,51.62397460937501],[23.951171875,51.58505859374998],[23.978320312500017,51.59130859375003],[24.12685546875008,51.664648437500034],[24.280078125000017,51.77470703124999],[24.361914062500006,51.86752929687498],[25.785742187500006,51.923828125],[26.77343750000003,51.77070312499998],[26.952832031249983,51.754003906250034],[27.074121093750023,51.760839843750006],[27.14199218750008,51.75205078124998],[27.29628906250008,51.59741210937503],[27.689746093750017,51.572412109374994],[27.7,51.47797851562501],[27.85859375000004,51.59238281250006],[28.532031250000017,51.56245117187501],[28.59902343750008,51.54262695312505],[28.647753906250074,51.45654296875],[28.690234375000017,51.43886718750005],[28.73125,51.43339843749999],[28.84951171875005,51.540185546874994],[28.927539062500045,51.56215820312502],[28.97773437500004,51.57177734375003],[29.01308593750005,51.59892578124996],[29.06074218750001,51.625439453124955],[29.102050781250057,51.627539062500034],[29.346484375000017,51.38256835937503],[30.160742187500006,51.477880859375006],[30.449511718750017,51.274316406249994],[30.63251953125004,51.35541992187501],[30.61171875000005,51.406347656250006],[30.602343750000017,51.47124023437499],[30.56074218750004,51.531494140625],[30.533007812500017,51.596337890624966],[30.583886718749994,51.68896484375003],[30.667285156250017,51.81411132812502],[30.755273437499994,51.89516601562502],[30.84570312500003,51.95307617187501],[30.980664062500097,52.04619140624996],[31.217968750000097,52.05024414062498],[31.345996093750074,52.10537109375002],[31.57373046875003,52.108105468749955],[31.763378906250097,52.10107421875003],[32.12226562500004,52.05058593749996],[32.435449218749994,52.307226562500034],[33.735253906249994,52.344775390625045],[34.397851562499994,51.780419921874994],[34.12109375000003,51.67915039062498],[34.21386718750003,51.25537109375006],[35.0640625,51.203417968750045],[35.31191406250005,51.043896484374955],[35.59111328125002,50.36875],[36.1164062500001,50.408544921875006],[36.619433593750074,50.209228515625],[37.42285156249997,50.411474609375006],[38.046875,49.92001953125006],[38.258593750000074,50.05234375],[38.91835937499999,49.82470703125],[39.17480468750003,49.85595703124997],[39.780566406250074,49.57202148437503],[40.080664062500006,49.576855468749955],[40.10878906250005,49.251562500000034],[39.68652343749997,49.007910156250034],[40.00361328125004,48.82207031250002],[39.792871093749994,48.807714843750034],[39.6447265625001,48.591210937499966],[39.8356445312501,48.54277343749996],[39.95791015625005,48.268896484375034],[39.77871093750005,47.88754882812506],[38.90029296875005,47.85512695312502],[38.36884765625004,47.609960937500006],[38.21435546875003,47.091455078124966]]]]},"properties":{"name":"Ukraine","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-57.81059570312499,-30.85859375000001],[-57.872509765625,-30.59101562500001],[-57.831201171874994,-30.495214843750006],[-57.71269531249999,-30.38447265625001],[-57.65087890625,-30.295019531250006],[-57.645751953125,-30.226953125],[-57.60888671875,-30.187792968750003],[-57.55229492187499,-30.26123046875],[-57.21445312499999,-30.28339843750001],[-57.186914062499994,-30.26484375000001],[-57.120507812499994,-30.14443359375001],[-56.83271484375,-30.107226562500003],[-56.4072265625,-30.44746093750001],[-55.998974609375,-30.837207031250003],[-56.018457031249994,-30.99189453125001],[-56.00468749999999,-31.079199218750006],[-55.873681640624994,-31.069628906250003],[-55.6271484375,-30.85810546875001],[-55.60302734375,-30.85078125000001],[-55.55732421875,-30.8759765625],[-55.17353515625,-31.279589843750003],[-55.09116210937499,-31.31396484375],[-55.036035156249994,-31.27900390625001],[-54.587646484375,-31.48515625],[-54.22055664062499,-31.85517578125001],[-53.76171875,-32.05683593750001],[-53.601708984374994,-32.40302734375001],[-53.12558593749999,-32.73671875],[-53.2140625,-32.82109375],[-53.31010742187499,-32.92705078125],[-53.39521484375,-33.010351562500006],[-53.482861328125,-33.06855468750001],[-53.511865234374994,-33.10869140625],[-53.53134765624999,-33.1708984375],[-53.53134765624999,-33.65546875000001],[-53.37060546875,-33.7421875],[-53.419580078124994,-33.77919921875001],[-53.47246093749999,-33.84931640625001],[-53.53452148437499,-34.01748046875001],[-53.742919921875,-34.24951171875],[-53.785302734374994,-34.38037109375],[-54.16855468749999,-34.670703125],[-54.902294921875,-34.93281250000001],[-55.67314453124999,-34.77568359375],[-56.249951171875,-34.90126953125001],[-57.17070312499999,-34.45234375000001],[-57.8291015625,-34.47734375],[-58.40019531249999,-33.91240234375],[-58.363525390625,-33.18232421875001],[-58.08232421874999,-32.893652343750006],[-58.12958984375,-32.75722656250001],[-58.16220703124999,-32.566503906250006],[-58.201171875,-32.4716796875],[-58.123046875,-32.321875],[-58.11972656249999,-32.24892578125001],[-58.164794921875,-32.18486328125],[-58.177001953125,-32.11904296875001],[-58.15634765624999,-32.0515625],[-58.160400390625,-31.98652343750001],[-58.18901367187499,-31.92421875],[-58.16748046875,-31.87265625],[-58.04233398437499,-31.76923828125001],[-58.006982421874994,-31.68496093750001],[-58.053857421874994,-31.494921875],[-58.0333984375,-31.416601562500006],[-57.89335937499999,-31.1953125],[-57.868408203125,-31.10439453125001],[-57.88632812499999,-30.93740234375001],[-57.81059570312499,-30.85859375000001]]]},"properties":{"name":"Uruguay","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-155.58134765624996,19.012011718750017],[-155.88129882812495,19.07050781250001],[-156.04868164062498,19.749951171874983],[-155.82031249999997,20.01416015624997],[-155.83164062499998,20.27583007812501],[-155.198779296875,19.99438476562503],[-154.80419921875,19.524462890625045],[-155.58134765624996,19.012011718750017]]],[[[-156.84960937499997,20.772656249999955],[-156.97338867187497,20.757519531249983],[-157.0505859375,20.912451171875034],[-156.88056640624995,20.904833984375074],[-156.84960937499997,20.772656249999955]]],[[[-156.48681640624994,20.93256835937504],[-156.27753906250004,20.951269531250034],[-155.98984374999998,20.75712890624999],[-156.40878906249998,20.60517578125004],[-156.480078125,20.80122070312501],[-156.69775390625003,20.949072265625034],[-156.58540039062495,21.034326171874994],[-156.48681640624994,20.93256835937504]]],[[[-157.21362304687497,21.215380859375017],[-156.71215820312506,21.155078125000074],[-156.85986328125,21.05634765625004],[-157.29033203124996,21.112597656250017],[-157.21362304687497,21.215380859375017]]],[[[-157.79936523437502,21.456640625000034],[-157.63540039062502,21.30761718749997],[-158.11035156249994,21.318603515625],[-158.27314453125,21.585253906250045],[-157.9625,21.701367187499983],[-157.79936523437502,21.456640625000034]]],[[[-159.37275390625,21.93237304687497],[-159.60883789062495,21.909521484375034],[-159.78916015625003,22.041796875000074],[-159.57919921874998,22.22314453124997],[-159.35205078124997,22.219580078125034],[-159.37275390625,21.93237304687497]]],[[[-81.04418945312503,24.716796875000057],[-81.137353515625,24.710498046875017],[-80.93046875,24.75947265625004],[-81.04418945312503,24.716796875000057]]],[[[-80.3818359375,25.142285156249955],[-80.58056640624997,24.954248046875023],[-80.25708007812497,25.34760742187504],[-80.3818359375,25.142285156249955]]],[[[-97.17070312499996,26.159375],[-97.40209960937494,26.820507812499983],[-97.38598632812494,27.19648437500004],[-97.17070312499996,26.159375]]],[[[-80.18676757812497,27.278417968750034],[-80.17050781250003,27.20478515625004],[-80.43691406249994,27.850537109374955],[-80.18676757812497,27.278417968750034]]],[[[-91.793701171875,29.50073242187497],[-92.00664062499996,29.61030273437501],[-91.875244140625,29.640966796875034],[-91.793701171875,29.50073242187497]]],[[[-84.90791015624998,29.642626953125017],[-85.11674804687499,29.63281249999997],[-84.737158203125,29.732421875],[-84.90791015624998,29.642626953125017]]],[[[-89.22397460937498,30.084082031249977],[-89.34199218749995,30.062841796875006],[-89.18466796874995,30.168652343749983],[-89.22397460937498,30.084082031249977]]],[[[-118.34794921875002,33.3857421875],[-118.29746093750003,33.312109375],[-118.44628906249997,33.317089843749955],[-118.56943359375002,33.46416015624999],[-118.34794921875002,33.3857421875]]],[[[-120.04355468749995,33.918847656249994],[-120.25190429687494,34.01386718749998],[-120.07182617187493,34.026513671874966],[-120.04355468749995,33.918847656249994]]],[[[-119.88237304687497,34.07968749999998],[-119.54926757812497,34.02817382812506],[-119.80957031249997,33.9677734375],[-119.88237304687497,34.07968749999998]]],[[[-75.54414062499995,35.240087890625034],[-75.69008789062502,35.221582031249994],[-75.53637695312497,35.27861328124999],[-75.50351562500003,35.769140625],[-75.46474609374994,35.448632812499966],[-75.54414062499995,35.240087890625034]]],[[[-74.13320312500002,39.680761718750034],[-74.25048828125,39.529394531250006],[-74.10673828124996,39.74643554687498],[-74.13320312500002,39.680761718750034]]],[[[-72.50976562500003,40.98603515625001],[-72.58085937499996,40.92133789062498],[-71.90322265625,41.06069335937505],[-73.19428710937495,40.654199218749994],[-74.01489257812497,40.581201171874966],[-73.87924804687498,40.79165039062502],[-73.573828125,40.91962890624998],[-72.62509765624998,40.99184570312505],[-72.27412109374998,41.15302734375001],[-72.50976562500003,40.98603515625001]]],[[[-69.9779296875,41.26557617187504],[-70.23305664062502,41.28632812500001],[-70.04121093750001,41.3974609375],[-69.9779296875,41.26557617187504]]],[[[-70.50991210937502,41.376318359375034],[-70.82919921874995,41.35898437500006],[-70.61601562499996,41.45722656250001],[-70.50991210937502,41.376318359375034]]],[[[-71.24140625000001,41.49194335937497],[-71.34624023437496,41.469384765624994],[-71.23203124999995,41.654296875],[-71.24140625000001,41.49194335937497]]],[[[-68.18725585937497,44.33247070312501],[-68.41171875000003,44.294335937499966],[-68.29941406249998,44.456494140624955],[-68.18725585937497,44.33247070312501]]],[[[-122.394140625,47.39526367187503],[-122.50991210937497,47.358007812500006],[-122.486474609375,47.48876953125],[-122.394140625,47.39526367187503]]],[[[-122.57275390624999,48.15664062499999],[-122.38315429687499,47.923193359375034],[-122.74150390624999,48.22529296875004],[-122.62861328125,48.38422851562498],[-122.54243164062503,48.29399414062499],[-122.69702148437499,48.228662109374994],[-122.57275390624999,48.15664062499999]]],[[[-94.80346679687497,49.0029296875],[-94.71279296874997,48.863427734374994],[-94.62089843749999,48.74262695312501],[-93.85161132812496,48.607275390625034],[-93.70771484374995,48.52543945312499],[-93.37788085937498,48.61655273437498],[-93.25795898437497,48.62885742187501],[-92.83671875,48.567773437499994],[-92.50058593749995,48.43535156250002],[-92.41459960937493,48.276611328125],[-92.3484375,48.276611328125],[-92.00517578125002,48.301855468750006],[-91.38720703124997,48.05854492187498],[-91.04345703125003,48.19370117187498],[-90.84033203125003,48.20053710937506],[-90.79731445312495,48.13105468750001],[-89.4556640625,47.996240234374994],[-88.37817382812497,48.30307617187498],[-87.74389648437497,48.06054687500003],[-87.20800781249997,47.848486328125006],[-86.67216796874996,47.636425781249955],[-85.65224609375,47.21997070312503],[-85.07006835937497,46.97993164062498],[-84.87597656249994,46.89990234375003],[-84.66577148437503,46.54326171875002],[-84.44047851562496,46.49814453125006],[-84.12319335937497,46.50292968749997],[-83.97778320312503,46.08491210937498],[-83.61596679687503,46.116845703124994],[-83.46948242187503,45.99467773437499],[-83.59267578125,45.81713867187506],[-82.91933593749994,45.51796875000002],[-82.55107421874996,45.34736328125001],[-82.48505859374993,45.08374023437503],[-82.137841796875,43.570898437500034],[-82.19038085937495,43.47407226562501],[-82.54531249999997,42.62470703124998],[-83.10952148437497,42.25068359375001],[-83.141943359375,41.97587890624996],[-82.69003906249995,41.675195312499994],[-82.43906249999998,41.67485351562502],[-81.97416992187496,41.88872070312499],[-81.50732421874997,42.10346679687504],[-81.02822265624997,42.247167968750006],[-80.24755859375,42.36601562499996],[-79.17373046875,42.74853515625],[-78.91508789062496,42.90913085937504],[-78.98076171874993,42.98061523437502],[-79.02617187499996,43.01733398437506],[-79.066064453125,43.10610351562502],[-79.171875,43.466552734375],[-79.00249023437502,43.52714843749999],[-78.845556640625,43.58334960937498],[-78.72041015625001,43.62495117187501],[-78.45825195312497,43.63149414062502],[-77.596533203125,43.62861328124998],[-76.819970703125,43.62880859375002],[-76.18579101562503,44.24223632812502],[-75.81933593749997,44.468017578125],[-75.40126953124997,44.77226562499999],[-74.99614257812496,44.970117187499966],[-74.76245117187494,44.99907226562502],[-74.663232421875,45.00390625000003],[-71.51752929687495,45.00756835937497],[-71.327294921875,45.29008789062496],[-70.86503906249999,45.27070312500001],[-70.296240234375,45.90610351562506],[-70.00771484375002,46.70893554687501],[-69.24287109374998,47.46298828124998],[-69.0501953125,47.426611328125034],[-68.93720703124998,47.21123046875002],[-68.23549804687502,47.34594726562503],[-67.806787109375,47.08281249999999],[-67.80224609374994,45.7275390625],[-67.43266601562496,45.603125],[-67.366943359375,45.17377929687498],[-67.12485351562498,45.16943359375],[-66.98701171874995,44.82768554687502],[-67.191259765625,44.67558593750002],[-67.83906249999998,44.576269531250034],[-68.056640625,44.38432617187502],[-68.15205078124998,44.50200195312499],[-68.45058593749997,44.50761718749999],[-68.53251953124996,44.25864257812498],[-68.81191406249994,44.33935546875],[-68.76269531249994,44.57075195312498],[-69.22607421875003,43.98647460937505],[-69.52075195312503,43.89736328125002],[-69.55668945312496,43.982763671875006],[-69.62392578125,43.88061523437497],[-69.65288085937493,43.99389648437506],[-69.808349609375,43.772314453125034],[-69.965234375,43.855078125],[-70.17880859374998,43.76635742187506],[-70.73310546875001,43.07001953125004],[-70.82905273437493,42.82534179687502],[-70.61293945312497,42.623242187499955],[-71.04619140624993,42.331103515625045],[-70.73828125,42.228857421875006],[-70.42666015625002,41.75727539062501],[-70.00141601562498,41.82617187500003],[-70.24106445312495,42.09121093750002],[-70.10893554687496,42.07832031249998],[-69.97788085937498,41.961279296875006],[-69.94863281249997,41.67714843750005],[-70.65712890625,41.53422851562496],[-70.70112304687498,41.71484375],[-71.1685546875,41.489404296874994],[-71.14873046874996,41.74570312499998],[-71.27109375,41.68125],[-71.39013671875003,41.79531250000005],[-71.52285156249997,41.378955078125045],[-72.92470703125002,41.28515625000003],[-73.98710937499999,40.751367187499994],[-73.87197265625,41.05517578124997],[-73.96992187499995,41.24970703125001],[-73.92719726562495,40.914257812499955],[-74.26420898437496,40.52861328124999],[-73.972265625,40.40034179687498],[-74.079931640625,39.78813476562496],[-74.06459960937497,39.99311523437498],[-74.79448242187499,39.00190429687501],[-74.95429687499995,38.949951171875],[-74.89702148437502,39.14545898437504],[-75.52421874999999,39.49018554687501],[-75.421875,39.78969726562502],[-75.07416992187495,39.98349609375006],[-75.40063476562503,39.83159179687502],[-75.58759765625001,39.64077148437505],[-75.3921875,39.09277343750006],[-75.08867187499999,38.777539062499955],[-75.18710937499995,38.59111328124999],[-75.03876953124993,38.426367187500006],[-75.934375,37.15190429687496],[-75.97504882812498,37.3984375],[-75.65927734374995,37.953955078125034],[-75.850830078125,37.971582031249994],[-75.85869140624999,38.36206054687503],[-76.05122070312495,38.27954101562503],[-76.2646484375,38.436425781249994],[-76.26416015625,38.599951171875006],[-76.016943359375,38.62509765624998],[-76.21298828124998,38.75830078125003],[-76.34116210937498,38.70966796874998],[-76.16816406249998,38.85273437499998],[-76.32958984375,38.95278320312505],[-76.13520507812493,39.082128906250006],[-76.23569335937498,39.19160156250001],[-76.153125,39.315039062500034],[-75.87597656249997,39.3759765625],[-76.003125,39.41083984375001],[-75.87294921874997,39.510888671874966],[-75.95893554687498,39.58505859374998],[-76.2763671875,39.32275390625],[-76.330810546875,39.40390625],[-76.42089843749997,39.225],[-76.57041015624995,39.26933593749996],[-76.42758789062498,39.12602539062499],[-76.55854492187493,39.065234375000045],[-76.39409179687502,38.368994140625034],[-76.67734374999998,38.611962890624966],[-76.66855468749998,38.5375],[-76.34116210937498,38.08701171875006],[-76.86811523437495,38.39028320312502],[-76.88974609375,38.292089843750006],[-77.00117187499995,38.44526367187504],[-77.23251953125,38.40771484375003],[-77.03037109374995,38.88925781249998],[-77.26040039062502,38.6],[-77.27324218749996,38.35175781249998],[-77.04677734375002,38.356689453125],[-76.26425781250003,37.89355468749997],[-76.34414062499997,37.675683593749994],[-76.49248046874999,37.682226562500006],[-77.11108398437497,38.165673828124994],[-76.54946289062494,37.66914062500001],[-76.30556640625,37.57148437500001],[-76.26347656249996,37.35703125],[-76.40097656249998,37.386132812499994],[-76.45390624999993,37.27353515625006],[-76.75771484375002,37.50541992187496],[-76.28330078125,37.05268554687501],[-76.40087890624997,36.991308593750034],[-76.63090820312493,37.22172851562499],[-77.25087890624994,37.329199218750034],[-76.671875,37.172949218750006],[-76.48784179687502,36.89702148437499],[-75.99941406249997,36.91264648437499],[-75.53417968749997,35.81909179687506],[-75.94648437499995,36.65908203125002],[-75.99277343749995,36.47377929687502],[-75.82006835937494,36.11284179687502],[-76.14785156250002,36.279296875],[-76.15,36.14575195312497],[-76.27060546874998,36.18989257812501],[-76.22739257812498,36.11601562499996],[-76.559375,36.015332031249955],[-76.733642578125,36.229150390624994],[-76.726220703125,35.957617187500034],[-76.06977539062501,35.970312500000034],[-76.08359374999998,35.69052734375006],[-75.85390625,35.96015625000001],[-75.75883789062499,35.84326171875],[-75.77392578124997,35.64697265624997],[-76.17382812499997,35.354150390624994],[-76.489501953125,35.397021484375045],[-76.57719726562502,35.53232421874998],[-76.74140624999998,35.431494140625034],[-77.03999023437495,35.527392578125045],[-76.51293945312497,35.270410156249994],[-76.77915039062503,34.990332031250034],[-77.07026367187501,35.154638671875034],[-76.97495117187503,35.025195312500045],[-76.74497070312498,34.94096679687502],[-76.45673828124998,34.989355468750034],[-76.36220703125,34.9365234375],[-76.43979492187498,34.84291992187502],[-77.29624023437503,34.602929687499994],[-77.41225585937497,34.730810546875034],[-77.37978515625,34.526611328125],[-77.750732421875,34.28496093749996],[-77.92783203125,33.93974609374999],[-77.95327148437494,34.16899414062496],[-78.01333007812502,33.91181640624998],[-78.40585937499995,33.91757812499998],[-78.84145507812497,33.72407226562501],[-79.19379882812498,33.24414062500003],[-79.22646484375,33.40488281249998],[-79.27602539062497,33.135400390624966],[-79.80498046874999,32.78740234374996],[-79.93310546874997,32.81005859375006],[-79.94072265625002,32.667138671874966],[-80.36284179687496,32.500732421875],[-80.6341796875,32.51171875000003],[-80.474267578125,32.42275390625002],[-80.579345703125,32.28730468750004],[-80.80253906249999,32.44804687500002],[-80.69423828124997,32.21572265625002],[-81.11328124999997,31.87861328125001],[-81.06611328124995,31.787988281250023],[-81.259375,31.538916015624977],[-81.17543945312494,31.531298828125017],[-81.38095703124998,31.353271484375],[-81.28847656249997,31.263916015625],[-81.441748046875,31.19970703124997],[-81.5162109375,30.801806640625017],[-81.24951171875003,29.793798828125006],[-80.52412109374995,28.48608398437503],[-80.5849609375,28.271582031250034],[-80.456884765625,27.90068359374996],[-80.61000976562494,28.177587890624977],[-80.60693359375003,28.522900390624983],[-80.693505859375,28.34497070312497],[-80.68847656250003,28.578515625000023],[-80.83818359374999,28.757666015625034],[-80.74863281250003,28.381005859375023],[-80.050048828125,26.807714843750063],[-80.1263671875,25.83349609375],[-80.48466796874999,25.229833984375034],[-81.11049804687494,25.138037109374977],[-81.13603515624999,25.309667968750034],[-80.94042968750003,25.264208984375017],[-81.11333007812499,25.367236328125045],[-81.36494140625001,25.83105468750003],[-81.715478515625,25.98315429687503],[-81.95893554687495,26.489941406249983],[-81.82866210937496,26.68706054687499],[-82.03959960937496,26.552050781250017],[-82.01328125,26.96157226562505],[-82.24287109374998,26.848876953125],[-82.44135742187501,27.059667968750034],[-82.71459960937497,27.499609375000063],[-82.40576171874994,27.862890624999977],[-82.67519531249994,27.963769531250023],[-82.61098632812502,27.77724609375005],[-82.74287109374995,27.709375],[-82.84350585937494,27.845996093750017],[-82.65146484375,28.8875],[-83.69438476562502,29.92597656250001],[-84.04423828124996,30.10380859374999],[-84.30966796874995,30.064746093750045],[-84.38281250000003,29.90737304687505],[-85.31894531249995,29.680224609375045],[-85.413818359375,29.76757812499997],[-85.413818359375,29.842480468749955],[-85.31489257812493,29.758105468750017],[-85.35361328125,29.875732421875],[-85.67578125,30.121923828125063],[-85.60351562500003,30.286767578124966],[-85.75581054687495,30.1669921875],[-86.454443359375,30.39912109375004],[-86.12382812499999,30.40581054687499],[-86.25737304687502,30.493017578124977],[-87.201171875,30.339257812499994],[-86.98579101562498,30.43085937500001],[-86.99755859375,30.5703125],[-87.17060546874998,30.538769531249983],[-87.28105468750002,30.339257812499994],[-87.47578124999998,30.294287109375006],[-87.44829101562499,30.394140625],[-87.62226562499998,30.264746093750006],[-88.00595703124998,30.230908203124955],[-87.79028320312503,30.291796875000017],[-88.011328125,30.694189453125006],[-88.13544921874998,30.366601562499994],[-88.90522460937495,30.415136718750006],[-89.32055664062503,30.3453125],[-89.58847656249998,30.165966796874955],[-90.12597656249997,30.369091796874955],[-90.33198242187493,30.277587890625057],[-90.41303710937501,30.140332031249983],[-90.17534179687499,30.02910156249996],[-89.73745117187497,30.171972656250034],[-89.66503906249994,30.117041015625034],[-89.81518554687497,30.007275390624955],[-89.631689453125,29.90380859375003],[-89.400732421875,30.04604492187505],[-89.35444335937501,29.82021484375005],[-89.72089843749995,29.619287109374966],[-89.01572265625,29.202880859375057],[-89.15551757812497,29.01660156250003],[-89.23608398437494,29.081103515625017],[-89.37612304687497,28.981347656250023],[-89.44316406249996,29.194140625000045],[-90.15908203124997,29.537158203125017],[-90.05278320312499,29.336816406249966],[-90.21279296875,29.104931640624983],[-90.37919921874996,29.29511718750001],[-90.75102539062496,29.13085937500003],[-91.29013671875,29.288964843749994],[-91.15078124999994,29.317919921875045],[-91.24882812499993,29.56420898437503],[-91.51420898437499,29.55537109375001],[-91.8931640625,29.836035156249977],[-92.135498046875,29.699462890625057],[-92.08403320312499,29.59282226562499],[-92.26083984374995,29.55683593750004],[-93.17568359375,29.778955078124994],[-93.82646484374999,29.725146484375045],[-93.84145507812502,29.97973632812503],[-93.89047851562495,29.689355468750023],[-94.759619140625,29.384277343750057],[-94.52626953125,29.547949218750006],[-94.77827148437498,29.54785156249997],[-94.74194335937497,29.75],[-95.0228515625,29.70234375000001],[-94.88828125000003,29.37055664062501],[-95.27348632812499,28.96386718750003],[-96.23452148437502,28.488964843749983],[-96.01103515624996,28.631933593749977],[-96.44873046874997,28.594482421875],[-96.64003906249994,28.708789062500017],[-96.42109374999993,28.457324218750045],[-96.67636718749998,28.34130859375003],[-96.77353515624998,28.421630859375057],[-96.839501953125,28.194384765625017],[-97.156494140625,28.144335937500045],[-97.141259765625,28.060742187499983],[-97.034326171875,28.093847656250063],[-97.07309570312498,27.98608398437503],[-97.43149414062498,27.83720703124999],[-97.28872070312494,27.670605468749983],[-97.43911132812502,27.328271484374966],[-97.76845703124997,27.45751953125],[-97.69238281250003,27.287158203125017],[-97.48510742187497,27.237402343750006],[-97.55468749999994,26.96733398437496],[-97.43505859375,26.48583984375003],[-97.14624023437494,25.961474609375045],[-97.37563476562497,25.871826171875],[-99.10776367187498,26.446923828124994],[-99.45654296874999,27.05668945312496],[-99.50532226562497,27.54833984375003],[-100.29604492187495,28.32768554687499],[-100.75458984375001,29.182519531249994],[-101.44038085937503,29.77685546875],[-102.26894531249998,29.871191406250034],[-102.61494140624994,29.75234375],[-102.8919921875,29.216406250000034],[-103.16831054687498,28.998193359374994],[-104.110595703125,29.386132812499994],[-104.50400390624995,29.677685546874955],[-104.97880859374996,30.645947265624955],[-106.14804687499995,31.450927734375],[-106.44541015624996,31.768408203125006],[-108.21181640625002,31.779345703125017],[-108.21445312499993,31.329443359375034],[-111.0419921875,31.32421875000003],[-114.83593749999994,32.50830078125003],[-114.72475585937495,32.71533203125003],[-117.12827148437495,32.533349609374994],[-117.46743164062495,33.295507812500006],[-118.08051757812497,33.72216796874997],[-118.41044921874996,33.74394531249996],[-118.506201171875,34.01738281249999],[-119.14375,34.11201171874998],[-119.60605468749999,34.41801757812499],[-120.48120117187503,34.47163085937498],[-120.64467773437502,34.57998046875002],[-120.65908203124994,35.122412109375034],[-120.85737304687501,35.209667968749955],[-120.899609375,35.42509765624999],[-121.28383789062494,35.67631835937499],[-121.87739257812498,36.33105468749997],[-121.80742187499995,36.851220703124994],[-122.394921875,37.20751953125003],[-122.49921875000001,37.542626953124994],[-122.44560546875002,37.797998046874966],[-122.07050781249998,37.47827148437503],[-122.38544921875001,37.960595703124966],[-122.31425781249999,38.00732421874997],[-121.52534179687503,38.05590820312503],[-122.39335937499995,38.14482421875002],[-122.52133789062499,37.82641601562497],[-122.93198242187498,38.05546875000002],[-122.998779296875,37.98862304687498],[-122.90815429687501,38.19658203124999],[-123.701123046875,38.90727539062502],[-123.83291015624994,39.775488281250034],[-124.35654296875003,40.37109374999997],[-124.07192382812497,41.45952148437502],[-124.53964843750003,42.812890624999966],[-124.14873046874997,43.691748046875034],[-123.92934570312495,45.57695312499996],[-123.989306640625,46.21938476562502],[-123.22060546874998,46.153613281250045],[-123.46484375,46.27109374999998],[-124.07275390624996,46.279443359374994],[-124.04433593750002,46.605078125],[-123.946142578125,46.43256835937501],[-123.88916015625003,46.660009765625006],[-124.11254882812497,46.862695312499994],[-123.84287109375002,46.963183593750045],[-124.11171875,47.03520507812496],[-124.1392578125,46.95468749999998],[-124.376025390625,47.658642578124955],[-124.66308593749996,47.97412109375003],[-124.7099609375,48.38037109375],[-123.97578125,48.16845703125],[-122.97387695312499,48.07329101562496],[-122.77861328125,48.13759765625002],[-122.65664062500002,47.88115234374999],[-122.77841796874996,47.738427734374966],[-122.82138671875,47.79316406250001],[-123.1390625,47.386083984375034],[-122.92216796874993,47.40766601562498],[-123.066796875,47.39965820312506],[-123.04863281249995,47.479345703125034],[-122.53281250000002,47.919726562500045],[-122.67548828124995,47.612353515625045],[-122.57788085937496,47.29316406250001],[-122.76777343750001,47.21835937500006],[-122.82846679687503,47.336572265624994],[-123.02758789062501,47.13891601562503],[-122.70195312500002,47.11088867187502],[-122.35380859374996,47.37158203125],[-122.40180664062497,47.78427734374998],[-122.24199218750002,48.01074218750003],[-122.5169921875,48.15966796874997],[-122.40854492187502,48.29389648437498],[-122.66899414062496,48.465234374999966],[-122.49677734374995,48.50556640625001],[-122.51274414062502,48.66943359375],[-122.56201171875001,48.777978515624994],[-122.68593749999995,48.794287109375034],[-122.72246093750002,48.85302734375003],[-122.78876953125003,48.993017578125034],[-121.40722656249994,48.993017578125034],[-119.70170898437495,48.993017578125034],[-119.27534179687494,48.99306640625005],[-118.84892578124993,48.99306640625005],[-117.99619140625002,48.99306640625005],[-116.71704101562501,48.99306640625005],[-110.74765625,48.99306640625005],[-104.77832031249997,48.993115234374955],[-98.80898437499995,48.99316406249997],[-97.52983398437493,48.99316406249997],[-96.67705078124993,48.99316406249997],[-96.25068359374993,48.99316406249997],[-95.39790039062493,48.99316406249997],[-95.16206054687493,48.991748046875045],[-95.15527343749997,49.36967773437502],[-94.85434570312495,49.304589843749994],[-94.86040039062493,49.258593750000045],[-94.80346679687497,49.0029296875]]],[[[-176.28671874999998,51.79199218750006],[-176.34965820312502,51.733300781249994],[-176.41372070312502,51.840576171875],[-176.28671874999998,51.79199218750006]]],[[[-177.87905273437502,51.64970703125002],[-178.05888671875,51.67260742187497],[-177.98637695312493,51.76425781249998],[-178.16826171874996,51.90302734375001],[-177.644482421875,51.826269531250006],[-177.87905273437502,51.64970703125002]]],[[[-177.14819335937497,51.71674804687498],[-177.67021484375002,51.701074218749994],[-177.11005859375,51.92875976562502],[-177.14819335937497,51.71674804687498]]],[[[-176.593310546875,51.86669921875],[-176.45234374999995,51.735693359375034],[-176.96162109374998,51.60366210937505],[-176.69833984374998,51.986035156249955],[-176.593310546875,51.86669921875]]],[[[179.72773437500015,51.905419921874966],[179.50390625000003,51.97958984374998],[179.6271484375001,52.03041992187502],[179.72773437500015,51.905419921874966]]],[[[177.4154296875,51.88281249999997],[177.25029296875013,51.902929687500006],[177.6696289062501,52.10302734375],[177.4154296875,51.88281249999997]]],[[[-173.5533203125,52.13627929687502],[-173.02290039062504,52.07915039062502],[-173.83579101562498,52.048193359375006],[-173.99248046874993,52.12333984374996],[-173.5533203125,52.13627929687502]]],[[[-172.464794921875,52.27226562500002],[-172.61982421874998,52.27285156250005],[-172.47041015625,52.38803710937506],[-172.31362304687497,52.32958984375006],[-172.464794921875,52.27226562500002]]],[[[-174.67739257812502,52.035009765625006],[-175.29555664062502,52.022167968749955],[-174.30615234375,52.216162109375034],[-174.43554687499997,52.317236328125034],[-174.168896484375,52.42016601562503],[-174.04560546875,52.36723632812499],[-174.12065429687493,52.13520507812498],[-174.67739257812502,52.035009765625006]]],[[[173.72275390625018,52.35957031250004],[173.40234375000009,52.40478515625],[173.77607421875004,52.49511718750003],[173.72275390625018,52.35957031250004]]],[[[172.81181640625002,53.01298828125002],[173.43603515625003,52.85205078125],[172.93515625000012,52.752099609374966],[172.49482421875004,52.93789062499999],[172.81181640625002,53.01298828125002]]],[[[-167.96435546875003,53.345117187499994],[-169.088916015625,52.83203125],[-168.68984375000002,53.227246093749955],[-168.38041992187496,53.28344726562506],[-168.28769531249998,53.500146484374966],[-167.82807617187495,53.50795898437505],[-167.96435546875003,53.345117187499994]]],[[[-166.61533203124998,53.90092773437499],[-166.37231445312494,53.99897460937498],[-166.230859375,53.93261718750006],[-166.54560546875,53.726464843749966],[-166.354541015625,53.67353515625004],[-166.85097656249997,53.45288085937503],[-167.78085937500003,53.30024414062501],[-167.13608398437503,53.526464843750006],[-167.01572265625003,53.69838867187502],[-166.80898437500002,53.64614257812505],[-166.741259765625,53.71293945312496],[-167.10561523437497,53.813378906249994],[-167.03808593749997,53.9421875],[-166.67329101562498,54.00595703124998],[-166.61533203124998,53.90092773437499]]],[[[-165.841552734375,54.070654296875006],[-166.05664062500003,54.054345703124994],[-166.08774414062498,54.16914062500001],[-165.89287109375,54.20698242187498],[-165.69287109375,54.09990234375002],[-165.841552734375,54.070654296875006]]],[[[-165.56113281249998,54.13671874999997],[-165.55063476562498,54.28452148437498],[-165.40786132812502,54.19682617187496],[-165.56113281249998,54.13671874999997]]],[[[-162.29814453124993,54.847021484375006],[-162.43388671875,54.931542968749994],[-162.26459960937504,54.983496093750006],[-162.29814453124993,54.847021484375006]]],[[[-163.476025390625,54.98071289062497],[-163.37895507812496,54.81552734374998],[-163.083251953125,54.66899414062496],[-163.35810546874995,54.73569335937506],[-164.82343749999998,54.41909179687505],[-164.887646484375,54.60781250000002],[-164.47861328124998,54.906835937500006],[-163.80712890624997,55.04907226562503],[-163.476025390625,54.98071289062497]]],[[[-159.51513671875,55.15185546875003],[-159.617724609375,55.05732421875004],[-159.54506835937497,55.22597656250002],[-159.51513671875,55.15185546875003]]],[[[-131.33974609375002,55.079833984375],[-131.32954101562498,54.887744140625045],[-131.592236328125,55.02568359374999],[-131.5654296875,55.26411132812498],[-131.33974609375002,55.079833984375]]],[[[-159.87299804687495,55.128759765625034],[-160.22705078124997,54.92270507812506],[-160.17207031249995,55.123046875],[-159.88735351562497,55.27299804687502],[-159.87299804687495,55.128759765625034]]],[[[-132.86225585937504,54.894433593749966],[-132.61723632812493,54.892431640625006],[-132.70581054687497,54.684179687500034],[-133.42905273437498,55.30380859374998],[-133.097412109375,55.213720703125006],[-132.86225585937504,54.894433593749966]]],[[[-160.329296875,55.337695312500045],[-160.34331054687493,55.25878906250006],[-160.51748046875,55.33383789062506],[-160.329296875,55.337695312500045]]],[[[-160.68491210937498,55.314794921875006],[-160.552783203125,55.38076171875002],[-160.48754882812503,55.18486328124999],[-160.79506835937497,55.14521484375001],[-160.72392578124993,55.404638671875006],[-160.68491210937498,55.314794921875006]]],[[[-133.30507812500002,55.54375],[-133.6501953125,55.26928710937506],[-133.73710937500002,55.49692382812498],[-133.30507812500002,55.54375]]],[[[-155.56601562500003,55.82119140625005],[-155.73735351562493,55.82978515625001],[-155.59394531250004,55.92431640625],[-155.56601562500003,55.82119140625005]]],[[[-130.97915039062502,55.489160156249994],[-131.187890625,55.206298828125],[-131.44755859374996,55.40878906250006],[-131.7625,55.16582031250002],[-131.84609374999997,55.41625976562497],[-131.62495117187504,55.831689453124966],[-131.26923828125004,55.95537109375002],[-130.997802734375,55.727636718750006],[-130.97915039062502,55.489160156249994]]],[[[-133.56611328125,56.33920898437498],[-133.202978515625,56.31982421875003],[-133.096630859375,56.09003906250001],[-132.59760742187504,55.89501953125],[-132.17270507812498,55.48061523437502],[-132.51127929687493,55.59394531250001],[-132.63129882812495,55.47319335937502],[-132.41787109375002,55.48291015625006],[-132.20668945312497,55.22441406249996],[-131.97641601562498,55.208593750000034],[-132.06474609375002,54.713134765625],[-133.11855468750002,55.32763671875003],[-132.95888671875002,55.39555664062502],[-133.0333984375,55.589697265625034],[-133.68017578124994,55.78515625],[-133.24150390624993,55.920800781249994],[-133.371240234375,56.035888671875],[-133.74252929687498,55.96484375],[-133.530859375,56.145654296874966],[-133.56611328125,56.33920898437498]]],[[[-132.77988281249998,56.24726562499998],[-133.03500976562498,56.34091796875006],[-132.90205078124998,56.45375976562505],[-132.62910156249995,56.411914062500045],[-132.77988281249998,56.24726562499998]]],[[[-132.11235351562493,56.109375],[-132.13295898437497,55.94326171875005],[-132.28730468749995,55.92939453124998],[-132.65991210937503,56.07817382812499],[-132.379833984375,56.49877929687497],[-132.06689453125,56.24423828124998],[-132.11235351562493,56.109375]]],[[[-154.208642578125,56.51489257812497],[-154.32221679687504,56.570605468750045],[-154.11040039062496,56.602929687499966],[-154.208642578125,56.51489257812497]]],[[[-169.755224609375,56.63505859375002],[-169.47431640624998,56.59404296875002],[-169.6326171875,56.545703125000045],[-169.755224609375,56.63505859375002]]],[[[-132.746875,56.525683593750045],[-132.94804687500002,56.56723632812498],[-132.842529296875,56.79477539062506],[-132.56796875000003,56.57583007812505],[-132.746875,56.525683593750045]]],[[[-133.98959960937503,56.84497070312497],[-133.73837890625,56.65043945312496],[-133.94970703125,56.12773437499996],[-134.18959960937502,56.07695312500002],[-134.084375,56.456347656250045],[-134.37368164062502,56.838671875000045],[-134.14326171874998,56.93232421875001],[-133.98959960937503,56.84497070312497]]],[[[-133.36621093750006,57.003515625000034],[-132.99624023437497,56.93041992187497],[-132.95917968749998,56.67705078124996],[-133.03491210937494,56.62075195312505],[-133.32895507812498,56.83007812499997],[-133.158154296875,56.495166015625045],[-133.4841796875,56.45175781249998],[-133.979443359375,57.009570312500045],[-133.36621093750006,57.003515625000034]]],[[[-153.007080078125,57.12485351562498],[-153.37460937499998,57.05190429687505],[-153.285205078125,57.18505859375],[-152.90839843750004,57.152441406250006],[-153.007080078125,57.12485351562498]]],[[[-134.96977539062496,57.351416015625034],[-134.62070312499998,56.71831054687502],[-134.68188476562503,56.216162109375034],[-134.98056640625003,56.518945312499994],[-134.88344726562497,56.679052734375034],[-135.33061523437505,56.821875],[-135.19960937499997,57.02734375],[-135.45493164062503,57.24941406250005],[-135.81230468750002,57.00952148437503],[-135.82275390625,57.280419921874966],[-135.448681640625,57.534375],[-134.96977539062496,57.351416015625034]]],[[[-152.89804687499998,57.82392578125004],[-152.42875976562493,57.82568359375003],[-152.48261718749998,57.70332031249998],[-152.21621093749997,57.577001953125006],[-152.41220703125003,57.454785156249955],[-152.94077148437498,57.49809570312499],[-152.67905273437503,57.345117187499994],[-153.274365234375,57.22636718749996],[-153.732568359375,57.052343750000034],[-153.643310546875,56.960742187500045],[-154.02734375,56.77797851562502],[-153.793212890625,56.98950195312503],[-154.24375,57.143017578124955],[-154.33896484374998,56.9208984375],[-154.67319335937498,57.44609375],[-154.11616210937498,57.651220703125006],[-153.6876953125,57.30512695312504],[-153.841552734375,57.86284179687496],[-153.48793945312497,57.73095703125],[-153.21748046875004,57.79575195312506],[-153.16044921875,57.97197265624999],[-152.85039062499993,57.896777343750045],[-152.89804687499998,57.82392578125004]]],[[[-135.73037109375002,58.244238281250034],[-135.61323242187507,57.99184570312505],[-135.346630859375,58.12412109374998],[-134.9546875,58.01533203125004],[-134.97065429687495,57.817236328125006],[-135.33847656250003,57.768652343750034],[-134.97885742187503,57.724365234375],[-134.93149414062498,57.48115234375001],[-135.564208984375,57.66640625],[-135.691943359375,57.41992187500006],[-135.91079101562502,57.44658203124999],[-136.568603515625,57.97216796875003],[-136.32197265625,58.21889648437502],[-136.14375,58.098486328125006],[-136.09438476562502,58.198144531249966],[-135.73037109375002,58.244238281250034]]],[[[-134.68027343749998,58.16166992187499],[-134.24008789062498,58.143994140624955],[-133.82275390624997,57.62866210937503],[-134.29233398437498,58.044726562500074],[-133.91113281250003,57.3525390625],[-134.51601562499997,57.042578125],[-134.48676757812495,57.48203125],[-134.92348632812497,58.354638671874966],[-134.68027343749998,58.16166992187499]]],[[[-152.416943359375,58.360205078125034],[-151.974365234375,58.30986328124999],[-152.068896484375,58.17792968750001],[-152.26835937499993,58.25170898437506],[-152.30922851562502,58.133886718750034],[-152.5982421875,58.16259765625],[-152.92841796875004,57.99370117187499],[-153.38134765625003,58.08720703125002],[-152.976123046875,58.29702148437505],[-152.771875,58.278564453125],[-152.84111328125002,58.41640625000002],[-152.416943359375,58.360205078125034]]],[[[-152.486083984375,58.485009765624966],[-152.63662109375002,58.54169921874998],[-152.3955078125,58.619384765625],[-152.486083984375,58.485009765624966]]],[[[-160.918994140625,58.57709960937498],[-161.13149414062502,58.668212890625],[-160.71513671875005,58.79521484375002],[-160.918994140625,58.57709960937498]]],[[[-148.02177734375,60.06533203125005],[-148.271875,60.05327148437499],[-148.07958984375003,60.151660156250045],[-148.02177734375,60.06533203125005]]],[[[-147.735888671875,59.81323242187503],[-147.76806640625,59.94375],[-147.180859375,60.358251953125034],[-147.01987304687498,60.33222656249998],[-147.735888671875,59.81323242187503]]],[[[-166.13544921875,60.38354492187503],[-165.72968750000004,60.31420898437503],[-165.591796875,59.913134765625045],[-166.14873046874996,59.764111328124955],[-167.13886718749998,60.00854492187503],[-167.43642578125002,60.20664062500006],[-166.836328125,60.21699218750004],[-166.47568359374998,60.382763671874955],[-166.13544921875,60.38354492187503]]],[[[-146.3939453125,60.44965820312501],[-146.10224609374998,60.41118164062499],[-146.61831054687497,60.27368164062503],[-146.70253906249997,60.40854492187498],[-146.3939453125,60.44965820312501]]],[[[-147.658251953125,60.45048828124999],[-147.787841796875,60.17792968749998],[-147.89145507812498,60.299414062500034],[-147.658251953125,60.45048828124999]]],[[[-172.74223632812496,60.45737304687498],[-172.23208007812494,60.299121093750074],[-172.63574218750003,60.328857421875],[-173.04765625000002,60.56831054687501],[-172.74223632812496,60.45737304687498]]],[[[-171.46303710937494,63.640039062499994],[-171.03486328125,63.58549804687499],[-170.29936523437502,63.68061523437501],[-169.55454101562498,63.373486328124955],[-168.71601562500004,63.310595703125045],[-168.76132812500003,63.21376953125002],[-169.364697265625,63.17114257812506],[-169.67636718750003,62.95610351562502],[-169.81860351562494,63.122363281250045],[-170.84838867187494,63.44438476562502],[-171.63183593749997,63.351220703124966],[-171.74638671874993,63.703076171874955],[-171.46303710937494,63.640039062499994]]],[[[-141.00214843750004,68.77416992187506],[-141.00214843750004,67.89755859374998],[-141.00214843750004,66.43652343750006],[-141.00214843750004,65.55991210937498],[-141.00214843750004,64.09887695312506],[-141.00214843750004,63.22226562499998],[-141.00214843750004,61.761279296875045],[-141.00214843750004,60.884667968749994],[-141.00214843750004,60.30024414062504],[-140.76274414062505,60.259130859375006],[-140.525439453125,60.218359375000034],[-140.45283203125004,60.29970703125002],[-139.97329101562497,60.183154296875074],[-139.67631835937505,60.32832031249998],[-139.23476562499997,60.339746093749994],[-139.07924804687497,60.34370117187501],[-139.07924804687497,60.279443359374966],[-139.136962890625,60.17270507812498],[-139.18515624999998,60.083593750000034],[-138.86875,59.94575195312501],[-138.317626953125,59.611132812500074],[-137.59331054687493,59.22626953124998],[-137.52089843750002,58.91538085937498],[-137.43857421875003,58.903125],[-137.2775390625,58.988183593749994],[-137.126220703125,59.04096679687498],[-136.81328125000002,59.150048828124994],[-136.57875976562502,59.15224609375002],[-136.46635742187493,59.459082031250006],[-136.27797851562502,59.48032226562506],[-136.321826171875,59.604833984375034],[-135.70258789062504,59.72875976562506],[-135.36787109374998,59.743310546874994],[-135.051025390625,59.57866210937502],[-134.94375,59.28828125000001],[-134.67724609374997,59.19926757812499],[-134.39306640625,59.009179687499994],[-134.32963867187505,58.93969726562506],[-134.21850585937503,58.849902343750045],[-133.54638671874997,58.50346679687499],[-133.27529296875,58.22285156250004],[-133.00141601562495,57.948974609375],[-132.55048828125,57.499902343749994],[-132.44248046874998,57.40673828125003],[-132.30166015624997,57.27631835937501],[-132.232177734375,57.19853515624999],[-132.27939453124998,57.14536132812498],[-132.33798828124998,57.07944335937506],[-132.15703125,57.048193359375006],[-132.03154296875,57.02656250000004],[-132.062890625,56.95336914062503],[-132.104296875,56.856787109375006],[-131.86616210937495,56.792822265625006],[-131.82426757812496,56.589990234374994],[-131.471875,56.55673828125006],[-130.649072265625,56.26367187500003],[-130.47709960937496,56.230566406250034],[-130.413134765625,56.12250976562498],[-130.09785156249995,56.10927734375002],[-130.01406249999997,55.950537109375006],[-130.2140625,55.02587890625003],[-130.57534179687497,54.769677734374966],[-130.849609375,54.80761718750006],[-131.04785156249997,55.157666015624955],[-130.74819335937502,55.31801757812502],[-131.127685546875,55.96015625000001],[-131.032763671875,56.08808593749998],[-131.78417968749997,55.876562500000034],[-131.98339843749994,55.535009765625006],[-132.15541992187502,55.59956054687501],[-132.20751953124997,55.75341796875],[-131.84384765625003,56.16010742187498],[-131.55136718749998,56.206787109375],[-131.88789062500004,56.24165039062498],[-132.18203125000002,56.42065429687506],[-132.82460937500002,57.05581054687505],[-133.465869140625,57.17216796875002],[-133.64873046874993,57.64228515624998],[-133.11704101562498,57.56621093750002],[-133.535205078125,57.83295898437501],[-133.1943359375,57.87768554687506],[-133.559375,57.924462890624994],[-133.72231445312502,57.84423828125],[-134.03110351562498,58.072167968749966],[-133.87675781249996,58.51816406249998],[-134.20883789062503,58.232958984375045],[-134.77612304687506,58.45385742187503],[-135.36367187500002,59.41943359375],[-135.50234375000002,59.202294921874994],[-135.090234375,58.245849609375],[-135.57177734374994,58.41206054687504],[-135.89755859374998,58.40019531250002],[-136.04311523437497,58.82163085937498],[-135.82636718750004,58.89794921874997],[-136.0166015625,58.87397460937498],[-136.150048828125,59.04809570312503],[-136.22583007812497,58.765478515625006],[-136.98901367187503,59.03447265624999],[-137.05903320312498,58.87373046875001],[-136.613916015625,58.809277343749955],[-136.48374023437503,58.61767578125],[-136.224609375,58.602246093749955],[-136.06147460937495,58.45273437500006],[-136.607421875,58.24399414062498],[-137.54399414062502,58.58120117187502],[-138.51489257812503,59.16591796875005],[-139.77329101562498,59.52729492187504],[-139.51303710937498,59.698095703125006],[-139.5123046875,59.95356445312501],[-139.28671874999998,59.610937500000034],[-139.22080078125003,59.819873046875045],[-138.9880859375,59.83500976562502],[-139.43144531249996,60.012255859375074],[-140.41982421874997,59.71074218750002],[-141.40830078125,59.90278320312498],[-141.408740234375,60.11767578125006],[-141.67016601562497,59.969873046874966],[-142.94565429687503,60.09697265625002],[-144.14721679687494,60.01640625000002],[-144.185498046875,60.150732421875034],[-144.901318359375,60.335156249999955],[-144.69111328125,60.66909179687502],[-145.248291015625,60.38012695312506],[-145.898876953125,60.47817382812505],[-145.67490234374998,60.65112304687503],[-146.57045898437497,60.72915039062502],[-146.39199218749997,60.810839843750045],[-146.63842773437497,60.89731445312498],[-146.59912109374994,61.05351562500002],[-146.284912109375,61.11264648437498],[-147.89111328125,60.889892578125],[-148.00512695312494,60.96855468750002],[-147.75185546874997,61.218945312499955],[-148.34189453125,61.060400390625006],[-148.34443359374998,60.853564453125045],[-148.55615234374994,60.82700195312506],[-148.25673828124997,60.67529296874997],[-148.64013671875,60.48945312500004],[-148.11918945312502,60.57514648437498],[-147.96411132812494,60.48486328124997],[-148.430712890625,59.98911132812498],[-149.2666015625,59.99829101562497],[-149.395263671875,60.10576171875002],[-149.59804687500002,59.77045898437501],[-149.7138671875,59.91958007812502],[-149.80126953124994,59.737939453124966],[-150.00532226562507,59.78442382812503],[-150.19804687499996,59.56655273437505],[-150.60737304687504,59.56337890625002],[-150.934521484375,59.249121093750034],[-151.18276367187502,59.30078124999997],[-151.73818359375002,59.18852539062502],[-151.94951171875,59.26508789062498],[-151.88461914062503,59.386328125],[-151.39960937499995,59.51630859375001],[-151.04648437499998,59.771826171875034],[-151.45009765624997,59.65039062499997],[-151.85322265625,59.78208007812498],[-151.39599609375006,60.27446289062502],[-151.35644531249997,60.72294921874999],[-150.44125976562503,61.02358398437505],[-149.07509765624997,60.87641601562498],[-150.05327148437496,61.17109374999998],[-149.433544921875,61.50078125000002],[-149.97568359374998,61.27934570312502],[-150.61225585937495,61.301123046875006],[-151.59350585937494,60.979638671874966],[-152.54091796874997,60.265429687500045],[-153.025,60.29565429687497],[-152.660107421875,59.99721679687502],[-153.21123046875002,59.84272460937498],[-153.09360351562503,59.70913085937505],[-153.65253906250004,59.64702148437499],[-154.17832031250003,59.155566406250074],[-153.41826171875,58.9599609375],[-153.43759765625003,58.754833984374955],[-154.289013671875,58.30434570312502],[-154.247021484375,58.15942382812497],[-155.006884765625,58.01606445312501],[-155.77797851562497,57.56821289062498],[-156.43588867187498,57.359960937500006],[-156.62900390624998,57.00996093750001],[-158.41440429687498,56.435839843750045],[-158.5521484375,56.31269531249998],[-158.27563476562497,56.19624023437498],[-158.5046875,56.062109375],[-158.59116210937503,56.18452148437498],[-158.78984375000002,55.98691406250006],[-159.52324218749993,55.81000976562498],[-159.65966796875003,55.625927734374955],[-159.77138671874997,55.84111328125002],[-160.49931640625002,55.53730468750004],[-161.38193359374998,55.371289062499955],[-161.44379882812495,55.513281250000034],[-161.202099609375,55.54355468750006],[-161.51694335937503,55.61840820312503],[-162.073974609375,55.13930664062505],[-162.38637695312497,55.05234375],[-162.63037109375003,55.24667968749998],[-162.67436523437505,54.99658203125],[-162.86503906249996,54.954541015624955],[-163.11962890624997,55.06469726562503],[-163.131103515625,54.916552734375045],[-163.33530273437503,54.83916015624999],[-163.27880859374997,55.12182617187503],[-162.906591796875,55.19555664062503],[-161.69731445312502,55.9072265625],[-161.215625,56.02143554687498],[-160.8986328125,55.99365234375],[-161.00537109375,55.88715820312498],[-160.80283203125003,55.754443359375045],[-160.70634765625002,55.870458984375034],[-160.29169921875,55.80507812500005],[-160.53906250000006,56.00629882812501],[-160.30205078125,56.31411132812502],[-158.91801757812502,56.882177734375006],[-158.675146484375,56.79487304687498],[-158.66079101562502,57.03940429687498],[-158.32094726562497,57.29790039062499],[-157.84575195312496,57.52807617187497],[-157.4619140625,57.506201171875034],[-157.697216796875,57.679443359375],[-157.610888671875,58.050830078125074],[-157.19370117187498,58.19418945312506],[-157.48837890624998,58.25371093750002],[-157.52363281249998,58.421337890624955],[-156.97465820312496,58.736328125],[-156.80888671875005,59.13427734375],[-157.14204101562504,58.87763671875001],[-158.19091796875003,58.6142578125],[-158.50317382812494,58.85034179687497],[-158.42563476562498,58.99931640625002],[-158.080517578125,58.97744140625002],[-158.422802734375,59.08984375],[-158.67827148437502,58.92939453124998],[-158.80947265625002,58.973876953125],[-158.78862304687493,58.440966796875045],[-158.95068359375,58.404541015625],[-159.67026367187498,58.9111328125],[-159.92021484375,58.819873046875074],[-160.36313476562498,59.05117187500002],[-161.246826171875,58.799462890624994],[-161.36132812499994,58.66953124999998],[-162.144921875,58.64423828124998],[-161.724365234375,58.794287109375006],[-161.64438476562498,59.109667968750045],[-161.9810546875,59.14614257812502],[-161.82871093749998,59.588623046875],[-162.421337890625,60.28398437500002],[-161.96201171875003,60.695361328125045],[-162.68496093749997,60.268945312499966],[-162.57075195312495,59.98974609375],[-163.68037109374998,59.80151367187503],[-164.14282226562497,59.89677734374999],[-165.02651367187497,60.500634765624994],[-165.35380859375002,60.54121093750001],[-164.80517578125,60.89204101562498],[-164.31850585937497,60.77128906249999],[-164.37236328125002,60.59184570312502],[-163.999560546875,60.76606445312498],[-163.72998046874997,60.589990234374994],[-163.420947265625,60.757421875],[-163.90654296874996,60.85380859375002],[-163.58691406249994,60.902978515624994],[-163.74902343750003,60.9697265625],[-163.99462890624997,60.86469726562501],[-165.11484375,60.93281250000004],[-164.86899414062503,61.11176757812498],[-165.27978515624994,61.169628906249955],[-165.27363281250004,61.27485351562498],[-165.56586914062498,61.10234375000002],[-165.86396484375004,61.33569335937503],[-165.84531249999998,61.536230468750034],[-166.152734375,61.545947265625074],[-166.16811523437502,61.65083007812501],[-165.80893554687503,61.69609375000002],[-166.07880859375,61.803125],[-165.61279296875003,61.86928710937502],[-165.707275390625,62.10043945312506],[-165.19453125,62.47353515625002],[-164.75786132812493,62.496728515624966],[-164.589453125,62.709375],[-164.79267578125,62.623193359374966],[-164.79965820312503,62.918066406250006],[-164.384228515625,63.03046874999998],[-164.40903320312503,63.21503906250001],[-163.94287109375,63.247216796874994],[-163.61630859374998,63.125146484374994],[-163.73784179687496,63.016406250000045],[-163.504345703125,63.105859374999966],[-163.28784179687494,63.046435546875045],[-162.621484375,63.26582031249998],[-162.28281250000003,63.529199218749994],[-161.97397460937498,63.45292968749999],[-161.09970703125003,63.557910156250045],[-160.778564453125,63.818945312500034],[-160.987548828125,64.25126953125002],[-161.49072265625003,64.43378906249998],[-160.93193359374996,64.5791015625],[-160.855908203125,64.755615234375],[-161.13017578125005,64.92543945312505],[-161.759375,64.816259765625],[-162.80703124999997,64.37421875000001],[-163.20390625,64.65200195312502],[-163.14433593750002,64.423828125],[-163.71308593749998,64.588232421875],[-164.978759765625,64.45366210937502],[-166.1427734375,64.58276367187503],[-166.48139648437498,64.72807617187507],[-166.415234375,64.926513671875],[-166.92841796875,65.15708007812498],[-166.15703125,65.28583984375001],[-167.40400390625,65.42211914062497],[-168.08837890624997,65.65776367187502],[-166.39873046875002,66.14443359375005],[-165.62993164062496,66.131201171875],[-165.77617187500002,66.31904296875001],[-164.46049804687502,66.58842773437499],[-163.63823242187502,66.57465820312504],[-163.89394531249997,66.57587890625001],[-164.03374023437493,66.21552734374995],[-163.69536132812502,66.08383789062503],[-161.93369140625003,66.04287109374997],[-161.45541992187503,66.28139648437497],[-161.03427734375003,66.18881835937503],[-161.12031249999995,66.334326171875],[-161.91689453124997,66.41181640624998],[-162.54365234375004,66.80512695312501],[-162.36162109375,66.94731445312502],[-161.591015625,66.45952148437502],[-160.23168945312503,66.420263671875],[-160.360888671875,66.6125],[-160.864013671875,66.67084960937501],[-161.39804687499998,66.55185546875],[-161.85668945312497,66.70034179687497],[-161.719921875,67.02055664062502],[-163.5318359375,67.10258789062502],[-164.1251953125,67.60673828125007],[-166.786279296875,68.35961914062497],[-166.38051757812502,68.425146484375],[-166.20908203125,68.88535156250003],[-165.04394531249994,68.882470703125],[-163.867919921875,69.03666992187505],[-161.88095703125003,70.33173828125001],[-162.073876953125,70.16196289062498],[-160.9962890625,70.30458984375],[-160.11713867187495,70.59121093750002],[-159.86567382812498,70.27885742187499],[-159.81499023437496,70.49707031250003],[-159.38676757812493,70.52451171875003],[-160.081591796875,70.63486328125003],[-159.680908203125,70.786767578125],[-159.31450195312496,70.87851562500003],[-159.251171875,70.7484375],[-157.909375,70.860107421875],[-156.47021484374994,71.40766601562501],[-156.469970703125,71.29155273437507],[-155.57944335937503,71.12109374999997],[-156.14658203125,70.92783203125003],[-155.97353515625002,70.84199218749995],[-155.16684570312498,71.09921875000006],[-154.19521484375002,70.80112304687498],[-153.23291015625,70.93256835937504],[-152.49121093749994,70.88095703125],[-152.23291015625,70.81035156249999],[-152.39921875,70.62045898437503],[-151.76904296875,70.56015625],[-151.94467773437498,70.45209960937501],[-149.26943359374997,70.50078124999999],[-147.70537109375,70.21723632812495],[-145.82314453124997,70.16005859375002],[-145.19736328125003,70.00869140625002],[-143.218310546875,70.11625976562499],[-142.70786132812498,70.03378906249998],[-141.40791015625,69.65336914062502],[-141.00214843750004,69.65078125000002],[-141.00214843750004,68.77416992187506]]]]},"properties":{"name":"United States","childNum":76}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[71.20615234375006,39.892578125],[71.15625,39.88344726562502],[71.06425781250002,39.88491210937505],[71.01171874999997,39.895117187500006],[71.04365234375004,39.97631835937503],[71.04482421875005,39.992529296875034],[70.96064453125004,40.087988281250034],[71.00546875,40.15229492187498],[71.0241210937501,40.14916992187497],[71.08037109375007,40.07988281249999],[71.2287109375001,40.04814453124999],[71.20615234375006,39.892578125]]],[[[70.94677734374997,42.24868164062505],[70.97900390625003,42.26655273437504],[71.03603515625,42.28466796875],[71.12998046875006,42.25],[71.21269531250002,42.20644531250005],[71.23232421875005,42.18627929687503],[71.22851562499997,42.16289062499996],[70.18095703125007,41.571435546874994],[70.734375,41.400537109374994],[70.86044921875006,41.22490234375002],[71.11074218750005,41.152636718750045],[71.29882812500003,41.152490234374994],[71.39306640625003,41.123388671875034],[71.40839843750004,41.13603515625002],[71.42089843750003,41.341894531250034],[71.60625,41.367431640625],[71.66494140625,41.54121093749998],[71.70068359374997,41.454003906249966],[71.75771484375005,41.42802734375002],[71.79248046875003,41.41313476562499],[71.85800781250006,41.311376953125034],[71.8786132812501,41.195019531249955],[71.95849609375003,41.18706054687502],[72.05244140625004,41.16474609375001],[72.1154296875001,41.18657226562502],[72.1642578125001,41.173730468749966],[72.18095703125002,41.11845703124999],[72.18730468750002,41.02592773437499],[72.2130859375001,41.014257812500006],[72.36406250000002,41.04345703125],[72.65830078125,40.86992187499999],[73.13212890625002,40.82851562499999],[72.6041015625,40.52543945312499],[72.40205078125004,40.578076171874955],[72.3892578125,40.427392578124994],[72.13125,40.438623046874966],[71.69248046875,40.15234375],[71.30468749999997,40.28691406249996],[70.990625,40.2548828125],[70.95800781250003,40.238867187500034],[70.653125,40.201171875],[70.37158203125003,40.38413085937506],[70.75107421875006,40.721777343750006],[70.40195312500006,41.03510742187498],[69.71289062500003,40.65698242187503],[69.35722656250002,40.76738281249996],[69.20625,40.566552734374994],[69.27490234374997,40.19809570312498],[68.63066406250007,40.16708984374998],[68.9720703125,40.08994140624998],[68.80468750000003,40.05034179687499],[68.86875,39.90747070312503],[68.63896484375007,39.8388671875],[68.46328125,39.53671874999998],[67.71904296875007,39.62138671875002],[67.426171875,39.46557617187497],[67.3576171875001,39.216699218749994],[67.64833984375005,39.13105468750004],[67.69443359375006,38.99462890625003],[68.13251953125004,38.927636718749966],[68.08720703125002,38.47353515625002],[68.3502929687501,38.211035156250006],[67.81435546875005,37.48701171875004],[67.7980468750001,37.244970703125006],[67.75898437500004,37.172216796875034],[67.75292968749997,37.199804687500034],[67.7,37.227246093749955],[67.60742187499997,37.22250976562506],[67.5172851562501,37.26665039062499],[67.44169921875007,37.25800781250001],[67.3197265625,37.209570312500006],[67.1955078125001,37.23520507812498],[67.06884765624997,37.334814453125006],[66.82773437500006,37.37128906249998],[66.52226562500007,37.34848632812506],[66.51064453125,37.45869140625004],[66.51132812500006,37.59916992187496],[66.52558593750004,37.785742187500034],[66.60625,37.98671875000005],[65.97119140624997,38.244238281250006],[65.612890625,38.23857421875002],[64.3099609375,38.97729492187497],[63.76367187500003,39.16054687499999],[62.48320312500002,39.97563476562496],[61.90283203124997,41.09370117187501],[61.496972656249994,41.276074218749955],[61.2423828125001,41.18920898437503],[60.454980468749994,41.221630859374955],[60.089648437500074,41.39941406250003],[60.07558593750005,41.759667968749966],[60.20078125000006,41.803125],[59.94179687499999,41.97353515625002],[59.98515625000002,42.21171875],[59.35429687500002,42.32329101562496],[58.5890625000001,42.778466796874966],[58.477148437500006,42.66284179687503],[58.15156250000004,42.628076171874966],[58.474414062500074,42.29936523437496],[58.02890625,42.48764648437506],[57.814257812500074,42.18984375000005],[57.290625,42.123779296875],[56.96406250000004,41.856542968750006],[57.11884765625004,41.35029296874998],[57.01796875,41.26347656249996],[55.97744140625005,41.32221679687504],[55.97568359375006,44.99492187499996],[58.555273437500006,45.55537109375001],[61.007910156250006,44.39379882812497],[61.99023437500003,43.492138671874955],[63.20703125000003,43.62797851562502],[64.44316406250007,43.55117187499999],[64.9054687500001,43.714697265625006],[65.49619140625,43.310546875],[65.80302734375002,42.87695312500006],[66.1002929687501,42.99082031249998],[66.00957031250007,42.00488281250003],[66.49863281250006,41.99487304687503],[66.70966796875004,41.17915039062501],[67.9357421875001,41.19658203125002],[68.11308593750007,41.02861328124999],[68.04765625000007,40.80927734374998],[68.29189453125,40.656103515625034],[68.57265625,40.62265624999998],[68.58408203125,40.876269531250045],[69.15361328125002,41.42524414062498],[70.94677734374997,42.24868164062505]]]]},"properties":{"name":"Uzbekistan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-61.17451171875001,13.158105468749966],[-61.268457031249966,13.287695312499991],[-61.13896484374996,13.358740234374991],[-61.17451171875001,13.158105468749966]]]},"properties":{"name":"St. Vin. and Gren.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-60.99790039062498,8.867333984374966],[-61.069189453125034,8.947314453125003],[-60.91582031249996,9.070312500000014],[-60.86142578124998,8.949609375000037],[-60.99790039062498,8.867333984374966]]],[[[-60.821191406249966,9.138378906250026],[-60.94140625000003,9.105566406250006],[-60.73583984374997,9.203320312500026],[-60.821191406249966,9.138378906250026]]],[[[-63.84936523437494,11.131005859374994],[-63.917626953124994,10.887548828125048],[-64.40234375,10.981591796875023],[-64.21367187500002,11.086132812499997],[-64.0283203125,11.00185546874998],[-63.84936523437494,11.131005859374994]]],[[[-60.742138671874926,5.202050781250037],[-60.71196289062499,5.191552734375023],[-60.671972656250034,5.164355468749989],[-60.603857421875006,4.94936523437498],[-61.00283203125002,4.535253906249991],[-61.28007812500002,4.516894531249974],[-61.82084960937496,4.197021484375],[-62.153125,4.098388671874986],[-62.41064453124994,4.156738281249972],[-62.71210937499998,4.01791992187502],[-62.85698242187502,3.593457031249969],[-63.33867187500002,3.943896484375045],[-64.02148437500003,3.929101562500051],[-64.19248046874995,4.126855468750009],[-64.57636718750001,4.139892578125],[-64.788671875,4.276025390625023],[-64.66899414062496,4.01181640625002],[-64.22109375000002,3.587402343749972],[-64.04658203124998,2.502392578124997],[-63.389257812500006,2.411914062500045],[-63.43251953124994,2.155566406250045],[-64.00849609374995,1.931591796874969],[-64.20502929687493,1.52949218750004],[-65.10375976562497,1.108105468749983],[-65.47338867187497,0.691259765624977],[-65.55605468750002,0.687988281250014],[-65.52299804687493,0.843408203124966],[-65.68144531249999,0.983447265624989],[-66.06005859375003,0.78535156250004],[-66.34711914062498,0.7671875],[-66.87602539062499,1.223046875000037],[-67.21083984375,2.390136718750043],[-67.61870117187496,2.793603515624994],[-67.85908203124998,2.793603515624994],[-67.3111328125,3.41586914062502],[-67.66162109375,3.864257812499986],[-67.85527343750002,4.506884765624989],[-67.82490234374995,5.270458984375026],[-67.47387695312503,5.929980468750003],[-67.48198242187499,6.18027343750002],[-67.85917968749999,6.289892578124963],[-68.47177734375,6.156542968749974],[-69.42714843749997,6.123974609374997],[-70.12919921874999,6.95361328125],[-70.73715820312503,7.090039062499997],[-71.12861328124993,6.98671875],[-72.00664062499993,7.032617187500023],[-72.20771484374995,7.37026367187498],[-72.47197265624996,7.524267578124991],[-72.39033203124995,8.287060546874969],[-72.66542968749994,8.62758789062498],[-72.79638671874997,9.10898437499999],[-73.05839843749999,9.259570312500031],[-73.36621093749997,9.194140625000017],[-73.00654296874998,9.789160156250006],[-72.86933593750001,10.49125976562496],[-72.690087890625,10.835839843749994],[-72.24848632812501,11.196435546875009],[-71.95810546875,11.66640625],[-71.31972656249997,11.861914062500048],[-71.95693359375002,11.569921874999977],[-71.835107421875,11.190332031250009],[-71.6416015625,11.013525390625048],[-71.73090820312498,10.994677734375017],[-71.59433593749995,10.657373046875051],[-72.11284179687499,9.815576171874966],[-71.61953124999994,9.047949218749991],[-71.24140625000001,9.160449218750003],[-71.08583984375002,9.348242187499977],[-71.05268554687501,9.705810546874986],[-71.49423828125,10.533203124999972],[-71.46953124999993,10.964160156250017],[-70.23251953124998,11.372998046874997],[-70.09711914062493,11.519775390624972],[-69.80478515624998,11.47421875000002],[-69.81733398437495,11.672070312499997],[-70.19257812499993,11.62460937500002],[-70.28652343749997,11.886035156249989],[-70.20278320312497,12.098388671874986],[-70.00395507812496,12.177880859375023],[-69.63159179687494,11.479931640625026],[-68.827978515625,11.431738281249977],[-68.39863281249995,11.160986328124977],[-68.29628906249997,10.689355468749994],[-68.13994140624999,10.492724609374989],[-66.24721679687497,10.632226562499994],[-65.85175781249995,10.257763671874997],[-65.12910156249998,10.070068359375043],[-64.85048828125,10.098095703124969],[-64.188330078125,10.457812499999989],[-63.73188476562501,10.503417968750043],[-64.24750976562498,10.54257812500002],[-64.298193359375,10.635156249999966],[-61.879492187500006,10.741015625000031],[-62.379980468750006,10.546875],[-62.91357421875,10.531494140624986],[-62.68583984374996,10.289794921875043],[-62.740576171875006,10.056152343750043],[-62.55034179687499,10.200439453125043],[-62.320410156250034,9.783056640625006],[-62.22114257812498,9.882568359375028],[-62.15336914062493,9.821777343749986],[-62.15532226562499,9.979248046875014],[-62.077099609374926,9.97504882812504],[-61.73593749999998,9.631201171874977],[-61.76591796874996,9.813818359374963],[-61.58886718749994,9.894531249999986],[-60.79248046874997,9.360742187500037],[-61.02314453124998,9.15458984374996],[-61.24726562499998,8.600341796875014],[-61.61870117187499,8.59746093749996],[-61.30400390624999,8.410400390625043],[-60.800976562499926,8.592138671875034],[-60.16748046875,8.616992187500031],[-60.01752929687501,8.549316406250014],[-59.83164062499998,8.305957031250003],[-59.84907226562498,8.248681640624966],[-59.96484375000003,8.191601562499969],[-59.99072265624997,8.16201171874998],[-60.032421874999926,8.053564453125006],[-60.51362304687501,7.813183593749969],[-60.71865234374994,7.535937499999974],[-60.606542968750006,7.320849609375031],[-60.63330078124997,7.211083984374966],[-60.58320312499998,7.156201171874969],[-60.523193359375,7.143701171875009],[-60.464941406250034,7.166552734375045],[-60.39238281249999,7.164550781249986],[-60.34506835937495,7.15],[-60.32548828124996,7.133984374999983],[-60.32207031249996,7.092041015625043],[-60.35209960937496,7.002880859374997],[-60.39501953125,6.945361328125003],[-60.717919921874966,6.768310546875],[-61.14560546874998,6.694531249999983],[-61.20361328124997,6.588378906250028],[-61.181591796874926,6.513378906250026],[-61.15102539062502,6.446533203124986],[-61.15229492187501,6.385107421875006],[-61.12871093749999,6.214306640625026],[-61.15947265624996,6.174414062499977],[-61.22495117187498,6.129199218750003],[-61.303125,6.049511718750026],[-61.39082031250001,5.938769531250017],[-61.376806640625006,5.906982421875028],[-61.167187499999926,5.674218750000037],[-60.95400390625002,5.437402343750023],[-60.742138671874926,5.202050781250037]]]]},"properties":{"name":"Venezuela","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[-64.765625,17.794335937499994],[-64.58046874999994,17.750195312499983],[-64.88911132812495,17.701708984375045],[-64.765625,17.794335937499994]]]},"properties":{"name":"U.S. Virgin Is.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[104.06396484375003,10.390820312500011],[104.01845703125,10.029199218749966],[103.84951171875005,10.371093749999986],[104.06396484375003,10.390820312500011]]],[[[107.52128906250007,20.926611328124977],[107.39921875000007,20.903466796874966],[107.55126953125003,21.034033203125006],[107.52128906250007,20.926611328124977]]],[[[107.60273437500004,21.21679687500003],[107.40351562500004,21.093652343749994],[107.47626953125004,21.268945312499994],[107.60273437500004,21.21679687500003]]],[[[107.97265624999997,21.507958984375023],[107.40996093750002,21.284814453125023],[107.35429687500007,21.055175781250057],[107.1647460937501,20.94873046875003],[106.68339843750007,21.000292968750074],[106.75341796875003,20.73505859375004],[106.55078124999997,20.52656250000001],[106.57285156250012,20.392187499999977],[105.98408203125004,19.939062500000034],[105.62177734375004,18.96630859375003],[105.88828125000006,18.502490234375045],[106.49902343749997,17.946435546874994],[106.47890625000005,17.719580078125063],[106.3705078125,17.746875],[107.83378906250002,16.322460937499983],[108.02939453125012,16.331103515625074],[108.82128906249997,15.377929687500028],[109.30332031250012,13.856445312500043],[109.271875,13.279345703124974],[109.42392578125006,12.955957031249994],[109.44492187500006,12.599609375000057],[109.33554687500012,12.751904296874997],[109.21894531250004,12.64580078124996],[109.30468750000003,12.391162109375045],[109.20683593750007,12.415380859375006],[109.1986328125,11.724853515625014],[109.03964843750012,11.592675781249994],[108.98671875,11.336376953124997],[108.09492187500004,10.897265624999989],[108.0013671875,10.720361328125009],[107.26152343750007,10.39838867187504],[107.00664062500002,10.66054687499998],[106.94746093750004,10.400341796874997],[106.72734375000007,10.535644531250028],[106.605859375,10.46494140625002],[106.74121093750003,10.444384765625003],[106.75742187500006,10.295800781250023],[106.46406250000004,10.298291015624997],[106.78525390625012,10.116455078124986],[106.59560546875005,9.859863281250028],[106.1364257812501,10.221679687500014],[106.56435546875005,9.715625],[106.48408203125004,9.559423828125006],[105.83095703125005,10.000732421875028],[106.15859375,9.59414062499998],[106.16835937500005,9.396728515625],[105.50097656249997,9.093212890624983],[105.11435546875006,8.629199218750031],[104.77041015625,8.59765625],[104.89628906250007,8.746630859374974],[104.81855468750004,8.801855468750034],[104.84521484375003,9.606152343750026],[105.08447265625003,9.99570312499999],[104.8019531250001,10.202734374999977],[104.66347656250005,10.169921875000043],[104.42636718750006,10.411230468749991],[104.85058593749997,10.534472656249974],[105.04638671874997,10.701660156250014],[105.04570312500002,10.911376953125014],[105.3146484375001,10.845166015625026],[105.40576171875003,10.95161132812504],[105.75507812500004,10.989990234375043],[105.85332031250007,10.86357421874996],[106.16396484375005,10.794921875],[106.16093750000002,11.037109375000057],[105.85605468750006,11.294287109375048],[105.85146484375005,11.635009765625],[106.0060546875001,11.758007812500011],[106.39921875000007,11.687011718750028],[106.41386718750002,11.9484375],[106.70009765625,11.979296874999974],[107.21210937500004,12.30400390624996],[107.39335937500002,12.260498046874972],[107.50644531250006,12.364550781250031],[107.47539062500002,13.030371093749963],[107.60546874999997,13.437792968750017],[107.3314453125,14.126611328125009],[107.51943359375005,14.705078125],[107.51376953125012,14.817382812500057],[107.52451171875012,14.871826171875043],[107.50468750000007,14.915917968749966],[107.48037109375,14.979882812500037],[107.55527343750006,15.057031250000023],[107.58964843750002,15.118457031250017],[107.63369140625005,15.18984375],[107.653125,15.255224609374991],[107.62167968750006,15.309863281250017],[107.56425781250002,15.391601562499972],[107.45957031250012,15.4658203125],[107.33876953125,15.560498046875011],[107.27939453125006,15.618701171875045],[107.16591796875005,15.802490234375028],[107.1888671875,15.838623046875],[107.36064453125002,15.921728515624977],[107.3919921875,15.951660156250028],[107.39638671875,16.04301757812499],[106.93066406249997,16.353125],[106.8927734375001,16.396533203125074],[106.85107421875003,16.515625],[106.83242187500005,16.526269531250023],[106.79160156250006,16.490332031250006],[106.73955078125007,16.452539062500023],[106.6564453125001,16.49262695312501],[106.54619140625002,16.650732421874977],[106.53369140625003,16.821044921875057],[106.52597656250006,16.876611328124994],[106.50224609375002,16.95410156249997],[106.26953125000003,17.21679687500003],[106.00625,17.415283203125057],[105.69140625000003,17.737841796875045],[105.58847656250012,17.983691406250045],[105.51855468749997,18.077441406250045],[105.45820312500004,18.15429687499997],[105.11455078125002,18.40527343750003],[105.08701171875006,18.496240234374994],[105.14541015625,18.616796875000063],[105.14648437500003,18.650976562500006],[103.89160156250003,19.304980468750017],[103.89638671875,19.339990234375023],[103.93203125,19.366064453125006],[104.0275390625001,19.42045898437499],[104.062890625,19.48256835937505],[104.05156250000007,19.564160156249955],[104.01347656250007,19.64648437500003],[104.03203125000002,19.675146484375006],[104.06279296875007,19.678417968749983],[104.25986328125006,19.685498046874983],[104.5462890625,19.61054687500001],[104.58789062500003,19.61875],[104.74316406250003,19.754736328124977],[104.80175781249997,19.83613281250004],[104.81513671875004,19.90400390625001],[104.9279296875001,20.01811523437499],[104.92919921875003,20.082812500000017],[104.88867187500003,20.169091796875023],[104.84785156250004,20.202441406250045],[104.69873046875003,20.20532226562503],[104.67695312500004,20.224707031249977],[104.66191406250007,20.28901367187501],[104.65644531250004,20.32851562499999],[104.6188476562501,20.37451171875003],[104.49619140625006,20.413671875],[104.39218750000012,20.424755859374955],[104.36777343750012,20.44140624999997],[104.40781250000012,20.48574218750005],[104.47861328125006,20.529589843750017],[104.53271484374997,20.55488281250001],[104.58320312500004,20.646679687499955],[104.34960937499997,20.821093750000074],[104.19531249999997,20.913964843749966],[104.10136718750002,20.94550781250001],[103.63505859375007,20.697070312500017],[103.46357421875004,20.779833984375017],[103.21074218750002,20.840625],[103.10449218749997,20.891650390625045],[102.88378906250003,21.202587890624983],[102.85117187500006,21.26591796874999],[102.94960937500005,21.681347656249983],[102.84521484374997,21.73476562500005],[102.81591796874997,21.807373046875],[102.7982421875,21.797949218750034],[102.77109375000006,21.709667968749983],[102.73857421875002,21.67792968750001],[102.66201171875005,21.67602539062497],[102.58251953125003,21.90429687500003],[102.12744140624997,22.379199218750045],[102.1759765625001,22.414648437500006],[102.2370117187501,22.466015624999983],[102.40644531250004,22.70800781249997],[102.47089843750004,22.75092773437501],[102.98193359374997,22.4482421875],[103.32666015625003,22.769775390625057],[103.49296875000007,22.587988281250034],[103.62021484375006,22.782031250000045],[103.94150390625006,22.540087890625045],[104.14306640624997,22.800146484375006],[104.37177734375004,22.704052734374983],[104.68730468750002,22.822216796874983],[104.86474609375003,23.136376953125023],[105.27539062500003,23.34521484375003],[105.8429687500001,22.922802734374955],[106.14843749999997,22.970068359375006],[106.2790039062501,22.857470703125045],[106.54179687500007,22.908349609375023],[106.78027343749997,22.778906250000034],[106.55039062500006,22.501367187499994],[106.66357421875003,21.97890625000005],[106.97099609375002,21.923925781250034],[107.35117187500012,21.60888671874997],[107.75927734374997,21.655029296875057],[107.97265624999997,21.507958984375023]]]]},"properties":{"name":"Vietnam","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[169.49130859375006,-19.54013671875002],[169.34726562500006,-19.623535156249957],[169.2174804687501,-19.476367187500003],[169.24746093750005,-19.3447265625],[169.49130859375006,-19.54013671875002]]],[[[169.334375,-18.940234375000017],[168.98691406250006,-18.87128906250001],[169.01582031250004,-18.64375],[169.14384765625002,-18.63105468750001],[169.334375,-18.940234375000017]]],[[[168.44580078124997,-17.54218750000004],[168.58496093750003,-17.695898437500006],[168.52460937500004,-17.798046875000026],[168.15820312500003,-17.710546874999963],[168.2731445312501,-17.552246093749957],[168.44580078124997,-17.54218750000004]]],[[[168.44677734375003,-16.778808593749957],[168.18144531250002,-16.804003906250017],[168.13535156250006,-16.636914062499997],[168.44677734375003,-16.778808593749957]]],[[[168.29667968750007,-16.33652343749999],[167.92900390625002,-16.22871093749997],[168.16386718750002,-16.081640625000034],[168.29667968750007,-16.33652343749999]]],[[[167.4125,-16.095898437499997],[167.83662109375004,-16.449707031249957],[167.44931640625012,-16.554980468750003],[167.34921875000006,-16.15449218750004],[167.15146484375006,-16.080468749999966],[167.19951171875002,-15.885058593750031],[167.33574218750007,-15.916699218749997],[167.4125,-16.095898437499997]]],[[[167.9113281250001,-15.435937500000023],[167.67421875,-15.4515625],[168.00253906250012,-15.283203124999986],[167.9113281250001,-15.435937500000023]]],[[[166.74580078125004,-14.826855468750011],[166.81015625000012,-15.15742187500004],[167.0755859375,-14.935644531249977],[167.20078125000012,-15.443066406249969],[167.0939453125001,-15.580859374999974],[166.75830078125003,-15.631152343750003],[166.63105468750004,-15.406054687499974],[166.56738281250003,-14.641796874999969],[166.74580078125004,-14.826855468750011]]],[[[167.58486328125,-14.260937500000011],[167.43027343750012,-14.294921875],[167.41074218750006,-14.19746093750004],[167.50644531250012,-14.142187499999977],[167.58486328125,-14.260937500000011]]],[[[167.48886718750006,-13.907226562499972],[167.3917968750001,-13.788378906250017],[167.48105468750006,-13.709472656250014],[167.48886718750006,-13.907226562499972]]]]},"properties":{"name":"Vanuatu","childNum":10}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-171.4541015625,-14.04648437500002],[-171.9119140625,-14.001660156250026],[-172.04589843750003,-13.857128906249983],[-171.60390624999997,-13.879199218750045],[-171.4541015625,-14.04648437500002]]],[[[-172.33349609375,-13.46523437499999],[-172.17685546874998,-13.68466796875002],[-172.224951171875,-13.804296874999963],[-172.535693359375,-13.791699218749983],[-172.77851562499998,-13.516796875000011],[-172.33349609375,-13.46523437499999]]]]},"properties":{"name":"Samoa","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[53.76318359374997,12.636816406249991],[54.18740234375005,12.664013671875026],[54.511132812499994,12.552783203125017],[54.12949218750006,12.360644531250045],[53.71884765625006,12.318994140624994],[53.31582031250005,12.533154296875011],[53.53496093750002,12.715771484374997],[53.76318359374997,12.636816406249991]]],[[[42.75585937500003,13.70429687500004],[42.689746093750074,13.673632812500017],[42.7941406250001,13.766113281250028],[42.75585937500003,13.70429687500004]]],[[[42.787402343750074,13.971484375000031],[42.69404296875004,14.007910156249991],[42.76210937500005,14.067480468750048],[42.787402343750074,13.971484375000031]]],[[[53.08564453125004,16.648388671874955],[52.327734375,16.293554687500063],[52.17402343750004,15.956835937500017],[52.2174804687501,15.655517578125],[51.3224609375001,15.22626953125004],[49.34990234375002,14.637792968749977],[48.66835937499999,14.050146484374977],[47.9899414062501,14.048095703125],[47.40771484374997,13.661621093750057],[46.78886718750002,13.465576171874986],[45.65732421875006,13.338720703124991],[45.03867187500006,12.815869140624969],[44.617773437500006,12.817236328124977],[44.00585937499997,12.607666015625],[43.634375,12.744482421874991],[43.487597656250074,12.69882812500002],[43.23193359375003,13.267089843750057],[43.2824218750001,13.692529296875037],[43.08906250000004,14.010986328125],[42.93642578125005,14.938574218749963],[42.85566406250004,15.132958984375037],[42.65781250000006,15.232812500000051],[42.79902343750004,15.326269531249991],[42.71718750000005,15.654638671875006],[42.83964843750002,16.032031250000074],[42.79931640624997,16.37177734375001],[43.16503906249997,16.689404296874955],[43.19091796875003,17.359375],[43.41796875000003,17.516259765625023],[43.91699218749997,17.32470703124997],[45.14804687500006,17.427441406249955],[45.5353515625001,17.30205078124999],[46.72763671875006,17.26557617187501],[46.97568359375006,16.953466796875034],[47.14355468749997,16.946679687499966],[47.44179687499999,17.111865234375045],[47.57958984374997,17.448339843750034],[48.17216796875002,18.156933593749983],[49.04199218750003,18.58178710937503],[51.977636718750006,18.996142578125074],[53.08564453125004,16.648388671874955]]]]},"properties":{"name":"Yemen","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[37.85693359375003,-46.94423828124998],[37.5900390625001,-46.90800781250006],[37.78955078124997,-46.8375],[37.85693359375003,-46.94423828124998]]],[[[31.799609375000017,-23.8921875],[31.98583984374997,-24.460644531249983],[31.921679687500017,-25.96875],[31.335156250000097,-25.755566406249997],[31.207324218750074,-25.843359375000034],[31.08808593750004,-25.980664062500026],[30.803320312500006,-26.41347656250001],[30.806738281250006,-26.78525390624999],[30.88330078124997,-26.792382812500023],[30.938085937500006,-26.91582031250003],[31.06337890625005,-27.1123046875],[31.274023437500063,-27.23837890625002],[31.469531250000017,-27.29550781250002],[31.74257812500005,-27.309960937500037],[31.95839843750005,-27.305859375],[31.946093750000017,-27.173632812499974],[31.96718750000005,-26.96064453125001],[31.994726562500006,-26.817480468749977],[32.024804687499994,-26.81113281250002],[32.112890625,-26.83945312500002],[32.19960937499999,-26.833496093749957],[32.35351562499997,-26.861621093750003],[32.7765625000001,-26.850976562499966],[32.88613281250005,-26.849316406249983],[32.53476562500006,-28.19970703125003],[32.285742187500006,-28.62148437499998],[31.335156250000097,-29.378125],[29.97119140625003,-31.322070312500017],[28.449414062500068,-32.62460937499999],[27.077441406250074,-33.52119140625004],[26.429492187500045,-33.75957031250002],[25.80585937500001,-33.737109374999974],[25.574218750000057,-34.03535156249998],[25.00292968750003,-33.97363281250003],[24.8271484375,-34.16894531250003],[24.595507812500074,-34.17451171875],[23.697851562500063,-33.99277343750002],[23.268164062500006,-34.08115234374999],[22.553808593750063,-34.01005859374999],[22.24550781250005,-34.06914062500003],[21.788964843750023,-34.37265624999996],[20.529882812500034,-34.4630859375],[20.020605468750006,-34.785742187500006],[19.298242187500023,-34.61503906249996],[19.330761718750068,-34.49238281250001],[19.098339843750068,-34.350097656249986],[18.831347656250017,-34.36406249999999],[18.75214843750004,-34.08261718750002],[18.50039062499999,-34.10927734375004],[18.46162109375001,-34.346875],[18.35205078124997,-34.1884765625],[18.43300781250005,-33.71728515625003],[17.851074218750057,-32.82744140625002],[17.96523437500005,-32.70859374999996],[18.125,-32.74912109374996],[18.325292968750034,-32.50498046874996],[18.21083984375008,-31.74248046874996],[17.34707031250005,-30.44482421875],[16.95,-29.40341796875002],[16.739453124999983,-29.009375],[16.447558593750045,-28.61757812499998],[16.755761718750023,-28.45214843750003],[16.7875,-28.39472656249997],[16.81015625,-28.264550781249994],[16.841210937500023,-28.21894531250004],[16.875292968750045,-28.12792968749997],[16.93330078125004,-28.06962890624999],[17.05625,-28.03105468750003],[17.1884765625,-28.13251953125001],[17.358691406250017,-28.269433593750023],[17.44794921875001,-28.698144531249966],[18.310839843750017,-28.88623046875],[19.16171875,-28.93876953124996],[19.245800781250068,-28.90166015625003],[19.31269531250004,-28.733300781250023],[19.539843750000017,-28.574609375000023],[19.98046875,-28.45126953125002],[19.98046875,-28.310351562500003],[19.98046875,-24.77675781249998],[20.430664062500057,-25.14707031250002],[20.79316406250001,-25.915625],[20.641406250000017,-26.7421875],[20.739843749999977,-26.84882812499997],[21.694726562500023,-26.840917968749963],[21.738085937500045,-26.806835937500026],[21.788281250000068,-26.710058593750034],[22.01093750000004,-26.635839843750006],[22.090917968749977,-26.580175781250034],[22.217578125000045,-26.38886718749997],[22.47089843750004,-26.219042968750003],[22.548632812500074,-26.178417968749997],[22.59765625000003,-26.13271484375001],[22.878808593750023,-25.457910156250023],[23.148730468750017,-25.288671875],[23.389257812500006,-25.291406250000023],[23.89375,-25.600878906250017],[23.96953124999999,-25.62607421874999],[24.192968750000034,-25.632910156249963],[24.33056640625,-25.742871093749983],[25.21337890625,-25.75625],[25.518164062500006,-25.66279296875001],[25.91210937499997,-24.747460937499966],[26.031835937500034,-24.70244140625003],[26.130859375000057,-24.671484375000034],[26.39716796875004,-24.61357421874996],[26.451757812500063,-24.582714843749983],[26.835058593750063,-24.240820312499963],[27.085546875000034,-23.577929687500003],[27.7685546875,-23.14892578125],[27.812597656250006,-23.108007812500006],[28.210156249999983,-22.693652343749974],[28.83984375000003,-22.480859374999966],[28.94580078125003,-22.39511718749999],[29.013476562500045,-22.27841796875002],[29.129882812500057,-22.21328125],[29.364843750000063,-22.19394531250005],[29.37744140625003,-22.19277343749998],[29.66308593749997,-22.146289062500017],[29.90234375000003,-22.184179687500006],[30.19042968750003,-22.291113281250034],[30.460156250000097,-22.329003906250023],[30.71162109375004,-22.297851562499986],[31.07343750000004,-22.30781249999997],[31.19726562499997,-22.344921874999983],[31.287890625000074,-22.402050781249983],[31.54560546875004,-23.48232421874998],[31.799609375000017,-23.8921875]],[[27.19355468750001,-29.94130859375001],[27.364062500000017,-30.27919921875001],[27.753125,-30.6],[28.05683593750001,-30.63105468750001],[28.128710937500017,-30.52509765625001],[28.39208984375003,-30.14755859375002],[28.646875,-30.1265625],[29.09804687500005,-29.919042968750006],[29.142187500000063,-29.70097656249999],[29.293554687500006,-29.56689453125003],[29.348828125000097,-29.441992187499977],[29.38671874999997,-29.319726562500023],[29.301367187500006,-29.08984375],[28.625781250000017,-28.581738281250054],[28.583398437499994,-28.59414062499999],[28.471875,-28.615820312499977],[28.23261718750004,-28.701269531249977],[28.084375,-28.779980468750026],[27.95986328125008,-28.87333984375003],[27.73554687500004,-28.940039062500034],[27.294531250000063,-29.519335937500017],[27.056933593750074,-29.62558593749999],[27.19355468750001,-29.94130859375001]]]]},"properties":{"name":"South Africa","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[33.148046875,-9.603515625],[33.25,-9.759570312500003],[33.35097656250002,-9.862207031250009],[33.33710937500001,-9.954003906250009],[33.3115234375,-10.037988281250009],[33.52890625,-10.234667968750003],[33.53759765625,-10.3515625],[33.5537109375,-10.391308593750011],[33.66152343750002,-10.553125],[33.29277343750002,-10.85234375],[33.37978515625002,-11.157910156250011],[33.26835937500002,-11.40390625],[33.23271484375002,-11.417675781250011],[33.22636718750002,-11.534863281250011],[33.30390625000001,-11.690820312500009],[33.25234375000002,-12.112597656250003],[33.34013671875002,-12.308300781250011],[33.512304687500006,-12.347753906250006],[32.975195312500006,-12.701367187500011],[32.96757812500002,-13.225],[32.67041015625,-13.590429687500006],[32.797460937500006,-13.6884765625],[32.98125,-14.009375],[33.148046875,-13.94091796875],[33.201757812500006,-14.013378906250011],[30.231835937500023,-14.990332031250006],[30.39609375,-15.64306640625],[29.4873046875,-15.69677734375],[28.9130859375,-15.98779296875],[28.760546875000017,-16.53212890625001],[27.932226562500006,-16.89619140625001],[27.020800781250017,-17.95839843750001],[26.779882812500006,-18.04150390625],[26.333398437500023,-17.929296875],[25.995898437500017,-17.969824218750006],[25.2587890625,-17.793554687500006],[25.001757812500017,-17.56855468750001],[24.73291015625,-17.51777343750001],[24.27490234375,-17.481054687500006],[23.380664062500017,-17.640625],[22.193945312500006,-16.628125],[21.979785156250017,-15.95556640625],[21.979394531250023,-14.440527343750006],[21.979296875000017,-14.11962890625],[21.979101562500006,-13.798730468750009],[21.978906250000023,-13.0009765625],[22.209570312500006,-13.0009765625],[23.843164062500023,-13.0009765625],[23.962988281250006,-12.988476562500011],[23.882421875,-12.799023437500011],[23.886523437500017,-12.743261718750006],[23.909375,-12.636132812500009],[23.98388671875,-11.725],[23.96650390625001,-10.871777343750011],[24.36572265625,-11.1298828125],[24.3779296875,-11.417089843750006],[25.28876953125001,-11.21240234375],[25.349414062500017,-11.623046875],[26.025976562500006,-11.89013671875],[26.824023437500017,-11.965234375],[27.1591796875,-11.579199218750006],[27.573828125,-12.22705078125],[28.412890625000017,-12.51806640625],[28.550878906250006,-12.836132812500011],[28.730078125,-12.925488281250011],[29.014257812500006,-13.368847656250011],[29.20185546875001,-13.398339843750009],[29.55419921875,-13.248925781250009],[29.775195312500017,-13.438085937500006],[29.79511718750001,-12.155468750000011],[29.508203125000023,-12.228222656250011],[29.48554687500001,-12.41845703125],[29.064355468750023,-12.348828125000011],[28.482519531250006,-11.812109375],[28.383398437500006,-11.566699218750003],[28.6455078125,-10.550195312500009],[28.60419921875001,-9.678808593750006],[28.400683593750017,-9.224804687500011],[28.869531250000023,-8.785839843750011],[28.89814453125001,-8.485449218750006],[30.75117187500001,-8.193652343750003],[30.830664062500006,-8.385546875],[30.891992187500023,-8.473730468750006],[30.968359375,-8.550976562500011],[31.07636718750001,-8.611914062500006],[31.3505859375,-8.60703125],[31.44921875,-8.65390625],[31.53486328125001,-8.71328125],[31.55625,-8.80546875],[31.673632812500017,-8.908789062500006],[31.91865234375001,-8.9421875],[31.921875,-9.019433593750009],[31.94257812500001,-9.054003906250003],[32.75664062500002,-9.322265625],[32.919921875,-9.407421875000011],[32.99599609375002,-9.622851562500003],[33.148046875,-9.603515625]]]},"properties":{"name":"Zambia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[31.287890625000017,-22.40205078125001],[31.07343750000001,-22.30781250000001],[30.71162109375001,-22.2978515625],[30.46015625000001,-22.32900390625001],[30.1904296875,-22.291113281250006],[29.90234375,-22.184179687500006],[29.6630859375,-22.146289062500003],[29.37744140625,-22.19277343750001],[29.36484375,-22.193945312500006],[29.315234375000017,-22.15771484375],[29.237207031250023,-22.07949218750001],[29.042382812500023,-22.018359375],[29.02558593750001,-21.796875],[28.014062500000023,-21.55419921875],[27.66943359375,-21.064257812500003],[27.679296875,-20.503027343750006],[27.28076171875,-20.47871093750001],[27.17822265625,-20.10097656250001],[26.168066406250006,-19.53828125000001],[25.939355468750023,-18.93867187500001],[25.242285156250006,-17.969042968750003],[25.2587890625,-17.793554687500006],[25.995898437500017,-17.969824218750006],[26.333398437500023,-17.929296875],[26.779882812500006,-18.04150390625],[27.020800781250017,-17.95839843750001],[27.932226562500006,-16.89619140625001],[28.760546875000017,-16.53212890625001],[28.9130859375,-15.98779296875],[29.4873046875,-15.69677734375],[30.39609375,-15.64306640625],[30.437792968750017,-15.995312500000011],[31.236230468750023,-16.02363281250001],[31.939843750000023,-16.428808593750006],[32.94804687500002,-16.71230468750001],[32.87626953125002,-16.88359375],[32.99306640625002,-18.35957031250001],[32.69970703125,-18.94091796875],[32.84980468750001,-19.10439453125001],[32.77763671875002,-19.388769531250006],[32.992773437500006,-19.98486328125],[32.49238281250001,-20.659765625],[32.353613281250006,-21.136523437500003],[32.429785156250006,-21.29707031250001],[31.429492187500017,-22.298828125],[31.287890625000017,-22.40205078125001]]]},"properties":{"name":"Zimbabwe","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[74.00809389139292,33.25375789331485],[73.19660141888893,33.898124784580936],[73.13410859949555,34.82510160558277],[72.31128647748268,35.77290936638241],[73.08203125000107,36.43949943991182],[73.08961802927895,36.86435907947333],[73.116796875,36.868554687499994],[74.03886718750002,36.825732421874996],[74.54140625000002,37.02216796875],[74.69218750000002,37.0357421875],[74.8892578125,36.952441406249996],[74.94912109375002,36.968359375],[75.05390625000001,36.987158203125],[75.14521484375001,36.9732421875],[75.3466796875,36.913476562499994],[75.37685546875002,36.883691406249994],[75.42421875000002,36.738232421875],[75.46025390625002,36.725048828125],[75.57373046875,36.759326171874996],[75.66718750000001,36.741992187499996],[75.77216796875001,36.694921875],[75.84023437500002,36.649707031249996],[75.88496093750001,36.600732421874994],[75.93300781250002,36.52158203125],[75.95185546875001,36.45810546875],[75.97441406250002,36.382421875],[75.91230468750001,36.048974609374994],[76.07089843750003,35.9830078125],[76.14785156250002,35.829003906249994],[76.17783203125003,35.810546875],[76.25166015625001,35.8109375],[76.3857421875,35.837158203125],[76.50205078125003,35.878222656249996],[76.55126953125,35.887060546875],[76.5634765625,35.772998046874996],[76.6318359375,35.729394531249994],[76.7275390625,35.678662109375],[76.76689453124999,35.66171875],[76.81279296874999,35.571826171874996],[76.88222656250002,35.4357421875],[76.927734375,35.346630859375],[77.04863281249999,35.109912109374996],[77.00087890625002,34.991992187499996],[76.78291015625001,34.900195312499996],[76.75751953125001,34.877832031249994],[76.7490234375,34.847558593749994],[76.6962890625,34.786914062499996],[76.59443359375001,34.73583984375],[76.45673828125001,34.756103515625],[76.17246093750003,34.667724609375],[76.041015625,34.669921875],[75.93828125000002,34.612548828125],[75.86210937500002,34.56025390625],[75.70917968750001,34.503076171874994],[74.300390625,34.765380859375],[74.17197265625,34.7208984375],[74.05585937500001,34.6806640625],[73.96123046875002,34.653466796874994],[73.79453125,34.378222656249996],[73.80996093750002,34.325341796874994],[73.92460937500002,34.287841796875],[73.97236328125001,34.236621093749996],[73.9794921875,34.191308593749994],[73.90390625,34.1080078125],[73.94990234375001,34.018798828125],[74.24648437500002,33.990185546875],[73.97646484375002,33.7212890625],[74.15,33.506982421874994],[74.00809389139292,33.25375789331485]]]},"properties":{"name":"","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[78.49194250885338,32.53122786149202],[78.10154031239509,32.87658365066666],[77.71342088235082,32.6917648744551],[77.06655516561037,33.301666835953235],[76.62299010270264,33.32014871357439],[76.32728006076415,32.87658365066666],[75.73585997688717,32.78417426256088],[75.62496871116024,32.28516356678968],[75.32221348233018,32.28516356678968],[74.98730468749997,32.46220703124996],[74.78886718750013,32.4578125],[74.6857421875001,32.493798828124994],[74.66328125000004,32.75766601562495],[74.63242187499995,32.770898437500136],[74.58828125000011,32.7532226562501],[74.35458984375012,32.76870117187505],[74.30546875000007,32.81044921875002],[74.30361328125005,32.991796875000034],[73.98984375000006,33.22119140625006],[74.15,33.506982421874994],[73.97646484375016,33.72128906249998],[74.24648437500011,33.99018554687504],[73.9499023437501,34.018798828125],[73.90390625000012,34.10800781250006],[73.97949218750009,34.191308593749966],[73.97236328125004,34.23662109374996],[73.92460937500007,34.287841796875114],[73.80996093750016,34.32534179687511],[73.79453125000006,34.378222656250045],[73.96123046875007,34.653466796874994],[74.05585937500015,34.68066406250003],[74.17197265624995,34.72089843750004],[74.30039062500006,34.76538085937506],[75.70917968750004,34.50307617187508],[75.86210937500002,34.56025390625001],[75.93828125000019,34.612548828125],[76.04101562500014,34.66992187499997],[76.17246093750006,34.66772460937506],[76.4567382812501,34.756103515625114],[76.5944335937501,34.73583984375006],[76.69628906249997,34.78691406249999],[76.74902343750014,34.84755859375008],[76.7575195312501,34.87783203125005],[76.7829101562501,34.90019531249999],[77.00087890625011,34.99199218750002],[77.03066406250011,35.06235351562498],[77.04863281250007,35.109912109375074],[77.42343749999995,35.30258789062506],[77.57158203125002,35.37875976562495],[77.69697265625015,35.443261718750136],[77.79941406250006,35.49589843750002],[78.0426757812501,35.4797851562501],[78.07578125000006,35.13491210937502],[78.15849609375002,34.94648437499998],[78.32695312500007,34.60639648437498],[78.86484375000006,34.39033203125001],[78.93642578125,34.35195312500002],[78.97060546875011,34.22822265625004],[78.72666015625006,34.013378906249955],[78.78378906250006,33.80878906250004],[78.86503906250002,33.43110351562501],[78.94843750000004,33.346533203125006],[79.1125,33.22626953125001],[79.13515625000005,33.17192382812496],[79.10283203125007,33.05253906249996],[79.14550781250003,33.00146484375006],[79.16992187500003,32.497216796874994],[78.91894531249997,32.3582031250001],[78.75351562500012,32.49926757812506],[78.73671875,32.55839843750002],[78.49194250885338,32.53122786149202]]]]},"properties":{"name":"","childNum":1}}]}');var xe=Object.defineProperty,ke=Object.getOwnPropertySymbols,Ce=Object.prototype.hasOwnProperty,$e=Object.prototype.propertyIsEnumerable,Se=(e,t,n)=>t in e?xe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ee=(e,t)=>{for(var n in t||(t={}))Ce.call(t,n)&&Se(e,n,t[n]);if(ke)for(var n of ke(t))$e.call(t,n)&&Se(e,n,t[n]);return e};function Oe({areaStyleColors:n,dataLoaded:o,hasData:i,highlight:r,type:s,option:a,series:l,onChange:c,zoomStart:u,zoomEnd:h,title:d,seriesConfig:p=[],noDataComponent:g=null,zoomColors:m,style:f}){const[y,v]=(0,e.useState)(null),b=(0,e.useRef)(null),w=()=>{y&&y.resize()},x=(0,e.useMemo)((()=>g?g():t().createElement(be,{theme:"info"},"No data to display")),[g]),k={defaultOpts:(0,pe.fromJS)({title:{show:!0,text:d,left:0},color:[],toolbox:{right:"0",orient:"horizontal",itemSize:15,showTitle:!0,feature:null},dataZoom:[{show:!0,start:0,end:100,orient:"horizontal",dataBackground:{lineStyle:{color:(null==m?void 0:m.lineStyle)||"#368493"},areaStyle:{color:(null==m?void 0:m.areaStyle)||"#368493"}},handleStyle:{color:(null==m?void 0:m.handleStyle)||"#368493"},textStyle:{color:(null==m?void 0:m.textStyle)||"#368493"},borderColor:"transparent",fillerColor:(null==m?void 0:m.fillerColor)||"rgba(54, 132, 147, 0.1)"}],legend:{show:!1},tooltip:{trigger:"axis",axisPointer:{type:"cross"}},grid:{left:"1%",right:"1%",bottom:"50px",top:"40px",containLabel:!0},xAxis:{boundaryGap:!1,type:"category",splitLine:{show:!0,lineStyle:{type:"dotted",color:"#F0F0F0"}},axisLine:{show:!1},axisTick:{show:!1},data:[]},yAxis:{min:"dataMin",boundaryGap:!0,axisPointer:{show:!0},splitLine:{lineStyle:{type:"dotted",color:"#F0F0F0"},show:!0},axisLabel:{show:!0},axisLine:{show:!0},axisTick:{show:!1},type:"value"},textStyle:{color:"#5a5a68"},series:[],animationEasing:"elasticOut"}),seriesDefault:(0,pe.fromJS)({data:[],type:"line",areaStyle:{opacity:1,color:n?new de.graphic.LinearGradient(0,0,1,1,n.map(((e,t)=>({offset:t,color:e})))):[]},smooth:!1,symbolSize:7,name:""})},C={defaultOpts:(0,pe.fromJS)({tooltip:{trigger:"axis",formatter:"{b}: {c} ({d}%)"},legend:{orient:"horizontal",x:"left",y:"top",data:[]},color:[],series:[]}),seriesDefault:(0,pe.fromJS)({type:"pie",center:["50%","55%"],radius:["50%","75%"],avoidLabelOverlap:!1,animationType:"scale",animationEasing:"elasticOut",labelLine:{normal:{show:!0,smooth:.2,length:6,length2:6}},data:[]})},$={defaultOpts:(0,pe.fromJS)({series:[]}),seriesDefault:(0,pe.fromJS)({type:"map",data:[]})};(0,e.useEffect)((()=>(window.addEventListener("resize",w),()=>{window.removeEventListener("resize",w)})),[y]),(0,e.useEffect)((()=>{if(null==b?void 0:b.current)return v(de.init(b.current)),()=>{y&&y.dispose()}}),[b.current]);const S=e=>{c&&c(e)};(0,e.useEffect)((()=>{let e;return y&&(e=ge(S,500),y.on("dataZoom",e),y.on("restore",e),y.on("click",e),y.on("mousemove",(e=>{e.data&&y.getZr().setCursorStyle("pointer")}))),()=>{y&&(y.off("dataZoom",e),y.off("restore",e),y.off("click",e))}}),[y,c]);const E=me(y),O=me(a),T=me(s),A=me(l);(0,e.useEffect)((()=>{var e,t,n,o,i,r;!y||(null==(t=null==(e=(0,pe.fromJS)(E))?void 0:e.equals)?void 0:t.call(e,(0,pe.fromJS)(y)))&&(null==(o=null==(n=(0,pe.fromJS)(O))?void 0:n.equals)?void 0:o.call(n,(0,pe.fromJS)(a)))&&T===s&&(null==(r=(i=(0,pe.fromJS)(A)).equals)?void 0:r.call(i,(0,pe.fromJS)(l)))||(y.clear(),y.setOption(((e,t,n)=>{let o={};switch(e){case"pie":o=C.defaultOpts.mergeDeep((0,pe.fromJS)(t)).toJS(),n.forEach((e=>{o.series.push(C.seriesDefault.mergeDeep((0,pe.fromJS)(e)).toJS())}));break;case"geo":o=$.defaultOpts.mergeDeep((0,pe.fromJS)(t)).toJS(),n.forEach((e=>{o.series.push($.seriesDefault.mergeDeep((0,pe.fromJS)(e)).toJS())}));break;default:o=k.defaultOpts.mergeDeep((0,pe.fromJS)(t)).toJS(),Array.isArray(t.yAxis)&&(o.yAxis=t.yAxis),n.forEach(((e,t)=>{const n=Ee(Ee(Ee({},k.seriesDefault.toJS()),p[t]),e);o.series.push(n)}))}return o})(s,a,l)),y.dispatchAction({type:"takeGlobalCursor",key:"dataZoomSelect",dataZoomSelectActive:!0}))}),[y,a,l,s]),(0,e.useEffect)((()=>{y&&r&&(y.dispatchAction({type:"highlight",seriesIndex:r.seriesIndex,dataIndex:r.dataIndex}),y.dispatchAction({type:"showTip",seriesIndex:r.seriesIndex,dataIndex:r.dataIndex}))}),[r]);const _=me(u),L=me(h);(0,e.useEffect)((()=>{!y||-1===u||-1===h||_===u&&L===h||y.dispatchAction({type:"dataZoom",startValue:u,endValue:h})}),[u,h]);const M=()=>!o||!1!==i&&!0!==i||i;return t().createElement("div",{className:"tyk-chart__wrapper"},o?null:t().createElement(ye,null),t().createElement("div",{className:(()=>{const e=["tyk-chart"];return o||e.push("tyk-chart--loading-chart"),M()||e.push("tyk-chart--no-data"),e.join(" ")})(),style:(()=>{const e=f||{};return e.height||(e.height="300px"),e.width||(e.width="100%"),e})(),"data-type":s,ref:b}),M()?null:x)}de.registerMap("world",we),Oe.propTypes={areaStyleColors:r().instanceOf(Array),dataLoaded:r().bool,hasData:r().bool,highlight:r().oneOfType([r().number,r().string,r().instanceOf(Array)]),noDataComponent:r().func,zoomStart:r().number,zoomEnd:r().number,zoomColors:r().instanceOf(Object),option:r().instanceOf(Object),onChange:r().func,style:r().instanceOf(Object),type:r().string,title:r().string,series:r().instanceOf(Array),seriesConfig:r().instanceOf(Object)};const Te=(0,e.memo)(Oe);var Ae=n(745);const _e=(t,n)=>{const o=(0,e.useRef)();(0,e.useEffect)((()=>{o.current=t}),[t]),(0,e.useEffect)((()=>{if(null!==n){const e=setTimeout((function(){o.current()}),n);return()=>clearTimeout(e)}return()=>{}}),[n])};var Le=Object.defineProperty,Me=Object.getOwnPropertySymbols,Re=Object.prototype.hasOwnProperty,Ne=Object.prototype.propertyIsEnumerable,Ie=(e,t,n)=>t in e?Le(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Pe(e){const{children:n,options:o,onClose:i,index:r}=e,s=((e,t)=>{for(var n in t||(t={}))Re.call(t,n)&&Ie(e,n,t[n]);if(Me)for(var n of Me(t))Ne.call(t,n)&&Ie(e,n,t[n]);return e})({theme:"success",delay:3e3},o),a=e=>{i(e),clearTimeout(void 0)};return _e((()=>a(r)),s.delay),t().createElement(be,{className:"tyk-toast__message",theme:s.theme,onClose:()=>a(r)},n)}Pe.propTypes={children:r().oneOfType([r().element,r().node,r().string]),options:r().instanceOf(Object),onClose:r().func,index:r().number};const De=Pe;var Fe=Object.defineProperty,Be=Object.defineProperties,We=Object.getOwnPropertyDescriptors,He=Object.getOwnPropertySymbols,je=Object.prototype.hasOwnProperty,ze=Object.prototype.propertyIsEnumerable,Ve=(e,t,n)=>t in e?Fe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ue=(e,t)=>{for(var n in t||(t={}))je.call(t,n)&&Ve(e,n,t[n]);if(He)for(var n of He(t))ze.call(t,n)&&Ve(e,n,t[n]);return e};function Ge(n){const[o,i]=(0,e.useState)({}),{notify:r}=n,s=(e,t)=>{const n=Math.floor(1e6*Math.random());i((o=>{return i=Ue({},o),Be(i,We({[n]:{message:e,options:t}}));var i}))};(0,e.useEffect)((()=>{r(s)}),[o]);const a=e=>{delete Ue({},o)[e],i((t=>{const n=Ue({},t);return delete n[e],n}))};return t().createElement("div",{className:"tyk-toast__container"},Object.keys(o).map((e=>o[e]?t().createElement(De,{options:o[e].options,onClose:a.bind(null,e),index:e,key:e},o[e].message):null)))}Ge.propTypes={notify:r().func};const Ke=Ge;var qe=Object.defineProperty,Ye=Object.defineProperties,Je=Object.getOwnPropertyDescriptors,Xe=Object.getOwnPropertySymbols,Qe=Object.prototype.hasOwnProperty,Ze=Object.prototype.propertyIsEnumerable,et=(e,t,n)=>t in e?qe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,tt=(e,t)=>{for(var n in t||(t={}))Qe.call(t,n)&&et(e,n,t[n]);if(Xe)for(var n of Xe(t))Ze.call(t,n)&&et(e,n,t[n]);return e},nt=(e,t)=>Ye(e,Je(t));const ot=new class{constructor(){var e;et(this,"symbol"!=typeof(e="bindNotify")?e+"":e,(e=>{this.createNotification=e}));const n=document.createElement("div");n.className="tyk-toast",document.body.appendChild(n),(0,Ae.s)(n).render(t().createElement(Ke,{notify:this.bindNotify}))}notify(e,t){this.createNotification&&this.createNotification(e,t)}danger(e,t){this.notify(e,nt(tt({},t),{theme:"danger"}))}success(e,t){this.notify(e,nt(tt({},t),{theme:"success"}))}warning(e,t){this.notify(e,nt(tt({},t),{theme:"warning"}))}info(e,t){this.notify(e,nt(tt({},t),{theme:"info"}))}};var it=Object.defineProperty,rt=Object.getOwnPropertySymbols,st=Object.prototype.hasOwnProperty,at=Object.prototype.propertyIsEnumerable,lt=(e,t,n)=>t in e?it(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function ct(n){const{display:o,copy:i,children:r,onCopy:s,message:a="copied"}=n,l=(0,e.createRef)(),c=(0,e.useCallback)((()=>{if(s&&s(),!window.navigator.clipboard)return l.current.select(),document.execCommand("copy"),void ot.success(a);window.navigator.clipboard.writeText(i),ot.success(a)}),[s,l]);return t().createElement(t().Fragment,null,t().createElement(n.element,((e,t)=>{for(var n in t||(t={}))st.call(t,n)&<(e,n,t[n]);if(rt)for(var n of rt(t))at.call(t,n)&<(e,n,t[n]);return e})({onClick:c,onKeyUp:c},n),r||o),window.navigator.clipboard?null:t().createElement("textarea",{ref:l,className:"tyk-copy-to-clipboard",name:"copy",value:i},i))}ct.propTypes={message:r().string,onCopy:r().func,copy:r().string.isRequired,display:r().string,children:r().oneOfType([r().element,r().string,r().object,r().node])};const ut=ct;var ht=n(137),dt=n.n(ht);function pt({children:e}){return t().createElement("div",{className:"tyk-modal__footer"},e)}pt.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const gt=pt;function mt({children:e}){return t().createElement("div",{className:"tyk-modal__body"},e)}mt.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const ft=mt;var yt=Object.defineProperty,vt=Object.getOwnPropertySymbols,bt=Object.prototype.hasOwnProperty,wt=Object.prototype.propertyIsEnumerable,xt=(e,t,n)=>t in e?yt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function kt(e){var n=e,{children:o,theme:i="none",disableCloseCommands:r=!1,opened:s=!1,onClose:a=(()=>{}),size:l="md",className:c="",showBackdrop:u=!0}=n,h=((e,t)=>{var n={};for(var o in e)bt.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&vt)for(var o of vt(e))t.indexOf(o)<0&&wt.call(e,o)&&(n[o]=e[o]);return n})(n,["children","theme","disableCloseCommands","opened","onClose","size","className","showBackdrop"]);const d=["tyk-modal",`tyk-modal--theme-${i}`,s&&"opened"].concat(c.split(" ")).filter(Boolean).join(" "),p=["tyk-modal__backdrop",s&&"opened"].filter(Boolean).join(" "),m={success:"check",warning:"warning",danger:"delete"}[i];return t().createElement(t().Fragment,null,dt().createPortal(t().createElement(x.CSSTransition,{in:s,timeout:100,classNames:"appear"},t().createElement("div",((e,t)=>{for(var n in t||(t={}))bt.call(t,n)&&xt(e,n,t[n]);if(vt)for(var n of vt(t))wt.call(t,n)&&xt(e,n,t[n]);return e})({className:d},h),t().createElement("div",{className:`tyk-modal__dialog tyk-modal--${l}`},t().createElement("div",{className:"tyk-modal__content"},"none"!==i&&t().createElement("div",{className:"tyk-modal__theme-header"},t().createElement(g,{family:"tykon",type:m})),o)))),document.querySelector("body")),u&&dt().createPortal(t().createElement(x.CSSTransition,{in:s,timeout:100,classNames:"fade"},t().createElement("button",{className:p,onClick:()=>!r&&a(),onKeyDown:()=>{},type:"button","aria-label":"Close"})),document.querySelector("body")))}kt.Body=ft,kt.Footer=gt,kt.Header=({children:e})=>(console.warn("%cModal.Header%c is deprecated.","font-weight: bold",""),t().createElement("div",{className:"tyk-modal__header"},e)),kt.Header.propTypes={children:r().element},kt.Title=({children:e})=>(console.warn("%cModal.Title%c is deprecated.","font-weight: bold",""),t().createElement("h4",{className:"tyk-modal__title"},e)),kt.Title.propTypes={children:r().element},kt.propTypes={children:r().oneOfType([r().element,r().node,r().string]),className:r().string,theme:r().string,disableCloseCommands:r().bool,opened:r().bool,onClose:r().func,size:r().string,showBackdrop:r().bool};const Ct=kt;function $t(n){const{children:o,title:i,description:r,confirmBtnText:s="Confirm",cancelBtnText:a="Cancel"}=n,[l,c]=(0,e.useState)(!1),[u,h]=(0,e.useState)(null),[d,p]=(0,e.useState)(null),g=()=>{c(!1),h(null),p(null)},m=()=>{d&&d(),g()};return t().createElement(t().Fragment,null,o(((e,t,n)=>(...o)=>{n&&n(...o),c(!0),h((()=>()=>e(...o))),t&&p((()=>()=>t(...o)))})),t().createElement(Ct,{opened:l,onClose:m},t().createElement(Ct.Body,null,t().createElement("h4",null,i),r),t().createElement(Ct.Footer,null,t().createElement(U,{onClick:m,theme:"default"},a),t().createElement(U,{onClick:()=>{u(),g()},theme:"success"},s))))}$t.propTypes={confirmBtnText:r().string,cancelBtnText:r().string,title:r().string,description:r().string,children:r().oneOfType([r().element,r().string,r().object,r().node,r().func])};const St=$t;function Et({children:n,className:o,showShadow:i}){const r=(0,e.useRef)(null),s=(0,e.useCallback)((()=>{const e=r.current;e&&(window.scrollY?e.classList.add("tyk-fixed-wrapper--scrolled"):e.classList.remove("tyk-fixed-wrapper--scrolled"))}),[r.current]),a=(0,e.useCallback)(ge(s,100),[s]);return(0,e.useEffect)((()=>(i&&window.addEventListener("scroll",a),()=>{window.removeEventListener("scroll",a)})),[a,i]),t().createElement("div",{className:`tyk-fixed-wrapper ${o}`,ref:r},n)}Et.propTypes={children:r().oneOfType([r().element,r().node,r().string]),className:r().string,showShadow:r().bool},Et.defaultProps={className:""};const Ot=Et;function Tt({children:n,hasMore:o,initialLoad:i,loadMore:r,pageNumber:s,refChild:a}){const[l,c]=(0,e.useState)(!1),u=(0,e.useRef)(null),h=C(a);(0,e.useEffect)((()=>{i&&"function"==typeof r&&(c(!1),r(s))}),[i]);const d=(0,e.useCallback)((()=>{if(!u.current)return!1;const{clientHeight:e,scrollTop:t}=u.current;return o&&(e+Math.round(t)===h.height||e>=h.height)}),[u,h.height]),p=(0,e.useCallback)((()=>{o&&"function"==typeof r?(r(s+1),c(!0)):c(!1)}),[o,s]),g=me(s),m=(0,e.useCallback)(ge((()=>{d()&&g<=s&&p()}),200),[p,d]);(0,e.useEffect)((()=>{var e;return null==(e=u.current)||e.addEventListener("scroll",m),()=>{var e;return null==(e=u.current)?void 0:e.removeEventListener("scroll",m)}}),[u,m]),(0,e.useEffect)((()=>{g>0&&0===s&&(u.current.scrollTop=0)}),[u,s]);const f=me(h);return(0,e.useEffect)((()=>{h&&f&&h.height!==f.height&&!0===l&&c(!1)}),[l,h.height]),(0,e.useEffect)((()=>{a&&h.heightt in e?_t(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function It({element:n,size:o="auto",forceDisplay:i="auto",displayAxis:r="auto",preferredPosition:s,offset:a=0,className:l,children:c,infiniteScrollerConfig:u},h){const d=(0,e.useRef)(null),p=h||d,g=(0,e.useRef)(null),m=(0,e.useRef)(null);return(0,e.useEffect)((()=>{window.requestAnimationFrame((function e(){(function(){var e;const t="auto"!==i?i:function(){const e=n.current,t=p.current;if(!t)return(null!=s?s:"vertical"===r)?"bottom":"right";const{left:o,top:i}=e.getBoundingClientRect(),a=i,l=window.innerHeight-i-e.offsetHeight,c=o,u=window.innerWidth-o-e.offsetWidth,h=a>t.scrollHeight,d=l>t.scrollHeight,g=c>t.offsetWidth,m=u>t.offsetWidth,f=o+e.offsetWidth/2-t.offsetWidth/2>0,y=i+e.offsetHeight/2-t.scrollHeight/2>0;return"vertical"===r||"auto"===r&&(h||d)&&f?function({preferredPosition:e,hasTopSpace:t,hasBottomSpace:n,topSpace:o,bottomSpace:i}){return"top"===e&&t?"top":"bottom"===e&&n||n||i>o?"bottom":"top"}({preferredPosition:s,hasTopSpace:h,hasBottomSpace:d,topSpace:a,bottomSpace:l}):"horizontal"===r?function({preferredPosition:e,hasLeftSpace:t,hasRightSpace:n,leftSpace:o,rightSpace:i}){return"left"===e&&t?"left":"right"===e&&n||n||i>o?"right":"left"}({preferredPosition:s,hasLeftSpace:g,hasRightSpace:m,leftSpace:c,rightSpace:u}):function({preferredPosition:e,hasTopSpace:t,hasBottomSpace:n,hasLeftSpace:o,hasRightSpace:i,positionedHorizontallyFitsInViewport:r,positionedVerticallyFitsInViewport:s}){return t&&s?"top":n&&s?"bottom":i&&r?"right":o&&r?"left":null!=e?e:"bottom"}({preferredPosition:s,hasTopSpace:h,hasBottomSpace:d,hasLeftSpace:g,hasRightSpace:m,positionedHorizontallyFitsInViewport:y,positionedVerticallyFitsInViewport:f})}(),l=n.current,c=p.current;if(!l||!c)return;const u=l.getBoundingClientRect(),{left:h,top:d}=null!=(e=m.current)?e:{left:0,top:0};if("top"===t&&Object.assign(c.style,function({container:e,targetPosition:t,target:n,size:o,offset:i,vpLeft:r,vpTop:s}){const a={},l={auto:t.left+n.offsetWidth/2-e.offsetWidth/2,matchElement:t.left,matchStart:t.left,matchEnd:t.right-e.offsetWidth}[o],c=t.top-e.offsetHeight-i;return a.left=`${l+r}px`,a.top=`${c+s}px`,"matchElement"===o?a.width=`${n.offsetWidth}px`:"matchEnd"===o?a.maxWidth=t.right-5+"px":"function"==typeof o&&(a.width=`${o(n.offsetWidth)}px`),a.maxHeight=t.top-i+"px",a}({container:c,targetPosition:u,target:l,size:o,offset:a,vpLeft:h,vpTop:d})),"bottom"===t&&Object.assign(c.style,function({targetPosition:e,target:t,container:n,size:o,offset:i,vpLeft:r,vpTop:s}){const a={},l={auto:e.left+t.offsetWidth/2-n.offsetWidth/2,matchElement:e.left,matchStart:e.left,matchEnd:e.right-n.offsetWidth}[o],c=e.bottom+i;return a.left=`${l+r}px`,a.top=`${c+s}px`,"matchElement"===o?a.width=`${t.offsetWidth}px`:"matchEnd"===o?a.maxWidth=e.right-5+"px":"function"==typeof o&&(a.width=`${o(t.offsetWidth)}px`),a.maxHeight=window.innerHeight-e.bottom-i+"px",a}({container:c,targetPosition:u,target:l,size:o,offset:a,vpLeft:h,vpTop:d})),"left"===t&&Object.assign(c.style,function({targetPosition:e,target:t,container:n,size:o,offset:i}){const r={},s=e.left-n.offsetWidth-i,a={auto:e.top+t.offsetHeight/2-n.offsetHeight/2,matchElement:e.top,matchStart:e.top,matchEnd:e.bottom-n.offsetHeight}[o];return r.left=`${s}px`,r.top=`${a}px`,"matchElement"===o?r.height=`${t.offsetHeight}px`:"function"==typeof o&&(r.height=`${o(t.offsetHeight)}px`),r.maxWidth=e.left-i+"px",r}({targetPosition:u,target:l,container:c,size:o,offset:a})),"right"===t&&Object.assign(c.style,function({targetPosition:e,target:t,container:n,size:o,offset:i,vpLeft:r,vpTop:s}){const a={},l=e.left+t.offsetWidth+i,c={auto:e.top+t.offsetHeight/2-n.offsetHeight/2,matchElement:e.top,matchStart:e.top,matchEnd:e.bottom-n.offsetHeight}[o];return a.left="auto"===o?`${l+r}px`:`${l}px`,a.top="auto"===o?`${c+s}px`:`${c}px`,"matchElement"===o?a.height=`${t.offsetHeight}px`:"function"==typeof o&&(a.height=`${o(t.offsetHeight)}px`),a.maxWidth=window.innerWidth-e.left-t.offsetWidth-i+"px",a}({targetPosition:u,target:l,container:c,size:o,offset:a,vpLeft:h,vpTop:d})),null===m.current)if("matchEnd"===o)m.current={left:0,top:0};else{const e=Number(c.style.left.replace("px","")),t=Number(c.style.top.replace("px",""));m.current={left:e<0?5-e:0,top:t<0?5-t:0}}})(),window.requestAnimationFrame(e)}))}),[]),(0,ht.createPortal)(t().createElement("div",{className:`floating-container ${l||""}`,ref:p},t().createElement(At,((e,t)=>{for(var n in t||(t={}))Mt.call(t,n)&&Nt(e,n,t[n]);if(Lt)for(var n of Lt(t))Rt.call(t,n)&&Nt(e,n,t[n]);return e})({refChild:g},u),t().createElement("div",{className:"floating-container__content-wrapper",ref:g},c))),document.querySelector("body"))}It.propTypes={element:r().instanceOf(Object),className:r().string,size:r().oneOfType([r().oneOf(["auto","matchElement","matchStart","matchEnd"]),r().func]),offset:r().number,forceDisplay:r().oneOf(["auto","top","bottom","left","right"]),displayAxis:r().oneOf(["auto","vertical","horizontal"]),preferredPosition:r().oneOf(["top","bottom","left","right"]),infiniteScrollerConfig:r().instanceOf(Object)};const Pt=(0,e.forwardRef)(It);function Dt({children:e}){return t().createElement("div",{className:"tyk-info-note"},t().createElement(be,{theme:"info"},e))}Dt.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const Ft=Dt;function Bt(e){const{className:n,children:o,selected:i}=e;return t().createElement("li",{className:`${n} ${i?"tyk-list__item--selected":""}`},o)}Bt.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,selected:r().bool},Bt.defaultProps={className:""};const Wt=Bt;function Ht(e){const{className:n,children:o,label:i,labelwidth:r,theme:s,style:a}=e;return t().createElement("div",{className:"tyk-list__wrapper "+(r?"tyk-list--with-inline-label":"")},void 0!==i?t().createElement("label",{style:{flexBasis:r||"auto"}},i):null,t().createElement("ul",{className:(()=>{let e=["tyk-list"];return s&&e.push(`tyk-list--${s}`),n&&(e=e.concat(n.split(" "))),e.join(" ")})(),style:(()=>{const e=structuredClone(a);return r&&(e.flexBasis=`calc(100% - ${r} - 20px)`),e})()},o))}Ht.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,label:r().string,labelwidth:r().string,theme:r().string,style:r().instanceOf(Object)},Ht.defaultProps={theme:"default",style:{}},Ht.Item=Wt;const jt=Ht;function zt({align:e="center",children:n,left:o,right:i,title:r,pre:s,subtitle:a,withTabs:l}){const c=a?t().createElement("p",{className:"font-family-medium"},a):null;return t().createElement("section",{className:"tyk-nav-bar "+(l?"tyk-nav-bar__with-tabs":"")},t().createElement("div",{className:`tyk-nav-bar__wrapper tyk-nav-bar--align-${e}`},s&&t().createElement("div",{className:"tyk-nav-bar__pre"},s),r?t().createElement("div",null,t().createElement("h1",null,r),c):c,t().createElement("div",{className:"tyk-nav-bar__container"},o&&t().createElement("div",{className:"tyk-nav-bar__left"},o),i&&t().createElement("div",{className:"tyk-nav-bar__right"},i))),n)}zt.propTypes={align:r().string,children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),title:r().string,subtitle:r().string,pre:r().oneOfType([r().element,r().node]),left:r().oneOfType([r().element,r().node]),right:r().oneOfType([r().element,r().node]),withTabs:r().bool};const Vt=zt;function Ut({children:e}){return t().createElement("li",{className:"tyk-navigation-item"},e)}Ut.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string])};const Gt=Ut;function Kt({children:e}){return t().createElement("ul",{className:"tyk-navigation"},e)}Kt.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string])},Kt.Item=Gt;const qt=Kt,Yt=(0,e.createContext)();var Jt=Object.defineProperty,Xt=Object.defineProperties,Qt=Object.getOwnPropertyDescriptors,Zt=Object.getOwnPropertySymbols,en=Object.prototype.hasOwnProperty,tn=Object.prototype.propertyIsEnumerable,nn=(e,t,n)=>t in e?Jt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,on=(e,t)=>{for(var n in t||(t={}))en.call(t,n)&&nn(e,n,t[n]);if(Zt)for(var n of Zt(t))tn.call(t,n)&&nn(e,n,t[n]);return e},rn=(e,t)=>Xt(e,Qt(t));function sn(n){var o=n,{children:i,noPadding:r,className:s}=o,a=((e,t)=>{var n={};for(var o in e)en.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Zt)for(var o of Zt(e))t.indexOf(o)<0&&tn.call(e,o)&&(n[o]=e[o]);return n})(o,["children","noPadding","className"]);const l=(0,e.useCallback)((()=>["tyk-panel__body",s,r&&"no-padding"].filter(Boolean).join(" ")),[s,r]);return t().createElement(Yt.Consumer,null,(e=>e.collapsable?t().createElement(R,rn(on({},a),{collapsed:e.collapsed,className:l()}),i):t().createElement("div",rn(on({},a),{className:l()}),i)))}sn.propTypes={children:r().oneOfType([r().element,r().node,r().string]),noPadding:r().bool,className:r().string};const an=sn;function ln(e){const{children:n}=e;return t().createElement("div",{className:"tyk-panel__footer"},n)}ln.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const cn=ln;class un extends e.Component{getCssClasses(e){const{className:t}=this.props;let n=["tyk-panel__header"];return e.collapsable&&n.push("collapsable"),t&&(n=n.concat(t.split(" "))),n.join(" ")}render(){const{children:e}=this.props;return t().createElement(Yt.Consumer,null,(n=>{const o="blank"===n.theme?"h3":"div",i=n.collapsed?"chevron-down":"chevron-up";return t().createElement(o,{className:this.getCssClasses(n),onClick:n.collapsable?n.onToggle:void 0},e,n.collapsable?t().createElement("div",{className:`collapsable__arrow-${n.collapsibleIconPosition}`},t().createElement(g,{type:i})):null)}))}}un.propTypes={children:r().oneOfType([r().element,r().node,r().string]).isRequired,className:r().string};const hn=un;function dn(n){const{children:o,className:i,collapsed:r,collapsable:s,theme:a,onToggleCollapse:l,collapsibleIconPosition:c="right"}=n,[u,h]=(0,e.useState)(r||!1);(0,e.useEffect)((()=>{r!==u&&h(r)}),[r]);const d=(0,e.useCallback)((()=>{h(!u),l&&l(!u)}),[u,l]),p=(0,e.useMemo)((()=>({collapsable:s,collapsed:u,onToggle:d,theme:a,collapsibleIconPosition:c})),[s,u,c,a,d]);return t().createElement("div",{className:(()=>{let e=["tyk-panel"];const t=`tyk-panel--${a||"default"}`,n=`tyk-panel__icon-collapse--${c}`;return e.push(t),e.push(n),i&&(e=e.concat(i.split(" "))),u&&e.push("tyk-panel--collapsed"),e.join(" ")})()},t().createElement(Yt.Provider,{value:p},"function"==typeof o?o({toggleCollapse:d}):o))}dn.propTypes={children:r().oneOfType([r().func,r().element,r().node,r().string]),className:r().string,collapsable:r().bool,collapsibleIconPosition:r().string,collapsed:r().bool,theme:r().string,onToggleCollapse:r().func},dn.Body=an,dn.Footer=cn,dn.Header=hn;const pn=dn;function gn(e){const{children:n,className:o,theme:i}=e;return t().createElement("div",{className:(()=>{let e=["tyk-pill",...i.split(" ").map((e=>`tyk-pill--${e}`))];return o&&(e=e.concat(o)),e.join(" ")})()},n)}gn.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,theme:r().string},gn.defaultProps={theme:"default"};const mn=gn;var fn,yn,vn,bn,wn,xn,kn,Cn,$n=(e,t,n)=>{if(!t.has(e))throw TypeError("Cannot "+n)},Sn=(e,t,n)=>($n(e,t,"read from private field"),n?n.call(e):t.get(e)),En=(e,t,n)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,n)},On=(e,t,n,o)=>($n(e,t,"write to private field"),o?o.call(e,n):t.set(e,n),n);class Tn{constructor(){En(this,fn,null),En(this,yn,null),En(this,vn,null),En(this,bn,null),En(this,wn,[]),En(this,xn,[]),En(this,kn,[]),En(this,Cn,!1)}on(e,t){let n=null;"onHeightChange"===e?n=Sn(this,wn):"onDragStart"===e?n=Sn(this,xn):"onDragEnd"===e&&(n=Sn(this,kn)),n&&this.addListener(n,t)}off(e,t){let n=null;"onHeightChange"===e?n=Sn(this,wn):"onDragStart"===e?n=Sn(this,xn):"onDragEnd"===e&&(n=Sn(this,kn)),n&&this.removeListener(n,t)}setRefs(e,t,n){(Sn(this,yn)||Sn(this,vn)||Sn(this,bn))&&this.unbindEvents(),On(this,bn,e),On(this,yn,t),On(this,vn,n),On(this,fn,null),this.bindEvents()}bindEvents(){this.ensureRefs("bindEvents"),Sn(this,vn).addEventListener("mousedown",this.onMouseDown.bind(this)),document.addEventListener("mousemove",this.onMouseMove.bind(this)),document.addEventListener("mouseup",this.onMouseUp.bind(this))}getHeight(){return this.ensureRefs("getHeight"),Sn(this,yn).getBoundingClientRect().height}onMouseDown(e){this.ensureRefs("onMouseDown"),On(this,fn,{mouseDown:!0,initialRect:Sn(this,yn).getBoundingClientRect(),initialEvent:e})}onMouseMove(e){if(this.ensureRefs("onMouseMove"),!Sn(this,fn))return;if(!this.isPrimaryMouseButtonDown(e))return void this.onMouseUp();Sn(this,Cn)||(On(this,Cn,!0),this.onDragStart.bind(this)());const t=Sn(this,fn).initialEvent.y-e.y,n=Math.ceil(Sn(this,fn).initialRect.height+t);this.setHeight(`${n}px`,"mousemove")}notifyListeners(e,t){e&&Array.isArray(e)&&e.length&&e.forEach((e=>{"function"==typeof e&&e(t)}))}addListener(e,t){e&&Array.isArray(e)&&"function"==typeof t&&e.push(t)}removeListener(e,t){if(e&&Array.isArray(e)&&"function"==typeof t&&e.length){const n=e.indexOf(t);n>-1&&e.splice(n,1)}}onDragEnd(){Sn(this,Cn)&&this.notifyListeners(Sn(this,kn),this.getHeight())}onDragStart(){this.notifyListeners(Sn(this,xn),this.getHeight())}isPrimaryMouseButtonDown(e){return 1===(void 0!==e.buttons?e.buttons:e.which)}onMouseUp(){On(this,fn,null),this.onDragEnd.bind(this)(),On(this,Cn,!1)}setHeight(e){let t=e;this.ensureRefs("setHeight"),"number"==typeof t&&(t+="px"),Sn(this,yn).style.height=t,this.notifyListeners(Sn(this,wn),this.getHeight())}ensureRefs(e){if(!Sn(this,yn)||!Sn(this,vn)||!Sn(this,bn))throw new Error(`${e}: Wrapper, panel, and gutter elements are required. Use setRefs method first.`)}isHidden(){return this.ensureRefs("isHidden"),"hidden"===Sn(this,bn).style.visibility}hide(){this.ensureRefs("hide"),Sn(this,bn).style.visibility="hidden"}show(){this.ensureRefs("show"),Sn(this,bn).style.visibility="visible"}unbindEvents(){On(this,wn,[]),On(this,xn,[]),On(this,kn,[]),Sn(this,vn).removeEventListener("mousedown",this.onMouseDown.bind(this)),document.removeEventListener("mousemove",this.onMouseMove.bind(this)),document.removeEventListener("mouseup",this.onMouseUp.bind(this))}deinit(){this.unbindEvents()}}function An({children:e}){return t().createElement(t().Fragment,null,e)}function _n({children:e}){return t().createElement(t().Fragment,null,e)}fn=new WeakMap,yn=new WeakMap,vn=new WeakMap,bn=new WeakMap,wn=new WeakMap,xn=new WeakMap,kn=new WeakMap,Cn=new WeakMap,An.propTypes={children:r().instanceOf({})},_n.propTypes={children:r().instanceOf({})};const Ln=(...e)=>e.map((e=>(e||"").trim())).filter(Boolean).join(" ");function Mn({children:n,height:o,onHeightChange:i=null,onDragStart:r=null,onDragEnd:s=null,style:a=null,parentSelector:l=null,contentStyle:c,contentClassName:u,gutterClassName:h,wrapperClassName:d},p){const g=(0,e.useRef)(null),m=(0,e.useRef)(null),f=(0,e.useRef)(null),y=(0,e.useRef)(new Tn).current;(0,e.useEffect)((()=>{if(g.current&&m.current&&f.current&&y)return y.setRefs(f.current,g.current,m.current),y.on("onHeightChange",i),y.on("onDragStart",r),y.on("onDragEnd",s),y.setHeight(o,"initialize"),()=>{y.unbindEvents()}}),[]),(0,e.useImperativeHandle)(p,(()=>{const e=e=>e.bind(y);return{getHeight:e(y.getHeight),setHeight:e(y.setHeight),hide:e(y.hide),show:e(y.show),isHidden:e(y.isHidden),deinit:e(y.deinit),on:e(y.on),off:e(y.off)}}),[]);let v=null,b=null;const w=[];t().Children.forEach(n,(e=>{e&&t().isValidElement(e)&&(e.type===An?v=e:e.type===_n?b=e:w.push(e))}));const x=t().createElement("div",{className:Ln("tyk-ui-reveal-wrapper",d||"cem"),ref:f,style:a},t().createElement("div",{className:"tyk-ui-reveal-wrapper__hole"}),t().createElement("div",{ref:m,className:Ln("tyk-ui-reveal-wrapper__gutter",h)},t().createElement("div",{className:"tyk-ui-reveal-wrapper__gutter__headerleft"},v),t().createElement("div",{className:"tyk-ui-reveal-wrapper__gutter__logo"}," "),t().createElement("div",{className:"tyk-ui-reveal-wrapper__gutter__headerright"},b)),t().createElement("div",{ref:g,className:Ln("tyk-ui-reveal-wrapper__panel",u),style:c},w));if(l)return(0,ht.createPortal)(x,document.querySelector(l))}Mn.propTypes={children:r().instanceOf({}),height:r().string,onHeightChange:r().func,onDragStart:r().func,onDragEnd:r().func,parentSelector:r().string,style:r().instanceOf({}),contentStyle:r().instanceOf({}),contentClassName:r().string,gutterClassName:r().string,wrapperClassName:r().string};const Rn=(0,e.forwardRef)(Mn);Rn.HeaderLeft=An,Rn.HeaderRight=_n;const Nn=Rn,In=(0,e.createContext)(),Pn=(0,e.createContext)();var Dn=Object.defineProperty,Fn=Object.getOwnPropertySymbols,Bn=Object.prototype.hasOwnProperty,Wn=Object.prototype.propertyIsEnumerable,Hn=(e,t,n)=>t in e?Dn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,jn=(e,t)=>{for(var n in t||(t={}))Bn.call(t,n)&&Hn(e,n,t[n]);if(Fn)for(var n of Fn(t))Wn.call(t,n)&&Hn(e,n,t[n]);return e};function zn(n){const{addTab:o,hideTab:i,updateTab:r,showTab:s,children:a,selectedPath:l,tabData:c,tabsId:u,tabExists:h,path:d,rendered:p,hideTabContent:g,tabs:m}=n;(0,e.useEffect)((()=>{const e=jn({},c);h(d)||o(e,d)}),[c,d]);const f=me(c);(0,e.useEffect)((()=>{if(h(d)&&(null==c?void 0:c.title)&&((null==f?void 0:f.title)!==(null==c?void 0:c.title)||(null==f?void 0:f.selected)!==c.selected)){const e=jn({},c);r(e,d)}}),[c,d,f,m]),(0,e.useEffect)((()=>(s(d),()=>i(d))),[]);const y=(0,e.useMemo)((()=>!!Object.keys(m).length&&!g&&!1!==m[c.id].show&&(p?l&&l.indexOf(c.id)>-1:h(d))),[g,p,l,c,m]),v=(0,e.useMemo)((()=>({path:d,tabsId:u})),[d,u]);return y?t().createElement("div",{key:c.id,className:"tyk-tab__content",style:{display:l&&l.indexOf(c.id)>-1?"block":"none"}},t().createElement(Pn.Provider,{value:v},a)):null}zn.propTypes={addTab:r().func,updateTab:r().func,hideTab:r().func,showTab:r().func,children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),path:r().instanceOf(Array),hideTabContent:r().bool,rendered:r().bool,selectedPath:r().instanceOf(Array),tabExists:r().func,tabsId:r().string,tabData:r().instanceOf(Object),tabs:r().instanceOf(Object)};const Vn=zn;function Un(n){const{id:o}=n,i=(0,e.useContext)(In),r=(0,e.useContext)(Pn),{tabExists:s,selectedPath:a,addTab:l,updateTab:c,hideTab:u,showTab:h,rendered:d,hideTabContent:p,tabs:g}=i,{children:m}=n,[f,y]=(0,e.useState)("");return(0,e.useEffect)((()=>{let e;e=r&&f&&r.tabsId===i.id?r.path.concat([o]):[o],y(e)}),[r]),f?t().createElement(Vn,{addTab:l,updateTab:c,hideTab:u,showTab:h,tabExists:s,tabData:n,path:f,tabsId:i.id,selectedPath:a,rendered:d,hideTabContent:p,tabs:g},m):null}Un.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),id:r().string},Un.defaultProps={};const Gn=Un;var Kn=Object.defineProperty,qn=Object.getOwnPropertySymbols,Yn=Object.prototype.hasOwnProperty,Jn=Object.prototype.propertyIsEnumerable,Xn=(e,t,n)=>t in e?Kn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Qn=(e,t)=>{for(var n in t||(t={}))Yn.call(t,n)&&Xn(e,n,t[n]);if(qn)for(var n of qn(t))Jn.call(t,n)&&Xn(e,n,t[n]);return e};function Zn(n){const{children:o,className:i,id:r,onTabChange:s,type:a,hideTabContent:l}=n,[c,u]=(0,e.useState)({}),[h,d]=(0,e.useState)([]),[p,m]=(0,e.useState)(!1),[f,y]=(0,e.useState)(null);(0,e.useEffect)((()=>{d(f)}),[f]);const v=(e,t)=>{const n=e.slice(0);let o=!0;t.collapsible&&(n.push(Object.keys(t.tabs)[0]),o=!1),u((t=>{let n=Qn({},t);return n=((e,t)=>{let n=Qn({},e);const o=t.slice(0);for(;o.length>1;)n=n[o.shift()];const i=o.shift();return void 0===n[i].collapsed?n[i].collapsed=!0:n[i].collapsed=!n[i].collapsed,n})(n,e),n})),d(n),m(o),s&&s(t)},b=e=>{const t=[];return h&&h.indexOf(e)>-1&&t.push("active"),t.join(" ")},w=(e,n)=>e?t().createElement("ul",null,Object.keys(e).map(((o,i)=>{const r=n?n.concat([e[o].id]):[e[o].id],s=e[o].collapsed?"chevron-up":"chevron-down";return!1===e[o].show?null:t().createElement("li",{className:b(e[o].id),key:e[o].id},t().createElement("button",{type:"button",onClick:v.bind(null,r,e[o]),onKeyDown:v.bind(null,r,e[o]),tabIndex:i},e[o].title,e[o].collapsible?t().createElement(g,{className:"collapsable-arrow",type:s}):null),e[o].collapsible?t().createElement(R,{collapsed:e[o].collapsed},w(e[o].tabs,r)):w(e[o].tabs,r))}))):null,x=(e,t)=>{u((n=>((e,t,n)=>{let o=Qn({},e);const i=Qn({},n),r=t.slice(0);for(;r.length>1;)o=o[r.shift()],o||(o={});return i.tempPath=r,o[r.shift()]=i,o})(Qn({},n),t,e))),e.selected&&y(t)},k=(e,t)=>{u((t=>{const n=Qn({},t);return n[e.id]=e,n})),e.selected&&v(t,e)},C=e=>{u((t=>{const n=Qn({},t);return n[e].show=!1,n}))},$=e=>{u((t=>{const n=Qn({},t);return n[e].show=!0,n}))},S=e=>{let t=Qn({},c);const n=e.slice(0);for(;n.length>1;)t=t[n.shift()];const o=n.shift();return Boolean(null==t?void 0:t[o])},E=(0,e.useMemo)((()=>({id:r,addTab:x,hideTab:C,updateTab:k,showTab:$,tabExists:S,selectedPath:h,rendered:p,hideTabContent:l,tabs:c})),[r,x,C,k,$,S,h,p,l,c]);return t().createElement("div",{className:(()=>{let e=["tyk-tabs"];return e.push(`tyk-tabs--${a||"default"}`),i&&(e=e.concat(i.split(" "))),e.join(" ")})()},w(c),t().createElement(In.Provider,{value:E},"function"==typeof o?o({hideTab:C,showTab:$}):o))}Zn.propTypes={className:r().string,children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),hideTabContent:r().bool,id:r().string,onTabChange:r().func,type:r().string},Zn.Tab=Gn;const eo=Zn;var to=Object.defineProperty,no=Object.getOwnPropertySymbols,oo=Object.prototype.hasOwnProperty,io=Object.prototype.propertyIsEnumerable,ro=(e,t,n)=>t in e?to(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,so=(e,t)=>{for(var n in t||(t={}))oo.call(t,n)&&ro(e,n,t[n]);if(no)for(var n of no(t))io.call(t,n)&&ro(e,n,t[n]);return e};function ao(n){var o=n,{render:i,className:r,children:s,position:a="auto",style:l,icon:c=!1,closable:u,isOpened:h=!1,additionalClickParents:d=[]}=o,p=((e,t)=>{var n={};for(var o in e)oo.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&no)for(var o of no(e))t.indexOf(o)<0&&io.call(e,o)&&(n[o]=e[o]);return n})(o,["render","className","children","position","style","icon","closable","isOpened","additionalClickParents"]);const[m,f]=(0,e.useState)(!1),y=(0,e.useRef)(null),v=(0,e.useRef)(null),b=u?{onClick:()=>f(!0)}:{onMouseEnter:()=>f(!0),onMouseLeave:()=>f(!1),onFocus:()=>f(!0),onBlur:()=>f(!1)},w=(0,e.useCallback)((e=>{[...d,v.current].some((t=>{var n;return null==(n=null==t?void 0:t.contains)?void 0:n.call(t,e.target)}))||f(!1)}),[d]);(0,e.useEffect)((()=>(document.addEventListener("click",w,!0),()=>document.removeEventListener("click",w,!0))),[w]),(0,e.useEffect)((()=>{f(h)}),[h]);const x=["tyk-tooltip",r].filter(Boolean).join(" ");return t().createElement("div",so(so({className:"tyk-tooltip__wrapper",style:so({display:"inline-block"},l),ref:y},b),p),s,m&&t().createElement(Pt,{element:y,forceDisplay:a,preferredPosition:"top",offset:20},t().createElement("div",{className:x,ref:v},c&&(!0===c?t().createElement(g,{family:"tykon",type:"help"}):c),t().createElement("div",{className:"tyk-tooltip__content"},i),u&&t().createElement(g,{family:"tykon",type:"x",onClick:e=>{e.stopPropagation(),f(!1)}}))))}ao.propTypes={children:r().node.isRequired,style:r().instanceOf(Object),position:r().string,render:r().oneOfType([r().node,r().string]),className:r().string,icon:r().oneOfType([r().bool,r().node]),closable:r().bool,isOpened:r().bool,additionalClickParents:r().instanceOf(Array)};const lo=ao;function co({text:e,limit:n,position:o}){return e.length>n?t().createElement(lo,{render:e,position:o},e.substring(0,n),"..."):e}co.propTypes={text:r().string,limit:r().number,position:r().string};const uo=co;function ho(n){const{value:o=0,totalNrOfPages:i,onChange:r}=n,[s,a]=(0,e.useState)(o),l=(0,e.useMemo)((()=>function(e,t){let n;const o=[];for(n=0;n<=e;n+=1)i=n,r=t,((s=e)<10||r<5&&i<5||r>s-5&&i>s-5||i>=r-2&&i<=r+2||[0,1,s-1,s].includes(i))&&(n>o.at(-1)&&o.push(`...-${n}`),o.push(n+1));var i,r,s;return o}(i,s)),[s,i]);function c(e){a(e),r&&r(e)}return i?t().createElement("ul",{className:"tyk-pagination"},s>0&&i>5&&t().createElement("li",null,t().createElement("button",{onClick:()=>c(s-1),type:"button"},"Previous")),l.map((e=>t().createElement("li",{key:e,className:s===e-1?"active":""},String(e).startsWith("...")?t().createElement("span",null,"..."):t().createElement("button",{onClick:()=>c(e-1),type:"button"},e)))),s5&&t().createElement("li",null,t().createElement("button",{onClick:()=>c(s+1),type:"button"},"Next"))):null}ho.propTypes={value:r().number,totalNrOfPages:r().number,onChange:r().func};const po=ho,go=(0,e.createContext)();function mo({column:n}){const{sortable:o}=n,[i,r]=(0,e.useState)((null==o?void 0:o.default)||"ASC"),{state:s,sendMessage:a}=(0,e.useContext)(go);return t().createElement("th",{key:n.id,onClick:o?()=>{a("sort",{column:n,sortOrder:i}),r("ASC"===i?"DESC":"ASC")}:null,className:s.maxHeight?"fixed-header":""},n.name,n.sortable&&t().createElement("span",{className:"header-sort"},t().createElement(g,{family:"tykon",type:"arrowsort"})))}mo.propTypes={column:r().instanceOf(Object)};var fo=Object.defineProperty,yo=Object.defineProperties,vo=Object.getOwnPropertyDescriptors,bo=Object.getOwnPropertySymbols,wo=Object.prototype.hasOwnProperty,xo=Object.prototype.propertyIsEnumerable,ko=(e,t,n)=>t in e?fo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Co=(e,t)=>{for(var n in t||(t={}))wo.call(t,n)&&ko(e,n,t[n]);if(bo)for(var n of bo(t))xo.call(t,n)&&ko(e,n,t[n]);return e},$o=(e,t)=>yo(e,vo(t));function So({allRowsSelected:n}){const{state:o,sendMessage:i}=(0,e.useContext)(go),{columns:r,selectable:s}=o,a=()=>{var e;const r=s.type;return t().createElement("th",{className:o.maxHeight?"fixed-header":""},(null==s?void 0:s.allowSelectAll)?t().createElement("div",{className:null==s?void 0:s.style},t().createElement(r,$o(Co({},s.values),{value:n,onChange:e=>{var t,n;const o="input"===(null==(t=null==e?void 0:e.target)?void 0:t.tagName.toLowerCase())&&"checkbox"===(null==(n=null==e?void 0:e.target)?void 0:n.type.toLowerCase());i("header.selectAll.change",o?e.target.checked:Boolean(e))}}),null==(e=s.values)?void 0:e.value)):s.name||"Select")};return t().createElement("thead",null,t().createElement("tr",null,"LEFT"===(null==s?void 0:s.position)&&a(),r.map((e=>t().createElement(mo,{key:e.id,column:e}))),"RIGHT"===(null==s?void 0:s.position)&&a()))}So.propTypes={allRowsSelected:r().bool};var Eo=Object.defineProperty,Oo=Object.defineProperties,To=Object.getOwnPropertyDescriptors,Ao=Object.getOwnPropertySymbols,_o=Object.prototype.hasOwnProperty,Lo=Object.prototype.propertyIsEnumerable,Mo=(e,t,n)=>t in e?Eo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ro=(e,t)=>{for(var n in t||(t={}))_o.call(t,n)&&Mo(e,n,t[n]);if(Ao)for(var n of Ao(t))Lo.call(t,n)&&Mo(e,n,t[n]);return e};class No extends e.Component{getCssClasses(){const{inline:e,disabled:t,readOnly:n,theme:o="",wrapperClassName:i=""}=this.props,r=[i];return r.push("tyk-checkbox"),e&&r.push("tyk-checkbox--inline"),o.trim()&&r.push(...o.split(" ").map((e=>`tyk-checkbox--theme-${e}`))),(t||n)&&r.push("tyk-checkbox--is-disabled"),r.join(" ")}displayError(){const{error:e}=this.props;return e?t().createElement("p",{className:"tyk-form-control__error-message"},e):null}displayNote(){const{note:e}=this.props;return e?t().createElement("p",{className:"tyk-form-control__help-block"},e):null}render(){const e=this.props,{input:n,value:o,label:i}=e,r=((e,t)=>{var n={};for(var o in e)_o.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ao)for(var o of Ao(e))t.indexOf(o)<0&&Lo.call(e,o)&&(n[o]=e[o]);return n})(e,["input","value","label"]);return t().createElement("div",{className:this.getCssClasses()},t().createElement("div",{className:"tyk-form-control__wrapper"},t().createElement("label",null,t().createElement("input",(s=Ro(Ro({checked:n?n.value:o},n),r),Oo(s,To({type:"checkbox"})))),i),this.displayNote(),this.displayError()));var s}}No.propTypes={disabled:r().bool,readOnly:r().bool,inline:r().bool,theme:r().string,error:r().oneOfType([r().string,r().bool]),note:r().string,input:r().instanceOf(Object),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),name:r().string,value:r().oneOfType([r().string,r().bool]),checked:r().oneOfType([r().string,r().bool]),onChange:r().func,wrapperClassName:r().string};const Io=No;var Po=Object.defineProperty,Do=Object.getOwnPropertySymbols,Fo=Object.prototype.hasOwnProperty,Bo=Object.prototype.propertyIsEnumerable,Wo=(e,t,n)=>t in e?Po(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ho=(e,t)=>{for(var n in t||(t={}))Fo.call(t,n)&&Wo(e,n,t[n]);if(Do)for(var n of Do(t))Bo.call(t,n)&&Wo(e,n,t[n]);return e};function jo({col:e,row:n}){var o,i,r,s,a;if(!n.values[e.id])return t().createElement("td",null);if("string"===e.type)return t().createElement("td",Ho({className:(null==(o=n.values[e.id].styling)?void 0:o.className)||null},null==(i=n.values[e.id])?void 0:i.events),null==(r=n.values[e.id])?void 0:r.value);const l=e.type;return t().createElement("td",Ho({className:(null==(s=n.values[e.id].styling)?void 0:s.className)||null},null==(a=n.values[e.id])?void 0:a.events),t().createElement(l,Ho({},n.values[e.id].props),n.values[e.id].children?n.values[e.id].children:null))}function zo({row:n,index:o}){var i,r;const{state:s,sendMessage:a}=(0,e.useContext)(go),{columns:l,selectable:c}=s,u=(0,e.useCallback)((()=>t().createElement("td",null,t().createElement(Io,{value:n.selected,onChange:e=>a("row.selected",{index:o,selected:e.target.checked})}))),[n.selected,o]);return t().createElement("tr",{onClick:null==(i=n.events)?void 0:i.onClick,className:null==(r=n.styling)?void 0:r.className},c&&"LEFT"===c.position&&u(),l.map((e=>t().createElement(jo,{key:e.id,col:e,row:n,index:o}))),c&&"RIGHT"===c.position&&u())}function Vo(){const{state:n}=(0,e.useContext)(go),{rows:o}=n;return t().createElement("tbody",null,o.map(((e,n)=>t().createElement(zo,{key:n,row:e,index:n}))))}jo.propTypes={col:r().instanceOf(Object),row:r().instanceOf(Object),index:r().number},zo.propTypes={row:r().instanceOf(Object),index:r().number};var Uo=Object.defineProperty,Go=Object.defineProperties,Ko=Object.getOwnPropertyDescriptors,qo=Object.getOwnPropertySymbols,Yo=Object.prototype.hasOwnProperty,Jo=Object.prototype.propertyIsEnumerable,Xo=(e,t,n)=>t in e?Uo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Qo=(e,t)=>{for(var n in t||(t={}))Yo.call(t,n)&&Xo(e,n,t[n]);if(qo)for(var n of qo(t))Jo.call(t,n)&&Xo(e,n,t[n]);return e},Zo=(e,t)=>Go(e,Ko(t));function ei({value:n,onChange:o,noDataMessage:i,loading:r,infiniteScrolling:s}){var a;const[l,c]=(0,e.useState)(null),[u,h]=(0,e.useState)("api"),d=(0,e.useRef)(null),p=(0,e.useCallback)(((e,t)=>{c((n=>Zo(Qo({},n),{sort:{order:t,col:e}})))}),[]),g=(0,e.useCallback)((e=>{c((t=>Zo(Qo({},t),{rows:t.rows.map((t=>Zo(Qo({},t),{selected:e})))})))}),[]),m=(0,e.useCallback)((({index:e,selected:t})=>{c((n=>Zo(Qo({},n),{rows:[...n.rows.slice(0,e),Zo(Qo({},n.rows[e]),{selected:t}),...n.rows.slice(e+1)]})))}),[]),f=(0,e.useCallback)((e=>{c((t=>Zo(Qo({},t),{pagination:Zo(Qo({},t.pagination),{current:e+1})})))}),[]),y={getState:()=>l,setState:e=>c(e)},v=(0,e.useCallback)(((e,t)=>{h(e),"sort"===e&&p(t.column.id,t.sortOrder),"header.selectAll.change"===e&&g(t),"row.selected"===e&&m(t),"pagination.change"===e&&f(t)}),[p,g,m,f]),b=(0,e.useMemo)((()=>({state:l,sendMessage:v})),[l,v]);if((0,e.useEffect)((()=>c(n)),[n]),(0,e.useEffect)((()=>{o&&o(u,l,y),h("api")}),[l]),!l)return t().createElement(ye,{position:"absolute"});if(l.rows<=0)return t().createElement(be,{theme:"info"},i||"No Data Available");const w=()=>t().createElement("table",{className:"tyk-table",ref:d},t().createElement(So,{allRowsSelected:l.rows.every((({selected:e})=>e))}),t().createElement(Vo,null));return t().createElement(go.Provider,{value:b},t().createElement("div",{className:`scrollable ${(null==(a=l.styling)?void 0:a.className)||""}`,style:{height:l.maxHeight?l.maxHeight:"auto",position:"relative"}},r&&t().createElement(ye,{position:"absolute",withbackground:!0}),s&&l.pagination?t().createElement(At,{refChild:d,hasMore:l.pagination.totalPages>l.pagination.current,loadMore:e=>v("pagination.change",e),pageNumber:l.pagination.current-1,initialLoad:!1},w()):w()),l.pagination&&!s&&t().createElement("div",{className:"new-table-pagination"},t().createElement(po,{value:l.pagination.current-1,nrItemsOnPage:l.pagination.perPage-1,totalNrOfPages:l.pagination.totalPages-1,onChange:e=>v("pagination.change",e)})))}ei.propTypes={value:r().shape({columns:r().arrayOf(r().shape({id:r().string.isRequired,name:r().string,type:r().oneOfType([r().string,r().element,r().func]),sortable:r().oneOfType([r().bool,r().shape({default:r().string})])})),rows:r().arrayOf(r().shape({})),selectable:r().shape({}),pagination:r().shape({}),maxHeight:r().string,styling:r().shape({className:r().string})}).isRequired,onChange:r().func,noDataMessage:r().string,loading:r().bool,infiniteScrolling:r().bool},ei.defaultProps={loading:!1,infiniteScrolling:!1,noDataMessage:"No Data Available",onChange:null};const ti=ei;var ni=Object.defineProperty,oi=Object.getOwnPropertySymbols,ii=Object.prototype.hasOwnProperty,ri=Object.prototype.propertyIsEnumerable,si=(e,t,n)=>t in e?ni(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function ai(e){var n=e,{children:o,align:i,className:r,offset:s,size:a}=n,l=((e,t)=>{var n={};for(var o in e)ii.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&oi)for(var o of oi(e))t.indexOf(o)<0&&ri.call(e,o)&&(n[o]=e[o]);return n})(n,["children","align","className","offset","size"]);const c=["tyk-col",r,i&&`tyk-col--align-${i}`,...a.split(" ").map((e=>`tyk-col--${e}`)),...(s?s.split(" "):[]).map((e=>`tyk-col--offset-${e}`))].filter(Boolean).join(" ");return t().createElement("div",((e,t)=>{for(var n in t||(t={}))ii.call(t,n)&&si(e,n,t[n]);if(oi)for(var n of oi(t))ri.call(t,n)&&si(e,n,t[n]);return e})({className:c},l),o)}ai.propTypes={align:r().string,className:r().string,size:r().string.isRequired,offset:r().string,children:r().oneOfType([r().element,r().string,r().object,r().node])};const li=ai;var ci=Object.defineProperty,ui=Object.defineProperties,hi=Object.getOwnPropertyDescriptors,di=Object.getOwnPropertySymbols,pi=Object.prototype.hasOwnProperty,gi=Object.prototype.propertyIsEnumerable,mi=(e,t,n)=>t in e?ci(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function fi(e){var n=e,{className:o,nogutters:i,children:r}=n,s=((e,t)=>{var n={};for(var o in e)pi.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&di)for(var o of di(e))t.indexOf(o)<0&&gi.call(e,o)&&(n[o]=e[o]);return n})(n,["className","nogutters","children"]);const a=["tyk-row",o,i&&"no-gutters",i&&"tyk-row--gutterless"].filter(Boolean).join(" ");return t().createElement("div",(l=((e,t)=>{for(var n in t||(t={}))pi.call(t,n)&&mi(e,n,t[n]);if(di)for(var n of di(t))gi.call(t,n)&&mi(e,n,t[n]);return e})({},s),ui(l,hi({className:a}))),r);var l}fi.propTypes={children:r().oneOfType([r().element,r().node]),className:r().string,nogutters:r().bool};const yi=fi,vi=(0,e.createContext)();function bi(n){const{customdropdownitem:o,children:i,eventKey:r,href:s,target:a,title:l,onClick:c}=n,u=(0,e.useCallback)(((e,t)=>{e.onSelectItem(r,t),c&&c(r)}),[]);return t().createElement(vi.Consumer,null,(c=>t().createElement("li",{onClick:()=>u(c,n),onKeyUp:()=>{}},o?(0,e.cloneElement)(o,{}):t().createElement("a",{href:s,target:a},r&&c.selectedItem===r&&c.showCheckmark?t().createElement(g,{type:"check"}):null,t().createElement("span",null,l||i)))))}bi.propTypes={children:r().oneOfType([r().element,r().node,r().string]),customdropdownitem:r().oneOfType([r().arrayOf(r().node),r().node,r().element]),eventKey:r().string,href:r().string,target:r().string,onClick:r().func,title:r().string};const wi=bi;var xi=Object.defineProperty,ki=Object.getOwnPropertySymbols,Ci=Object.prototype.hasOwnProperty,$i=Object.prototype.propertyIsEnumerable,Si=(e,t,n)=>t in e?xi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Ei extends e.Component{static isElemInRightView(e,t){const n=window.innerWidth;return e.getBoundingClientRect().left+t<=n}static isElemInBottomView(e,t){const n=window.innerHeight,o=e.getBoundingClientRect(),i=e.clientHeight;return o.top+i+t<=n}constructor(t){super(t);const{selectedItem:n,open:o}=this.props;this.state={opened:o,selectedItem:n||null},this.dropdownRef=(0,e.createRef)(),this.dropdownListRef=(0,e.createRef)(),this.dropdownButtonRef=(0,e.createRef)(),this.onSelectItem=this.onSelectItem.bind(this),this.toggleDropdown=this.toggleDropdown.bind(this),this.handleClickOutside=this.handleClickOutside.bind(this)}componentDidMount(){document.addEventListener("mousedown",this.handleClickOutside),this.dropdownListRef.current&&this.getStyles()}componentDidUpdate(e){const{open:t}=this.props,{opened:n}=this.state;this.dropdownListRef.current&&this.getStyles(),e.open||!0!==t||n||this.toggleDropdown(),e.open&&!1===t&&n&&this.closeDropdown()}componentWillUnmount(){document.removeEventListener("mousedown",this.handleClickOutside)}handleClickOutside(e){this.dropdownListRef.current&&!this.dropdownListRef.current.contains(e.target)&&this.dropdownRef.current&&!this.dropdownRef.current.contains(e.target)&&this.closeDropdown()}onSelectItem(e,t){const{closeOnSelect:n,onSelect:o}=this.props,i={selectedItem:e,selectedItemProps:t};n&&(i.opened=!1),this.setState(i),o&&"function"==typeof o&&o(e)}getStyles(){const{display:e,position:t,offset:n}=this.props,o=this.dropdownListRef.current;if(n)return o.style.top=`${n.top}`,void(o.style.left=`${n.left}`);const i=Math.max(document.documentElement.scrollTop,document.body.scrollTop,window.scrollY),r=this.dropdownRef.current,s=r.clientHeight,a=o?o.clientHeight:0,l=o?o.clientWidth:0,c=r.getBoundingClientRect(),{left:u,top:h}=c;let d=0,p=u;d=Ei.isElemInBottomView(r,a)?h+i+s:h+i-a-5,Ei.isElemInRightView(r,l)||(p=u+r.clientWidth-l),"relative"!==t&&(o.style.top=`${d}px`,"block"!==e&&(o.style.left=`${p}px`)),"block"!==e&&(o.style.minWidth=`${this.dropdownButtonRef.current.clientWidth}px`)}getWrapperCssClasses(){const{btnGroup:e,btnGroupSize:t,className:n,btnTheme:o,wrapperClassName:i=""}=this.props;let r=[i,"tyk-dropdown"];return r.push(`theme-${o||"default"}`),n&&(r=r.concat(n.split(" "))),e&&(r.push("tyk-button-group"),r.push(t?`tyk-button-group--${t}`:"tyk-button-group--md")),r.join(" ")}getCssClasses(){const{opened:e}=this.state,{hasCustomContent:t,display:n,listclassnames:o,position:i,maxHeight:r}=this.props;let s=["tyk-dropdown-menu","tyk-dropdown"];return r&&s.push("tyk-dropdown--scrollable"),e&&s.push("opened"),o&&(s=s.concat(o.split(" "))),n&&s.push("tyk-dropdown--block"),t&&s.push("tyk-dropdown--custom"),"relative"===i&&s.push("tyk-dropdown--relative"),s.join(" ")}getBtnTitle(){const{btnTitle:e,stopButtonTextChange:t}=this.props,{selectedItemProps:n}=this.state;return!t&&(null==n?void 0:n.title)?n.title:e}closeDropdown(){const{onClose:e}=this.props;this.setState({opened:!1},(()=>{e&&e()}))}toggleDropdown(){const{opened:e}=this.state;e?this.closeDropdown():this.setState({opened:!0})}render(){const{appendTo:e,btnClassName:n,btnSize:o,customBtnTitle:i,hasCustomContent:r,btnTheme:s,children:a,label:l,showDropdownIcon:c,showTriggerButton:u,showCheckmark:h,disabled:d=!1,maxHeight:p}=this.props,{selectedItem:g,opened:m}=this.state,f=r?"div":"ul";return t().createElement("div",{className:this.getWrapperCssClasses(),ref:this.dropdownRef},l?t().createElement("label",{className:"font-family-medium"},l):null,u?t().createElement(U,{className:`tyk-dropdown__trigger ${m?"tyk-dropdown__trigger--opened ":" "} ${n}`,theme:s||"default",onClick:this.toggleDropdown,iconType:c?"chevron-down":null,iconPosition:"right",size:o||"md",type:"button",disabled:d,ref:this.dropdownButtonRef},i||this.getBtnTitle()):null,m?dt().createPortal(t().createElement(vi.Provider,{value:{onSelectItem:this.onSelectItem,selectedItem:g,showCheckmark:h}},m?t().createElement(f,((e,t)=>{for(var n in t||(t={}))Ci.call(t,n)&&Si(e,n,t[n]);if(ki)for(var n of ki(t))$i.call(t,n)&&Si(e,n,t[n]);return e})({className:this.getCssClasses(),ref:this.dropdownListRef},p&&{style:{maxHeight:p}}),"function"==typeof a?a({closeDropdown:this.closeDropdown.bind(this)}):a):null),document.querySelector(e||"body")):null)}}Ei.propTypes={appendTo:r().string,children:r().oneOfType([r().element,r().node,r().string,r().func]),closeOnSelect:r().bool,btnClassName:r().string,btnSize:r().string,btnGroupSize:r().string,btnTheme:r().string,btnTitle:r().oneOfType([r().node,r().element,r().string]),customBtnTitle:r().oneOfType([r().node,r().element,r().string]),btnGroup:r().bool,className:r().string,display:r().string,disabled:r().bool,hasCustomContent:r().bool,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),listclassnames:r().string,onClose:r().func,onSelect:r().func,open:r().bool,offset:r().instanceOf(Object),position:r().string,selectedItem:r().string,showDropdownIcon:r().bool,stopButtonTextChange:r().bool,showTriggerButton:r().bool,showCheckmark:r().bool,maxHeight:r().string,wrapperClassName:r().string},Ei.defaultProps={closeOnSelect:!1,showDropdownIcon:!0,showTriggerButton:!0,showCheckmark:!0,open:!1},Ei.Item=wi;const Oi=Ei;var Ti=Object.defineProperty,Ai=Object.getOwnPropertySymbols,_i=Object.prototype.hasOwnProperty,Li=Object.prototype.propertyIsEnumerable,Mi=(e,t,n)=>t in e?Ti(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Ri({title:e,theme:n="primary",splitTrigger:o,toggle:i,onTriggerClick:r,value:s},a){return o?t().createElement(K,{ref:a},t().createElement(U,((e,t)=>{for(var n in t||(t={}))_i.call(t,n)&&Mi(e,n,t[n]);if(Ai)for(var n of Ai(t))Li.call(t,n)&&Mi(e,n,t[n]);return e})({theme:n},r&&{onClick:()=>r(s)}),e),t().createElement(U,{className:"dropdown__trigger",iconType:"arrowdown",iconFamily:"tykon",iconPosition:"right",theme:n,onClick:i,iconOnly:!0})):t().createElement(U,{className:"dropdown__trigger",iconType:"arrowdown",iconFamily:"tykon",iconPosition:"right",theme:n,ref:a,onClick:i},e)}Ri.propTypes={title:r().string,theme:r().string,splitTrigger:r().bool,toggle:r().func,dropdownRef:r().shape({current:r().instanceOf(Element)}).isRequired,onTriggerClick:r().func,value:r().oneOfType([r().string,r().number])};const Ni=(0,e.forwardRef)(Ri);var Ii=Object.defineProperty,Pi=Object.getOwnPropertySymbols,Di=Object.prototype.hasOwnProperty,Fi=Object.prototype.propertyIsEnumerable,Bi=(e,t,n)=>t in e?Ii(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Wi=(e,t)=>{for(var n in t||(t={}))Di.call(t,n)&&Bi(e,n,t[n]);if(Pi)for(var n of Pi(t))Fi.call(t,n)&&Bi(e,n,t[n]);return e};function Hi({children:e,element:n,maxWidth:o},i){return t().createElement(Pt,{element:n,ref:i,className:"dropdown__menu",position:"bottom",alignment:"auto",offset:5,arrow:!0},t().createElement(jt,{style:Wi({},o&&{maxWidth:o}),theme:"primary"},e))}Hi.propTypes={element:r().shape({current:r().instanceOf(Element)}),children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),maxWidth:r().string};const ji=(0,e.forwardRef)(Hi),zi=(0,e.createContext)();var Vi=Object.defineProperty,Ui=Object.getOwnPropertySymbols,Gi=Object.prototype.hasOwnProperty,Ki=Object.prototype.propertyIsEnumerable,qi=(e,t,n)=>t in e?Vi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Yi=(e,t)=>{for(var n in t||(t={}))Gi.call(t,n)&&qi(e,n,t[n]);if(Ui)for(var n of Ui(t))Ki.call(t,n)&&qi(e,n,t[n]);return e};function Ji({children:n,value:o}){const{onChange:i,value:r}=(0,e.useContext)(zi);return t().createElement(jt.Item,Yi({},o===r&&{selected:!0}),t().createElement("a",Yi({},i&&{onClick:()=>i(o)}),n))}Ji.propTypes={children:r().node,value:r().any};const Xi=Ji;function Qi({children:n,title:o,theme:i,splitTrigger:r,onChange:s,value:a,setSelectedValueAsTitle:l,maxWidth:c,onTriggerClick:u}){const{isOpen:h,toggle:d,dropdownRef:p,dropdownListRef:g}=(({splitTrigger:t})=>{const[n,o]=(0,e.useState)(!1),i=(0,e.useRef)(null),r=(0,e.useRef)(null),s=(0,e.useCallback)((e=>{const s=t?i.current.querySelector(".dropdown__trigger"):i.current;!n||s.contains(e.target)||r.current.contains(e.target)||o(!1)}),[n]);return(0,e.useEffect)((()=>(document.addEventListener("mousedown",s),()=>{document.removeEventListener("mousedown",s)})),[s]),{isOpen:n,toggle:()=>o(!n),dropdownRef:i,dropdownListRef:r}})({splitTrigger:r}),m=(0,e.useMemo)((()=>({onChange:s,value:a})),[s,a]);return t().createElement(zi.Provider,{value:m},t().createElement(Ni,{title:l?a:o,onTriggerClick:u,theme:i,splitTrigger:r,toggle:d,ref:p,value:a}),h&&t().createElement(ji,{element:p,ref:g,maxWidth:c},n))}Qi.propTypes={title:r().string,theme:r().string,children:r().node,splitTrigger:r().bool,onChange:r().func,value:r().oneOfType([r().string,r().number]),setSelectedValueAsTitle:r().bool,maxWidth:r().string,onTriggerClick:r().func},Qi.Item=Xi;const Zi=Qi;var er=n(239),tr=n.n(er);const nr=require("react-ace");var or=n.n(nr);n(395),n(576),n(7),n(549),n(252),n(202),n(711),n(604),n(134),n(203);const ir=n.p+"ee385296b124aae4e5d9.js";var rr=Object.defineProperty,sr=Object.defineProperties,ar=Object.getOwnPropertyDescriptors,lr=Object.getOwnPropertySymbols,cr=Object.prototype.hasOwnProperty,ur=Object.prototype.propertyIsEnumerable,hr=(e,t,n)=>t in e?rr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,dr=(e,t)=>{for(var n in t||(t={}))cr.call(t,n)&&hr(e,n,t[n]);if(lr)for(var n of lr(t))ur.call(t,n)&&hr(e,n,t[n]);return e};function pr(n){const{disabled:o,readOnly:i,disableValidation:r,id:s,error:a,label:l,labelwidth:c,note:u,onBlur:h,onChange:d,theme:p,value:g,setOptions:m,wrapperClassName:f}=n,y=["tyk-form-group",f,...p?p.split(" ").map((e=>`tyk-form-group--${e}`)):[],c&&"tyk-form-group--label-has-width",a&&"has-error"].filter(Boolean).join(" "),v=dr(dr({},m),r&&{useWorker:!1}),b=(0,e.useCallback)((()=>a&&"true"!==a&&"false"!==a?t().createElement("p",{className:"tyk-form-control__error-message"},a):null),[a]),w=(0,e.useCallback)((()=>c?{flexBasis:c}:{}),[c]),x=(0,e.useCallback)((()=>c?{flexBasis:`calc(100% - ${c} - 20px)`}:{}),[c]),k=(0,e.useCallback)((e=>{d&&d(e)}),[d]),C=(0,e.useCallback)((()=>{h&&h(g)}),[h,g]);return t().createElement("div",{className:y},l?t().createElement("label",{htmlFor:s,style:w()},l):null,t().createElement("div",{className:"tyk-form-control__wrapper",style:x()},t().createElement(or(),($=dr({className:"tyk-form-control"},n),sr($,ar({onChange:k,onBlur:C,theme:"github",editorProps:{$blockScrolling:!0},readOnly:i||o,onLoad:e=>{e.container.style.resize="both",document.addEventListener("mouseup",(()=>e.resize()))},setOptions:v})))),u?t().createElement("p",{className:"tyk-form-control__help-block"},u):null,b()));var $}tr().config.setModuleUrl("ace/mode/json_worker",ir),pr.propTypes={disabled:r().bool,readOnly:r().bool,disableValidation:r().bool,id:r().string,error:r().oneOfType([r().string,r().bool]),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,mode:r().string,name:r().string,note:r().string,onBlur:r().func,onChange:r().func,theme:r().string,value:r().string,setOptions:r().instanceOf(Object),wrapperClassName:r().string};const gr=pr;var mr=Object.defineProperty,fr=Object.defineProperties,yr=Object.getOwnPropertyDescriptors,vr=Object.getOwnPropertySymbols,br=Object.prototype.hasOwnProperty,wr=Object.prototype.propertyIsEnumerable,xr=(e,t,n)=>t in e?mr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,kr=(e,t)=>{for(var n in t||(t={}))br.call(t,n)&&xr(e,n,t[n]);if(vr)for(var n of vr(t))wr.call(t,n)&&xr(e,n,t[n]);return e};const Cr=(e,t,n)=>n||(e||t?[]:null);class $r extends e.Component{static closeList(){return{cursor:-1,opened:!1}}static openList(){return{opened:!0}}static filterByName(e,t){return e.name.toLowerCase().indexOf(t)>-1}constructor(t){super(t);const{multiple:n,tags:o,value:i}=t;this.state={cursor:-1,opened:!1,width:50,initialValue:i,stateSelectedValues:Cr(n,o,i),searchText:"",tags:o},this.comboboxRef=(0,e.createRef)(),this.valuesListRef=(0,e.createRef)(),this.inputRef=(0,e.createRef)(),this.textRef=(0,e.createRef)(),this.focusInput=this.focusInput.bind(this),this.onKeyUp=this.onKeyUp.bind(this),$r.openList=$r.openList.bind(this),this.handleClickOutside=this.handleClickOutside.bind(this),this.handleItemsNavigation=this.handleItemsNavigation.bind(this),this.handleComboboxDropdownClick=this.handleComboboxDropdownClick.bind(this),this.handleListItemClick=this.handleListItemClick.bind(this),this.handlePillRemoveClick=this.handlePillRemoveClick.bind(this),this.manageSelectedTags=this.manageSelectedTags.bind(this)}componentDidMount(){const{tags:e}=this.props;e&&this.setInputWidth(),this.bindEvents()}componentWillUnmount(){this.unBindEvents()}static getDerivedStateFromProps(e,t){return JSON.stringify(e.value)!==JSON.stringify(t.initialValue)||e.tags!==t.tags?{initialValue:e.value,stateSelectedValues:Cr(e.multiple,e.tags,e.value),tags:e.tags}:null}handleItemsNavigation(e){const{tags:t}=this.props;if(-1===["ArrowDown","ArrowUp"].indexOf(e.key))return;const{cursor:n}=this.state,o=this.filterValues();let i;if(e.preventDefault(),"ArrowDown"===e.key&&(-1===n||n===o.length-1?i=0:n0?n-1:o.length-1),this.valuesListRef.current&&i>4){const e=38*(i-4);this.valuesListRef.current.scrollTop=t?e:60+e}else this.valuesListRef.current&&(this.valuesListRef.current.scrollTop=0);this.setState((e=>{return t=kr({},e),fr(t,yr({opened:!0,cursor:i}));var t}))}handleListItemClick(e){if(this.props.values[e].disabled)return;const{multiple:t,tags:n}=this.props,o=n?"manageSelectedTags":"manageSelectedValues",i=kr(kr({},this.state),this[o](e));this.setState((e=>(t||n||(i.opened=!1),kr(kr({},e),i))))}handlePillRemoveClick(e){const{disabled:t}=this.props;if(t)return;const n=this.removeSelectedValue(e);this.setState((e=>kr(kr({},e),n)))}handleClickOutside(e){this.valuesListRef.current&&!this.valuesListRef.current.contains(e.target)&&this.comboboxRef.current&&!this.comboboxRef.current.contains(e.target)&&this.setState((e=>kr(kr({},e),$r.closeList())))}handleComboboxDropdownClick(){const{disabled:e}=this.props;e||this.setState((e=>kr(kr({},e),$r.openList())))}onKeyUp(e){const{tags:t,allowCustomValues:n}=this.props,{cursor:o,opened:i}=this.state,r=this.filterValues();let s=this.getSearchText();if(t&&"Escape"!==e.key&&(s=kr(kr({},s),this.setInputWidth())),"Enter"===e.key){const e=t?"manageSelectedTags":"manageSelectedValues";s=kr(kr({},s),this[e](o))}n&&" "!==e.key&&t&&(s=kr(kr({},s),this.manageSelectedTags())),!i&&this.inputRef.current.value&&(null==r?void 0:r.length)&&"Escape"!==e.key&&(s=kr(kr({},s),$r.openList())),"Escape"===e.key&&i&&(s=kr(kr({},s),$r.closeList())),i&&r&&!r.length&&(s=kr(kr({},s),$r.closeList())),this.setState((e=>kr(kr({},e),s)))}getLabelStyles(){const{labelwidth:e}=this.props,t={};return e&&(t.flexBasis=e),t}getNonLabelWidth(){const{labelwidth:e}=this.props,t={};return e&&(t.flexBasis=`calc(100% - ${e} - 20px)`),t}setInputWidth(){return{width:50+this.textRef.current.offsetWidth}}getSelectedIndex(e){const{stateSelectedValues:t}=this.state;let n=-1;return Array.isArray(t)?t.forEach(((t,o)=>{t.id===e.id&&(n=o)})):t&&t.id===e.id&&(n=0),n}getSearchText(){return{searchText:this.inputRef.current.value}}getListItemCssClasses(e,t){const n=[],{cursor:o}=this.state;return o===t&&n.push("active"),e.disabled&&n.push("disabled"),n.join(" ")}getComboboxListCssClass(){const{opened:e}=this.state,{tags:t,theme:n}=this.props,o=n?n.split(" "):[],i=["tyk-combobox__list"];return e&&i.push("tyk-combobox__list--opened"),t&&i.push("tyk-combobox__list--has-tags"),o.length&&o.forEach((e=>{i.push(`tyk-form-group--${e}`)})),i.join(" ")}getCssClasses(){const{error:e,disabled:t,theme:n,labelwidth:o}=this.props,i=["tyk-form-group","tyk-combobox"],r=n?n.split(" "):[];return e&&i.push("has-error"),o&&i.push("tyk-form-group--label-has-width"),r.length&&r.forEach((e=>{i.push(`tyk-form-group--${e}`)})),t&&i.push("disabled"),i.join(" ")}getInputError(){const{error:e}=this.props;return e&&"true"!==e&&"false"!==e?t().createElement("p",{className:"tyk-form-control__error-message"},e):null}getStyles(){const{scrollTop:e}=document.documentElement,t=this.comboboxRef.current,n=t.offsetHeight,o=t.offsetWidth,i=t.getBoundingClientRect(),{left:r}=i;let s=0;return s=i.top+e+n,{top:s-1+"px",left:`${r}px`,width:`${o}px`}}getComboboxDisplayData(){const{stateSelectedValues:e}=this.state,{multiple:t,placeholder:n,values:o}=this.props;return e?e&&Array.isArray(e)&&!e.length?n:!e||Array.isArray(e)||e.id?Array.isArray(e)&&t?e.reduce(((t,n,o)=>t+n.name+(o!==e.length-1?", ":"")),""):!(null==o?void 0:o.length)||Array.isArray(e)||e.name?e.name:o.filter((t=>t.id===e.id))[0].name:n:n}manageSelectedTags(e){const{max:t,allowCustomValues:n}=this.props,{stateSelectedValues:o}=this.state,i=this.filterValues(),r={id:this.inputRef.current.value,name:this.inputRef.current.value};if(!1===n&&-1===e)return null;const s=i[e]||r,a=this.getSelectedIndex(s);let l={};if(this.inputRef.current.value="",a>-1&&this.isInInitialValues(s))l=this.removeSelectedValue(a);else if(-1===a){if(t&&o.length>=t)return l;l=this.addSelectedValue(s)}return l}manageSelectedValues(e){const{stateSelectedValues:t}=this.state,{multiple:n,onChange:o,max:i}=this.props,r=this.filterValues(),s=r[e];let a;const l=this.getSelectedIndex(s);if(s&&n)if(l>-1)a=this.removeSelectedValue(l);else{if(i&&t.length>=i)return a;a=this.addSelectedValue(r[e])}else a={stateSelectedValues:-1===l?s:{id:null}},null==o||o(-1===l?s:null);return a}removeSelectedValue(e){const{stateSelectedValues:t}=this.state,{onChange:n}=this.props,o=JSON.parse(JSON.stringify(t));return o.splice(e,1),n&&"function"==typeof n&&n(o.length?o:null),{stateSelectedValues:o,searchText:""}}addSelectedValue(e){const{stateSelectedValues:t}=this.state,{onChange:n}=this.props,o=JSON.parse(JSON.stringify(t));return o.push(e),n&&"function"==typeof n&&n(o.length?o:null),{stateSelectedValues:o,searchText:""}}isInInitialValues(e){const{values:t}=this.props;let n=!1;return t.forEach((t=>{e.id===t.id&&(n=!0)})),n}filterValues(){const{values:e,searchItem:t}=this.props;return this.inputRef.current?e.filter((e=>t?t(e,this.inputRef.current.value.toLowerCase()):$r.filterByName(e,this.inputRef.current.value.toLowerCase()))):e}bindEvents(){document.addEventListener("mousedown",this.handleClickOutside)}unBindEvents(){document.removeEventListener("mousedown",this.handleClickOutside)}reset(){const{multiple:e,tags:t,value:n}=this.props;this.setState({stateSelectedValues:Cr(e,t,n)})}focusInput(){this.inputRef.current&&this.inputRef.current.focus()}renderInput(e){const{disabled:n,tags:o,max:i,placeholder:r}=this.props,{width:s,searchText:a,stateSelectedValues:l}=this.state;return t().createElement("ul",{className:"tyk-form-control"+(o?" tyk-form-control--with-tags":""),onClick:this.focusInput,onKeyDown:()=>{},ref:this.comboboxRef},o?t().createElement(t().Fragment,null,(l||[]).map(((e,n)=>t().createElement("li",{className:"pill",key:e.id},t().createElement("button",{type:"button",onClick:this.handlePillRemoveClick.bind(this,n),"aria-label":"remove"},t().createElement(g,{type:"times"})),t().createElement("span",null,e.name)))),t().createElement("li",{className:"tyk-combobox__search-box",style:{width:(null==l?void 0:l.length)?"auto":"100%"}},(void 0===i||(null==l?void 0:l.length){"Enter"===e.key&&e.preventDefault(),this.handleItemsNavigation(e)},onKeyUp:this.onKeyUp,placeholder:(null==l?void 0:l.length)?"":r,ref:this.inputRef,style:{width:(null==l?void 0:l.length)?`${s}px`:"100%"}}),t().createElement("span",{ref:this.textRef,style:{visbility:"hidden",position:"absolute",top:"-9999px"}},a)),e.length>0&&t().createElement(U,{className:"tyk-combobox--with-tags__button-down",iconType:"arrow-down",iconOnly:!0,onClick:this.handleComboboxDropdownClick}))):t().createElement("li",{className:"tyk-combobox__placeholder",onClick:this.handleComboboxDropdownClick,onKeyDown:()=>{}},this.getComboboxDisplayData(),t().createElement(g,{family:"tykon",type:"arrowdown"})))}renderDropdown(e){const{tags:n}=this.props,{opened:o}=this.state;return t().createElement("ul",{className:this.getComboboxListCssClass(),ref:this.valuesListRef,style:this.getStyles()},n?null:t().createElement("li",{className:"combobox-search__container"},t().createElement("input",{autoFocus:o,className:"tyk-form-control",onKeyUp:this.onKeyUp,onKeyDown:this.handleItemsNavigation,key:"searchInput",ref:this.inputRef})),e.map(((e,n)=>t().createElement("li",{className:this.getListItemCssClasses(e,n),onClick:this.handleListItemClick.bind(this,n),onKeyDown:()=>{},key:e.id},this.getSelectedIndex(e)>-1?t().createElement(g,{type:"check"}):null,t().createElement("span",null," ",e.name)))))}render(){const{CustomListComponent:e,id:n,label:o,note:i}=this.props,{opened:r}=this.state,s=this.filterValues();return t().createElement(t().Fragment,null,t().createElement("div",{className:this.getCssClasses()},o?t().createElement("label",{htmlFor:n,style:this.getLabelStyles()},o):null,t().createElement("div",{className:"tyk-form-control__wrapper",style:this.getNonLabelWidth()},this.renderInput(s),i?t().createElement("p",{className:"tyk-form-control__help-block"},i):null,this.getInputError())),e?t().createElement(e,{ref:this.valuesListRef,className:this.getComboboxListCssClass(),getListItemCssClasses:this.getListItemCssClasses.bind(this),getSelectedIndex:this.getSelectedIndex.bind(this),filteredValues:s,handleListItemClick:this.handleListItemClick.bind(this)}):r&&s.length?dt().createPortal(this.renderDropdown(s),document.querySelector("body")):null)}}$r.propTypes={allowCustomValues:r().bool,CustomListComponent:r().elementType,searchItem:r().func,disabled:r().bool,error:r().string,id:r().string,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,multiple:r().bool,max:r().number,note:r().oneOfType([r().node,r().element,r().string]),onChange:r().func,placeholder:r().string,tags:r().bool,theme:r().string,value:r().oneOfType([r().string,r().instanceOf(Object),r().instanceOf(Array)]),values:r().instanceOf(Array)},$r.defaultProps={allowCustomValues:!0};const Sr=$r;function Er(n){const{value:o,max:i,tags:r,tagSeparators:s,addTagOnBlur:a,placeholder:l,disabled:c,renderValue:u,valueOverflow:h,focus:d,onMessage:p,readOnly:m}=n,f=(0,e.useRef)(null),y=(0,e.useRef)(null),[v,b]=(0,e.useState)(""),[w,x]=(0,e.useState)("70px");function k(e){if(s.some((t=>e.slice(-1)===t)))return;const t=y.current;t.innerHTML=e,x(`${Math.max(t.clientWidth,60)+10}px`),b(e),p("tag.input.change",e)}function C(){p("text-value.click")}function $(e,n=!1){if(m)return e||"-";const o=["tyk-combobox2__text-value",`overflow-${h}`,n&&"is-placeholder"].filter(Boolean).join(" ");return t().createElement("span",{className:o,title:"single"===h?e:void 0,role:"none",tabIndex:c?"-1":"0",onClick:C,onKeyDown:C},e)}function S(e){return u(e,{tags:r,tagSeparators:s,placeholder:l,disabled:c,renderValue:u,sendMessage:p})}return(0,e.useEffect)((()=>{d&&f.current&&f.current.focus()}),[d]),m?t().createElement("div",{className:"tyk-form-control--readonly"},$(o.map((e=>e.name)).join(", "))):r?t().createElement(t().Fragment,null,o.map((function(e){return u?S(e):t().createElement(mn,{key:e.id,theme:"combobox"},t().createElement("button",{type:"button",onClick:t=>{t.stopPropagation(),p("tag.remove",e.id)},"aria-label":"remove"},t().createElement(g,{type:"times"})),t().createElement("span",{title:e.name},e.name))})),o.lengthk(e.target.value),onKeyDown:e=>{"Enter"===e.key&&e.preventDefault(),function(e,t){if(r){if(""!==t||"Backspace"!==e||!o.length)return"Enter"===e?(p("tag.input.enter",t),void k("")):void("ArrowUp"!==e?"ArrowDown"!==e?"Escape"!==e?s.includes(e)&&(p("tag.add",t),k("")):p("tag.input.escape"):p("tag.input.arrowDown"):p("tag.input.arrowUp"));p("tag.remove",o[o.length-1].id)}}(e.key,e.target.value)},onFocus:()=>p("tag.input.focus"),onBlur:e=>{p("tag.input.blur",e.target.value),a&&k("")}}),t().createElement("span",{ref:y,style:{visbility:"hidden",position:"absolute",top:"-9999px"}}))):u?0===o.length?$(l,!0):o.map(S):0===o.length?$(l,!0):$(o.map((e=>e.name)).join(", "))}Er.propTypes={value:r().instanceOf(Array),max:r().number,tags:r().instanceOf(Array),tagSeparators:r().instanceOf(Array),addTagOnBlur:r().bool,placeholder:r().string,disabled:r().bool,renderValue:r().func,valueOverflow:r().string,focus:r().bool,onMessage:r().func,readOnly:r().bool};const Or=Er;function Tr(n){const{listRef:o,tags:i,values:r,searchValue:s,activeItem:a,onMessage:l,renderListItem:c,selectAll:u,showSearch:h}=n;return(0,e.useEffect)((()=>{if(!o.current)return;const e=o.current.querySelector(".active");e&&e.scrollIntoView({block:"end"})}),[a]),t().createElement(t().Fragment,null,!i&&h&&t().createElement("div",{className:"tyk-combobox2__combobox-search"},t().createElement("input",{autoFocus:!0,className:"tyk-form-control",value:s,onChange:e=>l("search.change",e.target.value),onKeyDown:e=>{"Escape"===e.key&&l("search.escape"),"ArrowUp"===e.key&&l("search.arrowUp"),"ArrowDown"===e.key&&l("search.arrowDown"),"Enter"===e.key&&l("search.enter")}})),r.length>0&&t().createElement("ul",{ref:o,className:"tyk-combobox2__combobox-list"},Boolean(u)&&function(){var e,n,o;const i=r.every((e=>e.selected)),s=r.every((e=>!e.selected)),a=null!=(e=null==u?void 0:u.label)?e:"Select All",c=null!=(n=null==u?void 0:u.mode)?n:"select",h=null!=(o=null==u?void 0:u.show)?o:"always",d=null==u?void 0:u.render;return"always"!==h&&("select"===c?i:s)?null:d?d({label:a,mode:c,show:h,isAllSelected:i,isNoneSelected:s},l):t().createElement("li",{onClick:()=>l("value.select-all","select"===c?!i:s),onKeyDown:()=>{}},("select"===c?i:s)&&t().createElement(g,{type:"check"}),a)}(),r.map((function(e){return c?c(e,{tags:i,searchValue:s,sendMessage:l,activeItem:a}):t().createElement("li",{key:e.id,title:e.name,className:[e.disabled&&"disabled",a&&e.id===a.id&&"active"].filter(Boolean).join(" "),onClick:()=>!e.disabled&&l("value.select",{item:e}),onKeyDown:()=>{}},e.selected&&t().createElement(g,{type:"check"}),t().createElement("span",{className:"item-name"},e.name))}))))}Tr.propTypes={listRef:r().instanceOf(Object),tags:r().bool,values:r().instanceOf(Array),searchValue:r().string,activeItem:r().instanceOf(Object),onMessage:r().func,renderListItem:r().func,selectAll:r().oneOfType([r().bool,r().shape({label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),mode:r().oneOf(["select","unselect"]),show:r().oneOf(["always","notSameState"]),render:r().func})]),showSearch:r().bool};const Ar=Tr;var _r=Object.defineProperty,Lr=Object.defineProperties,Mr=Object.getOwnPropertyDescriptors,Rr=Object.getOwnPropertySymbols,Nr=Object.prototype.hasOwnProperty,Ir=Object.prototype.propertyIsEnumerable,Pr=(e,t,n)=>t in e?_r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Dr=(e,t)=>{for(var n in t||(t={}))Nr.call(t,n)&&Pr(e,n,t[n]);if(Rr)for(var n of Rr(t))Ir.call(t,n)&&Pr(e,n,t[n]);return e},Fr=(e,t)=>Lr(e,Mr(t));function Br(n){var o=n,{value:i,values:r=[],valueOverflow:s="single",label:a="",labelwidth:l,tags:c=!1,tagSeparators:u=[" ","Enter"],addTagOnBlur:h=!1,max:d,multiple:p=!1,placeholder:m="",theme:f,note:y="",error:v="",disabled:b=!1,readOnly:w=!1,allowCustomValues:x=!0,searchItem:k,renderValue:C,renderListItem:$,renderList:S,CustomListComponent:E,onBeforeChange:O=(()=>!0),onChange:T=(()=>{}),floatingContainerConfig:A,expandMode:_,infiniteScrollerConfig:L,displayDropdownTrigger:M=!0,selectAll:R,closeOnSelect:N,showSearch:I=!1,required:P=!1,validateOnChange:D=(()=>{}),wrapperClassName:F=""}=o,B=((e,t)=>{var n={};for(var o in e)Nr.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Rr)for(var o of Rr(e))t.indexOf(o)<0&&Ir.call(e,o)&&(n[o]=e[o]);return n})(o,["value","values","valueOverflow","label","labelwidth","tags","tagSeparators","addTagOnBlur","max","multiple","placeholder","theme","note","error","disabled","readOnly","allowCustomValues","searchItem","renderValue","renderListItem","renderList","CustomListComponent","onBeforeChange","onChange","floatingContainerConfig","expandMode","infiniteScrollerConfig","displayDropdownTrigger","selectAll","closeOnSelect","showSearch","required","validateOnChange","wrapperClassName"]);const W=(0,e.useMemo)((()=>p?1/0:d||(c?1/0:1)),[p,d,c]),H=E?(e,{sendMessage:n})=>t().createElement(E,{filteredValues:e,handleListItemClick:t=>n("value.select",{item:e[t]})}):S,j=(0,e.useRef)(null),z=(0,e.useRef)(null),V=(0,e.useRef)(null),U=(0,e.useRef)(null),[G,K]=(0,e.useState)(jr(i,r)),[q,Y]=(0,e.useState)(r.map((e=>Hr(e)))),[J,X]=(0,e.useState)(""),[Q,Z]=(0,e.useState)(null),[ee,te]=(0,e.useState)(!1),[ne,oe]=(0,e.useState)(!1),[ie,re]=(0,e.useState)("");function se(){return(f?f.split(" "):[]).map((e=>`tyk-form-group--${e}`))}function ae(){const e=k||((e,t)=>{var n,o;return null==(o=null==(n=null==e?void 0:e.name)?void 0:n.toLowerCase())?void 0:o.includes(t)});return q.filter((t=>e(t,J.toLowerCase())))}function le(){te(!0)}function ce(){te(!1),c||ue(""),Z(null)}function ue(e){X(e),Q&&ae().every((e=>e.id!==Q.id))&&Z(null),e&&!ee&&le()}function he(e,t){const n=D(e,t);return re(n),void 0===n}function de(e){K(e),T(1!==W||c?e:e[0]||null)}function pe(e){if(!e)return;if(G.length>=W)return;if(G.some((({name:t})=>t===e)))return;const t=q.findIndex((t=>t.name===e));let n,o,i=[...G];-1===t?x&&(n={id:e,name:e},i=[...G,n]):(o=[...q.slice(0,t),Fr(Dr({},q[t]),{selected:!0}),...q.slice(t+1)],n=q[t],i=[...G,q[t]]),he(i,n)&&O(G,i)&&(o&&Y(o),de(i))}function ge({id:e}){const t=q.find((t=>t.id===e)),n=q.findIndex((t=>t.id===e));let o=G,i=q;t.selected?P&&1===W||(o=G.filter((e=>e.id!==t.id)),i=q.with(n,Fr(Dr({},t),{selected:!1}))):G.lengthFr(Dr({},e),{selected:e.id===t.id})))),he(o,t)&&O(G,o)&&(de(o),Y(i)),(1===W||N)&&ce()}function me(e){if(q.length>W)return;const t=e?[...q]:[];O(G,t)&&(de(t),Y(q.map((t=>Fr(Dr({},t),{selected:e})))),N&&ce())}function fe(){const e=ae().filter((e=>!e.disabled));if(0===e.length)return;if(null===Q||1===e.length)return void Z(e[e.length-1]);const t=e.findIndex((e=>e.id===Q.id));Z(e[t>0?t-1:e.length-1])}function ye(){const e=ae().filter((e=>!e.disabled));if(0===e.length)return;if(null===Q||1===e.length)return void Z(e[0]);const t=e.findIndex((e=>e.id===Q.id));Z(e[tt.id===e)),n=G.filter((t=>t.id!==e));O(G,n)&&(-1!==t&&Y([...q.slice(0,t),Fr(Dr({},q[t]),{selected:!1}),...q.slice(t+1)]),de(n))}(t),"input.change"===e&&ue(t),"input.enter"===e&&(Q?ge(Q):u.includes("Enter")&&(pe(t),ue(""))),"input.arrowUp"===e&&(le(),fe()),"input.arrowDown"===e&&(le(),ye()),"input.escape"===e&&ce(),"input.blur"===e&&h&&(pe(t),ue("")),"input.focus"===e&&le()}const xe=(0,e.useCallback)(((e,t)=>{e.startsWith("tag.")&&we(e.slice(4),t),"value.select"===e&&ge(t.item),"value.select-all"===e&&me(t),"text-value.click"===e&&le(),"search.change"===e&&ue(t),"search.escape"===e&&ce(),"search.arrowUp"===e&&fe(),"search.arrowDown"===e&&ye(),"search.enter"===e&&Q&&ge(Q)}),[we,ge,me,le,ue,ce,fe,ye]),ke=(0,e.useCallback)((()=>_?t().createElement(g,{type:ne?"compress-arrows-alt":"expand-arrows-alt"}):t().createElement(g,{family:"tykon",type:"arrowdown"})),[_,ne]);(0,e.useEffect)((()=>(window.addEventListener("click",be,!0),()=>window.removeEventListener("click",be,!0))),[]),(0,e.useEffect)((()=>{if(r.length){const e=r.map((e=>Fr(Dr({},Hr(e)),{selected:G.some((t=>t.id===e.id))})));Y(e),K((t=>t.map((t=>e.find((e=>e.id===t.id))||t))))}else q.length&&Y([])}),[r]),(0,e.useEffect)((()=>{const e=jr(i,q);K(e),Y((t=>t.map((t=>Fr(Dr({},Hr(t)),{selected:e.some((e=>e.id===t.id))})))))}),[i]),(0,e.useEffect)((()=>{if(!_)return()=>{};const e=z.current.querySelector(".tyk-combobox2__current-values"),t=()=>{e.scrollTop=e.scrollHeight},n=new MutationObserver(t),o=new ResizeObserver(t);return n.observe(e,{attributes:!0,childList:!0,subtree:!0}),o.observe(e),()=>{n.disconnect(),o.disconnect()}}));const Ce=ae(),$e=["tyk-combobox2__current-values",_&&"expand-mode","tyk-combobox2__current-values--"+(ne?"expanded":"collapsed")].join(" ");return t().createElement("div",Fr(Dr({ref:j,tabIndex:b?"-1":"0",onClickCapture:function(e){if(!b)return;if(!_)return void e.stopPropagation();const t=j.current.querySelector(".tyk-combobox2__values-container-trigger");t&&(t===e.target||t.contains(e.target)||e.stopPropagation())}},B),{className:[F,"tyk-form-group","tyk-combobox2",...se(),(v||ie)&&"has-error",l&&"tyk-form-group--label-has-width",b&&"disabled",_&&"is-expand-mode"].filter(Boolean).join(" ")}),a&&t().createElement("label",{style:{flexBasis:l||"auto"}},a),!w&&t().createElement("div",{className:"tyk-form-control__wrapper",style:{flexBasis:`calc(100% - ${l} - 20px)`}},t().createElement("div",{className:"tyk-form-control",ref:z},t().createElement("div",{className:$e,onClick:le,role:"none"},t().createElement(Or,{value:G,max:W,tags:c,tagSeparators:u,addTagOnBlur:h,allowCustomValues:x,placeholder:m,disabled:b,valueOverflow:s,renderValue:C,focus:ee,onMessage:xe,readOnly:w})),M&&t().createElement("div",{className:"tyk-combobox2__values-container-trigger"+(ne?" tyk-combobox2__values-container-trigger--expanded":""),role:"button",tabIndex:b?-1:0,onClick:ve,onKeyDown:ve},ke())),ee&&(!c||Ce.length>0)&&t().createElement(Pt,Fr(Dr({element:z,size:"matchElement",className:`tyk-combobox2__combobox-dropdown tyk-form-group ${se().join(" ")}`,ref:V,displayAxis:"vertical"},A),{infiniteScrollerConfig:L}),H?H(Ce,{tags:c,searchValue:J,activeItem:Q,listRef:U,sendMessage:xe}):t().createElement(Ar,{listRef:U,showSearch:I,values:Ce,tags:c,searchValue:J,activeItem:Q,onMessage:xe,renderListItem:$,selectAll:R})),y&&t().createElement("p",{className:"tyk-form-control__help-block"},y),(v&&"true"!==v&&"false"!==v||Boolean(ie))&&t().createElement("p",{className:"tyk-form-control__error-message"},v||ie)),w&&t().createElement("div",null,t().createElement(Or,{value:G,tags:c,renderValue:C,readOnly:w})))}Br.propTypes={allowCustomValues:r().bool,CustomListComponent:r().elementType,searchItem:r().func,renderValue:r().func,renderListItem:r().func,renderList:r().func,disabled:r().bool,readOnly:r().bool,error:r().string,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,max:r().number,multiple:r().bool,note:r().oneOfType([r().node,r().element,r().string]),onBeforeChange:r().func,onChange:r().func,placeholder:r().string,tags:r().bool,tagSeparators:r().arrayOf(r().string),addTagOnBlur:r().bool,theme:r().string,value:r().oneOfType([r().string,r().instanceOf(Array),r().instanceOf(Object)]),values:r().instanceOf(Array),floatingContainerConfig:r().instanceOf(Object),valueOverflow:r().oneOf(["single","multiple"]),expandMode:r().bool,infiniteScrollerConfig:r().instanceOf(Object),displayDropdownTrigger:r().bool,selectAll:r().oneOfType([r().bool,r().shape({label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),mode:r().oneOf(["select","unselect"]),show:r().oneOf(["always","notSameState"]),render:r().func})]),closeOnSelect:r().bool,showSearch:r().bool,required:r().bool,validateOnChange:r().func,wrapperClassName:r().string};const Wr=Br;function Hr(e,t){let n=e;if("string"==typeof e?n={id:e,name:e}:e.hasOwnProperty("name")||(n=Fr(Dr({},e),{name:e.id})),!t)return n;const o=t.find((e=>e.id===n.id));return o?Dr(Dr({},n),o):n}function jr(e,t){return e?Array.isArray(e)?e.map((e=>Hr(e,t))):[Hr(e,t)]:[]}const zr=require("flatpickr");var Vr=n.n(zr),Ur=Object.defineProperty,Gr=Object.defineProperties,Kr=Object.getOwnPropertyDescriptors,qr=Object.getOwnPropertySymbols,Yr=Object.prototype.hasOwnProperty,Jr=Object.prototype.propertyIsEnumerable,Xr=(e,t,n)=>t in e?Ur(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Qr({children:n,disabled:o,readOnly:i=!1,error:r,id:s,label:a,labelwidth:l,note:c,onClose:u,onChange:h,onOpen:d,theme:p,config:m={},value:f,wrapperClassName:y=""}){const[v,b]=(0,e.useState)(null),w=(0,e.useRef)(null),x=me(f),k=(0,e.useCallback)(((e,t)=>{if(!e)return!0;if(!Array.isArray(t))return e.getTime()!==t.getTime();let n=t;return e&&t.length&&e.length?(n=t.filter(((t,n)=>t.getTime()!==e[n].getTime())),n.length>0):t.length>0}),[]),C=(0,e.useCallback)((e=>{const t="range"===m.mode?e:e[0]||null;h&&("range"===m.mode?2===t.length&&k(x,t)&&h(t):h(t))}),[x,h,k]);(0,e.useEffect)((()=>{if(w.current&&!v){const t=Vr()(w.current,(e=((e,t)=>{for(var n in t||(t={}))Yr.call(t,n)&&Xr(e,n,t[n]);if(qr)for(var n of qr(t))Jr.call(t,n)&&Xr(e,n,t[n]);return e})({},m),Gr(e,Kr({defaultDate:f,onChange:C,onClose:u,onOpen:d}))));b(t)}var e;return()=>{v&&v.destroy()}}),[v]),(0,e.useEffect)((()=>{if(v){let e=f;"string"==typeof f?e=new Date(f):Array.isArray(f)&&(e=f.map((e=>new Date(e)))),k(x,e)&&(v.set("onChange",C),"range"===m.mode?e&&2===e.length&&v.setDate(e,!0):v.setDate(e,!0))}}),[x,f,v]);const $=["tyk-form-group","tyk-form-group--addon-right",y,...p?p.split(" ").map((e=>`tyk-form-group--${e}`)):[],l&&"tyk-form-group--label-has-width",r&&"has-error"].filter(Boolean).join(" "),S=(0,e.useCallback)((()=>{v&&v.open()}),[v]);return t().createElement(t().Fragment,null,(null==n?void 0:n.length)?n({openCalendar:S,ref:w}):t().createElement("div",{className:$},a?t().createElement("label",{htmlFor:s,style:l?{flexBasis:l}:{}},a):null,!i&&t().createElement("div",{className:"tyk-form-control__wrapper flatpickr",style:l?{flexBasis:`calc(100% - ${l} - 20px)`}:{}},t().createElement("div",{className:"tyk-input-group"},(()=>{let e={},n={};return(null==m?void 0:m.inline)&&(e={height:0,padding:0,width:0,visibility:"hidden"},n={display:"none"}),t().createElement(t().Fragment,null,t().createElement("input",{disabled:o,className:"tyk-form-control","data-input":!0,type:"date",ref:w,style:e}),t().createElement("div",{className:"tyk-input-group__addon",onClick:S,role:"button",onKeyUp:()=>{},tabIndex:0,style:n,"aria-label":"show calendar"},t().createElement(g,{type:"calendar"})))})()),c?t().createElement("p",{className:"tyk-form-control__help-block"},c):null,r&&"true"!==r&&"false"!==r?t().createElement("p",{className:"tyk-form-control__error-message"},r):null)),t().createElement("div",{className:"tyk-form-control--readonly"},i&&!f&&"-",i&&f&&Vr().formatDate(f,m.dateFormat||"d/m/Y")))}Qr.propTypes={config:r().instanceOf(Object),children:r().oneOfType([r().element,r().node,r().string,r().func]),disabled:r().bool,readOnly:r().bool,id:r().string,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,note:r().string,onChange:r().oneOfType([r().func,r().instanceOf(Array)]),onClose:r().oneOfType([r().func,r().instanceOf(Array)]),onOpen:r().oneOfType([r().func,r().instanceOf(Array)]),theme:r().string,error:r().string,value:r().oneOfType([r().instanceOf(Array),r().instanceOf(Object),r().string]),wrapperClassName:r().string};const Zr=Qr;function es(e){return es="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},es(e)}function ts(e,t){if(t.length1?"s":"")+" required, but only "+t.length+" present")}function ns(e){return ts(1,arguments),e instanceof Date||"object"===es(e)&&"[object Date]"===Object.prototype.toString.call(e)}function os(e){ts(1,arguments);var t=Object.prototype.toString.call(e);return e instanceof Date||"object"===es(e)&&"[object Date]"===t?new Date(e.getTime()):"number"==typeof e||"[object Number]"===t?new Date(e):("string"!=typeof e&&"[object String]"!==t||"undefined"==typeof console||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn((new Error).stack)),new Date(NaN))}function is(e){if(null===e||!0===e||!1===e)return NaN;var t=Number(e);return isNaN(t)?t:t<0?Math.ceil(t):Math.floor(t)}function rs(e){ts(1,arguments);var t=os(e),n=t.getUTCDay(),o=(n<1?7:0)+n-1;return t.setUTCDate(t.getUTCDate()-o),t.setUTCHours(0,0,0,0),t}function ss(e){ts(1,arguments);var t=os(e),n=t.getUTCFullYear(),o=new Date(0);o.setUTCFullYear(n+1,0,4),o.setUTCHours(0,0,0,0);var i=rs(o),r=new Date(0);r.setUTCFullYear(n,0,4),r.setUTCHours(0,0,0,0);var s=rs(r);return t.getTime()>=i.getTime()?n+1:t.getTime()>=s.getTime()?n:n-1}var as={};function ls(){return as}function cs(e,t){var n,o,i,r,s,a,l,c;ts(1,arguments);var u=ls(),h=is(null!==(n=null!==(o=null!==(i=null!==(r=null==t?void 0:t.weekStartsOn)&&void 0!==r?r:null==t||null===(s=t.locale)||void 0===s||null===(a=s.options)||void 0===a?void 0:a.weekStartsOn)&&void 0!==i?i:u.weekStartsOn)&&void 0!==o?o:null===(l=u.locale)||void 0===l||null===(c=l.options)||void 0===c?void 0:c.weekStartsOn)&&void 0!==n?n:0);if(!(h>=0&&h<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var d=os(e),p=d.getUTCDay(),g=(p=1&&p<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var g=new Date(0);g.setUTCFullYear(h+1,0,p),g.setUTCHours(0,0,0,0);var m=cs(g,t),f=new Date(0);f.setUTCFullYear(h,0,p),f.setUTCHours(0,0,0,0);var y=cs(f,t);return u.getTime()>=m.getTime()?h+1:u.getTime()>=y.getTime()?h:h-1}function hs(e,t){for(var n=e<0?"-":"",o=Math.abs(e).toString();o.length0?n:1-n;return hs("yy"===t?o%100:o,t.length)},ps=function(e,t){var n=e.getUTCMonth();return"M"===t?String(n+1):hs(n+1,2)},gs=function(e,t){return hs(e.getUTCDate(),t.length)},ms=function(e,t){return hs(e.getUTCHours()%12||12,t.length)},fs=function(e,t){return hs(e.getUTCHours(),t.length)},ys=function(e,t){return hs(e.getUTCMinutes(),t.length)},vs=function(e,t){return hs(e.getUTCSeconds(),t.length)},bs=function(e,t){var n=t.length,o=e.getUTCMilliseconds();return hs(Math.floor(o*Math.pow(10,n-3)),t.length)};var ws={G:function(e,t,n){var o=e.getUTCFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(o,{width:"abbreviated"});case"GGGGG":return n.era(o,{width:"narrow"});default:return n.era(o,{width:"wide"})}},y:function(e,t,n){if("yo"===t){var o=e.getUTCFullYear(),i=o>0?o:1-o;return n.ordinalNumber(i,{unit:"year"})}return ds(e,t)},Y:function(e,t,n,o){var i=us(e,o),r=i>0?i:1-i;return"YY"===t?hs(r%100,2):"Yo"===t?n.ordinalNumber(r,{unit:"year"}):hs(r,t.length)},R:function(e,t){return hs(ss(e),t.length)},u:function(e,t){return hs(e.getUTCFullYear(),t.length)},Q:function(e,t,n){var o=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"Q":return String(o);case"QQ":return hs(o,2);case"Qo":return n.ordinalNumber(o,{unit:"quarter"});case"QQQ":return n.quarter(o,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(o,{width:"narrow",context:"formatting"});default:return n.quarter(o,{width:"wide",context:"formatting"})}},q:function(e,t,n){var o=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"q":return String(o);case"qq":return hs(o,2);case"qo":return n.ordinalNumber(o,{unit:"quarter"});case"qqq":return n.quarter(o,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(o,{width:"narrow",context:"standalone"});default:return n.quarter(o,{width:"wide",context:"standalone"})}},M:function(e,t,n){var o=e.getUTCMonth();switch(t){case"M":case"MM":return ps(e,t);case"Mo":return n.ordinalNumber(o+1,{unit:"month"});case"MMM":return n.month(o,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(o,{width:"narrow",context:"formatting"});default:return n.month(o,{width:"wide",context:"formatting"})}},L:function(e,t,n){var o=e.getUTCMonth();switch(t){case"L":return String(o+1);case"LL":return hs(o+1,2);case"Lo":return n.ordinalNumber(o+1,{unit:"month"});case"LLL":return n.month(o,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(o,{width:"narrow",context:"standalone"});default:return n.month(o,{width:"wide",context:"standalone"})}},w:function(e,t,n,o){var i=function(e,t){ts(1,arguments);var n=os(e),o=cs(n,t).getTime()-function(e,t){var n,o,i,r,s,a,l,c;ts(1,arguments);var u=ls(),h=is(null!==(n=null!==(o=null!==(i=null!==(r=null==t?void 0:t.firstWeekContainsDate)&&void 0!==r?r:null==t||null===(s=t.locale)||void 0===s||null===(a=s.options)||void 0===a?void 0:a.firstWeekContainsDate)&&void 0!==i?i:u.firstWeekContainsDate)&&void 0!==o?o:null===(l=u.locale)||void 0===l||null===(c=l.options)||void 0===c?void 0:c.firstWeekContainsDate)&&void 0!==n?n:1),d=us(e,t),p=new Date(0);return p.setUTCFullYear(d,0,h),p.setUTCHours(0,0,0,0),cs(p,t)}(n,t).getTime();return Math.round(o/6048e5)+1}(e,o);return"wo"===t?n.ordinalNumber(i,{unit:"week"}):hs(i,t.length)},I:function(e,t,n){var o=function(e){ts(1,arguments);var t=os(e),n=rs(t).getTime()-function(e){ts(1,arguments);var t=ss(e),n=new Date(0);return n.setUTCFullYear(t,0,4),n.setUTCHours(0,0,0,0),rs(n)}(t).getTime();return Math.round(n/6048e5)+1}(e);return"Io"===t?n.ordinalNumber(o,{unit:"week"}):hs(o,t.length)},d:function(e,t,n){return"do"===t?n.ordinalNumber(e.getUTCDate(),{unit:"date"}):gs(e,t)},D:function(e,t,n){var o=function(e){ts(1,arguments);var t=os(e),n=t.getTime();t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0);var o=n-t.getTime();return Math.floor(o/864e5)+1}(e);return"Do"===t?n.ordinalNumber(o,{unit:"dayOfYear"}):hs(o,t.length)},E:function(e,t,n){var o=e.getUTCDay();switch(t){case"E":case"EE":case"EEE":return n.day(o,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(o,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(o,{width:"short",context:"formatting"});default:return n.day(o,{width:"wide",context:"formatting"})}},e:function(e,t,n,o){var i=e.getUTCDay(),r=(i-o.weekStartsOn+8)%7||7;switch(t){case"e":return String(r);case"ee":return hs(r,2);case"eo":return n.ordinalNumber(r,{unit:"day"});case"eee":return n.day(i,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(i,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(i,{width:"short",context:"formatting"});default:return n.day(i,{width:"wide",context:"formatting"})}},c:function(e,t,n,o){var i=e.getUTCDay(),r=(i-o.weekStartsOn+8)%7||7;switch(t){case"c":return String(r);case"cc":return hs(r,t.length);case"co":return n.ordinalNumber(r,{unit:"day"});case"ccc":return n.day(i,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(i,{width:"narrow",context:"standalone"});case"cccccc":return n.day(i,{width:"short",context:"standalone"});default:return n.day(i,{width:"wide",context:"standalone"})}},i:function(e,t,n){var o=e.getUTCDay(),i=0===o?7:o;switch(t){case"i":return String(i);case"ii":return hs(i,t.length);case"io":return n.ordinalNumber(i,{unit:"day"});case"iii":return n.day(o,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(o,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(o,{width:"short",context:"formatting"});default:return n.day(o,{width:"wide",context:"formatting"})}},a:function(e,t,n){var o=e.getUTCHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(o,{width:"narrow",context:"formatting"});default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},b:function(e,t,n){var o,i=e.getUTCHours();switch(o=12===i?"noon":0===i?"midnight":i/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(o,{width:"narrow",context:"formatting"});default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},B:function(e,t,n){var o,i=e.getUTCHours();switch(o=i>=17?"evening":i>=12?"afternoon":i>=4?"morning":"night",t){case"B":case"BB":case"BBB":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(o,{width:"narrow",context:"formatting"});default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},h:function(e,t,n){if("ho"===t){var o=e.getUTCHours()%12;return 0===o&&(o=12),n.ordinalNumber(o,{unit:"hour"})}return ms(e,t)},H:function(e,t,n){return"Ho"===t?n.ordinalNumber(e.getUTCHours(),{unit:"hour"}):fs(e,t)},K:function(e,t,n){var o=e.getUTCHours()%12;return"Ko"===t?n.ordinalNumber(o,{unit:"hour"}):hs(o,t.length)},k:function(e,t,n){var o=e.getUTCHours();return 0===o&&(o=24),"ko"===t?n.ordinalNumber(o,{unit:"hour"}):hs(o,t.length)},m:function(e,t,n){return"mo"===t?n.ordinalNumber(e.getUTCMinutes(),{unit:"minute"}):ys(e,t)},s:function(e,t,n){return"so"===t?n.ordinalNumber(e.getUTCSeconds(),{unit:"second"}):vs(e,t)},S:function(e,t){return bs(e,t)},X:function(e,t,n,o){var i=(o._originalDate||e).getTimezoneOffset();if(0===i)return"Z";switch(t){case"X":return ks(i);case"XXXX":case"XX":return Cs(i);default:return Cs(i,":")}},x:function(e,t,n,o){var i=(o._originalDate||e).getTimezoneOffset();switch(t){case"x":return ks(i);case"xxxx":case"xx":return Cs(i);default:return Cs(i,":")}},O:function(e,t,n,o){var i=(o._originalDate||e).getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+xs(i,":");default:return"GMT"+Cs(i,":")}},z:function(e,t,n,o){var i=(o._originalDate||e).getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+xs(i,":");default:return"GMT"+Cs(i,":")}},t:function(e,t,n,o){var i=o._originalDate||e;return hs(Math.floor(i.getTime()/1e3),t.length)},T:function(e,t,n,o){return hs((o._originalDate||e).getTime(),t.length)}};function xs(e,t){var n=e>0?"-":"+",o=Math.abs(e),i=Math.floor(o/60),r=o%60;if(0===r)return n+String(i);var s=t||"";return n+String(i)+s+hs(r,2)}function ks(e,t){return e%60==0?(e>0?"-":"+")+hs(Math.abs(e)/60,2):Cs(e,t)}function Cs(e,t){var n=t||"",o=e>0?"-":"+",i=Math.abs(e);return o+hs(Math.floor(i/60),2)+n+hs(i%60,2)}const $s=ws;var Ss=function(e,t){switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}},Es=function(e,t){switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}},Os={p:Es,P:function(e,t){var n,o=e.match(/(P+)(p+)?/)||[],i=o[1],r=o[2];if(!r)return Ss(e,t);switch(i){case"P":n=t.dateTime({width:"short"});break;case"PP":n=t.dateTime({width:"medium"});break;case"PPP":n=t.dateTime({width:"long"});break;default:n=t.dateTime({width:"full"})}return n.replace("{{date}}",Ss(i,t)).replace("{{time}}",Es(r,t))}};const Ts=Os;var As=["D","DD"],_s=["YY","YYYY"];function Ls(e,t,n){if("YYYY"===e)throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(t,"`) for formatting years to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("YY"===e)throw new RangeError("Use `yy` instead of `YY` (in `".concat(t,"`) for formatting years to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("D"===e)throw new RangeError("Use `d` instead of `D` (in `".concat(t,"`) for formatting days of the month to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("DD"===e)throw new RangeError("Use `dd` instead of `DD` (in `".concat(t,"`) for formatting days of the month to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"))}var Ms={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function Rs(e){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}var Ns,Is={date:Rs({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:Rs({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:Rs({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},Ps={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function Ds(e){return function(t,n){var o;if("formatting"===(null!=n&&n.context?String(n.context):"standalone")&&e.formattingValues){var i=e.defaultFormattingWidth||e.defaultWidth,r=null!=n&&n.width?String(n.width):i;o=e.formattingValues[r]||e.formattingValues[i]}else{var s=e.defaultWidth,a=null!=n&&n.width?String(n.width):e.defaultWidth;o=e.values[a]||e.values[s]}return o[e.argumentCallback?e.argumentCallback(t):t]}}function Fs(e){return function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=n.width,i=o&&e.matchPatterns[o]||e.matchPatterns[e.defaultMatchWidth],r=t.match(i);if(!r)return null;var s,a=r[0],l=o&&e.parsePatterns[o]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(l)?function(e,t){for(var n=0;n0?"in "+o:o+" ago":o},formatLong:Is,formatRelative:function(e,t,n,o){return Ps[e]},localize:{ordinalNumber:function(e,t){var n=Number(e),o=n%100;if(o>20||o<10)switch(o%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:Ds({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:Ds({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:function(e){return e-1}}),month:Ds({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:Ds({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:Ds({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(Ns={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:function(e){return parseInt(e,10)}},function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.match(Ns.matchPattern);if(!n)return null;var o=n[0],i=e.match(Ns.parsePattern);if(!i)return null;var r=Ns.valueCallback?Ns.valueCallback(i[0]):i[0];return{value:r=t.valueCallback?t.valueCallback(r):r,rest:e.slice(o.length)}}),era:Fs({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:Fs({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(e){return e+1}}),month:Fs({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:Fs({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:Fs({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}};var Ws=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Hs=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,js=/^'([^]*?)'?$/,zs=/''/g,Vs=/[a-zA-Z]/;function Us(e,t,n){var o,i,r,s,a,l,c,u,h,d,p,g,m,f,y,v,b,w;ts(2,arguments);var x=String(t),k=ls(),C=null!==(o=null!==(i=null==n?void 0:n.locale)&&void 0!==i?i:k.locale)&&void 0!==o?o:Bs,$=is(null!==(r=null!==(s=null!==(a=null!==(l=null==n?void 0:n.firstWeekContainsDate)&&void 0!==l?l:null==n||null===(c=n.locale)||void 0===c||null===(u=c.options)||void 0===u?void 0:u.firstWeekContainsDate)&&void 0!==a?a:k.firstWeekContainsDate)&&void 0!==s?s:null===(h=k.locale)||void 0===h||null===(d=h.options)||void 0===d?void 0:d.firstWeekContainsDate)&&void 0!==r?r:1);if(!($>=1&&$<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var S=is(null!==(p=null!==(g=null!==(m=null!==(f=null==n?void 0:n.weekStartsOn)&&void 0!==f?f:null==n||null===(y=n.locale)||void 0===y||null===(v=y.options)||void 0===v?void 0:v.weekStartsOn)&&void 0!==m?m:k.weekStartsOn)&&void 0!==g?g:null===(b=k.locale)||void 0===b||null===(w=b.options)||void 0===w?void 0:w.weekStartsOn)&&void 0!==p?p:0);if(!(S>=0&&S<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!C.localize)throw new RangeError("locale must contain localize property");if(!C.formatLong)throw new RangeError("locale must contain formatLong property");var E=os(e);if(!function(e){if(ts(1,arguments),!ns(e)&&"number"!=typeof e)return!1;var t=os(e);return!isNaN(Number(t))}(E))throw new RangeError("Invalid time value");var O=function(e){var t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),e.getTime()-t.getTime()}(E),T=function(e,t){return ts(2,arguments),function(e,t){ts(2,arguments);var n=os(e).getTime(),o=is(t);return new Date(n+o)}(e,-is(t))}(E,O),A={firstWeekContainsDate:$,weekStartsOn:S,locale:C,_originalDate:E};return x.match(Hs).map((function(e){var t=e[0];return"p"===t||"P"===t?(0,Ts[t])(e,C.formatLong):e})).join("").match(Ws).map((function(o){if("''"===o)return"'";var i,r,s=o[0];if("'"===s)return(r=(i=o).match(js))?r[1].replace(zs,"'"):i;var a,l=$s[s];if(l)return null!=n&&n.useAdditionalWeekYearTokens||(a=o,-1===_s.indexOf(a))||Ls(o,t,String(e)),null!=n&&n.useAdditionalDayOfYearTokens||!function(e){return-1!==As.indexOf(e)}(o)||Ls(o,t,String(e)),l(T,o,C.localize,A);if(s.match(Vs))throw new RangeError("Format string contains an unescaped latin alphabet character `"+s+"`");return o})).join("")}var Gs=n(590),Ks=n.n(Gs),qs=Object.defineProperty,Ys=Object.defineProperties,Js=Object.getOwnPropertyDescriptors,Xs=Object.getOwnPropertySymbols,Qs=Object.prototype.hasOwnProperty,Zs=Object.prototype.propertyIsEnumerable,ea=(e,t,n)=>t in e?qs(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ta=(e,t)=>{for(var n in t||(t={}))Qs.call(t,n)&&ea(e,n,t[n]);if(Xs)for(var n of Xs(t))Zs.call(t,n)&&ea(e,n,t[n]);return e};class na extends e.Component{static getMainFormValue(e){const t=new Array(e.length);return e.forEach(((e,n)=>{t[n]=e.props.value||void 0})),t}constructor(t){super(t);const{components:n}=t;this.submitButtonRef=(0,e.createRef)(),this.handleOnChange=this.handleOnChange.bind(this),this.submitForm=this.submitForm.bind(this),this.state={components:n,errors:{},mainError:null,mainFormValue:na.getMainFormValue(n),refs:[]}}componentDidMount(){const{addValueOnFieldChange:e,getMainFormButtonWidth:t}=this.props;this.createRefs(),t&&t(e?0:this.submitButtonRef.current.clientWidth)}static getDerivedStateFromProps(e,t){const n={},{components:o}=e,{components:i}=t;return Ks()(o,i)||Ks()(na.getMainFormValue(o),na.getMainFormValue(i))||(n.mainFormValue=na.getMainFormValue(o),n.components=o),n}handleOnChange(e,t,n){const{addValueOnFieldChange:o}=this.props;let i=this.state;i=ta(ta({},i),this.validateValue(n,e.props)),i.errors[e.props.name]||(i.mainFormValue[t]=n,e.props.onChange&&e.props.onChange(n)),this.setState((e=>ta(ta({},e),i)),(()=>{o&&this.submitForm()}))}getFormCssClasses(){const{noLabels:e}=this.props,t=["tyk-editable-list__form"];return e&&t.push("no-labels"),t.join(" ")}getButtonClassName(){const{buttonStyle:e,displayType:t}=this.props,n=[];return e&&n.push(e),t&&n.push(t),n.join(" ")}getComponentsError(e){const{error:t,errors:n,mainError:o}=this.state;return t||o?n[e.props.name]="true":t||o||"true"!==n[e.props.name]||delete n[e.props.name],n[e.props.name]?n[e.props.name].toString():void 0}createRefs(){const{components:t}=this.props,n=[];t.forEach((()=>{n.push((0,e.createRef)())})),this.setState({refs:n})}validateValue(e,t){const{mainError:n,errors:o}=this.state,{error:i,errorPersist:r}=this.props,s=t.validate?Object.keys(t.validate):[],a={errors:i||n?{}:ta({},o)};let l=!0;if(r)return a;for(const n of s)if((0,t.validate[n])(e)){a.errors[t.name]=t.validationmessages[n],l=!1;break}return l&&delete a.errors[t.name],a.mainError=null,a}hasMainFormErrors(e){const{components:t,errorPersist:n}=this.props,{mainFormValue:o}=this.state,i={errors:ta({},e)};return(!n||-1!==o.indexOf(void 0))&&(Object.keys(i.errors).length>0||(t.forEach(((e,t)=>{i.errors=ta(ta({},i.errors),this.validateValue(o[t],e.props).errors)})),Object.keys(i.errors).length>0))}resetForm(){const{refs:e}=this.state,{components:t}=this.props;e.forEach((e=>{var t;(null==(t=e.current)?void 0:t.reset)&&e.current.reset()})),this.setState({errors:{},mainError:null,mainFormValue:na.getMainFormValue(t)})}showMainError(e){this.setState({mainError:e})}submitForm(){const{errors:e,mainFormValue:t}=this.state,{errorPersist:n,onSubmit:o,validate:i,validationmessage:r}=this.props;n&&(o(t),this.resetForm()),0===Object.keys(e).length&&o&&"function"==typeof o&&(i&&i(t)?this.showMainError(r):(o(t),this.resetForm()))}render(){const{addValueOnFieldChange:e,components:n,buttonName:o,disabled:i,displayType:r,error:s}=this.props,{mainError:a,refs:l,errors:c}=this.state;return t().createElement("div",null,t().createElement("div",{className:this.getFormCssClasses()},t().createElement(yi,null,n.map(((e,n)=>{const o=e.name;console.log("ComponentName",o);const s=e.props,{onChange:a,value:c}=s,u=((e,t)=>{var n={};for(var o in e)Qs.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Xs)for(var o of Xs(e))t.indexOf(o)<0&&Zs.call(e,o)&&(n[o]=e[o]);return n})(s,["onChange","value"]);return t().createElement(li,{size:`md-${e.size||"12"} lg-${e.size||"12"}`,key:e.props.name},t().createElement(o,(h=ta({disabled:i||e.props.disabled,onChange:this.handleOnChange.bind(this,e,n)},u),d={label:"inline"===r?"":e.props.label,error:this.getComponentsError(e),ref:l[n],value:c},Ys(h,Js(d)))));var h,d}))),e?null:t().createElement("span",{className:this.getButtonClassName(),ref:this.submitButtonRef},t().createElement(U,{disabled:this.hasMainFormErrors(c),className:"tyk-editable-list__submit-btn",onClick:this.submitForm,theme:"default",type:"button",size:"inline"===r?"sm":"md"},o||"ADD"))),s||a?t().createElement("div",{className:"tyk-editable-list-main-error"},t().createElement("p",{className:"error-message"},s||a)):null)}}na.propTypes={addValueOnFieldChange:r().bool,noLabels:r().bool,buttonName:r().string,buttonStyle:r().string,components:r().instanceOf(Array),displayType:r().string,disabled:r().bool,getMainFormButtonWidth:r().func,error:r().string,errorPersist:r().bool,onSubmit:r().func,validate:r().func,validationmessage:r().string};const oa=na;var ia=Object.defineProperty,ra=Object.getOwnPropertySymbols,sa=Object.prototype.hasOwnProperty,aa=Object.prototype.propertyIsEnumerable,la=(e,t,n)=>t in e?ia(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ca=(e,t)=>{for(var n in t||(t={}))sa.call(t,n)&&la(e,n,t[n]);if(ra)for(var n of ra(t))aa.call(t,n)&&la(e,n,t[n]);return e};class ua extends e.Component{static getItemListValue(e){let t=null;return"string"==typeof e&&(t=e),"[object Object]"===Object.prototype.toString.call(e)&&(t=e.name),ns(e)&&(t=Us(e,"dd/MM/yyyy")),t}static getListItemCssClass(e){const t=[];return"inline"===e&&t.push("tyk-editable-list-item--inline"),t.join(" ")}constructor(t){super(t);const{value:n}=this.props;this.state={initialValue:n||"",value:n||[],buttonWidth:0},this.startIndex=1,this.handleFormSubmit=this.handleFormSubmit.bind(this),this.getMainFormButtonWidth=this.getMainFormButtonWidth.bind(this),this.dropdownListItemRef=(0,e.createRef)()}static getDerivedStateFromProps(e,t){const n={};return e.value&&JSON.stringify(e.value)!==JSON.stringify(t.initialValue)&&(n.value=e.value||[],n.initialValue=e.value||""),n.value?n:null}handleFormSubmit(e){const t=this.addValues(e);this.setState((e=>ca(ca({},e),t)),(()=>{this.triggerOnChange(t.value.length-1,null,e)}))}handleItemUpdate(e,t){let n;this.setState((o=>{const i=ca({},o);return n=(0,pe.fromJS)(i.value[e].value).toJS(),i.value[e].value=t,i.value[e].editMode=!1,i}),(()=>{this.triggerOnChange(e,n,t)}))}handleChildrenOnChange(e,t){let n;this.setState((o=>{const i=ca({},o);return n=(0,pe.fromJS)(i.value[e].children).toJS(),i.value[e].children=t,i}),(()=>{this.triggerOnChange(e,n,t)}))}getListItemsCssClass(e){const{config:t}=this.props,n=["tyk-editable-list-items"];return n.push(t.displayType||"table"),"inline"===e&&n.push("tyk-editable-list-items--inline"),n.join(" ")}getFormInputKey(){return this.startIndex+=1,this.startIndex}getListItemText(e){const{config:n}=this.props;let o=null;switch(n.displayType){case"list":case"inline":o=e.value.reduce(((t,n,o)=>{const i=ua.getItemListValue(n);let r=", ";return o===e.value.length-1&&(r=""),t+i+r}),"");break;default:o=t().createElement(yi,null,n.components.map(((n,o)=>t().createElement(li,{key:this.getFormInputKey(),size:`md-${n.size} lg-${n.size}`},ua.getItemListValue(e.value[o])))))}return o}getMainFormButtonWidth(e){this.setState({buttonWidth:e})}setItemEditMode(e){const t=this.closeListItems();this.setState((n=>{const o=ca({},n);return o.value=t,o.value[e].editMode=!o.value[e].editMode,o}))}isInList(e,t){const{value:n}=this.state;let o=!1;return n.forEach(((n,i)=>{JSON.stringify(n.value)===JSON.stringify(t)&&(o=!(e>=0&&i===e))})),o}addValues(e){const{value:t}=this.state,{config:n}=this.props,o={editMode:!1,value:e},i={value:t.slice(0)};return n.children&&(o.children=[]),i.value.push(o),i}removeListItem(e){let t;this.setState((n=>{const o=n.value.slice(0);return t=o.splice(e,1),{value:o}}),(()=>{this.triggerOnChange(e,t,null)}))}closeListItems(){const{value:e}=this.state;return e.map((e=>{const t=ca({},e);return t.editMode?(t.editMode=!1,t):t}))}triggerOnChange(e,t,n){const{onChange:o}=this.props,{value:i}=this.state;o&&"function"==typeof o&&o(i.length?i:null,e,t,n)}genListItem(e,n){var o;const{config:i,disabled:r}=this.props,{buttonWidth:s,value:a}=this.state,l=(0,pe.fromJS)(i.components).toJS();return e.value.forEach(((e,t)=>{l[t].props.value=e})),t().createElement("li",{key:n,className:ua.getListItemCssClass(i.displayType),ref:this.dropdownListItemRef},t().createElement("div",{className:`tyk-editable-list-item__text ${i.displayType||"table"}${e.editMode?" edit-mode-wrapper":""}`},e.editMode?t().createElement(t().Fragment,null,t().createElement(oa,{buttonName:"Update",noLabels:i.noLabels,disabled:r,displayType:i.displayType,components:l,onSubmit:this.handleItemUpdate.bind(this,n),validate:this.isInList.bind(this,n),validationmessage:"This value is already in the list"}),t().createElement("button",{type:"button",className:"tyk-editable-list-action__button on-edit",onClick:this.removeListItem.bind(this,n),"aria-label":"remove"},t().createElement(g,{type:"trash"}))):t().createElement(t().Fragment,null,this.getListItemText(e,n),t().createElement("div",{className:"tyk-editable-list-item__controls",style:{display:"block",width:"inline"===i.displayType?"auto":`${s+60}px`}},t().createElement("button",{disabled:r,type:"button",className:"tyk-editable-list-action__button",onClick:this.setItemEditMode.bind(this,n),"aria-label":"edit"},t().createElement(g,{type:"edit"})),t().createElement("button",{disabled:r,type:"button",className:"tyk-editable-list-action__button",onClick:this.removeListItem.bind(this,n),"aria-label":"remove"},t().createElement(g,{type:"trash"}))))),i.children?t().createElement(ua,{disabled:r,onChange:this.handleChildrenOnChange.bind(this,n),config:i.children.config,value:(null==(o=a[n])?void 0:o.children)||[]}):null)}genList(){const{config:e}=this.props,{buttonWidth:n,value:o}=this.state;return o&&0!==o.length?t().createElement(t().Fragment,null,"table"!==e.displayType&&e.displayType?null:t().createElement("div",{className:"tyk-editable-list__header",style:{paddingRight:`${n+60}px`}},t().createElement(yi,null,e.components.map(((e,n)=>t().createElement(li,{key:e.props.label||n,size:`md-${e.size||12} lg-${e.size||12}`},e.props.label))))),t().createElement("ul",{className:this.getListItemsCssClass(e.displayType)},o.map(((e,t)=>this.genListItem(e,t))))):null}render(){const{addValueOnFieldChange:e,config:n,error:o,disabled:i,label:r}=this.props,s=document.querySelector(n.appendTo)||document.querySelector("body");return t().createElement("div",{className:"tyk-editable-list"},r?t().createElement("label",null,r):null,t().createElement(oa,{addValueOnFieldChange:e,components:n.components,buttonName:n.formButtonTitle,buttonStyle:n.formButtonStyle,disabled:i,error:o,errorPersist:!!o,noLabels:n.noLabels,onSubmit:this.handleFormSubmit,validate:this.isInList.bind(this,-1),validationmessage:"This value is already in the list",getMainFormButtonWidth:this.getMainFormButtonWidth}),n.appendTo?dt().createPortal(this.genList(),s):this.genList())}}ua.propTypes={addValueOnFieldChange:r().bool,disabled:r().bool,error:r().string,config:r().instanceOf(Object),onChange:r().func,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),value:r().oneOfType([r().instanceOf(Array),r().instanceOf(Object)])};const ha=ua;function da({label:e,addButtonName:n,onAddRow:o,disabled:i,readOnly:r}){return t().createElement("div",{className:"editable-list__header"},e?t().createElement("label",null,e):null,!i&&!r&&t().createElement(U,{theme:"primary rounded-corners",onClick:o},n||"Add"))}da.propTypes={disabled:r().bool,readOnly:r().bool,onAddRow:r().func,addButtonName:r().string,label:r().oneOfType([r().string,r().element,r().node])};const pa=da;function ga({fields:e,readOnly:n}){return t().createElement("li",{className:"editable-list__item editable-list__item-header"},e.map((e=>{var n,o;return t().createElement("div",{key:(null==(n=null==e?void 0:e.props)?void 0:n.label)||JSON.stringify(e),className:`editable-list__item-cell editable-list__item--size-${(null==e?void 0:e.size)||12}`},null==(o=null==e?void 0:e.props)?void 0:o.label)})),t().createElement("div",{className:`editable-list__item-cell editable-list__item-action ${n&&"editable-list__item-action--read-only"}`},"Delete"))}ga.propTypes={fields:r().instanceOf(Array),readOnly:r().bool};const ma=ga;var fa=Object.defineProperty,ya=Object.defineProperties,va=Object.getOwnPropertyDescriptors,ba=Object.getOwnPropertySymbols,wa=Object.prototype.hasOwnProperty,xa=Object.prototype.propertyIsEnumerable,ka=(e,t,n)=>t in e?fa(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Ca({fields:e,disabled:n,readOnly:o,errors:i,components:r,onChange:s,onDelete:a,value:l,rowIndex:c}){return t().createElement("li",{className:"editable-list__item"},r.map(((r,a)=>{var u,h,d;const p=e[a],g="function"==typeof p?p(c,a):p;return t().createElement("div",{key:`${c}-${a}`,className:`editable-list__item-cell editable-list__item--size-${(null==(u=e[a])?void 0:u.size)||12}`},t().createElement(r,(m=((e,t)=>{for(var n in t||(t={}))wa.call(t,n)&&ka(e,n,t[n]);if(ba)for(var n of ba(t))xa.call(t,n)&&ka(e,n,t[n]);return e})({},null==g?void 0:g.props),f={label:"",value:l[a],onChange:s.bind(null,a),error:null==i?void 0:i[a],disabled:n||(null==(h=null==g?void 0:g.props)?void 0:h.disabled),readOnly:o||(null==(d=null==g?void 0:g.props)?void 0:d.readOnly)},ya(m,va(f)))));var m,f})),t().createElement("div",{className:`editable-list__item-cell editable-list__item-action ${o&&"editable-list__item-action--read-only"}`},t().createElement(U,{iconOnly:!0,iconType:"trash-alt",theme:"primary-link",onClick:a,disabled:o||n})))}Ca.propTypes={disabled:r().bool,readOnly:r().bool,rowIndex:r().oneOfType([r().string,r().number]),fields:r().instanceOf(Array),errors:r().instanceOf(Array),components:r().instanceOf(Array),value:r().instanceOf(Array),onChange:r().func,onDelete:r().func};const $a=Ca;var Sa=Object.defineProperty,Ea=Object.defineProperties,Oa=Object.getOwnPropertyDescriptors,Ta=Object.getOwnPropertySymbols,Aa=Object.prototype.hasOwnProperty,_a=Object.prototype.propertyIsEnumerable,La=(e,t,n)=>t in e?Sa(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;let Ma=1;function Ra({addButtonName:n,disabled:o,readOnly:i,fields:r,label:s,error:a,value:l=[],onChange:c=(()=>{}),hideOnEmpty:u=!0,wrapperClassName:h=""}){const[d,p]=(0,e.useState)(null),g=(e,t,n,o)=>{var i;const s=l?[...l]:[];if(l){const o=[...s[e]];o[t]=n,s[e]=o,s[e].id=l[e].id}else s[e]=[...new Array(r.length)],s[e][t]=n;if((null==(i=null==d?void 0:d[e])?void 0:i[t])&&o){const n=[...d],o=[...n[e]];o[t]=null,n[e]=o,p(n)}c(s)},m=(0,e.useMemo)((()=>r.map((n=>{const o="function"==typeof n?n():n;return i=(null==o?void 0:o.component)||null,n=>{var o=n,{onChange:r,validate:s,error:a}=o,l=((e,t)=>{var n={};for(var o in e)Aa.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ta)for(var o of Ta(e))t.indexOf(o)<0&&_a.call(e,o)&&(n[o]=e[o]);return n})(o,["onChange","validate","error"]);const[c,u]=(0,e.useState)(null),h=(0,e.useCallback)((e=>{const t=(null==e?void 0:e.target)?["radio","checkbox"].includes(e.target.type)?e.target.checked:null==e?void 0:e.target.value:e;let n=!0;if(s&&"function"==typeof s){const e=s(t);n=!e,u(e)}r(t,n)}),[s,r]);return t().createElement(i,(d=((e,t)=>{for(var n in t||(t={}))Aa.call(t,n)&&La(e,n,t[n]);if(Ta)for(var n of Ta(t))_a.call(t,n)&&La(e,n,t[n]);return e})({},l),Ea(d,Oa({onChange:h,error:c||a}))));var d};var i}))),[]),f=e=>{if(!l)return;const t=[...l];t.splice(e,1),c(t)};return t().createElement("div",{className:`editable-list__wrapper tyk-form-group tyk-form-group--default ${a?"has-error":""} ${h}`},t().createElement(pa,{disabled:o,readOnly:i,label:s,addButtonName:n,onAddRow:()=>{const e=((e,t)=>{var n;return null==(n=t||[[void 0,void 0]])?void 0:n.map((t=>null==t?void 0:t.map(((t,n)=>{var o,i;return null==(i=(o=e[n].props).validate)?void 0:i.call(o,t)}))))})(r,l);if((e=>{var t;return Boolean(null==(t=null==e?void 0:e.flat())?void 0:t.filter(Boolean).length)})(e))return void p(e);const t=[...new Array(r.length)];t.id="row-"+Ma++,c([...l,t])}}),(null==l?void 0:l.length)||!u?t().createElement("ul",{className:"editable-list__list"},(l||[[]]).map(((e,n)=>t().createElement($a,{key:e.id||n,rowIndex:n,disabled:o,readOnly:i,fields:r,onChange:g.bind(null,n),onDelete:f.bind(null,n),value:e,errors:null==d?void 0:d[n],components:m}))),t().createElement(ma,{fields:r,readOnly:i})):null,a&&"true"!==a&&"false"!==a?t().createElement("p",{className:"tyk-form-control__error-message"},a):null)}Ra.propTypes={disabled:r().bool,readOnly:r().bool,addButtonName:r().string,label:r().oneOfType([r().string,r().element,r().node]),fields:r().instanceOf(Array),onChange:r().func,value:r().oneOfType([r().instanceOf(Object),r().instanceOf(Array)]),error:r().string,hideOnEmpty:r().bool,wrapperClassName:r().string};const Na=Ra;var Ia=Object.defineProperty,Pa=Object.defineProperties,Da=Object.getOwnPropertyDescriptors,Fa=Object.getOwnPropertySymbols,Ba=Object.prototype.hasOwnProperty,Wa=Object.prototype.propertyIsEnumerable,Ha=(e,t,n)=>t in e?Ia(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function ja(n){var o=n,{error:i,theme:r,labelwidth:s,wrapperClassName:a="",id:l,label:c,note:u,accept:h,value:d,onChange:p}=o,m=((e,t)=>{var n={};for(var o in e)Ba.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Fa)for(var o of Fa(e))t.indexOf(o)<0&&Wa.call(e,o)&&(n[o]=e[o]);return n})(o,["error","theme","labelwidth","wrapperClassName","id","label","note","accept","value","onChange"]);const f=(0,e.useRef)();return t().createElement("div",{className:function(){const e=[a,"tyk-form-group"],t=r?r.split(" "):[];return t.length&&t.forEach((t=>{e.push(`tyk-form-group--${t}`)})),s&&e.push("tyk-form-group--label-has-width"),i&&e.push("has-error"),e.join(" ")}()},c?t().createElement("label",{htmlFor:l,style:function(){const e={};return s&&(e.flexBasis=s),e}()},c):null,t().createElement("div",{className:"tyk-form-control__wrapper"},t().createElement("div",{className:"tyk-file-input__wrapper",style:function(){const e={};return s&&(e.flexBasis=`calc(100% - ${s} - 20px)`),e}()},t().createElement("input",(y=((e,t)=>{for(var n in t||(t={}))Ba.call(t,n)&&Ha(e,n,t[n]);if(Fa)for(var n of Fa(t))Wa.call(t,n)&&Ha(e,n,t[n]);return e})({accept:h,className:"tyk-form-control"},m),Pa(y,Da({onChange:function(e){p(e.target.files)},ref:f,type:"file"})))),f.current&&f.current.files.length>0?t().createElement("button",{onClick:function(){f.current.value="",p("")},type:"button","aria-label":"clear value"},t().createElement(g,{type:"times"})):null),u?t().createElement("p",{className:"tyk-form-control__help-block"},u):null),i&&"true"!==i&&"false"!==i?t().createElement("p",{className:"tyk-form-control__error-message"},i):null);var y}ja.propTypes={accept:r().string,disabled:r().bool,id:r().string,error:r().oneOfType([r().string,r().bool]),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,name:r().string,note:r().string,onChange:r().func,placeholder:r().string,theme:r().string,value:r().instanceOf(Object),wrapperClassName:r().string};const za=ja;var Va=Object.defineProperty,Ua=Object.defineProperties,Ga=Object.getOwnPropertyDescriptors,Ka=Object.getOwnPropertySymbols,qa=Object.prototype.hasOwnProperty,Ya=Object.prototype.propertyIsEnumerable,Ja=(e,t,n)=>t in e?Va(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Xa extends e.Component{static getAddon(e){return t().createElement("div",{className:"tyk-input-group__addon"},e)}constructor(e){super(e);const{value:t}=this.props;this.state={initValue:t,stateValue:t},this.handleOnChange=this.handleOnChange.bind(this)}componentDidUpdate(e){const{isfield:t,value:n,onChange:o}=this.props;t||e.value===n||this.setState({stateValue:n},(()=>{o&&o(n)}))}handleOnChange(e){const{onChange:t,isfield:n}=this.props,o=e.target.value;n?t(o):this.setState({stateValue:o},(()=>{t&&t(o)}))}getLabelStyles(){const{labelwidth:e}=this.props,t={};return e&&(t.flexBasis=e),t}getNonLabelWidth(){const{labelwidth:e}=this.props,t={};return e&&(t.flexBasis=`calc(100% - ${e} - 20px)`),t}getInputError(){const{error:e}=this.props;return e&&"true"!==e&&"false"!==e?t().createElement("p",{className:"tyk-form-control__error-message"},e):null}getCssClasses(){const{error:e,theme:t,labelwidth:n,inputgroupaddonleft:o,inputgroupaddonright:i}=this.props,r=["tyk-form-group"],s=t?t.split(" "):[];return s.length&&s.forEach((e=>{r.push(`tyk-form-group--${e}`)})),o&&r.push("tyk-form-group--addon-left"),i&&r.push("tyk-form-group--addon-right"),n&&r.push("tyk-form-group--label-has-width"),e&&r.push("has-error"),r.join(" ")}getInputGroupAddon(){const{inputgroupaddonleft:e,inputgroupaddonright:n}=this.props;return t().createElement("div",{className:"tyk-input-group"},e?Xa.getAddon(e):null,this.getInputComponent(),n?Xa.getAddon(n):null)}getInputComponent(){const e=this.props,{isfield:n,onChange:o,value:i}=e,r=((e,t)=>{var n={};for(var o in e)qa.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ka)for(var o of Ka(e))t.indexOf(o)<0&&Ya.call(e,o)&&(n[o]=e[o]);return n})(e,["isfield","onChange","value"]),{stateValue:s}=this.state;return t().createElement("input",(a=((e,t)=>{for(var n in t||(t={}))qa.call(t,n)&&Ja(e,n,t[n]);if(Ka)for(var n of Ka(t))Ya.call(t,n)&&Ja(e,n,t[n]);return e})({autoComplete:"off",className:"tyk-form-control"},r),l={onChange:this.handleOnChange,value:n?i:s},Ua(a,Ga(l))));var a,l}reset(){const{initValue:e}=this.state;this.setState({stateValue:e})}render(){const{label:e,id:n,inputgroupaddonleft:o,inputgroupaddonright:i,note:r,readOnly:s,value:a}=this.props;return t().createElement("div",{className:this.getCssClasses()},e?t().createElement("label",{htmlFor:n,style:this.getLabelStyles()},e):null,!s&&t().createElement("div",{className:"tyk-form-control__wrapper",style:this.getNonLabelWidth()},o||i?this.getInputGroupAddon():this.getInputComponent(),r?t().createElement("p",{className:"tyk-form-control__help-block"},r):null,this.getInputError()),s&&t().createElement("div",{className:"tyk-form-control--readonly"},a||"-"))}}Xa.propTypes={disabled:r().bool,readOnly:r().bool,id:r().string,isfield:r().bool,error:r().oneOfType([r().string,r().bool]),inputgroupaddonleft:r().oneOfType([r().element,r().node,r().string]),inputgroupaddonright:r().oneOfType([r().element,r().node,r().string]),label:r().oneOfType([r().string,r().element,r().node]),labelwidth:r().string,name:r().string,note:r().string,onChange:r().func,placeholder:r().string,theme:r().string,value:r().oneOfType([r().number,r().string])};const Qa=Xa;var Za=Object.defineProperty,el=Object.defineProperties,tl=Object.getOwnPropertyDescriptors,nl=Object.getOwnPropertySymbols,ol=Object.prototype.hasOwnProperty,il=Object.prototype.propertyIsEnumerable,rl=(e,t,n)=>t in e?Za(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,sl=(e,t)=>{for(var n in t||(t={}))ol.call(t,n)&&rl(e,n,t[n]);if(nl)for(var n of nl(t))il.call(t,n)&&rl(e,n,t[n]);return e};function al(n,o){var i=n,{error:r,onChange:s,readOnly:a,id:l,inputgroupaddonleft:c,inputgroupaddonright:u,label:h,labelwidth:d,note:p,theme:g,value:m,wrapperClassName:f=""}=i,y=((e,t)=>{var n={};for(var o in e)ol.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&nl)for(var o of nl(e))t.indexOf(o)<0&&il.call(e,o)&&(n[o]=e[o]);return n})(i,["error","onChange","readOnly","id","inputgroupaddonleft","inputgroupaddonright","label","labelwidth","note","theme","value","wrapperClassName"]);const v=(0,e.useRef)();(0,e.useImperativeHandle)(o,(()=>({focus:()=>{v.current.focus()}})));const b=e=>t().createElement("div",{className:"tyk-input-group__addon"},e),w=e=>{s(e,e.target.value)},x=()=>{return t().createElement("input",(e=sl({autoComplete:"off",className:"tyk-form-control"},y),el(e,tl({onChange:w,value:m,ref:v}))));var e};return t().createElement("div",{className:(()=>{const e=[f,"tyk-form-group"],t=g?g.split(" "):[];return t.length&&t.forEach((t=>{e.push(`tyk-form-group--${t}`)})),c&&e.push("tyk-form-group--addon-left"),u&&e.push("tyk-form-group--addon-right"),d&&e.push("tyk-form-group--label-has-width"),r&&e.push("has-error"),e.join(" ")})()},h?t().createElement("label",{htmlFor:l,style:sl({},d&&{flexBasis:d})},h):null,!a&&t().createElement("div",{className:"tyk-form-control__wrapper",style:sl({},d&&{flexBasis:`calc(100% - ${d} - 20px)`})},c||u?t().createElement("div",{className:"tyk-input-group"},c?b(c):null,x(),u?b(u):null):x(),p?t().createElement("p",{className:"tyk-form-control__help-block"},p):null,r&&"true"!==r&&"false"!==r?t().createElement("p",{className:"tyk-form-control__error-message"},r):null),a&&t().createElement("div",{className:"tyk-form-control--readonly"},m||"-"))}al.propTypes={disabled:r().bool,readOnly:r().bool,id:r().string,error:r().oneOfType([r().string,r().bool]),inputgroupaddonleft:r().oneOfType([r().element,r().node,r().string]),inputgroupaddonright:r().oneOfType([r().element,r().node,r().string]),label:r().oneOfType([r().string,r().element,r().node]),labelwidth:r().string,name:r().string,note:r().string,onChange:r().func,placeholder:r().string,theme:r().string,value:r().oneOfType([r().number,r().string]),wrapperClassName:r().string};const ll=(0,e.forwardRef)(al),cl=(0,e.createContext)();function ul({item:n,itemType:o,searchValue:i,onChange:r}){const s=(0,e.useCallback)((e=>(null==e?void 0:e.length)>0?e.some((e=>{var t;return null==(t=n[e])?void 0:t.includes(i)})):JSON.stringify(n).includes(i)),[n,i]),a=(0,e.useCallback)((()=>{r(n)}),[r,n]);return t().createElement(cl.Consumer,null,(e=>s(e.fieldsToSearchOn)?t().createElement("li",null,t().createElement("div",null,t().createElement("span",{className:"tyk-multiselect-item__name"},e.itemDisplayTemplate?e.itemDisplayTemplate(n):JSON.stringify(n)),t().createElement("span",{className:"tyk-multiselect-item__controls"},t().createElement(U,{iconType:"normal"===o?"plus":"minus",iconOnly:!0,onClick:a,disabled:e.disabled||e.maxSelections&&e.maxSelections===e.nrSelectedItems&&"normal"===o}),t().createElement(U,{iconType:e.opened[n.id]?"chevron-up":"chevron-down",iconOnly:!0,onClick:()=>e.onGetItemDetails(n)}))),n.details?t().createElement(R,{collapsed:!e.opened[n.id],className:"tyk-multiselect-item__details"},((e,t)=>e.detailsDisplayTemplate?e.detailsDisplayTemplate(t):JSON.stringify(t.details))(e,n)):((e,n)=>{const{opened:o}=e;return o[n.id]?t().createElement(ye,{position:"relative"}):null})(e,n)):null))}ul.propTypes={item:r().instanceOf(Object),itemType:r().string,searchValue:r().string,onChange:r().func};const hl=ul;function dl({inputPlaceholder:n,noItemsMessage:o,items:i,onCustomSearch:r,onChange:s,customSearch:a,panelType:l,serverLoad:c,itemsPageNumber:u,itemsNrPages:h,loadMoreItems:d}){const[p,m]=(0,e.useState)(""),f=(0,e.useRef)(0),y=(0,e.useRef)(),v=(0,e.useCallback)((e=>{r?r(e):m(e)}),[r]),b=(0,e.useCallback)((e=>{let t=structuredClone(i);t=t.filter((t=>e.id!==t.id)),s(t,e)}),[i]);function w(){return t().createElement("ul",{className:"tyk-multiselect__list"+(c?"":" tyk-multiselect__list--scroll"),ref:y},i.map((e=>t().createElement(hl,{itemType:l,key:(f.current+=1,f.current),onChange:b,searchValue:a?"":p,item:e}))))}return t().createElement("div",{className:"tyk-multiselect__panel"},t().createElement(Qa,{inputgroupaddonleft:t().createElement(g,{type:"search"}),name:"search",onChange:v,placeholder:n,value:p}),i.length?c?t().createElement(At,{refChild:y,hasMore:h>u,loadMore:d,pageNumber:u},w()):w():t().createElement(be,{theme:"info"},o))}dl.propTypes={customSearch:r().bool,onCustomSearch:r().func,panelType:r().string,onChange:r().func,items:r().instanceOf(Array),itemsPageNumber:r().number,itemsNrPages:r().number,inputPlaceholder:r().string,loadMoreItems:r().func,noItemsMessage:r().string,serverLoad:r().bool};const pl=dl;var gl=Object.defineProperty,ml=Object.defineProperties,fl=Object.getOwnPropertyDescriptors,yl=Object.getOwnPropertySymbols,vl=Object.prototype.hasOwnProperty,bl=Object.prototype.propertyIsEnumerable,wl=(e,t,n)=>t in e?gl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const xl=(e,t)=>t.filter((t=>!e.find((e=>e.id===t.id))));function kl({customSearch:n,entityNamePlural:o,disabled:i,error:r,getItemDetails:s,itemDisplayTemplate:a,detailsDisplayTemplate:l,fieldsToSearchOn:c,items:u,itemsPageNumber:h,itemsNrPages:d,loadMoreItems:p,maxSelections:g,note:m,value:f,onChange:y,wrapperClassName:v=""}){const[b,w]=(0,e.useState)({}),x=(0,e.useCallback)((e=>{w((t=>{return n=((e,t)=>{for(var n in t||(t={}))vl.call(t,n)&&wl(e,n,t[n]);if(yl)for(var n of yl(t))bl.call(t,n)&&wl(e,n,t[n]);return e})({},t),o={[e.id]:!t[e.id]},ml(n,fl(o));var n,o})),s&&s(e)}),[s]),k=(0,e.useCallback)((()=>[v,"tyk-multiselect",r&&"has-error"].filter(Boolean).join(" ")),[v,r]),C=(0,e.useCallback)(((e,t)=>{const n=structuredClone(f);n.unshift(t),y(n,t,"added")}),[f]),$=(0,e.useCallback)(((e,t)=>{y(e,t,"removed")}),[u]),S=(0,e.useMemo)((()=>({disabled:i,itemDisplayTemplate:a,detailsDisplayTemplate:l,fieldsToSearchOn:c,maxSelections:g,nrSelectedItems:f.length,onGetItemDetails:x,opened:b})),[i,a,l,c,g,f,x,b]);return t().createElement(t().Fragment,null,t().createElement("div",{className:k()},t().createElement(cl.Provider,{value:S},t().createElement("div",{className:"tyk-multiselect__header"},t().createElement("div",null,f.length," ","Selected"," ",o),t().createElement("div",null,"Select from existing",o)),t().createElement("div",{className:"tyk-multiselect__panel-wrapper"},t().createElement(pl,{inputPlaceholder:`Search through selected ${o}`,noItemsMessage:`Selected ${o} will show here`,items:f,onChange:$,panelType:"selected"}),t().createElement(pl,{inputPlaceholder:`Search existing ${o}`,noItemsMessage:`No ${o} to display`,entityNamePlural:o,customSearch:!!n,onCustomSearch:n,items:xl(f,u),onChange:C,serverLoad:!!p,loadMoreItems:p,itemsPageNumber:h,itemsNrPages:d,panelType:"normal"})))),t().createElement("div",null,m?t().createElement("p",{className:"tyk-form-control__help-block"},m):null),r&&"true"!==r&&"false"!==r?t().createElement("p",{className:"tyk-form-control__error-message"},r):null)}kl.propTypes={customSearch:r().func,disabled:r().bool,error:r().string,entityNamePlural:r().string,items:r().instanceOf(Array),itemDisplayTemplate:r().func,detailsDisplayTemplate:r().func,fieldsToSearchOn:r().instanceOf(Array),onChange:r().func,getItemDetails:r().func,itemsPageNumber:r().number,itemsNrPages:r().number,loadMoreItems:r().func,note:r().string,maxSelections:r().number,value:r().instanceOf(Array),wrapperClassName:r().string};const Cl=kl;var $l=Object.defineProperty,Sl=Object.defineProperties,El=Object.getOwnPropertyDescriptors,Ol=Object.getOwnPropertySymbols,Tl=Object.prototype.hasOwnProperty,Al=Object.prototype.propertyIsEnumerable,_l=(e,t,n)=>t in e?$l(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ll=(e,t)=>{for(var n in t||(t={}))Tl.call(t,n)&&_l(e,n,t[n]);if(Ol)for(var n of Ol(t))Al.call(t,n)&&_l(e,n,t[n]);return e};function Ml(e){var n=e,{label:o,input:i,note:r,inline:s,nospace:a,theme:l="",disabled:c,readOnly:u,wrapperClassName:h=""}=n,d=((e,t)=>{var n={};for(var o in e)Tl.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ol)for(var o of Ol(e))t.indexOf(o)<0&&Al.call(e,o)&&(n[o]=e[o]);return n})(n,["label","input","note","inline","nospace","theme","disabled","readOnly","wrapperClassName"]);const p=[s?"tyk-radio--inline":"tyk-radio",h,a&&"no-margin",...l?l.split(" ").filter(Boolean).map((e=>`tyk-radio--theme-${e}`)):[],(u||c)&&"tyk-radio--is-disabled"].filter(Boolean).join(" ");return t().createElement("div",{className:p},t().createElement("label",null,t().createElement("input",(g=Ll(Ll({},i),d),Sl(g,El({type:"radio",disabled:u||c})))),o),r&&t().createElement("p",{className:"tyk-form-control__help-block"},r));var g}Ml.propTypes={disabled:r().bool,readOnly:r().bool,inline:r().bool,theme:r().string,input:r().instanceOf(Object),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),name:r().string,nospace:r().bool,value:r().string,note:r().oneOfType([r().string,r().element,r().node]),wrapperClassName:r().string};const Rl=Ml;var Nl=Object.defineProperty,Il=Object.defineProperties,Pl=Object.getOwnPropertyDescriptors,Dl=Object.getOwnPropertySymbols,Fl=Object.prototype.hasOwnProperty,Bl=Object.prototype.propertyIsEnumerable,Wl=(e,t,n)=>t in e?Nl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Hl(n){const o=n,{value:i,onChange:r,onBlur:s,isfield:a,label:l,labelwidth:c,id:u,note:h,readOnly:d,options:p,error:g,theme:m,wrapperClassName:f=""}=o,y=((e,t)=>{var n={};for(var o in e)Fl.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Dl)for(var o of Dl(e))t.indexOf(o)<0&&Bl.call(e,o)&&(n[o]=e[o]);return n})(o,["value","onChange","onBlur","isfield","label","labelwidth","id","note","readOnly","options","error","theme","wrapperClassName"]),[v,b]=(0,e.useState)(i);(0,e.useEffect)((()=>{a||v===i||(b(i),r&&r(i))}),[v,i]);const w=(0,e.useCallback)((e=>{const t=p.find((t=>t.id===e.target.value));a||b(t),r(t.id?t:null)}),[p,a,r]),x=(0,e.useCallback)((()=>{s&&s(i)}),[s]),k=(0,e.useCallback)((()=>g&&"true"!==g&&"false"!==g?t().createElement("p",{className:"tyk-form-control__error-message"},g):null),[g]),C=(0,e.useCallback)((()=>["tyk-form-group",f,...m?m.split(" ").map((e=>`tyk-form-group--${e}`)):[],c&&"tyk-form-group--label-has-width",g&&"has-error"].filter(Boolean).join(" ")),[f,m,c,g]),$=(0,e.useCallback)((()=>c?{flexBasis:c}:{}),[c]),S=(0,e.useCallback)((()=>c?{flexBasis:`calc(100% - ${c} - 20px)`}:{}),[c]),E=(0,e.useCallback)((()=>{const e=a&&i?i:v;return t().createElement("select",(n=((e,t)=>{for(var n in t||(t={}))Fl.call(t,n)&&Wl(e,n,t[n]);if(Dl)for(var n of Dl(t))Bl.call(t,n)&&Wl(e,n,t[n]);return e})({className:"tyk-form-control tyk-select"},y),o={onChange:w,onBlur:x,value:e?e.id:""},Il(n,Pl(o))),p.map((e=>t().createElement("option",{key:e.id,value:e.id},e.name))));var n,o}),[a,i,v,w,x,p,y]);return t().createElement("div",{className:C()},l?t().createElement("label",{htmlFor:u,style:$()},l):null,!d&&t().createElement("div",{className:"tyk-form-control__wrapper",style:S()},E(),h?t().createElement("p",{className:"tyk-form-control__help-block"},h):null,k()),d&&t().createElement("div",{className:"tyk-form-control--readonly"},i||"-"))}Hl.propTypes={disabled:r().bool,readOnly:r().bool,id:r().string,isfield:r().bool,error:r().oneOfType([r().string,r().bool]),options:r().instanceOf(Array),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,name:r().string,note:r().string,onBlur:r().func,onChange:r().func,placeholder:r().string,theme:r().string,value:r().oneOfType([r().string,r().object]),wrapperClassName:r().string};const jl=Hl;var zl=Object.defineProperty,Vl=Object.defineProperties,Ul=Object.getOwnPropertyDescriptors,Gl=Object.getOwnPropertySymbols,Kl=Object.prototype.hasOwnProperty,ql=Object.prototype.propertyIsEnumerable,Yl=(e,t,n)=>t in e?zl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Jl(e){const{checkboxalticon:n,items:o,itemTemplate:i,value:r,noItemsMessage:s="No items in the list",onChange:a,theme:l,primaryKey:c,wrapperClassName:u=""}=e,h=e=>{const t=structuredClone(r),n=t.findIndex((t=>JSON.stringify(t)===JSON.stringify(Array.isArray(t)?e.target.value.split(","):e.target.value)));if(e.target.checked&&-1===n){const n=e.target.value.split(","),o=n.length>1?n:e.target.value;t.push(o)}else!e.target.checked&&n>-1&&t.splice(n,1);a&&a(t)},d=e=>{const t=[];return n&&t.push("tyk-selectable-list__item--with-icon"),e&&t.push("tyk-selectable-list__item--active"),t.join(" ")};return t().createElement(jt,(p=((e,t)=>{for(var n in t||(t={}))Kl.call(t,n)&&Yl(e,n,t[n]);if(Gl)for(var n of Gl(t))ql.call(t,n)&&Yl(e,n,t[n]);return e})({},e),Vl(p,Ul({theme:l||"default",className:`tyk-selectable-list ${u}`}))),o.length?o.map(((e,o)=>{return t().createElement(jt.Item,{key:o,className:d(r.includes(e[c]))},t().createElement("label",null,t().createElement("div",{className:"tyk-selectable-list__item"},i?i(e):e.name),t().createElement("input",{type:"checkbox",checked:(s=r,a=e[c],Boolean(s.find((e=>JSON.stringify(a)===JSON.stringify(e))))),onChange:h.bind(e),value:e[c]}),n?t().createElement(g,{type:n}):null));var s,a})):t().createElement("li",{className:"tyk-selectable-list__no-items-message"},t().createElement(be,{theme:"info"},s)));var p}Jl.propTypes={items:r().instanceOf(Array),itemTemplate:r().oneOfType([r().node,r().element,r().string,r().func]),value:r().instanceOf(Array),onChange:r().func,primaryKey:r().string,noItemsMessage:r().string,checkboxalticon:r().oneOfType([r().node,r().element,r().string]),theme:r().string,wrapperClassName:r().string},Jl.defaultProps={items:[],primaryKey:"id",value:[]};const Xl=Jl;var Ql=Object.defineProperty,Zl=Object.getOwnPropertySymbols,ec=Object.prototype.hasOwnProperty,tc=Object.prototype.propertyIsEnumerable,nc=(e,t,n)=>t in e?Ql(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,oc=(e,t)=>{for(var n in t||(t={}))ec.call(t,n)&&nc(e,n,t[n]);if(Zl)for(var n of Zl(t))tc.call(t,n)&&nc(e,n,t[n]);return e};function ic(e){var n=e,{id:o,input:i,label:r,note:s,error:a,theme:l,labelwidth:c,value:u,readOnly:h,wrapperClassName:d}=n,p=((e,t)=>{var n={};for(var o in e)ec.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Zl)for(var o of Zl(e))t.indexOf(o)<0&&tc.call(e,o)&&(n[o]=e[o]);return n})(n,["id","input","label","note","error","theme","labelwidth","value","readOnly","wrapperClassName"]);const g=["tyk-form-group",d,...l?l.split(" ").map((e=>`tyk-form-group--${e}`)):[],c&&"tyk-form-group--label-has-width",a&&"has-error"].filter(Boolean).join(" ");return t().createElement("div",{className:g},r?t().createElement("label",{htmlFor:o,style:c?{flexBasis:c}:{}},r):null,!h&&t().createElement("div",{className:"tyk-form-control__wrapper",style:c?{flexBasis:`calc(100% - ${c} - 20px)`}:{}},t().createElement("textarea",oc(oc({className:"tyk-form-control"},p),i),u),s?t().createElement("p",{className:"tyk-form-control__help-block"},s):null,a&&"true"!==a&&"false"!==a?t().createElement("p",{className:"tyk-form-control__error-message"},a):null),h&&t().createElement("div",{className:"tyk-form-control--readonly"},u||"-"))}ic.propTypes={disabled:r().bool,readOnly:r().bool,input:r().instanceOf(Object),error:r().string,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,name:r().string,note:r().string,onChange:r().func,id:r().string,theme:r().string,value:r().string,wrapperClassName:r().string};const rc=ic,sc=(0,e.createContext)();class ac extends e.Component{static getNotchCssClasses(e){return["tyk-toggle__item-notch",`tyk-toggle__item-notch--${e.type}`].join(" ")}constructor(t){super(t),this.itemRef=(0,e.createRef)()}componentDidMount(){const{context:e,value:t}=this.props;e.value===t&&e.saveSelectedRef(this.itemRef)}componentDidUpdate(e){const{context:t,value:n}=this.props;e.context.value!==t.value&&t.value===n&&t.saveSelectedRef(this.itemRef)}onChange(e){const{context:t,value:n}=this.props,{disabled:o,readOnly:i}=t;o||i||t.onItemSelected("single"===t.type?!t.value:n,e)}render(){const{context:e,label:n,name:o,value:i}=this.props;return t().createElement("li",{className:"tyk-toggle__item "+(!e.value||"single"!==e.type&&e.value!==i?"":"tyk-toggle__item--active"),ref:this.itemRef},t().createElement("label",null,t().createElement("input",{type:"single"===e.type?"checkbox":"radio",name:o,checked:e.value===i,onChange:this.onChange.bind(this),value:i}),n?t().createElement("span",null,n):t().createElement("span",{className:"empty-toggle"}," "),"single"===e.type?t().createElement("span",{className:ac.getNotchCssClasses(e)}):null))}}ac.propTypes={context:r().instanceOf(Object),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),name:r().string,value:r().string};const lc=ac;var cc=Object.defineProperty,uc=Object.defineProperties,hc=Object.getOwnPropertyDescriptors,dc=Object.getOwnPropertySymbols,pc=Object.prototype.hasOwnProperty,gc=Object.prototype.propertyIsEnumerable,mc=(e,t,n)=>t in e?cc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function fc(e,n){var o=e,{children:i}=o,r=((e,t)=>{var n={};for(var o in e)pc.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&dc)for(var o of dc(e))t.indexOf(o)<0&&gc.call(e,o)&&(n[o]=e[o]);return n})(o,["children"]);return t().createElement(sc.Consumer,null,(e=>{return t().createElement(lc,(o=((e,t)=>{for(var n in t||(t={}))pc.call(t,n)&&mc(e,n,t[n]);if(dc)for(var n of dc(t))gc.call(t,n)&&mc(e,n,t[n]);return e})({},r),uc(o,hc({context:e,ref:n}))),i);var o}))}fc.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string])};const yc=(0,e.forwardRef)(fc);function vc({className:n,disabled:o,readOnly:i,size:r,theme:s,direction:a,onDark:l,wrapperClassName:c="",onChange:u,labelwidth:h,label:d,separated:p,children:g,type:m,value:f,error:y}){const[v,b]=(0,e.useState)(null),w=(0,e.useRef)(),x=(0,e.useRef)(),k=[c,n,"tyk-toggle",`tyk-toggle--disabled-${i||o}`,`tyk-toggle--${r||"md"}`,`tyk-toggle--${s}`,`tyk-toggle--${a}`,l&&"tyk-toggle--on-dark"].filter(Boolean).join(" "),C=(0,e.useCallback)(((e,t)=>{u&&u(e,t)}),[u]),$=(0,e.useCallback)((()=>h?{flexBasis:h}:{}),[h]),S=(0,e.useCallback)((()=>{if(!v||p)return{};const e=v.current.offsetWidth;return{left:v.current.getBoundingClientRect().left-x.current.getBoundingClientRect().left+4+"px",width:e-8+"px"}}),[v,p]),E=(0,e.useMemo)((()=>({disabled:o,readOnly:i,onItemSelected:C,saveSelectedRef:b,separated:p,type:m,value:f})),[o,i,C,p,m,f]);return t().createElement(t().Fragment,null,t().createElement("div",{className:k,ref:x},t().createElement(sc.Provider,{value:E},d?t().createElement("label",{className:"tyk-toggle__label",style:$()},d):null,t().createElement("ul",{className:`tyk-toggle__list tyk-toggle__list--${m} ${y&&"tyk-toggle__list--has-error"} tyk-toggle__list--${p?"separated":"not-separated"}`},g,"multiple"!==m||p?null:t().createElement("li",{className:"tyk-toggle__notch",ref:w,style:S()})))),y&&t().createElement("p",{className:"tyk-form-control__error-message"},y))}vc.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,disabled:r().bool,readOnly:r().bool,error:r().string,onChange:r().func,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,theme:r().string,type:r().string,size:r().string,separated:r().bool,direction:r().string,value:r().oneOfType([r().bool,r().string]),onDark:r().bool,wrapperClassName:r().string},vc.defaultProps={separated:!1,theme:"primary",type:"single",direction:"row"},vc.Item=yc;const bc=vc,wc={FORM_DEBOUNCE:200};function xc(e,t){wc[e]=t}const kc=wc;var Cc=Object.defineProperty,$c=Object.defineProperties,Sc=Object.getOwnPropertyDescriptors,Ec=Object.getOwnPropertySymbols,Oc=Object.prototype.hasOwnProperty,Tc=Object.prototype.propertyIsEnumerable,Ac=(e,t,n)=>t in e?Cc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,_c=(e,t)=>{for(var n in t||(t={}))Oc.call(t,n)&&Ac(e,n,t[n]);if(Ec)for(var n of Ec(t))Tc.call(t,n)&&Ac(e,n,t[n]);return e},Lc=(e,t)=>$c(e,Sc(t));function Mc(e,t){return t.split(/[\][.]/).filter(Boolean).reduce(((e,t)=>e?e[t]:e),e)}const Rc=(n,o)=>i=>{var r,s=i,{field:a,form:l}=s,c=((e,t)=>{var n={};for(var o in e)Oc.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ec)for(var o of Ec(e))t.indexOf(o)<0&&Tc.call(e,o)&&(n[o]=e[o]);return n})(s,["field","form"]);const u="number"==typeof kc.FORM_DEBOUNCE?kc.FORM_DEBOUNCE:200,[h,d]=(0,e.useState)(a.value),p=_c({getOnChangeProps:()=>({}),hasIsFieldProp:!1},o),g=(0,e.useCallback)((()=>{const e=e=>e();return!1===c.debounce||!1===kc.FORM_DEBOUNCE&&!c.debounce?e:function(e,t){let n;return(...o)=>{clearTimeout(n),n=setTimeout(e,t,...o)}}(e,"number"==typeof c.debounce?c.debounce:u)})(),[]),m=e=>{const t=(null==(n=e)?void 0:n.target)?"INPUT"!==n.target.nodeName||"checkbox"!==n.target.type&&"radio"!==n.target.type?n.target.value:n.target.checked:n;var n;const o=p.getOnChangeProps(t,a,l,c),i=o.value||c.value||t;g((()=>{"function"==typeof c.onChange&&c.onChange(i),a.onChange({target:_c({name:a.name,value:i},o)})})),d(i)},f=(Mc(l.touched,a.name)||Boolean(l.submitCount))&&Mc(l.errors,a.name),y="string"==typeof f?f:"";(0,e.useEffect)((()=>{d(a.value)}),[a.value]),(null==(r=l.status)?void 0:r.disabled)&&(c.disabled=!0);const v=_c({},c);return delete v.debounce,Object.hasOwn(v,"className")&&void 0===v.className&&delete v.className,Object.hasOwn(v,"children")&&void 0===v.children&&delete v.children,t().createElement(n,Lc(_c(_c(Lc(_c({},a),{error:y}),p.hasIsFieldProp?{isfield:!0}:{}),v),{checked:"string"==typeof c.value?a.value===c.value:a.value,onChange:m,value:h,input:{value:h,onChange:m}}))},Nc=Rc(Io,{getOnChangeProps:e=>({checked:e})}),Ic=Rc(gr),Pc=Rc(Sr),Dc=Rc(Wr),Fc=Rc(Zr),Bc=Rc(ha,{getOnChangeProps:e=>({value:e||[]})}),Wc=Rc(Na),Hc=Rc(za),jc=Rc(Qa,{hasIsFieldProp:!0}),zc=Rc(ll),Vc=Rc(Cl),Uc=Rc(Rl,{getOnChangeProps:(e,t,n,o)=>({checked:e===o.value,value:o.value})}),Gc=Rc(jl,{hasIsFieldProp:!0}),Kc=Rc(Xl),qc=Rc(rc),Yc=Rc(bc);var Jc=Object.defineProperty,Xc=Object.defineProperties,Qc=Object.getOwnPropertyDescriptors,Zc=Object.getOwnPropertySymbols,eu=Object.prototype.hasOwnProperty,tu=Object.prototype.propertyIsEnumerable,nu=(e,t,n)=>t in e?Jc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ou=(e,t)=>{for(var n in t||(t={}))eu.call(t,n)&&nu(e,n,t[n]);if(Zc)for(var n of Zc(t))tu.call(t,n)&&nu(e,n,t[n]);return e};class iu extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.prop,{onChange:n}=t;n((0,pe.fromJS)(e))}getInputError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=this.props,{input:n}=e,o=((e,t)=>{var n={};for(var o in e)eu.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Zc)for(var o of Zc(e))t.indexOf(o)<0&&tu.call(e,o)&&(n[o]=e[o]);return n})(e,["input"]);return t().createElement(gr,(i=ou(ou({},n),o),r={error:this.getInputError()},Xc(i,Qc(r))));var i,r}}iu.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const ru=iu;var su=Object.defineProperty,au=Object.defineProperties,lu=Object.getOwnPropertyDescriptors,cu=Object.getOwnPropertySymbols,uu=Object.prototype.hasOwnProperty,hu=Object.prototype.propertyIsEnumerable,du=(e,t,n)=>t in e?su(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class pu extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props,{onChange:n}=t;n((0,pe.fromJS)(e))}getComboboxError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=((e,t)=>{var n={};for(var o in e)uu.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&cu)for(var o of cu(e))t.indexOf(o)<0&&hu.call(e,o)&&(n[o]=e[o]);return n})(this.props,[]);return t().createElement(Sr,(n=((e,t)=>{for(var n in t||(t={}))uu.call(t,n)&&du(e,n,t[n]);if(cu)for(var n of cu(t))hu.call(t,n)&&du(e,n,t[n]);return e})({},e),o={onChange:this.handleOnChange,value:e.input.value?e.input.value.toJS():e.input.value,error:this.getComboboxError()},au(n,lu(o))));var n,o}}pu.propTypes={meta:r().instanceOf(Object),input:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const gu=pu;var mu=Object.defineProperty,fu=Object.defineProperties,yu=Object.getOwnPropertyDescriptors,vu=Object.getOwnPropertySymbols,bu=Object.prototype.hasOwnProperty,wu=Object.prototype.propertyIsEnumerable,xu=(e,t,n)=>t in e?mu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class ku extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props,{onChange:n}=t;n((0,pe.fromJS)(e))}render(){const e=this.props,{children:n,input:o}=e,i=((e,t)=>{var n={};for(var o in e)bu.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&vu)for(var o of vu(e))t.indexOf(o)<0&&wu.call(e,o)&&(n[o]=e[o]);return n})(e,["children","input"]);return t().createElement(Oi,(r=((e,t)=>{for(var n in t||(t={}))bu.call(t,n)&&xu(e,n,t[n]);if(vu)for(var n of vu(t))wu.call(t,n)&&xu(e,n,t[n]);return e})({},i),s={onSelect:this.handleOnChange,selectedItem:o.value},fu(r,yu(s))),n);var r,s}}ku.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),input:r().instanceOf(Object)};const Cu=ku;var $u=Object.defineProperty,Su=Object.defineProperties,Eu=Object.getOwnPropertyDescriptors,Ou=Object.getOwnPropertySymbols,Tu=Object.prototype.hasOwnProperty,Au=Object.prototype.propertyIsEnumerable,_u=(e,t,n)=>t in e?$u(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Lu=(e,t)=>{for(var n in t||(t={}))Tu.call(t,n)&&_u(e,n,t[n]);if(Ou)for(var n of Ou(t))Au.call(t,n)&&_u(e,n,t[n]);return e};function Mu(e){const n=e,{input:o}=n,i=((e,t)=>{var n={};for(var o in e)Tu.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ou)for(var o of Ou(e))t.indexOf(o)<0&&Au.call(e,o)&&(n[o]=e[o]);return n})(n,["input"]);return t().createElement(po,(r=Lu(Lu({},o),i),s={onChange:o.onChange,value:o.value?o.value:0},Su(r,Eu(s))));var r,s}Mu.propTypes={input:r().instanceOf(Object)};const Ru=Mu;var Nu=Object.defineProperty,Iu=Object.defineProperties,Pu=Object.getOwnPropertyDescriptors,Du=Object.getOwnPropertySymbols,Fu=Object.prototype.hasOwnProperty,Bu=Object.prototype.propertyIsEnumerable,Wu=(e,t,n)=>t in e?Nu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Hu(e){const{input:n,meta:o,validationmessages:i}=e;return t().createElement(Wr,(r=((e,t)=>{for(var n in t||(t={}))Fu.call(t,n)&&Wu(e,n,t[n]);if(Du)for(var n of Du(t))Bu.call(t,n)&&Wu(e,n,t[n]);return e})({},e),s={onChange:e=>{const{onChange:t}=n;t((0,pe.fromJS)(e))},value:n.value?n.value.toJS():n.value,error:(()=>{const{touched:e,error:t,warning:n}=o;let r=null;return e&&t&&i[t]?r=i[t]:e&&n&&(r="warning"),r})()},Iu(r,Pu(s))));var r,s}Hu.propTypes={meta:r().instanceOf(Object),input:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const ju=Hu;var zu=Object.defineProperty,Vu=Object.defineProperties,Uu=Object.getOwnPropertyDescriptors,Gu=Object.getOwnPropertySymbols,Ku=Object.prototype.hasOwnProperty,qu=Object.prototype.propertyIsEnumerable,Yu=(e,t,n)=>t in e?zu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Ju(e){const n=e,{input:o,meta:i,validationmessages:r}=n,s=((e,t)=>{var n={};for(var o in e)Ku.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Gu)for(var o of Gu(e))t.indexOf(o)<0&&qu.call(e,o)&&(n[o]=e[o]);return n})(n,["input","meta","validationmessages"]);return t().createElement(Zr,(a=((e,t)=>{for(var n in t||(t={}))Ku.call(t,n)&&Yu(e,n,t[n]);if(Gu)for(var n of Gu(t))qu.call(t,n)&&Yu(e,n,t[n]);return e})({},s),l={onChange:e=>{const{onChange:t}=o;t((0,pe.fromJS)(e))},value:o.value?o.value.toJS():o.value,error:(()=>{const{touched:e,error:t}=i;let n=null;return e&&t&&r[t]&&(n=r[t]),n})()},Vu(a,Uu(l))));var a,l}Ju.propTypes={meta:r().instanceOf(Object),input:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const Xu=Ju;var Qu=Object.defineProperty,Zu=Object.defineProperties,eh=Object.getOwnPropertyDescriptors,th=Object.getOwnPropertySymbols,nh=Object.prototype.hasOwnProperty,oh=Object.prototype.propertyIsEnumerable,ih=(e,t,n)=>t in e?Qu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class rh extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props,{onChange:n}=t;n((0,pe.fromJS)(e))}getEditableListError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o}=e;let i=null;return n&&o&&t[o]&&(i=t[o]),i}render(){const e=((e,t)=>{var n={};for(var o in e)nh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&th)for(var o of th(e))t.indexOf(o)<0&&oh.call(e,o)&&(n[o]=e[o]);return n})(this.props,[]);return t().createElement(ha,(n=((e,t)=>{for(var n in t||(t={}))nh.call(t,n)&&ih(e,n,t[n]);if(th)for(var n of th(t))oh.call(t,n)&&ih(e,n,t[n]);return e})({},e),o={onChange:this.handleOnChange,value:e.input.value?e.input.value.toJS():null,error:this.getEditableListError()},Zu(n,eh(o))));var n,o}}rh.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const sh=rh;var ah=Object.defineProperty,lh=Object.defineProperties,ch=Object.getOwnPropertyDescriptors,uh=Object.getOwnPropertySymbols,hh=Object.prototype.hasOwnProperty,dh=Object.prototype.propertyIsEnumerable,ph=(e,t,n)=>t in e?ah(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,gh=(e,t)=>{for(var n in t||(t={}))hh.call(t,n)&&ph(e,n,t[n]);if(uh)for(var n of uh(t))dh.call(t,n)&&ph(e,n,t[n]);return e};class mh extends e.Component{getInputError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=this.props,{input:n}=e,o=((e,t)=>{var n={};for(var o in e)hh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&uh)for(var o of uh(e))t.indexOf(o)<0&&dh.call(e,o)&&(n[o]=e[o]);return n})(e,["input"]);return t().createElement(za,(i=gh(gh({},n),o),r={error:this.getInputError()},lh(i,ch(r))));var i,r}}mh.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const fh=mh;var yh=Object.defineProperty,vh=Object.defineProperties,bh=Object.getOwnPropertyDescriptors,wh=Object.getOwnPropertySymbols,xh=Object.prototype.hasOwnProperty,kh=Object.prototype.propertyIsEnumerable,Ch=(e,t,n)=>t in e?yh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,$h=(e,t)=>{for(var n in t||(t={}))xh.call(t,n)&&Ch(e,n,t[n]);if(wh)for(var n of wh(t))kh.call(t,n)&&Ch(e,n,t[n]);return e};class Sh extends e.Component{getInputError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=this.props,{input:n}=e,o=((e,t)=>{var n={};for(var o in e)xh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&wh)for(var o of wh(e))t.indexOf(o)<0&&kh.call(e,o)&&(n[o]=e[o]);return n})(e,["input"]);return t().createElement(Qa,(i=$h($h({},n),o),r={isfield:!0,error:this.getInputError()},vh(i,bh(r))));var i,r}}Sh.propTypes={meta:r().instanceOf(Object),input:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const Eh=Sh;var Oh=Object.defineProperty,Th=Object.defineProperties,Ah=Object.getOwnPropertyDescriptors,_h=Object.getOwnPropertySymbols,Lh=Object.prototype.hasOwnProperty,Mh=Object.prototype.propertyIsEnumerable,Rh=(e,t,n)=>t in e?Oh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Nh extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props,{onChange:n}=t;n((0,pe.fromJS)(e))}getMultiselectError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=((e,t)=>{var n={};for(var o in e)Lh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&_h)for(var o of _h(e))t.indexOf(o)<0&&Mh.call(e,o)&&(n[o]=e[o]);return n})(this.props,[]);return t().createElement(Cl,(n=((e,t)=>{for(var n in t||(t={}))Lh.call(t,n)&&Rh(e,n,t[n]);if(_h)for(var n of _h(t))Mh.call(t,n)&&Rh(e,n,t[n]);return e})({},e),o={onChange:this.handleOnChange,value:e.input.value?e.input.value.toJS():e.input.value,error:this.getMultiselectError()},Th(n,Ah(o))));var n,o}}Nh.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const Ih=Nh;var Ph=Object.defineProperty,Dh=Object.defineProperties,Fh=Object.getOwnPropertyDescriptors,Bh=Object.getOwnPropertySymbols,Wh=Object.prototype.hasOwnProperty,Hh=Object.prototype.propertyIsEnumerable,jh=(e,t,n)=>t in e?Ph(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,zh=(e,t)=>{for(var n in t||(t={}))Wh.call(t,n)&&jh(e,n,t[n]);if(Bh)for(var n of Bh(t))Hh.call(t,n)&&jh(e,n,t[n]);return e};class Vh extends e.Component{constructor(e){super(e),this.handleEvent=this.handleEvent.bind(this)}handleEvent(e){const{input:t}=this.props,{onChange:n,value:o}=t;n((0,pe.fromJS)(void 0!==e?e:o))}getSelectError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=this.props,{input:n}=e,o=((e,t)=>{var n={};for(var o in e)Wh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Bh)for(var o of Bh(e))t.indexOf(o)<0&&Hh.call(e,o)&&(n[o]=e[o]);return n})(e,["input"]);return t().createElement(jl,(i=zh(zh({},n),o),r={isfield:!0,error:this.getSelectError(),onChange:this.handleEvent,onBlur:this.handleEvent,value:n.value?n.value.toJS():n.value},Dh(i,Fh(r))));var i,r}}Vh.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const Uh=Vh;var Gh=Object.defineProperty,Kh=Object.defineProperties,qh=Object.getOwnPropertyDescriptors,Yh=Object.getOwnPropertySymbols,Jh=Object.prototype.hasOwnProperty,Xh=Object.prototype.propertyIsEnumerable,Qh=(e,t,n)=>t in e?Gh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Zh extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props;t.onChange((0,pe.fromJS)(e))}render(){const e=this.props,{children:n}=e,o=((e,t)=>{var n={};for(var o in e)Jh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Yh)for(var o of Yh(e))t.indexOf(o)<0&&Xh.call(e,o)&&(n[o]=e[o]);return n})(e,["children"]);return t().createElement(Xl,(i=((e,t)=>{for(var n in t||(t={}))Jh.call(t,n)&&Qh(e,n,t[n]);if(Yh)for(var n of Yh(t))Xh.call(t,n)&&Qh(e,n,t[n]);return e})({},o),r={onChange:this.handleOnChange,value:o.input.value?o.input.value.toJS():[]},Kh(i,qh(r))));var i,r}}Zh.propTypes={children:r().oneOfType([r().node]),onChange:r().func,input:r().instanceOf(Object)};const ed=Zh;var td=Object.defineProperty,nd=Object.defineProperties,od=Object.getOwnPropertyDescriptors,id=Object.getOwnPropertySymbols,rd=Object.prototype.hasOwnProperty,sd=Object.prototype.propertyIsEnumerable,ad=(e,t,n)=>t in e?td(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class ld extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props;t.onChange((0,pe.fromJS)(e))}render(){const e=this.props,{children:n}=e,o=((e,t)=>{var n={};for(var o in e)rd.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&id)for(var o of id(e))t.indexOf(o)<0&&sd.call(e,o)&&(n[o]=e[o]);return n})(e,["children"]);return t().createElement(bc,(i=((e,t)=>{for(var n in t||(t={}))rd.call(t,n)&&ad(e,n,t[n]);if(id)for(var n of id(t))sd.call(t,n)&&ad(e,n,t[n]);return e})({},o),r={onChange:this.handleOnChange,value:o.input.value},nd(i,od(r))),n);var i,r}}ld.propTypes={children:r().oneOfType([r().node]),onChange:r().func,input:r().instanceOf(Object)};const cd=ld;function ud(t,n,...o){const i=(0,e.useRef)();(0,e.useEffect)((()=>{i.current=t}),[t]),(0,e.useEffect)((()=>{if(null!=n){const e=setInterval((function(){i.current(...o)}),n);return()=>clearInterval(e)}}),[n])}})(),module.exports=o})(); //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/lib/index.js.map b/lib/index.js.map index 1b7c2aea..5b1f56b0 100644 --- a/lib/index.js.map +++ b/lib/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","mappings":"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G,IAAK,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,IAAK,GAAI,IAAK,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,KAAM,GAAI,EAAG,GAAI,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,KAAM,GAAI,MAAO,GAAI,KAAM,GAAI,GAAI,EAAG,IAAK,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAA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O,CAAC,eAAgB,uBAAwB,4BAChDH,MAAO,kEACR,CACCG,MAAOqyD,EACPxyD,MAAO80D,GACR,CACC30D,MAAO,uBACPH,MAAO,aACPpkB,KAAM,YACP,CACCukB,MAAO,eACPH,MAAO,KACPpkB,KAAM,SACP,CACCukB,MAAO,mBACPH,MAAO,yEACPpkB,KAAM,SACP,CACCukB,MAAO,uBACPH,MAAO,UACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,SACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,UACR,CACCG,MAAO,UACPH,MAAO,WAGf7mC,SAAU,CAAC,CACHgnC,MAAO,OACPH,MAAO,QACR,CACCG,MAAO,CACH,eAAgB,uBAAwB,uBAAwB,OAChE,mBAAoB,OACpB,eAAgB,OAAQ,uBAAwB,OAAQ,gBAE5DH,MAAO,IAAM80D,EAAe,UAAYA,EAAe,6DACvDl5E,KAAM,sBACP,CACCukB,MAAO,uBACPH,MAAO,cACR,CACCG,MAAO,mBACPH,MAAO,gwDACR,CACCG,MAAO,uBACPH,MAAO,+lBACR,CACCG,MAAO,mBACPH,MAAO,y2DACR,CACCG,MAAO,aACPH,MAAO80D,GACR,CACC90D,MAAO,GACPG,MAAO,QACPvkB,KAAM,aAGd,MAAS,CACL04E,EAAyBE,aAAa,aACtCS,EAAS,SACT,CACI90D,MAAO,gBACPH,MAAO,MACPpkB,KAAM,SACP,CACCukB,MAAO,OACPH,MAAO,UACPpkB,KAAM,SACP,CACCukB,MAAO,QACPH,MAAO,GACPpkB,KAAM,aAGd,MAAS,CACL,CACIukB,MAAO,0BACPH,MAAO,6CACR,CACCG,MAAO,gBACPH,MAAO,cACPpkB,KAAM,YACP,CACCukB,MAAO,UACPH,MAAO,iDACR,CACCG,MAAO,2BACPH,MAAO,iDACR,CACCG,MAAO,8BACPH,MAAO,MACR,CACCG,MAAO,2BACPH,MAAO,QACPpkB,KAAM,yBACP,CACCukB,MAAO,QACPH,MAAO,IACPpkB,KAAM,YACP,CACC8jB,aAAc,kBAGtB,sBAAyB,CACrB,CACIS,MAAO,oCACPH,MAAO,6CACR,CACCG,MAAO,2BACPH,MAAO,IACPpkB,KAAM,SACP,CACCukB,MAAO,2BACPH,MAAO,KACR,CACCG,MAAO,QACPH,MAAO,IACPpkB,KAAM,YACP,CACC8jB,aAAc,kCAGtB,kBAAqB,CACjB,CACIS,MAAO,SACPH,MAAO,SACP11C,KAAM,CACF,CACI61C,MAAO,SACPH,MAAO,MACPpkB,KAAM,OACP,CACC/kB,QAAS,aAGlB,CACCspC,MAAO,SACPH,MAAO,SACP11C,KAAM,CACF,CACI61C,MAAO,SACPH,MAAO,MACPpkB,KAAM,OACP,CACC/kB,QAAS,cAGlB,CACCspC,MAAO,oBACPH,MAAO,+BACR,CACCG,MAAO,mBACPH,MAAO,gDACR,CACCG,MAAO,mBACPH,MAAO,gDACR,CACCG,MAAO,uBACPH,MAAO,IACPpkB,KAAM,sBACP,CACCukB,MAAO,OACPH,MAAO,QACR,CACCG,MAAO,uBACPH,MAAO,KACR,CACCG,MAAO,QACPH,MAAO,GACPpkB,KAAM,aAGd,mBAAsB,CAClBq5E,EAAS,sBACT,CACI90D,MAAO,qBACPH,MAAO80D,GACR,CACC30D,MAAO,uBACPH,MAAO,KACR,CACCG,MAAO,OACPH,MAAO,QACR,CACCG,MAAO,uBACPH,MAAO,KACR,CACCG,MAAO,QACPH,MAAO,GACPpkB,KAAM,aAGd,SAAY,CACR,CACIukB,MAAO,2BACPH,MAAOg1D,GACR,CACC70D,MAAO,SACPH,MAAO,QACP0B,gBAAgB,GACjB,CACCvB,MAAO,SACPH,MAAO,MACPpkB,KAAM,YACP,CACC8jB,aAAc,WAGtB,QAAW,CACP,CACIS,MAAO,2BACPH,MAAOg1D,GACR,CACC70D,MAAO,SACPH,MAAO,QACP0B,gBAAgB,GACjB,CACCvB,MAAO,SACPH,MAAO,MACPpkB,KAAM,YACP,CACC8jB,aAAc,YAIrB1qC,GAAYA,EAAQkgG,QACrB3sG,KAAKu5C,OAAOqzD,SAASvzD,QAAQ,CACzB5B,MAAO,OAAQM,QAAS,SAAU30C,EAAK+9B,EAAOqX,GAE1C,GADAx4C,KAAKqzB,KAAc,KAAPjwB,EAAapD,KAAK0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E,KAAM,eACP,CACCukB,MAAO,SACPH,MAAOm2D,EAAY,SACnBv6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,OACtBx6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,SACtBx6E,KAAM,aACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,OACtBx6E,KAAM,aACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,SACtBx6E,KAAM,YACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,OACzBz6E,KAAM,eACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,SACzBz6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,OACzBz6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,SACzBz6E,KAAM,aACP,CACCukB,MAAO,mBACPH,MAAO,4EACR,CACCG,MAAO,cACPH,MAAO,2EACR,CACCG,MAAO,eACPH,MAAO,eACR,CACCG,MAAO,eACPH,MAAO,eACR,CACCG,MAAO,CAAC,UAAW,OAAQ,wBAC3BH,MAAO,2DACR,CACCG,MAAO,OACPH,MAAO,QACR,CACCnpC,QAAS,cAEjB,UAAa,CAAC,CACNspC,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,SAAY,CAAC,CACLS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,SAAY,CAAC,CACLS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,QACPpkB,KAAM,YACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,QAAW,CAAC,CACJS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,QACPpkB,KAAM,WACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,aAAgB,CAAC,CACTS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,YAAe,CAAC,CACRS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,YAAe,CAAC,CACRS,MAAO,SACPH,MAAO,QACPpkB,KAAM,eACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO,SACPH,MAAO,QACPpkB,KAAM,cACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,UAAa,CAAC,CACNS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,UAAa,CAAC,CACNS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,QACPpkB,KAAM,aACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,SAAY,CAAC,CACLS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,YAAe,CAAC,CACRS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO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","sources":["webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/ace.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/ext-beautify.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/ext-searchbox.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-css.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-golang.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-javascript.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-json.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-jsx.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-python.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-xml.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/theme-github.js","webpack://@tyk-technologies/tyk-ui/./node_modules/react-dom/client.js","webpack://@tyk-technologies/tyk-ui/./node_modules/react-fast-compare/index.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react-dom\"","webpack://@tyk-technologies/tyk-ui/webpack/bootstrap","webpack://@tyk-technologies/tyk-ui/webpack/runtime/amd define","webpack://@tyk-technologies/tyk-ui/webpack/runtime/compat get default export","webpack://@tyk-technologies/tyk-ui/webpack/runtime/define property getters","webpack://@tyk-technologies/tyk-ui/webpack/runtime/hasOwnProperty shorthand","webpack://@tyk-technologies/tyk-ui/webpack/runtime/make namespace object","webpack://@tyk-technologies/tyk-ui/webpack/runtime/node module decorator","webpack://@tyk-technologies/tyk-ui/webpack/runtime/publicPath","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react\"","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"prop-types\"","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Icon/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemTrigger.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItem.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemHeader.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react-transition-group\"","webpack://@tyk-technologies/tyk-ui/./src/hooks/useComponentSize/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/useEventListener/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Collapsible/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemContent.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Button/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/ButtonGroup/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardHeader.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardBody.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardFooter.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardTitle.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardTitleGroup.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardSubTitle.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardSummary.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardTitleIcon.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/index.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"echarts\"","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"immutable\"","webpack://@tyk-technologies/tyk-ui/./src/utils/debounce/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/usePrevious/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Loader/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Message/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Chart/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/useTimeout/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Toast/js/ToastMessage.js","webpack://@tyk-technologies/tyk-ui/./src/components/Toast/js/ToastContainer.js","webpack://@tyk-technologies/tyk-ui/./src/components/Toast/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/CopyToClipboard/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Modal/js/ModalFooter.js","webpack://@tyk-technologies/tyk-ui/./src/components/Modal/js/ModalBody.js","webpack://@tyk-technologies/tyk-ui/./src/components/Modal/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Confirm/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/FixedWrapper/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/InfiniteScroller/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/FloatingContainer/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/InfoNote/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/List/js/ListItem.js","webpack://@tyk-technologies/tyk-ui/./src/components/List/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/NavBar/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Navigation/js/NavigationItem.js","webpack://@tyk-technologies/tyk-ui/./src/components/Navigation/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/panel-context.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/js/PanelBody.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/js/PanelFooter.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/js/PanelHeader.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Pill/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/RevealPanel/js/RevealPanelService.js","webpack://@tyk-technologies/tyk-ui/./src/components/RevealPanel/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/tabs-context.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/js/TabContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/js/TabContent.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/js/Tab.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tooltip/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/TextEllipsis/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Pagination/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/tableContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/header-cell.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/header.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Checkbox/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/cell.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/row.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/body.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/index.js","webpack://@tyk-technologies/tyk-ui/./src/layout/Column/index.js","webpack://@tyk-technologies/tyk-ui/./src/layout/Row/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown/dropdown-context.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown/js/DropdownItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/DropdownTrigger.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/DropdownListWrapper.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/useDrodpownContext.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/DropdowItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/useDropdown.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react-ace\"","webpack://@tyk-technologies/tyk-ui/./src/form/components/CodeEditor/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox2/js/Value.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox2/js/List.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox2/index.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"flatpickr\"","webpack://@tyk-technologies/tyk-ui/./src/form/components/DatePicker/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/isDate/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/toDate/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/toInteger/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/defaultOptions/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/format/formatters/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/format/longFormatters/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/protectedTokens/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/defaultLocale/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/format/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/isValid/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/subMilliseconds/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/addMilliseconds/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList/js/EditableListForm.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/Header.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/ListHeader.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/FieldsList.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/with-validation.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/validate-values.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/FileInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Input/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Input2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/js/MultiselectContext.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/js/MultiselectItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/js/MultiselectPanel.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Radio/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Select/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/SelectableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Textarea/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/js/ToggleContext.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/js/ToggleItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/js/ToggleItemWrapper.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/index.js","webpack://@tyk-technologies/tyk-ui/./src/utils/config/config.js","webpack://@tyk-technologies/tyk-ui/./src/utils/formik/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCheckbox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCodeEditor/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCombobox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCombobox2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikDatePicker/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikEditableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikEditableList2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikFileInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikInput2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikMultiselect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikRadio/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikSelect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikSelectableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikTextarea/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikToggle/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldCodeEditor/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldCombobox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldDropdown/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldPagination/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldCombobox2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldDatePicker/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldEditableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldFileInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldMultiselect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldSelect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldSelectableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldToggle/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/useInterval/index.js"],"sourcesContent":["/* ***** BEGIN LICENSE BLOCK *****\n * Distributed under the BSD license:\n *\n * Copyright (c) 2010, Ajax.org B.V.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n * * Neither the name of Ajax.org B.V. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * ***** END LICENSE BLOCK ***** */\n\n/**\n * Define a module along with a payload\n * @param module a name for the payload\n * @param payload a function to call with (require, exports, module) params\n */\n\n(function() {\n\nvar ACE_NAMESPACE = \"ace\";\n\nvar global = (function() { return this; })();\nif (!global && typeof window != \"undefined\") global = window; // strict mode\n\n\nif (!ACE_NAMESPACE && typeof requirejs !== \"undefined\")\n return;\n\n\nvar define = function(module, deps, payload) {\n if (typeof module !== \"string\") {\n if (define.original)\n define.original.apply(this, arguments);\n else {\n console.error(\"dropping module because define wasn\\'t a string.\");\n console.trace();\n }\n return;\n }\n if (arguments.length == 2)\n payload = deps;\n if (!define.modules[module]) {\n define.payloads[module] = payload;\n define.modules[module] = null;\n }\n};\n\ndefine.modules = {};\ndefine.payloads = {};\n\n/**\n * Get at functionality define()ed using the function above\n */\nvar _require = function(parentId, module, callback) {\n if (typeof module === \"string\") {\n var payload = lookup(parentId, module);\n if (payload != undefined) {\n callback && callback();\n return payload;\n }\n } else if (Object.prototype.toString.call(module) === \"[object Array]\") {\n var params = [];\n for (var i = 0, l = module.length; i < l; ++i) {\n var dep = lookup(parentId, module[i]);\n if (dep == undefined && require.original)\n return;\n params.push(dep);\n }\n return callback && callback.apply(null, params) || true;\n }\n};\n\nvar require = function(module, callback) {\n var packagedModule = _require(\"\", module, callback);\n if (packagedModule == undefined && require.original)\n return require.original.apply(this, arguments);\n return packagedModule;\n};\n\nvar normalizeModule = function(parentId, moduleName) {\n // normalize plugin requires\n if (moduleName.indexOf(\"!\") !== -1) {\n var chunks = moduleName.split(\"!\");\n return normalizeModule(parentId, chunks[0]) + \"!\" + normalizeModule(parentId, chunks[1]);\n }\n // normalize relative requires\n if (moduleName.charAt(0) == \".\") {\n var base = parentId.split(\"/\").slice(0, -1).join(\"/\");\n moduleName = base + \"/\" + moduleName;\n\n while(moduleName.indexOf(\".\") !== -1 && previous != moduleName) {\n var previous = moduleName;\n moduleName = moduleName.replace(/\\/\\.\\//, \"/\").replace(/[^\\/]+\\/\\.\\.\\//, \"\");\n }\n }\n return moduleName;\n};\n\n/**\n * Internal function to lookup moduleNames and resolve them by calling the\n * definition function if needed.\n */\nvar lookup = function(parentId, moduleName) {\n moduleName = normalizeModule(parentId, moduleName);\n\n var module = define.modules[moduleName];\n if (!module) {\n module = define.payloads[moduleName];\n if (typeof module === 'function') {\n var exports = {};\n var mod = {\n id: moduleName,\n uri: '',\n exports: exports,\n packaged: true\n };\n\n var req = function(module, callback) {\n return _require(moduleName, module, callback);\n };\n\n var returnValue = module(req, exports, mod);\n exports = returnValue || mod.exports;\n define.modules[moduleName] = exports;\n delete define.payloads[moduleName];\n }\n module = define.modules[moduleName] = exports || module;\n }\n return module;\n};\n\nfunction exportAce(ns) {\n var root = global;\n if (ns) {\n if (!global[ns])\n global[ns] = {};\n root = global[ns];\n }\n\n if (!root.define || !root.define.packaged) {\n define.original = root.define;\n root.define = define;\n root.define.packaged = true;\n }\n\n if (!root.require || !root.require.packaged) {\n require.original = root.require;\n root.require = require;\n root.require.packaged = true;\n }\n}\n\nexportAce(ACE_NAMESPACE);\n\n})();\n\nace.define(\"ace/lib/es6-shim\",[\"require\",\"exports\",\"module\"], function(require, exports, module){function defineProp(obj, name, val) {\n Object.defineProperty(obj, name, {\n value: val,\n enumerable: false,\n writable: true,\n configurable: true\n });\n}\nif (!String.prototype.startsWith) {\n defineProp(String.prototype, \"startsWith\", function (searchString, position) {\n position = position || 0;\n return this.lastIndexOf(searchString, position) === position;\n });\n}\nif (!String.prototype.endsWith) {\n defineProp(String.prototype, \"endsWith\", function (searchString, position) {\n var subjectString = this;\n if (position === undefined || position > subjectString.length) {\n position = subjectString.length;\n }\n position -= searchString.length;\n var lastIndex = subjectString.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n });\n}\nif (!String.prototype.repeat) {\n defineProp(String.prototype, \"repeat\", function (count) {\n var result = \"\";\n var string = this;\n while (count > 0) {\n if (count & 1)\n result += string;\n if ((count >>= 1))\n string += string;\n }\n return result;\n });\n}\nif (!String.prototype.includes) {\n defineProp(String.prototype, \"includes\", function (str, position) {\n return this.indexOf(str, position) != -1;\n });\n}\nif (!Object.assign) {\n Object.assign = function (target) {\n if (target === undefined || target === null) {\n throw new TypeError(\"Cannot convert undefined or null to object\");\n }\n var output = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n if (source !== undefined && source !== null) {\n Object.keys(source).forEach(function (key) {\n output[key] = source[key];\n });\n }\n }\n return output;\n };\n}\nif (!Object.values) {\n Object.values = function (o) {\n return Object.keys(o).map(function (k) {\n return o[k];\n });\n };\n}\nif (!Array.prototype.find) {\n defineProp(Array.prototype, \"find\", function (predicate) {\n var len = this.length;\n var thisArg = arguments[1];\n for (var k = 0; k < len; k++) {\n var kValue = this[k];\n if (predicate.call(thisArg, kValue, k, this)) {\n return kValue;\n }\n }\n });\n}\nif (!Array.prototype.findIndex) {\n defineProp(Array.prototype, \"findIndex\", function (predicate) {\n var len = this.length;\n var thisArg = arguments[1];\n for (var k = 0; k < len; k++) {\n var kValue = this[k];\n if (predicate.call(thisArg, kValue, k, this)) {\n return k;\n }\n }\n });\n}\nif (!Array.prototype.includes) {\n defineProp(Array.prototype, \"includes\", function (item, position) {\n return this.indexOf(item, position) != -1;\n });\n}\nif (!Array.prototype.fill) {\n defineProp(Array.prototype, \"fill\", function (value) {\n var O = this;\n var len = O.length >>> 0;\n var start = arguments[1];\n var relativeStart = start >> 0;\n var k = relativeStart < 0\n ? Math.max(len + relativeStart, 0)\n : Math.min(relativeStart, len);\n var end = arguments[2];\n var relativeEnd = end === undefined ? len : end >> 0;\n var final = relativeEnd < 0\n ? Math.max(len + relativeEnd, 0)\n : Math.min(relativeEnd, len);\n while (k < final) {\n O[k] = value;\n k++;\n }\n return O;\n });\n}\nif (!Array.of) {\n defineProp(Array, \"of\", function () {\n return Array.prototype.slice.call(arguments);\n });\n}\n\n});\n\nace.define(\"ace/lib/fixoldbrowsers\",[\"require\",\"exports\",\"module\",\"ace/lib/es6-shim\"], function(require, exports, module){// vim:set ts=4 sts=4 sw=4 st:\n\"use strict\";\nrequire(\"./es6-shim\");\n\n});\n\nace.define(\"ace/lib/deep_copy\",[\"require\",\"exports\",\"module\"], function(require, exports, module){exports.deepCopy = function deepCopy(obj) {\n if (typeof obj !== \"object\" || !obj)\n return obj;\n var copy;\n if (Array.isArray(obj)) {\n copy = [];\n for (var key = 0; key < obj.length; key++) {\n copy[key] = deepCopy(obj[key]);\n }\n return copy;\n }\n if (Object.prototype.toString.call(obj) !== \"[object Object]\")\n return obj;\n copy = {};\n for (var key in obj)\n copy[key] = deepCopy(obj[key]);\n return copy;\n};\n\n});\n\nace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\",\"ace/lib/deep_copy\"], function(require, exports, module){\"use strict\";\nexports.last = function (a) {\n return a[a.length - 1];\n};\nexports.stringReverse = function (string) {\n return string.split(\"\").reverse().join(\"\");\n};\nexports.stringRepeat = function (string, count) {\n var result = '';\n while (count > 0) {\n if (count & 1)\n result += string;\n if (count >>= 1)\n string += string;\n }\n return result;\n};\nvar trimBeginRegexp = /^\\s\\s*/;\nvar trimEndRegexp = /\\s\\s*$/;\nexports.stringTrimLeft = function (string) {\n return string.replace(trimBeginRegexp, '');\n};\nexports.stringTrimRight = function (string) {\n return string.replace(trimEndRegexp, '');\n};\nexports.copyObject = function (obj) {\n var copy = {};\n for (var key in obj) {\n copy[key] = obj[key];\n }\n return copy;\n};\nexports.copyArray = function (array) {\n var copy = [];\n for (var i = 0, l = array.length; i < l; i++) {\n if (array[i] && typeof array[i] == \"object\")\n copy[i] = this.copyObject(array[i]);\n else\n copy[i] = array[i];\n }\n return copy;\n};\nexports.deepCopy = require(\"./deep_copy\").deepCopy;\nexports.arrayToMap = function (arr) {\n var map = {};\n for (var i = 0; i < arr.length; i++) {\n map[arr[i]] = 1;\n }\n return map;\n};\nexports.createMap = function (props) {\n var map = Object.create(null);\n for (var i in props) {\n map[i] = props[i];\n }\n return map;\n};\nexports.arrayRemove = function (array, value) {\n for (var i = 0; i <= array.length; i++) {\n if (value === array[i]) {\n array.splice(i, 1);\n }\n }\n};\nexports.escapeRegExp = function (str) {\n return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g, '\\\\$1');\n};\nexports.escapeHTML = function (str) {\n return (\"\" + str).replace(/&/g, \"&\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(/ 0xffff ? 2 : 1;\n};\n\n});\n\nace.define(\"ace/lib/useragent\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nexports.OS = {\n LINUX: \"LINUX\",\n MAC: \"MAC\",\n WINDOWS: \"WINDOWS\"\n};\nexports.getOS = function () {\n if (exports.isMac) {\n return exports.OS.MAC;\n }\n else if (exports.isLinux) {\n return exports.OS.LINUX;\n }\n else {\n return exports.OS.WINDOWS;\n }\n};\nvar _navigator = typeof navigator == \"object\" ? navigator : {};\nvar os = (/mac|win|linux/i.exec(_navigator.platform) || [\"other\"])[0].toLowerCase();\nvar ua = _navigator.userAgent || \"\";\nvar appName = _navigator.appName || \"\";\nexports.isWin = (os == \"win\");\nexports.isMac = (os == \"mac\");\nexports.isLinux = (os == \"linux\");\nexports.isIE =\n (appName == \"Microsoft Internet Explorer\" || appName.indexOf(\"MSAppHost\") >= 0)\n ? parseFloat((ua.match(/(?:MSIE |Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/) || [])[1])\n : parseFloat((ua.match(/(?:Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/) || [])[1]); // for ie\nexports.isOldIE = exports.isIE && exports.isIE < 9;\nexports.isGecko = exports.isMozilla = ua.match(/ Gecko\\/\\d+/);\nexports.isOpera = typeof opera == \"object\" && Object.prototype.toString.call(window.opera) == \"[object Opera]\";\nexports.isWebKit = parseFloat(ua.split(\"WebKit/\")[1]) || undefined;\nexports.isChrome = parseFloat(ua.split(\" Chrome/\")[1]) || undefined;\nexports.isSafari = parseFloat(ua.split(\" Safari/\")[1]) && !exports.isChrome || undefined;\nexports.isEdge = parseFloat(ua.split(\" Edge/\")[1]) || undefined;\nexports.isAIR = ua.indexOf(\"AdobeAIR\") >= 0;\nexports.isAndroid = ua.indexOf(\"Android\") >= 0;\nexports.isChromeOS = ua.indexOf(\" CrOS \") >= 0;\nexports.isIOS = /iPad|iPhone|iPod/.test(ua) && !window.MSStream;\nif (exports.isIOS)\n exports.isMac = true;\nexports.isMobile = exports.isIOS || exports.isAndroid;\n\n});\n\nace.define(\"ace/lib/dom\",[\"require\",\"exports\",\"module\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar useragent = require(\"./useragent\");\nvar XHTML_NS = \"http://www.w3.org/1999/xhtml\";\nexports.buildDom = function buildDom(arr, parent, refs) {\n if (typeof arr == \"string\" && arr) {\n var txt = document.createTextNode(arr);\n if (parent)\n parent.appendChild(txt);\n return txt;\n }\n if (!Array.isArray(arr)) {\n if (arr && arr.appendChild && parent)\n parent.appendChild(arr);\n return arr;\n }\n if (typeof arr[0] != \"string\" || !arr[0]) {\n var els = [];\n for (var i = 0; i < arr.length; i++) {\n var ch = buildDom(arr[i], parent, refs);\n ch && els.push(ch);\n }\n return els;\n }\n var el = document.createElement(arr[0]);\n var options = arr[1];\n var childIndex = 1;\n if (options && typeof options == \"object\" && !Array.isArray(options))\n childIndex = 2;\n for (var i = childIndex; i < arr.length; i++)\n buildDom(arr[i], el, refs);\n if (childIndex == 2) {\n Object.keys(options).forEach(function (n) {\n var val = options[n];\n if (n === \"class\") {\n el.className = Array.isArray(val) ? val.join(\" \") : val;\n }\n else if (typeof val == \"function\" || n == \"value\" || n[0] == \"$\") {\n el[n] = val;\n }\n else if (n === \"ref\") {\n if (refs)\n refs[val] = el;\n }\n else if (n === \"style\") {\n if (typeof val == \"string\")\n el.style.cssText = val;\n }\n else if (val != null) {\n el.setAttribute(n, val);\n }\n });\n }\n if (parent)\n parent.appendChild(el);\n return el;\n};\nexports.getDocumentHead = function (doc) {\n if (!doc)\n doc = document;\n return doc.head || doc.getElementsByTagName(\"head\")[0] || doc.documentElement;\n};\nexports.createElement = function (tag, ns) {\n return document.createElementNS ?\n document.createElementNS(ns || XHTML_NS, tag) :\n document.createElement(tag);\n};\nexports.removeChildren = function (element) {\n element.innerHTML = \"\";\n};\nexports.createTextNode = function (textContent, element) {\n var doc = element ? element.ownerDocument : document;\n return doc.createTextNode(textContent);\n};\nexports.createFragment = function (element) {\n var doc = element ? element.ownerDocument : document;\n return doc.createDocumentFragment();\n};\nexports.hasCssClass = function (el, name) {\n var classes = (el.className + \"\").split(/\\s+/g);\n return classes.indexOf(name) !== -1;\n};\nexports.addCssClass = function (el, name) {\n if (!exports.hasCssClass(el, name)) {\n el.className += \" \" + name;\n }\n};\nexports.removeCssClass = function (el, name) {\n var classes = el.className.split(/\\s+/g);\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n classes.splice(index, 1);\n }\n el.className = classes.join(\" \");\n};\nexports.toggleCssClass = function (el, name) {\n var classes = el.className.split(/\\s+/g), add = true;\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n add = false;\n classes.splice(index, 1);\n }\n if (add)\n classes.push(name);\n el.className = classes.join(\" \");\n return add;\n};\nexports.setCssClass = function (node, className, include) {\n if (include) {\n exports.addCssClass(node, className);\n }\n else {\n exports.removeCssClass(node, className);\n }\n};\nexports.hasCssString = function (id, doc) {\n var index = 0, sheets;\n doc = doc || document;\n if ((sheets = doc.querySelectorAll(\"style\"))) {\n while (index < sheets.length) {\n if (sheets[index++].id === id) {\n return true;\n }\n }\n }\n};\nexports.removeElementById = function (id, doc) {\n doc = doc || document;\n if (doc.getElementById(id)) {\n doc.getElementById(id).remove();\n }\n};\nvar strictCSP;\nvar cssCache = [];\nexports.useStrictCSP = function (value) {\n strictCSP = value;\n if (value == false)\n insertPendingStyles();\n else if (!cssCache)\n cssCache = [];\n};\nfunction insertPendingStyles() {\n var cache = cssCache;\n cssCache = null;\n cache && cache.forEach(function (item) {\n importCssString(item[0], item[1]);\n });\n}\nfunction importCssString(cssText, id, target) {\n if (typeof document == \"undefined\")\n return;\n if (cssCache) {\n if (target) {\n insertPendingStyles();\n }\n else if (target === false) {\n return cssCache.push([cssText, id]);\n }\n }\n if (strictCSP)\n return;\n var container = target;\n if (!target || !target.getRootNode) {\n container = document;\n }\n else {\n container = target.getRootNode();\n if (!container || container == target)\n container = document;\n }\n var doc = container.ownerDocument || container;\n if (id && exports.hasCssString(id, container))\n return null;\n if (id)\n cssText += \"\\n/*# sourceURL=ace/css/\" + id + \" */\";\n var style = exports.createElement(\"style\");\n style.appendChild(doc.createTextNode(cssText));\n if (id)\n style.id = id;\n if (container == doc)\n container = exports.getDocumentHead(doc);\n container.insertBefore(style, container.firstChild);\n}\nexports.importCssString = importCssString;\nexports.importCssStylsheet = function (uri, doc) {\n exports.buildDom([\"link\", { rel: \"stylesheet\", href: uri }], exports.getDocumentHead(doc));\n};\nexports.scrollbarWidth = function (doc) {\n var inner = exports.createElement(\"ace_inner\");\n inner.style.width = \"100%\";\n inner.style.minWidth = \"0px\";\n inner.style.height = \"200px\";\n inner.style.display = \"block\";\n var outer = exports.createElement(\"ace_outer\");\n var style = outer.style;\n style.position = \"absolute\";\n style.left = \"-10000px\";\n style.overflow = \"hidden\";\n style.width = \"200px\";\n style.minWidth = \"0px\";\n style.height = \"150px\";\n style.display = \"block\";\n outer.appendChild(inner);\n var body = (doc && doc.documentElement) || (document && document.documentElement);\n if (!body)\n return 0;\n body.appendChild(outer);\n var noScrollbar = inner.offsetWidth;\n style.overflow = \"scroll\";\n var withScrollbar = inner.offsetWidth;\n if (noScrollbar === withScrollbar) {\n withScrollbar = outer.clientWidth;\n }\n body.removeChild(outer);\n return noScrollbar - withScrollbar;\n};\nexports.computedStyle = function (element, style) {\n return window.getComputedStyle(element, \"\") || {};\n};\nexports.setStyle = function (styles, property, value) {\n if (styles[property] !== value) {\n styles[property] = value;\n }\n};\nexports.HAS_CSS_ANIMATION = false;\nexports.HAS_CSS_TRANSFORMS = false;\nexports.HI_DPI = useragent.isWin\n ? typeof window !== \"undefined\" && window.devicePixelRatio >= 1.5\n : true;\nif (useragent.isChromeOS)\n exports.HI_DPI = false;\nif (typeof document !== \"undefined\") {\n var div = document.createElement(\"div\");\n if (exports.HI_DPI && div.style.transform !== undefined)\n exports.HAS_CSS_TRANSFORMS = true;\n if (!useragent.isEdge && typeof div.style.animationName !== \"undefined\")\n exports.HAS_CSS_ANIMATION = true;\n div = null;\n}\nif (exports.HAS_CSS_TRANSFORMS) {\n exports.translate = function (element, tx, ty) {\n element.style.transform = \"translate(\" + Math.round(tx) + \"px, \" + Math.round(ty) + \"px)\";\n };\n}\nelse {\n exports.translate = function (element, tx, ty) {\n element.style.top = Math.round(ty) + \"px\";\n element.style.left = Math.round(tx) + \"px\";\n };\n}\n\n});\n\nace.define(\"ace/lib/net\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){/*\n * based on code from:\n *\n * @license RequireJS text 0.25.0 Copyright (c) 2010-2011, The Dojo Foundation All Rights Reserved.\n * Available via the MIT or new BSD license.\n * see: http://github.com/jrburke/requirejs for details\n */\n\"use strict\";\nvar dom = require(\"./dom\");\nexports.get = function (url, callback) {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, true);\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n callback(xhr.responseText);\n }\n };\n xhr.send(null);\n};\nexports.loadScript = function (path, callback) {\n var head = dom.getDocumentHead();\n var s = document.createElement('script');\n s.src = path;\n head.appendChild(s);\n s.onload = s.onreadystatechange = function (_, isAbort) {\n if (isAbort || !s.readyState || s.readyState == \"loaded\" || s.readyState == \"complete\") {\n s = s.onload = s.onreadystatechange = null;\n if (!isAbort)\n callback();\n }\n };\n};\nexports.qualifyURL = function (url) {\n var a = document.createElement('a');\n a.href = url;\n return a.href;\n};\n\n});\n\nace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nexports.inherits = function (ctor, superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n};\nexports.mixin = function (obj, mixin) {\n for (var key in mixin) {\n obj[key] = mixin[key];\n }\n return obj;\n};\nexports.implement = function (proto, mixin) {\n exports.mixin(proto, mixin);\n};\n\n});\n\nace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar EventEmitter = {};\nvar stopPropagation = function () { this.propagationStopped = true; };\nvar preventDefault = function () { this.defaultPrevented = true; };\nEventEmitter._emit =\n EventEmitter._dispatchEvent = function (eventName, e) {\n this._eventRegistry || (this._eventRegistry = {});\n this._defaultHandlers || (this._defaultHandlers = {});\n var listeners = this._eventRegistry[eventName] || [];\n var defaultHandler = this._defaultHandlers[eventName];\n if (!listeners.length && !defaultHandler)\n return;\n if (typeof e != \"object\" || !e)\n e = {};\n if (!e.type)\n e.type = eventName;\n if (!e.stopPropagation)\n e.stopPropagation = stopPropagation;\n if (!e.preventDefault)\n e.preventDefault = preventDefault;\n listeners = listeners.slice();\n for (var i = 0; i < listeners.length; i++) {\n listeners[i](e, this);\n if (e.propagationStopped)\n break;\n }\n if (defaultHandler && !e.defaultPrevented)\n return defaultHandler(e, this);\n };\nEventEmitter._signal = function (eventName, e) {\n var listeners = (this._eventRegistry || {})[eventName];\n if (!listeners)\n return;\n listeners = listeners.slice();\n for (var i = 0; i < listeners.length; i++)\n listeners[i](e, this);\n};\nEventEmitter.once = function (eventName, callback) {\n var _self = this;\n this.on(eventName, function newCallback() {\n _self.off(eventName, newCallback);\n callback.apply(null, arguments);\n });\n if (!callback) {\n return new Promise(function (resolve) {\n callback = resolve;\n });\n }\n};\nEventEmitter.setDefaultHandler = function (eventName, callback) {\n var handlers = this._defaultHandlers;\n if (!handlers)\n handlers = this._defaultHandlers = { _disabled_: {} };\n if (handlers[eventName]) {\n var old = handlers[eventName];\n var disabled = handlers._disabled_[eventName];\n if (!disabled)\n handlers._disabled_[eventName] = disabled = [];\n disabled.push(old);\n var i = disabled.indexOf(callback);\n if (i != -1)\n disabled.splice(i, 1);\n }\n handlers[eventName] = callback;\n};\nEventEmitter.removeDefaultHandler = function (eventName, callback) {\n var handlers = this._defaultHandlers;\n if (!handlers)\n return;\n var disabled = handlers._disabled_[eventName];\n if (handlers[eventName] == callback) {\n if (disabled)\n this.setDefaultHandler(eventName, disabled.pop());\n }\n else if (disabled) {\n var i = disabled.indexOf(callback);\n if (i != -1)\n disabled.splice(i, 1);\n }\n};\nEventEmitter.on =\n EventEmitter.addEventListener = function (eventName, callback, capturing) {\n this._eventRegistry = this._eventRegistry || {};\n var listeners = this._eventRegistry[eventName];\n if (!listeners)\n listeners = this._eventRegistry[eventName] = [];\n if (listeners.indexOf(callback) == -1)\n listeners[capturing ? \"unshift\" : \"push\"](callback);\n return callback;\n };\nEventEmitter.off =\n EventEmitter.removeListener =\n EventEmitter.removeEventListener = function (eventName, callback) {\n this._eventRegistry = this._eventRegistry || {};\n var listeners = this._eventRegistry[eventName];\n if (!listeners)\n return;\n var index = listeners.indexOf(callback);\n if (index !== -1)\n listeners.splice(index, 1);\n };\nEventEmitter.removeAllListeners = function (eventName) {\n if (!eventName)\n this._eventRegistry = this._defaultHandlers = undefined;\n if (this._eventRegistry)\n this._eventRegistry[eventName] = undefined;\n if (this._defaultHandlers)\n this._defaultHandlers[eventName] = undefined;\n};\nexports.EventEmitter = EventEmitter;\n\n});\n\nace.define(\"ace/lib/report_error\",[\"require\",\"exports\",\"module\"], function(require, exports, module){exports.reportError = function reportError(msg, data) {\n var e = new Error(msg);\n e.data = data;\n if (typeof console == \"object\" && console.error)\n console.error(e);\n setTimeout(function () { throw e; });\n};\n\n});\n\nace.define(\"ace/lib/app_config\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\",\"ace/lib/report_error\"], function(require, exports, module){\"no use strict\";\nvar oop = require(\"./oop\");\nvar EventEmitter = require(\"./event_emitter\").EventEmitter;\nvar reportError = require(\"./report_error\").reportError;\nvar optionsProvider = {\n setOptions: function (optList) {\n Object.keys(optList).forEach(function (key) {\n this.setOption(key, optList[key]);\n }, this);\n },\n getOptions: function (optionNames) {\n var result = {};\n if (!optionNames) {\n var options = this.$options;\n optionNames = Object.keys(options).filter(function (key) {\n return !options[key].hidden;\n });\n }\n else if (!Array.isArray(optionNames)) {\n result = optionNames;\n optionNames = Object.keys(result);\n }\n optionNames.forEach(function (key) {\n result[key] = this.getOption(key);\n }, this);\n return result;\n },\n setOption: function (name, value) {\n if (this[\"$\" + name] === value)\n return;\n var opt = this.$options[name];\n if (!opt) {\n return warn('misspelled option \"' + name + '\"');\n }\n if (opt.forwardTo)\n return this[opt.forwardTo] && this[opt.forwardTo].setOption(name, value);\n if (!opt.handlesSet)\n this[\"$\" + name] = value;\n if (opt && opt.set)\n opt.set.call(this, value);\n },\n getOption: function (name) {\n var opt = this.$options[name];\n if (!opt) {\n return warn('misspelled option \"' + name + '\"');\n }\n if (opt.forwardTo)\n return this[opt.forwardTo] && this[opt.forwardTo].getOption(name);\n return opt && opt.get ? opt.get.call(this) : this[\"$\" + name];\n }\n};\nfunction warn(message) {\n if (typeof console != \"undefined\" && console.warn)\n console.warn.apply(console, arguments);\n}\nvar messages;\nvar AppConfig = /** @class */ (function () {\n function AppConfig() {\n this.$defaultOptions = {};\n }\n AppConfig.prototype.defineOptions = function (obj, path, options) {\n if (!obj.$options)\n this.$defaultOptions[path] = obj.$options = {};\n Object.keys(options).forEach(function (key) {\n var opt = options[key];\n if (typeof opt == \"string\")\n opt = { forwardTo: opt };\n opt.name || (opt.name = key);\n obj.$options[opt.name] = opt;\n if (\"initialValue\" in opt)\n obj[\"$\" + opt.name] = opt.initialValue;\n });\n oop.implement(obj, optionsProvider);\n return this;\n };\n AppConfig.prototype.resetOptions = function (obj) {\n Object.keys(obj.$options).forEach(function (key) {\n var opt = obj.$options[key];\n if (\"value\" in opt)\n obj.setOption(key, opt.value);\n });\n };\n AppConfig.prototype.setDefaultValue = function (path, name, value) {\n if (!path) {\n for (path in this.$defaultOptions)\n if (this.$defaultOptions[path][name])\n break;\n if (!this.$defaultOptions[path][name])\n return false;\n }\n var opts = this.$defaultOptions[path] || (this.$defaultOptions[path] = {});\n if (opts[name]) {\n if (opts.forwardTo)\n this.setDefaultValue(opts.forwardTo, name, value);\n else\n opts[name].value = value;\n }\n };\n AppConfig.prototype.setDefaultValues = function (path, optionHash) {\n Object.keys(optionHash).forEach(function (key) {\n this.setDefaultValue(path, key, optionHash[key]);\n }, this);\n };\n AppConfig.prototype.setMessages = function (value) {\n messages = value;\n };\n AppConfig.prototype.nls = function (string, params) {\n if (messages && !messages[string]) {\n warn(\"No message found for '\" + string + \"' in the provided messages, falling back to default English message.\");\n }\n var translated = messages && messages[string] || string;\n if (params) {\n translated = translated.replace(/\\$(\\$|[\\d]+)/g, function (_, name) {\n if (name == \"$\")\n return \"$\";\n return params[name];\n });\n }\n return translated;\n };\n return AppConfig;\n}());\nAppConfig.prototype.warn = warn;\nAppConfig.prototype.reportError = reportError;\noop.implement(AppConfig.prototype, EventEmitter);\nexports.AppConfig = AppConfig;\n\n});\n\nace.define(\"ace/theme/textmate-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){module.exports = \".ace-tm .ace_gutter {\\n background: #f0f0f0;\\n color: #333;\\n}\\n\\n.ace-tm .ace_print-margin {\\n width: 1px;\\n background: #e8e8e8;\\n}\\n\\n.ace-tm .ace_fold {\\n background-color: #6B72E6;\\n}\\n\\n.ace-tm {\\n background-color: #FFFFFF;\\n color: black;\\n}\\n\\n.ace-tm .ace_cursor {\\n color: black;\\n}\\n \\n.ace-tm .ace_invisible {\\n color: rgb(191, 191, 191);\\n}\\n\\n.ace-tm .ace_storage,\\n.ace-tm .ace_keyword {\\n color: blue;\\n}\\n\\n.ace-tm .ace_constant {\\n color: rgb(197, 6, 11);\\n}\\n\\n.ace-tm .ace_constant.ace_buildin {\\n color: rgb(88, 72, 246);\\n}\\n\\n.ace-tm .ace_constant.ace_language {\\n color: rgb(88, 92, 246);\\n}\\n\\n.ace-tm .ace_constant.ace_library {\\n color: rgb(6, 150, 14);\\n}\\n\\n.ace-tm .ace_invalid {\\n background-color: rgba(255, 0, 0, 0.1);\\n color: red;\\n}\\n\\n.ace-tm .ace_support.ace_function {\\n color: rgb(60, 76, 114);\\n}\\n\\n.ace-tm .ace_support.ace_constant {\\n color: rgb(6, 150, 14);\\n}\\n\\n.ace-tm .ace_support.ace_type,\\n.ace-tm .ace_support.ace_class {\\n color: rgb(109, 121, 222);\\n}\\n\\n.ace-tm .ace_keyword.ace_operator {\\n color: rgb(104, 118, 135);\\n}\\n\\n.ace-tm .ace_string {\\n color: rgb(3, 106, 7);\\n}\\n\\n.ace-tm .ace_comment {\\n color: rgb(76, 136, 107);\\n}\\n\\n.ace-tm .ace_comment.ace_doc {\\n color: rgb(0, 102, 255);\\n}\\n\\n.ace-tm .ace_comment.ace_doc.ace_tag {\\n color: rgb(128, 159, 191);\\n}\\n\\n.ace-tm .ace_constant.ace_numeric {\\n color: rgb(0, 0, 205);\\n}\\n\\n.ace-tm .ace_variable {\\n color: rgb(49, 132, 149);\\n}\\n\\n.ace-tm .ace_xml-pe {\\n color: rgb(104, 104, 91);\\n}\\n\\n.ace-tm .ace_entity.ace_name.ace_function {\\n color: #0000A2;\\n}\\n\\n\\n.ace-tm .ace_heading {\\n color: rgb(12, 7, 255);\\n}\\n\\n.ace-tm .ace_list {\\n color:rgb(185, 6, 144);\\n}\\n\\n.ace-tm .ace_meta.ace_tag {\\n color:rgb(0, 22, 142);\\n}\\n\\n.ace-tm .ace_string.ace_regex {\\n color: rgb(255, 0, 0)\\n}\\n\\n.ace-tm .ace_marker-layer .ace_selection {\\n background: rgb(181, 213, 255);\\n}\\n.ace-tm.ace_multiselect .ace_selection.ace_start {\\n box-shadow: 0 0 3px 0px white;\\n}\\n.ace-tm .ace_marker-layer .ace_step {\\n background: rgb(252, 255, 0);\\n}\\n\\n.ace-tm .ace_marker-layer .ace_stack {\\n background: rgb(164, 229, 101);\\n}\\n\\n.ace-tm .ace_marker-layer .ace_bracket {\\n margin: -1px 0 0 -1px;\\n border: 1px solid rgb(192, 192, 192);\\n}\\n\\n.ace-tm .ace_marker-layer .ace_active-line {\\n background: rgba(0, 0, 0, 0.07);\\n}\\n\\n.ace-tm .ace_gutter-active-line {\\n background-color : #dcdcdc;\\n}\\n\\n.ace-tm .ace_marker-layer .ace_selected-word {\\n background: rgb(250, 250, 255);\\n border: 1px solid rgb(200, 200, 250);\\n}\\n\\n.ace-tm .ace_indent-guide {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\n}\\n\\n.ace-tm .ace_indent-guide-active {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC\\\") right repeat-y;\\n}\\n\";\n\n});\n\nace.define(\"ace/theme/textmate\",[\"require\",\"exports\",\"module\",\"ace/theme/textmate-css\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nexports.isDark = false;\nexports.cssClass = \"ace-tm\";\nexports.cssText = require(\"./textmate-css\");\nexports.$id = \"ace/theme/textmate\";\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass, false);\n\n});\n\nace.define(\"ace/config\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/net\",\"ace/lib/dom\",\"ace/lib/app_config\",\"ace/theme/textmate\"], function(require, exports, module){\"no use strict\";\nvar lang = require(\"./lib/lang\");\nvar net = require(\"./lib/net\");\nvar dom = require(\"./lib/dom\");\nvar AppConfig = require(\"./lib/app_config\").AppConfig;\nmodule.exports = exports = new AppConfig();\nvar options = {\n packaged: false,\n workerPath: null,\n modePath: null,\n themePath: null,\n basePath: \"\",\n suffix: \".js\",\n $moduleUrls: {},\n loadWorkerFromBlob: true,\n sharedPopups: false,\n useStrictCSP: null\n};\nexports.get = function (key) {\n if (!options.hasOwnProperty(key))\n throw new Error(\"Unknown config key: \" + key);\n return options[key];\n};\nexports.set = function (key, value) {\n if (options.hasOwnProperty(key))\n options[key] = value;\n else if (this.setDefaultValue(\"\", key, value) == false)\n throw new Error(\"Unknown config key: \" + key);\n if (key == \"useStrictCSP\")\n dom.useStrictCSP(value);\n};\nexports.all = function () {\n return lang.copyObject(options);\n};\nexports.$modes = {};\nexports.moduleUrl = function (name, component) {\n if (options.$moduleUrls[name])\n return options.$moduleUrls[name];\n var parts = name.split(\"/\");\n component = component || parts[parts.length - 2] || \"\";\n var sep = component == \"snippets\" ? \"/\" : \"-\";\n var base = parts[parts.length - 1];\n if (component == \"worker\" && sep == \"-\") {\n var re = new RegExp(\"^\" + component + \"[\\\\-_]|[\\\\-_]\" + component + \"$\", \"g\");\n base = base.replace(re, \"\");\n }\n if ((!base || base == component) && parts.length > 1)\n base = parts[parts.length - 2];\n var path = options[component + \"Path\"];\n if (path == null) {\n path = options.basePath;\n }\n else if (sep == \"/\") {\n component = sep = \"\";\n }\n if (path && path.slice(-1) != \"/\")\n path += \"/\";\n return path + component + sep + base + this.get(\"suffix\");\n};\nexports.setModuleUrl = function (name, subst) {\n return options.$moduleUrls[name] = subst;\n};\nvar loader = function (moduleName, cb) {\n if (moduleName === \"ace/theme/textmate\" || moduleName === \"./theme/textmate\")\n return cb(null, require(\"./theme/textmate\"));\n if (customLoader)\n return customLoader(moduleName, cb);\n console.error(\"loader is not configured\");\n};\nvar customLoader;\nexports.setLoader = function (cb) {\n customLoader = cb;\n};\nexports.dynamicModules = Object.create(null);\nexports.$loading = {};\nexports.$loaded = {};\nexports.loadModule = function (moduleName, onLoad) {\n var loadedModule, moduleType;\n if (Array.isArray(moduleName)) {\n moduleType = moduleName[0];\n moduleName = moduleName[1];\n }\n var load = function (module) {\n if (module && !exports.$loading[moduleName])\n return onLoad && onLoad(module);\n if (!exports.$loading[moduleName])\n exports.$loading[moduleName] = [];\n exports.$loading[moduleName].push(onLoad);\n if (exports.$loading[moduleName].length > 1)\n return;\n var afterLoad = function () {\n loader(moduleName, function (err, module) {\n if (module)\n exports.$loaded[moduleName] = module;\n exports._emit(\"load.module\", { name: moduleName, module: module });\n var listeners = exports.$loading[moduleName];\n exports.$loading[moduleName] = null;\n listeners.forEach(function (onLoad) {\n onLoad && onLoad(module);\n });\n });\n };\n if (!exports.get(\"packaged\"))\n return afterLoad();\n net.loadScript(exports.moduleUrl(moduleName, moduleType), afterLoad);\n reportErrorIfPathIsNotConfigured();\n };\n if (exports.dynamicModules[moduleName]) {\n exports.dynamicModules[moduleName]().then(function (module) {\n if (module.default) {\n load(module.default);\n }\n else {\n load(module);\n }\n });\n }\n else {\n try {\n loadedModule = this.$require(moduleName);\n }\n catch (e) { }\n load(loadedModule || exports.$loaded[moduleName]);\n }\n};\nexports.$require = function (moduleName) {\n if (typeof module.require == \"function\") {\n var req = \"require\";\n return module[req](moduleName);\n }\n};\nexports.setModuleLoader = function (moduleName, onLoad) {\n exports.dynamicModules[moduleName] = onLoad;\n};\nvar reportErrorIfPathIsNotConfigured = function () {\n if (!options.basePath && !options.workerPath\n && !options.modePath && !options.themePath\n && !Object.keys(options.$moduleUrls).length) {\n console.error(\"Unable to infer path to ace from script src,\", \"use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes\", \"or with webpack use ace/webpack-resolver\");\n reportErrorIfPathIsNotConfigured = function () { };\n }\n};\nexports.version = \"1.32.0\";\n\n});\n\nace.define(\"ace/loader_build\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/config\"], function(require, exports, module) {\n\"use strict\";\n\nrequire(\"./lib/fixoldbrowsers\");\nvar config = require(\"./config\");\nconfig.setLoader(function(moduleName, cb) {\n require([moduleName], function(module) {\n cb(null, module);\n });\n});\n\nvar global = (function() {\n return this || typeof window != \"undefined\" && window;\n})();\n\nmodule.exports = function(ace) {\n config.init = init;\n config.$require = require;\n ace.require = require;\n\n if (typeof define === \"function\")\n ace.define = define;\n};\ninit(true);function init(packaged) {\n\n if (!global || !global.document)\n return;\n \n config.set(\"packaged\", packaged || require.packaged || module.packaged || (global.define && define.packaged));\n\n var scriptOptions = {};\n var scriptUrl = \"\";\n var currentScript = (document.currentScript || document._currentScript ); // native or polyfill\n var currentDocument = currentScript && currentScript.ownerDocument || document;\n \n if (currentScript && currentScript.src) {\n scriptUrl = currentScript.src.split(/[?#]/)[0].split(\"/\").slice(0, -1).join(\"/\") || \"\";\n }\n \n var scripts = currentDocument.getElementsByTagName(\"script\");\n for (var i=0; i [\" + this.end.row + \"/\" + this.end.column + \"]\");\n };\n Range.prototype.contains = function (row, column) {\n return this.compare(row, column) == 0;\n };\n Range.prototype.compareRange = function (range) {\n var cmp, end = range.end, start = range.start;\n cmp = this.compare(end.row, end.column);\n if (cmp == 1) {\n cmp = this.compare(start.row, start.column);\n if (cmp == 1) {\n return 2;\n }\n else if (cmp == 0) {\n return 1;\n }\n else {\n return 0;\n }\n }\n else if (cmp == -1) {\n return -2;\n }\n else {\n cmp = this.compare(start.row, start.column);\n if (cmp == -1) {\n return -1;\n }\n else if (cmp == 1) {\n return 42;\n }\n else {\n return 0;\n }\n }\n };\n Range.prototype.comparePoint = function (p) {\n return this.compare(p.row, p.column);\n };\n Range.prototype.containsRange = function (range) {\n return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;\n };\n Range.prototype.intersects = function (range) {\n var cmp = this.compareRange(range);\n return (cmp == -1 || cmp == 0 || cmp == 1);\n };\n Range.prototype.isEnd = function (row, column) {\n return this.end.row == row && this.end.column == column;\n };\n Range.prototype.isStart = function (row, column) {\n return this.start.row == row && this.start.column == column;\n };\n Range.prototype.setStart = function (row, column) {\n if (typeof row == \"object\") {\n this.start.column = row.column;\n this.start.row = row.row;\n }\n else {\n this.start.row = row;\n this.start.column = column;\n }\n };\n Range.prototype.setEnd = function (row, column) {\n if (typeof row == \"object\") {\n this.end.column = row.column;\n this.end.row = row.row;\n }\n else {\n this.end.row = row;\n this.end.column = column;\n }\n };\n Range.prototype.inside = function (row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column) || this.isStart(row, column)) {\n return false;\n }\n else {\n return true;\n }\n }\n return false;\n };\n Range.prototype.insideStart = function (row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column)) {\n return false;\n }\n else {\n return true;\n }\n }\n return false;\n };\n Range.prototype.insideEnd = function (row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isStart(row, column)) {\n return false;\n }\n else {\n return true;\n }\n }\n return false;\n };\n Range.prototype.compare = function (row, column) {\n if (!this.isMultiLine()) {\n if (row === this.start.row) {\n return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);\n }\n }\n if (row < this.start.row)\n return -1;\n if (row > this.end.row)\n return 1;\n if (this.start.row === row)\n return column >= this.start.column ? 0 : -1;\n if (this.end.row === row)\n return column <= this.end.column ? 0 : 1;\n return 0;\n };\n Range.prototype.compareStart = function (row, column) {\n if (this.start.row == row && this.start.column == column) {\n return -1;\n }\n else {\n return this.compare(row, column);\n }\n };\n Range.prototype.compareEnd = function (row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n }\n else {\n return this.compare(row, column);\n }\n };\n Range.prototype.compareInside = function (row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n }\n else if (this.start.row == row && this.start.column == column) {\n return -1;\n }\n else {\n return this.compare(row, column);\n }\n };\n Range.prototype.clipRows = function (firstRow, lastRow) {\n if (this.end.row > lastRow)\n var end = { row: lastRow + 1, column: 0 };\n else if (this.end.row < firstRow)\n var end = { row: firstRow, column: 0 };\n if (this.start.row > lastRow)\n var start = { row: lastRow + 1, column: 0 };\n else if (this.start.row < firstRow)\n var start = { row: firstRow, column: 0 };\n return Range.fromPoints(start || this.start, end || this.end);\n };\n Range.prototype.extend = function (row, column) {\n var cmp = this.compare(row, column);\n if (cmp == 0)\n return this;\n else if (cmp == -1)\n var start = { row: row, column: column };\n else\n var end = { row: row, column: column };\n return Range.fromPoints(start || this.start, end || this.end);\n };\n Range.prototype.isEmpty = function () {\n return (this.start.row === this.end.row && this.start.column === this.end.column);\n };\n Range.prototype.isMultiLine = function () {\n return (this.start.row !== this.end.row);\n };\n Range.prototype.clone = function () {\n return Range.fromPoints(this.start, this.end);\n };\n Range.prototype.collapseRows = function () {\n if (this.end.column == 0)\n return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row - 1), 0);\n else\n return new Range(this.start.row, 0, this.end.row, 0);\n };\n Range.prototype.toScreenRange = function (session) {\n var screenPosStart = session.documentToScreenPosition(this.start);\n var screenPosEnd = session.documentToScreenPosition(this.end);\n return new Range(screenPosStart.row, screenPosStart.column, screenPosEnd.row, screenPosEnd.column);\n };\n Range.prototype.moveBy = function (row, column) {\n this.start.row += row;\n this.start.column += column;\n this.end.row += row;\n this.end.column += column;\n };\n return Range;\n}());\nRange.fromPoints = function (start, end) {\n return new Range(start.row, start.column, end.row, end.column);\n};\nRange.comparePoints = comparePoints;\nRange.comparePoints = function (p1, p2) {\n return p1.row - p2.row || p1.column - p2.column;\n};\nexports.Range = Range;\n\n});\n\nace.define(\"ace/lib/keys\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\"], function(require, exports, module){/*! @license\n==========================================================================\nSproutCore -- JavaScript Application Framework\ncopyright 2006-2009, Sprout Systems Inc., Apple Inc. and contributors.\n\nPermission is hereby granted, free of charge, to any person obtaining a\ncopy of this software and associated documentation files (the \"Software\"),\nto deal in the Software without restriction, including without limitation\nthe rights to use, copy, modify, merge, publish, distribute, sublicense,\nand/or sell copies of the Software, and to permit persons to whom the\nSoftware is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\nDEALINGS IN THE SOFTWARE.\n\nSproutCore and the SproutCore logo are trademarks of Sprout Systems, Inc.\n\nFor more information about SproutCore, visit http://www.sproutcore.com\n\n\n==========================================================================\n@license */\n\"use strict\";\nvar oop = require(\"./oop\");\nvar Keys = (function () {\n var ret = {\n MODIFIER_KEYS: {\n 16: 'Shift', 17: 'Ctrl', 18: 'Alt', 224: 'Meta',\n 91: 'MetaLeft', 92: 'MetaRight', 93: 'ContextMenu'\n },\n KEY_MODS: {\n \"ctrl\": 1, \"alt\": 2, \"option\": 2, \"shift\": 4,\n \"super\": 8, \"meta\": 8, \"command\": 8, \"cmd\": 8,\n \"control\": 1\n },\n FUNCTION_KEYS: {\n 8: \"Backspace\",\n 9: \"Tab\",\n 13: \"Return\",\n 19: \"Pause\",\n 27: \"Esc\",\n 32: \"Space\",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"Left\",\n 38: \"Up\",\n 39: \"Right\",\n 40: \"Down\",\n 44: \"Print\",\n 45: \"Insert\",\n 46: \"Delete\",\n 96: \"Numpad0\",\n 97: \"Numpad1\",\n 98: \"Numpad2\",\n 99: \"Numpad3\",\n 100: \"Numpad4\",\n 101: \"Numpad5\",\n 102: \"Numpad6\",\n 103: \"Numpad7\",\n 104: \"Numpad8\",\n 105: \"Numpad9\",\n '-13': \"NumpadEnter\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"Numlock\",\n 145: \"Scrolllock\"\n },\n PRINTABLE_KEYS: {\n 32: ' ', 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5',\n 54: '6', 55: '7', 56: '8', 57: '9', 59: ';', 61: '=', 65: 'a',\n 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h',\n 73: 'i', 74: 'j', 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o',\n 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't', 85: 'u', 86: 'v',\n 87: 'w', 88: 'x', 89: 'y', 90: 'z', 107: '+', 109: '-', 110: '.',\n 186: ';', 187: '=', 188: ',', 189: '-', 190: '.', 191: '/', 192: '`',\n 219: '[', 220: '\\\\', 221: ']', 222: \"'\", 111: '/', 106: '*'\n }\n };\n ret.PRINTABLE_KEYS[173] = '-';\n var name, i;\n for (i in ret.FUNCTION_KEYS) {\n name = ret.FUNCTION_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n for (i in ret.PRINTABLE_KEYS) {\n name = ret.PRINTABLE_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n oop.mixin(ret, ret.MODIFIER_KEYS);\n oop.mixin(ret, ret.PRINTABLE_KEYS);\n oop.mixin(ret, ret.FUNCTION_KEYS);\n ret.enter = ret[\"return\"];\n ret.escape = ret.esc;\n ret.del = ret[\"delete\"];\n (function () {\n var mods = [\"cmd\", \"ctrl\", \"alt\", \"shift\"];\n for (var i = Math.pow(2, mods.length); i--;) {\n ret.KEY_MODS[i] = mods.filter(function (x) {\n return i & ret.KEY_MODS[x];\n }).join(\"-\") + \"-\";\n }\n })();\n ret.KEY_MODS[0] = \"\";\n ret.KEY_MODS[-1] = \"input-\";\n return ret;\n})();\noop.mixin(exports, Keys);\nexports.default = exports;\nexports.keyCodeToString = function (keyCode) {\n var keyString = Keys[keyCode];\n if (typeof keyString != \"string\")\n keyString = String.fromCharCode(keyCode);\n return keyString.toLowerCase();\n};\n\n});\n\nace.define(\"ace/lib/event\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar keys = require(\"./keys\");\nvar useragent = require(\"./useragent\");\nvar pressedKeys = null;\nvar ts = 0;\nvar activeListenerOptions;\nfunction detectListenerOptionsSupport() {\n activeListenerOptions = false;\n try {\n document.createComment(\"\").addEventListener(\"test\", function () { }, {\n get passive() {\n activeListenerOptions = { passive: false };\n }\n });\n }\n catch (e) { }\n}\nfunction getListenerOptions() {\n if (activeListenerOptions == undefined)\n detectListenerOptionsSupport();\n return activeListenerOptions;\n}\nfunction EventListener(elem, type, callback) {\n this.elem = elem;\n this.type = type;\n this.callback = callback;\n}\nEventListener.prototype.destroy = function () {\n removeListener(this.elem, this.type, this.callback);\n this.elem = this.type = this.callback = undefined;\n};\nvar addListener = exports.addListener = function (elem, type, callback, destroyer) {\n elem.addEventListener(type, callback, getListenerOptions());\n if (destroyer)\n destroyer.$toDestroy.push(new EventListener(elem, type, callback));\n};\nvar removeListener = exports.removeListener = function (elem, type, callback) {\n elem.removeEventListener(type, callback, getListenerOptions());\n};\nexports.stopEvent = function (e) {\n exports.stopPropagation(e);\n exports.preventDefault(e);\n return false;\n};\nexports.stopPropagation = function (e) {\n if (e.stopPropagation)\n e.stopPropagation();\n};\nexports.preventDefault = function (e) {\n if (e.preventDefault)\n e.preventDefault();\n};\nexports.getButton = function (e) {\n if (e.type == \"dblclick\")\n return 0;\n if (e.type == \"contextmenu\" || (useragent.isMac && (e.ctrlKey && !e.altKey && !e.shiftKey)))\n return 2;\n return e.button;\n};\nexports.capture = function (el, eventHandler, releaseCaptureHandler) {\n var ownerDocument = el && el.ownerDocument || document;\n function onMouseUp(e) {\n eventHandler && eventHandler(e);\n releaseCaptureHandler && releaseCaptureHandler(e);\n removeListener(ownerDocument, \"mousemove\", eventHandler);\n removeListener(ownerDocument, \"mouseup\", onMouseUp);\n removeListener(ownerDocument, \"dragstart\", onMouseUp);\n }\n addListener(ownerDocument, \"mousemove\", eventHandler);\n addListener(ownerDocument, \"mouseup\", onMouseUp);\n addListener(ownerDocument, \"dragstart\", onMouseUp);\n return onMouseUp;\n};\nexports.addMouseWheelListener = function (el, callback, destroyer) {\n addListener(el, \"wheel\", function (e) {\n var factor = 0.15;\n var deltaX = e.deltaX || 0;\n var deltaY = e.deltaY || 0;\n switch (e.deltaMode) {\n case e.DOM_DELTA_PIXEL:\n e.wheelX = deltaX * factor;\n e.wheelY = deltaY * factor;\n break;\n case e.DOM_DELTA_LINE:\n var linePixels = 15;\n e.wheelX = deltaX * linePixels;\n e.wheelY = deltaY * linePixels;\n break;\n case e.DOM_DELTA_PAGE:\n var pagePixels = 150;\n e.wheelX = deltaX * pagePixels;\n e.wheelY = deltaY * pagePixels;\n break;\n }\n callback(e);\n }, destroyer);\n};\nexports.addMultiMouseDownListener = function (elements, timeouts, eventHandler, callbackName, destroyer) {\n var clicks = 0;\n var startX, startY, timer;\n var eventNames = {\n 2: \"dblclick\",\n 3: \"tripleclick\",\n 4: \"quadclick\"\n };\n function onMousedown(e) {\n if (exports.getButton(e) !== 0) {\n clicks = 0;\n }\n else if (e.detail > 1) {\n clicks++;\n if (clicks > 4)\n clicks = 1;\n }\n else {\n clicks = 1;\n }\n if (useragent.isIE) {\n var isNewClick = Math.abs(e.clientX - startX) > 5 || Math.abs(e.clientY - startY) > 5;\n if (!timer || isNewClick)\n clicks = 1;\n if (timer)\n clearTimeout(timer);\n timer = setTimeout(function () { timer = null; }, timeouts[clicks - 1] || 600);\n if (clicks == 1) {\n startX = e.clientX;\n startY = e.clientY;\n }\n }\n e._clicks = clicks;\n eventHandler[callbackName](\"mousedown\", e);\n if (clicks > 4)\n clicks = 0;\n else if (clicks > 1)\n return eventHandler[callbackName](eventNames[clicks], e);\n }\n if (!Array.isArray(elements))\n elements = [elements];\n elements.forEach(function (el) {\n addListener(el, \"mousedown\", onMousedown, destroyer);\n });\n};\nvar getModifierHash = function (e) {\n return 0 | (e.ctrlKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.metaKey ? 8 : 0);\n};\nexports.getModifierString = function (e) {\n return keys.KEY_MODS[getModifierHash(e)];\n};\nfunction normalizeCommandKeys(callback, e, keyCode) {\n var hashId = getModifierHash(e);\n if (!useragent.isMac && pressedKeys) {\n if (e.getModifierState && (e.getModifierState(\"OS\") || e.getModifierState(\"Win\")))\n hashId |= 8;\n if (pressedKeys.altGr) {\n if ((3 & hashId) != 3)\n pressedKeys.altGr = 0;\n else\n return;\n }\n if (keyCode === 18 || keyCode === 17) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (keyCode === 17 && location === 1) {\n if (pressedKeys[keyCode] == 1)\n ts = e.timeStamp;\n }\n else if (keyCode === 18 && hashId === 3 && location === 2) {\n var dt = e.timeStamp - ts;\n if (dt < 50)\n pressedKeys.altGr = true;\n }\n }\n }\n if (keyCode in keys.MODIFIER_KEYS) {\n keyCode = -1;\n }\n if (!hashId && keyCode === 13) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (location === 3) {\n callback(e, hashId, -keyCode);\n if (e.defaultPrevented)\n return;\n }\n }\n if (useragent.isChromeOS && hashId & 8) {\n callback(e, hashId, keyCode);\n if (e.defaultPrevented)\n return;\n else\n hashId &= ~8;\n }\n if (!hashId && !(keyCode in keys.FUNCTION_KEYS) && !(keyCode in keys.PRINTABLE_KEYS)) {\n return false;\n }\n return callback(e, hashId, keyCode);\n}\nexports.addCommandKeyListener = function (el, callback, destroyer) {\n if (useragent.isOldGecko || (useragent.isOpera && !(\"KeyboardEvent\" in window))) {\n var lastKeyDownKeyCode = null;\n addListener(el, \"keydown\", function (e) {\n lastKeyDownKeyCode = e.keyCode;\n }, destroyer);\n addListener(el, \"keypress\", function (e) {\n return normalizeCommandKeys(callback, e, lastKeyDownKeyCode);\n }, destroyer);\n }\n else {\n var lastDefaultPrevented = null;\n addListener(el, \"keydown\", function (e) {\n pressedKeys[e.keyCode] = (pressedKeys[e.keyCode] || 0) + 1;\n var result = normalizeCommandKeys(callback, e, e.keyCode);\n lastDefaultPrevented = e.defaultPrevented;\n return result;\n }, destroyer);\n addListener(el, \"keypress\", function (e) {\n if (lastDefaultPrevented && (e.ctrlKey || e.altKey || e.shiftKey || e.metaKey)) {\n exports.stopEvent(e);\n lastDefaultPrevented = null;\n }\n }, destroyer);\n addListener(el, \"keyup\", function (e) {\n pressedKeys[e.keyCode] = null;\n }, destroyer);\n if (!pressedKeys) {\n resetPressedKeys();\n addListener(window, \"focus\", resetPressedKeys);\n }\n }\n};\nfunction resetPressedKeys() {\n pressedKeys = Object.create(null);\n}\nif (typeof window == \"object\" && window.postMessage && !useragent.isOldIE) {\n var postMessageId = 1;\n exports.nextTick = function (callback, win) {\n win = win || window;\n var messageName = \"zero-timeout-message-\" + (postMessageId++);\n var listener = function (e) {\n if (e.data == messageName) {\n exports.stopPropagation(e);\n removeListener(win, \"message\", listener);\n callback();\n }\n };\n addListener(win, \"message\", listener);\n win.postMessage(messageName, \"*\");\n };\n}\nexports.$idleBlocked = false;\nexports.onIdle = function (cb, timeout) {\n return setTimeout(function handler() {\n if (!exports.$idleBlocked) {\n cb();\n }\n else {\n setTimeout(handler, 100);\n }\n }, timeout);\n};\nexports.$idleBlockId = null;\nexports.blockIdle = function (delay) {\n if (exports.$idleBlockId)\n clearTimeout(exports.$idleBlockId);\n exports.$idleBlocked = true;\n exports.$idleBlockId = setTimeout(function () {\n exports.$idleBlocked = false;\n }, delay || 100);\n};\nexports.nextFrame = typeof window == \"object\" && (window.requestAnimationFrame\n || window.mozRequestAnimationFrame\n || window.webkitRequestAnimationFrame\n || window.msRequestAnimationFrame\n || window.oRequestAnimationFrame);\nif (exports.nextFrame)\n exports.nextFrame = exports.nextFrame.bind(window);\nelse\n exports.nextFrame = function (callback) {\n setTimeout(callback, 17);\n };\n\n});\n\nace.define(\"ace/clipboard\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar $cancelT;\nmodule.exports = {\n lineMode: false,\n pasteCancelled: function () {\n if ($cancelT && $cancelT > Date.now() - 50)\n return true;\n return $cancelT = false;\n },\n cancel: function () {\n $cancelT = Date.now();\n }\n};\n\n});\n\nace.define(\"ace/keyboard/textinput\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/config\",\"ace/lib/useragent\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/clipboard\",\"ace/lib/keys\"], function(require, exports, module){\"use strict\";\nvar event = require(\"../lib/event\");\nvar nls = require(\"../config\").nls;\nvar useragent = require(\"../lib/useragent\");\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar clipboard = require(\"../clipboard\");\nvar BROKEN_SETDATA = useragent.isChrome < 18;\nvar USE_IE_MIME_TYPE = useragent.isIE;\nvar HAS_FOCUS_ARGS = useragent.isChrome > 63;\nvar MAX_LINE_LENGTH = 400;\nvar KEYS = require(\"../lib/keys\");\nvar MODS = KEYS.KEY_MODS;\nvar isIOS = useragent.isIOS;\nvar valueResetRegex = isIOS ? /\\s/ : /\\n/;\nvar isMobile = useragent.isMobile;\nvar TextInput = function (parentNode, host) {\n var text = dom.createElement(\"textarea\");\n text.className = \"ace_text-input\";\n text.setAttribute(\"wrap\", \"off\");\n text.setAttribute(\"autocorrect\", \"off\");\n text.setAttribute(\"autocapitalize\", \"off\");\n text.setAttribute(\"spellcheck\", false);\n text.style.opacity = \"0\";\n parentNode.insertBefore(text, parentNode.firstChild);\n var copied = false;\n var pasted = false;\n var inComposition = false;\n var sendingText = false;\n var tempStyle = '';\n if (!isMobile)\n text.style.fontSize = \"1px\";\n var commandMode = false;\n var ignoreFocusEvents = false;\n var lastValue = \"\";\n var lastSelectionStart = 0;\n var lastSelectionEnd = 0;\n var lastRestoreEnd = 0;\n var rowStart = Number.MAX_SAFE_INTEGER;\n var rowEnd = Number.MIN_SAFE_INTEGER;\n var numberOfExtraLines = 0;\n try {\n var isFocused = document.activeElement === text;\n }\n catch (e) { }\n this.setNumberOfExtraLines = function (number) {\n rowStart = Number.MAX_SAFE_INTEGER;\n rowEnd = Number.MIN_SAFE_INTEGER;\n if (number < 0) {\n numberOfExtraLines = 0;\n return;\n }\n numberOfExtraLines = number;\n };\n this.setAriaOptions = function (options) {\n if (options.activeDescendant) {\n text.setAttribute(\"aria-haspopup\", \"true\");\n text.setAttribute(\"aria-autocomplete\", options.inline ? \"both\" : \"list\");\n text.setAttribute(\"aria-activedescendant\", options.activeDescendant);\n }\n else {\n text.setAttribute(\"aria-haspopup\", \"false\");\n text.setAttribute(\"aria-autocomplete\", \"both\");\n text.removeAttribute(\"aria-activedescendant\");\n }\n if (options.role) {\n text.setAttribute(\"role\", options.role);\n }\n if (options.setLabel) {\n text.setAttribute(\"aria-roledescription\", nls(\"editor\"));\n if (host.session) {\n var row = host.session.selection.cursor.row;\n text.setAttribute(\"aria-label\", nls(\"Cursor at row $0\", [row + 1]));\n }\n }\n };\n this.setAriaOptions({ role: \"textbox\" });\n event.addListener(text, \"blur\", function (e) {\n if (ignoreFocusEvents)\n return;\n host.onBlur(e);\n isFocused = false;\n }, host);\n event.addListener(text, \"focus\", function (e) {\n if (ignoreFocusEvents)\n return;\n isFocused = true;\n if (useragent.isEdge) {\n try {\n if (!document.hasFocus())\n return;\n }\n catch (e) { }\n }\n host.onFocus(e);\n if (useragent.isEdge)\n setTimeout(resetSelection);\n else\n resetSelection();\n }, host);\n this.$focusScroll = false;\n this.focus = function () {\n this.setAriaOptions({\n setLabel: host.renderer.enableKeyboardAccessibility\n });\n if (tempStyle || HAS_FOCUS_ARGS || this.$focusScroll == \"browser\")\n return text.focus({ preventScroll: true });\n var top = text.style.top;\n text.style.position = \"fixed\";\n text.style.top = \"0px\";\n try {\n var isTransformed = text.getBoundingClientRect().top != 0;\n }\n catch (e) {\n return;\n }\n var ancestors = [];\n if (isTransformed) {\n var t = text.parentElement;\n while (t && t.nodeType == 1) {\n ancestors.push(t);\n t.setAttribute(\"ace_nocontext\", true);\n if (!t.parentElement && t.getRootNode)\n t = t.getRootNode().host;\n else\n t = t.parentElement;\n }\n }\n text.focus({ preventScroll: true });\n if (isTransformed) {\n ancestors.forEach(function (p) {\n p.removeAttribute(\"ace_nocontext\");\n });\n }\n setTimeout(function () {\n text.style.position = \"\";\n if (text.style.top == \"0px\")\n text.style.top = top;\n }, 0);\n };\n this.blur = function () {\n text.blur();\n };\n this.isFocused = function () {\n return isFocused;\n };\n host.on(\"beforeEndOperation\", function () {\n var curOp = host.curOp;\n var commandName = curOp && curOp.command && curOp.command.name;\n if (commandName == \"insertstring\")\n return;\n var isUserAction = commandName && (curOp.docChanged || curOp.selectionChanged);\n if (inComposition && isUserAction) {\n lastValue = text.value = \"\";\n onCompositionEnd();\n }\n resetSelection();\n });\n var positionToSelection = function (row, column) {\n var selection = column;\n for (var i = 1; i <= row - rowStart && i < 2 * numberOfExtraLines + 1; i++) {\n selection += host.session.getLine(row - i).length + 1;\n }\n return selection;\n };\n var resetSelection = isIOS\n ? function (value) {\n if (!isFocused || (copied && !value) || sendingText)\n return;\n if (!value)\n value = \"\";\n var newValue = \"\\n ab\" + value + \"cde fg\\n\";\n if (newValue != text.value)\n text.value = lastValue = newValue;\n var selectionStart = 4;\n var selectionEnd = 4 + (value.length || (host.selection.isEmpty() ? 0 : 1));\n if (lastSelectionStart != selectionStart || lastSelectionEnd != selectionEnd) {\n text.setSelectionRange(selectionStart, selectionEnd);\n }\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n }\n : function () {\n if (inComposition || sendingText)\n return;\n if (!isFocused && !afterContextMenu)\n return;\n inComposition = true;\n var selectionStart = 0;\n var selectionEnd = 0;\n var line = \"\";\n if (host.session) {\n var selection = host.selection;\n var range = selection.getRange();\n var row = selection.cursor.row;\n if (row === rowEnd + 1) {\n rowStart = rowEnd + 1;\n rowEnd = rowStart + 2 * numberOfExtraLines;\n }\n else if (row === rowStart - 1) {\n rowEnd = rowStart - 1;\n rowStart = rowEnd - 2 * numberOfExtraLines;\n }\n else if (row < rowStart - 1 || row > rowEnd + 1) {\n rowStart = row > numberOfExtraLines ? row - numberOfExtraLines : 0;\n rowEnd = row > numberOfExtraLines ? row + numberOfExtraLines : 2 * numberOfExtraLines;\n }\n var lines = [];\n for (var i = rowStart; i <= rowEnd; i++) {\n lines.push(host.session.getLine(i));\n }\n line = lines.join('\\n');\n selectionStart = positionToSelection(range.start.row, range.start.column);\n selectionEnd = positionToSelection(range.end.row, range.end.column);\n if (range.start.row < rowStart) {\n var prevLine = host.session.getLine(rowStart - 1);\n selectionStart = range.start.row < rowStart - 1 ? 0 : selectionStart;\n selectionEnd += prevLine.length + 1;\n line = prevLine + \"\\n\" + line;\n }\n else if (range.end.row > rowEnd) {\n var nextLine = host.session.getLine(rowEnd + 1);\n selectionEnd = range.end.row > rowEnd + 1 ? nextLine.length : range.end.column;\n selectionEnd += line.length + 1;\n line = line + \"\\n\" + nextLine;\n }\n else if (isMobile && row > 0) {\n line = \"\\n\" + line;\n selectionEnd += 1;\n selectionStart += 1;\n }\n if (line.length > MAX_LINE_LENGTH) {\n if (selectionStart < MAX_LINE_LENGTH && selectionEnd < MAX_LINE_LENGTH) {\n line = line.slice(0, MAX_LINE_LENGTH);\n }\n else {\n line = \"\\n\";\n if (selectionStart == selectionEnd) {\n selectionStart = selectionEnd = 0;\n }\n else {\n selectionStart = 0;\n selectionEnd = 1;\n }\n }\n }\n var newValue = line + \"\\n\\n\";\n if (newValue != lastValue) {\n text.value = lastValue = newValue;\n lastSelectionStart = lastSelectionEnd = newValue.length;\n }\n }\n if (afterContextMenu) {\n lastSelectionStart = text.selectionStart;\n lastSelectionEnd = text.selectionEnd;\n }\n if (lastSelectionEnd != selectionEnd\n || lastSelectionStart != selectionStart\n || text.selectionEnd != lastSelectionEnd // on ie edge selectionEnd changes silently after the initialization\n ) {\n try {\n text.setSelectionRange(selectionStart, selectionEnd);\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n }\n catch (e) { }\n }\n inComposition = false;\n };\n this.resetSelection = resetSelection;\n if (isFocused)\n host.onFocus();\n var isAllSelected = function (text) {\n return text.selectionStart === 0 && text.selectionEnd >= lastValue.length\n && text.value === lastValue && lastValue\n && text.selectionEnd !== lastSelectionEnd;\n };\n var onSelect = function (e) {\n if (inComposition)\n return;\n if (copied) {\n copied = false;\n }\n else if (isAllSelected(text)) {\n host.selectAll();\n resetSelection();\n }\n else if (isMobile && text.selectionStart != lastSelectionStart) {\n resetSelection();\n }\n };\n var inputHandler = null;\n this.setInputHandler = function (cb) { inputHandler = cb; };\n this.getInputHandler = function () { return inputHandler; };\n var afterContextMenu = false;\n var sendText = function (value, fromInput) {\n if (afterContextMenu)\n afterContextMenu = false;\n if (pasted) {\n resetSelection();\n if (value)\n host.onPaste(value);\n pasted = false;\n return \"\";\n }\n else {\n var selectionStart = text.selectionStart;\n var selectionEnd = text.selectionEnd;\n var extendLeft = lastSelectionStart;\n var extendRight = lastValue.length - lastSelectionEnd;\n var inserted = value;\n var restoreStart = value.length - selectionStart;\n var restoreEnd = value.length - selectionEnd;\n var i = 0;\n while (extendLeft > 0 && lastValue[i] == value[i]) {\n i++;\n extendLeft--;\n }\n inserted = inserted.slice(i);\n i = 1;\n while (extendRight > 0 && lastValue.length - i > lastSelectionStart - 1 && lastValue[lastValue.length - i] == value[value.length - i]) {\n i++;\n extendRight--;\n }\n restoreStart -= i - 1;\n restoreEnd -= i - 1;\n var endIndex = inserted.length - i + 1;\n if (endIndex < 0) {\n extendLeft = -endIndex;\n endIndex = 0;\n }\n inserted = inserted.slice(0, endIndex);\n if (!fromInput && !inserted && !restoreStart && !extendLeft && !extendRight && !restoreEnd)\n return \"\";\n sendingText = true;\n var shouldReset = false;\n if (useragent.isAndroid && inserted == \". \") {\n inserted = \" \";\n shouldReset = true;\n }\n if (inserted && !extendLeft && !extendRight && !restoreStart && !restoreEnd || commandMode) {\n host.onTextInput(inserted);\n }\n else {\n host.onTextInput(inserted, {\n extendLeft: extendLeft,\n extendRight: extendRight,\n restoreStart: restoreStart,\n restoreEnd: restoreEnd\n });\n }\n sendingText = false;\n lastValue = value;\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n lastRestoreEnd = restoreEnd;\n return shouldReset ? \"\\n\" : inserted;\n }\n };\n var onInput = function (e) {\n if (inComposition)\n return onCompositionUpdate();\n if (e && e.inputType) {\n if (e.inputType == \"historyUndo\")\n return host.execCommand(\"undo\");\n if (e.inputType == \"historyRedo\")\n return host.execCommand(\"redo\");\n }\n var data = text.value;\n var inserted = sendText(data, true);\n if (data.length > MAX_LINE_LENGTH + 100\n || valueResetRegex.test(inserted)\n || isMobile && lastSelectionStart < 1 && lastSelectionStart == lastSelectionEnd) {\n resetSelection();\n }\n };\n var handleClipboardData = function (e, data, forceIEMime) {\n var clipboardData = e.clipboardData || window.clipboardData;\n if (!clipboardData || BROKEN_SETDATA)\n return;\n var mime = USE_IE_MIME_TYPE || forceIEMime ? \"Text\" : \"text/plain\";\n try {\n if (data) {\n return clipboardData.setData(mime, data) !== false;\n }\n else {\n return clipboardData.getData(mime);\n }\n }\n catch (e) {\n if (!forceIEMime)\n return handleClipboardData(e, data, true);\n }\n };\n var doCopy = function (e, isCut) {\n var data = host.getCopyText();\n if (!data)\n return event.preventDefault(e);\n if (handleClipboardData(e, data)) {\n if (isIOS) {\n resetSelection(data);\n copied = data;\n setTimeout(function () {\n copied = false;\n }, 10);\n }\n isCut ? host.onCut() : host.onCopy();\n event.preventDefault(e);\n }\n else {\n copied = true;\n text.value = data;\n text.select();\n setTimeout(function () {\n copied = false;\n resetSelection();\n isCut ? host.onCut() : host.onCopy();\n });\n }\n };\n var onCut = function (e) {\n doCopy(e, true);\n };\n var onCopy = function (e) {\n doCopy(e, false);\n };\n var onPaste = function (e) {\n var data = handleClipboardData(e);\n if (clipboard.pasteCancelled())\n return;\n if (typeof data == \"string\") {\n if (data)\n host.onPaste(data, e);\n if (useragent.isIE)\n setTimeout(resetSelection);\n event.preventDefault(e);\n }\n else {\n text.value = \"\";\n pasted = true;\n }\n };\n event.addCommandKeyListener(text, host.onCommandKey.bind(host), host);\n event.addListener(text, \"select\", onSelect, host);\n event.addListener(text, \"input\", onInput, host);\n event.addListener(text, \"cut\", onCut, host);\n event.addListener(text, \"copy\", onCopy, host);\n event.addListener(text, \"paste\", onPaste, host);\n if (!('oncut' in text) || !('oncopy' in text) || !('onpaste' in text)) {\n event.addListener(parentNode, \"keydown\", function (e) {\n if ((useragent.isMac && !e.metaKey) || !e.ctrlKey)\n return;\n switch (e.keyCode) {\n case 67:\n onCopy(e);\n break;\n case 86:\n onPaste(e);\n break;\n case 88:\n onCut(e);\n break;\n }\n }, host);\n }\n var onCompositionStart = function (e) {\n if (inComposition || !host.onCompositionStart || host.$readOnly)\n return;\n inComposition = {};\n if (commandMode)\n return;\n if (e.data)\n inComposition.useTextareaForIME = false;\n setTimeout(onCompositionUpdate, 0);\n host._signal(\"compositionStart\");\n host.on(\"mousedown\", cancelComposition);\n var range = host.getSelectionRange();\n range.end.row = range.start.row;\n range.end.column = range.start.column;\n inComposition.markerRange = range;\n inComposition.selectionStart = lastSelectionStart;\n host.onCompositionStart(inComposition);\n if (inComposition.useTextareaForIME) {\n lastValue = text.value = \"\";\n lastSelectionStart = 0;\n lastSelectionEnd = 0;\n }\n else {\n if (text.msGetInputContext)\n inComposition.context = text.msGetInputContext();\n if (text.getInputContext)\n inComposition.context = text.getInputContext();\n }\n };\n var onCompositionUpdate = function () {\n if (!inComposition || !host.onCompositionUpdate || host.$readOnly)\n return;\n if (commandMode)\n return cancelComposition();\n if (inComposition.useTextareaForIME) {\n host.onCompositionUpdate(text.value);\n }\n else {\n var data = text.value;\n sendText(data);\n if (inComposition.markerRange) {\n if (inComposition.context) {\n inComposition.markerRange.start.column = inComposition.selectionStart\n = inComposition.context.compositionStartOffset;\n }\n inComposition.markerRange.end.column = inComposition.markerRange.start.column\n + lastSelectionEnd - inComposition.selectionStart + lastRestoreEnd;\n }\n }\n };\n var onCompositionEnd = function (e) {\n if (!host.onCompositionEnd || host.$readOnly)\n return;\n inComposition = false;\n host.onCompositionEnd();\n host.off(\"mousedown\", cancelComposition);\n if (e)\n onInput();\n };\n function cancelComposition() {\n ignoreFocusEvents = true;\n text.blur();\n text.focus();\n ignoreFocusEvents = false;\n }\n var syncComposition = lang.delayedCall(onCompositionUpdate, 50).schedule.bind(null, null);\n function onKeyup(e) {\n if (e.keyCode == 27 && text.value.length < text.selectionStart) {\n if (!inComposition)\n lastValue = text.value;\n lastSelectionStart = lastSelectionEnd = -1;\n resetSelection();\n }\n syncComposition();\n }\n event.addListener(text, \"compositionstart\", onCompositionStart, host);\n event.addListener(text, \"compositionupdate\", onCompositionUpdate, host);\n event.addListener(text, \"keyup\", onKeyup, host);\n event.addListener(text, \"keydown\", syncComposition, host);\n event.addListener(text, \"compositionend\", onCompositionEnd, host);\n this.getElement = function () {\n return text;\n };\n this.setCommandMode = function (value) {\n commandMode = value;\n text.readOnly = false;\n };\n this.setReadOnly = function (readOnly) {\n if (!commandMode)\n text.readOnly = readOnly;\n };\n this.setCopyWithEmptySelection = function (value) {\n };\n this.onContextMenu = function (e) {\n afterContextMenu = true;\n resetSelection();\n host._emit(\"nativecontextmenu\", { target: host, domEvent: e });\n this.moveToMouse(e, true);\n };\n this.moveToMouse = function (e, bringToFront) {\n if (!tempStyle)\n tempStyle = text.style.cssText;\n text.style.cssText = (bringToFront ? \"z-index:100000;\" : \"\")\n + (useragent.isIE ? \"opacity:0.1;\" : \"\")\n + \"text-indent: -\" + (lastSelectionStart + lastSelectionEnd) * host.renderer.characterWidth * 0.5 + \"px;\";\n var rect = host.container.getBoundingClientRect();\n var style = dom.computedStyle(host.container);\n var top = rect.top + (parseInt(style.borderTopWidth) || 0);\n var left = rect.left + (parseInt(rect.borderLeftWidth) || 0);\n var maxTop = rect.bottom - top - text.clientHeight - 2;\n var move = function (e) {\n dom.translate(text, e.clientX - left - 2, Math.min(e.clientY - top - 2, maxTop));\n };\n move(e);\n if (e.type != \"mousedown\")\n return;\n host.renderer.$isMousePressed = true;\n clearTimeout(closeTimeout);\n if (useragent.isWin)\n event.capture(host.container, move, onContextMenuClose);\n };\n this.onContextMenuClose = onContextMenuClose;\n var closeTimeout;\n function onContextMenuClose() {\n clearTimeout(closeTimeout);\n closeTimeout = setTimeout(function () {\n if (tempStyle) {\n text.style.cssText = tempStyle;\n tempStyle = '';\n }\n host.renderer.$isMousePressed = false;\n if (host.renderer.$keepTextAreaAtCursor)\n host.renderer.$moveTextAreaToCursor();\n }, 0);\n }\n var onContextMenu = function (e) {\n host.textInput.onContextMenu(e);\n onContextMenuClose();\n };\n event.addListener(text, \"mouseup\", onContextMenu, host);\n event.addListener(text, \"mousedown\", function (e) {\n e.preventDefault();\n onContextMenuClose();\n }, host);\n event.addListener(host.renderer.scroller, \"contextmenu\", onContextMenu, host);\n event.addListener(text, \"contextmenu\", onContextMenu, host);\n if (isIOS)\n addIosSelectionHandler(parentNode, host, text);\n function addIosSelectionHandler(parentNode, host, text) {\n var typingResetTimeout = null;\n var typing = false;\n text.addEventListener(\"keydown\", function (e) {\n if (typingResetTimeout)\n clearTimeout(typingResetTimeout);\n typing = true;\n }, true);\n text.addEventListener(\"keyup\", function (e) {\n typingResetTimeout = setTimeout(function () {\n typing = false;\n }, 100);\n }, true);\n var detectArrowKeys = function (e) {\n if (document.activeElement !== text)\n return;\n if (typing || inComposition || host.$mouseHandler.isMousePressed)\n return;\n if (copied) {\n return;\n }\n var selectionStart = text.selectionStart;\n var selectionEnd = text.selectionEnd;\n var key = null;\n var modifier = 0;\n if (selectionStart == 0) {\n key = KEYS.up;\n }\n else if (selectionStart == 1) {\n key = KEYS.home;\n }\n else if (selectionEnd > lastSelectionEnd && lastValue[selectionEnd] == \"\\n\") {\n key = KEYS.end;\n }\n else if (selectionStart < lastSelectionStart && lastValue[selectionStart - 1] == \" \") {\n key = KEYS.left;\n modifier = MODS.option;\n }\n else if (selectionStart < lastSelectionStart\n || (selectionStart == lastSelectionStart\n && lastSelectionEnd != lastSelectionStart\n && selectionStart == selectionEnd)) {\n key = KEYS.left;\n }\n else if (selectionEnd > lastSelectionEnd && lastValue.slice(0, selectionEnd).split(\"\\n\").length > 2) {\n key = KEYS.down;\n }\n else if (selectionEnd > lastSelectionEnd && lastValue[selectionEnd - 1] == \" \") {\n key = KEYS.right;\n modifier = MODS.option;\n }\n else if (selectionEnd > lastSelectionEnd\n || (selectionEnd == lastSelectionEnd\n && lastSelectionEnd != lastSelectionStart\n && selectionStart == selectionEnd)) {\n key = KEYS.right;\n }\n if (selectionStart !== selectionEnd)\n modifier |= MODS.shift;\n if (key) {\n var result = host.onCommandKey({}, modifier, key);\n if (!result && host.commands) {\n key = KEYS.keyCodeToString(key);\n var command = host.commands.findKeyCommand(modifier, key);\n if (command)\n host.execCommand(command);\n }\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n resetSelection(\"\");\n }\n };\n document.addEventListener(\"selectionchange\", detectArrowKeys);\n host.on(\"destroy\", function () {\n document.removeEventListener(\"selectionchange\", detectArrowKeys);\n });\n }\n this.destroy = function () {\n if (text.parentElement)\n text.parentElement.removeChild(text);\n };\n};\nexports.TextInput = TextInput;\nexports.$setUserAgentForTests = function (_isMobile, _isIOS) {\n isMobile = _isMobile;\n isIOS = _isIOS;\n};\n\n});\n\nace.define(\"ace/mouse/default_handlers\",[\"require\",\"exports\",\"module\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar useragent = require(\"../lib/useragent\");\nvar DRAG_OFFSET = 0; // pixels\nvar SCROLL_COOLDOWN_T = 550; // milliseconds\nvar DefaultHandlers = /** @class */ (function () {\n function DefaultHandlers(mouseHandler) {\n mouseHandler.$clickSelection = null;\n var editor = mouseHandler.editor;\n editor.setDefaultHandler(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n editor.setDefaultHandler(\"dblclick\", this.onDoubleClick.bind(mouseHandler));\n editor.setDefaultHandler(\"tripleclick\", this.onTripleClick.bind(mouseHandler));\n editor.setDefaultHandler(\"quadclick\", this.onQuadClick.bind(mouseHandler));\n editor.setDefaultHandler(\"mousewheel\", this.onMouseWheel.bind(mouseHandler));\n var exports = [\"select\", \"startSelect\", \"selectEnd\", \"selectAllEnd\", \"selectByWordsEnd\",\n \"selectByLinesEnd\", \"dragWait\", \"dragWaitEnd\", \"focusWait\"];\n exports.forEach(function (x) {\n mouseHandler[x] = this[x];\n }, this);\n mouseHandler.selectByLines = this.extendSelectionBy.bind(mouseHandler, \"getLineRange\");\n mouseHandler.selectByWords = this.extendSelectionBy.bind(mouseHandler, \"getWordRange\");\n }\n DefaultHandlers.prototype.onMouseDown = function (ev) {\n var inSelection = ev.inSelection();\n var pos = ev.getDocumentPosition();\n this.mousedownEvent = ev;\n var editor = this.editor;\n var button = ev.getButton();\n if (button !== 0) {\n var selectionRange = editor.getSelectionRange();\n var selectionEmpty = selectionRange.isEmpty();\n if (selectionEmpty || button == 1)\n editor.selection.moveToPosition(pos);\n if (button == 2) {\n editor.textInput.onContextMenu(ev.domEvent);\n if (!useragent.isMozilla)\n ev.preventDefault();\n }\n return;\n }\n this.mousedownEvent.time = Date.now();\n if (inSelection && !editor.isFocused()) {\n editor.focus();\n if (this.$focusTimeout && !this.$clickSelection && !editor.inMultiSelectMode) {\n this.setState(\"focusWait\");\n this.captureMouse(ev);\n return;\n }\n }\n this.captureMouse(ev);\n this.startSelect(pos, ev.domEvent._clicks > 1);\n return ev.preventDefault();\n };\n DefaultHandlers.prototype.startSelect = function (pos, waitForClickSelection) {\n pos = pos || this.editor.renderer.screenToTextCoordinates(this.x, this.y);\n var editor = this.editor;\n if (!this.mousedownEvent)\n return;\n if (this.mousedownEvent.getShiftKey())\n editor.selection.selectToPosition(pos);\n else if (!waitForClickSelection)\n editor.selection.moveToPosition(pos);\n if (!waitForClickSelection)\n this.select();\n editor.setStyle(\"ace_selecting\");\n this.setState(\"select\");\n };\n DefaultHandlers.prototype.select = function () {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n if (this.$clickSelection) {\n var cmp = this.$clickSelection.comparePoint(cursor);\n if (cmp == -1) {\n anchor = this.$clickSelection.end;\n }\n else if (cmp == 1) {\n anchor = this.$clickSelection.start;\n }\n else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n };\n DefaultHandlers.prototype.extendSelectionBy = function (unitName) {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n var range = editor.selection[unitName](cursor.row, cursor.column);\n if (this.$clickSelection) {\n var cmpStart = this.$clickSelection.comparePoint(range.start);\n var cmpEnd = this.$clickSelection.comparePoint(range.end);\n if (cmpStart == -1 && cmpEnd <= 0) {\n anchor = this.$clickSelection.end;\n if (range.end.row != cursor.row || range.end.column != cursor.column)\n cursor = range.start;\n }\n else if (cmpEnd == 1 && cmpStart >= 0) {\n anchor = this.$clickSelection.start;\n if (range.start.row != cursor.row || range.start.column != cursor.column)\n cursor = range.end;\n }\n else if (cmpStart == -1 && cmpEnd == 1) {\n cursor = range.end;\n anchor = range.start;\n }\n else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n };\n DefaultHandlers.prototype.selectByLinesEnd = function () {\n this.$clickSelection = null;\n this.editor.unsetStyle(\"ace_selecting\");\n };\n DefaultHandlers.prototype.focusWait = function () {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n var time = Date.now();\n if (distance > DRAG_OFFSET || time - this.mousedownEvent.time > this.$focusTimeout)\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n };\n DefaultHandlers.prototype.onDoubleClick = function (ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n var session = editor.session;\n var range = session.getBracketRange(pos);\n if (range) {\n if (range.isEmpty()) {\n range.start.column--;\n range.end.column++;\n }\n this.setState(\"select\");\n }\n else {\n range = editor.selection.getWordRange(pos.row, pos.column);\n this.setState(\"selectByWords\");\n }\n this.$clickSelection = range;\n this.select();\n };\n DefaultHandlers.prototype.onTripleClick = function (ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n this.setState(\"selectByLines\");\n var range = editor.getSelectionRange();\n if (range.isMultiLine() && range.contains(pos.row, pos.column)) {\n this.$clickSelection = editor.selection.getLineRange(range.start.row);\n this.$clickSelection.end = editor.selection.getLineRange(range.end.row).end;\n }\n else {\n this.$clickSelection = editor.selection.getLineRange(pos.row);\n }\n this.select();\n };\n DefaultHandlers.prototype.onQuadClick = function (ev) {\n var editor = this.editor;\n editor.selectAll();\n this.$clickSelection = editor.getSelectionRange();\n this.setState(\"selectAll\");\n };\n DefaultHandlers.prototype.onMouseWheel = function (ev) {\n if (ev.getAccelKey())\n return;\n if (ev.getShiftKey() && ev.wheelY && !ev.wheelX) {\n ev.wheelX = ev.wheelY;\n ev.wheelY = 0;\n }\n var editor = this.editor;\n if (!this.$lastScroll)\n this.$lastScroll = { t: 0, vx: 0, vy: 0, allowed: 0 };\n var prevScroll = this.$lastScroll;\n var t = ev.domEvent.timeStamp;\n var dt = t - prevScroll.t;\n var vx = dt ? ev.wheelX / dt : prevScroll.vx;\n var vy = dt ? ev.wheelY / dt : prevScroll.vy;\n if (dt < SCROLL_COOLDOWN_T) {\n vx = (vx + prevScroll.vx) / 2;\n vy = (vy + prevScroll.vy) / 2;\n }\n var direction = Math.abs(vx / vy);\n var canScroll = false;\n if (direction >= 1 && editor.renderer.isScrollableBy(ev.wheelX * ev.speed, 0))\n canScroll = true;\n if (direction <= 1 && editor.renderer.isScrollableBy(0, ev.wheelY * ev.speed))\n canScroll = true;\n if (canScroll) {\n prevScroll.allowed = t;\n }\n else if (t - prevScroll.allowed < SCROLL_COOLDOWN_T) {\n var isSlower = Math.abs(vx) <= 1.5 * Math.abs(prevScroll.vx)\n && Math.abs(vy) <= 1.5 * Math.abs(prevScroll.vy);\n if (isSlower) {\n canScroll = true;\n prevScroll.allowed = t;\n }\n else {\n prevScroll.allowed = 0;\n }\n }\n prevScroll.t = t;\n prevScroll.vx = vx;\n prevScroll.vy = vy;\n if (canScroll) {\n editor.renderer.scrollBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed);\n return ev.stop();\n }\n };\n return DefaultHandlers;\n}());\nDefaultHandlers.prototype.selectEnd = DefaultHandlers.prototype.selectByLinesEnd;\nDefaultHandlers.prototype.selectAllEnd = DefaultHandlers.prototype.selectByLinesEnd;\nDefaultHandlers.prototype.selectByWordsEnd = DefaultHandlers.prototype.selectByLinesEnd;\nexports.DefaultHandlers = DefaultHandlers;\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\nfunction calcRangeOrientation(range, cursor) {\n if (range.start.row == range.end.row)\n var cmp = 2 * cursor.column - range.start.column - range.end.column;\n else if (range.start.row == range.end.row - 1 && !range.start.column && !range.end.column)\n var cmp = cursor.column - 4;\n else\n var cmp = 2 * cursor.row - range.start.row - range.end.row;\n if (cmp < 0)\n return { cursor: range.start, anchor: range.end };\n else\n return { cursor: range.end, anchor: range.start };\n}\n\n});\n\nace.define(\"ace/tooltip\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar dom = require(\"./lib/dom\");\nvar event = require(\"./lib/event\");\nvar Range = require(\"./range\").Range;\nvar CLASSNAME = \"ace_tooltip\";\nvar Tooltip = /** @class */ (function () {\n function Tooltip(parentNode) {\n this.isOpen = false;\n this.$element = null;\n this.$parentNode = parentNode;\n }\n Tooltip.prototype.$init = function () {\n this.$element = dom.createElement(\"div\");\n this.$element.className = CLASSNAME;\n this.$element.style.display = \"none\";\n this.$parentNode.appendChild(this.$element);\n return this.$element;\n };\n Tooltip.prototype.getElement = function () {\n return this.$element || this.$init();\n };\n Tooltip.prototype.setText = function (text) {\n this.getElement().textContent = text;\n };\n Tooltip.prototype.setHtml = function (html) {\n this.getElement().innerHTML = html;\n };\n Tooltip.prototype.setPosition = function (x, y) {\n this.getElement().style.left = x + \"px\";\n this.getElement().style.top = y + \"px\";\n };\n Tooltip.prototype.setClassName = function (className) {\n dom.addCssClass(this.getElement(), className);\n };\n Tooltip.prototype.setTheme = function (theme) {\n this.$element.className = CLASSNAME + \" \" +\n (theme.isDark ? \"ace_dark \" : \"\") + (theme.cssClass || \"\");\n };\n Tooltip.prototype.show = function (text, x, y) {\n if (text != null)\n this.setText(text);\n if (x != null && y != null)\n this.setPosition(x, y);\n if (!this.isOpen) {\n this.getElement().style.display = \"block\";\n this.isOpen = true;\n }\n };\n Tooltip.prototype.hide = function () {\n if (this.isOpen) {\n this.getElement().style.display = \"none\";\n this.getElement().className = CLASSNAME;\n this.isOpen = false;\n }\n };\n Tooltip.prototype.getHeight = function () {\n return this.getElement().offsetHeight;\n };\n Tooltip.prototype.getWidth = function () {\n return this.getElement().offsetWidth;\n };\n Tooltip.prototype.destroy = function () {\n this.isOpen = false;\n if (this.$element && this.$element.parentNode) {\n this.$element.parentNode.removeChild(this.$element);\n }\n };\n return Tooltip;\n}());\nvar PopupManager = /** @class */ (function () {\n function PopupManager() {\n this.popups = [];\n }\n PopupManager.prototype.addPopup = function (popup) {\n this.popups.push(popup);\n this.updatePopups();\n };\n PopupManager.prototype.removePopup = function (popup) {\n var index = this.popups.indexOf(popup);\n if (index !== -1) {\n this.popups.splice(index, 1);\n this.updatePopups();\n }\n };\n PopupManager.prototype.updatePopups = function () {\n var e_1, _a, e_2, _b;\n this.popups.sort(function (a, b) { return b.priority - a.priority; });\n var visiblepopups = [];\n try {\n for (var _c = __values(this.popups), _d = _c.next(); !_d.done; _d = _c.next()) {\n var popup = _d.value;\n var shouldDisplay = true;\n try {\n for (var visiblepopups_1 = (e_2 = void 0, __values(visiblepopups)), visiblepopups_1_1 = visiblepopups_1.next(); !visiblepopups_1_1.done; visiblepopups_1_1 = visiblepopups_1.next()) {\n var visiblePopup = visiblepopups_1_1.value;\n if (this.doPopupsOverlap(visiblePopup, popup)) {\n shouldDisplay = false;\n break;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (visiblepopups_1_1 && !visiblepopups_1_1.done && (_b = visiblepopups_1.return)) _b.call(visiblepopups_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n if (shouldDisplay) {\n visiblepopups.push(popup);\n }\n else {\n popup.hide();\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n PopupManager.prototype.doPopupsOverlap = function (popupA, popupB) {\n var rectA = popupA.getElement().getBoundingClientRect();\n var rectB = popupB.getElement().getBoundingClientRect();\n return (rectA.left < rectB.right && rectA.right > rectB.left && rectA.top < rectB.bottom && rectA.bottom\n > rectB.top);\n };\n return PopupManager;\n}());\nvar popupManager = new PopupManager();\nexports.popupManager = popupManager;\nexports.Tooltip = Tooltip;\nvar HoverTooltip = /** @class */ (function (_super) {\n __extends(HoverTooltip, _super);\n function HoverTooltip(parentNode) {\n if (parentNode === void 0) { parentNode = document.body; }\n var _this = _super.call(this, parentNode) || this;\n _this.timeout = undefined;\n _this.lastT = 0;\n _this.idleTime = 350;\n _this.lastEvent = undefined;\n _this.onMouseOut = _this.onMouseOut.bind(_this);\n _this.onMouseMove = _this.onMouseMove.bind(_this);\n _this.waitForHover = _this.waitForHover.bind(_this);\n _this.hide = _this.hide.bind(_this);\n var el = _this.getElement();\n el.style.whiteSpace = \"pre-wrap\";\n el.style.pointerEvents = \"auto\";\n el.addEventListener(\"mouseout\", _this.onMouseOut);\n el.tabIndex = -1;\n el.addEventListener(\"blur\", function () {\n if (!el.contains(document.activeElement))\n this.hide();\n }.bind(_this));\n el.addEventListener(\"wheel\", event.stopPropagation);\n return _this;\n }\n HoverTooltip.prototype.addToEditor = function (editor) {\n editor.on(\"mousemove\", this.onMouseMove);\n editor.on(\"mousedown\", this.hide);\n editor.renderer.getMouseEventTarget().addEventListener(\"mouseout\", this.onMouseOut, true);\n };\n HoverTooltip.prototype.removeFromEditor = function (editor) {\n editor.off(\"mousemove\", this.onMouseMove);\n editor.off(\"mousedown\", this.hide);\n editor.renderer.getMouseEventTarget().removeEventListener(\"mouseout\", this.onMouseOut, true);\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n };\n HoverTooltip.prototype.onMouseMove = function (e, editor) {\n this.lastEvent = e;\n this.lastT = Date.now();\n var isMousePressed = editor.$mouseHandler.isMousePressed;\n if (this.isOpen) {\n var pos = this.lastEvent && this.lastEvent.getDocumentPosition();\n if (!this.range\n || !this.range.contains(pos.row, pos.column)\n || isMousePressed\n || this.isOutsideOfText(this.lastEvent)) {\n this.hide();\n }\n }\n if (this.timeout || isMousePressed)\n return;\n this.lastEvent = e;\n this.timeout = setTimeout(this.waitForHover, this.idleTime);\n };\n HoverTooltip.prototype.waitForHover = function () {\n if (this.timeout)\n clearTimeout(this.timeout);\n var dt = Date.now() - this.lastT;\n if (this.idleTime - dt > 10) {\n this.timeout = setTimeout(this.waitForHover, this.idleTime - dt);\n return;\n }\n this.timeout = null;\n if (this.lastEvent && !this.isOutsideOfText(this.lastEvent)) {\n this.$gatherData(this.lastEvent, this.lastEvent.editor);\n }\n };\n HoverTooltip.prototype.isOutsideOfText = function (e) {\n var editor = e.editor;\n var docPos = e.getDocumentPosition();\n var line = editor.session.getLine(docPos.row);\n if (docPos.column == line.length) {\n var screenPos = editor.renderer.pixelToScreenCoordinates(e.clientX, e.clientY);\n var clippedPos = editor.session.documentToScreenPosition(docPos.row, docPos.column);\n if (clippedPos.column != screenPos.column\n || clippedPos.row != screenPos.row) {\n return true;\n }\n }\n return false;\n };\n HoverTooltip.prototype.setDataProvider = function (value) {\n this.$gatherData = value;\n };\n HoverTooltip.prototype.showForRange = function (editor, range, domNode, startingEvent) {\n var MARGIN = 10;\n if (startingEvent && startingEvent != this.lastEvent)\n return;\n if (this.isOpen && document.activeElement == this.getElement())\n return;\n var renderer = editor.renderer;\n if (!this.isOpen) {\n popupManager.addPopup(this);\n this.$registerCloseEvents();\n this.setTheme(renderer.theme);\n }\n this.isOpen = true;\n this.addMarker(range, editor.session);\n this.range = Range.fromPoints(range.start, range.end);\n var position = renderer.textToScreenCoordinates(range.start.row, range.start.column);\n var rect = renderer.scroller.getBoundingClientRect();\n if (position.pageX < rect.left)\n position.pageX = rect.left;\n var element = this.getElement();\n element.innerHTML = \"\";\n element.appendChild(domNode);\n element.style.maxHeight = \"\";\n element.style.display = \"block\";\n var labelHeight = element.clientHeight;\n var labelWidth = element.clientWidth;\n var spaceBelow = window.innerHeight - position.pageY - renderer.lineHeight;\n var isAbove = true;\n if (position.pageY - labelHeight < 0 && position.pageY < spaceBelow) {\n isAbove = false;\n }\n element.style.maxHeight = (isAbove ? position.pageY : spaceBelow) - MARGIN + \"px\";\n element.style.top = isAbove ? \"\" : position.pageY + renderer.lineHeight + \"px\";\n element.style.bottom = isAbove ? window.innerHeight - position.pageY + \"px\" : \"\";\n element.style.left = Math.min(position.pageX, window.innerWidth - labelWidth - MARGIN) + \"px\";\n };\n HoverTooltip.prototype.addMarker = function (range, session) {\n if (this.marker) {\n this.$markerSession.removeMarker(this.marker);\n }\n this.$markerSession = session;\n this.marker = session && session.addMarker(range, \"ace_highlight-marker\", \"text\");\n };\n HoverTooltip.prototype.hide = function (e) {\n if (!e && document.activeElement == this.getElement())\n return;\n if (e && e.target && (e.type != \"keydown\" || e.ctrlKey || e.metaKey) && this.$element.contains(e.target))\n return;\n this.lastEvent = null;\n if (this.timeout)\n clearTimeout(this.timeout);\n this.timeout = null;\n this.addMarker(null);\n if (this.isOpen) {\n this.$removeCloseEvents();\n this.getElement().style.display = \"none\";\n this.isOpen = false;\n popupManager.removePopup(this);\n }\n };\n HoverTooltip.prototype.$registerCloseEvents = function () {\n window.addEventListener(\"keydown\", this.hide, true);\n window.addEventListener(\"wheel\", this.hide, true);\n window.addEventListener(\"mousedown\", this.hide, true);\n };\n HoverTooltip.prototype.$removeCloseEvents = function () {\n window.removeEventListener(\"keydown\", this.hide, true);\n window.removeEventListener(\"wheel\", this.hide, true);\n window.removeEventListener(\"mousedown\", this.hide, true);\n };\n HoverTooltip.prototype.onMouseOut = function (e) {\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n this.lastEvent = null;\n if (!this.isOpen)\n return;\n if (!e.relatedTarget || this.getElement().contains(e.relatedTarget))\n return;\n if (e && e.currentTarget.contains(e.relatedTarget))\n return;\n if (!e.relatedTarget.classList.contains(\"ace_content\"))\n this.hide();\n };\n return HoverTooltip;\n}(Tooltip));\nexports.HoverTooltip = HoverTooltip;\n\n});\n\nace.define(\"ace/mouse/default_gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/tooltip\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar dom = require(\"../lib/dom\");\nvar event = require(\"../lib/event\");\nvar Tooltip = require(\"../tooltip\").Tooltip;\nvar nls = require(\"../config\").nls;\nfunction GutterHandler(mouseHandler) {\n var editor = mouseHandler.editor;\n var gutter = editor.renderer.$gutterLayer;\n var tooltip = new GutterTooltip(editor);\n mouseHandler.editor.setDefaultHandler(\"guttermousedown\", function (e) {\n if (!editor.isFocused() || e.getButton() != 0)\n return;\n var gutterRegion = gutter.getRegion(e);\n if (gutterRegion == \"foldWidgets\")\n return;\n var row = e.getDocumentPosition().row;\n var selection = editor.session.selection;\n if (e.getShiftKey())\n selection.selectTo(row, 0);\n else {\n if (e.domEvent.detail == 2) {\n editor.selectAll();\n return e.preventDefault();\n }\n mouseHandler.$clickSelection = editor.selection.getLineRange(row);\n }\n mouseHandler.setState(\"selectByLines\");\n mouseHandler.captureMouse(e);\n return e.preventDefault();\n });\n var tooltipTimeout, mouseEvent;\n function showTooltip() {\n var row = mouseEvent.getDocumentPosition().row;\n var maxRow = editor.session.getLength();\n if (row == maxRow) {\n var screenRow = editor.renderer.pixelToScreenCoordinates(0, mouseEvent.y).row;\n var pos = mouseEvent.$pos;\n if (screenRow > editor.session.documentToScreenRow(pos.row, pos.column))\n return hideTooltip();\n }\n tooltip.showTooltip(row);\n if (!tooltip.isOpen)\n return;\n editor.on(\"mousewheel\", hideTooltip);\n if (mouseHandler.$tooltipFollowsMouse) {\n moveTooltip(mouseEvent);\n }\n else {\n var gutterRow = mouseEvent.getGutterRow();\n var gutterCell = gutter.$lines.get(gutterRow);\n if (gutterCell) {\n var gutterElement = gutterCell.element.querySelector(\".ace_gutter_annotation\");\n var rect = gutterElement.getBoundingClientRect();\n var style = tooltip.getElement().style;\n style.left = rect.right + \"px\";\n style.top = rect.bottom + \"px\";\n }\n else {\n moveTooltip(mouseEvent);\n }\n }\n }\n function hideTooltip() {\n if (tooltipTimeout)\n tooltipTimeout = clearTimeout(tooltipTimeout);\n if (tooltip.isOpen) {\n tooltip.hideTooltip();\n editor.off(\"mousewheel\", hideTooltip);\n }\n }\n function moveTooltip(e) {\n tooltip.setPosition(e.x, e.y);\n }\n mouseHandler.editor.setDefaultHandler(\"guttermousemove\", function (e) {\n var target = e.domEvent.target || e.domEvent.srcElement;\n if (dom.hasCssClass(target, \"ace_fold-widget\"))\n return hideTooltip();\n if (tooltip.isOpen && mouseHandler.$tooltipFollowsMouse)\n moveTooltip(e);\n mouseEvent = e;\n if (tooltipTimeout)\n return;\n tooltipTimeout = setTimeout(function () {\n tooltipTimeout = null;\n if (mouseEvent && !mouseHandler.isMousePressed)\n showTooltip();\n else\n hideTooltip();\n }, 50);\n });\n event.addListener(editor.renderer.$gutter, \"mouseout\", function (e) {\n mouseEvent = null;\n if (!tooltip.isOpen || tooltipTimeout)\n return;\n tooltipTimeout = setTimeout(function () {\n tooltipTimeout = null;\n hideTooltip();\n }, 50);\n }, editor);\n editor.on(\"changeSession\", hideTooltip);\n editor.on(\"input\", hideTooltip);\n}\nexports.GutterHandler = GutterHandler;\nvar GutterTooltip = /** @class */ (function (_super) {\n __extends(GutterTooltip, _super);\n function GutterTooltip(editor) {\n var _this = _super.call(this, editor.container) || this;\n _this.editor = editor;\n return _this;\n }\n GutterTooltip.prototype.setPosition = function (x, y) {\n var windowWidth = window.innerWidth || document.documentElement.clientWidth;\n var windowHeight = window.innerHeight || document.documentElement.clientHeight;\n var width = this.getWidth();\n var height = this.getHeight();\n x += 15;\n y += 15;\n if (x + width > windowWidth) {\n x -= (x + width) - windowWidth;\n }\n if (y + height > windowHeight) {\n y -= 20 + height;\n }\n Tooltip.prototype.setPosition.call(this, x, y);\n };\n Object.defineProperty(GutterTooltip, \"annotationLabels\", {\n get: function () {\n return {\n error: { singular: nls(\"error\"), plural: nls(\"errors\") },\n warning: { singular: nls(\"warning\"), plural: nls(\"warnings\") },\n info: { singular: nls(\"information message\"), plural: nls(\"information messages\") }\n };\n },\n enumerable: false,\n configurable: true\n });\n GutterTooltip.prototype.showTooltip = function (row) {\n var gutter = this.editor.renderer.$gutterLayer;\n var annotationsInRow = gutter.$annotations[row];\n var annotation;\n if (annotationsInRow)\n annotation = { text: Array.from(annotationsInRow.text), type: Array.from(annotationsInRow.type) };\n else\n annotation = { text: [], type: [] };\n var fold = gutter.session.getFoldLine(row);\n if (fold && gutter.$showFoldedAnnotations) {\n var annotationsInFold = { error: [], warning: [], info: [] };\n var mostSevereAnnotationInFoldType;\n for (var i = row + 1; i <= fold.end.row; i++) {\n if (!gutter.$annotations[i])\n continue;\n for (var j = 0; j < gutter.$annotations[i].text.length; j++) {\n var annotationType = gutter.$annotations[i].type[j];\n annotationsInFold[annotationType].push(gutter.$annotations[i].text[j]);\n if (annotationType === \"error\") {\n mostSevereAnnotationInFoldType = \"error_fold\";\n continue;\n }\n if (annotationType === \"warning\") {\n mostSevereAnnotationInFoldType = \"warning_fold\";\n continue;\n }\n }\n }\n if (mostSevereAnnotationInFoldType === \"error_fold\" || mostSevereAnnotationInFoldType === \"warning_fold\") {\n var summaryFoldedAnnotations = \"\".concat(GutterTooltip.annotationsToSummaryString(annotationsInFold), \" in folded code.\");\n annotation.text.push(summaryFoldedAnnotations);\n annotation.type.push(mostSevereAnnotationInFoldType);\n }\n }\n if (annotation.text.length === 0)\n return this.hide();\n var annotationMessages = { error: [], warning: [], info: [] };\n var iconClassName = gutter.$useSvgGutterIcons ? \"ace_icon_svg\" : \"ace_icon\";\n for (var i = 0; i < annotation.text.length; i++) {\n var line = \" \").concat(annotation.text[i]);\n annotationMessages[annotation.type[i].replace(\"_fold\", \"\")].push(line);\n }\n var tooltipContent = [].concat(annotationMessages.error, annotationMessages.warning, annotationMessages.info).join(\"
\");\n this.setHtml(tooltipContent);\n this.$element.setAttribute(\"aria-live\", \"polite\");\n if (!this.isOpen) {\n this.setTheme(this.editor.renderer.theme);\n this.setClassName(\"ace_gutter-tooltip\");\n }\n this.show();\n this.editor._signal(\"showGutterTooltip\", this);\n };\n GutterTooltip.prototype.hideTooltip = function () {\n this.$element.removeAttribute(\"aria-live\");\n this.hide();\n this.editor._signal(\"hideGutterTooltip\", this);\n };\n GutterTooltip.annotationsToSummaryString = function (annotations) {\n var e_1, _a;\n var summary = [];\n var annotationTypes = ['error', 'warning', 'info'];\n try {\n for (var annotationTypes_1 = __values(annotationTypes), annotationTypes_1_1 = annotationTypes_1.next(); !annotationTypes_1_1.done; annotationTypes_1_1 = annotationTypes_1.next()) {\n var annotationType = annotationTypes_1_1.value;\n if (!annotations[annotationType].length)\n continue;\n var label = annotations[annotationType].length === 1 ? GutterTooltip.annotationLabels[annotationType].singular : GutterTooltip.annotationLabels[annotationType].plural;\n summary.push(\"\".concat(annotations[annotationType].length, \" \").concat(label));\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (annotationTypes_1_1 && !annotationTypes_1_1.done && (_a = annotationTypes_1.return)) _a.call(annotationTypes_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return summary.join(\", \");\n };\n return GutterTooltip;\n}(Tooltip));\nexports.GutterTooltip = GutterTooltip;\n\n});\n\nace.define(\"ace/mouse/mouse_event\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar MouseEvent = /** @class */ (function () {\n function MouseEvent(domEvent, editor) {\n this.domEvent = domEvent;\n this.editor = editor;\n this.x = this.clientX = domEvent.clientX;\n this.y = this.clientY = domEvent.clientY;\n this.$pos = null;\n this.$inSelection = null;\n this.propagationStopped = false;\n this.defaultPrevented = false;\n }\n MouseEvent.prototype.stopPropagation = function () {\n event.stopPropagation(this.domEvent);\n this.propagationStopped = true;\n };\n MouseEvent.prototype.preventDefault = function () {\n event.preventDefault(this.domEvent);\n this.defaultPrevented = true;\n };\n MouseEvent.prototype.stop = function () {\n this.stopPropagation();\n this.preventDefault();\n };\n MouseEvent.prototype.getDocumentPosition = function () {\n if (this.$pos)\n return this.$pos;\n this.$pos = this.editor.renderer.screenToTextCoordinates(this.clientX, this.clientY);\n return this.$pos;\n };\n MouseEvent.prototype.getGutterRow = function () {\n var documentRow = this.getDocumentPosition().row;\n var screenRow = this.editor.session.documentToScreenRow(documentRow, 0);\n var screenTopRow = this.editor.session.documentToScreenRow(this.editor.renderer.$gutterLayer.$lines.get(0).row, 0);\n return screenRow - screenTopRow;\n };\n MouseEvent.prototype.inSelection = function () {\n if (this.$inSelection !== null)\n return this.$inSelection;\n var editor = this.editor;\n var selectionRange = editor.getSelectionRange();\n if (selectionRange.isEmpty())\n this.$inSelection = false;\n else {\n var pos = this.getDocumentPosition();\n this.$inSelection = selectionRange.contains(pos.row, pos.column);\n }\n return this.$inSelection;\n };\n MouseEvent.prototype.getButton = function () {\n return event.getButton(this.domEvent);\n };\n MouseEvent.prototype.getShiftKey = function () {\n return this.domEvent.shiftKey;\n };\n MouseEvent.prototype.getAccelKey = function () {\n return useragent.isMac ? this.domEvent.metaKey : this.domEvent.ctrlKey;\n };\n return MouseEvent;\n}());\nexports.MouseEvent = MouseEvent;\n\n});\n\nace.define(\"ace/mouse/dragdrop_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar AUTOSCROLL_DELAY = 200;\nvar SCROLL_CURSOR_DELAY = 200;\nvar SCROLL_CURSOR_HYSTERESIS = 5;\nfunction DragdropHandler(mouseHandler) {\n var editor = mouseHandler.editor;\n var dragImage = dom.createElement(\"div\");\n dragImage.style.cssText = \"top:-100px;position:absolute;z-index:2147483647;opacity:0.5\";\n dragImage.textContent = \"\\xa0\";\n var exports = [\"dragWait\", \"dragWaitEnd\", \"startDrag\", \"dragReadyEnd\", \"onMouseDrag\"];\n exports.forEach(function (x) {\n mouseHandler[x] = this[x];\n }, this);\n editor.on(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n var mouseTarget = editor.container;\n var dragSelectionMarker, x, y;\n var timerId, range;\n var dragCursor, counter = 0;\n var dragOperation;\n var isInternal;\n var autoScrollStartTime;\n var cursorMovedTime;\n var cursorPointOnCaretMoved;\n this.onDragStart = function (e) {\n if (this.cancelDrag || !mouseTarget.draggable) {\n var self = this;\n setTimeout(function () {\n self.startSelect();\n self.captureMouse(e);\n }, 0);\n return e.preventDefault();\n }\n range = editor.getSelectionRange();\n var dataTransfer = e.dataTransfer;\n dataTransfer.effectAllowed = editor.getReadOnly() ? \"copy\" : \"copyMove\";\n editor.container.appendChild(dragImage);\n dataTransfer.setDragImage && dataTransfer.setDragImage(dragImage, 0, 0);\n setTimeout(function () {\n editor.container.removeChild(dragImage);\n });\n dataTransfer.clearData();\n dataTransfer.setData(\"Text\", editor.session.getTextRange());\n isInternal = true;\n this.setState(\"drag\");\n };\n this.onDragEnd = function (e) {\n mouseTarget.draggable = false;\n isInternal = false;\n this.setState(null);\n if (!editor.getReadOnly()) {\n var dropEffect = e.dataTransfer.dropEffect;\n if (!dragOperation && dropEffect == \"move\")\n editor.session.remove(editor.getSelectionRange());\n editor.$resetCursorStyle();\n }\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n };\n this.onDragEnter = function (e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker)\n addDragMarker();\n counter++;\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n this.onDragOver = function (e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker) {\n addDragMarker();\n counter++;\n }\n if (onMouseMoveTimer !== null)\n onMouseMoveTimer = null;\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n this.onDragLeave = function (e) {\n counter--;\n if (counter <= 0 && dragSelectionMarker) {\n clearDragMarker();\n dragOperation = null;\n return event.preventDefault(e);\n }\n };\n this.onDrop = function (e) {\n if (!dragCursor)\n return;\n var dataTransfer = e.dataTransfer;\n if (isInternal) {\n switch (dragOperation) {\n case \"move\":\n if (range.contains(dragCursor.row, dragCursor.column)) {\n range = {\n start: dragCursor,\n end: dragCursor\n };\n }\n else {\n range = editor.moveText(range, dragCursor);\n }\n break;\n case \"copy\":\n range = editor.moveText(range, dragCursor, true);\n break;\n }\n }\n else {\n var dropData = dataTransfer.getData('Text');\n range = {\n start: dragCursor,\n end: editor.session.insert(dragCursor, dropData)\n };\n editor.focus();\n dragOperation = null;\n }\n clearDragMarker();\n return event.preventDefault(e);\n };\n event.addListener(mouseTarget, \"dragstart\", this.onDragStart.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragend\", this.onDragEnd.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragenter\", this.onDragEnter.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragover\", this.onDragOver.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragleave\", this.onDragLeave.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"drop\", this.onDrop.bind(mouseHandler), editor);\n function scrollCursorIntoView(cursor, prevCursor) {\n var now = Date.now();\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n var hMovement = !prevCursor || cursor.column != prevCursor.column;\n if (!cursorMovedTime || vMovement || hMovement) {\n editor.moveCursorToPosition(cursor);\n cursorMovedTime = now;\n cursorPointOnCaretMoved = { x: x, y: y };\n }\n else {\n var distance = calcDistance(cursorPointOnCaretMoved.x, cursorPointOnCaretMoved.y, x, y);\n if (distance > SCROLL_CURSOR_HYSTERESIS) {\n cursorMovedTime = null;\n }\n else if (now - cursorMovedTime >= SCROLL_CURSOR_DELAY) {\n editor.renderer.scrollCursorIntoView();\n cursorMovedTime = null;\n }\n }\n }\n function autoScroll(cursor, prevCursor) {\n var now = Date.now();\n var lineHeight = editor.renderer.layerConfig.lineHeight;\n var characterWidth = editor.renderer.layerConfig.characterWidth;\n var editorRect = editor.renderer.scroller.getBoundingClientRect();\n var offsets = {\n x: {\n left: x - editorRect.left,\n right: editorRect.right - x\n },\n y: {\n top: y - editorRect.top,\n bottom: editorRect.bottom - y\n }\n };\n var nearestXOffset = Math.min(offsets.x.left, offsets.x.right);\n var nearestYOffset = Math.min(offsets.y.top, offsets.y.bottom);\n var scrollCursor = { row: cursor.row, column: cursor.column };\n if (nearestXOffset / characterWidth <= 2) {\n scrollCursor.column += (offsets.x.left < offsets.x.right ? -3 : +2);\n }\n if (nearestYOffset / lineHeight <= 1) {\n scrollCursor.row += (offsets.y.top < offsets.y.bottom ? -1 : +1);\n }\n var vScroll = cursor.row != scrollCursor.row;\n var hScroll = cursor.column != scrollCursor.column;\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n if (vScroll || (hScroll && !vMovement)) {\n if (!autoScrollStartTime)\n autoScrollStartTime = now;\n else if (now - autoScrollStartTime >= AUTOSCROLL_DELAY)\n editor.renderer.scrollCursorIntoView(scrollCursor);\n }\n else {\n autoScrollStartTime = null;\n }\n }\n function onDragInterval() {\n var prevCursor = dragCursor;\n dragCursor = editor.renderer.screenToTextCoordinates(x, y);\n scrollCursorIntoView(dragCursor, prevCursor);\n autoScroll(dragCursor, prevCursor);\n }\n function addDragMarker() {\n range = editor.selection.toOrientedRange();\n dragSelectionMarker = editor.session.addMarker(range, \"ace_selection\", editor.getSelectionStyle());\n editor.clearSelection();\n if (editor.isFocused())\n editor.renderer.$cursorLayer.setBlinking(false);\n clearInterval(timerId);\n onDragInterval();\n timerId = setInterval(onDragInterval, 20);\n counter = 0;\n event.addListener(document, \"mousemove\", onMouseMove);\n }\n function clearDragMarker() {\n clearInterval(timerId);\n editor.session.removeMarker(dragSelectionMarker);\n dragSelectionMarker = null;\n editor.selection.fromOrientedRange(range);\n if (editor.isFocused() && !isInternal)\n editor.$resetCursorStyle();\n range = null;\n dragCursor = null;\n counter = 0;\n autoScrollStartTime = null;\n cursorMovedTime = null;\n event.removeListener(document, \"mousemove\", onMouseMove);\n }\n var onMouseMoveTimer = null;\n function onMouseMove() {\n if (onMouseMoveTimer == null) {\n onMouseMoveTimer = setTimeout(function () {\n if (onMouseMoveTimer != null && dragSelectionMarker)\n clearDragMarker();\n }, 20);\n }\n }\n function canAccept(dataTransfer) {\n var types = dataTransfer.types;\n return !types || Array.prototype.some.call(types, function (type) {\n return type == 'text/plain' || type == 'Text';\n });\n }\n function getDropEffect(e) {\n var copyAllowed = ['copy', 'copymove', 'all', 'uninitialized'];\n var moveAllowed = ['move', 'copymove', 'linkmove', 'all', 'uninitialized'];\n var copyModifierState = useragent.isMac ? e.altKey : e.ctrlKey;\n var effectAllowed = \"uninitialized\";\n try {\n effectAllowed = e.dataTransfer.effectAllowed.toLowerCase();\n }\n catch (e) { }\n var dropEffect = \"none\";\n if (copyModifierState && copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n else if (moveAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"move\";\n else if (copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n return dropEffect;\n }\n}\n(function () {\n this.dragWait = function () {\n var interval = Date.now() - this.mousedownEvent.time;\n if (interval > this.editor.getDragDelay())\n this.startDrag();\n };\n this.dragWaitEnd = function () {\n var target = this.editor.container;\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n this.selectEnd();\n };\n this.dragReadyEnd = function (e) {\n this.editor.$resetCursorStyle();\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n this.dragWaitEnd();\n };\n this.startDrag = function () {\n this.cancelDrag = false;\n var editor = this.editor;\n var target = editor.container;\n target.draggable = true;\n editor.renderer.$cursorLayer.setBlinking(false);\n editor.setStyle(\"ace_dragging\");\n var cursorStyle = useragent.isWin ? \"default\" : \"move\";\n editor.renderer.setCursorStyle(cursorStyle);\n this.setState(\"dragReady\");\n };\n this.onMouseDrag = function (e) {\n var target = this.editor.container;\n if (useragent.isIE && this.state == \"dragReady\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 3)\n target.dragDrop();\n }\n if (this.state === \"dragWait\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 0) {\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n }\n }\n };\n this.onMouseDown = function (e) {\n if (!this.$dragEnabled)\n return;\n this.mousedownEvent = e;\n var editor = this.editor;\n var inSelection = e.inSelection();\n var button = e.getButton();\n var clickCount = e.domEvent.detail || 1;\n if (clickCount === 1 && button === 0 && inSelection) {\n if (e.editor.inMultiSelectMode && (e.getAccelKey() || e.getShiftKey()))\n return;\n this.mousedownEvent.time = Date.now();\n var eventTarget = e.domEvent.target || e.domEvent.srcElement;\n if (\"unselectable\" in eventTarget)\n eventTarget.unselectable = \"on\";\n if (editor.getDragDelay()) {\n if (useragent.isWebKit) {\n this.cancelDrag = true;\n var mouseTarget = editor.container;\n mouseTarget.draggable = true;\n }\n this.setState(\"dragWait\");\n }\n else {\n this.startDrag();\n }\n this.captureMouse(e, this.onMouseDrag.bind(this));\n e.defaultPrevented = true;\n }\n };\n}).call(DragdropHandler.prototype);\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\nexports.DragdropHandler = DragdropHandler;\n\n});\n\nace.define(\"ace/mouse/touch_handler\",[\"require\",\"exports\",\"module\",\"ace/mouse/mouse_event\",\"ace/lib/event\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar MouseEvent = require(\"./mouse_event\").MouseEvent;\nvar event = require(\"../lib/event\");\nvar dom = require(\"../lib/dom\");\nexports.addTouchListeners = function (el, editor) {\n var mode = \"scroll\";\n var startX;\n var startY;\n var touchStartT;\n var lastT;\n var longTouchTimer;\n var animationTimer;\n var animationSteps = 0;\n var pos;\n var clickCount = 0;\n var vX = 0;\n var vY = 0;\n var pressed;\n var contextMenu;\n function createContextMenu() {\n var clipboard = window.navigator && window.navigator.clipboard;\n var isOpen = false;\n var updateMenu = function () {\n var selected = editor.getCopyText();\n var hasUndo = editor.session.getUndoManager().hasUndo();\n contextMenu.replaceChild(dom.buildDom(isOpen ? [\"span\",\n !selected && [\"span\", { class: \"ace_mobile-button\", action: \"selectall\" }, \"Select All\"],\n selected && [\"span\", { class: \"ace_mobile-button\", action: \"copy\" }, \"Copy\"],\n selected && [\"span\", { class: \"ace_mobile-button\", action: \"cut\" }, \"Cut\"],\n clipboard && [\"span\", { class: \"ace_mobile-button\", action: \"paste\" }, \"Paste\"],\n hasUndo && [\"span\", { class: \"ace_mobile-button\", action: \"undo\" }, \"Undo\"],\n [\"span\", { class: \"ace_mobile-button\", action: \"find\" }, \"Find\"],\n [\"span\", { class: \"ace_mobile-button\", action: \"openCommandPalette\" }, \"Palette\"]\n ] : [\"span\"]), contextMenu.firstChild);\n };\n var handleClick = function (e) {\n var action = e.target.getAttribute(\"action\");\n if (action == \"more\" || !isOpen) {\n isOpen = !isOpen;\n return updateMenu();\n }\n if (action == \"paste\") {\n clipboard.readText().then(function (text) {\n editor.execCommand(action, text);\n });\n }\n else if (action) {\n if (action == \"cut\" || action == \"copy\") {\n if (clipboard)\n clipboard.writeText(editor.getCopyText());\n else\n document.execCommand(\"copy\");\n }\n editor.execCommand(action);\n }\n contextMenu.firstChild.style.display = \"none\";\n isOpen = false;\n if (action != \"openCommandPalette\")\n editor.focus();\n };\n contextMenu = dom.buildDom([\"div\",\n {\n class: \"ace_mobile-menu\",\n ontouchstart: function (e) {\n mode = \"menu\";\n e.stopPropagation();\n e.preventDefault();\n editor.textInput.focus();\n },\n ontouchend: function (e) {\n e.stopPropagation();\n e.preventDefault();\n handleClick(e);\n },\n onclick: handleClick\n },\n [\"span\"],\n [\"span\", { class: \"ace_mobile-button\", action: \"more\" }, \"...\"]\n ], editor.container);\n }\n function showContextMenu() {\n if (!contextMenu)\n createContextMenu();\n var cursor = editor.selection.cursor;\n var pagePos = editor.renderer.textToScreenCoordinates(cursor.row, cursor.column);\n var leftOffset = editor.renderer.textToScreenCoordinates(0, 0).pageX;\n var scrollLeft = editor.renderer.scrollLeft;\n var rect = editor.container.getBoundingClientRect();\n contextMenu.style.top = pagePos.pageY - rect.top - 3 + \"px\";\n if (pagePos.pageX - rect.left < rect.width - 70) {\n contextMenu.style.left = \"\";\n contextMenu.style.right = \"10px\";\n }\n else {\n contextMenu.style.right = \"\";\n contextMenu.style.left = leftOffset + scrollLeft - rect.left + \"px\";\n }\n contextMenu.style.display = \"\";\n contextMenu.firstChild.style.display = \"none\";\n editor.on(\"input\", hideContextMenu);\n }\n function hideContextMenu(e) {\n if (contextMenu)\n contextMenu.style.display = \"none\";\n editor.off(\"input\", hideContextMenu);\n }\n function handleLongTap() {\n longTouchTimer = null;\n clearTimeout(longTouchTimer);\n var range = editor.selection.getRange();\n var inSelection = range.contains(pos.row, pos.column);\n if (range.isEmpty() || !inSelection) {\n editor.selection.moveToPosition(pos);\n editor.selection.selectWord();\n }\n mode = \"wait\";\n showContextMenu();\n }\n function switchToSelectionMode() {\n longTouchTimer = null;\n clearTimeout(longTouchTimer);\n editor.selection.moveToPosition(pos);\n var range = clickCount >= 2\n ? editor.selection.getLineRange(pos.row)\n : editor.session.getBracketRange(pos);\n if (range && !range.isEmpty()) {\n editor.selection.setRange(range);\n }\n else {\n editor.selection.selectWord();\n }\n mode = \"wait\";\n }\n event.addListener(el, \"contextmenu\", function (e) {\n if (!pressed)\n return;\n var textarea = editor.textInput.getElement();\n textarea.focus();\n }, editor);\n event.addListener(el, \"touchstart\", function (e) {\n var touches = e.touches;\n if (longTouchTimer || touches.length > 1) {\n clearTimeout(longTouchTimer);\n longTouchTimer = null;\n touchStartT = -1;\n mode = \"zoom\";\n return;\n }\n pressed = editor.$mouseHandler.isMousePressed = true;\n var h = editor.renderer.layerConfig.lineHeight;\n var w = editor.renderer.layerConfig.lineHeight;\n var t = e.timeStamp;\n lastT = t;\n var touchObj = touches[0];\n var x = touchObj.clientX;\n var y = touchObj.clientY;\n if (Math.abs(startX - x) + Math.abs(startY - y) > h)\n touchStartT = -1;\n startX = e.clientX = x;\n startY = e.clientY = y;\n vX = vY = 0;\n var ev = new MouseEvent(e, editor);\n pos = ev.getDocumentPosition();\n if (t - touchStartT < 500 && touches.length == 1 && !animationSteps) {\n clickCount++;\n e.preventDefault();\n e.button = 0;\n switchToSelectionMode();\n }\n else {\n clickCount = 0;\n var cursor = editor.selection.cursor;\n var anchor = editor.selection.isEmpty() ? cursor : editor.selection.anchor;\n var cursorPos = editor.renderer.$cursorLayer.getPixelPosition(cursor, true);\n var anchorPos = editor.renderer.$cursorLayer.getPixelPosition(anchor, true);\n var rect = editor.renderer.scroller.getBoundingClientRect();\n var offsetTop = editor.renderer.layerConfig.offset;\n var offsetLeft = editor.renderer.scrollLeft;\n var weightedDistance = function (x, y) {\n x = x / w;\n y = y / h - 0.75;\n return x * x + y * y;\n };\n if (e.clientX < rect.left) {\n mode = \"zoom\";\n return;\n }\n var diff1 = weightedDistance(e.clientX - rect.left - cursorPos.left + offsetLeft, e.clientY - rect.top - cursorPos.top + offsetTop);\n var diff2 = weightedDistance(e.clientX - rect.left - anchorPos.left + offsetLeft, e.clientY - rect.top - anchorPos.top + offsetTop);\n if (diff1 < 3.5 && diff2 < 3.5)\n mode = diff1 > diff2 ? \"cursor\" : \"anchor\";\n if (diff2 < 3.5)\n mode = \"anchor\";\n else if (diff1 < 3.5)\n mode = \"cursor\";\n else\n mode = \"scroll\";\n longTouchTimer = setTimeout(handleLongTap, 450);\n }\n touchStartT = t;\n }, editor);\n event.addListener(el, \"touchend\", function (e) {\n pressed = editor.$mouseHandler.isMousePressed = false;\n if (animationTimer)\n clearInterval(animationTimer);\n if (mode == \"zoom\") {\n mode = \"\";\n animationSteps = 0;\n }\n else if (longTouchTimer) {\n editor.selection.moveToPosition(pos);\n animationSteps = 0;\n showContextMenu();\n }\n else if (mode == \"scroll\") {\n animate();\n hideContextMenu();\n }\n else {\n showContextMenu();\n }\n clearTimeout(longTouchTimer);\n longTouchTimer = null;\n }, editor);\n event.addListener(el, \"touchmove\", function (e) {\n if (longTouchTimer) {\n clearTimeout(longTouchTimer);\n longTouchTimer = null;\n }\n var touches = e.touches;\n if (touches.length > 1 || mode == \"zoom\")\n return;\n var touchObj = touches[0];\n var wheelX = startX - touchObj.clientX;\n var wheelY = startY - touchObj.clientY;\n if (mode == \"wait\") {\n if (wheelX * wheelX + wheelY * wheelY > 4)\n mode = \"cursor\";\n else\n return e.preventDefault();\n }\n startX = touchObj.clientX;\n startY = touchObj.clientY;\n e.clientX = touchObj.clientX;\n e.clientY = touchObj.clientY;\n var t = e.timeStamp;\n var dt = t - lastT;\n lastT = t;\n if (mode == \"scroll\") {\n var mouseEvent = new MouseEvent(e, editor);\n mouseEvent.speed = 1;\n mouseEvent.wheelX = wheelX;\n mouseEvent.wheelY = wheelY;\n if (10 * Math.abs(wheelX) < Math.abs(wheelY))\n wheelX = 0;\n if (10 * Math.abs(wheelY) < Math.abs(wheelX))\n wheelY = 0;\n if (dt != 0) {\n vX = wheelX / dt;\n vY = wheelY / dt;\n }\n editor._emit(\"mousewheel\", mouseEvent);\n if (!mouseEvent.propagationStopped) {\n vX = vY = 0;\n }\n }\n else {\n var ev = new MouseEvent(e, editor);\n var pos = ev.getDocumentPosition();\n if (mode == \"cursor\")\n editor.selection.moveCursorToPosition(pos);\n else if (mode == \"anchor\")\n editor.selection.setSelectionAnchor(pos.row, pos.column);\n editor.renderer.scrollCursorIntoView(pos);\n e.preventDefault();\n }\n }, editor);\n function animate() {\n animationSteps += 60;\n animationTimer = setInterval(function () {\n if (animationSteps-- <= 0) {\n clearInterval(animationTimer);\n animationTimer = null;\n }\n if (Math.abs(vX) < 0.01)\n vX = 0;\n if (Math.abs(vY) < 0.01)\n vY = 0;\n if (animationSteps < 20)\n vX = 0.9 * vX;\n if (animationSteps < 20)\n vY = 0.9 * vY;\n var oldScrollTop = editor.session.getScrollTop();\n editor.renderer.scrollBy(10 * vX, 10 * vY);\n if (oldScrollTop == editor.session.getScrollTop())\n animationSteps = 0;\n }, 10);\n }\n};\n\n});\n\nace.define(\"ace/mouse/mouse_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/mouse/default_handlers\",\"ace/mouse/default_gutter_handler\",\"ace/mouse/mouse_event\",\"ace/mouse/dragdrop_handler\",\"ace/mouse/touch_handler\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar DefaultHandlers = require(\"./default_handlers\").DefaultHandlers;\nvar DefaultGutterHandler = require(\"./default_gutter_handler\").GutterHandler;\nvar MouseEvent = require(\"./mouse_event\").MouseEvent;\nvar DragdropHandler = require(\"./dragdrop_handler\").DragdropHandler;\nvar addTouchListeners = require(\"./touch_handler\").addTouchListeners;\nvar config = require(\"../config\");\nvar MouseHandler = /** @class */ (function () {\n function MouseHandler(editor) {\n var _self = this;\n this.editor = editor;\n new DefaultHandlers(this);\n new DefaultGutterHandler(this);\n new DragdropHandler(this);\n var focusEditor = function (e) {\n var windowBlurred = !document.hasFocus || !document.hasFocus()\n || !editor.isFocused() && document.activeElement == (editor.textInput && editor.textInput.getElement());\n if (windowBlurred)\n window.focus();\n editor.focus();\n setTimeout(function () {\n if (!editor.isFocused())\n editor.focus();\n });\n };\n var mouseTarget = editor.renderer.getMouseEventTarget();\n event.addListener(mouseTarget, \"click\", this.onMouseEvent.bind(this, \"click\"), editor);\n event.addListener(mouseTarget, \"mousemove\", this.onMouseMove.bind(this, \"mousemove\"), editor);\n event.addMultiMouseDownListener([\n mouseTarget,\n editor.renderer.scrollBarV && editor.renderer.scrollBarV.inner,\n editor.renderer.scrollBarH && editor.renderer.scrollBarH.inner,\n editor.textInput && editor.textInput.getElement()\n ].filter(Boolean), [400, 300, 250], this, \"onMouseEvent\", editor);\n event.addMouseWheelListener(editor.container, this.onMouseWheel.bind(this, \"mousewheel\"), editor);\n addTouchListeners(editor.container, editor);\n var gutterEl = editor.renderer.$gutter;\n event.addListener(gutterEl, \"mousedown\", this.onMouseEvent.bind(this, \"guttermousedown\"), editor);\n event.addListener(gutterEl, \"click\", this.onMouseEvent.bind(this, \"gutterclick\"), editor);\n event.addListener(gutterEl, \"dblclick\", this.onMouseEvent.bind(this, \"gutterdblclick\"), editor);\n event.addListener(gutterEl, \"mousemove\", this.onMouseEvent.bind(this, \"guttermousemove\"), editor);\n event.addListener(mouseTarget, \"mousedown\", focusEditor, editor);\n event.addListener(gutterEl, \"mousedown\", focusEditor, editor);\n if (useragent.isIE && editor.renderer.scrollBarV) {\n event.addListener(editor.renderer.scrollBarV.element, \"mousedown\", focusEditor, editor);\n event.addListener(editor.renderer.scrollBarH.element, \"mousedown\", focusEditor, editor);\n }\n editor.on(\"mousemove\", function (e) {\n if (_self.state || _self.$dragDelay || !_self.$dragEnabled)\n return;\n var character = editor.renderer.screenToTextCoordinates(e.x, e.y);\n var range = editor.session.selection.getRange();\n var renderer = editor.renderer;\n if (!range.isEmpty() && range.insideStart(character.row, character.column)) {\n renderer.setCursorStyle(\"default\");\n }\n else {\n renderer.setCursorStyle(\"\");\n }\n }, editor);\n }\n MouseHandler.prototype.onMouseEvent = function (name, e) {\n if (!this.editor.session)\n return;\n this.editor._emit(name, new MouseEvent(e, this.editor));\n };\n MouseHandler.prototype.onMouseMove = function (name, e) {\n var listeners = this.editor._eventRegistry && this.editor._eventRegistry.mousemove;\n if (!listeners || !listeners.length)\n return;\n this.editor._emit(name, new MouseEvent(e, this.editor));\n };\n MouseHandler.prototype.onMouseWheel = function (name, e) {\n var mouseEvent = new MouseEvent(e, this.editor);\n mouseEvent.speed = this.$scrollSpeed * 2;\n mouseEvent.wheelX = e.wheelX;\n mouseEvent.wheelY = e.wheelY;\n this.editor._emit(name, mouseEvent);\n };\n MouseHandler.prototype.setState = function (state) {\n this.state = state;\n };\n MouseHandler.prototype.captureMouse = function (ev, mouseMoveHandler) {\n this.x = ev.x;\n this.y = ev.y;\n this.isMousePressed = true;\n var editor = this.editor;\n var renderer = this.editor.renderer;\n renderer.$isMousePressed = true;\n var self = this;\n var onMouseMove = function (e) {\n if (!e)\n return;\n if (useragent.isWebKit && !e.which && self.releaseMouse)\n return self.releaseMouse();\n self.x = e.clientX;\n self.y = e.clientY;\n mouseMoveHandler && mouseMoveHandler(e);\n self.mouseEvent = new MouseEvent(e, self.editor);\n self.$mouseMoved = true;\n };\n var onCaptureEnd = function (e) {\n editor.off(\"beforeEndOperation\", onOperationEnd);\n clearInterval(timerId);\n if (editor.session)\n onCaptureInterval();\n self[self.state + \"End\"] && self[self.state + \"End\"](e);\n self.state = \"\";\n self.isMousePressed = renderer.$isMousePressed = false;\n if (renderer.$keepTextAreaAtCursor)\n renderer.$moveTextAreaToCursor();\n self.$onCaptureMouseMove = self.releaseMouse = null;\n e && self.onMouseEvent(\"mouseup\", e);\n editor.endOperation();\n };\n var onCaptureInterval = function () {\n self[self.state] && self[self.state]();\n self.$mouseMoved = false;\n };\n if (useragent.isOldIE && ev.domEvent.type == \"dblclick\") {\n return setTimeout(function () { onCaptureEnd(ev); });\n }\n var onOperationEnd = function (e) {\n if (!self.releaseMouse)\n return;\n if (editor.curOp.command.name && editor.curOp.selectionChanged) {\n self[self.state + \"End\"] && self[self.state + \"End\"]();\n self.state = \"\";\n self.releaseMouse();\n }\n };\n editor.on(\"beforeEndOperation\", onOperationEnd);\n editor.startOperation({ command: { name: \"mouse\" } });\n self.$onCaptureMouseMove = onMouseMove;\n self.releaseMouse = event.capture(this.editor.container, onMouseMove, onCaptureEnd);\n var timerId = setInterval(onCaptureInterval, 20);\n };\n MouseHandler.prototype.cancelContextMenu = function () {\n var stop = function (e) {\n if (e && e.domEvent && e.domEvent.type != \"contextmenu\")\n return;\n this.editor.off(\"nativecontextmenu\", stop);\n if (e && e.domEvent)\n event.stopEvent(e.domEvent);\n }.bind(this);\n setTimeout(stop, 10);\n this.editor.on(\"nativecontextmenu\", stop);\n };\n MouseHandler.prototype.destroy = function () {\n if (this.releaseMouse)\n this.releaseMouse();\n };\n return MouseHandler;\n}());\nMouseHandler.prototype.releaseMouse = null;\nconfig.defineOptions(MouseHandler.prototype, \"mouseHandler\", {\n scrollSpeed: { initialValue: 2 },\n dragDelay: { initialValue: (useragent.isMac ? 150 : 0) },\n dragEnabled: { initialValue: true },\n focusTimeout: { initialValue: 0 },\n tooltipFollowsMouse: { initialValue: true }\n});\nexports.MouseHandler = MouseHandler;\n\n});\n\nace.define(\"ace/mouse/fold_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar FoldHandler = /** @class */ (function () {\n function FoldHandler(editor) {\n editor.on(\"click\", function (e) {\n var position = e.getDocumentPosition();\n var session = editor.session;\n var fold = session.getFoldAt(position.row, position.column, 1);\n if (fold) {\n if (e.getAccelKey())\n session.removeFold(fold);\n else\n session.expandFold(fold);\n e.stop();\n }\n var target = e.domEvent && e.domEvent.target;\n if (target && dom.hasCssClass(target, \"ace_inline_button\")) {\n if (dom.hasCssClass(target, \"ace_toggle_wrap\")) {\n session.setOption(\"wrap\", !session.getUseWrapMode());\n editor.renderer.scrollCursorIntoView();\n }\n }\n });\n editor.on(\"gutterclick\", function (e) {\n var gutterRegion = editor.renderer.$gutterLayer.getRegion(e);\n if (gutterRegion == \"foldWidgets\") {\n var row = e.getDocumentPosition().row;\n var session = editor.session;\n if (session.foldWidgets && session.foldWidgets[row])\n editor.session.onFoldWidgetClick(row, e);\n if (!editor.isFocused())\n editor.focus();\n e.stop();\n }\n });\n editor.on(\"gutterdblclick\", function (e) {\n var gutterRegion = editor.renderer.$gutterLayer.getRegion(e);\n if (gutterRegion == \"foldWidgets\") {\n var row = e.getDocumentPosition().row;\n var session = editor.session;\n var data = session.getParentFoldRangeData(row, true);\n var range = data.range || data.firstRange;\n if (range) {\n row = range.start.row;\n var fold = session.getFoldAt(row, session.getLine(row).length, 1);\n if (fold) {\n session.removeFold(fold);\n }\n else {\n session.addFold(\"...\", range);\n editor.renderer.scrollCursorIntoView({ row: range.start.row, column: 0 });\n }\n }\n e.stop();\n }\n });\n }\n return FoldHandler;\n}());\nexports.FoldHandler = FoldHandler;\n\n});\n\nace.define(\"ace/keyboard/keybinding\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/event\"], function(require, exports, module){\"use strict\";\nvar keyUtil = require(\"../lib/keys\");\nvar event = require(\"../lib/event\");\nvar KeyBinding = /** @class */ (function () {\n function KeyBinding(editor) {\n this.$editor = editor;\n this.$data = { editor: editor };\n this.$handlers = [];\n this.setDefaultHandler(editor.commands);\n }\n KeyBinding.prototype.setDefaultHandler = function (kb) {\n this.removeKeyboardHandler(this.$defaultHandler);\n this.$defaultHandler = kb;\n this.addKeyboardHandler(kb, 0);\n };\n KeyBinding.prototype.setKeyboardHandler = function (kb) {\n var h = this.$handlers;\n if (h[h.length - 1] == kb)\n return;\n while (h[h.length - 1] && h[h.length - 1] != this.$defaultHandler)\n this.removeKeyboardHandler(h[h.length - 1]);\n this.addKeyboardHandler(kb, 1);\n };\n KeyBinding.prototype.addKeyboardHandler = function (kb, pos) {\n if (!kb)\n return;\n if (typeof kb == \"function\" && !kb.handleKeyboard)\n kb.handleKeyboard = kb;\n var i = this.$handlers.indexOf(kb);\n if (i != -1)\n this.$handlers.splice(i, 1);\n if (pos == undefined)\n this.$handlers.push(kb);\n else\n this.$handlers.splice(pos, 0, kb);\n if (i == -1 && kb.attach)\n kb.attach(this.$editor);\n };\n KeyBinding.prototype.removeKeyboardHandler = function (kb) {\n var i = this.$handlers.indexOf(kb);\n if (i == -1)\n return false;\n this.$handlers.splice(i, 1);\n kb.detach && kb.detach(this.$editor);\n return true;\n };\n KeyBinding.prototype.getKeyboardHandler = function () {\n return this.$handlers[this.$handlers.length - 1];\n };\n KeyBinding.prototype.getStatusText = function () {\n var data = this.$data;\n var editor = data.editor;\n return this.$handlers.map(function (h) {\n return h.getStatusText && h.getStatusText(editor, data) || \"\";\n }).filter(Boolean).join(\" \");\n };\n KeyBinding.prototype.$callKeyboardHandlers = function (hashId, keyString, keyCode, e) {\n var toExecute;\n var success = false;\n var commands = this.$editor.commands;\n for (var i = this.$handlers.length; i--;) {\n toExecute = this.$handlers[i].handleKeyboard(this.$data, hashId, keyString, keyCode, e);\n if (!toExecute || !toExecute.command)\n continue;\n if (toExecute.command == \"null\") {\n success = true;\n }\n else {\n success = commands.exec(toExecute.command, this.$editor, toExecute.args, e);\n }\n if (success && e && hashId != -1 &&\n toExecute.passEvent != true && toExecute.command.passEvent != true) {\n event.stopEvent(e);\n }\n if (success)\n break;\n }\n if (!success && hashId == -1) {\n toExecute = { command: \"insertstring\" };\n success = commands.exec(\"insertstring\", this.$editor, keyString);\n }\n if (success && this.$editor._signal)\n this.$editor._signal(\"keyboardActivity\", toExecute);\n return success;\n };\n KeyBinding.prototype.onCommandKey = function (e, hashId, keyCode) {\n var keyString = keyUtil.keyCodeToString(keyCode);\n return this.$callKeyboardHandlers(hashId, keyString, keyCode, e);\n };\n KeyBinding.prototype.onTextInput = function (text) {\n return this.$callKeyboardHandlers(-1, text);\n };\n return KeyBinding;\n}());\nexports.KeyBinding = KeyBinding;\n\n});\n\nace.define(\"ace/lib/bidiutil\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar ArabicAlefBetIntervalsBegine = ['\\u0621', '\\u0641'];\nvar ArabicAlefBetIntervalsEnd = ['\\u063A', '\\u064a'];\nvar dir = 0, hiLevel = 0;\nvar lastArabic = false, hasUBAT_AL = false, hasUBAT_B = false, hasUBAT_S = false, hasBlockSep = false, hasSegSep = false;\nvar impTab_LTR = [ [0, 3, 0, 1, 0, 0, 0], [0, 3, 0, 1, 2, 2, 0], [0, 3, 0, 0x11, 2, 0, 1], [0, 3, 5, 5, 4, 1, 0], [0, 3, 0x15, 0x15, 4, 0, 1], [0, 3, 5, 5, 4, 2, 0]\n];\nvar impTab_RTL = [ [2, 0, 1, 1, 0, 1, 0], [2, 0, 1, 1, 0, 2, 0], [2, 0, 2, 1, 3, 2, 0], [2, 0, 2, 0x21, 3, 1, 1]\n];\nvar LTR = 0, RTL = 1;\nvar L = 0;\nvar R = 1;\nvar EN = 2;\nvar AN = 3;\nvar ON = 4;\nvar B = 5;\nvar S = 6;\nvar AL = 7;\nvar WS = 8;\nvar CS = 9;\nvar ES = 10;\nvar ET = 11;\nvar NSM = 12;\nvar LRE = 13;\nvar RLE = 14;\nvar PDF = 15;\nvar LRO = 16;\nvar RLO = 17;\nvar BN = 18;\nvar UnicodeTBL00 = [\n BN, BN, BN, BN, BN, BN, BN, BN, BN, S, B, S, WS, B, BN, BN,\n BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, B, B, B, S,\n WS, ON, ON, ET, ET, ET, ON, ON, ON, ON, ON, ES, CS, ES, CS, CS,\n EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, CS, ON, ON, ON, ON, ON,\n ON, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L,\n L, L, L, L, L, L, L, L, L, L, L, ON, ON, ON, ON, ON,\n ON, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L,\n L, L, L, L, L, L, L, L, L, L, L, ON, ON, ON, ON, BN,\n BN, BN, BN, BN, BN, B, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN,\n BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN,\n CS, ON, ET, ET, ET, ET, ON, ON, ON, ON, L, ON, ON, BN, ON, ON,\n ET, ET, EN, EN, ON, L, ON, ON, ON, EN, L, ON, ON, ON, ON, ON\n];\nvar UnicodeTBL20 = [\n WS, WS, WS, WS, WS, WS, WS, WS, WS, WS, WS, BN, BN, BN, L, R,\n ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,\n ON, ON, ON, ON, ON, ON, ON, ON, WS, B, LRE, RLE, PDF, LRO, RLO, CS,\n ET, ET, ET, ET, ET, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,\n ON, ON, ON, ON, CS, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,\n ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, WS\n];\nfunction _computeLevels(chars, levels, len, charTypes) {\n var impTab = dir ? impTab_RTL : impTab_LTR, prevState = null, newClass = null, newLevel = null, newState = 0, action = null, cond = null, condPos = -1, i = null, ix = null, classes = [];\n if (!charTypes) {\n for (i = 0, charTypes = []; i < len; i++) {\n charTypes[i] = _getCharacterType(chars[i]);\n }\n }\n hiLevel = dir;\n lastArabic = false;\n hasUBAT_AL = false;\n hasUBAT_B = false;\n hasUBAT_S = false;\n for (ix = 0; ix < len; ix++) {\n prevState = newState;\n classes[ix] = newClass = _getCharClass(chars, charTypes, classes, ix);\n newState = impTab[prevState][newClass];\n action = newState & 0xF0;\n newState &= 0x0F;\n levels[ix] = newLevel = impTab[newState][5];\n if (action > 0) {\n if (action == 0x10) {\n for (i = condPos; i < ix; i++) {\n levels[i] = 1;\n }\n condPos = -1;\n }\n else {\n condPos = -1;\n }\n }\n cond = impTab[newState][6];\n if (cond) {\n if (condPos == -1) {\n condPos = ix;\n }\n }\n else {\n if (condPos > -1) {\n for (i = condPos; i < ix; i++) {\n levels[i] = newLevel;\n }\n condPos = -1;\n }\n }\n if (charTypes[ix] == B) {\n levels[ix] = 0;\n }\n hiLevel |= newLevel;\n }\n if (hasUBAT_S) {\n for (i = 0; i < len; i++) {\n if (charTypes[i] == S) {\n levels[i] = dir;\n for (var j = i - 1; j >= 0; j--) {\n if (charTypes[j] == WS) {\n levels[j] = dir;\n }\n else {\n break;\n }\n }\n }\n }\n }\n}\nfunction _invertLevel(lev, levels, _array) {\n if (hiLevel < lev) {\n return;\n }\n if (lev == 1 && dir == RTL && !hasUBAT_B) {\n _array.reverse();\n return;\n }\n var len = _array.length, start = 0, end, lo, hi, tmp;\n while (start < len) {\n if (levels[start] >= lev) {\n end = start + 1;\n while (end < len && levels[end] >= lev) {\n end++;\n }\n for (lo = start, hi = end - 1; lo < hi; lo++, hi--) {\n tmp = _array[lo];\n _array[lo] = _array[hi];\n _array[hi] = tmp;\n }\n start = end;\n }\n start++;\n }\n}\nfunction _getCharClass(chars, types, classes, ix) {\n var cType = types[ix], wType, nType, len, i;\n switch (cType) {\n case L:\n case R:\n lastArabic = false;\n case ON:\n case AN:\n return cType;\n case EN:\n return lastArabic ? AN : EN;\n case AL:\n lastArabic = true;\n hasUBAT_AL = true;\n return R;\n case WS:\n return ON;\n case CS:\n if (ix < 1 || (ix + 1) >= types.length ||\n ((wType = classes[ix - 1]) != EN && wType != AN) ||\n ((nType = types[ix + 1]) != EN && nType != AN)) {\n return ON;\n }\n if (lastArabic) {\n nType = AN;\n }\n return nType == wType ? nType : ON;\n case ES:\n wType = ix > 0 ? classes[ix - 1] : B;\n if (wType == EN && (ix + 1) < types.length && types[ix + 1] == EN) {\n return EN;\n }\n return ON;\n case ET:\n if (ix > 0 && classes[ix - 1] == EN) {\n return EN;\n }\n if (lastArabic) {\n return ON;\n }\n i = ix + 1;\n len = types.length;\n while (i < len && types[i] == ET) {\n i++;\n }\n if (i < len && types[i] == EN) {\n return EN;\n }\n return ON;\n case NSM:\n len = types.length;\n i = ix + 1;\n while (i < len && types[i] == NSM) {\n i++;\n }\n if (i < len) {\n var c = chars[ix], rtlCandidate = (c >= 0x0591 && c <= 0x08FF) || c == 0xFB1E;\n wType = types[i];\n if (rtlCandidate && (wType == R || wType == AL)) {\n return R;\n }\n }\n if (ix < 1 || (wType = types[ix - 1]) == B) {\n return ON;\n }\n return classes[ix - 1];\n case B:\n lastArabic = false;\n hasUBAT_B = true;\n return dir;\n case S:\n hasUBAT_S = true;\n return ON;\n case LRE:\n case RLE:\n case LRO:\n case RLO:\n case PDF:\n lastArabic = false;\n case BN:\n return ON;\n }\n}\nfunction _getCharacterType(ch) {\n var uc = ch.charCodeAt(0), hi = uc >> 8;\n if (hi == 0) {\n return ((uc > 0x00BF) ? L : UnicodeTBL00[uc]);\n }\n else if (hi == 5) {\n return (/[\\u0591-\\u05f4]/.test(ch) ? R : L);\n }\n else if (hi == 6) {\n if (/[\\u0610-\\u061a\\u064b-\\u065f\\u06d6-\\u06e4\\u06e7-\\u06ed]/.test(ch))\n return NSM;\n else if (/[\\u0660-\\u0669\\u066b-\\u066c]/.test(ch))\n return AN;\n else if (uc == 0x066A)\n return ET;\n else if (/[\\u06f0-\\u06f9]/.test(ch))\n return EN;\n else\n return AL;\n }\n else if (hi == 0x20 && uc <= 0x205F) {\n return UnicodeTBL20[uc & 0xFF];\n }\n else if (hi == 0xFE) {\n return (uc >= 0xFE70 ? AL : ON);\n }\n return ON;\n}\nfunction _isArabicDiacritics(ch) {\n return (ch >= '\\u064b' && ch <= '\\u0655');\n}\nexports.L = L;\nexports.R = R;\nexports.EN = EN;\nexports.ON_R = 3;\nexports.AN = 4;\nexports.R_H = 5;\nexports.B = 6;\nexports.RLE = 7;\nexports.DOT = \"\\xB7\";\nexports.doBidiReorder = function (text, textCharTypes, isRtl) {\n if (text.length < 2)\n return {};\n var chars = text.split(\"\"), logicalFromVisual = new Array(chars.length), bidiLevels = new Array(chars.length), levels = [];\n dir = isRtl ? RTL : LTR;\n _computeLevels(chars, levels, chars.length, textCharTypes);\n for (var i = 0; i < logicalFromVisual.length; logicalFromVisual[i] = i, i++)\n ;\n _invertLevel(2, levels, logicalFromVisual);\n _invertLevel(1, levels, logicalFromVisual);\n for (var i = 0; i < logicalFromVisual.length - 1; i++) { //fix levels to reflect character width\n if (textCharTypes[i] === AN) {\n levels[i] = exports.AN;\n }\n else if (levels[i] === R && ((textCharTypes[i] > AL && textCharTypes[i] < LRE)\n || textCharTypes[i] === ON || textCharTypes[i] === BN)) {\n levels[i] = exports.ON_R;\n }\n else if ((i > 0 && chars[i - 1] === '\\u0644') && /\\u0622|\\u0623|\\u0625|\\u0627/.test(chars[i])) {\n levels[i - 1] = levels[i] = exports.R_H;\n i++;\n }\n }\n if (chars[chars.length - 1] === exports.DOT)\n levels[chars.length - 1] = exports.B;\n if (chars[0] === '\\u202B')\n levels[0] = exports.RLE;\n for (var i = 0; i < logicalFromVisual.length; i++) {\n bidiLevels[i] = levels[logicalFromVisual[i]];\n }\n return { 'logicalFromVisual': logicalFromVisual, 'bidiLevels': bidiLevels };\n};\nexports.hasBidiCharacters = function (text, textCharTypes) {\n var ret = false;\n for (var i = 0; i < text.length; i++) {\n textCharTypes[i] = _getCharacterType(text.charAt(i));\n if (!ret && (textCharTypes[i] == R || textCharTypes[i] == AL || textCharTypes[i] == AN))\n ret = true;\n }\n return ret;\n};\nexports.getVisualFromLogicalIdx = function (logIdx, rowMap) {\n for (var i = 0; i < rowMap.logicalFromVisual.length; i++) {\n if (rowMap.logicalFromVisual[i] == logIdx)\n return i;\n }\n return 0;\n};\n\n});\n\nace.define(\"ace/bidihandler\",[\"require\",\"exports\",\"module\",\"ace/lib/bidiutil\",\"ace/lib/lang\"], function(require, exports, module){\"use strict\";\nvar bidiUtil = require(\"./lib/bidiutil\");\nvar lang = require(\"./lib/lang\");\nvar bidiRE = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac\\u202B]/;\nvar BidiHandler = /** @class */ (function () {\n function BidiHandler(session) {\n this.session = session;\n this.bidiMap = {};\n this.currentRow = null;\n this.bidiUtil = bidiUtil;\n this.charWidths = [];\n this.EOL = \"\\xAC\";\n this.showInvisibles = true;\n this.isRtlDir = false;\n this.$isRtl = false;\n this.line = \"\";\n this.wrapIndent = 0;\n this.EOF = \"\\xB6\";\n this.RLE = \"\\u202B\";\n this.contentWidth = 0;\n this.fontMetrics = null;\n this.rtlLineOffset = 0;\n this.wrapOffset = 0;\n this.isMoveLeftOperation = false;\n this.seenBidi = bidiRE.test(session.getValue());\n }\n BidiHandler.prototype.isBidiRow = function (screenRow, docRow, splitIndex) {\n if (!this.seenBidi)\n return false;\n if (screenRow !== this.currentRow) {\n this.currentRow = screenRow;\n this.updateRowLine(docRow, splitIndex);\n this.updateBidiMap();\n }\n return this.bidiMap.bidiLevels;\n };\n BidiHandler.prototype.onChange = function (delta) {\n if (!this.seenBidi) {\n if (delta.action == \"insert\" && bidiRE.test(delta.lines.join(\"\\n\"))) {\n this.seenBidi = true;\n this.currentRow = null;\n }\n }\n else {\n this.currentRow = null;\n }\n };\n BidiHandler.prototype.getDocumentRow = function () {\n var docRow = 0;\n var rowCache = this.session.$screenRowCache;\n if (rowCache.length) {\n var index = this.session.$getRowCacheIndex(rowCache, this.currentRow);\n if (index >= 0)\n docRow = this.session.$docRowCache[index];\n }\n return docRow;\n };\n BidiHandler.prototype.getSplitIndex = function () {\n var splitIndex = 0;\n var rowCache = this.session.$screenRowCache;\n if (rowCache.length) {\n var currentIndex, prevIndex = this.session.$getRowCacheIndex(rowCache, this.currentRow);\n while (this.currentRow - splitIndex > 0) {\n currentIndex = this.session.$getRowCacheIndex(rowCache, this.currentRow - splitIndex - 1);\n if (currentIndex !== prevIndex)\n break;\n prevIndex = currentIndex;\n splitIndex++;\n }\n }\n else {\n splitIndex = this.currentRow;\n }\n return splitIndex;\n };\n BidiHandler.prototype.updateRowLine = function (docRow, splitIndex) {\n if (docRow === undefined)\n docRow = this.getDocumentRow();\n var isLastRow = (docRow === this.session.getLength() - 1), endOfLine = isLastRow ? this.EOF : this.EOL;\n this.wrapIndent = 0;\n this.line = this.session.getLine(docRow);\n this.isRtlDir = this.$isRtl || this.line.charAt(0) === this.RLE;\n if (this.session.$useWrapMode) {\n var splits = this.session.$wrapData[docRow];\n if (splits) {\n if (splitIndex === undefined)\n splitIndex = this.getSplitIndex();\n if (splitIndex > 0 && splits.length) {\n this.wrapIndent = splits.indent;\n this.wrapOffset = this.wrapIndent * this.charWidths[bidiUtil.L];\n this.line = (splitIndex < splits.length) ?\n this.line.substring(splits[splitIndex - 1], splits[splitIndex]) :\n this.line.substring(splits[splits.length - 1]);\n }\n else {\n this.line = this.line.substring(0, splits[splitIndex]);\n }\n if (splitIndex == splits.length) {\n this.line += (this.showInvisibles) ? endOfLine : bidiUtil.DOT;\n }\n }\n }\n else {\n this.line += this.showInvisibles ? endOfLine : bidiUtil.DOT;\n }\n var session = this.session, shift = 0, size;\n this.line = this.line.replace(/\\t|[\\u1100-\\u2029, \\u202F-\\uFFE6]/g, function (ch, i) {\n if (ch === '\\t' || session.isFullWidth(ch.charCodeAt(0))) {\n size = (ch === '\\t') ? session.getScreenTabSize(i + shift) : 2;\n shift += size - 1;\n return lang.stringRepeat(bidiUtil.DOT, size);\n }\n return ch;\n });\n if (this.isRtlDir) {\n this.fontMetrics.$main.textContent = (this.line.charAt(this.line.length - 1) == bidiUtil.DOT) ? this.line.substr(0, this.line.length - 1) : this.line;\n this.rtlLineOffset = this.contentWidth - this.fontMetrics.$main.getBoundingClientRect().width;\n }\n };\n BidiHandler.prototype.updateBidiMap = function () {\n var textCharTypes = [];\n if (bidiUtil.hasBidiCharacters(this.line, textCharTypes) || this.isRtlDir) {\n this.bidiMap = bidiUtil.doBidiReorder(this.line, textCharTypes, this.isRtlDir);\n }\n else {\n this.bidiMap = {};\n }\n };\n BidiHandler.prototype.markAsDirty = function () {\n this.currentRow = null;\n };\n BidiHandler.prototype.updateCharacterWidths = function (fontMetrics) {\n if (this.characterWidth === fontMetrics.$characterSize.width)\n return;\n this.fontMetrics = fontMetrics;\n var characterWidth = this.characterWidth = fontMetrics.$characterSize.width;\n var bidiCharWidth = fontMetrics.$measureCharWidth(\"\\u05d4\");\n this.charWidths[bidiUtil.L] = this.charWidths[bidiUtil.EN] = this.charWidths[bidiUtil.ON_R] = characterWidth;\n this.charWidths[bidiUtil.R] = this.charWidths[bidiUtil.AN] = bidiCharWidth;\n this.charWidths[bidiUtil.R_H] = bidiCharWidth * 0.45;\n this.charWidths[bidiUtil.B] = this.charWidths[bidiUtil.RLE] = 0;\n this.currentRow = null;\n };\n BidiHandler.prototype.setShowInvisibles = function (showInvisibles) {\n this.showInvisibles = showInvisibles;\n this.currentRow = null;\n };\n BidiHandler.prototype.setEolChar = function (eolChar) {\n this.EOL = eolChar;\n };\n BidiHandler.prototype.setContentWidth = function (width) {\n this.contentWidth = width;\n };\n BidiHandler.prototype.isRtlLine = function (row) {\n if (this.$isRtl)\n return true;\n if (row != undefined)\n return (this.session.getLine(row).charAt(0) == this.RLE);\n else\n return this.isRtlDir;\n };\n BidiHandler.prototype.setRtlDirection = function (editor, isRtlDir) {\n var cursor = editor.getCursorPosition();\n for (var row = editor.selection.getSelectionAnchor().row; row <= cursor.row; row++) {\n if (!isRtlDir && editor.session.getLine(row).charAt(0) === editor.session.$bidiHandler.RLE)\n editor.session.doc.removeInLine(row, 0, 1);\n else if (isRtlDir && editor.session.getLine(row).charAt(0) !== editor.session.$bidiHandler.RLE)\n editor.session.doc.insert({ column: 0, row: row }, editor.session.$bidiHandler.RLE);\n }\n };\n BidiHandler.prototype.getPosLeft = function (col) {\n col -= this.wrapIndent;\n var leftBoundary = (this.line.charAt(0) === this.RLE) ? 1 : 0;\n var logicalIdx = (col > leftBoundary) ? (this.session.getOverwrite() ? col : col - 1) : leftBoundary;\n var visualIdx = bidiUtil.getVisualFromLogicalIdx(logicalIdx, this.bidiMap), levels = this.bidiMap.bidiLevels, left = 0;\n if (!this.session.getOverwrite() && col <= leftBoundary && levels[visualIdx] % 2 !== 0)\n visualIdx++;\n for (var i = 0; i < visualIdx; i++) {\n left += this.charWidths[levels[i]];\n }\n if (!this.session.getOverwrite() && (col > leftBoundary) && (levels[visualIdx] % 2 === 0))\n left += this.charWidths[levels[visualIdx]];\n if (this.wrapIndent)\n left += this.isRtlDir ? (-1 * this.wrapOffset) : this.wrapOffset;\n if (this.isRtlDir)\n left += this.rtlLineOffset;\n return left;\n };\n BidiHandler.prototype.getSelections = function (startCol, endCol) {\n var map = this.bidiMap, levels = map.bidiLevels, level, selections = [], offset = 0, selColMin = Math.min(startCol, endCol) - this.wrapIndent, selColMax = Math.max(startCol, endCol) - this.wrapIndent, isSelected = false, isSelectedPrev = false, selectionStart = 0;\n if (this.wrapIndent)\n offset += this.isRtlDir ? (-1 * this.wrapOffset) : this.wrapOffset;\n for (var logIdx, visIdx = 0; visIdx < levels.length; visIdx++) {\n logIdx = map.logicalFromVisual[visIdx];\n level = levels[visIdx];\n isSelected = (logIdx >= selColMin) && (logIdx < selColMax);\n if (isSelected && !isSelectedPrev) {\n selectionStart = offset;\n }\n else if (!isSelected && isSelectedPrev) {\n selections.push({ left: selectionStart, width: offset - selectionStart });\n }\n offset += this.charWidths[level];\n isSelectedPrev = isSelected;\n }\n if (isSelected && (visIdx === levels.length)) {\n selections.push({ left: selectionStart, width: offset - selectionStart });\n }\n if (this.isRtlDir) {\n for (var i = 0; i < selections.length; i++) {\n selections[i].left += this.rtlLineOffset;\n }\n }\n return selections;\n };\n BidiHandler.prototype.offsetToCol = function (posX) {\n if (this.isRtlDir)\n posX -= this.rtlLineOffset;\n var logicalIdx = 0, posX = Math.max(posX, 0), offset = 0, visualIdx = 0, levels = this.bidiMap.bidiLevels, charWidth = this.charWidths[levels[visualIdx]];\n if (this.wrapIndent)\n posX -= this.isRtlDir ? (-1 * this.wrapOffset) : this.wrapOffset;\n while (posX > offset + charWidth / 2) {\n offset += charWidth;\n if (visualIdx === levels.length - 1) {\n charWidth = 0;\n break;\n }\n charWidth = this.charWidths[levels[++visualIdx]];\n }\n if (visualIdx > 0 && (levels[visualIdx - 1] % 2 !== 0) && (levels[visualIdx] % 2 === 0)) {\n if (posX < offset)\n visualIdx--;\n logicalIdx = this.bidiMap.logicalFromVisual[visualIdx];\n }\n else if (visualIdx > 0 && (levels[visualIdx - 1] % 2 === 0) && (levels[visualIdx] % 2 !== 0)) {\n logicalIdx = 1 + ((posX > offset) ? this.bidiMap.logicalFromVisual[visualIdx]\n : this.bidiMap.logicalFromVisual[visualIdx - 1]);\n }\n else if ((this.isRtlDir && visualIdx === levels.length - 1 && charWidth === 0 && (levels[visualIdx - 1] % 2 === 0))\n || (!this.isRtlDir && visualIdx === 0 && (levels[visualIdx] % 2 !== 0))) {\n logicalIdx = 1 + this.bidiMap.logicalFromVisual[visualIdx];\n }\n else {\n if (visualIdx > 0 && (levels[visualIdx - 1] % 2 !== 0) && charWidth !== 0)\n visualIdx--;\n logicalIdx = this.bidiMap.logicalFromVisual[visualIdx];\n }\n if (logicalIdx === 0 && this.isRtlDir)\n logicalIdx++;\n return (logicalIdx + this.wrapIndent);\n };\n return BidiHandler;\n}());\nexports.BidiHandler = BidiHandler;\n\n});\n\nace.define(\"ace/selection\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar lang = require(\"./lib/lang\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Range = require(\"./range\").Range;\nvar Selection = /** @class */ (function () {\n function Selection(session) {\n this.session = session;\n this.doc = session.getDocument();\n this.clearSelection();\n this.cursor = this.lead = this.doc.createAnchor(0, 0);\n this.anchor = this.doc.createAnchor(0, 0);\n this.$silent = false;\n var self = this;\n this.cursor.on(\"change\", function (e) {\n self.$cursorChanged = true;\n if (!self.$silent)\n self._emit(\"changeCursor\");\n if (!self.$isEmpty && !self.$silent)\n self._emit(\"changeSelection\");\n if (!self.$keepDesiredColumnOnChange && e.old.column != e.value.column)\n self.$desiredColumn = null;\n });\n this.anchor.on(\"change\", function () {\n self.$anchorChanged = true;\n if (!self.$isEmpty && !self.$silent)\n self._emit(\"changeSelection\");\n });\n }\n Selection.prototype.isEmpty = function () {\n return this.$isEmpty || (this.anchor.row == this.lead.row &&\n this.anchor.column == this.lead.column);\n };\n Selection.prototype.isMultiLine = function () {\n return !this.$isEmpty && this.anchor.row != this.cursor.row;\n };\n Selection.prototype.getCursor = function () {\n return this.lead.getPosition();\n };\n Selection.prototype.setAnchor = function (row, column) {\n this.$isEmpty = false;\n this.anchor.setPosition(row, column);\n };\n Selection.prototype.getAnchor = function () {\n if (this.$isEmpty)\n return this.getSelectionLead();\n return this.anchor.getPosition();\n };\n Selection.prototype.getSelectionLead = function () {\n return this.lead.getPosition();\n };\n Selection.prototype.isBackwards = function () {\n var anchor = this.anchor;\n var lead = this.lead;\n return (anchor.row > lead.row || (anchor.row == lead.row && anchor.column > lead.column));\n };\n Selection.prototype.getRange = function () {\n var anchor = this.anchor;\n var lead = this.lead;\n if (this.$isEmpty)\n return Range.fromPoints(lead, lead);\n return this.isBackwards()\n ? Range.fromPoints(lead, anchor)\n : Range.fromPoints(anchor, lead);\n };\n Selection.prototype.clearSelection = function () {\n if (!this.$isEmpty) {\n this.$isEmpty = true;\n this._emit(\"changeSelection\");\n }\n };\n Selection.prototype.selectAll = function () {\n this.$setSelection(0, 0, Number.MAX_VALUE, Number.MAX_VALUE);\n };\n Selection.prototype.setRange = function (range, reverse) {\n var start = reverse ? range.end : range.start;\n var end = reverse ? range.start : range.end;\n this.$setSelection(start.row, start.column, end.row, end.column);\n };\n Selection.prototype.$setSelection = function (anchorRow, anchorColumn, cursorRow, cursorColumn) {\n if (this.$silent)\n return;\n var wasEmpty = this.$isEmpty;\n var wasMultiselect = this.inMultiSelectMode;\n this.$silent = true;\n this.$cursorChanged = this.$anchorChanged = false;\n this.anchor.setPosition(anchorRow, anchorColumn);\n this.cursor.setPosition(cursorRow, cursorColumn);\n this.$isEmpty = !Range.comparePoints(this.anchor, this.cursor);\n this.$silent = false;\n if (this.$cursorChanged)\n this._emit(\"changeCursor\");\n if (this.$cursorChanged || this.$anchorChanged || wasEmpty != this.$isEmpty || wasMultiselect)\n this._emit(\"changeSelection\");\n };\n Selection.prototype.$moveSelection = function (mover) {\n var lead = this.lead;\n if (this.$isEmpty)\n this.setSelectionAnchor(lead.row, lead.column);\n mover.call(this);\n };\n Selection.prototype.selectTo = function (row, column) {\n this.$moveSelection(function () {\n this.moveCursorTo(row, column);\n });\n };\n Selection.prototype.selectToPosition = function (pos) {\n this.$moveSelection(function () {\n this.moveCursorToPosition(pos);\n });\n };\n Selection.prototype.moveTo = function (row, column) {\n this.clearSelection();\n this.moveCursorTo(row, column);\n };\n Selection.prototype.moveToPosition = function (pos) {\n this.clearSelection();\n this.moveCursorToPosition(pos);\n };\n Selection.prototype.selectUp = function () {\n this.$moveSelection(this.moveCursorUp);\n };\n Selection.prototype.selectDown = function () {\n this.$moveSelection(this.moveCursorDown);\n };\n Selection.prototype.selectRight = function () {\n this.$moveSelection(this.moveCursorRight);\n };\n Selection.prototype.selectLeft = function () {\n this.$moveSelection(this.moveCursorLeft);\n };\n Selection.prototype.selectLineStart = function () {\n this.$moveSelection(this.moveCursorLineStart);\n };\n Selection.prototype.selectLineEnd = function () {\n this.$moveSelection(this.moveCursorLineEnd);\n };\n Selection.prototype.selectFileEnd = function () {\n this.$moveSelection(this.moveCursorFileEnd);\n };\n Selection.prototype.selectFileStart = function () {\n this.$moveSelection(this.moveCursorFileStart);\n };\n Selection.prototype.selectWordRight = function () {\n this.$moveSelection(this.moveCursorWordRight);\n };\n Selection.prototype.selectWordLeft = function () {\n this.$moveSelection(this.moveCursorWordLeft);\n };\n Selection.prototype.getWordRange = function (row, column) {\n if (typeof column == \"undefined\") {\n var cursor = row || this.lead;\n row = cursor.row;\n column = cursor.column;\n }\n return this.session.getWordRange(row, column);\n };\n Selection.prototype.selectWord = function () {\n this.setSelectionRange(this.getWordRange());\n };\n Selection.prototype.selectAWord = function () {\n var cursor = this.getCursor();\n var range = this.session.getAWordRange(cursor.row, cursor.column);\n this.setSelectionRange(range);\n };\n Selection.prototype.getLineRange = function (row, excludeLastChar) {\n var rowStart = typeof row == \"number\" ? row : this.lead.row;\n var rowEnd;\n var foldLine = this.session.getFoldLine(rowStart);\n if (foldLine) {\n rowStart = foldLine.start.row;\n rowEnd = foldLine.end.row;\n }\n else {\n rowEnd = rowStart;\n }\n if (excludeLastChar === true)\n return new Range(rowStart, 0, rowEnd, this.session.getLine(rowEnd).length);\n else\n return new Range(rowStart, 0, rowEnd + 1, 0);\n };\n Selection.prototype.selectLine = function () {\n this.setSelectionRange(this.getLineRange());\n };\n Selection.prototype.moveCursorUp = function () {\n this.moveCursorBy(-1, 0);\n };\n Selection.prototype.moveCursorDown = function () {\n this.moveCursorBy(1, 0);\n };\n Selection.prototype.wouldMoveIntoSoftTab = function (cursor, tabSize, direction) {\n var start = cursor.column;\n var end = cursor.column + tabSize;\n if (direction < 0) {\n start = cursor.column - tabSize;\n end = cursor.column;\n }\n return this.session.isTabStop(cursor) && this.doc.getLine(cursor.row).slice(start, end).split(\" \").length - 1 == tabSize;\n };\n Selection.prototype.moveCursorLeft = function () {\n var cursor = this.lead.getPosition(), fold;\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n }\n else if (cursor.column === 0) {\n if (cursor.row > 0) {\n this.moveCursorTo(cursor.row - 1, this.doc.getLine(cursor.row - 1).length);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n if (this.wouldMoveIntoSoftTab(cursor, tabSize, -1) && !this.session.getNavigateWithinSoftTabs()) {\n this.moveCursorBy(0, -tabSize);\n }\n else {\n this.moveCursorBy(0, -1);\n }\n }\n };\n Selection.prototype.moveCursorRight = function () {\n var cursor = this.lead.getPosition(), fold;\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, 1)) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n }\n else if (this.lead.column == this.doc.getLine(this.lead.row).length) {\n if (this.lead.row < this.doc.getLength() - 1) {\n this.moveCursorTo(this.lead.row + 1, 0);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n var cursor = this.lead;\n if (this.wouldMoveIntoSoftTab(cursor, tabSize, 1) && !this.session.getNavigateWithinSoftTabs()) {\n this.moveCursorBy(0, tabSize);\n }\n else {\n this.moveCursorBy(0, 1);\n }\n }\n };\n Selection.prototype.moveCursorLineStart = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var screenRow = this.session.documentToScreenRow(row, column);\n var firstColumnPosition = this.session.screenToDocumentPosition(screenRow, 0);\n var beforeCursor = this.session.getDisplayLine(row, null, firstColumnPosition.row, firstColumnPosition.column);\n var leadingSpace = beforeCursor.match(/^\\s*/);\n if (leadingSpace[0].length != column && !this.session.$useEmacsStyleLineStart)\n firstColumnPosition.column += leadingSpace[0].length;\n this.moveCursorToPosition(firstColumnPosition);\n };\n Selection.prototype.moveCursorLineEnd = function () {\n var lead = this.lead;\n var lineEnd = this.session.getDocumentLastRowColumnPosition(lead.row, lead.column);\n if (this.lead.column == lineEnd.column) {\n var line = this.session.getLine(lineEnd.row);\n if (lineEnd.column == line.length) {\n var textEnd = line.search(/\\s+$/);\n if (textEnd > 0)\n lineEnd.column = textEnd;\n }\n }\n this.moveCursorTo(lineEnd.row, lineEnd.column);\n };\n Selection.prototype.moveCursorFileEnd = function () {\n var row = this.doc.getLength() - 1;\n var column = this.doc.getLine(row).length;\n this.moveCursorTo(row, column);\n };\n Selection.prototype.moveCursorFileStart = function () {\n this.moveCursorTo(0, 0);\n };\n Selection.prototype.moveCursorLongWordRight = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n return;\n }\n if (this.session.nonTokenRe.exec(rightOfCursor)) {\n column += this.session.nonTokenRe.lastIndex;\n this.session.nonTokenRe.lastIndex = 0;\n rightOfCursor = line.substring(column);\n }\n if (column >= line.length) {\n this.moveCursorTo(row, line.length);\n this.moveCursorRight();\n if (row < this.doc.getLength() - 1)\n this.moveCursorWordRight();\n return;\n }\n if (this.session.tokenRe.exec(rightOfCursor)) {\n column += this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n this.moveCursorTo(row, column);\n };\n Selection.prototype.moveCursorLongWordLeft = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n return;\n }\n var str = this.session.getFoldStringAt(row, column, -1);\n if (str == null) {\n str = this.doc.getLine(row).substring(0, column);\n }\n var leftOfCursor = lang.stringReverse(str);\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n if (this.session.nonTokenRe.exec(leftOfCursor)) {\n column -= this.session.nonTokenRe.lastIndex;\n leftOfCursor = leftOfCursor.slice(this.session.nonTokenRe.lastIndex);\n this.session.nonTokenRe.lastIndex = 0;\n }\n if (column <= 0) {\n this.moveCursorTo(row, 0);\n this.moveCursorLeft();\n if (row > 0)\n this.moveCursorWordLeft();\n return;\n }\n if (this.session.tokenRe.exec(leftOfCursor)) {\n column -= this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n this.moveCursorTo(row, column);\n };\n Selection.prototype.$shortWordEndIndex = function (rightOfCursor) {\n var index = 0, ch;\n var whitespaceRe = /\\s/;\n var tokenRe = this.session.tokenRe;\n tokenRe.lastIndex = 0;\n if (this.session.tokenRe.exec(rightOfCursor)) {\n index = this.session.tokenRe.lastIndex;\n }\n else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index++;\n if (index < 1) {\n tokenRe.lastIndex = 0;\n while ((ch = rightOfCursor[index]) && !tokenRe.test(ch)) {\n tokenRe.lastIndex = 0;\n index++;\n if (whitespaceRe.test(ch)) {\n if (index > 2) {\n index--;\n break;\n }\n else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index++;\n if (index > 2)\n break;\n }\n }\n }\n }\n }\n tokenRe.lastIndex = 0;\n return index;\n };\n Selection.prototype.moveCursorShortWordRight = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold)\n return this.moveCursorTo(fold.end.row, fold.end.column);\n if (column == line.length) {\n var l = this.doc.getLength();\n do {\n row++;\n rightOfCursor = this.doc.getLine(row);\n } while (row < l && /^\\s*$/.test(rightOfCursor));\n if (!/^\\s+/.test(rightOfCursor))\n rightOfCursor = \"\";\n column = 0;\n }\n var index = this.$shortWordEndIndex(rightOfCursor);\n this.moveCursorTo(row, column + index);\n };\n Selection.prototype.moveCursorShortWordLeft = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1))\n return this.moveCursorTo(fold.start.row, fold.start.column);\n var line = this.session.getLine(row).substring(0, column);\n if (column === 0) {\n do {\n row--;\n line = this.doc.getLine(row);\n } while (row > 0 && /^\\s*$/.test(line));\n column = line.length;\n if (!/\\s+$/.test(line))\n line = \"\";\n }\n var leftOfCursor = lang.stringReverse(line);\n var index = this.$shortWordEndIndex(leftOfCursor);\n return this.moveCursorTo(row, column - index);\n };\n Selection.prototype.moveCursorWordRight = function () {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordRight();\n else\n this.moveCursorShortWordRight();\n };\n Selection.prototype.moveCursorWordLeft = function () {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordLeft();\n else\n this.moveCursorShortWordLeft();\n };\n Selection.prototype.moveCursorBy = function (rows, chars) {\n var screenPos = this.session.documentToScreenPosition(this.lead.row, this.lead.column);\n var offsetX;\n if (chars === 0) {\n if (rows !== 0) {\n if (this.session.$bidiHandler.isBidiRow(screenPos.row, this.lead.row)) {\n offsetX = this.session.$bidiHandler.getPosLeft(screenPos.column);\n screenPos.column = Math.round(offsetX / this.session.$bidiHandler.charWidths[0]);\n }\n else {\n offsetX = screenPos.column * this.session.$bidiHandler.charWidths[0];\n }\n }\n if (this.$desiredColumn)\n screenPos.column = this.$desiredColumn;\n else\n this.$desiredColumn = screenPos.column;\n }\n if (rows != 0 && this.session.lineWidgets && this.session.lineWidgets[this.lead.row]) {\n var widget = this.session.lineWidgets[this.lead.row];\n if (rows < 0)\n rows -= widget.rowsAbove || 0;\n else if (rows > 0)\n rows += widget.rowCount - (widget.rowsAbove || 0);\n }\n var docPos = this.session.screenToDocumentPosition(screenPos.row + rows, screenPos.column, offsetX);\n if (rows !== 0 && chars === 0 && docPos.row === this.lead.row && docPos.column === this.lead.column) {\n }\n this.moveCursorTo(docPos.row, docPos.column + chars, chars === 0);\n };\n Selection.prototype.moveCursorToPosition = function (position) {\n this.moveCursorTo(position.row, position.column);\n };\n Selection.prototype.moveCursorTo = function (row, column, keepDesiredColumn) {\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n row = fold.start.row;\n column = fold.start.column;\n }\n this.$keepDesiredColumnOnChange = true;\n var line = this.session.getLine(row);\n if (/[\\uDC00-\\uDFFF]/.test(line.charAt(column)) && line.charAt(column - 1)) {\n if (this.lead.row == row && this.lead.column == column + 1)\n column = column - 1;\n else\n column = column + 1;\n }\n this.lead.setPosition(row, column);\n this.$keepDesiredColumnOnChange = false;\n if (!keepDesiredColumn)\n this.$desiredColumn = null;\n };\n Selection.prototype.moveCursorToScreen = function (row, column, keepDesiredColumn) {\n var pos = this.session.screenToDocumentPosition(row, column);\n this.moveCursorTo(pos.row, pos.column, keepDesiredColumn);\n };\n Selection.prototype.detach = function () {\n this.lead.detach();\n this.anchor.detach();\n };\n Selection.prototype.fromOrientedRange = function (range) {\n this.setSelectionRange(range, range.cursor == range.start);\n this.$desiredColumn = range.desiredColumn || this.$desiredColumn;\n };\n Selection.prototype.toOrientedRange = function (range) {\n var r = this.getRange();\n if (range) {\n range.start.column = r.start.column;\n range.start.row = r.start.row;\n range.end.column = r.end.column;\n range.end.row = r.end.row;\n }\n else {\n range = r;\n }\n range.cursor = this.isBackwards() ? range.start : range.end;\n range.desiredColumn = this.$desiredColumn;\n return range;\n };\n Selection.prototype.getRangeOfMovements = function (func) {\n var start = this.getCursor();\n try {\n func(this);\n var end = this.getCursor();\n return Range.fromPoints(start, end);\n }\n catch (e) {\n return Range.fromPoints(start, start);\n }\n finally {\n this.moveCursorToPosition(start);\n }\n };\n Selection.prototype.toJSON = function () {\n if (this.rangeCount) {\n var data = this.ranges.map(function (r) {\n var r1 = r.clone();\n r1.isBackwards = r.cursor == r.start;\n return r1;\n });\n }\n else {\n var data = this.getRange();\n data.isBackwards = this.isBackwards();\n }\n return data;\n };\n Selection.prototype.fromJSON = function (data) {\n if (data.start == undefined) {\n if (this.rangeList && data.length > 1) {\n this.toSingleRange(data[0]);\n for (var i = data.length; i--;) {\n var r = Range.fromPoints(data[i].start, data[i].end);\n if (data[i].isBackwards)\n r.cursor = r.start;\n this.addRange(r, true);\n }\n return;\n }\n else {\n data = data[0];\n }\n }\n if (this.rangeList)\n this.toSingleRange(data);\n this.setSelectionRange(data, data.isBackwards);\n };\n Selection.prototype.isEqual = function (data) {\n if ((data.length || this.rangeCount) && data.length != this.rangeCount)\n return false;\n if (!data.length || !this.ranges)\n return this.getRange().isEqual(data);\n for (var i = this.ranges.length; i--;) {\n if (!this.ranges[i].isEqual(data[i]))\n return false;\n }\n return true;\n };\n return Selection;\n}());\nSelection.prototype.setSelectionAnchor = Selection.prototype.setAnchor;\nSelection.prototype.getSelectionAnchor = Selection.prototype.getAnchor;\nSelection.prototype.setSelectionRange = Selection.prototype.setRange;\noop.implement(Selection.prototype, EventEmitter);\nexports.Selection = Selection;\n\n});\n\nace.define(\"ace/tokenizer\",[\"require\",\"exports\",\"module\",\"ace/lib/report_error\"], function(require, exports, module){\"use strict\";\nvar reportError = require(\"./lib/report_error\").reportError;\nvar MAX_TOKEN_COUNT = 2000;\nvar Tokenizer = /** @class */ (function () {\n function Tokenizer(rules) {\n this.states = rules;\n this.regExps = {};\n this.matchMappings = {};\n for (var key in this.states) {\n var state = this.states[key];\n var ruleRegExps = [];\n var matchTotal = 0;\n var mapping = this.matchMappings[key] = { defaultToken: \"text\" };\n var flag = \"g\";\n var splitterRurles = [];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.defaultToken)\n mapping.defaultToken = rule.defaultToken;\n if (rule.caseInsensitive && flag.indexOf(\"i\") === -1)\n flag += \"i\";\n if (rule.unicode && flag.indexOf(\"u\") === -1)\n flag += \"u\";\n if (rule.regex == null)\n continue;\n if (rule.regex instanceof RegExp)\n rule.regex = rule.regex.toString().slice(1, -1);\n var adjustedregex = rule.regex;\n var matchcount = new RegExp(\"(?:(\" + adjustedregex + \")|(.))\").exec(\"a\").length - 2;\n if (Array.isArray(rule.token)) {\n if (rule.token.length == 1 || matchcount == 1) {\n rule.token = rule.token[0];\n }\n else if (matchcount - 1 != rule.token.length) {\n this.reportError(\"number of classes and regexp groups doesn't match\", {\n rule: rule,\n groupCount: matchcount - 1\n });\n rule.token = rule.token[0];\n }\n else {\n rule.tokenArray = rule.token;\n rule.token = null;\n rule.onMatch = this.$arrayTokens;\n }\n }\n else if (typeof rule.token == \"function\" && !rule.onMatch) {\n if (matchcount > 1)\n rule.onMatch = this.$applyToken;\n else\n rule.onMatch = rule.token;\n }\n if (matchcount > 1) {\n if (/\\\\\\d/.test(rule.regex)) {\n adjustedregex = rule.regex.replace(/\\\\([0-9]+)/g, function (match, digit) {\n return \"\\\\\" + (parseInt(digit, 10) + matchTotal + 1);\n });\n }\n else {\n matchcount = 1;\n adjustedregex = this.removeCapturingGroups(rule.regex);\n }\n if (!rule.splitRegex && typeof rule.token != \"string\")\n splitterRurles.push(rule); // flag will be known only at the very end\n }\n mapping[matchTotal] = i;\n matchTotal += matchcount;\n ruleRegExps.push(adjustedregex);\n if (!rule.onMatch)\n rule.onMatch = null;\n }\n if (!ruleRegExps.length) {\n mapping[0] = 0;\n ruleRegExps.push(\"$\");\n }\n splitterRurles.forEach(function (rule) {\n rule.splitRegex = this.createSplitterRegexp(rule.regex, flag);\n }, this);\n this.regExps[key] = new RegExp(\"(\" + ruleRegExps.join(\")|(\") + \")|($)\", flag);\n }\n }\n Tokenizer.prototype.$setMaxTokenCount = function (m) {\n MAX_TOKEN_COUNT = m | 0;\n };\n Tokenizer.prototype.$applyToken = function (str) {\n var values = this.splitRegex.exec(str).slice(1);\n var types = this.token.apply(this, values);\n if (typeof types === \"string\")\n return [{ type: types, value: str }];\n var tokens = [];\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i]\n };\n }\n return tokens;\n };\n Tokenizer.prototype.$arrayTokens = function (str) {\n if (!str)\n return [];\n var values = this.splitRegex.exec(str);\n if (!values)\n return \"text\";\n var tokens = [];\n var types = this.tokenArray;\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i + 1])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i + 1]\n };\n }\n return tokens;\n };\n Tokenizer.prototype.removeCapturingGroups = function (src) {\n var r = src.replace(/\\\\.|\\[(?:\\\\.|[^\\\\\\]])*|\\(\\?[:=!<]|(\\()/g, function (x, y) { return y ? \"(?:\" : x; });\n return r;\n };\n Tokenizer.prototype.createSplitterRegexp = function (src, flag) {\n if (src.indexOf(\"(?=\") != -1) {\n var stack = 0;\n var inChClass = false;\n var lastCapture = {};\n src.replace(/(\\\\.)|(\\((?:\\?[=!])?)|(\\))|([\\[\\]])/g, function (m, esc, parenOpen, parenClose, square, index) {\n if (inChClass) {\n inChClass = square != \"]\";\n }\n else if (square) {\n inChClass = true;\n }\n else if (parenClose) {\n if (stack == lastCapture.stack) {\n lastCapture.end = index + 1;\n lastCapture.stack = -1;\n }\n stack--;\n }\n else if (parenOpen) {\n stack++;\n if (parenOpen.length != 1) {\n lastCapture.stack = stack;\n lastCapture.start = index;\n }\n }\n return m;\n });\n if (lastCapture.end != null && /^\\)*$/.test(src.substr(lastCapture.end)))\n src = src.substring(0, lastCapture.start) + src.substr(lastCapture.end);\n }\n if (src.charAt(0) != \"^\")\n src = \"^\" + src;\n if (src.charAt(src.length - 1) != \"$\")\n src += \"$\";\n return new RegExp(src, (flag || \"\").replace(\"g\", \"\"));\n };\n Tokenizer.prototype.getLineTokens = function (line, startState) {\n if (startState && typeof startState != \"string\") {\n var stack = startState.slice(0);\n startState = stack[0];\n if (startState === \"#tmp\") {\n stack.shift();\n startState = stack.shift();\n }\n }\n else\n var stack = [];\n var currentState = startState || \"start\";\n var state = this.states[currentState];\n if (!state) {\n currentState = \"start\";\n state = this.states[currentState];\n }\n var mapping = this.matchMappings[currentState];\n var re = this.regExps[currentState];\n re.lastIndex = 0;\n var match, tokens = [];\n var lastIndex = 0;\n var matchAttempts = 0;\n var token = { type: null, value: \"\" };\n while (match = re.exec(line)) {\n var type = mapping.defaultToken;\n var rule = null;\n var value = match[0];\n var index = re.lastIndex;\n if (index - value.length > lastIndex) {\n var skipped = line.substring(lastIndex, index - value.length);\n if (token.type == type) {\n token.value += skipped;\n }\n else {\n if (token.type)\n tokens.push(token);\n token = { type: type, value: skipped };\n }\n }\n for (var i = 0; i < match.length - 2; i++) {\n if (match[i + 1] === undefined)\n continue;\n rule = state[mapping[i]];\n if (rule.onMatch)\n type = rule.onMatch(value, currentState, stack, line);\n else\n type = rule.token;\n if (rule.next) {\n if (typeof rule.next == \"string\") {\n currentState = rule.next;\n }\n else {\n currentState = rule.next(currentState, stack);\n }\n state = this.states[currentState];\n if (!state) {\n this.reportError(\"state doesn't exist\", currentState);\n currentState = \"start\";\n state = this.states[currentState];\n }\n mapping = this.matchMappings[currentState];\n lastIndex = index;\n re = this.regExps[currentState];\n re.lastIndex = index;\n }\n if (rule.consumeLineEnd)\n lastIndex = index;\n break;\n }\n if (value) {\n if (typeof type === \"string\") {\n if ((!rule || rule.merge !== false) && token.type === type) {\n token.value += value;\n }\n else {\n if (token.type)\n tokens.push(token);\n token = { type: type, value: value };\n }\n }\n else if (type) {\n if (token.type)\n tokens.push(token);\n token = { type: null, value: \"\" };\n for (var i = 0; i < type.length; i++)\n tokens.push(type[i]);\n }\n }\n if (lastIndex == line.length)\n break;\n lastIndex = index;\n if (matchAttempts++ > MAX_TOKEN_COUNT) {\n if (matchAttempts > 2 * line.length) {\n this.reportError(\"infinite loop with in ace tokenizer\", {\n startState: startState,\n line: line\n });\n }\n while (lastIndex < line.length) {\n if (token.type)\n tokens.push(token);\n token = {\n value: line.substring(lastIndex, lastIndex += 500),\n type: \"overflow\"\n };\n }\n currentState = \"start\";\n stack = [];\n break;\n }\n }\n if (token.type)\n tokens.push(token);\n if (stack.length > 1) {\n if (stack[0] !== currentState)\n stack.unshift(\"#tmp\", currentState);\n }\n return {\n tokens: tokens,\n state: stack.length ? stack : currentState\n };\n };\n return Tokenizer;\n}());\nTokenizer.prototype.reportError = reportError;\nexports.Tokenizer = Tokenizer;\n\n});\n\nace.define(\"ace/mode/text_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/deep_copy\"], function(require, exports, module){\"use strict\";\nvar deepCopy = require(\"../lib/deep_copy\").deepCopy;\nvar TextHighlightRules = function () {\n this.$rules = {\n \"start\": [{\n token: \"empty_line\",\n regex: '^$'\n }, {\n defaultToken: \"text\"\n }]\n };\n};\n(function () {\n this.addRules = function (rules, prefix) {\n if (!prefix) {\n for (var key in rules)\n this.$rules[key] = rules[key];\n return;\n }\n for (var key in rules) {\n var state = rules[key];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.next || rule.onMatch) {\n if (typeof rule.next == \"string\") {\n if (rule.next.indexOf(prefix) !== 0)\n rule.next = prefix + rule.next;\n }\n if (rule.nextState && rule.nextState.indexOf(prefix) !== 0)\n rule.nextState = prefix + rule.nextState;\n }\n }\n this.$rules[prefix + key] = state;\n }\n };\n this.getRules = function () {\n return this.$rules;\n };\n this.embedRules = function (HighlightRules, prefix, escapeRules, states, append) {\n var embedRules = typeof HighlightRules == \"function\"\n ? new HighlightRules().getRules()\n : HighlightRules;\n if (states) {\n for (var i = 0; i < states.length; i++)\n states[i] = prefix + states[i];\n }\n else {\n states = [];\n for (var key in embedRules)\n states.push(prefix + key);\n }\n this.addRules(embedRules, prefix);\n if (escapeRules) {\n var addRules = Array.prototype[append ? \"push\" : \"unshift\"];\n for (var i = 0; i < states.length; i++)\n addRules.apply(this.$rules[states[i]], deepCopy(escapeRules));\n }\n if (!this.$embeds)\n this.$embeds = [];\n this.$embeds.push(prefix);\n };\n this.getEmbeds = function () {\n return this.$embeds;\n };\n var pushState = function (currentState, stack) {\n if (currentState != \"start\" || stack.length)\n stack.unshift(this.nextState, currentState);\n return this.nextState;\n };\n var popState = function (currentState, stack) {\n stack.shift();\n return stack.shift() || \"start\";\n };\n this.normalizeRules = function () {\n var id = 0;\n var rules = this.$rules;\n function processState(key) {\n var state = rules[key];\n state.processed = true;\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n var toInsert = null;\n if (Array.isArray(rule)) {\n toInsert = rule;\n rule = {};\n }\n if (!rule.regex && rule.start) {\n rule.regex = rule.start;\n if (!rule.next)\n rule.next = [];\n rule.next.push({\n defaultToken: rule.token\n }, {\n token: rule.token + \".end\",\n regex: rule.end || rule.start,\n next: \"pop\"\n });\n rule.token = rule.token + \".start\";\n rule.push = true;\n }\n var next = rule.next || rule.push;\n if (next && Array.isArray(next)) {\n var stateName = rule.stateName;\n if (!stateName) {\n stateName = rule.token;\n if (typeof stateName != \"string\")\n stateName = stateName[0] || \"\";\n if (rules[stateName])\n stateName += id++;\n }\n rules[stateName] = next;\n rule.next = stateName;\n processState(stateName);\n }\n else if (next == \"pop\") {\n rule.next = popState;\n }\n if (rule.push) {\n rule.nextState = rule.next || rule.push;\n rule.next = pushState;\n delete rule.push;\n }\n if (rule.rules) {\n for (var r in rule.rules) {\n if (rules[r]) {\n if (rules[r].push)\n rules[r].push.apply(rules[r], rule.rules[r]);\n }\n else {\n rules[r] = rule.rules[r];\n }\n }\n }\n var includeName = typeof rule == \"string\" ? rule : rule.include;\n if (includeName) {\n if (includeName === \"$self\")\n includeName = \"start\";\n if (Array.isArray(includeName))\n toInsert = includeName.map(function (x) { return rules[x]; });\n else\n toInsert = rules[includeName];\n }\n if (toInsert) {\n var args = [i, 1].concat(toInsert);\n if (rule.noEscape)\n args = args.filter(function (x) { return !x.next; });\n state.splice.apply(state, args);\n i--;\n }\n if (rule.keywordMap) {\n rule.token = this.createKeywordMapper(rule.keywordMap, rule.defaultToken || \"text\", rule.caseInsensitive);\n delete rule.defaultToken;\n }\n }\n }\n Object.keys(rules).forEach(processState, this);\n };\n this.createKeywordMapper = function (map, defaultToken, ignoreCase, splitChar) {\n var keywords = Object.create(null);\n this.$keywordList = [];\n Object.keys(map).forEach(function (className) {\n var a = map[className];\n var list = a.split(splitChar || \"|\");\n for (var i = list.length; i--;) {\n var word = list[i];\n this.$keywordList.push(word);\n if (ignoreCase)\n word = word.toLowerCase();\n keywords[word] = className;\n }\n }, this);\n map = null;\n return ignoreCase\n ? function (value) { return keywords[value.toLowerCase()] || defaultToken; }\n : function (value) { return keywords[value] || defaultToken; };\n };\n this.getKeywords = function () {\n return this.$keywords;\n };\n}).call(TextHighlightRules.prototype);\nexports.TextHighlightRules = TextHighlightRules;\n\n});\n\nace.define(\"ace/mode/behaviour\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar Behaviour = function () {\n this.$behaviours = {};\n};\n(function () {\n this.add = function (name, action, callback) {\n switch (undefined) {\n case this.$behaviours:\n this.$behaviours = {};\n case this.$behaviours[name]:\n this.$behaviours[name] = {};\n }\n this.$behaviours[name][action] = callback;\n };\n this.addBehaviours = function (behaviours) {\n for (var key in behaviours) {\n for (var action in behaviours[key]) {\n this.add(key, action, behaviours[key][action]);\n }\n }\n };\n this.remove = function (name) {\n if (this.$behaviours && this.$behaviours[name]) {\n delete this.$behaviours[name];\n }\n };\n this.inherit = function (mode, filter) {\n if (typeof mode === \"function\") {\n var behaviours = new mode().getBehaviours(filter);\n }\n else {\n var behaviours = mode.getBehaviours(filter);\n }\n this.addBehaviours(behaviours);\n };\n this.getBehaviours = function (filter) {\n if (!filter) {\n return this.$behaviours;\n }\n else {\n var ret = {};\n for (var i = 0; i < filter.length; i++) {\n if (this.$behaviours[filter[i]]) {\n ret[filter[i]] = this.$behaviours[filter[i]];\n }\n }\n return ret;\n }\n };\n}).call(Behaviour.prototype);\nexports.Behaviour = Behaviour;\n\n});\n\nace.define(\"ace/token_iterator\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"./range\").Range;\nvar TokenIterator = /** @class */ (function () {\n function TokenIterator(session, initialRow, initialColumn) {\n this.$session = session;\n this.$row = initialRow;\n this.$rowTokens = session.getTokens(initialRow);\n var token = session.getTokenAt(initialRow, initialColumn);\n this.$tokenIndex = token ? token.index : -1;\n }\n TokenIterator.prototype.stepBackward = function () {\n this.$tokenIndex -= 1;\n while (this.$tokenIndex < 0) {\n this.$row -= 1;\n if (this.$row < 0) {\n this.$row = 0;\n return null;\n }\n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = this.$rowTokens.length - 1;\n }\n return this.$rowTokens[this.$tokenIndex];\n };\n TokenIterator.prototype.stepForward = function () {\n this.$tokenIndex += 1;\n var rowCount;\n while (this.$tokenIndex >= this.$rowTokens.length) {\n this.$row += 1;\n if (!rowCount)\n rowCount = this.$session.getLength();\n if (this.$row >= rowCount) {\n this.$row = rowCount - 1;\n return null;\n }\n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = 0;\n }\n return this.$rowTokens[this.$tokenIndex];\n };\n TokenIterator.prototype.getCurrentToken = function () {\n return this.$rowTokens[this.$tokenIndex];\n };\n TokenIterator.prototype.getCurrentTokenRow = function () {\n return this.$row;\n };\n TokenIterator.prototype.getCurrentTokenColumn = function () {\n var rowTokens = this.$rowTokens;\n var tokenIndex = this.$tokenIndex;\n var column = rowTokens[tokenIndex].start;\n if (column !== undefined)\n return column;\n column = 0;\n while (tokenIndex > 0) {\n tokenIndex -= 1;\n column += rowTokens[tokenIndex].value.length;\n }\n return column;\n };\n TokenIterator.prototype.getCurrentTokenPosition = function () {\n return { row: this.$row, column: this.getCurrentTokenColumn() };\n };\n TokenIterator.prototype.getCurrentTokenRange = function () {\n var token = this.$rowTokens[this.$tokenIndex];\n var column = this.getCurrentTokenColumn();\n return new Range(this.$row, column, this.$row, column + token.value.length);\n };\n return TokenIterator;\n}());\nexports.TokenIterator = TokenIterator;\n\n});\n\nace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\nvar SAFE_INSERT_IN_TOKENS = [\"text\", \"paren.rparen\", \"rparen\", \"paren\", \"punctuation.operator\"];\nvar SAFE_INSERT_BEFORE_TOKENS = [\"text\", \"paren.rparen\", \"rparen\", \"paren\", \"punctuation.operator\", \"comment\"];\nvar context;\nvar contextCache = {};\nvar defaultQuotes = { '\"': '\"', \"'\": \"'\" };\nvar initContext = function (editor) {\n var id = -1;\n if (editor.multiSelect) {\n id = editor.selection.index;\n if (contextCache.rangeCount != editor.multiSelect.rangeCount)\n contextCache = { rangeCount: editor.multiSelect.rangeCount };\n }\n if (contextCache[id])\n return context = contextCache[id];\n context = contextCache[id] = {\n autoInsertedBrackets: 0,\n autoInsertedRow: -1,\n autoInsertedLineEnd: \"\",\n maybeInsertedBrackets: 0,\n maybeInsertedRow: -1,\n maybeInsertedLineStart: \"\",\n maybeInsertedLineEnd: \"\"\n };\n};\nvar getWrapped = function (selection, selected, opening, closing) {\n var rowDiff = selection.end.row - selection.start.row;\n return {\n text: opening + selected + closing,\n selection: [\n 0,\n selection.start.column + 1,\n rowDiff,\n selection.end.column + (rowDiff ? 0 : 1)\n ]\n };\n};\nvar CstyleBehaviour = function (options) {\n options = options || {};\n this.add(\"braces\", \"insertion\", function (state, action, editor, session, text) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (text == '{') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && selected !== \"{\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '{', '}');\n }\n else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n if (/[\\]\\}\\)]/.test(line[cursor.column]) || editor.inMultiSelectMode || options.braces) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"}\");\n return {\n text: '{}',\n selection: [1, 1]\n };\n }\n else {\n CstyleBehaviour.recordMaybeInsert(editor, session, \"{\");\n return {\n text: '{',\n selection: [1, 1]\n };\n }\n }\n }\n else if (text == '}') {\n initContext(editor);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == '}') {\n var matching = session.$findOpeningBracket('}', { column: cursor.column + 1, row: cursor.row });\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n else if (text == \"\\n\" || text == \"\\r\\n\") {\n initContext(editor);\n var closing = \"\";\n if (CstyleBehaviour.isMaybeInsertedClosing(cursor, line)) {\n closing = lang.stringRepeat(\"}\", context.maybeInsertedBrackets);\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === '}') {\n var openBracePos = session.findMatchingBracket({ row: cursor.row, column: cursor.column + 1 }, '}');\n if (!openBracePos)\n return null;\n var next_indent = this.$getIndent(session.getLine(openBracePos.row));\n }\n else if (closing) {\n var next_indent = this.$getIndent(line);\n }\n else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n return;\n }\n var indent = next_indent + session.getTabString();\n return {\n text: '\\n' + indent + '\\n' + next_indent + closing,\n selection: [1, indent.length, 1, indent.length]\n };\n }\n else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n });\n this.add(\"braces\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '{') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.end.column, range.end.column + 1);\n if (rightChar == '}') {\n range.end.column++;\n return range;\n }\n else {\n context.maybeInsertedBrackets--;\n }\n }\n });\n this.add(\"parens\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '(') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '(', ')');\n }\n else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \")\");\n return {\n text: '()',\n selection: [1, 1]\n };\n }\n }\n else if (text == ')') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ')') {\n var matching = session.$findOpeningBracket(')', { column: cursor.column + 1, row: cursor.row });\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n this.add(\"parens\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '(') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ')') {\n range.end.column++;\n return range;\n }\n }\n });\n this.add(\"brackets\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '[') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '[', ']');\n }\n else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"]\");\n return {\n text: '[]',\n selection: [1, 1]\n };\n }\n }\n else if (text == ']') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ']') {\n var matching = session.$findOpeningBracket(']', { column: cursor.column + 1, row: cursor.row });\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n this.add(\"brackets\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '[') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ']') {\n range.end.column++;\n return range;\n }\n }\n });\n this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n var quotes = session.$mode.$quotes || defaultQuotes;\n if (text.length == 1 && quotes[text]) {\n if (this.lineCommentStart && this.lineCommentStart.indexOf(text) != -1)\n return;\n initContext(editor);\n var quote = text;\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && (selected.length != 1 || !quotes[selected]) && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, quote, quote);\n }\n else if (!selected) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var leftChar = line.substring(cursor.column - 1, cursor.column);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n var token = session.getTokenAt(cursor.row, cursor.column);\n var rightToken = session.getTokenAt(cursor.row, cursor.column + 1);\n if (leftChar == \"\\\\\" && token && /escape/.test(token.type))\n return null;\n var stringBefore = token && /string|escape/.test(token.type);\n var stringAfter = !rightToken || /string|escape/.test(rightToken.type);\n var pair;\n if (rightChar == quote) {\n pair = stringBefore !== stringAfter;\n if (pair && /string\\.end/.test(rightToken.type))\n pair = false;\n }\n else {\n if (stringBefore && !stringAfter)\n return null; // wrap string with different quote\n if (stringBefore && stringAfter)\n return null; // do not pair quotes inside strings\n var wordRe = session.$mode.tokenRe;\n wordRe.lastIndex = 0;\n var isWordBefore = wordRe.test(leftChar);\n wordRe.lastIndex = 0;\n var isWordAfter = wordRe.test(rightChar);\n var pairQuotesAfter = session.$mode.$pairQuotesAfter;\n var shouldPairQuotes = pairQuotesAfter && pairQuotesAfter[quote] && pairQuotesAfter[quote].test(leftChar);\n if ((!shouldPairQuotes && isWordBefore) || isWordAfter)\n return null; // before or after alphanumeric\n if (rightChar && !/[\\s;,.})\\]\\\\]/.test(rightChar))\n return null; // there is rightChar and it isn't closing\n var charBefore = line[cursor.column - 2];\n if (leftChar == quote && (charBefore == quote || wordRe.test(charBefore)))\n return null;\n pair = true;\n }\n return {\n text: pair ? quote + quote : \"\",\n selection: [1, 1]\n };\n }\n }\n });\n this.add(\"string_dquotes\", \"deletion\", function (state, action, editor, session, range) {\n var quotes = session.$mode.$quotes || defaultQuotes;\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && quotes.hasOwnProperty(selected)) {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n if (options.closeDocComment !== false) {\n this.add(\"doc comment end\", \"insertion\", function (state, action, editor, session, text) {\n if (state === \"doc-start\" && (text === \"\\n\" || text === \"\\r\\n\") && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var nextLine = session.doc.getLine(cursor.row + 1);\n var indent = this.$getIndent(line);\n if (/\\s*\\*/.test(nextLine)) {\n if (/^\\s*\\*/.test(line)) {\n return {\n text: text + indent + \"* \",\n selection: [1, 3 + indent.length, 1, 3 + indent.length]\n };\n }\n else {\n return {\n text: text + indent + \" * \",\n selection: [1, 3 + indent.length, 1, 3 + indent.length]\n };\n }\n }\n if (/\\/\\*\\*/.test(line.substring(0, cursor.column))) {\n return {\n text: text + indent + \" * \" + text + \" \" + indent + \"*/\",\n selection: [1, 4 + indent.length, 1, 4 + indent.length]\n };\n }\n }\n });\n }\n};\nCstyleBehaviour.isSaneInsertion = function (editor, session) {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n if (!this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS)) {\n if (/[)}\\]]/.test(editor.session.getLine(cursor.row)[cursor.column]))\n return true;\n var iterator2 = new TokenIterator(session, cursor.row, cursor.column + 1);\n if (!this.$matchTokenType(iterator2.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS))\n return false;\n }\n iterator.stepForward();\n return iterator.getCurrentTokenRow() !== cursor.row ||\n this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_BEFORE_TOKENS);\n};\nCstyleBehaviour.$matchTokenType = function (token, types) {\n return types.indexOf(token.type || token) > -1;\n};\nCstyleBehaviour.recordAutoInsert = function (editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isAutoInsertedClosing(cursor, line, context.autoInsertedLineEnd[0]))\n context.autoInsertedBrackets = 0;\n context.autoInsertedRow = cursor.row;\n context.autoInsertedLineEnd = bracket + line.substr(cursor.column);\n context.autoInsertedBrackets++;\n};\nCstyleBehaviour.recordMaybeInsert = function (editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isMaybeInsertedClosing(cursor, line))\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = cursor.row;\n context.maybeInsertedLineStart = line.substr(0, cursor.column) + bracket;\n context.maybeInsertedLineEnd = line.substr(cursor.column);\n context.maybeInsertedBrackets++;\n};\nCstyleBehaviour.isAutoInsertedClosing = function (cursor, line, bracket) {\n return context.autoInsertedBrackets > 0 &&\n cursor.row === context.autoInsertedRow &&\n bracket === context.autoInsertedLineEnd[0] &&\n line.substr(cursor.column) === context.autoInsertedLineEnd;\n};\nCstyleBehaviour.isMaybeInsertedClosing = function (cursor, line) {\n return context.maybeInsertedBrackets > 0 &&\n cursor.row === context.maybeInsertedRow &&\n line.substr(cursor.column) === context.maybeInsertedLineEnd &&\n line.substr(0, cursor.column) == context.maybeInsertedLineStart;\n};\nCstyleBehaviour.popAutoInsertedClosing = function () {\n context.autoInsertedLineEnd = context.autoInsertedLineEnd.substr(1);\n context.autoInsertedBrackets--;\n};\nCstyleBehaviour.clearMaybeInsertedClosing = function () {\n if (context) {\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = -1;\n }\n};\noop.inherits(CstyleBehaviour, Behaviour);\nexports.CstyleBehaviour = CstyleBehaviour;\n\n});\n\nace.define(\"ace/unicode\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar wordChars = [48, 9, 8, 25, 5, 0, 2, 25, 48, 0, 11, 0, 5, 0, 6, 22, 2, 30, 2, 457, 5, 11, 15, 4, 8, 0, 2, 0, 18, 116, 2, 1, 3, 3, 9, 0, 2, 2, 2, 0, 2, 19, 2, 82, 2, 138, 2, 4, 3, 155, 12, 37, 3, 0, 8, 38, 10, 44, 2, 0, 2, 1, 2, 1, 2, 0, 9, 26, 6, 2, 30, 10, 7, 61, 2, 9, 5, 101, 2, 7, 3, 9, 2, 18, 3, 0, 17, 58, 3, 100, 15, 53, 5, 0, 6, 45, 211, 57, 3, 18, 2, 5, 3, 11, 3, 9, 2, 1, 7, 6, 2, 2, 2, 7, 3, 1, 3, 21, 2, 6, 2, 0, 4, 3, 3, 8, 3, 1, 3, 3, 9, 0, 5, 1, 2, 4, 3, 11, 16, 2, 2, 5, 5, 1, 3, 21, 2, 6, 2, 1, 2, 1, 2, 1, 3, 0, 2, 4, 5, 1, 3, 2, 4, 0, 8, 3, 2, 0, 8, 15, 12, 2, 2, 8, 2, 2, 2, 21, 2, 6, 2, 1, 2, 4, 3, 9, 2, 2, 2, 2, 3, 0, 16, 3, 3, 9, 18, 2, 2, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 3, 8, 3, 1, 3, 2, 9, 1, 5, 1, 2, 4, 3, 9, 2, 0, 17, 1, 2, 5, 4, 2, 2, 3, 4, 1, 2, 0, 2, 1, 4, 1, 4, 2, 4, 11, 5, 4, 4, 2, 2, 3, 3, 0, 7, 0, 15, 9, 18, 2, 2, 7, 2, 2, 2, 22, 2, 9, 2, 4, 4, 7, 2, 2, 2, 3, 8, 1, 2, 1, 7, 3, 3, 9, 19, 1, 2, 7, 2, 2, 2, 22, 2, 9, 2, 4, 3, 8, 2, 2, 2, 3, 8, 1, 8, 0, 2, 3, 3, 9, 19, 1, 2, 7, 2, 2, 2, 22, 2, 15, 4, 7, 2, 2, 2, 3, 10, 0, 9, 3, 3, 9, 11, 5, 3, 1, 2, 17, 4, 23, 2, 8, 2, 0, 3, 6, 4, 0, 5, 5, 2, 0, 2, 7, 19, 1, 14, 57, 6, 14, 2, 9, 40, 1, 2, 0, 3, 1, 2, 0, 3, 0, 7, 3, 2, 6, 2, 2, 2, 0, 2, 0, 3, 1, 2, 12, 2, 2, 3, 4, 2, 0, 2, 5, 3, 9, 3, 1, 35, 0, 24, 1, 7, 9, 12, 0, 2, 0, 2, 0, 5, 9, 2, 35, 5, 19, 2, 5, 5, 7, 2, 35, 10, 0, 58, 73, 7, 77, 3, 37, 11, 42, 2, 0, 4, 328, 2, 3, 3, 6, 2, 0, 2, 3, 3, 40, 2, 3, 3, 32, 2, 3, 3, 6, 2, 0, 2, 3, 3, 14, 2, 56, 2, 3, 3, 66, 5, 0, 33, 15, 17, 84, 13, 619, 3, 16, 2, 25, 6, 74, 22, 12, 2, 6, 12, 20, 12, 19, 13, 12, 2, 2, 2, 1, 13, 51, 3, 29, 4, 0, 5, 1, 3, 9, 34, 2, 3, 9, 7, 87, 9, 42, 6, 69, 11, 28, 4, 11, 5, 11, 11, 39, 3, 4, 12, 43, 5, 25, 7, 10, 38, 27, 5, 62, 2, 28, 3, 10, 7, 9, 14, 0, 89, 75, 5, 9, 18, 8, 13, 42, 4, 11, 71, 55, 9, 9, 4, 48, 83, 2, 2, 30, 14, 230, 23, 280, 3, 5, 3, 37, 3, 5, 3, 7, 2, 0, 2, 0, 2, 0, 2, 30, 3, 52, 2, 6, 2, 0, 4, 2, 2, 6, 4, 3, 3, 5, 5, 12, 6, 2, 2, 6, 67, 1, 20, 0, 29, 0, 14, 0, 17, 4, 60, 12, 5, 0, 4, 11, 18, 0, 5, 0, 3, 9, 2, 0, 4, 4, 7, 0, 2, 0, 2, 0, 2, 3, 2, 10, 3, 3, 6, 4, 5, 0, 53, 1, 2684, 46, 2, 46, 2, 132, 7, 6, 15, 37, 11, 53, 10, 0, 17, 22, 10, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 31, 48, 0, 470, 1, 36, 5, 2, 4, 6, 1, 5, 85, 3, 1, 3, 2, 2, 89, 2, 3, 6, 40, 4, 93, 18, 23, 57, 15, 513, 6581, 75, 20939, 53, 1164, 68, 45, 3, 268, 4, 27, 21, 31, 3, 13, 13, 1, 2, 24, 9, 69, 11, 1, 38, 8, 3, 102, 3, 1, 111, 44, 25, 51, 13, 68, 12, 9, 7, 23, 4, 0, 5, 45, 3, 35, 13, 28, 4, 64, 15, 10, 39, 54, 10, 13, 3, 9, 7, 22, 4, 1, 5, 66, 25, 2, 227, 42, 2, 1, 3, 9, 7, 11171, 13, 22, 5, 48, 8453, 301, 3, 61, 3, 105, 39, 6, 13, 4, 6, 11, 2, 12, 2, 4, 2, 0, 2, 1, 2, 1, 2, 107, 34, 362, 19, 63, 3, 53, 41, 11, 5, 15, 17, 6, 13, 1, 25, 2, 33, 4, 2, 134, 20, 9, 8, 25, 5, 0, 2, 25, 12, 88, 4, 5, 3, 5, 3, 5, 3, 2];\nvar code = 0;\nvar str = [];\nfor (var i = 0; i < wordChars.length; i += 2) {\n str.push(code += wordChars[i]);\n if (wordChars[i + 1])\n str.push(45, code += wordChars[i + 1]);\n}\nexports.wordChars = String.fromCharCode.apply(null, str);\n\n});\n\nace.define(\"ace/mode/text\",[\"require\",\"exports\",\"module\",\"ace/config\",\"ace/tokenizer\",\"ace/mode/text_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/unicode\",\"ace/lib/lang\",\"ace/token_iterator\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar config = require(\"../config\");\nvar Tokenizer = require(\"../tokenizer\").Tokenizer;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar unicode = require(\"../unicode\");\nvar lang = require(\"../lib/lang\");\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nvar Range = require(\"../range\").Range;\nvar Mode = function () {\n this.HighlightRules = TextHighlightRules;\n};\n(function () {\n this.$defaultBehaviour = new CstyleBehaviour();\n this.tokenRe = new RegExp(\"^[\" + unicode.wordChars + \"\\\\$_]+\", \"g\");\n this.nonTokenRe = new RegExp(\"^(?:[^\" + unicode.wordChars + \"\\\\$_]|\\\\s])+\", \"g\");\n this.getTokenizer = function () {\n if (!this.$tokenizer) {\n this.$highlightRules = this.$highlightRules || new this.HighlightRules(this.$highlightRuleConfig);\n this.$tokenizer = new Tokenizer(this.$highlightRules.getRules());\n }\n return this.$tokenizer;\n };\n this.lineCommentStart = \"\";\n this.blockComment = \"\";\n this.toggleCommentLines = function (state, session, startRow, endRow) {\n var doc = session.doc;\n var ignoreBlankLines = true;\n var shouldRemove = true;\n var minIndent = Infinity;\n var tabSize = session.getTabSize();\n var insertAtTabStop = false;\n if (!this.lineCommentStart) {\n if (!this.blockComment)\n return false;\n var lineCommentStart = this.blockComment.start;\n var lineCommentEnd = this.blockComment.end;\n var regexpStart = new RegExp(\"^(\\\\s*)(?:\" + lang.escapeRegExp(lineCommentStart) + \")\");\n var regexpEnd = new RegExp(\"(?:\" + lang.escapeRegExp(lineCommentEnd) + \")\\\\s*$\");\n var comment = function (line, i) {\n if (testRemove(line, i))\n return;\n if (!ignoreBlankLines || /\\S/.test(line)) {\n doc.insertInLine({ row: i, column: line.length }, lineCommentEnd);\n doc.insertInLine({ row: i, column: minIndent }, lineCommentStart);\n }\n };\n var uncomment = function (line, i) {\n var m;\n if (m = line.match(regexpEnd))\n doc.removeInLine(i, line.length - m[0].length, line.length);\n if (m = line.match(regexpStart))\n doc.removeInLine(i, m[1].length, m[0].length);\n };\n var testRemove = function (line, row) {\n if (regexpStart.test(line))\n return true;\n var tokens = session.getTokens(row);\n for (var i = 0; i < tokens.length; i++) {\n if (tokens[i].type === \"comment\")\n return true;\n }\n };\n }\n else {\n if (Array.isArray(this.lineCommentStart)) {\n var regexpStart = this.lineCommentStart.map(lang.escapeRegExp).join(\"|\");\n var lineCommentStart = this.lineCommentStart[0];\n }\n else {\n var regexpStart = lang.escapeRegExp(this.lineCommentStart);\n var lineCommentStart = this.lineCommentStart;\n }\n regexpStart = new RegExp(\"^(\\\\s*)(?:\" + regexpStart + \") ?\");\n insertAtTabStop = session.getUseSoftTabs();\n var uncomment = function (line, i) {\n var m = line.match(regexpStart);\n if (!m)\n return;\n var start = m[1].length, end = m[0].length;\n if (!shouldInsertSpace(line, start, end) && m[0][end - 1] == \" \")\n end--;\n doc.removeInLine(i, start, end);\n };\n var commentWithSpace = lineCommentStart + \" \";\n var comment = function (line, i) {\n if (!ignoreBlankLines || /\\S/.test(line)) {\n if (shouldInsertSpace(line, minIndent, minIndent))\n doc.insertInLine({ row: i, column: minIndent }, commentWithSpace);\n else\n doc.insertInLine({ row: i, column: minIndent }, lineCommentStart);\n }\n };\n var testRemove = function (line, i) {\n return regexpStart.test(line);\n };\n var shouldInsertSpace = function (line, before, after) {\n var spaces = 0;\n while (before-- && line.charAt(before) == \" \")\n spaces++;\n if (spaces % tabSize != 0)\n return false;\n var spaces = 0;\n while (line.charAt(after++) == \" \")\n spaces++;\n if (tabSize > 2)\n return spaces % tabSize != tabSize - 1;\n else\n return spaces % tabSize == 0;\n };\n }\n function iter(fun) {\n for (var i = startRow; i <= endRow; i++)\n fun(doc.getLine(i), i);\n }\n var minEmptyLength = Infinity;\n iter(function (line, i) {\n var indent = line.search(/\\S/);\n if (indent !== -1) {\n if (indent < minIndent)\n minIndent = indent;\n if (shouldRemove && !testRemove(line, i))\n shouldRemove = false;\n }\n else if (minEmptyLength > line.length) {\n minEmptyLength = line.length;\n }\n });\n if (minIndent == Infinity) {\n minIndent = minEmptyLength;\n ignoreBlankLines = false;\n shouldRemove = false;\n }\n if (insertAtTabStop && minIndent % tabSize != 0)\n minIndent = Math.floor(minIndent / tabSize) * tabSize;\n iter(shouldRemove ? uncomment : comment);\n };\n this.toggleBlockComment = function (state, session, range, cursor) {\n var comment = this.blockComment;\n if (!comment)\n return;\n if (!comment.start && comment[0])\n comment = comment[0];\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n var sel = session.selection;\n var initialRange = session.selection.toOrientedRange();\n var startRow, colDiff;\n if (token && /comment/.test(token.type)) {\n var startRange, endRange;\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.start);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n startRange = new Range(row, column, row, column + comment.start.length);\n break;\n }\n token = iterator.stepBackward();\n }\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.end);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n endRange = new Range(row, column, row, column + comment.end.length);\n break;\n }\n token = iterator.stepForward();\n }\n if (endRange)\n session.remove(endRange);\n if (startRange) {\n session.remove(startRange);\n startRow = startRange.start.row;\n colDiff = -comment.start.length;\n }\n }\n else {\n colDiff = comment.start.length;\n startRow = range.start.row;\n session.insert(range.end, comment.end);\n session.insert(range.start, comment.start);\n }\n if (initialRange.start.row == startRow)\n initialRange.start.column += colDiff;\n if (initialRange.end.row == startRow)\n initialRange.end.column += colDiff;\n session.selection.fromOrientedRange(initialRange);\n };\n this.getNextLineIndent = function (state, line, tab) {\n return this.$getIndent(line);\n };\n this.checkOutdent = function (state, line, input) {\n return false;\n };\n this.autoOutdent = function (state, doc, row) {\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n this.createWorker = function (session) {\n return null;\n };\n this.createModeDelegates = function (mapping) {\n this.$embeds = [];\n this.$modes = {};\n for (var i in mapping) {\n if (mapping[i]) {\n var Mode = mapping[i];\n var id = Mode.prototype.$id;\n var mode = config.$modes[id];\n if (!mode)\n config.$modes[id] = mode = new Mode();\n if (!config.$modes[i])\n config.$modes[i] = mode;\n this.$embeds.push(i);\n this.$modes[i] = mode;\n }\n }\n var delegations = [\"toggleBlockComment\", \"toggleCommentLines\", \"getNextLineIndent\",\n \"checkOutdent\", \"autoOutdent\", \"transformAction\", \"getCompletions\"];\n for (var i = 0; i < delegations.length; i++) {\n (function (scope) {\n var functionName = delegations[i];\n var defaultHandler = scope[functionName];\n scope[delegations[i]] = function () {\n return this.$delegator(functionName, arguments, defaultHandler);\n };\n }(this));\n }\n };\n this.$delegator = function (method, args, defaultHandler) {\n var state = args[0] || \"start\";\n if (typeof state != \"string\") {\n if (Array.isArray(state[2])) {\n var language = state[2][state[2].length - 1];\n var mode = this.$modes[language];\n if (mode)\n return mode[method].apply(mode, [state[1]].concat([].slice.call(args, 1)));\n }\n state = state[0] || \"start\";\n }\n for (var i = 0; i < this.$embeds.length; i++) {\n if (!this.$modes[this.$embeds[i]])\n continue;\n var split = state.split(this.$embeds[i]);\n if (!split[0] && split[1]) {\n args[0] = split[1];\n var mode = this.$modes[this.$embeds[i]];\n return mode[method].apply(mode, args);\n }\n }\n var ret = defaultHandler.apply(this, args);\n return defaultHandler ? ret : undefined;\n };\n this.transformAction = function (state, action, editor, session, param) {\n if (this.$behaviour) {\n var behaviours = this.$behaviour.getBehaviours();\n for (var key in behaviours) {\n if (behaviours[key][action]) {\n var ret = behaviours[key][action].apply(this, arguments);\n if (ret) {\n return ret;\n }\n }\n }\n }\n };\n this.getKeywords = function (append) {\n if (!this.completionKeywords) {\n var rules = this.$tokenizer.rules;\n var completionKeywords = [];\n for (var rule in rules) {\n var ruleItr = rules[rule];\n for (var r = 0, l = ruleItr.length; r < l; r++) {\n if (typeof ruleItr[r].token === \"string\") {\n if (/keyword|support|storage/.test(ruleItr[r].token))\n completionKeywords.push(ruleItr[r].regex);\n }\n else if (typeof ruleItr[r].token === \"object\") {\n for (var a = 0, aLength = ruleItr[r].token.length; a < aLength; a++) {\n if (/keyword|support|storage/.test(ruleItr[r].token[a])) {\n var rule = ruleItr[r].regex.match(/\\(.+?\\)/g)[a];\n completionKeywords.push(rule.substr(1, rule.length - 2));\n }\n }\n }\n }\n }\n this.completionKeywords = completionKeywords;\n }\n if (!append)\n return this.$keywordList;\n return completionKeywords.concat(this.$keywordList || []);\n };\n this.$createKeywordList = function () {\n if (!this.$highlightRules)\n this.getTokenizer();\n return this.$keywordList = this.$highlightRules.$keywordList || [];\n };\n this.getCompletions = function (state, session, pos, prefix) {\n var keywords = this.$keywordList || this.$createKeywordList();\n return keywords.map(function (word) {\n return {\n name: word,\n value: word,\n score: 0,\n meta: \"keyword\"\n };\n });\n };\n this.$id = \"ace/mode/text\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n});\n\nace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nfunction throwDeltaError(delta, errorText) {\n console.log(\"Invalid Delta:\", delta);\n throw \"Invalid Delta: \" + errorText;\n}\nfunction positionInDocument(docLines, position) {\n return position.row >= 0 && position.row < docLines.length &&\n position.column >= 0 && position.column <= docLines[position.row].length;\n}\nfunction validateDelta(docLines, delta) {\n if (delta.action != \"insert\" && delta.action != \"remove\")\n throwDeltaError(delta, \"delta.action must be 'insert' or 'remove'\");\n if (!(delta.lines instanceof Array))\n throwDeltaError(delta, \"delta.lines must be an Array\");\n if (!delta.start || !delta.end)\n throwDeltaError(delta, \"delta.start/end must be an present\");\n var start = delta.start;\n if (!positionInDocument(docLines, delta.start))\n throwDeltaError(delta, \"delta.start must be contained in document\");\n var end = delta.end;\n if (delta.action == \"remove\" && !positionInDocument(docLines, end))\n throwDeltaError(delta, \"delta.end must contained in document for 'remove' actions\");\n var numRangeRows = end.row - start.row;\n var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0));\n if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars)\n throwDeltaError(delta, \"delta.range must match delta lines\");\n}\nexports.applyDelta = function (docLines, delta, doNotValidate) {\n var row = delta.start.row;\n var startColumn = delta.start.column;\n var line = docLines[row] || \"\";\n switch (delta.action) {\n case \"insert\":\n var lines = delta.lines;\n if (lines.length === 1) {\n docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn);\n }\n else {\n var args = [row, 1].concat(delta.lines);\n docLines.splice.apply(docLines, args);\n docLines[row] = line.substring(0, startColumn) + docLines[row];\n docLines[row + delta.lines.length - 1] += line.substring(startColumn);\n }\n break;\n case \"remove\":\n var endColumn = delta.end.column;\n var endRow = delta.end.row;\n if (row === endRow) {\n docLines[row] = line.substring(0, startColumn) + line.substring(endColumn);\n }\n else {\n docLines.splice(row, endRow - row + 1, line.substring(0, startColumn) + docLines[endRow].substring(endColumn));\n }\n break;\n }\n};\n\n});\n\nace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Anchor = /** @class */ (function () {\n function Anchor(doc, row, column) {\n this.$onChange = this.onChange.bind(this);\n this.attach(doc);\n if (typeof column == \"undefined\")\n this.setPosition(row.row, row.column);\n else\n this.setPosition(row, column);\n }\n Anchor.prototype.getPosition = function () {\n return this.$clipPositionToDocument(this.row, this.column);\n };\n Anchor.prototype.getDocument = function () {\n return this.document;\n };\n Anchor.prototype.onChange = function (delta) {\n if (delta.start.row == delta.end.row && delta.start.row != this.row)\n return;\n if (delta.start.row > this.row)\n return;\n var point = $getTransformedPoint(delta, { row: this.row, column: this.column }, this.$insertRight);\n this.setPosition(point.row, point.column, true);\n };\n Anchor.prototype.setPosition = function (row, column, noClip) {\n var pos;\n if (noClip) {\n pos = {\n row: row,\n column: column\n };\n }\n else {\n pos = this.$clipPositionToDocument(row, column);\n }\n if (this.row == pos.row && this.column == pos.column)\n return;\n var old = {\n row: this.row,\n column: this.column\n };\n this.row = pos.row;\n this.column = pos.column;\n this._signal(\"change\", {\n old: old,\n value: pos\n });\n };\n Anchor.prototype.detach = function () {\n this.document.off(\"change\", this.$onChange);\n };\n Anchor.prototype.attach = function (doc) {\n this.document = doc || this.document;\n this.document.on(\"change\", this.$onChange);\n };\n Anchor.prototype.$clipPositionToDocument = function (row, column) {\n var pos = {};\n if (row >= this.document.getLength()) {\n pos.row = Math.max(0, this.document.getLength() - 1);\n pos.column = this.document.getLine(pos.row).length;\n }\n else if (row < 0) {\n pos.row = 0;\n pos.column = 0;\n }\n else {\n pos.row = row;\n pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));\n }\n if (column < 0)\n pos.column = 0;\n return pos;\n };\n return Anchor;\n}());\nAnchor.prototype.$insertRight = false;\noop.implement(Anchor.prototype, EventEmitter);\nfunction $pointsInOrder(point1, point2, equalPointsInOrder) {\n var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column;\n return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter);\n}\nfunction $getTransformedPoint(delta, point, moveIfEqual) {\n var deltaIsInsert = delta.action == \"insert\";\n var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row - delta.start.row);\n var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column);\n var deltaStart = delta.start;\n var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range.\n if ($pointsInOrder(point, deltaStart, moveIfEqual)) {\n return {\n row: point.row,\n column: point.column\n };\n }\n if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) {\n return {\n row: point.row + deltaRowShift,\n column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0)\n };\n }\n return {\n row: deltaStart.row,\n column: deltaStart.column\n };\n}\nexports.Anchor = Anchor;\n\n});\n\nace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar applyDelta = require(\"./apply_delta\").applyDelta;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Range = require(\"./range\").Range;\nvar Anchor = require(\"./anchor\").Anchor;\nvar Document = /** @class */ (function () {\n function Document(textOrLines) {\n this.$lines = [\"\"];\n if (textOrLines.length === 0) {\n this.$lines = [\"\"];\n }\n else if (Array.isArray(textOrLines)) {\n this.insertMergedLines({ row: 0, column: 0 }, textOrLines);\n }\n else {\n this.insert({ row: 0, column: 0 }, textOrLines);\n }\n }\n Document.prototype.setValue = function (text) {\n var len = this.getLength() - 1;\n this.remove(new Range(0, 0, len, this.getLine(len).length));\n this.insert({ row: 0, column: 0 }, text || \"\");\n };\n Document.prototype.getValue = function () {\n return this.getAllLines().join(this.getNewLineCharacter());\n };\n Document.prototype.createAnchor = function (row, column) {\n return new Anchor(this, row, column);\n };\n Document.prototype.$detectNewLine = function (text) {\n var match = text.match(/^.*?(\\r\\n|\\r|\\n)/m);\n this.$autoNewLine = match ? match[1] : \"\\n\";\n this._signal(\"changeNewLineMode\");\n };\n Document.prototype.getNewLineCharacter = function () {\n switch (this.$newLineMode) {\n case \"windows\":\n return \"\\r\\n\";\n case \"unix\":\n return \"\\n\";\n default:\n return this.$autoNewLine || \"\\n\";\n }\n };\n Document.prototype.setNewLineMode = function (newLineMode) {\n if (this.$newLineMode === newLineMode)\n return;\n this.$newLineMode = newLineMode;\n this._signal(\"changeNewLineMode\");\n };\n Document.prototype.getNewLineMode = function () {\n return this.$newLineMode;\n };\n Document.prototype.isNewLine = function (text) {\n return (text == \"\\r\\n\" || text == \"\\r\" || text == \"\\n\");\n };\n Document.prototype.getLine = function (row) {\n return this.$lines[row] || \"\";\n };\n Document.prototype.getLines = function (firstRow, lastRow) {\n return this.$lines.slice(firstRow, lastRow + 1);\n };\n Document.prototype.getAllLines = function () {\n return this.getLines(0, this.getLength());\n };\n Document.prototype.getLength = function () {\n return this.$lines.length;\n };\n Document.prototype.getTextRange = function (range) {\n return this.getLinesForRange(range).join(this.getNewLineCharacter());\n };\n Document.prototype.getLinesForRange = function (range) {\n var lines;\n if (range.start.row === range.end.row) {\n lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)];\n }\n else {\n lines = this.getLines(range.start.row, range.end.row);\n lines[0] = (lines[0] || \"\").substring(range.start.column);\n var l = lines.length - 1;\n if (range.end.row - range.start.row == l)\n lines[l] = lines[l].substring(0, range.end.column);\n }\n return lines;\n };\n Document.prototype.insertLines = function (row, lines) {\n console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\");\n return this.insertFullLines(row, lines);\n };\n Document.prototype.removeLines = function (firstRow, lastRow) {\n console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\");\n return this.removeFullLines(firstRow, lastRow);\n };\n Document.prototype.insertNewLine = function (position) {\n console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\");\n return this.insertMergedLines(position, [\"\", \"\"]);\n };\n Document.prototype.insert = function (position, text) {\n if (this.getLength() <= 1)\n this.$detectNewLine(text);\n return this.insertMergedLines(position, this.$split(text));\n };\n Document.prototype.insertInLine = function (position, text) {\n var start = this.clippedPos(position.row, position.column);\n var end = this.pos(position.row, position.column + text.length);\n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: [text]\n }, true);\n return this.clonePos(end);\n };\n Document.prototype.clippedPos = function (row, column) {\n var length = this.getLength();\n if (row === undefined) {\n row = length;\n }\n else if (row < 0) {\n row = 0;\n }\n else if (row >= length) {\n row = length - 1;\n column = undefined;\n }\n var line = this.getLine(row);\n if (column == undefined)\n column = line.length;\n column = Math.min(Math.max(column, 0), line.length);\n return { row: row, column: column };\n };\n Document.prototype.clonePos = function (pos) {\n return { row: pos.row, column: pos.column };\n };\n Document.prototype.pos = function (row, column) {\n return { row: row, column: column };\n };\n Document.prototype.$clipPosition = function (position) {\n var length = this.getLength();\n if (position.row >= length) {\n position.row = Math.max(0, length - 1);\n position.column = this.getLine(length - 1).length;\n }\n else {\n position.row = Math.max(0, position.row);\n position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length);\n }\n return position;\n };\n Document.prototype.insertFullLines = function (row, lines) {\n row = Math.min(Math.max(row, 0), this.getLength());\n var column = 0;\n if (row < this.getLength()) {\n lines = lines.concat([\"\"]);\n column = 0;\n }\n else {\n lines = [\"\"].concat(lines);\n row--;\n column = this.$lines[row].length;\n }\n this.insertMergedLines({ row: row, column: column }, lines);\n };\n Document.prototype.insertMergedLines = function (position, lines) {\n var start = this.clippedPos(position.row, position.column);\n var end = {\n row: start.row + lines.length - 1,\n column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length\n };\n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: lines\n });\n return this.clonePos(end);\n };\n Document.prototype.remove = function (range) {\n var start = this.clippedPos(range.start.row, range.start.column);\n var end = this.clippedPos(range.end.row, range.end.column);\n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({ start: start, end: end })\n });\n return this.clonePos(start);\n };\n Document.prototype.removeInLine = function (row, startColumn, endColumn) {\n var start = this.clippedPos(row, startColumn);\n var end = this.clippedPos(row, endColumn);\n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({ start: start, end: end })\n }, true);\n return this.clonePos(start);\n };\n Document.prototype.removeFullLines = function (firstRow, lastRow) {\n firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1);\n lastRow = Math.min(Math.max(0, lastRow), this.getLength() - 1);\n var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0;\n var deleteLastNewLine = lastRow < this.getLength() - 1;\n var startRow = (deleteFirstNewLine ? firstRow - 1 : firstRow);\n var startCol = (deleteFirstNewLine ? this.getLine(startRow).length : 0);\n var endRow = (deleteLastNewLine ? lastRow + 1 : lastRow);\n var endCol = (deleteLastNewLine ? 0 : this.getLine(endRow).length);\n var range = new Range(startRow, startCol, endRow, endCol);\n var deletedLines = this.$lines.slice(firstRow, lastRow + 1);\n this.applyDelta({\n start: range.start,\n end: range.end,\n action: \"remove\",\n lines: this.getLinesForRange(range)\n });\n return deletedLines;\n };\n Document.prototype.removeNewLine = function (row) {\n if (row < this.getLength() - 1 && row >= 0) {\n this.applyDelta({\n start: this.pos(row, this.getLine(row).length),\n end: this.pos(row + 1, 0),\n action: \"remove\",\n lines: [\"\", \"\"]\n });\n }\n };\n Document.prototype.replace = function (range, text) {\n if (!(range instanceof Range))\n range = Range.fromPoints(range.start, range.end);\n if (text.length === 0 && range.isEmpty())\n return range.start;\n if (text == this.getTextRange(range))\n return range.end;\n this.remove(range);\n var end;\n if (text) {\n end = this.insert(range.start, text);\n }\n else {\n end = range.start;\n }\n return end;\n };\n Document.prototype.applyDeltas = function (deltas) {\n for (var i = 0; i < deltas.length; i++) {\n this.applyDelta(deltas[i]);\n }\n };\n Document.prototype.revertDeltas = function (deltas) {\n for (var i = deltas.length - 1; i >= 0; i--) {\n this.revertDelta(deltas[i]);\n }\n };\n Document.prototype.applyDelta = function (delta, doNotValidate) {\n var isInsert = delta.action == \"insert\";\n if (isInsert ? delta.lines.length <= 1 && !delta.lines[0]\n : !Range.comparePoints(delta.start, delta.end)) {\n return;\n }\n if (isInsert && delta.lines.length > 20000) {\n this.$splitAndapplyLargeDelta(delta, 20000);\n }\n else {\n applyDelta(this.$lines, delta, doNotValidate);\n this._signal(\"change\", delta);\n }\n };\n Document.prototype.$safeApplyDelta = function (delta) {\n var docLength = this.$lines.length;\n if (delta.action == \"remove\" && delta.start.row < docLength && delta.end.row < docLength\n || delta.action == \"insert\" && delta.start.row <= docLength) {\n this.applyDelta(delta);\n }\n };\n Document.prototype.$splitAndapplyLargeDelta = function (delta, MAX) {\n var lines = delta.lines;\n var l = lines.length - MAX + 1;\n var row = delta.start.row;\n var column = delta.start.column;\n for (var from = 0, to = 0; from < l; from = to) {\n to += MAX - 1;\n var chunk = lines.slice(from, to);\n chunk.push(\"\");\n this.applyDelta({\n start: this.pos(row + from, column),\n end: this.pos(row + to, column = 0),\n action: delta.action,\n lines: chunk\n }, true);\n }\n delta.lines = lines.slice(from);\n delta.start.row = row + from;\n delta.start.column = column;\n this.applyDelta(delta, true);\n };\n Document.prototype.revertDelta = function (delta) {\n this.$safeApplyDelta({\n start: this.clonePos(delta.start),\n end: this.clonePos(delta.end),\n action: (delta.action == \"insert\" ? \"remove\" : \"insert\"),\n lines: delta.lines.slice()\n });\n };\n Document.prototype.indexToPosition = function (index, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n for (var i = startRow || 0, l = lines.length; i < l; i++) {\n index -= lines[i].length + newlineLength;\n if (index < 0)\n return { row: i, column: index + lines[i].length + newlineLength };\n }\n return { row: l - 1, column: index + lines[l - 1].length + newlineLength };\n };\n Document.prototype.positionToIndex = function (pos, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n var index = 0;\n var row = Math.min(pos.row, lines.length);\n for (var i = startRow || 0; i < row; ++i)\n index += lines[i].length + newlineLength;\n return index + pos.column;\n };\n Document.prototype.$split = function (text) {\n return text.split(/\\r\\n|\\r|\\n/);\n };\n return Document;\n}());\nDocument.prototype.$autoNewLine = \"\";\nDocument.prototype.$newLineMode = \"auto\";\noop.implement(Document.prototype, EventEmitter);\nexports.Document = Document;\n\n});\n\nace.define(\"ace/background_tokenizer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar BackgroundTokenizer = /** @class */ (function () {\n function BackgroundTokenizer(tokenizer, editor) {\n this.running = false;\n this.lines = [];\n this.states = [];\n this.currentLine = 0;\n this.tokenizer = tokenizer;\n var self = this;\n this.$worker = function () {\n if (!self.running) {\n return;\n }\n var workerStart = new Date();\n var currentLine = self.currentLine;\n var endLine = -1;\n var doc = self.doc;\n var startLine = currentLine;\n while (self.lines[currentLine])\n currentLine++;\n var len = doc.getLength();\n var processedLines = 0;\n self.running = false;\n while (currentLine < len) {\n self.$tokenizeRow(currentLine);\n endLine = currentLine;\n do {\n currentLine++;\n } while (self.lines[currentLine]);\n processedLines++;\n if ((processedLines % 5 === 0) && (new Date() - workerStart) > 20) {\n self.running = setTimeout(self.$worker, 20);\n break;\n }\n }\n self.currentLine = currentLine;\n if (endLine == -1)\n endLine = currentLine;\n if (startLine <= endLine)\n self.fireUpdateEvent(startLine, endLine);\n };\n }\n BackgroundTokenizer.prototype.setTokenizer = function (tokenizer) {\n this.tokenizer = tokenizer;\n this.lines = [];\n this.states = [];\n this.start(0);\n };\n BackgroundTokenizer.prototype.setDocument = function (doc) {\n this.doc = doc;\n this.lines = [];\n this.states = [];\n this.stop();\n };\n BackgroundTokenizer.prototype.fireUpdateEvent = function (firstRow, lastRow) {\n var data = {\n first: firstRow,\n last: lastRow\n };\n this._signal(\"update\", { data: data });\n };\n BackgroundTokenizer.prototype.start = function (startRow) {\n this.currentLine = Math.min(startRow || 0, this.currentLine, this.doc.getLength());\n this.lines.splice(this.currentLine, this.lines.length);\n this.states.splice(this.currentLine, this.states.length);\n this.stop();\n this.running = setTimeout(this.$worker, 700);\n };\n BackgroundTokenizer.prototype.scheduleStart = function () {\n if (!this.running)\n this.running = setTimeout(this.$worker, 700);\n };\n BackgroundTokenizer.prototype.$updateOnChange = function (delta) {\n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n if (len === 0) {\n this.lines[startRow] = null;\n }\n else if (delta.action == \"remove\") {\n this.lines.splice(startRow, len + 1, null);\n this.states.splice(startRow, len + 1, null);\n }\n else {\n var args = Array(len + 1);\n args.unshift(startRow, 1);\n this.lines.splice.apply(this.lines, args);\n this.states.splice.apply(this.states, args);\n }\n this.currentLine = Math.min(startRow, this.currentLine, this.doc.getLength());\n this.stop();\n };\n BackgroundTokenizer.prototype.stop = function () {\n if (this.running)\n clearTimeout(this.running);\n this.running = false;\n };\n BackgroundTokenizer.prototype.getTokens = function (row) {\n return this.lines[row] || this.$tokenizeRow(row);\n };\n BackgroundTokenizer.prototype.getState = function (row) {\n if (this.currentLine == row)\n this.$tokenizeRow(row);\n return this.states[row] || \"start\";\n };\n BackgroundTokenizer.prototype.$tokenizeRow = function (row) {\n var line = this.doc.getLine(row);\n var state = this.states[row - 1];\n var data = this.tokenizer.getLineTokens(line, state, row);\n if (this.states[row] + \"\" !== data.state + \"\") {\n this.states[row] = data.state;\n this.lines[row + 1] = null;\n if (this.currentLine > row + 1)\n this.currentLine = row + 1;\n }\n else if (this.currentLine == row) {\n this.currentLine = row + 1;\n }\n return this.lines[row] = data.tokens;\n };\n BackgroundTokenizer.prototype.cleanup = function () {\n this.running = false;\n this.lines = [];\n this.states = [];\n this.currentLine = 0;\n this.removeAllListeners();\n };\n return BackgroundTokenizer;\n}());\noop.implement(BackgroundTokenizer.prototype, EventEmitter);\nexports.BackgroundTokenizer = BackgroundTokenizer;\n\n});\n\nace.define(\"ace/search_highlight\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar lang = require(\"./lib/lang\");\nvar Range = require(\"./range\").Range;\nvar SearchHighlight = /** @class */ (function () {\n function SearchHighlight(regExp, clazz, type) {\n if (type === void 0) { type = \"text\"; }\n this.setRegexp(regExp);\n this.clazz = clazz;\n this.type = type;\n }\n SearchHighlight.prototype.setRegexp = function (regExp) {\n if (this.regExp + \"\" == regExp + \"\")\n return;\n this.regExp = regExp;\n this.cache = [];\n };\n SearchHighlight.prototype.update = function (html, markerLayer, session, config) {\n if (!this.regExp)\n return;\n var start = config.firstRow, end = config.lastRow;\n var renderedMarkerRanges = {};\n for (var i = start; i <= end; i++) {\n var ranges = this.cache[i];\n if (ranges == null) {\n ranges = lang.getMatchOffsets(session.getLine(i), this.regExp);\n if (ranges.length > this.MAX_RANGES)\n ranges = ranges.slice(0, this.MAX_RANGES);\n ranges = ranges.map(function (match) {\n return new Range(i, match.offset, i, match.offset + match.length);\n });\n this.cache[i] = ranges.length ? ranges : \"\";\n }\n for (var j = ranges.length; j--;) {\n var rangeToAddMarkerTo = ranges[j].toScreenRange(session);\n var rangeAsString = rangeToAddMarkerTo.toString();\n if (renderedMarkerRanges[rangeAsString])\n continue;\n renderedMarkerRanges[rangeAsString] = true;\n markerLayer.drawSingleLineMarker(html, rangeToAddMarkerTo, this.clazz, config);\n }\n }\n };\n return SearchHighlight;\n}());\nSearchHighlight.prototype.MAX_RANGES = 500;\nexports.SearchHighlight = SearchHighlight;\n\n});\n\nace.define(\"ace/undomanager\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar UndoManager = /** @class */ (function () {\n function UndoManager() {\n this.$maxRev = 0;\n this.$fromUndo = false;\n this.$undoDepth = Infinity;\n this.reset();\n }\n UndoManager.prototype.addSession = function (session) {\n this.$session = session;\n };\n UndoManager.prototype.add = function (delta, allowMerge, session) {\n if (this.$fromUndo)\n return;\n if (delta == this.$lastDelta)\n return;\n if (!this.$keepRedoStack)\n this.$redoStack.length = 0;\n if (allowMerge === false || !this.lastDeltas) {\n this.lastDeltas = [];\n var undoStackLength = this.$undoStack.length;\n if (undoStackLength > this.$undoDepth - 1) {\n this.$undoStack.splice(0, undoStackLength - this.$undoDepth + 1);\n }\n this.$undoStack.push(this.lastDeltas);\n delta.id = this.$rev = ++this.$maxRev;\n }\n if (delta.action == \"remove\" || delta.action == \"insert\")\n this.$lastDelta = delta;\n this.lastDeltas.push(delta);\n };\n UndoManager.prototype.addSelection = function (selection, rev) {\n this.selections.push({\n value: selection,\n rev: rev || this.$rev\n });\n };\n UndoManager.prototype.startNewGroup = function () {\n this.lastDeltas = null;\n return this.$rev;\n };\n UndoManager.prototype.markIgnored = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n var stack = this.$undoStack;\n for (var i = stack.length; i--;) {\n var delta = stack[i][0];\n if (delta.id <= from)\n break;\n if (delta.id < to)\n delta.ignore = true;\n }\n this.lastDeltas = null;\n };\n UndoManager.prototype.getSelection = function (rev, after) {\n var stack = this.selections;\n for (var i = stack.length; i--;) {\n var selection = stack[i];\n if (selection.rev < rev) {\n if (after)\n selection = stack[i + 1];\n return selection;\n }\n }\n };\n UndoManager.prototype.getRevision = function () {\n return this.$rev;\n };\n UndoManager.prototype.getDeltas = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n var stack = this.$undoStack;\n var end = null, start = 0;\n for (var i = stack.length; i--;) {\n var delta = stack[i][0];\n if (delta.id < to && !end)\n end = i + 1;\n if (delta.id <= from) {\n start = i + 1;\n break;\n }\n }\n return stack.slice(start, end);\n };\n UndoManager.prototype.getChangedRanges = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n };\n UndoManager.prototype.getChangedLines = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n };\n UndoManager.prototype.undo = function (session, dontSelect) {\n this.lastDeltas = null;\n var stack = this.$undoStack;\n if (!rearrangeUndoStack(stack, stack.length))\n return;\n if (!session)\n session = this.$session;\n if (this.$redoStackBaseRev !== this.$rev && this.$redoStack.length)\n this.$redoStack = [];\n this.$fromUndo = true;\n var deltaSet = stack.pop();\n var undoSelectionRange = null;\n if (deltaSet) {\n undoSelectionRange = session.undoChanges(deltaSet, dontSelect);\n this.$redoStack.push(deltaSet);\n this.$syncRev();\n }\n this.$fromUndo = false;\n return undoSelectionRange;\n };\n UndoManager.prototype.redo = function (session, dontSelect) {\n this.lastDeltas = null;\n if (!session)\n session = this.$session;\n this.$fromUndo = true;\n if (this.$redoStackBaseRev != this.$rev) {\n var diff = this.getDeltas(this.$redoStackBaseRev, this.$rev + 1);\n rebaseRedoStack(this.$redoStack, diff);\n this.$redoStackBaseRev = this.$rev;\n this.$redoStack.forEach(function (x) {\n x[0].id = ++this.$maxRev;\n }, this);\n }\n var deltaSet = this.$redoStack.pop();\n var redoSelectionRange = null;\n if (deltaSet) {\n redoSelectionRange = session.redoChanges(deltaSet, dontSelect);\n this.$undoStack.push(deltaSet);\n this.$syncRev();\n }\n this.$fromUndo = false;\n return redoSelectionRange;\n };\n UndoManager.prototype.$syncRev = function () {\n var stack = this.$undoStack;\n var nextDelta = stack[stack.length - 1];\n var id = nextDelta && nextDelta[0].id || 0;\n this.$redoStackBaseRev = id;\n this.$rev = id;\n };\n UndoManager.prototype.reset = function () {\n this.lastDeltas = null;\n this.$lastDelta = null;\n this.$undoStack = [];\n this.$redoStack = [];\n this.$rev = 0;\n this.mark = 0;\n this.$redoStackBaseRev = this.$rev;\n this.selections = [];\n };\n UndoManager.prototype.canUndo = function () {\n return this.$undoStack.length > 0;\n };\n UndoManager.prototype.canRedo = function () {\n return this.$redoStack.length > 0;\n };\n UndoManager.prototype.bookmark = function (rev) {\n if (rev == undefined)\n rev = this.$rev;\n this.mark = rev;\n };\n UndoManager.prototype.isAtBookmark = function () {\n return this.$rev === this.mark;\n };\n UndoManager.prototype.toJSON = function () {\n return {\n $redoStack: this.$redoStack,\n $undoStack: this.$undoStack\n };\n };\n UndoManager.prototype.fromJSON = function (json) {\n this.reset();\n this.$undoStack = json.$undoStack;\n this.$redoStack = json.$redoStack;\n };\n UndoManager.prototype.$prettyPrint = function (delta) {\n if (delta)\n return stringifyDelta(delta);\n return stringifyDelta(this.$undoStack) + \"\\n---\\n\" + stringifyDelta(this.$redoStack);\n };\n return UndoManager;\n}());\nUndoManager.prototype.hasUndo = UndoManager.prototype.canUndo;\nUndoManager.prototype.hasRedo = UndoManager.prototype.canRedo;\nUndoManager.prototype.isClean = UndoManager.prototype.isAtBookmark;\nUndoManager.prototype.markClean = UndoManager.prototype.bookmark;\nfunction rearrangeUndoStack(stack, pos) {\n for (var i = pos; i--;) {\n var deltaSet = stack[i];\n if (deltaSet && !deltaSet[0].ignore) {\n while (i < pos - 1) {\n var swapped = swapGroups(stack[i], stack[i + 1]);\n stack[i] = swapped[0];\n stack[i + 1] = swapped[1];\n i++;\n }\n return true;\n }\n }\n}\nvar Range = require(\"./range\").Range;\nvar cmp = Range.comparePoints;\nvar comparePoints = Range.comparePoints;\nfunction $updateMarkers(delta) {\n var isInsert = delta.action == \"insert\";\n var start = delta.start;\n var end = delta.end;\n var rowShift = (end.row - start.row) * (isInsert ? 1 : -1);\n var colShift = (end.column - start.column) * (isInsert ? 1 : -1);\n if (isInsert)\n end = start;\n for (var i in this.marks) {\n var point = this.marks[i];\n var cmp = comparePoints(point, start);\n if (cmp < 0) {\n continue; // delta starts after the range\n }\n if (cmp === 0) {\n if (isInsert) {\n if (point.bias == 1) {\n cmp = 1;\n }\n else {\n point.bias == -1;\n continue;\n }\n }\n }\n var cmp2 = isInsert ? cmp : comparePoints(point, end);\n if (cmp2 > 0) {\n point.row += rowShift;\n point.column += point.row == end.row ? colShift : 0;\n continue;\n }\n if (!isInsert && cmp2 <= 0) {\n point.row = start.row;\n point.column = start.column;\n if (cmp2 === 0)\n point.bias = 1;\n }\n }\n}\nfunction clonePos(pos) {\n return { row: pos.row, column: pos.column };\n}\nfunction cloneDelta(d) {\n return {\n start: clonePos(d.start),\n end: clonePos(d.end),\n action: d.action,\n lines: d.lines.slice()\n };\n}\nfunction stringifyDelta(d) {\n d = d || this;\n if (Array.isArray(d)) {\n return d.map(stringifyDelta).join(\"\\n\");\n }\n var type = \"\";\n if (d.action) {\n type = d.action == \"insert\" ? \"+\" : \"-\";\n type += \"[\" + d.lines + \"]\";\n }\n else if (d.value) {\n if (Array.isArray(d.value)) {\n type = d.value.map(stringifyRange).join(\"\\n\");\n }\n else {\n type = stringifyRange(d.value);\n }\n }\n if (d.start) {\n type += stringifyRange(d);\n }\n if (d.id || d.rev) {\n type += \"\\t(\" + (d.id || d.rev) + \")\";\n }\n return type;\n}\nfunction stringifyRange(r) {\n return r.start.row + \":\" + r.start.column\n + \"=>\" + r.end.row + \":\" + r.end.column;\n}\nfunction swap(d1, d2) {\n var i1 = d1.action == \"insert\";\n var i2 = d2.action == \"insert\";\n if (i1 && i2) {\n if (cmp(d2.start, d1.end) >= 0) {\n shift(d2, d1, -1);\n }\n else if (cmp(d2.start, d1.start) <= 0) {\n shift(d1, d2, +1);\n }\n else {\n return null;\n }\n }\n else if (i1 && !i2) {\n if (cmp(d2.start, d1.end) >= 0) {\n shift(d2, d1, -1);\n }\n else if (cmp(d2.end, d1.start) <= 0) {\n shift(d1, d2, -1);\n }\n else {\n return null;\n }\n }\n else if (!i1 && i2) {\n if (cmp(d2.start, d1.start) >= 0) {\n shift(d2, d1, +1);\n }\n else if (cmp(d2.start, d1.start) <= 0) {\n shift(d1, d2, +1);\n }\n else {\n return null;\n }\n }\n else if (!i1 && !i2) {\n if (cmp(d2.start, d1.start) >= 0) {\n shift(d2, d1, +1);\n }\n else if (cmp(d2.end, d1.start) <= 0) {\n shift(d1, d2, -1);\n }\n else {\n return null;\n }\n }\n return [d2, d1];\n}\nfunction swapGroups(ds1, ds2) {\n for (var i = ds1.length; i--;) {\n for (var j = 0; j < ds2.length; j++) {\n if (!swap(ds1[i], ds2[j])) {\n while (i < ds1.length) {\n while (j--) {\n swap(ds2[j], ds1[i]);\n }\n j = ds2.length;\n i++;\n }\n return [ds1, ds2];\n }\n }\n }\n ds1.selectionBefore = ds2.selectionBefore =\n ds1.selectionAfter = ds2.selectionAfter = null;\n return [ds2, ds1];\n}\nfunction xform(d1, c1) {\n var i1 = d1.action == \"insert\";\n var i2 = c1.action == \"insert\";\n if (i1 && i2) {\n if (cmp(d1.start, c1.start) < 0) {\n shift(c1, d1, 1);\n }\n else {\n shift(d1, c1, 1);\n }\n }\n else if (i1 && !i2) {\n if (cmp(d1.start, c1.end) >= 0) {\n shift(d1, c1, -1);\n }\n else if (cmp(d1.start, c1.start) <= 0) {\n shift(c1, d1, +1);\n }\n else {\n shift(d1, Range.fromPoints(c1.start, d1.start), -1);\n shift(c1, d1, +1);\n }\n }\n else if (!i1 && i2) {\n if (cmp(c1.start, d1.end) >= 0) {\n shift(c1, d1, -1);\n }\n else if (cmp(c1.start, d1.start) <= 0) {\n shift(d1, c1, +1);\n }\n else {\n shift(c1, Range.fromPoints(d1.start, c1.start), -1);\n shift(d1, c1, +1);\n }\n }\n else if (!i1 && !i2) {\n if (cmp(c1.start, d1.end) >= 0) {\n shift(c1, d1, -1);\n }\n else if (cmp(c1.end, d1.start) <= 0) {\n shift(d1, c1, -1);\n }\n else {\n var before, after;\n if (cmp(d1.start, c1.start) < 0) {\n before = d1;\n d1 = splitDelta(d1, c1.start);\n }\n if (cmp(d1.end, c1.end) > 0) {\n after = splitDelta(d1, c1.end);\n }\n shiftPos(c1.end, d1.start, d1.end, -1);\n if (after && !before) {\n d1.lines = after.lines;\n d1.start = after.start;\n d1.end = after.end;\n after = d1;\n }\n return [c1, before, after].filter(Boolean);\n }\n }\n return [c1, d1];\n}\nfunction shift(d1, d2, dir) {\n shiftPos(d1.start, d2.start, d2.end, dir);\n shiftPos(d1.end, d2.start, d2.end, dir);\n}\nfunction shiftPos(pos, start, end, dir) {\n if (pos.row == (dir == 1 ? start : end).row) {\n pos.column += dir * (end.column - start.column);\n }\n pos.row += dir * (end.row - start.row);\n}\nfunction splitDelta(c, pos) {\n var lines = c.lines;\n var end = c.end;\n c.end = clonePos(pos);\n var rowsBefore = c.end.row - c.start.row;\n var otherLines = lines.splice(rowsBefore, lines.length);\n var col = rowsBefore ? pos.column : pos.column - c.start.column;\n lines.push(otherLines[0].substring(0, col));\n otherLines[0] = otherLines[0].substr(col);\n var rest = {\n start: clonePos(pos),\n end: end,\n lines: otherLines,\n action: c.action\n };\n return rest;\n}\nfunction moveDeltasByOne(redoStack, d) {\n d = cloneDelta(d);\n for (var j = redoStack.length; j--;) {\n var deltaSet = redoStack[j];\n for (var i = 0; i < deltaSet.length; i++) {\n var x = deltaSet[i];\n var xformed = xform(x, d);\n d = xformed[0];\n if (xformed.length != 2) {\n if (xformed[2]) {\n deltaSet.splice(i + 1, 1, xformed[1], xformed[2]);\n i++;\n }\n else if (!xformed[1]) {\n deltaSet.splice(i, 1);\n i--;\n }\n }\n }\n if (!deltaSet.length) {\n redoStack.splice(j, 1);\n }\n }\n return redoStack;\n}\nfunction rebaseRedoStack(redoStack, deltaSets) {\n for (var i = 0; i < deltaSets.length; i++) {\n var deltas = deltaSets[i];\n for (var j = 0; j < deltas.length; j++) {\n moveDeltasByOne(redoStack, deltas[j]);\n }\n }\n}\nexports.UndoManager = UndoManager;\n\n});\n\nace.define(\"ace/edit_session/fold_line\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar FoldLine = /** @class */ (function () {\n function FoldLine(foldData, folds) {\n this.foldData = foldData;\n if (Array.isArray(folds)) {\n this.folds = folds;\n }\n else {\n folds = this.folds = [folds];\n }\n var last = folds[folds.length - 1];\n this.range = new Range(folds[0].start.row, folds[0].start.column, last.end.row, last.end.column);\n this.start = this.range.start;\n this.end = this.range.end;\n this.folds.forEach(function (fold) {\n fold.setFoldLine(this);\n }, this);\n }\n FoldLine.prototype.shiftRow = function (shift) {\n this.start.row += shift;\n this.end.row += shift;\n this.folds.forEach(function (fold) {\n fold.start.row += shift;\n fold.end.row += shift;\n });\n };\n FoldLine.prototype.addFold = function (fold) {\n if (fold.sameRow) {\n if (fold.start.row < this.startRow || fold.endRow > this.endRow) {\n throw new Error(\"Can't add a fold to this FoldLine as it has no connection\");\n }\n this.folds.push(fold);\n this.folds.sort(function (a, b) {\n return -a.range.compareEnd(b.start.row, b.start.column);\n });\n if (this.range.compareEnd(fold.start.row, fold.start.column) > 0) {\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n }\n else if (this.range.compareStart(fold.end.row, fold.end.column) < 0) {\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n }\n }\n else if (fold.start.row == this.end.row) {\n this.folds.push(fold);\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n }\n else if (fold.end.row == this.start.row) {\n this.folds.unshift(fold);\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n }\n else {\n throw new Error(\"Trying to add fold to FoldRow that doesn't have a matching row\");\n }\n fold.foldLine = this;\n };\n FoldLine.prototype.containsRow = function (row) {\n return row >= this.start.row && row <= this.end.row;\n };\n FoldLine.prototype.walk = function (callback, endRow, endColumn) {\n var lastEnd = 0, folds = this.folds, fold, cmp, stop, isNewRow = true;\n if (endRow == null) {\n endRow = this.end.row;\n endColumn = this.end.column;\n }\n for (var i = 0; i < folds.length; i++) {\n fold = folds[i];\n cmp = fold.range.compareStart(endRow, endColumn);\n if (cmp == -1) {\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n return;\n }\n stop = callback(null, fold.start.row, fold.start.column, lastEnd, isNewRow);\n stop = !stop && callback(fold.placeholder, fold.start.row, fold.start.column, lastEnd);\n if (stop || cmp === 0) {\n return;\n }\n isNewRow = !fold.sameRow;\n lastEnd = fold.end.column;\n }\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n };\n FoldLine.prototype.getNextFoldTo = function (row, column) {\n var fold, cmp;\n for (var i = 0; i < this.folds.length; i++) {\n fold = this.folds[i];\n cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n return {\n fold: fold,\n kind: \"after\"\n };\n }\n else if (cmp === 0) {\n return {\n fold: fold,\n kind: \"inside\"\n };\n }\n }\n return null;\n };\n FoldLine.prototype.addRemoveChars = function (row, column, len) {\n var ret = this.getNextFoldTo(row, column), fold, folds;\n if (ret) {\n fold = ret.fold;\n if (ret.kind == \"inside\"\n && fold.start.column != column\n && fold.start.row != row) {\n window.console && window.console.log(row, column, fold);\n }\n else if (fold.start.row == row) {\n folds = this.folds;\n var i = folds.indexOf(fold);\n if (i === 0) {\n this.start.column += len;\n }\n for (i; i < folds.length; i++) {\n fold = folds[i];\n fold.start.column += len;\n if (!fold.sameRow) {\n return;\n }\n fold.end.column += len;\n }\n this.end.column += len;\n }\n }\n };\n FoldLine.prototype.split = function (row, column) {\n var pos = this.getNextFoldTo(row, column);\n if (!pos || pos.kind == \"inside\")\n return null;\n var fold = pos.fold;\n var folds = this.folds;\n var foldData = this.foldData;\n var i = folds.indexOf(fold);\n var foldBefore = folds[i - 1];\n this.end.row = foldBefore.end.row;\n this.end.column = foldBefore.end.column;\n folds = folds.splice(i, folds.length - i);\n var newFoldLine = new FoldLine(foldData, folds);\n foldData.splice(foldData.indexOf(this) + 1, 0, newFoldLine);\n return newFoldLine;\n };\n FoldLine.prototype.merge = function (foldLineNext) {\n var folds = foldLineNext.folds;\n for (var i = 0; i < folds.length; i++) {\n this.addFold(folds[i]);\n }\n var foldData = this.foldData;\n foldData.splice(foldData.indexOf(foldLineNext), 1);\n };\n FoldLine.prototype.toString = function () {\n var ret = [this.range.toString() + \": [\"];\n this.folds.forEach(function (fold) {\n ret.push(\" \" + fold.toString());\n });\n ret.push(\"]\");\n return ret.join(\"\\n\");\n };\n FoldLine.prototype.idxToPosition = function (idx) {\n var lastFoldEndColumn = 0;\n for (var i = 0; i < this.folds.length; i++) {\n var fold = this.folds[i];\n idx -= fold.start.column - lastFoldEndColumn;\n if (idx < 0) {\n return {\n row: fold.start.row,\n column: fold.start.column + idx\n };\n }\n idx -= fold.placeholder.length;\n if (idx < 0) {\n return fold.start;\n }\n lastFoldEndColumn = fold.end.column;\n }\n return {\n row: this.end.row,\n column: this.end.column + idx\n };\n };\n return FoldLine;\n}());\nexports.FoldLine = FoldLine;\n\n});\n\nace.define(\"ace/range_list\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"./range\").Range;\nvar comparePoints = Range.comparePoints;\nvar RangeList = /** @class */ (function () {\n function RangeList() {\n this.ranges = [];\n this.$bias = 1;\n }\n RangeList.prototype.pointIndex = function (pos, excludeEdges, startIndex) {\n var list = this.ranges;\n for (var i = startIndex || 0; i < list.length; i++) {\n var range = list[i];\n var cmpEnd = comparePoints(pos, range.end);\n if (cmpEnd > 0)\n continue;\n var cmpStart = comparePoints(pos, range.start);\n if (cmpEnd === 0)\n return excludeEdges && cmpStart !== 0 ? -i - 2 : i;\n if (cmpStart > 0 || (cmpStart === 0 && !excludeEdges))\n return i;\n return -i - 1;\n }\n return -i - 1;\n };\n RangeList.prototype.add = function (range) {\n var excludeEdges = !range.isEmpty();\n var startIndex = this.pointIndex(range.start, excludeEdges);\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n var endIndex = this.pointIndex(range.end, excludeEdges, startIndex);\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n else\n endIndex++;\n return this.ranges.splice(startIndex, endIndex - startIndex, range);\n };\n RangeList.prototype.addList = function (list) {\n var removed = [];\n for (var i = list.length; i--;) {\n removed.push.apply(removed, this.add(list[i]));\n }\n return removed;\n };\n RangeList.prototype.substractPoint = function (pos) {\n var i = this.pointIndex(pos);\n if (i >= 0)\n return this.ranges.splice(i, 1);\n };\n RangeList.prototype.merge = function () {\n var removed = [];\n var list = this.ranges;\n list = list.sort(function (a, b) {\n return comparePoints(a.start, b.start);\n });\n var next = list[0], range;\n for (var i = 1; i < list.length; i++) {\n range = next;\n next = list[i];\n var cmp = comparePoints(range.end, next.start);\n if (cmp < 0)\n continue;\n if (cmp == 0 && !range.isEmpty() && !next.isEmpty())\n continue;\n if (comparePoints(range.end, next.end) < 0) {\n range.end.row = next.end.row;\n range.end.column = next.end.column;\n }\n list.splice(i, 1);\n removed.push(next);\n next = range;\n i--;\n }\n this.ranges = list;\n return removed;\n };\n RangeList.prototype.contains = function (row, column) {\n return this.pointIndex({ row: row, column: column }) >= 0;\n };\n RangeList.prototype.containsPoint = function (pos) {\n return this.pointIndex(pos) >= 0;\n };\n RangeList.prototype.rangeAtPoint = function (pos) {\n var i = this.pointIndex(pos);\n if (i >= 0)\n return this.ranges[i];\n };\n RangeList.prototype.clipRows = function (startRow, endRow) {\n var list = this.ranges;\n if (list[0].start.row > endRow || list[list.length - 1].start.row < startRow)\n return [];\n var startIndex = this.pointIndex({ row: startRow, column: 0 });\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n var endIndex = this.pointIndex({ row: endRow, column: 0 }, startIndex);\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n var clipped = [];\n for (var i = startIndex; i < endIndex; i++) {\n clipped.push(list[i]);\n }\n return clipped;\n };\n RangeList.prototype.removeAll = function () {\n return this.ranges.splice(0, this.ranges.length);\n };\n RangeList.prototype.attach = function (session) {\n if (this.session)\n this.detach();\n this.session = session;\n this.onChange = this.$onChange.bind(this);\n this.session.on('change', this.onChange);\n };\n RangeList.prototype.detach = function () {\n if (!this.session)\n return;\n this.session.removeListener('change', this.onChange);\n this.session = null;\n };\n RangeList.prototype.$onChange = function (delta) {\n var start = delta.start;\n var end = delta.end;\n var startRow = start.row;\n var endRow = end.row;\n var ranges = this.ranges;\n for (var i = 0, n = ranges.length; i < n; i++) {\n var r = ranges[i];\n if (r.end.row >= startRow)\n break;\n }\n if (delta.action == \"insert\") {\n var lineDif = endRow - startRow;\n var colDiff = -start.column + end.column;\n for (; i < n; i++) {\n var r = ranges[i];\n if (r.start.row > startRow)\n break;\n if (r.start.row == startRow && r.start.column >= start.column) {\n if (r.start.column == start.column && this.$bias <= 0) {\n }\n else {\n r.start.column += colDiff;\n r.start.row += lineDif;\n }\n }\n if (r.end.row == startRow && r.end.column >= start.column) {\n if (r.end.column == start.column && this.$bias < 0) {\n continue;\n }\n if (r.end.column == start.column && colDiff > 0 && i < n - 1) {\n if (r.end.column > r.start.column && r.end.column == ranges[i + 1].start.column)\n r.end.column -= colDiff;\n }\n r.end.column += colDiff;\n r.end.row += lineDif;\n }\n }\n }\n else {\n var lineDif = startRow - endRow;\n var colDiff = start.column - end.column;\n for (; i < n; i++) {\n var r = ranges[i];\n if (r.start.row > endRow)\n break;\n if (r.end.row < endRow\n && (startRow < r.end.row\n || startRow == r.end.row && start.column < r.end.column)) {\n r.end.row = startRow;\n r.end.column = start.column;\n }\n else if (r.end.row == endRow) {\n if (r.end.column <= end.column) {\n if (lineDif || r.end.column > start.column) {\n r.end.column = start.column;\n r.end.row = start.row;\n }\n }\n else {\n r.end.column += colDiff;\n r.end.row += lineDif;\n }\n }\n else if (r.end.row > endRow) {\n r.end.row += lineDif;\n }\n if (r.start.row < endRow\n && (startRow < r.start.row\n || startRow == r.start.row && start.column < r.start.column)) {\n r.start.row = startRow;\n r.start.column = start.column;\n }\n else if (r.start.row == endRow) {\n if (r.start.column <= end.column) {\n if (lineDif || r.start.column > start.column) {\n r.start.column = start.column;\n r.start.row = start.row;\n }\n }\n else {\n r.start.column += colDiff;\n r.start.row += lineDif;\n }\n }\n else if (r.start.row > endRow) {\n r.start.row += lineDif;\n }\n }\n }\n if (lineDif != 0 && i < n) {\n for (; i < n; i++) {\n var r = ranges[i];\n r.start.row += lineDif;\n r.end.row += lineDif;\n }\n }\n };\n return RangeList;\n}());\nRangeList.prototype.comparePoints = comparePoints;\nexports.RangeList = RangeList;\n\n});\n\nace.define(\"ace/edit_session/fold\",[\"require\",\"exports\",\"module\",\"ace/range_list\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar RangeList = require(\"../range_list\").RangeList;\nvar Fold = /** @class */ (function (_super) {\n __extends(Fold, _super);\n function Fold(range, placeholder) {\n var _this = _super.call(this) || this;\n _this.foldLine = null;\n _this.placeholder = placeholder;\n _this.range = range;\n _this.start = range.start;\n _this.end = range.end;\n _this.sameRow = range.start.row == range.end.row;\n _this.subFolds = _this.ranges = [];\n return _this;\n }\n Fold.prototype.toString = function () {\n return '\"' + this.placeholder + '\" ' + this.range.toString();\n };\n Fold.prototype.setFoldLine = function (foldLine) {\n this.foldLine = foldLine;\n this.subFolds.forEach(function (fold) {\n fold.setFoldLine(foldLine);\n });\n };\n Fold.prototype.clone = function () {\n var range = this.range.clone();\n var fold = new Fold(range, this.placeholder);\n this.subFolds.forEach(function (subFold) {\n fold.subFolds.push(subFold.clone());\n });\n fold.collapseChildren = this.collapseChildren;\n return fold;\n };\n Fold.prototype.addSubFold = function (fold) {\n if (this.range.isEqual(fold))\n return;\n consumeRange(fold, this.start);\n var row = fold.start.row, column = fold.start.column;\n for (var i = 0, cmp = -1; i < this.subFolds.length; i++) {\n cmp = this.subFolds[i].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n var afterStart = this.subFolds[i];\n var firstConsumed = 0;\n if (cmp == 0) {\n if (afterStart.range.containsRange(fold))\n return afterStart.addSubFold(fold);\n else\n firstConsumed = 1;\n }\n var row = fold.range.end.row, column = fold.range.end.column;\n for (var j = i, cmp = -1; j < this.subFolds.length; j++) {\n cmp = this.subFolds[j].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n if (cmp == 0)\n j++;\n var consumedFolds = this.subFolds.splice(i, j - i, fold);\n var last = cmp == 0 ? consumedFolds.length - 1 : consumedFolds.length;\n for (var k = firstConsumed; k < last; k++) {\n fold.addSubFold(consumedFolds[k]);\n }\n fold.setFoldLine(this.foldLine);\n return fold;\n };\n Fold.prototype.restoreRange = function (range) {\n return restoreRange(range, this.start);\n };\n return Fold;\n}(RangeList));\nfunction consumePoint(point, anchor) {\n point.row -= anchor.row;\n if (point.row == 0)\n point.column -= anchor.column;\n}\nfunction consumeRange(range, anchor) {\n consumePoint(range.start, anchor);\n consumePoint(range.end, anchor);\n}\nfunction restorePoint(point, anchor) {\n if (point.row == 0)\n point.column += anchor.column;\n point.row += anchor.row;\n}\nfunction restoreRange(range, anchor) {\n restorePoint(range.start, anchor);\n restorePoint(range.end, anchor);\n}\nexports.Fold = Fold;\n\n});\n\nace.define(\"ace/edit_session/folding\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/edit_session/fold_line\",\"ace/edit_session/fold\",\"ace/token_iterator\",\"ace/mouse/mouse_event\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar FoldLine = require(\"./fold_line\").FoldLine;\nvar Fold = require(\"./fold\").Fold;\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nvar MouseEvent = require(\"../mouse/mouse_event\").MouseEvent;\nfunction Folding() {\n this.getFoldAt = function (row, column, side) {\n var foldLine = this.getFoldLine(row);\n if (!foldLine)\n return null;\n var folds = foldLine.folds;\n for (var i = 0; i < folds.length; i++) {\n var range = folds[i].range;\n if (range.contains(row, column)) {\n if (side == 1 && range.isEnd(row, column) && !range.isEmpty()) {\n continue;\n }\n else if (side == -1 && range.isStart(row, column) && !range.isEmpty()) {\n continue;\n }\n return folds[i];\n }\n }\n };\n this.getFoldsInRange = function (range) {\n var start = range.start;\n var end = range.end;\n var foldLines = this.$foldData;\n var foundFolds = [];\n start.column += 1;\n end.column -= 1;\n for (var i = 0; i < foldLines.length; i++) {\n var cmp = foldLines[i].range.compareRange(range);\n if (cmp == 2) {\n continue;\n }\n else if (cmp == -2) {\n break;\n }\n var folds = foldLines[i].folds;\n for (var j = 0; j < folds.length; j++) {\n var fold = folds[j];\n cmp = fold.range.compareRange(range);\n if (cmp == -2) {\n break;\n }\n else if (cmp == 2) {\n continue;\n }\n else \n if (cmp == 42) {\n break;\n }\n foundFolds.push(fold);\n }\n }\n start.column -= 1;\n end.column += 1;\n return foundFolds;\n };\n this.getFoldsInRangeList = function (ranges) {\n if (Array.isArray(ranges)) {\n var folds = [];\n ranges.forEach(function (range) {\n folds = folds.concat(this.getFoldsInRange(range));\n }, this);\n }\n else {\n var folds = this.getFoldsInRange(ranges);\n }\n return folds;\n };\n this.getAllFolds = function () {\n var folds = [];\n var foldLines = this.$foldData;\n for (var i = 0; i < foldLines.length; i++)\n for (var j = 0; j < foldLines[i].folds.length; j++)\n folds.push(foldLines[i].folds[j]);\n return folds;\n };\n this.getFoldStringAt = function (row, column, trim, foldLine) {\n foldLine = foldLine || this.getFoldLine(row);\n if (!foldLine)\n return null;\n var lastFold = {\n end: { column: 0 }\n };\n var str, fold;\n for (var i = 0; i < foldLine.folds.length; i++) {\n fold = foldLine.folds[i];\n var cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n str = this\n .getLine(fold.start.row)\n .substring(lastFold.end.column, fold.start.column);\n break;\n }\n else if (cmp === 0) {\n return null;\n }\n lastFold = fold;\n }\n if (!str)\n str = this.getLine(fold.start.row).substring(lastFold.end.column);\n if (trim == -1)\n return str.substring(0, column - lastFold.end.column);\n else if (trim == 1)\n return str.substring(column - lastFold.end.column);\n else\n return str;\n };\n this.getFoldLine = function (docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.start.row <= docRow && foldLine.end.row >= docRow) {\n return foldLine;\n }\n else if (foldLine.end.row > docRow) {\n return null;\n }\n }\n return null;\n };\n this.getNextFoldLine = function (docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.end.row >= docRow) {\n return foldLine;\n }\n }\n return null;\n };\n this.getFoldedRowCount = function (first, last) {\n var foldData = this.$foldData, rowCount = last - first + 1;\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i], end = foldLine.end.row, start = foldLine.start.row;\n if (end >= last) {\n if (start < last) {\n if (start >= first)\n rowCount -= last - start;\n else\n rowCount = 0; // in one fold\n }\n break;\n }\n else if (end >= first) {\n if (start >= first) // fold inside range\n rowCount -= end - start;\n else\n rowCount -= end - first + 1;\n }\n }\n return rowCount;\n };\n this.$addFoldLine = function (foldLine) {\n this.$foldData.push(foldLine);\n this.$foldData.sort(function (a, b) {\n return a.start.row - b.start.row;\n });\n return foldLine;\n };\n this.addFold = function (placeholder, range) {\n var foldData = this.$foldData;\n var added = false;\n var fold;\n if (placeholder instanceof Fold)\n fold = placeholder;\n else {\n fold = new Fold(range, placeholder);\n fold.collapseChildren = range.collapseChildren;\n }\n this.$clipRangeToDocument(fold.range);\n var startRow = fold.start.row;\n var startColumn = fold.start.column;\n var endRow = fold.end.row;\n var endColumn = fold.end.column;\n var startFold = this.getFoldAt(startRow, startColumn, 1);\n var endFold = this.getFoldAt(endRow, endColumn, -1);\n if (startFold && endFold == startFold)\n return startFold.addSubFold(fold);\n if (startFold && !startFold.range.isStart(startRow, startColumn))\n this.removeFold(startFold);\n if (endFold && !endFold.range.isEnd(endRow, endColumn))\n this.removeFold(endFold);\n var folds = this.getFoldsInRange(fold.range);\n if (folds.length > 0) {\n this.removeFolds(folds);\n if (!fold.collapseChildren) {\n folds.forEach(function (subFold) {\n fold.addSubFold(subFold);\n });\n }\n }\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (endRow == foldLine.start.row) {\n foldLine.addFold(fold);\n added = true;\n break;\n }\n else if (startRow == foldLine.end.row) {\n foldLine.addFold(fold);\n added = true;\n if (!fold.sameRow) {\n var foldLineNext = foldData[i + 1];\n if (foldLineNext && foldLineNext.start.row == endRow) {\n foldLine.merge(foldLineNext);\n break;\n }\n }\n break;\n }\n else if (endRow <= foldLine.start.row) {\n break;\n }\n }\n if (!added)\n foldLine = this.$addFoldLine(new FoldLine(this.$foldData, fold));\n if (this.$useWrapMode)\n this.$updateWrapData(foldLine.start.row, foldLine.start.row);\n else\n this.$updateRowLengthCache(foldLine.start.row, foldLine.start.row);\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"add\" });\n return fold;\n };\n this.addFolds = function (folds) {\n folds.forEach(function (fold) {\n this.addFold(fold);\n }, this);\n };\n this.removeFold = function (fold) {\n var foldLine = fold.foldLine;\n var startRow = foldLine.start.row;\n var endRow = foldLine.end.row;\n var foldLines = this.$foldData;\n var folds = foldLine.folds;\n if (folds.length == 1) {\n foldLines.splice(foldLines.indexOf(foldLine), 1);\n }\n else \n if (foldLine.range.isEnd(fold.end.row, fold.end.column)) {\n folds.pop();\n foldLine.end.row = folds[folds.length - 1].end.row;\n foldLine.end.column = folds[folds.length - 1].end.column;\n }\n else \n if (foldLine.range.isStart(fold.start.row, fold.start.column)) {\n folds.shift();\n foldLine.start.row = folds[0].start.row;\n foldLine.start.column = folds[0].start.column;\n }\n else \n if (fold.sameRow) {\n folds.splice(folds.indexOf(fold), 1);\n }\n else \n {\n var newFoldLine = foldLine.split(fold.start.row, fold.start.column);\n folds = newFoldLine.folds;\n folds.shift();\n newFoldLine.start.row = folds[0].start.row;\n newFoldLine.start.column = folds[0].start.column;\n }\n if (!this.$updating) {\n if (this.$useWrapMode)\n this.$updateWrapData(startRow, endRow);\n else\n this.$updateRowLengthCache(startRow, endRow);\n }\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"remove\" });\n };\n this.removeFolds = function (folds) {\n var cloneFolds = [];\n for (var i = 0; i < folds.length; i++) {\n cloneFolds.push(folds[i]);\n }\n cloneFolds.forEach(function (fold) {\n this.removeFold(fold);\n }, this);\n this.$modified = true;\n };\n this.expandFold = function (fold) {\n this.removeFold(fold);\n fold.subFolds.forEach(function (subFold) {\n fold.restoreRange(subFold);\n this.addFold(subFold);\n }, this);\n if (fold.collapseChildren > 0) {\n this.foldAll(fold.start.row + 1, fold.end.row, fold.collapseChildren - 1);\n }\n fold.subFolds = [];\n };\n this.expandFolds = function (folds) {\n folds.forEach(function (fold) {\n this.expandFold(fold);\n }, this);\n };\n this.unfold = function (location, expandInner) {\n var range, folds;\n if (location == null) {\n range = new Range(0, 0, this.getLength(), 0);\n if (expandInner == null)\n expandInner = true;\n }\n else if (typeof location == \"number\") {\n range = new Range(location, 0, location, this.getLine(location).length);\n }\n else if (\"row\" in location) {\n range = Range.fromPoints(location, location);\n }\n else if (Array.isArray(location)) {\n folds = [];\n location.forEach(function (range) {\n folds = folds.concat(this.unfold(range));\n }, this);\n return folds;\n }\n else {\n range = location;\n }\n folds = this.getFoldsInRangeList(range);\n var outermostFolds = folds;\n while (folds.length == 1\n && Range.comparePoints(folds[0].start, range.start) < 0\n && Range.comparePoints(folds[0].end, range.end) > 0) {\n this.expandFolds(folds);\n folds = this.getFoldsInRangeList(range);\n }\n if (expandInner != false) {\n this.removeFolds(folds);\n }\n else {\n this.expandFolds(folds);\n }\n if (outermostFolds.length)\n return outermostFolds;\n };\n this.isRowFolded = function (docRow, startFoldRow) {\n return !!this.getFoldLine(docRow, startFoldRow);\n };\n this.getRowFoldEnd = function (docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.end.row : docRow;\n };\n this.getRowFoldStart = function (docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.start.row : docRow;\n };\n this.getFoldDisplayLine = function (foldLine, endRow, endColumn, startRow, startColumn) {\n if (startRow == null)\n startRow = foldLine.start.row;\n if (startColumn == null)\n startColumn = 0;\n if (endRow == null)\n endRow = foldLine.end.row;\n if (endColumn == null)\n endColumn = this.getLine(endRow).length;\n var doc = this.doc;\n var textLine = \"\";\n foldLine.walk(function (placeholder, row, column, lastColumn) {\n if (row < startRow)\n return;\n if (row == startRow) {\n if (column < startColumn)\n return;\n lastColumn = Math.max(startColumn, lastColumn);\n }\n if (placeholder != null) {\n textLine += placeholder;\n }\n else {\n textLine += doc.getLine(row).substring(lastColumn, column);\n }\n }, endRow, endColumn);\n return textLine;\n };\n this.getDisplayLine = function (row, endColumn, startRow, startColumn) {\n var foldLine = this.getFoldLine(row);\n if (!foldLine) {\n var line;\n line = this.doc.getLine(row);\n return line.substring(startColumn || 0, endColumn || line.length);\n }\n else {\n return this.getFoldDisplayLine(foldLine, row, endColumn, startRow, startColumn);\n }\n };\n this.$cloneFoldData = function () {\n var fd = [];\n fd = this.$foldData.map(function (foldLine) {\n var folds = foldLine.folds.map(function (fold) {\n return fold.clone();\n });\n return new FoldLine(fd, folds);\n });\n return fd;\n };\n this.toggleFold = function (tryToUnfold) {\n var selection = this.selection;\n var range = selection.getRange();\n var fold;\n var bracketPos;\n if (range.isEmpty()) {\n var cursor = range.start;\n fold = this.getFoldAt(cursor.row, cursor.column);\n if (fold) {\n this.expandFold(fold);\n return;\n }\n else if (bracketPos = this.findMatchingBracket(cursor)) {\n if (range.comparePoint(bracketPos) == 1) {\n range.end = bracketPos;\n }\n else {\n range.start = bracketPos;\n range.start.column++;\n range.end.column--;\n }\n }\n else if (bracketPos = this.findMatchingBracket({ row: cursor.row, column: cursor.column + 1 })) {\n if (range.comparePoint(bracketPos) == 1)\n range.end = bracketPos;\n else\n range.start = bracketPos;\n range.start.column++;\n }\n else {\n range = this.getCommentFoldRange(cursor.row, cursor.column) || range;\n }\n }\n else {\n var folds = this.getFoldsInRange(range);\n if (tryToUnfold && folds.length) {\n this.expandFolds(folds);\n return;\n }\n else if (folds.length == 1) {\n fold = folds[0];\n }\n }\n if (!fold)\n fold = this.getFoldAt(range.start.row, range.start.column);\n if (fold && fold.range.toString() == range.toString()) {\n this.expandFold(fold);\n return;\n }\n var placeholder = \"...\";\n if (!range.isMultiLine()) {\n placeholder = this.getTextRange(range);\n if (placeholder.length < 4)\n return;\n placeholder = placeholder.trim().substring(0, 2) + \"..\";\n }\n this.addFold(placeholder, range);\n };\n this.getCommentFoldRange = function (row, column, dir) {\n var iterator = new TokenIterator(this, row, column);\n var token = iterator.getCurrentToken();\n var type = token && token.type;\n if (token && /^comment|string/.test(type)) {\n type = type.match(/comment|string/)[0];\n if (type == \"comment\")\n type += \"|doc-start|\\\\.doc\";\n var re = new RegExp(type);\n var range = new Range();\n if (dir != 1) {\n do {\n token = iterator.stepBackward();\n } while (token && re.test(token.type) && !/^comment.end/.test(token.type));\n token = iterator.stepForward();\n }\n range.start.row = iterator.getCurrentTokenRow();\n range.start.column = iterator.getCurrentTokenColumn() + (/^comment.start/.test(token.type) ? token.value.length : 2);\n iterator = new TokenIterator(this, row, column);\n if (dir != -1) {\n var lastRow = -1;\n do {\n token = iterator.stepForward();\n if (lastRow == -1) {\n var state = this.getState(iterator.$row);\n if (!re.test(state))\n lastRow = iterator.$row;\n }\n else if (iterator.$row > lastRow) {\n break;\n }\n } while (token && re.test(token.type) && !/^comment.start/.test(token.type));\n token = iterator.stepBackward();\n }\n else\n token = iterator.getCurrentToken();\n range.end.row = iterator.getCurrentTokenRow();\n range.end.column = iterator.getCurrentTokenColumn();\n if (!/^comment.end/.test(token.type)) {\n range.end.column += token.value.length - 2;\n }\n return range;\n }\n };\n this.foldAll = function (startRow, endRow, depth, test) {\n if (depth == undefined)\n depth = 100000; // JSON.stringify doesn't hanle Infinity\n var foldWidgets = this.foldWidgets;\n if (!foldWidgets)\n return; // mode doesn't support folding\n endRow = endRow || this.getLength();\n startRow = startRow || 0;\n for (var row = startRow; row < endRow; row++) {\n if (foldWidgets[row] == null)\n foldWidgets[row] = this.getFoldWidget(row);\n if (foldWidgets[row] != \"start\")\n continue;\n if (test && !test(row))\n continue;\n var range = this.getFoldWidgetRange(row);\n if (range && range.isMultiLine()\n && range.end.row <= endRow\n && range.start.row >= startRow) {\n row = range.end.row;\n range.collapseChildren = depth;\n this.addFold(\"...\", range);\n }\n }\n };\n this.foldToLevel = function (level) {\n this.foldAll();\n while (level-- > 0)\n this.unfold(null, false);\n };\n this.foldAllComments = function () {\n var session = this;\n this.foldAll(null, null, null, function (row) {\n var tokens = session.getTokens(row);\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (token.type == \"text\" && /^\\s+$/.test(token.value))\n continue;\n if (/comment/.test(token.type))\n return true;\n return false;\n }\n });\n };\n this.$foldStyles = {\n \"manual\": 1,\n \"markbegin\": 1,\n \"markbeginend\": 1\n };\n this.$foldStyle = \"markbegin\";\n this.setFoldStyle = function (style) {\n if (!this.$foldStyles[style])\n throw new Error(\"invalid fold style: \" + style + \"[\" + Object.keys(this.$foldStyles).join(\", \") + \"]\");\n if (this.$foldStyle == style)\n return;\n this.$foldStyle = style;\n if (style == \"manual\")\n this.unfold();\n var mode = this.$foldMode;\n this.$setFolding(null);\n this.$setFolding(mode);\n };\n this.$setFolding = function (foldMode) {\n if (this.$foldMode == foldMode)\n return;\n this.$foldMode = foldMode;\n this.off('change', this.$updateFoldWidgets);\n this.off('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n this._signal(\"changeAnnotation\");\n if (!foldMode || this.$foldStyle == \"manual\") {\n this.foldWidgets = null;\n return;\n }\n this.foldWidgets = [];\n this.getFoldWidget = foldMode.getFoldWidget.bind(foldMode, this, this.$foldStyle);\n this.getFoldWidgetRange = foldMode.getFoldWidgetRange.bind(foldMode, this, this.$foldStyle);\n this.$updateFoldWidgets = this.updateFoldWidgets.bind(this);\n this.$tokenizerUpdateFoldWidgets = this.tokenizerUpdateFoldWidgets.bind(this);\n this.on('change', this.$updateFoldWidgets);\n this.on('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n };\n this.getParentFoldRangeData = function (row, ignoreCurrent) {\n var fw = this.foldWidgets;\n if (!fw || (ignoreCurrent && fw[row]))\n return {};\n var i = row - 1, firstRange;\n while (i >= 0) {\n var c = fw[i];\n if (c == null)\n c = fw[i] = this.getFoldWidget(i);\n if (c == \"start\") {\n var range = this.getFoldWidgetRange(i);\n if (!firstRange)\n firstRange = range;\n if (range && range.end.row >= row)\n break;\n }\n i--;\n }\n return {\n range: i !== -1 && range,\n firstRange: firstRange\n };\n };\n this.onFoldWidgetClick = function (row, e) {\n if (e instanceof MouseEvent)\n e = e.domEvent;\n var options = {\n children: e.shiftKey,\n all: e.ctrlKey || e.metaKey,\n siblings: e.altKey\n };\n var range = this.$toggleFoldWidget(row, options);\n if (!range) {\n var el = (e.target || e.srcElement);\n if (el && /ace_fold-widget/.test(el.className))\n el.className += \" ace_invalid\";\n }\n };\n this.$toggleFoldWidget = function (row, options) {\n if (!this.getFoldWidget)\n return;\n var type = this.getFoldWidget(row);\n var line = this.getLine(row);\n var dir = type === \"end\" ? -1 : 1;\n var fold = this.getFoldAt(row, dir === -1 ? 0 : line.length, dir);\n if (fold) {\n if (options.children || options.all)\n this.removeFold(fold);\n else\n this.expandFold(fold);\n return fold;\n }\n var range = this.getFoldWidgetRange(row, true);\n if (range && !range.isMultiLine()) {\n fold = this.getFoldAt(range.start.row, range.start.column, 1);\n if (fold && range.isEqual(fold.range)) {\n this.removeFold(fold);\n return fold;\n }\n }\n if (options.siblings) {\n var data = this.getParentFoldRangeData(row);\n if (data.range) {\n var startRow = data.range.start.row + 1;\n var endRow = data.range.end.row;\n }\n this.foldAll(startRow, endRow, options.all ? 10000 : 0);\n }\n else if (options.children) {\n endRow = range ? range.end.row : this.getLength();\n this.foldAll(row + 1, endRow, options.all ? 10000 : 0);\n }\n else if (range) {\n if (options.all)\n range.collapseChildren = 10000;\n this.addFold(\"...\", range);\n }\n return range;\n };\n this.toggleFoldWidget = function (toggleParent) {\n var row = this.selection.getCursor().row;\n row = this.getRowFoldStart(row);\n var range = this.$toggleFoldWidget(row, {});\n if (range)\n return;\n var data = this.getParentFoldRangeData(row, true);\n range = data.range || data.firstRange;\n if (range) {\n row = range.start.row;\n var fold = this.getFoldAt(row, this.getLine(row).length, 1);\n if (fold) {\n this.removeFold(fold);\n }\n else {\n this.addFold(\"...\", range);\n }\n }\n };\n this.updateFoldWidgets = function (delta) {\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n if (len === 0) {\n this.foldWidgets[firstRow] = null;\n }\n else if (delta.action == 'remove') {\n this.foldWidgets.splice(firstRow, len + 1, null);\n }\n else {\n var args = Array(len + 1);\n args.unshift(firstRow, 1);\n this.foldWidgets.splice.apply(this.foldWidgets, args);\n }\n };\n this.tokenizerUpdateFoldWidgets = function (e) {\n var rows = e.data;\n if (rows.first != rows.last) {\n if (this.foldWidgets.length > rows.first)\n this.foldWidgets.splice(rows.first, this.foldWidgets.length);\n }\n };\n}\nexports.Folding = Folding;\n\n});\n\nace.define(\"ace/edit_session/bracket_match\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nvar Range = require(\"../range\").Range;\nfunction BracketMatch() {\n this.findMatchingBracket = function (position, chr) {\n if (position.column == 0)\n return null;\n var charBeforeCursor = chr || this.getLine(position.row).charAt(position.column - 1);\n if (charBeforeCursor == \"\")\n return null;\n var match = charBeforeCursor.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match)\n return null;\n if (match[1])\n return this.$findClosingBracket(match[1], position);\n else\n return this.$findOpeningBracket(match[2], position);\n };\n this.getBracketRange = function (pos) {\n var line = this.getLine(pos.row);\n var before = true, range;\n var chr = line.charAt(pos.column - 1);\n var match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match) {\n chr = line.charAt(pos.column);\n pos = { row: pos.row, column: pos.column + 1 };\n match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n before = false;\n }\n if (!match)\n return null;\n if (match[1]) {\n var bracketPos = this.$findClosingBracket(match[1], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(pos, bracketPos);\n if (!before) {\n range.end.column++;\n range.start.column--;\n }\n range.cursor = range.end;\n }\n else {\n var bracketPos = this.$findOpeningBracket(match[2], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(bracketPos, pos);\n if (!before) {\n range.start.column++;\n range.end.column--;\n }\n range.cursor = range.start;\n }\n return range;\n };\n this.getMatchingBracketRanges = function (pos, isBackwards) {\n var line = this.getLine(pos.row);\n var bracketsRegExp = /([\\(\\[\\{])|([\\)\\]\\}])/;\n var chr = !isBackwards && line.charAt(pos.column - 1);\n var match = chr && chr.match(bracketsRegExp);\n if (!match) {\n chr = (isBackwards === undefined || isBackwards) && line.charAt(pos.column);\n pos = {\n row: pos.row,\n column: pos.column + 1\n };\n match = chr && chr.match(bracketsRegExp);\n }\n if (!match)\n return null;\n var startRange = new Range(pos.row, pos.column - 1, pos.row, pos.column);\n var bracketPos = match[1] ? this.$findClosingBracket(match[1], pos)\n : this.$findOpeningBracket(match[2], pos);\n if (!bracketPos)\n return [startRange];\n var endRange = new Range(bracketPos.row, bracketPos.column, bracketPos.row, bracketPos.column + 1);\n return [startRange, endRange];\n };\n this.$brackets = {\n \")\": \"(\",\n \"(\": \")\",\n \"]\": \"[\",\n \"[\": \"]\",\n \"{\": \"}\",\n \"}\": \"{\",\n \"<\": \">\",\n \">\": \"<\"\n };\n this.$findOpeningBracket = function (bracket, position, typeRe) {\n var openBracket = this.$brackets[bracket];\n var depth = 1;\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n if (!typeRe) {\n typeRe = new RegExp(\"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"rparen\", \".paren\")\n .replace(/\\b(?:end)\\b/, \"(?:start|begin|end)\")\n .replace(/-close\\b/, \"-(close|open)\")\n + \")+\");\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn() - 2;\n var value = token.value;\n while (true) {\n while (valueIndex >= 0) {\n var chr = value.charAt(valueIndex);\n if (chr == openBracket) {\n depth -= 1;\n if (depth == 0) {\n return { row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn() };\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex -= 1;\n }\n do {\n token = iterator.stepBackward();\n } while (token && !typeRe.test(token.type));\n if (token == null)\n break;\n value = token.value;\n valueIndex = value.length - 1;\n }\n return null;\n };\n this.$findClosingBracket = function (bracket, position, typeRe) {\n var closingBracket = this.$brackets[bracket];\n var depth = 1;\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n if (!typeRe) {\n typeRe = new RegExp(\"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"lparen\", \".paren\")\n .replace(/\\b(?:start|begin)\\b/, \"(?:start|begin|end)\")\n .replace(/-open\\b/, \"-(close|open)\")\n + \")+\");\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn();\n while (true) {\n var value = token.value;\n var valueLength = value.length;\n while (valueIndex < valueLength) {\n var chr = value.charAt(valueIndex);\n if (chr == closingBracket) {\n depth -= 1;\n if (depth == 0) {\n return { row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn() };\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex += 1;\n }\n do {\n token = iterator.stepForward();\n } while (token && !typeRe.test(token.type));\n if (token == null)\n break;\n valueIndex = 0;\n }\n return null;\n };\n this.getMatchingTags = function (pos) {\n var iterator = new TokenIterator(this, pos.row, pos.column);\n var token = this.$findTagName(iterator);\n if (!token)\n return;\n var prevToken = iterator.stepBackward();\n if (prevToken.value === '<') {\n return this.$findClosingTag(iterator, token);\n }\n else {\n return this.$findOpeningTag(iterator, token);\n }\n };\n this.$findTagName = function (iterator) {\n var token = iterator.getCurrentToken();\n var found = false;\n var backward = false;\n if (token && token.type.indexOf('tag-name') === -1) {\n do {\n if (backward)\n token = iterator.stepBackward();\n else\n token = iterator.stepForward();\n if (token) {\n if (token.value === \"/>\") {\n backward = true;\n }\n else if (token.type.indexOf('tag-name') !== -1) {\n found = true;\n }\n }\n } while (token && !found);\n }\n return token;\n };\n this.$findClosingTag = function (iterator, token) {\n var prevToken;\n var currentTag = token.value;\n var tag = token.value;\n var depth = 0;\n var openTagStart = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1);\n token = iterator.stepForward();\n var openTagName = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + token.value.length);\n var foundOpenTagEnd = false;\n do {\n prevToken = token;\n token = iterator.stepForward();\n if (token) {\n if (token.value === '>' && !foundOpenTagEnd) {\n var openTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for `>`\n foundOpenTagEnd = true;\n }\n if (token.type.indexOf('tag-name') !== -1) {\n currentTag = token.value;\n if (tag === currentTag) {\n if (prevToken.value === '<') {\n depth++;\n }\n else if (prevToken.value === '') {\n var closeTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for >\n }\n else {\n return;\n }\n }\n }\n }\n }\n else if (tag === currentTag && token.value === '/>') { // self-closing tag\n depth--;\n if (depth < 0) { //found self-closing tag end\n var closeTagStart = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 2);\n var closeTagName = closeTagStart;\n var closeTagEnd = closeTagName;\n var openTagEnd = new Range(openTagName.end.row, openTagName.end.column, openTagName.end.row, openTagName.end.column + 1);\n }\n }\n }\n } while (token && depth >= 0);\n if (openTagStart && openTagEnd && closeTagStart && closeTagEnd && openTagName && closeTagName) {\n return {\n openTag: new Range(openTagStart.start.row, openTagStart.start.column, openTagEnd.end.row, openTagEnd.end.column),\n closeTag: new Range(closeTagStart.start.row, closeTagStart.start.column, closeTagEnd.end.row, closeTagEnd.end.column),\n openTagName: openTagName,\n closeTagName: closeTagName\n };\n }\n };\n this.$findOpeningTag = function (iterator, token) {\n var prevToken = iterator.getCurrentToken();\n var tag = token.value;\n var depth = 0;\n var startRow = iterator.getCurrentTokenRow();\n var startColumn = iterator.getCurrentTokenColumn();\n var endColumn = startColumn + 2;\n var closeTagStart = new Range(startRow, startColumn, startRow, endColumn); //Range for \")\n return;\n var closeTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for >\n iterator.stepBackward();\n iterator.stepBackward();\n do {\n token = prevToken;\n startRow = iterator.getCurrentTokenRow();\n startColumn = iterator.getCurrentTokenColumn();\n endColumn = startColumn + token.value.length;\n prevToken = iterator.stepBackward();\n if (token) {\n if (token.type.indexOf('tag-name') !== -1) {\n if (tag === token.value) {\n if (prevToken.value === '<') {\n depth++;\n if (depth > 0) { //found opening tag\n var openTagName = new Range(startRow, startColumn, startRow, endColumn);\n var openTagStart = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for <\n do {\n token = iterator.stepForward();\n } while (token && token.value !== '>');\n var openTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for >\n }\n }\n else if (prevToken.value === '') { // self-closing tag\n var stepCount = 0;\n var tmpToken = prevToken;\n while (tmpToken) {\n if (tmpToken.type.indexOf('tag-name') !== -1 && tmpToken.value === tag) {\n depth--;\n break;\n }\n else if (tmpToken.value === '<') {\n break;\n }\n tmpToken = iterator.stepBackward();\n stepCount++;\n }\n for (var i = 0; i < stepCount; i++) {\n iterator.stepForward();\n }\n }\n }\n } while (prevToken && depth <= 0);\n if (openTagStart && openTagEnd && closeTagStart && closeTagEnd && openTagName && closeTagName) {\n return {\n openTag: new Range(openTagStart.start.row, openTagStart.start.column, openTagEnd.end.row, openTagEnd.end.column),\n closeTag: new Range(closeTagStart.start.row, closeTagStart.start.column, closeTagEnd.end.row, closeTagEnd.end.column),\n openTagName: openTagName,\n closeTagName: closeTagName\n };\n }\n };\n}\nexports.BracketMatch = BracketMatch;\n\n});\n\nace.define(\"ace/edit_session\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/bidihandler\",\"ace/config\",\"ace/lib/event_emitter\",\"ace/selection\",\"ace/mode/text\",\"ace/range\",\"ace/document\",\"ace/background_tokenizer\",\"ace/search_highlight\",\"ace/undomanager\",\"ace/edit_session/folding\",\"ace/edit_session/bracket_match\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar lang = require(\"./lib/lang\");\nvar BidiHandler = require(\"./bidihandler\").BidiHandler;\nvar config = require(\"./config\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Selection = require(\"./selection\").Selection;\nvar TextMode = require(\"./mode/text\").Mode;\nvar Range = require(\"./range\").Range;\nvar Document = require(\"./document\").Document;\nvar BackgroundTokenizer = require(\"./background_tokenizer\").BackgroundTokenizer;\nvar SearchHighlight = require(\"./search_highlight\").SearchHighlight;\nvar UndoManager = require(\"./undomanager\").UndoManager;\nvar EditSession = /** @class */ (function () {\n function EditSession(text, mode) {\n this.$breakpoints = [];\n this.$decorations = [];\n this.$frontMarkers = {};\n this.$backMarkers = {};\n this.$markerId = 1;\n this.$undoSelect = true;\n this.$foldData = [];\n this.id = \"session\" + (++EditSession.$uid);\n this.$foldData.toString = function () {\n return this.join(\"\\n\");\n };\n this.bgTokenizer = new BackgroundTokenizer((new TextMode()).getTokenizer(), this);\n var _self = this;\n this.bgTokenizer.on(\"update\", function (e) {\n _self._signal(\"tokenizerUpdate\", e);\n });\n this.on(\"changeFold\", this.onChangeFold.bind(this));\n this.$onChange = this.onChange.bind(this);\n if (typeof text != \"object\" || !text.getLine)\n text = new Document(text);\n this.setDocument(text);\n this.selection = new Selection(this);\n this.$bidiHandler = new BidiHandler(this);\n config.resetOptions(this);\n this.setMode(mode);\n config._signal(\"session\", this);\n this.destroyed = false;\n }\n EditSession.prototype.setDocument = function (doc) {\n if (this.doc)\n this.doc.off(\"change\", this.$onChange);\n this.doc = doc;\n doc.on(\"change\", this.$onChange, true);\n this.bgTokenizer.setDocument(this.getDocument());\n this.resetCaches();\n };\n EditSession.prototype.getDocument = function () {\n return this.doc;\n };\n EditSession.prototype.$resetRowCache = function (docRow) {\n if (!docRow) {\n this.$docRowCache = [];\n this.$screenRowCache = [];\n return;\n }\n var l = this.$docRowCache.length;\n var i = this.$getRowCacheIndex(this.$docRowCache, docRow) + 1;\n if (l > i) {\n this.$docRowCache.splice(i, l);\n this.$screenRowCache.splice(i, l);\n }\n };\n EditSession.prototype.$getRowCacheIndex = function (cacheArray, val) {\n var low = 0;\n var hi = cacheArray.length - 1;\n while (low <= hi) {\n var mid = (low + hi) >> 1;\n var c = cacheArray[mid];\n if (val > c)\n low = mid + 1;\n else if (val < c)\n hi = mid - 1;\n else\n return mid;\n }\n return low - 1;\n };\n EditSession.prototype.resetCaches = function () {\n this.$modified = true;\n this.$wrapData = [];\n this.$rowLengthCache = [];\n this.$resetRowCache(0);\n if (!this.destroyed)\n this.bgTokenizer.start(0);\n };\n EditSession.prototype.onChangeFold = function (e) {\n var fold = e.data;\n this.$resetRowCache(fold.start.row);\n };\n EditSession.prototype.onChange = function (delta) {\n this.$modified = true;\n this.$bidiHandler.onChange(delta);\n this.$resetRowCache(delta.start.row);\n var removedFolds = this.$updateInternalDataOnChange(delta);\n if (!this.$fromUndo && this.$undoManager) {\n if (removedFolds && removedFolds.length) {\n this.$undoManager.add({\n action: \"removeFolds\",\n folds: removedFolds\n }, this.mergeUndoDeltas);\n this.mergeUndoDeltas = true;\n }\n this.$undoManager.add(delta, this.mergeUndoDeltas);\n this.mergeUndoDeltas = true;\n this.$informUndoManager.schedule();\n }\n this.bgTokenizer.$updateOnChange(delta);\n this._signal(\"change\", delta);\n };\n EditSession.prototype.setValue = function (text) {\n this.doc.setValue(text);\n this.selection.moveTo(0, 0);\n this.$resetRowCache(0);\n this.setUndoManager(this.$undoManager);\n this.getUndoManager().reset();\n };\n EditSession.fromJSON = function (session) {\n session = JSON.parse(session);\n var undoManager = new UndoManager();\n undoManager.$undoStack = session.history.undo;\n undoManager.$redoStack = session.history.redo;\n undoManager.mark = session.history.mark;\n undoManager.$rev = session.history.rev;\n var editSession = new EditSession(session.value);\n session.folds.forEach(function (fold) {\n editSession.addFold(\"...\", Range.fromPoints(fold.start, fold.end));\n });\n editSession.setAnnotations(session.annotations);\n editSession.setBreakpoints(session.breakpoints);\n editSession.setMode(session.mode);\n editSession.setScrollLeft(session.scrollLeft);\n editSession.setScrollTop(session.scrollTop);\n editSession.setUndoManager(undoManager);\n editSession.selection.fromJSON(session.selection);\n return editSession;\n };\n EditSession.prototype.toJSON = function () {\n return {\n annotations: this.$annotations,\n breakpoints: this.$breakpoints,\n folds: this.getAllFolds().map(function (fold) {\n return fold.range;\n }),\n history: this.getUndoManager(),\n mode: this.$mode.$id,\n scrollLeft: this.$scrollLeft,\n scrollTop: this.$scrollTop,\n selection: this.selection.toJSON(),\n value: this.doc.getValue()\n };\n };\n EditSession.prototype.toString = function () {\n return this.doc.getValue();\n };\n EditSession.prototype.getSelection = function () {\n return this.selection;\n };\n EditSession.prototype.getState = function (row) {\n return this.bgTokenizer.getState(row);\n };\n EditSession.prototype.getTokens = function (row) {\n return this.bgTokenizer.getTokens(row);\n };\n EditSession.prototype.getTokenAt = function (row, column) {\n var tokens = this.bgTokenizer.getTokens(row);\n var token, c = 0;\n if (column == null) {\n var i = tokens.length - 1;\n c = this.getLine(row).length;\n }\n else {\n for (var i = 0; i < tokens.length; i++) {\n c += tokens[i].value.length;\n if (c >= column)\n break;\n }\n }\n token = tokens[i];\n if (!token)\n return null;\n token.index = i;\n token.start = c - token.value.length;\n return token;\n };\n EditSession.prototype.setUndoManager = function (undoManager) {\n this.$undoManager = undoManager;\n if (this.$informUndoManager)\n this.$informUndoManager.cancel();\n if (undoManager) {\n var self = this;\n undoManager.addSession(this);\n this.$syncInformUndoManager = function () {\n self.$informUndoManager.cancel();\n self.mergeUndoDeltas = false;\n };\n this.$informUndoManager = lang.delayedCall(this.$syncInformUndoManager);\n }\n else {\n this.$syncInformUndoManager = function () { };\n }\n };\n EditSession.prototype.markUndoGroup = function () {\n if (this.$syncInformUndoManager)\n this.$syncInformUndoManager();\n };\n EditSession.prototype.getUndoManager = function () {\n return this.$undoManager || this.$defaultUndoManager;\n };\n EditSession.prototype.getTabString = function () {\n if (this.getUseSoftTabs()) {\n return lang.stringRepeat(\" \", this.getTabSize());\n }\n else {\n return \"\\t\";\n }\n };\n EditSession.prototype.setUseSoftTabs = function (val) {\n this.setOption(\"useSoftTabs\", val);\n };\n EditSession.prototype.getUseSoftTabs = function () {\n return this.$useSoftTabs && !this.$mode.$indentWithTabs;\n };\n EditSession.prototype.setTabSize = function (tabSize) {\n this.setOption(\"tabSize\", tabSize);\n };\n EditSession.prototype.getTabSize = function () {\n return this.$tabSize;\n };\n EditSession.prototype.isTabStop = function (position) {\n return this.$useSoftTabs && (position.column % this.$tabSize === 0);\n };\n EditSession.prototype.setNavigateWithinSoftTabs = function (navigateWithinSoftTabs) {\n this.setOption(\"navigateWithinSoftTabs\", navigateWithinSoftTabs);\n };\n EditSession.prototype.getNavigateWithinSoftTabs = function () {\n return this.$navigateWithinSoftTabs;\n };\n EditSession.prototype.setOverwrite = function (overwrite) {\n this.setOption(\"overwrite\", overwrite);\n };\n EditSession.prototype.getOverwrite = function () {\n return this.$overwrite;\n };\n EditSession.prototype.toggleOverwrite = function () {\n this.setOverwrite(!this.$overwrite);\n };\n EditSession.prototype.addGutterDecoration = function (row, className) {\n if (!this.$decorations[row])\n this.$decorations[row] = \"\";\n this.$decorations[row] += \" \" + className;\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.removeGutterDecoration = function (row, className) {\n this.$decorations[row] = (this.$decorations[row] || \"\").replace(\" \" + className, \"\");\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.getBreakpoints = function () {\n return this.$breakpoints;\n };\n EditSession.prototype.setBreakpoints = function (rows) {\n this.$breakpoints = [];\n for (var i = 0; i < rows.length; i++) {\n this.$breakpoints[rows[i]] = \"ace_breakpoint\";\n }\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.clearBreakpoints = function () {\n this.$breakpoints = [];\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.setBreakpoint = function (row, className) {\n if (className === undefined)\n className = \"ace_breakpoint\";\n if (className)\n this.$breakpoints[row] = className;\n else\n delete this.$breakpoints[row];\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.clearBreakpoint = function (row) {\n delete this.$breakpoints[row];\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.addMarker = function (range, clazz, type, inFront) {\n var id = this.$markerId++;\n var marker = {\n range: range,\n type: type || \"line\",\n renderer: typeof type == \"function\" ? type : null,\n clazz: clazz,\n inFront: !!inFront,\n id: id\n };\n if (inFront) {\n this.$frontMarkers[id] = marker;\n this._signal(\"changeFrontMarker\");\n }\n else {\n this.$backMarkers[id] = marker;\n this._signal(\"changeBackMarker\");\n }\n return id;\n };\n EditSession.prototype.addDynamicMarker = function (marker, inFront) {\n if (!marker.update)\n return;\n var id = this.$markerId++;\n marker.id = id;\n marker.inFront = !!inFront;\n if (inFront) {\n this.$frontMarkers[id] = marker;\n this._signal(\"changeFrontMarker\");\n }\n else {\n this.$backMarkers[id] = marker;\n this._signal(\"changeBackMarker\");\n }\n return marker;\n };\n EditSession.prototype.removeMarker = function (markerId) {\n var marker = this.$frontMarkers[markerId] || this.$backMarkers[markerId];\n if (!marker)\n return;\n var markers = marker.inFront ? this.$frontMarkers : this.$backMarkers;\n delete (markers[markerId]);\n this._signal(marker.inFront ? \"changeFrontMarker\" : \"changeBackMarker\");\n };\n EditSession.prototype.getMarkers = function (inFront) {\n return inFront ? this.$frontMarkers : this.$backMarkers;\n };\n EditSession.prototype.highlight = function (re) {\n if (!this.$searchHighlight) {\n var highlight = new SearchHighlight(null, \"ace_selected-word\", \"text\");\n this.$searchHighlight = this.addDynamicMarker(highlight);\n }\n this.$searchHighlight.setRegexp(re);\n };\n EditSession.prototype.highlightLines = function (startRow, endRow, clazz, inFront) {\n if (typeof endRow != \"number\") {\n clazz = endRow;\n endRow = startRow;\n }\n if (!clazz)\n clazz = \"ace_step\";\n var range = new Range(startRow, 0, endRow, Infinity);\n range.id = this.addMarker(range, clazz, \"fullLine\", inFront);\n return range;\n };\n EditSession.prototype.setAnnotations = function (annotations) {\n this.$annotations = annotations;\n this._signal(\"changeAnnotation\", {});\n };\n EditSession.prototype.getAnnotations = function () {\n return this.$annotations || [];\n };\n EditSession.prototype.clearAnnotations = function () {\n this.setAnnotations([]);\n };\n EditSession.prototype.$detectNewLine = function (text) {\n var match = text.match(/^.*?(\\r?\\n)/m);\n if (match) {\n this.$autoNewLine = match[1];\n }\n else {\n this.$autoNewLine = \"\\n\";\n }\n };\n EditSession.prototype.getWordRange = function (row, column) {\n var line = this.getLine(row);\n var inToken = false;\n if (column > 0)\n inToken = !!line.charAt(column - 1).match(this.tokenRe);\n if (!inToken)\n inToken = !!line.charAt(column).match(this.tokenRe);\n if (inToken)\n var re = this.tokenRe;\n else if (/^\\s+$/.test(line.slice(column - 1, column + 1)))\n var re = /\\s/;\n else\n var re = this.nonTokenRe;\n var start = column;\n if (start > 0) {\n do {\n start--;\n } while (start >= 0 && line.charAt(start).match(re));\n start++;\n }\n var end = column;\n while (end < line.length && line.charAt(end).match(re)) {\n end++;\n }\n return new Range(row, start, row, end);\n };\n EditSession.prototype.getAWordRange = function (row, column) {\n var wordRange = this.getWordRange(row, column);\n var line = this.getLine(wordRange.end.row);\n while (line.charAt(wordRange.end.column).match(/[ \\t]/)) {\n wordRange.end.column += 1;\n }\n return wordRange;\n };\n EditSession.prototype.setNewLineMode = function (newLineMode) {\n this.doc.setNewLineMode(newLineMode);\n };\n EditSession.prototype.getNewLineMode = function () {\n return this.doc.getNewLineMode();\n };\n EditSession.prototype.setUseWorker = function (useWorker) { this.setOption(\"useWorker\", useWorker); };\n EditSession.prototype.getUseWorker = function () { return this.$useWorker; };\n EditSession.prototype.onReloadTokenizer = function (e) {\n var rows = e.data;\n this.bgTokenizer.start(rows.first);\n this._signal(\"tokenizerUpdate\", e);\n };\n EditSession.prototype.setMode = function (mode, cb) {\n if (mode && typeof mode === \"object\") {\n if (mode.getTokenizer)\n return this.$onChangeMode(mode);\n var options = mode;\n var path = options.path;\n }\n else {\n path = mode || \"ace/mode/text\";\n }\n if (!this.$modes[\"ace/mode/text\"])\n this.$modes[\"ace/mode/text\"] = new TextMode();\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n cb && cb();\n return;\n }\n this.$modeId = path;\n config.loadModule([\"mode\", path], function (m) {\n if (this.$modeId !== path)\n return cb && cb();\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n }\n else if (m && m.Mode) {\n m = new m.Mode(options);\n if (!options) {\n this.$modes[path] = m;\n m.$id = path;\n }\n this.$onChangeMode(m);\n }\n cb && cb();\n }.bind(this));\n if (!this.$mode)\n this.$onChangeMode(this.$modes[\"ace/mode/text\"], true);\n };\n EditSession.prototype.$onChangeMode = function (mode, $isPlaceholder) {\n if (!$isPlaceholder)\n this.$modeId = mode.$id;\n if (this.$mode === mode)\n return;\n var oldMode = this.$mode;\n this.$mode = mode;\n this.$stopWorker();\n if (this.$useWorker)\n this.$startWorker();\n var tokenizer = mode.getTokenizer();\n if (tokenizer.on !== undefined) {\n var onReloadTokenizer = this.onReloadTokenizer.bind(this);\n tokenizer.on(\"update\", onReloadTokenizer);\n }\n this.bgTokenizer.setTokenizer(tokenizer);\n this.bgTokenizer.setDocument(this.getDocument());\n this.tokenRe = mode.tokenRe;\n this.nonTokenRe = mode.nonTokenRe;\n if (!$isPlaceholder) {\n if (mode.attachToSession)\n mode.attachToSession(this);\n this.$options.wrapMethod.set.call(this, this.$wrapMethod);\n this.$setFolding(mode.foldingRules);\n this.bgTokenizer.start(0);\n this._emit(\"changeMode\", { oldMode: oldMode, mode: mode });\n }\n };\n EditSession.prototype.$stopWorker = function () {\n if (this.$worker) {\n this.$worker.terminate();\n this.$worker = null;\n }\n };\n EditSession.prototype.$startWorker = function () {\n try {\n this.$worker = this.$mode.createWorker(this);\n }\n catch (e) {\n config.warn(\"Could not load worker\", e);\n this.$worker = null;\n }\n };\n EditSession.prototype.getMode = function () {\n return this.$mode;\n };\n EditSession.prototype.setScrollTop = function (scrollTop) {\n if (this.$scrollTop === scrollTop || isNaN(scrollTop))\n return;\n this.$scrollTop = scrollTop;\n this._signal(\"changeScrollTop\", scrollTop);\n };\n EditSession.prototype.getScrollTop = function () {\n return this.$scrollTop;\n };\n EditSession.prototype.setScrollLeft = function (scrollLeft) {\n if (this.$scrollLeft === scrollLeft || isNaN(scrollLeft))\n return;\n this.$scrollLeft = scrollLeft;\n this._signal(\"changeScrollLeft\", scrollLeft);\n };\n EditSession.prototype.getScrollLeft = function () {\n return this.$scrollLeft;\n };\n EditSession.prototype.getScreenWidth = function () {\n this.$computeWidth();\n if (this.lineWidgets)\n return Math.max(this.getLineWidgetMaxWidth(), this.screenWidth);\n return this.screenWidth;\n };\n EditSession.prototype.getLineWidgetMaxWidth = function () {\n if (this.lineWidgetsWidth != null)\n return this.lineWidgetsWidth;\n var width = 0;\n this.lineWidgets.forEach(function (w) {\n if (w && w.screenWidth > width)\n width = w.screenWidth;\n });\n return this.lineWidgetWidth = width;\n };\n EditSession.prototype.$computeWidth = function (force) {\n if (this.$modified || force) {\n this.$modified = false;\n if (this.$useWrapMode)\n return this.screenWidth = this.$wrapLimit;\n var lines = this.doc.getAllLines();\n var cache = this.$rowLengthCache;\n var longestScreenLine = 0;\n var foldIndex = 0;\n var foldLine = this.$foldData[foldIndex];\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n var len = lines.length;\n for (var i = 0; i < len; i++) {\n if (i > foldStart) {\n i = foldLine.end.row + 1;\n if (i >= len)\n break;\n foldLine = this.$foldData[foldIndex++];\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (cache[i] == null)\n cache[i] = this.$getStringScreenWidth(lines[i])[0];\n if (cache[i] > longestScreenLine)\n longestScreenLine = cache[i];\n }\n this.screenWidth = longestScreenLine;\n }\n };\n EditSession.prototype.getLine = function (row) {\n return this.doc.getLine(row);\n };\n EditSession.prototype.getLines = function (firstRow, lastRow) {\n return this.doc.getLines(firstRow, lastRow);\n };\n EditSession.prototype.getLength = function () {\n return this.doc.getLength();\n };\n EditSession.prototype.getTextRange = function (range) {\n return this.doc.getTextRange(range || this.selection.getRange());\n };\n EditSession.prototype.insert = function (position, text) {\n return this.doc.insert(position, text);\n };\n EditSession.prototype.remove = function (range) {\n return this.doc.remove(range);\n };\n EditSession.prototype.removeFullLines = function (firstRow, lastRow) {\n return this.doc.removeFullLines(firstRow, lastRow);\n };\n EditSession.prototype.undoChanges = function (deltas, dontSelect) {\n if (!deltas.length)\n return;\n this.$fromUndo = true;\n for (var i = deltas.length - 1; i != -1; i--) {\n var delta = deltas[i];\n if (delta.action == \"insert\" || delta.action == \"remove\") {\n this.doc.revertDelta(delta);\n }\n else if (delta.folds) {\n this.addFolds(delta.folds);\n }\n }\n if (!dontSelect && this.$undoSelect) {\n if (deltas.selectionBefore)\n this.selection.fromJSON(deltas.selectionBefore);\n else\n this.selection.setRange(this.$getUndoSelection(deltas, true));\n }\n this.$fromUndo = false;\n };\n EditSession.prototype.redoChanges = function (deltas, dontSelect) {\n if (!deltas.length)\n return;\n this.$fromUndo = true;\n for (var i = 0; i < deltas.length; i++) {\n var delta = deltas[i];\n if (delta.action == \"insert\" || delta.action == \"remove\") {\n this.doc.$safeApplyDelta(delta);\n }\n }\n if (!dontSelect && this.$undoSelect) {\n if (deltas.selectionAfter)\n this.selection.fromJSON(deltas.selectionAfter);\n else\n this.selection.setRange(this.$getUndoSelection(deltas, false));\n }\n this.$fromUndo = false;\n };\n EditSession.prototype.setUndoSelect = function (enable) {\n this.$undoSelect = enable;\n };\n EditSession.prototype.$getUndoSelection = function (deltas, isUndo) {\n function isInsert(delta) {\n return isUndo ? delta.action !== \"insert\" : delta.action === \"insert\";\n }\n var range, point;\n for (var i = 0; i < deltas.length; i++) {\n var delta = deltas[i];\n if (!delta.start)\n continue; // skip folds\n if (!range) {\n if (isInsert(delta)) {\n range = Range.fromPoints(delta.start, delta.end);\n }\n else {\n range = Range.fromPoints(delta.start, delta.start);\n }\n continue;\n }\n if (isInsert(delta)) {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range.setStart(point);\n }\n point = delta.end;\n if (range.compare(point.row, point.column) == 1) {\n range.setEnd(point);\n }\n }\n else {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range = Range.fromPoints(delta.start, delta.start);\n }\n }\n }\n return range;\n };\n EditSession.prototype.replace = function (range, text) {\n return this.doc.replace(range, text);\n };\n EditSession.prototype.moveText = function (fromRange, toPosition, copy) {\n var text = this.getTextRange(fromRange);\n var folds = this.getFoldsInRange(fromRange);\n var toRange = Range.fromPoints(toPosition, toPosition);\n if (!copy) {\n this.remove(fromRange);\n var rowDiff = fromRange.start.row - fromRange.end.row;\n var collDiff = rowDiff ? -fromRange.end.column : fromRange.start.column - fromRange.end.column;\n if (collDiff) {\n if (toRange.start.row == fromRange.end.row && toRange.start.column > fromRange.end.column)\n toRange.start.column += collDiff;\n if (toRange.end.row == fromRange.end.row && toRange.end.column > fromRange.end.column)\n toRange.end.column += collDiff;\n }\n if (rowDiff && toRange.start.row >= fromRange.end.row) {\n toRange.start.row += rowDiff;\n toRange.end.row += rowDiff;\n }\n }\n toRange.end = this.insert(toRange.start, text);\n if (folds.length) {\n var oldStart = fromRange.start;\n var newStart = toRange.start;\n var rowDiff = newStart.row - oldStart.row;\n var collDiff = newStart.column - oldStart.column;\n this.addFolds(folds.map(function (x) {\n x = x.clone();\n if (x.start.row == oldStart.row)\n x.start.column += collDiff;\n if (x.end.row == oldStart.row)\n x.end.column += collDiff;\n x.start.row += rowDiff;\n x.end.row += rowDiff;\n return x;\n }));\n }\n return toRange;\n };\n EditSession.prototype.indentRows = function (startRow, endRow, indentString) {\n indentString = indentString.replace(/\\t/g, this.getTabString());\n for (var row = startRow; row <= endRow; row++)\n this.doc.insertInLine({ row: row, column: 0 }, indentString);\n };\n EditSession.prototype.outdentRows = function (range) {\n var rowRange = range.collapseRows();\n var deleteRange = new Range(0, 0, 0, 0);\n var size = this.getTabSize();\n for (var i = rowRange.start.row; i <= rowRange.end.row; ++i) {\n var line = this.getLine(i);\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n for (var j = 0; j < size; ++j)\n if (line.charAt(j) != ' ')\n break;\n if (j < size && line.charAt(j) == '\\t') {\n deleteRange.start.column = j;\n deleteRange.end.column = j + 1;\n }\n else {\n deleteRange.start.column = 0;\n deleteRange.end.column = j;\n }\n this.remove(deleteRange);\n }\n };\n EditSession.prototype.$moveLines = function (firstRow, lastRow, dir) {\n firstRow = this.getRowFoldStart(firstRow);\n lastRow = this.getRowFoldEnd(lastRow);\n if (dir < 0) {\n var row = this.getRowFoldStart(firstRow + dir);\n if (row < 0)\n return 0;\n var diff = row - firstRow;\n }\n else if (dir > 0) {\n var row = this.getRowFoldEnd(lastRow + dir);\n if (row > this.doc.getLength() - 1)\n return 0;\n var diff = row - lastRow;\n }\n else {\n firstRow = this.$clipRowToDocument(firstRow);\n lastRow = this.$clipRowToDocument(lastRow);\n var diff = lastRow - firstRow + 1;\n }\n var range = new Range(firstRow, 0, lastRow, Number.MAX_VALUE);\n var folds = this.getFoldsInRange(range).map(function (x) {\n x = x.clone();\n x.start.row += diff;\n x.end.row += diff;\n return x;\n });\n var lines = dir == 0\n ? this.doc.getLines(firstRow, lastRow)\n : this.doc.removeFullLines(firstRow, lastRow);\n this.doc.insertFullLines(firstRow + diff, lines);\n folds.length && this.addFolds(folds);\n return diff;\n };\n EditSession.prototype.moveLinesUp = function (firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, -1);\n };\n EditSession.prototype.moveLinesDown = function (firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 1);\n };\n EditSession.prototype.duplicateLines = function (firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 0);\n };\n EditSession.prototype.$clipRowToDocument = function (row) {\n return Math.max(0, Math.min(row, this.doc.getLength() - 1));\n };\n EditSession.prototype.$clipColumnToRow = function (row, column) {\n if (column < 0)\n return 0;\n return Math.min(this.doc.getLine(row).length, column);\n };\n EditSession.prototype.$clipPositionToDocument = function (row, column) {\n column = Math.max(0, column);\n if (row < 0) {\n row = 0;\n column = 0;\n }\n else {\n var len = this.doc.getLength();\n if (row >= len) {\n row = len - 1;\n column = this.doc.getLine(len - 1).length;\n }\n else {\n column = Math.min(this.doc.getLine(row).length, column);\n }\n }\n return {\n row: row,\n column: column\n };\n };\n EditSession.prototype.$clipRangeToDocument = function (range) {\n if (range.start.row < 0) {\n range.start.row = 0;\n range.start.column = 0;\n }\n else {\n range.start.column = this.$clipColumnToRow(range.start.row, range.start.column);\n }\n var len = this.doc.getLength() - 1;\n if (range.end.row > len) {\n range.end.row = len;\n range.end.column = this.doc.getLine(len).length;\n }\n else {\n range.end.column = this.$clipColumnToRow(range.end.row, range.end.column);\n }\n return range;\n };\n EditSession.prototype.setUseWrapMode = function (useWrapMode) {\n if (useWrapMode != this.$useWrapMode) {\n this.$useWrapMode = useWrapMode;\n this.$modified = true;\n this.$resetRowCache(0);\n if (useWrapMode) {\n var len = this.getLength();\n this.$wrapData = Array(len);\n this.$updateWrapData(0, len - 1);\n }\n this._signal(\"changeWrapMode\");\n }\n };\n EditSession.prototype.getUseWrapMode = function () {\n return this.$useWrapMode;\n };\n EditSession.prototype.setWrapLimitRange = function (min, max) {\n if (this.$wrapLimitRange.min !== min || this.$wrapLimitRange.max !== max) {\n this.$wrapLimitRange = { min: min, max: max };\n this.$modified = true;\n this.$bidiHandler.markAsDirty();\n if (this.$useWrapMode)\n this._signal(\"changeWrapMode\");\n }\n };\n EditSession.prototype.adjustWrapLimit = function (desiredLimit, $printMargin) {\n var limits = this.$wrapLimitRange;\n if (limits.max < 0)\n limits = { min: $printMargin, max: $printMargin };\n var wrapLimit = this.$constrainWrapLimit(desiredLimit, limits.min, limits.max);\n if (wrapLimit != this.$wrapLimit && wrapLimit > 1) {\n this.$wrapLimit = wrapLimit;\n this.$modified = true;\n if (this.$useWrapMode) {\n this.$updateWrapData(0, this.getLength() - 1);\n this.$resetRowCache(0);\n this._signal(\"changeWrapLimit\");\n }\n return true;\n }\n return false;\n };\n EditSession.prototype.$constrainWrapLimit = function (wrapLimit, min, max) {\n if (min)\n wrapLimit = Math.max(min, wrapLimit);\n if (max)\n wrapLimit = Math.min(max, wrapLimit);\n return wrapLimit;\n };\n EditSession.prototype.getWrapLimit = function () {\n return this.$wrapLimit;\n };\n EditSession.prototype.setWrapLimit = function (limit) {\n this.setWrapLimitRange(limit, limit);\n };\n EditSession.prototype.getWrapLimitRange = function () {\n return {\n min: this.$wrapLimitRange.min,\n max: this.$wrapLimitRange.max\n };\n };\n EditSession.prototype.$updateInternalDataOnChange = function (delta) {\n var useWrapMode = this.$useWrapMode;\n var action = delta.action;\n var start = delta.start;\n var end = delta.end;\n var firstRow = start.row;\n var lastRow = end.row;\n var len = lastRow - firstRow;\n var removedFolds = null;\n this.$updating = true;\n if (len != 0) {\n if (action === \"remove\") {\n this[useWrapMode ? \"$wrapData\" : \"$rowLengthCache\"].splice(firstRow, len);\n var foldLines = this.$foldData;\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n var foldLine = this.getFoldLine(end.row);\n var idx = 0;\n if (foldLine) {\n foldLine.addRemoveChars(end.row, end.column, start.column - end.column);\n foldLine.shiftRow(-len);\n var foldLineBefore = this.getFoldLine(firstRow);\n if (foldLineBefore && foldLineBefore !== foldLine) {\n foldLineBefore.merge(foldLine);\n foldLine = foldLineBefore;\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= end.row) {\n foldLine.shiftRow(-len);\n }\n }\n lastRow = firstRow;\n }\n else {\n var args = Array(len);\n args.unshift(firstRow, 0);\n var arr = useWrapMode ? this.$wrapData : this.$rowLengthCache;\n arr.splice.apply(arr, args);\n var foldLines = this.$foldData;\n var foldLine = this.getFoldLine(firstRow);\n var idx = 0;\n if (foldLine) {\n var cmp = foldLine.range.compareInside(start.row, start.column);\n if (cmp == 0) {\n foldLine = foldLine.split(start.row, start.column);\n if (foldLine) {\n foldLine.shiftRow(len);\n foldLine.addRemoveChars(lastRow, 0, end.column - start.column);\n }\n }\n else \n if (cmp == -1) {\n foldLine.addRemoveChars(firstRow, 0, end.column - start.column);\n foldLine.shiftRow(len);\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= firstRow) {\n foldLine.shiftRow(len);\n }\n }\n }\n }\n else {\n len = Math.abs(delta.start.column - delta.end.column);\n if (action === \"remove\") {\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n len = -len;\n }\n var foldLine = this.getFoldLine(firstRow);\n if (foldLine) {\n foldLine.addRemoveChars(firstRow, start.column, len);\n }\n }\n if (useWrapMode && this.$wrapData.length != this.doc.getLength()) {\n console.error(\"doc.getLength() and $wrapData.length have to be the same!\");\n }\n this.$updating = false;\n if (useWrapMode)\n this.$updateWrapData(firstRow, lastRow);\n else\n this.$updateRowLengthCache(firstRow, lastRow);\n return removedFolds;\n };\n EditSession.prototype.$updateRowLengthCache = function (firstRow, lastRow, b) {\n this.$rowLengthCache[firstRow] = null;\n this.$rowLengthCache[lastRow] = null;\n };\n EditSession.prototype.$updateWrapData = function (firstRow, lastRow) {\n var lines = this.doc.getAllLines();\n var tabSize = this.getTabSize();\n var wrapData = this.$wrapData;\n var wrapLimit = this.$wrapLimit;\n var tokens;\n var foldLine;\n var row = firstRow;\n lastRow = Math.min(lastRow, lines.length - 1);\n while (row <= lastRow) {\n foldLine = this.getFoldLine(row, foldLine);\n if (!foldLine) {\n tokens = this.$getDisplayTokens(lines[row]);\n wrapData[row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row++;\n }\n else {\n tokens = [];\n foldLine.walk(function (placeholder, row, column, lastColumn) {\n var walkTokens;\n if (placeholder != null) {\n walkTokens = this.$getDisplayTokens(placeholder, tokens.length);\n walkTokens[0] = PLACEHOLDER_START;\n for (var i = 1; i < walkTokens.length; i++) {\n walkTokens[i] = PLACEHOLDER_BODY;\n }\n }\n else {\n walkTokens = this.$getDisplayTokens(lines[row].substring(lastColumn, column), tokens.length);\n }\n tokens = tokens.concat(walkTokens);\n }.bind(this), foldLine.end.row, lines[foldLine.end.row].length + 1);\n wrapData[foldLine.start.row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row = foldLine.end.row + 1;\n }\n }\n };\n EditSession.prototype.$computeWrapSplits = function (tokens, wrapLimit, tabSize) {\n if (tokens.length == 0) {\n return [];\n }\n var splits = [];\n var displayLength = tokens.length;\n var lastSplit = 0, lastDocSplit = 0;\n var isCode = this.$wrapAsCode;\n var indentedSoftWrap = this.$indentedSoftWrap;\n var maxIndent = wrapLimit <= Math.max(2 * tabSize, 8)\n || indentedSoftWrap === false ? 0 : Math.floor(wrapLimit / 2);\n function getWrapIndent() {\n var indentation = 0;\n if (maxIndent === 0)\n return indentation;\n if (indentedSoftWrap) {\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (token == SPACE)\n indentation += 1;\n else if (token == TAB)\n indentation += tabSize;\n else if (token == TAB_SPACE)\n continue;\n else\n break;\n }\n }\n if (isCode && indentedSoftWrap !== false)\n indentation += tabSize;\n return Math.min(indentation, maxIndent);\n }\n function addSplit(screenPos) {\n var len = screenPos - lastSplit;\n for (var i = lastSplit; i < screenPos; i++) {\n var ch = tokens[i];\n if (ch === 12 || ch === 2)\n len -= 1;\n }\n if (!splits.length) {\n indent = getWrapIndent();\n splits.indent = indent;\n }\n lastDocSplit += len;\n splits.push(lastDocSplit);\n lastSplit = screenPos;\n }\n var indent = 0;\n while (displayLength - lastSplit > wrapLimit - indent) {\n var split = lastSplit + wrapLimit - indent;\n if (tokens[split - 1] >= SPACE && tokens[split] >= SPACE) {\n addSplit(split);\n continue;\n }\n if (tokens[split] == PLACEHOLDER_START || tokens[split] == PLACEHOLDER_BODY) {\n for (split; split != lastSplit - 1; split--) {\n if (tokens[split] == PLACEHOLDER_START) {\n break;\n }\n }\n if (split > lastSplit) {\n addSplit(split);\n continue;\n }\n split = lastSplit + wrapLimit;\n for (split; split < tokens.length; split++) {\n if (tokens[split] != PLACEHOLDER_BODY) {\n break;\n }\n }\n if (split == tokens.length) {\n break; // Breaks the while-loop.\n }\n addSplit(split);\n continue;\n }\n var minSplit = Math.max(split - (wrapLimit - (wrapLimit >> 2)), lastSplit - 1);\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split--;\n }\n if (isCode) {\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split--;\n }\n while (split > minSplit && tokens[split] == PUNCTUATION) {\n split--;\n }\n }\n else {\n while (split > minSplit && tokens[split] < SPACE) {\n split--;\n }\n }\n if (split > minSplit) {\n addSplit(++split);\n continue;\n }\n split = lastSplit + wrapLimit;\n if (tokens[split] == CHAR_EXT)\n split--;\n addSplit(split - indent);\n }\n return splits;\n };\n EditSession.prototype.$getDisplayTokens = function (str, offset) {\n var arr = [];\n var tabSize;\n offset = offset || 0;\n for (var i = 0; i < str.length; i++) {\n var c = str.charCodeAt(i);\n if (c == 9) {\n tabSize = this.getScreenTabSize(arr.length + offset);\n arr.push(TAB);\n for (var n = 1; n < tabSize; n++) {\n arr.push(TAB_SPACE);\n }\n }\n else if (c == 32) {\n arr.push(SPACE);\n }\n else if ((c > 39 && c < 48) || (c > 57 && c < 64)) {\n arr.push(PUNCTUATION);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n arr.push(CHAR, CHAR_EXT);\n }\n else {\n arr.push(CHAR);\n }\n }\n return arr;\n };\n EditSession.prototype.$getStringScreenWidth = function (str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn == 0)\n return [0, 0];\n if (maxScreenColumn == null)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charCodeAt(column);\n if (c == 9) {\n screenColumn += this.getScreenTabSize(screenColumn);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n screenColumn += 2;\n }\n else {\n screenColumn += 1;\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n return [screenColumn, column];\n };\n EditSession.prototype.getRowLength = function (row) {\n var h = 1;\n if (this.lineWidgets)\n h += this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n if (!this.$useWrapMode || !this.$wrapData[row])\n return h;\n else\n return this.$wrapData[row].length + h;\n };\n EditSession.prototype.getRowLineCount = function (row) {\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1;\n }\n else {\n return this.$wrapData[row].length + 1;\n }\n };\n EditSession.prototype.getRowWrapIndent = function (screenRow) {\n if (this.$useWrapMode) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n var splits = this.$wrapData[pos.row];\n return splits.length && splits[0] < pos.column ? splits.indent : 0;\n }\n else {\n return 0;\n }\n };\n EditSession.prototype.getScreenLastRowColumn = function (screenRow) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n return this.documentToScreenColumn(pos.row, pos.column);\n };\n EditSession.prototype.getDocumentLastRowColumn = function (docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.getScreenLastRowColumn(screenRow);\n };\n EditSession.prototype.getDocumentLastRowColumnPosition = function (docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.screenToDocumentPosition(screenRow, Number.MAX_VALUE / 10);\n };\n EditSession.prototype.getRowSplitData = function (row) {\n if (!this.$useWrapMode) {\n return undefined;\n }\n else {\n return this.$wrapData[row];\n }\n };\n EditSession.prototype.getScreenTabSize = function (screenColumn) {\n return this.$tabSize - (screenColumn % this.$tabSize | 0);\n };\n EditSession.prototype.screenToDocumentRow = function (screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).row;\n };\n EditSession.prototype.screenToDocumentColumn = function (screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).column;\n };\n EditSession.prototype.screenToDocumentPosition = function (screenRow, screenColumn, offsetX) {\n if (screenRow < 0)\n return { row: 0, column: 0 };\n var line;\n var docRow = 0;\n var docColumn = 0;\n var column;\n var row = 0;\n var rowLength = 0;\n var rowCache = this.$screenRowCache;\n var i = this.$getRowCacheIndex(rowCache, screenRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var docRow = this.$docRowCache[i];\n var doCache = screenRow > rowCache[l - 1];\n }\n else {\n var doCache = !l;\n }\n var maxRow = this.getLength() - 1;\n var foldLine = this.getNextFoldLine(docRow);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (row <= screenRow) {\n rowLength = this.getRowLength(docRow);\n if (row + rowLength > screenRow || docRow >= maxRow) {\n break;\n }\n else {\n row += rowLength;\n docRow++;\n if (docRow > foldStart) {\n docRow = foldLine.end.row + 1;\n foldLine = this.getNextFoldLine(docRow, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n }\n if (doCache) {\n this.$docRowCache.push(docRow);\n this.$screenRowCache.push(row);\n }\n }\n if (foldLine && foldLine.start.row <= docRow) {\n line = this.getFoldDisplayLine(foldLine);\n docRow = foldLine.start.row;\n }\n else if (row + rowLength <= screenRow || docRow > maxRow) {\n return {\n row: maxRow,\n column: this.getLine(maxRow).length\n };\n }\n else {\n line = this.getLine(docRow);\n foldLine = null;\n }\n var wrapIndent = 0, splitIndex = Math.floor(screenRow - row);\n if (this.$useWrapMode) {\n var splits = this.$wrapData[docRow];\n if (splits) {\n column = splits[splitIndex];\n if (splitIndex > 0 && splits.length) {\n wrapIndent = splits.indent;\n docColumn = splits[splitIndex - 1] || splits[splits.length - 1];\n line = line.substring(docColumn);\n }\n }\n }\n if (offsetX !== undefined && this.$bidiHandler.isBidiRow(row + splitIndex, docRow, splitIndex))\n screenColumn = this.$bidiHandler.offsetToCol(offsetX);\n docColumn += this.$getStringScreenWidth(line, screenColumn - wrapIndent)[1];\n if (this.$useWrapMode && docColumn >= column)\n docColumn = column - 1;\n if (foldLine)\n return foldLine.idxToPosition(docColumn);\n return { row: docRow, column: docColumn };\n };\n EditSession.prototype.documentToScreenPosition = function (docRow, docColumn) {\n if (typeof docColumn === \"undefined\")\n var pos = this.$clipPositionToDocument(docRow.row, docRow.column);\n else\n pos = this.$clipPositionToDocument(docRow, docColumn);\n docRow = pos.row;\n docColumn = pos.column;\n var screenRow = 0;\n var foldStartRow = null;\n var fold = null;\n fold = this.getFoldAt(docRow, docColumn, 1);\n if (fold) {\n docRow = fold.start.row;\n docColumn = fold.start.column;\n }\n var rowEnd, row = 0;\n var rowCache = this.$docRowCache;\n var i = this.$getRowCacheIndex(rowCache, docRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var screenRow = this.$screenRowCache[i];\n var doCache = docRow > rowCache[l - 1];\n }\n else {\n var doCache = !l;\n }\n var foldLine = this.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (row < docRow) {\n if (row >= foldStart) {\n rowEnd = foldLine.end.row + 1;\n if (rowEnd > docRow)\n break;\n foldLine = this.getNextFoldLine(rowEnd, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n else {\n rowEnd = row + 1;\n }\n screenRow += this.getRowLength(row);\n row = rowEnd;\n if (doCache) {\n this.$docRowCache.push(row);\n this.$screenRowCache.push(screenRow);\n }\n }\n var textLine = \"\";\n if (foldLine && row >= foldStart) {\n textLine = this.getFoldDisplayLine(foldLine, docRow, docColumn);\n foldStartRow = foldLine.start.row;\n }\n else {\n textLine = this.getLine(docRow).substring(0, docColumn);\n foldStartRow = docRow;\n }\n var wrapIndent = 0;\n if (this.$useWrapMode) {\n var wrapRow = this.$wrapData[foldStartRow];\n if (wrapRow) {\n var screenRowOffset = 0;\n while (textLine.length >= wrapRow[screenRowOffset]) {\n screenRow++;\n screenRowOffset++;\n }\n textLine = textLine.substring(wrapRow[screenRowOffset - 1] || 0, textLine.length);\n wrapIndent = screenRowOffset > 0 ? wrapRow.indent : 0;\n }\n }\n if (this.lineWidgets && this.lineWidgets[row] && this.lineWidgets[row].rowsAbove)\n screenRow += this.lineWidgets[row].rowsAbove;\n return {\n row: screenRow,\n column: wrapIndent + this.$getStringScreenWidth(textLine)[0]\n };\n };\n EditSession.prototype.documentToScreenColumn = function (row, docColumn) {\n return this.documentToScreenPosition(row, docColumn).column;\n };\n EditSession.prototype.documentToScreenRow = function (docRow, docColumn) {\n return this.documentToScreenPosition(docRow, docColumn).row;\n };\n EditSession.prototype.getScreenLength = function () {\n var screenRows = 0;\n var fold = null;\n if (!this.$useWrapMode) {\n screenRows = this.getLength();\n var foldData = this.$foldData;\n for (var i = 0; i < foldData.length; i++) {\n fold = foldData[i];\n screenRows -= fold.end.row - fold.start.row;\n }\n }\n else {\n var lastRow = this.$wrapData.length;\n var row = 0, i = 0;\n var fold = this.$foldData[i++];\n var foldStart = fold ? fold.start.row : Infinity;\n while (row < lastRow) {\n var splits = this.$wrapData[row];\n screenRows += splits ? splits.length + 1 : 1;\n row++;\n if (row > foldStart) {\n row = fold.end.row + 1;\n fold = this.$foldData[i++];\n foldStart = fold ? fold.start.row : Infinity;\n }\n }\n }\n if (this.lineWidgets)\n screenRows += this.$getWidgetScreenLength();\n return screenRows;\n };\n EditSession.prototype.$setFontMetrics = function (fm) {\n if (!this.$enableVarChar)\n return;\n this.$getStringScreenWidth = function (str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn === 0)\n return [0, 0];\n if (!maxScreenColumn)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charAt(column);\n if (c === \"\\t\") {\n screenColumn += this.getScreenTabSize(screenColumn);\n }\n else {\n screenColumn += fm.getCharacterWidth(c);\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n return [screenColumn, column];\n };\n };\n EditSession.prototype.destroy = function () {\n if (!this.destroyed) {\n this.bgTokenizer.setDocument(null);\n this.bgTokenizer.cleanup();\n this.destroyed = true;\n }\n this.$stopWorker();\n this.removeAllListeners();\n if (this.doc) {\n this.doc.off(\"change\", this.$onChange);\n }\n this.selection.detach();\n };\n return EditSession;\n}());\nEditSession.$uid = 0;\nEditSession.prototype.$modes = config.$modes;\nEditSession.prototype.getValue = EditSession.prototype.toString;\nEditSession.prototype.$defaultUndoManager = {\n undo: function () { },\n redo: function () { },\n hasUndo: function () { },\n hasRedo: function () { },\n reset: function () { },\n add: function () { },\n addSelection: function () { },\n startNewGroup: function () { },\n addSession: function () { }\n};\nEditSession.prototype.$overwrite = false;\nEditSession.prototype.$mode = null;\nEditSession.prototype.$modeId = null;\nEditSession.prototype.$scrollTop = 0;\nEditSession.prototype.$scrollLeft = 0;\nEditSession.prototype.$wrapLimit = 80;\nEditSession.prototype.$useWrapMode = false;\nEditSession.prototype.$wrapLimitRange = {\n min: null,\n max: null\n};\nEditSession.prototype.lineWidgets = null;\nEditSession.prototype.isFullWidth = isFullWidth;\noop.implement(EditSession.prototype, EventEmitter);\nvar CHAR = 1, CHAR_EXT = 2, PLACEHOLDER_START = 3, PLACEHOLDER_BODY = 4, PUNCTUATION = 9, SPACE = 10, TAB = 11, TAB_SPACE = 12;\nfunction isFullWidth(c) {\n if (c < 0x1100)\n return false;\n return c >= 0x1100 && c <= 0x115F ||\n c >= 0x11A3 && c <= 0x11A7 ||\n c >= 0x11FA && c <= 0x11FF ||\n c >= 0x2329 && c <= 0x232A ||\n c >= 0x2E80 && c <= 0x2E99 ||\n c >= 0x2E9B && c <= 0x2EF3 ||\n c >= 0x2F00 && c <= 0x2FD5 ||\n c >= 0x2FF0 && c <= 0x2FFB ||\n c >= 0x3000 && c <= 0x303E ||\n c >= 0x3041 && c <= 0x3096 ||\n c >= 0x3099 && c <= 0x30FF ||\n c >= 0x3105 && c <= 0x312D ||\n c >= 0x3131 && c <= 0x318E ||\n c >= 0x3190 && c <= 0x31BA ||\n c >= 0x31C0 && c <= 0x31E3 ||\n c >= 0x31F0 && c <= 0x321E ||\n c >= 0x3220 && c <= 0x3247 ||\n c >= 0x3250 && c <= 0x32FE ||\n c >= 0x3300 && c <= 0x4DBF ||\n c >= 0x4E00 && c <= 0xA48C ||\n c >= 0xA490 && c <= 0xA4C6 ||\n c >= 0xA960 && c <= 0xA97C ||\n c >= 0xAC00 && c <= 0xD7A3 ||\n c >= 0xD7B0 && c <= 0xD7C6 ||\n c >= 0xD7CB && c <= 0xD7FB ||\n c >= 0xF900 && c <= 0xFAFF ||\n c >= 0xFE10 && c <= 0xFE19 ||\n c >= 0xFE30 && c <= 0xFE52 ||\n c >= 0xFE54 && c <= 0xFE66 ||\n c >= 0xFE68 && c <= 0xFE6B ||\n c >= 0xFF01 && c <= 0xFF60 ||\n c >= 0xFFE0 && c <= 0xFFE6;\n}\nrequire(\"./edit_session/folding\").Folding.call(EditSession.prototype);\nrequire(\"./edit_session/bracket_match\").BracketMatch.call(EditSession.prototype);\nconfig.defineOptions(EditSession.prototype, \"session\", {\n wrap: {\n set: function (value) {\n if (!value || value == \"off\")\n value = false;\n else if (value == \"free\")\n value = true;\n else if (value == \"printMargin\")\n value = -1;\n else if (typeof value == \"string\")\n value = parseInt(value, 10) || false;\n if (this.$wrap == value)\n return;\n this.$wrap = value;\n if (!value) {\n this.setUseWrapMode(false);\n }\n else {\n var col = typeof value == \"number\" ? value : null;\n this.setWrapLimitRange(col, col);\n this.setUseWrapMode(true);\n }\n },\n get: function () {\n if (this.getUseWrapMode()) {\n if (this.$wrap == -1)\n return \"printMargin\";\n if (!this.getWrapLimitRange().min)\n return \"free\";\n return this.$wrap;\n }\n return \"off\";\n },\n handlesSet: true\n },\n wrapMethod: {\n set: function (val) {\n val = val == \"auto\"\n ? this.$mode.type != \"text\"\n : val != \"text\";\n if (val != this.$wrapAsCode) {\n this.$wrapAsCode = val;\n if (this.$useWrapMode) {\n this.$useWrapMode = false;\n this.setUseWrapMode(true);\n }\n }\n },\n initialValue: \"auto\"\n },\n indentedSoftWrap: {\n set: function () {\n if (this.$useWrapMode) {\n this.$useWrapMode = false;\n this.setUseWrapMode(true);\n }\n },\n initialValue: true\n },\n firstLineNumber: {\n set: function () { this._signal(\"changeBreakpoint\"); },\n initialValue: 1\n },\n useWorker: {\n set: function (useWorker) {\n this.$useWorker = useWorker;\n this.$stopWorker();\n if (useWorker)\n this.$startWorker();\n },\n initialValue: true\n },\n useSoftTabs: { initialValue: true },\n tabSize: {\n set: function (tabSize) {\n tabSize = parseInt(tabSize);\n if (tabSize > 0 && this.$tabSize !== tabSize) {\n this.$modified = true;\n this.$rowLengthCache = [];\n this.$tabSize = tabSize;\n this._signal(\"changeTabSize\");\n }\n },\n initialValue: 4,\n handlesSet: true\n },\n navigateWithinSoftTabs: { initialValue: false },\n foldStyle: {\n set: function (val) { this.setFoldStyle(val); },\n handlesSet: true\n },\n overwrite: {\n set: function (val) { this._signal(\"changeOverwrite\"); },\n initialValue: false\n },\n newLineMode: {\n set: function (val) { this.doc.setNewLineMode(val); },\n get: function () { return this.doc.getNewLineMode(); },\n handlesSet: true\n },\n mode: {\n set: function (val) { this.setMode(val); },\n get: function () { return this.$modeId; },\n handlesSet: true\n }\n});\nexports.EditSession = EditSession;\n\n});\n\nace.define(\"ace/search\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar lang = require(\"./lib/lang\");\nvar oop = require(\"./lib/oop\");\nvar Range = require(\"./range\").Range;\nvar Search = /** @class */ (function () {\n function Search() {\n this.$options = {};\n }\n Search.prototype.set = function (options) {\n oop.mixin(this.$options, options);\n return this;\n };\n Search.prototype.getOptions = function () {\n return lang.copyObject(this.$options);\n };\n Search.prototype.setOptions = function (options) {\n this.$options = options;\n };\n Search.prototype.find = function (session) {\n var options = this.$options;\n var iterator = this.$matchIterator(session, options);\n if (!iterator)\n return false;\n var firstRange = null;\n iterator.forEach(function (sr, sc, er, ec) {\n firstRange = new Range(sr, sc, er, ec);\n if (sc == ec && options.start && options.start.start\n && options.skipCurrent != false && firstRange.isEqual(options.start)) {\n firstRange = null;\n return false;\n }\n return true;\n });\n return firstRange;\n };\n Search.prototype.findAll = function (session) {\n var options = this.$options;\n if (!options.needle)\n return [];\n this.$assembleRegExp(options);\n var range = options.range;\n var lines = range\n ? session.getLines(range.start.row, range.end.row)\n : session.doc.getAllLines();\n var ranges = [];\n var re = options.re;\n if (options.$isMultiLine) {\n var len = re.length;\n var maxRow = lines.length - len;\n var prevRange;\n outer: for (var row = re.offset || 0; row <= maxRow; row++) {\n for (var j = 0; j < len; j++)\n if (lines[row + j].search(re[j]) == -1)\n continue outer;\n var startLine = lines[row];\n var line = lines[row + len - 1];\n var startIndex = startLine.length - startLine.match(re[0])[0].length;\n var endIndex = line.match(re[len - 1])[0].length;\n if (prevRange && prevRange.end.row === row &&\n prevRange.end.column > startIndex) {\n continue;\n }\n ranges.push(prevRange = new Range(row, startIndex, row + len - 1, endIndex));\n if (len > 2)\n row = row + len - 2;\n }\n }\n else {\n for (var i = 0; i < lines.length; i++) {\n var matches = lang.getMatchOffsets(lines[i], re);\n for (var j = 0; j < matches.length; j++) {\n var match = matches[j];\n ranges.push(new Range(i, match.offset, i, match.offset + match.length));\n }\n }\n }\n if (range) {\n var startColumn = range.start.column;\n var endColumn = range.end.column;\n var i = 0, j = ranges.length - 1;\n while (i < j && ranges[i].start.column < startColumn && ranges[i].start.row == 0)\n i++;\n var endRow = range.end.row - range.start.row;\n while (i < j && ranges[j].end.column > endColumn && ranges[j].end.row == endRow)\n j--;\n ranges = ranges.slice(i, j + 1);\n for (i = 0, j = ranges.length; i < j; i++) {\n ranges[i].start.row += range.start.row;\n ranges[i].end.row += range.start.row;\n }\n }\n return ranges;\n };\n Search.prototype.replace = function (input, replacement) {\n var options = this.$options;\n var re = this.$assembleRegExp(options);\n if (options.$isMultiLine)\n return replacement;\n if (!re)\n return;\n var match = re.exec(input);\n if (!match || match[0].length != input.length)\n return null;\n replacement = input.replace(re, replacement);\n if (options.preserveCase) {\n replacement = replacement.split(\"\");\n for (var i = Math.min(input.length, input.length); i--;) {\n var ch = input[i];\n if (ch && ch.toLowerCase() != ch)\n replacement[i] = replacement[i].toUpperCase();\n else\n replacement[i] = replacement[i].toLowerCase();\n }\n replacement = replacement.join(\"\");\n }\n return replacement;\n };\n Search.prototype.$assembleRegExp = function (options, $disableFakeMultiline) {\n if (options.needle instanceof RegExp)\n return options.re = options.needle;\n var needle = options.needle;\n if (!options.needle)\n return options.re = false;\n if (!options.regExp)\n needle = lang.escapeRegExp(needle);\n var modifier = options.caseSensitive ? \"gm\" : \"gmi\";\n try {\n new RegExp(needle, \"u\");\n options.$supportsUnicodeFlag = true;\n modifier += \"u\";\n }\n catch (e) {\n options.$supportsUnicodeFlag = false; //left for backward compatibility with previous versions for cases like /ab\\{2}/gu\n }\n if (options.wholeWord)\n needle = addWordBoundary(needle, options);\n options.$isMultiLine = !$disableFakeMultiline && /[\\n\\r]/.test(needle);\n if (options.$isMultiLine)\n return options.re = this.$assembleMultilineRegExp(needle, modifier);\n try {\n var re = new RegExp(needle, modifier);\n }\n catch (e) {\n re = false;\n }\n return options.re = re;\n };\n Search.prototype.$assembleMultilineRegExp = function (needle, modifier) {\n var parts = needle.replace(/\\r\\n|\\r|\\n/g, \"$\\n^\").split(\"\\n\");\n var re = [];\n for (var i = 0; i < parts.length; i++)\n try {\n re.push(new RegExp(parts[i], modifier));\n }\n catch (e) {\n return false;\n }\n return re;\n };\n Search.prototype.$matchIterator = function (session, options) {\n var re = this.$assembleRegExp(options);\n if (!re)\n return false;\n var backwards = options.backwards == true;\n var skipCurrent = options.skipCurrent != false;\n var supportsUnicodeFlag = re.unicode;\n var range = options.range;\n var start = options.start;\n if (!start)\n start = range ? range[backwards ? \"end\" : \"start\"] : session.selection.getRange();\n if (start.start)\n start = start[skipCurrent != backwards ? \"end\" : \"start\"];\n var firstRow = range ? range.start.row : 0;\n var lastRow = range ? range.end.row : session.getLength() - 1;\n if (backwards) {\n var forEach = function (callback) {\n var row = start.row;\n if (forEachInLine(row, start.column, callback))\n return;\n for (row--; row >= firstRow; row--)\n if (forEachInLine(row, Number.MAX_VALUE, callback))\n return;\n if (options.wrap == false)\n return;\n for (row = lastRow, firstRow = start.row; row >= firstRow; row--)\n if (forEachInLine(row, Number.MAX_VALUE, callback))\n return;\n };\n }\n else {\n var forEach = function (callback) {\n var row = start.row;\n if (forEachInLine(row, start.column, callback))\n return;\n for (row = row + 1; row <= lastRow; row++)\n if (forEachInLine(row, 0, callback))\n return;\n if (options.wrap == false)\n return;\n for (row = firstRow, lastRow = start.row; row <= lastRow; row++)\n if (forEachInLine(row, 0, callback))\n return;\n };\n }\n if (options.$isMultiLine) {\n var len = re.length;\n var forEachInLine = function (row, offset, callback) {\n var startRow = backwards ? row - len + 1 : row;\n if (startRow < 0 || startRow + len > session.getLength())\n return;\n var line = session.getLine(startRow);\n var startIndex = line.search(re[0]);\n if (!backwards && startIndex < offset || startIndex === -1)\n return;\n for (var i = 1; i < len; i++) {\n line = session.getLine(startRow + i);\n if (line.search(re[i]) == -1)\n return;\n }\n var endIndex = line.match(re[len - 1])[0].length;\n if (backwards && endIndex > offset)\n return;\n if (callback(startRow, startIndex, startRow + len - 1, endIndex))\n return true;\n };\n }\n else if (backwards) {\n var forEachInLine = function (row, endIndex, callback) {\n var line = session.getLine(row);\n var matches = [];\n var m, last = 0;\n re.lastIndex = 0;\n while ((m = re.exec(line))) {\n var length = m[0].length;\n last = m.index;\n if (!length) {\n if (last >= line.length)\n break;\n re.lastIndex = last += lang.skipEmptyMatch(line, last, supportsUnicodeFlag);\n }\n if (m.index + length > endIndex)\n break;\n matches.push(m.index, length);\n }\n for (var i = matches.length - 1; i >= 0; i -= 2) {\n var column = matches[i - 1];\n var length = matches[i];\n if (callback(row, column, row, column + length))\n return true;\n }\n };\n }\n else {\n var forEachInLine = function (row, startIndex, callback) {\n var line = session.getLine(row);\n var last;\n var m;\n re.lastIndex = startIndex;\n while ((m = re.exec(line))) {\n var length = m[0].length;\n last = m.index;\n if (callback(row, last, row, last + length))\n return true;\n if (!length) {\n re.lastIndex = last += lang.skipEmptyMatch(line, last, supportsUnicodeFlag);\n if (last >= line.length)\n return false;\n }\n }\n };\n }\n return { forEach: forEach };\n };\n return Search;\n}());\nfunction addWordBoundary(needle, options) {\n var supportsLookbehind = lang.supportsLookbehind();\n function wordBoundary(c, firstChar) {\n if (firstChar === void 0) { firstChar = true; }\n var wordRegExp = supportsLookbehind && options.$supportsUnicodeFlag ? new RegExp(\"[\\\\p{L}\\\\p{N}_]\", \"u\") : new RegExp(\"\\\\w\");\n if (wordRegExp.test(c) || options.regExp) {\n if (supportsLookbehind && options.$supportsUnicodeFlag) {\n if (firstChar)\n return \"(?<=^|[^\\\\p{L}\\\\p{N}_])\";\n return \"(?=[^\\\\p{L}\\\\p{N}_]|$)\";\n }\n return \"\\\\b\";\n }\n return \"\";\n }\n var needleArray = Array.from(needle);\n var firstChar = needleArray[0];\n var lastChar = needleArray[needleArray.length - 1];\n return wordBoundary(firstChar) + needle + wordBoundary(lastChar, false);\n}\nexports.Search = Search;\n\n});\n\nace.define(\"ace/keyboard/hash_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar keyUtil = require(\"../lib/keys\");\nvar useragent = require(\"../lib/useragent\");\nvar KEY_MODS = keyUtil.KEY_MODS;\nvar MultiHashHandler = /** @class */ (function () {\n function MultiHashHandler(config, platform) {\n this.$init(config, platform, false);\n }\n MultiHashHandler.prototype.$init = function (config, platform, $singleCommand) {\n this.platform = platform || (useragent.isMac ? \"mac\" : \"win\");\n this.commands = {};\n this.commandKeyBinding = {};\n this.addCommands(config);\n this.$singleCommand = $singleCommand;\n };\n MultiHashHandler.prototype.addCommand = function (command) {\n if (this.commands[command.name])\n this.removeCommand(command);\n this.commands[command.name] = command;\n if (command.bindKey)\n this._buildKeyHash(command);\n };\n MultiHashHandler.prototype.removeCommand = function (command, keepCommand) {\n var name = command && (typeof command === 'string' ? command : command.name);\n command = this.commands[name];\n if (!keepCommand)\n delete this.commands[name];\n var ckb = this.commandKeyBinding;\n for (var keyId in ckb) {\n var cmdGroup = ckb[keyId];\n if (cmdGroup == command) {\n delete ckb[keyId];\n }\n else if (Array.isArray(cmdGroup)) {\n var i = cmdGroup.indexOf(command);\n if (i != -1) {\n cmdGroup.splice(i, 1);\n if (cmdGroup.length == 1)\n ckb[keyId] = cmdGroup[0];\n }\n }\n }\n };\n MultiHashHandler.prototype.bindKey = function (key, command, position) {\n if (typeof key == \"object\" && key) {\n if (position == undefined)\n position = key.position;\n key = key[this.platform];\n }\n if (!key)\n return;\n if (typeof command == \"function\")\n return this.addCommand({ exec: command, bindKey: key, name: command.name || key });\n key.split(\"|\").forEach(function (keyPart) {\n var chain = \"\";\n if (keyPart.indexOf(\" \") != -1) {\n var parts = keyPart.split(/\\s+/);\n keyPart = parts.pop();\n parts.forEach(function (keyPart) {\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n chain += (chain ? \" \" : \"\") + id;\n this._addCommandToBinding(chain, \"chainKeys\");\n }, this);\n chain += \" \";\n }\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n this._addCommandToBinding(chain + id, command, position);\n }, this);\n };\n MultiHashHandler.prototype._addCommandToBinding = function (keyId, command, position) {\n var ckb = this.commandKeyBinding, i;\n if (!command) {\n delete ckb[keyId];\n }\n else if (!ckb[keyId] || this.$singleCommand) {\n ckb[keyId] = command;\n }\n else {\n if (!Array.isArray(ckb[keyId])) {\n ckb[keyId] = [ckb[keyId]];\n }\n else if ((i = ckb[keyId].indexOf(command)) != -1) {\n ckb[keyId].splice(i, 1);\n }\n if (typeof position != \"number\") {\n position = getPosition(command);\n }\n var commands = ckb[keyId];\n for (i = 0; i < commands.length; i++) {\n var other = commands[i];\n var otherPos = getPosition(other);\n if (otherPos > position)\n break;\n }\n commands.splice(i, 0, command);\n }\n };\n MultiHashHandler.prototype.addCommands = function (commands) {\n commands && Object.keys(commands).forEach(function (name) {\n var command = commands[name];\n if (!command)\n return;\n if (typeof command === \"string\")\n return this.bindKey(command, name);\n if (typeof command === \"function\")\n command = { exec: command };\n if (typeof command !== \"object\")\n return;\n if (!command.name)\n command.name = name;\n this.addCommand(command);\n }, this);\n };\n MultiHashHandler.prototype.removeCommands = function (commands) {\n Object.keys(commands).forEach(function (name) {\n this.removeCommand(commands[name]);\n }, this);\n };\n MultiHashHandler.prototype.bindKeys = function (keyList) {\n Object.keys(keyList).forEach(function (key) {\n this.bindKey(key, keyList[key]);\n }, this);\n };\n MultiHashHandler.prototype._buildKeyHash = function (command) {\n this.bindKey(command.bindKey, command);\n };\n MultiHashHandler.prototype.parseKeys = function (keys) {\n var parts = keys.toLowerCase().split(/[\\-\\+]([\\-\\+])?/).filter(function (x) { return x; });\n var key = parts.pop();\n var keyCode = keyUtil[key];\n if (keyUtil.FUNCTION_KEYS[keyCode])\n key = keyUtil.FUNCTION_KEYS[keyCode].toLowerCase();\n else if (!parts.length)\n return { key: key, hashId: -1 };\n else if (parts.length == 1 && parts[0] == \"shift\")\n return { key: key.toUpperCase(), hashId: -1 };\n var hashId = 0;\n for (var i = parts.length; i--;) {\n var modifier = keyUtil.KEY_MODS[parts[i]];\n if (modifier == null) {\n if (typeof console != \"undefined\")\n console.error(\"invalid modifier \" + parts[i] + \" in \" + keys);\n return false;\n }\n hashId |= modifier;\n }\n return { key: key, hashId: hashId };\n };\n MultiHashHandler.prototype.findKeyCommand = function (hashId, keyString) {\n var key = KEY_MODS[hashId] + keyString;\n return this.commandKeyBinding[key];\n };\n MultiHashHandler.prototype.handleKeyboard = function (data, hashId, keyString, keyCode) {\n if (keyCode < 0)\n return;\n var key = KEY_MODS[hashId] + keyString;\n var command = this.commandKeyBinding[key];\n if (data.$keyChain) {\n data.$keyChain += \" \" + key;\n command = this.commandKeyBinding[data.$keyChain] || command;\n }\n if (command) {\n if (command == \"chainKeys\" || command[command.length - 1] == \"chainKeys\") {\n data.$keyChain = data.$keyChain || key;\n return { command: \"null\" };\n }\n }\n if (data.$keyChain) {\n if ((!hashId || hashId == 4) && keyString.length == 1)\n data.$keyChain = data.$keyChain.slice(0, -key.length - 1); // wait for input\n else if (hashId == -1 || keyCode > 0)\n data.$keyChain = \"\"; // reset keyChain\n }\n return { command: command };\n };\n MultiHashHandler.prototype.getStatusText = function (editor, data) {\n return data.$keyChain || \"\";\n };\n return MultiHashHandler;\n}());\nfunction getPosition(command) {\n return typeof command == \"object\" && command.bindKey\n && command.bindKey.position\n || (command.isDefault ? -100 : 0);\n}\nvar HashHandler = /** @class */ (function (_super) {\n __extends(HashHandler, _super);\n function HashHandler(config, platform) {\n var _this = _super.call(this, config, platform) || this;\n _this.$singleCommand = true;\n return _this;\n }\n return HashHandler;\n}(MultiHashHandler));\nHashHandler.call = function (thisArg, config, platform) {\n MultiHashHandler.prototype.$init.call(thisArg, config, platform, true);\n};\nMultiHashHandler.call = function (thisArg, config, platform) {\n MultiHashHandler.prototype.$init.call(thisArg, config, platform, false);\n};\nexports.HashHandler = HashHandler;\nexports.MultiHashHandler = MultiHashHandler;\n\n});\n\nace.define(\"ace/commands/command_manager\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/keyboard/hash_handler\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar oop = require(\"../lib/oop\");\nvar MultiHashHandler = require(\"../keyboard/hash_handler\").MultiHashHandler;\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar CommandManager = /** @class */ (function (_super) {\n __extends(CommandManager, _super);\n function CommandManager(platform, commands) {\n var _this = _super.call(this, commands, platform) || this;\n _this.byName = _this.commands;\n _this.setDefaultHandler(\"exec\", function (e) {\n if (!e.args) {\n return e.command.exec(e.editor, {}, e.event, true);\n }\n return e.command.exec(e.editor, e.args, e.event, false);\n });\n return _this;\n }\n CommandManager.prototype.exec = function (command, editor, args) {\n if (Array.isArray(command)) {\n for (var i = command.length; i--;) {\n if (this.exec(command[i], editor, args))\n return true;\n }\n return false;\n }\n if (typeof command === \"string\")\n command = this.commands[command];\n if (!command)\n return false;\n if (editor && editor.$readOnly && !command.readOnly)\n return false;\n if (this.$checkCommandState != false && command.isAvailable && !command.isAvailable(editor))\n return false;\n var e = { editor: editor, command: command, args: args };\n e.returnValue = this._emit(\"exec\", e);\n this._signal(\"afterExec\", e);\n return e.returnValue === false ? false : true;\n };\n CommandManager.prototype.toggleRecording = function (editor) {\n if (this.$inReplay)\n return;\n editor && editor._emit(\"changeStatus\");\n if (this.recording) {\n this.macro.pop();\n this.off(\"exec\", this.$addCommandToMacro);\n if (!this.macro.length)\n this.macro = this.oldMacro;\n return this.recording = false;\n }\n if (!this.$addCommandToMacro) {\n this.$addCommandToMacro = function (e) {\n this.macro.push([e.command, e.args]);\n }.bind(this);\n }\n this.oldMacro = this.macro;\n this.macro = [];\n this.on(\"exec\", this.$addCommandToMacro);\n return this.recording = true;\n };\n CommandManager.prototype.replay = function (editor) {\n if (this.$inReplay || !this.macro)\n return;\n if (this.recording)\n return this.toggleRecording(editor);\n try {\n this.$inReplay = true;\n this.macro.forEach(function (x) {\n if (typeof x == \"string\")\n this.exec(x, editor);\n else\n this.exec(x[0], editor, x[1]);\n }, this);\n }\n finally {\n this.$inReplay = false;\n }\n };\n CommandManager.prototype.trimMacro = function (m) {\n return m.map(function (x) {\n if (typeof x[0] != \"string\")\n x[0] = x[0].name;\n if (!x[1])\n x = x[0];\n return x;\n });\n };\n return CommandManager;\n}(MultiHashHandler));\noop.implement(CommandManager.prototype, EventEmitter);\nexports.CommandManager = CommandManager;\n\n});\n\nace.define(\"ace/commands/default_commands\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/config\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar lang = require(\"../lib/lang\");\nvar config = require(\"../config\");\nvar Range = require(\"../range\").Range;\nfunction bindKey(win, mac) {\n return { win: win, mac: mac };\n}\nexports.commands = [{\n name: \"showSettingsMenu\",\n description: \"Show settings menu\",\n bindKey: bindKey(\"Ctrl-,\", \"Command-,\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/settings_menu\", function (module) {\n module.init(editor);\n editor.showSettingsMenu();\n });\n },\n readOnly: true\n }, {\n name: \"goToNextError\",\n description: \"Go to next error\",\n bindKey: bindKey(\"Alt-E\", \"F4\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/error_marker\", function (module) {\n module.showErrorMarker(editor, 1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"goToPreviousError\",\n description: \"Go to previous error\",\n bindKey: bindKey(\"Alt-Shift-E\", \"Shift-F4\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/error_marker\", function (module) {\n module.showErrorMarker(editor, -1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"selectall\",\n description: \"Select all\",\n bindKey: bindKey(\"Ctrl-A\", \"Command-A\"),\n exec: function (editor) { editor.selectAll(); },\n readOnly: true\n }, {\n name: \"centerselection\",\n description: \"Center selection\",\n bindKey: bindKey(null, \"Ctrl-L\"),\n exec: function (editor) { editor.centerSelection(); },\n readOnly: true\n }, {\n name: \"gotoline\",\n description: \"Go to line...\",\n bindKey: bindKey(\"Ctrl-L\", \"Command-L\"),\n exec: function (editor, line) {\n if (typeof line === \"number\" && !isNaN(line))\n editor.gotoLine(line);\n editor.prompt({ $type: \"gotoLine\" });\n },\n readOnly: true\n }, {\n name: \"fold\",\n bindKey: bindKey(\"Alt-L|Ctrl-F1\", \"Command-Alt-L|Command-F1\"),\n exec: function (editor) { editor.session.toggleFold(false); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"unfold\",\n bindKey: bindKey(\"Alt-Shift-L|Ctrl-Shift-F1\", \"Command-Alt-Shift-L|Command-Shift-F1\"),\n exec: function (editor) { editor.session.toggleFold(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"toggleFoldWidget\",\n description: \"Toggle fold widget\",\n bindKey: bindKey(\"F2\", \"F2\"),\n exec: function (editor) { editor.session.toggleFoldWidget(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"toggleParentFoldWidget\",\n description: \"Toggle parent fold widget\",\n bindKey: bindKey(\"Alt-F2\", \"Alt-F2\"),\n exec: function (editor) { editor.session.toggleFoldWidget(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"foldall\",\n description: \"Fold all\",\n bindKey: bindKey(null, \"Ctrl-Command-Option-0\"),\n exec: function (editor) { editor.session.foldAll(); },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"foldAllComments\",\n description: \"Fold all comments\",\n bindKey: bindKey(null, \"Ctrl-Command-Option-0\"),\n exec: function (editor) { editor.session.foldAllComments(); },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"foldOther\",\n description: \"Fold other\",\n bindKey: bindKey(\"Alt-0\", \"Command-Option-0\"),\n exec: function (editor) {\n editor.session.foldAll();\n editor.session.unfold(editor.selection.getAllRanges());\n },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"unfoldall\",\n description: \"Unfold all\",\n bindKey: bindKey(\"Alt-Shift-0\", \"Command-Option-Shift-0\"),\n exec: function (editor) { editor.session.unfold(); },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"findnext\",\n description: \"Find next\",\n bindKey: bindKey(\"Ctrl-K\", \"Command-G\"),\n exec: function (editor) { editor.findNext(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"findprevious\",\n description: \"Find previous\",\n bindKey: bindKey(\"Ctrl-Shift-K\", \"Command-Shift-G\"),\n exec: function (editor) { editor.findPrevious(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"selectOrFindNext\",\n description: \"Select or find next\",\n bindKey: bindKey(\"Alt-K\", \"Ctrl-G\"),\n exec: function (editor) {\n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findNext();\n },\n readOnly: true\n }, {\n name: \"selectOrFindPrevious\",\n description: \"Select or find previous\",\n bindKey: bindKey(\"Alt-Shift-K\", \"Ctrl-Shift-G\"),\n exec: function (editor) {\n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findPrevious();\n },\n readOnly: true\n }, {\n name: \"find\",\n description: \"Find\",\n bindKey: bindKey(\"Ctrl-F\", \"Command-F\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/searchbox\", function (e) { e.Search(editor); });\n },\n readOnly: true\n }, {\n name: \"overwrite\",\n description: \"Overwrite\",\n bindKey: \"Insert\",\n exec: function (editor) { editor.toggleOverwrite(); },\n readOnly: true\n }, {\n name: \"selecttostart\",\n description: \"Select to start\",\n bindKey: bindKey(\"Ctrl-Shift-Home\", \"Command-Shift-Home|Command-Shift-Up\"),\n exec: function (editor) { editor.getSelection().selectFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"gotostart\",\n description: \"Go to start\",\n bindKey: bindKey(\"Ctrl-Home\", \"Command-Home|Command-Up\"),\n exec: function (editor) { editor.navigateFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"selectup\",\n description: \"Select up\",\n bindKey: bindKey(\"Shift-Up\", \"Shift-Up|Ctrl-Shift-P\"),\n exec: function (editor) { editor.getSelection().selectUp(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"golineup\",\n description: \"Go line up\",\n bindKey: bindKey(\"Up\", \"Up|Ctrl-P\"),\n exec: function (editor, args) { editor.navigateUp(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selecttoend\",\n description: \"Select to end\",\n bindKey: bindKey(\"Ctrl-Shift-End\", \"Command-Shift-End|Command-Shift-Down\"),\n exec: function (editor) { editor.getSelection().selectFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"gotoend\",\n description: \"Go to end\",\n bindKey: bindKey(\"Ctrl-End\", \"Command-End|Command-Down\"),\n exec: function (editor) { editor.navigateFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"selectdown\",\n description: \"Select down\",\n bindKey: bindKey(\"Shift-Down\", \"Shift-Down|Ctrl-Shift-N\"),\n exec: function (editor) { editor.getSelection().selectDown(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"golinedown\",\n description: \"Go line down\",\n bindKey: bindKey(\"Down\", \"Down|Ctrl-N\"),\n exec: function (editor, args) { editor.navigateDown(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectwordleft\",\n description: \"Select word left\",\n bindKey: bindKey(\"Ctrl-Shift-Left\", \"Option-Shift-Left\"),\n exec: function (editor) { editor.getSelection().selectWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotowordleft\",\n description: \"Go to word left\",\n bindKey: bindKey(\"Ctrl-Left\", \"Option-Left\"),\n exec: function (editor) { editor.navigateWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selecttolinestart\",\n description: \"Select to line start\",\n bindKey: bindKey(\"Alt-Shift-Left\", \"Command-Shift-Left|Ctrl-Shift-A\"),\n exec: function (editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotolinestart\",\n description: \"Go to line start\",\n bindKey: bindKey(\"Alt-Left|Home\", \"Command-Left|Home|Ctrl-A\"),\n exec: function (editor) { editor.navigateLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectleft\",\n description: \"Select left\",\n bindKey: bindKey(\"Shift-Left\", \"Shift-Left|Ctrl-Shift-B\"),\n exec: function (editor) { editor.getSelection().selectLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotoleft\",\n description: \"Go to left\",\n bindKey: bindKey(\"Left\", \"Left|Ctrl-B\"),\n exec: function (editor, args) { editor.navigateLeft(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectwordright\",\n description: \"Select word right\",\n bindKey: bindKey(\"Ctrl-Shift-Right\", \"Option-Shift-Right\"),\n exec: function (editor) { editor.getSelection().selectWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotowordright\",\n description: \"Go to word right\",\n bindKey: bindKey(\"Ctrl-Right\", \"Option-Right\"),\n exec: function (editor) { editor.navigateWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selecttolineend\",\n description: \"Select to line end\",\n bindKey: bindKey(\"Alt-Shift-Right\", \"Command-Shift-Right|Shift-End|Ctrl-Shift-E\"),\n exec: function (editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotolineend\",\n description: \"Go to line end\",\n bindKey: bindKey(\"Alt-Right|End\", \"Command-Right|End|Ctrl-E\"),\n exec: function (editor) { editor.navigateLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectright\",\n description: \"Select right\",\n bindKey: bindKey(\"Shift-Right\", \"Shift-Right\"),\n exec: function (editor) { editor.getSelection().selectRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotoright\",\n description: \"Go to right\",\n bindKey: bindKey(\"Right\", \"Right|Ctrl-F\"),\n exec: function (editor, args) { editor.navigateRight(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectpagedown\",\n description: \"Select page down\",\n bindKey: \"Shift-PageDown\",\n exec: function (editor) { editor.selectPageDown(); },\n readOnly: true\n }, {\n name: \"pagedown\",\n description: \"Page down\",\n bindKey: bindKey(null, \"Option-PageDown\"),\n exec: function (editor) { editor.scrollPageDown(); },\n readOnly: true\n }, {\n name: \"gotopagedown\",\n description: \"Go to page down\",\n bindKey: bindKey(\"PageDown\", \"PageDown|Ctrl-V\"),\n exec: function (editor) { editor.gotoPageDown(); },\n readOnly: true\n }, {\n name: \"selectpageup\",\n description: \"Select page up\",\n bindKey: \"Shift-PageUp\",\n exec: function (editor) { editor.selectPageUp(); },\n readOnly: true\n }, {\n name: \"pageup\",\n description: \"Page up\",\n bindKey: bindKey(null, \"Option-PageUp\"),\n exec: function (editor) { editor.scrollPageUp(); },\n readOnly: true\n }, {\n name: \"gotopageup\",\n description: \"Go to page up\",\n bindKey: \"PageUp\",\n exec: function (editor) { editor.gotoPageUp(); },\n readOnly: true\n }, {\n name: \"scrollup\",\n description: \"Scroll up\",\n bindKey: bindKey(\"Ctrl-Up\", null),\n exec: function (e) { e.renderer.scrollBy(0, -2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n }, {\n name: \"scrolldown\",\n description: \"Scroll down\",\n bindKey: bindKey(\"Ctrl-Down\", null),\n exec: function (e) { e.renderer.scrollBy(0, 2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n }, {\n name: \"selectlinestart\",\n description: \"Select line start\",\n bindKey: \"Shift-Home\",\n exec: function (editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectlineend\",\n description: \"Select line end\",\n bindKey: \"Shift-End\",\n exec: function (editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"togglerecording\",\n description: \"Toggle recording\",\n bindKey: bindKey(\"Ctrl-Alt-E\", \"Command-Option-E\"),\n exec: function (editor) { editor.commands.toggleRecording(editor); },\n readOnly: true\n }, {\n name: \"replaymacro\",\n description: \"Replay macro\",\n bindKey: bindKey(\"Ctrl-Shift-E\", \"Command-Shift-E\"),\n exec: function (editor) { editor.commands.replay(editor); },\n readOnly: true\n }, {\n name: \"jumptomatching\",\n description: \"Jump to matching\",\n bindKey: bindKey(\"Ctrl-\\\\|Ctrl-P\", \"Command-\\\\\"),\n exec: function (editor) { editor.jumpToMatching(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"selecttomatching\",\n description: \"Select to matching\",\n bindKey: bindKey(\"Ctrl-Shift-\\\\|Ctrl-Shift-P\", \"Command-Shift-\\\\\"),\n exec: function (editor) { editor.jumpToMatching(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"expandToMatching\",\n description: \"Expand to matching\",\n bindKey: bindKey(\"Ctrl-Shift-M\", \"Ctrl-Shift-M\"),\n exec: function (editor) { editor.jumpToMatching(true, true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"passKeysToBrowser\",\n description: \"Pass keys to browser\",\n bindKey: bindKey(null, null),\n exec: function () { },\n passEvent: true,\n readOnly: true\n }, {\n name: \"copy\",\n description: \"Copy\",\n exec: function (editor) {\n },\n readOnly: true\n },\n {\n name: \"cut\",\n description: \"Cut\",\n exec: function (editor) {\n var cutLine = editor.$copyWithEmptySelection && editor.selection.isEmpty();\n var range = cutLine ? editor.selection.getLineRange() : editor.selection.getRange();\n editor._emit(\"cut\", range);\n if (!range.isEmpty())\n editor.session.remove(range);\n editor.clearSelection();\n },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"paste\",\n description: \"Paste\",\n exec: function (editor, args) {\n editor.$handlePaste(args);\n },\n scrollIntoView: \"cursor\"\n }, {\n name: \"removeline\",\n description: \"Remove line\",\n bindKey: bindKey(\"Ctrl-D\", \"Command-D\"),\n exec: function (editor) { editor.removeLines(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEachLine\"\n }, {\n name: \"duplicateSelection\",\n description: \"Duplicate selection\",\n bindKey: bindKey(\"Ctrl-Shift-D\", \"Command-Shift-D\"),\n exec: function (editor) { editor.duplicateSelection(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"sortlines\",\n description: \"Sort lines\",\n bindKey: bindKey(\"Ctrl-Alt-S\", \"Command-Alt-S\"),\n exec: function (editor) { editor.sortLines(); },\n scrollIntoView: \"selection\",\n multiSelectAction: \"forEachLine\"\n }, {\n name: \"togglecomment\",\n description: \"Toggle comment\",\n bindKey: bindKey(\"Ctrl-/\", \"Command-/\"),\n exec: function (editor) { editor.toggleCommentLines(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"toggleBlockComment\",\n description: \"Toggle block comment\",\n bindKey: bindKey(\"Ctrl-Shift-/\", \"Command-Shift-/\"),\n exec: function (editor) { editor.toggleBlockComment(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"modifyNumberUp\",\n description: \"Modify number up\",\n bindKey: bindKey(\"Ctrl-Shift-Up\", \"Alt-Shift-Up\"),\n exec: function (editor) { editor.modifyNumber(1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"modifyNumberDown\",\n description: \"Modify number down\",\n bindKey: bindKey(\"Ctrl-Shift-Down\", \"Alt-Shift-Down\"),\n exec: function (editor) { editor.modifyNumber(-1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"replace\",\n description: \"Replace\",\n bindKey: bindKey(\"Ctrl-H\", \"Command-Option-F\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/searchbox\", function (e) { e.Search(editor, true); });\n }\n }, {\n name: \"undo\",\n description: \"Undo\",\n bindKey: bindKey(\"Ctrl-Z\", \"Command-Z\"),\n exec: function (editor) { editor.undo(); }\n }, {\n name: \"redo\",\n description: \"Redo\",\n bindKey: bindKey(\"Ctrl-Shift-Z|Ctrl-Y\", \"Command-Shift-Z|Command-Y\"),\n exec: function (editor) { editor.redo(); }\n }, {\n name: \"copylinesup\",\n description: \"Copy lines up\",\n bindKey: bindKey(\"Alt-Shift-Up\", \"Command-Option-Up\"),\n exec: function (editor) { editor.copyLinesUp(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"movelinesup\",\n description: \"Move lines up\",\n bindKey: bindKey(\"Alt-Up\", \"Option-Up\"),\n exec: function (editor) { editor.moveLinesUp(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"copylinesdown\",\n description: \"Copy lines down\",\n bindKey: bindKey(\"Alt-Shift-Down\", \"Command-Option-Down\"),\n exec: function (editor) { editor.copyLinesDown(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"movelinesdown\",\n description: \"Move lines down\",\n bindKey: bindKey(\"Alt-Down\", \"Option-Down\"),\n exec: function (editor) { editor.moveLinesDown(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"del\",\n description: \"Delete\",\n bindKey: bindKey(\"Delete\", \"Delete|Ctrl-D|Shift-Delete\"),\n exec: function (editor) { editor.remove(\"right\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"backspace\",\n description: \"Backspace\",\n bindKey: bindKey(\"Shift-Backspace|Backspace\", \"Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H\"),\n exec: function (editor) { editor.remove(\"left\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"cut_or_delete\",\n description: \"Cut or delete\",\n bindKey: bindKey(\"Shift-Delete\", null),\n exec: function (editor) {\n if (editor.selection.isEmpty()) {\n editor.remove(\"left\");\n }\n else {\n return false;\n }\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolinestart\",\n description: \"Remove to line start\",\n bindKey: bindKey(\"Alt-Backspace\", \"Command-Backspace\"),\n exec: function (editor) { editor.removeToLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolineend\",\n description: \"Remove to line end\",\n bindKey: bindKey(\"Alt-Delete\", \"Ctrl-K|Command-Delete\"),\n exec: function (editor) { editor.removeToLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolinestarthard\",\n description: \"Remove to line start hard\",\n bindKey: bindKey(\"Ctrl-Shift-Backspace\", null),\n exec: function (editor) {\n var range = editor.selection.getRange();\n range.start.column = 0;\n editor.session.remove(range);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolineendhard\",\n description: \"Remove to line end hard\",\n bindKey: bindKey(\"Ctrl-Shift-Delete\", null),\n exec: function (editor) {\n var range = editor.selection.getRange();\n range.end.column = Number.MAX_VALUE;\n editor.session.remove(range);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removewordleft\",\n description: \"Remove word left\",\n bindKey: bindKey(\"Ctrl-Backspace\", \"Alt-Backspace|Ctrl-Alt-Backspace\"),\n exec: function (editor) { editor.removeWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removewordright\",\n description: \"Remove word right\",\n bindKey: bindKey(\"Ctrl-Delete\", \"Alt-Delete\"),\n exec: function (editor) { editor.removeWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"outdent\",\n description: \"Outdent\",\n bindKey: bindKey(\"Shift-Tab\", \"Shift-Tab\"),\n exec: function (editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"indent\",\n description: \"Indent\",\n bindKey: bindKey(\"Tab\", \"Tab\"),\n exec: function (editor) { editor.indent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"blockoutdent\",\n description: \"Block outdent\",\n bindKey: bindKey(\"Ctrl-[\", \"Ctrl-[\"),\n exec: function (editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"blockindent\",\n description: \"Block indent\",\n bindKey: bindKey(\"Ctrl-]\", \"Ctrl-]\"),\n exec: function (editor) { editor.blockIndent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"insertstring\",\n description: \"Insert string\",\n exec: function (editor, str) { editor.insert(str); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"inserttext\",\n description: \"Insert text\",\n exec: function (editor, args) {\n editor.insert(lang.stringRepeat(args.text || \"\", args.times || 1));\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"splitline\",\n description: \"Split line\",\n bindKey: bindKey(null, \"Ctrl-O\"),\n exec: function (editor) { editor.splitLine(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"transposeletters\",\n description: \"Transpose letters\",\n bindKey: bindKey(\"Alt-Shift-X\", \"Ctrl-T\"),\n exec: function (editor) { editor.transposeLetters(); },\n multiSelectAction: function (editor) { editor.transposeSelections(1); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"touppercase\",\n description: \"To uppercase\",\n bindKey: bindKey(\"Ctrl-U\", \"Ctrl-U\"),\n exec: function (editor) { editor.toUpperCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"tolowercase\",\n description: \"To lowercase\",\n bindKey: bindKey(\"Ctrl-Shift-U\", \"Ctrl-Shift-U\"),\n exec: function (editor) { editor.toLowerCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"autoindent\",\n description: \"Auto Indent\",\n bindKey: bindKey(null, null),\n exec: function (editor) { editor.autoIndent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"animate\"\n }, {\n name: \"expandtoline\",\n description: \"Expand to line\",\n bindKey: bindKey(\"Ctrl-Shift-L\", \"Command-Shift-L\"),\n exec: function (editor) {\n var range = editor.selection.getRange();\n range.start.column = range.end.column = 0;\n range.end.row++;\n editor.selection.setRange(range, false);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"openlink\",\n bindKey: bindKey(\"Ctrl+F3\", \"F3\"),\n exec: function (editor) { editor.openLink(); }\n }, {\n name: \"joinlines\",\n description: \"Join lines\",\n bindKey: bindKey(null, null),\n exec: function (editor) {\n var isBackwards = editor.selection.isBackwards();\n var selectionStart = isBackwards ? editor.selection.getSelectionLead() : editor.selection.getSelectionAnchor();\n var selectionEnd = isBackwards ? editor.selection.getSelectionAnchor() : editor.selection.getSelectionLead();\n var firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length;\n var selectedText = editor.session.doc.getTextRange(editor.selection.getRange());\n var selectedCount = selectedText.replace(/\\n\\s*/, \" \").length;\n var insertLine = editor.session.doc.getLine(selectionStart.row);\n for (var i = selectionStart.row + 1; i <= selectionEnd.row + 1; i++) {\n var curLine = lang.stringTrimLeft(lang.stringTrimRight(editor.session.doc.getLine(i)));\n if (curLine.length !== 0) {\n curLine = \" \" + curLine;\n }\n insertLine += curLine;\n }\n if (selectionEnd.row + 1 < (editor.session.doc.getLength() - 1)) {\n insertLine += editor.session.doc.getNewLineCharacter();\n }\n editor.clearSelection();\n editor.session.doc.replace(new Range(selectionStart.row, 0, selectionEnd.row + 2, 0), insertLine);\n if (selectedCount > 0) {\n editor.selection.moveCursorTo(selectionStart.row, selectionStart.column);\n editor.selection.selectTo(selectionStart.row, selectionStart.column + selectedCount);\n }\n else {\n firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length > firstLineEndCol ? (firstLineEndCol + 1) : firstLineEndCol;\n editor.selection.moveCursorTo(selectionStart.row, firstLineEndCol);\n }\n },\n multiSelectAction: \"forEach\",\n readOnly: true\n }, {\n name: \"invertSelection\",\n description: \"Invert selection\",\n bindKey: bindKey(null, null),\n exec: function (editor) {\n var endRow = editor.session.doc.getLength() - 1;\n var endCol = editor.session.doc.getLine(endRow).length;\n var ranges = editor.selection.rangeList.ranges;\n var newRanges = [];\n if (ranges.length < 1) {\n ranges = [editor.selection.getRange()];\n }\n for (var i = 0; i < ranges.length; i++) {\n if (i == (ranges.length - 1)) {\n if (!(ranges[i].end.row === endRow && ranges[i].end.column === endCol)) {\n newRanges.push(new Range(ranges[i].end.row, ranges[i].end.column, endRow, endCol));\n }\n }\n if (i === 0) {\n if (!(ranges[i].start.row === 0 && ranges[i].start.column === 0)) {\n newRanges.push(new Range(0, 0, ranges[i].start.row, ranges[i].start.column));\n }\n }\n else {\n newRanges.push(new Range(ranges[i - 1].end.row, ranges[i - 1].end.column, ranges[i].start.row, ranges[i].start.column));\n }\n }\n editor.exitMultiSelectMode();\n editor.clearSelection();\n for (var i = 0; i < newRanges.length; i++) {\n editor.selection.addRange(newRanges[i], false);\n }\n },\n readOnly: true,\n scrollIntoView: \"none\"\n }, {\n name: \"addLineAfter\",\n description: \"Add new line after the current line\",\n exec: function (editor) {\n editor.selection.clearSelection();\n editor.navigateLineEnd();\n editor.insert(\"\\n\");\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"addLineBefore\",\n description: \"Add new line before the current line\",\n exec: function (editor) {\n editor.selection.clearSelection();\n var cursor = editor.getCursorPosition();\n editor.selection.moveTo(cursor.row - 1, Number.MAX_VALUE);\n editor.insert(\"\\n\");\n if (cursor.row === 0)\n editor.navigateUp();\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"openCommandPallete\",\n exec: function (editor) {\n console.warn(\"This is an obsolete command. Please use `openCommandPalette` instead.\");\n editor.prompt({ $type: \"commands\" });\n },\n readOnly: true\n }, {\n name: \"openCommandPalette\",\n description: \"Open command palette\",\n bindKey: bindKey(\"F1\", \"F1\"),\n exec: function (editor) {\n editor.prompt({ $type: \"commands\" });\n },\n readOnly: true\n }, {\n name: \"modeSelect\",\n description: \"Change language mode...\",\n bindKey: bindKey(null, null),\n exec: function (editor) {\n editor.prompt({ $type: \"modes\" });\n },\n readOnly: true\n }];\nfor (var i = 1; i < 9; i++) {\n exports.commands.push({\n name: \"foldToLevel\" + i,\n description: \"Fold To Level \" + i,\n level: i,\n exec: function (editor) { editor.session.foldToLevel(this.level); },\n scrollIntoView: \"center\",\n readOnly: true\n });\n}\n\n});\n\nace.define(\"ace/line_widgets\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"./lib/dom\");\nvar LineWidgets = /** @class */ (function () {\n function LineWidgets(session) {\n this.session = session;\n this.session.widgetManager = this;\n this.session.getRowLength = this.getRowLength;\n this.session.$getWidgetScreenLength = this.$getWidgetScreenLength;\n this.updateOnChange = this.updateOnChange.bind(this);\n this.renderWidgets = this.renderWidgets.bind(this);\n this.measureWidgets = this.measureWidgets.bind(this);\n this.session._changedWidgets = [];\n this.$onChangeEditor = this.$onChangeEditor.bind(this);\n this.session.on(\"change\", this.updateOnChange);\n this.session.on(\"changeFold\", this.updateOnFold);\n this.session.on(\"changeEditor\", this.$onChangeEditor);\n }\n LineWidgets.prototype.getRowLength = function (row) {\n var h;\n if (this.lineWidgets)\n h = this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n else\n h = 0;\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1 + h;\n }\n else {\n return this.$wrapData[row].length + 1 + h;\n }\n };\n LineWidgets.prototype.$getWidgetScreenLength = function () {\n var screenRows = 0;\n this.lineWidgets.forEach(function (w) {\n if (w && w.rowCount && !w.hidden)\n screenRows += w.rowCount;\n });\n return screenRows;\n };\n LineWidgets.prototype.$onChangeEditor = function (e) {\n this.attach(e.editor);\n };\n LineWidgets.prototype.attach = function (editor) {\n if (editor && editor.widgetManager && editor.widgetManager != this)\n editor.widgetManager.detach();\n if (this.editor == editor)\n return;\n this.detach();\n this.editor = editor;\n if (editor) {\n editor.widgetManager = this;\n editor.renderer.on(\"beforeRender\", this.measureWidgets);\n editor.renderer.on(\"afterRender\", this.renderWidgets);\n }\n };\n LineWidgets.prototype.detach = function (e) {\n var editor = this.editor;\n if (!editor)\n return;\n this.editor = null;\n editor.widgetManager = null;\n editor.renderer.off(\"beforeRender\", this.measureWidgets);\n editor.renderer.off(\"afterRender\", this.renderWidgets);\n var lineWidgets = this.session.lineWidgets;\n lineWidgets && lineWidgets.forEach(function (w) {\n if (w && w.el && w.el.parentNode) {\n w._inDocument = false;\n w.el.parentNode.removeChild(w.el);\n }\n });\n };\n LineWidgets.prototype.updateOnFold = function (e, session) {\n var lineWidgets = session.lineWidgets;\n if (!lineWidgets || !e.action)\n return;\n var fold = e.data;\n var start = fold.start.row;\n var end = fold.end.row;\n var hide = e.action == \"add\";\n for (var i = start + 1; i < end; i++) {\n if (lineWidgets[i])\n lineWidgets[i].hidden = hide;\n }\n if (lineWidgets[end]) {\n if (hide) {\n if (!lineWidgets[start])\n lineWidgets[start] = lineWidgets[end];\n else\n lineWidgets[end].hidden = hide;\n }\n else {\n if (lineWidgets[start] == lineWidgets[end])\n lineWidgets[start] = undefined;\n lineWidgets[end].hidden = hide;\n }\n }\n };\n LineWidgets.prototype.updateOnChange = function (delta) {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n if (len === 0) {\n }\n else if (delta.action == \"remove\") {\n var removed = lineWidgets.splice(startRow + 1, len);\n if (!lineWidgets[startRow] && removed[removed.length - 1]) {\n lineWidgets[startRow] = removed.pop();\n }\n removed.forEach(function (w) {\n w && this.removeLineWidget(w);\n }, this);\n this.$updateRows();\n }\n else {\n var args = new Array(len);\n if (lineWidgets[startRow] && lineWidgets[startRow].column != null) {\n if (delta.start.column > lineWidgets[startRow].column)\n startRow++;\n }\n args.unshift(startRow, 0);\n lineWidgets.splice.apply(lineWidgets, args);\n this.$updateRows();\n }\n };\n LineWidgets.prototype.$updateRows = function () {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var noWidgets = true;\n lineWidgets.forEach(function (w, i) {\n if (w) {\n noWidgets = false;\n w.row = i;\n while (w.$oldWidget) {\n w.$oldWidget.row = i;\n w = w.$oldWidget;\n }\n }\n });\n if (noWidgets)\n this.session.lineWidgets = null;\n };\n LineWidgets.prototype.$registerLineWidget = function (w) {\n if (!this.session.lineWidgets)\n this.session.lineWidgets = new Array(this.session.getLength());\n var old = this.session.lineWidgets[w.row];\n if (old) {\n w.$oldWidget = old;\n if (old.el && old.el.parentNode) {\n old.el.parentNode.removeChild(old.el);\n old._inDocument = false;\n }\n }\n this.session.lineWidgets[w.row] = w;\n return w;\n };\n LineWidgets.prototype.addLineWidget = function (w) {\n this.$registerLineWidget(w);\n w.session = this.session;\n if (!this.editor)\n return w;\n var renderer = this.editor.renderer;\n if (w.html && !w.el) {\n w.el = dom.createElement(\"div\");\n w.el.innerHTML = w.html;\n }\n if (w.text && !w.el) {\n w.el = dom.createElement(\"div\");\n w.el.textContent = w.text;\n }\n if (w.el) {\n dom.addCssClass(w.el, \"ace_lineWidgetContainer\");\n if (w.className) {\n dom.addCssClass(w.el, w.className);\n }\n w.el.style.position = \"absolute\";\n w.el.style.zIndex = 5;\n renderer.container.appendChild(w.el);\n w._inDocument = true;\n if (!w.coverGutter) {\n w.el.style.zIndex = 3;\n }\n if (w.pixelHeight == null) {\n w.pixelHeight = w.el.offsetHeight;\n }\n }\n if (w.rowCount == null) {\n w.rowCount = w.pixelHeight / renderer.layerConfig.lineHeight;\n }\n var fold = this.session.getFoldAt(w.row, 0);\n w.$fold = fold;\n if (fold) {\n var lineWidgets = this.session.lineWidgets;\n if (w.row == fold.end.row && !lineWidgets[fold.start.row])\n lineWidgets[fold.start.row] = w;\n else\n w.hidden = true;\n }\n this.session._emit(\"changeFold\", { data: { start: { row: w.row } } });\n this.$updateRows();\n this.renderWidgets(null, renderer);\n this.onWidgetChanged(w);\n return w;\n };\n LineWidgets.prototype.removeLineWidget = function (w) {\n w._inDocument = false;\n w.session = null;\n if (w.el && w.el.parentNode)\n w.el.parentNode.removeChild(w.el);\n if (w.editor && w.editor.destroy)\n try {\n w.editor.destroy();\n }\n catch (e) { }\n if (this.session.lineWidgets) {\n var w1 = this.session.lineWidgets[w.row];\n if (w1 == w) {\n this.session.lineWidgets[w.row] = w.$oldWidget;\n if (w.$oldWidget)\n this.onWidgetChanged(w.$oldWidget);\n }\n else {\n while (w1) {\n if (w1.$oldWidget == w) {\n w1.$oldWidget = w.$oldWidget;\n break;\n }\n w1 = w1.$oldWidget;\n }\n }\n }\n this.session._emit(\"changeFold\", { data: { start: { row: w.row } } });\n this.$updateRows();\n };\n LineWidgets.prototype.getWidgetsAtRow = function (row) {\n var lineWidgets = this.session.lineWidgets;\n var w = lineWidgets && lineWidgets[row];\n var list = [];\n while (w) {\n list.push(w);\n w = w.$oldWidget;\n }\n return list;\n };\n LineWidgets.prototype.onWidgetChanged = function (w) {\n this.session._changedWidgets.push(w);\n this.editor && this.editor.renderer.updateFull();\n };\n LineWidgets.prototype.measureWidgets = function (e, renderer) {\n var changedWidgets = this.session._changedWidgets;\n var config = renderer.layerConfig;\n if (!changedWidgets || !changedWidgets.length)\n return;\n var min = Infinity;\n for (var i = 0; i < changedWidgets.length; i++) {\n var w = changedWidgets[i];\n if (!w || !w.el)\n continue;\n if (w.session != this.session)\n continue;\n if (!w._inDocument) {\n if (this.session.lineWidgets[w.row] != w)\n continue;\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n w.h = w.el.offsetHeight;\n if (!w.fixedWidth) {\n w.w = w.el.offsetWidth;\n w.screenWidth = Math.ceil(w.w / config.characterWidth);\n }\n var rowCount = w.h / config.lineHeight;\n if (w.coverLine) {\n rowCount -= this.session.getRowLineCount(w.row);\n if (rowCount < 0)\n rowCount = 0;\n }\n if (w.rowCount != rowCount) {\n w.rowCount = rowCount;\n if (w.row < min)\n min = w.row;\n }\n }\n if (min != Infinity) {\n this.session._emit(\"changeFold\", { data: { start: { row: min } } });\n this.session.lineWidgetWidth = null;\n }\n this.session._changedWidgets = [];\n };\n LineWidgets.prototype.renderWidgets = function (e, renderer) {\n var config = renderer.layerConfig;\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var first = Math.min(this.firstRow, config.firstRow);\n var last = Math.max(this.lastRow, config.lastRow, lineWidgets.length);\n while (first > 0 && !lineWidgets[first])\n first--;\n this.firstRow = config.firstRow;\n this.lastRow = config.lastRow;\n renderer.$cursorLayer.config = config;\n for (var i = first; i <= last; i++) {\n var w = lineWidgets[i];\n if (!w || !w.el)\n continue;\n if (w.hidden) {\n w.el.style.top = -100 - (w.pixelHeight || 0) + \"px\";\n continue;\n }\n if (!w._inDocument) {\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n var top = renderer.$cursorLayer.getPixelPosition({ row: i, column: 0 }, true).top;\n if (!w.coverLine)\n top += config.lineHeight * this.session.getRowLineCount(w.row);\n w.el.style.top = top - config.offset + \"px\";\n var left = w.coverGutter ? 0 : renderer.gutterWidth;\n if (!w.fixedWidth)\n left -= renderer.scrollLeft;\n w.el.style.left = left + \"px\";\n if (w.fullWidth && w.screenWidth) {\n w.el.style.minWidth = config.width + 2 * config.padding + \"px\";\n }\n if (w.fixedWidth) {\n w.el.style.right = renderer.scrollBar.getWidth() + \"px\";\n }\n else {\n w.el.style.right = \"\";\n }\n }\n };\n return LineWidgets;\n}());\nexports.LineWidgets = LineWidgets;\n\n});\n\nace.define(\"ace/keyboard/gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/mouse/default_gutter_handler\"], function(require, exports, module){\"use strict\";\nvar keys = require('../lib/keys');\nvar GutterTooltip = require(\"../mouse/default_gutter_handler\").GutterTooltip;\nvar GutterKeyboardHandler = /** @class */ (function () {\n function GutterKeyboardHandler(editor) {\n this.editor = editor;\n this.gutterLayer = editor.renderer.$gutterLayer;\n this.element = editor.renderer.$gutter;\n this.lines = editor.renderer.$gutterLayer.$lines;\n this.activeRowIndex = null;\n this.activeLane = null;\n this.annotationTooltip = new GutterTooltip(this.editor);\n }\n GutterKeyboardHandler.prototype.addListener = function () {\n this.element.addEventListener(\"keydown\", this.$onGutterKeyDown.bind(this));\n this.element.addEventListener(\"focusout\", this.$blurGutter.bind(this));\n this.editor.on(\"mousewheel\", this.$blurGutter.bind(this));\n };\n GutterKeyboardHandler.prototype.removeListener = function () {\n this.element.removeEventListener(\"keydown\", this.$onGutterKeyDown.bind(this));\n this.element.removeEventListener(\"focusout\", this.$blurGutter.bind(this));\n this.editor.off(\"mousewheel\", this.$blurGutter.bind(this));\n };\n GutterKeyboardHandler.prototype.$onGutterKeyDown = function (e) {\n if (this.annotationTooltip.isOpen) {\n e.preventDefault();\n if (e.keyCode === keys[\"escape\"])\n this.annotationTooltip.hideTooltip();\n return;\n }\n if (e.target === this.element) {\n if (e.keyCode != keys[\"enter\"]) {\n return;\n }\n e.preventDefault();\n var row = this.editor.getCursorPosition().row;\n if (!this.editor.isRowVisible(row))\n this.editor.scrollToLine(row, true, true);\n setTimeout(function () {\n var index = this.$rowToRowIndex(this.gutterLayer.$cursorCell.row);\n var nearestFoldIndex = this.$findNearestFoldWidget(index);\n var nearestAnnotationIndex = this.$findNearestAnnotation(index);\n if (nearestFoldIndex === null && nearestAnnotationIndex === null)\n return;\n if (nearestFoldIndex === null && nearestAnnotationIndex !== null) {\n this.activeRowIndex = nearestAnnotationIndex;\n this.activeLane = \"annotation\";\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n if (nearestFoldIndex !== null && nearestAnnotationIndex === null) {\n this.activeRowIndex = nearestFoldIndex;\n this.activeLane = \"fold\";\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n if (Math.abs(nearestAnnotationIndex - index) < Math.abs(nearestFoldIndex - index)) {\n this.activeRowIndex = nearestAnnotationIndex;\n this.activeLane = \"annotation\";\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n else {\n this.activeRowIndex = nearestFoldIndex;\n this.activeLane = \"fold\";\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n }.bind(this), 10);\n return;\n }\n this.$handleGutterKeyboardInteraction(e);\n setTimeout(function () {\n this.editor._signal(\"gutterkeydown\", new GutterKeyboardEvent(e, this));\n }.bind(this), 10);\n };\n GutterKeyboardHandler.prototype.$handleGutterKeyboardInteraction = function (e) {\n if (e.keyCode === keys[\"tab\"]) {\n e.preventDefault();\n return;\n }\n if (e.keyCode === keys[\"escape\"]) {\n e.preventDefault();\n this.$blurGutter();\n this.element.focus();\n this.lane = null;\n return;\n }\n if (e.keyCode === keys[\"up\"]) {\n e.preventDefault();\n switch (this.activeLane) {\n case \"fold\":\n this.$moveFoldWidgetUp();\n break;\n case \"annotation\":\n this.$moveAnnotationUp();\n break;\n }\n return;\n }\n if (e.keyCode === keys[\"down\"]) {\n e.preventDefault();\n switch (this.activeLane) {\n case \"fold\":\n this.$moveFoldWidgetDown();\n break;\n case \"annotation\":\n this.$moveAnnotationDown();\n break;\n }\n return;\n }\n if (e.keyCode === keys[\"left\"]) {\n e.preventDefault();\n this.$switchLane(\"annotation\");\n return;\n }\n if (e.keyCode === keys[\"right\"]) {\n e.preventDefault();\n this.$switchLane(\"fold\");\n return;\n }\n if (e.keyCode === keys[\"enter\"] || e.keyCode === keys[\"space\"]) {\n e.preventDefault();\n switch (this.activeLane) {\n case \"fold\":\n if (this.gutterLayer.session.foldWidgets[this.$rowIndexToRow(this.activeRowIndex)] === 'start') {\n var rowFoldingWidget = this.$rowIndexToRow(this.activeRowIndex);\n this.editor.session.onFoldWidgetClick(this.$rowIndexToRow(this.activeRowIndex), e);\n setTimeout(function () {\n if (this.$rowIndexToRow(this.activeRowIndex) !== rowFoldingWidget) {\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = this.$rowToRowIndex(rowFoldingWidget);\n this.$focusFoldWidget(this.activeRowIndex);\n }\n }.bind(this), 10);\n break;\n }\n else if (this.gutterLayer.session.foldWidgets[this.$rowIndexToRow(this.activeRowIndex)] === 'end') {\n break;\n }\n return;\n case \"annotation\":\n var gutterElement = this.lines.cells[this.activeRowIndex].element.childNodes[2];\n var rect = gutterElement.getBoundingClientRect();\n var style = this.annotationTooltip.getElement().style;\n style.left = rect.right + \"px\";\n style.top = rect.bottom + \"px\";\n this.annotationTooltip.showTooltip(this.$rowIndexToRow(this.activeRowIndex));\n break;\n }\n return;\n }\n };\n GutterKeyboardHandler.prototype.$blurGutter = function () {\n if (this.activeRowIndex !== null) {\n switch (this.activeLane) {\n case \"fold\":\n this.$blurFoldWidget(this.activeRowIndex);\n break;\n case \"annotation\":\n this.$blurAnnotation(this.activeRowIndex);\n break;\n }\n }\n if (this.annotationTooltip.isOpen)\n this.annotationTooltip.hideTooltip();\n return;\n };\n GutterKeyboardHandler.prototype.$isFoldWidgetVisible = function (index) {\n var isRowFullyVisible = this.editor.isRowFullyVisible(this.$rowIndexToRow(index));\n var isIconVisible = this.$getFoldWidget(index).style.display !== \"none\";\n return isRowFullyVisible && isIconVisible;\n };\n GutterKeyboardHandler.prototype.$isAnnotationVisible = function (index) {\n var isRowFullyVisible = this.editor.isRowFullyVisible(this.$rowIndexToRow(index));\n var isIconVisible = this.$getAnnotation(index).style.display !== \"none\";\n return isRowFullyVisible && isIconVisible;\n };\n GutterKeyboardHandler.prototype.$getFoldWidget = function (index) {\n var cell = this.lines.get(index);\n var element = cell.element;\n return element.childNodes[1];\n };\n GutterKeyboardHandler.prototype.$getAnnotation = function (index) {\n var cell = this.lines.get(index);\n var element = cell.element;\n return element.childNodes[2];\n };\n GutterKeyboardHandler.prototype.$findNearestFoldWidget = function (index) {\n if (this.$isFoldWidgetVisible(index))\n return index;\n var i = 0;\n while (index - i > 0 || index + i < this.lines.getLength() - 1) {\n i++;\n if (index - i >= 0 && this.$isFoldWidgetVisible(index - i))\n return index - i;\n if (index + i <= this.lines.getLength() - 1 && this.$isFoldWidgetVisible(index + i))\n return index + i;\n }\n return null;\n };\n GutterKeyboardHandler.prototype.$findNearestAnnotation = function (index) {\n if (this.$isAnnotationVisible(index))\n return index;\n var i = 0;\n while (index - i > 0 || index + i < this.lines.getLength() - 1) {\n i++;\n if (index - i >= 0 && this.$isAnnotationVisible(index - i))\n return index - i;\n if (index + i <= this.lines.getLength() - 1 && this.$isAnnotationVisible(index + i))\n return index + i;\n }\n return null;\n };\n GutterKeyboardHandler.prototype.$focusFoldWidget = function (index) {\n if (index == null)\n return;\n var foldWidget = this.$getFoldWidget(index);\n foldWidget.classList.add(this.editor.renderer.keyboardFocusClassName);\n foldWidget.focus();\n };\n GutterKeyboardHandler.prototype.$focusAnnotation = function (index) {\n if (index == null)\n return;\n var annotation = this.$getAnnotation(index);\n annotation.classList.add(this.editor.renderer.keyboardFocusClassName);\n annotation.focus();\n };\n GutterKeyboardHandler.prototype.$blurFoldWidget = function (index) {\n var foldWidget = this.$getFoldWidget(index);\n foldWidget.classList.remove(this.editor.renderer.keyboardFocusClassName);\n foldWidget.blur();\n };\n GutterKeyboardHandler.prototype.$blurAnnotation = function (index) {\n var annotation = this.$getAnnotation(index);\n annotation.classList.remove(this.editor.renderer.keyboardFocusClassName);\n annotation.blur();\n };\n GutterKeyboardHandler.prototype.$moveFoldWidgetUp = function () {\n var index = this.activeRowIndex;\n while (index > 0) {\n index--;\n if (this.$isFoldWidgetVisible(index)) {\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$moveFoldWidgetDown = function () {\n var index = this.activeRowIndex;\n while (index < this.lines.getLength() - 1) {\n index++;\n if (this.$isFoldWidgetVisible(index)) {\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$moveAnnotationUp = function () {\n var index = this.activeRowIndex;\n while (index > 0) {\n index--;\n if (this.$isAnnotationVisible(index)) {\n this.$blurAnnotation(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$moveAnnotationDown = function () {\n var index = this.activeRowIndex;\n while (index < this.lines.getLength() - 1) {\n index++;\n if (this.$isAnnotationVisible(index)) {\n this.$blurAnnotation(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$switchLane = function (desinationLane) {\n switch (desinationLane) {\n case \"annotation\":\n if (this.activeLane === \"annotation\") {\n break;\n }\n var annotationIndex = this.$findNearestAnnotation(this.activeRowIndex);\n if (annotationIndex == null) {\n break;\n }\n this.activeLane = \"annotation\";\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = annotationIndex;\n this.$focusAnnotation(this.activeRowIndex);\n break;\n case \"fold\":\n if (this.activeLane === \"fold\") {\n break;\n }\n var foldWidgetIndex = this.$findNearestFoldWidget(this.activeRowIndex);\n if (foldWidgetIndex == null) {\n break;\n }\n this.activeLane = \"fold\";\n this.$blurAnnotation(this.activeRowIndex);\n this.activeRowIndex = foldWidgetIndex;\n this.$focusFoldWidget(this.activeRowIndex);\n break;\n }\n return;\n };\n GutterKeyboardHandler.prototype.$rowIndexToRow = function (index) {\n var cell = this.lines.get(index);\n if (cell)\n return cell.row;\n return null;\n };\n GutterKeyboardHandler.prototype.$rowToRowIndex = function (row) {\n for (var i = 0; i < this.lines.getLength(); i++) {\n var cell = this.lines.get(i);\n if (cell.row == row)\n return i;\n }\n return null;\n };\n return GutterKeyboardHandler;\n}());\nexports.GutterKeyboardHandler = GutterKeyboardHandler;\nvar GutterKeyboardEvent = /** @class */ (function () {\n function GutterKeyboardEvent(domEvent, gutterKeyboardHandler) {\n this.gutterKeyboardHandler = gutterKeyboardHandler;\n this.domEvent = domEvent;\n }\n GutterKeyboardEvent.prototype.getKey = function () {\n return keys.keyCodeToString(this.domEvent.keyCode);\n };\n GutterKeyboardEvent.prototype.getRow = function () {\n return this.gutterKeyboardHandler.$rowIndexToRow(this.gutterKeyboardHandler.activeRowIndex);\n };\n GutterKeyboardEvent.prototype.isInAnnotationLane = function () {\n return this.gutterKeyboardHandler.activeLane === \"annotation\";\n };\n GutterKeyboardEvent.prototype.isInFoldLane = function () {\n return this.gutterKeyboardHandler.activeLane === \"fold\";\n };\n return GutterKeyboardEvent;\n}());\nexports.GutterKeyboardEvent = GutterKeyboardEvent;\n\n});\n\nace.define(\"ace/editor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/keyboard/textinput\",\"ace/mouse/mouse_handler\",\"ace/mouse/fold_handler\",\"ace/keyboard/keybinding\",\"ace/edit_session\",\"ace/search\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/commands/command_manager\",\"ace/commands/default_commands\",\"ace/config\",\"ace/token_iterator\",\"ace/line_widgets\",\"ace/keyboard/gutter_handler\",\"ace/config\",\"ace/clipboard\",\"ace/lib/keys\"], function(require, exports, module){\"use strict\";\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar lang = require(\"./lib/lang\");\nvar useragent = require(\"./lib/useragent\");\nvar TextInput = require(\"./keyboard/textinput\").TextInput;\nvar MouseHandler = require(\"./mouse/mouse_handler\").MouseHandler;\nvar FoldHandler = require(\"./mouse/fold_handler\").FoldHandler;\nvar KeyBinding = require(\"./keyboard/keybinding\").KeyBinding;\nvar EditSession = require(\"./edit_session\").EditSession;\nvar Search = require(\"./search\").Search;\nvar Range = require(\"./range\").Range;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar CommandManager = require(\"./commands/command_manager\").CommandManager;\nvar defaultCommands = require(\"./commands/default_commands\").commands;\nvar config = require(\"./config\");\nvar TokenIterator = require(\"./token_iterator\").TokenIterator;\nvar LineWidgets = require(\"./line_widgets\").LineWidgets;\nvar GutterKeyboardHandler = require(\"./keyboard/gutter_handler\").GutterKeyboardHandler;\nvar nls = require(\"./config\").nls;\nvar clipboard = require(\"./clipboard\");\nvar keys = require('./lib/keys');\nvar Editor = /** @class */ (function () {\n function Editor(renderer, session, options) {\n this.$toDestroy = [];\n var container = renderer.getContainerElement();\n this.container = container;\n this.renderer = renderer;\n this.id = \"editor\" + (++Editor.$uid);\n this.commands = new CommandManager(useragent.isMac ? \"mac\" : \"win\", defaultCommands);\n if (typeof document == \"object\") {\n this.textInput = new TextInput(renderer.getTextAreaContainer(), this);\n this.renderer.textarea = this.textInput.getElement();\n this.$mouseHandler = new MouseHandler(this);\n new FoldHandler(this);\n }\n this.keyBinding = new KeyBinding(this);\n this.$search = new Search().set({\n wrap: true\n });\n this.$historyTracker = this.$historyTracker.bind(this);\n this.commands.on(\"exec\", this.$historyTracker);\n this.$initOperationListeners();\n this._$emitInputEvent = lang.delayedCall(function () {\n this._signal(\"input\", {});\n if (this.session && !this.session.destroyed)\n this.session.bgTokenizer.scheduleStart();\n }.bind(this));\n this.on(\"change\", function (_, _self) {\n _self._$emitInputEvent.schedule(31);\n });\n this.setSession(session || options && options.session || new EditSession(\"\"));\n config.resetOptions(this);\n if (options)\n this.setOptions(options);\n config._signal(\"editor\", this);\n }\n Editor.prototype.$initOperationListeners = function () {\n this.commands.on(\"exec\", this.startOperation.bind(this), true);\n this.commands.on(\"afterExec\", this.endOperation.bind(this), true);\n this.$opResetTimer = lang.delayedCall(this.endOperation.bind(this, true));\n this.on(\"change\", function () {\n if (!this.curOp) {\n this.startOperation();\n this.curOp.selectionBefore = this.$lastSel;\n }\n this.curOp.docChanged = true;\n }.bind(this), true);\n this.on(\"changeSelection\", function () {\n if (!this.curOp) {\n this.startOperation();\n this.curOp.selectionBefore = this.$lastSel;\n }\n this.curOp.selectionChanged = true;\n }.bind(this), true);\n };\n Editor.prototype.startOperation = function (commandEvent) {\n if (this.curOp) {\n if (!commandEvent || this.curOp.command)\n return;\n this.prevOp = this.curOp;\n }\n if (!commandEvent) {\n this.previousCommand = null;\n commandEvent = {};\n }\n this.$opResetTimer.schedule();\n this.curOp = this.session.curOp = {\n command: commandEvent.command || {},\n args: commandEvent.args,\n scrollTop: this.renderer.scrollTop\n };\n this.curOp.selectionBefore = this.selection.toJSON();\n };\n Editor.prototype.endOperation = function (e) {\n if (this.curOp && this.session) {\n if (e && e.returnValue === false || !this.session)\n return (this.curOp = null);\n if (e == true && this.curOp.command && this.curOp.command.name == \"mouse\")\n return;\n this._signal(\"beforeEndOperation\");\n if (!this.curOp)\n return;\n var command = this.curOp.command;\n var scrollIntoView = command && command.scrollIntoView;\n if (scrollIntoView) {\n switch (scrollIntoView) {\n case \"center-animate\":\n scrollIntoView = \"animate\";\n case \"center\":\n this.renderer.scrollCursorIntoView(null, 0.5);\n break;\n case \"animate\":\n case \"cursor\":\n this.renderer.scrollCursorIntoView();\n break;\n case \"selectionPart\":\n var range = this.selection.getRange();\n var config = this.renderer.layerConfig;\n if (range.start.row >= config.lastRow || range.end.row <= config.firstRow) {\n this.renderer.scrollSelectionIntoView(this.selection.anchor, this.selection.lead);\n }\n break;\n default:\n break;\n }\n if (scrollIntoView == \"animate\")\n this.renderer.animateScrolling(this.curOp.scrollTop);\n }\n var sel = this.selection.toJSON();\n this.curOp.selectionAfter = sel;\n this.$lastSel = this.selection.toJSON();\n this.session.getUndoManager().addSelection(sel);\n this.prevOp = this.curOp;\n this.curOp = null;\n }\n };\n Editor.prototype.$historyTracker = function (e) {\n if (!this.$mergeUndoDeltas)\n return;\n var prev = this.prevOp;\n var mergeableCommands = this.$mergeableCommands;\n var shouldMerge = prev.command && (e.command.name == prev.command.name);\n if (e.command.name == \"insertstring\") {\n var text = e.args;\n if (this.mergeNextCommand === undefined)\n this.mergeNextCommand = true;\n shouldMerge = shouldMerge\n && this.mergeNextCommand // previous command allows to coalesce with\n && (!/\\s/.test(text) || /\\s/.test(prev.args)); // previous insertion was of same type\n this.mergeNextCommand = true;\n }\n else {\n shouldMerge = shouldMerge\n && mergeableCommands.indexOf(e.command.name) !== -1; // the command is mergeable\n }\n if (this.$mergeUndoDeltas != \"always\"\n && Date.now() - this.sequenceStartTime > 2000) {\n shouldMerge = false; // the sequence is too long\n }\n if (shouldMerge)\n this.session.mergeUndoDeltas = true;\n else if (mergeableCommands.indexOf(e.command.name) !== -1)\n this.sequenceStartTime = Date.now();\n };\n Editor.prototype.setKeyboardHandler = function (keyboardHandler, cb) {\n if (keyboardHandler && typeof keyboardHandler === \"string\" && keyboardHandler != \"ace\") {\n this.$keybindingId = keyboardHandler;\n var _self = this;\n config.loadModule([\"keybinding\", keyboardHandler], function (module) {\n if (_self.$keybindingId == keyboardHandler)\n _self.keyBinding.setKeyboardHandler(module && module.handler);\n cb && cb();\n });\n }\n else {\n this.$keybindingId = null;\n this.keyBinding.setKeyboardHandler(keyboardHandler);\n cb && cb();\n }\n };\n Editor.prototype.getKeyboardHandler = function () {\n return this.keyBinding.getKeyboardHandler();\n };\n Editor.prototype.setSession = function (session) {\n if (this.session == session)\n return;\n if (this.curOp)\n this.endOperation();\n this.curOp = {};\n var oldSession = this.session;\n if (oldSession) {\n this.session.off(\"change\", this.$onDocumentChange);\n this.session.off(\"changeMode\", this.$onChangeMode);\n this.session.off(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n this.session.off(\"changeTabSize\", this.$onChangeTabSize);\n this.session.off(\"changeWrapLimit\", this.$onChangeWrapLimit);\n this.session.off(\"changeWrapMode\", this.$onChangeWrapMode);\n this.session.off(\"changeFold\", this.$onChangeFold);\n this.session.off(\"changeFrontMarker\", this.$onChangeFrontMarker);\n this.session.off(\"changeBackMarker\", this.$onChangeBackMarker);\n this.session.off(\"changeBreakpoint\", this.$onChangeBreakpoint);\n this.session.off(\"changeAnnotation\", this.$onChangeAnnotation);\n this.session.off(\"changeOverwrite\", this.$onCursorChange);\n this.session.off(\"changeScrollTop\", this.$onScrollTopChange);\n this.session.off(\"changeScrollLeft\", this.$onScrollLeftChange);\n var selection = this.session.getSelection();\n selection.off(\"changeCursor\", this.$onCursorChange);\n selection.off(\"changeSelection\", this.$onSelectionChange);\n }\n this.session = session;\n if (session) {\n this.$onDocumentChange = this.onDocumentChange.bind(this);\n session.on(\"change\", this.$onDocumentChange);\n this.renderer.setSession(session);\n this.$onChangeMode = this.onChangeMode.bind(this);\n session.on(\"changeMode\", this.$onChangeMode);\n this.$onTokenizerUpdate = this.onTokenizerUpdate.bind(this);\n session.on(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n this.$onChangeTabSize = this.renderer.onChangeTabSize.bind(this.renderer);\n session.on(\"changeTabSize\", this.$onChangeTabSize);\n this.$onChangeWrapLimit = this.onChangeWrapLimit.bind(this);\n session.on(\"changeWrapLimit\", this.$onChangeWrapLimit);\n this.$onChangeWrapMode = this.onChangeWrapMode.bind(this);\n session.on(\"changeWrapMode\", this.$onChangeWrapMode);\n this.$onChangeFold = this.onChangeFold.bind(this);\n session.on(\"changeFold\", this.$onChangeFold);\n this.$onChangeFrontMarker = this.onChangeFrontMarker.bind(this);\n this.session.on(\"changeFrontMarker\", this.$onChangeFrontMarker);\n this.$onChangeBackMarker = this.onChangeBackMarker.bind(this);\n this.session.on(\"changeBackMarker\", this.$onChangeBackMarker);\n this.$onChangeBreakpoint = this.onChangeBreakpoint.bind(this);\n this.session.on(\"changeBreakpoint\", this.$onChangeBreakpoint);\n this.$onChangeAnnotation = this.onChangeAnnotation.bind(this);\n this.session.on(\"changeAnnotation\", this.$onChangeAnnotation);\n this.$onCursorChange = this.onCursorChange.bind(this);\n this.session.on(\"changeOverwrite\", this.$onCursorChange);\n this.$onScrollTopChange = this.onScrollTopChange.bind(this);\n this.session.on(\"changeScrollTop\", this.$onScrollTopChange);\n this.$onScrollLeftChange = this.onScrollLeftChange.bind(this);\n this.session.on(\"changeScrollLeft\", this.$onScrollLeftChange);\n this.selection = session.getSelection();\n this.selection.on(\"changeCursor\", this.$onCursorChange);\n this.$onSelectionChange = this.onSelectionChange.bind(this);\n this.selection.on(\"changeSelection\", this.$onSelectionChange);\n this.onChangeMode();\n this.onCursorChange();\n this.onScrollTopChange();\n this.onScrollLeftChange();\n this.onSelectionChange();\n this.onChangeFrontMarker();\n this.onChangeBackMarker();\n this.onChangeBreakpoint();\n this.onChangeAnnotation();\n this.session.getUseWrapMode() && this.renderer.adjustWrapLimit();\n this.renderer.updateFull();\n }\n else {\n this.selection = null;\n this.renderer.setSession(session);\n }\n this._signal(\"changeSession\", {\n session: session,\n oldSession: oldSession\n });\n this.curOp = null;\n oldSession && oldSession._signal(\"changeEditor\", { oldEditor: this });\n session && session._signal(\"changeEditor\", { editor: this });\n if (session && !session.destroyed)\n session.bgTokenizer.scheduleStart();\n };\n Editor.prototype.getSession = function () {\n return this.session;\n };\n Editor.prototype.setValue = function (val, cursorPos) {\n this.session.doc.setValue(val);\n if (!cursorPos)\n this.selectAll();\n else if (cursorPos == 1)\n this.navigateFileEnd();\n else if (cursorPos == -1)\n this.navigateFileStart();\n return val;\n };\n Editor.prototype.getValue = function () {\n return this.session.getValue();\n };\n Editor.prototype.getSelection = function () {\n return this.selection;\n };\n Editor.prototype.resize = function (force) {\n this.renderer.onResize(force);\n };\n Editor.prototype.setTheme = function (theme, cb) {\n this.renderer.setTheme(theme, cb);\n };\n Editor.prototype.getTheme = function () {\n return this.renderer.getTheme();\n };\n Editor.prototype.setStyle = function (style) {\n this.renderer.setStyle(style);\n };\n Editor.prototype.unsetStyle = function (style) {\n this.renderer.unsetStyle(style);\n };\n Editor.prototype.getFontSize = function () {\n return this.getOption(\"fontSize\") ||\n dom.computedStyle(this.container).fontSize;\n };\n Editor.prototype.setFontSize = function (size) {\n this.setOption(\"fontSize\", size);\n };\n Editor.prototype.$highlightBrackets = function () {\n if (this.$highlightPending) {\n return;\n }\n var self = this;\n this.$highlightPending = true;\n setTimeout(function () {\n self.$highlightPending = false;\n var session = self.session;\n if (!session || session.destroyed)\n return;\n if (session.$bracketHighlight) {\n session.$bracketHighlight.markerIds.forEach(function (id) {\n session.removeMarker(id);\n });\n session.$bracketHighlight = null;\n }\n var pos = self.getCursorPosition();\n var handler = self.getKeyboardHandler();\n var isBackwards = handler && handler.$getDirectionForHighlight && handler.$getDirectionForHighlight(self);\n var ranges = session.getMatchingBracketRanges(pos, isBackwards);\n if (!ranges) {\n var iterator = new TokenIterator(session, pos.row, pos.column);\n var token = iterator.getCurrentToken();\n if (token && /\\b(?:tag-open|tag-name)/.test(token.type)) {\n var tagNamesRanges = session.getMatchingTags(pos);\n if (tagNamesRanges)\n ranges = [tagNamesRanges.openTagName, tagNamesRanges.closeTagName];\n }\n }\n if (!ranges && session.$mode.getMatching)\n ranges = session.$mode.getMatching(self.session);\n if (!ranges) {\n if (self.getHighlightIndentGuides())\n self.renderer.$textLayer.$highlightIndentGuide();\n return;\n }\n var markerType = \"ace_bracket\";\n if (!Array.isArray(ranges)) {\n ranges = [ranges];\n }\n else if (ranges.length == 1) {\n markerType = \"ace_error_bracket\";\n }\n if (ranges.length == 2) {\n if (Range.comparePoints(ranges[0].end, ranges[1].start) == 0)\n ranges = [Range.fromPoints(ranges[0].start, ranges[1].end)];\n else if (Range.comparePoints(ranges[0].start, ranges[1].end) == 0)\n ranges = [Range.fromPoints(ranges[1].start, ranges[0].end)];\n }\n session.$bracketHighlight = {\n ranges: ranges,\n markerIds: ranges.map(function (range) {\n return session.addMarker(range, markerType, \"text\");\n })\n };\n if (self.getHighlightIndentGuides())\n self.renderer.$textLayer.$highlightIndentGuide();\n }, 50);\n };\n Editor.prototype.focus = function () {\n this.textInput.focus();\n };\n Editor.prototype.isFocused = function () {\n return this.textInput.isFocused();\n };\n Editor.prototype.blur = function () {\n this.textInput.blur();\n };\n Editor.prototype.onFocus = function (e) {\n if (this.$isFocused)\n return;\n this.$isFocused = true;\n this.renderer.showCursor();\n this.renderer.visualizeFocus();\n this._emit(\"focus\", e);\n };\n Editor.prototype.onBlur = function (e) {\n if (!this.$isFocused)\n return;\n this.$isFocused = false;\n this.renderer.hideCursor();\n this.renderer.visualizeBlur();\n this._emit(\"blur\", e);\n };\n Editor.prototype.$cursorChange = function () {\n this.renderer.updateCursor();\n this.$highlightBrackets();\n this.$updateHighlightActiveLine();\n };\n Editor.prototype.onDocumentChange = function (delta) {\n var wrap = this.session.$useWrapMode;\n var lastRow = (delta.start.row == delta.end.row ? delta.end.row : Infinity);\n this.renderer.updateLines(delta.start.row, lastRow, wrap);\n this._signal(\"change\", delta);\n this.$cursorChange();\n };\n Editor.prototype.onTokenizerUpdate = function (e) {\n var rows = e.data;\n this.renderer.updateLines(rows.first, rows.last);\n };\n Editor.prototype.onScrollTopChange = function () {\n this.renderer.scrollToY(this.session.getScrollTop());\n };\n Editor.prototype.onScrollLeftChange = function () {\n this.renderer.scrollToX(this.session.getScrollLeft());\n };\n Editor.prototype.onCursorChange = function () {\n this.$cursorChange();\n this._signal(\"changeSelection\");\n };\n Editor.prototype.$updateHighlightActiveLine = function () {\n var session = this.getSession();\n var highlight;\n if (this.$highlightActiveLine) {\n if (this.$selectionStyle != \"line\" || !this.selection.isMultiLine())\n highlight = this.getCursorPosition();\n if (this.renderer.theme && this.renderer.theme.$selectionColorConflict && !this.selection.isEmpty())\n highlight = false;\n if (this.renderer.$maxLines && this.session.getLength() === 1 && !(this.renderer.$minLines > 1))\n highlight = false;\n }\n if (session.$highlightLineMarker && !highlight) {\n session.removeMarker(session.$highlightLineMarker.id);\n session.$highlightLineMarker = null;\n }\n else if (!session.$highlightLineMarker && highlight) {\n var range = new Range(highlight.row, highlight.column, highlight.row, Infinity);\n range.id = session.addMarker(range, \"ace_active-line\", \"screenLine\");\n session.$highlightLineMarker = range;\n }\n else if (highlight) {\n session.$highlightLineMarker.start.row = highlight.row;\n session.$highlightLineMarker.end.row = highlight.row;\n session.$highlightLineMarker.start.column = highlight.column;\n session._signal(\"changeBackMarker\");\n }\n };\n Editor.prototype.onSelectionChange = function (e) {\n var session = this.session;\n if (session.$selectionMarker) {\n session.removeMarker(session.$selectionMarker);\n }\n session.$selectionMarker = null;\n if (!this.selection.isEmpty()) {\n var range = this.selection.getRange();\n var style = this.getSelectionStyle();\n session.$selectionMarker = session.addMarker(range, \"ace_selection\", style);\n }\n else {\n this.$updateHighlightActiveLine();\n }\n var re = this.$highlightSelectedWord && this.$getSelectionHighLightRegexp();\n this.session.highlight(re);\n this._signal(\"changeSelection\");\n };\n Editor.prototype.$getSelectionHighLightRegexp = function () {\n var session = this.session;\n var selection = this.getSelectionRange();\n if (selection.isEmpty() || selection.isMultiLine())\n return;\n var startColumn = selection.start.column;\n var endColumn = selection.end.column;\n var line = session.getLine(selection.start.row);\n var needle = line.substring(startColumn, endColumn);\n if (needle.length > 5000 || !/[\\w\\d]/.test(needle))\n return;\n var re = this.$search.$assembleRegExp({\n wholeWord: true,\n caseSensitive: true,\n needle: needle\n });\n var wordWithBoundary = line.substring(startColumn - 1, endColumn + 1);\n if (!re.test(wordWithBoundary))\n return;\n return re;\n };\n Editor.prototype.onChangeFrontMarker = function () {\n this.renderer.updateFrontMarkers();\n };\n Editor.prototype.onChangeBackMarker = function () {\n this.renderer.updateBackMarkers();\n };\n Editor.prototype.onChangeBreakpoint = function () {\n this.renderer.updateBreakpoints();\n };\n Editor.prototype.onChangeAnnotation = function () {\n this.renderer.setAnnotations(this.session.getAnnotations());\n };\n Editor.prototype.onChangeMode = function (e) {\n this.renderer.updateText();\n this._emit(\"changeMode\", e);\n };\n Editor.prototype.onChangeWrapLimit = function () {\n this.renderer.updateFull();\n };\n Editor.prototype.onChangeWrapMode = function () {\n this.renderer.onResize(true);\n };\n Editor.prototype.onChangeFold = function () {\n this.$updateHighlightActiveLine();\n this.renderer.updateFull();\n };\n Editor.prototype.getSelectedText = function () {\n return this.session.getTextRange(this.getSelectionRange());\n };\n Editor.prototype.getCopyText = function () {\n var text = this.getSelectedText();\n var nl = this.session.doc.getNewLineCharacter();\n var copyLine = false;\n if (!text && this.$copyWithEmptySelection) {\n copyLine = true;\n var ranges = this.selection.getAllRanges();\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n if (i && ranges[i - 1].start.row == range.start.row)\n continue;\n text += this.session.getLine(range.start.row) + nl;\n }\n }\n var e = { text: text };\n this._signal(\"copy\", e);\n clipboard.lineMode = copyLine ? e.text : false;\n return e.text;\n };\n Editor.prototype.onCopy = function () {\n this.commands.exec(\"copy\", this);\n };\n Editor.prototype.onCut = function () {\n this.commands.exec(\"cut\", this);\n };\n Editor.prototype.onPaste = function (text, event) {\n var e = { text: text, event: event };\n this.commands.exec(\"paste\", this, e);\n };\n Editor.prototype.$handlePaste = function (e) {\n if (typeof e == \"string\")\n e = { text: e };\n this._signal(\"paste\", e);\n var text = e.text;\n var lineMode = text === clipboard.lineMode;\n var session = this.session;\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode) {\n if (lineMode)\n session.insert({ row: this.selection.lead.row, column: 0 }, text);\n else\n this.insert(text);\n }\n else if (lineMode) {\n this.selection.rangeList.ranges.forEach(function (range) {\n session.insert({ row: range.start.row, column: 0 }, text);\n });\n }\n else {\n var lines = text.split(/\\r\\n|\\r|\\n/);\n var ranges = this.selection.rangeList.ranges;\n var isFullLine = lines.length == 2 && (!lines[0] || !lines[1]);\n if (lines.length != ranges.length || isFullLine)\n return this.commands.exec(\"insertstring\", this, text);\n for (var i = ranges.length; i--;) {\n var range = ranges[i];\n if (!range.isEmpty())\n session.remove(range);\n session.insert(range.start, lines[i]);\n }\n }\n };\n Editor.prototype.execCommand = function (command, args) {\n return this.commands.exec(command, this, args);\n };\n Editor.prototype.insert = function (text, pasted) {\n var session = this.session;\n var mode = session.getMode();\n var cursor = this.getCursorPosition();\n if (this.getBehavioursEnabled() && !pasted) {\n var transform = mode.transformAction(session.getState(cursor.row), 'insertion', this, session, text);\n if (transform) {\n if (text !== transform.text) {\n if (!this.inVirtualSelectionMode) {\n this.session.mergeUndoDeltas = false;\n this.mergeNextCommand = false;\n }\n }\n text = transform.text;\n }\n }\n if (text == \"\\t\")\n text = this.session.getTabString();\n if (!this.selection.isEmpty()) {\n var range = this.getSelectionRange();\n cursor = this.session.remove(range);\n this.clearSelection();\n }\n else if (this.session.getOverwrite() && text.indexOf(\"\\n\") == -1) {\n var range = new Range.fromPoints(cursor, cursor);\n range.end.column += text.length;\n this.session.remove(range);\n }\n if (text == \"\\n\" || text == \"\\r\\n\") {\n var line = session.getLine(cursor.row);\n if (cursor.column > line.search(/\\S|$/)) {\n var d = line.substr(cursor.column).search(/\\S|$/);\n session.doc.removeInLine(cursor.row, cursor.column, cursor.column + d);\n }\n }\n this.clearSelection();\n var start = cursor.column;\n var lineState = session.getState(cursor.row);\n var line = session.getLine(cursor.row);\n var shouldOutdent = mode.checkOutdent(lineState, line, text);\n session.insert(cursor, text);\n if (transform && transform.selection) {\n if (transform.selection.length == 2) { // Transform relative to the current column\n this.selection.setSelectionRange(new Range(cursor.row, start + transform.selection[0], cursor.row, start + transform.selection[1]));\n }\n else { // Transform relative to the current row.\n this.selection.setSelectionRange(new Range(cursor.row + transform.selection[0], transform.selection[1], cursor.row + transform.selection[2], transform.selection[3]));\n }\n }\n if (this.$enableAutoIndent) {\n if (session.getDocument().isNewLine(text)) {\n var lineIndent = mode.getNextLineIndent(lineState, line.slice(0, cursor.column), session.getTabString());\n session.insert({ row: cursor.row + 1, column: 0 }, lineIndent);\n }\n if (shouldOutdent)\n mode.autoOutdent(lineState, session, cursor.row);\n }\n };\n Editor.prototype.autoIndent = function () {\n var session = this.session;\n var mode = session.getMode();\n var startRow, endRow;\n if (this.selection.isEmpty()) {\n startRow = 0;\n endRow = session.doc.getLength() - 1;\n }\n else {\n var selectedRange = this.getSelectionRange();\n startRow = selectedRange.start.row;\n endRow = selectedRange.end.row;\n }\n var prevLineState = \"\";\n var prevLine = \"\";\n var lineIndent = \"\";\n var line, currIndent, range;\n var tab = session.getTabString();\n for (var row = startRow; row <= endRow; row++) {\n if (row > 0) {\n prevLineState = session.getState(row - 1);\n prevLine = session.getLine(row - 1);\n lineIndent = mode.getNextLineIndent(prevLineState, prevLine, tab);\n }\n line = session.getLine(row);\n currIndent = mode.$getIndent(line);\n if (lineIndent !== currIndent) {\n if (currIndent.length > 0) {\n range = new Range(row, 0, row, currIndent.length);\n session.remove(range);\n }\n if (lineIndent.length > 0) {\n session.insert({ row: row, column: 0 }, lineIndent);\n }\n }\n mode.autoOutdent(prevLineState, session, row);\n }\n };\n Editor.prototype.onTextInput = function (text, composition) {\n if (!composition)\n return this.keyBinding.onTextInput(text);\n this.startOperation({ command: { name: \"insertstring\" } });\n var applyComposition = this.applyComposition.bind(this, text, composition);\n if (this.selection.rangeCount)\n this.forEachSelection(applyComposition);\n else\n applyComposition();\n this.endOperation();\n };\n Editor.prototype.applyComposition = function (text, composition) {\n if (composition.extendLeft || composition.extendRight) {\n var r = this.selection.getRange();\n r.start.column -= composition.extendLeft;\n r.end.column += composition.extendRight;\n if (r.start.column < 0) {\n r.start.row--;\n r.start.column += this.session.getLine(r.start.row).length + 1;\n }\n this.selection.setRange(r);\n if (!text && !r.isEmpty())\n this.remove();\n }\n if (text || !this.selection.isEmpty())\n this.insert(text, true);\n if (composition.restoreStart || composition.restoreEnd) {\n var r = this.selection.getRange();\n r.start.column -= composition.restoreStart;\n r.end.column -= composition.restoreEnd;\n this.selection.setRange(r);\n }\n };\n Editor.prototype.onCommandKey = function (e, hashId, keyCode) {\n return this.keyBinding.onCommandKey(e, hashId, keyCode);\n };\n Editor.prototype.setOverwrite = function (overwrite) {\n this.session.setOverwrite(overwrite);\n };\n Editor.prototype.getOverwrite = function () {\n return this.session.getOverwrite();\n };\n Editor.prototype.toggleOverwrite = function () {\n this.session.toggleOverwrite();\n };\n Editor.prototype.setScrollSpeed = function (speed) {\n this.setOption(\"scrollSpeed\", speed);\n };\n Editor.prototype.getScrollSpeed = function () {\n return this.getOption(\"scrollSpeed\");\n };\n Editor.prototype.setDragDelay = function (dragDelay) {\n this.setOption(\"dragDelay\", dragDelay);\n };\n Editor.prototype.getDragDelay = function () {\n return this.getOption(\"dragDelay\");\n };\n Editor.prototype.setSelectionStyle = function (val) {\n this.setOption(\"selectionStyle\", val);\n };\n Editor.prototype.getSelectionStyle = function () {\n return this.getOption(\"selectionStyle\");\n };\n Editor.prototype.setHighlightActiveLine = function (shouldHighlight) {\n this.setOption(\"highlightActiveLine\", shouldHighlight);\n };\n Editor.prototype.getHighlightActiveLine = function () {\n return this.getOption(\"highlightActiveLine\");\n };\n Editor.prototype.setHighlightGutterLine = function (shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n Editor.prototype.getHighlightGutterLine = function () {\n return this.getOption(\"highlightGutterLine\");\n };\n Editor.prototype.setHighlightSelectedWord = function (shouldHighlight) {\n this.setOption(\"highlightSelectedWord\", shouldHighlight);\n };\n Editor.prototype.getHighlightSelectedWord = function () {\n return this.$highlightSelectedWord;\n };\n Editor.prototype.setAnimatedScroll = function (shouldAnimate) {\n this.renderer.setAnimatedScroll(shouldAnimate);\n };\n Editor.prototype.getAnimatedScroll = function () {\n return this.renderer.getAnimatedScroll();\n };\n Editor.prototype.setShowInvisibles = function (showInvisibles) {\n this.renderer.setShowInvisibles(showInvisibles);\n };\n Editor.prototype.getShowInvisibles = function () {\n return this.renderer.getShowInvisibles();\n };\n Editor.prototype.setDisplayIndentGuides = function (display) {\n this.renderer.setDisplayIndentGuides(display);\n };\n Editor.prototype.getDisplayIndentGuides = function () {\n return this.renderer.getDisplayIndentGuides();\n };\n Editor.prototype.setHighlightIndentGuides = function (highlight) {\n this.renderer.setHighlightIndentGuides(highlight);\n };\n Editor.prototype.getHighlightIndentGuides = function () {\n return this.renderer.getHighlightIndentGuides();\n };\n Editor.prototype.setShowPrintMargin = function (showPrintMargin) {\n this.renderer.setShowPrintMargin(showPrintMargin);\n };\n Editor.prototype.getShowPrintMargin = function () {\n return this.renderer.getShowPrintMargin();\n };\n Editor.prototype.setPrintMarginColumn = function (showPrintMargin) {\n this.renderer.setPrintMarginColumn(showPrintMargin);\n };\n Editor.prototype.getPrintMarginColumn = function () {\n return this.renderer.getPrintMarginColumn();\n };\n Editor.prototype.setReadOnly = function (readOnly) {\n this.setOption(\"readOnly\", readOnly);\n };\n Editor.prototype.getReadOnly = function () {\n return this.getOption(\"readOnly\");\n };\n Editor.prototype.setBehavioursEnabled = function (enabled) {\n this.setOption(\"behavioursEnabled\", enabled);\n };\n Editor.prototype.getBehavioursEnabled = function () {\n return this.getOption(\"behavioursEnabled\");\n };\n Editor.prototype.setWrapBehavioursEnabled = function (enabled) {\n this.setOption(\"wrapBehavioursEnabled\", enabled);\n };\n Editor.prototype.getWrapBehavioursEnabled = function () {\n return this.getOption(\"wrapBehavioursEnabled\");\n };\n Editor.prototype.setShowFoldWidgets = function (show) {\n this.setOption(\"showFoldWidgets\", show);\n };\n Editor.prototype.getShowFoldWidgets = function () {\n return this.getOption(\"showFoldWidgets\");\n };\n Editor.prototype.setFadeFoldWidgets = function (fade) {\n this.setOption(\"fadeFoldWidgets\", fade);\n };\n Editor.prototype.getFadeFoldWidgets = function () {\n return this.getOption(\"fadeFoldWidgets\");\n };\n Editor.prototype.remove = function (dir) {\n if (this.selection.isEmpty()) {\n if (dir == \"left\")\n this.selection.selectLeft();\n else\n this.selection.selectRight();\n }\n var range = this.getSelectionRange();\n if (this.getBehavioursEnabled()) {\n var session = this.session;\n var state = session.getState(range.start.row);\n var new_range = session.getMode().transformAction(state, 'deletion', this, session, range);\n if (range.end.column === 0) {\n var text = session.getTextRange(range);\n if (text[text.length - 1] == \"\\n\") {\n var line = session.getLine(range.end.row);\n if (/^\\s+$/.test(line)) {\n range.end.column = line.length;\n }\n }\n }\n if (new_range)\n range = new_range;\n }\n this.session.remove(range);\n this.clearSelection();\n };\n Editor.prototype.removeWordRight = function () {\n if (this.selection.isEmpty())\n this.selection.selectWordRight();\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n Editor.prototype.removeWordLeft = function () {\n if (this.selection.isEmpty())\n this.selection.selectWordLeft();\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n Editor.prototype.removeToLineStart = function () {\n if (this.selection.isEmpty())\n this.selection.selectLineStart();\n if (this.selection.isEmpty())\n this.selection.selectLeft();\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n Editor.prototype.removeToLineEnd = function () {\n if (this.selection.isEmpty())\n this.selection.selectLineEnd();\n var range = this.getSelectionRange();\n if (range.start.column == range.end.column && range.start.row == range.end.row) {\n range.end.column = 0;\n range.end.row++;\n }\n this.session.remove(range);\n this.clearSelection();\n };\n Editor.prototype.splitLine = function () {\n if (!this.selection.isEmpty()) {\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n }\n var cursor = this.getCursorPosition();\n this.insert(\"\\n\");\n this.moveCursorToPosition(cursor);\n };\n Editor.prototype.setGhostText = function (text, position) {\n if (!this.session.widgetManager) {\n this.session.widgetManager = new LineWidgets(this.session);\n this.session.widgetManager.attach(this);\n }\n this.renderer.setGhostText(text, position);\n };\n Editor.prototype.removeGhostText = function () {\n if (!this.session.widgetManager)\n return;\n this.renderer.removeGhostText();\n };\n Editor.prototype.transposeLetters = function () {\n if (!this.selection.isEmpty()) {\n return;\n }\n var cursor = this.getCursorPosition();\n var column = cursor.column;\n if (column === 0)\n return;\n var line = this.session.getLine(cursor.row);\n var swap, range;\n if (column < line.length) {\n swap = line.charAt(column) + line.charAt(column - 1);\n range = new Range(cursor.row, column - 1, cursor.row, column + 1);\n }\n else {\n swap = line.charAt(column - 1) + line.charAt(column - 2);\n range = new Range(cursor.row, column - 2, cursor.row, column);\n }\n this.session.replace(range, swap);\n this.session.selection.moveToPosition(range.end);\n };\n Editor.prototype.toLowerCase = function () {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toLowerCase());\n this.selection.setSelectionRange(originalRange);\n };\n Editor.prototype.toUpperCase = function () {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toUpperCase());\n this.selection.setSelectionRange(originalRange);\n };\n Editor.prototype.indent = function () {\n var session = this.session;\n var range = this.getSelectionRange();\n if (range.start.row < range.end.row) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n }\n else if (range.start.column < range.end.column) {\n var text = session.getTextRange(range);\n if (!/^\\s+$/.test(text)) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n }\n }\n var line = session.getLine(range.start.row);\n var position = range.start;\n var size = session.getTabSize();\n var column = session.documentToScreenColumn(position.row, position.column);\n if (this.session.getUseSoftTabs()) {\n var count = (size - column % size);\n var indentString = lang.stringRepeat(\" \", count);\n }\n else {\n var count = column % size;\n while (line[range.start.column - 1] == \" \" && count) {\n range.start.column--;\n count--;\n }\n this.selection.setSelectionRange(range);\n indentString = \"\\t\";\n }\n return this.insert(indentString);\n };\n Editor.prototype.blockIndent = function () {\n var rows = this.$getSelectedRows();\n this.session.indentRows(rows.first, rows.last, \"\\t\");\n };\n Editor.prototype.blockOutdent = function () {\n var selection = this.session.getSelection();\n this.session.outdentRows(selection.getRange());\n };\n Editor.prototype.sortLines = function () {\n var rows = this.$getSelectedRows();\n var session = this.session;\n var lines = [];\n for (var i = rows.first; i <= rows.last; i++)\n lines.push(session.getLine(i));\n lines.sort(function (a, b) {\n if (a.toLowerCase() < b.toLowerCase())\n return -1;\n if (a.toLowerCase() > b.toLowerCase())\n return 1;\n return 0;\n });\n var deleteRange = new Range(0, 0, 0, 0);\n for (var i = rows.first; i <= rows.last; i++) {\n var line = session.getLine(i);\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n deleteRange.end.column = line.length;\n session.replace(deleteRange, lines[i - rows.first]);\n }\n };\n Editor.prototype.toggleCommentLines = function () {\n var state = this.session.getState(this.getCursorPosition().row);\n var rows = this.$getSelectedRows();\n this.session.getMode().toggleCommentLines(state, this.session, rows.first, rows.last);\n };\n Editor.prototype.toggleBlockComment = function () {\n var cursor = this.getCursorPosition();\n var state = this.session.getState(cursor.row);\n var range = this.getSelectionRange();\n this.session.getMode().toggleBlockComment(state, this.session, range, cursor);\n };\n Editor.prototype.getNumberAt = function (row, column) {\n var _numberRx = /[\\-]?[0-9]+(?:\\.[0-9]+)?/g;\n _numberRx.lastIndex = 0;\n var s = this.session.getLine(row);\n while (_numberRx.lastIndex < column) {\n var m = _numberRx.exec(s);\n if (m.index <= column && m.index + m[0].length >= column) {\n var number = {\n value: m[0],\n start: m.index,\n end: m.index + m[0].length\n };\n return number;\n }\n }\n return null;\n };\n Editor.prototype.modifyNumber = function (amount) {\n var row = this.selection.getCursor().row;\n var column = this.selection.getCursor().column;\n var charRange = new Range(row, column - 1, row, column);\n var c = this.session.getTextRange(charRange);\n if (!isNaN(parseFloat(c)) && isFinite(c)) {\n var nr = this.getNumberAt(row, column);\n if (nr) {\n var fp = nr.value.indexOf(\".\") >= 0 ? nr.start + nr.value.indexOf(\".\") + 1 : nr.end;\n var decimals = nr.start + nr.value.length - fp;\n var t = parseFloat(nr.value);\n t *= Math.pow(10, decimals);\n if (fp !== nr.end && column < fp) {\n amount *= Math.pow(10, nr.end - column - 1);\n }\n else {\n amount *= Math.pow(10, nr.end - column);\n }\n t += amount;\n t /= Math.pow(10, decimals);\n var nnr = t.toFixed(decimals);\n var replaceRange = new Range(row, nr.start, row, nr.end);\n this.session.replace(replaceRange, nnr);\n this.moveCursorTo(row, Math.max(nr.start + 1, column + nnr.length - nr.value.length));\n }\n }\n else {\n this.toggleWord();\n }\n };\n Editor.prototype.toggleWord = function () {\n var row = this.selection.getCursor().row;\n var column = this.selection.getCursor().column;\n this.selection.selectWord();\n var currentState = this.getSelectedText();\n var currWordStart = this.selection.getWordRange().start.column;\n var wordParts = currentState.replace(/([a-z]+|[A-Z]+)(?=[A-Z_]|$)/g, '$1 ').split(/\\s/);\n var delta = column - currWordStart - 1;\n if (delta < 0)\n delta = 0;\n var curLength = 0, itLength = 0;\n var that = this;\n if (currentState.match(/[A-Za-z0-9_]+/)) {\n wordParts.forEach(function (item, i) {\n itLength = curLength + item.length;\n if (delta >= curLength && delta <= itLength) {\n currentState = item;\n that.selection.clearSelection();\n that.moveCursorTo(row, curLength + currWordStart);\n that.selection.selectTo(row, itLength + currWordStart);\n }\n curLength = itLength;\n });\n }\n var wordPairs = this.$toggleWordPairs;\n var reg;\n for (var i = 0; i < wordPairs.length; i++) {\n var item = wordPairs[i];\n for (var j = 0; j <= 1; j++) {\n var negate = +!j;\n var firstCondition = currentState.match(new RegExp('^\\\\s?_?(' + lang.escapeRegExp(item[j]) + ')\\\\s?$', 'i'));\n if (firstCondition) {\n var secondCondition = currentState.match(new RegExp('([_]|^|\\\\s)(' + lang.escapeRegExp(firstCondition[1]) + ')($|\\\\s)', 'g'));\n if (secondCondition) {\n reg = currentState.replace(new RegExp(lang.escapeRegExp(item[j]), 'i'), function (result) {\n var res = item[negate];\n if (result.toUpperCase() == result) {\n res = res.toUpperCase();\n }\n else if (result.charAt(0).toUpperCase() == result.charAt(0)) {\n res = res.substr(0, 0) + item[negate].charAt(0).toUpperCase() + res.substr(1);\n }\n return res;\n });\n this.insert(reg);\n reg = \"\";\n }\n }\n }\n }\n };\n Editor.prototype.findLinkAt = function (row, column) {\n var e_1, _a;\n var line = this.session.getLine(row);\n var wordParts = line.split(/((?:https?|ftp):\\/\\/[\\S]+)/);\n var columnPosition = column;\n if (columnPosition < 0)\n columnPosition = 0;\n var previousPosition = 0, currentPosition = 0, match;\n try {\n for (var wordParts_1 = __values(wordParts), wordParts_1_1 = wordParts_1.next(); !wordParts_1_1.done; wordParts_1_1 = wordParts_1.next()) {\n var item = wordParts_1_1.value;\n currentPosition = previousPosition + item.length;\n if (columnPosition >= previousPosition && columnPosition <= currentPosition) {\n if (item.match(/((?:https?|ftp):\\/\\/[\\S]+)/)) {\n match = item.replace(/[\\s:.,'\";}\\]]+$/, \"\");\n break;\n }\n }\n previousPosition = currentPosition;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (wordParts_1_1 && !wordParts_1_1.done && (_a = wordParts_1.return)) _a.call(wordParts_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return match;\n };\n Editor.prototype.openLink = function () {\n var cursor = this.selection.getCursor();\n var url = this.findLinkAt(cursor.row, cursor.column);\n if (url)\n window.open(url, '_blank');\n return url != null;\n };\n Editor.prototype.removeLines = function () {\n var rows = this.$getSelectedRows();\n this.session.removeFullLines(rows.first, rows.last);\n this.clearSelection();\n };\n Editor.prototype.duplicateSelection = function () {\n var sel = this.selection;\n var doc = this.session;\n var range = sel.getRange();\n var reverse = sel.isBackwards();\n if (range.isEmpty()) {\n var row = range.start.row;\n doc.duplicateLines(row, row);\n }\n else {\n var point = reverse ? range.start : range.end;\n var endPoint = doc.insert(point, doc.getTextRange(range), false);\n range.start = point;\n range.end = endPoint;\n sel.setSelectionRange(range, reverse);\n }\n };\n Editor.prototype.moveLinesDown = function () {\n this.$moveLines(1, false);\n };\n Editor.prototype.moveLinesUp = function () {\n this.$moveLines(-1, false);\n };\n Editor.prototype.moveText = function (range, toPosition, copy) {\n return this.session.moveText(range, toPosition, copy);\n };\n Editor.prototype.copyLinesUp = function () {\n this.$moveLines(-1, true);\n };\n Editor.prototype.copyLinesDown = function () {\n this.$moveLines(1, true);\n };\n Editor.prototype.$moveLines = function (dir, copy) {\n var rows, moved;\n var selection = this.selection;\n if (!selection.inMultiSelectMode || this.inVirtualSelectionMode) {\n var range = selection.toOrientedRange();\n rows = this.$getSelectedRows(range);\n moved = this.session.$moveLines(rows.first, rows.last, copy ? 0 : dir);\n if (copy && dir == -1)\n moved = 0;\n range.moveBy(moved, 0);\n selection.fromOrientedRange(range);\n }\n else {\n var ranges = selection.rangeList.ranges;\n selection.rangeList.detach(this.session);\n this.inVirtualSelectionMode = true;\n var diff = 0;\n var totalDiff = 0;\n var l = ranges.length;\n for (var i = 0; i < l; i++) {\n var rangeIndex = i;\n ranges[i].moveBy(diff, 0);\n rows = this.$getSelectedRows(ranges[i]);\n var first = rows.first;\n var last = rows.last;\n while (++i < l) {\n if (totalDiff)\n ranges[i].moveBy(totalDiff, 0);\n var subRows = this.$getSelectedRows(ranges[i]);\n if (copy && subRows.first != last)\n break;\n else if (!copy && subRows.first > last + 1)\n break;\n last = subRows.last;\n }\n i--;\n diff = this.session.$moveLines(first, last, copy ? 0 : dir);\n if (copy && dir == -1)\n rangeIndex = i + 1;\n while (rangeIndex <= i) {\n ranges[rangeIndex].moveBy(diff, 0);\n rangeIndex++;\n }\n if (!copy)\n diff = 0;\n totalDiff += diff;\n }\n selection.fromOrientedRange(selection.ranges[0]);\n selection.rangeList.attach(this.session);\n this.inVirtualSelectionMode = false;\n }\n };\n Editor.prototype.$getSelectedRows = function (range) {\n range = (range || this.getSelectionRange()).collapseRows();\n return {\n first: this.session.getRowFoldStart(range.start.row),\n last: this.session.getRowFoldEnd(range.end.row)\n };\n };\n Editor.prototype.onCompositionStart = function (compositionState) {\n this.renderer.showComposition(compositionState);\n };\n Editor.prototype.onCompositionUpdate = function (text) {\n this.renderer.setCompositionText(text);\n };\n Editor.prototype.onCompositionEnd = function () {\n this.renderer.hideComposition();\n };\n Editor.prototype.getFirstVisibleRow = function () {\n return this.renderer.getFirstVisibleRow();\n };\n Editor.prototype.getLastVisibleRow = function () {\n return this.renderer.getLastVisibleRow();\n };\n Editor.prototype.isRowVisible = function (row) {\n return (row >= this.getFirstVisibleRow() && row <= this.getLastVisibleRow());\n };\n Editor.prototype.isRowFullyVisible = function (row) {\n return (row >= this.renderer.getFirstFullyVisibleRow() && row <= this.renderer.getLastFullyVisibleRow());\n };\n Editor.prototype.$getVisibleRowCount = function () {\n return this.renderer.getScrollBottomRow() - this.renderer.getScrollTopRow() + 1;\n };\n Editor.prototype.$moveByPage = function (dir, select) {\n var renderer = this.renderer;\n var config = this.renderer.layerConfig;\n var rows = dir * Math.floor(config.height / config.lineHeight);\n if (select === true) {\n this.selection.$moveSelection(function () {\n this.moveCursorBy(rows, 0);\n });\n }\n else if (select === false) {\n this.selection.moveCursorBy(rows, 0);\n this.selection.clearSelection();\n }\n var scrollTop = renderer.scrollTop;\n renderer.scrollBy(0, rows * config.lineHeight);\n if (select != null)\n renderer.scrollCursorIntoView(null, 0.5);\n renderer.animateScrolling(scrollTop);\n };\n Editor.prototype.selectPageDown = function () {\n this.$moveByPage(1, true);\n };\n Editor.prototype.selectPageUp = function () {\n this.$moveByPage(-1, true);\n };\n Editor.prototype.gotoPageDown = function () {\n this.$moveByPage(1, false);\n };\n Editor.prototype.gotoPageUp = function () {\n this.$moveByPage(-1, false);\n };\n Editor.prototype.scrollPageDown = function () {\n this.$moveByPage(1);\n };\n Editor.prototype.scrollPageUp = function () {\n this.$moveByPage(-1);\n };\n Editor.prototype.scrollToRow = function (row) {\n this.renderer.scrollToRow(row);\n };\n Editor.prototype.scrollToLine = function (line, center, animate, callback) {\n this.renderer.scrollToLine(line, center, animate, callback);\n };\n Editor.prototype.centerSelection = function () {\n var range = this.getSelectionRange();\n var pos = {\n row: Math.floor(range.start.row + (range.end.row - range.start.row) / 2),\n column: Math.floor(range.start.column + (range.end.column - range.start.column) / 2)\n };\n this.renderer.alignCursor(pos, 0.5);\n };\n Editor.prototype.getCursorPosition = function () {\n return this.selection.getCursor();\n };\n Editor.prototype.getCursorPositionScreen = function () {\n return this.session.documentToScreenPosition(this.getCursorPosition());\n };\n Editor.prototype.getSelectionRange = function () {\n return this.selection.getRange();\n };\n Editor.prototype.selectAll = function () {\n this.selection.selectAll();\n };\n Editor.prototype.clearSelection = function () {\n this.selection.clearSelection();\n };\n Editor.prototype.moveCursorTo = function (row, column) {\n this.selection.moveCursorTo(row, column);\n };\n Editor.prototype.moveCursorToPosition = function (pos) {\n this.selection.moveCursorToPosition(pos);\n };\n Editor.prototype.jumpToMatching = function (select, expand) {\n var cursor = this.getCursorPosition();\n var iterator = new TokenIterator(this.session, cursor.row, cursor.column);\n var prevToken = iterator.getCurrentToken();\n var tokenCount = 0;\n if (prevToken && prevToken.type.indexOf('tag-name') !== -1) {\n prevToken = iterator.stepBackward();\n }\n var token = prevToken || iterator.stepForward();\n if (!token)\n return;\n var matchType;\n var found = false;\n var depth = {};\n var i = cursor.column - token.start;\n var bracketType;\n var brackets = {\n \")\": \"(\",\n \"(\": \"(\",\n \"]\": \"[\",\n \"[\": \"[\",\n \"{\": \"{\",\n \"}\": \"{\"\n };\n do {\n if (token.value.match(/[{}()\\[\\]]/g)) {\n for (; i < token.value.length && !found; i++) {\n if (!brackets[token.value[i]]) {\n continue;\n }\n bracketType = brackets[token.value[i]] + '.' + token.type.replace(\"rparen\", \"lparen\");\n if (isNaN(depth[bracketType])) {\n depth[bracketType] = 0;\n }\n switch (token.value[i]) {\n case '(':\n case '[':\n case '{':\n depth[bracketType]++;\n break;\n case ')':\n case ']':\n case '}':\n depth[bracketType]--;\n if (depth[bracketType] === -1) {\n matchType = 'bracket';\n found = true;\n }\n break;\n }\n }\n }\n else if (token.type.indexOf('tag-name') !== -1) {\n if (isNaN(depth[token.value])) {\n depth[token.value] = 0;\n }\n if (prevToken.value === '<' && tokenCount > 1) {\n depth[token.value]++;\n }\n else if (prevToken.value === '= 0; --i) {\n if (this.$tryReplace(ranges[i], replacement)) {\n replaced++;\n }\n }\n this.selection.setSelectionRange(selection);\n return replaced;\n };\n Editor.prototype.$tryReplace = function (range, replacement) {\n var input = this.session.getTextRange(range);\n replacement = this.$search.replace(input, replacement);\n if (replacement !== null) {\n range.end = this.session.replace(range, replacement);\n return range;\n }\n else {\n return null;\n }\n };\n Editor.prototype.getLastSearchOptions = function () {\n return this.$search.getOptions();\n };\n Editor.prototype.find = function (needle, options, animate) {\n if (!options)\n options = {};\n if (typeof needle == \"string\" || needle instanceof RegExp)\n options.needle = needle;\n else if (typeof needle == \"object\")\n oop.mixin(options, needle);\n var range = this.selection.getRange();\n if (options.needle == null) {\n needle = this.session.getTextRange(range)\n || this.$search.$options.needle;\n if (!needle) {\n range = this.session.getWordRange(range.start.row, range.start.column);\n needle = this.session.getTextRange(range);\n }\n this.$search.set({ needle: needle });\n }\n this.$search.set(options);\n if (!options.start)\n this.$search.set({ start: range });\n var newRange = this.$search.find(this.session);\n if (options.preventScroll)\n return newRange;\n if (newRange) {\n this.revealRange(newRange, animate);\n return newRange;\n }\n if (options.backwards)\n range.start = range.end;\n else\n range.end = range.start;\n this.selection.setRange(range);\n };\n Editor.prototype.findNext = function (options, animate) {\n this.find({ skipCurrent: true, backwards: false }, options, animate);\n };\n Editor.prototype.findPrevious = function (options, animate) {\n this.find(options, { skipCurrent: true, backwards: true }, animate);\n };\n Editor.prototype.revealRange = function (range, animate) {\n this.session.unfold(range);\n this.selection.setSelectionRange(range);\n var scrollTop = this.renderer.scrollTop;\n this.renderer.scrollSelectionIntoView(range.start, range.end, 0.5);\n if (animate !== false)\n this.renderer.animateScrolling(scrollTop);\n };\n Editor.prototype.undo = function () {\n this.session.getUndoManager().undo(this.session);\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n Editor.prototype.redo = function () {\n this.session.getUndoManager().redo(this.session);\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n Editor.prototype.destroy = function () {\n if (this.$toDestroy) {\n this.$toDestroy.forEach(function (el) {\n el.destroy();\n });\n this.$toDestroy = null;\n }\n if (this.$mouseHandler)\n this.$mouseHandler.destroy();\n this.renderer.destroy();\n this._signal(\"destroy\", this);\n if (this.session)\n this.session.destroy();\n if (this._$emitInputEvent)\n this._$emitInputEvent.cancel();\n this.removeAllListeners();\n };\n Editor.prototype.setAutoScrollEditorIntoView = function (enable) {\n if (!enable)\n return;\n var rect;\n var self = this;\n var shouldScroll = false;\n if (!this.$scrollAnchor)\n this.$scrollAnchor = document.createElement(\"div\");\n var scrollAnchor = this.$scrollAnchor;\n scrollAnchor.style.cssText = \"position:absolute\";\n this.container.insertBefore(scrollAnchor, this.container.firstChild);\n var onChangeSelection = this.on(\"changeSelection\", function () {\n shouldScroll = true;\n });\n var onBeforeRender = this.renderer.on(\"beforeRender\", function () {\n if (shouldScroll)\n rect = self.renderer.container.getBoundingClientRect();\n });\n var onAfterRender = this.renderer.on(\"afterRender\", function () {\n if (shouldScroll && rect && (self.isFocused()\n || self.searchBox && self.searchBox.isFocused())) {\n var renderer = self.renderer;\n var pos = renderer.$cursorLayer.$pixelPos;\n var config = renderer.layerConfig;\n var top = pos.top - config.offset;\n if (pos.top >= 0 && top + rect.top < 0) {\n shouldScroll = true;\n }\n else if (pos.top < config.height &&\n pos.top + rect.top + config.lineHeight > window.innerHeight) {\n shouldScroll = false;\n }\n else {\n shouldScroll = null;\n }\n if (shouldScroll != null) {\n scrollAnchor.style.top = top + \"px\";\n scrollAnchor.style.left = pos.left + \"px\";\n scrollAnchor.style.height = config.lineHeight + \"px\";\n scrollAnchor.scrollIntoView(shouldScroll);\n }\n shouldScroll = rect = null;\n }\n });\n this.setAutoScrollEditorIntoView = function (enable) {\n if (enable)\n return;\n delete this.setAutoScrollEditorIntoView;\n this.off(\"changeSelection\", onChangeSelection);\n this.renderer.off(\"afterRender\", onAfterRender);\n this.renderer.off(\"beforeRender\", onBeforeRender);\n };\n };\n Editor.prototype.$resetCursorStyle = function () {\n var style = this.$cursorStyle || \"ace\";\n var cursorLayer = this.renderer.$cursorLayer;\n if (!cursorLayer)\n return;\n cursorLayer.setSmoothBlinking(/smooth/.test(style));\n cursorLayer.isBlinking = !this.$readOnly && style != \"wide\";\n dom.setCssClass(cursorLayer.element, \"ace_slim-cursors\", /slim/.test(style));\n };\n Editor.prototype.prompt = function (message, options, callback) {\n var editor = this;\n config.loadModule(\"ace/ext/prompt\", function (module) {\n module.prompt(editor, message, options, callback);\n });\n };\n return Editor;\n}());\nEditor.$uid = 0;\nEditor.prototype.curOp = null;\nEditor.prototype.prevOp = {};\nEditor.prototype.$mergeableCommands = [\"backspace\", \"del\", \"insertstring\"];\nEditor.prototype.$toggleWordPairs = [\n [\"first\", \"last\"],\n [\"true\", \"false\"],\n [\"yes\", \"no\"],\n [\"width\", \"height\"],\n [\"top\", \"bottom\"],\n [\"right\", \"left\"],\n [\"on\", \"off\"],\n [\"x\", \"y\"],\n [\"get\", \"set\"],\n [\"max\", \"min\"],\n [\"horizontal\", \"vertical\"],\n [\"show\", \"hide\"],\n [\"add\", \"remove\"],\n [\"up\", \"down\"],\n [\"before\", \"after\"],\n [\"even\", \"odd\"],\n [\"in\", \"out\"],\n [\"inside\", \"outside\"],\n [\"next\", \"previous\"],\n [\"increase\", \"decrease\"],\n [\"attach\", \"detach\"],\n [\"&&\", \"||\"],\n [\"==\", \"!=\"]\n];\noop.implement(Editor.prototype, EventEmitter);\nconfig.defineOptions(Editor.prototype, \"editor\", {\n selectionStyle: {\n set: function (style) {\n this.onSelectionChange();\n this._signal(\"changeSelectionStyle\", { data: style });\n },\n initialValue: \"line\"\n },\n highlightActiveLine: {\n set: function () { this.$updateHighlightActiveLine(); },\n initialValue: true\n },\n highlightSelectedWord: {\n set: function (shouldHighlight) { this.$onSelectionChange(); },\n initialValue: true\n },\n readOnly: {\n set: function (readOnly) {\n this.textInput.setReadOnly(readOnly);\n this.$resetCursorStyle();\n },\n initialValue: false\n },\n copyWithEmptySelection: {\n set: function (value) {\n this.textInput.setCopyWithEmptySelection(value);\n },\n initialValue: false\n },\n cursorStyle: {\n set: function (val) { this.$resetCursorStyle(); },\n values: [\"ace\", \"slim\", \"smooth\", \"wide\"],\n initialValue: \"ace\"\n },\n mergeUndoDeltas: {\n values: [false, true, \"always\"],\n initialValue: true\n },\n behavioursEnabled: { initialValue: true },\n wrapBehavioursEnabled: { initialValue: true },\n enableAutoIndent: { initialValue: true },\n autoScrollEditorIntoView: {\n set: function (val) { this.setAutoScrollEditorIntoView(val); }\n },\n keyboardHandler: {\n set: function (val) { this.setKeyboardHandler(val); },\n get: function () { return this.$keybindingId; },\n handlesSet: true\n },\n value: {\n set: function (val) { this.session.setValue(val); },\n get: function () { return this.getValue(); },\n handlesSet: true,\n hidden: true\n },\n session: {\n set: function (val) { this.setSession(val); },\n get: function () { return this.session; },\n handlesSet: true,\n hidden: true\n },\n showLineNumbers: {\n set: function (show) {\n this.renderer.$gutterLayer.setShowLineNumbers(show);\n this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER);\n if (show && this.$relativeLineNumbers)\n relativeNumberRenderer.attach(this);\n else\n relativeNumberRenderer.detach(this);\n },\n initialValue: true\n },\n relativeLineNumbers: {\n set: function (value) {\n if (this.$showLineNumbers && value)\n relativeNumberRenderer.attach(this);\n else\n relativeNumberRenderer.detach(this);\n }\n },\n placeholder: {\n set: function (message) {\n if (!this.$updatePlaceholder) {\n this.$updatePlaceholder = function () {\n var hasValue = this.session && (this.renderer.$composition ||\n this.session.getLength() > 1 || this.session.getLine(0).length > 0);\n if (hasValue && this.renderer.placeholderNode) {\n this.renderer.off(\"afterRender\", this.$updatePlaceholder);\n dom.removeCssClass(this.container, \"ace_hasPlaceholder\");\n this.renderer.placeholderNode.remove();\n this.renderer.placeholderNode = null;\n }\n else if (!hasValue && !this.renderer.placeholderNode) {\n this.renderer.on(\"afterRender\", this.$updatePlaceholder);\n dom.addCssClass(this.container, \"ace_hasPlaceholder\");\n var el = dom.createElement(\"div\");\n el.className = \"ace_placeholder\";\n el.textContent = this.$placeholder || \"\";\n this.renderer.placeholderNode = el;\n this.renderer.content.appendChild(this.renderer.placeholderNode);\n }\n else if (!hasValue && this.renderer.placeholderNode) {\n this.renderer.placeholderNode.textContent = this.$placeholder || \"\";\n }\n }.bind(this);\n this.on(\"input\", this.$updatePlaceholder);\n }\n this.$updatePlaceholder();\n }\n },\n enableKeyboardAccessibility: {\n set: function (value) {\n var blurCommand = {\n name: \"blurTextInput\",\n description: \"Set focus to the editor content div to allow tabbing through the page\",\n bindKey: \"Esc\",\n exec: function (editor) {\n editor.blur();\n editor.renderer.scroller.focus();\n },\n readOnly: true\n };\n var focusOnEnterKeyup = function (e) {\n if (e.target == this.renderer.scroller && e.keyCode === keys['enter']) {\n e.preventDefault();\n var row = this.getCursorPosition().row;\n if (!this.isRowVisible(row))\n this.scrollToLine(row, true, true);\n this.focus();\n }\n };\n var gutterKeyboardHandler;\n if (value) {\n this.renderer.enableKeyboardAccessibility = true;\n this.renderer.keyboardFocusClassName = \"ace_keyboard-focus\";\n this.textInput.getElement().setAttribute(\"tabindex\", -1);\n this.textInput.setNumberOfExtraLines(useragent.isWin ? 3 : 0);\n this.renderer.scroller.setAttribute(\"tabindex\", 0);\n this.renderer.scroller.setAttribute(\"role\", \"group\");\n this.renderer.scroller.setAttribute(\"aria-roledescription\", nls(\"editor\"));\n this.renderer.scroller.classList.add(this.renderer.keyboardFocusClassName);\n this.renderer.scroller.setAttribute(\"aria-label\", nls(\"Editor content, press Enter to start editing, press Escape to exit\"));\n this.renderer.scroller.addEventListener(\"keyup\", focusOnEnterKeyup.bind(this));\n this.commands.addCommand(blurCommand);\n this.renderer.$gutter.setAttribute(\"tabindex\", 0);\n this.renderer.$gutter.setAttribute(\"aria-hidden\", false);\n this.renderer.$gutter.setAttribute(\"role\", \"group\");\n this.renderer.$gutter.setAttribute(\"aria-roledescription\", nls(\"editor\"));\n this.renderer.$gutter.setAttribute(\"aria-label\", nls(\"Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit\"));\n this.renderer.$gutter.classList.add(this.renderer.keyboardFocusClassName);\n this.renderer.content.setAttribute(\"aria-hidden\", true);\n if (!gutterKeyboardHandler)\n gutterKeyboardHandler = new GutterKeyboardHandler(this);\n gutterKeyboardHandler.addListener();\n }\n else {\n this.renderer.enableKeyboardAccessibility = false;\n this.textInput.getElement().setAttribute(\"tabindex\", 0);\n this.textInput.setNumberOfExtraLines(0);\n this.renderer.scroller.setAttribute(\"tabindex\", -1);\n this.renderer.scroller.removeAttribute(\"role\");\n this.renderer.scroller.removeAttribute(\"aria-roledescription\");\n this.renderer.scroller.classList.remove(this.renderer.keyboardFocusClassName);\n this.renderer.scroller.removeAttribute(\"aria-label\");\n this.renderer.scroller.removeEventListener(\"keyup\", focusOnEnterKeyup.bind(this));\n this.commands.removeCommand(blurCommand);\n this.renderer.content.removeAttribute(\"aria-hidden\");\n this.renderer.$gutter.setAttribute(\"tabindex\", -1);\n this.renderer.$gutter.setAttribute(\"aria-hidden\", true);\n this.renderer.$gutter.removeAttribute(\"role\");\n this.renderer.$gutter.removeAttribute(\"aria-roledescription\");\n this.renderer.$gutter.removeAttribute(\"aria-label\");\n this.renderer.$gutter.classList.remove(this.renderer.keyboardFocusClassName);\n if (gutterKeyboardHandler)\n gutterKeyboardHandler.removeListener();\n }\n },\n initialValue: false\n },\n customScrollbar: \"renderer\",\n hScrollBarAlwaysVisible: \"renderer\",\n vScrollBarAlwaysVisible: \"renderer\",\n highlightGutterLine: \"renderer\",\n animatedScroll: \"renderer\",\n showInvisibles: \"renderer\",\n showPrintMargin: \"renderer\",\n printMarginColumn: \"renderer\",\n printMargin: \"renderer\",\n fadeFoldWidgets: \"renderer\",\n showFoldWidgets: \"renderer\",\n displayIndentGuides: \"renderer\",\n highlightIndentGuides: \"renderer\",\n showGutter: \"renderer\",\n fontSize: \"renderer\",\n fontFamily: \"renderer\",\n maxLines: \"renderer\",\n minLines: \"renderer\",\n scrollPastEnd: \"renderer\",\n fixedWidthGutter: \"renderer\",\n theme: \"renderer\",\n hasCssTransforms: \"renderer\",\n maxPixelHeight: \"renderer\",\n useTextareaForIME: \"renderer\",\n useResizeObserver: \"renderer\",\n useSvgGutterIcons: \"renderer\",\n showFoldedAnnotations: \"renderer\",\n scrollSpeed: \"$mouseHandler\",\n dragDelay: \"$mouseHandler\",\n dragEnabled: \"$mouseHandler\",\n focusTimeout: \"$mouseHandler\",\n tooltipFollowsMouse: \"$mouseHandler\",\n firstLineNumber: \"session\",\n overwrite: \"session\",\n newLineMode: \"session\",\n useWorker: \"session\",\n useSoftTabs: \"session\",\n navigateWithinSoftTabs: \"session\",\n tabSize: \"session\",\n wrap: \"session\",\n indentedSoftWrap: \"session\",\n foldStyle: \"session\",\n mode: \"session\"\n});\nvar relativeNumberRenderer = {\n getText: function (session, row) {\n return (Math.abs(session.selection.lead.row - row) || (row + 1 + (row < 9 ? \"\\xb7\" : \"\"))) + \"\";\n },\n getWidth: function (session, lastLineNumber, config) {\n return Math.max(lastLineNumber.toString().length, (config.lastRow + 1).toString().length, 2) * config.characterWidth;\n },\n update: function (e, editor) {\n editor.renderer.$loop.schedule(editor.renderer.CHANGE_GUTTER);\n },\n attach: function (editor) {\n editor.renderer.$gutterLayer.$renderer = this;\n editor.on(\"changeSelection\", this.update);\n this.update(null, editor);\n },\n detach: function (editor) {\n if (editor.renderer.$gutterLayer.$renderer == this)\n editor.renderer.$gutterLayer.$renderer = null;\n editor.off(\"changeSelection\", this.update);\n this.update(null, editor);\n }\n};\nexports.Editor = Editor;\n\n});\n\nace.define(\"ace/layer/lines\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar Lines = /** @class */ (function () {\n function Lines(element, canvasHeight) {\n this.element = element;\n this.canvasHeight = canvasHeight || 500000;\n this.element.style.height = (this.canvasHeight * 2) + \"px\";\n this.cells = [];\n this.cellCache = [];\n this.$offsetCoefficient = 0;\n }\n Lines.prototype.moveContainer = function (config) {\n dom.translate(this.element, 0, -((config.firstRowScreen * config.lineHeight) % this.canvasHeight) - config.offset * this.$offsetCoefficient);\n };\n Lines.prototype.pageChanged = function (oldConfig, newConfig) {\n return (Math.floor((oldConfig.firstRowScreen * oldConfig.lineHeight) / this.canvasHeight) !==\n Math.floor((newConfig.firstRowScreen * newConfig.lineHeight) / this.canvasHeight));\n };\n Lines.prototype.computeLineTop = function (row, config, session) {\n var screenTop = config.firstRowScreen * config.lineHeight;\n var screenPage = Math.floor(screenTop / this.canvasHeight);\n var lineTop = session.documentToScreenRow(row, 0) * config.lineHeight;\n return lineTop - (screenPage * this.canvasHeight);\n };\n Lines.prototype.computeLineHeight = function (row, config, session) {\n return config.lineHeight * session.getRowLineCount(row);\n };\n Lines.prototype.getLength = function () {\n return this.cells.length;\n };\n Lines.prototype.get = function (index) {\n return this.cells[index];\n };\n Lines.prototype.shift = function () {\n this.$cacheCell(this.cells.shift());\n };\n Lines.prototype.pop = function () {\n this.$cacheCell(this.cells.pop());\n };\n Lines.prototype.push = function (cell) {\n if (Array.isArray(cell)) {\n this.cells.push.apply(this.cells, cell);\n var fragment = dom.createFragment(this.element);\n for (var i = 0; i < cell.length; i++) {\n fragment.appendChild(cell[i].element);\n }\n this.element.appendChild(fragment);\n }\n else {\n this.cells.push(cell);\n this.element.appendChild(cell.element);\n }\n };\n Lines.prototype.unshift = function (cell) {\n if (Array.isArray(cell)) {\n this.cells.unshift.apply(this.cells, cell);\n var fragment = dom.createFragment(this.element);\n for (var i = 0; i < cell.length; i++) {\n fragment.appendChild(cell[i].element);\n }\n if (this.element.firstChild)\n this.element.insertBefore(fragment, this.element.firstChild);\n else\n this.element.appendChild(fragment);\n }\n else {\n this.cells.unshift(cell);\n this.element.insertAdjacentElement(\"afterbegin\", cell.element);\n }\n };\n Lines.prototype.last = function () {\n if (this.cells.length)\n return this.cells[this.cells.length - 1];\n else\n return null;\n };\n Lines.prototype.$cacheCell = function (cell) {\n if (!cell)\n return;\n cell.element.remove();\n this.cellCache.push(cell);\n };\n Lines.prototype.createCell = function (row, config, session, initElement) {\n var cell = this.cellCache.pop();\n if (!cell) {\n var element = dom.createElement(\"div\");\n if (initElement)\n initElement(element);\n this.element.appendChild(element);\n cell = {\n element: element,\n text: \"\",\n row: row\n };\n }\n cell.row = row;\n return cell;\n };\n return Lines;\n}());\nexports.Lines = Lines;\n\n});\n\nace.define(\"ace/layer/gutter\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/layer/lines\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar Lines = require(\"./lines\").Lines;\nvar nls = require(\"../config\").nls;\nvar Gutter = /** @class */ (function () {\n function Gutter(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_gutter-layer\";\n parentEl.appendChild(this.element);\n this.setShowFoldWidgets(this.$showFoldWidgets);\n this.gutterWidth = 0;\n this.$annotations = [];\n this.$updateAnnotations = this.$updateAnnotations.bind(this);\n this.$lines = new Lines(this.element);\n this.$lines.$offsetCoefficient = 1;\n }\n Gutter.prototype.setSession = function (session) {\n if (this.session)\n this.session.off(\"change\", this.$updateAnnotations);\n this.session = session;\n if (session)\n session.on(\"change\", this.$updateAnnotations);\n };\n Gutter.prototype.addGutterDecoration = function (row, className) {\n if (window.console)\n console.warn && console.warn(\"deprecated use session.addGutterDecoration\");\n this.session.addGutterDecoration(row, className);\n };\n Gutter.prototype.removeGutterDecoration = function (row, className) {\n if (window.console)\n console.warn && console.warn(\"deprecated use session.removeGutterDecoration\");\n this.session.removeGutterDecoration(row, className);\n };\n Gutter.prototype.setAnnotations = function (annotations) {\n this.$annotations = [];\n for (var i = 0; i < annotations.length; i++) {\n var annotation = annotations[i];\n var row = annotation.row;\n var rowInfo = this.$annotations[row];\n if (!rowInfo)\n rowInfo = this.$annotations[row] = { text: [], type: [] };\n var annoText = annotation.text;\n var annoType = annotation.type;\n annoText = annoText ? lang.escapeHTML(annoText) : annotation.html || \"\";\n if (rowInfo.text.indexOf(annoText) === -1) {\n rowInfo.text.push(annoText);\n rowInfo.type.push(annoType);\n }\n var className = annotation.className;\n if (className)\n rowInfo.className = className;\n else if (annoType == \"error\")\n rowInfo.className = \" ace_error\";\n else if (annoType == \"warning\" && rowInfo.className != \" ace_error\")\n rowInfo.className = \" ace_warning\";\n else if (annoType == \"info\" && (!rowInfo.className))\n rowInfo.className = \" ace_info\";\n }\n };\n Gutter.prototype.$updateAnnotations = function (delta) {\n if (!this.$annotations.length)\n return;\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n if (len === 0) {\n }\n else if (delta.action == 'remove') {\n this.$annotations.splice(firstRow, len + 1, null);\n }\n else {\n var args = new Array(len + 1);\n args.unshift(firstRow, 1);\n this.$annotations.splice.apply(this.$annotations, args);\n }\n };\n Gutter.prototype.update = function (config) {\n this.config = config;\n var session = this.session;\n var firstRow = config.firstRow;\n var lastRow = Math.min(config.lastRow + config.gutterOffset, // needed to compensate for hor scollbar\n session.getLength() - 1);\n this.oldLastRow = lastRow;\n this.config = config;\n this.$lines.moveContainer(config);\n this.$updateCursorRow();\n var fold = session.getNextFoldLine(firstRow);\n var foldStart = fold ? fold.start.row : Infinity;\n var cell = null;\n var index = -1;\n var row = firstRow;\n while (true) {\n if (row > foldStart) {\n row = fold.end.row + 1;\n fold = session.getNextFoldLine(row, fold);\n foldStart = fold ? fold.start.row : Infinity;\n }\n if (row > lastRow) {\n while (this.$lines.getLength() > index + 1)\n this.$lines.pop();\n break;\n }\n cell = this.$lines.get(++index);\n if (cell) {\n cell.row = row;\n }\n else {\n cell = this.$lines.createCell(row, config, this.session, onCreateCell);\n this.$lines.push(cell);\n }\n this.$renderCell(cell, config, fold, row);\n row++;\n }\n this._signal(\"afterRender\");\n this.$updateGutterWidth(config);\n };\n Gutter.prototype.$updateGutterWidth = function (config) {\n var session = this.session;\n var gutterRenderer = session.gutterRenderer || this.$renderer;\n var firstLineNumber = session.$firstLineNumber;\n var lastLineText = this.$lines.last() ? this.$lines.last().text : \"\";\n if (this.$fixedWidth || session.$useWrapMode)\n lastLineText = session.getLength() + firstLineNumber - 1;\n var gutterWidth = gutterRenderer\n ? gutterRenderer.getWidth(session, lastLineText, config)\n : lastLineText.toString().length * config.characterWidth;\n var padding = this.$padding || this.$computePadding();\n gutterWidth += padding.left + padding.right;\n if (gutterWidth !== this.gutterWidth && !isNaN(gutterWidth)) {\n this.gutterWidth = gutterWidth;\n this.element.parentNode.style.width =\n this.element.style.width = Math.ceil(this.gutterWidth) + \"px\";\n this._signal(\"changeGutterWidth\", gutterWidth);\n }\n };\n Gutter.prototype.$updateCursorRow = function () {\n if (!this.$highlightGutterLine)\n return;\n var position = this.session.selection.getCursor();\n if (this.$cursorRow === position.row)\n return;\n this.$cursorRow = position.row;\n };\n Gutter.prototype.updateLineHighlight = function () {\n if (!this.$highlightGutterLine)\n return;\n var row = this.session.selection.cursor.row;\n this.$cursorRow = row;\n if (this.$cursorCell && this.$cursorCell.row == row)\n return;\n if (this.$cursorCell)\n this.$cursorCell.element.className = this.$cursorCell.element.className.replace(\"ace_gutter-active-line \", \"\");\n var cells = this.$lines.cells;\n this.$cursorCell = null;\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n if (cell.row >= this.$cursorRow) {\n if (cell.row > this.$cursorRow) {\n var fold = this.session.getFoldLine(this.$cursorRow);\n if (i > 0 && fold && fold.start.row == cells[i - 1].row)\n cell = cells[i - 1];\n else\n break;\n }\n cell.element.className = \"ace_gutter-active-line \" + cell.element.className;\n this.$cursorCell = cell;\n break;\n }\n }\n };\n Gutter.prototype.scrollLines = function (config) {\n var oldConfig = this.config;\n this.config = config;\n this.$updateCursorRow();\n if (this.$lines.pageChanged(oldConfig, config))\n return this.update(config);\n this.$lines.moveContainer(config);\n var lastRow = Math.min(config.lastRow + config.gutterOffset, // needed to compensate for hor scollbar\n this.session.getLength() - 1);\n var oldLastRow = this.oldLastRow;\n this.oldLastRow = lastRow;\n if (!oldConfig || oldLastRow < config.firstRow)\n return this.update(config);\n if (lastRow < oldConfig.firstRow)\n return this.update(config);\n if (oldConfig.firstRow < config.firstRow)\n for (var row = this.session.getFoldedRowCount(oldConfig.firstRow, config.firstRow - 1); row > 0; row--)\n this.$lines.shift();\n if (oldLastRow > lastRow)\n for (var row = this.session.getFoldedRowCount(lastRow + 1, oldLastRow); row > 0; row--)\n this.$lines.pop();\n if (config.firstRow < oldConfig.firstRow) {\n this.$lines.unshift(this.$renderLines(config, config.firstRow, oldConfig.firstRow - 1));\n }\n if (lastRow > oldLastRow) {\n this.$lines.push(this.$renderLines(config, oldLastRow + 1, lastRow));\n }\n this.updateLineHighlight();\n this._signal(\"afterRender\");\n this.$updateGutterWidth(config);\n };\n Gutter.prototype.$renderLines = function (config, firstRow, lastRow) {\n var fragment = [];\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row + 1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > lastRow)\n break;\n var cell = this.$lines.createCell(row, config, this.session, onCreateCell);\n this.$renderCell(cell, config, foldLine, row);\n fragment.push(cell);\n row++;\n }\n return fragment;\n };\n Gutter.prototype.$renderCell = function (cell, config, fold, row) {\n var element = cell.element;\n var session = this.session;\n var textNode = element.childNodes[0];\n var foldWidget = element.childNodes[1];\n var annotationNode = element.childNodes[2];\n var annotationIconNode = annotationNode.firstChild;\n var firstLineNumber = session.$firstLineNumber;\n var breakpoints = session.$breakpoints;\n var decorations = session.$decorations;\n var gutterRenderer = session.gutterRenderer || this.$renderer;\n var foldWidgets = this.$showFoldWidgets && session.foldWidgets;\n var foldStart = fold ? fold.start.row : Number.MAX_VALUE;\n var lineHeight = config.lineHeight + \"px\";\n var className = this.$useSvgGutterIcons ? \"ace_gutter-cell_svg-icons \" : \"ace_gutter-cell \";\n var iconClassName = this.$useSvgGutterIcons ? \"ace_icon_svg\" : \"ace_icon\";\n var rowText = (gutterRenderer\n ? gutterRenderer.getText(session, row)\n : row + firstLineNumber).toString();\n if (this.$highlightGutterLine) {\n if (row == this.$cursorRow || (fold && row < this.$cursorRow && row >= foldStart && this.$cursorRow <= fold.end.row)) {\n className += \"ace_gutter-active-line \";\n if (this.$cursorCell != cell) {\n if (this.$cursorCell)\n this.$cursorCell.element.className = this.$cursorCell.element.className.replace(\"ace_gutter-active-line \", \"\");\n this.$cursorCell = cell;\n }\n }\n }\n if (breakpoints[row])\n className += breakpoints[row];\n if (decorations[row])\n className += decorations[row];\n if (this.$annotations[row] && row !== foldStart)\n className += this.$annotations[row].className;\n if (foldWidgets) {\n var c = foldWidgets[row];\n if (c == null)\n c = foldWidgets[row] = session.getFoldWidget(row);\n }\n if (c) {\n var foldClass = \"ace_fold-widget ace_\" + c;\n var isClosedFold = c == \"start\" && row == foldStart && row < fold.end.row;\n if (isClosedFold) {\n foldClass += \" ace_closed\";\n var foldAnnotationClass = '';\n var annotationInFold = false;\n for (var i = row + 1; i <= fold.end.row; i++) {\n if (!this.$annotations[i])\n continue;\n if (this.$annotations[i].className === \" ace_error\") {\n annotationInFold = true;\n foldAnnotationClass = \" ace_error_fold\";\n break;\n }\n if (this.$annotations[i].className === \" ace_warning\") {\n annotationInFold = true;\n foldAnnotationClass = \" ace_warning_fold\";\n continue;\n }\n }\n className += foldAnnotationClass;\n }\n else\n foldClass += \" ace_open\";\n if (foldWidget.className != foldClass)\n foldWidget.className = foldClass;\n dom.setStyle(foldWidget.style, \"height\", lineHeight);\n dom.setStyle(foldWidget.style, \"display\", \"inline-block\");\n foldWidget.setAttribute(\"role\", \"button\");\n foldWidget.setAttribute(\"tabindex\", \"-1\");\n var foldRange = session.getFoldWidgetRange(row);\n if (foldRange)\n foldWidget.setAttribute(\"aria-label\", nls(\"Toggle code folding, rows $0 through $1\", [foldRange.start.row + 1, foldRange.end.row + 1]));\n else {\n if (fold)\n foldWidget.setAttribute(\"aria-label\", nls(\"Toggle code folding, rows $0 through $1\", [fold.start.row + 1, fold.end.row + 1]));\n else\n foldWidget.setAttribute(\"aria-label\", nls(\"Toggle code folding, row $0\", [row + 1]));\n }\n if (isClosedFold) {\n foldWidget.setAttribute(\"aria-expanded\", \"false\");\n foldWidget.setAttribute(\"title\", nls(\"Unfold code\"));\n }\n else {\n foldWidget.setAttribute(\"aria-expanded\", \"true\");\n foldWidget.setAttribute(\"title\", nls(\"Fold code\"));\n }\n }\n else {\n if (foldWidget) {\n dom.setStyle(foldWidget.style, \"display\", \"none\");\n foldWidget.setAttribute(\"tabindex\", \"0\");\n foldWidget.removeAttribute(\"role\");\n foldWidget.removeAttribute(\"aria-label\");\n }\n }\n if (annotationInFold && this.$showFoldedAnnotations) {\n annotationNode.className = \"ace_gutter_annotation\";\n annotationIconNode.className = iconClassName;\n annotationIconNode.className += foldAnnotationClass;\n dom.setStyle(annotationIconNode.style, \"height\", lineHeight);\n dom.setStyle(annotationNode.style, \"display\", \"block\");\n dom.setStyle(annotationNode.style, \"height\", lineHeight);\n annotationNode.setAttribute(\"aria-label\", nls(\"Read annotations row $0\", [rowText]));\n annotationNode.setAttribute(\"tabindex\", \"-1\");\n annotationNode.setAttribute(\"role\", \"button\");\n }\n else if (this.$annotations[row]) {\n annotationNode.className = \"ace_gutter_annotation\";\n annotationIconNode.className = iconClassName;\n if (this.$useSvgGutterIcons)\n annotationIconNode.className += this.$annotations[row].className;\n else\n element.classList.add(this.$annotations[row].className.replace(\" \", \"\"));\n dom.setStyle(annotationIconNode.style, \"height\", lineHeight);\n dom.setStyle(annotationNode.style, \"display\", \"block\");\n dom.setStyle(annotationNode.style, \"height\", lineHeight);\n annotationNode.setAttribute(\"aria-label\", nls(\"Read annotations row $0\", [rowText]));\n annotationNode.setAttribute(\"tabindex\", \"-1\");\n annotationNode.setAttribute(\"role\", \"button\");\n }\n else {\n dom.setStyle(annotationNode.style, \"display\", \"none\");\n annotationNode.removeAttribute(\"aria-label\");\n annotationNode.removeAttribute(\"role\");\n annotationNode.setAttribute(\"tabindex\", \"0\");\n }\n if (rowText !== textNode.data) {\n textNode.data = rowText;\n }\n if (element.className != className)\n element.className = className;\n dom.setStyle(cell.element.style, \"height\", this.$lines.computeLineHeight(row, config, session) + \"px\");\n dom.setStyle(cell.element.style, \"top\", this.$lines.computeLineTop(row, config, session) + \"px\");\n cell.text = rowText;\n if (annotationNode.style.display === \"none\" && foldWidget.style.display === \"none\")\n cell.element.setAttribute(\"aria-hidden\", true);\n else\n cell.element.setAttribute(\"aria-hidden\", false);\n return cell;\n };\n Gutter.prototype.setHighlightGutterLine = function (highlightGutterLine) {\n this.$highlightGutterLine = highlightGutterLine;\n };\n Gutter.prototype.setShowLineNumbers = function (show) {\n this.$renderer = !show && {\n getWidth: function () { return 0; },\n getText: function () { return \"\"; }\n };\n };\n Gutter.prototype.getShowLineNumbers = function () {\n return this.$showLineNumbers;\n };\n Gutter.prototype.setShowFoldWidgets = function (show) {\n if (show)\n dom.addCssClass(this.element, \"ace_folding-enabled\");\n else\n dom.removeCssClass(this.element, \"ace_folding-enabled\");\n this.$showFoldWidgets = show;\n this.$padding = null;\n };\n Gutter.prototype.getShowFoldWidgets = function () {\n return this.$showFoldWidgets;\n };\n Gutter.prototype.$computePadding = function () {\n if (!this.element.firstChild)\n return { left: 0, right: 0 };\n var style = dom.computedStyle(this.element.firstChild);\n this.$padding = {};\n this.$padding.left = (parseInt(style.borderLeftWidth) || 0)\n + (parseInt(style.paddingLeft) || 0) + 1;\n this.$padding.right = (parseInt(style.borderRightWidth) || 0)\n + (parseInt(style.paddingRight) || 0);\n return this.$padding;\n };\n Gutter.prototype.getRegion = function (point) {\n var padding = this.$padding || this.$computePadding();\n var rect = this.element.getBoundingClientRect();\n if (point.x < padding.left + rect.left)\n return \"markers\";\n if (this.$showFoldWidgets && point.x > rect.right - padding.right)\n return \"foldWidgets\";\n };\n return Gutter;\n}());\nGutter.prototype.$fixedWidth = false;\nGutter.prototype.$highlightGutterLine = true;\nGutter.prototype.$renderer = \"\";\nGutter.prototype.$showLineNumbers = true;\nGutter.prototype.$showFoldWidgets = true;\noop.implement(Gutter.prototype, EventEmitter);\nfunction onCreateCell(element) {\n var textNode = document.createTextNode('');\n element.appendChild(textNode);\n var foldWidget = dom.createElement(\"span\");\n element.appendChild(foldWidget);\n var annotationNode = dom.createElement(\"span\");\n element.appendChild(annotationNode);\n var annotationIconNode = dom.createElement(\"span\");\n annotationNode.appendChild(annotationIconNode);\n return element;\n}\nexports.Gutter = Gutter;\n\n});\n\nace.define(\"ace/layer/marker\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar dom = require(\"../lib/dom\");\nvar Marker = /** @class */ (function () {\n function Marker(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_marker-layer\";\n parentEl.appendChild(this.element);\n }\n Marker.prototype.setPadding = function (padding) {\n this.$padding = padding;\n };\n Marker.prototype.setSession = function (session) {\n this.session = session;\n };\n Marker.prototype.setMarkers = function (markers) {\n this.markers = markers;\n };\n Marker.prototype.elt = function (className, css) {\n var x = this.i != -1 && this.element.childNodes[this.i];\n if (!x) {\n x = document.createElement(\"div\");\n this.element.appendChild(x);\n this.i = -1;\n }\n else {\n this.i++;\n }\n x.style.cssText = css;\n x.className = className;\n };\n Marker.prototype.update = function (config) {\n if (!config)\n return;\n this.config = config;\n this.i = 0;\n var html;\n for (var key in this.markers) {\n var marker = this.markers[key];\n if (!marker.range) {\n marker.update(html, this, this.session, config);\n continue;\n }\n var range = marker.range.clipRows(config.firstRow, config.lastRow);\n if (range.isEmpty())\n continue;\n range = range.toScreenRange(this.session);\n if (marker.renderer) {\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + range.start.column * config.characterWidth;\n marker.renderer(html, range, left, top, config);\n }\n else if (marker.type == \"fullLine\") {\n this.drawFullLineMarker(html, range, marker.clazz, config);\n }\n else if (marker.type == \"screenLine\") {\n this.drawScreenLineMarker(html, range, marker.clazz, config);\n }\n else if (range.isMultiLine()) {\n if (marker.type == \"text\")\n this.drawTextMarker(html, range, marker.clazz, config);\n else\n this.drawMultiLineMarker(html, range, marker.clazz, config);\n }\n else {\n this.drawSingleLineMarker(html, range, marker.clazz + \" ace_start\" + \" ace_br15\", config);\n }\n }\n if (this.i != -1) {\n while (this.i < this.element.childElementCount)\n this.element.removeChild(this.element.lastChild);\n }\n };\n Marker.prototype.$getTop = function (row, layerConfig) {\n return (row - layerConfig.firstRowScreen) * layerConfig.lineHeight;\n };\n Marker.prototype.drawTextMarker = function (stringBuilder, range, clazz, layerConfig, extraStyle) {\n var session = this.session;\n var start = range.start.row;\n var end = range.end.row;\n var row = start;\n var prev = 0;\n var curr = 0;\n var next = session.getScreenLastRowColumn(row);\n var lineRange = new Range(row, range.start.column, row, curr);\n for (; row <= end; row++) {\n lineRange.start.row = lineRange.end.row = row;\n lineRange.start.column = row == start ? range.start.column : session.getRowWrapIndent(row);\n lineRange.end.column = next;\n prev = curr;\n curr = next;\n next = row + 1 < end ? session.getScreenLastRowColumn(row + 1) : row == end ? 0 : range.end.column;\n this.drawSingleLineMarker(stringBuilder, lineRange, clazz + (row == start ? \" ace_start\" : \"\") + \" ace_br\"\n + getBorderClass(row == start || row == start + 1 && range.start.column, prev < curr, curr > next, row == end), layerConfig, row == end ? 0 : 1, extraStyle);\n }\n };\n Marker.prototype.drawMultiLineMarker = function (stringBuilder, range, clazz, config, extraStyle) {\n var padding = this.$padding;\n var height = config.lineHeight;\n var top = this.$getTop(range.start.row, config);\n var left = padding + range.start.column * config.characterWidth;\n extraStyle = extraStyle || \"\";\n if (this.session.$bidiHandler.isBidiRow(range.start.row)) {\n var range1 = range.clone();\n range1.end.row = range1.start.row;\n range1.end.column = this.session.getLine(range1.start.row).length;\n this.drawBidiSingleLineMarker(stringBuilder, range1, clazz + \" ace_br1 ace_start\", config, null, extraStyle);\n }\n else {\n this.elt(clazz + \" ace_br1 ace_start\", \"height:\" + height + \"px;\" + \"right:0;\" + \"top:\" + top + \"px;left:\" + left + \"px;\" + (extraStyle || \"\"));\n }\n if (this.session.$bidiHandler.isBidiRow(range.end.row)) {\n var range1 = range.clone();\n range1.start.row = range1.end.row;\n range1.start.column = 0;\n this.drawBidiSingleLineMarker(stringBuilder, range1, clazz + \" ace_br12\", config, null, extraStyle);\n }\n else {\n top = this.$getTop(range.end.row, config);\n var width = range.end.column * config.characterWidth;\n this.elt(clazz + \" ace_br12\", \"height:\" + height + \"px;\" +\n \"width:\" + width + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + padding + \"px;\" + (extraStyle || \"\"));\n }\n height = (range.end.row - range.start.row - 1) * config.lineHeight;\n if (height <= 0)\n return;\n top = this.$getTop(range.start.row + 1, config);\n var radiusClass = (range.start.column ? 1 : 0) | (range.end.column ? 0 : 8);\n this.elt(clazz + (radiusClass ? \" ace_br\" + radiusClass : \"\"), \"height:\" + height + \"px;\" +\n \"right:0;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + padding + \"px;\" + (extraStyle || \"\"));\n };\n Marker.prototype.drawSingleLineMarker = function (stringBuilder, range, clazz, config, extraLength, extraStyle) {\n if (this.session.$bidiHandler.isBidiRow(range.start.row))\n return this.drawBidiSingleLineMarker(stringBuilder, range, clazz, config, extraLength, extraStyle);\n var height = config.lineHeight;\n var width = (range.end.column + (extraLength || 0) - range.start.column) * config.characterWidth;\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + range.start.column * config.characterWidth;\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"width:\" + width + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + left + \"px;\" + (extraStyle || \"\"));\n };\n Marker.prototype.drawBidiSingleLineMarker = function (stringBuilder, range, clazz, config, extraLength, extraStyle) {\n var height = config.lineHeight, top = this.$getTop(range.start.row, config), padding = this.$padding;\n var selections = this.session.$bidiHandler.getSelections(range.start.column, range.end.column);\n selections.forEach(function (selection) {\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"width:\" + (selection.width + (extraLength || 0)) + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + (padding + selection.left) + \"px;\" + (extraStyle || \"\"));\n }, this);\n };\n Marker.prototype.drawFullLineMarker = function (stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n if (range.start.row != range.end.row)\n height += this.$getTop(range.end.row, config) - top;\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:0;right:0;\" + (extraStyle || \"\"));\n };\n Marker.prototype.drawScreenLineMarker = function (stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:0;right:0;\" + (extraStyle || \"\"));\n };\n return Marker;\n}());\nMarker.prototype.$padding = 0;\nfunction getBorderClass(tl, tr, br, bl) {\n return (tl ? 1 : 0) | (tr ? 2 : 0) | (br ? 4 : 0) | (bl ? 8 : 0);\n}\nexports.Marker = Marker;\n\n});\n\nace.define(\"ace/layer/text_util\",[\"require\",\"exports\",\"module\"], function(require, exports, module){// Tokens for which Ace just uses a simple TextNode and does not add any special className.\nvar textTokens = new Set([\"text\", \"rparen\", \"lparen\"]);\nexports.isTextToken = function (tokenType) {\n return textTokens.has(tokenType);\n};\n\n});\n\nace.define(\"ace/layer/text\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/layer/lines\",\"ace/lib/event_emitter\",\"ace/config\",\"ace/layer/text_util\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar Lines = require(\"./lines\").Lines;\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar nls = require(\"../config\").nls;\nvar isTextToken = require(\"./text_util\").isTextToken;\nvar Text = /** @class */ (function () {\n function Text(parentEl) {\n this.dom = dom;\n this.element = this.dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_text-layer\";\n parentEl.appendChild(this.element);\n this.$updateEolChar = this.$updateEolChar.bind(this);\n this.$lines = new Lines(this.element);\n }\n Text.prototype.$updateEolChar = function () {\n var doc = this.session.doc;\n var unixMode = doc.getNewLineCharacter() == \"\\n\" && doc.getNewLineMode() != \"windows\";\n var EOL_CHAR = unixMode ? this.EOL_CHAR_LF : this.EOL_CHAR_CRLF;\n if (this.EOL_CHAR != EOL_CHAR) {\n this.EOL_CHAR = EOL_CHAR;\n return true;\n }\n };\n Text.prototype.setPadding = function (padding) {\n this.$padding = padding;\n this.element.style.margin = \"0 \" + padding + \"px\";\n };\n Text.prototype.getLineHeight = function () {\n return this.$fontMetrics.$characterSize.height || 0;\n };\n Text.prototype.getCharacterWidth = function () {\n return this.$fontMetrics.$characterSize.width || 0;\n };\n Text.prototype.$setFontMetrics = function (measure) {\n this.$fontMetrics = measure;\n this.$fontMetrics.on(\"changeCharacterSize\", function (e) {\n this._signal(\"changeCharacterSize\", e);\n }.bind(this));\n this.$pollSizeChanges();\n };\n Text.prototype.checkForSizeChanges = function () {\n this.$fontMetrics.checkForSizeChanges();\n };\n Text.prototype.$pollSizeChanges = function () {\n return this.$pollSizeChangesTimer = this.$fontMetrics.$pollSizeChanges();\n };\n Text.prototype.setSession = function (session) {\n this.session = session;\n if (session)\n this.$computeTabString();\n };\n Text.prototype.setShowInvisibles = function (showInvisibles) {\n if (this.showInvisibles == showInvisibles)\n return false;\n this.showInvisibles = showInvisibles;\n if (typeof showInvisibles == \"string\") {\n this.showSpaces = /tab/i.test(showInvisibles);\n this.showTabs = /space/i.test(showInvisibles);\n this.showEOL = /eol/i.test(showInvisibles);\n }\n else {\n this.showSpaces = this.showTabs = this.showEOL = showInvisibles;\n }\n this.$computeTabString();\n return true;\n };\n Text.prototype.setDisplayIndentGuides = function (display) {\n if (this.displayIndentGuides == display)\n return false;\n this.displayIndentGuides = display;\n this.$computeTabString();\n return true;\n };\n Text.prototype.setHighlightIndentGuides = function (highlight) {\n if (this.$highlightIndentGuides === highlight)\n return false;\n this.$highlightIndentGuides = highlight;\n return highlight;\n };\n Text.prototype.$computeTabString = function () {\n var tabSize = this.session.getTabSize();\n this.tabSize = tabSize;\n var tabStr = this.$tabStrings = [0];\n for (var i = 1; i < tabSize + 1; i++) {\n if (this.showTabs) {\n var span = this.dom.createElement(\"span\");\n span.className = \"ace_invisible ace_invisible_tab\";\n span.textContent = lang.stringRepeat(this.TAB_CHAR, i);\n tabStr.push(span);\n }\n else {\n tabStr.push(this.dom.createTextNode(lang.stringRepeat(\" \", i), this.element));\n }\n }\n if (this.displayIndentGuides) {\n this.$indentGuideRe = /\\s\\S| \\t|\\t |\\s$/;\n var className = \"ace_indent-guide\";\n var spaceClass = this.showSpaces ? \" ace_invisible ace_invisible_space\" : \"\";\n var spaceContent = this.showSpaces\n ? lang.stringRepeat(this.SPACE_CHAR, this.tabSize)\n : lang.stringRepeat(\" \", this.tabSize);\n var tabClass = this.showTabs ? \" ace_invisible ace_invisible_tab\" : \"\";\n var tabContent = this.showTabs\n ? lang.stringRepeat(this.TAB_CHAR, this.tabSize)\n : spaceContent;\n var span = this.dom.createElement(\"span\");\n span.className = className + spaceClass;\n span.textContent = spaceContent;\n this.$tabStrings[\" \"] = span;\n var span = this.dom.createElement(\"span\");\n span.className = className + tabClass;\n span.textContent = tabContent;\n this.$tabStrings[\"\\t\"] = span;\n }\n };\n Text.prototype.updateLines = function (config, firstRow, lastRow) {\n if (this.config.lastRow != config.lastRow ||\n this.config.firstRow != config.firstRow) {\n return this.update(config);\n }\n this.config = config;\n var first = Math.max(firstRow, config.firstRow);\n var last = Math.min(lastRow, config.lastRow);\n var lineElements = this.element.childNodes;\n var lineElementsIdx = 0;\n for (var row = config.firstRow; row < first; row++) {\n var foldLine = this.session.getFoldLine(row);\n if (foldLine) {\n if (foldLine.containsRow(first)) {\n first = foldLine.start.row;\n break;\n }\n else {\n row = foldLine.end.row;\n }\n }\n lineElementsIdx++;\n }\n var heightChanged = false;\n var row = first;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row + 1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > last)\n break;\n var lineElement = lineElements[lineElementsIdx++];\n if (lineElement) {\n this.dom.removeChildren(lineElement);\n this.$renderLine(lineElement, row, row == foldStart ? foldLine : false);\n if (heightChanged)\n lineElement.style.top = this.$lines.computeLineTop(row, config, this.session) + \"px\";\n var height = (config.lineHeight * this.session.getRowLength(row)) + \"px\";\n if (lineElement.style.height != height) {\n heightChanged = true;\n lineElement.style.height = height;\n }\n }\n row++;\n }\n if (heightChanged) {\n while (lineElementsIdx < this.$lines.cells.length) {\n var cell = this.$lines.cells[lineElementsIdx++];\n cell.element.style.top = this.$lines.computeLineTop(cell.row, config, this.session) + \"px\";\n }\n }\n };\n Text.prototype.scrollLines = function (config) {\n var oldConfig = this.config;\n this.config = config;\n if (this.$lines.pageChanged(oldConfig, config))\n return this.update(config);\n this.$lines.moveContainer(config);\n var lastRow = config.lastRow;\n var oldLastRow = oldConfig ? oldConfig.lastRow : -1;\n if (!oldConfig || oldLastRow < config.firstRow)\n return this.update(config);\n if (lastRow < oldConfig.firstRow)\n return this.update(config);\n if (!oldConfig || oldConfig.lastRow < config.firstRow)\n return this.update(config);\n if (config.lastRow < oldConfig.firstRow)\n return this.update(config);\n if (oldConfig.firstRow < config.firstRow)\n for (var row = this.session.getFoldedRowCount(oldConfig.firstRow, config.firstRow - 1); row > 0; row--)\n this.$lines.shift();\n if (oldConfig.lastRow > config.lastRow)\n for (var row = this.session.getFoldedRowCount(config.lastRow + 1, oldConfig.lastRow); row > 0; row--)\n this.$lines.pop();\n if (config.firstRow < oldConfig.firstRow) {\n this.$lines.unshift(this.$renderLinesFragment(config, config.firstRow, oldConfig.firstRow - 1));\n }\n if (config.lastRow > oldConfig.lastRow) {\n this.$lines.push(this.$renderLinesFragment(config, oldConfig.lastRow + 1, config.lastRow));\n }\n this.$highlightIndentGuide();\n };\n Text.prototype.$renderLinesFragment = function (config, firstRow, lastRow) {\n var fragment = [];\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row + 1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > lastRow)\n break;\n var line = this.$lines.createCell(row, config, this.session);\n var lineEl = line.element;\n this.dom.removeChildren(lineEl);\n dom.setStyle(lineEl.style, \"height\", this.$lines.computeLineHeight(row, config, this.session) + \"px\");\n dom.setStyle(lineEl.style, \"top\", this.$lines.computeLineTop(row, config, this.session) + \"px\");\n this.$renderLine(lineEl, row, row == foldStart ? foldLine : false);\n if (this.$useLineGroups()) {\n lineEl.className = \"ace_line_group\";\n }\n else {\n lineEl.className = \"ace_line\";\n }\n fragment.push(line);\n row++;\n }\n return fragment;\n };\n Text.prototype.update = function (config) {\n this.$lines.moveContainer(config);\n this.config = config;\n var firstRow = config.firstRow;\n var lastRow = config.lastRow;\n var lines = this.$lines;\n while (lines.getLength())\n lines.pop();\n lines.push(this.$renderLinesFragment(config, firstRow, lastRow));\n };\n Text.prototype.$renderToken = function (parent, screenColumn, token, value) {\n var self = this;\n var re = /(\\t)|( +)|([\\x00-\\x1f\\x80-\\xa0\\xad\\u1680\\u180E\\u2000-\\u200f\\u2028\\u2029\\u202F\\u205F\\uFEFF\\uFFF9-\\uFFFC\\u2066\\u2067\\u2068\\u202A\\u202B\\u202D\\u202E\\u202C\\u2069]+)|(\\u3000)|([\\u1100-\\u115F\\u11A3-\\u11A7\\u11FA-\\u11FF\\u2329-\\u232A\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3001-\\u303E\\u3041-\\u3096\\u3099-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u3190-\\u31BA\\u31C0-\\u31E3\\u31F0-\\u321E\\u3220-\\u3247\\u3250-\\u32FE\\u3300-\\u4DBF\\u4E00-\\uA48C\\uA490-\\uA4C6\\uA960-\\uA97C\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFAFF\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE66\\uFE68-\\uFE6B\\uFF01-\\uFF60\\uFFE0-\\uFFE6]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF])/g;\n var valueFragment = this.dom.createFragment(this.element);\n var m;\n var i = 0;\n while (m = re.exec(value)) {\n var tab = m[1];\n var simpleSpace = m[2];\n var controlCharacter = m[3];\n var cjkSpace = m[4];\n var cjk = m[5];\n if (!self.showSpaces && simpleSpace)\n continue;\n var before = i != m.index ? value.slice(i, m.index) : \"\";\n i = m.index + m[0].length;\n if (before) {\n valueFragment.appendChild(this.dom.createTextNode(before, this.element));\n }\n if (tab) {\n var tabSize = self.session.getScreenTabSize(screenColumn + m.index);\n valueFragment.appendChild(self.$tabStrings[tabSize].cloneNode(true));\n screenColumn += tabSize - 1;\n }\n else if (simpleSpace) {\n if (self.showSpaces) {\n var span = this.dom.createElement(\"span\");\n span.className = \"ace_invisible ace_invisible_space\";\n span.textContent = lang.stringRepeat(self.SPACE_CHAR, simpleSpace.length);\n valueFragment.appendChild(span);\n }\n else {\n valueFragment.appendChild(this.dom.createTextNode(simpleSpace, this.element));\n }\n }\n else if (controlCharacter) {\n var span = this.dom.createElement(\"span\");\n span.className = \"ace_invisible ace_invisible_space ace_invalid\";\n span.textContent = lang.stringRepeat(self.SPACE_CHAR, controlCharacter.length);\n valueFragment.appendChild(span);\n }\n else if (cjkSpace) {\n screenColumn += 1;\n var span = this.dom.createElement(\"span\");\n span.style.width = (self.config.characterWidth * 2) + \"px\";\n span.className = self.showSpaces ? \"ace_cjk ace_invisible ace_invisible_space\" : \"ace_cjk\";\n span.textContent = self.showSpaces ? self.SPACE_CHAR : cjkSpace;\n valueFragment.appendChild(span);\n }\n else if (cjk) {\n screenColumn += 1;\n var span = this.dom.createElement(\"span\");\n span.style.width = (self.config.characterWidth * 2) + \"px\";\n span.className = \"ace_cjk\";\n span.textContent = cjk;\n valueFragment.appendChild(span);\n }\n }\n valueFragment.appendChild(this.dom.createTextNode(i ? value.slice(i) : value, this.element));\n if (!isTextToken(token.type)) {\n var classes = \"ace_\" + token.type.replace(/\\./g, \" ace_\");\n var span = this.dom.createElement(\"span\");\n if (token.type == \"fold\") {\n span.style.width = (token.value.length * this.config.characterWidth) + \"px\";\n span.setAttribute(\"title\", nls(\"Unfold code\"));\n }\n span.className = classes;\n span.appendChild(valueFragment);\n parent.appendChild(span);\n }\n else {\n parent.appendChild(valueFragment);\n }\n return screenColumn + value.length;\n };\n Text.prototype.renderIndentGuide = function (parent, value, max) {\n var cols = value.search(this.$indentGuideRe);\n if (cols <= 0 || cols >= max)\n return value;\n if (value[0] == \" \") {\n cols -= cols % this.tabSize;\n var count = cols / this.tabSize;\n for (var i = 0; i < count; i++) {\n parent.appendChild(this.$tabStrings[\" \"].cloneNode(true));\n }\n this.$highlightIndentGuide();\n return value.substr(cols);\n }\n else if (value[0] == \"\\t\") {\n for (var i = 0; i < cols; i++) {\n parent.appendChild(this.$tabStrings[\"\\t\"].cloneNode(true));\n }\n this.$highlightIndentGuide();\n return value.substr(cols);\n }\n this.$highlightIndentGuide();\n return value;\n };\n Text.prototype.$highlightIndentGuide = function () {\n if (!this.$highlightIndentGuides || !this.displayIndentGuides)\n return;\n this.$highlightIndentGuideMarker = {\n indentLevel: undefined,\n start: undefined,\n end: undefined,\n dir: undefined\n };\n var lines = this.session.doc.$lines;\n if (!lines)\n return;\n var cursor = this.session.selection.getCursor();\n var initialIndent = /^\\s*/.exec(this.session.doc.getLine(cursor.row))[0].length;\n var elementIndentLevel = Math.floor(initialIndent / this.tabSize);\n this.$highlightIndentGuideMarker = {\n indentLevel: elementIndentLevel,\n start: cursor.row\n };\n var bracketHighlight = this.session.$bracketHighlight;\n if (bracketHighlight) {\n var ranges = this.session.$bracketHighlight.ranges;\n for (var i = 0; i < ranges.length; i++) {\n if (cursor.row !== ranges[i].start.row) {\n this.$highlightIndentGuideMarker.end = ranges[i].start.row;\n if (cursor.row > ranges[i].start.row) {\n this.$highlightIndentGuideMarker.dir = -1;\n }\n else {\n this.$highlightIndentGuideMarker.dir = 1;\n }\n break;\n }\n }\n }\n if (!this.$highlightIndentGuideMarker.end) {\n if (lines[cursor.row] !== '' && cursor.column === lines[cursor.row].length) {\n this.$highlightIndentGuideMarker.dir = 1;\n for (var i = cursor.row + 1; i < lines.length; i++) {\n var line = lines[i];\n var currentIndent = /^\\s*/.exec(line)[0].length;\n if (line !== '') {\n this.$highlightIndentGuideMarker.end = i;\n if (currentIndent <= initialIndent)\n break;\n }\n }\n }\n }\n this.$renderHighlightIndentGuide();\n };\n Text.prototype.$clearActiveIndentGuide = function () {\n var cells = this.$lines.cells;\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n var childNodes = cell.element.childNodes;\n if (childNodes.length > 0) {\n for (var j = 0; j < childNodes.length; j++) {\n if (childNodes[j].classList && childNodes[j].classList.contains(\"ace_indent-guide-active\")) {\n childNodes[j].classList.remove(\"ace_indent-guide-active\");\n break;\n }\n }\n }\n }\n };\n Text.prototype.$setIndentGuideActive = function (cell, indentLevel) {\n var line = this.session.doc.getLine(cell.row);\n if (line !== \"\") {\n var childNodes = cell.element.childNodes;\n if (childNodes) {\n var node = childNodes[indentLevel - 1];\n if (node && node.classList && node.classList.contains(\"ace_indent-guide\"))\n node.classList.add(\"ace_indent-guide-active\");\n }\n }\n };\n Text.prototype.$renderHighlightIndentGuide = function () {\n if (!this.$lines)\n return;\n var cells = this.$lines.cells;\n this.$clearActiveIndentGuide();\n var indentLevel = this.$highlightIndentGuideMarker.indentLevel;\n if (indentLevel !== 0) {\n if (this.$highlightIndentGuideMarker.dir === 1) {\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n if (this.$highlightIndentGuideMarker.end && cell.row >= this.$highlightIndentGuideMarker.start\n + 1) {\n if (cell.row >= this.$highlightIndentGuideMarker.end)\n break;\n this.$setIndentGuideActive(cell, indentLevel);\n }\n }\n }\n else {\n for (var i = cells.length - 1; i >= 0; i--) {\n var cell = cells[i];\n if (this.$highlightIndentGuideMarker.end && cell.row < this.$highlightIndentGuideMarker.start) {\n if (cell.row <= this.$highlightIndentGuideMarker.end)\n break;\n this.$setIndentGuideActive(cell, indentLevel);\n }\n }\n }\n }\n };\n Text.prototype.$createLineElement = function (parent) {\n var lineEl = this.dom.createElement(\"div\");\n lineEl.className = \"ace_line\";\n lineEl.style.height = this.config.lineHeight + \"px\";\n return lineEl;\n };\n Text.prototype.$renderWrappedLine = function (parent, tokens, splits) {\n var chars = 0;\n var split = 0;\n var splitChars = splits[0];\n var screenColumn = 0;\n var lineEl = this.$createLineElement();\n parent.appendChild(lineEl);\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n var value = token.value;\n if (i == 0 && this.displayIndentGuides) {\n chars = value.length;\n value = this.renderIndentGuide(lineEl, value, splitChars);\n if (!value)\n continue;\n chars -= value.length;\n }\n if (chars + value.length < splitChars) {\n screenColumn = this.$renderToken(lineEl, screenColumn, token, value);\n chars += value.length;\n }\n else {\n while (chars + value.length >= splitChars) {\n screenColumn = this.$renderToken(lineEl, screenColumn, token, value.substring(0, splitChars - chars));\n value = value.substring(splitChars - chars);\n chars = splitChars;\n lineEl = this.$createLineElement();\n parent.appendChild(lineEl);\n lineEl.appendChild(this.dom.createTextNode(lang.stringRepeat(\"\\xa0\", splits.indent), this.element));\n split++;\n screenColumn = 0;\n splitChars = splits[split] || Number.MAX_VALUE;\n }\n if (value.length != 0) {\n chars += value.length;\n screenColumn = this.$renderToken(lineEl, screenColumn, token, value);\n }\n }\n }\n if (splits[splits.length - 1] > this.MAX_LINE_LENGTH)\n this.$renderOverflowMessage(lineEl, screenColumn, null, \"\", true);\n };\n Text.prototype.$renderSimpleLine = function (parent, tokens) {\n var screenColumn = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n var value = token.value;\n if (i == 0 && this.displayIndentGuides) {\n value = this.renderIndentGuide(parent, value);\n if (!value)\n continue;\n }\n if (screenColumn + value.length > this.MAX_LINE_LENGTH)\n return this.$renderOverflowMessage(parent, screenColumn, token, value);\n screenColumn = this.$renderToken(parent, screenColumn, token, value);\n }\n };\n Text.prototype.$renderOverflowMessage = function (parent, screenColumn, token, value, hide) {\n token && this.$renderToken(parent, screenColumn, token, value.slice(0, this.MAX_LINE_LENGTH - screenColumn));\n var overflowEl = this.dom.createElement(\"span\");\n overflowEl.className = \"ace_inline_button ace_keyword ace_toggle_wrap\";\n overflowEl.textContent = hide ? \"\" : \"\";\n parent.appendChild(overflowEl);\n };\n Text.prototype.$renderLine = function (parent, row, foldLine) {\n if (!foldLine && foldLine != false)\n foldLine = this.session.getFoldLine(row);\n if (foldLine)\n var tokens = this.$getFoldLineTokens(row, foldLine);\n else\n var tokens = this.session.getTokens(row);\n var lastLineEl = parent;\n if (tokens.length) {\n var splits = this.session.getRowSplitData(row);\n if (splits && splits.length) {\n this.$renderWrappedLine(parent, tokens, splits);\n var lastLineEl = parent.lastChild;\n }\n else {\n var lastLineEl = parent;\n if (this.$useLineGroups()) {\n lastLineEl = this.$createLineElement();\n parent.appendChild(lastLineEl);\n }\n this.$renderSimpleLine(lastLineEl, tokens);\n }\n }\n else if (this.$useLineGroups()) {\n lastLineEl = this.$createLineElement();\n parent.appendChild(lastLineEl);\n }\n if (this.showEOL && lastLineEl) {\n if (foldLine)\n row = foldLine.end.row;\n var invisibleEl = this.dom.createElement(\"span\");\n invisibleEl.className = \"ace_invisible ace_invisible_eol\";\n invisibleEl.textContent = row == this.session.getLength() - 1 ? this.EOF_CHAR : this.EOL_CHAR;\n lastLineEl.appendChild(invisibleEl);\n }\n };\n Text.prototype.$getFoldLineTokens = function (row, foldLine) {\n var session = this.session;\n var renderTokens = [];\n function addTokens(tokens, from, to) {\n var idx = 0, col = 0;\n while ((col + tokens[idx].value.length) < from) {\n col += tokens[idx].value.length;\n idx++;\n if (idx == tokens.length)\n return;\n }\n if (col != from) {\n var value = tokens[idx].value.substring(from - col);\n if (value.length > (to - from))\n value = value.substring(0, to - from);\n renderTokens.push({\n type: tokens[idx].type,\n value: value\n });\n col = from + value.length;\n idx += 1;\n }\n while (col < to && idx < tokens.length) {\n var value = tokens[idx].value;\n if (value.length + col > to) {\n renderTokens.push({\n type: tokens[idx].type,\n value: value.substring(0, to - col)\n });\n }\n else\n renderTokens.push(tokens[idx]);\n col += value.length;\n idx += 1;\n }\n }\n var tokens = session.getTokens(row);\n foldLine.walk(function (placeholder, row, column, lastColumn, isNewRow) {\n if (placeholder != null) {\n renderTokens.push({\n type: \"fold\",\n value: placeholder\n });\n }\n else {\n if (isNewRow)\n tokens = session.getTokens(row);\n if (tokens.length)\n addTokens(tokens, lastColumn, column);\n }\n }, foldLine.end.row, this.session.getLine(foldLine.end.row).length);\n return renderTokens;\n };\n Text.prototype.$useLineGroups = function () {\n return this.session.getUseWrapMode();\n };\n return Text;\n}());\nText.prototype.EOF_CHAR = \"\\xB6\";\nText.prototype.EOL_CHAR_LF = \"\\xAC\";\nText.prototype.EOL_CHAR_CRLF = \"\\xa4\";\nText.prototype.EOL_CHAR = Text.prototype.EOL_CHAR_LF;\nText.prototype.TAB_CHAR = \"\\u2014\"; //\"\\u21E5\";\nText.prototype.SPACE_CHAR = \"\\xB7\";\nText.prototype.$padding = 0;\nText.prototype.MAX_LINE_LENGTH = 10000;\nText.prototype.showInvisibles = false;\nText.prototype.showSpaces = false;\nText.prototype.showTabs = false;\nText.prototype.showEOL = false;\nText.prototype.displayIndentGuides = true;\nText.prototype.$highlightIndentGuides = true;\nText.prototype.$tabStrings = [];\nText.prototype.destroy = {};\nText.prototype.onChangeTabSize = Text.prototype.$computeTabString;\noop.implement(Text.prototype, EventEmitter);\nexports.Text = Text;\n\n});\n\nace.define(\"ace/layer/cursor\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar Cursor = /** @class */ (function () {\n function Cursor(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_cursor-layer\";\n parentEl.appendChild(this.element);\n this.isVisible = false;\n this.isBlinking = true;\n this.blinkInterval = 1000;\n this.smoothBlinking = false;\n this.cursors = [];\n this.cursor = this.addCursor();\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.$updateCursors = this.$updateOpacity.bind(this);\n }\n Cursor.prototype.$updateOpacity = function (val) {\n var cursors = this.cursors;\n for (var i = cursors.length; i--;)\n dom.setStyle(cursors[i].style, \"opacity\", val ? \"\" : \"0\");\n };\n Cursor.prototype.$startCssAnimation = function () {\n var cursors = this.cursors;\n for (var i = cursors.length; i--;)\n cursors[i].style.animationDuration = this.blinkInterval + \"ms\";\n this.$isAnimating = true;\n setTimeout(function () {\n if (this.$isAnimating) {\n dom.addCssClass(this.element, \"ace_animate-blinking\");\n }\n }.bind(this));\n };\n Cursor.prototype.$stopCssAnimation = function () {\n this.$isAnimating = false;\n dom.removeCssClass(this.element, \"ace_animate-blinking\");\n };\n Cursor.prototype.setPadding = function (padding) {\n this.$padding = padding;\n };\n Cursor.prototype.setSession = function (session) {\n this.session = session;\n };\n Cursor.prototype.setBlinking = function (blinking) {\n if (blinking != this.isBlinking) {\n this.isBlinking = blinking;\n this.restartTimer();\n }\n };\n Cursor.prototype.setBlinkInterval = function (blinkInterval) {\n if (blinkInterval != this.blinkInterval) {\n this.blinkInterval = blinkInterval;\n this.restartTimer();\n }\n };\n Cursor.prototype.setSmoothBlinking = function (smoothBlinking) {\n if (smoothBlinking != this.smoothBlinking) {\n this.smoothBlinking = smoothBlinking;\n dom.setCssClass(this.element, \"ace_smooth-blinking\", smoothBlinking);\n this.$updateCursors(true);\n this.restartTimer();\n }\n };\n Cursor.prototype.addCursor = function () {\n var el = dom.createElement(\"div\");\n el.className = \"ace_cursor\";\n this.element.appendChild(el);\n this.cursors.push(el);\n return el;\n };\n Cursor.prototype.removeCursor = function () {\n if (this.cursors.length > 1) {\n var el = this.cursors.pop();\n el.parentNode.removeChild(el);\n return el;\n }\n };\n Cursor.prototype.hideCursor = function () {\n this.isVisible = false;\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n Cursor.prototype.showCursor = function () {\n this.isVisible = true;\n dom.removeCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n Cursor.prototype.restartTimer = function () {\n var update = this.$updateCursors;\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n this.$stopCssAnimation();\n if (this.smoothBlinking) {\n this.$isSmoothBlinking = false;\n dom.removeCssClass(this.element, \"ace_smooth-blinking\");\n }\n update(true);\n if (!this.isBlinking || !this.blinkInterval || !this.isVisible) {\n this.$stopCssAnimation();\n return;\n }\n if (this.smoothBlinking) {\n this.$isSmoothBlinking = true;\n setTimeout(function () {\n if (this.$isSmoothBlinking) {\n dom.addCssClass(this.element, \"ace_smooth-blinking\");\n }\n }.bind(this));\n }\n if (dom.HAS_CSS_ANIMATION) {\n this.$startCssAnimation();\n }\n else {\n var blink = function () {\n this.timeoutId = setTimeout(function () {\n update(false);\n }, 0.6 * this.blinkInterval);\n }.bind(this);\n this.intervalId = setInterval(function () {\n update(true);\n blink();\n }, this.blinkInterval);\n blink();\n }\n };\n Cursor.prototype.getPixelPosition = function (position, onScreen) {\n if (!this.config || !this.session)\n return { left: 0, top: 0 };\n if (!position)\n position = this.session.selection.getCursor();\n var pos = this.session.documentToScreenPosition(position);\n var cursorLeft = this.$padding + (this.session.$bidiHandler.isBidiRow(pos.row, position.row)\n ? this.session.$bidiHandler.getPosLeft(pos.column)\n : pos.column * this.config.characterWidth);\n var cursorTop = (pos.row - (onScreen ? this.config.firstRowScreen : 0)) *\n this.config.lineHeight;\n return { left: cursorLeft, top: cursorTop };\n };\n Cursor.prototype.isCursorInView = function (pixelPos, config) {\n return pixelPos.top >= 0 && pixelPos.top < config.maxHeight;\n };\n Cursor.prototype.update = function (config) {\n this.config = config;\n var selections = this.session.$selectionMarkers;\n var i = 0, cursorIndex = 0;\n if (selections === undefined || selections.length === 0) {\n selections = [{ cursor: null }];\n }\n for (var i = 0, n = selections.length; i < n; i++) {\n var pixelPos = this.getPixelPosition(selections[i].cursor, true);\n if ((pixelPos.top > config.height + config.offset ||\n pixelPos.top < 0) && i > 1) {\n continue;\n }\n var element = this.cursors[cursorIndex++] || this.addCursor();\n var style = element.style;\n if (!this.drawCursor) {\n if (!this.isCursorInView(pixelPos, config)) {\n dom.setStyle(style, \"display\", \"none\");\n }\n else {\n dom.setStyle(style, \"display\", \"block\");\n dom.translate(element, pixelPos.left, pixelPos.top);\n dom.setStyle(style, \"width\", Math.round(config.characterWidth) + \"px\");\n dom.setStyle(style, \"height\", config.lineHeight + \"px\");\n }\n }\n else {\n this.drawCursor(element, pixelPos, config, selections[i], this.session);\n }\n }\n while (this.cursors.length > cursorIndex)\n this.removeCursor();\n var overwrite = this.session.getOverwrite();\n this.$setOverwrite(overwrite);\n this.$pixelPos = pixelPos;\n this.restartTimer();\n };\n Cursor.prototype.$setOverwrite = function (overwrite) {\n if (overwrite != this.overwrite) {\n this.overwrite = overwrite;\n if (overwrite)\n dom.addCssClass(this.element, \"ace_overwrite-cursors\");\n else\n dom.removeCssClass(this.element, \"ace_overwrite-cursors\");\n }\n };\n Cursor.prototype.destroy = function () {\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n };\n return Cursor;\n}());\nCursor.prototype.$padding = 0;\nCursor.prototype.drawCursor = null;\nexports.Cursor = Cursor;\n\n});\n\nace.define(\"ace/scrollbar\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar event = require(\"./lib/event\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar MAX_SCROLL_H = 0x8000;\nvar Scrollbar = /** @class */ (function () {\n function Scrollbar(parent, classSuffix) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_scrollbar ace_scrollbar\" + classSuffix;\n this.inner = dom.createElement(\"div\");\n this.inner.className = \"ace_scrollbar-inner\";\n this.inner.textContent = \"\\xa0\";\n this.element.appendChild(this.inner);\n parent.appendChild(this.element);\n this.setVisible(false);\n this.skipEvent = false;\n event.addListener(this.element, \"scroll\", this.onScroll.bind(this));\n event.addListener(this.element, \"mousedown\", event.preventDefault);\n }\n Scrollbar.prototype.setVisible = function (isVisible) {\n this.element.style.display = isVisible ? \"\" : \"none\";\n this.isVisible = isVisible;\n this.coeff = 1;\n };\n return Scrollbar;\n}());\noop.implement(Scrollbar.prototype, EventEmitter);\nvar VScrollBar = /** @class */ (function (_super) {\n __extends(VScrollBar, _super);\n function VScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-v') || this;\n _this.scrollTop = 0;\n _this.scrollHeight = 0;\n renderer.$scrollbarWidth =\n _this.width = dom.scrollbarWidth(parent.ownerDocument);\n _this.inner.style.width =\n _this.element.style.width = (_this.width || 15) + 5 + \"px\";\n _this.$minWidth = 0;\n return _this;\n }\n VScrollBar.prototype.onScroll = function () {\n if (!this.skipEvent) {\n this.scrollTop = this.element.scrollTop;\n if (this.coeff != 1) {\n var h = this.element.clientHeight / this.scrollHeight;\n this.scrollTop = this.scrollTop * (1 - h) / (this.coeff - h);\n }\n this._emit(\"scroll\", { data: this.scrollTop });\n }\n this.skipEvent = false;\n };\n VScrollBar.prototype.getWidth = function () {\n return Math.max(this.isVisible ? this.width : 0, this.$minWidth || 0);\n };\n VScrollBar.prototype.setHeight = function (height) {\n this.element.style.height = height + \"px\";\n };\n VScrollBar.prototype.setScrollHeight = function (height) {\n this.scrollHeight = height;\n if (height > MAX_SCROLL_H) {\n this.coeff = MAX_SCROLL_H / height;\n height = MAX_SCROLL_H;\n }\n else if (this.coeff != 1) {\n this.coeff = 1;\n }\n this.inner.style.height = height + \"px\";\n };\n VScrollBar.prototype.setScrollTop = function (scrollTop) {\n if (this.scrollTop != scrollTop) {\n this.skipEvent = true;\n this.scrollTop = scrollTop;\n this.element.scrollTop = scrollTop * this.coeff;\n }\n };\n return VScrollBar;\n}(Scrollbar));\nVScrollBar.prototype.setInnerHeight = VScrollBar.prototype.setScrollHeight;\nvar HScrollBar = /** @class */ (function (_super) {\n __extends(HScrollBar, _super);\n function HScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-h') || this;\n _this.scrollLeft = 0;\n _this.height = renderer.$scrollbarWidth;\n _this.inner.style.height =\n _this.element.style.height = (_this.height || 15) + 5 + \"px\";\n return _this;\n }\n HScrollBar.prototype.onScroll = function () {\n if (!this.skipEvent) {\n this.scrollLeft = this.element.scrollLeft;\n this._emit(\"scroll\", { data: this.scrollLeft });\n }\n this.skipEvent = false;\n };\n HScrollBar.prototype.getHeight = function () {\n return this.isVisible ? this.height : 0;\n };\n HScrollBar.prototype.setWidth = function (width) {\n this.element.style.width = width + \"px\";\n };\n HScrollBar.prototype.setInnerWidth = function (width) {\n this.inner.style.width = width + \"px\";\n };\n HScrollBar.prototype.setScrollWidth = function (width) {\n this.inner.style.width = width + \"px\";\n };\n HScrollBar.prototype.setScrollLeft = function (scrollLeft) {\n if (this.scrollLeft != scrollLeft) {\n this.skipEvent = true;\n this.scrollLeft = this.element.scrollLeft = scrollLeft;\n }\n };\n return HScrollBar;\n}(Scrollbar));\nexports.ScrollBar = VScrollBar; // backward compatibility\nexports.ScrollBarV = VScrollBar; // backward compatibility\nexports.ScrollBarH = HScrollBar; // backward compatibility\nexports.VScrollBar = VScrollBar;\nexports.HScrollBar = HScrollBar;\n\n});\n\nace.define(\"ace/scrollbar_custom\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar event = require(\"./lib/event\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\ndom.importCssString(\".ace_editor>.ace_sb-v div, .ace_editor>.ace_sb-h div{\\n position: absolute;\\n background: rgba(128, 128, 128, 0.6);\\n -moz-box-sizing: border-box;\\n box-sizing: border-box;\\n border: 1px solid #bbb;\\n border-radius: 2px;\\n z-index: 8;\\n}\\n.ace_editor>.ace_sb-v, .ace_editor>.ace_sb-h {\\n position: absolute;\\n z-index: 6;\\n background: none;\\n overflow: hidden!important;\\n}\\n.ace_editor>.ace_sb-v {\\n z-index: 6;\\n right: 0;\\n top: 0;\\n width: 12px;\\n}\\n.ace_editor>.ace_sb-v div {\\n z-index: 8;\\n right: 0;\\n width: 100%;\\n}\\n.ace_editor>.ace_sb-h {\\n bottom: 0;\\n left: 0;\\n height: 12px;\\n}\\n.ace_editor>.ace_sb-h div {\\n bottom: 0;\\n height: 100%;\\n}\\n.ace_editor>.ace_sb_grabbed {\\n z-index: 8;\\n background: #000;\\n}\", \"ace_scrollbar.css\", false);\nvar ScrollBar = /** @class */ (function () {\n function ScrollBar(parent, classSuffix) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_sb\" + classSuffix;\n this.inner = dom.createElement(\"div\");\n this.inner.className = \"\";\n this.element.appendChild(this.inner);\n this.VScrollWidth = 12;\n this.HScrollHeight = 12;\n parent.appendChild(this.element);\n this.setVisible(false);\n this.skipEvent = false;\n event.addMultiMouseDownListener(this.element, [500, 300, 300], this, \"onMouseDown\");\n }\n ScrollBar.prototype.setVisible = function (isVisible) {\n this.element.style.display = isVisible ? \"\" : \"none\";\n this.isVisible = isVisible;\n this.coeff = 1;\n };\n return ScrollBar;\n}());\noop.implement(ScrollBar.prototype, EventEmitter);\nvar VScrollBar = /** @class */ (function (_super) {\n __extends(VScrollBar, _super);\n function VScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-v') || this;\n _this.scrollTop = 0;\n _this.scrollHeight = 0;\n _this.parent = parent;\n _this.width = _this.VScrollWidth;\n _this.renderer = renderer;\n _this.inner.style.width = _this.element.style.width = (_this.width || 15) + \"px\";\n _this.$minWidth = 0;\n return _this;\n }\n VScrollBar.prototype.onMouseDown = function (eType, e) {\n if (eType !== \"mousedown\")\n return;\n if (event.getButton(e) !== 0 || e.detail === 2) {\n return;\n }\n if (e.target === this.inner) {\n var self = this;\n var mousePageY = e.clientY;\n var onMouseMove = function (e) {\n mousePageY = e.clientY;\n };\n var onMouseUp = function () {\n clearInterval(timerId);\n };\n var startY = e.clientY;\n var startTop = this.thumbTop;\n var onScrollInterval = function () {\n if (mousePageY === undefined)\n return;\n var scrollTop = self.scrollTopFromThumbTop(startTop + mousePageY - startY);\n if (scrollTop === self.scrollTop)\n return;\n self._emit(\"scroll\", { data: scrollTop });\n };\n event.capture(this.inner, onMouseMove, onMouseUp);\n var timerId = setInterval(onScrollInterval, 20);\n return event.preventDefault(e);\n }\n var top = e.clientY - this.element.getBoundingClientRect().top - this.thumbHeight / 2;\n this._emit(\"scroll\", { data: this.scrollTopFromThumbTop(top) });\n return event.preventDefault(e);\n };\n VScrollBar.prototype.getHeight = function () {\n return this.height;\n };\n VScrollBar.prototype.scrollTopFromThumbTop = function (thumbTop) {\n var scrollTop = thumbTop * (this.pageHeight - this.viewHeight) / (this.slideHeight - this.thumbHeight);\n scrollTop = scrollTop >> 0;\n if (scrollTop < 0) {\n scrollTop = 0;\n }\n else if (scrollTop > this.pageHeight - this.viewHeight) {\n scrollTop = this.pageHeight - this.viewHeight;\n }\n return scrollTop;\n };\n VScrollBar.prototype.getWidth = function () {\n return Math.max(this.isVisible ? this.width : 0, this.$minWidth || 0);\n };\n VScrollBar.prototype.setHeight = function (height) {\n this.height = Math.max(0, height);\n this.slideHeight = this.height;\n this.viewHeight = this.height;\n this.setScrollHeight(this.pageHeight, true);\n };\n VScrollBar.prototype.setScrollHeight = function (height, force) {\n if (this.pageHeight === height && !force)\n return;\n this.pageHeight = height;\n this.thumbHeight = this.slideHeight * this.viewHeight / this.pageHeight;\n if (this.thumbHeight > this.slideHeight)\n this.thumbHeight = this.slideHeight;\n if (this.thumbHeight < 15)\n this.thumbHeight = 15;\n this.inner.style.height = this.thumbHeight + \"px\";\n if (this.scrollTop > (this.pageHeight - this.viewHeight)) {\n this.scrollTop = (this.pageHeight - this.viewHeight);\n if (this.scrollTop < 0)\n this.scrollTop = 0;\n this._emit(\"scroll\", { data: this.scrollTop });\n }\n };\n VScrollBar.prototype.setScrollTop = function (scrollTop) {\n this.scrollTop = scrollTop;\n if (scrollTop < 0)\n scrollTop = 0;\n this.thumbTop = scrollTop * (this.slideHeight - this.thumbHeight) / (this.pageHeight - this.viewHeight);\n this.inner.style.top = this.thumbTop + \"px\";\n };\n return VScrollBar;\n}(ScrollBar));\nVScrollBar.prototype.setInnerHeight = VScrollBar.prototype.setScrollHeight;\nvar HScrollBar = /** @class */ (function (_super) {\n __extends(HScrollBar, _super);\n function HScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-h') || this;\n _this.scrollLeft = 0;\n _this.scrollWidth = 0;\n _this.height = _this.HScrollHeight;\n _this.inner.style.height = _this.element.style.height = (_this.height || 12) + \"px\";\n _this.renderer = renderer;\n return _this;\n }\n HScrollBar.prototype.onMouseDown = function (eType, e) {\n if (eType !== \"mousedown\")\n return;\n if (event.getButton(e) !== 0 || e.detail === 2) {\n return;\n }\n if (e.target === this.inner) {\n var self = this;\n var mousePageX = e.clientX;\n var onMouseMove = function (e) {\n mousePageX = e.clientX;\n };\n var onMouseUp = function () {\n clearInterval(timerId);\n };\n var startX = e.clientX;\n var startLeft = this.thumbLeft;\n var onScrollInterval = function () {\n if (mousePageX === undefined)\n return;\n var scrollLeft = self.scrollLeftFromThumbLeft(startLeft + mousePageX - startX);\n if (scrollLeft === self.scrollLeft)\n return;\n self._emit(\"scroll\", { data: scrollLeft });\n };\n event.capture(this.inner, onMouseMove, onMouseUp);\n var timerId = setInterval(onScrollInterval, 20);\n return event.preventDefault(e);\n }\n var left = e.clientX - this.element.getBoundingClientRect().left - this.thumbWidth / 2;\n this._emit(\"scroll\", { data: this.scrollLeftFromThumbLeft(left) });\n return event.preventDefault(e);\n };\n HScrollBar.prototype.getHeight = function () {\n return this.isVisible ? this.height : 0;\n };\n HScrollBar.prototype.scrollLeftFromThumbLeft = function (thumbLeft) {\n var scrollLeft = thumbLeft * (this.pageWidth - this.viewWidth) / (this.slideWidth - this.thumbWidth);\n scrollLeft = scrollLeft >> 0;\n if (scrollLeft < 0) {\n scrollLeft = 0;\n }\n else if (scrollLeft > this.pageWidth - this.viewWidth) {\n scrollLeft = this.pageWidth - this.viewWidth;\n }\n return scrollLeft;\n };\n HScrollBar.prototype.setWidth = function (width) {\n this.width = Math.max(0, width);\n this.element.style.width = this.width + \"px\";\n this.slideWidth = this.width;\n this.viewWidth = this.width;\n this.setScrollWidth(this.pageWidth, true);\n };\n HScrollBar.prototype.setScrollWidth = function (width, force) {\n if (this.pageWidth === width && !force)\n return;\n this.pageWidth = width;\n this.thumbWidth = this.slideWidth * this.viewWidth / this.pageWidth;\n if (this.thumbWidth > this.slideWidth)\n this.thumbWidth = this.slideWidth;\n if (this.thumbWidth < 15)\n this.thumbWidth = 15;\n this.inner.style.width = this.thumbWidth + \"px\";\n if (this.scrollLeft > (this.pageWidth - this.viewWidth)) {\n this.scrollLeft = (this.pageWidth - this.viewWidth);\n if (this.scrollLeft < 0)\n this.scrollLeft = 0;\n this._emit(\"scroll\", { data: this.scrollLeft });\n }\n };\n HScrollBar.prototype.setScrollLeft = function (scrollLeft) {\n this.scrollLeft = scrollLeft;\n if (scrollLeft < 0)\n scrollLeft = 0;\n this.thumbLeft = scrollLeft * (this.slideWidth - this.thumbWidth) / (this.pageWidth - this.viewWidth);\n this.inner.style.left = (this.thumbLeft) + \"px\";\n };\n return HScrollBar;\n}(ScrollBar));\nHScrollBar.prototype.setInnerWidth = HScrollBar.prototype.setScrollWidth;\nexports.ScrollBar = VScrollBar; // backward compatibility\nexports.ScrollBarV = VScrollBar; // backward compatibility\nexports.ScrollBarH = HScrollBar; // backward compatibility\nexports.VScrollBar = VScrollBar;\nexports.HScrollBar = HScrollBar;\n\n});\n\nace.define(\"ace/renderloop\",[\"require\",\"exports\",\"module\",\"ace/lib/event\"], function(require, exports, module){\"use strict\";\nvar event = require(\"./lib/event\");\nvar RenderLoop = /** @class */ (function () {\n function RenderLoop(onRender, win) {\n this.onRender = onRender;\n this.pending = false;\n this.changes = 0;\n this.$recursionLimit = 2;\n this.window = win || window;\n var _self = this;\n this._flush = function (ts) {\n _self.pending = false;\n var changes = _self.changes;\n if (changes) {\n event.blockIdle(100);\n _self.changes = 0;\n _self.onRender(changes);\n }\n if (_self.changes) {\n if (_self.$recursionLimit-- < 0)\n return;\n _self.schedule();\n }\n else {\n _self.$recursionLimit = 2;\n }\n };\n }\n RenderLoop.prototype.schedule = function (change) {\n this.changes = this.changes | change;\n if (this.changes && !this.pending) {\n event.nextFrame(this._flush);\n this.pending = true;\n }\n };\n RenderLoop.prototype.clear = function (change) {\n var changes = this.changes;\n this.changes = 0;\n return changes;\n };\n return RenderLoop;\n}());\nexports.RenderLoop = RenderLoop;\n\n});\n\nace.define(\"ace/layer/font_metrics\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar CHAR_COUNT = 512;\nvar USE_OBSERVER = typeof ResizeObserver == \"function\";\nvar L = 200;\nvar FontMetrics = /** @class */ (function () {\n function FontMetrics(parentEl) {\n this.el = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.el.style, true);\n this.$main = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$main.style);\n this.$measureNode = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$measureNode.style);\n this.el.appendChild(this.$main);\n this.el.appendChild(this.$measureNode);\n parentEl.appendChild(this.el);\n this.$measureNode.textContent = lang.stringRepeat(\"X\", CHAR_COUNT);\n this.$characterSize = { width: 0, height: 0 };\n if (USE_OBSERVER)\n this.$addObserver();\n else\n this.checkForSizeChanges();\n }\n FontMetrics.prototype.$setMeasureNodeStyles = function (style, isRoot) {\n style.width = style.height = \"auto\";\n style.left = style.top = \"0px\";\n style.visibility = \"hidden\";\n style.position = \"absolute\";\n style.whiteSpace = \"pre\";\n if (useragent.isIE < 8) {\n style[\"font-family\"] = \"inherit\";\n }\n else {\n style.font = \"inherit\";\n }\n style.overflow = isRoot ? \"hidden\" : \"visible\";\n };\n FontMetrics.prototype.checkForSizeChanges = function (size) {\n if (size === undefined)\n size = this.$measureSizes();\n if (size && (this.$characterSize.width !== size.width || this.$characterSize.height !== size.height)) {\n this.$measureNode.style.fontWeight = \"bold\";\n var boldSize = this.$measureSizes();\n this.$measureNode.style.fontWeight = \"\";\n this.$characterSize = size;\n this.charSizes = Object.create(null);\n this.allowBoldFonts = boldSize && boldSize.width === size.width && boldSize.height === size.height;\n this._emit(\"changeCharacterSize\", { data: size });\n }\n };\n FontMetrics.prototype.$addObserver = function () {\n var self = this;\n this.$observer = new window.ResizeObserver(function (e) {\n self.checkForSizeChanges();\n });\n this.$observer.observe(this.$measureNode);\n };\n FontMetrics.prototype.$pollSizeChanges = function () {\n if (this.$pollSizeChangesTimer || this.$observer)\n return this.$pollSizeChangesTimer;\n var self = this;\n return this.$pollSizeChangesTimer = event.onIdle(function cb() {\n self.checkForSizeChanges();\n event.onIdle(cb, 500);\n }, 500);\n };\n FontMetrics.prototype.setPolling = function (val) {\n if (val) {\n this.$pollSizeChanges();\n }\n else if (this.$pollSizeChangesTimer) {\n clearInterval(this.$pollSizeChangesTimer);\n this.$pollSizeChangesTimer = 0;\n }\n };\n FontMetrics.prototype.$measureSizes = function (node) {\n var size = {\n height: (node || this.$measureNode).clientHeight,\n width: (node || this.$measureNode).clientWidth / CHAR_COUNT\n };\n if (size.width === 0 || size.height === 0)\n return null;\n return size;\n };\n FontMetrics.prototype.$measureCharWidth = function (ch) {\n this.$main.textContent = lang.stringRepeat(ch, CHAR_COUNT);\n var rect = this.$main.getBoundingClientRect();\n return rect.width / CHAR_COUNT;\n };\n FontMetrics.prototype.getCharacterWidth = function (ch) {\n var w = this.charSizes[ch];\n if (w === undefined) {\n w = this.charSizes[ch] = this.$measureCharWidth(ch) / this.$characterSize.width;\n }\n return w;\n };\n FontMetrics.prototype.destroy = function () {\n clearInterval(this.$pollSizeChangesTimer);\n if (this.$observer)\n this.$observer.disconnect();\n if (this.el && this.el.parentNode)\n this.el.parentNode.removeChild(this.el);\n };\n FontMetrics.prototype.$getZoom = function (element) {\n if (!element || !element.parentElement)\n return 1;\n return (window.getComputedStyle(element).zoom || 1) * this.$getZoom(element.parentElement);\n };\n FontMetrics.prototype.$initTransformMeasureNodes = function () {\n var t = function (t, l) {\n return [\"div\", {\n style: \"position: absolute;top:\" + t + \"px;left:\" + l + \"px;\"\n }];\n };\n this.els = dom.buildDom([t(0, 0), t(L, 0), t(0, L), t(L, L)], this.el);\n };\n FontMetrics.prototype.transformCoordinates = function (clientPos, elPos) {\n if (clientPos) {\n var zoom = this.$getZoom(this.el);\n clientPos = mul(1 / zoom, clientPos);\n }\n function solve(l1, l2, r) {\n var det = l1[1] * l2[0] - l1[0] * l2[1];\n return [\n (-l2[1] * r[0] + l2[0] * r[1]) / det,\n (+l1[1] * r[0] - l1[0] * r[1]) / det\n ];\n }\n function sub(a, b) { return [a[0] - b[0], a[1] - b[1]]; }\n function add(a, b) { return [a[0] + b[0], a[1] + b[1]]; }\n function mul(a, b) { return [a * b[0], a * b[1]]; }\n if (!this.els)\n this.$initTransformMeasureNodes();\n function p(el) {\n var r = el.getBoundingClientRect();\n return [r.left, r.top];\n }\n var a = p(this.els[0]);\n var b = p(this.els[1]);\n var c = p(this.els[2]);\n var d = p(this.els[3]);\n var h = solve(sub(d, b), sub(d, c), sub(add(b, c), add(d, a)));\n var m1 = mul(1 + h[0], sub(b, a));\n var m2 = mul(1 + h[1], sub(c, a));\n if (elPos) {\n var x = elPos;\n var k = h[0] * x[0] / L + h[1] * x[1] / L + 1;\n var ut = add(mul(x[0], m1), mul(x[1], m2));\n return add(mul(1 / k / L, ut), a);\n }\n var u = sub(clientPos, a);\n var f = solve(sub(m1, mul(h[0], u)), sub(m2, mul(h[1], u)), u);\n return mul(L, f);\n };\n return FontMetrics;\n}());\nFontMetrics.prototype.$characterSize = { width: 0, height: 0 };\noop.implement(FontMetrics.prototype, EventEmitter);\nexports.FontMetrics = FontMetrics;\n\n});\n\nace.define(\"ace/css/editor-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){/*\nstyles = []\nfor (var i = 1; i < 16; i++) {\n styles.push(\".ace_br\" + i + \"{\" + (\n [\"top-left\", \"top-right\", \"bottom-right\", \"bottom-left\"]\n ).map(function(x, j) {\n return i & (1< .ace_line, .ace_text-layer > .ace_line_group {\\n contain: style size layout;\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n}\\n\\n.ace_hidpi .ace_text-layer,\\n.ace_hidpi .ace_gutter-layer,\\n.ace_hidpi .ace_content,\\n.ace_hidpi .ace_gutter {\\n contain: strict;\\n}\\n.ace_hidpi .ace_text-layer > .ace_line, \\n.ace_hidpi .ace_text-layer > .ace_line_group {\\n contain: strict;\\n}\\n\\n.ace_cjk {\\n display: inline-block;\\n text-align: center;\\n}\\n\\n.ace_cursor-layer {\\n z-index: 4;\\n}\\n\\n.ace_cursor {\\n z-index: 4;\\n position: absolute;\\n box-sizing: border-box;\\n border-left: 2px solid;\\n /* workaround for smooth cursor repaintng whole screen in chrome */\\n transform: translatez(0);\\n}\\n\\n.ace_multiselect .ace_cursor {\\n border-left-width: 1px;\\n}\\n\\n.ace_slim-cursors .ace_cursor {\\n border-left-width: 1px;\\n}\\n\\n.ace_overwrite-cursors .ace_cursor {\\n border-left-width: 0;\\n border-bottom: 1px solid;\\n}\\n\\n.ace_hidden-cursors .ace_cursor {\\n opacity: 0.2;\\n}\\n\\n.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor {\\n opacity: 0;\\n}\\n\\n.ace_smooth-blinking .ace_cursor {\\n transition: opacity 0.18s;\\n}\\n\\n.ace_animate-blinking .ace_cursor {\\n animation-duration: 1000ms;\\n animation-timing-function: step-end;\\n animation-name: blink-ace-animate;\\n animation-iteration-count: infinite;\\n}\\n\\n.ace_animate-blinking.ace_smooth-blinking .ace_cursor {\\n animation-duration: 1000ms;\\n animation-timing-function: ease-in-out;\\n animation-name: blink-ace-animate-smooth;\\n}\\n \\n@keyframes blink-ace-animate {\\n from, to { opacity: 1; }\\n 60% { opacity: 0; }\\n}\\n\\n@keyframes blink-ace-animate-smooth {\\n from, to { opacity: 1; }\\n 45% { opacity: 1; }\\n 60% { opacity: 0; }\\n 85% { opacity: 0; }\\n}\\n\\n.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\\n position: absolute;\\n z-index: 3;\\n}\\n\\n.ace_marker-layer .ace_selection {\\n position: absolute;\\n z-index: 5;\\n}\\n\\n.ace_marker-layer .ace_bracket {\\n position: absolute;\\n z-index: 6;\\n}\\n\\n.ace_marker-layer .ace_error_bracket {\\n position: absolute;\\n border-bottom: 1px solid #DE5555;\\n border-radius: 0;\\n}\\n\\n.ace_marker-layer .ace_active-line {\\n position: absolute;\\n z-index: 2;\\n}\\n\\n.ace_marker-layer .ace_selected-word {\\n position: absolute;\\n z-index: 4;\\n box-sizing: border-box;\\n}\\n\\n.ace_line .ace_fold {\\n box-sizing: border-box;\\n\\n display: inline-block;\\n height: 11px;\\n margin-top: -2px;\\n vertical-align: middle;\\n\\n background-image:\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=\\\");\\n background-repeat: no-repeat, repeat-x;\\n background-position: center center, top left;\\n color: transparent;\\n\\n border: 1px solid black;\\n border-radius: 2px;\\n\\n cursor: pointer;\\n pointer-events: auto;\\n}\\n\\n.ace_dark .ace_fold {\\n}\\n\\n.ace_fold:hover{\\n background-image:\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC\\\");\\n}\\n\\n.ace_tooltip {\\n background-color: #f5f5f5;\\n border: 1px solid gray;\\n border-radius: 1px;\\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\\n color: black;\\n max-width: 100%;\\n padding: 3px 4px;\\n position: fixed;\\n z-index: 999999;\\n box-sizing: border-box;\\n cursor: default;\\n white-space: pre-wrap;\\n word-wrap: break-word;\\n line-height: normal;\\n font-style: normal;\\n font-weight: normal;\\n letter-spacing: normal;\\n pointer-events: none;\\n overflow: auto;\\n max-width: min(60em, 66vw);\\n}\\n.ace_tooltip pre {\\n white-space: pre-wrap;\\n}\\n\\n.ace_tooltip.ace_dark {\\n background-color: #636363;\\n color: #fff;\\n}\\n\\n.ace_tooltip:focus {\\n outline: 1px solid #5E9ED6;\\n}\\n\\n.ace_icon {\\n display: inline-block;\\n width: 18px;\\n vertical-align: top;\\n}\\n\\n.ace_icon_svg {\\n display: inline-block;\\n width: 12px;\\n vertical-align: top;\\n -webkit-mask-repeat: no-repeat;\\n -webkit-mask-size: 12px;\\n -webkit-mask-position: center;\\n}\\n\\n.ace_folding-enabled > .ace_gutter-cell, .ace_folding-enabled > .ace_gutter-cell_svg-icons {\\n padding-right: 13px;\\n}\\n\\n.ace_fold-widget {\\n box-sizing: border-box;\\n\\n margin: 0 -12px 0 1px;\\n display: none;\\n width: 11px;\\n vertical-align: top;\\n\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==\\\");\\n background-repeat: no-repeat;\\n background-position: center;\\n\\n border-radius: 3px;\\n \\n border: 1px solid transparent;\\n cursor: pointer;\\n}\\n\\n.ace_folding-enabled .ace_fold-widget {\\n display: inline-block; \\n}\\n\\n.ace_fold-widget.ace_end {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==\\\");\\n}\\n\\n.ace_fold-widget.ace_closed {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==\\\");\\n}\\n\\n.ace_fold-widget:hover {\\n border: 1px solid rgba(0, 0, 0, 0.3);\\n background-color: rgba(255, 255, 255, 0.2);\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\\n}\\n\\n.ace_fold-widget:active {\\n border: 1px solid rgba(0, 0, 0, 0.4);\\n background-color: rgba(0, 0, 0, 0.05);\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\\n}\\n/**\\n * Dark version for fold widgets\\n */\\n.ace_dark .ace_fold-widget {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC\\\");\\n}\\n.ace_dark .ace_fold-widget.ace_end {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==\\\");\\n}\\n.ace_dark .ace_fold-widget.ace_closed {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==\\\");\\n}\\n.ace_dark .ace_fold-widget:hover {\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.ace_dark .ace_fold-widget:active {\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\n}\\n\\n.ace_inline_button {\\n border: 1px solid lightgray;\\n display: inline-block;\\n margin: -1px 8px;\\n padding: 0 5px;\\n pointer-events: auto;\\n cursor: pointer;\\n}\\n.ace_inline_button:hover {\\n border-color: gray;\\n background: rgba(200,200,200,0.2);\\n display: inline-block;\\n pointer-events: auto;\\n}\\n\\n.ace_fold-widget.ace_invalid {\\n background-color: #FFB4B4;\\n border-color: #DE5555;\\n}\\n\\n.ace_fade-fold-widgets .ace_fold-widget {\\n transition: opacity 0.4s ease 0.05s;\\n opacity: 0;\\n}\\n\\n.ace_fade-fold-widgets:hover .ace_fold-widget {\\n transition: opacity 0.05s ease 0.05s;\\n opacity:1;\\n}\\n\\n.ace_underline {\\n text-decoration: underline;\\n}\\n\\n.ace_bold {\\n font-weight: bold;\\n}\\n\\n.ace_nobold .ace_bold {\\n font-weight: normal;\\n}\\n\\n.ace_italic {\\n font-style: italic;\\n}\\n\\n\\n.ace_error-marker {\\n background-color: rgba(255, 0, 0,0.2);\\n position: absolute;\\n z-index: 9;\\n}\\n\\n.ace_highlight-marker {\\n background-color: rgba(255, 255, 0,0.2);\\n position: absolute;\\n z-index: 8;\\n}\\n\\n.ace_mobile-menu {\\n position: absolute;\\n line-height: 1.5;\\n border-radius: 4px;\\n -ms-user-select: none;\\n -moz-user-select: none;\\n -webkit-user-select: none;\\n user-select: none;\\n background: white;\\n box-shadow: 1px 3px 2px grey;\\n border: 1px solid #dcdcdc;\\n color: black;\\n}\\n.ace_dark > .ace_mobile-menu {\\n background: #333;\\n color: #ccc;\\n box-shadow: 1px 3px 2px grey;\\n border: 1px solid #444;\\n\\n}\\n.ace_mobile-button {\\n padding: 2px;\\n cursor: pointer;\\n overflow: hidden;\\n}\\n.ace_mobile-button:hover {\\n background-color: #eee;\\n opacity:1;\\n}\\n.ace_mobile-button:active {\\n background-color: #ddd;\\n}\\n\\n.ace_placeholder {\\n font-family: arial;\\n transform: scale(0.9);\\n transform-origin: left;\\n white-space: pre;\\n opacity: 0.7;\\n margin: 0 10px;\\n}\\n\\n.ace_ghost_text {\\n opacity: 0.5;\\n font-style: italic;\\n white-space: pre;\\n}\\n\\n.ace_screenreader-only {\\n position:absolute;\\n left:-10000px;\\n top:auto;\\n width:1px;\\n height:1px;\\n overflow:hidden;\\n}\";\n\n});\n\nace.define(\"ace/layer/decorators\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar oop = require(\"../lib/oop\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar Decorator = /** @class */ (function () {\n function Decorator(parent, renderer) {\n this.canvas = dom.createElement(\"canvas\");\n this.renderer = renderer;\n this.pixelRatio = 1;\n this.maxHeight = renderer.layerConfig.maxHeight;\n this.lineHeight = renderer.layerConfig.lineHeight;\n this.canvasHeight = parent.parent.scrollHeight;\n this.heightRatio = this.canvasHeight / this.maxHeight;\n this.canvasWidth = parent.width;\n this.minDecorationHeight = (2 * this.pixelRatio) | 0;\n this.halfMinDecorationHeight = (this.minDecorationHeight / 2) | 0;\n this.canvas.width = this.canvasWidth;\n this.canvas.height = this.canvasHeight;\n this.canvas.style.top = 0 + \"px\";\n this.canvas.style.right = 0 + \"px\";\n this.canvas.style.zIndex = 7 + \"px\";\n this.canvas.style.position = \"absolute\";\n this.colors = {};\n this.colors.dark = {\n \"error\": \"rgba(255, 18, 18, 1)\",\n \"warning\": \"rgba(18, 136, 18, 1)\",\n \"info\": \"rgba(18, 18, 136, 1)\"\n };\n this.colors.light = {\n \"error\": \"rgb(255,51,51)\",\n \"warning\": \"rgb(32,133,72)\",\n \"info\": \"rgb(35,68,138)\"\n };\n parent.element.appendChild(this.canvas);\n }\n Decorator.prototype.$updateDecorators = function (config) {\n var colors = (this.renderer.theme.isDark === true) ? this.colors.dark : this.colors.light;\n if (config) {\n this.maxHeight = config.maxHeight;\n this.lineHeight = config.lineHeight;\n this.canvasHeight = config.height;\n var allLineHeight = (config.lastRow + 1) * this.lineHeight;\n if (allLineHeight < this.canvasHeight) {\n this.heightRatio = 1;\n }\n else {\n this.heightRatio = this.canvasHeight / this.maxHeight;\n }\n }\n var ctx = this.canvas.getContext(\"2d\");\n function compare(a, b) {\n if (a.priority < b.priority)\n return -1;\n if (a.priority > b.priority)\n return 1;\n return 0;\n }\n var annotations = this.renderer.session.$annotations;\n ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n if (annotations) {\n var priorities = {\n \"info\": 1,\n \"warning\": 2,\n \"error\": 3\n };\n annotations.forEach(function (item) {\n item.priority = priorities[item.type] || null;\n });\n annotations = annotations.sort(compare);\n var foldData = this.renderer.session.$foldData;\n for (var i = 0; i < annotations.length; i++) {\n var row = annotations[i].row;\n var compensateFold = this.compensateFoldRows(row, foldData);\n var currentY = Math.round((row - compensateFold) * this.lineHeight * this.heightRatio);\n var y1 = Math.round(((row - compensateFold) * this.lineHeight * this.heightRatio));\n var y2 = Math.round((((row - compensateFold) * this.lineHeight + this.lineHeight) * this.heightRatio));\n var height = y2 - y1;\n if (height < this.minDecorationHeight) {\n var yCenter = ((y1 + y2) / 2) | 0;\n if (yCenter < this.halfMinDecorationHeight) {\n yCenter = this.halfMinDecorationHeight;\n }\n else if (yCenter + this.halfMinDecorationHeight > this.canvasHeight) {\n yCenter = this.canvasHeight - this.halfMinDecorationHeight;\n }\n y1 = Math.round(yCenter - this.halfMinDecorationHeight);\n y2 = Math.round(yCenter + this.halfMinDecorationHeight);\n }\n ctx.fillStyle = colors[annotations[i].type] || null;\n ctx.fillRect(0, currentY, this.canvasWidth, y2 - y1);\n }\n }\n var cursor = this.renderer.session.selection.getCursor();\n if (cursor) {\n var compensateFold = this.compensateFoldRows(cursor.row, foldData);\n var currentY = Math.round((cursor.row - compensateFold) * this.lineHeight * this.heightRatio);\n ctx.fillStyle = \"rgba(0, 0, 0, 0.5)\";\n ctx.fillRect(0, currentY, this.canvasWidth, 2);\n }\n };\n Decorator.prototype.compensateFoldRows = function (row, foldData) {\n var compensateFold = 0;\n if (foldData && foldData.length > 0) {\n for (var j = 0; j < foldData.length; j++) {\n if (row > foldData[j].start.row && row < foldData[j].end.row) {\n compensateFold += row - foldData[j].start.row;\n }\n else if (row >= foldData[j].end.row) {\n compensateFold += foldData[j].end.row - foldData[j].start.row;\n }\n }\n }\n return compensateFold;\n };\n return Decorator;\n}());\noop.implement(Decorator.prototype, EventEmitter);\nexports.Decorator = Decorator;\n\n});\n\nace.define(\"ace/virtual_renderer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/config\",\"ace/layer/gutter\",\"ace/layer/marker\",\"ace/layer/text\",\"ace/layer/cursor\",\"ace/scrollbar\",\"ace/scrollbar\",\"ace/scrollbar_custom\",\"ace/scrollbar_custom\",\"ace/renderloop\",\"ace/layer/font_metrics\",\"ace/lib/event_emitter\",\"ace/css/editor-css\",\"ace/layer/decorators\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar lang = require(\"./lib/lang\");\nvar config = require(\"./config\");\nvar GutterLayer = require(\"./layer/gutter\").Gutter;\nvar MarkerLayer = require(\"./layer/marker\").Marker;\nvar TextLayer = require(\"./layer/text\").Text;\nvar CursorLayer = require(\"./layer/cursor\").Cursor;\nvar HScrollBar = require(\"./scrollbar\").HScrollBar;\nvar VScrollBar = require(\"./scrollbar\").VScrollBar;\nvar HScrollBarCustom = require(\"./scrollbar_custom\").HScrollBar;\nvar VScrollBarCustom = require(\"./scrollbar_custom\").VScrollBar;\nvar RenderLoop = require(\"./renderloop\").RenderLoop;\nvar FontMetrics = require(\"./layer/font_metrics\").FontMetrics;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar editorCss = require(\"./css/editor-css\");\nvar Decorator = require(\"./layer/decorators\").Decorator;\nvar useragent = require(\"./lib/useragent\");\ndom.importCssString(editorCss, \"ace_editor.css\", false);\nvar VirtualRenderer = /** @class */ (function () {\n function VirtualRenderer(container, theme) {\n var _self = this;\n this.container = container || dom.createElement(\"div\");\n dom.addCssClass(this.container, \"ace_editor\");\n if (dom.HI_DPI)\n dom.addCssClass(this.container, \"ace_hidpi\");\n this.setTheme(theme);\n if (config.get(\"useStrictCSP\") == null)\n config.set(\"useStrictCSP\", false);\n this.$gutter = dom.createElement(\"div\");\n this.$gutter.className = \"ace_gutter\";\n this.container.appendChild(this.$gutter);\n this.$gutter.setAttribute(\"aria-hidden\", true);\n this.scroller = dom.createElement(\"div\");\n this.scroller.className = \"ace_scroller\";\n this.container.appendChild(this.scroller);\n this.content = dom.createElement(\"div\");\n this.content.className = \"ace_content\";\n this.scroller.appendChild(this.content);\n this.$gutterLayer = new GutterLayer(this.$gutter);\n this.$gutterLayer.on(\"changeGutterWidth\", this.onGutterResize.bind(this));\n this.$markerBack = new MarkerLayer(this.content);\n var textLayer = this.$textLayer = new TextLayer(this.content);\n this.canvas = textLayer.element;\n this.$markerFront = new MarkerLayer(this.content);\n this.$cursorLayer = new CursorLayer(this.content);\n this.$horizScroll = false;\n this.$vScroll = false;\n this.scrollBar =\n this.scrollBarV = new VScrollBar(this.container, this);\n this.scrollBarH = new HScrollBar(this.container, this);\n this.scrollBarV.on(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.on(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n this.scrollTop = 0;\n this.scrollLeft = 0;\n this.cursorPos = {\n row: 0,\n column: 0\n };\n this.$fontMetrics = new FontMetrics(this.container);\n this.$textLayer.$setFontMetrics(this.$fontMetrics);\n this.$textLayer.on(\"changeCharacterSize\", function (e) {\n _self.updateCharacterSize();\n _self.onResize(true, _self.gutterWidth, _self.$size.width, _self.$size.height);\n _self._signal(\"changeCharacterSize\", e);\n });\n this.$size = {\n width: 0,\n height: 0,\n scrollerHeight: 0,\n scrollerWidth: 0,\n $dirty: true\n };\n this.layerConfig = {\n width: 1,\n padding: 0,\n firstRow: 0,\n firstRowScreen: 0,\n lastRow: 0,\n lineHeight: 0,\n characterWidth: 0,\n minHeight: 1,\n maxHeight: 1,\n offset: 0,\n height: 1,\n gutterOffset: 1\n };\n this.scrollMargin = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n v: 0,\n h: 0\n };\n this.margin = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n v: 0,\n h: 0\n };\n this.$keepTextAreaAtCursor = !useragent.isIOS;\n this.$loop = new RenderLoop(this.$renderChanges.bind(this), this.container.ownerDocument.defaultView);\n this.$loop.schedule(this.CHANGE_FULL);\n this.updateCharacterSize();\n this.setPadding(4);\n this.$addResizeObserver();\n config.resetOptions(this);\n config._signal(\"renderer\", this);\n }\n VirtualRenderer.prototype.updateCharacterSize = function () {\n if (this.$textLayer.allowBoldFonts != this.$allowBoldFonts) {\n this.$allowBoldFonts = this.$textLayer.allowBoldFonts;\n this.setStyle(\"ace_nobold\", !this.$allowBoldFonts);\n }\n this.layerConfig.characterWidth =\n this.characterWidth = this.$textLayer.getCharacterWidth();\n this.layerConfig.lineHeight =\n this.lineHeight = this.$textLayer.getLineHeight();\n this.$updatePrintMargin();\n dom.setStyle(this.scroller.style, \"line-height\", this.lineHeight + \"px\");\n };\n VirtualRenderer.prototype.setSession = function (session) {\n if (this.session)\n this.session.doc.off(\"changeNewLineMode\", this.onChangeNewLineMode);\n this.session = session;\n if (session && this.scrollMargin.top && session.getScrollTop() <= 0)\n session.setScrollTop(-this.scrollMargin.top);\n this.$cursorLayer.setSession(session);\n this.$markerBack.setSession(session);\n this.$markerFront.setSession(session);\n this.$gutterLayer.setSession(session);\n this.$textLayer.setSession(session);\n if (!session)\n return;\n this.$loop.schedule(this.CHANGE_FULL);\n this.session.$setFontMetrics(this.$fontMetrics);\n this.scrollBarH.scrollLeft = this.scrollBarV.scrollTop = null;\n this.onChangeNewLineMode = this.onChangeNewLineMode.bind(this);\n this.onChangeNewLineMode();\n this.session.doc.on(\"changeNewLineMode\", this.onChangeNewLineMode);\n };\n VirtualRenderer.prototype.updateLines = function (firstRow, lastRow, force) {\n if (lastRow === undefined)\n lastRow = Infinity;\n if (!this.$changedLines) {\n this.$changedLines = {\n firstRow: firstRow,\n lastRow: lastRow\n };\n }\n else {\n if (this.$changedLines.firstRow > firstRow)\n this.$changedLines.firstRow = firstRow;\n if (this.$changedLines.lastRow < lastRow)\n this.$changedLines.lastRow = lastRow;\n }\n if (this.$changedLines.lastRow < this.layerConfig.firstRow) {\n if (force)\n this.$changedLines.lastRow = this.layerConfig.lastRow;\n else\n return;\n }\n if (this.$changedLines.firstRow > this.layerConfig.lastRow)\n return;\n this.$loop.schedule(this.CHANGE_LINES);\n };\n VirtualRenderer.prototype.onChangeNewLineMode = function () {\n this.$loop.schedule(this.CHANGE_TEXT);\n this.$textLayer.$updateEolChar();\n this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR);\n };\n VirtualRenderer.prototype.onChangeTabSize = function () {\n this.$loop.schedule(this.CHANGE_TEXT | this.CHANGE_MARKER);\n this.$textLayer.onChangeTabSize();\n };\n VirtualRenderer.prototype.updateText = function () {\n this.$loop.schedule(this.CHANGE_TEXT);\n };\n VirtualRenderer.prototype.updateFull = function (force) {\n if (force)\n this.$renderChanges(this.CHANGE_FULL, true);\n else\n this.$loop.schedule(this.CHANGE_FULL);\n };\n VirtualRenderer.prototype.updateFontSize = function () {\n this.$textLayer.checkForSizeChanges();\n };\n VirtualRenderer.prototype.$updateSizeAsync = function () {\n if (this.$loop.pending)\n this.$size.$dirty = true;\n else\n this.onResize();\n };\n VirtualRenderer.prototype.onResize = function (force, gutterWidth, width, height) {\n if (this.resizing > 2)\n return;\n else if (this.resizing > 0)\n this.resizing++;\n else\n this.resizing = force ? 1 : 0;\n var el = this.container;\n if (!height)\n height = el.clientHeight || el.scrollHeight;\n if (!width)\n width = el.clientWidth || el.scrollWidth;\n var changes = this.$updateCachedSize(force, gutterWidth, width, height);\n if (this.$resizeTimer)\n this.$resizeTimer.cancel();\n if (!this.$size.scrollerHeight || (!width && !height))\n return this.resizing = 0;\n if (force)\n this.$gutterLayer.$padding = null;\n if (force)\n this.$renderChanges(changes | this.$changes, true);\n else\n this.$loop.schedule(changes | this.$changes);\n if (this.resizing)\n this.resizing = 0;\n this.scrollBarH.scrollLeft = this.scrollBarV.scrollTop = null;\n if (this.$customScrollbar) {\n this.$updateCustomScrollbar(true);\n }\n };\n VirtualRenderer.prototype.$updateCachedSize = function (force, gutterWidth, width, height) {\n height -= (this.$extraHeight || 0);\n var changes = 0;\n var size = this.$size;\n var oldSize = {\n width: size.width,\n height: size.height,\n scrollerHeight: size.scrollerHeight,\n scrollerWidth: size.scrollerWidth\n };\n if (height && (force || size.height != height)) {\n size.height = height;\n changes |= this.CHANGE_SIZE;\n size.scrollerHeight = size.height;\n if (this.$horizScroll)\n size.scrollerHeight -= this.scrollBarH.getHeight();\n this.scrollBarV.setHeight(size.scrollerHeight);\n this.scrollBarV.element.style.bottom = this.scrollBarH.getHeight() + \"px\";\n changes = changes | this.CHANGE_SCROLL;\n }\n if (width && (force || size.width != width)) {\n changes |= this.CHANGE_SIZE;\n size.width = width;\n if (gutterWidth == null)\n gutterWidth = this.$showGutter ? this.$gutter.offsetWidth : 0;\n this.gutterWidth = gutterWidth;\n dom.setStyle(this.scrollBarH.element.style, \"left\", gutterWidth + \"px\");\n dom.setStyle(this.scroller.style, \"left\", gutterWidth + this.margin.left + \"px\");\n size.scrollerWidth = Math.max(0, width - gutterWidth - this.scrollBarV.getWidth() - this.margin.h);\n dom.setStyle(this.$gutter.style, \"left\", this.margin.left + \"px\");\n var right = this.scrollBarV.getWidth() + \"px\";\n dom.setStyle(this.scrollBarH.element.style, \"right\", right);\n dom.setStyle(this.scroller.style, \"right\", right);\n dom.setStyle(this.scroller.style, \"bottom\", this.scrollBarH.getHeight());\n this.scrollBarH.setWidth(size.scrollerWidth);\n if (this.session && this.session.getUseWrapMode() && this.adjustWrapLimit() || force) {\n changes |= this.CHANGE_FULL;\n }\n }\n size.$dirty = !width || !height;\n if (changes)\n this._signal(\"resize\", oldSize);\n return changes;\n };\n VirtualRenderer.prototype.onGutterResize = function (width) {\n var gutterWidth = this.$showGutter ? width : 0;\n if (gutterWidth != this.gutterWidth)\n this.$changes |= this.$updateCachedSize(true, gutterWidth, this.$size.width, this.$size.height);\n if (this.session.getUseWrapMode() && this.adjustWrapLimit()) {\n this.$loop.schedule(this.CHANGE_FULL);\n }\n else if (this.$size.$dirty) {\n this.$loop.schedule(this.CHANGE_FULL);\n }\n else {\n this.$computeLayerConfig();\n }\n };\n VirtualRenderer.prototype.adjustWrapLimit = function () {\n var availableWidth = this.$size.scrollerWidth - this.$padding * 2;\n var limit = Math.floor(availableWidth / this.characterWidth);\n return this.session.adjustWrapLimit(limit, this.$showPrintMargin && this.$printMarginColumn);\n };\n VirtualRenderer.prototype.setAnimatedScroll = function (shouldAnimate) {\n this.setOption(\"animatedScroll\", shouldAnimate);\n };\n VirtualRenderer.prototype.getAnimatedScroll = function () {\n return this.$animatedScroll;\n };\n VirtualRenderer.prototype.setShowInvisibles = function (showInvisibles) {\n this.setOption(\"showInvisibles\", showInvisibles);\n this.session.$bidiHandler.setShowInvisibles(showInvisibles);\n };\n VirtualRenderer.prototype.getShowInvisibles = function () {\n return this.getOption(\"showInvisibles\");\n };\n VirtualRenderer.prototype.getDisplayIndentGuides = function () {\n return this.getOption(\"displayIndentGuides\");\n };\n VirtualRenderer.prototype.setDisplayIndentGuides = function (display) {\n this.setOption(\"displayIndentGuides\", display);\n };\n VirtualRenderer.prototype.getHighlightIndentGuides = function () {\n return this.getOption(\"highlightIndentGuides\");\n };\n VirtualRenderer.prototype.setHighlightIndentGuides = function (highlight) {\n this.setOption(\"highlightIndentGuides\", highlight);\n };\n VirtualRenderer.prototype.setShowPrintMargin = function (showPrintMargin) {\n this.setOption(\"showPrintMargin\", showPrintMargin);\n };\n VirtualRenderer.prototype.getShowPrintMargin = function () {\n return this.getOption(\"showPrintMargin\");\n };\n VirtualRenderer.prototype.setPrintMarginColumn = function (showPrintMargin) {\n this.setOption(\"printMarginColumn\", showPrintMargin);\n };\n VirtualRenderer.prototype.getPrintMarginColumn = function () {\n return this.getOption(\"printMarginColumn\");\n };\n VirtualRenderer.prototype.getShowGutter = function () {\n return this.getOption(\"showGutter\");\n };\n VirtualRenderer.prototype.setShowGutter = function (show) {\n return this.setOption(\"showGutter\", show);\n };\n VirtualRenderer.prototype.getFadeFoldWidgets = function () {\n return this.getOption(\"fadeFoldWidgets\");\n };\n VirtualRenderer.prototype.setFadeFoldWidgets = function (show) {\n this.setOption(\"fadeFoldWidgets\", show);\n };\n VirtualRenderer.prototype.setHighlightGutterLine = function (shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n VirtualRenderer.prototype.getHighlightGutterLine = function () {\n return this.getOption(\"highlightGutterLine\");\n };\n VirtualRenderer.prototype.$updatePrintMargin = function () {\n if (!this.$showPrintMargin && !this.$printMarginEl)\n return;\n if (!this.$printMarginEl) {\n var containerEl = dom.createElement(\"div\");\n containerEl.className = \"ace_layer ace_print-margin-layer\";\n this.$printMarginEl = dom.createElement(\"div\");\n this.$printMarginEl.className = \"ace_print-margin\";\n containerEl.appendChild(this.$printMarginEl);\n this.content.insertBefore(containerEl, this.content.firstChild);\n }\n var style = this.$printMarginEl.style;\n style.left = Math.round(this.characterWidth * this.$printMarginColumn + this.$padding) + \"px\";\n style.visibility = this.$showPrintMargin ? \"visible\" : \"hidden\";\n if (this.session && this.session.$wrap == -1)\n this.adjustWrapLimit();\n };\n VirtualRenderer.prototype.getContainerElement = function () {\n return this.container;\n };\n VirtualRenderer.prototype.getMouseEventTarget = function () {\n return this.scroller;\n };\n VirtualRenderer.prototype.getTextAreaContainer = function () {\n return this.container;\n };\n VirtualRenderer.prototype.$moveTextAreaToCursor = function () {\n if (this.$isMousePressed)\n return;\n var style = this.textarea.style;\n var composition = this.$composition;\n if (!this.$keepTextAreaAtCursor && !composition) {\n dom.translate(this.textarea, -100, 0);\n return;\n }\n var pixelPos = this.$cursorLayer.$pixelPos;\n if (!pixelPos)\n return;\n if (composition && composition.markerRange)\n pixelPos = this.$cursorLayer.getPixelPosition(composition.markerRange.start, true);\n var config = this.layerConfig;\n var posTop = pixelPos.top;\n var posLeft = pixelPos.left;\n posTop -= config.offset;\n var h = composition && composition.useTextareaForIME || useragent.isMobile ? this.lineHeight : 1;\n if (posTop < 0 || posTop > config.height - h) {\n dom.translate(this.textarea, 0, 0);\n return;\n }\n var w = 1;\n var maxTop = this.$size.height - h;\n if (!composition) {\n posTop += this.lineHeight;\n }\n else {\n if (composition.useTextareaForIME) {\n var val = this.textarea.value;\n w = this.characterWidth * (this.session.$getStringScreenWidth(val)[0]);\n }\n else {\n posTop += this.lineHeight + 2;\n }\n }\n posLeft -= this.scrollLeft;\n if (posLeft > this.$size.scrollerWidth - w)\n posLeft = this.$size.scrollerWidth - w;\n posLeft += this.gutterWidth + this.margin.left;\n dom.setStyle(style, \"height\", h + \"px\");\n dom.setStyle(style, \"width\", w + \"px\");\n dom.translate(this.textarea, Math.min(posLeft, this.$size.scrollerWidth - w), Math.min(posTop, maxTop));\n };\n VirtualRenderer.prototype.getFirstVisibleRow = function () {\n return this.layerConfig.firstRow;\n };\n VirtualRenderer.prototype.getFirstFullyVisibleRow = function () {\n return this.layerConfig.firstRow + (this.layerConfig.offset === 0 ? 0 : 1);\n };\n VirtualRenderer.prototype.getLastFullyVisibleRow = function () {\n var config = this.layerConfig;\n var lastRow = config.lastRow;\n var top = this.session.documentToScreenRow(lastRow, 0) * config.lineHeight;\n if (top - this.session.getScrollTop() > config.height - config.lineHeight)\n return lastRow - 1;\n return lastRow;\n };\n VirtualRenderer.prototype.getLastVisibleRow = function () {\n return this.layerConfig.lastRow;\n };\n VirtualRenderer.prototype.setPadding = function (padding) {\n this.$padding = padding;\n this.$textLayer.setPadding(padding);\n this.$cursorLayer.setPadding(padding);\n this.$markerFront.setPadding(padding);\n this.$markerBack.setPadding(padding);\n this.$loop.schedule(this.CHANGE_FULL);\n this.$updatePrintMargin();\n };\n VirtualRenderer.prototype.setScrollMargin = function (top, bottom, left, right) {\n var sm = this.scrollMargin;\n sm.top = top | 0;\n sm.bottom = bottom | 0;\n sm.right = right | 0;\n sm.left = left | 0;\n sm.v = sm.top + sm.bottom;\n sm.h = sm.left + sm.right;\n if (sm.top && this.scrollTop <= 0 && this.session)\n this.session.setScrollTop(-sm.top);\n this.updateFull();\n };\n VirtualRenderer.prototype.setMargin = function (top, bottom, left, right) {\n var sm = this.margin;\n sm.top = top | 0;\n sm.bottom = bottom | 0;\n sm.right = right | 0;\n sm.left = left | 0;\n sm.v = sm.top + sm.bottom;\n sm.h = sm.left + sm.right;\n this.$updateCachedSize(true, this.gutterWidth, this.$size.width, this.$size.height);\n this.updateFull();\n };\n VirtualRenderer.prototype.getHScrollBarAlwaysVisible = function () {\n return this.$hScrollBarAlwaysVisible;\n };\n VirtualRenderer.prototype.setHScrollBarAlwaysVisible = function (alwaysVisible) {\n this.setOption(\"hScrollBarAlwaysVisible\", alwaysVisible);\n };\n VirtualRenderer.prototype.getVScrollBarAlwaysVisible = function () {\n return this.$vScrollBarAlwaysVisible;\n };\n VirtualRenderer.prototype.setVScrollBarAlwaysVisible = function (alwaysVisible) {\n this.setOption(\"vScrollBarAlwaysVisible\", alwaysVisible);\n };\n VirtualRenderer.prototype.$updateScrollBarV = function () {\n var scrollHeight = this.layerConfig.maxHeight;\n var scrollerHeight = this.$size.scrollerHeight;\n if (!this.$maxLines && this.$scrollPastEnd) {\n scrollHeight -= (scrollerHeight - this.lineHeight) * this.$scrollPastEnd;\n if (this.scrollTop > scrollHeight - scrollerHeight) {\n scrollHeight = this.scrollTop + scrollerHeight;\n this.scrollBarV.scrollTop = null;\n }\n }\n this.scrollBarV.setScrollHeight(scrollHeight + this.scrollMargin.v);\n this.scrollBarV.setScrollTop(this.scrollTop + this.scrollMargin.top);\n };\n VirtualRenderer.prototype.$updateScrollBarH = function () {\n this.scrollBarH.setScrollWidth(this.layerConfig.width + 2 * this.$padding + this.scrollMargin.h);\n this.scrollBarH.setScrollLeft(this.scrollLeft + this.scrollMargin.left);\n };\n VirtualRenderer.prototype.freeze = function () {\n this.$frozen = true;\n };\n VirtualRenderer.prototype.unfreeze = function () {\n this.$frozen = false;\n };\n VirtualRenderer.prototype.$renderChanges = function (changes, force) {\n if (this.$changes) {\n changes |= this.$changes;\n this.$changes = 0;\n }\n if ((!this.session || !this.container.offsetWidth || this.$frozen) || (!changes && !force)) {\n this.$changes |= changes;\n return;\n }\n if (this.$size.$dirty) {\n this.$changes |= changes;\n return this.onResize(true);\n }\n if (!this.lineHeight) {\n this.$textLayer.checkForSizeChanges();\n }\n this._signal(\"beforeRender\", changes);\n if (this.session && this.session.$bidiHandler)\n this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);\n var config = this.layerConfig;\n if (changes & this.CHANGE_FULL ||\n changes & this.CHANGE_SIZE ||\n changes & this.CHANGE_TEXT ||\n changes & this.CHANGE_LINES ||\n changes & this.CHANGE_SCROLL ||\n changes & this.CHANGE_H_SCROLL) {\n changes |= this.$computeLayerConfig() | this.$loop.clear();\n if (config.firstRow != this.layerConfig.firstRow && config.firstRowScreen == this.layerConfig.firstRowScreen) {\n var st = this.scrollTop + (config.firstRow - Math.max(this.layerConfig.firstRow, 0)) * this.lineHeight;\n if (st > 0) {\n this.scrollTop = st;\n changes = changes | this.CHANGE_SCROLL;\n changes |= this.$computeLayerConfig() | this.$loop.clear();\n }\n }\n config = this.layerConfig;\n this.$updateScrollBarV();\n if (changes & this.CHANGE_H_SCROLL)\n this.$updateScrollBarH();\n dom.translate(this.content, -this.scrollLeft, -config.offset);\n var width = config.width + 2 * this.$padding + \"px\";\n var height = config.minHeight + \"px\";\n dom.setStyle(this.content.style, \"width\", width);\n dom.setStyle(this.content.style, \"height\", height);\n }\n if (changes & this.CHANGE_H_SCROLL) {\n dom.translate(this.content, -this.scrollLeft, -config.offset);\n this.scroller.className = this.scrollLeft <= 0 ? \"ace_scroller \" : \"ace_scroller ace_scroll-left \";\n if (this.enableKeyboardAccessibility)\n this.scroller.className += this.keyboardFocusClassName;\n }\n if (changes & this.CHANGE_FULL) {\n this.$changedLines = null;\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this._signal(\"afterRender\", changes);\n return;\n }\n if (changes & this.CHANGE_SCROLL) {\n this.$changedLines = null;\n if (changes & this.CHANGE_TEXT || changes & this.CHANGE_LINES)\n this.$textLayer.update(config);\n else\n this.$textLayer.scrollLines(config);\n if (this.$showGutter) {\n if (changes & this.CHANGE_GUTTER || changes & this.CHANGE_LINES)\n this.$gutterLayer.update(config);\n else\n this.$gutterLayer.scrollLines(config);\n }\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this._signal(\"afterRender\", changes);\n return;\n }\n if (changes & this.CHANGE_TEXT) {\n this.$changedLines = null;\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n else if (changes & this.CHANGE_LINES) {\n if (this.$updateLines() || (changes & this.CHANGE_GUTTER) && this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n else if (changes & this.CHANGE_TEXT || changes & this.CHANGE_GUTTER) {\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n else if (changes & this.CHANGE_CURSOR) {\n if (this.$highlightGutterLine)\n this.$gutterLayer.updateLineHighlight(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n if (changes & this.CHANGE_CURSOR) {\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n }\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_FRONT)) {\n this.$markerFront.update(config);\n }\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_BACK)) {\n this.$markerBack.update(config);\n }\n this._signal(\"afterRender\", changes);\n };\n VirtualRenderer.prototype.$autosize = function () {\n var height = this.session.getScreenLength() * this.lineHeight;\n var maxHeight = this.$maxLines * this.lineHeight;\n var desiredHeight = Math.min(maxHeight, Math.max((this.$minLines || 1) * this.lineHeight, height)) + this.scrollMargin.v + (this.$extraHeight || 0);\n if (this.$horizScroll)\n desiredHeight += this.scrollBarH.getHeight();\n if (this.$maxPixelHeight && desiredHeight > this.$maxPixelHeight)\n desiredHeight = this.$maxPixelHeight;\n var hideScrollbars = desiredHeight <= 2 * this.lineHeight;\n var vScroll = !hideScrollbars && height > maxHeight;\n if (desiredHeight != this.desiredHeight ||\n this.$size.height != this.desiredHeight || vScroll != this.$vScroll) {\n if (vScroll != this.$vScroll) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n var w = this.container.clientWidth;\n this.container.style.height = desiredHeight + \"px\";\n this.$updateCachedSize(true, this.$gutterWidth, w, desiredHeight);\n this.desiredHeight = desiredHeight;\n this._signal(\"autosize\");\n }\n };\n VirtualRenderer.prototype.$computeLayerConfig = function () {\n var session = this.session;\n var size = this.$size;\n var hideScrollbars = size.height <= 2 * this.lineHeight;\n var screenLines = this.session.getScreenLength();\n var maxHeight = screenLines * this.lineHeight;\n var longestLine = this.$getLongestLine();\n var horizScroll = !hideScrollbars && (this.$hScrollBarAlwaysVisible ||\n size.scrollerWidth - longestLine - 2 * this.$padding < 0);\n var hScrollChanged = this.$horizScroll !== horizScroll;\n if (hScrollChanged) {\n this.$horizScroll = horizScroll;\n this.scrollBarH.setVisible(horizScroll);\n }\n var vScrollBefore = this.$vScroll; // autosize can change vscroll value in which case we need to update longestLine\n if (this.$maxLines && this.lineHeight > 1)\n this.$autosize();\n var minHeight = size.scrollerHeight + this.lineHeight;\n var scrollPastEnd = !this.$maxLines && this.$scrollPastEnd\n ? (size.scrollerHeight - this.lineHeight) * this.$scrollPastEnd\n : 0;\n maxHeight += scrollPastEnd;\n var sm = this.scrollMargin;\n this.session.setScrollTop(Math.max(-sm.top, Math.min(this.scrollTop, maxHeight - size.scrollerHeight + sm.bottom)));\n this.session.setScrollLeft(Math.max(-sm.left, Math.min(this.scrollLeft, longestLine + 2 * this.$padding - size.scrollerWidth + sm.right)));\n var vScroll = !hideScrollbars && (this.$vScrollBarAlwaysVisible ||\n size.scrollerHeight - maxHeight + scrollPastEnd < 0 || this.scrollTop > sm.top);\n var vScrollChanged = vScrollBefore !== vScroll;\n if (vScrollChanged) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n var offset = this.scrollTop % this.lineHeight;\n var lineCount = Math.ceil(minHeight / this.lineHeight) - 1;\n var firstRow = Math.max(0, Math.round((this.scrollTop - offset) / this.lineHeight));\n var lastRow = firstRow + lineCount;\n var firstRowScreen, firstRowHeight;\n var lineHeight = this.lineHeight;\n firstRow = session.screenToDocumentRow(firstRow, 0);\n var foldLine = session.getFoldLine(firstRow);\n if (foldLine) {\n firstRow = foldLine.start.row;\n }\n firstRowScreen = session.documentToScreenRow(firstRow, 0);\n firstRowHeight = session.getRowLength(firstRow) * lineHeight;\n lastRow = Math.min(session.screenToDocumentRow(lastRow, 0), session.getLength() - 1);\n minHeight = size.scrollerHeight + session.getRowLength(lastRow) * lineHeight +\n firstRowHeight;\n offset = this.scrollTop - firstRowScreen * lineHeight;\n var changes = 0;\n if (this.layerConfig.width != longestLine || hScrollChanged)\n changes = this.CHANGE_H_SCROLL;\n if (hScrollChanged || vScrollChanged) {\n changes |= this.$updateCachedSize(true, this.gutterWidth, size.width, size.height);\n this._signal(\"scrollbarVisibilityChanged\");\n if (vScrollChanged)\n longestLine = this.$getLongestLine();\n }\n this.layerConfig = {\n width: longestLine,\n padding: this.$padding,\n firstRow: firstRow,\n firstRowScreen: firstRowScreen,\n lastRow: lastRow,\n lineHeight: lineHeight,\n characterWidth: this.characterWidth,\n minHeight: minHeight,\n maxHeight: maxHeight,\n offset: offset,\n gutterOffset: lineHeight ? Math.max(0, Math.ceil((offset + size.height - size.scrollerHeight) / lineHeight)) : 0,\n height: this.$size.scrollerHeight\n };\n if (this.session.$bidiHandler)\n this.session.$bidiHandler.setContentWidth(longestLine - this.$padding);\n return changes;\n };\n VirtualRenderer.prototype.$updateLines = function () {\n if (!this.$changedLines)\n return;\n var firstRow = this.$changedLines.firstRow;\n var lastRow = this.$changedLines.lastRow;\n this.$changedLines = null;\n var layerConfig = this.layerConfig;\n if (firstRow > layerConfig.lastRow + 1) {\n return;\n }\n if (lastRow < layerConfig.firstRow) {\n return;\n }\n if (lastRow === Infinity) {\n if (this.$showGutter)\n this.$gutterLayer.update(layerConfig);\n this.$textLayer.update(layerConfig);\n return;\n }\n this.$textLayer.updateLines(layerConfig, firstRow, lastRow);\n return true;\n };\n VirtualRenderer.prototype.$getLongestLine = function () {\n var charCount = this.session.getScreenWidth();\n if (this.showInvisibles && !this.session.$useWrapMode)\n charCount += 1;\n if (this.$textLayer && charCount > this.$textLayer.MAX_LINE_LENGTH)\n charCount = this.$textLayer.MAX_LINE_LENGTH + 30;\n return Math.max(this.$size.scrollerWidth - 2 * this.$padding, Math.round(charCount * this.characterWidth));\n };\n VirtualRenderer.prototype.updateFrontMarkers = function () {\n this.$markerFront.setMarkers(this.session.getMarkers(true));\n this.$loop.schedule(this.CHANGE_MARKER_FRONT);\n };\n VirtualRenderer.prototype.updateBackMarkers = function () {\n this.$markerBack.setMarkers(this.session.getMarkers());\n this.$loop.schedule(this.CHANGE_MARKER_BACK);\n };\n VirtualRenderer.prototype.addGutterDecoration = function (row, className) {\n this.$gutterLayer.addGutterDecoration(row, className);\n };\n VirtualRenderer.prototype.removeGutterDecoration = function (row, className) {\n this.$gutterLayer.removeGutterDecoration(row, className);\n };\n VirtualRenderer.prototype.updateBreakpoints = function (rows) {\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n VirtualRenderer.prototype.setAnnotations = function (annotations) {\n this.$gutterLayer.setAnnotations(annotations);\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n VirtualRenderer.prototype.updateCursor = function () {\n this.$loop.schedule(this.CHANGE_CURSOR);\n };\n VirtualRenderer.prototype.hideCursor = function () {\n this.$cursorLayer.hideCursor();\n };\n VirtualRenderer.prototype.showCursor = function () {\n this.$cursorLayer.showCursor();\n };\n VirtualRenderer.prototype.scrollSelectionIntoView = function (anchor, lead, offset) {\n this.scrollCursorIntoView(anchor, offset);\n this.scrollCursorIntoView(lead, offset);\n };\n VirtualRenderer.prototype.scrollCursorIntoView = function (cursor, offset, $viewMargin) {\n if (this.$size.scrollerHeight === 0)\n return;\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n var newLeft = pos.left;\n var newTop = pos.top;\n var topMargin = $viewMargin && $viewMargin.top || 0;\n var bottomMargin = $viewMargin && $viewMargin.bottom || 0;\n if (this.$scrollAnimation) {\n this.$stopAnimation = true;\n }\n var currentTop = this.$scrollAnimation ? this.session.getScrollTop() : this.scrollTop;\n if (currentTop + topMargin > newTop) {\n if (offset && currentTop + topMargin > newTop + this.lineHeight)\n newTop -= offset * this.$size.scrollerHeight;\n if (newTop === 0)\n newTop = -this.scrollMargin.top;\n this.session.setScrollTop(newTop);\n }\n else if (currentTop + this.$size.scrollerHeight - bottomMargin < newTop + this.lineHeight) {\n if (offset && currentTop + this.$size.scrollerHeight - bottomMargin < newTop - this.lineHeight)\n newTop += offset * this.$size.scrollerHeight;\n this.session.setScrollTop(newTop + this.lineHeight + bottomMargin - this.$size.scrollerHeight);\n }\n var currentLeft = this.scrollLeft;\n var twoCharsWidth = 2 * this.layerConfig.characterWidth;\n if (newLeft - twoCharsWidth < currentLeft) {\n newLeft -= twoCharsWidth;\n if (newLeft < this.$padding + twoCharsWidth) {\n newLeft = -this.scrollMargin.left;\n }\n this.session.setScrollLeft(newLeft);\n }\n else {\n newLeft += twoCharsWidth;\n if (currentLeft + this.$size.scrollerWidth < newLeft + this.characterWidth) {\n this.session.setScrollLeft(Math.round(newLeft + this.characterWidth - this.$size.scrollerWidth));\n }\n else if (currentLeft <= this.$padding && newLeft - currentLeft < this.characterWidth) {\n this.session.setScrollLeft(0);\n }\n }\n };\n VirtualRenderer.prototype.getScrollTop = function () {\n return this.session.getScrollTop();\n };\n VirtualRenderer.prototype.getScrollLeft = function () {\n return this.session.getScrollLeft();\n };\n VirtualRenderer.prototype.getScrollTopRow = function () {\n return this.scrollTop / this.lineHeight;\n };\n VirtualRenderer.prototype.getScrollBottomRow = function () {\n return Math.max(0, Math.floor((this.scrollTop + this.$size.scrollerHeight) / this.lineHeight) - 1);\n };\n VirtualRenderer.prototype.scrollToRow = function (row) {\n this.session.setScrollTop(row * this.lineHeight);\n };\n VirtualRenderer.prototype.alignCursor = function (cursor, alignment) {\n if (typeof cursor == \"number\")\n cursor = { row: cursor, column: 0 };\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n var h = this.$size.scrollerHeight - this.lineHeight;\n var offset = pos.top - h * (alignment || 0);\n this.session.setScrollTop(offset);\n return offset;\n };\n VirtualRenderer.prototype.$calcSteps = function (fromValue, toValue) {\n var i = 0;\n var l = this.STEPS;\n var steps = [];\n var func = function (t, x_min, dx) {\n return dx * (Math.pow(t - 1, 3) + 1) + x_min;\n };\n for (i = 0; i < l; ++i)\n steps.push(func(i / this.STEPS, fromValue, toValue - fromValue));\n return steps;\n };\n VirtualRenderer.prototype.scrollToLine = function (line, center, animate, callback) {\n var pos = this.$cursorLayer.getPixelPosition({ row: line, column: 0 });\n var offset = pos.top;\n if (center)\n offset -= this.$size.scrollerHeight / 2;\n var initialScroll = this.scrollTop;\n this.session.setScrollTop(offset);\n if (animate !== false)\n this.animateScrolling(initialScroll, callback);\n };\n VirtualRenderer.prototype.animateScrolling = function (fromValue, callback) {\n var toValue = this.scrollTop;\n if (!this.$animatedScroll)\n return;\n var _self = this;\n if (fromValue == toValue)\n return;\n if (this.$scrollAnimation) {\n var oldSteps = this.$scrollAnimation.steps;\n if (oldSteps.length) {\n fromValue = oldSteps[0];\n if (fromValue == toValue)\n return;\n }\n }\n var steps = _self.$calcSteps(fromValue, toValue);\n this.$scrollAnimation = { from: fromValue, to: toValue, steps: steps };\n clearInterval(this.$timer);\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n function endAnimation() {\n _self.$timer = clearInterval(_self.$timer);\n _self.$scrollAnimation = null;\n _self.$stopAnimation = false;\n callback && callback();\n }\n this.$timer = setInterval(function () {\n if (_self.$stopAnimation) {\n endAnimation();\n return;\n }\n if (!_self.session)\n return clearInterval(_self.$timer);\n if (steps.length) {\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n }\n else if (toValue != null) {\n _self.session.$scrollTop = -1;\n _self.session.setScrollTop(toValue);\n toValue = null;\n }\n else {\n endAnimation();\n }\n }, 10);\n };\n VirtualRenderer.prototype.scrollToY = function (scrollTop) {\n if (this.scrollTop !== scrollTop) {\n this.$loop.schedule(this.CHANGE_SCROLL);\n this.scrollTop = scrollTop;\n }\n };\n VirtualRenderer.prototype.scrollToX = function (scrollLeft) {\n if (this.scrollLeft !== scrollLeft)\n this.scrollLeft = scrollLeft;\n this.$loop.schedule(this.CHANGE_H_SCROLL);\n };\n VirtualRenderer.prototype.scrollTo = function (x, y) {\n this.session.setScrollTop(y);\n this.session.setScrollLeft(x);\n };\n VirtualRenderer.prototype.scrollBy = function (deltaX, deltaY) {\n deltaY && this.session.setScrollTop(this.session.getScrollTop() + deltaY);\n deltaX && this.session.setScrollLeft(this.session.getScrollLeft() + deltaX);\n };\n VirtualRenderer.prototype.isScrollableBy = function (deltaX, deltaY) {\n if (deltaY < 0 && this.session.getScrollTop() >= 1 - this.scrollMargin.top)\n return true;\n if (deltaY > 0 && this.session.getScrollTop() + this.$size.scrollerHeight\n - this.layerConfig.maxHeight < -1 + this.scrollMargin.bottom)\n return true;\n if (deltaX < 0 && this.session.getScrollLeft() >= 1 - this.scrollMargin.left)\n return true;\n if (deltaX > 0 && this.session.getScrollLeft() + this.$size.scrollerWidth\n - this.layerConfig.width < -1 + this.scrollMargin.right)\n return true;\n };\n VirtualRenderer.prototype.pixelToScreenCoordinates = function (x, y) {\n var canvasPos;\n if (this.$hasCssTransforms) {\n canvasPos = { top: 0, left: 0 };\n var p = this.$fontMetrics.transformCoordinates([x, y]);\n x = p[1] - this.gutterWidth - this.margin.left;\n y = p[0];\n }\n else {\n canvasPos = this.scroller.getBoundingClientRect();\n }\n var offsetX = x + this.scrollLeft - canvasPos.left - this.$padding;\n var offset = offsetX / this.characterWidth;\n var row = Math.floor((y + this.scrollTop - canvasPos.top) / this.lineHeight);\n var col = this.$blockCursor ? Math.floor(offset) : Math.round(offset);\n return { row: row, column: col, side: offset - col > 0 ? 1 : -1, offsetX: offsetX };\n };\n VirtualRenderer.prototype.screenToTextCoordinates = function (x, y) {\n var canvasPos;\n if (this.$hasCssTransforms) {\n canvasPos = { top: 0, left: 0 };\n var p = this.$fontMetrics.transformCoordinates([x, y]);\n x = p[1] - this.gutterWidth - this.margin.left;\n y = p[0];\n }\n else {\n canvasPos = this.scroller.getBoundingClientRect();\n }\n var offsetX = x + this.scrollLeft - canvasPos.left - this.$padding;\n var offset = offsetX / this.characterWidth;\n var col = this.$blockCursor ? Math.floor(offset) : Math.round(offset);\n var row = Math.floor((y + this.scrollTop - canvasPos.top) / this.lineHeight);\n return this.session.screenToDocumentPosition(row, Math.max(col, 0), offsetX);\n };\n VirtualRenderer.prototype.textToScreenCoordinates = function (row, column) {\n var canvasPos = this.scroller.getBoundingClientRect();\n var pos = this.session.documentToScreenPosition(row, column);\n var x = this.$padding + (this.session.$bidiHandler.isBidiRow(pos.row, row)\n ? this.session.$bidiHandler.getPosLeft(pos.column)\n : Math.round(pos.column * this.characterWidth));\n var y = pos.row * this.lineHeight;\n return {\n pageX: canvasPos.left + x - this.scrollLeft,\n pageY: canvasPos.top + y - this.scrollTop\n };\n };\n VirtualRenderer.prototype.visualizeFocus = function () {\n dom.addCssClass(this.container, \"ace_focus\");\n };\n VirtualRenderer.prototype.visualizeBlur = function () {\n dom.removeCssClass(this.container, \"ace_focus\");\n };\n VirtualRenderer.prototype.showComposition = function (composition) {\n this.$composition = composition;\n if (!composition.cssText) {\n composition.cssText = this.textarea.style.cssText;\n }\n if (composition.useTextareaForIME == undefined)\n composition.useTextareaForIME = this.$useTextareaForIME;\n if (this.$useTextareaForIME) {\n dom.addCssClass(this.textarea, \"ace_composition\");\n this.textarea.style.cssText = \"\";\n this.$moveTextAreaToCursor();\n this.$cursorLayer.element.style.display = \"none\";\n }\n else {\n composition.markerId = this.session.addMarker(composition.markerRange, \"ace_composition_marker\", \"text\");\n }\n };\n VirtualRenderer.prototype.setCompositionText = function (text) {\n var cursor = this.session.selection.cursor;\n this.addToken(text, \"composition_placeholder\", cursor.row, cursor.column);\n this.$moveTextAreaToCursor();\n };\n VirtualRenderer.prototype.hideComposition = function () {\n if (!this.$composition)\n return;\n if (this.$composition.markerId)\n this.session.removeMarker(this.$composition.markerId);\n dom.removeCssClass(this.textarea, \"ace_composition\");\n this.textarea.style.cssText = this.$composition.cssText;\n var cursor = this.session.selection.cursor;\n this.removeExtraToken(cursor.row, cursor.column);\n this.$composition = null;\n this.$cursorLayer.element.style.display = \"\";\n };\n VirtualRenderer.prototype.setGhostText = function (text, position) {\n var cursor = this.session.selection.cursor;\n var insertPosition = position || { row: cursor.row, column: cursor.column };\n this.removeGhostText();\n var textLines = text.split(\"\\n\");\n this.addToken(textLines[0], \"ghost_text\", insertPosition.row, insertPosition.column);\n this.$ghostText = {\n text: text,\n position: {\n row: insertPosition.row,\n column: insertPosition.column\n }\n };\n if (textLines.length > 1) {\n this.$ghostTextWidget = {\n text: textLines.slice(1).join(\"\\n\"),\n row: insertPosition.row,\n column: insertPosition.column,\n className: \"ace_ghost_text\"\n };\n this.session.widgetManager.addLineWidget(this.$ghostTextWidget);\n var pixelPosition = this.$cursorLayer.getPixelPosition(insertPosition, true);\n var el = this.container;\n var height = el.getBoundingClientRect().height;\n var ghostTextHeight = textLines.length * this.lineHeight;\n var fitsY = ghostTextHeight < height - pixelPosition.top;\n if (fitsY)\n return;\n if (ghostTextHeight < height) {\n this.scrollBy(0, (textLines.length - 1) * this.lineHeight);\n }\n else {\n this.scrollBy(0, pixelPosition.top);\n }\n }\n };\n VirtualRenderer.prototype.removeGhostText = function () {\n if (!this.$ghostText)\n return;\n var position = this.$ghostText.position;\n this.removeExtraToken(position.row, position.column);\n if (this.$ghostTextWidget) {\n this.session.widgetManager.removeLineWidget(this.$ghostTextWidget);\n this.$ghostTextWidget = null;\n }\n this.$ghostText = null;\n };\n VirtualRenderer.prototype.addToken = function (text, type, row, column) {\n var session = this.session;\n session.bgTokenizer.lines[row] = null;\n var newToken = { type: type, value: text };\n var tokens = session.getTokens(row);\n if (column == null || !tokens.length) {\n tokens.push(newToken);\n }\n else {\n var l = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n l += token.value.length;\n if (column <= l) {\n var diff = token.value.length - (l - column);\n var before = token.value.slice(0, diff);\n var after = token.value.slice(diff);\n tokens.splice(i, 1, { type: token.type, value: before }, newToken, { type: token.type, value: after });\n break;\n }\n }\n }\n this.updateLines(row, row);\n };\n VirtualRenderer.prototype.removeExtraToken = function (row, column) {\n this.session.bgTokenizer.lines[row] = null;\n this.updateLines(row, row);\n };\n VirtualRenderer.prototype.setTheme = function (theme, cb) {\n var _self = this;\n this.$themeId = theme;\n _self._dispatchEvent('themeChange', { theme: theme });\n if (!theme || typeof theme == \"string\") {\n var moduleName = theme || this.$options.theme.initialValue;\n config.loadModule([\"theme\", moduleName], afterLoad);\n }\n else {\n afterLoad(theme);\n }\n function afterLoad(module) {\n if (_self.$themeId != theme)\n return cb && cb();\n if (!module || !module.cssClass)\n throw new Error(\"couldn't load module \" + theme + \" or it didn't call define\");\n if (module.$id)\n _self.$themeId = module.$id;\n dom.importCssString(module.cssText, module.cssClass, _self.container);\n if (_self.theme)\n dom.removeCssClass(_self.container, _self.theme.cssClass);\n var padding = \"padding\" in module ? module.padding\n : \"padding\" in (_self.theme || {}) ? 4 : _self.$padding;\n if (_self.$padding && padding != _self.$padding)\n _self.setPadding(padding);\n _self.$theme = module.cssClass;\n _self.theme = module;\n dom.addCssClass(_self.container, module.cssClass);\n dom.setCssClass(_self.container, \"ace_dark\", module.isDark);\n if (_self.$size) {\n _self.$size.width = 0;\n _self.$updateSizeAsync();\n }\n _self._dispatchEvent('themeLoaded', { theme: module });\n cb && cb();\n }\n };\n VirtualRenderer.prototype.getTheme = function () {\n return this.$themeId;\n };\n VirtualRenderer.prototype.setStyle = function (style, include) {\n dom.setCssClass(this.container, style, include !== false);\n };\n VirtualRenderer.prototype.unsetStyle = function (style) {\n dom.removeCssClass(this.container, style);\n };\n VirtualRenderer.prototype.setCursorStyle = function (style) {\n dom.setStyle(this.scroller.style, \"cursor\", style);\n };\n VirtualRenderer.prototype.setMouseCursor = function (cursorStyle) {\n dom.setStyle(this.scroller.style, \"cursor\", cursorStyle);\n };\n VirtualRenderer.prototype.attachToShadowRoot = function () {\n dom.importCssString(editorCss, \"ace_editor.css\", this.container);\n };\n VirtualRenderer.prototype.destroy = function () {\n this.freeze();\n this.$fontMetrics.destroy();\n this.$cursorLayer.destroy();\n this.removeAllListeners();\n this.container.textContent = \"\";\n this.setOption(\"useResizeObserver\", false);\n };\n VirtualRenderer.prototype.$updateCustomScrollbar = function (val) {\n var _self = this;\n this.$horizScroll = this.$vScroll = null;\n this.scrollBarV.element.remove();\n this.scrollBarH.element.remove();\n if (this.$scrollDecorator) {\n delete this.$scrollDecorator;\n }\n if (val === true) {\n this.scrollBarV = new VScrollBarCustom(this.container, this);\n this.scrollBarH = new HScrollBarCustom(this.container, this);\n this.scrollBarV.setHeight(this.$size.scrollerHeight);\n this.scrollBarH.setWidth(this.$size.scrollerWidth);\n this.scrollBarV.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n this.$scrollDecorator = new Decorator(this.scrollBarV, this);\n this.$scrollDecorator.$updateDecorators();\n }\n else {\n this.scrollBarV = new VScrollBar(this.container, this);\n this.scrollBarH = new HScrollBar(this.container, this);\n this.scrollBarV.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n }\n };\n VirtualRenderer.prototype.$addResizeObserver = function () {\n if (!window.ResizeObserver || this.$resizeObserver)\n return;\n var self = this;\n this.$resizeTimer = lang.delayedCall(function () {\n if (!self.destroyed)\n self.onResize();\n }, 50);\n this.$resizeObserver = new window.ResizeObserver(function (e) {\n var w = e[0].contentRect.width;\n var h = e[0].contentRect.height;\n if (Math.abs(self.$size.width - w) > 1\n || Math.abs(self.$size.height - h) > 1) {\n self.$resizeTimer.delay();\n }\n else {\n self.$resizeTimer.cancel();\n }\n });\n this.$resizeObserver.observe(this.container);\n };\n return VirtualRenderer;\n}());\nVirtualRenderer.prototype.CHANGE_CURSOR = 1;\nVirtualRenderer.prototype.CHANGE_MARKER = 2;\nVirtualRenderer.prototype.CHANGE_GUTTER = 4;\nVirtualRenderer.prototype.CHANGE_SCROLL = 8;\nVirtualRenderer.prototype.CHANGE_LINES = 16;\nVirtualRenderer.prototype.CHANGE_TEXT = 32;\nVirtualRenderer.prototype.CHANGE_SIZE = 64;\nVirtualRenderer.prototype.CHANGE_MARKER_BACK = 128;\nVirtualRenderer.prototype.CHANGE_MARKER_FRONT = 256;\nVirtualRenderer.prototype.CHANGE_FULL = 512;\nVirtualRenderer.prototype.CHANGE_H_SCROLL = 1024;\nVirtualRenderer.prototype.$changes = 0;\nVirtualRenderer.prototype.$padding = null;\nVirtualRenderer.prototype.$frozen = false;\nVirtualRenderer.prototype.STEPS = 8;\noop.implement(VirtualRenderer.prototype, EventEmitter);\nconfig.defineOptions(VirtualRenderer.prototype, \"renderer\", {\n useResizeObserver: {\n set: function (value) {\n if (!value && this.$resizeObserver) {\n this.$resizeObserver.disconnect();\n this.$resizeTimer.cancel();\n this.$resizeTimer = this.$resizeObserver = null;\n }\n else if (value && !this.$resizeObserver) {\n this.$addResizeObserver();\n }\n }\n },\n animatedScroll: { initialValue: false },\n showInvisibles: {\n set: function (value) {\n if (this.$textLayer.setShowInvisibles(value))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: false\n },\n showPrintMargin: {\n set: function () { this.$updatePrintMargin(); },\n initialValue: true\n },\n printMarginColumn: {\n set: function () { this.$updatePrintMargin(); },\n initialValue: 80\n },\n printMargin: {\n set: function (val) {\n if (typeof val == \"number\")\n this.$printMarginColumn = val;\n this.$showPrintMargin = !!val;\n this.$updatePrintMargin();\n },\n get: function () {\n return this.$showPrintMargin && this.$printMarginColumn;\n }\n },\n showGutter: {\n set: function (show) {\n this.$gutter.style.display = show ? \"block\" : \"none\";\n this.$loop.schedule(this.CHANGE_FULL);\n this.onGutterResize();\n },\n initialValue: true\n },\n useSvgGutterIcons: {\n set: function (value) {\n this.$gutterLayer.$useSvgGutterIcons = value;\n },\n initialValue: false\n },\n showFoldedAnnotations: {\n set: function (value) {\n this.$gutterLayer.$showFoldedAnnotations = value;\n },\n initialValue: false\n },\n fadeFoldWidgets: {\n set: function (show) {\n dom.setCssClass(this.$gutter, \"ace_fade-fold-widgets\", show);\n },\n initialValue: false\n },\n showFoldWidgets: {\n set: function (show) {\n this.$gutterLayer.setShowFoldWidgets(show);\n this.$loop.schedule(this.CHANGE_GUTTER);\n },\n initialValue: true\n },\n displayIndentGuides: {\n set: function (show) {\n if (this.$textLayer.setDisplayIndentGuides(show))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: true\n },\n highlightIndentGuides: {\n set: function (show) {\n if (this.$textLayer.setHighlightIndentGuides(show) == true) {\n this.$textLayer.$highlightIndentGuide();\n }\n else {\n this.$textLayer.$clearActiveIndentGuide(this.$textLayer.$lines.cells);\n }\n },\n initialValue: true\n },\n highlightGutterLine: {\n set: function (shouldHighlight) {\n this.$gutterLayer.setHighlightGutterLine(shouldHighlight);\n this.$loop.schedule(this.CHANGE_GUTTER);\n },\n initialValue: true\n },\n hScrollBarAlwaysVisible: {\n set: function (val) {\n if (!this.$hScrollBarAlwaysVisible || !this.$horizScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n vScrollBarAlwaysVisible: {\n set: function (val) {\n if (!this.$vScrollBarAlwaysVisible || !this.$vScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n fontSize: {\n set: function (size) {\n if (typeof size == \"number\")\n size = size + \"px\";\n this.container.style.fontSize = size;\n this.updateFontSize();\n },\n initialValue: 12\n },\n fontFamily: {\n set: function (name) {\n this.container.style.fontFamily = name;\n this.updateFontSize();\n }\n },\n maxLines: {\n set: function (val) {\n this.updateFull();\n }\n },\n minLines: {\n set: function (val) {\n if (!(this.$minLines < 0x1ffffffffffff))\n this.$minLines = 0;\n this.updateFull();\n }\n },\n maxPixelHeight: {\n set: function (val) {\n this.updateFull();\n },\n initialValue: 0\n },\n scrollPastEnd: {\n set: function (val) {\n val = +val || 0;\n if (this.$scrollPastEnd == val)\n return;\n this.$scrollPastEnd = val;\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: 0,\n handlesSet: true\n },\n fixedWidthGutter: {\n set: function (val) {\n this.$gutterLayer.$fixedWidth = !!val;\n this.$loop.schedule(this.CHANGE_GUTTER);\n }\n },\n customScrollbar: {\n set: function (val) {\n this.$updateCustomScrollbar(val);\n },\n initialValue: false\n },\n theme: {\n set: function (val) { this.setTheme(val); },\n get: function () { return this.$themeId || this.theme; },\n initialValue: \"./theme/textmate\",\n handlesSet: true\n },\n hasCssTransforms: {},\n useTextareaForIME: {\n initialValue: !useragent.isMobile && !useragent.isIE\n }\n});\nexports.VirtualRenderer = VirtualRenderer;\n\n});\n\nace.define(\"ace/worker/worker_client\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/net\",\"ace/lib/event_emitter\",\"ace/config\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar net = require(\"../lib/net\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar config = require(\"../config\");\n\nfunction $workerBlob(workerUrl) {\n var script = \"importScripts('\" + net.qualifyURL(workerUrl) + \"');\";\n try {\n return new Blob([script], {\"type\": \"application/javascript\"});\n } catch (e) { // Backwards-compatibility\n var BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;\n var blobBuilder = new BlobBuilder();\n blobBuilder.append(script);\n return blobBuilder.getBlob(\"application/javascript\");\n }\n}\n\nfunction createWorker(workerUrl) {\n if (typeof Worker == \"undefined\")\n return { postMessage: function() {}, terminate: function() {} };\n if (config.get(\"loadWorkerFromBlob\")) {\n var blob = $workerBlob(workerUrl);\n var URL = window.URL || window.webkitURL;\n var blobURL = URL.createObjectURL(blob);\n return new Worker(blobURL);\n }\n return new Worker(workerUrl);\n}\n\nvar WorkerClient = function(worker) {\n if (!worker.postMessage)\n worker = this.$createWorkerFromOldConfig.apply(this, arguments);\n\n this.$worker = worker;\n this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this);\n this.changeListener = this.changeListener.bind(this);\n this.onMessage = this.onMessage.bind(this);\n\n this.callbackId = 1;\n this.callbacks = {};\n\n this.$worker.onmessage = this.onMessage;\n};\n\n(function(){\n\n oop.implement(this, EventEmitter);\n\n this.$createWorkerFromOldConfig = function(topLevelNamespaces, mod, classname, workerUrl, importScripts) {\n if (require.nameToUrl && !require.toUrl)\n require.toUrl = require.nameToUrl;\n\n if (config.get(\"packaged\") || !require.toUrl) {\n workerUrl = workerUrl || config.moduleUrl(mod, \"worker\");\n } else {\n var normalizePath = this.$normalizePath;\n workerUrl = workerUrl || normalizePath(require.toUrl(\"ace/worker/worker.js\", null, \"_\"));\n\n var tlns = {};\n topLevelNamespaces.forEach(function(ns) {\n tlns[ns] = normalizePath(require.toUrl(ns, null, \"_\").replace(/(\\.js)?(\\?.*)?$/, \"\"));\n });\n }\n\n this.$worker = createWorker(workerUrl);\n if (importScripts) {\n this.send(\"importScripts\", importScripts);\n }\n this.$worker.postMessage({\n init : true,\n tlns : tlns,\n module : mod,\n classname : classname\n });\n return this.$worker;\n };\n\n this.onMessage = function(e) {\n var msg = e.data;\n switch (msg.type) {\n case \"event\":\n this._signal(msg.name, {data: msg.data});\n break;\n case \"call\":\n var callback = this.callbacks[msg.id];\n if (callback) {\n callback(msg.data);\n delete this.callbacks[msg.id];\n }\n break;\n case \"error\":\n this.reportError(msg.data);\n break;\n case \"log\":\n window.console && console.log && console.log.apply(console, msg.data);\n break;\n }\n };\n \n this.reportError = function(err) {\n window.console && console.error && console.error(err);\n };\n\n this.$normalizePath = function(path) {\n return net.qualifyURL(path);\n };\n\n this.terminate = function() {\n this._signal(\"terminate\", {});\n this.deltaQueue = null;\n this.$worker.terminate();\n this.$worker.onerror = function(e) {\n e.preventDefault();\n };\n this.$worker = null;\n if (this.$doc)\n this.$doc.off(\"change\", this.changeListener);\n this.$doc = null;\n };\n\n this.send = function(cmd, args) {\n this.$worker.postMessage({command: cmd, args: args});\n };\n\n this.call = function(cmd, args, callback) {\n if (callback) {\n var id = this.callbackId++;\n this.callbacks[id] = callback;\n args.push(id);\n }\n this.send(cmd, args);\n };\n\n this.emit = function(event, data) {\n try {\n if (data.data && data.data.err)\n data.data.err = {message: data.data.err.message, stack: data.data.err.stack, code: data.data.err.code};\n this.$worker && this.$worker.postMessage({event: event, data: {data: data.data}});\n }\n catch(ex) {\n console.error(ex.stack);\n }\n };\n\n this.attachToDocument = function(doc) {\n if (this.$doc)\n this.terminate();\n\n this.$doc = doc;\n this.call(\"setValue\", [doc.getValue()]);\n doc.on(\"change\", this.changeListener, true);\n };\n\n this.changeListener = function(delta) {\n if (!this.deltaQueue) {\n this.deltaQueue = [];\n setTimeout(this.$sendDeltaQueue, 0);\n }\n if (delta.action == \"insert\")\n this.deltaQueue.push(delta.start, delta.lines);\n else\n this.deltaQueue.push(delta.start, delta.end);\n };\n\n this.$sendDeltaQueue = function() {\n var q = this.deltaQueue;\n if (!q) return;\n this.deltaQueue = null;\n if (q.length > 50 && q.length > this.$doc.getLength() >> 1) {\n this.call(\"setValue\", [this.$doc.getValue()]);\n } else\n this.emit(\"change\", {data: q});\n };\n\n}).call(WorkerClient.prototype);\n\n\nvar UIWorkerClient = function(topLevelNamespaces, mod, classname) {\n var main = null;\n var emitSync = false;\n var sender = Object.create(EventEmitter);\n\n var messageBuffer = [];\n var workerClient = new WorkerClient({\n messageBuffer: messageBuffer,\n terminate: function() {},\n postMessage: function(e) {\n messageBuffer.push(e);\n if (!main) return;\n if (emitSync)\n setTimeout(processNext);\n else\n processNext();\n }\n });\n\n workerClient.setEmitSync = function(val) { emitSync = val; };\n\n var processNext = function() {\n var msg = messageBuffer.shift();\n if (msg.command)\n main[msg.command].apply(main, msg.args);\n else if (msg.event)\n sender._signal(msg.event, msg.data);\n };\n\n sender.postMessage = function(msg) {\n workerClient.onMessage({data: msg});\n };\n sender.callback = function(data, callbackId) {\n this.postMessage({type: \"call\", id: callbackId, data: data});\n };\n sender.emit = function(name, data) {\n this.postMessage({type: \"event\", name: name, data: data});\n };\n\n config.loadModule([\"worker\", mod], function(Main) {\n main = new Main[classname](sender);\n while (messageBuffer.length)\n processNext();\n });\n\n return workerClient;\n};\n\nexports.UIWorkerClient = UIWorkerClient;\nexports.WorkerClient = WorkerClient;\nexports.createWorker = createWorker;\n\n\n});\n\nace.define(\"ace/placeholder\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/lib/oop\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"./range\").Range;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar oop = require(\"./lib/oop\");\nvar PlaceHolder = /** @class */ (function () {\n function PlaceHolder(session, length, pos, others, mainClass, othersClass) {\n var _self = this;\n this.length = length;\n this.session = session;\n this.doc = session.getDocument();\n this.mainClass = mainClass;\n this.othersClass = othersClass;\n this.$onUpdate = this.onUpdate.bind(this);\n this.doc.on(\"change\", this.$onUpdate, true);\n this.$others = others;\n this.$onCursorChange = function () {\n setTimeout(function () {\n _self.onCursorChange();\n });\n };\n this.$pos = pos;\n var undoStack = session.getUndoManager().$undoStack || session.getUndoManager().$undostack || { length: -1 };\n this.$undoStackDepth = undoStack.length;\n this.setup();\n session.selection.on(\"changeCursor\", this.$onCursorChange);\n }\n PlaceHolder.prototype.setup = function () {\n var _self = this;\n var doc = this.doc;\n var session = this.session;\n this.selectionBefore = session.selection.toJSON();\n if (session.selection.inMultiSelectMode)\n session.selection.toSingleRange();\n this.pos = doc.createAnchor(this.$pos.row, this.$pos.column);\n var pos = this.pos;\n pos.$insertRight = true;\n pos.detach();\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column + this.length), this.mainClass, null, false);\n this.others = [];\n this.$others.forEach(function (other) {\n var anchor = doc.createAnchor(other.row, other.column);\n anchor.$insertRight = true;\n anchor.detach();\n _self.others.push(anchor);\n });\n session.setUndoSelect(false);\n };\n PlaceHolder.prototype.showOtherMarkers = function () {\n if (this.othersActive)\n return;\n var session = this.session;\n var _self = this;\n this.othersActive = true;\n this.others.forEach(function (anchor) {\n anchor.markerId = session.addMarker(new Range(anchor.row, anchor.column, anchor.row, anchor.column + _self.length), _self.othersClass, null, false);\n });\n };\n PlaceHolder.prototype.hideOtherMarkers = function () {\n if (!this.othersActive)\n return;\n this.othersActive = false;\n for (var i = 0; i < this.others.length; i++) {\n this.session.removeMarker(this.others[i].markerId);\n }\n };\n PlaceHolder.prototype.onUpdate = function (delta) {\n if (this.$updating)\n return this.updateAnchors(delta);\n var range = delta;\n if (range.start.row !== range.end.row)\n return;\n if (range.start.row !== this.pos.row)\n return;\n this.$updating = true;\n var lengthDiff = delta.action === \"insert\" ? range.end.column - range.start.column : range.start.column - range.end.column;\n var inMainRange = range.start.column >= this.pos.column && range.start.column <= this.pos.column + this.length + 1;\n var distanceFromStart = range.start.column - this.pos.column;\n this.updateAnchors(delta);\n if (inMainRange)\n this.length += lengthDiff;\n if (inMainRange && !this.session.$fromUndo) {\n if (delta.action === 'insert') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = { row: otherPos.row, column: otherPos.column + distanceFromStart };\n this.doc.insertMergedLines(newPos, delta.lines);\n }\n }\n else if (delta.action === 'remove') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = { row: otherPos.row, column: otherPos.column + distanceFromStart };\n this.doc.remove(new Range(newPos.row, newPos.column, newPos.row, newPos.column - lengthDiff));\n }\n }\n }\n this.$updating = false;\n this.updateMarkers();\n };\n PlaceHolder.prototype.updateAnchors = function (delta) {\n this.pos.onChange(delta);\n for (var i = this.others.length; i--;)\n this.others[i].onChange(delta);\n this.updateMarkers();\n };\n PlaceHolder.prototype.updateMarkers = function () {\n if (this.$updating)\n return;\n var _self = this;\n var session = this.session;\n var updateMarker = function (pos, className) {\n session.removeMarker(pos.markerId);\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column + _self.length), className, null, false);\n };\n updateMarker(this.pos, this.mainClass);\n for (var i = this.others.length; i--;)\n updateMarker(this.others[i], this.othersClass);\n };\n PlaceHolder.prototype.onCursorChange = function (event) {\n if (this.$updating || !this.session)\n return;\n var pos = this.session.selection.getCursor();\n if (pos.row === this.pos.row && pos.column >= this.pos.column && pos.column <= this.pos.column + this.length) {\n this.showOtherMarkers();\n this._emit(\"cursorEnter\", event);\n }\n else {\n this.hideOtherMarkers();\n this._emit(\"cursorLeave\", event);\n }\n };\n PlaceHolder.prototype.detach = function () {\n this.session.removeMarker(this.pos && this.pos.markerId);\n this.hideOtherMarkers();\n this.doc.off(\"change\", this.$onUpdate);\n this.session.selection.off(\"changeCursor\", this.$onCursorChange);\n this.session.setUndoSelect(true);\n this.session = null;\n };\n PlaceHolder.prototype.cancel = function () {\n if (this.$undoStackDepth === -1)\n return;\n var undoManager = this.session.getUndoManager();\n var undosRequired = (undoManager.$undoStack || undoManager.$undostack).length - this.$undoStackDepth;\n for (var i = 0; i < undosRequired; i++) {\n undoManager.undo(this.session, true);\n }\n if (this.selectionBefore)\n this.session.selection.fromJSON(this.selectionBefore);\n };\n return PlaceHolder;\n}());\noop.implement(PlaceHolder.prototype, EventEmitter);\nexports.PlaceHolder = PlaceHolder;\n\n});\n\nace.define(\"ace/mouse/multi_select_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(require, exports, module){var event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\nfunction onMouseDown(e) {\n var ev = e.domEvent;\n var alt = ev.altKey;\n var shift = ev.shiftKey;\n var ctrl = ev.ctrlKey;\n var accel = e.getAccelKey();\n var button = e.getButton();\n if (ctrl && useragent.isMac)\n button = ev.button;\n if (e.editor.inMultiSelectMode && button == 2) {\n e.editor.textInput.onContextMenu(e.domEvent);\n return;\n }\n if (!ctrl && !alt && !accel) {\n if (button === 0 && e.editor.inMultiSelectMode)\n e.editor.exitMultiSelectMode();\n return;\n }\n if (button !== 0)\n return;\n var editor = e.editor;\n var selection = editor.selection;\n var isMultiSelect = editor.inMultiSelectMode;\n var pos = e.getDocumentPosition();\n var cursor = selection.getCursor();\n var inSelection = e.inSelection() || (selection.isEmpty() && isSamePoint(pos, cursor));\n var mouseX = e.x, mouseY = e.y;\n var onMouseSelection = function (e) {\n mouseX = e.clientX;\n mouseY = e.clientY;\n };\n var session = editor.session;\n var screenAnchor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var screenCursor = screenAnchor;\n var selectionMode;\n if (editor.$mouseHandler.$enableJumpToDef) {\n if (ctrl && alt || accel && alt)\n selectionMode = shift ? \"block\" : \"add\";\n else if (alt && editor.$blockSelectEnabled)\n selectionMode = \"block\";\n }\n else {\n if (accel && !alt) {\n selectionMode = \"add\";\n if (!isMultiSelect && shift)\n return;\n }\n else if (alt && editor.$blockSelectEnabled) {\n selectionMode = \"block\";\n }\n }\n if (selectionMode && useragent.isMac && ev.ctrlKey) {\n editor.$mouseHandler.cancelContextMenu();\n }\n if (selectionMode == \"add\") {\n if (!isMultiSelect && inSelection)\n return; // dragging\n if (!isMultiSelect) {\n var range = selection.toOrientedRange();\n editor.addSelectionMarker(range);\n }\n var oldRange = selection.rangeList.rangeAtPoint(pos);\n editor.inVirtualSelectionMode = true;\n if (shift) {\n oldRange = null;\n range = selection.ranges[0] || range;\n editor.removeSelectionMarker(range);\n }\n editor.once(\"mouseup\", function () {\n var tmpSel = selection.toOrientedRange();\n if (oldRange && tmpSel.isEmpty() && isSamePoint(oldRange.cursor, tmpSel.cursor))\n selection.substractPoint(tmpSel.cursor);\n else {\n if (shift) {\n selection.substractPoint(range.cursor);\n }\n else if (range) {\n editor.removeSelectionMarker(range);\n selection.addRange(range);\n }\n selection.addRange(tmpSel);\n }\n editor.inVirtualSelectionMode = false;\n });\n }\n else if (selectionMode == \"block\") {\n e.stop();\n editor.inVirtualSelectionMode = true;\n var initialRange;\n var rectSel = [];\n var blockSelect = function () {\n var newCursor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var cursor = session.screenToDocumentPosition(newCursor.row, newCursor.column, newCursor.offsetX);\n if (isSamePoint(screenCursor, newCursor) && isSamePoint(cursor, selection.lead))\n return;\n screenCursor = newCursor;\n editor.selection.moveToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n editor.removeSelectionMarkers(rectSel);\n rectSel = selection.rectangularRangeBlock(screenCursor, screenAnchor);\n if (editor.$mouseHandler.$clickSelection && rectSel.length == 1 && rectSel[0].isEmpty())\n rectSel[0] = editor.$mouseHandler.$clickSelection.clone();\n rectSel.forEach(editor.addSelectionMarker, editor);\n editor.updateSelectionMarkers();\n };\n if (isMultiSelect && !accel) {\n selection.toSingleRange();\n }\n else if (!isMultiSelect && accel) {\n initialRange = selection.toOrientedRange();\n editor.addSelectionMarker(initialRange);\n }\n if (shift)\n screenAnchor = session.documentToScreenPosition(selection.lead);\n else\n selection.moveToPosition(pos);\n screenCursor = { row: -1, column: -1 };\n var onMouseSelectionEnd = function (e) {\n blockSelect();\n clearInterval(timerId);\n editor.removeSelectionMarkers(rectSel);\n if (!rectSel.length)\n rectSel = [selection.toOrientedRange()];\n if (initialRange) {\n editor.removeSelectionMarker(initialRange);\n selection.toSingleRange(initialRange);\n }\n for (var i = 0; i < rectSel.length; i++)\n selection.addRange(rectSel[i]);\n editor.inVirtualSelectionMode = false;\n editor.$mouseHandler.$clickSelection = null;\n };\n var onSelectionInterval = blockSelect;\n event.capture(editor.container, onMouseSelection, onMouseSelectionEnd);\n var timerId = setInterval(function () { onSelectionInterval(); }, 20);\n return e.preventDefault();\n }\n}\nexports.onMouseDown = onMouseDown;\n\n});\n\nace.define(\"ace/commands/multi_select_commands\",[\"require\",\"exports\",\"module\",\"ace/keyboard/hash_handler\"], function(require, exports, module){// commands to enter multiselect mode\nexports.defaultCommands = [{\n name: \"addCursorAbove\",\n description: \"Add cursor above\",\n exec: function (editor) { editor.selectMoreLines(-1); },\n bindKey: { win: \"Ctrl-Alt-Up\", mac: \"Ctrl-Alt-Up\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"addCursorBelow\",\n description: \"Add cursor below\",\n exec: function (editor) { editor.selectMoreLines(1); },\n bindKey: { win: \"Ctrl-Alt-Down\", mac: \"Ctrl-Alt-Down\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"addCursorAboveSkipCurrent\",\n description: \"Add cursor above (skip current)\",\n exec: function (editor) { editor.selectMoreLines(-1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Up\", mac: \"Ctrl-Alt-Shift-Up\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"addCursorBelowSkipCurrent\",\n description: \"Add cursor below (skip current)\",\n exec: function (editor) { editor.selectMoreLines(1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Down\", mac: \"Ctrl-Alt-Shift-Down\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectMoreBefore\",\n description: \"Select more before\",\n exec: function (editor) { editor.selectMore(-1); },\n bindKey: { win: \"Ctrl-Alt-Left\", mac: \"Ctrl-Alt-Left\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectMoreAfter\",\n description: \"Select more after\",\n exec: function (editor) { editor.selectMore(1); },\n bindKey: { win: \"Ctrl-Alt-Right\", mac: \"Ctrl-Alt-Right\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectNextBefore\",\n description: \"Select next before\",\n exec: function (editor) { editor.selectMore(-1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Left\", mac: \"Ctrl-Alt-Shift-Left\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectNextAfter\",\n description: \"Select next after\",\n exec: function (editor) { editor.selectMore(1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Right\", mac: \"Ctrl-Alt-Shift-Right\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"toggleSplitSelectionIntoLines\",\n description: \"Split selection into lines\",\n exec: function (editor) {\n if (editor.multiSelect.rangeCount > 1)\n editor.multiSelect.joinSelections();\n else\n editor.multiSelect.splitIntoLines();\n },\n bindKey: { win: \"Ctrl-Alt-L\", mac: \"Ctrl-Alt-L\" },\n readOnly: true\n }, {\n name: \"splitSelectionIntoLines\",\n description: \"Split into lines\",\n exec: function (editor) { editor.multiSelect.splitIntoLines(); },\n readOnly: true\n }, {\n name: \"alignCursors\",\n description: \"Align cursors\",\n exec: function (editor) { editor.alignCursors(); },\n bindKey: { win: \"Ctrl-Alt-A\", mac: \"Ctrl-Alt-A\" },\n scrollIntoView: \"cursor\"\n }, {\n name: \"findAll\",\n description: \"Find all\",\n exec: function (editor) { editor.findAll(); },\n bindKey: { win: \"Ctrl-Alt-K\", mac: \"Ctrl-Alt-G\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }];\nexports.multiSelectCommands = [{\n name: \"singleSelection\",\n description: \"Single selection\",\n bindKey: \"esc\",\n exec: function (editor) { editor.exitMultiSelectMode(); },\n scrollIntoView: \"cursor\",\n readOnly: true,\n isAvailable: function (editor) { return editor && editor.inMultiSelectMode; }\n }];\nvar HashHandler = require(\"../keyboard/hash_handler\").HashHandler;\nexports.keyboardHandler = new HashHandler(exports.multiSelectCommands);\n\n});\n\nace.define(\"ace/multi_select\",[\"require\",\"exports\",\"module\",\"ace/range_list\",\"ace/range\",\"ace/selection\",\"ace/mouse/multi_select_handler\",\"ace/lib/event\",\"ace/lib/lang\",\"ace/commands/multi_select_commands\",\"ace/search\",\"ace/edit_session\",\"ace/editor\",\"ace/config\"], function(require, exports, module){var RangeList = require(\"./range_list\").RangeList;\nvar Range = require(\"./range\").Range;\nvar Selection = require(\"./selection\").Selection;\nvar onMouseDown = require(\"./mouse/multi_select_handler\").onMouseDown;\nvar event = require(\"./lib/event\");\nvar lang = require(\"./lib/lang\");\nvar commands = require(\"./commands/multi_select_commands\");\nexports.commands = commands.defaultCommands.concat(commands.multiSelectCommands);\nvar Search = require(\"./search\").Search;\nvar search = new Search();\nfunction find(session, needle, dir) {\n search.$options.wrap = true;\n search.$options.needle = needle;\n search.$options.backwards = dir == -1;\n return search.find(session);\n}\nvar EditSession = require(\"./edit_session\").EditSession;\n(function () {\n this.getSelectionMarkers = function () {\n return this.$selectionMarkers;\n };\n}).call(EditSession.prototype);\n(function () {\n this.ranges = null;\n this.rangeList = null;\n this.addRange = function (range, $blockChangeEvents) {\n if (!range)\n return;\n if (!this.inMultiSelectMode && this.rangeCount === 0) {\n var oldRange = this.toOrientedRange();\n this.rangeList.add(oldRange);\n this.rangeList.add(range);\n if (this.rangeList.ranges.length != 2) {\n this.rangeList.removeAll();\n return $blockChangeEvents || this.fromOrientedRange(range);\n }\n this.rangeList.removeAll();\n this.rangeList.add(oldRange);\n this.$onAddRange(oldRange);\n }\n if (!range.cursor)\n range.cursor = range.end;\n var removed = this.rangeList.add(range);\n this.$onAddRange(range);\n if (removed.length)\n this.$onRemoveRange(removed);\n if (this.rangeCount > 1 && !this.inMultiSelectMode) {\n this._signal(\"multiSelect\");\n this.inMultiSelectMode = true;\n this.session.$undoSelect = false;\n this.rangeList.attach(this.session);\n }\n return $blockChangeEvents || this.fromOrientedRange(range);\n };\n this.toSingleRange = function (range) {\n range = range || this.ranges[0];\n var removed = this.rangeList.removeAll();\n if (removed.length)\n this.$onRemoveRange(removed);\n range && this.fromOrientedRange(range);\n };\n this.substractPoint = function (pos) {\n var removed = this.rangeList.substractPoint(pos);\n if (removed) {\n this.$onRemoveRange(removed);\n return removed[0];\n }\n };\n this.mergeOverlappingRanges = function () {\n var removed = this.rangeList.merge();\n if (removed.length)\n this.$onRemoveRange(removed);\n };\n this.$onAddRange = function (range) {\n this.rangeCount = this.rangeList.ranges.length;\n this.ranges.unshift(range);\n this._signal(\"addRange\", { range: range });\n };\n this.$onRemoveRange = function (removed) {\n this.rangeCount = this.rangeList.ranges.length;\n if (this.rangeCount == 1 && this.inMultiSelectMode) {\n var lastRange = this.rangeList.ranges.pop();\n removed.push(lastRange);\n this.rangeCount = 0;\n }\n for (var i = removed.length; i--;) {\n var index = this.ranges.indexOf(removed[i]);\n this.ranges.splice(index, 1);\n }\n this._signal(\"removeRange\", { ranges: removed });\n if (this.rangeCount === 0 && this.inMultiSelectMode) {\n this.inMultiSelectMode = false;\n this._signal(\"singleSelect\");\n this.session.$undoSelect = true;\n this.rangeList.detach(this.session);\n }\n lastRange = lastRange || this.ranges[0];\n if (lastRange && !lastRange.isEqual(this.getRange()))\n this.fromOrientedRange(lastRange);\n };\n this.$initRangeList = function () {\n if (this.rangeList)\n return;\n this.rangeList = new RangeList();\n this.ranges = [];\n this.rangeCount = 0;\n };\n this.getAllRanges = function () {\n return this.rangeCount ? this.rangeList.ranges.concat() : [this.getRange()];\n };\n this.splitIntoLines = function () {\n var ranges = this.ranges.length ? this.ranges : [this.getRange()];\n var newRanges = [];\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n var row = range.start.row;\n var endRow = range.end.row;\n if (row === endRow) {\n newRanges.push(range.clone());\n }\n else {\n newRanges.push(new Range(row, range.start.column, row, this.session.getLine(row).length));\n while (++row < endRow)\n newRanges.push(this.getLineRange(row, true));\n newRanges.push(new Range(endRow, 0, endRow, range.end.column));\n }\n if (i == 0 && !this.isBackwards())\n newRanges = newRanges.reverse();\n }\n this.toSingleRange();\n for (var i = newRanges.length; i--;)\n this.addRange(newRanges[i]);\n };\n this.joinSelections = function () {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n };\n this.toggleBlockSelection = function () {\n if (this.rangeCount > 1) {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n }\n else {\n var cursor = this.session.documentToScreenPosition(this.cursor);\n var anchor = this.session.documentToScreenPosition(this.anchor);\n var rectSel = this.rectangularRangeBlock(cursor, anchor);\n rectSel.forEach(this.addRange, this);\n }\n };\n this.rectangularRangeBlock = function (screenCursor, screenAnchor, includeEmptyLines) {\n var rectSel = [];\n var xBackwards = screenCursor.column < screenAnchor.column;\n if (xBackwards) {\n var startColumn = screenCursor.column;\n var endColumn = screenAnchor.column;\n var startOffsetX = screenCursor.offsetX;\n var endOffsetX = screenAnchor.offsetX;\n }\n else {\n var startColumn = screenAnchor.column;\n var endColumn = screenCursor.column;\n var startOffsetX = screenAnchor.offsetX;\n var endOffsetX = screenCursor.offsetX;\n }\n var yBackwards = screenCursor.row < screenAnchor.row;\n if (yBackwards) {\n var startRow = screenCursor.row;\n var endRow = screenAnchor.row;\n }\n else {\n var startRow = screenAnchor.row;\n var endRow = screenCursor.row;\n }\n if (startColumn < 0)\n startColumn = 0;\n if (startRow < 0)\n startRow = 0;\n if (startRow == endRow)\n includeEmptyLines = true;\n var docEnd;\n for (var row = startRow; row <= endRow; row++) {\n var range = Range.fromPoints(this.session.screenToDocumentPosition(row, startColumn, startOffsetX), this.session.screenToDocumentPosition(row, endColumn, endOffsetX));\n if (range.isEmpty()) {\n if (docEnd && isSamePoint(range.end, docEnd))\n break;\n docEnd = range.end;\n }\n range.cursor = xBackwards ? range.start : range.end;\n rectSel.push(range);\n }\n if (yBackwards)\n rectSel.reverse();\n if (!includeEmptyLines) {\n var end = rectSel.length - 1;\n while (rectSel[end].isEmpty() && end > 0)\n end--;\n if (end > 0) {\n var start = 0;\n while (rectSel[start].isEmpty())\n start++;\n }\n for (var i = end; i >= start; i--) {\n if (rectSel[i].isEmpty())\n rectSel.splice(i, 1);\n }\n }\n return rectSel;\n };\n}).call(Selection.prototype);\nvar Editor = require(\"./editor\").Editor;\n(function () {\n this.updateSelectionMarkers = function () {\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.addSelectionMarker = function (orientedRange) {\n if (!orientedRange.cursor)\n orientedRange.cursor = orientedRange.end;\n var style = this.getSelectionStyle();\n orientedRange.marker = this.session.addMarker(orientedRange, \"ace_selection\", style);\n this.session.$selectionMarkers.push(orientedRange);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n return orientedRange;\n };\n this.removeSelectionMarker = function (range) {\n if (!range.marker)\n return;\n this.session.removeMarker(range.marker);\n var index = this.session.$selectionMarkers.indexOf(range);\n if (index != -1)\n this.session.$selectionMarkers.splice(index, 1);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n };\n this.removeSelectionMarkers = function (ranges) {\n var markerList = this.session.$selectionMarkers;\n for (var i = ranges.length; i--;) {\n var range = ranges[i];\n if (!range.marker)\n continue;\n this.session.removeMarker(range.marker);\n var index = markerList.indexOf(range);\n if (index != -1)\n markerList.splice(index, 1);\n }\n this.session.selectionMarkerCount = markerList.length;\n };\n this.$onAddRange = function (e) {\n this.addSelectionMarker(e.range);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.$onRemoveRange = function (e) {\n this.removeSelectionMarkers(e.ranges);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.$onMultiSelect = function (e) {\n if (this.inMultiSelectMode)\n return;\n this.inMultiSelectMode = true;\n this.setStyle(\"ace_multiselect\");\n this.keyBinding.addKeyboardHandler(commands.keyboardHandler);\n this.commands.setDefaultHandler(\"exec\", this.$onMultiSelectExec);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.$onSingleSelect = function (e) {\n if (this.session.multiSelect.inVirtualMode)\n return;\n this.inMultiSelectMode = false;\n this.unsetStyle(\"ace_multiselect\");\n this.keyBinding.removeKeyboardHandler(commands.keyboardHandler);\n this.commands.removeDefaultHandler(\"exec\", this.$onMultiSelectExec);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n this._emit(\"changeSelection\");\n };\n this.$onMultiSelectExec = function (e) {\n var command = e.command;\n var editor = e.editor;\n if (!editor.multiSelect)\n return;\n if (!command.multiSelectAction) {\n var result = command.exec(editor, e.args || {});\n editor.multiSelect.addRange(editor.multiSelect.toOrientedRange());\n editor.multiSelect.mergeOverlappingRanges();\n }\n else if (command.multiSelectAction == \"forEach\") {\n result = editor.forEachSelection(command, e.args);\n }\n else if (command.multiSelectAction == \"forEachLine\") {\n result = editor.forEachSelection(command, e.args, true);\n }\n else if (command.multiSelectAction == \"single\") {\n editor.exitMultiSelectMode();\n result = command.exec(editor, e.args || {});\n }\n else {\n result = command.multiSelectAction(editor, e.args || {});\n }\n return result;\n };\n this.forEachSelection = function (cmd, args, options) {\n if (this.inVirtualSelectionMode)\n return;\n var keepOrder = options && options.keepOrder;\n var $byLines = options == true || options && options.$byLines;\n var session = this.session;\n var selection = this.selection;\n var rangeList = selection.rangeList;\n var ranges = (keepOrder ? selection : rangeList).ranges;\n var result;\n if (!ranges.length)\n return cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n var reg = selection._eventRegistry;\n selection._eventRegistry = {};\n var tmpSel = new Selection(session);\n this.inVirtualSelectionMode = true;\n for (var i = ranges.length; i--;) {\n if ($byLines) {\n while (i > 0 && ranges[i].start.row == ranges[i - 1].end.row)\n i--;\n }\n tmpSel.fromOrientedRange(ranges[i]);\n tmpSel.index = i;\n this.selection = session.selection = tmpSel;\n var cmdResult = cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n if (!result && cmdResult !== undefined)\n result = cmdResult;\n tmpSel.toOrientedRange(ranges[i]);\n }\n tmpSel.detach();\n this.selection = session.selection = selection;\n this.inVirtualSelectionMode = false;\n selection._eventRegistry = reg;\n selection.mergeOverlappingRanges();\n if (selection.ranges[0])\n selection.fromOrientedRange(selection.ranges[0]);\n var anim = this.renderer.$scrollAnimation;\n this.onCursorChange();\n this.onSelectionChange();\n if (anim && anim.from == anim.to)\n this.renderer.animateScrolling(anim.from);\n return result;\n };\n this.exitMultiSelectMode = function () {\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode)\n return;\n this.multiSelect.toSingleRange();\n };\n this.getSelectedText = function () {\n var text = \"\";\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var ranges = this.multiSelect.rangeList.ranges;\n var buf = [];\n for (var i = 0; i < ranges.length; i++) {\n buf.push(this.session.getTextRange(ranges[i]));\n }\n var nl = this.session.getDocument().getNewLineCharacter();\n text = buf.join(nl);\n if (text.length == (buf.length - 1) * nl.length)\n text = \"\";\n }\n else if (!this.selection.isEmpty()) {\n text = this.session.getTextRange(this.getSelectionRange());\n }\n return text;\n };\n this.$checkMultiselectChange = function (e, anchor) {\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var range = this.multiSelect.ranges[0];\n if (this.multiSelect.isEmpty() && anchor == this.multiSelect.anchor)\n return;\n var pos = anchor == this.multiSelect.anchor\n ? range.cursor == range.start ? range.end : range.start\n : range.cursor;\n if (pos.row != anchor.row\n || this.session.$clipPositionToDocument(pos.row, pos.column).column != anchor.column)\n this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange());\n else\n this.multiSelect.mergeOverlappingRanges();\n }\n };\n this.findAll = function (needle, options, additive) {\n options = options || {};\n options.needle = needle || options.needle;\n if (options.needle == undefined) {\n var range = this.selection.isEmpty()\n ? this.selection.getWordRange()\n : this.selection.getRange();\n options.needle = this.session.getTextRange(range);\n }\n this.$search.set(options);\n var ranges = this.$search.findAll(this.session);\n if (!ranges.length)\n return 0;\n var selection = this.multiSelect;\n if (!additive)\n selection.toSingleRange(ranges[0]);\n for (var i = ranges.length; i--;)\n selection.addRange(ranges[i], true);\n if (range && selection.rangeList.rangeAtPoint(range.start))\n selection.addRange(range, true);\n return ranges.length;\n };\n this.selectMoreLines = function (dir, skip) {\n var range = this.selection.toOrientedRange();\n var isBackwards = range.cursor == range.end;\n var screenLead = this.session.documentToScreenPosition(range.cursor);\n if (this.selection.$desiredColumn)\n screenLead.column = this.selection.$desiredColumn;\n var lead = this.session.screenToDocumentPosition(screenLead.row + dir, screenLead.column);\n if (!range.isEmpty()) {\n var screenAnchor = this.session.documentToScreenPosition(isBackwards ? range.end : range.start);\n var anchor = this.session.screenToDocumentPosition(screenAnchor.row + dir, screenAnchor.column);\n }\n else {\n var anchor = lead;\n }\n if (isBackwards) {\n var newRange = Range.fromPoints(lead, anchor);\n newRange.cursor = newRange.start;\n }\n else {\n var newRange = Range.fromPoints(anchor, lead);\n newRange.cursor = newRange.end;\n }\n newRange.desiredColumn = screenLead.column;\n if (!this.selection.inMultiSelectMode) {\n this.selection.addRange(range);\n }\n else {\n if (skip)\n var toRemove = range.cursor;\n }\n this.selection.addRange(newRange);\n if (toRemove)\n this.selection.substractPoint(toRemove);\n };\n this.transposeSelections = function (dir) {\n var session = this.session;\n var sel = session.multiSelect;\n var all = sel.ranges;\n for (var i = all.length; i--;) {\n var range = all[i];\n if (range.isEmpty()) {\n var tmp = session.getWordRange(range.start.row, range.start.column);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n range.end.row = tmp.end.row;\n range.end.column = tmp.end.column;\n }\n }\n sel.mergeOverlappingRanges();\n var words = [];\n for (var i = all.length; i--;) {\n var range = all[i];\n words.unshift(session.getTextRange(range));\n }\n if (dir < 0)\n words.unshift(words.pop());\n else\n words.push(words.shift());\n for (var i = all.length; i--;) {\n var range = all[i];\n var tmp = range.clone();\n session.replace(range, words[i]);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n }\n sel.fromOrientedRange(sel.ranges[0]);\n };\n this.selectMore = function (dir, skip, stopAtFirst) {\n var session = this.session;\n var sel = session.multiSelect;\n var range = sel.toOrientedRange();\n if (range.isEmpty()) {\n range = session.getWordRange(range.start.row, range.start.column);\n range.cursor = dir == -1 ? range.start : range.end;\n this.multiSelect.addRange(range);\n if (stopAtFirst)\n return;\n }\n var needle = session.getTextRange(range);\n var newRange = find(session, needle, dir);\n if (newRange) {\n newRange.cursor = dir == -1 ? newRange.start : newRange.end;\n this.session.unfold(newRange);\n this.multiSelect.addRange(newRange);\n this.renderer.scrollCursorIntoView(null, 0.5);\n }\n if (skip)\n this.multiSelect.substractPoint(range.cursor);\n };\n this.alignCursors = function () {\n var session = this.session;\n var sel = session.multiSelect;\n var ranges = sel.ranges;\n var row = -1;\n var sameRowRanges = ranges.filter(function (r) {\n if (r.cursor.row == row)\n return true;\n row = r.cursor.row;\n });\n if (!ranges.length || sameRowRanges.length == ranges.length - 1) {\n var range = this.selection.getRange();\n var fr = range.start.row, lr = range.end.row;\n var guessRange = fr == lr;\n if (guessRange) {\n var max = this.session.getLength();\n var line;\n do {\n line = this.session.getLine(lr);\n } while (/[=:]/.test(line) && ++lr < max);\n do {\n line = this.session.getLine(fr);\n } while (/[=:]/.test(line) && --fr > 0);\n if (fr < 0)\n fr = 0;\n if (lr >= max)\n lr = max - 1;\n }\n var lines = this.session.removeFullLines(fr, lr);\n lines = this.$reAlignText(lines, guessRange);\n this.session.insert({ row: fr, column: 0 }, lines.join(\"\\n\") + \"\\n\");\n if (!guessRange) {\n range.start.column = 0;\n range.end.column = lines[lines.length - 1].length;\n }\n this.selection.setRange(range);\n }\n else {\n sameRowRanges.forEach(function (r) {\n sel.substractPoint(r.cursor);\n });\n var maxCol = 0;\n var minSpace = Infinity;\n var spaceOffsets = ranges.map(function (r) {\n var p = r.cursor;\n var line = session.getLine(p.row);\n var spaceOffset = line.substr(p.column).search(/\\S/g);\n if (spaceOffset == -1)\n spaceOffset = 0;\n if (p.column > maxCol)\n maxCol = p.column;\n if (spaceOffset < minSpace)\n minSpace = spaceOffset;\n return spaceOffset;\n });\n ranges.forEach(function (r, i) {\n var p = r.cursor;\n var l = maxCol - p.column;\n var d = spaceOffsets[i] - minSpace;\n if (l > d)\n session.insert(p, lang.stringRepeat(\" \", l - d));\n else\n session.remove(new Range(p.row, p.column, p.row, p.column - l + d));\n r.start.column = r.end.column = maxCol;\n r.start.row = r.end.row = p.row;\n r.cursor = r.end;\n });\n sel.fromOrientedRange(ranges[0]);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n }\n };\n this.$reAlignText = function (lines, forceLeft) {\n var isLeftAligned = true, isRightAligned = true;\n var startW, textW, endW;\n return lines.map(function (line) {\n var m = line.match(/(\\s*)(.*?)(\\s*)([=:].*)/);\n if (!m)\n return [line];\n if (startW == null) {\n startW = m[1].length;\n textW = m[2].length;\n endW = m[3].length;\n return m;\n }\n if (startW + textW + endW != m[1].length + m[2].length + m[3].length)\n isRightAligned = false;\n if (startW != m[1].length)\n isLeftAligned = false;\n if (startW > m[1].length)\n startW = m[1].length;\n if (textW < m[2].length)\n textW = m[2].length;\n if (endW > m[3].length)\n endW = m[3].length;\n return m;\n }).map(forceLeft ? alignLeft :\n isLeftAligned ? isRightAligned ? alignRight : alignLeft : unAlign);\n function spaces(n) {\n return lang.stringRepeat(\" \", n);\n }\n function alignLeft(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(textW - m[2].length + endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function alignRight(m) {\n return !m[2] ? m[0] : spaces(startW + textW - m[2].length) + m[2]\n + spaces(endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function unAlign(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n };\n}).call(Editor.prototype);\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\nexports.onSessionChange = function (e) {\n var session = e.session;\n if (session && !session.multiSelect) {\n session.$selectionMarkers = [];\n session.selection.$initRangeList();\n session.multiSelect = session.selection;\n }\n this.multiSelect = session && session.multiSelect;\n var oldSession = e.oldSession;\n if (oldSession) {\n oldSession.multiSelect.off(\"addRange\", this.$onAddRange);\n oldSession.multiSelect.off(\"removeRange\", this.$onRemoveRange);\n oldSession.multiSelect.off(\"multiSelect\", this.$onMultiSelect);\n oldSession.multiSelect.off(\"singleSelect\", this.$onSingleSelect);\n oldSession.multiSelect.lead.off(\"change\", this.$checkMultiselectChange);\n oldSession.multiSelect.anchor.off(\"change\", this.$checkMultiselectChange);\n }\n if (session) {\n session.multiSelect.on(\"addRange\", this.$onAddRange);\n session.multiSelect.on(\"removeRange\", this.$onRemoveRange);\n session.multiSelect.on(\"multiSelect\", this.$onMultiSelect);\n session.multiSelect.on(\"singleSelect\", this.$onSingleSelect);\n session.multiSelect.lead.on(\"change\", this.$checkMultiselectChange);\n session.multiSelect.anchor.on(\"change\", this.$checkMultiselectChange);\n }\n if (session && this.inMultiSelectMode != session.selection.inMultiSelectMode) {\n if (session.selection.inMultiSelectMode)\n this.$onMultiSelect();\n else\n this.$onSingleSelect();\n }\n};\nfunction MultiSelect(editor) {\n if (editor.$multiselectOnSessionChange)\n return;\n editor.$onAddRange = editor.$onAddRange.bind(editor);\n editor.$onRemoveRange = editor.$onRemoveRange.bind(editor);\n editor.$onMultiSelect = editor.$onMultiSelect.bind(editor);\n editor.$onSingleSelect = editor.$onSingleSelect.bind(editor);\n editor.$multiselectOnSessionChange = exports.onSessionChange.bind(editor);\n editor.$checkMultiselectChange = editor.$checkMultiselectChange.bind(editor);\n editor.$multiselectOnSessionChange(editor);\n editor.on(\"changeSession\", editor.$multiselectOnSessionChange);\n editor.on(\"mousedown\", onMouseDown);\n editor.commands.addCommands(commands.defaultCommands);\n addAltCursorListeners(editor);\n}\nfunction addAltCursorListeners(editor) {\n if (!editor.textInput)\n return;\n var el = editor.textInput.getElement();\n var altCursor = false;\n event.addListener(el, \"keydown\", function (e) {\n var altDown = e.keyCode == 18 && !(e.ctrlKey || e.shiftKey || e.metaKey);\n if (editor.$blockSelectEnabled && altDown) {\n if (!altCursor) {\n editor.renderer.setMouseCursor(\"crosshair\");\n altCursor = true;\n }\n }\n else if (altCursor) {\n reset();\n }\n }, editor);\n event.addListener(el, \"keyup\", reset, editor);\n event.addListener(el, \"blur\", reset, editor);\n function reset(e) {\n if (altCursor) {\n editor.renderer.setMouseCursor(\"\");\n altCursor = false;\n }\n }\n}\nexports.MultiSelect = MultiSelect;\nrequire(\"./config\").defineOptions(Editor.prototype, \"editor\", {\n enableMultiselect: {\n set: function (val) {\n MultiSelect(this);\n if (val) {\n this.on(\"mousedown\", onMouseDown);\n }\n else {\n this.off(\"mousedown\", onMouseDown);\n }\n },\n value: true\n },\n enableBlockSelect: {\n set: function (val) {\n this.$blockSelectEnabled = val;\n },\n value: true\n }\n});\n\n});\n\nace.define(\"ace/mode/folding/fold_mode\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../../range\").Range;\nvar FoldMode = exports.FoldMode = function () { };\n(function () {\n this.foldingStartMarker = null;\n this.foldingStopMarker = null;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.foldingStartMarker.test(line))\n return \"start\";\n if (foldStyle == \"markbeginend\"\n && this.foldingStopMarker\n && this.foldingStopMarker.test(line))\n return \"end\";\n return \"\";\n };\n this.getFoldWidgetRange = function (session, foldStyle, row) {\n return null;\n };\n this.indentationBlock = function (session, row, column) {\n var re = /\\S/;\n var line = session.getLine(row);\n var startLevel = line.search(re);\n if (startLevel == -1)\n return;\n var startColumn = column || line.length;\n var maxRow = session.getLength();\n var startRow = row;\n var endRow = row;\n while (++row < maxRow) {\n var level = session.getLine(row).search(re);\n if (level == -1)\n continue;\n if (level <= startLevel) {\n var token = session.getTokenAt(row, 0);\n if (!token || token.type !== \"string\")\n break;\n }\n endRow = row;\n }\n if (endRow > startRow) {\n var endColumn = session.getLine(endRow).length;\n return new Range(startRow, startColumn, endRow, endColumn);\n }\n };\n this.openingBracketBlock = function (session, bracket, row, column, typeRe) {\n var start = { row: row, column: column + 1 };\n var end = session.$findClosingBracket(bracket, start, typeRe);\n if (!end)\n return;\n var fw = session.foldWidgets[end.row];\n if (fw == null)\n fw = session.getFoldWidget(end.row);\n if (fw == \"start\" && end.row > start.row) {\n end.row--;\n end.column = session.getLine(end.row).length;\n }\n return Range.fromPoints(start, end);\n };\n this.closingBracketBlock = function (session, bracket, row, column, typeRe) {\n var end = { row: row, column: column };\n var start = session.$findOpeningBracket(bracket, end);\n if (!start)\n return;\n start.column++;\n end.column--;\n return Range.fromPoints(start, end);\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/ext/error_marker\",[\"require\",\"exports\",\"module\",\"ace/line_widgets\",\"ace/lib/dom\",\"ace/range\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar LineWidgets = require(\"../line_widgets\").LineWidgets;\nvar dom = require(\"../lib/dom\");\nvar Range = require(\"../range\").Range;\nvar nls = require(\"../config\").nls;\nfunction binarySearch(array, needle, comparator) {\n var first = 0;\n var last = array.length - 1;\n while (first <= last) {\n var mid = (first + last) >> 1;\n var c = comparator(needle, array[mid]);\n if (c > 0)\n first = mid + 1;\n else if (c < 0)\n last = mid - 1;\n else\n return mid;\n }\n return -(first + 1);\n}\nfunction findAnnotations(session, row, dir) {\n var annotations = session.getAnnotations().sort(Range.comparePoints);\n if (!annotations.length)\n return;\n var i = binarySearch(annotations, { row: row, column: -1 }, Range.comparePoints);\n if (i < 0)\n i = -i - 1;\n if (i >= annotations.length)\n i = dir > 0 ? 0 : annotations.length - 1;\n else if (i === 0 && dir < 0)\n i = annotations.length - 1;\n var annotation = annotations[i];\n if (!annotation || !dir)\n return;\n if (annotation.row === row) {\n do {\n annotation = annotations[i += dir];\n } while (annotation && annotation.row === row);\n if (!annotation)\n return annotations.slice();\n }\n var matched = [];\n row = annotation.row;\n do {\n matched[dir < 0 ? \"unshift\" : \"push\"](annotation);\n annotation = annotations[i += dir];\n } while (annotation && annotation.row == row);\n return matched.length && matched;\n}\nexports.showErrorMarker = function (editor, dir) {\n var session = editor.session;\n if (!session.widgetManager) {\n session.widgetManager = new LineWidgets(session);\n session.widgetManager.attach(editor);\n }\n var pos = editor.getCursorPosition();\n var row = pos.row;\n var oldWidget = session.widgetManager.getWidgetsAtRow(row).filter(function (w) {\n return w.type == \"errorMarker\";\n })[0];\n if (oldWidget) {\n oldWidget.destroy();\n }\n else {\n row -= dir;\n }\n var annotations = findAnnotations(session, row, dir);\n var gutterAnno;\n if (annotations) {\n var annotation = annotations[0];\n pos.column = (annotation.pos && typeof annotation.column != \"number\"\n ? annotation.pos.sc\n : annotation.column) || 0;\n pos.row = annotation.row;\n gutterAnno = editor.renderer.$gutterLayer.$annotations[pos.row];\n }\n else if (oldWidget) {\n return;\n }\n else {\n gutterAnno = {\n text: [nls(\"Looks good!\")],\n className: \"ace_ok\"\n };\n }\n editor.session.unfold(pos.row);\n editor.selection.moveToPosition(pos);\n var w = {\n row: pos.row,\n fixedWidth: true,\n coverGutter: true,\n el: dom.createElement(\"div\"),\n type: \"errorMarker\"\n };\n var el = w.el.appendChild(dom.createElement(\"div\"));\n var arrow = w.el.appendChild(dom.createElement(\"div\"));\n arrow.className = \"error_widget_arrow \" + gutterAnno.className;\n var left = editor.renderer.$cursorLayer\n .getPixelPosition(pos).left;\n arrow.style.left = left + editor.renderer.gutterWidth - 5 + \"px\";\n w.el.className = \"error_widget_wrapper\";\n el.className = \"error_widget \" + gutterAnno.className;\n el.innerHTML = gutterAnno.text.join(\"
\");\n el.appendChild(dom.createElement(\"div\"));\n var kb = function (_, hashId, keyString) {\n if (hashId === 0 && (keyString === \"esc\" || keyString === \"return\")) {\n w.destroy();\n return { command: \"null\" };\n }\n };\n w.destroy = function () {\n if (editor.$mouseHandler.isMousePressed)\n return;\n editor.keyBinding.removeKeyboardHandler(kb);\n session.widgetManager.removeLineWidget(w);\n editor.off(\"changeSelection\", w.destroy);\n editor.off(\"changeSession\", w.destroy);\n editor.off(\"mouseup\", w.destroy);\n editor.off(\"change\", w.destroy);\n };\n editor.keyBinding.addKeyboardHandler(kb);\n editor.on(\"changeSelection\", w.destroy);\n editor.on(\"changeSession\", w.destroy);\n editor.on(\"mouseup\", w.destroy);\n editor.on(\"change\", w.destroy);\n editor.session.widgetManager.addLineWidget(w);\n w.el.onmousedown = editor.focus.bind(editor);\n editor.renderer.scrollCursorIntoView(null, 0.5, { bottom: w.el.offsetHeight });\n};\ndom.importCssString(\"\\n .error_widget_wrapper {\\n background: inherit;\\n color: inherit;\\n border:none\\n }\\n .error_widget {\\n border-top: solid 2px;\\n border-bottom: solid 2px;\\n margin: 5px 0;\\n padding: 10px 40px;\\n white-space: pre-wrap;\\n }\\n .error_widget.ace_error, .error_widget_arrow.ace_error{\\n border-color: #ff5a5a\\n }\\n .error_widget.ace_warning, .error_widget_arrow.ace_warning{\\n border-color: #F1D817\\n }\\n .error_widget.ace_info, .error_widget_arrow.ace_info{\\n border-color: #5a5a5a\\n }\\n .error_widget.ace_ok, .error_widget_arrow.ace_ok{\\n border-color: #5aaa5a\\n }\\n .error_widget_arrow {\\n position: absolute;\\n border: solid 5px;\\n border-top-color: transparent!important;\\n border-right-color: transparent!important;\\n border-left-color: transparent!important;\\n top: -5px;\\n }\\n\", \"error_marker.css\", false);\n\n});\n\nace.define(\"ace/ace\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/range\",\"ace/editor\",\"ace/edit_session\",\"ace/undomanager\",\"ace/virtual_renderer\",\"ace/worker/worker_client\",\"ace/keyboard/hash_handler\",\"ace/placeholder\",\"ace/multi_select\",\"ace/mode/folding/fold_mode\",\"ace/theme/textmate\",\"ace/ext/error_marker\",\"ace/config\",\"ace/loader_build\"], function(require, exports, module){/**\n * The main class required to set up an Ace instance in the browser.\n *\n * @class Ace\n **/\n\"use strict\";\nrequire(\"./loader_build\")(exports)\nvar dom = require(\"./lib/dom\");\nvar Range = require(\"./range\").Range;\nvar Editor = require(\"./editor\").Editor;\nvar EditSession = require(\"./edit_session\").EditSession;\nvar UndoManager = require(\"./undomanager\").UndoManager;\nvar Renderer = require(\"./virtual_renderer\").VirtualRenderer;\nrequire(\"./worker/worker_client\");\nrequire(\"./keyboard/hash_handler\");\nrequire(\"./placeholder\");\nrequire(\"./multi_select\");\nrequire(\"./mode/folding/fold_mode\");\nrequire(\"./theme/textmate\");\nrequire(\"./ext/error_marker\");\nexports.config = require(\"./config\");\nexports.edit = function (el, options) {\n if (typeof el == \"string\") {\n var _id = el;\n el = document.getElementById(_id);\n if (!el)\n throw new Error(\"ace.edit can't find div #\" + _id);\n }\n if (el && el.env && el.env.editor instanceof Editor)\n return el.env.editor;\n var value = \"\";\n if (el && /input|textarea/i.test(el.tagName)) {\n var oldNode = el;\n value = oldNode.value;\n el = dom.createElement(\"pre\");\n oldNode.parentNode.replaceChild(el, oldNode);\n }\n else if (el) {\n value = el.textContent;\n el.innerHTML = \"\";\n }\n var doc = exports.createEditSession(value);\n var editor = new Editor(new Renderer(el), doc, options);\n var env = {\n document: doc,\n editor: editor,\n onResize: editor.resize.bind(editor, null)\n };\n if (oldNode)\n env.textarea = oldNode;\n editor.on(\"destroy\", function () {\n env.editor.container.env = null; // prevent memory leak on old ie\n });\n editor.container.env = editor.env = env;\n return editor;\n};\nexports.createEditSession = function (text, mode) {\n var doc = new EditSession(text, mode);\n doc.setUndoManager(new UndoManager());\n return doc;\n};\nexports.Range = Range;\nexports.Editor = Editor;\nexports.EditSession = EditSession;\nexports.UndoManager = UndoManager;\nexports.VirtualRenderer = Renderer;\nexports.version = exports.config.version;\n\n}); (function() {\n ace.require([\"ace/ace\"], function(a) {\n if (a) {\n a.config.init(true);\n a.define = ace.define;\n }\n var global = (function () {\n return this;\n })();\n if (!global && typeof window != \"undefined\") global = window; // can happen in strict mode\n if (!global && typeof self != \"undefined\") global = self; // can happen in webworker\n \n if (!global.ace)\n global.ace = a;\n for (var key in a) if (a.hasOwnProperty(key))\n global.ace[key] = a[key];\n global.ace[\"default\"] = global.ace;\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = global.ace;\n }\n });\n })();\n ","ace.define(\"ace/ext/beautify\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"], function(require, exports, module){// [WIP]\n\"use strict\";\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nfunction is(token, type) {\n return token.type.lastIndexOf(type + \".xml\") > -1;\n}\nexports.singletonTags = [\"area\", \"base\", \"br\", \"col\", \"command\", \"embed\", \"hr\", \"html\", \"img\", \"input\", \"keygen\", \"link\", \"meta\", \"param\", \"source\", \"track\", \"wbr\"];\nexports.blockTags = [\"article\", \"aside\", \"blockquote\", \"body\", \"div\", \"dl\", \"fieldset\", \"footer\", \"form\", \"head\", \"header\", \"html\", \"nav\", \"ol\", \"p\", \"script\", \"section\", \"style\", \"table\", \"tbody\", \"tfoot\", \"thead\", \"ul\"];\nexports.formatOptions = {\n lineBreaksAfterCommasInCurlyBlock: true\n};\nexports.beautify = function (session) {\n var iterator = new TokenIterator(session, 0, 0);\n var token = iterator.getCurrentToken();\n var tabString = session.getTabString();\n var singletonTags = exports.singletonTags;\n var blockTags = exports.blockTags;\n var formatOptions = exports.formatOptions || {};\n var nextToken;\n var breakBefore = false;\n var spaceBefore = false;\n var spaceAfter = false;\n var code = \"\";\n var value = \"\";\n var tagName = \"\";\n var depth = 0;\n var lastDepth = 0;\n var lastIndent = 0;\n var indent = 0;\n var unindent = 0;\n var roundDepth = 0;\n var curlyDepth = 0;\n var row;\n var curRow = 0;\n var rowsToAdd = 0;\n var rowTokens = [];\n var abort = false;\n var i;\n var indentNextLine = false;\n var inTag = false;\n var inCSS = false;\n var inBlock = false;\n var levels = { 0: 0 };\n var parents = [];\n var caseBody = false;\n var trimNext = function () {\n if (nextToken && nextToken.value && nextToken.type !== 'string.regexp')\n nextToken.value = nextToken.value.replace(/^\\s*/, \"\");\n };\n var trimLine = function () {\n var end = code.length - 1;\n while (true) {\n if (end == 0)\n break;\n if (code[end] !== \" \")\n break;\n end = end - 1;\n }\n code = code.slice(0, end + 1);\n };\n var trimCode = function () {\n code = code.trimRight();\n breakBefore = false;\n };\n while (token !== null) {\n curRow = iterator.getCurrentTokenRow();\n rowTokens = iterator.$rowTokens;\n nextToken = iterator.stepForward();\n if (typeof token !== \"undefined\") {\n value = token.value;\n unindent = 0;\n inCSS = (tagName === \"style\" || session.$modeId === \"ace/mode/css\");\n if (is(token, \"tag-open\")) {\n inTag = true;\n if (nextToken)\n inBlock = (blockTags.indexOf(nextToken.value) !== -1);\n if (value === \" 0; rowsToAdd--)\n code += \"\\n\";\n breakBefore = true;\n if (!is(token, \"comment\") && !token.type.match(/^(comment|string)$/))\n value = value.trimLeft();\n }\n if (value) {\n if (token.type === \"keyword\" && value.match(/^(if|else|elseif|for|foreach|while|switch)$/)) {\n parents[depth] = value;\n trimNext();\n spaceAfter = true;\n if (value.match(/^(else|elseif)$/)) {\n if (code.match(/\\}[\\s]*$/)) {\n trimCode();\n spaceBefore = true;\n }\n }\n }\n else if (token.type === \"paren.lparen\") {\n trimNext();\n if (value.substr(-1) === \"{\") {\n spaceAfter = true;\n indentNextLine = false;\n if (!inTag)\n rowsToAdd = 1;\n }\n if (value.substr(0, 1) === \"{\") {\n spaceBefore = true;\n if (code.substr(-1) !== '[' && code.trimRight().substr(-1) === '[') {\n trimCode();\n spaceBefore = false;\n }\n else if (code.trimRight().substr(-1) === ')') {\n trimCode();\n }\n else {\n trimLine();\n }\n }\n }\n else if (token.type === \"paren.rparen\") {\n unindent = 1;\n if (value.substr(0, 1) === \"}\") {\n if (parents[depth - 1] === 'case')\n unindent++;\n if (code.trimRight().substr(-1) === '{') {\n trimCode();\n }\n else {\n spaceBefore = true;\n if (inCSS)\n rowsToAdd += 2;\n }\n }\n if (value.substr(0, 1) === \"]\") {\n if (code.substr(-1) !== '}' && code.trimRight().substr(-1) === '}') {\n spaceBefore = false;\n indent++;\n trimCode();\n }\n }\n if (value.substr(0, 1) === \")\") {\n if (code.substr(-1) !== '(' && code.trimRight().substr(-1) === '(') {\n spaceBefore = false;\n indent++;\n trimCode();\n }\n }\n trimLine();\n }\n else if ((token.type === \"keyword.operator\" || token.type === \"keyword\") && value.match(/^(=|==|===|!=|!==|&&|\\|\\||and|or|xor|\\+=|.=|>|>=|<|<=|=>)$/)) {\n trimCode();\n trimNext();\n spaceBefore = true;\n spaceAfter = true;\n }\n else if (token.type === \"punctuation.operator\" && value === ';') {\n trimCode();\n trimNext();\n spaceAfter = true;\n if (inCSS)\n rowsToAdd++;\n }\n else if (token.type === \"punctuation.operator\" && value.match(/^(:|,)$/)) {\n trimCode();\n trimNext();\n if (value.match(/^(,)$/) && curlyDepth > 0 && roundDepth === 0 && formatOptions.lineBreaksAfterCommasInCurlyBlock) {\n rowsToAdd++;\n }\n else {\n spaceAfter = true;\n breakBefore = false;\n }\n }\n else if (token.type === \"support.php_tag\" && value === \"?>\" && !breakBefore) {\n trimCode();\n spaceBefore = true;\n }\n else if (is(token, \"attribute-name\") && code.substr(-1).match(/^\\s$/)) {\n spaceBefore = true;\n }\n else if (is(token, \"attribute-equals\")) {\n trimLine();\n trimNext();\n }\n else if (is(token, \"tag-close\")) {\n trimLine();\n if (value === \"/>\")\n spaceBefore = true;\n }\n else if (token.type === \"keyword\" && value.match(/^(case|default)$/)) {\n if (caseBody)\n unindent = 1;\n }\n if (breakBefore && !(token.type.match(/^(comment)$/) && !value.substr(0, 1).match(/^[/#]$/)) && !(token.type.match(/^(string)$/) && !value.substr(0, 1).match(/^['\"@]$/))) {\n indent = lastIndent;\n if (depth > lastDepth) {\n indent++;\n for (i = depth; i > lastDepth; i--)\n levels[i] = indent;\n }\n else if (depth < lastDepth)\n indent = levels[depth];\n lastDepth = depth;\n lastIndent = indent;\n if (unindent)\n indent -= unindent;\n if (indentNextLine && !roundDepth) {\n indent++;\n indentNextLine = false;\n }\n for (i = 0; i < indent; i++)\n code += tabString;\n }\n if (token.type === \"keyword\" && value.match(/^(case|default)$/)) {\n if (caseBody === false) {\n parents[depth] = value;\n depth++;\n caseBody = true;\n }\n }\n else if (token.type === \"keyword\" && value.match(/^(break)$/)) {\n if (parents[depth - 1] && parents[depth - 1].match(/^(case|default)$/)) {\n depth--;\n caseBody = false;\n }\n }\n if (token.type === \"paren.lparen\") {\n roundDepth += (value.match(/\\(/g) || []).length;\n curlyDepth += (value.match(/\\{/g) || []).length;\n depth += value.length;\n }\n if (token.type === \"keyword\" && value.match(/^(if|else|elseif|for|while)$/)) {\n indentNextLine = true;\n roundDepth = 0;\n }\n else if (!roundDepth && value.trim() && token.type !== \"comment\")\n indentNextLine = false;\n if (token.type === \"paren.rparen\") {\n roundDepth -= (value.match(/\\)/g) || []).length;\n curlyDepth -= (value.match(/\\}/g) || []).length;\n for (i = 0; i < value.length; i++) {\n depth--;\n if (value.substr(i, 1) === '}' && parents[depth] === 'case') {\n depth--;\n }\n }\n }\n if (token.type == \"text\")\n value = value.replace(/\\s+$/, \" \");\n if (spaceBefore && !breakBefore) {\n trimLine();\n if (code.substr(-1) !== \"\\n\")\n code += \" \";\n }\n code += value;\n if (spaceAfter)\n code += \" \";\n breakBefore = false;\n spaceBefore = false;\n spaceAfter = false;\n if ((is(token, \"tag-close\") && (inBlock || blockTags.indexOf(tagName) !== -1)) || (is(token, \"doctype\") && value === \">\")) {\n if (inBlock && nextToken && nextToken.value === \"\") {\n depth--;\n }\n }\n if (is(token, \"tag-name\")) {\n tagName = value;\n }\n row = curRow;\n }\n }\n token = nextToken;\n }\n code = code.trim();\n session.doc.setValue(code);\n};\nexports.commands = [{\n name: \"beautify\",\n description: \"Format selection (Beautify)\",\n exec: function (editor) {\n exports.beautify(editor.session);\n },\n bindKey: \"Ctrl-Shift-B\"\n }];\n\n}); (function() {\n ace.require([\"ace/ext/beautify\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/ext/searchbox-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){module.exports = \"\\n\\n/* ------------------------------------------------------------------------------------------\\n * Editor Search Form\\n * --------------------------------------------------------------------------------------- */\\n.ace_search {\\n background-color: #ddd;\\n color: #666;\\n border: 1px solid #cbcbcb;\\n border-top: 0 none;\\n overflow: hidden;\\n margin: 0;\\n padding: 4px 6px 0 4px;\\n position: absolute;\\n top: 0;\\n z-index: 99;\\n white-space: normal;\\n}\\n.ace_search.left {\\n border-left: 0 none;\\n border-radius: 0px 0px 5px 0px;\\n left: 0;\\n}\\n.ace_search.right {\\n border-radius: 0px 0px 0px 5px;\\n border-right: 0 none;\\n right: 0;\\n}\\n\\n.ace_search_form, .ace_replace_form {\\n margin: 0 20px 4px 0;\\n overflow: hidden;\\n line-height: 1.9;\\n}\\n.ace_replace_form {\\n margin-right: 0;\\n}\\n.ace_search_form.ace_nomatch {\\n outline: 1px solid red;\\n}\\n\\n.ace_search_field {\\n border-radius: 3px 0 0 3px;\\n background-color: white;\\n color: black;\\n border: 1px solid #cbcbcb;\\n border-right: 0 none;\\n outline: 0;\\n padding: 0;\\n font-size: inherit;\\n margin: 0;\\n line-height: inherit;\\n padding: 0 6px;\\n min-width: 17em;\\n vertical-align: top;\\n min-height: 1.8em;\\n box-sizing: content-box;\\n}\\n.ace_searchbtn {\\n border: 1px solid #cbcbcb;\\n line-height: inherit;\\n display: inline-block;\\n padding: 0 6px;\\n background: #fff;\\n border-right: 0 none;\\n border-left: 1px solid #dcdcdc;\\n cursor: pointer;\\n margin: 0;\\n position: relative;\\n color: #666;\\n}\\n.ace_searchbtn:last-child {\\n border-radius: 0 3px 3px 0;\\n border-right: 1px solid #cbcbcb;\\n}\\n.ace_searchbtn:disabled {\\n background: none;\\n cursor: default;\\n}\\n.ace_searchbtn:hover {\\n background-color: #eef1f6;\\n}\\n.ace_searchbtn.prev, .ace_searchbtn.next {\\n padding: 0px 0.7em\\n}\\n.ace_searchbtn.prev:after, .ace_searchbtn.next:after {\\n content: \\\"\\\";\\n border: solid 2px #888;\\n width: 0.5em;\\n height: 0.5em;\\n border-width: 2px 0 0 2px;\\n display:inline-block;\\n transform: rotate(-45deg);\\n}\\n.ace_searchbtn.next:after {\\n border-width: 0 2px 2px 0 ;\\n}\\n.ace_searchbtn_close {\\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\\n border-radius: 50%;\\n border: 0 none;\\n color: #656565;\\n cursor: pointer;\\n font: 16px/16px Arial;\\n padding: 0;\\n height: 14px;\\n width: 14px;\\n top: 9px;\\n right: 7px;\\n position: absolute;\\n}\\n.ace_searchbtn_close:hover {\\n background-color: #656565;\\n background-position: 50% 100%;\\n color: white;\\n}\\n\\n.ace_button {\\n margin-left: 2px;\\n cursor: pointer;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -o-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n overflow: hidden;\\n opacity: 0.7;\\n border: 1px solid rgba(100,100,100,0.23);\\n padding: 1px;\\n box-sizing: border-box!important;\\n color: black;\\n}\\n\\n.ace_button:hover {\\n background-color: #eee;\\n opacity:1;\\n}\\n.ace_button:active {\\n background-color: #ddd;\\n}\\n\\n.ace_button.checked {\\n border-color: #3399ff;\\n opacity:1;\\n}\\n\\n.ace_search_options{\\n margin-bottom: 3px;\\n text-align: right;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -o-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n clear: both;\\n}\\n\\n.ace_search_counter {\\n float: left;\\n font-family: arial;\\n padding: 0 8px;\\n}\";\n\n});\n\nace.define(\"ace/ext/searchbox\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/event\",\"ace/ext/searchbox-css\",\"ace/keyboard/hash_handler\",\"ace/lib/keys\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar event = require(\"../lib/event\");\nvar searchboxCss = require(\"./searchbox-css\");\nvar HashHandler = require(\"../keyboard/hash_handler\").HashHandler;\nvar keyUtil = require(\"../lib/keys\");\nvar nls = require(\"../config\").nls;\nvar MAX_COUNT = 999;\ndom.importCssString(searchboxCss, \"ace_searchbox\", false);\nvar SearchBox = /** @class */ (function () {\n function SearchBox(editor, range, showReplaceForm) {\n var div = dom.createElement(\"div\");\n dom.buildDom([\"div\", { class: \"ace_search right\" },\n [\"span\", { action: \"hide\", class: \"ace_searchbtn_close\" }],\n [\"div\", { class: \"ace_search_form\" },\n [\"input\", { class: \"ace_search_field\", placeholder: nls(\"Search for\"), spellcheck: \"false\" }],\n [\"span\", { action: \"findPrev\", class: \"ace_searchbtn prev\" }, \"\\u200b\"],\n [\"span\", { action: \"findNext\", class: \"ace_searchbtn next\" }, \"\\u200b\"],\n [\"span\", { action: \"findAll\", class: \"ace_searchbtn\", title: \"Alt-Enter\" }, nls(\"All\")]\n ],\n [\"div\", { class: \"ace_replace_form\" },\n [\"input\", { class: \"ace_search_field\", placeholder: nls(\"Replace with\"), spellcheck: \"false\" }],\n [\"span\", { action: \"replaceAndFindNext\", class: \"ace_searchbtn\" }, nls(\"Replace\")],\n [\"span\", { action: \"replaceAll\", class: \"ace_searchbtn\" }, nls(\"All\")]\n ],\n [\"div\", { class: \"ace_search_options\" },\n [\"span\", { action: \"toggleReplace\", class: \"ace_button\", title: nls(\"Toggle Replace mode\"),\n style: \"float:left;margin-top:-2px;padding:0 5px;\" }, \"+\"],\n [\"span\", { class: \"ace_search_counter\" }],\n [\"span\", { action: \"toggleRegexpMode\", class: \"ace_button\", title: nls(\"RegExp Search\") }, \".*\"],\n [\"span\", { action: \"toggleCaseSensitive\", class: \"ace_button\", title: nls(\"CaseSensitive Search\") }, \"Aa\"],\n [\"span\", { action: \"toggleWholeWords\", class: \"ace_button\", title: nls(\"Whole Word Search\") }, \"\\\\b\"],\n [\"span\", { action: \"searchInSelection\", class: \"ace_button\", title: nls(\"Search In Selection\") }, \"S\"]\n ]\n ], div);\n this.element = div.firstChild;\n this.setSession = this.setSession.bind(this);\n this.$init();\n this.setEditor(editor);\n dom.importCssString(searchboxCss, \"ace_searchbox\", editor.container);\n }\n SearchBox.prototype.setEditor = function (editor) {\n editor.searchBox = this;\n editor.renderer.scroller.appendChild(this.element);\n this.editor = editor;\n };\n SearchBox.prototype.setSession = function (e) {\n this.searchRange = null;\n this.$syncOptions(true);\n };\n SearchBox.prototype.$initElements = function (sb) {\n this.searchBox = sb.querySelector(\".ace_search_form\");\n this.replaceBox = sb.querySelector(\".ace_replace_form\");\n this.searchOption = sb.querySelector(\"[action=searchInSelection]\");\n this.replaceOption = sb.querySelector(\"[action=toggleReplace]\");\n this.regExpOption = sb.querySelector(\"[action=toggleRegexpMode]\");\n this.caseSensitiveOption = sb.querySelector(\"[action=toggleCaseSensitive]\");\n this.wholeWordOption = sb.querySelector(\"[action=toggleWholeWords]\");\n this.searchInput = this.searchBox.querySelector(\".ace_search_field\");\n this.replaceInput = this.replaceBox.querySelector(\".ace_search_field\");\n this.searchCounter = sb.querySelector(\".ace_search_counter\");\n };\n SearchBox.prototype.$init = function () {\n var sb = this.element;\n this.$initElements(sb);\n var _this = this;\n event.addListener(sb, \"mousedown\", function (e) {\n setTimeout(function () {\n _this.activeInput.focus();\n }, 0);\n event.stopPropagation(e);\n });\n event.addListener(sb, \"click\", function (e) {\n var t = e.target || e.srcElement;\n var action = t.getAttribute(\"action\");\n if (action && _this[action])\n _this[action]();\n else if (_this.$searchBarKb.commands[action])\n _this.$searchBarKb.commands[action].exec(_this);\n event.stopPropagation(e);\n });\n event.addCommandKeyListener(sb, function (e, hashId, keyCode) {\n var keyString = keyUtil.keyCodeToString(keyCode);\n var command = _this.$searchBarKb.findKeyCommand(hashId, keyString);\n if (command && command.exec) {\n command.exec(_this);\n event.stopEvent(e);\n }\n });\n this.$onChange = lang.delayedCall(function () {\n _this.find(false, false);\n });\n event.addListener(this.searchInput, \"input\", function () {\n _this.$onChange.schedule(20);\n });\n event.addListener(this.searchInput, \"focus\", function () {\n _this.activeInput = _this.searchInput;\n _this.searchInput.value && _this.highlight();\n });\n event.addListener(this.replaceInput, \"focus\", function () {\n _this.activeInput = _this.replaceInput;\n _this.searchInput.value && _this.highlight();\n });\n };\n SearchBox.prototype.setSearchRange = function (range) {\n this.searchRange = range;\n if (range) {\n this.searchRangeMarker = this.editor.session.addMarker(range, \"ace_active-line\");\n }\n else if (this.searchRangeMarker) {\n this.editor.session.removeMarker(this.searchRangeMarker);\n this.searchRangeMarker = null;\n }\n };\n SearchBox.prototype.$syncOptions = function (preventScroll) {\n dom.setCssClass(this.replaceOption, \"checked\", this.searchRange);\n dom.setCssClass(this.searchOption, \"checked\", this.searchOption.checked);\n this.replaceOption.textContent = this.replaceOption.checked ? \"-\" : \"+\";\n dom.setCssClass(this.regExpOption, \"checked\", this.regExpOption.checked);\n dom.setCssClass(this.wholeWordOption, \"checked\", this.wholeWordOption.checked);\n dom.setCssClass(this.caseSensitiveOption, \"checked\", this.caseSensitiveOption.checked);\n var readOnly = this.editor.getReadOnly();\n this.replaceOption.style.display = readOnly ? \"none\" : \"\";\n this.replaceBox.style.display = this.replaceOption.checked && !readOnly ? \"\" : \"none\";\n this.find(false, false, preventScroll);\n };\n SearchBox.prototype.highlight = function (re) {\n this.editor.session.highlight(re || this.editor.$search.$options.re);\n this.editor.renderer.updateBackMarkers();\n };\n SearchBox.prototype.find = function (skipCurrent, backwards, preventScroll) {\n var range = this.editor.find(this.searchInput.value, {\n skipCurrent: skipCurrent,\n backwards: backwards,\n wrap: true,\n regExp: this.regExpOption.checked,\n caseSensitive: this.caseSensitiveOption.checked,\n wholeWord: this.wholeWordOption.checked,\n preventScroll: preventScroll,\n range: this.searchRange\n });\n var noMatch = !range && this.searchInput.value;\n dom.setCssClass(this.searchBox, \"ace_nomatch\", noMatch);\n this.editor._emit(\"findSearchBox\", { match: !noMatch });\n this.highlight();\n this.updateCounter();\n };\n SearchBox.prototype.updateCounter = function () {\n var editor = this.editor;\n var regex = editor.$search.$options.re;\n var supportsUnicodeFlag = regex.unicode;\n var all = 0;\n var before = 0;\n if (regex) {\n var value = this.searchRange\n ? editor.session.getTextRange(this.searchRange)\n : editor.getValue();\n var offset = editor.session.doc.positionToIndex(editor.selection.anchor);\n if (this.searchRange)\n offset -= editor.session.doc.positionToIndex(this.searchRange.start);\n var last = regex.lastIndex = 0;\n var m;\n while ((m = regex.exec(value))) {\n all++;\n last = m.index;\n if (last <= offset)\n before++;\n if (all > MAX_COUNT)\n break;\n if (!m[0]) {\n regex.lastIndex = last += lang.skipEmptyMatch(value, last, supportsUnicodeFlag);\n if (last >= value.length)\n break;\n }\n }\n }\n this.searchCounter.textContent = nls(\"$0 of $1\", [before, (all > MAX_COUNT ? MAX_COUNT + \"+\" : all)]);\n };\n SearchBox.prototype.findNext = function () {\n this.find(true, false);\n };\n SearchBox.prototype.findPrev = function () {\n this.find(true, true);\n };\n SearchBox.prototype.findAll = function () {\n var range = this.editor.findAll(this.searchInput.value, {\n regExp: this.regExpOption.checked,\n caseSensitive: this.caseSensitiveOption.checked,\n wholeWord: this.wholeWordOption.checked\n });\n var noMatch = !range && this.searchInput.value;\n dom.setCssClass(this.searchBox, \"ace_nomatch\", noMatch);\n this.editor._emit(\"findSearchBox\", { match: !noMatch });\n this.highlight();\n this.hide();\n };\n SearchBox.prototype.replace = function () {\n if (!this.editor.getReadOnly())\n this.editor.replace(this.replaceInput.value);\n };\n SearchBox.prototype.replaceAndFindNext = function () {\n if (!this.editor.getReadOnly()) {\n this.editor.replace(this.replaceInput.value);\n this.findNext();\n }\n };\n SearchBox.prototype.replaceAll = function () {\n if (!this.editor.getReadOnly())\n this.editor.replaceAll(this.replaceInput.value);\n };\n SearchBox.prototype.hide = function () {\n this.active = false;\n this.setSearchRange(null);\n this.editor.off(\"changeSession\", this.setSession);\n this.element.style.display = \"none\";\n this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb);\n this.editor.focus();\n };\n SearchBox.prototype.show = function (value, isReplace) {\n this.active = true;\n this.editor.on(\"changeSession\", this.setSession);\n this.element.style.display = \"\";\n this.replaceOption.checked = isReplace;\n if (value)\n this.searchInput.value = value;\n this.searchInput.focus();\n this.searchInput.select();\n this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb);\n this.$syncOptions(true);\n };\n SearchBox.prototype.isFocused = function () {\n var el = document.activeElement;\n return el == this.searchInput || el == this.replaceInput;\n };\n return SearchBox;\n}());\nvar $searchBarKb = new HashHandler();\n$searchBarKb.bindKeys({\n \"Ctrl-f|Command-f\": function (sb) {\n var isReplace = sb.isReplace = !sb.isReplace;\n sb.replaceBox.style.display = isReplace ? \"\" : \"none\";\n sb.replaceOption.checked = false;\n sb.$syncOptions();\n sb.searchInput.focus();\n },\n \"Ctrl-H|Command-Option-F\": function (sb) {\n if (sb.editor.getReadOnly())\n return;\n sb.replaceOption.checked = true;\n sb.$syncOptions();\n sb.replaceInput.focus();\n },\n \"Ctrl-G|Command-G\": function (sb) {\n sb.findNext();\n },\n \"Ctrl-Shift-G|Command-Shift-G\": function (sb) {\n sb.findPrev();\n },\n \"esc\": function (sb) {\n setTimeout(function () { sb.hide(); });\n },\n \"Return\": function (sb) {\n if (sb.activeInput == sb.replaceInput)\n sb.replace();\n sb.findNext();\n },\n \"Shift-Return\": function (sb) {\n if (sb.activeInput == sb.replaceInput)\n sb.replace();\n sb.findPrev();\n },\n \"Alt-Return\": function (sb) {\n if (sb.activeInput == sb.replaceInput)\n sb.replaceAll();\n sb.findAll();\n },\n \"Tab\": function (sb) {\n (sb.activeInput == sb.replaceInput ? sb.searchInput : sb.replaceInput).focus();\n }\n});\n$searchBarKb.addCommands([{\n name: \"toggleRegexpMode\",\n bindKey: { win: \"Alt-R|Alt-/\", mac: \"Ctrl-Alt-R|Ctrl-Alt-/\" },\n exec: function (sb) {\n sb.regExpOption.checked = !sb.regExpOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"toggleCaseSensitive\",\n bindKey: { win: \"Alt-C|Alt-I\", mac: \"Ctrl-Alt-R|Ctrl-Alt-I\" },\n exec: function (sb) {\n sb.caseSensitiveOption.checked = !sb.caseSensitiveOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"toggleWholeWords\",\n bindKey: { win: \"Alt-B|Alt-W\", mac: \"Ctrl-Alt-B|Ctrl-Alt-W\" },\n exec: function (sb) {\n sb.wholeWordOption.checked = !sb.wholeWordOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"toggleReplace\",\n exec: function (sb) {\n sb.replaceOption.checked = !sb.replaceOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"searchInSelection\",\n exec: function (sb) {\n sb.searchOption.checked = !sb.searchRange;\n sb.setSearchRange(sb.searchOption.checked && sb.editor.getSelectionRange());\n sb.$syncOptions();\n }\n }]);\nvar $closeSearchBarKb = new HashHandler([{\n bindKey: \"Esc\",\n name: \"closeSearchBar\",\n exec: function (editor) {\n editor.searchBox.hide();\n }\n }]);\nSearchBox.prototype.$searchBarKb = $searchBarKb;\nSearchBox.prototype.$closeSearchBarKb = $closeSearchBarKb;\nexports.SearchBox = SearchBox;\nexports.Search = function (editor, isReplace) {\n var sb = editor.searchBox || new SearchBox(editor);\n sb.show(editor.session.getTextRange(), isReplace);\n};\n\n}); (function() {\n ace.require([\"ace/ext/searchbox\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar supportType = exports.supportType = \"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\";\nvar supportFunction = exports.supportFunction = \"rgb|rgba|url|attr|counter|counters\";\nvar supportConstant = exports.supportConstant = \"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|flex-end|flex-start|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom\";\nvar supportConstantColor = exports.supportConstantColor = \"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen\";\nvar supportConstantFonts = exports.supportConstantFonts = \"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\";\nvar numRe = exports.numRe = \"\\\\-?(?:(?:[0-9]+(?:\\\\.[0-9]+)?)|(?:\\\\.[0-9]+))\";\nvar pseudoElements = exports.pseudoElements = \"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\";\nvar pseudoClasses = exports.pseudoClasses = \"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\";\nvar CssHighlightRules = function () {\n var keywordMapper = this.createKeywordMapper({\n \"support.function\": supportFunction,\n \"support.constant\": supportConstant,\n \"support.type\": supportType,\n \"support.constant.color\": supportConstantColor,\n \"support.constant.fonts\": supportConstantFonts\n }, \"text\", true);\n this.$rules = {\n \"start\": [{\n include: [\"strings\", \"url\", \"comments\"]\n }, {\n token: \"paren.lparen\",\n regex: \"\\\\{\",\n next: \"ruleset\"\n }, {\n token: \"paren.rparen\",\n regex: \"\\\\}\"\n }, {\n token: \"string\",\n regex: \"@(?!viewport)\",\n next: \"media\"\n }, {\n token: \"keyword\",\n regex: \"#[a-z0-9-_]+\"\n }, {\n token: \"keyword\",\n regex: \"%\"\n }, {\n token: \"variable\",\n regex: \"\\\\.[a-z0-9-_]+\"\n }, {\n token: \"string\",\n regex: \":[a-z0-9-_]+\"\n }, {\n token: \"constant.numeric\",\n regex: numRe\n }, {\n token: \"constant\",\n regex: \"[a-z0-9-_]+\"\n }, {\n caseInsensitive: true\n }],\n \"media\": [{\n include: [\"strings\", \"url\", \"comments\"]\n }, {\n token: \"paren.lparen\",\n regex: \"\\\\{\",\n next: \"start\"\n }, {\n token: \"paren.rparen\",\n regex: \"\\\\}\",\n next: \"start\"\n }, {\n token: \"string\",\n regex: \";\",\n next: \"start\"\n }, {\n token: \"keyword\",\n regex: \"(?:media|supports|document|charset|import|namespace|media|supports|document\"\n + \"|page|font|keyframes|viewport|counter-style|font-feature-values\"\n + \"|swash|ornaments|annotation|stylistic|styleset|character-variant)\"\n }],\n \"comments\": [{\n token: \"comment\",\n regex: \"\\\\/\\\\*\",\n push: [{\n token: \"comment\",\n regex: \"\\\\*\\\\/\",\n next: \"pop\"\n }, {\n defaultToken: \"comment\"\n }]\n }],\n \"ruleset\": [{\n regex: \"-(webkit|ms|moz|o)-\",\n token: \"text\"\n }, {\n token: \"punctuation.operator\",\n regex: \"[:;]\"\n }, {\n token: \"paren.rparen\",\n regex: \"\\\\}\",\n next: \"start\"\n }, {\n include: [\"strings\", \"url\", \"comments\"]\n }, {\n token: [\"constant.numeric\", \"keyword\"],\n regex: \"(\" + numRe + \")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)\"\n }, {\n token: \"constant.numeric\",\n regex: numRe\n }, {\n token: \"constant.numeric\",\n regex: \"#[a-f0-9]{6}\"\n }, {\n token: \"constant.numeric\",\n regex: \"#[a-f0-9]{3}\"\n }, {\n token: [\"punctuation\", \"entity.other.attribute-name.pseudo-element.css\"],\n regex: pseudoElements\n }, {\n token: [\"punctuation\", \"entity.other.attribute-name.pseudo-class.css\"],\n regex: pseudoClasses\n }, {\n include: \"url\"\n }, {\n token: keywordMapper,\n regex: \"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"\n }, {\n caseInsensitive: true\n }],\n url: [{\n token: \"support.function\",\n regex: \"(?:url(:?-prefix)?|domain|regexp)\\\\(\",\n push: [{\n token: \"support.function\",\n regex: \"\\\\)\",\n next: \"pop\"\n }, {\n defaultToken: \"string\"\n }]\n }],\n strings: [{\n token: \"string.start\",\n regex: \"'\",\n push: [{\n token: \"string.end\",\n regex: \"'|$\",\n next: \"pop\"\n }, {\n include: \"escapes\"\n }, {\n token: \"constant.language.escape\",\n regex: /\\\\$/,\n consumeLineEnd: true\n }, {\n defaultToken: \"string\"\n }]\n }, {\n token: \"string.start\",\n regex: '\"',\n push: [{\n token: \"string.end\",\n regex: '\"|$',\n next: \"pop\"\n }, {\n include: \"escapes\"\n }, {\n token: \"constant.language.escape\",\n regex: /\\\\$/,\n consumeLineEnd: true\n }, {\n defaultToken: \"string\"\n }]\n }],\n escapes: [{\n token: \"constant.language.escape\",\n regex: /\\\\([a-fA-F\\d]{1,6}|[^a-fA-F\\d])/\n }]\n };\n this.normalizeRules();\n};\noop.inherits(CssHighlightRules, TextHighlightRules);\nexports.CssHighlightRules = CssHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar propertyMap = {\n \"background\": { \"#$0\": 1 },\n \"background-color\": { \"#$0\": 1, \"transparent\": 1, \"fixed\": 1 },\n \"background-image\": { \"url('/$0')\": 1 },\n \"background-repeat\": { \"repeat\": 1, \"repeat-x\": 1, \"repeat-y\": 1, \"no-repeat\": 1, \"inherit\": 1 },\n \"background-position\": { \"bottom\": 2, \"center\": 2, \"left\": 2, \"right\": 2, \"top\": 2, \"inherit\": 2 },\n \"background-attachment\": { \"scroll\": 1, \"fixed\": 1 },\n \"background-size\": { \"cover\": 1, \"contain\": 1 },\n \"background-clip\": { \"border-box\": 1, \"padding-box\": 1, \"content-box\": 1 },\n \"background-origin\": { \"border-box\": 1, \"padding-box\": 1, \"content-box\": 1 },\n \"border\": { \"solid $0\": 1, \"dashed $0\": 1, \"dotted $0\": 1, \"#$0\": 1 },\n \"border-color\": { \"#$0\": 1 },\n \"border-style\": { \"solid\": 2, \"dashed\": 2, \"dotted\": 2, \"double\": 2, \"groove\": 2, \"hidden\": 2, \"inherit\": 2, \"inset\": 2, \"none\": 2, \"outset\": 2, \"ridged\": 2 },\n \"border-collapse\": { \"collapse\": 1, \"separate\": 1 },\n \"bottom\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"clear\": { \"left\": 1, \"right\": 1, \"both\": 1, \"none\": 1 },\n \"color\": { \"#$0\": 1, \"rgb(#$00,0,0)\": 1 },\n \"cursor\": { \"default\": 1, \"pointer\": 1, \"move\": 1, \"text\": 1, \"wait\": 1, \"help\": 1, \"progress\": 1, \"n-resize\": 1, \"ne-resize\": 1, \"e-resize\": 1, \"se-resize\": 1, \"s-resize\": 1, \"sw-resize\": 1, \"w-resize\": 1, \"nw-resize\": 1 },\n \"display\": { \"none\": 1, \"block\": 1, \"inline\": 1, \"inline-block\": 1, \"table-cell\": 1 },\n \"empty-cells\": { \"show\": 1, \"hide\": 1 },\n \"float\": { \"left\": 1, \"right\": 1, \"none\": 1 },\n \"font-family\": { \"Arial\": 2, \"Comic Sans MS\": 2, \"Consolas\": 2, \"Courier New\": 2, \"Courier\": 2, \"Georgia\": 2, \"Monospace\": 2, \"Sans-Serif\": 2, \"Segoe UI\": 2, \"Tahoma\": 2, \"Times New Roman\": 2, \"Trebuchet MS\": 2, \"Verdana\": 1 },\n \"font-size\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"font-weight\": { \"bold\": 1, \"normal\": 1 },\n \"font-style\": { \"italic\": 1, \"normal\": 1 },\n \"font-variant\": { \"normal\": 1, \"small-caps\": 1 },\n \"height\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"left\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"letter-spacing\": { \"normal\": 1 },\n \"line-height\": { \"normal\": 1 },\n \"list-style-type\": { \"none\": 1, \"disc\": 1, \"circle\": 1, \"square\": 1, \"decimal\": 1, \"decimal-leading-zero\": 1, \"lower-roman\": 1, \"upper-roman\": 1, \"lower-greek\": 1, \"lower-latin\": 1, \"upper-latin\": 1, \"georgian\": 1, \"lower-alpha\": 1, \"upper-alpha\": 1 },\n \"margin\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-right\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-left\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-top\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-bottom\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"max-height\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"max-width\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"min-height\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"min-width\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"overflow\": { \"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1 },\n \"overflow-x\": { \"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1 },\n \"overflow-y\": { \"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1 },\n \"padding\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-top\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-right\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-bottom\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-left\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"page-break-after\": { \"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1 },\n \"page-break-before\": { \"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1 },\n \"position\": { \"absolute\": 1, \"relative\": 1, \"fixed\": 1, \"static\": 1 },\n \"right\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"table-layout\": { \"fixed\": 1, \"auto\": 1 },\n \"text-decoration\": { \"none\": 1, \"underline\": 1, \"line-through\": 1, \"blink\": 1 },\n \"text-align\": { \"left\": 1, \"right\": 1, \"center\": 1, \"justify\": 1 },\n \"text-transform\": { \"capitalize\": 1, \"uppercase\": 1, \"lowercase\": 1, \"none\": 1 },\n \"top\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"vertical-align\": { \"top\": 1, \"bottom\": 1 },\n \"visibility\": { \"hidden\": 1, \"visible\": 1 },\n \"white-space\": { \"nowrap\": 1, \"normal\": 1, \"pre\": 1, \"pre-line\": 1, \"pre-wrap\": 1 },\n \"width\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"word-spacing\": { \"normal\": 1 },\n \"filter\": { \"alpha(opacity=$0100)\": 1 },\n \"text-shadow\": { \"$02px 2px 2px #777\": 1 },\n \"text-overflow\": { \"ellipsis-word\": 1, \"clip\": 1, \"ellipsis\": 1 },\n \"-moz-border-radius\": 1,\n \"-moz-border-radius-topright\": 1,\n \"-moz-border-radius-bottomright\": 1,\n \"-moz-border-radius-topleft\": 1,\n \"-moz-border-radius-bottomleft\": 1,\n \"-webkit-border-radius\": 1,\n \"-webkit-border-top-right-radius\": 1,\n \"-webkit-border-top-left-radius\": 1,\n \"-webkit-border-bottom-right-radius\": 1,\n \"-webkit-border-bottom-left-radius\": 1,\n \"-moz-box-shadow\": 1,\n \"-webkit-box-shadow\": 1,\n \"transform\": { \"rotate($00deg)\": 1, \"skew($00deg)\": 1 },\n \"-moz-transform\": { \"rotate($00deg)\": 1, \"skew($00deg)\": 1 },\n \"-webkit-transform\": { \"rotate($00deg)\": 1, \"skew($00deg)\": 1 }\n};\nvar CssCompletions = function () {\n};\n(function () {\n this.completionsDefined = false;\n this.defineCompletions = function () {\n if (document) {\n var style = document.createElement('c').style;\n for (var i in style) {\n if (typeof style[i] !== 'string')\n continue;\n var name = i.replace(/[A-Z]/g, function (x) {\n return '-' + x.toLowerCase();\n });\n if (!propertyMap.hasOwnProperty(name))\n propertyMap[name] = 1;\n }\n }\n this.completionsDefined = true;\n };\n this.getCompletions = function (state, session, pos, prefix) {\n if (!this.completionsDefined) {\n this.defineCompletions();\n }\n if (state === 'ruleset' || session.$mode.$id == \"ace/mode/scss\") {\n var line = session.getLine(pos.row).substr(0, pos.column);\n var inParens = /\\([^)]*$/.test(line);\n if (inParens) {\n line = line.substr(line.lastIndexOf('(') + 1);\n }\n if (/:[^;]+$/.test(line)) {\n /([\\w\\-]+):[^:]*$/.test(line);\n return this.getPropertyValueCompletions(state, session, pos, prefix);\n }\n else {\n return this.getPropertyCompletions(state, session, pos, prefix, inParens);\n }\n }\n return [];\n };\n this.getPropertyCompletions = function (state, session, pos, prefix, skipSemicolon) {\n skipSemicolon = skipSemicolon || false;\n var properties = Object.keys(propertyMap);\n return properties.map(function (property) {\n return {\n caption: property,\n snippet: property + ': $0' + (skipSemicolon ? '' : ';'),\n meta: \"property\",\n score: 1000000\n };\n });\n };\n this.getPropertyValueCompletions = function (state, session, pos, prefix) {\n var line = session.getLine(pos.row).substr(0, pos.column);\n var property = (/([\\w\\-]+):[^:]*$/.exec(line) || {})[1];\n if (!property)\n return [];\n var values = [];\n if (property in propertyMap && typeof propertyMap[property] === \"object\") {\n values = Object.keys(propertyMap[property]);\n }\n return values.map(function (value) {\n return {\n caption: value,\n snippet: value,\n meta: \"property value\",\n score: 1000000\n };\n });\n };\n}).call(CssCompletions.prototype);\nexports.CssCompletions = CssCompletions;\n\n});\n\nace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar CstyleBehaviour = require(\"./cstyle\").CstyleBehaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar CssBehaviour = function () {\n this.inherit(CstyleBehaviour);\n this.add(\"colon\", \"insertion\", function (state, action, editor, session, text) {\n if (text === ':' && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (token && token.value.match(/\\s+/)) {\n token = iterator.stepBackward();\n }\n if (token && token.type === 'support.type') {\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === ':') {\n return {\n text: '',\n selection: [1, 1]\n };\n }\n if (/^(\\s+[^;]|\\s*$)/.test(line.substring(cursor.column))) {\n return {\n text: ':;',\n selection: [1, 1]\n };\n }\n }\n }\n });\n this.add(\"colon\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected === ':') {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (token && token.value.match(/\\s+/)) {\n token = iterator.stepBackward();\n }\n if (token && token.type === 'support.type') {\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.end.column, range.end.column + 1);\n if (rightChar === ';') {\n range.end.column++;\n return range;\n }\n }\n }\n });\n this.add(\"semicolon\", \"insertion\", function (state, action, editor, session, text) {\n if (text === ';' && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === ';') {\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n });\n this.add(\"!important\", \"insertion\", function (state, action, editor, session, text) {\n if (text === '!' && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (/^\\s*(;|}|$)/.test(line.substring(cursor.column))) {\n return {\n text: '!important',\n selection: [10, 10]\n };\n }\n }\n });\n};\noop.inherits(CssBehaviour, CstyleBehaviour);\nexports.CssBehaviour = CssBehaviour;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CssCompletions = require(\"./css_completions\").CssCompletions;\nvar CssBehaviour = require(\"./behaviour/css\").CssBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar Mode = function () {\n this.HighlightRules = CssHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CssBehaviour();\n this.$completer = new CssCompletions();\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.foldingRules = \"cStyle\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokens = this.getTokenizer().getLineTokens(line, state).tokens;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n var match = line.match(/^.*\\{\\s*$/);\n if (match) {\n indent += tab;\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.getCompletions = function (state, session, pos, prefix) {\n return this.$completer.getCompletions(state, session, pos, prefix);\n };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/css_worker\", \"Worker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"annotate\", function (e) {\n session.setAnnotations(e.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/css\";\n this.snippetFileId = \"ace/snippets/css\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/css\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar DocCommentHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: \"comment.doc.tag\",\n regex: \"@\\\\w+(?=\\\\s|$)\"\n }, DocCommentHighlightRules.getTagRule(), {\n defaultToken: \"comment.doc\",\n caseInsensitive: true\n }\n ]\n };\n};\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\nDocCommentHighlightRules.getTagRule = function (start) {\n return {\n token: \"comment.doc.tag.storage.type\",\n regex: \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n};\nDocCommentHighlightRules.getStartRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\/\\\\*(?=\\\\*)\",\n next: start\n };\n};\nDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\*\\\\/\",\n next: start\n };\n};\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/golang_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar GolangHighlightRules = function () {\n var keywords = (\"else|break|case|return|goto|if|const|select|\" +\n \"continue|struct|default|switch|for|range|\" +\n \"func|import|package|chan|defer|fallthrough|go|interface|map|range|\" +\n \"select|type|var\");\n var builtinTypes = (\"string|uint8|uint16|uint32|uint64|int8|int16|int32|int64|float32|\" +\n \"float64|complex64|complex128|byte|rune|uint|int|uintptr|bool|error\");\n var builtinFunctions = (\"new|close|cap|copy|panic|panicln|print|println|len|make|delete|real|recover|imag|append\");\n var builtinConstants = (\"nil|true|false|iota\");\n var keywordMapper = this.createKeywordMapper({\n \"keyword\": keywords,\n \"constant.language\": builtinConstants,\n \"support.function\": builtinFunctions,\n \"support.type\": builtinTypes\n }, \"\");\n var stringEscapeRe = \"\\\\\\\\(?:[0-7]{3}|x\\\\h{2}|u{4}|U\\\\h{6}|[abfnrtv'\\\"\\\\\\\\])\".replace(/\\\\h/g, \"[a-fA-F\\\\d]\");\n this.$rules = {\n \"start\": [\n {\n token: \"comment\",\n regex: \"\\\\/\\\\/.*$\"\n },\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n {\n token: \"comment.start\",\n regex: \"\\\\/\\\\*\",\n next: \"comment\"\n }, {\n token: \"string\",\n regex: /\"(?:[^\"\\\\]|\\\\.)*?\"/\n }, {\n token: \"string\",\n regex: '`',\n next: \"bqstring\"\n }, {\n token: \"constant.numeric\",\n regex: \"'(?:[^\\\\'\\uD800-\\uDBFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|\" + stringEscapeRe.replace('\"', '') + \")'\"\n }, {\n token: \"constant.numeric\",\n regex: \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token: [\"keyword\", \"text\", \"entity.name.function\"],\n regex: \"(func)(\\\\s+)([a-zA-Z_$][a-zA-Z0-9_$]*)\\\\b\"\n }, {\n token: function (val) {\n if (val[val.length - 1] == \"(\") {\n return [{\n type: keywordMapper(val.slice(0, -1)) || \"support.function\",\n value: val.slice(0, -1)\n }, {\n type: \"paren.lparen\",\n value: val.slice(-1)\n }];\n }\n return keywordMapper(val) || \"identifier\";\n },\n regex: \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\\\\(?\"\n }, {\n token: \"keyword.operator\",\n regex: \"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=\"\n }, {\n token: \"punctuation.operator\",\n regex: \"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"\n }, {\n token: \"paren.lparen\",\n regex: \"[[({]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\])}]\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }\n ],\n \"comment\": [\n {\n token: \"comment.end\",\n regex: \"\\\\*\\\\/\",\n next: \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ],\n \"bqstring\": [\n {\n token: \"string\",\n regex: '`',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }\n ]\n };\n this.embedRules(DocCommentHighlightRules, \"doc-\", [DocCommentHighlightRules.getEndRule(\"start\")]);\n};\noop.inherits(GolangHighlightRules, TextHighlightRules);\nexports.GolangHighlightRules = GolangHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/golang\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/golang_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar GolangHighlightRules = require(\"./golang_highlight_rules\").GolangHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar Mode = function () {\n this.HighlightRules = GolangHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.foldingRules = new CStyleFoldMode();\n this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n var endState = tokenizedLine.state;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n }; //end getNextLineIndent\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.$id = \"ace/mode/golang\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/golang\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/jsdoc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar JsDocCommentHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: [\"comment.doc.tag\", \"comment.doc.text\", \"lparen.doc\"],\n regex: \"(@(?:param|member|typedef|property|namespace|var|const|callback))(\\\\s*)({)\",\n push: [\n {\n token: \"lparen.doc\",\n regex: \"{\",\n push: [\n {\n include: \"doc-syntax\"\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }\n ]\n }, {\n token: [\"rparen.doc\", \"text.doc\", \"variable.parameter.doc\", \"lparen.doc\", \"variable.parameter.doc\", \"rparen.doc\"],\n regex: /(})(\\s*)(?:([\\w=:\\/\\.]+)|(?:(\\[)([\\w=:\\/\\.]+)(\\])))/,\n next: \"pop\"\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }, {\n include: \"doc-syntax\"\n }, {\n defaultToken: \"text.doc\"\n }\n ]\n }, {\n token: [\"comment.doc.tag\", \"text.doc\", \"lparen.doc\"],\n regex: \"(@(?:returns?|yields|type|this|suppress|public|protected|private|package|modifies|\"\n + \"implements|external|exception|throws|enum|define|extends))(\\\\s*)({)\",\n push: [\n {\n token: \"lparen.doc\",\n regex: \"{\",\n push: [\n {\n include: \"doc-syntax\"\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }\n ]\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }, {\n include: \"doc-syntax\"\n }, {\n defaultToken: \"text.doc\"\n }\n ]\n }, {\n token: [\"comment.doc.tag\", \"text.doc\", \"variable.parameter.doc\"],\n regex: \"(@(?:alias|memberof|instance|module|name|lends|namespace|external|this|template|\"\n + \"requires|param|implements|function|extends|typedef|mixes|constructor|var|\"\n + \"memberof\\\\!|event|listens|exports|class|constructs|interface|emits|fires|\"\n + \"throws|const|callback|borrows|augments))(\\\\s+)(\\\\w[\\\\w#\\.:\\/~\\\"\\\\-]*)?\"\n }, {\n token: [\"comment.doc.tag\", \"text.doc\", \"variable.parameter.doc\"],\n regex: \"(@method)(\\\\s+)(\\\\w[\\\\w\\.\\\\(\\\\)]*)\"\n }, {\n token: \"comment.doc.tag\",\n regex: \"@access\\\\s+(?:private|public|protected)\"\n }, {\n token: \"comment.doc.tag\",\n regex: \"@kind\\\\s+(?:class|constant|event|external|file|function|member|mixin|module|namespace|typedef)\"\n }, {\n token: \"comment.doc.tag\",\n regex: \"@\\\\w+(?=\\\\s|$)\"\n },\n JsDocCommentHighlightRules.getTagRule(),\n {\n defaultToken: \"comment.doc\",\n caseInsensitive: true\n }\n ],\n \"doc-syntax\": [{\n token: \"operator.doc\",\n regex: /[|:]/\n }, {\n token: \"paren.doc\",\n regex: /[\\[\\]]/\n }]\n };\n this.normalizeRules();\n};\noop.inherits(JsDocCommentHighlightRules, TextHighlightRules);\nJsDocCommentHighlightRules.getTagRule = function (start) {\n return {\n token: \"comment.doc.tag.storage.type\",\n regex: \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n};\nJsDocCommentHighlightRules.getStartRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\/\\\\*(?=\\\\*)\",\n next: start\n };\n};\nJsDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\*\\\\/\",\n next: start\n };\n};\nexports.JsDocCommentHighlightRules = JsDocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/jsdoc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./jsdoc_comment_highlight_rules\").JsDocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\nvar JavaScriptHighlightRules = function (options) {\n var keywordMapper = this.createKeywordMapper({\n \"variable.language\": \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Symbol|\" + // Constructors\n \"Namespace|QName|XML|XMLList|\" + // E4X\n \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\" +\n \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\" +\n \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\" + // Errors\n \"SyntaxError|TypeError|URIError|\" +\n \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n \"isNaN|parseFloat|parseInt|\" +\n \"JSON|Math|\" + // Other\n \"this|arguments|prototype|window|document\",\n \"keyword\": \"const|yield|import|get|set|async|await|\" +\n \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static|constructor\",\n \"storage.type\": \"const|let|var|function\",\n \"constant.language\": \"null|Infinity|NaN|undefined\",\n \"support.function\": \"alert\",\n \"constant.language.boolean\": \"true|false\"\n }, \"identifier\");\n var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n \"u[0-9a-fA-F]{4}|\" + // unicode\n \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n \"[0-2][0-7]{0,2}|\" + // oct\n \"3[0-7][0-7]?|\" + // oct\n \"[4-7][0-7]?|\" + //oct\n \".)\";\n this.$rules = {\n \"no_regex\": [\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n comments(\"no_regex\"),\n {\n token: \"string\",\n regex: \"'(?=.)\",\n next: \"qstring\"\n }, {\n token: \"string\",\n regex: '\"(?=.)',\n next: \"qqstring\"\n }, {\n token: \"constant.numeric\",\n regex: /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/\n }, {\n token: \"constant.numeric\",\n regex: /(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"support.function\",\n \"punctuation.operator\", \"entity.name.function\", \"text\", \"keyword.operator\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)\",\n next: \"function_arguments\"\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\",\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex: \"(function\\\\*?)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"entity.name.function\", \"text\", \"punctuation.operator\",\n \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex: \"(:)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: \"keyword\",\n regex: \"from(?=\\\\s*('|\\\"))\"\n }, {\n token: \"keyword\",\n regex: \"(?:\" + kwBeforeRe + \")\\\\b\",\n next: \"start\"\n }, {\n token: \"support.constant\",\n regex: /that\\b/\n }, {\n token: [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n regex: /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n }, {\n token: keywordMapper,\n regex: identifierRe\n }, {\n token: \"punctuation.operator\",\n regex: /[.](?![.])/,\n next: \"property\"\n }, {\n token: \"storage.type\",\n regex: /=>/,\n next: \"start\"\n }, {\n token: \"keyword.operator\",\n regex: /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n next: \"start\"\n }, {\n token: \"punctuation.operator\",\n regex: /[?:,;.]/,\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: /[\\[({]/,\n next: \"start\"\n }, {\n token: \"paren.rparen\",\n regex: /[\\])}]/\n }, {\n token: \"comment\",\n regex: /^#!.*$/\n }\n ],\n property: [{\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\",\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: \"punctuation.operator\",\n regex: /[.](?![.])/\n }, {\n token: \"support.function\",\n regex: /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|lter|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward|rEach)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n }, {\n token: \"support.function.dom\",\n regex: /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n }, {\n token: \"support.constant\",\n regex: /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n }, {\n token: \"identifier\",\n regex: identifierRe\n }, {\n regex: \"\",\n token: \"empty\",\n next: \"no_regex\"\n }\n ],\n \"start\": [\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n comments(\"start\"),\n {\n token: \"string.regexp\",\n regex: \"\\\\/\",\n next: \"regex\"\n }, {\n token: \"text\",\n regex: \"\\\\s+|^$\",\n next: \"start\"\n }, {\n token: \"empty\",\n regex: \"\",\n next: \"no_regex\"\n }\n ],\n \"regex\": [\n {\n token: \"regexp.keyword.operator\",\n regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n }, {\n token: \"string.regexp\",\n regex: \"/[sxngimy]*\",\n next: \"no_regex\"\n }, {\n token: \"invalid\",\n regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n }, {\n token: \"constant.language.escape\",\n regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n }, {\n token: \"constant.language.delimiter\",\n regex: /\\|/\n }, {\n token: \"constant.language.escape\",\n regex: /\\[\\^?/,\n next: \"regex_character_class\"\n }, {\n token: \"empty\",\n regex: \"$\",\n next: \"no_regex\"\n }, {\n defaultToken: \"string.regexp\"\n }\n ],\n \"regex_character_class\": [\n {\n token: \"regexp.charclass.keyword.operator\",\n regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n }, {\n token: \"constant.language.escape\",\n regex: \"]\",\n next: \"regex\"\n }, {\n token: \"constant.language.escape\",\n regex: \"-\"\n }, {\n token: \"empty\",\n regex: \"$\",\n next: \"no_regex\"\n }, {\n defaultToken: \"string.regexp.charachterclass\"\n }\n ],\n \"default_parameter\": [\n {\n token: \"string\",\n regex: \"'(?=.)\",\n push: [\n {\n token: \"string\",\n regex: \"'|$\",\n next: \"pop\"\n }, {\n include: \"qstring\"\n }\n ]\n }, {\n token: \"string\",\n regex: '\"(?=.)',\n push: [\n {\n token: \"string\",\n regex: '\"|$',\n next: \"pop\"\n }, {\n include: \"qqstring\"\n }\n ]\n }, {\n token: \"constant.language\",\n regex: \"null|Infinity|NaN|undefined\"\n }, {\n token: \"constant.numeric\",\n regex: /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/\n }, {\n token: \"constant.numeric\",\n regex: /(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/\n }, {\n token: \"punctuation.operator\",\n regex: \",\",\n next: \"function_arguments\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n token: \"punctuation.operator\",\n regex: \"$\"\n }, {\n token: \"empty\",\n regex: \"\",\n next: \"no_regex\"\n }\n ],\n \"function_arguments\": [\n comments(\"function_arguments\"),\n {\n token: \"variable.parameter\",\n regex: identifierRe\n }, {\n token: \"punctuation.operator\",\n regex: \",\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n token: \"punctuation.operator\",\n regex: \"$\"\n }, {\n token: \"empty\",\n regex: \"\",\n next: \"no_regex\"\n }\n ],\n \"qqstring\": [\n {\n token: \"constant.language.escape\",\n regex: escapedRe\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n consumeLineEnd: true\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"no_regex\"\n }, {\n defaultToken: \"string\"\n }\n ],\n \"qstring\": [\n {\n token: \"constant.language.escape\",\n regex: escapedRe\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n consumeLineEnd: true\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"no_regex\"\n }, {\n defaultToken: \"string\"\n }\n ]\n };\n if (!options || !options.noES6) {\n this.$rules.no_regex.unshift({\n regex: \"[{}]\", onMatch: function (val, state, stack) {\n this.next = val == \"{\" ? this.nextState : \"\";\n if (val == \"{\" && stack.length) {\n stack.unshift(\"start\", state);\n }\n else if (val == \"}\" && stack.length) {\n stack.shift();\n this.next = stack.shift();\n if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n return \"paren.quasi.end\";\n }\n return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n },\n nextState: \"start\"\n }, {\n token: \"string.quasi.start\",\n regex: /`/,\n push: [{\n token: \"constant.language.escape\",\n regex: escapedRe\n }, {\n token: \"paren.quasi.start\",\n regex: /\\${/,\n push: \"start\"\n }, {\n token: \"string.quasi.end\",\n regex: /`/,\n next: \"pop\"\n }, {\n defaultToken: \"string.quasi\"\n }]\n }, {\n token: [\"variable.parameter\", \"text\"],\n regex: \"(\" + identifierRe + \")(\\\\s*)(?=\\\\=>)\"\n }, {\n token: \"paren.lparen\",\n regex: \"(\\\\()(?=.+\\\\s*=>)\",\n next: \"function_arguments\"\n }, {\n token: \"variable.language\",\n regex: \"(?:(?:(?:Weak)?(?:Set|Map))|Promise)\\\\b\"\n });\n this.$rules[\"function_arguments\"].unshift({\n token: \"keyword.operator\",\n regex: \"=\",\n next: \"default_parameter\"\n }, {\n token: \"keyword.operator\",\n regex: \"\\\\.{3}\"\n });\n this.$rules[\"property\"].unshift({\n token: \"support.function\",\n regex: \"(findIndex|repeat|startsWith|endsWith|includes|isSafeInteger|trunc|cbrt|log2|log10|sign|then|catch|\"\n + \"finally|resolve|reject|race|any|all|allSettled|keys|entries|isInteger)\\\\b(?=\\\\()\"\n }, {\n token: \"constant.language\",\n regex: \"(?:MAX_SAFE_INTEGER|MIN_SAFE_INTEGER|EPSILON)\\\\b\"\n });\n if (!options || options.jsx != false)\n JSX.call(this);\n }\n this.embedRules(DocCommentHighlightRules, \"doc-\", [DocCommentHighlightRules.getEndRule(\"no_regex\")]);\n this.normalizeRules();\n};\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\nfunction JSX() {\n var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n var jsxTag = {\n onMatch: function (val, state, stack) {\n var offset = val.charAt(1) == \"/\" ? 2 : 1;\n if (offset == 1) {\n if (state != this.nextState)\n stack.unshift(this.next, this.nextState, 0);\n else\n stack.unshift(this.next);\n stack[2]++;\n }\n else if (offset == 2) {\n if (state == this.nextState) {\n stack[1]--;\n if (!stack[1] || stack[1] < 0) {\n stack.shift();\n stack.shift();\n }\n }\n }\n return [{\n type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n value: val.slice(0, offset)\n }, {\n type: \"meta.tag.tag-name.xml\",\n value: val.substr(offset)\n }];\n },\n regex: \"\",\n onMatch: function (value, currentState, stack) {\n if (currentState == stack[0])\n stack.shift();\n if (value.length == 2) {\n if (stack[0] == this.nextState)\n stack[1]--;\n if (!stack[1] || stack[1] < 0) {\n stack.splice(0, 2);\n }\n }\n this.next = stack[0] || \"start\";\n return [{ type: this.token, value: value }];\n },\n nextState: \"jsx\"\n },\n jsxJsRule,\n comments(\"jsxAttributes\"),\n {\n token: \"entity.other.attribute-name.xml\",\n regex: tagRegex\n }, {\n token: \"keyword.operator.attribute-equals.xml\",\n regex: \"=\"\n }, {\n token: \"text.tag-whitespace.xml\",\n regex: \"\\\\s+\"\n }, {\n token: \"string.attribute-value.xml\",\n regex: \"'\",\n stateName: \"jsx_attr_q\",\n push: [\n { token: \"string.attribute-value.xml\", regex: \"'\", next: \"pop\" },\n { include: \"reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n }, {\n token: \"string.attribute-value.xml\",\n regex: '\"',\n stateName: \"jsx_attr_qq\",\n push: [\n { token: \"string.attribute-value.xml\", regex: '\"', next: \"pop\" },\n { include: \"reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n },\n jsxTag\n ];\n this.$rules.reference = [{\n token: \"constant.language.escape.reference.xml\",\n regex: \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }];\n}\nfunction comments(next) {\n return [\n {\n token: \"comment\",\n regex: /\\/\\*/,\n next: [\n DocCommentHighlightRules.getTagRule(),\n { token: \"comment\", regex: \"\\\\*\\\\/\", next: next || \"pop\" },\n { defaultToken: \"comment\", caseInsensitive: true }\n ]\n }, {\n token: \"comment\",\n regex: \"\\\\/\\\\/\",\n next: [\n DocCommentHighlightRules.getTagRule(),\n { token: \"comment\", regex: \"$|^\", next: next || \"pop\" },\n { defaultToken: \"comment\", caseInsensitive: true }\n ]\n }\n ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar Mode = function () {\n this.HighlightRules = JavaScriptHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CstyleBehaviour();\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.$quotes = { '\"': '\"', \"'\": \"'\", \"`\": \"`\" };\n this.$pairQuotesAfter = {\n \"`\": /\\w/\n };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n var endState = tokenizedLine.state;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\" || state == \"no_regex\") {\n var match = line.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n else if (state == \"doc-start\") {\n if (endState == \"start\" || endState == \"no_regex\") {\n return \"\";\n }\n var match = line.match(/^\\s*(\\/?)\\*/);\n if (match) {\n if (match[1]) {\n indent += \" \";\n }\n indent += \"* \";\n }\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/javascript_worker\", \"JavaScriptWorker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"annotate\", function (results) {\n session.setAnnotations(results.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/javascript\";\n this.snippetFileId = \"ace/snippets/javascript\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/javascript\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/json_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar JsonHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: \"variable\",\n regex: '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]\\\\s*(?=:)'\n }, {\n token: \"string\",\n regex: '\"',\n next: \"string\"\n }, {\n token: \"constant.numeric\",\n regex: \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token: \"constant.language.boolean\",\n regex: \"(?:true|false)\\\\b\"\n }, {\n token: \"text\",\n regex: \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n }, {\n token: \"comment\",\n regex: \"\\\\/\\\\/.*$\"\n }, {\n token: \"comment.start\",\n regex: \"\\\\/\\\\*\",\n next: \"comment\"\n }, {\n token: \"paren.lparen\",\n regex: \"[[({]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\])}]\"\n }, {\n token: \"punctuation.operator\",\n regex: /[,]/\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }\n ],\n \"string\": [\n {\n token: \"constant.language.escape\",\n regex: /\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[\"\\\\\\/bfnrt])/\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }\n ],\n \"comment\": [\n {\n token: \"comment.end\",\n regex: \"\\\\*\\\\/\",\n next: \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ]\n };\n};\noop.inherits(JsonHighlightRules, TextHighlightRules);\nexports.JsonHighlightRules = JsonHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/json\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/json_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\",\"ace/worker/worker_client\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar HighlightRules = require(\"./json_highlight_rules\").JsonHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar Mode = function () {\n this.HighlightRules = HighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = this.$defaultBehaviour;\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/json_worker\", \"JsonWorker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"annotate\", function (e) {\n session.setAnnotations(e.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/json\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/json\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar DocCommentHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: \"comment.doc.tag\",\n regex: \"@\\\\w+(?=\\\\s|$)\"\n }, DocCommentHighlightRules.getTagRule(), {\n defaultToken: \"comment.doc\",\n caseInsensitive: true\n }\n ]\n };\n};\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\nDocCommentHighlightRules.getTagRule = function (start) {\n return {\n token: \"comment.doc.tag.storage.type\",\n regex: \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n};\nDocCommentHighlightRules.getStartRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\/\\\\*(?=\\\\*)\",\n next: start\n };\n};\nDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\*\\\\/\",\n next: start\n };\n};\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/jsx_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar JsxHighlightRules = function () {\n var keywords = lang.arrayToMap((\"break|do|instanceof|typeof|case|else|new|var|catch|finally|return|void|continue|for|switch|default|while|function|this|\" +\n \"if|throw|\" +\n \"delete|in|try|\" +\n \"class|extends|super|import|from|into|implements|interface|static|mixin|override|abstract|final|\" +\n \"number|int|string|boolean|variant|\" +\n \"log|assert\").split(\"|\"));\n var buildinConstants = lang.arrayToMap((\"null|true|false|NaN|Infinity|__FILE__|__LINE__|undefined\").split(\"|\"));\n var reserved = lang.arrayToMap((\"debugger|with|\" +\n \"const|export|\" +\n \"let|private|public|yield|protected|\" +\n \"extern|native|as|operator|__fake__|__readonly__\").split(\"|\"));\n var identifierRe = \"[a-zA-Z_][a-zA-Z0-9_]*\\\\b\";\n this.$rules = {\n \"start\": [\n {\n token: \"comment\",\n regex: \"\\\\/\\\\/.*$\"\n },\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n {\n token: \"comment\",\n regex: \"\\\\/\\\\*\",\n next: \"comment\"\n }, {\n token: \"string.regexp\",\n regex: \"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"\n }, {\n token: \"string\",\n regex: '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n }, {\n token: \"string\",\n regex: \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n }, {\n token: \"constant.numeric\",\n regex: \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token: \"constant.language.boolean\",\n regex: \"(?:true|false)\\\\b\"\n }, {\n token: [\n \"storage.type\",\n \"text\",\n \"entity.name.function\"\n ],\n regex: \"(function)(\\\\s+)(\" + identifierRe + \")\"\n }, {\n token: function (value) {\n if (value == \"this\")\n return \"variable.language\";\n else if (value == \"function\")\n return \"storage.type\";\n else if (keywords.hasOwnProperty(value) || reserved.hasOwnProperty(value))\n return \"keyword\";\n else if (buildinConstants.hasOwnProperty(value))\n return \"constant.language\";\n else if (/^_?[A-Z][a-zA-Z0-9_]*$/.test(value))\n return \"language.support.class\";\n else\n return \"identifier\";\n },\n regex: identifierRe\n }, {\n token: \"keyword.operator\",\n regex: \"!|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"\n }, {\n token: \"punctuation.operator\",\n regex: \"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"\n }, {\n token: \"paren.lparen\",\n regex: \"[[({<]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\])}>]\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }\n ],\n \"comment\": [\n {\n token: \"comment\",\n regex: \"\\\\*\\\\/\",\n next: \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ]\n };\n this.embedRules(DocCommentHighlightRules, \"doc-\", [DocCommentHighlightRules.getEndRule(\"start\")]);\n};\noop.inherits(JsxHighlightRules, TextHighlightRules);\nexports.JsxHighlightRules = JsxHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/jsx\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/jsx_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JsxHighlightRules = require(\"./jsx_highlight_rules\").JsxHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nfunction Mode() {\n this.HighlightRules = JsxHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = this.$defaultBehaviour;\n this.foldingRules = new CStyleFoldMode();\n}\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.$id = \"ace/mode/jsx\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/jsx\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/python_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){/*\n * TODO: python delimiters\n */\n\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar PythonHighlightRules = function () {\n var keywords = (\"and|as|assert|break|class|continue|def|del|elif|else|except|exec|\" +\n \"finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|\" +\n \"raise|return|try|while|with|yield|async|await|nonlocal\");\n var builtinConstants = (\"True|False|None|NotImplemented|Ellipsis|__debug__\");\n var builtinFunctions = (\"abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|\" +\n \"eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|\" +\n \"binfile|bin|iter|property|tuple|bool|filter|len|range|type|bytearray|\" +\n \"float|list|raw_input|unichr|callable|format|locals|reduce|unicode|\" +\n \"chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|\" +\n \"cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|\" +\n \"__import__|complex|hash|min|apply|delattr|help|next|setattr|set|\" +\n \"buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern|\" +\n \"ascii|breakpoint|bytes\");\n var keywordMapper = this.createKeywordMapper({\n \"invalid.deprecated\": \"debugger\",\n \"support.function\": builtinFunctions,\n \"variable.language\": \"self|cls\",\n \"constant.language\": builtinConstants,\n \"keyword\": keywords\n }, \"identifier\");\n var strPre = \"[uU]?\";\n var strRawPre = \"[rR]\";\n var strFormatPre = \"[fF]\";\n var strRawFormatPre = \"(?:[rR][fF]|[fF][rR])\";\n var decimalInteger = \"(?:(?:[1-9]\\\\d*)|(?:0))\";\n var octInteger = \"(?:0[oO]?[0-7]+)\";\n var hexInteger = \"(?:0[xX][\\\\dA-Fa-f]+)\";\n var binInteger = \"(?:0[bB][01]+)\";\n var integer = \"(?:\" + decimalInteger + \"|\" + octInteger + \"|\" + hexInteger + \"|\" + binInteger + \")\";\n var exponent = \"(?:[eE][+-]?\\\\d+)\";\n var fraction = \"(?:\\\\.\\\\d+)\";\n var intPart = \"(?:\\\\d+)\";\n var pointFloat = \"(?:(?:\" + intPart + \"?\" + fraction + \")|(?:\" + intPart + \"\\\\.))\";\n var exponentFloat = \"(?:(?:\" + pointFloat + \"|\" + intPart + \")\" + exponent + \")\";\n var floatNumber = \"(?:\" + exponentFloat + \"|\" + pointFloat + \")\";\n var stringEscape = \"\\\\\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\\\\\abfnrtv'\\\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})\";\n this.$rules = {\n \"start\": [{\n token: \"comment\",\n regex: \"#.*$\"\n }, {\n token: \"string\",\n regex: strPre + '\"{3}',\n next: \"qqstring3\"\n }, {\n token: \"string\",\n regex: strPre + '\"(?=.)',\n next: \"qqstring\"\n }, {\n token: \"string\",\n regex: strPre + \"'{3}\",\n next: \"qstring3\"\n }, {\n token: \"string\",\n regex: strPre + \"'(?=.)\",\n next: \"qstring\"\n }, {\n token: \"string\",\n regex: strRawPre + '\"{3}',\n next: \"rawqqstring3\"\n }, {\n token: \"string\",\n regex: strRawPre + '\"(?=.)',\n next: \"rawqqstring\"\n }, {\n token: \"string\",\n regex: strRawPre + \"'{3}\",\n next: \"rawqstring3\"\n }, {\n token: \"string\",\n regex: strRawPre + \"'(?=.)\",\n next: \"rawqstring\"\n }, {\n token: \"string\",\n regex: strFormatPre + '\"{3}',\n next: \"fqqstring3\"\n }, {\n token: \"string\",\n regex: strFormatPre + '\"(?=.)',\n next: \"fqqstring\"\n }, {\n token: \"string\",\n regex: strFormatPre + \"'{3}\",\n next: \"fqstring3\"\n }, {\n token: \"string\",\n regex: strFormatPre + \"'(?=.)\",\n next: \"fqstring\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + '\"{3}',\n next: \"rfqqstring3\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + '\"(?=.)',\n next: \"rfqqstring\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + \"'{3}\",\n next: \"rfqstring3\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + \"'(?=.)\",\n next: \"rfqstring\"\n }, {\n token: \"keyword.operator\",\n regex: \"\\\\+|\\\\-|\\\\*|\\\\*\\\\*|\\\\/|\\\\/\\\\/|%|@|<<|>>|&|\\\\||\\\\^|~|<|>|<=|=>|==|!=|<>|=\"\n }, {\n token: \"punctuation\",\n regex: \",|:|;|\\\\->|\\\\+=|\\\\-=|\\\\*=|\\\\/=|\\\\/\\\\/=|%=|@=|&=|\\\\|=|^=|>>=|<<=|\\\\*\\\\*=\"\n }, {\n token: \"paren.lparen\",\n regex: \"[\\\\[\\\\(\\\\{]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\]\\\\)\\\\}]\"\n }, {\n token: [\"keyword\", \"text\", \"entity.name.function\"],\n regex: \"(def|class)(\\\\s+)([\\\\u00BF-\\\\u1FFF\\\\u2C00-\\\\uD7FF\\\\w]+)\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n include: \"constants\"\n }],\n \"qqstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"qstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"qqstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"qqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"qstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"qstring\"\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqqstring3\": [{\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqstring3\": [{\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqqstring\": [{\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"rawqqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqstring\": [{\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"rawqstring\"\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqqstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqqstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"fqqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqqstring3\": [{\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqstring3\": [{\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqqstring\": [{\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"rfqqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqstring\": [{\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqstringParRules\": [{\n token: \"paren.lparen\",\n regex: \"[\\\\[\\\\(]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\]\\\\)]\"\n }, {\n token: \"string\",\n regex: \"\\\\s+\"\n }, {\n token: \"string\",\n regex: \"'[^']*'\"\n }, {\n token: \"string\",\n regex: '\"[^\"]*\"'\n }, {\n token: \"function.support\",\n regex: \"(!s|!r|!a)\"\n }, {\n include: \"constants\"\n }, {\n token: 'paren.rparen',\n regex: \"}\",\n next: 'pop'\n }, {\n token: 'paren.lparen',\n regex: \"{\",\n push: \"fqstringParRules\"\n }],\n \"constants\": [{\n token: \"constant.numeric\",\n regex: \"(?:\" + floatNumber + \"|\\\\d+)[jJ]\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: floatNumber\n }, {\n token: \"constant.numeric\",\n regex: integer + \"[lL]\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: integer + \"\\\\b\"\n }, {\n token: [\"punctuation\", \"function.support\"],\n regex: \"(\\\\.)([a-zA-Z_]+)\\\\b\"\n }, {\n token: keywordMapper,\n regex: \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n }]\n };\n this.normalizeRules();\n};\noop.inherits(PythonHighlightRules, TextHighlightRules);\nexports.PythonHighlightRules = PythonHighlightRules;\n\n});\n\nace.define(\"ace/mode/folding/pythonic\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (markers) {\n this.foldingStartMarker = new RegExp(\"([\\\\[{])(?:\\\\s*)$|(\" + markers + \")(?:\\\\s*)(?:#.*)?$\");\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.getFoldWidgetRange = function (session, foldStyle, row) {\n var line = session.getLine(row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, match.index);\n if (match[2])\n return this.indentationBlock(session, row, match.index + match[2].length);\n return this.indentationBlock(session, row);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/python\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/python_highlight_rules\",\"ace/mode/folding/pythonic\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar PythonHighlightRules = require(\"./python_highlight_rules\").PythonHighlightRules;\nvar PythonFoldMode = require(\"./folding/pythonic\").FoldMode;\nvar Range = require(\"../range\").Range;\nvar Mode = function () {\n this.HighlightRules = PythonHighlightRules;\n this.foldingRules = new PythonFoldMode(\"\\\\:\");\n this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"#\";\n this.$pairQuotesAfter = {\n \"'\": /[ruf]/i,\n '\"': /[ruf]/i\n };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[:]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n };\n var outdents = {\n \"pass\": 1,\n \"return\": 1,\n \"raise\": 1,\n \"break\": 1,\n \"continue\": 1\n };\n this.checkOutdent = function (state, line, input) {\n if (input !== \"\\r\\n\" && input !== \"\\r\" && input !== \"\\n\")\n return false;\n var tokens = this.getTokenizer().getLineTokens(line.trim(), state).tokens;\n if (!tokens)\n return false;\n do {\n var last = tokens.pop();\n } while (last && (last.type == \"comment\" || (last.type == \"text\" && last.value.match(/^\\s+$/))));\n if (!last)\n return false;\n return (last.type == \"keyword\" && outdents[last.value]);\n };\n this.autoOutdent = function (state, doc, row) {\n row += 1;\n var indent = this.$getIndent(doc.getLine(row));\n var tab = doc.getTabString();\n if (indent.slice(-tab.length) == tab)\n doc.remove(new Range(row, indent.length - tab.length, row, indent.length));\n };\n this.$id = \"ace/mode/python\";\n this.snippetFileId = \"ace/snippets/python\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/python\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar XmlHighlightRules = function (normalize) {\n var tagRegex = \"[_:a-zA-Z\\xc0-\\uffff][-_:.a-zA-Z0-9\\xc0-\\uffff]*\";\n this.$rules = {\n start: [\n { token: \"string.cdata.xml\", regex: \"<\\\\!\\\\[CDATA\\\\[\", next: \"cdata\" },\n {\n token: [\"punctuation.instruction.xml\", \"keyword.instruction.xml\"],\n regex: \"(<\\\\?)(\" + tagRegex + \")\", next: \"processing_instruction\"\n },\n { token: \"comment.start.xml\", regex: \"<\\\\!--\", next: \"comment\" },\n {\n token: [\"xml-pe.doctype.xml\", \"xml-pe.doctype.xml\"],\n regex: \"(<\\\\!)(DOCTYPE)(?=[\\\\s])\", next: \"doctype\", caseInsensitive: true\n },\n { include: \"tag\" },\n { token: \"text.end-tag-open.xml\", regex: \"\",\n next: \"start\"\n }],\n doctype: [\n { include: \"whitespace\" },\n { include: \"string\" },\n { token: \"xml-pe.doctype.xml\", regex: \">\", next: \"start\" },\n { token: \"xml-pe.xml\", regex: \"[-_a-zA-Z0-9:]+\" },\n { token: \"punctuation.int-subset\", regex: \"\\\\[\", push: \"int_subset\" }\n ],\n int_subset: [{\n token: \"text.xml\",\n regex: \"\\\\s+\"\n }, {\n token: \"punctuation.int-subset.xml\",\n regex: \"]\",\n next: \"pop\"\n }, {\n token: [\"punctuation.markup-decl.xml\", \"keyword.markup-decl.xml\"],\n regex: \"(<\\\\!)(\" + tagRegex + \")\",\n push: [{\n token: \"text\",\n regex: \"\\\\s+\"\n },\n {\n token: \"punctuation.markup-decl.xml\",\n regex: \">\",\n next: \"pop\"\n },\n { include: \"string\" }]\n }],\n cdata: [\n { token: \"string.cdata.xml\", regex: \"\\\\]\\\\]>\", next: \"start\" },\n { token: \"text.xml\", regex: \"\\\\s+\" },\n { token: \"text.xml\", regex: \"(?:[^\\\\]]|\\\\](?!\\\\]>))+\" }\n ],\n comment: [\n { token: \"comment.end.xml\", regex: \"-->\", next: \"start\" },\n { defaultToken: \"comment.xml\" }\n ],\n reference: [{\n token: \"constant.language.escape.reference.xml\",\n regex: \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }],\n attr_reference: [{\n token: \"constant.language.escape.reference.attribute-value.xml\",\n regex: \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }],\n tag: [{\n token: [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.tag-name.xml\"],\n regex: \"(?:(<)|(\", next: \"start\" }\n ]\n }],\n tag_whitespace: [\n { token: \"text.tag-whitespace.xml\", regex: \"\\\\s+\" }\n ],\n whitespace: [\n { token: \"text.whitespace.xml\", regex: \"\\\\s+\" }\n ],\n string: [{\n token: \"string.xml\",\n regex: \"'\",\n push: [\n { token: \"string.xml\", regex: \"'\", next: \"pop\" },\n { defaultToken: \"string.xml\" }\n ]\n }, {\n token: \"string.xml\",\n regex: '\"',\n push: [\n { token: \"string.xml\", regex: '\"', next: \"pop\" },\n { defaultToken: \"string.xml\" }\n ]\n }],\n attributes: [{\n token: \"entity.other.attribute-name.xml\",\n regex: tagRegex\n }, {\n token: \"keyword.operator.attribute-equals.xml\",\n regex: \"=\"\n }, {\n include: \"tag_whitespace\"\n }, {\n include: \"attribute_value\"\n }],\n attribute_value: [{\n token: \"string.attribute-value.xml\",\n regex: \"'\",\n push: [\n { token: \"string.attribute-value.xml\", regex: \"'\", next: \"pop\" },\n { include: \"attr_reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n }, {\n token: \"string.attribute-value.xml\",\n regex: '\"',\n push: [\n { token: \"string.attribute-value.xml\", regex: '\"', next: \"pop\" },\n { include: \"attr_reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n }]\n };\n if (this.constructor === XmlHighlightRules)\n this.normalizeRules();\n};\n(function () {\n this.embedTagRules = function (HighlightRules, prefix, tag) {\n this.$rules.tag.unshift({\n token: [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n regex: \"(<)(\" + tag + \"(?=\\\\s|>|$))\",\n next: [\n { include: \"attributes\" },\n { token: \"meta.tag.punctuation.tag-close.xml\", regex: \"/?>\", next: prefix + \"start\" }\n ]\n });\n this.$rules[tag + \"-end\"] = [\n { include: \"attributes\" },\n { token: \"meta.tag.punctuation.tag-close.xml\", regex: \"/?>\", next: \"start\",\n onMatch: function (value, currentState, stack) {\n stack.splice(0);\n return this.token;\n } }\n ];\n this.embedRules(HighlightRules, prefix, [{\n token: [\"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n regex: \"(|$))\",\n next: tag + \"-end\"\n }, {\n token: \"string.cdata.xml\",\n regex: \"<\\\\!\\\\[CDATA\\\\[\"\n }, {\n token: \"string.cdata.xml\",\n regex: \"\\\\]\\\\]>\"\n }]);\n };\n}).call(TextHighlightRules.prototype);\noop.inherits(XmlHighlightRules, TextHighlightRules);\nexports.XmlHighlightRules = XmlHighlightRules;\n\n});\n\nace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\nfunction is(token, type) {\n return token && token.type.lastIndexOf(type + \".xml\") > -1;\n}\nvar XmlBehaviour = function () {\n this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '\"' || text == \"'\") {\n var quote = text;\n var selected = session.doc.getTextRange(editor.getSelectionRange());\n if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n return {\n text: quote + selected + quote,\n selection: false\n };\n }\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (rightChar == quote && (is(token, \"attribute-value\") || is(token, \"string\"))) {\n return {\n text: \"\",\n selection: [1, 1]\n };\n }\n if (!token)\n token = iterator.stepBackward();\n if (!token)\n return;\n while (is(token, \"tag-whitespace\") || is(token, \"whitespace\")) {\n token = iterator.stepBackward();\n }\n var rightSpace = !rightChar || rightChar.match(/\\s/);\n if (is(token, \"attribute-equals\") && (rightSpace || rightChar == '>') || (is(token, \"decl-attribute-equals\") && (rightSpace || rightChar == '?'))) {\n return {\n text: quote + quote,\n selection: [1, 1]\n };\n }\n }\n });\n this.add(\"string_dquotes\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n this.add(\"autoclosing\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '>') {\n var position = editor.getSelectionRange().start;\n var iterator = new TokenIterator(session, position.row, position.column);\n var token = iterator.getCurrentToken() || iterator.stepBackward();\n if (!token || !(is(token, \"tag-name\") || is(token, \"tag-whitespace\") || is(token, \"attribute-name\") || is(token, \"attribute-equals\") || is(token, \"attribute-value\")))\n return;\n if (is(token, \"reference.attribute-value\"))\n return;\n if (is(token, \"attribute-value\")) {\n var tokenEndColumn = iterator.getCurrentTokenColumn() + token.value.length;\n if (position.column < tokenEndColumn)\n return;\n if (position.column == tokenEndColumn) {\n var nextToken = iterator.stepForward();\n if (nextToken && is(nextToken, \"attribute-value\"))\n return;\n iterator.stepBackward();\n }\n }\n if (/^\\s*>/.test(session.getLine(position.row).slice(position.column)))\n return;\n while (!is(token, \"tag-name\")) {\n token = iterator.stepBackward();\n if (token.value == \"<\") {\n token = iterator.stepForward();\n break;\n }\n }\n var tokenRow = iterator.getCurrentTokenRow();\n var tokenColumn = iterator.getCurrentTokenColumn();\n if (is(iterator.stepBackward(), \"end-tag-open\"))\n return;\n var element = token.value;\n if (tokenRow == position.row)\n element = element.substring(0, position.column - tokenColumn);\n if (this.voidElements.hasOwnProperty(element.toLowerCase()))\n return;\n return {\n text: \">\" + \"\",\n selection: [1, 1]\n };\n }\n });\n this.add(\"autoindent\", \"insertion\", function (state, action, editor, session, text) {\n if (text == \"\\n\") {\n var cursor = editor.getCursorPosition();\n var line = session.getLine(cursor.row);\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (token && token.type.indexOf(\"tag-close\") !== -1) {\n if (token.value == \"/>\")\n return;\n while (token && token.type.indexOf(\"tag-name\") === -1) {\n token = iterator.stepBackward();\n }\n if (!token) {\n return;\n }\n var tag = token.value;\n var row = iterator.getCurrentTokenRow();\n token = iterator.stepBackward();\n if (!token || token.type.indexOf(\"end-tag\") !== -1) {\n return;\n }\n if (this.voidElements && !this.voidElements[tag]) {\n var nextToken = session.getTokenAt(cursor.row, cursor.column + 1);\n var line = session.getLine(row);\n var nextIndent = this.$getIndent(line);\n var indent = nextIndent + session.getTabString();\n if (nextToken && nextToken.value === \" -1;\n}\n(function () {\n this.getFoldWidget = function (session, foldStyle, row) {\n var tag = this._getFirstTagInLine(session, row);\n if (!tag)\n return this.getCommentFoldWidget(session, row);\n if (tag.closing || (!tag.tagName && tag.selfClosing))\n return foldStyle === \"markbeginend\" ? \"end\" : \"\";\n if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase()))\n return \"\";\n if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column))\n return \"\";\n return \"start\";\n };\n this.getCommentFoldWidget = function (session, row) {\n if (/comment/.test(session.getState(row)) && /';\n break;\n }\n }\n return tag;\n }\n else if (is(token, \"tag-close\")) {\n tag.selfClosing = token.value == '/>';\n return tag;\n }\n tag.start.column += token.value.length;\n }\n return null;\n };\n this._findEndTagInLine = function (session, row, tagName, startColumn) {\n var tokens = session.getTokens(row);\n var column = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n column += token.value.length;\n if (column < startColumn)\n continue;\n if (is(token, \"end-tag-open\")) {\n token = tokens[i + 1];\n if (token && token.value == tagName)\n return true;\n }\n }\n return false;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row) {\n var tags = session.getMatchingTags({ row: row, column: 0 });\n if (tags) {\n return new Range(tags.openTag.end.row, tags.openTag.end.column, tags.closeTag.start.row, tags.closeTag.start.column);\n }\n else {\n return this.getCommentFoldWidget(session, row)\n && session.getCommentFoldRange(row, session.getLine(row).length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/xml_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/xml\",\"ace/worker/worker_client\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextMode = require(\"./text\").Mode;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\nvar XmlBehaviour = require(\"./behaviour/xml\").XmlBehaviour;\nvar XmlFoldMode = require(\"./folding/xml\").FoldMode;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar Mode = function () {\n this.HighlightRules = XmlHighlightRules;\n this.$behaviour = new XmlBehaviour();\n this.foldingRules = new XmlFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.voidElements = lang.arrayToMap([]);\n this.blockComment = { start: \"\" };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/xml_worker\", \"Worker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"error\", function (e) {\n session.setAnnotations(e.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/xml\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/xml\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/theme/github-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){module.exports = \"/* CSS style content from github's default pygments highlighter template.\\n Cursor and selection styles from textmate.css. */\\n.ace-github .ace_gutter {\\n background: #e8e8e8;\\n color: #AAA;\\n}\\n\\n.ace-github {\\n background: #fff;\\n color: #000;\\n}\\n\\n.ace-github .ace_keyword {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_string {\\n color: #D14;\\n}\\n\\n.ace-github .ace_variable.ace_class {\\n color: teal;\\n}\\n\\n.ace-github .ace_constant.ace_numeric {\\n color: #099;\\n}\\n\\n.ace-github .ace_constant.ace_buildin {\\n color: #0086B3;\\n}\\n\\n.ace-github .ace_support.ace_function {\\n color: #0086B3;\\n}\\n\\n.ace-github .ace_comment {\\n color: #998;\\n font-style: italic;\\n}\\n\\n.ace-github .ace_variable.ace_language {\\n color: #0086B3;\\n}\\n\\n.ace-github .ace_paren {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_boolean {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_string.ace_regexp {\\n color: #009926;\\n font-weight: normal;\\n}\\n\\n.ace-github .ace_variable.ace_instance {\\n color: teal;\\n}\\n\\n.ace-github .ace_constant.ace_language {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_cursor {\\n color: black;\\n}\\n\\n.ace-github.ace_focus .ace_marker-layer .ace_active-line {\\n background: rgb(255, 255, 204);\\n}\\n.ace-github .ace_marker-layer .ace_active-line {\\n background: rgb(245, 245, 245);\\n}\\n\\n.ace-github .ace_marker-layer .ace_selection {\\n background: rgb(181, 213, 255);\\n}\\n\\n.ace-github.ace_multiselect .ace_selection.ace_start {\\n box-shadow: 0 0 3px 0px white;\\n}\\n/* bold keywords cause cursor issues for some fonts */\\n/* this disables bold style for editor and keeps for static highlighter */\\n.ace-github.ace_nobold .ace_line > span {\\n font-weight: normal !important;\\n}\\n\\n.ace-github .ace_marker-layer .ace_step {\\n background: rgb(252, 255, 0);\\n}\\n\\n.ace-github .ace_marker-layer .ace_stack {\\n background: rgb(164, 229, 101);\\n}\\n\\n.ace-github .ace_marker-layer .ace_bracket {\\n margin: -1px 0 0 -1px;\\n border: 1px solid rgb(192, 192, 192);\\n}\\n\\n.ace-github .ace_gutter-active-line {\\n background-color : rgba(0, 0, 0, 0.07);\\n}\\n\\n.ace-github .ace_marker-layer .ace_selected-word {\\n background: rgb(250, 250, 255);\\n border: 1px solid rgb(200, 200, 250);\\n}\\n\\n.ace-github .ace_invisible {\\n color: #BFBFBF\\n}\\n\\n.ace-github .ace_print-margin {\\n width: 1px;\\n background: #e8e8e8;\\n}\\n\\n.ace-github .ace_indent-guide {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\n}\\n\\n.ace-github .ace_indent-guide-active {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC\\\") right repeat-y;\\n}\\n\";\n\n});\n\nace.define(\"ace/theme/github\",[\"require\",\"exports\",\"module\",\"ace/theme/github-css\",\"ace/lib/dom\"], function(require, exports, module){exports.isDark = false;\nexports.cssClass = \"ace-github\";\nexports.cssText = require(\"./github-css\");\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass, false);\n\n}); (function() {\n ace.require([\"ace/theme/github\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","module.exports = require(\"react-dom\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"\";","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"prop-types\");","import { createContext } from 'react';\n\nconst AccordionContext = createContext();\n\nexport default AccordionContext;\n","import { createContext } from 'react';\n\nconst AccordionItemContext = createContext();\n\nexport default AccordionItemContext;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Icon({\n className,\n family,\n type,\n ...rest\n}) {\n function getCSSClasses() {\n const fontFamily = family || 'fa';\n\n return [\n 'tyk-icon',\n fontFamily,\n `${fontFamily}-${type}`,\n className,\n ].filter(Boolean).join(' ');\n }\n\n return ;\n}\n\nIcon.propTypes = {\n className: PropTypes.string,\n family: PropTypes.string,\n type: PropTypes.string.isRequired,\n};\n\nexport default Icon;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../Icon';\nimport AccordionItemContext from './AccordionItemContext';\n\nfunction ItemTrigger({ wrap }) {\n const { collapsed, disabled, toggleChange } = useContext(AccordionItemContext);\n\n const iconType = collapsed ? 'chevron-down' : 'chevron-up';\n const classes = [\n 'tyk-accordion__trigger',\n disabled && 'tyk-accordion__trigger--disabled',\n ].filter(Boolean).join(' ');\n const trigger = (\n \n \n \n );\n\n return wrap\n ?

\n : trigger;\n}\n\nItemTrigger.propTypes = {\n wrap: PropTypes.bool,\n};\n\nexport default ItemTrigger;\n","import React, {\n useMemo, useState, useContext, forwardRef,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport AccordionContext from './AccordionContext';\nimport AccordionItemContext from './AccordionItemContext';\nimport ItemTrigger from './AccordionItemTrigger';\n\nfunction AccordionItem({\n collapsed: collapsedProp,\n children,\n className,\n disabled,\n}, ref) {\n const { arrow } = useContext(AccordionContext);\n const [collapsed, setCollapsed] = useState(collapsedProp);\n\n const toggleChange = () => {\n if (disabled) {\n return;\n }\n\n setCollapsed(!collapsed);\n };\n\n const classes = useMemo(() => [\n 'tyk-accordion__item',\n arrow.expandToContent\n ? `tyk-accordion__item--trigger-position-${arrow.position}`\n : 'tyk-accordion__item--trigger-in-header',\n className,\n collapsed === false && 'tyk-accordion__item--active',\n ].filter(Boolean).join(' '), [arrow, className, collapsed]);\n\n const contextValue = useMemo(() => ({\n collapsed,\n disabled,\n toggleChange,\n }), [collapsed, disabled, toggleChange]);\n\n return (\n
\n \n {arrow.expandToContent && (\n \n )}\n {children}\n \n
\n );\n}\n\nAccordionItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n collapsed: PropTypes.bool,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n};\n\nAccordionItem.defaultProps = {\n collapsed: false,\n};\n\nexport default forwardRef(AccordionItem);\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../Icon';\nimport AccordionContext from './AccordionContext';\nimport AccordionItemContext from './AccordionItemContext';\nimport ItemTrigger from './AccordionItemTrigger';\n\nfunction AccordionItemHeader({ className, children }) {\n const { collapsed, disabled, toggleChange } = useContext(AccordionItemContext);\n const { usearrowastrigger, arrow } = useContext(AccordionContext);\n const iconType = collapsed ? 'chevron-down' : 'chevron-up';\n const classes = [\n 'tyk-accordion__item-header',\n usearrowastrigger && 'tyk-accordion__arrow-trigger',\n className,\n ].filter(Boolean).join(' ');\n\n return (\n
\n {\n !usearrowastrigger\n ? (\n \n {children}\n \n \n )\n : (\n <>\n {!arrow.expandToContent && arrow.position === 'left' && (\n \n )}\n
{children}
\n {!arrow.expandToContent && arrow.position === 'right' && (\n \n )}\n \n )\n }\n
\n );\n}\n\nAccordionItemHeader.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n};\n\nexport default AccordionItemHeader;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-transition-group\");","import { useCallback, useState, useLayoutEffect } from 'react';\n\nconst getSize = (el) => {\n if (!el) {\n return {\n width: 0,\n height: 0,\n };\n }\n\n return {\n width: el.offsetWidth,\n height: el.offsetHeight,\n };\n};\n\nconst useComponentSize = (ref) => {\n const [componentSize, setComponentSize] = useState(getSize(ref ? ref.current : {}));\n const handleResize = useCallback(() => {\n if (ref.current) {\n setComponentSize(getSize(ref.current));\n }\n }, [ref]);\n\n useLayoutEffect(() => {\n handleResize();\n\n let resizeObserver = new ResizeObserver(() => {\n handleResize();\n });\n resizeObserver.observe(ref.current);\n\n return () => {\n resizeObserver.disconnect(ref.current);\n resizeObserver = null;\n };\n }, [ref.current]);\n\n return componentSize;\n};\n\n/** @component */\nexport default useComponentSize;\n","import { useEffect, useRef } from 'react';\n\nconst useEventListener = (eventName, handler, element) => {\n const savedHandler = useRef();\n useEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n\n useEffect(() => {\n const isSupported = element?.addEventListener;\n if (!isSupported) {\n // eslint-disable-next-line consistent-return\n return;\n }\n\n const eventListener = (event) => savedHandler.current(event);\n element.addEventListener(eventName, eventListener);\n\n // eslint-disable-next-line consistent-return\n return () => {\n element.removeEventListener(eventName, eventListener);\n };\n }, [eventName, element]);\n};\n\n/** @component */\nexport default useEventListener;\n","import React, {\n useRef, useState, useCallback, useEffect,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { CSSTransition } from 'react-transition-group';\nimport { useEventListener, useComponentSize } from '../../hooks';\n\n/**\n * Collapsible is a component that helps you to collapse/expand any type of content\n */\nfunction Collapsible({\n className,\n collapsed,\n children,\n ...rest\n}) {\n const contentContainer = useRef(null);\n const collapseWrapper = useRef(null);\n const refContainerSize = useComponentSize(contentContainer);\n const [contentContainerStyle, setContentContainerStyle] = useState({\n // eslint-disable-next-line\n height: (collapsed) ? 0 : 'auto',\n });\n\n const setHeight = (height) => {\n setContentContainerStyle({\n height: `${height}px`,\n });\n };\n\n const getHeight = () => (contentContainer.current ? contentContainer.current.clientHeight : 0);\n\n const onEnter = () => {\n setHeight(getHeight());\n };\n\n const onExit = () => {\n setHeight(0);\n };\n\n useEffect(() => {\n if (!collapsed\n && refContainerSize?.height\n && contentContainerStyle.height !== refContainerSize?.height\n ) {\n setHeight(refContainerSize.height);\n }\n }, [refContainerSize.height]);\n\n const onWindowResize = useCallback(() => {\n if (!collapsed && contentContainer.current) {\n setHeight(getHeight());\n collapseWrapper.current.style.height = `${getHeight()}px`;\n }\n }, [collapsed, contentContainer.current]);\n\n useEventListener('resize', onWindowResize, window);\n\n return (\n \n \n \n { children }\n \n \n \n );\n}\n\nCollapsible.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n /** Describes if the content of Collapsible should be hidden or not */\n collapsed: PropTypes.bool,\n /** CSS classes that can be passed to the Collapsible element */\n className: PropTypes.string,\n};\n\nexport default Collapsible;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Collapsible from '../../Collapsible';\nimport AccordionItemContext from './AccordionItemContext';\n\nfunction AccordionItemContent({ children, className }) {\n const { collapsed } = useContext(AccordionItemContext);\n\n const classes = [\n 'tyk-accordion__item-content',\n className,\n ].filter(Boolean).join(' ');\n\n return (\n
\n \n { children }\n \n
\n );\n}\n\nAccordionItemContent.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n};\n\nexport default AccordionItemContent;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport AccordionItem from './js/AccordionItem';\nimport AccordionItemHeader from './js/AccordionItemHeader';\nimport AccordionItemContent from './js/AccordionItemContent';\nimport AccordionContext from './js/AccordionContext';\n\nfunction Accordion({\n className,\n children,\n usearrowastrigger,\n arrow = { position: 'right', expandToContent: false },\n}) {\n const classes = [\n 'tyk-accordion',\n className,\n ].filter(Boolean).join(' ');\n\n const contextValue = useMemo(() => ({\n usearrowastrigger,\n arrow,\n }), [usearrowastrigger, arrow]);\n\n return (\n
\n \n {children}\n \n
\n );\n}\n\nAccordion.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n usearrowastrigger: PropTypes.bool,\n arrow: PropTypes.shape({\n position: PropTypes.oneOf(['left', 'right']),\n expandToContent: PropTypes.bool,\n }),\n};\n\nAccordion.defaultProps = {\n usearrowastrigger: false,\n};\n\n// For Readme.md : Start\nAccordion.Item = AccordionItem;\nAccordion.Item.Header = AccordionItemHeader;\nAccordion.Item.Content = AccordionItemContent;\n// For Readme.md : End\n\nexport default Accordion;\n","import React, { cloneElement, forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../Icon';\n\n/**\n * Button component.\n */\nfunction Button(props, ref) {\n const {\n customButton,\n children,\n iconType,\n iconFamily,\n iconPosition,\n iconOnly,\n id,\n className,\n disabled,\n display,\n href,\n onClick,\n noStyle,\n size,\n theme,\n type,\n ...rest\n } = props;\n\n const getCssClasses = () => {\n const cssClasses = ['tyk-button'].concat(className ? className.split(' ') : []);\n const sizeClass = (size) ? `tyk-button--${size}` : 'tyk-button--md';\n const disabledClass = (disabled) ? 'disabled' : '';\n const displayClass = display || '';\n const themeClass = theme ? `tyk-button--${theme}` : '';\n const iconOnlyClass = iconOnly ? 'tyk-button--icon-only' : '';\n const noStyleClass = noStyle ? 'tyk-button--no-style' : '';\n\n cssClasses.push(iconOnlyClass);\n cssClasses.push(themeClass);\n cssClasses.push(sizeClass);\n cssClasses.push(disabledClass);\n cssClasses.push(displayClass);\n cssClasses.push(noStyleClass);\n\n if (iconType) {\n cssClasses.push(`icon-${iconPosition || 'left'}`);\n }\n\n return cssClasses.join(' ');\n };\n\n const getButtonIcon = (position) => {\n const iPos = iconPosition || 'left';\n\n return (\n (iconType && iPos === position)\n ? \n : null\n );\n };\n\n const getButtonType = () => {\n let buttonType;\n\n if (customButton) {\n return (\n <>\n { cloneElement(customButton, {\n className: getCssClasses(),\n disabled,\n })}\n \n );\n }\n\n if (href) {\n buttonType = (\n \n { getButtonIcon('left') }\n { children }\n { getButtonIcon('right') }\n
\n );\n } else {\n buttonType = (\n // eslint-disable-next-line react/button-has-type\n \n { getButtonIcon('left') }\n { children && {children} }\n { getButtonIcon('right') }\n \n );\n }\n\n return buttonType;\n };\n\n return (\n getButtonType()\n );\n}\n\nButton.propTypes = {\n /**\n * Content of a button. Can be a DOM element or a React component\n */\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n customButton: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n ]),\n className: PropTypes.string,\n /**\n * Display type: inline/block. Default is inline\n */\n display: PropTypes.string,\n /**\n * Sets the button disabled state\n */\n disabled: PropTypes.bool,\n /**\n * Having this property set the button will become a link\n */\n id: PropTypes.string,\n href: PropTypes.string,\n iconPosition: PropTypes.string, // left or right\n iconFamily: PropTypes.string,\n iconOnly: PropTypes.bool,\n iconType: PropTypes.string,\n noStyle: PropTypes.bool,\n /**\n * Callback function, called when the button si clicked\n */\n onClick: PropTypes.func,\n /**\n * Describes the appearence of the button (ex: primary, danger, primary-outline etc.)\n */\n theme: PropTypes.string,\n /**\n * Type of the button (ex: button, submit etc.)\n */\n type: PropTypes.string,\n /**\n * Describes the size of the button (sm, md, lg). Default one is md\n */\n size: PropTypes.string,\n};\n\nButton.defaultProps = {\n theme: '',\n type: 'button',\n};\n\nexport default forwardRef(Button);\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ButtonGroup({ className, children, label }, ref) {\n return (\n
\n {Boolean(label) && }\n
{children}
\n
\n );\n}\n\nButtonGroup.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n};\n\nexport default forwardRef(ButtonGroup);\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardHeader({\n right = null,\n children,\n}) {\n return (\n
\n {children &&
{children}
}\n {right &&
{right}
}\n
\n );\n}\n\nCardHeader.propTypes = {\n right: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardHeader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardBody({\n align = 'top',\n children,\n}) {\n return (\n
\n
\n {children}\n
\n
\n );\n}\n\nCardBody.propTypes = {\n align: PropTypes.oneOf(['top', 'center', 'bottom']),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardBody;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardFooter({ children }) {\n return (\n
\n {children}\n
\n );\n}\n\nCardFooter.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardFooter;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardTitle({\n maxLines = 1, // accepted values: 1, 2\n children,\n}) {\n return (\n

\n {children}\n

\n );\n}\n\nCardTitle.propTypes = {\n maxLines: PropTypes.number,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardTitle;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardTitleGroup({\n children,\n}) {\n return (\n
\n {children}\n
\n );\n}\n\nCardTitleGroup.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardTitleGroup;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardSubTitle({\n children,\n}) {\n return (\n
\n {children}\n
\n );\n}\n\nCardSubTitle.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardSubTitle;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardSummary({\n maxLines = 2, // accepted values: 1, 2, 3, 4, 5\n children,\n}) {\n return (\n

\n {children}\n

\n );\n}\n\nCardSummary.propTypes = {\n maxLines: PropTypes.number,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardSummary;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardTitleIcon({\n children,\n}) {\n return (\n
\n {children}\n
\n );\n}\n\nCardTitleIcon.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardTitleIcon;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport CardHeader from './CardHeader';\nimport CardBody from './CardBody';\nimport CardFooter from './CardFooter';\nimport CardTitle from './CardTitle';\nimport CardTitleGroup from './CardTitleGroup';\nimport CardSubTitle from './CardSubTitle';\nimport CardSummary from './CardSummary';\nimport CardTitleIcon from './CardTitleIcon';\n\nfunction Card({\n className = '',\n height = 'auto',\n children,\n}) {\n return (\n
\n {children}\n
\n );\n}\n\nCard.propTypes = {\n className: PropTypes.string,\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nCard.Header = CardHeader;\nCard.Body = CardBody;\nCard.Footer = CardFooter;\nCard.Title = CardTitle;\nCard.TitleGroup = CardTitleGroup;\nCard.Icon = CardTitleIcon;\nCard.SubTitle = CardSubTitle;\nCard.Summary = CardSummary;\n\nexport default Card;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"echarts\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"immutable\");","export default (func, wait, immediate) => {\n let timeout;\n return function debouncer(...args) {\n const context = this;\n const later = () => {\n timeout = null;\n if (!immediate) {\n func.apply(context, args);\n }\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) {\n func.apply(context, args);\n }\n };\n};\n","import { useEffect, useRef } from 'react';\n\nconst usePrevious = (value) => {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n};\n\n/** @component */\nexport default usePrevious;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Loader({ className, position = 'relative', withbackground = false }) {\n const classes = [\n 'loading',\n position,\n className,\n ].filter(Boolean).join(' ');\n\n const loader = (\n
\n
\n
\n
\n
\n
\n );\n\n return withbackground\n ?
{loader}
\n : loader;\n}\n\nLoader.propTypes = {\n /** add a class to loader */\n className: PropTypes.string,\n /** position of loader (absolute / relative) */\n position: PropTypes.string,\n /** defines weather loader should be renders with or without background */\n withbackground: PropTypes.bool,\n};\n\nexport default Loader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../Icon';\n\n/**\n * The Message component is used to highlight important content to the users.\n *\n * If the content you are displaying needs immediate attention or is a feedback,\n * consider using `toast` instead\n */\nfunction Message({\n children, theme, onClose, noMargin, className,\n}) {\n function getCssClasses() {\n return [\n 'tyk-message',\n `tyk-message--${theme || 'info'}`,\n noMargin && 'no-margin',\n className,\n ].filter(Boolean).join(' ');\n }\n\n const iconType = theme === 'success' ? 'check' : 'warning';\n\n return (\n
\n \n
\n { children }\n
\n {onClose && (\n \n )}\n
\n );\n}\n\nMessage.propTypes = {\n /** Set theme for message (eg. default, success, danger, etc) */\n theme: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n /** add a class to loader */\n className: PropTypes.string,\n /** Removes margins by adding `no-margin` class */\n noMargin: PropTypes.bool,\n /** Callback for clicking on the \"x\" */\n onClose: PropTypes.func,\n};\n\nexport default Message;\n","import React, {\n useState, useEffect, useMemo, useRef, memo,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport * as echarts from 'echarts';\nimport { fromJS } from 'immutable';\n\nimport debounce from '../../utils/debounce';\nimport { usePrevious } from '../../hooks';\nimport Loader from '../Loader';\nimport Message from '../Message';\nimport worldMap from './maps/world.json';\n\necharts.registerMap('world', worldMap);\n\nfunction Chart({\n areaStyleColors,\n dataLoaded,\n hasData,\n highlight,\n type,\n option,\n series,\n onChange,\n zoomStart,\n zoomEnd,\n title,\n seriesConfig = [],\n noDataComponent: noDataComponentProp = null,\n zoomColors,\n style,\n}) {\n const [tykChartInstance, setTykChartInstance] = useState(null);\n const chartWrapperRef = useRef(null);\n const onResize = () => {\n if (tykChartInstance) {\n tykChartInstance.resize();\n }\n };\n\n const noDataComponent = useMemo(\n () => (noDataComponentProp\n ? noDataComponentProp()\n : (\n \n No data to display\n \n )),\n [noDataComponentProp],\n );\n\n const lineBarChart = {\n defaultOpts: fromJS({\n title: {\n show: true,\n text: title,\n left: 0,\n },\n color: [],\n toolbox: {\n right: '0',\n orient: 'horizontal',\n itemSize: 15,\n showTitle: true,\n feature: null,\n },\n dataZoom: [{\n show: true,\n start: 0,\n end: 100,\n orient: 'horizontal',\n dataBackground: {\n lineStyle: {\n color: zoomColors?.lineStyle || '#368493',\n },\n areaStyle: {\n color: zoomColors?.areaStyle || '#368493',\n },\n },\n handleStyle: {\n color: zoomColors?.handleStyle || '#368493',\n },\n textStyle: {\n color: zoomColors?.textStyle || '#368493',\n },\n borderColor: 'transparent',\n fillerColor: zoomColors?.fillerColor || 'rgba(54, 132, 147, 0.1)',\n }],\n legend: {\n show: false,\n // data: [],\n // right: '1%',\n },\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n type: 'cross',\n },\n },\n grid: {\n left: '1%',\n right: '1%',\n bottom: '50px',\n top: '40px',\n containLabel: true,\n },\n xAxis: {\n boundaryGap: false,\n type: 'category',\n splitLine: {\n show: true,\n lineStyle: {\n type: 'dotted',\n color: '#F0F0F0',\n },\n },\n axisLine: {\n show: false,\n },\n axisTick: {\n show: false,\n },\n data: [],\n },\n yAxis: {\n min: 'dataMin',\n boundaryGap: true,\n axisPointer: {\n show: true,\n },\n splitLine: {\n lineStyle: {\n type: 'dotted',\n color: '#F0F0F0',\n },\n show: true,\n },\n axisLabel: {\n show: true,\n },\n axisLine: {\n show: true,\n },\n axisTick: {\n show: false,\n },\n type: 'value',\n },\n textStyle: {\n color: '#5a5a68',\n },\n series: [],\n animationEasing: 'elasticOut',\n }),\n seriesDefault: fromJS({\n data: [],\n type: 'line',\n areaStyle: {\n opacity: 1,\n color: areaStyleColors\n ? new echarts.graphic.LinearGradient(\n 0,\n 0,\n 1,\n 1,\n areaStyleColors.map((color, index) => ({\n offset: index,\n color,\n })),\n )\n : [],\n },\n smooth: false,\n symbolSize: 7,\n name: '',\n }),\n };\n\n const pieChart = {\n defaultOpts: fromJS({\n tooltip: {\n trigger: 'axis',\n formatter: '{b}: {c} ({d}%)',\n },\n legend: {\n orient: 'horizontal',\n x: 'left',\n y: 'top',\n data: [],\n },\n color: [],\n series: [],\n }),\n seriesDefault: fromJS({\n type: 'pie',\n center: [\n '50%',\n '55%',\n ],\n radius: [\n '50%',\n '75%',\n ],\n avoidLabelOverlap: false,\n animationType: 'scale',\n animationEasing: 'elasticOut',\n labelLine: {\n normal: {\n show: true,\n smooth: 0.2,\n length: 6,\n length2: 6,\n },\n },\n data: [],\n }),\n };\n\n const geoChart = {\n defaultOpts: fromJS({\n series: [],\n }),\n seriesDefault: fromJS({\n type: 'map',\n data: [],\n }),\n };\n\n const buildChartOptions = (selectedType, selectedOptions, selectedSeries) => {\n let finalOpts = {};\n switch (selectedType) {\n case 'pie': {\n finalOpts = pieChart.defaultOpts.mergeDeep(fromJS(selectedOptions)).toJS();\n\n selectedSeries.forEach((entry) => {\n finalOpts.series.push(pieChart.seriesDefault.mergeDeep(fromJS(entry)).toJS());\n });\n\n break;\n }\n\n case 'geo': {\n finalOpts = geoChart.defaultOpts.mergeDeep(fromJS(selectedOptions)).toJS();\n\n selectedSeries.forEach((entry) => {\n finalOpts.series.push(geoChart.seriesDefault.mergeDeep(fromJS(entry)).toJS());\n });\n\n break;\n }\n\n default: {\n finalOpts = lineBarChart.defaultOpts.mergeDeep(fromJS(selectedOptions)).toJS();\n if (Array.isArray(selectedOptions.yAxis)) {\n finalOpts.yAxis = selectedOptions.yAxis;\n }\n\n selectedSeries.forEach((entry, index) => {\n const seriesData = {\n ...lineBarChart.seriesDefault.toJS(),\n ...seriesConfig[index],\n ...entry,\n };\n finalOpts.series.push(seriesData);\n });\n break;\n }\n }\n return finalOpts;\n };\n\n useEffect(() => {\n window.addEventListener('resize', onResize);\n\n return () => {\n window.removeEventListener('resize', onResize);\n };\n }, [tykChartInstance]);\n\n useEffect(() => {\n if (!chartWrapperRef?.current) return;\n\n setTykChartInstance(echarts.init(chartWrapperRef.current));\n\n // eslint-disable-next-line consistent-return\n return () => {\n if (tykChartInstance) {\n tykChartInstance.dispose();\n }\n };\n }, [chartWrapperRef.current]);\n\n const eventCallBack = (e) => {\n if (onChange) {\n onChange(e);\n }\n };\n\n useEffect(() => {\n let debouncedMethod;\n if (tykChartInstance) {\n debouncedMethod = debounce(eventCallBack, 500);\n tykChartInstance.on('dataZoom', debouncedMethod);\n tykChartInstance.on('restore', debouncedMethod);\n tykChartInstance.on('click', debouncedMethod);\n\n tykChartInstance.on('mousemove', (params) => {\n if (params.data) {\n tykChartInstance.getZr().setCursorStyle('pointer');\n }\n });\n }\n\n return () => {\n if (tykChartInstance) {\n tykChartInstance.off('dataZoom', debouncedMethod);\n tykChartInstance.off('restore', debouncedMethod);\n tykChartInstance.off('click', debouncedMethod);\n }\n };\n }, [tykChartInstance, onChange]);\n\n const prevInstance = usePrevious(tykChartInstance);\n const prevOption = usePrevious(option);\n const prevType = usePrevious(type);\n const prevSeries = usePrevious(series);\n useEffect(() => {\n if (\n tykChartInstance\n && (\n !fromJS(prevInstance)?.equals?.(fromJS(tykChartInstance))\n || !fromJS(prevOption)?.equals?.(fromJS(option))\n || (prevType !== type)\n || !fromJS(prevSeries).equals?.(fromJS(series))\n )\n ) {\n tykChartInstance.clear();\n tykChartInstance.setOption(buildChartOptions(type, option, series));\n tykChartInstance.dispatchAction({\n type: 'takeGlobalCursor',\n key: 'dataZoomSelect',\n dataZoomSelectActive: true,\n });\n }\n }, [tykChartInstance, option, series, type]);\n\n useEffect(() => {\n if (tykChartInstance && highlight) {\n tykChartInstance.dispatchAction({\n type: 'highlight',\n seriesIndex: highlight.seriesIndex,\n dataIndex: highlight.dataIndex,\n });\n tykChartInstance.dispatchAction({\n type: 'showTip',\n seriesIndex: highlight.seriesIndex,\n dataIndex: highlight.dataIndex,\n });\n }\n }, [highlight]);\n\n const prevZoomStart = usePrevious(zoomStart);\n const prevZoomEnd = usePrevious(zoomEnd);\n useEffect(() => {\n if (\n tykChartInstance\n && zoomStart !== -1\n && zoomEnd !== -1\n && (\n prevZoomStart !== zoomStart\n || prevZoomEnd !== zoomEnd\n )\n ) {\n tykChartInstance.dispatchAction({\n type: 'dataZoom',\n startValue: zoomStart,\n endValue: zoomEnd,\n });\n }\n }, [zoomStart, zoomEnd]);\n\n const getStyle = () => {\n const tempStyle = style || {};\n\n if (!tempStyle.height) {\n tempStyle.height = '300px';\n }\n if (!tempStyle.width) {\n tempStyle.width = '100%';\n }\n return tempStyle;\n };\n\n const chartHasData = () => (\n (dataLoaded && (hasData === false || hasData === true)) ? hasData : true\n );\n\n const getCssClasses = () => {\n const cssClasses = ['tyk-chart'];\n\n if (!dataLoaded) {\n cssClasses.push('tyk-chart--loading-chart');\n }\n\n if (!chartHasData()) {\n cssClasses.push('tyk-chart--no-data');\n }\n\n return cssClasses.join(' ');\n };\n\n return (\n
\n {\n !dataLoaded\n ? \n : null\n }\n \n {\n chartHasData()\n ? null\n : noDataComponent\n }\n
\n );\n}\n\nChart.propTypes = {\n areaStyleColors: PropTypes.instanceOf(Array),\n dataLoaded: PropTypes.bool,\n hasData: PropTypes.bool,\n highlight: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n PropTypes.instanceOf(Array),\n ]),\n noDataComponent: PropTypes.func,\n zoomStart: PropTypes.number,\n zoomEnd: PropTypes.number,\n zoomColors: PropTypes.instanceOf(Object),\n option: PropTypes.instanceOf(Object),\n onChange: PropTypes.func,\n style: PropTypes.instanceOf(Object),\n type: PropTypes.string,\n title: PropTypes.string,\n series: PropTypes.instanceOf(Array),\n seriesConfig: PropTypes.instanceOf(Object),\n};\n\nexport default memo(Chart);\n","import { useEffect, useRef } from 'react';\n\nconst useTimeout = (callback, delay) => {\n const savedCallback = useRef();\n\n useEffect(\n () => {\n savedCallback.current = callback;\n },\n [callback],\n );\n\n useEffect(\n () => {\n function tick() {\n savedCallback.current();\n }\n if (delay !== null) {\n const id = setTimeout(tick, delay);\n return () => clearTimeout(id);\n }\n\n return () => {};\n },\n [delay],\n );\n};\n\n/** @component */\nexport default useTimeout;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Message from '../../Message';\nimport { useTimeout } from '../../../hooks';\n\nfunction ToastMessage(props) {\n const {\n children,\n options,\n onClose,\n index,\n } = props;\n const opts = {\n theme: 'success',\n delay: 3000,\n ...options,\n };\n let timer;\n\n const handleClose = (itemIndex) => {\n onClose(itemIndex);\n clearTimeout(timer);\n };\n\n useTimeout(() => handleClose(index), opts.delay);\n\n return (\n handleClose(index)}\n >\n {children}\n \n );\n}\n\nToastMessage.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n options: PropTypes.instanceOf(Object),\n onClose: PropTypes.func,\n index: PropTypes.number,\n};\n\nexport default ToastMessage;\n","import React, {\n useEffect, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport ToastMessage from './ToastMessage';\n\nfunction ToastContainer(props) {\n const [messages, setMessages] = useState({});\n const {\n notify,\n } = props;\n\n const updateNotifications = (message, options) => {\n const msgID = Math.floor(Math.random() * 1000000);\n\n setMessages((prevMessages) => ({\n ...prevMessages,\n [msgID]: {\n message,\n options,\n },\n }));\n };\n\n useEffect(() => {\n notify(updateNotifications);\n }, [messages]);\n\n const onMessageClosed = (index) => {\n const tempMessages = { ...messages };\n delete tempMessages[index];\n setMessages((prevMessages) => {\n const newMessages = { ...prevMessages };\n delete newMessages[index];\n return newMessages;\n });\n };\n\n return (\n
\n {\n Object.keys(messages).map((msgID) => (\n messages[msgID]\n ? (\n \n {messages[msgID].message}\n \n )\n : null\n ))\n }\n
\n );\n}\n\nToastContainer.propTypes = {\n notify: PropTypes.func,\n};\n\nexport default ToastContainer;\n","import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport ToastContainer from './js/ToastContainer';\n\n/**\n * Toast is a service that displays dialogs\n * on the bottom right part of the screen.\n *\n * The dialogs can have one of the Tyk UI themes, so that\n * it would match it's purpose (i.e success message, error message)\n *\n */\nclass ToastCreator {\n constructor() {\n const el = document.createElement('div');\n el.className = 'tyk-toast';\n document.body.appendChild(el);\n const root = createRoot(el);\n root.render();\n }\n\n bindNotify = (fn) => {\n this.createNotification = fn;\n };\n\n notify(message, options) {\n if (this.createNotification) {\n this.createNotification(message, options);\n }\n }\n\n danger(message, options) {\n this.notify(message, { ...options, theme: 'danger' });\n }\n\n success(message, options) {\n this.notify(message, { ...options, theme: 'success' });\n }\n\n warning(message, options) {\n this.notify(message, { ...options, theme: 'warning' });\n }\n\n info(message, options) {\n this.notify(message, { ...options, theme: 'info' });\n }\n}\n\nconst toast = new ToastCreator();\n\nexport default toast;\n","import React, { createRef, useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport toast from '../Toast';\n\n/**\n * - CopyToClipboard is used to copy string for a user.\n * - Can be used normally with a text or a custom components (Eg. Button, Icon, etc)\n */\n\nfunction CopyToClipboard(props) {\n const {\n display, copy, children, onCopy, message = 'copied',\n } = props;\n const txtRef = createRef();\n const handleClick = useCallback(() => {\n if (onCopy) {\n onCopy();\n }\n\n if (!window.navigator.clipboard) {\n txtRef.current.select();\n document.execCommand('copy');\n toast.success(message);\n return;\n }\n window.navigator.clipboard.writeText(copy);\n toast.success(message);\n }, [onCopy, txtRef]);\n\n return (\n <>\n \n {children || display}\n \n {!window.navigator.clipboard ? (\n \n ) : null}\n \n );\n}\n\nCopyToClipboard.propTypes = {\n /** Message to be displayed after text is copied */\n message: PropTypes.string,\n /** Callback function executed after text is copied */\n onCopy: PropTypes.func,\n /** Text to be copied */\n copy: PropTypes.string.isRequired,\n /** Text to be displayed */\n display: PropTypes.string,\n /** Children of custom element if you are using any custom element */\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n PropTypes.object,\n PropTypes.node,\n ]),\n};\n\nexport default CopyToClipboard;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ModalFooter({ children }) {\n return (\n
\n { children }\n
\n );\n}\n\nModalFooter.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default ModalFooter;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ModalBody({ children }) {\n return (\n
\n { children }\n
\n );\n}\n\nModalBody.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default ModalBody;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { CSSTransition } from 'react-transition-group';\n\nimport Icon from '../Icon';\nimport ModalFooter from './js/ModalFooter';\nimport ModalBody from './js/ModalBody';\n\n/**\n * Modals add dialogs confirmation boxes, notifications, or completely custom content\n * - only one Modal can be opened at a time\n * - are unmounted when Modal is closed\n */\nfunction Modal({\n children,\n theme = 'none',\n disableCloseCommands = false,\n opened = false,\n onClose = () => {},\n size = 'md',\n className = '',\n showBackdrop = true,\n ...restProps\n}) {\n const modalClasses = [\n 'tyk-modal',\n `tyk-modal--theme-${theme}`,\n opened && 'opened',\n ].concat(className.split(' ')).filter(Boolean).join(' ');\n\n const backdropClasses = [\n 'tyk-modal__backdrop',\n opened && 'opened',\n ].filter(Boolean).join(' ');\n\n const themeIcon = {\n success: 'check',\n warning: 'warning',\n danger: 'delete',\n }[theme];\n\n return (\n <>\n {\n ReactDOM.createPortal(\n \n
\n
\n
\n {theme !== 'none' && (\n
\n \n
\n )}\n { children }\n
\n
\n
\n ,\n document.querySelector('body'),\n )\n }\n {showBackdrop && ReactDOM.createPortal(\n \n !disableCloseCommands && onClose()}\n onKeyDown={() => {}}\n type=\"button\"\n aria-label=\"Close\"\n />\n ,\n document.querySelector('body'),\n )}\n \n );\n}\n\nModal.Body = ModalBody;\nModal.Footer = ModalFooter;\n/* eslint-disable-next-line */\nModal.Header = ({ children }) => {\n console.warn('%cModal.Header%c is deprecated.', 'font-weight: bold', '');\n return (\n
\n { children }\n
\n );\n};\nModal.Header.propTypes = {\n children: PropTypes.element,\n};\n/* eslint-disable-next-line */\nModal.Title = ({ children }) => {\n console.warn('%cModal.Title%c is deprecated.', 'font-weight: bold', '');\n return (\n

\n { children }\n

\n );\n};\nModal.Title.propTypes = {\n children: PropTypes.element,\n};\n\nModal.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n /** one of \"success\", \"warning\", \"danger\", \"none\"; default is \"none\" */\n theme: PropTypes.string,\n /** If set on true, the Modal won't close when clicking on the overlay or by pressing ESC key */\n disableCloseCommands: PropTypes.bool,\n /** If true the Modal will be by default opened */\n opened: PropTypes.bool,\n /** Callback method when the Modal is closed */\n onClose: PropTypes.func,\n /** Width of the Moda: md or lg */\n size: PropTypes.string,\n showBackdrop: PropTypes.bool,\n};\n\nexport default Modal;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '../Button';\nimport Modal from '../Modal';\n\n/**\n * Confirm component can be used to open a dialog () before a specific action\n */\nfunction Confirm(props) {\n const {\n children,\n title,\n description,\n confirmBtnText = 'Confirm',\n cancelBtnText = 'Cancel',\n } = props;\n const [open, setOpen] = useState(false);\n const [callback, setCallback] = useState(null);\n const [cancelCallback, setCancelCallback] = useState(null);\n\n const show = (callbackFunc, cancelCallbackFunc, beforeCallback) => (...args) => {\n if (beforeCallback) {\n beforeCallback(...args);\n }\n setOpen(true);\n setCallback(() => () => callbackFunc(...args));\n if (cancelCallbackFunc) {\n setCancelCallback(() => () => cancelCallbackFunc(...args));\n }\n };\n\n const hide = () => {\n setOpen(false);\n setCallback(null);\n setCancelCallback(null);\n };\n\n const cancel = () => {\n if (cancelCallback) {\n cancelCallback();\n }\n hide();\n };\n\n const confirm = () => {\n callback();\n hide();\n };\n\n return (\n <>\n {children(show)}\n \n \n

{title}

\n {description}\n
\n \n \n {cancelBtnText}\n \n \n {confirmBtnText}\n \n \n
\n \n );\n}\n\nConfirm.propTypes = {\n /** Sets the text for primary / confirmation button on opened modal */\n confirmBtnText: PropTypes.string,\n /** Sets the text for danger / abort button on opened modal */\n cancelBtnText: PropTypes.string,\n /** Sets the title for the opened modal */\n title: PropTypes.string,\n /** Sets the description for the opened modal */\n description: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n PropTypes.object,\n PropTypes.node,\n PropTypes.func,\n ]),\n};\n\nexport default Confirm;\n","import React, { useCallback, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport debounce from '../../utils/debounce';\n\n/**\n * FixedWrapper component, keeps all its children in a fix position on the page,\n * even if the scroll position changes\n * i.e: The top navigation bar of a page sits within FixedWrapper component\n */\nfunction FixedWrapper({ children, className, showShadow }) {\n const fixedWrapperRef = useRef(null);\n\n const attachShadow = useCallback(() => {\n const element = fixedWrapperRef.current;\n\n if (!element) {\n return;\n }\n\n if (window.scrollY) {\n element.classList.add('tyk-fixed-wrapper--scrolled');\n } else {\n element.classList.remove('tyk-fixed-wrapper--scrolled');\n }\n }, [fixedWrapperRef.current]);\n\n const debouncedAttachShadow = useCallback(debounce(attachShadow, 100), [attachShadow]);\n\n useEffect(() => {\n if (showShadow) {\n window.addEventListener('scroll', debouncedAttachShadow);\n }\n\n return () => {\n window.removeEventListener('scroll', debouncedAttachShadow);\n };\n }, [debouncedAttachShadow, showShadow]);\n\n return (\n
\n { children }\n
\n );\n}\n\nFixedWrapper.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n /** Css classes that can be passed to the FixedWraper element */\n className: PropTypes.string,\n /** If true, bottom shadow on the FixedWrapper component\n * is being displayed when scroll happens\n */\n showShadow: PropTypes.bool,\n};\n\nFixedWrapper.defaultProps = {\n className: '',\n};\n\nexport default FixedWrapper;\n","import React, {\n useEffect, useState, useRef, useCallback,\n} from 'react';\nimport { PropTypes } from 'prop-types';\n\nimport debounce from '../../utils/debounce';\nimport { usePrevious, useComponentSize } from '../../hooks';\nimport Loader from '../Loader';\n\nfunction InfiniteScroller({\n children,\n hasMore,\n initialLoad,\n loadMore,\n pageNumber,\n refChild,\n}) {\n const [showLoader, setShowLoader] = useState(false);\n const containerRef = useRef(null);\n const refChildSize = useComponentSize(refChild);\n\n useEffect(() => {\n if (initialLoad && typeof loadMore === 'function') {\n setShowLoader(false);\n loadMore(pageNumber);\n }\n }, [initialLoad]);\n\n const shouldLoad = useCallback(() => {\n if (!containerRef.current) return false;\n const { clientHeight, scrollTop } = containerRef.current;\n\n return (\n hasMore\n && (\n (clientHeight + Math.round(scrollTop) === refChildSize.height)\n || (clientHeight >= refChildSize.height)\n )\n );\n }, [containerRef, refChildSize.height]);\n\n const loadMoreData = useCallback(() => {\n if (hasMore && typeof loadMore === 'function') {\n loadMore(pageNumber + 1);\n setShowLoader(true);\n } else {\n setShowLoader(false);\n }\n }, [hasMore, pageNumber]);\n\n const prevPageNumber = usePrevious(pageNumber);\n const scrollHandler = useCallback(debounce(() => {\n if (shouldLoad() && prevPageNumber <= pageNumber) {\n loadMoreData();\n }\n }, 200), [loadMoreData, shouldLoad]);\n\n useEffect(() => {\n containerRef.current?.addEventListener('scroll', scrollHandler);\n return () => containerRef.current?.removeEventListener('scroll', scrollHandler);\n }, [containerRef, scrollHandler]);\n\n // if content resets (page number resets) scroll to top\n useEffect(() => {\n if (prevPageNumber > 0 && pageNumber === 0) {\n containerRef.current.scrollTop = 0;\n }\n }, [containerRef, pageNumber]);\n\n const prevRefChildSize = usePrevious(refChildSize);\n useEffect(() => {\n if (\n refChildSize && prevRefChildSize\n && refChildSize.height !== prevRefChildSize.height\n && showLoader === true\n ) {\n setShowLoader(false);\n }\n }, [showLoader, refChildSize.height]);\n\n useEffect(() => {\n if (\n refChild && refChildSize.height < containerRef.current.clientHeight\n && refChildSize.height\n && hasMore\n ) {\n loadMoreData();\n }\n }, [containerRef, refChildSize, refChild, hasMore]);\n\n return (\n
\n \n { children }\n
\n {showLoader && (\n \n )}\n
\n );\n}\n\nInfiniteScroller.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n hasMore: PropTypes.bool,\n initialLoad: PropTypes.bool,\n pageNumber: PropTypes.number,\n loadMore: PropTypes.func,\n refChild: PropTypes.instanceOf(Object),\n};\n\nInfiniteScroller.defaultProps = {\n hasMore: true,\n};\n\nexport default InfiniteScroller;\n","import React, {\n useEffect, useRef, forwardRef,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport PropTypes from 'prop-types';\nimport InfiniteScroller from '../InfiniteScroller';\n\nconst VIEWPORT_INITIAL_PADDING = 5;\n\n/**\n * It displays a container relative to another element.\n * Meant to be used for dropdowns, tooltips, and other similar components.\n */\nfunction FloatingContainer({\n element,\n size = 'auto',\n forceDisplay = 'auto',\n displayAxis = 'auto',\n preferredPosition,\n offset = 0,\n className,\n children,\n infiniteScrollerConfig,\n}, ref) {\n const localRef = useRef(null);\n const floatingContainerRef = ref || localRef;\n const contentWrapperRef = useRef(null);\n // offset calculated on first render to make sure the floating container is inside the viewport\n const viewportOffset = useRef(null);\n\n function determineDisplay() {\n const target = element.current;\n const container = floatingContainerRef.current;\n if (!container) return preferredPosition ?? displayAxis === 'vertical' ? 'bottom' : 'right';\n\n const { left, top } = target.getBoundingClientRect();\n const topSpace = top;\n const bottomSpace = window.innerHeight - top - target.offsetHeight;\n const leftSpace = left;\n const rightSpace = window.innerWidth - left - target.offsetWidth;\n const hasTopSpace = topSpace > container.scrollHeight;\n const hasBottomSpace = bottomSpace > container.scrollHeight;\n const hasLeftSpace = leftSpace > container.offsetWidth;\n const hasRightSpace = rightSpace > container.offsetWidth;\n const positionedVerticallyFitsInViewport = left + target.offsetWidth / 2 - container.offsetWidth / 2 > 0; // eslint-disable-line max-len\n const positionedHorizontallyFitsInViewport = top + target.offsetHeight / 2 - container.scrollHeight / 2 > 0; // eslint-disable-line max-len\n\n if (\n displayAxis === 'vertical'\n || (\n displayAxis === 'auto'\n && (hasTopSpace || hasBottomSpace)\n && positionedVerticallyFitsInViewport\n )\n ) {\n return getDisplayForVertical({\n preferredPosition, hasTopSpace, hasBottomSpace, topSpace, bottomSpace,\n });\n }\n\n if (displayAxis === 'horizontal') {\n return getDisplayForHorizontal({\n preferredPosition, hasLeftSpace, hasRightSpace, leftSpace, rightSpace,\n });\n }\n\n return getDisplayWhereItFits({\n preferredPosition,\n hasTopSpace,\n hasBottomSpace,\n hasLeftSpace,\n hasRightSpace,\n positionedHorizontallyFitsInViewport,\n positionedVerticallyFitsInViewport,\n });\n }\n\n function adjustPosition() {\n const display = forceDisplay !== 'auto' ? forceDisplay : determineDisplay();\n const target = element.current;\n const container = floatingContainerRef.current;\n\n if (!target || !container) return;\n\n const targetPosition = target.getBoundingClientRect();\n const { left: vpLeft, top: vpTop } = viewportOffset.current ?? { left: 0, top: 0 };\n\n if (display === 'top') {\n Object.assign(container.style, getStylesForTop({\n container, targetPosition, target, size, offset, vpLeft, vpTop,\n }));\n }\n\n if (display === 'bottom') {\n Object.assign(container.style, getStylesForBottom({\n container, targetPosition, target, size, offset, vpLeft, vpTop,\n }));\n }\n\n if (display === 'left') {\n Object.assign(container.style, getStylesForLeft({\n targetPosition, target, container, size, offset,\n }));\n }\n\n if (display === 'right') {\n Object.assign(container.style, getStylesForRight({\n targetPosition, target, container, size, offset, vpLeft, vpTop,\n }));\n }\n\n if (viewportOffset.current !== null) return;\n\n if (size === 'matchEnd') {\n viewportOffset.current = { left: 0, top: 0 };\n } else {\n const left = Number(container.style.left.replace('px', ''));\n const top = Number(container.style.top.replace('px', ''));\n viewportOffset.current = {\n left: left < 0 ? VIEWPORT_INITIAL_PADDING - left : 0,\n top: top < 0 ? VIEWPORT_INITIAL_PADDING - top : 0,\n };\n }\n }\n\n useEffect(() => {\n window.requestAnimationFrame(function schedulePositionUpdate() {\n adjustPosition();\n window.requestAnimationFrame(schedulePositionUpdate);\n });\n }, []);\n\n return createPortal(\n \n \n \n {children}\n
\n \n
,\n document.querySelector('body'),\n );\n}\n\nFloatingContainer.propTypes = {\n /** A DOM element that the floating container will be displayed relative to. */\n element: PropTypes.instanceOf(Object),\n className: PropTypes.string,\n /** The size of the container.\n * If `auto` the size will be determined by its contents.\n * If `matchElement` it will take the width or the height of the element depending\n * on the `displayAxis` prop.\n * It can also be a function that returns a number representing the width\n * or the height in pixels.\n */\n size: PropTypes.oneOfType([\n PropTypes.oneOf(['auto', 'matchElement', 'matchStart', 'matchEnd']),\n PropTypes.func,\n ]),\n /**\n * The distance between the element and the floating container.\n * It can be positive or negative.\n */\n offset: PropTypes.number,\n /**\n * If `auto` the component will try to determine where to display the container relative to the\n * element (top, bottom, left, right).\n * It can also be one of top, bottom, left, right, to force the floating container to always be\n * displayed in that position.\n */\n forceDisplay: PropTypes.oneOf(['auto', 'top', 'bottom', 'left', 'right']),\n /**\n * It can be `auto`, `vertical` or `horizontal`. It specifies the axis where\n * it will be displayed when `forceDisplay` is `auto`.\n */\n displayAxis: PropTypes.oneOf(['auto', 'vertical', 'horizontal']),\n /**\n * If there is space on both sides of the axis preffer this side.\n */\n preferredPosition: PropTypes.oneOf(['top', 'bottom', 'left', 'right']),\n /**\n * Configuration object that will be passed to the infinite scroller component.\n */\n infiniteScrollerConfig: PropTypes.instanceOf(Object),\n};\n\nexport default forwardRef(FloatingContainer);\n\nfunction getDisplayForVertical({\n preferredPosition, hasTopSpace, hasBottomSpace, topSpace, bottomSpace,\n}) {\n if (preferredPosition === 'top' && hasTopSpace) return 'top';\n if (preferredPosition === 'bottom' && hasBottomSpace) return 'bottom';\n return hasBottomSpace || bottomSpace > topSpace ? 'bottom' : 'top';\n}\n\nfunction getDisplayForHorizontal({\n preferredPosition, hasLeftSpace, hasRightSpace, leftSpace, rightSpace,\n}) {\n if (preferredPosition === 'left' && hasLeftSpace) return 'left';\n if (preferredPosition === 'right' && hasRightSpace) return 'right';\n return hasRightSpace || rightSpace > leftSpace ? 'right' : 'left';\n}\n\nfunction getDisplayWhereItFits({\n preferredPosition, hasTopSpace, hasBottomSpace, hasLeftSpace, hasRightSpace,\n positionedHorizontallyFitsInViewport, positionedVerticallyFitsInViewport,\n}) {\n if (hasTopSpace && positionedVerticallyFitsInViewport) return 'top';\n if (hasBottomSpace && positionedVerticallyFitsInViewport) return 'bottom';\n if (hasRightSpace && positionedHorizontallyFitsInViewport) return 'right';\n if (hasLeftSpace && positionedHorizontallyFitsInViewport) return 'left';\n return preferredPosition ?? 'bottom';\n}\n\nfunction getStylesForTop({\n container, targetPosition, target, size, offset, vpLeft, vpTop,\n}) {\n const style = {};\n const leftPos = {\n auto: targetPosition.left + target.offsetWidth / 2 - container.offsetWidth / 2,\n matchElement: targetPosition.left,\n matchStart: targetPosition.left,\n matchEnd: targetPosition.right - container.offsetWidth,\n }[size];\n const topPos = targetPosition.top - container.offsetHeight - offset;\n style.left = `${leftPos + vpLeft}px`;\n style.top = `${topPos + vpTop}px`;\n\n if (size === 'matchElement') {\n style.width = `${target.offsetWidth}px`;\n } else if (size === 'matchEnd') {\n style.maxWidth = `${targetPosition.right - VIEWPORT_INITIAL_PADDING}px`;\n } else if (typeof size === 'function') {\n style.width = `${size(target.offsetWidth)}px`;\n }\n style.maxHeight = `${targetPosition.top - offset}px`;\n return style;\n}\n\nfunction getStylesForBottom({\n targetPosition, target, container, size, offset, vpLeft, vpTop,\n}) {\n const style = {};\n const leftPos = {\n auto: targetPosition.left + target.offsetWidth / 2 - container.offsetWidth / 2,\n matchElement: targetPosition.left,\n matchStart: targetPosition.left,\n matchEnd: targetPosition.right - container.offsetWidth,\n }[size];\n const topPos = targetPosition.bottom + offset;\n style.left = `${leftPos + vpLeft}px`;\n style.top = `${topPos + vpTop}px`;\n\n if (size === 'matchElement') {\n style.width = `${target.offsetWidth}px`;\n } else if (size === 'matchEnd') {\n style.maxWidth = `${targetPosition.right - VIEWPORT_INITIAL_PADDING}px`;\n } else if (typeof size === 'function') {\n style.width = `${size(target.offsetWidth)}px`;\n }\n style.maxHeight = `${window.innerHeight - targetPosition.bottom - offset}px`;\n return style;\n}\n\nfunction getStylesForLeft({\n targetPosition, target, container, size, offset,\n}) {\n const style = {};\n const leftPos = targetPosition.left - container.offsetWidth - offset;\n const topPos = {\n auto: targetPosition.top + target.offsetHeight / 2 - container.offsetHeight / 2,\n matchElement: targetPosition.top,\n matchStart: targetPosition.top,\n matchEnd: targetPosition.bottom - container.offsetHeight,\n }[size];\n style.left = `${leftPos}px`;\n style.top = `${topPos}px`;\n\n if (size === 'matchElement') {\n style.height = `${target.offsetHeight}px`;\n } else if (typeof size === 'function') {\n style.height = `${size(target.offsetHeight)}px`;\n }\n style.maxWidth = `${targetPosition.left - offset}px`;\n return style;\n}\n\nfunction getStylesForRight({\n targetPosition, target, container, size, offset, vpLeft, vpTop,\n}) {\n const style = {};\n const leftPos = targetPosition.left + target.offsetWidth + offset;\n const topPos = {\n auto: targetPosition.top + target.offsetHeight / 2 - container.offsetHeight / 2,\n matchElement: targetPosition.top,\n matchStart: targetPosition.top,\n matchEnd: targetPosition.bottom - container.offsetHeight,\n }[size];\n style.left = size === 'auto' ? `${leftPos + vpLeft}px` : `${leftPos}px`;\n style.top = size === 'auto' ? `${topPos + vpTop}px` : `${topPos}px`;\n\n if (size === 'matchElement') {\n style.height = `${target.offsetHeight}px`;\n } else if (typeof size === 'function') {\n style.height = `${size(target.offsetHeight)}px`;\n }\n style.maxWidth = `${window.innerWidth - targetPosition.left - target.offsetWidth - offset}px`;\n return style;\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Message from '../Message';\n\nfunction InfoNote({ children }) {\n return (\n
\n \n { children }\n \n
\n );\n}\n\nInfoNote.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default InfoNote;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ListItem(props) {\n const {\n className,\n children,\n selected,\n } = props;\n\n return (\n
  • \n {children}\n
  • \n );\n}\n\nListItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n selected: PropTypes.bool,\n};\n\nListItem.defaultProps = {\n className: '',\n};\n\nexport default ListItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ListItem from './js/ListItem';\n\nfunction List(props) {\n const {\n className,\n children,\n label,\n labelwidth,\n theme,\n style,\n } = props;\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-list'];\n\n if (theme) {\n cssClasses.push(`tyk-list--${theme}`);\n }\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n return cssClasses.join(' ');\n };\n\n const getListStyle = () => {\n const styleCopy = structuredClone(style);\n if (labelwidth) {\n styleCopy.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styleCopy;\n };\n\n return (\n
    \n {\n label !== undefined\n ? (\n \n )\n : null\n }\n
      \n {children}\n
    \n
    \n );\n}\n\nList.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n label: PropTypes.string,\n labelwidth: PropTypes.string,\n theme: PropTypes.string,\n style: PropTypes.instanceOf(Object),\n};\n\nList.defaultProps = {\n theme: 'default',\n style: {},\n};\n\nList.Item = ListItem;\n\nexport default List;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction NavBar({\n align = 'center',\n children,\n left,\n right,\n title,\n pre,\n subtitle,\n withTabs,\n}) {\n const subtitleContent = subtitle ?

    { subtitle }

    : null;\n return (\n
    \n
    \n {pre && (\n
    {pre}
    \n )}\n {\n title\n ? (\n
    \n

    { title }

    \n { subtitleContent }\n
    \n )\n : subtitleContent\n }\n
    \n {left && (\n
    { left }
    \n )}\n {right && (\n
    { right }
    \n )}\n
    \n
    \n { children }\n
    \n );\n}\n\nNavBar.propTypes = {\n align: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n title: PropTypes.string,\n subtitle: PropTypes.string,\n pre: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n left: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n right: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n withTabs: PropTypes.bool,\n};\n\nexport default NavBar;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction NavigationItem({ children }) {\n return (\n
  • \n {children}\n
  • \n );\n}\n\nNavigationItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n};\n\nexport default NavigationItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport NavigationItem from './js/NavigationItem';\n\nfunction Navigation({ children }) {\n return (\n
      \n {children}\n
    \n );\n}\n\nNavigation.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n};\n\nNavigation.Item = NavigationItem;\n\nexport default Navigation;\n","import { createContext } from 'react';\n\nexport const PortalContext = createContext();\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Collapsible from '../../Collapsible';\nimport { PortalContext } from '../panel-context';\n\nfunction PanelBody({\n children,\n noPadding,\n className,\n ...rest\n}) {\n const getCssClasses = useCallback(\n () => [\n 'tyk-panel__body',\n className,\n noPadding && 'no-padding',\n ].filter(Boolean).join(' '),\n [className, noPadding],\n );\n\n return (\n \n {\n (portalContext) => (\n portalContext.collapsable\n ? (\n \n { children }\n \n )\n : (\n \n { children }\n
    \n )\n )\n }\n \n );\n}\n\nPanelBody.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n noPadding: PropTypes.bool,\n className: PropTypes.string,\n};\n\nexport default PanelBody;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction PanelFooter(props) {\n const { children } = props;\n return (\n
    \n { children }\n
    \n );\n}\n\nPanelFooter.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default PanelFooter;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../Icon';\nimport { PortalContext } from '../panel-context';\n\nclass PanelHeader extends Component {\n getCssClasses(props) {\n const { className } = this.props;\n let cssClasses = ['tyk-panel__header'];\n\n if (props.collapsable) {\n cssClasses.push('collapsable');\n }\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n return cssClasses.join(' ');\n }\n\n render() {\n const {\n children,\n } = this.props;\n\n return (\n \n {\n (portalContext) => {\n const HeaderTag = portalContext.theme === 'blank' ? 'h3' : 'div';\n const iconType = portalContext.collapsed ? 'chevron-down' : 'chevron-up';\n\n return (\n \n { children }\n {\n portalContext.collapsable\n ?
    \n : null\n }\n \n );\n }\n }\n
    \n );\n }\n}\n\nPanelHeader.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]).isRequired,\n className: PropTypes.string,\n};\n\nexport default PanelHeader;\n","import React, {\n useCallback, useEffect, useMemo, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport PanelBody from './js/PanelBody';\nimport PanelFooter from './js/PanelFooter';\nimport PanelHeader from './js/PanelHeader';\n\nimport { PortalContext } from './panel-context';\n\nfunction Panel(props) {\n const {\n children,\n className,\n collapsed,\n collapsable,\n theme,\n onToggleCollapse,\n collapsibleIconPosition = 'right',\n } = props;\n const [collapsedState, setCollapsedState] = useState(collapsed || false);\n\n useEffect(() => {\n if (collapsed !== collapsedState) {\n setCollapsedState(collapsed);\n }\n }, [collapsed]);\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-panel'];\n const panelTheme = `tyk-panel--${theme || 'default'}`;\n const collapsbleIconPosition = `tyk-panel__icon-collapse--${collapsibleIconPosition}`;\n\n cssClasses.push(panelTheme);\n cssClasses.push(collapsbleIconPosition);\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n if (collapsedState) {\n cssClasses.push('tyk-panel--collapsed');\n }\n\n return cssClasses.join(' ');\n };\n\n const handleToggle = useCallback(() => {\n setCollapsedState(!collapsedState);\n\n if (onToggleCollapse) {\n onToggleCollapse(!collapsedState);\n }\n }, [collapsedState, onToggleCollapse]);\n\n const context = useMemo(() => ({\n collapsable,\n collapsed: collapsedState,\n onToggle: handleToggle,\n theme,\n collapsibleIconPosition,\n }), [collapsable, collapsedState, collapsibleIconPosition, theme, handleToggle]);\n\n return (\n
    \n \n {\n (typeof children === 'function')\n ? children({\n toggleCollapse: handleToggle,\n })\n : children\n }\n \n
    \n );\n}\n\nPanel.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n collapsable: PropTypes.bool,\n collapsibleIconPosition: PropTypes.string,\n collapsed: PropTypes.bool,\n theme: PropTypes.string,\n onToggleCollapse: PropTypes.func,\n};\n\nPanel.Body = PanelBody;\nPanel.Footer = PanelFooter;\nPanel.Header = PanelHeader;\n\nexport default Panel;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * Pill\n */\nfunction Pill(props) {\n const {\n children,\n className,\n theme,\n } = props;\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-pill', ...theme.split(' ').map((t) => `tyk-pill--${t}`)];\n\n if (className) {\n cssClasses = cssClasses.concat(className);\n }\n\n return cssClasses.join(' ');\n };\n\n return (\n
    \n {children}\n
    \n );\n}\n\nPill.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n /** Css classes that can be passed to the Pill element */\n className: PropTypes.string,\n /** Theme that can be applied to a Pill */\n theme: PropTypes.string,\n};\n\nPill.defaultProps = {\n theme: 'default',\n};\n\nexport default Pill;\n","import { useRef } from 'react';\n\n/**\n * RevealPanelService is a class that manages the resizing of a panel element.\n * It provides methods to set the panel's height, hide and show it, and attach\n * event listeners for resizing.\n */\nclass RevealPanelService {\n #state = null; // Private state for mouse interactions.\n\n #panel = null; // The panel element to be resized.\n\n #gutter = null; // The gutter element used for resizing.\n\n #wrapper = null; // The wrapper element that contains the panel and gutter.\n\n #onHeightChangeCallbacks = []; // Callback function to be executed when the panel is resized.\n\n #onDragStartCallbacks = []; // Callback function to be executed when the panel is resized.\n\n #onDragEndCallbacks = []; // Callback function to be executed when the panel is resized.\n\n #dragStarted = false;\n\n /**\n * Sets a callback function to be executed when the panel is resized.\n * @param {function} callback - The callback function to be called on panel resize.\n */\n on(eventName, listener) {\n let list = null;\n if (eventName === 'onHeightChange') {\n list = this.#onHeightChangeCallbacks;\n } else if (eventName === 'onDragStart') {\n list = this.#onDragStartCallbacks;\n } else if (eventName === 'onDragEnd') {\n list = this.#onDragEndCallbacks;\n }\n\n if (list) {\n this.addListener(list, listener);\n }\n }\n\n off(eventName, listener) {\n let list = null;\n if (eventName === 'onHeightChange') {\n list = this.#onHeightChangeCallbacks;\n } else if (eventName === 'onDragStart') {\n list = this.#onDragStartCallbacks;\n } else if (eventName === 'onDragEnd') {\n list = this.#onDragEndCallbacks;\n }\n\n if (list) {\n this.removeListener(list, listener);\n }\n }\n\n /**\n * Sets the panel, gutter, and wrapper elements to be controlled by this class.\n * @param {HTMLElement} wrapper - The wrapper element containing the panel and gutter.\n * @param {HTMLElement} panel - The panel element to be resized.\n * @param {HTMLElement} gutter - The gutter element used for resizing.\n */\n setRefs(wrapper, panel, gutter) {\n if (this.#panel || this.#gutter || this.#wrapper) {\n this.unbindEvents();\n }\n this.#wrapper = wrapper;\n this.#panel = panel;\n this.#gutter = gutter;\n this.#state = null;\n this.bindEvents();\n }\n\n /**\n * Attaches event listeners for panel resizing.\n */\n bindEvents() {\n this.ensureRefs('bindEvents');\n this.#gutter.addEventListener('mousedown', this.onMouseDown.bind(this));\n document.addEventListener('mousemove', this.onMouseMove.bind(this));\n document.addEventListener('mouseup', this.onMouseUp.bind(this));\n }\n\n /**\n * Gets the current height of the panel.\n * @returns {number} - The height of the panel in pixels.\n */\n getHeight() {\n this.ensureRefs('getHeight');\n const size = this.#panel.getBoundingClientRect();\n return size.height;\n }\n\n /**\n * Handles the mouse down event, initiating the resizing process.\n * @param {MouseEvent} e - The mouse event object.\n */\n onMouseDown(e) {\n this.ensureRefs('onMouseDown');\n this.#state = {\n mouseDown: true,\n initialRect: this.#panel.getBoundingClientRect(),\n initialEvent: e,\n };\n }\n\n /**\n * Handles the mouse move event, adjusting the panel's height during resizing.\n * @param {MouseEvent} e - The mouse event object.\n */\n onMouseMove(e) {\n this.ensureRefs('onMouseMove');\n\n if (!this.#state) {\n return;\n }\n\n const isButtonDown = this.isPrimaryMouseButtonDown(e);\n if (!isButtonDown) {\n this.onMouseUp();\n return;\n }\n\n if (!this.#dragStarted) {\n this.#dragStarted = true;\n this.onDragStart.bind(this)();\n }\n\n const newY = this.#state.initialEvent.y - e.y;\n const finalHeight = Math.ceil(this.#state.initialRect.height + newY);\n this.setHeight(`${finalHeight}px`, 'mousemove');\n }\n\n // eslint-disable-next-line class-methods-use-this\n notifyListeners(list, value) {\n if (list && Array.isArray(list) && list.length) {\n list.forEach((fn) => {\n if (typeof fn === 'function') {\n fn(value);\n }\n });\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n addListener(list, listener) {\n if (list && Array.isArray(list) && typeof listener === 'function') {\n list.push(listener);\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n removeListener(list, listener) {\n if (list && Array.isArray(list) && typeof listener === 'function' && list.length) {\n const index = list.indexOf(listener);\n\n if (index > -1) {\n list.splice(index, 1);\n }\n }\n }\n\n onDragEnd() {\n if (this.#dragStarted) {\n this.notifyListeners(this.#onDragEndCallbacks, this.getHeight());\n }\n }\n\n onDragStart() {\n this.notifyListeners(this.#onDragStartCallbacks, this.getHeight());\n }\n\n // eslint-disable-next-line class-methods-use-this\n isPrimaryMouseButtonDown(e) {\n const flags = e.buttons !== undefined ? e.buttons : e.which;\n // eslint-disable-next-line no-bitwise\n const isDown = flags === 1;\n return isDown;\n }\n\n /**\n * Resets the state after the mouse up event, ending the resizing process.\n */\n onMouseUp() {\n this.#state = null;\n this.onDragEnd.bind(this)();\n this.#dragStarted = false;\n }\n\n /**\n * Sets the height of the panel.\n * @param {string} height - The new height value as a CSS string (e.g., \"100px\").\n */\n setHeight(height) {\n let heightVal = height;\n this.ensureRefs('setHeight');\n\n if (typeof heightVal === 'number') {\n heightVal += 'px';\n }\n\n this.#panel.style.height = heightVal;\n\n this.notifyListeners(this.#onHeightChangeCallbacks, this.getHeight());\n }\n\n /**\n * Ensures that the required elements (wrapper, panel, and gutter) are set.\n * Throws an error if they are missing.\n */\n ensureRefs(reason) {\n if (!this.#panel || !this.#gutter || !this.#wrapper) {\n throw new Error(\n `${reason}: Wrapper, panel, and gutter elements are required. Use setRefs method first.`,\n );\n }\n }\n\n /**\n * Checks if the panel is hidden.\n * @returns {boolean} - True if the panel is hidden; false otherwise.\n */\n isHidden() {\n this.ensureRefs('isHidden');\n return this.#wrapper.style.visibility === 'hidden';\n }\n\n /**\n * Hides the panel by setting its visibility to \"hidden\".\n */\n hide() {\n this.ensureRefs('hide');\n this.#wrapper.style.visibility = 'hidden';\n }\n\n /**\n * Shows the panel by setting its visibility to \"visible\".\n */\n show() {\n this.ensureRefs('show');\n this.#wrapper.style.visibility = 'visible';\n }\n\n /**\n * Unbinds the event listeners added for resizing.\n */\n unbindEvents() {\n this.#onHeightChangeCallbacks = [];\n this.#onDragStartCallbacks = [];\n this.#onDragEndCallbacks = [];\n this.#gutter.removeEventListener('mousedown', this.onMouseDown.bind(this));\n document.removeEventListener('mousemove', this.onMouseMove.bind(this));\n document.removeEventListener('mouseup', this.onMouseUp.bind(this));\n }\n\n deinit() {\n this.unbindEvents();\n }\n}\n\nexport const useRevealPanelService = () => {\n const revealPanelServiceRef = useRef(new RevealPanelService());\n return revealPanelServiceRef.current;\n};\n","import React, {\n useEffect,\n useRef,\n useImperativeHandle,\n forwardRef,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { createPortal } from 'react-dom';\nimport { useRevealPanelService } from './js/RevealPanelService';\n\nfunction RevealPanelHeaderLeft({ children }) {\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return <>{children};\n}\n\nRevealPanelHeaderLeft.propTypes = {\n children: PropTypes.instanceOf({}),\n};\n\nfunction RevealPanelHeaderRight({ children }) {\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return <>{children};\n}\n\nRevealPanelHeaderRight.propTypes = {\n children: PropTypes.instanceOf({}),\n};\n\nconst mergeClasses = (...classNames) => classNames.map((it) => (it || '').trim()).filter(Boolean).join(' ');\n\nfunction RevealPanel({\n children,\n height,\n onHeightChange = null,\n onDragStart = null,\n onDragEnd = null,\n style = null,\n parentSelector = null,\n contentStyle,\n contentClassName,\n gutterClassName,\n wrapperClassName,\n// eslint-disable-next-line consistent-return\n}, ref) {\n const panelRef = useRef(null);\n const gutterRef = useRef(null);\n const wrapperRef = useRef(null);\n\n const panelService = useRevealPanelService();\n\n useEffect(() => {\n if (!panelRef.current || !gutterRef.current || !wrapperRef.current) {\n return;\n }\n\n if (!panelService) {\n return;\n }\n\n panelService.setRefs(wrapperRef.current, panelRef.current, gutterRef.current);\n panelService.on('onHeightChange', onHeightChange);\n panelService.on('onDragStart', onDragStart);\n panelService.on('onDragEnd', onDragEnd);\n panelService.setHeight(height, 'initialize');\n\n // eslint-disable-next-line consistent-return\n return () => {\n panelService.unbindEvents();\n };\n }, []);\n\n useImperativeHandle(\n ref,\n () => {\n // bind this context\n const bind = (func) => func.bind(panelService);\n\n return {\n getHeight: bind(panelService.getHeight),\n setHeight: bind(panelService.setHeight),\n hide: bind(panelService.hide),\n show: bind(panelService.show),\n isHidden: bind(panelService.isHidden),\n deinit: bind(panelService.deinit),\n on: bind(panelService.on),\n off: bind(panelService.off),\n };\n },\n [],\n );\n\n let headerLeft = null;\n let headerRight = null;\n const contents = [];\n\n React.Children.forEach(children, (child) => {\n if (child && React.isValidElement(child)) {\n if (child.type === RevealPanelHeaderLeft) {\n headerLeft = child;\n } else if (child.type === RevealPanelHeaderRight) {\n headerRight = child;\n } else {\n contents.push(child);\n }\n }\n });\n\n const element = (\n
    \n
    \n
    \n\n
    {headerLeft}
    \n
    \n
    {headerRight}
    \n\n
    \n
    \n {contents}\n
    \n
    \n );\n\n if (parentSelector) {\n return createPortal(element, document.querySelector(parentSelector));\n }\n}\n\nRevealPanel.propTypes = {\n children: PropTypes.instanceOf({}),\n height: PropTypes.string,\n onHeightChange: PropTypes.func,\n onDragStart: PropTypes.func,\n onDragEnd: PropTypes.func,\n parentSelector: PropTypes.string,\n style: PropTypes.instanceOf({}),\n contentStyle: PropTypes.instanceOf({}),\n contentClassName: PropTypes.string,\n gutterClassName: PropTypes.string,\n wrapperClassName: PropTypes.string,\n};\nconst TempRevealPanel = forwardRef(RevealPanel);\nTempRevealPanel.HeaderLeft = RevealPanelHeaderLeft;\nTempRevealPanel.HeaderRight = RevealPanelHeaderRight;\n\nexport default TempRevealPanel;\n","import { createContext } from 'react';\n\nexport const TabsContext = createContext();\n","import { createContext } from 'react';\n\nexport default createContext();\n","import React, { useEffect, useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport TabContext from './TabContext';\nimport { usePrevious } from '../../../hooks';\n\nfunction TabContent(props) {\n const {\n addTab,\n hideTab,\n updateTab,\n showTab,\n children,\n selectedPath,\n tabData,\n tabsId,\n tabExists,\n path,\n rendered,\n hideTabContent,\n tabs,\n } = props;\n\n useEffect(() => {\n const tempTabData = { ...tabData };\n\n if (!tabExists(path)) {\n addTab(tempTabData, path);\n }\n }, [tabData, path]);\n\n const prevTabData = usePrevious(tabData);\n useEffect(() => {\n if (\n tabExists(path) && tabData?.title\n && (prevTabData?.title !== tabData?.title || prevTabData?.selected !== tabData.selected)\n ) {\n const tempTabData = { ...tabData };\n updateTab(tempTabData, path);\n }\n }, [tabData, path, prevTabData, tabs]);\n\n useEffect(() => {\n showTab(path);\n return () => hideTab(path);\n }, []);\n\n const shouldRender = useMemo(() => {\n if (!Object.keys(tabs).length) {\n return false;\n }\n\n if (hideTabContent || tabs[tabData.id].show === false) {\n return false;\n }\n\n if (!rendered) {\n return tabExists(path);\n }\n return selectedPath && selectedPath.indexOf(tabData.id) > -1;\n }, [hideTabContent, rendered, selectedPath, tabData, tabs]);\n\n const context = useMemo(() => ({ path, tabsId }), [path, tabsId]);\n\n if (!shouldRender) return null;\n return (\n
    -1 ? 'block' : 'none' }}>\n \n {children}\n \n
    \n );\n}\n\nTabContent.propTypes = {\n addTab: PropTypes.func,\n updateTab: PropTypes.func,\n hideTab: PropTypes.func,\n showTab: PropTypes.func,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n path: PropTypes.instanceOf(Array),\n hideTabContent: PropTypes.bool,\n rendered: PropTypes.bool,\n selectedPath: PropTypes.instanceOf(Array),\n tabExists: PropTypes.func,\n tabsId: PropTypes.string,\n tabData: PropTypes.instanceOf(Object),\n tabs: PropTypes.instanceOf(Object),\n};\n\nexport default TabContent;\n","import React, {\n useContext, useEffect, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { TabsContext } from '../tabs-context';\nimport TabContext from './TabContext';\nimport TabContent from './TabContent';\n\nfunction Tab(props) {\n const { id } = props;\n const tabsContext = useContext(TabsContext);\n const tabContext = useContext(TabContext);\n const {\n tabExists,\n selectedPath,\n addTab,\n updateTab,\n hideTab,\n showTab,\n rendered,\n hideTabContent,\n tabs,\n } = tabsContext;\n const {\n children,\n } = props;\n const [path, setPath] = useState('');\n\n useEffect(() => {\n let tempPath;\n if (tabContext && path) {\n if (tabContext.tabsId === tabsContext.id) {\n tempPath = tabContext.path.concat([id]);\n } else {\n tempPath = [id];\n }\n } else {\n tempPath = [id];\n }\n setPath(tempPath);\n }, [tabContext]);\n\n if (!path) {\n return null;\n }\n\n return (\n \n {children}\n \n );\n}\n\nTab.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n id: PropTypes.string,\n};\n\nTab.defaultProps = {};\n\nexport default Tab;\n","import React, {\n useEffect, useMemo, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport Tab from './js/Tab';\n\nimport Collapsible from '../Collapsible';\nimport Icon from '../Icon';\nimport { TabsContext } from './tabs-context';\n\nfunction Tabs(props) {\n const {\n children,\n className,\n id,\n onTabChange,\n type,\n hideTabContent,\n } = props;\n const [tabs, setTabs] = useState({});\n const [selectedPath, setSelectedPath] = useState([]);\n const [rendered, setRendered] = useState(false);\n const [initialPath, setInitialPath] = useState(null);\n\n useEffect(() => {\n setSelectedPath(initialPath);\n }, [initialPath]);\n\n const updateTabsList = (tabsState, path, tabData) => {\n let tempTabsState = { ...tabsState };\n const tempTabData = { ...tabData };\n const tempPath = path.slice(0);\n\n while (tempPath.length > 1) {\n tempTabsState = tempTabsState[tempPath.shift()];\n\n if (!tempTabsState) {\n tempTabsState = {};\n }\n }\n\n tempTabData.tempPath = tempPath;\n tempTabsState[tempPath.shift()] = tempTabData;\n\n return tempTabsState;\n };\n\n const toggleTab = (tabsState, path) => {\n let tempTabsState = { ...tabsState };\n const tempPath = path.slice(0);\n\n while (tempPath.length > 1) {\n tempTabsState = tempTabsState[tempPath.shift()];\n }\n\n const key = tempPath.shift();\n if (tempTabsState[key].collapsed === undefined) {\n tempTabsState[key].collapsed = true;\n } else {\n tempTabsState[key].collapsed = !tempTabsState[key].collapsed;\n }\n\n return tempTabsState;\n };\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-tabs'];\n\n cssClasses.push(`tyk-tabs--${type || 'default'}`);\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n return cssClasses.join(' ');\n };\n\n const setCurrentSelectedPath = (path, tabData) => {\n const tempPath = path.slice(0);\n let tempRendered = true;\n\n if (tabData.collapsible) {\n tempPath.push(Object.keys(tabData.tabs)[0]);\n tempRendered = false;\n }\n\n setTabs((prevTabs) => {\n let tempTabs = { ...prevTabs };\n\n tempTabs = toggleTab(tempTabs, path);\n\n return tempTabs;\n });\n setSelectedPath(tempPath);\n setRendered(tempRendered);\n\n if (onTabChange) {\n onTabChange(tabData);\n }\n };\n\n const getTabCssClass = (tabId) => {\n const cssClasses = [];\n\n if (selectedPath && selectedPath.indexOf(tabId) > -1) {\n cssClasses.push('active');\n }\n\n return cssClasses.join(' ');\n };\n\n const genTabs = (currentTabs, path) => {\n if (!currentTabs) {\n return null;\n }\n\n return (\n
      \n {\n Object.keys(currentTabs).map((tabId, index) => {\n const tempPath = path ? path.concat([currentTabs[tabId].id]) : [currentTabs[tabId].id];\n const iconType = currentTabs[tabId].collapsed ? 'chevron-up' : 'chevron-down';\n\n if (currentTabs[tabId].show === false) {\n return null;\n }\n\n return (\n
    • \n \n { currentTabs[tabId].title }\n {\n currentTabs[tabId].collapsible\n ? \n : null\n }\n \n {\n currentTabs[tabId].collapsible\n ? (\n \n {genTabs(currentTabs[tabId].tabs, tempPath)}\n \n )\n : genTabs(currentTabs[tabId].tabs, tempPath)\n }\n
    • \n );\n })\n }\n
    \n );\n };\n\n const addTab = (tabData, path) => {\n setTabs((prevTabs) => updateTabsList({ ...prevTabs }, path, tabData));\n\n if (tabData.selected) {\n setInitialPath(path);\n }\n };\n\n const updateTab = (tabData, path) => {\n setTabs((prevTabs) => {\n const tempTabs = { ...prevTabs };\n tempTabs[tabData.id] = tabData;\n return tempTabs;\n });\n\n if (tabData.selected) {\n setCurrentSelectedPath(path, tabData);\n }\n };\n\n const hideTab = (path) => {\n setTabs((prevTabs) => {\n const tempTabs = { ...prevTabs };\n tempTabs[path].show = false;\n\n return tempTabs;\n });\n };\n\n const showTab = (path) => {\n setTabs((prevTabs) => {\n const tempTabs = { ...prevTabs };\n\n tempTabs[path].show = true;\n\n return tempTabs;\n });\n };\n\n const tabExists = (path) => {\n let tempTabs = { ...tabs };\n const tempPath = path.slice(0);\n while (tempPath.length > 1) {\n tempTabs = tempTabs[tempPath.shift()];\n }\n\n const key = tempPath.shift();\n\n return Boolean(tempTabs?.[key]);\n };\n\n const context = useMemo(() => ({\n id,\n addTab,\n hideTab,\n updateTab,\n showTab,\n tabExists,\n selectedPath,\n rendered,\n hideTabContent,\n tabs,\n }), [\n id,\n addTab,\n hideTab,\n updateTab,\n showTab,\n tabExists,\n selectedPath,\n rendered,\n hideTabContent,\n tabs,\n ]);\n\n return (\n
    \n {genTabs(tabs)}\n \n {\n (typeof children === 'function')\n ? children({\n hideTab,\n showTab,\n })\n : children\n }\n \n
    \n );\n}\n\nTabs.propTypes = {\n className: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n hideTabContent: PropTypes.bool,\n id: PropTypes.string,\n onTabChange: PropTypes.func,\n type: PropTypes.string,\n};\n\nTabs.Tab = Tab;\n\nexport default Tabs;\n","import React, {\n useCallback, useEffect, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport FloatingContainer from '../FloatingContainer';\nimport Icon from '../Icon';\n\nfunction Tooltip({\n render,\n className,\n children,\n position = 'auto',\n style,\n icon = false,\n closable,\n isOpened = false,\n additionalClickParents = [],\n ...props\n}) {\n const [isActive, setIsActive] = useState(false);\n const wrapperRef = useRef(null);\n const tooltipRef = useRef(null);\n const activeEvents = closable\n ? {\n onClick: () => setIsActive(true),\n }\n : {\n onMouseEnter: () => setIsActive(true),\n onMouseLeave: () => setIsActive(false),\n onFocus: () => setIsActive(true),\n onBlur: () => setIsActive(false),\n };\n\n const handleDocumentClick = useCallback((e) => {\n if ([...additionalClickParents, tooltipRef.current].some((p) => p?.contains?.(e.target))) {\n return;\n }\n setIsActive(false);\n }, [additionalClickParents]);\n\n useEffect(() => {\n document.addEventListener('click', handleDocumentClick, true);\n return () => document.removeEventListener('click', handleDocumentClick, true);\n }, [handleDocumentClick]);\n\n useEffect(() => {\n setIsActive(isOpened);\n }, [isOpened]);\n\n const classes = ['tyk-tooltip', className].filter(Boolean).join(' ');\n return (\n \n {children}\n {isActive && (\n \n
    \n {icon && (\n icon === true ? (\n \n ) : (\n icon\n )\n )}\n
    \n {render}\n
    \n {closable && (\n {\n e.stopPropagation();\n setIsActive(false);\n }}\n />\n )}\n
    \n \n )}\n
    \n );\n}\n\nTooltip.propTypes = {\n children: PropTypes.node.isRequired,\n /** custom styles to apply on hovered element */\n style: PropTypes.instanceOf(Object),\n /** describes where the tooltip should be displayed in relation\n * whith the hovered element: top, bottom, left, right\n */\n position: PropTypes.string,\n /** content of the tooltip, can be a string or a React node element */\n render: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.string,\n ]),\n /** additional tooltip classes */\n className: PropTypes.string,\n /** if `true` displays the \"question mark\" icon;\n * optionally you can pass a different icon\n */\n icon: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.node,\n ]),\n /** if `true` the tooltip is activated on click and an \"x\" is displayed to close it;\n * if `false` the tooltip is activated on hover and it closes when no longer hovering\n */\n closable: PropTypes.bool,\n /** handles the `isActive` state of the tooltip from outside */\n isOpened: PropTypes.bool,\n /** Additional dom elements to check if the document click was inside of them.\n * Useful when you want to open the tooltip after an interaction\n * with an element not inside the tooltip root.\n */\n additionalClickParents: PropTypes.instanceOf(Array),\n};\n\nexport default Tooltip;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Tooltip from '../Tooltip';\n/**\n * TextEllipsis component helps you to hide a part of a text,\n * but displaying it when it's being hovered.\n * The entire text is displayed with the help of Tooltip component\n */\n\nfunction TextEllipsis({ text, limit, position }) {\n return (\n text.length > limit\n ? (\n \n {text.substring(0, limit)}\n ...\n \n )\n : text\n );\n}\n\nTextEllipsis.propTypes = {\n /** Text to be shrinked by TextEllipsis */\n text: PropTypes.string,\n /** Number of characters that TextEllipsis would leave visible */\n limit: PropTypes.number,\n /** tooltip position */\n position: PropTypes.string,\n};\n\nexport default TextEllipsis;\n","import React, { useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction shouldShowPage(currentNr, pageNr, totalNrOfPages) {\n const basePageNr = 5;\n const minimumNrOfPages = 10;\n\n if (totalNrOfPages < minimumNrOfPages) {\n return true;\n }\n\n if (\n pageNr < basePageNr\n && currentNr < basePageNr\n ) {\n return true;\n }\n\n if (\n pageNr > totalNrOfPages - basePageNr\n && currentNr > totalNrOfPages - basePageNr\n ) {\n return true;\n }\n\n if (\n currentNr >= pageNr - 2\n && currentNr <= pageNr + 2\n ) {\n return true;\n }\n\n return [0, 1, totalNrOfPages - 1, totalNrOfPages].includes(currentNr);\n}\n\nfunction getPagesArr(nrOfPages, selectedPage) {\n let i;\n const pagesArr = [];\n\n for (i = 0; i <= nrOfPages; i += 1) {\n if (shouldShowPage(i, selectedPage, nrOfPages)) {\n if (i > pagesArr.at(-1)) {\n pagesArr.push(`...-${i}`);\n }\n pagesArr.push(i + 1);\n }\n }\n\n return pagesArr;\n}\n\nfunction Pagination(props) {\n const {\n value = 0,\n totalNrOfPages,\n onChange,\n } = props;\n\n const [selectedPage, setSelectedPage] = useState(value);\n\n const pagesArray = useMemo(\n () => getPagesArr(totalNrOfPages, selectedPage),\n [selectedPage, totalNrOfPages],\n );\n\n function goToPage(pageNr) {\n setSelectedPage(pageNr);\n if (onChange) onChange(pageNr);\n }\n\n return (\n totalNrOfPages\n ? (\n
      \n {selectedPage > 0 && totalNrOfPages > 5 && (\n
    • \n \n
    • \n )}\n {\n pagesArray.map((pageNr) => (\n
    • \n {\n String(pageNr).startsWith('...')\n ? ...\n : \n }\n
    • \n ))\n }\n {selectedPage < totalNrOfPages && totalNrOfPages > 5 && (\n
    • \n \n
    • \n )}\n
    \n )\n : null\n );\n}\n\nPagination.propTypes = {\n value: PropTypes.number,\n totalNrOfPages: PropTypes.number,\n onChange: PropTypes.func,\n};\n\nexport default Pagination;\n","import { createContext } from 'react';\n\nexport const tableContext = createContext();\n","import React, { useState, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { tableContext } from '../tableContext';\nimport Icon from '../../Icon';\n\nexport function HeaderCell({ column }) {\n const { sortable } = column;\n const [sortOrder, setSortOrder] = useState(sortable?.default || 'ASC');\n const { state, sendMessage } = useContext(tableContext);\n return (\n {\n sendMessage('sort', { column, sortOrder });\n setSortOrder(sortOrder === 'ASC' ? 'DESC' : 'ASC');\n } : null}\n className={state.maxHeight ? 'fixed-header' : ''}\n >\n {column.name}\n {column.sortable && (\n \n \n \n )}\n \n );\n}\n\nHeaderCell.propTypes = {\n column: PropTypes.instanceOf(Object),\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { HeaderCell } from './header-cell';\nimport { tableContext } from '../tableContext';\n\nexport function Header({ allRowsSelected }) {\n const { state, sendMessage } = useContext(tableContext);\n const { columns, selectable } = state;\n\n const generateHeaders = () => columns.map((column) => (\n \n ));\n\n const generateSelectable = () => {\n const Component = selectable.type;\n return (\n \n {selectable?.allowSelectAll ? (\n
    \n {\n const isCheckbox = v?.target?.tagName.toLowerCase() === 'input' && v?.target?.type.toLowerCase() === 'checkbox';\n sendMessage('header.selectAll.change', isCheckbox ? v.target.checked : Boolean(v));\n }}\n >\n {selectable.values?.value}\n \n
    \n ) : (\n selectable.name || 'Select'\n )}\n \n );\n };\n\n return (\n \n \n {selectable?.position === 'LEFT' && generateSelectable()}\n {generateHeaders()}\n {selectable?.position === 'RIGHT' && generateSelectable()}\n \n \n );\n}\n\nHeader.propTypes = {\n allRowsSelected: PropTypes.bool,\n};\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * - Checkboxes are used when a user needs to select one or more values from a series of options.\n * - They can be also be used as a binary toggle but consider radio instead.\n * - Can be used with Formik respectively (FormikCheckbox)\n */\nclass Checkbox extends Component {\n getCssClasses() {\n const {\n inline, disabled, readOnly, theme = '', wrapperClassName = '',\n } = this.props;\n\n const cssClasses = [wrapperClassName];\n\n cssClasses.push('tyk-checkbox');\n\n if (inline) {\n cssClasses.push('tyk-checkbox--inline');\n }\n\n if (theme.trim()) {\n cssClasses.push(...theme.split(' ').map((t) => `tyk-checkbox--theme-${t}`));\n }\n\n if (disabled || readOnly) {\n cssClasses.push('tyk-checkbox--is-disabled');\n }\n\n return cssClasses.join(' ');\n }\n\n displayError() {\n const { error } = this.props;\n if (!error) return null;\n\n return (\n

    \n {error}\n

    \n );\n }\n\n displayNote() {\n const { note } = this.props;\n if (!note) return null;\n\n return (\n

    \n {note}\n

    \n );\n }\n\n render() {\n const {\n input, value, label, ...rest\n } = this.props;\n return (\n \n
    \n \n {this.displayNote()}\n {this.displayError()}\n
    \n \n );\n }\n}\n\nCheckbox.propTypes = {\n /** Disable a checkbox */\n disabled: PropTypes.bool,\n /** Readonly prop behaves the same as disable on checkboxes */\n readOnly: PropTypes.bool,\n /** Align checkbox with in same line with other elements */\n inline: PropTypes.bool,\n /** Set a theme for checkbox */\n theme: PropTypes.string,\n /** Set an error state for checkbox if boolean will show just icon without message */\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n /** Adds additional information under the checkbox element */\n note: PropTypes.string,\n input: PropTypes.instanceOf(Object),\n /** Adds a label to checkbox */\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n /** Set a name for checkbox */\n name: PropTypes.string,\n /** Set initial value for checkbox */\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n /** Make checkbox checked by default */\n checked: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n /** Callback function executed on change of checkbox */\n onChange: PropTypes.func,\n /** CSS classes added to the wrapper of the component */\n wrapperClassName: PropTypes.string,\n};\n\nexport default Checkbox;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nexport function Cell({ col, row }) {\n if (!row.values[col.id]) {\n return ; // eslint-disable-line jsx-a11y/control-has-associated-label\n }\n\n if (col.type === 'string') {\n return (\n \n {row.values[col.id]?.value}\n \n );\n }\n const Component = col.type;\n return (\n \n \n {row.values[col.id].children ? row.values[col.id].children : null}\n \n \n );\n}\n\nCell.propTypes = {\n col: PropTypes.instanceOf(Object),\n row: PropTypes.instanceOf(Object),\n index: PropTypes.number,\n};\n","import React, { useCallback, useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport Checkbox from '../../../form/components/Checkbox';\nimport { Cell } from './cell';\nimport { tableContext } from '../tableContext';\n\nexport function Row({ row, index }) {\n const { state, sendMessage } = useContext(tableContext);\n const { columns, selectable } = state;\n\n const SelectableCheckbox = useCallback(() => (\n // eslint-disable-next-line jsx-a11y/control-has-associated-label\n \n sendMessage('row.selected', { index, selected: v.target.checked })}\n />\n \n ), [row.selected, index]);\n\n return (\n \n {selectable && selectable.position === 'LEFT' && SelectableCheckbox()}\n {columns.map((col) => (\n \n ))}\n {selectable && selectable.position === 'RIGHT' && SelectableCheckbox()}\n \n );\n}\n\nRow.propTypes = {\n row: PropTypes.instanceOf(Object),\n index: PropTypes.number,\n};\n","import React, { useContext } from 'react';\nimport { tableContext } from '../tableContext';\nimport { Row } from './row';\n\nexport function Body() {\n const { state } = useContext(tableContext);\n const { rows } = state;\n\n return (\n \n {\n // eslint-disable-next-line react/no-array-index-key\n rows.map((row, i) => )\n }\n \n );\n}\n","import React, {\n useCallback, useEffect, useMemo, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport Message from '../Message';\nimport Pagination from '../../form/components/Pagination';\nimport Loader from '../Loader';\nimport InfiniteScroller from '../InfiniteScroller';\nimport { Header } from './js/header';\nimport { Body } from './js/body';\nimport { tableContext } from './tableContext';\n\n/**\n * This is tyk's table component used to render a data in a tabular view.\n * See the example configuration object below to understand how to hydrate the table component\n */\n\nfunction Table({\n value, onChange, noDataMessage, loading, infiniteScrolling,\n}) {\n const [state, setState] = useState(null);\n const [onChangeMsg, setOnChangeMsg] = useState('api');\n const itemsListRef = useRef(null);\n const sortRows = useCallback((col, sortOrder) => {\n setState((prevState) => ({\n ...prevState,\n sort: {\n order: sortOrder,\n col,\n },\n }));\n }, []);\n\n const selectAllRows = useCallback((selected) => {\n setState((prevState) => ({\n ...prevState,\n rows: prevState.rows.map((row) => ({ ...row, selected })),\n }));\n }, []);\n\n const selectRow = useCallback(({ index, selected }) => {\n setState((prevState) => ({\n ...prevState,\n rows: [\n ...prevState.rows.slice(0, index),\n { ...prevState.rows[index], selected },\n ...prevState.rows.slice(index + 1),\n ],\n }));\n }, []);\n\n const setPagination = useCallback((data) => {\n setState((prevState) => ({\n ...prevState,\n pagination: {\n ...prevState.pagination,\n current: data + 1,\n },\n }));\n }, []);\n\n const api = {\n getState: () => state,\n setState: (newState) => setState(newState),\n };\n\n const sendMessage = useCallback((message, data) => {\n setOnChangeMsg(message);\n if (message === 'sort') {\n sortRows(data.column.id, data.sortOrder);\n }\n\n if (message === 'header.selectAll.change') {\n selectAllRows(data);\n }\n\n if (message === 'row.selected') {\n selectRow(data);\n }\n\n if (message === 'pagination.change') {\n setPagination(data);\n }\n }, [sortRows, selectAllRows, selectRow, setPagination]);\n\n const context = useMemo(() => ({ state, sendMessage }), [state, sendMessage]);\n\n useEffect(() => setState(value), [value]);\n useEffect(() => {\n if (onChange) {\n onChange(onChangeMsg, state, api);\n }\n setOnChangeMsg('api');\n }, [state]);\n\n if (!state) {\n return ;\n }\n\n if (state.rows <= 0) {\n return {noDataMessage || 'No Data Available'};\n }\n\n const getTable = () => (\n \n
    selected)} />\n \n
    \n );\n\n return (\n \n
    \n {\n loading && \n }\n {\n infiniteScrolling && state.pagination\n ? (\n state.pagination.current}\n loadMore={(num) => sendMessage('pagination.change', num)}\n pageNumber={state.pagination.current - 1}\n initialLoad={false}\n >\n { getTable() }\n \n )\n : getTable()\n }\n
    \n {state.pagination && !infiniteScrolling && (\n
    \n sendMessage('pagination.change', num)}\n />\n
    \n )}\n
    \n );\n}\n\nTable.propTypes = {\n /** Configuration object used to render the component */\n value: PropTypes.shape({\n /** Configuration for table columns */\n columns: PropTypes.arrayOf(PropTypes.shape({\n /** Unique id of the column */\n id: PropTypes.string.isRequired,\n /** Name of the column */\n name: PropTypes.string,\n /** Type of column, String by default */\n type: PropTypes.oneOfType([\n /** Just renders cell data of type strings */\n PropTypes.string,\n /** Render cell of elements (eg. Input / Button) */\n PropTypes.element,\n /** Render a custom function/component */\n PropTypes.func,\n ]),\n sortable: PropTypes.oneOfType([\n /** Make Column sortable */\n PropTypes.bool,\n /** Configure sorting behaviour */\n PropTypes.shape({\n /** Set default sorting direction ASC / DESC */\n default: PropTypes.string,\n }),\n ]),\n })),\n /** Configuration for table rows */\n rows: PropTypes.arrayOf(PropTypes.shape({})),\n /** Configuration to make table rows selectable */\n selectable: PropTypes.shape({}),\n /** Renders pagination for table if the object is missing / empty no pagination is rendered. */\n pagination: PropTypes.shape({}),\n /** Sets maximum height for table container. */\n maxHeight: PropTypes.string,\n /** Styling for the table container. */\n styling: PropTypes.shape({\n /** It's recommended to add styles to a class and pass the class in this object */\n className: PropTypes.string,\n }),\n }).isRequired,\n /** Callback executed with message and value when there are changes on table */\n onChange: PropTypes.func,\n /** Renders a component with the given message when `config.rows` is empty */\n noDataMessage: PropTypes.string,\n /** Show placeholder loader */\n loading: PropTypes.bool,\n /** Adds infinite scroller on page and calls `onChange` with `pagination.change` message */\n infiniteScrolling: PropTypes.bool,\n};\n\nTable.defaultProps = {\n loading: false,\n infiniteScrolling: false,\n noDataMessage: 'No Data Available',\n onChange: null,\n};\n\nexport default Table;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Column({\n children,\n align,\n className,\n offset,\n size,\n ...rest\n}) {\n const classes = [\n 'tyk-col',\n className,\n align && `tyk-col--align-${align}`,\n ...size.split(' ').map((cSize) => `tyk-col--${cSize}`),\n ...(offset ? offset.split(' ') : []).map((cOffset) => `tyk-col--offset-${cOffset}`),\n ].filter(Boolean).join(' ');\n\n return (\n
    \n { children }\n
    \n );\n}\n\nColumn.propTypes = {\n /**\n * This property describes how the column element will be aligned vertically\n * within a Row: bottom, center, top\n */\n align: PropTypes.string,\n /** Css classes that can be passed to the column element */\n className: PropTypes.string,\n /**\n * Specifies the size of the column within a Row (values must be between 1 - 12)\n */\n size: PropTypes.string.isRequired,\n /**\n * Specifies the left gap a column can have within a Row (values must be between 1 - 12)\n */\n offset: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n PropTypes.object,\n PropTypes.node,\n ]),\n};\n\nexport default Column;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/** Row component which must be always present as a wrapper for Columns */\nfunction Row({\n className,\n nogutters,\n children,\n ...rest\n}) {\n const classes = [\n 'tyk-row',\n className,\n nogutters && 'no-gutters',\n nogutters && 'tyk-row--gutterless',\n ].filter(Boolean).join(' ');\n\n return (\n
    \n { children }\n
    \n );\n}\n\nRow.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n /** Css classes that can be passed to the Row element */\n className: PropTypes.string,\n /** Removes all the spaces between column */\n nogutters: PropTypes.bool,\n};\n\nexport default Row;\n","import { createContext } from 'react';\n\nexport const DropdownContext = createContext();\n","import React, { cloneElement, useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { DropdownContext } from '../dropdown-context';\nimport Icon from '../../../../components/Icon';\n\nfunction DropdownItem(props) {\n const {\n customdropdownitem,\n children,\n eventKey,\n href,\n target,\n title,\n onClick,\n } = props;\n const dropdownItemCLick = useCallback((dropdownContext, itemProps) => {\n dropdownContext.onSelectItem(eventKey, itemProps);\n\n if (onClick) onClick(eventKey);\n }, []);\n\n return (\n \n {\n (dropdownContext) => (\n dropdownItemCLick(dropdownContext, props)}\n onKeyUp={() => {}}\n >\n {\n customdropdownitem\n ? cloneElement(customdropdownitem, {})\n : (\n \n {\n eventKey\n && dropdownContext.selectedItem === eventKey\n && dropdownContext.showCheckmark\n ? \n : null\n }\n \n {title || children}\n \n \n )\n }\n \n )\n }\n \n );\n}\n\nDropdownItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n customdropdownitem: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n ]),\n eventKey: PropTypes.string,\n href: PropTypes.string,\n target: PropTypes.string,\n onClick: PropTypes.func,\n title: PropTypes.string,\n};\n\nexport default DropdownItem;\n","import React, {\n Component, createRef,\n} from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport DropdownItem from './js/DropdownItem';\nimport Button from '../../../components/Button';\nimport { DropdownContext } from './dropdown-context';\n\nclass Dropdown extends Component {\n static isElemInRightView(el, dropdownWidth) {\n const windowWidth = window.innerWidth;\n const offset = el.getBoundingClientRect();\n const elemRight = offset.left + dropdownWidth;\n\n return elemRight <= windowWidth;\n }\n\n static isElemInBottomView(el, dropdownHeight) {\n const windowHeight = window.innerHeight;\n const offset = el.getBoundingClientRect();\n const elHeight = el.clientHeight;\n const elemBottom = offset.top + elHeight + dropdownHeight;\n\n return elemBottom <= windowHeight;\n }\n\n constructor(props) {\n super(props);\n\n const {\n selectedItem,\n open,\n } = this.props;\n\n this.state = {\n opened: open,\n selectedItem: selectedItem || null,\n };\n\n this.dropdownRef = createRef();\n this.dropdownListRef = createRef();\n this.dropdownButtonRef = createRef();\n this.onSelectItem = this.onSelectItem.bind(this);\n this.toggleDropdown = this.toggleDropdown.bind(this);\n this.handleClickOutside = this.handleClickOutside.bind(this);\n }\n\n componentDidMount() {\n document.addEventListener('mousedown', this.handleClickOutside);\n\n if (this.dropdownListRef.current) {\n this.getStyles();\n }\n }\n\n componentDidUpdate(prevProps) {\n const {\n open,\n } = this.props;\n const {\n opened,\n } = this.state;\n\n if (this.dropdownListRef.current) {\n this.getStyles();\n }\n\n if (\n !prevProps.open\n && open === true\n && !opened\n ) {\n this.toggleDropdown();\n }\n\n if (\n prevProps.open\n && open === false\n && opened\n ) {\n this.closeDropdown();\n }\n }\n\n componentWillUnmount() {\n document.removeEventListener('mousedown', this.handleClickOutside);\n }\n\n handleClickOutside(event) {\n if (\n this.dropdownListRef.current && !this.dropdownListRef.current.contains(event.target)\n && this.dropdownRef.current && !this.dropdownRef.current.contains(event.target)\n ) {\n this.closeDropdown();\n }\n }\n\n onSelectItem(itemId, itemProps) {\n const { closeOnSelect, onSelect } = this.props;\n const changes = {\n selectedItem: itemId,\n selectedItemProps: itemProps,\n };\n\n if (closeOnSelect) {\n changes.opened = false;\n }\n\n this.setState(changes);\n\n if (onSelect && typeof onSelect === 'function') {\n onSelect(itemId);\n }\n }\n\n getStyles() {\n const {\n display,\n position,\n offset,\n } = this.props;\n\n const dropdownEl = this.dropdownListRef.current;\n\n if (offset) {\n dropdownEl.style.top = `${offset.top}`;\n dropdownEl.style.left = `${offset.left}`;\n return;\n }\n\n const scrollTop = Math.max(\n document.documentElement.scrollTop,\n document.body.scrollTop,\n window.scrollY,\n );\n const el = this.dropdownRef.current;\n const elHeight = el.clientHeight;\n const dropdownHeight = dropdownEl ? dropdownEl.clientHeight : 0;\n const dropdownWidth = dropdownEl ? dropdownEl.clientWidth : 0;\n const offsetPosition = el.getBoundingClientRect();\n const { left, top } = offsetPosition;\n let customTop = 0;\n let customLeft = left;\n\n // calculate top position, depending on the element position on the page\n if (Dropdown.isElemInBottomView(el, dropdownHeight)) {\n customTop = top + scrollTop + elHeight;\n } else {\n customTop = top + scrollTop - dropdownHeight - 5;\n }\n\n if (!Dropdown.isElemInRightView(el, dropdownWidth)) {\n customLeft = left + el.clientWidth - dropdownWidth;\n }\n\n if (position !== 'relative') {\n dropdownEl.style.top = `${customTop}px`;\n if (display !== 'block') {\n dropdownEl.style.left = `${customLeft}px`;\n }\n }\n if (display !== 'block') {\n dropdownEl.style.minWidth = `${this.dropdownButtonRef.current.clientWidth}px`;\n }\n }\n\n getWrapperCssClasses() {\n const {\n btnGroup,\n btnGroupSize,\n className,\n btnTheme,\n wrapperClassName = '',\n } = this.props;\n let cssClasses = [wrapperClassName, 'tyk-dropdown'];\n\n cssClasses.push(`theme-${btnTheme || 'default'}`);\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n if (btnGroup) {\n cssClasses.push('tyk-button-group');\n cssClasses.push(btnGroupSize ? `tyk-button-group--${btnGroupSize}` : 'tyk-button-group--md');\n }\n\n return cssClasses.join(' ');\n }\n\n getCssClasses() {\n const {\n opened,\n } = this.state;\n const {\n hasCustomContent,\n display,\n listclassnames,\n position,\n maxHeight,\n } = this.props;\n let cssClasses = ['tyk-dropdown-menu', 'tyk-dropdown'];\n\n if (maxHeight) {\n cssClasses.push('tyk-dropdown--scrollable');\n }\n\n if (opened) {\n cssClasses.push('opened');\n }\n\n if (listclassnames) {\n cssClasses = cssClasses.concat(listclassnames.split(' '));\n }\n\n if (display) {\n cssClasses.push('tyk-dropdown--block');\n }\n\n if (hasCustomContent) {\n cssClasses.push('tyk-dropdown--custom');\n }\n\n if (position === 'relative') {\n cssClasses.push('tyk-dropdown--relative');\n }\n\n return cssClasses.join(' ');\n }\n\n getBtnTitle() {\n const { btnTitle, stopButtonTextChange } = this.props;\n const { selectedItemProps } = this.state;\n\n if (!stopButtonTextChange && selectedItemProps?.title) {\n return selectedItemProps.title;\n }\n\n return btnTitle;\n }\n\n closeDropdown() {\n const { onClose } = this.props;\n\n this.setState({\n opened: false,\n }, () => {\n if (onClose) {\n onClose();\n }\n });\n }\n\n toggleDropdown() {\n const {\n opened,\n } = this.state;\n if (opened) {\n this.closeDropdown();\n\n return;\n }\n\n this.setState({\n opened: true,\n });\n }\n\n render() {\n const {\n appendTo,\n btnClassName,\n btnSize,\n customBtnTitle,\n hasCustomContent,\n btnTheme,\n children,\n label,\n showDropdownIcon,\n showTriggerButton,\n showCheckmark,\n disabled = false,\n maxHeight,\n } = this.props;\n const {\n selectedItem,\n opened,\n } = this.state;\n const DropdownWrapperTag = hasCustomContent ? 'div' : 'ul';\n return (\n \n {\n label\n ? (\n \n )\n : null\n }\n {\n showTriggerButton\n ? (\n \n { customBtnTitle || this.getBtnTitle() }\n \n )\n : null\n }\n {\n opened\n ? ReactDOM.createPortal(\n \n {\n opened\n ? (\n \n {\n (typeof children === 'function')\n ? children({\n closeDropdown: this.closeDropdown.bind(this),\n })\n : children\n }\n \n )\n : null\n }\n ,\n document.querySelector(appendTo || 'body'),\n )\n : null\n }\n \n );\n }\n}\n\nDropdown.propTypes = {\n appendTo: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n PropTypes.func,\n ]),\n closeOnSelect: PropTypes.bool,\n btnClassName: PropTypes.string,\n btnSize: PropTypes.string,\n btnGroupSize: PropTypes.string,\n btnTheme: PropTypes.string,\n btnTitle: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n customBtnTitle: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n btnGroup: PropTypes.bool,\n className: PropTypes.string,\n display: PropTypes.string,\n disabled: PropTypes.bool,\n hasCustomContent: PropTypes.bool,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n listclassnames: PropTypes.string,\n onClose: PropTypes.func,\n onSelect: PropTypes.func,\n open: PropTypes.bool,\n offset: PropTypes.instanceOf(Object),\n position: PropTypes.string,\n selectedItem: PropTypes.string,\n showDropdownIcon: PropTypes.bool,\n stopButtonTextChange: PropTypes.bool,\n showTriggerButton: PropTypes.bool,\n showCheckmark: PropTypes.bool,\n maxHeight: PropTypes.string,\n wrapperClassName: PropTypes.string,\n};\n\nDropdown.defaultProps = {\n closeOnSelect: false,\n showDropdownIcon: true,\n showTriggerButton: true,\n showCheckmark: true,\n open: false,\n};\n\nDropdown.Item = DropdownItem;\n\nexport default Dropdown;\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '../../../components/Button';\nimport ButtonGroup from '../../../components/ButtonGroup';\n\nfunction DropdownTrigger({\n title,\n theme = 'primary',\n splitTrigger,\n toggle,\n onTriggerClick,\n value,\n}, ref) {\n return (\n !splitTrigger ? (\n \n {title}\n \n ) : (\n \n onTriggerClick(value) }}\n >\n {title}\n \n \n \n )\n );\n}\n\nDropdownTrigger.propTypes = {\n title: PropTypes.string,\n theme: PropTypes.string,\n splitTrigger: PropTypes.bool,\n toggle: PropTypes.func,\n dropdownRef: PropTypes.shape({\n current: PropTypes.instanceOf(Element),\n }).isRequired,\n onTriggerClick: PropTypes.func,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n};\n\nexport default forwardRef(DropdownTrigger);\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport FloatingContainer from '../../../components/FloatingContainer';\nimport List from '../../../components/List';\n\nfunction DropdownListWrapper({\n children,\n element,\n maxWidth,\n}, ref) {\n return (\n \n \n { children }\n \n \n );\n}\n\nDropdownListWrapper.propTypes = {\n element: PropTypes.shape({\n current: PropTypes.instanceOf(Element),\n }),\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n maxWidth: PropTypes.string,\n};\n\nexport default forwardRef(DropdownListWrapper);\n","import { createContext, useContext } from 'react';\n\nexport const DropdownContext = createContext();\n\nfunction useDropdowContext() {\n return useContext(DropdownContext);\n}\n\nexport default useDropdowContext;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport List from '../../../components/List';\nimport useDropdowContext from './useDrodpownContext';\n\nfunction DropdownItem({\n children,\n value,\n}) {\n const { onChange, value: dropdownValue } = useDropdowContext();\n return (\n \n onChange(value) }}\n >\n { children }\n \n \n );\n}\n\nDropdownItem.propTypes = {\n children: PropTypes.node,\n // eslint-disable-next-line\n value: PropTypes.any,\n};\n\nexport default DropdownItem;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport useDropdown from './useDropdown';\nimport DropdownTrigger from './DropdownTrigger';\nimport DropdownListWrapper from './DropdownListWrapper';\nimport DropdownItem from './DropdowItem';\nimport { DropdownContext } from './useDrodpownContext';\n\nfunction Dropdown2({\n children,\n title,\n theme,\n splitTrigger,\n onChange,\n value,\n setSelectedValueAsTitle,\n maxWidth,\n onTriggerClick,\n}) {\n const {\n isOpen,\n toggle,\n dropdownRef,\n dropdownListRef,\n } = useDropdown({\n splitTrigger,\n });\n\n const contextValue = useMemo(() => ({\n onChange,\n value,\n }), [onChange, value]);\n\n return (\n \n \n {isOpen && (\n \n { children }\n \n )}\n \n );\n}\n\nDropdown2.propTypes = {\n /** Title of the dropdown. It is being displayed in the Drodpown trigger */\n title: PropTypes.string,\n /** Theme of the dropdown trigger */\n theme: PropTypes.string,\n children: PropTypes.node,\n /** If true, the dropdown trigger will be split into two buttons.\n * one with the dropdown title and one for the arrow */\n splitTrigger: PropTypes.bool,\n /** Callback function called when a dropdown item is selected */\n onChange: PropTypes.func,\n /** Value of the selected dropdown item */\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n /** If true, the selected value will be displayed in the dropdown trigger */\n setSelectedValueAsTitle: PropTypes.bool,\n /** sets the maximum width of the dropdown list menu */\n maxWidth: PropTypes.string,\n /** this function is being called when splitTrigger is true,\n * and receives as parameter the current value of the dropdown */\n onTriggerClick: PropTypes.func,\n};\n\nDropdown2.Item = DropdownItem;\n\nexport default Dropdown2;\n","import {\n useState, useRef, useCallback, useEffect,\n} from 'react';\n\nconst useDropdown = ({\n splitTrigger,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const dropdownRef = useRef(null);\n const dropdownListRef = useRef(null);\n\n const toggle = () => setIsOpen(!isOpen);\n\n const handleOutsideClick = useCallback((e) => {\n const triggerElement = !splitTrigger\n ? dropdownRef.current\n : dropdownRef.current.querySelector('.dropdown__trigger');\n if (\n isOpen\n && !triggerElement.contains(e.target)\n && !dropdownListRef.current.contains(e.target)\n ) {\n setIsOpen(false);\n }\n }, [isOpen]);\n\n useEffect(() => {\n document.addEventListener('mousedown', handleOutsideClick);\n return () => {\n document.removeEventListener('mousedown', handleOutsideClick);\n };\n }, [handleOutsideClick]);\n\n return {\n isOpen,\n toggle,\n dropdownRef,\n dropdownListRef,\n };\n};\n\nexport default useDropdown;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-ace\");","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport ace from 'ace-builds/src-noconflict/ace';\nimport AceEditor from 'react-ace';\nimport 'ace-builds/src-noconflict/mode-javascript';\nimport 'ace-builds/src-noconflict/mode-golang';\nimport 'ace-builds/src-noconflict/mode-python';\nimport 'ace-builds/src-noconflict/mode-css';\nimport 'ace-builds/src-noconflict/mode-json';\nimport 'ace-builds/src-noconflict/mode-xml';\nimport 'ace-builds/src-noconflict/mode-jsx';\nimport 'ace-builds/src-noconflict/ext-searchbox';\nimport 'ace-builds/src-noconflict/ext-beautify';\nimport 'ace-builds/src-noconflict/theme-github';\nimport jsonWorker from 'ace-builds/src-noconflict/worker-json';\n\nace.config.setModuleUrl('ace/mode/json_worker', jsonWorker);\n\nfunction CodeEditor(props) {\n const {\n disabled,\n readOnly,\n disableValidation,\n id,\n error,\n label,\n labelwidth,\n note,\n onBlur,\n onChange,\n theme,\n value,\n setOptions,\n wrapperClassName,\n } = props;\n const classes = [\n 'tyk-form-group',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' ');\n\n const finalSetOptions = {\n ...setOptions,\n ...disableValidation && { useWorker: false },\n };\n\n const getCodeEditorError = useCallback(() => (\n error && error !== 'true' && error !== 'false'\n ? (\n

    \n {error}\n

    \n )\n : null\n ), [error]);\n\n const getLabelStyles = useCallback(() => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n }, [labelwidth]);\n\n const getNonLabelWidth = useCallback(() => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n }, [labelwidth]);\n\n const handleOnChange = useCallback((newValue) => {\n if (onChange) onChange(newValue);\n }, [onChange]);\n\n const handleOnBlur = useCallback(() => {\n if (onBlur) onBlur(value);\n }, [onBlur, value]);\n\n return (\n
    \n {\n label\n ? \n : null\n }\n
    \n {\n // eslint-disable-next-line\n editorInstance.container.style.resize = 'both';\n // mouseup = css resize end\n document.addEventListener('mouseup', () => (\n editorInstance.resize()\n ));\n }}\n setOptions={finalSetOptions}\n />\n {\n note\n ?

    { note }

    \n : null\n }\n { getCodeEditorError() }\n
    \n
    \n );\n}\n\nCodeEditor.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n disableValidation: PropTypes.bool,\n id: PropTypes.string,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n mode: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n theme: PropTypes.string,\n value: PropTypes.string,\n setOptions: PropTypes.instanceOf(Object),\n wrapperClassName: PropTypes.string,\n};\n\nexport default CodeEditor;\n","import React, { Component, createRef } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../../components/Icon';\nimport Button from '../../../components/Button';\n\nconst getStateSelectedValues = (multiple, tags, value) => {\n if (!value) {\n return (multiple || tags) ? [] : null;\n }\n\n return value;\n};\n\nclass Combobox extends Component {\n static closeList() {\n return {\n cursor: -1,\n opened: false,\n };\n }\n\n static openList() {\n return {\n opened: true,\n };\n }\n\n static filterByName(itemValue, inputValue) {\n return itemValue.name.toLowerCase().indexOf(inputValue) > -1;\n }\n\n constructor(props) {\n super(props);\n const {\n multiple,\n tags,\n value,\n } = props;\n\n this.state = {\n cursor: -1,\n opened: false,\n width: 50,\n initialValue: value,\n stateSelectedValues: getStateSelectedValues(multiple, tags, value),\n searchText: '',\n tags,\n };\n\n this.comboboxRef = createRef();\n this.valuesListRef = createRef();\n this.inputRef = createRef();\n this.textRef = createRef();\n\n this.focusInput = this.focusInput.bind(this);\n this.onKeyUp = this.onKeyUp.bind(this);\n Combobox.openList = Combobox.openList.bind(this);\n this.handleClickOutside = this.handleClickOutside.bind(this);\n this.handleItemsNavigation = this.handleItemsNavigation.bind(this);\n this.handleComboboxDropdownClick = this.handleComboboxDropdownClick.bind(this);\n this.handleListItemClick = this.handleListItemClick.bind(this);\n this.handlePillRemoveClick = this.handlePillRemoveClick.bind(this);\n this.manageSelectedTags = this.manageSelectedTags.bind(this);\n }\n\n componentDidMount() {\n const { tags } = this.props;\n\n if (tags) {\n this.setInputWidth();\n }\n\n this.bindEvents();\n }\n\n componentWillUnmount() {\n this.unBindEvents();\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n if (\n JSON.stringify(nextProps.value) !== JSON.stringify(prevState.initialValue)\n || nextProps.tags !== prevState.tags\n ) {\n return {\n initialValue: nextProps.value,\n stateSelectedValues: getStateSelectedValues(\n nextProps.multiple,\n nextProps.tags,\n nextProps.value,\n ),\n tags: nextProps.tags,\n };\n }\n\n return null;\n }\n\n handleItemsNavigation(e) {\n const { tags } = this.props;\n if (['ArrowDown', 'ArrowUp'].indexOf(e.key) === -1) {\n return;\n }\n\n const { cursor } = this.state;\n const filteredValues = this.filterValues();\n let cursorNext;\n\n e.preventDefault();\n\n if (e.key === 'ArrowDown') {\n if (cursor === -1 || cursor === filteredValues.length - 1) {\n cursorNext = 0;\n } else if (cursor < filteredValues.length - 1) {\n cursorNext = cursor + 1;\n }\n }\n\n if (e.key === 'ArrowUp') {\n if (cursor > 0) {\n cursorNext = cursor - 1;\n } else {\n cursorNext = filteredValues.length - 1;\n }\n }\n\n if (this.valuesListRef.current && cursorNext > 4) {\n const scrollTop = (cursorNext - 4) * 38;\n\n this.valuesListRef.current.scrollTop = (!tags) ? 60 + scrollTop : scrollTop;\n } else if (this.valuesListRef.current) {\n this.valuesListRef.current.scrollTop = 0;\n }\n\n this.setState((previousState) => ({\n ...previousState,\n opened: true,\n cursor: cursorNext,\n }));\n }\n\n handleListItemClick(index) {\n // eslint-disable-next-line react/destructuring-assignment\n const clickedValue = this.props.values[index];\n if (clickedValue.disabled) return;\n\n const { multiple, tags } = this.props;\n\n const methodName = (tags) ? 'manageSelectedTags' : 'manageSelectedValues';\n const tempState = { ...this.state, ...this[methodName](index) };\n\n this.setState((previousState) => {\n if (!multiple && !tags) {\n tempState.opened = false;\n }\n\n return { ...previousState, ...tempState };\n });\n }\n\n handlePillRemoveClick(index) {\n const { disabled } = this.props;\n\n if (disabled) {\n return;\n }\n\n const tempState = this.removeSelectedValue(index);\n\n this.setState((previousState) => ({ ...previousState, ...tempState }));\n }\n\n handleClickOutside(event) {\n if (\n this.valuesListRef.current && !this.valuesListRef.current.contains(event.target)\n && this.comboboxRef.current && !this.comboboxRef.current.contains(event.target)\n ) {\n this.setState((previousState) => ({ ...previousState, ...Combobox.closeList() }));\n }\n }\n\n handleComboboxDropdownClick() {\n const { disabled } = this.props;\n\n if (disabled) {\n return;\n }\n\n this.setState((previousState) => ({ ...previousState, ...Combobox.openList() }));\n }\n\n onKeyUp(e) {\n const { tags, allowCustomValues } = this.props;\n const { cursor, opened } = this.state;\n const filteredValues = this.filterValues();\n let tempState = this.getSearchText();\n\n if (tags && e.key !== 'Escape') {\n tempState = { ...tempState, ...this.setInputWidth() };\n }\n\n if (e.key === 'Enter') {\n const methodName = (tags) ? 'manageSelectedTags' : 'manageSelectedValues';\n tempState = { ...tempState, ...this[methodName](cursor) };\n }\n\n if (allowCustomValues && e.key !== ' ' && tags) {\n tempState = { ...tempState, ...this.manageSelectedTags() };\n }\n\n if (\n !opened\n && this.inputRef.current.value\n && filteredValues?.length\n && e.key !== 'Escape'\n ) {\n tempState = { ...tempState, ...Combobox.openList() };\n }\n\n if (e.key === 'Escape' && opened) {\n tempState = { ...tempState, ...Combobox.closeList() };\n }\n\n if (opened && filteredValues && !filteredValues.length) {\n tempState = { ...tempState, ...Combobox.closeList() };\n }\n\n this.setState((previousState) => ({ ...previousState, ...tempState }));\n }\n\n getLabelStyles() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = labelwidth;\n }\n\n return styles;\n }\n\n getNonLabelWidth() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styles;\n }\n\n setInputWidth() {\n return {\n width: 50 + this.textRef.current.offsetWidth,\n };\n }\n\n getSelectedIndex(value) {\n const { stateSelectedValues } = this.state;\n let position = -1;\n\n if (Array.isArray(stateSelectedValues)) {\n stateSelectedValues.forEach((item, index) => {\n if (item.id === value.id) {\n position = index;\n }\n });\n } else if (stateSelectedValues) {\n if (stateSelectedValues.id === value.id) {\n position = 0;\n }\n }\n\n return position;\n }\n\n getSearchText() {\n return {\n searchText: this.inputRef.current.value,\n };\n }\n\n getListItemCssClasses(value, index) {\n const cssClasses = [];\n const {\n cursor,\n } = this.state;\n\n if (cursor === index) {\n cssClasses.push('active');\n }\n\n if (value.disabled) {\n cssClasses.push('disabled');\n }\n\n return cssClasses.join(' ');\n }\n\n getComboboxListCssClass() {\n const { opened } = this.state;\n const { tags, theme } = this.props;\n const themes = theme ? theme.split(' ') : [];\n\n const cssClasses = ['tyk-combobox__list'];\n\n if (opened) {\n cssClasses.push('tyk-combobox__list--opened');\n }\n\n if (tags) {\n cssClasses.push('tyk-combobox__list--has-tags');\n }\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n return cssClasses.join(' ');\n }\n\n getCssClasses() {\n const {\n error, disabled, theme, labelwidth,\n } = this.props;\n const cssClasses = ['tyk-form-group', 'tyk-combobox'];\n const themes = theme ? theme.split(' ') : [];\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (disabled) {\n cssClasses.push('disabled');\n }\n\n return cssClasses.join(' ');\n }\n\n getInputError() {\n const { error } = this.props;\n\n return (error && error !== 'true' && error !== 'false')\n ? (\n \n { error }\n

    \n )\n : null;\n }\n\n getStyles() {\n const { scrollTop } = document.documentElement;\n const el = this.comboboxRef.current;\n const elHeight = el.offsetHeight;\n const elWidth = el.offsetWidth;\n\n const offset = el.getBoundingClientRect();\n const { left } = offset;\n let top = 0;\n\n top = offset.top + scrollTop + elHeight;\n\n return {\n top: `${top - 1}px`,\n left: `${left}px`,\n width: `${elWidth}px`,\n };\n }\n\n getComboboxDisplayData() {\n const { stateSelectedValues } = this.state;\n const { multiple, placeholder, values } = this.props;\n\n if (!stateSelectedValues) {\n return placeholder;\n }\n\n if (stateSelectedValues && Array.isArray(stateSelectedValues) && !stateSelectedValues.length) {\n return placeholder;\n }\n\n if (stateSelectedValues && !Array.isArray(stateSelectedValues) && !stateSelectedValues.id) {\n return placeholder;\n }\n\n if (Array.isArray(stateSelectedValues) && multiple) {\n return stateSelectedValues.reduce((prevValue, value, index) => prevValue + value.name + ((index !== stateSelectedValues.length - 1) ? ', ' : ''), '');\n }\n\n if (\n values?.length\n && !Array.isArray(stateSelectedValues) && !stateSelectedValues.name\n ) {\n return values.filter((value) => value.id === stateSelectedValues.id)[0].name;\n }\n\n return stateSelectedValues.name;\n }\n\n manageSelectedTags(index) {\n const { max, allowCustomValues } = this.props;\n const { stateSelectedValues } = this.state;\n const filteredValues = this.filterValues();\n const value = { id: this.inputRef.current.value, name: this.inputRef.current.value };\n\n if (allowCustomValues === false && index === -1) {\n return null;\n }\n\n const tempValue = filteredValues[index] || value;\n const selectedIndex = this.getSelectedIndex(tempValue);\n let selectedValues = {};\n\n this.inputRef.current.value = '';\n\n if (selectedIndex > -1 && this.isInInitialValues(tempValue)) {\n selectedValues = this.removeSelectedValue(selectedIndex);\n } else if (selectedIndex === -1) {\n if (max && stateSelectedValues.length >= max) {\n return selectedValues;\n }\n selectedValues = this.addSelectedValue(tempValue);\n }\n\n return selectedValues;\n }\n\n // eslint-disable-next-line react/no-unused-class-component-methods\n manageSelectedValues(index) {\n const { stateSelectedValues } = this.state;\n const { multiple, onChange, max } = this.props;\n const filteredValues = this.filterValues();\n const tempSelectedValues = filteredValues[index];\n let selectedValues;\n const selectedIndex = this.getSelectedIndex(tempSelectedValues);\n\n if (tempSelectedValues && multiple) {\n if (selectedIndex > -1) {\n selectedValues = this.removeSelectedValue(selectedIndex);\n } else {\n if (max && stateSelectedValues.length >= max) {\n return selectedValues;\n }\n selectedValues = this.addSelectedValue(filteredValues[index]);\n }\n } else {\n selectedValues = {\n stateSelectedValues: (selectedIndex === -1) ? tempSelectedValues : { id: null },\n };\n\n onChange?.((selectedIndex === -1) ? tempSelectedValues : null);\n }\n\n return selectedValues;\n }\n\n removeSelectedValue(index) {\n const { stateSelectedValues } = this.state;\n const { onChange } = this.props;\n const tempStateSelectedValues = JSON.parse(JSON.stringify(stateSelectedValues));\n\n tempStateSelectedValues.splice(index, 1);\n\n if (onChange && typeof onChange === 'function') {\n onChange(tempStateSelectedValues.length ? tempStateSelectedValues : null);\n }\n\n return {\n stateSelectedValues: tempStateSelectedValues,\n searchText: '',\n };\n }\n\n addSelectedValue(value) {\n const { stateSelectedValues } = this.state;\n const { onChange } = this.props;\n const tempStateSelectedValues = JSON.parse(JSON.stringify(stateSelectedValues));\n\n tempStateSelectedValues.push(value);\n\n if (onChange && typeof onChange === 'function') {\n onChange(tempStateSelectedValues.length ? tempStateSelectedValues : null);\n }\n\n return {\n stateSelectedValues: tempStateSelectedValues,\n searchText: '',\n };\n }\n\n isInInitialValues(value) {\n const { values } = this.props;\n let ok = false;\n\n values.forEach((item) => {\n if (value.id === item.id) {\n ok = true;\n }\n });\n\n return ok;\n }\n\n filterValues() {\n const { values, searchItem } = this.props;\n\n if (!this.inputRef.current) {\n return values;\n }\n\n const arr = values\n .filter(\n (value) => (searchItem\n ? searchItem(value, this.inputRef.current.value.toLowerCase())\n : Combobox.filterByName(value, this.inputRef.current.value.toLowerCase())),\n );\n\n return arr;\n }\n\n bindEvents() {\n document.addEventListener('mousedown', this.handleClickOutside);\n }\n\n unBindEvents() {\n document.removeEventListener('mousedown', this.handleClickOutside);\n }\n\n // eslint-disable-next-line react/no-unused-class-component-methods\n reset() {\n const { multiple, tags, value } = this.props;\n\n this.setState({\n stateSelectedValues: getStateSelectedValues(multiple, tags, value),\n });\n }\n\n focusInput() {\n if (this.inputRef.current) {\n this.inputRef.current.focus();\n }\n }\n\n renderInput(filteredValues) {\n const {\n disabled,\n tags,\n max,\n placeholder,\n } = this.props;\n const {\n width, searchText, stateSelectedValues,\n } = this.state;\n\n return (\n {}}\n ref={this.comboboxRef}\n >\n {\n tags\n ? (\n <>\n {\n (stateSelectedValues || []).map((value, index) => (\n
  • \n \n \n \n { value.name }\n
  • \n ))\n }\n \n {(max === undefined || stateSelectedValues?.length < max) && (\n <>\n {\n if (e.key === 'Enter') {\n e.preventDefault();\n }\n this.handleItemsNavigation(e);\n }}\n onKeyUp={this.onKeyUp}\n placeholder={(!stateSelectedValues?.length) ? placeholder : ''}\n ref={this.inputRef}\n style={{\n width: (!stateSelectedValues?.length) ? '100%' : `${width}px`,\n }}\n />\n \n { searchText }\n \n \n )}\n {filteredValues.length > 0 && (\n \n )}\n \n \n )\n : (\n {}}\n >\n { this.getComboboxDisplayData() }\n \n \n )\n }\n \n );\n }\n\n renderDropdown(filteredValues) {\n const { tags } = this.props;\n const { opened } = this.state;\n return (\n \n {\n !tags\n ? (\n
  • \n \n
  • \n )\n : null\n }\n {\n filteredValues\n .map((value, index) => (\n {}}\n key={value.id}\n >\n {\n (this.getSelectedIndex(value) > -1)\n ? \n : null\n }\n \n {' '}\n { value.name }\n \n \n ))\n }\n \n );\n }\n\n render() {\n const {\n CustomListComponent,\n id,\n label,\n note,\n } = this.props;\n const { opened } = this.state;\n\n const filteredValues = this.filterValues();\n\n return (\n <>\n
    \n {\n label\n ? \n : null\n }\n \n {this.renderInput(filteredValues)}\n {\n note\n ?

    { note }

    \n : null\n }\n { this.getInputError() }\n
    \n \n {\n // eslint-disable-next-line no-nested-ternary\n !CustomListComponent\n ? opened && filteredValues.length\n ? ReactDOM.createPortal(\n this.renderDropdown(filteredValues),\n document.querySelector('body'),\n )\n : null\n : (\n \n )\n }\n \n );\n }\n}\n\nCombobox.propTypes = {\n allowCustomValues: PropTypes.bool,\n CustomListComponent: PropTypes.elementType,\n searchItem: PropTypes.func,\n disabled: PropTypes.bool,\n error: PropTypes.string,\n id: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n multiple: PropTypes.bool,\n max: PropTypes.number,\n note: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n tags: PropTypes.bool,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.instanceOf(Object),\n PropTypes.instanceOf(Array),\n ]),\n values: PropTypes.instanceOf(Array),\n};\n\nCombobox.defaultProps = {\n allowCustomValues: true,\n};\n\nexport default Combobox;\n","import React, { useState, useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Icon from '../../../../components/Icon';\nimport Pill from '../../../../components/Pill';\n\nfunction Value(props) {\n const {\n value,\n max,\n tags,\n tagSeparators,\n addTagOnBlur,\n placeholder,\n disabled,\n renderValue,\n valueOverflow,\n focus,\n onMessage: sendMessage,\n readOnly,\n } = props;\n const INPUT_MIN_WIDTH = 60;\n const inputRef = useRef(null);\n const dummyElementRef = useRef(null);\n const [inputValue, setInputValue] = useState('');\n const [inputWidth, setInputWidth] = useState(`${INPUT_MIN_WIDTH + 10}px`);\n\n function entryFieldOnChange(val) {\n if (tagSeparators.some((ts) => val.slice(-1) === ts)) return;\n const dummy = dummyElementRef.current;\n dummy.innerHTML = val;\n setInputWidth(`${Math.max(dummy.clientWidth, INPUT_MIN_WIDTH) + 10}px`);\n setInputValue(val);\n sendMessage('tag.input.change', val);\n }\n\n function entryFieldOnKeyDown(key, val) {\n if (!tags) return;\n if (val === '' && key === 'Backspace' && value.length) {\n sendMessage('tag.remove', value[value.length - 1].id);\n return;\n }\n if (key === 'Enter') {\n sendMessage('tag.input.enter', val);\n entryFieldOnChange('');\n return;\n }\n if (key === 'ArrowUp') {\n sendMessage('tag.input.arrowUp');\n return;\n }\n if (key === 'ArrowDown') {\n sendMessage('tag.input.arrowDown');\n return;\n }\n if (key === 'Escape') {\n sendMessage('tag.input.escape');\n return;\n }\n if (tagSeparators.includes(key)) {\n sendMessage('tag.add', val);\n entryFieldOnChange('');\n }\n }\n\n function triggerAction() {\n sendMessage('text-value.click');\n }\n\n function textValue(val, isPlaceholder = false) {\n if (readOnly) return val || '-';\n\n const classes = [\n 'tyk-combobox2__text-value',\n `overflow-${valueOverflow}`,\n isPlaceholder && 'is-placeholder',\n ].filter(Boolean).join(' ');\n return (\n \n {val}\n \n );\n }\n\n function renderCustomValue(v) {\n const config = {\n tags,\n tagSeparators,\n placeholder,\n disabled,\n renderValue,\n sendMessage,\n };\n return renderValue(v, config);\n }\n\n function renderTag(v) {\n if (renderValue) return renderCustomValue(v);\n\n return (\n \n {\n e.stopPropagation();\n sendMessage('tag.remove', v.id);\n }}\n aria-label=\"remove\"\n >\n \n \n { v.name }\n \n );\n }\n\n function getTags() {\n return (\n <>\n {value.map(renderTag)}\n {value.length < max && (\n <>\n entryFieldOnChange(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Enter') e.preventDefault();\n entryFieldOnKeyDown(e.key, e.target.value);\n }}\n onFocus={() => sendMessage('tag.input.focus')}\n onBlur={(e) => {\n sendMessage('tag.input.blur', e.target.value);\n if (addTagOnBlur) entryFieldOnChange('');\n }}\n />\n \n \n )}\n \n );\n }\n\n useEffect(() => {\n if (focus && inputRef.current) inputRef.current.focus();\n }, [focus]);\n\n if (readOnly) {\n return
    {textValue(value.map((v) => v.name).join(', '))}
    ;\n }\n\n if (tags) return getTags();\n if (renderValue) {\n return value.length === 0 ? textValue(placeholder, true) : value.map(renderCustomValue);\n }\n return value.length === 0\n ? textValue(placeholder, true)\n : textValue(value.map((v) => v.name).join(', '));\n}\n\nValue.propTypes = {\n value: PropTypes.instanceOf(Array),\n max: PropTypes.number,\n tags: PropTypes.instanceOf(Array),\n tagSeparators: PropTypes.instanceOf(Array),\n addTagOnBlur: PropTypes.bool,\n placeholder: PropTypes.string,\n disabled: PropTypes.bool,\n renderValue: PropTypes.func,\n valueOverflow: PropTypes.string,\n focus: PropTypes.bool,\n onMessage: PropTypes.func,\n readOnly: PropTypes.bool,\n};\n\nexport default Value;\n","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Icon from '../../../../components/Icon';\n\nfunction List(props) {\n const {\n listRef,\n tags,\n values,\n searchValue,\n activeItem,\n onMessage: sendMessage,\n renderListItem,\n selectAll,\n showSearch,\n } = props;\n\n useEffect(() => {\n if (!listRef.current) return;\n const activeElement = listRef.current.querySelector('.active');\n if (activeElement) activeElement.scrollIntoView({ block: 'end' });\n }, [activeItem]);\n\n function renderItem(item) {\n if (renderListItem) {\n return renderListItem(item, {\n tags, searchValue, sendMessage, activeItem,\n });\n }\n\n return (\n !item.disabled && sendMessage('value.select', { item })}\n onKeyDown={() => {}}\n >\n {item.selected && }\n {item.name}\n \n );\n }\n\n function renderSelectAllOption() {\n const isAllSelected = values.every((v) => v.selected);\n const isNoneSelected = values.every((v) => !v.selected);\n const label = selectAll?.label ?? 'Select All';\n const mode = selectAll?.mode ?? 'select';\n const show = selectAll?.show ?? 'always';\n const render = selectAll?.render;\n\n const shouldRenderOption = show === 'always' || (mode === 'select' ? !isAllSelected : !isNoneSelected);\n if (!shouldRenderOption) return null;\n\n if (render) {\n return render({\n label,\n mode,\n show,\n isAllSelected,\n isNoneSelected,\n }, sendMessage);\n }\n return (\n sendMessage('value.select-all', mode === 'select' ? !isAllSelected : isNoneSelected)}\n onKeyDown={() => {}}\n >\n {(mode === 'select' ? isAllSelected : isNoneSelected) && }\n {label}\n \n );\n }\n\n return (\n <>\n {!tags && showSearch && (\n
    \n sendMessage('search.change', e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Escape') sendMessage('search.escape');\n if (e.key === 'ArrowUp') sendMessage('search.arrowUp');\n if (e.key === 'ArrowDown') sendMessage('search.arrowDown');\n if (e.key === 'Enter') sendMessage('search.enter');\n }}\n />\n
    \n )}\n {values.length > 0 && (\n
      \n {Boolean(selectAll) && (\n renderSelectAllOption()\n )}\n {values.map(renderItem)}\n
    \n )}\n \n );\n}\n\nList.propTypes = {\n listRef: PropTypes.instanceOf(Object),\n tags: PropTypes.bool,\n values: PropTypes.instanceOf(Array),\n searchValue: PropTypes.string,\n activeItem: PropTypes.instanceOf(Object),\n onMessage: PropTypes.func,\n renderListItem: PropTypes.func,\n selectAll: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n mode: PropTypes.oneOf(['select', 'unselect']),\n show: PropTypes.oneOf(['always', 'notSameState']),\n render: PropTypes.func,\n }),\n ]),\n showSearch: PropTypes.bool,\n};\n\nexport default List;\n","import React, {\n useCallback, useEffect, useMemo, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../../components/Icon';\nimport FloatingContainer from '../../../components/FloatingContainer';\n\nimport Value from './js/Value';\nimport List from './js/List';\n\n/**\n * Dropdown-like component that can display selected values as regular text,\n * tags, or in a custom way.\n * You can select values from a list or type in new ones.\n */\nfunction Combobox2({\n value: propValue,\n values: propValues = [],\n valueOverflow = 'single',\n label = '',\n labelwidth,\n tags = false,\n tagSeparators = [' ', 'Enter'],\n addTagOnBlur = false,\n max: maxProp,\n multiple = false,\n placeholder = '',\n theme,\n note = '',\n error = '',\n disabled = false,\n readOnly = false,\n allowCustomValues = true,\n searchItem: matchItemFn,\n renderValue,\n renderListItem,\n renderList: renderListProp,\n CustomListComponent,\n onBeforeChange = () => true,\n onChange = () => {},\n floatingContainerConfig,\n expandMode,\n infiniteScrollerConfig,\n displayDropdownTrigger = true,\n selectAll,\n closeOnSelect,\n showSearch = false,\n required = false,\n validateOnChange = () => {},\n wrapperClassName = '',\n ...restProps\n}) {\n const max = useMemo(\n () => (multiple ? Infinity : maxProp || (tags ? Infinity : 1)),\n [multiple, maxProp, tags],\n );\n const renderList = CustomListComponent\n ? (values, { sendMessage }) => (\n sendMessage('value.select', { item: values[index] })}\n />\n )\n : renderListProp;\n\n const rootRef = useRef(null);\n const comboboxControlRef = useRef(null);\n const dropdownRef = useRef(null);\n const listRef = useRef(null);\n\n const [value, setValue] = useState(getValueFromProp(propValue, propValues));\n const [values, setValues] = useState(propValues.map((v) => normalizeValue(v)));\n const [searchValue, setSearchValue] = useState('');\n const [activeItem, setActiveItem] = useState(null);\n const [isOpened, setIsOpened] = useState(false);\n const [valuesExpanded, setValuesExpanded] = useState(false);\n const [localValidationError, setLocalValidationError] = useState('');\n\n function getThemeClasses() {\n const themes = theme ? theme.split(' ') : [];\n return themes.map((iTheme) => `tyk-form-group--${iTheme}`);\n }\n\n function getCssClasses() {\n return [\n wrapperClassName,\n 'tyk-form-group',\n 'tyk-combobox2',\n ...getThemeClasses(),\n (error || localValidationError) && 'has-error',\n labelwidth && 'tyk-form-group--label-has-width',\n disabled && 'disabled',\n expandMode && 'is-expand-mode',\n ].filter(Boolean).join(' ');\n }\n\n function getFilteredValues() {\n const defaultFn = (v, s) => v?.name?.toLowerCase()?.includes(s);\n const fn = matchItemFn || defaultFn;\n const filteredValues = values.filter((v) => fn(v, searchValue.toLowerCase()));\n return filteredValues;\n }\n\n function openDropdown() {\n setIsOpened(true);\n }\n\n function closeDropdown() {\n setIsOpened(false);\n if (!tags) updateSearchValue('');\n setActiveItem(null);\n }\n\n function updateSearchValue(newSearchValue) {\n setSearchValue(newSearchValue);\n if (activeItem && getFilteredValues().every((fv) => fv.id !== activeItem.id)) {\n setActiveItem(null);\n }\n if (newSearchValue && !isOpened) openDropdown();\n }\n\n function isValidValue(newValues, lastValue) {\n const localError = validateOnChange(newValues, lastValue);\n setLocalValidationError(localError);\n return localError === undefined;\n }\n\n function updateValue(newValues) {\n setValue(newValues);\n onChange(max === 1 && !tags ? (newValues[0] || null) : newValues);\n }\n\n function addTag(val) {\n if (!val) return;\n if (value.length >= max) return;\n if (value.some(({ name }) => name === val)) return;\n\n const listValueIndex = values.findIndex((lv) => lv.name === val);\n let newValue;\n let finalValue = [...value];\n let selectedValues;\n\n if (listValueIndex === -1) {\n if (allowCustomValues) {\n newValue = { id: val, name: val };\n finalValue = [...value, newValue];\n }\n } else {\n selectedValues = [\n ...values.slice(0, listValueIndex),\n { ...values[listValueIndex], selected: true },\n ...values.slice(listValueIndex + 1),\n ];\n newValue = values[listValueIndex];\n finalValue = [...value, values[listValueIndex]];\n }\n\n if (isValidValue(finalValue, newValue) && onBeforeChange(value, finalValue)) {\n if (selectedValues) {\n setValues(selectedValues);\n }\n updateValue(finalValue);\n }\n }\n\n function removeTag(id) {\n if (required && max === 1) return;\n\n const listValueIndex = values.findIndex((lv) => lv.id === id);\n const newValue = value.filter((v) => v.id !== id);\n\n if (!onBeforeChange(value, newValue)) return;\n\n if (listValueIndex !== -1) {\n setValues([\n ...values.slice(0, listValueIndex),\n { ...values[listValueIndex], selected: false },\n ...values.slice(listValueIndex + 1),\n ]);\n }\n updateValue(newValue);\n }\n\n function selectValue({ id }) {\n const val = values.find((v) => v.id === id);\n const valIndex = values.findIndex((v) => v.id === id);\n let finalValue = value;\n let selectedValues = values;\n\n if (val.selected) {\n if (!required || max !== 1) {\n finalValue = value.filter((v) => v.id !== val.id);\n selectedValues = values.with(valIndex, { ...val, selected: false });\n }\n } else if (value.length < max) {\n finalValue = [...value, val];\n selectedValues = values.with(valIndex, { ...val, selected: true });\n } else if (max === 1) {\n finalValue = [val];\n selectedValues = values.map((v) => ({ ...v, selected: v.id === val.id }));\n }\n\n if (isValidValue(finalValue, val) && onBeforeChange(value, finalValue)) {\n updateValue(finalValue);\n setValues(selectedValues);\n }\n\n if (max === 1 || closeOnSelect) {\n closeDropdown();\n }\n }\n\n function selectAllValues(selected) {\n if (values.length > max) return;\n const newValue = selected ? [...values] : [];\n\n if (!onBeforeChange(value, newValue)) return;\n\n updateValue(newValue);\n setValues(values.map((v) => ({ ...v, selected })));\n if (closeOnSelect) closeDropdown();\n }\n\n function moveUpActiveItem() {\n const visibleItems = getFilteredValues().filter((v) => !v.disabled);\n if (visibleItems.length === 0) return;\n if (activeItem === null || visibleItems.length === 1) {\n setActiveItem(visibleItems[visibleItems.length - 1]);\n return;\n }\n const activeIndex = visibleItems.findIndex((v) => v.id === activeItem.id);\n setActiveItem(visibleItems[activeIndex > 0 ? activeIndex - 1 : visibleItems.length - 1]);\n }\n\n function moveDownActiveItem() {\n const visibleItems = getFilteredValues().filter((v) => !v.disabled);\n if (visibleItems.length === 0) return;\n if (activeItem === null || visibleItems.length === 1) {\n setActiveItem(visibleItems[0]);\n return;\n }\n const activeIndex = visibleItems.findIndex((v) => v.id === activeItem.id);\n setActiveItem(visibleItems[activeIndex < visibleItems.length - 1 ? activeIndex + 1 : 0]);\n }\n\n function executeTriggerAction() {\n if (expandMode) {\n setValuesExpanded(!valuesExpanded);\n } else {\n openDropdown();\n }\n }\n\n function handleDocumentClick(e) {\n const isClickInside = rootRef.current?.contains(e.target)\n || dropdownRef.current?.contains(e.target);\n if (!isClickInside) {\n closeDropdown();\n }\n }\n\n function onClickCapture(e) {\n if (!disabled) return;\n if (!expandMode) {\n e.stopPropagation();\n return;\n }\n\n const triggerElement = rootRef.current.querySelector('.tyk-combobox2__values-container-trigger');\n if (!triggerElement) return;\n\n const isClickOnTrigger = triggerElement === e.target || triggerElement.contains(e.target);\n if (!isClickOnTrigger) e.stopPropagation();\n }\n\n function onTagMessage(message, data) {\n if (message === 'add') {\n addTag(data);\n updateSearchValue('');\n }\n\n if (message === 'remove') removeTag(data);\n\n if (message === 'input.change') updateSearchValue(data);\n\n if (message === 'input.enter') {\n if (activeItem) {\n selectValue(activeItem);\n } else if (tagSeparators.includes('Enter')) {\n addTag(data);\n updateSearchValue('');\n }\n }\n\n if (message === 'input.arrowUp') {\n openDropdown();\n moveUpActiveItem();\n }\n\n if (message === 'input.arrowDown') {\n openDropdown();\n moveDownActiveItem();\n }\n\n if (message === 'input.escape') closeDropdown();\n\n if (message === 'input.blur' && addTagOnBlur) {\n addTag(data);\n updateSearchValue('');\n }\n\n if (message === 'input.focus') {\n openDropdown();\n }\n }\n\n const onMessage = useCallback((message, data) => {\n if (message.startsWith('tag.')) onTagMessage(message.slice(4), data);\n\n if (message === 'value.select') selectValue(data.item);\n\n if (message === 'value.select-all') selectAllValues(data);\n\n if (message === 'text-value.click') openDropdown();\n\n if (message === 'search.change') updateSearchValue(data);\n\n if (message === 'search.escape') closeDropdown();\n\n if (message === 'search.arrowUp') moveUpActiveItem();\n\n if (message === 'search.arrowDown') moveDownActiveItem();\n\n if (message === 'search.enter') {\n if (activeItem) selectValue(activeItem);\n }\n }, [\n onTagMessage,\n selectValue,\n selectAllValues,\n openDropdown,\n updateSearchValue,\n closeDropdown,\n moveUpActiveItem,\n moveDownActiveItem,\n ]);\n\n const renderIcon = useCallback(\n () => (expandMode\n ? \n : \n ),\n [expandMode, valuesExpanded],\n );\n\n useEffect(() => {\n window.addEventListener('click', handleDocumentClick, true);\n return () => window.removeEventListener('click', handleDocumentClick, true);\n }, []);\n\n useEffect(() => {\n if (propValues.length) {\n const newValues = propValues.map((v) => ({\n ...normalizeValue(v),\n selected: value.some((sv) => sv.id === v.id),\n }));\n setValues(newValues);\n setValue((val) => val.map((v) => newValues.find((nv) => nv.id === v.id) || v));\n } else if (values.length) {\n setValues([]);\n }\n }, [propValues]);\n\n useEffect(() => {\n const newValue = getValueFromProp(propValue, values);\n setValue(newValue);\n setValues((vals) => vals.map((v) => ({\n ...normalizeValue(v),\n selected: newValue.some((nv) => nv.id === v.id),\n })));\n }, [propValue]);\n\n useEffect(() => {\n if (!expandMode) return () => {};\n\n const valuesElement = comboboxControlRef.current.querySelector('.tyk-combobox2__current-values');\n const updateScroll = () => {\n valuesElement.scrollTop = valuesElement.scrollHeight;\n };\n /* eslint-disable-next-line no-undef */\n const mobserver = new MutationObserver(updateScroll);\n const robserver = new ResizeObserver(updateScroll);\n\n mobserver.observe(valuesElement, { attributes: true, childList: true, subtree: true });\n robserver.observe(valuesElement);\n\n return () => {\n mobserver.disconnect();\n robserver.disconnect();\n };\n });\n\n const filteredValues = getFilteredValues();\n const currentValuesClasses = [\n 'tyk-combobox2__current-values',\n expandMode && 'expand-mode',\n `tyk-combobox2__current-values--${valuesExpanded ? 'expanded' : 'collapsed'}`,\n ].join(' ');\n\n return (\n \n {label && (\n \n )}\n {!readOnly && (\n \n
    \n \n \n
    \n {displayDropdownTrigger && (\n \n {renderIcon()}\n \n )}\n \n {isOpened && (!tags || filteredValues.length > 0) && (\n \n {renderList ? (\n renderList(filteredValues, {\n tags,\n searchValue,\n activeItem,\n listRef,\n sendMessage: onMessage,\n })\n ) : (\n \n )}\n \n )}\n {note && (\n

    {note}

    \n )}\n {((error && error !== 'true' && error !== 'false') || Boolean(localValidationError)) && (\n

    {error || localValidationError}

    \n )}\n \n )}\n {readOnly && (\n
    \n \n
    \n )}\n \n );\n}\n\nCombobox2.propTypes = {\n /** If `true` it allows entering values that are not in the list. */\n allowCustomValues: PropTypes.bool,\n /** Alias for `renderList`\n * used for backwards compatibility with the old Combobox component. */\n CustomListComponent: PropTypes.elementType,\n /** A function used for filtering elements displayed in the list when typing in. */\n searchItem: PropTypes.func,\n /** A custom component that will be used to display a value. */\n renderValue: PropTypes.func,\n /** A custom component that will be used to display an item in the dropdown list. */\n renderListItem: PropTypes.func,\n /** A custom component that will be used to display the entire content of the dropdown. */\n renderList: PropTypes.func,\n disabled: PropTypes.bool,\n /** hides the UI form element and displayes just the value as text */\n readOnly: PropTypes.bool,\n error: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n /** The maximum number of values that can be selected/added. */\n max: PropTypes.number,\n /** Shorthand for max=Infinity */\n multiple: PropTypes.bool,\n note: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n /**\n * Callback called before changing the value of the component.\n * The value change will succeed only if the callback's return value is truthy.\n * The callback is called with two arguments: 1) the previous value, 2) the next value */\n onBeforeChange: PropTypes.func,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n /** Enables the display of values as `Pill` components that can be\n * removed without opening the dropdown. */\n tags: PropTypes.bool,\n /** A list of characters that will trigger the creation of a tag when typed. */\n tagSeparators: PropTypes.arrayOf(PropTypes.string),\n /** If set to true a tag will be created whenever the component loses focus\n * and there is something typed in. */\n addTagOnBlur: PropTypes.bool,\n theme: PropTypes.string,\n /** The value of the component. It can be a string, an array,\n * or an object with an `id` property. */\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.instanceOf(Array),\n PropTypes.instanceOf(Object),\n ]),\n /** An array of selectable values. */\n values: PropTypes.instanceOf(Array),\n /** Config object passed to the internal floating container component. */\n floatingContainerConfig: PropTypes.instanceOf(Object),\n /** If set to `single` it will display the values on a single line\n * with an ellipsis at the end. */\n valueOverflow: PropTypes.oneOf(['single', 'multiple']),\n /**\n * If set to `true` whenever the user clicks on the dropdown trigger\n * the selected values container\n * will expand to show all selected values instead of opening the dropdown.\n */\n expandMode: PropTypes.bool,\n /** Config object passed to the internal infinite scroller component. */\n infiniteScrollerConfig: PropTypes.instanceOf(Object),\n /** Toggles the display of the dropdown trigger. */\n displayDropdownTrigger: PropTypes.bool,\n /**\n * If a boolean it will toggle the select all functionality from the dropdown.\n * It can also be an object with the shape `{ label, show, mode, render }`.\n * label - A string displayed as the select all option\n * show - It can be one of `['always', 'notSameState']`.\n * `always` means the option will always be displayed.\n * `notSameState` means it will be displayed only if the list items are\n * not all with the same state (depending on the `mode` value)\n * mode - It can be one of `['select', 'unselect']` and makes sense only\n * when the `show` property is `notSameState`\n * `select` means the select all option will only be displayed if not all\n * items are selected\n * `unselect` means the option will be displayed if no items are selected\n */\n selectAll: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n mode: PropTypes.oneOf(['select', 'unselect']),\n show: PropTypes.oneOf(['always', 'notSameState']),\n render: PropTypes.func,\n }),\n ]),\n /** It `true` the dropdown will close after selecting a value. */\n closeOnSelect: PropTypes.bool,\n /** Toggles the display of the search input from the dropdown. */\n showSearch: PropTypes.bool,\n /** If it is required and can only select one value once you have something\n * selected you will not be able to deselect */\n required: PropTypes.bool,\n /** Validates newly added value before adding it to the selected values.\n * Returns an error string in case of error otherwise it returns undefined\n */\n validateOnChange: PropTypes.func,\n wrapperClassName: PropTypes.string,\n};\n\nexport default Combobox2;\n\nfunction normalizeValue(value, values) {\n let v = value;\n if (typeof value === 'string') v = { id: value, name: value };\n else if (!value.hasOwnProperty('name')) v = { ...value, name: value.id }; // eslint-disable-line no-prototype-builtins\n if (!values) return v;\n const existingVal = values.find((ev) => ev.id === v.id);\n return existingVal ? { ...v, ...existingVal } : v;\n}\n\nfunction getValueFromProp(value, values) {\n if (!value) return [];\n if (Array.isArray(value)) return value.map((v) => normalizeValue(v, values));\n return [normalizeValue(value, values)];\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"flatpickr\");","import React, {\n useEffect, useState, useRef, useCallback,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport flatpickr from 'flatpickr';\n\nimport Icon from '../../../components/Icon';\nimport { usePrevious } from '../../../hooks';\n\nfunction DatePicker({\n children,\n disabled,\n readOnly = false,\n error,\n id,\n label,\n labelwidth,\n note,\n onClose,\n onChange,\n onOpen,\n theme,\n config = {},\n value,\n wrapperClassName = '',\n}) {\n const [pickerInstance, setPickerInstance] = useState(null);\n const dateRef = useRef(null);\n\n const prevValue = usePrevious(value);\n\n const hasValueChanged = useCallback((prevDate, currentDate) => {\n if (!prevDate) return true;\n if (!Array.isArray(currentDate)) return prevDate.getTime() !== currentDate.getTime();\n\n let diffDates = currentDate;\n\n if (prevDate && currentDate.length && prevDate.length) {\n diffDates = currentDate.filter((date, index) => date.getTime() !== prevDate[index].getTime());\n\n return diffDates.length > 0;\n }\n\n return currentDate.length > 0;\n }, []);\n\n const onDateChange = useCallback((dateValue) => {\n const finalValue = config.mode === 'range' ? dateValue : dateValue[0] || null;\n\n if (!onChange) return;\n\n if (config.mode === 'range') {\n if (finalValue.length === 2 && hasValueChanged(prevValue, finalValue)) {\n onChange(finalValue);\n }\n } else {\n onChange(finalValue);\n }\n }, [prevValue, onChange, hasValueChanged]);\n\n useEffect(() => {\n if (dateRef.current && !pickerInstance) {\n const instance = flatpickr(dateRef.current, {\n ...config, defaultDate: value, onChange: onDateChange, onClose, onOpen,\n });\n setPickerInstance(instance);\n }\n\n return () => {\n if (pickerInstance) {\n pickerInstance.destroy();\n }\n };\n }, [pickerInstance]);\n\n useEffect(() => {\n if (pickerInstance) {\n let tempValue = value;\n\n if (typeof value === 'string') {\n tempValue = new Date(value);\n } else if (Array.isArray(value)) {\n tempValue = value.map((date) => new Date(date));\n }\n\n if (hasValueChanged(prevValue, tempValue)) {\n pickerInstance.set('onChange', onDateChange);\n if (config.mode === 'range') {\n if (tempValue && tempValue.length === 2) {\n pickerInstance.setDate(tempValue, true);\n }\n } else {\n pickerInstance.setDate(tempValue, true);\n }\n }\n }\n }, [prevValue, value, pickerInstance]);\n\n const classes = [\n 'tyk-form-group',\n 'tyk-form-group--addon-right',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' ');\n\n const getLabelStyles = () => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n };\n\n const getNonLabelWidth = () => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n };\n\n const openCalendar = useCallback(() => {\n if (!pickerInstance) return;\n\n pickerInstance.open();\n }, [pickerInstance]);\n\n const getInputError = () => (\n (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null\n );\n\n const getInputField = () => {\n let inputStyle = {};\n let addonStyle = {};\n\n if (config?.inline) {\n inputStyle = {\n height: 0,\n padding: 0,\n width: 0,\n visibility: 'hidden',\n };\n\n addonStyle = {\n display: 'none',\n };\n }\n return (\n <>\n \n {}}\n tabIndex={0}\n style={addonStyle}\n aria-label=\"show calendar\"\n >\n \n \n \n );\n };\n\n return (\n <>\n {\n children?.length\n ? children({ openCalendar, ref: dateRef })\n : (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n
    \n {getInputField()}\n
    \n {\n note\n ?

    { note }

    \n : null\n }\n { getInputError() }\n
    \n )}\n \n )\n }\n
    \n {readOnly && !value && '-'}\n {readOnly && value && flatpickr.formatDate(value, config.dateFormat || 'd/m/Y')}\n
    \n \n );\n}\n\nDatePicker.propTypes = {\n config: PropTypes.instanceOf(Object),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n PropTypes.func,\n ]),\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.instanceOf(Array),\n ]),\n onClose: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.instanceOf(Array),\n ]),\n onOpen: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.instanceOf(Array),\n ]),\n theme: PropTypes.string,\n error: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.instanceOf(Array),\n PropTypes.instanceOf(Object),\n PropTypes.string,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default DatePicker;\n","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\");\n // eslint-disable-next-line no-console\n console.warn(new Error().stack);\n }\n return new Date(NaN);\n }\n}","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n var number = Number(dirtyNumber);\n if (isNaN(number)) {\n return number;\n }\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","var defaultOptions = {};\nexport function getDefaultOptions() {\n return defaultOptions;\n}\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function getUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, options);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n case 'aaa':\n return dayPeriodEnumValue;\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = getUTCISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = getUTCWeek(date, options);\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n return lightFormatters.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n if (timezoneOffset === 0) {\n return 'Z';\n }\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, dirtyDelimiter);\n}\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\nexport default formatters;","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = getUTCWeekYear(dirtyDate, options);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, options);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","var dateLongFormatter = function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n};\nvar timeLongFormatter = function timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n};\nvar dateTimeLongFormatter = function dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n var dateTimeFormat;\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n};\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n }\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n return result;\n};\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n if (!matchResult) {\n return null;\n }\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n return undefined;\n}\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import defaultLocale from \"../../locale/en-US/index.js\";\nexport default defaultLocale;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n case 2:\n return number + 'nd';\n case 3:\n return number + 'rd';\n }\n }\n return number + 'th';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","import isValid from \"../isValid/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n var originalDate = toDate(dirtyDate);\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n var firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n var formatter = formatters[firstCharacter];\n if (formatter) {\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n return substring;\n }).join('');\n return result;\n}\nfunction cleanEscapedString(input) {\n var matched = input.match(escapedStringRegExp);\n if (!matched) {\n return input;\n }\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","import addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import React, { Component, createRef } from 'react';\nimport isEqual from 'react-fast-compare';\nimport PropTypes from 'prop-types';\n\nimport Column from '../../../../layout/Column';\nimport Row from '../../../../layout/Row';\nimport Button from '../../../../components/Button';\n\nclass EditableListForm extends Component {\n static getMainFormValue(components) {\n const mainFormValue = new Array(components.length);\n\n components.forEach((component, index) => {\n mainFormValue[index] = component.props.value || undefined;\n });\n\n return mainFormValue;\n }\n\n constructor(props) {\n super(props);\n const {\n components,\n } = props;\n\n this.submitButtonRef = createRef();\n this.handleOnChange = this.handleOnChange.bind(this);\n this.submitForm = this.submitForm.bind(this);\n\n this.state = {\n components,\n errors: {},\n mainError: null,\n mainFormValue: EditableListForm.getMainFormValue(components),\n refs: [],\n };\n }\n\n componentDidMount() {\n const {\n addValueOnFieldChange,\n getMainFormButtonWidth,\n } = this.props;\n this.createRefs();\n\n if (getMainFormButtonWidth) {\n getMainFormButtonWidth(\n !addValueOnFieldChange\n ? this.submitButtonRef.current.clientWidth\n : 0,\n );\n }\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const state = {};\n const {\n components: propsComponents,\n } = nextProps;\n\n const {\n components: stateComponents,\n } = prevState;\n if (\n !isEqual(propsComponents, stateComponents)\n && !isEqual(\n EditableListForm.getMainFormValue(propsComponents),\n EditableListForm.getMainFormValue(stateComponents),\n )\n ) {\n state.mainFormValue = EditableListForm.getMainFormValue(propsComponents);\n state.components = propsComponents;\n }\n\n return state;\n }\n\n handleOnChange(component, index, value) {\n const { addValueOnFieldChange } = this.props;\n let tempState = this.state;\n\n tempState = { ...tempState, ...this.validateValue(value, component.props) };\n\n if (!tempState.errors[component.props.name]) {\n tempState.mainFormValue[index] = value;\n\n if (component.props.onChange) {\n component.props.onChange(value);\n }\n }\n\n this.setState((previousState) => ({ ...previousState, ...tempState }), () => {\n if (addValueOnFieldChange) {\n this.submitForm();\n }\n });\n }\n\n getFormCssClasses() {\n const { noLabels } = this.props;\n const cssClasses = ['tyk-editable-list__form'];\n\n if (noLabels) {\n cssClasses.push('no-labels');\n }\n\n return cssClasses.join(' ');\n }\n\n getButtonClassName() {\n const { buttonStyle, displayType } = this.props;\n const cssClasses = [];\n\n if (buttonStyle) {\n cssClasses.push(buttonStyle);\n }\n\n if (displayType) {\n cssClasses.push(displayType);\n }\n\n return cssClasses.join(' ');\n }\n\n getComponentsError(component) {\n const {\n error,\n errors,\n mainError,\n } = this.state;\n\n if (error || mainError) {\n errors[component.props.name] = 'true';\n } else if (!(error || mainError) && errors[component.props.name] === 'true') {\n delete errors[component.props.name];\n }\n\n return errors[component.props.name] ? errors[component.props.name].toString() : undefined;\n }\n\n createRefs() {\n const { components } = this.props;\n const refs = [];\n\n components.forEach(() => {\n refs.push(createRef());\n });\n\n this.setState({\n refs,\n });\n }\n\n validateValue(value, props) {\n const { mainError, errors } = this.state;\n const { error, errorPersist } = this.props;\n\n const validatorsNames = props.validate ? Object.keys(props.validate) : [];\n // if there is a general form error don't take field errors into consideration\n const tempState = {\n errors: (error || mainError) ? {} : { ...errors },\n };\n let ok = true;\n\n // if the error should stay after changing fields values don't take actions\n if (errorPersist) {\n return tempState;\n }\n\n // validate each field from the form\n for (const validatorName of validatorsNames) {\n const validator = props.validate[validatorName];\n if (validator(value)) {\n tempState.errors[props.name] = props.validationmessages[validatorName];\n ok = false;\n break;\n }\n }\n\n // if the field is ok delete its error\n if (ok) {\n delete tempState.errors[props.name];\n }\n\n tempState.mainError = null;\n\n return tempState;\n }\n\n hasMainFormErrors(errors) {\n const { components, errorPersist } = this.props;\n const { mainFormValue } = this.state;\n const tempState = {\n errors: { ...errors },\n };\n\n if (errorPersist && mainFormValue.indexOf(undefined) === -1) {\n return false;\n }\n\n if (Object.keys(tempState.errors).length > 0) {\n return true;\n }\n\n components.forEach((component, index) => {\n tempState.errors = {\n ...tempState.errors,\n ...this.validateValue(mainFormValue[index], component.props).errors,\n };\n });\n\n return Object.keys(tempState.errors).length > 0;\n }\n\n resetForm() {\n const { refs } = this.state;\n const {\n components,\n } = this.props;\n\n refs.forEach((ref) => {\n if (ref.current?.reset) {\n ref.current.reset();\n }\n });\n\n this.setState({\n errors: {},\n mainError: null,\n mainFormValue: EditableListForm.getMainFormValue(components),\n });\n }\n\n showMainError(error) {\n this.setState({\n mainError: error,\n });\n }\n\n submitForm() {\n const { errors, mainFormValue } = this.state;\n const {\n errorPersist, onSubmit, validate, validationmessage,\n } = this.props;\n\n if (errorPersist) {\n onSubmit(mainFormValue);\n this.resetForm();\n }\n\n if (\n Object.keys(errors).length === 0\n && (onSubmit && typeof onSubmit === 'function')\n ) {\n if (validate) {\n if (validate(mainFormValue)) {\n this.showMainError(validationmessage);\n } else {\n onSubmit(mainFormValue);\n this.resetForm();\n }\n } else {\n onSubmit(mainFormValue);\n this.resetForm();\n }\n }\n }\n\n render() {\n const {\n addValueOnFieldChange, components, buttonName, disabled, displayType, error,\n } = this.props;\n const {\n mainError, refs, errors,\n } = this.state;\n\n return (\n
    \n
    \n \n {\n components.map((component, index) => {\n const ComponentName = component.name;\n console.log('ComponentName', ComponentName);\n const {\n onChange, value, ...rest\n } = component.props;\n\n return (\n \n \n \n );\n })\n }\n \n {\n !addValueOnFieldChange\n ? (\n \n \n { buttonName || 'ADD' }\n \n \n )\n : null\n }\n
    \n {\n error || mainError\n ? (\n
    \n

    \n { error || mainError }\n

    \n
    \n )\n : null\n }\n
    \n );\n }\n}\n\nEditableListForm.propTypes = {\n addValueOnFieldChange: PropTypes.bool,\n noLabels: PropTypes.bool,\n buttonName: PropTypes.string,\n buttonStyle: PropTypes.string,\n components: PropTypes.instanceOf(Array),\n displayType: PropTypes.string,\n disabled: PropTypes.bool,\n getMainFormButtonWidth: PropTypes.func,\n error: PropTypes.string,\n errorPersist: PropTypes.bool,\n onSubmit: PropTypes.func,\n validate: PropTypes.func,\n validationmessage: PropTypes.string,\n};\n\nexport default EditableListForm;\n","import React, { Component, createRef } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport format from 'date-fns/format';\nimport isDate from 'date-fns/isDate';\n\nimport EditableListForm from './js/EditableListForm';\nimport Column from '../../../layout/Column';\nimport Icon from '../../../components/Icon';\nimport Row from '../../../layout/Row';\n\nclass EditableList extends Component {\n static getItemListValue(itemValue) {\n let tempValue = null;\n\n if (typeof itemValue === 'string') {\n tempValue = itemValue;\n }\n\n if (Object.prototype.toString.call(itemValue) === '[object Object]') {\n tempValue = itemValue.name;\n }\n\n if (isDate(itemValue)) {\n tempValue = format(itemValue, 'dd/MM/yyyy');\n }\n\n return tempValue;\n }\n\n static getListItemCssClass(displayType) {\n const cssClasses = [];\n\n if (displayType === 'inline') {\n cssClasses.push('tyk-editable-list-item--inline');\n }\n\n return cssClasses.join(' ');\n }\n\n constructor(props) {\n super(props);\n const {\n value,\n } = this.props;\n\n this.state = {\n initialValue: value || '',\n value: value || [],\n buttonWidth: 0,\n };\n\n this.startIndex = 1;\n\n this.handleFormSubmit = this.handleFormSubmit.bind(this);\n this.getMainFormButtonWidth = this.getMainFormButtonWidth.bind(this);\n this.dropdownListItemRef = createRef();\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const state = {};\n\n if (\n nextProps.value && JSON.stringify(nextProps.value)\n !== JSON.stringify(prevState.initialValue)\n ) {\n state.value = nextProps.value || [];\n state.initialValue = nextProps.value || '';\n }\n\n return state.value ? state : null;\n }\n\n handleFormSubmit(value) {\n const tempState = this.addValues(value);\n this.setState((previousState) => ({ ...previousState, ...tempState }), () => {\n this.triggerOnChange(tempState.value.length - 1, null, value);\n });\n }\n\n handleItemUpdate(index, value) {\n let prevValue;\n this.setState((previousState) => {\n const tempState = { ...previousState };\n prevValue = fromJS(tempState.value[index].value).toJS();\n tempState.value[index].value = value;\n tempState.value[index].editMode = false;\n\n return tempState;\n }, () => {\n this.triggerOnChange(index, prevValue, value);\n });\n }\n\n handleChildrenOnChange(index, value) {\n let prevValue;\n this.setState((previousState) => {\n const tempState = { ...previousState };\n prevValue = fromJS(tempState.value[index].children).toJS();\n tempState.value[index].children = value;\n\n return tempState;\n }, () => {\n this.triggerOnChange(index, prevValue, value);\n });\n }\n\n getListItemsCssClass(displayType) {\n const { config } = this.props;\n const cssClasses = ['tyk-editable-list-items'];\n\n cssClasses.push(config.displayType || 'table');\n\n if (displayType === 'inline') {\n cssClasses.push('tyk-editable-list-items--inline');\n }\n\n return cssClasses.join(' ');\n }\n\n getFormInputKey() {\n this.startIndex += 1;\n return this.startIndex;\n }\n\n // generate list item value's based on the display types\n // table, inline, list\n getListItemText(itemData) {\n const { config } = this.props;\n let value = null;\n\n switch (config.displayType) {\n case 'list':\n case 'inline': {\n const itemText = itemData.value.reduce((prevValue, itemValue, index) => {\n const tempValue = EditableList.getItemListValue(itemValue);\n let separator = ', ';\n\n if (index === itemData.value.length - 1) {\n separator = '';\n }\n\n return prevValue + tempValue + separator;\n }, '');\n\n value = itemText;\n\n break;\n }\n default:\n value = (\n \n {\n config.components.map((component, index) => (\n \n { EditableList.getItemListValue(itemData.value[index]) }\n \n ))\n }\n \n );\n\n break;\n }\n\n return value;\n }\n\n getMainFormButtonWidth(value) {\n this.setState({\n buttonWidth: value,\n });\n }\n\n setItemEditMode(index) {\n const newValues = this.closeListItems();\n\n this.setState((previousState) => {\n const tempState = { ...previousState };\n tempState.value = newValues;\n tempState.value[index].editMode = !tempState.value[index].editMode;\n\n return tempState;\n });\n }\n\n isInList(index, itemValue) {\n const { value } = this.state;\n let ok = false;\n\n value.forEach((item, itemIndex) => {\n if (JSON.stringify(item.value) === JSON.stringify(itemValue)) {\n if (index >= 0 && itemIndex === index) {\n ok = false;\n } else {\n ok = true;\n }\n }\n });\n\n return ok;\n }\n\n addValues(newValue) {\n const { value } = this.state;\n const { config } = this.props;\n const itemValue = {\n editMode: false,\n value: newValue,\n };\n const tempState = {\n value: value.slice(0),\n };\n\n if (config.children) {\n itemValue.children = [];\n }\n\n tempState.value.push(itemValue);\n\n return tempState;\n }\n\n removeListItem(index) {\n let removedItem;\n this.setState((previousState) => {\n const valueArr = previousState.value.slice(0);\n removedItem = valueArr.splice(index, 1);\n\n return {\n value: valueArr,\n };\n }, () => {\n this.triggerOnChange(index, removedItem, null);\n });\n }\n\n closeListItems() {\n const { value } = this.state;\n\n const newValues = value.map((itemValue) => {\n const tempItemValue = { ...itemValue };\n\n if (tempItemValue.editMode) {\n tempItemValue.editMode = false;\n return tempItemValue;\n }\n\n return tempItemValue;\n });\n\n return newValues;\n }\n\n triggerOnChange(index, prevValue, nextValue) {\n const { onChange } = this.props;\n const { value } = this.state;\n\n if (onChange && typeof onChange === 'function') {\n onChange(((value.length) ? value : null), index, prevValue, nextValue);\n }\n }\n\n genListItem(itemData, index) {\n const { config, disabled } = this.props;\n const { buttonWidth, value } = this.state;\n\n const clonedComponents = fromJS(config.components).toJS();\n\n itemData.value.forEach((itemValue, itemIndex) => {\n clonedComponents[itemIndex].props.value = itemValue;\n });\n\n return (\n \n \n {\n !itemData.editMode\n ? (\n <>\n { this.getListItemText(itemData, index) }\n \n \n \n \n \n \n \n \n \n )\n : (\n <>\n \n \n \n \n \n )\n }\n \n {\n config.children\n ? (\n \n )\n : null\n }\n \n );\n }\n\n genList() {\n const { config } = this.props;\n const { buttonWidth, value } = this.state;\n\n if (!value || value.length === 0) {\n return null;\n }\n\n return (\n <>\n {\n config.displayType === 'table' || !config.displayType\n ? (\n \n \n {\n config.components.map((component, index) => (\n \n { component.props.label }\n \n ))\n }\n \n \n )\n : null\n }\n
      \n {\n value.map((itemData, index) => this.genListItem(itemData, index))\n }\n
    \n \n );\n }\n\n render() {\n const {\n addValueOnFieldChange, config, error, disabled, label,\n } = this.props;\n const appendToElement = document.querySelector(config.appendTo) || document.querySelector('body');\n\n return (\n
    \n {\n label\n ? \n : null\n }\n \n {\n config.appendTo\n ? ReactDOM.createPortal(\n this.genList(),\n appendToElement,\n )\n : this.genList()\n }\n
    \n );\n }\n}\n\nEditableList.propTypes = {\n addValueOnFieldChange: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.string,\n config: PropTypes.instanceOf(Object),\n onChange: PropTypes.func,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n value: PropTypes.oneOfType([\n PropTypes.instanceOf(Array),\n PropTypes.instanceOf(Object),\n ]),\n};\n\nexport default EditableList;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '../../../components/Button';\n\nfunction Header({\n label, addButtonName, onAddRow, disabled, readOnly,\n}) {\n return (\n
    \n {\n label\n ? \n : null\n }\n {!disabled && !readOnly && (\n \n {addButtonName || 'Add'}\n \n )}\n
    \n );\n}\n\nHeader.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n onAddRow: PropTypes.func,\n addButtonName: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n};\n\nexport default Header;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ListHeader({\n fields,\n readOnly,\n}) {\n return (\n
  • \n {\n fields.map((field) => (\n \n {field?.props?.label}\n \n ))\n }\n
    Delete
    \n
  • \n );\n}\n\nListHeader.propTypes = {\n fields: PropTypes.instanceOf(Array),\n readOnly: PropTypes.bool,\n};\n\nexport default ListHeader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Button from '../../../components/Button';\n\nfunction FieldsList({\n fields,\n disabled,\n readOnly,\n errors,\n components,\n onChange,\n onDelete,\n value,\n rowIndex,\n}) {\n return (\n
  • \n {\n components.map((Component, index) => {\n const field = fields[index];\n const tempField = typeof field === 'function' ? field(rowIndex, index) : field;\n return (\n \n \n \n );\n })\n }\n
    \n \n
    \n
  • \n );\n}\n\nFieldsList.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n rowIndex: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n fields: PropTypes.instanceOf(Array),\n errors: PropTypes.instanceOf(Array),\n components: PropTypes.instanceOf(Array),\n value: PropTypes.instanceOf(Array),\n onChange: PropTypes.func,\n onDelete: PropTypes.func,\n};\n\nexport default FieldsList;\n","import React, { useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Header from './Header';\nimport ListHeader from './ListHeader';\nimport FieldsList from './FieldsList';\nimport validateValues from './validate-values';\nimport withValidation from './with-validation';\n\nlet id = 1;\n/* eslint-disable-next-line */\nconst getUID = prefix => `${prefix}-${id++}`;\n\n/**\n * Editable list is a component, that lists rows of form elements (can have n elements on a row),\n * and stores the values of all the rows in an Array list\n */\nfunction EditableList2({\n addButtonName,\n disabled,\n readOnly,\n fields,\n label,\n error,\n value = [],\n onChange = () => {},\n hideOnEmpty = true,\n wrapperClassName = '',\n}) {\n const [internalErrors, setInternalErrors] = useState(null);\n\n const updateRowValue = (rowIndex, fieldIndex, componentValue, isValid) => {\n const tempValueArr = !value ? [] : [...value];\n\n if (!value) {\n tempValueArr[rowIndex] = [...new Array(fields.length)];\n tempValueArr[rowIndex][fieldIndex] = componentValue;\n } else {\n const tempValue = [...tempValueArr[rowIndex]];\n tempValue[fieldIndex] = componentValue;\n tempValueArr[rowIndex] = tempValue;\n tempValueArr[rowIndex].id = value[rowIndex].id;\n }\n\n if (internalErrors?.[rowIndex]?.[fieldIndex] && isValid) {\n const tempErrors = [...internalErrors];\n const tempFieldError = [...tempErrors[rowIndex]];\n tempFieldError[fieldIndex] = null;\n tempErrors[rowIndex] = tempFieldError;\n setInternalErrors(tempErrors);\n }\n onChange(tempValueArr);\n };\n\n const hasErrors = (errors) => Boolean(errors?.flat()?.filter(Boolean).length);\n\n const Components = useMemo(\n () => fields.map((field) => {\n const tempField = typeof field === 'function' ? field() : field;\n\n return withValidation(tempField?.component || null);\n }),\n [],\n );\n\n const onAddRow = () => {\n const errors = validateValues(fields, value);\n\n if (hasErrors(errors)) {\n setInternalErrors(errors);\n return;\n }\n\n const newValue = [...new Array(fields.length)];\n newValue.id = getUID('row');\n\n onChange([\n ...value,\n newValue,\n ]);\n };\n\n const deleteRow = (index) => {\n if (!value) {\n return;\n }\n const tempValue = [...value];\n tempValue.splice(index, 1);\n onChange(tempValue);\n };\n\n return (\n
    \n \n {value?.length || !hideOnEmpty ? (\n
      \n {(value || [[]]).map((v, i) => (\n \n ))}\n \n
    \n ) : null}\n {error && error !== 'true' && error !== 'false' ? (\n

    {error}

    \n ) : null}\n
    \n );\n}\n\nEditableList2.propTypes = {\n /** Sets Editable list in edit mode.\n * If enabled all fields are disabled, the add button is hidden and delete button is disabled\n * */\n disabled: PropTypes.bool,\n /** Sets Editable list in read only mode.\n * If enabled all fields are displaying just the value,\n * the add button is hidden and delete button is disabled\n */\n readOnly: PropTypes.bool,\n /** Name of the Add button. By default has 'Add value' */\n addButtonName: PropTypes.string,\n /** Label of Editable list, is displayed above the list and inline with the Add button */\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n /** Array of form elements that you want the list to have\n * Each field is an object points to the Form element component that you want to use,\n * the props you want to apply on it,\n * and the size (as in width, it's like columns system, between 1 and 12)\n * Example:\n * ...\n * fields={[\n {\n component: Input2,\n styles: {\n width: \"200px\",\n },\n size: 4,\n props: {\n name: 'input',\n label: 'Claim name',\n theme: 'default rounded-corners',\n placeholder: 'Enter claim name',\n validate: formikRequired('This field is required')\n }\n },\n {\n component: Combobox2,\n size: 8,\n props: comboboxProps\n }\n ]}\n */\n fields: PropTypes.instanceOf(Array),\n /** onChange function is called everytime the value of editable list changes */\n onChange: PropTypes.func,\n /** value of editable list, wich is an Array (List of row values)\n * of Arrays (List of column values,\n * each column will have the value format depending on the component type)\n */\n value: PropTypes.oneOfType([\n PropTypes.instanceOf(Object),\n PropTypes.instanceOf(Array),\n ]),\n error: PropTypes.string,\n hideOnEmpty: PropTypes.bool,\n wrapperClassName: PropTypes.string,\n};\n\nexport default EditableList2;\n","import React, { useCallback, useState } from 'react';\n\n// eslint-disable-next-line react/function-component-definition\nconst withValidation = (Component) => ({\n onChange, // eslint-disable-line react/prop-types\n validate, // eslint-disable-line react/prop-types\n error, // eslint-disable-line react/prop-types\n ...rest\n}) => {\n const [internalError, setInternalError] = useState(null);\n const onFieldChange = useCallback((event) => {\n /* eslint-disable-next-line */\n const value = event?.target\n ? ['radio', 'checkbox'].includes(event.target.type)\n ? event.target.checked\n : event?.target.value\n : event;\n\n let isValid = true;\n if (validate && typeof validate === 'function') {\n const errorMsg = validate(value);\n isValid = !errorMsg;\n setInternalError(errorMsg);\n }\n\n onChange(value, isValid);\n }, [validate, onChange]);\n\n return ;\n};\n\nexport default withValidation;\n","const validateValues = (fields, rowValues) => (rowValues || [[undefined, undefined]])?.map(\n (colValue) => colValue?.map(\n (value, index) => fields[index].props.validate?.(value),\n ),\n);\n\nexport default validateValues;\n","import React, { useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../../components/Icon';\n\nfunction FileInput({\n error,\n theme,\n labelwidth,\n wrapperClassName = '',\n id,\n label,\n note,\n accept,\n value,\n onChange,\n ...rest\n}) {\n const fileInputRef = useRef();\n\n function handleOnChange(e) {\n onChange(e.target.files);\n }\n\n function getCssClasses() {\n const cssClasses = [wrapperClassName, 'tyk-form-group'];\n const themes = theme ? theme.split(' ') : [];\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n return cssClasses.join(' ');\n }\n\n function getLabelStyles() {\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = labelwidth;\n }\n\n return styles;\n }\n\n function getNonLabelWidth() {\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styles;\n }\n\n function getFileInputError() {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }\n\n function getFileInputComponent() {\n return (\n \n \n {\n fileInputRef.current && fileInputRef.current.files.length > 0\n ? (\n \n \n \n )\n : null\n }\n \n );\n }\n\n function clearValue() {\n fileInputRef.current.value = '';\n onChange('');\n }\n\n return (\n
    \n {\n label\n ? \n : null\n }\n
    \n { getFileInputComponent() }\n {\n note\n ?

    { note }

    \n : null\n }\n
    \n { getFileInputError() }\n
    \n );\n}\n\nFileInput.propTypes = {\n accept: PropTypes.string,\n disabled: PropTypes.bool,\n id: PropTypes.string,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.instanceOf(Object),\n wrapperClassName: PropTypes.string,\n};\n\nexport default FileInput;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nclass Input extends Component {\n static getAddon(content) {\n return (\n
    \n { content }\n
    \n );\n }\n\n constructor(props) {\n super(props);\n const {\n value,\n } = this.props;\n\n this.state = {\n initValue: value,\n stateValue: value,\n };\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n componentDidUpdate(prevProps) {\n const {\n isfield,\n value,\n onChange,\n } = this.props;\n\n if (!isfield && prevProps.value !== value) {\n /* eslint-disable react/no-did-update-set-state */\n this.setState({\n stateValue: value,\n }, () => {\n if (onChange) {\n onChange(value);\n }\n });\n }\n }\n\n handleOnChange(e) {\n const { onChange, isfield } = this.props;\n const inputValue = e.target.value;\n\n if (!isfield) {\n this.setState({\n stateValue: inputValue,\n }, () => {\n if (onChange) {\n onChange(inputValue);\n }\n });\n } else {\n onChange(inputValue);\n }\n }\n\n getLabelStyles() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = labelwidth;\n }\n\n return styles;\n }\n\n getNonLabelWidth() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styles;\n }\n\n getInputError() {\n const { error } = this.props;\n\n return (error && error !== 'true' && error !== 'false')\n ? (\n \n { error }\n

    \n )\n : null;\n }\n\n getCssClasses() {\n const {\n error,\n theme,\n labelwidth,\n inputgroupaddonleft,\n inputgroupaddonright,\n } = this.props;\n const cssClasses = ['tyk-form-group'];\n const themes = theme ? theme.split(' ') : [];\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (inputgroupaddonleft) {\n cssClasses.push('tyk-form-group--addon-left');\n }\n\n if (inputgroupaddonright) {\n cssClasses.push('tyk-form-group--addon-right');\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n return cssClasses.join(' ');\n }\n\n getInputGroupAddon() {\n const {\n inputgroupaddonleft,\n inputgroupaddonright,\n } = this.props;\n\n return (\n
    \n {\n inputgroupaddonleft\n ? Input.getAddon(inputgroupaddonleft)\n : null\n }\n { this.getInputComponent() }\n {\n inputgroupaddonright\n ? Input.getAddon(inputgroupaddonright)\n : null\n }\n
    \n );\n }\n\n getInputComponent() {\n const {\n isfield, onChange, value, ...rest\n } = this.props;\n const { stateValue } = this.state;\n return (\n \n );\n }\n\n // eslint-disable-next-line react/no-unused-class-component-methods\n reset() {\n const { initValue } = this.state;\n\n this.setState({\n stateValue: initValue,\n });\n }\n\n render() {\n const {\n label,\n id,\n inputgroupaddonleft,\n inputgroupaddonright,\n note,\n readOnly,\n value,\n } = this.props;\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n {\n inputgroupaddonleft || inputgroupaddonright\n ? this.getInputGroupAddon()\n : this.getInputComponent()\n }\n {\n note\n ?

    { note }

    \n : null\n }\n { this.getInputError() }\n
    \n )}\n {\n readOnly &&
    {value || '-'}
    \n }\n \n );\n }\n}\n\nInput.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n isfield: PropTypes.bool,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n inputgroupaddonleft: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n inputgroupaddonright: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n};\n\nexport default Input;\n","import React, { useImperativeHandle, useRef, forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Input2({\n error,\n onChange,\n readOnly,\n id,\n inputgroupaddonleft,\n inputgroupaddonright,\n label,\n labelwidth,\n note,\n theme,\n value,\n wrapperClassName = '',\n ...rest\n}, ref) {\n const inputRef = useRef();\n\n useImperativeHandle(ref, () => ({\n focus: () => {\n inputRef.current.focus();\n },\n }));\n\n const getAddon = (content) => (\n
    \n { content }\n
    \n );\n\n const getLabelStyles = () => ({\n ...labelwidth && {\n flexBasis: labelwidth,\n },\n });\n\n const getNonLabelWidth = () => ({\n ...labelwidth && {\n flexBasis: `calc(100% - ${labelwidth} - 20px)`,\n },\n });\n\n const getInputError = () => (\n (error && error !== 'true' && error !== 'false')\n ? (\n \n { error }\n

    \n )\n : null\n );\n\n const getCssClasses = () => {\n const cssClasses = [wrapperClassName, 'tyk-form-group'];\n const themes = theme ? theme.split(' ') : [];\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (inputgroupaddonleft) {\n cssClasses.push('tyk-form-group--addon-left');\n }\n\n if (inputgroupaddonright) {\n cssClasses.push('tyk-form-group--addon-right');\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n return cssClasses.join(' ');\n };\n\n const handleOnChange = (e) => {\n onChange(e, e.target.value);\n };\n\n const getInputElement = () => (\n \n );\n\n const getInputGroupAddon = () => (\n
    \n {\n inputgroupaddonleft\n ? getAddon(inputgroupaddonleft)\n : null\n }\n { getInputElement() }\n {\n inputgroupaddonright\n ? getAddon(inputgroupaddonright)\n : null\n }\n
    \n );\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n {\n inputgroupaddonleft || inputgroupaddonright\n ? getInputGroupAddon()\n : getInputElement()\n }\n {\n note\n ?

    { note }

    \n : null\n }\n { getInputError() }\n
    \n )}\n {\n readOnly && (\n
    \n {value || '-'}\n
    \n )\n }\n \n );\n}\n\nInput2.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n inputgroupaddonleft: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n inputgroupaddonright: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default forwardRef(Input2);\n","import { createContext } from 'react';\n\nconst MultiselectContext = createContext();\n\nexport default MultiselectContext;\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport MultiselectContext from './MultiselectContext';\nimport Button from '../../../../components/Button';\nimport Collapsible from '../../../../components/Collapsible';\nimport Loader from '../../../../components/Loader';\n\nconst getItemContent = (context, item) => (\n context.detailsDisplayTemplate\n ? context.detailsDisplayTemplate(item)\n : JSON.stringify(item.details)\n);\n\nconst getItemLoader = (context, item) => {\n const { opened } = context;\n\n return opened[item.id]\n ? \n : null;\n};\n\nfunction MultiselectItem({\n item,\n itemType,\n searchValue,\n onChange,\n}) {\n const isInSearchValue = useCallback((fieldsToSearchOn) => {\n if (fieldsToSearchOn?.length > 0) {\n return fieldsToSearchOn.some((key) => item[key]?.includes(searchValue));\n }\n\n return JSON.stringify(item).includes(searchValue);\n }, [item, searchValue]);\n\n const onAddRemove = useCallback(() => {\n onChange(item);\n }, [onChange, item]);\n\n return (\n \n {\n (context) => (\n isInSearchValue(context.fieldsToSearchOn)\n ? (\n
  • \n
    \n \n {\n context.itemDisplayTemplate\n ? context.itemDisplayTemplate(item)\n : JSON.stringify(item)\n }\n \n \n \n context.onGetItemDetails(item)}\n />\n \n
    \n {\n item.details\n ? (\n \n {getItemContent(context, item)}\n \n )\n : getItemLoader(context, item)\n }\n
  • \n )\n : null\n )\n }\n
    \n );\n}\n\nMultiselectItem.propTypes = {\n item: PropTypes.instanceOf(Object),\n itemType: PropTypes.string,\n searchValue: PropTypes.string,\n onChange: PropTypes.func,\n};\n\nexport default MultiselectItem;\n","import React, { useCallback, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Input from '../../Input';\nimport Icon from '../../../../components/Icon';\nimport Message from '../../../../components/Message';\nimport InfiniteScroller from '../../../../components/InfiniteScroller';\nimport MultiselectItem from './MultiselectItem';\n\nfunction MultiselectPanel({\n inputPlaceholder,\n noItemsMessage,\n items,\n onCustomSearch,\n onChange,\n customSearch,\n panelType,\n serverLoad,\n itemsPageNumber,\n itemsNrPages,\n loadMoreItems,\n}) {\n const [searchValue, setSearchValue] = useState('');\n const itemIndex = useRef(0);\n const itemsListRef = useRef();\n\n function getItemIndex() {\n itemIndex.current += 1;\n\n return itemIndex.current;\n }\n\n function getItemsList() {\n return (\n serverLoad\n ? (\n itemsPageNumber}\n loadMore={loadMoreItems}\n pageNumber={itemsPageNumber}\n >\n { renderListItems() }\n \n )\n : renderListItems()\n );\n }\n\n const searchOnChange = useCallback((value) => {\n if (onCustomSearch) {\n onCustomSearch(value);\n } else {\n setSearchValue(value);\n }\n }, [onCustomSearch]);\n\n const itemChanged = useCallback((item) => {\n let cloneItems = structuredClone(items);\n cloneItems = cloneItems.filter((clonedItem) => item.id !== clonedItem.id);\n\n onChange(cloneItems, item);\n }, [items]);\n\n function renderListItems() {\n return (\n \n {\n items.map((item) => (\n \n ))\n }\n \n );\n }\n\n return (\n
    \n \n }\n name=\"search\"\n onChange={searchOnChange}\n placeholder={inputPlaceholder}\n value={searchValue}\n />\n {\n items.length\n ? getItemsList()\n : (\n \n { noItemsMessage }\n \n )\n }\n
    \n );\n}\n\nMultiselectPanel.propTypes = {\n customSearch: PropTypes.bool,\n onCustomSearch: PropTypes.func,\n panelType: PropTypes.string,\n onChange: PropTypes.func,\n items: PropTypes.instanceOf(Array),\n itemsPageNumber: PropTypes.number,\n itemsNrPages: PropTypes.number,\n inputPlaceholder: PropTypes.string,\n loadMoreItems: PropTypes.func,\n noItemsMessage: PropTypes.string,\n serverLoad: PropTypes.bool,\n};\n\nexport default MultiselectPanel;\n","import React, { useCallback, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport MultiselectPanel from './js/MultiselectPanel';\nimport MultiselectContext from './js/MultiselectContext';\n\nconst diffObjects = (value, items) => items.filter((item) => !value.find((v) => v.id === item.id));\n\nfunction Multiselect({\n customSearch,\n entityNamePlural,\n disabled,\n error,\n getItemDetails,\n itemDisplayTemplate,\n detailsDisplayTemplate,\n fieldsToSearchOn,\n items,\n itemsPageNumber,\n itemsNrPages,\n loadMoreItems,\n maxSelections,\n note,\n value,\n onChange,\n wrapperClassName = '',\n}) {\n const [opened, setOpened] = useState({});\n\n const onGetItemDetails = useCallback((item) => {\n setOpened((prevOpened) => ({ ...prevOpened, [item.id]: !prevOpened[item.id] }));\n\n if (getItemDetails) getItemDetails(item);\n }, [getItemDetails]);\n\n function getMultiselectError() {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }\n\n const getCssClasses = useCallback(\n () => [\n wrapperClassName,\n 'tyk-multiselect',\n error && 'has-error',\n ]\n .filter(Boolean)\n .join(' '),\n [wrapperClassName, error],\n );\n\n const itemsChange = useCallback((allItems, item) => {\n const valueClone = structuredClone(value);\n\n valueClone.unshift(item);\n\n onChange(valueClone, item, 'added');\n }, [value]);\n\n const valueChange = useCallback((newValue, item) => {\n onChange(newValue, item, 'removed');\n }, [items]);\n\n const providerValue = useMemo(() => ({\n disabled,\n itemDisplayTemplate,\n detailsDisplayTemplate,\n fieldsToSearchOn,\n maxSelections,\n nrSelectedItems: value.length,\n onGetItemDetails,\n opened,\n }), [\n disabled,\n itemDisplayTemplate,\n detailsDisplayTemplate,\n fieldsToSearchOn,\n maxSelections,\n value,\n onGetItemDetails,\n opened,\n ]);\n\n return (\n <>\n
    \n \n
    \n
    \n { value.length }\n {' '}\n Selected\n {' '}\n { entityNamePlural }\n
    \n
    \n Select from existing\n { entityNamePlural }\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n {\n note\n ?

    { note }

    \n : null\n }\n
    \n { getMultiselectError() }\n \n );\n}\n\nMultiselect.propTypes = {\n customSearch: PropTypes.func,\n disabled: PropTypes.bool,\n error: PropTypes.string,\n entityNamePlural: PropTypes.string,\n items: PropTypes.instanceOf(Array),\n itemDisplayTemplate: PropTypes.func,\n detailsDisplayTemplate: PropTypes.func,\n fieldsToSearchOn: PropTypes.instanceOf(Array),\n onChange: PropTypes.func,\n getItemDetails: PropTypes.func,\n itemsPageNumber: PropTypes.number,\n itemsNrPages: PropTypes.number,\n loadMoreItems: PropTypes.func,\n note: PropTypes.string,\n maxSelections: PropTypes.number,\n value: PropTypes.instanceOf(Array),\n wrapperClassName: PropTypes.string,\n};\n\nexport default Multiselect;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * Radio can be used when a user needs to select at most one value from a multiple options.\n */\nfunction Radio({\n label,\n input,\n note,\n inline,\n nospace,\n theme = '',\n disabled,\n readOnly,\n wrapperClassName = '',\n ...rest\n}) {\n const cssClasses = [\n inline ? 'tyk-radio--inline' : 'tyk-radio',\n wrapperClassName,\n nospace && 'no-margin',\n ...(theme ? theme.split(' ').filter(Boolean).map((t) => `tyk-radio--theme-${t}`) : []),\n (readOnly || disabled) && 'tyk-radio--is-disabled',\n ].filter(Boolean).join(' ');\n\n return (\n
    \n \n {note && (\n

    {note}

    \n )}\n
    \n );\n}\n\nRadio.propTypes = {\n /** Used to disable the element */\n disabled: PropTypes.bool,\n /** Readonly prop behaves the same as disabled on radio elements */\n readOnly: PropTypes.bool,\n /** Align radio in the same line with other elements */\n inline: PropTypes.bool,\n /** Set a theme for radio */\n theme: PropTypes.string,\n input: PropTypes.instanceOf(Object),\n /** Adds label to the radio input */\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n /** Set name for the radio input */\n name: PropTypes.string,\n /** If set to true removes margin by adding `no-margin` class */\n nospace: PropTypes.bool,\n /** Set initial value for the radio input */\n value: PropTypes.string,\n /** Add note at the bottom of the radio input */\n note: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default Radio;\n","import React, { useCallback, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Select(props) {\n const {\n value,\n onChange,\n onBlur,\n isfield,\n label,\n labelwidth,\n id,\n note,\n readOnly,\n options,\n error,\n theme,\n wrapperClassName = '',\n ...rest\n } = props;\n const [stateValue, setStateValue] = useState(value);\n\n useEffect(() => {\n if (!isfield && stateValue !== value) {\n setStateValue(value);\n if (onChange) onChange(value);\n }\n }, [stateValue, value]);\n\n const handleOnChange = useCallback((e) => {\n const selectedValue = options.find((option) => option.id === e.target.value);\n\n if (!isfield) {\n setStateValue(selectedValue);\n }\n onChange(selectedValue.id ? selectedValue : null);\n }, [options, isfield, onChange]);\n\n const handleOnBlur = useCallback(() => {\n if (onBlur) {\n onBlur(value);\n }\n }, [onBlur]);\n\n // eslint-disable-next-line arrow-body-style\n const getSelectError = useCallback(() => {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }, [error]);\n\n const getCssClasses = useCallback(\n () => [\n 'tyk-form-group',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' '),\n [wrapperClassName, theme, labelwidth, error],\n );\n\n const getLabelStyles = useCallback(() => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n }, [labelwidth]);\n\n const getNonLabelWidth = useCallback(() => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n }, [labelwidth]);\n\n const getSelectComponent = useCallback(() => {\n const selectValue = isfield && value ? value : stateValue;\n\n return (\n \n {\n options.map((option) => (\n \n ))\n }\n \n );\n }, [isfield, value, stateValue, handleOnChange, handleOnBlur, options, rest]);\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n { getSelectComponent() }\n {\n note\n ?

    { note }

    \n : null\n }\n { getSelectError() }\n
    \n )}\n {readOnly &&
    {value || '-'}
    }\n \n );\n}\n\nSelect.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n isfield: PropTypes.bool,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n options: PropTypes.instanceOf(Array),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default Select;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Message from '../../../components/Message';\nimport List from '../../../components/List';\nimport Icon from '../../../components/Icon';\n\nfunction SelectableList(props) {\n const {\n checkboxalticon,\n items,\n itemTemplate,\n value,\n noItemsMessage = 'No items in the list',\n onChange,\n theme,\n primaryKey,\n wrapperClassName = '',\n } = props;\n\n const handleOnSelect = (event) => {\n const newSelectedItems = structuredClone(value);\n const elemPosition = newSelectedItems.findIndex(\n (id) => JSON.stringify(id) === JSON.stringify(\n Array.isArray(id)\n ? event.target.value.split(',')\n : event.target.value,\n ),\n );\n\n if (event.target.checked && elemPosition === -1) {\n const tempValue = event.target.value.split(',');\n const finalValue = tempValue.length > 1 ? tempValue : event.target.value;\n\n newSelectedItems.push(finalValue);\n } else if (!event.target.checked && elemPosition > -1) {\n newSelectedItems.splice(elemPosition, 1);\n }\n\n if (onChange) {\n onChange(newSelectedItems);\n }\n };\n\n const getListItemCssClassName = (isActive) => {\n const cssClasses = [];\n\n if (checkboxalticon) {\n cssClasses.push('tyk-selectable-list__item--with-icon');\n }\n\n if (isActive) {\n cssClasses.push('tyk-selectable-list__item--active');\n }\n\n return cssClasses.join(' ');\n };\n\n const isChecked = (inputValue, itemValue) => Boolean(\n inputValue.find((tvalue) => JSON.stringify(itemValue) === JSON.stringify(tvalue)),\n );\n\n return (\n \n {\n !items.length\n ? (\n
  • \n \n {noItemsMessage}\n \n
  • \n )\n : items.map((item, index) => (\n \n \n \n ))\n }\n
    \n );\n}\n\nSelectableList.propTypes = {\n items: PropTypes.instanceOf(Array),\n itemTemplate: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n PropTypes.func,\n ]),\n value: PropTypes.instanceOf(Array),\n onChange: PropTypes.func,\n primaryKey: PropTypes.string,\n noItemsMessage: PropTypes.string,\n checkboxalticon: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n theme: PropTypes.string,\n wrapperClassName: PropTypes.string,\n};\n\nSelectableList.defaultProps = {\n items: [],\n primaryKey: 'id',\n value: [],\n};\n\nexport default SelectableList;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Textarea({\n id,\n input,\n label,\n note,\n error,\n theme,\n labelwidth,\n value,\n readOnly,\n wrapperClassName,\n ...rest\n}) {\n const classes = [\n 'tyk-form-group',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' ');\n\n const getLabelStyles = () => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n };\n\n const getNonLabelWidth = () => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n };\n\n function getTextareaError() {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n \n { value }\n \n {\n note\n ?

    { note }

    \n : null\n }\n {getTextareaError()}\n
    \n )}\n {readOnly &&
    {value || '-'}
    }\n \n );\n}\n\nTextarea.propTypes = {\n /** Disable the component */\n disabled: PropTypes.bool,\n /** Displays only the text value of the component, or \"-\" if no value is set */\n readOnly: PropTypes.bool,\n input: PropTypes.instanceOf(Object),\n /** Set an error message for the component and the component is rendered in the error state */\n error: PropTypes.string,\n /** Adds a label to the component */\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n /** Sets the width of the label */\n labelwidth: PropTypes.string,\n /** Set a name for the component */\n name: PropTypes.string,\n /** Adds additional information under the component */\n note: PropTypes.string,\n /** Callback function executed on value change */\n onChange: PropTypes.func,\n id: PropTypes.string,\n /** Set a theme for the component */\n theme: PropTypes.string,\n /** Set the value of the component */\n value: PropTypes.string,\n /** CSS classes added to the wrapper of the component */\n wrapperClassName: PropTypes.string,\n};\n\nexport default Textarea;\n","import { createContext } from 'react';\n\nconst ToggleContext = createContext();\n\nexport default ToggleContext;\n","import React, { Component, createRef } from 'react';\nimport PropTypes from 'prop-types';\n\nclass ToggleItem extends Component {\n static getNotchCssClasses(context) {\n return ['tyk-toggle__item-notch', `tyk-toggle__item-notch--${context.type}`].join(' ');\n }\n\n constructor(props) {\n super(props);\n\n this.itemRef = createRef();\n }\n\n componentDidMount() {\n const { context, value } = this.props;\n\n if (context.value === value) {\n context.saveSelectedRef(this.itemRef);\n }\n }\n\n componentDidUpdate(prevProps) {\n const { context, value } = this.props;\n\n if (prevProps.context.value !== context.value && context.value === value) {\n context.saveSelectedRef(this.itemRef);\n }\n }\n\n onChange(event) {\n const { context, value } = this.props;\n const { disabled, readOnly } = context;\n\n if (disabled || readOnly) {\n return;\n }\n\n context.onItemSelected(context.type === 'single' ? !context.value : value, event);\n }\n\n render() {\n const {\n context, label, name, value,\n } = this.props;\n return (\n
  • \n \n
  • \n );\n }\n}\n\nToggleItem.propTypes = {\n context: PropTypes.instanceOf(Object),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n name: PropTypes.string,\n value: PropTypes.string,\n};\n\nexport default ToggleItem;\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport ToggleContext from './ToggleContext';\nimport ToggleItem from './ToggleItem';\n\nfunction ToggleItemWrapper({ children, ...rest }, ref) {\n return (\n \n {(context) => (\n \n {children}\n \n )}\n \n );\n}\n\nToggleItemWrapper.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n};\n\nexport default forwardRef(ToggleItemWrapper);\n","import React, {\n useCallback, useMemo, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport ToggleContext from './js/ToggleContext';\nimport ToggleItemWrapper from './js/ToggleItemWrapper';\n\nfunction Toggle({\n className,\n disabled,\n readOnly,\n size,\n theme,\n direction,\n onDark,\n wrapperClassName = '',\n onChange,\n labelwidth,\n label,\n separated,\n children,\n type,\n value,\n error,\n}) {\n const [selectedRef, setSelectedRef] = useState(null);\n const notchRef = useRef();\n const toggleRef = useRef();\n\n const classes = [\n wrapperClassName,\n className,\n 'tyk-toggle',\n `tyk-toggle--disabled-${readOnly || disabled}`,\n `tyk-toggle--${size || 'md'}`,\n `tyk-toggle--${theme}`,\n `tyk-toggle--${direction}`,\n onDark && 'tyk-toggle--on-dark',\n ].filter(Boolean).join(' ');\n\n const onItemSelected = useCallback((itemValue, event) => {\n if (!onChange) return;\n onChange(itemValue, event);\n }, [onChange]);\n\n const getLabelStyles = useCallback(() => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n }, [labelwidth]);\n\n const positionNotch = useCallback(() => {\n if (!selectedRef || separated) {\n return {};\n }\n\n const selectedWidth = selectedRef.current.offsetWidth;\n const selectedOffset = selectedRef.current.getBoundingClientRect().left;\n const toggleOffset = toggleRef.current.getBoundingClientRect().left;\n const left = selectedOffset - toggleOffset;\n\n return {\n left: `${left + 4}px`,\n width: `${selectedWidth - 8}px`,\n };\n }, [selectedRef, separated]);\n\n const contextValue = useMemo(() => ({\n disabled,\n readOnly,\n onItemSelected,\n saveSelectedRef: setSelectedRef,\n separated,\n type,\n value,\n }), [disabled, readOnly, onItemSelected, separated, type, value]);\n\n return (\n <>\n
    \n \n {\n label\n ? \n : null\n }\n
      \n { children }\n {\n type === 'multiple' && !separated\n ?
    • \n : null\n }\n
    \n \n
    \n {\n error && (\n

    \n { error }\n

    \n )\n }\n \n );\n}\n\nToggle.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n error: PropTypes.string,\n onChange: PropTypes.func,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n theme: PropTypes.string,\n type: PropTypes.string, // single || multiple\n size: PropTypes.string,\n separated: PropTypes.bool,\n direction: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.string,\n ]),\n onDark: PropTypes.bool,\n wrapperClassName: PropTypes.string,\n};\n\nToggle.defaultProps = {\n separated: false,\n theme: 'primary',\n type: 'single',\n direction: 'row',\n};\n\nToggle.Item = ToggleItemWrapper;\n\nexport default Toggle;\n","const config = {\n FORM_DEBOUNCE: 200,\n};\n\nexport function setConfig(key, val) {\n config[key] = val;\n}\n\nexport default config;\n","import React, { useCallback, useEffect, useState } from 'react';\n\nimport config from '../config/config';\n\nfunction getValueFromPath(obj, path) {\n // turn 'aaa.qqq[2].bbb[5][3].mmm' into ['aaa', 'qqq', '2', 'bbb', '5', '3', 'mmm']\n const indexes = path.split(/[\\][.]/).filter(Boolean);\n return indexes.reduce((acc, v) => (acc ? acc[v] : acc), obj);\n}\n\nfunction debounce(f, limit) {\n let timeoutId;\n return (...args) => {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(f, limit, ...args);\n };\n}\n\n/* eslint-disable react/prop-types, react/function-component-definition */\n/**\n * A wrapper function that \"prepares\" a tyk-ui form component to be used with the formik library.\n * It handles things like setting the value of the component, change events, error state,\n * and also has a default debounce time for when the change event is triggered.\n */\nconst wrapper = (Component, options) => ({ field, form, ...properties }) => {\n const DEFAULT_DEBOUNCE_TIME_MS = typeof config.FORM_DEBOUNCE === 'number' ? config.FORM_DEBOUNCE : 200;\n const [myValue, setMyValue] = useState(field.value);\n const opts = {\n getOnChangeProps: () => ({}),\n hasIsFieldProp: false,\n ...options,\n };\n\n const executeDebounced = useCallback((() => {\n const fn = (f) => f();\n if (\n properties.debounce === false\n || (config.FORM_DEBOUNCE === false && !properties.debounce)\n ) {\n return fn;\n }\n const timeout = typeof properties.debounce === 'number'\n ? properties.debounce\n : DEFAULT_DEBOUNCE_TIME_MS;\n return debounce(fn, timeout);\n })(), []);\n\n const getValue = (v) => {\n if (v?.target) {\n if (v.target.nodeName === 'INPUT' && (v.target.type === 'checkbox' || v.target.type === 'radio')) {\n return v.target.checked;\n }\n return v.target.value;\n }\n return v;\n };\n\n const onChange = (valueOrEvent) => {\n const value = getValue(valueOrEvent);\n const onChangeProps = opts.getOnChangeProps(value, field, form, properties);\n\n const newValue = onChangeProps.value || properties.value || value;\n executeDebounced(() => {\n if (typeof properties.onChange === 'function') {\n properties.onChange(newValue);\n }\n field.onChange({ target: { name: field.name, value: newValue, ...onChangeProps } });\n });\n setMyValue(newValue);\n };\n\n const formError = (getValueFromPath(form.touched, field.name) || Boolean(form.submitCount))\n && getValueFromPath(form.errors, field.name);\n const error = typeof formError === 'string' ? formError : '';\n\n useEffect(() => {\n setMyValue(field.value);\n }, [field.value]);\n\n // eslint-disable-next-line no-param-reassign\n if (form.status?.disabled) properties.disabled = true;\n\n const componentProps = { ...properties };\n delete componentProps.debounce;\n\n if (Object.hasOwn(componentProps, 'className') && componentProps.className === undefined) delete componentProps.className;\n if (Object.hasOwn(componentProps, 'children') && componentProps.children === undefined) delete componentProps.children;\n\n return (\n \n );\n};\n\nexport default wrapper;\n","import wrapper from '../../../utils/formik';\nimport Checkbox from '../../components/Checkbox';\n\nexport default wrapper(Checkbox, {\n getOnChangeProps: (value) => ({\n checked: value,\n }),\n});\n","import wrapper from '../../../utils/formik';\nimport CodeEditor from '../../components/CodeEditor';\n\nexport default wrapper(CodeEditor);\n","import wrapper from '../../../utils/formik';\nimport Combobox from '../../components/Combobox';\n\nexport default wrapper(Combobox);\n","import wrapper from '../../../utils/formik';\nimport Combobox2 from '../../components/Combobox2';\n\nexport default wrapper(Combobox2);\n","import wrapper from '../../../utils/formik';\nimport DatePicker from '../../components/DatePicker';\n\nexport default wrapper(DatePicker);\n","import wrapper from '../../../utils/formik';\nimport EditableList from '../../components/EditableList';\n\nexport default wrapper(EditableList, {\n getOnChangeProps: (value) => ({ value: value || [] }),\n});\n","import wrapper from '../../../utils/formik';\nimport EditableList2 from '../../components/EditableList2';\n\nexport default wrapper(EditableList2);\n","import wrapper from '../../../utils/formik';\nimport FileInput from '../../components/FileInput';\n\nexport default wrapper(FileInput);\n","import wrapper from '../../../utils/formik';\nimport Input from '../../components/Input';\n\nexport default wrapper(Input, { hasIsFieldProp: true });\n","import wrapper from '../../../utils/formik';\nimport Input2 from '../../components/Input2';\n\nexport default wrapper(Input2);\n","import wrapper from '../../../utils/formik';\nimport MultiSelect from '../../components/Multiselect';\n\nexport default wrapper(MultiSelect);\n","import wrapper from '../../../utils/formik';\nimport Radio from '../../components/Radio';\n\nexport default wrapper(Radio, {\n getOnChangeProps: (value, field, form, properties) => ({\n checked: value === properties.value,\n value: properties.value,\n }),\n});\n","import wrapper from '../../../utils/formik';\nimport Select from '../../components/Select';\n\nexport default wrapper(Select, { hasIsFieldProp: true });\n","import wrapper from '../../../utils/formik';\nimport SelectableList from '../../components/SelectableList';\n\nexport default wrapper(SelectableList);\n","import wrapper from '../../../utils/formik';\nimport Textarea from '../../components/Textarea';\n\nexport default wrapper(Textarea);\n","import wrapper from '../../../utils/formik';\nimport Toggle from '../../components/Toggle';\n\nexport default wrapper(Toggle);\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport CodeEditor from '../../components/CodeEditor';\n\nclass FieldCodeEditor extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.prop;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getInputError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldCodeEditor.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldCodeEditor;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Combobox from '../../components/Combobox';\n\nclass FieldCombobox extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getComboboxError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldCombobox.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldCombobox;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Dropdown from '../../components/Dropdown';\n\nclass FieldDropdown extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n render() {\n const {\n children,\n input,\n ...rest\n } = this.props;\n\n return (\n \n {children}\n \n );\n }\n}\n\nFieldDropdown.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldDropdown;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Pagination from '../../components/Pagination';\n\nfunction FieldPagination(props) {\n const { input, ...rest } = props;\n\n return (\n \n );\n}\n\nFieldPagination.propTypes = {\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldPagination;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Combobox2 from '../../components/Combobox2';\n\nfunction FieldCombobox2(props) {\n const { input, meta, validationmessages } = props;\n\n const getComboboxError = () => {\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n return message;\n };\n\n const handleOnChange = (value) => {\n const { onChange } = input;\n onChange(fromJS(value));\n };\n\n return (\n \n );\n}\n\nFieldCombobox2.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldCombobox2;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport DatePicker from '../../components/DatePicker';\n\nfunction FormDatePicker(props) {\n const {\n input,\n meta,\n validationmessages,\n ...rest\n } = props;\n\n const getDatePickerError = () => {\n const { touched, error } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n }\n\n return message;\n };\n\n const handleOnChange = (value) => {\n const { onChange } = input;\n\n onChange(fromJS(value));\n };\n\n return (\n \n );\n}\n\nFormDatePicker.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FormDatePicker;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport EditableList from '../../components/EditableList';\n\nclass FieldEditableList extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getEditableListError() {\n const { meta, validationmessages } = this.props;\n const { touched, error } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n }\n\n return message;\n }\n\n render() {\n const { ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldEditableList.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldEditableList;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport FileInput from '../../components/FileInput';\n\nclass FieldFileInput extends Component {\n getInputError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldFileInput.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldFileInput;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Input from '../../components/Input';\n\nclass FieldInput extends Component {\n getInputError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldInput.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldInput;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Multiselect from '../../components/Multiselect';\n\nclass FieldMultiselect extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getMultiselectError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldMultiselect.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldMultiselect;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Select from '../../components/Select';\n\nclass FieldSelect extends Component {\n constructor(props) {\n super(props);\n\n this.handleEvent = this.handleEvent.bind(this);\n }\n\n handleEvent(selectValue) {\n const { input } = this.props;\n const { onChange, value } = input;\n\n onChange(fromJS(selectValue !== undefined ? selectValue : value));\n }\n\n getSelectError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldSelect.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldSelect;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport SelectableList from '../../components/SelectableList';\n\nclass FieldSelectableList extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n\n input.onChange(fromJS(value));\n }\n\n render() {\n const { children, ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldSelectableList.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.node,\n ]),\n onChange: PropTypes.func,\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldSelectableList;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Toggle from '../../components/Toggle';\n\nclass FieldToggle extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n\n input.onChange(fromJS(value));\n }\n\n render() {\n const { children, ...props } = this.props;\n\n return (\n \n {children}\n \n );\n }\n}\n\nFieldToggle.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.node,\n ]),\n onChange: PropTypes.func,\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldToggle;\n","import { useEffect, useRef } from 'react';\n\n/** @component */\nexport default function useInterval(callback, delay, ...args) {\n const savedCallback = useRef();\n\n useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n // eslint-disable-next-line consistent-return\n useEffect(() => {\n function tick() {\n savedCallback.current(...args);\n }\n if (delay !== null && delay !== undefined) {\n const id = setInterval(tick, delay);\n return () => clearInterval(id);\n }\n }, [delay]);\n}\n"],"names":["global","this","window","define","module","deps","payload","arguments","length","modules","payloads","original","apply","console","error","trace","ns","root","_require","parentId","callback","lookup","undefined","Object","prototype","toString","call","params","i","l","dep","require","push","packagedModule","normalizeModule","moduleName","indexOf","chunks","split","charAt","slice","join","previous","replace","exports","mod","id","uri","packaged","ace","defineProp","obj","name","val","defineProperty","value","enumerable","writable","configurable","String","startsWith","searchString","position","lastIndexOf","endsWith","subjectString","lastIndex","repeat","count","result","string","includes","str","assign","target","TypeError","output","index","source","keys","forEach","key","values","o","map","k","Array","find","predicate","len","thisArg","kValue","findIndex","item","fill","O","relativeStart","Math","max","min","end","relativeEnd","final","of","deepCopy","copy","isArray","last","a","stringReverse","reverse","stringRepeat","trimBeginRegexp","trimEndRegexp","stringTrimLeft","stringTrimRight","copyObject","copyArray","array","arrayToMap","arr","createMap","props","create","arrayRemove","splice","escapeRegExp","escapeHTML","getMatchOffsets","regExp","matches","offset","deferredCall","fcn","timer","deferred","timeout","cancel","setTimeout","schedule","clearTimeout","isPending","delayedCall","defaultTimeout","_self","delay","supportsLookbehind","RegExp","e","skipEmptyMatch","line","supportsUnicodeFlag","codePointAt","OS","LINUX","MAC","WINDOWS","getOS","isMac","isLinux","_navigator","navigator","os","exec","platform","toLowerCase","ua","userAgent","appName","isWin","isIE","parseFloat","match","isOldIE","isGecko","isMozilla","isOpera","opera","isWebKit","isChrome","isSafari","isEdge","isAIR","isAndroid","isChromeOS","isIOS","test","MSStream","isMobile","strictCSP","useragent","buildDom","parent","refs","txt","document","createTextNode","appendChild","els","ch","el","createElement","options","childIndex","n","className","style","cssText","setAttribute","getDocumentHead","doc","head","getElementsByTagName","documentElement","tag","createElementNS","removeChildren","element","innerHTML","textContent","ownerDocument","createFragment","createDocumentFragment","hasCssClass","addCssClass","removeCssClass","classes","toggleCssClass","add","setCssClass","node","include","hasCssString","sheets","querySelectorAll","removeElementById","getElementById","remove","cssCache","insertPendingStyles","cache","importCssString","container","getRootNode","insertBefore","firstChild","useStrictCSP","importCssStylsheet","rel","href","scrollbarWidth","inner","width","minWidth","height","display","outer","left","overflow","body","noScrollbar","offsetWidth","withScrollbar","clientWidth","removeChild","computedStyle","getComputedStyle","setStyle","styles","property","HAS_CSS_ANIMATION","HAS_CSS_TRANSFORMS","HI_DPI","devicePixelRatio","div","transform","animationName","translate","tx","ty","round","top","dom","get","url","xhr","XMLHttpRequest","open","onreadystatechange","readyState","responseText","send","loadScript","path","s","src","onload","_","isAbort","qualifyURL","inherits","ctor","superCtor","super_","constructor","mixin","implement","proto","EventEmitter","stopPropagation","propagationStopped","preventDefault","defaultPrevented","_emit","_dispatchEvent","eventName","_eventRegistry","_defaultHandlers","listeners","defaultHandler","type","_signal","once","on","newCallback","off","Promise","resolve","setDefaultHandler","handlers","_disabled_","old","disabled","removeDefaultHandler","pop","addEventListener","capturing","removeListener","removeEventListener","removeAllListeners","reportError","msg","data","Error","messages","oop","optionsProvider","setOptions","optList","setOption","getOptions","optionNames","$options","filter","hidden","getOption","opt","warn","forwardTo","handlesSet","set","message","AppConfig","$defaultOptions","defineOptions","initialValue","resetOptions","setDefaultValue","opts","setDefaultValues","optionHash","setMessages","nls","translated","isDark","cssClass","$id","lang","net","customLoader","workerPath","modePath","themePath","basePath","suffix","$moduleUrls","loadWorkerFromBlob","sharedPopups","hasOwnProperty","all","$modes","moduleUrl","component","parts","sep","base","re","setModuleUrl","subst","setLoader","cb","dynamicModules","$loading","$loaded","loadModule","onLoad","loadedModule","moduleType","load","afterLoad","loader","err","reportErrorIfPathIsNotConfigured","then","default","$require","setModuleLoader","version","config","init","scriptOptions","scriptUrl","currentScript","_currentScript","currentDocument","scripts","script","getAttribute","attributes","j","attr","m","m1","toUpperCase","Range","startRow","startColumn","endRow","endColumn","start","row","column","isEqual","range","contains","compare","compareRange","cmp","comparePoint","p","containsRange","intersects","isEnd","isStart","setStart","setEnd","inside","insideStart","insideEnd","isMultiLine","compareStart","compareEnd","compareInside","clipRows","firstRow","lastRow","fromPoints","extend","isEmpty","clone","collapseRows","toScreenRange","session","screenPosStart","documentToScreenPosition","screenPosEnd","moveBy","comparePoints","p1","p2","Keys","ret","MODIFIER_KEYS","KEY_MODS","FUNCTION_KEYS","PRINTABLE_KEYS","parseInt","enter","escape","esc","del","mods","pow","x","keyCodeToString","keyCode","keyString","fromCharCode","activeListenerOptions","pressedKeys","ts","getListenerOptions","createComment","passive","detectListenerOptionsSupport","EventListener","elem","destroy","addListener","destroyer","$toDestroy","stopEvent","getButton","ctrlKey","altKey","shiftKey","button","capture","eventHandler","releaseCaptureHandler","onMouseUp","addMouseWheelListener","deltaX","deltaY","deltaMode","DOM_DELTA_PIXEL","wheelX","wheelY","DOM_DELTA_LINE","DOM_DELTA_PAGE","addMultiMouseDownListener","elements","timeouts","callbackName","startX","startY","clicks","eventNames","onMousedown","detail","isNewClick","abs","clientX","clientY","_clicks","getModifierHash","metaKey","normalizeCommandKeys","hashId","getModifierState","altGr","location","keyLocation","timeStamp","resetPressedKeys","getModifierString","addCommandKeyListener","isOldGecko","lastKeyDownKeyCode","lastDefaultPrevented","postMessage","postMessageId","nextTick","win","messageName","listener","$idleBlocked","onIdle","handler","$idleBlockId","blockIdle","nextFrame","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","bind","$cancelT","lineMode","pasteCancelled","Date","now","event","clipboard","BROKEN_SETDATA","USE_IE_MIME_TYPE","HAS_FOCUS_ARGS","MAX_LINE_LENGTH","KEYS","MODS","valueResetRegex","TextInput","parentNode","host","text","opacity","copied","pasted","inComposition","sendingText","tempStyle","fontSize","commandMode","ignoreFocusEvents","lastValue","lastSelectionStart","lastSelectionEnd","lastRestoreEnd","rowStart","Number","MAX_SAFE_INTEGER","rowEnd","MIN_SAFE_INTEGER","numberOfExtraLines","isFocused","activeElement","setNumberOfExtraLines","number","setAriaOptions","activeDescendant","inline","removeAttribute","role","setLabel","selection","cursor","onBlur","hasFocus","onFocus","resetSelection","$focusScroll","focus","renderer","enableKeyboardAccessibility","preventScroll","isTransformed","getBoundingClientRect","ancestors","t","parentElement","nodeType","blur","curOp","commandName","command","isUserAction","docChanged","selectionChanged","onCompositionEnd","positionToSelection","getLine","newValue","selectionEnd","setSelectionRange","afterContextMenu","selectionStart","getRange","lines","prevLine","nextLine","inputHandler","setInputHandler","getInputHandler","sendText","fromInput","onPaste","extendLeft","extendRight","inserted","restoreStart","restoreEnd","endIndex","shouldReset","onTextInput","onInput","onCompositionUpdate","inputType","execCommand","handleClipboardData","forceIEMime","clipboardData","mime","setData","getData","doCopy","isCut","getCopyText","onCut","onCopy","select","onCommandKey","isAllSelected","selectAll","$readOnly","cancelComposition","useTextareaForIME","markerRange","context","compositionStartOffset","closeTimeout","syncComposition","onContextMenuClose","$isMousePressed","$keepTextAreaAtCursor","$moveTextAreaToCursor","onCompositionStart","getSelectionRange","msGetInputContext","getInputContext","getElement","setCommandMode","readOnly","setReadOnly","setCopyWithEmptySelection","onContextMenu","domEvent","moveToMouse","bringToFront","characterWidth","rect","borderTopWidth","borderLeftWidth","maxTop","bottom","clientHeight","move","textInput","scroller","typingResetTimeout","typing","detectArrowKeys","$mouseHandler","isMousePressed","modifier","up","home","option","down","right","shift","commands","findKeyCommand","addIosSelectionHandler","$setUserAgentForTests","_isMobile","_isIOS","DefaultHandlers","mouseHandler","$clickSelection","editor","onMouseDown","onDoubleClick","onTripleClick","onQuadClick","onMouseWheel","selectByLines","extendSelectionBy","selectByWords","ev","inSelection","pos","getDocumentPosition","mousedownEvent","moveToPosition","time","$focusTimeout","inMultiSelectMode","captureMouse","startSelect","setState","waitForClickSelection","screenToTextCoordinates","y","getShiftKey","selectToPosition","anchor","orientedRange","calcRangeOrientation","setSelectionAnchor","scrollCursorIntoView","unitName","cmpStart","cmpEnd","selectByLinesEnd","unsetStyle","focusWait","ax","ay","bx","by","distance","sqrt","getBracketRange","getWordRange","getLineRange","getAccelKey","$lastScroll","vx","vy","allowed","prevScroll","dt","direction","canScroll","isScrollableBy","speed","scrollBy","stop","selectEnd","selectAllEnd","selectByWordsEnd","extendStatics","__extends","d","b","setPrototypeOf","__proto__","__","__values","Symbol","iterator","next","done","CLASSNAME","Tooltip","isOpen","$element","$parentNode","$init","setText","setHtml","html","setPosition","setClassName","setTheme","theme","show","hide","getHeight","offsetHeight","getWidth","popupManager","PopupManager","popups","addPopup","popup","updatePopups","removePopup","e_1","_a","e_2","_b","sort","priority","visiblepopups","_c","_d","shouldDisplay","visiblepopups_1","visiblepopups_1_1","visiblePopup","doPopupsOverlap","e_2_1","return","e_1_1","popupA","popupB","rectA","rectB","HoverTooltip","_super","_this","lastT","idleTime","lastEvent","onMouseOut","onMouseMove","waitForHover","whiteSpace","pointerEvents","tabIndex","addToEditor","getMouseEventTarget","removeFromEditor","isOutsideOfText","$gatherData","docPos","screenPos","pixelToScreenCoordinates","clippedPos","setDataProvider","showForRange","domNode","startingEvent","$registerCloseEvents","addMarker","textToScreenCoordinates","pageX","maxHeight","labelHeight","labelWidth","spaceBelow","innerHeight","pageY","lineHeight","isAbove","innerWidth","marker","$markerSession","removeMarker","$removeCloseEvents","relatedTarget","currentTarget","classList","GutterHandler","tooltipTimeout","mouseEvent","gutter","$gutterLayer","tooltip","GutterTooltip","hideTooltip","moveTooltip","getRegion","selectTo","srcElement","$tooltipFollowsMouse","getLength","screenRow","$pos","documentToScreenRow","showTooltip","gutterRow","getGutterRow","gutterCell","$lines","querySelector","$gutter","windowWidth","windowHeight","singular","plural","warning","info","annotation","annotationsInRow","$annotations","from","fold","getFoldLine","$showFoldedAnnotations","mostSevereAnnotationInFoldType","annotationsInFold","annotationType","summaryFoldedAnnotations","concat","annotationsToSummaryString","annotationMessages","iconClassName","$useSvgGutterIcons","annotationLabels","tooltipContent","annotations","summary","annotationTypes_1","annotationTypes_1_1","label","MouseEvent","$inSelection","documentRow","selectionRange","DragdropHandler","dragImage","dragSelectionMarker","timerId","dragCursor","dragOperation","isInternal","autoScrollStartTime","cursorMovedTime","cursorPointOnCaretMoved","mouseTarget","counter","onDragInterval","prevCursor","vMovement","hMovement","moveCursorToPosition","calcDistance","layerConfig","editorRect","offsets","nearestXOffset","nearestYOffset","scrollCursor","vScroll","hScroll","autoScroll","addDragMarker","toOrientedRange","getSelectionStyle","clearSelection","$cursorLayer","setBlinking","clearInterval","setInterval","clearDragMarker","fromOrientedRange","$resetCursorStyle","onDragStart","cancelDrag","draggable","self","dataTransfer","effectAllowed","getReadOnly","setDragImage","clearData","getTextRange","onDragEnd","dropEffect","setCursorStyle","onDragEnter","canAccept","getDropEffect","onDragOver","onMouseMoveTimer","onDragLeave","onDrop","moveText","dropData","insert","types","some","copyAllowed","copyModifierState","dragWait","getDragDelay","startDrag","dragWaitEnd","dragReadyEnd","cursorStyle","onMouseDrag","state","dragDrop","$dragEnabled","eventTarget","unselectable","addTouchListeners","touchStartT","longTouchTimer","animationTimer","pressed","contextMenu","mode","animationSteps","clickCount","vX","vY","showContextMenu","handleClick","selected","hasUndo","action","getUndoManager","replaceChild","class","readText","writeText","ontouchstart","ontouchend","onclick","pagePos","leftOffset","scrollLeft","hideContextMenu","handleLongTap","selectWord","touches","h","w","touchObj","setRange","switchToSelectionMode","cursorPos","getPixelPosition","anchorPos","offsetTop","offsetLeft","weightedDistance","diff1","diff2","oldScrollTop","getScrollTop","DefaultGutterHandler","MouseHandler","focusEditor","onMouseEvent","scrollBarV","scrollBarH","Boolean","gutterEl","$dragDelay","character","mousemove","$scrollSpeed","mouseMoveHandler","which","releaseMouse","$mouseMoved","onCaptureEnd","onOperationEnd","onCaptureInterval","$onCaptureMouseMove","endOperation","startOperation","cancelContextMenu","scrollSpeed","dragDelay","dragEnabled","focusTimeout","tooltipFollowsMouse","FoldHandler","getFoldAt","removeFold","expandFold","getUseWrapMode","foldWidgets","onFoldWidgetClick","getParentFoldRangeData","firstRange","addFold","keyUtil","KeyBinding","$editor","$data","$handlers","kb","removeKeyboardHandler","$defaultHandler","addKeyboardHandler","setKeyboardHandler","handleKeyboard","attach","detach","getKeyboardHandler","getStatusText","$callKeyboardHandlers","toExecute","success","args","passEvent","dir","hiLevel","lastArabic","hasUBAT_B","hasUBAT_S","impTab_LTR","impTab_RTL","ET","BN","UnicodeTBL00","UnicodeTBL20","_invertLevel","lev","levels","_array","lo","hi","tmp","_getCharClass","chars","ix","wType","nType","cType","c","rtlCandidate","_getCharacterType","uc","charCodeAt","L","R","EN","ON_R","AN","R_H","B","RLE","DOT","doBidiReorder","textCharTypes","isRtl","logicalFromVisual","bidiLevels","charTypes","impTab","prevState","newClass","newLevel","newState","condPos","_computeLevels","hasBidiCharacters","getVisualFromLogicalIdx","logIdx","rowMap","bidiUtil","bidiRE","BidiHandler","bidiMap","currentRow","charWidths","EOL","showInvisibles","isRtlDir","$isRtl","wrapIndent","EOF","contentWidth","fontMetrics","rtlLineOffset","wrapOffset","isMoveLeftOperation","seenBidi","getValue","isBidiRow","docRow","splitIndex","updateRowLine","updateBidiMap","onChange","delta","getDocumentRow","rowCache","$screenRowCache","$getRowCacheIndex","$docRowCache","getSplitIndex","currentIndex","prevIndex","endOfLine","$useWrapMode","splits","$wrapData","indent","substring","size","isFullWidth","getScreenTabSize","$main","substr","markAsDirty","updateCharacterWidths","$characterSize","bidiCharWidth","$measureCharWidth","setShowInvisibles","setEolChar","eolChar","setContentWidth","isRtlLine","setRtlDirection","getCursorPosition","getSelectionAnchor","$bidiHandler","removeInLine","getPosLeft","col","leftBoundary","logicalIdx","getOverwrite","visualIdx","getSelections","startCol","endCol","level","selections","selColMin","selColMax","isSelected","isSelectedPrev","visIdx","offsetToCol","posX","charWidth","Selection","getDocument","lead","createAnchor","$silent","$cursorChanged","$isEmpty","$keepDesiredColumnOnChange","$desiredColumn","$anchorChanged","getCursor","getPosition","setAnchor","getAnchor","getSelectionLead","isBackwards","$setSelection","MAX_VALUE","anchorRow","anchorColumn","cursorRow","cursorColumn","wasEmpty","wasMultiselect","$moveSelection","mover","moveCursorTo","moveTo","selectUp","moveCursorUp","selectDown","moveCursorDown","selectRight","moveCursorRight","selectLeft","moveCursorLeft","selectLineStart","moveCursorLineStart","selectLineEnd","moveCursorLineEnd","selectFileEnd","moveCursorFileEnd","selectFileStart","moveCursorFileStart","selectWordRight","moveCursorWordRight","selectWordLeft","moveCursorWordLeft","selectAWord","getAWordRange","excludeLastChar","foldLine","selectLine","moveCursorBy","wouldMoveIntoSoftTab","tabSize","isTabStop","getTabSize","getNavigateWithinSoftTabs","firstColumnPosition","screenToDocumentPosition","leadingSpace","getDisplayLine","$useEmacsStyleLineStart","lineEnd","getDocumentLastRowColumnPosition","textEnd","search","moveCursorLongWordRight","rightOfCursor","nonTokenRe","tokenRe","moveCursorLongWordLeft","getFoldStringAt","leftOfCursor","$shortWordEndIndex","whitespaceRe","moveCursorShortWordRight","moveCursorShortWordLeft","$selectLongWords","rows","offsetX","lineWidgets","widget","rowsAbove","rowCount","keepDesiredColumn","moveCursorToScreen","desiredColumn","r","getRangeOfMovements","func","toJSON","rangeCount","ranges","r1","fromJSON","rangeList","toSingleRange","addRange","MAX_TOKEN_COUNT","Tokenizer","rules","states","regExps","matchMappings","ruleRegExps","matchTotal","mapping","defaultToken","flag","splitterRurles","rule","caseInsensitive","unicode","regex","adjustedregex","matchcount","token","groupCount","tokenArray","onMatch","$arrayTokens","$applyToken","digit","removeCapturingGroups","splitRegex","createSplitterRegexp","$setMaxTokenCount","tokens","stack","inChClass","lastCapture","parenOpen","parenClose","square","getLineTokens","startState","currentState","matchAttempts","skipped","consumeLineEnd","merge","unshift","TextHighlightRules","$rules","addRules","prefix","nextState","getRules","embedRules","HighlightRules","escapeRules","append","$embeds","getEmbeds","pushState","popState","normalizeRules","processState","processed","toInsert","stateName","includeName","noEscape","keywordMap","createKeywordMapper","ignoreCase","splitChar","keywords","$keywordList","list","word","getKeywords","$keywords","Behaviour","$behaviours","addBehaviours","behaviours","inherit","getBehaviours","TokenIterator","initialRow","initialColumn","$session","$row","$rowTokens","getTokens","getTokenAt","$tokenIndex","stepBackward","stepForward","getCurrentToken","getCurrentTokenRow","getCurrentTokenColumn","rowTokens","tokenIndex","getCurrentTokenPosition","getCurrentTokenRange","SAFE_INSERT_IN_TOKENS","SAFE_INSERT_BEFORE_TOKENS","contextCache","defaultQuotes","initContext","multiSelect","autoInsertedBrackets","autoInsertedRow","autoInsertedLineEnd","maybeInsertedBrackets","maybeInsertedRow","maybeInsertedLineStart","maybeInsertedLineEnd","getWrapped","opening","closing","rowDiff","CstyleBehaviour","getWrapBehavioursEnabled","isSaneInsertion","braces","recordAutoInsert","recordMaybeInsert","$findOpeningBracket","isAutoInsertedClosing","popAutoInsertedClosing","isMaybeInsertedClosing","clearMaybeInsertedClosing","openBracePos","findMatchingBracket","next_indent","$getIndent","getTabString","quotes","$mode","$quotes","lineCommentStart","quote","leftChar","rightChar","rightToken","pair","stringBefore","stringAfter","wordRe","isWordBefore","isWordAfter","pairQuotesAfter","$pairQuotesAfter","charBefore","closeDocComment","$matchTokenType","iterator2","bracket","wordChars","code","Mode","$defaultBehaviour","getTokenizer","$tokenizer","$highlightRules","$highlightRuleConfig","blockComment","toggleCommentLines","ignoreBlankLines","shouldRemove","minIndent","Infinity","insertAtTabStop","regexpStart","getUseSoftTabs","uncomment","shouldInsertSpace","commentWithSpace","comment","insertInLine","testRemove","before","after","spaces","lineCommentEnd","regexpEnd","iter","fun","minEmptyLength","floor","toggleBlockComment","colDiff","initialRange","startRange","endRange","getNextLineIndent","tab","checkOutdent","input","autoOutdent","createWorker","createModeDelegates","delegations","scope","functionName","$delegator","method","language","transformAction","param","$behaviour","completionKeywords","ruleItr","aLength","$createKeywordList","getCompletions","score","meta","applyDelta","docLines","doNotValidate","Anchor","$onChange","$clipPositionToDocument","point","moveIfEqual","deltaIsInsert","deltaRowShift","deltaColShift","deltaStart","deltaEnd","$pointsInOrder","$getTransformedPoint","$insertRight","noClip","point1","point2","equalPointsInOrder","bColIsAfter","Document","textOrLines","insertMergedLines","setValue","getAllLines","getNewLineCharacter","$detectNewLine","$autoNewLine","$newLineMode","setNewLineMode","newLineMode","getNewLineMode","isNewLine","getLines","getLinesForRange","insertLines","insertFullLines","removeLines","removeFullLines","insertNewLine","$split","clonePos","$clipPosition","deleteFirstNewLine","deleteLastNewLine","deletedLines","removeNewLine","applyDeltas","deltas","revertDeltas","revertDelta","isInsert","$splitAndapplyLargeDelta","$safeApplyDelta","docLength","MAX","to","chunk","indexToPosition","newlineLength","positionToIndex","BackgroundTokenizer","tokenizer","running","currentLine","$worker","workerStart","endLine","startLine","processedLines","$tokenizeRow","fireUpdateEvent","setTokenizer","setDocument","first","scheduleStart","$updateOnChange","getState","cleanup","SearchHighlight","clazz","setRegexp","update","markerLayer","renderedMarkerRanges","MAX_RANGES","rangeToAddMarkerTo","rangeAsString","drawSingleLineMarker","UndoManager","$maxRev","$fromUndo","$undoDepth","reset","addSession","allowMerge","$lastDelta","$keepRedoStack","$redoStack","lastDeltas","undoStackLength","$undoStack","$rev","addSelection","rev","startNewGroup","markIgnored","ignore","getSelection","getRevision","getDeltas","getChangedRanges","getChangedLines","undo","dontSelect","deltaSet","swapped","swapGroups","rearrangeUndoStack","$redoStackBaseRev","undoSelectionRange","undoChanges","$syncRev","redo","diff","redoStack","deltaSets","moveDeltasByOne","rebaseRedoStack","redoSelectionRange","redoChanges","nextDelta","mark","canUndo","canRedo","bookmark","isAtBookmark","json","$prettyPrint","stringifyDelta","hasRedo","isClean","markClean","stringifyRange","swap","d1","d2","i1","i2","ds1","ds2","selectionBefore","selectionAfter","xform","c1","splitDelta","shiftPos","rowsBefore","otherLines","cloneDelta","xformed","FoldLine","foldData","folds","setFoldLine","shiftRow","sameRow","containsRow","walk","lastEnd","isNewRow","placeholder","getNextFoldTo","kind","addRemoveChars","log","foldBefore","newFoldLine","foldLineNext","idxToPosition","idx","lastFoldEndColumn","RangeList","$bias","pointIndex","excludeEdges","startIndex","addList","removed","substractPoint","containsPoint","rangeAtPoint","clipped","removeAll","lineDif","Fold","subFolds","subFold","collapseChildren","addSubFold","consumePoint","afterStart","firstConsumed","consumedFolds","restoreRange","restorePoint","Folding","side","getFoldsInRange","foldLines","$foldData","foundFolds","getFoldsInRangeList","getAllFolds","trim","lastFold","startFoldLine","getNextFoldLine","getFoldedRowCount","$addFoldLine","added","$clipRangeToDocument","startFold","endFold","removeFolds","$updateWrapData","$updateRowLengthCache","$modified","addFolds","$updating","cloneFolds","foldAll","expandFolds","unfold","expandInner","outermostFolds","isRowFolded","startFoldRow","getRowFoldEnd","getRowFoldStart","getFoldDisplayLine","textLine","lastColumn","$cloneFoldData","fd","toggleFold","tryToUnfold","bracketPos","getCommentFoldRange","depth","getFoldWidget","getFoldWidgetRange","foldToLevel","foldAllComments","$foldStyles","$foldStyle","setFoldStyle","$foldMode","$setFolding","foldMode","$updateFoldWidgets","$tokenizerUpdateFoldWidgets","updateFoldWidgets","tokenizerUpdateFoldWidgets","ignoreCurrent","fw","children","siblings","$toggleFoldWidget","toggleFoldWidget","toggleParent","BracketMatch","chr","charBeforeCursor","$findClosingBracket","getMatchingBracketRanges","bracketsRegExp","$brackets","typeRe","openBracket","valueIndex","closingBracket","valueLength","getMatchingTags","$findTagName","$findClosingTag","$findOpeningTag","found","backward","prevToken","currentTag","openTagStart","openTagName","foundOpenTagEnd","openTagEnd","closeTagStart","closeTagName","closeTagEnd","openTag","closeTag","stepCount","tmpToken","TextMode","EditSession","$breakpoints","$decorations","$frontMarkers","$backMarkers","$markerId","$undoSelect","$uid","bgTokenizer","onChangeFold","setMode","destroyed","resetCaches","$resetRowCache","cacheArray","low","mid","$rowLengthCache","removedFolds","$updateInternalDataOnChange","$undoManager","mergeUndoDeltas","$informUndoManager","setUndoManager","JSON","parse","undoManager","history","editSession","setAnnotations","setBreakpoints","breakpoints","setScrollLeft","setScrollTop","scrollTop","$scrollLeft","$scrollTop","$syncInformUndoManager","markUndoGroup","$defaultUndoManager","setUseSoftTabs","$useSoftTabs","$indentWithTabs","setTabSize","$tabSize","setNavigateWithinSoftTabs","navigateWithinSoftTabs","$navigateWithinSoftTabs","setOverwrite","overwrite","$overwrite","toggleOverwrite","addGutterDecoration","removeGutterDecoration","getBreakpoints","clearBreakpoints","setBreakpoint","clearBreakpoint","inFront","addDynamicMarker","markerId","getMarkers","highlight","$searchHighlight","highlightLines","getAnnotations","clearAnnotations","inToken","wordRange","setUseWorker","useWorker","getUseWorker","$useWorker","onReloadTokenizer","$onChangeMode","$modeId","$isPlaceholder","oldMode","$stopWorker","$startWorker","attachToSession","wrapMethod","$wrapMethod","foldingRules","terminate","getMode","isNaN","getScrollLeft","getScreenWidth","$computeWidth","getLineWidgetMaxWidth","screenWidth","lineWidgetsWidth","lineWidgetWidth","force","$wrapLimit","longestScreenLine","foldIndex","foldStart","$getStringScreenWidth","$getUndoSelection","setUndoSelect","enable","isUndo","fromRange","toPosition","toRange","collDiff","oldStart","newStart","indentRows","indentString","outdentRows","rowRange","deleteRange","$moveLines","$clipRowToDocument","moveLinesUp","moveLinesDown","duplicateLines","$clipColumnToRow","setUseWrapMode","useWrapMode","setWrapLimitRange","$wrapLimitRange","adjustWrapLimit","desiredLimit","$printMargin","limits","wrapLimit","$constrainWrapLimit","getWrapLimit","setWrapLimit","limit","getWrapLimitRange","foldLineBefore","wrapData","walkTokens","$getDisplayTokens","PLACEHOLDER_START","PLACEHOLDER_BODY","$computeWrapSplits","displayLength","lastSplit","lastDocSplit","isCode","$wrapAsCode","indentedSoftWrap","$indentedSoftWrap","maxIndent","addSplit","indentation","SPACE","TAB","TAB_SPACE","getWrapIndent","minSplit","PUNCTUATION","CHAR_EXT","CHAR","maxScreenColumn","screenColumn","getRowLength","getRowLineCount","getRowWrapIndent","getScreenLastRowColumn","documentToScreenColumn","getDocumentLastRowColumn","docColumn","getRowSplitData","screenToDocumentRow","screenToDocumentColumn","rowLength","doCache","maxRow","foldStartRow","wrapRow","screenRowOffset","getScreenLength","screenRows","$getWidgetScreenLength","$setFontMetrics","fm","$enableVarChar","getCharacterWidth","wrap","$wrap","firstLineNumber","useSoftTabs","foldStyle","Search","$matchIterator","sr","sc","er","ec","skipCurrent","findAll","needle","$assembleRegExp","$isMultiLine","prevRange","replacement","preserveCase","$disableFakeMultiline","caseSensitive","$supportsUnicodeFlag","wholeWord","wordBoundary","firstChar","needleArray","lastChar","addWordBoundary","$assembleMultilineRegExp","backwards","forEachInLine","MultiHashHandler","$singleCommand","commandKeyBinding","addCommands","addCommand","removeCommand","bindKey","_buildKeyHash","keepCommand","ckb","keyId","cmdGroup","keyPart","chain","binding","parseKeys","_addCommandToBinding","removeCommands","bindKeys","keyList","$keyChain","isDefault","HashHandler","CommandManager","byName","$checkCommandState","isAvailable","returnValue","toggleRecording","$inReplay","recording","macro","$addCommandToMacro","oldMacro","replay","trimMacro","mac","description","showSettingsMenu","showErrorMarker","scrollIntoView","centerSelection","gotoLine","prompt","$type","multiSelectAction","getAllRanges","findNext","findPrevious","aceCommandGroup","navigateFileStart","navigateUp","times","navigateFileEnd","navigateDown","navigateWordLeft","navigateLineStart","navigateLeft","navigateWordRight","navigateLineEnd","navigateRight","selectPageDown","scrollPageDown","gotoPageDown","selectPageUp","scrollPageUp","gotoPageUp","jumpToMatching","$copyWithEmptySelection","$handlePaste","duplicateSelection","sortLines","modifyNumber","copyLinesUp","copyLinesDown","removeToLineStart","removeToLineEnd","removeWordLeft","removeWordRight","blockOutdent","blockIndent","splitLine","transposeLetters","transposeSelections","autoIndent","openLink","firstLineEndCol","selectedCount","insertLine","curLine","newRanges","exitMultiSelectMode","LineWidgets","widgetManager","updateOnChange","renderWidgets","measureWidgets","_changedWidgets","$onChangeEditor","updateOnFold","_inDocument","removeLineWidget","$updateRows","noWidgets","$oldWidget","$registerLineWidget","addLineWidget","zIndex","coverGutter","pixelHeight","$fold","onWidgetChanged","w1","getWidgetsAtRow","updateFull","changedWidgets","fixedWidth","ceil","coverLine","gutterWidth","fullWidth","padding","scrollBar","GutterKeyboardHandler","gutterLayer","activeRowIndex","activeLane","annotationTooltip","$onGutterKeyDown","$blurGutter","isRowVisible","scrollToLine","$rowToRowIndex","$cursorCell","nearestFoldIndex","$findNearestFoldWidget","nearestAnnotationIndex","$findNearestAnnotation","$focusAnnotation","$focusFoldWidget","$handleGutterKeyboardInteraction","GutterKeyboardEvent","lane","$switchLane","$rowIndexToRow","rowFoldingWidget","$blurFoldWidget","cells","childNodes","$moveFoldWidgetDown","$moveAnnotationDown","$moveFoldWidgetUp","$moveAnnotationUp","$blurAnnotation","$isFoldWidgetVisible","isRowFullyVisible","isIconVisible","$getFoldWidget","$isAnnotationVisible","$getAnnotation","foldWidget","keyboardFocusClassName","desinationLane","annotationIndex","foldWidgetIndex","cell","gutterKeyboardHandler","getKey","getRow","isInAnnotationLane","isInFoldLane","defaultCommands","Editor","getContainerElement","getTextAreaContainer","textarea","keyBinding","$search","$historyTracker","$initOperationListeners","_$emitInputEvent","setSession","$opResetTimer","$lastSel","commandEvent","prevOp","previousCommand","scrollSelectionIntoView","animateScrolling","sel","$mergeUndoDeltas","prev","mergeableCommands","$mergeableCommands","shouldMerge","mergeNextCommand","sequenceStartTime","keyboardHandler","$keybindingId","oldSession","$onDocumentChange","$onTokenizerUpdate","$onChangeTabSize","$onChangeWrapLimit","$onChangeWrapMode","$onChangeFold","$onChangeFrontMarker","$onChangeBackMarker","$onChangeBreakpoint","$onChangeAnnotation","$onCursorChange","$onScrollTopChange","$onScrollLeftChange","$onSelectionChange","onDocumentChange","onChangeMode","onTokenizerUpdate","onChangeTabSize","onChangeWrapLimit","onChangeWrapMode","onChangeFrontMarker","onChangeBackMarker","onChangeBreakpoint","onChangeAnnotation","onCursorChange","onScrollTopChange","onScrollLeftChange","onSelectionChange","oldEditor","getSession","resize","onResize","getTheme","getFontSize","setFontSize","$highlightBrackets","$highlightPending","$bracketHighlight","markerIds","$getDirectionForHighlight","tagNamesRanges","getMatching","markerType","getHighlightIndentGuides","$textLayer","$highlightIndentGuide","$isFocused","showCursor","visualizeFocus","hideCursor","visualizeBlur","$cursorChange","updateCursor","$updateHighlightActiveLine","updateLines","scrollToY","scrollToX","$highlightActiveLine","$selectionStyle","$selectionColorConflict","$maxLines","$minLines","$highlightLineMarker","$selectionMarker","$highlightSelectedWord","$getSelectionHighLightRegexp","wordWithBoundary","updateFrontMarkers","updateBackMarkers","updateBreakpoints","updateText","getSelectedText","nl","copyLine","inVirtualSelectionMode","isFullLine","getBehavioursEnabled","lineState","shouldOutdent","$enableAutoIndent","lineIndent","selectedRange","currIndent","prevLineState","composition","applyComposition","forEachSelection","setScrollSpeed","getScrollSpeed","setDragDelay","setSelectionStyle","setHighlightActiveLine","shouldHighlight","getHighlightActiveLine","setHighlightGutterLine","getHighlightGutterLine","setHighlightSelectedWord","getHighlightSelectedWord","setAnimatedScroll","shouldAnimate","getAnimatedScroll","getShowInvisibles","setDisplayIndentGuides","getDisplayIndentGuides","setHighlightIndentGuides","setShowPrintMargin","showPrintMargin","getShowPrintMargin","setPrintMarginColumn","getPrintMarginColumn","setBehavioursEnabled","enabled","setWrapBehavioursEnabled","setShowFoldWidgets","getShowFoldWidgets","setFadeFoldWidgets","fade","getFadeFoldWidgets","new_range","setGhostText","removeGhostText","originalRange","$getSelectedRows","getNumberAt","_numberRx","amount","charRange","isFinite","nr","fp","decimals","nnr","toFixed","replaceRange","toggleWord","currWordStart","wordParts","curLength","itLength","that","reg","wordPairs","$toggleWordPairs","negate","firstCondition","res","findLinkAt","columnPosition","previousPosition","currentPosition","wordParts_1","wordParts_1_1","endPoint","moved","totalDiff","rangeIndex","subRows","compositionState","showComposition","setCompositionText","hideComposition","getFirstVisibleRow","getLastVisibleRow","getFirstFullyVisibleRow","getLastFullyVisibleRow","$getVisibleRowCount","getScrollBottomRow","getScrollTopRow","$moveByPage","scrollToRow","center","animate","alignCursor","getCursorPositionScreen","expand","tokenCount","matchType","bracketType","brackets","tagsRanges","lineNumber","navigateTo","replaced","$tryReplace","replaceAll","getLastSearchOptions","newRange","revealRange","setAutoScrollEditorIntoView","shouldScroll","$scrollAnchor","scrollAnchor","onChangeSelection","onBeforeRender","onAfterRender","searchBox","$pixelPos","$cursorStyle","cursorLayer","setSmoothBlinking","isBlinking","selectionStyle","highlightActiveLine","highlightSelectedWord","copyWithEmptySelection","behavioursEnabled","wrapBehavioursEnabled","enableAutoIndent","autoScrollEditorIntoView","showLineNumbers","setShowLineNumbers","$loop","CHANGE_GUTTER","$relativeLineNumbers","relativeNumberRenderer","relativeLineNumbers","$showLineNumbers","$updatePlaceholder","hasValue","$composition","placeholderNode","$placeholder","content","blurCommand","focusOnEnterKeyup","customScrollbar","hScrollBarAlwaysVisible","vScrollBarAlwaysVisible","highlightGutterLine","animatedScroll","printMarginColumn","printMargin","fadeFoldWidgets","showFoldWidgets","displayIndentGuides","highlightIndentGuides","showGutter","fontFamily","maxLines","minLines","scrollPastEnd","fixedWidthGutter","hasCssTransforms","maxPixelHeight","useResizeObserver","useSvgGutterIcons","showFoldedAnnotations","getText","lastLineNumber","$renderer","Lines","canvasHeight","cellCache","$offsetCoefficient","moveContainer","firstRowScreen","pageChanged","oldConfig","newConfig","computeLineTop","screenTop","screenPage","computeLineHeight","$cacheCell","fragment","insertAdjacentElement","createCell","initElement","Gutter","parentEl","$showFoldWidgets","$updateAnnotations","rowInfo","annoText","annoType","gutterOffset","oldLastRow","$updateCursorRow","onCreateCell","$renderCell","$updateGutterWidth","gutterRenderer","$firstLineNumber","lastLineText","$fixedWidth","$padding","$computePadding","$highlightGutterLine","$cursorRow","updateLineHighlight","scrollLines","$renderLines","textNode","annotationNode","annotationIconNode","decorations","rowText","foldClass","isClosedFold","foldAnnotationClass","annotationInFold","foldRange","getShowLineNumbers","paddingLeft","borderRightWidth","paddingRight","Marker","setPadding","setMarkers","markers","elt","css","$getTop","drawFullLineMarker","drawScreenLineMarker","drawTextMarker","drawMultiLineMarker","childElementCount","lastChild","stringBuilder","extraStyle","curr","lineRange","range1","drawBidiSingleLineMarker","radiusClass","extraLength","textTokens","Set","isTextToken","tokenType","has","Text","$updateEolChar","EOL_CHAR","EOL_CHAR_LF","EOL_CHAR_CRLF","margin","getLineHeight","$fontMetrics","measure","$pollSizeChanges","checkForSizeChanges","$pollSizeChangesTimer","$computeTabString","showSpaces","showTabs","showEOL","$highlightIndentGuides","tabStr","$tabStrings","span","TAB_CHAR","$indentGuideRe","spaceClass","spaceContent","SPACE_CHAR","tabClass","tabContent","lineElements","lineElementsIdx","heightChanged","lineElement","$renderLine","$renderLinesFragment","lineEl","$useLineGroups","$renderToken","valueFragment","simpleSpace","controlCharacter","cjkSpace","cjk","cloneNode","renderIndentGuide","cols","$highlightIndentGuideMarker","indentLevel","initialIndent","elementIndentLevel","currentIndent","$renderHighlightIndentGuide","$clearActiveIndentGuide","$setIndentGuideActive","$createLineElement","$renderWrappedLine","splitChars","$renderOverflowMessage","$renderSimpleLine","overflowEl","$getFoldLineTokens","lastLineEl","invisibleEl","EOF_CHAR","renderTokens","addTokens","Cursor","isVisible","blinkInterval","smoothBlinking","cursors","addCursor","$updateCursors","$updateOpacity","$startCssAnimation","animationDuration","$isAnimating","$stopCssAnimation","blinking","restartTimer","setBlinkInterval","removeCursor","intervalId","timeoutId","$isSmoothBlinking","blink","onScreen","isCursorInView","pixelPos","$selectionMarkers","cursorIndex","drawCursor","$setOverwrite","MAX_SCROLL_H","Scrollbar","classSuffix","setVisible","skipEvent","onScroll","coeff","VScrollBar","scrollHeight","$scrollbarWidth","$minWidth","setHeight","setScrollHeight","setInnerHeight","HScrollBar","setWidth","setInnerWidth","setScrollWidth","ScrollBar","ScrollBarV","ScrollBarH","VScrollWidth","HScrollHeight","eType","mousePageY","startTop","thumbTop","scrollTopFromThumbTop","thumbHeight","pageHeight","viewHeight","slideHeight","scrollWidth","mousePageX","startLeft","thumbLeft","scrollLeftFromThumbLeft","thumbWidth","pageWidth","viewWidth","slideWidth","RenderLoop","onRender","pending","changes","$recursionLimit","_flush","change","clear","CHAR_COUNT","USE_OBSERVER","ResizeObserver","FontMetrics","$setMeasureNodeStyles","$measureNode","$addObserver","isRoot","visibility","font","$measureSizes","fontWeight","boldSize","charSizes","allowBoldFonts","$observer","observe","setPolling","disconnect","$getZoom","zoom","$initTransformMeasureNodes","transformCoordinates","clientPos","elPos","solve","l1","l2","det","sub","mul","m2","ut","u","f","Decorator","canvas","pixelRatio","heightRatio","canvasWidth","minDecorationHeight","halfMinDecorationHeight","colors","dark","light","$updateDecorators","ctx","getContext","clearRect","priorities","compensateFold","compensateFoldRows","currentY","y1","y2","yCenter","fillStyle","fillRect","GutterLayer","MarkerLayer","TextLayer","CursorLayer","HScrollBarCustom","VScrollBarCustom","editorCss","VirtualRenderer","onGutterResize","$markerBack","textLayer","$markerFront","$horizScroll","$vScroll","$scrollAnimation","scrollMargin","updateCharacterSize","$size","scrollerHeight","scrollerWidth","$dirty","minHeight","v","$renderChanges","defaultView","CHANGE_FULL","$addResizeObserver","$allowBoldFonts","$updatePrintMargin","onChangeNewLineMode","$changedLines","CHANGE_LINES","CHANGE_TEXT","CHANGE_MARKER","updateFontSize","$updateSizeAsync","resizing","$updateCachedSize","$resizeTimer","$changes","$customScrollbar","$updateCustomScrollbar","$extraHeight","oldSize","CHANGE_SIZE","CHANGE_SCROLL","$showGutter","$computeLayerConfig","availableWidth","$showPrintMargin","$printMarginColumn","$animatedScroll","getShowGutter","setShowGutter","$printMarginEl","containerEl","posTop","posLeft","setScrollMargin","sm","setMargin","getHScrollBarAlwaysVisible","$hScrollBarAlwaysVisible","setHScrollBarAlwaysVisible","alwaysVisible","getVScrollBarAlwaysVisible","$vScrollBarAlwaysVisible","setVScrollBarAlwaysVisible","$updateScrollBarV","$scrollPastEnd","$updateScrollBarH","freeze","$frozen","unfreeze","CHANGE_H_SCROLL","st","$scrollDecorator","$updateLines","CHANGE_CURSOR","CHANGE_MARKER_FRONT","CHANGE_MARKER_BACK","$autosize","desiredHeight","$maxPixelHeight","$gutterWidth","hideScrollbars","longestLine","$getLongestLine","horizScroll","hScrollChanged","vScrollBefore","vScrollChanged","firstRowHeight","lineCount","charCount","$viewMargin","newLeft","newTop","topMargin","bottomMargin","$stopAnimation","currentTop","currentLeft","twoCharsWidth","alignment","$calcSteps","fromValue","toValue","x_min","STEPS","steps","initialScroll","oldSteps","$timer","endAnimation","scrollTo","canvasPos","$hasCssTransforms","$blockCursor","$useTextareaForIME","addToken","removeExtraToken","insertPosition","textLines","$ghostText","$ghostTextWidget","pixelPosition","ghostTextHeight","newToken","$themeId","$theme","setMouseCursor","attachToShadowRoot","$resizeObserver","contentRect","workerUrl","Worker","blob","Blob","blobBuilder","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","getBlob","$workerBlob","blobURL","URL","webkitURL","createObjectURL","WorkerClient","worker","$createWorkerFromOldConfig","$sendDeltaQueue","changeListener","onMessage","callbackId","callbacks","onmessage","topLevelNamespaces","classname","importScripts","nameToUrl","toUrl","normalizePath","$normalizePath","tlns","deltaQueue","onerror","$doc","cmd","emit","ex","attachToDocument","q","UIWorkerClient","main","emitSync","sender","messageBuffer","workerClient","processNext","setEmitSync","Main","PlaceHolder","others","mainClass","othersClass","$onUpdate","onUpdate","$others","undoStack","$undostack","$undoStackDepth","setup","other","showOtherMarkers","othersActive","hideOtherMarkers","updateAnchors","lengthDiff","inMainRange","distanceFromStart","newPos","otherPos","updateMarkers","updateMarker","undosRequired","isSamePoint","alt","ctrl","accel","selectionMode","isMultiSelect","mouseX","mouseY","screenAnchor","screenCursor","$enableJumpToDef","$blockSelectEnabled","addSelectionMarker","oldRange","removeSelectionMarker","tmpSel","rectSel","blockSelect","newCursor","removeSelectionMarkers","rectangularRangeBlock","updateSelectionMarkers","onSelectionInterval","selectMoreLines","selectMore","joinSelections","splitIntoLines","alignCursors","multiSelectCommands","getSelectionMarkers","$blockChangeEvents","$onAddRange","$onRemoveRange","mergeOverlappingRanges","lastRange","$initRangeList","toggleBlockSelection","includeEmptyLines","xBackwards","startOffsetX","endOffsetX","docEnd","yBackwards","MultiSelect","$multiselectOnSessionChange","$onMultiSelect","$onSingleSelect","onSessionChange","$checkMultiselectChange","altCursor","altDown","addAltCursorListeners","selectionMarkerCount","markerList","$onMultiSelectExec","inVirtualMode","keepOrder","$byLines","cmdResult","anim","buf","additive","skip","screenLead","toRemove","words","stopAtFirst","sameRowRanges","maxCol","minSpace","spaceOffsets","spaceOffset","fr","lr","guessRange","$reAlignText","forceLeft","startW","textW","endW","isLeftAligned","isRightAligned","alignLeft","enableMultiselect","enableBlockSelect","FoldMode","foldingStartMarker","foldingStopMarker","indentationBlock","startLevel","openingBracketBlock","closingBracketBlock","oldWidget","gutterAnno","comparator","binarySearch","matched","findAnnotations","arrow","onmousedown","Renderer","edit","_id","env","tagName","oldNode","createEditSession","is","singletonTags","blockTags","formatOptions","lineBreaksAfterCommasInCurlyBlock","beautify","nextToken","tabString","breakBefore","spaceBefore","spaceAfter","lastDepth","lastIndent","unindent","roundDepth","curlyDepth","curRow","rowsToAdd","indentNextLine","inTag","inCSS","inBlock","parents","caseBody","trimNext","trimLine","trimCode","trimRight","trimLeft","searchboxCss","SearchBox","showReplaceForm","spellcheck","title","setEditor","searchRange","$syncOptions","$initElements","sb","replaceBox","searchOption","replaceOption","regExpOption","caseSensitiveOption","wholeWordOption","searchInput","replaceInput","searchCounter","activeInput","$searchBarKb","setSearchRange","searchRangeMarker","checked","noMatch","updateCounter","MAX_COUNT","findPrev","replaceAndFindNext","active","$closeSearchBarKb","isReplace","supportType","supportFunction","supportConstant","supportConstantColor","supportConstantFonts","numRe","pseudoElements","pseudoClasses","CssHighlightRules","keywordMapper","strings","escapes","MatchingBraceOutdent","propertyMap","CssCompletions","completionsDefined","defineCompletions","inParens","getPropertyValueCompletions","getPropertyCompletions","skipSemicolon","caption","snippet","CssBehaviour","BaseFoldMode","commentRegex","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","forceMultiline","getCommentRegionBlock","getSectionRange","startIndent","subRange","CStyleFoldMode","$outdent","$completer","snippetFileId","DocCommentHighlightRules","getTagRule","getStartRule","getEndRule","GolangHighlightRules","stringEscapeRe","tokenizedLine","JsDocCommentHighlightRules","identifierRe","JavaScriptHighlightRules","escapedRe","comments","noES6","no_regex","jsx","JSX","tagRegex","jsxTag","jsxJsRule","jsxAttributes","reference","endState","results","JsonHighlightRules","JsxHighlightRules","buildinConstants","reserved","PythonHighlightRules","strPre","strRawPre","strFormatPre","strRawFormatPre","integer","intPart","pointFloat","floatNumber","stringEscape","PythonFoldMode","outdents","XmlHighlightRules","normalize","processing_instruction","doctype","int_subset","cdata","attr_reference","tag_whitespace","whitespace","attribute_value","embedTagRules","XmlBehaviour","rightSpace","tokenEndColumn","tokenRow","tokenColumn","voidElements","nextIndent","optionalEndTags","Tag","selfClosing","_getFirstTagInLine","_findEndTagInLine","getCommentFoldWidget","tags","XmlFoldMode","createRoot","hydrateRoot","hasElementType","Element","hasMap","Map","hasSet","hasArrayBuffer","ArrayBuffer","isView","equal","it","entries","flags","valueOf","$$typeof","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","amdD","getter","__esModule","definition","prop","toStringTag","nmd","paths","createContext","Icon","family","rest","getCSSClasses","propTypes","isRequired","ItemTrigger","collapsed","toggleChange","useContext","iconType","trigger","onClick","AccordionItem","collapsedProp","ref","setCollapsed","useState","useMemo","expandToContent","contextValue","Provider","defaultProps","forwardRef","AccordionItemHeader","usearrowastrigger","getSize","componentSize","setComponentSize","current","handleResize","useCallback","useLayoutEffect","resizeObserver","savedHandler","useRef","useEffect","eventListener","Collapsible","contentContainer","collapseWrapper","refContainerSize","contentContainerStyle","setContentContainerStyle","onWindowResize","CSSTransition","onEnter","onExit","in","classNames","AccordionItemContent","Accordion","Item","Header","Content","Button","customButton","iconFamily","iconPosition","iconOnly","noStyle","getCssClasses","cssClasses","sizeClass","disabledClass","displayClass","themeClass","iconOnlyClass","noStyleClass","getButtonIcon","buttonType","cloneElement","getButtonType","ButtonGroup","CardHeader","CardBody","align","CardFooter","CardTitle","CardTitleGroup","CardSubTitle","CardSummary","CardTitleIcon","Card","Body","Footer","Title","TitleGroup","SubTitle","Summary","wait","immediate","callNow","Loader","withbackground","Message","onClose","noMargin","Chart","areaStyleColors","dataLoaded","hasData","series","zoomStart","zoomEnd","seriesConfig","noDataComponent","noDataComponentProp","zoomColors","tykChartInstance","setTykChartInstance","chartWrapperRef","lineBarChart","defaultOpts","fromJS","color","toolbox","orient","itemSize","showTitle","feature","dataZoom","dataBackground","lineStyle","areaStyle","handleStyle","textStyle","borderColor","fillerColor","legend","axisPointer","grid","containLabel","xAxis","boundaryGap","axisLine","axisTick","yAxis","axisLabel","animationEasing","seriesDefault","LinearGradient","smooth","symbolSize","pieChart","formatter","radius","avoidLabelOverlap","animationType","labelLine","normal","length2","geoChart","dispose","eventCallBack","debouncedMethod","debounce","getZr","prevInstance","prevOption","prevType","prevSeries","equals","selectedType","selectedOptions","selectedSeries","finalOpts","mergeDeep","toJS","entry","seriesData","buildChartOptions","dispatchAction","dataZoomSelectActive","seriesIndex","dataIndex","prevZoomStart","prevZoomEnd","startValue","endValue","chartHasData","getStyle","memo","savedCallback","ToastMessage","handleClose","itemIndex","ToastContainer","notify","updateNotifications","msgID","random","prevMessages","onMessageClosed","newMessages","fn","createNotification","render","bindNotify","danger","CopyToClipboard","txtRef","createRef","onKeyUp","ModalFooter","ModalBody","Modal","disableCloseCommands","opened","showBackdrop","restProps","modalClasses","backdropClasses","themeIcon","onKeyDown","Confirm","confirmBtnText","cancelBtnText","setOpen","setCallback","cancelCallback","setCancelCallback","callbackFunc","cancelCallbackFunc","beforeCallback","FixedWrapper","showShadow","fixedWrapperRef","attachShadow","scrollY","debouncedAttachShadow","InfiniteScroller","hasMore","initialLoad","loadMore","pageNumber","refChild","showLoader","setShowLoader","containerRef","refChildSize","shouldLoad","loadMoreData","prevPageNumber","scrollHandler","prevRefChildSize","PropTypes","oneOfType","arrayOf","bool","instanceOf","FloatingContainer","forceDisplay","displayAxis","preferredPosition","infiniteScrollerConfig","localRef","floatingContainerRef","contentWrapperRef","viewportOffset","schedulePositionUpdate","topSpace","bottomSpace","leftSpace","hasTopSpace","hasBottomSpace","hasLeftSpace","hasRightSpace","positionedVerticallyFitsInViewport","positionedHorizontallyFitsInViewport","getDisplayForVertical","getDisplayForHorizontal","getDisplayWhereItFits","determineDisplay","targetPosition","vpLeft","vpTop","leftPos","auto","matchElement","matchStart","matchEnd","topPos","maxWidth","getStylesForTop","getStylesForBottom","getStylesForLeft","getStylesForRight","adjustPosition","createPortal","InfoNote","ListItem","List","labelwidth","flexBasis","styleCopy","structuredClone","getListStyle","NavBar","pre","subtitle","withTabs","subtitleContent","NavigationItem","Navigation","PortalContext","PanelBody","noPadding","Consumer","portalContext","collapsable","PanelFooter","PanelHeader","Component","HeaderTag","onToggle","collapsibleIconPosition","Panel","onToggleCollapse","collapsedState","setCollapsedState","handleToggle","panelTheme","collapsbleIconPosition","toggleCollapse","Pill","RevealPanelService","setRefs","wrapper","panel","unbindEvents","bindEvents","ensureRefs","mouseDown","initialRect","initialEvent","isPrimaryMouseButtonDown","newY","finalHeight","notifyListeners","buttons","heightVal","reason","isHidden","deinit","RevealPanelHeaderLeft","RevealPanelHeaderRight","mergeClasses","RevealPanel","onHeightChange","parentSelector","contentStyle","contentClassName","gutterClassName","wrapperClassName","panelRef","gutterRef","wrapperRef","panelService","useImperativeHandle","headerLeft","headerRight","contents","child","TempRevealPanel","HeaderLeft","HeaderRight","TabsContext","TabContent","addTab","hideTab","updateTab","showTab","selectedPath","tabData","tabsId","tabExists","rendered","hideTabContent","tabs","tempTabData","prevTabData","shouldRender","TabContext","Tab","tabsContext","tabContext","setPath","tempPath","Tabs","onTabChange","setTabs","setSelectedPath","setRendered","initialPath","setInitialPath","setCurrentSelectedPath","tempRendered","collapsible","prevTabs","tempTabs","tabsState","tempTabsState","toggleTab","getTabCssClass","tabId","genTabs","currentTabs","updateTabsList","icon","closable","isOpened","additionalClickParents","isActive","setIsActive","tooltipRef","activeEvents","onMouseEnter","onMouseLeave","handleDocumentClick","TextEllipsis","Pagination","totalNrOfPages","selectedPage","setSelectedPage","pagesArray","nrOfPages","pagesArr","currentNr","pageNr","at","getPagesArr","goToPage","tableContext","HeaderCell","sortable","sortOrder","setSortOrder","sendMessage","allRowsSelected","columns","selectable","generateSelectable","allowSelectAll","isCheckbox","Checkbox","displayError","displayNote","note","Cell","styling","events","Row","SelectableCheckbox","Table","noDataMessage","loading","infiniteScrolling","onChangeMsg","setOnChangeMsg","itemsListRef","sortRows","order","selectAllRows","selectRow","setPagination","pagination","api","getTable","every","totalPages","num","nrItemsOnPage","perPage","Column","cSize","cOffset","nogutters","DropdownContext","DropdownItem","customdropdownitem","eventKey","dropdownItemCLick","dropdownContext","itemProps","onSelectItem","selectedItem","showCheckmark","Dropdown","isElemInRightView","dropdownWidth","isElemInBottomView","dropdownHeight","elHeight","super","dropdownRef","dropdownListRef","dropdownButtonRef","toggleDropdown","handleClickOutside","componentDidMount","getStyles","componentDidUpdate","prevProps","closeDropdown","componentWillUnmount","itemId","closeOnSelect","onSelect","selectedItemProps","dropdownEl","offsetPosition","customTop","customLeft","getWrapperCssClasses","btnGroup","btnGroupSize","btnTheme","hasCustomContent","listclassnames","getBtnTitle","btnTitle","stopButtonTextChange","appendTo","btnClassName","btnSize","customBtnTitle","showDropdownIcon","showTriggerButton","DropdownWrapperTag","DropdownTrigger","splitTrigger","toggle","onTriggerClick","DropdownListWrapper","dropdownValue","Dropdown2","setSelectedValueAsTitle","setIsOpen","handleOutsideClick","triggerElement","CodeEditor","disableValidation","finalSetOptions","getCodeEditorError","getLabelStyles","getNonLabelWidth","handleOnChange","handleOnBlur","htmlFor","editorProps","$blockScrolling","editorInstance","getStateSelectedValues","multiple","Combobox","closeList","openList","filterByName","itemValue","inputValue","stateSelectedValues","searchText","comboboxRef","valuesListRef","inputRef","textRef","focusInput","handleItemsNavigation","handleComboboxDropdownClick","handleListItemClick","handlePillRemoveClick","manageSelectedTags","setInputWidth","unBindEvents","getDerivedStateFromProps","nextProps","stringify","filteredValues","filterValues","cursorNext","previousState","methodName","tempState","removeSelectedValue","allowCustomValues","getSearchText","getSelectedIndex","getListItemCssClasses","getComboboxListCssClass","themes","iTheme","getInputError","elWidth","getComboboxDisplayData","reduce","prevValue","tempValue","selectedIndex","selectedValues","isInInitialValues","addSelectedValue","manageSelectedValues","tempSelectedValues","tempStateSelectedValues","ok","searchItem","renderInput","visbility","renderDropdown","autoFocus","CustomListComponent","Value","tagSeparators","addTagOnBlur","renderValue","valueOverflow","dummyElementRef","setInputValue","inputWidth","entryFieldOnChange","dummy","triggerAction","textValue","isPlaceholder","renderCustomValue","entryFieldOnKeyDown","listRef","searchValue","activeItem","renderListItem","showSearch","block","isNoneSelected","renderSelectAllOption","Combobox2","propValue","propValues","maxProp","matchItemFn","renderList","renderListProp","onBeforeChange","floatingContainerConfig","expandMode","displayDropdownTrigger","required","validateOnChange","rootRef","comboboxControlRef","getValueFromProp","setValues","normalizeValue","setSearchValue","setActiveItem","setIsOpened","valuesExpanded","setValuesExpanded","localValidationError","setLocalValidationError","getThemeClasses","getFilteredValues","openDropdown","updateSearchValue","newSearchValue","fv","isValidValue","newValues","localError","updateValue","addTag","listValueIndex","lv","finalValue","selectValue","valIndex","with","selectAllValues","moveUpActiveItem","visibleItems","activeIndex","moveDownActiveItem","executeTriggerAction","onTagMessage","removeTag","renderIcon","sv","nv","vals","valuesElement","updateScroll","mobserver","MutationObserver","robserver","childList","subtree","currentValuesClasses","onClickCapture","existingVal","DatePicker","onOpen","pickerInstance","setPickerInstance","dateRef","hasValueChanged","prevDate","currentDate","getTime","diffDates","date","onDateChange","dateValue","instance","defaultDate","setDate","openCalendar","inputStyle","addonStyle","getInputField","dateFormat","_typeof","requiredArgs","isDate","toDate","argument","argStr","NaN","toInteger","dirtyNumber","startOfUTCISOWeek","dirtyDate","day","getUTCDay","setUTCDate","getUTCDate","setUTCHours","getUTCISOWeekYear","year","getUTCFullYear","fourthOfJanuaryOfNextYear","setUTCFullYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","defaultOptions","getDefaultOptions","startOfUTCWeek","_ref","_ref2","_ref3","_options$weekStartsOn","_options$locale","_options$locale$optio","_defaultOptions$local","_defaultOptions$local2","weekStartsOn","locale","RangeError","getUTCWeekYear","_options$firstWeekCon","firstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","addLeadingZeros","targetLength","sign","signedYear","month","getUTCMonth","getUTCHours","getUTCMinutes","getUTCSeconds","numberOfDigits","milliseconds","getUTCMilliseconds","G","localize","era","ordinalNumber","unit","lightFormatters","Y","signedWeekYear","weekYear","Q","quarter","M","week","firstWeek","startOfUTCWeekYear","getUTCWeek","I","isoWeek","fourthOfJanuary","startOfUTCISOWeekYear","getUTCISOWeek","D","dayOfYear","timestamp","setUTCMonth","difference","getUTCDayOfYear","E","dayOfWeek","localDayOfWeek","isoDayOfWeek","dayPeriodEnumValue","dayPeriod","hours","H","K","S","X","_localize","timezoneOffset","_originalDate","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","z","originalDate","T","dirtyDelimiter","absOffset","minutes","delimiter","dateLongFormatter","pattern","formatLong","timeLongFormatter","longFormatters","P","dateTimeFormat","matchResult","datePattern","timePattern","dateTime","protectedDayOfYearTokens","protectedWeekYearTokens","throwProtectedError","format","formatDistanceLocale","lessThanXSeconds","one","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","defaultWidth","formats","full","long","medium","short","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","buildLocalizeFn","dirtyIndex","valuesArray","formattingValues","defaultFormattingWidth","_defaultWidth","_width","argumentCallback","buildMatchFn","matchPattern","matchPatterns","defaultMatchWidth","matchedString","parsePatterns","defaultParseWidth","object","findKey","valueCallback","formatDistance","tokenValue","addSuffix","comparison","formatRelative","_date","_baseDate","_options","rem100","narrow","abbreviated","wide","am","pm","midnight","noon","morning","afternoon","evening","night","parsePattern","parseResult","any","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyFormatStr","_ref4","_options$locale2","_options$locale2$opti","_ref5","_ref6","_ref7","_options$locale3","_options$locale3$opti","_defaultOptions$local3","_defaultOptions$local4","formatStr","defaultLocale","isValid","utcDate","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","getTimezoneOffsetInMilliseconds","dirtyAmount","addMilliseconds","subMilliseconds","formatterOptions","firstCharacter","longFormatter","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","isProtectedDayOfYearToken","EditableListForm","getMainFormValue","components","mainFormValue","submitButtonRef","submitForm","errors","mainError","addValueOnFieldChange","getMainFormButtonWidth","createRefs","propsComponents","stateComponents","validateValue","getFormCssClasses","noLabels","getButtonClassName","buttonStyle","displayType","getComponentsError","errorPersist","validatorsNames","validate","validatorName","validator","validationmessages","hasMainFormErrors","resetForm","showMainError","onSubmit","validationmessage","buttonName","ComponentName","EditableList","getItemListValue","getListItemCssClass","buttonWidth","handleFormSubmit","dropdownListItemRef","addValues","triggerOnChange","handleItemUpdate","editMode","handleChildrenOnChange","getListItemsCssClass","getFormInputKey","getListItemText","itemData","separator","setItemEditMode","closeListItems","isInList","removeListItem","removedItem","valueArr","tempItemValue","nextValue","genListItem","clonedComponents","genList","appendToElement","formButtonTitle","formButtonStyle","addButtonName","onAddRow","ListHeader","fields","field","FieldsList","onDelete","rowIndex","tempField","EditableList2","hideOnEmpty","internalErrors","setInternalErrors","updateRowValue","fieldIndex","componentValue","tempValueArr","tempErrors","tempFieldError","Components","internalError","setInternalError","onFieldChange","errorMsg","deleteRow","rowValues","colValue","flat","hasErrors","FileInput","accept","fileInputRef","files","Input","getAddon","initValue","stateValue","isfield","inputgroupaddonleft","inputgroupaddonright","getInputGroupAddon","getInputComponent","autoComplete","Input2","getInputElement","MultiselectItem","itemType","isInSearchValue","fieldsToSearchOn","onAddRemove","itemDisplayTemplate","maxSelections","nrSelectedItems","onGetItemDetails","details","detailsDisplayTemplate","getItemContent","getItemLoader","MultiselectPanel","inputPlaceholder","noItemsMessage","items","onCustomSearch","customSearch","panelType","serverLoad","itemsPageNumber","itemsNrPages","loadMoreItems","searchOnChange","itemChanged","cloneItems","clonedItem","renderListItems","diffObjects","Multiselect","entityNamePlural","getItemDetails","setOpened","prevOpened","itemsChange","allItems","valueClone","valueChange","providerValue","Radio","nospace","Select","setStateValue","selectedValue","getSelectError","getSelectComponent","SelectableList","checkboxalticon","itemTemplate","primaryKey","handleOnSelect","newSelectedItems","elemPosition","getListItemCssClassName","tvalue","Textarea","ToggleItem","getNotchCssClasses","itemRef","saveSelectedRef","onItemSelected","ToggleItemWrapper","Toggle","onDark","separated","selectedRef","setSelectedRef","notchRef","toggleRef","positionNotch","selectedWidth","FORM_DEBOUNCE","setConfig","getValueFromPath","acc","form","properties","DEFAULT_DEBOUNCE_TIME_MS","myValue","setMyValue","getOnChangeProps","hasIsFieldProp","executeDebounced","valueOrEvent","nodeName","onChangeProps","formError","touched","submitCount","status","componentProps","hasOwn","FieldCodeEditor","FieldCombobox","getComboboxError","FieldDropdown","FieldPagination","FieldCombobox2","FormDatePicker","getDatePickerError","FieldEditableList","getEditableListError","FieldFileInput","FieldInput","FieldMultiselect","getMultiselectError","FieldSelect","handleEvent","FieldSelectableList","FieldToggle","useInterval"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"index.js","mappings":"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G,IAAK,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,IAAK,GAAI,IAAK,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,KAAM,GAAI,EAAG,GAAI,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,KAAM,GAAI,MAAO,GAAI,KAAM,GAAI,GAAI,EAAG,IAAK,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAA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O,CAAC,eAAgB,uBAAwB,4BAChDH,MAAO,kEACR,CACCG,MAAOqyD,EACPxyD,MAAO80D,GACR,CACC30D,MAAO,uBACPH,MAAO,aACPpkB,KAAM,YACP,CACCukB,MAAO,eACPH,MAAO,KACPpkB,KAAM,SACP,CACCukB,MAAO,mBACPH,MAAO,yEACPpkB,KAAM,SACP,CACCukB,MAAO,uBACPH,MAAO,UACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,SACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,UACR,CACCG,MAAO,UACPH,MAAO,WAGf7mC,SAAU,CAAC,CACHgnC,MAAO,OACPH,MAAO,QACR,CACCG,MAAO,CACH,eAAgB,uBAAwB,uBAAwB,OAChE,mBAAoB,OACpB,eAAgB,OAAQ,uBAAwB,OAAQ,gBAE5DH,MAAO,IAAM80D,EAAe,UAAYA,EAAe,6DACvDl5E,KAAM,sBACP,CACCukB,MAAO,uBACPH,MAAO,cACR,CACCG,MAAO,mBACPH,MAAO,gwDACR,CACCG,MAAO,uBACPH,MAAO,+lBACR,CACCG,MAAO,mBACPH,MAAO,y2DACR,CACCG,MAAO,aACPH,MAAO80D,GACR,CACC90D,MAAO,GACPG,MAAO,QACPvkB,KAAM,aAGd,MAAS,CACL04E,EAAyBE,aAAa,aACtCS,EAAS,SACT,CACI90D,MAAO,gBACPH,MAAO,MACPpkB,KAAM,SACP,CACCukB,MAAO,OACPH,MAAO,UACPpkB,KAAM,SACP,CACCukB,MAAO,QACPH,MAAO,GACPpkB,KAAM,aAGd,MAAS,CACL,CACIukB,MAAO,0BACPH,MAAO,6CACR,CACCG,MAAO,gBACPH,MAAO,cACPpkB,KAAM,YACP,CACCukB,MAAO,UACPH,MAAO,iDACR,CACCG,MAAO,2BACPH,MAAO,iDACR,CACCG,MAAO,8BACPH,MAAO,MACR,CACCG,MAAO,2BACPH,MAAO,QACPpkB,KAAM,yBACP,CACCukB,MAAO,QACPH,MAAO,IACPpkB,KAAM,YACP,CACC8jB,aAAc,kBAGtB,sBAAyB,CACrB,CACIS,MAAO,oCACPH,MAAO,6CACR,CACCG,MAAO,2BACPH,MAAO,IACPpkB,KAAM,SACP,CACCukB,MAAO,2BACPH,MAAO,KACR,CACCG,MAAO,QACPH,MAAO,IACPpkB,KAAM,YACP,CACC8jB,aAAc,kCAGtB,kBAAqB,CACjB,CACIS,MAAO,SACPH,MAAO,SACP11C,KAAM,CACF,CACI61C,MAAO,SACPH,MAAO,MACPpkB,KAAM,OACP,CACC/kB,QAAS,aAGlB,CACCspC,MAAO,SACPH,MAAO,SACP11C,KAAM,CACF,CACI61C,MAAO,SACPH,MAAO,MACPpkB,KAAM,OACP,CACC/kB,QAAS,cAGlB,CACCspC,MAAO,oBACPH,MAAO,+BACR,CACCG,MAAO,mBACPH,MAAO,gDACR,CACCG,MAAO,mBACPH,MAAO,gDACR,CACCG,MAAO,uBACPH,MAAO,IACPpkB,KAAM,sBACP,CACCukB,MAAO,OACPH,MAAO,QACR,CACCG,MAAO,uBACPH,MAAO,KACR,CACCG,MAAO,QACPH,MAAO,GACPpkB,KAAM,aAGd,mBAAsB,CAClBq5E,EAAS,sBACT,CACI90D,MAAO,qBACPH,MAAO80D,GACR,CACC30D,MAAO,uBACPH,MAAO,KACR,CACCG,MAAO,OACPH,MAAO,QACR,CACCG,MAAO,uBACPH,MAAO,KACR,CACCG,MAAO,QACPH,MAAO,GACPpkB,KAAM,aAGd,SAAY,CACR,CACIukB,MAAO,2BACPH,MAAOg1D,GACR,CACC70D,MAAO,SACPH,MAAO,QACP0B,gBAAgB,GACjB,CACCvB,MAAO,SACPH,MAAO,MACPpkB,KAAM,YACP,CACC8jB,aAAc,WAGtB,QAAW,CACP,CACIS,MAAO,2BACPH,MAAOg1D,GACR,CACC70D,MAAO,SACPH,MAAO,QACP0B,gBAAgB,GACjB,CACCvB,MAAO,SACPH,MAAO,MACPpkB,KAAM,YACP,CACC8jB,aAAc,YAIrB1qC,GAAYA,EAAQkgG,QACrB3sG,KAAKu5C,OAAOqzD,SAASvzD,QAAQ,CACzB5B,MAAO,OAAQM,QAAS,SAAU30C,EAAK+9B,EAAOqX,GAE1C,GADAx4C,KAAKqzB,KAAc,KAAPjwB,EAAapD,KAAK0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E,KAAM,eACP,CACCukB,MAAO,SACPH,MAAOm2D,EAAY,SACnBv6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,OACtBx6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,SACtBx6E,KAAM,aACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,OACtBx6E,KAAM,aACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,SACtBx6E,KAAM,YACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,OACzBz6E,KAAM,eACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,SACzBz6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,OACzBz6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,SACzBz6E,KAAM,aACP,CACCukB,MAAO,mBACPH,MAAO,4EACR,CACCG,MAAO,cACPH,MAAO,2EACR,CACCG,MAAO,eACPH,MAAO,eACR,CACCG,MAAO,eACPH,MAAO,eACR,CACCG,MAAO,CAAC,UAAW,OAAQ,wBAC3BH,MAAO,2DACR,CACCG,MAAO,OACPH,MAAO,QACR,CACCnpC,QAAS,cAEjB,UAAa,CAAC,CACNspC,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,SAAY,CAAC,CACLS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,SAAY,CAAC,CACLS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,QACPpkB,KAAM,YACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,QAAW,CAAC,CACJS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,QACPpkB,KAAM,WACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,aAAgB,CAAC,CACTS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,YAAe,CAAC,CACRS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,YAAe,CAAC,CACRS,MAAO,SACPH,MAAO,QACPpkB,KAAM,eACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO,SACPH,MAAO,QACPpkB,KAAM,cACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,UAAa,CAAC,CACNS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,UAAa,CAAC,CACNS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,QACPpkB,KAAM,aACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,SAAY,CAAC,CACLS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,YAAe,CAAC,CACRS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO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","sources":["webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/ace.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/ext-beautify.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/ext-searchbox.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-css.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-golang.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-javascript.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-json.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-jsx.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-python.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-xml.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/theme-github.js","webpack://@tyk-technologies/tyk-ui/./node_modules/react-dom/client.js","webpack://@tyk-technologies/tyk-ui/./node_modules/react-fast-compare/index.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react-dom\"","webpack://@tyk-technologies/tyk-ui/webpack/bootstrap","webpack://@tyk-technologies/tyk-ui/webpack/runtime/amd define","webpack://@tyk-technologies/tyk-ui/webpack/runtime/compat get default export","webpack://@tyk-technologies/tyk-ui/webpack/runtime/define property getters","webpack://@tyk-technologies/tyk-ui/webpack/runtime/hasOwnProperty shorthand","webpack://@tyk-technologies/tyk-ui/webpack/runtime/make namespace object","webpack://@tyk-technologies/tyk-ui/webpack/runtime/node module decorator","webpack://@tyk-technologies/tyk-ui/webpack/runtime/publicPath","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react\"","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"prop-types\"","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Icon/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemTrigger.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItem.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemHeader.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react-transition-group\"","webpack://@tyk-technologies/tyk-ui/./src/hooks/useComponentSize/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/useEventListener/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Collapsible/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemContent.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Button/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/ButtonGroup/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardHeader.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardBody.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardFooter.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardTitle.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardTitleGroup.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardSubTitle.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardSummary.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardTitleIcon.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/index.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"echarts\"","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"immutable\"","webpack://@tyk-technologies/tyk-ui/./src/utils/debounce/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/usePrevious/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Loader/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Message/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Chart/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/useTimeout/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Toast/js/ToastMessage.js","webpack://@tyk-technologies/tyk-ui/./src/components/Toast/js/ToastContainer.js","webpack://@tyk-technologies/tyk-ui/./src/components/Toast/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/CopyToClipboard/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Modal/js/ModalFooter.js","webpack://@tyk-technologies/tyk-ui/./src/components/Modal/js/ModalBody.js","webpack://@tyk-technologies/tyk-ui/./src/components/Modal/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Confirm/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/FixedWrapper/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/InfiniteScroller/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/FloatingContainer/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/InfoNote/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/List/js/ListItem.js","webpack://@tyk-technologies/tyk-ui/./src/components/List/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/NavBar/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Navigation/js/NavigationItem.js","webpack://@tyk-technologies/tyk-ui/./src/components/Navigation/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/panel-context.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/js/PanelBody.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/js/PanelFooter.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/js/PanelHeader.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Pill/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/RevealPanel/js/RevealPanelService.js","webpack://@tyk-technologies/tyk-ui/./src/components/RevealPanel/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/tabs-context.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/js/TabContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/js/TabContent.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/js/Tab.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tooltip/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/TextEllipsis/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Pagination/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/tableContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/header-cell.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/header.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Checkbox/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/cell.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/row.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/body.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/index.js","webpack://@tyk-technologies/tyk-ui/./src/layout/Column/index.js","webpack://@tyk-technologies/tyk-ui/./src/layout/Row/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown/dropdown-context.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown/js/DropdownItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/DropdownTrigger.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/DropdownListWrapper.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/useDrodpownContext.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/DropdowItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/useDropdown.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react-ace\"","webpack://@tyk-technologies/tyk-ui/./src/form/components/CodeEditor/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox2/js/Value.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox2/js/List.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox2/index.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"flatpickr\"","webpack://@tyk-technologies/tyk-ui/./src/form/components/DatePicker/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/isDate/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/toDate/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/toInteger/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/defaultOptions/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/format/formatters/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/format/longFormatters/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/protectedTokens/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/defaultLocale/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/format/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/isValid/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/subMilliseconds/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/addMilliseconds/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList/js/EditableListForm.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/Header.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/ListHeader.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/FieldsList.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/with-validation.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/validate-values.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/FileInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Input/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Input2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/js/MultiselectContext.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/js/MultiselectItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/js/MultiselectPanel.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Radio/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Select/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/SelectableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Textarea/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/js/ToggleContext.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/js/ToggleItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/js/ToggleItemWrapper.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/index.js","webpack://@tyk-technologies/tyk-ui/./src/utils/config/config.js","webpack://@tyk-technologies/tyk-ui/./src/utils/formik/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCheckbox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCodeEditor/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCombobox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCombobox2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikDatePicker/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikEditableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikEditableList2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikFileInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikInput2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikMultiselect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikRadio/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikSelect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikSelectableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikTextarea/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikToggle/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldCodeEditor/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldCombobox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldDropdown/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldPagination/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldCombobox2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldDatePicker/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldEditableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldFileInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldMultiselect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldSelect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldSelectableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldToggle/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/useInterval/index.js"],"sourcesContent":["/* ***** BEGIN LICENSE BLOCK *****\n * Distributed under the BSD license:\n *\n * Copyright (c) 2010, Ajax.org B.V.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n * * Neither the name of Ajax.org B.V. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * ***** END LICENSE BLOCK ***** */\n\n/**\n * Define a module along with a payload\n * @param module a name for the payload\n * @param payload a function to call with (require, exports, module) params\n */\n\n(function() {\n\nvar ACE_NAMESPACE = \"ace\";\n\nvar global = (function() { return this; })();\nif (!global && typeof window != \"undefined\") global = window; // strict mode\n\n\nif (!ACE_NAMESPACE && typeof requirejs !== \"undefined\")\n return;\n\n\nvar define = function(module, deps, payload) {\n if (typeof module !== \"string\") {\n if (define.original)\n define.original.apply(this, arguments);\n else {\n console.error(\"dropping module because define wasn\\'t a string.\");\n console.trace();\n }\n return;\n }\n if (arguments.length == 2)\n payload = deps;\n if (!define.modules[module]) {\n define.payloads[module] = payload;\n define.modules[module] = null;\n }\n};\n\ndefine.modules = {};\ndefine.payloads = {};\n\n/**\n * Get at functionality define()ed using the function above\n */\nvar _require = function(parentId, module, callback) {\n if (typeof module === \"string\") {\n var payload = lookup(parentId, module);\n if (payload != undefined) {\n callback && callback();\n return payload;\n }\n } else if (Object.prototype.toString.call(module) === \"[object Array]\") {\n var params = [];\n for (var i = 0, l = module.length; i < l; ++i) {\n var dep = lookup(parentId, module[i]);\n if (dep == undefined && require.original)\n return;\n params.push(dep);\n }\n return callback && callback.apply(null, params) || true;\n }\n};\n\nvar require = function(module, callback) {\n var packagedModule = _require(\"\", module, callback);\n if (packagedModule == undefined && require.original)\n return require.original.apply(this, arguments);\n return packagedModule;\n};\n\nvar normalizeModule = function(parentId, moduleName) {\n // normalize plugin requires\n if (moduleName.indexOf(\"!\") !== -1) {\n var chunks = moduleName.split(\"!\");\n return normalizeModule(parentId, chunks[0]) + \"!\" + normalizeModule(parentId, chunks[1]);\n }\n // normalize relative requires\n if (moduleName.charAt(0) == \".\") {\n var base = parentId.split(\"/\").slice(0, -1).join(\"/\");\n moduleName = base + \"/\" + moduleName;\n\n while(moduleName.indexOf(\".\") !== -1 && previous != moduleName) {\n var previous = moduleName;\n moduleName = moduleName.replace(/\\/\\.\\//, \"/\").replace(/[^\\/]+\\/\\.\\.\\//, \"\");\n }\n }\n return moduleName;\n};\n\n/**\n * Internal function to lookup moduleNames and resolve them by calling the\n * definition function if needed.\n */\nvar lookup = function(parentId, moduleName) {\n moduleName = normalizeModule(parentId, moduleName);\n\n var module = define.modules[moduleName];\n if (!module) {\n module = define.payloads[moduleName];\n if (typeof module === 'function') {\n var exports = {};\n var mod = {\n id: moduleName,\n uri: '',\n exports: exports,\n packaged: true\n };\n\n var req = function(module, callback) {\n return _require(moduleName, module, callback);\n };\n\n var returnValue = module(req, exports, mod);\n exports = returnValue || mod.exports;\n define.modules[moduleName] = exports;\n delete define.payloads[moduleName];\n }\n module = define.modules[moduleName] = exports || module;\n }\n return module;\n};\n\nfunction exportAce(ns) {\n var root = global;\n if (ns) {\n if (!global[ns])\n global[ns] = {};\n root = global[ns];\n }\n\n if (!root.define || !root.define.packaged) {\n define.original = root.define;\n root.define = define;\n root.define.packaged = true;\n }\n\n if (!root.require || !root.require.packaged) {\n require.original = root.require;\n root.require = require;\n root.require.packaged = true;\n }\n}\n\nexportAce(ACE_NAMESPACE);\n\n})();\n\nace.define(\"ace/lib/es6-shim\",[\"require\",\"exports\",\"module\"], function(require, exports, module){function defineProp(obj, name, val) {\n Object.defineProperty(obj, name, {\n value: val,\n enumerable: false,\n writable: true,\n configurable: true\n });\n}\nif (!String.prototype.startsWith) {\n defineProp(String.prototype, \"startsWith\", function (searchString, position) {\n position = position || 0;\n return this.lastIndexOf(searchString, position) === position;\n });\n}\nif (!String.prototype.endsWith) {\n defineProp(String.prototype, \"endsWith\", function (searchString, position) {\n var subjectString = this;\n if (position === undefined || position > subjectString.length) {\n position = subjectString.length;\n }\n position -= searchString.length;\n var lastIndex = subjectString.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n });\n}\nif (!String.prototype.repeat) {\n defineProp(String.prototype, \"repeat\", function (count) {\n var result = \"\";\n var string = this;\n while (count > 0) {\n if (count & 1)\n result += string;\n if ((count >>= 1))\n string += string;\n }\n return result;\n });\n}\nif (!String.prototype.includes) {\n defineProp(String.prototype, \"includes\", function (str, position) {\n return this.indexOf(str, position) != -1;\n });\n}\nif (!Object.assign) {\n Object.assign = function (target) {\n if (target === undefined || target === null) {\n throw new TypeError(\"Cannot convert undefined or null to object\");\n }\n var output = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n if (source !== undefined && source !== null) {\n Object.keys(source).forEach(function (key) {\n output[key] = source[key];\n });\n }\n }\n return output;\n };\n}\nif (!Object.values) {\n Object.values = function (o) {\n return Object.keys(o).map(function (k) {\n return o[k];\n });\n };\n}\nif (!Array.prototype.find) {\n defineProp(Array.prototype, \"find\", function (predicate) {\n var len = this.length;\n var thisArg = arguments[1];\n for (var k = 0; k < len; k++) {\n var kValue = this[k];\n if (predicate.call(thisArg, kValue, k, this)) {\n return kValue;\n }\n }\n });\n}\nif (!Array.prototype.findIndex) {\n defineProp(Array.prototype, \"findIndex\", function (predicate) {\n var len = this.length;\n var thisArg = arguments[1];\n for (var k = 0; k < len; k++) {\n var kValue = this[k];\n if (predicate.call(thisArg, kValue, k, this)) {\n return k;\n }\n }\n });\n}\nif (!Array.prototype.includes) {\n defineProp(Array.prototype, \"includes\", function (item, position) {\n return this.indexOf(item, position) != -1;\n });\n}\nif (!Array.prototype.fill) {\n defineProp(Array.prototype, \"fill\", function (value) {\n var O = this;\n var len = O.length >>> 0;\n var start = arguments[1];\n var relativeStart = start >> 0;\n var k = relativeStart < 0\n ? Math.max(len + relativeStart, 0)\n : Math.min(relativeStart, len);\n var end = arguments[2];\n var relativeEnd = end === undefined ? len : end >> 0;\n var final = relativeEnd < 0\n ? Math.max(len + relativeEnd, 0)\n : Math.min(relativeEnd, len);\n while (k < final) {\n O[k] = value;\n k++;\n }\n return O;\n });\n}\nif (!Array.of) {\n defineProp(Array, \"of\", function () {\n return Array.prototype.slice.call(arguments);\n });\n}\n\n});\n\nace.define(\"ace/lib/fixoldbrowsers\",[\"require\",\"exports\",\"module\",\"ace/lib/es6-shim\"], function(require, exports, module){// vim:set ts=4 sts=4 sw=4 st:\n\"use strict\";\nrequire(\"./es6-shim\");\n\n});\n\nace.define(\"ace/lib/deep_copy\",[\"require\",\"exports\",\"module\"], function(require, exports, module){exports.deepCopy = function deepCopy(obj) {\n if (typeof obj !== \"object\" || !obj)\n return obj;\n var copy;\n if (Array.isArray(obj)) {\n copy = [];\n for (var key = 0; key < obj.length; key++) {\n copy[key] = deepCopy(obj[key]);\n }\n return copy;\n }\n if (Object.prototype.toString.call(obj) !== \"[object Object]\")\n return obj;\n copy = {};\n for (var key in obj)\n copy[key] = deepCopy(obj[key]);\n return copy;\n};\n\n});\n\nace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\",\"ace/lib/deep_copy\"], function(require, exports, module){\"use strict\";\nexports.last = function (a) {\n return a[a.length - 1];\n};\nexports.stringReverse = function (string) {\n return string.split(\"\").reverse().join(\"\");\n};\nexports.stringRepeat = function (string, count) {\n var result = '';\n while (count > 0) {\n if (count & 1)\n result += string;\n if (count >>= 1)\n string += string;\n }\n return result;\n};\nvar trimBeginRegexp = /^\\s\\s*/;\nvar trimEndRegexp = /\\s\\s*$/;\nexports.stringTrimLeft = function (string) {\n return string.replace(trimBeginRegexp, '');\n};\nexports.stringTrimRight = function (string) {\n return string.replace(trimEndRegexp, '');\n};\nexports.copyObject = function (obj) {\n var copy = {};\n for (var key in obj) {\n copy[key] = obj[key];\n }\n return copy;\n};\nexports.copyArray = function (array) {\n var copy = [];\n for (var i = 0, l = array.length; i < l; i++) {\n if (array[i] && typeof array[i] == \"object\")\n copy[i] = this.copyObject(array[i]);\n else\n copy[i] = array[i];\n }\n return copy;\n};\nexports.deepCopy = require(\"./deep_copy\").deepCopy;\nexports.arrayToMap = function (arr) {\n var map = {};\n for (var i = 0; i < arr.length; i++) {\n map[arr[i]] = 1;\n }\n return map;\n};\nexports.createMap = function (props) {\n var map = Object.create(null);\n for (var i in props) {\n map[i] = props[i];\n }\n return map;\n};\nexports.arrayRemove = function (array, value) {\n for (var i = 0; i <= array.length; i++) {\n if (value === array[i]) {\n array.splice(i, 1);\n }\n }\n};\nexports.escapeRegExp = function (str) {\n return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g, '\\\\$1');\n};\nexports.escapeHTML = function (str) {\n return (\"\" + str).replace(/&/g, \"&\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(/ 0xffff ? 2 : 1;\n};\n\n});\n\nace.define(\"ace/lib/useragent\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nexports.OS = {\n LINUX: \"LINUX\",\n MAC: \"MAC\",\n WINDOWS: \"WINDOWS\"\n};\nexports.getOS = function () {\n if (exports.isMac) {\n return exports.OS.MAC;\n }\n else if (exports.isLinux) {\n return exports.OS.LINUX;\n }\n else {\n return exports.OS.WINDOWS;\n }\n};\nvar _navigator = typeof navigator == \"object\" ? navigator : {};\nvar os = (/mac|win|linux/i.exec(_navigator.platform) || [\"other\"])[0].toLowerCase();\nvar ua = _navigator.userAgent || \"\";\nvar appName = _navigator.appName || \"\";\nexports.isWin = (os == \"win\");\nexports.isMac = (os == \"mac\");\nexports.isLinux = (os == \"linux\");\nexports.isIE =\n (appName == \"Microsoft Internet Explorer\" || appName.indexOf(\"MSAppHost\") >= 0)\n ? parseFloat((ua.match(/(?:MSIE |Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/) || [])[1])\n : parseFloat((ua.match(/(?:Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/) || [])[1]); // for ie\nexports.isOldIE = exports.isIE && exports.isIE < 9;\nexports.isGecko = exports.isMozilla = ua.match(/ Gecko\\/\\d+/);\nexports.isOpera = typeof opera == \"object\" && Object.prototype.toString.call(window.opera) == \"[object Opera]\";\nexports.isWebKit = parseFloat(ua.split(\"WebKit/\")[1]) || undefined;\nexports.isChrome = parseFloat(ua.split(\" Chrome/\")[1]) || undefined;\nexports.isSafari = parseFloat(ua.split(\" Safari/\")[1]) && !exports.isChrome || undefined;\nexports.isEdge = parseFloat(ua.split(\" Edge/\")[1]) || undefined;\nexports.isAIR = ua.indexOf(\"AdobeAIR\") >= 0;\nexports.isAndroid = ua.indexOf(\"Android\") >= 0;\nexports.isChromeOS = ua.indexOf(\" CrOS \") >= 0;\nexports.isIOS = /iPad|iPhone|iPod/.test(ua) && !window.MSStream;\nif (exports.isIOS)\n exports.isMac = true;\nexports.isMobile = exports.isIOS || exports.isAndroid;\n\n});\n\nace.define(\"ace/lib/dom\",[\"require\",\"exports\",\"module\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar useragent = require(\"./useragent\");\nvar XHTML_NS = \"http://www.w3.org/1999/xhtml\";\nexports.buildDom = function buildDom(arr, parent, refs) {\n if (typeof arr == \"string\" && arr) {\n var txt = document.createTextNode(arr);\n if (parent)\n parent.appendChild(txt);\n return txt;\n }\n if (!Array.isArray(arr)) {\n if (arr && arr.appendChild && parent)\n parent.appendChild(arr);\n return arr;\n }\n if (typeof arr[0] != \"string\" || !arr[0]) {\n var els = [];\n for (var i = 0; i < arr.length; i++) {\n var ch = buildDom(arr[i], parent, refs);\n ch && els.push(ch);\n }\n return els;\n }\n var el = document.createElement(arr[0]);\n var options = arr[1];\n var childIndex = 1;\n if (options && typeof options == \"object\" && !Array.isArray(options))\n childIndex = 2;\n for (var i = childIndex; i < arr.length; i++)\n buildDom(arr[i], el, refs);\n if (childIndex == 2) {\n Object.keys(options).forEach(function (n) {\n var val = options[n];\n if (n === \"class\") {\n el.className = Array.isArray(val) ? val.join(\" \") : val;\n }\n else if (typeof val == \"function\" || n == \"value\" || n[0] == \"$\") {\n el[n] = val;\n }\n else if (n === \"ref\") {\n if (refs)\n refs[val] = el;\n }\n else if (n === \"style\") {\n if (typeof val == \"string\")\n el.style.cssText = val;\n }\n else if (val != null) {\n el.setAttribute(n, val);\n }\n });\n }\n if (parent)\n parent.appendChild(el);\n return el;\n};\nexports.getDocumentHead = function (doc) {\n if (!doc)\n doc = document;\n return doc.head || doc.getElementsByTagName(\"head\")[0] || doc.documentElement;\n};\nexports.createElement = function (tag, ns) {\n return document.createElementNS ?\n document.createElementNS(ns || XHTML_NS, tag) :\n document.createElement(tag);\n};\nexports.removeChildren = function (element) {\n element.innerHTML = \"\";\n};\nexports.createTextNode = function (textContent, element) {\n var doc = element ? element.ownerDocument : document;\n return doc.createTextNode(textContent);\n};\nexports.createFragment = function (element) {\n var doc = element ? element.ownerDocument : document;\n return doc.createDocumentFragment();\n};\nexports.hasCssClass = function (el, name) {\n var classes = (el.className + \"\").split(/\\s+/g);\n return classes.indexOf(name) !== -1;\n};\nexports.addCssClass = function (el, name) {\n if (!exports.hasCssClass(el, name)) {\n el.className += \" \" + name;\n }\n};\nexports.removeCssClass = function (el, name) {\n var classes = el.className.split(/\\s+/g);\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n classes.splice(index, 1);\n }\n el.className = classes.join(\" \");\n};\nexports.toggleCssClass = function (el, name) {\n var classes = el.className.split(/\\s+/g), add = true;\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n add = false;\n classes.splice(index, 1);\n }\n if (add)\n classes.push(name);\n el.className = classes.join(\" \");\n return add;\n};\nexports.setCssClass = function (node, className, include) {\n if (include) {\n exports.addCssClass(node, className);\n }\n else {\n exports.removeCssClass(node, className);\n }\n};\nexports.hasCssString = function (id, doc) {\n var index = 0, sheets;\n doc = doc || document;\n if ((sheets = doc.querySelectorAll(\"style\"))) {\n while (index < sheets.length) {\n if (sheets[index++].id === id) {\n return true;\n }\n }\n }\n};\nexports.removeElementById = function (id, doc) {\n doc = doc || document;\n if (doc.getElementById(id)) {\n doc.getElementById(id).remove();\n }\n};\nvar strictCSP;\nvar cssCache = [];\nexports.useStrictCSP = function (value) {\n strictCSP = value;\n if (value == false)\n insertPendingStyles();\n else if (!cssCache)\n cssCache = [];\n};\nfunction insertPendingStyles() {\n var cache = cssCache;\n cssCache = null;\n cache && cache.forEach(function (item) {\n importCssString(item[0], item[1]);\n });\n}\nfunction importCssString(cssText, id, target) {\n if (typeof document == \"undefined\")\n return;\n if (cssCache) {\n if (target) {\n insertPendingStyles();\n }\n else if (target === false) {\n return cssCache.push([cssText, id]);\n }\n }\n if (strictCSP)\n return;\n var container = target;\n if (!target || !target.getRootNode) {\n container = document;\n }\n else {\n container = target.getRootNode();\n if (!container || container == target)\n container = document;\n }\n var doc = container.ownerDocument || container;\n if (id && exports.hasCssString(id, container))\n return null;\n if (id)\n cssText += \"\\n/*# sourceURL=ace/css/\" + id + \" */\";\n var style = exports.createElement(\"style\");\n style.appendChild(doc.createTextNode(cssText));\n if (id)\n style.id = id;\n if (container == doc)\n container = exports.getDocumentHead(doc);\n container.insertBefore(style, container.firstChild);\n}\nexports.importCssString = importCssString;\nexports.importCssStylsheet = function (uri, doc) {\n exports.buildDom([\"link\", { rel: \"stylesheet\", href: uri }], exports.getDocumentHead(doc));\n};\nexports.scrollbarWidth = function (doc) {\n var inner = exports.createElement(\"ace_inner\");\n inner.style.width = \"100%\";\n inner.style.minWidth = \"0px\";\n inner.style.height = \"200px\";\n inner.style.display = \"block\";\n var outer = exports.createElement(\"ace_outer\");\n var style = outer.style;\n style.position = \"absolute\";\n style.left = \"-10000px\";\n style.overflow = \"hidden\";\n style.width = \"200px\";\n style.minWidth = \"0px\";\n style.height = \"150px\";\n style.display = \"block\";\n outer.appendChild(inner);\n var body = (doc && doc.documentElement) || (document && document.documentElement);\n if (!body)\n return 0;\n body.appendChild(outer);\n var noScrollbar = inner.offsetWidth;\n style.overflow = \"scroll\";\n var withScrollbar = inner.offsetWidth;\n if (noScrollbar === withScrollbar) {\n withScrollbar = outer.clientWidth;\n }\n body.removeChild(outer);\n return noScrollbar - withScrollbar;\n};\nexports.computedStyle = function (element, style) {\n return window.getComputedStyle(element, \"\") || {};\n};\nexports.setStyle = function (styles, property, value) {\n if (styles[property] !== value) {\n styles[property] = value;\n }\n};\nexports.HAS_CSS_ANIMATION = false;\nexports.HAS_CSS_TRANSFORMS = false;\nexports.HI_DPI = useragent.isWin\n ? typeof window !== \"undefined\" && window.devicePixelRatio >= 1.5\n : true;\nif (useragent.isChromeOS)\n exports.HI_DPI = false;\nif (typeof document !== \"undefined\") {\n var div = document.createElement(\"div\");\n if (exports.HI_DPI && div.style.transform !== undefined)\n exports.HAS_CSS_TRANSFORMS = true;\n if (!useragent.isEdge && typeof div.style.animationName !== \"undefined\")\n exports.HAS_CSS_ANIMATION = true;\n div = null;\n}\nif (exports.HAS_CSS_TRANSFORMS) {\n exports.translate = function (element, tx, ty) {\n element.style.transform = \"translate(\" + Math.round(tx) + \"px, \" + Math.round(ty) + \"px)\";\n };\n}\nelse {\n exports.translate = function (element, tx, ty) {\n element.style.top = Math.round(ty) + \"px\";\n element.style.left = Math.round(tx) + \"px\";\n };\n}\n\n});\n\nace.define(\"ace/lib/net\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){/*\n * based on code from:\n *\n * @license RequireJS text 0.25.0 Copyright (c) 2010-2011, The Dojo Foundation All Rights Reserved.\n * Available via the MIT or new BSD license.\n * see: http://github.com/jrburke/requirejs for details\n */\n\"use strict\";\nvar dom = require(\"./dom\");\nexports.get = function (url, callback) {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, true);\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n callback(xhr.responseText);\n }\n };\n xhr.send(null);\n};\nexports.loadScript = function (path, callback) {\n var head = dom.getDocumentHead();\n var s = document.createElement('script');\n s.src = path;\n head.appendChild(s);\n s.onload = s.onreadystatechange = function (_, isAbort) {\n if (isAbort || !s.readyState || s.readyState == \"loaded\" || s.readyState == \"complete\") {\n s = s.onload = s.onreadystatechange = null;\n if (!isAbort)\n callback();\n }\n };\n};\nexports.qualifyURL = function (url) {\n var a = document.createElement('a');\n a.href = url;\n return a.href;\n};\n\n});\n\nace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nexports.inherits = function (ctor, superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n};\nexports.mixin = function (obj, mixin) {\n for (var key in mixin) {\n obj[key] = mixin[key];\n }\n return obj;\n};\nexports.implement = function (proto, mixin) {\n exports.mixin(proto, mixin);\n};\n\n});\n\nace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar EventEmitter = {};\nvar stopPropagation = function () { this.propagationStopped = true; };\nvar preventDefault = function () { this.defaultPrevented = true; };\nEventEmitter._emit =\n EventEmitter._dispatchEvent = function (eventName, e) {\n this._eventRegistry || (this._eventRegistry = {});\n this._defaultHandlers || (this._defaultHandlers = {});\n var listeners = this._eventRegistry[eventName] || [];\n var defaultHandler = this._defaultHandlers[eventName];\n if (!listeners.length && !defaultHandler)\n return;\n if (typeof e != \"object\" || !e)\n e = {};\n if (!e.type)\n e.type = eventName;\n if (!e.stopPropagation)\n e.stopPropagation = stopPropagation;\n if (!e.preventDefault)\n e.preventDefault = preventDefault;\n listeners = listeners.slice();\n for (var i = 0; i < listeners.length; i++) {\n listeners[i](e, this);\n if (e.propagationStopped)\n break;\n }\n if (defaultHandler && !e.defaultPrevented)\n return defaultHandler(e, this);\n };\nEventEmitter._signal = function (eventName, e) {\n var listeners = (this._eventRegistry || {})[eventName];\n if (!listeners)\n return;\n listeners = listeners.slice();\n for (var i = 0; i < listeners.length; i++)\n listeners[i](e, this);\n};\nEventEmitter.once = function (eventName, callback) {\n var _self = this;\n this.on(eventName, function newCallback() {\n _self.off(eventName, newCallback);\n callback.apply(null, arguments);\n });\n if (!callback) {\n return new Promise(function (resolve) {\n callback = resolve;\n });\n }\n};\nEventEmitter.setDefaultHandler = function (eventName, callback) {\n var handlers = this._defaultHandlers;\n if (!handlers)\n handlers = this._defaultHandlers = { _disabled_: {} };\n if (handlers[eventName]) {\n var old = handlers[eventName];\n var disabled = handlers._disabled_[eventName];\n if (!disabled)\n handlers._disabled_[eventName] = disabled = [];\n disabled.push(old);\n var i = disabled.indexOf(callback);\n if (i != -1)\n disabled.splice(i, 1);\n }\n handlers[eventName] = callback;\n};\nEventEmitter.removeDefaultHandler = function (eventName, callback) {\n var handlers = this._defaultHandlers;\n if (!handlers)\n return;\n var disabled = handlers._disabled_[eventName];\n if (handlers[eventName] == callback) {\n if (disabled)\n this.setDefaultHandler(eventName, disabled.pop());\n }\n else if (disabled) {\n var i = disabled.indexOf(callback);\n if (i != -1)\n disabled.splice(i, 1);\n }\n};\nEventEmitter.on =\n EventEmitter.addEventListener = function (eventName, callback, capturing) {\n this._eventRegistry = this._eventRegistry || {};\n var listeners = this._eventRegistry[eventName];\n if (!listeners)\n listeners = this._eventRegistry[eventName] = [];\n if (listeners.indexOf(callback) == -1)\n listeners[capturing ? \"unshift\" : \"push\"](callback);\n return callback;\n };\nEventEmitter.off =\n EventEmitter.removeListener =\n EventEmitter.removeEventListener = function (eventName, callback) {\n this._eventRegistry = this._eventRegistry || {};\n var listeners = this._eventRegistry[eventName];\n if (!listeners)\n return;\n var index = listeners.indexOf(callback);\n if (index !== -1)\n listeners.splice(index, 1);\n };\nEventEmitter.removeAllListeners = function (eventName) {\n if (!eventName)\n this._eventRegistry = this._defaultHandlers = undefined;\n if (this._eventRegistry)\n this._eventRegistry[eventName] = undefined;\n if (this._defaultHandlers)\n this._defaultHandlers[eventName] = undefined;\n};\nexports.EventEmitter = EventEmitter;\n\n});\n\nace.define(\"ace/lib/report_error\",[\"require\",\"exports\",\"module\"], function(require, exports, module){exports.reportError = function reportError(msg, data) {\n var e = new Error(msg);\n e.data = data;\n if (typeof console == \"object\" && console.error)\n console.error(e);\n setTimeout(function () { throw e; });\n};\n\n});\n\nace.define(\"ace/lib/app_config\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\",\"ace/lib/report_error\"], function(require, exports, module){\"no use strict\";\nvar oop = require(\"./oop\");\nvar EventEmitter = require(\"./event_emitter\").EventEmitter;\nvar reportError = require(\"./report_error\").reportError;\nvar optionsProvider = {\n setOptions: function (optList) {\n Object.keys(optList).forEach(function (key) {\n this.setOption(key, optList[key]);\n }, this);\n },\n getOptions: function (optionNames) {\n var result = {};\n if (!optionNames) {\n var options = this.$options;\n optionNames = Object.keys(options).filter(function (key) {\n return !options[key].hidden;\n });\n }\n else if (!Array.isArray(optionNames)) {\n result = optionNames;\n optionNames = Object.keys(result);\n }\n optionNames.forEach(function (key) {\n result[key] = this.getOption(key);\n }, this);\n return result;\n },\n setOption: function (name, value) {\n if (this[\"$\" + name] === value)\n return;\n var opt = this.$options[name];\n if (!opt) {\n return warn('misspelled option \"' + name + '\"');\n }\n if (opt.forwardTo)\n return this[opt.forwardTo] && this[opt.forwardTo].setOption(name, value);\n if (!opt.handlesSet)\n this[\"$\" + name] = value;\n if (opt && opt.set)\n opt.set.call(this, value);\n },\n getOption: function (name) {\n var opt = this.$options[name];\n if (!opt) {\n return warn('misspelled option \"' + name + '\"');\n }\n if (opt.forwardTo)\n return this[opt.forwardTo] && this[opt.forwardTo].getOption(name);\n return opt && opt.get ? opt.get.call(this) : this[\"$\" + name];\n }\n};\nfunction warn(message) {\n if (typeof console != \"undefined\" && console.warn)\n console.warn.apply(console, arguments);\n}\nvar messages;\nvar AppConfig = /** @class */ (function () {\n function AppConfig() {\n this.$defaultOptions = {};\n }\n AppConfig.prototype.defineOptions = function (obj, path, options) {\n if (!obj.$options)\n this.$defaultOptions[path] = obj.$options = {};\n Object.keys(options).forEach(function (key) {\n var opt = options[key];\n if (typeof opt == \"string\")\n opt = { forwardTo: opt };\n opt.name || (opt.name = key);\n obj.$options[opt.name] = opt;\n if (\"initialValue\" in opt)\n obj[\"$\" + opt.name] = opt.initialValue;\n });\n oop.implement(obj, optionsProvider);\n return this;\n };\n AppConfig.prototype.resetOptions = function (obj) {\n Object.keys(obj.$options).forEach(function (key) {\n var opt = obj.$options[key];\n if (\"value\" in opt)\n obj.setOption(key, opt.value);\n });\n };\n AppConfig.prototype.setDefaultValue = function (path, name, value) {\n if (!path) {\n for (path in this.$defaultOptions)\n if (this.$defaultOptions[path][name])\n break;\n if (!this.$defaultOptions[path][name])\n return false;\n }\n var opts = this.$defaultOptions[path] || (this.$defaultOptions[path] = {});\n if (opts[name]) {\n if (opts.forwardTo)\n this.setDefaultValue(opts.forwardTo, name, value);\n else\n opts[name].value = value;\n }\n };\n AppConfig.prototype.setDefaultValues = function (path, optionHash) {\n Object.keys(optionHash).forEach(function (key) {\n this.setDefaultValue(path, key, optionHash[key]);\n }, this);\n };\n AppConfig.prototype.setMessages = function (value) {\n messages = value;\n };\n AppConfig.prototype.nls = function (string, params) {\n if (messages && !messages[string]) {\n warn(\"No message found for '\" + string + \"' in the provided messages, falling back to default English message.\");\n }\n var translated = messages && messages[string] || string;\n if (params) {\n translated = translated.replace(/\\$(\\$|[\\d]+)/g, function (_, name) {\n if (name == \"$\")\n return \"$\";\n return params[name];\n });\n }\n return translated;\n };\n return AppConfig;\n}());\nAppConfig.prototype.warn = warn;\nAppConfig.prototype.reportError = reportError;\noop.implement(AppConfig.prototype, EventEmitter);\nexports.AppConfig = AppConfig;\n\n});\n\nace.define(\"ace/theme/textmate-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){module.exports = \".ace-tm .ace_gutter {\\n background: #f0f0f0;\\n color: #333;\\n}\\n\\n.ace-tm .ace_print-margin {\\n width: 1px;\\n background: #e8e8e8;\\n}\\n\\n.ace-tm .ace_fold {\\n background-color: #6B72E6;\\n}\\n\\n.ace-tm {\\n background-color: #FFFFFF;\\n color: black;\\n}\\n\\n.ace-tm .ace_cursor {\\n color: black;\\n}\\n \\n.ace-tm .ace_invisible {\\n color: rgb(191, 191, 191);\\n}\\n\\n.ace-tm .ace_storage,\\n.ace-tm .ace_keyword {\\n color: blue;\\n}\\n\\n.ace-tm .ace_constant {\\n color: rgb(197, 6, 11);\\n}\\n\\n.ace-tm .ace_constant.ace_buildin {\\n color: rgb(88, 72, 246);\\n}\\n\\n.ace-tm .ace_constant.ace_language {\\n color: rgb(88, 92, 246);\\n}\\n\\n.ace-tm .ace_constant.ace_library {\\n color: rgb(6, 150, 14);\\n}\\n\\n.ace-tm .ace_invalid {\\n background-color: rgba(255, 0, 0, 0.1);\\n color: red;\\n}\\n\\n.ace-tm .ace_support.ace_function {\\n color: rgb(60, 76, 114);\\n}\\n\\n.ace-tm .ace_support.ace_constant {\\n color: rgb(6, 150, 14);\\n}\\n\\n.ace-tm .ace_support.ace_type,\\n.ace-tm .ace_support.ace_class {\\n color: rgb(109, 121, 222);\\n}\\n\\n.ace-tm .ace_keyword.ace_operator {\\n color: rgb(104, 118, 135);\\n}\\n\\n.ace-tm .ace_string {\\n color: rgb(3, 106, 7);\\n}\\n\\n.ace-tm .ace_comment {\\n color: rgb(76, 136, 107);\\n}\\n\\n.ace-tm .ace_comment.ace_doc {\\n color: rgb(0, 102, 255);\\n}\\n\\n.ace-tm .ace_comment.ace_doc.ace_tag {\\n color: rgb(128, 159, 191);\\n}\\n\\n.ace-tm .ace_constant.ace_numeric {\\n color: rgb(0, 0, 205);\\n}\\n\\n.ace-tm .ace_variable {\\n color: rgb(49, 132, 149);\\n}\\n\\n.ace-tm .ace_xml-pe {\\n color: rgb(104, 104, 91);\\n}\\n\\n.ace-tm .ace_entity.ace_name.ace_function {\\n color: #0000A2;\\n}\\n\\n\\n.ace-tm .ace_heading {\\n color: rgb(12, 7, 255);\\n}\\n\\n.ace-tm .ace_list {\\n color:rgb(185, 6, 144);\\n}\\n\\n.ace-tm .ace_meta.ace_tag {\\n color:rgb(0, 22, 142);\\n}\\n\\n.ace-tm .ace_string.ace_regex {\\n color: rgb(255, 0, 0)\\n}\\n\\n.ace-tm .ace_marker-layer .ace_selection {\\n background: rgb(181, 213, 255);\\n}\\n.ace-tm.ace_multiselect .ace_selection.ace_start {\\n box-shadow: 0 0 3px 0px white;\\n}\\n.ace-tm .ace_marker-layer .ace_step {\\n background: rgb(252, 255, 0);\\n}\\n\\n.ace-tm .ace_marker-layer .ace_stack {\\n background: rgb(164, 229, 101);\\n}\\n\\n.ace-tm .ace_marker-layer .ace_bracket {\\n margin: -1px 0 0 -1px;\\n border: 1px solid rgb(192, 192, 192);\\n}\\n\\n.ace-tm .ace_marker-layer .ace_active-line {\\n background: rgba(0, 0, 0, 0.07);\\n}\\n\\n.ace-tm .ace_gutter-active-line {\\n background-color : #dcdcdc;\\n}\\n\\n.ace-tm .ace_marker-layer .ace_selected-word {\\n background: rgb(250, 250, 255);\\n border: 1px solid rgb(200, 200, 250);\\n}\\n\\n.ace-tm .ace_indent-guide {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\n}\\n\\n.ace-tm .ace_indent-guide-active {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC\\\") right repeat-y;\\n}\\n\";\n\n});\n\nace.define(\"ace/theme/textmate\",[\"require\",\"exports\",\"module\",\"ace/theme/textmate-css\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nexports.isDark = false;\nexports.cssClass = \"ace-tm\";\nexports.cssText = require(\"./textmate-css\");\nexports.$id = \"ace/theme/textmate\";\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass, false);\n\n});\n\nace.define(\"ace/config\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/net\",\"ace/lib/dom\",\"ace/lib/app_config\",\"ace/theme/textmate\"], function(require, exports, module){\"no use strict\";\nvar lang = require(\"./lib/lang\");\nvar net = require(\"./lib/net\");\nvar dom = require(\"./lib/dom\");\nvar AppConfig = require(\"./lib/app_config\").AppConfig;\nmodule.exports = exports = new AppConfig();\nvar options = {\n packaged: false,\n workerPath: null,\n modePath: null,\n themePath: null,\n basePath: \"\",\n suffix: \".js\",\n $moduleUrls: {},\n loadWorkerFromBlob: true,\n sharedPopups: false,\n useStrictCSP: null\n};\nexports.get = function (key) {\n if (!options.hasOwnProperty(key))\n throw new Error(\"Unknown config key: \" + key);\n return options[key];\n};\nexports.set = function (key, value) {\n if (options.hasOwnProperty(key))\n options[key] = value;\n else if (this.setDefaultValue(\"\", key, value) == false)\n throw new Error(\"Unknown config key: \" + key);\n if (key == \"useStrictCSP\")\n dom.useStrictCSP(value);\n};\nexports.all = function () {\n return lang.copyObject(options);\n};\nexports.$modes = {};\nexports.moduleUrl = function (name, component) {\n if (options.$moduleUrls[name])\n return options.$moduleUrls[name];\n var parts = name.split(\"/\");\n component = component || parts[parts.length - 2] || \"\";\n var sep = component == \"snippets\" ? \"/\" : \"-\";\n var base = parts[parts.length - 1];\n if (component == \"worker\" && sep == \"-\") {\n var re = new RegExp(\"^\" + component + \"[\\\\-_]|[\\\\-_]\" + component + \"$\", \"g\");\n base = base.replace(re, \"\");\n }\n if ((!base || base == component) && parts.length > 1)\n base = parts[parts.length - 2];\n var path = options[component + \"Path\"];\n if (path == null) {\n path = options.basePath;\n }\n else if (sep == \"/\") {\n component = sep = \"\";\n }\n if (path && path.slice(-1) != \"/\")\n path += \"/\";\n return path + component + sep + base + this.get(\"suffix\");\n};\nexports.setModuleUrl = function (name, subst) {\n return options.$moduleUrls[name] = subst;\n};\nvar loader = function (moduleName, cb) {\n if (moduleName === \"ace/theme/textmate\" || moduleName === \"./theme/textmate\")\n return cb(null, require(\"./theme/textmate\"));\n if (customLoader)\n return customLoader(moduleName, cb);\n console.error(\"loader is not configured\");\n};\nvar customLoader;\nexports.setLoader = function (cb) {\n customLoader = cb;\n};\nexports.dynamicModules = Object.create(null);\nexports.$loading = {};\nexports.$loaded = {};\nexports.loadModule = function (moduleName, onLoad) {\n var loadedModule, moduleType;\n if (Array.isArray(moduleName)) {\n moduleType = moduleName[0];\n moduleName = moduleName[1];\n }\n var load = function (module) {\n if (module && !exports.$loading[moduleName])\n return onLoad && onLoad(module);\n if (!exports.$loading[moduleName])\n exports.$loading[moduleName] = [];\n exports.$loading[moduleName].push(onLoad);\n if (exports.$loading[moduleName].length > 1)\n return;\n var afterLoad = function () {\n loader(moduleName, function (err, module) {\n if (module)\n exports.$loaded[moduleName] = module;\n exports._emit(\"load.module\", { name: moduleName, module: module });\n var listeners = exports.$loading[moduleName];\n exports.$loading[moduleName] = null;\n listeners.forEach(function (onLoad) {\n onLoad && onLoad(module);\n });\n });\n };\n if (!exports.get(\"packaged\"))\n return afterLoad();\n net.loadScript(exports.moduleUrl(moduleName, moduleType), afterLoad);\n reportErrorIfPathIsNotConfigured();\n };\n if (exports.dynamicModules[moduleName]) {\n exports.dynamicModules[moduleName]().then(function (module) {\n if (module.default) {\n load(module.default);\n }\n else {\n load(module);\n }\n });\n }\n else {\n try {\n loadedModule = this.$require(moduleName);\n }\n catch (e) { }\n load(loadedModule || exports.$loaded[moduleName]);\n }\n};\nexports.$require = function (moduleName) {\n if (typeof module.require == \"function\") {\n var req = \"require\";\n return module[req](moduleName);\n }\n};\nexports.setModuleLoader = function (moduleName, onLoad) {\n exports.dynamicModules[moduleName] = onLoad;\n};\nvar reportErrorIfPathIsNotConfigured = function () {\n if (!options.basePath && !options.workerPath\n && !options.modePath && !options.themePath\n && !Object.keys(options.$moduleUrls).length) {\n console.error(\"Unable to infer path to ace from script src,\", \"use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes\", \"or with webpack use ace/webpack-resolver\");\n reportErrorIfPathIsNotConfigured = function () { };\n }\n};\nexports.version = \"1.32.0\";\n\n});\n\nace.define(\"ace/loader_build\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/config\"], function(require, exports, module) {\n\"use strict\";\n\nrequire(\"./lib/fixoldbrowsers\");\nvar config = require(\"./config\");\nconfig.setLoader(function(moduleName, cb) {\n require([moduleName], function(module) {\n cb(null, module);\n });\n});\n\nvar global = (function() {\n return this || typeof window != \"undefined\" && window;\n})();\n\nmodule.exports = function(ace) {\n config.init = init;\n config.$require = require;\n ace.require = require;\n\n if (typeof define === \"function\")\n ace.define = define;\n};\ninit(true);function init(packaged) {\n\n if (!global || !global.document)\n return;\n \n config.set(\"packaged\", packaged || require.packaged || module.packaged || (global.define && define.packaged));\n\n var scriptOptions = {};\n var scriptUrl = \"\";\n var currentScript = (document.currentScript || document._currentScript ); // native or polyfill\n var currentDocument = currentScript && currentScript.ownerDocument || document;\n \n if (currentScript && currentScript.src) {\n scriptUrl = currentScript.src.split(/[?#]/)[0].split(\"/\").slice(0, -1).join(\"/\") || \"\";\n }\n \n var scripts = currentDocument.getElementsByTagName(\"script\");\n for (var i=0; i [\" + this.end.row + \"/\" + this.end.column + \"]\");\n };\n Range.prototype.contains = function (row, column) {\n return this.compare(row, column) == 0;\n };\n Range.prototype.compareRange = function (range) {\n var cmp, end = range.end, start = range.start;\n cmp = this.compare(end.row, end.column);\n if (cmp == 1) {\n cmp = this.compare(start.row, start.column);\n if (cmp == 1) {\n return 2;\n }\n else if (cmp == 0) {\n return 1;\n }\n else {\n return 0;\n }\n }\n else if (cmp == -1) {\n return -2;\n }\n else {\n cmp = this.compare(start.row, start.column);\n if (cmp == -1) {\n return -1;\n }\n else if (cmp == 1) {\n return 42;\n }\n else {\n return 0;\n }\n }\n };\n Range.prototype.comparePoint = function (p) {\n return this.compare(p.row, p.column);\n };\n Range.prototype.containsRange = function (range) {\n return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;\n };\n Range.prototype.intersects = function (range) {\n var cmp = this.compareRange(range);\n return (cmp == -1 || cmp == 0 || cmp == 1);\n };\n Range.prototype.isEnd = function (row, column) {\n return this.end.row == row && this.end.column == column;\n };\n Range.prototype.isStart = function (row, column) {\n return this.start.row == row && this.start.column == column;\n };\n Range.prototype.setStart = function (row, column) {\n if (typeof row == \"object\") {\n this.start.column = row.column;\n this.start.row = row.row;\n }\n else {\n this.start.row = row;\n this.start.column = column;\n }\n };\n Range.prototype.setEnd = function (row, column) {\n if (typeof row == \"object\") {\n this.end.column = row.column;\n this.end.row = row.row;\n }\n else {\n this.end.row = row;\n this.end.column = column;\n }\n };\n Range.prototype.inside = function (row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column) || this.isStart(row, column)) {\n return false;\n }\n else {\n return true;\n }\n }\n return false;\n };\n Range.prototype.insideStart = function (row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column)) {\n return false;\n }\n else {\n return true;\n }\n }\n return false;\n };\n Range.prototype.insideEnd = function (row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isStart(row, column)) {\n return false;\n }\n else {\n return true;\n }\n }\n return false;\n };\n Range.prototype.compare = function (row, column) {\n if (!this.isMultiLine()) {\n if (row === this.start.row) {\n return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);\n }\n }\n if (row < this.start.row)\n return -1;\n if (row > this.end.row)\n return 1;\n if (this.start.row === row)\n return column >= this.start.column ? 0 : -1;\n if (this.end.row === row)\n return column <= this.end.column ? 0 : 1;\n return 0;\n };\n Range.prototype.compareStart = function (row, column) {\n if (this.start.row == row && this.start.column == column) {\n return -1;\n }\n else {\n return this.compare(row, column);\n }\n };\n Range.prototype.compareEnd = function (row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n }\n else {\n return this.compare(row, column);\n }\n };\n Range.prototype.compareInside = function (row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n }\n else if (this.start.row == row && this.start.column == column) {\n return -1;\n }\n else {\n return this.compare(row, column);\n }\n };\n Range.prototype.clipRows = function (firstRow, lastRow) {\n if (this.end.row > lastRow)\n var end = { row: lastRow + 1, column: 0 };\n else if (this.end.row < firstRow)\n var end = { row: firstRow, column: 0 };\n if (this.start.row > lastRow)\n var start = { row: lastRow + 1, column: 0 };\n else if (this.start.row < firstRow)\n var start = { row: firstRow, column: 0 };\n return Range.fromPoints(start || this.start, end || this.end);\n };\n Range.prototype.extend = function (row, column) {\n var cmp = this.compare(row, column);\n if (cmp == 0)\n return this;\n else if (cmp == -1)\n var start = { row: row, column: column };\n else\n var end = { row: row, column: column };\n return Range.fromPoints(start || this.start, end || this.end);\n };\n Range.prototype.isEmpty = function () {\n return (this.start.row === this.end.row && this.start.column === this.end.column);\n };\n Range.prototype.isMultiLine = function () {\n return (this.start.row !== this.end.row);\n };\n Range.prototype.clone = function () {\n return Range.fromPoints(this.start, this.end);\n };\n Range.prototype.collapseRows = function () {\n if (this.end.column == 0)\n return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row - 1), 0);\n else\n return new Range(this.start.row, 0, this.end.row, 0);\n };\n Range.prototype.toScreenRange = function (session) {\n var screenPosStart = session.documentToScreenPosition(this.start);\n var screenPosEnd = session.documentToScreenPosition(this.end);\n return new Range(screenPosStart.row, screenPosStart.column, screenPosEnd.row, screenPosEnd.column);\n };\n Range.prototype.moveBy = function (row, column) {\n this.start.row += row;\n this.start.column += column;\n this.end.row += row;\n this.end.column += column;\n };\n return Range;\n}());\nRange.fromPoints = function (start, end) {\n return new Range(start.row, start.column, end.row, end.column);\n};\nRange.comparePoints = comparePoints;\nRange.comparePoints = function (p1, p2) {\n return p1.row - p2.row || p1.column - p2.column;\n};\nexports.Range = Range;\n\n});\n\nace.define(\"ace/lib/keys\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\"], function(require, exports, module){/*! @license\n==========================================================================\nSproutCore -- JavaScript Application Framework\ncopyright 2006-2009, Sprout Systems Inc., Apple Inc. and contributors.\n\nPermission is hereby granted, free of charge, to any person obtaining a\ncopy of this software and associated documentation files (the \"Software\"),\nto deal in the Software without restriction, including without limitation\nthe rights to use, copy, modify, merge, publish, distribute, sublicense,\nand/or sell copies of the Software, and to permit persons to whom the\nSoftware is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\nDEALINGS IN THE SOFTWARE.\n\nSproutCore and the SproutCore logo are trademarks of Sprout Systems, Inc.\n\nFor more information about SproutCore, visit http://www.sproutcore.com\n\n\n==========================================================================\n@license */\n\"use strict\";\nvar oop = require(\"./oop\");\nvar Keys = (function () {\n var ret = {\n MODIFIER_KEYS: {\n 16: 'Shift', 17: 'Ctrl', 18: 'Alt', 224: 'Meta',\n 91: 'MetaLeft', 92: 'MetaRight', 93: 'ContextMenu'\n },\n KEY_MODS: {\n \"ctrl\": 1, \"alt\": 2, \"option\": 2, \"shift\": 4,\n \"super\": 8, \"meta\": 8, \"command\": 8, \"cmd\": 8,\n \"control\": 1\n },\n FUNCTION_KEYS: {\n 8: \"Backspace\",\n 9: \"Tab\",\n 13: \"Return\",\n 19: \"Pause\",\n 27: \"Esc\",\n 32: \"Space\",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"Left\",\n 38: \"Up\",\n 39: \"Right\",\n 40: \"Down\",\n 44: \"Print\",\n 45: \"Insert\",\n 46: \"Delete\",\n 96: \"Numpad0\",\n 97: \"Numpad1\",\n 98: \"Numpad2\",\n 99: \"Numpad3\",\n 100: \"Numpad4\",\n 101: \"Numpad5\",\n 102: \"Numpad6\",\n 103: \"Numpad7\",\n 104: \"Numpad8\",\n 105: \"Numpad9\",\n '-13': \"NumpadEnter\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"Numlock\",\n 145: \"Scrolllock\"\n },\n PRINTABLE_KEYS: {\n 32: ' ', 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5',\n 54: '6', 55: '7', 56: '8', 57: '9', 59: ';', 61: '=', 65: 'a',\n 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h',\n 73: 'i', 74: 'j', 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o',\n 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't', 85: 'u', 86: 'v',\n 87: 'w', 88: 'x', 89: 'y', 90: 'z', 107: '+', 109: '-', 110: '.',\n 186: ';', 187: '=', 188: ',', 189: '-', 190: '.', 191: '/', 192: '`',\n 219: '[', 220: '\\\\', 221: ']', 222: \"'\", 111: '/', 106: '*'\n }\n };\n ret.PRINTABLE_KEYS[173] = '-';\n var name, i;\n for (i in ret.FUNCTION_KEYS) {\n name = ret.FUNCTION_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n for (i in ret.PRINTABLE_KEYS) {\n name = ret.PRINTABLE_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n oop.mixin(ret, ret.MODIFIER_KEYS);\n oop.mixin(ret, ret.PRINTABLE_KEYS);\n oop.mixin(ret, ret.FUNCTION_KEYS);\n ret.enter = ret[\"return\"];\n ret.escape = ret.esc;\n ret.del = ret[\"delete\"];\n (function () {\n var mods = [\"cmd\", \"ctrl\", \"alt\", \"shift\"];\n for (var i = Math.pow(2, mods.length); i--;) {\n ret.KEY_MODS[i] = mods.filter(function (x) {\n return i & ret.KEY_MODS[x];\n }).join(\"-\") + \"-\";\n }\n })();\n ret.KEY_MODS[0] = \"\";\n ret.KEY_MODS[-1] = \"input-\";\n return ret;\n})();\noop.mixin(exports, Keys);\nexports.default = exports;\nexports.keyCodeToString = function (keyCode) {\n var keyString = Keys[keyCode];\n if (typeof keyString != \"string\")\n keyString = String.fromCharCode(keyCode);\n return keyString.toLowerCase();\n};\n\n});\n\nace.define(\"ace/lib/event\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar keys = require(\"./keys\");\nvar useragent = require(\"./useragent\");\nvar pressedKeys = null;\nvar ts = 0;\nvar activeListenerOptions;\nfunction detectListenerOptionsSupport() {\n activeListenerOptions = false;\n try {\n document.createComment(\"\").addEventListener(\"test\", function () { }, {\n get passive() {\n activeListenerOptions = { passive: false };\n }\n });\n }\n catch (e) { }\n}\nfunction getListenerOptions() {\n if (activeListenerOptions == undefined)\n detectListenerOptionsSupport();\n return activeListenerOptions;\n}\nfunction EventListener(elem, type, callback) {\n this.elem = elem;\n this.type = type;\n this.callback = callback;\n}\nEventListener.prototype.destroy = function () {\n removeListener(this.elem, this.type, this.callback);\n this.elem = this.type = this.callback = undefined;\n};\nvar addListener = exports.addListener = function (elem, type, callback, destroyer) {\n elem.addEventListener(type, callback, getListenerOptions());\n if (destroyer)\n destroyer.$toDestroy.push(new EventListener(elem, type, callback));\n};\nvar removeListener = exports.removeListener = function (elem, type, callback) {\n elem.removeEventListener(type, callback, getListenerOptions());\n};\nexports.stopEvent = function (e) {\n exports.stopPropagation(e);\n exports.preventDefault(e);\n return false;\n};\nexports.stopPropagation = function (e) {\n if (e.stopPropagation)\n e.stopPropagation();\n};\nexports.preventDefault = function (e) {\n if (e.preventDefault)\n e.preventDefault();\n};\nexports.getButton = function (e) {\n if (e.type == \"dblclick\")\n return 0;\n if (e.type == \"contextmenu\" || (useragent.isMac && (e.ctrlKey && !e.altKey && !e.shiftKey)))\n return 2;\n return e.button;\n};\nexports.capture = function (el, eventHandler, releaseCaptureHandler) {\n var ownerDocument = el && el.ownerDocument || document;\n function onMouseUp(e) {\n eventHandler && eventHandler(e);\n releaseCaptureHandler && releaseCaptureHandler(e);\n removeListener(ownerDocument, \"mousemove\", eventHandler);\n removeListener(ownerDocument, \"mouseup\", onMouseUp);\n removeListener(ownerDocument, \"dragstart\", onMouseUp);\n }\n addListener(ownerDocument, \"mousemove\", eventHandler);\n addListener(ownerDocument, \"mouseup\", onMouseUp);\n addListener(ownerDocument, \"dragstart\", onMouseUp);\n return onMouseUp;\n};\nexports.addMouseWheelListener = function (el, callback, destroyer) {\n addListener(el, \"wheel\", function (e) {\n var factor = 0.15;\n var deltaX = e.deltaX || 0;\n var deltaY = e.deltaY || 0;\n switch (e.deltaMode) {\n case e.DOM_DELTA_PIXEL:\n e.wheelX = deltaX * factor;\n e.wheelY = deltaY * factor;\n break;\n case e.DOM_DELTA_LINE:\n var linePixels = 15;\n e.wheelX = deltaX * linePixels;\n e.wheelY = deltaY * linePixels;\n break;\n case e.DOM_DELTA_PAGE:\n var pagePixels = 150;\n e.wheelX = deltaX * pagePixels;\n e.wheelY = deltaY * pagePixels;\n break;\n }\n callback(e);\n }, destroyer);\n};\nexports.addMultiMouseDownListener = function (elements, timeouts, eventHandler, callbackName, destroyer) {\n var clicks = 0;\n var startX, startY, timer;\n var eventNames = {\n 2: \"dblclick\",\n 3: \"tripleclick\",\n 4: \"quadclick\"\n };\n function onMousedown(e) {\n if (exports.getButton(e) !== 0) {\n clicks = 0;\n }\n else if (e.detail > 1) {\n clicks++;\n if (clicks > 4)\n clicks = 1;\n }\n else {\n clicks = 1;\n }\n if (useragent.isIE) {\n var isNewClick = Math.abs(e.clientX - startX) > 5 || Math.abs(e.clientY - startY) > 5;\n if (!timer || isNewClick)\n clicks = 1;\n if (timer)\n clearTimeout(timer);\n timer = setTimeout(function () { timer = null; }, timeouts[clicks - 1] || 600);\n if (clicks == 1) {\n startX = e.clientX;\n startY = e.clientY;\n }\n }\n e._clicks = clicks;\n eventHandler[callbackName](\"mousedown\", e);\n if (clicks > 4)\n clicks = 0;\n else if (clicks > 1)\n return eventHandler[callbackName](eventNames[clicks], e);\n }\n if (!Array.isArray(elements))\n elements = [elements];\n elements.forEach(function (el) {\n addListener(el, \"mousedown\", onMousedown, destroyer);\n });\n};\nvar getModifierHash = function (e) {\n return 0 | (e.ctrlKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.metaKey ? 8 : 0);\n};\nexports.getModifierString = function (e) {\n return keys.KEY_MODS[getModifierHash(e)];\n};\nfunction normalizeCommandKeys(callback, e, keyCode) {\n var hashId = getModifierHash(e);\n if (!useragent.isMac && pressedKeys) {\n if (e.getModifierState && (e.getModifierState(\"OS\") || e.getModifierState(\"Win\")))\n hashId |= 8;\n if (pressedKeys.altGr) {\n if ((3 & hashId) != 3)\n pressedKeys.altGr = 0;\n else\n return;\n }\n if (keyCode === 18 || keyCode === 17) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (keyCode === 17 && location === 1) {\n if (pressedKeys[keyCode] == 1)\n ts = e.timeStamp;\n }\n else if (keyCode === 18 && hashId === 3 && location === 2) {\n var dt = e.timeStamp - ts;\n if (dt < 50)\n pressedKeys.altGr = true;\n }\n }\n }\n if (keyCode in keys.MODIFIER_KEYS) {\n keyCode = -1;\n }\n if (!hashId && keyCode === 13) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (location === 3) {\n callback(e, hashId, -keyCode);\n if (e.defaultPrevented)\n return;\n }\n }\n if (useragent.isChromeOS && hashId & 8) {\n callback(e, hashId, keyCode);\n if (e.defaultPrevented)\n return;\n else\n hashId &= ~8;\n }\n if (!hashId && !(keyCode in keys.FUNCTION_KEYS) && !(keyCode in keys.PRINTABLE_KEYS)) {\n return false;\n }\n return callback(e, hashId, keyCode);\n}\nexports.addCommandKeyListener = function (el, callback, destroyer) {\n if (useragent.isOldGecko || (useragent.isOpera && !(\"KeyboardEvent\" in window))) {\n var lastKeyDownKeyCode = null;\n addListener(el, \"keydown\", function (e) {\n lastKeyDownKeyCode = e.keyCode;\n }, destroyer);\n addListener(el, \"keypress\", function (e) {\n return normalizeCommandKeys(callback, e, lastKeyDownKeyCode);\n }, destroyer);\n }\n else {\n var lastDefaultPrevented = null;\n addListener(el, \"keydown\", function (e) {\n pressedKeys[e.keyCode] = (pressedKeys[e.keyCode] || 0) + 1;\n var result = normalizeCommandKeys(callback, e, e.keyCode);\n lastDefaultPrevented = e.defaultPrevented;\n return result;\n }, destroyer);\n addListener(el, \"keypress\", function (e) {\n if (lastDefaultPrevented && (e.ctrlKey || e.altKey || e.shiftKey || e.metaKey)) {\n exports.stopEvent(e);\n lastDefaultPrevented = null;\n }\n }, destroyer);\n addListener(el, \"keyup\", function (e) {\n pressedKeys[e.keyCode] = null;\n }, destroyer);\n if (!pressedKeys) {\n resetPressedKeys();\n addListener(window, \"focus\", resetPressedKeys);\n }\n }\n};\nfunction resetPressedKeys() {\n pressedKeys = Object.create(null);\n}\nif (typeof window == \"object\" && window.postMessage && !useragent.isOldIE) {\n var postMessageId = 1;\n exports.nextTick = function (callback, win) {\n win = win || window;\n var messageName = \"zero-timeout-message-\" + (postMessageId++);\n var listener = function (e) {\n if (e.data == messageName) {\n exports.stopPropagation(e);\n removeListener(win, \"message\", listener);\n callback();\n }\n };\n addListener(win, \"message\", listener);\n win.postMessage(messageName, \"*\");\n };\n}\nexports.$idleBlocked = false;\nexports.onIdle = function (cb, timeout) {\n return setTimeout(function handler() {\n if (!exports.$idleBlocked) {\n cb();\n }\n else {\n setTimeout(handler, 100);\n }\n }, timeout);\n};\nexports.$idleBlockId = null;\nexports.blockIdle = function (delay) {\n if (exports.$idleBlockId)\n clearTimeout(exports.$idleBlockId);\n exports.$idleBlocked = true;\n exports.$idleBlockId = setTimeout(function () {\n exports.$idleBlocked = false;\n }, delay || 100);\n};\nexports.nextFrame = typeof window == \"object\" && (window.requestAnimationFrame\n || window.mozRequestAnimationFrame\n || window.webkitRequestAnimationFrame\n || window.msRequestAnimationFrame\n || window.oRequestAnimationFrame);\nif (exports.nextFrame)\n exports.nextFrame = exports.nextFrame.bind(window);\nelse\n exports.nextFrame = function (callback) {\n setTimeout(callback, 17);\n };\n\n});\n\nace.define(\"ace/clipboard\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar $cancelT;\nmodule.exports = {\n lineMode: false,\n pasteCancelled: function () {\n if ($cancelT && $cancelT > Date.now() - 50)\n return true;\n return $cancelT = false;\n },\n cancel: function () {\n $cancelT = Date.now();\n }\n};\n\n});\n\nace.define(\"ace/keyboard/textinput\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/config\",\"ace/lib/useragent\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/clipboard\",\"ace/lib/keys\"], function(require, exports, module){\"use strict\";\nvar event = require(\"../lib/event\");\nvar nls = require(\"../config\").nls;\nvar useragent = require(\"../lib/useragent\");\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar clipboard = require(\"../clipboard\");\nvar BROKEN_SETDATA = useragent.isChrome < 18;\nvar USE_IE_MIME_TYPE = useragent.isIE;\nvar HAS_FOCUS_ARGS = useragent.isChrome > 63;\nvar MAX_LINE_LENGTH = 400;\nvar KEYS = require(\"../lib/keys\");\nvar MODS = KEYS.KEY_MODS;\nvar isIOS = useragent.isIOS;\nvar valueResetRegex = isIOS ? /\\s/ : /\\n/;\nvar isMobile = useragent.isMobile;\nvar TextInput = function (parentNode, host) {\n var text = dom.createElement(\"textarea\");\n text.className = \"ace_text-input\";\n text.setAttribute(\"wrap\", \"off\");\n text.setAttribute(\"autocorrect\", \"off\");\n text.setAttribute(\"autocapitalize\", \"off\");\n text.setAttribute(\"spellcheck\", false);\n text.style.opacity = \"0\";\n parentNode.insertBefore(text, parentNode.firstChild);\n var copied = false;\n var pasted = false;\n var inComposition = false;\n var sendingText = false;\n var tempStyle = '';\n if (!isMobile)\n text.style.fontSize = \"1px\";\n var commandMode = false;\n var ignoreFocusEvents = false;\n var lastValue = \"\";\n var lastSelectionStart = 0;\n var lastSelectionEnd = 0;\n var lastRestoreEnd = 0;\n var rowStart = Number.MAX_SAFE_INTEGER;\n var rowEnd = Number.MIN_SAFE_INTEGER;\n var numberOfExtraLines = 0;\n try {\n var isFocused = document.activeElement === text;\n }\n catch (e) { }\n this.setNumberOfExtraLines = function (number) {\n rowStart = Number.MAX_SAFE_INTEGER;\n rowEnd = Number.MIN_SAFE_INTEGER;\n if (number < 0) {\n numberOfExtraLines = 0;\n return;\n }\n numberOfExtraLines = number;\n };\n this.setAriaOptions = function (options) {\n if (options.activeDescendant) {\n text.setAttribute(\"aria-haspopup\", \"true\");\n text.setAttribute(\"aria-autocomplete\", options.inline ? \"both\" : \"list\");\n text.setAttribute(\"aria-activedescendant\", options.activeDescendant);\n }\n else {\n text.setAttribute(\"aria-haspopup\", \"false\");\n text.setAttribute(\"aria-autocomplete\", \"both\");\n text.removeAttribute(\"aria-activedescendant\");\n }\n if (options.role) {\n text.setAttribute(\"role\", options.role);\n }\n if (options.setLabel) {\n text.setAttribute(\"aria-roledescription\", nls(\"editor\"));\n if (host.session) {\n var row = host.session.selection.cursor.row;\n text.setAttribute(\"aria-label\", nls(\"Cursor at row $0\", [row + 1]));\n }\n }\n };\n this.setAriaOptions({ role: \"textbox\" });\n event.addListener(text, \"blur\", function (e) {\n if (ignoreFocusEvents)\n return;\n host.onBlur(e);\n isFocused = false;\n }, host);\n event.addListener(text, \"focus\", function (e) {\n if (ignoreFocusEvents)\n return;\n isFocused = true;\n if (useragent.isEdge) {\n try {\n if (!document.hasFocus())\n return;\n }\n catch (e) { }\n }\n host.onFocus(e);\n if (useragent.isEdge)\n setTimeout(resetSelection);\n else\n resetSelection();\n }, host);\n this.$focusScroll = false;\n this.focus = function () {\n this.setAriaOptions({\n setLabel: host.renderer.enableKeyboardAccessibility\n });\n if (tempStyle || HAS_FOCUS_ARGS || this.$focusScroll == \"browser\")\n return text.focus({ preventScroll: true });\n var top = text.style.top;\n text.style.position = \"fixed\";\n text.style.top = \"0px\";\n try {\n var isTransformed = text.getBoundingClientRect().top != 0;\n }\n catch (e) {\n return;\n }\n var ancestors = [];\n if (isTransformed) {\n var t = text.parentElement;\n while (t && t.nodeType == 1) {\n ancestors.push(t);\n t.setAttribute(\"ace_nocontext\", true);\n if (!t.parentElement && t.getRootNode)\n t = t.getRootNode().host;\n else\n t = t.parentElement;\n }\n }\n text.focus({ preventScroll: true });\n if (isTransformed) {\n ancestors.forEach(function (p) {\n p.removeAttribute(\"ace_nocontext\");\n });\n }\n setTimeout(function () {\n text.style.position = \"\";\n if (text.style.top == \"0px\")\n text.style.top = top;\n }, 0);\n };\n this.blur = function () {\n text.blur();\n };\n this.isFocused = function () {\n return isFocused;\n };\n host.on(\"beforeEndOperation\", function () {\n var curOp = host.curOp;\n var commandName = curOp && curOp.command && curOp.command.name;\n if (commandName == \"insertstring\")\n return;\n var isUserAction = commandName && (curOp.docChanged || curOp.selectionChanged);\n if (inComposition && isUserAction) {\n lastValue = text.value = \"\";\n onCompositionEnd();\n }\n resetSelection();\n });\n var positionToSelection = function (row, column) {\n var selection = column;\n for (var i = 1; i <= row - rowStart && i < 2 * numberOfExtraLines + 1; i++) {\n selection += host.session.getLine(row - i).length + 1;\n }\n return selection;\n };\n var resetSelection = isIOS\n ? function (value) {\n if (!isFocused || (copied && !value) || sendingText)\n return;\n if (!value)\n value = \"\";\n var newValue = \"\\n ab\" + value + \"cde fg\\n\";\n if (newValue != text.value)\n text.value = lastValue = newValue;\n var selectionStart = 4;\n var selectionEnd = 4 + (value.length || (host.selection.isEmpty() ? 0 : 1));\n if (lastSelectionStart != selectionStart || lastSelectionEnd != selectionEnd) {\n text.setSelectionRange(selectionStart, selectionEnd);\n }\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n }\n : function () {\n if (inComposition || sendingText)\n return;\n if (!isFocused && !afterContextMenu)\n return;\n inComposition = true;\n var selectionStart = 0;\n var selectionEnd = 0;\n var line = \"\";\n if (host.session) {\n var selection = host.selection;\n var range = selection.getRange();\n var row = selection.cursor.row;\n if (row === rowEnd + 1) {\n rowStart = rowEnd + 1;\n rowEnd = rowStart + 2 * numberOfExtraLines;\n }\n else if (row === rowStart - 1) {\n rowEnd = rowStart - 1;\n rowStart = rowEnd - 2 * numberOfExtraLines;\n }\n else if (row < rowStart - 1 || row > rowEnd + 1) {\n rowStart = row > numberOfExtraLines ? row - numberOfExtraLines : 0;\n rowEnd = row > numberOfExtraLines ? row + numberOfExtraLines : 2 * numberOfExtraLines;\n }\n var lines = [];\n for (var i = rowStart; i <= rowEnd; i++) {\n lines.push(host.session.getLine(i));\n }\n line = lines.join('\\n');\n selectionStart = positionToSelection(range.start.row, range.start.column);\n selectionEnd = positionToSelection(range.end.row, range.end.column);\n if (range.start.row < rowStart) {\n var prevLine = host.session.getLine(rowStart - 1);\n selectionStart = range.start.row < rowStart - 1 ? 0 : selectionStart;\n selectionEnd += prevLine.length + 1;\n line = prevLine + \"\\n\" + line;\n }\n else if (range.end.row > rowEnd) {\n var nextLine = host.session.getLine(rowEnd + 1);\n selectionEnd = range.end.row > rowEnd + 1 ? nextLine.length : range.end.column;\n selectionEnd += line.length + 1;\n line = line + \"\\n\" + nextLine;\n }\n else if (isMobile && row > 0) {\n line = \"\\n\" + line;\n selectionEnd += 1;\n selectionStart += 1;\n }\n if (line.length > MAX_LINE_LENGTH) {\n if (selectionStart < MAX_LINE_LENGTH && selectionEnd < MAX_LINE_LENGTH) {\n line = line.slice(0, MAX_LINE_LENGTH);\n }\n else {\n line = \"\\n\";\n if (selectionStart == selectionEnd) {\n selectionStart = selectionEnd = 0;\n }\n else {\n selectionStart = 0;\n selectionEnd = 1;\n }\n }\n }\n var newValue = line + \"\\n\\n\";\n if (newValue != lastValue) {\n text.value = lastValue = newValue;\n lastSelectionStart = lastSelectionEnd = newValue.length;\n }\n }\n if (afterContextMenu) {\n lastSelectionStart = text.selectionStart;\n lastSelectionEnd = text.selectionEnd;\n }\n if (lastSelectionEnd != selectionEnd\n || lastSelectionStart != selectionStart\n || text.selectionEnd != lastSelectionEnd // on ie edge selectionEnd changes silently after the initialization\n ) {\n try {\n text.setSelectionRange(selectionStart, selectionEnd);\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n }\n catch (e) { }\n }\n inComposition = false;\n };\n this.resetSelection = resetSelection;\n if (isFocused)\n host.onFocus();\n var isAllSelected = function (text) {\n return text.selectionStart === 0 && text.selectionEnd >= lastValue.length\n && text.value === lastValue && lastValue\n && text.selectionEnd !== lastSelectionEnd;\n };\n var onSelect = function (e) {\n if (inComposition)\n return;\n if (copied) {\n copied = false;\n }\n else if (isAllSelected(text)) {\n host.selectAll();\n resetSelection();\n }\n else if (isMobile && text.selectionStart != lastSelectionStart) {\n resetSelection();\n }\n };\n var inputHandler = null;\n this.setInputHandler = function (cb) { inputHandler = cb; };\n this.getInputHandler = function () { return inputHandler; };\n var afterContextMenu = false;\n var sendText = function (value, fromInput) {\n if (afterContextMenu)\n afterContextMenu = false;\n if (pasted) {\n resetSelection();\n if (value)\n host.onPaste(value);\n pasted = false;\n return \"\";\n }\n else {\n var selectionStart = text.selectionStart;\n var selectionEnd = text.selectionEnd;\n var extendLeft = lastSelectionStart;\n var extendRight = lastValue.length - lastSelectionEnd;\n var inserted = value;\n var restoreStart = value.length - selectionStart;\n var restoreEnd = value.length - selectionEnd;\n var i = 0;\n while (extendLeft > 0 && lastValue[i] == value[i]) {\n i++;\n extendLeft--;\n }\n inserted = inserted.slice(i);\n i = 1;\n while (extendRight > 0 && lastValue.length - i > lastSelectionStart - 1 && lastValue[lastValue.length - i] == value[value.length - i]) {\n i++;\n extendRight--;\n }\n restoreStart -= i - 1;\n restoreEnd -= i - 1;\n var endIndex = inserted.length - i + 1;\n if (endIndex < 0) {\n extendLeft = -endIndex;\n endIndex = 0;\n }\n inserted = inserted.slice(0, endIndex);\n if (!fromInput && !inserted && !restoreStart && !extendLeft && !extendRight && !restoreEnd)\n return \"\";\n sendingText = true;\n var shouldReset = false;\n if (useragent.isAndroid && inserted == \". \") {\n inserted = \" \";\n shouldReset = true;\n }\n if (inserted && !extendLeft && !extendRight && !restoreStart && !restoreEnd || commandMode) {\n host.onTextInput(inserted);\n }\n else {\n host.onTextInput(inserted, {\n extendLeft: extendLeft,\n extendRight: extendRight,\n restoreStart: restoreStart,\n restoreEnd: restoreEnd\n });\n }\n sendingText = false;\n lastValue = value;\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n lastRestoreEnd = restoreEnd;\n return shouldReset ? \"\\n\" : inserted;\n }\n };\n var onInput = function (e) {\n if (inComposition)\n return onCompositionUpdate();\n if (e && e.inputType) {\n if (e.inputType == \"historyUndo\")\n return host.execCommand(\"undo\");\n if (e.inputType == \"historyRedo\")\n return host.execCommand(\"redo\");\n }\n var data = text.value;\n var inserted = sendText(data, true);\n if (data.length > MAX_LINE_LENGTH + 100\n || valueResetRegex.test(inserted)\n || isMobile && lastSelectionStart < 1 && lastSelectionStart == lastSelectionEnd) {\n resetSelection();\n }\n };\n var handleClipboardData = function (e, data, forceIEMime) {\n var clipboardData = e.clipboardData || window.clipboardData;\n if (!clipboardData || BROKEN_SETDATA)\n return;\n var mime = USE_IE_MIME_TYPE || forceIEMime ? \"Text\" : \"text/plain\";\n try {\n if (data) {\n return clipboardData.setData(mime, data) !== false;\n }\n else {\n return clipboardData.getData(mime);\n }\n }\n catch (e) {\n if (!forceIEMime)\n return handleClipboardData(e, data, true);\n }\n };\n var doCopy = function (e, isCut) {\n var data = host.getCopyText();\n if (!data)\n return event.preventDefault(e);\n if (handleClipboardData(e, data)) {\n if (isIOS) {\n resetSelection(data);\n copied = data;\n setTimeout(function () {\n copied = false;\n }, 10);\n }\n isCut ? host.onCut() : host.onCopy();\n event.preventDefault(e);\n }\n else {\n copied = true;\n text.value = data;\n text.select();\n setTimeout(function () {\n copied = false;\n resetSelection();\n isCut ? host.onCut() : host.onCopy();\n });\n }\n };\n var onCut = function (e) {\n doCopy(e, true);\n };\n var onCopy = function (e) {\n doCopy(e, false);\n };\n var onPaste = function (e) {\n var data = handleClipboardData(e);\n if (clipboard.pasteCancelled())\n return;\n if (typeof data == \"string\") {\n if (data)\n host.onPaste(data, e);\n if (useragent.isIE)\n setTimeout(resetSelection);\n event.preventDefault(e);\n }\n else {\n text.value = \"\";\n pasted = true;\n }\n };\n event.addCommandKeyListener(text, host.onCommandKey.bind(host), host);\n event.addListener(text, \"select\", onSelect, host);\n event.addListener(text, \"input\", onInput, host);\n event.addListener(text, \"cut\", onCut, host);\n event.addListener(text, \"copy\", onCopy, host);\n event.addListener(text, \"paste\", onPaste, host);\n if (!('oncut' in text) || !('oncopy' in text) || !('onpaste' in text)) {\n event.addListener(parentNode, \"keydown\", function (e) {\n if ((useragent.isMac && !e.metaKey) || !e.ctrlKey)\n return;\n switch (e.keyCode) {\n case 67:\n onCopy(e);\n break;\n case 86:\n onPaste(e);\n break;\n case 88:\n onCut(e);\n break;\n }\n }, host);\n }\n var onCompositionStart = function (e) {\n if (inComposition || !host.onCompositionStart || host.$readOnly)\n return;\n inComposition = {};\n if (commandMode)\n return;\n if (e.data)\n inComposition.useTextareaForIME = false;\n setTimeout(onCompositionUpdate, 0);\n host._signal(\"compositionStart\");\n host.on(\"mousedown\", cancelComposition);\n var range = host.getSelectionRange();\n range.end.row = range.start.row;\n range.end.column = range.start.column;\n inComposition.markerRange = range;\n inComposition.selectionStart = lastSelectionStart;\n host.onCompositionStart(inComposition);\n if (inComposition.useTextareaForIME) {\n lastValue = text.value = \"\";\n lastSelectionStart = 0;\n lastSelectionEnd = 0;\n }\n else {\n if (text.msGetInputContext)\n inComposition.context = text.msGetInputContext();\n if (text.getInputContext)\n inComposition.context = text.getInputContext();\n }\n };\n var onCompositionUpdate = function () {\n if (!inComposition || !host.onCompositionUpdate || host.$readOnly)\n return;\n if (commandMode)\n return cancelComposition();\n if (inComposition.useTextareaForIME) {\n host.onCompositionUpdate(text.value);\n }\n else {\n var data = text.value;\n sendText(data);\n if (inComposition.markerRange) {\n if (inComposition.context) {\n inComposition.markerRange.start.column = inComposition.selectionStart\n = inComposition.context.compositionStartOffset;\n }\n inComposition.markerRange.end.column = inComposition.markerRange.start.column\n + lastSelectionEnd - inComposition.selectionStart + lastRestoreEnd;\n }\n }\n };\n var onCompositionEnd = function (e) {\n if (!host.onCompositionEnd || host.$readOnly)\n return;\n inComposition = false;\n host.onCompositionEnd();\n host.off(\"mousedown\", cancelComposition);\n if (e)\n onInput();\n };\n function cancelComposition() {\n ignoreFocusEvents = true;\n text.blur();\n text.focus();\n ignoreFocusEvents = false;\n }\n var syncComposition = lang.delayedCall(onCompositionUpdate, 50).schedule.bind(null, null);\n function onKeyup(e) {\n if (e.keyCode == 27 && text.value.length < text.selectionStart) {\n if (!inComposition)\n lastValue = text.value;\n lastSelectionStart = lastSelectionEnd = -1;\n resetSelection();\n }\n syncComposition();\n }\n event.addListener(text, \"compositionstart\", onCompositionStart, host);\n event.addListener(text, \"compositionupdate\", onCompositionUpdate, host);\n event.addListener(text, \"keyup\", onKeyup, host);\n event.addListener(text, \"keydown\", syncComposition, host);\n event.addListener(text, \"compositionend\", onCompositionEnd, host);\n this.getElement = function () {\n return text;\n };\n this.setCommandMode = function (value) {\n commandMode = value;\n text.readOnly = false;\n };\n this.setReadOnly = function (readOnly) {\n if (!commandMode)\n text.readOnly = readOnly;\n };\n this.setCopyWithEmptySelection = function (value) {\n };\n this.onContextMenu = function (e) {\n afterContextMenu = true;\n resetSelection();\n host._emit(\"nativecontextmenu\", { target: host, domEvent: e });\n this.moveToMouse(e, true);\n };\n this.moveToMouse = function (e, bringToFront) {\n if (!tempStyle)\n tempStyle = text.style.cssText;\n text.style.cssText = (bringToFront ? \"z-index:100000;\" : \"\")\n + (useragent.isIE ? \"opacity:0.1;\" : \"\")\n + \"text-indent: -\" + (lastSelectionStart + lastSelectionEnd) * host.renderer.characterWidth * 0.5 + \"px;\";\n var rect = host.container.getBoundingClientRect();\n var style = dom.computedStyle(host.container);\n var top = rect.top + (parseInt(style.borderTopWidth) || 0);\n var left = rect.left + (parseInt(rect.borderLeftWidth) || 0);\n var maxTop = rect.bottom - top - text.clientHeight - 2;\n var move = function (e) {\n dom.translate(text, e.clientX - left - 2, Math.min(e.clientY - top - 2, maxTop));\n };\n move(e);\n if (e.type != \"mousedown\")\n return;\n host.renderer.$isMousePressed = true;\n clearTimeout(closeTimeout);\n if (useragent.isWin)\n event.capture(host.container, move, onContextMenuClose);\n };\n this.onContextMenuClose = onContextMenuClose;\n var closeTimeout;\n function onContextMenuClose() {\n clearTimeout(closeTimeout);\n closeTimeout = setTimeout(function () {\n if (tempStyle) {\n text.style.cssText = tempStyle;\n tempStyle = '';\n }\n host.renderer.$isMousePressed = false;\n if (host.renderer.$keepTextAreaAtCursor)\n host.renderer.$moveTextAreaToCursor();\n }, 0);\n }\n var onContextMenu = function (e) {\n host.textInput.onContextMenu(e);\n onContextMenuClose();\n };\n event.addListener(text, \"mouseup\", onContextMenu, host);\n event.addListener(text, \"mousedown\", function (e) {\n e.preventDefault();\n onContextMenuClose();\n }, host);\n event.addListener(host.renderer.scroller, \"contextmenu\", onContextMenu, host);\n event.addListener(text, \"contextmenu\", onContextMenu, host);\n if (isIOS)\n addIosSelectionHandler(parentNode, host, text);\n function addIosSelectionHandler(parentNode, host, text) {\n var typingResetTimeout = null;\n var typing = false;\n text.addEventListener(\"keydown\", function (e) {\n if (typingResetTimeout)\n clearTimeout(typingResetTimeout);\n typing = true;\n }, true);\n text.addEventListener(\"keyup\", function (e) {\n typingResetTimeout = setTimeout(function () {\n typing = false;\n }, 100);\n }, true);\n var detectArrowKeys = function (e) {\n if (document.activeElement !== text)\n return;\n if (typing || inComposition || host.$mouseHandler.isMousePressed)\n return;\n if (copied) {\n return;\n }\n var selectionStart = text.selectionStart;\n var selectionEnd = text.selectionEnd;\n var key = null;\n var modifier = 0;\n if (selectionStart == 0) {\n key = KEYS.up;\n }\n else if (selectionStart == 1) {\n key = KEYS.home;\n }\n else if (selectionEnd > lastSelectionEnd && lastValue[selectionEnd] == \"\\n\") {\n key = KEYS.end;\n }\n else if (selectionStart < lastSelectionStart && lastValue[selectionStart - 1] == \" \") {\n key = KEYS.left;\n modifier = MODS.option;\n }\n else if (selectionStart < lastSelectionStart\n || (selectionStart == lastSelectionStart\n && lastSelectionEnd != lastSelectionStart\n && selectionStart == selectionEnd)) {\n key = KEYS.left;\n }\n else if (selectionEnd > lastSelectionEnd && lastValue.slice(0, selectionEnd).split(\"\\n\").length > 2) {\n key = KEYS.down;\n }\n else if (selectionEnd > lastSelectionEnd && lastValue[selectionEnd - 1] == \" \") {\n key = KEYS.right;\n modifier = MODS.option;\n }\n else if (selectionEnd > lastSelectionEnd\n || (selectionEnd == lastSelectionEnd\n && lastSelectionEnd != lastSelectionStart\n && selectionStart == selectionEnd)) {\n key = KEYS.right;\n }\n if (selectionStart !== selectionEnd)\n modifier |= MODS.shift;\n if (key) {\n var result = host.onCommandKey({}, modifier, key);\n if (!result && host.commands) {\n key = KEYS.keyCodeToString(key);\n var command = host.commands.findKeyCommand(modifier, key);\n if (command)\n host.execCommand(command);\n }\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n resetSelection(\"\");\n }\n };\n document.addEventListener(\"selectionchange\", detectArrowKeys);\n host.on(\"destroy\", function () {\n document.removeEventListener(\"selectionchange\", detectArrowKeys);\n });\n }\n this.destroy = function () {\n if (text.parentElement)\n text.parentElement.removeChild(text);\n };\n};\nexports.TextInput = TextInput;\nexports.$setUserAgentForTests = function (_isMobile, _isIOS) {\n isMobile = _isMobile;\n isIOS = _isIOS;\n};\n\n});\n\nace.define(\"ace/mouse/default_handlers\",[\"require\",\"exports\",\"module\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar useragent = require(\"../lib/useragent\");\nvar DRAG_OFFSET = 0; // pixels\nvar SCROLL_COOLDOWN_T = 550; // milliseconds\nvar DefaultHandlers = /** @class */ (function () {\n function DefaultHandlers(mouseHandler) {\n mouseHandler.$clickSelection = null;\n var editor = mouseHandler.editor;\n editor.setDefaultHandler(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n editor.setDefaultHandler(\"dblclick\", this.onDoubleClick.bind(mouseHandler));\n editor.setDefaultHandler(\"tripleclick\", this.onTripleClick.bind(mouseHandler));\n editor.setDefaultHandler(\"quadclick\", this.onQuadClick.bind(mouseHandler));\n editor.setDefaultHandler(\"mousewheel\", this.onMouseWheel.bind(mouseHandler));\n var exports = [\"select\", \"startSelect\", \"selectEnd\", \"selectAllEnd\", \"selectByWordsEnd\",\n \"selectByLinesEnd\", \"dragWait\", \"dragWaitEnd\", \"focusWait\"];\n exports.forEach(function (x) {\n mouseHandler[x] = this[x];\n }, this);\n mouseHandler.selectByLines = this.extendSelectionBy.bind(mouseHandler, \"getLineRange\");\n mouseHandler.selectByWords = this.extendSelectionBy.bind(mouseHandler, \"getWordRange\");\n }\n DefaultHandlers.prototype.onMouseDown = function (ev) {\n var inSelection = ev.inSelection();\n var pos = ev.getDocumentPosition();\n this.mousedownEvent = ev;\n var editor = this.editor;\n var button = ev.getButton();\n if (button !== 0) {\n var selectionRange = editor.getSelectionRange();\n var selectionEmpty = selectionRange.isEmpty();\n if (selectionEmpty || button == 1)\n editor.selection.moveToPosition(pos);\n if (button == 2) {\n editor.textInput.onContextMenu(ev.domEvent);\n if (!useragent.isMozilla)\n ev.preventDefault();\n }\n return;\n }\n this.mousedownEvent.time = Date.now();\n if (inSelection && !editor.isFocused()) {\n editor.focus();\n if (this.$focusTimeout && !this.$clickSelection && !editor.inMultiSelectMode) {\n this.setState(\"focusWait\");\n this.captureMouse(ev);\n return;\n }\n }\n this.captureMouse(ev);\n this.startSelect(pos, ev.domEvent._clicks > 1);\n return ev.preventDefault();\n };\n DefaultHandlers.prototype.startSelect = function (pos, waitForClickSelection) {\n pos = pos || this.editor.renderer.screenToTextCoordinates(this.x, this.y);\n var editor = this.editor;\n if (!this.mousedownEvent)\n return;\n if (this.mousedownEvent.getShiftKey())\n editor.selection.selectToPosition(pos);\n else if (!waitForClickSelection)\n editor.selection.moveToPosition(pos);\n if (!waitForClickSelection)\n this.select();\n editor.setStyle(\"ace_selecting\");\n this.setState(\"select\");\n };\n DefaultHandlers.prototype.select = function () {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n if (this.$clickSelection) {\n var cmp = this.$clickSelection.comparePoint(cursor);\n if (cmp == -1) {\n anchor = this.$clickSelection.end;\n }\n else if (cmp == 1) {\n anchor = this.$clickSelection.start;\n }\n else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n };\n DefaultHandlers.prototype.extendSelectionBy = function (unitName) {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n var range = editor.selection[unitName](cursor.row, cursor.column);\n if (this.$clickSelection) {\n var cmpStart = this.$clickSelection.comparePoint(range.start);\n var cmpEnd = this.$clickSelection.comparePoint(range.end);\n if (cmpStart == -1 && cmpEnd <= 0) {\n anchor = this.$clickSelection.end;\n if (range.end.row != cursor.row || range.end.column != cursor.column)\n cursor = range.start;\n }\n else if (cmpEnd == 1 && cmpStart >= 0) {\n anchor = this.$clickSelection.start;\n if (range.start.row != cursor.row || range.start.column != cursor.column)\n cursor = range.end;\n }\n else if (cmpStart == -1 && cmpEnd == 1) {\n cursor = range.end;\n anchor = range.start;\n }\n else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n };\n DefaultHandlers.prototype.selectByLinesEnd = function () {\n this.$clickSelection = null;\n this.editor.unsetStyle(\"ace_selecting\");\n };\n DefaultHandlers.prototype.focusWait = function () {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n var time = Date.now();\n if (distance > DRAG_OFFSET || time - this.mousedownEvent.time > this.$focusTimeout)\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n };\n DefaultHandlers.prototype.onDoubleClick = function (ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n var session = editor.session;\n var range = session.getBracketRange(pos);\n if (range) {\n if (range.isEmpty()) {\n range.start.column--;\n range.end.column++;\n }\n this.setState(\"select\");\n }\n else {\n range = editor.selection.getWordRange(pos.row, pos.column);\n this.setState(\"selectByWords\");\n }\n this.$clickSelection = range;\n this.select();\n };\n DefaultHandlers.prototype.onTripleClick = function (ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n this.setState(\"selectByLines\");\n var range = editor.getSelectionRange();\n if (range.isMultiLine() && range.contains(pos.row, pos.column)) {\n this.$clickSelection = editor.selection.getLineRange(range.start.row);\n this.$clickSelection.end = editor.selection.getLineRange(range.end.row).end;\n }\n else {\n this.$clickSelection = editor.selection.getLineRange(pos.row);\n }\n this.select();\n };\n DefaultHandlers.prototype.onQuadClick = function (ev) {\n var editor = this.editor;\n editor.selectAll();\n this.$clickSelection = editor.getSelectionRange();\n this.setState(\"selectAll\");\n };\n DefaultHandlers.prototype.onMouseWheel = function (ev) {\n if (ev.getAccelKey())\n return;\n if (ev.getShiftKey() && ev.wheelY && !ev.wheelX) {\n ev.wheelX = ev.wheelY;\n ev.wheelY = 0;\n }\n var editor = this.editor;\n if (!this.$lastScroll)\n this.$lastScroll = { t: 0, vx: 0, vy: 0, allowed: 0 };\n var prevScroll = this.$lastScroll;\n var t = ev.domEvent.timeStamp;\n var dt = t - prevScroll.t;\n var vx = dt ? ev.wheelX / dt : prevScroll.vx;\n var vy = dt ? ev.wheelY / dt : prevScroll.vy;\n if (dt < SCROLL_COOLDOWN_T) {\n vx = (vx + prevScroll.vx) / 2;\n vy = (vy + prevScroll.vy) / 2;\n }\n var direction = Math.abs(vx / vy);\n var canScroll = false;\n if (direction >= 1 && editor.renderer.isScrollableBy(ev.wheelX * ev.speed, 0))\n canScroll = true;\n if (direction <= 1 && editor.renderer.isScrollableBy(0, ev.wheelY * ev.speed))\n canScroll = true;\n if (canScroll) {\n prevScroll.allowed = t;\n }\n else if (t - prevScroll.allowed < SCROLL_COOLDOWN_T) {\n var isSlower = Math.abs(vx) <= 1.5 * Math.abs(prevScroll.vx)\n && Math.abs(vy) <= 1.5 * Math.abs(prevScroll.vy);\n if (isSlower) {\n canScroll = true;\n prevScroll.allowed = t;\n }\n else {\n prevScroll.allowed = 0;\n }\n }\n prevScroll.t = t;\n prevScroll.vx = vx;\n prevScroll.vy = vy;\n if (canScroll) {\n editor.renderer.scrollBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed);\n return ev.stop();\n }\n };\n return DefaultHandlers;\n}());\nDefaultHandlers.prototype.selectEnd = DefaultHandlers.prototype.selectByLinesEnd;\nDefaultHandlers.prototype.selectAllEnd = DefaultHandlers.prototype.selectByLinesEnd;\nDefaultHandlers.prototype.selectByWordsEnd = DefaultHandlers.prototype.selectByLinesEnd;\nexports.DefaultHandlers = DefaultHandlers;\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\nfunction calcRangeOrientation(range, cursor) {\n if (range.start.row == range.end.row)\n var cmp = 2 * cursor.column - range.start.column - range.end.column;\n else if (range.start.row == range.end.row - 1 && !range.start.column && !range.end.column)\n var cmp = cursor.column - 4;\n else\n var cmp = 2 * cursor.row - range.start.row - range.end.row;\n if (cmp < 0)\n return { cursor: range.start, anchor: range.end };\n else\n return { cursor: range.end, anchor: range.start };\n}\n\n});\n\nace.define(\"ace/tooltip\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar dom = require(\"./lib/dom\");\nvar event = require(\"./lib/event\");\nvar Range = require(\"./range\").Range;\nvar CLASSNAME = \"ace_tooltip\";\nvar Tooltip = /** @class */ (function () {\n function Tooltip(parentNode) {\n this.isOpen = false;\n this.$element = null;\n this.$parentNode = parentNode;\n }\n Tooltip.prototype.$init = function () {\n this.$element = dom.createElement(\"div\");\n this.$element.className = CLASSNAME;\n this.$element.style.display = \"none\";\n this.$parentNode.appendChild(this.$element);\n return this.$element;\n };\n Tooltip.prototype.getElement = function () {\n return this.$element || this.$init();\n };\n Tooltip.prototype.setText = function (text) {\n this.getElement().textContent = text;\n };\n Tooltip.prototype.setHtml = function (html) {\n this.getElement().innerHTML = html;\n };\n Tooltip.prototype.setPosition = function (x, y) {\n this.getElement().style.left = x + \"px\";\n this.getElement().style.top = y + \"px\";\n };\n Tooltip.prototype.setClassName = function (className) {\n dom.addCssClass(this.getElement(), className);\n };\n Tooltip.prototype.setTheme = function (theme) {\n this.$element.className = CLASSNAME + \" \" +\n (theme.isDark ? \"ace_dark \" : \"\") + (theme.cssClass || \"\");\n };\n Tooltip.prototype.show = function (text, x, y) {\n if (text != null)\n this.setText(text);\n if (x != null && y != null)\n this.setPosition(x, y);\n if (!this.isOpen) {\n this.getElement().style.display = \"block\";\n this.isOpen = true;\n }\n };\n Tooltip.prototype.hide = function () {\n if (this.isOpen) {\n this.getElement().style.display = \"none\";\n this.getElement().className = CLASSNAME;\n this.isOpen = false;\n }\n };\n Tooltip.prototype.getHeight = function () {\n return this.getElement().offsetHeight;\n };\n Tooltip.prototype.getWidth = function () {\n return this.getElement().offsetWidth;\n };\n Tooltip.prototype.destroy = function () {\n this.isOpen = false;\n if (this.$element && this.$element.parentNode) {\n this.$element.parentNode.removeChild(this.$element);\n }\n };\n return Tooltip;\n}());\nvar PopupManager = /** @class */ (function () {\n function PopupManager() {\n this.popups = [];\n }\n PopupManager.prototype.addPopup = function (popup) {\n this.popups.push(popup);\n this.updatePopups();\n };\n PopupManager.prototype.removePopup = function (popup) {\n var index = this.popups.indexOf(popup);\n if (index !== -1) {\n this.popups.splice(index, 1);\n this.updatePopups();\n }\n };\n PopupManager.prototype.updatePopups = function () {\n var e_1, _a, e_2, _b;\n this.popups.sort(function (a, b) { return b.priority - a.priority; });\n var visiblepopups = [];\n try {\n for (var _c = __values(this.popups), _d = _c.next(); !_d.done; _d = _c.next()) {\n var popup = _d.value;\n var shouldDisplay = true;\n try {\n for (var visiblepopups_1 = (e_2 = void 0, __values(visiblepopups)), visiblepopups_1_1 = visiblepopups_1.next(); !visiblepopups_1_1.done; visiblepopups_1_1 = visiblepopups_1.next()) {\n var visiblePopup = visiblepopups_1_1.value;\n if (this.doPopupsOverlap(visiblePopup, popup)) {\n shouldDisplay = false;\n break;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (visiblepopups_1_1 && !visiblepopups_1_1.done && (_b = visiblepopups_1.return)) _b.call(visiblepopups_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n if (shouldDisplay) {\n visiblepopups.push(popup);\n }\n else {\n popup.hide();\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n PopupManager.prototype.doPopupsOverlap = function (popupA, popupB) {\n var rectA = popupA.getElement().getBoundingClientRect();\n var rectB = popupB.getElement().getBoundingClientRect();\n return (rectA.left < rectB.right && rectA.right > rectB.left && rectA.top < rectB.bottom && rectA.bottom\n > rectB.top);\n };\n return PopupManager;\n}());\nvar popupManager = new PopupManager();\nexports.popupManager = popupManager;\nexports.Tooltip = Tooltip;\nvar HoverTooltip = /** @class */ (function (_super) {\n __extends(HoverTooltip, _super);\n function HoverTooltip(parentNode) {\n if (parentNode === void 0) { parentNode = document.body; }\n var _this = _super.call(this, parentNode) || this;\n _this.timeout = undefined;\n _this.lastT = 0;\n _this.idleTime = 350;\n _this.lastEvent = undefined;\n _this.onMouseOut = _this.onMouseOut.bind(_this);\n _this.onMouseMove = _this.onMouseMove.bind(_this);\n _this.waitForHover = _this.waitForHover.bind(_this);\n _this.hide = _this.hide.bind(_this);\n var el = _this.getElement();\n el.style.whiteSpace = \"pre-wrap\";\n el.style.pointerEvents = \"auto\";\n el.addEventListener(\"mouseout\", _this.onMouseOut);\n el.tabIndex = -1;\n el.addEventListener(\"blur\", function () {\n if (!el.contains(document.activeElement))\n this.hide();\n }.bind(_this));\n el.addEventListener(\"wheel\", event.stopPropagation);\n return _this;\n }\n HoverTooltip.prototype.addToEditor = function (editor) {\n editor.on(\"mousemove\", this.onMouseMove);\n editor.on(\"mousedown\", this.hide);\n editor.renderer.getMouseEventTarget().addEventListener(\"mouseout\", this.onMouseOut, true);\n };\n HoverTooltip.prototype.removeFromEditor = function (editor) {\n editor.off(\"mousemove\", this.onMouseMove);\n editor.off(\"mousedown\", this.hide);\n editor.renderer.getMouseEventTarget().removeEventListener(\"mouseout\", this.onMouseOut, true);\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n };\n HoverTooltip.prototype.onMouseMove = function (e, editor) {\n this.lastEvent = e;\n this.lastT = Date.now();\n var isMousePressed = editor.$mouseHandler.isMousePressed;\n if (this.isOpen) {\n var pos = this.lastEvent && this.lastEvent.getDocumentPosition();\n if (!this.range\n || !this.range.contains(pos.row, pos.column)\n || isMousePressed\n || this.isOutsideOfText(this.lastEvent)) {\n this.hide();\n }\n }\n if (this.timeout || isMousePressed)\n return;\n this.lastEvent = e;\n this.timeout = setTimeout(this.waitForHover, this.idleTime);\n };\n HoverTooltip.prototype.waitForHover = function () {\n if (this.timeout)\n clearTimeout(this.timeout);\n var dt = Date.now() - this.lastT;\n if (this.idleTime - dt > 10) {\n this.timeout = setTimeout(this.waitForHover, this.idleTime - dt);\n return;\n }\n this.timeout = null;\n if (this.lastEvent && !this.isOutsideOfText(this.lastEvent)) {\n this.$gatherData(this.lastEvent, this.lastEvent.editor);\n }\n };\n HoverTooltip.prototype.isOutsideOfText = function (e) {\n var editor = e.editor;\n var docPos = e.getDocumentPosition();\n var line = editor.session.getLine(docPos.row);\n if (docPos.column == line.length) {\n var screenPos = editor.renderer.pixelToScreenCoordinates(e.clientX, e.clientY);\n var clippedPos = editor.session.documentToScreenPosition(docPos.row, docPos.column);\n if (clippedPos.column != screenPos.column\n || clippedPos.row != screenPos.row) {\n return true;\n }\n }\n return false;\n };\n HoverTooltip.prototype.setDataProvider = function (value) {\n this.$gatherData = value;\n };\n HoverTooltip.prototype.showForRange = function (editor, range, domNode, startingEvent) {\n var MARGIN = 10;\n if (startingEvent && startingEvent != this.lastEvent)\n return;\n if (this.isOpen && document.activeElement == this.getElement())\n return;\n var renderer = editor.renderer;\n if (!this.isOpen) {\n popupManager.addPopup(this);\n this.$registerCloseEvents();\n this.setTheme(renderer.theme);\n }\n this.isOpen = true;\n this.addMarker(range, editor.session);\n this.range = Range.fromPoints(range.start, range.end);\n var position = renderer.textToScreenCoordinates(range.start.row, range.start.column);\n var rect = renderer.scroller.getBoundingClientRect();\n if (position.pageX < rect.left)\n position.pageX = rect.left;\n var element = this.getElement();\n element.innerHTML = \"\";\n element.appendChild(domNode);\n element.style.maxHeight = \"\";\n element.style.display = \"block\";\n var labelHeight = element.clientHeight;\n var labelWidth = element.clientWidth;\n var spaceBelow = window.innerHeight - position.pageY - renderer.lineHeight;\n var isAbove = true;\n if (position.pageY - labelHeight < 0 && position.pageY < spaceBelow) {\n isAbove = false;\n }\n element.style.maxHeight = (isAbove ? position.pageY : spaceBelow) - MARGIN + \"px\";\n element.style.top = isAbove ? \"\" : position.pageY + renderer.lineHeight + \"px\";\n element.style.bottom = isAbove ? window.innerHeight - position.pageY + \"px\" : \"\";\n element.style.left = Math.min(position.pageX, window.innerWidth - labelWidth - MARGIN) + \"px\";\n };\n HoverTooltip.prototype.addMarker = function (range, session) {\n if (this.marker) {\n this.$markerSession.removeMarker(this.marker);\n }\n this.$markerSession = session;\n this.marker = session && session.addMarker(range, \"ace_highlight-marker\", \"text\");\n };\n HoverTooltip.prototype.hide = function (e) {\n if (!e && document.activeElement == this.getElement())\n return;\n if (e && e.target && (e.type != \"keydown\" || e.ctrlKey || e.metaKey) && this.$element.contains(e.target))\n return;\n this.lastEvent = null;\n if (this.timeout)\n clearTimeout(this.timeout);\n this.timeout = null;\n this.addMarker(null);\n if (this.isOpen) {\n this.$removeCloseEvents();\n this.getElement().style.display = \"none\";\n this.isOpen = false;\n popupManager.removePopup(this);\n }\n };\n HoverTooltip.prototype.$registerCloseEvents = function () {\n window.addEventListener(\"keydown\", this.hide, true);\n window.addEventListener(\"wheel\", this.hide, true);\n window.addEventListener(\"mousedown\", this.hide, true);\n };\n HoverTooltip.prototype.$removeCloseEvents = function () {\n window.removeEventListener(\"keydown\", this.hide, true);\n window.removeEventListener(\"wheel\", this.hide, true);\n window.removeEventListener(\"mousedown\", this.hide, true);\n };\n HoverTooltip.prototype.onMouseOut = function (e) {\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n this.lastEvent = null;\n if (!this.isOpen)\n return;\n if (!e.relatedTarget || this.getElement().contains(e.relatedTarget))\n return;\n if (e && e.currentTarget.contains(e.relatedTarget))\n return;\n if (!e.relatedTarget.classList.contains(\"ace_content\"))\n this.hide();\n };\n return HoverTooltip;\n}(Tooltip));\nexports.HoverTooltip = HoverTooltip;\n\n});\n\nace.define(\"ace/mouse/default_gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/tooltip\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar dom = require(\"../lib/dom\");\nvar event = require(\"../lib/event\");\nvar Tooltip = require(\"../tooltip\").Tooltip;\nvar nls = require(\"../config\").nls;\nfunction GutterHandler(mouseHandler) {\n var editor = mouseHandler.editor;\n var gutter = editor.renderer.$gutterLayer;\n var tooltip = new GutterTooltip(editor);\n mouseHandler.editor.setDefaultHandler(\"guttermousedown\", function (e) {\n if (!editor.isFocused() || e.getButton() != 0)\n return;\n var gutterRegion = gutter.getRegion(e);\n if (gutterRegion == \"foldWidgets\")\n return;\n var row = e.getDocumentPosition().row;\n var selection = editor.session.selection;\n if (e.getShiftKey())\n selection.selectTo(row, 0);\n else {\n if (e.domEvent.detail == 2) {\n editor.selectAll();\n return e.preventDefault();\n }\n mouseHandler.$clickSelection = editor.selection.getLineRange(row);\n }\n mouseHandler.setState(\"selectByLines\");\n mouseHandler.captureMouse(e);\n return e.preventDefault();\n });\n var tooltipTimeout, mouseEvent;\n function showTooltip() {\n var row = mouseEvent.getDocumentPosition().row;\n var maxRow = editor.session.getLength();\n if (row == maxRow) {\n var screenRow = editor.renderer.pixelToScreenCoordinates(0, mouseEvent.y).row;\n var pos = mouseEvent.$pos;\n if (screenRow > editor.session.documentToScreenRow(pos.row, pos.column))\n return hideTooltip();\n }\n tooltip.showTooltip(row);\n if (!tooltip.isOpen)\n return;\n editor.on(\"mousewheel\", hideTooltip);\n if (mouseHandler.$tooltipFollowsMouse) {\n moveTooltip(mouseEvent);\n }\n else {\n var gutterRow = mouseEvent.getGutterRow();\n var gutterCell = gutter.$lines.get(gutterRow);\n if (gutterCell) {\n var gutterElement = gutterCell.element.querySelector(\".ace_gutter_annotation\");\n var rect = gutterElement.getBoundingClientRect();\n var style = tooltip.getElement().style;\n style.left = rect.right + \"px\";\n style.top = rect.bottom + \"px\";\n }\n else {\n moveTooltip(mouseEvent);\n }\n }\n }\n function hideTooltip() {\n if (tooltipTimeout)\n tooltipTimeout = clearTimeout(tooltipTimeout);\n if (tooltip.isOpen) {\n tooltip.hideTooltip();\n editor.off(\"mousewheel\", hideTooltip);\n }\n }\n function moveTooltip(e) {\n tooltip.setPosition(e.x, e.y);\n }\n mouseHandler.editor.setDefaultHandler(\"guttermousemove\", function (e) {\n var target = e.domEvent.target || e.domEvent.srcElement;\n if (dom.hasCssClass(target, \"ace_fold-widget\"))\n return hideTooltip();\n if (tooltip.isOpen && mouseHandler.$tooltipFollowsMouse)\n moveTooltip(e);\n mouseEvent = e;\n if (tooltipTimeout)\n return;\n tooltipTimeout = setTimeout(function () {\n tooltipTimeout = null;\n if (mouseEvent && !mouseHandler.isMousePressed)\n showTooltip();\n else\n hideTooltip();\n }, 50);\n });\n event.addListener(editor.renderer.$gutter, \"mouseout\", function (e) {\n mouseEvent = null;\n if (!tooltip.isOpen || tooltipTimeout)\n return;\n tooltipTimeout = setTimeout(function () {\n tooltipTimeout = null;\n hideTooltip();\n }, 50);\n }, editor);\n editor.on(\"changeSession\", hideTooltip);\n editor.on(\"input\", hideTooltip);\n}\nexports.GutterHandler = GutterHandler;\nvar GutterTooltip = /** @class */ (function (_super) {\n __extends(GutterTooltip, _super);\n function GutterTooltip(editor) {\n var _this = _super.call(this, editor.container) || this;\n _this.editor = editor;\n return _this;\n }\n GutterTooltip.prototype.setPosition = function (x, y) {\n var windowWidth = window.innerWidth || document.documentElement.clientWidth;\n var windowHeight = window.innerHeight || document.documentElement.clientHeight;\n var width = this.getWidth();\n var height = this.getHeight();\n x += 15;\n y += 15;\n if (x + width > windowWidth) {\n x -= (x + width) - windowWidth;\n }\n if (y + height > windowHeight) {\n y -= 20 + height;\n }\n Tooltip.prototype.setPosition.call(this, x, y);\n };\n Object.defineProperty(GutterTooltip, \"annotationLabels\", {\n get: function () {\n return {\n error: { singular: nls(\"error\"), plural: nls(\"errors\") },\n warning: { singular: nls(\"warning\"), plural: nls(\"warnings\") },\n info: { singular: nls(\"information message\"), plural: nls(\"information messages\") }\n };\n },\n enumerable: false,\n configurable: true\n });\n GutterTooltip.prototype.showTooltip = function (row) {\n var gutter = this.editor.renderer.$gutterLayer;\n var annotationsInRow = gutter.$annotations[row];\n var annotation;\n if (annotationsInRow)\n annotation = { text: Array.from(annotationsInRow.text), type: Array.from(annotationsInRow.type) };\n else\n annotation = { text: [], type: [] };\n var fold = gutter.session.getFoldLine(row);\n if (fold && gutter.$showFoldedAnnotations) {\n var annotationsInFold = { error: [], warning: [], info: [] };\n var mostSevereAnnotationInFoldType;\n for (var i = row + 1; i <= fold.end.row; i++) {\n if (!gutter.$annotations[i])\n continue;\n for (var j = 0; j < gutter.$annotations[i].text.length; j++) {\n var annotationType = gutter.$annotations[i].type[j];\n annotationsInFold[annotationType].push(gutter.$annotations[i].text[j]);\n if (annotationType === \"error\") {\n mostSevereAnnotationInFoldType = \"error_fold\";\n continue;\n }\n if (annotationType === \"warning\") {\n mostSevereAnnotationInFoldType = \"warning_fold\";\n continue;\n }\n }\n }\n if (mostSevereAnnotationInFoldType === \"error_fold\" || mostSevereAnnotationInFoldType === \"warning_fold\") {\n var summaryFoldedAnnotations = \"\".concat(GutterTooltip.annotationsToSummaryString(annotationsInFold), \" in folded code.\");\n annotation.text.push(summaryFoldedAnnotations);\n annotation.type.push(mostSevereAnnotationInFoldType);\n }\n }\n if (annotation.text.length === 0)\n return this.hide();\n var annotationMessages = { error: [], warning: [], info: [] };\n var iconClassName = gutter.$useSvgGutterIcons ? \"ace_icon_svg\" : \"ace_icon\";\n for (var i = 0; i < annotation.text.length; i++) {\n var line = \" \").concat(annotation.text[i]);\n annotationMessages[annotation.type[i].replace(\"_fold\", \"\")].push(line);\n }\n var tooltipContent = [].concat(annotationMessages.error, annotationMessages.warning, annotationMessages.info).join(\"
    \");\n this.setHtml(tooltipContent);\n this.$element.setAttribute(\"aria-live\", \"polite\");\n if (!this.isOpen) {\n this.setTheme(this.editor.renderer.theme);\n this.setClassName(\"ace_gutter-tooltip\");\n }\n this.show();\n this.editor._signal(\"showGutterTooltip\", this);\n };\n GutterTooltip.prototype.hideTooltip = function () {\n this.$element.removeAttribute(\"aria-live\");\n this.hide();\n this.editor._signal(\"hideGutterTooltip\", this);\n };\n GutterTooltip.annotationsToSummaryString = function (annotations) {\n var e_1, _a;\n var summary = [];\n var annotationTypes = ['error', 'warning', 'info'];\n try {\n for (var annotationTypes_1 = __values(annotationTypes), annotationTypes_1_1 = annotationTypes_1.next(); !annotationTypes_1_1.done; annotationTypes_1_1 = annotationTypes_1.next()) {\n var annotationType = annotationTypes_1_1.value;\n if (!annotations[annotationType].length)\n continue;\n var label = annotations[annotationType].length === 1 ? GutterTooltip.annotationLabels[annotationType].singular : GutterTooltip.annotationLabels[annotationType].plural;\n summary.push(\"\".concat(annotations[annotationType].length, \" \").concat(label));\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (annotationTypes_1_1 && !annotationTypes_1_1.done && (_a = annotationTypes_1.return)) _a.call(annotationTypes_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return summary.join(\", \");\n };\n return GutterTooltip;\n}(Tooltip));\nexports.GutterTooltip = GutterTooltip;\n\n});\n\nace.define(\"ace/mouse/mouse_event\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar MouseEvent = /** @class */ (function () {\n function MouseEvent(domEvent, editor) {\n this.domEvent = domEvent;\n this.editor = editor;\n this.x = this.clientX = domEvent.clientX;\n this.y = this.clientY = domEvent.clientY;\n this.$pos = null;\n this.$inSelection = null;\n this.propagationStopped = false;\n this.defaultPrevented = false;\n }\n MouseEvent.prototype.stopPropagation = function () {\n event.stopPropagation(this.domEvent);\n this.propagationStopped = true;\n };\n MouseEvent.prototype.preventDefault = function () {\n event.preventDefault(this.domEvent);\n this.defaultPrevented = true;\n };\n MouseEvent.prototype.stop = function () {\n this.stopPropagation();\n this.preventDefault();\n };\n MouseEvent.prototype.getDocumentPosition = function () {\n if (this.$pos)\n return this.$pos;\n this.$pos = this.editor.renderer.screenToTextCoordinates(this.clientX, this.clientY);\n return this.$pos;\n };\n MouseEvent.prototype.getGutterRow = function () {\n var documentRow = this.getDocumentPosition().row;\n var screenRow = this.editor.session.documentToScreenRow(documentRow, 0);\n var screenTopRow = this.editor.session.documentToScreenRow(this.editor.renderer.$gutterLayer.$lines.get(0).row, 0);\n return screenRow - screenTopRow;\n };\n MouseEvent.prototype.inSelection = function () {\n if (this.$inSelection !== null)\n return this.$inSelection;\n var editor = this.editor;\n var selectionRange = editor.getSelectionRange();\n if (selectionRange.isEmpty())\n this.$inSelection = false;\n else {\n var pos = this.getDocumentPosition();\n this.$inSelection = selectionRange.contains(pos.row, pos.column);\n }\n return this.$inSelection;\n };\n MouseEvent.prototype.getButton = function () {\n return event.getButton(this.domEvent);\n };\n MouseEvent.prototype.getShiftKey = function () {\n return this.domEvent.shiftKey;\n };\n MouseEvent.prototype.getAccelKey = function () {\n return useragent.isMac ? this.domEvent.metaKey : this.domEvent.ctrlKey;\n };\n return MouseEvent;\n}());\nexports.MouseEvent = MouseEvent;\n\n});\n\nace.define(\"ace/mouse/dragdrop_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar AUTOSCROLL_DELAY = 200;\nvar SCROLL_CURSOR_DELAY = 200;\nvar SCROLL_CURSOR_HYSTERESIS = 5;\nfunction DragdropHandler(mouseHandler) {\n var editor = mouseHandler.editor;\n var dragImage = dom.createElement(\"div\");\n dragImage.style.cssText = \"top:-100px;position:absolute;z-index:2147483647;opacity:0.5\";\n dragImage.textContent = \"\\xa0\";\n var exports = [\"dragWait\", \"dragWaitEnd\", \"startDrag\", \"dragReadyEnd\", \"onMouseDrag\"];\n exports.forEach(function (x) {\n mouseHandler[x] = this[x];\n }, this);\n editor.on(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n var mouseTarget = editor.container;\n var dragSelectionMarker, x, y;\n var timerId, range;\n var dragCursor, counter = 0;\n var dragOperation;\n var isInternal;\n var autoScrollStartTime;\n var cursorMovedTime;\n var cursorPointOnCaretMoved;\n this.onDragStart = function (e) {\n if (this.cancelDrag || !mouseTarget.draggable) {\n var self = this;\n setTimeout(function () {\n self.startSelect();\n self.captureMouse(e);\n }, 0);\n return e.preventDefault();\n }\n range = editor.getSelectionRange();\n var dataTransfer = e.dataTransfer;\n dataTransfer.effectAllowed = editor.getReadOnly() ? \"copy\" : \"copyMove\";\n editor.container.appendChild(dragImage);\n dataTransfer.setDragImage && dataTransfer.setDragImage(dragImage, 0, 0);\n setTimeout(function () {\n editor.container.removeChild(dragImage);\n });\n dataTransfer.clearData();\n dataTransfer.setData(\"Text\", editor.session.getTextRange());\n isInternal = true;\n this.setState(\"drag\");\n };\n this.onDragEnd = function (e) {\n mouseTarget.draggable = false;\n isInternal = false;\n this.setState(null);\n if (!editor.getReadOnly()) {\n var dropEffect = e.dataTransfer.dropEffect;\n if (!dragOperation && dropEffect == \"move\")\n editor.session.remove(editor.getSelectionRange());\n editor.$resetCursorStyle();\n }\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n };\n this.onDragEnter = function (e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker)\n addDragMarker();\n counter++;\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n this.onDragOver = function (e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker) {\n addDragMarker();\n counter++;\n }\n if (onMouseMoveTimer !== null)\n onMouseMoveTimer = null;\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n this.onDragLeave = function (e) {\n counter--;\n if (counter <= 0 && dragSelectionMarker) {\n clearDragMarker();\n dragOperation = null;\n return event.preventDefault(e);\n }\n };\n this.onDrop = function (e) {\n if (!dragCursor)\n return;\n var dataTransfer = e.dataTransfer;\n if (isInternal) {\n switch (dragOperation) {\n case \"move\":\n if (range.contains(dragCursor.row, dragCursor.column)) {\n range = {\n start: dragCursor,\n end: dragCursor\n };\n }\n else {\n range = editor.moveText(range, dragCursor);\n }\n break;\n case \"copy\":\n range = editor.moveText(range, dragCursor, true);\n break;\n }\n }\n else {\n var dropData = dataTransfer.getData('Text');\n range = {\n start: dragCursor,\n end: editor.session.insert(dragCursor, dropData)\n };\n editor.focus();\n dragOperation = null;\n }\n clearDragMarker();\n return event.preventDefault(e);\n };\n event.addListener(mouseTarget, \"dragstart\", this.onDragStart.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragend\", this.onDragEnd.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragenter\", this.onDragEnter.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragover\", this.onDragOver.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragleave\", this.onDragLeave.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"drop\", this.onDrop.bind(mouseHandler), editor);\n function scrollCursorIntoView(cursor, prevCursor) {\n var now = Date.now();\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n var hMovement = !prevCursor || cursor.column != prevCursor.column;\n if (!cursorMovedTime || vMovement || hMovement) {\n editor.moveCursorToPosition(cursor);\n cursorMovedTime = now;\n cursorPointOnCaretMoved = { x: x, y: y };\n }\n else {\n var distance = calcDistance(cursorPointOnCaretMoved.x, cursorPointOnCaretMoved.y, x, y);\n if (distance > SCROLL_CURSOR_HYSTERESIS) {\n cursorMovedTime = null;\n }\n else if (now - cursorMovedTime >= SCROLL_CURSOR_DELAY) {\n editor.renderer.scrollCursorIntoView();\n cursorMovedTime = null;\n }\n }\n }\n function autoScroll(cursor, prevCursor) {\n var now = Date.now();\n var lineHeight = editor.renderer.layerConfig.lineHeight;\n var characterWidth = editor.renderer.layerConfig.characterWidth;\n var editorRect = editor.renderer.scroller.getBoundingClientRect();\n var offsets = {\n x: {\n left: x - editorRect.left,\n right: editorRect.right - x\n },\n y: {\n top: y - editorRect.top,\n bottom: editorRect.bottom - y\n }\n };\n var nearestXOffset = Math.min(offsets.x.left, offsets.x.right);\n var nearestYOffset = Math.min(offsets.y.top, offsets.y.bottom);\n var scrollCursor = { row: cursor.row, column: cursor.column };\n if (nearestXOffset / characterWidth <= 2) {\n scrollCursor.column += (offsets.x.left < offsets.x.right ? -3 : +2);\n }\n if (nearestYOffset / lineHeight <= 1) {\n scrollCursor.row += (offsets.y.top < offsets.y.bottom ? -1 : +1);\n }\n var vScroll = cursor.row != scrollCursor.row;\n var hScroll = cursor.column != scrollCursor.column;\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n if (vScroll || (hScroll && !vMovement)) {\n if (!autoScrollStartTime)\n autoScrollStartTime = now;\n else if (now - autoScrollStartTime >= AUTOSCROLL_DELAY)\n editor.renderer.scrollCursorIntoView(scrollCursor);\n }\n else {\n autoScrollStartTime = null;\n }\n }\n function onDragInterval() {\n var prevCursor = dragCursor;\n dragCursor = editor.renderer.screenToTextCoordinates(x, y);\n scrollCursorIntoView(dragCursor, prevCursor);\n autoScroll(dragCursor, prevCursor);\n }\n function addDragMarker() {\n range = editor.selection.toOrientedRange();\n dragSelectionMarker = editor.session.addMarker(range, \"ace_selection\", editor.getSelectionStyle());\n editor.clearSelection();\n if (editor.isFocused())\n editor.renderer.$cursorLayer.setBlinking(false);\n clearInterval(timerId);\n onDragInterval();\n timerId = setInterval(onDragInterval, 20);\n counter = 0;\n event.addListener(document, \"mousemove\", onMouseMove);\n }\n function clearDragMarker() {\n clearInterval(timerId);\n editor.session.removeMarker(dragSelectionMarker);\n dragSelectionMarker = null;\n editor.selection.fromOrientedRange(range);\n if (editor.isFocused() && !isInternal)\n editor.$resetCursorStyle();\n range = null;\n dragCursor = null;\n counter = 0;\n autoScrollStartTime = null;\n cursorMovedTime = null;\n event.removeListener(document, \"mousemove\", onMouseMove);\n }\n var onMouseMoveTimer = null;\n function onMouseMove() {\n if (onMouseMoveTimer == null) {\n onMouseMoveTimer = setTimeout(function () {\n if (onMouseMoveTimer != null && dragSelectionMarker)\n clearDragMarker();\n }, 20);\n }\n }\n function canAccept(dataTransfer) {\n var types = dataTransfer.types;\n return !types || Array.prototype.some.call(types, function (type) {\n return type == 'text/plain' || type == 'Text';\n });\n }\n function getDropEffect(e) {\n var copyAllowed = ['copy', 'copymove', 'all', 'uninitialized'];\n var moveAllowed = ['move', 'copymove', 'linkmove', 'all', 'uninitialized'];\n var copyModifierState = useragent.isMac ? e.altKey : e.ctrlKey;\n var effectAllowed = \"uninitialized\";\n try {\n effectAllowed = e.dataTransfer.effectAllowed.toLowerCase();\n }\n catch (e) { }\n var dropEffect = \"none\";\n if (copyModifierState && copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n else if (moveAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"move\";\n else if (copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n return dropEffect;\n }\n}\n(function () {\n this.dragWait = function () {\n var interval = Date.now() - this.mousedownEvent.time;\n if (interval > this.editor.getDragDelay())\n this.startDrag();\n };\n this.dragWaitEnd = function () {\n var target = this.editor.container;\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n this.selectEnd();\n };\n this.dragReadyEnd = function (e) {\n this.editor.$resetCursorStyle();\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n this.dragWaitEnd();\n };\n this.startDrag = function () {\n this.cancelDrag = false;\n var editor = this.editor;\n var target = editor.container;\n target.draggable = true;\n editor.renderer.$cursorLayer.setBlinking(false);\n editor.setStyle(\"ace_dragging\");\n var cursorStyle = useragent.isWin ? \"default\" : \"move\";\n editor.renderer.setCursorStyle(cursorStyle);\n this.setState(\"dragReady\");\n };\n this.onMouseDrag = function (e) {\n var target = this.editor.container;\n if (useragent.isIE && this.state == \"dragReady\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 3)\n target.dragDrop();\n }\n if (this.state === \"dragWait\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 0) {\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n }\n }\n };\n this.onMouseDown = function (e) {\n if (!this.$dragEnabled)\n return;\n this.mousedownEvent = e;\n var editor = this.editor;\n var inSelection = e.inSelection();\n var button = e.getButton();\n var clickCount = e.domEvent.detail || 1;\n if (clickCount === 1 && button === 0 && inSelection) {\n if (e.editor.inMultiSelectMode && (e.getAccelKey() || e.getShiftKey()))\n return;\n this.mousedownEvent.time = Date.now();\n var eventTarget = e.domEvent.target || e.domEvent.srcElement;\n if (\"unselectable\" in eventTarget)\n eventTarget.unselectable = \"on\";\n if (editor.getDragDelay()) {\n if (useragent.isWebKit) {\n this.cancelDrag = true;\n var mouseTarget = editor.container;\n mouseTarget.draggable = true;\n }\n this.setState(\"dragWait\");\n }\n else {\n this.startDrag();\n }\n this.captureMouse(e, this.onMouseDrag.bind(this));\n e.defaultPrevented = true;\n }\n };\n}).call(DragdropHandler.prototype);\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\nexports.DragdropHandler = DragdropHandler;\n\n});\n\nace.define(\"ace/mouse/touch_handler\",[\"require\",\"exports\",\"module\",\"ace/mouse/mouse_event\",\"ace/lib/event\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar MouseEvent = require(\"./mouse_event\").MouseEvent;\nvar event = require(\"../lib/event\");\nvar dom = require(\"../lib/dom\");\nexports.addTouchListeners = function (el, editor) {\n var mode = \"scroll\";\n var startX;\n var startY;\n var touchStartT;\n var lastT;\n var longTouchTimer;\n var animationTimer;\n var animationSteps = 0;\n var pos;\n var clickCount = 0;\n var vX = 0;\n var vY = 0;\n var pressed;\n var contextMenu;\n function createContextMenu() {\n var clipboard = window.navigator && window.navigator.clipboard;\n var isOpen = false;\n var updateMenu = function () {\n var selected = editor.getCopyText();\n var hasUndo = editor.session.getUndoManager().hasUndo();\n contextMenu.replaceChild(dom.buildDom(isOpen ? [\"span\",\n !selected && [\"span\", { class: \"ace_mobile-button\", action: \"selectall\" }, \"Select All\"],\n selected && [\"span\", { class: \"ace_mobile-button\", action: \"copy\" }, \"Copy\"],\n selected && [\"span\", { class: \"ace_mobile-button\", action: \"cut\" }, \"Cut\"],\n clipboard && [\"span\", { class: \"ace_mobile-button\", action: \"paste\" }, \"Paste\"],\n hasUndo && [\"span\", { class: \"ace_mobile-button\", action: \"undo\" }, \"Undo\"],\n [\"span\", { class: \"ace_mobile-button\", action: \"find\" }, \"Find\"],\n [\"span\", { class: \"ace_mobile-button\", action: \"openCommandPalette\" }, \"Palette\"]\n ] : [\"span\"]), contextMenu.firstChild);\n };\n var handleClick = function (e) {\n var action = e.target.getAttribute(\"action\");\n if (action == \"more\" || !isOpen) {\n isOpen = !isOpen;\n return updateMenu();\n }\n if (action == \"paste\") {\n clipboard.readText().then(function (text) {\n editor.execCommand(action, text);\n });\n }\n else if (action) {\n if (action == \"cut\" || action == \"copy\") {\n if (clipboard)\n clipboard.writeText(editor.getCopyText());\n else\n document.execCommand(\"copy\");\n }\n editor.execCommand(action);\n }\n contextMenu.firstChild.style.display = \"none\";\n isOpen = false;\n if (action != \"openCommandPalette\")\n editor.focus();\n };\n contextMenu = dom.buildDom([\"div\",\n {\n class: \"ace_mobile-menu\",\n ontouchstart: function (e) {\n mode = \"menu\";\n e.stopPropagation();\n e.preventDefault();\n editor.textInput.focus();\n },\n ontouchend: function (e) {\n e.stopPropagation();\n e.preventDefault();\n handleClick(e);\n },\n onclick: handleClick\n },\n [\"span\"],\n [\"span\", { class: \"ace_mobile-button\", action: \"more\" }, \"...\"]\n ], editor.container);\n }\n function showContextMenu() {\n if (!contextMenu)\n createContextMenu();\n var cursor = editor.selection.cursor;\n var pagePos = editor.renderer.textToScreenCoordinates(cursor.row, cursor.column);\n var leftOffset = editor.renderer.textToScreenCoordinates(0, 0).pageX;\n var scrollLeft = editor.renderer.scrollLeft;\n var rect = editor.container.getBoundingClientRect();\n contextMenu.style.top = pagePos.pageY - rect.top - 3 + \"px\";\n if (pagePos.pageX - rect.left < rect.width - 70) {\n contextMenu.style.left = \"\";\n contextMenu.style.right = \"10px\";\n }\n else {\n contextMenu.style.right = \"\";\n contextMenu.style.left = leftOffset + scrollLeft - rect.left + \"px\";\n }\n contextMenu.style.display = \"\";\n contextMenu.firstChild.style.display = \"none\";\n editor.on(\"input\", hideContextMenu);\n }\n function hideContextMenu(e) {\n if (contextMenu)\n contextMenu.style.display = \"none\";\n editor.off(\"input\", hideContextMenu);\n }\n function handleLongTap() {\n longTouchTimer = null;\n clearTimeout(longTouchTimer);\n var range = editor.selection.getRange();\n var inSelection = range.contains(pos.row, pos.column);\n if (range.isEmpty() || !inSelection) {\n editor.selection.moveToPosition(pos);\n editor.selection.selectWord();\n }\n mode = \"wait\";\n showContextMenu();\n }\n function switchToSelectionMode() {\n longTouchTimer = null;\n clearTimeout(longTouchTimer);\n editor.selection.moveToPosition(pos);\n var range = clickCount >= 2\n ? editor.selection.getLineRange(pos.row)\n : editor.session.getBracketRange(pos);\n if (range && !range.isEmpty()) {\n editor.selection.setRange(range);\n }\n else {\n editor.selection.selectWord();\n }\n mode = \"wait\";\n }\n event.addListener(el, \"contextmenu\", function (e) {\n if (!pressed)\n return;\n var textarea = editor.textInput.getElement();\n textarea.focus();\n }, editor);\n event.addListener(el, \"touchstart\", function (e) {\n var touches = e.touches;\n if (longTouchTimer || touches.length > 1) {\n clearTimeout(longTouchTimer);\n longTouchTimer = null;\n touchStartT = -1;\n mode = \"zoom\";\n return;\n }\n pressed = editor.$mouseHandler.isMousePressed = true;\n var h = editor.renderer.layerConfig.lineHeight;\n var w = editor.renderer.layerConfig.lineHeight;\n var t = e.timeStamp;\n lastT = t;\n var touchObj = touches[0];\n var x = touchObj.clientX;\n var y = touchObj.clientY;\n if (Math.abs(startX - x) + Math.abs(startY - y) > h)\n touchStartT = -1;\n startX = e.clientX = x;\n startY = e.clientY = y;\n vX = vY = 0;\n var ev = new MouseEvent(e, editor);\n pos = ev.getDocumentPosition();\n if (t - touchStartT < 500 && touches.length == 1 && !animationSteps) {\n clickCount++;\n e.preventDefault();\n e.button = 0;\n switchToSelectionMode();\n }\n else {\n clickCount = 0;\n var cursor = editor.selection.cursor;\n var anchor = editor.selection.isEmpty() ? cursor : editor.selection.anchor;\n var cursorPos = editor.renderer.$cursorLayer.getPixelPosition(cursor, true);\n var anchorPos = editor.renderer.$cursorLayer.getPixelPosition(anchor, true);\n var rect = editor.renderer.scroller.getBoundingClientRect();\n var offsetTop = editor.renderer.layerConfig.offset;\n var offsetLeft = editor.renderer.scrollLeft;\n var weightedDistance = function (x, y) {\n x = x / w;\n y = y / h - 0.75;\n return x * x + y * y;\n };\n if (e.clientX < rect.left) {\n mode = \"zoom\";\n return;\n }\n var diff1 = weightedDistance(e.clientX - rect.left - cursorPos.left + offsetLeft, e.clientY - rect.top - cursorPos.top + offsetTop);\n var diff2 = weightedDistance(e.clientX - rect.left - anchorPos.left + offsetLeft, e.clientY - rect.top - anchorPos.top + offsetTop);\n if (diff1 < 3.5 && diff2 < 3.5)\n mode = diff1 > diff2 ? \"cursor\" : \"anchor\";\n if (diff2 < 3.5)\n mode = \"anchor\";\n else if (diff1 < 3.5)\n mode = \"cursor\";\n else\n mode = \"scroll\";\n longTouchTimer = setTimeout(handleLongTap, 450);\n }\n touchStartT = t;\n }, editor);\n event.addListener(el, \"touchend\", function (e) {\n pressed = editor.$mouseHandler.isMousePressed = false;\n if (animationTimer)\n clearInterval(animationTimer);\n if (mode == \"zoom\") {\n mode = \"\";\n animationSteps = 0;\n }\n else if (longTouchTimer) {\n editor.selection.moveToPosition(pos);\n animationSteps = 0;\n showContextMenu();\n }\n else if (mode == \"scroll\") {\n animate();\n hideContextMenu();\n }\n else {\n showContextMenu();\n }\n clearTimeout(longTouchTimer);\n longTouchTimer = null;\n }, editor);\n event.addListener(el, \"touchmove\", function (e) {\n if (longTouchTimer) {\n clearTimeout(longTouchTimer);\n longTouchTimer = null;\n }\n var touches = e.touches;\n if (touches.length > 1 || mode == \"zoom\")\n return;\n var touchObj = touches[0];\n var wheelX = startX - touchObj.clientX;\n var wheelY = startY - touchObj.clientY;\n if (mode == \"wait\") {\n if (wheelX * wheelX + wheelY * wheelY > 4)\n mode = \"cursor\";\n else\n return e.preventDefault();\n }\n startX = touchObj.clientX;\n startY = touchObj.clientY;\n e.clientX = touchObj.clientX;\n e.clientY = touchObj.clientY;\n var t = e.timeStamp;\n var dt = t - lastT;\n lastT = t;\n if (mode == \"scroll\") {\n var mouseEvent = new MouseEvent(e, editor);\n mouseEvent.speed = 1;\n mouseEvent.wheelX = wheelX;\n mouseEvent.wheelY = wheelY;\n if (10 * Math.abs(wheelX) < Math.abs(wheelY))\n wheelX = 0;\n if (10 * Math.abs(wheelY) < Math.abs(wheelX))\n wheelY = 0;\n if (dt != 0) {\n vX = wheelX / dt;\n vY = wheelY / dt;\n }\n editor._emit(\"mousewheel\", mouseEvent);\n if (!mouseEvent.propagationStopped) {\n vX = vY = 0;\n }\n }\n else {\n var ev = new MouseEvent(e, editor);\n var pos = ev.getDocumentPosition();\n if (mode == \"cursor\")\n editor.selection.moveCursorToPosition(pos);\n else if (mode == \"anchor\")\n editor.selection.setSelectionAnchor(pos.row, pos.column);\n editor.renderer.scrollCursorIntoView(pos);\n e.preventDefault();\n }\n }, editor);\n function animate() {\n animationSteps += 60;\n animationTimer = setInterval(function () {\n if (animationSteps-- <= 0) {\n clearInterval(animationTimer);\n animationTimer = null;\n }\n if (Math.abs(vX) < 0.01)\n vX = 0;\n if (Math.abs(vY) < 0.01)\n vY = 0;\n if (animationSteps < 20)\n vX = 0.9 * vX;\n if (animationSteps < 20)\n vY = 0.9 * vY;\n var oldScrollTop = editor.session.getScrollTop();\n editor.renderer.scrollBy(10 * vX, 10 * vY);\n if (oldScrollTop == editor.session.getScrollTop())\n animationSteps = 0;\n }, 10);\n }\n};\n\n});\n\nace.define(\"ace/mouse/mouse_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/mouse/default_handlers\",\"ace/mouse/default_gutter_handler\",\"ace/mouse/mouse_event\",\"ace/mouse/dragdrop_handler\",\"ace/mouse/touch_handler\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar DefaultHandlers = require(\"./default_handlers\").DefaultHandlers;\nvar DefaultGutterHandler = require(\"./default_gutter_handler\").GutterHandler;\nvar MouseEvent = require(\"./mouse_event\").MouseEvent;\nvar DragdropHandler = require(\"./dragdrop_handler\").DragdropHandler;\nvar addTouchListeners = require(\"./touch_handler\").addTouchListeners;\nvar config = require(\"../config\");\nvar MouseHandler = /** @class */ (function () {\n function MouseHandler(editor) {\n var _self = this;\n this.editor = editor;\n new DefaultHandlers(this);\n new DefaultGutterHandler(this);\n new DragdropHandler(this);\n var focusEditor = function (e) {\n var windowBlurred = !document.hasFocus || !document.hasFocus()\n || !editor.isFocused() && document.activeElement == (editor.textInput && editor.textInput.getElement());\n if (windowBlurred)\n window.focus();\n editor.focus();\n setTimeout(function () {\n if (!editor.isFocused())\n editor.focus();\n });\n };\n var mouseTarget = editor.renderer.getMouseEventTarget();\n event.addListener(mouseTarget, \"click\", this.onMouseEvent.bind(this, \"click\"), editor);\n event.addListener(mouseTarget, \"mousemove\", this.onMouseMove.bind(this, \"mousemove\"), editor);\n event.addMultiMouseDownListener([\n mouseTarget,\n editor.renderer.scrollBarV && editor.renderer.scrollBarV.inner,\n editor.renderer.scrollBarH && editor.renderer.scrollBarH.inner,\n editor.textInput && editor.textInput.getElement()\n ].filter(Boolean), [400, 300, 250], this, \"onMouseEvent\", editor);\n event.addMouseWheelListener(editor.container, this.onMouseWheel.bind(this, \"mousewheel\"), editor);\n addTouchListeners(editor.container, editor);\n var gutterEl = editor.renderer.$gutter;\n event.addListener(gutterEl, \"mousedown\", this.onMouseEvent.bind(this, \"guttermousedown\"), editor);\n event.addListener(gutterEl, \"click\", this.onMouseEvent.bind(this, \"gutterclick\"), editor);\n event.addListener(gutterEl, \"dblclick\", this.onMouseEvent.bind(this, \"gutterdblclick\"), editor);\n event.addListener(gutterEl, \"mousemove\", this.onMouseEvent.bind(this, \"guttermousemove\"), editor);\n event.addListener(mouseTarget, \"mousedown\", focusEditor, editor);\n event.addListener(gutterEl, \"mousedown\", focusEditor, editor);\n if (useragent.isIE && editor.renderer.scrollBarV) {\n event.addListener(editor.renderer.scrollBarV.element, \"mousedown\", focusEditor, editor);\n event.addListener(editor.renderer.scrollBarH.element, \"mousedown\", focusEditor, editor);\n }\n editor.on(\"mousemove\", function (e) {\n if (_self.state || _self.$dragDelay || !_self.$dragEnabled)\n return;\n var character = editor.renderer.screenToTextCoordinates(e.x, e.y);\n var range = editor.session.selection.getRange();\n var renderer = editor.renderer;\n if (!range.isEmpty() && range.insideStart(character.row, character.column)) {\n renderer.setCursorStyle(\"default\");\n }\n else {\n renderer.setCursorStyle(\"\");\n }\n }, editor);\n }\n MouseHandler.prototype.onMouseEvent = function (name, e) {\n if (!this.editor.session)\n return;\n this.editor._emit(name, new MouseEvent(e, this.editor));\n };\n MouseHandler.prototype.onMouseMove = function (name, e) {\n var listeners = this.editor._eventRegistry && this.editor._eventRegistry.mousemove;\n if (!listeners || !listeners.length)\n return;\n this.editor._emit(name, new MouseEvent(e, this.editor));\n };\n MouseHandler.prototype.onMouseWheel = function (name, e) {\n var mouseEvent = new MouseEvent(e, this.editor);\n mouseEvent.speed = this.$scrollSpeed * 2;\n mouseEvent.wheelX = e.wheelX;\n mouseEvent.wheelY = e.wheelY;\n this.editor._emit(name, mouseEvent);\n };\n MouseHandler.prototype.setState = function (state) {\n this.state = state;\n };\n MouseHandler.prototype.captureMouse = function (ev, mouseMoveHandler) {\n this.x = ev.x;\n this.y = ev.y;\n this.isMousePressed = true;\n var editor = this.editor;\n var renderer = this.editor.renderer;\n renderer.$isMousePressed = true;\n var self = this;\n var onMouseMove = function (e) {\n if (!e)\n return;\n if (useragent.isWebKit && !e.which && self.releaseMouse)\n return self.releaseMouse();\n self.x = e.clientX;\n self.y = e.clientY;\n mouseMoveHandler && mouseMoveHandler(e);\n self.mouseEvent = new MouseEvent(e, self.editor);\n self.$mouseMoved = true;\n };\n var onCaptureEnd = function (e) {\n editor.off(\"beforeEndOperation\", onOperationEnd);\n clearInterval(timerId);\n if (editor.session)\n onCaptureInterval();\n self[self.state + \"End\"] && self[self.state + \"End\"](e);\n self.state = \"\";\n self.isMousePressed = renderer.$isMousePressed = false;\n if (renderer.$keepTextAreaAtCursor)\n renderer.$moveTextAreaToCursor();\n self.$onCaptureMouseMove = self.releaseMouse = null;\n e && self.onMouseEvent(\"mouseup\", e);\n editor.endOperation();\n };\n var onCaptureInterval = function () {\n self[self.state] && self[self.state]();\n self.$mouseMoved = false;\n };\n if (useragent.isOldIE && ev.domEvent.type == \"dblclick\") {\n return setTimeout(function () { onCaptureEnd(ev); });\n }\n var onOperationEnd = function (e) {\n if (!self.releaseMouse)\n return;\n if (editor.curOp.command.name && editor.curOp.selectionChanged) {\n self[self.state + \"End\"] && self[self.state + \"End\"]();\n self.state = \"\";\n self.releaseMouse();\n }\n };\n editor.on(\"beforeEndOperation\", onOperationEnd);\n editor.startOperation({ command: { name: \"mouse\" } });\n self.$onCaptureMouseMove = onMouseMove;\n self.releaseMouse = event.capture(this.editor.container, onMouseMove, onCaptureEnd);\n var timerId = setInterval(onCaptureInterval, 20);\n };\n MouseHandler.prototype.cancelContextMenu = function () {\n var stop = function (e) {\n if (e && e.domEvent && e.domEvent.type != \"contextmenu\")\n return;\n this.editor.off(\"nativecontextmenu\", stop);\n if (e && e.domEvent)\n event.stopEvent(e.domEvent);\n }.bind(this);\n setTimeout(stop, 10);\n this.editor.on(\"nativecontextmenu\", stop);\n };\n MouseHandler.prototype.destroy = function () {\n if (this.releaseMouse)\n this.releaseMouse();\n };\n return MouseHandler;\n}());\nMouseHandler.prototype.releaseMouse = null;\nconfig.defineOptions(MouseHandler.prototype, \"mouseHandler\", {\n scrollSpeed: { initialValue: 2 },\n dragDelay: { initialValue: (useragent.isMac ? 150 : 0) },\n dragEnabled: { initialValue: true },\n focusTimeout: { initialValue: 0 },\n tooltipFollowsMouse: { initialValue: true }\n});\nexports.MouseHandler = MouseHandler;\n\n});\n\nace.define(\"ace/mouse/fold_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar FoldHandler = /** @class */ (function () {\n function FoldHandler(editor) {\n editor.on(\"click\", function (e) {\n var position = e.getDocumentPosition();\n var session = editor.session;\n var fold = session.getFoldAt(position.row, position.column, 1);\n if (fold) {\n if (e.getAccelKey())\n session.removeFold(fold);\n else\n session.expandFold(fold);\n e.stop();\n }\n var target = e.domEvent && e.domEvent.target;\n if (target && dom.hasCssClass(target, \"ace_inline_button\")) {\n if (dom.hasCssClass(target, \"ace_toggle_wrap\")) {\n session.setOption(\"wrap\", !session.getUseWrapMode());\n editor.renderer.scrollCursorIntoView();\n }\n }\n });\n editor.on(\"gutterclick\", function (e) {\n var gutterRegion = editor.renderer.$gutterLayer.getRegion(e);\n if (gutterRegion == \"foldWidgets\") {\n var row = e.getDocumentPosition().row;\n var session = editor.session;\n if (session.foldWidgets && session.foldWidgets[row])\n editor.session.onFoldWidgetClick(row, e);\n if (!editor.isFocused())\n editor.focus();\n e.stop();\n }\n });\n editor.on(\"gutterdblclick\", function (e) {\n var gutterRegion = editor.renderer.$gutterLayer.getRegion(e);\n if (gutterRegion == \"foldWidgets\") {\n var row = e.getDocumentPosition().row;\n var session = editor.session;\n var data = session.getParentFoldRangeData(row, true);\n var range = data.range || data.firstRange;\n if (range) {\n row = range.start.row;\n var fold = session.getFoldAt(row, session.getLine(row).length, 1);\n if (fold) {\n session.removeFold(fold);\n }\n else {\n session.addFold(\"...\", range);\n editor.renderer.scrollCursorIntoView({ row: range.start.row, column: 0 });\n }\n }\n e.stop();\n }\n });\n }\n return FoldHandler;\n}());\nexports.FoldHandler = FoldHandler;\n\n});\n\nace.define(\"ace/keyboard/keybinding\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/event\"], function(require, exports, module){\"use strict\";\nvar keyUtil = require(\"../lib/keys\");\nvar event = require(\"../lib/event\");\nvar KeyBinding = /** @class */ (function () {\n function KeyBinding(editor) {\n this.$editor = editor;\n this.$data = { editor: editor };\n this.$handlers = [];\n this.setDefaultHandler(editor.commands);\n }\n KeyBinding.prototype.setDefaultHandler = function (kb) {\n this.removeKeyboardHandler(this.$defaultHandler);\n this.$defaultHandler = kb;\n this.addKeyboardHandler(kb, 0);\n };\n KeyBinding.prototype.setKeyboardHandler = function (kb) {\n var h = this.$handlers;\n if (h[h.length - 1] == kb)\n return;\n while (h[h.length - 1] && h[h.length - 1] != this.$defaultHandler)\n this.removeKeyboardHandler(h[h.length - 1]);\n this.addKeyboardHandler(kb, 1);\n };\n KeyBinding.prototype.addKeyboardHandler = function (kb, pos) {\n if (!kb)\n return;\n if (typeof kb == \"function\" && !kb.handleKeyboard)\n kb.handleKeyboard = kb;\n var i = this.$handlers.indexOf(kb);\n if (i != -1)\n this.$handlers.splice(i, 1);\n if (pos == undefined)\n this.$handlers.push(kb);\n else\n this.$handlers.splice(pos, 0, kb);\n if (i == -1 && kb.attach)\n kb.attach(this.$editor);\n };\n KeyBinding.prototype.removeKeyboardHandler = function (kb) {\n var i = this.$handlers.indexOf(kb);\n if (i == -1)\n return false;\n this.$handlers.splice(i, 1);\n kb.detach && kb.detach(this.$editor);\n return true;\n };\n KeyBinding.prototype.getKeyboardHandler = function () {\n return this.$handlers[this.$handlers.length - 1];\n };\n KeyBinding.prototype.getStatusText = function () {\n var data = this.$data;\n var editor = data.editor;\n return this.$handlers.map(function (h) {\n return h.getStatusText && h.getStatusText(editor, data) || \"\";\n }).filter(Boolean).join(\" \");\n };\n KeyBinding.prototype.$callKeyboardHandlers = function (hashId, keyString, keyCode, e) {\n var toExecute;\n var success = false;\n var commands = this.$editor.commands;\n for (var i = this.$handlers.length; i--;) {\n toExecute = this.$handlers[i].handleKeyboard(this.$data, hashId, keyString, keyCode, e);\n if (!toExecute || !toExecute.command)\n continue;\n if (toExecute.command == \"null\") {\n success = true;\n }\n else {\n success = commands.exec(toExecute.command, this.$editor, toExecute.args, e);\n }\n if (success && e && hashId != -1 &&\n toExecute.passEvent != true && toExecute.command.passEvent != true) {\n event.stopEvent(e);\n }\n if (success)\n break;\n }\n if (!success && hashId == -1) {\n toExecute = { command: \"insertstring\" };\n success = commands.exec(\"insertstring\", this.$editor, keyString);\n }\n if (success && this.$editor._signal)\n this.$editor._signal(\"keyboardActivity\", toExecute);\n return success;\n };\n KeyBinding.prototype.onCommandKey = function (e, hashId, keyCode) {\n var keyString = keyUtil.keyCodeToString(keyCode);\n return this.$callKeyboardHandlers(hashId, keyString, keyCode, e);\n };\n KeyBinding.prototype.onTextInput = function (text) {\n return this.$callKeyboardHandlers(-1, text);\n };\n return KeyBinding;\n}());\nexports.KeyBinding = KeyBinding;\n\n});\n\nace.define(\"ace/lib/bidiutil\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar ArabicAlefBetIntervalsBegine = ['\\u0621', '\\u0641'];\nvar ArabicAlefBetIntervalsEnd = ['\\u063A', '\\u064a'];\nvar dir = 0, hiLevel = 0;\nvar lastArabic = false, hasUBAT_AL = false, hasUBAT_B = false, hasUBAT_S = false, hasBlockSep = false, hasSegSep = false;\nvar impTab_LTR = [ [0, 3, 0, 1, 0, 0, 0], [0, 3, 0, 1, 2, 2, 0], [0, 3, 0, 0x11, 2, 0, 1], [0, 3, 5, 5, 4, 1, 0], [0, 3, 0x15, 0x15, 4, 0, 1], [0, 3, 5, 5, 4, 2, 0]\n];\nvar impTab_RTL = [ [2, 0, 1, 1, 0, 1, 0], [2, 0, 1, 1, 0, 2, 0], [2, 0, 2, 1, 3, 2, 0], [2, 0, 2, 0x21, 3, 1, 1]\n];\nvar LTR = 0, RTL = 1;\nvar L = 0;\nvar R = 1;\nvar EN = 2;\nvar AN = 3;\nvar ON = 4;\nvar B = 5;\nvar S = 6;\nvar AL = 7;\nvar WS = 8;\nvar CS = 9;\nvar ES = 10;\nvar ET = 11;\nvar NSM = 12;\nvar LRE = 13;\nvar RLE = 14;\nvar PDF = 15;\nvar LRO = 16;\nvar RLO = 17;\nvar BN = 18;\nvar UnicodeTBL00 = [\n BN, BN, BN, BN, BN, BN, BN, BN, BN, S, B, S, WS, B, BN, BN,\n BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, B, B, B, S,\n WS, ON, ON, ET, ET, ET, ON, ON, ON, ON, ON, ES, CS, ES, CS, CS,\n EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, CS, ON, ON, ON, ON, ON,\n ON, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L,\n L, L, L, L, L, L, L, L, L, L, L, ON, ON, ON, ON, ON,\n ON, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L,\n L, L, L, L, L, L, L, L, L, L, L, ON, ON, ON, ON, BN,\n BN, BN, BN, BN, BN, B, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN,\n BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN,\n CS, ON, ET, ET, ET, ET, ON, ON, ON, ON, L, ON, ON, BN, ON, ON,\n ET, ET, EN, EN, ON, L, ON, ON, ON, EN, L, ON, ON, ON, ON, ON\n];\nvar UnicodeTBL20 = [\n WS, WS, WS, WS, WS, WS, WS, WS, WS, WS, WS, BN, BN, BN, L, R,\n ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,\n ON, ON, ON, ON, ON, ON, ON, ON, WS, B, LRE, RLE, PDF, LRO, RLO, CS,\n ET, ET, ET, ET, ET, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,\n ON, ON, ON, ON, CS, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,\n ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, WS\n];\nfunction _computeLevels(chars, levels, len, charTypes) {\n var impTab = dir ? impTab_RTL : impTab_LTR, prevState = null, newClass = null, newLevel = null, newState = 0, action = null, cond = null, condPos = -1, i = null, ix = null, classes = [];\n if (!charTypes) {\n for (i = 0, charTypes = []; i < len; i++) {\n charTypes[i] = _getCharacterType(chars[i]);\n }\n }\n hiLevel = dir;\n lastArabic = false;\n hasUBAT_AL = false;\n hasUBAT_B = false;\n hasUBAT_S = false;\n for (ix = 0; ix < len; ix++) {\n prevState = newState;\n classes[ix] = newClass = _getCharClass(chars, charTypes, classes, ix);\n newState = impTab[prevState][newClass];\n action = newState & 0xF0;\n newState &= 0x0F;\n levels[ix] = newLevel = impTab[newState][5];\n if (action > 0) {\n if (action == 0x10) {\n for (i = condPos; i < ix; i++) {\n levels[i] = 1;\n }\n condPos = -1;\n }\n else {\n condPos = -1;\n }\n }\n cond = impTab[newState][6];\n if (cond) {\n if (condPos == -1) {\n condPos = ix;\n }\n }\n else {\n if (condPos > -1) {\n for (i = condPos; i < ix; i++) {\n levels[i] = newLevel;\n }\n condPos = -1;\n }\n }\n if (charTypes[ix] == B) {\n levels[ix] = 0;\n }\n hiLevel |= newLevel;\n }\n if (hasUBAT_S) {\n for (i = 0; i < len; i++) {\n if (charTypes[i] == S) {\n levels[i] = dir;\n for (var j = i - 1; j >= 0; j--) {\n if (charTypes[j] == WS) {\n levels[j] = dir;\n }\n else {\n break;\n }\n }\n }\n }\n }\n}\nfunction _invertLevel(lev, levels, _array) {\n if (hiLevel < lev) {\n return;\n }\n if (lev == 1 && dir == RTL && !hasUBAT_B) {\n _array.reverse();\n return;\n }\n var len = _array.length, start = 0, end, lo, hi, tmp;\n while (start < len) {\n if (levels[start] >= lev) {\n end = start + 1;\n while (end < len && levels[end] >= lev) {\n end++;\n }\n for (lo = start, hi = end - 1; lo < hi; lo++, hi--) {\n tmp = _array[lo];\n _array[lo] = _array[hi];\n _array[hi] = tmp;\n }\n start = end;\n }\n start++;\n }\n}\nfunction _getCharClass(chars, types, classes, ix) {\n var cType = types[ix], wType, nType, len, i;\n switch (cType) {\n case L:\n case R:\n lastArabic = false;\n case ON:\n case AN:\n return cType;\n case EN:\n return lastArabic ? AN : EN;\n case AL:\n lastArabic = true;\n hasUBAT_AL = true;\n return R;\n case WS:\n return ON;\n case CS:\n if (ix < 1 || (ix + 1) >= types.length ||\n ((wType = classes[ix - 1]) != EN && wType != AN) ||\n ((nType = types[ix + 1]) != EN && nType != AN)) {\n return ON;\n }\n if (lastArabic) {\n nType = AN;\n }\n return nType == wType ? nType : ON;\n case ES:\n wType = ix > 0 ? classes[ix - 1] : B;\n if (wType == EN && (ix + 1) < types.length && types[ix + 1] == EN) {\n return EN;\n }\n return ON;\n case ET:\n if (ix > 0 && classes[ix - 1] == EN) {\n return EN;\n }\n if (lastArabic) {\n return ON;\n }\n i = ix + 1;\n len = types.length;\n while (i < len && types[i] == ET) {\n i++;\n }\n if (i < len && types[i] == EN) {\n return EN;\n }\n return ON;\n case NSM:\n len = types.length;\n i = ix + 1;\n while (i < len && types[i] == NSM) {\n i++;\n }\n if (i < len) {\n var c = chars[ix], rtlCandidate = (c >= 0x0591 && c <= 0x08FF) || c == 0xFB1E;\n wType = types[i];\n if (rtlCandidate && (wType == R || wType == AL)) {\n return R;\n }\n }\n if (ix < 1 || (wType = types[ix - 1]) == B) {\n return ON;\n }\n return classes[ix - 1];\n case B:\n lastArabic = false;\n hasUBAT_B = true;\n return dir;\n case S:\n hasUBAT_S = true;\n return ON;\n case LRE:\n case RLE:\n case LRO:\n case RLO:\n case PDF:\n lastArabic = false;\n case BN:\n return ON;\n }\n}\nfunction _getCharacterType(ch) {\n var uc = ch.charCodeAt(0), hi = uc >> 8;\n if (hi == 0) {\n return ((uc > 0x00BF) ? L : UnicodeTBL00[uc]);\n }\n else if (hi == 5) {\n return (/[\\u0591-\\u05f4]/.test(ch) ? R : L);\n }\n else if (hi == 6) {\n if (/[\\u0610-\\u061a\\u064b-\\u065f\\u06d6-\\u06e4\\u06e7-\\u06ed]/.test(ch))\n return NSM;\n else if (/[\\u0660-\\u0669\\u066b-\\u066c]/.test(ch))\n return AN;\n else if (uc == 0x066A)\n return ET;\n else if (/[\\u06f0-\\u06f9]/.test(ch))\n return EN;\n else\n return AL;\n }\n else if (hi == 0x20 && uc <= 0x205F) {\n return UnicodeTBL20[uc & 0xFF];\n }\n else if (hi == 0xFE) {\n return (uc >= 0xFE70 ? AL : ON);\n }\n return ON;\n}\nfunction _isArabicDiacritics(ch) {\n return (ch >= '\\u064b' && ch <= '\\u0655');\n}\nexports.L = L;\nexports.R = R;\nexports.EN = EN;\nexports.ON_R = 3;\nexports.AN = 4;\nexports.R_H = 5;\nexports.B = 6;\nexports.RLE = 7;\nexports.DOT = \"\\xB7\";\nexports.doBidiReorder = function (text, textCharTypes, isRtl) {\n if (text.length < 2)\n return {};\n var chars = text.split(\"\"), logicalFromVisual = new Array(chars.length), bidiLevels = new Array(chars.length), levels = [];\n dir = isRtl ? RTL : LTR;\n _computeLevels(chars, levels, chars.length, textCharTypes);\n for (var i = 0; i < logicalFromVisual.length; logicalFromVisual[i] = i, i++)\n ;\n _invertLevel(2, levels, logicalFromVisual);\n _invertLevel(1, levels, logicalFromVisual);\n for (var i = 0; i < logicalFromVisual.length - 1; i++) { //fix levels to reflect character width\n if (textCharTypes[i] === AN) {\n levels[i] = exports.AN;\n }\n else if (levels[i] === R && ((textCharTypes[i] > AL && textCharTypes[i] < LRE)\n || textCharTypes[i] === ON || textCharTypes[i] === BN)) {\n levels[i] = exports.ON_R;\n }\n else if ((i > 0 && chars[i - 1] === '\\u0644') && /\\u0622|\\u0623|\\u0625|\\u0627/.test(chars[i])) {\n levels[i - 1] = levels[i] = exports.R_H;\n i++;\n }\n }\n if (chars[chars.length - 1] === exports.DOT)\n levels[chars.length - 1] = exports.B;\n if (chars[0] === '\\u202B')\n levels[0] = exports.RLE;\n for (var i = 0; i < logicalFromVisual.length; i++) {\n bidiLevels[i] = levels[logicalFromVisual[i]];\n }\n return { 'logicalFromVisual': logicalFromVisual, 'bidiLevels': bidiLevels };\n};\nexports.hasBidiCharacters = function (text, textCharTypes) {\n var ret = false;\n for (var i = 0; i < text.length; i++) {\n textCharTypes[i] = _getCharacterType(text.charAt(i));\n if (!ret && (textCharTypes[i] == R || textCharTypes[i] == AL || textCharTypes[i] == AN))\n ret = true;\n }\n return ret;\n};\nexports.getVisualFromLogicalIdx = function (logIdx, rowMap) {\n for (var i = 0; i < rowMap.logicalFromVisual.length; i++) {\n if (rowMap.logicalFromVisual[i] == logIdx)\n return i;\n }\n return 0;\n};\n\n});\n\nace.define(\"ace/bidihandler\",[\"require\",\"exports\",\"module\",\"ace/lib/bidiutil\",\"ace/lib/lang\"], function(require, exports, module){\"use strict\";\nvar bidiUtil = require(\"./lib/bidiutil\");\nvar lang = require(\"./lib/lang\");\nvar bidiRE = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac\\u202B]/;\nvar BidiHandler = /** @class */ (function () {\n function BidiHandler(session) {\n this.session = session;\n this.bidiMap = {};\n this.currentRow = null;\n this.bidiUtil = bidiUtil;\n this.charWidths = [];\n this.EOL = \"\\xAC\";\n this.showInvisibles = true;\n this.isRtlDir = false;\n this.$isRtl = false;\n this.line = \"\";\n this.wrapIndent = 0;\n this.EOF = \"\\xB6\";\n this.RLE = \"\\u202B\";\n this.contentWidth = 0;\n this.fontMetrics = null;\n this.rtlLineOffset = 0;\n this.wrapOffset = 0;\n this.isMoveLeftOperation = false;\n this.seenBidi = bidiRE.test(session.getValue());\n }\n BidiHandler.prototype.isBidiRow = function (screenRow, docRow, splitIndex) {\n if (!this.seenBidi)\n return false;\n if (screenRow !== this.currentRow) {\n this.currentRow = screenRow;\n this.updateRowLine(docRow, splitIndex);\n this.updateBidiMap();\n }\n return this.bidiMap.bidiLevels;\n };\n BidiHandler.prototype.onChange = function (delta) {\n if (!this.seenBidi) {\n if (delta.action == \"insert\" && bidiRE.test(delta.lines.join(\"\\n\"))) {\n this.seenBidi = true;\n this.currentRow = null;\n }\n }\n else {\n this.currentRow = null;\n }\n };\n BidiHandler.prototype.getDocumentRow = function () {\n var docRow = 0;\n var rowCache = this.session.$screenRowCache;\n if (rowCache.length) {\n var index = this.session.$getRowCacheIndex(rowCache, this.currentRow);\n if (index >= 0)\n docRow = this.session.$docRowCache[index];\n }\n return docRow;\n };\n BidiHandler.prototype.getSplitIndex = function () {\n var splitIndex = 0;\n var rowCache = this.session.$screenRowCache;\n if (rowCache.length) {\n var currentIndex, prevIndex = this.session.$getRowCacheIndex(rowCache, this.currentRow);\n while (this.currentRow - splitIndex > 0) {\n currentIndex = this.session.$getRowCacheIndex(rowCache, this.currentRow - splitIndex - 1);\n if (currentIndex !== prevIndex)\n break;\n prevIndex = currentIndex;\n splitIndex++;\n }\n }\n else {\n splitIndex = this.currentRow;\n }\n return splitIndex;\n };\n BidiHandler.prototype.updateRowLine = function (docRow, splitIndex) {\n if (docRow === undefined)\n docRow = this.getDocumentRow();\n var isLastRow = (docRow === this.session.getLength() - 1), endOfLine = isLastRow ? this.EOF : this.EOL;\n this.wrapIndent = 0;\n this.line = this.session.getLine(docRow);\n this.isRtlDir = this.$isRtl || this.line.charAt(0) === this.RLE;\n if (this.session.$useWrapMode) {\n var splits = this.session.$wrapData[docRow];\n if (splits) {\n if (splitIndex === undefined)\n splitIndex = this.getSplitIndex();\n if (splitIndex > 0 && splits.length) {\n this.wrapIndent = splits.indent;\n this.wrapOffset = this.wrapIndent * this.charWidths[bidiUtil.L];\n this.line = (splitIndex < splits.length) ?\n this.line.substring(splits[splitIndex - 1], splits[splitIndex]) :\n this.line.substring(splits[splits.length - 1]);\n }\n else {\n this.line = this.line.substring(0, splits[splitIndex]);\n }\n if (splitIndex == splits.length) {\n this.line += (this.showInvisibles) ? endOfLine : bidiUtil.DOT;\n }\n }\n }\n else {\n this.line += this.showInvisibles ? endOfLine : bidiUtil.DOT;\n }\n var session = this.session, shift = 0, size;\n this.line = this.line.replace(/\\t|[\\u1100-\\u2029, \\u202F-\\uFFE6]/g, function (ch, i) {\n if (ch === '\\t' || session.isFullWidth(ch.charCodeAt(0))) {\n size = (ch === '\\t') ? session.getScreenTabSize(i + shift) : 2;\n shift += size - 1;\n return lang.stringRepeat(bidiUtil.DOT, size);\n }\n return ch;\n });\n if (this.isRtlDir) {\n this.fontMetrics.$main.textContent = (this.line.charAt(this.line.length - 1) == bidiUtil.DOT) ? this.line.substr(0, this.line.length - 1) : this.line;\n this.rtlLineOffset = this.contentWidth - this.fontMetrics.$main.getBoundingClientRect().width;\n }\n };\n BidiHandler.prototype.updateBidiMap = function () {\n var textCharTypes = [];\n if (bidiUtil.hasBidiCharacters(this.line, textCharTypes) || this.isRtlDir) {\n this.bidiMap = bidiUtil.doBidiReorder(this.line, textCharTypes, this.isRtlDir);\n }\n else {\n this.bidiMap = {};\n }\n };\n BidiHandler.prototype.markAsDirty = function () {\n this.currentRow = null;\n };\n BidiHandler.prototype.updateCharacterWidths = function (fontMetrics) {\n if (this.characterWidth === fontMetrics.$characterSize.width)\n return;\n this.fontMetrics = fontMetrics;\n var characterWidth = this.characterWidth = fontMetrics.$characterSize.width;\n var bidiCharWidth = fontMetrics.$measureCharWidth(\"\\u05d4\");\n this.charWidths[bidiUtil.L] = this.charWidths[bidiUtil.EN] = this.charWidths[bidiUtil.ON_R] = characterWidth;\n this.charWidths[bidiUtil.R] = this.charWidths[bidiUtil.AN] = bidiCharWidth;\n this.charWidths[bidiUtil.R_H] = bidiCharWidth * 0.45;\n this.charWidths[bidiUtil.B] = this.charWidths[bidiUtil.RLE] = 0;\n this.currentRow = null;\n };\n BidiHandler.prototype.setShowInvisibles = function (showInvisibles) {\n this.showInvisibles = showInvisibles;\n this.currentRow = null;\n };\n BidiHandler.prototype.setEolChar = function (eolChar) {\n this.EOL = eolChar;\n };\n BidiHandler.prototype.setContentWidth = function (width) {\n this.contentWidth = width;\n };\n BidiHandler.prototype.isRtlLine = function (row) {\n if (this.$isRtl)\n return true;\n if (row != undefined)\n return (this.session.getLine(row).charAt(0) == this.RLE);\n else\n return this.isRtlDir;\n };\n BidiHandler.prototype.setRtlDirection = function (editor, isRtlDir) {\n var cursor = editor.getCursorPosition();\n for (var row = editor.selection.getSelectionAnchor().row; row <= cursor.row; row++) {\n if (!isRtlDir && editor.session.getLine(row).charAt(0) === editor.session.$bidiHandler.RLE)\n editor.session.doc.removeInLine(row, 0, 1);\n else if (isRtlDir && editor.session.getLine(row).charAt(0) !== editor.session.$bidiHandler.RLE)\n editor.session.doc.insert({ column: 0, row: row }, editor.session.$bidiHandler.RLE);\n }\n };\n BidiHandler.prototype.getPosLeft = function (col) {\n col -= this.wrapIndent;\n var leftBoundary = (this.line.charAt(0) === this.RLE) ? 1 : 0;\n var logicalIdx = (col > leftBoundary) ? (this.session.getOverwrite() ? col : col - 1) : leftBoundary;\n var visualIdx = bidiUtil.getVisualFromLogicalIdx(logicalIdx, this.bidiMap), levels = this.bidiMap.bidiLevels, left = 0;\n if (!this.session.getOverwrite() && col <= leftBoundary && levels[visualIdx] % 2 !== 0)\n visualIdx++;\n for (var i = 0; i < visualIdx; i++) {\n left += this.charWidths[levels[i]];\n }\n if (!this.session.getOverwrite() && (col > leftBoundary) && (levels[visualIdx] % 2 === 0))\n left += this.charWidths[levels[visualIdx]];\n if (this.wrapIndent)\n left += this.isRtlDir ? (-1 * this.wrapOffset) : this.wrapOffset;\n if (this.isRtlDir)\n left += this.rtlLineOffset;\n return left;\n };\n BidiHandler.prototype.getSelections = function (startCol, endCol) {\n var map = this.bidiMap, levels = map.bidiLevels, level, selections = [], offset = 0, selColMin = Math.min(startCol, endCol) - this.wrapIndent, selColMax = Math.max(startCol, endCol) - this.wrapIndent, isSelected = false, isSelectedPrev = false, selectionStart = 0;\n if (this.wrapIndent)\n offset += this.isRtlDir ? (-1 * this.wrapOffset) : this.wrapOffset;\n for (var logIdx, visIdx = 0; visIdx < levels.length; visIdx++) {\n logIdx = map.logicalFromVisual[visIdx];\n level = levels[visIdx];\n isSelected = (logIdx >= selColMin) && (logIdx < selColMax);\n if (isSelected && !isSelectedPrev) {\n selectionStart = offset;\n }\n else if (!isSelected && isSelectedPrev) {\n selections.push({ left: selectionStart, width: offset - selectionStart });\n }\n offset += this.charWidths[level];\n isSelectedPrev = isSelected;\n }\n if (isSelected && (visIdx === levels.length)) {\n selections.push({ left: selectionStart, width: offset - selectionStart });\n }\n if (this.isRtlDir) {\n for (var i = 0; i < selections.length; i++) {\n selections[i].left += this.rtlLineOffset;\n }\n }\n return selections;\n };\n BidiHandler.prototype.offsetToCol = function (posX) {\n if (this.isRtlDir)\n posX -= this.rtlLineOffset;\n var logicalIdx = 0, posX = Math.max(posX, 0), offset = 0, visualIdx = 0, levels = this.bidiMap.bidiLevels, charWidth = this.charWidths[levels[visualIdx]];\n if (this.wrapIndent)\n posX -= this.isRtlDir ? (-1 * this.wrapOffset) : this.wrapOffset;\n while (posX > offset + charWidth / 2) {\n offset += charWidth;\n if (visualIdx === levels.length - 1) {\n charWidth = 0;\n break;\n }\n charWidth = this.charWidths[levels[++visualIdx]];\n }\n if (visualIdx > 0 && (levels[visualIdx - 1] % 2 !== 0) && (levels[visualIdx] % 2 === 0)) {\n if (posX < offset)\n visualIdx--;\n logicalIdx = this.bidiMap.logicalFromVisual[visualIdx];\n }\n else if (visualIdx > 0 && (levels[visualIdx - 1] % 2 === 0) && (levels[visualIdx] % 2 !== 0)) {\n logicalIdx = 1 + ((posX > offset) ? this.bidiMap.logicalFromVisual[visualIdx]\n : this.bidiMap.logicalFromVisual[visualIdx - 1]);\n }\n else if ((this.isRtlDir && visualIdx === levels.length - 1 && charWidth === 0 && (levels[visualIdx - 1] % 2 === 0))\n || (!this.isRtlDir && visualIdx === 0 && (levels[visualIdx] % 2 !== 0))) {\n logicalIdx = 1 + this.bidiMap.logicalFromVisual[visualIdx];\n }\n else {\n if (visualIdx > 0 && (levels[visualIdx - 1] % 2 !== 0) && charWidth !== 0)\n visualIdx--;\n logicalIdx = this.bidiMap.logicalFromVisual[visualIdx];\n }\n if (logicalIdx === 0 && this.isRtlDir)\n logicalIdx++;\n return (logicalIdx + this.wrapIndent);\n };\n return BidiHandler;\n}());\nexports.BidiHandler = BidiHandler;\n\n});\n\nace.define(\"ace/selection\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar lang = require(\"./lib/lang\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Range = require(\"./range\").Range;\nvar Selection = /** @class */ (function () {\n function Selection(session) {\n this.session = session;\n this.doc = session.getDocument();\n this.clearSelection();\n this.cursor = this.lead = this.doc.createAnchor(0, 0);\n this.anchor = this.doc.createAnchor(0, 0);\n this.$silent = false;\n var self = this;\n this.cursor.on(\"change\", function (e) {\n self.$cursorChanged = true;\n if (!self.$silent)\n self._emit(\"changeCursor\");\n if (!self.$isEmpty && !self.$silent)\n self._emit(\"changeSelection\");\n if (!self.$keepDesiredColumnOnChange && e.old.column != e.value.column)\n self.$desiredColumn = null;\n });\n this.anchor.on(\"change\", function () {\n self.$anchorChanged = true;\n if (!self.$isEmpty && !self.$silent)\n self._emit(\"changeSelection\");\n });\n }\n Selection.prototype.isEmpty = function () {\n return this.$isEmpty || (this.anchor.row == this.lead.row &&\n this.anchor.column == this.lead.column);\n };\n Selection.prototype.isMultiLine = function () {\n return !this.$isEmpty && this.anchor.row != this.cursor.row;\n };\n Selection.prototype.getCursor = function () {\n return this.lead.getPosition();\n };\n Selection.prototype.setAnchor = function (row, column) {\n this.$isEmpty = false;\n this.anchor.setPosition(row, column);\n };\n Selection.prototype.getAnchor = function () {\n if (this.$isEmpty)\n return this.getSelectionLead();\n return this.anchor.getPosition();\n };\n Selection.prototype.getSelectionLead = function () {\n return this.lead.getPosition();\n };\n Selection.prototype.isBackwards = function () {\n var anchor = this.anchor;\n var lead = this.lead;\n return (anchor.row > lead.row || (anchor.row == lead.row && anchor.column > lead.column));\n };\n Selection.prototype.getRange = function () {\n var anchor = this.anchor;\n var lead = this.lead;\n if (this.$isEmpty)\n return Range.fromPoints(lead, lead);\n return this.isBackwards()\n ? Range.fromPoints(lead, anchor)\n : Range.fromPoints(anchor, lead);\n };\n Selection.prototype.clearSelection = function () {\n if (!this.$isEmpty) {\n this.$isEmpty = true;\n this._emit(\"changeSelection\");\n }\n };\n Selection.prototype.selectAll = function () {\n this.$setSelection(0, 0, Number.MAX_VALUE, Number.MAX_VALUE);\n };\n Selection.prototype.setRange = function (range, reverse) {\n var start = reverse ? range.end : range.start;\n var end = reverse ? range.start : range.end;\n this.$setSelection(start.row, start.column, end.row, end.column);\n };\n Selection.prototype.$setSelection = function (anchorRow, anchorColumn, cursorRow, cursorColumn) {\n if (this.$silent)\n return;\n var wasEmpty = this.$isEmpty;\n var wasMultiselect = this.inMultiSelectMode;\n this.$silent = true;\n this.$cursorChanged = this.$anchorChanged = false;\n this.anchor.setPosition(anchorRow, anchorColumn);\n this.cursor.setPosition(cursorRow, cursorColumn);\n this.$isEmpty = !Range.comparePoints(this.anchor, this.cursor);\n this.$silent = false;\n if (this.$cursorChanged)\n this._emit(\"changeCursor\");\n if (this.$cursorChanged || this.$anchorChanged || wasEmpty != this.$isEmpty || wasMultiselect)\n this._emit(\"changeSelection\");\n };\n Selection.prototype.$moveSelection = function (mover) {\n var lead = this.lead;\n if (this.$isEmpty)\n this.setSelectionAnchor(lead.row, lead.column);\n mover.call(this);\n };\n Selection.prototype.selectTo = function (row, column) {\n this.$moveSelection(function () {\n this.moveCursorTo(row, column);\n });\n };\n Selection.prototype.selectToPosition = function (pos) {\n this.$moveSelection(function () {\n this.moveCursorToPosition(pos);\n });\n };\n Selection.prototype.moveTo = function (row, column) {\n this.clearSelection();\n this.moveCursorTo(row, column);\n };\n Selection.prototype.moveToPosition = function (pos) {\n this.clearSelection();\n this.moveCursorToPosition(pos);\n };\n Selection.prototype.selectUp = function () {\n this.$moveSelection(this.moveCursorUp);\n };\n Selection.prototype.selectDown = function () {\n this.$moveSelection(this.moveCursorDown);\n };\n Selection.prototype.selectRight = function () {\n this.$moveSelection(this.moveCursorRight);\n };\n Selection.prototype.selectLeft = function () {\n this.$moveSelection(this.moveCursorLeft);\n };\n Selection.prototype.selectLineStart = function () {\n this.$moveSelection(this.moveCursorLineStart);\n };\n Selection.prototype.selectLineEnd = function () {\n this.$moveSelection(this.moveCursorLineEnd);\n };\n Selection.prototype.selectFileEnd = function () {\n this.$moveSelection(this.moveCursorFileEnd);\n };\n Selection.prototype.selectFileStart = function () {\n this.$moveSelection(this.moveCursorFileStart);\n };\n Selection.prototype.selectWordRight = function () {\n this.$moveSelection(this.moveCursorWordRight);\n };\n Selection.prototype.selectWordLeft = function () {\n this.$moveSelection(this.moveCursorWordLeft);\n };\n Selection.prototype.getWordRange = function (row, column) {\n if (typeof column == \"undefined\") {\n var cursor = row || this.lead;\n row = cursor.row;\n column = cursor.column;\n }\n return this.session.getWordRange(row, column);\n };\n Selection.prototype.selectWord = function () {\n this.setSelectionRange(this.getWordRange());\n };\n Selection.prototype.selectAWord = function () {\n var cursor = this.getCursor();\n var range = this.session.getAWordRange(cursor.row, cursor.column);\n this.setSelectionRange(range);\n };\n Selection.prototype.getLineRange = function (row, excludeLastChar) {\n var rowStart = typeof row == \"number\" ? row : this.lead.row;\n var rowEnd;\n var foldLine = this.session.getFoldLine(rowStart);\n if (foldLine) {\n rowStart = foldLine.start.row;\n rowEnd = foldLine.end.row;\n }\n else {\n rowEnd = rowStart;\n }\n if (excludeLastChar === true)\n return new Range(rowStart, 0, rowEnd, this.session.getLine(rowEnd).length);\n else\n return new Range(rowStart, 0, rowEnd + 1, 0);\n };\n Selection.prototype.selectLine = function () {\n this.setSelectionRange(this.getLineRange());\n };\n Selection.prototype.moveCursorUp = function () {\n this.moveCursorBy(-1, 0);\n };\n Selection.prototype.moveCursorDown = function () {\n this.moveCursorBy(1, 0);\n };\n Selection.prototype.wouldMoveIntoSoftTab = function (cursor, tabSize, direction) {\n var start = cursor.column;\n var end = cursor.column + tabSize;\n if (direction < 0) {\n start = cursor.column - tabSize;\n end = cursor.column;\n }\n return this.session.isTabStop(cursor) && this.doc.getLine(cursor.row).slice(start, end).split(\" \").length - 1 == tabSize;\n };\n Selection.prototype.moveCursorLeft = function () {\n var cursor = this.lead.getPosition(), fold;\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n }\n else if (cursor.column === 0) {\n if (cursor.row > 0) {\n this.moveCursorTo(cursor.row - 1, this.doc.getLine(cursor.row - 1).length);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n if (this.wouldMoveIntoSoftTab(cursor, tabSize, -1) && !this.session.getNavigateWithinSoftTabs()) {\n this.moveCursorBy(0, -tabSize);\n }\n else {\n this.moveCursorBy(0, -1);\n }\n }\n };\n Selection.prototype.moveCursorRight = function () {\n var cursor = this.lead.getPosition(), fold;\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, 1)) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n }\n else if (this.lead.column == this.doc.getLine(this.lead.row).length) {\n if (this.lead.row < this.doc.getLength() - 1) {\n this.moveCursorTo(this.lead.row + 1, 0);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n var cursor = this.lead;\n if (this.wouldMoveIntoSoftTab(cursor, tabSize, 1) && !this.session.getNavigateWithinSoftTabs()) {\n this.moveCursorBy(0, tabSize);\n }\n else {\n this.moveCursorBy(0, 1);\n }\n }\n };\n Selection.prototype.moveCursorLineStart = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var screenRow = this.session.documentToScreenRow(row, column);\n var firstColumnPosition = this.session.screenToDocumentPosition(screenRow, 0);\n var beforeCursor = this.session.getDisplayLine(row, null, firstColumnPosition.row, firstColumnPosition.column);\n var leadingSpace = beforeCursor.match(/^\\s*/);\n if (leadingSpace[0].length != column && !this.session.$useEmacsStyleLineStart)\n firstColumnPosition.column += leadingSpace[0].length;\n this.moveCursorToPosition(firstColumnPosition);\n };\n Selection.prototype.moveCursorLineEnd = function () {\n var lead = this.lead;\n var lineEnd = this.session.getDocumentLastRowColumnPosition(lead.row, lead.column);\n if (this.lead.column == lineEnd.column) {\n var line = this.session.getLine(lineEnd.row);\n if (lineEnd.column == line.length) {\n var textEnd = line.search(/\\s+$/);\n if (textEnd > 0)\n lineEnd.column = textEnd;\n }\n }\n this.moveCursorTo(lineEnd.row, lineEnd.column);\n };\n Selection.prototype.moveCursorFileEnd = function () {\n var row = this.doc.getLength() - 1;\n var column = this.doc.getLine(row).length;\n this.moveCursorTo(row, column);\n };\n Selection.prototype.moveCursorFileStart = function () {\n this.moveCursorTo(0, 0);\n };\n Selection.prototype.moveCursorLongWordRight = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n return;\n }\n if (this.session.nonTokenRe.exec(rightOfCursor)) {\n column += this.session.nonTokenRe.lastIndex;\n this.session.nonTokenRe.lastIndex = 0;\n rightOfCursor = line.substring(column);\n }\n if (column >= line.length) {\n this.moveCursorTo(row, line.length);\n this.moveCursorRight();\n if (row < this.doc.getLength() - 1)\n this.moveCursorWordRight();\n return;\n }\n if (this.session.tokenRe.exec(rightOfCursor)) {\n column += this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n this.moveCursorTo(row, column);\n };\n Selection.prototype.moveCursorLongWordLeft = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n return;\n }\n var str = this.session.getFoldStringAt(row, column, -1);\n if (str == null) {\n str = this.doc.getLine(row).substring(0, column);\n }\n var leftOfCursor = lang.stringReverse(str);\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n if (this.session.nonTokenRe.exec(leftOfCursor)) {\n column -= this.session.nonTokenRe.lastIndex;\n leftOfCursor = leftOfCursor.slice(this.session.nonTokenRe.lastIndex);\n this.session.nonTokenRe.lastIndex = 0;\n }\n if (column <= 0) {\n this.moveCursorTo(row, 0);\n this.moveCursorLeft();\n if (row > 0)\n this.moveCursorWordLeft();\n return;\n }\n if (this.session.tokenRe.exec(leftOfCursor)) {\n column -= this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n this.moveCursorTo(row, column);\n };\n Selection.prototype.$shortWordEndIndex = function (rightOfCursor) {\n var index = 0, ch;\n var whitespaceRe = /\\s/;\n var tokenRe = this.session.tokenRe;\n tokenRe.lastIndex = 0;\n if (this.session.tokenRe.exec(rightOfCursor)) {\n index = this.session.tokenRe.lastIndex;\n }\n else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index++;\n if (index < 1) {\n tokenRe.lastIndex = 0;\n while ((ch = rightOfCursor[index]) && !tokenRe.test(ch)) {\n tokenRe.lastIndex = 0;\n index++;\n if (whitespaceRe.test(ch)) {\n if (index > 2) {\n index--;\n break;\n }\n else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index++;\n if (index > 2)\n break;\n }\n }\n }\n }\n }\n tokenRe.lastIndex = 0;\n return index;\n };\n Selection.prototype.moveCursorShortWordRight = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold)\n return this.moveCursorTo(fold.end.row, fold.end.column);\n if (column == line.length) {\n var l = this.doc.getLength();\n do {\n row++;\n rightOfCursor = this.doc.getLine(row);\n } while (row < l && /^\\s*$/.test(rightOfCursor));\n if (!/^\\s+/.test(rightOfCursor))\n rightOfCursor = \"\";\n column = 0;\n }\n var index = this.$shortWordEndIndex(rightOfCursor);\n this.moveCursorTo(row, column + index);\n };\n Selection.prototype.moveCursorShortWordLeft = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1))\n return this.moveCursorTo(fold.start.row, fold.start.column);\n var line = this.session.getLine(row).substring(0, column);\n if (column === 0) {\n do {\n row--;\n line = this.doc.getLine(row);\n } while (row > 0 && /^\\s*$/.test(line));\n column = line.length;\n if (!/\\s+$/.test(line))\n line = \"\";\n }\n var leftOfCursor = lang.stringReverse(line);\n var index = this.$shortWordEndIndex(leftOfCursor);\n return this.moveCursorTo(row, column - index);\n };\n Selection.prototype.moveCursorWordRight = function () {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordRight();\n else\n this.moveCursorShortWordRight();\n };\n Selection.prototype.moveCursorWordLeft = function () {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordLeft();\n else\n this.moveCursorShortWordLeft();\n };\n Selection.prototype.moveCursorBy = function (rows, chars) {\n var screenPos = this.session.documentToScreenPosition(this.lead.row, this.lead.column);\n var offsetX;\n if (chars === 0) {\n if (rows !== 0) {\n if (this.session.$bidiHandler.isBidiRow(screenPos.row, this.lead.row)) {\n offsetX = this.session.$bidiHandler.getPosLeft(screenPos.column);\n screenPos.column = Math.round(offsetX / this.session.$bidiHandler.charWidths[0]);\n }\n else {\n offsetX = screenPos.column * this.session.$bidiHandler.charWidths[0];\n }\n }\n if (this.$desiredColumn)\n screenPos.column = this.$desiredColumn;\n else\n this.$desiredColumn = screenPos.column;\n }\n if (rows != 0 && this.session.lineWidgets && this.session.lineWidgets[this.lead.row]) {\n var widget = this.session.lineWidgets[this.lead.row];\n if (rows < 0)\n rows -= widget.rowsAbove || 0;\n else if (rows > 0)\n rows += widget.rowCount - (widget.rowsAbove || 0);\n }\n var docPos = this.session.screenToDocumentPosition(screenPos.row + rows, screenPos.column, offsetX);\n if (rows !== 0 && chars === 0 && docPos.row === this.lead.row && docPos.column === this.lead.column) {\n }\n this.moveCursorTo(docPos.row, docPos.column + chars, chars === 0);\n };\n Selection.prototype.moveCursorToPosition = function (position) {\n this.moveCursorTo(position.row, position.column);\n };\n Selection.prototype.moveCursorTo = function (row, column, keepDesiredColumn) {\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n row = fold.start.row;\n column = fold.start.column;\n }\n this.$keepDesiredColumnOnChange = true;\n var line = this.session.getLine(row);\n if (/[\\uDC00-\\uDFFF]/.test(line.charAt(column)) && line.charAt(column - 1)) {\n if (this.lead.row == row && this.lead.column == column + 1)\n column = column - 1;\n else\n column = column + 1;\n }\n this.lead.setPosition(row, column);\n this.$keepDesiredColumnOnChange = false;\n if (!keepDesiredColumn)\n this.$desiredColumn = null;\n };\n Selection.prototype.moveCursorToScreen = function (row, column, keepDesiredColumn) {\n var pos = this.session.screenToDocumentPosition(row, column);\n this.moveCursorTo(pos.row, pos.column, keepDesiredColumn);\n };\n Selection.prototype.detach = function () {\n this.lead.detach();\n this.anchor.detach();\n };\n Selection.prototype.fromOrientedRange = function (range) {\n this.setSelectionRange(range, range.cursor == range.start);\n this.$desiredColumn = range.desiredColumn || this.$desiredColumn;\n };\n Selection.prototype.toOrientedRange = function (range) {\n var r = this.getRange();\n if (range) {\n range.start.column = r.start.column;\n range.start.row = r.start.row;\n range.end.column = r.end.column;\n range.end.row = r.end.row;\n }\n else {\n range = r;\n }\n range.cursor = this.isBackwards() ? range.start : range.end;\n range.desiredColumn = this.$desiredColumn;\n return range;\n };\n Selection.prototype.getRangeOfMovements = function (func) {\n var start = this.getCursor();\n try {\n func(this);\n var end = this.getCursor();\n return Range.fromPoints(start, end);\n }\n catch (e) {\n return Range.fromPoints(start, start);\n }\n finally {\n this.moveCursorToPosition(start);\n }\n };\n Selection.prototype.toJSON = function () {\n if (this.rangeCount) {\n var data = this.ranges.map(function (r) {\n var r1 = r.clone();\n r1.isBackwards = r.cursor == r.start;\n return r1;\n });\n }\n else {\n var data = this.getRange();\n data.isBackwards = this.isBackwards();\n }\n return data;\n };\n Selection.prototype.fromJSON = function (data) {\n if (data.start == undefined) {\n if (this.rangeList && data.length > 1) {\n this.toSingleRange(data[0]);\n for (var i = data.length; i--;) {\n var r = Range.fromPoints(data[i].start, data[i].end);\n if (data[i].isBackwards)\n r.cursor = r.start;\n this.addRange(r, true);\n }\n return;\n }\n else {\n data = data[0];\n }\n }\n if (this.rangeList)\n this.toSingleRange(data);\n this.setSelectionRange(data, data.isBackwards);\n };\n Selection.prototype.isEqual = function (data) {\n if ((data.length || this.rangeCount) && data.length != this.rangeCount)\n return false;\n if (!data.length || !this.ranges)\n return this.getRange().isEqual(data);\n for (var i = this.ranges.length; i--;) {\n if (!this.ranges[i].isEqual(data[i]))\n return false;\n }\n return true;\n };\n return Selection;\n}());\nSelection.prototype.setSelectionAnchor = Selection.prototype.setAnchor;\nSelection.prototype.getSelectionAnchor = Selection.prototype.getAnchor;\nSelection.prototype.setSelectionRange = Selection.prototype.setRange;\noop.implement(Selection.prototype, EventEmitter);\nexports.Selection = Selection;\n\n});\n\nace.define(\"ace/tokenizer\",[\"require\",\"exports\",\"module\",\"ace/lib/report_error\"], function(require, exports, module){\"use strict\";\nvar reportError = require(\"./lib/report_error\").reportError;\nvar MAX_TOKEN_COUNT = 2000;\nvar Tokenizer = /** @class */ (function () {\n function Tokenizer(rules) {\n this.states = rules;\n this.regExps = {};\n this.matchMappings = {};\n for (var key in this.states) {\n var state = this.states[key];\n var ruleRegExps = [];\n var matchTotal = 0;\n var mapping = this.matchMappings[key] = { defaultToken: \"text\" };\n var flag = \"g\";\n var splitterRurles = [];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.defaultToken)\n mapping.defaultToken = rule.defaultToken;\n if (rule.caseInsensitive && flag.indexOf(\"i\") === -1)\n flag += \"i\";\n if (rule.unicode && flag.indexOf(\"u\") === -1)\n flag += \"u\";\n if (rule.regex == null)\n continue;\n if (rule.regex instanceof RegExp)\n rule.regex = rule.regex.toString().slice(1, -1);\n var adjustedregex = rule.regex;\n var matchcount = new RegExp(\"(?:(\" + adjustedregex + \")|(.))\").exec(\"a\").length - 2;\n if (Array.isArray(rule.token)) {\n if (rule.token.length == 1 || matchcount == 1) {\n rule.token = rule.token[0];\n }\n else if (matchcount - 1 != rule.token.length) {\n this.reportError(\"number of classes and regexp groups doesn't match\", {\n rule: rule,\n groupCount: matchcount - 1\n });\n rule.token = rule.token[0];\n }\n else {\n rule.tokenArray = rule.token;\n rule.token = null;\n rule.onMatch = this.$arrayTokens;\n }\n }\n else if (typeof rule.token == \"function\" && !rule.onMatch) {\n if (matchcount > 1)\n rule.onMatch = this.$applyToken;\n else\n rule.onMatch = rule.token;\n }\n if (matchcount > 1) {\n if (/\\\\\\d/.test(rule.regex)) {\n adjustedregex = rule.regex.replace(/\\\\([0-9]+)/g, function (match, digit) {\n return \"\\\\\" + (parseInt(digit, 10) + matchTotal + 1);\n });\n }\n else {\n matchcount = 1;\n adjustedregex = this.removeCapturingGroups(rule.regex);\n }\n if (!rule.splitRegex && typeof rule.token != \"string\")\n splitterRurles.push(rule); // flag will be known only at the very end\n }\n mapping[matchTotal] = i;\n matchTotal += matchcount;\n ruleRegExps.push(adjustedregex);\n if (!rule.onMatch)\n rule.onMatch = null;\n }\n if (!ruleRegExps.length) {\n mapping[0] = 0;\n ruleRegExps.push(\"$\");\n }\n splitterRurles.forEach(function (rule) {\n rule.splitRegex = this.createSplitterRegexp(rule.regex, flag);\n }, this);\n this.regExps[key] = new RegExp(\"(\" + ruleRegExps.join(\")|(\") + \")|($)\", flag);\n }\n }\n Tokenizer.prototype.$setMaxTokenCount = function (m) {\n MAX_TOKEN_COUNT = m | 0;\n };\n Tokenizer.prototype.$applyToken = function (str) {\n var values = this.splitRegex.exec(str).slice(1);\n var types = this.token.apply(this, values);\n if (typeof types === \"string\")\n return [{ type: types, value: str }];\n var tokens = [];\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i]\n };\n }\n return tokens;\n };\n Tokenizer.prototype.$arrayTokens = function (str) {\n if (!str)\n return [];\n var values = this.splitRegex.exec(str);\n if (!values)\n return \"text\";\n var tokens = [];\n var types = this.tokenArray;\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i + 1])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i + 1]\n };\n }\n return tokens;\n };\n Tokenizer.prototype.removeCapturingGroups = function (src) {\n var r = src.replace(/\\\\.|\\[(?:\\\\.|[^\\\\\\]])*|\\(\\?[:=!<]|(\\()/g, function (x, y) { return y ? \"(?:\" : x; });\n return r;\n };\n Tokenizer.prototype.createSplitterRegexp = function (src, flag) {\n if (src.indexOf(\"(?=\") != -1) {\n var stack = 0;\n var inChClass = false;\n var lastCapture = {};\n src.replace(/(\\\\.)|(\\((?:\\?[=!])?)|(\\))|([\\[\\]])/g, function (m, esc, parenOpen, parenClose, square, index) {\n if (inChClass) {\n inChClass = square != \"]\";\n }\n else if (square) {\n inChClass = true;\n }\n else if (parenClose) {\n if (stack == lastCapture.stack) {\n lastCapture.end = index + 1;\n lastCapture.stack = -1;\n }\n stack--;\n }\n else if (parenOpen) {\n stack++;\n if (parenOpen.length != 1) {\n lastCapture.stack = stack;\n lastCapture.start = index;\n }\n }\n return m;\n });\n if (lastCapture.end != null && /^\\)*$/.test(src.substr(lastCapture.end)))\n src = src.substring(0, lastCapture.start) + src.substr(lastCapture.end);\n }\n if (src.charAt(0) != \"^\")\n src = \"^\" + src;\n if (src.charAt(src.length - 1) != \"$\")\n src += \"$\";\n return new RegExp(src, (flag || \"\").replace(\"g\", \"\"));\n };\n Tokenizer.prototype.getLineTokens = function (line, startState) {\n if (startState && typeof startState != \"string\") {\n var stack = startState.slice(0);\n startState = stack[0];\n if (startState === \"#tmp\") {\n stack.shift();\n startState = stack.shift();\n }\n }\n else\n var stack = [];\n var currentState = startState || \"start\";\n var state = this.states[currentState];\n if (!state) {\n currentState = \"start\";\n state = this.states[currentState];\n }\n var mapping = this.matchMappings[currentState];\n var re = this.regExps[currentState];\n re.lastIndex = 0;\n var match, tokens = [];\n var lastIndex = 0;\n var matchAttempts = 0;\n var token = { type: null, value: \"\" };\n while (match = re.exec(line)) {\n var type = mapping.defaultToken;\n var rule = null;\n var value = match[0];\n var index = re.lastIndex;\n if (index - value.length > lastIndex) {\n var skipped = line.substring(lastIndex, index - value.length);\n if (token.type == type) {\n token.value += skipped;\n }\n else {\n if (token.type)\n tokens.push(token);\n token = { type: type, value: skipped };\n }\n }\n for (var i = 0; i < match.length - 2; i++) {\n if (match[i + 1] === undefined)\n continue;\n rule = state[mapping[i]];\n if (rule.onMatch)\n type = rule.onMatch(value, currentState, stack, line);\n else\n type = rule.token;\n if (rule.next) {\n if (typeof rule.next == \"string\") {\n currentState = rule.next;\n }\n else {\n currentState = rule.next(currentState, stack);\n }\n state = this.states[currentState];\n if (!state) {\n this.reportError(\"state doesn't exist\", currentState);\n currentState = \"start\";\n state = this.states[currentState];\n }\n mapping = this.matchMappings[currentState];\n lastIndex = index;\n re = this.regExps[currentState];\n re.lastIndex = index;\n }\n if (rule.consumeLineEnd)\n lastIndex = index;\n break;\n }\n if (value) {\n if (typeof type === \"string\") {\n if ((!rule || rule.merge !== false) && token.type === type) {\n token.value += value;\n }\n else {\n if (token.type)\n tokens.push(token);\n token = { type: type, value: value };\n }\n }\n else if (type) {\n if (token.type)\n tokens.push(token);\n token = { type: null, value: \"\" };\n for (var i = 0; i < type.length; i++)\n tokens.push(type[i]);\n }\n }\n if (lastIndex == line.length)\n break;\n lastIndex = index;\n if (matchAttempts++ > MAX_TOKEN_COUNT) {\n if (matchAttempts > 2 * line.length) {\n this.reportError(\"infinite loop with in ace tokenizer\", {\n startState: startState,\n line: line\n });\n }\n while (lastIndex < line.length) {\n if (token.type)\n tokens.push(token);\n token = {\n value: line.substring(lastIndex, lastIndex += 500),\n type: \"overflow\"\n };\n }\n currentState = \"start\";\n stack = [];\n break;\n }\n }\n if (token.type)\n tokens.push(token);\n if (stack.length > 1) {\n if (stack[0] !== currentState)\n stack.unshift(\"#tmp\", currentState);\n }\n return {\n tokens: tokens,\n state: stack.length ? stack : currentState\n };\n };\n return Tokenizer;\n}());\nTokenizer.prototype.reportError = reportError;\nexports.Tokenizer = Tokenizer;\n\n});\n\nace.define(\"ace/mode/text_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/deep_copy\"], function(require, exports, module){\"use strict\";\nvar deepCopy = require(\"../lib/deep_copy\").deepCopy;\nvar TextHighlightRules = function () {\n this.$rules = {\n \"start\": [{\n token: \"empty_line\",\n regex: '^$'\n }, {\n defaultToken: \"text\"\n }]\n };\n};\n(function () {\n this.addRules = function (rules, prefix) {\n if (!prefix) {\n for (var key in rules)\n this.$rules[key] = rules[key];\n return;\n }\n for (var key in rules) {\n var state = rules[key];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.next || rule.onMatch) {\n if (typeof rule.next == \"string\") {\n if (rule.next.indexOf(prefix) !== 0)\n rule.next = prefix + rule.next;\n }\n if (rule.nextState && rule.nextState.indexOf(prefix) !== 0)\n rule.nextState = prefix + rule.nextState;\n }\n }\n this.$rules[prefix + key] = state;\n }\n };\n this.getRules = function () {\n return this.$rules;\n };\n this.embedRules = function (HighlightRules, prefix, escapeRules, states, append) {\n var embedRules = typeof HighlightRules == \"function\"\n ? new HighlightRules().getRules()\n : HighlightRules;\n if (states) {\n for (var i = 0; i < states.length; i++)\n states[i] = prefix + states[i];\n }\n else {\n states = [];\n for (var key in embedRules)\n states.push(prefix + key);\n }\n this.addRules(embedRules, prefix);\n if (escapeRules) {\n var addRules = Array.prototype[append ? \"push\" : \"unshift\"];\n for (var i = 0; i < states.length; i++)\n addRules.apply(this.$rules[states[i]], deepCopy(escapeRules));\n }\n if (!this.$embeds)\n this.$embeds = [];\n this.$embeds.push(prefix);\n };\n this.getEmbeds = function () {\n return this.$embeds;\n };\n var pushState = function (currentState, stack) {\n if (currentState != \"start\" || stack.length)\n stack.unshift(this.nextState, currentState);\n return this.nextState;\n };\n var popState = function (currentState, stack) {\n stack.shift();\n return stack.shift() || \"start\";\n };\n this.normalizeRules = function () {\n var id = 0;\n var rules = this.$rules;\n function processState(key) {\n var state = rules[key];\n state.processed = true;\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n var toInsert = null;\n if (Array.isArray(rule)) {\n toInsert = rule;\n rule = {};\n }\n if (!rule.regex && rule.start) {\n rule.regex = rule.start;\n if (!rule.next)\n rule.next = [];\n rule.next.push({\n defaultToken: rule.token\n }, {\n token: rule.token + \".end\",\n regex: rule.end || rule.start,\n next: \"pop\"\n });\n rule.token = rule.token + \".start\";\n rule.push = true;\n }\n var next = rule.next || rule.push;\n if (next && Array.isArray(next)) {\n var stateName = rule.stateName;\n if (!stateName) {\n stateName = rule.token;\n if (typeof stateName != \"string\")\n stateName = stateName[0] || \"\";\n if (rules[stateName])\n stateName += id++;\n }\n rules[stateName] = next;\n rule.next = stateName;\n processState(stateName);\n }\n else if (next == \"pop\") {\n rule.next = popState;\n }\n if (rule.push) {\n rule.nextState = rule.next || rule.push;\n rule.next = pushState;\n delete rule.push;\n }\n if (rule.rules) {\n for (var r in rule.rules) {\n if (rules[r]) {\n if (rules[r].push)\n rules[r].push.apply(rules[r], rule.rules[r]);\n }\n else {\n rules[r] = rule.rules[r];\n }\n }\n }\n var includeName = typeof rule == \"string\" ? rule : rule.include;\n if (includeName) {\n if (includeName === \"$self\")\n includeName = \"start\";\n if (Array.isArray(includeName))\n toInsert = includeName.map(function (x) { return rules[x]; });\n else\n toInsert = rules[includeName];\n }\n if (toInsert) {\n var args = [i, 1].concat(toInsert);\n if (rule.noEscape)\n args = args.filter(function (x) { return !x.next; });\n state.splice.apply(state, args);\n i--;\n }\n if (rule.keywordMap) {\n rule.token = this.createKeywordMapper(rule.keywordMap, rule.defaultToken || \"text\", rule.caseInsensitive);\n delete rule.defaultToken;\n }\n }\n }\n Object.keys(rules).forEach(processState, this);\n };\n this.createKeywordMapper = function (map, defaultToken, ignoreCase, splitChar) {\n var keywords = Object.create(null);\n this.$keywordList = [];\n Object.keys(map).forEach(function (className) {\n var a = map[className];\n var list = a.split(splitChar || \"|\");\n for (var i = list.length; i--;) {\n var word = list[i];\n this.$keywordList.push(word);\n if (ignoreCase)\n word = word.toLowerCase();\n keywords[word] = className;\n }\n }, this);\n map = null;\n return ignoreCase\n ? function (value) { return keywords[value.toLowerCase()] || defaultToken; }\n : function (value) { return keywords[value] || defaultToken; };\n };\n this.getKeywords = function () {\n return this.$keywords;\n };\n}).call(TextHighlightRules.prototype);\nexports.TextHighlightRules = TextHighlightRules;\n\n});\n\nace.define(\"ace/mode/behaviour\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar Behaviour = function () {\n this.$behaviours = {};\n};\n(function () {\n this.add = function (name, action, callback) {\n switch (undefined) {\n case this.$behaviours:\n this.$behaviours = {};\n case this.$behaviours[name]:\n this.$behaviours[name] = {};\n }\n this.$behaviours[name][action] = callback;\n };\n this.addBehaviours = function (behaviours) {\n for (var key in behaviours) {\n for (var action in behaviours[key]) {\n this.add(key, action, behaviours[key][action]);\n }\n }\n };\n this.remove = function (name) {\n if (this.$behaviours && this.$behaviours[name]) {\n delete this.$behaviours[name];\n }\n };\n this.inherit = function (mode, filter) {\n if (typeof mode === \"function\") {\n var behaviours = new mode().getBehaviours(filter);\n }\n else {\n var behaviours = mode.getBehaviours(filter);\n }\n this.addBehaviours(behaviours);\n };\n this.getBehaviours = function (filter) {\n if (!filter) {\n return this.$behaviours;\n }\n else {\n var ret = {};\n for (var i = 0; i < filter.length; i++) {\n if (this.$behaviours[filter[i]]) {\n ret[filter[i]] = this.$behaviours[filter[i]];\n }\n }\n return ret;\n }\n };\n}).call(Behaviour.prototype);\nexports.Behaviour = Behaviour;\n\n});\n\nace.define(\"ace/token_iterator\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"./range\").Range;\nvar TokenIterator = /** @class */ (function () {\n function TokenIterator(session, initialRow, initialColumn) {\n this.$session = session;\n this.$row = initialRow;\n this.$rowTokens = session.getTokens(initialRow);\n var token = session.getTokenAt(initialRow, initialColumn);\n this.$tokenIndex = token ? token.index : -1;\n }\n TokenIterator.prototype.stepBackward = function () {\n this.$tokenIndex -= 1;\n while (this.$tokenIndex < 0) {\n this.$row -= 1;\n if (this.$row < 0) {\n this.$row = 0;\n return null;\n }\n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = this.$rowTokens.length - 1;\n }\n return this.$rowTokens[this.$tokenIndex];\n };\n TokenIterator.prototype.stepForward = function () {\n this.$tokenIndex += 1;\n var rowCount;\n while (this.$tokenIndex >= this.$rowTokens.length) {\n this.$row += 1;\n if (!rowCount)\n rowCount = this.$session.getLength();\n if (this.$row >= rowCount) {\n this.$row = rowCount - 1;\n return null;\n }\n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = 0;\n }\n return this.$rowTokens[this.$tokenIndex];\n };\n TokenIterator.prototype.getCurrentToken = function () {\n return this.$rowTokens[this.$tokenIndex];\n };\n TokenIterator.prototype.getCurrentTokenRow = function () {\n return this.$row;\n };\n TokenIterator.prototype.getCurrentTokenColumn = function () {\n var rowTokens = this.$rowTokens;\n var tokenIndex = this.$tokenIndex;\n var column = rowTokens[tokenIndex].start;\n if (column !== undefined)\n return column;\n column = 0;\n while (tokenIndex > 0) {\n tokenIndex -= 1;\n column += rowTokens[tokenIndex].value.length;\n }\n return column;\n };\n TokenIterator.prototype.getCurrentTokenPosition = function () {\n return { row: this.$row, column: this.getCurrentTokenColumn() };\n };\n TokenIterator.prototype.getCurrentTokenRange = function () {\n var token = this.$rowTokens[this.$tokenIndex];\n var column = this.getCurrentTokenColumn();\n return new Range(this.$row, column, this.$row, column + token.value.length);\n };\n return TokenIterator;\n}());\nexports.TokenIterator = TokenIterator;\n\n});\n\nace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\nvar SAFE_INSERT_IN_TOKENS = [\"text\", \"paren.rparen\", \"rparen\", \"paren\", \"punctuation.operator\"];\nvar SAFE_INSERT_BEFORE_TOKENS = [\"text\", \"paren.rparen\", \"rparen\", \"paren\", \"punctuation.operator\", \"comment\"];\nvar context;\nvar contextCache = {};\nvar defaultQuotes = { '\"': '\"', \"'\": \"'\" };\nvar initContext = function (editor) {\n var id = -1;\n if (editor.multiSelect) {\n id = editor.selection.index;\n if (contextCache.rangeCount != editor.multiSelect.rangeCount)\n contextCache = { rangeCount: editor.multiSelect.rangeCount };\n }\n if (contextCache[id])\n return context = contextCache[id];\n context = contextCache[id] = {\n autoInsertedBrackets: 0,\n autoInsertedRow: -1,\n autoInsertedLineEnd: \"\",\n maybeInsertedBrackets: 0,\n maybeInsertedRow: -1,\n maybeInsertedLineStart: \"\",\n maybeInsertedLineEnd: \"\"\n };\n};\nvar getWrapped = function (selection, selected, opening, closing) {\n var rowDiff = selection.end.row - selection.start.row;\n return {\n text: opening + selected + closing,\n selection: [\n 0,\n selection.start.column + 1,\n rowDiff,\n selection.end.column + (rowDiff ? 0 : 1)\n ]\n };\n};\nvar CstyleBehaviour = function (options) {\n options = options || {};\n this.add(\"braces\", \"insertion\", function (state, action, editor, session, text) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (text == '{') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && selected !== \"{\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '{', '}');\n }\n else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n if (/[\\]\\}\\)]/.test(line[cursor.column]) || editor.inMultiSelectMode || options.braces) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"}\");\n return {\n text: '{}',\n selection: [1, 1]\n };\n }\n else {\n CstyleBehaviour.recordMaybeInsert(editor, session, \"{\");\n return {\n text: '{',\n selection: [1, 1]\n };\n }\n }\n }\n else if (text == '}') {\n initContext(editor);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == '}') {\n var matching = session.$findOpeningBracket('}', { column: cursor.column + 1, row: cursor.row });\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n else if (text == \"\\n\" || text == \"\\r\\n\") {\n initContext(editor);\n var closing = \"\";\n if (CstyleBehaviour.isMaybeInsertedClosing(cursor, line)) {\n closing = lang.stringRepeat(\"}\", context.maybeInsertedBrackets);\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === '}') {\n var openBracePos = session.findMatchingBracket({ row: cursor.row, column: cursor.column + 1 }, '}');\n if (!openBracePos)\n return null;\n var next_indent = this.$getIndent(session.getLine(openBracePos.row));\n }\n else if (closing) {\n var next_indent = this.$getIndent(line);\n }\n else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n return;\n }\n var indent = next_indent + session.getTabString();\n return {\n text: '\\n' + indent + '\\n' + next_indent + closing,\n selection: [1, indent.length, 1, indent.length]\n };\n }\n else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n });\n this.add(\"braces\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '{') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.end.column, range.end.column + 1);\n if (rightChar == '}') {\n range.end.column++;\n return range;\n }\n else {\n context.maybeInsertedBrackets--;\n }\n }\n });\n this.add(\"parens\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '(') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '(', ')');\n }\n else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \")\");\n return {\n text: '()',\n selection: [1, 1]\n };\n }\n }\n else if (text == ')') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ')') {\n var matching = session.$findOpeningBracket(')', { column: cursor.column + 1, row: cursor.row });\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n this.add(\"parens\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '(') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ')') {\n range.end.column++;\n return range;\n }\n }\n });\n this.add(\"brackets\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '[') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '[', ']');\n }\n else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"]\");\n return {\n text: '[]',\n selection: [1, 1]\n };\n }\n }\n else if (text == ']') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ']') {\n var matching = session.$findOpeningBracket(']', { column: cursor.column + 1, row: cursor.row });\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n this.add(\"brackets\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '[') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ']') {\n range.end.column++;\n return range;\n }\n }\n });\n this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n var quotes = session.$mode.$quotes || defaultQuotes;\n if (text.length == 1 && quotes[text]) {\n if (this.lineCommentStart && this.lineCommentStart.indexOf(text) != -1)\n return;\n initContext(editor);\n var quote = text;\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && (selected.length != 1 || !quotes[selected]) && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, quote, quote);\n }\n else if (!selected) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var leftChar = line.substring(cursor.column - 1, cursor.column);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n var token = session.getTokenAt(cursor.row, cursor.column);\n var rightToken = session.getTokenAt(cursor.row, cursor.column + 1);\n if (leftChar == \"\\\\\" && token && /escape/.test(token.type))\n return null;\n var stringBefore = token && /string|escape/.test(token.type);\n var stringAfter = !rightToken || /string|escape/.test(rightToken.type);\n var pair;\n if (rightChar == quote) {\n pair = stringBefore !== stringAfter;\n if (pair && /string\\.end/.test(rightToken.type))\n pair = false;\n }\n else {\n if (stringBefore && !stringAfter)\n return null; // wrap string with different quote\n if (stringBefore && stringAfter)\n return null; // do not pair quotes inside strings\n var wordRe = session.$mode.tokenRe;\n wordRe.lastIndex = 0;\n var isWordBefore = wordRe.test(leftChar);\n wordRe.lastIndex = 0;\n var isWordAfter = wordRe.test(rightChar);\n var pairQuotesAfter = session.$mode.$pairQuotesAfter;\n var shouldPairQuotes = pairQuotesAfter && pairQuotesAfter[quote] && pairQuotesAfter[quote].test(leftChar);\n if ((!shouldPairQuotes && isWordBefore) || isWordAfter)\n return null; // before or after alphanumeric\n if (rightChar && !/[\\s;,.})\\]\\\\]/.test(rightChar))\n return null; // there is rightChar and it isn't closing\n var charBefore = line[cursor.column - 2];\n if (leftChar == quote && (charBefore == quote || wordRe.test(charBefore)))\n return null;\n pair = true;\n }\n return {\n text: pair ? quote + quote : \"\",\n selection: [1, 1]\n };\n }\n }\n });\n this.add(\"string_dquotes\", \"deletion\", function (state, action, editor, session, range) {\n var quotes = session.$mode.$quotes || defaultQuotes;\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && quotes.hasOwnProperty(selected)) {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n if (options.closeDocComment !== false) {\n this.add(\"doc comment end\", \"insertion\", function (state, action, editor, session, text) {\n if (state === \"doc-start\" && (text === \"\\n\" || text === \"\\r\\n\") && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var nextLine = session.doc.getLine(cursor.row + 1);\n var indent = this.$getIndent(line);\n if (/\\s*\\*/.test(nextLine)) {\n if (/^\\s*\\*/.test(line)) {\n return {\n text: text + indent + \"* \",\n selection: [1, 3 + indent.length, 1, 3 + indent.length]\n };\n }\n else {\n return {\n text: text + indent + \" * \",\n selection: [1, 3 + indent.length, 1, 3 + indent.length]\n };\n }\n }\n if (/\\/\\*\\*/.test(line.substring(0, cursor.column))) {\n return {\n text: text + indent + \" * \" + text + \" \" + indent + \"*/\",\n selection: [1, 4 + indent.length, 1, 4 + indent.length]\n };\n }\n }\n });\n }\n};\nCstyleBehaviour.isSaneInsertion = function (editor, session) {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n if (!this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS)) {\n if (/[)}\\]]/.test(editor.session.getLine(cursor.row)[cursor.column]))\n return true;\n var iterator2 = new TokenIterator(session, cursor.row, cursor.column + 1);\n if (!this.$matchTokenType(iterator2.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS))\n return false;\n }\n iterator.stepForward();\n return iterator.getCurrentTokenRow() !== cursor.row ||\n this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_BEFORE_TOKENS);\n};\nCstyleBehaviour.$matchTokenType = function (token, types) {\n return types.indexOf(token.type || token) > -1;\n};\nCstyleBehaviour.recordAutoInsert = function (editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isAutoInsertedClosing(cursor, line, context.autoInsertedLineEnd[0]))\n context.autoInsertedBrackets = 0;\n context.autoInsertedRow = cursor.row;\n context.autoInsertedLineEnd = bracket + line.substr(cursor.column);\n context.autoInsertedBrackets++;\n};\nCstyleBehaviour.recordMaybeInsert = function (editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isMaybeInsertedClosing(cursor, line))\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = cursor.row;\n context.maybeInsertedLineStart = line.substr(0, cursor.column) + bracket;\n context.maybeInsertedLineEnd = line.substr(cursor.column);\n context.maybeInsertedBrackets++;\n};\nCstyleBehaviour.isAutoInsertedClosing = function (cursor, line, bracket) {\n return context.autoInsertedBrackets > 0 &&\n cursor.row === context.autoInsertedRow &&\n bracket === context.autoInsertedLineEnd[0] &&\n line.substr(cursor.column) === context.autoInsertedLineEnd;\n};\nCstyleBehaviour.isMaybeInsertedClosing = function (cursor, line) {\n return context.maybeInsertedBrackets > 0 &&\n cursor.row === context.maybeInsertedRow &&\n line.substr(cursor.column) === context.maybeInsertedLineEnd &&\n line.substr(0, cursor.column) == context.maybeInsertedLineStart;\n};\nCstyleBehaviour.popAutoInsertedClosing = function () {\n context.autoInsertedLineEnd = context.autoInsertedLineEnd.substr(1);\n context.autoInsertedBrackets--;\n};\nCstyleBehaviour.clearMaybeInsertedClosing = function () {\n if (context) {\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = -1;\n }\n};\noop.inherits(CstyleBehaviour, Behaviour);\nexports.CstyleBehaviour = CstyleBehaviour;\n\n});\n\nace.define(\"ace/unicode\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar wordChars = [48, 9, 8, 25, 5, 0, 2, 25, 48, 0, 11, 0, 5, 0, 6, 22, 2, 30, 2, 457, 5, 11, 15, 4, 8, 0, 2, 0, 18, 116, 2, 1, 3, 3, 9, 0, 2, 2, 2, 0, 2, 19, 2, 82, 2, 138, 2, 4, 3, 155, 12, 37, 3, 0, 8, 38, 10, 44, 2, 0, 2, 1, 2, 1, 2, 0, 9, 26, 6, 2, 30, 10, 7, 61, 2, 9, 5, 101, 2, 7, 3, 9, 2, 18, 3, 0, 17, 58, 3, 100, 15, 53, 5, 0, 6, 45, 211, 57, 3, 18, 2, 5, 3, 11, 3, 9, 2, 1, 7, 6, 2, 2, 2, 7, 3, 1, 3, 21, 2, 6, 2, 0, 4, 3, 3, 8, 3, 1, 3, 3, 9, 0, 5, 1, 2, 4, 3, 11, 16, 2, 2, 5, 5, 1, 3, 21, 2, 6, 2, 1, 2, 1, 2, 1, 3, 0, 2, 4, 5, 1, 3, 2, 4, 0, 8, 3, 2, 0, 8, 15, 12, 2, 2, 8, 2, 2, 2, 21, 2, 6, 2, 1, 2, 4, 3, 9, 2, 2, 2, 2, 3, 0, 16, 3, 3, 9, 18, 2, 2, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 3, 8, 3, 1, 3, 2, 9, 1, 5, 1, 2, 4, 3, 9, 2, 0, 17, 1, 2, 5, 4, 2, 2, 3, 4, 1, 2, 0, 2, 1, 4, 1, 4, 2, 4, 11, 5, 4, 4, 2, 2, 3, 3, 0, 7, 0, 15, 9, 18, 2, 2, 7, 2, 2, 2, 22, 2, 9, 2, 4, 4, 7, 2, 2, 2, 3, 8, 1, 2, 1, 7, 3, 3, 9, 19, 1, 2, 7, 2, 2, 2, 22, 2, 9, 2, 4, 3, 8, 2, 2, 2, 3, 8, 1, 8, 0, 2, 3, 3, 9, 19, 1, 2, 7, 2, 2, 2, 22, 2, 15, 4, 7, 2, 2, 2, 3, 10, 0, 9, 3, 3, 9, 11, 5, 3, 1, 2, 17, 4, 23, 2, 8, 2, 0, 3, 6, 4, 0, 5, 5, 2, 0, 2, 7, 19, 1, 14, 57, 6, 14, 2, 9, 40, 1, 2, 0, 3, 1, 2, 0, 3, 0, 7, 3, 2, 6, 2, 2, 2, 0, 2, 0, 3, 1, 2, 12, 2, 2, 3, 4, 2, 0, 2, 5, 3, 9, 3, 1, 35, 0, 24, 1, 7, 9, 12, 0, 2, 0, 2, 0, 5, 9, 2, 35, 5, 19, 2, 5, 5, 7, 2, 35, 10, 0, 58, 73, 7, 77, 3, 37, 11, 42, 2, 0, 4, 328, 2, 3, 3, 6, 2, 0, 2, 3, 3, 40, 2, 3, 3, 32, 2, 3, 3, 6, 2, 0, 2, 3, 3, 14, 2, 56, 2, 3, 3, 66, 5, 0, 33, 15, 17, 84, 13, 619, 3, 16, 2, 25, 6, 74, 22, 12, 2, 6, 12, 20, 12, 19, 13, 12, 2, 2, 2, 1, 13, 51, 3, 29, 4, 0, 5, 1, 3, 9, 34, 2, 3, 9, 7, 87, 9, 42, 6, 69, 11, 28, 4, 11, 5, 11, 11, 39, 3, 4, 12, 43, 5, 25, 7, 10, 38, 27, 5, 62, 2, 28, 3, 10, 7, 9, 14, 0, 89, 75, 5, 9, 18, 8, 13, 42, 4, 11, 71, 55, 9, 9, 4, 48, 83, 2, 2, 30, 14, 230, 23, 280, 3, 5, 3, 37, 3, 5, 3, 7, 2, 0, 2, 0, 2, 0, 2, 30, 3, 52, 2, 6, 2, 0, 4, 2, 2, 6, 4, 3, 3, 5, 5, 12, 6, 2, 2, 6, 67, 1, 20, 0, 29, 0, 14, 0, 17, 4, 60, 12, 5, 0, 4, 11, 18, 0, 5, 0, 3, 9, 2, 0, 4, 4, 7, 0, 2, 0, 2, 0, 2, 3, 2, 10, 3, 3, 6, 4, 5, 0, 53, 1, 2684, 46, 2, 46, 2, 132, 7, 6, 15, 37, 11, 53, 10, 0, 17, 22, 10, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 31, 48, 0, 470, 1, 36, 5, 2, 4, 6, 1, 5, 85, 3, 1, 3, 2, 2, 89, 2, 3, 6, 40, 4, 93, 18, 23, 57, 15, 513, 6581, 75, 20939, 53, 1164, 68, 45, 3, 268, 4, 27, 21, 31, 3, 13, 13, 1, 2, 24, 9, 69, 11, 1, 38, 8, 3, 102, 3, 1, 111, 44, 25, 51, 13, 68, 12, 9, 7, 23, 4, 0, 5, 45, 3, 35, 13, 28, 4, 64, 15, 10, 39, 54, 10, 13, 3, 9, 7, 22, 4, 1, 5, 66, 25, 2, 227, 42, 2, 1, 3, 9, 7, 11171, 13, 22, 5, 48, 8453, 301, 3, 61, 3, 105, 39, 6, 13, 4, 6, 11, 2, 12, 2, 4, 2, 0, 2, 1, 2, 1, 2, 107, 34, 362, 19, 63, 3, 53, 41, 11, 5, 15, 17, 6, 13, 1, 25, 2, 33, 4, 2, 134, 20, 9, 8, 25, 5, 0, 2, 25, 12, 88, 4, 5, 3, 5, 3, 5, 3, 2];\nvar code = 0;\nvar str = [];\nfor (var i = 0; i < wordChars.length; i += 2) {\n str.push(code += wordChars[i]);\n if (wordChars[i + 1])\n str.push(45, code += wordChars[i + 1]);\n}\nexports.wordChars = String.fromCharCode.apply(null, str);\n\n});\n\nace.define(\"ace/mode/text\",[\"require\",\"exports\",\"module\",\"ace/config\",\"ace/tokenizer\",\"ace/mode/text_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/unicode\",\"ace/lib/lang\",\"ace/token_iterator\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar config = require(\"../config\");\nvar Tokenizer = require(\"../tokenizer\").Tokenizer;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar unicode = require(\"../unicode\");\nvar lang = require(\"../lib/lang\");\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nvar Range = require(\"../range\").Range;\nvar Mode = function () {\n this.HighlightRules = TextHighlightRules;\n};\n(function () {\n this.$defaultBehaviour = new CstyleBehaviour();\n this.tokenRe = new RegExp(\"^[\" + unicode.wordChars + \"\\\\$_]+\", \"g\");\n this.nonTokenRe = new RegExp(\"^(?:[^\" + unicode.wordChars + \"\\\\$_]|\\\\s])+\", \"g\");\n this.getTokenizer = function () {\n if (!this.$tokenizer) {\n this.$highlightRules = this.$highlightRules || new this.HighlightRules(this.$highlightRuleConfig);\n this.$tokenizer = new Tokenizer(this.$highlightRules.getRules());\n }\n return this.$tokenizer;\n };\n this.lineCommentStart = \"\";\n this.blockComment = \"\";\n this.toggleCommentLines = function (state, session, startRow, endRow) {\n var doc = session.doc;\n var ignoreBlankLines = true;\n var shouldRemove = true;\n var minIndent = Infinity;\n var tabSize = session.getTabSize();\n var insertAtTabStop = false;\n if (!this.lineCommentStart) {\n if (!this.blockComment)\n return false;\n var lineCommentStart = this.blockComment.start;\n var lineCommentEnd = this.blockComment.end;\n var regexpStart = new RegExp(\"^(\\\\s*)(?:\" + lang.escapeRegExp(lineCommentStart) + \")\");\n var regexpEnd = new RegExp(\"(?:\" + lang.escapeRegExp(lineCommentEnd) + \")\\\\s*$\");\n var comment = function (line, i) {\n if (testRemove(line, i))\n return;\n if (!ignoreBlankLines || /\\S/.test(line)) {\n doc.insertInLine({ row: i, column: line.length }, lineCommentEnd);\n doc.insertInLine({ row: i, column: minIndent }, lineCommentStart);\n }\n };\n var uncomment = function (line, i) {\n var m;\n if (m = line.match(regexpEnd))\n doc.removeInLine(i, line.length - m[0].length, line.length);\n if (m = line.match(regexpStart))\n doc.removeInLine(i, m[1].length, m[0].length);\n };\n var testRemove = function (line, row) {\n if (regexpStart.test(line))\n return true;\n var tokens = session.getTokens(row);\n for (var i = 0; i < tokens.length; i++) {\n if (tokens[i].type === \"comment\")\n return true;\n }\n };\n }\n else {\n if (Array.isArray(this.lineCommentStart)) {\n var regexpStart = this.lineCommentStart.map(lang.escapeRegExp).join(\"|\");\n var lineCommentStart = this.lineCommentStart[0];\n }\n else {\n var regexpStart = lang.escapeRegExp(this.lineCommentStart);\n var lineCommentStart = this.lineCommentStart;\n }\n regexpStart = new RegExp(\"^(\\\\s*)(?:\" + regexpStart + \") ?\");\n insertAtTabStop = session.getUseSoftTabs();\n var uncomment = function (line, i) {\n var m = line.match(regexpStart);\n if (!m)\n return;\n var start = m[1].length, end = m[0].length;\n if (!shouldInsertSpace(line, start, end) && m[0][end - 1] == \" \")\n end--;\n doc.removeInLine(i, start, end);\n };\n var commentWithSpace = lineCommentStart + \" \";\n var comment = function (line, i) {\n if (!ignoreBlankLines || /\\S/.test(line)) {\n if (shouldInsertSpace(line, minIndent, minIndent))\n doc.insertInLine({ row: i, column: minIndent }, commentWithSpace);\n else\n doc.insertInLine({ row: i, column: minIndent }, lineCommentStart);\n }\n };\n var testRemove = function (line, i) {\n return regexpStart.test(line);\n };\n var shouldInsertSpace = function (line, before, after) {\n var spaces = 0;\n while (before-- && line.charAt(before) == \" \")\n spaces++;\n if (spaces % tabSize != 0)\n return false;\n var spaces = 0;\n while (line.charAt(after++) == \" \")\n spaces++;\n if (tabSize > 2)\n return spaces % tabSize != tabSize - 1;\n else\n return spaces % tabSize == 0;\n };\n }\n function iter(fun) {\n for (var i = startRow; i <= endRow; i++)\n fun(doc.getLine(i), i);\n }\n var minEmptyLength = Infinity;\n iter(function (line, i) {\n var indent = line.search(/\\S/);\n if (indent !== -1) {\n if (indent < minIndent)\n minIndent = indent;\n if (shouldRemove && !testRemove(line, i))\n shouldRemove = false;\n }\n else if (minEmptyLength > line.length) {\n minEmptyLength = line.length;\n }\n });\n if (minIndent == Infinity) {\n minIndent = minEmptyLength;\n ignoreBlankLines = false;\n shouldRemove = false;\n }\n if (insertAtTabStop && minIndent % tabSize != 0)\n minIndent = Math.floor(minIndent / tabSize) * tabSize;\n iter(shouldRemove ? uncomment : comment);\n };\n this.toggleBlockComment = function (state, session, range, cursor) {\n var comment = this.blockComment;\n if (!comment)\n return;\n if (!comment.start && comment[0])\n comment = comment[0];\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n var sel = session.selection;\n var initialRange = session.selection.toOrientedRange();\n var startRow, colDiff;\n if (token && /comment/.test(token.type)) {\n var startRange, endRange;\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.start);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n startRange = new Range(row, column, row, column + comment.start.length);\n break;\n }\n token = iterator.stepBackward();\n }\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.end);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n endRange = new Range(row, column, row, column + comment.end.length);\n break;\n }\n token = iterator.stepForward();\n }\n if (endRange)\n session.remove(endRange);\n if (startRange) {\n session.remove(startRange);\n startRow = startRange.start.row;\n colDiff = -comment.start.length;\n }\n }\n else {\n colDiff = comment.start.length;\n startRow = range.start.row;\n session.insert(range.end, comment.end);\n session.insert(range.start, comment.start);\n }\n if (initialRange.start.row == startRow)\n initialRange.start.column += colDiff;\n if (initialRange.end.row == startRow)\n initialRange.end.column += colDiff;\n session.selection.fromOrientedRange(initialRange);\n };\n this.getNextLineIndent = function (state, line, tab) {\n return this.$getIndent(line);\n };\n this.checkOutdent = function (state, line, input) {\n return false;\n };\n this.autoOutdent = function (state, doc, row) {\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n this.createWorker = function (session) {\n return null;\n };\n this.createModeDelegates = function (mapping) {\n this.$embeds = [];\n this.$modes = {};\n for (var i in mapping) {\n if (mapping[i]) {\n var Mode = mapping[i];\n var id = Mode.prototype.$id;\n var mode = config.$modes[id];\n if (!mode)\n config.$modes[id] = mode = new Mode();\n if (!config.$modes[i])\n config.$modes[i] = mode;\n this.$embeds.push(i);\n this.$modes[i] = mode;\n }\n }\n var delegations = [\"toggleBlockComment\", \"toggleCommentLines\", \"getNextLineIndent\",\n \"checkOutdent\", \"autoOutdent\", \"transformAction\", \"getCompletions\"];\n for (var i = 0; i < delegations.length; i++) {\n (function (scope) {\n var functionName = delegations[i];\n var defaultHandler = scope[functionName];\n scope[delegations[i]] = function () {\n return this.$delegator(functionName, arguments, defaultHandler);\n };\n }(this));\n }\n };\n this.$delegator = function (method, args, defaultHandler) {\n var state = args[0] || \"start\";\n if (typeof state != \"string\") {\n if (Array.isArray(state[2])) {\n var language = state[2][state[2].length - 1];\n var mode = this.$modes[language];\n if (mode)\n return mode[method].apply(mode, [state[1]].concat([].slice.call(args, 1)));\n }\n state = state[0] || \"start\";\n }\n for (var i = 0; i < this.$embeds.length; i++) {\n if (!this.$modes[this.$embeds[i]])\n continue;\n var split = state.split(this.$embeds[i]);\n if (!split[0] && split[1]) {\n args[0] = split[1];\n var mode = this.$modes[this.$embeds[i]];\n return mode[method].apply(mode, args);\n }\n }\n var ret = defaultHandler.apply(this, args);\n return defaultHandler ? ret : undefined;\n };\n this.transformAction = function (state, action, editor, session, param) {\n if (this.$behaviour) {\n var behaviours = this.$behaviour.getBehaviours();\n for (var key in behaviours) {\n if (behaviours[key][action]) {\n var ret = behaviours[key][action].apply(this, arguments);\n if (ret) {\n return ret;\n }\n }\n }\n }\n };\n this.getKeywords = function (append) {\n if (!this.completionKeywords) {\n var rules = this.$tokenizer.rules;\n var completionKeywords = [];\n for (var rule in rules) {\n var ruleItr = rules[rule];\n for (var r = 0, l = ruleItr.length; r < l; r++) {\n if (typeof ruleItr[r].token === \"string\") {\n if (/keyword|support|storage/.test(ruleItr[r].token))\n completionKeywords.push(ruleItr[r].regex);\n }\n else if (typeof ruleItr[r].token === \"object\") {\n for (var a = 0, aLength = ruleItr[r].token.length; a < aLength; a++) {\n if (/keyword|support|storage/.test(ruleItr[r].token[a])) {\n var rule = ruleItr[r].regex.match(/\\(.+?\\)/g)[a];\n completionKeywords.push(rule.substr(1, rule.length - 2));\n }\n }\n }\n }\n }\n this.completionKeywords = completionKeywords;\n }\n if (!append)\n return this.$keywordList;\n return completionKeywords.concat(this.$keywordList || []);\n };\n this.$createKeywordList = function () {\n if (!this.$highlightRules)\n this.getTokenizer();\n return this.$keywordList = this.$highlightRules.$keywordList || [];\n };\n this.getCompletions = function (state, session, pos, prefix) {\n var keywords = this.$keywordList || this.$createKeywordList();\n return keywords.map(function (word) {\n return {\n name: word,\n value: word,\n score: 0,\n meta: \"keyword\"\n };\n });\n };\n this.$id = \"ace/mode/text\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n});\n\nace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nfunction throwDeltaError(delta, errorText) {\n console.log(\"Invalid Delta:\", delta);\n throw \"Invalid Delta: \" + errorText;\n}\nfunction positionInDocument(docLines, position) {\n return position.row >= 0 && position.row < docLines.length &&\n position.column >= 0 && position.column <= docLines[position.row].length;\n}\nfunction validateDelta(docLines, delta) {\n if (delta.action != \"insert\" && delta.action != \"remove\")\n throwDeltaError(delta, \"delta.action must be 'insert' or 'remove'\");\n if (!(delta.lines instanceof Array))\n throwDeltaError(delta, \"delta.lines must be an Array\");\n if (!delta.start || !delta.end)\n throwDeltaError(delta, \"delta.start/end must be an present\");\n var start = delta.start;\n if (!positionInDocument(docLines, delta.start))\n throwDeltaError(delta, \"delta.start must be contained in document\");\n var end = delta.end;\n if (delta.action == \"remove\" && !positionInDocument(docLines, end))\n throwDeltaError(delta, \"delta.end must contained in document for 'remove' actions\");\n var numRangeRows = end.row - start.row;\n var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0));\n if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars)\n throwDeltaError(delta, \"delta.range must match delta lines\");\n}\nexports.applyDelta = function (docLines, delta, doNotValidate) {\n var row = delta.start.row;\n var startColumn = delta.start.column;\n var line = docLines[row] || \"\";\n switch (delta.action) {\n case \"insert\":\n var lines = delta.lines;\n if (lines.length === 1) {\n docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn);\n }\n else {\n var args = [row, 1].concat(delta.lines);\n docLines.splice.apply(docLines, args);\n docLines[row] = line.substring(0, startColumn) + docLines[row];\n docLines[row + delta.lines.length - 1] += line.substring(startColumn);\n }\n break;\n case \"remove\":\n var endColumn = delta.end.column;\n var endRow = delta.end.row;\n if (row === endRow) {\n docLines[row] = line.substring(0, startColumn) + line.substring(endColumn);\n }\n else {\n docLines.splice(row, endRow - row + 1, line.substring(0, startColumn) + docLines[endRow].substring(endColumn));\n }\n break;\n }\n};\n\n});\n\nace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Anchor = /** @class */ (function () {\n function Anchor(doc, row, column) {\n this.$onChange = this.onChange.bind(this);\n this.attach(doc);\n if (typeof column == \"undefined\")\n this.setPosition(row.row, row.column);\n else\n this.setPosition(row, column);\n }\n Anchor.prototype.getPosition = function () {\n return this.$clipPositionToDocument(this.row, this.column);\n };\n Anchor.prototype.getDocument = function () {\n return this.document;\n };\n Anchor.prototype.onChange = function (delta) {\n if (delta.start.row == delta.end.row && delta.start.row != this.row)\n return;\n if (delta.start.row > this.row)\n return;\n var point = $getTransformedPoint(delta, { row: this.row, column: this.column }, this.$insertRight);\n this.setPosition(point.row, point.column, true);\n };\n Anchor.prototype.setPosition = function (row, column, noClip) {\n var pos;\n if (noClip) {\n pos = {\n row: row,\n column: column\n };\n }\n else {\n pos = this.$clipPositionToDocument(row, column);\n }\n if (this.row == pos.row && this.column == pos.column)\n return;\n var old = {\n row: this.row,\n column: this.column\n };\n this.row = pos.row;\n this.column = pos.column;\n this._signal(\"change\", {\n old: old,\n value: pos\n });\n };\n Anchor.prototype.detach = function () {\n this.document.off(\"change\", this.$onChange);\n };\n Anchor.prototype.attach = function (doc) {\n this.document = doc || this.document;\n this.document.on(\"change\", this.$onChange);\n };\n Anchor.prototype.$clipPositionToDocument = function (row, column) {\n var pos = {};\n if (row >= this.document.getLength()) {\n pos.row = Math.max(0, this.document.getLength() - 1);\n pos.column = this.document.getLine(pos.row).length;\n }\n else if (row < 0) {\n pos.row = 0;\n pos.column = 0;\n }\n else {\n pos.row = row;\n pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));\n }\n if (column < 0)\n pos.column = 0;\n return pos;\n };\n return Anchor;\n}());\nAnchor.prototype.$insertRight = false;\noop.implement(Anchor.prototype, EventEmitter);\nfunction $pointsInOrder(point1, point2, equalPointsInOrder) {\n var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column;\n return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter);\n}\nfunction $getTransformedPoint(delta, point, moveIfEqual) {\n var deltaIsInsert = delta.action == \"insert\";\n var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row - delta.start.row);\n var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column);\n var deltaStart = delta.start;\n var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range.\n if ($pointsInOrder(point, deltaStart, moveIfEqual)) {\n return {\n row: point.row,\n column: point.column\n };\n }\n if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) {\n return {\n row: point.row + deltaRowShift,\n column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0)\n };\n }\n return {\n row: deltaStart.row,\n column: deltaStart.column\n };\n}\nexports.Anchor = Anchor;\n\n});\n\nace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar applyDelta = require(\"./apply_delta\").applyDelta;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Range = require(\"./range\").Range;\nvar Anchor = require(\"./anchor\").Anchor;\nvar Document = /** @class */ (function () {\n function Document(textOrLines) {\n this.$lines = [\"\"];\n if (textOrLines.length === 0) {\n this.$lines = [\"\"];\n }\n else if (Array.isArray(textOrLines)) {\n this.insertMergedLines({ row: 0, column: 0 }, textOrLines);\n }\n else {\n this.insert({ row: 0, column: 0 }, textOrLines);\n }\n }\n Document.prototype.setValue = function (text) {\n var len = this.getLength() - 1;\n this.remove(new Range(0, 0, len, this.getLine(len).length));\n this.insert({ row: 0, column: 0 }, text || \"\");\n };\n Document.prototype.getValue = function () {\n return this.getAllLines().join(this.getNewLineCharacter());\n };\n Document.prototype.createAnchor = function (row, column) {\n return new Anchor(this, row, column);\n };\n Document.prototype.$detectNewLine = function (text) {\n var match = text.match(/^.*?(\\r\\n|\\r|\\n)/m);\n this.$autoNewLine = match ? match[1] : \"\\n\";\n this._signal(\"changeNewLineMode\");\n };\n Document.prototype.getNewLineCharacter = function () {\n switch (this.$newLineMode) {\n case \"windows\":\n return \"\\r\\n\";\n case \"unix\":\n return \"\\n\";\n default:\n return this.$autoNewLine || \"\\n\";\n }\n };\n Document.prototype.setNewLineMode = function (newLineMode) {\n if (this.$newLineMode === newLineMode)\n return;\n this.$newLineMode = newLineMode;\n this._signal(\"changeNewLineMode\");\n };\n Document.prototype.getNewLineMode = function () {\n return this.$newLineMode;\n };\n Document.prototype.isNewLine = function (text) {\n return (text == \"\\r\\n\" || text == \"\\r\" || text == \"\\n\");\n };\n Document.prototype.getLine = function (row) {\n return this.$lines[row] || \"\";\n };\n Document.prototype.getLines = function (firstRow, lastRow) {\n return this.$lines.slice(firstRow, lastRow + 1);\n };\n Document.prototype.getAllLines = function () {\n return this.getLines(0, this.getLength());\n };\n Document.prototype.getLength = function () {\n return this.$lines.length;\n };\n Document.prototype.getTextRange = function (range) {\n return this.getLinesForRange(range).join(this.getNewLineCharacter());\n };\n Document.prototype.getLinesForRange = function (range) {\n var lines;\n if (range.start.row === range.end.row) {\n lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)];\n }\n else {\n lines = this.getLines(range.start.row, range.end.row);\n lines[0] = (lines[0] || \"\").substring(range.start.column);\n var l = lines.length - 1;\n if (range.end.row - range.start.row == l)\n lines[l] = lines[l].substring(0, range.end.column);\n }\n return lines;\n };\n Document.prototype.insertLines = function (row, lines) {\n console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\");\n return this.insertFullLines(row, lines);\n };\n Document.prototype.removeLines = function (firstRow, lastRow) {\n console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\");\n return this.removeFullLines(firstRow, lastRow);\n };\n Document.prototype.insertNewLine = function (position) {\n console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\");\n return this.insertMergedLines(position, [\"\", \"\"]);\n };\n Document.prototype.insert = function (position, text) {\n if (this.getLength() <= 1)\n this.$detectNewLine(text);\n return this.insertMergedLines(position, this.$split(text));\n };\n Document.prototype.insertInLine = function (position, text) {\n var start = this.clippedPos(position.row, position.column);\n var end = this.pos(position.row, position.column + text.length);\n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: [text]\n }, true);\n return this.clonePos(end);\n };\n Document.prototype.clippedPos = function (row, column) {\n var length = this.getLength();\n if (row === undefined) {\n row = length;\n }\n else if (row < 0) {\n row = 0;\n }\n else if (row >= length) {\n row = length - 1;\n column = undefined;\n }\n var line = this.getLine(row);\n if (column == undefined)\n column = line.length;\n column = Math.min(Math.max(column, 0), line.length);\n return { row: row, column: column };\n };\n Document.prototype.clonePos = function (pos) {\n return { row: pos.row, column: pos.column };\n };\n Document.prototype.pos = function (row, column) {\n return { row: row, column: column };\n };\n Document.prototype.$clipPosition = function (position) {\n var length = this.getLength();\n if (position.row >= length) {\n position.row = Math.max(0, length - 1);\n position.column = this.getLine(length - 1).length;\n }\n else {\n position.row = Math.max(0, position.row);\n position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length);\n }\n return position;\n };\n Document.prototype.insertFullLines = function (row, lines) {\n row = Math.min(Math.max(row, 0), this.getLength());\n var column = 0;\n if (row < this.getLength()) {\n lines = lines.concat([\"\"]);\n column = 0;\n }\n else {\n lines = [\"\"].concat(lines);\n row--;\n column = this.$lines[row].length;\n }\n this.insertMergedLines({ row: row, column: column }, lines);\n };\n Document.prototype.insertMergedLines = function (position, lines) {\n var start = this.clippedPos(position.row, position.column);\n var end = {\n row: start.row + lines.length - 1,\n column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length\n };\n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: lines\n });\n return this.clonePos(end);\n };\n Document.prototype.remove = function (range) {\n var start = this.clippedPos(range.start.row, range.start.column);\n var end = this.clippedPos(range.end.row, range.end.column);\n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({ start: start, end: end })\n });\n return this.clonePos(start);\n };\n Document.prototype.removeInLine = function (row, startColumn, endColumn) {\n var start = this.clippedPos(row, startColumn);\n var end = this.clippedPos(row, endColumn);\n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({ start: start, end: end })\n }, true);\n return this.clonePos(start);\n };\n Document.prototype.removeFullLines = function (firstRow, lastRow) {\n firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1);\n lastRow = Math.min(Math.max(0, lastRow), this.getLength() - 1);\n var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0;\n var deleteLastNewLine = lastRow < this.getLength() - 1;\n var startRow = (deleteFirstNewLine ? firstRow - 1 : firstRow);\n var startCol = (deleteFirstNewLine ? this.getLine(startRow).length : 0);\n var endRow = (deleteLastNewLine ? lastRow + 1 : lastRow);\n var endCol = (deleteLastNewLine ? 0 : this.getLine(endRow).length);\n var range = new Range(startRow, startCol, endRow, endCol);\n var deletedLines = this.$lines.slice(firstRow, lastRow + 1);\n this.applyDelta({\n start: range.start,\n end: range.end,\n action: \"remove\",\n lines: this.getLinesForRange(range)\n });\n return deletedLines;\n };\n Document.prototype.removeNewLine = function (row) {\n if (row < this.getLength() - 1 && row >= 0) {\n this.applyDelta({\n start: this.pos(row, this.getLine(row).length),\n end: this.pos(row + 1, 0),\n action: \"remove\",\n lines: [\"\", \"\"]\n });\n }\n };\n Document.prototype.replace = function (range, text) {\n if (!(range instanceof Range))\n range = Range.fromPoints(range.start, range.end);\n if (text.length === 0 && range.isEmpty())\n return range.start;\n if (text == this.getTextRange(range))\n return range.end;\n this.remove(range);\n var end;\n if (text) {\n end = this.insert(range.start, text);\n }\n else {\n end = range.start;\n }\n return end;\n };\n Document.prototype.applyDeltas = function (deltas) {\n for (var i = 0; i < deltas.length; i++) {\n this.applyDelta(deltas[i]);\n }\n };\n Document.prototype.revertDeltas = function (deltas) {\n for (var i = deltas.length - 1; i >= 0; i--) {\n this.revertDelta(deltas[i]);\n }\n };\n Document.prototype.applyDelta = function (delta, doNotValidate) {\n var isInsert = delta.action == \"insert\";\n if (isInsert ? delta.lines.length <= 1 && !delta.lines[0]\n : !Range.comparePoints(delta.start, delta.end)) {\n return;\n }\n if (isInsert && delta.lines.length > 20000) {\n this.$splitAndapplyLargeDelta(delta, 20000);\n }\n else {\n applyDelta(this.$lines, delta, doNotValidate);\n this._signal(\"change\", delta);\n }\n };\n Document.prototype.$safeApplyDelta = function (delta) {\n var docLength = this.$lines.length;\n if (delta.action == \"remove\" && delta.start.row < docLength && delta.end.row < docLength\n || delta.action == \"insert\" && delta.start.row <= docLength) {\n this.applyDelta(delta);\n }\n };\n Document.prototype.$splitAndapplyLargeDelta = function (delta, MAX) {\n var lines = delta.lines;\n var l = lines.length - MAX + 1;\n var row = delta.start.row;\n var column = delta.start.column;\n for (var from = 0, to = 0; from < l; from = to) {\n to += MAX - 1;\n var chunk = lines.slice(from, to);\n chunk.push(\"\");\n this.applyDelta({\n start: this.pos(row + from, column),\n end: this.pos(row + to, column = 0),\n action: delta.action,\n lines: chunk\n }, true);\n }\n delta.lines = lines.slice(from);\n delta.start.row = row + from;\n delta.start.column = column;\n this.applyDelta(delta, true);\n };\n Document.prototype.revertDelta = function (delta) {\n this.$safeApplyDelta({\n start: this.clonePos(delta.start),\n end: this.clonePos(delta.end),\n action: (delta.action == \"insert\" ? \"remove\" : \"insert\"),\n lines: delta.lines.slice()\n });\n };\n Document.prototype.indexToPosition = function (index, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n for (var i = startRow || 0, l = lines.length; i < l; i++) {\n index -= lines[i].length + newlineLength;\n if (index < 0)\n return { row: i, column: index + lines[i].length + newlineLength };\n }\n return { row: l - 1, column: index + lines[l - 1].length + newlineLength };\n };\n Document.prototype.positionToIndex = function (pos, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n var index = 0;\n var row = Math.min(pos.row, lines.length);\n for (var i = startRow || 0; i < row; ++i)\n index += lines[i].length + newlineLength;\n return index + pos.column;\n };\n Document.prototype.$split = function (text) {\n return text.split(/\\r\\n|\\r|\\n/);\n };\n return Document;\n}());\nDocument.prototype.$autoNewLine = \"\";\nDocument.prototype.$newLineMode = \"auto\";\noop.implement(Document.prototype, EventEmitter);\nexports.Document = Document;\n\n});\n\nace.define(\"ace/background_tokenizer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar BackgroundTokenizer = /** @class */ (function () {\n function BackgroundTokenizer(tokenizer, editor) {\n this.running = false;\n this.lines = [];\n this.states = [];\n this.currentLine = 0;\n this.tokenizer = tokenizer;\n var self = this;\n this.$worker = function () {\n if (!self.running) {\n return;\n }\n var workerStart = new Date();\n var currentLine = self.currentLine;\n var endLine = -1;\n var doc = self.doc;\n var startLine = currentLine;\n while (self.lines[currentLine])\n currentLine++;\n var len = doc.getLength();\n var processedLines = 0;\n self.running = false;\n while (currentLine < len) {\n self.$tokenizeRow(currentLine);\n endLine = currentLine;\n do {\n currentLine++;\n } while (self.lines[currentLine]);\n processedLines++;\n if ((processedLines % 5 === 0) && (new Date() - workerStart) > 20) {\n self.running = setTimeout(self.$worker, 20);\n break;\n }\n }\n self.currentLine = currentLine;\n if (endLine == -1)\n endLine = currentLine;\n if (startLine <= endLine)\n self.fireUpdateEvent(startLine, endLine);\n };\n }\n BackgroundTokenizer.prototype.setTokenizer = function (tokenizer) {\n this.tokenizer = tokenizer;\n this.lines = [];\n this.states = [];\n this.start(0);\n };\n BackgroundTokenizer.prototype.setDocument = function (doc) {\n this.doc = doc;\n this.lines = [];\n this.states = [];\n this.stop();\n };\n BackgroundTokenizer.prototype.fireUpdateEvent = function (firstRow, lastRow) {\n var data = {\n first: firstRow,\n last: lastRow\n };\n this._signal(\"update\", { data: data });\n };\n BackgroundTokenizer.prototype.start = function (startRow) {\n this.currentLine = Math.min(startRow || 0, this.currentLine, this.doc.getLength());\n this.lines.splice(this.currentLine, this.lines.length);\n this.states.splice(this.currentLine, this.states.length);\n this.stop();\n this.running = setTimeout(this.$worker, 700);\n };\n BackgroundTokenizer.prototype.scheduleStart = function () {\n if (!this.running)\n this.running = setTimeout(this.$worker, 700);\n };\n BackgroundTokenizer.prototype.$updateOnChange = function (delta) {\n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n if (len === 0) {\n this.lines[startRow] = null;\n }\n else if (delta.action == \"remove\") {\n this.lines.splice(startRow, len + 1, null);\n this.states.splice(startRow, len + 1, null);\n }\n else {\n var args = Array(len + 1);\n args.unshift(startRow, 1);\n this.lines.splice.apply(this.lines, args);\n this.states.splice.apply(this.states, args);\n }\n this.currentLine = Math.min(startRow, this.currentLine, this.doc.getLength());\n this.stop();\n };\n BackgroundTokenizer.prototype.stop = function () {\n if (this.running)\n clearTimeout(this.running);\n this.running = false;\n };\n BackgroundTokenizer.prototype.getTokens = function (row) {\n return this.lines[row] || this.$tokenizeRow(row);\n };\n BackgroundTokenizer.prototype.getState = function (row) {\n if (this.currentLine == row)\n this.$tokenizeRow(row);\n return this.states[row] || \"start\";\n };\n BackgroundTokenizer.prototype.$tokenizeRow = function (row) {\n var line = this.doc.getLine(row);\n var state = this.states[row - 1];\n var data = this.tokenizer.getLineTokens(line, state, row);\n if (this.states[row] + \"\" !== data.state + \"\") {\n this.states[row] = data.state;\n this.lines[row + 1] = null;\n if (this.currentLine > row + 1)\n this.currentLine = row + 1;\n }\n else if (this.currentLine == row) {\n this.currentLine = row + 1;\n }\n return this.lines[row] = data.tokens;\n };\n BackgroundTokenizer.prototype.cleanup = function () {\n this.running = false;\n this.lines = [];\n this.states = [];\n this.currentLine = 0;\n this.removeAllListeners();\n };\n return BackgroundTokenizer;\n}());\noop.implement(BackgroundTokenizer.prototype, EventEmitter);\nexports.BackgroundTokenizer = BackgroundTokenizer;\n\n});\n\nace.define(\"ace/search_highlight\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar lang = require(\"./lib/lang\");\nvar Range = require(\"./range\").Range;\nvar SearchHighlight = /** @class */ (function () {\n function SearchHighlight(regExp, clazz, type) {\n if (type === void 0) { type = \"text\"; }\n this.setRegexp(regExp);\n this.clazz = clazz;\n this.type = type;\n }\n SearchHighlight.prototype.setRegexp = function (regExp) {\n if (this.regExp + \"\" == regExp + \"\")\n return;\n this.regExp = regExp;\n this.cache = [];\n };\n SearchHighlight.prototype.update = function (html, markerLayer, session, config) {\n if (!this.regExp)\n return;\n var start = config.firstRow, end = config.lastRow;\n var renderedMarkerRanges = {};\n for (var i = start; i <= end; i++) {\n var ranges = this.cache[i];\n if (ranges == null) {\n ranges = lang.getMatchOffsets(session.getLine(i), this.regExp);\n if (ranges.length > this.MAX_RANGES)\n ranges = ranges.slice(0, this.MAX_RANGES);\n ranges = ranges.map(function (match) {\n return new Range(i, match.offset, i, match.offset + match.length);\n });\n this.cache[i] = ranges.length ? ranges : \"\";\n }\n for (var j = ranges.length; j--;) {\n var rangeToAddMarkerTo = ranges[j].toScreenRange(session);\n var rangeAsString = rangeToAddMarkerTo.toString();\n if (renderedMarkerRanges[rangeAsString])\n continue;\n renderedMarkerRanges[rangeAsString] = true;\n markerLayer.drawSingleLineMarker(html, rangeToAddMarkerTo, this.clazz, config);\n }\n }\n };\n return SearchHighlight;\n}());\nSearchHighlight.prototype.MAX_RANGES = 500;\nexports.SearchHighlight = SearchHighlight;\n\n});\n\nace.define(\"ace/undomanager\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar UndoManager = /** @class */ (function () {\n function UndoManager() {\n this.$maxRev = 0;\n this.$fromUndo = false;\n this.$undoDepth = Infinity;\n this.reset();\n }\n UndoManager.prototype.addSession = function (session) {\n this.$session = session;\n };\n UndoManager.prototype.add = function (delta, allowMerge, session) {\n if (this.$fromUndo)\n return;\n if (delta == this.$lastDelta)\n return;\n if (!this.$keepRedoStack)\n this.$redoStack.length = 0;\n if (allowMerge === false || !this.lastDeltas) {\n this.lastDeltas = [];\n var undoStackLength = this.$undoStack.length;\n if (undoStackLength > this.$undoDepth - 1) {\n this.$undoStack.splice(0, undoStackLength - this.$undoDepth + 1);\n }\n this.$undoStack.push(this.lastDeltas);\n delta.id = this.$rev = ++this.$maxRev;\n }\n if (delta.action == \"remove\" || delta.action == \"insert\")\n this.$lastDelta = delta;\n this.lastDeltas.push(delta);\n };\n UndoManager.prototype.addSelection = function (selection, rev) {\n this.selections.push({\n value: selection,\n rev: rev || this.$rev\n });\n };\n UndoManager.prototype.startNewGroup = function () {\n this.lastDeltas = null;\n return this.$rev;\n };\n UndoManager.prototype.markIgnored = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n var stack = this.$undoStack;\n for (var i = stack.length; i--;) {\n var delta = stack[i][0];\n if (delta.id <= from)\n break;\n if (delta.id < to)\n delta.ignore = true;\n }\n this.lastDeltas = null;\n };\n UndoManager.prototype.getSelection = function (rev, after) {\n var stack = this.selections;\n for (var i = stack.length; i--;) {\n var selection = stack[i];\n if (selection.rev < rev) {\n if (after)\n selection = stack[i + 1];\n return selection;\n }\n }\n };\n UndoManager.prototype.getRevision = function () {\n return this.$rev;\n };\n UndoManager.prototype.getDeltas = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n var stack = this.$undoStack;\n var end = null, start = 0;\n for (var i = stack.length; i--;) {\n var delta = stack[i][0];\n if (delta.id < to && !end)\n end = i + 1;\n if (delta.id <= from) {\n start = i + 1;\n break;\n }\n }\n return stack.slice(start, end);\n };\n UndoManager.prototype.getChangedRanges = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n };\n UndoManager.prototype.getChangedLines = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n };\n UndoManager.prototype.undo = function (session, dontSelect) {\n this.lastDeltas = null;\n var stack = this.$undoStack;\n if (!rearrangeUndoStack(stack, stack.length))\n return;\n if (!session)\n session = this.$session;\n if (this.$redoStackBaseRev !== this.$rev && this.$redoStack.length)\n this.$redoStack = [];\n this.$fromUndo = true;\n var deltaSet = stack.pop();\n var undoSelectionRange = null;\n if (deltaSet) {\n undoSelectionRange = session.undoChanges(deltaSet, dontSelect);\n this.$redoStack.push(deltaSet);\n this.$syncRev();\n }\n this.$fromUndo = false;\n return undoSelectionRange;\n };\n UndoManager.prototype.redo = function (session, dontSelect) {\n this.lastDeltas = null;\n if (!session)\n session = this.$session;\n this.$fromUndo = true;\n if (this.$redoStackBaseRev != this.$rev) {\n var diff = this.getDeltas(this.$redoStackBaseRev, this.$rev + 1);\n rebaseRedoStack(this.$redoStack, diff);\n this.$redoStackBaseRev = this.$rev;\n this.$redoStack.forEach(function (x) {\n x[0].id = ++this.$maxRev;\n }, this);\n }\n var deltaSet = this.$redoStack.pop();\n var redoSelectionRange = null;\n if (deltaSet) {\n redoSelectionRange = session.redoChanges(deltaSet, dontSelect);\n this.$undoStack.push(deltaSet);\n this.$syncRev();\n }\n this.$fromUndo = false;\n return redoSelectionRange;\n };\n UndoManager.prototype.$syncRev = function () {\n var stack = this.$undoStack;\n var nextDelta = stack[stack.length - 1];\n var id = nextDelta && nextDelta[0].id || 0;\n this.$redoStackBaseRev = id;\n this.$rev = id;\n };\n UndoManager.prototype.reset = function () {\n this.lastDeltas = null;\n this.$lastDelta = null;\n this.$undoStack = [];\n this.$redoStack = [];\n this.$rev = 0;\n this.mark = 0;\n this.$redoStackBaseRev = this.$rev;\n this.selections = [];\n };\n UndoManager.prototype.canUndo = function () {\n return this.$undoStack.length > 0;\n };\n UndoManager.prototype.canRedo = function () {\n return this.$redoStack.length > 0;\n };\n UndoManager.prototype.bookmark = function (rev) {\n if (rev == undefined)\n rev = this.$rev;\n this.mark = rev;\n };\n UndoManager.prototype.isAtBookmark = function () {\n return this.$rev === this.mark;\n };\n UndoManager.prototype.toJSON = function () {\n return {\n $redoStack: this.$redoStack,\n $undoStack: this.$undoStack\n };\n };\n UndoManager.prototype.fromJSON = function (json) {\n this.reset();\n this.$undoStack = json.$undoStack;\n this.$redoStack = json.$redoStack;\n };\n UndoManager.prototype.$prettyPrint = function (delta) {\n if (delta)\n return stringifyDelta(delta);\n return stringifyDelta(this.$undoStack) + \"\\n---\\n\" + stringifyDelta(this.$redoStack);\n };\n return UndoManager;\n}());\nUndoManager.prototype.hasUndo = UndoManager.prototype.canUndo;\nUndoManager.prototype.hasRedo = UndoManager.prototype.canRedo;\nUndoManager.prototype.isClean = UndoManager.prototype.isAtBookmark;\nUndoManager.prototype.markClean = UndoManager.prototype.bookmark;\nfunction rearrangeUndoStack(stack, pos) {\n for (var i = pos; i--;) {\n var deltaSet = stack[i];\n if (deltaSet && !deltaSet[0].ignore) {\n while (i < pos - 1) {\n var swapped = swapGroups(stack[i], stack[i + 1]);\n stack[i] = swapped[0];\n stack[i + 1] = swapped[1];\n i++;\n }\n return true;\n }\n }\n}\nvar Range = require(\"./range\").Range;\nvar cmp = Range.comparePoints;\nvar comparePoints = Range.comparePoints;\nfunction $updateMarkers(delta) {\n var isInsert = delta.action == \"insert\";\n var start = delta.start;\n var end = delta.end;\n var rowShift = (end.row - start.row) * (isInsert ? 1 : -1);\n var colShift = (end.column - start.column) * (isInsert ? 1 : -1);\n if (isInsert)\n end = start;\n for (var i in this.marks) {\n var point = this.marks[i];\n var cmp = comparePoints(point, start);\n if (cmp < 0) {\n continue; // delta starts after the range\n }\n if (cmp === 0) {\n if (isInsert) {\n if (point.bias == 1) {\n cmp = 1;\n }\n else {\n point.bias == -1;\n continue;\n }\n }\n }\n var cmp2 = isInsert ? cmp : comparePoints(point, end);\n if (cmp2 > 0) {\n point.row += rowShift;\n point.column += point.row == end.row ? colShift : 0;\n continue;\n }\n if (!isInsert && cmp2 <= 0) {\n point.row = start.row;\n point.column = start.column;\n if (cmp2 === 0)\n point.bias = 1;\n }\n }\n}\nfunction clonePos(pos) {\n return { row: pos.row, column: pos.column };\n}\nfunction cloneDelta(d) {\n return {\n start: clonePos(d.start),\n end: clonePos(d.end),\n action: d.action,\n lines: d.lines.slice()\n };\n}\nfunction stringifyDelta(d) {\n d = d || this;\n if (Array.isArray(d)) {\n return d.map(stringifyDelta).join(\"\\n\");\n }\n var type = \"\";\n if (d.action) {\n type = d.action == \"insert\" ? \"+\" : \"-\";\n type += \"[\" + d.lines + \"]\";\n }\n else if (d.value) {\n if (Array.isArray(d.value)) {\n type = d.value.map(stringifyRange).join(\"\\n\");\n }\n else {\n type = stringifyRange(d.value);\n }\n }\n if (d.start) {\n type += stringifyRange(d);\n }\n if (d.id || d.rev) {\n type += \"\\t(\" + (d.id || d.rev) + \")\";\n }\n return type;\n}\nfunction stringifyRange(r) {\n return r.start.row + \":\" + r.start.column\n + \"=>\" + r.end.row + \":\" + r.end.column;\n}\nfunction swap(d1, d2) {\n var i1 = d1.action == \"insert\";\n var i2 = d2.action == \"insert\";\n if (i1 && i2) {\n if (cmp(d2.start, d1.end) >= 0) {\n shift(d2, d1, -1);\n }\n else if (cmp(d2.start, d1.start) <= 0) {\n shift(d1, d2, +1);\n }\n else {\n return null;\n }\n }\n else if (i1 && !i2) {\n if (cmp(d2.start, d1.end) >= 0) {\n shift(d2, d1, -1);\n }\n else if (cmp(d2.end, d1.start) <= 0) {\n shift(d1, d2, -1);\n }\n else {\n return null;\n }\n }\n else if (!i1 && i2) {\n if (cmp(d2.start, d1.start) >= 0) {\n shift(d2, d1, +1);\n }\n else if (cmp(d2.start, d1.start) <= 0) {\n shift(d1, d2, +1);\n }\n else {\n return null;\n }\n }\n else if (!i1 && !i2) {\n if (cmp(d2.start, d1.start) >= 0) {\n shift(d2, d1, +1);\n }\n else if (cmp(d2.end, d1.start) <= 0) {\n shift(d1, d2, -1);\n }\n else {\n return null;\n }\n }\n return [d2, d1];\n}\nfunction swapGroups(ds1, ds2) {\n for (var i = ds1.length; i--;) {\n for (var j = 0; j < ds2.length; j++) {\n if (!swap(ds1[i], ds2[j])) {\n while (i < ds1.length) {\n while (j--) {\n swap(ds2[j], ds1[i]);\n }\n j = ds2.length;\n i++;\n }\n return [ds1, ds2];\n }\n }\n }\n ds1.selectionBefore = ds2.selectionBefore =\n ds1.selectionAfter = ds2.selectionAfter = null;\n return [ds2, ds1];\n}\nfunction xform(d1, c1) {\n var i1 = d1.action == \"insert\";\n var i2 = c1.action == \"insert\";\n if (i1 && i2) {\n if (cmp(d1.start, c1.start) < 0) {\n shift(c1, d1, 1);\n }\n else {\n shift(d1, c1, 1);\n }\n }\n else if (i1 && !i2) {\n if (cmp(d1.start, c1.end) >= 0) {\n shift(d1, c1, -1);\n }\n else if (cmp(d1.start, c1.start) <= 0) {\n shift(c1, d1, +1);\n }\n else {\n shift(d1, Range.fromPoints(c1.start, d1.start), -1);\n shift(c1, d1, +1);\n }\n }\n else if (!i1 && i2) {\n if (cmp(c1.start, d1.end) >= 0) {\n shift(c1, d1, -1);\n }\n else if (cmp(c1.start, d1.start) <= 0) {\n shift(d1, c1, +1);\n }\n else {\n shift(c1, Range.fromPoints(d1.start, c1.start), -1);\n shift(d1, c1, +1);\n }\n }\n else if (!i1 && !i2) {\n if (cmp(c1.start, d1.end) >= 0) {\n shift(c1, d1, -1);\n }\n else if (cmp(c1.end, d1.start) <= 0) {\n shift(d1, c1, -1);\n }\n else {\n var before, after;\n if (cmp(d1.start, c1.start) < 0) {\n before = d1;\n d1 = splitDelta(d1, c1.start);\n }\n if (cmp(d1.end, c1.end) > 0) {\n after = splitDelta(d1, c1.end);\n }\n shiftPos(c1.end, d1.start, d1.end, -1);\n if (after && !before) {\n d1.lines = after.lines;\n d1.start = after.start;\n d1.end = after.end;\n after = d1;\n }\n return [c1, before, after].filter(Boolean);\n }\n }\n return [c1, d1];\n}\nfunction shift(d1, d2, dir) {\n shiftPos(d1.start, d2.start, d2.end, dir);\n shiftPos(d1.end, d2.start, d2.end, dir);\n}\nfunction shiftPos(pos, start, end, dir) {\n if (pos.row == (dir == 1 ? start : end).row) {\n pos.column += dir * (end.column - start.column);\n }\n pos.row += dir * (end.row - start.row);\n}\nfunction splitDelta(c, pos) {\n var lines = c.lines;\n var end = c.end;\n c.end = clonePos(pos);\n var rowsBefore = c.end.row - c.start.row;\n var otherLines = lines.splice(rowsBefore, lines.length);\n var col = rowsBefore ? pos.column : pos.column - c.start.column;\n lines.push(otherLines[0].substring(0, col));\n otherLines[0] = otherLines[0].substr(col);\n var rest = {\n start: clonePos(pos),\n end: end,\n lines: otherLines,\n action: c.action\n };\n return rest;\n}\nfunction moveDeltasByOne(redoStack, d) {\n d = cloneDelta(d);\n for (var j = redoStack.length; j--;) {\n var deltaSet = redoStack[j];\n for (var i = 0; i < deltaSet.length; i++) {\n var x = deltaSet[i];\n var xformed = xform(x, d);\n d = xformed[0];\n if (xformed.length != 2) {\n if (xformed[2]) {\n deltaSet.splice(i + 1, 1, xformed[1], xformed[2]);\n i++;\n }\n else if (!xformed[1]) {\n deltaSet.splice(i, 1);\n i--;\n }\n }\n }\n if (!deltaSet.length) {\n redoStack.splice(j, 1);\n }\n }\n return redoStack;\n}\nfunction rebaseRedoStack(redoStack, deltaSets) {\n for (var i = 0; i < deltaSets.length; i++) {\n var deltas = deltaSets[i];\n for (var j = 0; j < deltas.length; j++) {\n moveDeltasByOne(redoStack, deltas[j]);\n }\n }\n}\nexports.UndoManager = UndoManager;\n\n});\n\nace.define(\"ace/edit_session/fold_line\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar FoldLine = /** @class */ (function () {\n function FoldLine(foldData, folds) {\n this.foldData = foldData;\n if (Array.isArray(folds)) {\n this.folds = folds;\n }\n else {\n folds = this.folds = [folds];\n }\n var last = folds[folds.length - 1];\n this.range = new Range(folds[0].start.row, folds[0].start.column, last.end.row, last.end.column);\n this.start = this.range.start;\n this.end = this.range.end;\n this.folds.forEach(function (fold) {\n fold.setFoldLine(this);\n }, this);\n }\n FoldLine.prototype.shiftRow = function (shift) {\n this.start.row += shift;\n this.end.row += shift;\n this.folds.forEach(function (fold) {\n fold.start.row += shift;\n fold.end.row += shift;\n });\n };\n FoldLine.prototype.addFold = function (fold) {\n if (fold.sameRow) {\n if (fold.start.row < this.startRow || fold.endRow > this.endRow) {\n throw new Error(\"Can't add a fold to this FoldLine as it has no connection\");\n }\n this.folds.push(fold);\n this.folds.sort(function (a, b) {\n return -a.range.compareEnd(b.start.row, b.start.column);\n });\n if (this.range.compareEnd(fold.start.row, fold.start.column) > 0) {\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n }\n else if (this.range.compareStart(fold.end.row, fold.end.column) < 0) {\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n }\n }\n else if (fold.start.row == this.end.row) {\n this.folds.push(fold);\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n }\n else if (fold.end.row == this.start.row) {\n this.folds.unshift(fold);\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n }\n else {\n throw new Error(\"Trying to add fold to FoldRow that doesn't have a matching row\");\n }\n fold.foldLine = this;\n };\n FoldLine.prototype.containsRow = function (row) {\n return row >= this.start.row && row <= this.end.row;\n };\n FoldLine.prototype.walk = function (callback, endRow, endColumn) {\n var lastEnd = 0, folds = this.folds, fold, cmp, stop, isNewRow = true;\n if (endRow == null) {\n endRow = this.end.row;\n endColumn = this.end.column;\n }\n for (var i = 0; i < folds.length; i++) {\n fold = folds[i];\n cmp = fold.range.compareStart(endRow, endColumn);\n if (cmp == -1) {\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n return;\n }\n stop = callback(null, fold.start.row, fold.start.column, lastEnd, isNewRow);\n stop = !stop && callback(fold.placeholder, fold.start.row, fold.start.column, lastEnd);\n if (stop || cmp === 0) {\n return;\n }\n isNewRow = !fold.sameRow;\n lastEnd = fold.end.column;\n }\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n };\n FoldLine.prototype.getNextFoldTo = function (row, column) {\n var fold, cmp;\n for (var i = 0; i < this.folds.length; i++) {\n fold = this.folds[i];\n cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n return {\n fold: fold,\n kind: \"after\"\n };\n }\n else if (cmp === 0) {\n return {\n fold: fold,\n kind: \"inside\"\n };\n }\n }\n return null;\n };\n FoldLine.prototype.addRemoveChars = function (row, column, len) {\n var ret = this.getNextFoldTo(row, column), fold, folds;\n if (ret) {\n fold = ret.fold;\n if (ret.kind == \"inside\"\n && fold.start.column != column\n && fold.start.row != row) {\n window.console && window.console.log(row, column, fold);\n }\n else if (fold.start.row == row) {\n folds = this.folds;\n var i = folds.indexOf(fold);\n if (i === 0) {\n this.start.column += len;\n }\n for (i; i < folds.length; i++) {\n fold = folds[i];\n fold.start.column += len;\n if (!fold.sameRow) {\n return;\n }\n fold.end.column += len;\n }\n this.end.column += len;\n }\n }\n };\n FoldLine.prototype.split = function (row, column) {\n var pos = this.getNextFoldTo(row, column);\n if (!pos || pos.kind == \"inside\")\n return null;\n var fold = pos.fold;\n var folds = this.folds;\n var foldData = this.foldData;\n var i = folds.indexOf(fold);\n var foldBefore = folds[i - 1];\n this.end.row = foldBefore.end.row;\n this.end.column = foldBefore.end.column;\n folds = folds.splice(i, folds.length - i);\n var newFoldLine = new FoldLine(foldData, folds);\n foldData.splice(foldData.indexOf(this) + 1, 0, newFoldLine);\n return newFoldLine;\n };\n FoldLine.prototype.merge = function (foldLineNext) {\n var folds = foldLineNext.folds;\n for (var i = 0; i < folds.length; i++) {\n this.addFold(folds[i]);\n }\n var foldData = this.foldData;\n foldData.splice(foldData.indexOf(foldLineNext), 1);\n };\n FoldLine.prototype.toString = function () {\n var ret = [this.range.toString() + \": [\"];\n this.folds.forEach(function (fold) {\n ret.push(\" \" + fold.toString());\n });\n ret.push(\"]\");\n return ret.join(\"\\n\");\n };\n FoldLine.prototype.idxToPosition = function (idx) {\n var lastFoldEndColumn = 0;\n for (var i = 0; i < this.folds.length; i++) {\n var fold = this.folds[i];\n idx -= fold.start.column - lastFoldEndColumn;\n if (idx < 0) {\n return {\n row: fold.start.row,\n column: fold.start.column + idx\n };\n }\n idx -= fold.placeholder.length;\n if (idx < 0) {\n return fold.start;\n }\n lastFoldEndColumn = fold.end.column;\n }\n return {\n row: this.end.row,\n column: this.end.column + idx\n };\n };\n return FoldLine;\n}());\nexports.FoldLine = FoldLine;\n\n});\n\nace.define(\"ace/range_list\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"./range\").Range;\nvar comparePoints = Range.comparePoints;\nvar RangeList = /** @class */ (function () {\n function RangeList() {\n this.ranges = [];\n this.$bias = 1;\n }\n RangeList.prototype.pointIndex = function (pos, excludeEdges, startIndex) {\n var list = this.ranges;\n for (var i = startIndex || 0; i < list.length; i++) {\n var range = list[i];\n var cmpEnd = comparePoints(pos, range.end);\n if (cmpEnd > 0)\n continue;\n var cmpStart = comparePoints(pos, range.start);\n if (cmpEnd === 0)\n return excludeEdges && cmpStart !== 0 ? -i - 2 : i;\n if (cmpStart > 0 || (cmpStart === 0 && !excludeEdges))\n return i;\n return -i - 1;\n }\n return -i - 1;\n };\n RangeList.prototype.add = function (range) {\n var excludeEdges = !range.isEmpty();\n var startIndex = this.pointIndex(range.start, excludeEdges);\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n var endIndex = this.pointIndex(range.end, excludeEdges, startIndex);\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n else\n endIndex++;\n return this.ranges.splice(startIndex, endIndex - startIndex, range);\n };\n RangeList.prototype.addList = function (list) {\n var removed = [];\n for (var i = list.length; i--;) {\n removed.push.apply(removed, this.add(list[i]));\n }\n return removed;\n };\n RangeList.prototype.substractPoint = function (pos) {\n var i = this.pointIndex(pos);\n if (i >= 0)\n return this.ranges.splice(i, 1);\n };\n RangeList.prototype.merge = function () {\n var removed = [];\n var list = this.ranges;\n list = list.sort(function (a, b) {\n return comparePoints(a.start, b.start);\n });\n var next = list[0], range;\n for (var i = 1; i < list.length; i++) {\n range = next;\n next = list[i];\n var cmp = comparePoints(range.end, next.start);\n if (cmp < 0)\n continue;\n if (cmp == 0 && !range.isEmpty() && !next.isEmpty())\n continue;\n if (comparePoints(range.end, next.end) < 0) {\n range.end.row = next.end.row;\n range.end.column = next.end.column;\n }\n list.splice(i, 1);\n removed.push(next);\n next = range;\n i--;\n }\n this.ranges = list;\n return removed;\n };\n RangeList.prototype.contains = function (row, column) {\n return this.pointIndex({ row: row, column: column }) >= 0;\n };\n RangeList.prototype.containsPoint = function (pos) {\n return this.pointIndex(pos) >= 0;\n };\n RangeList.prototype.rangeAtPoint = function (pos) {\n var i = this.pointIndex(pos);\n if (i >= 0)\n return this.ranges[i];\n };\n RangeList.prototype.clipRows = function (startRow, endRow) {\n var list = this.ranges;\n if (list[0].start.row > endRow || list[list.length - 1].start.row < startRow)\n return [];\n var startIndex = this.pointIndex({ row: startRow, column: 0 });\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n var endIndex = this.pointIndex({ row: endRow, column: 0 }, startIndex);\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n var clipped = [];\n for (var i = startIndex; i < endIndex; i++) {\n clipped.push(list[i]);\n }\n return clipped;\n };\n RangeList.prototype.removeAll = function () {\n return this.ranges.splice(0, this.ranges.length);\n };\n RangeList.prototype.attach = function (session) {\n if (this.session)\n this.detach();\n this.session = session;\n this.onChange = this.$onChange.bind(this);\n this.session.on('change', this.onChange);\n };\n RangeList.prototype.detach = function () {\n if (!this.session)\n return;\n this.session.removeListener('change', this.onChange);\n this.session = null;\n };\n RangeList.prototype.$onChange = function (delta) {\n var start = delta.start;\n var end = delta.end;\n var startRow = start.row;\n var endRow = end.row;\n var ranges = this.ranges;\n for (var i = 0, n = ranges.length; i < n; i++) {\n var r = ranges[i];\n if (r.end.row >= startRow)\n break;\n }\n if (delta.action == \"insert\") {\n var lineDif = endRow - startRow;\n var colDiff = -start.column + end.column;\n for (; i < n; i++) {\n var r = ranges[i];\n if (r.start.row > startRow)\n break;\n if (r.start.row == startRow && r.start.column >= start.column) {\n if (r.start.column == start.column && this.$bias <= 0) {\n }\n else {\n r.start.column += colDiff;\n r.start.row += lineDif;\n }\n }\n if (r.end.row == startRow && r.end.column >= start.column) {\n if (r.end.column == start.column && this.$bias < 0) {\n continue;\n }\n if (r.end.column == start.column && colDiff > 0 && i < n - 1) {\n if (r.end.column > r.start.column && r.end.column == ranges[i + 1].start.column)\n r.end.column -= colDiff;\n }\n r.end.column += colDiff;\n r.end.row += lineDif;\n }\n }\n }\n else {\n var lineDif = startRow - endRow;\n var colDiff = start.column - end.column;\n for (; i < n; i++) {\n var r = ranges[i];\n if (r.start.row > endRow)\n break;\n if (r.end.row < endRow\n && (startRow < r.end.row\n || startRow == r.end.row && start.column < r.end.column)) {\n r.end.row = startRow;\n r.end.column = start.column;\n }\n else if (r.end.row == endRow) {\n if (r.end.column <= end.column) {\n if (lineDif || r.end.column > start.column) {\n r.end.column = start.column;\n r.end.row = start.row;\n }\n }\n else {\n r.end.column += colDiff;\n r.end.row += lineDif;\n }\n }\n else if (r.end.row > endRow) {\n r.end.row += lineDif;\n }\n if (r.start.row < endRow\n && (startRow < r.start.row\n || startRow == r.start.row && start.column < r.start.column)) {\n r.start.row = startRow;\n r.start.column = start.column;\n }\n else if (r.start.row == endRow) {\n if (r.start.column <= end.column) {\n if (lineDif || r.start.column > start.column) {\n r.start.column = start.column;\n r.start.row = start.row;\n }\n }\n else {\n r.start.column += colDiff;\n r.start.row += lineDif;\n }\n }\n else if (r.start.row > endRow) {\n r.start.row += lineDif;\n }\n }\n }\n if (lineDif != 0 && i < n) {\n for (; i < n; i++) {\n var r = ranges[i];\n r.start.row += lineDif;\n r.end.row += lineDif;\n }\n }\n };\n return RangeList;\n}());\nRangeList.prototype.comparePoints = comparePoints;\nexports.RangeList = RangeList;\n\n});\n\nace.define(\"ace/edit_session/fold\",[\"require\",\"exports\",\"module\",\"ace/range_list\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar RangeList = require(\"../range_list\").RangeList;\nvar Fold = /** @class */ (function (_super) {\n __extends(Fold, _super);\n function Fold(range, placeholder) {\n var _this = _super.call(this) || this;\n _this.foldLine = null;\n _this.placeholder = placeholder;\n _this.range = range;\n _this.start = range.start;\n _this.end = range.end;\n _this.sameRow = range.start.row == range.end.row;\n _this.subFolds = _this.ranges = [];\n return _this;\n }\n Fold.prototype.toString = function () {\n return '\"' + this.placeholder + '\" ' + this.range.toString();\n };\n Fold.prototype.setFoldLine = function (foldLine) {\n this.foldLine = foldLine;\n this.subFolds.forEach(function (fold) {\n fold.setFoldLine(foldLine);\n });\n };\n Fold.prototype.clone = function () {\n var range = this.range.clone();\n var fold = new Fold(range, this.placeholder);\n this.subFolds.forEach(function (subFold) {\n fold.subFolds.push(subFold.clone());\n });\n fold.collapseChildren = this.collapseChildren;\n return fold;\n };\n Fold.prototype.addSubFold = function (fold) {\n if (this.range.isEqual(fold))\n return;\n consumeRange(fold, this.start);\n var row = fold.start.row, column = fold.start.column;\n for (var i = 0, cmp = -1; i < this.subFolds.length; i++) {\n cmp = this.subFolds[i].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n var afterStart = this.subFolds[i];\n var firstConsumed = 0;\n if (cmp == 0) {\n if (afterStart.range.containsRange(fold))\n return afterStart.addSubFold(fold);\n else\n firstConsumed = 1;\n }\n var row = fold.range.end.row, column = fold.range.end.column;\n for (var j = i, cmp = -1; j < this.subFolds.length; j++) {\n cmp = this.subFolds[j].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n if (cmp == 0)\n j++;\n var consumedFolds = this.subFolds.splice(i, j - i, fold);\n var last = cmp == 0 ? consumedFolds.length - 1 : consumedFolds.length;\n for (var k = firstConsumed; k < last; k++) {\n fold.addSubFold(consumedFolds[k]);\n }\n fold.setFoldLine(this.foldLine);\n return fold;\n };\n Fold.prototype.restoreRange = function (range) {\n return restoreRange(range, this.start);\n };\n return Fold;\n}(RangeList));\nfunction consumePoint(point, anchor) {\n point.row -= anchor.row;\n if (point.row == 0)\n point.column -= anchor.column;\n}\nfunction consumeRange(range, anchor) {\n consumePoint(range.start, anchor);\n consumePoint(range.end, anchor);\n}\nfunction restorePoint(point, anchor) {\n if (point.row == 0)\n point.column += anchor.column;\n point.row += anchor.row;\n}\nfunction restoreRange(range, anchor) {\n restorePoint(range.start, anchor);\n restorePoint(range.end, anchor);\n}\nexports.Fold = Fold;\n\n});\n\nace.define(\"ace/edit_session/folding\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/edit_session/fold_line\",\"ace/edit_session/fold\",\"ace/token_iterator\",\"ace/mouse/mouse_event\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar FoldLine = require(\"./fold_line\").FoldLine;\nvar Fold = require(\"./fold\").Fold;\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nvar MouseEvent = require(\"../mouse/mouse_event\").MouseEvent;\nfunction Folding() {\n this.getFoldAt = function (row, column, side) {\n var foldLine = this.getFoldLine(row);\n if (!foldLine)\n return null;\n var folds = foldLine.folds;\n for (var i = 0; i < folds.length; i++) {\n var range = folds[i].range;\n if (range.contains(row, column)) {\n if (side == 1 && range.isEnd(row, column) && !range.isEmpty()) {\n continue;\n }\n else if (side == -1 && range.isStart(row, column) && !range.isEmpty()) {\n continue;\n }\n return folds[i];\n }\n }\n };\n this.getFoldsInRange = function (range) {\n var start = range.start;\n var end = range.end;\n var foldLines = this.$foldData;\n var foundFolds = [];\n start.column += 1;\n end.column -= 1;\n for (var i = 0; i < foldLines.length; i++) {\n var cmp = foldLines[i].range.compareRange(range);\n if (cmp == 2) {\n continue;\n }\n else if (cmp == -2) {\n break;\n }\n var folds = foldLines[i].folds;\n for (var j = 0; j < folds.length; j++) {\n var fold = folds[j];\n cmp = fold.range.compareRange(range);\n if (cmp == -2) {\n break;\n }\n else if (cmp == 2) {\n continue;\n }\n else \n if (cmp == 42) {\n break;\n }\n foundFolds.push(fold);\n }\n }\n start.column -= 1;\n end.column += 1;\n return foundFolds;\n };\n this.getFoldsInRangeList = function (ranges) {\n if (Array.isArray(ranges)) {\n var folds = [];\n ranges.forEach(function (range) {\n folds = folds.concat(this.getFoldsInRange(range));\n }, this);\n }\n else {\n var folds = this.getFoldsInRange(ranges);\n }\n return folds;\n };\n this.getAllFolds = function () {\n var folds = [];\n var foldLines = this.$foldData;\n for (var i = 0; i < foldLines.length; i++)\n for (var j = 0; j < foldLines[i].folds.length; j++)\n folds.push(foldLines[i].folds[j]);\n return folds;\n };\n this.getFoldStringAt = function (row, column, trim, foldLine) {\n foldLine = foldLine || this.getFoldLine(row);\n if (!foldLine)\n return null;\n var lastFold = {\n end: { column: 0 }\n };\n var str, fold;\n for (var i = 0; i < foldLine.folds.length; i++) {\n fold = foldLine.folds[i];\n var cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n str = this\n .getLine(fold.start.row)\n .substring(lastFold.end.column, fold.start.column);\n break;\n }\n else if (cmp === 0) {\n return null;\n }\n lastFold = fold;\n }\n if (!str)\n str = this.getLine(fold.start.row).substring(lastFold.end.column);\n if (trim == -1)\n return str.substring(0, column - lastFold.end.column);\n else if (trim == 1)\n return str.substring(column - lastFold.end.column);\n else\n return str;\n };\n this.getFoldLine = function (docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.start.row <= docRow && foldLine.end.row >= docRow) {\n return foldLine;\n }\n else if (foldLine.end.row > docRow) {\n return null;\n }\n }\n return null;\n };\n this.getNextFoldLine = function (docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.end.row >= docRow) {\n return foldLine;\n }\n }\n return null;\n };\n this.getFoldedRowCount = function (first, last) {\n var foldData = this.$foldData, rowCount = last - first + 1;\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i], end = foldLine.end.row, start = foldLine.start.row;\n if (end >= last) {\n if (start < last) {\n if (start >= first)\n rowCount -= last - start;\n else\n rowCount = 0; // in one fold\n }\n break;\n }\n else if (end >= first) {\n if (start >= first) // fold inside range\n rowCount -= end - start;\n else\n rowCount -= end - first + 1;\n }\n }\n return rowCount;\n };\n this.$addFoldLine = function (foldLine) {\n this.$foldData.push(foldLine);\n this.$foldData.sort(function (a, b) {\n return a.start.row - b.start.row;\n });\n return foldLine;\n };\n this.addFold = function (placeholder, range) {\n var foldData = this.$foldData;\n var added = false;\n var fold;\n if (placeholder instanceof Fold)\n fold = placeholder;\n else {\n fold = new Fold(range, placeholder);\n fold.collapseChildren = range.collapseChildren;\n }\n this.$clipRangeToDocument(fold.range);\n var startRow = fold.start.row;\n var startColumn = fold.start.column;\n var endRow = fold.end.row;\n var endColumn = fold.end.column;\n var startFold = this.getFoldAt(startRow, startColumn, 1);\n var endFold = this.getFoldAt(endRow, endColumn, -1);\n if (startFold && endFold == startFold)\n return startFold.addSubFold(fold);\n if (startFold && !startFold.range.isStart(startRow, startColumn))\n this.removeFold(startFold);\n if (endFold && !endFold.range.isEnd(endRow, endColumn))\n this.removeFold(endFold);\n var folds = this.getFoldsInRange(fold.range);\n if (folds.length > 0) {\n this.removeFolds(folds);\n if (!fold.collapseChildren) {\n folds.forEach(function (subFold) {\n fold.addSubFold(subFold);\n });\n }\n }\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (endRow == foldLine.start.row) {\n foldLine.addFold(fold);\n added = true;\n break;\n }\n else if (startRow == foldLine.end.row) {\n foldLine.addFold(fold);\n added = true;\n if (!fold.sameRow) {\n var foldLineNext = foldData[i + 1];\n if (foldLineNext && foldLineNext.start.row == endRow) {\n foldLine.merge(foldLineNext);\n break;\n }\n }\n break;\n }\n else if (endRow <= foldLine.start.row) {\n break;\n }\n }\n if (!added)\n foldLine = this.$addFoldLine(new FoldLine(this.$foldData, fold));\n if (this.$useWrapMode)\n this.$updateWrapData(foldLine.start.row, foldLine.start.row);\n else\n this.$updateRowLengthCache(foldLine.start.row, foldLine.start.row);\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"add\" });\n return fold;\n };\n this.addFolds = function (folds) {\n folds.forEach(function (fold) {\n this.addFold(fold);\n }, this);\n };\n this.removeFold = function (fold) {\n var foldLine = fold.foldLine;\n var startRow = foldLine.start.row;\n var endRow = foldLine.end.row;\n var foldLines = this.$foldData;\n var folds = foldLine.folds;\n if (folds.length == 1) {\n foldLines.splice(foldLines.indexOf(foldLine), 1);\n }\n else \n if (foldLine.range.isEnd(fold.end.row, fold.end.column)) {\n folds.pop();\n foldLine.end.row = folds[folds.length - 1].end.row;\n foldLine.end.column = folds[folds.length - 1].end.column;\n }\n else \n if (foldLine.range.isStart(fold.start.row, fold.start.column)) {\n folds.shift();\n foldLine.start.row = folds[0].start.row;\n foldLine.start.column = folds[0].start.column;\n }\n else \n if (fold.sameRow) {\n folds.splice(folds.indexOf(fold), 1);\n }\n else \n {\n var newFoldLine = foldLine.split(fold.start.row, fold.start.column);\n folds = newFoldLine.folds;\n folds.shift();\n newFoldLine.start.row = folds[0].start.row;\n newFoldLine.start.column = folds[0].start.column;\n }\n if (!this.$updating) {\n if (this.$useWrapMode)\n this.$updateWrapData(startRow, endRow);\n else\n this.$updateRowLengthCache(startRow, endRow);\n }\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"remove\" });\n };\n this.removeFolds = function (folds) {\n var cloneFolds = [];\n for (var i = 0; i < folds.length; i++) {\n cloneFolds.push(folds[i]);\n }\n cloneFolds.forEach(function (fold) {\n this.removeFold(fold);\n }, this);\n this.$modified = true;\n };\n this.expandFold = function (fold) {\n this.removeFold(fold);\n fold.subFolds.forEach(function (subFold) {\n fold.restoreRange(subFold);\n this.addFold(subFold);\n }, this);\n if (fold.collapseChildren > 0) {\n this.foldAll(fold.start.row + 1, fold.end.row, fold.collapseChildren - 1);\n }\n fold.subFolds = [];\n };\n this.expandFolds = function (folds) {\n folds.forEach(function (fold) {\n this.expandFold(fold);\n }, this);\n };\n this.unfold = function (location, expandInner) {\n var range, folds;\n if (location == null) {\n range = new Range(0, 0, this.getLength(), 0);\n if (expandInner == null)\n expandInner = true;\n }\n else if (typeof location == \"number\") {\n range = new Range(location, 0, location, this.getLine(location).length);\n }\n else if (\"row\" in location) {\n range = Range.fromPoints(location, location);\n }\n else if (Array.isArray(location)) {\n folds = [];\n location.forEach(function (range) {\n folds = folds.concat(this.unfold(range));\n }, this);\n return folds;\n }\n else {\n range = location;\n }\n folds = this.getFoldsInRangeList(range);\n var outermostFolds = folds;\n while (folds.length == 1\n && Range.comparePoints(folds[0].start, range.start) < 0\n && Range.comparePoints(folds[0].end, range.end) > 0) {\n this.expandFolds(folds);\n folds = this.getFoldsInRangeList(range);\n }\n if (expandInner != false) {\n this.removeFolds(folds);\n }\n else {\n this.expandFolds(folds);\n }\n if (outermostFolds.length)\n return outermostFolds;\n };\n this.isRowFolded = function (docRow, startFoldRow) {\n return !!this.getFoldLine(docRow, startFoldRow);\n };\n this.getRowFoldEnd = function (docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.end.row : docRow;\n };\n this.getRowFoldStart = function (docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.start.row : docRow;\n };\n this.getFoldDisplayLine = function (foldLine, endRow, endColumn, startRow, startColumn) {\n if (startRow == null)\n startRow = foldLine.start.row;\n if (startColumn == null)\n startColumn = 0;\n if (endRow == null)\n endRow = foldLine.end.row;\n if (endColumn == null)\n endColumn = this.getLine(endRow).length;\n var doc = this.doc;\n var textLine = \"\";\n foldLine.walk(function (placeholder, row, column, lastColumn) {\n if (row < startRow)\n return;\n if (row == startRow) {\n if (column < startColumn)\n return;\n lastColumn = Math.max(startColumn, lastColumn);\n }\n if (placeholder != null) {\n textLine += placeholder;\n }\n else {\n textLine += doc.getLine(row).substring(lastColumn, column);\n }\n }, endRow, endColumn);\n return textLine;\n };\n this.getDisplayLine = function (row, endColumn, startRow, startColumn) {\n var foldLine = this.getFoldLine(row);\n if (!foldLine) {\n var line;\n line = this.doc.getLine(row);\n return line.substring(startColumn || 0, endColumn || line.length);\n }\n else {\n return this.getFoldDisplayLine(foldLine, row, endColumn, startRow, startColumn);\n }\n };\n this.$cloneFoldData = function () {\n var fd = [];\n fd = this.$foldData.map(function (foldLine) {\n var folds = foldLine.folds.map(function (fold) {\n return fold.clone();\n });\n return new FoldLine(fd, folds);\n });\n return fd;\n };\n this.toggleFold = function (tryToUnfold) {\n var selection = this.selection;\n var range = selection.getRange();\n var fold;\n var bracketPos;\n if (range.isEmpty()) {\n var cursor = range.start;\n fold = this.getFoldAt(cursor.row, cursor.column);\n if (fold) {\n this.expandFold(fold);\n return;\n }\n else if (bracketPos = this.findMatchingBracket(cursor)) {\n if (range.comparePoint(bracketPos) == 1) {\n range.end = bracketPos;\n }\n else {\n range.start = bracketPos;\n range.start.column++;\n range.end.column--;\n }\n }\n else if (bracketPos = this.findMatchingBracket({ row: cursor.row, column: cursor.column + 1 })) {\n if (range.comparePoint(bracketPos) == 1)\n range.end = bracketPos;\n else\n range.start = bracketPos;\n range.start.column++;\n }\n else {\n range = this.getCommentFoldRange(cursor.row, cursor.column) || range;\n }\n }\n else {\n var folds = this.getFoldsInRange(range);\n if (tryToUnfold && folds.length) {\n this.expandFolds(folds);\n return;\n }\n else if (folds.length == 1) {\n fold = folds[0];\n }\n }\n if (!fold)\n fold = this.getFoldAt(range.start.row, range.start.column);\n if (fold && fold.range.toString() == range.toString()) {\n this.expandFold(fold);\n return;\n }\n var placeholder = \"...\";\n if (!range.isMultiLine()) {\n placeholder = this.getTextRange(range);\n if (placeholder.length < 4)\n return;\n placeholder = placeholder.trim().substring(0, 2) + \"..\";\n }\n this.addFold(placeholder, range);\n };\n this.getCommentFoldRange = function (row, column, dir) {\n var iterator = new TokenIterator(this, row, column);\n var token = iterator.getCurrentToken();\n var type = token && token.type;\n if (token && /^comment|string/.test(type)) {\n type = type.match(/comment|string/)[0];\n if (type == \"comment\")\n type += \"|doc-start|\\\\.doc\";\n var re = new RegExp(type);\n var range = new Range();\n if (dir != 1) {\n do {\n token = iterator.stepBackward();\n } while (token && re.test(token.type) && !/^comment.end/.test(token.type));\n token = iterator.stepForward();\n }\n range.start.row = iterator.getCurrentTokenRow();\n range.start.column = iterator.getCurrentTokenColumn() + (/^comment.start/.test(token.type) ? token.value.length : 2);\n iterator = new TokenIterator(this, row, column);\n if (dir != -1) {\n var lastRow = -1;\n do {\n token = iterator.stepForward();\n if (lastRow == -1) {\n var state = this.getState(iterator.$row);\n if (!re.test(state))\n lastRow = iterator.$row;\n }\n else if (iterator.$row > lastRow) {\n break;\n }\n } while (token && re.test(token.type) && !/^comment.start/.test(token.type));\n token = iterator.stepBackward();\n }\n else\n token = iterator.getCurrentToken();\n range.end.row = iterator.getCurrentTokenRow();\n range.end.column = iterator.getCurrentTokenColumn();\n if (!/^comment.end/.test(token.type)) {\n range.end.column += token.value.length - 2;\n }\n return range;\n }\n };\n this.foldAll = function (startRow, endRow, depth, test) {\n if (depth == undefined)\n depth = 100000; // JSON.stringify doesn't hanle Infinity\n var foldWidgets = this.foldWidgets;\n if (!foldWidgets)\n return; // mode doesn't support folding\n endRow = endRow || this.getLength();\n startRow = startRow || 0;\n for (var row = startRow; row < endRow; row++) {\n if (foldWidgets[row] == null)\n foldWidgets[row] = this.getFoldWidget(row);\n if (foldWidgets[row] != \"start\")\n continue;\n if (test && !test(row))\n continue;\n var range = this.getFoldWidgetRange(row);\n if (range && range.isMultiLine()\n && range.end.row <= endRow\n && range.start.row >= startRow) {\n row = range.end.row;\n range.collapseChildren = depth;\n this.addFold(\"...\", range);\n }\n }\n };\n this.foldToLevel = function (level) {\n this.foldAll();\n while (level-- > 0)\n this.unfold(null, false);\n };\n this.foldAllComments = function () {\n var session = this;\n this.foldAll(null, null, null, function (row) {\n var tokens = session.getTokens(row);\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (token.type == \"text\" && /^\\s+$/.test(token.value))\n continue;\n if (/comment/.test(token.type))\n return true;\n return false;\n }\n });\n };\n this.$foldStyles = {\n \"manual\": 1,\n \"markbegin\": 1,\n \"markbeginend\": 1\n };\n this.$foldStyle = \"markbegin\";\n this.setFoldStyle = function (style) {\n if (!this.$foldStyles[style])\n throw new Error(\"invalid fold style: \" + style + \"[\" + Object.keys(this.$foldStyles).join(\", \") + \"]\");\n if (this.$foldStyle == style)\n return;\n this.$foldStyle = style;\n if (style == \"manual\")\n this.unfold();\n var mode = this.$foldMode;\n this.$setFolding(null);\n this.$setFolding(mode);\n };\n this.$setFolding = function (foldMode) {\n if (this.$foldMode == foldMode)\n return;\n this.$foldMode = foldMode;\n this.off('change', this.$updateFoldWidgets);\n this.off('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n this._signal(\"changeAnnotation\");\n if (!foldMode || this.$foldStyle == \"manual\") {\n this.foldWidgets = null;\n return;\n }\n this.foldWidgets = [];\n this.getFoldWidget = foldMode.getFoldWidget.bind(foldMode, this, this.$foldStyle);\n this.getFoldWidgetRange = foldMode.getFoldWidgetRange.bind(foldMode, this, this.$foldStyle);\n this.$updateFoldWidgets = this.updateFoldWidgets.bind(this);\n this.$tokenizerUpdateFoldWidgets = this.tokenizerUpdateFoldWidgets.bind(this);\n this.on('change', this.$updateFoldWidgets);\n this.on('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n };\n this.getParentFoldRangeData = function (row, ignoreCurrent) {\n var fw = this.foldWidgets;\n if (!fw || (ignoreCurrent && fw[row]))\n return {};\n var i = row - 1, firstRange;\n while (i >= 0) {\n var c = fw[i];\n if (c == null)\n c = fw[i] = this.getFoldWidget(i);\n if (c == \"start\") {\n var range = this.getFoldWidgetRange(i);\n if (!firstRange)\n firstRange = range;\n if (range && range.end.row >= row)\n break;\n }\n i--;\n }\n return {\n range: i !== -1 && range,\n firstRange: firstRange\n };\n };\n this.onFoldWidgetClick = function (row, e) {\n if (e instanceof MouseEvent)\n e = e.domEvent;\n var options = {\n children: e.shiftKey,\n all: e.ctrlKey || e.metaKey,\n siblings: e.altKey\n };\n var range = this.$toggleFoldWidget(row, options);\n if (!range) {\n var el = (e.target || e.srcElement);\n if (el && /ace_fold-widget/.test(el.className))\n el.className += \" ace_invalid\";\n }\n };\n this.$toggleFoldWidget = function (row, options) {\n if (!this.getFoldWidget)\n return;\n var type = this.getFoldWidget(row);\n var line = this.getLine(row);\n var dir = type === \"end\" ? -1 : 1;\n var fold = this.getFoldAt(row, dir === -1 ? 0 : line.length, dir);\n if (fold) {\n if (options.children || options.all)\n this.removeFold(fold);\n else\n this.expandFold(fold);\n return fold;\n }\n var range = this.getFoldWidgetRange(row, true);\n if (range && !range.isMultiLine()) {\n fold = this.getFoldAt(range.start.row, range.start.column, 1);\n if (fold && range.isEqual(fold.range)) {\n this.removeFold(fold);\n return fold;\n }\n }\n if (options.siblings) {\n var data = this.getParentFoldRangeData(row);\n if (data.range) {\n var startRow = data.range.start.row + 1;\n var endRow = data.range.end.row;\n }\n this.foldAll(startRow, endRow, options.all ? 10000 : 0);\n }\n else if (options.children) {\n endRow = range ? range.end.row : this.getLength();\n this.foldAll(row + 1, endRow, options.all ? 10000 : 0);\n }\n else if (range) {\n if (options.all)\n range.collapseChildren = 10000;\n this.addFold(\"...\", range);\n }\n return range;\n };\n this.toggleFoldWidget = function (toggleParent) {\n var row = this.selection.getCursor().row;\n row = this.getRowFoldStart(row);\n var range = this.$toggleFoldWidget(row, {});\n if (range)\n return;\n var data = this.getParentFoldRangeData(row, true);\n range = data.range || data.firstRange;\n if (range) {\n row = range.start.row;\n var fold = this.getFoldAt(row, this.getLine(row).length, 1);\n if (fold) {\n this.removeFold(fold);\n }\n else {\n this.addFold(\"...\", range);\n }\n }\n };\n this.updateFoldWidgets = function (delta) {\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n if (len === 0) {\n this.foldWidgets[firstRow] = null;\n }\n else if (delta.action == 'remove') {\n this.foldWidgets.splice(firstRow, len + 1, null);\n }\n else {\n var args = Array(len + 1);\n args.unshift(firstRow, 1);\n this.foldWidgets.splice.apply(this.foldWidgets, args);\n }\n };\n this.tokenizerUpdateFoldWidgets = function (e) {\n var rows = e.data;\n if (rows.first != rows.last) {\n if (this.foldWidgets.length > rows.first)\n this.foldWidgets.splice(rows.first, this.foldWidgets.length);\n }\n };\n}\nexports.Folding = Folding;\n\n});\n\nace.define(\"ace/edit_session/bracket_match\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nvar Range = require(\"../range\").Range;\nfunction BracketMatch() {\n this.findMatchingBracket = function (position, chr) {\n if (position.column == 0)\n return null;\n var charBeforeCursor = chr || this.getLine(position.row).charAt(position.column - 1);\n if (charBeforeCursor == \"\")\n return null;\n var match = charBeforeCursor.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match)\n return null;\n if (match[1])\n return this.$findClosingBracket(match[1], position);\n else\n return this.$findOpeningBracket(match[2], position);\n };\n this.getBracketRange = function (pos) {\n var line = this.getLine(pos.row);\n var before = true, range;\n var chr = line.charAt(pos.column - 1);\n var match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match) {\n chr = line.charAt(pos.column);\n pos = { row: pos.row, column: pos.column + 1 };\n match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n before = false;\n }\n if (!match)\n return null;\n if (match[1]) {\n var bracketPos = this.$findClosingBracket(match[1], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(pos, bracketPos);\n if (!before) {\n range.end.column++;\n range.start.column--;\n }\n range.cursor = range.end;\n }\n else {\n var bracketPos = this.$findOpeningBracket(match[2], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(bracketPos, pos);\n if (!before) {\n range.start.column++;\n range.end.column--;\n }\n range.cursor = range.start;\n }\n return range;\n };\n this.getMatchingBracketRanges = function (pos, isBackwards) {\n var line = this.getLine(pos.row);\n var bracketsRegExp = /([\\(\\[\\{])|([\\)\\]\\}])/;\n var chr = !isBackwards && line.charAt(pos.column - 1);\n var match = chr && chr.match(bracketsRegExp);\n if (!match) {\n chr = (isBackwards === undefined || isBackwards) && line.charAt(pos.column);\n pos = {\n row: pos.row,\n column: pos.column + 1\n };\n match = chr && chr.match(bracketsRegExp);\n }\n if (!match)\n return null;\n var startRange = new Range(pos.row, pos.column - 1, pos.row, pos.column);\n var bracketPos = match[1] ? this.$findClosingBracket(match[1], pos)\n : this.$findOpeningBracket(match[2], pos);\n if (!bracketPos)\n return [startRange];\n var endRange = new Range(bracketPos.row, bracketPos.column, bracketPos.row, bracketPos.column + 1);\n return [startRange, endRange];\n };\n this.$brackets = {\n \")\": \"(\",\n \"(\": \")\",\n \"]\": \"[\",\n \"[\": \"]\",\n \"{\": \"}\",\n \"}\": \"{\",\n \"<\": \">\",\n \">\": \"<\"\n };\n this.$findOpeningBracket = function (bracket, position, typeRe) {\n var openBracket = this.$brackets[bracket];\n var depth = 1;\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n if (!typeRe) {\n typeRe = new RegExp(\"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"rparen\", \".paren\")\n .replace(/\\b(?:end)\\b/, \"(?:start|begin|end)\")\n .replace(/-close\\b/, \"-(close|open)\")\n + \")+\");\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn() - 2;\n var value = token.value;\n while (true) {\n while (valueIndex >= 0) {\n var chr = value.charAt(valueIndex);\n if (chr == openBracket) {\n depth -= 1;\n if (depth == 0) {\n return { row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn() };\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex -= 1;\n }\n do {\n token = iterator.stepBackward();\n } while (token && !typeRe.test(token.type));\n if (token == null)\n break;\n value = token.value;\n valueIndex = value.length - 1;\n }\n return null;\n };\n this.$findClosingBracket = function (bracket, position, typeRe) {\n var closingBracket = this.$brackets[bracket];\n var depth = 1;\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n if (!typeRe) {\n typeRe = new RegExp(\"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"lparen\", \".paren\")\n .replace(/\\b(?:start|begin)\\b/, \"(?:start|begin|end)\")\n .replace(/-open\\b/, \"-(close|open)\")\n + \")+\");\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn();\n while (true) {\n var value = token.value;\n var valueLength = value.length;\n while (valueIndex < valueLength) {\n var chr = value.charAt(valueIndex);\n if (chr == closingBracket) {\n depth -= 1;\n if (depth == 0) {\n return { row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn() };\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex += 1;\n }\n do {\n token = iterator.stepForward();\n } while (token && !typeRe.test(token.type));\n if (token == null)\n break;\n valueIndex = 0;\n }\n return null;\n };\n this.getMatchingTags = function (pos) {\n var iterator = new TokenIterator(this, pos.row, pos.column);\n var token = this.$findTagName(iterator);\n if (!token)\n return;\n var prevToken = iterator.stepBackward();\n if (prevToken.value === '<') {\n return this.$findClosingTag(iterator, token);\n }\n else {\n return this.$findOpeningTag(iterator, token);\n }\n };\n this.$findTagName = function (iterator) {\n var token = iterator.getCurrentToken();\n var found = false;\n var backward = false;\n if (token && token.type.indexOf('tag-name') === -1) {\n do {\n if (backward)\n token = iterator.stepBackward();\n else\n token = iterator.stepForward();\n if (token) {\n if (token.value === \"/>\") {\n backward = true;\n }\n else if (token.type.indexOf('tag-name') !== -1) {\n found = true;\n }\n }\n } while (token && !found);\n }\n return token;\n };\n this.$findClosingTag = function (iterator, token) {\n var prevToken;\n var currentTag = token.value;\n var tag = token.value;\n var depth = 0;\n var openTagStart = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1);\n token = iterator.stepForward();\n var openTagName = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + token.value.length);\n var foundOpenTagEnd = false;\n do {\n prevToken = token;\n token = iterator.stepForward();\n if (token) {\n if (token.value === '>' && !foundOpenTagEnd) {\n var openTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for `>`\n foundOpenTagEnd = true;\n }\n if (token.type.indexOf('tag-name') !== -1) {\n currentTag = token.value;\n if (tag === currentTag) {\n if (prevToken.value === '<') {\n depth++;\n }\n else if (prevToken.value === '') {\n var closeTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for >\n }\n else {\n return;\n }\n }\n }\n }\n }\n else if (tag === currentTag && token.value === '/>') { // self-closing tag\n depth--;\n if (depth < 0) { //found self-closing tag end\n var closeTagStart = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 2);\n var closeTagName = closeTagStart;\n var closeTagEnd = closeTagName;\n var openTagEnd = new Range(openTagName.end.row, openTagName.end.column, openTagName.end.row, openTagName.end.column + 1);\n }\n }\n }\n } while (token && depth >= 0);\n if (openTagStart && openTagEnd && closeTagStart && closeTagEnd && openTagName && closeTagName) {\n return {\n openTag: new Range(openTagStart.start.row, openTagStart.start.column, openTagEnd.end.row, openTagEnd.end.column),\n closeTag: new Range(closeTagStart.start.row, closeTagStart.start.column, closeTagEnd.end.row, closeTagEnd.end.column),\n openTagName: openTagName,\n closeTagName: closeTagName\n };\n }\n };\n this.$findOpeningTag = function (iterator, token) {\n var prevToken = iterator.getCurrentToken();\n var tag = token.value;\n var depth = 0;\n var startRow = iterator.getCurrentTokenRow();\n var startColumn = iterator.getCurrentTokenColumn();\n var endColumn = startColumn + 2;\n var closeTagStart = new Range(startRow, startColumn, startRow, endColumn); //Range for \")\n return;\n var closeTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for >\n iterator.stepBackward();\n iterator.stepBackward();\n do {\n token = prevToken;\n startRow = iterator.getCurrentTokenRow();\n startColumn = iterator.getCurrentTokenColumn();\n endColumn = startColumn + token.value.length;\n prevToken = iterator.stepBackward();\n if (token) {\n if (token.type.indexOf('tag-name') !== -1) {\n if (tag === token.value) {\n if (prevToken.value === '<') {\n depth++;\n if (depth > 0) { //found opening tag\n var openTagName = new Range(startRow, startColumn, startRow, endColumn);\n var openTagStart = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for <\n do {\n token = iterator.stepForward();\n } while (token && token.value !== '>');\n var openTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for >\n }\n }\n else if (prevToken.value === '') { // self-closing tag\n var stepCount = 0;\n var tmpToken = prevToken;\n while (tmpToken) {\n if (tmpToken.type.indexOf('tag-name') !== -1 && tmpToken.value === tag) {\n depth--;\n break;\n }\n else if (tmpToken.value === '<') {\n break;\n }\n tmpToken = iterator.stepBackward();\n stepCount++;\n }\n for (var i = 0; i < stepCount; i++) {\n iterator.stepForward();\n }\n }\n }\n } while (prevToken && depth <= 0);\n if (openTagStart && openTagEnd && closeTagStart && closeTagEnd && openTagName && closeTagName) {\n return {\n openTag: new Range(openTagStart.start.row, openTagStart.start.column, openTagEnd.end.row, openTagEnd.end.column),\n closeTag: new Range(closeTagStart.start.row, closeTagStart.start.column, closeTagEnd.end.row, closeTagEnd.end.column),\n openTagName: openTagName,\n closeTagName: closeTagName\n };\n }\n };\n}\nexports.BracketMatch = BracketMatch;\n\n});\n\nace.define(\"ace/edit_session\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/bidihandler\",\"ace/config\",\"ace/lib/event_emitter\",\"ace/selection\",\"ace/mode/text\",\"ace/range\",\"ace/document\",\"ace/background_tokenizer\",\"ace/search_highlight\",\"ace/undomanager\",\"ace/edit_session/folding\",\"ace/edit_session/bracket_match\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar lang = require(\"./lib/lang\");\nvar BidiHandler = require(\"./bidihandler\").BidiHandler;\nvar config = require(\"./config\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Selection = require(\"./selection\").Selection;\nvar TextMode = require(\"./mode/text\").Mode;\nvar Range = require(\"./range\").Range;\nvar Document = require(\"./document\").Document;\nvar BackgroundTokenizer = require(\"./background_tokenizer\").BackgroundTokenizer;\nvar SearchHighlight = require(\"./search_highlight\").SearchHighlight;\nvar UndoManager = require(\"./undomanager\").UndoManager;\nvar EditSession = /** @class */ (function () {\n function EditSession(text, mode) {\n this.$breakpoints = [];\n this.$decorations = [];\n this.$frontMarkers = {};\n this.$backMarkers = {};\n this.$markerId = 1;\n this.$undoSelect = true;\n this.$foldData = [];\n this.id = \"session\" + (++EditSession.$uid);\n this.$foldData.toString = function () {\n return this.join(\"\\n\");\n };\n this.bgTokenizer = new BackgroundTokenizer((new TextMode()).getTokenizer(), this);\n var _self = this;\n this.bgTokenizer.on(\"update\", function (e) {\n _self._signal(\"tokenizerUpdate\", e);\n });\n this.on(\"changeFold\", this.onChangeFold.bind(this));\n this.$onChange = this.onChange.bind(this);\n if (typeof text != \"object\" || !text.getLine)\n text = new Document(text);\n this.setDocument(text);\n this.selection = new Selection(this);\n this.$bidiHandler = new BidiHandler(this);\n config.resetOptions(this);\n this.setMode(mode);\n config._signal(\"session\", this);\n this.destroyed = false;\n }\n EditSession.prototype.setDocument = function (doc) {\n if (this.doc)\n this.doc.off(\"change\", this.$onChange);\n this.doc = doc;\n doc.on(\"change\", this.$onChange, true);\n this.bgTokenizer.setDocument(this.getDocument());\n this.resetCaches();\n };\n EditSession.prototype.getDocument = function () {\n return this.doc;\n };\n EditSession.prototype.$resetRowCache = function (docRow) {\n if (!docRow) {\n this.$docRowCache = [];\n this.$screenRowCache = [];\n return;\n }\n var l = this.$docRowCache.length;\n var i = this.$getRowCacheIndex(this.$docRowCache, docRow) + 1;\n if (l > i) {\n this.$docRowCache.splice(i, l);\n this.$screenRowCache.splice(i, l);\n }\n };\n EditSession.prototype.$getRowCacheIndex = function (cacheArray, val) {\n var low = 0;\n var hi = cacheArray.length - 1;\n while (low <= hi) {\n var mid = (low + hi) >> 1;\n var c = cacheArray[mid];\n if (val > c)\n low = mid + 1;\n else if (val < c)\n hi = mid - 1;\n else\n return mid;\n }\n return low - 1;\n };\n EditSession.prototype.resetCaches = function () {\n this.$modified = true;\n this.$wrapData = [];\n this.$rowLengthCache = [];\n this.$resetRowCache(0);\n if (!this.destroyed)\n this.bgTokenizer.start(0);\n };\n EditSession.prototype.onChangeFold = function (e) {\n var fold = e.data;\n this.$resetRowCache(fold.start.row);\n };\n EditSession.prototype.onChange = function (delta) {\n this.$modified = true;\n this.$bidiHandler.onChange(delta);\n this.$resetRowCache(delta.start.row);\n var removedFolds = this.$updateInternalDataOnChange(delta);\n if (!this.$fromUndo && this.$undoManager) {\n if (removedFolds && removedFolds.length) {\n this.$undoManager.add({\n action: \"removeFolds\",\n folds: removedFolds\n }, this.mergeUndoDeltas);\n this.mergeUndoDeltas = true;\n }\n this.$undoManager.add(delta, this.mergeUndoDeltas);\n this.mergeUndoDeltas = true;\n this.$informUndoManager.schedule();\n }\n this.bgTokenizer.$updateOnChange(delta);\n this._signal(\"change\", delta);\n };\n EditSession.prototype.setValue = function (text) {\n this.doc.setValue(text);\n this.selection.moveTo(0, 0);\n this.$resetRowCache(0);\n this.setUndoManager(this.$undoManager);\n this.getUndoManager().reset();\n };\n EditSession.fromJSON = function (session) {\n session = JSON.parse(session);\n var undoManager = new UndoManager();\n undoManager.$undoStack = session.history.undo;\n undoManager.$redoStack = session.history.redo;\n undoManager.mark = session.history.mark;\n undoManager.$rev = session.history.rev;\n var editSession = new EditSession(session.value);\n session.folds.forEach(function (fold) {\n editSession.addFold(\"...\", Range.fromPoints(fold.start, fold.end));\n });\n editSession.setAnnotations(session.annotations);\n editSession.setBreakpoints(session.breakpoints);\n editSession.setMode(session.mode);\n editSession.setScrollLeft(session.scrollLeft);\n editSession.setScrollTop(session.scrollTop);\n editSession.setUndoManager(undoManager);\n editSession.selection.fromJSON(session.selection);\n return editSession;\n };\n EditSession.prototype.toJSON = function () {\n return {\n annotations: this.$annotations,\n breakpoints: this.$breakpoints,\n folds: this.getAllFolds().map(function (fold) {\n return fold.range;\n }),\n history: this.getUndoManager(),\n mode: this.$mode.$id,\n scrollLeft: this.$scrollLeft,\n scrollTop: this.$scrollTop,\n selection: this.selection.toJSON(),\n value: this.doc.getValue()\n };\n };\n EditSession.prototype.toString = function () {\n return this.doc.getValue();\n };\n EditSession.prototype.getSelection = function () {\n return this.selection;\n };\n EditSession.prototype.getState = function (row) {\n return this.bgTokenizer.getState(row);\n };\n EditSession.prototype.getTokens = function (row) {\n return this.bgTokenizer.getTokens(row);\n };\n EditSession.prototype.getTokenAt = function (row, column) {\n var tokens = this.bgTokenizer.getTokens(row);\n var token, c = 0;\n if (column == null) {\n var i = tokens.length - 1;\n c = this.getLine(row).length;\n }\n else {\n for (var i = 0; i < tokens.length; i++) {\n c += tokens[i].value.length;\n if (c >= column)\n break;\n }\n }\n token = tokens[i];\n if (!token)\n return null;\n token.index = i;\n token.start = c - token.value.length;\n return token;\n };\n EditSession.prototype.setUndoManager = function (undoManager) {\n this.$undoManager = undoManager;\n if (this.$informUndoManager)\n this.$informUndoManager.cancel();\n if (undoManager) {\n var self = this;\n undoManager.addSession(this);\n this.$syncInformUndoManager = function () {\n self.$informUndoManager.cancel();\n self.mergeUndoDeltas = false;\n };\n this.$informUndoManager = lang.delayedCall(this.$syncInformUndoManager);\n }\n else {\n this.$syncInformUndoManager = function () { };\n }\n };\n EditSession.prototype.markUndoGroup = function () {\n if (this.$syncInformUndoManager)\n this.$syncInformUndoManager();\n };\n EditSession.prototype.getUndoManager = function () {\n return this.$undoManager || this.$defaultUndoManager;\n };\n EditSession.prototype.getTabString = function () {\n if (this.getUseSoftTabs()) {\n return lang.stringRepeat(\" \", this.getTabSize());\n }\n else {\n return \"\\t\";\n }\n };\n EditSession.prototype.setUseSoftTabs = function (val) {\n this.setOption(\"useSoftTabs\", val);\n };\n EditSession.prototype.getUseSoftTabs = function () {\n return this.$useSoftTabs && !this.$mode.$indentWithTabs;\n };\n EditSession.prototype.setTabSize = function (tabSize) {\n this.setOption(\"tabSize\", tabSize);\n };\n EditSession.prototype.getTabSize = function () {\n return this.$tabSize;\n };\n EditSession.prototype.isTabStop = function (position) {\n return this.$useSoftTabs && (position.column % this.$tabSize === 0);\n };\n EditSession.prototype.setNavigateWithinSoftTabs = function (navigateWithinSoftTabs) {\n this.setOption(\"navigateWithinSoftTabs\", navigateWithinSoftTabs);\n };\n EditSession.prototype.getNavigateWithinSoftTabs = function () {\n return this.$navigateWithinSoftTabs;\n };\n EditSession.prototype.setOverwrite = function (overwrite) {\n this.setOption(\"overwrite\", overwrite);\n };\n EditSession.prototype.getOverwrite = function () {\n return this.$overwrite;\n };\n EditSession.prototype.toggleOverwrite = function () {\n this.setOverwrite(!this.$overwrite);\n };\n EditSession.prototype.addGutterDecoration = function (row, className) {\n if (!this.$decorations[row])\n this.$decorations[row] = \"\";\n this.$decorations[row] += \" \" + className;\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.removeGutterDecoration = function (row, className) {\n this.$decorations[row] = (this.$decorations[row] || \"\").replace(\" \" + className, \"\");\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.getBreakpoints = function () {\n return this.$breakpoints;\n };\n EditSession.prototype.setBreakpoints = function (rows) {\n this.$breakpoints = [];\n for (var i = 0; i < rows.length; i++) {\n this.$breakpoints[rows[i]] = \"ace_breakpoint\";\n }\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.clearBreakpoints = function () {\n this.$breakpoints = [];\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.setBreakpoint = function (row, className) {\n if (className === undefined)\n className = \"ace_breakpoint\";\n if (className)\n this.$breakpoints[row] = className;\n else\n delete this.$breakpoints[row];\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.clearBreakpoint = function (row) {\n delete this.$breakpoints[row];\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.addMarker = function (range, clazz, type, inFront) {\n var id = this.$markerId++;\n var marker = {\n range: range,\n type: type || \"line\",\n renderer: typeof type == \"function\" ? type : null,\n clazz: clazz,\n inFront: !!inFront,\n id: id\n };\n if (inFront) {\n this.$frontMarkers[id] = marker;\n this._signal(\"changeFrontMarker\");\n }\n else {\n this.$backMarkers[id] = marker;\n this._signal(\"changeBackMarker\");\n }\n return id;\n };\n EditSession.prototype.addDynamicMarker = function (marker, inFront) {\n if (!marker.update)\n return;\n var id = this.$markerId++;\n marker.id = id;\n marker.inFront = !!inFront;\n if (inFront) {\n this.$frontMarkers[id] = marker;\n this._signal(\"changeFrontMarker\");\n }\n else {\n this.$backMarkers[id] = marker;\n this._signal(\"changeBackMarker\");\n }\n return marker;\n };\n EditSession.prototype.removeMarker = function (markerId) {\n var marker = this.$frontMarkers[markerId] || this.$backMarkers[markerId];\n if (!marker)\n return;\n var markers = marker.inFront ? this.$frontMarkers : this.$backMarkers;\n delete (markers[markerId]);\n this._signal(marker.inFront ? \"changeFrontMarker\" : \"changeBackMarker\");\n };\n EditSession.prototype.getMarkers = function (inFront) {\n return inFront ? this.$frontMarkers : this.$backMarkers;\n };\n EditSession.prototype.highlight = function (re) {\n if (!this.$searchHighlight) {\n var highlight = new SearchHighlight(null, \"ace_selected-word\", \"text\");\n this.$searchHighlight = this.addDynamicMarker(highlight);\n }\n this.$searchHighlight.setRegexp(re);\n };\n EditSession.prototype.highlightLines = function (startRow, endRow, clazz, inFront) {\n if (typeof endRow != \"number\") {\n clazz = endRow;\n endRow = startRow;\n }\n if (!clazz)\n clazz = \"ace_step\";\n var range = new Range(startRow, 0, endRow, Infinity);\n range.id = this.addMarker(range, clazz, \"fullLine\", inFront);\n return range;\n };\n EditSession.prototype.setAnnotations = function (annotations) {\n this.$annotations = annotations;\n this._signal(\"changeAnnotation\", {});\n };\n EditSession.prototype.getAnnotations = function () {\n return this.$annotations || [];\n };\n EditSession.prototype.clearAnnotations = function () {\n this.setAnnotations([]);\n };\n EditSession.prototype.$detectNewLine = function (text) {\n var match = text.match(/^.*?(\\r?\\n)/m);\n if (match) {\n this.$autoNewLine = match[1];\n }\n else {\n this.$autoNewLine = \"\\n\";\n }\n };\n EditSession.prototype.getWordRange = function (row, column) {\n var line = this.getLine(row);\n var inToken = false;\n if (column > 0)\n inToken = !!line.charAt(column - 1).match(this.tokenRe);\n if (!inToken)\n inToken = !!line.charAt(column).match(this.tokenRe);\n if (inToken)\n var re = this.tokenRe;\n else if (/^\\s+$/.test(line.slice(column - 1, column + 1)))\n var re = /\\s/;\n else\n var re = this.nonTokenRe;\n var start = column;\n if (start > 0) {\n do {\n start--;\n } while (start >= 0 && line.charAt(start).match(re));\n start++;\n }\n var end = column;\n while (end < line.length && line.charAt(end).match(re)) {\n end++;\n }\n return new Range(row, start, row, end);\n };\n EditSession.prototype.getAWordRange = function (row, column) {\n var wordRange = this.getWordRange(row, column);\n var line = this.getLine(wordRange.end.row);\n while (line.charAt(wordRange.end.column).match(/[ \\t]/)) {\n wordRange.end.column += 1;\n }\n return wordRange;\n };\n EditSession.prototype.setNewLineMode = function (newLineMode) {\n this.doc.setNewLineMode(newLineMode);\n };\n EditSession.prototype.getNewLineMode = function () {\n return this.doc.getNewLineMode();\n };\n EditSession.prototype.setUseWorker = function (useWorker) { this.setOption(\"useWorker\", useWorker); };\n EditSession.prototype.getUseWorker = function () { return this.$useWorker; };\n EditSession.prototype.onReloadTokenizer = function (e) {\n var rows = e.data;\n this.bgTokenizer.start(rows.first);\n this._signal(\"tokenizerUpdate\", e);\n };\n EditSession.prototype.setMode = function (mode, cb) {\n if (mode && typeof mode === \"object\") {\n if (mode.getTokenizer)\n return this.$onChangeMode(mode);\n var options = mode;\n var path = options.path;\n }\n else {\n path = mode || \"ace/mode/text\";\n }\n if (!this.$modes[\"ace/mode/text\"])\n this.$modes[\"ace/mode/text\"] = new TextMode();\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n cb && cb();\n return;\n }\n this.$modeId = path;\n config.loadModule([\"mode\", path], function (m) {\n if (this.$modeId !== path)\n return cb && cb();\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n }\n else if (m && m.Mode) {\n m = new m.Mode(options);\n if (!options) {\n this.$modes[path] = m;\n m.$id = path;\n }\n this.$onChangeMode(m);\n }\n cb && cb();\n }.bind(this));\n if (!this.$mode)\n this.$onChangeMode(this.$modes[\"ace/mode/text\"], true);\n };\n EditSession.prototype.$onChangeMode = function (mode, $isPlaceholder) {\n if (!$isPlaceholder)\n this.$modeId = mode.$id;\n if (this.$mode === mode)\n return;\n var oldMode = this.$mode;\n this.$mode = mode;\n this.$stopWorker();\n if (this.$useWorker)\n this.$startWorker();\n var tokenizer = mode.getTokenizer();\n if (tokenizer.on !== undefined) {\n var onReloadTokenizer = this.onReloadTokenizer.bind(this);\n tokenizer.on(\"update\", onReloadTokenizer);\n }\n this.bgTokenizer.setTokenizer(tokenizer);\n this.bgTokenizer.setDocument(this.getDocument());\n this.tokenRe = mode.tokenRe;\n this.nonTokenRe = mode.nonTokenRe;\n if (!$isPlaceholder) {\n if (mode.attachToSession)\n mode.attachToSession(this);\n this.$options.wrapMethod.set.call(this, this.$wrapMethod);\n this.$setFolding(mode.foldingRules);\n this.bgTokenizer.start(0);\n this._emit(\"changeMode\", { oldMode: oldMode, mode: mode });\n }\n };\n EditSession.prototype.$stopWorker = function () {\n if (this.$worker) {\n this.$worker.terminate();\n this.$worker = null;\n }\n };\n EditSession.prototype.$startWorker = function () {\n try {\n this.$worker = this.$mode.createWorker(this);\n }\n catch (e) {\n config.warn(\"Could not load worker\", e);\n this.$worker = null;\n }\n };\n EditSession.prototype.getMode = function () {\n return this.$mode;\n };\n EditSession.prototype.setScrollTop = function (scrollTop) {\n if (this.$scrollTop === scrollTop || isNaN(scrollTop))\n return;\n this.$scrollTop = scrollTop;\n this._signal(\"changeScrollTop\", scrollTop);\n };\n EditSession.prototype.getScrollTop = function () {\n return this.$scrollTop;\n };\n EditSession.prototype.setScrollLeft = function (scrollLeft) {\n if (this.$scrollLeft === scrollLeft || isNaN(scrollLeft))\n return;\n this.$scrollLeft = scrollLeft;\n this._signal(\"changeScrollLeft\", scrollLeft);\n };\n EditSession.prototype.getScrollLeft = function () {\n return this.$scrollLeft;\n };\n EditSession.prototype.getScreenWidth = function () {\n this.$computeWidth();\n if (this.lineWidgets)\n return Math.max(this.getLineWidgetMaxWidth(), this.screenWidth);\n return this.screenWidth;\n };\n EditSession.prototype.getLineWidgetMaxWidth = function () {\n if (this.lineWidgetsWidth != null)\n return this.lineWidgetsWidth;\n var width = 0;\n this.lineWidgets.forEach(function (w) {\n if (w && w.screenWidth > width)\n width = w.screenWidth;\n });\n return this.lineWidgetWidth = width;\n };\n EditSession.prototype.$computeWidth = function (force) {\n if (this.$modified || force) {\n this.$modified = false;\n if (this.$useWrapMode)\n return this.screenWidth = this.$wrapLimit;\n var lines = this.doc.getAllLines();\n var cache = this.$rowLengthCache;\n var longestScreenLine = 0;\n var foldIndex = 0;\n var foldLine = this.$foldData[foldIndex];\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n var len = lines.length;\n for (var i = 0; i < len; i++) {\n if (i > foldStart) {\n i = foldLine.end.row + 1;\n if (i >= len)\n break;\n foldLine = this.$foldData[foldIndex++];\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (cache[i] == null)\n cache[i] = this.$getStringScreenWidth(lines[i])[0];\n if (cache[i] > longestScreenLine)\n longestScreenLine = cache[i];\n }\n this.screenWidth = longestScreenLine;\n }\n };\n EditSession.prototype.getLine = function (row) {\n return this.doc.getLine(row);\n };\n EditSession.prototype.getLines = function (firstRow, lastRow) {\n return this.doc.getLines(firstRow, lastRow);\n };\n EditSession.prototype.getLength = function () {\n return this.doc.getLength();\n };\n EditSession.prototype.getTextRange = function (range) {\n return this.doc.getTextRange(range || this.selection.getRange());\n };\n EditSession.prototype.insert = function (position, text) {\n return this.doc.insert(position, text);\n };\n EditSession.prototype.remove = function (range) {\n return this.doc.remove(range);\n };\n EditSession.prototype.removeFullLines = function (firstRow, lastRow) {\n return this.doc.removeFullLines(firstRow, lastRow);\n };\n EditSession.prototype.undoChanges = function (deltas, dontSelect) {\n if (!deltas.length)\n return;\n this.$fromUndo = true;\n for (var i = deltas.length - 1; i != -1; i--) {\n var delta = deltas[i];\n if (delta.action == \"insert\" || delta.action == \"remove\") {\n this.doc.revertDelta(delta);\n }\n else if (delta.folds) {\n this.addFolds(delta.folds);\n }\n }\n if (!dontSelect && this.$undoSelect) {\n if (deltas.selectionBefore)\n this.selection.fromJSON(deltas.selectionBefore);\n else\n this.selection.setRange(this.$getUndoSelection(deltas, true));\n }\n this.$fromUndo = false;\n };\n EditSession.prototype.redoChanges = function (deltas, dontSelect) {\n if (!deltas.length)\n return;\n this.$fromUndo = true;\n for (var i = 0; i < deltas.length; i++) {\n var delta = deltas[i];\n if (delta.action == \"insert\" || delta.action == \"remove\") {\n this.doc.$safeApplyDelta(delta);\n }\n }\n if (!dontSelect && this.$undoSelect) {\n if (deltas.selectionAfter)\n this.selection.fromJSON(deltas.selectionAfter);\n else\n this.selection.setRange(this.$getUndoSelection(deltas, false));\n }\n this.$fromUndo = false;\n };\n EditSession.prototype.setUndoSelect = function (enable) {\n this.$undoSelect = enable;\n };\n EditSession.prototype.$getUndoSelection = function (deltas, isUndo) {\n function isInsert(delta) {\n return isUndo ? delta.action !== \"insert\" : delta.action === \"insert\";\n }\n var range, point;\n for (var i = 0; i < deltas.length; i++) {\n var delta = deltas[i];\n if (!delta.start)\n continue; // skip folds\n if (!range) {\n if (isInsert(delta)) {\n range = Range.fromPoints(delta.start, delta.end);\n }\n else {\n range = Range.fromPoints(delta.start, delta.start);\n }\n continue;\n }\n if (isInsert(delta)) {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range.setStart(point);\n }\n point = delta.end;\n if (range.compare(point.row, point.column) == 1) {\n range.setEnd(point);\n }\n }\n else {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range = Range.fromPoints(delta.start, delta.start);\n }\n }\n }\n return range;\n };\n EditSession.prototype.replace = function (range, text) {\n return this.doc.replace(range, text);\n };\n EditSession.prototype.moveText = function (fromRange, toPosition, copy) {\n var text = this.getTextRange(fromRange);\n var folds = this.getFoldsInRange(fromRange);\n var toRange = Range.fromPoints(toPosition, toPosition);\n if (!copy) {\n this.remove(fromRange);\n var rowDiff = fromRange.start.row - fromRange.end.row;\n var collDiff = rowDiff ? -fromRange.end.column : fromRange.start.column - fromRange.end.column;\n if (collDiff) {\n if (toRange.start.row == fromRange.end.row && toRange.start.column > fromRange.end.column)\n toRange.start.column += collDiff;\n if (toRange.end.row == fromRange.end.row && toRange.end.column > fromRange.end.column)\n toRange.end.column += collDiff;\n }\n if (rowDiff && toRange.start.row >= fromRange.end.row) {\n toRange.start.row += rowDiff;\n toRange.end.row += rowDiff;\n }\n }\n toRange.end = this.insert(toRange.start, text);\n if (folds.length) {\n var oldStart = fromRange.start;\n var newStart = toRange.start;\n var rowDiff = newStart.row - oldStart.row;\n var collDiff = newStart.column - oldStart.column;\n this.addFolds(folds.map(function (x) {\n x = x.clone();\n if (x.start.row == oldStart.row)\n x.start.column += collDiff;\n if (x.end.row == oldStart.row)\n x.end.column += collDiff;\n x.start.row += rowDiff;\n x.end.row += rowDiff;\n return x;\n }));\n }\n return toRange;\n };\n EditSession.prototype.indentRows = function (startRow, endRow, indentString) {\n indentString = indentString.replace(/\\t/g, this.getTabString());\n for (var row = startRow; row <= endRow; row++)\n this.doc.insertInLine({ row: row, column: 0 }, indentString);\n };\n EditSession.prototype.outdentRows = function (range) {\n var rowRange = range.collapseRows();\n var deleteRange = new Range(0, 0, 0, 0);\n var size = this.getTabSize();\n for (var i = rowRange.start.row; i <= rowRange.end.row; ++i) {\n var line = this.getLine(i);\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n for (var j = 0; j < size; ++j)\n if (line.charAt(j) != ' ')\n break;\n if (j < size && line.charAt(j) == '\\t') {\n deleteRange.start.column = j;\n deleteRange.end.column = j + 1;\n }\n else {\n deleteRange.start.column = 0;\n deleteRange.end.column = j;\n }\n this.remove(deleteRange);\n }\n };\n EditSession.prototype.$moveLines = function (firstRow, lastRow, dir) {\n firstRow = this.getRowFoldStart(firstRow);\n lastRow = this.getRowFoldEnd(lastRow);\n if (dir < 0) {\n var row = this.getRowFoldStart(firstRow + dir);\n if (row < 0)\n return 0;\n var diff = row - firstRow;\n }\n else if (dir > 0) {\n var row = this.getRowFoldEnd(lastRow + dir);\n if (row > this.doc.getLength() - 1)\n return 0;\n var diff = row - lastRow;\n }\n else {\n firstRow = this.$clipRowToDocument(firstRow);\n lastRow = this.$clipRowToDocument(lastRow);\n var diff = lastRow - firstRow + 1;\n }\n var range = new Range(firstRow, 0, lastRow, Number.MAX_VALUE);\n var folds = this.getFoldsInRange(range).map(function (x) {\n x = x.clone();\n x.start.row += diff;\n x.end.row += diff;\n return x;\n });\n var lines = dir == 0\n ? this.doc.getLines(firstRow, lastRow)\n : this.doc.removeFullLines(firstRow, lastRow);\n this.doc.insertFullLines(firstRow + diff, lines);\n folds.length && this.addFolds(folds);\n return diff;\n };\n EditSession.prototype.moveLinesUp = function (firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, -1);\n };\n EditSession.prototype.moveLinesDown = function (firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 1);\n };\n EditSession.prototype.duplicateLines = function (firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 0);\n };\n EditSession.prototype.$clipRowToDocument = function (row) {\n return Math.max(0, Math.min(row, this.doc.getLength() - 1));\n };\n EditSession.prototype.$clipColumnToRow = function (row, column) {\n if (column < 0)\n return 0;\n return Math.min(this.doc.getLine(row).length, column);\n };\n EditSession.prototype.$clipPositionToDocument = function (row, column) {\n column = Math.max(0, column);\n if (row < 0) {\n row = 0;\n column = 0;\n }\n else {\n var len = this.doc.getLength();\n if (row >= len) {\n row = len - 1;\n column = this.doc.getLine(len - 1).length;\n }\n else {\n column = Math.min(this.doc.getLine(row).length, column);\n }\n }\n return {\n row: row,\n column: column\n };\n };\n EditSession.prototype.$clipRangeToDocument = function (range) {\n if (range.start.row < 0) {\n range.start.row = 0;\n range.start.column = 0;\n }\n else {\n range.start.column = this.$clipColumnToRow(range.start.row, range.start.column);\n }\n var len = this.doc.getLength() - 1;\n if (range.end.row > len) {\n range.end.row = len;\n range.end.column = this.doc.getLine(len).length;\n }\n else {\n range.end.column = this.$clipColumnToRow(range.end.row, range.end.column);\n }\n return range;\n };\n EditSession.prototype.setUseWrapMode = function (useWrapMode) {\n if (useWrapMode != this.$useWrapMode) {\n this.$useWrapMode = useWrapMode;\n this.$modified = true;\n this.$resetRowCache(0);\n if (useWrapMode) {\n var len = this.getLength();\n this.$wrapData = Array(len);\n this.$updateWrapData(0, len - 1);\n }\n this._signal(\"changeWrapMode\");\n }\n };\n EditSession.prototype.getUseWrapMode = function () {\n return this.$useWrapMode;\n };\n EditSession.prototype.setWrapLimitRange = function (min, max) {\n if (this.$wrapLimitRange.min !== min || this.$wrapLimitRange.max !== max) {\n this.$wrapLimitRange = { min: min, max: max };\n this.$modified = true;\n this.$bidiHandler.markAsDirty();\n if (this.$useWrapMode)\n this._signal(\"changeWrapMode\");\n }\n };\n EditSession.prototype.adjustWrapLimit = function (desiredLimit, $printMargin) {\n var limits = this.$wrapLimitRange;\n if (limits.max < 0)\n limits = { min: $printMargin, max: $printMargin };\n var wrapLimit = this.$constrainWrapLimit(desiredLimit, limits.min, limits.max);\n if (wrapLimit != this.$wrapLimit && wrapLimit > 1) {\n this.$wrapLimit = wrapLimit;\n this.$modified = true;\n if (this.$useWrapMode) {\n this.$updateWrapData(0, this.getLength() - 1);\n this.$resetRowCache(0);\n this._signal(\"changeWrapLimit\");\n }\n return true;\n }\n return false;\n };\n EditSession.prototype.$constrainWrapLimit = function (wrapLimit, min, max) {\n if (min)\n wrapLimit = Math.max(min, wrapLimit);\n if (max)\n wrapLimit = Math.min(max, wrapLimit);\n return wrapLimit;\n };\n EditSession.prototype.getWrapLimit = function () {\n return this.$wrapLimit;\n };\n EditSession.prototype.setWrapLimit = function (limit) {\n this.setWrapLimitRange(limit, limit);\n };\n EditSession.prototype.getWrapLimitRange = function () {\n return {\n min: this.$wrapLimitRange.min,\n max: this.$wrapLimitRange.max\n };\n };\n EditSession.prototype.$updateInternalDataOnChange = function (delta) {\n var useWrapMode = this.$useWrapMode;\n var action = delta.action;\n var start = delta.start;\n var end = delta.end;\n var firstRow = start.row;\n var lastRow = end.row;\n var len = lastRow - firstRow;\n var removedFolds = null;\n this.$updating = true;\n if (len != 0) {\n if (action === \"remove\") {\n this[useWrapMode ? \"$wrapData\" : \"$rowLengthCache\"].splice(firstRow, len);\n var foldLines = this.$foldData;\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n var foldLine = this.getFoldLine(end.row);\n var idx = 0;\n if (foldLine) {\n foldLine.addRemoveChars(end.row, end.column, start.column - end.column);\n foldLine.shiftRow(-len);\n var foldLineBefore = this.getFoldLine(firstRow);\n if (foldLineBefore && foldLineBefore !== foldLine) {\n foldLineBefore.merge(foldLine);\n foldLine = foldLineBefore;\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= end.row) {\n foldLine.shiftRow(-len);\n }\n }\n lastRow = firstRow;\n }\n else {\n var args = Array(len);\n args.unshift(firstRow, 0);\n var arr = useWrapMode ? this.$wrapData : this.$rowLengthCache;\n arr.splice.apply(arr, args);\n var foldLines = this.$foldData;\n var foldLine = this.getFoldLine(firstRow);\n var idx = 0;\n if (foldLine) {\n var cmp = foldLine.range.compareInside(start.row, start.column);\n if (cmp == 0) {\n foldLine = foldLine.split(start.row, start.column);\n if (foldLine) {\n foldLine.shiftRow(len);\n foldLine.addRemoveChars(lastRow, 0, end.column - start.column);\n }\n }\n else \n if (cmp == -1) {\n foldLine.addRemoveChars(firstRow, 0, end.column - start.column);\n foldLine.shiftRow(len);\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= firstRow) {\n foldLine.shiftRow(len);\n }\n }\n }\n }\n else {\n len = Math.abs(delta.start.column - delta.end.column);\n if (action === \"remove\") {\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n len = -len;\n }\n var foldLine = this.getFoldLine(firstRow);\n if (foldLine) {\n foldLine.addRemoveChars(firstRow, start.column, len);\n }\n }\n if (useWrapMode && this.$wrapData.length != this.doc.getLength()) {\n console.error(\"doc.getLength() and $wrapData.length have to be the same!\");\n }\n this.$updating = false;\n if (useWrapMode)\n this.$updateWrapData(firstRow, lastRow);\n else\n this.$updateRowLengthCache(firstRow, lastRow);\n return removedFolds;\n };\n EditSession.prototype.$updateRowLengthCache = function (firstRow, lastRow, b) {\n this.$rowLengthCache[firstRow] = null;\n this.$rowLengthCache[lastRow] = null;\n };\n EditSession.prototype.$updateWrapData = function (firstRow, lastRow) {\n var lines = this.doc.getAllLines();\n var tabSize = this.getTabSize();\n var wrapData = this.$wrapData;\n var wrapLimit = this.$wrapLimit;\n var tokens;\n var foldLine;\n var row = firstRow;\n lastRow = Math.min(lastRow, lines.length - 1);\n while (row <= lastRow) {\n foldLine = this.getFoldLine(row, foldLine);\n if (!foldLine) {\n tokens = this.$getDisplayTokens(lines[row]);\n wrapData[row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row++;\n }\n else {\n tokens = [];\n foldLine.walk(function (placeholder, row, column, lastColumn) {\n var walkTokens;\n if (placeholder != null) {\n walkTokens = this.$getDisplayTokens(placeholder, tokens.length);\n walkTokens[0] = PLACEHOLDER_START;\n for (var i = 1; i < walkTokens.length; i++) {\n walkTokens[i] = PLACEHOLDER_BODY;\n }\n }\n else {\n walkTokens = this.$getDisplayTokens(lines[row].substring(lastColumn, column), tokens.length);\n }\n tokens = tokens.concat(walkTokens);\n }.bind(this), foldLine.end.row, lines[foldLine.end.row].length + 1);\n wrapData[foldLine.start.row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row = foldLine.end.row + 1;\n }\n }\n };\n EditSession.prototype.$computeWrapSplits = function (tokens, wrapLimit, tabSize) {\n if (tokens.length == 0) {\n return [];\n }\n var splits = [];\n var displayLength = tokens.length;\n var lastSplit = 0, lastDocSplit = 0;\n var isCode = this.$wrapAsCode;\n var indentedSoftWrap = this.$indentedSoftWrap;\n var maxIndent = wrapLimit <= Math.max(2 * tabSize, 8)\n || indentedSoftWrap === false ? 0 : Math.floor(wrapLimit / 2);\n function getWrapIndent() {\n var indentation = 0;\n if (maxIndent === 0)\n return indentation;\n if (indentedSoftWrap) {\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (token == SPACE)\n indentation += 1;\n else if (token == TAB)\n indentation += tabSize;\n else if (token == TAB_SPACE)\n continue;\n else\n break;\n }\n }\n if (isCode && indentedSoftWrap !== false)\n indentation += tabSize;\n return Math.min(indentation, maxIndent);\n }\n function addSplit(screenPos) {\n var len = screenPos - lastSplit;\n for (var i = lastSplit; i < screenPos; i++) {\n var ch = tokens[i];\n if (ch === 12 || ch === 2)\n len -= 1;\n }\n if (!splits.length) {\n indent = getWrapIndent();\n splits.indent = indent;\n }\n lastDocSplit += len;\n splits.push(lastDocSplit);\n lastSplit = screenPos;\n }\n var indent = 0;\n while (displayLength - lastSplit > wrapLimit - indent) {\n var split = lastSplit + wrapLimit - indent;\n if (tokens[split - 1] >= SPACE && tokens[split] >= SPACE) {\n addSplit(split);\n continue;\n }\n if (tokens[split] == PLACEHOLDER_START || tokens[split] == PLACEHOLDER_BODY) {\n for (split; split != lastSplit - 1; split--) {\n if (tokens[split] == PLACEHOLDER_START) {\n break;\n }\n }\n if (split > lastSplit) {\n addSplit(split);\n continue;\n }\n split = lastSplit + wrapLimit;\n for (split; split < tokens.length; split++) {\n if (tokens[split] != PLACEHOLDER_BODY) {\n break;\n }\n }\n if (split == tokens.length) {\n break; // Breaks the while-loop.\n }\n addSplit(split);\n continue;\n }\n var minSplit = Math.max(split - (wrapLimit - (wrapLimit >> 2)), lastSplit - 1);\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split--;\n }\n if (isCode) {\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split--;\n }\n while (split > minSplit && tokens[split] == PUNCTUATION) {\n split--;\n }\n }\n else {\n while (split > minSplit && tokens[split] < SPACE) {\n split--;\n }\n }\n if (split > minSplit) {\n addSplit(++split);\n continue;\n }\n split = lastSplit + wrapLimit;\n if (tokens[split] == CHAR_EXT)\n split--;\n addSplit(split - indent);\n }\n return splits;\n };\n EditSession.prototype.$getDisplayTokens = function (str, offset) {\n var arr = [];\n var tabSize;\n offset = offset || 0;\n for (var i = 0; i < str.length; i++) {\n var c = str.charCodeAt(i);\n if (c == 9) {\n tabSize = this.getScreenTabSize(arr.length + offset);\n arr.push(TAB);\n for (var n = 1; n < tabSize; n++) {\n arr.push(TAB_SPACE);\n }\n }\n else if (c == 32) {\n arr.push(SPACE);\n }\n else if ((c > 39 && c < 48) || (c > 57 && c < 64)) {\n arr.push(PUNCTUATION);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n arr.push(CHAR, CHAR_EXT);\n }\n else {\n arr.push(CHAR);\n }\n }\n return arr;\n };\n EditSession.prototype.$getStringScreenWidth = function (str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn == 0)\n return [0, 0];\n if (maxScreenColumn == null)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charCodeAt(column);\n if (c == 9) {\n screenColumn += this.getScreenTabSize(screenColumn);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n screenColumn += 2;\n }\n else {\n screenColumn += 1;\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n return [screenColumn, column];\n };\n EditSession.prototype.getRowLength = function (row) {\n var h = 1;\n if (this.lineWidgets)\n h += this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n if (!this.$useWrapMode || !this.$wrapData[row])\n return h;\n else\n return this.$wrapData[row].length + h;\n };\n EditSession.prototype.getRowLineCount = function (row) {\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1;\n }\n else {\n return this.$wrapData[row].length + 1;\n }\n };\n EditSession.prototype.getRowWrapIndent = function (screenRow) {\n if (this.$useWrapMode) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n var splits = this.$wrapData[pos.row];\n return splits.length && splits[0] < pos.column ? splits.indent : 0;\n }\n else {\n return 0;\n }\n };\n EditSession.prototype.getScreenLastRowColumn = function (screenRow) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n return this.documentToScreenColumn(pos.row, pos.column);\n };\n EditSession.prototype.getDocumentLastRowColumn = function (docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.getScreenLastRowColumn(screenRow);\n };\n EditSession.prototype.getDocumentLastRowColumnPosition = function (docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.screenToDocumentPosition(screenRow, Number.MAX_VALUE / 10);\n };\n EditSession.prototype.getRowSplitData = function (row) {\n if (!this.$useWrapMode) {\n return undefined;\n }\n else {\n return this.$wrapData[row];\n }\n };\n EditSession.prototype.getScreenTabSize = function (screenColumn) {\n return this.$tabSize - (screenColumn % this.$tabSize | 0);\n };\n EditSession.prototype.screenToDocumentRow = function (screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).row;\n };\n EditSession.prototype.screenToDocumentColumn = function (screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).column;\n };\n EditSession.prototype.screenToDocumentPosition = function (screenRow, screenColumn, offsetX) {\n if (screenRow < 0)\n return { row: 0, column: 0 };\n var line;\n var docRow = 0;\n var docColumn = 0;\n var column;\n var row = 0;\n var rowLength = 0;\n var rowCache = this.$screenRowCache;\n var i = this.$getRowCacheIndex(rowCache, screenRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var docRow = this.$docRowCache[i];\n var doCache = screenRow > rowCache[l - 1];\n }\n else {\n var doCache = !l;\n }\n var maxRow = this.getLength() - 1;\n var foldLine = this.getNextFoldLine(docRow);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (row <= screenRow) {\n rowLength = this.getRowLength(docRow);\n if (row + rowLength > screenRow || docRow >= maxRow) {\n break;\n }\n else {\n row += rowLength;\n docRow++;\n if (docRow > foldStart) {\n docRow = foldLine.end.row + 1;\n foldLine = this.getNextFoldLine(docRow, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n }\n if (doCache) {\n this.$docRowCache.push(docRow);\n this.$screenRowCache.push(row);\n }\n }\n if (foldLine && foldLine.start.row <= docRow) {\n line = this.getFoldDisplayLine(foldLine);\n docRow = foldLine.start.row;\n }\n else if (row + rowLength <= screenRow || docRow > maxRow) {\n return {\n row: maxRow,\n column: this.getLine(maxRow).length\n };\n }\n else {\n line = this.getLine(docRow);\n foldLine = null;\n }\n var wrapIndent = 0, splitIndex = Math.floor(screenRow - row);\n if (this.$useWrapMode) {\n var splits = this.$wrapData[docRow];\n if (splits) {\n column = splits[splitIndex];\n if (splitIndex > 0 && splits.length) {\n wrapIndent = splits.indent;\n docColumn = splits[splitIndex - 1] || splits[splits.length - 1];\n line = line.substring(docColumn);\n }\n }\n }\n if (offsetX !== undefined && this.$bidiHandler.isBidiRow(row + splitIndex, docRow, splitIndex))\n screenColumn = this.$bidiHandler.offsetToCol(offsetX);\n docColumn += this.$getStringScreenWidth(line, screenColumn - wrapIndent)[1];\n if (this.$useWrapMode && docColumn >= column)\n docColumn = column - 1;\n if (foldLine)\n return foldLine.idxToPosition(docColumn);\n return { row: docRow, column: docColumn };\n };\n EditSession.prototype.documentToScreenPosition = function (docRow, docColumn) {\n if (typeof docColumn === \"undefined\")\n var pos = this.$clipPositionToDocument(docRow.row, docRow.column);\n else\n pos = this.$clipPositionToDocument(docRow, docColumn);\n docRow = pos.row;\n docColumn = pos.column;\n var screenRow = 0;\n var foldStartRow = null;\n var fold = null;\n fold = this.getFoldAt(docRow, docColumn, 1);\n if (fold) {\n docRow = fold.start.row;\n docColumn = fold.start.column;\n }\n var rowEnd, row = 0;\n var rowCache = this.$docRowCache;\n var i = this.$getRowCacheIndex(rowCache, docRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var screenRow = this.$screenRowCache[i];\n var doCache = docRow > rowCache[l - 1];\n }\n else {\n var doCache = !l;\n }\n var foldLine = this.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (row < docRow) {\n if (row >= foldStart) {\n rowEnd = foldLine.end.row + 1;\n if (rowEnd > docRow)\n break;\n foldLine = this.getNextFoldLine(rowEnd, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n else {\n rowEnd = row + 1;\n }\n screenRow += this.getRowLength(row);\n row = rowEnd;\n if (doCache) {\n this.$docRowCache.push(row);\n this.$screenRowCache.push(screenRow);\n }\n }\n var textLine = \"\";\n if (foldLine && row >= foldStart) {\n textLine = this.getFoldDisplayLine(foldLine, docRow, docColumn);\n foldStartRow = foldLine.start.row;\n }\n else {\n textLine = this.getLine(docRow).substring(0, docColumn);\n foldStartRow = docRow;\n }\n var wrapIndent = 0;\n if (this.$useWrapMode) {\n var wrapRow = this.$wrapData[foldStartRow];\n if (wrapRow) {\n var screenRowOffset = 0;\n while (textLine.length >= wrapRow[screenRowOffset]) {\n screenRow++;\n screenRowOffset++;\n }\n textLine = textLine.substring(wrapRow[screenRowOffset - 1] || 0, textLine.length);\n wrapIndent = screenRowOffset > 0 ? wrapRow.indent : 0;\n }\n }\n if (this.lineWidgets && this.lineWidgets[row] && this.lineWidgets[row].rowsAbove)\n screenRow += this.lineWidgets[row].rowsAbove;\n return {\n row: screenRow,\n column: wrapIndent + this.$getStringScreenWidth(textLine)[0]\n };\n };\n EditSession.prototype.documentToScreenColumn = function (row, docColumn) {\n return this.documentToScreenPosition(row, docColumn).column;\n };\n EditSession.prototype.documentToScreenRow = function (docRow, docColumn) {\n return this.documentToScreenPosition(docRow, docColumn).row;\n };\n EditSession.prototype.getScreenLength = function () {\n var screenRows = 0;\n var fold = null;\n if (!this.$useWrapMode) {\n screenRows = this.getLength();\n var foldData = this.$foldData;\n for (var i = 0; i < foldData.length; i++) {\n fold = foldData[i];\n screenRows -= fold.end.row - fold.start.row;\n }\n }\n else {\n var lastRow = this.$wrapData.length;\n var row = 0, i = 0;\n var fold = this.$foldData[i++];\n var foldStart = fold ? fold.start.row : Infinity;\n while (row < lastRow) {\n var splits = this.$wrapData[row];\n screenRows += splits ? splits.length + 1 : 1;\n row++;\n if (row > foldStart) {\n row = fold.end.row + 1;\n fold = this.$foldData[i++];\n foldStart = fold ? fold.start.row : Infinity;\n }\n }\n }\n if (this.lineWidgets)\n screenRows += this.$getWidgetScreenLength();\n return screenRows;\n };\n EditSession.prototype.$setFontMetrics = function (fm) {\n if (!this.$enableVarChar)\n return;\n this.$getStringScreenWidth = function (str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn === 0)\n return [0, 0];\n if (!maxScreenColumn)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charAt(column);\n if (c === \"\\t\") {\n screenColumn += this.getScreenTabSize(screenColumn);\n }\n else {\n screenColumn += fm.getCharacterWidth(c);\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n return [screenColumn, column];\n };\n };\n EditSession.prototype.destroy = function () {\n if (!this.destroyed) {\n this.bgTokenizer.setDocument(null);\n this.bgTokenizer.cleanup();\n this.destroyed = true;\n }\n this.$stopWorker();\n this.removeAllListeners();\n if (this.doc) {\n this.doc.off(\"change\", this.$onChange);\n }\n this.selection.detach();\n };\n return EditSession;\n}());\nEditSession.$uid = 0;\nEditSession.prototype.$modes = config.$modes;\nEditSession.prototype.getValue = EditSession.prototype.toString;\nEditSession.prototype.$defaultUndoManager = {\n undo: function () { },\n redo: function () { },\n hasUndo: function () { },\n hasRedo: function () { },\n reset: function () { },\n add: function () { },\n addSelection: function () { },\n startNewGroup: function () { },\n addSession: function () { }\n};\nEditSession.prototype.$overwrite = false;\nEditSession.prototype.$mode = null;\nEditSession.prototype.$modeId = null;\nEditSession.prototype.$scrollTop = 0;\nEditSession.prototype.$scrollLeft = 0;\nEditSession.prototype.$wrapLimit = 80;\nEditSession.prototype.$useWrapMode = false;\nEditSession.prototype.$wrapLimitRange = {\n min: null,\n max: null\n};\nEditSession.prototype.lineWidgets = null;\nEditSession.prototype.isFullWidth = isFullWidth;\noop.implement(EditSession.prototype, EventEmitter);\nvar CHAR = 1, CHAR_EXT = 2, PLACEHOLDER_START = 3, PLACEHOLDER_BODY = 4, PUNCTUATION = 9, SPACE = 10, TAB = 11, TAB_SPACE = 12;\nfunction isFullWidth(c) {\n if (c < 0x1100)\n return false;\n return c >= 0x1100 && c <= 0x115F ||\n c >= 0x11A3 && c <= 0x11A7 ||\n c >= 0x11FA && c <= 0x11FF ||\n c >= 0x2329 && c <= 0x232A ||\n c >= 0x2E80 && c <= 0x2E99 ||\n c >= 0x2E9B && c <= 0x2EF3 ||\n c >= 0x2F00 && c <= 0x2FD5 ||\n c >= 0x2FF0 && c <= 0x2FFB ||\n c >= 0x3000 && c <= 0x303E ||\n c >= 0x3041 && c <= 0x3096 ||\n c >= 0x3099 && c <= 0x30FF ||\n c >= 0x3105 && c <= 0x312D ||\n c >= 0x3131 && c <= 0x318E ||\n c >= 0x3190 && c <= 0x31BA ||\n c >= 0x31C0 && c <= 0x31E3 ||\n c >= 0x31F0 && c <= 0x321E ||\n c >= 0x3220 && c <= 0x3247 ||\n c >= 0x3250 && c <= 0x32FE ||\n c >= 0x3300 && c <= 0x4DBF ||\n c >= 0x4E00 && c <= 0xA48C ||\n c >= 0xA490 && c <= 0xA4C6 ||\n c >= 0xA960 && c <= 0xA97C ||\n c >= 0xAC00 && c <= 0xD7A3 ||\n c >= 0xD7B0 && c <= 0xD7C6 ||\n c >= 0xD7CB && c <= 0xD7FB ||\n c >= 0xF900 && c <= 0xFAFF ||\n c >= 0xFE10 && c <= 0xFE19 ||\n c >= 0xFE30 && c <= 0xFE52 ||\n c >= 0xFE54 && c <= 0xFE66 ||\n c >= 0xFE68 && c <= 0xFE6B ||\n c >= 0xFF01 && c <= 0xFF60 ||\n c >= 0xFFE0 && c <= 0xFFE6;\n}\nrequire(\"./edit_session/folding\").Folding.call(EditSession.prototype);\nrequire(\"./edit_session/bracket_match\").BracketMatch.call(EditSession.prototype);\nconfig.defineOptions(EditSession.prototype, \"session\", {\n wrap: {\n set: function (value) {\n if (!value || value == \"off\")\n value = false;\n else if (value == \"free\")\n value = true;\n else if (value == \"printMargin\")\n value = -1;\n else if (typeof value == \"string\")\n value = parseInt(value, 10) || false;\n if (this.$wrap == value)\n return;\n this.$wrap = value;\n if (!value) {\n this.setUseWrapMode(false);\n }\n else {\n var col = typeof value == \"number\" ? value : null;\n this.setWrapLimitRange(col, col);\n this.setUseWrapMode(true);\n }\n },\n get: function () {\n if (this.getUseWrapMode()) {\n if (this.$wrap == -1)\n return \"printMargin\";\n if (!this.getWrapLimitRange().min)\n return \"free\";\n return this.$wrap;\n }\n return \"off\";\n },\n handlesSet: true\n },\n wrapMethod: {\n set: function (val) {\n val = val == \"auto\"\n ? this.$mode.type != \"text\"\n : val != \"text\";\n if (val != this.$wrapAsCode) {\n this.$wrapAsCode = val;\n if (this.$useWrapMode) {\n this.$useWrapMode = false;\n this.setUseWrapMode(true);\n }\n }\n },\n initialValue: \"auto\"\n },\n indentedSoftWrap: {\n set: function () {\n if (this.$useWrapMode) {\n this.$useWrapMode = false;\n this.setUseWrapMode(true);\n }\n },\n initialValue: true\n },\n firstLineNumber: {\n set: function () { this._signal(\"changeBreakpoint\"); },\n initialValue: 1\n },\n useWorker: {\n set: function (useWorker) {\n this.$useWorker = useWorker;\n this.$stopWorker();\n if (useWorker)\n this.$startWorker();\n },\n initialValue: true\n },\n useSoftTabs: { initialValue: true },\n tabSize: {\n set: function (tabSize) {\n tabSize = parseInt(tabSize);\n if (tabSize > 0 && this.$tabSize !== tabSize) {\n this.$modified = true;\n this.$rowLengthCache = [];\n this.$tabSize = tabSize;\n this._signal(\"changeTabSize\");\n }\n },\n initialValue: 4,\n handlesSet: true\n },\n navigateWithinSoftTabs: { initialValue: false },\n foldStyle: {\n set: function (val) { this.setFoldStyle(val); },\n handlesSet: true\n },\n overwrite: {\n set: function (val) { this._signal(\"changeOverwrite\"); },\n initialValue: false\n },\n newLineMode: {\n set: function (val) { this.doc.setNewLineMode(val); },\n get: function () { return this.doc.getNewLineMode(); },\n handlesSet: true\n },\n mode: {\n set: function (val) { this.setMode(val); },\n get: function () { return this.$modeId; },\n handlesSet: true\n }\n});\nexports.EditSession = EditSession;\n\n});\n\nace.define(\"ace/search\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar lang = require(\"./lib/lang\");\nvar oop = require(\"./lib/oop\");\nvar Range = require(\"./range\").Range;\nvar Search = /** @class */ (function () {\n function Search() {\n this.$options = {};\n }\n Search.prototype.set = function (options) {\n oop.mixin(this.$options, options);\n return this;\n };\n Search.prototype.getOptions = function () {\n return lang.copyObject(this.$options);\n };\n Search.prototype.setOptions = function (options) {\n this.$options = options;\n };\n Search.prototype.find = function (session) {\n var options = this.$options;\n var iterator = this.$matchIterator(session, options);\n if (!iterator)\n return false;\n var firstRange = null;\n iterator.forEach(function (sr, sc, er, ec) {\n firstRange = new Range(sr, sc, er, ec);\n if (sc == ec && options.start && options.start.start\n && options.skipCurrent != false && firstRange.isEqual(options.start)) {\n firstRange = null;\n return false;\n }\n return true;\n });\n return firstRange;\n };\n Search.prototype.findAll = function (session) {\n var options = this.$options;\n if (!options.needle)\n return [];\n this.$assembleRegExp(options);\n var range = options.range;\n var lines = range\n ? session.getLines(range.start.row, range.end.row)\n : session.doc.getAllLines();\n var ranges = [];\n var re = options.re;\n if (options.$isMultiLine) {\n var len = re.length;\n var maxRow = lines.length - len;\n var prevRange;\n outer: for (var row = re.offset || 0; row <= maxRow; row++) {\n for (var j = 0; j < len; j++)\n if (lines[row + j].search(re[j]) == -1)\n continue outer;\n var startLine = lines[row];\n var line = lines[row + len - 1];\n var startIndex = startLine.length - startLine.match(re[0])[0].length;\n var endIndex = line.match(re[len - 1])[0].length;\n if (prevRange && prevRange.end.row === row &&\n prevRange.end.column > startIndex) {\n continue;\n }\n ranges.push(prevRange = new Range(row, startIndex, row + len - 1, endIndex));\n if (len > 2)\n row = row + len - 2;\n }\n }\n else {\n for (var i = 0; i < lines.length; i++) {\n var matches = lang.getMatchOffsets(lines[i], re);\n for (var j = 0; j < matches.length; j++) {\n var match = matches[j];\n ranges.push(new Range(i, match.offset, i, match.offset + match.length));\n }\n }\n }\n if (range) {\n var startColumn = range.start.column;\n var endColumn = range.end.column;\n var i = 0, j = ranges.length - 1;\n while (i < j && ranges[i].start.column < startColumn && ranges[i].start.row == 0)\n i++;\n var endRow = range.end.row - range.start.row;\n while (i < j && ranges[j].end.column > endColumn && ranges[j].end.row == endRow)\n j--;\n ranges = ranges.slice(i, j + 1);\n for (i = 0, j = ranges.length; i < j; i++) {\n ranges[i].start.row += range.start.row;\n ranges[i].end.row += range.start.row;\n }\n }\n return ranges;\n };\n Search.prototype.replace = function (input, replacement) {\n var options = this.$options;\n var re = this.$assembleRegExp(options);\n if (options.$isMultiLine)\n return replacement;\n if (!re)\n return;\n var match = re.exec(input);\n if (!match || match[0].length != input.length)\n return null;\n replacement = input.replace(re, replacement);\n if (options.preserveCase) {\n replacement = replacement.split(\"\");\n for (var i = Math.min(input.length, input.length); i--;) {\n var ch = input[i];\n if (ch && ch.toLowerCase() != ch)\n replacement[i] = replacement[i].toUpperCase();\n else\n replacement[i] = replacement[i].toLowerCase();\n }\n replacement = replacement.join(\"\");\n }\n return replacement;\n };\n Search.prototype.$assembleRegExp = function (options, $disableFakeMultiline) {\n if (options.needle instanceof RegExp)\n return options.re = options.needle;\n var needle = options.needle;\n if (!options.needle)\n return options.re = false;\n if (!options.regExp)\n needle = lang.escapeRegExp(needle);\n var modifier = options.caseSensitive ? \"gm\" : \"gmi\";\n try {\n new RegExp(needle, \"u\");\n options.$supportsUnicodeFlag = true;\n modifier += \"u\";\n }\n catch (e) {\n options.$supportsUnicodeFlag = false; //left for backward compatibility with previous versions for cases like /ab\\{2}/gu\n }\n if (options.wholeWord)\n needle = addWordBoundary(needle, options);\n options.$isMultiLine = !$disableFakeMultiline && /[\\n\\r]/.test(needle);\n if (options.$isMultiLine)\n return options.re = this.$assembleMultilineRegExp(needle, modifier);\n try {\n var re = new RegExp(needle, modifier);\n }\n catch (e) {\n re = false;\n }\n return options.re = re;\n };\n Search.prototype.$assembleMultilineRegExp = function (needle, modifier) {\n var parts = needle.replace(/\\r\\n|\\r|\\n/g, \"$\\n^\").split(\"\\n\");\n var re = [];\n for (var i = 0; i < parts.length; i++)\n try {\n re.push(new RegExp(parts[i], modifier));\n }\n catch (e) {\n return false;\n }\n return re;\n };\n Search.prototype.$matchIterator = function (session, options) {\n var re = this.$assembleRegExp(options);\n if (!re)\n return false;\n var backwards = options.backwards == true;\n var skipCurrent = options.skipCurrent != false;\n var supportsUnicodeFlag = re.unicode;\n var range = options.range;\n var start = options.start;\n if (!start)\n start = range ? range[backwards ? \"end\" : \"start\"] : session.selection.getRange();\n if (start.start)\n start = start[skipCurrent != backwards ? \"end\" : \"start\"];\n var firstRow = range ? range.start.row : 0;\n var lastRow = range ? range.end.row : session.getLength() - 1;\n if (backwards) {\n var forEach = function (callback) {\n var row = start.row;\n if (forEachInLine(row, start.column, callback))\n return;\n for (row--; row >= firstRow; row--)\n if (forEachInLine(row, Number.MAX_VALUE, callback))\n return;\n if (options.wrap == false)\n return;\n for (row = lastRow, firstRow = start.row; row >= firstRow; row--)\n if (forEachInLine(row, Number.MAX_VALUE, callback))\n return;\n };\n }\n else {\n var forEach = function (callback) {\n var row = start.row;\n if (forEachInLine(row, start.column, callback))\n return;\n for (row = row + 1; row <= lastRow; row++)\n if (forEachInLine(row, 0, callback))\n return;\n if (options.wrap == false)\n return;\n for (row = firstRow, lastRow = start.row; row <= lastRow; row++)\n if (forEachInLine(row, 0, callback))\n return;\n };\n }\n if (options.$isMultiLine) {\n var len = re.length;\n var forEachInLine = function (row, offset, callback) {\n var startRow = backwards ? row - len + 1 : row;\n if (startRow < 0 || startRow + len > session.getLength())\n return;\n var line = session.getLine(startRow);\n var startIndex = line.search(re[0]);\n if (!backwards && startIndex < offset || startIndex === -1)\n return;\n for (var i = 1; i < len; i++) {\n line = session.getLine(startRow + i);\n if (line.search(re[i]) == -1)\n return;\n }\n var endIndex = line.match(re[len - 1])[0].length;\n if (backwards && endIndex > offset)\n return;\n if (callback(startRow, startIndex, startRow + len - 1, endIndex))\n return true;\n };\n }\n else if (backwards) {\n var forEachInLine = function (row, endIndex, callback) {\n var line = session.getLine(row);\n var matches = [];\n var m, last = 0;\n re.lastIndex = 0;\n while ((m = re.exec(line))) {\n var length = m[0].length;\n last = m.index;\n if (!length) {\n if (last >= line.length)\n break;\n re.lastIndex = last += lang.skipEmptyMatch(line, last, supportsUnicodeFlag);\n }\n if (m.index + length > endIndex)\n break;\n matches.push(m.index, length);\n }\n for (var i = matches.length - 1; i >= 0; i -= 2) {\n var column = matches[i - 1];\n var length = matches[i];\n if (callback(row, column, row, column + length))\n return true;\n }\n };\n }\n else {\n var forEachInLine = function (row, startIndex, callback) {\n var line = session.getLine(row);\n var last;\n var m;\n re.lastIndex = startIndex;\n while ((m = re.exec(line))) {\n var length = m[0].length;\n last = m.index;\n if (callback(row, last, row, last + length))\n return true;\n if (!length) {\n re.lastIndex = last += lang.skipEmptyMatch(line, last, supportsUnicodeFlag);\n if (last >= line.length)\n return false;\n }\n }\n };\n }\n return { forEach: forEach };\n };\n return Search;\n}());\nfunction addWordBoundary(needle, options) {\n var supportsLookbehind = lang.supportsLookbehind();\n function wordBoundary(c, firstChar) {\n if (firstChar === void 0) { firstChar = true; }\n var wordRegExp = supportsLookbehind && options.$supportsUnicodeFlag ? new RegExp(\"[\\\\p{L}\\\\p{N}_]\", \"u\") : new RegExp(\"\\\\w\");\n if (wordRegExp.test(c) || options.regExp) {\n if (supportsLookbehind && options.$supportsUnicodeFlag) {\n if (firstChar)\n return \"(?<=^|[^\\\\p{L}\\\\p{N}_])\";\n return \"(?=[^\\\\p{L}\\\\p{N}_]|$)\";\n }\n return \"\\\\b\";\n }\n return \"\";\n }\n var needleArray = Array.from(needle);\n var firstChar = needleArray[0];\n var lastChar = needleArray[needleArray.length - 1];\n return wordBoundary(firstChar) + needle + wordBoundary(lastChar, false);\n}\nexports.Search = Search;\n\n});\n\nace.define(\"ace/keyboard/hash_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar keyUtil = require(\"../lib/keys\");\nvar useragent = require(\"../lib/useragent\");\nvar KEY_MODS = keyUtil.KEY_MODS;\nvar MultiHashHandler = /** @class */ (function () {\n function MultiHashHandler(config, platform) {\n this.$init(config, platform, false);\n }\n MultiHashHandler.prototype.$init = function (config, platform, $singleCommand) {\n this.platform = platform || (useragent.isMac ? \"mac\" : \"win\");\n this.commands = {};\n this.commandKeyBinding = {};\n this.addCommands(config);\n this.$singleCommand = $singleCommand;\n };\n MultiHashHandler.prototype.addCommand = function (command) {\n if (this.commands[command.name])\n this.removeCommand(command);\n this.commands[command.name] = command;\n if (command.bindKey)\n this._buildKeyHash(command);\n };\n MultiHashHandler.prototype.removeCommand = function (command, keepCommand) {\n var name = command && (typeof command === 'string' ? command : command.name);\n command = this.commands[name];\n if (!keepCommand)\n delete this.commands[name];\n var ckb = this.commandKeyBinding;\n for (var keyId in ckb) {\n var cmdGroup = ckb[keyId];\n if (cmdGroup == command) {\n delete ckb[keyId];\n }\n else if (Array.isArray(cmdGroup)) {\n var i = cmdGroup.indexOf(command);\n if (i != -1) {\n cmdGroup.splice(i, 1);\n if (cmdGroup.length == 1)\n ckb[keyId] = cmdGroup[0];\n }\n }\n }\n };\n MultiHashHandler.prototype.bindKey = function (key, command, position) {\n if (typeof key == \"object\" && key) {\n if (position == undefined)\n position = key.position;\n key = key[this.platform];\n }\n if (!key)\n return;\n if (typeof command == \"function\")\n return this.addCommand({ exec: command, bindKey: key, name: command.name || key });\n key.split(\"|\").forEach(function (keyPart) {\n var chain = \"\";\n if (keyPart.indexOf(\" \") != -1) {\n var parts = keyPart.split(/\\s+/);\n keyPart = parts.pop();\n parts.forEach(function (keyPart) {\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n chain += (chain ? \" \" : \"\") + id;\n this._addCommandToBinding(chain, \"chainKeys\");\n }, this);\n chain += \" \";\n }\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n this._addCommandToBinding(chain + id, command, position);\n }, this);\n };\n MultiHashHandler.prototype._addCommandToBinding = function (keyId, command, position) {\n var ckb = this.commandKeyBinding, i;\n if (!command) {\n delete ckb[keyId];\n }\n else if (!ckb[keyId] || this.$singleCommand) {\n ckb[keyId] = command;\n }\n else {\n if (!Array.isArray(ckb[keyId])) {\n ckb[keyId] = [ckb[keyId]];\n }\n else if ((i = ckb[keyId].indexOf(command)) != -1) {\n ckb[keyId].splice(i, 1);\n }\n if (typeof position != \"number\") {\n position = getPosition(command);\n }\n var commands = ckb[keyId];\n for (i = 0; i < commands.length; i++) {\n var other = commands[i];\n var otherPos = getPosition(other);\n if (otherPos > position)\n break;\n }\n commands.splice(i, 0, command);\n }\n };\n MultiHashHandler.prototype.addCommands = function (commands) {\n commands && Object.keys(commands).forEach(function (name) {\n var command = commands[name];\n if (!command)\n return;\n if (typeof command === \"string\")\n return this.bindKey(command, name);\n if (typeof command === \"function\")\n command = { exec: command };\n if (typeof command !== \"object\")\n return;\n if (!command.name)\n command.name = name;\n this.addCommand(command);\n }, this);\n };\n MultiHashHandler.prototype.removeCommands = function (commands) {\n Object.keys(commands).forEach(function (name) {\n this.removeCommand(commands[name]);\n }, this);\n };\n MultiHashHandler.prototype.bindKeys = function (keyList) {\n Object.keys(keyList).forEach(function (key) {\n this.bindKey(key, keyList[key]);\n }, this);\n };\n MultiHashHandler.prototype._buildKeyHash = function (command) {\n this.bindKey(command.bindKey, command);\n };\n MultiHashHandler.prototype.parseKeys = function (keys) {\n var parts = keys.toLowerCase().split(/[\\-\\+]([\\-\\+])?/).filter(function (x) { return x; });\n var key = parts.pop();\n var keyCode = keyUtil[key];\n if (keyUtil.FUNCTION_KEYS[keyCode])\n key = keyUtil.FUNCTION_KEYS[keyCode].toLowerCase();\n else if (!parts.length)\n return { key: key, hashId: -1 };\n else if (parts.length == 1 && parts[0] == \"shift\")\n return { key: key.toUpperCase(), hashId: -1 };\n var hashId = 0;\n for (var i = parts.length; i--;) {\n var modifier = keyUtil.KEY_MODS[parts[i]];\n if (modifier == null) {\n if (typeof console != \"undefined\")\n console.error(\"invalid modifier \" + parts[i] + \" in \" + keys);\n return false;\n }\n hashId |= modifier;\n }\n return { key: key, hashId: hashId };\n };\n MultiHashHandler.prototype.findKeyCommand = function (hashId, keyString) {\n var key = KEY_MODS[hashId] + keyString;\n return this.commandKeyBinding[key];\n };\n MultiHashHandler.prototype.handleKeyboard = function (data, hashId, keyString, keyCode) {\n if (keyCode < 0)\n return;\n var key = KEY_MODS[hashId] + keyString;\n var command = this.commandKeyBinding[key];\n if (data.$keyChain) {\n data.$keyChain += \" \" + key;\n command = this.commandKeyBinding[data.$keyChain] || command;\n }\n if (command) {\n if (command == \"chainKeys\" || command[command.length - 1] == \"chainKeys\") {\n data.$keyChain = data.$keyChain || key;\n return { command: \"null\" };\n }\n }\n if (data.$keyChain) {\n if ((!hashId || hashId == 4) && keyString.length == 1)\n data.$keyChain = data.$keyChain.slice(0, -key.length - 1); // wait for input\n else if (hashId == -1 || keyCode > 0)\n data.$keyChain = \"\"; // reset keyChain\n }\n return { command: command };\n };\n MultiHashHandler.prototype.getStatusText = function (editor, data) {\n return data.$keyChain || \"\";\n };\n return MultiHashHandler;\n}());\nfunction getPosition(command) {\n return typeof command == \"object\" && command.bindKey\n && command.bindKey.position\n || (command.isDefault ? -100 : 0);\n}\nvar HashHandler = /** @class */ (function (_super) {\n __extends(HashHandler, _super);\n function HashHandler(config, platform) {\n var _this = _super.call(this, config, platform) || this;\n _this.$singleCommand = true;\n return _this;\n }\n return HashHandler;\n}(MultiHashHandler));\nHashHandler.call = function (thisArg, config, platform) {\n MultiHashHandler.prototype.$init.call(thisArg, config, platform, true);\n};\nMultiHashHandler.call = function (thisArg, config, platform) {\n MultiHashHandler.prototype.$init.call(thisArg, config, platform, false);\n};\nexports.HashHandler = HashHandler;\nexports.MultiHashHandler = MultiHashHandler;\n\n});\n\nace.define(\"ace/commands/command_manager\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/keyboard/hash_handler\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar oop = require(\"../lib/oop\");\nvar MultiHashHandler = require(\"../keyboard/hash_handler\").MultiHashHandler;\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar CommandManager = /** @class */ (function (_super) {\n __extends(CommandManager, _super);\n function CommandManager(platform, commands) {\n var _this = _super.call(this, commands, platform) || this;\n _this.byName = _this.commands;\n _this.setDefaultHandler(\"exec\", function (e) {\n if (!e.args) {\n return e.command.exec(e.editor, {}, e.event, true);\n }\n return e.command.exec(e.editor, e.args, e.event, false);\n });\n return _this;\n }\n CommandManager.prototype.exec = function (command, editor, args) {\n if (Array.isArray(command)) {\n for (var i = command.length; i--;) {\n if (this.exec(command[i], editor, args))\n return true;\n }\n return false;\n }\n if (typeof command === \"string\")\n command = this.commands[command];\n if (!command)\n return false;\n if (editor && editor.$readOnly && !command.readOnly)\n return false;\n if (this.$checkCommandState != false && command.isAvailable && !command.isAvailable(editor))\n return false;\n var e = { editor: editor, command: command, args: args };\n e.returnValue = this._emit(\"exec\", e);\n this._signal(\"afterExec\", e);\n return e.returnValue === false ? false : true;\n };\n CommandManager.prototype.toggleRecording = function (editor) {\n if (this.$inReplay)\n return;\n editor && editor._emit(\"changeStatus\");\n if (this.recording) {\n this.macro.pop();\n this.off(\"exec\", this.$addCommandToMacro);\n if (!this.macro.length)\n this.macro = this.oldMacro;\n return this.recording = false;\n }\n if (!this.$addCommandToMacro) {\n this.$addCommandToMacro = function (e) {\n this.macro.push([e.command, e.args]);\n }.bind(this);\n }\n this.oldMacro = this.macro;\n this.macro = [];\n this.on(\"exec\", this.$addCommandToMacro);\n return this.recording = true;\n };\n CommandManager.prototype.replay = function (editor) {\n if (this.$inReplay || !this.macro)\n return;\n if (this.recording)\n return this.toggleRecording(editor);\n try {\n this.$inReplay = true;\n this.macro.forEach(function (x) {\n if (typeof x == \"string\")\n this.exec(x, editor);\n else\n this.exec(x[0], editor, x[1]);\n }, this);\n }\n finally {\n this.$inReplay = false;\n }\n };\n CommandManager.prototype.trimMacro = function (m) {\n return m.map(function (x) {\n if (typeof x[0] != \"string\")\n x[0] = x[0].name;\n if (!x[1])\n x = x[0];\n return x;\n });\n };\n return CommandManager;\n}(MultiHashHandler));\noop.implement(CommandManager.prototype, EventEmitter);\nexports.CommandManager = CommandManager;\n\n});\n\nace.define(\"ace/commands/default_commands\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/config\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar lang = require(\"../lib/lang\");\nvar config = require(\"../config\");\nvar Range = require(\"../range\").Range;\nfunction bindKey(win, mac) {\n return { win: win, mac: mac };\n}\nexports.commands = [{\n name: \"showSettingsMenu\",\n description: \"Show settings menu\",\n bindKey: bindKey(\"Ctrl-,\", \"Command-,\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/settings_menu\", function (module) {\n module.init(editor);\n editor.showSettingsMenu();\n });\n },\n readOnly: true\n }, {\n name: \"goToNextError\",\n description: \"Go to next error\",\n bindKey: bindKey(\"Alt-E\", \"F4\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/error_marker\", function (module) {\n module.showErrorMarker(editor, 1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"goToPreviousError\",\n description: \"Go to previous error\",\n bindKey: bindKey(\"Alt-Shift-E\", \"Shift-F4\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/error_marker\", function (module) {\n module.showErrorMarker(editor, -1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"selectall\",\n description: \"Select all\",\n bindKey: bindKey(\"Ctrl-A\", \"Command-A\"),\n exec: function (editor) { editor.selectAll(); },\n readOnly: true\n }, {\n name: \"centerselection\",\n description: \"Center selection\",\n bindKey: bindKey(null, \"Ctrl-L\"),\n exec: function (editor) { editor.centerSelection(); },\n readOnly: true\n }, {\n name: \"gotoline\",\n description: \"Go to line...\",\n bindKey: bindKey(\"Ctrl-L\", \"Command-L\"),\n exec: function (editor, line) {\n if (typeof line === \"number\" && !isNaN(line))\n editor.gotoLine(line);\n editor.prompt({ $type: \"gotoLine\" });\n },\n readOnly: true\n }, {\n name: \"fold\",\n bindKey: bindKey(\"Alt-L|Ctrl-F1\", \"Command-Alt-L|Command-F1\"),\n exec: function (editor) { editor.session.toggleFold(false); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"unfold\",\n bindKey: bindKey(\"Alt-Shift-L|Ctrl-Shift-F1\", \"Command-Alt-Shift-L|Command-Shift-F1\"),\n exec: function (editor) { editor.session.toggleFold(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"toggleFoldWidget\",\n description: \"Toggle fold widget\",\n bindKey: bindKey(\"F2\", \"F2\"),\n exec: function (editor) { editor.session.toggleFoldWidget(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"toggleParentFoldWidget\",\n description: \"Toggle parent fold widget\",\n bindKey: bindKey(\"Alt-F2\", \"Alt-F2\"),\n exec: function (editor) { editor.session.toggleFoldWidget(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"foldall\",\n description: \"Fold all\",\n bindKey: bindKey(null, \"Ctrl-Command-Option-0\"),\n exec: function (editor) { editor.session.foldAll(); },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"foldAllComments\",\n description: \"Fold all comments\",\n bindKey: bindKey(null, \"Ctrl-Command-Option-0\"),\n exec: function (editor) { editor.session.foldAllComments(); },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"foldOther\",\n description: \"Fold other\",\n bindKey: bindKey(\"Alt-0\", \"Command-Option-0\"),\n exec: function (editor) {\n editor.session.foldAll();\n editor.session.unfold(editor.selection.getAllRanges());\n },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"unfoldall\",\n description: \"Unfold all\",\n bindKey: bindKey(\"Alt-Shift-0\", \"Command-Option-Shift-0\"),\n exec: function (editor) { editor.session.unfold(); },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"findnext\",\n description: \"Find next\",\n bindKey: bindKey(\"Ctrl-K\", \"Command-G\"),\n exec: function (editor) { editor.findNext(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"findprevious\",\n description: \"Find previous\",\n bindKey: bindKey(\"Ctrl-Shift-K\", \"Command-Shift-G\"),\n exec: function (editor) { editor.findPrevious(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"selectOrFindNext\",\n description: \"Select or find next\",\n bindKey: bindKey(\"Alt-K\", \"Ctrl-G\"),\n exec: function (editor) {\n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findNext();\n },\n readOnly: true\n }, {\n name: \"selectOrFindPrevious\",\n description: \"Select or find previous\",\n bindKey: bindKey(\"Alt-Shift-K\", \"Ctrl-Shift-G\"),\n exec: function (editor) {\n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findPrevious();\n },\n readOnly: true\n }, {\n name: \"find\",\n description: \"Find\",\n bindKey: bindKey(\"Ctrl-F\", \"Command-F\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/searchbox\", function (e) { e.Search(editor); });\n },\n readOnly: true\n }, {\n name: \"overwrite\",\n description: \"Overwrite\",\n bindKey: \"Insert\",\n exec: function (editor) { editor.toggleOverwrite(); },\n readOnly: true\n }, {\n name: \"selecttostart\",\n description: \"Select to start\",\n bindKey: bindKey(\"Ctrl-Shift-Home\", \"Command-Shift-Home|Command-Shift-Up\"),\n exec: function (editor) { editor.getSelection().selectFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"gotostart\",\n description: \"Go to start\",\n bindKey: bindKey(\"Ctrl-Home\", \"Command-Home|Command-Up\"),\n exec: function (editor) { editor.navigateFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"selectup\",\n description: \"Select up\",\n bindKey: bindKey(\"Shift-Up\", \"Shift-Up|Ctrl-Shift-P\"),\n exec: function (editor) { editor.getSelection().selectUp(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"golineup\",\n description: \"Go line up\",\n bindKey: bindKey(\"Up\", \"Up|Ctrl-P\"),\n exec: function (editor, args) { editor.navigateUp(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selecttoend\",\n description: \"Select to end\",\n bindKey: bindKey(\"Ctrl-Shift-End\", \"Command-Shift-End|Command-Shift-Down\"),\n exec: function (editor) { editor.getSelection().selectFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"gotoend\",\n description: \"Go to end\",\n bindKey: bindKey(\"Ctrl-End\", \"Command-End|Command-Down\"),\n exec: function (editor) { editor.navigateFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"selectdown\",\n description: \"Select down\",\n bindKey: bindKey(\"Shift-Down\", \"Shift-Down|Ctrl-Shift-N\"),\n exec: function (editor) { editor.getSelection().selectDown(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"golinedown\",\n description: \"Go line down\",\n bindKey: bindKey(\"Down\", \"Down|Ctrl-N\"),\n exec: function (editor, args) { editor.navigateDown(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectwordleft\",\n description: \"Select word left\",\n bindKey: bindKey(\"Ctrl-Shift-Left\", \"Option-Shift-Left\"),\n exec: function (editor) { editor.getSelection().selectWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotowordleft\",\n description: \"Go to word left\",\n bindKey: bindKey(\"Ctrl-Left\", \"Option-Left\"),\n exec: function (editor) { editor.navigateWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selecttolinestart\",\n description: \"Select to line start\",\n bindKey: bindKey(\"Alt-Shift-Left\", \"Command-Shift-Left|Ctrl-Shift-A\"),\n exec: function (editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotolinestart\",\n description: \"Go to line start\",\n bindKey: bindKey(\"Alt-Left|Home\", \"Command-Left|Home|Ctrl-A\"),\n exec: function (editor) { editor.navigateLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectleft\",\n description: \"Select left\",\n bindKey: bindKey(\"Shift-Left\", \"Shift-Left|Ctrl-Shift-B\"),\n exec: function (editor) { editor.getSelection().selectLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotoleft\",\n description: \"Go to left\",\n bindKey: bindKey(\"Left\", \"Left|Ctrl-B\"),\n exec: function (editor, args) { editor.navigateLeft(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectwordright\",\n description: \"Select word right\",\n bindKey: bindKey(\"Ctrl-Shift-Right\", \"Option-Shift-Right\"),\n exec: function (editor) { editor.getSelection().selectWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotowordright\",\n description: \"Go to word right\",\n bindKey: bindKey(\"Ctrl-Right\", \"Option-Right\"),\n exec: function (editor) { editor.navigateWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selecttolineend\",\n description: \"Select to line end\",\n bindKey: bindKey(\"Alt-Shift-Right\", \"Command-Shift-Right|Shift-End|Ctrl-Shift-E\"),\n exec: function (editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotolineend\",\n description: \"Go to line end\",\n bindKey: bindKey(\"Alt-Right|End\", \"Command-Right|End|Ctrl-E\"),\n exec: function (editor) { editor.navigateLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectright\",\n description: \"Select right\",\n bindKey: bindKey(\"Shift-Right\", \"Shift-Right\"),\n exec: function (editor) { editor.getSelection().selectRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotoright\",\n description: \"Go to right\",\n bindKey: bindKey(\"Right\", \"Right|Ctrl-F\"),\n exec: function (editor, args) { editor.navigateRight(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectpagedown\",\n description: \"Select page down\",\n bindKey: \"Shift-PageDown\",\n exec: function (editor) { editor.selectPageDown(); },\n readOnly: true\n }, {\n name: \"pagedown\",\n description: \"Page down\",\n bindKey: bindKey(null, \"Option-PageDown\"),\n exec: function (editor) { editor.scrollPageDown(); },\n readOnly: true\n }, {\n name: \"gotopagedown\",\n description: \"Go to page down\",\n bindKey: bindKey(\"PageDown\", \"PageDown|Ctrl-V\"),\n exec: function (editor) { editor.gotoPageDown(); },\n readOnly: true\n }, {\n name: \"selectpageup\",\n description: \"Select page up\",\n bindKey: \"Shift-PageUp\",\n exec: function (editor) { editor.selectPageUp(); },\n readOnly: true\n }, {\n name: \"pageup\",\n description: \"Page up\",\n bindKey: bindKey(null, \"Option-PageUp\"),\n exec: function (editor) { editor.scrollPageUp(); },\n readOnly: true\n }, {\n name: \"gotopageup\",\n description: \"Go to page up\",\n bindKey: \"PageUp\",\n exec: function (editor) { editor.gotoPageUp(); },\n readOnly: true\n }, {\n name: \"scrollup\",\n description: \"Scroll up\",\n bindKey: bindKey(\"Ctrl-Up\", null),\n exec: function (e) { e.renderer.scrollBy(0, -2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n }, {\n name: \"scrolldown\",\n description: \"Scroll down\",\n bindKey: bindKey(\"Ctrl-Down\", null),\n exec: function (e) { e.renderer.scrollBy(0, 2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n }, {\n name: \"selectlinestart\",\n description: \"Select line start\",\n bindKey: \"Shift-Home\",\n exec: function (editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectlineend\",\n description: \"Select line end\",\n bindKey: \"Shift-End\",\n exec: function (editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"togglerecording\",\n description: \"Toggle recording\",\n bindKey: bindKey(\"Ctrl-Alt-E\", \"Command-Option-E\"),\n exec: function (editor) { editor.commands.toggleRecording(editor); },\n readOnly: true\n }, {\n name: \"replaymacro\",\n description: \"Replay macro\",\n bindKey: bindKey(\"Ctrl-Shift-E\", \"Command-Shift-E\"),\n exec: function (editor) { editor.commands.replay(editor); },\n readOnly: true\n }, {\n name: \"jumptomatching\",\n description: \"Jump to matching\",\n bindKey: bindKey(\"Ctrl-\\\\|Ctrl-P\", \"Command-\\\\\"),\n exec: function (editor) { editor.jumpToMatching(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"selecttomatching\",\n description: \"Select to matching\",\n bindKey: bindKey(\"Ctrl-Shift-\\\\|Ctrl-Shift-P\", \"Command-Shift-\\\\\"),\n exec: function (editor) { editor.jumpToMatching(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"expandToMatching\",\n description: \"Expand to matching\",\n bindKey: bindKey(\"Ctrl-Shift-M\", \"Ctrl-Shift-M\"),\n exec: function (editor) { editor.jumpToMatching(true, true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"passKeysToBrowser\",\n description: \"Pass keys to browser\",\n bindKey: bindKey(null, null),\n exec: function () { },\n passEvent: true,\n readOnly: true\n }, {\n name: \"copy\",\n description: \"Copy\",\n exec: function (editor) {\n },\n readOnly: true\n },\n {\n name: \"cut\",\n description: \"Cut\",\n exec: function (editor) {\n var cutLine = editor.$copyWithEmptySelection && editor.selection.isEmpty();\n var range = cutLine ? editor.selection.getLineRange() : editor.selection.getRange();\n editor._emit(\"cut\", range);\n if (!range.isEmpty())\n editor.session.remove(range);\n editor.clearSelection();\n },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"paste\",\n description: \"Paste\",\n exec: function (editor, args) {\n editor.$handlePaste(args);\n },\n scrollIntoView: \"cursor\"\n }, {\n name: \"removeline\",\n description: \"Remove line\",\n bindKey: bindKey(\"Ctrl-D\", \"Command-D\"),\n exec: function (editor) { editor.removeLines(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEachLine\"\n }, {\n name: \"duplicateSelection\",\n description: \"Duplicate selection\",\n bindKey: bindKey(\"Ctrl-Shift-D\", \"Command-Shift-D\"),\n exec: function (editor) { editor.duplicateSelection(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"sortlines\",\n description: \"Sort lines\",\n bindKey: bindKey(\"Ctrl-Alt-S\", \"Command-Alt-S\"),\n exec: function (editor) { editor.sortLines(); },\n scrollIntoView: \"selection\",\n multiSelectAction: \"forEachLine\"\n }, {\n name: \"togglecomment\",\n description: \"Toggle comment\",\n bindKey: bindKey(\"Ctrl-/\", \"Command-/\"),\n exec: function (editor) { editor.toggleCommentLines(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"toggleBlockComment\",\n description: \"Toggle block comment\",\n bindKey: bindKey(\"Ctrl-Shift-/\", \"Command-Shift-/\"),\n exec: function (editor) { editor.toggleBlockComment(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"modifyNumberUp\",\n description: \"Modify number up\",\n bindKey: bindKey(\"Ctrl-Shift-Up\", \"Alt-Shift-Up\"),\n exec: function (editor) { editor.modifyNumber(1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"modifyNumberDown\",\n description: \"Modify number down\",\n bindKey: bindKey(\"Ctrl-Shift-Down\", \"Alt-Shift-Down\"),\n exec: function (editor) { editor.modifyNumber(-1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"replace\",\n description: \"Replace\",\n bindKey: bindKey(\"Ctrl-H\", \"Command-Option-F\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/searchbox\", function (e) { e.Search(editor, true); });\n }\n }, {\n name: \"undo\",\n description: \"Undo\",\n bindKey: bindKey(\"Ctrl-Z\", \"Command-Z\"),\n exec: function (editor) { editor.undo(); }\n }, {\n name: \"redo\",\n description: \"Redo\",\n bindKey: bindKey(\"Ctrl-Shift-Z|Ctrl-Y\", \"Command-Shift-Z|Command-Y\"),\n exec: function (editor) { editor.redo(); }\n }, {\n name: \"copylinesup\",\n description: \"Copy lines up\",\n bindKey: bindKey(\"Alt-Shift-Up\", \"Command-Option-Up\"),\n exec: function (editor) { editor.copyLinesUp(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"movelinesup\",\n description: \"Move lines up\",\n bindKey: bindKey(\"Alt-Up\", \"Option-Up\"),\n exec: function (editor) { editor.moveLinesUp(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"copylinesdown\",\n description: \"Copy lines down\",\n bindKey: bindKey(\"Alt-Shift-Down\", \"Command-Option-Down\"),\n exec: function (editor) { editor.copyLinesDown(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"movelinesdown\",\n description: \"Move lines down\",\n bindKey: bindKey(\"Alt-Down\", \"Option-Down\"),\n exec: function (editor) { editor.moveLinesDown(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"del\",\n description: \"Delete\",\n bindKey: bindKey(\"Delete\", \"Delete|Ctrl-D|Shift-Delete\"),\n exec: function (editor) { editor.remove(\"right\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"backspace\",\n description: \"Backspace\",\n bindKey: bindKey(\"Shift-Backspace|Backspace\", \"Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H\"),\n exec: function (editor) { editor.remove(\"left\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"cut_or_delete\",\n description: \"Cut or delete\",\n bindKey: bindKey(\"Shift-Delete\", null),\n exec: function (editor) {\n if (editor.selection.isEmpty()) {\n editor.remove(\"left\");\n }\n else {\n return false;\n }\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolinestart\",\n description: \"Remove to line start\",\n bindKey: bindKey(\"Alt-Backspace\", \"Command-Backspace\"),\n exec: function (editor) { editor.removeToLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolineend\",\n description: \"Remove to line end\",\n bindKey: bindKey(\"Alt-Delete\", \"Ctrl-K|Command-Delete\"),\n exec: function (editor) { editor.removeToLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolinestarthard\",\n description: \"Remove to line start hard\",\n bindKey: bindKey(\"Ctrl-Shift-Backspace\", null),\n exec: function (editor) {\n var range = editor.selection.getRange();\n range.start.column = 0;\n editor.session.remove(range);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolineendhard\",\n description: \"Remove to line end hard\",\n bindKey: bindKey(\"Ctrl-Shift-Delete\", null),\n exec: function (editor) {\n var range = editor.selection.getRange();\n range.end.column = Number.MAX_VALUE;\n editor.session.remove(range);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removewordleft\",\n description: \"Remove word left\",\n bindKey: bindKey(\"Ctrl-Backspace\", \"Alt-Backspace|Ctrl-Alt-Backspace\"),\n exec: function (editor) { editor.removeWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removewordright\",\n description: \"Remove word right\",\n bindKey: bindKey(\"Ctrl-Delete\", \"Alt-Delete\"),\n exec: function (editor) { editor.removeWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"outdent\",\n description: \"Outdent\",\n bindKey: bindKey(\"Shift-Tab\", \"Shift-Tab\"),\n exec: function (editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"indent\",\n description: \"Indent\",\n bindKey: bindKey(\"Tab\", \"Tab\"),\n exec: function (editor) { editor.indent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"blockoutdent\",\n description: \"Block outdent\",\n bindKey: bindKey(\"Ctrl-[\", \"Ctrl-[\"),\n exec: function (editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"blockindent\",\n description: \"Block indent\",\n bindKey: bindKey(\"Ctrl-]\", \"Ctrl-]\"),\n exec: function (editor) { editor.blockIndent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"insertstring\",\n description: \"Insert string\",\n exec: function (editor, str) { editor.insert(str); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"inserttext\",\n description: \"Insert text\",\n exec: function (editor, args) {\n editor.insert(lang.stringRepeat(args.text || \"\", args.times || 1));\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"splitline\",\n description: \"Split line\",\n bindKey: bindKey(null, \"Ctrl-O\"),\n exec: function (editor) { editor.splitLine(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"transposeletters\",\n description: \"Transpose letters\",\n bindKey: bindKey(\"Alt-Shift-X\", \"Ctrl-T\"),\n exec: function (editor) { editor.transposeLetters(); },\n multiSelectAction: function (editor) { editor.transposeSelections(1); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"touppercase\",\n description: \"To uppercase\",\n bindKey: bindKey(\"Ctrl-U\", \"Ctrl-U\"),\n exec: function (editor) { editor.toUpperCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"tolowercase\",\n description: \"To lowercase\",\n bindKey: bindKey(\"Ctrl-Shift-U\", \"Ctrl-Shift-U\"),\n exec: function (editor) { editor.toLowerCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"autoindent\",\n description: \"Auto Indent\",\n bindKey: bindKey(null, null),\n exec: function (editor) { editor.autoIndent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"animate\"\n }, {\n name: \"expandtoline\",\n description: \"Expand to line\",\n bindKey: bindKey(\"Ctrl-Shift-L\", \"Command-Shift-L\"),\n exec: function (editor) {\n var range = editor.selection.getRange();\n range.start.column = range.end.column = 0;\n range.end.row++;\n editor.selection.setRange(range, false);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"openlink\",\n bindKey: bindKey(\"Ctrl+F3\", \"F3\"),\n exec: function (editor) { editor.openLink(); }\n }, {\n name: \"joinlines\",\n description: \"Join lines\",\n bindKey: bindKey(null, null),\n exec: function (editor) {\n var isBackwards = editor.selection.isBackwards();\n var selectionStart = isBackwards ? editor.selection.getSelectionLead() : editor.selection.getSelectionAnchor();\n var selectionEnd = isBackwards ? editor.selection.getSelectionAnchor() : editor.selection.getSelectionLead();\n var firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length;\n var selectedText = editor.session.doc.getTextRange(editor.selection.getRange());\n var selectedCount = selectedText.replace(/\\n\\s*/, \" \").length;\n var insertLine = editor.session.doc.getLine(selectionStart.row);\n for (var i = selectionStart.row + 1; i <= selectionEnd.row + 1; i++) {\n var curLine = lang.stringTrimLeft(lang.stringTrimRight(editor.session.doc.getLine(i)));\n if (curLine.length !== 0) {\n curLine = \" \" + curLine;\n }\n insertLine += curLine;\n }\n if (selectionEnd.row + 1 < (editor.session.doc.getLength() - 1)) {\n insertLine += editor.session.doc.getNewLineCharacter();\n }\n editor.clearSelection();\n editor.session.doc.replace(new Range(selectionStart.row, 0, selectionEnd.row + 2, 0), insertLine);\n if (selectedCount > 0) {\n editor.selection.moveCursorTo(selectionStart.row, selectionStart.column);\n editor.selection.selectTo(selectionStart.row, selectionStart.column + selectedCount);\n }\n else {\n firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length > firstLineEndCol ? (firstLineEndCol + 1) : firstLineEndCol;\n editor.selection.moveCursorTo(selectionStart.row, firstLineEndCol);\n }\n },\n multiSelectAction: \"forEach\",\n readOnly: true\n }, {\n name: \"invertSelection\",\n description: \"Invert selection\",\n bindKey: bindKey(null, null),\n exec: function (editor) {\n var endRow = editor.session.doc.getLength() - 1;\n var endCol = editor.session.doc.getLine(endRow).length;\n var ranges = editor.selection.rangeList.ranges;\n var newRanges = [];\n if (ranges.length < 1) {\n ranges = [editor.selection.getRange()];\n }\n for (var i = 0; i < ranges.length; i++) {\n if (i == (ranges.length - 1)) {\n if (!(ranges[i].end.row === endRow && ranges[i].end.column === endCol)) {\n newRanges.push(new Range(ranges[i].end.row, ranges[i].end.column, endRow, endCol));\n }\n }\n if (i === 0) {\n if (!(ranges[i].start.row === 0 && ranges[i].start.column === 0)) {\n newRanges.push(new Range(0, 0, ranges[i].start.row, ranges[i].start.column));\n }\n }\n else {\n newRanges.push(new Range(ranges[i - 1].end.row, ranges[i - 1].end.column, ranges[i].start.row, ranges[i].start.column));\n }\n }\n editor.exitMultiSelectMode();\n editor.clearSelection();\n for (var i = 0; i < newRanges.length; i++) {\n editor.selection.addRange(newRanges[i], false);\n }\n },\n readOnly: true,\n scrollIntoView: \"none\"\n }, {\n name: \"addLineAfter\",\n description: \"Add new line after the current line\",\n exec: function (editor) {\n editor.selection.clearSelection();\n editor.navigateLineEnd();\n editor.insert(\"\\n\");\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"addLineBefore\",\n description: \"Add new line before the current line\",\n exec: function (editor) {\n editor.selection.clearSelection();\n var cursor = editor.getCursorPosition();\n editor.selection.moveTo(cursor.row - 1, Number.MAX_VALUE);\n editor.insert(\"\\n\");\n if (cursor.row === 0)\n editor.navigateUp();\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"openCommandPallete\",\n exec: function (editor) {\n console.warn(\"This is an obsolete command. Please use `openCommandPalette` instead.\");\n editor.prompt({ $type: \"commands\" });\n },\n readOnly: true\n }, {\n name: \"openCommandPalette\",\n description: \"Open command palette\",\n bindKey: bindKey(\"F1\", \"F1\"),\n exec: function (editor) {\n editor.prompt({ $type: \"commands\" });\n },\n readOnly: true\n }, {\n name: \"modeSelect\",\n description: \"Change language mode...\",\n bindKey: bindKey(null, null),\n exec: function (editor) {\n editor.prompt({ $type: \"modes\" });\n },\n readOnly: true\n }];\nfor (var i = 1; i < 9; i++) {\n exports.commands.push({\n name: \"foldToLevel\" + i,\n description: \"Fold To Level \" + i,\n level: i,\n exec: function (editor) { editor.session.foldToLevel(this.level); },\n scrollIntoView: \"center\",\n readOnly: true\n });\n}\n\n});\n\nace.define(\"ace/line_widgets\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"./lib/dom\");\nvar LineWidgets = /** @class */ (function () {\n function LineWidgets(session) {\n this.session = session;\n this.session.widgetManager = this;\n this.session.getRowLength = this.getRowLength;\n this.session.$getWidgetScreenLength = this.$getWidgetScreenLength;\n this.updateOnChange = this.updateOnChange.bind(this);\n this.renderWidgets = this.renderWidgets.bind(this);\n this.measureWidgets = this.measureWidgets.bind(this);\n this.session._changedWidgets = [];\n this.$onChangeEditor = this.$onChangeEditor.bind(this);\n this.session.on(\"change\", this.updateOnChange);\n this.session.on(\"changeFold\", this.updateOnFold);\n this.session.on(\"changeEditor\", this.$onChangeEditor);\n }\n LineWidgets.prototype.getRowLength = function (row) {\n var h;\n if (this.lineWidgets)\n h = this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n else\n h = 0;\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1 + h;\n }\n else {\n return this.$wrapData[row].length + 1 + h;\n }\n };\n LineWidgets.prototype.$getWidgetScreenLength = function () {\n var screenRows = 0;\n this.lineWidgets.forEach(function (w) {\n if (w && w.rowCount && !w.hidden)\n screenRows += w.rowCount;\n });\n return screenRows;\n };\n LineWidgets.prototype.$onChangeEditor = function (e) {\n this.attach(e.editor);\n };\n LineWidgets.prototype.attach = function (editor) {\n if (editor && editor.widgetManager && editor.widgetManager != this)\n editor.widgetManager.detach();\n if (this.editor == editor)\n return;\n this.detach();\n this.editor = editor;\n if (editor) {\n editor.widgetManager = this;\n editor.renderer.on(\"beforeRender\", this.measureWidgets);\n editor.renderer.on(\"afterRender\", this.renderWidgets);\n }\n };\n LineWidgets.prototype.detach = function (e) {\n var editor = this.editor;\n if (!editor)\n return;\n this.editor = null;\n editor.widgetManager = null;\n editor.renderer.off(\"beforeRender\", this.measureWidgets);\n editor.renderer.off(\"afterRender\", this.renderWidgets);\n var lineWidgets = this.session.lineWidgets;\n lineWidgets && lineWidgets.forEach(function (w) {\n if (w && w.el && w.el.parentNode) {\n w._inDocument = false;\n w.el.parentNode.removeChild(w.el);\n }\n });\n };\n LineWidgets.prototype.updateOnFold = function (e, session) {\n var lineWidgets = session.lineWidgets;\n if (!lineWidgets || !e.action)\n return;\n var fold = e.data;\n var start = fold.start.row;\n var end = fold.end.row;\n var hide = e.action == \"add\";\n for (var i = start + 1; i < end; i++) {\n if (lineWidgets[i])\n lineWidgets[i].hidden = hide;\n }\n if (lineWidgets[end]) {\n if (hide) {\n if (!lineWidgets[start])\n lineWidgets[start] = lineWidgets[end];\n else\n lineWidgets[end].hidden = hide;\n }\n else {\n if (lineWidgets[start] == lineWidgets[end])\n lineWidgets[start] = undefined;\n lineWidgets[end].hidden = hide;\n }\n }\n };\n LineWidgets.prototype.updateOnChange = function (delta) {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n if (len === 0) {\n }\n else if (delta.action == \"remove\") {\n var removed = lineWidgets.splice(startRow + 1, len);\n if (!lineWidgets[startRow] && removed[removed.length - 1]) {\n lineWidgets[startRow] = removed.pop();\n }\n removed.forEach(function (w) {\n w && this.removeLineWidget(w);\n }, this);\n this.$updateRows();\n }\n else {\n var args = new Array(len);\n if (lineWidgets[startRow] && lineWidgets[startRow].column != null) {\n if (delta.start.column > lineWidgets[startRow].column)\n startRow++;\n }\n args.unshift(startRow, 0);\n lineWidgets.splice.apply(lineWidgets, args);\n this.$updateRows();\n }\n };\n LineWidgets.prototype.$updateRows = function () {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var noWidgets = true;\n lineWidgets.forEach(function (w, i) {\n if (w) {\n noWidgets = false;\n w.row = i;\n while (w.$oldWidget) {\n w.$oldWidget.row = i;\n w = w.$oldWidget;\n }\n }\n });\n if (noWidgets)\n this.session.lineWidgets = null;\n };\n LineWidgets.prototype.$registerLineWidget = function (w) {\n if (!this.session.lineWidgets)\n this.session.lineWidgets = new Array(this.session.getLength());\n var old = this.session.lineWidgets[w.row];\n if (old) {\n w.$oldWidget = old;\n if (old.el && old.el.parentNode) {\n old.el.parentNode.removeChild(old.el);\n old._inDocument = false;\n }\n }\n this.session.lineWidgets[w.row] = w;\n return w;\n };\n LineWidgets.prototype.addLineWidget = function (w) {\n this.$registerLineWidget(w);\n w.session = this.session;\n if (!this.editor)\n return w;\n var renderer = this.editor.renderer;\n if (w.html && !w.el) {\n w.el = dom.createElement(\"div\");\n w.el.innerHTML = w.html;\n }\n if (w.text && !w.el) {\n w.el = dom.createElement(\"div\");\n w.el.textContent = w.text;\n }\n if (w.el) {\n dom.addCssClass(w.el, \"ace_lineWidgetContainer\");\n if (w.className) {\n dom.addCssClass(w.el, w.className);\n }\n w.el.style.position = \"absolute\";\n w.el.style.zIndex = 5;\n renderer.container.appendChild(w.el);\n w._inDocument = true;\n if (!w.coverGutter) {\n w.el.style.zIndex = 3;\n }\n if (w.pixelHeight == null) {\n w.pixelHeight = w.el.offsetHeight;\n }\n }\n if (w.rowCount == null) {\n w.rowCount = w.pixelHeight / renderer.layerConfig.lineHeight;\n }\n var fold = this.session.getFoldAt(w.row, 0);\n w.$fold = fold;\n if (fold) {\n var lineWidgets = this.session.lineWidgets;\n if (w.row == fold.end.row && !lineWidgets[fold.start.row])\n lineWidgets[fold.start.row] = w;\n else\n w.hidden = true;\n }\n this.session._emit(\"changeFold\", { data: { start: { row: w.row } } });\n this.$updateRows();\n this.renderWidgets(null, renderer);\n this.onWidgetChanged(w);\n return w;\n };\n LineWidgets.prototype.removeLineWidget = function (w) {\n w._inDocument = false;\n w.session = null;\n if (w.el && w.el.parentNode)\n w.el.parentNode.removeChild(w.el);\n if (w.editor && w.editor.destroy)\n try {\n w.editor.destroy();\n }\n catch (e) { }\n if (this.session.lineWidgets) {\n var w1 = this.session.lineWidgets[w.row];\n if (w1 == w) {\n this.session.lineWidgets[w.row] = w.$oldWidget;\n if (w.$oldWidget)\n this.onWidgetChanged(w.$oldWidget);\n }\n else {\n while (w1) {\n if (w1.$oldWidget == w) {\n w1.$oldWidget = w.$oldWidget;\n break;\n }\n w1 = w1.$oldWidget;\n }\n }\n }\n this.session._emit(\"changeFold\", { data: { start: { row: w.row } } });\n this.$updateRows();\n };\n LineWidgets.prototype.getWidgetsAtRow = function (row) {\n var lineWidgets = this.session.lineWidgets;\n var w = lineWidgets && lineWidgets[row];\n var list = [];\n while (w) {\n list.push(w);\n w = w.$oldWidget;\n }\n return list;\n };\n LineWidgets.prototype.onWidgetChanged = function (w) {\n this.session._changedWidgets.push(w);\n this.editor && this.editor.renderer.updateFull();\n };\n LineWidgets.prototype.measureWidgets = function (e, renderer) {\n var changedWidgets = this.session._changedWidgets;\n var config = renderer.layerConfig;\n if (!changedWidgets || !changedWidgets.length)\n return;\n var min = Infinity;\n for (var i = 0; i < changedWidgets.length; i++) {\n var w = changedWidgets[i];\n if (!w || !w.el)\n continue;\n if (w.session != this.session)\n continue;\n if (!w._inDocument) {\n if (this.session.lineWidgets[w.row] != w)\n continue;\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n w.h = w.el.offsetHeight;\n if (!w.fixedWidth) {\n w.w = w.el.offsetWidth;\n w.screenWidth = Math.ceil(w.w / config.characterWidth);\n }\n var rowCount = w.h / config.lineHeight;\n if (w.coverLine) {\n rowCount -= this.session.getRowLineCount(w.row);\n if (rowCount < 0)\n rowCount = 0;\n }\n if (w.rowCount != rowCount) {\n w.rowCount = rowCount;\n if (w.row < min)\n min = w.row;\n }\n }\n if (min != Infinity) {\n this.session._emit(\"changeFold\", { data: { start: { row: min } } });\n this.session.lineWidgetWidth = null;\n }\n this.session._changedWidgets = [];\n };\n LineWidgets.prototype.renderWidgets = function (e, renderer) {\n var config = renderer.layerConfig;\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var first = Math.min(this.firstRow, config.firstRow);\n var last = Math.max(this.lastRow, config.lastRow, lineWidgets.length);\n while (first > 0 && !lineWidgets[first])\n first--;\n this.firstRow = config.firstRow;\n this.lastRow = config.lastRow;\n renderer.$cursorLayer.config = config;\n for (var i = first; i <= last; i++) {\n var w = lineWidgets[i];\n if (!w || !w.el)\n continue;\n if (w.hidden) {\n w.el.style.top = -100 - (w.pixelHeight || 0) + \"px\";\n continue;\n }\n if (!w._inDocument) {\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n var top = renderer.$cursorLayer.getPixelPosition({ row: i, column: 0 }, true).top;\n if (!w.coverLine)\n top += config.lineHeight * this.session.getRowLineCount(w.row);\n w.el.style.top = top - config.offset + \"px\";\n var left = w.coverGutter ? 0 : renderer.gutterWidth;\n if (!w.fixedWidth)\n left -= renderer.scrollLeft;\n w.el.style.left = left + \"px\";\n if (w.fullWidth && w.screenWidth) {\n w.el.style.minWidth = config.width + 2 * config.padding + \"px\";\n }\n if (w.fixedWidth) {\n w.el.style.right = renderer.scrollBar.getWidth() + \"px\";\n }\n else {\n w.el.style.right = \"\";\n }\n }\n };\n return LineWidgets;\n}());\nexports.LineWidgets = LineWidgets;\n\n});\n\nace.define(\"ace/keyboard/gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/mouse/default_gutter_handler\"], function(require, exports, module){\"use strict\";\nvar keys = require('../lib/keys');\nvar GutterTooltip = require(\"../mouse/default_gutter_handler\").GutterTooltip;\nvar GutterKeyboardHandler = /** @class */ (function () {\n function GutterKeyboardHandler(editor) {\n this.editor = editor;\n this.gutterLayer = editor.renderer.$gutterLayer;\n this.element = editor.renderer.$gutter;\n this.lines = editor.renderer.$gutterLayer.$lines;\n this.activeRowIndex = null;\n this.activeLane = null;\n this.annotationTooltip = new GutterTooltip(this.editor);\n }\n GutterKeyboardHandler.prototype.addListener = function () {\n this.element.addEventListener(\"keydown\", this.$onGutterKeyDown.bind(this));\n this.element.addEventListener(\"focusout\", this.$blurGutter.bind(this));\n this.editor.on(\"mousewheel\", this.$blurGutter.bind(this));\n };\n GutterKeyboardHandler.prototype.removeListener = function () {\n this.element.removeEventListener(\"keydown\", this.$onGutterKeyDown.bind(this));\n this.element.removeEventListener(\"focusout\", this.$blurGutter.bind(this));\n this.editor.off(\"mousewheel\", this.$blurGutter.bind(this));\n };\n GutterKeyboardHandler.prototype.$onGutterKeyDown = function (e) {\n if (this.annotationTooltip.isOpen) {\n e.preventDefault();\n if (e.keyCode === keys[\"escape\"])\n this.annotationTooltip.hideTooltip();\n return;\n }\n if (e.target === this.element) {\n if (e.keyCode != keys[\"enter\"]) {\n return;\n }\n e.preventDefault();\n var row = this.editor.getCursorPosition().row;\n if (!this.editor.isRowVisible(row))\n this.editor.scrollToLine(row, true, true);\n setTimeout(function () {\n var index = this.$rowToRowIndex(this.gutterLayer.$cursorCell.row);\n var nearestFoldIndex = this.$findNearestFoldWidget(index);\n var nearestAnnotationIndex = this.$findNearestAnnotation(index);\n if (nearestFoldIndex === null && nearestAnnotationIndex === null)\n return;\n if (nearestFoldIndex === null && nearestAnnotationIndex !== null) {\n this.activeRowIndex = nearestAnnotationIndex;\n this.activeLane = \"annotation\";\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n if (nearestFoldIndex !== null && nearestAnnotationIndex === null) {\n this.activeRowIndex = nearestFoldIndex;\n this.activeLane = \"fold\";\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n if (Math.abs(nearestAnnotationIndex - index) < Math.abs(nearestFoldIndex - index)) {\n this.activeRowIndex = nearestAnnotationIndex;\n this.activeLane = \"annotation\";\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n else {\n this.activeRowIndex = nearestFoldIndex;\n this.activeLane = \"fold\";\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n }.bind(this), 10);\n return;\n }\n this.$handleGutterKeyboardInteraction(e);\n setTimeout(function () {\n this.editor._signal(\"gutterkeydown\", new GutterKeyboardEvent(e, this));\n }.bind(this), 10);\n };\n GutterKeyboardHandler.prototype.$handleGutterKeyboardInteraction = function (e) {\n if (e.keyCode === keys[\"tab\"]) {\n e.preventDefault();\n return;\n }\n if (e.keyCode === keys[\"escape\"]) {\n e.preventDefault();\n this.$blurGutter();\n this.element.focus();\n this.lane = null;\n return;\n }\n if (e.keyCode === keys[\"up\"]) {\n e.preventDefault();\n switch (this.activeLane) {\n case \"fold\":\n this.$moveFoldWidgetUp();\n break;\n case \"annotation\":\n this.$moveAnnotationUp();\n break;\n }\n return;\n }\n if (e.keyCode === keys[\"down\"]) {\n e.preventDefault();\n switch (this.activeLane) {\n case \"fold\":\n this.$moveFoldWidgetDown();\n break;\n case \"annotation\":\n this.$moveAnnotationDown();\n break;\n }\n return;\n }\n if (e.keyCode === keys[\"left\"]) {\n e.preventDefault();\n this.$switchLane(\"annotation\");\n return;\n }\n if (e.keyCode === keys[\"right\"]) {\n e.preventDefault();\n this.$switchLane(\"fold\");\n return;\n }\n if (e.keyCode === keys[\"enter\"] || e.keyCode === keys[\"space\"]) {\n e.preventDefault();\n switch (this.activeLane) {\n case \"fold\":\n if (this.gutterLayer.session.foldWidgets[this.$rowIndexToRow(this.activeRowIndex)] === 'start') {\n var rowFoldingWidget = this.$rowIndexToRow(this.activeRowIndex);\n this.editor.session.onFoldWidgetClick(this.$rowIndexToRow(this.activeRowIndex), e);\n setTimeout(function () {\n if (this.$rowIndexToRow(this.activeRowIndex) !== rowFoldingWidget) {\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = this.$rowToRowIndex(rowFoldingWidget);\n this.$focusFoldWidget(this.activeRowIndex);\n }\n }.bind(this), 10);\n break;\n }\n else if (this.gutterLayer.session.foldWidgets[this.$rowIndexToRow(this.activeRowIndex)] === 'end') {\n break;\n }\n return;\n case \"annotation\":\n var gutterElement = this.lines.cells[this.activeRowIndex].element.childNodes[2];\n var rect = gutterElement.getBoundingClientRect();\n var style = this.annotationTooltip.getElement().style;\n style.left = rect.right + \"px\";\n style.top = rect.bottom + \"px\";\n this.annotationTooltip.showTooltip(this.$rowIndexToRow(this.activeRowIndex));\n break;\n }\n return;\n }\n };\n GutterKeyboardHandler.prototype.$blurGutter = function () {\n if (this.activeRowIndex !== null) {\n switch (this.activeLane) {\n case \"fold\":\n this.$blurFoldWidget(this.activeRowIndex);\n break;\n case \"annotation\":\n this.$blurAnnotation(this.activeRowIndex);\n break;\n }\n }\n if (this.annotationTooltip.isOpen)\n this.annotationTooltip.hideTooltip();\n return;\n };\n GutterKeyboardHandler.prototype.$isFoldWidgetVisible = function (index) {\n var isRowFullyVisible = this.editor.isRowFullyVisible(this.$rowIndexToRow(index));\n var isIconVisible = this.$getFoldWidget(index).style.display !== \"none\";\n return isRowFullyVisible && isIconVisible;\n };\n GutterKeyboardHandler.prototype.$isAnnotationVisible = function (index) {\n var isRowFullyVisible = this.editor.isRowFullyVisible(this.$rowIndexToRow(index));\n var isIconVisible = this.$getAnnotation(index).style.display !== \"none\";\n return isRowFullyVisible && isIconVisible;\n };\n GutterKeyboardHandler.prototype.$getFoldWidget = function (index) {\n var cell = this.lines.get(index);\n var element = cell.element;\n return element.childNodes[1];\n };\n GutterKeyboardHandler.prototype.$getAnnotation = function (index) {\n var cell = this.lines.get(index);\n var element = cell.element;\n return element.childNodes[2];\n };\n GutterKeyboardHandler.prototype.$findNearestFoldWidget = function (index) {\n if (this.$isFoldWidgetVisible(index))\n return index;\n var i = 0;\n while (index - i > 0 || index + i < this.lines.getLength() - 1) {\n i++;\n if (index - i >= 0 && this.$isFoldWidgetVisible(index - i))\n return index - i;\n if (index + i <= this.lines.getLength() - 1 && this.$isFoldWidgetVisible(index + i))\n return index + i;\n }\n return null;\n };\n GutterKeyboardHandler.prototype.$findNearestAnnotation = function (index) {\n if (this.$isAnnotationVisible(index))\n return index;\n var i = 0;\n while (index - i > 0 || index + i < this.lines.getLength() - 1) {\n i++;\n if (index - i >= 0 && this.$isAnnotationVisible(index - i))\n return index - i;\n if (index + i <= this.lines.getLength() - 1 && this.$isAnnotationVisible(index + i))\n return index + i;\n }\n return null;\n };\n GutterKeyboardHandler.prototype.$focusFoldWidget = function (index) {\n if (index == null)\n return;\n var foldWidget = this.$getFoldWidget(index);\n foldWidget.classList.add(this.editor.renderer.keyboardFocusClassName);\n foldWidget.focus();\n };\n GutterKeyboardHandler.prototype.$focusAnnotation = function (index) {\n if (index == null)\n return;\n var annotation = this.$getAnnotation(index);\n annotation.classList.add(this.editor.renderer.keyboardFocusClassName);\n annotation.focus();\n };\n GutterKeyboardHandler.prototype.$blurFoldWidget = function (index) {\n var foldWidget = this.$getFoldWidget(index);\n foldWidget.classList.remove(this.editor.renderer.keyboardFocusClassName);\n foldWidget.blur();\n };\n GutterKeyboardHandler.prototype.$blurAnnotation = function (index) {\n var annotation = this.$getAnnotation(index);\n annotation.classList.remove(this.editor.renderer.keyboardFocusClassName);\n annotation.blur();\n };\n GutterKeyboardHandler.prototype.$moveFoldWidgetUp = function () {\n var index = this.activeRowIndex;\n while (index > 0) {\n index--;\n if (this.$isFoldWidgetVisible(index)) {\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$moveFoldWidgetDown = function () {\n var index = this.activeRowIndex;\n while (index < this.lines.getLength() - 1) {\n index++;\n if (this.$isFoldWidgetVisible(index)) {\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$moveAnnotationUp = function () {\n var index = this.activeRowIndex;\n while (index > 0) {\n index--;\n if (this.$isAnnotationVisible(index)) {\n this.$blurAnnotation(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$moveAnnotationDown = function () {\n var index = this.activeRowIndex;\n while (index < this.lines.getLength() - 1) {\n index++;\n if (this.$isAnnotationVisible(index)) {\n this.$blurAnnotation(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$switchLane = function (desinationLane) {\n switch (desinationLane) {\n case \"annotation\":\n if (this.activeLane === \"annotation\") {\n break;\n }\n var annotationIndex = this.$findNearestAnnotation(this.activeRowIndex);\n if (annotationIndex == null) {\n break;\n }\n this.activeLane = \"annotation\";\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = annotationIndex;\n this.$focusAnnotation(this.activeRowIndex);\n break;\n case \"fold\":\n if (this.activeLane === \"fold\") {\n break;\n }\n var foldWidgetIndex = this.$findNearestFoldWidget(this.activeRowIndex);\n if (foldWidgetIndex == null) {\n break;\n }\n this.activeLane = \"fold\";\n this.$blurAnnotation(this.activeRowIndex);\n this.activeRowIndex = foldWidgetIndex;\n this.$focusFoldWidget(this.activeRowIndex);\n break;\n }\n return;\n };\n GutterKeyboardHandler.prototype.$rowIndexToRow = function (index) {\n var cell = this.lines.get(index);\n if (cell)\n return cell.row;\n return null;\n };\n GutterKeyboardHandler.prototype.$rowToRowIndex = function (row) {\n for (var i = 0; i < this.lines.getLength(); i++) {\n var cell = this.lines.get(i);\n if (cell.row == row)\n return i;\n }\n return null;\n };\n return GutterKeyboardHandler;\n}());\nexports.GutterKeyboardHandler = GutterKeyboardHandler;\nvar GutterKeyboardEvent = /** @class */ (function () {\n function GutterKeyboardEvent(domEvent, gutterKeyboardHandler) {\n this.gutterKeyboardHandler = gutterKeyboardHandler;\n this.domEvent = domEvent;\n }\n GutterKeyboardEvent.prototype.getKey = function () {\n return keys.keyCodeToString(this.domEvent.keyCode);\n };\n GutterKeyboardEvent.prototype.getRow = function () {\n return this.gutterKeyboardHandler.$rowIndexToRow(this.gutterKeyboardHandler.activeRowIndex);\n };\n GutterKeyboardEvent.prototype.isInAnnotationLane = function () {\n return this.gutterKeyboardHandler.activeLane === \"annotation\";\n };\n GutterKeyboardEvent.prototype.isInFoldLane = function () {\n return this.gutterKeyboardHandler.activeLane === \"fold\";\n };\n return GutterKeyboardEvent;\n}());\nexports.GutterKeyboardEvent = GutterKeyboardEvent;\n\n});\n\nace.define(\"ace/editor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/keyboard/textinput\",\"ace/mouse/mouse_handler\",\"ace/mouse/fold_handler\",\"ace/keyboard/keybinding\",\"ace/edit_session\",\"ace/search\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/commands/command_manager\",\"ace/commands/default_commands\",\"ace/config\",\"ace/token_iterator\",\"ace/line_widgets\",\"ace/keyboard/gutter_handler\",\"ace/config\",\"ace/clipboard\",\"ace/lib/keys\"], function(require, exports, module){\"use strict\";\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar lang = require(\"./lib/lang\");\nvar useragent = require(\"./lib/useragent\");\nvar TextInput = require(\"./keyboard/textinput\").TextInput;\nvar MouseHandler = require(\"./mouse/mouse_handler\").MouseHandler;\nvar FoldHandler = require(\"./mouse/fold_handler\").FoldHandler;\nvar KeyBinding = require(\"./keyboard/keybinding\").KeyBinding;\nvar EditSession = require(\"./edit_session\").EditSession;\nvar Search = require(\"./search\").Search;\nvar Range = require(\"./range\").Range;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar CommandManager = require(\"./commands/command_manager\").CommandManager;\nvar defaultCommands = require(\"./commands/default_commands\").commands;\nvar config = require(\"./config\");\nvar TokenIterator = require(\"./token_iterator\").TokenIterator;\nvar LineWidgets = require(\"./line_widgets\").LineWidgets;\nvar GutterKeyboardHandler = require(\"./keyboard/gutter_handler\").GutterKeyboardHandler;\nvar nls = require(\"./config\").nls;\nvar clipboard = require(\"./clipboard\");\nvar keys = require('./lib/keys');\nvar Editor = /** @class */ (function () {\n function Editor(renderer, session, options) {\n this.$toDestroy = [];\n var container = renderer.getContainerElement();\n this.container = container;\n this.renderer = renderer;\n this.id = \"editor\" + (++Editor.$uid);\n this.commands = new CommandManager(useragent.isMac ? \"mac\" : \"win\", defaultCommands);\n if (typeof document == \"object\") {\n this.textInput = new TextInput(renderer.getTextAreaContainer(), this);\n this.renderer.textarea = this.textInput.getElement();\n this.$mouseHandler = new MouseHandler(this);\n new FoldHandler(this);\n }\n this.keyBinding = new KeyBinding(this);\n this.$search = new Search().set({\n wrap: true\n });\n this.$historyTracker = this.$historyTracker.bind(this);\n this.commands.on(\"exec\", this.$historyTracker);\n this.$initOperationListeners();\n this._$emitInputEvent = lang.delayedCall(function () {\n this._signal(\"input\", {});\n if (this.session && !this.session.destroyed)\n this.session.bgTokenizer.scheduleStart();\n }.bind(this));\n this.on(\"change\", function (_, _self) {\n _self._$emitInputEvent.schedule(31);\n });\n this.setSession(session || options && options.session || new EditSession(\"\"));\n config.resetOptions(this);\n if (options)\n this.setOptions(options);\n config._signal(\"editor\", this);\n }\n Editor.prototype.$initOperationListeners = function () {\n this.commands.on(\"exec\", this.startOperation.bind(this), true);\n this.commands.on(\"afterExec\", this.endOperation.bind(this), true);\n this.$opResetTimer = lang.delayedCall(this.endOperation.bind(this, true));\n this.on(\"change\", function () {\n if (!this.curOp) {\n this.startOperation();\n this.curOp.selectionBefore = this.$lastSel;\n }\n this.curOp.docChanged = true;\n }.bind(this), true);\n this.on(\"changeSelection\", function () {\n if (!this.curOp) {\n this.startOperation();\n this.curOp.selectionBefore = this.$lastSel;\n }\n this.curOp.selectionChanged = true;\n }.bind(this), true);\n };\n Editor.prototype.startOperation = function (commandEvent) {\n if (this.curOp) {\n if (!commandEvent || this.curOp.command)\n return;\n this.prevOp = this.curOp;\n }\n if (!commandEvent) {\n this.previousCommand = null;\n commandEvent = {};\n }\n this.$opResetTimer.schedule();\n this.curOp = this.session.curOp = {\n command: commandEvent.command || {},\n args: commandEvent.args,\n scrollTop: this.renderer.scrollTop\n };\n this.curOp.selectionBefore = this.selection.toJSON();\n };\n Editor.prototype.endOperation = function (e) {\n if (this.curOp && this.session) {\n if (e && e.returnValue === false || !this.session)\n return (this.curOp = null);\n if (e == true && this.curOp.command && this.curOp.command.name == \"mouse\")\n return;\n this._signal(\"beforeEndOperation\");\n if (!this.curOp)\n return;\n var command = this.curOp.command;\n var scrollIntoView = command && command.scrollIntoView;\n if (scrollIntoView) {\n switch (scrollIntoView) {\n case \"center-animate\":\n scrollIntoView = \"animate\";\n case \"center\":\n this.renderer.scrollCursorIntoView(null, 0.5);\n break;\n case \"animate\":\n case \"cursor\":\n this.renderer.scrollCursorIntoView();\n break;\n case \"selectionPart\":\n var range = this.selection.getRange();\n var config = this.renderer.layerConfig;\n if (range.start.row >= config.lastRow || range.end.row <= config.firstRow) {\n this.renderer.scrollSelectionIntoView(this.selection.anchor, this.selection.lead);\n }\n break;\n default:\n break;\n }\n if (scrollIntoView == \"animate\")\n this.renderer.animateScrolling(this.curOp.scrollTop);\n }\n var sel = this.selection.toJSON();\n this.curOp.selectionAfter = sel;\n this.$lastSel = this.selection.toJSON();\n this.session.getUndoManager().addSelection(sel);\n this.prevOp = this.curOp;\n this.curOp = null;\n }\n };\n Editor.prototype.$historyTracker = function (e) {\n if (!this.$mergeUndoDeltas)\n return;\n var prev = this.prevOp;\n var mergeableCommands = this.$mergeableCommands;\n var shouldMerge = prev.command && (e.command.name == prev.command.name);\n if (e.command.name == \"insertstring\") {\n var text = e.args;\n if (this.mergeNextCommand === undefined)\n this.mergeNextCommand = true;\n shouldMerge = shouldMerge\n && this.mergeNextCommand // previous command allows to coalesce with\n && (!/\\s/.test(text) || /\\s/.test(prev.args)); // previous insertion was of same type\n this.mergeNextCommand = true;\n }\n else {\n shouldMerge = shouldMerge\n && mergeableCommands.indexOf(e.command.name) !== -1; // the command is mergeable\n }\n if (this.$mergeUndoDeltas != \"always\"\n && Date.now() - this.sequenceStartTime > 2000) {\n shouldMerge = false; // the sequence is too long\n }\n if (shouldMerge)\n this.session.mergeUndoDeltas = true;\n else if (mergeableCommands.indexOf(e.command.name) !== -1)\n this.sequenceStartTime = Date.now();\n };\n Editor.prototype.setKeyboardHandler = function (keyboardHandler, cb) {\n if (keyboardHandler && typeof keyboardHandler === \"string\" && keyboardHandler != \"ace\") {\n this.$keybindingId = keyboardHandler;\n var _self = this;\n config.loadModule([\"keybinding\", keyboardHandler], function (module) {\n if (_self.$keybindingId == keyboardHandler)\n _self.keyBinding.setKeyboardHandler(module && module.handler);\n cb && cb();\n });\n }\n else {\n this.$keybindingId = null;\n this.keyBinding.setKeyboardHandler(keyboardHandler);\n cb && cb();\n }\n };\n Editor.prototype.getKeyboardHandler = function () {\n return this.keyBinding.getKeyboardHandler();\n };\n Editor.prototype.setSession = function (session) {\n if (this.session == session)\n return;\n if (this.curOp)\n this.endOperation();\n this.curOp = {};\n var oldSession = this.session;\n if (oldSession) {\n this.session.off(\"change\", this.$onDocumentChange);\n this.session.off(\"changeMode\", this.$onChangeMode);\n this.session.off(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n this.session.off(\"changeTabSize\", this.$onChangeTabSize);\n this.session.off(\"changeWrapLimit\", this.$onChangeWrapLimit);\n this.session.off(\"changeWrapMode\", this.$onChangeWrapMode);\n this.session.off(\"changeFold\", this.$onChangeFold);\n this.session.off(\"changeFrontMarker\", this.$onChangeFrontMarker);\n this.session.off(\"changeBackMarker\", this.$onChangeBackMarker);\n this.session.off(\"changeBreakpoint\", this.$onChangeBreakpoint);\n this.session.off(\"changeAnnotation\", this.$onChangeAnnotation);\n this.session.off(\"changeOverwrite\", this.$onCursorChange);\n this.session.off(\"changeScrollTop\", this.$onScrollTopChange);\n this.session.off(\"changeScrollLeft\", this.$onScrollLeftChange);\n var selection = this.session.getSelection();\n selection.off(\"changeCursor\", this.$onCursorChange);\n selection.off(\"changeSelection\", this.$onSelectionChange);\n }\n this.session = session;\n if (session) {\n this.$onDocumentChange = this.onDocumentChange.bind(this);\n session.on(\"change\", this.$onDocumentChange);\n this.renderer.setSession(session);\n this.$onChangeMode = this.onChangeMode.bind(this);\n session.on(\"changeMode\", this.$onChangeMode);\n this.$onTokenizerUpdate = this.onTokenizerUpdate.bind(this);\n session.on(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n this.$onChangeTabSize = this.renderer.onChangeTabSize.bind(this.renderer);\n session.on(\"changeTabSize\", this.$onChangeTabSize);\n this.$onChangeWrapLimit = this.onChangeWrapLimit.bind(this);\n session.on(\"changeWrapLimit\", this.$onChangeWrapLimit);\n this.$onChangeWrapMode = this.onChangeWrapMode.bind(this);\n session.on(\"changeWrapMode\", this.$onChangeWrapMode);\n this.$onChangeFold = this.onChangeFold.bind(this);\n session.on(\"changeFold\", this.$onChangeFold);\n this.$onChangeFrontMarker = this.onChangeFrontMarker.bind(this);\n this.session.on(\"changeFrontMarker\", this.$onChangeFrontMarker);\n this.$onChangeBackMarker = this.onChangeBackMarker.bind(this);\n this.session.on(\"changeBackMarker\", this.$onChangeBackMarker);\n this.$onChangeBreakpoint = this.onChangeBreakpoint.bind(this);\n this.session.on(\"changeBreakpoint\", this.$onChangeBreakpoint);\n this.$onChangeAnnotation = this.onChangeAnnotation.bind(this);\n this.session.on(\"changeAnnotation\", this.$onChangeAnnotation);\n this.$onCursorChange = this.onCursorChange.bind(this);\n this.session.on(\"changeOverwrite\", this.$onCursorChange);\n this.$onScrollTopChange = this.onScrollTopChange.bind(this);\n this.session.on(\"changeScrollTop\", this.$onScrollTopChange);\n this.$onScrollLeftChange = this.onScrollLeftChange.bind(this);\n this.session.on(\"changeScrollLeft\", this.$onScrollLeftChange);\n this.selection = session.getSelection();\n this.selection.on(\"changeCursor\", this.$onCursorChange);\n this.$onSelectionChange = this.onSelectionChange.bind(this);\n this.selection.on(\"changeSelection\", this.$onSelectionChange);\n this.onChangeMode();\n this.onCursorChange();\n this.onScrollTopChange();\n this.onScrollLeftChange();\n this.onSelectionChange();\n this.onChangeFrontMarker();\n this.onChangeBackMarker();\n this.onChangeBreakpoint();\n this.onChangeAnnotation();\n this.session.getUseWrapMode() && this.renderer.adjustWrapLimit();\n this.renderer.updateFull();\n }\n else {\n this.selection = null;\n this.renderer.setSession(session);\n }\n this._signal(\"changeSession\", {\n session: session,\n oldSession: oldSession\n });\n this.curOp = null;\n oldSession && oldSession._signal(\"changeEditor\", { oldEditor: this });\n session && session._signal(\"changeEditor\", { editor: this });\n if (session && !session.destroyed)\n session.bgTokenizer.scheduleStart();\n };\n Editor.prototype.getSession = function () {\n return this.session;\n };\n Editor.prototype.setValue = function (val, cursorPos) {\n this.session.doc.setValue(val);\n if (!cursorPos)\n this.selectAll();\n else if (cursorPos == 1)\n this.navigateFileEnd();\n else if (cursorPos == -1)\n this.navigateFileStart();\n return val;\n };\n Editor.prototype.getValue = function () {\n return this.session.getValue();\n };\n Editor.prototype.getSelection = function () {\n return this.selection;\n };\n Editor.prototype.resize = function (force) {\n this.renderer.onResize(force);\n };\n Editor.prototype.setTheme = function (theme, cb) {\n this.renderer.setTheme(theme, cb);\n };\n Editor.prototype.getTheme = function () {\n return this.renderer.getTheme();\n };\n Editor.prototype.setStyle = function (style) {\n this.renderer.setStyle(style);\n };\n Editor.prototype.unsetStyle = function (style) {\n this.renderer.unsetStyle(style);\n };\n Editor.prototype.getFontSize = function () {\n return this.getOption(\"fontSize\") ||\n dom.computedStyle(this.container).fontSize;\n };\n Editor.prototype.setFontSize = function (size) {\n this.setOption(\"fontSize\", size);\n };\n Editor.prototype.$highlightBrackets = function () {\n if (this.$highlightPending) {\n return;\n }\n var self = this;\n this.$highlightPending = true;\n setTimeout(function () {\n self.$highlightPending = false;\n var session = self.session;\n if (!session || session.destroyed)\n return;\n if (session.$bracketHighlight) {\n session.$bracketHighlight.markerIds.forEach(function (id) {\n session.removeMarker(id);\n });\n session.$bracketHighlight = null;\n }\n var pos = self.getCursorPosition();\n var handler = self.getKeyboardHandler();\n var isBackwards = handler && handler.$getDirectionForHighlight && handler.$getDirectionForHighlight(self);\n var ranges = session.getMatchingBracketRanges(pos, isBackwards);\n if (!ranges) {\n var iterator = new TokenIterator(session, pos.row, pos.column);\n var token = iterator.getCurrentToken();\n if (token && /\\b(?:tag-open|tag-name)/.test(token.type)) {\n var tagNamesRanges = session.getMatchingTags(pos);\n if (tagNamesRanges)\n ranges = [tagNamesRanges.openTagName, tagNamesRanges.closeTagName];\n }\n }\n if (!ranges && session.$mode.getMatching)\n ranges = session.$mode.getMatching(self.session);\n if (!ranges) {\n if (self.getHighlightIndentGuides())\n self.renderer.$textLayer.$highlightIndentGuide();\n return;\n }\n var markerType = \"ace_bracket\";\n if (!Array.isArray(ranges)) {\n ranges = [ranges];\n }\n else if (ranges.length == 1) {\n markerType = \"ace_error_bracket\";\n }\n if (ranges.length == 2) {\n if (Range.comparePoints(ranges[0].end, ranges[1].start) == 0)\n ranges = [Range.fromPoints(ranges[0].start, ranges[1].end)];\n else if (Range.comparePoints(ranges[0].start, ranges[1].end) == 0)\n ranges = [Range.fromPoints(ranges[1].start, ranges[0].end)];\n }\n session.$bracketHighlight = {\n ranges: ranges,\n markerIds: ranges.map(function (range) {\n return session.addMarker(range, markerType, \"text\");\n })\n };\n if (self.getHighlightIndentGuides())\n self.renderer.$textLayer.$highlightIndentGuide();\n }, 50);\n };\n Editor.prototype.focus = function () {\n this.textInput.focus();\n };\n Editor.prototype.isFocused = function () {\n return this.textInput.isFocused();\n };\n Editor.prototype.blur = function () {\n this.textInput.blur();\n };\n Editor.prototype.onFocus = function (e) {\n if (this.$isFocused)\n return;\n this.$isFocused = true;\n this.renderer.showCursor();\n this.renderer.visualizeFocus();\n this._emit(\"focus\", e);\n };\n Editor.prototype.onBlur = function (e) {\n if (!this.$isFocused)\n return;\n this.$isFocused = false;\n this.renderer.hideCursor();\n this.renderer.visualizeBlur();\n this._emit(\"blur\", e);\n };\n Editor.prototype.$cursorChange = function () {\n this.renderer.updateCursor();\n this.$highlightBrackets();\n this.$updateHighlightActiveLine();\n };\n Editor.prototype.onDocumentChange = function (delta) {\n var wrap = this.session.$useWrapMode;\n var lastRow = (delta.start.row == delta.end.row ? delta.end.row : Infinity);\n this.renderer.updateLines(delta.start.row, lastRow, wrap);\n this._signal(\"change\", delta);\n this.$cursorChange();\n };\n Editor.prototype.onTokenizerUpdate = function (e) {\n var rows = e.data;\n this.renderer.updateLines(rows.first, rows.last);\n };\n Editor.prototype.onScrollTopChange = function () {\n this.renderer.scrollToY(this.session.getScrollTop());\n };\n Editor.prototype.onScrollLeftChange = function () {\n this.renderer.scrollToX(this.session.getScrollLeft());\n };\n Editor.prototype.onCursorChange = function () {\n this.$cursorChange();\n this._signal(\"changeSelection\");\n };\n Editor.prototype.$updateHighlightActiveLine = function () {\n var session = this.getSession();\n var highlight;\n if (this.$highlightActiveLine) {\n if (this.$selectionStyle != \"line\" || !this.selection.isMultiLine())\n highlight = this.getCursorPosition();\n if (this.renderer.theme && this.renderer.theme.$selectionColorConflict && !this.selection.isEmpty())\n highlight = false;\n if (this.renderer.$maxLines && this.session.getLength() === 1 && !(this.renderer.$minLines > 1))\n highlight = false;\n }\n if (session.$highlightLineMarker && !highlight) {\n session.removeMarker(session.$highlightLineMarker.id);\n session.$highlightLineMarker = null;\n }\n else if (!session.$highlightLineMarker && highlight) {\n var range = new Range(highlight.row, highlight.column, highlight.row, Infinity);\n range.id = session.addMarker(range, \"ace_active-line\", \"screenLine\");\n session.$highlightLineMarker = range;\n }\n else if (highlight) {\n session.$highlightLineMarker.start.row = highlight.row;\n session.$highlightLineMarker.end.row = highlight.row;\n session.$highlightLineMarker.start.column = highlight.column;\n session._signal(\"changeBackMarker\");\n }\n };\n Editor.prototype.onSelectionChange = function (e) {\n var session = this.session;\n if (session.$selectionMarker) {\n session.removeMarker(session.$selectionMarker);\n }\n session.$selectionMarker = null;\n if (!this.selection.isEmpty()) {\n var range = this.selection.getRange();\n var style = this.getSelectionStyle();\n session.$selectionMarker = session.addMarker(range, \"ace_selection\", style);\n }\n else {\n this.$updateHighlightActiveLine();\n }\n var re = this.$highlightSelectedWord && this.$getSelectionHighLightRegexp();\n this.session.highlight(re);\n this._signal(\"changeSelection\");\n };\n Editor.prototype.$getSelectionHighLightRegexp = function () {\n var session = this.session;\n var selection = this.getSelectionRange();\n if (selection.isEmpty() || selection.isMultiLine())\n return;\n var startColumn = selection.start.column;\n var endColumn = selection.end.column;\n var line = session.getLine(selection.start.row);\n var needle = line.substring(startColumn, endColumn);\n if (needle.length > 5000 || !/[\\w\\d]/.test(needle))\n return;\n var re = this.$search.$assembleRegExp({\n wholeWord: true,\n caseSensitive: true,\n needle: needle\n });\n var wordWithBoundary = line.substring(startColumn - 1, endColumn + 1);\n if (!re.test(wordWithBoundary))\n return;\n return re;\n };\n Editor.prototype.onChangeFrontMarker = function () {\n this.renderer.updateFrontMarkers();\n };\n Editor.prototype.onChangeBackMarker = function () {\n this.renderer.updateBackMarkers();\n };\n Editor.prototype.onChangeBreakpoint = function () {\n this.renderer.updateBreakpoints();\n };\n Editor.prototype.onChangeAnnotation = function () {\n this.renderer.setAnnotations(this.session.getAnnotations());\n };\n Editor.prototype.onChangeMode = function (e) {\n this.renderer.updateText();\n this._emit(\"changeMode\", e);\n };\n Editor.prototype.onChangeWrapLimit = function () {\n this.renderer.updateFull();\n };\n Editor.prototype.onChangeWrapMode = function () {\n this.renderer.onResize(true);\n };\n Editor.prototype.onChangeFold = function () {\n this.$updateHighlightActiveLine();\n this.renderer.updateFull();\n };\n Editor.prototype.getSelectedText = function () {\n return this.session.getTextRange(this.getSelectionRange());\n };\n Editor.prototype.getCopyText = function () {\n var text = this.getSelectedText();\n var nl = this.session.doc.getNewLineCharacter();\n var copyLine = false;\n if (!text && this.$copyWithEmptySelection) {\n copyLine = true;\n var ranges = this.selection.getAllRanges();\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n if (i && ranges[i - 1].start.row == range.start.row)\n continue;\n text += this.session.getLine(range.start.row) + nl;\n }\n }\n var e = { text: text };\n this._signal(\"copy\", e);\n clipboard.lineMode = copyLine ? e.text : false;\n return e.text;\n };\n Editor.prototype.onCopy = function () {\n this.commands.exec(\"copy\", this);\n };\n Editor.prototype.onCut = function () {\n this.commands.exec(\"cut\", this);\n };\n Editor.prototype.onPaste = function (text, event) {\n var e = { text: text, event: event };\n this.commands.exec(\"paste\", this, e);\n };\n Editor.prototype.$handlePaste = function (e) {\n if (typeof e == \"string\")\n e = { text: e };\n this._signal(\"paste\", e);\n var text = e.text;\n var lineMode = text === clipboard.lineMode;\n var session = this.session;\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode) {\n if (lineMode)\n session.insert({ row: this.selection.lead.row, column: 0 }, text);\n else\n this.insert(text);\n }\n else if (lineMode) {\n this.selection.rangeList.ranges.forEach(function (range) {\n session.insert({ row: range.start.row, column: 0 }, text);\n });\n }\n else {\n var lines = text.split(/\\r\\n|\\r|\\n/);\n var ranges = this.selection.rangeList.ranges;\n var isFullLine = lines.length == 2 && (!lines[0] || !lines[1]);\n if (lines.length != ranges.length || isFullLine)\n return this.commands.exec(\"insertstring\", this, text);\n for (var i = ranges.length; i--;) {\n var range = ranges[i];\n if (!range.isEmpty())\n session.remove(range);\n session.insert(range.start, lines[i]);\n }\n }\n };\n Editor.prototype.execCommand = function (command, args) {\n return this.commands.exec(command, this, args);\n };\n Editor.prototype.insert = function (text, pasted) {\n var session = this.session;\n var mode = session.getMode();\n var cursor = this.getCursorPosition();\n if (this.getBehavioursEnabled() && !pasted) {\n var transform = mode.transformAction(session.getState(cursor.row), 'insertion', this, session, text);\n if (transform) {\n if (text !== transform.text) {\n if (!this.inVirtualSelectionMode) {\n this.session.mergeUndoDeltas = false;\n this.mergeNextCommand = false;\n }\n }\n text = transform.text;\n }\n }\n if (text == \"\\t\")\n text = this.session.getTabString();\n if (!this.selection.isEmpty()) {\n var range = this.getSelectionRange();\n cursor = this.session.remove(range);\n this.clearSelection();\n }\n else if (this.session.getOverwrite() && text.indexOf(\"\\n\") == -1) {\n var range = new Range.fromPoints(cursor, cursor);\n range.end.column += text.length;\n this.session.remove(range);\n }\n if (text == \"\\n\" || text == \"\\r\\n\") {\n var line = session.getLine(cursor.row);\n if (cursor.column > line.search(/\\S|$/)) {\n var d = line.substr(cursor.column).search(/\\S|$/);\n session.doc.removeInLine(cursor.row, cursor.column, cursor.column + d);\n }\n }\n this.clearSelection();\n var start = cursor.column;\n var lineState = session.getState(cursor.row);\n var line = session.getLine(cursor.row);\n var shouldOutdent = mode.checkOutdent(lineState, line, text);\n session.insert(cursor, text);\n if (transform && transform.selection) {\n if (transform.selection.length == 2) { // Transform relative to the current column\n this.selection.setSelectionRange(new Range(cursor.row, start + transform.selection[0], cursor.row, start + transform.selection[1]));\n }\n else { // Transform relative to the current row.\n this.selection.setSelectionRange(new Range(cursor.row + transform.selection[0], transform.selection[1], cursor.row + transform.selection[2], transform.selection[3]));\n }\n }\n if (this.$enableAutoIndent) {\n if (session.getDocument().isNewLine(text)) {\n var lineIndent = mode.getNextLineIndent(lineState, line.slice(0, cursor.column), session.getTabString());\n session.insert({ row: cursor.row + 1, column: 0 }, lineIndent);\n }\n if (shouldOutdent)\n mode.autoOutdent(lineState, session, cursor.row);\n }\n };\n Editor.prototype.autoIndent = function () {\n var session = this.session;\n var mode = session.getMode();\n var startRow, endRow;\n if (this.selection.isEmpty()) {\n startRow = 0;\n endRow = session.doc.getLength() - 1;\n }\n else {\n var selectedRange = this.getSelectionRange();\n startRow = selectedRange.start.row;\n endRow = selectedRange.end.row;\n }\n var prevLineState = \"\";\n var prevLine = \"\";\n var lineIndent = \"\";\n var line, currIndent, range;\n var tab = session.getTabString();\n for (var row = startRow; row <= endRow; row++) {\n if (row > 0) {\n prevLineState = session.getState(row - 1);\n prevLine = session.getLine(row - 1);\n lineIndent = mode.getNextLineIndent(prevLineState, prevLine, tab);\n }\n line = session.getLine(row);\n currIndent = mode.$getIndent(line);\n if (lineIndent !== currIndent) {\n if (currIndent.length > 0) {\n range = new Range(row, 0, row, currIndent.length);\n session.remove(range);\n }\n if (lineIndent.length > 0) {\n session.insert({ row: row, column: 0 }, lineIndent);\n }\n }\n mode.autoOutdent(prevLineState, session, row);\n }\n };\n Editor.prototype.onTextInput = function (text, composition) {\n if (!composition)\n return this.keyBinding.onTextInput(text);\n this.startOperation({ command: { name: \"insertstring\" } });\n var applyComposition = this.applyComposition.bind(this, text, composition);\n if (this.selection.rangeCount)\n this.forEachSelection(applyComposition);\n else\n applyComposition();\n this.endOperation();\n };\n Editor.prototype.applyComposition = function (text, composition) {\n if (composition.extendLeft || composition.extendRight) {\n var r = this.selection.getRange();\n r.start.column -= composition.extendLeft;\n r.end.column += composition.extendRight;\n if (r.start.column < 0) {\n r.start.row--;\n r.start.column += this.session.getLine(r.start.row).length + 1;\n }\n this.selection.setRange(r);\n if (!text && !r.isEmpty())\n this.remove();\n }\n if (text || !this.selection.isEmpty())\n this.insert(text, true);\n if (composition.restoreStart || composition.restoreEnd) {\n var r = this.selection.getRange();\n r.start.column -= composition.restoreStart;\n r.end.column -= composition.restoreEnd;\n this.selection.setRange(r);\n }\n };\n Editor.prototype.onCommandKey = function (e, hashId, keyCode) {\n return this.keyBinding.onCommandKey(e, hashId, keyCode);\n };\n Editor.prototype.setOverwrite = function (overwrite) {\n this.session.setOverwrite(overwrite);\n };\n Editor.prototype.getOverwrite = function () {\n return this.session.getOverwrite();\n };\n Editor.prototype.toggleOverwrite = function () {\n this.session.toggleOverwrite();\n };\n Editor.prototype.setScrollSpeed = function (speed) {\n this.setOption(\"scrollSpeed\", speed);\n };\n Editor.prototype.getScrollSpeed = function () {\n return this.getOption(\"scrollSpeed\");\n };\n Editor.prototype.setDragDelay = function (dragDelay) {\n this.setOption(\"dragDelay\", dragDelay);\n };\n Editor.prototype.getDragDelay = function () {\n return this.getOption(\"dragDelay\");\n };\n Editor.prototype.setSelectionStyle = function (val) {\n this.setOption(\"selectionStyle\", val);\n };\n Editor.prototype.getSelectionStyle = function () {\n return this.getOption(\"selectionStyle\");\n };\n Editor.prototype.setHighlightActiveLine = function (shouldHighlight) {\n this.setOption(\"highlightActiveLine\", shouldHighlight);\n };\n Editor.prototype.getHighlightActiveLine = function () {\n return this.getOption(\"highlightActiveLine\");\n };\n Editor.prototype.setHighlightGutterLine = function (shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n Editor.prototype.getHighlightGutterLine = function () {\n return this.getOption(\"highlightGutterLine\");\n };\n Editor.prototype.setHighlightSelectedWord = function (shouldHighlight) {\n this.setOption(\"highlightSelectedWord\", shouldHighlight);\n };\n Editor.prototype.getHighlightSelectedWord = function () {\n return this.$highlightSelectedWord;\n };\n Editor.prototype.setAnimatedScroll = function (shouldAnimate) {\n this.renderer.setAnimatedScroll(shouldAnimate);\n };\n Editor.prototype.getAnimatedScroll = function () {\n return this.renderer.getAnimatedScroll();\n };\n Editor.prototype.setShowInvisibles = function (showInvisibles) {\n this.renderer.setShowInvisibles(showInvisibles);\n };\n Editor.prototype.getShowInvisibles = function () {\n return this.renderer.getShowInvisibles();\n };\n Editor.prototype.setDisplayIndentGuides = function (display) {\n this.renderer.setDisplayIndentGuides(display);\n };\n Editor.prototype.getDisplayIndentGuides = function () {\n return this.renderer.getDisplayIndentGuides();\n };\n Editor.prototype.setHighlightIndentGuides = function (highlight) {\n this.renderer.setHighlightIndentGuides(highlight);\n };\n Editor.prototype.getHighlightIndentGuides = function () {\n return this.renderer.getHighlightIndentGuides();\n };\n Editor.prototype.setShowPrintMargin = function (showPrintMargin) {\n this.renderer.setShowPrintMargin(showPrintMargin);\n };\n Editor.prototype.getShowPrintMargin = function () {\n return this.renderer.getShowPrintMargin();\n };\n Editor.prototype.setPrintMarginColumn = function (showPrintMargin) {\n this.renderer.setPrintMarginColumn(showPrintMargin);\n };\n Editor.prototype.getPrintMarginColumn = function () {\n return this.renderer.getPrintMarginColumn();\n };\n Editor.prototype.setReadOnly = function (readOnly) {\n this.setOption(\"readOnly\", readOnly);\n };\n Editor.prototype.getReadOnly = function () {\n return this.getOption(\"readOnly\");\n };\n Editor.prototype.setBehavioursEnabled = function (enabled) {\n this.setOption(\"behavioursEnabled\", enabled);\n };\n Editor.prototype.getBehavioursEnabled = function () {\n return this.getOption(\"behavioursEnabled\");\n };\n Editor.prototype.setWrapBehavioursEnabled = function (enabled) {\n this.setOption(\"wrapBehavioursEnabled\", enabled);\n };\n Editor.prototype.getWrapBehavioursEnabled = function () {\n return this.getOption(\"wrapBehavioursEnabled\");\n };\n Editor.prototype.setShowFoldWidgets = function (show) {\n this.setOption(\"showFoldWidgets\", show);\n };\n Editor.prototype.getShowFoldWidgets = function () {\n return this.getOption(\"showFoldWidgets\");\n };\n Editor.prototype.setFadeFoldWidgets = function (fade) {\n this.setOption(\"fadeFoldWidgets\", fade);\n };\n Editor.prototype.getFadeFoldWidgets = function () {\n return this.getOption(\"fadeFoldWidgets\");\n };\n Editor.prototype.remove = function (dir) {\n if (this.selection.isEmpty()) {\n if (dir == \"left\")\n this.selection.selectLeft();\n else\n this.selection.selectRight();\n }\n var range = this.getSelectionRange();\n if (this.getBehavioursEnabled()) {\n var session = this.session;\n var state = session.getState(range.start.row);\n var new_range = session.getMode().transformAction(state, 'deletion', this, session, range);\n if (range.end.column === 0) {\n var text = session.getTextRange(range);\n if (text[text.length - 1] == \"\\n\") {\n var line = session.getLine(range.end.row);\n if (/^\\s+$/.test(line)) {\n range.end.column = line.length;\n }\n }\n }\n if (new_range)\n range = new_range;\n }\n this.session.remove(range);\n this.clearSelection();\n };\n Editor.prototype.removeWordRight = function () {\n if (this.selection.isEmpty())\n this.selection.selectWordRight();\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n Editor.prototype.removeWordLeft = function () {\n if (this.selection.isEmpty())\n this.selection.selectWordLeft();\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n Editor.prototype.removeToLineStart = function () {\n if (this.selection.isEmpty())\n this.selection.selectLineStart();\n if (this.selection.isEmpty())\n this.selection.selectLeft();\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n Editor.prototype.removeToLineEnd = function () {\n if (this.selection.isEmpty())\n this.selection.selectLineEnd();\n var range = this.getSelectionRange();\n if (range.start.column == range.end.column && range.start.row == range.end.row) {\n range.end.column = 0;\n range.end.row++;\n }\n this.session.remove(range);\n this.clearSelection();\n };\n Editor.prototype.splitLine = function () {\n if (!this.selection.isEmpty()) {\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n }\n var cursor = this.getCursorPosition();\n this.insert(\"\\n\");\n this.moveCursorToPosition(cursor);\n };\n Editor.prototype.setGhostText = function (text, position) {\n if (!this.session.widgetManager) {\n this.session.widgetManager = new LineWidgets(this.session);\n this.session.widgetManager.attach(this);\n }\n this.renderer.setGhostText(text, position);\n };\n Editor.prototype.removeGhostText = function () {\n if (!this.session.widgetManager)\n return;\n this.renderer.removeGhostText();\n };\n Editor.prototype.transposeLetters = function () {\n if (!this.selection.isEmpty()) {\n return;\n }\n var cursor = this.getCursorPosition();\n var column = cursor.column;\n if (column === 0)\n return;\n var line = this.session.getLine(cursor.row);\n var swap, range;\n if (column < line.length) {\n swap = line.charAt(column) + line.charAt(column - 1);\n range = new Range(cursor.row, column - 1, cursor.row, column + 1);\n }\n else {\n swap = line.charAt(column - 1) + line.charAt(column - 2);\n range = new Range(cursor.row, column - 2, cursor.row, column);\n }\n this.session.replace(range, swap);\n this.session.selection.moveToPosition(range.end);\n };\n Editor.prototype.toLowerCase = function () {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toLowerCase());\n this.selection.setSelectionRange(originalRange);\n };\n Editor.prototype.toUpperCase = function () {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toUpperCase());\n this.selection.setSelectionRange(originalRange);\n };\n Editor.prototype.indent = function () {\n var session = this.session;\n var range = this.getSelectionRange();\n if (range.start.row < range.end.row) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n }\n else if (range.start.column < range.end.column) {\n var text = session.getTextRange(range);\n if (!/^\\s+$/.test(text)) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n }\n }\n var line = session.getLine(range.start.row);\n var position = range.start;\n var size = session.getTabSize();\n var column = session.documentToScreenColumn(position.row, position.column);\n if (this.session.getUseSoftTabs()) {\n var count = (size - column % size);\n var indentString = lang.stringRepeat(\" \", count);\n }\n else {\n var count = column % size;\n while (line[range.start.column - 1] == \" \" && count) {\n range.start.column--;\n count--;\n }\n this.selection.setSelectionRange(range);\n indentString = \"\\t\";\n }\n return this.insert(indentString);\n };\n Editor.prototype.blockIndent = function () {\n var rows = this.$getSelectedRows();\n this.session.indentRows(rows.first, rows.last, \"\\t\");\n };\n Editor.prototype.blockOutdent = function () {\n var selection = this.session.getSelection();\n this.session.outdentRows(selection.getRange());\n };\n Editor.prototype.sortLines = function () {\n var rows = this.$getSelectedRows();\n var session = this.session;\n var lines = [];\n for (var i = rows.first; i <= rows.last; i++)\n lines.push(session.getLine(i));\n lines.sort(function (a, b) {\n if (a.toLowerCase() < b.toLowerCase())\n return -1;\n if (a.toLowerCase() > b.toLowerCase())\n return 1;\n return 0;\n });\n var deleteRange = new Range(0, 0, 0, 0);\n for (var i = rows.first; i <= rows.last; i++) {\n var line = session.getLine(i);\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n deleteRange.end.column = line.length;\n session.replace(deleteRange, lines[i - rows.first]);\n }\n };\n Editor.prototype.toggleCommentLines = function () {\n var state = this.session.getState(this.getCursorPosition().row);\n var rows = this.$getSelectedRows();\n this.session.getMode().toggleCommentLines(state, this.session, rows.first, rows.last);\n };\n Editor.prototype.toggleBlockComment = function () {\n var cursor = this.getCursorPosition();\n var state = this.session.getState(cursor.row);\n var range = this.getSelectionRange();\n this.session.getMode().toggleBlockComment(state, this.session, range, cursor);\n };\n Editor.prototype.getNumberAt = function (row, column) {\n var _numberRx = /[\\-]?[0-9]+(?:\\.[0-9]+)?/g;\n _numberRx.lastIndex = 0;\n var s = this.session.getLine(row);\n while (_numberRx.lastIndex < column) {\n var m = _numberRx.exec(s);\n if (m.index <= column && m.index + m[0].length >= column) {\n var number = {\n value: m[0],\n start: m.index,\n end: m.index + m[0].length\n };\n return number;\n }\n }\n return null;\n };\n Editor.prototype.modifyNumber = function (amount) {\n var row = this.selection.getCursor().row;\n var column = this.selection.getCursor().column;\n var charRange = new Range(row, column - 1, row, column);\n var c = this.session.getTextRange(charRange);\n if (!isNaN(parseFloat(c)) && isFinite(c)) {\n var nr = this.getNumberAt(row, column);\n if (nr) {\n var fp = nr.value.indexOf(\".\") >= 0 ? nr.start + nr.value.indexOf(\".\") + 1 : nr.end;\n var decimals = nr.start + nr.value.length - fp;\n var t = parseFloat(nr.value);\n t *= Math.pow(10, decimals);\n if (fp !== nr.end && column < fp) {\n amount *= Math.pow(10, nr.end - column - 1);\n }\n else {\n amount *= Math.pow(10, nr.end - column);\n }\n t += amount;\n t /= Math.pow(10, decimals);\n var nnr = t.toFixed(decimals);\n var replaceRange = new Range(row, nr.start, row, nr.end);\n this.session.replace(replaceRange, nnr);\n this.moveCursorTo(row, Math.max(nr.start + 1, column + nnr.length - nr.value.length));\n }\n }\n else {\n this.toggleWord();\n }\n };\n Editor.prototype.toggleWord = function () {\n var row = this.selection.getCursor().row;\n var column = this.selection.getCursor().column;\n this.selection.selectWord();\n var currentState = this.getSelectedText();\n var currWordStart = this.selection.getWordRange().start.column;\n var wordParts = currentState.replace(/([a-z]+|[A-Z]+)(?=[A-Z_]|$)/g, '$1 ').split(/\\s/);\n var delta = column - currWordStart - 1;\n if (delta < 0)\n delta = 0;\n var curLength = 0, itLength = 0;\n var that = this;\n if (currentState.match(/[A-Za-z0-9_]+/)) {\n wordParts.forEach(function (item, i) {\n itLength = curLength + item.length;\n if (delta >= curLength && delta <= itLength) {\n currentState = item;\n that.selection.clearSelection();\n that.moveCursorTo(row, curLength + currWordStart);\n that.selection.selectTo(row, itLength + currWordStart);\n }\n curLength = itLength;\n });\n }\n var wordPairs = this.$toggleWordPairs;\n var reg;\n for (var i = 0; i < wordPairs.length; i++) {\n var item = wordPairs[i];\n for (var j = 0; j <= 1; j++) {\n var negate = +!j;\n var firstCondition = currentState.match(new RegExp('^\\\\s?_?(' + lang.escapeRegExp(item[j]) + ')\\\\s?$', 'i'));\n if (firstCondition) {\n var secondCondition = currentState.match(new RegExp('([_]|^|\\\\s)(' + lang.escapeRegExp(firstCondition[1]) + ')($|\\\\s)', 'g'));\n if (secondCondition) {\n reg = currentState.replace(new RegExp(lang.escapeRegExp(item[j]), 'i'), function (result) {\n var res = item[negate];\n if (result.toUpperCase() == result) {\n res = res.toUpperCase();\n }\n else if (result.charAt(0).toUpperCase() == result.charAt(0)) {\n res = res.substr(0, 0) + item[negate].charAt(0).toUpperCase() + res.substr(1);\n }\n return res;\n });\n this.insert(reg);\n reg = \"\";\n }\n }\n }\n }\n };\n Editor.prototype.findLinkAt = function (row, column) {\n var e_1, _a;\n var line = this.session.getLine(row);\n var wordParts = line.split(/((?:https?|ftp):\\/\\/[\\S]+)/);\n var columnPosition = column;\n if (columnPosition < 0)\n columnPosition = 0;\n var previousPosition = 0, currentPosition = 0, match;\n try {\n for (var wordParts_1 = __values(wordParts), wordParts_1_1 = wordParts_1.next(); !wordParts_1_1.done; wordParts_1_1 = wordParts_1.next()) {\n var item = wordParts_1_1.value;\n currentPosition = previousPosition + item.length;\n if (columnPosition >= previousPosition && columnPosition <= currentPosition) {\n if (item.match(/((?:https?|ftp):\\/\\/[\\S]+)/)) {\n match = item.replace(/[\\s:.,'\";}\\]]+$/, \"\");\n break;\n }\n }\n previousPosition = currentPosition;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (wordParts_1_1 && !wordParts_1_1.done && (_a = wordParts_1.return)) _a.call(wordParts_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return match;\n };\n Editor.prototype.openLink = function () {\n var cursor = this.selection.getCursor();\n var url = this.findLinkAt(cursor.row, cursor.column);\n if (url)\n window.open(url, '_blank');\n return url != null;\n };\n Editor.prototype.removeLines = function () {\n var rows = this.$getSelectedRows();\n this.session.removeFullLines(rows.first, rows.last);\n this.clearSelection();\n };\n Editor.prototype.duplicateSelection = function () {\n var sel = this.selection;\n var doc = this.session;\n var range = sel.getRange();\n var reverse = sel.isBackwards();\n if (range.isEmpty()) {\n var row = range.start.row;\n doc.duplicateLines(row, row);\n }\n else {\n var point = reverse ? range.start : range.end;\n var endPoint = doc.insert(point, doc.getTextRange(range), false);\n range.start = point;\n range.end = endPoint;\n sel.setSelectionRange(range, reverse);\n }\n };\n Editor.prototype.moveLinesDown = function () {\n this.$moveLines(1, false);\n };\n Editor.prototype.moveLinesUp = function () {\n this.$moveLines(-1, false);\n };\n Editor.prototype.moveText = function (range, toPosition, copy) {\n return this.session.moveText(range, toPosition, copy);\n };\n Editor.prototype.copyLinesUp = function () {\n this.$moveLines(-1, true);\n };\n Editor.prototype.copyLinesDown = function () {\n this.$moveLines(1, true);\n };\n Editor.prototype.$moveLines = function (dir, copy) {\n var rows, moved;\n var selection = this.selection;\n if (!selection.inMultiSelectMode || this.inVirtualSelectionMode) {\n var range = selection.toOrientedRange();\n rows = this.$getSelectedRows(range);\n moved = this.session.$moveLines(rows.first, rows.last, copy ? 0 : dir);\n if (copy && dir == -1)\n moved = 0;\n range.moveBy(moved, 0);\n selection.fromOrientedRange(range);\n }\n else {\n var ranges = selection.rangeList.ranges;\n selection.rangeList.detach(this.session);\n this.inVirtualSelectionMode = true;\n var diff = 0;\n var totalDiff = 0;\n var l = ranges.length;\n for (var i = 0; i < l; i++) {\n var rangeIndex = i;\n ranges[i].moveBy(diff, 0);\n rows = this.$getSelectedRows(ranges[i]);\n var first = rows.first;\n var last = rows.last;\n while (++i < l) {\n if (totalDiff)\n ranges[i].moveBy(totalDiff, 0);\n var subRows = this.$getSelectedRows(ranges[i]);\n if (copy && subRows.first != last)\n break;\n else if (!copy && subRows.first > last + 1)\n break;\n last = subRows.last;\n }\n i--;\n diff = this.session.$moveLines(first, last, copy ? 0 : dir);\n if (copy && dir == -1)\n rangeIndex = i + 1;\n while (rangeIndex <= i) {\n ranges[rangeIndex].moveBy(diff, 0);\n rangeIndex++;\n }\n if (!copy)\n diff = 0;\n totalDiff += diff;\n }\n selection.fromOrientedRange(selection.ranges[0]);\n selection.rangeList.attach(this.session);\n this.inVirtualSelectionMode = false;\n }\n };\n Editor.prototype.$getSelectedRows = function (range) {\n range = (range || this.getSelectionRange()).collapseRows();\n return {\n first: this.session.getRowFoldStart(range.start.row),\n last: this.session.getRowFoldEnd(range.end.row)\n };\n };\n Editor.prototype.onCompositionStart = function (compositionState) {\n this.renderer.showComposition(compositionState);\n };\n Editor.prototype.onCompositionUpdate = function (text) {\n this.renderer.setCompositionText(text);\n };\n Editor.prototype.onCompositionEnd = function () {\n this.renderer.hideComposition();\n };\n Editor.prototype.getFirstVisibleRow = function () {\n return this.renderer.getFirstVisibleRow();\n };\n Editor.prototype.getLastVisibleRow = function () {\n return this.renderer.getLastVisibleRow();\n };\n Editor.prototype.isRowVisible = function (row) {\n return (row >= this.getFirstVisibleRow() && row <= this.getLastVisibleRow());\n };\n Editor.prototype.isRowFullyVisible = function (row) {\n return (row >= this.renderer.getFirstFullyVisibleRow() && row <= this.renderer.getLastFullyVisibleRow());\n };\n Editor.prototype.$getVisibleRowCount = function () {\n return this.renderer.getScrollBottomRow() - this.renderer.getScrollTopRow() + 1;\n };\n Editor.prototype.$moveByPage = function (dir, select) {\n var renderer = this.renderer;\n var config = this.renderer.layerConfig;\n var rows = dir * Math.floor(config.height / config.lineHeight);\n if (select === true) {\n this.selection.$moveSelection(function () {\n this.moveCursorBy(rows, 0);\n });\n }\n else if (select === false) {\n this.selection.moveCursorBy(rows, 0);\n this.selection.clearSelection();\n }\n var scrollTop = renderer.scrollTop;\n renderer.scrollBy(0, rows * config.lineHeight);\n if (select != null)\n renderer.scrollCursorIntoView(null, 0.5);\n renderer.animateScrolling(scrollTop);\n };\n Editor.prototype.selectPageDown = function () {\n this.$moveByPage(1, true);\n };\n Editor.prototype.selectPageUp = function () {\n this.$moveByPage(-1, true);\n };\n Editor.prototype.gotoPageDown = function () {\n this.$moveByPage(1, false);\n };\n Editor.prototype.gotoPageUp = function () {\n this.$moveByPage(-1, false);\n };\n Editor.prototype.scrollPageDown = function () {\n this.$moveByPage(1);\n };\n Editor.prototype.scrollPageUp = function () {\n this.$moveByPage(-1);\n };\n Editor.prototype.scrollToRow = function (row) {\n this.renderer.scrollToRow(row);\n };\n Editor.prototype.scrollToLine = function (line, center, animate, callback) {\n this.renderer.scrollToLine(line, center, animate, callback);\n };\n Editor.prototype.centerSelection = function () {\n var range = this.getSelectionRange();\n var pos = {\n row: Math.floor(range.start.row + (range.end.row - range.start.row) / 2),\n column: Math.floor(range.start.column + (range.end.column - range.start.column) / 2)\n };\n this.renderer.alignCursor(pos, 0.5);\n };\n Editor.prototype.getCursorPosition = function () {\n return this.selection.getCursor();\n };\n Editor.prototype.getCursorPositionScreen = function () {\n return this.session.documentToScreenPosition(this.getCursorPosition());\n };\n Editor.prototype.getSelectionRange = function () {\n return this.selection.getRange();\n };\n Editor.prototype.selectAll = function () {\n this.selection.selectAll();\n };\n Editor.prototype.clearSelection = function () {\n this.selection.clearSelection();\n };\n Editor.prototype.moveCursorTo = function (row, column) {\n this.selection.moveCursorTo(row, column);\n };\n Editor.prototype.moveCursorToPosition = function (pos) {\n this.selection.moveCursorToPosition(pos);\n };\n Editor.prototype.jumpToMatching = function (select, expand) {\n var cursor = this.getCursorPosition();\n var iterator = new TokenIterator(this.session, cursor.row, cursor.column);\n var prevToken = iterator.getCurrentToken();\n var tokenCount = 0;\n if (prevToken && prevToken.type.indexOf('tag-name') !== -1) {\n prevToken = iterator.stepBackward();\n }\n var token = prevToken || iterator.stepForward();\n if (!token)\n return;\n var matchType;\n var found = false;\n var depth = {};\n var i = cursor.column - token.start;\n var bracketType;\n var brackets = {\n \")\": \"(\",\n \"(\": \"(\",\n \"]\": \"[\",\n \"[\": \"[\",\n \"{\": \"{\",\n \"}\": \"{\"\n };\n do {\n if (token.value.match(/[{}()\\[\\]]/g)) {\n for (; i < token.value.length && !found; i++) {\n if (!brackets[token.value[i]]) {\n continue;\n }\n bracketType = brackets[token.value[i]] + '.' + token.type.replace(\"rparen\", \"lparen\");\n if (isNaN(depth[bracketType])) {\n depth[bracketType] = 0;\n }\n switch (token.value[i]) {\n case '(':\n case '[':\n case '{':\n depth[bracketType]++;\n break;\n case ')':\n case ']':\n case '}':\n depth[bracketType]--;\n if (depth[bracketType] === -1) {\n matchType = 'bracket';\n found = true;\n }\n break;\n }\n }\n }\n else if (token.type.indexOf('tag-name') !== -1) {\n if (isNaN(depth[token.value])) {\n depth[token.value] = 0;\n }\n if (prevToken.value === '<' && tokenCount > 1) {\n depth[token.value]++;\n }\n else if (prevToken.value === '= 0; --i) {\n if (this.$tryReplace(ranges[i], replacement)) {\n replaced++;\n }\n }\n this.selection.setSelectionRange(selection);\n return replaced;\n };\n Editor.prototype.$tryReplace = function (range, replacement) {\n var input = this.session.getTextRange(range);\n replacement = this.$search.replace(input, replacement);\n if (replacement !== null) {\n range.end = this.session.replace(range, replacement);\n return range;\n }\n else {\n return null;\n }\n };\n Editor.prototype.getLastSearchOptions = function () {\n return this.$search.getOptions();\n };\n Editor.prototype.find = function (needle, options, animate) {\n if (!options)\n options = {};\n if (typeof needle == \"string\" || needle instanceof RegExp)\n options.needle = needle;\n else if (typeof needle == \"object\")\n oop.mixin(options, needle);\n var range = this.selection.getRange();\n if (options.needle == null) {\n needle = this.session.getTextRange(range)\n || this.$search.$options.needle;\n if (!needle) {\n range = this.session.getWordRange(range.start.row, range.start.column);\n needle = this.session.getTextRange(range);\n }\n this.$search.set({ needle: needle });\n }\n this.$search.set(options);\n if (!options.start)\n this.$search.set({ start: range });\n var newRange = this.$search.find(this.session);\n if (options.preventScroll)\n return newRange;\n if (newRange) {\n this.revealRange(newRange, animate);\n return newRange;\n }\n if (options.backwards)\n range.start = range.end;\n else\n range.end = range.start;\n this.selection.setRange(range);\n };\n Editor.prototype.findNext = function (options, animate) {\n this.find({ skipCurrent: true, backwards: false }, options, animate);\n };\n Editor.prototype.findPrevious = function (options, animate) {\n this.find(options, { skipCurrent: true, backwards: true }, animate);\n };\n Editor.prototype.revealRange = function (range, animate) {\n this.session.unfold(range);\n this.selection.setSelectionRange(range);\n var scrollTop = this.renderer.scrollTop;\n this.renderer.scrollSelectionIntoView(range.start, range.end, 0.5);\n if (animate !== false)\n this.renderer.animateScrolling(scrollTop);\n };\n Editor.prototype.undo = function () {\n this.session.getUndoManager().undo(this.session);\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n Editor.prototype.redo = function () {\n this.session.getUndoManager().redo(this.session);\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n Editor.prototype.destroy = function () {\n if (this.$toDestroy) {\n this.$toDestroy.forEach(function (el) {\n el.destroy();\n });\n this.$toDestroy = null;\n }\n if (this.$mouseHandler)\n this.$mouseHandler.destroy();\n this.renderer.destroy();\n this._signal(\"destroy\", this);\n if (this.session)\n this.session.destroy();\n if (this._$emitInputEvent)\n this._$emitInputEvent.cancel();\n this.removeAllListeners();\n };\n Editor.prototype.setAutoScrollEditorIntoView = function (enable) {\n if (!enable)\n return;\n var rect;\n var self = this;\n var shouldScroll = false;\n if (!this.$scrollAnchor)\n this.$scrollAnchor = document.createElement(\"div\");\n var scrollAnchor = this.$scrollAnchor;\n scrollAnchor.style.cssText = \"position:absolute\";\n this.container.insertBefore(scrollAnchor, this.container.firstChild);\n var onChangeSelection = this.on(\"changeSelection\", function () {\n shouldScroll = true;\n });\n var onBeforeRender = this.renderer.on(\"beforeRender\", function () {\n if (shouldScroll)\n rect = self.renderer.container.getBoundingClientRect();\n });\n var onAfterRender = this.renderer.on(\"afterRender\", function () {\n if (shouldScroll && rect && (self.isFocused()\n || self.searchBox && self.searchBox.isFocused())) {\n var renderer = self.renderer;\n var pos = renderer.$cursorLayer.$pixelPos;\n var config = renderer.layerConfig;\n var top = pos.top - config.offset;\n if (pos.top >= 0 && top + rect.top < 0) {\n shouldScroll = true;\n }\n else if (pos.top < config.height &&\n pos.top + rect.top + config.lineHeight > window.innerHeight) {\n shouldScroll = false;\n }\n else {\n shouldScroll = null;\n }\n if (shouldScroll != null) {\n scrollAnchor.style.top = top + \"px\";\n scrollAnchor.style.left = pos.left + \"px\";\n scrollAnchor.style.height = config.lineHeight + \"px\";\n scrollAnchor.scrollIntoView(shouldScroll);\n }\n shouldScroll = rect = null;\n }\n });\n this.setAutoScrollEditorIntoView = function (enable) {\n if (enable)\n return;\n delete this.setAutoScrollEditorIntoView;\n this.off(\"changeSelection\", onChangeSelection);\n this.renderer.off(\"afterRender\", onAfterRender);\n this.renderer.off(\"beforeRender\", onBeforeRender);\n };\n };\n Editor.prototype.$resetCursorStyle = function () {\n var style = this.$cursorStyle || \"ace\";\n var cursorLayer = this.renderer.$cursorLayer;\n if (!cursorLayer)\n return;\n cursorLayer.setSmoothBlinking(/smooth/.test(style));\n cursorLayer.isBlinking = !this.$readOnly && style != \"wide\";\n dom.setCssClass(cursorLayer.element, \"ace_slim-cursors\", /slim/.test(style));\n };\n Editor.prototype.prompt = function (message, options, callback) {\n var editor = this;\n config.loadModule(\"ace/ext/prompt\", function (module) {\n module.prompt(editor, message, options, callback);\n });\n };\n return Editor;\n}());\nEditor.$uid = 0;\nEditor.prototype.curOp = null;\nEditor.prototype.prevOp = {};\nEditor.prototype.$mergeableCommands = [\"backspace\", \"del\", \"insertstring\"];\nEditor.prototype.$toggleWordPairs = [\n [\"first\", \"last\"],\n [\"true\", \"false\"],\n [\"yes\", \"no\"],\n [\"width\", \"height\"],\n [\"top\", \"bottom\"],\n [\"right\", \"left\"],\n [\"on\", \"off\"],\n [\"x\", \"y\"],\n [\"get\", \"set\"],\n [\"max\", \"min\"],\n [\"horizontal\", \"vertical\"],\n [\"show\", \"hide\"],\n [\"add\", \"remove\"],\n [\"up\", \"down\"],\n [\"before\", \"after\"],\n [\"even\", \"odd\"],\n [\"in\", \"out\"],\n [\"inside\", \"outside\"],\n [\"next\", \"previous\"],\n [\"increase\", \"decrease\"],\n [\"attach\", \"detach\"],\n [\"&&\", \"||\"],\n [\"==\", \"!=\"]\n];\noop.implement(Editor.prototype, EventEmitter);\nconfig.defineOptions(Editor.prototype, \"editor\", {\n selectionStyle: {\n set: function (style) {\n this.onSelectionChange();\n this._signal(\"changeSelectionStyle\", { data: style });\n },\n initialValue: \"line\"\n },\n highlightActiveLine: {\n set: function () { this.$updateHighlightActiveLine(); },\n initialValue: true\n },\n highlightSelectedWord: {\n set: function (shouldHighlight) { this.$onSelectionChange(); },\n initialValue: true\n },\n readOnly: {\n set: function (readOnly) {\n this.textInput.setReadOnly(readOnly);\n this.$resetCursorStyle();\n },\n initialValue: false\n },\n copyWithEmptySelection: {\n set: function (value) {\n this.textInput.setCopyWithEmptySelection(value);\n },\n initialValue: false\n },\n cursorStyle: {\n set: function (val) { this.$resetCursorStyle(); },\n values: [\"ace\", \"slim\", \"smooth\", \"wide\"],\n initialValue: \"ace\"\n },\n mergeUndoDeltas: {\n values: [false, true, \"always\"],\n initialValue: true\n },\n behavioursEnabled: { initialValue: true },\n wrapBehavioursEnabled: { initialValue: true },\n enableAutoIndent: { initialValue: true },\n autoScrollEditorIntoView: {\n set: function (val) { this.setAutoScrollEditorIntoView(val); }\n },\n keyboardHandler: {\n set: function (val) { this.setKeyboardHandler(val); },\n get: function () { return this.$keybindingId; },\n handlesSet: true\n },\n value: {\n set: function (val) { this.session.setValue(val); },\n get: function () { return this.getValue(); },\n handlesSet: true,\n hidden: true\n },\n session: {\n set: function (val) { this.setSession(val); },\n get: function () { return this.session; },\n handlesSet: true,\n hidden: true\n },\n showLineNumbers: {\n set: function (show) {\n this.renderer.$gutterLayer.setShowLineNumbers(show);\n this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER);\n if (show && this.$relativeLineNumbers)\n relativeNumberRenderer.attach(this);\n else\n relativeNumberRenderer.detach(this);\n },\n initialValue: true\n },\n relativeLineNumbers: {\n set: function (value) {\n if (this.$showLineNumbers && value)\n relativeNumberRenderer.attach(this);\n else\n relativeNumberRenderer.detach(this);\n }\n },\n placeholder: {\n set: function (message) {\n if (!this.$updatePlaceholder) {\n this.$updatePlaceholder = function () {\n var hasValue = this.session && (this.renderer.$composition ||\n this.session.getLength() > 1 || this.session.getLine(0).length > 0);\n if (hasValue && this.renderer.placeholderNode) {\n this.renderer.off(\"afterRender\", this.$updatePlaceholder);\n dom.removeCssClass(this.container, \"ace_hasPlaceholder\");\n this.renderer.placeholderNode.remove();\n this.renderer.placeholderNode = null;\n }\n else if (!hasValue && !this.renderer.placeholderNode) {\n this.renderer.on(\"afterRender\", this.$updatePlaceholder);\n dom.addCssClass(this.container, \"ace_hasPlaceholder\");\n var el = dom.createElement(\"div\");\n el.className = \"ace_placeholder\";\n el.textContent = this.$placeholder || \"\";\n this.renderer.placeholderNode = el;\n this.renderer.content.appendChild(this.renderer.placeholderNode);\n }\n else if (!hasValue && this.renderer.placeholderNode) {\n this.renderer.placeholderNode.textContent = this.$placeholder || \"\";\n }\n }.bind(this);\n this.on(\"input\", this.$updatePlaceholder);\n }\n this.$updatePlaceholder();\n }\n },\n enableKeyboardAccessibility: {\n set: function (value) {\n var blurCommand = {\n name: \"blurTextInput\",\n description: \"Set focus to the editor content div to allow tabbing through the page\",\n bindKey: \"Esc\",\n exec: function (editor) {\n editor.blur();\n editor.renderer.scroller.focus();\n },\n readOnly: true\n };\n var focusOnEnterKeyup = function (e) {\n if (e.target == this.renderer.scroller && e.keyCode === keys['enter']) {\n e.preventDefault();\n var row = this.getCursorPosition().row;\n if (!this.isRowVisible(row))\n this.scrollToLine(row, true, true);\n this.focus();\n }\n };\n var gutterKeyboardHandler;\n if (value) {\n this.renderer.enableKeyboardAccessibility = true;\n this.renderer.keyboardFocusClassName = \"ace_keyboard-focus\";\n this.textInput.getElement().setAttribute(\"tabindex\", -1);\n this.textInput.setNumberOfExtraLines(useragent.isWin ? 3 : 0);\n this.renderer.scroller.setAttribute(\"tabindex\", 0);\n this.renderer.scroller.setAttribute(\"role\", \"group\");\n this.renderer.scroller.setAttribute(\"aria-roledescription\", nls(\"editor\"));\n this.renderer.scroller.classList.add(this.renderer.keyboardFocusClassName);\n this.renderer.scroller.setAttribute(\"aria-label\", nls(\"Editor content, press Enter to start editing, press Escape to exit\"));\n this.renderer.scroller.addEventListener(\"keyup\", focusOnEnterKeyup.bind(this));\n this.commands.addCommand(blurCommand);\n this.renderer.$gutter.setAttribute(\"tabindex\", 0);\n this.renderer.$gutter.setAttribute(\"aria-hidden\", false);\n this.renderer.$gutter.setAttribute(\"role\", \"group\");\n this.renderer.$gutter.setAttribute(\"aria-roledescription\", nls(\"editor\"));\n this.renderer.$gutter.setAttribute(\"aria-label\", nls(\"Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit\"));\n this.renderer.$gutter.classList.add(this.renderer.keyboardFocusClassName);\n this.renderer.content.setAttribute(\"aria-hidden\", true);\n if (!gutterKeyboardHandler)\n gutterKeyboardHandler = new GutterKeyboardHandler(this);\n gutterKeyboardHandler.addListener();\n }\n else {\n this.renderer.enableKeyboardAccessibility = false;\n this.textInput.getElement().setAttribute(\"tabindex\", 0);\n this.textInput.setNumberOfExtraLines(0);\n this.renderer.scroller.setAttribute(\"tabindex\", -1);\n this.renderer.scroller.removeAttribute(\"role\");\n this.renderer.scroller.removeAttribute(\"aria-roledescription\");\n this.renderer.scroller.classList.remove(this.renderer.keyboardFocusClassName);\n this.renderer.scroller.removeAttribute(\"aria-label\");\n this.renderer.scroller.removeEventListener(\"keyup\", focusOnEnterKeyup.bind(this));\n this.commands.removeCommand(blurCommand);\n this.renderer.content.removeAttribute(\"aria-hidden\");\n this.renderer.$gutter.setAttribute(\"tabindex\", -1);\n this.renderer.$gutter.setAttribute(\"aria-hidden\", true);\n this.renderer.$gutter.removeAttribute(\"role\");\n this.renderer.$gutter.removeAttribute(\"aria-roledescription\");\n this.renderer.$gutter.removeAttribute(\"aria-label\");\n this.renderer.$gutter.classList.remove(this.renderer.keyboardFocusClassName);\n if (gutterKeyboardHandler)\n gutterKeyboardHandler.removeListener();\n }\n },\n initialValue: false\n },\n customScrollbar: \"renderer\",\n hScrollBarAlwaysVisible: \"renderer\",\n vScrollBarAlwaysVisible: \"renderer\",\n highlightGutterLine: \"renderer\",\n animatedScroll: \"renderer\",\n showInvisibles: \"renderer\",\n showPrintMargin: \"renderer\",\n printMarginColumn: \"renderer\",\n printMargin: \"renderer\",\n fadeFoldWidgets: \"renderer\",\n showFoldWidgets: \"renderer\",\n displayIndentGuides: \"renderer\",\n highlightIndentGuides: \"renderer\",\n showGutter: \"renderer\",\n fontSize: \"renderer\",\n fontFamily: \"renderer\",\n maxLines: \"renderer\",\n minLines: \"renderer\",\n scrollPastEnd: \"renderer\",\n fixedWidthGutter: \"renderer\",\n theme: \"renderer\",\n hasCssTransforms: \"renderer\",\n maxPixelHeight: \"renderer\",\n useTextareaForIME: \"renderer\",\n useResizeObserver: \"renderer\",\n useSvgGutterIcons: \"renderer\",\n showFoldedAnnotations: \"renderer\",\n scrollSpeed: \"$mouseHandler\",\n dragDelay: \"$mouseHandler\",\n dragEnabled: \"$mouseHandler\",\n focusTimeout: \"$mouseHandler\",\n tooltipFollowsMouse: \"$mouseHandler\",\n firstLineNumber: \"session\",\n overwrite: \"session\",\n newLineMode: \"session\",\n useWorker: \"session\",\n useSoftTabs: \"session\",\n navigateWithinSoftTabs: \"session\",\n tabSize: \"session\",\n wrap: \"session\",\n indentedSoftWrap: \"session\",\n foldStyle: \"session\",\n mode: \"session\"\n});\nvar relativeNumberRenderer = {\n getText: function (session, row) {\n return (Math.abs(session.selection.lead.row - row) || (row + 1 + (row < 9 ? \"\\xb7\" : \"\"))) + \"\";\n },\n getWidth: function (session, lastLineNumber, config) {\n return Math.max(lastLineNumber.toString().length, (config.lastRow + 1).toString().length, 2) * config.characterWidth;\n },\n update: function (e, editor) {\n editor.renderer.$loop.schedule(editor.renderer.CHANGE_GUTTER);\n },\n attach: function (editor) {\n editor.renderer.$gutterLayer.$renderer = this;\n editor.on(\"changeSelection\", this.update);\n this.update(null, editor);\n },\n detach: function (editor) {\n if (editor.renderer.$gutterLayer.$renderer == this)\n editor.renderer.$gutterLayer.$renderer = null;\n editor.off(\"changeSelection\", this.update);\n this.update(null, editor);\n }\n};\nexports.Editor = Editor;\n\n});\n\nace.define(\"ace/layer/lines\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar Lines = /** @class */ (function () {\n function Lines(element, canvasHeight) {\n this.element = element;\n this.canvasHeight = canvasHeight || 500000;\n this.element.style.height = (this.canvasHeight * 2) + \"px\";\n this.cells = [];\n this.cellCache = [];\n this.$offsetCoefficient = 0;\n }\n Lines.prototype.moveContainer = function (config) {\n dom.translate(this.element, 0, -((config.firstRowScreen * config.lineHeight) % this.canvasHeight) - config.offset * this.$offsetCoefficient);\n };\n Lines.prototype.pageChanged = function (oldConfig, newConfig) {\n return (Math.floor((oldConfig.firstRowScreen * oldConfig.lineHeight) / this.canvasHeight) !==\n Math.floor((newConfig.firstRowScreen * newConfig.lineHeight) / this.canvasHeight));\n };\n Lines.prototype.computeLineTop = function (row, config, session) {\n var screenTop = config.firstRowScreen * config.lineHeight;\n var screenPage = Math.floor(screenTop / this.canvasHeight);\n var lineTop = session.documentToScreenRow(row, 0) * config.lineHeight;\n return lineTop - (screenPage * this.canvasHeight);\n };\n Lines.prototype.computeLineHeight = function (row, config, session) {\n return config.lineHeight * session.getRowLineCount(row);\n };\n Lines.prototype.getLength = function () {\n return this.cells.length;\n };\n Lines.prototype.get = function (index) {\n return this.cells[index];\n };\n Lines.prototype.shift = function () {\n this.$cacheCell(this.cells.shift());\n };\n Lines.prototype.pop = function () {\n this.$cacheCell(this.cells.pop());\n };\n Lines.prototype.push = function (cell) {\n if (Array.isArray(cell)) {\n this.cells.push.apply(this.cells, cell);\n var fragment = dom.createFragment(this.element);\n for (var i = 0; i < cell.length; i++) {\n fragment.appendChild(cell[i].element);\n }\n this.element.appendChild(fragment);\n }\n else {\n this.cells.push(cell);\n this.element.appendChild(cell.element);\n }\n };\n Lines.prototype.unshift = function (cell) {\n if (Array.isArray(cell)) {\n this.cells.unshift.apply(this.cells, cell);\n var fragment = dom.createFragment(this.element);\n for (var i = 0; i < cell.length; i++) {\n fragment.appendChild(cell[i].element);\n }\n if (this.element.firstChild)\n this.element.insertBefore(fragment, this.element.firstChild);\n else\n this.element.appendChild(fragment);\n }\n else {\n this.cells.unshift(cell);\n this.element.insertAdjacentElement(\"afterbegin\", cell.element);\n }\n };\n Lines.prototype.last = function () {\n if (this.cells.length)\n return this.cells[this.cells.length - 1];\n else\n return null;\n };\n Lines.prototype.$cacheCell = function (cell) {\n if (!cell)\n return;\n cell.element.remove();\n this.cellCache.push(cell);\n };\n Lines.prototype.createCell = function (row, config, session, initElement) {\n var cell = this.cellCache.pop();\n if (!cell) {\n var element = dom.createElement(\"div\");\n if (initElement)\n initElement(element);\n this.element.appendChild(element);\n cell = {\n element: element,\n text: \"\",\n row: row\n };\n }\n cell.row = row;\n return cell;\n };\n return Lines;\n}());\nexports.Lines = Lines;\n\n});\n\nace.define(\"ace/layer/gutter\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/layer/lines\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar Lines = require(\"./lines\").Lines;\nvar nls = require(\"../config\").nls;\nvar Gutter = /** @class */ (function () {\n function Gutter(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_gutter-layer\";\n parentEl.appendChild(this.element);\n this.setShowFoldWidgets(this.$showFoldWidgets);\n this.gutterWidth = 0;\n this.$annotations = [];\n this.$updateAnnotations = this.$updateAnnotations.bind(this);\n this.$lines = new Lines(this.element);\n this.$lines.$offsetCoefficient = 1;\n }\n Gutter.prototype.setSession = function (session) {\n if (this.session)\n this.session.off(\"change\", this.$updateAnnotations);\n this.session = session;\n if (session)\n session.on(\"change\", this.$updateAnnotations);\n };\n Gutter.prototype.addGutterDecoration = function (row, className) {\n if (window.console)\n console.warn && console.warn(\"deprecated use session.addGutterDecoration\");\n this.session.addGutterDecoration(row, className);\n };\n Gutter.prototype.removeGutterDecoration = function (row, className) {\n if (window.console)\n console.warn && console.warn(\"deprecated use session.removeGutterDecoration\");\n this.session.removeGutterDecoration(row, className);\n };\n Gutter.prototype.setAnnotations = function (annotations) {\n this.$annotations = [];\n for (var i = 0; i < annotations.length; i++) {\n var annotation = annotations[i];\n var row = annotation.row;\n var rowInfo = this.$annotations[row];\n if (!rowInfo)\n rowInfo = this.$annotations[row] = { text: [], type: [] };\n var annoText = annotation.text;\n var annoType = annotation.type;\n annoText = annoText ? lang.escapeHTML(annoText) : annotation.html || \"\";\n if (rowInfo.text.indexOf(annoText) === -1) {\n rowInfo.text.push(annoText);\n rowInfo.type.push(annoType);\n }\n var className = annotation.className;\n if (className)\n rowInfo.className = className;\n else if (annoType == \"error\")\n rowInfo.className = \" ace_error\";\n else if (annoType == \"warning\" && rowInfo.className != \" ace_error\")\n rowInfo.className = \" ace_warning\";\n else if (annoType == \"info\" && (!rowInfo.className))\n rowInfo.className = \" ace_info\";\n }\n };\n Gutter.prototype.$updateAnnotations = function (delta) {\n if (!this.$annotations.length)\n return;\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n if (len === 0) {\n }\n else if (delta.action == 'remove') {\n this.$annotations.splice(firstRow, len + 1, null);\n }\n else {\n var args = new Array(len + 1);\n args.unshift(firstRow, 1);\n this.$annotations.splice.apply(this.$annotations, args);\n }\n };\n Gutter.prototype.update = function (config) {\n this.config = config;\n var session = this.session;\n var firstRow = config.firstRow;\n var lastRow = Math.min(config.lastRow + config.gutterOffset, // needed to compensate for hor scollbar\n session.getLength() - 1);\n this.oldLastRow = lastRow;\n this.config = config;\n this.$lines.moveContainer(config);\n this.$updateCursorRow();\n var fold = session.getNextFoldLine(firstRow);\n var foldStart = fold ? fold.start.row : Infinity;\n var cell = null;\n var index = -1;\n var row = firstRow;\n while (true) {\n if (row > foldStart) {\n row = fold.end.row + 1;\n fold = session.getNextFoldLine(row, fold);\n foldStart = fold ? fold.start.row : Infinity;\n }\n if (row > lastRow) {\n while (this.$lines.getLength() > index + 1)\n this.$lines.pop();\n break;\n }\n cell = this.$lines.get(++index);\n if (cell) {\n cell.row = row;\n }\n else {\n cell = this.$lines.createCell(row, config, this.session, onCreateCell);\n this.$lines.push(cell);\n }\n this.$renderCell(cell, config, fold, row);\n row++;\n }\n this._signal(\"afterRender\");\n this.$updateGutterWidth(config);\n };\n Gutter.prototype.$updateGutterWidth = function (config) {\n var session = this.session;\n var gutterRenderer = session.gutterRenderer || this.$renderer;\n var firstLineNumber = session.$firstLineNumber;\n var lastLineText = this.$lines.last() ? this.$lines.last().text : \"\";\n if (this.$fixedWidth || session.$useWrapMode)\n lastLineText = session.getLength() + firstLineNumber - 1;\n var gutterWidth = gutterRenderer\n ? gutterRenderer.getWidth(session, lastLineText, config)\n : lastLineText.toString().length * config.characterWidth;\n var padding = this.$padding || this.$computePadding();\n gutterWidth += padding.left + padding.right;\n if (gutterWidth !== this.gutterWidth && !isNaN(gutterWidth)) {\n this.gutterWidth = gutterWidth;\n this.element.parentNode.style.width =\n this.element.style.width = Math.ceil(this.gutterWidth) + \"px\";\n this._signal(\"changeGutterWidth\", gutterWidth);\n }\n };\n Gutter.prototype.$updateCursorRow = function () {\n if (!this.$highlightGutterLine)\n return;\n var position = this.session.selection.getCursor();\n if (this.$cursorRow === position.row)\n return;\n this.$cursorRow = position.row;\n };\n Gutter.prototype.updateLineHighlight = function () {\n if (!this.$highlightGutterLine)\n return;\n var row = this.session.selection.cursor.row;\n this.$cursorRow = row;\n if (this.$cursorCell && this.$cursorCell.row == row)\n return;\n if (this.$cursorCell)\n this.$cursorCell.element.className = this.$cursorCell.element.className.replace(\"ace_gutter-active-line \", \"\");\n var cells = this.$lines.cells;\n this.$cursorCell = null;\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n if (cell.row >= this.$cursorRow) {\n if (cell.row > this.$cursorRow) {\n var fold = this.session.getFoldLine(this.$cursorRow);\n if (i > 0 && fold && fold.start.row == cells[i - 1].row)\n cell = cells[i - 1];\n else\n break;\n }\n cell.element.className = \"ace_gutter-active-line \" + cell.element.className;\n this.$cursorCell = cell;\n break;\n }\n }\n };\n Gutter.prototype.scrollLines = function (config) {\n var oldConfig = this.config;\n this.config = config;\n this.$updateCursorRow();\n if (this.$lines.pageChanged(oldConfig, config))\n return this.update(config);\n this.$lines.moveContainer(config);\n var lastRow = Math.min(config.lastRow + config.gutterOffset, // needed to compensate for hor scollbar\n this.session.getLength() - 1);\n var oldLastRow = this.oldLastRow;\n this.oldLastRow = lastRow;\n if (!oldConfig || oldLastRow < config.firstRow)\n return this.update(config);\n if (lastRow < oldConfig.firstRow)\n return this.update(config);\n if (oldConfig.firstRow < config.firstRow)\n for (var row = this.session.getFoldedRowCount(oldConfig.firstRow, config.firstRow - 1); row > 0; row--)\n this.$lines.shift();\n if (oldLastRow > lastRow)\n for (var row = this.session.getFoldedRowCount(lastRow + 1, oldLastRow); row > 0; row--)\n this.$lines.pop();\n if (config.firstRow < oldConfig.firstRow) {\n this.$lines.unshift(this.$renderLines(config, config.firstRow, oldConfig.firstRow - 1));\n }\n if (lastRow > oldLastRow) {\n this.$lines.push(this.$renderLines(config, oldLastRow + 1, lastRow));\n }\n this.updateLineHighlight();\n this._signal(\"afterRender\");\n this.$updateGutterWidth(config);\n };\n Gutter.prototype.$renderLines = function (config, firstRow, lastRow) {\n var fragment = [];\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row + 1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > lastRow)\n break;\n var cell = this.$lines.createCell(row, config, this.session, onCreateCell);\n this.$renderCell(cell, config, foldLine, row);\n fragment.push(cell);\n row++;\n }\n return fragment;\n };\n Gutter.prototype.$renderCell = function (cell, config, fold, row) {\n var element = cell.element;\n var session = this.session;\n var textNode = element.childNodes[0];\n var foldWidget = element.childNodes[1];\n var annotationNode = element.childNodes[2];\n var annotationIconNode = annotationNode.firstChild;\n var firstLineNumber = session.$firstLineNumber;\n var breakpoints = session.$breakpoints;\n var decorations = session.$decorations;\n var gutterRenderer = session.gutterRenderer || this.$renderer;\n var foldWidgets = this.$showFoldWidgets && session.foldWidgets;\n var foldStart = fold ? fold.start.row : Number.MAX_VALUE;\n var lineHeight = config.lineHeight + \"px\";\n var className = this.$useSvgGutterIcons ? \"ace_gutter-cell_svg-icons \" : \"ace_gutter-cell \";\n var iconClassName = this.$useSvgGutterIcons ? \"ace_icon_svg\" : \"ace_icon\";\n var rowText = (gutterRenderer\n ? gutterRenderer.getText(session, row)\n : row + firstLineNumber).toString();\n if (this.$highlightGutterLine) {\n if (row == this.$cursorRow || (fold && row < this.$cursorRow && row >= foldStart && this.$cursorRow <= fold.end.row)) {\n className += \"ace_gutter-active-line \";\n if (this.$cursorCell != cell) {\n if (this.$cursorCell)\n this.$cursorCell.element.className = this.$cursorCell.element.className.replace(\"ace_gutter-active-line \", \"\");\n this.$cursorCell = cell;\n }\n }\n }\n if (breakpoints[row])\n className += breakpoints[row];\n if (decorations[row])\n className += decorations[row];\n if (this.$annotations[row] && row !== foldStart)\n className += this.$annotations[row].className;\n if (foldWidgets) {\n var c = foldWidgets[row];\n if (c == null)\n c = foldWidgets[row] = session.getFoldWidget(row);\n }\n if (c) {\n var foldClass = \"ace_fold-widget ace_\" + c;\n var isClosedFold = c == \"start\" && row == foldStart && row < fold.end.row;\n if (isClosedFold) {\n foldClass += \" ace_closed\";\n var foldAnnotationClass = '';\n var annotationInFold = false;\n for (var i = row + 1; i <= fold.end.row; i++) {\n if (!this.$annotations[i])\n continue;\n if (this.$annotations[i].className === \" ace_error\") {\n annotationInFold = true;\n foldAnnotationClass = \" ace_error_fold\";\n break;\n }\n if (this.$annotations[i].className === \" ace_warning\") {\n annotationInFold = true;\n foldAnnotationClass = \" ace_warning_fold\";\n continue;\n }\n }\n className += foldAnnotationClass;\n }\n else\n foldClass += \" ace_open\";\n if (foldWidget.className != foldClass)\n foldWidget.className = foldClass;\n dom.setStyle(foldWidget.style, \"height\", lineHeight);\n dom.setStyle(foldWidget.style, \"display\", \"inline-block\");\n foldWidget.setAttribute(\"role\", \"button\");\n foldWidget.setAttribute(\"tabindex\", \"-1\");\n var foldRange = session.getFoldWidgetRange(row);\n if (foldRange)\n foldWidget.setAttribute(\"aria-label\", nls(\"Toggle code folding, rows $0 through $1\", [foldRange.start.row + 1, foldRange.end.row + 1]));\n else {\n if (fold)\n foldWidget.setAttribute(\"aria-label\", nls(\"Toggle code folding, rows $0 through $1\", [fold.start.row + 1, fold.end.row + 1]));\n else\n foldWidget.setAttribute(\"aria-label\", nls(\"Toggle code folding, row $0\", [row + 1]));\n }\n if (isClosedFold) {\n foldWidget.setAttribute(\"aria-expanded\", \"false\");\n foldWidget.setAttribute(\"title\", nls(\"Unfold code\"));\n }\n else {\n foldWidget.setAttribute(\"aria-expanded\", \"true\");\n foldWidget.setAttribute(\"title\", nls(\"Fold code\"));\n }\n }\n else {\n if (foldWidget) {\n dom.setStyle(foldWidget.style, \"display\", \"none\");\n foldWidget.setAttribute(\"tabindex\", \"0\");\n foldWidget.removeAttribute(\"role\");\n foldWidget.removeAttribute(\"aria-label\");\n }\n }\n if (annotationInFold && this.$showFoldedAnnotations) {\n annotationNode.className = \"ace_gutter_annotation\";\n annotationIconNode.className = iconClassName;\n annotationIconNode.className += foldAnnotationClass;\n dom.setStyle(annotationIconNode.style, \"height\", lineHeight);\n dom.setStyle(annotationNode.style, \"display\", \"block\");\n dom.setStyle(annotationNode.style, \"height\", lineHeight);\n annotationNode.setAttribute(\"aria-label\", nls(\"Read annotations row $0\", [rowText]));\n annotationNode.setAttribute(\"tabindex\", \"-1\");\n annotationNode.setAttribute(\"role\", \"button\");\n }\n else if (this.$annotations[row]) {\n annotationNode.className = \"ace_gutter_annotation\";\n annotationIconNode.className = iconClassName;\n if (this.$useSvgGutterIcons)\n annotationIconNode.className += this.$annotations[row].className;\n else\n element.classList.add(this.$annotations[row].className.replace(\" \", \"\"));\n dom.setStyle(annotationIconNode.style, \"height\", lineHeight);\n dom.setStyle(annotationNode.style, \"display\", \"block\");\n dom.setStyle(annotationNode.style, \"height\", lineHeight);\n annotationNode.setAttribute(\"aria-label\", nls(\"Read annotations row $0\", [rowText]));\n annotationNode.setAttribute(\"tabindex\", \"-1\");\n annotationNode.setAttribute(\"role\", \"button\");\n }\n else {\n dom.setStyle(annotationNode.style, \"display\", \"none\");\n annotationNode.removeAttribute(\"aria-label\");\n annotationNode.removeAttribute(\"role\");\n annotationNode.setAttribute(\"tabindex\", \"0\");\n }\n if (rowText !== textNode.data) {\n textNode.data = rowText;\n }\n if (element.className != className)\n element.className = className;\n dom.setStyle(cell.element.style, \"height\", this.$lines.computeLineHeight(row, config, session) + \"px\");\n dom.setStyle(cell.element.style, \"top\", this.$lines.computeLineTop(row, config, session) + \"px\");\n cell.text = rowText;\n if (annotationNode.style.display === \"none\" && foldWidget.style.display === \"none\")\n cell.element.setAttribute(\"aria-hidden\", true);\n else\n cell.element.setAttribute(\"aria-hidden\", false);\n return cell;\n };\n Gutter.prototype.setHighlightGutterLine = function (highlightGutterLine) {\n this.$highlightGutterLine = highlightGutterLine;\n };\n Gutter.prototype.setShowLineNumbers = function (show) {\n this.$renderer = !show && {\n getWidth: function () { return 0; },\n getText: function () { return \"\"; }\n };\n };\n Gutter.prototype.getShowLineNumbers = function () {\n return this.$showLineNumbers;\n };\n Gutter.prototype.setShowFoldWidgets = function (show) {\n if (show)\n dom.addCssClass(this.element, \"ace_folding-enabled\");\n else\n dom.removeCssClass(this.element, \"ace_folding-enabled\");\n this.$showFoldWidgets = show;\n this.$padding = null;\n };\n Gutter.prototype.getShowFoldWidgets = function () {\n return this.$showFoldWidgets;\n };\n Gutter.prototype.$computePadding = function () {\n if (!this.element.firstChild)\n return { left: 0, right: 0 };\n var style = dom.computedStyle(this.element.firstChild);\n this.$padding = {};\n this.$padding.left = (parseInt(style.borderLeftWidth) || 0)\n + (parseInt(style.paddingLeft) || 0) + 1;\n this.$padding.right = (parseInt(style.borderRightWidth) || 0)\n + (parseInt(style.paddingRight) || 0);\n return this.$padding;\n };\n Gutter.prototype.getRegion = function (point) {\n var padding = this.$padding || this.$computePadding();\n var rect = this.element.getBoundingClientRect();\n if (point.x < padding.left + rect.left)\n return \"markers\";\n if (this.$showFoldWidgets && point.x > rect.right - padding.right)\n return \"foldWidgets\";\n };\n return Gutter;\n}());\nGutter.prototype.$fixedWidth = false;\nGutter.prototype.$highlightGutterLine = true;\nGutter.prototype.$renderer = \"\";\nGutter.prototype.$showLineNumbers = true;\nGutter.prototype.$showFoldWidgets = true;\noop.implement(Gutter.prototype, EventEmitter);\nfunction onCreateCell(element) {\n var textNode = document.createTextNode('');\n element.appendChild(textNode);\n var foldWidget = dom.createElement(\"span\");\n element.appendChild(foldWidget);\n var annotationNode = dom.createElement(\"span\");\n element.appendChild(annotationNode);\n var annotationIconNode = dom.createElement(\"span\");\n annotationNode.appendChild(annotationIconNode);\n return element;\n}\nexports.Gutter = Gutter;\n\n});\n\nace.define(\"ace/layer/marker\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar dom = require(\"../lib/dom\");\nvar Marker = /** @class */ (function () {\n function Marker(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_marker-layer\";\n parentEl.appendChild(this.element);\n }\n Marker.prototype.setPadding = function (padding) {\n this.$padding = padding;\n };\n Marker.prototype.setSession = function (session) {\n this.session = session;\n };\n Marker.prototype.setMarkers = function (markers) {\n this.markers = markers;\n };\n Marker.prototype.elt = function (className, css) {\n var x = this.i != -1 && this.element.childNodes[this.i];\n if (!x) {\n x = document.createElement(\"div\");\n this.element.appendChild(x);\n this.i = -1;\n }\n else {\n this.i++;\n }\n x.style.cssText = css;\n x.className = className;\n };\n Marker.prototype.update = function (config) {\n if (!config)\n return;\n this.config = config;\n this.i = 0;\n var html;\n for (var key in this.markers) {\n var marker = this.markers[key];\n if (!marker.range) {\n marker.update(html, this, this.session, config);\n continue;\n }\n var range = marker.range.clipRows(config.firstRow, config.lastRow);\n if (range.isEmpty())\n continue;\n range = range.toScreenRange(this.session);\n if (marker.renderer) {\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + range.start.column * config.characterWidth;\n marker.renderer(html, range, left, top, config);\n }\n else if (marker.type == \"fullLine\") {\n this.drawFullLineMarker(html, range, marker.clazz, config);\n }\n else if (marker.type == \"screenLine\") {\n this.drawScreenLineMarker(html, range, marker.clazz, config);\n }\n else if (range.isMultiLine()) {\n if (marker.type == \"text\")\n this.drawTextMarker(html, range, marker.clazz, config);\n else\n this.drawMultiLineMarker(html, range, marker.clazz, config);\n }\n else {\n this.drawSingleLineMarker(html, range, marker.clazz + \" ace_start\" + \" ace_br15\", config);\n }\n }\n if (this.i != -1) {\n while (this.i < this.element.childElementCount)\n this.element.removeChild(this.element.lastChild);\n }\n };\n Marker.prototype.$getTop = function (row, layerConfig) {\n return (row - layerConfig.firstRowScreen) * layerConfig.lineHeight;\n };\n Marker.prototype.drawTextMarker = function (stringBuilder, range, clazz, layerConfig, extraStyle) {\n var session = this.session;\n var start = range.start.row;\n var end = range.end.row;\n var row = start;\n var prev = 0;\n var curr = 0;\n var next = session.getScreenLastRowColumn(row);\n var lineRange = new Range(row, range.start.column, row, curr);\n for (; row <= end; row++) {\n lineRange.start.row = lineRange.end.row = row;\n lineRange.start.column = row == start ? range.start.column : session.getRowWrapIndent(row);\n lineRange.end.column = next;\n prev = curr;\n curr = next;\n next = row + 1 < end ? session.getScreenLastRowColumn(row + 1) : row == end ? 0 : range.end.column;\n this.drawSingleLineMarker(stringBuilder, lineRange, clazz + (row == start ? \" ace_start\" : \"\") + \" ace_br\"\n + getBorderClass(row == start || row == start + 1 && range.start.column, prev < curr, curr > next, row == end), layerConfig, row == end ? 0 : 1, extraStyle);\n }\n };\n Marker.prototype.drawMultiLineMarker = function (stringBuilder, range, clazz, config, extraStyle) {\n var padding = this.$padding;\n var height = config.lineHeight;\n var top = this.$getTop(range.start.row, config);\n var left = padding + range.start.column * config.characterWidth;\n extraStyle = extraStyle || \"\";\n if (this.session.$bidiHandler.isBidiRow(range.start.row)) {\n var range1 = range.clone();\n range1.end.row = range1.start.row;\n range1.end.column = this.session.getLine(range1.start.row).length;\n this.drawBidiSingleLineMarker(stringBuilder, range1, clazz + \" ace_br1 ace_start\", config, null, extraStyle);\n }\n else {\n this.elt(clazz + \" ace_br1 ace_start\", \"height:\" + height + \"px;\" + \"right:0;\" + \"top:\" + top + \"px;left:\" + left + \"px;\" + (extraStyle || \"\"));\n }\n if (this.session.$bidiHandler.isBidiRow(range.end.row)) {\n var range1 = range.clone();\n range1.start.row = range1.end.row;\n range1.start.column = 0;\n this.drawBidiSingleLineMarker(stringBuilder, range1, clazz + \" ace_br12\", config, null, extraStyle);\n }\n else {\n top = this.$getTop(range.end.row, config);\n var width = range.end.column * config.characterWidth;\n this.elt(clazz + \" ace_br12\", \"height:\" + height + \"px;\" +\n \"width:\" + width + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + padding + \"px;\" + (extraStyle || \"\"));\n }\n height = (range.end.row - range.start.row - 1) * config.lineHeight;\n if (height <= 0)\n return;\n top = this.$getTop(range.start.row + 1, config);\n var radiusClass = (range.start.column ? 1 : 0) | (range.end.column ? 0 : 8);\n this.elt(clazz + (radiusClass ? \" ace_br\" + radiusClass : \"\"), \"height:\" + height + \"px;\" +\n \"right:0;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + padding + \"px;\" + (extraStyle || \"\"));\n };\n Marker.prototype.drawSingleLineMarker = function (stringBuilder, range, clazz, config, extraLength, extraStyle) {\n if (this.session.$bidiHandler.isBidiRow(range.start.row))\n return this.drawBidiSingleLineMarker(stringBuilder, range, clazz, config, extraLength, extraStyle);\n var height = config.lineHeight;\n var width = (range.end.column + (extraLength || 0) - range.start.column) * config.characterWidth;\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + range.start.column * config.characterWidth;\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"width:\" + width + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + left + \"px;\" + (extraStyle || \"\"));\n };\n Marker.prototype.drawBidiSingleLineMarker = function (stringBuilder, range, clazz, config, extraLength, extraStyle) {\n var height = config.lineHeight, top = this.$getTop(range.start.row, config), padding = this.$padding;\n var selections = this.session.$bidiHandler.getSelections(range.start.column, range.end.column);\n selections.forEach(function (selection) {\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"width:\" + (selection.width + (extraLength || 0)) + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + (padding + selection.left) + \"px;\" + (extraStyle || \"\"));\n }, this);\n };\n Marker.prototype.drawFullLineMarker = function (stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n if (range.start.row != range.end.row)\n height += this.$getTop(range.end.row, config) - top;\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:0;right:0;\" + (extraStyle || \"\"));\n };\n Marker.prototype.drawScreenLineMarker = function (stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:0;right:0;\" + (extraStyle || \"\"));\n };\n return Marker;\n}());\nMarker.prototype.$padding = 0;\nfunction getBorderClass(tl, tr, br, bl) {\n return (tl ? 1 : 0) | (tr ? 2 : 0) | (br ? 4 : 0) | (bl ? 8 : 0);\n}\nexports.Marker = Marker;\n\n});\n\nace.define(\"ace/layer/text_util\",[\"require\",\"exports\",\"module\"], function(require, exports, module){// Tokens for which Ace just uses a simple TextNode and does not add any special className.\nvar textTokens = new Set([\"text\", \"rparen\", \"lparen\"]);\nexports.isTextToken = function (tokenType) {\n return textTokens.has(tokenType);\n};\n\n});\n\nace.define(\"ace/layer/text\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/layer/lines\",\"ace/lib/event_emitter\",\"ace/config\",\"ace/layer/text_util\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar Lines = require(\"./lines\").Lines;\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar nls = require(\"../config\").nls;\nvar isTextToken = require(\"./text_util\").isTextToken;\nvar Text = /** @class */ (function () {\n function Text(parentEl) {\n this.dom = dom;\n this.element = this.dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_text-layer\";\n parentEl.appendChild(this.element);\n this.$updateEolChar = this.$updateEolChar.bind(this);\n this.$lines = new Lines(this.element);\n }\n Text.prototype.$updateEolChar = function () {\n var doc = this.session.doc;\n var unixMode = doc.getNewLineCharacter() == \"\\n\" && doc.getNewLineMode() != \"windows\";\n var EOL_CHAR = unixMode ? this.EOL_CHAR_LF : this.EOL_CHAR_CRLF;\n if (this.EOL_CHAR != EOL_CHAR) {\n this.EOL_CHAR = EOL_CHAR;\n return true;\n }\n };\n Text.prototype.setPadding = function (padding) {\n this.$padding = padding;\n this.element.style.margin = \"0 \" + padding + \"px\";\n };\n Text.prototype.getLineHeight = function () {\n return this.$fontMetrics.$characterSize.height || 0;\n };\n Text.prototype.getCharacterWidth = function () {\n return this.$fontMetrics.$characterSize.width || 0;\n };\n Text.prototype.$setFontMetrics = function (measure) {\n this.$fontMetrics = measure;\n this.$fontMetrics.on(\"changeCharacterSize\", function (e) {\n this._signal(\"changeCharacterSize\", e);\n }.bind(this));\n this.$pollSizeChanges();\n };\n Text.prototype.checkForSizeChanges = function () {\n this.$fontMetrics.checkForSizeChanges();\n };\n Text.prototype.$pollSizeChanges = function () {\n return this.$pollSizeChangesTimer = this.$fontMetrics.$pollSizeChanges();\n };\n Text.prototype.setSession = function (session) {\n this.session = session;\n if (session)\n this.$computeTabString();\n };\n Text.prototype.setShowInvisibles = function (showInvisibles) {\n if (this.showInvisibles == showInvisibles)\n return false;\n this.showInvisibles = showInvisibles;\n if (typeof showInvisibles == \"string\") {\n this.showSpaces = /tab/i.test(showInvisibles);\n this.showTabs = /space/i.test(showInvisibles);\n this.showEOL = /eol/i.test(showInvisibles);\n }\n else {\n this.showSpaces = this.showTabs = this.showEOL = showInvisibles;\n }\n this.$computeTabString();\n return true;\n };\n Text.prototype.setDisplayIndentGuides = function (display) {\n if (this.displayIndentGuides == display)\n return false;\n this.displayIndentGuides = display;\n this.$computeTabString();\n return true;\n };\n Text.prototype.setHighlightIndentGuides = function (highlight) {\n if (this.$highlightIndentGuides === highlight)\n return false;\n this.$highlightIndentGuides = highlight;\n return highlight;\n };\n Text.prototype.$computeTabString = function () {\n var tabSize = this.session.getTabSize();\n this.tabSize = tabSize;\n var tabStr = this.$tabStrings = [0];\n for (var i = 1; i < tabSize + 1; i++) {\n if (this.showTabs) {\n var span = this.dom.createElement(\"span\");\n span.className = \"ace_invisible ace_invisible_tab\";\n span.textContent = lang.stringRepeat(this.TAB_CHAR, i);\n tabStr.push(span);\n }\n else {\n tabStr.push(this.dom.createTextNode(lang.stringRepeat(\" \", i), this.element));\n }\n }\n if (this.displayIndentGuides) {\n this.$indentGuideRe = /\\s\\S| \\t|\\t |\\s$/;\n var className = \"ace_indent-guide\";\n var spaceClass = this.showSpaces ? \" ace_invisible ace_invisible_space\" : \"\";\n var spaceContent = this.showSpaces\n ? lang.stringRepeat(this.SPACE_CHAR, this.tabSize)\n : lang.stringRepeat(\" \", this.tabSize);\n var tabClass = this.showTabs ? \" ace_invisible ace_invisible_tab\" : \"\";\n var tabContent = this.showTabs\n ? lang.stringRepeat(this.TAB_CHAR, this.tabSize)\n : spaceContent;\n var span = this.dom.createElement(\"span\");\n span.className = className + spaceClass;\n span.textContent = spaceContent;\n this.$tabStrings[\" \"] = span;\n var span = this.dom.createElement(\"span\");\n span.className = className + tabClass;\n span.textContent = tabContent;\n this.$tabStrings[\"\\t\"] = span;\n }\n };\n Text.prototype.updateLines = function (config, firstRow, lastRow) {\n if (this.config.lastRow != config.lastRow ||\n this.config.firstRow != config.firstRow) {\n return this.update(config);\n }\n this.config = config;\n var first = Math.max(firstRow, config.firstRow);\n var last = Math.min(lastRow, config.lastRow);\n var lineElements = this.element.childNodes;\n var lineElementsIdx = 0;\n for (var row = config.firstRow; row < first; row++) {\n var foldLine = this.session.getFoldLine(row);\n if (foldLine) {\n if (foldLine.containsRow(first)) {\n first = foldLine.start.row;\n break;\n }\n else {\n row = foldLine.end.row;\n }\n }\n lineElementsIdx++;\n }\n var heightChanged = false;\n var row = first;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row + 1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > last)\n break;\n var lineElement = lineElements[lineElementsIdx++];\n if (lineElement) {\n this.dom.removeChildren(lineElement);\n this.$renderLine(lineElement, row, row == foldStart ? foldLine : false);\n if (heightChanged)\n lineElement.style.top = this.$lines.computeLineTop(row, config, this.session) + \"px\";\n var height = (config.lineHeight * this.session.getRowLength(row)) + \"px\";\n if (lineElement.style.height != height) {\n heightChanged = true;\n lineElement.style.height = height;\n }\n }\n row++;\n }\n if (heightChanged) {\n while (lineElementsIdx < this.$lines.cells.length) {\n var cell = this.$lines.cells[lineElementsIdx++];\n cell.element.style.top = this.$lines.computeLineTop(cell.row, config, this.session) + \"px\";\n }\n }\n };\n Text.prototype.scrollLines = function (config) {\n var oldConfig = this.config;\n this.config = config;\n if (this.$lines.pageChanged(oldConfig, config))\n return this.update(config);\n this.$lines.moveContainer(config);\n var lastRow = config.lastRow;\n var oldLastRow = oldConfig ? oldConfig.lastRow : -1;\n if (!oldConfig || oldLastRow < config.firstRow)\n return this.update(config);\n if (lastRow < oldConfig.firstRow)\n return this.update(config);\n if (!oldConfig || oldConfig.lastRow < config.firstRow)\n return this.update(config);\n if (config.lastRow < oldConfig.firstRow)\n return this.update(config);\n if (oldConfig.firstRow < config.firstRow)\n for (var row = this.session.getFoldedRowCount(oldConfig.firstRow, config.firstRow - 1); row > 0; row--)\n this.$lines.shift();\n if (oldConfig.lastRow > config.lastRow)\n for (var row = this.session.getFoldedRowCount(config.lastRow + 1, oldConfig.lastRow); row > 0; row--)\n this.$lines.pop();\n if (config.firstRow < oldConfig.firstRow) {\n this.$lines.unshift(this.$renderLinesFragment(config, config.firstRow, oldConfig.firstRow - 1));\n }\n if (config.lastRow > oldConfig.lastRow) {\n this.$lines.push(this.$renderLinesFragment(config, oldConfig.lastRow + 1, config.lastRow));\n }\n this.$highlightIndentGuide();\n };\n Text.prototype.$renderLinesFragment = function (config, firstRow, lastRow) {\n var fragment = [];\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row + 1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > lastRow)\n break;\n var line = this.$lines.createCell(row, config, this.session);\n var lineEl = line.element;\n this.dom.removeChildren(lineEl);\n dom.setStyle(lineEl.style, \"height\", this.$lines.computeLineHeight(row, config, this.session) + \"px\");\n dom.setStyle(lineEl.style, \"top\", this.$lines.computeLineTop(row, config, this.session) + \"px\");\n this.$renderLine(lineEl, row, row == foldStart ? foldLine : false);\n if (this.$useLineGroups()) {\n lineEl.className = \"ace_line_group\";\n }\n else {\n lineEl.className = \"ace_line\";\n }\n fragment.push(line);\n row++;\n }\n return fragment;\n };\n Text.prototype.update = function (config) {\n this.$lines.moveContainer(config);\n this.config = config;\n var firstRow = config.firstRow;\n var lastRow = config.lastRow;\n var lines = this.$lines;\n while (lines.getLength())\n lines.pop();\n lines.push(this.$renderLinesFragment(config, firstRow, lastRow));\n };\n Text.prototype.$renderToken = function (parent, screenColumn, token, value) {\n var self = this;\n var re = /(\\t)|( +)|([\\x00-\\x1f\\x80-\\xa0\\xad\\u1680\\u180E\\u2000-\\u200f\\u2028\\u2029\\u202F\\u205F\\uFEFF\\uFFF9-\\uFFFC\\u2066\\u2067\\u2068\\u202A\\u202B\\u202D\\u202E\\u202C\\u2069]+)|(\\u3000)|([\\u1100-\\u115F\\u11A3-\\u11A7\\u11FA-\\u11FF\\u2329-\\u232A\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3001-\\u303E\\u3041-\\u3096\\u3099-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u3190-\\u31BA\\u31C0-\\u31E3\\u31F0-\\u321E\\u3220-\\u3247\\u3250-\\u32FE\\u3300-\\u4DBF\\u4E00-\\uA48C\\uA490-\\uA4C6\\uA960-\\uA97C\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFAFF\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE66\\uFE68-\\uFE6B\\uFF01-\\uFF60\\uFFE0-\\uFFE6]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF])/g;\n var valueFragment = this.dom.createFragment(this.element);\n var m;\n var i = 0;\n while (m = re.exec(value)) {\n var tab = m[1];\n var simpleSpace = m[2];\n var controlCharacter = m[3];\n var cjkSpace = m[4];\n var cjk = m[5];\n if (!self.showSpaces && simpleSpace)\n continue;\n var before = i != m.index ? value.slice(i, m.index) : \"\";\n i = m.index + m[0].length;\n if (before) {\n valueFragment.appendChild(this.dom.createTextNode(before, this.element));\n }\n if (tab) {\n var tabSize = self.session.getScreenTabSize(screenColumn + m.index);\n valueFragment.appendChild(self.$tabStrings[tabSize].cloneNode(true));\n screenColumn += tabSize - 1;\n }\n else if (simpleSpace) {\n if (self.showSpaces) {\n var span = this.dom.createElement(\"span\");\n span.className = \"ace_invisible ace_invisible_space\";\n span.textContent = lang.stringRepeat(self.SPACE_CHAR, simpleSpace.length);\n valueFragment.appendChild(span);\n }\n else {\n valueFragment.appendChild(this.dom.createTextNode(simpleSpace, this.element));\n }\n }\n else if (controlCharacter) {\n var span = this.dom.createElement(\"span\");\n span.className = \"ace_invisible ace_invisible_space ace_invalid\";\n span.textContent = lang.stringRepeat(self.SPACE_CHAR, controlCharacter.length);\n valueFragment.appendChild(span);\n }\n else if (cjkSpace) {\n screenColumn += 1;\n var span = this.dom.createElement(\"span\");\n span.style.width = (self.config.characterWidth * 2) + \"px\";\n span.className = self.showSpaces ? \"ace_cjk ace_invisible ace_invisible_space\" : \"ace_cjk\";\n span.textContent = self.showSpaces ? self.SPACE_CHAR : cjkSpace;\n valueFragment.appendChild(span);\n }\n else if (cjk) {\n screenColumn += 1;\n var span = this.dom.createElement(\"span\");\n span.style.width = (self.config.characterWidth * 2) + \"px\";\n span.className = \"ace_cjk\";\n span.textContent = cjk;\n valueFragment.appendChild(span);\n }\n }\n valueFragment.appendChild(this.dom.createTextNode(i ? value.slice(i) : value, this.element));\n if (!isTextToken(token.type)) {\n var classes = \"ace_\" + token.type.replace(/\\./g, \" ace_\");\n var span = this.dom.createElement(\"span\");\n if (token.type == \"fold\") {\n span.style.width = (token.value.length * this.config.characterWidth) + \"px\";\n span.setAttribute(\"title\", nls(\"Unfold code\"));\n }\n span.className = classes;\n span.appendChild(valueFragment);\n parent.appendChild(span);\n }\n else {\n parent.appendChild(valueFragment);\n }\n return screenColumn + value.length;\n };\n Text.prototype.renderIndentGuide = function (parent, value, max) {\n var cols = value.search(this.$indentGuideRe);\n if (cols <= 0 || cols >= max)\n return value;\n if (value[0] == \" \") {\n cols -= cols % this.tabSize;\n var count = cols / this.tabSize;\n for (var i = 0; i < count; i++) {\n parent.appendChild(this.$tabStrings[\" \"].cloneNode(true));\n }\n this.$highlightIndentGuide();\n return value.substr(cols);\n }\n else if (value[0] == \"\\t\") {\n for (var i = 0; i < cols; i++) {\n parent.appendChild(this.$tabStrings[\"\\t\"].cloneNode(true));\n }\n this.$highlightIndentGuide();\n return value.substr(cols);\n }\n this.$highlightIndentGuide();\n return value;\n };\n Text.prototype.$highlightIndentGuide = function () {\n if (!this.$highlightIndentGuides || !this.displayIndentGuides)\n return;\n this.$highlightIndentGuideMarker = {\n indentLevel: undefined,\n start: undefined,\n end: undefined,\n dir: undefined\n };\n var lines = this.session.doc.$lines;\n if (!lines)\n return;\n var cursor = this.session.selection.getCursor();\n var initialIndent = /^\\s*/.exec(this.session.doc.getLine(cursor.row))[0].length;\n var elementIndentLevel = Math.floor(initialIndent / this.tabSize);\n this.$highlightIndentGuideMarker = {\n indentLevel: elementIndentLevel,\n start: cursor.row\n };\n var bracketHighlight = this.session.$bracketHighlight;\n if (bracketHighlight) {\n var ranges = this.session.$bracketHighlight.ranges;\n for (var i = 0; i < ranges.length; i++) {\n if (cursor.row !== ranges[i].start.row) {\n this.$highlightIndentGuideMarker.end = ranges[i].start.row;\n if (cursor.row > ranges[i].start.row) {\n this.$highlightIndentGuideMarker.dir = -1;\n }\n else {\n this.$highlightIndentGuideMarker.dir = 1;\n }\n break;\n }\n }\n }\n if (!this.$highlightIndentGuideMarker.end) {\n if (lines[cursor.row] !== '' && cursor.column === lines[cursor.row].length) {\n this.$highlightIndentGuideMarker.dir = 1;\n for (var i = cursor.row + 1; i < lines.length; i++) {\n var line = lines[i];\n var currentIndent = /^\\s*/.exec(line)[0].length;\n if (line !== '') {\n this.$highlightIndentGuideMarker.end = i;\n if (currentIndent <= initialIndent)\n break;\n }\n }\n }\n }\n this.$renderHighlightIndentGuide();\n };\n Text.prototype.$clearActiveIndentGuide = function () {\n var cells = this.$lines.cells;\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n var childNodes = cell.element.childNodes;\n if (childNodes.length > 0) {\n for (var j = 0; j < childNodes.length; j++) {\n if (childNodes[j].classList && childNodes[j].classList.contains(\"ace_indent-guide-active\")) {\n childNodes[j].classList.remove(\"ace_indent-guide-active\");\n break;\n }\n }\n }\n }\n };\n Text.prototype.$setIndentGuideActive = function (cell, indentLevel) {\n var line = this.session.doc.getLine(cell.row);\n if (line !== \"\") {\n var childNodes = cell.element.childNodes;\n if (childNodes) {\n var node = childNodes[indentLevel - 1];\n if (node && node.classList && node.classList.contains(\"ace_indent-guide\"))\n node.classList.add(\"ace_indent-guide-active\");\n }\n }\n };\n Text.prototype.$renderHighlightIndentGuide = function () {\n if (!this.$lines)\n return;\n var cells = this.$lines.cells;\n this.$clearActiveIndentGuide();\n var indentLevel = this.$highlightIndentGuideMarker.indentLevel;\n if (indentLevel !== 0) {\n if (this.$highlightIndentGuideMarker.dir === 1) {\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n if (this.$highlightIndentGuideMarker.end && cell.row >= this.$highlightIndentGuideMarker.start\n + 1) {\n if (cell.row >= this.$highlightIndentGuideMarker.end)\n break;\n this.$setIndentGuideActive(cell, indentLevel);\n }\n }\n }\n else {\n for (var i = cells.length - 1; i >= 0; i--) {\n var cell = cells[i];\n if (this.$highlightIndentGuideMarker.end && cell.row < this.$highlightIndentGuideMarker.start) {\n if (cell.row <= this.$highlightIndentGuideMarker.end)\n break;\n this.$setIndentGuideActive(cell, indentLevel);\n }\n }\n }\n }\n };\n Text.prototype.$createLineElement = function (parent) {\n var lineEl = this.dom.createElement(\"div\");\n lineEl.className = \"ace_line\";\n lineEl.style.height = this.config.lineHeight + \"px\";\n return lineEl;\n };\n Text.prototype.$renderWrappedLine = function (parent, tokens, splits) {\n var chars = 0;\n var split = 0;\n var splitChars = splits[0];\n var screenColumn = 0;\n var lineEl = this.$createLineElement();\n parent.appendChild(lineEl);\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n var value = token.value;\n if (i == 0 && this.displayIndentGuides) {\n chars = value.length;\n value = this.renderIndentGuide(lineEl, value, splitChars);\n if (!value)\n continue;\n chars -= value.length;\n }\n if (chars + value.length < splitChars) {\n screenColumn = this.$renderToken(lineEl, screenColumn, token, value);\n chars += value.length;\n }\n else {\n while (chars + value.length >= splitChars) {\n screenColumn = this.$renderToken(lineEl, screenColumn, token, value.substring(0, splitChars - chars));\n value = value.substring(splitChars - chars);\n chars = splitChars;\n lineEl = this.$createLineElement();\n parent.appendChild(lineEl);\n lineEl.appendChild(this.dom.createTextNode(lang.stringRepeat(\"\\xa0\", splits.indent), this.element));\n split++;\n screenColumn = 0;\n splitChars = splits[split] || Number.MAX_VALUE;\n }\n if (value.length != 0) {\n chars += value.length;\n screenColumn = this.$renderToken(lineEl, screenColumn, token, value);\n }\n }\n }\n if (splits[splits.length - 1] > this.MAX_LINE_LENGTH)\n this.$renderOverflowMessage(lineEl, screenColumn, null, \"\", true);\n };\n Text.prototype.$renderSimpleLine = function (parent, tokens) {\n var screenColumn = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n var value = token.value;\n if (i == 0 && this.displayIndentGuides) {\n value = this.renderIndentGuide(parent, value);\n if (!value)\n continue;\n }\n if (screenColumn + value.length > this.MAX_LINE_LENGTH)\n return this.$renderOverflowMessage(parent, screenColumn, token, value);\n screenColumn = this.$renderToken(parent, screenColumn, token, value);\n }\n };\n Text.prototype.$renderOverflowMessage = function (parent, screenColumn, token, value, hide) {\n token && this.$renderToken(parent, screenColumn, token, value.slice(0, this.MAX_LINE_LENGTH - screenColumn));\n var overflowEl = this.dom.createElement(\"span\");\n overflowEl.className = \"ace_inline_button ace_keyword ace_toggle_wrap\";\n overflowEl.textContent = hide ? \"\" : \"\";\n parent.appendChild(overflowEl);\n };\n Text.prototype.$renderLine = function (parent, row, foldLine) {\n if (!foldLine && foldLine != false)\n foldLine = this.session.getFoldLine(row);\n if (foldLine)\n var tokens = this.$getFoldLineTokens(row, foldLine);\n else\n var tokens = this.session.getTokens(row);\n var lastLineEl = parent;\n if (tokens.length) {\n var splits = this.session.getRowSplitData(row);\n if (splits && splits.length) {\n this.$renderWrappedLine(parent, tokens, splits);\n var lastLineEl = parent.lastChild;\n }\n else {\n var lastLineEl = parent;\n if (this.$useLineGroups()) {\n lastLineEl = this.$createLineElement();\n parent.appendChild(lastLineEl);\n }\n this.$renderSimpleLine(lastLineEl, tokens);\n }\n }\n else if (this.$useLineGroups()) {\n lastLineEl = this.$createLineElement();\n parent.appendChild(lastLineEl);\n }\n if (this.showEOL && lastLineEl) {\n if (foldLine)\n row = foldLine.end.row;\n var invisibleEl = this.dom.createElement(\"span\");\n invisibleEl.className = \"ace_invisible ace_invisible_eol\";\n invisibleEl.textContent = row == this.session.getLength() - 1 ? this.EOF_CHAR : this.EOL_CHAR;\n lastLineEl.appendChild(invisibleEl);\n }\n };\n Text.prototype.$getFoldLineTokens = function (row, foldLine) {\n var session = this.session;\n var renderTokens = [];\n function addTokens(tokens, from, to) {\n var idx = 0, col = 0;\n while ((col + tokens[idx].value.length) < from) {\n col += tokens[idx].value.length;\n idx++;\n if (idx == tokens.length)\n return;\n }\n if (col != from) {\n var value = tokens[idx].value.substring(from - col);\n if (value.length > (to - from))\n value = value.substring(0, to - from);\n renderTokens.push({\n type: tokens[idx].type,\n value: value\n });\n col = from + value.length;\n idx += 1;\n }\n while (col < to && idx < tokens.length) {\n var value = tokens[idx].value;\n if (value.length + col > to) {\n renderTokens.push({\n type: tokens[idx].type,\n value: value.substring(0, to - col)\n });\n }\n else\n renderTokens.push(tokens[idx]);\n col += value.length;\n idx += 1;\n }\n }\n var tokens = session.getTokens(row);\n foldLine.walk(function (placeholder, row, column, lastColumn, isNewRow) {\n if (placeholder != null) {\n renderTokens.push({\n type: \"fold\",\n value: placeholder\n });\n }\n else {\n if (isNewRow)\n tokens = session.getTokens(row);\n if (tokens.length)\n addTokens(tokens, lastColumn, column);\n }\n }, foldLine.end.row, this.session.getLine(foldLine.end.row).length);\n return renderTokens;\n };\n Text.prototype.$useLineGroups = function () {\n return this.session.getUseWrapMode();\n };\n return Text;\n}());\nText.prototype.EOF_CHAR = \"\\xB6\";\nText.prototype.EOL_CHAR_LF = \"\\xAC\";\nText.prototype.EOL_CHAR_CRLF = \"\\xa4\";\nText.prototype.EOL_CHAR = Text.prototype.EOL_CHAR_LF;\nText.prototype.TAB_CHAR = \"\\u2014\"; //\"\\u21E5\";\nText.prototype.SPACE_CHAR = \"\\xB7\";\nText.prototype.$padding = 0;\nText.prototype.MAX_LINE_LENGTH = 10000;\nText.prototype.showInvisibles = false;\nText.prototype.showSpaces = false;\nText.prototype.showTabs = false;\nText.prototype.showEOL = false;\nText.prototype.displayIndentGuides = true;\nText.prototype.$highlightIndentGuides = true;\nText.prototype.$tabStrings = [];\nText.prototype.destroy = {};\nText.prototype.onChangeTabSize = Text.prototype.$computeTabString;\noop.implement(Text.prototype, EventEmitter);\nexports.Text = Text;\n\n});\n\nace.define(\"ace/layer/cursor\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar Cursor = /** @class */ (function () {\n function Cursor(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_cursor-layer\";\n parentEl.appendChild(this.element);\n this.isVisible = false;\n this.isBlinking = true;\n this.blinkInterval = 1000;\n this.smoothBlinking = false;\n this.cursors = [];\n this.cursor = this.addCursor();\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.$updateCursors = this.$updateOpacity.bind(this);\n }\n Cursor.prototype.$updateOpacity = function (val) {\n var cursors = this.cursors;\n for (var i = cursors.length; i--;)\n dom.setStyle(cursors[i].style, \"opacity\", val ? \"\" : \"0\");\n };\n Cursor.prototype.$startCssAnimation = function () {\n var cursors = this.cursors;\n for (var i = cursors.length; i--;)\n cursors[i].style.animationDuration = this.blinkInterval + \"ms\";\n this.$isAnimating = true;\n setTimeout(function () {\n if (this.$isAnimating) {\n dom.addCssClass(this.element, \"ace_animate-blinking\");\n }\n }.bind(this));\n };\n Cursor.prototype.$stopCssAnimation = function () {\n this.$isAnimating = false;\n dom.removeCssClass(this.element, \"ace_animate-blinking\");\n };\n Cursor.prototype.setPadding = function (padding) {\n this.$padding = padding;\n };\n Cursor.prototype.setSession = function (session) {\n this.session = session;\n };\n Cursor.prototype.setBlinking = function (blinking) {\n if (blinking != this.isBlinking) {\n this.isBlinking = blinking;\n this.restartTimer();\n }\n };\n Cursor.prototype.setBlinkInterval = function (blinkInterval) {\n if (blinkInterval != this.blinkInterval) {\n this.blinkInterval = blinkInterval;\n this.restartTimer();\n }\n };\n Cursor.prototype.setSmoothBlinking = function (smoothBlinking) {\n if (smoothBlinking != this.smoothBlinking) {\n this.smoothBlinking = smoothBlinking;\n dom.setCssClass(this.element, \"ace_smooth-blinking\", smoothBlinking);\n this.$updateCursors(true);\n this.restartTimer();\n }\n };\n Cursor.prototype.addCursor = function () {\n var el = dom.createElement(\"div\");\n el.className = \"ace_cursor\";\n this.element.appendChild(el);\n this.cursors.push(el);\n return el;\n };\n Cursor.prototype.removeCursor = function () {\n if (this.cursors.length > 1) {\n var el = this.cursors.pop();\n el.parentNode.removeChild(el);\n return el;\n }\n };\n Cursor.prototype.hideCursor = function () {\n this.isVisible = false;\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n Cursor.prototype.showCursor = function () {\n this.isVisible = true;\n dom.removeCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n Cursor.prototype.restartTimer = function () {\n var update = this.$updateCursors;\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n this.$stopCssAnimation();\n if (this.smoothBlinking) {\n this.$isSmoothBlinking = false;\n dom.removeCssClass(this.element, \"ace_smooth-blinking\");\n }\n update(true);\n if (!this.isBlinking || !this.blinkInterval || !this.isVisible) {\n this.$stopCssAnimation();\n return;\n }\n if (this.smoothBlinking) {\n this.$isSmoothBlinking = true;\n setTimeout(function () {\n if (this.$isSmoothBlinking) {\n dom.addCssClass(this.element, \"ace_smooth-blinking\");\n }\n }.bind(this));\n }\n if (dom.HAS_CSS_ANIMATION) {\n this.$startCssAnimation();\n }\n else {\n var blink = function () {\n this.timeoutId = setTimeout(function () {\n update(false);\n }, 0.6 * this.blinkInterval);\n }.bind(this);\n this.intervalId = setInterval(function () {\n update(true);\n blink();\n }, this.blinkInterval);\n blink();\n }\n };\n Cursor.prototype.getPixelPosition = function (position, onScreen) {\n if (!this.config || !this.session)\n return { left: 0, top: 0 };\n if (!position)\n position = this.session.selection.getCursor();\n var pos = this.session.documentToScreenPosition(position);\n var cursorLeft = this.$padding + (this.session.$bidiHandler.isBidiRow(pos.row, position.row)\n ? this.session.$bidiHandler.getPosLeft(pos.column)\n : pos.column * this.config.characterWidth);\n var cursorTop = (pos.row - (onScreen ? this.config.firstRowScreen : 0)) *\n this.config.lineHeight;\n return { left: cursorLeft, top: cursorTop };\n };\n Cursor.prototype.isCursorInView = function (pixelPos, config) {\n return pixelPos.top >= 0 && pixelPos.top < config.maxHeight;\n };\n Cursor.prototype.update = function (config) {\n this.config = config;\n var selections = this.session.$selectionMarkers;\n var i = 0, cursorIndex = 0;\n if (selections === undefined || selections.length === 0) {\n selections = [{ cursor: null }];\n }\n for (var i = 0, n = selections.length; i < n; i++) {\n var pixelPos = this.getPixelPosition(selections[i].cursor, true);\n if ((pixelPos.top > config.height + config.offset ||\n pixelPos.top < 0) && i > 1) {\n continue;\n }\n var element = this.cursors[cursorIndex++] || this.addCursor();\n var style = element.style;\n if (!this.drawCursor) {\n if (!this.isCursorInView(pixelPos, config)) {\n dom.setStyle(style, \"display\", \"none\");\n }\n else {\n dom.setStyle(style, \"display\", \"block\");\n dom.translate(element, pixelPos.left, pixelPos.top);\n dom.setStyle(style, \"width\", Math.round(config.characterWidth) + \"px\");\n dom.setStyle(style, \"height\", config.lineHeight + \"px\");\n }\n }\n else {\n this.drawCursor(element, pixelPos, config, selections[i], this.session);\n }\n }\n while (this.cursors.length > cursorIndex)\n this.removeCursor();\n var overwrite = this.session.getOverwrite();\n this.$setOverwrite(overwrite);\n this.$pixelPos = pixelPos;\n this.restartTimer();\n };\n Cursor.prototype.$setOverwrite = function (overwrite) {\n if (overwrite != this.overwrite) {\n this.overwrite = overwrite;\n if (overwrite)\n dom.addCssClass(this.element, \"ace_overwrite-cursors\");\n else\n dom.removeCssClass(this.element, \"ace_overwrite-cursors\");\n }\n };\n Cursor.prototype.destroy = function () {\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n };\n return Cursor;\n}());\nCursor.prototype.$padding = 0;\nCursor.prototype.drawCursor = null;\nexports.Cursor = Cursor;\n\n});\n\nace.define(\"ace/scrollbar\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar event = require(\"./lib/event\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar MAX_SCROLL_H = 0x8000;\nvar Scrollbar = /** @class */ (function () {\n function Scrollbar(parent, classSuffix) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_scrollbar ace_scrollbar\" + classSuffix;\n this.inner = dom.createElement(\"div\");\n this.inner.className = \"ace_scrollbar-inner\";\n this.inner.textContent = \"\\xa0\";\n this.element.appendChild(this.inner);\n parent.appendChild(this.element);\n this.setVisible(false);\n this.skipEvent = false;\n event.addListener(this.element, \"scroll\", this.onScroll.bind(this));\n event.addListener(this.element, \"mousedown\", event.preventDefault);\n }\n Scrollbar.prototype.setVisible = function (isVisible) {\n this.element.style.display = isVisible ? \"\" : \"none\";\n this.isVisible = isVisible;\n this.coeff = 1;\n };\n return Scrollbar;\n}());\noop.implement(Scrollbar.prototype, EventEmitter);\nvar VScrollBar = /** @class */ (function (_super) {\n __extends(VScrollBar, _super);\n function VScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-v') || this;\n _this.scrollTop = 0;\n _this.scrollHeight = 0;\n renderer.$scrollbarWidth =\n _this.width = dom.scrollbarWidth(parent.ownerDocument);\n _this.inner.style.width =\n _this.element.style.width = (_this.width || 15) + 5 + \"px\";\n _this.$minWidth = 0;\n return _this;\n }\n VScrollBar.prototype.onScroll = function () {\n if (!this.skipEvent) {\n this.scrollTop = this.element.scrollTop;\n if (this.coeff != 1) {\n var h = this.element.clientHeight / this.scrollHeight;\n this.scrollTop = this.scrollTop * (1 - h) / (this.coeff - h);\n }\n this._emit(\"scroll\", { data: this.scrollTop });\n }\n this.skipEvent = false;\n };\n VScrollBar.prototype.getWidth = function () {\n return Math.max(this.isVisible ? this.width : 0, this.$minWidth || 0);\n };\n VScrollBar.prototype.setHeight = function (height) {\n this.element.style.height = height + \"px\";\n };\n VScrollBar.prototype.setScrollHeight = function (height) {\n this.scrollHeight = height;\n if (height > MAX_SCROLL_H) {\n this.coeff = MAX_SCROLL_H / height;\n height = MAX_SCROLL_H;\n }\n else if (this.coeff != 1) {\n this.coeff = 1;\n }\n this.inner.style.height = height + \"px\";\n };\n VScrollBar.prototype.setScrollTop = function (scrollTop) {\n if (this.scrollTop != scrollTop) {\n this.skipEvent = true;\n this.scrollTop = scrollTop;\n this.element.scrollTop = scrollTop * this.coeff;\n }\n };\n return VScrollBar;\n}(Scrollbar));\nVScrollBar.prototype.setInnerHeight = VScrollBar.prototype.setScrollHeight;\nvar HScrollBar = /** @class */ (function (_super) {\n __extends(HScrollBar, _super);\n function HScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-h') || this;\n _this.scrollLeft = 0;\n _this.height = renderer.$scrollbarWidth;\n _this.inner.style.height =\n _this.element.style.height = (_this.height || 15) + 5 + \"px\";\n return _this;\n }\n HScrollBar.prototype.onScroll = function () {\n if (!this.skipEvent) {\n this.scrollLeft = this.element.scrollLeft;\n this._emit(\"scroll\", { data: this.scrollLeft });\n }\n this.skipEvent = false;\n };\n HScrollBar.prototype.getHeight = function () {\n return this.isVisible ? this.height : 0;\n };\n HScrollBar.prototype.setWidth = function (width) {\n this.element.style.width = width + \"px\";\n };\n HScrollBar.prototype.setInnerWidth = function (width) {\n this.inner.style.width = width + \"px\";\n };\n HScrollBar.prototype.setScrollWidth = function (width) {\n this.inner.style.width = width + \"px\";\n };\n HScrollBar.prototype.setScrollLeft = function (scrollLeft) {\n if (this.scrollLeft != scrollLeft) {\n this.skipEvent = true;\n this.scrollLeft = this.element.scrollLeft = scrollLeft;\n }\n };\n return HScrollBar;\n}(Scrollbar));\nexports.ScrollBar = VScrollBar; // backward compatibility\nexports.ScrollBarV = VScrollBar; // backward compatibility\nexports.ScrollBarH = HScrollBar; // backward compatibility\nexports.VScrollBar = VScrollBar;\nexports.HScrollBar = HScrollBar;\n\n});\n\nace.define(\"ace/scrollbar_custom\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar event = require(\"./lib/event\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\ndom.importCssString(\".ace_editor>.ace_sb-v div, .ace_editor>.ace_sb-h div{\\n position: absolute;\\n background: rgba(128, 128, 128, 0.6);\\n -moz-box-sizing: border-box;\\n box-sizing: border-box;\\n border: 1px solid #bbb;\\n border-radius: 2px;\\n z-index: 8;\\n}\\n.ace_editor>.ace_sb-v, .ace_editor>.ace_sb-h {\\n position: absolute;\\n z-index: 6;\\n background: none;\\n overflow: hidden!important;\\n}\\n.ace_editor>.ace_sb-v {\\n z-index: 6;\\n right: 0;\\n top: 0;\\n width: 12px;\\n}\\n.ace_editor>.ace_sb-v div {\\n z-index: 8;\\n right: 0;\\n width: 100%;\\n}\\n.ace_editor>.ace_sb-h {\\n bottom: 0;\\n left: 0;\\n height: 12px;\\n}\\n.ace_editor>.ace_sb-h div {\\n bottom: 0;\\n height: 100%;\\n}\\n.ace_editor>.ace_sb_grabbed {\\n z-index: 8;\\n background: #000;\\n}\", \"ace_scrollbar.css\", false);\nvar ScrollBar = /** @class */ (function () {\n function ScrollBar(parent, classSuffix) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_sb\" + classSuffix;\n this.inner = dom.createElement(\"div\");\n this.inner.className = \"\";\n this.element.appendChild(this.inner);\n this.VScrollWidth = 12;\n this.HScrollHeight = 12;\n parent.appendChild(this.element);\n this.setVisible(false);\n this.skipEvent = false;\n event.addMultiMouseDownListener(this.element, [500, 300, 300], this, \"onMouseDown\");\n }\n ScrollBar.prototype.setVisible = function (isVisible) {\n this.element.style.display = isVisible ? \"\" : \"none\";\n this.isVisible = isVisible;\n this.coeff = 1;\n };\n return ScrollBar;\n}());\noop.implement(ScrollBar.prototype, EventEmitter);\nvar VScrollBar = /** @class */ (function (_super) {\n __extends(VScrollBar, _super);\n function VScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-v') || this;\n _this.scrollTop = 0;\n _this.scrollHeight = 0;\n _this.parent = parent;\n _this.width = _this.VScrollWidth;\n _this.renderer = renderer;\n _this.inner.style.width = _this.element.style.width = (_this.width || 15) + \"px\";\n _this.$minWidth = 0;\n return _this;\n }\n VScrollBar.prototype.onMouseDown = function (eType, e) {\n if (eType !== \"mousedown\")\n return;\n if (event.getButton(e) !== 0 || e.detail === 2) {\n return;\n }\n if (e.target === this.inner) {\n var self = this;\n var mousePageY = e.clientY;\n var onMouseMove = function (e) {\n mousePageY = e.clientY;\n };\n var onMouseUp = function () {\n clearInterval(timerId);\n };\n var startY = e.clientY;\n var startTop = this.thumbTop;\n var onScrollInterval = function () {\n if (mousePageY === undefined)\n return;\n var scrollTop = self.scrollTopFromThumbTop(startTop + mousePageY - startY);\n if (scrollTop === self.scrollTop)\n return;\n self._emit(\"scroll\", { data: scrollTop });\n };\n event.capture(this.inner, onMouseMove, onMouseUp);\n var timerId = setInterval(onScrollInterval, 20);\n return event.preventDefault(e);\n }\n var top = e.clientY - this.element.getBoundingClientRect().top - this.thumbHeight / 2;\n this._emit(\"scroll\", { data: this.scrollTopFromThumbTop(top) });\n return event.preventDefault(e);\n };\n VScrollBar.prototype.getHeight = function () {\n return this.height;\n };\n VScrollBar.prototype.scrollTopFromThumbTop = function (thumbTop) {\n var scrollTop = thumbTop * (this.pageHeight - this.viewHeight) / (this.slideHeight - this.thumbHeight);\n scrollTop = scrollTop >> 0;\n if (scrollTop < 0) {\n scrollTop = 0;\n }\n else if (scrollTop > this.pageHeight - this.viewHeight) {\n scrollTop = this.pageHeight - this.viewHeight;\n }\n return scrollTop;\n };\n VScrollBar.prototype.getWidth = function () {\n return Math.max(this.isVisible ? this.width : 0, this.$minWidth || 0);\n };\n VScrollBar.prototype.setHeight = function (height) {\n this.height = Math.max(0, height);\n this.slideHeight = this.height;\n this.viewHeight = this.height;\n this.setScrollHeight(this.pageHeight, true);\n };\n VScrollBar.prototype.setScrollHeight = function (height, force) {\n if (this.pageHeight === height && !force)\n return;\n this.pageHeight = height;\n this.thumbHeight = this.slideHeight * this.viewHeight / this.pageHeight;\n if (this.thumbHeight > this.slideHeight)\n this.thumbHeight = this.slideHeight;\n if (this.thumbHeight < 15)\n this.thumbHeight = 15;\n this.inner.style.height = this.thumbHeight + \"px\";\n if (this.scrollTop > (this.pageHeight - this.viewHeight)) {\n this.scrollTop = (this.pageHeight - this.viewHeight);\n if (this.scrollTop < 0)\n this.scrollTop = 0;\n this._emit(\"scroll\", { data: this.scrollTop });\n }\n };\n VScrollBar.prototype.setScrollTop = function (scrollTop) {\n this.scrollTop = scrollTop;\n if (scrollTop < 0)\n scrollTop = 0;\n this.thumbTop = scrollTop * (this.slideHeight - this.thumbHeight) / (this.pageHeight - this.viewHeight);\n this.inner.style.top = this.thumbTop + \"px\";\n };\n return VScrollBar;\n}(ScrollBar));\nVScrollBar.prototype.setInnerHeight = VScrollBar.prototype.setScrollHeight;\nvar HScrollBar = /** @class */ (function (_super) {\n __extends(HScrollBar, _super);\n function HScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-h') || this;\n _this.scrollLeft = 0;\n _this.scrollWidth = 0;\n _this.height = _this.HScrollHeight;\n _this.inner.style.height = _this.element.style.height = (_this.height || 12) + \"px\";\n _this.renderer = renderer;\n return _this;\n }\n HScrollBar.prototype.onMouseDown = function (eType, e) {\n if (eType !== \"mousedown\")\n return;\n if (event.getButton(e) !== 0 || e.detail === 2) {\n return;\n }\n if (e.target === this.inner) {\n var self = this;\n var mousePageX = e.clientX;\n var onMouseMove = function (e) {\n mousePageX = e.clientX;\n };\n var onMouseUp = function () {\n clearInterval(timerId);\n };\n var startX = e.clientX;\n var startLeft = this.thumbLeft;\n var onScrollInterval = function () {\n if (mousePageX === undefined)\n return;\n var scrollLeft = self.scrollLeftFromThumbLeft(startLeft + mousePageX - startX);\n if (scrollLeft === self.scrollLeft)\n return;\n self._emit(\"scroll\", { data: scrollLeft });\n };\n event.capture(this.inner, onMouseMove, onMouseUp);\n var timerId = setInterval(onScrollInterval, 20);\n return event.preventDefault(e);\n }\n var left = e.clientX - this.element.getBoundingClientRect().left - this.thumbWidth / 2;\n this._emit(\"scroll\", { data: this.scrollLeftFromThumbLeft(left) });\n return event.preventDefault(e);\n };\n HScrollBar.prototype.getHeight = function () {\n return this.isVisible ? this.height : 0;\n };\n HScrollBar.prototype.scrollLeftFromThumbLeft = function (thumbLeft) {\n var scrollLeft = thumbLeft * (this.pageWidth - this.viewWidth) / (this.slideWidth - this.thumbWidth);\n scrollLeft = scrollLeft >> 0;\n if (scrollLeft < 0) {\n scrollLeft = 0;\n }\n else if (scrollLeft > this.pageWidth - this.viewWidth) {\n scrollLeft = this.pageWidth - this.viewWidth;\n }\n return scrollLeft;\n };\n HScrollBar.prototype.setWidth = function (width) {\n this.width = Math.max(0, width);\n this.element.style.width = this.width + \"px\";\n this.slideWidth = this.width;\n this.viewWidth = this.width;\n this.setScrollWidth(this.pageWidth, true);\n };\n HScrollBar.prototype.setScrollWidth = function (width, force) {\n if (this.pageWidth === width && !force)\n return;\n this.pageWidth = width;\n this.thumbWidth = this.slideWidth * this.viewWidth / this.pageWidth;\n if (this.thumbWidth > this.slideWidth)\n this.thumbWidth = this.slideWidth;\n if (this.thumbWidth < 15)\n this.thumbWidth = 15;\n this.inner.style.width = this.thumbWidth + \"px\";\n if (this.scrollLeft > (this.pageWidth - this.viewWidth)) {\n this.scrollLeft = (this.pageWidth - this.viewWidth);\n if (this.scrollLeft < 0)\n this.scrollLeft = 0;\n this._emit(\"scroll\", { data: this.scrollLeft });\n }\n };\n HScrollBar.prototype.setScrollLeft = function (scrollLeft) {\n this.scrollLeft = scrollLeft;\n if (scrollLeft < 0)\n scrollLeft = 0;\n this.thumbLeft = scrollLeft * (this.slideWidth - this.thumbWidth) / (this.pageWidth - this.viewWidth);\n this.inner.style.left = (this.thumbLeft) + \"px\";\n };\n return HScrollBar;\n}(ScrollBar));\nHScrollBar.prototype.setInnerWidth = HScrollBar.prototype.setScrollWidth;\nexports.ScrollBar = VScrollBar; // backward compatibility\nexports.ScrollBarV = VScrollBar; // backward compatibility\nexports.ScrollBarH = HScrollBar; // backward compatibility\nexports.VScrollBar = VScrollBar;\nexports.HScrollBar = HScrollBar;\n\n});\n\nace.define(\"ace/renderloop\",[\"require\",\"exports\",\"module\",\"ace/lib/event\"], function(require, exports, module){\"use strict\";\nvar event = require(\"./lib/event\");\nvar RenderLoop = /** @class */ (function () {\n function RenderLoop(onRender, win) {\n this.onRender = onRender;\n this.pending = false;\n this.changes = 0;\n this.$recursionLimit = 2;\n this.window = win || window;\n var _self = this;\n this._flush = function (ts) {\n _self.pending = false;\n var changes = _self.changes;\n if (changes) {\n event.blockIdle(100);\n _self.changes = 0;\n _self.onRender(changes);\n }\n if (_self.changes) {\n if (_self.$recursionLimit-- < 0)\n return;\n _self.schedule();\n }\n else {\n _self.$recursionLimit = 2;\n }\n };\n }\n RenderLoop.prototype.schedule = function (change) {\n this.changes = this.changes | change;\n if (this.changes && !this.pending) {\n event.nextFrame(this._flush);\n this.pending = true;\n }\n };\n RenderLoop.prototype.clear = function (change) {\n var changes = this.changes;\n this.changes = 0;\n return changes;\n };\n return RenderLoop;\n}());\nexports.RenderLoop = RenderLoop;\n\n});\n\nace.define(\"ace/layer/font_metrics\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar CHAR_COUNT = 512;\nvar USE_OBSERVER = typeof ResizeObserver == \"function\";\nvar L = 200;\nvar FontMetrics = /** @class */ (function () {\n function FontMetrics(parentEl) {\n this.el = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.el.style, true);\n this.$main = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$main.style);\n this.$measureNode = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$measureNode.style);\n this.el.appendChild(this.$main);\n this.el.appendChild(this.$measureNode);\n parentEl.appendChild(this.el);\n this.$measureNode.textContent = lang.stringRepeat(\"X\", CHAR_COUNT);\n this.$characterSize = { width: 0, height: 0 };\n if (USE_OBSERVER)\n this.$addObserver();\n else\n this.checkForSizeChanges();\n }\n FontMetrics.prototype.$setMeasureNodeStyles = function (style, isRoot) {\n style.width = style.height = \"auto\";\n style.left = style.top = \"0px\";\n style.visibility = \"hidden\";\n style.position = \"absolute\";\n style.whiteSpace = \"pre\";\n if (useragent.isIE < 8) {\n style[\"font-family\"] = \"inherit\";\n }\n else {\n style.font = \"inherit\";\n }\n style.overflow = isRoot ? \"hidden\" : \"visible\";\n };\n FontMetrics.prototype.checkForSizeChanges = function (size) {\n if (size === undefined)\n size = this.$measureSizes();\n if (size && (this.$characterSize.width !== size.width || this.$characterSize.height !== size.height)) {\n this.$measureNode.style.fontWeight = \"bold\";\n var boldSize = this.$measureSizes();\n this.$measureNode.style.fontWeight = \"\";\n this.$characterSize = size;\n this.charSizes = Object.create(null);\n this.allowBoldFonts = boldSize && boldSize.width === size.width && boldSize.height === size.height;\n this._emit(\"changeCharacterSize\", { data: size });\n }\n };\n FontMetrics.prototype.$addObserver = function () {\n var self = this;\n this.$observer = new window.ResizeObserver(function (e) {\n self.checkForSizeChanges();\n });\n this.$observer.observe(this.$measureNode);\n };\n FontMetrics.prototype.$pollSizeChanges = function () {\n if (this.$pollSizeChangesTimer || this.$observer)\n return this.$pollSizeChangesTimer;\n var self = this;\n return this.$pollSizeChangesTimer = event.onIdle(function cb() {\n self.checkForSizeChanges();\n event.onIdle(cb, 500);\n }, 500);\n };\n FontMetrics.prototype.setPolling = function (val) {\n if (val) {\n this.$pollSizeChanges();\n }\n else if (this.$pollSizeChangesTimer) {\n clearInterval(this.$pollSizeChangesTimer);\n this.$pollSizeChangesTimer = 0;\n }\n };\n FontMetrics.prototype.$measureSizes = function (node) {\n var size = {\n height: (node || this.$measureNode).clientHeight,\n width: (node || this.$measureNode).clientWidth / CHAR_COUNT\n };\n if (size.width === 0 || size.height === 0)\n return null;\n return size;\n };\n FontMetrics.prototype.$measureCharWidth = function (ch) {\n this.$main.textContent = lang.stringRepeat(ch, CHAR_COUNT);\n var rect = this.$main.getBoundingClientRect();\n return rect.width / CHAR_COUNT;\n };\n FontMetrics.prototype.getCharacterWidth = function (ch) {\n var w = this.charSizes[ch];\n if (w === undefined) {\n w = this.charSizes[ch] = this.$measureCharWidth(ch) / this.$characterSize.width;\n }\n return w;\n };\n FontMetrics.prototype.destroy = function () {\n clearInterval(this.$pollSizeChangesTimer);\n if (this.$observer)\n this.$observer.disconnect();\n if (this.el && this.el.parentNode)\n this.el.parentNode.removeChild(this.el);\n };\n FontMetrics.prototype.$getZoom = function (element) {\n if (!element || !element.parentElement)\n return 1;\n return (window.getComputedStyle(element).zoom || 1) * this.$getZoom(element.parentElement);\n };\n FontMetrics.prototype.$initTransformMeasureNodes = function () {\n var t = function (t, l) {\n return [\"div\", {\n style: \"position: absolute;top:\" + t + \"px;left:\" + l + \"px;\"\n }];\n };\n this.els = dom.buildDom([t(0, 0), t(L, 0), t(0, L), t(L, L)], this.el);\n };\n FontMetrics.prototype.transformCoordinates = function (clientPos, elPos) {\n if (clientPos) {\n var zoom = this.$getZoom(this.el);\n clientPos = mul(1 / zoom, clientPos);\n }\n function solve(l1, l2, r) {\n var det = l1[1] * l2[0] - l1[0] * l2[1];\n return [\n (-l2[1] * r[0] + l2[0] * r[1]) / det,\n (+l1[1] * r[0] - l1[0] * r[1]) / det\n ];\n }\n function sub(a, b) { return [a[0] - b[0], a[1] - b[1]]; }\n function add(a, b) { return [a[0] + b[0], a[1] + b[1]]; }\n function mul(a, b) { return [a * b[0], a * b[1]]; }\n if (!this.els)\n this.$initTransformMeasureNodes();\n function p(el) {\n var r = el.getBoundingClientRect();\n return [r.left, r.top];\n }\n var a = p(this.els[0]);\n var b = p(this.els[1]);\n var c = p(this.els[2]);\n var d = p(this.els[3]);\n var h = solve(sub(d, b), sub(d, c), sub(add(b, c), add(d, a)));\n var m1 = mul(1 + h[0], sub(b, a));\n var m2 = mul(1 + h[1], sub(c, a));\n if (elPos) {\n var x = elPos;\n var k = h[0] * x[0] / L + h[1] * x[1] / L + 1;\n var ut = add(mul(x[0], m1), mul(x[1], m2));\n return add(mul(1 / k / L, ut), a);\n }\n var u = sub(clientPos, a);\n var f = solve(sub(m1, mul(h[0], u)), sub(m2, mul(h[1], u)), u);\n return mul(L, f);\n };\n return FontMetrics;\n}());\nFontMetrics.prototype.$characterSize = { width: 0, height: 0 };\noop.implement(FontMetrics.prototype, EventEmitter);\nexports.FontMetrics = FontMetrics;\n\n});\n\nace.define(\"ace/css/editor-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){/*\nstyles = []\nfor (var i = 1; i < 16; i++) {\n styles.push(\".ace_br\" + i + \"{\" + (\n [\"top-left\", \"top-right\", \"bottom-right\", \"bottom-left\"]\n ).map(function(x, j) {\n return i & (1< .ace_line, .ace_text-layer > .ace_line_group {\\n contain: style size layout;\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n}\\n\\n.ace_hidpi .ace_text-layer,\\n.ace_hidpi .ace_gutter-layer,\\n.ace_hidpi .ace_content,\\n.ace_hidpi .ace_gutter {\\n contain: strict;\\n}\\n.ace_hidpi .ace_text-layer > .ace_line, \\n.ace_hidpi .ace_text-layer > .ace_line_group {\\n contain: strict;\\n}\\n\\n.ace_cjk {\\n display: inline-block;\\n text-align: center;\\n}\\n\\n.ace_cursor-layer {\\n z-index: 4;\\n}\\n\\n.ace_cursor {\\n z-index: 4;\\n position: absolute;\\n box-sizing: border-box;\\n border-left: 2px solid;\\n /* workaround for smooth cursor repaintng whole screen in chrome */\\n transform: translatez(0);\\n}\\n\\n.ace_multiselect .ace_cursor {\\n border-left-width: 1px;\\n}\\n\\n.ace_slim-cursors .ace_cursor {\\n border-left-width: 1px;\\n}\\n\\n.ace_overwrite-cursors .ace_cursor {\\n border-left-width: 0;\\n border-bottom: 1px solid;\\n}\\n\\n.ace_hidden-cursors .ace_cursor {\\n opacity: 0.2;\\n}\\n\\n.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor {\\n opacity: 0;\\n}\\n\\n.ace_smooth-blinking .ace_cursor {\\n transition: opacity 0.18s;\\n}\\n\\n.ace_animate-blinking .ace_cursor {\\n animation-duration: 1000ms;\\n animation-timing-function: step-end;\\n animation-name: blink-ace-animate;\\n animation-iteration-count: infinite;\\n}\\n\\n.ace_animate-blinking.ace_smooth-blinking .ace_cursor {\\n animation-duration: 1000ms;\\n animation-timing-function: ease-in-out;\\n animation-name: blink-ace-animate-smooth;\\n}\\n \\n@keyframes blink-ace-animate {\\n from, to { opacity: 1; }\\n 60% { opacity: 0; }\\n}\\n\\n@keyframes blink-ace-animate-smooth {\\n from, to { opacity: 1; }\\n 45% { opacity: 1; }\\n 60% { opacity: 0; }\\n 85% { opacity: 0; }\\n}\\n\\n.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\\n position: absolute;\\n z-index: 3;\\n}\\n\\n.ace_marker-layer .ace_selection {\\n position: absolute;\\n z-index: 5;\\n}\\n\\n.ace_marker-layer .ace_bracket {\\n position: absolute;\\n z-index: 6;\\n}\\n\\n.ace_marker-layer .ace_error_bracket {\\n position: absolute;\\n border-bottom: 1px solid #DE5555;\\n border-radius: 0;\\n}\\n\\n.ace_marker-layer .ace_active-line {\\n position: absolute;\\n z-index: 2;\\n}\\n\\n.ace_marker-layer .ace_selected-word {\\n position: absolute;\\n z-index: 4;\\n box-sizing: border-box;\\n}\\n\\n.ace_line .ace_fold {\\n box-sizing: border-box;\\n\\n display: inline-block;\\n height: 11px;\\n margin-top: -2px;\\n vertical-align: middle;\\n\\n background-image:\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=\\\");\\n background-repeat: no-repeat, repeat-x;\\n background-position: center center, top left;\\n color: transparent;\\n\\n border: 1px solid black;\\n border-radius: 2px;\\n\\n cursor: pointer;\\n pointer-events: auto;\\n}\\n\\n.ace_dark .ace_fold {\\n}\\n\\n.ace_fold:hover{\\n background-image:\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC\\\");\\n}\\n\\n.ace_tooltip {\\n background-color: #f5f5f5;\\n border: 1px solid gray;\\n border-radius: 1px;\\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\\n color: black;\\n max-width: 100%;\\n padding: 3px 4px;\\n position: fixed;\\n z-index: 999999;\\n box-sizing: border-box;\\n cursor: default;\\n white-space: pre-wrap;\\n word-wrap: break-word;\\n line-height: normal;\\n font-style: normal;\\n font-weight: normal;\\n letter-spacing: normal;\\n pointer-events: none;\\n overflow: auto;\\n max-width: min(60em, 66vw);\\n}\\n.ace_tooltip pre {\\n white-space: pre-wrap;\\n}\\n\\n.ace_tooltip.ace_dark {\\n background-color: #636363;\\n color: #fff;\\n}\\n\\n.ace_tooltip:focus {\\n outline: 1px solid #5E9ED6;\\n}\\n\\n.ace_icon {\\n display: inline-block;\\n width: 18px;\\n vertical-align: top;\\n}\\n\\n.ace_icon_svg {\\n display: inline-block;\\n width: 12px;\\n vertical-align: top;\\n -webkit-mask-repeat: no-repeat;\\n -webkit-mask-size: 12px;\\n -webkit-mask-position: center;\\n}\\n\\n.ace_folding-enabled > .ace_gutter-cell, .ace_folding-enabled > .ace_gutter-cell_svg-icons {\\n padding-right: 13px;\\n}\\n\\n.ace_fold-widget {\\n box-sizing: border-box;\\n\\n margin: 0 -12px 0 1px;\\n display: none;\\n width: 11px;\\n vertical-align: top;\\n\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==\\\");\\n background-repeat: no-repeat;\\n background-position: center;\\n\\n border-radius: 3px;\\n \\n border: 1px solid transparent;\\n cursor: pointer;\\n}\\n\\n.ace_folding-enabled .ace_fold-widget {\\n display: inline-block; \\n}\\n\\n.ace_fold-widget.ace_end {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==\\\");\\n}\\n\\n.ace_fold-widget.ace_closed {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==\\\");\\n}\\n\\n.ace_fold-widget:hover {\\n border: 1px solid rgba(0, 0, 0, 0.3);\\n background-color: rgba(255, 255, 255, 0.2);\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\\n}\\n\\n.ace_fold-widget:active {\\n border: 1px solid rgba(0, 0, 0, 0.4);\\n background-color: rgba(0, 0, 0, 0.05);\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\\n}\\n/**\\n * Dark version for fold widgets\\n */\\n.ace_dark .ace_fold-widget {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC\\\");\\n}\\n.ace_dark .ace_fold-widget.ace_end {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==\\\");\\n}\\n.ace_dark .ace_fold-widget.ace_closed {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==\\\");\\n}\\n.ace_dark .ace_fold-widget:hover {\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.ace_dark .ace_fold-widget:active {\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\n}\\n\\n.ace_inline_button {\\n border: 1px solid lightgray;\\n display: inline-block;\\n margin: -1px 8px;\\n padding: 0 5px;\\n pointer-events: auto;\\n cursor: pointer;\\n}\\n.ace_inline_button:hover {\\n border-color: gray;\\n background: rgba(200,200,200,0.2);\\n display: inline-block;\\n pointer-events: auto;\\n}\\n\\n.ace_fold-widget.ace_invalid {\\n background-color: #FFB4B4;\\n border-color: #DE5555;\\n}\\n\\n.ace_fade-fold-widgets .ace_fold-widget {\\n transition: opacity 0.4s ease 0.05s;\\n opacity: 0;\\n}\\n\\n.ace_fade-fold-widgets:hover .ace_fold-widget {\\n transition: opacity 0.05s ease 0.05s;\\n opacity:1;\\n}\\n\\n.ace_underline {\\n text-decoration: underline;\\n}\\n\\n.ace_bold {\\n font-weight: bold;\\n}\\n\\n.ace_nobold .ace_bold {\\n font-weight: normal;\\n}\\n\\n.ace_italic {\\n font-style: italic;\\n}\\n\\n\\n.ace_error-marker {\\n background-color: rgba(255, 0, 0,0.2);\\n position: absolute;\\n z-index: 9;\\n}\\n\\n.ace_highlight-marker {\\n background-color: rgba(255, 255, 0,0.2);\\n position: absolute;\\n z-index: 8;\\n}\\n\\n.ace_mobile-menu {\\n position: absolute;\\n line-height: 1.5;\\n border-radius: 4px;\\n -ms-user-select: none;\\n -moz-user-select: none;\\n -webkit-user-select: none;\\n user-select: none;\\n background: white;\\n box-shadow: 1px 3px 2px grey;\\n border: 1px solid #dcdcdc;\\n color: black;\\n}\\n.ace_dark > .ace_mobile-menu {\\n background: #333;\\n color: #ccc;\\n box-shadow: 1px 3px 2px grey;\\n border: 1px solid #444;\\n\\n}\\n.ace_mobile-button {\\n padding: 2px;\\n cursor: pointer;\\n overflow: hidden;\\n}\\n.ace_mobile-button:hover {\\n background-color: #eee;\\n opacity:1;\\n}\\n.ace_mobile-button:active {\\n background-color: #ddd;\\n}\\n\\n.ace_placeholder {\\n font-family: arial;\\n transform: scale(0.9);\\n transform-origin: left;\\n white-space: pre;\\n opacity: 0.7;\\n margin: 0 10px;\\n}\\n\\n.ace_ghost_text {\\n opacity: 0.5;\\n font-style: italic;\\n white-space: pre;\\n}\\n\\n.ace_screenreader-only {\\n position:absolute;\\n left:-10000px;\\n top:auto;\\n width:1px;\\n height:1px;\\n overflow:hidden;\\n}\";\n\n});\n\nace.define(\"ace/layer/decorators\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar oop = require(\"../lib/oop\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar Decorator = /** @class */ (function () {\n function Decorator(parent, renderer) {\n this.canvas = dom.createElement(\"canvas\");\n this.renderer = renderer;\n this.pixelRatio = 1;\n this.maxHeight = renderer.layerConfig.maxHeight;\n this.lineHeight = renderer.layerConfig.lineHeight;\n this.canvasHeight = parent.parent.scrollHeight;\n this.heightRatio = this.canvasHeight / this.maxHeight;\n this.canvasWidth = parent.width;\n this.minDecorationHeight = (2 * this.pixelRatio) | 0;\n this.halfMinDecorationHeight = (this.minDecorationHeight / 2) | 0;\n this.canvas.width = this.canvasWidth;\n this.canvas.height = this.canvasHeight;\n this.canvas.style.top = 0 + \"px\";\n this.canvas.style.right = 0 + \"px\";\n this.canvas.style.zIndex = 7 + \"px\";\n this.canvas.style.position = \"absolute\";\n this.colors = {};\n this.colors.dark = {\n \"error\": \"rgba(255, 18, 18, 1)\",\n \"warning\": \"rgba(18, 136, 18, 1)\",\n \"info\": \"rgba(18, 18, 136, 1)\"\n };\n this.colors.light = {\n \"error\": \"rgb(255,51,51)\",\n \"warning\": \"rgb(32,133,72)\",\n \"info\": \"rgb(35,68,138)\"\n };\n parent.element.appendChild(this.canvas);\n }\n Decorator.prototype.$updateDecorators = function (config) {\n var colors = (this.renderer.theme.isDark === true) ? this.colors.dark : this.colors.light;\n if (config) {\n this.maxHeight = config.maxHeight;\n this.lineHeight = config.lineHeight;\n this.canvasHeight = config.height;\n var allLineHeight = (config.lastRow + 1) * this.lineHeight;\n if (allLineHeight < this.canvasHeight) {\n this.heightRatio = 1;\n }\n else {\n this.heightRatio = this.canvasHeight / this.maxHeight;\n }\n }\n var ctx = this.canvas.getContext(\"2d\");\n function compare(a, b) {\n if (a.priority < b.priority)\n return -1;\n if (a.priority > b.priority)\n return 1;\n return 0;\n }\n var annotations = this.renderer.session.$annotations;\n ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n if (annotations) {\n var priorities = {\n \"info\": 1,\n \"warning\": 2,\n \"error\": 3\n };\n annotations.forEach(function (item) {\n item.priority = priorities[item.type] || null;\n });\n annotations = annotations.sort(compare);\n var foldData = this.renderer.session.$foldData;\n for (var i = 0; i < annotations.length; i++) {\n var row = annotations[i].row;\n var compensateFold = this.compensateFoldRows(row, foldData);\n var currentY = Math.round((row - compensateFold) * this.lineHeight * this.heightRatio);\n var y1 = Math.round(((row - compensateFold) * this.lineHeight * this.heightRatio));\n var y2 = Math.round((((row - compensateFold) * this.lineHeight + this.lineHeight) * this.heightRatio));\n var height = y2 - y1;\n if (height < this.minDecorationHeight) {\n var yCenter = ((y1 + y2) / 2) | 0;\n if (yCenter < this.halfMinDecorationHeight) {\n yCenter = this.halfMinDecorationHeight;\n }\n else if (yCenter + this.halfMinDecorationHeight > this.canvasHeight) {\n yCenter = this.canvasHeight - this.halfMinDecorationHeight;\n }\n y1 = Math.round(yCenter - this.halfMinDecorationHeight);\n y2 = Math.round(yCenter + this.halfMinDecorationHeight);\n }\n ctx.fillStyle = colors[annotations[i].type] || null;\n ctx.fillRect(0, currentY, this.canvasWidth, y2 - y1);\n }\n }\n var cursor = this.renderer.session.selection.getCursor();\n if (cursor) {\n var compensateFold = this.compensateFoldRows(cursor.row, foldData);\n var currentY = Math.round((cursor.row - compensateFold) * this.lineHeight * this.heightRatio);\n ctx.fillStyle = \"rgba(0, 0, 0, 0.5)\";\n ctx.fillRect(0, currentY, this.canvasWidth, 2);\n }\n };\n Decorator.prototype.compensateFoldRows = function (row, foldData) {\n var compensateFold = 0;\n if (foldData && foldData.length > 0) {\n for (var j = 0; j < foldData.length; j++) {\n if (row > foldData[j].start.row && row < foldData[j].end.row) {\n compensateFold += row - foldData[j].start.row;\n }\n else if (row >= foldData[j].end.row) {\n compensateFold += foldData[j].end.row - foldData[j].start.row;\n }\n }\n }\n return compensateFold;\n };\n return Decorator;\n}());\noop.implement(Decorator.prototype, EventEmitter);\nexports.Decorator = Decorator;\n\n});\n\nace.define(\"ace/virtual_renderer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/config\",\"ace/layer/gutter\",\"ace/layer/marker\",\"ace/layer/text\",\"ace/layer/cursor\",\"ace/scrollbar\",\"ace/scrollbar\",\"ace/scrollbar_custom\",\"ace/scrollbar_custom\",\"ace/renderloop\",\"ace/layer/font_metrics\",\"ace/lib/event_emitter\",\"ace/css/editor-css\",\"ace/layer/decorators\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar lang = require(\"./lib/lang\");\nvar config = require(\"./config\");\nvar GutterLayer = require(\"./layer/gutter\").Gutter;\nvar MarkerLayer = require(\"./layer/marker\").Marker;\nvar TextLayer = require(\"./layer/text\").Text;\nvar CursorLayer = require(\"./layer/cursor\").Cursor;\nvar HScrollBar = require(\"./scrollbar\").HScrollBar;\nvar VScrollBar = require(\"./scrollbar\").VScrollBar;\nvar HScrollBarCustom = require(\"./scrollbar_custom\").HScrollBar;\nvar VScrollBarCustom = require(\"./scrollbar_custom\").VScrollBar;\nvar RenderLoop = require(\"./renderloop\").RenderLoop;\nvar FontMetrics = require(\"./layer/font_metrics\").FontMetrics;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar editorCss = require(\"./css/editor-css\");\nvar Decorator = require(\"./layer/decorators\").Decorator;\nvar useragent = require(\"./lib/useragent\");\ndom.importCssString(editorCss, \"ace_editor.css\", false);\nvar VirtualRenderer = /** @class */ (function () {\n function VirtualRenderer(container, theme) {\n var _self = this;\n this.container = container || dom.createElement(\"div\");\n dom.addCssClass(this.container, \"ace_editor\");\n if (dom.HI_DPI)\n dom.addCssClass(this.container, \"ace_hidpi\");\n this.setTheme(theme);\n if (config.get(\"useStrictCSP\") == null)\n config.set(\"useStrictCSP\", false);\n this.$gutter = dom.createElement(\"div\");\n this.$gutter.className = \"ace_gutter\";\n this.container.appendChild(this.$gutter);\n this.$gutter.setAttribute(\"aria-hidden\", true);\n this.scroller = dom.createElement(\"div\");\n this.scroller.className = \"ace_scroller\";\n this.container.appendChild(this.scroller);\n this.content = dom.createElement(\"div\");\n this.content.className = \"ace_content\";\n this.scroller.appendChild(this.content);\n this.$gutterLayer = new GutterLayer(this.$gutter);\n this.$gutterLayer.on(\"changeGutterWidth\", this.onGutterResize.bind(this));\n this.$markerBack = new MarkerLayer(this.content);\n var textLayer = this.$textLayer = new TextLayer(this.content);\n this.canvas = textLayer.element;\n this.$markerFront = new MarkerLayer(this.content);\n this.$cursorLayer = new CursorLayer(this.content);\n this.$horizScroll = false;\n this.$vScroll = false;\n this.scrollBar =\n this.scrollBarV = new VScrollBar(this.container, this);\n this.scrollBarH = new HScrollBar(this.container, this);\n this.scrollBarV.on(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.on(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n this.scrollTop = 0;\n this.scrollLeft = 0;\n this.cursorPos = {\n row: 0,\n column: 0\n };\n this.$fontMetrics = new FontMetrics(this.container);\n this.$textLayer.$setFontMetrics(this.$fontMetrics);\n this.$textLayer.on(\"changeCharacterSize\", function (e) {\n _self.updateCharacterSize();\n _self.onResize(true, _self.gutterWidth, _self.$size.width, _self.$size.height);\n _self._signal(\"changeCharacterSize\", e);\n });\n this.$size = {\n width: 0,\n height: 0,\n scrollerHeight: 0,\n scrollerWidth: 0,\n $dirty: true\n };\n this.layerConfig = {\n width: 1,\n padding: 0,\n firstRow: 0,\n firstRowScreen: 0,\n lastRow: 0,\n lineHeight: 0,\n characterWidth: 0,\n minHeight: 1,\n maxHeight: 1,\n offset: 0,\n height: 1,\n gutterOffset: 1\n };\n this.scrollMargin = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n v: 0,\n h: 0\n };\n this.margin = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n v: 0,\n h: 0\n };\n this.$keepTextAreaAtCursor = !useragent.isIOS;\n this.$loop = new RenderLoop(this.$renderChanges.bind(this), this.container.ownerDocument.defaultView);\n this.$loop.schedule(this.CHANGE_FULL);\n this.updateCharacterSize();\n this.setPadding(4);\n this.$addResizeObserver();\n config.resetOptions(this);\n config._signal(\"renderer\", this);\n }\n VirtualRenderer.prototype.updateCharacterSize = function () {\n if (this.$textLayer.allowBoldFonts != this.$allowBoldFonts) {\n this.$allowBoldFonts = this.$textLayer.allowBoldFonts;\n this.setStyle(\"ace_nobold\", !this.$allowBoldFonts);\n }\n this.layerConfig.characterWidth =\n this.characterWidth = this.$textLayer.getCharacterWidth();\n this.layerConfig.lineHeight =\n this.lineHeight = this.$textLayer.getLineHeight();\n this.$updatePrintMargin();\n dom.setStyle(this.scroller.style, \"line-height\", this.lineHeight + \"px\");\n };\n VirtualRenderer.prototype.setSession = function (session) {\n if (this.session)\n this.session.doc.off(\"changeNewLineMode\", this.onChangeNewLineMode);\n this.session = session;\n if (session && this.scrollMargin.top && session.getScrollTop() <= 0)\n session.setScrollTop(-this.scrollMargin.top);\n this.$cursorLayer.setSession(session);\n this.$markerBack.setSession(session);\n this.$markerFront.setSession(session);\n this.$gutterLayer.setSession(session);\n this.$textLayer.setSession(session);\n if (!session)\n return;\n this.$loop.schedule(this.CHANGE_FULL);\n this.session.$setFontMetrics(this.$fontMetrics);\n this.scrollBarH.scrollLeft = this.scrollBarV.scrollTop = null;\n this.onChangeNewLineMode = this.onChangeNewLineMode.bind(this);\n this.onChangeNewLineMode();\n this.session.doc.on(\"changeNewLineMode\", this.onChangeNewLineMode);\n };\n VirtualRenderer.prototype.updateLines = function (firstRow, lastRow, force) {\n if (lastRow === undefined)\n lastRow = Infinity;\n if (!this.$changedLines) {\n this.$changedLines = {\n firstRow: firstRow,\n lastRow: lastRow\n };\n }\n else {\n if (this.$changedLines.firstRow > firstRow)\n this.$changedLines.firstRow = firstRow;\n if (this.$changedLines.lastRow < lastRow)\n this.$changedLines.lastRow = lastRow;\n }\n if (this.$changedLines.lastRow < this.layerConfig.firstRow) {\n if (force)\n this.$changedLines.lastRow = this.layerConfig.lastRow;\n else\n return;\n }\n if (this.$changedLines.firstRow > this.layerConfig.lastRow)\n return;\n this.$loop.schedule(this.CHANGE_LINES);\n };\n VirtualRenderer.prototype.onChangeNewLineMode = function () {\n this.$loop.schedule(this.CHANGE_TEXT);\n this.$textLayer.$updateEolChar();\n this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR);\n };\n VirtualRenderer.prototype.onChangeTabSize = function () {\n this.$loop.schedule(this.CHANGE_TEXT | this.CHANGE_MARKER);\n this.$textLayer.onChangeTabSize();\n };\n VirtualRenderer.prototype.updateText = function () {\n this.$loop.schedule(this.CHANGE_TEXT);\n };\n VirtualRenderer.prototype.updateFull = function (force) {\n if (force)\n this.$renderChanges(this.CHANGE_FULL, true);\n else\n this.$loop.schedule(this.CHANGE_FULL);\n };\n VirtualRenderer.prototype.updateFontSize = function () {\n this.$textLayer.checkForSizeChanges();\n };\n VirtualRenderer.prototype.$updateSizeAsync = function () {\n if (this.$loop.pending)\n this.$size.$dirty = true;\n else\n this.onResize();\n };\n VirtualRenderer.prototype.onResize = function (force, gutterWidth, width, height) {\n if (this.resizing > 2)\n return;\n else if (this.resizing > 0)\n this.resizing++;\n else\n this.resizing = force ? 1 : 0;\n var el = this.container;\n if (!height)\n height = el.clientHeight || el.scrollHeight;\n if (!width)\n width = el.clientWidth || el.scrollWidth;\n var changes = this.$updateCachedSize(force, gutterWidth, width, height);\n if (this.$resizeTimer)\n this.$resizeTimer.cancel();\n if (!this.$size.scrollerHeight || (!width && !height))\n return this.resizing = 0;\n if (force)\n this.$gutterLayer.$padding = null;\n if (force)\n this.$renderChanges(changes | this.$changes, true);\n else\n this.$loop.schedule(changes | this.$changes);\n if (this.resizing)\n this.resizing = 0;\n this.scrollBarH.scrollLeft = this.scrollBarV.scrollTop = null;\n if (this.$customScrollbar) {\n this.$updateCustomScrollbar(true);\n }\n };\n VirtualRenderer.prototype.$updateCachedSize = function (force, gutterWidth, width, height) {\n height -= (this.$extraHeight || 0);\n var changes = 0;\n var size = this.$size;\n var oldSize = {\n width: size.width,\n height: size.height,\n scrollerHeight: size.scrollerHeight,\n scrollerWidth: size.scrollerWidth\n };\n if (height && (force || size.height != height)) {\n size.height = height;\n changes |= this.CHANGE_SIZE;\n size.scrollerHeight = size.height;\n if (this.$horizScroll)\n size.scrollerHeight -= this.scrollBarH.getHeight();\n this.scrollBarV.setHeight(size.scrollerHeight);\n this.scrollBarV.element.style.bottom = this.scrollBarH.getHeight() + \"px\";\n changes = changes | this.CHANGE_SCROLL;\n }\n if (width && (force || size.width != width)) {\n changes |= this.CHANGE_SIZE;\n size.width = width;\n if (gutterWidth == null)\n gutterWidth = this.$showGutter ? this.$gutter.offsetWidth : 0;\n this.gutterWidth = gutterWidth;\n dom.setStyle(this.scrollBarH.element.style, \"left\", gutterWidth + \"px\");\n dom.setStyle(this.scroller.style, \"left\", gutterWidth + this.margin.left + \"px\");\n size.scrollerWidth = Math.max(0, width - gutterWidth - this.scrollBarV.getWidth() - this.margin.h);\n dom.setStyle(this.$gutter.style, \"left\", this.margin.left + \"px\");\n var right = this.scrollBarV.getWidth() + \"px\";\n dom.setStyle(this.scrollBarH.element.style, \"right\", right);\n dom.setStyle(this.scroller.style, \"right\", right);\n dom.setStyle(this.scroller.style, \"bottom\", this.scrollBarH.getHeight());\n this.scrollBarH.setWidth(size.scrollerWidth);\n if (this.session && this.session.getUseWrapMode() && this.adjustWrapLimit() || force) {\n changes |= this.CHANGE_FULL;\n }\n }\n size.$dirty = !width || !height;\n if (changes)\n this._signal(\"resize\", oldSize);\n return changes;\n };\n VirtualRenderer.prototype.onGutterResize = function (width) {\n var gutterWidth = this.$showGutter ? width : 0;\n if (gutterWidth != this.gutterWidth)\n this.$changes |= this.$updateCachedSize(true, gutterWidth, this.$size.width, this.$size.height);\n if (this.session.getUseWrapMode() && this.adjustWrapLimit()) {\n this.$loop.schedule(this.CHANGE_FULL);\n }\n else if (this.$size.$dirty) {\n this.$loop.schedule(this.CHANGE_FULL);\n }\n else {\n this.$computeLayerConfig();\n }\n };\n VirtualRenderer.prototype.adjustWrapLimit = function () {\n var availableWidth = this.$size.scrollerWidth - this.$padding * 2;\n var limit = Math.floor(availableWidth / this.characterWidth);\n return this.session.adjustWrapLimit(limit, this.$showPrintMargin && this.$printMarginColumn);\n };\n VirtualRenderer.prototype.setAnimatedScroll = function (shouldAnimate) {\n this.setOption(\"animatedScroll\", shouldAnimate);\n };\n VirtualRenderer.prototype.getAnimatedScroll = function () {\n return this.$animatedScroll;\n };\n VirtualRenderer.prototype.setShowInvisibles = function (showInvisibles) {\n this.setOption(\"showInvisibles\", showInvisibles);\n this.session.$bidiHandler.setShowInvisibles(showInvisibles);\n };\n VirtualRenderer.prototype.getShowInvisibles = function () {\n return this.getOption(\"showInvisibles\");\n };\n VirtualRenderer.prototype.getDisplayIndentGuides = function () {\n return this.getOption(\"displayIndentGuides\");\n };\n VirtualRenderer.prototype.setDisplayIndentGuides = function (display) {\n this.setOption(\"displayIndentGuides\", display);\n };\n VirtualRenderer.prototype.getHighlightIndentGuides = function () {\n return this.getOption(\"highlightIndentGuides\");\n };\n VirtualRenderer.prototype.setHighlightIndentGuides = function (highlight) {\n this.setOption(\"highlightIndentGuides\", highlight);\n };\n VirtualRenderer.prototype.setShowPrintMargin = function (showPrintMargin) {\n this.setOption(\"showPrintMargin\", showPrintMargin);\n };\n VirtualRenderer.prototype.getShowPrintMargin = function () {\n return this.getOption(\"showPrintMargin\");\n };\n VirtualRenderer.prototype.setPrintMarginColumn = function (showPrintMargin) {\n this.setOption(\"printMarginColumn\", showPrintMargin);\n };\n VirtualRenderer.prototype.getPrintMarginColumn = function () {\n return this.getOption(\"printMarginColumn\");\n };\n VirtualRenderer.prototype.getShowGutter = function () {\n return this.getOption(\"showGutter\");\n };\n VirtualRenderer.prototype.setShowGutter = function (show) {\n return this.setOption(\"showGutter\", show);\n };\n VirtualRenderer.prototype.getFadeFoldWidgets = function () {\n return this.getOption(\"fadeFoldWidgets\");\n };\n VirtualRenderer.prototype.setFadeFoldWidgets = function (show) {\n this.setOption(\"fadeFoldWidgets\", show);\n };\n VirtualRenderer.prototype.setHighlightGutterLine = function (shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n VirtualRenderer.prototype.getHighlightGutterLine = function () {\n return this.getOption(\"highlightGutterLine\");\n };\n VirtualRenderer.prototype.$updatePrintMargin = function () {\n if (!this.$showPrintMargin && !this.$printMarginEl)\n return;\n if (!this.$printMarginEl) {\n var containerEl = dom.createElement(\"div\");\n containerEl.className = \"ace_layer ace_print-margin-layer\";\n this.$printMarginEl = dom.createElement(\"div\");\n this.$printMarginEl.className = \"ace_print-margin\";\n containerEl.appendChild(this.$printMarginEl);\n this.content.insertBefore(containerEl, this.content.firstChild);\n }\n var style = this.$printMarginEl.style;\n style.left = Math.round(this.characterWidth * this.$printMarginColumn + this.$padding) + \"px\";\n style.visibility = this.$showPrintMargin ? \"visible\" : \"hidden\";\n if (this.session && this.session.$wrap == -1)\n this.adjustWrapLimit();\n };\n VirtualRenderer.prototype.getContainerElement = function () {\n return this.container;\n };\n VirtualRenderer.prototype.getMouseEventTarget = function () {\n return this.scroller;\n };\n VirtualRenderer.prototype.getTextAreaContainer = function () {\n return this.container;\n };\n VirtualRenderer.prototype.$moveTextAreaToCursor = function () {\n if (this.$isMousePressed)\n return;\n var style = this.textarea.style;\n var composition = this.$composition;\n if (!this.$keepTextAreaAtCursor && !composition) {\n dom.translate(this.textarea, -100, 0);\n return;\n }\n var pixelPos = this.$cursorLayer.$pixelPos;\n if (!pixelPos)\n return;\n if (composition && composition.markerRange)\n pixelPos = this.$cursorLayer.getPixelPosition(composition.markerRange.start, true);\n var config = this.layerConfig;\n var posTop = pixelPos.top;\n var posLeft = pixelPos.left;\n posTop -= config.offset;\n var h = composition && composition.useTextareaForIME || useragent.isMobile ? this.lineHeight : 1;\n if (posTop < 0 || posTop > config.height - h) {\n dom.translate(this.textarea, 0, 0);\n return;\n }\n var w = 1;\n var maxTop = this.$size.height - h;\n if (!composition) {\n posTop += this.lineHeight;\n }\n else {\n if (composition.useTextareaForIME) {\n var val = this.textarea.value;\n w = this.characterWidth * (this.session.$getStringScreenWidth(val)[0]);\n }\n else {\n posTop += this.lineHeight + 2;\n }\n }\n posLeft -= this.scrollLeft;\n if (posLeft > this.$size.scrollerWidth - w)\n posLeft = this.$size.scrollerWidth - w;\n posLeft += this.gutterWidth + this.margin.left;\n dom.setStyle(style, \"height\", h + \"px\");\n dom.setStyle(style, \"width\", w + \"px\");\n dom.translate(this.textarea, Math.min(posLeft, this.$size.scrollerWidth - w), Math.min(posTop, maxTop));\n };\n VirtualRenderer.prototype.getFirstVisibleRow = function () {\n return this.layerConfig.firstRow;\n };\n VirtualRenderer.prototype.getFirstFullyVisibleRow = function () {\n return this.layerConfig.firstRow + (this.layerConfig.offset === 0 ? 0 : 1);\n };\n VirtualRenderer.prototype.getLastFullyVisibleRow = function () {\n var config = this.layerConfig;\n var lastRow = config.lastRow;\n var top = this.session.documentToScreenRow(lastRow, 0) * config.lineHeight;\n if (top - this.session.getScrollTop() > config.height - config.lineHeight)\n return lastRow - 1;\n return lastRow;\n };\n VirtualRenderer.prototype.getLastVisibleRow = function () {\n return this.layerConfig.lastRow;\n };\n VirtualRenderer.prototype.setPadding = function (padding) {\n this.$padding = padding;\n this.$textLayer.setPadding(padding);\n this.$cursorLayer.setPadding(padding);\n this.$markerFront.setPadding(padding);\n this.$markerBack.setPadding(padding);\n this.$loop.schedule(this.CHANGE_FULL);\n this.$updatePrintMargin();\n };\n VirtualRenderer.prototype.setScrollMargin = function (top, bottom, left, right) {\n var sm = this.scrollMargin;\n sm.top = top | 0;\n sm.bottom = bottom | 0;\n sm.right = right | 0;\n sm.left = left | 0;\n sm.v = sm.top + sm.bottom;\n sm.h = sm.left + sm.right;\n if (sm.top && this.scrollTop <= 0 && this.session)\n this.session.setScrollTop(-sm.top);\n this.updateFull();\n };\n VirtualRenderer.prototype.setMargin = function (top, bottom, left, right) {\n var sm = this.margin;\n sm.top = top | 0;\n sm.bottom = bottom | 0;\n sm.right = right | 0;\n sm.left = left | 0;\n sm.v = sm.top + sm.bottom;\n sm.h = sm.left + sm.right;\n this.$updateCachedSize(true, this.gutterWidth, this.$size.width, this.$size.height);\n this.updateFull();\n };\n VirtualRenderer.prototype.getHScrollBarAlwaysVisible = function () {\n return this.$hScrollBarAlwaysVisible;\n };\n VirtualRenderer.prototype.setHScrollBarAlwaysVisible = function (alwaysVisible) {\n this.setOption(\"hScrollBarAlwaysVisible\", alwaysVisible);\n };\n VirtualRenderer.prototype.getVScrollBarAlwaysVisible = function () {\n return this.$vScrollBarAlwaysVisible;\n };\n VirtualRenderer.prototype.setVScrollBarAlwaysVisible = function (alwaysVisible) {\n this.setOption(\"vScrollBarAlwaysVisible\", alwaysVisible);\n };\n VirtualRenderer.prototype.$updateScrollBarV = function () {\n var scrollHeight = this.layerConfig.maxHeight;\n var scrollerHeight = this.$size.scrollerHeight;\n if (!this.$maxLines && this.$scrollPastEnd) {\n scrollHeight -= (scrollerHeight - this.lineHeight) * this.$scrollPastEnd;\n if (this.scrollTop > scrollHeight - scrollerHeight) {\n scrollHeight = this.scrollTop + scrollerHeight;\n this.scrollBarV.scrollTop = null;\n }\n }\n this.scrollBarV.setScrollHeight(scrollHeight + this.scrollMargin.v);\n this.scrollBarV.setScrollTop(this.scrollTop + this.scrollMargin.top);\n };\n VirtualRenderer.prototype.$updateScrollBarH = function () {\n this.scrollBarH.setScrollWidth(this.layerConfig.width + 2 * this.$padding + this.scrollMargin.h);\n this.scrollBarH.setScrollLeft(this.scrollLeft + this.scrollMargin.left);\n };\n VirtualRenderer.prototype.freeze = function () {\n this.$frozen = true;\n };\n VirtualRenderer.prototype.unfreeze = function () {\n this.$frozen = false;\n };\n VirtualRenderer.prototype.$renderChanges = function (changes, force) {\n if (this.$changes) {\n changes |= this.$changes;\n this.$changes = 0;\n }\n if ((!this.session || !this.container.offsetWidth || this.$frozen) || (!changes && !force)) {\n this.$changes |= changes;\n return;\n }\n if (this.$size.$dirty) {\n this.$changes |= changes;\n return this.onResize(true);\n }\n if (!this.lineHeight) {\n this.$textLayer.checkForSizeChanges();\n }\n this._signal(\"beforeRender\", changes);\n if (this.session && this.session.$bidiHandler)\n this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);\n var config = this.layerConfig;\n if (changes & this.CHANGE_FULL ||\n changes & this.CHANGE_SIZE ||\n changes & this.CHANGE_TEXT ||\n changes & this.CHANGE_LINES ||\n changes & this.CHANGE_SCROLL ||\n changes & this.CHANGE_H_SCROLL) {\n changes |= this.$computeLayerConfig() | this.$loop.clear();\n if (config.firstRow != this.layerConfig.firstRow && config.firstRowScreen == this.layerConfig.firstRowScreen) {\n var st = this.scrollTop + (config.firstRow - Math.max(this.layerConfig.firstRow, 0)) * this.lineHeight;\n if (st > 0) {\n this.scrollTop = st;\n changes = changes | this.CHANGE_SCROLL;\n changes |= this.$computeLayerConfig() | this.$loop.clear();\n }\n }\n config = this.layerConfig;\n this.$updateScrollBarV();\n if (changes & this.CHANGE_H_SCROLL)\n this.$updateScrollBarH();\n dom.translate(this.content, -this.scrollLeft, -config.offset);\n var width = config.width + 2 * this.$padding + \"px\";\n var height = config.minHeight + \"px\";\n dom.setStyle(this.content.style, \"width\", width);\n dom.setStyle(this.content.style, \"height\", height);\n }\n if (changes & this.CHANGE_H_SCROLL) {\n dom.translate(this.content, -this.scrollLeft, -config.offset);\n this.scroller.className = this.scrollLeft <= 0 ? \"ace_scroller \" : \"ace_scroller ace_scroll-left \";\n if (this.enableKeyboardAccessibility)\n this.scroller.className += this.keyboardFocusClassName;\n }\n if (changes & this.CHANGE_FULL) {\n this.$changedLines = null;\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this._signal(\"afterRender\", changes);\n return;\n }\n if (changes & this.CHANGE_SCROLL) {\n this.$changedLines = null;\n if (changes & this.CHANGE_TEXT || changes & this.CHANGE_LINES)\n this.$textLayer.update(config);\n else\n this.$textLayer.scrollLines(config);\n if (this.$showGutter) {\n if (changes & this.CHANGE_GUTTER || changes & this.CHANGE_LINES)\n this.$gutterLayer.update(config);\n else\n this.$gutterLayer.scrollLines(config);\n }\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this._signal(\"afterRender\", changes);\n return;\n }\n if (changes & this.CHANGE_TEXT) {\n this.$changedLines = null;\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n else if (changes & this.CHANGE_LINES) {\n if (this.$updateLines() || (changes & this.CHANGE_GUTTER) && this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n else if (changes & this.CHANGE_TEXT || changes & this.CHANGE_GUTTER) {\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n else if (changes & this.CHANGE_CURSOR) {\n if (this.$highlightGutterLine)\n this.$gutterLayer.updateLineHighlight(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n if (changes & this.CHANGE_CURSOR) {\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n }\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_FRONT)) {\n this.$markerFront.update(config);\n }\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_BACK)) {\n this.$markerBack.update(config);\n }\n this._signal(\"afterRender\", changes);\n };\n VirtualRenderer.prototype.$autosize = function () {\n var height = this.session.getScreenLength() * this.lineHeight;\n var maxHeight = this.$maxLines * this.lineHeight;\n var desiredHeight = Math.min(maxHeight, Math.max((this.$minLines || 1) * this.lineHeight, height)) + this.scrollMargin.v + (this.$extraHeight || 0);\n if (this.$horizScroll)\n desiredHeight += this.scrollBarH.getHeight();\n if (this.$maxPixelHeight && desiredHeight > this.$maxPixelHeight)\n desiredHeight = this.$maxPixelHeight;\n var hideScrollbars = desiredHeight <= 2 * this.lineHeight;\n var vScroll = !hideScrollbars && height > maxHeight;\n if (desiredHeight != this.desiredHeight ||\n this.$size.height != this.desiredHeight || vScroll != this.$vScroll) {\n if (vScroll != this.$vScroll) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n var w = this.container.clientWidth;\n this.container.style.height = desiredHeight + \"px\";\n this.$updateCachedSize(true, this.$gutterWidth, w, desiredHeight);\n this.desiredHeight = desiredHeight;\n this._signal(\"autosize\");\n }\n };\n VirtualRenderer.prototype.$computeLayerConfig = function () {\n var session = this.session;\n var size = this.$size;\n var hideScrollbars = size.height <= 2 * this.lineHeight;\n var screenLines = this.session.getScreenLength();\n var maxHeight = screenLines * this.lineHeight;\n var longestLine = this.$getLongestLine();\n var horizScroll = !hideScrollbars && (this.$hScrollBarAlwaysVisible ||\n size.scrollerWidth - longestLine - 2 * this.$padding < 0);\n var hScrollChanged = this.$horizScroll !== horizScroll;\n if (hScrollChanged) {\n this.$horizScroll = horizScroll;\n this.scrollBarH.setVisible(horizScroll);\n }\n var vScrollBefore = this.$vScroll; // autosize can change vscroll value in which case we need to update longestLine\n if (this.$maxLines && this.lineHeight > 1)\n this.$autosize();\n var minHeight = size.scrollerHeight + this.lineHeight;\n var scrollPastEnd = !this.$maxLines && this.$scrollPastEnd\n ? (size.scrollerHeight - this.lineHeight) * this.$scrollPastEnd\n : 0;\n maxHeight += scrollPastEnd;\n var sm = this.scrollMargin;\n this.session.setScrollTop(Math.max(-sm.top, Math.min(this.scrollTop, maxHeight - size.scrollerHeight + sm.bottom)));\n this.session.setScrollLeft(Math.max(-sm.left, Math.min(this.scrollLeft, longestLine + 2 * this.$padding - size.scrollerWidth + sm.right)));\n var vScroll = !hideScrollbars && (this.$vScrollBarAlwaysVisible ||\n size.scrollerHeight - maxHeight + scrollPastEnd < 0 || this.scrollTop > sm.top);\n var vScrollChanged = vScrollBefore !== vScroll;\n if (vScrollChanged) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n var offset = this.scrollTop % this.lineHeight;\n var lineCount = Math.ceil(minHeight / this.lineHeight) - 1;\n var firstRow = Math.max(0, Math.round((this.scrollTop - offset) / this.lineHeight));\n var lastRow = firstRow + lineCount;\n var firstRowScreen, firstRowHeight;\n var lineHeight = this.lineHeight;\n firstRow = session.screenToDocumentRow(firstRow, 0);\n var foldLine = session.getFoldLine(firstRow);\n if (foldLine) {\n firstRow = foldLine.start.row;\n }\n firstRowScreen = session.documentToScreenRow(firstRow, 0);\n firstRowHeight = session.getRowLength(firstRow) * lineHeight;\n lastRow = Math.min(session.screenToDocumentRow(lastRow, 0), session.getLength() - 1);\n minHeight = size.scrollerHeight + session.getRowLength(lastRow) * lineHeight +\n firstRowHeight;\n offset = this.scrollTop - firstRowScreen * lineHeight;\n var changes = 0;\n if (this.layerConfig.width != longestLine || hScrollChanged)\n changes = this.CHANGE_H_SCROLL;\n if (hScrollChanged || vScrollChanged) {\n changes |= this.$updateCachedSize(true, this.gutterWidth, size.width, size.height);\n this._signal(\"scrollbarVisibilityChanged\");\n if (vScrollChanged)\n longestLine = this.$getLongestLine();\n }\n this.layerConfig = {\n width: longestLine,\n padding: this.$padding,\n firstRow: firstRow,\n firstRowScreen: firstRowScreen,\n lastRow: lastRow,\n lineHeight: lineHeight,\n characterWidth: this.characterWidth,\n minHeight: minHeight,\n maxHeight: maxHeight,\n offset: offset,\n gutterOffset: lineHeight ? Math.max(0, Math.ceil((offset + size.height - size.scrollerHeight) / lineHeight)) : 0,\n height: this.$size.scrollerHeight\n };\n if (this.session.$bidiHandler)\n this.session.$bidiHandler.setContentWidth(longestLine - this.$padding);\n return changes;\n };\n VirtualRenderer.prototype.$updateLines = function () {\n if (!this.$changedLines)\n return;\n var firstRow = this.$changedLines.firstRow;\n var lastRow = this.$changedLines.lastRow;\n this.$changedLines = null;\n var layerConfig = this.layerConfig;\n if (firstRow > layerConfig.lastRow + 1) {\n return;\n }\n if (lastRow < layerConfig.firstRow) {\n return;\n }\n if (lastRow === Infinity) {\n if (this.$showGutter)\n this.$gutterLayer.update(layerConfig);\n this.$textLayer.update(layerConfig);\n return;\n }\n this.$textLayer.updateLines(layerConfig, firstRow, lastRow);\n return true;\n };\n VirtualRenderer.prototype.$getLongestLine = function () {\n var charCount = this.session.getScreenWidth();\n if (this.showInvisibles && !this.session.$useWrapMode)\n charCount += 1;\n if (this.$textLayer && charCount > this.$textLayer.MAX_LINE_LENGTH)\n charCount = this.$textLayer.MAX_LINE_LENGTH + 30;\n return Math.max(this.$size.scrollerWidth - 2 * this.$padding, Math.round(charCount * this.characterWidth));\n };\n VirtualRenderer.prototype.updateFrontMarkers = function () {\n this.$markerFront.setMarkers(this.session.getMarkers(true));\n this.$loop.schedule(this.CHANGE_MARKER_FRONT);\n };\n VirtualRenderer.prototype.updateBackMarkers = function () {\n this.$markerBack.setMarkers(this.session.getMarkers());\n this.$loop.schedule(this.CHANGE_MARKER_BACK);\n };\n VirtualRenderer.prototype.addGutterDecoration = function (row, className) {\n this.$gutterLayer.addGutterDecoration(row, className);\n };\n VirtualRenderer.prototype.removeGutterDecoration = function (row, className) {\n this.$gutterLayer.removeGutterDecoration(row, className);\n };\n VirtualRenderer.prototype.updateBreakpoints = function (rows) {\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n VirtualRenderer.prototype.setAnnotations = function (annotations) {\n this.$gutterLayer.setAnnotations(annotations);\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n VirtualRenderer.prototype.updateCursor = function () {\n this.$loop.schedule(this.CHANGE_CURSOR);\n };\n VirtualRenderer.prototype.hideCursor = function () {\n this.$cursorLayer.hideCursor();\n };\n VirtualRenderer.prototype.showCursor = function () {\n this.$cursorLayer.showCursor();\n };\n VirtualRenderer.prototype.scrollSelectionIntoView = function (anchor, lead, offset) {\n this.scrollCursorIntoView(anchor, offset);\n this.scrollCursorIntoView(lead, offset);\n };\n VirtualRenderer.prototype.scrollCursorIntoView = function (cursor, offset, $viewMargin) {\n if (this.$size.scrollerHeight === 0)\n return;\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n var newLeft = pos.left;\n var newTop = pos.top;\n var topMargin = $viewMargin && $viewMargin.top || 0;\n var bottomMargin = $viewMargin && $viewMargin.bottom || 0;\n if (this.$scrollAnimation) {\n this.$stopAnimation = true;\n }\n var currentTop = this.$scrollAnimation ? this.session.getScrollTop() : this.scrollTop;\n if (currentTop + topMargin > newTop) {\n if (offset && currentTop + topMargin > newTop + this.lineHeight)\n newTop -= offset * this.$size.scrollerHeight;\n if (newTop === 0)\n newTop = -this.scrollMargin.top;\n this.session.setScrollTop(newTop);\n }\n else if (currentTop + this.$size.scrollerHeight - bottomMargin < newTop + this.lineHeight) {\n if (offset && currentTop + this.$size.scrollerHeight - bottomMargin < newTop - this.lineHeight)\n newTop += offset * this.$size.scrollerHeight;\n this.session.setScrollTop(newTop + this.lineHeight + bottomMargin - this.$size.scrollerHeight);\n }\n var currentLeft = this.scrollLeft;\n var twoCharsWidth = 2 * this.layerConfig.characterWidth;\n if (newLeft - twoCharsWidth < currentLeft) {\n newLeft -= twoCharsWidth;\n if (newLeft < this.$padding + twoCharsWidth) {\n newLeft = -this.scrollMargin.left;\n }\n this.session.setScrollLeft(newLeft);\n }\n else {\n newLeft += twoCharsWidth;\n if (currentLeft + this.$size.scrollerWidth < newLeft + this.characterWidth) {\n this.session.setScrollLeft(Math.round(newLeft + this.characterWidth - this.$size.scrollerWidth));\n }\n else if (currentLeft <= this.$padding && newLeft - currentLeft < this.characterWidth) {\n this.session.setScrollLeft(0);\n }\n }\n };\n VirtualRenderer.prototype.getScrollTop = function () {\n return this.session.getScrollTop();\n };\n VirtualRenderer.prototype.getScrollLeft = function () {\n return this.session.getScrollLeft();\n };\n VirtualRenderer.prototype.getScrollTopRow = function () {\n return this.scrollTop / this.lineHeight;\n };\n VirtualRenderer.prototype.getScrollBottomRow = function () {\n return Math.max(0, Math.floor((this.scrollTop + this.$size.scrollerHeight) / this.lineHeight) - 1);\n };\n VirtualRenderer.prototype.scrollToRow = function (row) {\n this.session.setScrollTop(row * this.lineHeight);\n };\n VirtualRenderer.prototype.alignCursor = function (cursor, alignment) {\n if (typeof cursor == \"number\")\n cursor = { row: cursor, column: 0 };\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n var h = this.$size.scrollerHeight - this.lineHeight;\n var offset = pos.top - h * (alignment || 0);\n this.session.setScrollTop(offset);\n return offset;\n };\n VirtualRenderer.prototype.$calcSteps = function (fromValue, toValue) {\n var i = 0;\n var l = this.STEPS;\n var steps = [];\n var func = function (t, x_min, dx) {\n return dx * (Math.pow(t - 1, 3) + 1) + x_min;\n };\n for (i = 0; i < l; ++i)\n steps.push(func(i / this.STEPS, fromValue, toValue - fromValue));\n return steps;\n };\n VirtualRenderer.prototype.scrollToLine = function (line, center, animate, callback) {\n var pos = this.$cursorLayer.getPixelPosition({ row: line, column: 0 });\n var offset = pos.top;\n if (center)\n offset -= this.$size.scrollerHeight / 2;\n var initialScroll = this.scrollTop;\n this.session.setScrollTop(offset);\n if (animate !== false)\n this.animateScrolling(initialScroll, callback);\n };\n VirtualRenderer.prototype.animateScrolling = function (fromValue, callback) {\n var toValue = this.scrollTop;\n if (!this.$animatedScroll)\n return;\n var _self = this;\n if (fromValue == toValue)\n return;\n if (this.$scrollAnimation) {\n var oldSteps = this.$scrollAnimation.steps;\n if (oldSteps.length) {\n fromValue = oldSteps[0];\n if (fromValue == toValue)\n return;\n }\n }\n var steps = _self.$calcSteps(fromValue, toValue);\n this.$scrollAnimation = { from: fromValue, to: toValue, steps: steps };\n clearInterval(this.$timer);\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n function endAnimation() {\n _self.$timer = clearInterval(_self.$timer);\n _self.$scrollAnimation = null;\n _self.$stopAnimation = false;\n callback && callback();\n }\n this.$timer = setInterval(function () {\n if (_self.$stopAnimation) {\n endAnimation();\n return;\n }\n if (!_self.session)\n return clearInterval(_self.$timer);\n if (steps.length) {\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n }\n else if (toValue != null) {\n _self.session.$scrollTop = -1;\n _self.session.setScrollTop(toValue);\n toValue = null;\n }\n else {\n endAnimation();\n }\n }, 10);\n };\n VirtualRenderer.prototype.scrollToY = function (scrollTop) {\n if (this.scrollTop !== scrollTop) {\n this.$loop.schedule(this.CHANGE_SCROLL);\n this.scrollTop = scrollTop;\n }\n };\n VirtualRenderer.prototype.scrollToX = function (scrollLeft) {\n if (this.scrollLeft !== scrollLeft)\n this.scrollLeft = scrollLeft;\n this.$loop.schedule(this.CHANGE_H_SCROLL);\n };\n VirtualRenderer.prototype.scrollTo = function (x, y) {\n this.session.setScrollTop(y);\n this.session.setScrollLeft(x);\n };\n VirtualRenderer.prototype.scrollBy = function (deltaX, deltaY) {\n deltaY && this.session.setScrollTop(this.session.getScrollTop() + deltaY);\n deltaX && this.session.setScrollLeft(this.session.getScrollLeft() + deltaX);\n };\n VirtualRenderer.prototype.isScrollableBy = function (deltaX, deltaY) {\n if (deltaY < 0 && this.session.getScrollTop() >= 1 - this.scrollMargin.top)\n return true;\n if (deltaY > 0 && this.session.getScrollTop() + this.$size.scrollerHeight\n - this.layerConfig.maxHeight < -1 + this.scrollMargin.bottom)\n return true;\n if (deltaX < 0 && this.session.getScrollLeft() >= 1 - this.scrollMargin.left)\n return true;\n if (deltaX > 0 && this.session.getScrollLeft() + this.$size.scrollerWidth\n - this.layerConfig.width < -1 + this.scrollMargin.right)\n return true;\n };\n VirtualRenderer.prototype.pixelToScreenCoordinates = function (x, y) {\n var canvasPos;\n if (this.$hasCssTransforms) {\n canvasPos = { top: 0, left: 0 };\n var p = this.$fontMetrics.transformCoordinates([x, y]);\n x = p[1] - this.gutterWidth - this.margin.left;\n y = p[0];\n }\n else {\n canvasPos = this.scroller.getBoundingClientRect();\n }\n var offsetX = x + this.scrollLeft - canvasPos.left - this.$padding;\n var offset = offsetX / this.characterWidth;\n var row = Math.floor((y + this.scrollTop - canvasPos.top) / this.lineHeight);\n var col = this.$blockCursor ? Math.floor(offset) : Math.round(offset);\n return { row: row, column: col, side: offset - col > 0 ? 1 : -1, offsetX: offsetX };\n };\n VirtualRenderer.prototype.screenToTextCoordinates = function (x, y) {\n var canvasPos;\n if (this.$hasCssTransforms) {\n canvasPos = { top: 0, left: 0 };\n var p = this.$fontMetrics.transformCoordinates([x, y]);\n x = p[1] - this.gutterWidth - this.margin.left;\n y = p[0];\n }\n else {\n canvasPos = this.scroller.getBoundingClientRect();\n }\n var offsetX = x + this.scrollLeft - canvasPos.left - this.$padding;\n var offset = offsetX / this.characterWidth;\n var col = this.$blockCursor ? Math.floor(offset) : Math.round(offset);\n var row = Math.floor((y + this.scrollTop - canvasPos.top) / this.lineHeight);\n return this.session.screenToDocumentPosition(row, Math.max(col, 0), offsetX);\n };\n VirtualRenderer.prototype.textToScreenCoordinates = function (row, column) {\n var canvasPos = this.scroller.getBoundingClientRect();\n var pos = this.session.documentToScreenPosition(row, column);\n var x = this.$padding + (this.session.$bidiHandler.isBidiRow(pos.row, row)\n ? this.session.$bidiHandler.getPosLeft(pos.column)\n : Math.round(pos.column * this.characterWidth));\n var y = pos.row * this.lineHeight;\n return {\n pageX: canvasPos.left + x - this.scrollLeft,\n pageY: canvasPos.top + y - this.scrollTop\n };\n };\n VirtualRenderer.prototype.visualizeFocus = function () {\n dom.addCssClass(this.container, \"ace_focus\");\n };\n VirtualRenderer.prototype.visualizeBlur = function () {\n dom.removeCssClass(this.container, \"ace_focus\");\n };\n VirtualRenderer.prototype.showComposition = function (composition) {\n this.$composition = composition;\n if (!composition.cssText) {\n composition.cssText = this.textarea.style.cssText;\n }\n if (composition.useTextareaForIME == undefined)\n composition.useTextareaForIME = this.$useTextareaForIME;\n if (this.$useTextareaForIME) {\n dom.addCssClass(this.textarea, \"ace_composition\");\n this.textarea.style.cssText = \"\";\n this.$moveTextAreaToCursor();\n this.$cursorLayer.element.style.display = \"none\";\n }\n else {\n composition.markerId = this.session.addMarker(composition.markerRange, \"ace_composition_marker\", \"text\");\n }\n };\n VirtualRenderer.prototype.setCompositionText = function (text) {\n var cursor = this.session.selection.cursor;\n this.addToken(text, \"composition_placeholder\", cursor.row, cursor.column);\n this.$moveTextAreaToCursor();\n };\n VirtualRenderer.prototype.hideComposition = function () {\n if (!this.$composition)\n return;\n if (this.$composition.markerId)\n this.session.removeMarker(this.$composition.markerId);\n dom.removeCssClass(this.textarea, \"ace_composition\");\n this.textarea.style.cssText = this.$composition.cssText;\n var cursor = this.session.selection.cursor;\n this.removeExtraToken(cursor.row, cursor.column);\n this.$composition = null;\n this.$cursorLayer.element.style.display = \"\";\n };\n VirtualRenderer.prototype.setGhostText = function (text, position) {\n var cursor = this.session.selection.cursor;\n var insertPosition = position || { row: cursor.row, column: cursor.column };\n this.removeGhostText();\n var textLines = text.split(\"\\n\");\n this.addToken(textLines[0], \"ghost_text\", insertPosition.row, insertPosition.column);\n this.$ghostText = {\n text: text,\n position: {\n row: insertPosition.row,\n column: insertPosition.column\n }\n };\n if (textLines.length > 1) {\n this.$ghostTextWidget = {\n text: textLines.slice(1).join(\"\\n\"),\n row: insertPosition.row,\n column: insertPosition.column,\n className: \"ace_ghost_text\"\n };\n this.session.widgetManager.addLineWidget(this.$ghostTextWidget);\n var pixelPosition = this.$cursorLayer.getPixelPosition(insertPosition, true);\n var el = this.container;\n var height = el.getBoundingClientRect().height;\n var ghostTextHeight = textLines.length * this.lineHeight;\n var fitsY = ghostTextHeight < height - pixelPosition.top;\n if (fitsY)\n return;\n if (ghostTextHeight < height) {\n this.scrollBy(0, (textLines.length - 1) * this.lineHeight);\n }\n else {\n this.scrollBy(0, pixelPosition.top);\n }\n }\n };\n VirtualRenderer.prototype.removeGhostText = function () {\n if (!this.$ghostText)\n return;\n var position = this.$ghostText.position;\n this.removeExtraToken(position.row, position.column);\n if (this.$ghostTextWidget) {\n this.session.widgetManager.removeLineWidget(this.$ghostTextWidget);\n this.$ghostTextWidget = null;\n }\n this.$ghostText = null;\n };\n VirtualRenderer.prototype.addToken = function (text, type, row, column) {\n var session = this.session;\n session.bgTokenizer.lines[row] = null;\n var newToken = { type: type, value: text };\n var tokens = session.getTokens(row);\n if (column == null || !tokens.length) {\n tokens.push(newToken);\n }\n else {\n var l = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n l += token.value.length;\n if (column <= l) {\n var diff = token.value.length - (l - column);\n var before = token.value.slice(0, diff);\n var after = token.value.slice(diff);\n tokens.splice(i, 1, { type: token.type, value: before }, newToken, { type: token.type, value: after });\n break;\n }\n }\n }\n this.updateLines(row, row);\n };\n VirtualRenderer.prototype.removeExtraToken = function (row, column) {\n this.session.bgTokenizer.lines[row] = null;\n this.updateLines(row, row);\n };\n VirtualRenderer.prototype.setTheme = function (theme, cb) {\n var _self = this;\n this.$themeId = theme;\n _self._dispatchEvent('themeChange', { theme: theme });\n if (!theme || typeof theme == \"string\") {\n var moduleName = theme || this.$options.theme.initialValue;\n config.loadModule([\"theme\", moduleName], afterLoad);\n }\n else {\n afterLoad(theme);\n }\n function afterLoad(module) {\n if (_self.$themeId != theme)\n return cb && cb();\n if (!module || !module.cssClass)\n throw new Error(\"couldn't load module \" + theme + \" or it didn't call define\");\n if (module.$id)\n _self.$themeId = module.$id;\n dom.importCssString(module.cssText, module.cssClass, _self.container);\n if (_self.theme)\n dom.removeCssClass(_self.container, _self.theme.cssClass);\n var padding = \"padding\" in module ? module.padding\n : \"padding\" in (_self.theme || {}) ? 4 : _self.$padding;\n if (_self.$padding && padding != _self.$padding)\n _self.setPadding(padding);\n _self.$theme = module.cssClass;\n _self.theme = module;\n dom.addCssClass(_self.container, module.cssClass);\n dom.setCssClass(_self.container, \"ace_dark\", module.isDark);\n if (_self.$size) {\n _self.$size.width = 0;\n _self.$updateSizeAsync();\n }\n _self._dispatchEvent('themeLoaded', { theme: module });\n cb && cb();\n }\n };\n VirtualRenderer.prototype.getTheme = function () {\n return this.$themeId;\n };\n VirtualRenderer.prototype.setStyle = function (style, include) {\n dom.setCssClass(this.container, style, include !== false);\n };\n VirtualRenderer.prototype.unsetStyle = function (style) {\n dom.removeCssClass(this.container, style);\n };\n VirtualRenderer.prototype.setCursorStyle = function (style) {\n dom.setStyle(this.scroller.style, \"cursor\", style);\n };\n VirtualRenderer.prototype.setMouseCursor = function (cursorStyle) {\n dom.setStyle(this.scroller.style, \"cursor\", cursorStyle);\n };\n VirtualRenderer.prototype.attachToShadowRoot = function () {\n dom.importCssString(editorCss, \"ace_editor.css\", this.container);\n };\n VirtualRenderer.prototype.destroy = function () {\n this.freeze();\n this.$fontMetrics.destroy();\n this.$cursorLayer.destroy();\n this.removeAllListeners();\n this.container.textContent = \"\";\n this.setOption(\"useResizeObserver\", false);\n };\n VirtualRenderer.prototype.$updateCustomScrollbar = function (val) {\n var _self = this;\n this.$horizScroll = this.$vScroll = null;\n this.scrollBarV.element.remove();\n this.scrollBarH.element.remove();\n if (this.$scrollDecorator) {\n delete this.$scrollDecorator;\n }\n if (val === true) {\n this.scrollBarV = new VScrollBarCustom(this.container, this);\n this.scrollBarH = new HScrollBarCustom(this.container, this);\n this.scrollBarV.setHeight(this.$size.scrollerHeight);\n this.scrollBarH.setWidth(this.$size.scrollerWidth);\n this.scrollBarV.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n this.$scrollDecorator = new Decorator(this.scrollBarV, this);\n this.$scrollDecorator.$updateDecorators();\n }\n else {\n this.scrollBarV = new VScrollBar(this.container, this);\n this.scrollBarH = new HScrollBar(this.container, this);\n this.scrollBarV.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n }\n };\n VirtualRenderer.prototype.$addResizeObserver = function () {\n if (!window.ResizeObserver || this.$resizeObserver)\n return;\n var self = this;\n this.$resizeTimer = lang.delayedCall(function () {\n if (!self.destroyed)\n self.onResize();\n }, 50);\n this.$resizeObserver = new window.ResizeObserver(function (e) {\n var w = e[0].contentRect.width;\n var h = e[0].contentRect.height;\n if (Math.abs(self.$size.width - w) > 1\n || Math.abs(self.$size.height - h) > 1) {\n self.$resizeTimer.delay();\n }\n else {\n self.$resizeTimer.cancel();\n }\n });\n this.$resizeObserver.observe(this.container);\n };\n return VirtualRenderer;\n}());\nVirtualRenderer.prototype.CHANGE_CURSOR = 1;\nVirtualRenderer.prototype.CHANGE_MARKER = 2;\nVirtualRenderer.prototype.CHANGE_GUTTER = 4;\nVirtualRenderer.prototype.CHANGE_SCROLL = 8;\nVirtualRenderer.prototype.CHANGE_LINES = 16;\nVirtualRenderer.prototype.CHANGE_TEXT = 32;\nVirtualRenderer.prototype.CHANGE_SIZE = 64;\nVirtualRenderer.prototype.CHANGE_MARKER_BACK = 128;\nVirtualRenderer.prototype.CHANGE_MARKER_FRONT = 256;\nVirtualRenderer.prototype.CHANGE_FULL = 512;\nVirtualRenderer.prototype.CHANGE_H_SCROLL = 1024;\nVirtualRenderer.prototype.$changes = 0;\nVirtualRenderer.prototype.$padding = null;\nVirtualRenderer.prototype.$frozen = false;\nVirtualRenderer.prototype.STEPS = 8;\noop.implement(VirtualRenderer.prototype, EventEmitter);\nconfig.defineOptions(VirtualRenderer.prototype, \"renderer\", {\n useResizeObserver: {\n set: function (value) {\n if (!value && this.$resizeObserver) {\n this.$resizeObserver.disconnect();\n this.$resizeTimer.cancel();\n this.$resizeTimer = this.$resizeObserver = null;\n }\n else if (value && !this.$resizeObserver) {\n this.$addResizeObserver();\n }\n }\n },\n animatedScroll: { initialValue: false },\n showInvisibles: {\n set: function (value) {\n if (this.$textLayer.setShowInvisibles(value))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: false\n },\n showPrintMargin: {\n set: function () { this.$updatePrintMargin(); },\n initialValue: true\n },\n printMarginColumn: {\n set: function () { this.$updatePrintMargin(); },\n initialValue: 80\n },\n printMargin: {\n set: function (val) {\n if (typeof val == \"number\")\n this.$printMarginColumn = val;\n this.$showPrintMargin = !!val;\n this.$updatePrintMargin();\n },\n get: function () {\n return this.$showPrintMargin && this.$printMarginColumn;\n }\n },\n showGutter: {\n set: function (show) {\n this.$gutter.style.display = show ? \"block\" : \"none\";\n this.$loop.schedule(this.CHANGE_FULL);\n this.onGutterResize();\n },\n initialValue: true\n },\n useSvgGutterIcons: {\n set: function (value) {\n this.$gutterLayer.$useSvgGutterIcons = value;\n },\n initialValue: false\n },\n showFoldedAnnotations: {\n set: function (value) {\n this.$gutterLayer.$showFoldedAnnotations = value;\n },\n initialValue: false\n },\n fadeFoldWidgets: {\n set: function (show) {\n dom.setCssClass(this.$gutter, \"ace_fade-fold-widgets\", show);\n },\n initialValue: false\n },\n showFoldWidgets: {\n set: function (show) {\n this.$gutterLayer.setShowFoldWidgets(show);\n this.$loop.schedule(this.CHANGE_GUTTER);\n },\n initialValue: true\n },\n displayIndentGuides: {\n set: function (show) {\n if (this.$textLayer.setDisplayIndentGuides(show))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: true\n },\n highlightIndentGuides: {\n set: function (show) {\n if (this.$textLayer.setHighlightIndentGuides(show) == true) {\n this.$textLayer.$highlightIndentGuide();\n }\n else {\n this.$textLayer.$clearActiveIndentGuide(this.$textLayer.$lines.cells);\n }\n },\n initialValue: true\n },\n highlightGutterLine: {\n set: function (shouldHighlight) {\n this.$gutterLayer.setHighlightGutterLine(shouldHighlight);\n this.$loop.schedule(this.CHANGE_GUTTER);\n },\n initialValue: true\n },\n hScrollBarAlwaysVisible: {\n set: function (val) {\n if (!this.$hScrollBarAlwaysVisible || !this.$horizScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n vScrollBarAlwaysVisible: {\n set: function (val) {\n if (!this.$vScrollBarAlwaysVisible || !this.$vScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n fontSize: {\n set: function (size) {\n if (typeof size == \"number\")\n size = size + \"px\";\n this.container.style.fontSize = size;\n this.updateFontSize();\n },\n initialValue: 12\n },\n fontFamily: {\n set: function (name) {\n this.container.style.fontFamily = name;\n this.updateFontSize();\n }\n },\n maxLines: {\n set: function (val) {\n this.updateFull();\n }\n },\n minLines: {\n set: function (val) {\n if (!(this.$minLines < 0x1ffffffffffff))\n this.$minLines = 0;\n this.updateFull();\n }\n },\n maxPixelHeight: {\n set: function (val) {\n this.updateFull();\n },\n initialValue: 0\n },\n scrollPastEnd: {\n set: function (val) {\n val = +val || 0;\n if (this.$scrollPastEnd == val)\n return;\n this.$scrollPastEnd = val;\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: 0,\n handlesSet: true\n },\n fixedWidthGutter: {\n set: function (val) {\n this.$gutterLayer.$fixedWidth = !!val;\n this.$loop.schedule(this.CHANGE_GUTTER);\n }\n },\n customScrollbar: {\n set: function (val) {\n this.$updateCustomScrollbar(val);\n },\n initialValue: false\n },\n theme: {\n set: function (val) { this.setTheme(val); },\n get: function () { return this.$themeId || this.theme; },\n initialValue: \"./theme/textmate\",\n handlesSet: true\n },\n hasCssTransforms: {},\n useTextareaForIME: {\n initialValue: !useragent.isMobile && !useragent.isIE\n }\n});\nexports.VirtualRenderer = VirtualRenderer;\n\n});\n\nace.define(\"ace/worker/worker_client\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/net\",\"ace/lib/event_emitter\",\"ace/config\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar net = require(\"../lib/net\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar config = require(\"../config\");\n\nfunction $workerBlob(workerUrl) {\n var script = \"importScripts('\" + net.qualifyURL(workerUrl) + \"');\";\n try {\n return new Blob([script], {\"type\": \"application/javascript\"});\n } catch (e) { // Backwards-compatibility\n var BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;\n var blobBuilder = new BlobBuilder();\n blobBuilder.append(script);\n return blobBuilder.getBlob(\"application/javascript\");\n }\n}\n\nfunction createWorker(workerUrl) {\n if (typeof Worker == \"undefined\")\n return { postMessage: function() {}, terminate: function() {} };\n if (config.get(\"loadWorkerFromBlob\")) {\n var blob = $workerBlob(workerUrl);\n var URL = window.URL || window.webkitURL;\n var blobURL = URL.createObjectURL(blob);\n return new Worker(blobURL);\n }\n return new Worker(workerUrl);\n}\n\nvar WorkerClient = function(worker) {\n if (!worker.postMessage)\n worker = this.$createWorkerFromOldConfig.apply(this, arguments);\n\n this.$worker = worker;\n this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this);\n this.changeListener = this.changeListener.bind(this);\n this.onMessage = this.onMessage.bind(this);\n\n this.callbackId = 1;\n this.callbacks = {};\n\n this.$worker.onmessage = this.onMessage;\n};\n\n(function(){\n\n oop.implement(this, EventEmitter);\n\n this.$createWorkerFromOldConfig = function(topLevelNamespaces, mod, classname, workerUrl, importScripts) {\n if (require.nameToUrl && !require.toUrl)\n require.toUrl = require.nameToUrl;\n\n if (config.get(\"packaged\") || !require.toUrl) {\n workerUrl = workerUrl || config.moduleUrl(mod, \"worker\");\n } else {\n var normalizePath = this.$normalizePath;\n workerUrl = workerUrl || normalizePath(require.toUrl(\"ace/worker/worker.js\", null, \"_\"));\n\n var tlns = {};\n topLevelNamespaces.forEach(function(ns) {\n tlns[ns] = normalizePath(require.toUrl(ns, null, \"_\").replace(/(\\.js)?(\\?.*)?$/, \"\"));\n });\n }\n\n this.$worker = createWorker(workerUrl);\n if (importScripts) {\n this.send(\"importScripts\", importScripts);\n }\n this.$worker.postMessage({\n init : true,\n tlns : tlns,\n module : mod,\n classname : classname\n });\n return this.$worker;\n };\n\n this.onMessage = function(e) {\n var msg = e.data;\n switch (msg.type) {\n case \"event\":\n this._signal(msg.name, {data: msg.data});\n break;\n case \"call\":\n var callback = this.callbacks[msg.id];\n if (callback) {\n callback(msg.data);\n delete this.callbacks[msg.id];\n }\n break;\n case \"error\":\n this.reportError(msg.data);\n break;\n case \"log\":\n window.console && console.log && console.log.apply(console, msg.data);\n break;\n }\n };\n \n this.reportError = function(err) {\n window.console && console.error && console.error(err);\n };\n\n this.$normalizePath = function(path) {\n return net.qualifyURL(path);\n };\n\n this.terminate = function() {\n this._signal(\"terminate\", {});\n this.deltaQueue = null;\n this.$worker.terminate();\n this.$worker.onerror = function(e) {\n e.preventDefault();\n };\n this.$worker = null;\n if (this.$doc)\n this.$doc.off(\"change\", this.changeListener);\n this.$doc = null;\n };\n\n this.send = function(cmd, args) {\n this.$worker.postMessage({command: cmd, args: args});\n };\n\n this.call = function(cmd, args, callback) {\n if (callback) {\n var id = this.callbackId++;\n this.callbacks[id] = callback;\n args.push(id);\n }\n this.send(cmd, args);\n };\n\n this.emit = function(event, data) {\n try {\n if (data.data && data.data.err)\n data.data.err = {message: data.data.err.message, stack: data.data.err.stack, code: data.data.err.code};\n this.$worker && this.$worker.postMessage({event: event, data: {data: data.data}});\n }\n catch(ex) {\n console.error(ex.stack);\n }\n };\n\n this.attachToDocument = function(doc) {\n if (this.$doc)\n this.terminate();\n\n this.$doc = doc;\n this.call(\"setValue\", [doc.getValue()]);\n doc.on(\"change\", this.changeListener, true);\n };\n\n this.changeListener = function(delta) {\n if (!this.deltaQueue) {\n this.deltaQueue = [];\n setTimeout(this.$sendDeltaQueue, 0);\n }\n if (delta.action == \"insert\")\n this.deltaQueue.push(delta.start, delta.lines);\n else\n this.deltaQueue.push(delta.start, delta.end);\n };\n\n this.$sendDeltaQueue = function() {\n var q = this.deltaQueue;\n if (!q) return;\n this.deltaQueue = null;\n if (q.length > 50 && q.length > this.$doc.getLength() >> 1) {\n this.call(\"setValue\", [this.$doc.getValue()]);\n } else\n this.emit(\"change\", {data: q});\n };\n\n}).call(WorkerClient.prototype);\n\n\nvar UIWorkerClient = function(topLevelNamespaces, mod, classname) {\n var main = null;\n var emitSync = false;\n var sender = Object.create(EventEmitter);\n\n var messageBuffer = [];\n var workerClient = new WorkerClient({\n messageBuffer: messageBuffer,\n terminate: function() {},\n postMessage: function(e) {\n messageBuffer.push(e);\n if (!main) return;\n if (emitSync)\n setTimeout(processNext);\n else\n processNext();\n }\n });\n\n workerClient.setEmitSync = function(val) { emitSync = val; };\n\n var processNext = function() {\n var msg = messageBuffer.shift();\n if (msg.command)\n main[msg.command].apply(main, msg.args);\n else if (msg.event)\n sender._signal(msg.event, msg.data);\n };\n\n sender.postMessage = function(msg) {\n workerClient.onMessage({data: msg});\n };\n sender.callback = function(data, callbackId) {\n this.postMessage({type: \"call\", id: callbackId, data: data});\n };\n sender.emit = function(name, data) {\n this.postMessage({type: \"event\", name: name, data: data});\n };\n\n config.loadModule([\"worker\", mod], function(Main) {\n main = new Main[classname](sender);\n while (messageBuffer.length)\n processNext();\n });\n\n return workerClient;\n};\n\nexports.UIWorkerClient = UIWorkerClient;\nexports.WorkerClient = WorkerClient;\nexports.createWorker = createWorker;\n\n\n});\n\nace.define(\"ace/placeholder\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/lib/oop\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"./range\").Range;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar oop = require(\"./lib/oop\");\nvar PlaceHolder = /** @class */ (function () {\n function PlaceHolder(session, length, pos, others, mainClass, othersClass) {\n var _self = this;\n this.length = length;\n this.session = session;\n this.doc = session.getDocument();\n this.mainClass = mainClass;\n this.othersClass = othersClass;\n this.$onUpdate = this.onUpdate.bind(this);\n this.doc.on(\"change\", this.$onUpdate, true);\n this.$others = others;\n this.$onCursorChange = function () {\n setTimeout(function () {\n _self.onCursorChange();\n });\n };\n this.$pos = pos;\n var undoStack = session.getUndoManager().$undoStack || session.getUndoManager().$undostack || { length: -1 };\n this.$undoStackDepth = undoStack.length;\n this.setup();\n session.selection.on(\"changeCursor\", this.$onCursorChange);\n }\n PlaceHolder.prototype.setup = function () {\n var _self = this;\n var doc = this.doc;\n var session = this.session;\n this.selectionBefore = session.selection.toJSON();\n if (session.selection.inMultiSelectMode)\n session.selection.toSingleRange();\n this.pos = doc.createAnchor(this.$pos.row, this.$pos.column);\n var pos = this.pos;\n pos.$insertRight = true;\n pos.detach();\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column + this.length), this.mainClass, null, false);\n this.others = [];\n this.$others.forEach(function (other) {\n var anchor = doc.createAnchor(other.row, other.column);\n anchor.$insertRight = true;\n anchor.detach();\n _self.others.push(anchor);\n });\n session.setUndoSelect(false);\n };\n PlaceHolder.prototype.showOtherMarkers = function () {\n if (this.othersActive)\n return;\n var session = this.session;\n var _self = this;\n this.othersActive = true;\n this.others.forEach(function (anchor) {\n anchor.markerId = session.addMarker(new Range(anchor.row, anchor.column, anchor.row, anchor.column + _self.length), _self.othersClass, null, false);\n });\n };\n PlaceHolder.prototype.hideOtherMarkers = function () {\n if (!this.othersActive)\n return;\n this.othersActive = false;\n for (var i = 0; i < this.others.length; i++) {\n this.session.removeMarker(this.others[i].markerId);\n }\n };\n PlaceHolder.prototype.onUpdate = function (delta) {\n if (this.$updating)\n return this.updateAnchors(delta);\n var range = delta;\n if (range.start.row !== range.end.row)\n return;\n if (range.start.row !== this.pos.row)\n return;\n this.$updating = true;\n var lengthDiff = delta.action === \"insert\" ? range.end.column - range.start.column : range.start.column - range.end.column;\n var inMainRange = range.start.column >= this.pos.column && range.start.column <= this.pos.column + this.length + 1;\n var distanceFromStart = range.start.column - this.pos.column;\n this.updateAnchors(delta);\n if (inMainRange)\n this.length += lengthDiff;\n if (inMainRange && !this.session.$fromUndo) {\n if (delta.action === 'insert') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = { row: otherPos.row, column: otherPos.column + distanceFromStart };\n this.doc.insertMergedLines(newPos, delta.lines);\n }\n }\n else if (delta.action === 'remove') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = { row: otherPos.row, column: otherPos.column + distanceFromStart };\n this.doc.remove(new Range(newPos.row, newPos.column, newPos.row, newPos.column - lengthDiff));\n }\n }\n }\n this.$updating = false;\n this.updateMarkers();\n };\n PlaceHolder.prototype.updateAnchors = function (delta) {\n this.pos.onChange(delta);\n for (var i = this.others.length; i--;)\n this.others[i].onChange(delta);\n this.updateMarkers();\n };\n PlaceHolder.prototype.updateMarkers = function () {\n if (this.$updating)\n return;\n var _self = this;\n var session = this.session;\n var updateMarker = function (pos, className) {\n session.removeMarker(pos.markerId);\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column + _self.length), className, null, false);\n };\n updateMarker(this.pos, this.mainClass);\n for (var i = this.others.length; i--;)\n updateMarker(this.others[i], this.othersClass);\n };\n PlaceHolder.prototype.onCursorChange = function (event) {\n if (this.$updating || !this.session)\n return;\n var pos = this.session.selection.getCursor();\n if (pos.row === this.pos.row && pos.column >= this.pos.column && pos.column <= this.pos.column + this.length) {\n this.showOtherMarkers();\n this._emit(\"cursorEnter\", event);\n }\n else {\n this.hideOtherMarkers();\n this._emit(\"cursorLeave\", event);\n }\n };\n PlaceHolder.prototype.detach = function () {\n this.session.removeMarker(this.pos && this.pos.markerId);\n this.hideOtherMarkers();\n this.doc.off(\"change\", this.$onUpdate);\n this.session.selection.off(\"changeCursor\", this.$onCursorChange);\n this.session.setUndoSelect(true);\n this.session = null;\n };\n PlaceHolder.prototype.cancel = function () {\n if (this.$undoStackDepth === -1)\n return;\n var undoManager = this.session.getUndoManager();\n var undosRequired = (undoManager.$undoStack || undoManager.$undostack).length - this.$undoStackDepth;\n for (var i = 0; i < undosRequired; i++) {\n undoManager.undo(this.session, true);\n }\n if (this.selectionBefore)\n this.session.selection.fromJSON(this.selectionBefore);\n };\n return PlaceHolder;\n}());\noop.implement(PlaceHolder.prototype, EventEmitter);\nexports.PlaceHolder = PlaceHolder;\n\n});\n\nace.define(\"ace/mouse/multi_select_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(require, exports, module){var event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\nfunction onMouseDown(e) {\n var ev = e.domEvent;\n var alt = ev.altKey;\n var shift = ev.shiftKey;\n var ctrl = ev.ctrlKey;\n var accel = e.getAccelKey();\n var button = e.getButton();\n if (ctrl && useragent.isMac)\n button = ev.button;\n if (e.editor.inMultiSelectMode && button == 2) {\n e.editor.textInput.onContextMenu(e.domEvent);\n return;\n }\n if (!ctrl && !alt && !accel) {\n if (button === 0 && e.editor.inMultiSelectMode)\n e.editor.exitMultiSelectMode();\n return;\n }\n if (button !== 0)\n return;\n var editor = e.editor;\n var selection = editor.selection;\n var isMultiSelect = editor.inMultiSelectMode;\n var pos = e.getDocumentPosition();\n var cursor = selection.getCursor();\n var inSelection = e.inSelection() || (selection.isEmpty() && isSamePoint(pos, cursor));\n var mouseX = e.x, mouseY = e.y;\n var onMouseSelection = function (e) {\n mouseX = e.clientX;\n mouseY = e.clientY;\n };\n var session = editor.session;\n var screenAnchor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var screenCursor = screenAnchor;\n var selectionMode;\n if (editor.$mouseHandler.$enableJumpToDef) {\n if (ctrl && alt || accel && alt)\n selectionMode = shift ? \"block\" : \"add\";\n else if (alt && editor.$blockSelectEnabled)\n selectionMode = \"block\";\n }\n else {\n if (accel && !alt) {\n selectionMode = \"add\";\n if (!isMultiSelect && shift)\n return;\n }\n else if (alt && editor.$blockSelectEnabled) {\n selectionMode = \"block\";\n }\n }\n if (selectionMode && useragent.isMac && ev.ctrlKey) {\n editor.$mouseHandler.cancelContextMenu();\n }\n if (selectionMode == \"add\") {\n if (!isMultiSelect && inSelection)\n return; // dragging\n if (!isMultiSelect) {\n var range = selection.toOrientedRange();\n editor.addSelectionMarker(range);\n }\n var oldRange = selection.rangeList.rangeAtPoint(pos);\n editor.inVirtualSelectionMode = true;\n if (shift) {\n oldRange = null;\n range = selection.ranges[0] || range;\n editor.removeSelectionMarker(range);\n }\n editor.once(\"mouseup\", function () {\n var tmpSel = selection.toOrientedRange();\n if (oldRange && tmpSel.isEmpty() && isSamePoint(oldRange.cursor, tmpSel.cursor))\n selection.substractPoint(tmpSel.cursor);\n else {\n if (shift) {\n selection.substractPoint(range.cursor);\n }\n else if (range) {\n editor.removeSelectionMarker(range);\n selection.addRange(range);\n }\n selection.addRange(tmpSel);\n }\n editor.inVirtualSelectionMode = false;\n });\n }\n else if (selectionMode == \"block\") {\n e.stop();\n editor.inVirtualSelectionMode = true;\n var initialRange;\n var rectSel = [];\n var blockSelect = function () {\n var newCursor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var cursor = session.screenToDocumentPosition(newCursor.row, newCursor.column, newCursor.offsetX);\n if (isSamePoint(screenCursor, newCursor) && isSamePoint(cursor, selection.lead))\n return;\n screenCursor = newCursor;\n editor.selection.moveToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n editor.removeSelectionMarkers(rectSel);\n rectSel = selection.rectangularRangeBlock(screenCursor, screenAnchor);\n if (editor.$mouseHandler.$clickSelection && rectSel.length == 1 && rectSel[0].isEmpty())\n rectSel[0] = editor.$mouseHandler.$clickSelection.clone();\n rectSel.forEach(editor.addSelectionMarker, editor);\n editor.updateSelectionMarkers();\n };\n if (isMultiSelect && !accel) {\n selection.toSingleRange();\n }\n else if (!isMultiSelect && accel) {\n initialRange = selection.toOrientedRange();\n editor.addSelectionMarker(initialRange);\n }\n if (shift)\n screenAnchor = session.documentToScreenPosition(selection.lead);\n else\n selection.moveToPosition(pos);\n screenCursor = { row: -1, column: -1 };\n var onMouseSelectionEnd = function (e) {\n blockSelect();\n clearInterval(timerId);\n editor.removeSelectionMarkers(rectSel);\n if (!rectSel.length)\n rectSel = [selection.toOrientedRange()];\n if (initialRange) {\n editor.removeSelectionMarker(initialRange);\n selection.toSingleRange(initialRange);\n }\n for (var i = 0; i < rectSel.length; i++)\n selection.addRange(rectSel[i]);\n editor.inVirtualSelectionMode = false;\n editor.$mouseHandler.$clickSelection = null;\n };\n var onSelectionInterval = blockSelect;\n event.capture(editor.container, onMouseSelection, onMouseSelectionEnd);\n var timerId = setInterval(function () { onSelectionInterval(); }, 20);\n return e.preventDefault();\n }\n}\nexports.onMouseDown = onMouseDown;\n\n});\n\nace.define(\"ace/commands/multi_select_commands\",[\"require\",\"exports\",\"module\",\"ace/keyboard/hash_handler\"], function(require, exports, module){// commands to enter multiselect mode\nexports.defaultCommands = [{\n name: \"addCursorAbove\",\n description: \"Add cursor above\",\n exec: function (editor) { editor.selectMoreLines(-1); },\n bindKey: { win: \"Ctrl-Alt-Up\", mac: \"Ctrl-Alt-Up\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"addCursorBelow\",\n description: \"Add cursor below\",\n exec: function (editor) { editor.selectMoreLines(1); },\n bindKey: { win: \"Ctrl-Alt-Down\", mac: \"Ctrl-Alt-Down\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"addCursorAboveSkipCurrent\",\n description: \"Add cursor above (skip current)\",\n exec: function (editor) { editor.selectMoreLines(-1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Up\", mac: \"Ctrl-Alt-Shift-Up\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"addCursorBelowSkipCurrent\",\n description: \"Add cursor below (skip current)\",\n exec: function (editor) { editor.selectMoreLines(1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Down\", mac: \"Ctrl-Alt-Shift-Down\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectMoreBefore\",\n description: \"Select more before\",\n exec: function (editor) { editor.selectMore(-1); },\n bindKey: { win: \"Ctrl-Alt-Left\", mac: \"Ctrl-Alt-Left\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectMoreAfter\",\n description: \"Select more after\",\n exec: function (editor) { editor.selectMore(1); },\n bindKey: { win: \"Ctrl-Alt-Right\", mac: \"Ctrl-Alt-Right\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectNextBefore\",\n description: \"Select next before\",\n exec: function (editor) { editor.selectMore(-1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Left\", mac: \"Ctrl-Alt-Shift-Left\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectNextAfter\",\n description: \"Select next after\",\n exec: function (editor) { editor.selectMore(1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Right\", mac: \"Ctrl-Alt-Shift-Right\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"toggleSplitSelectionIntoLines\",\n description: \"Split selection into lines\",\n exec: function (editor) {\n if (editor.multiSelect.rangeCount > 1)\n editor.multiSelect.joinSelections();\n else\n editor.multiSelect.splitIntoLines();\n },\n bindKey: { win: \"Ctrl-Alt-L\", mac: \"Ctrl-Alt-L\" },\n readOnly: true\n }, {\n name: \"splitSelectionIntoLines\",\n description: \"Split into lines\",\n exec: function (editor) { editor.multiSelect.splitIntoLines(); },\n readOnly: true\n }, {\n name: \"alignCursors\",\n description: \"Align cursors\",\n exec: function (editor) { editor.alignCursors(); },\n bindKey: { win: \"Ctrl-Alt-A\", mac: \"Ctrl-Alt-A\" },\n scrollIntoView: \"cursor\"\n }, {\n name: \"findAll\",\n description: \"Find all\",\n exec: function (editor) { editor.findAll(); },\n bindKey: { win: \"Ctrl-Alt-K\", mac: \"Ctrl-Alt-G\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }];\nexports.multiSelectCommands = [{\n name: \"singleSelection\",\n description: \"Single selection\",\n bindKey: \"esc\",\n exec: function (editor) { editor.exitMultiSelectMode(); },\n scrollIntoView: \"cursor\",\n readOnly: true,\n isAvailable: function (editor) { return editor && editor.inMultiSelectMode; }\n }];\nvar HashHandler = require(\"../keyboard/hash_handler\").HashHandler;\nexports.keyboardHandler = new HashHandler(exports.multiSelectCommands);\n\n});\n\nace.define(\"ace/multi_select\",[\"require\",\"exports\",\"module\",\"ace/range_list\",\"ace/range\",\"ace/selection\",\"ace/mouse/multi_select_handler\",\"ace/lib/event\",\"ace/lib/lang\",\"ace/commands/multi_select_commands\",\"ace/search\",\"ace/edit_session\",\"ace/editor\",\"ace/config\"], function(require, exports, module){var RangeList = require(\"./range_list\").RangeList;\nvar Range = require(\"./range\").Range;\nvar Selection = require(\"./selection\").Selection;\nvar onMouseDown = require(\"./mouse/multi_select_handler\").onMouseDown;\nvar event = require(\"./lib/event\");\nvar lang = require(\"./lib/lang\");\nvar commands = require(\"./commands/multi_select_commands\");\nexports.commands = commands.defaultCommands.concat(commands.multiSelectCommands);\nvar Search = require(\"./search\").Search;\nvar search = new Search();\nfunction find(session, needle, dir) {\n search.$options.wrap = true;\n search.$options.needle = needle;\n search.$options.backwards = dir == -1;\n return search.find(session);\n}\nvar EditSession = require(\"./edit_session\").EditSession;\n(function () {\n this.getSelectionMarkers = function () {\n return this.$selectionMarkers;\n };\n}).call(EditSession.prototype);\n(function () {\n this.ranges = null;\n this.rangeList = null;\n this.addRange = function (range, $blockChangeEvents) {\n if (!range)\n return;\n if (!this.inMultiSelectMode && this.rangeCount === 0) {\n var oldRange = this.toOrientedRange();\n this.rangeList.add(oldRange);\n this.rangeList.add(range);\n if (this.rangeList.ranges.length != 2) {\n this.rangeList.removeAll();\n return $blockChangeEvents || this.fromOrientedRange(range);\n }\n this.rangeList.removeAll();\n this.rangeList.add(oldRange);\n this.$onAddRange(oldRange);\n }\n if (!range.cursor)\n range.cursor = range.end;\n var removed = this.rangeList.add(range);\n this.$onAddRange(range);\n if (removed.length)\n this.$onRemoveRange(removed);\n if (this.rangeCount > 1 && !this.inMultiSelectMode) {\n this._signal(\"multiSelect\");\n this.inMultiSelectMode = true;\n this.session.$undoSelect = false;\n this.rangeList.attach(this.session);\n }\n return $blockChangeEvents || this.fromOrientedRange(range);\n };\n this.toSingleRange = function (range) {\n range = range || this.ranges[0];\n var removed = this.rangeList.removeAll();\n if (removed.length)\n this.$onRemoveRange(removed);\n range && this.fromOrientedRange(range);\n };\n this.substractPoint = function (pos) {\n var removed = this.rangeList.substractPoint(pos);\n if (removed) {\n this.$onRemoveRange(removed);\n return removed[0];\n }\n };\n this.mergeOverlappingRanges = function () {\n var removed = this.rangeList.merge();\n if (removed.length)\n this.$onRemoveRange(removed);\n };\n this.$onAddRange = function (range) {\n this.rangeCount = this.rangeList.ranges.length;\n this.ranges.unshift(range);\n this._signal(\"addRange\", { range: range });\n };\n this.$onRemoveRange = function (removed) {\n this.rangeCount = this.rangeList.ranges.length;\n if (this.rangeCount == 1 && this.inMultiSelectMode) {\n var lastRange = this.rangeList.ranges.pop();\n removed.push(lastRange);\n this.rangeCount = 0;\n }\n for (var i = removed.length; i--;) {\n var index = this.ranges.indexOf(removed[i]);\n this.ranges.splice(index, 1);\n }\n this._signal(\"removeRange\", { ranges: removed });\n if (this.rangeCount === 0 && this.inMultiSelectMode) {\n this.inMultiSelectMode = false;\n this._signal(\"singleSelect\");\n this.session.$undoSelect = true;\n this.rangeList.detach(this.session);\n }\n lastRange = lastRange || this.ranges[0];\n if (lastRange && !lastRange.isEqual(this.getRange()))\n this.fromOrientedRange(lastRange);\n };\n this.$initRangeList = function () {\n if (this.rangeList)\n return;\n this.rangeList = new RangeList();\n this.ranges = [];\n this.rangeCount = 0;\n };\n this.getAllRanges = function () {\n return this.rangeCount ? this.rangeList.ranges.concat() : [this.getRange()];\n };\n this.splitIntoLines = function () {\n var ranges = this.ranges.length ? this.ranges : [this.getRange()];\n var newRanges = [];\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n var row = range.start.row;\n var endRow = range.end.row;\n if (row === endRow) {\n newRanges.push(range.clone());\n }\n else {\n newRanges.push(new Range(row, range.start.column, row, this.session.getLine(row).length));\n while (++row < endRow)\n newRanges.push(this.getLineRange(row, true));\n newRanges.push(new Range(endRow, 0, endRow, range.end.column));\n }\n if (i == 0 && !this.isBackwards())\n newRanges = newRanges.reverse();\n }\n this.toSingleRange();\n for (var i = newRanges.length; i--;)\n this.addRange(newRanges[i]);\n };\n this.joinSelections = function () {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n };\n this.toggleBlockSelection = function () {\n if (this.rangeCount > 1) {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n }\n else {\n var cursor = this.session.documentToScreenPosition(this.cursor);\n var anchor = this.session.documentToScreenPosition(this.anchor);\n var rectSel = this.rectangularRangeBlock(cursor, anchor);\n rectSel.forEach(this.addRange, this);\n }\n };\n this.rectangularRangeBlock = function (screenCursor, screenAnchor, includeEmptyLines) {\n var rectSel = [];\n var xBackwards = screenCursor.column < screenAnchor.column;\n if (xBackwards) {\n var startColumn = screenCursor.column;\n var endColumn = screenAnchor.column;\n var startOffsetX = screenCursor.offsetX;\n var endOffsetX = screenAnchor.offsetX;\n }\n else {\n var startColumn = screenAnchor.column;\n var endColumn = screenCursor.column;\n var startOffsetX = screenAnchor.offsetX;\n var endOffsetX = screenCursor.offsetX;\n }\n var yBackwards = screenCursor.row < screenAnchor.row;\n if (yBackwards) {\n var startRow = screenCursor.row;\n var endRow = screenAnchor.row;\n }\n else {\n var startRow = screenAnchor.row;\n var endRow = screenCursor.row;\n }\n if (startColumn < 0)\n startColumn = 0;\n if (startRow < 0)\n startRow = 0;\n if (startRow == endRow)\n includeEmptyLines = true;\n var docEnd;\n for (var row = startRow; row <= endRow; row++) {\n var range = Range.fromPoints(this.session.screenToDocumentPosition(row, startColumn, startOffsetX), this.session.screenToDocumentPosition(row, endColumn, endOffsetX));\n if (range.isEmpty()) {\n if (docEnd && isSamePoint(range.end, docEnd))\n break;\n docEnd = range.end;\n }\n range.cursor = xBackwards ? range.start : range.end;\n rectSel.push(range);\n }\n if (yBackwards)\n rectSel.reverse();\n if (!includeEmptyLines) {\n var end = rectSel.length - 1;\n while (rectSel[end].isEmpty() && end > 0)\n end--;\n if (end > 0) {\n var start = 0;\n while (rectSel[start].isEmpty())\n start++;\n }\n for (var i = end; i >= start; i--) {\n if (rectSel[i].isEmpty())\n rectSel.splice(i, 1);\n }\n }\n return rectSel;\n };\n}).call(Selection.prototype);\nvar Editor = require(\"./editor\").Editor;\n(function () {\n this.updateSelectionMarkers = function () {\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.addSelectionMarker = function (orientedRange) {\n if (!orientedRange.cursor)\n orientedRange.cursor = orientedRange.end;\n var style = this.getSelectionStyle();\n orientedRange.marker = this.session.addMarker(orientedRange, \"ace_selection\", style);\n this.session.$selectionMarkers.push(orientedRange);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n return orientedRange;\n };\n this.removeSelectionMarker = function (range) {\n if (!range.marker)\n return;\n this.session.removeMarker(range.marker);\n var index = this.session.$selectionMarkers.indexOf(range);\n if (index != -1)\n this.session.$selectionMarkers.splice(index, 1);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n };\n this.removeSelectionMarkers = function (ranges) {\n var markerList = this.session.$selectionMarkers;\n for (var i = ranges.length; i--;) {\n var range = ranges[i];\n if (!range.marker)\n continue;\n this.session.removeMarker(range.marker);\n var index = markerList.indexOf(range);\n if (index != -1)\n markerList.splice(index, 1);\n }\n this.session.selectionMarkerCount = markerList.length;\n };\n this.$onAddRange = function (e) {\n this.addSelectionMarker(e.range);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.$onRemoveRange = function (e) {\n this.removeSelectionMarkers(e.ranges);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.$onMultiSelect = function (e) {\n if (this.inMultiSelectMode)\n return;\n this.inMultiSelectMode = true;\n this.setStyle(\"ace_multiselect\");\n this.keyBinding.addKeyboardHandler(commands.keyboardHandler);\n this.commands.setDefaultHandler(\"exec\", this.$onMultiSelectExec);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.$onSingleSelect = function (e) {\n if (this.session.multiSelect.inVirtualMode)\n return;\n this.inMultiSelectMode = false;\n this.unsetStyle(\"ace_multiselect\");\n this.keyBinding.removeKeyboardHandler(commands.keyboardHandler);\n this.commands.removeDefaultHandler(\"exec\", this.$onMultiSelectExec);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n this._emit(\"changeSelection\");\n };\n this.$onMultiSelectExec = function (e) {\n var command = e.command;\n var editor = e.editor;\n if (!editor.multiSelect)\n return;\n if (!command.multiSelectAction) {\n var result = command.exec(editor, e.args || {});\n editor.multiSelect.addRange(editor.multiSelect.toOrientedRange());\n editor.multiSelect.mergeOverlappingRanges();\n }\n else if (command.multiSelectAction == \"forEach\") {\n result = editor.forEachSelection(command, e.args);\n }\n else if (command.multiSelectAction == \"forEachLine\") {\n result = editor.forEachSelection(command, e.args, true);\n }\n else if (command.multiSelectAction == \"single\") {\n editor.exitMultiSelectMode();\n result = command.exec(editor, e.args || {});\n }\n else {\n result = command.multiSelectAction(editor, e.args || {});\n }\n return result;\n };\n this.forEachSelection = function (cmd, args, options) {\n if (this.inVirtualSelectionMode)\n return;\n var keepOrder = options && options.keepOrder;\n var $byLines = options == true || options && options.$byLines;\n var session = this.session;\n var selection = this.selection;\n var rangeList = selection.rangeList;\n var ranges = (keepOrder ? selection : rangeList).ranges;\n var result;\n if (!ranges.length)\n return cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n var reg = selection._eventRegistry;\n selection._eventRegistry = {};\n var tmpSel = new Selection(session);\n this.inVirtualSelectionMode = true;\n for (var i = ranges.length; i--;) {\n if ($byLines) {\n while (i > 0 && ranges[i].start.row == ranges[i - 1].end.row)\n i--;\n }\n tmpSel.fromOrientedRange(ranges[i]);\n tmpSel.index = i;\n this.selection = session.selection = tmpSel;\n var cmdResult = cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n if (!result && cmdResult !== undefined)\n result = cmdResult;\n tmpSel.toOrientedRange(ranges[i]);\n }\n tmpSel.detach();\n this.selection = session.selection = selection;\n this.inVirtualSelectionMode = false;\n selection._eventRegistry = reg;\n selection.mergeOverlappingRanges();\n if (selection.ranges[0])\n selection.fromOrientedRange(selection.ranges[0]);\n var anim = this.renderer.$scrollAnimation;\n this.onCursorChange();\n this.onSelectionChange();\n if (anim && anim.from == anim.to)\n this.renderer.animateScrolling(anim.from);\n return result;\n };\n this.exitMultiSelectMode = function () {\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode)\n return;\n this.multiSelect.toSingleRange();\n };\n this.getSelectedText = function () {\n var text = \"\";\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var ranges = this.multiSelect.rangeList.ranges;\n var buf = [];\n for (var i = 0; i < ranges.length; i++) {\n buf.push(this.session.getTextRange(ranges[i]));\n }\n var nl = this.session.getDocument().getNewLineCharacter();\n text = buf.join(nl);\n if (text.length == (buf.length - 1) * nl.length)\n text = \"\";\n }\n else if (!this.selection.isEmpty()) {\n text = this.session.getTextRange(this.getSelectionRange());\n }\n return text;\n };\n this.$checkMultiselectChange = function (e, anchor) {\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var range = this.multiSelect.ranges[0];\n if (this.multiSelect.isEmpty() && anchor == this.multiSelect.anchor)\n return;\n var pos = anchor == this.multiSelect.anchor\n ? range.cursor == range.start ? range.end : range.start\n : range.cursor;\n if (pos.row != anchor.row\n || this.session.$clipPositionToDocument(pos.row, pos.column).column != anchor.column)\n this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange());\n else\n this.multiSelect.mergeOverlappingRanges();\n }\n };\n this.findAll = function (needle, options, additive) {\n options = options || {};\n options.needle = needle || options.needle;\n if (options.needle == undefined) {\n var range = this.selection.isEmpty()\n ? this.selection.getWordRange()\n : this.selection.getRange();\n options.needle = this.session.getTextRange(range);\n }\n this.$search.set(options);\n var ranges = this.$search.findAll(this.session);\n if (!ranges.length)\n return 0;\n var selection = this.multiSelect;\n if (!additive)\n selection.toSingleRange(ranges[0]);\n for (var i = ranges.length; i--;)\n selection.addRange(ranges[i], true);\n if (range && selection.rangeList.rangeAtPoint(range.start))\n selection.addRange(range, true);\n return ranges.length;\n };\n this.selectMoreLines = function (dir, skip) {\n var range = this.selection.toOrientedRange();\n var isBackwards = range.cursor == range.end;\n var screenLead = this.session.documentToScreenPosition(range.cursor);\n if (this.selection.$desiredColumn)\n screenLead.column = this.selection.$desiredColumn;\n var lead = this.session.screenToDocumentPosition(screenLead.row + dir, screenLead.column);\n if (!range.isEmpty()) {\n var screenAnchor = this.session.documentToScreenPosition(isBackwards ? range.end : range.start);\n var anchor = this.session.screenToDocumentPosition(screenAnchor.row + dir, screenAnchor.column);\n }\n else {\n var anchor = lead;\n }\n if (isBackwards) {\n var newRange = Range.fromPoints(lead, anchor);\n newRange.cursor = newRange.start;\n }\n else {\n var newRange = Range.fromPoints(anchor, lead);\n newRange.cursor = newRange.end;\n }\n newRange.desiredColumn = screenLead.column;\n if (!this.selection.inMultiSelectMode) {\n this.selection.addRange(range);\n }\n else {\n if (skip)\n var toRemove = range.cursor;\n }\n this.selection.addRange(newRange);\n if (toRemove)\n this.selection.substractPoint(toRemove);\n };\n this.transposeSelections = function (dir) {\n var session = this.session;\n var sel = session.multiSelect;\n var all = sel.ranges;\n for (var i = all.length; i--;) {\n var range = all[i];\n if (range.isEmpty()) {\n var tmp = session.getWordRange(range.start.row, range.start.column);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n range.end.row = tmp.end.row;\n range.end.column = tmp.end.column;\n }\n }\n sel.mergeOverlappingRanges();\n var words = [];\n for (var i = all.length; i--;) {\n var range = all[i];\n words.unshift(session.getTextRange(range));\n }\n if (dir < 0)\n words.unshift(words.pop());\n else\n words.push(words.shift());\n for (var i = all.length; i--;) {\n var range = all[i];\n var tmp = range.clone();\n session.replace(range, words[i]);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n }\n sel.fromOrientedRange(sel.ranges[0]);\n };\n this.selectMore = function (dir, skip, stopAtFirst) {\n var session = this.session;\n var sel = session.multiSelect;\n var range = sel.toOrientedRange();\n if (range.isEmpty()) {\n range = session.getWordRange(range.start.row, range.start.column);\n range.cursor = dir == -1 ? range.start : range.end;\n this.multiSelect.addRange(range);\n if (stopAtFirst)\n return;\n }\n var needle = session.getTextRange(range);\n var newRange = find(session, needle, dir);\n if (newRange) {\n newRange.cursor = dir == -1 ? newRange.start : newRange.end;\n this.session.unfold(newRange);\n this.multiSelect.addRange(newRange);\n this.renderer.scrollCursorIntoView(null, 0.5);\n }\n if (skip)\n this.multiSelect.substractPoint(range.cursor);\n };\n this.alignCursors = function () {\n var session = this.session;\n var sel = session.multiSelect;\n var ranges = sel.ranges;\n var row = -1;\n var sameRowRanges = ranges.filter(function (r) {\n if (r.cursor.row == row)\n return true;\n row = r.cursor.row;\n });\n if (!ranges.length || sameRowRanges.length == ranges.length - 1) {\n var range = this.selection.getRange();\n var fr = range.start.row, lr = range.end.row;\n var guessRange = fr == lr;\n if (guessRange) {\n var max = this.session.getLength();\n var line;\n do {\n line = this.session.getLine(lr);\n } while (/[=:]/.test(line) && ++lr < max);\n do {\n line = this.session.getLine(fr);\n } while (/[=:]/.test(line) && --fr > 0);\n if (fr < 0)\n fr = 0;\n if (lr >= max)\n lr = max - 1;\n }\n var lines = this.session.removeFullLines(fr, lr);\n lines = this.$reAlignText(lines, guessRange);\n this.session.insert({ row: fr, column: 0 }, lines.join(\"\\n\") + \"\\n\");\n if (!guessRange) {\n range.start.column = 0;\n range.end.column = lines[lines.length - 1].length;\n }\n this.selection.setRange(range);\n }\n else {\n sameRowRanges.forEach(function (r) {\n sel.substractPoint(r.cursor);\n });\n var maxCol = 0;\n var minSpace = Infinity;\n var spaceOffsets = ranges.map(function (r) {\n var p = r.cursor;\n var line = session.getLine(p.row);\n var spaceOffset = line.substr(p.column).search(/\\S/g);\n if (spaceOffset == -1)\n spaceOffset = 0;\n if (p.column > maxCol)\n maxCol = p.column;\n if (spaceOffset < minSpace)\n minSpace = spaceOffset;\n return spaceOffset;\n });\n ranges.forEach(function (r, i) {\n var p = r.cursor;\n var l = maxCol - p.column;\n var d = spaceOffsets[i] - minSpace;\n if (l > d)\n session.insert(p, lang.stringRepeat(\" \", l - d));\n else\n session.remove(new Range(p.row, p.column, p.row, p.column - l + d));\n r.start.column = r.end.column = maxCol;\n r.start.row = r.end.row = p.row;\n r.cursor = r.end;\n });\n sel.fromOrientedRange(ranges[0]);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n }\n };\n this.$reAlignText = function (lines, forceLeft) {\n var isLeftAligned = true, isRightAligned = true;\n var startW, textW, endW;\n return lines.map(function (line) {\n var m = line.match(/(\\s*)(.*?)(\\s*)([=:].*)/);\n if (!m)\n return [line];\n if (startW == null) {\n startW = m[1].length;\n textW = m[2].length;\n endW = m[3].length;\n return m;\n }\n if (startW + textW + endW != m[1].length + m[2].length + m[3].length)\n isRightAligned = false;\n if (startW != m[1].length)\n isLeftAligned = false;\n if (startW > m[1].length)\n startW = m[1].length;\n if (textW < m[2].length)\n textW = m[2].length;\n if (endW > m[3].length)\n endW = m[3].length;\n return m;\n }).map(forceLeft ? alignLeft :\n isLeftAligned ? isRightAligned ? alignRight : alignLeft : unAlign);\n function spaces(n) {\n return lang.stringRepeat(\" \", n);\n }\n function alignLeft(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(textW - m[2].length + endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function alignRight(m) {\n return !m[2] ? m[0] : spaces(startW + textW - m[2].length) + m[2]\n + spaces(endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function unAlign(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n };\n}).call(Editor.prototype);\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\nexports.onSessionChange = function (e) {\n var session = e.session;\n if (session && !session.multiSelect) {\n session.$selectionMarkers = [];\n session.selection.$initRangeList();\n session.multiSelect = session.selection;\n }\n this.multiSelect = session && session.multiSelect;\n var oldSession = e.oldSession;\n if (oldSession) {\n oldSession.multiSelect.off(\"addRange\", this.$onAddRange);\n oldSession.multiSelect.off(\"removeRange\", this.$onRemoveRange);\n oldSession.multiSelect.off(\"multiSelect\", this.$onMultiSelect);\n oldSession.multiSelect.off(\"singleSelect\", this.$onSingleSelect);\n oldSession.multiSelect.lead.off(\"change\", this.$checkMultiselectChange);\n oldSession.multiSelect.anchor.off(\"change\", this.$checkMultiselectChange);\n }\n if (session) {\n session.multiSelect.on(\"addRange\", this.$onAddRange);\n session.multiSelect.on(\"removeRange\", this.$onRemoveRange);\n session.multiSelect.on(\"multiSelect\", this.$onMultiSelect);\n session.multiSelect.on(\"singleSelect\", this.$onSingleSelect);\n session.multiSelect.lead.on(\"change\", this.$checkMultiselectChange);\n session.multiSelect.anchor.on(\"change\", this.$checkMultiselectChange);\n }\n if (session && this.inMultiSelectMode != session.selection.inMultiSelectMode) {\n if (session.selection.inMultiSelectMode)\n this.$onMultiSelect();\n else\n this.$onSingleSelect();\n }\n};\nfunction MultiSelect(editor) {\n if (editor.$multiselectOnSessionChange)\n return;\n editor.$onAddRange = editor.$onAddRange.bind(editor);\n editor.$onRemoveRange = editor.$onRemoveRange.bind(editor);\n editor.$onMultiSelect = editor.$onMultiSelect.bind(editor);\n editor.$onSingleSelect = editor.$onSingleSelect.bind(editor);\n editor.$multiselectOnSessionChange = exports.onSessionChange.bind(editor);\n editor.$checkMultiselectChange = editor.$checkMultiselectChange.bind(editor);\n editor.$multiselectOnSessionChange(editor);\n editor.on(\"changeSession\", editor.$multiselectOnSessionChange);\n editor.on(\"mousedown\", onMouseDown);\n editor.commands.addCommands(commands.defaultCommands);\n addAltCursorListeners(editor);\n}\nfunction addAltCursorListeners(editor) {\n if (!editor.textInput)\n return;\n var el = editor.textInput.getElement();\n var altCursor = false;\n event.addListener(el, \"keydown\", function (e) {\n var altDown = e.keyCode == 18 && !(e.ctrlKey || e.shiftKey || e.metaKey);\n if (editor.$blockSelectEnabled && altDown) {\n if (!altCursor) {\n editor.renderer.setMouseCursor(\"crosshair\");\n altCursor = true;\n }\n }\n else if (altCursor) {\n reset();\n }\n }, editor);\n event.addListener(el, \"keyup\", reset, editor);\n event.addListener(el, \"blur\", reset, editor);\n function reset(e) {\n if (altCursor) {\n editor.renderer.setMouseCursor(\"\");\n altCursor = false;\n }\n }\n}\nexports.MultiSelect = MultiSelect;\nrequire(\"./config\").defineOptions(Editor.prototype, \"editor\", {\n enableMultiselect: {\n set: function (val) {\n MultiSelect(this);\n if (val) {\n this.on(\"mousedown\", onMouseDown);\n }\n else {\n this.off(\"mousedown\", onMouseDown);\n }\n },\n value: true\n },\n enableBlockSelect: {\n set: function (val) {\n this.$blockSelectEnabled = val;\n },\n value: true\n }\n});\n\n});\n\nace.define(\"ace/mode/folding/fold_mode\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../../range\").Range;\nvar FoldMode = exports.FoldMode = function () { };\n(function () {\n this.foldingStartMarker = null;\n this.foldingStopMarker = null;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.foldingStartMarker.test(line))\n return \"start\";\n if (foldStyle == \"markbeginend\"\n && this.foldingStopMarker\n && this.foldingStopMarker.test(line))\n return \"end\";\n return \"\";\n };\n this.getFoldWidgetRange = function (session, foldStyle, row) {\n return null;\n };\n this.indentationBlock = function (session, row, column) {\n var re = /\\S/;\n var line = session.getLine(row);\n var startLevel = line.search(re);\n if (startLevel == -1)\n return;\n var startColumn = column || line.length;\n var maxRow = session.getLength();\n var startRow = row;\n var endRow = row;\n while (++row < maxRow) {\n var level = session.getLine(row).search(re);\n if (level == -1)\n continue;\n if (level <= startLevel) {\n var token = session.getTokenAt(row, 0);\n if (!token || token.type !== \"string\")\n break;\n }\n endRow = row;\n }\n if (endRow > startRow) {\n var endColumn = session.getLine(endRow).length;\n return new Range(startRow, startColumn, endRow, endColumn);\n }\n };\n this.openingBracketBlock = function (session, bracket, row, column, typeRe) {\n var start = { row: row, column: column + 1 };\n var end = session.$findClosingBracket(bracket, start, typeRe);\n if (!end)\n return;\n var fw = session.foldWidgets[end.row];\n if (fw == null)\n fw = session.getFoldWidget(end.row);\n if (fw == \"start\" && end.row > start.row) {\n end.row--;\n end.column = session.getLine(end.row).length;\n }\n return Range.fromPoints(start, end);\n };\n this.closingBracketBlock = function (session, bracket, row, column, typeRe) {\n var end = { row: row, column: column };\n var start = session.$findOpeningBracket(bracket, end);\n if (!start)\n return;\n start.column++;\n end.column--;\n return Range.fromPoints(start, end);\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/ext/error_marker\",[\"require\",\"exports\",\"module\",\"ace/line_widgets\",\"ace/lib/dom\",\"ace/range\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar LineWidgets = require(\"../line_widgets\").LineWidgets;\nvar dom = require(\"../lib/dom\");\nvar Range = require(\"../range\").Range;\nvar nls = require(\"../config\").nls;\nfunction binarySearch(array, needle, comparator) {\n var first = 0;\n var last = array.length - 1;\n while (first <= last) {\n var mid = (first + last) >> 1;\n var c = comparator(needle, array[mid]);\n if (c > 0)\n first = mid + 1;\n else if (c < 0)\n last = mid - 1;\n else\n return mid;\n }\n return -(first + 1);\n}\nfunction findAnnotations(session, row, dir) {\n var annotations = session.getAnnotations().sort(Range.comparePoints);\n if (!annotations.length)\n return;\n var i = binarySearch(annotations, { row: row, column: -1 }, Range.comparePoints);\n if (i < 0)\n i = -i - 1;\n if (i >= annotations.length)\n i = dir > 0 ? 0 : annotations.length - 1;\n else if (i === 0 && dir < 0)\n i = annotations.length - 1;\n var annotation = annotations[i];\n if (!annotation || !dir)\n return;\n if (annotation.row === row) {\n do {\n annotation = annotations[i += dir];\n } while (annotation && annotation.row === row);\n if (!annotation)\n return annotations.slice();\n }\n var matched = [];\n row = annotation.row;\n do {\n matched[dir < 0 ? \"unshift\" : \"push\"](annotation);\n annotation = annotations[i += dir];\n } while (annotation && annotation.row == row);\n return matched.length && matched;\n}\nexports.showErrorMarker = function (editor, dir) {\n var session = editor.session;\n if (!session.widgetManager) {\n session.widgetManager = new LineWidgets(session);\n session.widgetManager.attach(editor);\n }\n var pos = editor.getCursorPosition();\n var row = pos.row;\n var oldWidget = session.widgetManager.getWidgetsAtRow(row).filter(function (w) {\n return w.type == \"errorMarker\";\n })[0];\n if (oldWidget) {\n oldWidget.destroy();\n }\n else {\n row -= dir;\n }\n var annotations = findAnnotations(session, row, dir);\n var gutterAnno;\n if (annotations) {\n var annotation = annotations[0];\n pos.column = (annotation.pos && typeof annotation.column != \"number\"\n ? annotation.pos.sc\n : annotation.column) || 0;\n pos.row = annotation.row;\n gutterAnno = editor.renderer.$gutterLayer.$annotations[pos.row];\n }\n else if (oldWidget) {\n return;\n }\n else {\n gutterAnno = {\n text: [nls(\"Looks good!\")],\n className: \"ace_ok\"\n };\n }\n editor.session.unfold(pos.row);\n editor.selection.moveToPosition(pos);\n var w = {\n row: pos.row,\n fixedWidth: true,\n coverGutter: true,\n el: dom.createElement(\"div\"),\n type: \"errorMarker\"\n };\n var el = w.el.appendChild(dom.createElement(\"div\"));\n var arrow = w.el.appendChild(dom.createElement(\"div\"));\n arrow.className = \"error_widget_arrow \" + gutterAnno.className;\n var left = editor.renderer.$cursorLayer\n .getPixelPosition(pos).left;\n arrow.style.left = left + editor.renderer.gutterWidth - 5 + \"px\";\n w.el.className = \"error_widget_wrapper\";\n el.className = \"error_widget \" + gutterAnno.className;\n el.innerHTML = gutterAnno.text.join(\"
    \");\n el.appendChild(dom.createElement(\"div\"));\n var kb = function (_, hashId, keyString) {\n if (hashId === 0 && (keyString === \"esc\" || keyString === \"return\")) {\n w.destroy();\n return { command: \"null\" };\n }\n };\n w.destroy = function () {\n if (editor.$mouseHandler.isMousePressed)\n return;\n editor.keyBinding.removeKeyboardHandler(kb);\n session.widgetManager.removeLineWidget(w);\n editor.off(\"changeSelection\", w.destroy);\n editor.off(\"changeSession\", w.destroy);\n editor.off(\"mouseup\", w.destroy);\n editor.off(\"change\", w.destroy);\n };\n editor.keyBinding.addKeyboardHandler(kb);\n editor.on(\"changeSelection\", w.destroy);\n editor.on(\"changeSession\", w.destroy);\n editor.on(\"mouseup\", w.destroy);\n editor.on(\"change\", w.destroy);\n editor.session.widgetManager.addLineWidget(w);\n w.el.onmousedown = editor.focus.bind(editor);\n editor.renderer.scrollCursorIntoView(null, 0.5, { bottom: w.el.offsetHeight });\n};\ndom.importCssString(\"\\n .error_widget_wrapper {\\n background: inherit;\\n color: inherit;\\n border:none\\n }\\n .error_widget {\\n border-top: solid 2px;\\n border-bottom: solid 2px;\\n margin: 5px 0;\\n padding: 10px 40px;\\n white-space: pre-wrap;\\n }\\n .error_widget.ace_error, .error_widget_arrow.ace_error{\\n border-color: #ff5a5a\\n }\\n .error_widget.ace_warning, .error_widget_arrow.ace_warning{\\n border-color: #F1D817\\n }\\n .error_widget.ace_info, .error_widget_arrow.ace_info{\\n border-color: #5a5a5a\\n }\\n .error_widget.ace_ok, .error_widget_arrow.ace_ok{\\n border-color: #5aaa5a\\n }\\n .error_widget_arrow {\\n position: absolute;\\n border: solid 5px;\\n border-top-color: transparent!important;\\n border-right-color: transparent!important;\\n border-left-color: transparent!important;\\n top: -5px;\\n }\\n\", \"error_marker.css\", false);\n\n});\n\nace.define(\"ace/ace\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/range\",\"ace/editor\",\"ace/edit_session\",\"ace/undomanager\",\"ace/virtual_renderer\",\"ace/worker/worker_client\",\"ace/keyboard/hash_handler\",\"ace/placeholder\",\"ace/multi_select\",\"ace/mode/folding/fold_mode\",\"ace/theme/textmate\",\"ace/ext/error_marker\",\"ace/config\",\"ace/loader_build\"], function(require, exports, module){/**\n * The main class required to set up an Ace instance in the browser.\n *\n * @class Ace\n **/\n\"use strict\";\nrequire(\"./loader_build\")(exports)\nvar dom = require(\"./lib/dom\");\nvar Range = require(\"./range\").Range;\nvar Editor = require(\"./editor\").Editor;\nvar EditSession = require(\"./edit_session\").EditSession;\nvar UndoManager = require(\"./undomanager\").UndoManager;\nvar Renderer = require(\"./virtual_renderer\").VirtualRenderer;\nrequire(\"./worker/worker_client\");\nrequire(\"./keyboard/hash_handler\");\nrequire(\"./placeholder\");\nrequire(\"./multi_select\");\nrequire(\"./mode/folding/fold_mode\");\nrequire(\"./theme/textmate\");\nrequire(\"./ext/error_marker\");\nexports.config = require(\"./config\");\nexports.edit = function (el, options) {\n if (typeof el == \"string\") {\n var _id = el;\n el = document.getElementById(_id);\n if (!el)\n throw new Error(\"ace.edit can't find div #\" + _id);\n }\n if (el && el.env && el.env.editor instanceof Editor)\n return el.env.editor;\n var value = \"\";\n if (el && /input|textarea/i.test(el.tagName)) {\n var oldNode = el;\n value = oldNode.value;\n el = dom.createElement(\"pre\");\n oldNode.parentNode.replaceChild(el, oldNode);\n }\n else if (el) {\n value = el.textContent;\n el.innerHTML = \"\";\n }\n var doc = exports.createEditSession(value);\n var editor = new Editor(new Renderer(el), doc, options);\n var env = {\n document: doc,\n editor: editor,\n onResize: editor.resize.bind(editor, null)\n };\n if (oldNode)\n env.textarea = oldNode;\n editor.on(\"destroy\", function () {\n env.editor.container.env = null; // prevent memory leak on old ie\n });\n editor.container.env = editor.env = env;\n return editor;\n};\nexports.createEditSession = function (text, mode) {\n var doc = new EditSession(text, mode);\n doc.setUndoManager(new UndoManager());\n return doc;\n};\nexports.Range = Range;\nexports.Editor = Editor;\nexports.EditSession = EditSession;\nexports.UndoManager = UndoManager;\nexports.VirtualRenderer = Renderer;\nexports.version = exports.config.version;\n\n}); (function() {\n ace.require([\"ace/ace\"], function(a) {\n if (a) {\n a.config.init(true);\n a.define = ace.define;\n }\n var global = (function () {\n return this;\n })();\n if (!global && typeof window != \"undefined\") global = window; // can happen in strict mode\n if (!global && typeof self != \"undefined\") global = self; // can happen in webworker\n \n if (!global.ace)\n global.ace = a;\n for (var key in a) if (a.hasOwnProperty(key))\n global.ace[key] = a[key];\n global.ace[\"default\"] = global.ace;\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = global.ace;\n }\n });\n })();\n ","ace.define(\"ace/ext/beautify\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"], function(require, exports, module){// [WIP]\n\"use strict\";\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nfunction is(token, type) {\n return token.type.lastIndexOf(type + \".xml\") > -1;\n}\nexports.singletonTags = [\"area\", \"base\", \"br\", \"col\", \"command\", \"embed\", \"hr\", \"html\", \"img\", \"input\", \"keygen\", \"link\", \"meta\", \"param\", \"source\", \"track\", \"wbr\"];\nexports.blockTags = [\"article\", \"aside\", \"blockquote\", \"body\", \"div\", \"dl\", \"fieldset\", \"footer\", \"form\", \"head\", \"header\", \"html\", \"nav\", \"ol\", \"p\", \"script\", \"section\", \"style\", \"table\", \"tbody\", \"tfoot\", \"thead\", \"ul\"];\nexports.formatOptions = {\n lineBreaksAfterCommasInCurlyBlock: true\n};\nexports.beautify = function (session) {\n var iterator = new TokenIterator(session, 0, 0);\n var token = iterator.getCurrentToken();\n var tabString = session.getTabString();\n var singletonTags = exports.singletonTags;\n var blockTags = exports.blockTags;\n var formatOptions = exports.formatOptions || {};\n var nextToken;\n var breakBefore = false;\n var spaceBefore = false;\n var spaceAfter = false;\n var code = \"\";\n var value = \"\";\n var tagName = \"\";\n var depth = 0;\n var lastDepth = 0;\n var lastIndent = 0;\n var indent = 0;\n var unindent = 0;\n var roundDepth = 0;\n var curlyDepth = 0;\n var row;\n var curRow = 0;\n var rowsToAdd = 0;\n var rowTokens = [];\n var abort = false;\n var i;\n var indentNextLine = false;\n var inTag = false;\n var inCSS = false;\n var inBlock = false;\n var levels = { 0: 0 };\n var parents = [];\n var caseBody = false;\n var trimNext = function () {\n if (nextToken && nextToken.value && nextToken.type !== 'string.regexp')\n nextToken.value = nextToken.value.replace(/^\\s*/, \"\");\n };\n var trimLine = function () {\n var end = code.length - 1;\n while (true) {\n if (end == 0)\n break;\n if (code[end] !== \" \")\n break;\n end = end - 1;\n }\n code = code.slice(0, end + 1);\n };\n var trimCode = function () {\n code = code.trimRight();\n breakBefore = false;\n };\n while (token !== null) {\n curRow = iterator.getCurrentTokenRow();\n rowTokens = iterator.$rowTokens;\n nextToken = iterator.stepForward();\n if (typeof token !== \"undefined\") {\n value = token.value;\n unindent = 0;\n inCSS = (tagName === \"style\" || session.$modeId === \"ace/mode/css\");\n if (is(token, \"tag-open\")) {\n inTag = true;\n if (nextToken)\n inBlock = (blockTags.indexOf(nextToken.value) !== -1);\n if (value === \" 0; rowsToAdd--)\n code += \"\\n\";\n breakBefore = true;\n if (!is(token, \"comment\") && !token.type.match(/^(comment|string)$/))\n value = value.trimLeft();\n }\n if (value) {\n if (token.type === \"keyword\" && value.match(/^(if|else|elseif|for|foreach|while|switch)$/)) {\n parents[depth] = value;\n trimNext();\n spaceAfter = true;\n if (value.match(/^(else|elseif)$/)) {\n if (code.match(/\\}[\\s]*$/)) {\n trimCode();\n spaceBefore = true;\n }\n }\n }\n else if (token.type === \"paren.lparen\") {\n trimNext();\n if (value.substr(-1) === \"{\") {\n spaceAfter = true;\n indentNextLine = false;\n if (!inTag)\n rowsToAdd = 1;\n }\n if (value.substr(0, 1) === \"{\") {\n spaceBefore = true;\n if (code.substr(-1) !== '[' && code.trimRight().substr(-1) === '[') {\n trimCode();\n spaceBefore = false;\n }\n else if (code.trimRight().substr(-1) === ')') {\n trimCode();\n }\n else {\n trimLine();\n }\n }\n }\n else if (token.type === \"paren.rparen\") {\n unindent = 1;\n if (value.substr(0, 1) === \"}\") {\n if (parents[depth - 1] === 'case')\n unindent++;\n if (code.trimRight().substr(-1) === '{') {\n trimCode();\n }\n else {\n spaceBefore = true;\n if (inCSS)\n rowsToAdd += 2;\n }\n }\n if (value.substr(0, 1) === \"]\") {\n if (code.substr(-1) !== '}' && code.trimRight().substr(-1) === '}') {\n spaceBefore = false;\n indent++;\n trimCode();\n }\n }\n if (value.substr(0, 1) === \")\") {\n if (code.substr(-1) !== '(' && code.trimRight().substr(-1) === '(') {\n spaceBefore = false;\n indent++;\n trimCode();\n }\n }\n trimLine();\n }\n else if ((token.type === \"keyword.operator\" || token.type === \"keyword\") && value.match(/^(=|==|===|!=|!==|&&|\\|\\||and|or|xor|\\+=|.=|>|>=|<|<=|=>)$/)) {\n trimCode();\n trimNext();\n spaceBefore = true;\n spaceAfter = true;\n }\n else if (token.type === \"punctuation.operator\" && value === ';') {\n trimCode();\n trimNext();\n spaceAfter = true;\n if (inCSS)\n rowsToAdd++;\n }\n else if (token.type === \"punctuation.operator\" && value.match(/^(:|,)$/)) {\n trimCode();\n trimNext();\n if (value.match(/^(,)$/) && curlyDepth > 0 && roundDepth === 0 && formatOptions.lineBreaksAfterCommasInCurlyBlock) {\n rowsToAdd++;\n }\n else {\n spaceAfter = true;\n breakBefore = false;\n }\n }\n else if (token.type === \"support.php_tag\" && value === \"?>\" && !breakBefore) {\n trimCode();\n spaceBefore = true;\n }\n else if (is(token, \"attribute-name\") && code.substr(-1).match(/^\\s$/)) {\n spaceBefore = true;\n }\n else if (is(token, \"attribute-equals\")) {\n trimLine();\n trimNext();\n }\n else if (is(token, \"tag-close\")) {\n trimLine();\n if (value === \"/>\")\n spaceBefore = true;\n }\n else if (token.type === \"keyword\" && value.match(/^(case|default)$/)) {\n if (caseBody)\n unindent = 1;\n }\n if (breakBefore && !(token.type.match(/^(comment)$/) && !value.substr(0, 1).match(/^[/#]$/)) && !(token.type.match(/^(string)$/) && !value.substr(0, 1).match(/^['\"@]$/))) {\n indent = lastIndent;\n if (depth > lastDepth) {\n indent++;\n for (i = depth; i > lastDepth; i--)\n levels[i] = indent;\n }\n else if (depth < lastDepth)\n indent = levels[depth];\n lastDepth = depth;\n lastIndent = indent;\n if (unindent)\n indent -= unindent;\n if (indentNextLine && !roundDepth) {\n indent++;\n indentNextLine = false;\n }\n for (i = 0; i < indent; i++)\n code += tabString;\n }\n if (token.type === \"keyword\" && value.match(/^(case|default)$/)) {\n if (caseBody === false) {\n parents[depth] = value;\n depth++;\n caseBody = true;\n }\n }\n else if (token.type === \"keyword\" && value.match(/^(break)$/)) {\n if (parents[depth - 1] && parents[depth - 1].match(/^(case|default)$/)) {\n depth--;\n caseBody = false;\n }\n }\n if (token.type === \"paren.lparen\") {\n roundDepth += (value.match(/\\(/g) || []).length;\n curlyDepth += (value.match(/\\{/g) || []).length;\n depth += value.length;\n }\n if (token.type === \"keyword\" && value.match(/^(if|else|elseif|for|while)$/)) {\n indentNextLine = true;\n roundDepth = 0;\n }\n else if (!roundDepth && value.trim() && token.type !== \"comment\")\n indentNextLine = false;\n if (token.type === \"paren.rparen\") {\n roundDepth -= (value.match(/\\)/g) || []).length;\n curlyDepth -= (value.match(/\\}/g) || []).length;\n for (i = 0; i < value.length; i++) {\n depth--;\n if (value.substr(i, 1) === '}' && parents[depth] === 'case') {\n depth--;\n }\n }\n }\n if (token.type == \"text\")\n value = value.replace(/\\s+$/, \" \");\n if (spaceBefore && !breakBefore) {\n trimLine();\n if (code.substr(-1) !== \"\\n\")\n code += \" \";\n }\n code += value;\n if (spaceAfter)\n code += \" \";\n breakBefore = false;\n spaceBefore = false;\n spaceAfter = false;\n if ((is(token, \"tag-close\") && (inBlock || blockTags.indexOf(tagName) !== -1)) || (is(token, \"doctype\") && value === \">\")) {\n if (inBlock && nextToken && nextToken.value === \"\") {\n depth--;\n }\n }\n if (is(token, \"tag-name\")) {\n tagName = value;\n }\n row = curRow;\n }\n }\n token = nextToken;\n }\n code = code.trim();\n session.doc.setValue(code);\n};\nexports.commands = [{\n name: \"beautify\",\n description: \"Format selection (Beautify)\",\n exec: function (editor) {\n exports.beautify(editor.session);\n },\n bindKey: \"Ctrl-Shift-B\"\n }];\n\n}); (function() {\n ace.require([\"ace/ext/beautify\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/ext/searchbox-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){module.exports = \"\\n\\n/* ------------------------------------------------------------------------------------------\\n * Editor Search Form\\n * --------------------------------------------------------------------------------------- */\\n.ace_search {\\n background-color: #ddd;\\n color: #666;\\n border: 1px solid #cbcbcb;\\n border-top: 0 none;\\n overflow: hidden;\\n margin: 0;\\n padding: 4px 6px 0 4px;\\n position: absolute;\\n top: 0;\\n z-index: 99;\\n white-space: normal;\\n}\\n.ace_search.left {\\n border-left: 0 none;\\n border-radius: 0px 0px 5px 0px;\\n left: 0;\\n}\\n.ace_search.right {\\n border-radius: 0px 0px 0px 5px;\\n border-right: 0 none;\\n right: 0;\\n}\\n\\n.ace_search_form, .ace_replace_form {\\n margin: 0 20px 4px 0;\\n overflow: hidden;\\n line-height: 1.9;\\n}\\n.ace_replace_form {\\n margin-right: 0;\\n}\\n.ace_search_form.ace_nomatch {\\n outline: 1px solid red;\\n}\\n\\n.ace_search_field {\\n border-radius: 3px 0 0 3px;\\n background-color: white;\\n color: black;\\n border: 1px solid #cbcbcb;\\n border-right: 0 none;\\n outline: 0;\\n padding: 0;\\n font-size: inherit;\\n margin: 0;\\n line-height: inherit;\\n padding: 0 6px;\\n min-width: 17em;\\n vertical-align: top;\\n min-height: 1.8em;\\n box-sizing: content-box;\\n}\\n.ace_searchbtn {\\n border: 1px solid #cbcbcb;\\n line-height: inherit;\\n display: inline-block;\\n padding: 0 6px;\\n background: #fff;\\n border-right: 0 none;\\n border-left: 1px solid #dcdcdc;\\n cursor: pointer;\\n margin: 0;\\n position: relative;\\n color: #666;\\n}\\n.ace_searchbtn:last-child {\\n border-radius: 0 3px 3px 0;\\n border-right: 1px solid #cbcbcb;\\n}\\n.ace_searchbtn:disabled {\\n background: none;\\n cursor: default;\\n}\\n.ace_searchbtn:hover {\\n background-color: #eef1f6;\\n}\\n.ace_searchbtn.prev, .ace_searchbtn.next {\\n padding: 0px 0.7em\\n}\\n.ace_searchbtn.prev:after, .ace_searchbtn.next:after {\\n content: \\\"\\\";\\n border: solid 2px #888;\\n width: 0.5em;\\n height: 0.5em;\\n border-width: 2px 0 0 2px;\\n display:inline-block;\\n transform: rotate(-45deg);\\n}\\n.ace_searchbtn.next:after {\\n border-width: 0 2px 2px 0 ;\\n}\\n.ace_searchbtn_close {\\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\\n border-radius: 50%;\\n border: 0 none;\\n color: #656565;\\n cursor: pointer;\\n font: 16px/16px Arial;\\n padding: 0;\\n height: 14px;\\n width: 14px;\\n top: 9px;\\n right: 7px;\\n position: absolute;\\n}\\n.ace_searchbtn_close:hover {\\n background-color: #656565;\\n background-position: 50% 100%;\\n color: white;\\n}\\n\\n.ace_button {\\n margin-left: 2px;\\n cursor: pointer;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -o-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n overflow: hidden;\\n opacity: 0.7;\\n border: 1px solid rgba(100,100,100,0.23);\\n padding: 1px;\\n box-sizing: border-box!important;\\n color: black;\\n}\\n\\n.ace_button:hover {\\n background-color: #eee;\\n opacity:1;\\n}\\n.ace_button:active {\\n background-color: #ddd;\\n}\\n\\n.ace_button.checked {\\n border-color: #3399ff;\\n opacity:1;\\n}\\n\\n.ace_search_options{\\n margin-bottom: 3px;\\n text-align: right;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -o-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n clear: both;\\n}\\n\\n.ace_search_counter {\\n float: left;\\n font-family: arial;\\n padding: 0 8px;\\n}\";\n\n});\n\nace.define(\"ace/ext/searchbox\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/event\",\"ace/ext/searchbox-css\",\"ace/keyboard/hash_handler\",\"ace/lib/keys\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar event = require(\"../lib/event\");\nvar searchboxCss = require(\"./searchbox-css\");\nvar HashHandler = require(\"../keyboard/hash_handler\").HashHandler;\nvar keyUtil = require(\"../lib/keys\");\nvar nls = require(\"../config\").nls;\nvar MAX_COUNT = 999;\ndom.importCssString(searchboxCss, \"ace_searchbox\", false);\nvar SearchBox = /** @class */ (function () {\n function SearchBox(editor, range, showReplaceForm) {\n var div = dom.createElement(\"div\");\n dom.buildDom([\"div\", { class: \"ace_search right\" },\n [\"span\", { action: \"hide\", class: \"ace_searchbtn_close\" }],\n [\"div\", { class: \"ace_search_form\" },\n [\"input\", { class: \"ace_search_field\", placeholder: nls(\"Search for\"), spellcheck: \"false\" }],\n [\"span\", { action: \"findPrev\", class: \"ace_searchbtn prev\" }, \"\\u200b\"],\n [\"span\", { action: \"findNext\", class: \"ace_searchbtn next\" }, \"\\u200b\"],\n [\"span\", { action: \"findAll\", class: \"ace_searchbtn\", title: \"Alt-Enter\" }, nls(\"All\")]\n ],\n [\"div\", { class: \"ace_replace_form\" },\n [\"input\", { class: \"ace_search_field\", placeholder: nls(\"Replace with\"), spellcheck: \"false\" }],\n [\"span\", { action: \"replaceAndFindNext\", class: \"ace_searchbtn\" }, nls(\"Replace\")],\n [\"span\", { action: \"replaceAll\", class: \"ace_searchbtn\" }, nls(\"All\")]\n ],\n [\"div\", { class: \"ace_search_options\" },\n [\"span\", { action: \"toggleReplace\", class: \"ace_button\", title: nls(\"Toggle Replace mode\"),\n style: \"float:left;margin-top:-2px;padding:0 5px;\" }, \"+\"],\n [\"span\", { class: \"ace_search_counter\" }],\n [\"span\", { action: \"toggleRegexpMode\", class: \"ace_button\", title: nls(\"RegExp Search\") }, \".*\"],\n [\"span\", { action: \"toggleCaseSensitive\", class: \"ace_button\", title: nls(\"CaseSensitive Search\") }, \"Aa\"],\n [\"span\", { action: \"toggleWholeWords\", class: \"ace_button\", title: nls(\"Whole Word Search\") }, \"\\\\b\"],\n [\"span\", { action: \"searchInSelection\", class: \"ace_button\", title: nls(\"Search In Selection\") }, \"S\"]\n ]\n ], div);\n this.element = div.firstChild;\n this.setSession = this.setSession.bind(this);\n this.$init();\n this.setEditor(editor);\n dom.importCssString(searchboxCss, \"ace_searchbox\", editor.container);\n }\n SearchBox.prototype.setEditor = function (editor) {\n editor.searchBox = this;\n editor.renderer.scroller.appendChild(this.element);\n this.editor = editor;\n };\n SearchBox.prototype.setSession = function (e) {\n this.searchRange = null;\n this.$syncOptions(true);\n };\n SearchBox.prototype.$initElements = function (sb) {\n this.searchBox = sb.querySelector(\".ace_search_form\");\n this.replaceBox = sb.querySelector(\".ace_replace_form\");\n this.searchOption = sb.querySelector(\"[action=searchInSelection]\");\n this.replaceOption = sb.querySelector(\"[action=toggleReplace]\");\n this.regExpOption = sb.querySelector(\"[action=toggleRegexpMode]\");\n this.caseSensitiveOption = sb.querySelector(\"[action=toggleCaseSensitive]\");\n this.wholeWordOption = sb.querySelector(\"[action=toggleWholeWords]\");\n this.searchInput = this.searchBox.querySelector(\".ace_search_field\");\n this.replaceInput = this.replaceBox.querySelector(\".ace_search_field\");\n this.searchCounter = sb.querySelector(\".ace_search_counter\");\n };\n SearchBox.prototype.$init = function () {\n var sb = this.element;\n this.$initElements(sb);\n var _this = this;\n event.addListener(sb, \"mousedown\", function (e) {\n setTimeout(function () {\n _this.activeInput.focus();\n }, 0);\n event.stopPropagation(e);\n });\n event.addListener(sb, \"click\", function (e) {\n var t = e.target || e.srcElement;\n var action = t.getAttribute(\"action\");\n if (action && _this[action])\n _this[action]();\n else if (_this.$searchBarKb.commands[action])\n _this.$searchBarKb.commands[action].exec(_this);\n event.stopPropagation(e);\n });\n event.addCommandKeyListener(sb, function (e, hashId, keyCode) {\n var keyString = keyUtil.keyCodeToString(keyCode);\n var command = _this.$searchBarKb.findKeyCommand(hashId, keyString);\n if (command && command.exec) {\n command.exec(_this);\n event.stopEvent(e);\n }\n });\n this.$onChange = lang.delayedCall(function () {\n _this.find(false, false);\n });\n event.addListener(this.searchInput, \"input\", function () {\n _this.$onChange.schedule(20);\n });\n event.addListener(this.searchInput, \"focus\", function () {\n _this.activeInput = _this.searchInput;\n _this.searchInput.value && _this.highlight();\n });\n event.addListener(this.replaceInput, \"focus\", function () {\n _this.activeInput = _this.replaceInput;\n _this.searchInput.value && _this.highlight();\n });\n };\n SearchBox.prototype.setSearchRange = function (range) {\n this.searchRange = range;\n if (range) {\n this.searchRangeMarker = this.editor.session.addMarker(range, \"ace_active-line\");\n }\n else if (this.searchRangeMarker) {\n this.editor.session.removeMarker(this.searchRangeMarker);\n this.searchRangeMarker = null;\n }\n };\n SearchBox.prototype.$syncOptions = function (preventScroll) {\n dom.setCssClass(this.replaceOption, \"checked\", this.searchRange);\n dom.setCssClass(this.searchOption, \"checked\", this.searchOption.checked);\n this.replaceOption.textContent = this.replaceOption.checked ? \"-\" : \"+\";\n dom.setCssClass(this.regExpOption, \"checked\", this.regExpOption.checked);\n dom.setCssClass(this.wholeWordOption, \"checked\", this.wholeWordOption.checked);\n dom.setCssClass(this.caseSensitiveOption, \"checked\", this.caseSensitiveOption.checked);\n var readOnly = this.editor.getReadOnly();\n this.replaceOption.style.display = readOnly ? \"none\" : \"\";\n this.replaceBox.style.display = this.replaceOption.checked && !readOnly ? \"\" : \"none\";\n this.find(false, false, preventScroll);\n };\n SearchBox.prototype.highlight = function (re) {\n this.editor.session.highlight(re || this.editor.$search.$options.re);\n this.editor.renderer.updateBackMarkers();\n };\n SearchBox.prototype.find = function (skipCurrent, backwards, preventScroll) {\n var range = this.editor.find(this.searchInput.value, {\n skipCurrent: skipCurrent,\n backwards: backwards,\n wrap: true,\n regExp: this.regExpOption.checked,\n caseSensitive: this.caseSensitiveOption.checked,\n wholeWord: this.wholeWordOption.checked,\n preventScroll: preventScroll,\n range: this.searchRange\n });\n var noMatch = !range && this.searchInput.value;\n dom.setCssClass(this.searchBox, \"ace_nomatch\", noMatch);\n this.editor._emit(\"findSearchBox\", { match: !noMatch });\n this.highlight();\n this.updateCounter();\n };\n SearchBox.prototype.updateCounter = function () {\n var editor = this.editor;\n var regex = editor.$search.$options.re;\n var supportsUnicodeFlag = regex.unicode;\n var all = 0;\n var before = 0;\n if (regex) {\n var value = this.searchRange\n ? editor.session.getTextRange(this.searchRange)\n : editor.getValue();\n var offset = editor.session.doc.positionToIndex(editor.selection.anchor);\n if (this.searchRange)\n offset -= editor.session.doc.positionToIndex(this.searchRange.start);\n var last = regex.lastIndex = 0;\n var m;\n while ((m = regex.exec(value))) {\n all++;\n last = m.index;\n if (last <= offset)\n before++;\n if (all > MAX_COUNT)\n break;\n if (!m[0]) {\n regex.lastIndex = last += lang.skipEmptyMatch(value, last, supportsUnicodeFlag);\n if (last >= value.length)\n break;\n }\n }\n }\n this.searchCounter.textContent = nls(\"$0 of $1\", [before, (all > MAX_COUNT ? MAX_COUNT + \"+\" : all)]);\n };\n SearchBox.prototype.findNext = function () {\n this.find(true, false);\n };\n SearchBox.prototype.findPrev = function () {\n this.find(true, true);\n };\n SearchBox.prototype.findAll = function () {\n var range = this.editor.findAll(this.searchInput.value, {\n regExp: this.regExpOption.checked,\n caseSensitive: this.caseSensitiveOption.checked,\n wholeWord: this.wholeWordOption.checked\n });\n var noMatch = !range && this.searchInput.value;\n dom.setCssClass(this.searchBox, \"ace_nomatch\", noMatch);\n this.editor._emit(\"findSearchBox\", { match: !noMatch });\n this.highlight();\n this.hide();\n };\n SearchBox.prototype.replace = function () {\n if (!this.editor.getReadOnly())\n this.editor.replace(this.replaceInput.value);\n };\n SearchBox.prototype.replaceAndFindNext = function () {\n if (!this.editor.getReadOnly()) {\n this.editor.replace(this.replaceInput.value);\n this.findNext();\n }\n };\n SearchBox.prototype.replaceAll = function () {\n if (!this.editor.getReadOnly())\n this.editor.replaceAll(this.replaceInput.value);\n };\n SearchBox.prototype.hide = function () {\n this.active = false;\n this.setSearchRange(null);\n this.editor.off(\"changeSession\", this.setSession);\n this.element.style.display = \"none\";\n this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb);\n this.editor.focus();\n };\n SearchBox.prototype.show = function (value, isReplace) {\n this.active = true;\n this.editor.on(\"changeSession\", this.setSession);\n this.element.style.display = \"\";\n this.replaceOption.checked = isReplace;\n if (value)\n this.searchInput.value = value;\n this.searchInput.focus();\n this.searchInput.select();\n this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb);\n this.$syncOptions(true);\n };\n SearchBox.prototype.isFocused = function () {\n var el = document.activeElement;\n return el == this.searchInput || el == this.replaceInput;\n };\n return SearchBox;\n}());\nvar $searchBarKb = new HashHandler();\n$searchBarKb.bindKeys({\n \"Ctrl-f|Command-f\": function (sb) {\n var isReplace = sb.isReplace = !sb.isReplace;\n sb.replaceBox.style.display = isReplace ? \"\" : \"none\";\n sb.replaceOption.checked = false;\n sb.$syncOptions();\n sb.searchInput.focus();\n },\n \"Ctrl-H|Command-Option-F\": function (sb) {\n if (sb.editor.getReadOnly())\n return;\n sb.replaceOption.checked = true;\n sb.$syncOptions();\n sb.replaceInput.focus();\n },\n \"Ctrl-G|Command-G\": function (sb) {\n sb.findNext();\n },\n \"Ctrl-Shift-G|Command-Shift-G\": function (sb) {\n sb.findPrev();\n },\n \"esc\": function (sb) {\n setTimeout(function () { sb.hide(); });\n },\n \"Return\": function (sb) {\n if (sb.activeInput == sb.replaceInput)\n sb.replace();\n sb.findNext();\n },\n \"Shift-Return\": function (sb) {\n if (sb.activeInput == sb.replaceInput)\n sb.replace();\n sb.findPrev();\n },\n \"Alt-Return\": function (sb) {\n if (sb.activeInput == sb.replaceInput)\n sb.replaceAll();\n sb.findAll();\n },\n \"Tab\": function (sb) {\n (sb.activeInput == sb.replaceInput ? sb.searchInput : sb.replaceInput).focus();\n }\n});\n$searchBarKb.addCommands([{\n name: \"toggleRegexpMode\",\n bindKey: { win: \"Alt-R|Alt-/\", mac: \"Ctrl-Alt-R|Ctrl-Alt-/\" },\n exec: function (sb) {\n sb.regExpOption.checked = !sb.regExpOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"toggleCaseSensitive\",\n bindKey: { win: \"Alt-C|Alt-I\", mac: \"Ctrl-Alt-R|Ctrl-Alt-I\" },\n exec: function (sb) {\n sb.caseSensitiveOption.checked = !sb.caseSensitiveOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"toggleWholeWords\",\n bindKey: { win: \"Alt-B|Alt-W\", mac: \"Ctrl-Alt-B|Ctrl-Alt-W\" },\n exec: function (sb) {\n sb.wholeWordOption.checked = !sb.wholeWordOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"toggleReplace\",\n exec: function (sb) {\n sb.replaceOption.checked = !sb.replaceOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"searchInSelection\",\n exec: function (sb) {\n sb.searchOption.checked = !sb.searchRange;\n sb.setSearchRange(sb.searchOption.checked && sb.editor.getSelectionRange());\n sb.$syncOptions();\n }\n }]);\nvar $closeSearchBarKb = new HashHandler([{\n bindKey: \"Esc\",\n name: \"closeSearchBar\",\n exec: function (editor) {\n editor.searchBox.hide();\n }\n }]);\nSearchBox.prototype.$searchBarKb = $searchBarKb;\nSearchBox.prototype.$closeSearchBarKb = $closeSearchBarKb;\nexports.SearchBox = SearchBox;\nexports.Search = function (editor, isReplace) {\n var sb = editor.searchBox || new SearchBox(editor);\n sb.show(editor.session.getTextRange(), isReplace);\n};\n\n}); (function() {\n ace.require([\"ace/ext/searchbox\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar supportType = exports.supportType = \"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\";\nvar supportFunction = exports.supportFunction = \"rgb|rgba|url|attr|counter|counters\";\nvar supportConstant = exports.supportConstant = \"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|flex-end|flex-start|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom\";\nvar supportConstantColor = exports.supportConstantColor = \"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen\";\nvar supportConstantFonts = exports.supportConstantFonts = \"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\";\nvar numRe = exports.numRe = \"\\\\-?(?:(?:[0-9]+(?:\\\\.[0-9]+)?)|(?:\\\\.[0-9]+))\";\nvar pseudoElements = exports.pseudoElements = \"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\";\nvar pseudoClasses = exports.pseudoClasses = \"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\";\nvar CssHighlightRules = function () {\n var keywordMapper = this.createKeywordMapper({\n \"support.function\": supportFunction,\n \"support.constant\": supportConstant,\n \"support.type\": supportType,\n \"support.constant.color\": supportConstantColor,\n \"support.constant.fonts\": supportConstantFonts\n }, \"text\", true);\n this.$rules = {\n \"start\": [{\n include: [\"strings\", \"url\", \"comments\"]\n }, {\n token: \"paren.lparen\",\n regex: \"\\\\{\",\n next: \"ruleset\"\n }, {\n token: \"paren.rparen\",\n regex: \"\\\\}\"\n }, {\n token: \"string\",\n regex: \"@(?!viewport)\",\n next: \"media\"\n }, {\n token: \"keyword\",\n regex: \"#[a-z0-9-_]+\"\n }, {\n token: \"keyword\",\n regex: \"%\"\n }, {\n token: \"variable\",\n regex: \"\\\\.[a-z0-9-_]+\"\n }, {\n token: \"string\",\n regex: \":[a-z0-9-_]+\"\n }, {\n token: \"constant.numeric\",\n regex: numRe\n }, {\n token: \"constant\",\n regex: \"[a-z0-9-_]+\"\n }, {\n caseInsensitive: true\n }],\n \"media\": [{\n include: [\"strings\", \"url\", \"comments\"]\n }, {\n token: \"paren.lparen\",\n regex: \"\\\\{\",\n next: \"start\"\n }, {\n token: \"paren.rparen\",\n regex: \"\\\\}\",\n next: \"start\"\n }, {\n token: \"string\",\n regex: \";\",\n next: \"start\"\n }, {\n token: \"keyword\",\n regex: \"(?:media|supports|document|charset|import|namespace|media|supports|document\"\n + \"|page|font|keyframes|viewport|counter-style|font-feature-values\"\n + \"|swash|ornaments|annotation|stylistic|styleset|character-variant)\"\n }],\n \"comments\": [{\n token: \"comment\",\n regex: \"\\\\/\\\\*\",\n push: [{\n token: \"comment\",\n regex: \"\\\\*\\\\/\",\n next: \"pop\"\n }, {\n defaultToken: \"comment\"\n }]\n }],\n \"ruleset\": [{\n regex: \"-(webkit|ms|moz|o)-\",\n token: \"text\"\n }, {\n token: \"punctuation.operator\",\n regex: \"[:;]\"\n }, {\n token: \"paren.rparen\",\n regex: \"\\\\}\",\n next: \"start\"\n }, {\n include: [\"strings\", \"url\", \"comments\"]\n }, {\n token: [\"constant.numeric\", \"keyword\"],\n regex: \"(\" + numRe + \")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)\"\n }, {\n token: \"constant.numeric\",\n regex: numRe\n }, {\n token: \"constant.numeric\",\n regex: \"#[a-f0-9]{6}\"\n }, {\n token: \"constant.numeric\",\n regex: \"#[a-f0-9]{3}\"\n }, {\n token: [\"punctuation\", \"entity.other.attribute-name.pseudo-element.css\"],\n regex: pseudoElements\n }, {\n token: [\"punctuation\", \"entity.other.attribute-name.pseudo-class.css\"],\n regex: pseudoClasses\n }, {\n include: \"url\"\n }, {\n token: keywordMapper,\n regex: \"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"\n }, {\n caseInsensitive: true\n }],\n url: [{\n token: \"support.function\",\n regex: \"(?:url(:?-prefix)?|domain|regexp)\\\\(\",\n push: [{\n token: \"support.function\",\n regex: \"\\\\)\",\n next: \"pop\"\n }, {\n defaultToken: \"string\"\n }]\n }],\n strings: [{\n token: \"string.start\",\n regex: \"'\",\n push: [{\n token: \"string.end\",\n regex: \"'|$\",\n next: \"pop\"\n }, {\n include: \"escapes\"\n }, {\n token: \"constant.language.escape\",\n regex: /\\\\$/,\n consumeLineEnd: true\n }, {\n defaultToken: \"string\"\n }]\n }, {\n token: \"string.start\",\n regex: '\"',\n push: [{\n token: \"string.end\",\n regex: '\"|$',\n next: \"pop\"\n }, {\n include: \"escapes\"\n }, {\n token: \"constant.language.escape\",\n regex: /\\\\$/,\n consumeLineEnd: true\n }, {\n defaultToken: \"string\"\n }]\n }],\n escapes: [{\n token: \"constant.language.escape\",\n regex: /\\\\([a-fA-F\\d]{1,6}|[^a-fA-F\\d])/\n }]\n };\n this.normalizeRules();\n};\noop.inherits(CssHighlightRules, TextHighlightRules);\nexports.CssHighlightRules = CssHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar propertyMap = {\n \"background\": { \"#$0\": 1 },\n \"background-color\": { \"#$0\": 1, \"transparent\": 1, \"fixed\": 1 },\n \"background-image\": { \"url('/$0')\": 1 },\n \"background-repeat\": { \"repeat\": 1, \"repeat-x\": 1, \"repeat-y\": 1, \"no-repeat\": 1, \"inherit\": 1 },\n \"background-position\": { \"bottom\": 2, \"center\": 2, \"left\": 2, \"right\": 2, \"top\": 2, \"inherit\": 2 },\n \"background-attachment\": { \"scroll\": 1, \"fixed\": 1 },\n \"background-size\": { \"cover\": 1, \"contain\": 1 },\n \"background-clip\": { \"border-box\": 1, \"padding-box\": 1, \"content-box\": 1 },\n \"background-origin\": { \"border-box\": 1, \"padding-box\": 1, \"content-box\": 1 },\n \"border\": { \"solid $0\": 1, \"dashed $0\": 1, \"dotted $0\": 1, \"#$0\": 1 },\n \"border-color\": { \"#$0\": 1 },\n \"border-style\": { \"solid\": 2, \"dashed\": 2, \"dotted\": 2, \"double\": 2, \"groove\": 2, \"hidden\": 2, \"inherit\": 2, \"inset\": 2, \"none\": 2, \"outset\": 2, \"ridged\": 2 },\n \"border-collapse\": { \"collapse\": 1, \"separate\": 1 },\n \"bottom\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"clear\": { \"left\": 1, \"right\": 1, \"both\": 1, \"none\": 1 },\n \"color\": { \"#$0\": 1, \"rgb(#$00,0,0)\": 1 },\n \"cursor\": { \"default\": 1, \"pointer\": 1, \"move\": 1, \"text\": 1, \"wait\": 1, \"help\": 1, \"progress\": 1, \"n-resize\": 1, \"ne-resize\": 1, \"e-resize\": 1, \"se-resize\": 1, \"s-resize\": 1, \"sw-resize\": 1, \"w-resize\": 1, \"nw-resize\": 1 },\n \"display\": { \"none\": 1, \"block\": 1, \"inline\": 1, \"inline-block\": 1, \"table-cell\": 1 },\n \"empty-cells\": { \"show\": 1, \"hide\": 1 },\n \"float\": { \"left\": 1, \"right\": 1, \"none\": 1 },\n \"font-family\": { \"Arial\": 2, \"Comic Sans MS\": 2, \"Consolas\": 2, \"Courier New\": 2, \"Courier\": 2, \"Georgia\": 2, \"Monospace\": 2, \"Sans-Serif\": 2, \"Segoe UI\": 2, \"Tahoma\": 2, \"Times New Roman\": 2, \"Trebuchet MS\": 2, \"Verdana\": 1 },\n \"font-size\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"font-weight\": { \"bold\": 1, \"normal\": 1 },\n \"font-style\": { \"italic\": 1, \"normal\": 1 },\n \"font-variant\": { \"normal\": 1, \"small-caps\": 1 },\n \"height\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"left\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"letter-spacing\": { \"normal\": 1 },\n \"line-height\": { \"normal\": 1 },\n \"list-style-type\": { \"none\": 1, \"disc\": 1, \"circle\": 1, \"square\": 1, \"decimal\": 1, \"decimal-leading-zero\": 1, \"lower-roman\": 1, \"upper-roman\": 1, \"lower-greek\": 1, \"lower-latin\": 1, \"upper-latin\": 1, \"georgian\": 1, \"lower-alpha\": 1, \"upper-alpha\": 1 },\n \"margin\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-right\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-left\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-top\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-bottom\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"max-height\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"max-width\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"min-height\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"min-width\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"overflow\": { \"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1 },\n \"overflow-x\": { \"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1 },\n \"overflow-y\": { \"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1 },\n \"padding\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-top\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-right\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-bottom\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-left\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"page-break-after\": { \"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1 },\n \"page-break-before\": { \"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1 },\n \"position\": { \"absolute\": 1, \"relative\": 1, \"fixed\": 1, \"static\": 1 },\n \"right\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"table-layout\": { \"fixed\": 1, \"auto\": 1 },\n \"text-decoration\": { \"none\": 1, \"underline\": 1, \"line-through\": 1, \"blink\": 1 },\n \"text-align\": { \"left\": 1, \"right\": 1, \"center\": 1, \"justify\": 1 },\n \"text-transform\": { \"capitalize\": 1, \"uppercase\": 1, \"lowercase\": 1, \"none\": 1 },\n \"top\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"vertical-align\": { \"top\": 1, \"bottom\": 1 },\n \"visibility\": { \"hidden\": 1, \"visible\": 1 },\n \"white-space\": { \"nowrap\": 1, \"normal\": 1, \"pre\": 1, \"pre-line\": 1, \"pre-wrap\": 1 },\n \"width\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"word-spacing\": { \"normal\": 1 },\n \"filter\": { \"alpha(opacity=$0100)\": 1 },\n \"text-shadow\": { \"$02px 2px 2px #777\": 1 },\n \"text-overflow\": { \"ellipsis-word\": 1, \"clip\": 1, \"ellipsis\": 1 },\n \"-moz-border-radius\": 1,\n \"-moz-border-radius-topright\": 1,\n \"-moz-border-radius-bottomright\": 1,\n \"-moz-border-radius-topleft\": 1,\n \"-moz-border-radius-bottomleft\": 1,\n \"-webkit-border-radius\": 1,\n \"-webkit-border-top-right-radius\": 1,\n \"-webkit-border-top-left-radius\": 1,\n \"-webkit-border-bottom-right-radius\": 1,\n \"-webkit-border-bottom-left-radius\": 1,\n \"-moz-box-shadow\": 1,\n \"-webkit-box-shadow\": 1,\n \"transform\": { \"rotate($00deg)\": 1, \"skew($00deg)\": 1 },\n \"-moz-transform\": { \"rotate($00deg)\": 1, \"skew($00deg)\": 1 },\n \"-webkit-transform\": { \"rotate($00deg)\": 1, \"skew($00deg)\": 1 }\n};\nvar CssCompletions = function () {\n};\n(function () {\n this.completionsDefined = false;\n this.defineCompletions = function () {\n if (document) {\n var style = document.createElement('c').style;\n for (var i in style) {\n if (typeof style[i] !== 'string')\n continue;\n var name = i.replace(/[A-Z]/g, function (x) {\n return '-' + x.toLowerCase();\n });\n if (!propertyMap.hasOwnProperty(name))\n propertyMap[name] = 1;\n }\n }\n this.completionsDefined = true;\n };\n this.getCompletions = function (state, session, pos, prefix) {\n if (!this.completionsDefined) {\n this.defineCompletions();\n }\n if (state === 'ruleset' || session.$mode.$id == \"ace/mode/scss\") {\n var line = session.getLine(pos.row).substr(0, pos.column);\n var inParens = /\\([^)]*$/.test(line);\n if (inParens) {\n line = line.substr(line.lastIndexOf('(') + 1);\n }\n if (/:[^;]+$/.test(line)) {\n /([\\w\\-]+):[^:]*$/.test(line);\n return this.getPropertyValueCompletions(state, session, pos, prefix);\n }\n else {\n return this.getPropertyCompletions(state, session, pos, prefix, inParens);\n }\n }\n return [];\n };\n this.getPropertyCompletions = function (state, session, pos, prefix, skipSemicolon) {\n skipSemicolon = skipSemicolon || false;\n var properties = Object.keys(propertyMap);\n return properties.map(function (property) {\n return {\n caption: property,\n snippet: property + ': $0' + (skipSemicolon ? '' : ';'),\n meta: \"property\",\n score: 1000000\n };\n });\n };\n this.getPropertyValueCompletions = function (state, session, pos, prefix) {\n var line = session.getLine(pos.row).substr(0, pos.column);\n var property = (/([\\w\\-]+):[^:]*$/.exec(line) || {})[1];\n if (!property)\n return [];\n var values = [];\n if (property in propertyMap && typeof propertyMap[property] === \"object\") {\n values = Object.keys(propertyMap[property]);\n }\n return values.map(function (value) {\n return {\n caption: value,\n snippet: value,\n meta: \"property value\",\n score: 1000000\n };\n });\n };\n}).call(CssCompletions.prototype);\nexports.CssCompletions = CssCompletions;\n\n});\n\nace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar CstyleBehaviour = require(\"./cstyle\").CstyleBehaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar CssBehaviour = function () {\n this.inherit(CstyleBehaviour);\n this.add(\"colon\", \"insertion\", function (state, action, editor, session, text) {\n if (text === ':' && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (token && token.value.match(/\\s+/)) {\n token = iterator.stepBackward();\n }\n if (token && token.type === 'support.type') {\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === ':') {\n return {\n text: '',\n selection: [1, 1]\n };\n }\n if (/^(\\s+[^;]|\\s*$)/.test(line.substring(cursor.column))) {\n return {\n text: ':;',\n selection: [1, 1]\n };\n }\n }\n }\n });\n this.add(\"colon\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected === ':') {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (token && token.value.match(/\\s+/)) {\n token = iterator.stepBackward();\n }\n if (token && token.type === 'support.type') {\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.end.column, range.end.column + 1);\n if (rightChar === ';') {\n range.end.column++;\n return range;\n }\n }\n }\n });\n this.add(\"semicolon\", \"insertion\", function (state, action, editor, session, text) {\n if (text === ';' && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === ';') {\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n });\n this.add(\"!important\", \"insertion\", function (state, action, editor, session, text) {\n if (text === '!' && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (/^\\s*(;|}|$)/.test(line.substring(cursor.column))) {\n return {\n text: '!important',\n selection: [10, 10]\n };\n }\n }\n });\n};\noop.inherits(CssBehaviour, CstyleBehaviour);\nexports.CssBehaviour = CssBehaviour;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CssCompletions = require(\"./css_completions\").CssCompletions;\nvar CssBehaviour = require(\"./behaviour/css\").CssBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar Mode = function () {\n this.HighlightRules = CssHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CssBehaviour();\n this.$completer = new CssCompletions();\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.foldingRules = \"cStyle\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokens = this.getTokenizer().getLineTokens(line, state).tokens;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n var match = line.match(/^.*\\{\\s*$/);\n if (match) {\n indent += tab;\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.getCompletions = function (state, session, pos, prefix) {\n return this.$completer.getCompletions(state, session, pos, prefix);\n };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/css_worker\", \"Worker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"annotate\", function (e) {\n session.setAnnotations(e.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/css\";\n this.snippetFileId = \"ace/snippets/css\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/css\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar DocCommentHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: \"comment.doc.tag\",\n regex: \"@\\\\w+(?=\\\\s|$)\"\n }, DocCommentHighlightRules.getTagRule(), {\n defaultToken: \"comment.doc\",\n caseInsensitive: true\n }\n ]\n };\n};\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\nDocCommentHighlightRules.getTagRule = function (start) {\n return {\n token: \"comment.doc.tag.storage.type\",\n regex: \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n};\nDocCommentHighlightRules.getStartRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\/\\\\*(?=\\\\*)\",\n next: start\n };\n};\nDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\*\\\\/\",\n next: start\n };\n};\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/golang_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar GolangHighlightRules = function () {\n var keywords = (\"else|break|case|return|goto|if|const|select|\" +\n \"continue|struct|default|switch|for|range|\" +\n \"func|import|package|chan|defer|fallthrough|go|interface|map|range|\" +\n \"select|type|var\");\n var builtinTypes = (\"string|uint8|uint16|uint32|uint64|int8|int16|int32|int64|float32|\" +\n \"float64|complex64|complex128|byte|rune|uint|int|uintptr|bool|error\");\n var builtinFunctions = (\"new|close|cap|copy|panic|panicln|print|println|len|make|delete|real|recover|imag|append\");\n var builtinConstants = (\"nil|true|false|iota\");\n var keywordMapper = this.createKeywordMapper({\n \"keyword\": keywords,\n \"constant.language\": builtinConstants,\n \"support.function\": builtinFunctions,\n \"support.type\": builtinTypes\n }, \"\");\n var stringEscapeRe = \"\\\\\\\\(?:[0-7]{3}|x\\\\h{2}|u{4}|U\\\\h{6}|[abfnrtv'\\\"\\\\\\\\])\".replace(/\\\\h/g, \"[a-fA-F\\\\d]\");\n this.$rules = {\n \"start\": [\n {\n token: \"comment\",\n regex: \"\\\\/\\\\/.*$\"\n },\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n {\n token: \"comment.start\",\n regex: \"\\\\/\\\\*\",\n next: \"comment\"\n }, {\n token: \"string\",\n regex: /\"(?:[^\"\\\\]|\\\\.)*?\"/\n }, {\n token: \"string\",\n regex: '`',\n next: \"bqstring\"\n }, {\n token: \"constant.numeric\",\n regex: \"'(?:[^\\\\'\\uD800-\\uDBFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|\" + stringEscapeRe.replace('\"', '') + \")'\"\n }, {\n token: \"constant.numeric\",\n regex: \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token: [\"keyword\", \"text\", \"entity.name.function\"],\n regex: \"(func)(\\\\s+)([a-zA-Z_$][a-zA-Z0-9_$]*)\\\\b\"\n }, {\n token: function (val) {\n if (val[val.length - 1] == \"(\") {\n return [{\n type: keywordMapper(val.slice(0, -1)) || \"support.function\",\n value: val.slice(0, -1)\n }, {\n type: \"paren.lparen\",\n value: val.slice(-1)\n }];\n }\n return keywordMapper(val) || \"identifier\";\n },\n regex: \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\\\\(?\"\n }, {\n token: \"keyword.operator\",\n regex: \"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=\"\n }, {\n token: \"punctuation.operator\",\n regex: \"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"\n }, {\n token: \"paren.lparen\",\n regex: \"[[({]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\])}]\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }\n ],\n \"comment\": [\n {\n token: \"comment.end\",\n regex: \"\\\\*\\\\/\",\n next: \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ],\n \"bqstring\": [\n {\n token: \"string\",\n regex: '`',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }\n ]\n };\n this.embedRules(DocCommentHighlightRules, \"doc-\", [DocCommentHighlightRules.getEndRule(\"start\")]);\n};\noop.inherits(GolangHighlightRules, TextHighlightRules);\nexports.GolangHighlightRules = GolangHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/golang\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/golang_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar GolangHighlightRules = require(\"./golang_highlight_rules\").GolangHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar Mode = function () {\n this.HighlightRules = GolangHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.foldingRules = new CStyleFoldMode();\n this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n var endState = tokenizedLine.state;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n }; //end getNextLineIndent\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.$id = \"ace/mode/golang\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/golang\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/jsdoc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar JsDocCommentHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: [\"comment.doc.tag\", \"comment.doc.text\", \"lparen.doc\"],\n regex: \"(@(?:param|member|typedef|property|namespace|var|const|callback))(\\\\s*)({)\",\n push: [\n {\n token: \"lparen.doc\",\n regex: \"{\",\n push: [\n {\n include: \"doc-syntax\"\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }\n ]\n }, {\n token: [\"rparen.doc\", \"text.doc\", \"variable.parameter.doc\", \"lparen.doc\", \"variable.parameter.doc\", \"rparen.doc\"],\n regex: /(})(\\s*)(?:([\\w=:\\/\\.]+)|(?:(\\[)([\\w=:\\/\\.]+)(\\])))/,\n next: \"pop\"\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }, {\n include: \"doc-syntax\"\n }, {\n defaultToken: \"text.doc\"\n }\n ]\n }, {\n token: [\"comment.doc.tag\", \"text.doc\", \"lparen.doc\"],\n regex: \"(@(?:returns?|yields|type|this|suppress|public|protected|private|package|modifies|\"\n + \"implements|external|exception|throws|enum|define|extends))(\\\\s*)({)\",\n push: [\n {\n token: \"lparen.doc\",\n regex: \"{\",\n push: [\n {\n include: \"doc-syntax\"\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }\n ]\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }, {\n include: \"doc-syntax\"\n }, {\n defaultToken: \"text.doc\"\n }\n ]\n }, {\n token: [\"comment.doc.tag\", \"text.doc\", \"variable.parameter.doc\"],\n regex: \"(@(?:alias|memberof|instance|module|name|lends|namespace|external|this|template|\"\n + \"requires|param|implements|function|extends|typedef|mixes|constructor|var|\"\n + \"memberof\\\\!|event|listens|exports|class|constructs|interface|emits|fires|\"\n + \"throws|const|callback|borrows|augments))(\\\\s+)(\\\\w[\\\\w#\\.:\\/~\\\"\\\\-]*)?\"\n }, {\n token: [\"comment.doc.tag\", \"text.doc\", \"variable.parameter.doc\"],\n regex: \"(@method)(\\\\s+)(\\\\w[\\\\w\\.\\\\(\\\\)]*)\"\n }, {\n token: \"comment.doc.tag\",\n regex: \"@access\\\\s+(?:private|public|protected)\"\n }, {\n token: \"comment.doc.tag\",\n regex: \"@kind\\\\s+(?:class|constant|event|external|file|function|member|mixin|module|namespace|typedef)\"\n }, {\n token: \"comment.doc.tag\",\n regex: \"@\\\\w+(?=\\\\s|$)\"\n },\n JsDocCommentHighlightRules.getTagRule(),\n {\n defaultToken: \"comment.doc\",\n caseInsensitive: true\n }\n ],\n \"doc-syntax\": [{\n token: \"operator.doc\",\n regex: /[|:]/\n }, {\n token: \"paren.doc\",\n regex: /[\\[\\]]/\n }]\n };\n this.normalizeRules();\n};\noop.inherits(JsDocCommentHighlightRules, TextHighlightRules);\nJsDocCommentHighlightRules.getTagRule = function (start) {\n return {\n token: \"comment.doc.tag.storage.type\",\n regex: \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n};\nJsDocCommentHighlightRules.getStartRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\/\\\\*(?=\\\\*)\",\n next: start\n };\n};\nJsDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\*\\\\/\",\n next: start\n };\n};\nexports.JsDocCommentHighlightRules = JsDocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/jsdoc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./jsdoc_comment_highlight_rules\").JsDocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\nvar JavaScriptHighlightRules = function (options) {\n var keywordMapper = this.createKeywordMapper({\n \"variable.language\": \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Symbol|\" + // Constructors\n \"Namespace|QName|XML|XMLList|\" + // E4X\n \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\" +\n \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\" +\n \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\" + // Errors\n \"SyntaxError|TypeError|URIError|\" +\n \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n \"isNaN|parseFloat|parseInt|\" +\n \"JSON|Math|\" + // Other\n \"this|arguments|prototype|window|document\",\n \"keyword\": \"const|yield|import|get|set|async|await|\" +\n \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static|constructor\",\n \"storage.type\": \"const|let|var|function\",\n \"constant.language\": \"null|Infinity|NaN|undefined\",\n \"support.function\": \"alert\",\n \"constant.language.boolean\": \"true|false\"\n }, \"identifier\");\n var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n \"u[0-9a-fA-F]{4}|\" + // unicode\n \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n \"[0-2][0-7]{0,2}|\" + // oct\n \"3[0-7][0-7]?|\" + // oct\n \"[4-7][0-7]?|\" + //oct\n \".)\";\n this.$rules = {\n \"no_regex\": [\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n comments(\"no_regex\"),\n {\n token: \"string\",\n regex: \"'(?=.)\",\n next: \"qstring\"\n }, {\n token: \"string\",\n regex: '\"(?=.)',\n next: \"qqstring\"\n }, {\n token: \"constant.numeric\",\n regex: /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/\n }, {\n token: \"constant.numeric\",\n regex: /(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"support.function\",\n \"punctuation.operator\", \"entity.name.function\", \"text\", \"keyword.operator\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)\",\n next: \"function_arguments\"\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\",\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex: \"(function\\\\*?)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"entity.name.function\", \"text\", \"punctuation.operator\",\n \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex: \"(:)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: \"keyword\",\n regex: \"from(?=\\\\s*('|\\\"))\"\n }, {\n token: \"keyword\",\n regex: \"(?:\" + kwBeforeRe + \")\\\\b\",\n next: \"start\"\n }, {\n token: \"support.constant\",\n regex: /that\\b/\n }, {\n token: [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n regex: /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n }, {\n token: keywordMapper,\n regex: identifierRe\n }, {\n token: \"punctuation.operator\",\n regex: /[.](?![.])/,\n next: \"property\"\n }, {\n token: \"storage.type\",\n regex: /=>/,\n next: \"start\"\n }, {\n token: \"keyword.operator\",\n regex: /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n next: \"start\"\n }, {\n token: \"punctuation.operator\",\n regex: /[?:,;.]/,\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: /[\\[({]/,\n next: \"start\"\n }, {\n token: \"paren.rparen\",\n regex: /[\\])}]/\n }, {\n token: \"comment\",\n regex: /^#!.*$/\n }\n ],\n property: [{\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\",\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: \"punctuation.operator\",\n regex: /[.](?![.])/\n }, {\n token: \"support.function\",\n regex: /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|lter|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward|rEach)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n }, {\n token: \"support.function.dom\",\n regex: /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n }, {\n token: \"support.constant\",\n regex: /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n }, {\n token: \"identifier\",\n regex: identifierRe\n }, {\n regex: \"\",\n token: \"empty\",\n next: \"no_regex\"\n }\n ],\n \"start\": [\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n comments(\"start\"),\n {\n token: \"string.regexp\",\n regex: \"\\\\/\",\n next: \"regex\"\n }, {\n token: \"text\",\n regex: \"\\\\s+|^$\",\n next: \"start\"\n }, {\n token: \"empty\",\n regex: \"\",\n next: \"no_regex\"\n }\n ],\n \"regex\": [\n {\n token: \"regexp.keyword.operator\",\n regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n }, {\n token: \"string.regexp\",\n regex: \"/[sxngimy]*\",\n next: \"no_regex\"\n }, {\n token: \"invalid\",\n regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n }, {\n token: \"constant.language.escape\",\n regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n }, {\n token: \"constant.language.delimiter\",\n regex: /\\|/\n }, {\n token: \"constant.language.escape\",\n regex: /\\[\\^?/,\n next: \"regex_character_class\"\n }, {\n token: \"empty\",\n regex: \"$\",\n next: \"no_regex\"\n }, {\n defaultToken: \"string.regexp\"\n }\n ],\n \"regex_character_class\": [\n {\n token: \"regexp.charclass.keyword.operator\",\n regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n }, {\n token: \"constant.language.escape\",\n regex: \"]\",\n next: \"regex\"\n }, {\n token: \"constant.language.escape\",\n regex: \"-\"\n }, {\n token: \"empty\",\n regex: \"$\",\n next: \"no_regex\"\n }, {\n defaultToken: \"string.regexp.charachterclass\"\n }\n ],\n \"default_parameter\": [\n {\n token: \"string\",\n regex: \"'(?=.)\",\n push: [\n {\n token: \"string\",\n regex: \"'|$\",\n next: \"pop\"\n }, {\n include: \"qstring\"\n }\n ]\n }, {\n token: \"string\",\n regex: '\"(?=.)',\n push: [\n {\n token: \"string\",\n regex: '\"|$',\n next: \"pop\"\n }, {\n include: \"qqstring\"\n }\n ]\n }, {\n token: \"constant.language\",\n regex: \"null|Infinity|NaN|undefined\"\n }, {\n token: \"constant.numeric\",\n regex: /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/\n }, {\n token: \"constant.numeric\",\n regex: /(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/\n }, {\n token: \"punctuation.operator\",\n regex: \",\",\n next: \"function_arguments\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n token: \"punctuation.operator\",\n regex: \"$\"\n }, {\n token: \"empty\",\n regex: \"\",\n next: \"no_regex\"\n }\n ],\n \"function_arguments\": [\n comments(\"function_arguments\"),\n {\n token: \"variable.parameter\",\n regex: identifierRe\n }, {\n token: \"punctuation.operator\",\n regex: \",\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n token: \"punctuation.operator\",\n regex: \"$\"\n }, {\n token: \"empty\",\n regex: \"\",\n next: \"no_regex\"\n }\n ],\n \"qqstring\": [\n {\n token: \"constant.language.escape\",\n regex: escapedRe\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n consumeLineEnd: true\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"no_regex\"\n }, {\n defaultToken: \"string\"\n }\n ],\n \"qstring\": [\n {\n token: \"constant.language.escape\",\n regex: escapedRe\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n consumeLineEnd: true\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"no_regex\"\n }, {\n defaultToken: \"string\"\n }\n ]\n };\n if (!options || !options.noES6) {\n this.$rules.no_regex.unshift({\n regex: \"[{}]\", onMatch: function (val, state, stack) {\n this.next = val == \"{\" ? this.nextState : \"\";\n if (val == \"{\" && stack.length) {\n stack.unshift(\"start\", state);\n }\n else if (val == \"}\" && stack.length) {\n stack.shift();\n this.next = stack.shift();\n if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n return \"paren.quasi.end\";\n }\n return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n },\n nextState: \"start\"\n }, {\n token: \"string.quasi.start\",\n regex: /`/,\n push: [{\n token: \"constant.language.escape\",\n regex: escapedRe\n }, {\n token: \"paren.quasi.start\",\n regex: /\\${/,\n push: \"start\"\n }, {\n token: \"string.quasi.end\",\n regex: /`/,\n next: \"pop\"\n }, {\n defaultToken: \"string.quasi\"\n }]\n }, {\n token: [\"variable.parameter\", \"text\"],\n regex: \"(\" + identifierRe + \")(\\\\s*)(?=\\\\=>)\"\n }, {\n token: \"paren.lparen\",\n regex: \"(\\\\()(?=.+\\\\s*=>)\",\n next: \"function_arguments\"\n }, {\n token: \"variable.language\",\n regex: \"(?:(?:(?:Weak)?(?:Set|Map))|Promise)\\\\b\"\n });\n this.$rules[\"function_arguments\"].unshift({\n token: \"keyword.operator\",\n regex: \"=\",\n next: \"default_parameter\"\n }, {\n token: \"keyword.operator\",\n regex: \"\\\\.{3}\"\n });\n this.$rules[\"property\"].unshift({\n token: \"support.function\",\n regex: \"(findIndex|repeat|startsWith|endsWith|includes|isSafeInteger|trunc|cbrt|log2|log10|sign|then|catch|\"\n + \"finally|resolve|reject|race|any|all|allSettled|keys|entries|isInteger)\\\\b(?=\\\\()\"\n }, {\n token: \"constant.language\",\n regex: \"(?:MAX_SAFE_INTEGER|MIN_SAFE_INTEGER|EPSILON)\\\\b\"\n });\n if (!options || options.jsx != false)\n JSX.call(this);\n }\n this.embedRules(DocCommentHighlightRules, \"doc-\", [DocCommentHighlightRules.getEndRule(\"no_regex\")]);\n this.normalizeRules();\n};\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\nfunction JSX() {\n var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n var jsxTag = {\n onMatch: function (val, state, stack) {\n var offset = val.charAt(1) == \"/\" ? 2 : 1;\n if (offset == 1) {\n if (state != this.nextState)\n stack.unshift(this.next, this.nextState, 0);\n else\n stack.unshift(this.next);\n stack[2]++;\n }\n else if (offset == 2) {\n if (state == this.nextState) {\n stack[1]--;\n if (!stack[1] || stack[1] < 0) {\n stack.shift();\n stack.shift();\n }\n }\n }\n return [{\n type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n value: val.slice(0, offset)\n }, {\n type: \"meta.tag.tag-name.xml\",\n value: val.substr(offset)\n }];\n },\n regex: \"\",\n onMatch: function (value, currentState, stack) {\n if (currentState == stack[0])\n stack.shift();\n if (value.length == 2) {\n if (stack[0] == this.nextState)\n stack[1]--;\n if (!stack[1] || stack[1] < 0) {\n stack.splice(0, 2);\n }\n }\n this.next = stack[0] || \"start\";\n return [{ type: this.token, value: value }];\n },\n nextState: \"jsx\"\n },\n jsxJsRule,\n comments(\"jsxAttributes\"),\n {\n token: \"entity.other.attribute-name.xml\",\n regex: tagRegex\n }, {\n token: \"keyword.operator.attribute-equals.xml\",\n regex: \"=\"\n }, {\n token: \"text.tag-whitespace.xml\",\n regex: \"\\\\s+\"\n }, {\n token: \"string.attribute-value.xml\",\n regex: \"'\",\n stateName: \"jsx_attr_q\",\n push: [\n { token: \"string.attribute-value.xml\", regex: \"'\", next: \"pop\" },\n { include: \"reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n }, {\n token: \"string.attribute-value.xml\",\n regex: '\"',\n stateName: \"jsx_attr_qq\",\n push: [\n { token: \"string.attribute-value.xml\", regex: '\"', next: \"pop\" },\n { include: \"reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n },\n jsxTag\n ];\n this.$rules.reference = [{\n token: \"constant.language.escape.reference.xml\",\n regex: \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }];\n}\nfunction comments(next) {\n return [\n {\n token: \"comment\",\n regex: /\\/\\*/,\n next: [\n DocCommentHighlightRules.getTagRule(),\n { token: \"comment\", regex: \"\\\\*\\\\/\", next: next || \"pop\" },\n { defaultToken: \"comment\", caseInsensitive: true }\n ]\n }, {\n token: \"comment\",\n regex: \"\\\\/\\\\/\",\n next: [\n DocCommentHighlightRules.getTagRule(),\n { token: \"comment\", regex: \"$|^\", next: next || \"pop\" },\n { defaultToken: \"comment\", caseInsensitive: true }\n ]\n }\n ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar Mode = function () {\n this.HighlightRules = JavaScriptHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CstyleBehaviour();\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.$quotes = { '\"': '\"', \"'\": \"'\", \"`\": \"`\" };\n this.$pairQuotesAfter = {\n \"`\": /\\w/\n };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n var endState = tokenizedLine.state;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\" || state == \"no_regex\") {\n var match = line.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n else if (state == \"doc-start\") {\n if (endState == \"start\" || endState == \"no_regex\") {\n return \"\";\n }\n var match = line.match(/^\\s*(\\/?)\\*/);\n if (match) {\n if (match[1]) {\n indent += \" \";\n }\n indent += \"* \";\n }\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/javascript_worker\", \"JavaScriptWorker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"annotate\", function (results) {\n session.setAnnotations(results.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/javascript\";\n this.snippetFileId = \"ace/snippets/javascript\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/javascript\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/json_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar JsonHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: \"variable\",\n regex: '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]\\\\s*(?=:)'\n }, {\n token: \"string\",\n regex: '\"',\n next: \"string\"\n }, {\n token: \"constant.numeric\",\n regex: \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token: \"constant.language.boolean\",\n regex: \"(?:true|false)\\\\b\"\n }, {\n token: \"text\",\n regex: \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n }, {\n token: \"comment\",\n regex: \"\\\\/\\\\/.*$\"\n }, {\n token: \"comment.start\",\n regex: \"\\\\/\\\\*\",\n next: \"comment\"\n }, {\n token: \"paren.lparen\",\n regex: \"[[({]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\])}]\"\n }, {\n token: \"punctuation.operator\",\n regex: /[,]/\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }\n ],\n \"string\": [\n {\n token: \"constant.language.escape\",\n regex: /\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[\"\\\\\\/bfnrt])/\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }\n ],\n \"comment\": [\n {\n token: \"comment.end\",\n regex: \"\\\\*\\\\/\",\n next: \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ]\n };\n};\noop.inherits(JsonHighlightRules, TextHighlightRules);\nexports.JsonHighlightRules = JsonHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/json\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/json_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\",\"ace/worker/worker_client\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar HighlightRules = require(\"./json_highlight_rules\").JsonHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar Mode = function () {\n this.HighlightRules = HighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = this.$defaultBehaviour;\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/json_worker\", \"JsonWorker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"annotate\", function (e) {\n session.setAnnotations(e.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/json\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/json\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar DocCommentHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: \"comment.doc.tag\",\n regex: \"@\\\\w+(?=\\\\s|$)\"\n }, DocCommentHighlightRules.getTagRule(), {\n defaultToken: \"comment.doc\",\n caseInsensitive: true\n }\n ]\n };\n};\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\nDocCommentHighlightRules.getTagRule = function (start) {\n return {\n token: \"comment.doc.tag.storage.type\",\n regex: \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n};\nDocCommentHighlightRules.getStartRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\/\\\\*(?=\\\\*)\",\n next: start\n };\n};\nDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\*\\\\/\",\n next: start\n };\n};\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/jsx_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar JsxHighlightRules = function () {\n var keywords = lang.arrayToMap((\"break|do|instanceof|typeof|case|else|new|var|catch|finally|return|void|continue|for|switch|default|while|function|this|\" +\n \"if|throw|\" +\n \"delete|in|try|\" +\n \"class|extends|super|import|from|into|implements|interface|static|mixin|override|abstract|final|\" +\n \"number|int|string|boolean|variant|\" +\n \"log|assert\").split(\"|\"));\n var buildinConstants = lang.arrayToMap((\"null|true|false|NaN|Infinity|__FILE__|__LINE__|undefined\").split(\"|\"));\n var reserved = lang.arrayToMap((\"debugger|with|\" +\n \"const|export|\" +\n \"let|private|public|yield|protected|\" +\n \"extern|native|as|operator|__fake__|__readonly__\").split(\"|\"));\n var identifierRe = \"[a-zA-Z_][a-zA-Z0-9_]*\\\\b\";\n this.$rules = {\n \"start\": [\n {\n token: \"comment\",\n regex: \"\\\\/\\\\/.*$\"\n },\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n {\n token: \"comment\",\n regex: \"\\\\/\\\\*\",\n next: \"comment\"\n }, {\n token: \"string.regexp\",\n regex: \"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"\n }, {\n token: \"string\",\n regex: '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n }, {\n token: \"string\",\n regex: \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n }, {\n token: \"constant.numeric\",\n regex: \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token: \"constant.language.boolean\",\n regex: \"(?:true|false)\\\\b\"\n }, {\n token: [\n \"storage.type\",\n \"text\",\n \"entity.name.function\"\n ],\n regex: \"(function)(\\\\s+)(\" + identifierRe + \")\"\n }, {\n token: function (value) {\n if (value == \"this\")\n return \"variable.language\";\n else if (value == \"function\")\n return \"storage.type\";\n else if (keywords.hasOwnProperty(value) || reserved.hasOwnProperty(value))\n return \"keyword\";\n else if (buildinConstants.hasOwnProperty(value))\n return \"constant.language\";\n else if (/^_?[A-Z][a-zA-Z0-9_]*$/.test(value))\n return \"language.support.class\";\n else\n return \"identifier\";\n },\n regex: identifierRe\n }, {\n token: \"keyword.operator\",\n regex: \"!|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"\n }, {\n token: \"punctuation.operator\",\n regex: \"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"\n }, {\n token: \"paren.lparen\",\n regex: \"[[({<]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\])}>]\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }\n ],\n \"comment\": [\n {\n token: \"comment\",\n regex: \"\\\\*\\\\/\",\n next: \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ]\n };\n this.embedRules(DocCommentHighlightRules, \"doc-\", [DocCommentHighlightRules.getEndRule(\"start\")]);\n};\noop.inherits(JsxHighlightRules, TextHighlightRules);\nexports.JsxHighlightRules = JsxHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/jsx\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/jsx_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JsxHighlightRules = require(\"./jsx_highlight_rules\").JsxHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nfunction Mode() {\n this.HighlightRules = JsxHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = this.$defaultBehaviour;\n this.foldingRules = new CStyleFoldMode();\n}\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.$id = \"ace/mode/jsx\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/jsx\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/python_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){/*\n * TODO: python delimiters\n */\n\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar PythonHighlightRules = function () {\n var keywords = (\"and|as|assert|break|class|continue|def|del|elif|else|except|exec|\" +\n \"finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|\" +\n \"raise|return|try|while|with|yield|async|await|nonlocal\");\n var builtinConstants = (\"True|False|None|NotImplemented|Ellipsis|__debug__\");\n var builtinFunctions = (\"abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|\" +\n \"eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|\" +\n \"binfile|bin|iter|property|tuple|bool|filter|len|range|type|bytearray|\" +\n \"float|list|raw_input|unichr|callable|format|locals|reduce|unicode|\" +\n \"chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|\" +\n \"cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|\" +\n \"__import__|complex|hash|min|apply|delattr|help|next|setattr|set|\" +\n \"buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern|\" +\n \"ascii|breakpoint|bytes\");\n var keywordMapper = this.createKeywordMapper({\n \"invalid.deprecated\": \"debugger\",\n \"support.function\": builtinFunctions,\n \"variable.language\": \"self|cls\",\n \"constant.language\": builtinConstants,\n \"keyword\": keywords\n }, \"identifier\");\n var strPre = \"[uU]?\";\n var strRawPre = \"[rR]\";\n var strFormatPre = \"[fF]\";\n var strRawFormatPre = \"(?:[rR][fF]|[fF][rR])\";\n var decimalInteger = \"(?:(?:[1-9]\\\\d*)|(?:0))\";\n var octInteger = \"(?:0[oO]?[0-7]+)\";\n var hexInteger = \"(?:0[xX][\\\\dA-Fa-f]+)\";\n var binInteger = \"(?:0[bB][01]+)\";\n var integer = \"(?:\" + decimalInteger + \"|\" + octInteger + \"|\" + hexInteger + \"|\" + binInteger + \")\";\n var exponent = \"(?:[eE][+-]?\\\\d+)\";\n var fraction = \"(?:\\\\.\\\\d+)\";\n var intPart = \"(?:\\\\d+)\";\n var pointFloat = \"(?:(?:\" + intPart + \"?\" + fraction + \")|(?:\" + intPart + \"\\\\.))\";\n var exponentFloat = \"(?:(?:\" + pointFloat + \"|\" + intPart + \")\" + exponent + \")\";\n var floatNumber = \"(?:\" + exponentFloat + \"|\" + pointFloat + \")\";\n var stringEscape = \"\\\\\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\\\\\abfnrtv'\\\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})\";\n this.$rules = {\n \"start\": [{\n token: \"comment\",\n regex: \"#.*$\"\n }, {\n token: \"string\",\n regex: strPre + '\"{3}',\n next: \"qqstring3\"\n }, {\n token: \"string\",\n regex: strPre + '\"(?=.)',\n next: \"qqstring\"\n }, {\n token: \"string\",\n regex: strPre + \"'{3}\",\n next: \"qstring3\"\n }, {\n token: \"string\",\n regex: strPre + \"'(?=.)\",\n next: \"qstring\"\n }, {\n token: \"string\",\n regex: strRawPre + '\"{3}',\n next: \"rawqqstring3\"\n }, {\n token: \"string\",\n regex: strRawPre + '\"(?=.)',\n next: \"rawqqstring\"\n }, {\n token: \"string\",\n regex: strRawPre + \"'{3}\",\n next: \"rawqstring3\"\n }, {\n token: \"string\",\n regex: strRawPre + \"'(?=.)\",\n next: \"rawqstring\"\n }, {\n token: \"string\",\n regex: strFormatPre + '\"{3}',\n next: \"fqqstring3\"\n }, {\n token: \"string\",\n regex: strFormatPre + '\"(?=.)',\n next: \"fqqstring\"\n }, {\n token: \"string\",\n regex: strFormatPre + \"'{3}\",\n next: \"fqstring3\"\n }, {\n token: \"string\",\n regex: strFormatPre + \"'(?=.)\",\n next: \"fqstring\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + '\"{3}',\n next: \"rfqqstring3\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + '\"(?=.)',\n next: \"rfqqstring\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + \"'{3}\",\n next: \"rfqstring3\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + \"'(?=.)\",\n next: \"rfqstring\"\n }, {\n token: \"keyword.operator\",\n regex: \"\\\\+|\\\\-|\\\\*|\\\\*\\\\*|\\\\/|\\\\/\\\\/|%|@|<<|>>|&|\\\\||\\\\^|~|<|>|<=|=>|==|!=|<>|=\"\n }, {\n token: \"punctuation\",\n regex: \",|:|;|\\\\->|\\\\+=|\\\\-=|\\\\*=|\\\\/=|\\\\/\\\\/=|%=|@=|&=|\\\\|=|^=|>>=|<<=|\\\\*\\\\*=\"\n }, {\n token: \"paren.lparen\",\n regex: \"[\\\\[\\\\(\\\\{]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\]\\\\)\\\\}]\"\n }, {\n token: [\"keyword\", \"text\", \"entity.name.function\"],\n regex: \"(def|class)(\\\\s+)([\\\\u00BF-\\\\u1FFF\\\\u2C00-\\\\uD7FF\\\\w]+)\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n include: \"constants\"\n }],\n \"qqstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"qstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"qqstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"qqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"qstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"qstring\"\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqqstring3\": [{\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqstring3\": [{\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqqstring\": [{\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"rawqqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqstring\": [{\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"rawqstring\"\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqqstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqqstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"fqqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqqstring3\": [{\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqstring3\": [{\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqqstring\": [{\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"rfqqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqstring\": [{\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqstringParRules\": [{\n token: \"paren.lparen\",\n regex: \"[\\\\[\\\\(]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\]\\\\)]\"\n }, {\n token: \"string\",\n regex: \"\\\\s+\"\n }, {\n token: \"string\",\n regex: \"'[^']*'\"\n }, {\n token: \"string\",\n regex: '\"[^\"]*\"'\n }, {\n token: \"function.support\",\n regex: \"(!s|!r|!a)\"\n }, {\n include: \"constants\"\n }, {\n token: 'paren.rparen',\n regex: \"}\",\n next: 'pop'\n }, {\n token: 'paren.lparen',\n regex: \"{\",\n push: \"fqstringParRules\"\n }],\n \"constants\": [{\n token: \"constant.numeric\",\n regex: \"(?:\" + floatNumber + \"|\\\\d+)[jJ]\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: floatNumber\n }, {\n token: \"constant.numeric\",\n regex: integer + \"[lL]\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: integer + \"\\\\b\"\n }, {\n token: [\"punctuation\", \"function.support\"],\n regex: \"(\\\\.)([a-zA-Z_]+)\\\\b\"\n }, {\n token: keywordMapper,\n regex: \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n }]\n };\n this.normalizeRules();\n};\noop.inherits(PythonHighlightRules, TextHighlightRules);\nexports.PythonHighlightRules = PythonHighlightRules;\n\n});\n\nace.define(\"ace/mode/folding/pythonic\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (markers) {\n this.foldingStartMarker = new RegExp(\"([\\\\[{])(?:\\\\s*)$|(\" + markers + \")(?:\\\\s*)(?:#.*)?$\");\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.getFoldWidgetRange = function (session, foldStyle, row) {\n var line = session.getLine(row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, match.index);\n if (match[2])\n return this.indentationBlock(session, row, match.index + match[2].length);\n return this.indentationBlock(session, row);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/python\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/python_highlight_rules\",\"ace/mode/folding/pythonic\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar PythonHighlightRules = require(\"./python_highlight_rules\").PythonHighlightRules;\nvar PythonFoldMode = require(\"./folding/pythonic\").FoldMode;\nvar Range = require(\"../range\").Range;\nvar Mode = function () {\n this.HighlightRules = PythonHighlightRules;\n this.foldingRules = new PythonFoldMode(\"\\\\:\");\n this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"#\";\n this.$pairQuotesAfter = {\n \"'\": /[ruf]/i,\n '\"': /[ruf]/i\n };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[:]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n };\n var outdents = {\n \"pass\": 1,\n \"return\": 1,\n \"raise\": 1,\n \"break\": 1,\n \"continue\": 1\n };\n this.checkOutdent = function (state, line, input) {\n if (input !== \"\\r\\n\" && input !== \"\\r\" && input !== \"\\n\")\n return false;\n var tokens = this.getTokenizer().getLineTokens(line.trim(), state).tokens;\n if (!tokens)\n return false;\n do {\n var last = tokens.pop();\n } while (last && (last.type == \"comment\" || (last.type == \"text\" && last.value.match(/^\\s+$/))));\n if (!last)\n return false;\n return (last.type == \"keyword\" && outdents[last.value]);\n };\n this.autoOutdent = function (state, doc, row) {\n row += 1;\n var indent = this.$getIndent(doc.getLine(row));\n var tab = doc.getTabString();\n if (indent.slice(-tab.length) == tab)\n doc.remove(new Range(row, indent.length - tab.length, row, indent.length));\n };\n this.$id = \"ace/mode/python\";\n this.snippetFileId = \"ace/snippets/python\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/python\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar XmlHighlightRules = function (normalize) {\n var tagRegex = \"[_:a-zA-Z\\xc0-\\uffff][-_:.a-zA-Z0-9\\xc0-\\uffff]*\";\n this.$rules = {\n start: [\n { token: \"string.cdata.xml\", regex: \"<\\\\!\\\\[CDATA\\\\[\", next: \"cdata\" },\n {\n token: [\"punctuation.instruction.xml\", \"keyword.instruction.xml\"],\n regex: \"(<\\\\?)(\" + tagRegex + \")\", next: \"processing_instruction\"\n },\n { token: \"comment.start.xml\", regex: \"<\\\\!--\", next: \"comment\" },\n {\n token: [\"xml-pe.doctype.xml\", \"xml-pe.doctype.xml\"],\n regex: \"(<\\\\!)(DOCTYPE)(?=[\\\\s])\", next: \"doctype\", caseInsensitive: true\n },\n { include: \"tag\" },\n { token: \"text.end-tag-open.xml\", regex: \"\",\n next: \"start\"\n }],\n doctype: [\n { include: \"whitespace\" },\n { include: \"string\" },\n { token: \"xml-pe.doctype.xml\", regex: \">\", next: \"start\" },\n { token: \"xml-pe.xml\", regex: \"[-_a-zA-Z0-9:]+\" },\n { token: \"punctuation.int-subset\", regex: \"\\\\[\", push: \"int_subset\" }\n ],\n int_subset: [{\n token: \"text.xml\",\n regex: \"\\\\s+\"\n }, {\n token: \"punctuation.int-subset.xml\",\n regex: \"]\",\n next: \"pop\"\n }, {\n token: [\"punctuation.markup-decl.xml\", \"keyword.markup-decl.xml\"],\n regex: \"(<\\\\!)(\" + tagRegex + \")\",\n push: [{\n token: \"text\",\n regex: \"\\\\s+\"\n },\n {\n token: \"punctuation.markup-decl.xml\",\n regex: \">\",\n next: \"pop\"\n },\n { include: \"string\" }]\n }],\n cdata: [\n { token: \"string.cdata.xml\", regex: \"\\\\]\\\\]>\", next: \"start\" },\n { token: \"text.xml\", regex: \"\\\\s+\" },\n { token: \"text.xml\", regex: \"(?:[^\\\\]]|\\\\](?!\\\\]>))+\" }\n ],\n comment: [\n { token: \"comment.end.xml\", regex: \"-->\", next: \"start\" },\n { defaultToken: \"comment.xml\" }\n ],\n reference: [{\n token: \"constant.language.escape.reference.xml\",\n regex: \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }],\n attr_reference: [{\n token: \"constant.language.escape.reference.attribute-value.xml\",\n regex: \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }],\n tag: [{\n token: [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.tag-name.xml\"],\n regex: \"(?:(<)|(\", next: \"start\" }\n ]\n }],\n tag_whitespace: [\n { token: \"text.tag-whitespace.xml\", regex: \"\\\\s+\" }\n ],\n whitespace: [\n { token: \"text.whitespace.xml\", regex: \"\\\\s+\" }\n ],\n string: [{\n token: \"string.xml\",\n regex: \"'\",\n push: [\n { token: \"string.xml\", regex: \"'\", next: \"pop\" },\n { defaultToken: \"string.xml\" }\n ]\n }, {\n token: \"string.xml\",\n regex: '\"',\n push: [\n { token: \"string.xml\", regex: '\"', next: \"pop\" },\n { defaultToken: \"string.xml\" }\n ]\n }],\n attributes: [{\n token: \"entity.other.attribute-name.xml\",\n regex: tagRegex\n }, {\n token: \"keyword.operator.attribute-equals.xml\",\n regex: \"=\"\n }, {\n include: \"tag_whitespace\"\n }, {\n include: \"attribute_value\"\n }],\n attribute_value: [{\n token: \"string.attribute-value.xml\",\n regex: \"'\",\n push: [\n { token: \"string.attribute-value.xml\", regex: \"'\", next: \"pop\" },\n { include: \"attr_reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n }, {\n token: \"string.attribute-value.xml\",\n regex: '\"',\n push: [\n { token: \"string.attribute-value.xml\", regex: '\"', next: \"pop\" },\n { include: \"attr_reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n }]\n };\n if (this.constructor === XmlHighlightRules)\n this.normalizeRules();\n};\n(function () {\n this.embedTagRules = function (HighlightRules, prefix, tag) {\n this.$rules.tag.unshift({\n token: [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n regex: \"(<)(\" + tag + \"(?=\\\\s|>|$))\",\n next: [\n { include: \"attributes\" },\n { token: \"meta.tag.punctuation.tag-close.xml\", regex: \"/?>\", next: prefix + \"start\" }\n ]\n });\n this.$rules[tag + \"-end\"] = [\n { include: \"attributes\" },\n { token: \"meta.tag.punctuation.tag-close.xml\", regex: \"/?>\", next: \"start\",\n onMatch: function (value, currentState, stack) {\n stack.splice(0);\n return this.token;\n } }\n ];\n this.embedRules(HighlightRules, prefix, [{\n token: [\"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n regex: \"(|$))\",\n next: tag + \"-end\"\n }, {\n token: \"string.cdata.xml\",\n regex: \"<\\\\!\\\\[CDATA\\\\[\"\n }, {\n token: \"string.cdata.xml\",\n regex: \"\\\\]\\\\]>\"\n }]);\n };\n}).call(TextHighlightRules.prototype);\noop.inherits(XmlHighlightRules, TextHighlightRules);\nexports.XmlHighlightRules = XmlHighlightRules;\n\n});\n\nace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\nfunction is(token, type) {\n return token && token.type.lastIndexOf(type + \".xml\") > -1;\n}\nvar XmlBehaviour = function () {\n this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '\"' || text == \"'\") {\n var quote = text;\n var selected = session.doc.getTextRange(editor.getSelectionRange());\n if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n return {\n text: quote + selected + quote,\n selection: false\n };\n }\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (rightChar == quote && (is(token, \"attribute-value\") || is(token, \"string\"))) {\n return {\n text: \"\",\n selection: [1, 1]\n };\n }\n if (!token)\n token = iterator.stepBackward();\n if (!token)\n return;\n while (is(token, \"tag-whitespace\") || is(token, \"whitespace\")) {\n token = iterator.stepBackward();\n }\n var rightSpace = !rightChar || rightChar.match(/\\s/);\n if (is(token, \"attribute-equals\") && (rightSpace || rightChar == '>') || (is(token, \"decl-attribute-equals\") && (rightSpace || rightChar == '?'))) {\n return {\n text: quote + quote,\n selection: [1, 1]\n };\n }\n }\n });\n this.add(\"string_dquotes\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n this.add(\"autoclosing\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '>') {\n var position = editor.getSelectionRange().start;\n var iterator = new TokenIterator(session, position.row, position.column);\n var token = iterator.getCurrentToken() || iterator.stepBackward();\n if (!token || !(is(token, \"tag-name\") || is(token, \"tag-whitespace\") || is(token, \"attribute-name\") || is(token, \"attribute-equals\") || is(token, \"attribute-value\")))\n return;\n if (is(token, \"reference.attribute-value\"))\n return;\n if (is(token, \"attribute-value\")) {\n var tokenEndColumn = iterator.getCurrentTokenColumn() + token.value.length;\n if (position.column < tokenEndColumn)\n return;\n if (position.column == tokenEndColumn) {\n var nextToken = iterator.stepForward();\n if (nextToken && is(nextToken, \"attribute-value\"))\n return;\n iterator.stepBackward();\n }\n }\n if (/^\\s*>/.test(session.getLine(position.row).slice(position.column)))\n return;\n while (!is(token, \"tag-name\")) {\n token = iterator.stepBackward();\n if (token.value == \"<\") {\n token = iterator.stepForward();\n break;\n }\n }\n var tokenRow = iterator.getCurrentTokenRow();\n var tokenColumn = iterator.getCurrentTokenColumn();\n if (is(iterator.stepBackward(), \"end-tag-open\"))\n return;\n var element = token.value;\n if (tokenRow == position.row)\n element = element.substring(0, position.column - tokenColumn);\n if (this.voidElements.hasOwnProperty(element.toLowerCase()))\n return;\n return {\n text: \">\" + \"\",\n selection: [1, 1]\n };\n }\n });\n this.add(\"autoindent\", \"insertion\", function (state, action, editor, session, text) {\n if (text == \"\\n\") {\n var cursor = editor.getCursorPosition();\n var line = session.getLine(cursor.row);\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (token && token.type.indexOf(\"tag-close\") !== -1) {\n if (token.value == \"/>\")\n return;\n while (token && token.type.indexOf(\"tag-name\") === -1) {\n token = iterator.stepBackward();\n }\n if (!token) {\n return;\n }\n var tag = token.value;\n var row = iterator.getCurrentTokenRow();\n token = iterator.stepBackward();\n if (!token || token.type.indexOf(\"end-tag\") !== -1) {\n return;\n }\n if (this.voidElements && !this.voidElements[tag]) {\n var nextToken = session.getTokenAt(cursor.row, cursor.column + 1);\n var line = session.getLine(row);\n var nextIndent = this.$getIndent(line);\n var indent = nextIndent + session.getTabString();\n if (nextToken && nextToken.value === \" -1;\n}\n(function () {\n this.getFoldWidget = function (session, foldStyle, row) {\n var tag = this._getFirstTagInLine(session, row);\n if (!tag)\n return this.getCommentFoldWidget(session, row);\n if (tag.closing || (!tag.tagName && tag.selfClosing))\n return foldStyle === \"markbeginend\" ? \"end\" : \"\";\n if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase()))\n return \"\";\n if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column))\n return \"\";\n return \"start\";\n };\n this.getCommentFoldWidget = function (session, row) {\n if (/comment/.test(session.getState(row)) && /';\n break;\n }\n }\n return tag;\n }\n else if (is(token, \"tag-close\")) {\n tag.selfClosing = token.value == '/>';\n return tag;\n }\n tag.start.column += token.value.length;\n }\n return null;\n };\n this._findEndTagInLine = function (session, row, tagName, startColumn) {\n var tokens = session.getTokens(row);\n var column = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n column += token.value.length;\n if (column < startColumn)\n continue;\n if (is(token, \"end-tag-open\")) {\n token = tokens[i + 1];\n if (token && token.value == tagName)\n return true;\n }\n }\n return false;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row) {\n var tags = session.getMatchingTags({ row: row, column: 0 });\n if (tags) {\n return new Range(tags.openTag.end.row, tags.openTag.end.column, tags.closeTag.start.row, tags.closeTag.start.column);\n }\n else {\n return this.getCommentFoldWidget(session, row)\n && session.getCommentFoldRange(row, session.getLine(row).length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/xml_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/xml\",\"ace/worker/worker_client\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextMode = require(\"./text\").Mode;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\nvar XmlBehaviour = require(\"./behaviour/xml\").XmlBehaviour;\nvar XmlFoldMode = require(\"./folding/xml\").FoldMode;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar Mode = function () {\n this.HighlightRules = XmlHighlightRules;\n this.$behaviour = new XmlBehaviour();\n this.foldingRules = new XmlFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.voidElements = lang.arrayToMap([]);\n this.blockComment = { start: \"\" };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/xml_worker\", \"Worker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"error\", function (e) {\n session.setAnnotations(e.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/xml\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/xml\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/theme/github-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){module.exports = \"/* CSS style content from github's default pygments highlighter template.\\n Cursor and selection styles from textmate.css. */\\n.ace-github .ace_gutter {\\n background: #e8e8e8;\\n color: #AAA;\\n}\\n\\n.ace-github {\\n background: #fff;\\n color: #000;\\n}\\n\\n.ace-github .ace_keyword {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_string {\\n color: #D14;\\n}\\n\\n.ace-github .ace_variable.ace_class {\\n color: teal;\\n}\\n\\n.ace-github .ace_constant.ace_numeric {\\n color: #099;\\n}\\n\\n.ace-github .ace_constant.ace_buildin {\\n color: #0086B3;\\n}\\n\\n.ace-github .ace_support.ace_function {\\n color: #0086B3;\\n}\\n\\n.ace-github .ace_comment {\\n color: #998;\\n font-style: italic;\\n}\\n\\n.ace-github .ace_variable.ace_language {\\n color: #0086B3;\\n}\\n\\n.ace-github .ace_paren {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_boolean {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_string.ace_regexp {\\n color: #009926;\\n font-weight: normal;\\n}\\n\\n.ace-github .ace_variable.ace_instance {\\n color: teal;\\n}\\n\\n.ace-github .ace_constant.ace_language {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_cursor {\\n color: black;\\n}\\n\\n.ace-github.ace_focus .ace_marker-layer .ace_active-line {\\n background: rgb(255, 255, 204);\\n}\\n.ace-github .ace_marker-layer .ace_active-line {\\n background: rgb(245, 245, 245);\\n}\\n\\n.ace-github .ace_marker-layer .ace_selection {\\n background: rgb(181, 213, 255);\\n}\\n\\n.ace-github.ace_multiselect .ace_selection.ace_start {\\n box-shadow: 0 0 3px 0px white;\\n}\\n/* bold keywords cause cursor issues for some fonts */\\n/* this disables bold style for editor and keeps for static highlighter */\\n.ace-github.ace_nobold .ace_line > span {\\n font-weight: normal !important;\\n}\\n\\n.ace-github .ace_marker-layer .ace_step {\\n background: rgb(252, 255, 0);\\n}\\n\\n.ace-github .ace_marker-layer .ace_stack {\\n background: rgb(164, 229, 101);\\n}\\n\\n.ace-github .ace_marker-layer .ace_bracket {\\n margin: -1px 0 0 -1px;\\n border: 1px solid rgb(192, 192, 192);\\n}\\n\\n.ace-github .ace_gutter-active-line {\\n background-color : rgba(0, 0, 0, 0.07);\\n}\\n\\n.ace-github .ace_marker-layer .ace_selected-word {\\n background: rgb(250, 250, 255);\\n border: 1px solid rgb(200, 200, 250);\\n}\\n\\n.ace-github .ace_invisible {\\n color: #BFBFBF\\n}\\n\\n.ace-github .ace_print-margin {\\n width: 1px;\\n background: #e8e8e8;\\n}\\n\\n.ace-github .ace_indent-guide {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\n}\\n\\n.ace-github .ace_indent-guide-active {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC\\\") right repeat-y;\\n}\\n\";\n\n});\n\nace.define(\"ace/theme/github\",[\"require\",\"exports\",\"module\",\"ace/theme/github-css\",\"ace/lib/dom\"], function(require, exports, module){exports.isDark = false;\nexports.cssClass = \"ace-github\";\nexports.cssText = require(\"./github-css\");\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass, false);\n\n}); (function() {\n ace.require([\"ace/theme/github\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","module.exports = require(\"react-dom\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"\";","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"prop-types\");","import { createContext } from 'react';\n\nconst AccordionContext = createContext();\n\nexport default AccordionContext;\n","import { createContext } from 'react';\n\nconst AccordionItemContext = createContext();\n\nexport default AccordionItemContext;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Icon({\n className,\n family,\n type,\n weight,\n ...rest\n}) {\n function getCSSClasses() {\n const fontFamily = family || 'fa';\n const fontWeight = fontFamily === 'fa' ? `fa-${weight || 'light'}` : '';\n\n return [\n 'tyk-icon',\n fontFamily !== 'fa' && fontFamily,\n `${fontFamily}-${type}`,\n fontWeight,\n className,\n ].filter(Boolean).join(' ');\n }\n\n return ;\n}\n\nIcon.propTypes = {\n className: PropTypes.string,\n family: PropTypes.string,\n type: PropTypes.string.isRequired,\n};\n\nexport default Icon;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../Icon';\nimport AccordionItemContext from './AccordionItemContext';\n\nfunction ItemTrigger({ wrap }) {\n const { collapsed, disabled, toggleChange } = useContext(AccordionItemContext);\n\n const iconType = collapsed ? 'chevron-down' : 'chevron-up';\n const classes = [\n 'tyk-accordion__trigger',\n disabled && 'tyk-accordion__trigger--disabled',\n ].filter(Boolean).join(' ');\n const trigger = (\n \n \n \n );\n\n return wrap\n ?
    {trigger}
    \n : trigger;\n}\n\nItemTrigger.propTypes = {\n wrap: PropTypes.bool,\n};\n\nexport default ItemTrigger;\n","import React, {\n useMemo, useState, useContext, forwardRef,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport AccordionContext from './AccordionContext';\nimport AccordionItemContext from './AccordionItemContext';\nimport ItemTrigger from './AccordionItemTrigger';\n\nfunction AccordionItem({\n collapsed: collapsedProp,\n children,\n className,\n disabled,\n}, ref) {\n const { arrow } = useContext(AccordionContext);\n const [collapsed, setCollapsed] = useState(collapsedProp);\n\n const toggleChange = () => {\n if (disabled) {\n return;\n }\n\n setCollapsed(!collapsed);\n };\n\n const classes = useMemo(() => [\n 'tyk-accordion__item',\n arrow.expandToContent\n ? `tyk-accordion__item--trigger-position-${arrow.position}`\n : 'tyk-accordion__item--trigger-in-header',\n className,\n collapsed === false && 'tyk-accordion__item--active',\n ].filter(Boolean).join(' '), [arrow, className, collapsed]);\n\n const contextValue = useMemo(() => ({\n collapsed,\n disabled,\n toggleChange,\n }), [collapsed, disabled, toggleChange]);\n\n return (\n
    \n \n {arrow.expandToContent && (\n \n )}\n {children}\n \n
    \n );\n}\n\nAccordionItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n collapsed: PropTypes.bool,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n};\n\nAccordionItem.defaultProps = {\n collapsed: false,\n};\n\nexport default forwardRef(AccordionItem);\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../Icon';\nimport AccordionContext from './AccordionContext';\nimport AccordionItemContext from './AccordionItemContext';\nimport ItemTrigger from './AccordionItemTrigger';\n\nfunction AccordionItemHeader({ className, children }) {\n const { collapsed, disabled, toggleChange } = useContext(AccordionItemContext);\n const { usearrowastrigger, arrow } = useContext(AccordionContext);\n const iconType = collapsed ? 'chevron-down' : 'chevron-up';\n const classes = [\n 'tyk-accordion__item-header',\n usearrowastrigger && 'tyk-accordion__arrow-trigger',\n className,\n ].filter(Boolean).join(' ');\n\n return (\n
    \n {\n !usearrowastrigger\n ? (\n \n {children}\n \n \n )\n : (\n <>\n {!arrow.expandToContent && arrow.position === 'left' && (\n \n )}\n
    {children}
    \n {!arrow.expandToContent && arrow.position === 'right' && (\n \n )}\n \n )\n }\n
    \n );\n}\n\nAccordionItemHeader.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n};\n\nexport default AccordionItemHeader;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-transition-group\");","import { useCallback, useState, useLayoutEffect } from 'react';\n\nconst getSize = (el) => {\n if (!el) {\n return {\n width: 0,\n height: 0,\n };\n }\n\n return {\n width: el.offsetWidth,\n height: el.offsetHeight,\n };\n};\n\nconst useComponentSize = (ref) => {\n const [componentSize, setComponentSize] = useState(getSize(ref ? ref.current : {}));\n const handleResize = useCallback(() => {\n if (ref.current) {\n setComponentSize(getSize(ref.current));\n }\n }, [ref]);\n\n useLayoutEffect(() => {\n handleResize();\n\n let resizeObserver = new ResizeObserver(() => {\n handleResize();\n });\n resizeObserver.observe(ref.current);\n\n return () => {\n resizeObserver.disconnect(ref.current);\n resizeObserver = null;\n };\n }, [ref.current]);\n\n return componentSize;\n};\n\n/** @component */\nexport default useComponentSize;\n","import { useEffect, useRef } from 'react';\n\nconst useEventListener = (eventName, handler, element) => {\n const savedHandler = useRef();\n useEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n\n useEffect(() => {\n const isSupported = element?.addEventListener;\n if (!isSupported) {\n // eslint-disable-next-line consistent-return\n return;\n }\n\n const eventListener = (event) => savedHandler.current(event);\n element.addEventListener(eventName, eventListener);\n\n // eslint-disable-next-line consistent-return\n return () => {\n element.removeEventListener(eventName, eventListener);\n };\n }, [eventName, element]);\n};\n\n/** @component */\nexport default useEventListener;\n","import React, {\n useRef, useState, useCallback, useEffect,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { CSSTransition } from 'react-transition-group';\nimport { useEventListener, useComponentSize } from '../../hooks';\n\n/**\n * Collapsible is a component that helps you to collapse/expand any type of content\n */\nfunction Collapsible({\n className,\n collapsed,\n children,\n ...rest\n}) {\n const contentContainer = useRef(null);\n const collapseWrapper = useRef(null);\n const refContainerSize = useComponentSize(contentContainer);\n const [contentContainerStyle, setContentContainerStyle] = useState({\n // eslint-disable-next-line\n height: (collapsed) ? 0 : 'auto',\n });\n\n const setHeight = (height) => {\n setContentContainerStyle({\n height: `${height}px`,\n });\n };\n\n const getHeight = () => (contentContainer.current ? contentContainer.current.clientHeight : 0);\n\n const onEnter = () => {\n setHeight(getHeight());\n };\n\n const onExit = () => {\n setHeight(0);\n };\n\n useEffect(() => {\n if (!collapsed\n && refContainerSize?.height\n && contentContainerStyle.height !== refContainerSize?.height\n ) {\n setHeight(refContainerSize.height);\n }\n }, [refContainerSize.height]);\n\n const onWindowResize = useCallback(() => {\n if (!collapsed && contentContainer.current) {\n setHeight(getHeight());\n collapseWrapper.current.style.height = `${getHeight()}px`;\n }\n }, [collapsed, contentContainer.current]);\n\n useEventListener('resize', onWindowResize, window);\n\n return (\n \n \n \n { children }\n \n \n \n );\n}\n\nCollapsible.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n /** Describes if the content of Collapsible should be hidden or not */\n collapsed: PropTypes.bool,\n /** CSS classes that can be passed to the Collapsible element */\n className: PropTypes.string,\n};\n\nexport default Collapsible;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Collapsible from '../../Collapsible';\nimport AccordionItemContext from './AccordionItemContext';\n\nfunction AccordionItemContent({ children, className }) {\n const { collapsed } = useContext(AccordionItemContext);\n\n const classes = [\n 'tyk-accordion__item-content',\n className,\n ].filter(Boolean).join(' ');\n\n return (\n
    \n \n { children }\n \n
    \n );\n}\n\nAccordionItemContent.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n};\n\nexport default AccordionItemContent;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport AccordionItem from './js/AccordionItem';\nimport AccordionItemHeader from './js/AccordionItemHeader';\nimport AccordionItemContent from './js/AccordionItemContent';\nimport AccordionContext from './js/AccordionContext';\n\nfunction Accordion({\n className,\n children,\n usearrowastrigger,\n arrow = { position: 'right', expandToContent: false },\n}) {\n const classes = [\n 'tyk-accordion',\n className,\n ].filter(Boolean).join(' ');\n\n const contextValue = useMemo(() => ({\n usearrowastrigger,\n arrow,\n }), [usearrowastrigger, arrow]);\n\n return (\n
    \n \n {children}\n \n
    \n );\n}\n\nAccordion.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n usearrowastrigger: PropTypes.bool,\n arrow: PropTypes.shape({\n position: PropTypes.oneOf(['left', 'right']),\n expandToContent: PropTypes.bool,\n }),\n};\n\nAccordion.defaultProps = {\n usearrowastrigger: false,\n};\n\n// For Readme.md : Start\nAccordion.Item = AccordionItem;\nAccordion.Item.Header = AccordionItemHeader;\nAccordion.Item.Content = AccordionItemContent;\n// For Readme.md : End\n\nexport default Accordion;\n","import React, { cloneElement, forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../Icon';\n\n/**\n * Button component.\n */\nfunction Button(props, ref) {\n const {\n customButton,\n children,\n iconType,\n iconFamily,\n iconPosition,\n iconOnly,\n id,\n className,\n disabled,\n display,\n href,\n onClick,\n noStyle,\n size,\n theme,\n type,\n ...rest\n } = props;\n\n const getCssClasses = () => {\n const cssClasses = ['tyk-button'].concat(className ? className.split(' ') : []);\n const sizeClass = (size) ? `tyk-button--${size}` : 'tyk-button--md';\n const disabledClass = (disabled) ? 'disabled' : '';\n const displayClass = display || '';\n const themeClass = theme ? `tyk-button--${theme}` : '';\n const iconOnlyClass = iconOnly ? 'tyk-button--icon-only' : '';\n const noStyleClass = noStyle ? 'tyk-button--no-style' : '';\n\n cssClasses.push(iconOnlyClass);\n cssClasses.push(themeClass);\n cssClasses.push(sizeClass);\n cssClasses.push(disabledClass);\n cssClasses.push(displayClass);\n cssClasses.push(noStyleClass);\n\n if (iconType) {\n cssClasses.push(`icon-${iconPosition || 'left'}`);\n }\n\n return cssClasses.join(' ');\n };\n\n const getButtonIcon = (position) => {\n const iPos = iconPosition || 'left';\n\n return (\n (iconType && iPos === position)\n ? \n : null\n );\n };\n\n const getButtonType = () => {\n let buttonType;\n\n if (customButton) {\n return (\n <>\n { cloneElement(customButton, {\n className: getCssClasses(),\n disabled,\n })}\n \n );\n }\n\n if (href) {\n buttonType = (\n \n { getButtonIcon('left') }\n { children }\n { getButtonIcon('right') }\n \n );\n } else {\n buttonType = (\n // eslint-disable-next-line react/button-has-type\n \n { getButtonIcon('left') }\n { children && {children} }\n { getButtonIcon('right') }\n \n );\n }\n\n return buttonType;\n };\n\n return (\n getButtonType()\n );\n}\n\nButton.propTypes = {\n /**\n * Content of a button. Can be a DOM element or a React component\n */\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n customButton: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n ]),\n className: PropTypes.string,\n /**\n * Display type: inline/block. Default is inline\n */\n display: PropTypes.string,\n /**\n * Sets the button disabled state\n */\n disabled: PropTypes.bool,\n /**\n * Having this property set the button will become a link\n */\n id: PropTypes.string,\n href: PropTypes.string,\n iconPosition: PropTypes.string, // left or right\n iconFamily: PropTypes.string,\n iconOnly: PropTypes.bool,\n iconType: PropTypes.string,\n noStyle: PropTypes.bool,\n /**\n * Callback function, called when the button si clicked\n */\n onClick: PropTypes.func,\n /**\n * Describes the appearence of the button (ex: primary, danger, primary-outline etc.)\n */\n theme: PropTypes.string,\n /**\n * Type of the button (ex: button, submit etc.)\n */\n type: PropTypes.string,\n /**\n * Describes the size of the button (sm, md, lg). Default one is md\n */\n size: PropTypes.string,\n};\n\nButton.defaultProps = {\n theme: '',\n type: 'button',\n};\n\nexport default forwardRef(Button);\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ButtonGroup({ className, children, label }, ref) {\n return (\n
    \n {Boolean(label) && }\n
    {children}
    \n
    \n );\n}\n\nButtonGroup.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n};\n\nexport default forwardRef(ButtonGroup);\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardHeader({\n right = null,\n children,\n}) {\n return (\n
    \n {children &&
    {children}
    }\n {right &&
    {right}
    }\n
    \n );\n}\n\nCardHeader.propTypes = {\n right: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardHeader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardBody({\n align = 'top',\n children,\n}) {\n return (\n
    \n
    \n {children}\n
    \n
    \n );\n}\n\nCardBody.propTypes = {\n align: PropTypes.oneOf(['top', 'center', 'bottom']),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardBody;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardFooter({ children }) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardFooter.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardFooter;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardTitle({\n maxLines = 1, // accepted values: 1, 2\n children,\n}) {\n return (\n

    \n {children}\n

    \n );\n}\n\nCardTitle.propTypes = {\n maxLines: PropTypes.number,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardTitle;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardTitleGroup({\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardTitleGroup.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardTitleGroup;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardSubTitle({\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardSubTitle.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardSubTitle;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardSummary({\n maxLines = 2, // accepted values: 1, 2, 3, 4, 5\n children,\n}) {\n return (\n

    \n {children}\n

    \n );\n}\n\nCardSummary.propTypes = {\n maxLines: PropTypes.number,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardSummary;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardTitleIcon({\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardTitleIcon.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardTitleIcon;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport CardHeader from './CardHeader';\nimport CardBody from './CardBody';\nimport CardFooter from './CardFooter';\nimport CardTitle from './CardTitle';\nimport CardTitleGroup from './CardTitleGroup';\nimport CardSubTitle from './CardSubTitle';\nimport CardSummary from './CardSummary';\nimport CardTitleIcon from './CardTitleIcon';\n\nfunction Card({\n className = '',\n height = 'auto',\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCard.propTypes = {\n className: PropTypes.string,\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nCard.Header = CardHeader;\nCard.Body = CardBody;\nCard.Footer = CardFooter;\nCard.Title = CardTitle;\nCard.TitleGroup = CardTitleGroup;\nCard.Icon = CardTitleIcon;\nCard.SubTitle = CardSubTitle;\nCard.Summary = CardSummary;\n\nexport default Card;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"echarts\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"immutable\");","export default (func, wait, immediate) => {\n let timeout;\n return function debouncer(...args) {\n const context = this;\n const later = () => {\n timeout = null;\n if (!immediate) {\n func.apply(context, args);\n }\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) {\n func.apply(context, args);\n }\n };\n};\n","import { useEffect, useRef } from 'react';\n\nconst usePrevious = (value) => {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n};\n\n/** @component */\nexport default usePrevious;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Loader({ className, position = 'relative', withbackground = false }) {\n const classes = [\n 'loading',\n position,\n className,\n ].filter(Boolean).join(' ');\n\n const loader = (\n
    \n
    \n
    \n
    \n
    \n
    \n );\n\n return withbackground\n ?
    {loader}
    \n : loader;\n}\n\nLoader.propTypes = {\n /** add a class to loader */\n className: PropTypes.string,\n /** position of loader (absolute / relative) */\n position: PropTypes.string,\n /** defines weather loader should be renders with or without background */\n withbackground: PropTypes.bool,\n};\n\nexport default Loader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../Icon';\n\n/**\n * The Message component is used to highlight important content to the users.\n *\n * If the content you are displaying needs immediate attention or is a feedback,\n * consider using `toast` instead\n */\nfunction Message({\n children, theme, onClose, noMargin, className,\n}) {\n function getCssClasses() {\n return [\n 'tyk-message',\n `tyk-message--${theme || 'info'}`,\n noMargin && 'no-margin',\n className,\n ].filter(Boolean).join(' ');\n }\n\n const iconType = theme === 'success' ? 'check' : 'warning';\n\n return (\n
    \n \n
    \n { children }\n
    \n {onClose && (\n \n )}\n
    \n );\n}\n\nMessage.propTypes = {\n /** Set theme for message (eg. default, success, danger, etc) */\n theme: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n /** add a class to loader */\n className: PropTypes.string,\n /** Removes margins by adding `no-margin` class */\n noMargin: PropTypes.bool,\n /** Callback for clicking on the \"x\" */\n onClose: PropTypes.func,\n};\n\nexport default Message;\n","import React, {\n useState, useEffect, useMemo, useRef, memo,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport * as echarts from 'echarts';\nimport { fromJS } from 'immutable';\n\nimport debounce from '../../utils/debounce';\nimport { usePrevious } from '../../hooks';\nimport Loader from '../Loader';\nimport Message from '../Message';\nimport worldMap from './maps/world.json';\n\necharts.registerMap('world', worldMap);\n\nfunction Chart({\n areaStyleColors,\n dataLoaded,\n hasData,\n highlight,\n type,\n option,\n series,\n onChange,\n zoomStart,\n zoomEnd,\n title,\n seriesConfig = [],\n noDataComponent: noDataComponentProp = null,\n zoomColors,\n style,\n}) {\n const [tykChartInstance, setTykChartInstance] = useState(null);\n const chartWrapperRef = useRef(null);\n const onResize = () => {\n if (tykChartInstance) {\n tykChartInstance.resize();\n }\n };\n\n const noDataComponent = useMemo(\n () => (noDataComponentProp\n ? noDataComponentProp()\n : (\n \n No data to display\n \n )),\n [noDataComponentProp],\n );\n\n const lineBarChart = {\n defaultOpts: fromJS({\n title: {\n show: true,\n text: title,\n left: 0,\n },\n color: [],\n toolbox: {\n right: '0',\n orient: 'horizontal',\n itemSize: 15,\n showTitle: true,\n feature: null,\n },\n dataZoom: [{\n show: true,\n start: 0,\n end: 100,\n orient: 'horizontal',\n dataBackground: {\n lineStyle: {\n color: zoomColors?.lineStyle || '#368493',\n },\n areaStyle: {\n color: zoomColors?.areaStyle || '#368493',\n },\n },\n handleStyle: {\n color: zoomColors?.handleStyle || '#368493',\n },\n textStyle: {\n color: zoomColors?.textStyle || '#368493',\n },\n borderColor: 'transparent',\n fillerColor: zoomColors?.fillerColor || 'rgba(54, 132, 147, 0.1)',\n }],\n legend: {\n show: false,\n // data: [],\n // right: '1%',\n },\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n type: 'cross',\n },\n },\n grid: {\n left: '1%',\n right: '1%',\n bottom: '50px',\n top: '40px',\n containLabel: true,\n },\n xAxis: {\n boundaryGap: false,\n type: 'category',\n splitLine: {\n show: true,\n lineStyle: {\n type: 'dotted',\n color: '#F0F0F0',\n },\n },\n axisLine: {\n show: false,\n },\n axisTick: {\n show: false,\n },\n data: [],\n },\n yAxis: {\n min: 'dataMin',\n boundaryGap: true,\n axisPointer: {\n show: true,\n },\n splitLine: {\n lineStyle: {\n type: 'dotted',\n color: '#F0F0F0',\n },\n show: true,\n },\n axisLabel: {\n show: true,\n },\n axisLine: {\n show: true,\n },\n axisTick: {\n show: false,\n },\n type: 'value',\n },\n textStyle: {\n color: '#5a5a68',\n },\n series: [],\n animationEasing: 'elasticOut',\n }),\n seriesDefault: fromJS({\n data: [],\n type: 'line',\n areaStyle: {\n opacity: 1,\n color: areaStyleColors\n ? new echarts.graphic.LinearGradient(\n 0,\n 0,\n 1,\n 1,\n areaStyleColors.map((color, index) => ({\n offset: index,\n color,\n })),\n )\n : [],\n },\n smooth: false,\n symbolSize: 7,\n name: '',\n }),\n };\n\n const pieChart = {\n defaultOpts: fromJS({\n tooltip: {\n trigger: 'axis',\n formatter: '{b}: {c} ({d}%)',\n },\n legend: {\n orient: 'horizontal',\n x: 'left',\n y: 'top',\n data: [],\n },\n color: [],\n series: [],\n }),\n seriesDefault: fromJS({\n type: 'pie',\n center: [\n '50%',\n '55%',\n ],\n radius: [\n '50%',\n '75%',\n ],\n avoidLabelOverlap: false,\n animationType: 'scale',\n animationEasing: 'elasticOut',\n labelLine: {\n normal: {\n show: true,\n smooth: 0.2,\n length: 6,\n length2: 6,\n },\n },\n data: [],\n }),\n };\n\n const geoChart = {\n defaultOpts: fromJS({\n series: [],\n }),\n seriesDefault: fromJS({\n type: 'map',\n data: [],\n }),\n };\n\n const buildChartOptions = (selectedType, selectedOptions, selectedSeries) => {\n let finalOpts = {};\n switch (selectedType) {\n case 'pie': {\n finalOpts = pieChart.defaultOpts.mergeDeep(fromJS(selectedOptions)).toJS();\n\n selectedSeries.forEach((entry) => {\n finalOpts.series.push(pieChart.seriesDefault.mergeDeep(fromJS(entry)).toJS());\n });\n\n break;\n }\n\n case 'geo': {\n finalOpts = geoChart.defaultOpts.mergeDeep(fromJS(selectedOptions)).toJS();\n\n selectedSeries.forEach((entry) => {\n finalOpts.series.push(geoChart.seriesDefault.mergeDeep(fromJS(entry)).toJS());\n });\n\n break;\n }\n\n default: {\n finalOpts = lineBarChart.defaultOpts.mergeDeep(fromJS(selectedOptions)).toJS();\n if (Array.isArray(selectedOptions.yAxis)) {\n finalOpts.yAxis = selectedOptions.yAxis;\n }\n\n selectedSeries.forEach((entry, index) => {\n const seriesData = {\n ...lineBarChart.seriesDefault.toJS(),\n ...seriesConfig[index],\n ...entry,\n };\n finalOpts.series.push(seriesData);\n });\n break;\n }\n }\n return finalOpts;\n };\n\n useEffect(() => {\n window.addEventListener('resize', onResize);\n\n return () => {\n window.removeEventListener('resize', onResize);\n };\n }, [tykChartInstance]);\n\n useEffect(() => {\n if (!chartWrapperRef?.current) return;\n\n setTykChartInstance(echarts.init(chartWrapperRef.current));\n\n // eslint-disable-next-line consistent-return\n return () => {\n if (tykChartInstance) {\n tykChartInstance.dispose();\n }\n };\n }, [chartWrapperRef.current]);\n\n const eventCallBack = (e) => {\n if (onChange) {\n onChange(e);\n }\n };\n\n useEffect(() => {\n let debouncedMethod;\n if (tykChartInstance) {\n debouncedMethod = debounce(eventCallBack, 500);\n tykChartInstance.on('dataZoom', debouncedMethod);\n tykChartInstance.on('restore', debouncedMethod);\n tykChartInstance.on('click', debouncedMethod);\n\n tykChartInstance.on('mousemove', (params) => {\n if (params.data) {\n tykChartInstance.getZr().setCursorStyle('pointer');\n }\n });\n }\n\n return () => {\n if (tykChartInstance) {\n tykChartInstance.off('dataZoom', debouncedMethod);\n tykChartInstance.off('restore', debouncedMethod);\n tykChartInstance.off('click', debouncedMethod);\n }\n };\n }, [tykChartInstance, onChange]);\n\n const prevInstance = usePrevious(tykChartInstance);\n const prevOption = usePrevious(option);\n const prevType = usePrevious(type);\n const prevSeries = usePrevious(series);\n useEffect(() => {\n if (\n tykChartInstance\n && (\n !fromJS(prevInstance)?.equals?.(fromJS(tykChartInstance))\n || !fromJS(prevOption)?.equals?.(fromJS(option))\n || (prevType !== type)\n || !fromJS(prevSeries).equals?.(fromJS(series))\n )\n ) {\n tykChartInstance.clear();\n tykChartInstance.setOption(buildChartOptions(type, option, series));\n tykChartInstance.dispatchAction({\n type: 'takeGlobalCursor',\n key: 'dataZoomSelect',\n dataZoomSelectActive: true,\n });\n }\n }, [tykChartInstance, option, series, type]);\n\n useEffect(() => {\n if (tykChartInstance && highlight) {\n tykChartInstance.dispatchAction({\n type: 'highlight',\n seriesIndex: highlight.seriesIndex,\n dataIndex: highlight.dataIndex,\n });\n tykChartInstance.dispatchAction({\n type: 'showTip',\n seriesIndex: highlight.seriesIndex,\n dataIndex: highlight.dataIndex,\n });\n }\n }, [highlight]);\n\n const prevZoomStart = usePrevious(zoomStart);\n const prevZoomEnd = usePrevious(zoomEnd);\n useEffect(() => {\n if (\n tykChartInstance\n && zoomStart !== -1\n && zoomEnd !== -1\n && (\n prevZoomStart !== zoomStart\n || prevZoomEnd !== zoomEnd\n )\n ) {\n tykChartInstance.dispatchAction({\n type: 'dataZoom',\n startValue: zoomStart,\n endValue: zoomEnd,\n });\n }\n }, [zoomStart, zoomEnd]);\n\n const getStyle = () => {\n const tempStyle = style || {};\n\n if (!tempStyle.height) {\n tempStyle.height = '300px';\n }\n if (!tempStyle.width) {\n tempStyle.width = '100%';\n }\n return tempStyle;\n };\n\n const chartHasData = () => (\n (dataLoaded && (hasData === false || hasData === true)) ? hasData : true\n );\n\n const getCssClasses = () => {\n const cssClasses = ['tyk-chart'];\n\n if (!dataLoaded) {\n cssClasses.push('tyk-chart--loading-chart');\n }\n\n if (!chartHasData()) {\n cssClasses.push('tyk-chart--no-data');\n }\n\n return cssClasses.join(' ');\n };\n\n return (\n
    \n {\n !dataLoaded\n ? \n : null\n }\n \n {\n chartHasData()\n ? null\n : noDataComponent\n }\n
    \n );\n}\n\nChart.propTypes = {\n areaStyleColors: PropTypes.instanceOf(Array),\n dataLoaded: PropTypes.bool,\n hasData: PropTypes.bool,\n highlight: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n PropTypes.instanceOf(Array),\n ]),\n noDataComponent: PropTypes.func,\n zoomStart: PropTypes.number,\n zoomEnd: PropTypes.number,\n zoomColors: PropTypes.instanceOf(Object),\n option: PropTypes.instanceOf(Object),\n onChange: PropTypes.func,\n style: PropTypes.instanceOf(Object),\n type: PropTypes.string,\n title: PropTypes.string,\n series: PropTypes.instanceOf(Array),\n seriesConfig: PropTypes.instanceOf(Object),\n};\n\nexport default memo(Chart);\n","import { useEffect, useRef } from 'react';\n\nconst useTimeout = (callback, delay) => {\n const savedCallback = useRef();\n\n useEffect(\n () => {\n savedCallback.current = callback;\n },\n [callback],\n );\n\n useEffect(\n () => {\n function tick() {\n savedCallback.current();\n }\n if (delay !== null) {\n const id = setTimeout(tick, delay);\n return () => clearTimeout(id);\n }\n\n return () => {};\n },\n [delay],\n );\n};\n\n/** @component */\nexport default useTimeout;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Message from '../../Message';\nimport { useTimeout } from '../../../hooks';\n\nfunction ToastMessage(props) {\n const {\n children,\n options,\n onClose,\n index,\n } = props;\n const opts = {\n theme: 'success',\n delay: 3000,\n ...options,\n };\n let timer;\n\n const handleClose = (itemIndex) => {\n onClose(itemIndex);\n clearTimeout(timer);\n };\n\n useTimeout(() => handleClose(index), opts.delay);\n\n return (\n handleClose(index)}\n >\n {children}\n \n );\n}\n\nToastMessage.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n options: PropTypes.instanceOf(Object),\n onClose: PropTypes.func,\n index: PropTypes.number,\n};\n\nexport default ToastMessage;\n","import React, {\n useEffect, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport ToastMessage from './ToastMessage';\n\nfunction ToastContainer(props) {\n const [messages, setMessages] = useState({});\n const {\n notify,\n } = props;\n\n const updateNotifications = (message, options) => {\n const msgID = Math.floor(Math.random() * 1000000);\n\n setMessages((prevMessages) => ({\n ...prevMessages,\n [msgID]: {\n message,\n options,\n },\n }));\n };\n\n useEffect(() => {\n notify(updateNotifications);\n }, [messages]);\n\n const onMessageClosed = (index) => {\n const tempMessages = { ...messages };\n delete tempMessages[index];\n setMessages((prevMessages) => {\n const newMessages = { ...prevMessages };\n delete newMessages[index];\n return newMessages;\n });\n };\n\n return (\n
    \n {\n Object.keys(messages).map((msgID) => (\n messages[msgID]\n ? (\n \n {messages[msgID].message}\n \n )\n : null\n ))\n }\n
    \n );\n}\n\nToastContainer.propTypes = {\n notify: PropTypes.func,\n};\n\nexport default ToastContainer;\n","import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport ToastContainer from './js/ToastContainer';\n\n/**\n * Toast is a service that displays dialogs\n * on the bottom right part of the screen.\n *\n * The dialogs can have one of the Tyk UI themes, so that\n * it would match it's purpose (i.e success message, error message)\n *\n */\nclass ToastCreator {\n constructor() {\n const el = document.createElement('div');\n el.className = 'tyk-toast';\n document.body.appendChild(el);\n const root = createRoot(el);\n root.render();\n }\n\n bindNotify = (fn) => {\n this.createNotification = fn;\n };\n\n notify(message, options) {\n if (this.createNotification) {\n this.createNotification(message, options);\n }\n }\n\n danger(message, options) {\n this.notify(message, { ...options, theme: 'danger' });\n }\n\n success(message, options) {\n this.notify(message, { ...options, theme: 'success' });\n }\n\n warning(message, options) {\n this.notify(message, { ...options, theme: 'warning' });\n }\n\n info(message, options) {\n this.notify(message, { ...options, theme: 'info' });\n }\n}\n\nconst toast = new ToastCreator();\n\nexport default toast;\n","import React, { createRef, useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport toast from '../Toast';\n\n/**\n * - CopyToClipboard is used to copy string for a user.\n * - Can be used normally with a text or a custom components (Eg. Button, Icon, etc)\n */\n\nfunction CopyToClipboard(props) {\n const {\n display, copy, children, onCopy, message = 'copied',\n } = props;\n const txtRef = createRef();\n const handleClick = useCallback(() => {\n if (onCopy) {\n onCopy();\n }\n\n if (!window.navigator.clipboard) {\n txtRef.current.select();\n document.execCommand('copy');\n toast.success(message);\n return;\n }\n window.navigator.clipboard.writeText(copy);\n toast.success(message);\n }, [onCopy, txtRef]);\n\n return (\n <>\n \n {children || display}\n \n {!window.navigator.clipboard ? (\n \n ) : null}\n \n );\n}\n\nCopyToClipboard.propTypes = {\n /** Message to be displayed after text is copied */\n message: PropTypes.string,\n /** Callback function executed after text is copied */\n onCopy: PropTypes.func,\n /** Text to be copied */\n copy: PropTypes.string.isRequired,\n /** Text to be displayed */\n display: PropTypes.string,\n /** Children of custom element if you are using any custom element */\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n PropTypes.object,\n PropTypes.node,\n ]),\n};\n\nexport default CopyToClipboard;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ModalFooter({ children }) {\n return (\n
    \n { children }\n
    \n );\n}\n\nModalFooter.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default ModalFooter;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ModalBody({ children }) {\n return (\n
    \n { children }\n
    \n );\n}\n\nModalBody.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default ModalBody;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { CSSTransition } from 'react-transition-group';\n\nimport Icon from '../Icon';\nimport ModalFooter from './js/ModalFooter';\nimport ModalBody from './js/ModalBody';\n\n/**\n * Modals add dialogs confirmation boxes, notifications, or completely custom content\n * - only one Modal can be opened at a time\n * - are unmounted when Modal is closed\n */\nfunction Modal({\n children,\n theme = 'none',\n disableCloseCommands = false,\n opened = false,\n onClose = () => {},\n size = 'md',\n className = '',\n showBackdrop = true,\n ...restProps\n}) {\n const modalClasses = [\n 'tyk-modal',\n `tyk-modal--theme-${theme}`,\n opened && 'opened',\n ].concat(className.split(' ')).filter(Boolean).join(' ');\n\n const backdropClasses = [\n 'tyk-modal__backdrop',\n opened && 'opened',\n ].filter(Boolean).join(' ');\n\n const themeIcon = {\n success: 'check',\n warning: 'warning',\n danger: 'delete',\n }[theme];\n\n return (\n <>\n {\n ReactDOM.createPortal(\n \n
    \n
    \n
    \n {theme !== 'none' && (\n
    \n \n
    \n )}\n { children }\n
    \n
    \n
    \n ,\n document.querySelector('body'),\n )\n }\n {showBackdrop && ReactDOM.createPortal(\n \n !disableCloseCommands && onClose()}\n onKeyDown={() => {}}\n type=\"button\"\n aria-label=\"Close\"\n />\n ,\n document.querySelector('body'),\n )}\n \n );\n}\n\nModal.Body = ModalBody;\nModal.Footer = ModalFooter;\n/* eslint-disable-next-line */\nModal.Header = ({ children }) => {\n console.warn('%cModal.Header%c is deprecated.', 'font-weight: bold', '');\n return (\n
    \n { children }\n
    \n );\n};\nModal.Header.propTypes = {\n children: PropTypes.element,\n};\n/* eslint-disable-next-line */\nModal.Title = ({ children }) => {\n console.warn('%cModal.Title%c is deprecated.', 'font-weight: bold', '');\n return (\n

    \n { children }\n

    \n );\n};\nModal.Title.propTypes = {\n children: PropTypes.element,\n};\n\nModal.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n /** one of \"success\", \"warning\", \"danger\", \"none\"; default is \"none\" */\n theme: PropTypes.string,\n /** If set on true, the Modal won't close when clicking on the overlay or by pressing ESC key */\n disableCloseCommands: PropTypes.bool,\n /** If true the Modal will be by default opened */\n opened: PropTypes.bool,\n /** Callback method when the Modal is closed */\n onClose: PropTypes.func,\n /** Width of the Moda: md or lg */\n size: PropTypes.string,\n showBackdrop: PropTypes.bool,\n};\n\nexport default Modal;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '../Button';\nimport Modal from '../Modal';\n\n/**\n * Confirm component can be used to open a dialog () before a specific action\n */\nfunction Confirm(props) {\n const {\n children,\n title,\n description,\n confirmBtnText = 'Confirm',\n cancelBtnText = 'Cancel',\n } = props;\n const [open, setOpen] = useState(false);\n const [callback, setCallback] = useState(null);\n const [cancelCallback, setCancelCallback] = useState(null);\n\n const show = (callbackFunc, cancelCallbackFunc, beforeCallback) => (...args) => {\n if (beforeCallback) {\n beforeCallback(...args);\n }\n setOpen(true);\n setCallback(() => () => callbackFunc(...args));\n if (cancelCallbackFunc) {\n setCancelCallback(() => () => cancelCallbackFunc(...args));\n }\n };\n\n const hide = () => {\n setOpen(false);\n setCallback(null);\n setCancelCallback(null);\n };\n\n const cancel = () => {\n if (cancelCallback) {\n cancelCallback();\n }\n hide();\n };\n\n const confirm = () => {\n callback();\n hide();\n };\n\n return (\n <>\n {children(show)}\n \n \n

    {title}

    \n {description}\n
    \n \n \n {cancelBtnText}\n \n \n {confirmBtnText}\n \n \n
    \n \n );\n}\n\nConfirm.propTypes = {\n /** Sets the text for primary / confirmation button on opened modal */\n confirmBtnText: PropTypes.string,\n /** Sets the text for danger / abort button on opened modal */\n cancelBtnText: PropTypes.string,\n /** Sets the title for the opened modal */\n title: PropTypes.string,\n /** Sets the description for the opened modal */\n description: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n PropTypes.object,\n PropTypes.node,\n PropTypes.func,\n ]),\n};\n\nexport default Confirm;\n","import React, { useCallback, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport debounce from '../../utils/debounce';\n\n/**\n * FixedWrapper component, keeps all its children in a fix position on the page,\n * even if the scroll position changes\n * i.e: The top navigation bar of a page sits within FixedWrapper component\n */\nfunction FixedWrapper({ children, className, showShadow }) {\n const fixedWrapperRef = useRef(null);\n\n const attachShadow = useCallback(() => {\n const element = fixedWrapperRef.current;\n\n if (!element) {\n return;\n }\n\n if (window.scrollY) {\n element.classList.add('tyk-fixed-wrapper--scrolled');\n } else {\n element.classList.remove('tyk-fixed-wrapper--scrolled');\n }\n }, [fixedWrapperRef.current]);\n\n const debouncedAttachShadow = useCallback(debounce(attachShadow, 100), [attachShadow]);\n\n useEffect(() => {\n if (showShadow) {\n window.addEventListener('scroll', debouncedAttachShadow);\n }\n\n return () => {\n window.removeEventListener('scroll', debouncedAttachShadow);\n };\n }, [debouncedAttachShadow, showShadow]);\n\n return (\n
    \n { children }\n
    \n );\n}\n\nFixedWrapper.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n /** Css classes that can be passed to the FixedWraper element */\n className: PropTypes.string,\n /** If true, bottom shadow on the FixedWrapper component\n * is being displayed when scroll happens\n */\n showShadow: PropTypes.bool,\n};\n\nFixedWrapper.defaultProps = {\n className: '',\n};\n\nexport default FixedWrapper;\n","import React, {\n useEffect, useState, useRef, useCallback,\n} from 'react';\nimport { PropTypes } from 'prop-types';\n\nimport debounce from '../../utils/debounce';\nimport { usePrevious, useComponentSize } from '../../hooks';\nimport Loader from '../Loader';\n\nfunction InfiniteScroller({\n children,\n hasMore,\n initialLoad,\n loadMore,\n pageNumber,\n refChild,\n}) {\n const [showLoader, setShowLoader] = useState(false);\n const containerRef = useRef(null);\n const refChildSize = useComponentSize(refChild);\n\n useEffect(() => {\n if (initialLoad && typeof loadMore === 'function') {\n setShowLoader(false);\n loadMore(pageNumber);\n }\n }, [initialLoad]);\n\n const shouldLoad = useCallback(() => {\n if (!containerRef.current) return false;\n const { clientHeight, scrollTop } = containerRef.current;\n\n return (\n hasMore\n && (\n (clientHeight + Math.round(scrollTop) === refChildSize.height)\n || (clientHeight >= refChildSize.height)\n )\n );\n }, [containerRef, refChildSize.height]);\n\n const loadMoreData = useCallback(() => {\n if (hasMore && typeof loadMore === 'function') {\n loadMore(pageNumber + 1);\n setShowLoader(true);\n } else {\n setShowLoader(false);\n }\n }, [hasMore, pageNumber]);\n\n const prevPageNumber = usePrevious(pageNumber);\n const scrollHandler = useCallback(debounce(() => {\n if (shouldLoad() && prevPageNumber <= pageNumber) {\n loadMoreData();\n }\n }, 200), [loadMoreData, shouldLoad]);\n\n useEffect(() => {\n containerRef.current?.addEventListener('scroll', scrollHandler);\n return () => containerRef.current?.removeEventListener('scroll', scrollHandler);\n }, [containerRef, scrollHandler]);\n\n // if content resets (page number resets) scroll to top\n useEffect(() => {\n if (prevPageNumber > 0 && pageNumber === 0) {\n containerRef.current.scrollTop = 0;\n }\n }, [containerRef, pageNumber]);\n\n const prevRefChildSize = usePrevious(refChildSize);\n useEffect(() => {\n if (\n refChildSize && prevRefChildSize\n && refChildSize.height !== prevRefChildSize.height\n && showLoader === true\n ) {\n setShowLoader(false);\n }\n }, [showLoader, refChildSize.height]);\n\n useEffect(() => {\n if (\n refChild && refChildSize.height < containerRef.current.clientHeight\n && refChildSize.height\n && hasMore\n ) {\n loadMoreData();\n }\n }, [containerRef, refChildSize, refChild, hasMore]);\n\n return (\n
    \n \n { children }\n
    \n {showLoader && (\n \n )}\n
    \n );\n}\n\nInfiniteScroller.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n hasMore: PropTypes.bool,\n initialLoad: PropTypes.bool,\n pageNumber: PropTypes.number,\n loadMore: PropTypes.func,\n refChild: PropTypes.instanceOf(Object),\n};\n\nInfiniteScroller.defaultProps = {\n hasMore: true,\n};\n\nexport default InfiniteScroller;\n","import React, {\n useEffect, useRef, forwardRef,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport PropTypes from 'prop-types';\nimport InfiniteScroller from '../InfiniteScroller';\n\nconst VIEWPORT_INITIAL_PADDING = 5;\n\n/**\n * It displays a container relative to another element.\n * Meant to be used for dropdowns, tooltips, and other similar components.\n */\nfunction FloatingContainer({\n element,\n size = 'auto',\n forceDisplay = 'auto',\n displayAxis = 'auto',\n preferredPosition,\n offset = 0,\n className,\n children,\n infiniteScrollerConfig,\n}, ref) {\n const localRef = useRef(null);\n const floatingContainerRef = ref || localRef;\n const contentWrapperRef = useRef(null);\n // offset calculated on first render to make sure the floating container is inside the viewport\n const viewportOffset = useRef(null);\n\n function determineDisplay() {\n const target = element.current;\n const container = floatingContainerRef.current;\n if (!container) return preferredPosition ?? displayAxis === 'vertical' ? 'bottom' : 'right';\n\n const { left, top } = target.getBoundingClientRect();\n const topSpace = top;\n const bottomSpace = window.innerHeight - top - target.offsetHeight;\n const leftSpace = left;\n const rightSpace = window.innerWidth - left - target.offsetWidth;\n const hasTopSpace = topSpace > container.scrollHeight;\n const hasBottomSpace = bottomSpace > container.scrollHeight;\n const hasLeftSpace = leftSpace > container.offsetWidth;\n const hasRightSpace = rightSpace > container.offsetWidth;\n const positionedVerticallyFitsInViewport = left + target.offsetWidth / 2 - container.offsetWidth / 2 > 0; // eslint-disable-line max-len\n const positionedHorizontallyFitsInViewport = top + target.offsetHeight / 2 - container.scrollHeight / 2 > 0; // eslint-disable-line max-len\n\n if (\n displayAxis === 'vertical'\n || (\n displayAxis === 'auto'\n && (hasTopSpace || hasBottomSpace)\n && positionedVerticallyFitsInViewport\n )\n ) {\n return getDisplayForVertical({\n preferredPosition, hasTopSpace, hasBottomSpace, topSpace, bottomSpace,\n });\n }\n\n if (displayAxis === 'horizontal') {\n return getDisplayForHorizontal({\n preferredPosition, hasLeftSpace, hasRightSpace, leftSpace, rightSpace,\n });\n }\n\n return getDisplayWhereItFits({\n preferredPosition,\n hasTopSpace,\n hasBottomSpace,\n hasLeftSpace,\n hasRightSpace,\n positionedHorizontallyFitsInViewport,\n positionedVerticallyFitsInViewport,\n });\n }\n\n function adjustPosition() {\n const display = forceDisplay !== 'auto' ? forceDisplay : determineDisplay();\n const target = element.current;\n const container = floatingContainerRef.current;\n\n if (!target || !container) return;\n\n const targetPosition = target.getBoundingClientRect();\n const { left: vpLeft, top: vpTop } = viewportOffset.current ?? { left: 0, top: 0 };\n\n if (display === 'top') {\n Object.assign(container.style, getStylesForTop({\n container, targetPosition, target, size, offset, vpLeft, vpTop,\n }));\n }\n\n if (display === 'bottom') {\n Object.assign(container.style, getStylesForBottom({\n container, targetPosition, target, size, offset, vpLeft, vpTop,\n }));\n }\n\n if (display === 'left') {\n Object.assign(container.style, getStylesForLeft({\n targetPosition, target, container, size, offset,\n }));\n }\n\n if (display === 'right') {\n Object.assign(container.style, getStylesForRight({\n targetPosition, target, container, size, offset, vpLeft, vpTop,\n }));\n }\n\n if (viewportOffset.current !== null) return;\n\n if (size === 'matchEnd') {\n viewportOffset.current = { left: 0, top: 0 };\n } else {\n const left = Number(container.style.left.replace('px', ''));\n const top = Number(container.style.top.replace('px', ''));\n viewportOffset.current = {\n left: left < 0 ? VIEWPORT_INITIAL_PADDING - left : 0,\n top: top < 0 ? VIEWPORT_INITIAL_PADDING - top : 0,\n };\n }\n }\n\n useEffect(() => {\n window.requestAnimationFrame(function schedulePositionUpdate() {\n adjustPosition();\n window.requestAnimationFrame(schedulePositionUpdate);\n });\n }, []);\n\n return createPortal(\n \n \n \n {children}\n
    \n \n
    ,\n document.querySelector('body'),\n );\n}\n\nFloatingContainer.propTypes = {\n /** A DOM element that the floating container will be displayed relative to. */\n element: PropTypes.instanceOf(Object),\n className: PropTypes.string,\n /** The size of the container.\n * If `auto` the size will be determined by its contents.\n * If `matchElement` it will take the width or the height of the element depending\n * on the `displayAxis` prop.\n * It can also be a function that returns a number representing the width\n * or the height in pixels.\n */\n size: PropTypes.oneOfType([\n PropTypes.oneOf(['auto', 'matchElement', 'matchStart', 'matchEnd']),\n PropTypes.func,\n ]),\n /**\n * The distance between the element and the floating container.\n * It can be positive or negative.\n */\n offset: PropTypes.number,\n /**\n * If `auto` the component will try to determine where to display the container relative to the\n * element (top, bottom, left, right).\n * It can also be one of top, bottom, left, right, to force the floating container to always be\n * displayed in that position.\n */\n forceDisplay: PropTypes.oneOf(['auto', 'top', 'bottom', 'left', 'right']),\n /**\n * It can be `auto`, `vertical` or `horizontal`. It specifies the axis where\n * it will be displayed when `forceDisplay` is `auto`.\n */\n displayAxis: PropTypes.oneOf(['auto', 'vertical', 'horizontal']),\n /**\n * If there is space on both sides of the axis preffer this side.\n */\n preferredPosition: PropTypes.oneOf(['top', 'bottom', 'left', 'right']),\n /**\n * Configuration object that will be passed to the infinite scroller component.\n */\n infiniteScrollerConfig: PropTypes.instanceOf(Object),\n};\n\nexport default forwardRef(FloatingContainer);\n\nfunction getDisplayForVertical({\n preferredPosition, hasTopSpace, hasBottomSpace, topSpace, bottomSpace,\n}) {\n if (preferredPosition === 'top' && hasTopSpace) return 'top';\n if (preferredPosition === 'bottom' && hasBottomSpace) return 'bottom';\n return hasBottomSpace || bottomSpace > topSpace ? 'bottom' : 'top';\n}\n\nfunction getDisplayForHorizontal({\n preferredPosition, hasLeftSpace, hasRightSpace, leftSpace, rightSpace,\n}) {\n if (preferredPosition === 'left' && hasLeftSpace) return 'left';\n if (preferredPosition === 'right' && hasRightSpace) return 'right';\n return hasRightSpace || rightSpace > leftSpace ? 'right' : 'left';\n}\n\nfunction getDisplayWhereItFits({\n preferredPosition, hasTopSpace, hasBottomSpace, hasLeftSpace, hasRightSpace,\n positionedHorizontallyFitsInViewport, positionedVerticallyFitsInViewport,\n}) {\n if (hasTopSpace && positionedVerticallyFitsInViewport) return 'top';\n if (hasBottomSpace && positionedVerticallyFitsInViewport) return 'bottom';\n if (hasRightSpace && positionedHorizontallyFitsInViewport) return 'right';\n if (hasLeftSpace && positionedHorizontallyFitsInViewport) return 'left';\n return preferredPosition ?? 'bottom';\n}\n\nfunction getStylesForTop({\n container, targetPosition, target, size, offset, vpLeft, vpTop,\n}) {\n const style = {};\n const leftPos = {\n auto: targetPosition.left + target.offsetWidth / 2 - container.offsetWidth / 2,\n matchElement: targetPosition.left,\n matchStart: targetPosition.left,\n matchEnd: targetPosition.right - container.offsetWidth,\n }[size];\n const topPos = targetPosition.top - container.offsetHeight - offset;\n style.left = `${leftPos + vpLeft}px`;\n style.top = `${topPos + vpTop}px`;\n\n if (size === 'matchElement') {\n style.width = `${target.offsetWidth}px`;\n } else if (size === 'matchEnd') {\n style.maxWidth = `${targetPosition.right - VIEWPORT_INITIAL_PADDING}px`;\n } else if (typeof size === 'function') {\n style.width = `${size(target.offsetWidth)}px`;\n }\n style.maxHeight = `${targetPosition.top - offset}px`;\n return style;\n}\n\nfunction getStylesForBottom({\n targetPosition, target, container, size, offset, vpLeft, vpTop,\n}) {\n const style = {};\n const leftPos = {\n auto: targetPosition.left + target.offsetWidth / 2 - container.offsetWidth / 2,\n matchElement: targetPosition.left,\n matchStart: targetPosition.left,\n matchEnd: targetPosition.right - container.offsetWidth,\n }[size];\n const topPos = targetPosition.bottom + offset;\n style.left = `${leftPos + vpLeft}px`;\n style.top = `${topPos + vpTop}px`;\n\n if (size === 'matchElement') {\n style.width = `${target.offsetWidth}px`;\n } else if (size === 'matchEnd') {\n style.maxWidth = `${targetPosition.right - VIEWPORT_INITIAL_PADDING}px`;\n } else if (typeof size === 'function') {\n style.width = `${size(target.offsetWidth)}px`;\n }\n style.maxHeight = `${window.innerHeight - targetPosition.bottom - offset}px`;\n return style;\n}\n\nfunction getStylesForLeft({\n targetPosition, target, container, size, offset,\n}) {\n const style = {};\n const leftPos = targetPosition.left - container.offsetWidth - offset;\n const topPos = {\n auto: targetPosition.top + target.offsetHeight / 2 - container.offsetHeight / 2,\n matchElement: targetPosition.top,\n matchStart: targetPosition.top,\n matchEnd: targetPosition.bottom - container.offsetHeight,\n }[size];\n style.left = `${leftPos}px`;\n style.top = `${topPos}px`;\n\n if (size === 'matchElement') {\n style.height = `${target.offsetHeight}px`;\n } else if (typeof size === 'function') {\n style.height = `${size(target.offsetHeight)}px`;\n }\n style.maxWidth = `${targetPosition.left - offset}px`;\n return style;\n}\n\nfunction getStylesForRight({\n targetPosition, target, container, size, offset, vpLeft, vpTop,\n}) {\n const style = {};\n const leftPos = targetPosition.left + target.offsetWidth + offset;\n const topPos = {\n auto: targetPosition.top + target.offsetHeight / 2 - container.offsetHeight / 2,\n matchElement: targetPosition.top,\n matchStart: targetPosition.top,\n matchEnd: targetPosition.bottom - container.offsetHeight,\n }[size];\n style.left = size === 'auto' ? `${leftPos + vpLeft}px` : `${leftPos}px`;\n style.top = size === 'auto' ? `${topPos + vpTop}px` : `${topPos}px`;\n\n if (size === 'matchElement') {\n style.height = `${target.offsetHeight}px`;\n } else if (typeof size === 'function') {\n style.height = `${size(target.offsetHeight)}px`;\n }\n style.maxWidth = `${window.innerWidth - targetPosition.left - target.offsetWidth - offset}px`;\n return style;\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Message from '../Message';\n\nfunction InfoNote({ children }) {\n return (\n
    \n \n { children }\n \n
    \n );\n}\n\nInfoNote.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default InfoNote;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ListItem(props) {\n const {\n className,\n children,\n selected,\n } = props;\n\n return (\n
  • \n {children}\n
  • \n );\n}\n\nListItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n selected: PropTypes.bool,\n};\n\nListItem.defaultProps = {\n className: '',\n};\n\nexport default ListItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ListItem from './js/ListItem';\n\nfunction List(props) {\n const {\n className,\n children,\n label,\n labelwidth,\n theme,\n style,\n } = props;\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-list'];\n\n if (theme) {\n cssClasses.push(`tyk-list--${theme}`);\n }\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n return cssClasses.join(' ');\n };\n\n const getListStyle = () => {\n const styleCopy = structuredClone(style);\n if (labelwidth) {\n styleCopy.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styleCopy;\n };\n\n return (\n
    \n {\n label !== undefined\n ? (\n \n )\n : null\n }\n
      \n {children}\n
    \n
    \n );\n}\n\nList.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n label: PropTypes.string,\n labelwidth: PropTypes.string,\n theme: PropTypes.string,\n style: PropTypes.instanceOf(Object),\n};\n\nList.defaultProps = {\n theme: 'default',\n style: {},\n};\n\nList.Item = ListItem;\n\nexport default List;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction NavBar({\n align = 'center',\n children,\n left,\n right,\n title,\n pre,\n subtitle,\n withTabs,\n}) {\n const subtitleContent = subtitle ?

    { subtitle }

    : null;\n return (\n
    \n
    \n {pre && (\n
    {pre}
    \n )}\n {\n title\n ? (\n
    \n

    { title }

    \n { subtitleContent }\n
    \n )\n : subtitleContent\n }\n
    \n {left && (\n
    { left }
    \n )}\n {right && (\n
    { right }
    \n )}\n
    \n
    \n { children }\n
    \n );\n}\n\nNavBar.propTypes = {\n align: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n title: PropTypes.string,\n subtitle: PropTypes.string,\n pre: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n left: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n right: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n withTabs: PropTypes.bool,\n};\n\nexport default NavBar;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction NavigationItem({ children }) {\n return (\n
  • \n {children}\n
  • \n );\n}\n\nNavigationItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n};\n\nexport default NavigationItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport NavigationItem from './js/NavigationItem';\n\nfunction Navigation({ children }) {\n return (\n
      \n {children}\n
    \n );\n}\n\nNavigation.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n};\n\nNavigation.Item = NavigationItem;\n\nexport default Navigation;\n","import { createContext } from 'react';\n\nexport const PortalContext = createContext();\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Collapsible from '../../Collapsible';\nimport { PortalContext } from '../panel-context';\n\nfunction PanelBody({\n children,\n noPadding,\n className,\n ...rest\n}) {\n const getCssClasses = useCallback(\n () => [\n 'tyk-panel__body',\n className,\n noPadding && 'no-padding',\n ].filter(Boolean).join(' '),\n [className, noPadding],\n );\n\n return (\n \n {\n (portalContext) => (\n portalContext.collapsable\n ? (\n \n { children }\n \n )\n : (\n \n { children }\n
    \n )\n )\n }\n \n );\n}\n\nPanelBody.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n noPadding: PropTypes.bool,\n className: PropTypes.string,\n};\n\nexport default PanelBody;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction PanelFooter(props) {\n const { children } = props;\n return (\n
    \n { children }\n
    \n );\n}\n\nPanelFooter.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default PanelFooter;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../Icon';\nimport { PortalContext } from '../panel-context';\n\nclass PanelHeader extends Component {\n getCssClasses(props) {\n const { className } = this.props;\n let cssClasses = ['tyk-panel__header'];\n\n if (props.collapsable) {\n cssClasses.push('collapsable');\n }\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n return cssClasses.join(' ');\n }\n\n render() {\n const {\n children,\n } = this.props;\n\n return (\n \n {\n (portalContext) => {\n const HeaderTag = portalContext.theme === 'blank' ? 'h3' : 'div';\n const iconType = portalContext.collapsed ? 'chevron-down' : 'chevron-up';\n\n return (\n \n { children }\n {\n portalContext.collapsable\n ?
    \n : null\n }\n \n );\n }\n }\n
    \n );\n }\n}\n\nPanelHeader.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]).isRequired,\n className: PropTypes.string,\n};\n\nexport default PanelHeader;\n","import React, {\n useCallback, useEffect, useMemo, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport PanelBody from './js/PanelBody';\nimport PanelFooter from './js/PanelFooter';\nimport PanelHeader from './js/PanelHeader';\n\nimport { PortalContext } from './panel-context';\n\nfunction Panel(props) {\n const {\n children,\n className,\n collapsed,\n collapsable,\n theme,\n onToggleCollapse,\n collapsibleIconPosition = 'right',\n } = props;\n const [collapsedState, setCollapsedState] = useState(collapsed || false);\n\n useEffect(() => {\n if (collapsed !== collapsedState) {\n setCollapsedState(collapsed);\n }\n }, [collapsed]);\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-panel'];\n const panelTheme = `tyk-panel--${theme || 'default'}`;\n const collapsbleIconPosition = `tyk-panel__icon-collapse--${collapsibleIconPosition}`;\n\n cssClasses.push(panelTheme);\n cssClasses.push(collapsbleIconPosition);\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n if (collapsedState) {\n cssClasses.push('tyk-panel--collapsed');\n }\n\n return cssClasses.join(' ');\n };\n\n const handleToggle = useCallback(() => {\n setCollapsedState(!collapsedState);\n\n if (onToggleCollapse) {\n onToggleCollapse(!collapsedState);\n }\n }, [collapsedState, onToggleCollapse]);\n\n const context = useMemo(() => ({\n collapsable,\n collapsed: collapsedState,\n onToggle: handleToggle,\n theme,\n collapsibleIconPosition,\n }), [collapsable, collapsedState, collapsibleIconPosition, theme, handleToggle]);\n\n return (\n
    \n \n {\n (typeof children === 'function')\n ? children({\n toggleCollapse: handleToggle,\n })\n : children\n }\n \n
    \n );\n}\n\nPanel.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n collapsable: PropTypes.bool,\n collapsibleIconPosition: PropTypes.string,\n collapsed: PropTypes.bool,\n theme: PropTypes.string,\n onToggleCollapse: PropTypes.func,\n};\n\nPanel.Body = PanelBody;\nPanel.Footer = PanelFooter;\nPanel.Header = PanelHeader;\n\nexport default Panel;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * Pill\n */\nfunction Pill(props) {\n const {\n children,\n className,\n theme,\n } = props;\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-pill', ...theme.split(' ').map((t) => `tyk-pill--${t}`)];\n\n if (className) {\n cssClasses = cssClasses.concat(className);\n }\n\n return cssClasses.join(' ');\n };\n\n return (\n
    \n {children}\n
    \n );\n}\n\nPill.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n /** Css classes that can be passed to the Pill element */\n className: PropTypes.string,\n /** Theme that can be applied to a Pill */\n theme: PropTypes.string,\n};\n\nPill.defaultProps = {\n theme: 'default',\n};\n\nexport default Pill;\n","import { useRef } from 'react';\n\n/**\n * RevealPanelService is a class that manages the resizing of a panel element.\n * It provides methods to set the panel's height, hide and show it, and attach\n * event listeners for resizing.\n */\nclass RevealPanelService {\n #state = null; // Private state for mouse interactions.\n\n #panel = null; // The panel element to be resized.\n\n #gutter = null; // The gutter element used for resizing.\n\n #wrapper = null; // The wrapper element that contains the panel and gutter.\n\n #onHeightChangeCallbacks = []; // Callback function to be executed when the panel is resized.\n\n #onDragStartCallbacks = []; // Callback function to be executed when the panel is resized.\n\n #onDragEndCallbacks = []; // Callback function to be executed when the panel is resized.\n\n #dragStarted = false;\n\n /**\n * Sets a callback function to be executed when the panel is resized.\n * @param {function} callback - The callback function to be called on panel resize.\n */\n on(eventName, listener) {\n let list = null;\n if (eventName === 'onHeightChange') {\n list = this.#onHeightChangeCallbacks;\n } else if (eventName === 'onDragStart') {\n list = this.#onDragStartCallbacks;\n } else if (eventName === 'onDragEnd') {\n list = this.#onDragEndCallbacks;\n }\n\n if (list) {\n this.addListener(list, listener);\n }\n }\n\n off(eventName, listener) {\n let list = null;\n if (eventName === 'onHeightChange') {\n list = this.#onHeightChangeCallbacks;\n } else if (eventName === 'onDragStart') {\n list = this.#onDragStartCallbacks;\n } else if (eventName === 'onDragEnd') {\n list = this.#onDragEndCallbacks;\n }\n\n if (list) {\n this.removeListener(list, listener);\n }\n }\n\n /**\n * Sets the panel, gutter, and wrapper elements to be controlled by this class.\n * @param {HTMLElement} wrapper - The wrapper element containing the panel and gutter.\n * @param {HTMLElement} panel - The panel element to be resized.\n * @param {HTMLElement} gutter - The gutter element used for resizing.\n */\n setRefs(wrapper, panel, gutter) {\n if (this.#panel || this.#gutter || this.#wrapper) {\n this.unbindEvents();\n }\n this.#wrapper = wrapper;\n this.#panel = panel;\n this.#gutter = gutter;\n this.#state = null;\n this.bindEvents();\n }\n\n /**\n * Attaches event listeners for panel resizing.\n */\n bindEvents() {\n this.ensureRefs('bindEvents');\n this.#gutter.addEventListener('mousedown', this.onMouseDown.bind(this));\n document.addEventListener('mousemove', this.onMouseMove.bind(this));\n document.addEventListener('mouseup', this.onMouseUp.bind(this));\n }\n\n /**\n * Gets the current height of the panel.\n * @returns {number} - The height of the panel in pixels.\n */\n getHeight() {\n this.ensureRefs('getHeight');\n const size = this.#panel.getBoundingClientRect();\n return size.height;\n }\n\n /**\n * Handles the mouse down event, initiating the resizing process.\n * @param {MouseEvent} e - The mouse event object.\n */\n onMouseDown(e) {\n this.ensureRefs('onMouseDown');\n this.#state = {\n mouseDown: true,\n initialRect: this.#panel.getBoundingClientRect(),\n initialEvent: e,\n };\n }\n\n /**\n * Handles the mouse move event, adjusting the panel's height during resizing.\n * @param {MouseEvent} e - The mouse event object.\n */\n onMouseMove(e) {\n this.ensureRefs('onMouseMove');\n\n if (!this.#state) {\n return;\n }\n\n const isButtonDown = this.isPrimaryMouseButtonDown(e);\n if (!isButtonDown) {\n this.onMouseUp();\n return;\n }\n\n if (!this.#dragStarted) {\n this.#dragStarted = true;\n this.onDragStart.bind(this)();\n }\n\n const newY = this.#state.initialEvent.y - e.y;\n const finalHeight = Math.ceil(this.#state.initialRect.height + newY);\n this.setHeight(`${finalHeight}px`, 'mousemove');\n }\n\n // eslint-disable-next-line class-methods-use-this\n notifyListeners(list, value) {\n if (list && Array.isArray(list) && list.length) {\n list.forEach((fn) => {\n if (typeof fn === 'function') {\n fn(value);\n }\n });\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n addListener(list, listener) {\n if (list && Array.isArray(list) && typeof listener === 'function') {\n list.push(listener);\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n removeListener(list, listener) {\n if (list && Array.isArray(list) && typeof listener === 'function' && list.length) {\n const index = list.indexOf(listener);\n\n if (index > -1) {\n list.splice(index, 1);\n }\n }\n }\n\n onDragEnd() {\n if (this.#dragStarted) {\n this.notifyListeners(this.#onDragEndCallbacks, this.getHeight());\n }\n }\n\n onDragStart() {\n this.notifyListeners(this.#onDragStartCallbacks, this.getHeight());\n }\n\n // eslint-disable-next-line class-methods-use-this\n isPrimaryMouseButtonDown(e) {\n const flags = e.buttons !== undefined ? e.buttons : e.which;\n // eslint-disable-next-line no-bitwise\n const isDown = flags === 1;\n return isDown;\n }\n\n /**\n * Resets the state after the mouse up event, ending the resizing process.\n */\n onMouseUp() {\n this.#state = null;\n this.onDragEnd.bind(this)();\n this.#dragStarted = false;\n }\n\n /**\n * Sets the height of the panel.\n * @param {string} height - The new height value as a CSS string (e.g., \"100px\").\n */\n setHeight(height) {\n let heightVal = height;\n this.ensureRefs('setHeight');\n\n if (typeof heightVal === 'number') {\n heightVal += 'px';\n }\n\n this.#panel.style.height = heightVal;\n\n this.notifyListeners(this.#onHeightChangeCallbacks, this.getHeight());\n }\n\n /**\n * Ensures that the required elements (wrapper, panel, and gutter) are set.\n * Throws an error if they are missing.\n */\n ensureRefs(reason) {\n if (!this.#panel || !this.#gutter || !this.#wrapper) {\n throw new Error(\n `${reason}: Wrapper, panel, and gutter elements are required. Use setRefs method first.`,\n );\n }\n }\n\n /**\n * Checks if the panel is hidden.\n * @returns {boolean} - True if the panel is hidden; false otherwise.\n */\n isHidden() {\n this.ensureRefs('isHidden');\n return this.#wrapper.style.visibility === 'hidden';\n }\n\n /**\n * Hides the panel by setting its visibility to \"hidden\".\n */\n hide() {\n this.ensureRefs('hide');\n this.#wrapper.style.visibility = 'hidden';\n }\n\n /**\n * Shows the panel by setting its visibility to \"visible\".\n */\n show() {\n this.ensureRefs('show');\n this.#wrapper.style.visibility = 'visible';\n }\n\n /**\n * Unbinds the event listeners added for resizing.\n */\n unbindEvents() {\n this.#onHeightChangeCallbacks = [];\n this.#onDragStartCallbacks = [];\n this.#onDragEndCallbacks = [];\n this.#gutter.removeEventListener('mousedown', this.onMouseDown.bind(this));\n document.removeEventListener('mousemove', this.onMouseMove.bind(this));\n document.removeEventListener('mouseup', this.onMouseUp.bind(this));\n }\n\n deinit() {\n this.unbindEvents();\n }\n}\n\nexport const useRevealPanelService = () => {\n const revealPanelServiceRef = useRef(new RevealPanelService());\n return revealPanelServiceRef.current;\n};\n","import React, {\n useEffect,\n useRef,\n useImperativeHandle,\n forwardRef,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { createPortal } from 'react-dom';\nimport { useRevealPanelService } from './js/RevealPanelService';\n\nfunction RevealPanelHeaderLeft({ children }) {\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return <>{children};\n}\n\nRevealPanelHeaderLeft.propTypes = {\n children: PropTypes.instanceOf({}),\n};\n\nfunction RevealPanelHeaderRight({ children }) {\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return <>{children};\n}\n\nRevealPanelHeaderRight.propTypes = {\n children: PropTypes.instanceOf({}),\n};\n\nconst mergeClasses = (...classNames) => classNames.map((it) => (it || '').trim()).filter(Boolean).join(' ');\n\nfunction RevealPanel({\n children,\n height,\n onHeightChange = null,\n onDragStart = null,\n onDragEnd = null,\n style = null,\n parentSelector = null,\n contentStyle,\n contentClassName,\n gutterClassName,\n wrapperClassName,\n// eslint-disable-next-line consistent-return\n}, ref) {\n const panelRef = useRef(null);\n const gutterRef = useRef(null);\n const wrapperRef = useRef(null);\n\n const panelService = useRevealPanelService();\n\n useEffect(() => {\n if (!panelRef.current || !gutterRef.current || !wrapperRef.current) {\n return;\n }\n\n if (!panelService) {\n return;\n }\n\n panelService.setRefs(wrapperRef.current, panelRef.current, gutterRef.current);\n panelService.on('onHeightChange', onHeightChange);\n panelService.on('onDragStart', onDragStart);\n panelService.on('onDragEnd', onDragEnd);\n panelService.setHeight(height, 'initialize');\n\n // eslint-disable-next-line consistent-return\n return () => {\n panelService.unbindEvents();\n };\n }, []);\n\n useImperativeHandle(\n ref,\n () => {\n // bind this context\n const bind = (func) => func.bind(panelService);\n\n return {\n getHeight: bind(panelService.getHeight),\n setHeight: bind(panelService.setHeight),\n hide: bind(panelService.hide),\n show: bind(panelService.show),\n isHidden: bind(panelService.isHidden),\n deinit: bind(panelService.deinit),\n on: bind(panelService.on),\n off: bind(panelService.off),\n };\n },\n [],\n );\n\n let headerLeft = null;\n let headerRight = null;\n const contents = [];\n\n React.Children.forEach(children, (child) => {\n if (child && React.isValidElement(child)) {\n if (child.type === RevealPanelHeaderLeft) {\n headerLeft = child;\n } else if (child.type === RevealPanelHeaderRight) {\n headerRight = child;\n } else {\n contents.push(child);\n }\n }\n });\n\n const element = (\n
    \n
    \n
    \n\n
    {headerLeft}
    \n
    \n
    {headerRight}
    \n\n
    \n
    \n {contents}\n
    \n
    \n );\n\n if (parentSelector) {\n return createPortal(element, document.querySelector(parentSelector));\n }\n}\n\nRevealPanel.propTypes = {\n children: PropTypes.instanceOf({}),\n height: PropTypes.string,\n onHeightChange: PropTypes.func,\n onDragStart: PropTypes.func,\n onDragEnd: PropTypes.func,\n parentSelector: PropTypes.string,\n style: PropTypes.instanceOf({}),\n contentStyle: PropTypes.instanceOf({}),\n contentClassName: PropTypes.string,\n gutterClassName: PropTypes.string,\n wrapperClassName: PropTypes.string,\n};\nconst TempRevealPanel = forwardRef(RevealPanel);\nTempRevealPanel.HeaderLeft = RevealPanelHeaderLeft;\nTempRevealPanel.HeaderRight = RevealPanelHeaderRight;\n\nexport default TempRevealPanel;\n","import { createContext } from 'react';\n\nexport const TabsContext = createContext();\n","import { createContext } from 'react';\n\nexport default createContext();\n","import React, { useEffect, useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport TabContext from './TabContext';\nimport { usePrevious } from '../../../hooks';\n\nfunction TabContent(props) {\n const {\n addTab,\n hideTab,\n updateTab,\n showTab,\n children,\n selectedPath,\n tabData,\n tabsId,\n tabExists,\n path,\n rendered,\n hideTabContent,\n tabs,\n } = props;\n\n useEffect(() => {\n const tempTabData = { ...tabData };\n\n if (!tabExists(path)) {\n addTab(tempTabData, path);\n }\n }, [tabData, path]);\n\n const prevTabData = usePrevious(tabData);\n useEffect(() => {\n if (\n tabExists(path) && tabData?.title\n && (prevTabData?.title !== tabData?.title || prevTabData?.selected !== tabData.selected)\n ) {\n const tempTabData = { ...tabData };\n updateTab(tempTabData, path);\n }\n }, [tabData, path, prevTabData, tabs]);\n\n useEffect(() => {\n showTab(path);\n return () => hideTab(path);\n }, []);\n\n const shouldRender = useMemo(() => {\n if (!Object.keys(tabs).length) {\n return false;\n }\n\n if (hideTabContent || tabs[tabData.id].show === false) {\n return false;\n }\n\n if (!rendered) {\n return tabExists(path);\n }\n return selectedPath && selectedPath.indexOf(tabData.id) > -1;\n }, [hideTabContent, rendered, selectedPath, tabData, tabs]);\n\n const context = useMemo(() => ({ path, tabsId }), [path, tabsId]);\n\n if (!shouldRender) return null;\n return (\n
    -1 ? 'block' : 'none' }}>\n \n {children}\n \n
    \n );\n}\n\nTabContent.propTypes = {\n addTab: PropTypes.func,\n updateTab: PropTypes.func,\n hideTab: PropTypes.func,\n showTab: PropTypes.func,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n path: PropTypes.instanceOf(Array),\n hideTabContent: PropTypes.bool,\n rendered: PropTypes.bool,\n selectedPath: PropTypes.instanceOf(Array),\n tabExists: PropTypes.func,\n tabsId: PropTypes.string,\n tabData: PropTypes.instanceOf(Object),\n tabs: PropTypes.instanceOf(Object),\n};\n\nexport default TabContent;\n","import React, {\n useContext, useEffect, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { TabsContext } from '../tabs-context';\nimport TabContext from './TabContext';\nimport TabContent from './TabContent';\n\nfunction Tab(props) {\n const { id } = props;\n const tabsContext = useContext(TabsContext);\n const tabContext = useContext(TabContext);\n const {\n tabExists,\n selectedPath,\n addTab,\n updateTab,\n hideTab,\n showTab,\n rendered,\n hideTabContent,\n tabs,\n } = tabsContext;\n const {\n children,\n } = props;\n const [path, setPath] = useState('');\n\n useEffect(() => {\n let tempPath;\n if (tabContext && path) {\n if (tabContext.tabsId === tabsContext.id) {\n tempPath = tabContext.path.concat([id]);\n } else {\n tempPath = [id];\n }\n } else {\n tempPath = [id];\n }\n setPath(tempPath);\n }, [tabContext]);\n\n if (!path) {\n return null;\n }\n\n return (\n \n {children}\n \n );\n}\n\nTab.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n id: PropTypes.string,\n};\n\nTab.defaultProps = {};\n\nexport default Tab;\n","import React, {\n useEffect, useMemo, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport Tab from './js/Tab';\n\nimport Collapsible from '../Collapsible';\nimport Icon from '../Icon';\nimport { TabsContext } from './tabs-context';\n\nfunction Tabs(props) {\n const {\n children,\n className,\n id,\n onTabChange,\n type,\n hideTabContent,\n } = props;\n const [tabs, setTabs] = useState({});\n const [selectedPath, setSelectedPath] = useState([]);\n const [rendered, setRendered] = useState(false);\n const [initialPath, setInitialPath] = useState(null);\n\n useEffect(() => {\n setSelectedPath(initialPath);\n }, [initialPath]);\n\n const updateTabsList = (tabsState, path, tabData) => {\n let tempTabsState = { ...tabsState };\n const tempTabData = { ...tabData };\n const tempPath = path.slice(0);\n\n while (tempPath.length > 1) {\n tempTabsState = tempTabsState[tempPath.shift()];\n\n if (!tempTabsState) {\n tempTabsState = {};\n }\n }\n\n tempTabData.tempPath = tempPath;\n tempTabsState[tempPath.shift()] = tempTabData;\n\n return tempTabsState;\n };\n\n const toggleTab = (tabsState, path) => {\n let tempTabsState = { ...tabsState };\n const tempPath = path.slice(0);\n\n while (tempPath.length > 1) {\n tempTabsState = tempTabsState[tempPath.shift()];\n }\n\n const key = tempPath.shift();\n if (tempTabsState[key].collapsed === undefined) {\n tempTabsState[key].collapsed = true;\n } else {\n tempTabsState[key].collapsed = !tempTabsState[key].collapsed;\n }\n\n return tempTabsState;\n };\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-tabs'];\n\n cssClasses.push(`tyk-tabs--${type || 'default'}`);\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n return cssClasses.join(' ');\n };\n\n const setCurrentSelectedPath = (path, tabData) => {\n const tempPath = path.slice(0);\n let tempRendered = true;\n\n if (tabData.collapsible) {\n tempPath.push(Object.keys(tabData.tabs)[0]);\n tempRendered = false;\n }\n\n setTabs((prevTabs) => {\n let tempTabs = { ...prevTabs };\n\n tempTabs = toggleTab(tempTabs, path);\n\n return tempTabs;\n });\n setSelectedPath(tempPath);\n setRendered(tempRendered);\n\n if (onTabChange) {\n onTabChange(tabData);\n }\n };\n\n const getTabCssClass = (tabId) => {\n const cssClasses = [];\n\n if (selectedPath && selectedPath.indexOf(tabId) > -1) {\n cssClasses.push('active');\n }\n\n return cssClasses.join(' ');\n };\n\n const genTabs = (currentTabs, path) => {\n if (!currentTabs) {\n return null;\n }\n\n return (\n
      \n {\n Object.keys(currentTabs).map((tabId, index) => {\n const tempPath = path ? path.concat([currentTabs[tabId].id]) : [currentTabs[tabId].id];\n const iconType = currentTabs[tabId].collapsed ? 'chevron-up' : 'chevron-down';\n\n if (currentTabs[tabId].show === false) {\n return null;\n }\n\n return (\n
    • \n \n { currentTabs[tabId].title }\n {\n currentTabs[tabId].collapsible\n ? \n : null\n }\n \n {\n currentTabs[tabId].collapsible\n ? (\n \n {genTabs(currentTabs[tabId].tabs, tempPath)}\n \n )\n : genTabs(currentTabs[tabId].tabs, tempPath)\n }\n
    • \n );\n })\n }\n
    \n );\n };\n\n const addTab = (tabData, path) => {\n setTabs((prevTabs) => updateTabsList({ ...prevTabs }, path, tabData));\n\n if (tabData.selected) {\n setInitialPath(path);\n }\n };\n\n const updateTab = (tabData, path) => {\n setTabs((prevTabs) => {\n const tempTabs = { ...prevTabs };\n tempTabs[tabData.id] = tabData;\n return tempTabs;\n });\n\n if (tabData.selected) {\n setCurrentSelectedPath(path, tabData);\n }\n };\n\n const hideTab = (path) => {\n setTabs((prevTabs) => {\n const tempTabs = { ...prevTabs };\n tempTabs[path].show = false;\n\n return tempTabs;\n });\n };\n\n const showTab = (path) => {\n setTabs((prevTabs) => {\n const tempTabs = { ...prevTabs };\n\n tempTabs[path].show = true;\n\n return tempTabs;\n });\n };\n\n const tabExists = (path) => {\n let tempTabs = { ...tabs };\n const tempPath = path.slice(0);\n while (tempPath.length > 1) {\n tempTabs = tempTabs[tempPath.shift()];\n }\n\n const key = tempPath.shift();\n\n return Boolean(tempTabs?.[key]);\n };\n\n const context = useMemo(() => ({\n id,\n addTab,\n hideTab,\n updateTab,\n showTab,\n tabExists,\n selectedPath,\n rendered,\n hideTabContent,\n tabs,\n }), [\n id,\n addTab,\n hideTab,\n updateTab,\n showTab,\n tabExists,\n selectedPath,\n rendered,\n hideTabContent,\n tabs,\n ]);\n\n return (\n
    \n {genTabs(tabs)}\n \n {\n (typeof children === 'function')\n ? children({\n hideTab,\n showTab,\n })\n : children\n }\n \n
    \n );\n}\n\nTabs.propTypes = {\n className: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n hideTabContent: PropTypes.bool,\n id: PropTypes.string,\n onTabChange: PropTypes.func,\n type: PropTypes.string,\n};\n\nTabs.Tab = Tab;\n\nexport default Tabs;\n","import React, {\n useCallback, useEffect, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport FloatingContainer from '../FloatingContainer';\nimport Icon from '../Icon';\n\nfunction Tooltip({\n render,\n className,\n children,\n position = 'auto',\n style,\n icon = false,\n closable,\n isOpened = false,\n additionalClickParents = [],\n ...props\n}) {\n const [isActive, setIsActive] = useState(false);\n const wrapperRef = useRef(null);\n const tooltipRef = useRef(null);\n const activeEvents = closable\n ? {\n onClick: () => setIsActive(true),\n }\n : {\n onMouseEnter: () => setIsActive(true),\n onMouseLeave: () => setIsActive(false),\n onFocus: () => setIsActive(true),\n onBlur: () => setIsActive(false),\n };\n\n const handleDocumentClick = useCallback((e) => {\n if ([...additionalClickParents, tooltipRef.current].some((p) => p?.contains?.(e.target))) {\n return;\n }\n setIsActive(false);\n }, [additionalClickParents]);\n\n useEffect(() => {\n document.addEventListener('click', handleDocumentClick, true);\n return () => document.removeEventListener('click', handleDocumentClick, true);\n }, [handleDocumentClick]);\n\n useEffect(() => {\n setIsActive(isOpened);\n }, [isOpened]);\n\n const classes = ['tyk-tooltip', className].filter(Boolean).join(' ');\n return (\n \n {children}\n {isActive && (\n \n
    \n {icon && (\n icon === true ? (\n \n ) : (\n icon\n )\n )}\n
    \n {render}\n
    \n {closable && (\n {\n e.stopPropagation();\n setIsActive(false);\n }}\n />\n )}\n
    \n \n )}\n
    \n );\n}\n\nTooltip.propTypes = {\n children: PropTypes.node.isRequired,\n /** custom styles to apply on hovered element */\n style: PropTypes.instanceOf(Object),\n /** describes where the tooltip should be displayed in relation\n * whith the hovered element: top, bottom, left, right\n */\n position: PropTypes.string,\n /** content of the tooltip, can be a string or a React node element */\n render: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.string,\n ]),\n /** additional tooltip classes */\n className: PropTypes.string,\n /** if `true` displays the \"question mark\" icon;\n * optionally you can pass a different icon\n */\n icon: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.node,\n ]),\n /** if `true` the tooltip is activated on click and an \"x\" is displayed to close it;\n * if `false` the tooltip is activated on hover and it closes when no longer hovering\n */\n closable: PropTypes.bool,\n /** handles the `isActive` state of the tooltip from outside */\n isOpened: PropTypes.bool,\n /** Additional dom elements to check if the document click was inside of them.\n * Useful when you want to open the tooltip after an interaction\n * with an element not inside the tooltip root.\n */\n additionalClickParents: PropTypes.instanceOf(Array),\n};\n\nexport default Tooltip;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Tooltip from '../Tooltip';\n/**\n * TextEllipsis component helps you to hide a part of a text,\n * but displaying it when it's being hovered.\n * The entire text is displayed with the help of Tooltip component\n */\n\nfunction TextEllipsis({ text, limit, position }) {\n return (\n text.length > limit\n ? (\n \n {text.substring(0, limit)}\n ...\n \n )\n : text\n );\n}\n\nTextEllipsis.propTypes = {\n /** Text to be shrinked by TextEllipsis */\n text: PropTypes.string,\n /** Number of characters that TextEllipsis would leave visible */\n limit: PropTypes.number,\n /** tooltip position */\n position: PropTypes.string,\n};\n\nexport default TextEllipsis;\n","import React, { useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction shouldShowPage(currentNr, pageNr, totalNrOfPages) {\n const basePageNr = 5;\n const minimumNrOfPages = 10;\n\n if (totalNrOfPages < minimumNrOfPages) {\n return true;\n }\n\n if (\n pageNr < basePageNr\n && currentNr < basePageNr\n ) {\n return true;\n }\n\n if (\n pageNr > totalNrOfPages - basePageNr\n && currentNr > totalNrOfPages - basePageNr\n ) {\n return true;\n }\n\n if (\n currentNr >= pageNr - 2\n && currentNr <= pageNr + 2\n ) {\n return true;\n }\n\n return [0, 1, totalNrOfPages - 1, totalNrOfPages].includes(currentNr);\n}\n\nfunction getPagesArr(nrOfPages, selectedPage) {\n let i;\n const pagesArr = [];\n\n for (i = 0; i <= nrOfPages; i += 1) {\n if (shouldShowPage(i, selectedPage, nrOfPages)) {\n if (i > pagesArr.at(-1)) {\n pagesArr.push(`...-${i}`);\n }\n pagesArr.push(i + 1);\n }\n }\n\n return pagesArr;\n}\n\nfunction Pagination(props) {\n const {\n value = 0,\n totalNrOfPages,\n onChange,\n } = props;\n\n const [selectedPage, setSelectedPage] = useState(value);\n\n const pagesArray = useMemo(\n () => getPagesArr(totalNrOfPages, selectedPage),\n [selectedPage, totalNrOfPages],\n );\n\n function goToPage(pageNr) {\n setSelectedPage(pageNr);\n if (onChange) onChange(pageNr);\n }\n\n return (\n totalNrOfPages\n ? (\n
      \n {selectedPage > 0 && totalNrOfPages > 5 && (\n
    • \n \n
    • \n )}\n {\n pagesArray.map((pageNr) => (\n
    • \n {\n String(pageNr).startsWith('...')\n ? ...\n : \n }\n
    • \n ))\n }\n {selectedPage < totalNrOfPages && totalNrOfPages > 5 && (\n
    • \n \n
    • \n )}\n
    \n )\n : null\n );\n}\n\nPagination.propTypes = {\n value: PropTypes.number,\n totalNrOfPages: PropTypes.number,\n onChange: PropTypes.func,\n};\n\nexport default Pagination;\n","import { createContext } from 'react';\n\nexport const tableContext = createContext();\n","import React, { useState, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { tableContext } from '../tableContext';\nimport Icon from '../../Icon';\n\nexport function HeaderCell({ column }) {\n const { sortable } = column;\n const [sortOrder, setSortOrder] = useState(sortable?.default || 'ASC');\n const { state, sendMessage } = useContext(tableContext);\n return (\n {\n sendMessage('sort', { column, sortOrder });\n setSortOrder(sortOrder === 'ASC' ? 'DESC' : 'ASC');\n } : null}\n className={state.maxHeight ? 'fixed-header' : ''}\n >\n {column.name}\n {column.sortable && (\n \n \n \n )}\n \n );\n}\n\nHeaderCell.propTypes = {\n column: PropTypes.instanceOf(Object),\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { HeaderCell } from './header-cell';\nimport { tableContext } from '../tableContext';\n\nexport function Header({ allRowsSelected }) {\n const { state, sendMessage } = useContext(tableContext);\n const { columns, selectable } = state;\n\n const generateHeaders = () => columns.map((column) => (\n \n ));\n\n const generateSelectable = () => {\n const Component = selectable.type;\n return (\n \n {selectable?.allowSelectAll ? (\n
    \n {\n const isCheckbox = v?.target?.tagName.toLowerCase() === 'input' && v?.target?.type.toLowerCase() === 'checkbox';\n sendMessage('header.selectAll.change', isCheckbox ? v.target.checked : Boolean(v));\n }}\n >\n {selectable.values?.value}\n \n
    \n ) : (\n selectable.name || 'Select'\n )}\n \n );\n };\n\n return (\n \n \n {selectable?.position === 'LEFT' && generateSelectable()}\n {generateHeaders()}\n {selectable?.position === 'RIGHT' && generateSelectable()}\n \n \n );\n}\n\nHeader.propTypes = {\n allRowsSelected: PropTypes.bool,\n};\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * - Checkboxes are used when a user needs to select one or more values from a series of options.\n * - They can be also be used as a binary toggle but consider radio instead.\n * - Can be used with Formik respectively (FormikCheckbox)\n */\nclass Checkbox extends Component {\n getCssClasses() {\n const {\n inline, disabled, readOnly, theme = '', wrapperClassName = '',\n } = this.props;\n\n const cssClasses = [wrapperClassName];\n\n cssClasses.push('tyk-checkbox');\n\n if (inline) {\n cssClasses.push('tyk-checkbox--inline');\n }\n\n if (theme.trim()) {\n cssClasses.push(...theme.split(' ').map((t) => `tyk-checkbox--theme-${t}`));\n }\n\n if (disabled || readOnly) {\n cssClasses.push('tyk-checkbox--is-disabled');\n }\n\n return cssClasses.join(' ');\n }\n\n displayError() {\n const { error } = this.props;\n if (!error) return null;\n\n return (\n

    \n {error}\n

    \n );\n }\n\n displayNote() {\n const { note } = this.props;\n if (!note) return null;\n\n return (\n

    \n {note}\n

    \n );\n }\n\n render() {\n const {\n input, value, label, ...rest\n } = this.props;\n return (\n \n
    \n \n {this.displayNote()}\n {this.displayError()}\n
    \n \n );\n }\n}\n\nCheckbox.propTypes = {\n /** Disable a checkbox */\n disabled: PropTypes.bool,\n /** Readonly prop behaves the same as disable on checkboxes */\n readOnly: PropTypes.bool,\n /** Align checkbox with in same line with other elements */\n inline: PropTypes.bool,\n /** Set a theme for checkbox */\n theme: PropTypes.string,\n /** Set an error state for checkbox if boolean will show just icon without message */\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n /** Adds additional information under the checkbox element */\n note: PropTypes.string,\n input: PropTypes.instanceOf(Object),\n /** Adds a label to checkbox */\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n /** Set a name for checkbox */\n name: PropTypes.string,\n /** Set initial value for checkbox */\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n /** Make checkbox checked by default */\n checked: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n /** Callback function executed on change of checkbox */\n onChange: PropTypes.func,\n /** CSS classes added to the wrapper of the component */\n wrapperClassName: PropTypes.string,\n};\n\nexport default Checkbox;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nexport function Cell({ col, row }) {\n if (!row.values[col.id]) {\n return ; // eslint-disable-line jsx-a11y/control-has-associated-label\n }\n\n if (col.type === 'string') {\n return (\n \n {row.values[col.id]?.value}\n \n );\n }\n const Component = col.type;\n return (\n \n \n {row.values[col.id].children ? row.values[col.id].children : null}\n
    \n \n );\n}\n\nCell.propTypes = {\n col: PropTypes.instanceOf(Object),\n row: PropTypes.instanceOf(Object),\n index: PropTypes.number,\n};\n","import React, { useCallback, useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport Checkbox from '../../../form/components/Checkbox';\nimport { Cell } from './cell';\nimport { tableContext } from '../tableContext';\n\nexport function Row({ row, index }) {\n const { state, sendMessage } = useContext(tableContext);\n const { columns, selectable } = state;\n\n const SelectableCheckbox = useCallback(() => (\n // eslint-disable-next-line jsx-a11y/control-has-associated-label\n \n sendMessage('row.selected', { index, selected: v.target.checked })}\n />\n \n ), [row.selected, index]);\n\n return (\n \n {selectable && selectable.position === 'LEFT' && SelectableCheckbox()}\n {columns.map((col) => (\n \n ))}\n {selectable && selectable.position === 'RIGHT' && SelectableCheckbox()}\n \n );\n}\n\nRow.propTypes = {\n row: PropTypes.instanceOf(Object),\n index: PropTypes.number,\n};\n","import React, { useContext } from 'react';\nimport { tableContext } from '../tableContext';\nimport { Row } from './row';\n\nexport function Body() {\n const { state } = useContext(tableContext);\n const { rows } = state;\n\n return (\n \n {\n // eslint-disable-next-line react/no-array-index-key\n rows.map((row, i) => )\n }\n \n );\n}\n","import React, {\n useCallback, useEffect, useMemo, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport Message from '../Message';\nimport Pagination from '../../form/components/Pagination';\nimport Loader from '../Loader';\nimport InfiniteScroller from '../InfiniteScroller';\nimport { Header } from './js/header';\nimport { Body } from './js/body';\nimport { tableContext } from './tableContext';\n\n/**\n * This is tyk's table component used to render a data in a tabular view.\n * See the example configuration object below to understand how to hydrate the table component\n */\n\nfunction Table({\n value, onChange, noDataMessage, loading, infiniteScrolling,\n}) {\n const [state, setState] = useState(null);\n const [onChangeMsg, setOnChangeMsg] = useState('api');\n const itemsListRef = useRef(null);\n const sortRows = useCallback((col, sortOrder) => {\n setState((prevState) => ({\n ...prevState,\n sort: {\n order: sortOrder,\n col,\n },\n }));\n }, []);\n\n const selectAllRows = useCallback((selected) => {\n setState((prevState) => ({\n ...prevState,\n rows: prevState.rows.map((row) => ({ ...row, selected })),\n }));\n }, []);\n\n const selectRow = useCallback(({ index, selected }) => {\n setState((prevState) => ({\n ...prevState,\n rows: [\n ...prevState.rows.slice(0, index),\n { ...prevState.rows[index], selected },\n ...prevState.rows.slice(index + 1),\n ],\n }));\n }, []);\n\n const setPagination = useCallback((data) => {\n setState((prevState) => ({\n ...prevState,\n pagination: {\n ...prevState.pagination,\n current: data + 1,\n },\n }));\n }, []);\n\n const api = {\n getState: () => state,\n setState: (newState) => setState(newState),\n };\n\n const sendMessage = useCallback((message, data) => {\n setOnChangeMsg(message);\n if (message === 'sort') {\n sortRows(data.column.id, data.sortOrder);\n }\n\n if (message === 'header.selectAll.change') {\n selectAllRows(data);\n }\n\n if (message === 'row.selected') {\n selectRow(data);\n }\n\n if (message === 'pagination.change') {\n setPagination(data);\n }\n }, [sortRows, selectAllRows, selectRow, setPagination]);\n\n const context = useMemo(() => ({ state, sendMessage }), [state, sendMessage]);\n\n useEffect(() => setState(value), [value]);\n useEffect(() => {\n if (onChange) {\n onChange(onChangeMsg, state, api);\n }\n setOnChangeMsg('api');\n }, [state]);\n\n if (!state) {\n return ;\n }\n\n if (state.rows <= 0) {\n return {noDataMessage || 'No Data Available'};\n }\n\n const getTable = () => (\n \n
    selected)} />\n \n
    \n );\n\n return (\n \n
    \n {\n loading && \n }\n {\n infiniteScrolling && state.pagination\n ? (\n state.pagination.current}\n loadMore={(num) => sendMessage('pagination.change', num)}\n pageNumber={state.pagination.current - 1}\n initialLoad={false}\n >\n { getTable() }\n \n )\n : getTable()\n }\n
    \n {state.pagination && !infiniteScrolling && (\n
    \n sendMessage('pagination.change', num)}\n />\n
    \n )}\n
    \n );\n}\n\nTable.propTypes = {\n /** Configuration object used to render the component */\n value: PropTypes.shape({\n /** Configuration for table columns */\n columns: PropTypes.arrayOf(PropTypes.shape({\n /** Unique id of the column */\n id: PropTypes.string.isRequired,\n /** Name of the column */\n name: PropTypes.string,\n /** Type of column, String by default */\n type: PropTypes.oneOfType([\n /** Just renders cell data of type strings */\n PropTypes.string,\n /** Render cell of elements (eg. Input / Button) */\n PropTypes.element,\n /** Render a custom function/component */\n PropTypes.func,\n ]),\n sortable: PropTypes.oneOfType([\n /** Make Column sortable */\n PropTypes.bool,\n /** Configure sorting behaviour */\n PropTypes.shape({\n /** Set default sorting direction ASC / DESC */\n default: PropTypes.string,\n }),\n ]),\n })),\n /** Configuration for table rows */\n rows: PropTypes.arrayOf(PropTypes.shape({})),\n /** Configuration to make table rows selectable */\n selectable: PropTypes.shape({}),\n /** Renders pagination for table if the object is missing / empty no pagination is rendered. */\n pagination: PropTypes.shape({}),\n /** Sets maximum height for table container. */\n maxHeight: PropTypes.string,\n /** Styling for the table container. */\n styling: PropTypes.shape({\n /** It's recommended to add styles to a class and pass the class in this object */\n className: PropTypes.string,\n }),\n }).isRequired,\n /** Callback executed with message and value when there are changes on table */\n onChange: PropTypes.func,\n /** Renders a component with the given message when `config.rows` is empty */\n noDataMessage: PropTypes.string,\n /** Show placeholder loader */\n loading: PropTypes.bool,\n /** Adds infinite scroller on page and calls `onChange` with `pagination.change` message */\n infiniteScrolling: PropTypes.bool,\n};\n\nTable.defaultProps = {\n loading: false,\n infiniteScrolling: false,\n noDataMessage: 'No Data Available',\n onChange: null,\n};\n\nexport default Table;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Column({\n children,\n align,\n className,\n offset,\n size,\n ...rest\n}) {\n const classes = [\n 'tyk-col',\n className,\n align && `tyk-col--align-${align}`,\n ...size.split(' ').map((cSize) => `tyk-col--${cSize}`),\n ...(offset ? offset.split(' ') : []).map((cOffset) => `tyk-col--offset-${cOffset}`),\n ].filter(Boolean).join(' ');\n\n return (\n
    \n { children }\n
    \n );\n}\n\nColumn.propTypes = {\n /**\n * This property describes how the column element will be aligned vertically\n * within a Row: bottom, center, top\n */\n align: PropTypes.string,\n /** Css classes that can be passed to the column element */\n className: PropTypes.string,\n /**\n * Specifies the size of the column within a Row (values must be between 1 - 12)\n */\n size: PropTypes.string.isRequired,\n /**\n * Specifies the left gap a column can have within a Row (values must be between 1 - 12)\n */\n offset: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n PropTypes.object,\n PropTypes.node,\n ]),\n};\n\nexport default Column;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/** Row component which must be always present as a wrapper for Columns */\nfunction Row({\n className,\n nogutters,\n children,\n ...rest\n}) {\n const classes = [\n 'tyk-row',\n className,\n nogutters && 'no-gutters',\n nogutters && 'tyk-row--gutterless',\n ].filter(Boolean).join(' ');\n\n return (\n
    \n { children }\n
    \n );\n}\n\nRow.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n /** Css classes that can be passed to the Row element */\n className: PropTypes.string,\n /** Removes all the spaces between column */\n nogutters: PropTypes.bool,\n};\n\nexport default Row;\n","import { createContext } from 'react';\n\nexport const DropdownContext = createContext();\n","import React, { cloneElement, useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { DropdownContext } from '../dropdown-context';\nimport Icon from '../../../../components/Icon';\n\nfunction DropdownItem(props) {\n const {\n customdropdownitem,\n children,\n eventKey,\n href,\n target,\n title,\n onClick,\n } = props;\n const dropdownItemCLick = useCallback((dropdownContext, itemProps) => {\n dropdownContext.onSelectItem(eventKey, itemProps);\n\n if (onClick) onClick(eventKey);\n }, []);\n\n return (\n \n {\n (dropdownContext) => (\n dropdownItemCLick(dropdownContext, props)}\n onKeyUp={() => {}}\n >\n {\n customdropdownitem\n ? cloneElement(customdropdownitem, {})\n : (\n \n {\n eventKey\n && dropdownContext.selectedItem === eventKey\n && dropdownContext.showCheckmark\n ? \n : null\n }\n \n {title || children}\n \n \n )\n }\n \n )\n }\n \n );\n}\n\nDropdownItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n customdropdownitem: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n ]),\n eventKey: PropTypes.string,\n href: PropTypes.string,\n target: PropTypes.string,\n onClick: PropTypes.func,\n title: PropTypes.string,\n};\n\nexport default DropdownItem;\n","import React, {\n Component, createRef,\n} from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport DropdownItem from './js/DropdownItem';\nimport Button from '../../../components/Button';\nimport { DropdownContext } from './dropdown-context';\n\nclass Dropdown extends Component {\n static isElemInRightView(el, dropdownWidth) {\n const windowWidth = window.innerWidth;\n const offset = el.getBoundingClientRect();\n const elemRight = offset.left + dropdownWidth;\n\n return elemRight <= windowWidth;\n }\n\n static isElemInBottomView(el, dropdownHeight) {\n const windowHeight = window.innerHeight;\n const offset = el.getBoundingClientRect();\n const elHeight = el.clientHeight;\n const elemBottom = offset.top + elHeight + dropdownHeight;\n\n return elemBottom <= windowHeight;\n }\n\n constructor(props) {\n super(props);\n\n const {\n selectedItem,\n open,\n } = this.props;\n\n this.state = {\n opened: open,\n selectedItem: selectedItem || null,\n };\n\n this.dropdownRef = createRef();\n this.dropdownListRef = createRef();\n this.dropdownButtonRef = createRef();\n this.onSelectItem = this.onSelectItem.bind(this);\n this.toggleDropdown = this.toggleDropdown.bind(this);\n this.handleClickOutside = this.handleClickOutside.bind(this);\n }\n\n componentDidMount() {\n document.addEventListener('mousedown', this.handleClickOutside);\n\n if (this.dropdownListRef.current) {\n this.getStyles();\n }\n }\n\n componentDidUpdate(prevProps) {\n const {\n open,\n } = this.props;\n const {\n opened,\n } = this.state;\n\n if (this.dropdownListRef.current) {\n this.getStyles();\n }\n\n if (\n !prevProps.open\n && open === true\n && !opened\n ) {\n this.toggleDropdown();\n }\n\n if (\n prevProps.open\n && open === false\n && opened\n ) {\n this.closeDropdown();\n }\n }\n\n componentWillUnmount() {\n document.removeEventListener('mousedown', this.handleClickOutside);\n }\n\n handleClickOutside(event) {\n if (\n this.dropdownListRef.current && !this.dropdownListRef.current.contains(event.target)\n && this.dropdownRef.current && !this.dropdownRef.current.contains(event.target)\n ) {\n this.closeDropdown();\n }\n }\n\n onSelectItem(itemId, itemProps) {\n const { closeOnSelect, onSelect } = this.props;\n const changes = {\n selectedItem: itemId,\n selectedItemProps: itemProps,\n };\n\n if (closeOnSelect) {\n changes.opened = false;\n }\n\n this.setState(changes);\n\n if (onSelect && typeof onSelect === 'function') {\n onSelect(itemId);\n }\n }\n\n getStyles() {\n const {\n display,\n position,\n offset,\n } = this.props;\n\n const dropdownEl = this.dropdownListRef.current;\n\n if (offset) {\n dropdownEl.style.top = `${offset.top}`;\n dropdownEl.style.left = `${offset.left}`;\n return;\n }\n\n const scrollTop = Math.max(\n document.documentElement.scrollTop,\n document.body.scrollTop,\n window.scrollY,\n );\n const el = this.dropdownRef.current;\n const elHeight = el.clientHeight;\n const dropdownHeight = dropdownEl ? dropdownEl.clientHeight : 0;\n const dropdownWidth = dropdownEl ? dropdownEl.clientWidth : 0;\n const offsetPosition = el.getBoundingClientRect();\n const { left, top } = offsetPosition;\n let customTop = 0;\n let customLeft = left;\n\n // calculate top position, depending on the element position on the page\n if (Dropdown.isElemInBottomView(el, dropdownHeight)) {\n customTop = top + scrollTop + elHeight;\n } else {\n customTop = top + scrollTop - dropdownHeight - 5;\n }\n\n if (!Dropdown.isElemInRightView(el, dropdownWidth)) {\n customLeft = left + el.clientWidth - dropdownWidth;\n }\n\n if (position !== 'relative') {\n dropdownEl.style.top = `${customTop}px`;\n if (display !== 'block') {\n dropdownEl.style.left = `${customLeft}px`;\n }\n }\n if (display !== 'block') {\n dropdownEl.style.minWidth = `${this.dropdownButtonRef.current.clientWidth}px`;\n }\n }\n\n getWrapperCssClasses() {\n const {\n btnGroup,\n btnGroupSize,\n className,\n btnTheme,\n wrapperClassName = '',\n } = this.props;\n let cssClasses = [wrapperClassName, 'tyk-dropdown'];\n\n cssClasses.push(`theme-${btnTheme || 'default'}`);\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n if (btnGroup) {\n cssClasses.push('tyk-button-group');\n cssClasses.push(btnGroupSize ? `tyk-button-group--${btnGroupSize}` : 'tyk-button-group--md');\n }\n\n return cssClasses.join(' ');\n }\n\n getCssClasses() {\n const {\n opened,\n } = this.state;\n const {\n hasCustomContent,\n display,\n listclassnames,\n position,\n maxHeight,\n } = this.props;\n let cssClasses = ['tyk-dropdown-menu', 'tyk-dropdown'];\n\n if (maxHeight) {\n cssClasses.push('tyk-dropdown--scrollable');\n }\n\n if (opened) {\n cssClasses.push('opened');\n }\n\n if (listclassnames) {\n cssClasses = cssClasses.concat(listclassnames.split(' '));\n }\n\n if (display) {\n cssClasses.push('tyk-dropdown--block');\n }\n\n if (hasCustomContent) {\n cssClasses.push('tyk-dropdown--custom');\n }\n\n if (position === 'relative') {\n cssClasses.push('tyk-dropdown--relative');\n }\n\n return cssClasses.join(' ');\n }\n\n getBtnTitle() {\n const { btnTitle, stopButtonTextChange } = this.props;\n const { selectedItemProps } = this.state;\n\n if (!stopButtonTextChange && selectedItemProps?.title) {\n return selectedItemProps.title;\n }\n\n return btnTitle;\n }\n\n closeDropdown() {\n const { onClose } = this.props;\n\n this.setState({\n opened: false,\n }, () => {\n if (onClose) {\n onClose();\n }\n });\n }\n\n toggleDropdown() {\n const {\n opened,\n } = this.state;\n if (opened) {\n this.closeDropdown();\n\n return;\n }\n\n this.setState({\n opened: true,\n });\n }\n\n render() {\n const {\n appendTo,\n btnClassName,\n btnSize,\n customBtnTitle,\n hasCustomContent,\n btnTheme,\n children,\n label,\n showDropdownIcon,\n showTriggerButton,\n showCheckmark,\n disabled = false,\n maxHeight,\n } = this.props;\n const {\n selectedItem,\n opened,\n } = this.state;\n const DropdownWrapperTag = hasCustomContent ? 'div' : 'ul';\n return (\n \n {\n label\n ? (\n \n )\n : null\n }\n {\n showTriggerButton\n ? (\n \n { customBtnTitle || this.getBtnTitle() }\n \n )\n : null\n }\n {\n opened\n ? ReactDOM.createPortal(\n \n {\n opened\n ? (\n \n {\n (typeof children === 'function')\n ? children({\n closeDropdown: this.closeDropdown.bind(this),\n })\n : children\n }\n \n )\n : null\n }\n ,\n document.querySelector(appendTo || 'body'),\n )\n : null\n }\n \n );\n }\n}\n\nDropdown.propTypes = {\n appendTo: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n PropTypes.func,\n ]),\n closeOnSelect: PropTypes.bool,\n btnClassName: PropTypes.string,\n btnSize: PropTypes.string,\n btnGroupSize: PropTypes.string,\n btnTheme: PropTypes.string,\n btnTitle: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n customBtnTitle: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n btnGroup: PropTypes.bool,\n className: PropTypes.string,\n display: PropTypes.string,\n disabled: PropTypes.bool,\n hasCustomContent: PropTypes.bool,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n listclassnames: PropTypes.string,\n onClose: PropTypes.func,\n onSelect: PropTypes.func,\n open: PropTypes.bool,\n offset: PropTypes.instanceOf(Object),\n position: PropTypes.string,\n selectedItem: PropTypes.string,\n showDropdownIcon: PropTypes.bool,\n stopButtonTextChange: PropTypes.bool,\n showTriggerButton: PropTypes.bool,\n showCheckmark: PropTypes.bool,\n maxHeight: PropTypes.string,\n wrapperClassName: PropTypes.string,\n};\n\nDropdown.defaultProps = {\n closeOnSelect: false,\n showDropdownIcon: true,\n showTriggerButton: true,\n showCheckmark: true,\n open: false,\n};\n\nDropdown.Item = DropdownItem;\n\nexport default Dropdown;\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '../../../components/Button';\nimport ButtonGroup from '../../../components/ButtonGroup';\n\nfunction DropdownTrigger({\n title,\n theme = 'primary',\n splitTrigger,\n toggle,\n onTriggerClick,\n value,\n}, ref) {\n return (\n !splitTrigger ? (\n \n {title}\n \n ) : (\n \n onTriggerClick(value) }}\n >\n {title}\n \n \n \n )\n );\n}\n\nDropdownTrigger.propTypes = {\n title: PropTypes.string,\n theme: PropTypes.string,\n splitTrigger: PropTypes.bool,\n toggle: PropTypes.func,\n dropdownRef: PropTypes.shape({\n current: PropTypes.instanceOf(Element),\n }).isRequired,\n onTriggerClick: PropTypes.func,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n};\n\nexport default forwardRef(DropdownTrigger);\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport FloatingContainer from '../../../components/FloatingContainer';\nimport List from '../../../components/List';\n\nfunction DropdownListWrapper({\n children,\n element,\n maxWidth,\n}, ref) {\n return (\n \n \n { children }\n \n \n );\n}\n\nDropdownListWrapper.propTypes = {\n element: PropTypes.shape({\n current: PropTypes.instanceOf(Element),\n }),\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n maxWidth: PropTypes.string,\n};\n\nexport default forwardRef(DropdownListWrapper);\n","import { createContext, useContext } from 'react';\n\nexport const DropdownContext = createContext();\n\nfunction useDropdowContext() {\n return useContext(DropdownContext);\n}\n\nexport default useDropdowContext;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport List from '../../../components/List';\nimport useDropdowContext from './useDrodpownContext';\n\nfunction DropdownItem({\n children,\n value,\n}) {\n const { onChange, value: dropdownValue } = useDropdowContext();\n return (\n \n onChange(value) }}\n >\n { children }\n \n \n );\n}\n\nDropdownItem.propTypes = {\n children: PropTypes.node,\n // eslint-disable-next-line\n value: PropTypes.any,\n};\n\nexport default DropdownItem;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport useDropdown from './useDropdown';\nimport DropdownTrigger from './DropdownTrigger';\nimport DropdownListWrapper from './DropdownListWrapper';\nimport DropdownItem from './DropdowItem';\nimport { DropdownContext } from './useDrodpownContext';\n\nfunction Dropdown2({\n children,\n title,\n theme,\n splitTrigger,\n onChange,\n value,\n setSelectedValueAsTitle,\n maxWidth,\n onTriggerClick,\n}) {\n const {\n isOpen,\n toggle,\n dropdownRef,\n dropdownListRef,\n } = useDropdown({\n splitTrigger,\n });\n\n const contextValue = useMemo(() => ({\n onChange,\n value,\n }), [onChange, value]);\n\n return (\n \n \n {isOpen && (\n \n { children }\n \n )}\n \n );\n}\n\nDropdown2.propTypes = {\n /** Title of the dropdown. It is being displayed in the Drodpown trigger */\n title: PropTypes.string,\n /** Theme of the dropdown trigger */\n theme: PropTypes.string,\n children: PropTypes.node,\n /** If true, the dropdown trigger will be split into two buttons.\n * one with the dropdown title and one for the arrow */\n splitTrigger: PropTypes.bool,\n /** Callback function called when a dropdown item is selected */\n onChange: PropTypes.func,\n /** Value of the selected dropdown item */\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n /** If true, the selected value will be displayed in the dropdown trigger */\n setSelectedValueAsTitle: PropTypes.bool,\n /** sets the maximum width of the dropdown list menu */\n maxWidth: PropTypes.string,\n /** this function is being called when splitTrigger is true,\n * and receives as parameter the current value of the dropdown */\n onTriggerClick: PropTypes.func,\n};\n\nDropdown2.Item = DropdownItem;\n\nexport default Dropdown2;\n","import {\n useState, useRef, useCallback, useEffect,\n} from 'react';\n\nconst useDropdown = ({\n splitTrigger,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const dropdownRef = useRef(null);\n const dropdownListRef = useRef(null);\n\n const toggle = () => setIsOpen(!isOpen);\n\n const handleOutsideClick = useCallback((e) => {\n const triggerElement = !splitTrigger\n ? dropdownRef.current\n : dropdownRef.current.querySelector('.dropdown__trigger');\n if (\n isOpen\n && !triggerElement.contains(e.target)\n && !dropdownListRef.current.contains(e.target)\n ) {\n setIsOpen(false);\n }\n }, [isOpen]);\n\n useEffect(() => {\n document.addEventListener('mousedown', handleOutsideClick);\n return () => {\n document.removeEventListener('mousedown', handleOutsideClick);\n };\n }, [handleOutsideClick]);\n\n return {\n isOpen,\n toggle,\n dropdownRef,\n dropdownListRef,\n };\n};\n\nexport default useDropdown;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-ace\");","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport ace from 'ace-builds/src-noconflict/ace';\nimport AceEditor from 'react-ace';\nimport 'ace-builds/src-noconflict/mode-javascript';\nimport 'ace-builds/src-noconflict/mode-golang';\nimport 'ace-builds/src-noconflict/mode-python';\nimport 'ace-builds/src-noconflict/mode-css';\nimport 'ace-builds/src-noconflict/mode-json';\nimport 'ace-builds/src-noconflict/mode-xml';\nimport 'ace-builds/src-noconflict/mode-jsx';\nimport 'ace-builds/src-noconflict/ext-searchbox';\nimport 'ace-builds/src-noconflict/ext-beautify';\nimport 'ace-builds/src-noconflict/theme-github';\nimport jsonWorker from 'ace-builds/src-noconflict/worker-json';\n\nace.config.setModuleUrl('ace/mode/json_worker', jsonWorker);\n\nfunction CodeEditor(props) {\n const {\n disabled,\n readOnly,\n disableValidation,\n id,\n error,\n label,\n labelwidth,\n note,\n onBlur,\n onChange,\n theme,\n value,\n setOptions,\n wrapperClassName,\n } = props;\n const classes = [\n 'tyk-form-group',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' ');\n\n const finalSetOptions = {\n ...setOptions,\n ...disableValidation && { useWorker: false },\n };\n\n const getCodeEditorError = useCallback(() => (\n error && error !== 'true' && error !== 'false'\n ? (\n

    \n {error}\n

    \n )\n : null\n ), [error]);\n\n const getLabelStyles = useCallback(() => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n }, [labelwidth]);\n\n const getNonLabelWidth = useCallback(() => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n }, [labelwidth]);\n\n const handleOnChange = useCallback((newValue) => {\n if (onChange) onChange(newValue);\n }, [onChange]);\n\n const handleOnBlur = useCallback(() => {\n if (onBlur) onBlur(value);\n }, [onBlur, value]);\n\n return (\n
    \n {\n label\n ? \n : null\n }\n
    \n {\n // eslint-disable-next-line\n editorInstance.container.style.resize = 'both';\n // mouseup = css resize end\n document.addEventListener('mouseup', () => (\n editorInstance.resize()\n ));\n }}\n setOptions={finalSetOptions}\n />\n {\n note\n ?

    { note }

    \n : null\n }\n { getCodeEditorError() }\n
    \n
    \n );\n}\n\nCodeEditor.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n disableValidation: PropTypes.bool,\n id: PropTypes.string,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n mode: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n theme: PropTypes.string,\n value: PropTypes.string,\n setOptions: PropTypes.instanceOf(Object),\n wrapperClassName: PropTypes.string,\n};\n\nexport default CodeEditor;\n","import React, { Component, createRef } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../../components/Icon';\nimport Button from '../../../components/Button';\n\nconst getStateSelectedValues = (multiple, tags, value) => {\n if (!value) {\n return (multiple || tags) ? [] : null;\n }\n\n return value;\n};\n\nclass Combobox extends Component {\n static closeList() {\n return {\n cursor: -1,\n opened: false,\n };\n }\n\n static openList() {\n return {\n opened: true,\n };\n }\n\n static filterByName(itemValue, inputValue) {\n return itemValue.name.toLowerCase().indexOf(inputValue) > -1;\n }\n\n constructor(props) {\n super(props);\n const {\n multiple,\n tags,\n value,\n } = props;\n\n this.state = {\n cursor: -1,\n opened: false,\n width: 50,\n initialValue: value,\n stateSelectedValues: getStateSelectedValues(multiple, tags, value),\n searchText: '',\n tags,\n };\n\n this.comboboxRef = createRef();\n this.valuesListRef = createRef();\n this.inputRef = createRef();\n this.textRef = createRef();\n\n this.focusInput = this.focusInput.bind(this);\n this.onKeyUp = this.onKeyUp.bind(this);\n Combobox.openList = Combobox.openList.bind(this);\n this.handleClickOutside = this.handleClickOutside.bind(this);\n this.handleItemsNavigation = this.handleItemsNavigation.bind(this);\n this.handleComboboxDropdownClick = this.handleComboboxDropdownClick.bind(this);\n this.handleListItemClick = this.handleListItemClick.bind(this);\n this.handlePillRemoveClick = this.handlePillRemoveClick.bind(this);\n this.manageSelectedTags = this.manageSelectedTags.bind(this);\n }\n\n componentDidMount() {\n const { tags } = this.props;\n\n if (tags) {\n this.setInputWidth();\n }\n\n this.bindEvents();\n }\n\n componentWillUnmount() {\n this.unBindEvents();\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n if (\n JSON.stringify(nextProps.value) !== JSON.stringify(prevState.initialValue)\n || nextProps.tags !== prevState.tags\n ) {\n return {\n initialValue: nextProps.value,\n stateSelectedValues: getStateSelectedValues(\n nextProps.multiple,\n nextProps.tags,\n nextProps.value,\n ),\n tags: nextProps.tags,\n };\n }\n\n return null;\n }\n\n handleItemsNavigation(e) {\n const { tags } = this.props;\n if (['ArrowDown', 'ArrowUp'].indexOf(e.key) === -1) {\n return;\n }\n\n const { cursor } = this.state;\n const filteredValues = this.filterValues();\n let cursorNext;\n\n e.preventDefault();\n\n if (e.key === 'ArrowDown') {\n if (cursor === -1 || cursor === filteredValues.length - 1) {\n cursorNext = 0;\n } else if (cursor < filteredValues.length - 1) {\n cursorNext = cursor + 1;\n }\n }\n\n if (e.key === 'ArrowUp') {\n if (cursor > 0) {\n cursorNext = cursor - 1;\n } else {\n cursorNext = filteredValues.length - 1;\n }\n }\n\n if (this.valuesListRef.current && cursorNext > 4) {\n const scrollTop = (cursorNext - 4) * 38;\n\n this.valuesListRef.current.scrollTop = (!tags) ? 60 + scrollTop : scrollTop;\n } else if (this.valuesListRef.current) {\n this.valuesListRef.current.scrollTop = 0;\n }\n\n this.setState((previousState) => ({\n ...previousState,\n opened: true,\n cursor: cursorNext,\n }));\n }\n\n handleListItemClick(index) {\n // eslint-disable-next-line react/destructuring-assignment\n const clickedValue = this.props.values[index];\n if (clickedValue.disabled) return;\n\n const { multiple, tags } = this.props;\n\n const methodName = (tags) ? 'manageSelectedTags' : 'manageSelectedValues';\n const tempState = { ...this.state, ...this[methodName](index) };\n\n this.setState((previousState) => {\n if (!multiple && !tags) {\n tempState.opened = false;\n }\n\n return { ...previousState, ...tempState };\n });\n }\n\n handlePillRemoveClick(index) {\n const { disabled } = this.props;\n\n if (disabled) {\n return;\n }\n\n const tempState = this.removeSelectedValue(index);\n\n this.setState((previousState) => ({ ...previousState, ...tempState }));\n }\n\n handleClickOutside(event) {\n if (\n this.valuesListRef.current && !this.valuesListRef.current.contains(event.target)\n && this.comboboxRef.current && !this.comboboxRef.current.contains(event.target)\n ) {\n this.setState((previousState) => ({ ...previousState, ...Combobox.closeList() }));\n }\n }\n\n handleComboboxDropdownClick() {\n const { disabled } = this.props;\n\n if (disabled) {\n return;\n }\n\n this.setState((previousState) => ({ ...previousState, ...Combobox.openList() }));\n }\n\n onKeyUp(e) {\n const { tags, allowCustomValues } = this.props;\n const { cursor, opened } = this.state;\n const filteredValues = this.filterValues();\n let tempState = this.getSearchText();\n\n if (tags && e.key !== 'Escape') {\n tempState = { ...tempState, ...this.setInputWidth() };\n }\n\n if (e.key === 'Enter') {\n const methodName = (tags) ? 'manageSelectedTags' : 'manageSelectedValues';\n tempState = { ...tempState, ...this[methodName](cursor) };\n }\n\n if (allowCustomValues && e.key !== ' ' && tags) {\n tempState = { ...tempState, ...this.manageSelectedTags() };\n }\n\n if (\n !opened\n && this.inputRef.current.value\n && filteredValues?.length\n && e.key !== 'Escape'\n ) {\n tempState = { ...tempState, ...Combobox.openList() };\n }\n\n if (e.key === 'Escape' && opened) {\n tempState = { ...tempState, ...Combobox.closeList() };\n }\n\n if (opened && filteredValues && !filteredValues.length) {\n tempState = { ...tempState, ...Combobox.closeList() };\n }\n\n this.setState((previousState) => ({ ...previousState, ...tempState }));\n }\n\n getLabelStyles() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = labelwidth;\n }\n\n return styles;\n }\n\n getNonLabelWidth() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styles;\n }\n\n setInputWidth() {\n return {\n width: 50 + this.textRef.current.offsetWidth,\n };\n }\n\n getSelectedIndex(value) {\n const { stateSelectedValues } = this.state;\n let position = -1;\n\n if (Array.isArray(stateSelectedValues)) {\n stateSelectedValues.forEach((item, index) => {\n if (item.id === value.id) {\n position = index;\n }\n });\n } else if (stateSelectedValues) {\n if (stateSelectedValues.id === value.id) {\n position = 0;\n }\n }\n\n return position;\n }\n\n getSearchText() {\n return {\n searchText: this.inputRef.current.value,\n };\n }\n\n getListItemCssClasses(value, index) {\n const cssClasses = [];\n const {\n cursor,\n } = this.state;\n\n if (cursor === index) {\n cssClasses.push('active');\n }\n\n if (value.disabled) {\n cssClasses.push('disabled');\n }\n\n return cssClasses.join(' ');\n }\n\n getComboboxListCssClass() {\n const { opened } = this.state;\n const { tags, theme } = this.props;\n const themes = theme ? theme.split(' ') : [];\n\n const cssClasses = ['tyk-combobox__list'];\n\n if (opened) {\n cssClasses.push('tyk-combobox__list--opened');\n }\n\n if (tags) {\n cssClasses.push('tyk-combobox__list--has-tags');\n }\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n return cssClasses.join(' ');\n }\n\n getCssClasses() {\n const {\n error, disabled, theme, labelwidth,\n } = this.props;\n const cssClasses = ['tyk-form-group', 'tyk-combobox'];\n const themes = theme ? theme.split(' ') : [];\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (disabled) {\n cssClasses.push('disabled');\n }\n\n return cssClasses.join(' ');\n }\n\n getInputError() {\n const { error } = this.props;\n\n return (error && error !== 'true' && error !== 'false')\n ? (\n \n { error }\n

    \n )\n : null;\n }\n\n getStyles() {\n const { scrollTop } = document.documentElement;\n const el = this.comboboxRef.current;\n const elHeight = el.offsetHeight;\n const elWidth = el.offsetWidth;\n\n const offset = el.getBoundingClientRect();\n const { left } = offset;\n let top = 0;\n\n top = offset.top + scrollTop + elHeight;\n\n return {\n top: `${top - 1}px`,\n left: `${left}px`,\n width: `${elWidth}px`,\n };\n }\n\n getComboboxDisplayData() {\n const { stateSelectedValues } = this.state;\n const { multiple, placeholder, values } = this.props;\n\n if (!stateSelectedValues) {\n return placeholder;\n }\n\n if (stateSelectedValues && Array.isArray(stateSelectedValues) && !stateSelectedValues.length) {\n return placeholder;\n }\n\n if (stateSelectedValues && !Array.isArray(stateSelectedValues) && !stateSelectedValues.id) {\n return placeholder;\n }\n\n if (Array.isArray(stateSelectedValues) && multiple) {\n return stateSelectedValues.reduce((prevValue, value, index) => prevValue + value.name + ((index !== stateSelectedValues.length - 1) ? ', ' : ''), '');\n }\n\n if (\n values?.length\n && !Array.isArray(stateSelectedValues) && !stateSelectedValues.name\n ) {\n return values.filter((value) => value.id === stateSelectedValues.id)[0].name;\n }\n\n return stateSelectedValues.name;\n }\n\n manageSelectedTags(index) {\n const { max, allowCustomValues } = this.props;\n const { stateSelectedValues } = this.state;\n const filteredValues = this.filterValues();\n const value = { id: this.inputRef.current.value, name: this.inputRef.current.value };\n\n if (allowCustomValues === false && index === -1) {\n return null;\n }\n\n const tempValue = filteredValues[index] || value;\n const selectedIndex = this.getSelectedIndex(tempValue);\n let selectedValues = {};\n\n this.inputRef.current.value = '';\n\n if (selectedIndex > -1 && this.isInInitialValues(tempValue)) {\n selectedValues = this.removeSelectedValue(selectedIndex);\n } else if (selectedIndex === -1) {\n if (max && stateSelectedValues.length >= max) {\n return selectedValues;\n }\n selectedValues = this.addSelectedValue(tempValue);\n }\n\n return selectedValues;\n }\n\n // eslint-disable-next-line react/no-unused-class-component-methods\n manageSelectedValues(index) {\n const { stateSelectedValues } = this.state;\n const { multiple, onChange, max } = this.props;\n const filteredValues = this.filterValues();\n const tempSelectedValues = filteredValues[index];\n let selectedValues;\n const selectedIndex = this.getSelectedIndex(tempSelectedValues);\n\n if (tempSelectedValues && multiple) {\n if (selectedIndex > -1) {\n selectedValues = this.removeSelectedValue(selectedIndex);\n } else {\n if (max && stateSelectedValues.length >= max) {\n return selectedValues;\n }\n selectedValues = this.addSelectedValue(filteredValues[index]);\n }\n } else {\n selectedValues = {\n stateSelectedValues: (selectedIndex === -1) ? tempSelectedValues : { id: null },\n };\n\n onChange?.((selectedIndex === -1) ? tempSelectedValues : null);\n }\n\n return selectedValues;\n }\n\n removeSelectedValue(index) {\n const { stateSelectedValues } = this.state;\n const { onChange } = this.props;\n const tempStateSelectedValues = JSON.parse(JSON.stringify(stateSelectedValues));\n\n tempStateSelectedValues.splice(index, 1);\n\n if (onChange && typeof onChange === 'function') {\n onChange(tempStateSelectedValues.length ? tempStateSelectedValues : null);\n }\n\n return {\n stateSelectedValues: tempStateSelectedValues,\n searchText: '',\n };\n }\n\n addSelectedValue(value) {\n const { stateSelectedValues } = this.state;\n const { onChange } = this.props;\n const tempStateSelectedValues = JSON.parse(JSON.stringify(stateSelectedValues));\n\n tempStateSelectedValues.push(value);\n\n if (onChange && typeof onChange === 'function') {\n onChange(tempStateSelectedValues.length ? tempStateSelectedValues : null);\n }\n\n return {\n stateSelectedValues: tempStateSelectedValues,\n searchText: '',\n };\n }\n\n isInInitialValues(value) {\n const { values } = this.props;\n let ok = false;\n\n values.forEach((item) => {\n if (value.id === item.id) {\n ok = true;\n }\n });\n\n return ok;\n }\n\n filterValues() {\n const { values, searchItem } = this.props;\n\n if (!this.inputRef.current) {\n return values;\n }\n\n const arr = values\n .filter(\n (value) => (searchItem\n ? searchItem(value, this.inputRef.current.value.toLowerCase())\n : Combobox.filterByName(value, this.inputRef.current.value.toLowerCase())),\n );\n\n return arr;\n }\n\n bindEvents() {\n document.addEventListener('mousedown', this.handleClickOutside);\n }\n\n unBindEvents() {\n document.removeEventListener('mousedown', this.handleClickOutside);\n }\n\n // eslint-disable-next-line react/no-unused-class-component-methods\n reset() {\n const { multiple, tags, value } = this.props;\n\n this.setState({\n stateSelectedValues: getStateSelectedValues(multiple, tags, value),\n });\n }\n\n focusInput() {\n if (this.inputRef.current) {\n this.inputRef.current.focus();\n }\n }\n\n renderInput(filteredValues) {\n const {\n disabled,\n tags,\n max,\n placeholder,\n } = this.props;\n const {\n width, searchText, stateSelectedValues,\n } = this.state;\n\n return (\n {}}\n ref={this.comboboxRef}\n >\n {\n tags\n ? (\n <>\n {\n (stateSelectedValues || []).map((value, index) => (\n
  • \n \n \n \n { value.name }\n
  • \n ))\n }\n \n {(max === undefined || stateSelectedValues?.length < max) && (\n <>\n {\n if (e.key === 'Enter') {\n e.preventDefault();\n }\n this.handleItemsNavigation(e);\n }}\n onKeyUp={this.onKeyUp}\n placeholder={(!stateSelectedValues?.length) ? placeholder : ''}\n ref={this.inputRef}\n style={{\n width: (!stateSelectedValues?.length) ? '100%' : `${width}px`,\n }}\n />\n \n { searchText }\n \n \n )}\n {filteredValues.length > 0 && (\n \n )}\n \n \n )\n : (\n {}}\n >\n { this.getComboboxDisplayData() }\n \n \n )\n }\n \n );\n }\n\n renderDropdown(filteredValues) {\n const { tags } = this.props;\n const { opened } = this.state;\n return (\n \n {\n !tags\n ? (\n
  • \n \n
  • \n )\n : null\n }\n {\n filteredValues\n .map((value, index) => (\n {}}\n key={value.id}\n >\n {\n (this.getSelectedIndex(value) > -1)\n ? \n : null\n }\n \n {' '}\n { value.name }\n \n \n ))\n }\n \n );\n }\n\n render() {\n const {\n CustomListComponent,\n id,\n label,\n note,\n } = this.props;\n const { opened } = this.state;\n\n const filteredValues = this.filterValues();\n\n return (\n <>\n
    \n {\n label\n ? \n : null\n }\n \n {this.renderInput(filteredValues)}\n {\n note\n ?

    { note }

    \n : null\n }\n { this.getInputError() }\n
    \n \n {\n // eslint-disable-next-line no-nested-ternary\n !CustomListComponent\n ? opened && filteredValues.length\n ? ReactDOM.createPortal(\n this.renderDropdown(filteredValues),\n document.querySelector('body'),\n )\n : null\n : (\n \n )\n }\n \n );\n }\n}\n\nCombobox.propTypes = {\n allowCustomValues: PropTypes.bool,\n CustomListComponent: PropTypes.elementType,\n searchItem: PropTypes.func,\n disabled: PropTypes.bool,\n error: PropTypes.string,\n id: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n multiple: PropTypes.bool,\n max: PropTypes.number,\n note: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n tags: PropTypes.bool,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.instanceOf(Object),\n PropTypes.instanceOf(Array),\n ]),\n values: PropTypes.instanceOf(Array),\n};\n\nCombobox.defaultProps = {\n allowCustomValues: true,\n};\n\nexport default Combobox;\n","import React, { useState, useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Icon from '../../../../components/Icon';\nimport Pill from '../../../../components/Pill';\n\nfunction Value(props) {\n const {\n value,\n max,\n tags,\n tagSeparators,\n addTagOnBlur,\n placeholder,\n disabled,\n renderValue,\n valueOverflow,\n focus,\n onMessage: sendMessage,\n readOnly,\n } = props;\n const INPUT_MIN_WIDTH = 60;\n const inputRef = useRef(null);\n const dummyElementRef = useRef(null);\n const [inputValue, setInputValue] = useState('');\n const [inputWidth, setInputWidth] = useState(`${INPUT_MIN_WIDTH + 10}px`);\n\n function entryFieldOnChange(val) {\n if (tagSeparators.some((ts) => val.slice(-1) === ts)) return;\n const dummy = dummyElementRef.current;\n dummy.innerHTML = val;\n setInputWidth(`${Math.max(dummy.clientWidth, INPUT_MIN_WIDTH) + 10}px`);\n setInputValue(val);\n sendMessage('tag.input.change', val);\n }\n\n function entryFieldOnKeyDown(key, val) {\n if (!tags) return;\n if (val === '' && key === 'Backspace' && value.length) {\n sendMessage('tag.remove', value[value.length - 1].id);\n return;\n }\n if (key === 'Enter') {\n sendMessage('tag.input.enter', val);\n entryFieldOnChange('');\n return;\n }\n if (key === 'ArrowUp') {\n sendMessage('tag.input.arrowUp');\n return;\n }\n if (key === 'ArrowDown') {\n sendMessage('tag.input.arrowDown');\n return;\n }\n if (key === 'Escape') {\n sendMessage('tag.input.escape');\n return;\n }\n if (tagSeparators.includes(key)) {\n sendMessage('tag.add', val);\n entryFieldOnChange('');\n }\n }\n\n function triggerAction() {\n sendMessage('text-value.click');\n }\n\n function textValue(val, isPlaceholder = false) {\n if (readOnly) return val || '-';\n\n const classes = [\n 'tyk-combobox2__text-value',\n `overflow-${valueOverflow}`,\n isPlaceholder && 'is-placeholder',\n ].filter(Boolean).join(' ');\n return (\n \n {val}\n \n );\n }\n\n function renderCustomValue(v) {\n const config = {\n tags,\n tagSeparators,\n placeholder,\n disabled,\n renderValue,\n sendMessage,\n };\n return renderValue(v, config);\n }\n\n function renderTag(v) {\n if (renderValue) return renderCustomValue(v);\n\n return (\n \n {\n e.stopPropagation();\n sendMessage('tag.remove', v.id);\n }}\n aria-label=\"remove\"\n >\n \n \n { v.name }\n \n );\n }\n\n function getTags() {\n return (\n <>\n {value.map(renderTag)}\n {value.length < max && (\n <>\n entryFieldOnChange(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Enter') e.preventDefault();\n entryFieldOnKeyDown(e.key, e.target.value);\n }}\n onFocus={() => sendMessage('tag.input.focus')}\n onBlur={(e) => {\n sendMessage('tag.input.blur', e.target.value);\n if (addTagOnBlur) entryFieldOnChange('');\n }}\n />\n \n \n )}\n \n );\n }\n\n useEffect(() => {\n if (focus && inputRef.current) inputRef.current.focus();\n }, [focus]);\n\n if (readOnly) {\n return
    {textValue(value.map((v) => v.name).join(', '))}
    ;\n }\n\n if (tags) return getTags();\n if (renderValue) {\n return value.length === 0 ? textValue(placeholder, true) : value.map(renderCustomValue);\n }\n return value.length === 0\n ? textValue(placeholder, true)\n : textValue(value.map((v) => v.name).join(', '));\n}\n\nValue.propTypes = {\n value: PropTypes.instanceOf(Array),\n max: PropTypes.number,\n tags: PropTypes.instanceOf(Array),\n tagSeparators: PropTypes.instanceOf(Array),\n addTagOnBlur: PropTypes.bool,\n placeholder: PropTypes.string,\n disabled: PropTypes.bool,\n renderValue: PropTypes.func,\n valueOverflow: PropTypes.string,\n focus: PropTypes.bool,\n onMessage: PropTypes.func,\n readOnly: PropTypes.bool,\n};\n\nexport default Value;\n","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Icon from '../../../../components/Icon';\n\nfunction List(props) {\n const {\n listRef,\n tags,\n values,\n searchValue,\n activeItem,\n onMessage: sendMessage,\n renderListItem,\n selectAll,\n showSearch,\n } = props;\n\n useEffect(() => {\n if (!listRef.current) return;\n const activeElement = listRef.current.querySelector('.active');\n if (activeElement) activeElement.scrollIntoView({ block: 'end' });\n }, [activeItem]);\n\n function renderItem(item) {\n if (renderListItem) {\n return renderListItem(item, {\n tags, searchValue, sendMessage, activeItem,\n });\n }\n\n return (\n !item.disabled && sendMessage('value.select', { item })}\n onKeyDown={() => {}}\n >\n {item.selected && }\n {item.name}\n \n );\n }\n\n function renderSelectAllOption() {\n const isAllSelected = values.every((v) => v.selected);\n const isNoneSelected = values.every((v) => !v.selected);\n const label = selectAll?.label ?? 'Select All';\n const mode = selectAll?.mode ?? 'select';\n const show = selectAll?.show ?? 'always';\n const render = selectAll?.render;\n\n const shouldRenderOption = show === 'always' || (mode === 'select' ? !isAllSelected : !isNoneSelected);\n if (!shouldRenderOption) return null;\n\n if (render) {\n return render({\n label,\n mode,\n show,\n isAllSelected,\n isNoneSelected,\n }, sendMessage);\n }\n return (\n sendMessage('value.select-all', mode === 'select' ? !isAllSelected : isNoneSelected)}\n onKeyDown={() => {}}\n >\n {(mode === 'select' ? isAllSelected : isNoneSelected) && }\n {label}\n \n );\n }\n\n return (\n <>\n {!tags && showSearch && (\n
    \n sendMessage('search.change', e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Escape') sendMessage('search.escape');\n if (e.key === 'ArrowUp') sendMessage('search.arrowUp');\n if (e.key === 'ArrowDown') sendMessage('search.arrowDown');\n if (e.key === 'Enter') sendMessage('search.enter');\n }}\n />\n
    \n )}\n {values.length > 0 && (\n
      \n {Boolean(selectAll) && (\n renderSelectAllOption()\n )}\n {values.map(renderItem)}\n
    \n )}\n \n );\n}\n\nList.propTypes = {\n listRef: PropTypes.instanceOf(Object),\n tags: PropTypes.bool,\n values: PropTypes.instanceOf(Array),\n searchValue: PropTypes.string,\n activeItem: PropTypes.instanceOf(Object),\n onMessage: PropTypes.func,\n renderListItem: PropTypes.func,\n selectAll: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n mode: PropTypes.oneOf(['select', 'unselect']),\n show: PropTypes.oneOf(['always', 'notSameState']),\n render: PropTypes.func,\n }),\n ]),\n showSearch: PropTypes.bool,\n};\n\nexport default List;\n","import React, {\n useCallback, useEffect, useMemo, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../../components/Icon';\nimport FloatingContainer from '../../../components/FloatingContainer';\n\nimport Value from './js/Value';\nimport List from './js/List';\n\n/**\n * Dropdown-like component that can display selected values as regular text,\n * tags, or in a custom way.\n * You can select values from a list or type in new ones.\n */\nfunction Combobox2({\n value: propValue,\n values: propValues = [],\n valueOverflow = 'single',\n label = '',\n labelwidth,\n tags = false,\n tagSeparators = [' ', 'Enter'],\n addTagOnBlur = false,\n max: maxProp,\n multiple = false,\n placeholder = '',\n theme,\n note = '',\n error = '',\n disabled = false,\n readOnly = false,\n allowCustomValues = true,\n searchItem: matchItemFn,\n renderValue,\n renderListItem,\n renderList: renderListProp,\n CustomListComponent,\n onBeforeChange = () => true,\n onChange = () => {},\n floatingContainerConfig,\n expandMode,\n infiniteScrollerConfig,\n displayDropdownTrigger = true,\n selectAll,\n closeOnSelect,\n showSearch = false,\n required = false,\n validateOnChange = () => {},\n wrapperClassName = '',\n ...restProps\n}) {\n const max = useMemo(\n () => (multiple ? Infinity : maxProp || (tags ? Infinity : 1)),\n [multiple, maxProp, tags],\n );\n const renderList = CustomListComponent\n ? (values, { sendMessage }) => (\n sendMessage('value.select', { item: values[index] })}\n />\n )\n : renderListProp;\n\n const rootRef = useRef(null);\n const comboboxControlRef = useRef(null);\n const dropdownRef = useRef(null);\n const listRef = useRef(null);\n\n const [value, setValue] = useState(getValueFromProp(propValue, propValues));\n const [values, setValues] = useState(propValues.map((v) => normalizeValue(v)));\n const [searchValue, setSearchValue] = useState('');\n const [activeItem, setActiveItem] = useState(null);\n const [isOpened, setIsOpened] = useState(false);\n const [valuesExpanded, setValuesExpanded] = useState(false);\n const [localValidationError, setLocalValidationError] = useState('');\n\n function getThemeClasses() {\n const themes = theme ? theme.split(' ') : [];\n return themes.map((iTheme) => `tyk-form-group--${iTheme}`);\n }\n\n function getCssClasses() {\n return [\n wrapperClassName,\n 'tyk-form-group',\n 'tyk-combobox2',\n ...getThemeClasses(),\n (error || localValidationError) && 'has-error',\n labelwidth && 'tyk-form-group--label-has-width',\n disabled && 'disabled',\n expandMode && 'is-expand-mode',\n ].filter(Boolean).join(' ');\n }\n\n function getFilteredValues() {\n const defaultFn = (v, s) => v?.name?.toLowerCase()?.includes(s);\n const fn = matchItemFn || defaultFn;\n const filteredValues = values.filter((v) => fn(v, searchValue.toLowerCase()));\n return filteredValues;\n }\n\n function openDropdown() {\n setIsOpened(true);\n }\n\n function closeDropdown() {\n setIsOpened(false);\n if (!tags) updateSearchValue('');\n setActiveItem(null);\n }\n\n function updateSearchValue(newSearchValue) {\n setSearchValue(newSearchValue);\n if (activeItem && getFilteredValues().every((fv) => fv.id !== activeItem.id)) {\n setActiveItem(null);\n }\n if (newSearchValue && !isOpened) openDropdown();\n }\n\n function isValidValue(newValues, lastValue) {\n const localError = validateOnChange(newValues, lastValue);\n setLocalValidationError(localError);\n return localError === undefined;\n }\n\n function updateValue(newValues) {\n setValue(newValues);\n onChange(max === 1 && !tags ? (newValues[0] || null) : newValues);\n }\n\n function addTag(val) {\n if (!val) return;\n if (value.length >= max) return;\n if (value.some(({ name }) => name === val)) return;\n\n const listValueIndex = values.findIndex((lv) => lv.name === val);\n let newValue;\n let finalValue = [...value];\n let selectedValues;\n\n if (listValueIndex === -1) {\n if (allowCustomValues) {\n newValue = { id: val, name: val };\n finalValue = [...value, newValue];\n }\n } else {\n selectedValues = [\n ...values.slice(0, listValueIndex),\n { ...values[listValueIndex], selected: true },\n ...values.slice(listValueIndex + 1),\n ];\n newValue = values[listValueIndex];\n finalValue = [...value, values[listValueIndex]];\n }\n\n if (isValidValue(finalValue, newValue) && onBeforeChange(value, finalValue)) {\n if (selectedValues) {\n setValues(selectedValues);\n }\n updateValue(finalValue);\n }\n }\n\n function removeTag(id) {\n if (required && max === 1) return;\n\n const listValueIndex = values.findIndex((lv) => lv.id === id);\n const newValue = value.filter((v) => v.id !== id);\n\n if (!onBeforeChange(value, newValue)) return;\n\n if (listValueIndex !== -1) {\n setValues([\n ...values.slice(0, listValueIndex),\n { ...values[listValueIndex], selected: false },\n ...values.slice(listValueIndex + 1),\n ]);\n }\n updateValue(newValue);\n }\n\n function selectValue({ id }) {\n const val = values.find((v) => v.id === id);\n const valIndex = values.findIndex((v) => v.id === id);\n let finalValue = value;\n let selectedValues = values;\n\n if (val.selected) {\n if (!required || max !== 1) {\n finalValue = value.filter((v) => v.id !== val.id);\n selectedValues = values.with(valIndex, { ...val, selected: false });\n }\n } else if (value.length < max) {\n finalValue = [...value, val];\n selectedValues = values.with(valIndex, { ...val, selected: true });\n } else if (max === 1) {\n finalValue = [val];\n selectedValues = values.map((v) => ({ ...v, selected: v.id === val.id }));\n }\n\n if (isValidValue(finalValue, val) && onBeforeChange(value, finalValue)) {\n updateValue(finalValue);\n setValues(selectedValues);\n }\n\n if (max === 1 || closeOnSelect) {\n closeDropdown();\n }\n }\n\n function selectAllValues(selected) {\n if (values.length > max) return;\n const newValue = selected ? [...values] : [];\n\n if (!onBeforeChange(value, newValue)) return;\n\n updateValue(newValue);\n setValues(values.map((v) => ({ ...v, selected })));\n if (closeOnSelect) closeDropdown();\n }\n\n function moveUpActiveItem() {\n const visibleItems = getFilteredValues().filter((v) => !v.disabled);\n if (visibleItems.length === 0) return;\n if (activeItem === null || visibleItems.length === 1) {\n setActiveItem(visibleItems[visibleItems.length - 1]);\n return;\n }\n const activeIndex = visibleItems.findIndex((v) => v.id === activeItem.id);\n setActiveItem(visibleItems[activeIndex > 0 ? activeIndex - 1 : visibleItems.length - 1]);\n }\n\n function moveDownActiveItem() {\n const visibleItems = getFilteredValues().filter((v) => !v.disabled);\n if (visibleItems.length === 0) return;\n if (activeItem === null || visibleItems.length === 1) {\n setActiveItem(visibleItems[0]);\n return;\n }\n const activeIndex = visibleItems.findIndex((v) => v.id === activeItem.id);\n setActiveItem(visibleItems[activeIndex < visibleItems.length - 1 ? activeIndex + 1 : 0]);\n }\n\n function executeTriggerAction() {\n if (expandMode) {\n setValuesExpanded(!valuesExpanded);\n } else {\n openDropdown();\n }\n }\n\n function handleDocumentClick(e) {\n const isClickInside = rootRef.current?.contains(e.target)\n || dropdownRef.current?.contains(e.target);\n if (!isClickInside) {\n closeDropdown();\n }\n }\n\n function onClickCapture(e) {\n if (!disabled) return;\n if (!expandMode) {\n e.stopPropagation();\n return;\n }\n\n const triggerElement = rootRef.current.querySelector('.tyk-combobox2__values-container-trigger');\n if (!triggerElement) return;\n\n const isClickOnTrigger = triggerElement === e.target || triggerElement.contains(e.target);\n if (!isClickOnTrigger) e.stopPropagation();\n }\n\n function onTagMessage(message, data) {\n if (message === 'add') {\n addTag(data);\n updateSearchValue('');\n }\n\n if (message === 'remove') removeTag(data);\n\n if (message === 'input.change') updateSearchValue(data);\n\n if (message === 'input.enter') {\n if (activeItem) {\n selectValue(activeItem);\n } else if (tagSeparators.includes('Enter')) {\n addTag(data);\n updateSearchValue('');\n }\n }\n\n if (message === 'input.arrowUp') {\n openDropdown();\n moveUpActiveItem();\n }\n\n if (message === 'input.arrowDown') {\n openDropdown();\n moveDownActiveItem();\n }\n\n if (message === 'input.escape') closeDropdown();\n\n if (message === 'input.blur' && addTagOnBlur) {\n addTag(data);\n updateSearchValue('');\n }\n\n if (message === 'input.focus') {\n openDropdown();\n }\n }\n\n const onMessage = useCallback((message, data) => {\n if (message.startsWith('tag.')) onTagMessage(message.slice(4), data);\n\n if (message === 'value.select') selectValue(data.item);\n\n if (message === 'value.select-all') selectAllValues(data);\n\n if (message === 'text-value.click') openDropdown();\n\n if (message === 'search.change') updateSearchValue(data);\n\n if (message === 'search.escape') closeDropdown();\n\n if (message === 'search.arrowUp') moveUpActiveItem();\n\n if (message === 'search.arrowDown') moveDownActiveItem();\n\n if (message === 'search.enter') {\n if (activeItem) selectValue(activeItem);\n }\n }, [\n onTagMessage,\n selectValue,\n selectAllValues,\n openDropdown,\n updateSearchValue,\n closeDropdown,\n moveUpActiveItem,\n moveDownActiveItem,\n ]);\n\n const renderIcon = useCallback(\n () => (expandMode\n ? \n : \n ),\n [expandMode, valuesExpanded],\n );\n\n useEffect(() => {\n window.addEventListener('click', handleDocumentClick, true);\n return () => window.removeEventListener('click', handleDocumentClick, true);\n }, []);\n\n useEffect(() => {\n if (propValues.length) {\n const newValues = propValues.map((v) => ({\n ...normalizeValue(v),\n selected: value.some((sv) => sv.id === v.id),\n }));\n setValues(newValues);\n setValue((val) => val.map((v) => newValues.find((nv) => nv.id === v.id) || v));\n } else if (values.length) {\n setValues([]);\n }\n }, [propValues]);\n\n useEffect(() => {\n const newValue = getValueFromProp(propValue, values);\n setValue(newValue);\n setValues((vals) => vals.map((v) => ({\n ...normalizeValue(v),\n selected: newValue.some((nv) => nv.id === v.id),\n })));\n }, [propValue]);\n\n useEffect(() => {\n if (!expandMode) return () => {};\n\n const valuesElement = comboboxControlRef.current.querySelector('.tyk-combobox2__current-values');\n const updateScroll = () => {\n valuesElement.scrollTop = valuesElement.scrollHeight;\n };\n /* eslint-disable-next-line no-undef */\n const mobserver = new MutationObserver(updateScroll);\n const robserver = new ResizeObserver(updateScroll);\n\n mobserver.observe(valuesElement, { attributes: true, childList: true, subtree: true });\n robserver.observe(valuesElement);\n\n return () => {\n mobserver.disconnect();\n robserver.disconnect();\n };\n });\n\n const filteredValues = getFilteredValues();\n const currentValuesClasses = [\n 'tyk-combobox2__current-values',\n expandMode && 'expand-mode',\n `tyk-combobox2__current-values--${valuesExpanded ? 'expanded' : 'collapsed'}`,\n ].join(' ');\n\n return (\n \n {label && (\n \n )}\n {!readOnly && (\n \n
    \n \n \n
    \n {displayDropdownTrigger && (\n \n {renderIcon()}\n \n )}\n \n {isOpened && (!tags || filteredValues.length > 0) && (\n \n {renderList ? (\n renderList(filteredValues, {\n tags,\n searchValue,\n activeItem,\n listRef,\n sendMessage: onMessage,\n })\n ) : (\n \n )}\n \n )}\n {note && (\n

    {note}

    \n )}\n {((error && error !== 'true' && error !== 'false') || Boolean(localValidationError)) && (\n

    {error || localValidationError}

    \n )}\n \n )}\n {readOnly && (\n
    \n \n
    \n )}\n \n );\n}\n\nCombobox2.propTypes = {\n /** If `true` it allows entering values that are not in the list. */\n allowCustomValues: PropTypes.bool,\n /** Alias for `renderList`\n * used for backwards compatibility with the old Combobox component. */\n CustomListComponent: PropTypes.elementType,\n /** A function used for filtering elements displayed in the list when typing in. */\n searchItem: PropTypes.func,\n /** A custom component that will be used to display a value. */\n renderValue: PropTypes.func,\n /** A custom component that will be used to display an item in the dropdown list. */\n renderListItem: PropTypes.func,\n /** A custom component that will be used to display the entire content of the dropdown. */\n renderList: PropTypes.func,\n disabled: PropTypes.bool,\n /** hides the UI form element and displayes just the value as text */\n readOnly: PropTypes.bool,\n error: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n /** The maximum number of values that can be selected/added. */\n max: PropTypes.number,\n /** Shorthand for max=Infinity */\n multiple: PropTypes.bool,\n note: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n /**\n * Callback called before changing the value of the component.\n * The value change will succeed only if the callback's return value is truthy.\n * The callback is called with two arguments: 1) the previous value, 2) the next value */\n onBeforeChange: PropTypes.func,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n /** Enables the display of values as `Pill` components that can be\n * removed without opening the dropdown. */\n tags: PropTypes.bool,\n /** A list of characters that will trigger the creation of a tag when typed. */\n tagSeparators: PropTypes.arrayOf(PropTypes.string),\n /** If set to true a tag will be created whenever the component loses focus\n * and there is something typed in. */\n addTagOnBlur: PropTypes.bool,\n theme: PropTypes.string,\n /** The value of the component. It can be a string, an array,\n * or an object with an `id` property. */\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.instanceOf(Array),\n PropTypes.instanceOf(Object),\n ]),\n /** An array of selectable values. */\n values: PropTypes.instanceOf(Array),\n /** Config object passed to the internal floating container component. */\n floatingContainerConfig: PropTypes.instanceOf(Object),\n /** If set to `single` it will display the values on a single line\n * with an ellipsis at the end. */\n valueOverflow: PropTypes.oneOf(['single', 'multiple']),\n /**\n * If set to `true` whenever the user clicks on the dropdown trigger\n * the selected values container\n * will expand to show all selected values instead of opening the dropdown.\n */\n expandMode: PropTypes.bool,\n /** Config object passed to the internal infinite scroller component. */\n infiniteScrollerConfig: PropTypes.instanceOf(Object),\n /** Toggles the display of the dropdown trigger. */\n displayDropdownTrigger: PropTypes.bool,\n /**\n * If a boolean it will toggle the select all functionality from the dropdown.\n * It can also be an object with the shape `{ label, show, mode, render }`.\n * label - A string displayed as the select all option\n * show - It can be one of `['always', 'notSameState']`.\n * `always` means the option will always be displayed.\n * `notSameState` means it will be displayed only if the list items are\n * not all with the same state (depending on the `mode` value)\n * mode - It can be one of `['select', 'unselect']` and makes sense only\n * when the `show` property is `notSameState`\n * `select` means the select all option will only be displayed if not all\n * items are selected\n * `unselect` means the option will be displayed if no items are selected\n */\n selectAll: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n mode: PropTypes.oneOf(['select', 'unselect']),\n show: PropTypes.oneOf(['always', 'notSameState']),\n render: PropTypes.func,\n }),\n ]),\n /** It `true` the dropdown will close after selecting a value. */\n closeOnSelect: PropTypes.bool,\n /** Toggles the display of the search input from the dropdown. */\n showSearch: PropTypes.bool,\n /** If it is required and can only select one value once you have something\n * selected you will not be able to deselect */\n required: PropTypes.bool,\n /** Validates newly added value before adding it to the selected values.\n * Returns an error string in case of error otherwise it returns undefined\n */\n validateOnChange: PropTypes.func,\n wrapperClassName: PropTypes.string,\n};\n\nexport default Combobox2;\n\nfunction normalizeValue(value, values) {\n let v = value;\n if (typeof value === 'string') v = { id: value, name: value };\n else if (!value.hasOwnProperty('name')) v = { ...value, name: value.id }; // eslint-disable-line no-prototype-builtins\n if (!values) return v;\n const existingVal = values.find((ev) => ev.id === v.id);\n return existingVal ? { ...v, ...existingVal } : v;\n}\n\nfunction getValueFromProp(value, values) {\n if (!value) return [];\n if (Array.isArray(value)) return value.map((v) => normalizeValue(v, values));\n return [normalizeValue(value, values)];\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"flatpickr\");","import React, {\n useEffect, useState, useRef, useCallback,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport flatpickr from 'flatpickr';\n\nimport Icon from '../../../components/Icon';\nimport { usePrevious } from '../../../hooks';\n\nfunction DatePicker({\n children,\n disabled,\n readOnly = false,\n error,\n id,\n label,\n labelwidth,\n note,\n onClose,\n onChange,\n onOpen,\n theme,\n config = {},\n value,\n wrapperClassName = '',\n}) {\n const [pickerInstance, setPickerInstance] = useState(null);\n const dateRef = useRef(null);\n\n const prevValue = usePrevious(value);\n\n const hasValueChanged = useCallback((prevDate, currentDate) => {\n if (!prevDate) return true;\n if (!Array.isArray(currentDate)) return prevDate.getTime() !== currentDate.getTime();\n\n let diffDates = currentDate;\n\n if (prevDate && currentDate.length && prevDate.length) {\n diffDates = currentDate.filter((date, index) => date.getTime() !== prevDate[index].getTime());\n\n return diffDates.length > 0;\n }\n\n return currentDate.length > 0;\n }, []);\n\n const onDateChange = useCallback((dateValue) => {\n const finalValue = config.mode === 'range' ? dateValue : dateValue[0] || null;\n\n if (!onChange) return;\n\n if (config.mode === 'range') {\n if (finalValue.length === 2 && hasValueChanged(prevValue, finalValue)) {\n onChange(finalValue);\n }\n } else {\n onChange(finalValue);\n }\n }, [prevValue, onChange, hasValueChanged]);\n\n useEffect(() => {\n if (dateRef.current && !pickerInstance) {\n const instance = flatpickr(dateRef.current, {\n ...config, defaultDate: value, onChange: onDateChange, onClose, onOpen,\n });\n setPickerInstance(instance);\n }\n\n return () => {\n if (pickerInstance) {\n pickerInstance.destroy();\n }\n };\n }, [pickerInstance]);\n\n useEffect(() => {\n if (pickerInstance) {\n let tempValue = value;\n\n if (typeof value === 'string') {\n tempValue = new Date(value);\n } else if (Array.isArray(value)) {\n tempValue = value.map((date) => new Date(date));\n }\n\n if (hasValueChanged(prevValue, tempValue)) {\n pickerInstance.set('onChange', onDateChange);\n if (config.mode === 'range') {\n if (tempValue && tempValue.length === 2) {\n pickerInstance.setDate(tempValue, true);\n }\n } else {\n pickerInstance.setDate(tempValue, true);\n }\n }\n }\n }, [prevValue, value, pickerInstance]);\n\n const classes = [\n 'tyk-form-group',\n 'tyk-form-group--addon-right',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' ');\n\n const getLabelStyles = () => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n };\n\n const getNonLabelWidth = () => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n };\n\n const openCalendar = useCallback(() => {\n if (!pickerInstance) return;\n\n pickerInstance.open();\n }, [pickerInstance]);\n\n const getInputError = () => (\n (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null\n );\n\n const getInputField = () => {\n let inputStyle = {};\n let addonStyle = {};\n\n if (config?.inline) {\n inputStyle = {\n height: 0,\n padding: 0,\n width: 0,\n visibility: 'hidden',\n };\n\n addonStyle = {\n display: 'none',\n };\n }\n return (\n <>\n \n {}}\n tabIndex={0}\n style={addonStyle}\n aria-label=\"show calendar\"\n >\n \n \n \n );\n };\n\n return (\n <>\n {\n children?.length\n ? children({ openCalendar, ref: dateRef })\n : (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n
    \n {getInputField()}\n
    \n {\n note\n ?

    { note }

    \n : null\n }\n { getInputError() }\n
    \n )}\n \n )\n }\n
    \n {readOnly && !value && '-'}\n {readOnly && value && flatpickr.formatDate(value, config.dateFormat || 'd/m/Y')}\n
    \n \n );\n}\n\nDatePicker.propTypes = {\n config: PropTypes.instanceOf(Object),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n PropTypes.func,\n ]),\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.instanceOf(Array),\n ]),\n onClose: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.instanceOf(Array),\n ]),\n onOpen: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.instanceOf(Array),\n ]),\n theme: PropTypes.string,\n error: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.instanceOf(Array),\n PropTypes.instanceOf(Object),\n PropTypes.string,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default DatePicker;\n","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\");\n // eslint-disable-next-line no-console\n console.warn(new Error().stack);\n }\n return new Date(NaN);\n }\n}","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n var number = Number(dirtyNumber);\n if (isNaN(number)) {\n return number;\n }\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","var defaultOptions = {};\nexport function getDefaultOptions() {\n return defaultOptions;\n}\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function getUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, options);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n case 'aaa':\n return dayPeriodEnumValue;\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = getUTCISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = getUTCWeek(date, options);\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n return lightFormatters.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n if (timezoneOffset === 0) {\n return 'Z';\n }\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, dirtyDelimiter);\n}\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\nexport default formatters;","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = getUTCWeekYear(dirtyDate, options);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, options);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","var dateLongFormatter = function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n};\nvar timeLongFormatter = function timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n};\nvar dateTimeLongFormatter = function dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n var dateTimeFormat;\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n};\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n }\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n return result;\n};\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n if (!matchResult) {\n return null;\n }\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n return undefined;\n}\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import defaultLocale from \"../../locale/en-US/index.js\";\nexport default defaultLocale;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n case 2:\n return number + 'nd';\n case 3:\n return number + 'rd';\n }\n }\n return number + 'th';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","import isValid from \"../isValid/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n var originalDate = toDate(dirtyDate);\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n var firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n var formatter = formatters[firstCharacter];\n if (formatter) {\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n return substring;\n }).join('');\n return result;\n}\nfunction cleanEscapedString(input) {\n var matched = input.match(escapedStringRegExp);\n if (!matched) {\n return input;\n }\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","import addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import React, { Component, createRef } from 'react';\nimport isEqual from 'react-fast-compare';\nimport PropTypes from 'prop-types';\n\nimport Column from '../../../../layout/Column';\nimport Row from '../../../../layout/Row';\nimport Button from '../../../../components/Button';\n\nclass EditableListForm extends Component {\n static getMainFormValue(components) {\n const mainFormValue = new Array(components.length);\n\n components.forEach((component, index) => {\n mainFormValue[index] = component.props.value || undefined;\n });\n\n return mainFormValue;\n }\n\n constructor(props) {\n super(props);\n const {\n components,\n } = props;\n\n this.submitButtonRef = createRef();\n this.handleOnChange = this.handleOnChange.bind(this);\n this.submitForm = this.submitForm.bind(this);\n\n this.state = {\n components,\n errors: {},\n mainError: null,\n mainFormValue: EditableListForm.getMainFormValue(components),\n refs: [],\n };\n }\n\n componentDidMount() {\n const {\n addValueOnFieldChange,\n getMainFormButtonWidth,\n } = this.props;\n this.createRefs();\n\n if (getMainFormButtonWidth) {\n getMainFormButtonWidth(\n !addValueOnFieldChange\n ? this.submitButtonRef.current.clientWidth\n : 0,\n );\n }\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const state = {};\n const {\n components: propsComponents,\n } = nextProps;\n\n const {\n components: stateComponents,\n } = prevState;\n if (\n !isEqual(propsComponents, stateComponents)\n && !isEqual(\n EditableListForm.getMainFormValue(propsComponents),\n EditableListForm.getMainFormValue(stateComponents),\n )\n ) {\n state.mainFormValue = EditableListForm.getMainFormValue(propsComponents);\n state.components = propsComponents;\n }\n\n return state;\n }\n\n handleOnChange(component, index, value) {\n const { addValueOnFieldChange } = this.props;\n let tempState = this.state;\n\n tempState = { ...tempState, ...this.validateValue(value, component.props) };\n\n if (!tempState.errors[component.props.name]) {\n tempState.mainFormValue[index] = value;\n\n if (component.props.onChange) {\n component.props.onChange(value);\n }\n }\n\n this.setState((previousState) => ({ ...previousState, ...tempState }), () => {\n if (addValueOnFieldChange) {\n this.submitForm();\n }\n });\n }\n\n getFormCssClasses() {\n const { noLabels } = this.props;\n const cssClasses = ['tyk-editable-list__form'];\n\n if (noLabels) {\n cssClasses.push('no-labels');\n }\n\n return cssClasses.join(' ');\n }\n\n getButtonClassName() {\n const { buttonStyle, displayType } = this.props;\n const cssClasses = [];\n\n if (buttonStyle) {\n cssClasses.push(buttonStyle);\n }\n\n if (displayType) {\n cssClasses.push(displayType);\n }\n\n return cssClasses.join(' ');\n }\n\n getComponentsError(component) {\n const {\n error,\n errors,\n mainError,\n } = this.state;\n\n if (error || mainError) {\n errors[component.props.name] = 'true';\n } else if (!(error || mainError) && errors[component.props.name] === 'true') {\n delete errors[component.props.name];\n }\n\n return errors[component.props.name] ? errors[component.props.name].toString() : undefined;\n }\n\n createRefs() {\n const { components } = this.props;\n const refs = [];\n\n components.forEach(() => {\n refs.push(createRef());\n });\n\n this.setState({\n refs,\n });\n }\n\n validateValue(value, props) {\n const { mainError, errors } = this.state;\n const { error, errorPersist } = this.props;\n\n const validatorsNames = props.validate ? Object.keys(props.validate) : [];\n // if there is a general form error don't take field errors into consideration\n const tempState = {\n errors: (error || mainError) ? {} : { ...errors },\n };\n let ok = true;\n\n // if the error should stay after changing fields values don't take actions\n if (errorPersist) {\n return tempState;\n }\n\n // validate each field from the form\n for (const validatorName of validatorsNames) {\n const validator = props.validate[validatorName];\n if (validator(value)) {\n tempState.errors[props.name] = props.validationmessages[validatorName];\n ok = false;\n break;\n }\n }\n\n // if the field is ok delete its error\n if (ok) {\n delete tempState.errors[props.name];\n }\n\n tempState.mainError = null;\n\n return tempState;\n }\n\n hasMainFormErrors(errors) {\n const { components, errorPersist } = this.props;\n const { mainFormValue } = this.state;\n const tempState = {\n errors: { ...errors },\n };\n\n if (errorPersist && mainFormValue.indexOf(undefined) === -1) {\n return false;\n }\n\n if (Object.keys(tempState.errors).length > 0) {\n return true;\n }\n\n components.forEach((component, index) => {\n tempState.errors = {\n ...tempState.errors,\n ...this.validateValue(mainFormValue[index], component.props).errors,\n };\n });\n\n return Object.keys(tempState.errors).length > 0;\n }\n\n resetForm() {\n const { refs } = this.state;\n const {\n components,\n } = this.props;\n\n refs.forEach((ref) => {\n if (ref.current?.reset) {\n ref.current.reset();\n }\n });\n\n this.setState({\n errors: {},\n mainError: null,\n mainFormValue: EditableListForm.getMainFormValue(components),\n });\n }\n\n showMainError(error) {\n this.setState({\n mainError: error,\n });\n }\n\n submitForm() {\n const { errors, mainFormValue } = this.state;\n const {\n errorPersist, onSubmit, validate, validationmessage,\n } = this.props;\n\n if (errorPersist) {\n onSubmit(mainFormValue);\n this.resetForm();\n }\n\n if (\n Object.keys(errors).length === 0\n && (onSubmit && typeof onSubmit === 'function')\n ) {\n if (validate) {\n if (validate(mainFormValue)) {\n this.showMainError(validationmessage);\n } else {\n onSubmit(mainFormValue);\n this.resetForm();\n }\n } else {\n onSubmit(mainFormValue);\n this.resetForm();\n }\n }\n }\n\n render() {\n const {\n addValueOnFieldChange, components, buttonName, disabled, displayType, error,\n } = this.props;\n const {\n mainError, refs, errors,\n } = this.state;\n\n return (\n
    \n
    \n \n {\n components.map((component, index) => {\n const ComponentName = component.name;\n console.log('ComponentName', ComponentName);\n const {\n onChange, value, ...rest\n } = component.props;\n\n return (\n \n \n \n );\n })\n }\n \n {\n !addValueOnFieldChange\n ? (\n \n \n { buttonName || 'ADD' }\n \n \n )\n : null\n }\n
    \n {\n error || mainError\n ? (\n
    \n

    \n { error || mainError }\n

    \n
    \n )\n : null\n }\n
    \n );\n }\n}\n\nEditableListForm.propTypes = {\n addValueOnFieldChange: PropTypes.bool,\n noLabels: PropTypes.bool,\n buttonName: PropTypes.string,\n buttonStyle: PropTypes.string,\n components: PropTypes.instanceOf(Array),\n displayType: PropTypes.string,\n disabled: PropTypes.bool,\n getMainFormButtonWidth: PropTypes.func,\n error: PropTypes.string,\n errorPersist: PropTypes.bool,\n onSubmit: PropTypes.func,\n validate: PropTypes.func,\n validationmessage: PropTypes.string,\n};\n\nexport default EditableListForm;\n","import React, { Component, createRef } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport format from 'date-fns/format';\nimport isDate from 'date-fns/isDate';\n\nimport EditableListForm from './js/EditableListForm';\nimport Column from '../../../layout/Column';\nimport Icon from '../../../components/Icon';\nimport Row from '../../../layout/Row';\n\nclass EditableList extends Component {\n static getItemListValue(itemValue) {\n let tempValue = null;\n\n if (typeof itemValue === 'string') {\n tempValue = itemValue;\n }\n\n if (Object.prototype.toString.call(itemValue) === '[object Object]') {\n tempValue = itemValue.name;\n }\n\n if (isDate(itemValue)) {\n tempValue = format(itemValue, 'dd/MM/yyyy');\n }\n\n return tempValue;\n }\n\n static getListItemCssClass(displayType) {\n const cssClasses = [];\n\n if (displayType === 'inline') {\n cssClasses.push('tyk-editable-list-item--inline');\n }\n\n return cssClasses.join(' ');\n }\n\n constructor(props) {\n super(props);\n const {\n value,\n } = this.props;\n\n this.state = {\n initialValue: value || '',\n value: value || [],\n buttonWidth: 0,\n };\n\n this.startIndex = 1;\n\n this.handleFormSubmit = this.handleFormSubmit.bind(this);\n this.getMainFormButtonWidth = this.getMainFormButtonWidth.bind(this);\n this.dropdownListItemRef = createRef();\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const state = {};\n\n if (\n nextProps.value && JSON.stringify(nextProps.value)\n !== JSON.stringify(prevState.initialValue)\n ) {\n state.value = nextProps.value || [];\n state.initialValue = nextProps.value || '';\n }\n\n return state.value ? state : null;\n }\n\n handleFormSubmit(value) {\n const tempState = this.addValues(value);\n this.setState((previousState) => ({ ...previousState, ...tempState }), () => {\n this.triggerOnChange(tempState.value.length - 1, null, value);\n });\n }\n\n handleItemUpdate(index, value) {\n let prevValue;\n this.setState((previousState) => {\n const tempState = { ...previousState };\n prevValue = fromJS(tempState.value[index].value).toJS();\n tempState.value[index].value = value;\n tempState.value[index].editMode = false;\n\n return tempState;\n }, () => {\n this.triggerOnChange(index, prevValue, value);\n });\n }\n\n handleChildrenOnChange(index, value) {\n let prevValue;\n this.setState((previousState) => {\n const tempState = { ...previousState };\n prevValue = fromJS(tempState.value[index].children).toJS();\n tempState.value[index].children = value;\n\n return tempState;\n }, () => {\n this.triggerOnChange(index, prevValue, value);\n });\n }\n\n getListItemsCssClass(displayType) {\n const { config } = this.props;\n const cssClasses = ['tyk-editable-list-items'];\n\n cssClasses.push(config.displayType || 'table');\n\n if (displayType === 'inline') {\n cssClasses.push('tyk-editable-list-items--inline');\n }\n\n return cssClasses.join(' ');\n }\n\n getFormInputKey() {\n this.startIndex += 1;\n return this.startIndex;\n }\n\n // generate list item value's based on the display types\n // table, inline, list\n getListItemText(itemData) {\n const { config } = this.props;\n let value = null;\n\n switch (config.displayType) {\n case 'list':\n case 'inline': {\n const itemText = itemData.value.reduce((prevValue, itemValue, index) => {\n const tempValue = EditableList.getItemListValue(itemValue);\n let separator = ', ';\n\n if (index === itemData.value.length - 1) {\n separator = '';\n }\n\n return prevValue + tempValue + separator;\n }, '');\n\n value = itemText;\n\n break;\n }\n default:\n value = (\n \n {\n config.components.map((component, index) => (\n \n { EditableList.getItemListValue(itemData.value[index]) }\n \n ))\n }\n \n );\n\n break;\n }\n\n return value;\n }\n\n getMainFormButtonWidth(value) {\n this.setState({\n buttonWidth: value,\n });\n }\n\n setItemEditMode(index) {\n const newValues = this.closeListItems();\n\n this.setState((previousState) => {\n const tempState = { ...previousState };\n tempState.value = newValues;\n tempState.value[index].editMode = !tempState.value[index].editMode;\n\n return tempState;\n });\n }\n\n isInList(index, itemValue) {\n const { value } = this.state;\n let ok = false;\n\n value.forEach((item, itemIndex) => {\n if (JSON.stringify(item.value) === JSON.stringify(itemValue)) {\n if (index >= 0 && itemIndex === index) {\n ok = false;\n } else {\n ok = true;\n }\n }\n });\n\n return ok;\n }\n\n addValues(newValue) {\n const { value } = this.state;\n const { config } = this.props;\n const itemValue = {\n editMode: false,\n value: newValue,\n };\n const tempState = {\n value: value.slice(0),\n };\n\n if (config.children) {\n itemValue.children = [];\n }\n\n tempState.value.push(itemValue);\n\n return tempState;\n }\n\n removeListItem(index) {\n let removedItem;\n this.setState((previousState) => {\n const valueArr = previousState.value.slice(0);\n removedItem = valueArr.splice(index, 1);\n\n return {\n value: valueArr,\n };\n }, () => {\n this.triggerOnChange(index, removedItem, null);\n });\n }\n\n closeListItems() {\n const { value } = this.state;\n\n const newValues = value.map((itemValue) => {\n const tempItemValue = { ...itemValue };\n\n if (tempItemValue.editMode) {\n tempItemValue.editMode = false;\n return tempItemValue;\n }\n\n return tempItemValue;\n });\n\n return newValues;\n }\n\n triggerOnChange(index, prevValue, nextValue) {\n const { onChange } = this.props;\n const { value } = this.state;\n\n if (onChange && typeof onChange === 'function') {\n onChange(((value.length) ? value : null), index, prevValue, nextValue);\n }\n }\n\n genListItem(itemData, index) {\n const { config, disabled } = this.props;\n const { buttonWidth, value } = this.state;\n\n const clonedComponents = fromJS(config.components).toJS();\n\n itemData.value.forEach((itemValue, itemIndex) => {\n clonedComponents[itemIndex].props.value = itemValue;\n });\n\n return (\n \n \n {\n !itemData.editMode\n ? (\n <>\n { this.getListItemText(itemData, index) }\n \n \n \n \n \n \n \n \n \n )\n : (\n <>\n \n \n \n \n \n )\n }\n \n {\n config.children\n ? (\n \n )\n : null\n }\n \n );\n }\n\n genList() {\n const { config } = this.props;\n const { buttonWidth, value } = this.state;\n\n if (!value || value.length === 0) {\n return null;\n }\n\n return (\n <>\n {\n config.displayType === 'table' || !config.displayType\n ? (\n \n \n {\n config.components.map((component, index) => (\n \n { component.props.label }\n \n ))\n }\n \n \n )\n : null\n }\n
      \n {\n value.map((itemData, index) => this.genListItem(itemData, index))\n }\n
    \n \n );\n }\n\n render() {\n const {\n addValueOnFieldChange, config, error, disabled, label,\n } = this.props;\n const appendToElement = document.querySelector(config.appendTo) || document.querySelector('body');\n\n return (\n
    \n {\n label\n ? \n : null\n }\n \n {\n config.appendTo\n ? ReactDOM.createPortal(\n this.genList(),\n appendToElement,\n )\n : this.genList()\n }\n
    \n );\n }\n}\n\nEditableList.propTypes = {\n addValueOnFieldChange: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.string,\n config: PropTypes.instanceOf(Object),\n onChange: PropTypes.func,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n value: PropTypes.oneOfType([\n PropTypes.instanceOf(Array),\n PropTypes.instanceOf(Object),\n ]),\n};\n\nexport default EditableList;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '../../../components/Button';\n\nfunction Header({\n label, addButtonName, onAddRow, disabled, readOnly,\n}) {\n return (\n
    \n {\n label\n ? \n : null\n }\n {!disabled && !readOnly && (\n \n {addButtonName || 'Add'}\n \n )}\n
    \n );\n}\n\nHeader.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n onAddRow: PropTypes.func,\n addButtonName: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n};\n\nexport default Header;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ListHeader({\n fields,\n readOnly,\n}) {\n return (\n
  • \n {\n fields.map((field) => (\n \n {field?.props?.label}\n \n ))\n }\n
    Delete
    \n
  • \n );\n}\n\nListHeader.propTypes = {\n fields: PropTypes.instanceOf(Array),\n readOnly: PropTypes.bool,\n};\n\nexport default ListHeader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Button from '../../../components/Button';\n\nfunction FieldsList({\n fields,\n disabled,\n readOnly,\n errors,\n components,\n onChange,\n onDelete,\n value,\n rowIndex,\n}) {\n return (\n
  • \n {\n components.map((Component, index) => {\n const field = fields[index];\n const tempField = typeof field === 'function' ? field(rowIndex, index) : field;\n return (\n \n \n \n );\n })\n }\n
    \n \n
    \n
  • \n );\n}\n\nFieldsList.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n rowIndex: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n fields: PropTypes.instanceOf(Array),\n errors: PropTypes.instanceOf(Array),\n components: PropTypes.instanceOf(Array),\n value: PropTypes.instanceOf(Array),\n onChange: PropTypes.func,\n onDelete: PropTypes.func,\n};\n\nexport default FieldsList;\n","import React, { useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Header from './Header';\nimport ListHeader from './ListHeader';\nimport FieldsList from './FieldsList';\nimport validateValues from './validate-values';\nimport withValidation from './with-validation';\n\nlet id = 1;\n/* eslint-disable-next-line */\nconst getUID = prefix => `${prefix}-${id++}`;\n\n/**\n * Editable list is a component, that lists rows of form elements (can have n elements on a row),\n * and stores the values of all the rows in an Array list\n */\nfunction EditableList2({\n addButtonName,\n disabled,\n readOnly,\n fields,\n label,\n error,\n value = [],\n onChange = () => {},\n hideOnEmpty = true,\n wrapperClassName = '',\n}) {\n const [internalErrors, setInternalErrors] = useState(null);\n\n const updateRowValue = (rowIndex, fieldIndex, componentValue, isValid) => {\n const tempValueArr = !value ? [] : [...value];\n\n if (!value) {\n tempValueArr[rowIndex] = [...new Array(fields.length)];\n tempValueArr[rowIndex][fieldIndex] = componentValue;\n } else {\n const tempValue = [...tempValueArr[rowIndex]];\n tempValue[fieldIndex] = componentValue;\n tempValueArr[rowIndex] = tempValue;\n tempValueArr[rowIndex].id = value[rowIndex].id;\n }\n\n if (internalErrors?.[rowIndex]?.[fieldIndex] && isValid) {\n const tempErrors = [...internalErrors];\n const tempFieldError = [...tempErrors[rowIndex]];\n tempFieldError[fieldIndex] = null;\n tempErrors[rowIndex] = tempFieldError;\n setInternalErrors(tempErrors);\n }\n onChange(tempValueArr);\n };\n\n const hasErrors = (errors) => Boolean(errors?.flat()?.filter(Boolean).length);\n\n const Components = useMemo(\n () => fields.map((field) => {\n const tempField = typeof field === 'function' ? field() : field;\n\n return withValidation(tempField?.component || null);\n }),\n [],\n );\n\n const onAddRow = () => {\n const errors = validateValues(fields, value);\n\n if (hasErrors(errors)) {\n setInternalErrors(errors);\n return;\n }\n\n const newValue = [...new Array(fields.length)];\n newValue.id = getUID('row');\n\n onChange([\n ...value,\n newValue,\n ]);\n };\n\n const deleteRow = (index) => {\n if (!value) {\n return;\n }\n const tempValue = [...value];\n tempValue.splice(index, 1);\n onChange(tempValue);\n };\n\n return (\n
    \n \n {value?.length || !hideOnEmpty ? (\n
      \n {(value || [[]]).map((v, i) => (\n \n ))}\n \n
    \n ) : null}\n {error && error !== 'true' && error !== 'false' ? (\n

    {error}

    \n ) : null}\n
    \n );\n}\n\nEditableList2.propTypes = {\n /** Sets Editable list in edit mode.\n * If enabled all fields are disabled, the add button is hidden and delete button is disabled\n * */\n disabled: PropTypes.bool,\n /** Sets Editable list in read only mode.\n * If enabled all fields are displaying just the value,\n * the add button is hidden and delete button is disabled\n */\n readOnly: PropTypes.bool,\n /** Name of the Add button. By default has 'Add value' */\n addButtonName: PropTypes.string,\n /** Label of Editable list, is displayed above the list and inline with the Add button */\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n /** Array of form elements that you want the list to have\n * Each field is an object points to the Form element component that you want to use,\n * the props you want to apply on it,\n * and the size (as in width, it's like columns system, between 1 and 12)\n * Example:\n * ...\n * fields={[\n {\n component: Input2,\n styles: {\n width: \"200px\",\n },\n size: 4,\n props: {\n name: 'input',\n label: 'Claim name',\n theme: 'default rounded-corners',\n placeholder: 'Enter claim name',\n validate: formikRequired('This field is required')\n }\n },\n {\n component: Combobox2,\n size: 8,\n props: comboboxProps\n }\n ]}\n */\n fields: PropTypes.instanceOf(Array),\n /** onChange function is called everytime the value of editable list changes */\n onChange: PropTypes.func,\n /** value of editable list, wich is an Array (List of row values)\n * of Arrays (List of column values,\n * each column will have the value format depending on the component type)\n */\n value: PropTypes.oneOfType([\n PropTypes.instanceOf(Object),\n PropTypes.instanceOf(Array),\n ]),\n error: PropTypes.string,\n hideOnEmpty: PropTypes.bool,\n wrapperClassName: PropTypes.string,\n};\n\nexport default EditableList2;\n","import React, { useCallback, useState } from 'react';\n\n// eslint-disable-next-line react/function-component-definition\nconst withValidation = (Component) => ({\n onChange, // eslint-disable-line react/prop-types\n validate, // eslint-disable-line react/prop-types\n error, // eslint-disable-line react/prop-types\n ...rest\n}) => {\n const [internalError, setInternalError] = useState(null);\n const onFieldChange = useCallback((event) => {\n /* eslint-disable-next-line */\n const value = event?.target\n ? ['radio', 'checkbox'].includes(event.target.type)\n ? event.target.checked\n : event?.target.value\n : event;\n\n let isValid = true;\n if (validate && typeof validate === 'function') {\n const errorMsg = validate(value);\n isValid = !errorMsg;\n setInternalError(errorMsg);\n }\n\n onChange(value, isValid);\n }, [validate, onChange]);\n\n return ;\n};\n\nexport default withValidation;\n","const validateValues = (fields, rowValues) => (rowValues || [[undefined, undefined]])?.map(\n (colValue) => colValue?.map(\n (value, index) => fields[index].props.validate?.(value),\n ),\n);\n\nexport default validateValues;\n","import React, { useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../../components/Icon';\n\nfunction FileInput({\n error,\n theme,\n labelwidth,\n wrapperClassName = '',\n id,\n label,\n note,\n accept,\n value,\n onChange,\n ...rest\n}) {\n const fileInputRef = useRef();\n\n function handleOnChange(e) {\n onChange(e.target.files);\n }\n\n function getCssClasses() {\n const cssClasses = [wrapperClassName, 'tyk-form-group'];\n const themes = theme ? theme.split(' ') : [];\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n return cssClasses.join(' ');\n }\n\n function getLabelStyles() {\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = labelwidth;\n }\n\n return styles;\n }\n\n function getNonLabelWidth() {\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styles;\n }\n\n function getFileInputError() {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }\n\n function getFileInputComponent() {\n return (\n \n \n {\n fileInputRef.current && fileInputRef.current.files.length > 0\n ? (\n \n \n \n )\n : null\n }\n \n );\n }\n\n function clearValue() {\n fileInputRef.current.value = '';\n onChange('');\n }\n\n return (\n
    \n {\n label\n ? \n : null\n }\n
    \n { getFileInputComponent() }\n {\n note\n ?

    { note }

    \n : null\n }\n
    \n { getFileInputError() }\n
    \n );\n}\n\nFileInput.propTypes = {\n accept: PropTypes.string,\n disabled: PropTypes.bool,\n id: PropTypes.string,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.instanceOf(Object),\n wrapperClassName: PropTypes.string,\n};\n\nexport default FileInput;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nclass Input extends Component {\n static getAddon(content) {\n return (\n
    \n { content }\n
    \n );\n }\n\n constructor(props) {\n super(props);\n const {\n value,\n } = this.props;\n\n this.state = {\n initValue: value,\n stateValue: value,\n };\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n componentDidUpdate(prevProps) {\n const {\n isfield,\n value,\n onChange,\n } = this.props;\n\n if (!isfield && prevProps.value !== value) {\n /* eslint-disable react/no-did-update-set-state */\n this.setState({\n stateValue: value,\n }, () => {\n if (onChange) {\n onChange(value);\n }\n });\n }\n }\n\n handleOnChange(e) {\n const { onChange, isfield } = this.props;\n const inputValue = e.target.value;\n\n if (!isfield) {\n this.setState({\n stateValue: inputValue,\n }, () => {\n if (onChange) {\n onChange(inputValue);\n }\n });\n } else {\n onChange(inputValue);\n }\n }\n\n getLabelStyles() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = labelwidth;\n }\n\n return styles;\n }\n\n getNonLabelWidth() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styles;\n }\n\n getInputError() {\n const { error } = this.props;\n\n return (error && error !== 'true' && error !== 'false')\n ? (\n \n { error }\n

    \n )\n : null;\n }\n\n getCssClasses() {\n const {\n error,\n theme,\n labelwidth,\n inputgroupaddonleft,\n inputgroupaddonright,\n } = this.props;\n const cssClasses = ['tyk-form-group'];\n const themes = theme ? theme.split(' ') : [];\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (inputgroupaddonleft) {\n cssClasses.push('tyk-form-group--addon-left');\n }\n\n if (inputgroupaddonright) {\n cssClasses.push('tyk-form-group--addon-right');\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n return cssClasses.join(' ');\n }\n\n getInputGroupAddon() {\n const {\n inputgroupaddonleft,\n inputgroupaddonright,\n } = this.props;\n\n return (\n
    \n {\n inputgroupaddonleft\n ? Input.getAddon(inputgroupaddonleft)\n : null\n }\n { this.getInputComponent() }\n {\n inputgroupaddonright\n ? Input.getAddon(inputgroupaddonright)\n : null\n }\n
    \n );\n }\n\n getInputComponent() {\n const {\n isfield, onChange, value, ...rest\n } = this.props;\n const { stateValue } = this.state;\n return (\n \n );\n }\n\n // eslint-disable-next-line react/no-unused-class-component-methods\n reset() {\n const { initValue } = this.state;\n\n this.setState({\n stateValue: initValue,\n });\n }\n\n render() {\n const {\n label,\n id,\n inputgroupaddonleft,\n inputgroupaddonright,\n note,\n readOnly,\n value,\n } = this.props;\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n {\n inputgroupaddonleft || inputgroupaddonright\n ? this.getInputGroupAddon()\n : this.getInputComponent()\n }\n {\n note\n ?

    { note }

    \n : null\n }\n { this.getInputError() }\n
    \n )}\n {\n readOnly &&
    {value || '-'}
    \n }\n \n );\n }\n}\n\nInput.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n isfield: PropTypes.bool,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n inputgroupaddonleft: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n inputgroupaddonright: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n};\n\nexport default Input;\n","import React, { useImperativeHandle, useRef, forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Input2({\n error,\n onChange,\n readOnly,\n id,\n inputgroupaddonleft,\n inputgroupaddonright,\n label,\n labelwidth,\n note,\n theme,\n value,\n wrapperClassName = '',\n ...rest\n}, ref) {\n const inputRef = useRef();\n\n useImperativeHandle(ref, () => ({\n focus: () => {\n inputRef.current.focus();\n },\n }));\n\n const getAddon = (content) => (\n
    \n { content }\n
    \n );\n\n const getLabelStyles = () => ({\n ...labelwidth && {\n flexBasis: labelwidth,\n },\n });\n\n const getNonLabelWidth = () => ({\n ...labelwidth && {\n flexBasis: `calc(100% - ${labelwidth} - 20px)`,\n },\n });\n\n const getInputError = () => (\n (error && error !== 'true' && error !== 'false')\n ? (\n \n { error }\n

    \n )\n : null\n );\n\n const getCssClasses = () => {\n const cssClasses = [wrapperClassName, 'tyk-form-group'];\n const themes = theme ? theme.split(' ') : [];\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (inputgroupaddonleft) {\n cssClasses.push('tyk-form-group--addon-left');\n }\n\n if (inputgroupaddonright) {\n cssClasses.push('tyk-form-group--addon-right');\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n return cssClasses.join(' ');\n };\n\n const handleOnChange = (e) => {\n onChange(e, e.target.value);\n };\n\n const getInputElement = () => (\n \n );\n\n const getInputGroupAddon = () => (\n
    \n {\n inputgroupaddonleft\n ? getAddon(inputgroupaddonleft)\n : null\n }\n { getInputElement() }\n {\n inputgroupaddonright\n ? getAddon(inputgroupaddonright)\n : null\n }\n
    \n );\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n {\n inputgroupaddonleft || inputgroupaddonright\n ? getInputGroupAddon()\n : getInputElement()\n }\n {\n note\n ?

    { note }

    \n : null\n }\n { getInputError() }\n
    \n )}\n {\n readOnly && (\n
    \n {value || '-'}\n
    \n )\n }\n \n );\n}\n\nInput2.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n inputgroupaddonleft: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n inputgroupaddonright: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default forwardRef(Input2);\n","import { createContext } from 'react';\n\nconst MultiselectContext = createContext();\n\nexport default MultiselectContext;\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport MultiselectContext from './MultiselectContext';\nimport Button from '../../../../components/Button';\nimport Collapsible from '../../../../components/Collapsible';\nimport Loader from '../../../../components/Loader';\n\nconst getItemContent = (context, item) => (\n context.detailsDisplayTemplate\n ? context.detailsDisplayTemplate(item)\n : JSON.stringify(item.details)\n);\n\nconst getItemLoader = (context, item) => {\n const { opened } = context;\n\n return opened[item.id]\n ? \n : null;\n};\n\nfunction MultiselectItem({\n item,\n itemType,\n searchValue,\n onChange,\n}) {\n const isInSearchValue = useCallback((fieldsToSearchOn) => {\n if (fieldsToSearchOn?.length > 0) {\n return fieldsToSearchOn.some((key) => item[key]?.includes(searchValue));\n }\n\n return JSON.stringify(item).includes(searchValue);\n }, [item, searchValue]);\n\n const onAddRemove = useCallback(() => {\n onChange(item);\n }, [onChange, item]);\n\n return (\n \n {\n (context) => (\n isInSearchValue(context.fieldsToSearchOn)\n ? (\n
  • \n
    \n \n {\n context.itemDisplayTemplate\n ? context.itemDisplayTemplate(item)\n : JSON.stringify(item)\n }\n \n \n \n context.onGetItemDetails(item)}\n />\n \n
    \n {\n item.details\n ? (\n \n {getItemContent(context, item)}\n \n )\n : getItemLoader(context, item)\n }\n
  • \n )\n : null\n )\n }\n
    \n );\n}\n\nMultiselectItem.propTypes = {\n item: PropTypes.instanceOf(Object),\n itemType: PropTypes.string,\n searchValue: PropTypes.string,\n onChange: PropTypes.func,\n};\n\nexport default MultiselectItem;\n","import React, { useCallback, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Input from '../../Input';\nimport Icon from '../../../../components/Icon';\nimport Message from '../../../../components/Message';\nimport InfiniteScroller from '../../../../components/InfiniteScroller';\nimport MultiselectItem from './MultiselectItem';\n\nfunction MultiselectPanel({\n inputPlaceholder,\n noItemsMessage,\n items,\n onCustomSearch,\n onChange,\n customSearch,\n panelType,\n serverLoad,\n itemsPageNumber,\n itemsNrPages,\n loadMoreItems,\n}) {\n const [searchValue, setSearchValue] = useState('');\n const itemIndex = useRef(0);\n const itemsListRef = useRef();\n\n function getItemIndex() {\n itemIndex.current += 1;\n\n return itemIndex.current;\n }\n\n function getItemsList() {\n return (\n serverLoad\n ? (\n itemsPageNumber}\n loadMore={loadMoreItems}\n pageNumber={itemsPageNumber}\n >\n { renderListItems() }\n \n )\n : renderListItems()\n );\n }\n\n const searchOnChange = useCallback((value) => {\n if (onCustomSearch) {\n onCustomSearch(value);\n } else {\n setSearchValue(value);\n }\n }, [onCustomSearch]);\n\n const itemChanged = useCallback((item) => {\n let cloneItems = structuredClone(items);\n cloneItems = cloneItems.filter((clonedItem) => item.id !== clonedItem.id);\n\n onChange(cloneItems, item);\n }, [items]);\n\n function renderListItems() {\n return (\n \n {\n items.map((item) => (\n \n ))\n }\n \n );\n }\n\n return (\n
    \n \n }\n name=\"search\"\n onChange={searchOnChange}\n placeholder={inputPlaceholder}\n value={searchValue}\n />\n {\n items.length\n ? getItemsList()\n : (\n \n { noItemsMessage }\n \n )\n }\n
    \n );\n}\n\nMultiselectPanel.propTypes = {\n customSearch: PropTypes.bool,\n onCustomSearch: PropTypes.func,\n panelType: PropTypes.string,\n onChange: PropTypes.func,\n items: PropTypes.instanceOf(Array),\n itemsPageNumber: PropTypes.number,\n itemsNrPages: PropTypes.number,\n inputPlaceholder: PropTypes.string,\n loadMoreItems: PropTypes.func,\n noItemsMessage: PropTypes.string,\n serverLoad: PropTypes.bool,\n};\n\nexport default MultiselectPanel;\n","import React, { useCallback, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport MultiselectPanel from './js/MultiselectPanel';\nimport MultiselectContext from './js/MultiselectContext';\n\nconst diffObjects = (value, items) => items.filter((item) => !value.find((v) => v.id === item.id));\n\nfunction Multiselect({\n customSearch,\n entityNamePlural,\n disabled,\n error,\n getItemDetails,\n itemDisplayTemplate,\n detailsDisplayTemplate,\n fieldsToSearchOn,\n items,\n itemsPageNumber,\n itemsNrPages,\n loadMoreItems,\n maxSelections,\n note,\n value,\n onChange,\n wrapperClassName = '',\n}) {\n const [opened, setOpened] = useState({});\n\n const onGetItemDetails = useCallback((item) => {\n setOpened((prevOpened) => ({ ...prevOpened, [item.id]: !prevOpened[item.id] }));\n\n if (getItemDetails) getItemDetails(item);\n }, [getItemDetails]);\n\n function getMultiselectError() {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }\n\n const getCssClasses = useCallback(\n () => [\n wrapperClassName,\n 'tyk-multiselect',\n error && 'has-error',\n ]\n .filter(Boolean)\n .join(' '),\n [wrapperClassName, error],\n );\n\n const itemsChange = useCallback((allItems, item) => {\n const valueClone = structuredClone(value);\n\n valueClone.unshift(item);\n\n onChange(valueClone, item, 'added');\n }, [value]);\n\n const valueChange = useCallback((newValue, item) => {\n onChange(newValue, item, 'removed');\n }, [items]);\n\n const providerValue = useMemo(() => ({\n disabled,\n itemDisplayTemplate,\n detailsDisplayTemplate,\n fieldsToSearchOn,\n maxSelections,\n nrSelectedItems: value.length,\n onGetItemDetails,\n opened,\n }), [\n disabled,\n itemDisplayTemplate,\n detailsDisplayTemplate,\n fieldsToSearchOn,\n maxSelections,\n value,\n onGetItemDetails,\n opened,\n ]);\n\n return (\n <>\n
    \n \n
    \n
    \n { value.length }\n {' '}\n Selected\n {' '}\n { entityNamePlural }\n
    \n
    \n Select from existing\n { entityNamePlural }\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n {\n note\n ?

    { note }

    \n : null\n }\n
    \n { getMultiselectError() }\n \n );\n}\n\nMultiselect.propTypes = {\n customSearch: PropTypes.func,\n disabled: PropTypes.bool,\n error: PropTypes.string,\n entityNamePlural: PropTypes.string,\n items: PropTypes.instanceOf(Array),\n itemDisplayTemplate: PropTypes.func,\n detailsDisplayTemplate: PropTypes.func,\n fieldsToSearchOn: PropTypes.instanceOf(Array),\n onChange: PropTypes.func,\n getItemDetails: PropTypes.func,\n itemsPageNumber: PropTypes.number,\n itemsNrPages: PropTypes.number,\n loadMoreItems: PropTypes.func,\n note: PropTypes.string,\n maxSelections: PropTypes.number,\n value: PropTypes.instanceOf(Array),\n wrapperClassName: PropTypes.string,\n};\n\nexport default Multiselect;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * Radio can be used when a user needs to select at most one value from a multiple options.\n */\nfunction Radio({\n label,\n input,\n note,\n inline,\n nospace,\n theme = '',\n disabled,\n readOnly,\n wrapperClassName = '',\n ...rest\n}) {\n const cssClasses = [\n inline ? 'tyk-radio--inline' : 'tyk-radio',\n wrapperClassName,\n nospace && 'no-margin',\n ...(theme ? theme.split(' ').filter(Boolean).map((t) => `tyk-radio--theme-${t}`) : []),\n (readOnly || disabled) && 'tyk-radio--is-disabled',\n ].filter(Boolean).join(' ');\n\n return (\n
    \n \n {note && (\n

    {note}

    \n )}\n
    \n );\n}\n\nRadio.propTypes = {\n /** Used to disable the element */\n disabled: PropTypes.bool,\n /** Readonly prop behaves the same as disabled on radio elements */\n readOnly: PropTypes.bool,\n /** Align radio in the same line with other elements */\n inline: PropTypes.bool,\n /** Set a theme for radio */\n theme: PropTypes.string,\n input: PropTypes.instanceOf(Object),\n /** Adds label to the radio input */\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n /** Set name for the radio input */\n name: PropTypes.string,\n /** If set to true removes margin by adding `no-margin` class */\n nospace: PropTypes.bool,\n /** Set initial value for the radio input */\n value: PropTypes.string,\n /** Add note at the bottom of the radio input */\n note: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default Radio;\n","import React, { useCallback, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Select(props) {\n const {\n value,\n onChange,\n onBlur,\n isfield,\n label,\n labelwidth,\n id,\n note,\n readOnly,\n options,\n error,\n theme,\n wrapperClassName = '',\n ...rest\n } = props;\n const [stateValue, setStateValue] = useState(value);\n\n useEffect(() => {\n if (!isfield && stateValue !== value) {\n setStateValue(value);\n if (onChange) onChange(value);\n }\n }, [stateValue, value]);\n\n const handleOnChange = useCallback((e) => {\n const selectedValue = options.find((option) => option.id === e.target.value);\n\n if (!isfield) {\n setStateValue(selectedValue);\n }\n onChange(selectedValue.id ? selectedValue : null);\n }, [options, isfield, onChange]);\n\n const handleOnBlur = useCallback(() => {\n if (onBlur) {\n onBlur(value);\n }\n }, [onBlur]);\n\n // eslint-disable-next-line arrow-body-style\n const getSelectError = useCallback(() => {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }, [error]);\n\n const getCssClasses = useCallback(\n () => [\n 'tyk-form-group',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' '),\n [wrapperClassName, theme, labelwidth, error],\n );\n\n const getLabelStyles = useCallback(() => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n }, [labelwidth]);\n\n const getNonLabelWidth = useCallback(() => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n }, [labelwidth]);\n\n const getSelectComponent = useCallback(() => {\n const selectValue = isfield && value ? value : stateValue;\n\n return (\n \n {\n options.map((option) => (\n \n ))\n }\n \n );\n }, [isfield, value, stateValue, handleOnChange, handleOnBlur, options, rest]);\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n { getSelectComponent() }\n {\n note\n ?

    { note }

    \n : null\n }\n { getSelectError() }\n
    \n )}\n {readOnly &&
    {value || '-'}
    }\n \n );\n}\n\nSelect.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n isfield: PropTypes.bool,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n options: PropTypes.instanceOf(Array),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default Select;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Message from '../../../components/Message';\nimport List from '../../../components/List';\nimport Icon from '../../../components/Icon';\n\nfunction SelectableList(props) {\n const {\n checkboxalticon,\n items,\n itemTemplate,\n value,\n noItemsMessage = 'No items in the list',\n onChange,\n theme,\n primaryKey,\n wrapperClassName = '',\n } = props;\n\n const handleOnSelect = (event) => {\n const newSelectedItems = structuredClone(value);\n const elemPosition = newSelectedItems.findIndex(\n (id) => JSON.stringify(id) === JSON.stringify(\n Array.isArray(id)\n ? event.target.value.split(',')\n : event.target.value,\n ),\n );\n\n if (event.target.checked && elemPosition === -1) {\n const tempValue = event.target.value.split(',');\n const finalValue = tempValue.length > 1 ? tempValue : event.target.value;\n\n newSelectedItems.push(finalValue);\n } else if (!event.target.checked && elemPosition > -1) {\n newSelectedItems.splice(elemPosition, 1);\n }\n\n if (onChange) {\n onChange(newSelectedItems);\n }\n };\n\n const getListItemCssClassName = (isActive) => {\n const cssClasses = [];\n\n if (checkboxalticon) {\n cssClasses.push('tyk-selectable-list__item--with-icon');\n }\n\n if (isActive) {\n cssClasses.push('tyk-selectable-list__item--active');\n }\n\n return cssClasses.join(' ');\n };\n\n const isChecked = (inputValue, itemValue) => Boolean(\n inputValue.find((tvalue) => JSON.stringify(itemValue) === JSON.stringify(tvalue)),\n );\n\n return (\n \n {\n !items.length\n ? (\n
  • \n \n {noItemsMessage}\n \n
  • \n )\n : items.map((item, index) => (\n \n \n \n ))\n }\n
    \n );\n}\n\nSelectableList.propTypes = {\n items: PropTypes.instanceOf(Array),\n itemTemplate: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n PropTypes.func,\n ]),\n value: PropTypes.instanceOf(Array),\n onChange: PropTypes.func,\n primaryKey: PropTypes.string,\n noItemsMessage: PropTypes.string,\n checkboxalticon: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n theme: PropTypes.string,\n wrapperClassName: PropTypes.string,\n};\n\nSelectableList.defaultProps = {\n items: [],\n primaryKey: 'id',\n value: [],\n};\n\nexport default SelectableList;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Textarea({\n id,\n input,\n label,\n note,\n error,\n theme,\n labelwidth,\n value,\n readOnly,\n wrapperClassName,\n ...rest\n}) {\n const classes = [\n 'tyk-form-group',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' ');\n\n const getLabelStyles = () => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n };\n\n const getNonLabelWidth = () => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n };\n\n function getTextareaError() {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n \n { value }\n \n {\n note\n ?

    { note }

    \n : null\n }\n {getTextareaError()}\n
    \n )}\n {readOnly &&
    {value || '-'}
    }\n \n );\n}\n\nTextarea.propTypes = {\n /** Disable the component */\n disabled: PropTypes.bool,\n /** Displays only the text value of the component, or \"-\" if no value is set */\n readOnly: PropTypes.bool,\n input: PropTypes.instanceOf(Object),\n /** Set an error message for the component and the component is rendered in the error state */\n error: PropTypes.string,\n /** Adds a label to the component */\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n /** Sets the width of the label */\n labelwidth: PropTypes.string,\n /** Set a name for the component */\n name: PropTypes.string,\n /** Adds additional information under the component */\n note: PropTypes.string,\n /** Callback function executed on value change */\n onChange: PropTypes.func,\n id: PropTypes.string,\n /** Set a theme for the component */\n theme: PropTypes.string,\n /** Set the value of the component */\n value: PropTypes.string,\n /** CSS classes added to the wrapper of the component */\n wrapperClassName: PropTypes.string,\n};\n\nexport default Textarea;\n","import { createContext } from 'react';\n\nconst ToggleContext = createContext();\n\nexport default ToggleContext;\n","import React, { Component, createRef } from 'react';\nimport PropTypes from 'prop-types';\n\nclass ToggleItem extends Component {\n static getNotchCssClasses(context) {\n return ['tyk-toggle__item-notch', `tyk-toggle__item-notch--${context.type}`].join(' ');\n }\n\n constructor(props) {\n super(props);\n\n this.itemRef = createRef();\n }\n\n componentDidMount() {\n const { context, value } = this.props;\n\n if (context.value === value) {\n context.saveSelectedRef(this.itemRef);\n }\n }\n\n componentDidUpdate(prevProps) {\n const { context, value } = this.props;\n\n if (prevProps.context.value !== context.value && context.value === value) {\n context.saveSelectedRef(this.itemRef);\n }\n }\n\n onChange(event) {\n const { context, value } = this.props;\n const { disabled, readOnly } = context;\n\n if (disabled || readOnly) {\n return;\n }\n\n context.onItemSelected(context.type === 'single' ? !context.value : value, event);\n }\n\n render() {\n const {\n context, label, name, value,\n } = this.props;\n return (\n
  • \n \n
  • \n );\n }\n}\n\nToggleItem.propTypes = {\n context: PropTypes.instanceOf(Object),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n name: PropTypes.string,\n value: PropTypes.string,\n};\n\nexport default ToggleItem;\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport ToggleContext from './ToggleContext';\nimport ToggleItem from './ToggleItem';\n\nfunction ToggleItemWrapper({ children, ...rest }, ref) {\n return (\n \n {(context) => (\n \n {children}\n \n )}\n \n );\n}\n\nToggleItemWrapper.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n};\n\nexport default forwardRef(ToggleItemWrapper);\n","import React, {\n useCallback, useMemo, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport ToggleContext from './js/ToggleContext';\nimport ToggleItemWrapper from './js/ToggleItemWrapper';\n\nfunction Toggle({\n className,\n disabled,\n readOnly,\n size,\n theme,\n direction,\n onDark,\n wrapperClassName = '',\n onChange,\n labelwidth,\n label,\n separated,\n children,\n type,\n value,\n error,\n}) {\n const [selectedRef, setSelectedRef] = useState(null);\n const notchRef = useRef();\n const toggleRef = useRef();\n\n const classes = [\n wrapperClassName,\n className,\n 'tyk-toggle',\n `tyk-toggle--disabled-${readOnly || disabled}`,\n `tyk-toggle--${size || 'md'}`,\n `tyk-toggle--${theme}`,\n `tyk-toggle--${direction}`,\n onDark && 'tyk-toggle--on-dark',\n ].filter(Boolean).join(' ');\n\n const onItemSelected = useCallback((itemValue, event) => {\n if (!onChange) return;\n onChange(itemValue, event);\n }, [onChange]);\n\n const getLabelStyles = useCallback(() => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n }, [labelwidth]);\n\n const positionNotch = useCallback(() => {\n if (!selectedRef || separated) {\n return {};\n }\n\n const selectedWidth = selectedRef.current.offsetWidth;\n const selectedOffset = selectedRef.current.getBoundingClientRect().left;\n const toggleOffset = toggleRef.current.getBoundingClientRect().left;\n const left = selectedOffset - toggleOffset;\n\n return {\n left: `${left + 4}px`,\n width: `${selectedWidth - 8}px`,\n };\n }, [selectedRef, separated]);\n\n const contextValue = useMemo(() => ({\n disabled,\n readOnly,\n onItemSelected,\n saveSelectedRef: setSelectedRef,\n separated,\n type,\n value,\n }), [disabled, readOnly, onItemSelected, separated, type, value]);\n\n return (\n <>\n
    \n \n {\n label\n ? \n : null\n }\n
      \n { children }\n {\n type === 'multiple' && !separated\n ?
    • \n : null\n }\n
    \n \n
    \n {\n error && (\n

    \n { error }\n

    \n )\n }\n \n );\n}\n\nToggle.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n error: PropTypes.string,\n onChange: PropTypes.func,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n theme: PropTypes.string,\n type: PropTypes.string, // single || multiple\n size: PropTypes.string,\n separated: PropTypes.bool,\n direction: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.string,\n ]),\n onDark: PropTypes.bool,\n wrapperClassName: PropTypes.string,\n};\n\nToggle.defaultProps = {\n separated: false,\n theme: 'primary',\n type: 'single',\n direction: 'row',\n};\n\nToggle.Item = ToggleItemWrapper;\n\nexport default Toggle;\n","const config = {\n FORM_DEBOUNCE: 200,\n};\n\nexport function setConfig(key, val) {\n config[key] = val;\n}\n\nexport default config;\n","import React, { useCallback, useEffect, useState } from 'react';\n\nimport config from '../config/config';\n\nfunction getValueFromPath(obj, path) {\n // turn 'aaa.qqq[2].bbb[5][3].mmm' into ['aaa', 'qqq', '2', 'bbb', '5', '3', 'mmm']\n const indexes = path.split(/[\\][.]/).filter(Boolean);\n return indexes.reduce((acc, v) => (acc ? acc[v] : acc), obj);\n}\n\nfunction debounce(f, limit) {\n let timeoutId;\n return (...args) => {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(f, limit, ...args);\n };\n}\n\n/* eslint-disable react/prop-types, react/function-component-definition */\n/**\n * A wrapper function that \"prepares\" a tyk-ui form component to be used with the formik library.\n * It handles things like setting the value of the component, change events, error state,\n * and also has a default debounce time for when the change event is triggered.\n */\nconst wrapper = (Component, options) => ({ field, form, ...properties }) => {\n const DEFAULT_DEBOUNCE_TIME_MS = typeof config.FORM_DEBOUNCE === 'number' ? config.FORM_DEBOUNCE : 200;\n const [myValue, setMyValue] = useState(field.value);\n const opts = {\n getOnChangeProps: () => ({}),\n hasIsFieldProp: false,\n ...options,\n };\n\n const executeDebounced = useCallback((() => {\n const fn = (f) => f();\n if (\n properties.debounce === false\n || (config.FORM_DEBOUNCE === false && !properties.debounce)\n ) {\n return fn;\n }\n const timeout = typeof properties.debounce === 'number'\n ? properties.debounce\n : DEFAULT_DEBOUNCE_TIME_MS;\n return debounce(fn, timeout);\n })(), []);\n\n const getValue = (v) => {\n if (v?.target) {\n if (v.target.nodeName === 'INPUT' && (v.target.type === 'checkbox' || v.target.type === 'radio')) {\n return v.target.checked;\n }\n return v.target.value;\n }\n return v;\n };\n\n const onChange = (valueOrEvent) => {\n const value = getValue(valueOrEvent);\n const onChangeProps = opts.getOnChangeProps(value, field, form, properties);\n\n const newValue = onChangeProps.value || properties.value || value;\n executeDebounced(() => {\n if (typeof properties.onChange === 'function') {\n properties.onChange(newValue);\n }\n field.onChange({ target: { name: field.name, value: newValue, ...onChangeProps } });\n });\n setMyValue(newValue);\n };\n\n const formError = (getValueFromPath(form.touched, field.name) || Boolean(form.submitCount))\n && getValueFromPath(form.errors, field.name);\n const error = typeof formError === 'string' ? formError : '';\n\n useEffect(() => {\n setMyValue(field.value);\n }, [field.value]);\n\n // eslint-disable-next-line no-param-reassign\n if (form.status?.disabled) properties.disabled = true;\n\n const componentProps = { ...properties };\n delete componentProps.debounce;\n\n if (Object.hasOwn(componentProps, 'className') && componentProps.className === undefined) delete componentProps.className;\n if (Object.hasOwn(componentProps, 'children') && componentProps.children === undefined) delete componentProps.children;\n\n return (\n \n );\n};\n\nexport default wrapper;\n","import wrapper from '../../../utils/formik';\nimport Checkbox from '../../components/Checkbox';\n\nexport default wrapper(Checkbox, {\n getOnChangeProps: (value) => ({\n checked: value,\n }),\n});\n","import wrapper from '../../../utils/formik';\nimport CodeEditor from '../../components/CodeEditor';\n\nexport default wrapper(CodeEditor);\n","import wrapper from '../../../utils/formik';\nimport Combobox from '../../components/Combobox';\n\nexport default wrapper(Combobox);\n","import wrapper from '../../../utils/formik';\nimport Combobox2 from '../../components/Combobox2';\n\nexport default wrapper(Combobox2);\n","import wrapper from '../../../utils/formik';\nimport DatePicker from '../../components/DatePicker';\n\nexport default wrapper(DatePicker);\n","import wrapper from '../../../utils/formik';\nimport EditableList from '../../components/EditableList';\n\nexport default wrapper(EditableList, {\n getOnChangeProps: (value) => ({ value: value || [] }),\n});\n","import wrapper from '../../../utils/formik';\nimport EditableList2 from '../../components/EditableList2';\n\nexport default wrapper(EditableList2);\n","import wrapper from '../../../utils/formik';\nimport FileInput from '../../components/FileInput';\n\nexport default wrapper(FileInput);\n","import wrapper from '../../../utils/formik';\nimport Input from '../../components/Input';\n\nexport default wrapper(Input, { hasIsFieldProp: true });\n","import wrapper from '../../../utils/formik';\nimport Input2 from '../../components/Input2';\n\nexport default wrapper(Input2);\n","import wrapper from '../../../utils/formik';\nimport MultiSelect from '../../components/Multiselect';\n\nexport default wrapper(MultiSelect);\n","import wrapper from '../../../utils/formik';\nimport Radio from '../../components/Radio';\n\nexport default wrapper(Radio, {\n getOnChangeProps: (value, field, form, properties) => ({\n checked: value === properties.value,\n value: properties.value,\n }),\n});\n","import wrapper from '../../../utils/formik';\nimport Select from '../../components/Select';\n\nexport default wrapper(Select, { hasIsFieldProp: true });\n","import wrapper from '../../../utils/formik';\nimport SelectableList from '../../components/SelectableList';\n\nexport default wrapper(SelectableList);\n","import wrapper from '../../../utils/formik';\nimport Textarea from '../../components/Textarea';\n\nexport default wrapper(Textarea);\n","import wrapper from '../../../utils/formik';\nimport Toggle from '../../components/Toggle';\n\nexport default wrapper(Toggle);\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport CodeEditor from '../../components/CodeEditor';\n\nclass FieldCodeEditor extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.prop;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getInputError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldCodeEditor.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldCodeEditor;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Combobox from '../../components/Combobox';\n\nclass FieldCombobox extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getComboboxError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldCombobox.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldCombobox;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Dropdown from '../../components/Dropdown';\n\nclass FieldDropdown extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n render() {\n const {\n children,\n input,\n ...rest\n } = this.props;\n\n return (\n \n {children}\n \n );\n }\n}\n\nFieldDropdown.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldDropdown;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Pagination from '../../components/Pagination';\n\nfunction FieldPagination(props) {\n const { input, ...rest } = props;\n\n return (\n \n );\n}\n\nFieldPagination.propTypes = {\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldPagination;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Combobox2 from '../../components/Combobox2';\n\nfunction FieldCombobox2(props) {\n const { input, meta, validationmessages } = props;\n\n const getComboboxError = () => {\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n return message;\n };\n\n const handleOnChange = (value) => {\n const { onChange } = input;\n onChange(fromJS(value));\n };\n\n return (\n \n );\n}\n\nFieldCombobox2.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldCombobox2;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport DatePicker from '../../components/DatePicker';\n\nfunction FormDatePicker(props) {\n const {\n input,\n meta,\n validationmessages,\n ...rest\n } = props;\n\n const getDatePickerError = () => {\n const { touched, error } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n }\n\n return message;\n };\n\n const handleOnChange = (value) => {\n const { onChange } = input;\n\n onChange(fromJS(value));\n };\n\n return (\n \n );\n}\n\nFormDatePicker.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FormDatePicker;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport EditableList from '../../components/EditableList';\n\nclass FieldEditableList extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getEditableListError() {\n const { meta, validationmessages } = this.props;\n const { touched, error } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n }\n\n return message;\n }\n\n render() {\n const { ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldEditableList.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldEditableList;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport FileInput from '../../components/FileInput';\n\nclass FieldFileInput extends Component {\n getInputError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldFileInput.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldFileInput;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Input from '../../components/Input';\n\nclass FieldInput extends Component {\n getInputError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldInput.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldInput;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Multiselect from '../../components/Multiselect';\n\nclass FieldMultiselect extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getMultiselectError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldMultiselect.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldMultiselect;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Select from '../../components/Select';\n\nclass FieldSelect extends Component {\n constructor(props) {\n super(props);\n\n this.handleEvent = this.handleEvent.bind(this);\n }\n\n handleEvent(selectValue) {\n const { input } = this.props;\n const { onChange, value } = input;\n\n onChange(fromJS(selectValue !== undefined ? selectValue : value));\n }\n\n getSelectError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldSelect.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldSelect;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport SelectableList from '../../components/SelectableList';\n\nclass FieldSelectableList extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n\n input.onChange(fromJS(value));\n }\n\n render() {\n const { children, ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldSelectableList.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.node,\n ]),\n onChange: PropTypes.func,\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldSelectableList;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Toggle from '../../components/Toggle';\n\nclass FieldToggle extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n\n input.onChange(fromJS(value));\n }\n\n render() {\n const { children, ...props } = this.props;\n\n return (\n \n {children}\n \n );\n }\n}\n\nFieldToggle.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.node,\n ]),\n onChange: PropTypes.func,\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldToggle;\n","import { useEffect, useRef } from 'react';\n\n/** @component */\nexport default function useInterval(callback, delay, ...args) {\n const savedCallback = useRef();\n\n useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n // eslint-disable-next-line consistent-return\n useEffect(() => {\n function tick() {\n savedCallback.current(...args);\n }\n if (delay !== null && delay !== undefined) {\n const id = setInterval(tick, delay);\n return () => clearInterval(id);\n }\n }, [delay]);\n}\n"],"names":["global","this","window","define","module","deps","payload","arguments","length","modules","payloads","original","apply","console","error","trace","ns","root","_require","parentId","callback","lookup","undefined","Object","prototype","toString","call","params","i","l","dep","require","push","packagedModule","normalizeModule","moduleName","indexOf","chunks","split","charAt","slice","join","previous","replace","exports","mod","id","uri","packaged","ace","defineProp","obj","name","val","defineProperty","value","enumerable","writable","configurable","String","startsWith","searchString","position","lastIndexOf","endsWith","subjectString","lastIndex","repeat","count","result","string","includes","str","assign","target","TypeError","output","index","source","keys","forEach","key","values","o","map","k","Array","find","predicate","len","thisArg","kValue","findIndex","item","fill","O","relativeStart","Math","max","min","end","relativeEnd","final","of","deepCopy","copy","isArray","last","a","stringReverse","reverse","stringRepeat","trimBeginRegexp","trimEndRegexp","stringTrimLeft","stringTrimRight","copyObject","copyArray","array","arrayToMap","arr","createMap","props","create","arrayRemove","splice","escapeRegExp","escapeHTML","getMatchOffsets","regExp","matches","offset","deferredCall","fcn","timer","deferred","timeout","cancel","setTimeout","schedule","clearTimeout","isPending","delayedCall","defaultTimeout","_self","delay","supportsLookbehind","RegExp","e","skipEmptyMatch","line","supportsUnicodeFlag","codePointAt","OS","LINUX","MAC","WINDOWS","getOS","isMac","isLinux","_navigator","navigator","os","exec","platform","toLowerCase","ua","userAgent","appName","isWin","isIE","parseFloat","match","isOldIE","isGecko","isMozilla","isOpera","opera","isWebKit","isChrome","isSafari","isEdge","isAIR","isAndroid","isChromeOS","isIOS","test","MSStream","isMobile","strictCSP","useragent","buildDom","parent","refs","txt","document","createTextNode","appendChild","els","ch","el","createElement","options","childIndex","n","className","style","cssText","setAttribute","getDocumentHead","doc","head","getElementsByTagName","documentElement","tag","createElementNS","removeChildren","element","innerHTML","textContent","ownerDocument","createFragment","createDocumentFragment","hasCssClass","addCssClass","removeCssClass","classes","toggleCssClass","add","setCssClass","node","include","hasCssString","sheets","querySelectorAll","removeElementById","getElementById","remove","cssCache","insertPendingStyles","cache","importCssString","container","getRootNode","insertBefore","firstChild","useStrictCSP","importCssStylsheet","rel","href","scrollbarWidth","inner","width","minWidth","height","display","outer","left","overflow","body","noScrollbar","offsetWidth","withScrollbar","clientWidth","removeChild","computedStyle","getComputedStyle","setStyle","styles","property","HAS_CSS_ANIMATION","HAS_CSS_TRANSFORMS","HI_DPI","devicePixelRatio","div","transform","animationName","translate","tx","ty","round","top","dom","get","url","xhr","XMLHttpRequest","open","onreadystatechange","readyState","responseText","send","loadScript","path","s","src","onload","_","isAbort","qualifyURL","inherits","ctor","superCtor","super_","constructor","mixin","implement","proto","EventEmitter","stopPropagation","propagationStopped","preventDefault","defaultPrevented","_emit","_dispatchEvent","eventName","_eventRegistry","_defaultHandlers","listeners","defaultHandler","type","_signal","once","on","newCallback","off","Promise","resolve","setDefaultHandler","handlers","_disabled_","old","disabled","removeDefaultHandler","pop","addEventListener","capturing","removeListener","removeEventListener","removeAllListeners","reportError","msg","data","Error","messages","oop","optionsProvider","setOptions","optList","setOption","getOptions","optionNames","$options","filter","hidden","getOption","opt","warn","forwardTo","handlesSet","set","message","AppConfig","$defaultOptions","defineOptions","initialValue","resetOptions","setDefaultValue","opts","setDefaultValues","optionHash","setMessages","nls","translated","isDark","cssClass","$id","lang","net","customLoader","workerPath","modePath","themePath","basePath","suffix","$moduleUrls","loadWorkerFromBlob","sharedPopups","hasOwnProperty","all","$modes","moduleUrl","component","parts","sep","base","re","setModuleUrl","subst","setLoader","cb","dynamicModules","$loading","$loaded","loadModule","onLoad","loadedModule","moduleType","load","afterLoad","loader","err","reportErrorIfPathIsNotConfigured","then","default","$require","setModuleLoader","version","config","init","scriptOptions","scriptUrl","currentScript","_currentScript","currentDocument","scripts","script","getAttribute","attributes","j","attr","m","m1","toUpperCase","Range","startRow","startColumn","endRow","endColumn","start","row","column","isEqual","range","contains","compare","compareRange","cmp","comparePoint","p","containsRange","intersects","isEnd","isStart","setStart","setEnd","inside","insideStart","insideEnd","isMultiLine","compareStart","compareEnd","compareInside","clipRows","firstRow","lastRow","fromPoints","extend","isEmpty","clone","collapseRows","toScreenRange","session","screenPosStart","documentToScreenPosition","screenPosEnd","moveBy","comparePoints","p1","p2","Keys","ret","MODIFIER_KEYS","KEY_MODS","FUNCTION_KEYS","PRINTABLE_KEYS","parseInt","enter","escape","esc","del","mods","pow","x","keyCodeToString","keyCode","keyString","fromCharCode","activeListenerOptions","pressedKeys","ts","getListenerOptions","createComment","passive","detectListenerOptionsSupport","EventListener","elem","destroy","addListener","destroyer","$toDestroy","stopEvent","getButton","ctrlKey","altKey","shiftKey","button","capture","eventHandler","releaseCaptureHandler","onMouseUp","addMouseWheelListener","deltaX","deltaY","deltaMode","DOM_DELTA_PIXEL","wheelX","wheelY","DOM_DELTA_LINE","DOM_DELTA_PAGE","addMultiMouseDownListener","elements","timeouts","callbackName","startX","startY","clicks","eventNames","onMousedown","detail","isNewClick","abs","clientX","clientY","_clicks","getModifierHash","metaKey","normalizeCommandKeys","hashId","getModifierState","altGr","location","keyLocation","timeStamp","resetPressedKeys","getModifierString","addCommandKeyListener","isOldGecko","lastKeyDownKeyCode","lastDefaultPrevented","postMessage","postMessageId","nextTick","win","messageName","listener","$idleBlocked","onIdle","handler","$idleBlockId","blockIdle","nextFrame","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","bind","$cancelT","lineMode","pasteCancelled","Date","now","event","clipboard","BROKEN_SETDATA","USE_IE_MIME_TYPE","HAS_FOCUS_ARGS","MAX_LINE_LENGTH","KEYS","MODS","valueResetRegex","TextInput","parentNode","host","text","opacity","copied","pasted","inComposition","sendingText","tempStyle","fontSize","commandMode","ignoreFocusEvents","lastValue","lastSelectionStart","lastSelectionEnd","lastRestoreEnd","rowStart","Number","MAX_SAFE_INTEGER","rowEnd","MIN_SAFE_INTEGER","numberOfExtraLines","isFocused","activeElement","setNumberOfExtraLines","number","setAriaOptions","activeDescendant","inline","removeAttribute","role","setLabel","selection","cursor","onBlur","hasFocus","onFocus","resetSelection","$focusScroll","focus","renderer","enableKeyboardAccessibility","preventScroll","isTransformed","getBoundingClientRect","ancestors","t","parentElement","nodeType","blur","curOp","commandName","command","isUserAction","docChanged","selectionChanged","onCompositionEnd","positionToSelection","getLine","newValue","selectionEnd","setSelectionRange","afterContextMenu","selectionStart","getRange","lines","prevLine","nextLine","inputHandler","setInputHandler","getInputHandler","sendText","fromInput","onPaste","extendLeft","extendRight","inserted","restoreStart","restoreEnd","endIndex","shouldReset","onTextInput","onInput","onCompositionUpdate","inputType","execCommand","handleClipboardData","forceIEMime","clipboardData","mime","setData","getData","doCopy","isCut","getCopyText","onCut","onCopy","select","onCommandKey","isAllSelected","selectAll","$readOnly","cancelComposition","useTextareaForIME","markerRange","context","compositionStartOffset","closeTimeout","syncComposition","onContextMenuClose","$isMousePressed","$keepTextAreaAtCursor","$moveTextAreaToCursor","onCompositionStart","getSelectionRange","msGetInputContext","getInputContext","getElement","setCommandMode","readOnly","setReadOnly","setCopyWithEmptySelection","onContextMenu","domEvent","moveToMouse","bringToFront","characterWidth","rect","borderTopWidth","borderLeftWidth","maxTop","bottom","clientHeight","move","textInput","scroller","typingResetTimeout","typing","detectArrowKeys","$mouseHandler","isMousePressed","modifier","up","home","option","down","right","shift","commands","findKeyCommand","addIosSelectionHandler","$setUserAgentForTests","_isMobile","_isIOS","DefaultHandlers","mouseHandler","$clickSelection","editor","onMouseDown","onDoubleClick","onTripleClick","onQuadClick","onMouseWheel","selectByLines","extendSelectionBy","selectByWords","ev","inSelection","pos","getDocumentPosition","mousedownEvent","moveToPosition","time","$focusTimeout","inMultiSelectMode","captureMouse","startSelect","setState","waitForClickSelection","screenToTextCoordinates","y","getShiftKey","selectToPosition","anchor","orientedRange","calcRangeOrientation","setSelectionAnchor","scrollCursorIntoView","unitName","cmpStart","cmpEnd","selectByLinesEnd","unsetStyle","focusWait","ax","ay","bx","by","distance","sqrt","getBracketRange","getWordRange","getLineRange","getAccelKey","$lastScroll","vx","vy","allowed","prevScroll","dt","direction","canScroll","isScrollableBy","speed","scrollBy","stop","selectEnd","selectAllEnd","selectByWordsEnd","extendStatics","__extends","d","b","setPrototypeOf","__proto__","__","__values","Symbol","iterator","next","done","CLASSNAME","Tooltip","isOpen","$element","$parentNode","$init","setText","setHtml","html","setPosition","setClassName","setTheme","theme","show","hide","getHeight","offsetHeight","getWidth","popupManager","PopupManager","popups","addPopup","popup","updatePopups","removePopup","e_1","_a","e_2","_b","sort","priority","visiblepopups","_c","_d","shouldDisplay","visiblepopups_1","visiblepopups_1_1","visiblePopup","doPopupsOverlap","e_2_1","return","e_1_1","popupA","popupB","rectA","rectB","HoverTooltip","_super","_this","lastT","idleTime","lastEvent","onMouseOut","onMouseMove","waitForHover","whiteSpace","pointerEvents","tabIndex","addToEditor","getMouseEventTarget","removeFromEditor","isOutsideOfText","$gatherData","docPos","screenPos","pixelToScreenCoordinates","clippedPos","setDataProvider","showForRange","domNode","startingEvent","$registerCloseEvents","addMarker","textToScreenCoordinates","pageX","maxHeight","labelHeight","labelWidth","spaceBelow","innerHeight","pageY","lineHeight","isAbove","innerWidth","marker","$markerSession","removeMarker","$removeCloseEvents","relatedTarget","currentTarget","classList","GutterHandler","tooltipTimeout","mouseEvent","gutter","$gutterLayer","tooltip","GutterTooltip","hideTooltip","moveTooltip","getRegion","selectTo","srcElement","$tooltipFollowsMouse","getLength","screenRow","$pos","documentToScreenRow","showTooltip","gutterRow","getGutterRow","gutterCell","$lines","querySelector","$gutter","windowWidth","windowHeight","singular","plural","warning","info","annotation","annotationsInRow","$annotations","from","fold","getFoldLine","$showFoldedAnnotations","mostSevereAnnotationInFoldType","annotationsInFold","annotationType","summaryFoldedAnnotations","concat","annotationsToSummaryString","annotationMessages","iconClassName","$useSvgGutterIcons","annotationLabels","tooltipContent","annotations","summary","annotationTypes_1","annotationTypes_1_1","label","MouseEvent","$inSelection","documentRow","selectionRange","DragdropHandler","dragImage","dragSelectionMarker","timerId","dragCursor","dragOperation","isInternal","autoScrollStartTime","cursorMovedTime","cursorPointOnCaretMoved","mouseTarget","counter","onDragInterval","prevCursor","vMovement","hMovement","moveCursorToPosition","calcDistance","layerConfig","editorRect","offsets","nearestXOffset","nearestYOffset","scrollCursor","vScroll","hScroll","autoScroll","addDragMarker","toOrientedRange","getSelectionStyle","clearSelection","$cursorLayer","setBlinking","clearInterval","setInterval","clearDragMarker","fromOrientedRange","$resetCursorStyle","onDragStart","cancelDrag","draggable","self","dataTransfer","effectAllowed","getReadOnly","setDragImage","clearData","getTextRange","onDragEnd","dropEffect","setCursorStyle","onDragEnter","canAccept","getDropEffect","onDragOver","onMouseMoveTimer","onDragLeave","onDrop","moveText","dropData","insert","types","some","copyAllowed","copyModifierState","dragWait","getDragDelay","startDrag","dragWaitEnd","dragReadyEnd","cursorStyle","onMouseDrag","state","dragDrop","$dragEnabled","eventTarget","unselectable","addTouchListeners","touchStartT","longTouchTimer","animationTimer","pressed","contextMenu","mode","animationSteps","clickCount","vX","vY","showContextMenu","handleClick","selected","hasUndo","action","getUndoManager","replaceChild","class","readText","writeText","ontouchstart","ontouchend","onclick","pagePos","leftOffset","scrollLeft","hideContextMenu","handleLongTap","selectWord","touches","h","w","touchObj","setRange","switchToSelectionMode","cursorPos","getPixelPosition","anchorPos","offsetTop","offsetLeft","weightedDistance","diff1","diff2","oldScrollTop","getScrollTop","DefaultGutterHandler","MouseHandler","focusEditor","onMouseEvent","scrollBarV","scrollBarH","Boolean","gutterEl","$dragDelay","character","mousemove","$scrollSpeed","mouseMoveHandler","which","releaseMouse","$mouseMoved","onCaptureEnd","onOperationEnd","onCaptureInterval","$onCaptureMouseMove","endOperation","startOperation","cancelContextMenu","scrollSpeed","dragDelay","dragEnabled","focusTimeout","tooltipFollowsMouse","FoldHandler","getFoldAt","removeFold","expandFold","getUseWrapMode","foldWidgets","onFoldWidgetClick","getParentFoldRangeData","firstRange","addFold","keyUtil","KeyBinding","$editor","$data","$handlers","kb","removeKeyboardHandler","$defaultHandler","addKeyboardHandler","setKeyboardHandler","handleKeyboard","attach","detach","getKeyboardHandler","getStatusText","$callKeyboardHandlers","toExecute","success","args","passEvent","dir","hiLevel","lastArabic","hasUBAT_B","hasUBAT_S","impTab_LTR","impTab_RTL","ET","BN","UnicodeTBL00","UnicodeTBL20","_invertLevel","lev","levels","_array","lo","hi","tmp","_getCharClass","chars","ix","wType","nType","cType","c","rtlCandidate","_getCharacterType","uc","charCodeAt","L","R","EN","ON_R","AN","R_H","B","RLE","DOT","doBidiReorder","textCharTypes","isRtl","logicalFromVisual","bidiLevels","charTypes","impTab","prevState","newClass","newLevel","newState","condPos","_computeLevels","hasBidiCharacters","getVisualFromLogicalIdx","logIdx","rowMap","bidiUtil","bidiRE","BidiHandler","bidiMap","currentRow","charWidths","EOL","showInvisibles","isRtlDir","$isRtl","wrapIndent","EOF","contentWidth","fontMetrics","rtlLineOffset","wrapOffset","isMoveLeftOperation","seenBidi","getValue","isBidiRow","docRow","splitIndex","updateRowLine","updateBidiMap","onChange","delta","getDocumentRow","rowCache","$screenRowCache","$getRowCacheIndex","$docRowCache","getSplitIndex","currentIndex","prevIndex","endOfLine","$useWrapMode","splits","$wrapData","indent","substring","size","isFullWidth","getScreenTabSize","$main","substr","markAsDirty","updateCharacterWidths","$characterSize","bidiCharWidth","$measureCharWidth","setShowInvisibles","setEolChar","eolChar","setContentWidth","isRtlLine","setRtlDirection","getCursorPosition","getSelectionAnchor","$bidiHandler","removeInLine","getPosLeft","col","leftBoundary","logicalIdx","getOverwrite","visualIdx","getSelections","startCol","endCol","level","selections","selColMin","selColMax","isSelected","isSelectedPrev","visIdx","offsetToCol","posX","charWidth","Selection","getDocument","lead","createAnchor","$silent","$cursorChanged","$isEmpty","$keepDesiredColumnOnChange","$desiredColumn","$anchorChanged","getCursor","getPosition","setAnchor","getAnchor","getSelectionLead","isBackwards","$setSelection","MAX_VALUE","anchorRow","anchorColumn","cursorRow","cursorColumn","wasEmpty","wasMultiselect","$moveSelection","mover","moveCursorTo","moveTo","selectUp","moveCursorUp","selectDown","moveCursorDown","selectRight","moveCursorRight","selectLeft","moveCursorLeft","selectLineStart","moveCursorLineStart","selectLineEnd","moveCursorLineEnd","selectFileEnd","moveCursorFileEnd","selectFileStart","moveCursorFileStart","selectWordRight","moveCursorWordRight","selectWordLeft","moveCursorWordLeft","selectAWord","getAWordRange","excludeLastChar","foldLine","selectLine","moveCursorBy","wouldMoveIntoSoftTab","tabSize","isTabStop","getTabSize","getNavigateWithinSoftTabs","firstColumnPosition","screenToDocumentPosition","leadingSpace","getDisplayLine","$useEmacsStyleLineStart","lineEnd","getDocumentLastRowColumnPosition","textEnd","search","moveCursorLongWordRight","rightOfCursor","nonTokenRe","tokenRe","moveCursorLongWordLeft","getFoldStringAt","leftOfCursor","$shortWordEndIndex","whitespaceRe","moveCursorShortWordRight","moveCursorShortWordLeft","$selectLongWords","rows","offsetX","lineWidgets","widget","rowsAbove","rowCount","keepDesiredColumn","moveCursorToScreen","desiredColumn","r","getRangeOfMovements","func","toJSON","rangeCount","ranges","r1","fromJSON","rangeList","toSingleRange","addRange","MAX_TOKEN_COUNT","Tokenizer","rules","states","regExps","matchMappings","ruleRegExps","matchTotal","mapping","defaultToken","flag","splitterRurles","rule","caseInsensitive","unicode","regex","adjustedregex","matchcount","token","groupCount","tokenArray","onMatch","$arrayTokens","$applyToken","digit","removeCapturingGroups","splitRegex","createSplitterRegexp","$setMaxTokenCount","tokens","stack","inChClass","lastCapture","parenOpen","parenClose","square","getLineTokens","startState","currentState","matchAttempts","skipped","consumeLineEnd","merge","unshift","TextHighlightRules","$rules","addRules","prefix","nextState","getRules","embedRules","HighlightRules","escapeRules","append","$embeds","getEmbeds","pushState","popState","normalizeRules","processState","processed","toInsert","stateName","includeName","noEscape","keywordMap","createKeywordMapper","ignoreCase","splitChar","keywords","$keywordList","list","word","getKeywords","$keywords","Behaviour","$behaviours","addBehaviours","behaviours","inherit","getBehaviours","TokenIterator","initialRow","initialColumn","$session","$row","$rowTokens","getTokens","getTokenAt","$tokenIndex","stepBackward","stepForward","getCurrentToken","getCurrentTokenRow","getCurrentTokenColumn","rowTokens","tokenIndex","getCurrentTokenPosition","getCurrentTokenRange","SAFE_INSERT_IN_TOKENS","SAFE_INSERT_BEFORE_TOKENS","contextCache","defaultQuotes","initContext","multiSelect","autoInsertedBrackets","autoInsertedRow","autoInsertedLineEnd","maybeInsertedBrackets","maybeInsertedRow","maybeInsertedLineStart","maybeInsertedLineEnd","getWrapped","opening","closing","rowDiff","CstyleBehaviour","getWrapBehavioursEnabled","isSaneInsertion","braces","recordAutoInsert","recordMaybeInsert","$findOpeningBracket","isAutoInsertedClosing","popAutoInsertedClosing","isMaybeInsertedClosing","clearMaybeInsertedClosing","openBracePos","findMatchingBracket","next_indent","$getIndent","getTabString","quotes","$mode","$quotes","lineCommentStart","quote","leftChar","rightChar","rightToken","pair","stringBefore","stringAfter","wordRe","isWordBefore","isWordAfter","pairQuotesAfter","$pairQuotesAfter","charBefore","closeDocComment","$matchTokenType","iterator2","bracket","wordChars","code","Mode","$defaultBehaviour","getTokenizer","$tokenizer","$highlightRules","$highlightRuleConfig","blockComment","toggleCommentLines","ignoreBlankLines","shouldRemove","minIndent","Infinity","insertAtTabStop","regexpStart","getUseSoftTabs","uncomment","shouldInsertSpace","commentWithSpace","comment","insertInLine","testRemove","before","after","spaces","lineCommentEnd","regexpEnd","iter","fun","minEmptyLength","floor","toggleBlockComment","colDiff","initialRange","startRange","endRange","getNextLineIndent","tab","checkOutdent","input","autoOutdent","createWorker","createModeDelegates","delegations","scope","functionName","$delegator","method","language","transformAction","param","$behaviour","completionKeywords","ruleItr","aLength","$createKeywordList","getCompletions","score","meta","applyDelta","docLines","doNotValidate","Anchor","$onChange","$clipPositionToDocument","point","moveIfEqual","deltaIsInsert","deltaRowShift","deltaColShift","deltaStart","deltaEnd","$pointsInOrder","$getTransformedPoint","$insertRight","noClip","point1","point2","equalPointsInOrder","bColIsAfter","Document","textOrLines","insertMergedLines","setValue","getAllLines","getNewLineCharacter","$detectNewLine","$autoNewLine","$newLineMode","setNewLineMode","newLineMode","getNewLineMode","isNewLine","getLines","getLinesForRange","insertLines","insertFullLines","removeLines","removeFullLines","insertNewLine","$split","clonePos","$clipPosition","deleteFirstNewLine","deleteLastNewLine","deletedLines","removeNewLine","applyDeltas","deltas","revertDeltas","revertDelta","isInsert","$splitAndapplyLargeDelta","$safeApplyDelta","docLength","MAX","to","chunk","indexToPosition","newlineLength","positionToIndex","BackgroundTokenizer","tokenizer","running","currentLine","$worker","workerStart","endLine","startLine","processedLines","$tokenizeRow","fireUpdateEvent","setTokenizer","setDocument","first","scheduleStart","$updateOnChange","getState","cleanup","SearchHighlight","clazz","setRegexp","update","markerLayer","renderedMarkerRanges","MAX_RANGES","rangeToAddMarkerTo","rangeAsString","drawSingleLineMarker","UndoManager","$maxRev","$fromUndo","$undoDepth","reset","addSession","allowMerge","$lastDelta","$keepRedoStack","$redoStack","lastDeltas","undoStackLength","$undoStack","$rev","addSelection","rev","startNewGroup","markIgnored","ignore","getSelection","getRevision","getDeltas","getChangedRanges","getChangedLines","undo","dontSelect","deltaSet","swapped","swapGroups","rearrangeUndoStack","$redoStackBaseRev","undoSelectionRange","undoChanges","$syncRev","redo","diff","redoStack","deltaSets","moveDeltasByOne","rebaseRedoStack","redoSelectionRange","redoChanges","nextDelta","mark","canUndo","canRedo","bookmark","isAtBookmark","json","$prettyPrint","stringifyDelta","hasRedo","isClean","markClean","stringifyRange","swap","d1","d2","i1","i2","ds1","ds2","selectionBefore","selectionAfter","xform","c1","splitDelta","shiftPos","rowsBefore","otherLines","cloneDelta","xformed","FoldLine","foldData","folds","setFoldLine","shiftRow","sameRow","containsRow","walk","lastEnd","isNewRow","placeholder","getNextFoldTo","kind","addRemoveChars","log","foldBefore","newFoldLine","foldLineNext","idxToPosition","idx","lastFoldEndColumn","RangeList","$bias","pointIndex","excludeEdges","startIndex","addList","removed","substractPoint","containsPoint","rangeAtPoint","clipped","removeAll","lineDif","Fold","subFolds","subFold","collapseChildren","addSubFold","consumePoint","afterStart","firstConsumed","consumedFolds","restoreRange","restorePoint","Folding","side","getFoldsInRange","foldLines","$foldData","foundFolds","getFoldsInRangeList","getAllFolds","trim","lastFold","startFoldLine","getNextFoldLine","getFoldedRowCount","$addFoldLine","added","$clipRangeToDocument","startFold","endFold","removeFolds","$updateWrapData","$updateRowLengthCache","$modified","addFolds","$updating","cloneFolds","foldAll","expandFolds","unfold","expandInner","outermostFolds","isRowFolded","startFoldRow","getRowFoldEnd","getRowFoldStart","getFoldDisplayLine","textLine","lastColumn","$cloneFoldData","fd","toggleFold","tryToUnfold","bracketPos","getCommentFoldRange","depth","getFoldWidget","getFoldWidgetRange","foldToLevel","foldAllComments","$foldStyles","$foldStyle","setFoldStyle","$foldMode","$setFolding","foldMode","$updateFoldWidgets","$tokenizerUpdateFoldWidgets","updateFoldWidgets","tokenizerUpdateFoldWidgets","ignoreCurrent","fw","children","siblings","$toggleFoldWidget","toggleFoldWidget","toggleParent","BracketMatch","chr","charBeforeCursor","$findClosingBracket","getMatchingBracketRanges","bracketsRegExp","$brackets","typeRe","openBracket","valueIndex","closingBracket","valueLength","getMatchingTags","$findTagName","$findClosingTag","$findOpeningTag","found","backward","prevToken","currentTag","openTagStart","openTagName","foundOpenTagEnd","openTagEnd","closeTagStart","closeTagName","closeTagEnd","openTag","closeTag","stepCount","tmpToken","TextMode","EditSession","$breakpoints","$decorations","$frontMarkers","$backMarkers","$markerId","$undoSelect","$uid","bgTokenizer","onChangeFold","setMode","destroyed","resetCaches","$resetRowCache","cacheArray","low","mid","$rowLengthCache","removedFolds","$updateInternalDataOnChange","$undoManager","mergeUndoDeltas","$informUndoManager","setUndoManager","JSON","parse","undoManager","history","editSession","setAnnotations","setBreakpoints","breakpoints","setScrollLeft","setScrollTop","scrollTop","$scrollLeft","$scrollTop","$syncInformUndoManager","markUndoGroup","$defaultUndoManager","setUseSoftTabs","$useSoftTabs","$indentWithTabs","setTabSize","$tabSize","setNavigateWithinSoftTabs","navigateWithinSoftTabs","$navigateWithinSoftTabs","setOverwrite","overwrite","$overwrite","toggleOverwrite","addGutterDecoration","removeGutterDecoration","getBreakpoints","clearBreakpoints","setBreakpoint","clearBreakpoint","inFront","addDynamicMarker","markerId","getMarkers","highlight","$searchHighlight","highlightLines","getAnnotations","clearAnnotations","inToken","wordRange","setUseWorker","useWorker","getUseWorker","$useWorker","onReloadTokenizer","$onChangeMode","$modeId","$isPlaceholder","oldMode","$stopWorker","$startWorker","attachToSession","wrapMethod","$wrapMethod","foldingRules","terminate","getMode","isNaN","getScrollLeft","getScreenWidth","$computeWidth","getLineWidgetMaxWidth","screenWidth","lineWidgetsWidth","lineWidgetWidth","force","$wrapLimit","longestScreenLine","foldIndex","foldStart","$getStringScreenWidth","$getUndoSelection","setUndoSelect","enable","isUndo","fromRange","toPosition","toRange","collDiff","oldStart","newStart","indentRows","indentString","outdentRows","rowRange","deleteRange","$moveLines","$clipRowToDocument","moveLinesUp","moveLinesDown","duplicateLines","$clipColumnToRow","setUseWrapMode","useWrapMode","setWrapLimitRange","$wrapLimitRange","adjustWrapLimit","desiredLimit","$printMargin","limits","wrapLimit","$constrainWrapLimit","getWrapLimit","setWrapLimit","limit","getWrapLimitRange","foldLineBefore","wrapData","walkTokens","$getDisplayTokens","PLACEHOLDER_START","PLACEHOLDER_BODY","$computeWrapSplits","displayLength","lastSplit","lastDocSplit","isCode","$wrapAsCode","indentedSoftWrap","$indentedSoftWrap","maxIndent","addSplit","indentation","SPACE","TAB","TAB_SPACE","getWrapIndent","minSplit","PUNCTUATION","CHAR_EXT","CHAR","maxScreenColumn","screenColumn","getRowLength","getRowLineCount","getRowWrapIndent","getScreenLastRowColumn","documentToScreenColumn","getDocumentLastRowColumn","docColumn","getRowSplitData","screenToDocumentRow","screenToDocumentColumn","rowLength","doCache","maxRow","foldStartRow","wrapRow","screenRowOffset","getScreenLength","screenRows","$getWidgetScreenLength","$setFontMetrics","fm","$enableVarChar","getCharacterWidth","wrap","$wrap","firstLineNumber","useSoftTabs","foldStyle","Search","$matchIterator","sr","sc","er","ec","skipCurrent","findAll","needle","$assembleRegExp","$isMultiLine","prevRange","replacement","preserveCase","$disableFakeMultiline","caseSensitive","$supportsUnicodeFlag","wholeWord","wordBoundary","firstChar","needleArray","lastChar","addWordBoundary","$assembleMultilineRegExp","backwards","forEachInLine","MultiHashHandler","$singleCommand","commandKeyBinding","addCommands","addCommand","removeCommand","bindKey","_buildKeyHash","keepCommand","ckb","keyId","cmdGroup","keyPart","chain","binding","parseKeys","_addCommandToBinding","removeCommands","bindKeys","keyList","$keyChain","isDefault","HashHandler","CommandManager","byName","$checkCommandState","isAvailable","returnValue","toggleRecording","$inReplay","recording","macro","$addCommandToMacro","oldMacro","replay","trimMacro","mac","description","showSettingsMenu","showErrorMarker","scrollIntoView","centerSelection","gotoLine","prompt","$type","multiSelectAction","getAllRanges","findNext","findPrevious","aceCommandGroup","navigateFileStart","navigateUp","times","navigateFileEnd","navigateDown","navigateWordLeft","navigateLineStart","navigateLeft","navigateWordRight","navigateLineEnd","navigateRight","selectPageDown","scrollPageDown","gotoPageDown","selectPageUp","scrollPageUp","gotoPageUp","jumpToMatching","$copyWithEmptySelection","$handlePaste","duplicateSelection","sortLines","modifyNumber","copyLinesUp","copyLinesDown","removeToLineStart","removeToLineEnd","removeWordLeft","removeWordRight","blockOutdent","blockIndent","splitLine","transposeLetters","transposeSelections","autoIndent","openLink","firstLineEndCol","selectedCount","insertLine","curLine","newRanges","exitMultiSelectMode","LineWidgets","widgetManager","updateOnChange","renderWidgets","measureWidgets","_changedWidgets","$onChangeEditor","updateOnFold","_inDocument","removeLineWidget","$updateRows","noWidgets","$oldWidget","$registerLineWidget","addLineWidget","zIndex","coverGutter","pixelHeight","$fold","onWidgetChanged","w1","getWidgetsAtRow","updateFull","changedWidgets","fixedWidth","ceil","coverLine","gutterWidth","fullWidth","padding","scrollBar","GutterKeyboardHandler","gutterLayer","activeRowIndex","activeLane","annotationTooltip","$onGutterKeyDown","$blurGutter","isRowVisible","scrollToLine","$rowToRowIndex","$cursorCell","nearestFoldIndex","$findNearestFoldWidget","nearestAnnotationIndex","$findNearestAnnotation","$focusAnnotation","$focusFoldWidget","$handleGutterKeyboardInteraction","GutterKeyboardEvent","lane","$switchLane","$rowIndexToRow","rowFoldingWidget","$blurFoldWidget","cells","childNodes","$moveFoldWidgetDown","$moveAnnotationDown","$moveFoldWidgetUp","$moveAnnotationUp","$blurAnnotation","$isFoldWidgetVisible","isRowFullyVisible","isIconVisible","$getFoldWidget","$isAnnotationVisible","$getAnnotation","foldWidget","keyboardFocusClassName","desinationLane","annotationIndex","foldWidgetIndex","cell","gutterKeyboardHandler","getKey","getRow","isInAnnotationLane","isInFoldLane","defaultCommands","Editor","getContainerElement","getTextAreaContainer","textarea","keyBinding","$search","$historyTracker","$initOperationListeners","_$emitInputEvent","setSession","$opResetTimer","$lastSel","commandEvent","prevOp","previousCommand","scrollSelectionIntoView","animateScrolling","sel","$mergeUndoDeltas","prev","mergeableCommands","$mergeableCommands","shouldMerge","mergeNextCommand","sequenceStartTime","keyboardHandler","$keybindingId","oldSession","$onDocumentChange","$onTokenizerUpdate","$onChangeTabSize","$onChangeWrapLimit","$onChangeWrapMode","$onChangeFold","$onChangeFrontMarker","$onChangeBackMarker","$onChangeBreakpoint","$onChangeAnnotation","$onCursorChange","$onScrollTopChange","$onScrollLeftChange","$onSelectionChange","onDocumentChange","onChangeMode","onTokenizerUpdate","onChangeTabSize","onChangeWrapLimit","onChangeWrapMode","onChangeFrontMarker","onChangeBackMarker","onChangeBreakpoint","onChangeAnnotation","onCursorChange","onScrollTopChange","onScrollLeftChange","onSelectionChange","oldEditor","getSession","resize","onResize","getTheme","getFontSize","setFontSize","$highlightBrackets","$highlightPending","$bracketHighlight","markerIds","$getDirectionForHighlight","tagNamesRanges","getMatching","markerType","getHighlightIndentGuides","$textLayer","$highlightIndentGuide","$isFocused","showCursor","visualizeFocus","hideCursor","visualizeBlur","$cursorChange","updateCursor","$updateHighlightActiveLine","updateLines","scrollToY","scrollToX","$highlightActiveLine","$selectionStyle","$selectionColorConflict","$maxLines","$minLines","$highlightLineMarker","$selectionMarker","$highlightSelectedWord","$getSelectionHighLightRegexp","wordWithBoundary","updateFrontMarkers","updateBackMarkers","updateBreakpoints","updateText","getSelectedText","nl","copyLine","inVirtualSelectionMode","isFullLine","getBehavioursEnabled","lineState","shouldOutdent","$enableAutoIndent","lineIndent","selectedRange","currIndent","prevLineState","composition","applyComposition","forEachSelection","setScrollSpeed","getScrollSpeed","setDragDelay","setSelectionStyle","setHighlightActiveLine","shouldHighlight","getHighlightActiveLine","setHighlightGutterLine","getHighlightGutterLine","setHighlightSelectedWord","getHighlightSelectedWord","setAnimatedScroll","shouldAnimate","getAnimatedScroll","getShowInvisibles","setDisplayIndentGuides","getDisplayIndentGuides","setHighlightIndentGuides","setShowPrintMargin","showPrintMargin","getShowPrintMargin","setPrintMarginColumn","getPrintMarginColumn","setBehavioursEnabled","enabled","setWrapBehavioursEnabled","setShowFoldWidgets","getShowFoldWidgets","setFadeFoldWidgets","fade","getFadeFoldWidgets","new_range","setGhostText","removeGhostText","originalRange","$getSelectedRows","getNumberAt","_numberRx","amount","charRange","isFinite","nr","fp","decimals","nnr","toFixed","replaceRange","toggleWord","currWordStart","wordParts","curLength","itLength","that","reg","wordPairs","$toggleWordPairs","negate","firstCondition","res","findLinkAt","columnPosition","previousPosition","currentPosition","wordParts_1","wordParts_1_1","endPoint","moved","totalDiff","rangeIndex","subRows","compositionState","showComposition","setCompositionText","hideComposition","getFirstVisibleRow","getLastVisibleRow","getFirstFullyVisibleRow","getLastFullyVisibleRow","$getVisibleRowCount","getScrollBottomRow","getScrollTopRow","$moveByPage","scrollToRow","center","animate","alignCursor","getCursorPositionScreen","expand","tokenCount","matchType","bracketType","brackets","tagsRanges","lineNumber","navigateTo","replaced","$tryReplace","replaceAll","getLastSearchOptions","newRange","revealRange","setAutoScrollEditorIntoView","shouldScroll","$scrollAnchor","scrollAnchor","onChangeSelection","onBeforeRender","onAfterRender","searchBox","$pixelPos","$cursorStyle","cursorLayer","setSmoothBlinking","isBlinking","selectionStyle","highlightActiveLine","highlightSelectedWord","copyWithEmptySelection","behavioursEnabled","wrapBehavioursEnabled","enableAutoIndent","autoScrollEditorIntoView","showLineNumbers","setShowLineNumbers","$loop","CHANGE_GUTTER","$relativeLineNumbers","relativeNumberRenderer","relativeLineNumbers","$showLineNumbers","$updatePlaceholder","hasValue","$composition","placeholderNode","$placeholder","content","blurCommand","focusOnEnterKeyup","customScrollbar","hScrollBarAlwaysVisible","vScrollBarAlwaysVisible","highlightGutterLine","animatedScroll","printMarginColumn","printMargin","fadeFoldWidgets","showFoldWidgets","displayIndentGuides","highlightIndentGuides","showGutter","fontFamily","maxLines","minLines","scrollPastEnd","fixedWidthGutter","hasCssTransforms","maxPixelHeight","useResizeObserver","useSvgGutterIcons","showFoldedAnnotations","getText","lastLineNumber","$renderer","Lines","canvasHeight","cellCache","$offsetCoefficient","moveContainer","firstRowScreen","pageChanged","oldConfig","newConfig","computeLineTop","screenTop","screenPage","computeLineHeight","$cacheCell","fragment","insertAdjacentElement","createCell","initElement","Gutter","parentEl","$showFoldWidgets","$updateAnnotations","rowInfo","annoText","annoType","gutterOffset","oldLastRow","$updateCursorRow","onCreateCell","$renderCell","$updateGutterWidth","gutterRenderer","$firstLineNumber","lastLineText","$fixedWidth","$padding","$computePadding","$highlightGutterLine","$cursorRow","updateLineHighlight","scrollLines","$renderLines","textNode","annotationNode","annotationIconNode","decorations","rowText","foldClass","isClosedFold","foldAnnotationClass","annotationInFold","foldRange","getShowLineNumbers","paddingLeft","borderRightWidth","paddingRight","Marker","setPadding","setMarkers","markers","elt","css","$getTop","drawFullLineMarker","drawScreenLineMarker","drawTextMarker","drawMultiLineMarker","childElementCount","lastChild","stringBuilder","extraStyle","curr","lineRange","range1","drawBidiSingleLineMarker","radiusClass","extraLength","textTokens","Set","isTextToken","tokenType","has","Text","$updateEolChar","EOL_CHAR","EOL_CHAR_LF","EOL_CHAR_CRLF","margin","getLineHeight","$fontMetrics","measure","$pollSizeChanges","checkForSizeChanges","$pollSizeChangesTimer","$computeTabString","showSpaces","showTabs","showEOL","$highlightIndentGuides","tabStr","$tabStrings","span","TAB_CHAR","$indentGuideRe","spaceClass","spaceContent","SPACE_CHAR","tabClass","tabContent","lineElements","lineElementsIdx","heightChanged","lineElement","$renderLine","$renderLinesFragment","lineEl","$useLineGroups","$renderToken","valueFragment","simpleSpace","controlCharacter","cjkSpace","cjk","cloneNode","renderIndentGuide","cols","$highlightIndentGuideMarker","indentLevel","initialIndent","elementIndentLevel","currentIndent","$renderHighlightIndentGuide","$clearActiveIndentGuide","$setIndentGuideActive","$createLineElement","$renderWrappedLine","splitChars","$renderOverflowMessage","$renderSimpleLine","overflowEl","$getFoldLineTokens","lastLineEl","invisibleEl","EOF_CHAR","renderTokens","addTokens","Cursor","isVisible","blinkInterval","smoothBlinking","cursors","addCursor","$updateCursors","$updateOpacity","$startCssAnimation","animationDuration","$isAnimating","$stopCssAnimation","blinking","restartTimer","setBlinkInterval","removeCursor","intervalId","timeoutId","$isSmoothBlinking","blink","onScreen","isCursorInView","pixelPos","$selectionMarkers","cursorIndex","drawCursor","$setOverwrite","MAX_SCROLL_H","Scrollbar","classSuffix","setVisible","skipEvent","onScroll","coeff","VScrollBar","scrollHeight","$scrollbarWidth","$minWidth","setHeight","setScrollHeight","setInnerHeight","HScrollBar","setWidth","setInnerWidth","setScrollWidth","ScrollBar","ScrollBarV","ScrollBarH","VScrollWidth","HScrollHeight","eType","mousePageY","startTop","thumbTop","scrollTopFromThumbTop","thumbHeight","pageHeight","viewHeight","slideHeight","scrollWidth","mousePageX","startLeft","thumbLeft","scrollLeftFromThumbLeft","thumbWidth","pageWidth","viewWidth","slideWidth","RenderLoop","onRender","pending","changes","$recursionLimit","_flush","change","clear","CHAR_COUNT","USE_OBSERVER","ResizeObserver","FontMetrics","$setMeasureNodeStyles","$measureNode","$addObserver","isRoot","visibility","font","$measureSizes","fontWeight","boldSize","charSizes","allowBoldFonts","$observer","observe","setPolling","disconnect","$getZoom","zoom","$initTransformMeasureNodes","transformCoordinates","clientPos","elPos","solve","l1","l2","det","sub","mul","m2","ut","u","f","Decorator","canvas","pixelRatio","heightRatio","canvasWidth","minDecorationHeight","halfMinDecorationHeight","colors","dark","light","$updateDecorators","ctx","getContext","clearRect","priorities","compensateFold","compensateFoldRows","currentY","y1","y2","yCenter","fillStyle","fillRect","GutterLayer","MarkerLayer","TextLayer","CursorLayer","HScrollBarCustom","VScrollBarCustom","editorCss","VirtualRenderer","onGutterResize","$markerBack","textLayer","$markerFront","$horizScroll","$vScroll","$scrollAnimation","scrollMargin","updateCharacterSize","$size","scrollerHeight","scrollerWidth","$dirty","minHeight","v","$renderChanges","defaultView","CHANGE_FULL","$addResizeObserver","$allowBoldFonts","$updatePrintMargin","onChangeNewLineMode","$changedLines","CHANGE_LINES","CHANGE_TEXT","CHANGE_MARKER","updateFontSize","$updateSizeAsync","resizing","$updateCachedSize","$resizeTimer","$changes","$customScrollbar","$updateCustomScrollbar","$extraHeight","oldSize","CHANGE_SIZE","CHANGE_SCROLL","$showGutter","$computeLayerConfig","availableWidth","$showPrintMargin","$printMarginColumn","$animatedScroll","getShowGutter","setShowGutter","$printMarginEl","containerEl","posTop","posLeft","setScrollMargin","sm","setMargin","getHScrollBarAlwaysVisible","$hScrollBarAlwaysVisible","setHScrollBarAlwaysVisible","alwaysVisible","getVScrollBarAlwaysVisible","$vScrollBarAlwaysVisible","setVScrollBarAlwaysVisible","$updateScrollBarV","$scrollPastEnd","$updateScrollBarH","freeze","$frozen","unfreeze","CHANGE_H_SCROLL","st","$scrollDecorator","$updateLines","CHANGE_CURSOR","CHANGE_MARKER_FRONT","CHANGE_MARKER_BACK","$autosize","desiredHeight","$maxPixelHeight","$gutterWidth","hideScrollbars","longestLine","$getLongestLine","horizScroll","hScrollChanged","vScrollBefore","vScrollChanged","firstRowHeight","lineCount","charCount","$viewMargin","newLeft","newTop","topMargin","bottomMargin","$stopAnimation","currentTop","currentLeft","twoCharsWidth","alignment","$calcSteps","fromValue","toValue","x_min","STEPS","steps","initialScroll","oldSteps","$timer","endAnimation","scrollTo","canvasPos","$hasCssTransforms","$blockCursor","$useTextareaForIME","addToken","removeExtraToken","insertPosition","textLines","$ghostText","$ghostTextWidget","pixelPosition","ghostTextHeight","newToken","$themeId","$theme","setMouseCursor","attachToShadowRoot","$resizeObserver","contentRect","workerUrl","Worker","blob","Blob","blobBuilder","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","getBlob","$workerBlob","blobURL","URL","webkitURL","createObjectURL","WorkerClient","worker","$createWorkerFromOldConfig","$sendDeltaQueue","changeListener","onMessage","callbackId","callbacks","onmessage","topLevelNamespaces","classname","importScripts","nameToUrl","toUrl","normalizePath","$normalizePath","tlns","deltaQueue","onerror","$doc","cmd","emit","ex","attachToDocument","q","UIWorkerClient","main","emitSync","sender","messageBuffer","workerClient","processNext","setEmitSync","Main","PlaceHolder","others","mainClass","othersClass","$onUpdate","onUpdate","$others","undoStack","$undostack","$undoStackDepth","setup","other","showOtherMarkers","othersActive","hideOtherMarkers","updateAnchors","lengthDiff","inMainRange","distanceFromStart","newPos","otherPos","updateMarkers","updateMarker","undosRequired","isSamePoint","alt","ctrl","accel","selectionMode","isMultiSelect","mouseX","mouseY","screenAnchor","screenCursor","$enableJumpToDef","$blockSelectEnabled","addSelectionMarker","oldRange","removeSelectionMarker","tmpSel","rectSel","blockSelect","newCursor","removeSelectionMarkers","rectangularRangeBlock","updateSelectionMarkers","onSelectionInterval","selectMoreLines","selectMore","joinSelections","splitIntoLines","alignCursors","multiSelectCommands","getSelectionMarkers","$blockChangeEvents","$onAddRange","$onRemoveRange","mergeOverlappingRanges","lastRange","$initRangeList","toggleBlockSelection","includeEmptyLines","xBackwards","startOffsetX","endOffsetX","docEnd","yBackwards","MultiSelect","$multiselectOnSessionChange","$onMultiSelect","$onSingleSelect","onSessionChange","$checkMultiselectChange","altCursor","altDown","addAltCursorListeners","selectionMarkerCount","markerList","$onMultiSelectExec","inVirtualMode","keepOrder","$byLines","cmdResult","anim","buf","additive","skip","screenLead","toRemove","words","stopAtFirst","sameRowRanges","maxCol","minSpace","spaceOffsets","spaceOffset","fr","lr","guessRange","$reAlignText","forceLeft","startW","textW","endW","isLeftAligned","isRightAligned","alignLeft","enableMultiselect","enableBlockSelect","FoldMode","foldingStartMarker","foldingStopMarker","indentationBlock","startLevel","openingBracketBlock","closingBracketBlock","oldWidget","gutterAnno","comparator","binarySearch","matched","findAnnotations","arrow","onmousedown","Renderer","edit","_id","env","tagName","oldNode","createEditSession","is","singletonTags","blockTags","formatOptions","lineBreaksAfterCommasInCurlyBlock","beautify","nextToken","tabString","breakBefore","spaceBefore","spaceAfter","lastDepth","lastIndent","unindent","roundDepth","curlyDepth","curRow","rowsToAdd","indentNextLine","inTag","inCSS","inBlock","parents","caseBody","trimNext","trimLine","trimCode","trimRight","trimLeft","searchboxCss","SearchBox","showReplaceForm","spellcheck","title","setEditor","searchRange","$syncOptions","$initElements","sb","replaceBox","searchOption","replaceOption","regExpOption","caseSensitiveOption","wholeWordOption","searchInput","replaceInput","searchCounter","activeInput","$searchBarKb","setSearchRange","searchRangeMarker","checked","noMatch","updateCounter","MAX_COUNT","findPrev","replaceAndFindNext","active","$closeSearchBarKb","isReplace","supportType","supportFunction","supportConstant","supportConstantColor","supportConstantFonts","numRe","pseudoElements","pseudoClasses","CssHighlightRules","keywordMapper","strings","escapes","MatchingBraceOutdent","propertyMap","CssCompletions","completionsDefined","defineCompletions","inParens","getPropertyValueCompletions","getPropertyCompletions","skipSemicolon","caption","snippet","CssBehaviour","BaseFoldMode","commentRegex","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","forceMultiline","getCommentRegionBlock","getSectionRange","startIndent","subRange","CStyleFoldMode","$outdent","$completer","snippetFileId","DocCommentHighlightRules","getTagRule","getStartRule","getEndRule","GolangHighlightRules","stringEscapeRe","tokenizedLine","JsDocCommentHighlightRules","identifierRe","JavaScriptHighlightRules","escapedRe","comments","noES6","no_regex","jsx","JSX","tagRegex","jsxTag","jsxJsRule","jsxAttributes","reference","endState","results","JsonHighlightRules","JsxHighlightRules","buildinConstants","reserved","PythonHighlightRules","strPre","strRawPre","strFormatPre","strRawFormatPre","integer","intPart","pointFloat","floatNumber","stringEscape","PythonFoldMode","outdents","XmlHighlightRules","normalize","processing_instruction","doctype","int_subset","cdata","attr_reference","tag_whitespace","whitespace","attribute_value","embedTagRules","XmlBehaviour","rightSpace","tokenEndColumn","tokenRow","tokenColumn","voidElements","nextIndent","optionalEndTags","Tag","selfClosing","_getFirstTagInLine","_findEndTagInLine","getCommentFoldWidget","tags","XmlFoldMode","createRoot","hydrateRoot","hasElementType","Element","hasMap","Map","hasSet","hasArrayBuffer","ArrayBuffer","isView","equal","it","entries","flags","valueOf","$$typeof","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","amdD","getter","__esModule","definition","prop","toStringTag","nmd","paths","createContext","Icon","family","weight","rest","getCSSClasses","propTypes","isRequired","ItemTrigger","collapsed","toggleChange","useContext","iconType","trigger","onClick","AccordionItem","collapsedProp","ref","setCollapsed","useState","useMemo","expandToContent","contextValue","Provider","defaultProps","forwardRef","AccordionItemHeader","usearrowastrigger","getSize","componentSize","setComponentSize","current","handleResize","useCallback","useLayoutEffect","resizeObserver","savedHandler","useRef","useEffect","eventListener","Collapsible","contentContainer","collapseWrapper","refContainerSize","contentContainerStyle","setContentContainerStyle","onWindowResize","CSSTransition","onEnter","onExit","in","classNames","AccordionItemContent","Accordion","Item","Header","Content","Button","customButton","iconFamily","iconPosition","iconOnly","noStyle","getCssClasses","cssClasses","sizeClass","disabledClass","displayClass","themeClass","iconOnlyClass","noStyleClass","getButtonIcon","buttonType","cloneElement","getButtonType","ButtonGroup","CardHeader","CardBody","align","CardFooter","CardTitle","CardTitleGroup","CardSubTitle","CardSummary","CardTitleIcon","Card","Body","Footer","Title","TitleGroup","SubTitle","Summary","wait","immediate","callNow","Loader","withbackground","Message","onClose","noMargin","Chart","areaStyleColors","dataLoaded","hasData","series","zoomStart","zoomEnd","seriesConfig","noDataComponent","noDataComponentProp","zoomColors","tykChartInstance","setTykChartInstance","chartWrapperRef","lineBarChart","defaultOpts","fromJS","color","toolbox","orient","itemSize","showTitle","feature","dataZoom","dataBackground","lineStyle","areaStyle","handleStyle","textStyle","borderColor","fillerColor","legend","axisPointer","grid","containLabel","xAxis","boundaryGap","axisLine","axisTick","yAxis","axisLabel","animationEasing","seriesDefault","LinearGradient","smooth","symbolSize","pieChart","formatter","radius","avoidLabelOverlap","animationType","labelLine","normal","length2","geoChart","dispose","eventCallBack","debouncedMethod","debounce","getZr","prevInstance","prevOption","prevType","prevSeries","equals","selectedType","selectedOptions","selectedSeries","finalOpts","mergeDeep","toJS","entry","seriesData","buildChartOptions","dispatchAction","dataZoomSelectActive","seriesIndex","dataIndex","prevZoomStart","prevZoomEnd","startValue","endValue","chartHasData","getStyle","memo","savedCallback","ToastMessage","handleClose","itemIndex","ToastContainer","notify","updateNotifications","msgID","random","prevMessages","onMessageClosed","newMessages","fn","createNotification","render","bindNotify","danger","CopyToClipboard","txtRef","createRef","onKeyUp","ModalFooter","ModalBody","Modal","disableCloseCommands","opened","showBackdrop","restProps","modalClasses","backdropClasses","themeIcon","onKeyDown","Confirm","confirmBtnText","cancelBtnText","setOpen","setCallback","cancelCallback","setCancelCallback","callbackFunc","cancelCallbackFunc","beforeCallback","FixedWrapper","showShadow","fixedWrapperRef","attachShadow","scrollY","debouncedAttachShadow","InfiniteScroller","hasMore","initialLoad","loadMore","pageNumber","refChild","showLoader","setShowLoader","containerRef","refChildSize","shouldLoad","loadMoreData","prevPageNumber","scrollHandler","prevRefChildSize","PropTypes","oneOfType","arrayOf","bool","instanceOf","FloatingContainer","forceDisplay","displayAxis","preferredPosition","infiniteScrollerConfig","localRef","floatingContainerRef","contentWrapperRef","viewportOffset","schedulePositionUpdate","topSpace","bottomSpace","leftSpace","hasTopSpace","hasBottomSpace","hasLeftSpace","hasRightSpace","positionedVerticallyFitsInViewport","positionedHorizontallyFitsInViewport","getDisplayForVertical","getDisplayForHorizontal","getDisplayWhereItFits","determineDisplay","targetPosition","vpLeft","vpTop","leftPos","auto","matchElement","matchStart","matchEnd","topPos","maxWidth","getStylesForTop","getStylesForBottom","getStylesForLeft","getStylesForRight","adjustPosition","createPortal","InfoNote","ListItem","List","labelwidth","flexBasis","styleCopy","structuredClone","getListStyle","NavBar","pre","subtitle","withTabs","subtitleContent","NavigationItem","Navigation","PortalContext","PanelBody","noPadding","Consumer","portalContext","collapsable","PanelFooter","PanelHeader","Component","HeaderTag","onToggle","collapsibleIconPosition","Panel","onToggleCollapse","collapsedState","setCollapsedState","handleToggle","panelTheme","collapsbleIconPosition","toggleCollapse","Pill","RevealPanelService","setRefs","wrapper","panel","unbindEvents","bindEvents","ensureRefs","mouseDown","initialRect","initialEvent","isPrimaryMouseButtonDown","newY","finalHeight","notifyListeners","buttons","heightVal","reason","isHidden","deinit","RevealPanelHeaderLeft","RevealPanelHeaderRight","mergeClasses","RevealPanel","onHeightChange","parentSelector","contentStyle","contentClassName","gutterClassName","wrapperClassName","panelRef","gutterRef","wrapperRef","panelService","useImperativeHandle","headerLeft","headerRight","contents","child","TempRevealPanel","HeaderLeft","HeaderRight","TabsContext","TabContent","addTab","hideTab","updateTab","showTab","selectedPath","tabData","tabsId","tabExists","rendered","hideTabContent","tabs","tempTabData","prevTabData","shouldRender","TabContext","Tab","tabsContext","tabContext","setPath","tempPath","Tabs","onTabChange","setTabs","setSelectedPath","setRendered","initialPath","setInitialPath","setCurrentSelectedPath","tempRendered","collapsible","prevTabs","tempTabs","tabsState","tempTabsState","toggleTab","getTabCssClass","tabId","genTabs","currentTabs","updateTabsList","icon","closable","isOpened","additionalClickParents","isActive","setIsActive","tooltipRef","activeEvents","onMouseEnter","onMouseLeave","handleDocumentClick","TextEllipsis","Pagination","totalNrOfPages","selectedPage","setSelectedPage","pagesArray","nrOfPages","pagesArr","currentNr","pageNr","at","getPagesArr","goToPage","tableContext","HeaderCell","sortable","sortOrder","setSortOrder","sendMessage","allRowsSelected","columns","selectable","generateSelectable","allowSelectAll","isCheckbox","Checkbox","displayError","displayNote","note","Cell","styling","events","Row","SelectableCheckbox","Table","noDataMessage","loading","infiniteScrolling","onChangeMsg","setOnChangeMsg","itemsListRef","sortRows","order","selectAllRows","selectRow","setPagination","pagination","api","getTable","every","totalPages","num","nrItemsOnPage","perPage","Column","cSize","cOffset","nogutters","DropdownContext","DropdownItem","customdropdownitem","eventKey","dropdownItemCLick","dropdownContext","itemProps","onSelectItem","selectedItem","showCheckmark","Dropdown","isElemInRightView","dropdownWidth","isElemInBottomView","dropdownHeight","elHeight","super","dropdownRef","dropdownListRef","dropdownButtonRef","toggleDropdown","handleClickOutside","componentDidMount","getStyles","componentDidUpdate","prevProps","closeDropdown","componentWillUnmount","itemId","closeOnSelect","onSelect","selectedItemProps","dropdownEl","offsetPosition","customTop","customLeft","getWrapperCssClasses","btnGroup","btnGroupSize","btnTheme","hasCustomContent","listclassnames","getBtnTitle","btnTitle","stopButtonTextChange","appendTo","btnClassName","btnSize","customBtnTitle","showDropdownIcon","showTriggerButton","DropdownWrapperTag","DropdownTrigger","splitTrigger","toggle","onTriggerClick","DropdownListWrapper","dropdownValue","Dropdown2","setSelectedValueAsTitle","setIsOpen","handleOutsideClick","triggerElement","CodeEditor","disableValidation","finalSetOptions","getCodeEditorError","getLabelStyles","getNonLabelWidth","handleOnChange","handleOnBlur","htmlFor","editorProps","$blockScrolling","editorInstance","getStateSelectedValues","multiple","Combobox","closeList","openList","filterByName","itemValue","inputValue","stateSelectedValues","searchText","comboboxRef","valuesListRef","inputRef","textRef","focusInput","handleItemsNavigation","handleComboboxDropdownClick","handleListItemClick","handlePillRemoveClick","manageSelectedTags","setInputWidth","unBindEvents","getDerivedStateFromProps","nextProps","stringify","filteredValues","filterValues","cursorNext","previousState","methodName","tempState","removeSelectedValue","allowCustomValues","getSearchText","getSelectedIndex","getListItemCssClasses","getComboboxListCssClass","themes","iTheme","getInputError","elWidth","getComboboxDisplayData","reduce","prevValue","tempValue","selectedIndex","selectedValues","isInInitialValues","addSelectedValue","manageSelectedValues","tempSelectedValues","tempStateSelectedValues","ok","searchItem","renderInput","visbility","renderDropdown","autoFocus","CustomListComponent","Value","tagSeparators","addTagOnBlur","renderValue","valueOverflow","dummyElementRef","setInputValue","inputWidth","entryFieldOnChange","dummy","triggerAction","textValue","isPlaceholder","renderCustomValue","entryFieldOnKeyDown","listRef","searchValue","activeItem","renderListItem","showSearch","block","isNoneSelected","renderSelectAllOption","Combobox2","propValue","propValues","maxProp","matchItemFn","renderList","renderListProp","onBeforeChange","floatingContainerConfig","expandMode","displayDropdownTrigger","required","validateOnChange","rootRef","comboboxControlRef","getValueFromProp","setValues","normalizeValue","setSearchValue","setActiveItem","setIsOpened","valuesExpanded","setValuesExpanded","localValidationError","setLocalValidationError","getThemeClasses","getFilteredValues","openDropdown","updateSearchValue","newSearchValue","fv","isValidValue","newValues","localError","updateValue","addTag","listValueIndex","lv","finalValue","selectValue","valIndex","with","selectAllValues","moveUpActiveItem","visibleItems","activeIndex","moveDownActiveItem","executeTriggerAction","onTagMessage","removeTag","renderIcon","sv","nv","vals","valuesElement","updateScroll","mobserver","MutationObserver","robserver","childList","subtree","currentValuesClasses","onClickCapture","existingVal","DatePicker","onOpen","pickerInstance","setPickerInstance","dateRef","hasValueChanged","prevDate","currentDate","getTime","diffDates","date","onDateChange","dateValue","instance","defaultDate","setDate","openCalendar","inputStyle","addonStyle","getInputField","dateFormat","_typeof","requiredArgs","isDate","toDate","argument","argStr","NaN","toInteger","dirtyNumber","startOfUTCISOWeek","dirtyDate","day","getUTCDay","setUTCDate","getUTCDate","setUTCHours","getUTCISOWeekYear","year","getUTCFullYear","fourthOfJanuaryOfNextYear","setUTCFullYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","defaultOptions","getDefaultOptions","startOfUTCWeek","_ref","_ref2","_ref3","_options$weekStartsOn","_options$locale","_options$locale$optio","_defaultOptions$local","_defaultOptions$local2","weekStartsOn","locale","RangeError","getUTCWeekYear","_options$firstWeekCon","firstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","addLeadingZeros","targetLength","sign","signedYear","month","getUTCMonth","getUTCHours","getUTCMinutes","getUTCSeconds","numberOfDigits","milliseconds","getUTCMilliseconds","G","localize","era","ordinalNumber","unit","lightFormatters","Y","signedWeekYear","weekYear","Q","quarter","M","week","firstWeek","startOfUTCWeekYear","getUTCWeek","I","isoWeek","fourthOfJanuary","startOfUTCISOWeekYear","getUTCISOWeek","D","dayOfYear","timestamp","setUTCMonth","difference","getUTCDayOfYear","E","dayOfWeek","localDayOfWeek","isoDayOfWeek","dayPeriodEnumValue","dayPeriod","hours","H","K","S","X","_localize","timezoneOffset","_originalDate","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","z","originalDate","T","dirtyDelimiter","absOffset","minutes","delimiter","dateLongFormatter","pattern","formatLong","timeLongFormatter","longFormatters","P","dateTimeFormat","matchResult","datePattern","timePattern","dateTime","protectedDayOfYearTokens","protectedWeekYearTokens","throwProtectedError","format","formatDistanceLocale","lessThanXSeconds","one","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","defaultWidth","formats","full","long","medium","short","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","buildLocalizeFn","dirtyIndex","valuesArray","formattingValues","defaultFormattingWidth","_defaultWidth","_width","argumentCallback","buildMatchFn","matchPattern","matchPatterns","defaultMatchWidth","matchedString","parsePatterns","defaultParseWidth","object","findKey","valueCallback","formatDistance","tokenValue","addSuffix","comparison","formatRelative","_date","_baseDate","_options","rem100","narrow","abbreviated","wide","am","pm","midnight","noon","morning","afternoon","evening","night","parsePattern","parseResult","any","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyFormatStr","_ref4","_options$locale2","_options$locale2$opti","_ref5","_ref6","_ref7","_options$locale3","_options$locale3$opti","_defaultOptions$local3","_defaultOptions$local4","formatStr","defaultLocale","isValid","utcDate","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","getTimezoneOffsetInMilliseconds","dirtyAmount","addMilliseconds","subMilliseconds","formatterOptions","firstCharacter","longFormatter","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","isProtectedDayOfYearToken","EditableListForm","getMainFormValue","components","mainFormValue","submitButtonRef","submitForm","errors","mainError","addValueOnFieldChange","getMainFormButtonWidth","createRefs","propsComponents","stateComponents","validateValue","getFormCssClasses","noLabels","getButtonClassName","buttonStyle","displayType","getComponentsError","errorPersist","validatorsNames","validate","validatorName","validator","validationmessages","hasMainFormErrors","resetForm","showMainError","onSubmit","validationmessage","buttonName","ComponentName","EditableList","getItemListValue","getListItemCssClass","buttonWidth","handleFormSubmit","dropdownListItemRef","addValues","triggerOnChange","handleItemUpdate","editMode","handleChildrenOnChange","getListItemsCssClass","getFormInputKey","getListItemText","itemData","separator","setItemEditMode","closeListItems","isInList","removeListItem","removedItem","valueArr","tempItemValue","nextValue","genListItem","clonedComponents","genList","appendToElement","formButtonTitle","formButtonStyle","addButtonName","onAddRow","ListHeader","fields","field","FieldsList","onDelete","rowIndex","tempField","EditableList2","hideOnEmpty","internalErrors","setInternalErrors","updateRowValue","fieldIndex","componentValue","tempValueArr","tempErrors","tempFieldError","Components","internalError","setInternalError","onFieldChange","errorMsg","deleteRow","rowValues","colValue","flat","hasErrors","FileInput","accept","fileInputRef","files","Input","getAddon","initValue","stateValue","isfield","inputgroupaddonleft","inputgroupaddonright","getInputGroupAddon","getInputComponent","autoComplete","Input2","getInputElement","MultiselectItem","itemType","isInSearchValue","fieldsToSearchOn","onAddRemove","itemDisplayTemplate","maxSelections","nrSelectedItems","onGetItemDetails","details","detailsDisplayTemplate","getItemContent","getItemLoader","MultiselectPanel","inputPlaceholder","noItemsMessage","items","onCustomSearch","customSearch","panelType","serverLoad","itemsPageNumber","itemsNrPages","loadMoreItems","searchOnChange","itemChanged","cloneItems","clonedItem","renderListItems","diffObjects","Multiselect","entityNamePlural","getItemDetails","setOpened","prevOpened","itemsChange","allItems","valueClone","valueChange","providerValue","Radio","nospace","Select","setStateValue","selectedValue","getSelectError","getSelectComponent","SelectableList","checkboxalticon","itemTemplate","primaryKey","handleOnSelect","newSelectedItems","elemPosition","getListItemCssClassName","tvalue","Textarea","ToggleItem","getNotchCssClasses","itemRef","saveSelectedRef","onItemSelected","ToggleItemWrapper","Toggle","onDark","separated","selectedRef","setSelectedRef","notchRef","toggleRef","positionNotch","selectedWidth","FORM_DEBOUNCE","setConfig","getValueFromPath","acc","form","properties","DEFAULT_DEBOUNCE_TIME_MS","myValue","setMyValue","getOnChangeProps","hasIsFieldProp","executeDebounced","valueOrEvent","nodeName","onChangeProps","formError","touched","submitCount","status","componentProps","hasOwn","FieldCodeEditor","FieldCombobox","getComboboxError","FieldDropdown","FieldPagination","FieldCombobox2","FormDatePicker","getDatePickerError","FieldEditableList","getEditableListError","FieldFileInput","FieldInput","FieldMultiselect","getMultiselectError","FieldSelect","handleEvent","FieldSelectableList","FieldToggle","useInterval"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/tyk-ui.css b/lib/tyk-ui.css index 4cf2b646..11401a40 100644 --- a/lib/tyk-ui.css +++ b/lib/tyk-ui.css @@ -1,7 +1,20 @@ a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{border:0;font:inherit;font-size:100%;margin:0;padding:0;vertical-align:baseline}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{&:after,&:before{content:"";content:none}}q{&:after,&:before{content:"";content:none}}table{border-collapse:collapse;border-spacing:0}:root{--general-border-radius:18px;--general-border-width:2px;--color-default-base:#36364c;--color-default-base-light:#7a79a1;--color-default-light:#c3c3e5;--color-default-dark:#505071;--color-primary-base:#a2a2cc;--color-primary-light:#ededf9;--color-primary-dark:#505071;--color-success-base:#00d9ba;--color-success-light:#c2f2e9;--color-success-dark:#00b798;--color-info-base:#82bbc6;--color-info-light:#d3ebef;--color-danger-base:#ff6c7d;--color-danger-extra-light:#f5ccd1;--color-danger-light:#ffbbc5;--color-danger-dark:#ea4766;--color-warning-base:#d6b218;--color-warning-light:#ffe885;--color-warning-dark:#c58c11;--color-foreground-base:#393939;--color-foreground-base-dark:#22272b;--color-foreground-light:#5a5a68;--color-foreground-dark:#161b20;--color-foreground-extra-dark:#0a0d10;--color-background-base:#e1e1e1;--color-background-light:#ededf9;--color-background-dark:#43435b;--color-background-extra-dark:#0a0d10;--text-color:var(--color-default-dark);--label-color:var(--color-default-base);--xs-line-height:16px;--sm-line-height:19px;--md-line-height:22px;--lg-line-height:23px;--xl-line-height:24px;--xxl-line-height:30px;--xs-font-size:13px;--sm-font-size:14px;--md-font-size:16px;--lg-font-size:18px;--xl-font-size:20px;--xxl-font-size:25px;--base-font-size:var(--sm-font-size);--base-line-height:var(--sm-line-height);--spacing-xs:5px;--spacing-sm:10px;--spacing-base:15px;--spacing-md:20px;--spacing-lg:25px;--spacing-xl:30px;--spacing-xxl:40px;--grid-gutter:var(--spacing-md);--grid-max-width:calc(1200px + var(--grid-gutter)*2);--breakpoint-xs:420px;--breakpoint-sm:768px;--breakpoint-md:1024px;--breakpoint-lg:1248px;--font-inter-light:"Inter-Light";--font-inter-medium:"Inter-Medium";--font-inter-regular:"Inter-Regular";--font-inter-bold:"Inter-Bold";--font-family-regular:"OpenSans-regular";--font-family-medium:"OpenSans-SemiBold";--font-family-bold:"OpenSans-Bold";--headings-color:var(--color-default-base);--headings-font-family-regular:"smoolthan_regular";--headings-font-family-medium:"smoolthan_medium";--headings-font-family-bold:"smoolthan_bold";--headings-margin-bottom:15px;--headings-font-family:var(--headings-font-family-medium);--headings-font-weight:500;--headings-line-height:var(--base-line-height);--form-group-margin-bottom:15px;--form-control-height:39px;--form-control-padding-left:var(--spacing-md);--form-control-padding-right:var(--spacing-md);--form-control-padding-top:10px;--form-control-padding-bottom:10px;--form-control-addon-background-color:#fff;--form-control-addon-padding-top:10px;--form-control-addon-padding-bottom:10px;--form-control-addon-padding-left:10px;--form-control-addon-padding-right:10px;--form-control-border:var(--general-border-width) solid var(--color-default-light);--form-control-disabled-border:var(--general-border-width) solid var(--color-default-light);--form-control-placeholder-color:var(--color-primary-base);--form-control-disabled-background-color:var(--color-background-light);--form-control-disabled-color:var(--text-color);--form-control-border-focus:2px solid var(--color-success-base);--form-control-placeholder-font-family:var(--font-family-medium);--form-control-error-colour:var(--color-danger-dark);--form-default-color:var(--color-default-light);--form-primary-color:var(--color-primary-base);--form-success-color:var(--color-success-base);--error-border:var(--general-border-width) solid var(--color-danger-base);--error-border-left:2px solid var(--color-danger-dark);--help-block-color:var(--color-default-base);--help-block-font-style:normal;--help-block-padding:0 0 0 var(--form-control-padding-left);--error-message-padding:0 0 0 var(--form-control-padding-left);--default-pill-background-color:var(--color-default-base);--default-pill-color:#fff;--pill-margin:0 0 10px 0;--default-outline-pill-box-shadow:inset 0 0 0 2px var(--color-default-base);--default-outline-pill-color:var(--text-color);--title-medium-font-size:16px;--bottom-buffer-large:var(--spacing-md);--bottom-buffer-medium:10px;--bottom-buffer-small:5px;--top-buffer-large:var(--spacing-md);--top-buffer-medium:10px;--top-buffer-small:5px;--right-buffer-large:var(--spacing-md);--right-buffer-medium:10px;--right-buffer-small:5px;--left-buffer-large:var(--spacing-md);--left-buffer-medium:10px;--left-buffer-small:5px;--modal-z-index:1080}.container{margin-block:0;margin-inline:auto;max-inline-size:var(--grid-max-width)}.container,.container-fluid{padding-block:0;padding-inline:var(--grid-gutter)}.tyk-row{box-sizing:border-box;display:flex;flex:0 1 auto;flex-direction:row;flex-wrap:wrap;inline-size:calc(100% + var(--grid-gutter));list-style:none;margin-inline-start:calc(var(--grid-gutter)*-1);&.no-gutters{margin:0}&.tyk-row--gutterless{inline-size:100%;margin:0}&.tyk-row--reverse{flex-direction:row-reverse}}.tyk-col{box-sizing:border-box;flex:0 0 auto;flex-basis:calc(100% - var(--grid-gutter));flex-grow:1;inline-size:calc(100% - var(--grid-gutter));margin-inline-start:var(--grid-gutter);max-inline-size:calc(100% - var(--grid-gutter));&:last-child{margin-inline-end:0}.tyk-row--gutterless &{margin:0}&.tyk-col--reverse{flex-direction:column-reverse}&.tyk-col--align-bottom{align-self:flex-end}&.tyk-col--align-top{align-self:flex-start}&.tyk-col--align-center{align-self:center}&.tyk-col--align-baseline{align-self:baseline}&.tyk-col--align-stretch{align-self:stretch}}@media screen and (width >= 1248px){.tyk-col--lg-0{flex-basis:-20px;max-inline-size:-20px}.tyk-col--offset-lg-0{margin-inline-start:0}.tyk-col--lg-1{flex-basis:calc(8.33333% - 20px);max-inline-size:calc(8.33333% - 20px)}.tyk-col--offset-lg-1{margin-inline-start:8.3333333333%}.tyk-col--lg-2{flex-basis:calc(16.66667% - 20px);max-inline-size:calc(16.66667% - 20px)}.tyk-col--offset-lg-2{margin-inline-start:16.6666666667%}.tyk-col--lg-3{flex-basis:calc(25% - 20px);max-inline-size:calc(25% - 20px)}.tyk-col--offset-lg-3{margin-inline-start:25%}.tyk-col--lg-4{flex-basis:calc(33.33333% - 20px);max-inline-size:calc(33.33333% - 20px)}.tyk-col--offset-lg-4{margin-inline-start:33.3333333333%}.tyk-col--lg-5{flex-basis:calc(41.66667% - 20px);max-inline-size:calc(41.66667% - 20px)}.tyk-col--offset-lg-5{margin-inline-start:41.6666666667%}.tyk-col--lg-6{flex-basis:calc(50% - 20px);max-inline-size:calc(50% - 20px)}.tyk-col--offset-lg-6{margin-inline-start:50%}.tyk-col--lg-7{flex-basis:calc(58.33333% - 20px);max-inline-size:calc(58.33333% - 20px)}.tyk-col--offset-lg-7{margin-inline-start:58.3333333333%}.tyk-col--lg-8{flex-basis:calc(66.66667% - 20px);max-inline-size:calc(66.66667% - 20px)}.tyk-col--offset-lg-8{margin-inline-start:66.6666666667%}.tyk-col--lg-9{flex-basis:calc(75% - 20px);max-inline-size:calc(75% - 20px)}.tyk-col--offset-lg-9{margin-inline-start:75%}.tyk-col--lg-10{flex-basis:calc(83.33333% - 20px);max-inline-size:calc(83.33333% - 20px)}.tyk-col--offset-lg-10{margin-inline-start:83.3333333333%}.tyk-col--lg-11{flex-basis:calc(91.66667% - 20px);max-inline-size:calc(91.66667% - 20px)}.tyk-col--offset-lg-11{margin-inline-start:91.6666666667%}.tyk-col--lg-12{flex-basis:calc(100% - 20px);max-inline-size:calc(100% - 20px)}.tyk-col--offset-lg-12{margin-inline-start:100%}}@media screen and (1024px <= width < 1248px){.tyk-col--md-0{flex-basis:-20px;max-inline-size:-20px}.tyk-col--offset-md-0{margin-inline-start:0}.tyk-col--md-1{flex-basis:calc(8.33333% - 20px);max-inline-size:calc(8.33333% - 20px)}.tyk-col--offset-md-1{margin-inline-start:8.3333333333%}.tyk-col--md-2{flex-basis:calc(16.66667% - 20px);max-inline-size:calc(16.66667% - 20px)}.tyk-col--offset-md-2{margin-inline-start:16.6666666667%}.tyk-col--md-3{flex-basis:calc(25% - 20px);max-inline-size:calc(25% - 20px)}.tyk-col--offset-md-3{margin-inline-start:25%}.tyk-col--md-4{flex-basis:calc(33.33333% - 20px);max-inline-size:calc(33.33333% - 20px)}.tyk-col--offset-md-4{margin-inline-start:33.3333333333%}.tyk-col--md-5{flex-basis:calc(41.66667% - 20px);max-inline-size:calc(41.66667% - 20px)}.tyk-col--offset-md-5{margin-inline-start:41.6666666667%}.tyk-col--md-6{flex-basis:calc(50% - 20px);max-inline-size:calc(50% - 20px)}.tyk-col--offset-md-6{margin-inline-start:50%}.tyk-col--md-7{flex-basis:calc(58.33333% - 20px);max-inline-size:calc(58.33333% - 20px)}.tyk-col--offset-md-7{margin-inline-start:58.3333333333%}.tyk-col--md-8{flex-basis:calc(66.66667% - 20px);max-inline-size:calc(66.66667% - 20px)}.tyk-col--offset-md-8{margin-inline-start:66.6666666667%}.tyk-col--md-9{flex-basis:calc(75% - 20px);max-inline-size:calc(75% - 20px)}.tyk-col--offset-md-9{margin-inline-start:75%}.tyk-col--md-10{flex-basis:calc(83.33333% - 20px);max-inline-size:calc(83.33333% - 20px)}.tyk-col--offset-md-10{margin-inline-start:83.3333333333%}.tyk-col--md-11{flex-basis:calc(91.66667% - 20px);max-inline-size:calc(91.66667% - 20px)}.tyk-col--offset-md-11{margin-inline-start:91.6666666667%}.tyk-col--md-12{flex-basis:calc(100% - 20px);max-inline-size:calc(100% - 20px)}.tyk-col--offset-md-12{margin-inline-start:100%}}@media screen and (768px < width < 1024px){.tyk-col--sm-0{flex-basis:-20px;max-inline-size:-20px}.tyk-col--offset-sm-0{margin-inline-start:0}.tyk-col--sm-1{flex-basis:calc(8.33333% - 20px);max-inline-size:calc(8.33333% - 20px)}.tyk-col--offset-sm-1{margin-inline-start:8.3333333333%}.tyk-col--sm-2{flex-basis:calc(16.66667% - 20px);max-inline-size:calc(16.66667% - 20px)}.tyk-col--offset-sm-2{margin-inline-start:16.6666666667%}.tyk-col--sm-3{flex-basis:calc(25% - 20px);max-inline-size:calc(25% - 20px)}.tyk-col--offset-sm-3{margin-inline-start:25%}.tyk-col--sm-4{flex-basis:calc(33.33333% - 20px);max-inline-size:calc(33.33333% - 20px)}.tyk-col--offset-sm-4{margin-inline-start:33.3333333333%}.tyk-col--sm-5{flex-basis:calc(41.66667% - 20px);max-inline-size:calc(41.66667% - 20px)}.tyk-col--offset-sm-5{margin-inline-start:41.6666666667%}.tyk-col--sm-6{flex-basis:calc(50% - 20px);max-inline-size:calc(50% - 20px)}.tyk-col--offset-sm-6{margin-inline-start:50%}.tyk-col--sm-7{flex-basis:calc(58.33333% - 20px);max-inline-size:calc(58.33333% - 20px)}.tyk-col--offset-sm-7{margin-inline-start:58.3333333333%}.tyk-col--sm-8{flex-basis:calc(66.66667% - 20px);max-inline-size:calc(66.66667% - 20px)}.tyk-col--offset-sm-8{margin-inline-start:66.6666666667%}.tyk-col--sm-9{flex-basis:calc(75% - 20px);max-inline-size:calc(75% - 20px)}.tyk-col--offset-sm-9{margin-inline-start:75%}.tyk-col--sm-10{flex-basis:calc(83.33333% - 20px);max-inline-size:calc(83.33333% - 20px)}.tyk-col--offset-sm-10{margin-inline-start:83.3333333333%}.tyk-col--sm-11{flex-basis:calc(91.66667% - 20px);max-inline-size:calc(91.66667% - 20px)}.tyk-col--offset-sm-11{margin-inline-start:91.6666666667%}.tyk-col--sm-12{flex-basis:calc(100% - 20px);max-inline-size:calc(100% - 20px)}.tyk-col--offset-sm-12{margin-inline-start:100%}}@media screen and (width <= 768px){.tyk-col--xs-0{flex-basis:-20px;max-inline-size:-20px}.tyk-col--offset-xs-0{margin-inline-start:0}.tyk-col--xs-1{flex-basis:calc(8.33333% - 20px);max-inline-size:calc(8.33333% - 20px)}.tyk-col--offset-xs-1{margin-inline-start:8.3333333333%}.tyk-col--xs-2{flex-basis:calc(16.66667% - 20px);max-inline-size:calc(16.66667% - 20px)}.tyk-col--offset-xs-2{margin-inline-start:16.6666666667%}.tyk-col--xs-3{flex-basis:calc(25% - 20px);max-inline-size:calc(25% - 20px)}.tyk-col--offset-xs-3{margin-inline-start:25%}.tyk-col--xs-4{flex-basis:calc(33.33333% - 20px);max-inline-size:calc(33.33333% - 20px)}.tyk-col--offset-xs-4{margin-inline-start:33.3333333333%}.tyk-col--xs-5{flex-basis:calc(41.66667% - 20px);max-inline-size:calc(41.66667% - 20px)}.tyk-col--offset-xs-5{margin-inline-start:41.6666666667%}.tyk-col--xs-6{flex-basis:calc(50% - 20px);max-inline-size:calc(50% - 20px)}.tyk-col--offset-xs-6{margin-inline-start:50%}.tyk-col--xs-7{flex-basis:calc(58.33333% - 20px);max-inline-size:calc(58.33333% - 20px)}.tyk-col--offset-xs-7{margin-inline-start:58.3333333333%}.tyk-col--xs-8{flex-basis:calc(66.66667% - 20px);max-inline-size:calc(66.66667% - 20px)}.tyk-col--offset-xs-8{margin-inline-start:66.6666666667%}.tyk-col--xs-9{flex-basis:calc(75% - 20px);max-inline-size:calc(75% - 20px)}.tyk-col--offset-xs-9{margin-inline-start:75%}.tyk-col--xs-10{flex-basis:calc(83.33333% - 20px);max-inline-size:calc(83.33333% - 20px)}.tyk-col--offset-xs-10{margin-inline-start:83.3333333333%}.tyk-col--xs-11{flex-basis:calc(91.66667% - 20px);max-inline-size:calc(91.66667% - 20px)}.tyk-col--offset-xs-11{margin-inline-start:91.6666666667%}.tyk-col--xs-12{flex-basis:calc(100% - 20px);max-inline-size:calc(100% - 20px)}.tyk-col--offset-xs-12{margin-inline-start:100%}}@font-face{font-family:Inter-Bold;font-style:normal;font-weight:400;src:url(fonts/inter/Inter-Bold.woff2) format("woff2"),url(fonts/inter/Inter-Bold.woff) format("woff")}@font-face{font-family:Inter-Light;font-style:normal;font-weight:400;src:url(fonts/inter/Inter-Light.woff2) format("woff2"),url(fonts/inter/Inter-Light.woff) format("woff")}@font-face{font-family:Inter-Medium;font-style:normal;font-weight:400;src:url(fonts/inter/Inter-Medium.woff2) format("woff2"),url(fonts/inter/Inter-Medium.woff) format("woff")}@font-face{font-family:Inter-Regular;font-style:normal;font-weight:400;src:url(fonts/inter/Inter-Regular.woff2) format("woff2"),url(fonts/inter/Inter-Regular.woff) format("woff")}@font-face{font-family:Inter-SemiBold;font-style:normal;font-weight:400;src:url(fonts/inter/Inter-SemiBold.woff2) format("woff2"),url(fonts/inter/Inter-SemiBold.woff) format("woff")}@font-face{font-family:OpenSans-Bold;font-style:normal;font-weight:400;src:url(fonts/OpenSans-Bold.woff2) format("woff2"),url(fonts/OpenSans-Bold.woff) format("woff")}@font-face{font-family:OpenSans-SemiBold;font-style:normal;font-weight:400;src:url(fonts/OpenSans-SemiBold.woff2) format("woff2"),url(fonts/OpenSans-SemiBold.woff) format("woff")}@font-face{font-family:OpenSans-Regular;font-style:normal;font-weight:400;src:url(fonts/OpenSans-Regular.woff2) format("woff2"),url(fonts/OpenSans-Regular.woff) format("woff")}@font-face{font-family:smoolthan_bold;font-style:normal;font-weight:400;src:url(fonts/smoolthan_bold-webfont.woff2) format("woff2"),url(fonts/smoolthan_bold-webfont.woff) format("woff")}@font-face{font-family:smoolthan_medium;font-style:normal;font-weight:400;src:url(fonts/smoolthan_medium-webfont.woff2) format("woff2"),url(fonts/smoolthan_medium-webfont.woff) format("woff")}@font-face{font-family:smoolthan_regular;font-style:normal;font-weight:400;src:url(fonts/smoolthan_regular-webfont.woff2) format("woff2"),url(fonts/smoolthan_regular-webfont.woff) format("woff")}@font-face{font-family:tykon;font-style:normal;font-weight:400;src:url(fonts/tykon.woff2) format("woff2"),url(fonts/tykon.woff) format("woff")} /*! - * Font Awesome Free 5.5.0 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - */.fa,.fab,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;line-height:inherit;position:absolute;text-align:center;width:2em}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-balance-scale:before{content:"\f24e"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-diagnoses:before{content:"\f470"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-git:before{content:"\f1d3"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-handshake:before{content:"\f2b5"}.fa-hanukiah:before{content:"\f6e6"}.fa-hashtag:before{content:"\f292"}.fa-hat-wizard:before{content:"\f6e8"}.fa-haykal:before{content:"\f666"}.fa-hdd:before{content:"\f0a0"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hot-tub:before{content:"\f593"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-internet-explorer:before{content:"\f26b"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse-pointer:before{content:"\f245"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-nintendo-switch:before{content:"\f418"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-carry:before{content:"\f4ce"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-volume:before{content:"\f2a0"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-sass:before{content:"\f41e"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowflake:before{content:"\f2dc"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-swatchbook:before{content:"\f5c3"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet-paper:before{content:"\f71e"}.fa-toolbox:before{content:"\f552"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-train:before{content:"\f238"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-uikit:before{content:"\f403"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:Font Awesome\ 5 Brands;font-style:normal;font-weight:400;src:url(fonts/fa-brands-400.eot);src:url(fonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(fonts/fa-brands-400.woff2) format("woff2"),url(fonts/fa-brands-400.woff) format("woff"),url(fonts/fa-brands-400.ttf) format("truetype"),url(fonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:Font Awesome\ 5 Brands}@font-face{font-family:Font Awesome\ 5 Free;font-style:normal;font-weight:400;src:url(fonts/fa-regular-400.eot);src:url(fonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(fonts/fa-regular-400.woff2) format("woff2"),url(fonts/fa-regular-400.woff) format("woff"),url(fonts/fa-regular-400.ttf) format("truetype"),url(fonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-weight:400}@font-face{font-family:Font Awesome\ 5 Free;font-style:normal;font-weight:900;src:url(fonts/fa-solid-900.eot);src:url(fonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(fonts/fa-solid-900.woff2) format("woff2"),url(fonts/fa-solid-900.woff) format("woff"),url(fonts/fa-solid-900.ttf) format("truetype"),url(fonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.far,.fas{font-family:Font Awesome\ 5 Free}.fa,.fas{font-weight:900}.tykon:before{font-family:tykon,sans-serif!important;font-style:normal!important;font-variant:normal!important;font-weight:400!important;line-height:1;text-transform:none!important;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.tykon-arrowdown:before{content:"\61"}.tykon-arrowleft:before{content:"\62"}.tykon-arrowright:before{content:"\63"}.tykon-arrowup:before{content:"\64"}.tykon-doublearrowdown:before{content:"\65"}.tykon-filter:before{content:"\66"}.tykon-graph1:before{content:"\67"}.tykon-graph2:before{content:"\68"}.tykon-label:before{content:"\69"}.tykon-reload:before{content:"\6a"}.tykon-select:before{content:"\6b"}.tykon-target:before{content:"\6c"}.tykon-undo:before{content:"\6d"}.tykon-deployment:before{content:"\6e"}.tykon-team:before{content:"\6f"}.tykon-overview:before{content:"\70"}.tykon-loadout:before{content:"\71"}.tykon-entitlement:before{content:"\72"}.tykon-users:before{content:"\73"}.tykon-arrowsort:before{content:"\57"}.tykon-check:before{content:"\56"}.tykon-copy:before{content:"\43"}.tykon-delete:before{content:"\55"}.tykon-download:before{content:"\4c"}.tykon-draft:before{content:"\44"}.tykon-edit:before{content:"\45"}.tykon-graphq2:before{content:"\68"}.tykon-help:before{content:"\3f"}.tykon-link:before{content:"\52"}.tykon-lock1:before{content:"\59"}.tykon-lock2:before{content:"\5A"}.tykon-notifications:before{content:"\4E"}.tykon-plus:before{content:"\2B"}.tykon-profile:before{content:"\50"}.tykon-search:before{content:"\4F"}.tykon-settings:before{content:"\53"}.tykon-warning:before{content:"\21"}.tykon-x:before{content:"\58"}.tykon-waiting:before{content:"\54"}.tykon-fullscreen:before{content:"\e000"}.tykon-fullscreen-exit:before{content:"\e001"}.tykon-time:before{content:"\74"}h1,h2,h3,h4,h5,h6{color:var(--headings-color);font-family:var(--headings-font-family);font-weight:var(--headings-font-weight);margin-block-end:var(--headings-margin-bottom)}label{color:var(--label-color);display:inline-block;margin-block-end:5px;max-inline-size:100%}h1{font-size:var(--xxl-font-size);line-height:var(--xxl-line-height)}h2{font-size:var(--xl-font-size);line-height:var(--xl-line-height)}h3{font-size:var(--lg-font-size);line-height:var(--lg-line-height)}h4{font-size:var(--md-font-size);line-height:var(--md-line-height)}h5{font-size:var(--sm-font-size);line-height:var(--sm-line-height)}h6{font-size:var(--xs-font-size);line-height:var(--xs-line-height)}label,p{font-family:var(--font-family-regular);font-size:var(--sm-font-size);line-height:var(--sm-line-height);a{font-size:var(--sm-font-size);text-decoration:underline}}strong{font-family:var(--font-family-bold)}a:not(.tyk-button){color:var(--text-color);cursor:pointer;font-family:var(--font-family-regular);&.link--bold{font-family:var(--font-family-bold)}+a{margin-inline-start:5px}i{font-size:9px}}.font-family-regular{font-family:var(--font-family-regular)}.font-family-medium{font-family:var(--font-family-medium)}.font-family-bold{font-family:var(--font-family-bold)}.heading-font-family-regular{font-family:var(--headings-font-family-regular)}.heading-font-family-medium{font-family:var(--headings-font-family-medium)}.heading-font-family-bold{font-family:var(--headings-font-family-bold)}.text--info{color:var(--color-info-base)}.text--medium{font-family:var(--font-family-medium)}.text--bold{font-family:var(--font-family-bold)}.text--uppercase{text-transform:uppercase}.text--ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--underline{text-decoration:underline}.text--default-light{color:var(--color-default-light)!important}.text--default{color:var(--color-default-base)!important}.text--primary{color:var(--color-primary-base)!important}.text--danger{color:var(--color-danger-base)!important}.text--success{color:var(--color-success-base)!important}.text--warning{color:var(--color-warning-base)!important}td.text-ellipsis{max-inline-size:250px}.section-title{font-family:var(--headings-font-family-bold);margin-block-end:5px;.tyk-icon{margin-inline-start:5px}}.sub-section-title{font-family:var(--font-family-medium);font-size:var(--md-font-size);line-height:var(--md-line-height);margin-block-end:5px;.tyk-icon{margin-inline-start:5px}}.section-group-title{font-family:var(--font-family-bold);font-size:var(--sm-font-size);line-height:var(--sm-line-height);margin-block-end:5px;text-transform:uppercase;.tyk-icon{margin-inline-start:5px}}.tyk-form-section__title{font-size:var(--base-font-size);margin-block:var(--spacing-xs) var(--spacing-base);margin-inline:0}.tyk-form-section__title--light{color:var(--color-background-dark)}.tyk-form-group{margin-block-end:var(--form-group-margin-bottom);&.has-error .tyk-file-input__wrapper>.tyk-form-control,&.has-error>.tyk-form-control__wrapper>.tyk-form-control,&.has-error>.tyk-form-control__wrapper>.tyk-input-group>.tyk-form-control{border:var(--error-border);border-inline-start:var(--error-border-left);outline:none;&:focus{border-inline-start:2px solid var(--color-danger-dark);border-color:var(--color-danger-dark);outline:none}}label{font-family:var(--font-family-medium)}}.tyk-form-group--inline{align-items:stretch;display:flex;flex-wrap:nowrap;.tyk-form-control__wrapper{flex:1}label{margin-block-start:14px;margin-inline-end:var(--spacing-md);white-space:nowrap}input,label,select{display:flex}.tyk-form-control__help-block{display:flex;margin-inline-start:auto}}.tyk-form-group--default{color:var(--text-color);>.tyk-form-control__wrapper>.tyk-file-input__wrapper>.tyk-form-control,>.tyk-form-control__wrapper>.tyk-form-control,>.tyk-form-control__wrapper>.tyk-input-group>.tyk-form-control{border:var(--general-border-width) solid var(--form-default-color);color:var(--text-color);&[disabled]{background-color:var(--form-control-disabled-background-color);border:var(--general-border-width) solid var(--form-default-color);color:var(--form-control-disabled-color);cursor:not-allowed;+.tyk-input-group__addon{background-color:var(--form-control-disabled-background-color)}}&::placeholder{opacity:.8}&:-ms-input-placeholder{opacity:.8}}&.tyk-form-group--addon-left{.tyk-input-group__addon{border-block:2px solid var(--form-default-color);border-inline-start:2px solid var(--form-default-color);color:var(--text-color)}}&.tyk-form-group--addon-right{.tyk-input-group__addon{border-block:2px solid var(--form-default-color);border-inline-end:2px solid var(--form-default-color);color:var(--text-color)}}}.tyk-form-group--primary{color:var(--text-color);>.tyk-form-control__wrapper>.tyk-file-input__wrapper>.tyk-form-control,>.tyk-form-control__wrapper>.tyk-form-control,>.tyk-form-control__wrapper>.tyk-input-group>.tyk-form-control{border:var(--general-border-width) solid var(--form-primary-color);color:var(--text-color);&[disabled]{background-color:var(--form-control-disabled-background-color);border:var(--general-border-width) solid var(--form-primary-color);color:var(--form-control-disabled-color);cursor:not-allowed;+.tyk-input-group__addon{background-color:var(--form-control-disabled-background-color)}}&::placeholder{opacity:.8}&:-ms-input-placeholder{opacity:.8}}&.tyk-form-group--addon-left{.tyk-input-group__addon{border-block:2px solid var(--form-primary-color);border-inline-start:2px solid var(--form-primary-color);color:var(--form-primary-color)}}&.tyk-form-group--addon-right{.tyk-input-group__addon{border-block:2px solid var(--form-primary-color);border-inline-end:2px solid var(--form-primary-color);color:var(--form-primary-color)}}}.tyk-form-group--success{color:var(--text-color);>.tyk-form-control__wrapper>.tyk-file-input__wrapper>.tyk-form-control,>.tyk-form-control__wrapper>.tyk-form-control,>.tyk-form-control__wrapper>.tyk-input-group>.tyk-form-control{border:var(--general-border-width) solid var(--form-success-color);color:var(--text-color);&[disabled]{background-color:var(--form-control-disabled-background-color);border:var(--general-border-width) solid var(--form-success-color);color:var(--form-control-disabled-color);cursor:not-allowed;+.tyk-input-group__addon{background-color:var(--form-control-disabled-background-color)}}&::placeholder{opacity:.8}&:-ms-input-placeholder{opacity:.8}}&.tyk-form-group--addon-left{.tyk-input-group__addon{border-block:2px solid var(--form-success-color);border-inline-start:2px solid var(--form-success-color);color:var(--form-success-color)}}&.tyk-form-group--addon-right{.tyk-input-group__addon{border-block:2px solid var(--form-success-color);border-inline-end:2px solid var(--form-success-color);color:var(--form-success-color)}}}.tyk-form-group--rounded-corners{&.has-error>.tyk-form-control__wrapper>.tyk-form-control{border-inline-start:var(--error-border);&:focus{border-inline-start:var(--error-border);outline:none}}.tyk-form-control{border-radius:var(--general-border-radius)}}.tyk-form-group--addon-right input{border-inline-end:0!important;padding-inline-end:0}.tyk-form-group--addon-left input{border-inline-start:0!important;padding-inline-start:0}.tyk-form-group--rounded-corners.tyk-form-group--addon-right{input{border-end-end-radius:0;border-start-end-radius:0}.tyk-input-group__addon{background:var(--form-control-addon-background-color);border-end-end-radius:var(--general-border-radius);border-start-end-radius:var(--general-border-radius);color:var(--text-color)}}.tyk-form-group--rounded-corners.tyk-form-group--addon-left{input{border-end-start-radius:0;border-inline-start:0!important;border-start-start-radius:0}.tyk-input-group__addon{background:var(--form-control-addon-background-color);border-end-start-radius:var(--general-border-radius);border-start-start-radius:var(--general-border-radius);color:var(--text-color)}}.tyk-form-control__error-message{font-family:var(--font-family-regular);font-size:var(--xs-font-size);line-height:var(--xs-line-height);margin-block-start:5px;padding:var(--error-message-padding);position:relative;&:before{background:var(--color-danger-base);border-radius:8px;color:#fff;content:"!";display:inline-block;font-family:var(--font-family-bold);margin-inline-end:5px;padding-block:0;padding-inline:7px}}.tyk-input-group{align-items:center;display:flex;outline:none}.tyk-input-group__addon{align-items:center;background-color:var(--form-control-addon-background-color);block-size:var(--form-control-height);border:var(--form-control-border);display:flex;padding-block:var(--form-control-addon-padding-top) var(--form-control-addon-padding-bottom);padding-inline:var(--form-control-addon-padding-left) var(--form-control-addon-padding-right);&:first-child{border-inline-end:0}&:last-child{border-inline-start:0}}.tyk-form-control{background-color:#fff;block-size:var(--form-control-height);border:var(--form-control-border);color:var(--text-color);display:block;font-family:var(--font-family-medium);font-size:var(--sm-font-size);inline-size:100%;line-height:var(--sm-line-height);padding-block:var(--form-control-padding-top) var(--form-control-padding-bottom);padding-inline:var(--form-control-padding-left) var(--form-control-padding-right);transition:all .2s linear;&[disabled]{background-color:var(--form-control-disabled-background-color);cursor:not-allowed;.tyk-input-group__addon{background-color:var(--form-control-disabled-background-color)}}&::placeholder{color:var(--form-control-placeholder-color);font-family:var(--form-control-placeholder-font-family)}&:active,&:focus{border:var(--form-control-border-focus)!important;outline:none;+.tyk-input-group__addon{border:var(--form-control-border-focus)!important;border-inline-start:none!important}}}.tyk-form-control__help-block{color:var(--help-block-color);font-family:var(--font-family-regular);font-size:var(--xs-font-size);font-style:var(--help-block-font-style);line-height:var(--xs-line-height);margin-block:5px 0;margin-inline:0;padding:var(--help-block-padding)}select{appearance:none;border-radius:0}.inline-form-wrapper{align-items:center;display:flex;inline-size:100%;.inline-form{inline-size:100%}>button{margin-block-end:var(--spacing-base);margin-inline-start:10px}}.tyk-checkbox,.tyk-radio{margin-block:10px;margin-inline:0;label{font-family:var(--font-family-medium)}input{margin-block:0;margin-inline:0 5px}}.tyk-checkbox--inline,.tyk-radio--inline{display:inline-flex;margin-inline-start:var(--spacing-base);&:first-child{margin-inline-start:0}}.tyk-inline-form{align-items:center;display:flex;flex-wrap:wrap;.tyk-form-group{flex:1;margin-inline-start:var(--spacing-md);min-inline-size:200px;&:first-child{margin-inline-start:0}}>.tyk-button{margin-block-end:var(--spacing-base);margin-inline-start:var(--spacing-md)}}:root{--accordion-item-header-padding-y:var(--spacing-base);--accordion-item-header-padding-x:var(--spacing-base);--accordion-item-header-font-size:var(--base-font-size);--accordion-item-outside-trigger-width:var(--spacing-xxl)}.tyk-accordion__item{display:grid}.tyk-accordion__item--trigger-position-left{grid-template-areas:"trigger header" "trigger content";grid-template-columns:var(--accordion-item-outside-trigger-width) auto}.tyk-accordion__item--trigger-position-right{grid-template-areas:"header trigger" "content trigger";grid-template-columns:auto var(--accordion-item-outside-trigger-width)}.tyk-accordion__item--trigger-in-header{grid-template-areas:"header" "content";grid-template-columns:auto}.tyk-accordion__trigger-wrapper{align-items:flex-start;display:flex;grid-area:trigger;justify-content:center;.tyk-icon{margin-inline:auto}}.tyk-accordion__item-header>button,.tyk-accordion__trigger{background:none;border:none;cursor:pointer;display:flex;font-size:var(--accordion-item-header-font-size);inline-size:100%;outline:none;padding-block:var(--accordion-item-header-padding-y);padding-inline:var(--accordion-item-header-padding-x);.tyk-icon{margin-inline-start:auto}}.tyk-accordion__item-header{grid-area:header}.tyk-accordion__trigger--disabled{color:var(--color-background-base)}.tyk-accordion__item-header.tyk-accordion__arrow-trigger{align-items:center;display:flex;>div{flex:1}>button{inline-size:auto;margin-inline-start:auto}}.tyk-accordion__item-content{grid-area:content}:root{--button-font-family:var(--font-family-bold);--button-border-radius:var(--spacing-md);--padding-y-button-sm:3px;--padding-x-button-sm:var(--spacing-base);--padding-y-button-md:8px;--padding-x-button-md:23px;--padding-y-button-lg:13px;--padding-x-button-lg:23px;--line-height-button-sm:var(--xs-line-height);--line-height-button-md:var(--md-line-height);--line-height-button-lg:var(--lg-line-height);--button-default-color:var(--color-default-base);--button-default-hover-color:var(--color-default-dark);--button-default-gradient-start-color:var(--color-default-base);--button-default-gradient-end-color:var(--color-default-dark);--button-primary-color:var(--color-default-base-light);--button-primary-hover-color:var(--color-default-dark);--button-primary-text-color:#fff;--button-primary-gradient-start-color:var(--color-primary-base);--button-primary-gradient-end-color:var(--color-primary-dark);--button-success-color:var(--color-success-base);--button-success-hover-color:var(--color-success-dark);--button-success-gradient-start-color:var(--color-success-base);--button-success-gradient-end-color:var(--color-success-dark);--button-danger-color:var(--color-danger-base);--button-danger-hover-color:var(--color-danger-dark);--button-danger-gradient-start-color:var(--color-danger-base);--button-danger-gradient-end-color:var(--color-danger-dark);--button-warning-color:var(--color-warning-base);--button-warning-font-color:#fff;--button-warning-gradient-start-color:var(--color-warning-base);--button-warning-gradient-end-color:var(--color-warning-light);--button-info-color:var(--color-info-base);--button-info-font-color:var(--text-color);--button-info-gradient-start-color:var(--color-info-base);--button-info-gradient-end-color:var(--color-info-light);--button-icon-only-background-hover:var(--color-background-light)}.tyk-button{--button-padding-y:var(--padding-y-button-md);--button-padding-x:var(--padding-x-button-md);--button-font-size:var(--sm-font-size);--button-line-height:var(--line-height-button-md);background-color:transparent;border:none;color:#fff;cursor:pointer;display:inline-block;font-family:var(--button-font-family);text-align:center;text-decoration:none;text-transform:uppercase;transition:all .2s linear;user-select:none;vertical-align:middle;white-space:nowrap;+.tyk-button,+.tyk-dropdown,+.tyk-toggle,i+span,span+i{margin-inline-start:var(--spacing-sm)}&.disabled{cursor:not-allowed;opacity:.7}&:hover{color:#fff;text-decoration:none}&:focus{outline:none}}.tyk-button--white{--button-variant-background:#fff;--button-variant-border:transparent;--button-variant-color:var(--color-default-base);--button-variant-hover-background:var(--color-background-dark);--button-variant-hover-color:#fff}.tyk-button--primary{--button-variant-background:var(--button-primary-color);--button-variant-border:var(--button-primary-color);--button-variant-color:var(--button-primary-text-color);--button-variant-hover-background:var(--button-primary-hover-color);--button-variant-hover-color:var(--button-primary-text-color)}.tyk-button--success{--button-variant-background:var(--button-success-color);--button-variant-border:var(--button-success-color);--button-variant-color:#fff;--button-variant-hover-background:var(--button-success-hover-color);--button-variant-hover-color:#fff}.tyk-button--danger{--button-variant-background:var(--button-danger-color);--button-variant-border:var(--button-danger-color);--button-variant-color:#fff;--button-variant-hover-background:var(--button-danger-hover-color);--button-variant-hover-color:#fff}.tyk-button--warning{--button-variant-background:var(--button-warning-color);--button-variant-border:transparent;--button-variant-color:var(--button-warning-font-color);--button-variant-hover-background:color-mix(in srgb,var(--button-variant-background),#000 15%);--button-variant-hover-color:var(--button-warning-font-color)}.tyk-button--info{--button-variant-background:var(--button-info-color);--button-variant-border:var(--button-info-color);--button-variant-color:#fff;--button-variant-hover-background:color-mix(in srgb,var(--button-variant-background),#000 15%);--button-variant-hover-color:#fff}.tyk-button--default{--button-variant-background:var(--button-default-color);--button-variant-border:var(--button-default-color);--button-variant-color:#fff;--button-variant-hover-background:var(--button-default-hover-color);--button-variant-hover-color:#fff}.tyk-button--danger,.tyk-button--default,.tyk-button--info,.tyk-button--primary,.tyk-button--success,.tyk-button--warning,.tyk-button--white{background-color:var(--button-variant-background);border:var(--general-border-width) solid var(--button-variant-border);color:var(--button-variant-color);&:hover{background-color:var(--button-variant-hover-background);color:var(--button-variant-hover-color)}}.tyk-button--primary-link{--button-variant-link-color:var(--button-primary-color)}.tyk-button--success-link{--button-variant-link-color:var(--button-success-color)}.tyk-button--danger-link{--button-variant-link-color:var(--button-danger-color)}.tyk-button--warning-link{--button-variant-link-color:var(--button-warning-color)}.tyk-button--info-link{--button-variant-link-color:var(--button-info-color)}.tyk-button--default-link{--button-variant-link-color:var(--text-color)}.tyk-button--danger-link,.tyk-button--default-link,.tyk-button--info-link,.tyk-button--primary-link,.tyk-button--success-link,.tyk-button--warning-link{background-color:transparent;border:var(--general-border-width) solid transparent;color:var(--button-variant-link-color);&:hover{background-color:transparent;border-color:var(--button-variant-link-color);color:var(--button-variant-link-color);text-decoration:underline}}.tyk-button--primary-outline{--button-variant-outline-border:var(--button-primary-color);--button-variant-outline-color:var(--button-primary-color);--button-variant-outline-hover-color:#fff}.tyk-button--success-outline{--button-variant-outline-border:var(--button-success-color);--button-variant-outline-color:var(--button-success-color);--button-variant-outline-hover-color:#fff}.tyk-button--danger-outline{--button-variant-outline-border:var(--button-danger-color);--button-variant-outline-color:var(--button-danger-color);--button-variant-outline-hover-color:#fff}.tyk-button--warning-outline{--button-variant-outline-border:var(--button-warning-color);--button-variant-outline-color:var(--button-warning-color);--button-variant-outline-hover-color:#fff}.tyk-button--info-outline{--button-variant-outline-border:var(--button-info-color);--button-variant-outline-color:var(--button-info-color);--button-variant-outline-hover-color:#fff}.tyk-button--default-outline{--button-variant-outline-border:var(--button-default-color);--button-variant-outline-color:var(--button-default-color);--button-variant-outline-hover-color:#fff}.tyk-button--danger-outline,.tyk-button--default-outline,.tyk-button--info-outline,.tyk-button--primary-outline,.tyk-button--success-outline,.tyk-button--warning-outline{background-color:transparent;border:var(--general-border-width) solid var(--button-variant-outline-border);color:var(--button-variant-outline-color);&:hover{background-color:var(--button-variant-outline-border);color:var(--button-variant-outline-hover-color)}&.disabled{color:var(--button-variant-outline-border);&:hover{background-color:transparent;color:var(--button-variant-outline-border)}}}.tyk-button--primary-gradient{--button-variant-gradient-left-color:var(--button-primary-gradient-start-color);--button-variant-gradient-right-color:var(--button-primary-gradient-end-color)}.tyk-button--success-gradient{--button-variant-gradient-left-color:var(--button-success-gradient-start-color);--button-variant-gradient-right-color:var(--button-success-gradient-end-color)}.tyk-button--danger-gradient{--button-variant-gradient-left-color:var(--button-danger-gradient-start-color);--button-variant-gradient-right-color:var(--button-danger-gradient-end-color)}.tyk-button--warning-gradient{--button-variant-gradient-left-color:var(--button-warning-gradient-start-color);--button-variant-gradient-right-color:var(--button-warning-gradient-end-color);--button-variant-gradient-color:var(--button-warning-font-color)}.tyk-button--info-gradient{--button-variant-gradient-left-color:var(--button-info-gradient-start-color);--button-variant-gradient-right-color:var(--button-info-gradient-end-color);--button-variant-gradient-color:var(--button-info-font-color)}.tyk-button--default-gradient{--button-variant-gradient-left-color:var(--button-default-gradient-start-color);--button-variant-gradient-right-color:var(--button-default-gradient-end-color)}.tyk-button--danger-gradient,.tyk-button--default-gradient,.tyk-button--info-gradient,.tyk-button--primary-gradient,.tyk-button--success-gradient,.tyk-button--warning-gradient{background:transparent linear-gradient(to right,var(--button-variant-gradient-left-color),var(--button-variant-gradient-right-color),var(--button-variant-gradient-left-color));background-clip:border-box;background-origin:border-box;background-position:0 0;background-size:200% auto;border-image:linear-gradient(to right,var(--button-variant-gradient-left-color),var(--button-variant-gradient-right-color),var(--button-variant-gradient-left-color)) 0 round;color:var(--button-variant-gradient-color,#fff);&:active,&:active:focus,&:hover{background:transparent linear-gradient(to right,var(--button-variant-gradient-left-color),var(--button-variant-gradient-right-color),var(--button-variant-gradient-left-color));background-clip:border-box;background-position:100% 0;background-size:200% auto;border-image:linear-gradient(to right,var(--button-variant-gradient-left-color),var(--button-variant-gradient-right-color),var(--button-variant-gradient-left-color)) 0 round;&.disabled{background:transparent linear-gradient(to right,var(--button-variant-gradient-left-color),var(--button-variant-gradient-right-color),var(--button-variant-gradient-left-color));background-clip:border-box;background-origin:border-box;background-position:0 0;background-size:200% auto;border-image:linear-gradient(to right,var(--button-variant-gradient-left-color),var(--button-variant-gradient-right-color),var(--button-variant-gradient-left-color)) 0 round;color:var(--button-variant-gradient-color,#fff)}}}.tyk-button--sm{--button-padding-y:var(--padding-y-button-sm);--button-padding-x:var(--padding-x-button-sm);--button-font-size:var(--xs-font-size);--button-line-height:var(--xs-line-height)}.tyk-button--md{--button-padding-y:var(--padding-y-button-md);--button-padding-x:var(--padding-x-button-md);--button-font-size:var(--sm-font-size);--button-line-height:var(--sm-line-height)}.tyk-button--lg{--button-padding-y:var(--padding-y-button-lg);--button-padding-x:var(--padding-x-button-lg);--button-font-size:var(--md-font-size);--button-line-height:var(--line-height-button-md)}.tyk-button,.tyk-button--lg,.tyk-button--md,.tyk-button--sm{border-radius:var(--button-border-radius);font-size:var(--button-font-size);line-height:var(--button-line-height);padding-block:var(--button-padding-y);padding-inline:var(--button-padding-x)}.tyk-button--icon-only{border-radius:var(--general-border-radius);inline-size:24px;line-height:var(--spacing-md);padding:0;&:hover{border-radius:var(--general-border-radius)}}.tyk-button--fit{block-size:auto;inline-size:auto;line-height:normal}.tyk-button--no-style{background:transparent;border:none;color:var(--text-color);&:hover{background:transparent;border:none;color:var(--text-color)}}.tyk-button-group__wrapper{display:inline-block;position:relative;vertical-align:middle;label{font-family:var(--font-family-medium)}+.tyk-button,+.tyk-button-group__wrapper,+.tyk-dropdown,+.tyk-toggle{margin-inline-start:var(--spacing-sm)}.tyk-button-group{display:flex;>.tyk-button-group:not(:first-child){>.tyk-button{border-end-start-radius:0;border-start-start-radius:0}}>.tyk-button-group:not(:last-child){>.tyk-button{border-end-end-radius:0;border-start-end-radius:0}}.tyk-button{border-radius:0;+.tyk-button,+.tyk-dropdown{margin-inline-start:0}&:first-child{border-end-start-radius:var(--spacing-md);border-start-start-radius:var(--spacing-md)}&:last-child{border-end-end-radius:var(--spacing-md);border-start-end-radius:var(--spacing-md);&.tyk-button--icon-only{inline-size:42px}}}}}.tyk-card{background-color:#fff;border:1px solid var(--color-background-base);border-radius:8px;box-shadow:2px 2px 3px var(--color-background-base);display:flex;flex-direction:column;overflow:hidden}.tyk-card__header{align-items:center;display:flex;font-family:var(--font-inter-regular);font-size:var(--sm-font-size);padding-block:var(--spacing-base) 0;padding-inline:var(--spacing-base)}.tyk-card__header-right{margin-inline-start:auto}.tyk-card__title-group{align-items:center;display:grid;grid-template-columns:auto 1fr;.tyk-card__title-icon{align-items:center;block-size:42px;display:flex;grid-row:span 2;inline-size:42px;justify-content:center;margin-inline-end:10px}}.tyk-card__title{display:-webkit-box;font-family:var(--font-inter-bold);font-size:var(--lg-font-size);-webkit-box-orient:vertical;margin:0;overflow:hidden;text-overflow:ellipsis}.tyk-card__title--max-1-lines{-webkit-line-clamp:1}.tyk-card__title--max-2-lines{-webkit-line-clamp:2}.tyk-card__sub-title{font-family:var(--font-inter-medium);font-size:var(--xs-font-size);margin:0}.tyk-card__sub-title+.tyk-card__summary,.tyk-card__title+.tyk-card__summary,.tyk-card__title-group+.tyk-card__summary{margin-block-start:var(--spacing-sm)}.tyk-card__summary{color:var(--text-color);display:-webkit-box;font-family:var(--font-inter-regular);font-size:var(--sm-font-size);-webkit-box-orient:vertical;margin:0;overflow:hidden;text-overflow:ellipsis}.tyk-card__summary--max-1-lines{-webkit-line-clamp:1}.tyk-card__summary--max-2-lines{-webkit-line-clamp:2}.tyk-card__summary--max-3-lines{-webkit-line-clamp:3}.tyk-card__summary--max-4-lines{-webkit-line-clamp:4}.tyk-card__summary--max-5-lines{-webkit-line-clamp:5}.tyk-card__body{display:flex;flex:1 0 auto;flex-grow:1;padding:var(--spacing-base)}.tyk-card__body--align-top{align-items:flex-start}.tyk-card__body--align-center{align-items:center}.tyk-card__body--align-bottom{align-items:flex-end}.tyk-card__footer{border-block-start:1px solid var(--color-background-base);display:flex;justify-content:end;padding:var(--spacing-base)}.tyk-chart__wrapper{position:relative}.tyk-chart--loading-chart,.tyk-chart--no-data{filter:blur(var(--spacing-sm))}.collapse-exit,.collapse-exit-active,.collapse-exit-done{block-size:0}.collapse-wrapper{overflow:hidden;transition:all .2s}.collapse-horizontal-exit,.collapse-horizontal-exit-active,.collapse-horizontal-exit-done{inline-size:0}.collapse-horizontal-enter,.collapse-horizontal-enter-active,.collapse-horizontal-enter-done{inline-size:100%}.tyk-copy-to-clipboard{inset-block-start:-1000px;inset-inline-start:-1000px;position:absolute}:root{--fixed-wrapper-top:0;--fixed-wrapper-left:0;--fixed-wrapper-right:0}.tyk-fixed-wrapper{inset-block-start:var(--fixed-wrapper-top);inset-inline-end:var(--fixed-wrapper-right);inset-inline-start:var(--fixed-wrapper-left);position:sticky;z-index:8}.tyk-fixed-wrapper--scrolled{box-shadow:2px 2px 5px rgba(0,0,0,.1)}.floating-container{inset-block-start:-9999px;overflow:auto;position:fixed;z-index:var(--modal-z-index,1080)}.floating-container__content-wrapper{block-size:100%}.tyk-icon{+.tyk-icon{margin-inline-start:var(--spacing-sm)}}.tyk-infinite-scroller{block-size:100%;overflow:hidden;position:relative;.loading{background:linear-gradient(180deg,hsla(0,0%,100%,0),#fff);display:flex;inline-size:100%;inset-block-end:0;inset-block-start:auto;inset-inline:0;justify-content:center;padding-block:var(--spacing-base);padding-inline:0}}.tyk-infinite-scroller__wrapper{block-size:100%;overflow-y:auto}.tyk-info-note{border-radius:0;position:relative;p+p{margin-block-start:var(--spacing-base)}&:after{block-size:0;border-color:transparent var(--color-info-base) transparent transparent;border-style:solid;border-width:0 var(--spacing-md) var(--spacing-md) 0;content:"";inline-size:0;inset-block-start:0;inset-inline-end:0;position:absolute}.tyk-message{border-radius:0;padding-block:40px}}.tyk-loading__wrapper{background:hsla(0,0%,100%,.6);inset:0;position:absolute;z-index:99}.loader-wrapper{min-block-size:100px;position:relative}.loading{inset-block-start:calc(50% - var(--spacing-sm));inset-inline-start:50%;position:absolute;&.relative{inline-size:100%;inset-block-start:auto;inset-inline-start:auto;padding:25px;position:relative;text-align:center}}.loading-bar{animation:loading 1s ease-in-out infinite;block-size:var(--spacing-md);border-radius:4px;display:inline-block;inline-size:4px;margin-inline-start:2px}.loading-bar:first-child{animation-delay:0;background-color:var(--color-success-base);opacity:1}.loading-bar:nth-child(2){animation-delay:.09s;background-color:var(--color-success-base);opacity:.8}.loading-bar:nth-child(3){animation-delay:.18s;background-color:var(--color-success-base);opacity:.6}.loading-bar:nth-child(4){animation-delay:.27s;background-color:var(--color-success-base);opacity:.4}@keyframes loading{0%{transform:scale(1)}20%{transform:scaleY(2.2)}40%{transform:scale(1)}}.tyk-list{border:var(--general-border-width) solid var(--color-default-light);border-radius:var(--general-border-radius);font-size:var(--sm-font-size);list-style-type:none;margin:0;max-block-size:191px;overflow:auto;padding:0;li{border-block-end:1px solid var(--color-default-light);font-family:var(--font-family-medium);padding-block:var(--spacing-sm);padding-inline:var(--spacing-md);&.tyk-list__item--selected{background-color:var(--color-default-light)}&:last-child{border:none}}}.tyk-list--with-inline-label{display:flex;>label{margin-inline-end:var(--spacing-md)}}.tyk-list--default{border-color:var(--color-default-light)}.tyk-list--primary{border-color:var(--color-primary-base);li{border-color:var(--color-primary-light);color:var(--text-color);&.tyk-list__item--selected{background-color:var(--color-primary-light)}}}.tyk-list--primary-light{border-color:var(--color-primary-light);li{border-color:var(--color-primary-light);color:var(--text-color);&.tyk-list__item--selected{background-color:var(--color-primary-light)}}}.tyk-list--success{border-color:var(--color-success-base);color:var(--color-success-base);li{border-color:var(--color-success-base);&.tyk-list__item--selected{background-color:var(--color-success-light)}}}.tyk-list--danger{border-color:var(--color-danger-base);color:var(--text-color);li{border-color:var(--color-danger-light);&.tyk-list__item--selected{background-color:var(--color-danger-light)}}}ul.tyk-list--inline{align-items:center;display:flex;li{padding-block:0;padding-inline:var(--spacing-sm)}&.tyk-list--with-separator{li:not(:first-child){border-inline-start:1px solid var(--color-default-base)}}}:root{--tyk-message-padding-top:var(--spacing-md);--tyk-message-padding-right:var(--spacing-md);--tyk-message-padding-bottom:var(--spacing-md);--tyk-message-padding-left:var(--spacing-md);--tyk-message-border-radius:var(--general-border-radius);--tyk-message-default-background:var(--color-primary-light);--tyk-message-default-border:var(--color-default-dark);--tyk-message-default-text-color:var(--color-default-dark);--tyk-message-info-background:var(--color-info-light);--tyk-message-info-border:var(--color-info-base);--tyk-message-info-text-color:var(--color-info-base);--tyk-message-success-background:var(--color-success-light);--tyk-message-success-border:var(--color-success-dark);--tyk-message-success-text-color:var(--color-success-dark);--tyk-message-warning-background:var(--color-warning-light);--tyk-message-warning-border:var(--color-warning-base);--tyk-message-warning-text-color:var(--color-warning-dark);--tyk-message-danger-background:var(--color-danger-extra-light);--tyk-message-danger-border:var(--color-danger-base);--tyk-message-danger-text-color:var(--color-danger-dark)}.tyk-message{align-items:center;border-radius:var(--tyk-message-border-radius);display:flex;margin-block-end:var(--spacing-md);padding-block:var(--tyk-message-padding-top) var(--tyk-message-padding-bottom);padding-inline:var(--tyk-message-padding-left) var(--tyk-message-padding-right);>.tyk-icon:first-child{block-size:32px;border-radius:50%;color:#fff;flex-shrink:0;inline-size:32px;&:before{align-items:center;block-size:100%;display:flex;inline-size:100%;justify-content:center}}>.tyk-icon:last-child{cursor:pointer}}.tyk-message__content{flex-grow:1;margin-inline:var(--spacing-md)}.tyk-message--default{--message-variant-background:var(--tyk-message-default-background);--message-variant-border:var(--tyk-message-default-border);--message-variant-color:var(--tyk-message-default-text-color);>.tyk-icon:first-child{transform:rotate(180deg)}}.tyk-message--info{--message-variant-background:var(--tyk-message-info-background);--message-variant-border:var(--tyk-message-info-border);--message-variant-color:var(--tyk-message-info-text-color)}.tyk-message--success{--message-variant-background:var(--tyk-message-success-background);--message-variant-border:var(--tyk-message-success-border);--message-variant-color:var(--tyk-message-success-text-color)}.tyk-message--warning{--message-variant-background:var(--tyk-message-warning-background);--message-variant-border:var(--tyk-message-warning-border);--message-variant-color:var(--tyk-message-warning-text-color)}.tyk-message--danger{--message-variant-background:var(--tyk-message-danger-background);--message-variant-border:var(--tyk-message-danger-border);--message-variant-color:var(--tyk-message-danger-text-color)}.tyk-message--danger,.tyk-message--default,.tyk-message--info,.tyk-message--success,.tyk-message--warning{background-color:var(--message-variant-background);border:var(--general-border-width) solid var(--message-variant-border);color:var(--message-variant-color);&>.tyk-icon:first-child{background-color:var(--message-variant-border)}}:root{--tyk-modal-body-padding:var(--spacing-lg);--tyk-modal-footer-padding:var(--spacing-lg);--tyk-modal-header-padding:var(--spacing-lg);--tyk-modal-borders-color:var(--color-background-light)}.tyk-modal{--theme-header-height:15px;--theme-header-icon-size:65px;align-items:center;inset:0;pointer-events:none;position:fixed;z-index:-1;.tyk-panel{border:var(--general-border-width) solid var(--color-background-dark);box-shadow:none}.tyk-modal__dialog{opacity:0;transition:all .2s ease}&.opened{display:flex;z-index:var(--modal-z-index);.tyk-modal__dialog{display:flex;max-block-size:92vh;opacity:1;pointer-events:all}}&.appear-enter-done{.tyk-modal__dialog{margin-block-start:0;opacity:1}}}.tyk-modal__theme-header{block-size:var(--theme-header-height);border-start-end-radius:var(--general-border-radius);border-start-start-radius:var(--general-border-radius);inset-block-start:-1px;inset-inline:0;position:absolute;.tyk-icon{align-items:center;block-size:var(--theme-header-icon-size);border-radius:50%;color:#fff;display:flex;font-size:var(--xxl-font-size);inline-size:var(--theme-header-icon-size);inset-block-start:calc((var(--theme-header-icon-size) - var(--theme-header-height))/-2);inset-inline-start:calc(50% - var(--theme-header-icon-size)/2);justify-content:center;position:absolute}}.tyk-modal--theme-success{.tyk-modal__theme-header{background-color:var(--color-success-base);.tyk-icon{background-color:var(--color-success-base)}}}.tyk-modal--theme-warning{.tyk-modal__theme-header{background-color:var(--color-warning-base);.tyk-icon{background-color:var(--color-warning-base)}}}.tyk-modal--theme-danger{.tyk-modal__theme-header{background-color:var(--color-danger-base);.tyk-icon{background-color:var(--color-danger-base)}}}.tyk-modal__dialog{inline-size:85%;margin-block-end:0;margin-block-start:-5%;margin-inline:auto;opacity:0;pointer-events:all;transition:all .2s linear}@media only screen and (width >= 768px){.tyk-modal__dialog{inline-size:600px;&.tyk-modal--lg{inline-size:800px}}}.tyk-modal__content{background:#fff;border-radius:var(--general-border-radius);display:flex;flex-direction:column;inline-size:100%;position:relative}.tyk-modal__body{flex:1;overflow:auto;padding-block-end:var(--tyk-modal-body-padding);padding-block-start:calc(var(--tyk-modal-body-padding) + (var(--theme-header-icon-size) - var(--theme-header-height))/2);padding-inline:var(--tyk-modal-body-padding);&.no-padding{padding:0}}.tyk-modal__footer{align-items:center;display:flex;justify-content:flex-end;padding:var(--tyk-modal-footer-padding);>:not(:first-child){margin-inline-start:var(--spacing-xs)}}.tyk-modal__backdrop{background-color:var(--color-default-dark);border:none;display:none;inline-size:100%;inset:0;position:fixed;z-index:var(--modal-z-index) - 1;&.opened{display:block;opacity:.5;transition:opacity .2s ease}&.fade-enter-done{opacity:.5;z-index:9}}.tyk-modal__header{align-items:center;border-block-end:1px solid var(--tyk-modal-borders-color);display:flex;inline-size:100%;padding-block-end:var(--tyk-modal-header-padding);padding-block-start:calc(var(--tyk-modal-header-padding) + (var(--theme-header-icon-size) - var(--theme-header-height))/2);padding-inline:var(--tyk-modal-header-padding);.tyk-modal--theme-none &{padding-block-start:var(--tyk-modal-header-padding)}button{margin-inline-start:auto;padding-block:0;padding-inline:5px}+.tyk-modal__body{padding-block-start:var(--tyk-modal-body-padding)}}.tyk-modal__title{font-family:var(--font-family-medium);font-weight:500;inline-size:100%;margin:0}:root{--navigation-background-color:#fff;--navigation-item-padding-y:var(--spacing-sm);--navigation-item-padding-x:var(--spacing-md);--navigation-item-background-color:#fff;--navigation-item-color:var(--text-color);--navigation-item-hover-background-color:var(--color-primary-base);--navigation-item-hover-color:#fff;--navigation-item-active-background-color:var(--color-primary-dark);--navigation-item-active-color:#fff;--navigation-padding:0}.tyk-navigation{background-color:var(--navigation-background-color);block-size:100%;inline-size:100%;overflow:auto;padding:var(--navigation-padding);.tyk-navigation-item{inline-size:100%;a{color:var(--navigation-item-color);display:flex;padding-block:var(--navigation-item-padding-y);padding-inline:var(--navigation-item-padding-x);text-decoration:none;transition:all .2s ease;&:hover{background-color:var(--navigation-item-hover-background-color);color:var(--navigation-item-hover-color)}&.active{background-color:var(--navigation-item-active-background-color);color:var(--navigation-item-active-color)}}}}:root{--nav-bar-background-color:#fff;--nav-bar-text-color:var(--color-default-base);--nav-bar-padding-left:265px;--nav-bar-animate-left:245px;--nav-bar-top-padding:var(--spacing-sm);--nav-bar-bottom-padding:0;--nav-bar-left-padding:var(--spacing-md);--nav-bar-right-padding:var(--spacing-md);--nav-bar-padding:0 var(--nav-bar-right-padding) 0 var(--nav-bar-left-padding);--nav-bar-top:51px;--nav-bar-header-font-size:var(--xxl-font-size);--nav-bar-header-font-family:var(--headings-font-family-bold);--nav-bar-header-line-height:var(--xxl-line-height);--nav-bar-height:92px;--nav-bar-font-family:var(--font-family-regular)}.tyk-nav-bar{align-items:center;background-color:var(--nav-bar-background-color);border:none;color:var(--nav-bar-text-color);font-family:var(--nav-bar-font-family);inline-size:100%;margin:0;padding:var(--nav-bar-padding);transition:all .2s linear;z-index:8;&.tyk-nav-bar__with-tabs .tyk-tabs--default>ul li button{padding-block-start:0}@media screen and (width <= 1024px){padding-inline-start:var(--spacing-md);.menu-opened &{transform:translate(var(--nav-bar-animate-left))}}h1{color:var(--nav-bar-text-color)}h4{margin:0}.tyk-nav-bar__wrapper{align-items:center;block-size:var(--nav-bar-height);display:flex;flex-wrap:wrap;padding-block-end:var(--nav-bar-bottom-padding);&.tyk-nav-bar--align-top{align-items:flex-start}@media screen and (width <= 1024px){padding-inline-start:0}h1{font-family:var(--nav-bar-header-font-family);font-size:var(--nav-bar-header-font-size);line-height:var(--nav-bar-header-line-height);margin:0}h1,h4{padding-inline-end:var(--spacing-sm)}.tyk-nav-bar__container{align-items:center;display:flex;flex-grow:1;justify-content:space-between}.tyk-nav-bar__left{flex-grow:1}.tyk-nav-bar__right{margin-inline-start:auto}}}.tyk-nav-bar__pre{align-self:flex-end;color:var(--text-color);flex-basis:100%;a{color:var(--text-color);font-family:var(--font-family-bold);font-size:var(--xs-font-size);line-height:var(--xs-line-height)}}:root{--padding-y-panel-header:var(--spacing-sm);--padding-x-panel-header:25px;--padding-y-blank-panel-header:var(--spacing-md);--padding-panel-body:25px;--padding-x-right-panel-collapsable:48px;--padding-x-left-panel-collapsable:var(--padding-x-right-panel-collapsable);--panel-border-radius:0;--panel-default-border-bottom-color:var(--color-background-base);--panel-header-font-size:var(--base-font-size);--panel-header-font-family:var(--font-family-medium);--panel-primary-header-color:var(--color-primary-base);--panel-primary-body-color:#fff;--panel-primary-header-text-color:#fff;--panel-primary-body-text-color:var(--text-color);--panel-primary-label-color:var(--text-color);--panel-primary-border-color:none}.tyk-panel{background:#fff;border-radius:var(--panel-border-radius);font-family:var(--font-family-medium);margin-block-end:20px;position:relative;& &.has-error,&.has-error{border:var(--general-border-width) solid var(--color-danger-base)}.tyk-panel{border:var(--general-border-width) solid var(--color-default-light);box-shadow:none}.tyk-panel__header{border:none;font-size:var(--lg-font-size);line-height:var(--lg-line-height)}}.tyk-panel--blank{&.tyk-panel--collapsed{margin-block-end:20px;.tyk-panel__header{margin-block-end:0}}.tyk-panel__header{background-color:#fff;color:var(--color-default-base);margin-block-end:-20px;padding-block:var(--padding-y-blank-panel-header);padding-inline:var(--padding-x-panel-header)}}.tyk-panel--primary{background-color:transparent;.tyk-panel__header{background-color:var(--panel-primary-header-color);border:var(--panel-primary-border-color);color:var(--panel-primary-header-text-color)}.tyk-panel__body{background-color:var(--panel-primary-body-color);color:var(--panel-primary-body-text-color)}& .tyk-form-group{label{color:var(--panel-primary-label-color)}}.tyk-toggle{.tyk-toggle__label{color:var(--panel-primary-label-color)}}}.tyk-panel--success{.tyk-panel__header{background-color:var(--color-success-base);color:#fff}}.tyk-panel--danger{.tyk-panel__header{background-color:var(--color-danger-base);color:#fff}}.tyk-panel--warning{.tyk-panel__header{background-color:var(--color-warning-base);color:#fff}}.tyk-panel__body{background-color:#fff;border-radius:var(--panel-border-radius);font-family:var(--font-family-regular);padding:var(--padding-panel-body);position:relative;transition:block-size .2s;&~.tyk-panel__header{border-end-end-radius:0;border-end-start-radius:0}&.no-padding{padding:0}}.tyk-panel__header{align-items:center;border-block-end:1px solid var(--panel-default-border-bottom-color);border-radius:var(--panel-border-radius);border-end-end-radius:0;border-end-start-radius:0;display:flex;font-family:var(--panel-header-font-family);overflow:hidden;padding-block:var(--padding-y-panel-header);padding-inline:var(--padding-x-panel-header);position:relative;>.tyk-icon,>.tyk-tooltip__wrapper{margin-inline-start:5px}.tyk-panel--collapsed &{border-end-end-radius:var(--panel-border-radius);border-end-start-radius:var(--panel-border-radius)}&~.tyk-panel__body{border-start-end-radius:0;border-start-start-radius:0}& h3{margin:0}ng-transclude{vertical-align:middle}&.collapsable{cursor:pointer;.tyk-panel__icon-collapse--right &{padding-inline-end:var(--padding-x-right-panel-collapsable)}.tyk-panel__icon-collapse--left &{padding-inline-start:var(--padding-x-left-panel-collapsable)}}.collapsable__arrow-right{inset-inline-end:var(--spacing-sm);padding:var(--spacing-sm)}.collapsable__arrow-left,.collapsable__arrow-right{font-size:var(--sm-font-size);inset-block-start:calc(50% - 21px);position:absolute}.collapsable__arrow-left{inset-inline-start:0;padding-block:8px var(--spacing-sm);padding-inline:20px 0}}.tyk-panel__footer{align-items:center;border-block-start:1px solid var(--color-background-light);display:flex;justify-content:flex-end;padding:var(--spacing-lg);>:not(:first-child){margin-inline-start:5px}}.tyk-pill{align-items:center;border-radius:var(--general-border-radius);display:inline-flex;font-family:var(--font-family-medium);font-size:var(--xs-font-size);line-height:19px;margin:var(--pill-margin);padding-block:6px;padding-inline:var(--spacing-base);i{font-size:var(--xs-font-size)}+.tyk-pill{margin-inline-end:var(--spacing-sm)}button+span,span+button{margin-inline-start:var(--spacing-sm)}&:first-child{margin-inline-end:var(--spacing-sm)}&:last-child{margin-inline-end:0}}.tyk-pill--square{border-radius:8px}.tyk-pill--default{background-color:var(--default-pill-background-color);color:var(--default-pill-color);i{color:var(--default-pill-color)}}.tyk-pill--default-outline{box-shadow:var(--default-outline-pill-box-shadow);color:var(--text-color);i{color:var(--text-color)}}.tyk-pill--primary{background-color:var(--color-primary-base);color:#fff;i{color:var(--default-pill-color)}}.tyk-pill--primary-outline{box-shadow:inset 0 0 0 2px var(--color-primary-base);color:var(--text-color);i{color:var(--text-color)}}.tyk-pill--success{background-color:var(--color-success-base);color:#fff;i{color:#fff}}.tyk-pill--success-outline{box-shadow:inset 0 0 0 2px var(--color-success-base);color:var(--text-color);i{color:var(--text-color)}}.tyk-pill--danger{background-color:var(--color-danger-base);color:#fff;i{color:#fff}}.tyk-pill--danger-outline{box-shadow:inset 0 0 0 2px var(--color-danger-base);color:var(--text-color);i{color:var(--text-color)}}.tyk-pill--warning{background-color:var(--color-warning-base);color:#fff;i{color:#fff}}.tyk-pill--warning-outline{box-shadow:inset 0 0 0 2px var(--color-warning-base);color:var(--text-color);i{color:var(--text-color)}}.tyk-pill--info{background-color:var(--color-info-base);color:#fff;i{color:#fff}}.tyk-pill--info-outline{box-shadow:inset 0 0 0 2px var(--color-info-base);color:var(--text-color);i{color:var(--text-color)}}.tyk-ui-reveal-wrapper{align-items:stretch;block-size:100%;display:flex;flex-direction:column;inline-size:100%;inset-block-end:0;inset-inline-start:0;justify-content:flex-end;pointer-events:none;position:absolute;z-index:1000}.tyk-ui-reveal-wrapper__panel{background-color:#fff;display:flex;flex-direction:column;flex-shrink:0;margin:0;max-block-size:calc(100% - 2rem);overflow:auto;padding:0;pointer-events:all}.tyk-ui-reveal-wrapper__hole{background-color:green;flex-grow:1;inline-size:100%;opacity:0;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:-1}.tyk-ui-reveal-wrapper__gutter{align-items:stretch;background-color:var(--color-primary-base);block-size:2rem;box-shadow:0 5px 10px rgba(0,0,0,.3);cursor:row-resize;display:flex;inline-size:100%;justify-content:space-between;pointer-events:all;position:relative;z-index:2}.tyk-ui-reveal-wrapper__gutter__headerleft,.tyk-ui-reveal-wrapper__gutter__headerright{align-items:center;display:flex;flex:1}.tyk-ui-reveal-wrapper__gutter__headerleft{justify-content:flex-start}.tyk-ui-reveal-wrapper__gutter__headerright{justify-content:flex-end}.tyk-ui-reveal-wrapper__gutter__logo{align-self:center;background-image:url(images/drag.svg);block-size:1rem;inline-size:1rem;padding:.2rem;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:2;&:hover{border:dashed}}:root{--sidebar-background-color:#fff;--sidebar-top:58px;--sidebar-height:calc(100vh - 58px);--sidebar-width:280px;--sidebar-padding:0}.tyk-sidebar{background-color:var(--sidebar-background-color);block-size:var(--sidebar-height);flex:0 0 var(--sidebar-width);inset-block-start:var(--sidebar-top);overflow:auto;padding:var(--sidebar-padding);position:sticky}:root{--table-th-padding:var(--spacing-base) var(--spacing-sm);--table-td-padding-y:var(--spacing-xs);--table-td-padding-x:var(--spacing-sm);--table-first-last-padding:20px;--table-pagination-padding:var(--spacing-md) 25px}.tyk-table{background-color:#fff;border-collapse:collapse;border-radius:var(--general-border-radius);border-spacing:0;inline-size:100%;>thead th{border-inline-end:1px solid var(--color-default-light);color:var(--text-color);font-family:var(--font-family-bold);font-size:var(--sm-font-size);line-height:var(--sm-line-height);padding:var(--table-th-padding);text-transform:uppercase;&:last-child{border-inline-end:none}i{font-size:var(--xs-font-size)}.tyk-button{background:none;color:var(--color-default-base);padding:0}}>tbody tr:hover{background:rgba(var(--color-background-light)/40%)}>tbody td{border-inline-end:1px solid var(--color-default-light);font-family:var(--font-family-regular);font-size:var(--sm-font-size);line-height:var(--sm-line-height);padding-block:var(--table-td-padding-y);padding-inline:var(--table-td-padding-x);vertical-align:middle;&:last-child{border-inline-end:none}&.fit{inline-size:1%;white-space:nowrap}input:not([type=checkbox],[type=radio]){margin-block-start:var(--spacing-base)}a{color:var(--text-color);font-family:var(--font-family-medium)}input[type=checkbox],label{margin:0}}tbody>tr{border-block-start:1px solid var(--color-default-light);border-radius:var(--general-border-radius);transition:all .4s linear;&.clickable{cursor:pointer}}>tbody tr td:first-child,>thead tr th:first-child{padding-inline-start:var(--table-first-last-padding);&.with-icon{padding-inline-start:var(--spacing-base)}}>tbody tr td:last-child,>thead tr th:last-child{padding-inline-end:var(--table-first-last-padding);&.with-icon{padding-inline-end:var(--spacing-base)}}.tyk-pagination{padding:var(--table-pagination-padding);li:first-child{margin-inline-start:auto}}.nowrap{white-space:nowrap}.wrap{word-break:break-all}}.tyk-table__wrapper{border:var(--general-border-width) solid var(--color-default-light);border-radius:var(--general-border-radius);overflow:auto;&.no-innner-horizontal-borders{& .tyk-table>tbody td,& .tyk-table>thead th{border-inline-end:none}}}.tyk-table__wrapper--no-border{border:none}.tyk-table-search{padding-block:var(--spacing-sm) 0;padding-inline:25px;label{font-size:var(--sm-font-size);text-transform:uppercase}}.header-sort{padding-block-start:var(--spacing-xs);padding-inline-start:3px;vertical-align:middle}.new-table-pagination{float:inline-end}.selectable>div{margin-inline-start:var(--spacing-md)}.scrollable{display:block;overflow:auto}.fixed-header{background:#fff;inset-block-start:0;position:sticky}.tyk-table.has-error,.tyk-table__wrapper.has-error{border:var(--general-border-width) solid var(--color-danger-base)!important}:root{--tabs-default-content-padding:25px;--tab-button-padding:var(--spacing-sm) 2px 3px 2px;--tab-button-margin:0;--tabs-font-familly:var(--font-family-medium);--tab-button-color:var(--text-color);--tab-active-button-color:var(--text-color);--tab-border-color:var(--color-success-base)}.tyk-tabs--default{>ul{display:flex;list-style-type:none;margin:0;overflow:auto;padding:0;li{display:flex;margin-inline-end:var(--tab-button-margin);white-space:nowrap;&:last-child{margin-inline-end:0}&.active button,button:hover{border-block-end-color:var(--tab-border-color);color:var(--tab-active-button-color);opacity:1}button{background:none;border:none;border-block-end:4px solid transparent;color:var(--tab-button-color);cursor:pointer;font-family:var(--tabs-font-familly);font-size:var(--sm-font-size);margin-inline-end:var(--spacing-md);opacity:.7;padding:var(--tab-button-padding);transition:all .2s linear;&:focus{outline:none}}}}}.tyk-tab__content{padding:var(--tabs-default-content-padding)}.tyk-toast__container{inset-block-end:0;inset-inline-end:var(--spacing-md);min-inline-size:300px;position:fixed;z-index:11}.tyk-toast__message{position:relative}.tyk-toast-message__button{block-size:var(--spacing-md);color:var(--text-color);inline-size:var(--spacing-md);inset-block-start:var(--spacing-xs);inset-inline-end:var(--spacing-xs);line-height:1;padding:var(--spacing-xs);position:absolute;&:hover{background:hsla(0,0%,100%,.3);color:var(--text-color)}}:root{--tooltip-max-width:450px}.tyk-tooltip{align-items:center;background-color:var(--color-primary-light);border:2px solid var(--color-primary-base);border-radius:var(--general-border-radius);display:flex;max-inline-size:var(--tooltip-max-width);padding:var(--spacing-md);>.tyk-icon:first-child{background-color:var(--color-default-base-light);block-size:32px;border-radius:50%;color:#fff;inline-size:32px;&:before{align-items:center;block-size:100%;display:flex;inline-size:100%;justify-content:center}}>.tyk-icon+.tyk-tooltip__content{margin-inline-start:var(--spacing-md)}>.tyk-icon:last-child{cursor:pointer}}.tyk-tooltip__content{color:var(--color-default-dark);word-break:break-word;word-wrap:break-word;+.tyk-icon{margin-inline-start:var(--spacing-md)}}:root{--tyk-combobox-pill-background:#f0f0f0;--tyk-combobox-pill-color:var(--text-color);--tyk-combobox-list-item-hover-color:var(--form-default-color);--tyk-combobox-list-item-disabled-color:var(--form-default-color)}.tyk-combobox2{--container-trigger-width:40px;--values-default-height:38px;outline:none;&.disabled{.tyk-form-control{background-color:var(--form-control-disabled-background-color);border:var(--form-control-disabled-border)!important;color:var(--form-control-disabled-color)}&:not(.is-expand-mode) .tyk-combobox2__values-container-trigger,.tyk-combobox2__current-values .tyk-pill--combobox button,.tyk-form-control{cursor:not-allowed}.tyk-combobox2__entry-field{background-color:transparent;cursor:not-allowed}}.tyk-form-control{block-size:auto;display:flex;flex-direction:row;min-block-size:40px;padding:0;position:relative;&:focus-within{border:var(--form-control-border-focus);outline:none}}}.tyk-combobox2__current-values{display:flex;flex-grow:1;flex-wrap:wrap;max-inline-size:calc(100% - var(--container-trigger-width));padding-block:2px;padding-inline-start:var(--spacing-sm);&.expand-mode{max-block-size:1000px;overflow:hidden;transition:max-block-size 1s ease}.tyk-pill--combobox{background-color:var(--tyk-combobox-pill-background);border-radius:var(--spacing-sm);color:var(--tyk-combobox-pill-color);margin-block:3px;max-block-size:26px;max-inline-size:100%;padding-block:var(--spacing-xs);padding-inline:var(--spacing-sm);button{background:none;border:none;cursor:pointer;inline-size:23px;outline:none;+span{margin-inline-start:0}}span{overflow:hidden;text-overflow:ellipsis}i{margin-inline-end:var(--spacing-xs)}}}.tyk-combobox2__current-values--collapsed.expand-mode{max-block-size:var(--values-default-height);transition:max-block-size .2s ease}.tyk-combobox2__entry-field{border:none;line-height:30px;&:active,&:focus{border:none;outline:none}&::placeholder{color:var(--form-control-placeholder-color);font-family:var(--form-control-placeholder-font-family)}}.tyk-combobox2__text-value{font-family:var(--font-family-medium);font-size:var(--sm-font-size);inline-size:100%;line-height:1;outline:none;overflow:hidden;padding-block:9px;padding-inline:5px;text-overflow:ellipsis;&.overflow-single{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}&.is-placeholder{color:var(--form-control-placeholder-color);font-family:var(--form-control-placeholder-font-family)}}.tyk-combobox2__values-container-trigger{align-items:center;color:var(--text-color);cursor:pointer;display:flex;flex-basis:var(--container-trigger-width);justify-content:center;outline:none;position:relative;transition:all .2s;.tyk-icon{block-size:14px}}.tyk-combobox2__values-container-trigger--expanded{transform:rotate(180deg)}.tyk-form-group--rounded-corners .tyk-combobox2-disabled-overlay{border-radius:calc(var(--general-border-radius) - 2px)}.tyk-combobox2__combobox-dropdown{background-color:#fff;border:var(--general-border-width) solid var(--form-default-color);display:flex;flex-direction:column;&.tyk-form-group--rounded-corners{border-radius:var(--general-border-radius);z-index:1081}.tyk-combobox2__combobox-search{background-color:#fff;inset-block-start:0;padding-block:var(--spacing-sm);padding-inline:var(--spacing-md);position:sticky;+.combobox-list{border-block-start:1px solid var(--form-default-color)}}.tyk-combobox2__combobox-list{max-block-size:255px;li{cursor:pointer;display:flex;font-family:var(--font-family-medium);padding-block:9px;padding-inline:var(--spacing-md);transition:all .2s;&.active,&:hover{background-color:var(--tyk-combobox-list-item-hover-color)}&.disabled{background-color:initial;color:var(--tyk-combobox-list-item-disabled-color)}+li{border-block-start:1px solid var(--form-default-color)}i{margin-inline-end:var(--spacing-xs)}.item-name{line-height:16px;overflow:hidden;text-overflow:ellipsis}}}}:root{--tyk-checkbox-theme-light-label-color:#fff;--tyk-checkbox-theme-light-label-disabled-color:#fff;--tyk-checkbox-theme-dark-label-color:var(--text-color);--tyk-checkbox-theme-dark-label-disabled-color:var(--text-color)}.tyk-checkbox{label{--label-indent:20px;align-items:flex-start;display:flex;padding-inline-start:var(--label-indent);input{margin-block-start:5px;margin-inline-start:calc(var(--label-indent)*-1)}}}.tyk-checkbox--theme-light{label{color:var(--tyk-checkbox-theme-light-label-color)}&.tyk-checkbox--is-disabled{label{color:var(--tyk-checkbox-theme-light-label-disabled-color)}}}.tyk-checkbox--is-disabled{label,p{cursor:not-allowed;opacity:.5}}.flatpickr-calendar{-webkit-animation:none;animation:none;background:transparent;background:#fff;border:0;border-radius:5px;-webkit-box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,.08);box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,.08);-webkit-box-sizing:border-box;box-sizing:border-box;direction:ltr;display:none;font-size:14px;line-height:24px;opacity:0;padding:0;position:absolute;text-align:center;-ms-touch-action:manipulation;touch-action:manipulation;visibility:hidden;width:307.875px}.flatpickr-calendar.inline,.flatpickr-calendar.open{max-height:640px;opacity:1;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{-webkit-animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1);animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{display:block;z-index:999}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){-webkit-box-shadow:none!important;box-shadow:none!important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){-webkit-box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-calendar .hasTime .dayContainer,.flatpickr-calendar .hasWeeks .dayContainer{border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.hasTime .flatpickr-time{border-top:1px solid #e6e6e6;height:40px}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:after,.flatpickr-calendar:before{border:solid transparent;content:"";display:block;height:0;left:22px;pointer-events:none;position:absolute;width:0}.flatpickr-calendar.arrowRight:after,.flatpickr-calendar.arrowRight:before,.flatpickr-calendar.rightMost:after,.flatpickr-calendar.rightMost:before{left:auto;right:22px}.flatpickr-calendar.arrowCenter:after,.flatpickr-calendar.arrowCenter:before{left:50%;right:50%}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:after,.flatpickr-calendar.arrowTop:before{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:after,.flatpickr-calendar.arrowBottom:before{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{display:inline-block;position:relative}.flatpickr-months{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-months .flatpickr-month{background:transparent;line-height:1;overflow:hidden;position:relative;text-align:center;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.flatpickr-months .flatpickr-month,.flatpickr-months .flatpickr-next-month,.flatpickr-months .flatpickr-prev-month{color:rgba(0,0,0,.9);fill:rgba(0,0,0,.9);height:34px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.flatpickr-months .flatpickr-next-month,.flatpickr-months .flatpickr-prev-month{cursor:pointer;padding:10px;position:absolute;text-decoration:none;top:0;z-index:3}.flatpickr-months .flatpickr-next-month.flatpickr-disabled,.flatpickr-months .flatpickr-prev-month.flatpickr-disabled{display:none}.flatpickr-months .flatpickr-next-month i,.flatpickr-months .flatpickr-prev-month i{position:relative}.flatpickr-months .flatpickr-next-month.flatpickr-prev-month,.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month{left:0}.flatpickr-months .flatpickr-next-month.flatpickr-next-month,.flatpickr-months .flatpickr-prev-month.flatpickr-next-month{right:0}.flatpickr-months .flatpickr-next-month:hover,.flatpickr-months .flatpickr-prev-month:hover{color:#959ea9}.flatpickr-months .flatpickr-next-month:hover svg,.flatpickr-months .flatpickr-prev-month:hover svg{fill:#f64747}.flatpickr-months .flatpickr-next-month svg,.flatpickr-months .flatpickr-prev-month svg{height:14px;width:14px}.flatpickr-months .flatpickr-next-month svg path,.flatpickr-months .flatpickr-prev-month svg path{-webkit-transition:fill .1s;transition:fill .1s;fill:inherit}.numInputWrapper{height:auto;position:relative}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper input::-webkit-inner-spin-button,.numInputWrapper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.numInputWrapper span{border:1px solid rgba(57,57,57,.15);-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer;height:50%;line-height:50%;opacity:0;padding:0 4px 0 2px;position:absolute;right:0;width:14px}.numInputWrapper span:hover{background:rgba(0,0,0,.1)}.numInputWrapper span:active{background:rgba(0,0,0,.2)}.numInputWrapper span:after{content:"";display:block;position:absolute}.numInputWrapper span.arrowUp{border-bottom:0;top:0}.numInputWrapper span.arrowUp:after{border-bottom:4px solid rgba(57,57,57,.6);border-left:4px solid transparent;border-right:4px solid transparent;top:26%}.numInputWrapper span.arrowDown{top:50%}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(57,57,57,.6);top:40%}.numInputWrapper span svg{height:auto;width:inherit}.numInputWrapper span svg path{fill:rgba(0,0,0,.5)}.numInputWrapper:hover{background:rgba(0,0,0,.05)}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{color:inherit;display:inline-block;font-size:135%;font-weight:300;height:34px;left:12.5%;line-height:inherit;line-height:1;padding:7.48px 0 0;position:absolute;text-align:center;-webkit-transform:translateZ(0);transform:translateZ(0);width:75%}.flatpickr-current-month span.cur-month{color:inherit;display:inline-block;font-family:inherit;font-weight:700;margin-left:.5ch;padding:0}.flatpickr-current-month span.cur-month:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .numInputWrapper{display:inline-block;width:6ch;width:7ch\0}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:rgba(0,0,0,.9)}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:rgba(0,0,0,.9)}.flatpickr-current-month input.cur-year{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;background:transparent;border:0;border-radius:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;cursor:text;display:inline-block;font-family:inherit;font-size:inherit;font-weight:300;height:auto;line-height:inherit;margin:0;padding:0 0 0 .5ch;vertical-align:initial}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{background:transparent;color:rgba(0,0,0,.5);font-size:100%;pointer-events:none}.flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;-webkit-appearance:menulist;-moz-appearance:menulist;background:transparent;border:none;border-radius:0;box-sizing:border-box;-webkit-box-sizing:border-box;color:inherit;cursor:pointer;font-family:inherit;font-size:inherit;font-weight:300;height:auto;line-height:inherit;margin:-1px 0 0;outline:none;padding:0 0 0 .5ch;position:relative;vertical-align:initial;width:auto}.flatpickr-current-month .flatpickr-monthDropdown-months:active,.flatpickr-current-month .flatpickr-monthDropdown-months:focus{outline:none}.flatpickr-current-month .flatpickr-monthDropdown-months:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:transparent;outline:none;padding:0}.flatpickr-weekdays{background:transparent;overflow:hidden;text-align:center;width:100%;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:28px}.flatpickr-weekdays,.flatpickr-weekdays .flatpickr-weekdaycontainer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-weekdays .flatpickr-weekdaycontainer,span.flatpickr-weekday{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}span.flatpickr-weekday{background:transparent;color:rgba(0,0,0,.54);cursor:default;display:block;font-size:90%;font-weight:bolder;line-height:1;margin:0;text-align:center}.dayContainer,.flatpickr-weeks{padding:1px 0 0}.flatpickr-days{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;overflow:hidden;position:relative;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;width:307.875px}.flatpickr-days:focus{outline:0}.dayContainer{-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;display:-ms-flexbox;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-wrap:wrap;max-width:307.875px;min-width:307.875px;outline:0;padding:0;text-align:left;width:307.875px;-ms-flex-pack:justify;-webkit-justify-content:space-around;justify-content:space-around;opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}.dayContainer+.dayContainer{-webkit-box-shadow:-1px 0 0 #e6e6e6;box-shadow:-1px 0 0 #e6e6e6}.flatpickr-day{background:none;border:1px solid transparent;border-radius:150px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#393939;cursor:pointer;-webkit-flex-basis:14.2857143%;font-weight:400;width:14.2857143%;-ms-flex-preferred-size:14.2857143%;display:inline-block;flex-basis:14.2857143%;height:39px;line-height:39px;margin:0;max-width:39px;position:relative;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center}.flatpickr-day.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day.nextMonthDay:focus,.flatpickr-day.nextMonthDay:hover,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.today.inRange,.flatpickr-day:focus,.flatpickr-day:hover{background:#e6e6e6;border-color:#e6e6e6;cursor:pointer;outline:0}.flatpickr-day.today{border-color:#959ea9}.flatpickr-day.today:focus,.flatpickr-day.today:hover{background:#959ea9;border-color:#959ea9;color:#fff}.flatpickr-day.endRange,.flatpickr-day.endRange.inRange,.flatpickr-day.endRange.nextMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.endRange:focus,.flatpickr-day.endRange:hover,.flatpickr-day.selected,.flatpickr-day.selected.inRange,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.selected:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange,.flatpickr-day.startRange.inRange,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.startRange:focus,.flatpickr-day.startRange:hover{background:#569ff7;border-color:#569ff7;-webkit-box-shadow:none;box-shadow:none;color:#fff}.flatpickr-day.endRange.startRange,.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.endRange.endRange,.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)){-webkit-box-shadow:-10px 0 0 #569ff7;box-shadow:-10px 0 0 #569ff7}.flatpickr-day.endRange.startRange.endRange,.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;-webkit-box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.nextMonthDay,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.prevMonthDay{background:transparent;border-color:transparent;color:rgba(57,57,57,.3);cursor:default}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{color:rgba(57,57,57,.1);cursor:not-allowed}.flatpickr-day.week.selected{border-radius:0;-webkit-box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7;box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{float:left}.flatpickr-weekwrapper .flatpickr-weeks{-webkit-box-shadow:1px 0 0 #e6e6e6;box-shadow:1px 0 0 #e6e6e6;padding:0 12px}.flatpickr-weekwrapper .flatpickr-weekday{float:none;line-height:28px;width:100%}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{background:transparent;border:none;color:rgba(57,57,57,.3);cursor:default;display:block;max-width:none;width:100%}.flatpickr-innerContainer{display:block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;overflow:hidden}.flatpickr-innerContainer,.flatpickr-rContainer{-webkit-box-sizing:border-box;box-sizing:border-box}.flatpickr-rContainer{display:inline-block;padding:0}.flatpickr-time{-webkit-box-sizing:border-box;box-sizing:border-box;display:block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:0;line-height:40px;max-height:40px;outline:0;overflow:hidden;text-align:center}.flatpickr-time:after{clear:both;content:"";display:table}.flatpickr-time .numInputWrapper{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;float:left;height:40px;width:40%}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#393939}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#393939}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;background:transparent;border:0;border-radius:0;-webkit-box-shadow:none;box-shadow:none;-webkit-box-sizing:border-box;box-sizing:border-box;color:#393939;font-size:14px;height:inherit;line-height:inherit;margin:0;padding:0;position:relative;text-align:center}.flatpickr-time input.flatpickr-hour{font-weight:700}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{border:0;outline:0}.flatpickr-time .flatpickr-am-pm,.flatpickr-time .flatpickr-time-separator{-webkit-align-self:center;color:#393939;float:left;font-weight:700;height:inherit;line-height:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:2%;-ms-flex-item-align:center;align-self:center}.flatpickr-time .flatpickr-am-pm{cursor:pointer;font-weight:400;outline:0;text-align:center;width:18%}.flatpickr-time .flatpickr-am-pm:focus,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time input:hover{background:#eee}.flatpickr-input[readonly]{cursor:pointer}@-webkit-keyframes fpFadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fpFadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.flatpickr-day.endRange,.flatpickr-day.endRange.inRange,.flatpickr-day.endRange.nextMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.endRange:focus,.flatpickr-day.endRange:hover,.flatpickr-day.selected,.flatpickr-day.selected.inRange,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.selected:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange,.flatpickr-day.startRange.inRange,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.startRange:focus,.flatpickr-day.startRange:hover{background:var(--color-success-base)!important;border-color:var(--color-success-base)!important}:root{--tyk-dropdown-item-background:#fff;--tyk-dropdown-item-background-hover:var(--color-background-light);--tyk-dropdown-item-border-color:#fff;--tyk-dropdown-item-text-color:var(--text-color);--tyk-dropdown-item-hover-text-color:var(--text-color)}.tyk-dropdown{display:inline-block;+.tyk-button,+.tyk-dropdown,+.tyk-toggle{margin-inline-start:var(--spacing-sm)}label{display:block}&.theme-list .tyk-button{background:#fff;border:var(--general-border-width) solid var(--color-default-base);border-radius:var(--general-border-radius);color:var(--text-color);&:active,&:active:focus,&:focus,&:hover{background:#fff;border-color:var(--color-background-dark);color:var(--text-color)}}}.tyk-dropdown--block{inset-inline:var(--spacing-md)}.tyk-dropdown--relative{inset-inline:auto}.tyk-dropdown--custom{padding-block:var(--spacing-md);padding-inline:25px}.tyk-dropdown__trigger{position:relative}.tyk-dropdown-menu{background:var(--tyk-dropdown-item-background);border:var(--general-border-width) solid var(--color-default-light);border-radius:var(--general-border-radius);filter:drop-shadow(1px 2px 1px rgba(0 0 0/10%));list-style-type:none;margin-block:3px 0;margin-inline:0;overflow:hidden;padding:0;z-index:1081;&.tyk-dropdown--scrollable{overflow:auto}.tyk-panel{margin:0}&.opened{display:flex;flex-direction:column;position:absolute}>li{background:var(--tyk-dropdown-item-background);border-block-end:1px solid var(--tyk-dropdown-item-border-color);display:flex;position:relative;z-index:7;&:last-child{border:none}i{inset-block-start:9px;inset-inline-start:7px;position:absolute}}}.tyk-dropdown-menu>li>a{color:var(--tyk-dropdown-item-text-color);cursor:pointer;display:flex;font-size:12px;inline-size:100%;padding-block:7px;padding-inline:24px;text-decoration:none;text-transform:uppercase;&:hover{background-color:var(--tyk-dropdown-item-background-hover);color:var(--tyk-dropdown-item-hover-text-color);text-decoration:none}.badge{background:var(--text-color);color:#fff;font-size:var(--spacing-sm);margin-block-start:-4px;margin-inline-start:6px}}.tyk-dropdown--relative.opened{position:relative}.dropdown__menu{.tyk-list{background:#fff;max-block-size:none;li{padding:0;&:hover{background:var(--primary-light)}a{cursor:pointer;display:block;padding-block:10px;padding-inline:20px;text-decoration:none}}}}.tyk-editable-list__submit-btn{white-space:nowrap}.tyk-editable-list__form{align-items:center;display:flex;.tyk-form-group{margin-block-end:0}span.inline{margin-block-start:0}>span{margin-inline-start:var(--spacing-base);&.inline-with-label{align-self:flex-end}}}.tyk-editable-list__form--sticked{margin-inline-start:0;button{border-end-end-radius:3px;border-end-start-radius:0;border-start-end-radius:3px;border-start-start-radius:0;padding-block:var(--spacing-sm) 11px;padding-inline:var(--spacing-base)}}.tyk-editable-list__header{background-color:#fff;border:var(--general-border-width) solid var(--color-default-light);border-block-end:1px solid var(--color-default-light)!important;border-start-end-radius:var(--general-border-radius);border-start-start-radius:var(--general-border-radius);color:var(--text-color)!important;font-family:var(--font-family-bold);font-size:11px;margin-block-start:var(--spacing-sm);padding-block:var(--spacing-base);text-transform:uppercase;&+.tyk-editable-list-items.table{border-block-start:none;border-start-end-radius:0;border-start-start-radius:0}.tyk-row{margin:0}}.tyk-editable-list-items{list-style:none;overflow:hidden;padding-block:var(--spacing-md) 0;padding-inline:0;.edit-mode-wrapper.table button{margin-block-start:23px}.tyk-row{margin:0}button[disabled]{cursor:not-allowed}&.tyk-editable-list-items--inline{align-items:center;color:var(--text-color);display:flex;flex-wrap:wrap}li{border-block-start:1px solid var(--color-default-light);transition:all .2s linear;&.tyk-editable-list-item--inline{background-color:var(--color-default-light);border:none;border-radius:25px;color:#fff;float:inline-start;font-family:var(--font-family-medium);margin-block-end:var(--spacing-sm);margin-inline-end:var(--spacing-base);padding-block:0;padding-inline:var(--spacing-base);white-space:nowrap;.tyk-editable-list-item__text{color:var(--text-color);padding-block:var(--spacing-xs);padding-inline:0}.tyk-editable-list-action__button.on-edit{margin-block-start:0}}&:first-child{border-block-start:none}.tyk-editable-list-item__text{display:flex;padding-block:var(--spacing-sm);padding-inline:0;>span{flex-grow:1}>div:first-child{flex-grow:1;.error-message{margin:0}}}.tyk-editable-list-items{overflow:hidden;padding-block-end:var(--spacing-sm)}.tyk-editable-list{background:var(--background-light);border-block-start:var(--spacing-xs) solid var(--background-dark);padding-block:var(--spacing-sm);padding-inline:var(--spacing-base)}}.tyk-editable-list-item__text{display:block;word-wrap:break-word;word-break:break-all}.tyk-editable-list-action__button{background:transparent;border:none;&.on-edit{margin-inline-start:var(--spacing-sm)}}.tyk-editable-list-item-controls{flex-grow:0;text-align:end}}.tyk-editable-list-item__controls{text-align:end}.tyk-editable-list-items.table{background-color:#fff;border:var(--general-border-width) solid var(--color-default-light);border-radius:var(--general-border-radius);padding:0!important;li{border-color:var(--color-default-light);&:hover{background:var(--color-background-light)}}.tyk-editable-list-item__text{background:transparent}.tyk-editable-list-action__button{border-radius:6px;cursor:pointer;margin-inline-end:var(--spacing-sm)}}.editable-list__header{align-items:center;display:flex;margin-block-end:10px;.tyk-button{margin-inline-start:auto}}.editable-list__wrapper.has-error .editable-list__list{border:var(--general-border-width) solid var(--color-danger-base)}.editable-list__list{border:var(--general-border-width) solid var(--color-default-light);border-radius:var(--general-border-radius);display:flex;flex-direction:column-reverse}.editable-list__item{border-block-end:1px solid var(--color-default-light);display:flex;flex-wrap:nowrap;inline-size:100%;&:first-child{border-block-end:none}}.editable-list__item-header{border-block-end:1px solid var(--color-default-light);color:var(--text-color);font-family:var(--font-family-bold);font-size:var(--sm-font-size);line-height:var(--sm-line-height);text-transform:uppercase;.editable-list__item-cell{padding:10px}}.editable-list__item-cell{border-inline-start:1px solid var(--color-default-light);overflow:hidden;padding-block:0;padding-inline:10px;.tyk-form-control--readonly{overflow:hidden;text-overflow:ellipsis;word-break:break-all}&:first-child{border-inline-start:none;padding-inline-start:15px}&:last-child{padding-inline-end:15px}.tyk-form-group{inline-size:100%;margin-block:10px;margin-inline:0}}.editable-list__item--size-1{display:flex;flex-grow:2;inline-size:8.3333333333%}.editable-list__item--size-2{display:flex;flex-grow:3;inline-size:16.6666666667%}.editable-list__item--size-3{display:flex;flex-grow:4;inline-size:25%}.editable-list__item--size-4{display:flex;flex-grow:5;inline-size:33.3333333333%}.editable-list__item--size-5{display:flex;flex-grow:6;inline-size:41.6666666667%}.editable-list__item--size-6{display:flex;flex-grow:7;inline-size:50%}.editable-list__item--size-7{display:flex;flex-grow:8;inline-size:58.3333333333%}.editable-list__item--size-8{display:flex;flex-grow:9;inline-size:66.6666666667%}.editable-list__item--size-9{display:flex;flex-grow:10;inline-size:75%}.editable-list__item--size-10{display:flex;flex-grow:11;inline-size:83.3333333333%}.editable-list__item--size-11{display:flex;flex-grow:12;inline-size:91.6666666667%}.editable-list__item--size-12{display:flex;flex-grow:13;inline-size:100%}.editable-list__item--size-fit{inline-size:fit-content}.editable-list__item-action{align-items:flex-start;display:flex;inline-size:100px;justify-content:center;.tyk-button{margin-block-start:20px}}.editable-list__item-action--read-only{align-items:center;color:var(--color-default-light);.tyk-button{margin-block-start:0}}.tyk-file-input__wrapper{position:relative;>input{padding-block:6px;padding-inline:var(--spacing-md)}>button{background:none;border:none;cursor:pointer;inset-block-start:9px;inset-inline-end:var(--spacing-base);position:absolute}}.tyk-multiselect{align-items:flex-start;border-radius:var(--general-border-radius);display:flex;flex-wrap:wrap;inline-size:100%;margin-block-end:var(--spacing-md);.input-group .input-group-addon+.form-control{border-end-end-radius:0!important;border-end-start-radius:0!important;border-width:1px!important;border-inline-start:none!important;border-start-end-radius:0!important;border-start-start-radius:0!important}.input-group .input-group-addon{background:transparent!important;border-end-end-radius:0!important;border-end-start-radius:0!important;border-width:1px!important;border-inline-end:0!important;border-start-end-radius:0!important;border-start-start-radius:0!important}&.has-error{border:var(--general-border-width) solid var(--color-danger-base)}.tyk-form-group{margin:0}.tyk-multiselect-item__controls{display:flex;flex-wrap:nowrap;margin-inline-start:auto;.tyk-button{color:var(--text-color);margin-inline-start:var(--spacing-xs);&:last-child{margin-inline-start:0}}}}.tyk-multiselect__header{background-color:var(--color-default-base);border-start-end-radius:var(--general-border-radius);border-start-start-radius:var(--general-border-radius);color:#fff;display:flex;inline-size:100%;>div{inline-size:50%;padding-block:var(--spacing-sm);padding-inline:var(--spacing-base)}}.tyk-multiselect__panel-wrapper{block-size:265px;border:var(--form-control-border);border-block-start:none;border-end-end-radius:var(--general-border-radius);border-end-start-radius:var(--general-border-radius);display:flex;flex:1;inline-size:100%}.tyk-multiselect__panel{display:flex;flex-direction:column;inline-size:calc(50% + 1px);margin-block:0;margin-inline:-1px 0;position:relative;&:last-child{border-inline-start:var(--form-control-border);.tyk-form-group{inline-size:calc(100% + 2px);margin-inline-start:-1px}}.tyk-message{margin-block:var(--spacing-md) 0;margin-inline:var(--spacing-md)}}.tyk-multiselect__list{list-style-type:none;margin:0;padding:0;>li{border-block-end:var(--form-control-border);display:flex;flex-direction:column;padding-block:var(--spacing-sm);padding-inline:var(--spacing-base);>div{align-items:start;display:flex;inline-size:100%}.loading{justify-content:center}&:last-child{border-block-end:none}}}.tyk-multiselect__list--scroll{block-size:100%;overflow-y:auto}.tyk-multiselect-item__name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:root{--pagination-border-radius:var(--general-border-radius);--pagination-button-padding:var(--spacing-sm) var(--spacing-base)}.tyk-pagination{display:flex;list-style-type:none;margin-block:var(--spacing-sm);margin-inline:0;padding:0;li{align-items:center;display:flex}li:first-child button{border-end-start-radius:var(--pagination-border-radius);border-start-start-radius:var(--pagination-border-radius)}li:last-child button{border-end-end-radius:var(--pagination-border-radius);border-start-end-radius:var(--pagination-border-radius)}span{margin-block:0;margin-inline:var(--spacing-sm)}button{background:#fff;border:none;color:var(--color-default-base);cursor:pointer;font-family:var(--font-family-bold);font-size:var(--sm-font-size);margin-inline-start:-1px;padding:var(--pagination-button-padding);&:hover{background-color:var(--color-success-light)}}.active button{background-color:var(--color-success-base);color:#fff}}:root{--radio-description-text-padding:0 0 0 20px}.tyk-radio{label{align-items:center;display:flex}}.tyk-radio--is-disabled{label,p{cursor:not-allowed;opacity:.5}}.tyk-radio__description-text{padding:var(--radio-description-text-padding)}.tyk-select{background:transparent url(images/arrow_down.svg) no-repeat calc(100% - 15px);background-size:var(--spacing-base) var(--spacing-base)}.tyk-selectable-list{inline-size:100%;margin-block-end:var(--spacing-md);li:not(.tyk-selectable-list__no-items-message){font-family:var(--font-family-medium);padding:0;.tyk-message{margin-block-end:0}label{font-family:var(--font-family-medium);margin:0}>label{align-items:center;cursor:pointer;display:flex;padding-block:var(--spacing-sm);padding-inline:var(--spacing-md);input[type=checkbox]{margin-inline-start:auto}}}}.tyk-selectable-list__item--with-icon{& input[type=checkbox]{visibility:hidden}}textarea.tyk-form-control{block-size:auto}:root{--toggle-font-family:var(--font-family-bold);--toggle-list-background-color:var(--color-background-light);--toggle-list-text-color:#fff;--toggle-list-background-color-on-dark:#fff;--toggle-list-text-color-on-dark:var(--text-color);--toggle-top:4px;--toggle-bottom:4px;--toggle-label-font-size:var(--sm-font-size);--toggle-label-font-family:var(--font-family-medium);--toggle-label-color:var(--label-color);--toggle-padding:0}.tyk-toggle{display:inline-flex;flex-wrap:wrap;font-family:var(--toggle-font-family);font-size:var(--sm-font-size);line-height:var(--sm-line-height);white-space:nowrap;&.block{inline-size:100%;margin-block-end:var(--spacing-md);+.tyk-toggle{margin-inline-start:0}}&.inline-label{align-items:center;flex-wrap:nowrap}+.tyk-button,+.tyk-dropdown,+.tyk-toggle{margin-inline-start:var(--spacing-sm)}}.tyk-toggle__list--has-error{border:var(--error-border)}.tyk-toggle .tyk-toggle__label{color:var(--toggle-label-color);display:block;font-family:var(--toggle-label-font-family);font-size:var(--toggle-label-font-size);inline-size:100%;padding:var(--toggle-padding)}.tyk-toggle.inline-label .tyk-toggle__label{inline-size:auto;margin-inline-end:var(--spacing-sm)}.tyk-toggle--disabled-true{cursor:not-allowed;opacity:.7}.tyk-toggle--column{.tyk-toggle__list--separated{display:flex;flex-direction:column;margin-inline-end:var(--spacing-md);.tyk-toggle__item{background-color:var(--toggle-list-background-color);margin-inline-end:auto}}}.tyk-toggle__list{background:var(--toggle-list-background-color);border-radius:25px;display:flex;list-style-type:none;margin:0;padding:0;position:relative}.tyk-toggle__list--separated{background:transparent;flex-wrap:wrap}.tyk-toggle--on-dark .tyk-toggle__list{background:var(--toggle-list-background-color-on-dark)}.tyk-toggle--default .tyk-toggle__item--active span{color:#fff}.tyk-toggle--default .tyk-toggle__list--separated .tyk-toggle__item--active,.tyk-toggle--default .tyk-toggle__list--single .tyk-toggle__item--active{background-color:var(--button-default-color);border:var(--general-border-width) solid transparent;color:#fff;&:hover{background-color:var(--button-default-color)}&:hover,span{color:#fff}}.tyk-toggle--primary .tyk-toggle__item--active span{color:#fff}.tyk-toggle--primary .tyk-toggle__list--separated .tyk-toggle__item--active,.tyk-toggle--primary .tyk-toggle__list--single .tyk-toggle__item--active{background-color:var(--color-primary-base);border:var(--general-border-width) solid transparent;color:#fff;&:hover{background-color:var(--color-primary-base)}&:hover,span{color:#fff}}.tyk-toggle--success .tyk-toggle__item--active span{color:#fff}.tyk-toggle--success .tyk-toggle__list--separated .tyk-toggle__item--active,.tyk-toggle--success .tyk-toggle__list--single .tyk-toggle__item--active{background-color:var(--color-success-dark);border:var(--general-border-width) solid transparent;color:#fff;&:hover{background-color:var(--color-success-dark)}&:hover,span{color:#fff}}.tyk-toggle--danger .tyk-toggle__item--active span{color:#fff}.tyk-toggle--danger .tyk-toggle__list--separated .tyk-toggle__item--active,.tyk-toggle--danger .tyk-toggle__list--single .tyk-toggle__item--active{background-color:var(--color-danger-base);border:var(--general-border-width) solid transparent;color:#fff;&:hover{background-color:var(--color-danger-base);color:#fff}}.tyk-toggle--warning .tyk-toggle__item--active span{color:var(--text-color)}.tyk-toggle--warning .tyk-toggle__list--separated .tyk-toggle__item--active,.tyk-toggle--warning .tyk-toggle__list--single .tyk-toggle__item--active{background-color:var(--color-warning-base);border:var(--general-border-width) solid transparent;color:var(--text-color);&:hover{background-color:var(--color-warning-base);color:var(--text-color)}}.tyk-toggle--primary-gradient .tyk-toggle__item--active span{color:#fff}.tyk-toggle--primary-gradient .tyk-toggle__list--separated .tyk-toggle__item--active,.tyk-toggle--primary-gradient .tyk-toggle__list--single .tyk-toggle__item--active{background:transparent linear-gradient(to right,var(--color-primary-base),var(--color-primary-dark),var(--color-primary-base));background-clip:border-box;background-origin:border-box;background-position:0 0;background-size:200% auto;border-image:linear-gradient(to right,var(--color-primary-base),var(--color-primary-dark),var(--color-primary-base)) 0 round;color:#fff;span{color:#fff}}.tyk-toggle--success-gradient .tyk-toggle__item--active span{color:#fff}.tyk-toggle--success-gradient .tyk-toggle__list--separated .tyk-toggle__item--active,.tyk-toggle--success-gradient .tyk-toggle__list--single .tyk-toggle__item--active{background:transparent linear-gradient(to right,var(--color-success-base),var(--color-success-dark),var(--color-success-base));background-clip:border-box;background-origin:border-box;background-position:0 0;background-size:200% auto;border-image:linear-gradient(to right,var(--color-success-base),var(--color-success-dark),var(--color-success-base)) 0 round;color:#fff;span{color:#fff}}.tyk-toggle--danger-gradient .tyk-toggle__item--active span{color:#fff}.tyk-toggle--danger-gradient .tyk-toggle__list--separated .tyk-toggle__item--active,.tyk-toggle--danger-gradient .tyk-toggle__list--single .tyk-toggle__item--active{background:transparent linear-gradient(to right,var(--color-danger-base),var(--color-danger-dark),var(--color-danger-base));background-clip:border-box;background-origin:border-box;background-position:0 0;background-size:200% auto;border-image:linear-gradient(to right,var(--color-danger-base),var(--color-danger-dark),var(--color-danger-base)) 0 round;color:#fff;span{color:#fff}}.tyk-toggle--warning-gradient .tyk-toggle__item--active span{color:#fff}.tyk-toggle--warning-gradient .tyk-toggle__list--separated .tyk-toggle__item--active,.tyk-toggle--warning-gradient .tyk-toggle__list--single .tyk-toggle__item--active{background:transparent linear-gradient(to right,var(--color-warning-light),var(--color-warning-base),var(--color-warning-light));background-clip:border-box;background-origin:border-box;background-position:0 0;background-size:200% auto;border-image:linear-gradient(to right,var(--color-warning-light),var(--color-warning-base),var(--color-warning-light)) 0 round;color:var(--text-color);span{color:#fff}}.tyk-toggle__item{border:2px solid transparent;color:var(--toggle-list-text-color);text-transform:uppercase;z-index:2;&:first-child{border-end-start-radius:25px;border-start-start-radius:25px}&:last-child{border-end-end-radius:25px;border-start-end-radius:25px}.tyk-toggle__list--separated &{border-radius:25px;margin-block:var(--spacing-xs);margin-inline-end:var(--spacing-sm);&:last-child{margin-inline-end:0}}input{display:none}label{cursor:pointer;font-family:var(--toggle-font-family);margin:0;position:relative;transition:all .2s ease;.tyk-toggle__list--single &{padding-inline-start:45px}}}.tyk-toggle__list--single .tyk-toggle__item--active{label{padding-inline-end:45px;padding-inline-start:25px;.tyk-toggle__item-notch{inset-inline-start:calc(100% - 35px)}}}.tyk-toggle--on-dark .tyk-toggle__item:not(.tyk-toggle__item--active){color:var(--toggle-list-text-color-on-dark)}.tyk-toggle--on-dark .tyk-toggle__item-notch--single{background:var(--color-background-light)}.tyk-toggle--sm label{border-radius:var(--button-border-radius);font-size:var(--xs-font-size);line-height:var(--xs-line-height);padding-block:calc(var(--padding-y-button-sm) + 2px);padding-inline:calc(var(--padding-x-button-sm) + 2px)}.tyk-toggle--sm .tyk-toggle__list--single label{padding-inline-start:35px}.tyk-toggle--sm .tyk-toggle__list--single .tyk-toggle__item--active label{padding-inline-end:35px;padding-inline-start:17px;.tyk-toggle__item-notch{inset-inline-start:calc(100% - 27px)}}.tyk-toggle--md label{padding-block:calc(var(--padding-y-button-md) + 2px);padding-inline:calc(var(--padding-x-button-md) + 2px)}.tyk-toggle--lg label,.tyk-toggle--md label{border-radius:var(--button-border-radius);font-size:var(--sm-font-size);line-height:var(--line-height-button-sm)}.tyk-toggle--lg label{padding-block:calc(var(--padding-y-button-lg) + 2px);padding-inline:calc(var(--padding-x-button-lg) + 2px)}.tyk-toggle--lg .tyk-toggle__list--single label{padding-inline-start:45px}.tyk-toggle--lg .tyk-toggle__list--single .tyk-toggle__item--active label{padding-inline-end:45px;padding-inline-start:25px;.tyk-toggle__item-notch{inset-inline-start:calc(100% - 43px)}}.tyk-toggle__item-notch{border-radius:25px;inset-block:2px;position:absolute;transition:all .2s ease}.tyk-toggle__item-notch--single{background:#fff;inline-size:32px;inset-inline-start:2px}.tyk-toggle--sm .tyk-toggle__item-notch--single{inline-size:24px}.tyk-toggle--lg .tyk-toggle__item-notch--single{inline-size:40px}.tyk-toggle__notch{border-radius:25px;inline-size:100px;inset-block-end:var(--toggle-bottom);inset-block-start:var(--toggle-top);inset-inline-start:0;position:absolute;transition:all .2s ease;z-index:1}.tyk-toggle--default .tyk-toggle__notch{--toggle-notch-background:var(--button-default-color);--toggle-notch-border:transparent;--toggle-notch-color:#fff;--toggle-notch-hover-background:var(--button-default-color);--toggle-notch-hover-color:#fff}.tyk-toggle--primary .tyk-toggle__notch{--toggle-notch-background:var(--primary-base);--toggle-notch-border:transparent;--toggle-notch-color:#fff;--toggle-notch-hover-background:var(--primary-base);--toggle-notch-hover-color:#fff}.tyk-toggle--success .tyk-toggle__notch{--toggle-notch-background:var(--success-base);--toggle-notch-border:transparent;--toggle-notch-color:#fff;--toggle-notch-hover-background:var(--success-base);--toggle-notch-hover-color:#fff}.tyk-toggle--danger .tyk-toggle__notch{--toggle-notch-background:var(--color-danger-base);--toggle-notch-border:transparent;--toggle-notch-color:#fff;--toggle-notch-hover-background:var(--color-danger-base);--toggle-notch-hover-color:#fff}.tyk-toggle--warning .tyk-toggle__notch{--toggle-notch-background:var(--color-warning-base);--toggle-notch-border:transparent;--toggle-notch-color:var(--text-color);--toggle-notch-hover-background:var(--color-warning-base);--toggle-notch-hover-color:var(--text-color)}.tyk-toggle--danger .tyk-toggle__notch,.tyk-toggle--default .tyk-toggle__notch,.tyk-toggle--primary .tyk-toggle__notch,.tyk-toggle--success .tyk-toggle__notch,.tyk-toggle--warning .tyk-toggle__notch{background-color:var(--toggle-notch-background);border:var(--general-border-width) solid var(--toggle-notch-border);color:var(--toggle-notch-color);&:hover{background-color:var(--toggle-notch-hover-background);color:var(--toggle-notch-hover-color)}}.tyk-toggle--primary-gradient .tyk-toggle__notch{--toggle-notch-gradient-left-color:var(--color-primary-base);--toggle-notch-gradient-right-color:var(--color-primary-dark);--toggle-notch-gradient-color:#fff}.tyk-toggle--success-gradient .tyk-toggle__notch{--toggle-notch-gradient-left-color:var(--color-success-base);--toggle-notch-gradient-right-color:var(--color-success-dark);--toggle-notch-gradient-color:#fff}.tyk-toggle--danger-gradient .tyk-toggle__notch{--toggle-notch-gradient-left-color:var(--color-danger-base);--toggle-notch-gradient-right-color:var(--color-danger-dark);--toggle-notch-gradient-color:#fff}.tyk-toggle--warning-gradient .tyk-toggle__notch{--toggle-notch-gradient-left-color:var(--color-warning-light);--toggle-notch-gradient-right-color:var(--color-warning-base);--toggle-notch-gradient-color:var(--text-color)}.tyk-toggle--danger-gradient .tyk-toggle__notch,.tyk-toggle--primary-gradient .tyk-toggle__notch,.tyk-toggle--success-gradient .tyk-toggle__notch,.tyk-toggle--warning-gradient .tyk-toggle__notch{background:transparent linear-gradient(to right,var(--toggle-notch-gradient-left-color),var(--toggle-notch-gradient-right-color),var(--toggle-notch-gradient-left-color));background-clip:border-box;background-origin:border-box;background-position:0 0;background-size:200% auto;border-image:linear-gradient(to right,var(--toggle-notch-gradient-left-color),var(--toggle-notch-gradient-right-color),var(--toggle-notch-gradient-left-color)) 0 round;color:var(--toggle-notch-gradient-color)}.empty-toggle{padding:1px}*{box-sizing:border-box}body{background-color:var(--color-background-base);color:var(--text-color);font-family:var(--font-family-regular);font-size:var(--sm-font-size);line-height:var(--sm-line-height)}.tyk-main-wrapper{display:flex;flex-wrap:nowrap}.tyk-main-content-wrapper{flex:1}.well{background:transparent;border:var(--general-border-width) solid var(--color-default-light);border-radius:var(--general-border-radius);box-shadow:none;&.has-error{border-color:var(--color-danger-base)}}.title-medium{color:var(--label-color);font-family:var(--font-family-medium);font-size:var(--title-medium-font-size)}.right-align{text-align:end!important}.left-align{text-align:start!important}.center-align{text-align:center!important}.left{float:inline-start!important}.right{float:inline-end!important}.hide{display:none!important}.no-margin{margin:0!important}.no-margin-bottom{margin-block-end:0!important}.no-margin-top{margin-block-start:0!important}.no-margin-right{margin-inline-end:0!important}.no-margin-left{margin-inline-start:0!important}.disabled-section{color:var(--color-default-light)}.top-buffer-large{margin-block-start:var(--top-buffer-large)!important}.top-buffer-small{margin-block-start:var(--top-buffer-small)!important}.top-buffer-medium{margin-block-start:var(--top-buffer-medium)!important}.bottom-buffer-large{margin-block-end:var(--bottom-buffer-large)!important}.bottom-buffer-small{margin-block-end:var(--bottom-buffer-small)!important}.bottom-buffer-medium{margin-block-end:var(--bottom-buffer-medium)!important}.right-buffer-large{margin-inline-end:var(--right-buffer-large)!important}.right-buffer-small{margin-inline-end:var(--right-buffer-small)!important}.right-buffer-medium{margin-inline-end:var(--right-buffer-medium)!important}.left-buffer-large{margin-inline-start:var(--left-buffer-large)!important}.left-buffer-small{margin-inline-start:var(--left-buffer-small)!important}.left-buffer-medium{margin-inline-start:var(--left-buffer-medium)!important}.word-wrap{word-wrap:break-word;word-break:break-all}.clear-left{clear:inline-start}.flex-container{display:flex}.vertical-center-align{align-items:center}.right-align-controls{align-items:center;display:flex;margin-inline-start:auto}.inline-label{margin-inline-end:15px}.nowrap{white-space:nowrap} + * Font Awesome Pro 6.5.2 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license (Commercial License) + * Copyright 2024 Fonticons, Inc. + */:host,:root{--fa-font-light:normal 300 1em/1 "Font Awesome 6 Pro"}@font-face{font-display:block;font-family:Font Awesome\ 6 Pro;font-style:normal;font-weight:300;src:url(fonts/fontawesome/fa-light-300.woff2) format("woff2"),url(fonts/fontawesome/fa-light-300.ttf) format("truetype")}.fa-light,.fal{font-weight:300} + +/*! + * Font Awesome Pro 6.5.2 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license (Commercial License) + * Copyright 2024 Fonticons, Inc. + */:host,:root{--fa-style-family-classic:"Font Awesome 6 Pro";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Pro"}@font-face{font-display:block;font-family:Font Awesome\ 6 Pro;font-style:normal;font-weight:900;src:url(fonts/fontawesome/fa-solid-900.woff2) format("woff2"),url(fonts/fontawesome/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-weight:900} + +/*! + * Font Awesome Pro 6.5.2 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license (Commercial License) + * Copyright 2024 Fonticons, Inc. + */.fa{font-family:var(--fa-style-family,"Font Awesome 6 Pro");font-weight:var(--fa-style,900)}.fa,.fa-brands,.fa-classic,.fa-duotone,.fa-light,.fa-regular,.fa-sharp,.fa-sharp-solid,.fa-solid,.fa-thin,.fab,.fad,.fal,.far,.fas,.fasl,.fasr,.fass,.fast,.fat{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-classic,.fa-light,.fa-regular,.fa-solid,.fa-thin,.fal,.far,.fas,.fat{font-family:Font Awesome\ 6 Pro}.fa-brands,.fab{font-family:Font Awesome\ 6 Brands}.fa-classic.fa-duotone,.fa-duotone,.fad{font-family:Font Awesome\ 6 Duotone}.fa-sharp,.fasl,.fasr,.fass,.fast{font-family:Font Awesome\ 6 Sharp}.fa-sharp,.fass{font-weight:900}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em)*-1);line-height:inherit;position:absolute;text-align:center;width:var(--fa-li-width,2em)}.fa-border{border-color:var(--fa-border-color,#eee);border-radius:var(--fa-border-radius,.1em);border-style:var(--fa-border-style,solid);border-width:var(--fa-border-width,.08em);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{-webkit-animation-duration:var(--fa-animation-duration,2s);animation-duration:var(--fa-animation-duration,2s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-timing-function:var(--fa-animation-timing,steps(8));animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-transition-delay:0s;transition-delay:0s;-webkit-transition-duration:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@-webkit-keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}24%,8%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}24%,8%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle,0));transform:rotate(var(--fa-rotate-angle,0))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index,auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse,#fff)}.fa-0:before{content:"\30"}.fa-1:before{content:"\31"}.fa-2:before{content:"\32"}.fa-3:before{content:"\33"}.fa-4:before{content:"\34"}.fa-5:before{content:"\35"}.fa-6:before{content:"\36"}.fa-7:before{content:"\37"}.fa-8:before{content:"\38"}.fa-9:before{content:"\39"}.fa-fill-drip:before{content:"\f576"}.fa-arrows-to-circle:before{content:"\e4bd"}.fa-chevron-circle-right:before,.fa-circle-chevron-right:before{content:"\f138"}.fa-wagon-covered:before{content:"\f8ee"}.fa-line-height:before{content:"\f871"}.fa-bagel:before{content:"\e3d7"}.fa-transporter-7:before{content:"\e2a8"}.fa-at:before{content:"\40"}.fa-rectangles-mixed:before{content:"\e323"}.fa-phone-arrow-up-right:before,.fa-phone-arrow-up:before,.fa-phone-outgoing:before{content:"\e224"}.fa-trash-alt:before,.fa-trash-can:before{content:"\f2ed"}.fa-circle-l:before{content:"\e114"}.fa-head-side-goggles:before,.fa-head-vr:before{content:"\f6ea"}.fa-text-height:before{content:"\f034"}.fa-user-times:before,.fa-user-xmark:before{content:"\f235"}.fa-face-hand-yawn:before{content:"\e379"}.fa-gauge-simple-min:before,.fa-tachometer-slowest:before{content:"\f62d"}.fa-stethoscope:before{content:"\f0f1"}.fa-coffin:before{content:"\f6c6"}.fa-comment-alt:before,.fa-message:before{content:"\f27a"}.fa-bowl-salad:before,.fa-salad:before{content:"\f81e"}.fa-info:before{content:"\f129"}.fa-robot-astromech:before{content:"\e2d2"}.fa-ring-diamond:before{content:"\e5ab"}.fa-fondue-pot:before{content:"\e40d"}.fa-theta:before{content:"\f69e"}.fa-face-hand-peeking:before{content:"\e481"}.fa-square-user:before{content:"\e283"}.fa-compress-alt:before,.fa-down-left-and-up-right-to-center:before{content:"\f422"}.fa-explosion:before{content:"\e4e9"}.fa-file-alt:before,.fa-file-lines:before,.fa-file-text:before{content:"\f15c"}.fa-wave-square:before{content:"\f83e"}.fa-ring:before{content:"\f70b"}.fa-building-un:before{content:"\e4d9"}.fa-dice-three:before{content:"\f527"}.fa-tire-pressure-warning:before{content:"\f633"}.fa-wifi-2:before,.fa-wifi-fair:before{content:"\f6ab"}.fa-calendar-alt:before,.fa-calendar-days:before{content:"\f073"}.fa-mp3-player:before{content:"\f8ce"}.fa-anchor-circle-check:before{content:"\e4aa"}.fa-tally-4:before{content:"\e297"}.fa-rectangle-history:before{content:"\e4a2"}.fa-building-circle-arrow-right:before{content:"\e4d1"}.fa-volleyball-ball:before,.fa-volleyball:before{content:"\f45f"}.fa-sun-haze:before{content:"\f765"}.fa-text-size:before{content:"\f894"}.fa-ufo:before{content:"\e047"}.fa-fork:before,.fa-utensil-fork:before{content:"\f2e3"}.fa-arrows-up-to-line:before{content:"\e4c2"}.fa-mobile-signal:before{content:"\e1ef"}.fa-barcode-scan:before{content:"\f465"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-folder-arrow-down:before,.fa-folder-download:before{content:"\e053"}.fa-circle-minus:before,.fa-minus-circle:before{content:"\f056"}.fa-face-icicles:before{content:"\e37c"}.fa-shovel:before{content:"\f713"}.fa-door-open:before{content:"\f52b"}.fa-films:before{content:"\e17a"}.fa-right-from-bracket:before,.fa-sign-out-alt:before{content:"\f2f5"}.fa-face-glasses:before{content:"\e377"}.fa-nfc:before{content:"\e1f7"}.fa-atom:before{content:"\f5d2"}.fa-soap:before{content:"\e06e"}.fa-heart-music-camera-bolt:before,.fa-icons:before{content:"\f86d"}.fa-microphone-alt-slash:before,.fa-microphone-lines-slash:before{content:"\f539"}.fa-closed-captioning-slash:before{content:"\e135"}.fa-calculator-alt:before,.fa-calculator-simple:before{content:"\f64c"}.fa-bridge-circle-check:before{content:"\e4c9"}.fa-sliders-up:before,.fa-sliders-v:before{content:"\f3f1"}.fa-location-minus:before,.fa-map-marker-minus:before{content:"\f609"}.fa-pump-medical:before{content:"\e06a"}.fa-fingerprint:before{content:"\f577"}.fa-ski-boot:before{content:"\e3cc"}.fa-rectangle-sd:before,.fa-standard-definition:before{content:"\e28a"}.fa-h1:before{content:"\f313"}.fa-hand-point-right:before{content:"\f0a4"}.fa-magnifying-glass-location:before,.fa-search-location:before{content:"\f689"}.fa-message-bot:before{content:"\e3b8"}.fa-forward-step:before,.fa-step-forward:before{content:"\f051"}.fa-face-smile-beam:before,.fa-smile-beam:before{content:"\f5b8"}.fa-light-ceiling:before{content:"\e016"}.fa-comment-alt-exclamation:before,.fa-message-exclamation:before{content:"\f4a5"}.fa-bowl-scoop:before,.fa-bowl-shaved-ice:before{content:"\e3de"}.fa-square-x:before{content:"\e286"}.fa-building-memo:before{content:"\e61e"}.fa-utility-pole-double:before{content:"\e2c4"}.fa-flag-checkered:before{content:"\f11e"}.fa-chevron-double-up:before,.fa-chevrons-up:before{content:"\f325"}.fa-football-ball:before,.fa-football:before{content:"\f44e"}.fa-user-vneck:before{content:"\e461"}.fa-school-circle-exclamation:before{content:"\e56c"}.fa-crop:before{content:"\f125"}.fa-angle-double-down:before,.fa-angles-down:before{content:"\f103"}.fa-users-rectangle:before{content:"\e594"}.fa-people-roof:before{content:"\e537"}.fa-arrow-square-right:before,.fa-square-arrow-right:before{content:"\f33b"}.fa-location-plus:before,.fa-map-marker-plus:before{content:"\f60a"}.fa-lightbulb-exclamation-on:before{content:"\e1ca"}.fa-people-line:before{content:"\e534"}.fa-beer-mug-empty:before,.fa-beer:before{content:"\f0fc"}.fa-crate-empty:before{content:"\e151"}.fa-diagram-predecessor:before{content:"\e477"}.fa-transporter:before{content:"\e042"}.fa-calendar-circle-user:before{content:"\e471"}.fa-arrow-up-long:before,.fa-long-arrow-up:before{content:"\f176"}.fa-person-carry-box:before,.fa-person-carry:before{content:"\f4cf"}.fa-burn:before,.fa-fire-flame-simple:before{content:"\f46a"}.fa-male:before,.fa-person:before{content:"\f183"}.fa-laptop:before{content:"\f109"}.fa-file-csv:before{content:"\f6dd"}.fa-menorah:before{content:"\f676"}.fa-union:before{content:"\f6a2"}.fa-chevron-double-left:before,.fa-chevrons-left:before{content:"\f323"}.fa-circle-heart:before,.fa-heart-circle:before{content:"\f4c7"}.fa-truck-plane:before{content:"\e58f"}.fa-record-vinyl:before{content:"\f8d9"}.fa-bring-forward:before{content:"\f856"}.fa-square-p:before{content:"\e279"}.fa-face-grin-stars:before,.fa-grin-stars:before{content:"\f587"}.fa-sigma:before{content:"\f68b"}.fa-camera-movie:before{content:"\f8a9"}.fa-bong:before{content:"\f55c"}.fa-clarinet:before{content:"\f8ad"}.fa-truck-flatbed:before{content:"\e2b6"}.fa-pastafarianism:before,.fa-spaghetti-monster-flying:before{content:"\f67b"}.fa-arrow-down-up-across-line:before{content:"\e4af"}.fa-arrows-rotate-reverse:before{content:"\e630"}.fa-leaf-heart:before{content:"\f4cb"}.fa-house-building:before{content:"\e1b1"}.fa-cheese-swiss:before{content:"\f7f0"}.fa-spoon:before,.fa-utensil-spoon:before{content:"\f2e5"}.fa-jar-wheat:before{content:"\e517"}.fa-envelopes-bulk:before,.fa-mail-bulk:before{content:"\f674"}.fa-file-circle-exclamation:before{content:"\e4eb"}.fa-bow-arrow:before{content:"\f6b9"}.fa-cart-xmark:before{content:"\e0dd"}.fa-hexagon-xmark:before,.fa-times-hexagon:before,.fa-xmark-hexagon:before{content:"\f2ee"}.fa-circle-h:before,.fa-hospital-symbol:before{content:"\f47e"}.fa-merge:before{content:"\e526"}.fa-pager:before{content:"\f815"}.fa-cart-minus:before{content:"\e0db"}.fa-address-book:before,.fa-contact-book:before{content:"\f2b9"}.fa-pan-frying:before{content:"\e42c"}.fa-grid-3:before,.fa-grid:before{content:"\e195"}.fa-football-helmet:before{content:"\f44f"}.fa-hand-love:before{content:"\e1a5"}.fa-trees:before{content:"\f724"}.fa-strikethrough:before{content:"\f0cc"}.fa-page:before{content:"\e428"}.fa-k:before{content:"\4b"}.fa-diagram-previous:before{content:"\e478"}.fa-gauge-min:before,.fa-tachometer-alt-slowest:before{content:"\f628"}.fa-folder-grid:before{content:"\e188"}.fa-eggplant:before{content:"\e16c"}.fa-excavator:before{content:"\e656"}.fa-ram:before{content:"\f70a"}.fa-landmark-flag:before{content:"\e51c"}.fa-lips:before{content:"\f600"}.fa-pencil-alt:before,.fa-pencil:before{content:"\f303"}.fa-backward:before{content:"\f04a"}.fa-caret-right:before{content:"\f0da"}.fa-comments:before{content:"\f086"}.fa-file-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-desktop-arrow-down:before{content:"\e155"}.fa-code-pull-request:before{content:"\e13c"}.fa-pumpkin:before{content:"\f707"}.fa-clipboard-list:before{content:"\f46d"}.fa-pen-field:before{content:"\e211"}.fa-blueberries:before{content:"\e2e8"}.fa-truck-loading:before,.fa-truck-ramp-box:before{content:"\f4de"}.fa-note:before{content:"\e1ff"}.fa-arrow-down-to-square:before{content:"\e096"}.fa-user-check:before{content:"\f4fc"}.fa-cloud-xmark:before{content:"\e35f"}.fa-vial-virus:before{content:"\e597"}.fa-book-alt:before,.fa-book-blank:before{content:"\f5d9"}.fa-golf-flag-hole:before{content:"\e3ac"}.fa-comment-alt-arrow-down:before,.fa-message-arrow-down:before{content:"\e1db"}.fa-face-unamused:before{content:"\e39f"}.fa-sheet-plastic:before{content:"\e571"}.fa-circle-9:before{content:"\e0f6"}.fa-blog:before{content:"\f781"}.fa-user-ninja:before{content:"\f504"}.fa-pencil-slash:before{content:"\e215"}.fa-bowling-pins:before{content:"\f437"}.fa-person-arrow-up-from-line:before{content:"\e539"}.fa-down-right:before{content:"\e16b"}.fa-scroll-torah:before,.fa-torah:before{content:"\f6a0"}.fa-webhook:before{content:"\e5d5"}.fa-blinds-open:before{content:"\f8fc"}.fa-fence:before{content:"\e303"}.fa-arrow-alt-up:before,.fa-up:before{content:"\f357"}.fa-broom-ball:before,.fa-quidditch-broom-ball:before,.fa-quidditch:before{content:"\f458"}.fa-drumstick:before{content:"\f6d6"}.fa-square-v:before{content:"\e284"}.fa-face-awesome:before,.fa-gave-dandy:before{content:"\e409"}.fa-dial-off:before{content:"\e162"}.fa-toggle-off:before{content:"\f204"}.fa-face-smile-horns:before{content:"\e391"}.fa-archive:before,.fa-box-archive:before{content:"\f187"}.fa-grapes:before{content:"\e306"}.fa-person-drowning:before{content:"\e545"}.fa-dial-max:before{content:"\e15e"}.fa-circle-m:before{content:"\e115"}.fa-calendar-image:before{content:"\e0d4"}.fa-caret-circle-down:before,.fa-circle-caret-down:before{content:"\f32d"}.fa-arrow-down-9-1:before,.fa-sort-numeric-desc:before,.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-face-grin-tongue-squint:before,.fa-grin-tongue-squint:before{content:"\f58a"}.fa-shish-kebab:before{content:"\f821"}.fa-spray-can:before{content:"\f5bd"}.fa-alarm-snooze:before{content:"\f845"}.fa-scarecrow:before{content:"\f70d"}.fa-truck-monster:before{content:"\f63b"}.fa-gift-card:before{content:"\f663"}.fa-w:before{content:"\57"}.fa-code-pull-request-draft:before{content:"\e3fa"}.fa-square-b:before{content:"\e264"}.fa-elephant:before{content:"\f6da"}.fa-earth-africa:before,.fa-globe-africa:before{content:"\f57c"}.fa-rainbow:before{content:"\f75b"}.fa-circle-notch:before{content:"\f1ce"}.fa-tablet-alt:before,.fa-tablet-screen-button:before{content:"\f3fa"}.fa-paw:before{content:"\f1b0"}.fa-message-question:before{content:"\e1e3"}.fa-cloud:before{content:"\f0c2"}.fa-trowel-bricks:before{content:"\e58a"}.fa-square-3:before{content:"\e258"}.fa-face-flushed:before,.fa-flushed:before{content:"\f579"}.fa-hospital-user:before{content:"\f80d"}.fa-microwave:before{content:"\e01b"}.fa-chf-sign:before{content:"\e602"}.fa-tent-arrow-left-right:before{content:"\e57f"}.fa-cart-circle-arrow-up:before{content:"\e3f0"}.fa-trash-clock:before{content:"\e2b0"}.fa-reflect-both:before{content:"\e66f"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-sprinkler-ceiling:before{content:"\e44c"}.fa-browsers:before{content:"\e0cb"}.fa-trillium:before{content:"\e588"}.fa-music-slash:before{content:"\f8d1"}.fa-truck-ramp:before{content:"\f4e0"}.fa-binoculars:before{content:"\f1e5"}.fa-microphone-slash:before{content:"\f131"}.fa-box-tissue:before{content:"\e05b"}.fa-circle-c:before{content:"\e101"}.fa-star-christmas:before{content:"\f7d4"}.fa-chart-bullet:before{content:"\e0e1"}.fa-motorcycle:before{content:"\f21c"}.fa-tree-christmas:before{content:"\f7db"}.fa-tire-flat:before{content:"\f632"}.fa-sunglasses:before{content:"\f892"}.fa-badge:before{content:"\f335"}.fa-comment-alt-edit:before,.fa-message-edit:before,.fa-message-pen:before{content:"\f4a4"}.fa-bell-concierge:before,.fa-concierge-bell:before{content:"\f562"}.fa-pen-ruler:before,.fa-pencil-ruler:before{content:"\f5ae"}.fa-file-mp3:before{content:"\e648"}.fa-arrow-progress:before{content:"\e5df"}.fa-chess-rook-alt:before,.fa-chess-rook-piece:before{content:"\f448"}.fa-square-root:before{content:"\f697"}.fa-album-collection-circle-plus:before{content:"\e48e"}.fa-people-arrows-left-right:before,.fa-people-arrows:before{content:"\e068"}.fa-sign-post:before{content:"\e624"}.fa-face-angry-horns:before{content:"\e368"}.fa-mars-and-venus-burst:before{content:"\e523"}.fa-tombstone:before{content:"\f720"}.fa-caret-square-right:before,.fa-square-caret-right:before{content:"\f152"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-list-music:before{content:"\f8c9"}.fa-sun-plant-wilt:before{content:"\e57a"}.fa-toilets-portable:before{content:"\e584"}.fa-hockey-puck:before{content:"\f453"}.fa-mustache:before{content:"\e5bc"}.fa-hyphen:before{content:"\2d"}.fa-table:before{content:"\f0ce"}.fa-user-chef:before{content:"\e3d2"}.fa-comment-alt-image:before,.fa-message-image:before{content:"\e1e0"}.fa-users-medical:before{content:"\f830"}.fa-sensor-alert:before,.fa-sensor-triangle-exclamation:before{content:"\e029"}.fa-magnifying-glass-arrow-right:before{content:"\e521"}.fa-digital-tachograph:before,.fa-tachograph-digital:before{content:"\f566"}.fa-face-mask:before{content:"\e37f"}.fa-pickleball:before{content:"\e435"}.fa-star-sharp-half:before{content:"\e28c"}.fa-users-slash:before{content:"\e073"}.fa-clover:before{content:"\e139"}.fa-meat:before{content:"\f814"}.fa-mail-reply:before,.fa-reply:before{content:"\f3e5"}.fa-star-and-crescent:before{content:"\f699"}.fa-empty-set:before{content:"\f656"}.fa-house-fire:before{content:"\e50c"}.fa-minus-square:before,.fa-square-minus:before{content:"\f146"}.fa-helicopter:before{content:"\f533"}.fa-bird:before{content:"\e469"}.fa-compass:before{content:"\f14e"}.fa-caret-square-down:before,.fa-square-caret-down:before{content:"\f150"}.fa-heart-half-alt:before,.fa-heart-half-stroke:before{content:"\e1ac"}.fa-file-circle-question:before{content:"\e4ef"}.fa-truck-utensils:before{content:"\e628"}.fa-laptop-code:before{content:"\f5fc"}.fa-joystick:before{content:"\f8c5"}.fa-grill-fire:before{content:"\e5a4"}.fa-rectangle-vertical-history:before{content:"\e237"}.fa-swatchbook:before{content:"\f5c3"}.fa-prescription-bottle:before{content:"\f485"}.fa-bars:before,.fa-navicon:before{content:"\f0c9"}.fa-keyboard-left:before{content:"\e1c3"}.fa-people-group:before{content:"\e533"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-heart-broken:before,.fa-heart-crack:before{content:"\f7a9"}.fa-face-beam-hand-over-mouth:before{content:"\e47c"}.fa-droplet-percent:before,.fa-humidity:before{content:"\f750"}.fa-external-link-square-alt:before,.fa-square-up-right:before{content:"\f360"}.fa-face-kiss-beam:before,.fa-kiss-beam:before{content:"\f597"}.fa-corn:before{content:"\f6c7"}.fa-roller-coaster:before{content:"\e324"}.fa-photo-film-music:before{content:"\e228"}.fa-radar:before{content:"\e024"}.fa-sickle:before{content:"\f822"}.fa-film:before{content:"\f008"}.fa-coconut:before{content:"\e2f6"}.fa-ruler-horizontal:before{content:"\f547"}.fa-shield-cross:before{content:"\f712"}.fa-cassette-tape:before{content:"\f8ab"}.fa-square-terminal:before{content:"\e32a"}.fa-people-robbery:before{content:"\e536"}.fa-lightbulb:before{content:"\f0eb"}.fa-caret-left:before{content:"\f0d9"}.fa-comment-middle:before{content:"\e149"}.fa-trash-can-list:before{content:"\e2ab"}.fa-block:before{content:"\e46a"}.fa-circle-exclamation:before,.fa-exclamation-circle:before{content:"\f06a"}.fa-school-circle-xmark:before{content:"\e56d"}.fa-arrow-right-from-bracket:before,.fa-sign-out:before{content:"\f08b"}.fa-face-frown-slight:before{content:"\e376"}.fa-chevron-circle-down:before,.fa-circle-chevron-down:before{content:"\f13a"}.fa-sidebar-flip:before{content:"\e24f"}.fa-unlock-alt:before,.fa-unlock-keyhole:before{content:"\f13e"}.fa-temperature-list:before{content:"\e299"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-headphones-alt:before,.fa-headphones-simple:before{content:"\f58f"}.fa-sitemap:before{content:"\f0e8"}.fa-pipe-section:before{content:"\e438"}.fa-space-station-moon-alt:before,.fa-space-station-moon-construction:before{content:"\e034"}.fa-circle-dollar-to-slot:before,.fa-donate:before{content:"\f4b9"}.fa-memory:before{content:"\f538"}.fa-face-sleeping:before{content:"\e38d"}.fa-road-spikes:before{content:"\e568"}.fa-fire-burner:before{content:"\e4f1"}.fa-squirrel:before{content:"\f71a"}.fa-arrow-to-top:before,.fa-arrow-up-to-line:before{content:"\f341"}.fa-flag:before{content:"\f024"}.fa-face-cowboy-hat:before{content:"\e36e"}.fa-hanukiah:before{content:"\f6e6"}.fa-chart-scatter-3d:before{content:"\e0e8"}.fa-display-chart-up:before{content:"\e5e3"}.fa-square-code:before{content:"\e267"}.fa-feather:before{content:"\f52d"}.fa-volume-down:before,.fa-volume-low:before{content:"\f027"}.fa-times-to-slot:before,.fa-vote-nay:before,.fa-xmark-to-slot:before{content:"\f771"}.fa-box-alt:before,.fa-box-taped:before{content:"\f49a"}.fa-comment-slash:before{content:"\f4b3"}.fa-swords:before{content:"\f71d"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-album:before{content:"\f89f"}.fa-circle-n:before{content:"\e118"}.fa-compress:before{content:"\f066"}.fa-wheat-alt:before,.fa-wheat-awn:before{content:"\e2cd"}.fa-ankh:before{content:"\f644"}.fa-hands-holding-child:before{content:"\e4fa"}.fa-asterisk:before{content:"\2a"}.fa-key-skeleton-left-right:before{content:"\e3b4"}.fa-comment-lines:before{content:"\f4b0"}.fa-luchador-mask:before,.fa-luchador:before,.fa-mask-luchador:before{content:"\f455"}.fa-check-square:before,.fa-square-check:before{content:"\f14a"}.fa-shredder:before{content:"\f68a"}.fa-book-open-alt:before,.fa-book-open-cover:before{content:"\e0c0"}.fa-sandwich:before{content:"\f81f"}.fa-peseta-sign:before{content:"\e221"}.fa-parking-slash:before,.fa-square-parking-slash:before{content:"\f617"}.fa-train-tunnel:before{content:"\e454"}.fa-header:before,.fa-heading:before{content:"\f1dc"}.fa-ghost:before{content:"\f6e2"}.fa-face-anguished:before{content:"\e369"}.fa-hockey-sticks:before{content:"\f454"}.fa-abacus:before{content:"\f640"}.fa-film-alt:before,.fa-film-simple:before{content:"\f3a0"}.fa-list-squares:before,.fa-list:before{content:"\f03a"}.fa-tree-palm:before{content:"\f82b"}.fa-phone-square-alt:before,.fa-square-phone-flip:before{content:"\f87b"}.fa-cart-plus:before{content:"\f217"}.fa-gamepad:before{content:"\f11b"}.fa-border-center-v:before{content:"\f89d"}.fa-circle-dot:before,.fa-dot-circle:before{content:"\f192"}.fa-clipboard-medical:before{content:"\e133"}.fa-dizzy:before,.fa-face-dizzy:before{content:"\f567"}.fa-egg:before{content:"\f7fb"}.fa-arrow-alt-to-top:before,.fa-up-to-line:before{content:"\f34d"}.fa-house-medical-circle-xmark:before{content:"\e513"}.fa-watch-fitness:before{content:"\f63e"}.fa-clock-nine-thirty:before{content:"\e34d"}.fa-campground:before{content:"\f6bb"}.fa-folder-plus:before{content:"\f65e"}.fa-jug:before{content:"\f8c6"}.fa-futbol-ball:before,.fa-futbol:before,.fa-soccer-ball:before{content:"\f1e3"}.fa-snow-blowing:before{content:"\f761"}.fa-paint-brush:before,.fa-paintbrush:before{content:"\f1fc"}.fa-lock:before{content:"\f023"}.fa-arrow-down-from-line:before,.fa-arrow-from-top:before{content:"\f345"}.fa-gas-pump:before{content:"\f52f"}.fa-signal-alt-slash:before,.fa-signal-bars-slash:before{content:"\f694"}.fa-monkey:before{content:"\f6fb"}.fa-pro:before,.fa-rectangle-pro:before{content:"\e235"}.fa-house-night:before{content:"\e010"}.fa-hot-tub-person:before,.fa-hot-tub:before{content:"\f593"}.fa-globe-pointer:before{content:"\e60e"}.fa-blanket:before{content:"\f498"}.fa-map-location:before,.fa-map-marked:before{content:"\f59f"}.fa-house-flood-water:before{content:"\e50e"}.fa-comments-question-check:before{content:"\e14f"}.fa-tree:before{content:"\f1bb"}.fa-arrows-cross:before{content:"\e0a2"}.fa-backpack:before{content:"\f5d4"}.fa-square-small:before{content:"\e27e"}.fa-folder-arrow-up:before,.fa-folder-upload:before{content:"\e054"}.fa-bridge-lock:before{content:"\e4cc"}.fa-crosshairs-simple:before{content:"\e59f"}.fa-sack-dollar:before{content:"\f81d"}.fa-edit:before,.fa-pen-to-square:before{content:"\f044"}.fa-sliders-h-square:before,.fa-square-sliders:before{content:"\f3f0"}.fa-car-side:before{content:"\f5e4"}.fa-comment-middle-top-alt:before,.fa-message-middle-top:before{content:"\e1e2"}.fa-lightbulb-on:before{content:"\f672"}.fa-knife:before,.fa-utensil-knife:before{content:"\f2e4"}.fa-share-alt:before,.fa-share-nodes:before{content:"\f1e0"}.fa-display-chart-up-circle-dollar:before{content:"\e5e6"}.fa-wave-sine:before{content:"\f899"}.fa-heart-circle-minus:before{content:"\e4ff"}.fa-circle-w:before{content:"\e12c"}.fa-calendar-circle:before,.fa-circle-calendar:before{content:"\e102"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-microscope:before{content:"\f610"}.fa-sunset:before{content:"\f767"}.fa-sink:before{content:"\e06d"}.fa-calendar-exclamation:before{content:"\f334"}.fa-truck-container-empty:before{content:"\e2b5"}.fa-hand-heart:before{content:"\f4bc"}.fa-bag-shopping:before,.fa-shopping-bag:before{content:"\f290"}.fa-arrow-down-z-a:before,.fa-sort-alpha-desc:before,.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-mitten:before{content:"\f7b5"}.fa-reply-clock:before,.fa-reply-time:before{content:"\e239"}.fa-person-rays:before{content:"\e54d"}.fa-arrow-alt-right:before,.fa-right:before{content:"\f356"}.fa-circle-f:before{content:"\e10e"}.fa-users:before{content:"\f0c0"}.fa-face-pleading:before{content:"\e386"}.fa-eye-slash:before{content:"\f070"}.fa-flask-vial:before{content:"\e4f3"}.fa-police-box:before{content:"\e021"}.fa-cucumber:before{content:"\e401"}.fa-head-side-brain:before{content:"\f808"}.fa-hand-paper:before,.fa-hand:before{content:"\f256"}.fa-biking-mountain:before,.fa-person-biking-mountain:before{content:"\f84b"}.fa-utensils-slash:before{content:"\e464"}.fa-print-magnifying-glass:before,.fa-print-search:before{content:"\f81a"}.fa-turn-right:before{content:"\e639"}.fa-folder-bookmark:before{content:"\e186"}.fa-arrow-turn-left-down:before{content:"\e633"}.fa-om:before{content:"\f679"}.fa-pi:before{content:"\f67e"}.fa-flask-potion:before,.fa-flask-round-potion:before{content:"\f6e1"}.fa-face-shush:before{content:"\e38c"}.fa-worm:before{content:"\e599"}.fa-house-circle-xmark:before{content:"\e50b"}.fa-plug:before{content:"\f1e6"}.fa-calendar-circle-exclamation:before{content:"\e46e"}.fa-square-i:before{content:"\e272"}.fa-chevron-up:before{content:"\f077"}.fa-face-saluting:before{content:"\e484"}.fa-gauge-simple-low:before,.fa-tachometer-slow:before{content:"\f62c"}.fa-face-persevering:before{content:"\e385"}.fa-camera-circle:before,.fa-circle-camera:before{content:"\e103"}.fa-hand-spock:before{content:"\f259"}.fa-spider-web:before{content:"\f719"}.fa-circle-microphone:before,.fa-microphone-circle:before{content:"\e116"}.fa-book-arrow-up:before{content:"\e0ba"}.fa-popsicle:before{content:"\e43e"}.fa-command:before{content:"\e142"}.fa-blinds:before{content:"\f8fb"}.fa-stopwatch:before{content:"\f2f2"}.fa-saxophone:before{content:"\f8dc"}.fa-square-2:before{content:"\e257"}.fa-field-hockey-stick-ball:before,.fa-field-hockey:before{content:"\f44c"}.fa-arrow-up-square-triangle:before,.fa-sort-shapes-up-alt:before{content:"\f88b"}.fa-face-scream:before{content:"\e38b"}.fa-square-m:before{content:"\e276"}.fa-camera-web:before,.fa-webcam:before{content:"\f832"}.fa-comment-arrow-down:before{content:"\e143"}.fa-lightbulb-cfl:before{content:"\e5a6"}.fa-window-frame-open:before{content:"\e050"}.fa-face-kiss:before,.fa-kiss:before{content:"\f596"}.fa-bridge-circle-xmark:before{content:"\e4cb"}.fa-period:before{content:"\2e"}.fa-face-grin-tongue:before,.fa-grin-tongue:before{content:"\f589"}.fa-up-to-dotted-line:before{content:"\e457"}.fa-thought-bubble:before{content:"\e32e"}.fa-skeleton-ribs:before{content:"\e5cb"}.fa-raygun:before{content:"\e025"}.fa-flute:before{content:"\f8b9"}.fa-acorn:before{content:"\f6ae"}.fa-video-arrow-up-right:before{content:"\e2c9"}.fa-grate-droplet:before{content:"\e194"}.fa-seal-exclamation:before{content:"\e242"}.fa-chess-bishop:before{content:"\f43a"}.fa-message-sms:before{content:"\e1e5"}.fa-coffee-beans:before{content:"\e13f"}.fa-hat-witch:before{content:"\f6e7"}.fa-face-grin-wink:before,.fa-grin-wink:before{content:"\f58c"}.fa-clock-three-thirty:before{content:"\e357"}.fa-deaf:before,.fa-deafness:before,.fa-ear-deaf:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-alarm-clock:before{content:"\f34e"}.fa-eclipse:before{content:"\f749"}.fa-face-relieved:before{content:"\e389"}.fa-road-circle-check:before{content:"\e564"}.fa-dice-five:before{content:"\f523"}.fa-minus-octagon:before,.fa-octagon-minus:before{content:"\f308"}.fa-rss-square:before,.fa-square-rss:before{content:"\f143"}.fa-face-zany:before{content:"\e3a4"}.fa-tricycle:before{content:"\e5c3"}.fa-land-mine-on:before{content:"\e51b"}.fa-square-arrow-up-left:before{content:"\e263"}.fa-i-cursor:before{content:"\f246"}.fa-chart-mixed-up-circle-dollar:before{content:"\e5d9"}.fa-salt-shaker:before{content:"\e446"}.fa-stamp:before{content:"\f5bf"}.fa-file-plus:before{content:"\f319"}.fa-draw-square:before{content:"\f5ef"}.fa-toilet-paper-reverse-slash:before,.fa-toilet-paper-under-slash:before{content:"\e2a1"}.fa-stairs:before{content:"\e289"}.fa-drone-alt:before,.fa-drone-front:before{content:"\f860"}.fa-glass-empty:before{content:"\e191"}.fa-dial-high:before{content:"\e15c"}.fa-user-construction:before,.fa-user-hard-hat:before,.fa-user-helmet-safety:before{content:"\f82c"}.fa-i:before{content:"\49"}.fa-hryvnia-sign:before,.fa-hryvnia:before{content:"\f6f2"}.fa-arrow-down-left-and-arrow-up-right-to-center:before{content:"\e092"}.fa-pills:before{content:"\f484"}.fa-face-grin-wide:before,.fa-grin-alt:before{content:"\f581"}.fa-tooth:before{content:"\f5c9"}.fa-basketball-hoop:before{content:"\f435"}.fa-objects-align-bottom:before{content:"\e3bb"}.fa-v:before{content:"\56"}.fa-sparkles:before{content:"\f890"}.fa-squid:before{content:"\e450"}.fa-leafy-green:before{content:"\e41d"}.fa-circle-arrow-up-right:before{content:"\e0fc"}.fa-calendars:before{content:"\e0d7"}.fa-bangladeshi-taka-sign:before{content:"\e2e6"}.fa-bicycle:before{content:"\f206"}.fa-hammer-war:before{content:"\f6e4"}.fa-circle-d:before{content:"\e104"}.fa-spider-black-widow:before{content:"\f718"}.fa-rod-asclepius:before,.fa-rod-snake:before,.fa-staff-aesculapius:before,.fa-staff-snake:before{content:"\e579"}.fa-pear:before{content:"\e20c"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-file-mov:before{content:"\e647"}.fa-triangle:before{content:"\f2ec"}.fa-apartment:before{content:"\e468"}.fa-ambulance:before,.fa-truck-medical:before{content:"\f0f9"}.fa-pepper:before{content:"\e432"}.fa-piano:before{content:"\f8d4"}.fa-gun-squirt:before{content:"\e19d"}.fa-wheat-awn-circle-exclamation:before{content:"\e598"}.fa-snowman:before{content:"\f7d0"}.fa-user-alien:before{content:"\e04a"}.fa-shield-check:before{content:"\f2f7"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-road-barrier:before{content:"\e562"}.fa-chart-candlestick:before{content:"\e0e2"}.fa-briefcase-blank:before{content:"\e0c8"}.fa-school:before{content:"\f549"}.fa-igloo:before{content:"\f7ae"}.fa-bracket-round:before,.fa-parenthesis:before{content:"\28"}.fa-joint:before{content:"\f595"}.fa-horse-saddle:before{content:"\f8c3"}.fa-mug-marshmallows:before{content:"\f7b7"}.fa-filters:before{content:"\e17e"}.fa-bell-on:before{content:"\f8fa"}.fa-angle-right:before{content:"\f105"}.fa-dial-med:before{content:"\e15f"}.fa-horse:before{content:"\f6f0"}.fa-q:before{content:"\51"}.fa-monitor-heart-rate:before,.fa-monitor-waveform:before{content:"\f611"}.fa-link-simple:before{content:"\e1cd"}.fa-whistle:before{content:"\f460"}.fa-g:before{content:"\47"}.fa-fragile:before,.fa-wine-glass-crack:before{content:"\f4bb"}.fa-slot-machine:before{content:"\e3ce"}.fa-notes-medical:before{content:"\f481"}.fa-car-wash:before{content:"\f5e6"}.fa-escalator:before{content:"\e171"}.fa-comment-image:before{content:"\e148"}.fa-temperature-2:before,.fa-temperature-half:before,.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-dong-sign:before{content:"\e169"}.fa-donut:before,.fa-doughnut:before{content:"\e406"}.fa-capsules:before{content:"\f46b"}.fa-poo-bolt:before,.fa-poo-storm:before{content:"\f75a"}.fa-tally-1:before{content:"\e294"}.fa-file-vector:before{content:"\e64c"}.fa-face-frown-open:before,.fa-frown-open:before{content:"\f57a"}.fa-square-dashed:before{content:"\e269"}.fa-bag-shopping-plus:before{content:"\e651"}.fa-square-j:before{content:"\e273"}.fa-hand-point-up:before{content:"\f0a6"}.fa-money-bill:before{content:"\f0d6"}.fa-arrow-up-big-small:before,.fa-sort-size-up:before{content:"\f88e"}.fa-barcode-read:before{content:"\f464"}.fa-baguette:before{content:"\e3d8"}.fa-bowl-soft-serve:before{content:"\e46b"}.fa-face-holding-back-tears:before{content:"\e482"}.fa-arrow-alt-square-up:before,.fa-square-up:before{content:"\f353"}.fa-subway-tunnel:before,.fa-train-subway-tunnel:before{content:"\e2a3"}.fa-exclamation-square:before,.fa-square-exclamation:before{content:"\f321"}.fa-semicolon:before{content:"\3b"}.fa-bookmark:before{content:"\f02e"}.fa-fan-table:before{content:"\e004"}.fa-align-justify:before{content:"\f039"}.fa-battery-1:before,.fa-battery-low:before{content:"\e0b1"}.fa-credit-card-front:before{content:"\f38a"}.fa-brain-arrow-curved-right:before,.fa-mind-share:before{content:"\f677"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-helmet-un:before{content:"\e503"}.fa-location-smile:before,.fa-map-marker-smile:before{content:"\f60d"}.fa-arrow-left-to-line:before,.fa-arrow-to-left:before{content:"\f33e"}.fa-bullseye:before{content:"\f140"}.fa-nigiri:before,.fa-sushi:before{content:"\e48a"}.fa-comment-alt-captions:before,.fa-message-captions:before{content:"\e1de"}.fa-trash-list:before{content:"\e2b1"}.fa-bacon:before{content:"\f7e5"}.fa-option:before{content:"\e318"}.fa-raccoon:before{content:"\e613"}.fa-hand-point-down:before{content:"\f0a7"}.fa-arrow-up-from-bracket:before{content:"\e09a"}.fa-head-side-gear:before{content:"\e611"}.fa-trash-plus:before{content:"\e2b2"}.fa-file-cad:before{content:"\e672"}.fa-objects-align-top:before{content:"\e3c0"}.fa-folder-blank:before,.fa-folder:before{content:"\f07b"}.fa-face-anxious-sweat:before{content:"\e36a"}.fa-credit-card-blank:before{content:"\f389"}.fa-file-medical-alt:before,.fa-file-waveform:before{content:"\f478"}.fa-microchip-ai:before{content:"\e1ec"}.fa-mug:before{content:"\f874"}.fa-plane-up-slash:before{content:"\e22e"}.fa-radiation:before{content:"\f7b9"}.fa-pen-circle:before{content:"\e20e"}.fa-bag-seedling:before{content:"\e5f2"}.fa-chart-simple:before{content:"\e473"}.fa-crutches:before{content:"\f7f8"}.fa-circle-parking:before,.fa-parking-circle:before{content:"\f615"}.fa-mars-stroke:before{content:"\f229"}.fa-leaf-oak:before{content:"\f6f7"}.fa-square-bolt:before{content:"\e265"}.fa-vial:before{content:"\f492"}.fa-dashboard:before,.fa-gauge-med:before,.fa-gauge:before,.fa-tachometer-alt-average:before{content:"\f624"}.fa-magic-wand-sparkles:before,.fa-wand-magic-sparkles:before{content:"\e2ca"}.fa-lambda:before{content:"\f66e"}.fa-e:before{content:"\45"}.fa-pizza:before{content:"\f817"}.fa-bowl-chopsticks-noodles:before{content:"\e2ea"}.fa-h3:before{content:"\f315"}.fa-pen-alt:before,.fa-pen-clip:before{content:"\f305"}.fa-bridge-circle-exclamation:before{content:"\e4ca"}.fa-badge-percent:before{content:"\f646"}.fa-rotate-reverse:before{content:"\e631"}.fa-user:before{content:"\f007"}.fa-sensor:before{content:"\e028"}.fa-comma:before{content:"\2c"}.fa-school-circle-check:before{content:"\e56b"}.fa-toilet-paper-reverse:before,.fa-toilet-paper-under:before{content:"\e2a0"}.fa-light-emergency:before{content:"\e41f"}.fa-arrow-down-to-arc:before{content:"\e4ae"}.fa-dumpster:before{content:"\f793"}.fa-shuttle-van:before,.fa-van-shuttle:before{content:"\f5b6"}.fa-building-user:before{content:"\e4da"}.fa-light-switch:before{content:"\e017"}.fa-caret-square-left:before,.fa-square-caret-left:before{content:"\f191"}.fa-highlighter:before{content:"\f591"}.fa-heart-rate:before,.fa-wave-pulse:before{content:"\f5f8"}.fa-key:before{content:"\f084"}.fa-arrow-left-to-bracket:before{content:"\e669"}.fa-hat-santa:before{content:"\f7a7"}.fa-tamale:before{content:"\e451"}.fa-box-check:before{content:"\f467"}.fa-bullhorn:before{content:"\f0a1"}.fa-steak:before{content:"\f824"}.fa-location-crosshairs-slash:before,.fa-location-slash:before{content:"\f603"}.fa-person-dolly:before{content:"\f4d0"}.fa-globe:before{content:"\f0ac"}.fa-synagogue:before{content:"\f69b"}.fa-file-chart-column:before,.fa-file-chart-line:before{content:"\f659"}.fa-person-half-dress:before{content:"\e548"}.fa-folder-image:before{content:"\e18a"}.fa-calendar-edit:before,.fa-calendar-pen:before{content:"\f333"}.fa-road-bridge:before{content:"\e563"}.fa-face-smile-tear:before{content:"\e393"}.fa-comment-alt-plus:before,.fa-message-plus:before{content:"\f4a8"}.fa-location-arrow:before{content:"\f124"}.fa-c:before{content:"\43"}.fa-tablet-button:before{content:"\f10a"}.fa-person-dress-fairy:before{content:"\e607"}.fa-rectangle-history-circle-user:before{content:"\e4a4"}.fa-building-lock:before{content:"\e4d6"}.fa-chart-line-up:before{content:"\e0e5"}.fa-mailbox:before{content:"\f813"}.fa-sign-posts:before{content:"\e625"}.fa-truck-bolt:before{content:"\e3d0"}.fa-pizza-slice:before{content:"\f818"}.fa-money-bill-wave:before{content:"\f53a"}.fa-area-chart:before,.fa-chart-area:before{content:"\f1fe"}.fa-house-flag:before{content:"\e50d"}.fa-circle-three-quarters-stroke:before{content:"\e5d4"}.fa-person-circle-minus:before{content:"\e540"}.fa-scalpel:before{content:"\f61d"}.fa-ban:before,.fa-cancel:before{content:"\f05e"}.fa-bell-exclamation:before{content:"\f848"}.fa-bookmark-circle:before,.fa-circle-bookmark:before{content:"\e100"}.fa-egg-fried:before{content:"\f7fc"}.fa-face-weary:before{content:"\e3a1"}.fa-uniform-martial-arts:before{content:"\e3d1"}.fa-camera-rotate:before{content:"\e0d8"}.fa-sun-dust:before{content:"\f764"}.fa-comment-text:before{content:"\e14d"}.fa-air-freshener:before,.fa-spray-can-sparkles:before{content:"\f5d0"}.fa-signal-alt-4:before,.fa-signal-alt:before,.fa-signal-bars-strong:before,.fa-signal-bars:before{content:"\f690"}.fa-diamond-exclamation:before{content:"\e405"}.fa-star:before{content:"\f005"}.fa-dial-min:before{content:"\e161"}.fa-repeat:before{content:"\f363"}.fa-cross:before{content:"\f654"}.fa-file-caret-down:before,.fa-page-caret-down:before{content:"\e429"}.fa-box:before{content:"\f466"}.fa-venus-mars:before{content:"\f228"}.fa-clock-seven-thirty:before{content:"\e351"}.fa-arrow-pointer:before,.fa-mouse-pointer:before{content:"\f245"}.fa-clock-four-thirty:before{content:"\e34b"}.fa-signal-alt-3:before,.fa-signal-bars-good:before{content:"\f693"}.fa-cactus:before{content:"\f8a7"}.fa-lightbulb-gear:before{content:"\e5fd"}.fa-expand-arrows-alt:before,.fa-maximize:before{content:"\f31e"}.fa-charging-station:before{content:"\f5e7"}.fa-shapes:before,.fa-triangle-circle-square:before{content:"\f61f"}.fa-plane-tail:before{content:"\e22c"}.fa-gauge-simple-max:before,.fa-tachometer-fastest:before{content:"\f62b"}.fa-circle-u:before{content:"\e127"}.fa-shield-slash:before{content:"\e24b"}.fa-phone-square-down:before,.fa-square-phone-hangup:before{content:"\e27a"}.fa-arrow-up-left:before{content:"\e09d"}.fa-transporter-1:before{content:"\e043"}.fa-peanuts:before{content:"\e431"}.fa-random:before,.fa-shuffle:before{content:"\f074"}.fa-person-running:before,.fa-running:before{content:"\f70c"}.fa-mobile-retro:before{content:"\e527"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-bin-bottles-recycle:before{content:"\e5f6"}.fa-arrow-up-from-square:before{content:"\e09c"}.fa-file-dashed-line:before,.fa-page-break:before{content:"\f877"}.fa-bracket-curly-right:before{content:"\7d"}.fa-spider:before{content:"\f717"}.fa-clock-three:before{content:"\e356"}.fa-hands-bound:before{content:"\e4f9"}.fa-scalpel-line-dashed:before,.fa-scalpel-path:before{content:"\f61e"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-pipe-smoking:before{content:"\e3c4"}.fa-face-astonished:before{content:"\e36b"}.fa-window:before{content:"\f40e"}.fa-plane-circle-exclamation:before{content:"\e556"}.fa-ear:before{content:"\f5f0"}.fa-file-lock:before{content:"\e3a6"}.fa-diagram-venn:before{content:"\e15a"}.fa-arrow-down-from-bracket:before{content:"\e667"}.fa-x-ray:before{content:"\f497"}.fa-goal-net:before{content:"\e3ab"}.fa-coffin-cross:before{content:"\e051"}.fa-spell-check:before{content:"\f891"}.fa-location-xmark:before,.fa-map-marker-times:before,.fa-map-marker-xmark:before{content:"\f60e"}.fa-circle-quarter-stroke:before{content:"\e5d3"}.fa-lasso:before{content:"\f8c8"}.fa-slash:before{content:"\f715"}.fa-person-to-portal:before,.fa-portal-enter:before{content:"\e022"}.fa-calendar-star:before{content:"\f736"}.fa-computer-mouse:before,.fa-mouse:before{content:"\f8cc"}.fa-arrow-right-to-bracket:before,.fa-sign-in:before{content:"\f090"}.fa-pegasus:before{content:"\f703"}.fa-files-medical:before{content:"\f7fd"}.fa-cannon:before{content:"\e642"}.fa-nfc-lock:before{content:"\e1f8"}.fa-person-ski-lift:before,.fa-ski-lift:before{content:"\f7c8"}.fa-square-6:before{content:"\e25b"}.fa-shop-slash:before,.fa-store-alt-slash:before{content:"\e070"}.fa-wind-turbine:before{content:"\f89b"}.fa-sliders-simple:before{content:"\e253"}.fa-grid-round:before{content:"\e5da"}.fa-badge-sheriff:before{content:"\f8a2"}.fa-server:before{content:"\f233"}.fa-virus-covid-slash:before{content:"\e4a9"}.fa-intersection:before{content:"\f668"}.fa-shop-lock:before{content:"\e4a5"}.fa-family:before{content:"\e300"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-user-hair-buns:before{content:"\e3d3"}.fa-blender-phone:before{content:"\f6b6"}.fa-hourglass-clock:before{content:"\e41b"}.fa-person-seat-reclined:before{content:"\e21f"}.fa-paper-plane-alt:before,.fa-paper-plane-top:before,.fa-send:before{content:"\e20a"}.fa-comment-alt-arrow-up:before,.fa-message-arrow-up:before{content:"\e1dc"}.fa-lightbulb-exclamation:before{content:"\f671"}.fa-layer-group-minus:before,.fa-layer-minus:before{content:"\f5fe"}.fa-chart-pie-simple-circle-currency:before{content:"\e604"}.fa-circle-e:before{content:"\e109"}.fa-building-wheat:before{content:"\e4db"}.fa-gauge-max:before,.fa-tachometer-alt-fastest:before{content:"\f626"}.fa-person-breastfeeding:before{content:"\e53a"}.fa-apostrophe:before{content:"\27"}.fa-file-png:before{content:"\e666"}.fa-fire-hydrant:before{content:"\e17f"}.fa-right-to-bracket:before,.fa-sign-in-alt:before{content:"\f2f6"}.fa-video-plus:before{content:"\f4e1"}.fa-arrow-alt-square-right:before,.fa-square-right:before{content:"\f352"}.fa-comment-smile:before{content:"\f4b4"}.fa-venus:before{content:"\f221"}.fa-passport:before{content:"\f5ab"}.fa-inbox-arrow-down:before,.fa-inbox-in:before{content:"\f310"}.fa-heart-pulse:before,.fa-heartbeat:before{content:"\f21e"}.fa-circle-8:before{content:"\e0f5"}.fa-clouds-moon:before{content:"\f745"}.fa-clock-ten-thirty:before{content:"\e355"}.fa-people-carry-box:before,.fa-people-carry:before{content:"\f4ce"}.fa-folder-user:before{content:"\e18e"}.fa-trash-can-xmark:before{content:"\e2ae"}.fa-temperature-high:before{content:"\f769"}.fa-microchip:before{content:"\f2db"}.fa-left-long-to-line:before{content:"\e41e"}.fa-crown:before{content:"\f521"}.fa-weight-hanging:before{content:"\f5cd"}.fa-xmarks-lines:before{content:"\e59a"}.fa-file-prescription:before{content:"\f572"}.fa-table-cells-lock:before{content:"\e679"}.fa-calendar-range:before{content:"\e0d6"}.fa-flower-daffodil:before{content:"\f800"}.fa-hand-back-point-up:before{content:"\e1a2"}.fa-weight-scale:before,.fa-weight:before{content:"\f496"}.fa-arrow-up-to-arc:before{content:"\e617"}.fa-star-exclamation:before{content:"\f2f3"}.fa-books:before{content:"\f5db"}.fa-user-friends:before,.fa-user-group:before{content:"\f500"}.fa-arrow-up-a-z:before,.fa-sort-alpha-up:before{content:"\f15e"}.fa-layer-group-plus:before,.fa-layer-plus:before{content:"\f5ff"}.fa-play-pause:before{content:"\e22f"}.fa-block-question:before{content:"\e3dd"}.fa-snooze:before,.fa-zzz:before{content:"\f880"}.fa-scanner-image:before{content:"\f8f3"}.fa-tv-retro:before{content:"\f401"}.fa-square-t:before{content:"\e280"}.fa-barn-silo:before,.fa-farm:before{content:"\f864"}.fa-chess-knight:before{content:"\f441"}.fa-bars-sort:before{content:"\e0ae"}.fa-palette-boxes:before,.fa-pallet-alt:before,.fa-pallet-boxes:before{content:"\f483"}.fa-face-laugh-squint:before,.fa-laugh-squint:before{content:"\f59b"}.fa-code-simple:before{content:"\e13d"}.fa-bolt-slash:before{content:"\e0b8"}.fa-panel-fire:before{content:"\e42f"}.fa-binary-circle-check:before{content:"\e33c"}.fa-comment-minus:before{content:"\f4b1"}.fa-burrito:before{content:"\f7ed"}.fa-violin:before{content:"\f8ed"}.fa-objects-column:before{content:"\e3c1"}.fa-chevron-square-down:before,.fa-square-chevron-down:before{content:"\f329"}.fa-comment-plus:before{content:"\f4b2"}.fa-triangle-instrument:before,.fa-triangle-music:before{content:"\f8e2"}.fa-wheelchair:before{content:"\f193"}.fa-user-pilot-tie:before{content:"\e2c1"}.fa-piano-keyboard:before{content:"\f8d5"}.fa-bed-empty:before{content:"\f8f9"}.fa-arrow-circle-up:before,.fa-circle-arrow-up:before{content:"\f0aa"}.fa-toggle-on:before{content:"\f205"}.fa-rectangle-portrait:before,.fa-rectangle-vertical:before{content:"\f2fb"}.fa-person-walking:before,.fa-walking:before{content:"\f554"}.fa-l:before{content:"\4c"}.fa-signal-stream:before{content:"\f8dd"}.fa-down-to-bracket:before{content:"\e4e7"}.fa-circle-z:before{content:"\e130"}.fa-stars:before{content:"\f762"}.fa-fire:before{content:"\f06d"}.fa-bed-pulse:before,.fa-procedures:before{content:"\f487"}.fa-house-day:before{content:"\e00e"}.fa-shuttle-space:before,.fa-space-shuttle:before{content:"\f197"}.fa-shirt-long-sleeve:before{content:"\e3c7"}.fa-chart-pie-alt:before,.fa-chart-pie-simple:before{content:"\f64e"}.fa-face-laugh:before,.fa-laugh:before{content:"\f599"}.fa-folder-open:before{content:"\f07c"}.fa-album-collection-circle-user:before{content:"\e48f"}.fa-candy:before{content:"\e3e7"}.fa-bowl-hot:before,.fa-soup:before{content:"\f823"}.fa-flatbread:before{content:"\e40b"}.fa-heart-circle-plus:before{content:"\e500"}.fa-code-fork:before{content:"\e13b"}.fa-city:before{content:"\f64f"}.fa-signal-alt-1:before,.fa-signal-bars-weak:before{content:"\f691"}.fa-microphone-alt:before,.fa-microphone-lines:before{content:"\f3c9"}.fa-clock-twelve:before{content:"\e358"}.fa-pepper-hot:before{content:"\f816"}.fa-citrus-slice:before{content:"\e2f5"}.fa-sheep:before{content:"\f711"}.fa-unlock:before{content:"\f09c"}.fa-colon-sign:before{content:"\e140"}.fa-headset:before{content:"\f590"}.fa-badger-honey:before{content:"\f6b4"}.fa-h4:before{content:"\f86a"}.fa-store-slash:before{content:"\e071"}.fa-road-circle-xmark:before{content:"\e566"}.fa-signal-slash:before{content:"\f695"}.fa-user-minus:before{content:"\f503"}.fa-mars-stroke-up:before,.fa-mars-stroke-v:before{content:"\f22a"}.fa-champagne-glasses:before,.fa-glass-cheers:before{content:"\f79f"}.fa-taco:before{content:"\f826"}.fa-hexagon-plus:before,.fa-plus-hexagon:before{content:"\f300"}.fa-clipboard:before{content:"\f328"}.fa-house-circle-exclamation:before{content:"\e50a"}.fa-file-arrow-up:before,.fa-file-upload:before{content:"\f574"}.fa-wifi-3:before,.fa-wifi-strong:before,.fa-wifi:before{content:"\f1eb"}.fa-comments-alt:before,.fa-messages:before{content:"\f4b6"}.fa-bath:before,.fa-bathtub:before{content:"\f2cd"}.fa-umbrella-alt:before,.fa-umbrella-simple:before{content:"\e2bc"}.fa-rectangle-history-circle-plus:before{content:"\e4a3"}.fa-underline:before{content:"\f0cd"}.fa-prescription-bottle-pill:before{content:"\e5c0"}.fa-user-edit:before,.fa-user-pen:before{content:"\f4ff"}.fa-binary-slash:before{content:"\e33e"}.fa-square-o:before{content:"\e278"}.fa-caduceus:before{content:"\e681"}.fa-signature:before{content:"\f5b7"}.fa-stroopwafel:before{content:"\f551"}.fa-bold:before{content:"\f032"}.fa-anchor-lock:before{content:"\e4ad"}.fa-building-ngo:before{content:"\e4d7"}.fa-transporter-3:before{content:"\e045"}.fa-engine-exclamation:before,.fa-engine-warning:before{content:"\f5f2"}.fa-circle-down-right:before{content:"\e108"}.fa-square-k:before{content:"\e274"}.fa-manat-sign:before{content:"\e1d5"}.fa-money-check-edit:before,.fa-money-check-pen:before{content:"\f872"}.fa-not-equal:before{content:"\f53e"}.fa-border-style:before,.fa-border-top-left:before{content:"\f853"}.fa-map-location-dot:before,.fa-map-marked-alt:before{content:"\f5a0"}.fa-tilde:before{content:"\7e"}.fa-jedi:before{content:"\f669"}.fa-poll:before,.fa-square-poll-vertical:before{content:"\f681"}.fa-arrow-down-square-triangle:before,.fa-sort-shapes-down-alt:before{content:"\f889"}.fa-mug-hot:before{content:"\f7b6"}.fa-dog-leashed:before{content:"\f6d4"}.fa-battery-car:before,.fa-car-battery:before{content:"\f5df"}.fa-face-downcast-sweat:before{content:"\e371"}.fa-mailbox-flag-up:before{content:"\e5bb"}.fa-memo-circle-info:before{content:"\e49a"}.fa-gift:before{content:"\f06b"}.fa-dice-two:before{content:"\f528"}.fa-volume-medium:before,.fa-volume:before{content:"\f6a8"}.fa-transporter-5:before{content:"\e2a6"}.fa-gauge-circle-bolt:before{content:"\e496"}.fa-coin-front:before{content:"\e3fc"}.fa-file-slash:before{content:"\e3a7"}.fa-message-arrow-up-right:before{content:"\e1dd"}.fa-treasure-chest:before{content:"\f723"}.fa-chess-queen:before{content:"\f445"}.fa-paint-brush-alt:before,.fa-paint-brush-fine:before,.fa-paintbrush-alt:before,.fa-paintbrush-fine:before{content:"\f5a9"}.fa-glasses:before{content:"\f530"}.fa-hood-cloak:before{content:"\f6ef"}.fa-square-quote:before{content:"\e329"}.fa-up-left:before{content:"\e2bd"}.fa-bring-front:before{content:"\f857"}.fa-chess-board:before{content:"\f43c"}.fa-burger-cheese:before,.fa-cheeseburger:before{content:"\f7f1"}.fa-building-circle-check:before{content:"\e4d2"}.fa-repeat-1:before{content:"\f365"}.fa-arrow-down-to-line:before,.fa-arrow-to-bottom:before{content:"\f33d"}.fa-grid-5:before{content:"\e199"}.fa-swap-arrows:before{content:"\e60a"}.fa-right-long-to-line:before{content:"\e444"}.fa-person-chalkboard:before{content:"\e53d"}.fa-mars-stroke-h:before,.fa-mars-stroke-right:before{content:"\f22b"}.fa-hand-back-fist:before,.fa-hand-rock:before{content:"\f255"}.fa-grid-round-5:before{content:"\e5de"}.fa-tally-5:before,.fa-tally:before{content:"\f69c"}.fa-caret-square-up:before,.fa-square-caret-up:before{content:"\f151"}.fa-cloud-showers-water:before{content:"\e4e4"}.fa-bar-chart:before,.fa-chart-bar:before{content:"\f080"}.fa-hands-bubbles:before,.fa-hands-wash:before{content:"\e05e"}.fa-less-than-equal:before{content:"\f537"}.fa-train:before{content:"\f238"}.fa-up-from-dotted-line:before{content:"\e456"}.fa-eye-low-vision:before,.fa-low-vision:before{content:"\f2a8"}.fa-traffic-light-go:before{content:"\f638"}.fa-face-exhaling:before{content:"\e480"}.fa-sensor-fire:before{content:"\e02a"}.fa-user-unlock:before{content:"\e058"}.fa-hexagon-divide:before{content:"\e1ad"}.fa-00:before{content:"\e467"}.fa-crow:before{content:"\f520"}.fa-betamax:before,.fa-cassette-betamax:before{content:"\f8a4"}.fa-sailboat:before{content:"\e445"}.fa-window-restore:before{content:"\f2d2"}.fa-nfc-magnifying-glass:before{content:"\e1f9"}.fa-file-binary:before{content:"\e175"}.fa-circle-v:before{content:"\e12a"}.fa-plus-square:before,.fa-square-plus:before{content:"\f0fe"}.fa-bowl-scoops:before{content:"\e3df"}.fa-mistletoe:before{content:"\f7b4"}.fa-custard:before{content:"\e403"}.fa-lacrosse-stick:before{content:"\e3b5"}.fa-hockey-mask:before{content:"\f6ee"}.fa-sunrise:before{content:"\f766"}.fa-subtitles:before{content:"\e60f"}.fa-panel-ews:before{content:"\e42e"}.fa-torii-gate:before{content:"\f6a1"}.fa-cloud-exclamation:before{content:"\e491"}.fa-comment-alt-lines:before,.fa-message-lines:before{content:"\f4a6"}.fa-frog:before{content:"\f52e"}.fa-bucket:before{content:"\e4cf"}.fa-floppy-disk-pen:before{content:"\e182"}.fa-image:before{content:"\f03e"}.fa-window-frame:before{content:"\e04f"}.fa-microphone:before{content:"\f130"}.fa-cow:before{content:"\f6c8"}.fa-file-zip:before{content:"\e5ee"}.fa-square-ring:before{content:"\e44f"}.fa-arrow-alt-from-top:before,.fa-down-from-line:before{content:"\f349"}.fa-caret-up:before{content:"\f0d8"}.fa-shield-times:before,.fa-shield-xmark:before{content:"\e24c"}.fa-screwdriver:before{content:"\f54a"}.fa-circle-sort-down:before,.fa-sort-circle-down:before{content:"\e031"}.fa-folder-closed:before{content:"\e185"}.fa-house-tsunami:before{content:"\e515"}.fa-square-nfi:before{content:"\e576"}.fa-forklift:before{content:"\f47a"}.fa-arrow-up-from-ground-water:before{content:"\e4b5"}.fa-bracket-square-right:before{content:"\5d"}.fa-glass-martini-alt:before,.fa-martini-glass:before{content:"\f57b"}.fa-rotate-back:before,.fa-rotate-backward:before,.fa-rotate-left:before,.fa-undo-alt:before{content:"\f2ea"}.fa-columns:before,.fa-table-columns:before{content:"\f0db"}.fa-square-a:before{content:"\e25f"}.fa-tick:before{content:"\e32f"}.fa-lemon:before{content:"\f094"}.fa-head-side-mask:before{content:"\e063"}.fa-handshake:before{content:"\f2b5"}.fa-gem:before{content:"\f3a5"}.fa-dolly-box:before,.fa-dolly:before{content:"\f472"}.fa-smoking:before{content:"\f48d"}.fa-compress-arrows-alt:before,.fa-minimize:before{content:"\f78c"}.fa-refrigerator:before{content:"\e026"}.fa-monument:before{content:"\f5a6"}.fa-octagon-xmark:before,.fa-times-octagon:before,.fa-xmark-octagon:before{content:"\f2f0"}.fa-align-slash:before{content:"\f846"}.fa-snowplow:before{content:"\f7d2"}.fa-angle-double-right:before,.fa-angles-right:before{content:"\f101"}.fa-truck-couch:before,.fa-truck-ramp-couch:before{content:"\f4dd"}.fa-cannabis:before{content:"\f55f"}.fa-circle-play:before,.fa-play-circle:before{content:"\f144"}.fa-arrow-up-right-and-arrow-down-left-from-center:before{content:"\e0a0"}.fa-location-arrow-up:before{content:"\e63a"}.fa-tablets:before{content:"\f490"}.fa-360-degrees:before{content:"\e2dc"}.fa-ethernet:before{content:"\f796"}.fa-eur:before,.fa-euro-sign:before,.fa-euro:before{content:"\f153"}.fa-chair:before{content:"\f6c0"}.fa-check-circle:before,.fa-circle-check:before{content:"\f058"}.fa-square-dashed-circle-plus:before{content:"\e5c2"}.fa-hand-holding-circle-dollar:before{content:"\e621"}.fa-money-simple-from-bracket:before{content:"\e313"}.fa-bat:before{content:"\f6b5"}.fa-circle-stop:before,.fa-stop-circle:before{content:"\f28d"}.fa-head-side-headphones:before{content:"\f8c2"}.fa-phone-rotary:before{content:"\f8d3"}.fa-arrow-up-to-bracket:before{content:"\e66a"}.fa-compass-drafting:before,.fa-drafting-compass:before{content:"\f568"}.fa-plate-wheat:before{content:"\e55a"}.fa-calendar-circle-minus:before{content:"\e46f"}.fa-chopsticks:before{content:"\e3f7"}.fa-car-mechanic:before,.fa-car-wrench:before{content:"\f5e3"}.fa-icicles:before{content:"\f7ad"}.fa-person-shelter:before{content:"\e54f"}.fa-neuter:before{content:"\f22c"}.fa-id-badge:before{content:"\f2c1"}.fa-kazoo:before{content:"\f8c7"}.fa-marker:before{content:"\f5a1"}.fa-bin-bottles:before{content:"\e5f5"}.fa-face-laugh-beam:before,.fa-laugh-beam:before{content:"\f59a"}.fa-square-arrow-down-left:before{content:"\e261"}.fa-battery-bolt:before{content:"\f376"}.fa-tree-large:before{content:"\f7dd"}.fa-helicopter-symbol:before{content:"\e502"}.fa-aperture:before{content:"\e2df"}.fa-universal-access:before{content:"\f29a"}.fa-gear-complex:before{content:"\e5e9"}.fa-file-magnifying-glass:before,.fa-file-search:before{content:"\f865"}.fa-up-right:before{content:"\e2be"}.fa-chevron-circle-up:before,.fa-circle-chevron-up:before{content:"\f139"}.fa-user-police:before{content:"\e333"}.fa-lari-sign:before{content:"\e1c8"}.fa-volcano:before{content:"\f770"}.fa-teddy-bear:before{content:"\e3cf"}.fa-stocking:before{content:"\f7d5"}.fa-person-walking-dashed-line-arrow-right:before{content:"\e553"}.fa-image-slash:before{content:"\e1b7"}.fa-mask-snorkel:before{content:"\e3b7"}.fa-smoke:before{content:"\f760"}.fa-gbp:before,.fa-pound-sign:before,.fa-sterling-sign:before{content:"\f154"}.fa-battery-exclamation:before{content:"\e0b0"}.fa-viruses:before{content:"\e076"}.fa-square-person-confined:before{content:"\e577"}.fa-user-tie:before{content:"\f508"}.fa-up-to-bracket:before{content:"\e66e"}.fa-arrow-down-long:before,.fa-long-arrow-down:before{content:"\f175"}.fa-tent-arrow-down-to-line:before{content:"\e57e"}.fa-certificate:before{content:"\f0a3"}.fa-crystal-ball:before{content:"\e362"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-suitcase:before{content:"\f0f2"}.fa-person-skating:before,.fa-skating:before{content:"\f7c5"}.fa-star-shooting:before{content:"\e036"}.fa-binary-lock:before{content:"\e33d"}.fa-filter-circle-dollar:before,.fa-funnel-dollar:before{content:"\f662"}.fa-camera-retro:before{content:"\f083"}.fa-arrow-circle-down:before,.fa-circle-arrow-down:before{content:"\f0ab"}.fa-comment-edit:before,.fa-comment-pen:before{content:"\f4ae"}.fa-arrow-right-to-file:before,.fa-file-import:before{content:"\f56f"}.fa-banjo:before{content:"\f8a3"}.fa-external-link-square:before,.fa-square-arrow-up-right:before{content:"\f14c"}.fa-light-emergency-on:before{content:"\e420"}.fa-kerning:before{content:"\f86f"}.fa-box-open:before{content:"\f49e"}.fa-square-f:before{content:"\e270"}.fa-scroll:before{content:"\f70e"}.fa-spa:before{content:"\f5bb"}.fa-arrow-from-right:before,.fa-arrow-left-from-line:before{content:"\f344"}.fa-strawberry:before{content:"\e32b"}.fa-location-pin-lock:before{content:"\e51f"}.fa-pause:before{content:"\f04c"}.fa-clock-eight-thirty:before{content:"\e346"}.fa-plane-alt:before,.fa-plane-engines:before{content:"\f3de"}.fa-hill-avalanche:before{content:"\e507"}.fa-temperature-0:before,.fa-temperature-empty:before,.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-bomb:before{content:"\f1e2"}.fa-gauge-low:before,.fa-tachometer-alt-slow:before{content:"\f627"}.fa-registered:before{content:"\f25d"}.fa-trash-can-plus:before{content:"\e2ac"}.fa-address-card:before,.fa-contact-card:before,.fa-vcard:before{content:"\f2bb"}.fa-balance-scale-right:before,.fa-scale-unbalanced-flip:before{content:"\f516"}.fa-globe-snow:before{content:"\f7a3"}.fa-subscript:before{content:"\f12c"}.fa-diamond-turn-right:before,.fa-directions:before{content:"\f5eb"}.fa-integral:before{content:"\f667"}.fa-burst:before{content:"\e4dc"}.fa-house-laptop:before,.fa-laptop-house:before{content:"\e066"}.fa-face-tired:before,.fa-tired:before{content:"\f5c8"}.fa-money-bills:before{content:"\e1f3"}.fa-blinds-raised:before{content:"\f8fd"}.fa-smog:before{content:"\f75f"}.fa-ufo-beam:before{content:"\e048"}.fa-caret-circle-up:before,.fa-circle-caret-up:before{content:"\f331"}.fa-user-vneck-hair-long:before{content:"\e463"}.fa-square-a-lock:before{content:"\e44d"}.fa-crutch:before{content:"\f7f7"}.fa-gas-pump-slash:before{content:"\f5f4"}.fa-cloud-arrow-up:before,.fa-cloud-upload-alt:before,.fa-cloud-upload:before{content:"\f0ee"}.fa-palette:before{content:"\f53f"}.fa-transporter-4:before{content:"\e2a5"}.fa-chart-mixed-up-circle-currency:before{content:"\e5d8"}.fa-objects-align-right:before{content:"\e3bf"}.fa-arrows-turn-right:before{content:"\e4c0"}.fa-vest:before{content:"\e085"}.fa-pig:before{content:"\f706"}.fa-inbox-full:before{content:"\e1ba"}.fa-circle-envelope:before,.fa-envelope-circle:before{content:"\e10c"}.fa-construction:before,.fa-triangle-person-digging:before{content:"\f85d"}.fa-ferry:before{content:"\e4ea"}.fa-bullseye-arrow:before{content:"\f648"}.fa-arrows-down-to-people:before{content:"\e4b9"}.fa-seedling:before,.fa-sprout:before{content:"\f4d8"}.fa-clock-seven:before{content:"\e350"}.fa-arrows-alt-h:before,.fa-left-right:before{content:"\f337"}.fa-boxes-packing:before{content:"\e4c7"}.fa-arrow-circle-left:before,.fa-circle-arrow-left:before{content:"\f0a8"}.fa-flashlight:before{content:"\f8b8"}.fa-file-jpg:before{content:"\e646"}.fa-group-arrows-rotate:before{content:"\e4f6"}.fa-bowl-food:before{content:"\e4c6"}.fa-square-9:before{content:"\e25e"}.fa-candy-cane:before{content:"\f786"}.fa-arrow-down-wide-short:before,.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:"\f160"}.fa-dollar-square:before,.fa-square-dollar:before,.fa-usd-square:before{content:"\f2e9"}.fa-phone-arrow-right:before{content:"\e5be"}.fa-hand-holding-seedling:before{content:"\f4bf"}.fa-comment-alt-check:before,.fa-message-check:before{content:"\f4a2"}.fa-cloud-bolt:before,.fa-thunderstorm:before{content:"\f76c"}.fa-chart-line-up-down:before{content:"\e5d7"}.fa-remove-format:before,.fa-text-slash:before{content:"\f87d"}.fa-watch:before{content:"\f2e1"}.fa-circle-down-left:before{content:"\e107"}.fa-text:before{content:"\f893"}.fa-projector:before{content:"\f8d6"}.fa-face-smile-wink:before,.fa-smile-wink:before{content:"\f4da"}.fa-tombstone-alt:before,.fa-tombstone-blank:before{content:"\f721"}.fa-chess-king-alt:before,.fa-chess-king-piece:before{content:"\f440"}.fa-circle-6:before{content:"\e0f3"}.fa-waves-sine:before{content:"\e65d"}.fa-arrow-alt-left:before,.fa-left:before{content:"\f355"}.fa-file-word:before{content:"\f1c2"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-arrow-alt-square-down:before,.fa-square-down:before{content:"\f350"}.fa-objects-align-center-vertical:before{content:"\e3bd"}.fa-arrows-h:before,.fa-arrows-left-right:before{content:"\f07e"}.fa-house-lock:before{content:"\e510"}.fa-cloud-arrow-down:before,.fa-cloud-download-alt:before,.fa-cloud-download:before{content:"\f0ed"}.fa-wreath:before{content:"\f7e2"}.fa-children:before{content:"\e4e1"}.fa-meter-droplet:before{content:"\e1ea"}.fa-blackboard:before,.fa-chalkboard:before{content:"\f51b"}.fa-user-alt-slash:before,.fa-user-large-slash:before{content:"\f4fa"}.fa-signal-4:before,.fa-signal-strong:before{content:"\f68f"}.fa-lollipop:before,.fa-lollypop:before{content:"\e424"}.fa-list-tree:before{content:"\e1d2"}.fa-envelope-open:before{content:"\f2b6"}.fa-draw-circle:before{content:"\f5ed"}.fa-cat-space:before{content:"\e001"}.fa-handshake-alt-slash:before,.fa-handshake-simple-slash:before{content:"\e05f"}.fa-rabbit-fast:before,.fa-rabbit-running:before{content:"\f709"}.fa-memo-pad:before{content:"\e1da"}.fa-mattress-pillow:before{content:"\e525"}.fa-alarm-plus:before{content:"\f844"}.fa-alicorn:before{content:"\f6b0"}.fa-comment-question:before{content:"\e14b"}.fa-gingerbread-man:before{content:"\f79d"}.fa-guarani-sign:before{content:"\e19a"}.fa-burger-fries:before{content:"\e0cd"}.fa-mug-tea:before{content:"\f875"}.fa-border-top:before{content:"\f855"}.fa-arrows-rotate:before,.fa-refresh:before,.fa-sync:before{content:"\f021"}.fa-book-circle:before,.fa-circle-book-open:before{content:"\e0ff"}.fa-arrows-to-dotted-line:before{content:"\e0a6"}.fa-fire-extinguisher:before{content:"\f134"}.fa-magnifying-glass-arrows-rotate:before{content:"\e65e"}.fa-garage-open:before{content:"\e00b"}.fa-shelves-empty:before{content:"\e246"}.fa-cruzeiro-sign:before{content:"\e152"}.fa-watch-apple:before{content:"\e2cb"}.fa-watch-calculator:before{content:"\f8f0"}.fa-list-dropdown:before{content:"\e1cf"}.fa-cabinet-filing:before{content:"\f64b"}.fa-burger-soda:before{content:"\f858"}.fa-arrow-square-up:before,.fa-square-arrow-up:before{content:"\f33c"}.fa-greater-than-equal:before{content:"\f532"}.fa-pallet-box:before{content:"\e208"}.fa-face-confounded:before{content:"\e36c"}.fa-shield-alt:before,.fa-shield-halved:before{content:"\f3ed"}.fa-truck-plow:before{content:"\f7de"}.fa-atlas:before,.fa-book-atlas:before{content:"\f558"}.fa-virus:before{content:"\e074"}.fa-grid-round-2:before{content:"\e5db"}.fa-comment-middle-top:before{content:"\e14a"}.fa-wave:before{content:"\e65b"}.fa-envelope-circle-check:before{content:"\e4e8"}.fa-layer-group:before{content:"\f5fd"}.fa-restroom-simple:before{content:"\e23a"}.fa-arrows-to-dot:before{content:"\e4be"}.fa-border-outer:before{content:"\f851"}.fa-hashtag-lock:before{content:"\e415"}.fa-clock-two-thirty:before{content:"\e35b"}.fa-archway:before{content:"\f557"}.fa-heart-circle-check:before{content:"\e4fd"}.fa-house-chimney-crack:before,.fa-house-damage:before{content:"\f6f1"}.fa-file-archive:before,.fa-file-zipper:before{content:"\f1c6"}.fa-ticket-perforated:before{content:"\e63e"}.fa-heart-half:before{content:"\e1ab"}.fa-comment-check:before{content:"\f4ac"}.fa-square:before{content:"\f0c8"}.fa-memo:before{content:"\e1d8"}.fa-glass-martini:before,.fa-martini-glass-empty:before{content:"\f000"}.fa-couch:before{content:"\f4b8"}.fa-cedi-sign:before{content:"\e0df"}.fa-italic:before{content:"\f033"}.fa-glass-citrus:before{content:"\f869"}.fa-calendar-lines-pen:before{content:"\e472"}.fa-table-cells-column-lock:before{content:"\e678"}.fa-church:before{content:"\f51d"}.fa-person-snowmobiling:before,.fa-snowmobile:before{content:"\f7d1"}.fa-face-hushed:before{content:"\e37b"}.fa-comments-dollar:before{content:"\f653"}.fa-tickets-simple:before{content:"\e659"}.fa-pickaxe:before{content:"\e5bf"}.fa-link-simple-slash:before{content:"\e1ce"}.fa-democrat:before{content:"\f747"}.fa-face-confused:before{content:"\e36d"}.fa-pinball:before{content:"\e229"}.fa-z:before{content:"\5a"}.fa-person-skiing:before,.fa-skiing:before{content:"\f7c9"}.fa-deer:before{content:"\f78e"}.fa-input-pipe:before{content:"\e1be"}.fa-road-lock:before{content:"\e567"}.fa-a:before{content:"\41"}.fa-bookmark-slash:before{content:"\e0c2"}.fa-temperature-arrow-down:before,.fa-temperature-down:before{content:"\e03f"}.fa-mace:before{content:"\f6f8"}.fa-feather-alt:before,.fa-feather-pointed:before{content:"\f56b"}.fa-sausage:before{content:"\f820"}.fa-trash-can-clock:before{content:"\e2aa"}.fa-p:before{content:"\50"}.fa-broom-wide:before{content:"\e5d1"}.fa-snowflake:before{content:"\f2dc"}.fa-stomach:before{content:"\f623"}.fa-newspaper:before{content:"\f1ea"}.fa-ad:before,.fa-rectangle-ad:before{content:"\f641"}.fa-guitar-electric:before{content:"\f8be"}.fa-arrow-turn-down-right:before{content:"\e3d6"}.fa-moon-cloud:before{content:"\f754"}.fa-bread-slice-butter:before{content:"\e3e1"}.fa-arrow-circle-right:before,.fa-circle-arrow-right:before{content:"\f0a9"}.fa-user-group-crown:before,.fa-users-crown:before{content:"\f6a5"}.fa-circle-i:before{content:"\e111"}.fa-toilet-paper-check:before{content:"\e5b2"}.fa-filter-circle-xmark:before{content:"\e17b"}.fa-locust:before{content:"\e520"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-list-1-2:before,.fa-list-numeric:before,.fa-list-ol:before{content:"\f0cb"}.fa-chart-waterfall:before{content:"\e0eb"}.fa-sparkle:before{content:"\e5d6"}.fa-face-party:before{content:"\e383"}.fa-kidneys:before{content:"\f5fb"}.fa-wifi-exclamation:before{content:"\e2cf"}.fa-chart-network:before{content:"\f78a"}.fa-person-dress-burst:before{content:"\e544"}.fa-dice-d4:before{content:"\f6d0"}.fa-money-check-alt:before,.fa-money-check-dollar:before{content:"\f53d"}.fa-vector-square:before{content:"\f5cb"}.fa-bread-slice:before{content:"\f7ec"}.fa-language:before{content:"\f1ab"}.fa-wheat-awn-slash:before{content:"\e338"}.fa-face-kiss-wink-heart:before,.fa-kiss-wink-heart:before{content:"\f598"}.fa-dagger:before{content:"\f6cb"}.fa-podium:before{content:"\f680"}.fa-memo-circle-check:before{content:"\e1d9"}.fa-route-highway:before{content:"\f61a"}.fa-arrow-alt-to-bottom:before,.fa-down-to-line:before{content:"\f34a"}.fa-filter:before{content:"\f0b0"}.fa-square-g:before{content:"\e271"}.fa-circle-phone:before,.fa-phone-circle:before{content:"\e11b"}.fa-clipboard-prescription:before{content:"\f5e8"}.fa-user-nurse-hair:before{content:"\e45d"}.fa-question:before{content:"\3f"}.fa-file-signature:before{content:"\f573"}.fa-toggle-large-on:before{content:"\e5b1"}.fa-arrows-alt:before,.fa-up-down-left-right:before{content:"\f0b2"}.fa-dryer-alt:before,.fa-dryer-heat:before{content:"\f862"}.fa-house-chimney-user:before{content:"\e065"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-arrow-up-small-big:before,.fa-sort-size-up-alt:before{content:"\f88f"}.fa-train-track:before{content:"\e453"}.fa-puzzle-piece:before{content:"\f12e"}.fa-money-check:before{content:"\f53c"}.fa-star-half-alt:before,.fa-star-half-stroke:before{content:"\f5c0"}.fa-file-exclamation:before{content:"\f31a"}.fa-code:before{content:"\f121"}.fa-glass-whiskey:before,.fa-whiskey-glass:before{content:"\f7a0"}.fa-moon-stars:before{content:"\f755"}.fa-building-circle-exclamation:before{content:"\e4d3"}.fa-clothes-hanger:before{content:"\e136"}.fa-mobile-iphone:before,.fa-mobile-notch:before{content:"\e1ee"}.fa-magnifying-glass-chart:before{content:"\e522"}.fa-arrow-up-right-from-square:before,.fa-external-link:before{content:"\f08e"}.fa-cubes-stacked:before{content:"\e4e6"}.fa-images-user:before{content:"\e1b9"}.fa-krw:before,.fa-won-sign:before,.fa-won:before{content:"\f159"}.fa-image-polaroid-user:before{content:"\e1b6"}.fa-virus-covid:before{content:"\e4a8"}.fa-square-ellipsis:before{content:"\e26e"}.fa-pie:before{content:"\f705"}.fa-chess-knight-alt:before,.fa-chess-knight-piece:before{content:"\f442"}.fa-austral-sign:before{content:"\e0a9"}.fa-cloud-plus:before{content:"\e35e"}.fa-f:before{content:"\46"}.fa-leaf:before{content:"\f06c"}.fa-bed-bunk:before{content:"\f8f8"}.fa-road:before{content:"\f018"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-person-circle-plus:before{content:"\e541"}.fa-chart-pie:before,.fa-pie-chart:before{content:"\f200"}.fa-bolt-lightning:before{content:"\e0b7"}.fa-clock-eight:before{content:"\e345"}.fa-sack-xmark:before{content:"\e56a"}.fa-file-xls:before{content:"\e64d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-contract:before{content:"\f56c"}.fa-fish-fins:before{content:"\e4f2"}.fa-circle-q:before{content:"\e11e"}.fa-building-flag:before{content:"\e4d5"}.fa-face-grin-beam:before,.fa-grin-beam:before{content:"\f582"}.fa-object-ungroup:before{content:"\f248"}.fa-face-disguise:before{content:"\e370"}.fa-circle-arrow-down-right:before{content:"\e0fa"}.fa-alien-8bit:before,.fa-alien-monster:before{content:"\f8f6"}.fa-hand-point-ribbon:before{content:"\e1a6"}.fa-poop:before{content:"\f619"}.fa-object-exclude:before{content:"\e49c"}.fa-telescope:before{content:"\e03e"}.fa-location-pin:before,.fa-map-marker:before{content:"\f041"}.fa-square-list:before{content:"\e489"}.fa-kaaba:before{content:"\f66b"}.fa-toilet-paper:before{content:"\f71e"}.fa-hard-hat:before,.fa-hat-hard:before,.fa-helmet-safety:before{content:"\f807"}.fa-comment-code:before{content:"\e147"}.fa-sim-cards:before{content:"\e251"}.fa-starship:before{content:"\e039"}.fa-eject:before{content:"\f052"}.fa-arrow-alt-circle-right:before,.fa-circle-right:before{content:"\f35a"}.fa-plane-circle-check:before{content:"\e555"}.fa-seal:before{content:"\e241"}.fa-user-cowboy:before{content:"\f8ea"}.fa-hexagon-vertical-nft:before{content:"\e505"}.fa-face-rolling-eyes:before,.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-bread-loaf:before{content:"\f7eb"}.fa-rings-wedding:before{content:"\f81b"}.fa-object-group:before{content:"\f247"}.fa-french-fries:before{content:"\f803"}.fa-chart-line:before,.fa-line-chart:before{content:"\f201"}.fa-calendar-arrow-down:before,.fa-calendar-download:before{content:"\e0d0"}.fa-send-back:before{content:"\f87e"}.fa-mask-ventilator:before{content:"\e524"}.fa-tickets:before{content:"\e658"}.fa-signature-lock:before{content:"\e3ca"}.fa-arrow-right:before{content:"\f061"}.fa-map-signs:before,.fa-signs-post:before{content:"\f277"}.fa-octagon-plus:before,.fa-plus-octagon:before{content:"\f301"}.fa-cash-register:before{content:"\f788"}.fa-person-circle-question:before{content:"\e542"}.fa-melon-slice:before{content:"\e311"}.fa-space-station-moon:before{content:"\e033"}.fa-comment-alt-smile:before,.fa-message-smile:before{content:"\f4aa"}.fa-cup-straw:before{content:"\e363"}.fa-arrow-alt-from-right:before,.fa-left-from-line:before{content:"\f348"}.fa-h:before{content:"\48"}.fa-basket-shopping-simple:before,.fa-shopping-basket-alt:before{content:"\e0af"}.fa-hands-heart:before,.fa-hands-holding-heart:before{content:"\f4c3"}.fa-clock-nine:before{content:"\e34c"}.fa-hammer-brush:before{content:"\e620"}.fa-tarp:before{content:"\e57b"}.fa-face-sleepy:before{content:"\e38e"}.fa-hand-horns:before{content:"\e1a9"}.fa-screwdriver-wrench:before,.fa-tools:before{content:"\f7d9"}.fa-arrows-to-eye:before{content:"\e4bf"}.fa-circle-three-quarters:before{content:"\e125"}.fa-trophy-alt:before,.fa-trophy-star:before{content:"\f2eb"}.fa-plug-circle-bolt:before{content:"\e55b"}.fa-face-thermometer:before{content:"\e39a"}.fa-grid-round-4:before{content:"\e5dd"}.fa-sign-posts-wrench:before{content:"\e626"}.fa-shirt-running:before{content:"\e3c8"}.fa-book-circle-arrow-up:before{content:"\e0bd"}.fa-face-nauseated:before{content:"\e381"}.fa-heart:before{content:"\f004"}.fa-file-chart-pie:before{content:"\f65a"}.fa-mars-and-venus:before{content:"\f224"}.fa-home-user:before,.fa-house-user:before{content:"\e1b0"}.fa-circle-arrow-down-left:before{content:"\e0f9"}.fa-dumpster-fire:before{content:"\f794"}.fa-hexagon-minus:before,.fa-minus-hexagon:before{content:"\f307"}.fa-arrow-alt-to-left:before,.fa-left-to-line:before{content:"\f34b"}.fa-house-crack:before{content:"\e3b1"}.fa-paw-alt:before,.fa-paw-simple:before{content:"\f701"}.fa-arrow-left-long-to-line:before{content:"\e3d4"}.fa-brackets-round:before,.fa-parentheses:before{content:"\e0c5"}.fa-cocktail:before,.fa-martini-glass-citrus:before{content:"\f561"}.fa-user-shakespeare:before{content:"\e2c2"}.fa-arrow-right-to-arc:before{content:"\e4b2"}.fa-face-surprise:before,.fa-surprise:before{content:"\f5c2"}.fa-bottle-water:before{content:"\e4c5"}.fa-circle-pause:before,.fa-pause-circle:before{content:"\f28b"}.fa-gauge-circle-plus:before{content:"\e498"}.fa-folders:before{content:"\f660"}.fa-angel:before{content:"\f779"}.fa-value-absolute:before{content:"\f6a6"}.fa-rabbit:before{content:"\f708"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-circle-euro:before{content:"\e5ce"}.fa-apple-alt:before,.fa-apple-whole:before{content:"\f5d1"}.fa-kitchen-set:before{content:"\e51a"}.fa-diamond-half:before{content:"\e5b7"}.fa-lock-alt:before,.fa-lock-keyhole:before{content:"\f30d"}.fa-r:before{content:"\52"}.fa-temperature-1:before,.fa-temperature-quarter:before,.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-info-square:before,.fa-square-info:before{content:"\f30f"}.fa-wifi-slash:before{content:"\f6ac"}.fa-toilet-paper-xmark:before{content:"\e5b3"}.fa-hands-holding-dollar:before,.fa-hands-usd:before{content:"\f4c5"}.fa-cube:before{content:"\f1b2"}.fa-arrow-down-triangle-square:before,.fa-sort-shapes-down:before{content:"\f888"}.fa-bitcoin-sign:before{content:"\e0b4"}.fa-shutters:before{content:"\e449"}.fa-shield-dog:before{content:"\e573"}.fa-solar-panel:before{content:"\f5ba"}.fa-lock-open:before{content:"\f3c1"}.fa-table-tree:before{content:"\e293"}.fa-house-chimney-heart:before{content:"\e1b2"}.fa-tally-3:before{content:"\e296"}.fa-elevator:before{content:"\e16d"}.fa-money-bill-transfer:before{content:"\e528"}.fa-money-bill-trend-up:before{content:"\e529"}.fa-house-flood-water-circle-arrow-right:before{content:"\e50f"}.fa-poll-h:before,.fa-square-poll-horizontal:before{content:"\f682"}.fa-circle:before{content:"\f111"}.fa-left-to-bracket:before{content:"\e66d"}.fa-cart-circle-exclamation:before{content:"\e3f2"}.fa-sword:before{content:"\f71c"}.fa-backward-fast:before,.fa-fast-backward:before{content:"\f049"}.fa-recycle:before{content:"\f1b8"}.fa-user-astronaut:before{content:"\f4fb"}.fa-interrobang:before{content:"\e5ba"}.fa-plane-slash:before{content:"\e069"}.fa-circle-dashed:before{content:"\e105"}.fa-trademark:before{content:"\f25c"}.fa-basketball-ball:before,.fa-basketball:before{content:"\f434"}.fa-fork-knife:before,.fa-utensils-alt:before{content:"\f2e6"}.fa-satellite-dish:before{content:"\f7c0"}.fa-badge-check:before{content:"\f336"}.fa-arrow-alt-circle-up:before,.fa-circle-up:before{content:"\f35b"}.fa-slider:before{content:"\e252"}.fa-mobile-alt:before,.fa-mobile-screen-button:before{content:"\f3cd"}.fa-clock-one-thirty:before{content:"\e34f"}.fa-inbox-arrow-up:before,.fa-inbox-out:before{content:"\f311"}.fa-cloud-slash:before{content:"\e137"}.fa-volume-high:before,.fa-volume-up:before{content:"\f028"}.fa-users-rays:before{content:"\e593"}.fa-wallet:before{content:"\f555"}.fa-octagon-check:before{content:"\e426"}.fa-flatbread-stuffed:before{content:"\e40c"}.fa-clipboard-check:before{content:"\f46c"}.fa-cart-circle-plus:before{content:"\e3f3"}.fa-shipping-timed:before,.fa-truck-clock:before{content:"\f48c"}.fa-pool-8-ball:before{content:"\e3c5"}.fa-file-audio:before{content:"\f1c7"}.fa-turn-down-left:before{content:"\e331"}.fa-lock-hashtag:before{content:"\e423"}.fa-chart-radar:before{content:"\e0e7"}.fa-staff:before{content:"\f71b"}.fa-burger:before,.fa-hamburger:before{content:"\f805"}.fa-utility-pole:before{content:"\e2c3"}.fa-transporter-6:before{content:"\e2a7"}.fa-arrow-turn-left:before{content:"\e632"}.fa-wrench:before{content:"\f0ad"}.fa-bugs:before{content:"\e4d0"}.fa-vector-polygon:before{content:"\e2c7"}.fa-diagram-nested:before{content:"\e157"}.fa-rupee-sign:before,.fa-rupee:before{content:"\f156"}.fa-file-image:before{content:"\f1c5"}.fa-circle-question:before,.fa-question-circle:before{content:"\f059"}.fa-tickets-perforated:before{content:"\e63f"}.fa-image-user:before{content:"\e1b8"}.fa-buoy:before{content:"\e5b5"}.fa-plane-departure:before{content:"\f5b0"}.fa-handshake-slash:before{content:"\e060"}.fa-book-bookmark:before{content:"\e0bb"}.fa-border-center-h:before{content:"\f89c"}.fa-can-food:before{content:"\e3e6"}.fa-typewriter:before{content:"\f8e7"}.fa-arrow-right-from-arc:before{content:"\e4b1"}.fa-circle-k:before{content:"\e113"}.fa-face-hand-over-mouth:before{content:"\e378"}.fa-popcorn:before{content:"\f819"}.fa-house-flood:before,.fa-house-water:before{content:"\f74f"}.fa-object-subtract:before{content:"\e49e"}.fa-code-branch:before{content:"\f126"}.fa-warehouse-alt:before,.fa-warehouse-full:before{content:"\f495"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-bridge:before{content:"\e4c8"}.fa-phone-alt:before,.fa-phone-flip:before{content:"\f879"}.fa-arrow-down-from-dotted-line:before{content:"\e090"}.fa-file-doc:before{content:"\e5ed"}.fa-square-quarters:before{content:"\e44e"}.fa-truck-front:before{content:"\e2b7"}.fa-cat:before{content:"\f6be"}.fa-trash-xmark:before{content:"\e2b4"}.fa-caret-circle-left:before,.fa-circle-caret-left:before{content:"\f32e"}.fa-files:before{content:"\e178"}.fa-anchor-circle-exclamation:before{content:"\e4ab"}.fa-face-clouds:before{content:"\e47d"}.fa-user-crown:before{content:"\f6a4"}.fa-basket-shopping-plus:before{content:"\e653"}.fa-truck-field:before{content:"\e58d"}.fa-route:before{content:"\f4d7"}.fa-cart-circle-check:before{content:"\e3f1"}.fa-clipboard-question:before{content:"\e4e3"}.fa-panorama:before{content:"\e209"}.fa-comment-medical:before{content:"\f7f5"}.fa-teeth-open:before{content:"\f62f"}.fa-user-tie-hair-long:before{content:"\e460"}.fa-file-circle-minus:before{content:"\e4ed"}.fa-head-side-medical:before{content:"\f809"}.fa-arrow-turn-right:before{content:"\e635"}.fa-tags:before{content:"\f02c"}.fa-wine-glass:before{content:"\f4e3"}.fa-fast-forward:before,.fa-forward-fast:before{content:"\f050"}.fa-face-meh-blank:before,.fa-meh-blank:before{content:"\f5a4"}.fa-user-robot:before{content:"\e04b"}.fa-parking:before,.fa-square-parking:before{content:"\f540"}.fa-card-diamond:before{content:"\e3ea"}.fa-face-zipper:before{content:"\e3a5"}.fa-face-raised-eyebrow:before{content:"\e388"}.fa-house-signal:before{content:"\e012"}.fa-chevron-square-up:before,.fa-square-chevron-up:before{content:"\f32c"}.fa-bars-progress:before,.fa-tasks-alt:before{content:"\f828"}.fa-faucet-drip:before{content:"\e006"}.fa-arrows-to-line:before{content:"\e0a7"}.fa-dolphin:before{content:"\e168"}.fa-arrow-up-right:before{content:"\e09f"}.fa-circle-r:before{content:"\e120"}.fa-cart-flatbed:before,.fa-dolly-flatbed:before{content:"\f474"}.fa-ban-smoking:before,.fa-smoking-ban:before{content:"\f54d"}.fa-circle-sort-up:before,.fa-sort-circle-up:before{content:"\e032"}.fa-terminal:before{content:"\f120"}.fa-mobile-button:before{content:"\f10b"}.fa-house-medical-flag:before{content:"\e514"}.fa-basket-shopping:before,.fa-shopping-basket:before{content:"\f291"}.fa-tape:before{content:"\f4db"}.fa-chestnut:before{content:"\e3f6"}.fa-bus-alt:before,.fa-bus-simple:before{content:"\f55e"}.fa-eye:before{content:"\f06e"}.fa-face-sad-cry:before,.fa-sad-cry:before{content:"\f5b3"}.fa-heat:before{content:"\e00c"}.fa-ticket-airline:before,.fa-ticket-perforated-plane:before,.fa-ticket-plane:before{content:"\e29a"}.fa-boot-heeled:before{content:"\e33f"}.fa-arrows-minimize:before,.fa-compress-arrows:before{content:"\e0a5"}.fa-audio-description:before{content:"\f29e"}.fa-person-military-to-person:before{content:"\e54c"}.fa-file-shield:before{content:"\e4f0"}.fa-hexagon:before{content:"\f312"}.fa-manhole:before{content:"\e1d6"}.fa-user-slash:before{content:"\f506"}.fa-pen:before{content:"\f304"}.fa-tower-observation:before{content:"\e586"}.fa-floppy-disks:before{content:"\e183"}.fa-toilet-paper-blank-under:before,.fa-toilet-paper-reverse-alt:before{content:"\e29f"}.fa-file-code:before{content:"\f1c9"}.fa-signal-5:before,.fa-signal-perfect:before,.fa-signal:before{content:"\f012"}.fa-pump:before{content:"\e442"}.fa-bus:before{content:"\f207"}.fa-heart-circle-xmark:before{content:"\e501"}.fa-arrow-up-left-from-circle:before{content:"\e09e"}.fa-home-lg:before,.fa-house-chimney:before{content:"\e3af"}.fa-window-maximize:before{content:"\f2d0"}.fa-dryer:before{content:"\f861"}.fa-face-frown:before,.fa-frown:before{content:"\f119"}.fa-chess-bishop-alt:before,.fa-chess-bishop-piece:before{content:"\f43b"}.fa-shirt-tank-top:before{content:"\e3c9"}.fa-diploma:before,.fa-scroll-ribbon:before{content:"\f5ea"}.fa-screencast:before{content:"\e23e"}.fa-walker:before{content:"\f831"}.fa-prescription:before{content:"\f5b1"}.fa-shop:before,.fa-store-alt:before{content:"\f54f"}.fa-floppy-disk:before,.fa-save:before{content:"\f0c7"}.fa-vihara:before{content:"\f6a7"}.fa-face-kiss-closed-eyes:before{content:"\e37d"}.fa-balance-scale-left:before,.fa-scale-unbalanced:before{content:"\f515"}.fa-file-user:before{content:"\f65c"}.fa-user-police-tie:before{content:"\e334"}.fa-face-tongue-money:before{content:"\e39d"}.fa-tennis-ball:before{content:"\f45e"}.fa-square-l:before{content:"\e275"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-calendar-arrow-up:before,.fa-calendar-upload:before{content:"\e0d1"}.fa-comment-dots:before,.fa-commenting:before{content:"\f4ad"}.fa-plant-wilt:before{content:"\e5aa"}.fa-scarf:before{content:"\f7c1"}.fa-album-circle-plus:before{content:"\e48c"}.fa-user-nurse-hair-long:before{content:"\e45e"}.fa-diamond:before{content:"\f219"}.fa-arrow-alt-square-left:before,.fa-square-left:before{content:"\f351"}.fa-face-grin-squint:before,.fa-grin-squint:before{content:"\f585"}.fa-circle-ellipsis-vertical:before{content:"\e10b"}.fa-hand-holding-dollar:before,.fa-hand-holding-usd:before{content:"\f4c0"}.fa-grid-dividers:before{content:"\e3ad"}.fa-bacterium:before{content:"\e05a"}.fa-hand-pointer:before{content:"\f25a"}.fa-drum-steelpan:before{content:"\f56a"}.fa-hand-scissors:before{content:"\f257"}.fa-hands-praying:before,.fa-praying-hands:before{content:"\f684"}.fa-face-pensive:before{content:"\e384"}.fa-user-music:before{content:"\f8eb"}.fa-arrow-right-rotate:before,.fa-arrow-rotate-forward:before,.fa-arrow-rotate-right:before,.fa-redo:before{content:"\f01e"}.fa-comments-alt-dollar:before,.fa-messages-dollar:before{content:"\f652"}.fa-sensor-on:before{content:"\e02b"}.fa-balloon:before{content:"\e2e3"}.fa-biohazard:before{content:"\f780"}.fa-chess-queen-alt:before,.fa-chess-queen-piece:before{content:"\f446"}.fa-location-crosshairs:before,.fa-location:before{content:"\f601"}.fa-mars-double:before{content:"\f227"}.fa-left-from-bracket:before{content:"\e66c"}.fa-house-leave:before,.fa-house-person-depart:before,.fa-house-person-leave:before{content:"\e00f"}.fa-ruler-triangle:before{content:"\f61c"}.fa-card-club:before{content:"\e3e9"}.fa-child-dress:before{content:"\e59c"}.fa-users-between-lines:before{content:"\e591"}.fa-lungs-virus:before{content:"\e067"}.fa-spinner-third:before{content:"\f3f4"}.fa-face-grin-tears:before,.fa-grin-tears:before{content:"\f588"}.fa-phone:before{content:"\f095"}.fa-computer-mouse-scrollwheel:before,.fa-mouse-alt:before{content:"\f8cd"}.fa-calendar-times:before,.fa-calendar-xmark:before{content:"\f273"}.fa-child-reaching:before{content:"\e59d"}.fa-table-layout:before{content:"\e290"}.fa-narwhal:before{content:"\f6fe"}.fa-ramp-loading:before{content:"\f4d4"}.fa-calendar-circle-plus:before{content:"\e470"}.fa-toothbrush:before{content:"\f635"}.fa-border-inner:before{content:"\f84e"}.fa-paw-claws:before{content:"\f702"}.fa-kiwi-fruit:before{content:"\e30c"}.fa-traffic-light-slow:before{content:"\f639"}.fa-rectangle-code:before{content:"\e322"}.fa-head-side-virus:before{content:"\e064"}.fa-keyboard-brightness:before{content:"\e1c0"}.fa-books-medical:before{content:"\f7e8"}.fa-lightbulb-slash:before{content:"\f673"}.fa-home-blank:before,.fa-house-blank:before{content:"\e487"}.fa-square-5:before{content:"\e25a"}.fa-heart-square:before,.fa-square-heart:before{content:"\f4c8"}.fa-puzzle:before{content:"\e443"}.fa-user-cog:before,.fa-user-gear:before{content:"\f4fe"}.fa-pipe-circle-check:before{content:"\e436"}.fa-arrow-up-1-9:before,.fa-sort-numeric-up:before{content:"\f163"}.fa-octagon-exclamation:before{content:"\e204"}.fa-dial-low:before{content:"\e15d"}.fa-door-closed:before{content:"\f52a"}.fa-laptop-mobile:before,.fa-phone-laptop:before{content:"\f87a"}.fa-conveyor-belt-alt:before,.fa-conveyor-belt-boxes:before{content:"\f46f"}.fa-shield-virus:before{content:"\e06c"}.fa-starfighter-alt-advanced:before,.fa-starfighter-twin-ion-engine-advanced:before{content:"\e28e"}.fa-dice-six:before{content:"\f526"}.fa-starfighter-alt:before,.fa-starfighter-twin-ion-engine:before{content:"\e038"}.fa-rocket-launch:before{content:"\e027"}.fa-mosquito-net:before{content:"\e52c"}.fa-vent-damper:before{content:"\e465"}.fa-bridge-water:before{content:"\e4ce"}.fa-ban-bug:before,.fa-debug:before{content:"\f7f9"}.fa-person-booth:before{content:"\f756"}.fa-text-width:before{content:"\f035"}.fa-garage-car:before{content:"\e00a"}.fa-square-kanban:before{content:"\e488"}.fa-hat-wizard:before{content:"\f6e8"}.fa-chart-kanban:before{content:"\e64f"}.fa-pen-fancy:before{content:"\f5ac"}.fa-coffee-pot:before{content:"\e002"}.fa-mouse-field:before{content:"\e5a8"}.fa-digging:before,.fa-person-digging:before{content:"\f85e"}.fa-shower-alt:before,.fa-shower-down:before{content:"\e24d"}.fa-box-circle-check:before{content:"\e0c4"}.fa-brightness:before{content:"\e0c9"}.fa-car-side-bolt:before{content:"\e344"}.fa-file-xml:before{content:"\e654"}.fa-ornament:before{content:"\f7b8"}.fa-phone-arrow-down-left:before,.fa-phone-arrow-down:before,.fa-phone-incoming:before{content:"\e223"}.fa-cloud-word:before{content:"\e138"}.fa-hand-fingers-crossed:before{content:"\e1a3"}.fa-trash:before{content:"\f1f8"}.fa-gauge-simple-med:before,.fa-gauge-simple:before,.fa-tachometer-average:before{content:"\f629"}.fa-arrow-down-small-big:before,.fa-sort-size-down-alt:before{content:"\f88d"}.fa-book-medical:before{content:"\f7e6"}.fa-face-melting:before{content:"\e483"}.fa-poo:before{content:"\f2fe"}.fa-pen-alt-slash:before,.fa-pen-clip-slash:before{content:"\e20f"}.fa-quote-right-alt:before,.fa-quote-right:before{content:"\f10e"}.fa-scroll-old:before{content:"\f70f"}.fa-guitars:before{content:"\f8bf"}.fa-phone-xmark:before{content:"\e227"}.fa-hose:before{content:"\e419"}.fa-clock-six:before{content:"\e352"}.fa-shirt:before,.fa-t-shirt:before,.fa-tshirt:before{content:"\f553"}.fa-billboard:before{content:"\e5cd"}.fa-square-r:before{content:"\e27c"}.fa-cubes:before{content:"\f1b3"}.fa-envelope-open-dollar:before{content:"\f657"}.fa-divide:before{content:"\f529"}.fa-sun-cloud:before{content:"\f763"}.fa-lamp-floor:before{content:"\e015"}.fa-square-7:before{content:"\e25c"}.fa-tenge-sign:before,.fa-tenge:before{content:"\f7d7"}.fa-headphones:before{content:"\f025"}.fa-hands-holding:before{content:"\f4c2"}.fa-campfire:before{content:"\f6ba"}.fa-circle-ampersand:before{content:"\e0f8"}.fa-snowflakes:before{content:"\f7cf"}.fa-hands-clapping:before{content:"\e1a8"}.fa-republican:before{content:"\f75e"}.fa-leaf-maple:before{content:"\f6f6"}.fa-arrow-left:before{content:"\f060"}.fa-person-circle-xmark:before{content:"\e543"}.fa-ruler:before{content:"\f545"}.fa-arrow-left-from-bracket:before{content:"\e668"}.fa-cup-straw-swoosh:before{content:"\e364"}.fa-temperature-hot:before,.fa-temperature-sun:before{content:"\f76a"}.fa-align-left:before{content:"\f036"}.fa-dice-d6:before{content:"\f6d1"}.fa-restroom:before{content:"\f7bd"}.fa-high-definition:before,.fa-rectangle-hd:before{content:"\e1ae"}.fa-j:before{content:"\4a"}.fa-galaxy:before{content:"\e008"}.fa-users-viewfinder:before{content:"\e595"}.fa-file-video:before{content:"\f1c8"}.fa-cherries:before{content:"\e0ec"}.fa-external-link-alt:before,.fa-up-right-from-square:before{content:"\f35d"}.fa-circle-sort:before,.fa-sort-circle:before{content:"\e030"}.fa-table-cells:before,.fa-th:before{content:"\f00a"}.fa-bag-shopping-minus:before{content:"\e650"}.fa-file-pdf:before{content:"\f1c1"}.fa-siren:before{content:"\e02d"}.fa-arrow-up-to-dotted-line:before{content:"\e0a1"}.fa-image-landscape:before,.fa-landscape:before{content:"\e1b5"}.fa-tank-water:before{content:"\e452"}.fa-curling-stone:before,.fa-curling:before{content:"\f44a"}.fa-gamepad-alt:before,.fa-gamepad-modern:before{content:"\e5a2"}.fa-messages-question:before{content:"\e1e7"}.fa-bible:before,.fa-book-bible:before{content:"\f647"}.fa-o:before{content:"\4f"}.fa-medkit:before,.fa-suitcase-medical:before{content:"\f0fa"}.fa-briefcase-arrow-right:before{content:"\e2f2"}.fa-expand-wide:before{content:"\f320"}.fa-clock-eleven-thirty:before{content:"\e348"}.fa-rv:before{content:"\f7be"}.fa-user-secret:before{content:"\f21b"}.fa-otter:before{content:"\f700"}.fa-dreidel:before{content:"\f792"}.fa-female:before,.fa-person-dress:before{content:"\f182"}.fa-comment-dollar:before{content:"\f651"}.fa-briefcase-clock:before,.fa-business-time:before{content:"\f64a"}.fa-flower-tulip:before{content:"\f801"}.fa-people-pants-simple:before{content:"\e21a"}.fa-cloud-drizzle:before{content:"\f738"}.fa-table-cells-large:before,.fa-th-large:before{content:"\f009"}.fa-book-tanakh:before,.fa-tanakh:before{content:"\f827"}.fa-solar-system:before{content:"\e02f"}.fa-seal-question:before{content:"\e243"}.fa-phone-volume:before,.fa-volume-control-phone:before{content:"\f2a0"}.fa-disc-drive:before{content:"\f8b5"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-rows:before,.fa-table-rows:before{content:"\e292"}.fa-location-exclamation:before,.fa-map-marker-exclamation:before{content:"\f608"}.fa-face-fearful:before{content:"\e375"}.fa-clipboard-user:before{content:"\f7f3"}.fa-bus-school:before{content:"\f5dd"}.fa-film-slash:before{content:"\e179"}.fa-square-arrow-down-right:before{content:"\e262"}.fa-book-sparkles:before,.fa-book-spells:before{content:"\f6b8"}.fa-washer:before,.fa-washing-machine:before{content:"\f898"}.fa-child:before{content:"\f1ae"}.fa-lira-sign:before{content:"\f195"}.fa-user-visor:before{content:"\e04c"}.fa-file-plus-minus:before{content:"\e177"}.fa-chess-clock-alt:before,.fa-chess-clock-flip:before{content:"\f43e"}.fa-satellite:before{content:"\f7bf"}.fa-truck-fire:before{content:"\e65a"}.fa-plane-lock:before{content:"\e558"}.fa-steering-wheel:before{content:"\f622"}.fa-tag:before{content:"\f02b"}.fa-stretcher:before{content:"\f825"}.fa-book-law:before,.fa-book-section:before{content:"\e0c1"}.fa-inboxes:before{content:"\e1bb"}.fa-coffee-bean:before{content:"\e13e"}.fa-circle-yen:before{content:"\e5d0"}.fa-brackets-curly:before{content:"\f7ea"}.fa-ellipsis-stroke-vertical:before,.fa-ellipsis-v-alt:before{content:"\f39c"}.fa-comment:before{content:"\f075"}.fa-square-1:before{content:"\e256"}.fa-birthday-cake:before,.fa-cake-candles:before,.fa-cake:before{content:"\f1fd"}.fa-head-side:before{content:"\f6e9"}.fa-truck-ladder:before{content:"\e657"}.fa-envelope:before{content:"\f0e0"}.fa-dolly-empty:before{content:"\f473"}.fa-face-tissue:before{content:"\e39c"}.fa-angle-double-up:before,.fa-angles-up:before{content:"\f102"}.fa-bin-recycle:before{content:"\e5f7"}.fa-paperclip:before{content:"\f0c6"}.fa-chart-line-down:before{content:"\f64d"}.fa-arrow-right-to-city:before{content:"\e4b3"}.fa-lock-a:before{content:"\e422"}.fa-ribbon:before{content:"\f4d6"}.fa-lungs:before{content:"\f604"}.fa-person-pinball:before{content:"\e21d"}.fa-arrow-up-9-1:before,.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-apple-core:before{content:"\e08f"}.fa-circle-y:before{content:"\e12f"}.fa-h6:before{content:"\e413"}.fa-litecoin-sign:before{content:"\e1d3"}.fa-bottle-baby:before{content:"\e673"}.fa-circle-small:before{content:"\e122"}.fa-border-none:before{content:"\f850"}.fa-arrow-turn-down-left:before{content:"\e2e1"}.fa-circle-wifi-circle-wifi:before,.fa-circle-wifi-group:before{content:"\e67e"}.fa-circle-nodes:before{content:"\e4e2"}.fa-parachute-box:before{content:"\f4cd"}.fa-reflect-horizontal:before{content:"\e664"}.fa-comment-alt-medical:before,.fa-message-medical:before{content:"\f7f4"}.fa-rugby-ball:before{content:"\e3c6"}.fa-comment-music:before{content:"\f8b0"}.fa-indent:before{content:"\f03c"}.fa-tree-alt:before,.fa-tree-deciduous:before{content:"\f400"}.fa-puzzle-piece-alt:before,.fa-puzzle-piece-simple:before{content:"\e231"}.fa-truck-field-un:before{content:"\e58e"}.fa-nfc-trash:before{content:"\e1fd"}.fa-hourglass-empty:before,.fa-hourglass:before{content:"\f254"}.fa-mountain:before{content:"\f6fc"}.fa-file-times:before,.fa-file-xmark:before{content:"\f317"}.fa-home-heart:before,.fa-house-heart:before{content:"\f4c9"}.fa-house-chimney-blank:before{content:"\e3b0"}.fa-meter-bolt:before{content:"\e1e9"}.fa-user-doctor:before,.fa-user-md:before{content:"\f0f0"}.fa-slash-back:before{content:"\5c"}.fa-circle-info:before,.fa-info-circle:before{content:"\f05a"}.fa-fishing-rod:before{content:"\e3a8"}.fa-hammer-crash:before{content:"\e414"}.fa-message-heart:before{content:"\e5c9"}.fa-cloud-meatball:before{content:"\f73b"}.fa-camera-polaroid:before{content:"\f8aa"}.fa-camera-alt:before,.fa-camera:before{content:"\f030"}.fa-square-virus:before{content:"\e578"}.fa-cart-arrow-up:before{content:"\e3ee"}.fa-meteor:before{content:"\f753"}.fa-car-on:before{content:"\e4dd"}.fa-sleigh:before{content:"\f7cc"}.fa-arrow-down-1-9:before,.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:"\f162"}.fa-buoy-mooring:before{content:"\e5b6"}.fa-square-4:before{content:"\e259"}.fa-hand-holding-droplet:before,.fa-hand-holding-water:before{content:"\f4c1"}.fa-file-eps:before{content:"\e644"}.fa-tricycle-adult:before{content:"\e5c4"}.fa-waveform:before{content:"\f8f1"}.fa-water:before{content:"\f773"}.fa-star-sharp-half-alt:before,.fa-star-sharp-half-stroke:before{content:"\e28d"}.fa-nfc-signal:before{content:"\e1fb"}.fa-plane-prop:before{content:"\e22b"}.fa-calendar-check:before{content:"\f274"}.fa-clock-desk:before{content:"\e134"}.fa-calendar-clock:before,.fa-calendar-time:before{content:"\e0d2"}.fa-braille:before{content:"\f2a1"}.fa-prescription-bottle-alt:before,.fa-prescription-bottle-medical:before{content:"\f486"}.fa-plate-utensils:before{content:"\e43b"}.fa-family-pants:before{content:"\e302"}.fa-hose-reel:before{content:"\e41a"}.fa-house-window:before{content:"\e3b3"}.fa-landmark:before{content:"\f66f"}.fa-truck:before{content:"\f0d1"}.fa-music-magnifying-glass:before{content:"\e662"}.fa-crosshairs:before{content:"\f05b"}.fa-cloud-rainbow:before{content:"\f73e"}.fa-person-cane:before{content:"\e53c"}.fa-alien:before{content:"\f8f5"}.fa-tent:before{content:"\e57d"}.fa-laptop-binary:before{content:"\e5e7"}.fa-vest-patches:before{content:"\e086"}.fa-people-dress-simple:before{content:"\e218"}.fa-check-double:before{content:"\f560"}.fa-arrow-down-a-z:before,.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:"\f15d"}.fa-bowling-ball-pin:before{content:"\e0c3"}.fa-bell-school-slash:before{content:"\f5d6"}.fa-plus-large:before{content:"\e59e"}.fa-money-bill-wheat:before{content:"\e52a"}.fa-camera-viewfinder:before,.fa-screenshot:before{content:"\e0da"}.fa-comment-alt-music:before,.fa-message-music:before{content:"\f8af"}.fa-car-building:before{content:"\f859"}.fa-border-bottom-right:before,.fa-border-style-alt:before{content:"\f854"}.fa-octagon:before{content:"\f306"}.fa-comment-arrow-up-right:before{content:"\e145"}.fa-octagon-divide:before{content:"\e203"}.fa-cookie:before{content:"\f563"}.fa-arrow-left-rotate:before,.fa-arrow-rotate-back:before,.fa-arrow-rotate-backward:before,.fa-arrow-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-tv-music:before{content:"\f8e6"}.fa-hard-drive:before,.fa-hdd:before{content:"\f0a0"}.fa-reel:before{content:"\e238"}.fa-face-grin-squint-tears:before,.fa-grin-squint-tears:before{content:"\f586"}.fa-dumbbell:before{content:"\f44b"}.fa-list-alt:before,.fa-rectangle-list:before{content:"\f022"}.fa-tarp-droplet:before{content:"\e57c"}.fa-alarm-exclamation:before{content:"\f843"}.fa-house-medical-circle-check:before{content:"\e511"}.fa-traffic-cone:before{content:"\f636"}.fa-grate:before{content:"\e193"}.fa-arrow-down-right:before{content:"\e093"}.fa-person-skiing-nordic:before,.fa-skiing-nordic:before{content:"\f7ca"}.fa-calendar-plus:before{content:"\f271"}.fa-person-from-portal:before,.fa-portal-exit:before{content:"\e023"}.fa-plane-arrival:before{content:"\f5af"}.fa-cowbell-circle-plus:before,.fa-cowbell-more:before{content:"\f8b4"}.fa-arrow-alt-circle-left:before,.fa-circle-left:before{content:"\f359"}.fa-distribute-spacing-vertical:before{content:"\e366"}.fa-signal-alt-2:before,.fa-signal-bars-fair:before{content:"\f692"}.fa-sportsball:before{content:"\e44b"}.fa-game-console-handheld-crank:before{content:"\e5b9"}.fa-subway:before,.fa-train-subway:before{content:"\f239"}.fa-chart-gantt:before{content:"\e0e4"}.fa-face-smile-upside-down:before{content:"\e395"}.fa-ball-pile:before{content:"\f77e"}.fa-badge-dollar:before{content:"\f645"}.fa-money-bills-alt:before,.fa-money-bills-simple:before{content:"\e1f4"}.fa-list-timeline:before{content:"\e1d1"}.fa-indian-rupee-sign:before,.fa-indian-rupee:before,.fa-inr:before{content:"\e1bc"}.fa-crop-alt:before,.fa-crop-simple:before{content:"\f565"}.fa-money-bill-1:before,.fa-money-bill-alt:before{content:"\f3d1"}.fa-left-long:before,.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-keyboard-down:before{content:"\e1c2"}.fa-circle-up-right:before{content:"\e129"}.fa-cloud-bolt-moon:before,.fa-thunderstorm-moon:before{content:"\f76d"}.fa-turn-left-up:before{content:"\e638"}.fa-dna:before{content:"\f471"}.fa-virus-slash:before{content:"\e075"}.fa-bracket-round-right:before{content:"\29"}.fa-circle-sterling:before{content:"\e5cf"}.fa-circle-5:before{content:"\e0f2"}.fa-minus:before,.fa-subtract:before{content:"\f068"}.fa-fire-flame:before,.fa-flame:before{content:"\f6df"}.fa-arrow-alt-to-right:before,.fa-right-to-line:before{content:"\f34c"}.fa-gif:before{content:"\e190"}.fa-chess:before{content:"\f439"}.fa-trash-slash:before{content:"\e2b3"}.fa-arrow-left-long:before,.fa-long-arrow-left:before{content:"\f177"}.fa-plug-circle-check:before{content:"\e55c"}.fa-font-case:before{content:"\f866"}.fa-street-view:before{content:"\f21d"}.fa-arrow-down-left:before{content:"\e091"}.fa-franc-sign:before{content:"\e18f"}.fa-flask-poison:before,.fa-flask-round-poison:before{content:"\f6e0"}.fa-volume-off:before{content:"\f026"}.fa-book-circle-arrow-right:before{content:"\e0bc"}.fa-chart-user:before,.fa-user-chart:before{content:"\f6a3"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before,.fa-hands-american-sign-language-interpreting:before,.fa-hands-asl-interpreting:before{content:"\f2a3"}.fa-presentation-screen:before,.fa-presentation:before{content:"\f685"}.fa-circle-bolt:before{content:"\e0fe"}.fa-face-smile-halo:before{content:"\e38f"}.fa-cart-circle-arrow-down:before{content:"\e3ef"}.fa-house-person-arrive:before,.fa-house-person-return:before,.fa-house-return:before{content:"\e011"}.fa-comment-alt-times:before,.fa-message-times:before,.fa-message-xmark:before{content:"\f4ab"}.fa-file-award:before,.fa-file-certificate:before{content:"\f5f3"}.fa-user-doctor-hair-long:before{content:"\e459"}.fa-camera-home:before,.fa-camera-security:before{content:"\f8fe"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-droplet-slash:before,.fa-tint-slash:before{content:"\f5c7"}.fa-book-heart:before{content:"\f499"}.fa-mosque:before{content:"\f678"}.fa-duck:before{content:"\f6d8"}.fa-mosquito:before{content:"\e52b"}.fa-star-of-david:before{content:"\f69a"}.fa-flag-alt:before,.fa-flag-swallowtail:before{content:"\f74c"}.fa-person-military-rifle:before{content:"\e54b"}.fa-car-garage:before{content:"\f5e2"}.fa-cart-shopping:before,.fa-shopping-cart:before{content:"\f07a"}.fa-book-font:before{content:"\e0bf"}.fa-shield-plus:before{content:"\e24a"}.fa-vials:before{content:"\f493"}.fa-eye-dropper-full:before{content:"\e172"}.fa-distribute-spacing-horizontal:before{content:"\e365"}.fa-tablet-rugged:before{content:"\f48f"}.fa-temperature-frigid:before,.fa-temperature-snow:before{content:"\f768"}.fa-moped:before{content:"\e3b9"}.fa-face-smile-plus:before,.fa-smile-plus:before{content:"\f5b9"}.fa-radio-alt:before,.fa-radio-tuner:before{content:"\f8d8"}.fa-face-swear:before{content:"\e399"}.fa-water-arrow-down:before,.fa-water-lower:before{content:"\f774"}.fa-scanner-touchscreen:before{content:"\f48a"}.fa-circle-7:before{content:"\e0f4"}.fa-plug-circle-plus:before{content:"\e55f"}.fa-person-ski-jumping:before,.fa-ski-jump:before{content:"\f7c7"}.fa-place-of-worship:before{content:"\f67f"}.fa-water-arrow-up:before,.fa-water-rise:before{content:"\f775"}.fa-waveform-lines:before,.fa-waveform-path:before{content:"\f8f2"}.fa-split:before{content:"\e254"}.fa-film-canister:before,.fa-film-cannister:before{content:"\f8b7"}.fa-folder-times:before,.fa-folder-xmark:before{content:"\f65f"}.fa-toilet-paper-alt:before,.fa-toilet-paper-blank:before{content:"\f71f"}.fa-tablet-android-alt:before,.fa-tablet-screen:before{content:"\f3fc"}.fa-hexagon-vertical-nft-slanted:before{content:"\e506"}.fa-folder-music:before{content:"\e18d"}.fa-desktop-medical:before,.fa-display-medical:before{content:"\e166"}.fa-share-all:before{content:"\f367"}.fa-peapod:before{content:"\e31c"}.fa-chess-clock:before{content:"\f43d"}.fa-axe:before{content:"\f6b2"}.fa-square-d:before{content:"\e268"}.fa-grip-vertical:before{content:"\f58e"}.fa-mobile-signal-out:before{content:"\e1f0"}.fa-arrow-turn-up:before,.fa-level-up:before{content:"\f148"}.fa-u:before{content:"\55"}.fa-arrow-up-from-dotted-line:before{content:"\e09b"}.fa-square-root-alt:before,.fa-square-root-variable:before{content:"\f698"}.fa-light-switch-on:before{content:"\e019"}.fa-arrow-down-arrow-up:before,.fa-sort-alt:before{content:"\f883"}.fa-raindrops:before{content:"\f75c"}.fa-dash:before,.fa-minus-large:before{content:"\e404"}.fa-clock-four:before,.fa-clock:before{content:"\f017"}.fa-input-numeric:before{content:"\e1bd"}.fa-truck-tow:before{content:"\e2b8"}.fa-backward-step:before,.fa-step-backward:before{content:"\f048"}.fa-pallet:before{content:"\f482"}.fa-car-bolt:before{content:"\e341"}.fa-arrows-maximize:before,.fa-expand-arrows:before{content:"\f31d"}.fa-faucet:before{content:"\e005"}.fa-cloud-sleet:before{content:"\f741"}.fa-lamp-street:before{content:"\e1c5"}.fa-list-radio:before{content:"\e1d0"}.fa-pen-nib-slash:before{content:"\e4a1"}.fa-baseball-bat-ball:before{content:"\f432"}.fa-square-up-left:before{content:"\e282"}.fa-overline:before{content:"\f876"}.fa-s:before{content:"\53"}.fa-timeline:before{content:"\e29c"}.fa-keyboard:before{content:"\f11c"}.fa-arrows-from-dotted-line:before{content:"\e0a3"}.fa-usb-drive:before{content:"\f8e9"}.fa-ballot:before{content:"\f732"}.fa-caret-down:before{content:"\f0d7"}.fa-location-dot-slash:before,.fa-map-marker-alt-slash:before{content:"\f605"}.fa-cards:before{content:"\e3ed"}.fa-clinic-medical:before,.fa-house-chimney-medical:before{content:"\f7f2"}.fa-boxing-glove:before,.fa-glove-boxing:before{content:"\f438"}.fa-temperature-3:before,.fa-temperature-three-quarters:before,.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-bell-school:before{content:"\f5d5"}.fa-mobile-android-alt:before,.fa-mobile-screen:before{content:"\f3cf"}.fa-plane-up:before{content:"\e22d"}.fa-folder-heart:before{content:"\e189"}.fa-circle-location-arrow:before,.fa-location-circle:before{content:"\f602"}.fa-face-head-bandage:before{content:"\e37a"}.fa-maki-roll:before,.fa-makizushi:before,.fa-sushi-roll:before{content:"\e48b"}.fa-car-bump:before{content:"\f5e0"}.fa-piggy-bank:before{content:"\f4d3"}.fa-racquet:before{content:"\f45a"}.fa-car-mirrors:before{content:"\e343"}.fa-industry-alt:before,.fa-industry-windows:before{content:"\f3b3"}.fa-bolt-auto:before{content:"\e0b6"}.fa-battery-3:before,.fa-battery-half:before{content:"\f242"}.fa-flux-capacitor:before{content:"\f8ba"}.fa-mountain-city:before{content:"\e52e"}.fa-coins:before{content:"\f51e"}.fa-honey-pot:before{content:"\e418"}.fa-olive:before{content:"\e316"}.fa-khanda:before{content:"\f66d"}.fa-filter-list:before{content:"\e17c"}.fa-outlet:before{content:"\e01c"}.fa-sliders-h:before,.fa-sliders:before{content:"\f1de"}.fa-cauldron:before{content:"\f6bf"}.fa-people:before{content:"\e216"}.fa-folder-tree:before{content:"\f802"}.fa-network-wired:before{content:"\f6ff"}.fa-croissant:before{content:"\f7f6"}.fa-map-pin:before{content:"\f276"}.fa-hamsa:before{content:"\f665"}.fa-cent-sign:before{content:"\e3f5"}.fa-swords-laser:before{content:"\e03d"}.fa-flask:before{content:"\f0c3"}.fa-person-pregnant:before{content:"\e31e"}.fa-square-u:before{content:"\e281"}.fa-wand-sparkles:before{content:"\f72b"}.fa-router:before{content:"\f8da"}.fa-ellipsis-v:before,.fa-ellipsis-vertical:before{content:"\f142"}.fa-sword-laser-alt:before{content:"\e03c"}.fa-ticket:before{content:"\f145"}.fa-power-off:before{content:"\f011"}.fa-coin:before{content:"\f85c"}.fa-laptop-slash:before{content:"\e1c7"}.fa-long-arrow-alt-right:before,.fa-right-long:before{content:"\f30b"}.fa-circle-b:before{content:"\e0fd"}.fa-person-dress-simple:before{content:"\e21c"}.fa-pipe-collar:before{content:"\e437"}.fa-lights-holiday:before{content:"\f7b2"}.fa-citrus:before{content:"\e2f4"}.fa-flag-usa:before{content:"\f74d"}.fa-laptop-file:before{content:"\e51d"}.fa-teletype:before,.fa-tty:before{content:"\f1e4"}.fa-chart-tree-map:before{content:"\e0ea"}.fa-diagram-next:before{content:"\e476"}.fa-person-rifle:before{content:"\e54e"}.fa-clock-five-thirty:before{content:"\e34a"}.fa-pipe-valve:before{content:"\e439"}.fa-arrow-up-from-arc:before{content:"\e4b4"}.fa-face-spiral-eyes:before{content:"\e485"}.fa-compress-wide:before{content:"\f326"}.fa-circle-phone-hangup:before,.fa-phone-circle-down:before{content:"\e11d"}.fa-gear-complex-code:before{content:"\e5eb"}.fa-house-medical-circle-exclamation:before{content:"\e512"}.fa-badminton:before{content:"\e33a"}.fa-closed-captioning:before{content:"\f20a"}.fa-hiking:before,.fa-person-hiking:before{content:"\f6ec"}.fa-arrow-alt-from-left:before,.fa-right-from-line:before{content:"\f347"}.fa-venus-double:before{content:"\f226"}.fa-images:before{content:"\f302"}.fa-calculator:before{content:"\f1ec"}.fa-shuttlecock:before{content:"\f45b"}.fa-user-hair:before{content:"\e45a"}.fa-eye-evil:before{content:"\f6db"}.fa-people-pulling:before{content:"\e535"}.fa-n:before{content:"\4e"}.fa-swap:before{content:"\e609"}.fa-garage:before{content:"\e009"}.fa-cable-car:before,.fa-tram:before{content:"\f7da"}.fa-shovel-snow:before{content:"\f7c3"}.fa-cloud-rain:before{content:"\f73d"}.fa-face-lying:before{content:"\e37e"}.fa-sprinkler:before{content:"\e035"}.fa-building-circle-xmark:before{content:"\e4d4"}.fa-person-sledding:before,.fa-sledding:before{content:"\f7cb"}.fa-game-console-handheld:before{content:"\f8bb"}.fa-ship:before{content:"\f21a"}.fa-clock-six-thirty:before{content:"\e353"}.fa-battery-slash:before{content:"\f377"}.fa-tugrik-sign:before{content:"\e2ba"}.fa-arrows-down-to-line:before{content:"\e4b8"}.fa-download:before{content:"\f019"}.fa-angles-up-down:before{content:"\e60d"}.fa-inventory:before,.fa-shelves:before{content:"\f480"}.fa-cloud-snow:before{content:"\f742"}.fa-face-grin:before,.fa-grin:before{content:"\f580"}.fa-backspace:before,.fa-delete-left:before{content:"\f55a"}.fa-oven:before{content:"\e01d"}.fa-cloud-binary:before{content:"\e601"}.fa-eye-dropper-empty:before,.fa-eye-dropper:before,.fa-eyedropper:before{content:"\f1fb"}.fa-comment-captions:before{content:"\e146"}.fa-comments-question:before{content:"\e14e"}.fa-scribble:before{content:"\e23f"}.fa-rotate-exclamation:before{content:"\e23c"}.fa-file-circle-check:before{content:"\e5a0"}.fa-glass:before{content:"\f804"}.fa-loader:before{content:"\e1d4"}.fa-forward:before{content:"\f04e"}.fa-user-pilot:before{content:"\e2c0"}.fa-mobile-android:before,.fa-mobile-phone:before,.fa-mobile:before{content:"\f3ce"}.fa-code-pull-request-closed:before{content:"\e3f9"}.fa-face-meh:before,.fa-meh:before{content:"\f11a"}.fa-align-center:before{content:"\f037"}.fa-book-dead:before,.fa-book-skull:before{content:"\f6b7"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-face-dotted:before{content:"\e47f"}.fa-face-worried:before{content:"\e3a3"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-court-sport:before{content:"\e643"}.fa-heart-circle-exclamation:before{content:"\e4fe"}.fa-home-alt:before,.fa-home-lg-alt:before,.fa-home:before,.fa-house:before{content:"\f015"}.fa-vector-circle:before{content:"\e2c6"}.fa-car-circle-bolt:before{content:"\e342"}.fa-calendar-week:before{content:"\f784"}.fa-flying-disc:before{content:"\e3a9"}.fa-laptop-medical:before{content:"\f812"}.fa-square-down-right:before{content:"\e26c"}.fa-b:before{content:"\42"}.fa-seat-airline:before{content:"\e244"}.fa-eclipse-alt:before,.fa-moon-over-sun:before{content:"\f74a"}.fa-pipe:before{content:"\7c"}.fa-file-medical:before{content:"\f477"}.fa-potato:before{content:"\e440"}.fa-dice-one:before{content:"\f525"}.fa-circle-a:before{content:"\e0f7"}.fa-helmet-battle:before{content:"\f6eb"}.fa-butter:before{content:"\e3e4"}.fa-blanket-fire:before{content:"\e3da"}.fa-kiwi-bird:before{content:"\f535"}.fa-castle:before{content:"\e0de"}.fa-golf-club:before{content:"\f451"}.fa-arrow-right-arrow-left:before,.fa-exchange:before{content:"\f0ec"}.fa-redo-alt:before,.fa-rotate-forward:before,.fa-rotate-right:before{content:"\f2f9"}.fa-cutlery:before,.fa-utensils:before{content:"\f2e7"}.fa-arrow-up-wide-short:before,.fa-sort-amount-up:before{content:"\f161"}.fa-chart-pie-simple-circle-dollar:before{content:"\e605"}.fa-balloons:before{content:"\e2e4"}.fa-mill-sign:before{content:"\e1ed"}.fa-bowl-rice:before{content:"\e2eb"}.fa-timeline-arrow:before{content:"\e29d"}.fa-skull:before{content:"\f54c"}.fa-game-board-alt:before,.fa-game-board-simple:before{content:"\f868"}.fa-circle-video:before,.fa-video-circle:before{content:"\e12b"}.fa-chart-scatter-bubble:before{content:"\e0e9"}.fa-house-turret:before{content:"\e1b4"}.fa-banana:before{content:"\e2e5"}.fa-hand-holding-skull:before{content:"\e1a4"}.fa-people-dress:before{content:"\e217"}.fa-couch-small:before,.fa-loveseat:before{content:"\f4cc"}.fa-broadcast-tower:before,.fa-tower-broadcast:before{content:"\f519"}.fa-truck-pickup:before{content:"\f63c"}.fa-block-quote:before{content:"\e0b5"}.fa-long-arrow-alt-up:before,.fa-up-long:before{content:"\f30c"}.fa-stop:before{content:"\f04d"}.fa-code-merge:before{content:"\f387"}.fa-money-check-dollar-pen:before,.fa-money-check-edit-alt:before{content:"\f873"}.fa-arrow-alt-from-bottom:before,.fa-up-from-line:before{content:"\f346"}.fa-upload:before{content:"\f093"}.fa-hurricane:before{content:"\f751"}.fa-grid-round-2-plus:before{content:"\e5dc"}.fa-people-pants:before{content:"\e219"}.fa-mound:before{content:"\e52d"}.fa-windsock:before{content:"\f777"}.fa-circle-half:before{content:"\e110"}.fa-brake-warning:before{content:"\e0c7"}.fa-toilet-portable:before{content:"\e583"}.fa-compact-disc:before{content:"\f51f"}.fa-file-arrow-down:before,.fa-file-download:before{content:"\f56d"}.fa-sax-hot:before,.fa-saxophone-fire:before{content:"\f8db"}.fa-camera-web-slash:before,.fa-webcam-slash:before{content:"\f833"}.fa-folder-medical:before{content:"\e18c"}.fa-folder-cog:before,.fa-folder-gear:before{content:"\e187"}.fa-hand-wave:before{content:"\e1a7"}.fa-arrow-up-arrow-down:before,.fa-sort-up-down:before{content:"\e099"}.fa-caravan:before{content:"\f8ff"}.fa-shield-cat:before{content:"\e572"}.fa-comment-alt-slash:before,.fa-message-slash:before{content:"\f4a9"}.fa-bolt:before,.fa-zap:before{content:"\f0e7"}.fa-trash-can-check:before{content:"\e2a9"}.fa-glass-water:before{content:"\e4f4"}.fa-oil-well:before{content:"\e532"}.fa-person-simple:before{content:"\e220"}.fa-arrow-turn-left-up:before{content:"\e634"}.fa-vault:before{content:"\e2c5"}.fa-mars:before{content:"\f222"}.fa-toilet:before{content:"\f7d8"}.fa-plane-circle-xmark:before{content:"\e557"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen-sign:before,.fa-yen:before{content:"\f157"}.fa-gear-code:before{content:"\e5e8"}.fa-notes:before{content:"\e202"}.fa-rouble:before,.fa-rub:before,.fa-ruble-sign:before,.fa-ruble:before{content:"\f158"}.fa-trash-arrow-turn-left:before,.fa-trash-undo:before{content:"\f895"}.fa-champagne-glass:before,.fa-glass-champagne:before{content:"\f79e"}.fa-objects-align-center-horizontal:before{content:"\e3bc"}.fa-sun:before{content:"\f185"}.fa-trash-alt-slash:before,.fa-trash-can-slash:before{content:"\e2ad"}.fa-screen-users:before,.fa-users-class:before{content:"\f63d"}.fa-guitar:before{content:"\f7a6"}.fa-arrow-square-left:before,.fa-square-arrow-left:before{content:"\f33a"}.fa-square-8:before{content:"\e25d"}.fa-face-smile-hearts:before{content:"\e390"}.fa-brackets-square:before,.fa-brackets:before{content:"\f7e9"}.fa-laptop-arrow-down:before{content:"\e1c6"}.fa-hockey-stick-puck:before{content:"\e3ae"}.fa-house-tree:before{content:"\e1b3"}.fa-signal-2:before,.fa-signal-fair:before{content:"\f68d"}.fa-face-laugh-wink:before,.fa-laugh-wink:before{content:"\f59c"}.fa-circle-dollar:before,.fa-dollar-circle:before,.fa-usd-circle:before{content:"\f2e8"}.fa-horse-head:before{content:"\f7ab"}.fa-arrows-repeat:before,.fa-repeat-alt:before{content:"\f364"}.fa-bore-hole:before{content:"\e4c3"}.fa-industry:before{content:"\f275"}.fa-image-polaroid:before{content:"\f8c4"}.fa-wave-triangle:before{content:"\f89a"}.fa-turn-left-down:before{content:"\e637"}.fa-person-running-fast:before{content:"\e5ff"}.fa-arrow-alt-circle-down:before,.fa-circle-down:before{content:"\f358"}.fa-grill:before{content:"\e5a3"}.fa-arrows-turn-to-dots:before{content:"\e4c1"}.fa-analytics:before,.fa-chart-mixed:before{content:"\f643"}.fa-florin-sign:before{content:"\e184"}.fa-arrow-down-short-wide:before,.fa-sort-amount-desc:before,.fa-sort-amount-down-alt:before{content:"\f884"}.fa-less-than:before{content:"\3c"}.fa-desktop-code:before,.fa-display-code:before{content:"\e165"}.fa-face-drooling:before{content:"\e372"}.fa-oil-temp:before,.fa-oil-temperature:before{content:"\f614"}.fa-question-square:before,.fa-square-question:before{content:"\f2fd"}.fa-air-conditioner:before{content:"\f8f4"}.fa-angle-down:before{content:"\f107"}.fa-mountains:before{content:"\f6fd"}.fa-omega:before{content:"\f67a"}.fa-car-tunnel:before{content:"\e4de"}.fa-person-dolly-empty:before{content:"\f4d1"}.fa-pan-food:before{content:"\e42b"}.fa-head-side-cough:before{content:"\e061"}.fa-grip-lines:before{content:"\f7a4"}.fa-thumbs-down:before{content:"\f165"}.fa-user-lock:before{content:"\f502"}.fa-arrow-right-long:before,.fa-long-arrow-right:before{content:"\f178"}.fa-tickets-airline:before,.fa-tickets-perforated-plane:before,.fa-tickets-plane:before{content:"\e29b"}.fa-tent-double-peak:before{content:"\e627"}.fa-anchor-circle-xmark:before{content:"\e4ac"}.fa-ellipsis-h:before,.fa-ellipsis:before{content:"\f141"}.fa-nfc-slash:before{content:"\e1fc"}.fa-chess-pawn:before{content:"\f443"}.fa-first-aid:before,.fa-kit-medical:before{content:"\f479"}.fa-grid-2-plus:before{content:"\e197"}.fa-bells:before{content:"\f77f"}.fa-person-through-window:before{content:"\e5a9"}.fa-toolbox:before{content:"\f552"}.fa-envelope-badge:before,.fa-envelope-dot:before{content:"\e16f"}.fa-magnifying-glass-waveform:before{content:"\e661"}.fa-hands-holding-circle:before{content:"\e4fb"}.fa-bug:before{content:"\f188"}.fa-bowl-chopsticks:before{content:"\e2e9"}.fa-credit-card-alt:before,.fa-credit-card:before{content:"\f09d"}.fa-circle-s:before{content:"\e121"}.fa-box-ballot:before{content:"\f735"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-hand-holding-hand:before{content:"\e4f7"}.fa-user-tie-hair:before{content:"\e45f"}.fa-podium-star:before{content:"\f758"}.fa-business-front:before,.fa-party-back:before,.fa-trian-balbot:before,.fa-user-hair-mullet:before{content:"\e45c"}.fa-microphone-stand:before{content:"\f8cb"}.fa-book-open-reader:before,.fa-book-reader:before{content:"\f5da"}.fa-family-dress:before{content:"\e301"}.fa-circle-x:before{content:"\e12e"}.fa-cabin:before{content:"\e46d"}.fa-mountain-sun:before{content:"\e52f"}.fa-chart-simple-horizontal:before{content:"\e474"}.fa-arrows-left-right-to-line:before{content:"\e4ba"}.fa-hand-back-point-left:before{content:"\e19f"}.fa-comment-alt-dots:before,.fa-message-dots:before,.fa-messaging:before{content:"\f4a3"}.fa-file-heart:before{content:"\e176"}.fa-beer-foam:before,.fa-beer-mug:before{content:"\e0b3"}.fa-dice-d20:before{content:"\f6cf"}.fa-drone:before{content:"\f85f"}.fa-truck-droplet:before{content:"\e58c"}.fa-file-circle-xmark:before{content:"\e5a1"}.fa-temperature-arrow-up:before,.fa-temperature-up:before{content:"\e040"}.fa-medal:before{content:"\f5a2"}.fa-person-fairy:before{content:"\e608"}.fa-bed:before{content:"\f236"}.fa-book-copy:before{content:"\e0be"}.fa-h-square:before,.fa-square-h:before{content:"\f0fd"}.fa-square-c:before{content:"\e266"}.fa-clock-two:before{content:"\e35a"}.fa-square-ellipsis-vertical:before{content:"\e26f"}.fa-calendar-users:before{content:"\e5e2"}.fa-podcast:before{content:"\f2ce"}.fa-bee:before{content:"\e0b2"}.fa-temperature-4:before,.fa-temperature-full:before,.fa-thermometer-4:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-bell:before{content:"\f0f3"}.fa-candy-bar:before,.fa-chocolate-bar:before{content:"\e3e8"}.fa-xmark-large:before{content:"\e59b"}.fa-pinata:before{content:"\e3c3"}.fa-file-ppt:before{content:"\e64a"}.fa-arrows-from-line:before{content:"\e0a4"}.fa-superscript:before{content:"\f12b"}.fa-bowl-spoon:before{content:"\e3e0"}.fa-hexagon-check:before{content:"\e416"}.fa-plug-circle-xmark:before{content:"\e560"}.fa-star-of-life:before{content:"\f621"}.fa-phone-slash:before{content:"\f3dd"}.fa-traffic-light-stop:before{content:"\f63a"}.fa-paint-roller:before{content:"\f5aa"}.fa-accent-grave:before{content:"\60"}.fa-hands-helping:before,.fa-handshake-angle:before{content:"\f4c4"}.fa-circle-0:before{content:"\e0ed"}.fa-dial-med-low:before{content:"\e160"}.fa-location-dot:before,.fa-map-marker-alt:before{content:"\f3c5"}.fa-crab:before{content:"\e3ff"}.fa-box-full:before,.fa-box-open-full:before{content:"\f49c"}.fa-file:before{content:"\f15b"}.fa-greater-than:before{content:"\3e"}.fa-quotes:before{content:"\e234"}.fa-pretzel:before{content:"\e441"}.fa-t-rex:before{content:"\e629"}.fa-person-swimming:before,.fa-swimmer:before{content:"\f5c4"}.fa-arrow-down:before{content:"\f063"}.fa-user-robot-xmarks:before{content:"\e4a7"}.fa-comment-alt-quote:before,.fa-message-quote:before{content:"\e1e4"}.fa-candy-corn:before{content:"\f6bd"}.fa-folder-magnifying-glass:before,.fa-folder-search:before{content:"\e18b"}.fa-notebook:before{content:"\e201"}.fa-circle-wifi:before{content:"\e67d"}.fa-droplet:before,.fa-tint:before{content:"\f043"}.fa-bullseye-pointer:before{content:"\f649"}.fa-eraser:before{content:"\f12d"}.fa-hexagon-image:before{content:"\e504"}.fa-earth-america:before,.fa-earth-americas:before,.fa-earth:before,.fa-globe-americas:before{content:"\f57d"}.fa-file-svg:before{content:"\e64b"}.fa-crate-apple:before{content:"\f6b1"}.fa-apple-crate:before{content:"\f6b1"}.fa-person-burst:before{content:"\e53b"}.fa-game-board:before{content:"\f867"}.fa-hat-chef:before{content:"\f86b"}.fa-hand-back-point-right:before{content:"\e1a1"}.fa-dove:before{content:"\f4ba"}.fa-snowflake-droplets:before{content:"\e5c1"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-grid-4:before{content:"\e198"}.fa-socks:before{content:"\f696"}.fa-face-sunglasses:before{content:"\e398"}.fa-inbox:before{content:"\f01c"}.fa-square-0:before{content:"\e255"}.fa-section:before{content:"\e447"}.fa-box-up:before,.fa-square-this-way-up:before{content:"\f49f"}.fa-gauge-high:before,.fa-tachometer-alt-fast:before,.fa-tachometer-alt:before{content:"\f625"}.fa-square-ampersand:before{content:"\e260"}.fa-envelope-open-text:before{content:"\f658"}.fa-lamp-desk:before{content:"\e014"}.fa-hospital-alt:before,.fa-hospital-wide:before,.fa-hospital:before{content:"\f0f8"}.fa-poll-people:before{content:"\f759"}.fa-glass-whiskey-rocks:before,.fa-whiskey-glass-ice:before{content:"\f7a1"}.fa-wine-bottle:before{content:"\f72f"}.fa-chess-rook:before{content:"\f447"}.fa-user-bounty-hunter:before{content:"\e2bf"}.fa-bars-staggered:before,.fa-reorder:before,.fa-stream:before{content:"\f550"}.fa-diagram-sankey:before{content:"\e158"}.fa-cloud-hail-mixed:before{content:"\f73a"}.fa-circle-up-left:before{content:"\e128"}.fa-dharmachakra:before{content:"\f655"}.fa-objects-align-left:before{content:"\e3be"}.fa-oil-can-drip:before{content:"\e205"}.fa-face-smiling-hands:before{content:"\e396"}.fa-broccoli:before{content:"\e3e2"}.fa-route-interstate:before{content:"\f61b"}.fa-ear-muffs:before{content:"\f795"}.fa-hotdog:before{content:"\f80f"}.fa-transporter-empty:before{content:"\e046"}.fa-blind:before,.fa-person-walking-with-cane:before{content:"\f29d"}.fa-angle-90:before{content:"\e08d"}.fa-rectangle-terminal:before{content:"\e236"}.fa-kite:before{content:"\f6f4"}.fa-drum:before{content:"\f569"}.fa-scrubber:before{content:"\f2f8"}.fa-ice-cream:before{content:"\f810"}.fa-heart-circle-bolt:before{content:"\e4fc"}.fa-fish-bones:before{content:"\e304"}.fa-deer-rudolph:before{content:"\f78f"}.fa-fax:before{content:"\f1ac"}.fa-paragraph:before{content:"\f1dd"}.fa-head-side-heart:before{content:"\e1aa"}.fa-square-e:before{content:"\e26d"}.fa-meter-fire:before{content:"\e1eb"}.fa-cloud-hail:before{content:"\f739"}.fa-check-to-slot:before,.fa-vote-yea:before{content:"\f772"}.fa-money-from-bracket:before{content:"\e312"}.fa-star-half:before{content:"\f089"}.fa-car-bus:before{content:"\f85a"}.fa-speaker:before{content:"\f8df"}.fa-timer:before{content:"\e29e"}.fa-boxes-alt:before,.fa-boxes-stacked:before,.fa-boxes:before{content:"\f468"}.fa-landmark-magnifying-glass:before{content:"\e622"}.fa-grill-hot:before{content:"\e5a5"}.fa-ballot-check:before{content:"\f733"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-assistive-listening-systems:before,.fa-ear-listen:before{content:"\f2a2"}.fa-file-minus:before{content:"\f318"}.fa-tree-city:before{content:"\e587"}.fa-play:before{content:"\f04b"}.fa-font:before{content:"\f031"}.fa-coffee-togo:before,.fa-cup-togo:before{content:"\f6c5"}.fa-square-down-left:before{content:"\e26b"}.fa-burger-lettuce:before{content:"\e3e3"}.fa-table-cells-row-lock:before{content:"\e67a"}.fa-rupiah-sign:before{content:"\e23d"}.fa-magnifying-glass:before,.fa-search:before{content:"\f002"}.fa-ping-pong-paddle-ball:before,.fa-table-tennis-paddle-ball:before,.fa-table-tennis:before{content:"\f45d"}.fa-diagnoses:before,.fa-person-dots-from-line:before{content:"\f470"}.fa-chevron-double-down:before,.fa-chevrons-down:before{content:"\f322"}.fa-trash-can-arrow-up:before,.fa-trash-restore-alt:before{content:"\f82a"}.fa-signal-3:before,.fa-signal-good:before{content:"\f68e"}.fa-location-question:before,.fa-map-marker-question:before{content:"\f60b"}.fa-floppy-disk-circle-xmark:before,.fa-floppy-disk-times:before,.fa-save-circle-xmark:before,.fa-save-times:before{content:"\e181"}.fa-naira-sign:before{content:"\e1f6"}.fa-peach:before{content:"\e20b"}.fa-taxi-bus:before{content:"\e298"}.fa-bracket-curly-left:before,.fa-bracket-curly:before{content:"\7b"}.fa-lobster:before{content:"\e421"}.fa-cart-flatbed-empty:before,.fa-dolly-flatbed-empty:before{content:"\f476"}.fa-colon:before{content:"\3a"}.fa-cart-arrow-down:before{content:"\f218"}.fa-wand:before{content:"\f72a"}.fa-walkie-talkie:before{content:"\f8ef"}.fa-file-edit:before,.fa-file-pen:before{content:"\f31c"}.fa-receipt:before{content:"\f543"}.fa-table-picnic:before{content:"\e32d"}.fa-pen-square:before,.fa-pencil-square:before,.fa-square-pen:before{content:"\f14b"}.fa-circle-microphone-lines:before,.fa-microphone-circle-alt:before{content:"\e117"}.fa-desktop-slash:before,.fa-display-slash:before{content:"\e2fa"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-person-circle-exclamation:before{content:"\e53f"}.fa-transporter-2:before{content:"\e044"}.fa-hand-receiving:before,.fa-hands-holding-diamond:before{content:"\f47c"}.fa-money-bill-simple-wave:before{content:"\e1f2"}.fa-chevron-down:before{content:"\f078"}.fa-battery-5:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-bell-plus:before{content:"\f849"}.fa-book-arrow-right:before{content:"\e0b9"}.fa-hospitals:before{content:"\f80e"}.fa-club:before{content:"\f327"}.fa-skull-crossbones:before{content:"\f714"}.fa-dewpoint:before,.fa-droplet-degree:before{content:"\f748"}.fa-code-compare:before{content:"\e13a"}.fa-list-dots:before,.fa-list-ul:before{content:"\f0ca"}.fa-hand-holding-magic:before{content:"\f6e5"}.fa-watermelon-slice:before{content:"\e337"}.fa-circle-ellipsis:before{content:"\e10a"}.fa-school-lock:before{content:"\e56f"}.fa-tower-cell:before{content:"\e585"}.fa-sd-cards:before{content:"\e240"}.fa-jug-bottle:before{content:"\e5fb"}.fa-down-long:before,.fa-long-arrow-alt-down:before{content:"\f309"}.fa-envelopes:before{content:"\e170"}.fa-phone-office:before{content:"\f67d"}.fa-ranking-star:before{content:"\e561"}.fa-chess-king:before{content:"\f43f"}.fa-nfc-pen:before{content:"\e1fa"}.fa-person-harassing:before{content:"\e549"}.fa-magnifying-glass-play:before{content:"\e660"}.fa-hat-winter:before{content:"\f7a8"}.fa-brazilian-real-sign:before{content:"\e46c"}.fa-landmark-alt:before,.fa-landmark-dome:before{content:"\f752"}.fa-bone-break:before{content:"\f5d8"}.fa-arrow-up:before{content:"\f062"}.fa-down-from-dotted-line:before{content:"\e407"}.fa-television:before,.fa-tv-alt:before,.fa-tv:before{content:"\f26c"}.fa-border-left:before{content:"\f84f"}.fa-circle-divide:before{content:"\e106"}.fa-shrimp:before{content:"\e448"}.fa-list-check:before,.fa-tasks:before{content:"\f0ae"}.fa-diagram-subtask:before{content:"\e479"}.fa-jug-detergent:before{content:"\e519"}.fa-circle-user:before,.fa-user-circle:before{content:"\f2bd"}.fa-square-y:before{content:"\e287"}.fa-user-doctor-hair:before{content:"\e458"}.fa-planet-ringed:before{content:"\e020"}.fa-mushroom:before{content:"\e425"}.fa-user-shield:before{content:"\f505"}.fa-megaphone:before{content:"\f675"}.fa-wreath-laurel:before{content:"\e5d2"}.fa-circle-exclamation-check:before{content:"\e10d"}.fa-wind:before{content:"\f72e"}.fa-box-dollar:before,.fa-box-usd:before{content:"\f4a0"}.fa-car-burst:before,.fa-car-crash:before{content:"\f5e1"}.fa-y:before{content:"\59"}.fa-user-headset:before{content:"\f82d"}.fa-arrows-retweet:before,.fa-retweet-alt:before{content:"\f361"}.fa-person-snowboarding:before,.fa-snowboarding:before{content:"\f7ce"}.fa-chevron-square-right:before,.fa-square-chevron-right:before{content:"\f32b"}.fa-lacrosse-stick-ball:before{content:"\e3b6"}.fa-shipping-fast:before,.fa-truck-fast:before{content:"\f48b"}.fa-user-magnifying-glass:before{content:"\e5c5"}.fa-star-sharp:before{content:"\e28b"}.fa-comment-heart:before{content:"\e5c8"}.fa-circle-1:before{content:"\e0ee"}.fa-circle-star:before,.fa-star-circle:before{content:"\e123"}.fa-fish:before{content:"\f578"}.fa-cloud-fog:before,.fa-fog:before{content:"\f74e"}.fa-waffle:before{content:"\e466"}.fa-music-alt:before,.fa-music-note:before{content:"\f8cf"}.fa-hexagon-exclamation:before{content:"\e417"}.fa-cart-shopping-fast:before{content:"\e0dc"}.fa-object-union:before{content:"\e49f"}.fa-user-graduate:before{content:"\f501"}.fa-starfighter:before{content:"\e037"}.fa-adjust:before,.fa-circle-half-stroke:before{content:"\f042"}.fa-arrow-right-long-to-line:before{content:"\e3d5"}.fa-arrow-square-down:before,.fa-square-arrow-down:before{content:"\f339"}.fa-diamond-half-stroke:before{content:"\e5b8"}.fa-clapperboard:before{content:"\e131"}.fa-chevron-square-left:before,.fa-square-chevron-left:before{content:"\f32a"}.fa-phone-intercom:before{content:"\e434"}.fa-chain-horizontal:before,.fa-link-horizontal:before{content:"\e1cb"}.fa-mango:before{content:"\e30f"}.fa-music-alt-slash:before,.fa-music-note-slash:before{content:"\f8d0"}.fa-circle-radiation:before,.fa-radiation-alt:before{content:"\f7ba"}.fa-face-tongue-sweat:before{content:"\e39e"}.fa-globe-stand:before{content:"\f5f6"}.fa-baseball-ball:before,.fa-baseball:before{content:"\f433"}.fa-circle-p:before{content:"\e11a"}.fa-award-simple:before{content:"\e0ab"}.fa-jet-fighter-up:before{content:"\e518"}.fa-diagram-project:before,.fa-project-diagram:before{content:"\f542"}.fa-pedestal:before{content:"\e20d"}.fa-chart-pyramid:before{content:"\e0e6"}.fa-sidebar:before{content:"\e24e"}.fa-frosty-head:before,.fa-snowman-head:before{content:"\f79b"}.fa-copy:before{content:"\f0c5"}.fa-burger-glass:before{content:"\e0ce"}.fa-volume-mute:before,.fa-volume-times:before,.fa-volume-xmark:before{content:"\f6a9"}.fa-hand-sparkles:before{content:"\e05d"}.fa-bars-filter:before{content:"\e0ad"}.fa-paintbrush-pencil:before{content:"\e206"}.fa-party-bell:before{content:"\e31a"}.fa-user-vneck-hair:before{content:"\e462"}.fa-jack-o-lantern:before{content:"\f30e"}.fa-grip-horizontal:before,.fa-grip:before{content:"\f58d"}.fa-share-from-square:before,.fa-share-square:before{content:"\f14d"}.fa-keynote:before{content:"\f66c"}.fa-child-combatant:before,.fa-child-rifle:before{content:"\e4e0"}.fa-gun:before{content:"\e19b"}.fa-phone-square:before,.fa-square-phone:before{content:"\f098"}.fa-hat-beach:before{content:"\e606"}.fa-add:before,.fa-plus:before{content:"\2b"}.fa-expand:before{content:"\f065"}.fa-computer:before{content:"\e4e5"}.fa-fort:before{content:"\e486"}.fa-cloud-check:before{content:"\e35c"}.fa-close:before,.fa-multiply:before,.fa-remove:before,.fa-times:before,.fa-xmark:before{content:"\f00d"}.fa-face-smirking:before{content:"\e397"}.fa-arrows-up-down-left-right:before,.fa-arrows:before{content:"\f047"}.fa-chalkboard-teacher:before,.fa-chalkboard-user:before{content:"\f51c"}.fa-rhombus:before{content:"\e23b"}.fa-claw-marks:before{content:"\f6c2"}.fa-peso-sign:before{content:"\e222"}.fa-face-smile-tongue:before{content:"\e394"}.fa-cart-circle-xmark:before{content:"\e3f4"}.fa-building-shield:before{content:"\e4d8"}.fa-circle-phone-flip:before,.fa-phone-circle-alt:before{content:"\e11c"}.fa-baby:before{content:"\f77c"}.fa-users-line:before{content:"\e592"}.fa-quote-left-alt:before,.fa-quote-left:before{content:"\f10d"}.fa-tractor:before{content:"\f722"}.fa-down-from-bracket:before{content:"\e66b"}.fa-key-skeleton:before{content:"\f6f3"}.fa-trash-arrow-up:before,.fa-trash-restore:before{content:"\f829"}.fa-arrow-down-up-lock:before{content:"\e4b0"}.fa-arrow-down-to-bracket:before{content:"\e094"}.fa-lines-leaning:before{content:"\e51e"}.fa-square-q:before{content:"\e27b"}.fa-ruler-combined:before{content:"\f546"}.fa-icons-alt:before,.fa-symbols:before{content:"\f86e"}.fa-copyright:before{content:"\f1f9"}.fa-flask-gear:before{content:"\e5f1"}.fa-highlighter-line:before{content:"\e1af"}.fa-bracket-left:before,.fa-bracket-square:before,.fa-bracket:before{content:"\5b"}.fa-island-tree-palm:before,.fa-island-tropical:before{content:"\f811"}.fa-arrow-from-left:before,.fa-arrow-right-from-line:before{content:"\f343"}.fa-h2:before{content:"\f314"}.fa-equals:before{content:"\3d"}.fa-cake-slice:before,.fa-shortcake:before{content:"\e3e5"}.fa-building-magnifying-glass:before{content:"\e61c"}.fa-peanut:before{content:"\e430"}.fa-wrench-simple:before{content:"\e2d1"}.fa-blender:before{content:"\f517"}.fa-teeth:before{content:"\f62e"}.fa-tally-2:before{content:"\e295"}.fa-ils:before,.fa-shekel-sign:before,.fa-shekel:before,.fa-sheqel-sign:before,.fa-sheqel:before{content:"\f20b"}.fa-cars:before{content:"\f85b"}.fa-axe-battle:before{content:"\f6b3"}.fa-user-hair-long:before{content:"\e45b"}.fa-map:before{content:"\f279"}.fa-arrow-left-from-arc:before{content:"\e615"}.fa-file-circle-info:before{content:"\e493"}.fa-face-disappointed:before{content:"\e36f"}.fa-lasso-sparkles:before{content:"\e1c9"}.fa-clock-eleven:before{content:"\e347"}.fa-rocket:before{content:"\f135"}.fa-siren-on:before{content:"\e02e"}.fa-clock-ten:before{content:"\e354"}.fa-candle-holder:before{content:"\f6bc"}.fa-video-arrow-down-left:before{content:"\e2c8"}.fa-photo-film:before,.fa-photo-video:before{content:"\f87c"}.fa-floppy-disk-circle-arrow-right:before,.fa-save-circle-arrow-right:before{content:"\e180"}.fa-folder-minus:before{content:"\f65d"}.fa-planet-moon:before{content:"\e01f"}.fa-face-eyes-xmarks:before{content:"\e374"}.fa-chart-scatter:before{content:"\f7ee"}.fa-circle-gf:before{content:"\e67f"}.fa-display-arrow-down:before{content:"\e164"}.fa-store:before{content:"\f54e"}.fa-arrow-trend-up:before{content:"\e098"}.fa-plug-circle-minus:before{content:"\e55e"}.fa-olive-branch:before{content:"\e317"}.fa-angle:before{content:"\e08c"}.fa-vacuum-robot:before{content:"\e04e"}.fa-sign-hanging:before,.fa-sign:before{content:"\f4d9"}.fa-square-divide:before{content:"\e26a"}.fa-folder-check:before{content:"\e64e"}.fa-signal-stream-slash:before{content:"\e250"}.fa-bezier-curve:before{content:"\f55b"}.fa-eye-dropper-half:before{content:"\e173"}.fa-store-lock:before{content:"\e4a6"}.fa-bell-slash:before{content:"\f1f6"}.fa-cloud-bolt-sun:before,.fa-thunderstorm-sun:before{content:"\f76e"}.fa-camera-slash:before{content:"\e0d9"}.fa-comment-quote:before{content:"\e14c"}.fa-tablet-android:before,.fa-tablet:before{content:"\f3fb"}.fa-school-flag:before{content:"\e56e"}.fa-message-code:before{content:"\e1df"}.fa-glass-half-empty:before,.fa-glass-half-full:before,.fa-glass-half:before{content:"\e192"}.fa-fill:before{content:"\f575"}.fa-comment-alt-minus:before,.fa-message-minus:before{content:"\f4a7"}.fa-angle-up:before{content:"\f106"}.fa-dinosaur:before{content:"\e5fe"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-chain-horizontal-slash:before,.fa-link-horizontal-slash:before{content:"\e1cc"}.fa-holly-berry:before{content:"\f7aa"}.fa-nose:before{content:"\e5bd"}.fa-arrow-left-to-arc:before{content:"\e616"}.fa-chevron-left:before{content:"\f053"}.fa-bacteria:before{content:"\e059"}.fa-clouds:before{content:"\f744"}.fa-money-bill-simple:before{content:"\e1f1"}.fa-hand-lizard:before{content:"\f258"}.fa-table-pivot:before{content:"\e291"}.fa-filter-slash:before{content:"\e17d"}.fa-trash-can-arrow-turn-left:before,.fa-trash-can-undo:before,.fa-trash-undo-alt:before{content:"\f896"}.fa-notdef:before{content:"\e1fe"}.fa-disease:before{content:"\f7fa"}.fa-person-to-door:before{content:"\e433"}.fa-turntable:before{content:"\f8e4"}.fa-briefcase-medical:before{content:"\f469"}.fa-genderless:before{content:"\f22d"}.fa-chevron-right:before{content:"\f054"}.fa-signal-1:before,.fa-signal-weak:before{content:"\f68c"}.fa-clock-five:before{content:"\e349"}.fa-retweet:before{content:"\f079"}.fa-car-alt:before,.fa-car-rear:before{content:"\f5de"}.fa-pump-soap:before{content:"\e06b"}.fa-computer-classic:before{content:"\f8b1"}.fa-frame:before{content:"\e495"}.fa-video-slash:before{content:"\f4e2"}.fa-battery-2:before,.fa-battery-quarter:before{content:"\f243"}.fa-ellipsis-h-alt:before,.fa-ellipsis-stroke:before{content:"\f39b"}.fa-radio:before{content:"\f8d7"}.fa-baby-carriage:before,.fa-carriage-baby:before{content:"\f77d"}.fa-face-expressionless:before{content:"\e373"}.fa-down-to-dotted-line:before{content:"\e408"}.fa-cloud-music:before{content:"\f8ae"}.fa-traffic-light:before{content:"\f637"}.fa-cloud-minus:before{content:"\e35d"}.fa-thermometer:before{content:"\f491"}.fa-shield-minus:before{content:"\e249"}.fa-vr-cardboard:before{content:"\f729"}.fa-car-tilt:before{content:"\f5e5"}.fa-gauge-circle-minus:before{content:"\e497"}.fa-brightness-low:before{content:"\e0ca"}.fa-hand-middle-finger:before{content:"\f806"}.fa-percent:before,.fa-percentage:before{content:"\25"}.fa-truck-moving:before{content:"\f4df"}.fa-glass-water-droplet:before{content:"\e4f5"}.fa-conveyor-belt:before{content:"\f46e"}.fa-location-check:before,.fa-map-marker-check:before{content:"\f606"}.fa-coin-vertical:before{content:"\e3fd"}.fa-display:before{content:"\e163"}.fa-person-sign:before{content:"\f757"}.fa-face-smile:before,.fa-smile:before{content:"\f118"}.fa-phone-hangup:before{content:"\e225"}.fa-signature-slash:before{content:"\e3cb"}.fa-thumb-tack:before,.fa-thumbtack:before{content:"\f08d"}.fa-wheat-slash:before{content:"\e339"}.fa-trophy:before{content:"\f091"}.fa-clouds-sun:before{content:"\f746"}.fa-person-praying:before,.fa-pray:before{content:"\f683"}.fa-hammer:before{content:"\f6e3"}.fa-face-vomit:before{content:"\e3a0"}.fa-speakers:before{content:"\f8e0"}.fa-teletype-answer:before,.fa-tty-answer:before{content:"\e2b9"}.fa-mug-tea-saucer:before{content:"\e1f5"}.fa-diagram-lean-canvas:before{content:"\e156"}.fa-alt:before{content:"\e08a"}.fa-dial-med-high:before,.fa-dial:before{content:"\e15b"}.fa-hand-peace:before{content:"\f25b"}.fa-circle-trash:before,.fa-trash-circle:before{content:"\e126"}.fa-rotate:before,.fa-sync-alt:before{content:"\f2f1"}.fa-circle-quarters:before{content:"\e3f8"}.fa-spinner:before{content:"\f110"}.fa-tower-control:before{content:"\e2a2"}.fa-arrow-up-triangle-square:before,.fa-sort-shapes-up:before{content:"\f88a"}.fa-whale:before{content:"\f72c"}.fa-robot:before{content:"\f544"}.fa-peace:before{content:"\f67c"}.fa-party-horn:before{content:"\e31b"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-sun-alt:before,.fa-sun-bright:before{content:"\e28f"}.fa-warehouse:before{content:"\f494"}.fa-conveyor-belt-arm:before{content:"\e5f8"}.fa-lock-keyhole-open:before,.fa-lock-open-alt:before{content:"\f3c2"}.fa-box-fragile:before,.fa-square-fragile:before,.fa-square-wine-glass-crack:before{content:"\f49b"}.fa-arrow-up-right-dots:before{content:"\e4b7"}.fa-square-n:before{content:"\e277"}.fa-splotch:before{content:"\f5bc"}.fa-face-grin-hearts:before,.fa-grin-hearts:before{content:"\f584"}.fa-meter:before{content:"\e1e8"}.fa-mandolin:before{content:"\f6f9"}.fa-dice-four:before{content:"\f524"}.fa-sim-card:before{content:"\f7c4"}.fa-transgender-alt:before,.fa-transgender:before{content:"\f225"}.fa-mercury:before{content:"\f223"}.fa-up-from-bracket:before{content:"\e590"}.fa-knife-kitchen:before{content:"\f6f5"}.fa-border-right:before{content:"\f852"}.fa-arrow-turn-down:before,.fa-level-down:before{content:"\f149"}.fa-spade:before{content:"\f2f4"}.fa-card-spade:before{content:"\e3ec"}.fa-line-columns:before{content:"\f870"}.fa-ant:before{content:"\e680"}.fa-arrow-right-to-line:before,.fa-arrow-to-right:before{content:"\f340"}.fa-person-falling-burst:before{content:"\e547"}.fa-flag-pennant:before,.fa-pennant:before{content:"\f456"}.fa-conveyor-belt-empty:before{content:"\e150"}.fa-user-group-simple:before{content:"\e603"}.fa-award:before{content:"\f559"}.fa-ticket-alt:before,.fa-ticket-simple:before{content:"\f3ff"}.fa-building:before{content:"\f1ad"}.fa-angle-double-left:before,.fa-angles-left:before{content:"\f100"}.fa-camcorder:before,.fa-video-handheld:before{content:"\f8a8"}.fa-pancakes:before{content:"\e42d"}.fa-album-circle-user:before{content:"\e48d"}.fa-subtitles-slash:before{content:"\e610"}.fa-qrcode:before{content:"\f029"}.fa-dice-d10:before{content:"\f6cd"}.fa-fireplace:before{content:"\f79a"}.fa-browser:before{content:"\f37e"}.fa-pen-paintbrush:before,.fa-pencil-paintbrush:before{content:"\f618"}.fa-fish-cooked:before{content:"\f7fe"}.fa-chair-office:before{content:"\f6c1"}.fa-magnifying-glass-music:before{content:"\e65f"}.fa-nesting-dolls:before{content:"\e3ba"}.fa-clock-rotate-left:before,.fa-history:before{content:"\f1da"}.fa-trumpet:before{content:"\f8e3"}.fa-face-grin-beam-sweat:before,.fa-grin-beam-sweat:before{content:"\f583"}.fa-fire-smoke:before{content:"\f74b"}.fa-phone-missed:before{content:"\e226"}.fa-arrow-right-from-file:before,.fa-file-export:before{content:"\f56e"}.fa-shield-blank:before,.fa-shield:before{content:"\f132"}.fa-arrow-up-short-wide:before,.fa-sort-amount-up-alt:before{content:"\f885"}.fa-arrows-repeat-1:before,.fa-repeat-1-alt:before{content:"\f366"}.fa-gun-slash:before{content:"\e19c"}.fa-avocado:before{content:"\e0aa"}.fa-binary:before{content:"\e33b"}.fa-glasses-alt:before,.fa-glasses-round:before{content:"\f5f5"}.fa-phone-plus:before{content:"\f4d2"}.fa-ditto:before{content:"\22"}.fa-person-seat:before{content:"\e21e"}.fa-house-medical:before{content:"\e3b2"}.fa-golf-ball-tee:before,.fa-golf-ball:before{content:"\f450"}.fa-chevron-circle-left:before,.fa-circle-chevron-left:before{content:"\f137"}.fa-house-chimney-window:before{content:"\e00d"}.fa-scythe:before{content:"\f710"}.fa-pen-nib:before{content:"\f5ad"}.fa-ban-parking:before,.fa-parking-circle-slash:before{content:"\f616"}.fa-tent-arrow-turn-left:before{content:"\e580"}.fa-face-diagonal-mouth:before{content:"\e47e"}.fa-diagram-cells:before{content:"\e475"}.fa-cricket-bat-ball:before,.fa-cricket:before{content:"\f449"}.fa-tents:before{content:"\e582"}.fa-magic:before,.fa-wand-magic:before{content:"\f0d0"}.fa-dog:before{content:"\f6d3"}.fa-pen-line:before{content:"\e212"}.fa-atom-alt:before,.fa-atom-simple:before{content:"\f5d3"}.fa-ampersand:before{content:"\26"}.fa-carrot:before{content:"\f787"}.fa-arrow-from-bottom:before,.fa-arrow-up-from-line:before{content:"\f342"}.fa-moon:before{content:"\f186"}.fa-pen-slash:before{content:"\e213"}.fa-wine-glass-alt:before,.fa-wine-glass-empty:before{content:"\f5ce"}.fa-square-star:before{content:"\e27f"}.fa-cheese:before{content:"\f7ef"}.fa-send-backward:before{content:"\f87f"}.fa-yin-yang:before{content:"\f6ad"}.fa-music:before{content:"\f001"}.fa-compass-slash:before{content:"\f5e9"}.fa-clock-one:before{content:"\e34e"}.fa-file-music:before{content:"\f8b6"}.fa-code-commit:before{content:"\f386"}.fa-temperature-low:before{content:"\f76b"}.fa-biking:before,.fa-person-biking:before{content:"\f84a"}.fa-display-chart-up-circle-currency:before{content:"\e5e5"}.fa-skeleton:before{content:"\f620"}.fa-circle-g:before{content:"\e10f"}.fa-circle-arrow-up-left:before{content:"\e0fb"}.fa-coin-blank:before{content:"\e3fb"}.fa-broom:before{content:"\f51a"}.fa-vacuum:before{content:"\e04d"}.fa-shield-heart:before{content:"\e574"}.fa-card-heart:before{content:"\e3eb"}.fa-lightbulb-cfl-on:before{content:"\e5a7"}.fa-melon:before{content:"\e310"}.fa-gopuram:before{content:"\f664"}.fa-earth-oceania:before,.fa-globe-oceania:before{content:"\e47b"}.fa-container-storage:before{content:"\f4b7"}.fa-face-pouting:before{content:"\e387"}.fa-square-xmark:before,.fa-times-square:before,.fa-xmark-square:before{content:"\f2d3"}.fa-exploding-head:before,.fa-face-explode:before{content:"\e2fe"}.fa-hashtag:before{content:"\23"}.fa-expand-alt:before,.fa-up-right-and-down-left-from-center:before{content:"\f424"}.fa-oil-can:before{content:"\f613"}.fa-t:before{content:"\54"}.fa-transformer-bolt:before{content:"\e2a4"}.fa-hippo:before{content:"\f6ed"}.fa-chart-column:before{content:"\e0e3"}.fa-cassette-vhs:before,.fa-vhs:before{content:"\f8ec"}.fa-infinity:before{content:"\f534"}.fa-vial-circle-check:before{content:"\e596"}.fa-chimney:before{content:"\f78b"}.fa-object-intersect:before{content:"\e49d"}.fa-person-arrow-down-to-line:before{content:"\e538"}.fa-voicemail:before{content:"\f897"}.fa-block-brick:before,.fa-wall-brick:before{content:"\e3db"}.fa-fan:before{content:"\f863"}.fa-bags-shopping:before{content:"\f847"}.fa-paragraph-left:before,.fa-paragraph-rtl:before{content:"\f878"}.fa-person-walking-luggage:before{content:"\e554"}.fa-caravan-alt:before,.fa-caravan-simple:before{content:"\e000"}.fa-turtle:before{content:"\f726"}.fa-pencil-mechanical:before{content:"\e5ca"}.fa-arrows-alt-v:before,.fa-up-down:before{content:"\f338"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-booth-curtain:before{content:"\f734"}.fa-calendar:before{content:"\f133"}.fa-box-heart:before{content:"\f49d"}.fa-trailer:before{content:"\e041"}.fa-user-doctor-message:before,.fa-user-md-chat:before{content:"\f82e"}.fa-bahai:before,.fa-haykal:before{content:"\f666"}.fa-lighthouse:before{content:"\e612"}.fa-amp-guitar:before{content:"\f8a1"}.fa-sd-card:before{content:"\f7c2"}.fa-volume-slash:before{content:"\f2e2"}.fa-border-bottom:before{content:"\f84d"}.fa-wifi-1:before,.fa-wifi-weak:before{content:"\f6aa"}.fa-dragon:before{content:"\f6d5"}.fa-shoe-prints:before{content:"\f54b"}.fa-circle-plus:before,.fa-plus-circle:before{content:"\f055"}.fa-face-grin-tongue-wink:before,.fa-grin-tongue-wink:before{content:"\f58b"}.fa-hand-holding:before{content:"\f4bd"}.fa-plug-circle-exclamation:before{content:"\e55d"}.fa-chain-broken:before,.fa-chain-slash:before,.fa-link-slash:before,.fa-unlink:before{content:"\f127"}.fa-clone:before{content:"\f24d"}.fa-person-walking-arrow-loop-left:before{content:"\e551"}.fa-arrow-up-z-a:before,.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-fire-alt:before,.fa-fire-flame-curved:before{content:"\f7e4"}.fa-tornado:before{content:"\f76f"}.fa-file-circle-plus:before{content:"\e494"}.fa-delete-right:before{content:"\e154"}.fa-book-quran:before,.fa-quran:before{content:"\f687"}.fa-circle-quarter:before{content:"\e11f"}.fa-anchor:before{content:"\f13d"}.fa-border-all:before{content:"\f84c"}.fa-function:before{content:"\f661"}.fa-angry:before,.fa-face-angry:before{content:"\f556"}.fa-people-simple:before{content:"\e21b"}.fa-cookie-bite:before{content:"\f564"}.fa-arrow-trend-down:before{content:"\e097"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-face-monocle:before{content:"\e380"}.fa-draw-polygon:before{content:"\f5ee"}.fa-balance-scale:before,.fa-scale-balanced:before{content:"\f24e"}.fa-calendar-lines:before,.fa-calendar-note:before{content:"\e0d5"}.fa-arrow-down-big-small:before,.fa-sort-size-down:before{content:"\f88c"}.fa-gauge-simple-high:before,.fa-tachometer-fast:before,.fa-tachometer:before{content:"\f62a"}.fa-do-not-enter:before{content:"\f5ec"}.fa-shower:before{content:"\f2cc"}.fa-dice-d8:before{content:"\f6d2"}.fa-desktop-alt:before,.fa-desktop:before{content:"\f390"}.fa-m:before{content:"\4d"}.fa-spinner-scale:before{content:"\e62a"}.fa-grip-dots-vertical:before{content:"\e411"}.fa-face-viewfinder:before{content:"\e2ff"}.fa-creemee:before,.fa-soft-serve:before{content:"\e400"}.fa-h5:before{content:"\e412"}.fa-hand-back-point-down:before{content:"\e19e"}.fa-table-list:before,.fa-th-list:before{content:"\f00b"}.fa-basket-shopping-minus:before{content:"\e652"}.fa-comment-sms:before,.fa-sms:before{content:"\f7cd"}.fa-rectangle-landscape:before,.fa-rectangle:before{content:"\f2fa"}.fa-clipboard-list-check:before{content:"\f737"}.fa-turkey:before{content:"\f725"}.fa-book:before{content:"\f02d"}.fa-user-plus:before{content:"\f234"}.fa-ice-skate:before{content:"\f7ac"}.fa-check:before{content:"\f00c"}.fa-battery-4:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-tomato:before{content:"\e330"}.fa-sword-laser:before{content:"\e03b"}.fa-house-circle-check:before{content:"\e509"}.fa-buildings:before{content:"\e0cc"}.fa-angle-left:before{content:"\f104"}.fa-cart-flatbed-boxes:before,.fa-dolly-flatbed-alt:before{content:"\f475"}.fa-diagram-successor:before{content:"\e47a"}.fa-truck-arrow-right:before{content:"\e58b"}.fa-square-w:before{content:"\e285"}.fa-arrows-split-up-and-left:before{content:"\e4bc"}.fa-lamp:before{content:"\f4ca"}.fa-airplay:before{content:"\e089"}.fa-fist-raised:before,.fa-hand-fist:before{content:"\f6de"}.fa-shield-quartered:before{content:"\e575"}.fa-slash-forward:before{content:"\2f"}.fa-location-pen:before,.fa-map-marker-edit:before{content:"\f607"}.fa-cloud-moon:before{content:"\f6c3"}.fa-pot-food:before{content:"\e43f"}.fa-briefcase:before{content:"\f0b1"}.fa-person-falling:before{content:"\e546"}.fa-image-portrait:before,.fa-portrait:before{content:"\f3e0"}.fa-user-tag:before{content:"\f507"}.fa-rug:before{content:"\e569"}.fa-print-slash:before{content:"\f686"}.fa-earth-europe:before,.fa-globe-europe:before{content:"\f7a2"}.fa-cart-flatbed-suitcase:before,.fa-luggage-cart:before{content:"\f59d"}.fa-hand-back-point-ribbon:before{content:"\e1a0"}.fa-rectangle-times:before,.fa-rectangle-xmark:before,.fa-times-rectangle:before,.fa-window-close:before{content:"\f410"}.fa-tire-rugged:before{content:"\f634"}.fa-lightbulb-dollar:before{content:"\f670"}.fa-cowbell:before{content:"\f8b3"}.fa-baht-sign:before{content:"\e0ac"}.fa-corner:before{content:"\e3fe"}.fa-chevron-double-right:before,.fa-chevrons-right:before{content:"\f324"}.fa-book-open:before{content:"\f518"}.fa-book-journal-whills:before,.fa-journal-whills:before{content:"\f66a"}.fa-inhaler:before{content:"\f5f9"}.fa-handcuffs:before{content:"\e4f8"}.fa-snake:before{content:"\f716"}.fa-exclamation-triangle:before,.fa-triangle-exclamation:before,.fa-warning:before{content:"\f071"}.fa-note-medical:before{content:"\e200"}.fa-database:before{content:"\f1c0"}.fa-down-left:before{content:"\e16a"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-face-thinking:before{content:"\e39b"}.fa-turn-down-right:before{content:"\e455"}.fa-bottle-droplet:before{content:"\e4c4"}.fa-mask-face:before{content:"\e1d7"}.fa-hill-rockslide:before{content:"\e508"}.fa-scanner-keyboard:before{content:"\f489"}.fa-circle-o:before{content:"\e119"}.fa-grid-horizontal:before{content:"\e307"}.fa-comment-alt-dollar:before,.fa-message-dollar:before{content:"\f650"}.fa-exchange-alt:before,.fa-right-left:before{content:"\f362"}.fa-columns-3:before{content:"\e361"}.fa-paper-plane:before{content:"\f1d8"}.fa-road-circle-exclamation:before{content:"\e565"}.fa-dungeon:before{content:"\f6d9"}.fa-hand-holding-box:before{content:"\f47b"}.fa-input-text:before{content:"\e1bf"}.fa-window-alt:before,.fa-window-flip:before{content:"\f40f"}.fa-align-right:before{content:"\f038"}.fa-scanner-gun:before,.fa-scanner:before{content:"\f488"}.fa-tire:before{content:"\f631"}.fa-engine:before{content:"\e16e"}.fa-money-bill-1-wave:before,.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-life-ring:before{content:"\f1cd"}.fa-hands:before,.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-caret-circle-right:before,.fa-circle-caret-right:before{content:"\f330"}.fa-turn-left:before{content:"\e636"}.fa-wheat:before{content:"\f72d"}.fa-file-spreadsheet:before{content:"\f65b"}.fa-audio-description-slash:before{content:"\e0a8"}.fa-bell-ring:before{content:"\e62c"}.fa-calendar-day:before{content:"\f783"}.fa-ladder-water:before,.fa-swimming-pool:before,.fa-water-ladder:before{content:"\f5c5"}.fa-arrows-up-down:before,.fa-arrows-v:before{content:"\f07d"}.fa-chess-pawn-alt:before,.fa-chess-pawn-piece:before{content:"\f444"}.fa-face-grimace:before,.fa-grimace:before{content:"\f57f"}.fa-wheelchair-alt:before,.fa-wheelchair-move:before{content:"\e2ce"}.fa-level-down-alt:before,.fa-turn-down:before{content:"\f3be"}.fa-square-s:before{content:"\e27d"}.fa-barcode-alt:before,.fa-rectangle-barcode:before{content:"\f463"}.fa-person-walking-arrow-right:before{content:"\e552"}.fa-envelope-square:before,.fa-square-envelope:before{content:"\f199"}.fa-dice:before{content:"\f522"}.fa-unicorn:before{content:"\f727"}.fa-bowling-ball:before{content:"\f436"}.fa-pompebled:before{content:"\e43d"}.fa-brain:before{content:"\f5dc"}.fa-watch-smart:before{content:"\e2cc"}.fa-book-user:before{content:"\f7e7"}.fa-sensor-cloud:before,.fa-sensor-smoke:before{content:"\e02c"}.fa-clapperboard-play:before{content:"\e132"}.fa-band-aid:before,.fa-bandage:before{content:"\f462"}.fa-calendar-minus:before{content:"\f272"}.fa-circle-xmark:before,.fa-times-circle:before,.fa-xmark-circle:before{content:"\f057"}.fa-circle-4:before{content:"\e0f1"}.fa-gifts:before{content:"\f79c"}.fa-album-collection:before{content:"\f8a0"}.fa-hotel:before{content:"\f594"}.fa-earth-asia:before,.fa-globe-asia:before{content:"\f57e"}.fa-id-card-alt:before,.fa-id-card-clip:before{content:"\f47f"}.fa-magnifying-glass-plus:before,.fa-search-plus:before{content:"\f00e"}.fa-thumbs-up:before{content:"\f164"}.fa-cloud-showers:before{content:"\f73f"}.fa-user-clock:before{content:"\f4fd"}.fa-onion:before{content:"\e427"}.fa-clock-twelve-thirty:before{content:"\e359"}.fa-arrow-down-to-dotted-line:before{content:"\e095"}.fa-allergies:before,.fa-hand-dots:before{content:"\f461"}.fa-file-invoice:before{content:"\f570"}.fa-window-minimize:before{content:"\f2d1"}.fa-rectangle-wide:before{content:"\f2fc"}.fa-comment-arrow-up:before{content:"\e144"}.fa-garlic:before{content:"\e40e"}.fa-coffee:before,.fa-mug-saucer:before{content:"\f0f4"}.fa-brush:before{content:"\f55d"}.fa-tree-decorated:before{content:"\f7dc"}.fa-mask:before{content:"\f6fa"}.fa-calendar-heart:before{content:"\e0d3"}.fa-magnifying-glass-minus:before,.fa-search-minus:before{content:"\f010"}.fa-flower:before{content:"\f7ff"}.fa-arrow-down-from-arc:before{content:"\e614"}.fa-right-left-large:before{content:"\e5e1"}.fa-ruler-vertical:before{content:"\f548"}.fa-circles-overlap:before{content:"\e600"}.fa-user-alt:before,.fa-user-large:before{content:"\f406"}.fa-starship-freighter:before{content:"\e03a"}.fa-train-tram:before{content:"\e5b4"}.fa-bridge-suspension:before{content:"\e4cd"}.fa-trash-check:before{content:"\e2af"}.fa-user-nurse:before{content:"\f82f"}.fa-boombox:before{content:"\f8a5"}.fa-syringe:before{content:"\f48e"}.fa-cloud-sun:before{content:"\f6c4"}.fa-shield-exclamation:before{content:"\e247"}.fa-stopwatch-20:before{content:"\e06f"}.fa-square-full:before{content:"\f45c"}.fa-grip-dots:before{content:"\e410"}.fa-comment-exclamation:before{content:"\f4af"}.fa-pen-swirl:before{content:"\e214"}.fa-falafel:before{content:"\e40a"}.fa-circle-2:before{content:"\e0ef"}.fa-magnet:before{content:"\f076"}.fa-jar:before{content:"\e516"}.fa-gramophone:before{content:"\f8bd"}.fa-dice-d12:before{content:"\f6ce"}.fa-note-sticky:before,.fa-sticky-note:before{content:"\f249"}.fa-arrow-alt-down:before,.fa-down:before{content:"\f354"}.fa-100:before,.fa-hundred-points:before{content:"\e41c"}.fa-paperclip-vertical:before{content:"\e3c2"}.fa-wind-circle-exclamation:before,.fa-wind-warning:before{content:"\f776"}.fa-location-pin-slash:before,.fa-map-marker-slash:before{content:"\f60c"}.fa-face-sad-sweat:before{content:"\e38a"}.fa-bug-slash:before{content:"\e490"}.fa-cupcake:before{content:"\e402"}.fa-light-switch-off:before{content:"\e018"}.fa-toggle-large-off:before{content:"\e5b0"}.fa-pen-fancy-slash:before{content:"\e210"}.fa-truck-container:before{content:"\f4dc"}.fa-boot:before{content:"\f782"}.fa-arrow-up-from-water-pump:before{content:"\e4b6"}.fa-file-check:before{content:"\f316"}.fa-bone:before{content:"\f5d7"}.fa-cards-blank:before{content:"\e4df"}.fa-circle-3:before{content:"\e0f0"}.fa-bench-tree:before{content:"\e2e7"}.fa-keyboard-brightness-low:before{content:"\e1c1"}.fa-ski-boot-ski:before{content:"\e3cd"}.fa-brain-circuit:before{content:"\e0c6"}.fa-user-injured:before{content:"\f728"}.fa-block-brick-fire:before,.fa-firewall:before{content:"\e3dc"}.fa-face-sad-tear:before,.fa-sad-tear:before{content:"\f5b4"}.fa-plane:before{content:"\f072"}.fa-tent-arrows-down:before{content:"\e581"}.fa-exclamation:before{content:"\21"}.fa-arrows-spin:before{content:"\e4bb"}.fa-face-smile-relaxed:before{content:"\e392"}.fa-comment-times:before,.fa-comment-xmark:before{content:"\f4b5"}.fa-print:before{content:"\f02f"}.fa-try:before,.fa-turkish-lira-sign:before,.fa-turkish-lira:before{content:"\e2bb"}.fa-face-nose-steam:before{content:"\e382"}.fa-circle-waveform-lines:before,.fa-waveform-circle:before{content:"\e12d"}.fa-dollar-sign:before,.fa-dollar:before,.fa-usd:before{content:"\24"}.fa-ferris-wheel:before{content:"\e174"}.fa-computer-speaker:before{content:"\f8b2"}.fa-skull-cow:before{content:"\f8de"}.fa-x:before{content:"\58"}.fa-magnifying-glass-dollar:before,.fa-search-dollar:before{content:"\f688"}.fa-users-cog:before,.fa-users-gear:before{content:"\f509"}.fa-person-military-pointing:before{content:"\e54a"}.fa-bank:before,.fa-building-columns:before,.fa-institution:before,.fa-museum:before,.fa-university:before{content:"\f19c"}.fa-circle-t:before{content:"\e124"}.fa-sack:before{content:"\f81c"}.fa-grid-2:before{content:"\e196"}.fa-camera-cctv:before,.fa-cctv:before{content:"\f8ac"}.fa-umbrella:before{content:"\f0e9"}.fa-trowel:before{content:"\e589"}.fa-horizontal-rule:before{content:"\f86c"}.fa-bed-alt:before,.fa-bed-front:before{content:"\f8f7"}.fa-d:before{content:"\44"}.fa-stapler:before{content:"\e5af"}.fa-masks-theater:before,.fa-theater-masks:before{content:"\f630"}.fa-file-gif:before{content:"\e645"}.fa-kip-sign:before{content:"\e1c4"}.fa-face-woozy:before{content:"\e3a2"}.fa-cloud-question:before{content:"\e492"}.fa-pineapple:before{content:"\e31f"}.fa-hand-point-left:before{content:"\f0a5"}.fa-gallery-thumbnails:before{content:"\e3aa"}.fa-circle-j:before{content:"\e112"}.fa-eyes:before{content:"\e367"}.fa-handshake-alt:before,.fa-handshake-simple:before{content:"\f4c6"}.fa-file-caret-up:before,.fa-page-caret-up:before{content:"\e42a"}.fa-fighter-jet:before,.fa-jet-fighter:before{content:"\f0fb"}.fa-comet:before{content:"\e003"}.fa-share-alt-square:before,.fa-square-share-nodes:before{content:"\f1e1"}.fa-reflect-vertical:before{content:"\e665"}.fa-shield-keyhole:before{content:"\e248"}.fa-file-mp4:before{content:"\e649"}.fa-barcode:before{content:"\f02a"}.fa-bulldozer:before{content:"\e655"}.fa-plus-minus:before{content:"\e43c"}.fa-sliders-v-square:before,.fa-square-sliders-vertical:before{content:"\f3f2"}.fa-video-camera:before,.fa-video:before{content:"\f03d"}.fa-comment-middle-alt:before,.fa-message-middle:before{content:"\e1e1"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-person-circle-check:before{content:"\e53e"}.fa-square-z:before{content:"\e288"}.fa-comment-alt-text:before,.fa-message-text:before{content:"\e1e6"}.fa-level-up-alt:before,.fa-turn-up:before{content:"\f3bf"}.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border-width:0;white-space:nowrap}.tykon:before{font-family:tykon,sans-serif!important;font-style:normal!important;font-variant:normal!important;font-weight:400!important;line-height:1;text-transform:none!important;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.tykon-arrowdown:before{content:"\61"}.tykon-arrowleft:before{content:"\62"}.tykon-arrowright:before{content:"\63"}.tykon-arrowup:before{content:"\64"}.tykon-doublearrowdown:before{content:"\65"}.tykon-filter:before{content:"\66"}.tykon-graph1:before{content:"\67"}.tykon-graph2:before{content:"\68"}.tykon-label:before{content:"\69"}.tykon-reload:before{content:"\6a"}.tykon-select:before{content:"\6b"}.tykon-target:before{content:"\6c"}.tykon-undo:before{content:"\6d"}.tykon-deployment:before{content:"\6e"}.tykon-team:before{content:"\6f"}.tykon-overview:before{content:"\70"}.tykon-loadout:before{content:"\71"}.tykon-entitlement:before{content:"\72"}.tykon-users:before{content:"\73"}.tykon-arrowsort:before{content:"\57"}.tykon-check:before{content:"\56"}.tykon-copy:before{content:"\43"}.tykon-delete:before{content:"\55"}.tykon-download:before{content:"\4c"}.tykon-draft:before{content:"\44"}.tykon-edit:before{content:"\45"}.tykon-graphq2:before{content:"\68"}.tykon-help:before{content:"\3f"}.tykon-link:before{content:"\52"}.tykon-lock1:before{content:"\59"}.tykon-lock2:before{content:"\5A"}.tykon-notifications:before{content:"\4E"}.tykon-plus:before{content:"\2B"}.tykon-profile:before{content:"\50"}.tykon-search:before{content:"\4F"}.tykon-settings:before{content:"\53"}.tykon-warning:before{content:"\21"}.tykon-x:before{content:"\58"}.tykon-waiting:before{content:"\54"}.tykon-fullscreen:before{content:"\e000"}.tykon-fullscreen-exit:before{content:"\e001"}.tykon-time:before{content:"\74"}h1,h2,h3,h4,h5,h6{color:var(--headings-color);font-family:var(--headings-font-family);font-weight:var(--headings-font-weight);margin-block-end:var(--headings-margin-bottom)}label{color:var(--label-color);display:inline-block;margin-block-end:5px;max-inline-size:100%}h1{font-size:var(--xxl-font-size);line-height:var(--xxl-line-height)}h2{font-size:var(--xl-font-size);line-height:var(--xl-line-height)}h3{font-size:var(--lg-font-size);line-height:var(--lg-line-height)}h4{font-size:var(--md-font-size);line-height:var(--md-line-height)}h5{font-size:var(--sm-font-size);line-height:var(--sm-line-height)}h6{font-size:var(--xs-font-size);line-height:var(--xs-line-height)}label,p{font-family:var(--font-family-regular);font-size:var(--sm-font-size);line-height:var(--sm-line-height);a{font-size:var(--sm-font-size);text-decoration:underline}}strong{font-family:var(--font-family-bold)}a:not(.tyk-button){color:var(--text-color);cursor:pointer;font-family:var(--font-family-regular);&.link--bold{font-family:var(--font-family-bold)}+a{margin-inline-start:5px}i{font-size:9px}}.font-family-regular{font-family:var(--font-family-regular)}.font-family-medium{font-family:var(--font-family-medium)}.font-family-bold{font-family:var(--font-family-bold)}.heading-font-family-regular{font-family:var(--headings-font-family-regular)}.heading-font-family-medium{font-family:var(--headings-font-family-medium)}.heading-font-family-bold{font-family:var(--headings-font-family-bold)}.text--info{color:var(--color-info-base)}.text--medium{font-family:var(--font-family-medium)}.text--bold{font-family:var(--font-family-bold)}.text--uppercase{text-transform:uppercase}.text--ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--underline{text-decoration:underline}.text--default-light{color:var(--color-default-light)!important}.text--default{color:var(--color-default-base)!important}.text--primary{color:var(--color-primary-base)!important}.text--danger{color:var(--color-danger-base)!important}.text--success{color:var(--color-success-base)!important}.text--warning{color:var(--color-warning-base)!important}td.text-ellipsis{max-inline-size:250px}.section-title{font-family:var(--headings-font-family-bold);margin-block-end:5px;.tyk-icon{margin-inline-start:5px}}.sub-section-title{font-family:var(--font-family-medium);font-size:var(--md-font-size);line-height:var(--md-line-height);margin-block-end:5px;.tyk-icon{margin-inline-start:5px}}.section-group-title{font-family:var(--font-family-bold);font-size:var(--sm-font-size);line-height:var(--sm-line-height);margin-block-end:5px;text-transform:uppercase;.tyk-icon{margin-inline-start:5px}}.tyk-form-section__title{font-size:var(--base-font-size);margin-block:var(--spacing-xs) var(--spacing-base);margin-inline:0}.tyk-form-section__title--light{color:var(--color-background-dark)}.tyk-form-group{margin-block-end:var(--form-group-margin-bottom);&.has-error .tyk-file-input__wrapper>.tyk-form-control,&.has-error>.tyk-form-control__wrapper>.tyk-form-control,&.has-error>.tyk-form-control__wrapper>.tyk-input-group>.tyk-form-control{border:var(--error-border);border-inline-start:var(--error-border-left);outline:none;&:focus{border-inline-start:2px solid var(--color-danger-dark);border-color:var(--color-danger-dark);outline:none}}label{font-family:var(--font-family-medium)}}.tyk-form-group--inline{align-items:stretch;display:flex;flex-wrap:nowrap;.tyk-form-control__wrapper{flex:1}label{margin-block-start:14px;margin-inline-end:var(--spacing-md);white-space:nowrap}input,label,select{display:flex}.tyk-form-control__help-block{display:flex;margin-inline-start:auto}}.tyk-form-group--default{color:var(--text-color);>.tyk-form-control__wrapper>.tyk-file-input__wrapper>.tyk-form-control,>.tyk-form-control__wrapper>.tyk-form-control,>.tyk-form-control__wrapper>.tyk-input-group>.tyk-form-control{border:var(--general-border-width) solid var(--form-default-color);color:var(--text-color);&[disabled]{background-color:var(--form-control-disabled-background-color);border:var(--general-border-width) solid var(--form-default-color);color:var(--form-control-disabled-color);cursor:not-allowed;+.tyk-input-group__addon{background-color:var(--form-control-disabled-background-color)}}&::placeholder{opacity:.8}&:-ms-input-placeholder{opacity:.8}}&.tyk-form-group--addon-left{.tyk-input-group__addon{border-block:2px solid var(--form-default-color);border-inline-start:2px solid var(--form-default-color);color:var(--text-color)}}&.tyk-form-group--addon-right{.tyk-input-group__addon{border-block:2px solid var(--form-default-color);border-inline-end:2px solid var(--form-default-color);color:var(--text-color)}}}.tyk-form-group--primary{color:var(--text-color);>.tyk-form-control__wrapper>.tyk-file-input__wrapper>.tyk-form-control,>.tyk-form-control__wrapper>.tyk-form-control,>.tyk-form-control__wrapper>.tyk-input-group>.tyk-form-control{border:var(--general-border-width) solid var(--form-primary-color);color:var(--text-color);&[disabled]{background-color:var(--form-control-disabled-background-color);border:var(--general-border-width) solid var(--form-primary-color);color:var(--form-control-disabled-color);cursor:not-allowed;+.tyk-input-group__addon{background-color:var(--form-control-disabled-background-color)}}&::placeholder{opacity:.8}&:-ms-input-placeholder{opacity:.8}}&.tyk-form-group--addon-left{.tyk-input-group__addon{border-block:2px solid var(--form-primary-color);border-inline-start:2px solid var(--form-primary-color);color:var(--form-primary-color)}}&.tyk-form-group--addon-right{.tyk-input-group__addon{border-block:2px solid var(--form-primary-color);border-inline-end:2px solid var(--form-primary-color);color:var(--form-primary-color)}}}.tyk-form-group--success{color:var(--text-color);>.tyk-form-control__wrapper>.tyk-file-input__wrapper>.tyk-form-control,>.tyk-form-control__wrapper>.tyk-form-control,>.tyk-form-control__wrapper>.tyk-input-group>.tyk-form-control{border:var(--general-border-width) solid var(--form-success-color);color:var(--text-color);&[disabled]{background-color:var(--form-control-disabled-background-color);border:var(--general-border-width) solid var(--form-success-color);color:var(--form-control-disabled-color);cursor:not-allowed;+.tyk-input-group__addon{background-color:var(--form-control-disabled-background-color)}}&::placeholder{opacity:.8}&:-ms-input-placeholder{opacity:.8}}&.tyk-form-group--addon-left{.tyk-input-group__addon{border-block:2px solid var(--form-success-color);border-inline-start:2px solid var(--form-success-color);color:var(--form-success-color)}}&.tyk-form-group--addon-right{.tyk-input-group__addon{border-block:2px solid var(--form-success-color);border-inline-end:2px solid var(--form-success-color);color:var(--form-success-color)}}}.tyk-form-group--rounded-corners{&.has-error>.tyk-form-control__wrapper>.tyk-form-control{border-inline-start:var(--error-border);&:focus{border-inline-start:var(--error-border);outline:none}}.tyk-form-control{border-radius:var(--general-border-radius)}}.tyk-form-group--addon-right input{border-inline-end:0!important;padding-inline-end:0}.tyk-form-group--addon-left input{border-inline-start:0!important;padding-inline-start:0}.tyk-form-group--rounded-corners.tyk-form-group--addon-right{input{border-end-end-radius:0;border-start-end-radius:0}.tyk-input-group__addon{background:var(--form-control-addon-background-color);border-end-end-radius:var(--general-border-radius);border-start-end-radius:var(--general-border-radius);color:var(--text-color)}}.tyk-form-group--rounded-corners.tyk-form-group--addon-left{input{border-end-start-radius:0;border-inline-start:0!important;border-start-start-radius:0}.tyk-input-group__addon{background:var(--form-control-addon-background-color);border-end-start-radius:var(--general-border-radius);border-start-start-radius:var(--general-border-radius);color:var(--text-color)}}.tyk-form-control__error-message{font-family:var(--font-family-regular);font-size:var(--xs-font-size);line-height:var(--xs-line-height);margin-block-start:5px;padding:var(--error-message-padding);position:relative;&:before{background:var(--color-danger-base);border-radius:8px;color:#fff;content:"!";display:inline-block;font-family:var(--font-family-bold);margin-inline-end:5px;padding-block:0;padding-inline:7px}}.tyk-input-group{align-items:center;display:flex;outline:none}.tyk-input-group__addon{align-items:center;background-color:var(--form-control-addon-background-color);block-size:var(--form-control-height);border:var(--form-control-border);display:flex;padding-block:var(--form-control-addon-padding-top) var(--form-control-addon-padding-bottom);padding-inline:var(--form-control-addon-padding-left) var(--form-control-addon-padding-right);&:first-child{border-inline-end:0}&:last-child{border-inline-start:0}}.tyk-form-control{background-color:#fff;block-size:var(--form-control-height);border:var(--form-control-border);color:var(--text-color);display:block;font-family:var(--font-family-medium);font-size:var(--sm-font-size);inline-size:100%;line-height:var(--sm-line-height);padding-block:var(--form-control-padding-top) var(--form-control-padding-bottom);padding-inline:var(--form-control-padding-left) var(--form-control-padding-right);transition:all .2s linear;&[disabled]{background-color:var(--form-control-disabled-background-color);cursor:not-allowed;.tyk-input-group__addon{background-color:var(--form-control-disabled-background-color)}}&::placeholder{color:var(--form-control-placeholder-color);font-family:var(--form-control-placeholder-font-family)}&:active,&:focus{border:var(--form-control-border-focus)!important;outline:none;+.tyk-input-group__addon{border:var(--form-control-border-focus)!important;border-inline-start:none!important}}}.tyk-form-control__help-block{color:var(--help-block-color);font-family:var(--font-family-regular);font-size:var(--xs-font-size);font-style:var(--help-block-font-style);line-height:var(--xs-line-height);margin-block:5px 0;margin-inline:0;padding:var(--help-block-padding)}select{appearance:none;border-radius:0}.inline-form-wrapper{align-items:center;display:flex;inline-size:100%;.inline-form{inline-size:100%}>button{margin-block-end:var(--spacing-base);margin-inline-start:10px}}.tyk-checkbox,.tyk-radio{margin-block:10px;margin-inline:0;label{font-family:var(--font-family-medium)}input{margin-block:0;margin-inline:0 5px}}.tyk-checkbox--inline,.tyk-radio--inline{display:inline-flex;margin-inline-start:var(--spacing-base);&:first-child{margin-inline-start:0}}.tyk-inline-form{align-items:center;display:flex;flex-wrap:wrap;.tyk-form-group{flex:1;margin-inline-start:var(--spacing-md);min-inline-size:200px;&:first-child{margin-inline-start:0}}>.tyk-button{margin-block-end:var(--spacing-base);margin-inline-start:var(--spacing-md)}}:root{--accordion-item-header-padding-y:var(--spacing-base);--accordion-item-header-padding-x:var(--spacing-base);--accordion-item-header-font-size:var(--base-font-size);--accordion-item-outside-trigger-width:var(--spacing-xxl)}.tyk-accordion__item{display:grid}.tyk-accordion__item--trigger-position-left{grid-template-areas:"trigger header" "trigger content";grid-template-columns:var(--accordion-item-outside-trigger-width) auto}.tyk-accordion__item--trigger-position-right{grid-template-areas:"header trigger" "content trigger";grid-template-columns:auto var(--accordion-item-outside-trigger-width)}.tyk-accordion__item--trigger-in-header{grid-template-areas:"header" "content";grid-template-columns:auto}.tyk-accordion__trigger-wrapper{align-items:flex-start;display:flex;grid-area:trigger;justify-content:center;.tyk-icon{margin-inline:auto}}.tyk-accordion__item-header>button,.tyk-accordion__trigger{background:none;border:none;cursor:pointer;display:flex;font-size:var(--accordion-item-header-font-size);inline-size:100%;outline:none;padding-block:var(--accordion-item-header-padding-y);padding-inline:var(--accordion-item-header-padding-x);.tyk-icon{margin-inline-start:auto}}.tyk-accordion__item-header{grid-area:header}.tyk-accordion__trigger--disabled{color:var(--color-background-base)}.tyk-accordion__item-header.tyk-accordion__arrow-trigger{align-items:center;display:flex;>div{flex:1}>button{inline-size:auto;margin-inline-start:auto}}.tyk-accordion__item-content{grid-area:content}:root{--button-font-family:var(--font-family-bold);--button-border-radius:var(--spacing-md);--padding-y-button-sm:3px;--padding-x-button-sm:var(--spacing-base);--padding-y-button-md:8px;--padding-x-button-md:23px;--padding-y-button-lg:13px;--padding-x-button-lg:23px;--line-height-button-sm:var(--xs-line-height);--line-height-button-md:var(--md-line-height);--line-height-button-lg:var(--lg-line-height);--button-default-color:var(--color-default-base);--button-default-hover-color:var(--color-default-dark);--button-default-gradient-start-color:var(--color-default-base);--button-default-gradient-end-color:var(--color-default-dark);--button-primary-color:var(--color-default-base-light);--button-primary-hover-color:var(--color-default-dark);--button-primary-text-color:#fff;--button-primary-gradient-start-color:var(--color-primary-base);--button-primary-gradient-end-color:var(--color-primary-dark);--button-success-color:var(--color-success-base);--button-success-hover-color:var(--color-success-dark);--button-success-gradient-start-color:var(--color-success-base);--button-success-gradient-end-color:var(--color-success-dark);--button-danger-color:var(--color-danger-base);--button-danger-hover-color:var(--color-danger-dark);--button-danger-gradient-start-color:var(--color-danger-base);--button-danger-gradient-end-color:var(--color-danger-dark);--button-warning-color:var(--color-warning-base);--button-warning-font-color:#fff;--button-warning-gradient-start-color:var(--color-warning-base);--button-warning-gradient-end-color:var(--color-warning-light);--button-info-color:var(--color-info-base);--button-info-font-color:var(--text-color);--button-info-gradient-start-color:var(--color-info-base);--button-info-gradient-end-color:var(--color-info-light);--button-icon-only-background-hover:var(--color-background-light)}.tyk-button{--button-padding-y:var(--padding-y-button-md);--button-padding-x:var(--padding-x-button-md);--button-font-size:var(--sm-font-size);--button-line-height:var(--line-height-button-md);background-color:transparent;border:none;color:#fff;cursor:pointer;display:inline-block;font-family:var(--button-font-family);text-align:center;text-decoration:none;text-transform:uppercase;transition:all .2s linear;user-select:none;vertical-align:middle;white-space:nowrap;+.tyk-button,+.tyk-dropdown,+.tyk-toggle,i+span,span+i{margin-inline-start:var(--spacing-sm)}&.disabled{cursor:not-allowed;opacity:.7}&:hover{color:#fff;text-decoration:none}&:focus{outline:none}}.tyk-button--white{--button-variant-background:#fff;--button-variant-border:transparent;--button-variant-color:var(--color-default-base);--button-variant-hover-background:var(--color-background-dark);--button-variant-hover-color:#fff}.tyk-button--primary{--button-variant-background:var(--button-primary-color);--button-variant-border:var(--button-primary-color);--button-variant-color:var(--button-primary-text-color);--button-variant-hover-background:var(--button-primary-hover-color);--button-variant-hover-color:var(--button-primary-text-color)}.tyk-button--success{--button-variant-background:var(--button-success-color);--button-variant-border:var(--button-success-color);--button-variant-color:#fff;--button-variant-hover-background:var(--button-success-hover-color);--button-variant-hover-color:#fff}.tyk-button--danger{--button-variant-background:var(--button-danger-color);--button-variant-border:var(--button-danger-color);--button-variant-color:#fff;--button-variant-hover-background:var(--button-danger-hover-color);--button-variant-hover-color:#fff}.tyk-button--warning{--button-variant-background:var(--button-warning-color);--button-variant-border:transparent;--button-variant-color:var(--button-warning-font-color);--button-variant-hover-background:color-mix(in srgb,var(--button-variant-background),#000 15%);--button-variant-hover-color:var(--button-warning-font-color)}.tyk-button--info{--button-variant-background:var(--button-info-color);--button-variant-border:var(--button-info-color);--button-variant-color:#fff;--button-variant-hover-background:color-mix(in srgb,var(--button-variant-background),#000 15%);--button-variant-hover-color:#fff}.tyk-button--default{--button-variant-background:var(--button-default-color);--button-variant-border:var(--button-default-color);--button-variant-color:#fff;--button-variant-hover-background:var(--button-default-hover-color);--button-variant-hover-color:#fff}.tyk-button--danger,.tyk-button--default,.tyk-button--info,.tyk-button--primary,.tyk-button--success,.tyk-button--warning,.tyk-button--white{background-color:var(--button-variant-background);border:var(--general-border-width) solid var(--button-variant-border);color:var(--button-variant-color);&:hover{background-color:var(--button-variant-hover-background);color:var(--button-variant-hover-color)}}.tyk-button--primary-link{--button-variant-link-color:var(--button-primary-color)}.tyk-button--success-link{--button-variant-link-color:var(--button-success-color)}.tyk-button--danger-link{--button-variant-link-color:var(--button-danger-color)}.tyk-button--warning-link{--button-variant-link-color:var(--button-warning-color)}.tyk-button--info-link{--button-variant-link-color:var(--button-info-color)}.tyk-button--default-link{--button-variant-link-color:var(--text-color)}.tyk-button--danger-link,.tyk-button--default-link,.tyk-button--info-link,.tyk-button--primary-link,.tyk-button--success-link,.tyk-button--warning-link{background-color:transparent;border:var(--general-border-width) solid transparent;color:var(--button-variant-link-color);&:hover{background-color:transparent;border-color:var(--button-variant-link-color);color:var(--button-variant-link-color);text-decoration:underline}}.tyk-button--primary-outline{--button-variant-outline-border:var(--button-primary-color);--button-variant-outline-color:var(--button-primary-color);--button-variant-outline-hover-color:#fff}.tyk-button--success-outline{--button-variant-outline-border:var(--button-success-color);--button-variant-outline-color:var(--button-success-color);--button-variant-outline-hover-color:#fff}.tyk-button--danger-outline{--button-variant-outline-border:var(--button-danger-color);--button-variant-outline-color:var(--button-danger-color);--button-variant-outline-hover-color:#fff}.tyk-button--warning-outline{--button-variant-outline-border:var(--button-warning-color);--button-variant-outline-color:var(--button-warning-color);--button-variant-outline-hover-color:#fff}.tyk-button--info-outline{--button-variant-outline-border:var(--button-info-color);--button-variant-outline-color:var(--button-info-color);--button-variant-outline-hover-color:#fff}.tyk-button--default-outline{--button-variant-outline-border:var(--button-default-color);--button-variant-outline-color:var(--button-default-color);--button-variant-outline-hover-color:#fff}.tyk-button--danger-outline,.tyk-button--default-outline,.tyk-button--info-outline,.tyk-button--primary-outline,.tyk-button--success-outline,.tyk-button--warning-outline{background-color:transparent;border:var(--general-border-width) solid var(--button-variant-outline-border);color:var(--button-variant-outline-color);&:hover{background-color:var(--button-variant-outline-border);color:var(--button-variant-outline-hover-color)}&.disabled{color:var(--button-variant-outline-border);&:hover{background-color:transparent;color:var(--button-variant-outline-border)}}}.tyk-button--primary-gradient{--button-variant-gradient-left-color:var(--button-primary-gradient-start-color);--button-variant-gradient-right-color:var(--button-primary-gradient-end-color)}.tyk-button--success-gradient{--button-variant-gradient-left-color:var(--button-success-gradient-start-color);--button-variant-gradient-right-color:var(--button-success-gradient-end-color)}.tyk-button--danger-gradient{--button-variant-gradient-left-color:var(--button-danger-gradient-start-color);--button-variant-gradient-right-color:var(--button-danger-gradient-end-color)}.tyk-button--warning-gradient{--button-variant-gradient-left-color:var(--button-warning-gradient-start-color);--button-variant-gradient-right-color:var(--button-warning-gradient-end-color);--button-variant-gradient-color:var(--button-warning-font-color)}.tyk-button--info-gradient{--button-variant-gradient-left-color:var(--button-info-gradient-start-color);--button-variant-gradient-right-color:var(--button-info-gradient-end-color);--button-variant-gradient-color:var(--button-info-font-color)}.tyk-button--default-gradient{--button-variant-gradient-left-color:var(--button-default-gradient-start-color);--button-variant-gradient-right-color:var(--button-default-gradient-end-color)}.tyk-button--danger-gradient,.tyk-button--default-gradient,.tyk-button--info-gradient,.tyk-button--primary-gradient,.tyk-button--success-gradient,.tyk-button--warning-gradient{background:transparent linear-gradient(to right,var(--button-variant-gradient-left-color),var(--button-variant-gradient-right-color),var(--button-variant-gradient-left-color));background-clip:border-box;background-origin:border-box;background-position:0 0;background-size:200% auto;border-image:linear-gradient(to right,var(--button-variant-gradient-left-color),var(--button-variant-gradient-right-color),var(--button-variant-gradient-left-color)) 0 round;color:var(--button-variant-gradient-color,#fff);&:active,&:active:focus,&:hover{background:transparent linear-gradient(to right,var(--button-variant-gradient-left-color),var(--button-variant-gradient-right-color),var(--button-variant-gradient-left-color));background-clip:border-box;background-position:100% 0;background-size:200% auto;border-image:linear-gradient(to right,var(--button-variant-gradient-left-color),var(--button-variant-gradient-right-color),var(--button-variant-gradient-left-color)) 0 round;&.disabled{background:transparent linear-gradient(to right,var(--button-variant-gradient-left-color),var(--button-variant-gradient-right-color),var(--button-variant-gradient-left-color));background-clip:border-box;background-origin:border-box;background-position:0 0;background-size:200% auto;border-image:linear-gradient(to right,var(--button-variant-gradient-left-color),var(--button-variant-gradient-right-color),var(--button-variant-gradient-left-color)) 0 round;color:var(--button-variant-gradient-color,#fff)}}}.tyk-button--sm{--button-padding-y:var(--padding-y-button-sm);--button-padding-x:var(--padding-x-button-sm);--button-font-size:var(--xs-font-size);--button-line-height:var(--xs-line-height)}.tyk-button--md{--button-padding-y:var(--padding-y-button-md);--button-padding-x:var(--padding-x-button-md);--button-font-size:var(--sm-font-size);--button-line-height:var(--sm-line-height)}.tyk-button--lg{--button-padding-y:var(--padding-y-button-lg);--button-padding-x:var(--padding-x-button-lg);--button-font-size:var(--md-font-size);--button-line-height:var(--line-height-button-md)}.tyk-button,.tyk-button--lg,.tyk-button--md,.tyk-button--sm{border-radius:var(--button-border-radius);font-size:var(--button-font-size);line-height:var(--button-line-height);padding-block:var(--button-padding-y);padding-inline:var(--button-padding-x)}.tyk-button--icon-only{border-radius:var(--general-border-radius);inline-size:24px;line-height:var(--spacing-md);padding:0;&:hover{border-radius:var(--general-border-radius)}}.tyk-button--fit{block-size:auto;inline-size:auto;line-height:normal}.tyk-button--no-style{background:transparent;border:none;color:var(--text-color);&:hover{background:transparent;border:none;color:var(--text-color)}}.tyk-button-group__wrapper{display:inline-block;position:relative;vertical-align:middle;label{font-family:var(--font-family-medium)}+.tyk-button,+.tyk-button-group__wrapper,+.tyk-dropdown,+.tyk-toggle{margin-inline-start:var(--spacing-sm)}.tyk-button-group{display:flex;>.tyk-button-group:not(:first-child){>.tyk-button{border-end-start-radius:0;border-start-start-radius:0}}>.tyk-button-group:not(:last-child){>.tyk-button{border-end-end-radius:0;border-start-end-radius:0}}.tyk-button{border-radius:0;+.tyk-button,+.tyk-dropdown{margin-inline-start:0}&:first-child{border-end-start-radius:var(--spacing-md);border-start-start-radius:var(--spacing-md)}&:last-child{border-end-end-radius:var(--spacing-md);border-start-end-radius:var(--spacing-md);&.tyk-button--icon-only{inline-size:42px}}}}}.tyk-card{background-color:#fff;border:1px solid var(--color-background-base);border-radius:8px;box-shadow:2px 2px 3px var(--color-background-base);display:flex;flex-direction:column;overflow:hidden}.tyk-card__header{align-items:center;display:flex;font-family:var(--font-inter-regular);font-size:var(--sm-font-size);padding-block:var(--spacing-base) 0;padding-inline:var(--spacing-base)}.tyk-card__header-right{margin-inline-start:auto}.tyk-card__title-group{align-items:center;display:grid;grid-template-columns:auto 1fr;.tyk-card__title-icon{align-items:center;block-size:42px;display:flex;grid-row:span 2;inline-size:42px;justify-content:center;margin-inline-end:10px}}.tyk-card__title{display:-webkit-box;font-family:var(--font-inter-bold);font-size:var(--lg-font-size);-webkit-box-orient:vertical;margin:0;overflow:hidden;text-overflow:ellipsis}.tyk-card__title--max-1-lines{-webkit-line-clamp:1}.tyk-card__title--max-2-lines{-webkit-line-clamp:2}.tyk-card__sub-title{font-family:var(--font-inter-medium);font-size:var(--xs-font-size);margin:0}.tyk-card__sub-title+.tyk-card__summary,.tyk-card__title+.tyk-card__summary,.tyk-card__title-group+.tyk-card__summary{margin-block-start:var(--spacing-sm)}.tyk-card__summary{color:var(--text-color);display:-webkit-box;font-family:var(--font-inter-regular);font-size:var(--sm-font-size);-webkit-box-orient:vertical;margin:0;overflow:hidden;text-overflow:ellipsis}.tyk-card__summary--max-1-lines{-webkit-line-clamp:1}.tyk-card__summary--max-2-lines{-webkit-line-clamp:2}.tyk-card__summary--max-3-lines{-webkit-line-clamp:3}.tyk-card__summary--max-4-lines{-webkit-line-clamp:4}.tyk-card__summary--max-5-lines{-webkit-line-clamp:5}.tyk-card__body{display:flex;flex:1 0 auto;flex-grow:1;padding:var(--spacing-base)}.tyk-card__body--align-top{align-items:flex-start}.tyk-card__body--align-center{align-items:center}.tyk-card__body--align-bottom{align-items:flex-end}.tyk-card__footer{border-block-start:1px solid var(--color-background-base);display:flex;justify-content:end;padding:var(--spacing-base)}.tyk-chart__wrapper{position:relative}.tyk-chart--loading-chart,.tyk-chart--no-data{filter:blur(var(--spacing-sm))}.collapse-exit,.collapse-exit-active,.collapse-exit-done{block-size:0}.collapse-wrapper{overflow:hidden;transition:all .2s}.collapse-horizontal-exit,.collapse-horizontal-exit-active,.collapse-horizontal-exit-done{inline-size:0}.collapse-horizontal-enter,.collapse-horizontal-enter-active,.collapse-horizontal-enter-done{inline-size:100%}.tyk-copy-to-clipboard{inset-block-start:-1000px;inset-inline-start:-1000px;position:absolute}:root{--fixed-wrapper-top:0;--fixed-wrapper-left:0;--fixed-wrapper-right:0}.tyk-fixed-wrapper{inset-block-start:var(--fixed-wrapper-top);inset-inline-end:var(--fixed-wrapper-right);inset-inline-start:var(--fixed-wrapper-left);position:sticky;z-index:8}.tyk-fixed-wrapper--scrolled{box-shadow:2px 2px 5px rgba(0,0,0,.1)}.floating-container{inset-block-start:-9999px;overflow:auto;position:fixed;z-index:var(--modal-z-index,1080)}.floating-container__content-wrapper{block-size:100%}.tyk-icon{+.tyk-icon{margin-inline-start:var(--spacing-sm)}}.tyk-infinite-scroller{block-size:100%;overflow:hidden;position:relative;.loading{background:linear-gradient(180deg,hsla(0,0%,100%,0),#fff);display:flex;inline-size:100%;inset-block-end:0;inset-block-start:auto;inset-inline:0;justify-content:center;padding-block:var(--spacing-base);padding-inline:0}}.tyk-infinite-scroller__wrapper{block-size:100%;overflow-y:auto}.tyk-info-note{border-radius:0;position:relative;p+p{margin-block-start:var(--spacing-base)}&:after{block-size:0;border-color:transparent var(--color-info-base) transparent transparent;border-style:solid;border-width:0 var(--spacing-md) var(--spacing-md) 0;content:"";inline-size:0;inset-block-start:0;inset-inline-end:0;position:absolute}.tyk-message{border-radius:0;padding-block:40px}}.tyk-loading__wrapper{background:hsla(0,0%,100%,.6);inset:0;position:absolute;z-index:99}.loader-wrapper{min-block-size:100px;position:relative}.loading{inset-block-start:calc(50% - var(--spacing-sm));inset-inline-start:50%;position:absolute;&.relative{inline-size:100%;inset-block-start:auto;inset-inline-start:auto;padding:25px;position:relative;text-align:center}}.loading-bar{animation:loading 1s ease-in-out infinite;block-size:var(--spacing-md);border-radius:4px;display:inline-block;inline-size:4px;margin-inline-start:2px}.loading-bar:first-child{animation-delay:0;background-color:var(--color-success-base);opacity:1}.loading-bar:nth-child(2){animation-delay:.09s;background-color:var(--color-success-base);opacity:.8}.loading-bar:nth-child(3){animation-delay:.18s;background-color:var(--color-success-base);opacity:.6}.loading-bar:nth-child(4){animation-delay:.27s;background-color:var(--color-success-base);opacity:.4}@keyframes loading{0%{transform:scale(1)}20%{transform:scaleY(2.2)}40%{transform:scale(1)}}.tyk-list{border:var(--general-border-width) solid var(--color-default-light);border-radius:var(--general-border-radius);font-size:var(--sm-font-size);list-style-type:none;margin:0;max-block-size:191px;overflow:auto;padding:0;li{border-block-end:1px solid var(--color-default-light);font-family:var(--font-family-medium);padding-block:var(--spacing-sm);padding-inline:var(--spacing-md);&.tyk-list__item--selected{background-color:var(--color-default-light)}&:last-child{border:none}}}.tyk-list--with-inline-label{display:flex;>label{margin-inline-end:var(--spacing-md)}}.tyk-list--default{border-color:var(--color-default-light)}.tyk-list--primary{border-color:var(--color-primary-base);li{border-color:var(--color-primary-light);color:var(--text-color);&.tyk-list__item--selected{background-color:var(--color-primary-light)}}}.tyk-list--primary-light{border-color:var(--color-primary-light);li{border-color:var(--color-primary-light);color:var(--text-color);&.tyk-list__item--selected{background-color:var(--color-primary-light)}}}.tyk-list--success{border-color:var(--color-success-base);color:var(--color-success-base);li{border-color:var(--color-success-base);&.tyk-list__item--selected{background-color:var(--color-success-light)}}}.tyk-list--danger{border-color:var(--color-danger-base);color:var(--text-color);li{border-color:var(--color-danger-light);&.tyk-list__item--selected{background-color:var(--color-danger-light)}}}ul.tyk-list--inline{align-items:center;display:flex;li{padding-block:0;padding-inline:var(--spacing-sm)}&.tyk-list--with-separator{li:not(:first-child){border-inline-start:1px solid var(--color-default-base)}}}:root{--tyk-message-padding-top:var(--spacing-md);--tyk-message-padding-right:var(--spacing-md);--tyk-message-padding-bottom:var(--spacing-md);--tyk-message-padding-left:var(--spacing-md);--tyk-message-border-radius:var(--general-border-radius);--tyk-message-default-background:var(--color-primary-light);--tyk-message-default-border:var(--color-default-dark);--tyk-message-default-text-color:var(--color-default-dark);--tyk-message-info-background:var(--color-info-light);--tyk-message-info-border:var(--color-info-base);--tyk-message-info-text-color:var(--color-info-base);--tyk-message-success-background:var(--color-success-light);--tyk-message-success-border:var(--color-success-dark);--tyk-message-success-text-color:var(--color-success-dark);--tyk-message-warning-background:var(--color-warning-light);--tyk-message-warning-border:var(--color-warning-base);--tyk-message-warning-text-color:var(--color-warning-dark);--tyk-message-danger-background:var(--color-danger-extra-light);--tyk-message-danger-border:var(--color-danger-base);--tyk-message-danger-text-color:var(--color-danger-dark)}.tyk-message{align-items:center;border-radius:var(--tyk-message-border-radius);display:flex;margin-block-end:var(--spacing-md);padding-block:var(--tyk-message-padding-top) var(--tyk-message-padding-bottom);padding-inline:var(--tyk-message-padding-left) var(--tyk-message-padding-right);>.tyk-icon:first-child{block-size:32px;border-radius:50%;color:#fff;flex-shrink:0;inline-size:32px;&:before{align-items:center;block-size:100%;display:flex;inline-size:100%;justify-content:center}}>.tyk-icon:last-child{cursor:pointer}}.tyk-message__content{flex-grow:1;margin-inline:var(--spacing-md)}.tyk-message--default{--message-variant-background:var(--tyk-message-default-background);--message-variant-border:var(--tyk-message-default-border);--message-variant-color:var(--tyk-message-default-text-color);>.tyk-icon:first-child{transform:rotate(180deg)}}.tyk-message--info{--message-variant-background:var(--tyk-message-info-background);--message-variant-border:var(--tyk-message-info-border);--message-variant-color:var(--tyk-message-info-text-color)}.tyk-message--success{--message-variant-background:var(--tyk-message-success-background);--message-variant-border:var(--tyk-message-success-border);--message-variant-color:var(--tyk-message-success-text-color)}.tyk-message--warning{--message-variant-background:var(--tyk-message-warning-background);--message-variant-border:var(--tyk-message-warning-border);--message-variant-color:var(--tyk-message-warning-text-color)}.tyk-message--danger{--message-variant-background:var(--tyk-message-danger-background);--message-variant-border:var(--tyk-message-danger-border);--message-variant-color:var(--tyk-message-danger-text-color)}.tyk-message--danger,.tyk-message--default,.tyk-message--info,.tyk-message--success,.tyk-message--warning{background-color:var(--message-variant-background);border:var(--general-border-width) solid var(--message-variant-border);color:var(--message-variant-color);&>.tyk-icon:first-child{background-color:var(--message-variant-border)}}:root{--tyk-modal-body-padding:var(--spacing-lg);--tyk-modal-footer-padding:var(--spacing-lg);--tyk-modal-header-padding:var(--spacing-lg);--tyk-modal-borders-color:var(--color-background-light)}.tyk-modal{--theme-header-height:15px;--theme-header-icon-size:65px;align-items:center;inset:0;pointer-events:none;position:fixed;z-index:-1;.tyk-panel{border:var(--general-border-width) solid var(--color-background-dark);box-shadow:none}.tyk-modal__dialog{opacity:0;transition:all .2s ease}&.opened{display:flex;z-index:var(--modal-z-index);.tyk-modal__dialog{display:flex;max-block-size:92vh;opacity:1;pointer-events:all}}&.appear-enter-done{.tyk-modal__dialog{margin-block-start:0;opacity:1}}}.tyk-modal__theme-header{block-size:var(--theme-header-height);border-start-end-radius:var(--general-border-radius);border-start-start-radius:var(--general-border-radius);inset-block-start:-1px;inset-inline:0;position:absolute;.tyk-icon{align-items:center;block-size:var(--theme-header-icon-size);border-radius:50%;color:#fff;display:flex;font-size:var(--xxl-font-size);inline-size:var(--theme-header-icon-size);inset-block-start:calc((var(--theme-header-icon-size) - var(--theme-header-height))/-2);inset-inline-start:calc(50% - var(--theme-header-icon-size)/2);justify-content:center;position:absolute}}.tyk-modal--theme-success{.tyk-modal__theme-header{background-color:var(--color-success-base);.tyk-icon{background-color:var(--color-success-base)}}}.tyk-modal--theme-warning{.tyk-modal__theme-header{background-color:var(--color-warning-base);.tyk-icon{background-color:var(--color-warning-base)}}}.tyk-modal--theme-danger{.tyk-modal__theme-header{background-color:var(--color-danger-base);.tyk-icon{background-color:var(--color-danger-base)}}}.tyk-modal__dialog{inline-size:85%;margin-block-end:0;margin-block-start:-5%;margin-inline:auto;opacity:0;pointer-events:all;transition:all .2s linear}@media only screen and (width >= 768px){.tyk-modal__dialog{inline-size:600px;&.tyk-modal--lg{inline-size:800px}}}.tyk-modal__content{background:#fff;border-radius:var(--general-border-radius);display:flex;flex-direction:column;inline-size:100%;position:relative}.tyk-modal__body{flex:1;overflow:auto;padding-block-end:var(--tyk-modal-body-padding);padding-block-start:calc(var(--tyk-modal-body-padding) + (var(--theme-header-icon-size) - var(--theme-header-height))/2);padding-inline:var(--tyk-modal-body-padding);&.no-padding{padding:0}}.tyk-modal__footer{align-items:center;display:flex;justify-content:flex-end;padding:var(--tyk-modal-footer-padding);>:not(:first-child){margin-inline-start:var(--spacing-xs)}}.tyk-modal__backdrop{background-color:var(--color-default-dark);border:none;display:none;inline-size:100%;inset:0;position:fixed;z-index:var(--modal-z-index) - 1;&.opened{display:block;opacity:.5;transition:opacity .2s ease}&.fade-enter-done{opacity:.5;z-index:9}}.tyk-modal__header{align-items:center;border-block-end:1px solid var(--tyk-modal-borders-color);display:flex;inline-size:100%;padding-block-end:var(--tyk-modal-header-padding);padding-block-start:calc(var(--tyk-modal-header-padding) + (var(--theme-header-icon-size) - var(--theme-header-height))/2);padding-inline:var(--tyk-modal-header-padding);.tyk-modal--theme-none &{padding-block-start:var(--tyk-modal-header-padding)}button{margin-inline-start:auto;padding-block:0;padding-inline:5px}+.tyk-modal__body{padding-block-start:var(--tyk-modal-body-padding)}}.tyk-modal__title{font-family:var(--font-family-medium);font-weight:500;inline-size:100%;margin:0}:root{--navigation-background-color:#fff;--navigation-item-padding-y:var(--spacing-sm);--navigation-item-padding-x:var(--spacing-md);--navigation-item-background-color:#fff;--navigation-item-color:var(--text-color);--navigation-item-hover-background-color:var(--color-primary-base);--navigation-item-hover-color:#fff;--navigation-item-active-background-color:var(--color-primary-dark);--navigation-item-active-color:#fff;--navigation-padding:0}.tyk-navigation{background-color:var(--navigation-background-color);block-size:100%;inline-size:100%;overflow:auto;padding:var(--navigation-padding);.tyk-navigation-item{inline-size:100%;a{color:var(--navigation-item-color);display:flex;padding-block:var(--navigation-item-padding-y);padding-inline:var(--navigation-item-padding-x);text-decoration:none;transition:all .2s ease;&:hover{background-color:var(--navigation-item-hover-background-color);color:var(--navigation-item-hover-color)}&.active{background-color:var(--navigation-item-active-background-color);color:var(--navigation-item-active-color)}}}}:root{--nav-bar-background-color:#fff;--nav-bar-text-color:var(--color-default-base);--nav-bar-padding-left:265px;--nav-bar-animate-left:245px;--nav-bar-top-padding:var(--spacing-sm);--nav-bar-bottom-padding:0;--nav-bar-left-padding:var(--spacing-md);--nav-bar-right-padding:var(--spacing-md);--nav-bar-padding:0 var(--nav-bar-right-padding) 0 var(--nav-bar-left-padding);--nav-bar-top:51px;--nav-bar-header-font-size:var(--xxl-font-size);--nav-bar-header-font-family:var(--headings-font-family-bold);--nav-bar-header-line-height:var(--xxl-line-height);--nav-bar-height:92px;--nav-bar-font-family:var(--font-family-regular)}.tyk-nav-bar{align-items:center;background-color:var(--nav-bar-background-color);border:none;color:var(--nav-bar-text-color);font-family:var(--nav-bar-font-family);inline-size:100%;margin:0;padding:var(--nav-bar-padding);transition:all .2s linear;z-index:8;&.tyk-nav-bar__with-tabs .tyk-tabs--default>ul li button{padding-block-start:0}@media screen and (width <= 1024px){padding-inline-start:var(--spacing-md);.menu-opened &{transform:translate(var(--nav-bar-animate-left))}}h1{color:var(--nav-bar-text-color)}h4{margin:0}.tyk-nav-bar__wrapper{align-items:center;block-size:var(--nav-bar-height);display:flex;flex-wrap:wrap;padding-block-end:var(--nav-bar-bottom-padding);&.tyk-nav-bar--align-top{align-items:flex-start}@media screen and (width <= 1024px){padding-inline-start:0}h1{font-family:var(--nav-bar-header-font-family);font-size:var(--nav-bar-header-font-size);line-height:var(--nav-bar-header-line-height);margin:0}h1,h4{padding-inline-end:var(--spacing-sm)}.tyk-nav-bar__container{align-items:center;display:flex;flex-grow:1;justify-content:space-between}.tyk-nav-bar__left{flex-grow:1}.tyk-nav-bar__right{margin-inline-start:auto}}}.tyk-nav-bar__pre{align-self:flex-end;color:var(--text-color);flex-basis:100%;a{color:var(--text-color);font-family:var(--font-family-bold);font-size:var(--xs-font-size);line-height:var(--xs-line-height)}}:root{--padding-y-panel-header:var(--spacing-sm);--padding-x-panel-header:25px;--padding-y-blank-panel-header:var(--spacing-md);--padding-panel-body:25px;--padding-x-right-panel-collapsable:48px;--padding-x-left-panel-collapsable:var(--padding-x-right-panel-collapsable);--panel-border-radius:0;--panel-default-border-bottom-color:var(--color-background-base);--panel-header-font-size:var(--base-font-size);--panel-header-font-family:var(--font-family-medium);--panel-primary-header-color:var(--color-primary-base);--panel-primary-body-color:#fff;--panel-primary-header-text-color:#fff;--panel-primary-body-text-color:var(--text-color);--panel-primary-label-color:var(--text-color);--panel-primary-border-color:none}.tyk-panel{background:#fff;border-radius:var(--panel-border-radius);font-family:var(--font-family-medium);margin-block-end:20px;position:relative;& &.has-error,&.has-error{border:var(--general-border-width) solid var(--color-danger-base)}.tyk-panel{border:var(--general-border-width) solid var(--color-default-light);box-shadow:none}.tyk-panel__header{border:none;font-size:var(--lg-font-size);line-height:var(--lg-line-height)}}.tyk-panel--blank{&.tyk-panel--collapsed{margin-block-end:20px;.tyk-panel__header{margin-block-end:0}}.tyk-panel__header{background-color:#fff;color:var(--color-default-base);margin-block-end:-20px;padding-block:var(--padding-y-blank-panel-header);padding-inline:var(--padding-x-panel-header)}}.tyk-panel--primary{background-color:transparent;.tyk-panel__header{background-color:var(--panel-primary-header-color);border:var(--panel-primary-border-color);color:var(--panel-primary-header-text-color)}.tyk-panel__body{background-color:var(--panel-primary-body-color);color:var(--panel-primary-body-text-color)}& .tyk-form-group{label{color:var(--panel-primary-label-color)}}.tyk-toggle{.tyk-toggle__label{color:var(--panel-primary-label-color)}}}.tyk-panel--success{.tyk-panel__header{background-color:var(--color-success-base);color:#fff}}.tyk-panel--danger{.tyk-panel__header{background-color:var(--color-danger-base);color:#fff}}.tyk-panel--warning{.tyk-panel__header{background-color:var(--color-warning-base);color:#fff}}.tyk-panel__body{background-color:#fff;border-radius:var(--panel-border-radius);font-family:var(--font-family-regular);padding:var(--padding-panel-body);position:relative;transition:block-size .2s;&~.tyk-panel__header{border-end-end-radius:0;border-end-start-radius:0}&.no-padding{padding:0}}.tyk-panel__header{align-items:center;border-block-end:1px solid var(--panel-default-border-bottom-color);border-radius:var(--panel-border-radius);border-end-end-radius:0;border-end-start-radius:0;display:flex;font-family:var(--panel-header-font-family);overflow:hidden;padding-block:var(--padding-y-panel-header);padding-inline:var(--padding-x-panel-header);position:relative;>.tyk-icon,>.tyk-tooltip__wrapper{margin-inline-start:5px}.tyk-panel--collapsed &{border-end-end-radius:var(--panel-border-radius);border-end-start-radius:var(--panel-border-radius)}&~.tyk-panel__body{border-start-end-radius:0;border-start-start-radius:0}& h3{margin:0}ng-transclude{vertical-align:middle}&.collapsable{cursor:pointer;.tyk-panel__icon-collapse--right &{padding-inline-end:var(--padding-x-right-panel-collapsable)}.tyk-panel__icon-collapse--left &{padding-inline-start:var(--padding-x-left-panel-collapsable)}}.collapsable__arrow-right{inset-inline-end:var(--spacing-sm);padding:var(--spacing-sm)}.collapsable__arrow-left,.collapsable__arrow-right{font-size:var(--sm-font-size);inset-block-start:calc(50% - 21px);position:absolute}.collapsable__arrow-left{inset-inline-start:0;padding-block:8px var(--spacing-sm);padding-inline:20px 0}}.tyk-panel__footer{align-items:center;border-block-start:1px solid var(--color-background-light);display:flex;justify-content:flex-end;padding:var(--spacing-lg);>:not(:first-child){margin-inline-start:5px}}.tyk-pill{align-items:center;border-radius:var(--general-border-radius);display:inline-flex;font-family:var(--font-family-medium);font-size:var(--xs-font-size);line-height:19px;margin:var(--pill-margin);padding-block:6px;padding-inline:var(--spacing-base);i{font-size:var(--xs-font-size)}+.tyk-pill{margin-inline-end:var(--spacing-sm)}button+span,span+button{margin-inline-start:var(--spacing-sm)}&:first-child{margin-inline-end:var(--spacing-sm)}&:last-child{margin-inline-end:0}}.tyk-pill--square{border-radius:8px}.tyk-pill--default{background-color:var(--default-pill-background-color);color:var(--default-pill-color);i{color:var(--default-pill-color)}}.tyk-pill--default-outline{box-shadow:var(--default-outline-pill-box-shadow);color:var(--text-color);i{color:var(--text-color)}}.tyk-pill--primary{background-color:var(--color-primary-base);color:#fff;i{color:var(--default-pill-color)}}.tyk-pill--primary-outline{box-shadow:inset 0 0 0 2px var(--color-primary-base);color:var(--text-color);i{color:var(--text-color)}}.tyk-pill--success{background-color:var(--color-success-base);color:#fff;i{color:#fff}}.tyk-pill--success-outline{box-shadow:inset 0 0 0 2px var(--color-success-base);color:var(--text-color);i{color:var(--text-color)}}.tyk-pill--danger{background-color:var(--color-danger-base);color:#fff;i{color:#fff}}.tyk-pill--danger-outline{box-shadow:inset 0 0 0 2px var(--color-danger-base);color:var(--text-color);i{color:var(--text-color)}}.tyk-pill--warning{background-color:var(--color-warning-base);color:#fff;i{color:#fff}}.tyk-pill--warning-outline{box-shadow:inset 0 0 0 2px var(--color-warning-base);color:var(--text-color);i{color:var(--text-color)}}.tyk-pill--info{background-color:var(--color-info-base);color:#fff;i{color:#fff}}.tyk-pill--info-outline{box-shadow:inset 0 0 0 2px var(--color-info-base);color:var(--text-color);i{color:var(--text-color)}}.tyk-ui-reveal-wrapper{align-items:stretch;block-size:100%;display:flex;flex-direction:column;inline-size:100%;inset-block-end:0;inset-inline-start:0;justify-content:flex-end;pointer-events:none;position:absolute;z-index:1000}.tyk-ui-reveal-wrapper__panel{background-color:#fff;display:flex;flex-direction:column;flex-shrink:0;margin:0;max-block-size:calc(100% - 2rem);overflow:auto;padding:0;pointer-events:all}.tyk-ui-reveal-wrapper__hole{background-color:green;flex-grow:1;inline-size:100%;opacity:0;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:-1}.tyk-ui-reveal-wrapper__gutter{align-items:stretch;background-color:var(--color-primary-base);block-size:2rem;box-shadow:0 5px 10px rgba(0,0,0,.3);cursor:row-resize;display:flex;inline-size:100%;justify-content:space-between;pointer-events:all;position:relative;z-index:2}.tyk-ui-reveal-wrapper__gutter__headerleft,.tyk-ui-reveal-wrapper__gutter__headerright{align-items:center;display:flex;flex:1}.tyk-ui-reveal-wrapper__gutter__headerleft{justify-content:flex-start}.tyk-ui-reveal-wrapper__gutter__headerright{justify-content:flex-end}.tyk-ui-reveal-wrapper__gutter__logo{align-self:center;background-image:url(images/drag.svg);block-size:1rem;inline-size:1rem;padding:.2rem;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:2;&:hover{border:dashed}}:root{--sidebar-background-color:#fff;--sidebar-top:58px;--sidebar-height:calc(100vh - 58px);--sidebar-width:280px;--sidebar-padding:0}.tyk-sidebar{background-color:var(--sidebar-background-color);block-size:var(--sidebar-height);flex:0 0 var(--sidebar-width);inset-block-start:var(--sidebar-top);overflow:auto;padding:var(--sidebar-padding);position:sticky}:root{--table-th-padding:var(--spacing-base) var(--spacing-sm);--table-td-padding-y:var(--spacing-xs);--table-td-padding-x:var(--spacing-sm);--table-first-last-padding:20px;--table-pagination-padding:var(--spacing-md) 25px}.tyk-table{background-color:#fff;border-collapse:collapse;border-radius:var(--general-border-radius);border-spacing:0;inline-size:100%;>thead th{border-inline-end:1px solid var(--color-default-light);color:var(--text-color);font-family:var(--font-family-bold);font-size:var(--sm-font-size);line-height:var(--sm-line-height);padding:var(--table-th-padding);text-transform:uppercase;&:last-child{border-inline-end:none}i{font-size:var(--xs-font-size)}.tyk-button{background:none;color:var(--color-default-base);padding:0}}>tbody tr:hover{background:rgba(var(--color-background-light)/40%)}>tbody td{border-inline-end:1px solid var(--color-default-light);font-family:var(--font-family-regular);font-size:var(--sm-font-size);line-height:var(--sm-line-height);padding-block:var(--table-td-padding-y);padding-inline:var(--table-td-padding-x);vertical-align:middle;&:last-child{border-inline-end:none}&.fit{inline-size:1%;white-space:nowrap}input:not([type=checkbox],[type=radio]){margin-block-start:var(--spacing-base)}a{color:var(--text-color);font-family:var(--font-family-medium)}input[type=checkbox],label{margin:0}}tbody>tr{border-block-start:1px solid var(--color-default-light);border-radius:var(--general-border-radius);transition:all .4s linear;&.clickable{cursor:pointer}}>tbody tr td:first-child,>thead tr th:first-child{padding-inline-start:var(--table-first-last-padding);&.with-icon{padding-inline-start:var(--spacing-base)}}>tbody tr td:last-child,>thead tr th:last-child{padding-inline-end:var(--table-first-last-padding);&.with-icon{padding-inline-end:var(--spacing-base)}}.tyk-pagination{padding:var(--table-pagination-padding);li:first-child{margin-inline-start:auto}}.nowrap{white-space:nowrap}.wrap{word-break:break-all}}.tyk-table__wrapper{border:var(--general-border-width) solid var(--color-default-light);border-radius:var(--general-border-radius);overflow:auto;&.no-innner-horizontal-borders{& .tyk-table>tbody td,& .tyk-table>thead th{border-inline-end:none}}}.tyk-table__wrapper--no-border{border:none}.tyk-table-search{padding-block:var(--spacing-sm) 0;padding-inline:25px;label{font-size:var(--sm-font-size);text-transform:uppercase}}.header-sort{padding-block-start:var(--spacing-xs);padding-inline-start:3px;vertical-align:middle}.new-table-pagination{float:inline-end}.selectable>div{margin-inline-start:var(--spacing-md)}.scrollable{display:block;overflow:auto}.fixed-header{background:#fff;inset-block-start:0;position:sticky}.tyk-table.has-error,.tyk-table__wrapper.has-error{border:var(--general-border-width) solid var(--color-danger-base)!important}:root{--tabs-default-content-padding:25px;--tab-button-padding:var(--spacing-sm) 2px 3px 2px;--tab-button-margin:0;--tabs-font-familly:var(--font-family-medium);--tab-button-color:var(--text-color);--tab-active-button-color:var(--text-color);--tab-border-color:var(--color-success-base)}.tyk-tabs--default{>ul{display:flex;list-style-type:none;margin:0;overflow:auto;padding:0;li{display:flex;margin-inline-end:var(--tab-button-margin);white-space:nowrap;&:last-child{margin-inline-end:0}&.active button,button:hover{border-block-end-color:var(--tab-border-color);color:var(--tab-active-button-color);opacity:1}button{background:none;border:none;border-block-end:4px solid transparent;color:var(--tab-button-color);cursor:pointer;font-family:var(--tabs-font-familly);font-size:var(--sm-font-size);margin-inline-end:var(--spacing-md);opacity:.7;padding:var(--tab-button-padding);transition:all .2s linear;&:focus{outline:none}}}}}.tyk-tab__content{padding:var(--tabs-default-content-padding)}.tyk-toast__container{inset-block-end:0;inset-inline-end:var(--spacing-md);min-inline-size:300px;position:fixed;z-index:11}.tyk-toast__message{position:relative}.tyk-toast-message__button{block-size:var(--spacing-md);color:var(--text-color);inline-size:var(--spacing-md);inset-block-start:var(--spacing-xs);inset-inline-end:var(--spacing-xs);line-height:1;padding:var(--spacing-xs);position:absolute;&:hover{background:hsla(0,0%,100%,.3);color:var(--text-color)}}:root{--tooltip-max-width:450px}.tyk-tooltip{align-items:center;background-color:var(--color-primary-light);border:2px solid var(--color-primary-base);border-radius:var(--general-border-radius);display:flex;max-inline-size:var(--tooltip-max-width);padding:var(--spacing-md);>.tyk-icon:first-child{background-color:var(--color-default-base-light);block-size:32px;border-radius:50%;color:#fff;inline-size:32px;&:before{align-items:center;block-size:100%;display:flex;inline-size:100%;justify-content:center}}>.tyk-icon+.tyk-tooltip__content{margin-inline-start:var(--spacing-md)}>.tyk-icon:last-child{cursor:pointer}}.tyk-tooltip__content{color:var(--color-default-dark);word-break:break-word;word-wrap:break-word;+.tyk-icon{margin-inline-start:var(--spacing-md)}}:root{--tyk-combobox-pill-background:#f0f0f0;--tyk-combobox-pill-color:var(--text-color);--tyk-combobox-list-item-hover-color:var(--form-default-color);--tyk-combobox-list-item-disabled-color:var(--form-default-color)}.tyk-combobox2{--container-trigger-width:40px;--values-default-height:38px;outline:none;&.disabled{.tyk-form-control{background-color:var(--form-control-disabled-background-color);border:var(--form-control-disabled-border)!important;color:var(--form-control-disabled-color)}&:not(.is-expand-mode) .tyk-combobox2__values-container-trigger,.tyk-combobox2__current-values .tyk-pill--combobox button,.tyk-form-control{cursor:not-allowed}.tyk-combobox2__entry-field{background-color:transparent;cursor:not-allowed}}.tyk-form-control{block-size:auto;display:flex;flex-direction:row;min-block-size:40px;padding:0;position:relative;&:focus-within{border:var(--form-control-border-focus);outline:none}}}.tyk-combobox2__current-values{display:flex;flex-grow:1;flex-wrap:wrap;max-inline-size:calc(100% - var(--container-trigger-width));padding-block:2px;padding-inline-start:var(--spacing-sm);&.expand-mode{max-block-size:1000px;overflow:hidden;transition:max-block-size 1s ease}.tyk-pill--combobox{background-color:var(--tyk-combobox-pill-background);border-radius:var(--spacing-sm);color:var(--tyk-combobox-pill-color);margin-block:3px;max-block-size:26px;max-inline-size:100%;padding-block:var(--spacing-xs);padding-inline:var(--spacing-sm);button{background:none;border:none;cursor:pointer;inline-size:23px;outline:none;+span{margin-inline-start:0}}span{overflow:hidden;text-overflow:ellipsis}i{margin-inline-end:var(--spacing-xs)}}}.tyk-combobox2__current-values--collapsed.expand-mode{max-block-size:var(--values-default-height);transition:max-block-size .2s ease}.tyk-combobox2__entry-field{border:none;line-height:30px;&:active,&:focus{border:none;outline:none}&::placeholder{color:var(--form-control-placeholder-color);font-family:var(--form-control-placeholder-font-family)}}.tyk-combobox2__text-value{font-family:var(--font-family-medium);font-size:var(--sm-font-size);inline-size:100%;line-height:1;outline:none;overflow:hidden;padding-block:9px;padding-inline:5px;text-overflow:ellipsis;&.overflow-single{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}&.is-placeholder{color:var(--form-control-placeholder-color);font-family:var(--form-control-placeholder-font-family)}}.tyk-combobox2__values-container-trigger{align-items:center;color:var(--text-color);cursor:pointer;display:flex;flex-basis:var(--container-trigger-width);justify-content:center;outline:none;position:relative;transition:all .2s;.tyk-icon{block-size:14px}}.tyk-combobox2__values-container-trigger--expanded{transform:rotate(180deg)}.tyk-form-group--rounded-corners .tyk-combobox2-disabled-overlay{border-radius:calc(var(--general-border-radius) - 2px)}.tyk-combobox2__combobox-dropdown{background-color:#fff;border:var(--general-border-width) solid var(--form-default-color);display:flex;flex-direction:column;&.tyk-form-group--rounded-corners{border-radius:var(--general-border-radius);z-index:1081}.tyk-combobox2__combobox-search{background-color:#fff;inset-block-start:0;padding-block:var(--spacing-sm);padding-inline:var(--spacing-md);position:sticky;+.combobox-list{border-block-start:1px solid var(--form-default-color)}}.tyk-combobox2__combobox-list{max-block-size:255px;li{cursor:pointer;display:flex;font-family:var(--font-family-medium);padding-block:9px;padding-inline:var(--spacing-md);transition:all .2s;&.active,&:hover{background-color:var(--tyk-combobox-list-item-hover-color)}&.disabled{background-color:initial;color:var(--tyk-combobox-list-item-disabled-color)}+li{border-block-start:1px solid var(--form-default-color)}i{margin-inline-end:var(--spacing-xs)}.item-name{line-height:16px;overflow:hidden;text-overflow:ellipsis}}}}:root{--tyk-checkbox-theme-light-label-color:#fff;--tyk-checkbox-theme-light-label-disabled-color:#fff;--tyk-checkbox-theme-dark-label-color:var(--text-color);--tyk-checkbox-theme-dark-label-disabled-color:var(--text-color)}.tyk-checkbox{label{--label-indent:20px;align-items:flex-start;display:flex;padding-inline-start:var(--label-indent);input{margin-block-start:5px;margin-inline-start:calc(var(--label-indent)*-1)}}}.tyk-checkbox--theme-light{label{color:var(--tyk-checkbox-theme-light-label-color)}&.tyk-checkbox--is-disabled{label{color:var(--tyk-checkbox-theme-light-label-disabled-color)}}}.tyk-checkbox--is-disabled{label,p{cursor:not-allowed;opacity:.5}}.flatpickr-calendar{-webkit-animation:none;animation:none;background:transparent;background:#fff;border:0;border-radius:5px;-webkit-box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,.08);box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,.08);-webkit-box-sizing:border-box;box-sizing:border-box;direction:ltr;display:none;font-size:14px;line-height:24px;opacity:0;padding:0;position:absolute;text-align:center;-ms-touch-action:manipulation;touch-action:manipulation;visibility:hidden;width:307.875px}.flatpickr-calendar.inline,.flatpickr-calendar.open{max-height:640px;opacity:1;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{-webkit-animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1);animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{display:block;z-index:999}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){-webkit-box-shadow:none!important;box-shadow:none!important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){-webkit-box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-calendar .hasTime .dayContainer,.flatpickr-calendar .hasWeeks .dayContainer{border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.hasTime .flatpickr-time{border-top:1px solid #e6e6e6;height:40px}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:after,.flatpickr-calendar:before{border:solid transparent;content:"";display:block;height:0;left:22px;pointer-events:none;position:absolute;width:0}.flatpickr-calendar.arrowRight:after,.flatpickr-calendar.arrowRight:before,.flatpickr-calendar.rightMost:after,.flatpickr-calendar.rightMost:before{left:auto;right:22px}.flatpickr-calendar.arrowCenter:after,.flatpickr-calendar.arrowCenter:before{left:50%;right:50%}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:after,.flatpickr-calendar.arrowTop:before{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:after,.flatpickr-calendar.arrowBottom:before{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{display:inline-block;position:relative}.flatpickr-months{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-months .flatpickr-month{background:transparent;line-height:1;overflow:hidden;position:relative;text-align:center;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.flatpickr-months .flatpickr-month,.flatpickr-months .flatpickr-next-month,.flatpickr-months .flatpickr-prev-month{color:rgba(0,0,0,.9);fill:rgba(0,0,0,.9);height:34px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.flatpickr-months .flatpickr-next-month,.flatpickr-months .flatpickr-prev-month{cursor:pointer;padding:10px;position:absolute;text-decoration:none;top:0;z-index:3}.flatpickr-months .flatpickr-next-month.flatpickr-disabled,.flatpickr-months .flatpickr-prev-month.flatpickr-disabled{display:none}.flatpickr-months .flatpickr-next-month i,.flatpickr-months .flatpickr-prev-month i{position:relative}.flatpickr-months .flatpickr-next-month.flatpickr-prev-month,.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month{left:0}.flatpickr-months .flatpickr-next-month.flatpickr-next-month,.flatpickr-months .flatpickr-prev-month.flatpickr-next-month{right:0}.flatpickr-months .flatpickr-next-month:hover,.flatpickr-months .flatpickr-prev-month:hover{color:#959ea9}.flatpickr-months .flatpickr-next-month:hover svg,.flatpickr-months .flatpickr-prev-month:hover svg{fill:#f64747}.flatpickr-months .flatpickr-next-month svg,.flatpickr-months .flatpickr-prev-month svg{height:14px;width:14px}.flatpickr-months .flatpickr-next-month svg path,.flatpickr-months .flatpickr-prev-month svg path{-webkit-transition:fill .1s;transition:fill .1s;fill:inherit}.numInputWrapper{height:auto;position:relative}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper input::-webkit-inner-spin-button,.numInputWrapper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.numInputWrapper span{border:1px solid rgba(57,57,57,.15);-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer;height:50%;line-height:50%;opacity:0;padding:0 4px 0 2px;position:absolute;right:0;width:14px}.numInputWrapper span:hover{background:rgba(0,0,0,.1)}.numInputWrapper span:active{background:rgba(0,0,0,.2)}.numInputWrapper span:after{content:"";display:block;position:absolute}.numInputWrapper span.arrowUp{border-bottom:0;top:0}.numInputWrapper span.arrowUp:after{border-bottom:4px solid rgba(57,57,57,.6);border-left:4px solid transparent;border-right:4px solid transparent;top:26%}.numInputWrapper span.arrowDown{top:50%}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(57,57,57,.6);top:40%}.numInputWrapper span svg{height:auto;width:inherit}.numInputWrapper span svg path{fill:rgba(0,0,0,.5)}.numInputWrapper:hover{background:rgba(0,0,0,.05)}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{color:inherit;display:inline-block;font-size:135%;font-weight:300;height:34px;left:12.5%;line-height:inherit;line-height:1;padding:7.48px 0 0;position:absolute;text-align:center;-webkit-transform:translateZ(0);transform:translateZ(0);width:75%}.flatpickr-current-month span.cur-month{color:inherit;display:inline-block;font-family:inherit;font-weight:700;margin-left:.5ch;padding:0}.flatpickr-current-month span.cur-month:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .numInputWrapper{display:inline-block;width:6ch;width:7ch\0}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:rgba(0,0,0,.9)}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:rgba(0,0,0,.9)}.flatpickr-current-month input.cur-year{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;background:transparent;border:0;border-radius:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;cursor:text;display:inline-block;font-family:inherit;font-size:inherit;font-weight:300;height:auto;line-height:inherit;margin:0;padding:0 0 0 .5ch;vertical-align:initial}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{background:transparent;color:rgba(0,0,0,.5);font-size:100%;pointer-events:none}.flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;-webkit-appearance:menulist;-moz-appearance:menulist;background:transparent;border:none;border-radius:0;box-sizing:border-box;-webkit-box-sizing:border-box;color:inherit;cursor:pointer;font-family:inherit;font-size:inherit;font-weight:300;height:auto;line-height:inherit;margin:-1px 0 0;outline:none;padding:0 0 0 .5ch;position:relative;vertical-align:initial;width:auto}.flatpickr-current-month .flatpickr-monthDropdown-months:active,.flatpickr-current-month .flatpickr-monthDropdown-months:focus{outline:none}.flatpickr-current-month .flatpickr-monthDropdown-months:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:transparent;outline:none;padding:0}.flatpickr-weekdays{background:transparent;overflow:hidden;text-align:center;width:100%;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:28px}.flatpickr-weekdays,.flatpickr-weekdays .flatpickr-weekdaycontainer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-weekdays .flatpickr-weekdaycontainer,span.flatpickr-weekday{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}span.flatpickr-weekday{background:transparent;color:rgba(0,0,0,.54);cursor:default;display:block;font-size:90%;font-weight:bolder;line-height:1;margin:0;text-align:center}.dayContainer,.flatpickr-weeks{padding:1px 0 0}.flatpickr-days{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;overflow:hidden;position:relative;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;width:307.875px}.flatpickr-days:focus{outline:0}.dayContainer{-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;display:-ms-flexbox;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-wrap:wrap;max-width:307.875px;min-width:307.875px;outline:0;padding:0;text-align:left;width:307.875px;-ms-flex-pack:justify;-webkit-justify-content:space-around;justify-content:space-around;opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}.dayContainer+.dayContainer{-webkit-box-shadow:-1px 0 0 #e6e6e6;box-shadow:-1px 0 0 #e6e6e6}.flatpickr-day{background:none;border:1px solid transparent;border-radius:150px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#393939;cursor:pointer;-webkit-flex-basis:14.2857143%;font-weight:400;width:14.2857143%;-ms-flex-preferred-size:14.2857143%;display:inline-block;flex-basis:14.2857143%;height:39px;line-height:39px;margin:0;max-width:39px;position:relative;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center}.flatpickr-day.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day.nextMonthDay:focus,.flatpickr-day.nextMonthDay:hover,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.today.inRange,.flatpickr-day:focus,.flatpickr-day:hover{background:#e6e6e6;border-color:#e6e6e6;cursor:pointer;outline:0}.flatpickr-day.today{border-color:#959ea9}.flatpickr-day.today:focus,.flatpickr-day.today:hover{background:#959ea9;border-color:#959ea9;color:#fff}.flatpickr-day.endRange,.flatpickr-day.endRange.inRange,.flatpickr-day.endRange.nextMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.endRange:focus,.flatpickr-day.endRange:hover,.flatpickr-day.selected,.flatpickr-day.selected.inRange,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.selected:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange,.flatpickr-day.startRange.inRange,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.startRange:focus,.flatpickr-day.startRange:hover{background:#569ff7;border-color:#569ff7;-webkit-box-shadow:none;box-shadow:none;color:#fff}.flatpickr-day.endRange.startRange,.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.endRange.endRange,.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)){-webkit-box-shadow:-10px 0 0 #569ff7;box-shadow:-10px 0 0 #569ff7}.flatpickr-day.endRange.startRange.endRange,.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;-webkit-box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.nextMonthDay,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.prevMonthDay{background:transparent;border-color:transparent;color:rgba(57,57,57,.3);cursor:default}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{color:rgba(57,57,57,.1);cursor:not-allowed}.flatpickr-day.week.selected{border-radius:0;-webkit-box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7;box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{float:left}.flatpickr-weekwrapper .flatpickr-weeks{-webkit-box-shadow:1px 0 0 #e6e6e6;box-shadow:1px 0 0 #e6e6e6;padding:0 12px}.flatpickr-weekwrapper .flatpickr-weekday{float:none;line-height:28px;width:100%}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{background:transparent;border:none;color:rgba(57,57,57,.3);cursor:default;display:block;max-width:none;width:100%}.flatpickr-innerContainer{display:block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;overflow:hidden}.flatpickr-innerContainer,.flatpickr-rContainer{-webkit-box-sizing:border-box;box-sizing:border-box}.flatpickr-rContainer{display:inline-block;padding:0}.flatpickr-time{-webkit-box-sizing:border-box;box-sizing:border-box;display:block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:0;line-height:40px;max-height:40px;outline:0;overflow:hidden;text-align:center}.flatpickr-time:after{clear:both;content:"";display:table}.flatpickr-time .numInputWrapper{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;float:left;height:40px;width:40%}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#393939}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#393939}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;background:transparent;border:0;border-radius:0;-webkit-box-shadow:none;box-shadow:none;-webkit-box-sizing:border-box;box-sizing:border-box;color:#393939;font-size:14px;height:inherit;line-height:inherit;margin:0;padding:0;position:relative;text-align:center}.flatpickr-time input.flatpickr-hour{font-weight:700}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{border:0;outline:0}.flatpickr-time .flatpickr-am-pm,.flatpickr-time .flatpickr-time-separator{-webkit-align-self:center;color:#393939;float:left;font-weight:700;height:inherit;line-height:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:2%;-ms-flex-item-align:center;align-self:center}.flatpickr-time .flatpickr-am-pm{cursor:pointer;font-weight:400;outline:0;text-align:center;width:18%}.flatpickr-time .flatpickr-am-pm:focus,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time input:hover{background:#eee}.flatpickr-input[readonly]{cursor:pointer}@-webkit-keyframes fpFadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fpFadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.flatpickr-day.endRange,.flatpickr-day.endRange.inRange,.flatpickr-day.endRange.nextMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.endRange:focus,.flatpickr-day.endRange:hover,.flatpickr-day.selected,.flatpickr-day.selected.inRange,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.selected:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange,.flatpickr-day.startRange.inRange,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.startRange:focus,.flatpickr-day.startRange:hover{background:var(--color-success-base)!important;border-color:var(--color-success-base)!important}:root{--tyk-dropdown-item-background:#fff;--tyk-dropdown-item-background-hover:var(--color-background-light);--tyk-dropdown-item-border-color:#fff;--tyk-dropdown-item-text-color:var(--text-color);--tyk-dropdown-item-hover-text-color:var(--text-color)}.tyk-dropdown{display:inline-block;+.tyk-button,+.tyk-dropdown,+.tyk-toggle{margin-inline-start:var(--spacing-sm)}label{display:block}&.theme-list .tyk-button{background:#fff;border:var(--general-border-width) solid var(--color-default-base);border-radius:var(--general-border-radius);color:var(--text-color);&:active,&:active:focus,&:focus,&:hover{background:#fff;border-color:var(--color-background-dark);color:var(--text-color)}}}.tyk-dropdown--block{inset-inline:var(--spacing-md)}.tyk-dropdown--relative{inset-inline:auto}.tyk-dropdown--custom{padding-block:var(--spacing-md);padding-inline:25px}.tyk-dropdown__trigger{position:relative}.tyk-dropdown-menu{background:var(--tyk-dropdown-item-background);border:var(--general-border-width) solid var(--color-default-light);border-radius:var(--general-border-radius);filter:drop-shadow(1px 2px 1px rgba(0 0 0/10%));list-style-type:none;margin-block:3px 0;margin-inline:0;overflow:hidden;padding:0;z-index:1081;&.tyk-dropdown--scrollable{overflow:auto}.tyk-panel{margin:0}&.opened{display:flex;flex-direction:column;position:absolute}>li{background:var(--tyk-dropdown-item-background);border-block-end:1px solid var(--tyk-dropdown-item-border-color);display:flex;position:relative;z-index:7;&:last-child{border:none}i{inset-block-start:9px;inset-inline-start:7px;position:absolute}}}.tyk-dropdown-menu>li>a{color:var(--tyk-dropdown-item-text-color);cursor:pointer;display:flex;font-size:12px;inline-size:100%;padding-block:7px;padding-inline:24px;text-decoration:none;text-transform:uppercase;&:hover{background-color:var(--tyk-dropdown-item-background-hover);color:var(--tyk-dropdown-item-hover-text-color);text-decoration:none}.badge{background:var(--text-color);color:#fff;font-size:var(--spacing-sm);margin-block-start:-4px;margin-inline-start:6px}}.tyk-dropdown--relative.opened{position:relative}.dropdown__menu{.tyk-list{background:#fff;max-block-size:none;li{padding:0;&:hover{background:var(--primary-light)}a{cursor:pointer;display:block;padding-block:10px;padding-inline:20px;text-decoration:none}}}}.tyk-editable-list__submit-btn{white-space:nowrap}.tyk-editable-list__form{align-items:center;display:flex;.tyk-form-group{margin-block-end:0}span.inline{margin-block-start:0}>span{margin-inline-start:var(--spacing-base);&.inline-with-label{align-self:flex-end}}}.tyk-editable-list__form--sticked{margin-inline-start:0;button{border-end-end-radius:3px;border-end-start-radius:0;border-start-end-radius:3px;border-start-start-radius:0;padding-block:var(--spacing-sm) 11px;padding-inline:var(--spacing-base)}}.tyk-editable-list__header{background-color:#fff;border:var(--general-border-width) solid var(--color-default-light);border-block-end:1px solid var(--color-default-light)!important;border-start-end-radius:var(--general-border-radius);border-start-start-radius:var(--general-border-radius);color:var(--text-color)!important;font-family:var(--font-family-bold);font-size:11px;margin-block-start:var(--spacing-sm);padding-block:var(--spacing-base);text-transform:uppercase;&+.tyk-editable-list-items.table{border-block-start:none;border-start-end-radius:0;border-start-start-radius:0}.tyk-row{margin:0}}.tyk-editable-list-items{list-style:none;overflow:hidden;padding-block:var(--spacing-md) 0;padding-inline:0;.edit-mode-wrapper.table button{margin-block-start:23px}.tyk-row{margin:0}button[disabled]{cursor:not-allowed}&.tyk-editable-list-items--inline{align-items:center;color:var(--text-color);display:flex;flex-wrap:wrap}li{border-block-start:1px solid var(--color-default-light);transition:all .2s linear;&.tyk-editable-list-item--inline{background-color:var(--color-default-light);border:none;border-radius:25px;color:#fff;float:inline-start;font-family:var(--font-family-medium);margin-block-end:var(--spacing-sm);margin-inline-end:var(--spacing-base);padding-block:0;padding-inline:var(--spacing-base);white-space:nowrap;.tyk-editable-list-item__text{color:var(--text-color);padding-block:var(--spacing-xs);padding-inline:0}.tyk-editable-list-action__button.on-edit{margin-block-start:0}}&:first-child{border-block-start:none}.tyk-editable-list-item__text{display:flex;padding-block:var(--spacing-sm);padding-inline:0;>span{flex-grow:1}>div:first-child{flex-grow:1;.error-message{margin:0}}}.tyk-editable-list-items{overflow:hidden;padding-block-end:var(--spacing-sm)}.tyk-editable-list{background:var(--background-light);border-block-start:var(--spacing-xs) solid var(--background-dark);padding-block:var(--spacing-sm);padding-inline:var(--spacing-base)}}.tyk-editable-list-item__text{display:block;word-wrap:break-word;word-break:break-all}.tyk-editable-list-action__button{background:transparent;border:none;&.on-edit{margin-inline-start:var(--spacing-sm)}}.tyk-editable-list-item-controls{flex-grow:0;text-align:end}}.tyk-editable-list-item__controls{text-align:end}.tyk-editable-list-items.table{background-color:#fff;border:var(--general-border-width) solid var(--color-default-light);border-radius:var(--general-border-radius);padding:0!important;li{border-color:var(--color-default-light);&:hover{background:var(--color-background-light)}}.tyk-editable-list-item__text{background:transparent}.tyk-editable-list-action__button{border-radius:6px;cursor:pointer;margin-inline-end:var(--spacing-sm)}}.editable-list__header{align-items:center;display:flex;margin-block-end:10px;.tyk-button{margin-inline-start:auto}}.editable-list__wrapper.has-error .editable-list__list{border:var(--general-border-width) solid var(--color-danger-base)}.editable-list__list{border:var(--general-border-width) solid var(--color-default-light);border-radius:var(--general-border-radius);display:flex;flex-direction:column-reverse}.editable-list__item{border-block-end:1px solid var(--color-default-light);display:flex;flex-wrap:nowrap;inline-size:100%;&:first-child{border-block-end:none}}.editable-list__item-header{border-block-end:1px solid var(--color-default-light);color:var(--text-color);font-family:var(--font-family-bold);font-size:var(--sm-font-size);line-height:var(--sm-line-height);text-transform:uppercase;.editable-list__item-cell{padding:10px}}.editable-list__item-cell{border-inline-start:1px solid var(--color-default-light);overflow:hidden;padding-block:0;padding-inline:10px;.tyk-form-control--readonly{overflow:hidden;text-overflow:ellipsis;word-break:break-all}&:first-child{border-inline-start:none;padding-inline-start:15px}&:last-child{padding-inline-end:15px}.tyk-form-group{inline-size:100%;margin-block:10px;margin-inline:0}}.editable-list__item--size-1{display:flex;flex-grow:2;inline-size:8.3333333333%}.editable-list__item--size-2{display:flex;flex-grow:3;inline-size:16.6666666667%}.editable-list__item--size-3{display:flex;flex-grow:4;inline-size:25%}.editable-list__item--size-4{display:flex;flex-grow:5;inline-size:33.3333333333%}.editable-list__item--size-5{display:flex;flex-grow:6;inline-size:41.6666666667%}.editable-list__item--size-6{display:flex;flex-grow:7;inline-size:50%}.editable-list__item--size-7{display:flex;flex-grow:8;inline-size:58.3333333333%}.editable-list__item--size-8{display:flex;flex-grow:9;inline-size:66.6666666667%}.editable-list__item--size-9{display:flex;flex-grow:10;inline-size:75%}.editable-list__item--size-10{display:flex;flex-grow:11;inline-size:83.3333333333%}.editable-list__item--size-11{display:flex;flex-grow:12;inline-size:91.6666666667%}.editable-list__item--size-12{display:flex;flex-grow:13;inline-size:100%}.editable-list__item--size-fit{inline-size:fit-content}.editable-list__item-action{align-items:flex-start;display:flex;inline-size:100px;justify-content:center;.tyk-button{margin-block-start:20px}}.editable-list__item-action--read-only{align-items:center;color:var(--color-default-light);.tyk-button{margin-block-start:0}}.tyk-file-input__wrapper{position:relative;>input{padding-block:6px;padding-inline:var(--spacing-md)}>button{background:none;border:none;cursor:pointer;inset-block-start:9px;inset-inline-end:var(--spacing-base);position:absolute}}.tyk-multiselect{align-items:flex-start;border-radius:var(--general-border-radius);display:flex;flex-wrap:wrap;inline-size:100%;margin-block-end:var(--spacing-md);.input-group .input-group-addon+.form-control{border-end-end-radius:0!important;border-end-start-radius:0!important;border-width:1px!important;border-inline-start:none!important;border-start-end-radius:0!important;border-start-start-radius:0!important}.input-group .input-group-addon{background:transparent!important;border-end-end-radius:0!important;border-end-start-radius:0!important;border-width:1px!important;border-inline-end:0!important;border-start-end-radius:0!important;border-start-start-radius:0!important}&.has-error{border:var(--general-border-width) solid var(--color-danger-base)}.tyk-form-group{margin:0}.tyk-multiselect-item__controls{display:flex;flex-wrap:nowrap;margin-inline-start:auto;.tyk-button{color:var(--text-color);margin-inline-start:var(--spacing-xs);&:last-child{margin-inline-start:0}}}}.tyk-multiselect__header{background-color:var(--color-default-base);border-start-end-radius:var(--general-border-radius);border-start-start-radius:var(--general-border-radius);color:#fff;display:flex;inline-size:100%;>div{inline-size:50%;padding-block:var(--spacing-sm);padding-inline:var(--spacing-base)}}.tyk-multiselect__panel-wrapper{block-size:265px;border:var(--form-control-border);border-block-start:none;border-end-end-radius:var(--general-border-radius);border-end-start-radius:var(--general-border-radius);display:flex;flex:1;inline-size:100%}.tyk-multiselect__panel{display:flex;flex-direction:column;inline-size:calc(50% + 1px);margin-block:0;margin-inline:-1px 0;position:relative;&:last-child{border-inline-start:var(--form-control-border);.tyk-form-group{inline-size:calc(100% + 2px);margin-inline-start:-1px}}.tyk-message{margin-block:var(--spacing-md) 0;margin-inline:var(--spacing-md)}}.tyk-multiselect__list{list-style-type:none;margin:0;padding:0;>li{border-block-end:var(--form-control-border);display:flex;flex-direction:column;padding-block:var(--spacing-sm);padding-inline:var(--spacing-base);>div{align-items:start;display:flex;inline-size:100%}.loading{justify-content:center}&:last-child{border-block-end:none}}}.tyk-multiselect__list--scroll{block-size:100%;overflow-y:auto}.tyk-multiselect-item__name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:root{--pagination-border-radius:var(--general-border-radius);--pagination-button-padding:var(--spacing-sm) var(--spacing-base)}.tyk-pagination{display:flex;list-style-type:none;margin-block:var(--spacing-sm);margin-inline:0;padding:0;li{align-items:center;display:flex}li:first-child button{border-end-start-radius:var(--pagination-border-radius);border-start-start-radius:var(--pagination-border-radius)}li:last-child button{border-end-end-radius:var(--pagination-border-radius);border-start-end-radius:var(--pagination-border-radius)}span{margin-block:0;margin-inline:var(--spacing-sm)}button{background:#fff;border:none;color:var(--color-default-base);cursor:pointer;font-family:var(--font-family-bold);font-size:var(--sm-font-size);margin-inline-start:-1px;padding:var(--pagination-button-padding);&:hover{background-color:var(--color-success-light)}}.active button{background-color:var(--color-success-base);color:#fff}}:root{--radio-description-text-padding:0 0 0 20px}.tyk-radio{label{align-items:center;display:flex}}.tyk-radio--is-disabled{label,p{cursor:not-allowed;opacity:.5}}.tyk-radio__description-text{padding:var(--radio-description-text-padding)}.tyk-select{background:transparent url(images/arrow_down.svg) no-repeat calc(100% - 15px);background-size:var(--spacing-base) var(--spacing-base)}.tyk-selectable-list{inline-size:100%;margin-block-end:var(--spacing-md);li:not(.tyk-selectable-list__no-items-message){font-family:var(--font-family-medium);padding:0;.tyk-message{margin-block-end:0}label{font-family:var(--font-family-medium);margin:0}>label{align-items:center;cursor:pointer;display:flex;padding-block:var(--spacing-sm);padding-inline:var(--spacing-md);input[type=checkbox]{margin-inline-start:auto}}}}.tyk-selectable-list__item--with-icon{& input[type=checkbox]{visibility:hidden}}textarea.tyk-form-control{block-size:auto}:root{--toggle-font-family:var(--font-family-bold);--toggle-list-background-color:var(--color-background-light);--toggle-list-text-color:#fff;--toggle-list-background-color-on-dark:#fff;--toggle-list-text-color-on-dark:var(--text-color);--toggle-top:4px;--toggle-bottom:4px;--toggle-label-font-size:var(--sm-font-size);--toggle-label-font-family:var(--font-family-medium);--toggle-label-color:var(--label-color);--toggle-padding:0}.tyk-toggle{display:inline-flex;flex-wrap:wrap;font-family:var(--toggle-font-family);font-size:var(--sm-font-size);line-height:var(--sm-line-height);white-space:nowrap;&.block{inline-size:100%;margin-block-end:var(--spacing-md);+.tyk-toggle{margin-inline-start:0}}&.inline-label{align-items:center;flex-wrap:nowrap}+.tyk-button,+.tyk-dropdown,+.tyk-toggle{margin-inline-start:var(--spacing-sm)}}.tyk-toggle__list--has-error{border:var(--error-border)}.tyk-toggle .tyk-toggle__label{color:var(--toggle-label-color);display:block;font-family:var(--toggle-label-font-family);font-size:var(--toggle-label-font-size);inline-size:100%;padding:var(--toggle-padding)}.tyk-toggle.inline-label .tyk-toggle__label{inline-size:auto;margin-inline-end:var(--spacing-sm)}.tyk-toggle--disabled-true{cursor:not-allowed;opacity:.7}.tyk-toggle--column{.tyk-toggle__list--separated{display:flex;flex-direction:column;margin-inline-end:var(--spacing-md);.tyk-toggle__item{background-color:var(--toggle-list-background-color);margin-inline-end:auto}}}.tyk-toggle__list{background:var(--toggle-list-background-color);border-radius:25px;display:flex;list-style-type:none;margin:0;padding:0;position:relative}.tyk-toggle__list--separated{background:transparent;flex-wrap:wrap}.tyk-toggle--on-dark .tyk-toggle__list{background:var(--toggle-list-background-color-on-dark)}.tyk-toggle--default .tyk-toggle__item--active span{color:#fff}.tyk-toggle--default .tyk-toggle__list--separated .tyk-toggle__item--active,.tyk-toggle--default .tyk-toggle__list--single .tyk-toggle__item--active{background-color:var(--button-default-color);border:var(--general-border-width) solid transparent;color:#fff;&:hover{background-color:var(--button-default-color)}&:hover,span{color:#fff}}.tyk-toggle--primary .tyk-toggle__item--active span{color:#fff}.tyk-toggle--primary .tyk-toggle__list--separated .tyk-toggle__item--active,.tyk-toggle--primary .tyk-toggle__list--single .tyk-toggle__item--active{background-color:var(--color-primary-base);border:var(--general-border-width) solid transparent;color:#fff;&:hover{background-color:var(--color-primary-base)}&:hover,span{color:#fff}}.tyk-toggle--success .tyk-toggle__item--active span{color:#fff}.tyk-toggle--success .tyk-toggle__list--separated .tyk-toggle__item--active,.tyk-toggle--success .tyk-toggle__list--single .tyk-toggle__item--active{background-color:var(--color-success-dark);border:var(--general-border-width) solid transparent;color:#fff;&:hover{background-color:var(--color-success-dark)}&:hover,span{color:#fff}}.tyk-toggle--danger .tyk-toggle__item--active span{color:#fff}.tyk-toggle--danger .tyk-toggle__list--separated .tyk-toggle__item--active,.tyk-toggle--danger .tyk-toggle__list--single .tyk-toggle__item--active{background-color:var(--color-danger-base);border:var(--general-border-width) solid transparent;color:#fff;&:hover{background-color:var(--color-danger-base);color:#fff}}.tyk-toggle--warning .tyk-toggle__item--active span{color:var(--text-color)}.tyk-toggle--warning .tyk-toggle__list--separated .tyk-toggle__item--active,.tyk-toggle--warning .tyk-toggle__list--single .tyk-toggle__item--active{background-color:var(--color-warning-base);border:var(--general-border-width) solid transparent;color:var(--text-color);&:hover{background-color:var(--color-warning-base);color:var(--text-color)}}.tyk-toggle--primary-gradient .tyk-toggle__item--active span{color:#fff}.tyk-toggle--primary-gradient .tyk-toggle__list--separated .tyk-toggle__item--active,.tyk-toggle--primary-gradient .tyk-toggle__list--single .tyk-toggle__item--active{background:transparent linear-gradient(to right,var(--color-primary-base),var(--color-primary-dark),var(--color-primary-base));background-clip:border-box;background-origin:border-box;background-position:0 0;background-size:200% auto;border-image:linear-gradient(to right,var(--color-primary-base),var(--color-primary-dark),var(--color-primary-base)) 0 round;color:#fff;span{color:#fff}}.tyk-toggle--success-gradient .tyk-toggle__item--active span{color:#fff}.tyk-toggle--success-gradient .tyk-toggle__list--separated .tyk-toggle__item--active,.tyk-toggle--success-gradient .tyk-toggle__list--single .tyk-toggle__item--active{background:transparent linear-gradient(to right,var(--color-success-base),var(--color-success-dark),var(--color-success-base));background-clip:border-box;background-origin:border-box;background-position:0 0;background-size:200% auto;border-image:linear-gradient(to right,var(--color-success-base),var(--color-success-dark),var(--color-success-base)) 0 round;color:#fff;span{color:#fff}}.tyk-toggle--danger-gradient .tyk-toggle__item--active span{color:#fff}.tyk-toggle--danger-gradient .tyk-toggle__list--separated .tyk-toggle__item--active,.tyk-toggle--danger-gradient .tyk-toggle__list--single .tyk-toggle__item--active{background:transparent linear-gradient(to right,var(--color-danger-base),var(--color-danger-dark),var(--color-danger-base));background-clip:border-box;background-origin:border-box;background-position:0 0;background-size:200% auto;border-image:linear-gradient(to right,var(--color-danger-base),var(--color-danger-dark),var(--color-danger-base)) 0 round;color:#fff;span{color:#fff}}.tyk-toggle--warning-gradient .tyk-toggle__item--active span{color:#fff}.tyk-toggle--warning-gradient .tyk-toggle__list--separated .tyk-toggle__item--active,.tyk-toggle--warning-gradient .tyk-toggle__list--single .tyk-toggle__item--active{background:transparent linear-gradient(to right,var(--color-warning-light),var(--color-warning-base),var(--color-warning-light));background-clip:border-box;background-origin:border-box;background-position:0 0;background-size:200% auto;border-image:linear-gradient(to right,var(--color-warning-light),var(--color-warning-base),var(--color-warning-light)) 0 round;color:var(--text-color);span{color:#fff}}.tyk-toggle__item{border:2px solid transparent;color:var(--toggle-list-text-color);text-transform:uppercase;z-index:2;&:first-child{border-end-start-radius:25px;border-start-start-radius:25px}&:last-child{border-end-end-radius:25px;border-start-end-radius:25px}.tyk-toggle__list--separated &{border-radius:25px;margin-block:var(--spacing-xs);margin-inline-end:var(--spacing-sm);&:last-child{margin-inline-end:0}}input{display:none}label{cursor:pointer;font-family:var(--toggle-font-family);margin:0;position:relative;transition:all .2s ease;.tyk-toggle__list--single &{padding-inline-start:45px}}}.tyk-toggle__list--single .tyk-toggle__item--active{label{padding-inline-end:45px;padding-inline-start:25px;.tyk-toggle__item-notch{inset-inline-start:calc(100% - 35px)}}}.tyk-toggle--on-dark .tyk-toggle__item:not(.tyk-toggle__item--active){color:var(--toggle-list-text-color-on-dark)}.tyk-toggle--on-dark .tyk-toggle__item-notch--single{background:var(--color-background-light)}.tyk-toggle--sm label{border-radius:var(--button-border-radius);font-size:var(--xs-font-size);line-height:var(--xs-line-height);padding-block:calc(var(--padding-y-button-sm) + 2px);padding-inline:calc(var(--padding-x-button-sm) + 2px)}.tyk-toggle--sm .tyk-toggle__list--single label{padding-inline-start:35px}.tyk-toggle--sm .tyk-toggle__list--single .tyk-toggle__item--active label{padding-inline-end:35px;padding-inline-start:17px;.tyk-toggle__item-notch{inset-inline-start:calc(100% - 27px)}}.tyk-toggle--md label{padding-block:calc(var(--padding-y-button-md) + 2px);padding-inline:calc(var(--padding-x-button-md) + 2px)}.tyk-toggle--lg label,.tyk-toggle--md label{border-radius:var(--button-border-radius);font-size:var(--sm-font-size);line-height:var(--line-height-button-sm)}.tyk-toggle--lg label{padding-block:calc(var(--padding-y-button-lg) + 2px);padding-inline:calc(var(--padding-x-button-lg) + 2px)}.tyk-toggle--lg .tyk-toggle__list--single label{padding-inline-start:45px}.tyk-toggle--lg .tyk-toggle__list--single .tyk-toggle__item--active label{padding-inline-end:45px;padding-inline-start:25px;.tyk-toggle__item-notch{inset-inline-start:calc(100% - 43px)}}.tyk-toggle__item-notch{border-radius:25px;inset-block:2px;position:absolute;transition:all .2s ease}.tyk-toggle__item-notch--single{background:#fff;inline-size:32px;inset-inline-start:2px}.tyk-toggle--sm .tyk-toggle__item-notch--single{inline-size:24px}.tyk-toggle--lg .tyk-toggle__item-notch--single{inline-size:40px}.tyk-toggle__notch{border-radius:25px;inline-size:100px;inset-block-end:var(--toggle-bottom);inset-block-start:var(--toggle-top);inset-inline-start:0;position:absolute;transition:all .2s ease;z-index:1}.tyk-toggle--default .tyk-toggle__notch{--toggle-notch-background:var(--button-default-color);--toggle-notch-border:transparent;--toggle-notch-color:#fff;--toggle-notch-hover-background:var(--button-default-color);--toggle-notch-hover-color:#fff}.tyk-toggle--primary .tyk-toggle__notch{--toggle-notch-background:var(--primary-base);--toggle-notch-border:transparent;--toggle-notch-color:#fff;--toggle-notch-hover-background:var(--primary-base);--toggle-notch-hover-color:#fff}.tyk-toggle--success .tyk-toggle__notch{--toggle-notch-background:var(--success-base);--toggle-notch-border:transparent;--toggle-notch-color:#fff;--toggle-notch-hover-background:var(--success-base);--toggle-notch-hover-color:#fff}.tyk-toggle--danger .tyk-toggle__notch{--toggle-notch-background:var(--color-danger-base);--toggle-notch-border:transparent;--toggle-notch-color:#fff;--toggle-notch-hover-background:var(--color-danger-base);--toggle-notch-hover-color:#fff}.tyk-toggle--warning .tyk-toggle__notch{--toggle-notch-background:var(--color-warning-base);--toggle-notch-border:transparent;--toggle-notch-color:var(--text-color);--toggle-notch-hover-background:var(--color-warning-base);--toggle-notch-hover-color:var(--text-color)}.tyk-toggle--danger .tyk-toggle__notch,.tyk-toggle--default .tyk-toggle__notch,.tyk-toggle--primary .tyk-toggle__notch,.tyk-toggle--success .tyk-toggle__notch,.tyk-toggle--warning .tyk-toggle__notch{background-color:var(--toggle-notch-background);border:var(--general-border-width) solid var(--toggle-notch-border);color:var(--toggle-notch-color);&:hover{background-color:var(--toggle-notch-hover-background);color:var(--toggle-notch-hover-color)}}.tyk-toggle--primary-gradient .tyk-toggle__notch{--toggle-notch-gradient-left-color:var(--color-primary-base);--toggle-notch-gradient-right-color:var(--color-primary-dark);--toggle-notch-gradient-color:#fff}.tyk-toggle--success-gradient .tyk-toggle__notch{--toggle-notch-gradient-left-color:var(--color-success-base);--toggle-notch-gradient-right-color:var(--color-success-dark);--toggle-notch-gradient-color:#fff}.tyk-toggle--danger-gradient .tyk-toggle__notch{--toggle-notch-gradient-left-color:var(--color-danger-base);--toggle-notch-gradient-right-color:var(--color-danger-dark);--toggle-notch-gradient-color:#fff}.tyk-toggle--warning-gradient .tyk-toggle__notch{--toggle-notch-gradient-left-color:var(--color-warning-light);--toggle-notch-gradient-right-color:var(--color-warning-base);--toggle-notch-gradient-color:var(--text-color)}.tyk-toggle--danger-gradient .tyk-toggle__notch,.tyk-toggle--primary-gradient .tyk-toggle__notch,.tyk-toggle--success-gradient .tyk-toggle__notch,.tyk-toggle--warning-gradient .tyk-toggle__notch{background:transparent linear-gradient(to right,var(--toggle-notch-gradient-left-color),var(--toggle-notch-gradient-right-color),var(--toggle-notch-gradient-left-color));background-clip:border-box;background-origin:border-box;background-position:0 0;background-size:200% auto;border-image:linear-gradient(to right,var(--toggle-notch-gradient-left-color),var(--toggle-notch-gradient-right-color),var(--toggle-notch-gradient-left-color)) 0 round;color:var(--toggle-notch-gradient-color)}.empty-toggle{padding:1px}*{box-sizing:border-box}body{background-color:var(--color-background-base);color:var(--text-color);font-family:var(--font-family-regular);font-size:var(--sm-font-size);line-height:var(--sm-line-height)}.tyk-main-wrapper{display:flex;flex-wrap:nowrap}.tyk-main-content-wrapper{flex:1}.well{background:transparent;border:var(--general-border-width) solid var(--color-default-light);border-radius:var(--general-border-radius);box-shadow:none;&.has-error{border-color:var(--color-danger-base)}}.title-medium{color:var(--label-color);font-family:var(--font-family-medium);font-size:var(--title-medium-font-size)}.right-align{text-align:end!important}.left-align{text-align:start!important}.center-align{text-align:center!important}.left{float:inline-start!important}.right{float:inline-end!important}.hide{display:none!important}.no-margin{margin:0!important}.no-margin-bottom{margin-block-end:0!important}.no-margin-top{margin-block-start:0!important}.no-margin-right{margin-inline-end:0!important}.no-margin-left{margin-inline-start:0!important}.disabled-section{color:var(--color-default-light)}.top-buffer-large{margin-block-start:var(--top-buffer-large)!important}.top-buffer-small{margin-block-start:var(--top-buffer-small)!important}.top-buffer-medium{margin-block-start:var(--top-buffer-medium)!important}.bottom-buffer-large{margin-block-end:var(--bottom-buffer-large)!important}.bottom-buffer-small{margin-block-end:var(--bottom-buffer-small)!important}.bottom-buffer-medium{margin-block-end:var(--bottom-buffer-medium)!important}.right-buffer-large{margin-inline-end:var(--right-buffer-large)!important}.right-buffer-small{margin-inline-end:var(--right-buffer-small)!important}.right-buffer-medium{margin-inline-end:var(--right-buffer-medium)!important}.left-buffer-large{margin-inline-start:var(--left-buffer-large)!important}.left-buffer-small{margin-inline-start:var(--left-buffer-small)!important}.left-buffer-medium{margin-inline-start:var(--left-buffer-medium)!important}.word-wrap{word-wrap:break-word;word-break:break-all}.clear-left{clear:inline-start}.flex-container{display:flex}.vertical-center-align{align-items:center}.right-align-controls{align-items:center;display:flex;margin-inline-start:auto}.inline-label{margin-inline-end:15px}.nowrap{white-space:nowrap} /*# sourceMappingURL=tyk-ui.css.map*/ \ No newline at end of file diff --git a/lib/tyk-ui.css.map b/lib/tyk-ui.css.map index 8af14ec7..c1a116f9 100644 --- a/lib/tyk-ui.css.map +++ b/lib/tyk-ui.css.map @@ -1 +1 @@ -{"version":3,"file":"tyk-ui.css","mappings":"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,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,4BAA6B,CAC7B,iCACF,CAEA,uBACE,wBACF,CACF,CAEA,6CACE,eACE,gBAA2B,CAC3B,qBACF,CAEA,sBACE,qBACF,CAEA,eACE,gCAAsC,CACtC,qCACF,CAEA,sBACE,iCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,4BAA6B,CAC7B,iCACF,CAEA,uBACE,wBACF,CACF,CAEA,2CACE,eACE,gBAA2B,CAC3B,qBACF,CAEA,sBACE,qBACF,CAEA,eACE,gCAAsC,CACtC,qCACF,CAEA,sBACE,iCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,4BAA6B,CAC7B,iCACF,CAEA,uBACE,wBACF,CACF,CAEA,mCACE,eACE,gBAA2B,CAC3B,qBACF,CAEA,sBACE,qBACF,CAEA,eACE,gCAAsC,CACtC,qCACF,CAEA,sBACE,iCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,4BAA6B,CAC7B,iCACF,CAEA,uBACE,wBACF,CACF,CC1iBA,WACE,sBAAuB,CAIvB,iBAAkB,CADlB,eAAmB,CAFnB,qGAIF,CAEA,WACE,uBAAwB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E,aACF,CAEA,mBACE,aACF,CAEA,yBACE,aACF,CAEA,mBACE,aACF,CAEA,uBACE,aACF,CAEA,sBACE,aACF,CAEA,0BACE,aACF,CAEA,oBACE,aACF,CAEA,wBACE,aACF,CAEA,oBACE,aACF,CAEA,mBACE,aACF,CAEA,qBACE,aACF,CAEA,uBACE,aACF,CAEA,oBACE,aACF,CAEA,mBACE,aACF,CAEA,sBACE,aACF,CAEA,mBACE,aACF,CAEA,mBACE,aACF,CAEA,oBACE,aACF,CAEA,oBACE,aACF,CAEA,4BACE,aACF,CAEA,mBACE,aACF,CAEA,sBACE,aACF,CAEA,qBACE,aACF,CAEA,uBACE,aACF,CAEA,sBACE,aACF,CAEA,gBACE,aACF,CAEA,sBACE,aACF,CAEA,yBACE,eACF,CAEA,8BACE,eACF,CAEA,mBACE,aACF,CCjLA,kBAIE,2BAA4B,CAF5B,uCAAwC,CACxC,uCAAwC,CAFxC,8CAIF,CAEA,MAIE,wBAAyB,CAHzB,oBAAqB,CAErB,oBAAqB,CADrB,oBAGF,CAEA,GACE,8BAA+B,CAC/B,kCACF,CAEA,GACE,6BAA8B,CAC9B,iCACF,CAEA,GACE,6BAA8B,CAC9B,iCACF,CAEA,GACE,6BAA8B,CAC9B,iCACF,CAEA,GACE,6BAA8B,CAC9B,iCACF,CAEA,GACE,6BAA8B,CAC9B,iCACF,CAEA,QAIE,sCAAuC,CAFvC,6BAA8B,CAC9B,iCAAkC,CAGlC,EACE,6BAA8B,CAC9B,yBACF,CACF,CAEA,OACE,mCACF,CAEA,mBAEE,uBAAwB,CADxB,cAAe,CAEf,sCAAuC,CAEvC,aACE,mCACF,CAEA,GACE,uBACF,CAEA,EACE,aACF,CACF,CAEA,qBACE,sCACF,CAEA,oBACE,qCACF,CAEA,kBACE,mCACF,CAEA,6BACE,+CACF,CAEA,4BACE,8CACF,CAEA,0BACE,4CACF,CAEA,YACE,4BACF,CAEA,cACE,qCACF,CAEA,YACE,mCACF,CAEA,iBACE,wBACF,CAEA,gBAEE,eAAgB,CAChB,sBAAuB,CAFvB,kBAGF,CAEA,iBACE,yBACF,CAEA,qBACE,0C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ACE,sBAAuB,CACvB,mEAAoE,CACpE,0CAA2C,CAC3C,eAAgB,CAEhB,YACE,qCACF,CACF,CC9BA,cAEE,wBAAyB,CADzB,qCAAsC,CAEtC,uCACF,CCJA,aACE,wBACF,CAEA,YACE,0BACF,CAEA,cACE,2BACF,CAEA,MACE,4BACF,CAEA,OACE,0BACF,CAEA,MACE,sBACF,CAEA,WACE,kBACF,CAEA,kBACE,4BACF,CAEA,eACE,8BACF,CAEA,iBACE,6BACF,CAEA,gBACE,+BACF,CAEA,kBACE,gCACF,CAEA,kBACE,oDACF,CAEA,kBACE,oDACF,CAEA,mBACE,qDACF,CAEA,qBACE,qDACF,CAEA,qBACE,qDACF,CAEA,sBACE,sDACF,CAEA,oBACE,qDACF,CAEA,oBACE,qDACF,CAEA,qBACE,sDACF,CAEA,mBACE,sDACF,CAEA,mBACE,sDACF,CAEA,oBACE,uDACF,CAEA,WACE,oBAAqB,CACrB,oBACF,CAEA,YACE,kBACF,CAEA,gBACE,YACF,CAEA,uBACE,kBACF,CAGA,sBACE,kBAAmB,CACnB,YAAa,CACb,wBACF,CAEA,cACE,sBACF,CAEA,QACE,kBACF","sources":["webpack://@tyk-technologies/tyk-ui/./src/common/css/reset.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/variables.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/grid.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/fonts.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/fontawesome.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/tykon.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/typography.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/form.css","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/Accordion.css","webpack://@tyk-technologies/tyk-ui/./src/components/Button/Button.css","webpack://@tyk-technologies/tyk-ui/./src/components/ButtonGroup/ButtonGroup.css","webpack://@tyk-technologies/tyk-ui/./src/components/Card/Card.css","webpack://@tyk-technologies/tyk-ui/./src/components/Chart/Chart.css","webpack://@tyk-technologies/tyk-ui/./src/components/Collapsible/Collapsible.css","webpack://@tyk-technologies/tyk-ui/./src/components/CopyToClipboard/CopyToClipboard.css","webpack://@tyk-technologies/tyk-ui/./src/components/FixedWrapper/FixedWrapper.css","webpack://@tyk-technologies/tyk-ui/./src/components/FloatingContainer/FloatingContainer.css","webpack://@tyk-technologies/tyk-ui/./src/components/Icon/Icon.css","webpack://@tyk-technologies/tyk-ui/./src/components/InfiniteScroller/InfiniteScroller.css","webpack://@tyk-technologies/tyk-ui/./src/components/InfoNote/InfoNote.css","webpack://@tyk-technologies/tyk-ui/./src/components/Loader/Loader.css","webpack://@tyk-technologies/tyk-ui/./src/components/List/List.css","webpack://@tyk-technologies/tyk-ui/./src/components/Message/Message.css","webpack://@tyk-technologies/tyk-ui/./src/components/Modal/Modal.css","webpack://@tyk-technologies/tyk-ui/./src/components/Navigation/Navigation.css","webpack://@tyk-technologies/tyk-ui/./src/components/NavBar/NavBar.css","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/Panel.css","webpack://@tyk-technologies/tyk-ui/./src/components/Pill/Pill.css","webpack://@tyk-technologies/tyk-ui/./src/components/RevealPanel/RevealPanel.css","webpack://@tyk-technologies/tyk-ui/./src/components/Sidebar/Sidebar.css","webpack://@tyk-technologies/tyk-ui/./src/components/Table/Table.css","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/Tabs.css","webpack://@tyk-technologies/tyk-ui/./src/components/Toast/Toast.css","webpack://@tyk-technologies/tyk-ui/./src/components/Tooltip/Tooltip.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox2/Combobox.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Checkbox/Checkbox.css","webpack://@tyk-technologies/tyk-ui/./node_modules/flatpickr/dist/flatpickr.min.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/DatePicker/DatePicker.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown/Dropdown.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/Dropdown.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList/EditableList.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/EditableList2.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/FileInput/FileInput.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/Multiselect.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Pagination/Pagination.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Radio/Radio.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Select/Select.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/SelectableList/SelectableList.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Textarea/Textarea.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/Toggle.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/layout.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/texts.css","webpack://@tyk-technologies/tyk-ui/./src/utils/css-helpers/helpers.css"],"sourcesContent":["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 {\n margin: 0;\n padding: 0;\n border: 0;\n font: inherit;\n font-size: 100%;\n vertical-align: baseline;\n}\n\n/* HTML5 display-role reset for older browsers */\n\narticle, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {\n display: block; }\n\nbody {\n line-height: 1; }\n\nol, ul {\n list-style: none; }\n\nblockquote, q {\n quotes: none; }\n\nblockquote {\n &::before, &::after {\n content: '';\n content: none; } }\n\nq {\n &::before, &::after {\n content: '';\n content: none; } }\n\ntable {\n border-collapse: collapse;\n border-spacing: 0; }\n",":root {\n --general-border-radius: 18px;\n --general-border-width: 2px;\n\n --color-default-base: #36364C;\n --color-default-base-light: #7A79A1;\n --color-default-light: #C3C3E5;\n --color-default-dark: #505071;\n --color-primary-base: #A2A2CC;\n --color-primary-light: #EDEDF9;\n --color-primary-dark: #505071;\n --color-success-base: #00d9ba;\n --color-success-light: #C2F2E9;\n --color-success-dark: #00B798;\n --color-info-base: #82BBC6;\n --color-info-light: #D3EBEF;\n --color-danger-base: #FF6C7D;\n --color-danger-extra-light: #F5CCD1;\n --color-danger-light: #FFBBC5;\n --color-danger-dark: #EA4766;\n --color-warning-base: #D6B218;\n --color-warning-light: #FFE885;\n --color-warning-dark: #C58C11;\n --color-foreground-base: #393939;\n --color-foreground-base-dark: #22272B;\n --color-foreground-light: #5a5a68;\n --color-foreground-dark: #161B20;\n --color-foreground-extra-dark: #0A0D10;\n --color-background-base: #E1E1E1;\n --color-background-light: #EDEDF9;\n --color-background-dark: #43435B;\n --color-background-extra-dark: #0A0D10;\n\n --text-color: var(--color-default-dark);\n --label-color: var(--color-default-base);\n\n --xs-line-height: 16px;\n --sm-line-height: 19px;\n --md-line-height: 22px;\n --lg-line-height: 23px;\n --xl-line-height: 24px;\n --xxl-line-height: 30px;\n\n --xs-font-size: 13px;\n --sm-font-size: 14px;\n --md-font-size: 16px;\n --lg-font-size: 18px;\n --xl-font-size: 20px;\n --xxl-font-size: 25px;\n\n --base-font-size: var(--sm-font-size);\n --base-line-height: var(--sm-line-height);\n\n --spacing-xs: 5px;\n --spacing-sm: 10px;\n --spacing-base: 15px;\n --spacing-md: 20px;\n --spacing-lg: 25px;\n --spacing-xl: 30px;\n --spacing-xxl: 40px;\n\n --grid-gutter: var(--spacing-md);\n --grid-max-width: calc(1200px + var(--grid-gutter) * 2);\n\n --breakpoint-xs: 420px;\n --breakpoint-sm: 768px;\n --breakpoint-md: 1024px;\n --breakpoint-lg: 1248px;\n\n --font-inter-light: 'Inter-Light';\n --font-inter-medium: 'Inter-Medium';\n --font-inter-regular: 'Inter-Regular';\n --font-inter-bold: 'Inter-Bold';\n\n --font-family-regular: 'OpenSans-regular';\n --font-family-medium: 'OpenSans-SemiBold';\n --font-family-bold: 'OpenSans-Bold';\n\n --headings-color: var(--color-default-base);\n --headings-font-family-regular: 'smoolthan_regular';\n --headings-font-family-medium: 'smoolthan_medium';\n --headings-font-family-bold: 'smoolthan_bold';\n\n --headings-margin-bottom: 15px;\n --headings-font-family: var(--headings-font-family-medium);\n --headings-font-weight: 500;\n --headings-line-height: var(--base-line-height);\n\n --form-group-margin-bottom: 15px;\n --form-control-height: 39px;\n --form-control-padding-left: var(--spacing-md);\n --form-control-padding-right: var(--spacing-md);\n --form-control-padding-top: 10px;\n --form-control-padding-bottom: 10px;\n --form-control-addon-background-color: white;\n --form-control-addon-padding-top: 10px;\n --form-control-addon-padding-bottom: 10px;\n --form-control-addon-padding-left: 10px;\n --form-control-addon-padding-right: 10px;\n --form-control-border: var(--general-border-width) solid var(--color-default-light);\n --form-control-disabled-border: var(--general-border-width) solid var(--color-default-light);\n --form-control-placeholder-color: var(--color-primary-base);\n --form-control-disabled-background-color: var(--color-background-light);\n --form-control-disabled-color:var(--text-color);\n --form-control-border-focus: 2px solid var(--color-success-base);\n --form-control-placeholder-font-family: var(--font-family-medium);\n --form-control-error-colour: var(--color-danger-dark);\n --form-default-color: var(--color-default-light);\n --form-primary-color: var(--color-primary-base);\n --form-success-color: var(--color-success-base);\n\n --error-border: var(--general-border-width) solid var(--color-danger-base);\n --error-border-left: 2px solid var(--color-danger-dark);\n --help-block-color: var(--color-default-base);\n --help-block-font-style: normal;\n --help-block-padding: 0 0 0 var(--form-control-padding-left);\n --error-message-padding: 0 0 0 var(--form-control-padding-left);\n --default-pill-background-color: var(--color-default-base);\n --default-pill-color: white;\n --pill-margin: 0 0 10px 0;\n --default-outline-pill-box-shadow: inset 0 0 0 2px var(--color-default-base);\n --default-outline-pill-color: var(--text-color);\n\n --title-medium-font-size: 16px;\n\n --bottom-buffer-large: var(--spacing-md);\n --bottom-buffer-medium: 10px;\n --bottom-buffer-small: 5px;\n --top-buffer-large: var(--spacing-md);\n --top-buffer-medium: 10px;\n --top-buffer-small: 5px;\n --right-buffer-large: var(--spacing-md);\n --right-buffer-medium: 10px;\n --right-buffer-small: 5px;\n --left-buffer-large: var(--spacing-md);\n --left-buffer-medium: 10px;\n --left-buffer-small: 5px;\n\n --modal-z-index: 1080;\n}\n","/* stylelint-disable number-max-precision */\n\n.container {\n max-inline-size: var(--grid-max-width);\n margin-block: 0;\n margin-inline: auto;\n}\n\n.container,\n.container-fluid {\n padding-block: 0;\n padding-inline: var(--grid-gutter);\n}\n\n.tyk-row {\n display: flex;\n box-sizing: border-box;\n list-style: none;\n flex: 0 1 auto;\n flex-direction: row;\n flex-wrap: wrap;\n margin-inline-start: calc(-1 * var(--grid-gutter));\n inline-size: calc(100% + var(--grid-gutter));\n\n &.no-gutters {\n margin: 0;\n }\n\n &.tyk-row--gutterless {\n margin: 0;\n inline-size: 100%;\n }\n\n &.tyk-row--reverse {\n flex-direction: row-reverse;\n }\n}\n\n.tyk-col {\n max-inline-size: calc(100% - var(--grid-gutter));\n box-sizing: border-box;\n flex: 0 0 auto;\n flex-grow: 1;\n flex-basis: calc(100% - var(--grid-gutter));\n margin-inline-start: var(--grid-gutter);\n inline-size: calc(100% - var(--grid-gutter));\n\n &:last-child {\n margin-inline-end: 0;\n }\n\n .tyk-row--gutterless & {\n margin: 0;\n }\n\n &.tyk-col--reverse {\n flex-direction: column-reverse;\n }\n\n &.tyk-col--align-bottom {\n align-self: flex-end;\n }\n\n &.tyk-col--align-top {\n align-self: flex-start;\n }\n\n &.tyk-col--align-center {\n align-self: center;\n }\n\n &.tyk-col--align-baseline {\n align-self: baseline;\n }\n\n &.tyk-col--align-stretch {\n align-self: stretch;\n }\n}\n\n@media screen and (width >= 1248px) {\n .tyk-col--lg-0 {\n flex-basis: calc(0% - 20px);\n max-inline-size: calc(0% - 20px);\n }\n\n .tyk-col--offset-lg-0 {\n margin-inline-start: 0%;\n }\n\n .tyk-col--lg-1 {\n flex-basis: calc(8.3333333333% - 20px);\n max-inline-size: calc(8.3333333333% - 20px);\n }\n\n .tyk-col--offset-lg-1 {\n margin-inline-start: 8.3333333333%;\n }\n\n .tyk-col--lg-2 {\n flex-basis: calc(16.6666666667% - 20px);\n max-inline-size: calc(16.6666666667% - 20px);\n }\n\n .tyk-col--offset-lg-2 {\n margin-inline-start: 16.6666666667%;\n }\n\n .tyk-col--lg-3 {\n flex-basis: calc(25% - 20px);\n max-inline-size: calc(25% - 20px);\n }\n\n .tyk-col--offset-lg-3 {\n margin-inline-start: 25%;\n }\n\n .tyk-col--lg-4 {\n flex-basis: calc(33.3333333333% - 20px);\n max-inline-size: calc(33.3333333333% - 20px);\n }\n\n .tyk-col--offset-lg-4 {\n margin-inline-start: 33.3333333333%;\n }\n\n .tyk-col--lg-5 {\n flex-basis: calc(41.6666666667% - 20px);\n max-inline-size: calc(41.6666666667% - 20px);\n }\n\n .tyk-col--offset-lg-5 {\n margin-inline-start: 41.6666666667%;\n }\n\n .tyk-col--lg-6 {\n flex-basis: calc(50% - 20px);\n max-inline-size: calc(50% - 20px);\n }\n\n .tyk-col--offset-lg-6 {\n margin-inline-start: 50%;\n }\n\n .tyk-col--lg-7 {\n flex-basis: calc(58.3333333333% - 20px);\n max-inline-size: calc(58.3333333333% - 20px);\n }\n\n .tyk-col--offset-lg-7 {\n margin-inline-start: 58.3333333333%;\n }\n\n .tyk-col--lg-8 {\n flex-basis: calc(66.6666666667% - 20px);\n max-inline-size: calc(66.6666666667% - 20px);\n }\n\n .tyk-col--offset-lg-8 {\n margin-inline-start: 66.6666666667%;\n }\n\n .tyk-col--lg-9 {\n flex-basis: calc(75% - 20px);\n max-inline-size: calc(75% - 20px);\n }\n\n .tyk-col--offset-lg-9 {\n margin-inline-start: 75%;\n }\n\n .tyk-col--lg-10 {\n flex-basis: calc(83.3333333333% - 20px);\n max-inline-size: calc(83.3333333333% - 20px);\n }\n\n .tyk-col--offset-lg-10 {\n margin-inline-start: 83.3333333333%;\n }\n\n .tyk-col--lg-11 {\n flex-basis: calc(91.6666666667% - 20px);\n max-inline-size: calc(91.6666666667% - 20px);\n }\n\n .tyk-col--offset-lg-11 {\n margin-inline-start: 91.6666666667%;\n }\n\n .tyk-col--lg-12 {\n flex-basis: calc(100% - 20px);\n max-inline-size: calc(100% - 20px);\n }\n\n .tyk-col--offset-lg-12 {\n margin-inline-start: 100%;\n }\n}\n\n@media screen and (1024px <= width < 1248px) {\n .tyk-col--md-0 {\n flex-basis: calc(0% - 20px);\n max-inline-size: calc(0% - 20px);\n }\n\n .tyk-col--offset-md-0 {\n margin-inline-start: 0%;\n }\n\n .tyk-col--md-1 {\n flex-basis: calc(8.3333333333% - 20px);\n max-inline-size: calc(8.3333333333% - 20px);\n }\n\n .tyk-col--offset-md-1 {\n margin-inline-start: 8.3333333333%;\n }\n\n .tyk-col--md-2 {\n flex-basis: calc(16.6666666667% - 20px);\n max-inline-size: calc(16.6666666667% - 20px);\n }\n\n .tyk-col--offset-md-2 {\n margin-inline-start: 16.6666666667%;\n }\n\n .tyk-col--md-3 {\n flex-basis: calc(25% - 20px);\n max-inline-size: calc(25% - 20px);\n }\n\n .tyk-col--offset-md-3 {\n margin-inline-start: 25%;\n }\n\n .tyk-col--md-4 {\n flex-basis: calc(33.3333333333% - 20px);\n max-inline-size: calc(33.3333333333% - 20px);\n }\n\n .tyk-col--offset-md-4 {\n margin-inline-start: 33.3333333333%;\n }\n\n .tyk-col--md-5 {\n flex-basis: calc(41.6666666667% - 20px);\n max-inline-size: calc(41.6666666667% - 20px);\n }\n\n .tyk-col--offset-md-5 {\n margin-inline-start: 41.6666666667%;\n }\n\n .tyk-col--md-6 {\n flex-basis: calc(50% - 20px);\n max-inline-size: calc(50% - 20px);\n }\n\n .tyk-col--offset-md-6 {\n margin-inline-start: 50%;\n }\n\n .tyk-col--md-7 {\n flex-basis: calc(58.3333333333% - 20px);\n max-inline-size: calc(58.3333333333% - 20px);\n }\n\n .tyk-col--offset-md-7 {\n margin-inline-start: 58.3333333333%;\n }\n\n .tyk-col--md-8 {\n flex-basis: calc(66.6666666667% - 20px);\n max-inline-size: calc(66.6666666667% - 20px);\n }\n\n .tyk-col--offset-md-8 {\n margin-inline-start: 66.6666666667%;\n }\n\n .tyk-col--md-9 {\n flex-basis: calc(75% - 20px);\n max-inline-size: calc(75% - 20px);\n }\n\n .tyk-col--offset-md-9 {\n margin-inline-start: 75%;\n }\n\n .tyk-col--md-10 {\n flex-basis: calc(83.3333333333% - 20px);\n max-inline-size: calc(83.3333333333% - 20px);\n }\n\n .tyk-col--offset-md-10 {\n margin-inline-start: 83.3333333333%;\n }\n\n .tyk-col--md-11 {\n flex-basis: calc(91.6666666667% - 20px);\n max-inline-size: calc(91.6666666667% - 20px);\n }\n\n .tyk-col--offset-md-11 {\n margin-inline-start: 91.6666666667%;\n }\n\n .tyk-col--md-12 {\n flex-basis: calc(100% - 20px);\n max-inline-size: calc(100% - 20px);\n }\n\n .tyk-col--offset-md-12 {\n margin-inline-start: 100%;\n }\n}\n\n@media screen and (768px < width < 1024px) {\n .tyk-col--sm-0 {\n flex-basis: calc(0% - 20px);\n max-inline-size: calc(0% - 20px);\n }\n\n .tyk-col--offset-sm-0 {\n margin-inline-start: 0%;\n }\n\n .tyk-col--sm-1 {\n flex-basis: calc(8.3333333333% - 20px);\n max-inline-size: calc(8.3333333333% - 20px);\n }\n\n .tyk-col--offset-sm-1 {\n margin-inline-start: 8.3333333333%;\n }\n\n .tyk-col--sm-2 {\n flex-basis: calc(16.6666666667% - 20px);\n max-inline-size: calc(16.6666666667% - 20px);\n }\n\n .tyk-col--offset-sm-2 {\n margin-inline-start: 16.6666666667%;\n }\n\n .tyk-col--sm-3 {\n flex-basis: calc(25% - 20px);\n max-inline-size: calc(25% - 20px);\n }\n\n .tyk-col--offset-sm-3 {\n margin-inline-start: 25%;\n }\n\n .tyk-col--sm-4 {\n flex-basis: calc(33.3333333333% - 20px);\n max-inline-size: calc(33.3333333333% - 20px);\n }\n\n .tyk-col--offset-sm-4 {\n margin-inline-start: 33.3333333333%;\n }\n\n .tyk-col--sm-5 {\n flex-basis: calc(41.6666666667% - 20px);\n max-inline-size: calc(41.6666666667% - 20px);\n }\n\n .tyk-col--offset-sm-5 {\n margin-inline-start: 41.6666666667%;\n }\n\n .tyk-col--sm-6 {\n flex-basis: calc(50% - 20px);\n max-inline-size: calc(50% - 20px);\n }\n\n .tyk-col--offset-sm-6 {\n margin-inline-start: 50%;\n }\n\n .tyk-col--sm-7 {\n flex-basis: calc(58.3333333333% - 20px);\n max-inline-size: calc(58.3333333333% - 20px);\n }\n\n .tyk-col--offset-sm-7 {\n margin-inline-start: 58.3333333333%;\n }\n\n .tyk-col--sm-8 {\n flex-basis: calc(66.6666666667% - 20px);\n max-inline-size: calc(66.6666666667% - 20px);\n }\n\n .tyk-col--offset-sm-8 {\n margin-inline-start: 66.6666666667%;\n }\n\n .tyk-col--sm-9 {\n flex-basis: calc(75% - 20px);\n max-inline-size: calc(75% - 20px);\n }\n\n .tyk-col--offset-sm-9 {\n margin-inline-start: 75%;\n }\n\n .tyk-col--sm-10 {\n flex-basis: calc(83.3333333333% - 20px);\n max-inline-size: calc(83.3333333333% - 20px);\n }\n\n .tyk-col--offset-sm-10 {\n margin-inline-start: 83.3333333333%;\n }\n\n .tyk-col--sm-11 {\n flex-basis: calc(91.6666666667% - 20px);\n max-inline-size: calc(91.6666666667% - 20px);\n }\n\n .tyk-col--offset-sm-11 {\n margin-inline-start: 91.6666666667%;\n }\n\n .tyk-col--sm-12 {\n flex-basis: calc(100% - 20px);\n max-inline-size: calc(100% - 20px);\n }\n\n .tyk-col--offset-sm-12 {\n margin-inline-start: 100%;\n }\n}\n\n@media screen and (width <= 768px) {\n .tyk-col--xs-0 {\n flex-basis: calc(0% - 20px);\n max-inline-size: calc(0% - 20px);\n }\n\n .tyk-col--offset-xs-0 {\n margin-inline-start: 0%;\n }\n\n .tyk-col--xs-1 {\n flex-basis: calc(8.3333333333% - 20px);\n max-inline-size: calc(8.3333333333% - 20px);\n }\n\n .tyk-col--offset-xs-1 {\n margin-inline-start: 8.3333333333%;\n }\n\n .tyk-col--xs-2 {\n flex-basis: calc(16.6666666667% - 20px);\n max-inline-size: calc(16.6666666667% - 20px);\n }\n\n .tyk-col--offset-xs-2 {\n margin-inline-start: 16.6666666667%;\n }\n\n .tyk-col--xs-3 {\n flex-basis: calc(25% - 20px);\n max-inline-size: calc(25% - 20px);\n }\n\n .tyk-col--offset-xs-3 {\n margin-inline-start: 25%;\n }\n\n .tyk-col--xs-4 {\n flex-basis: calc(33.3333333333% - 20px);\n max-inline-size: calc(33.3333333333% - 20px);\n }\n\n .tyk-col--offset-xs-4 {\n margin-inline-start: 33.3333333333%;\n }\n\n .tyk-col--xs-5 {\n flex-basis: calc(41.6666666667% - 20px);\n max-inline-size: calc(41.6666666667% - 20px);\n }\n\n .tyk-col--offset-xs-5 {\n margin-inline-start: 41.6666666667%;\n }\n\n .tyk-col--xs-6 {\n flex-basis: calc(50% - 20px);\n max-inline-size: calc(50% - 20px);\n }\n\n .tyk-col--offset-xs-6 {\n margin-inline-start: 50%;\n }\n\n .tyk-col--xs-7 {\n flex-basis: calc(58.3333333333% - 20px);\n max-inline-size: calc(58.3333333333% - 20px);\n }\n\n .tyk-col--offset-xs-7 {\n margin-inline-start: 58.3333333333%;\n }\n\n .tyk-col--xs-8 {\n flex-basis: calc(66.6666666667% - 20px);\n max-inline-size: calc(66.6666666667% - 20px);\n }\n\n .tyk-col--offset-xs-8 {\n margin-inline-start: 66.6666666667%;\n }\n\n .tyk-col--xs-9 {\n flex-basis: calc(75% - 20px);\n max-inline-size: calc(75% - 20px);\n }\n\n .tyk-col--offset-xs-9 {\n margin-inline-start: 75%;\n }\n\n .tyk-col--xs-10 {\n flex-basis: calc(83.3333333333% - 20px);\n max-inline-size: calc(83.3333333333% - 20px);\n }\n\n .tyk-col--offset-xs-10 {\n margin-inline-start: 83.3333333333%;\n }\n\n .tyk-col--xs-11 {\n flex-basis: calc(91.6666666667% - 20px);\n max-inline-size: calc(91.6666666667% - 20px);\n }\n\n .tyk-col--offset-xs-11 {\n margin-inline-start: 91.6666666667%;\n }\n\n .tyk-col--xs-12 {\n flex-basis: calc(100% - 20px);\n max-inline-size: calc(100% - 20px);\n }\n\n .tyk-col--offset-xs-12 {\n margin-inline-start: 100%;\n }\n}\n","@font-face {\n font-family: Inter-Bold;\n src: url('../fonts/inter/Inter-Bold.woff2') format('woff2'),\n url('../fonts/inter/Inter-Bold.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: Inter-Light;\n src: url('../fonts/inter/Inter-Light.woff2') format('woff2'),\n url('../fonts/inter/Inter-Light.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: Inter-Medium;\n src: url('../fonts/inter/Inter-Medium.woff2') format('woff2'),\n url('../fonts/inter/Inter-Medium.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: Inter-Regular;\n src: url('../fonts/inter/Inter-Regular.woff2') format('woff2'),\n url('../fonts/inter/Inter-Regular.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: Inter-SemiBold;\n src: url('../fonts/inter/Inter-SemiBold.woff2') format('woff2'),\n url('../fonts/inter/Inter-SemiBold.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: OpenSans-Bold;\n src: url('../fonts/OpenSans-Bold.woff2') format('woff2'),\n url('../fonts/OpenSans-Bold.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: OpenSans-SemiBold;\n src: url('../fonts/OpenSans-SemiBold.woff2') format('woff2'),\n url('../fonts/OpenSans-SemiBold.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: OpenSans-Regular;\n src: url('../fonts/OpenSans-Regular.woff2') format('woff2'),\n url('../fonts/OpenSans-Regular.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'smoolthan_bold';\n src: url('../fonts/smoolthan_bold-webfont.woff2') format('woff2'),\n url('../fonts/smoolthan_bold-webfont.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'smoolthan_medium';\n src: url('../fonts/smoolthan_medium-webfont.woff2') format('woff2'),\n url('../fonts/smoolthan_medium-webfont.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'smoolthan_regular';\n src: url('../fonts/smoolthan_regular-webfont.woff2') format('woff2'),\n url('../fonts/smoolthan_regular-webfont.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: tykon;\n src: url('../fonts/tykon.woff2') format('woff2'),\n url('../fonts/tykon.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n","/*!\n * Font Awesome Free 5.5.0 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n.fa,\n.fas,\n.far,\n.fal,\n.fab {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n display: inline-block;\n font-style: normal;\n font-variant: normal;\n text-rendering: auto;\n line-height: 1; }\n\n.fa-lg {\n font-size: 1.33333em;\n line-height: 0.75em;\n vertical-align: -.0667em; }\n\n.fa-xs {\n font-size: .75em; }\n\n.fa-sm {\n font-size: .875em; }\n\n.fa-1x {\n font-size: 1em; }\n\n.fa-2x {\n font-size: 2em; }\n\n.fa-3x {\n font-size: 3em; }\n\n.fa-4x {\n font-size: 4em; }\n\n.fa-5x {\n font-size: 5em; }\n\n.fa-6x {\n font-size: 6em; }\n\n.fa-7x {\n font-size: 7em; }\n\n.fa-8x {\n font-size: 8em; }\n\n.fa-9x {\n font-size: 9em; }\n\n.fa-10x {\n font-size: 10em; }\n\n.fa-fw {\n text-align: center;\n width: 1.25em; }\n\n.fa-ul {\n list-style-type: none;\n margin-left: 2.5em;\n padding-left: 0; }\n .fa-ul > li {\n position: relative; }\n\n.fa-li {\n left: -2em;\n position: absolute;\n text-align: center;\n width: 2em;\n line-height: inherit; }\n\n.fa-border {\n border: solid 0.08em #eee;\n border-radius: .1em;\n padding: .2em .25em .15em; }\n\n.fa-pull-left {\n float: left; }\n\n.fa-pull-right {\n float: right; }\n\n.fa.fa-pull-left,\n.fas.fa-pull-left,\n.far.fa-pull-left,\n.fal.fa-pull-left,\n.fab.fa-pull-left {\n margin-right: .3em; }\n\n.fa.fa-pull-right,\n.fas.fa-pull-right,\n.far.fa-pull-right,\n.fal.fa-pull-right,\n.fab.fa-pull-right {\n margin-left: .3em; }\n\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear; }\n\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8); }\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n\n.fa-rotate-90 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg); }\n\n.fa-rotate-180 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg); }\n\n.fa-rotate-270 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg); }\n\n.fa-flip-horizontal {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1); }\n\n.fa-flip-vertical {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1); }\n\n.fa-flip-horizontal.fa-flip-vertical {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1); }\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n -webkit-filter: none;\n filter: none; }\n\n.fa-stack {\n display: inline-block;\n height: 2em;\n line-height: 2em;\n position: relative;\n vertical-align: middle;\n width: 2.5em; }\n\n.fa-stack-1x,\n.fa-stack-2x {\n left: 0;\n position: absolute;\n text-align: center;\n width: 100%; }\n\n.fa-stack-1x {\n line-height: inherit; }\n\n.fa-stack-2x {\n font-size: 2em; }\n\n.fa-inverse {\n color: #fff; }\n\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\nreaders do not read off random characters that represent icons */\n.fa-500px:before {\n content: \"\\f26e\"; }\n\n.fa-accessible-icon:before {\n content: \"\\f368\"; }\n\n.fa-accusoft:before {\n content: \"\\f369\"; }\n\n.fa-acquisitions-incorporated:before {\n content: \"\\f6af\"; }\n\n.fa-ad:before {\n content: \"\\f641\"; }\n\n.fa-address-book:before {\n content: \"\\f2b9\"; }\n\n.fa-address-card:before {\n content: \"\\f2bb\"; }\n\n.fa-adjust:before {\n content: \"\\f042\"; }\n\n.fa-adn:before {\n content: \"\\f170\"; }\n\n.fa-adversal:before {\n content: \"\\f36a\"; }\n\n.fa-affiliatetheme:before {\n content: \"\\f36b\"; }\n\n.fa-air-freshener:before {\n content: \"\\f5d0\"; }\n\n.fa-algolia:before {\n content: \"\\f36c\"; }\n\n.fa-align-center:before {\n content: \"\\f037\"; }\n\n.fa-align-justify:before {\n content: \"\\f039\"; }\n\n.fa-align-left:before {\n content: \"\\f036\"; }\n\n.fa-align-right:before {\n content: \"\\f038\"; }\n\n.fa-alipay:before {\n content: \"\\f642\"; }\n\n.fa-allergies:before {\n content: \"\\f461\"; }\n\n.fa-amazon:before {\n content: \"\\f270\"; }\n\n.fa-amazon-pay:before {\n content: \"\\f42c\"; }\n\n.fa-ambulance:before {\n content: \"\\f0f9\"; }\n\n.fa-american-sign-language-interpreting:before {\n content: \"\\f2a3\"; }\n\n.fa-amilia:before {\n content: \"\\f36d\"; }\n\n.fa-anchor:before {\n content: \"\\f13d\"; }\n\n.fa-android:before {\n content: \"\\f17b\"; }\n\n.fa-angellist:before {\n content: \"\\f209\"; }\n\n.fa-angle-double-down:before {\n content: \"\\f103\"; }\n\n.fa-angle-double-left:before {\n content: \"\\f100\"; }\n\n.fa-angle-double-right:before {\n content: \"\\f101\"; }\n\n.fa-angle-double-up:before {\n content: \"\\f102\"; }\n\n.fa-angle-down:before {\n content: \"\\f107\"; }\n\n.fa-angle-left:before {\n content: \"\\f104\"; }\n\n.fa-angle-right:before {\n content: \"\\f105\"; }\n\n.fa-angle-up:before {\n content: \"\\f106\"; }\n\n.fa-angry:before {\n content: \"\\f556\"; }\n\n.fa-angrycreative:before {\n content: \"\\f36e\"; }\n\n.fa-angular:before {\n content: \"\\f420\"; }\n\n.fa-ankh:before {\n content: \"\\f644\"; }\n\n.fa-app-store:before {\n content: \"\\f36f\"; }\n\n.fa-app-store-ios:before {\n content: \"\\f370\"; }\n\n.fa-apper:before {\n content: \"\\f371\"; }\n\n.fa-apple:before {\n content: \"\\f179\"; }\n\n.fa-apple-alt:before {\n content: \"\\f5d1\"; }\n\n.fa-apple-pay:before {\n content: \"\\f415\"; }\n\n.fa-archive:before {\n content: \"\\f187\"; }\n\n.fa-archway:before {\n content: \"\\f557\"; }\n\n.fa-arrow-alt-circle-down:before {\n content: \"\\f358\"; }\n\n.fa-arrow-alt-circle-left:before {\n content: \"\\f359\"; }\n\n.fa-arrow-alt-circle-right:before {\n content: \"\\f35a\"; }\n\n.fa-arrow-alt-circle-up:before {\n content: \"\\f35b\"; }\n\n.fa-arrow-circle-down:before {\n content: \"\\f0ab\"; }\n\n.fa-arrow-circle-left:before {\n content: \"\\f0a8\"; }\n\n.fa-arrow-circle-right:before {\n content: \"\\f0a9\"; }\n\n.fa-arrow-circle-up:before {\n content: \"\\f0aa\"; }\n\n.fa-arrow-down:before {\n content: \"\\f063\"; }\n\n.fa-arrow-left:before {\n content: \"\\f060\"; }\n\n.fa-arrow-right:before {\n content: \"\\f061\"; }\n\n.fa-arrow-up:before {\n content: \"\\f062\"; }\n\n.fa-arrows-alt:before {\n content: \"\\f0b2\"; }\n\n.fa-arrows-alt-h:before {\n content: \"\\f337\"; }\n\n.fa-arrows-alt-v:before {\n content: \"\\f338\"; }\n\n.fa-assistive-listening-systems:before {\n content: \"\\f2a2\"; }\n\n.fa-asterisk:before {\n content: \"\\f069\"; }\n\n.fa-asymmetrik:before {\n content: \"\\f372\"; }\n\n.fa-at:before {\n content: \"\\f1fa\"; }\n\n.fa-atlas:before {\n content: \"\\f558\"; }\n\n.fa-atom:before {\n content: \"\\f5d2\"; }\n\n.fa-audible:before {\n content: \"\\f373\"; }\n\n.fa-audio-description:before {\n content: \"\\f29e\"; }\n\n.fa-autoprefixer:before {\n content: \"\\f41c\"; }\n\n.fa-avianex:before {\n content: \"\\f374\"; }\n\n.fa-aviato:before {\n content: \"\\f421\"; }\n\n.fa-award:before {\n content: \"\\f559\"; }\n\n.fa-aws:before {\n content: \"\\f375\"; }\n\n.fa-backspace:before {\n content: \"\\f55a\"; }\n\n.fa-backward:before {\n content: \"\\f04a\"; }\n\n.fa-balance-scale:before {\n content: \"\\f24e\"; }\n\n.fa-ban:before {\n content: \"\\f05e\"; }\n\n.fa-band-aid:before {\n content: \"\\f462\"; }\n\n.fa-bandcamp:before {\n content: \"\\f2d5\"; }\n\n.fa-barcode:before {\n content: \"\\f02a\"; }\n\n.fa-bars:before {\n content: \"\\f0c9\"; }\n\n.fa-baseball-ball:before {\n content: \"\\f433\"; }\n\n.fa-basketball-ball:before {\n content: \"\\f434\"; }\n\n.fa-bath:before {\n content: \"\\f2cd\"; }\n\n.fa-battery-empty:before {\n content: \"\\f244\"; }\n\n.fa-battery-full:before {\n content: \"\\f240\"; }\n\n.fa-battery-half:before {\n content: \"\\f242\"; }\n\n.fa-battery-quarter:before {\n content: \"\\f243\"; }\n\n.fa-battery-three-quarters:before {\n content: \"\\f241\"; }\n\n.fa-bed:before {\n content: \"\\f236\"; }\n\n.fa-beer:before {\n content: \"\\f0fc\"; }\n\n.fa-behance:before {\n content: \"\\f1b4\"; }\n\n.fa-behance-square:before {\n content: \"\\f1b5\"; }\n\n.fa-bell:before {\n content: \"\\f0f3\"; }\n\n.fa-bell-slash:before {\n content: \"\\f1f6\"; }\n\n.fa-bezier-curve:before {\n content: \"\\f55b\"; }\n\n.fa-bible:before {\n content: \"\\f647\"; }\n\n.fa-bicycle:before {\n content: \"\\f206\"; }\n\n.fa-bimobject:before {\n content: \"\\f378\"; }\n\n.fa-binoculars:before {\n content: \"\\f1e5\"; }\n\n.fa-birthday-cake:before {\n content: \"\\f1fd\"; }\n\n.fa-bitbucket:before {\n content: \"\\f171\"; }\n\n.fa-bitcoin:before {\n content: \"\\f379\"; }\n\n.fa-bity:before {\n content: \"\\f37a\"; }\n\n.fa-black-tie:before {\n content: \"\\f27e\"; }\n\n.fa-blackberry:before {\n content: \"\\f37b\"; }\n\n.fa-blender:before {\n content: \"\\f517\"; }\n\n.fa-blender-phone:before {\n content: \"\\f6b6\"; }\n\n.fa-blind:before {\n content: \"\\f29d\"; }\n\n.fa-blogger:before {\n content: \"\\f37c\"; }\n\n.fa-blogger-b:before {\n content: \"\\f37d\"; }\n\n.fa-bluetooth:before {\n content: \"\\f293\"; }\n\n.fa-bluetooth-b:before {\n content: \"\\f294\"; }\n\n.fa-bold:before {\n content: \"\\f032\"; }\n\n.fa-bolt:before {\n content: \"\\f0e7\"; }\n\n.fa-bomb:before {\n content: \"\\f1e2\"; }\n\n.fa-bone:before {\n content: \"\\f5d7\"; }\n\n.fa-bong:before {\n content: \"\\f55c\"; }\n\n.fa-book:before {\n content: \"\\f02d\"; }\n\n.fa-book-dead:before {\n content: \"\\f6b7\"; }\n\n.fa-book-open:before {\n content: \"\\f518\"; }\n\n.fa-book-reader:before {\n content: \"\\f5da\"; }\n\n.fa-bookmark:before {\n content: \"\\f02e\"; }\n\n.fa-bowling-ball:before {\n content: \"\\f436\"; }\n\n.fa-box:before {\n content: \"\\f466\"; }\n\n.fa-box-open:before {\n content: \"\\f49e\"; }\n\n.fa-boxes:before {\n content: \"\\f468\"; }\n\n.fa-braille:before {\n content: \"\\f2a1\"; }\n\n.fa-brain:before {\n content: \"\\f5dc\"; }\n\n.fa-briefcase:before {\n content: \"\\f0b1\"; }\n\n.fa-briefcase-medical:before {\n content: \"\\f469\"; }\n\n.fa-broadcast-tower:before {\n content: \"\\f519\"; }\n\n.fa-broom:before {\n content: \"\\f51a\"; }\n\n.fa-brush:before {\n content: \"\\f55d\"; }\n\n.fa-btc:before {\n content: \"\\f15a\"; }\n\n.fa-bug:before {\n content: \"\\f188\"; }\n\n.fa-building:before {\n content: \"\\f1ad\"; }\n\n.fa-bullhorn:before {\n content: \"\\f0a1\"; }\n\n.fa-bullseye:before {\n content: \"\\f140\"; }\n\n.fa-burn:before {\n content: \"\\f46a\"; }\n\n.fa-buromobelexperte:before {\n content: \"\\f37f\"; }\n\n.fa-bus:before {\n content: \"\\f207\"; }\n\n.fa-bus-alt:before {\n content: \"\\f55e\"; }\n\n.fa-business-time:before {\n content: \"\\f64a\"; }\n\n.fa-buysellads:before {\n content: \"\\f20d\"; }\n\n.fa-calculator:before {\n content: \"\\f1ec\"; }\n\n.fa-calendar:before {\n content: \"\\f133\"; }\n\n.fa-calendar-alt:before {\n content: \"\\f073\"; }\n\n.fa-calendar-check:before {\n content: \"\\f274\"; }\n\n.fa-calendar-minus:before {\n content: \"\\f272\"; }\n\n.fa-calendar-plus:before {\n content: \"\\f271\"; }\n\n.fa-calendar-times:before {\n content: \"\\f273\"; }\n\n.fa-camera:before {\n content: \"\\f030\"; }\n\n.fa-camera-retro:before {\n content: \"\\f083\"; }\n\n.fa-campground:before {\n content: \"\\f6bb\"; }\n\n.fa-cannabis:before {\n content: \"\\f55f\"; }\n\n.fa-capsules:before {\n content: \"\\f46b\"; }\n\n.fa-car:before {\n content: \"\\f1b9\"; }\n\n.fa-car-alt:before {\n content: \"\\f5de\"; }\n\n.fa-car-battery:before {\n content: \"\\f5df\"; }\n\n.fa-car-crash:before {\n content: \"\\f5e1\"; }\n\n.fa-car-side:before {\n content: \"\\f5e4\"; }\n\n.fa-caret-down:before {\n content: \"\\f0d7\"; }\n\n.fa-caret-left:before {\n content: \"\\f0d9\"; }\n\n.fa-caret-right:before {\n content: \"\\f0da\"; }\n\n.fa-caret-square-down:before {\n content: \"\\f150\"; }\n\n.fa-caret-square-left:before {\n content: \"\\f191\"; }\n\n.fa-caret-square-right:before {\n content: \"\\f152\"; }\n\n.fa-caret-square-up:before {\n content: \"\\f151\"; }\n\n.fa-caret-up:before {\n content: \"\\f0d8\"; }\n\n.fa-cart-arrow-down:before {\n content: \"\\f218\"; }\n\n.fa-cart-plus:before {\n content: \"\\f217\"; }\n\n.fa-cat:before {\n content: \"\\f6be\"; }\n\n.fa-cc-amazon-pay:before {\n content: \"\\f42d\"; }\n\n.fa-cc-amex:before {\n content: \"\\f1f3\"; }\n\n.fa-cc-apple-pay:before {\n content: \"\\f416\"; }\n\n.fa-cc-diners-club:before {\n content: \"\\f24c\"; }\n\n.fa-cc-discover:before {\n content: \"\\f1f2\"; }\n\n.fa-cc-jcb:before {\n content: \"\\f24b\"; }\n\n.fa-cc-mastercard:before {\n content: \"\\f1f1\"; }\n\n.fa-cc-paypal:before {\n content: \"\\f1f4\"; }\n\n.fa-cc-stripe:before {\n content: \"\\f1f5\"; }\n\n.fa-cc-visa:before {\n content: \"\\f1f0\"; }\n\n.fa-centercode:before {\n content: \"\\f380\"; }\n\n.fa-certificate:before {\n content: \"\\f0a3\"; }\n\n.fa-chair:before {\n content: \"\\f6c0\"; }\n\n.fa-chalkboard:before {\n content: \"\\f51b\"; }\n\n.fa-chalkboard-teacher:before {\n content: \"\\f51c\"; }\n\n.fa-charging-station:before {\n content: \"\\f5e7\"; }\n\n.fa-chart-area:before {\n content: \"\\f1fe\"; }\n\n.fa-chart-bar:before {\n content: \"\\f080\"; }\n\n.fa-chart-line:before {\n content: \"\\f201\"; }\n\n.fa-chart-pie:before {\n content: \"\\f200\"; }\n\n.fa-check:before {\n content: \"\\f00c\"; }\n\n.fa-check-circle:before {\n content: \"\\f058\"; }\n\n.fa-check-double:before {\n content: \"\\f560\"; }\n\n.fa-check-square:before {\n content: \"\\f14a\"; }\n\n.fa-chess:before {\n content: \"\\f439\"; }\n\n.fa-chess-bishop:before {\n content: \"\\f43a\"; }\n\n.fa-chess-board:before {\n content: \"\\f43c\"; }\n\n.fa-chess-king:before {\n content: \"\\f43f\"; }\n\n.fa-chess-knight:before {\n content: \"\\f441\"; }\n\n.fa-chess-pawn:before {\n content: \"\\f443\"; }\n\n.fa-chess-queen:before {\n content: \"\\f445\"; }\n\n.fa-chess-rook:before {\n content: \"\\f447\"; }\n\n.fa-chevron-circle-down:before {\n content: \"\\f13a\"; }\n\n.fa-chevron-circle-left:before {\n content: \"\\f137\"; }\n\n.fa-chevron-circle-right:before {\n content: \"\\f138\"; }\n\n.fa-chevron-circle-up:before {\n content: \"\\f139\"; }\n\n.fa-chevron-down:before {\n content: \"\\f078\"; }\n\n.fa-chevron-left:before {\n content: \"\\f053\"; }\n\n.fa-chevron-right:before {\n content: \"\\f054\"; }\n\n.fa-chevron-up:before {\n content: \"\\f077\"; }\n\n.fa-child:before {\n content: \"\\f1ae\"; }\n\n.fa-chrome:before {\n content: \"\\f268\"; }\n\n.fa-church:before {\n content: \"\\f51d\"; }\n\n.fa-circle:before {\n content: \"\\f111\"; }\n\n.fa-circle-notch:before {\n content: \"\\f1ce\"; }\n\n.fa-city:before {\n content: \"\\f64f\"; }\n\n.fa-clipboard:before {\n content: \"\\f328\"; }\n\n.fa-clipboard-check:before {\n content: \"\\f46c\"; }\n\n.fa-clipboard-list:before {\n content: \"\\f46d\"; }\n\n.fa-clock:before {\n content: \"\\f017\"; }\n\n.fa-clone:before {\n content: \"\\f24d\"; }\n\n.fa-closed-captioning:before {\n content: \"\\f20a\"; }\n\n.fa-cloud:before {\n content: \"\\f0c2\"; }\n\n.fa-cloud-download-alt:before {\n content: \"\\f381\"; }\n\n.fa-cloud-meatball:before {\n content: \"\\f73b\"; }\n\n.fa-cloud-moon:before {\n content: \"\\f6c3\"; }\n\n.fa-cloud-moon-rain:before {\n content: \"\\f73c\"; }\n\n.fa-cloud-rain:before {\n content: \"\\f73d\"; }\n\n.fa-cloud-showers-heavy:before {\n content: \"\\f740\"; }\n\n.fa-cloud-sun:before {\n content: \"\\f6c4\"; }\n\n.fa-cloud-sun-rain:before {\n content: \"\\f743\"; }\n\n.fa-cloud-upload-alt:before {\n content: \"\\f382\"; }\n\n.fa-cloudscale:before {\n content: \"\\f383\"; }\n\n.fa-cloudsmith:before {\n content: \"\\f384\"; }\n\n.fa-cloudversify:before {\n content: \"\\f385\"; }\n\n.fa-cocktail:before {\n content: \"\\f561\"; }\n\n.fa-code:before {\n content: \"\\f121\"; }\n\n.fa-code-branch:before {\n content: \"\\f126\"; }\n\n.fa-codepen:before {\n content: \"\\f1cb\"; }\n\n.fa-codiepie:before {\n content: \"\\f284\"; }\n\n.fa-coffee:before {\n content: \"\\f0f4\"; }\n\n.fa-cog:before {\n content: \"\\f013\"; }\n\n.fa-cogs:before {\n content: \"\\f085\"; }\n\n.fa-coins:before {\n content: \"\\f51e\"; }\n\n.fa-columns:before {\n content: \"\\f0db\"; }\n\n.fa-comment:before {\n content: \"\\f075\"; }\n\n.fa-comment-alt:before {\n content: \"\\f27a\"; }\n\n.fa-comment-dollar:before {\n content: \"\\f651\"; }\n\n.fa-comment-dots:before {\n content: \"\\f4ad\"; }\n\n.fa-comment-slash:before {\n content: \"\\f4b3\"; }\n\n.fa-comments:before {\n content: \"\\f086\"; }\n\n.fa-comments-dollar:before {\n content: \"\\f653\"; }\n\n.fa-compact-disc:before {\n content: \"\\f51f\"; }\n\n.fa-compass:before {\n content: \"\\f14e\"; }\n\n.fa-compress:before {\n content: \"\\f066\"; }\n\n.fa-compress-arrows-alt:before {\n content: \"\\f78c\"; }\n\n.fa-concierge-bell:before {\n content: \"\\f562\"; }\n\n.fa-connectdevelop:before {\n content: \"\\f20e\"; }\n\n.fa-contao:before {\n content: \"\\f26d\"; }\n\n.fa-cookie:before {\n content: \"\\f563\"; }\n\n.fa-cookie-bite:before {\n content: \"\\f564\"; }\n\n.fa-copy:before {\n content: \"\\f0c5\"; }\n\n.fa-copyright:before {\n content: \"\\f1f9\"; }\n\n.fa-couch:before {\n content: \"\\f4b8\"; }\n\n.fa-cpanel:before {\n content: \"\\f388\"; }\n\n.fa-creative-commons:before {\n content: \"\\f25e\"; }\n\n.fa-creative-commons-by:before {\n content: \"\\f4e7\"; }\n\n.fa-creative-commons-nc:before {\n content: \"\\f4e8\"; }\n\n.fa-creative-commons-nc-eu:before {\n content: \"\\f4e9\"; }\n\n.fa-creative-commons-nc-jp:before {\n content: \"\\f4ea\"; }\n\n.fa-creative-commons-nd:before {\n content: \"\\f4eb\"; }\n\n.fa-creative-commons-pd:before {\n content: \"\\f4ec\"; }\n\n.fa-creative-commons-pd-alt:before {\n content: \"\\f4ed\"; }\n\n.fa-creative-commons-remix:before {\n content: \"\\f4ee\"; }\n\n.fa-creative-commons-sa:before {\n content: \"\\f4ef\"; }\n\n.fa-creative-commons-sampling:before {\n content: \"\\f4f0\"; }\n\n.fa-creative-commons-sampling-plus:before {\n content: \"\\f4f1\"; }\n\n.fa-creative-commons-share:before {\n content: \"\\f4f2\"; }\n\n.fa-creative-commons-zero:before {\n content: \"\\f4f3\"; }\n\n.fa-credit-card:before {\n content: \"\\f09d\"; }\n\n.fa-critical-role:before {\n content: \"\\f6c9\"; }\n\n.fa-crop:before {\n content: \"\\f125\"; }\n\n.fa-crop-alt:before {\n content: \"\\f565\"; }\n\n.fa-cross:before {\n content: \"\\f654\"; }\n\n.fa-crosshairs:before {\n content: \"\\f05b\"; }\n\n.fa-crow:before {\n content: \"\\f520\"; }\n\n.fa-crown:before {\n content: \"\\f521\"; }\n\n.fa-css3:before {\n content: \"\\f13c\"; }\n\n.fa-css3-alt:before {\n content: \"\\f38b\"; }\n\n.fa-cube:before {\n content: \"\\f1b2\"; }\n\n.fa-cubes:before {\n content: \"\\f1b3\"; }\n\n.fa-cut:before {\n content: \"\\f0c4\"; }\n\n.fa-cuttlefish:before {\n content: \"\\f38c\"; }\n\n.fa-d-and-d:before {\n content: \"\\f38d\"; }\n\n.fa-d-and-d-beyond:before {\n content: \"\\f6ca\"; }\n\n.fa-dashcube:before {\n content: \"\\f210\"; }\n\n.fa-database:before {\n content: \"\\f1c0\"; }\n\n.fa-deaf:before {\n content: \"\\f2a4\"; }\n\n.fa-delicious:before {\n content: \"\\f1a5\"; }\n\n.fa-democrat:before {\n content: \"\\f747\"; }\n\n.fa-deploydog:before {\n content: \"\\f38e\"; }\n\n.fa-deskpro:before {\n content: \"\\f38f\"; }\n\n.fa-desktop:before {\n content: \"\\f108\"; }\n\n.fa-dev:before {\n content: \"\\f6cc\"; }\n\n.fa-deviantart:before {\n content: \"\\f1bd\"; }\n\n.fa-dharmachakra:before {\n content: \"\\f655\"; }\n\n.fa-diagnoses:before {\n content: \"\\f470\"; }\n\n.fa-dice:before {\n content: \"\\f522\"; }\n\n.fa-dice-d20:before {\n content: \"\\f6cf\"; }\n\n.fa-dice-d6:before {\n content: \"\\f6d1\"; }\n\n.fa-dice-five:before {\n content: \"\\f523\"; }\n\n.fa-dice-four:before {\n content: \"\\f524\"; }\n\n.fa-dice-one:before {\n content: \"\\f525\"; }\n\n.fa-dice-six:before {\n content: \"\\f526\"; }\n\n.fa-dice-three:before {\n content: \"\\f527\"; }\n\n.fa-dice-two:before {\n content: \"\\f528\"; }\n\n.fa-digg:before {\n content: \"\\f1a6\"; }\n\n.fa-digital-ocean:before {\n content: \"\\f391\"; }\n\n.fa-digital-tachograph:before {\n content: \"\\f566\"; }\n\n.fa-directions:before {\n content: \"\\f5eb\"; }\n\n.fa-discord:before {\n content: \"\\f392\"; }\n\n.fa-discourse:before {\n content: \"\\f393\"; }\n\n.fa-divide:before {\n content: \"\\f529\"; }\n\n.fa-dizzy:before {\n content: \"\\f567\"; }\n\n.fa-dna:before {\n content: \"\\f471\"; }\n\n.fa-dochub:before {\n content: \"\\f394\"; }\n\n.fa-docker:before {\n content: \"\\f395\"; }\n\n.fa-dog:before {\n content: \"\\f6d3\"; }\n\n.fa-dollar-sign:before {\n content: \"\\f155\"; }\n\n.fa-dolly:before {\n content: \"\\f472\"; }\n\n.fa-dolly-flatbed:before {\n content: \"\\f474\"; }\n\n.fa-donate:before {\n content: \"\\f4b9\"; }\n\n.fa-door-closed:before {\n content: \"\\f52a\"; }\n\n.fa-door-open:before {\n content: \"\\f52b\"; }\n\n.fa-dot-circle:before {\n content: \"\\f192\"; }\n\n.fa-dove:before {\n content: \"\\f4ba\"; }\n\n.fa-download:before {\n content: \"\\f019\"; }\n\n.fa-draft2digital:before {\n content: \"\\f396\"; }\n\n.fa-drafting-compass:before {\n content: \"\\f568\"; }\n\n.fa-dragon:before {\n content: \"\\f6d5\"; }\n\n.fa-draw-polygon:before {\n content: \"\\f5ee\"; }\n\n.fa-dribbble:before {\n content: \"\\f17d\"; }\n\n.fa-dribbble-square:before {\n content: \"\\f397\"; }\n\n.fa-dropbox:before {\n content: \"\\f16b\"; }\n\n.fa-drum:before {\n content: \"\\f569\"; }\n\n.fa-drum-steelpan:before {\n content: \"\\f56a\"; }\n\n.fa-drumstick-bite:before {\n content: \"\\f6d7\"; }\n\n.fa-drupal:before {\n content: \"\\f1a9\"; }\n\n.fa-dumbbell:before {\n content: \"\\f44b\"; }\n\n.fa-dungeon:before {\n content: \"\\f6d9\"; }\n\n.fa-dyalog:before {\n content: \"\\f399\"; }\n\n.fa-earlybirds:before {\n content: \"\\f39a\"; }\n\n.fa-ebay:before {\n content: \"\\f4f4\"; }\n\n.fa-edge:before {\n content: \"\\f282\"; }\n\n.fa-edit:before {\n content: \"\\f044\"; }\n\n.fa-eject:before {\n content: \"\\f052\"; }\n\n.fa-elementor:before {\n content: \"\\f430\"; }\n\n.fa-ellipsis-h:before {\n content: \"\\f141\"; }\n\n.fa-ellipsis-v:before {\n content: \"\\f142\"; }\n\n.fa-ello:before {\n content: \"\\f5f1\"; }\n\n.fa-ember:before {\n content: \"\\f423\"; }\n\n.fa-empire:before {\n content: \"\\f1d1\"; }\n\n.fa-envelope:before {\n content: \"\\f0e0\"; }\n\n.fa-envelope-open:before {\n content: \"\\f2b6\"; }\n\n.fa-envelope-open-text:before {\n content: \"\\f658\"; }\n\n.fa-envelope-square:before {\n content: \"\\f199\"; }\n\n.fa-envira:before {\n content: \"\\f299\"; }\n\n.fa-equals:before {\n content: \"\\f52c\"; }\n\n.fa-eraser:before {\n content: \"\\f12d\"; }\n\n.fa-erlang:before {\n content: \"\\f39d\"; }\n\n.fa-ethereum:before {\n content: \"\\f42e\"; }\n\n.fa-etsy:before {\n content: \"\\f2d7\"; }\n\n.fa-euro-sign:before {\n content: \"\\f153\"; }\n\n.fa-exchange-alt:before {\n content: \"\\f362\"; }\n\n.fa-exclamation:before {\n content: \"\\f12a\"; }\n\n.fa-exclamation-circle:before {\n content: \"\\f06a\"; }\n\n.fa-exclamation-triangle:before {\n content: \"\\f071\"; }\n\n.fa-expand:before {\n content: \"\\f065\"; }\n\n.fa-expand-arrows-alt:before {\n content: \"\\f31e\"; }\n\n.fa-expeditedssl:before {\n content: \"\\f23e\"; }\n\n.fa-external-link-alt:before {\n content: \"\\f35d\"; }\n\n.fa-external-link-square-alt:before {\n content: \"\\f360\"; }\n\n.fa-eye:before {\n content: \"\\f06e\"; }\n\n.fa-eye-dropper:before {\n content: \"\\f1fb\"; }\n\n.fa-eye-slash:before {\n content: \"\\f070\"; }\n\n.fa-facebook:before {\n content: \"\\f09a\"; }\n\n.fa-facebook-f:before {\n content: \"\\f39e\"; }\n\n.fa-facebook-messenger:before {\n content: \"\\f39f\"; }\n\n.fa-facebook-square:before {\n content: \"\\f082\"; }\n\n.fa-fantasy-flight-games:before {\n content: \"\\f6dc\"; }\n\n.fa-fast-backward:before {\n content: \"\\f049\"; }\n\n.fa-fast-forward:before {\n content: \"\\f050\"; }\n\n.fa-fax:before {\n content: \"\\f1ac\"; }\n\n.fa-feather:before {\n content: \"\\f52d\"; }\n\n.fa-feather-alt:before {\n content: \"\\f56b\"; }\n\n.fa-female:before {\n content: \"\\f182\"; }\n\n.fa-fighter-jet:before {\n content: \"\\f0fb\"; }\n\n.fa-file:before {\n content: \"\\f15b\"; }\n\n.fa-file-alt:before {\n content: \"\\f15c\"; }\n\n.fa-file-archive:before {\n content: \"\\f1c6\"; }\n\n.fa-file-audio:before {\n content: \"\\f1c7\"; }\n\n.fa-file-code:before {\n content: \"\\f1c9\"; }\n\n.fa-file-contract:before {\n content: \"\\f56c\"; }\n\n.fa-file-csv:before {\n content: \"\\f6dd\"; }\n\n.fa-file-download:before {\n content: \"\\f56d\"; }\n\n.fa-file-excel:before {\n content: \"\\f1c3\"; }\n\n.fa-file-export:before {\n content: \"\\f56e\"; }\n\n.fa-file-image:before {\n content: \"\\f1c5\"; }\n\n.fa-file-import:before {\n content: \"\\f56f\"; }\n\n.fa-file-invoice:before {\n content: \"\\f570\"; }\n\n.fa-file-invoice-dollar:before {\n content: \"\\f571\"; }\n\n.fa-file-medical:before {\n content: \"\\f477\"; }\n\n.fa-file-medical-alt:before {\n content: \"\\f478\"; }\n\n.fa-file-pdf:before {\n content: \"\\f1c1\"; }\n\n.fa-file-powerpoint:before {\n content: \"\\f1c4\"; }\n\n.fa-file-prescription:before {\n content: \"\\f572\"; }\n\n.fa-file-signature:before {\n content: \"\\f573\"; }\n\n.fa-file-upload:before {\n content: \"\\f574\"; }\n\n.fa-file-video:before {\n content: \"\\f1c8\"; }\n\n.fa-file-word:before {\n content: \"\\f1c2\"; }\n\n.fa-fill:before {\n content: \"\\f575\"; }\n\n.fa-fill-drip:before {\n content: \"\\f576\"; }\n\n.fa-film:before {\n content: \"\\f008\"; }\n\n.fa-filter:before {\n content: \"\\f0b0\"; }\n\n.fa-fingerprint:before {\n content: \"\\f577\"; }\n\n.fa-fire:before {\n content: \"\\f06d\"; }\n\n.fa-fire-extinguisher:before {\n content: \"\\f134\"; }\n\n.fa-firefox:before {\n content: \"\\f269\"; }\n\n.fa-first-aid:before {\n content: \"\\f479\"; }\n\n.fa-first-order:before {\n content: \"\\f2b0\"; }\n\n.fa-first-order-alt:before {\n content: \"\\f50a\"; }\n\n.fa-firstdraft:before {\n content: \"\\f3a1\"; }\n\n.fa-fish:before {\n content: \"\\f578\"; }\n\n.fa-fist-raised:before {\n content: \"\\f6de\"; }\n\n.fa-flag:before {\n content: \"\\f024\"; }\n\n.fa-flag-checkered:before {\n content: \"\\f11e\"; }\n\n.fa-flag-usa:before {\n content: \"\\f74d\"; }\n\n.fa-flask:before {\n content: \"\\f0c3\"; }\n\n.fa-flickr:before {\n content: \"\\f16e\"; }\n\n.fa-flipboard:before {\n content: \"\\f44d\"; }\n\n.fa-flushed:before {\n content: \"\\f579\"; }\n\n.fa-fly:before {\n content: \"\\f417\"; }\n\n.fa-folder:before {\n content: \"\\f07b\"; }\n\n.fa-folder-minus:before {\n content: \"\\f65d\"; }\n\n.fa-folder-open:before {\n content: \"\\f07c\"; }\n\n.fa-folder-plus:before {\n content: \"\\f65e\"; }\n\n.fa-font:before {\n content: \"\\f031\"; }\n\n.fa-font-awesome:before {\n content: \"\\f2b4\"; }\n\n.fa-font-awesome-alt:before {\n content: \"\\f35c\"; }\n\n.fa-font-awesome-flag:before {\n content: \"\\f425\"; }\n\n.fa-font-awesome-logo-full:before {\n content: \"\\f4e6\"; }\n\n.fa-fonticons:before {\n content: \"\\f280\"; }\n\n.fa-fonticons-fi:before {\n content: \"\\f3a2\"; }\n\n.fa-football-ball:before {\n content: \"\\f44e\"; }\n\n.fa-fort-awesome:before {\n content: \"\\f286\"; }\n\n.fa-fort-awesome-alt:before {\n content: \"\\f3a3\"; }\n\n.fa-forumbee:before {\n content: \"\\f211\"; }\n\n.fa-forward:before {\n content: \"\\f04e\"; }\n\n.fa-foursquare:before {\n content: \"\\f180\"; }\n\n.fa-free-code-camp:before {\n content: \"\\f2c5\"; }\n\n.fa-freebsd:before {\n content: \"\\f3a4\"; }\n\n.fa-frog:before {\n content: \"\\f52e\"; }\n\n.fa-frown:before {\n content: \"\\f119\"; }\n\n.fa-frown-open:before {\n content: \"\\f57a\"; }\n\n.fa-fulcrum:before {\n content: \"\\f50b\"; }\n\n.fa-funnel-dollar:before {\n content: \"\\f662\"; }\n\n.fa-futbol:before {\n content: \"\\f1e3\"; }\n\n.fa-galactic-republic:before {\n content: \"\\f50c\"; }\n\n.fa-galactic-senate:before {\n content: \"\\f50d\"; }\n\n.fa-gamepad:before {\n content: \"\\f11b\"; }\n\n.fa-gas-pump:before {\n content: \"\\f52f\"; }\n\n.fa-gavel:before {\n content: \"\\f0e3\"; }\n\n.fa-gem:before {\n content: \"\\f3a5\"; }\n\n.fa-genderless:before {\n content: \"\\f22d\"; }\n\n.fa-get-pocket:before {\n content: \"\\f265\"; }\n\n.fa-gg:before {\n content: \"\\f260\"; }\n\n.fa-gg-circle:before {\n content: \"\\f261\"; }\n\n.fa-ghost:before {\n content: \"\\f6e2\"; }\n\n.fa-gift:before {\n content: \"\\f06b\"; }\n\n.fa-git:before {\n content: \"\\f1d3\"; }\n\n.fa-git-square:before {\n content: \"\\f1d2\"; }\n\n.fa-github:before {\n content: \"\\f09b\"; }\n\n.fa-github-alt:before {\n content: \"\\f113\"; }\n\n.fa-github-square:before {\n content: \"\\f092\"; }\n\n.fa-gitkraken:before {\n content: \"\\f3a6\"; }\n\n.fa-gitlab:before {\n content: \"\\f296\"; }\n\n.fa-gitter:before {\n content: \"\\f426\"; }\n\n.fa-glass-martini:before {\n content: \"\\f000\"; }\n\n.fa-glass-martini-alt:before {\n content: \"\\f57b\"; }\n\n.fa-glasses:before {\n content: \"\\f530\"; }\n\n.fa-glide:before {\n content: \"\\f2a5\"; }\n\n.fa-glide-g:before {\n content: \"\\f2a6\"; }\n\n.fa-globe:before {\n content: \"\\f0ac\"; }\n\n.fa-globe-africa:before {\n content: \"\\f57c\"; }\n\n.fa-globe-americas:before {\n content: \"\\f57d\"; }\n\n.fa-globe-asia:before {\n content: \"\\f57e\"; }\n\n.fa-gofore:before {\n content: \"\\f3a7\"; }\n\n.fa-golf-ball:before {\n content: \"\\f450\"; }\n\n.fa-goodreads:before {\n content: \"\\f3a8\"; }\n\n.fa-goodreads-g:before {\n content: \"\\f3a9\"; }\n\n.fa-google:before {\n content: \"\\f1a0\"; }\n\n.fa-google-drive:before {\n content: \"\\f3aa\"; }\n\n.fa-google-play:before {\n content: \"\\f3ab\"; }\n\n.fa-google-plus:before {\n content: \"\\f2b3\"; }\n\n.fa-google-plus-g:before {\n content: \"\\f0d5\"; }\n\n.fa-google-plus-square:before {\n content: \"\\f0d4\"; }\n\n.fa-google-wallet:before {\n content: \"\\f1ee\"; }\n\n.fa-gopuram:before {\n content: \"\\f664\"; }\n\n.fa-graduation-cap:before {\n content: \"\\f19d\"; }\n\n.fa-gratipay:before {\n content: \"\\f184\"; }\n\n.fa-grav:before {\n content: \"\\f2d6\"; }\n\n.fa-greater-than:before {\n content: \"\\f531\"; }\n\n.fa-greater-than-equal:before {\n content: \"\\f532\"; }\n\n.fa-grimace:before {\n content: \"\\f57f\"; }\n\n.fa-grin:before {\n content: \"\\f580\"; }\n\n.fa-grin-alt:before {\n content: \"\\f581\"; }\n\n.fa-grin-beam:before {\n content: \"\\f582\"; }\n\n.fa-grin-beam-sweat:before {\n content: \"\\f583\"; }\n\n.fa-grin-hearts:before {\n content: \"\\f584\"; }\n\n.fa-grin-squint:before {\n content: \"\\f585\"; }\n\n.fa-grin-squint-tears:before {\n content: \"\\f586\"; }\n\n.fa-grin-stars:before {\n content: \"\\f587\"; }\n\n.fa-grin-tears:before {\n content: \"\\f588\"; }\n\n.fa-grin-tongue:before {\n content: \"\\f589\"; }\n\n.fa-grin-tongue-squint:before {\n content: \"\\f58a\"; }\n\n.fa-grin-tongue-wink:before {\n content: \"\\f58b\"; }\n\n.fa-grin-wink:before {\n content: \"\\f58c\"; }\n\n.fa-grip-horizontal:before {\n content: \"\\f58d\"; }\n\n.fa-grip-vertical:before {\n content: \"\\f58e\"; }\n\n.fa-gripfire:before {\n content: \"\\f3ac\"; }\n\n.fa-grunt:before {\n content: \"\\f3ad\"; }\n\n.fa-gulp:before {\n content: \"\\f3ae\"; }\n\n.fa-h-square:before {\n content: \"\\f0fd\"; }\n\n.fa-hacker-news:before {\n content: \"\\f1d4\"; }\n\n.fa-hacker-news-square:before {\n content: \"\\f3af\"; }\n\n.fa-hackerrank:before {\n content: \"\\f5f7\"; }\n\n.fa-hammer:before {\n content: \"\\f6e3\"; }\n\n.fa-hamsa:before {\n content: \"\\f665\"; }\n\n.fa-hand-holding:before {\n content: \"\\f4bd\"; }\n\n.fa-hand-holding-heart:before {\n content: \"\\f4be\"; }\n\n.fa-hand-holding-usd:before {\n content: \"\\f4c0\"; }\n\n.fa-hand-lizard:before {\n content: \"\\f258\"; }\n\n.fa-hand-paper:before {\n content: \"\\f256\"; }\n\n.fa-hand-peace:before {\n content: \"\\f25b\"; }\n\n.fa-hand-point-down:before {\n content: \"\\f0a7\"; }\n\n.fa-hand-point-left:before {\n content: \"\\f0a5\"; }\n\n.fa-hand-point-right:before {\n content: \"\\f0a4\"; }\n\n.fa-hand-point-up:before {\n content: \"\\f0a6\"; }\n\n.fa-hand-pointer:before {\n content: \"\\f25a\"; }\n\n.fa-hand-rock:before {\n content: \"\\f255\"; }\n\n.fa-hand-scissors:before {\n content: \"\\f257\"; }\n\n.fa-hand-spock:before {\n content: \"\\f259\"; }\n\n.fa-hands:before {\n content: \"\\f4c2\"; }\n\n.fa-hands-helping:before {\n content: \"\\f4c4\"; }\n\n.fa-handshake:before {\n content: \"\\f2b5\"; }\n\n.fa-hanukiah:before {\n content: \"\\f6e6\"; }\n\n.fa-hashtag:before {\n content: \"\\f292\"; }\n\n.fa-hat-wizard:before {\n content: \"\\f6e8\"; }\n\n.fa-haykal:before {\n content: \"\\f666\"; }\n\n.fa-hdd:before {\n content: \"\\f0a0\"; }\n\n.fa-heading:before {\n content: \"\\f1dc\"; }\n\n.fa-headphones:before {\n content: \"\\f025\"; }\n\n.fa-headphones-alt:before {\n content: \"\\f58f\"; }\n\n.fa-headset:before {\n content: \"\\f590\"; }\n\n.fa-heart:before {\n content: \"\\f004\"; }\n\n.fa-heartbeat:before {\n content: \"\\f21e\"; }\n\n.fa-helicopter:before {\n content: \"\\f533\"; }\n\n.fa-highlighter:before {\n content: \"\\f591\"; }\n\n.fa-hiking:before {\n content: \"\\f6ec\"; }\n\n.fa-hippo:before {\n content: \"\\f6ed\"; }\n\n.fa-hips:before {\n content: \"\\f452\"; }\n\n.fa-hire-a-helper:before {\n content: \"\\f3b0\"; }\n\n.fa-history:before {\n content: \"\\f1da\"; }\n\n.fa-hockey-puck:before {\n content: \"\\f453\"; }\n\n.fa-home:before {\n content: \"\\f015\"; }\n\n.fa-hooli:before {\n content: \"\\f427\"; }\n\n.fa-hornbill:before {\n content: \"\\f592\"; }\n\n.fa-horse:before {\n content: \"\\f6f0\"; }\n\n.fa-hospital:before {\n content: \"\\f0f8\"; }\n\n.fa-hospital-alt:before {\n content: \"\\f47d\"; }\n\n.fa-hospital-symbol:before {\n content: \"\\f47e\"; }\n\n.fa-hot-tub:before {\n content: \"\\f593\"; }\n\n.fa-hotel:before {\n content: \"\\f594\"; }\n\n.fa-hotjar:before {\n content: \"\\f3b1\"; }\n\n.fa-hourglass:before {\n content: \"\\f254\"; }\n\n.fa-hourglass-end:before {\n content: \"\\f253\"; }\n\n.fa-hourglass-half:before {\n content: \"\\f252\"; }\n\n.fa-hourglass-start:before {\n content: \"\\f251\"; }\n\n.fa-house-damage:before {\n content: \"\\f6f1\"; }\n\n.fa-houzz:before {\n content: \"\\f27c\"; }\n\n.fa-hryvnia:before {\n content: \"\\f6f2\"; }\n\n.fa-html5:before {\n content: \"\\f13b\"; }\n\n.fa-hubspot:before {\n content: \"\\f3b2\"; }\n\n.fa-i-cursor:before {\n content: \"\\f246\"; }\n\n.fa-id-badge:before {\n content: \"\\f2c1\"; }\n\n.fa-id-card:before {\n content: \"\\f2c2\"; }\n\n.fa-id-card-alt:before {\n content: \"\\f47f\"; }\n\n.fa-image:before {\n content: \"\\f03e\"; }\n\n.fa-images:before {\n content: \"\\f302\"; }\n\n.fa-imdb:before {\n content: \"\\f2d8\"; }\n\n.fa-inbox:before {\n content: \"\\f01c\"; }\n\n.fa-indent:before {\n content: \"\\f03c\"; }\n\n.fa-industry:before {\n content: \"\\f275\"; }\n\n.fa-infinity:before {\n content: \"\\f534\"; }\n\n.fa-info:before {\n content: \"\\f129\"; }\n\n.fa-info-circle:before {\n content: \"\\f05a\"; }\n\n.fa-instagram:before {\n content: \"\\f16d\"; }\n\n.fa-internet-explorer:before {\n content: \"\\f26b\"; }\n\n.fa-ioxhost:before {\n content: \"\\f208\"; }\n\n.fa-italic:before {\n content: \"\\f033\"; }\n\n.fa-itunes:before {\n content: \"\\f3b4\"; }\n\n.fa-itunes-note:before {\n content: \"\\f3b5\"; }\n\n.fa-java:before {\n content: \"\\f4e4\"; }\n\n.fa-jedi:before {\n content: \"\\f669\"; }\n\n.fa-jedi-order:before {\n content: \"\\f50e\"; }\n\n.fa-jenkins:before {\n content: \"\\f3b6\"; }\n\n.fa-joget:before {\n content: \"\\f3b7\"; }\n\n.fa-joint:before {\n content: \"\\f595\"; }\n\n.fa-joomla:before {\n content: \"\\f1aa\"; }\n\n.fa-journal-whills:before {\n content: \"\\f66a\"; }\n\n.fa-js:before {\n content: \"\\f3b8\"; }\n\n.fa-js-square:before {\n content: \"\\f3b9\"; }\n\n.fa-jsfiddle:before {\n content: \"\\f1cc\"; }\n\n.fa-kaaba:before {\n content: \"\\f66b\"; }\n\n.fa-kaggle:before {\n content: \"\\f5fa\"; }\n\n.fa-key:before {\n content: \"\\f084\"; }\n\n.fa-keybase:before {\n content: \"\\f4f5\"; }\n\n.fa-keyboard:before {\n content: \"\\f11c\"; }\n\n.fa-keycdn:before {\n content: \"\\f3ba\"; }\n\n.fa-khanda:before {\n content: \"\\f66d\"; }\n\n.fa-kickstarter:before {\n content: \"\\f3bb\"; }\n\n.fa-kickstarter-k:before {\n content: \"\\f3bc\"; }\n\n.fa-kiss:before {\n content: \"\\f596\"; }\n\n.fa-kiss-beam:before {\n content: \"\\f597\"; }\n\n.fa-kiss-wink-heart:before {\n content: \"\\f598\"; }\n\n.fa-kiwi-bird:before {\n content: \"\\f535\"; }\n\n.fa-korvue:before {\n content: \"\\f42f\"; }\n\n.fa-landmark:before {\n content: \"\\f66f\"; }\n\n.fa-language:before {\n content: \"\\f1ab\"; }\n\n.fa-laptop:before {\n content: \"\\f109\"; }\n\n.fa-laptop-code:before {\n content: \"\\f5fc\"; }\n\n.fa-laravel:before {\n content: \"\\f3bd\"; }\n\n.fa-lastfm:before {\n content: \"\\f202\"; }\n\n.fa-lastfm-square:before {\n content: \"\\f203\"; }\n\n.fa-laugh:before {\n content: \"\\f599\"; }\n\n.fa-laugh-beam:before {\n content: \"\\f59a\"; }\n\n.fa-laugh-squint:before {\n content: \"\\f59b\"; }\n\n.fa-laugh-wink:before {\n content: \"\\f59c\"; }\n\n.fa-layer-group:before {\n content: \"\\f5fd\"; }\n\n.fa-leaf:before {\n content: \"\\f06c\"; }\n\n.fa-leanpub:before {\n content: \"\\f212\"; }\n\n.fa-lemon:before {\n content: \"\\f094\"; }\n\n.fa-less:before {\n content: \"\\f41d\"; }\n\n.fa-less-than:before {\n content: \"\\f536\"; }\n\n.fa-less-than-equal:before {\n content: \"\\f537\"; }\n\n.fa-level-down-alt:before {\n content: \"\\f3be\"; }\n\n.fa-level-up-alt:before {\n content: \"\\f3bf\"; }\n\n.fa-life-ring:before {\n content: \"\\f1cd\"; }\n\n.fa-lightbulb:before {\n content: \"\\f0eb\"; }\n\n.fa-line:before {\n content: \"\\f3c0\"; }\n\n.fa-link:before {\n content: \"\\f0c1\"; }\n\n.fa-linkedin:before {\n content: \"\\f08c\"; }\n\n.fa-linkedin-in:before {\n content: \"\\f0e1\"; }\n\n.fa-linode:before {\n content: \"\\f2b8\"; }\n\n.fa-linux:before {\n content: \"\\f17c\"; }\n\n.fa-lira-sign:before {\n content: \"\\f195\"; }\n\n.fa-list:before {\n content: \"\\f03a\"; }\n\n.fa-list-alt:before {\n content: \"\\f022\"; }\n\n.fa-list-ol:before {\n content: \"\\f0cb\"; }\n\n.fa-list-ul:before {\n content: \"\\f0ca\"; }\n\n.fa-location-arrow:before {\n content: \"\\f124\"; }\n\n.fa-lock:before {\n content: \"\\f023\"; }\n\n.fa-lock-open:before {\n content: \"\\f3c1\"; }\n\n.fa-long-arrow-alt-down:before {\n content: \"\\f309\"; }\n\n.fa-long-arrow-alt-left:before {\n content: \"\\f30a\"; }\n\n.fa-long-arrow-alt-right:before {\n content: \"\\f30b\"; }\n\n.fa-long-arrow-alt-up:before {\n content: \"\\f30c\"; }\n\n.fa-low-vision:before {\n content: \"\\f2a8\"; }\n\n.fa-luggage-cart:before {\n content: \"\\f59d\"; }\n\n.fa-lyft:before {\n content: \"\\f3c3\"; }\n\n.fa-magento:before {\n content: \"\\f3c4\"; }\n\n.fa-magic:before {\n content: \"\\f0d0\"; }\n\n.fa-magnet:before {\n content: \"\\f076\"; }\n\n.fa-mail-bulk:before {\n content: \"\\f674\"; }\n\n.fa-mailchimp:before {\n content: \"\\f59e\"; }\n\n.fa-male:before {\n content: \"\\f183\"; }\n\n.fa-mandalorian:before {\n content: \"\\f50f\"; }\n\n.fa-map:before {\n content: \"\\f279\"; }\n\n.fa-map-marked:before {\n content: \"\\f59f\"; }\n\n.fa-map-marked-alt:before {\n content: \"\\f5a0\"; }\n\n.fa-map-marker:before {\n content: \"\\f041\"; }\n\n.fa-map-marker-alt:before {\n content: \"\\f3c5\"; }\n\n.fa-map-pin:before {\n content: \"\\f276\"; }\n\n.fa-map-signs:before {\n content: \"\\f277\"; }\n\n.fa-markdown:before {\n content: \"\\f60f\"; }\n\n.fa-marker:before {\n content: \"\\f5a1\"; }\n\n.fa-mars:before {\n content: \"\\f222\"; }\n\n.fa-mars-double:before {\n content: \"\\f227\"; }\n\n.fa-mars-stroke:before {\n content: \"\\f229\"; }\n\n.fa-mars-stroke-h:before {\n content: \"\\f22b\"; }\n\n.fa-mars-stroke-v:before {\n content: \"\\f22a\"; }\n\n.fa-mask:before {\n content: \"\\f6fa\"; }\n\n.fa-mastodon:before {\n content: \"\\f4f6\"; }\n\n.fa-maxcdn:before {\n content: \"\\f136\"; }\n\n.fa-medal:before {\n content: \"\\f5a2\"; }\n\n.fa-medapps:before {\n content: \"\\f3c6\"; }\n\n.fa-medium:before {\n content: \"\\f23a\"; }\n\n.fa-medium-m:before {\n content: \"\\f3c7\"; }\n\n.fa-medkit:before {\n content: \"\\f0fa\"; }\n\n.fa-medrt:before {\n content: \"\\f3c8\"; }\n\n.fa-meetup:before {\n content: \"\\f2e0\"; }\n\n.fa-megaport:before {\n content: \"\\f5a3\"; }\n\n.fa-meh:before {\n content: \"\\f11a\"; }\n\n.fa-meh-blank:before {\n content: \"\\f5a4\"; }\n\n.fa-meh-rolling-eyes:before {\n content: \"\\f5a5\"; }\n\n.fa-memory:before {\n content: \"\\f538\"; }\n\n.fa-menorah:before {\n content: \"\\f676\"; }\n\n.fa-mercury:before {\n content: \"\\f223\"; }\n\n.fa-meteor:before {\n content: \"\\f753\"; }\n\n.fa-microchip:before {\n content: \"\\f2db\"; }\n\n.fa-microphone:before {\n content: \"\\f130\"; }\n\n.fa-microphone-alt:before {\n content: \"\\f3c9\"; }\n\n.fa-microphone-alt-slash:before {\n content: \"\\f539\"; }\n\n.fa-microphone-slash:before {\n content: \"\\f131\"; }\n\n.fa-microscope:before {\n content: \"\\f610\"; }\n\n.fa-microsoft:before {\n content: \"\\f3ca\"; }\n\n.fa-minus:before {\n content: \"\\f068\"; }\n\n.fa-minus-circle:before {\n content: \"\\f056\"; }\n\n.fa-minus-square:before {\n content: \"\\f146\"; }\n\n.fa-mix:before {\n content: \"\\f3cb\"; }\n\n.fa-mixcloud:before {\n content: \"\\f289\"; }\n\n.fa-mizuni:before {\n content: \"\\f3cc\"; }\n\n.fa-mobile:before {\n content: \"\\f10b\"; }\n\n.fa-mobile-alt:before {\n content: \"\\f3cd\"; }\n\n.fa-modx:before {\n content: \"\\f285\"; }\n\n.fa-monero:before {\n content: \"\\f3d0\"; }\n\n.fa-money-bill:before {\n content: \"\\f0d6\"; }\n\n.fa-money-bill-alt:before {\n content: \"\\f3d1\"; }\n\n.fa-money-bill-wave:before {\n content: \"\\f53a\"; }\n\n.fa-money-bill-wave-alt:before {\n content: \"\\f53b\"; }\n\n.fa-money-check:before {\n content: \"\\f53c\"; }\n\n.fa-money-check-alt:before {\n content: \"\\f53d\"; }\n\n.fa-monument:before {\n content: \"\\f5a6\"; }\n\n.fa-moon:before {\n content: \"\\f186\"; }\n\n.fa-mortar-pestle:before {\n content: \"\\f5a7\"; }\n\n.fa-mosque:before {\n content: \"\\f678\"; }\n\n.fa-motorcycle:before {\n content: \"\\f21c\"; }\n\n.fa-mountain:before {\n content: \"\\f6fc\"; }\n\n.fa-mouse-pointer:before {\n content: \"\\f245\"; }\n\n.fa-music:before {\n content: \"\\f001\"; }\n\n.fa-napster:before {\n content: \"\\f3d2\"; }\n\n.fa-neos:before {\n content: \"\\f612\"; }\n\n.fa-network-wired:before {\n content: \"\\f6ff\"; }\n\n.fa-neuter:before {\n content: \"\\f22c\"; }\n\n.fa-newspaper:before {\n content: \"\\f1ea\"; }\n\n.fa-nimblr:before {\n content: \"\\f5a8\"; }\n\n.fa-nintendo-switch:before {\n content: \"\\f418\"; }\n\n.fa-node:before {\n content: \"\\f419\"; }\n\n.fa-node-js:before {\n content: \"\\f3d3\"; }\n\n.fa-not-equal:before {\n content: \"\\f53e\"; }\n\n.fa-notes-medical:before {\n content: \"\\f481\"; }\n\n.fa-npm:before {\n content: \"\\f3d4\"; }\n\n.fa-ns8:before {\n content: \"\\f3d5\"; }\n\n.fa-nutritionix:before {\n content: \"\\f3d6\"; }\n\n.fa-object-group:before {\n content: \"\\f247\"; }\n\n.fa-object-ungroup:before {\n content: \"\\f248\"; }\n\n.fa-odnoklassniki:before {\n content: \"\\f263\"; }\n\n.fa-odnoklassniki-square:before {\n content: \"\\f264\"; }\n\n.fa-oil-can:before {\n content: \"\\f613\"; }\n\n.fa-old-republic:before {\n content: \"\\f510\"; }\n\n.fa-om:before {\n content: \"\\f679\"; }\n\n.fa-opencart:before {\n content: \"\\f23d\"; }\n\n.fa-openid:before {\n content: \"\\f19b\"; }\n\n.fa-opera:before {\n content: \"\\f26a\"; }\n\n.fa-optin-monster:before {\n content: \"\\f23c\"; }\n\n.fa-osi:before {\n content: \"\\f41a\"; }\n\n.fa-otter:before {\n content: \"\\f700\"; }\n\n.fa-outdent:before {\n content: \"\\f03b\"; }\n\n.fa-page4:before {\n content: \"\\f3d7\"; }\n\n.fa-pagelines:before {\n content: \"\\f18c\"; }\n\n.fa-paint-brush:before {\n content: \"\\f1fc\"; }\n\n.fa-paint-roller:before {\n content: \"\\f5aa\"; }\n\n.fa-palette:before {\n content: \"\\f53f\"; }\n\n.fa-palfed:before {\n content: \"\\f3d8\"; }\n\n.fa-pallet:before {\n content: \"\\f482\"; }\n\n.fa-paper-plane:before {\n content: \"\\f1d8\"; }\n\n.fa-paperclip:before {\n content: \"\\f0c6\"; }\n\n.fa-parachute-box:before {\n content: \"\\f4cd\"; }\n\n.fa-paragraph:before {\n content: \"\\f1dd\"; }\n\n.fa-parking:before {\n content: \"\\f540\"; }\n\n.fa-passport:before {\n content: \"\\f5ab\"; }\n\n.fa-pastafarianism:before {\n content: \"\\f67b\"; }\n\n.fa-paste:before {\n content: \"\\f0ea\"; }\n\n.fa-patreon:before {\n content: \"\\f3d9\"; }\n\n.fa-pause:before {\n content: \"\\f04c\"; }\n\n.fa-pause-circle:before {\n content: \"\\f28b\"; }\n\n.fa-paw:before {\n content: \"\\f1b0\"; }\n\n.fa-paypal:before {\n content: \"\\f1ed\"; }\n\n.fa-peace:before {\n content: \"\\f67c\"; }\n\n.fa-pen:before {\n content: \"\\f304\"; }\n\n.fa-pen-alt:before {\n content: \"\\f305\"; }\n\n.fa-pen-fancy:before {\n content: \"\\f5ac\"; }\n\n.fa-pen-nib:before {\n content: \"\\f5ad\"; }\n\n.fa-pen-square:before {\n content: \"\\f14b\"; }\n\n.fa-pencil-alt:before {\n content: \"\\f303\"; }\n\n.fa-pencil-ruler:before {\n content: \"\\f5ae\"; }\n\n.fa-penny-arcade:before {\n content: \"\\f704\"; }\n\n.fa-people-carry:before {\n content: \"\\f4ce\"; }\n\n.fa-percent:before {\n content: \"\\f295\"; }\n\n.fa-percentage:before {\n content: \"\\f541\"; }\n\n.fa-periscope:before {\n content: \"\\f3da\"; }\n\n.fa-person-booth:before {\n content: \"\\f756\"; }\n\n.fa-phabricator:before {\n content: \"\\f3db\"; }\n\n.fa-phoenix-framework:before {\n content: \"\\f3dc\"; }\n\n.fa-phoenix-squadron:before {\n content: \"\\f511\"; }\n\n.fa-phone:before {\n content: \"\\f095\"; }\n\n.fa-phone-slash:before {\n content: \"\\f3dd\"; }\n\n.fa-phone-square:before {\n content: \"\\f098\"; }\n\n.fa-phone-volume:before {\n content: \"\\f2a0\"; }\n\n.fa-php:before {\n content: \"\\f457\"; }\n\n.fa-pied-piper:before {\n content: \"\\f2ae\"; }\n\n.fa-pied-piper-alt:before {\n content: \"\\f1a8\"; }\n\n.fa-pied-piper-hat:before {\n content: \"\\f4e5\"; }\n\n.fa-pied-piper-pp:before {\n content: \"\\f1a7\"; }\n\n.fa-piggy-bank:before {\n content: \"\\f4d3\"; }\n\n.fa-pills:before {\n content: \"\\f484\"; }\n\n.fa-pinterest:before {\n content: \"\\f0d2\"; }\n\n.fa-pinterest-p:before {\n content: \"\\f231\"; }\n\n.fa-pinterest-square:before {\n content: \"\\f0d3\"; }\n\n.fa-place-of-worship:before {\n content: \"\\f67f\"; }\n\n.fa-plane:before {\n content: \"\\f072\"; }\n\n.fa-plane-arrival:before {\n content: \"\\f5af\"; }\n\n.fa-plane-departure:before {\n content: \"\\f5b0\"; }\n\n.fa-play:before {\n content: \"\\f04b\"; }\n\n.fa-play-circle:before {\n content: \"\\f144\"; }\n\n.fa-playstation:before {\n content: \"\\f3df\"; }\n\n.fa-plug:before {\n content: \"\\f1e6\"; }\n\n.fa-plus:before {\n content: \"\\f067\"; }\n\n.fa-plus-circle:before {\n content: \"\\f055\"; }\n\n.fa-plus-square:before {\n content: \"\\f0fe\"; }\n\n.fa-podcast:before {\n content: \"\\f2ce\"; }\n\n.fa-poll:before {\n content: \"\\f681\"; }\n\n.fa-poll-h:before {\n content: \"\\f682\"; }\n\n.fa-poo:before {\n content: \"\\f2fe\"; }\n\n.fa-poo-storm:before {\n content: \"\\f75a\"; }\n\n.fa-poop:before {\n content: \"\\f619\"; }\n\n.fa-portrait:before {\n content: \"\\f3e0\"; }\n\n.fa-pound-sign:before {\n content: \"\\f154\"; }\n\n.fa-power-off:before {\n content: \"\\f011\"; }\n\n.fa-pray:before {\n content: \"\\f683\"; }\n\n.fa-praying-hands:before {\n content: \"\\f684\"; }\n\n.fa-prescription:before {\n content: \"\\f5b1\"; }\n\n.fa-prescription-bottle:before {\n content: \"\\f485\"; }\n\n.fa-prescription-bottle-alt:before {\n content: \"\\f486\"; }\n\n.fa-print:before {\n content: \"\\f02f\"; }\n\n.fa-procedures:before {\n content: \"\\f487\"; }\n\n.fa-product-hunt:before {\n content: \"\\f288\"; }\n\n.fa-project-diagram:before {\n content: \"\\f542\"; }\n\n.fa-pushed:before {\n content: \"\\f3e1\"; }\n\n.fa-puzzle-piece:before {\n content: \"\\f12e\"; }\n\n.fa-python:before {\n content: \"\\f3e2\"; }\n\n.fa-qq:before {\n content: \"\\f1d6\"; }\n\n.fa-qrcode:before {\n content: \"\\f029\"; }\n\n.fa-question:before {\n content: \"\\f128\"; }\n\n.fa-question-circle:before {\n content: \"\\f059\"; }\n\n.fa-quidditch:before {\n content: \"\\f458\"; }\n\n.fa-quinscape:before {\n content: \"\\f459\"; }\n\n.fa-quora:before {\n content: \"\\f2c4\"; }\n\n.fa-quote-left:before {\n content: \"\\f10d\"; }\n\n.fa-quote-right:before {\n content: \"\\f10e\"; }\n\n.fa-quran:before {\n content: \"\\f687\"; }\n\n.fa-r-project:before {\n content: \"\\f4f7\"; }\n\n.fa-rainbow:before {\n content: \"\\f75b\"; }\n\n.fa-random:before {\n content: \"\\f074\"; }\n\n.fa-ravelry:before {\n content: \"\\f2d9\"; }\n\n.fa-react:before {\n content: \"\\f41b\"; }\n\n.fa-reacteurope:before {\n content: \"\\f75d\"; }\n\n.fa-readme:before {\n content: \"\\f4d5\"; }\n\n.fa-rebel:before {\n content: \"\\f1d0\"; }\n\n.fa-receipt:before {\n content: \"\\f543\"; }\n\n.fa-recycle:before {\n content: \"\\f1b8\"; }\n\n.fa-red-river:before {\n content: \"\\f3e3\"; }\n\n.fa-reddit:before {\n content: \"\\f1a1\"; }\n\n.fa-reddit-alien:before {\n content: \"\\f281\"; }\n\n.fa-reddit-square:before {\n content: \"\\f1a2\"; }\n\n.fa-redo:before {\n content: \"\\f01e\"; }\n\n.fa-redo-alt:before {\n content: \"\\f2f9\"; }\n\n.fa-registered:before {\n content: \"\\f25d\"; }\n\n.fa-renren:before {\n content: \"\\f18b\"; }\n\n.fa-reply:before {\n content: \"\\f3e5\"; }\n\n.fa-reply-all:before {\n content: \"\\f122\"; }\n\n.fa-replyd:before {\n content: \"\\f3e6\"; }\n\n.fa-republican:before {\n content: \"\\f75e\"; }\n\n.fa-researchgate:before {\n content: \"\\f4f8\"; }\n\n.fa-resolving:before {\n content: \"\\f3e7\"; }\n\n.fa-retweet:before {\n content: \"\\f079\"; }\n\n.fa-rev:before {\n content: \"\\f5b2\"; }\n\n.fa-ribbon:before {\n content: \"\\f4d6\"; }\n\n.fa-ring:before {\n content: \"\\f70b\"; }\n\n.fa-road:before {\n content: \"\\f018\"; }\n\n.fa-robot:before {\n content: \"\\f544\"; }\n\n.fa-rocket:before {\n content: \"\\f135\"; }\n\n.fa-rocketchat:before {\n content: \"\\f3e8\"; }\n\n.fa-rockrms:before {\n content: \"\\f3e9\"; }\n\n.fa-route:before {\n content: \"\\f4d7\"; }\n\n.fa-rss:before {\n content: \"\\f09e\"; }\n\n.fa-rss-square:before {\n content: \"\\f143\"; }\n\n.fa-ruble-sign:before {\n content: \"\\f158\"; }\n\n.fa-ruler:before {\n content: \"\\f545\"; }\n\n.fa-ruler-combined:before {\n content: \"\\f546\"; }\n\n.fa-ruler-horizontal:before {\n content: \"\\f547\"; }\n\n.fa-ruler-vertical:before {\n content: \"\\f548\"; }\n\n.fa-running:before {\n content: \"\\f70c\"; }\n\n.fa-rupee-sign:before {\n content: \"\\f156\"; }\n\n.fa-sad-cry:before {\n content: \"\\f5b3\"; }\n\n.fa-sad-tear:before {\n content: \"\\f5b4\"; }\n\n.fa-safari:before {\n content: \"\\f267\"; }\n\n.fa-sass:before {\n content: \"\\f41e\"; }\n\n.fa-save:before {\n content: \"\\f0c7\"; }\n\n.fa-schlix:before {\n content: \"\\f3ea\"; }\n\n.fa-school:before {\n content: \"\\f549\"; }\n\n.fa-screwdriver:before {\n content: \"\\f54a\"; }\n\n.fa-scribd:before {\n content: \"\\f28a\"; }\n\n.fa-scroll:before {\n content: \"\\f70e\"; }\n\n.fa-search:before {\n content: \"\\f002\"; }\n\n.fa-search-dollar:before {\n content: \"\\f688\"; }\n\n.fa-search-location:before {\n content: \"\\f689\"; }\n\n.fa-search-minus:before {\n content: \"\\f010\"; }\n\n.fa-search-plus:before {\n content: \"\\f00e\"; }\n\n.fa-searchengin:before {\n content: \"\\f3eb\"; }\n\n.fa-seedling:before {\n content: \"\\f4d8\"; }\n\n.fa-sellcast:before {\n content: \"\\f2da\"; }\n\n.fa-sellsy:before {\n content: \"\\f213\"; }\n\n.fa-server:before {\n content: \"\\f233\"; }\n\n.fa-servicestack:before {\n content: \"\\f3ec\"; }\n\n.fa-shapes:before {\n content: \"\\f61f\"; }\n\n.fa-share:before {\n content: \"\\f064\"; }\n\n.fa-share-alt:before {\n content: \"\\f1e0\"; }\n\n.fa-share-alt-square:before {\n content: \"\\f1e1\"; }\n\n.fa-share-square:before {\n content: \"\\f14d\"; }\n\n.fa-shekel-sign:before {\n content: \"\\f20b\"; }\n\n.fa-shield-alt:before {\n content: \"\\f3ed\"; }\n\n.fa-ship:before {\n content: \"\\f21a\"; }\n\n.fa-shipping-fast:before {\n content: \"\\f48b\"; }\n\n.fa-shirtsinbulk:before {\n content: \"\\f214\"; }\n\n.fa-shoe-prints:before {\n content: \"\\f54b\"; }\n\n.fa-shopping-bag:before {\n content: \"\\f290\"; }\n\n.fa-shopping-basket:before {\n content: \"\\f291\"; }\n\n.fa-shopping-cart:before {\n content: \"\\f07a\"; }\n\n.fa-shopware:before {\n content: \"\\f5b5\"; }\n\n.fa-shower:before {\n content: \"\\f2cc\"; }\n\n.fa-shuttle-van:before {\n content: \"\\f5b6\"; }\n\n.fa-sign:before {\n content: \"\\f4d9\"; }\n\n.fa-sign-in-alt:before {\n content: \"\\f2f6\"; }\n\n.fa-sign-language:before {\n content: \"\\f2a7\"; }\n\n.fa-sign-out-alt:before {\n content: \"\\f2f5\"; }\n\n.fa-signal:before {\n content: \"\\f012\"; }\n\n.fa-signature:before {\n content: \"\\f5b7\"; }\n\n.fa-simplybuilt:before {\n content: \"\\f215\"; }\n\n.fa-sistrix:before {\n content: \"\\f3ee\"; }\n\n.fa-sitemap:before {\n content: \"\\f0e8\"; }\n\n.fa-sith:before {\n content: \"\\f512\"; }\n\n.fa-skull:before {\n content: \"\\f54c\"; }\n\n.fa-skull-crossbones:before {\n content: \"\\f714\"; }\n\n.fa-skyatlas:before {\n content: \"\\f216\"; }\n\n.fa-skype:before {\n content: \"\\f17e\"; }\n\n.fa-slack:before {\n content: \"\\f198\"; }\n\n.fa-slack-hash:before {\n content: \"\\f3ef\"; }\n\n.fa-slash:before {\n content: \"\\f715\"; }\n\n.fa-sliders-h:before {\n content: \"\\f1de\"; }\n\n.fa-slideshare:before {\n content: \"\\f1e7\"; }\n\n.fa-smile:before {\n content: \"\\f118\"; }\n\n.fa-smile-beam:before {\n content: \"\\f5b8\"; }\n\n.fa-smile-wink:before {\n content: \"\\f4da\"; }\n\n.fa-smog:before {\n content: \"\\f75f\"; }\n\n.fa-smoking:before {\n content: \"\\f48d\"; }\n\n.fa-smoking-ban:before {\n content: \"\\f54d\"; }\n\n.fa-snapchat:before {\n content: \"\\f2ab\"; }\n\n.fa-snapchat-ghost:before {\n content: \"\\f2ac\"; }\n\n.fa-snapchat-square:before {\n content: \"\\f2ad\"; }\n\n.fa-snowflake:before {\n content: \"\\f2dc\"; }\n\n.fa-socks:before {\n content: \"\\f696\"; }\n\n.fa-solar-panel:before {\n content: \"\\f5ba\"; }\n\n.fa-sort:before {\n content: \"\\f0dc\"; }\n\n.fa-sort-alpha-down:before {\n content: \"\\f15d\"; }\n\n.fa-sort-alpha-up:before {\n content: \"\\f15e\"; }\n\n.fa-sort-amount-down:before {\n content: \"\\f160\"; }\n\n.fa-sort-amount-up:before {\n content: \"\\f161\"; }\n\n.fa-sort-down:before {\n content: \"\\f0dd\"; }\n\n.fa-sort-numeric-down:before {\n content: \"\\f162\"; }\n\n.fa-sort-numeric-up:before {\n content: \"\\f163\"; }\n\n.fa-sort-up:before {\n content: \"\\f0de\"; }\n\n.fa-soundcloud:before {\n content: \"\\f1be\"; }\n\n.fa-spa:before {\n content: \"\\f5bb\"; }\n\n.fa-space-shuttle:before {\n content: \"\\f197\"; }\n\n.fa-speakap:before {\n content: \"\\f3f3\"; }\n\n.fa-spider:before {\n content: \"\\f717\"; }\n\n.fa-spinner:before {\n content: \"\\f110\"; }\n\n.fa-splotch:before {\n content: \"\\f5bc\"; }\n\n.fa-spotify:before {\n content: \"\\f1bc\"; }\n\n.fa-spray-can:before {\n content: \"\\f5bd\"; }\n\n.fa-square:before {\n content: \"\\f0c8\"; }\n\n.fa-square-full:before {\n content: \"\\f45c\"; }\n\n.fa-square-root-alt:before {\n content: \"\\f698\"; }\n\n.fa-squarespace:before {\n content: \"\\f5be\"; }\n\n.fa-stack-exchange:before {\n content: \"\\f18d\"; }\n\n.fa-stack-overflow:before {\n content: \"\\f16c\"; }\n\n.fa-stamp:before {\n content: \"\\f5bf\"; }\n\n.fa-star:before {\n content: \"\\f005\"; }\n\n.fa-star-and-crescent:before {\n content: \"\\f699\"; }\n\n.fa-star-half:before {\n content: \"\\f089\"; }\n\n.fa-star-half-alt:before {\n content: \"\\f5c0\"; }\n\n.fa-star-of-david:before {\n content: \"\\f69a\"; }\n\n.fa-star-of-life:before {\n content: \"\\f621\"; }\n\n.fa-staylinked:before {\n content: \"\\f3f5\"; }\n\n.fa-steam:before {\n content: \"\\f1b6\"; }\n\n.fa-steam-square:before {\n content: \"\\f1b7\"; }\n\n.fa-steam-symbol:before {\n content: \"\\f3f6\"; }\n\n.fa-step-backward:before {\n content: \"\\f048\"; }\n\n.fa-step-forward:before {\n content: \"\\f051\"; }\n\n.fa-stethoscope:before {\n content: \"\\f0f1\"; }\n\n.fa-sticker-mule:before {\n content: \"\\f3f7\"; }\n\n.fa-sticky-note:before {\n content: \"\\f249\"; }\n\n.fa-stop:before {\n content: \"\\f04d\"; }\n\n.fa-stop-circle:before {\n content: \"\\f28d\"; }\n\n.fa-stopwatch:before {\n content: \"\\f2f2\"; }\n\n.fa-store:before {\n content: \"\\f54e\"; }\n\n.fa-store-alt:before {\n content: \"\\f54f\"; }\n\n.fa-strava:before {\n content: \"\\f428\"; }\n\n.fa-stream:before {\n content: \"\\f550\"; }\n\n.fa-street-view:before {\n content: \"\\f21d\"; }\n\n.fa-strikethrough:before {\n content: \"\\f0cc\"; }\n\n.fa-stripe:before {\n content: \"\\f429\"; }\n\n.fa-stripe-s:before {\n content: \"\\f42a\"; }\n\n.fa-stroopwafel:before {\n content: \"\\f551\"; }\n\n.fa-studiovinari:before {\n content: \"\\f3f8\"; }\n\n.fa-stumbleupon:before {\n content: \"\\f1a4\"; }\n\n.fa-stumbleupon-circle:before {\n content: \"\\f1a3\"; }\n\n.fa-subscript:before {\n content: \"\\f12c\"; }\n\n.fa-subway:before {\n content: \"\\f239\"; }\n\n.fa-suitcase:before {\n content: \"\\f0f2\"; }\n\n.fa-suitcase-rolling:before {\n content: \"\\f5c1\"; }\n\n.fa-sun:before {\n content: \"\\f185\"; }\n\n.fa-superpowers:before {\n content: \"\\f2dd\"; }\n\n.fa-superscript:before {\n content: \"\\f12b\"; }\n\n.fa-supple:before {\n content: \"\\f3f9\"; }\n\n.fa-surprise:before {\n content: \"\\f5c2\"; }\n\n.fa-swatchbook:before {\n content: \"\\f5c3\"; }\n\n.fa-swimmer:before {\n content: \"\\f5c4\"; }\n\n.fa-swimming-pool:before {\n content: \"\\f5c5\"; }\n\n.fa-synagogue:before {\n content: \"\\f69b\"; }\n\n.fa-sync:before {\n content: \"\\f021\"; }\n\n.fa-sync-alt:before {\n content: \"\\f2f1\"; }\n\n.fa-syringe:before {\n content: \"\\f48e\"; }\n\n.fa-table:before {\n content: \"\\f0ce\"; }\n\n.fa-table-tennis:before {\n content: \"\\f45d\"; }\n\n.fa-tablet:before {\n content: \"\\f10a\"; }\n\n.fa-tablet-alt:before {\n content: \"\\f3fa\"; }\n\n.fa-tablets:before {\n content: \"\\f490\"; }\n\n.fa-tachometer-alt:before {\n content: \"\\f3fd\"; }\n\n.fa-tag:before {\n content: \"\\f02b\"; }\n\n.fa-tags:before {\n content: \"\\f02c\"; }\n\n.fa-tape:before {\n content: \"\\f4db\"; }\n\n.fa-tasks:before {\n content: \"\\f0ae\"; }\n\n.fa-taxi:before {\n content: \"\\f1ba\"; }\n\n.fa-teamspeak:before {\n content: \"\\f4f9\"; }\n\n.fa-teeth:before {\n content: \"\\f62e\"; }\n\n.fa-teeth-open:before {\n content: \"\\f62f\"; }\n\n.fa-telegram:before {\n content: \"\\f2c6\"; }\n\n.fa-telegram-plane:before {\n content: \"\\f3fe\"; }\n\n.fa-temperature-high:before {\n content: \"\\f769\"; }\n\n.fa-temperature-low:before {\n content: \"\\f76b\"; }\n\n.fa-tencent-weibo:before {\n content: \"\\f1d5\"; }\n\n.fa-terminal:before {\n content: \"\\f120\"; }\n\n.fa-text-height:before {\n content: \"\\f034\"; }\n\n.fa-text-width:before {\n content: \"\\f035\"; }\n\n.fa-th:before {\n content: \"\\f00a\"; }\n\n.fa-th-large:before {\n content: \"\\f009\"; }\n\n.fa-th-list:before {\n content: \"\\f00b\"; }\n\n.fa-the-red-yeti:before {\n content: \"\\f69d\"; }\n\n.fa-theater-masks:before {\n content: \"\\f630\"; }\n\n.fa-themeco:before {\n content: \"\\f5c6\"; }\n\n.fa-themeisle:before {\n content: \"\\f2b2\"; }\n\n.fa-thermometer:before {\n content: \"\\f491\"; }\n\n.fa-thermometer-empty:before {\n content: \"\\f2cb\"; }\n\n.fa-thermometer-full:before {\n content: \"\\f2c7\"; }\n\n.fa-thermometer-half:before {\n content: \"\\f2c9\"; }\n\n.fa-thermometer-quarter:before {\n content: \"\\f2ca\"; }\n\n.fa-thermometer-three-quarters:before {\n content: \"\\f2c8\"; }\n\n.fa-think-peaks:before {\n content: \"\\f731\"; }\n\n.fa-thumbs-down:before {\n content: \"\\f165\"; }\n\n.fa-thumbs-up:before {\n content: \"\\f164\"; }\n\n.fa-thumbtack:before {\n content: \"\\f08d\"; }\n\n.fa-ticket-alt:before {\n content: \"\\f3ff\"; }\n\n.fa-times:before {\n content: \"\\f00d\"; }\n\n.fa-times-circle:before {\n content: \"\\f057\"; }\n\n.fa-tint:before {\n content: \"\\f043\"; }\n\n.fa-tint-slash:before {\n content: \"\\f5c7\"; }\n\n.fa-tired:before {\n content: \"\\f5c8\"; }\n\n.fa-toggle-off:before {\n content: \"\\f204\"; }\n\n.fa-toggle-on:before {\n content: \"\\f205\"; }\n\n.fa-toilet-paper:before {\n content: \"\\f71e\"; }\n\n.fa-toolbox:before {\n content: \"\\f552\"; }\n\n.fa-tooth:before {\n content: \"\\f5c9\"; }\n\n.fa-torah:before {\n content: \"\\f6a0\"; }\n\n.fa-torii-gate:before {\n content: \"\\f6a1\"; }\n\n.fa-tractor:before {\n content: \"\\f722\"; }\n\n.fa-trade-federation:before {\n content: \"\\f513\"; }\n\n.fa-trademark:before {\n content: \"\\f25c\"; }\n\n.fa-traffic-light:before {\n content: \"\\f637\"; }\n\n.fa-train:before {\n content: \"\\f238\"; }\n\n.fa-transgender:before {\n content: \"\\f224\"; }\n\n.fa-transgender-alt:before {\n content: \"\\f225\"; }\n\n.fa-trash:before {\n content: \"\\f1f8\"; }\n\n.fa-trash-alt:before {\n content: \"\\f2ed\"; }\n\n.fa-tree:before {\n content: \"\\f1bb\"; }\n\n.fa-trello:before {\n content: \"\\f181\"; }\n\n.fa-tripadvisor:before {\n content: \"\\f262\"; }\n\n.fa-trophy:before {\n content: \"\\f091\"; }\n\n.fa-truck:before {\n content: \"\\f0d1\"; }\n\n.fa-truck-loading:before {\n content: \"\\f4de\"; }\n\n.fa-truck-monster:before {\n content: \"\\f63b\"; }\n\n.fa-truck-moving:before {\n content: \"\\f4df\"; }\n\n.fa-truck-pickup:before {\n content: \"\\f63c\"; }\n\n.fa-tshirt:before {\n content: \"\\f553\"; }\n\n.fa-tty:before {\n content: \"\\f1e4\"; }\n\n.fa-tumblr:before {\n content: \"\\f173\"; }\n\n.fa-tumblr-square:before {\n content: \"\\f174\"; }\n\n.fa-tv:before {\n content: \"\\f26c\"; }\n\n.fa-twitch:before {\n content: \"\\f1e8\"; }\n\n.fa-twitter:before {\n content: \"\\f099\"; }\n\n.fa-twitter-square:before {\n content: \"\\f081\"; }\n\n.fa-typo3:before {\n content: \"\\f42b\"; }\n\n.fa-uber:before {\n content: \"\\f402\"; }\n\n.fa-uikit:before {\n content: \"\\f403\"; }\n\n.fa-umbrella:before {\n content: \"\\f0e9\"; }\n\n.fa-umbrella-beach:before {\n content: \"\\f5ca\"; }\n\n.fa-underline:before {\n content: \"\\f0cd\"; }\n\n.fa-undo:before {\n content: \"\\f0e2\"; }\n\n.fa-undo-alt:before {\n content: \"\\f2ea\"; }\n\n.fa-uniregistry:before {\n content: \"\\f404\"; }\n\n.fa-universal-access:before {\n content: \"\\f29a\"; }\n\n.fa-university:before {\n content: \"\\f19c\"; }\n\n.fa-unlink:before {\n content: \"\\f127\"; }\n\n.fa-unlock:before {\n content: \"\\f09c\"; }\n\n.fa-unlock-alt:before {\n content: \"\\f13e\"; }\n\n.fa-untappd:before {\n content: \"\\f405\"; }\n\n.fa-upload:before {\n content: \"\\f093\"; }\n\n.fa-usb:before {\n content: \"\\f287\"; }\n\n.fa-user:before {\n content: \"\\f007\"; }\n\n.fa-user-alt:before {\n content: \"\\f406\"; }\n\n.fa-user-alt-slash:before {\n content: \"\\f4fa\"; }\n\n.fa-user-astronaut:before {\n content: \"\\f4fb\"; }\n\n.fa-user-check:before {\n content: \"\\f4fc\"; }\n\n.fa-user-circle:before {\n content: \"\\f2bd\"; }\n\n.fa-user-clock:before {\n content: \"\\f4fd\"; }\n\n.fa-user-cog:before {\n content: \"\\f4fe\"; }\n\n.fa-user-edit:before {\n content: \"\\f4ff\"; }\n\n.fa-user-friends:before {\n content: \"\\f500\"; }\n\n.fa-user-graduate:before {\n content: \"\\f501\"; }\n\n.fa-user-injured:before {\n content: \"\\f728\"; }\n\n.fa-user-lock:before {\n content: \"\\f502\"; }\n\n.fa-user-md:before {\n content: \"\\f0f0\"; }\n\n.fa-user-minus:before {\n content: \"\\f503\"; }\n\n.fa-user-ninja:before {\n content: \"\\f504\"; }\n\n.fa-user-plus:before {\n content: \"\\f234\"; }\n\n.fa-user-secret:before {\n content: \"\\f21b\"; }\n\n.fa-user-shield:before {\n content: \"\\f505\"; }\n\n.fa-user-slash:before {\n content: \"\\f506\"; }\n\n.fa-user-tag:before {\n content: \"\\f507\"; }\n\n.fa-user-tie:before {\n content: \"\\f508\"; }\n\n.fa-user-times:before {\n content: \"\\f235\"; }\n\n.fa-users:before {\n content: \"\\f0c0\"; }\n\n.fa-users-cog:before {\n content: \"\\f509\"; }\n\n.fa-ussunnah:before {\n content: \"\\f407\"; }\n\n.fa-utensil-spoon:before {\n content: \"\\f2e5\"; }\n\n.fa-utensils:before {\n content: \"\\f2e7\"; }\n\n.fa-vaadin:before {\n content: \"\\f408\"; }\n\n.fa-vector-square:before {\n content: \"\\f5cb\"; }\n\n.fa-venus:before {\n content: \"\\f221\"; }\n\n.fa-venus-double:before {\n content: \"\\f226\"; }\n\n.fa-venus-mars:before {\n content: \"\\f228\"; }\n\n.fa-viacoin:before {\n content: \"\\f237\"; }\n\n.fa-viadeo:before {\n content: \"\\f2a9\"; }\n\n.fa-viadeo-square:before {\n content: \"\\f2aa\"; }\n\n.fa-vial:before {\n content: \"\\f492\"; }\n\n.fa-vials:before {\n content: \"\\f493\"; }\n\n.fa-viber:before {\n content: \"\\f409\"; }\n\n.fa-video:before {\n content: \"\\f03d\"; }\n\n.fa-video-slash:before {\n content: \"\\f4e2\"; }\n\n.fa-vihara:before {\n content: \"\\f6a7\"; }\n\n.fa-vimeo:before {\n content: \"\\f40a\"; }\n\n.fa-vimeo-square:before {\n content: \"\\f194\"; }\n\n.fa-vimeo-v:before {\n content: \"\\f27d\"; }\n\n.fa-vine:before {\n content: \"\\f1ca\"; }\n\n.fa-vk:before {\n content: \"\\f189\"; }\n\n.fa-vnv:before {\n content: \"\\f40b\"; }\n\n.fa-volleyball-ball:before {\n content: \"\\f45f\"; }\n\n.fa-volume-down:before {\n content: \"\\f027\"; }\n\n.fa-volume-mute:before {\n content: \"\\f6a9\"; }\n\n.fa-volume-off:before {\n content: \"\\f026\"; }\n\n.fa-volume-up:before {\n content: \"\\f028\"; }\n\n.fa-vote-yea:before {\n content: \"\\f772\"; }\n\n.fa-vr-cardboard:before {\n content: \"\\f729\"; }\n\n.fa-vuejs:before {\n content: \"\\f41f\"; }\n\n.fa-walking:before {\n content: \"\\f554\"; }\n\n.fa-wallet:before {\n content: \"\\f555\"; }\n\n.fa-warehouse:before {\n content: \"\\f494\"; }\n\n.fa-water:before {\n content: \"\\f773\"; }\n\n.fa-weebly:before {\n content: \"\\f5cc\"; }\n\n.fa-weibo:before {\n content: \"\\f18a\"; }\n\n.fa-weight:before {\n content: \"\\f496\"; }\n\n.fa-weight-hanging:before {\n content: \"\\f5cd\"; }\n\n.fa-weixin:before {\n content: \"\\f1d7\"; }\n\n.fa-whatsapp:before {\n content: \"\\f232\"; }\n\n.fa-whatsapp-square:before {\n content: \"\\f40c\"; }\n\n.fa-wheelchair:before {\n content: \"\\f193\"; }\n\n.fa-whmcs:before {\n content: \"\\f40d\"; }\n\n.fa-wifi:before {\n content: \"\\f1eb\"; }\n\n.fa-wikipedia-w:before {\n content: \"\\f266\"; }\n\n.fa-wind:before {\n content: \"\\f72e\"; }\n\n.fa-window-close:before {\n content: \"\\f410\"; }\n\n.fa-window-maximize:before {\n content: \"\\f2d0\"; }\n\n.fa-window-minimize:before {\n content: \"\\f2d1\"; }\n\n.fa-window-restore:before {\n content: \"\\f2d2\"; }\n\n.fa-windows:before {\n content: \"\\f17a\"; }\n\n.fa-wine-bottle:before {\n content: \"\\f72f\"; }\n\n.fa-wine-glass:before {\n content: \"\\f4e3\"; }\n\n.fa-wine-glass-alt:before {\n content: \"\\f5ce\"; }\n\n.fa-wix:before {\n content: \"\\f5cf\"; }\n\n.fa-wizards-of-the-coast:before {\n content: \"\\f730\"; }\n\n.fa-wolf-pack-battalion:before {\n content: \"\\f514\"; }\n\n.fa-won-sign:before {\n content: \"\\f159\"; }\n\n.fa-wordpress:before {\n content: \"\\f19a\"; }\n\n.fa-wordpress-simple:before {\n content: \"\\f411\"; }\n\n.fa-wpbeginner:before {\n content: \"\\f297\"; }\n\n.fa-wpexplorer:before {\n content: \"\\f2de\"; }\n\n.fa-wpforms:before {\n content: \"\\f298\"; }\n\n.fa-wpressr:before {\n content: \"\\f3e4\"; }\n\n.fa-wrench:before {\n content: \"\\f0ad\"; }\n\n.fa-x-ray:before {\n content: \"\\f497\"; }\n\n.fa-xbox:before {\n content: \"\\f412\"; }\n\n.fa-xing:before {\n content: \"\\f168\"; }\n\n.fa-xing-square:before {\n content: \"\\f169\"; }\n\n.fa-y-combinator:before {\n content: \"\\f23b\"; }\n\n.fa-yahoo:before {\n content: \"\\f19e\"; }\n\n.fa-yandex:before {\n content: \"\\f413\"; }\n\n.fa-yandex-international:before {\n content: \"\\f414\"; }\n\n.fa-yelp:before {\n content: \"\\f1e9\"; }\n\n.fa-yen-sign:before {\n content: \"\\f157\"; }\n\n.fa-yin-yang:before {\n content: \"\\f6ad\"; }\n\n.fa-yoast:before {\n content: \"\\f2b1\"; }\n\n.fa-youtube:before {\n content: \"\\f167\"; }\n\n.fa-youtube-square:before {\n content: \"\\f431\"; }\n\n.fa-zhihu:before {\n content: \"\\f63f\"; }\n\n.sr-only {\n border: 0;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px; }\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n clip: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n position: static;\n width: auto; }\n@font-face {\n font-family: 'Font Awesome 5 Brands';\n font-style: normal;\n font-weight: normal;\n src: url(\"../fonts/fa-brands-400.eot\");\n src: url(\"../fonts/fa-brands-400.eot?#iefix\") format(\"embedded-opentype\"), url(\"../fonts/fa-brands-400.woff2\") format(\"woff2\"), url(\"../fonts/fa-brands-400.woff\") format(\"woff\"), url(\"../fonts/fa-brands-400.ttf\") format(\"truetype\"), url(\"../fonts/fa-brands-400.svg#fontawesome\") format(\"svg\"); }\n\n.fab {\n font-family: 'Font Awesome 5 Brands'; }\n@font-face {\n font-family: 'Font Awesome 5 Free';\n font-style: normal;\n font-weight: 400;\n src: url(\"../fonts/fa-regular-400.eot\");\n src: url(\"../fonts/fa-regular-400.eot?#iefix\") format(\"embedded-opentype\"), url(\"../fonts/fa-regular-400.woff2\") format(\"woff2\"), url(\"../fonts/fa-regular-400.woff\") format(\"woff\"), url(\"../fonts/fa-regular-400.ttf\") format(\"truetype\"), url(\"../fonts/fa-regular-400.svg#fontawesome\") format(\"svg\"); }\n\n.far {\n font-family: 'Font Awesome 5 Free';\n font-weight: 400; }\n@font-face {\n font-family: 'Font Awesome 5 Free';\n font-style: normal;\n font-weight: 900;\n src: url(\"../fonts/fa-solid-900.eot\");\n src: url(\"../fonts/fa-solid-900.eot?#iefix\") format(\"embedded-opentype\"), url(\"../fonts/fa-solid-900.woff2\") format(\"woff2\"), url(\"../fonts/fa-solid-900.woff\") format(\"woff\"), url(\"../fonts/fa-solid-900.ttf\") format(\"truetype\"), url(\"../fonts/fa-solid-900.svg#fontawesome\") format(\"svg\"); }\n\n.fa,\n.fas {\n font-family: 'Font Awesome 5 Free';\n font-weight: 900; }\n",".tykon::before {\n font-family: tykon, sans-serif !important;\n font-style: normal !important;\n font-weight: normal !important;\n font-variant: normal !important;\n text-transform: none !important;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.tykon-arrowdown::before {\n content: \"\\61\";\n}\n\n.tykon-arrowleft::before {\n content: \"\\62\";\n}\n\n.tykon-arrowright::before {\n content: \"\\63\";\n}\n\n.tykon-arrowup::before {\n content: \"\\64\";\n}\n\n.tykon-doublearrowdown::before {\n content: \"\\65\";\n}\n\n.tykon-filter::before {\n content: \"\\66\";\n}\n\n.tykon-graph1::before {\n content: \"\\67\";\n}\n\n.tykon-graph2::before {\n content: \"\\68\";\n}\n\n.tykon-label::before {\n content: \"\\69\";\n}\n\n.tykon-reload::before {\n content: \"\\6a\";\n}\n\n.tykon-select::before {\n content: \"\\6b\";\n}\n\n.tykon-target::before {\n content: \"\\6c\";\n}\n\n.tykon-undo::before {\n content: \"\\6d\";\n}\n\n.tykon-deployment::before {\n content: \"\\6e\";\n}\n\n.tykon-team::before {\n content: \"\\6f\";\n}\n\n.tykon-overview::before {\n content: \"\\70\";\n}\n\n.tykon-loadout::before {\n content: \"\\71\";\n}\n\n.tykon-entitlement::before {\n content: \"\\72\";\n}\n\n.tykon-users::before {\n content: \"\\73\";\n}\n\n.tykon-arrowsort::before {\n content: \"\\57\";\n}\n\n.tykon-check::before {\n content: \"\\56\";\n}\n\n.tykon-copy::before {\n content: \"\\43\";\n}\n\n.tykon-delete::before {\n content: \"\\55\";\n}\n\n.tykon-download::before {\n content: \"\\4c\";\n}\n\n.tykon-draft::before {\n content: \"\\44\";\n}\n\n.tykon-edit::before {\n content: \"\\45\";\n}\n\n.tykon-graphq2::before {\n content: \"\\68\";\n}\n\n.tykon-help::before {\n content: \"\\3f\";\n}\n\n.tykon-link::before {\n content: \"\\52\";\n}\n\n.tykon-lock1::before {\n content: \"\\59\";\n}\n\n.tykon-lock2::before {\n content: \"\\5A\";\n}\n\n.tykon-notifications::before {\n content: \"\\4E\";\n}\n\n.tykon-plus::before {\n content: \"\\2B\";\n}\n\n.tykon-profile::before {\n content: \"\\50\";\n}\n\n.tykon-search::before {\n content: \"\\4F\";\n}\n\n.tykon-settings::before {\n content: \"\\53\";\n}\n\n.tykon-warning::before {\n content: \"\\21\";\n}\n\n.tykon-x::before {\n content: \"\\58\";\n}\n\n.tykon-waiting::before {\n content: \"\\54\";\n}\n\n.tykon-fullscreen::before {\n content: \"\\e000\";\n}\n\n.tykon-fullscreen-exit::before {\n content: \"\\e001\";\n}\n\n.tykon-time::before {\n content: \"\\74\";\n}\n","h1, h2, h3, h4, h5, h6 {\n margin-block-end: var(--headings-margin-bottom);\n font-family: var(--headings-font-family);\n font-weight: var(--headings-font-weight);\n color: var(--headings-color);\n}\n\nlabel {\n display: inline-block;\n max-inline-size: 100%;\n margin-block-end: 5px;\n color: var(--label-color);\n}\n\nh1 {\n font-size: var(--xxl-font-size);\n line-height: var(--xxl-line-height);\n}\n\nh2 {\n font-size: var(--xl-font-size);\n line-height: var(--xl-line-height);\n}\n\nh3 {\n font-size: var(--lg-font-size);\n line-height: var(--lg-line-height);\n}\n\nh4 {\n font-size: var(--md-font-size);\n line-height: var(--md-line-height);\n}\n\nh5 {\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n}\n\nh6 {\n font-size: var(--xs-font-size);\n line-height: var(--xs-line-height);\n}\n\np,\nlabel {\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n font-family: var(--font-family-regular);\n\n a {\n font-size: var(--sm-font-size);\n text-decoration: underline;\n }\n}\n\nstrong {\n font-family: var(--font-family-bold);\n}\n\na:not(.tyk-button) {\n cursor: pointer;\n color: var(--text-color);\n font-family: var(--font-family-regular);\n\n &.link--bold {\n font-family: var(--font-family-bold);\n }\n\n + a {\n margin-inline-start: 5px;\n }\n\n i {\n font-size: 9px\n }\n}\n\n.font-family-regular {\n font-family: var(--font-family-regular);\n}\n\n.font-family-medium {\n font-family: var(--font-family-medium);\n}\n\n.font-family-bold {\n font-family: var(--font-family-bold);\n}\n\n.heading-font-family-regular {\n font-family: var(--headings-font-family-regular);\n}\n\n.heading-font-family-medium {\n font-family: var(--headings-font-family-medium);\n}\n\n.heading-font-family-bold {\n font-family: var(--headings-font-family-bold);\n}\n\n.text--info {\n color: var(--color-info-base);\n}\n\n.text--medium {\n font-family: var(--font-family-medium);\n}\n\n.text--bold {\n font-family: var(--font-family-bold);\n}\n\n.text--uppercase {\n text-transform: uppercase;\n}\n\n.text--ellipsis {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.text--underline {\n text-decoration: underline;\n}\n\n.text--default-light {\n color: var(--color-default-light) !important;\n}\n\n.text--default {\n color: var(--color-default-base) !important;\n}\n\n.text--primary {\n color: var(--color-primary-base) !important;\n}\n\n.text--danger {\n color: var(--color-danger-base) !important;\n}\n\n.text--success {\n color: var(--color-success-base) !important;\n}\n\n.text--warning {\n color: var(--color-warning-base) !important;\n}\n\ntd.text-ellipsis {\n max-inline-size: 250px;\n}\n\n.section-title {\n font-family: var(--headings-font-family-bold);\n margin-block-end: 5px;\n\n .tyk-icon {\n margin-inline-start: 5px;\n }\n}\n\n.sub-section-title {\n margin-block-end: 5px;\n font-family: var(--font-family-medium);\n font-size: var(--md-font-size);\n line-height: var(--md-line-height);\n\n .tyk-icon {\n margin-inline-start: 5px;\n }\n}\n\n.section-group-title {\n margin-block-end: 5px;\n font-family: var(--font-family-bold);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n text-transform: uppercase;\n\n .tyk-icon {\n margin-inline-start: 5px;\n }\n}\n",".tyk-form-section__title {\n font-size: var(--base-font-size);\n margin-block: var(--spacing-xs) var(--spacing-base);\n margin-inline: 0;\n}\n\n.tyk-form-section__title--light {\n color: var(--color-background-dark);\n}\n\n.tyk-form-group {\n margin-block-end: var(--form-group-margin-bottom);\n\n &.has-error > .tyk-form-control__wrapper > .tyk-form-control,\n &.has-error > .tyk-form-control__wrapper > .tyk-input-group > .tyk-form-control,\n &.has-error .tyk-file-input__wrapper > .tyk-form-control {\n border: var(--error-border);\n border-inline-start: var(--error-border-left);\n outline: none;\n\n &:focus {\n border-inline-start: 2px solid var(--color-danger-dark);\n border-color: var(--color-danger-dark);\n outline: none;\n }\n }\n\n label {\n font-family: var(--font-family-medium);\n }\n}\n\n.tyk-form-group--inline {\n align-items: stretch;\n display: flex;\n flex-wrap: nowrap;\n\n .tyk-form-control__wrapper {\n flex: 1;\n }\n\n label {\n display: flex;\n white-space: nowrap;\n margin-inline-end: var(--spacing-md);\n margin-block-start: 14px;\n }\n\n input,\n select {\n display: flex;\n }\n\n .tyk-form-control__help-block {\n display: flex;\n margin-inline-start: auto;\n }\n}\n\n.tyk-form-group--default {\n color: var(--text-color);\n\n > .tyk-form-control__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-file-input__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-input-group > .tyk-form-control {\n border: var(--general-border-width) solid var(--form-default-color);\n color: var(--text-color);\n\n &[disabled] {\n border: var(--general-border-width) solid var(--form-default-color);\n background-color: var(--form-control-disabled-background-color);\n color: var(--form-control-disabled-color);\n cursor: not-allowed;\n\n + .tyk-input-group__addon {\n background-color: var(--form-control-disabled-background-color);\n }\n }\n\n &::placeholder {\n opacity: 0.8;\n }\n\n &:-ms-input-placeholder {\n opacity: 0.8;\n }\n }\n\n &.tyk-form-group--addon-left {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-default-color);\n border-inline-start: 2px solid var(--form-default-color);\n color: var(--text-color);\n }\n }\n\n &.tyk-form-group--addon-right {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-default-color);\n border-inline-end: 2px solid var(--form-default-color);\n color: var(--text-color);\n }\n }\n}\n\n.tyk-form-group--primary {\n color: var(--text-color);\n\n > .tyk-form-control__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-file-input__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-input-group > .tyk-form-control {\n border: var(--general-border-width) solid var(--form-primary-color);\n color: var(--text-color);\n\n &[disabled] {\n border: var(--general-border-width) solid var(--form-primary-color);\n background-color: var(--form-control-disabled-background-color);\n color: var(--form-control-disabled-color);\n cursor: not-allowed;\n\n + .tyk-input-group__addon {\n background-color: var(--form-control-disabled-background-color);\n }\n }\n\n &::placeholder {\n opacity: 0.8;\n }\n\n &:-ms-input-placeholder {\n opacity: 0.8;\n }\n }\n\n &.tyk-form-group--addon-left {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-primary-color);\n border-inline-start: 2px solid var(--form-primary-color);\n color: var(--form-primary-color);\n }\n }\n\n &.tyk-form-group--addon-right {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-primary-color);\n border-inline-end: 2px solid var(--form-primary-color);\n color: var(--form-primary-color);\n }\n }\n}\n\n.tyk-form-group--success {\n color: var(--text-color);\n\n > .tyk-form-control__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-file-input__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-input-group > .tyk-form-control {\n border: var(--general-border-width) solid var(--form-success-color);\n color: var(--text-color);\n\n &[disabled] {\n border: var(--general-border-width) solid var(--form-success-color);\n background-color: var(--form-control-disabled-background-color);\n color: var(--form-control-disabled-color);\n cursor: not-allowed;\n\n + .tyk-input-group__addon {\n background-color: var(--form-control-disabled-background-color);\n }\n }\n\n &::placeholder {\n opacity: 0.8;\n }\n\n &:-ms-input-placeholder {\n opacity: 0.8;\n }\n }\n\n &.tyk-form-group--addon-left {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-success-color);\n border-inline-start: 2px solid var(--form-success-color);\n color: var(--form-success-color);\n }\n }\n\n &.tyk-form-group--addon-right {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-success-color);\n border-inline-end: 2px solid var(--form-success-color);\n color: var(--form-success-color);\n }\n }\n}\n\n.tyk-form-group--rounded-corners {\n &.has-error > .tyk-form-control__wrapper > .tyk-form-control {\n border-inline-start: var(--error-border);\n\n &:focus {\n border-inline-start: var(--error-border);\n outline: none;\n }\n }\n\n .tyk-form-control {\n border-radius: var(--general-border-radius);\n }\n}\n\n.tyk-form-group--addon-right input {\n border-inline-end: 0 !important;\n padding-inline-end: 0;\n}\n\n.tyk-form-group--addon-left input {\n border-inline-start: 0 !important;\n padding-inline-start: 0;\n}\n\n.tyk-form-group--rounded-corners.tyk-form-group--addon-right {\n input {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n }\n\n .tyk-input-group__addon {\n background: var(--form-control-addon-background-color);\n border-start-end-radius: var(--general-border-radius);\n border-end-end-radius: var(--general-border-radius);\n color: var(--text-color);\n }\n}\n\n.tyk-form-group--rounded-corners.tyk-form-group--addon-left {\n input {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n border-inline-start: 0 !important;\n }\n\n .tyk-input-group__addon {\n background: var(--form-control-addon-background-color);\n border-start-start-radius: var(--general-border-radius);\n border-end-start-radius: var(--general-border-radius);\n color: var(--text-color);\n }\n}\n\n.tyk-form-control__error-message {\n font-family: var(--font-family-regular);\n font-size: var(--xs-font-size);\n line-height: var(--xs-line-height);\n margin-block-start: 5px;\n padding: var(--error-message-padding);\n position: relative;\n\n &::before {\n content: '!';\n background: var(--color-danger-base);\n color: white;\n font-family: var(--font-family-bold);\n border-radius: 8px;\n display: inline-block;\n margin-inline-end: 5px;\n padding-block: 0;\n padding-inline: 7px;\n }\n}\n\n.tyk-input-group {\n align-items: center;\n display: flex;\n outline: none;\n}\n\n.tyk-input-group__addon {\n align-items: center;\n background-color: var(--form-control-addon-background-color);\n border: var(--form-control-border);\n display: flex;\n block-size: var(--form-control-height);\n padding-block: var(--form-control-addon-padding-top) var(--form-control-addon-padding-bottom);\n padding-inline: var(--form-control-addon-padding-left) var(--form-control-addon-padding-right);\n\n &:first-child {\n border-inline-end: 0;\n }\n\n &:last-child {\n border-inline-start: 0;\n }\n}\n\n.tyk-form-control {\n font-family: var(--font-family-medium);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n border: var(--form-control-border);\n background-color: white;\n color: var(--text-color);\n display: block;\n block-size: var(--form-control-height);\n padding-block: var(--form-control-padding-top) var(--form-control-padding-bottom);\n padding-inline: var(--form-control-padding-left) var(--form-control-padding-right);\n transition: all .2s linear;\n inline-size: 100%;\n\n &[disabled] {\n background-color: var(--form-control-disabled-background-color);\n\n .tyk-input-group__addon {\n background-color: var(--form-control-disabled-background-color);\n }\n\n cursor: not-allowed;\n }\n\n &::placeholder {\n font-family: var(--form-control-placeholder-font-family);\n color: var(--form-control-placeholder-color);\n }\n\n &:focus,\n &:active {\n outline: none;\n border: var(--form-control-border-focus) !important;\n\n + .tyk-input-group__addon {\n border: var(--form-control-border-focus) !important;\n border-inline-start: none !important;\n }\n }\n}\n\n.tyk-form-control__help-block {\n color: var(--help-block-color);\n font-style: var(--help-block-font-style);\n font-family: var(--font-family-regular);\n font-size: var(--xs-font-size);\n line-height: var(--xs-line-height);\n padding: var(--help-block-padding);\n margin-block: 5px 0;\n margin-inline: 0;\n}\n\nselect {\n border-radius: 0;\n appearance: none;\n}\n\n.inline-form-wrapper {\n align-items: center;\n display: flex;\n inline-size: 100%;\n\n .inline-form {\n inline-size: 100%;\n }\n\n > button {\n margin-inline-start: 10px;\n margin-block-end: var(--spacing-base);\n }\n}\n\n.tyk-checkbox,\n.tyk-radio {\n margin-block: 10px;\n margin-inline: 0;\n\n label {\n font-family: var(--font-family-medium);\n }\n\n input {\n margin-block: 0;\n margin-inline: 0 5px;\n }\n}\n\n.tyk-checkbox--inline,\n.tyk-radio--inline {\n display: inline-flex;\n margin-inline-start: var(--spacing-base);\n\n &:first-child {\n margin-inline-start: 0;\n }\n}\n\n.tyk-inline-form {\n align-items: center;\n display: flex;\n flex-wrap: wrap;\n\n .tyk-form-group {\n flex: 1;\n margin-inline-start: var(--spacing-md);\n min-inline-size: 200px;\n\n &:first-child {\n margin-inline-start:0\n }\n }\n\n > .tyk-button {\n margin-inline-start: var(--spacing-md);\n margin-block-end: var(--spacing-base);\n }\n}\n",":root {\n --accordion-item-header-padding-y: var(--spacing-base);\n --accordion-item-header-padding-x: var(--spacing-base);\n --accordion-item-header-font-size: var(--base-font-size);\n --accordion-item-outside-trigger-width: var(--spacing-xxl);\n}\n\n.tyk-accordion__item {\n display: grid;\n}\n\n.tyk-accordion__item--trigger-position-left {\n grid-template-columns: var(--accordion-item-outside-trigger-width) auto;\n grid-template-areas:\n \"trigger header\"\n \"trigger content\";\n}\n\n.tyk-accordion__item--trigger-position-right {\n grid-template-columns: auto var(--accordion-item-outside-trigger-width);\n grid-template-areas:\n \"header trigger\"\n \"content trigger\";\n}\n\n.tyk-accordion__item--trigger-in-header {\n grid-template-columns: auto;\n grid-template-areas:\n \"header\"\n \"content\";\n}\n\n.tyk-accordion__trigger-wrapper {\n grid-area: trigger;\n display: flex;\n align-items: flex-start;\n justify-content: center;\n\n .tyk-icon {\n margin-inline: auto;\n }\n}\n\n.tyk-accordion__trigger,\n.tyk-accordion__item-header > button {\n background: none;\n border: none;\n cursor: pointer;\n display: flex;\n font-size: var(--accordion-item-header-font-size);\n outline: none;\n padding-inline: var(--accordion-item-header-padding-x);\n padding-block: var(--accordion-item-header-padding-y);\n inline-size: 100%;\n\n .tyk-icon {\n margin-inline-start: auto;\n }\n}\n\n.tyk-accordion__item-header {\n grid-area: header;\n}\n\n.tyk-accordion__trigger--disabled {\n color: var(--color-background-base);\n}\n\n.tyk-accordion__item-header.tyk-accordion__arrow-trigger {\n align-items: center;\n display: flex;\n\n > div {\n flex: 1;\n }\n\n > button {\n margin-inline-start: auto;\n inline-size: auto;\n }\n}\n\n.tyk-accordion__item-content {\n grid-area: content;\n}\n",":root {\n --button-font-family: var(--font-family-bold);\n --button-border-radius: var(--spacing-md);\n\n --padding-y-button-sm: 3px;\n --padding-x-button-sm: var(--spacing-base);\n --padding-y-button-md: 8px;\n --padding-x-button-md: 23px;\n --padding-y-button-lg: 13px;\n --padding-x-button-lg: 23px;\n\n --line-height-button-sm: var(--xs-line-height);\n --line-height-button-md: var(--md-line-height);\n --line-height-button-lg: var(--lg-line-height);\n\n --button-default-color: var(--color-default-base);\n --button-default-hover-color: var(--color-default-dark);\n --button-default-gradient-start-color: var(--color-default-base);\n --button-default-gradient-end-color: var(--color-default-dark);\n\n --button-primary-color: var(--color-default-base-light);\n --button-primary-hover-color: var(--color-default-dark);\n --button-primary-text-color: white;\n --button-primary-gradient-start-color: var(--color-primary-base);\n --button-primary-gradient-end-color: var(--color-primary-dark);\n\n --button-success-color: var(--color-success-base);\n --button-success-hover-color: var(--color-success-dark);\n --button-success-gradient-start-color: var(--color-success-base);\n --button-success-gradient-end-color: var(--color-success-dark);\n\n --button-danger-color: var(--color-danger-base);\n --button-danger-hover-color: var(--color-danger-dark);\n --button-danger-gradient-start-color: var(--color-danger-base);\n --button-danger-gradient-end-color: var(--color-danger-dark);\n\n --button-warning-color: var(--color-warning-base);\n --button-warning-font-color: white;\n --button-warning-gradient-start-color: var(--color-warning-base);\n --button-warning-gradient-end-color: var(--color-warning-light);\n\n --button-info-color: var(--color-info-base);\n --button-info-font-color: var(--text-color);\n --button-info-gradient-start-color: var(--color-info-base);\n --button-info-gradient-end-color: var(--color-info-light);\n\n --button-icon-only-background-hover: var(--color-background-light);\n}\n\n.tyk-button {\n --button-padding-y: var(--padding-y-button-md);\n --button-padding-x: var(--padding-x-button-md);\n --button-font-size: var(--sm-font-size);\n --button-line-height: var(--line-height-button-md);\n\n background-color: transparent;\n border: none;\n color: white;\n cursor: pointer;\n display: inline-block;\n font-family: var(--button-font-family);\n text-align: center;\n text-transform: uppercase;\n text-decoration: none;\n transition: all .2s linear;\n user-select: none;\n vertical-align: middle;\n white-space: nowrap;\n\n + .tyk-button,\n + .tyk-dropdown,\n + .tyk-toggle {\n margin-inline-start: var(--spacing-sm);\n }\n\n span + i {\n margin-inline-start: var(--spacing-sm);\n }\n\n i + span {\n margin-inline-start: var(--spacing-sm);\n }\n\n &.disabled {\n cursor: not-allowed;\n opacity: 0.7;\n }\n\n &:hover {\n color: white;\n text-decoration: none;\n }\n\n &:focus {\n outline: none;\n }\n}\n\n.tyk-button--white {\n --button-variant-background: white;\n --button-variant-border: transparent;\n --button-variant-color: var(--color-default-base);\n --button-variant-hover-background: var(--color-background-dark);\n --button-variant-hover-color: white;\n}\n\n.tyk-button--primary {\n --button-variant-background: var(--button-primary-color);\n --button-variant-border: var(--button-primary-color);\n --button-variant-color: var(--button-primary-text-color);\n --button-variant-hover-background: var(--button-primary-hover-color);\n --button-variant-hover-color: var(--button-primary-text-color);\n}\n\n.tyk-button--success {\n --button-variant-background: var(--button-success-color);\n --button-variant-border: var(--button-success-color);\n --button-variant-color: white;\n --button-variant-hover-background: var(--button-success-hover-color);\n --button-variant-hover-color: white;\n}\n\n.tyk-button--danger {\n --button-variant-background: var(--button-danger-color);\n --button-variant-border: var(--button-danger-color);\n --button-variant-color: white;\n --button-variant-hover-background: var(--button-danger-hover-color);\n --button-variant-hover-color: white;\n}\n\n.tyk-button--warning {\n --button-variant-background: var(--button-warning-color);\n --button-variant-border: transparent;\n --button-variant-color: var(--button-warning-font-color);\n --button-variant-hover-background: color-mix(in srgb, var(--button-variant-background), black 15%);\n --button-variant-hover-color: var(--button-warning-font-color);\n}\n\n.tyk-button--info {\n --button-variant-background: var(--button-info-color);\n --button-variant-border: var(--button-info-color);\n --button-variant-color: white;\n --button-variant-hover-background: color-mix(in srgb, var(--button-variant-background), black 15%);\n --button-variant-hover-color: white;\n}\n\n.tyk-button--default {\n --button-variant-background: var(--button-default-color);\n --button-variant-border: var(--button-default-color);\n --button-variant-color: white;\n --button-variant-hover-background: var(--button-default-hover-color);\n --button-variant-hover-color: white;\n}\n\n.tyk-button--white,\n.tyk-button--primary,\n.tyk-button--success,\n.tyk-button--danger,\n.tyk-button--warning,\n.tyk-button--info,\n.tyk-button--default {\n background-color: var(--button-variant-background);\n color: var(--button-variant-color);\n border: var(--general-border-width) solid var(--button-variant-border);\n\n &:hover {\n background-color: var(--button-variant-hover-background);\n color: var(--button-variant-hover-color);\n }\n}\n\n.tyk-button--primary-link {\n --button-variant-link-color: var(--button-primary-color);\n}\n\n.tyk-button--success-link {\n --button-variant-link-color: var(--button-success-color);\n}\n\n.tyk-button--danger-link {\n --button-variant-link-color: var(--button-danger-color);\n}\n\n.tyk-button--warning-link {\n --button-variant-link-color: var(--button-warning-color);\n}\n\n.tyk-button--info-link {\n --button-variant-link-color: var(--button-info-color);\n}\n\n.tyk-button--default-link {\n --button-variant-link-color: var(--text-color);\n}\n\n.tyk-button--primary-link,\n.tyk-button--success-link,\n.tyk-button--danger-link,\n.tyk-button--warning-link,\n.tyk-button--info-link,\n.tyk-button--default-link {\n background-color: transparent;\n border: var(--general-border-width) solid transparent;\n color: var(--button-variant-link-color);\n\n &:hover {\n background-color: transparent;\n color: var(--button-variant-link-color);\n border-color: var(--button-variant-link-color);\n text-decoration: underline;\n }\n}\n\n.tyk-button--primary-outline {\n --button-variant-outline-border: var(--button-primary-color);\n --button-variant-outline-color: var(--button-primary-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--success-outline {\n --button-variant-outline-border: var(--button-success-color);\n --button-variant-outline-color: var(--button-success-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--danger-outline {\n --button-variant-outline-border: var(--button-danger-color);\n --button-variant-outline-color: var(--button-danger-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--warning-outline {\n --button-variant-outline-border: var(--button-warning-color);\n --button-variant-outline-color: var(--button-warning-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--info-outline {\n --button-variant-outline-border: var(--button-info-color);\n --button-variant-outline-color: var(--button-info-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--default-outline {\n --button-variant-outline-border: var(--button-default-color);\n --button-variant-outline-color: var(--button-default-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--primary-outline,\n.tyk-button--success-outline,\n.tyk-button--danger-outline,\n.tyk-button--warning-outline,\n.tyk-button--info-outline,\n.tyk-button--default-outline {\n border: var(--general-border-width) solid var(--button-variant-outline-border);\n background-color: transparent;\n color: var(--button-variant-outline-color);\n\n &:hover {\n background-color: var(--button-variant-outline-border);\n color: var(--button-variant-outline-hover-color);\n }\n\n &.disabled {\n color: var(--button-variant-outline-border);\n\n &:hover {\n background-color: transparent;\n color: var(--button-variant-outline-border);\n }\n }\n}\n\n.tyk-button--primary-gradient {\n --button-variant-gradient-left-color: var(--button-primary-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-primary-gradient-end-color);\n}\n\n.tyk-button--success-gradient {\n --button-variant-gradient-left-color: var(--button-success-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-success-gradient-end-color);\n}\n\n.tyk-button--danger-gradient {\n --button-variant-gradient-left-color: var(--button-danger-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-danger-gradient-end-color);\n}\n\n.tyk-button--warning-gradient {\n --button-variant-gradient-left-color: var(--button-warning-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-warning-gradient-end-color);\n --button-variant-gradient-color: var(--button-warning-font-color);\n}\n\n.tyk-button--info-gradient {\n --button-variant-gradient-left-color: var(--button-info-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-info-gradient-end-color);\n --button-variant-gradient-color: var(--button-info-font-color);\n}\n\n.tyk-button--default-gradient {\n --button-variant-gradient-left-color: var(--button-default-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-default-gradient-end-color);\n}\n\n.tyk-button--primary-gradient,\n.tyk-button--success-gradient,\n.tyk-button--danger-gradient,\n.tyk-button--warning-gradient,\n.tyk-button--info-gradient,\n.tyk-button--default-gradient {\n border-image: linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color)) 0 round;\n background: transparent linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: var(--button-variant-gradient-color, white);\n\n &:hover,\n &:active,\n &:active:focus {\n border-image: linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color)) 0 round;\n background: transparent linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color));\n background-position: 100% 0;\n background-size: 200% auto;\n background-clip: border-box;\n\n &.disabled {\n border-image: linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color)) 0 round;\n background: transparent linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: var(--button-variant-gradient-color, white);\n }\n }\n}\n\n.tyk-button--sm {\n --button-padding-y: var(--padding-y-button-sm);\n --button-padding-x: var(--padding-x-button-sm);\n --button-font-size: var(--xs-font-size);\n --button-line-height: var(--xs-line-height);\n}\n\n.tyk-button--md {\n --button-padding-y: var(--padding-y-button-md);\n --button-padding-x: var(--padding-x-button-md);\n --button-font-size: var(--sm-font-size);\n --button-line-height: var(--sm-line-height);\n}\n\n.tyk-button--lg {\n --button-padding-y: var(--padding-y-button-lg);\n --button-padding-x: var(--padding-x-button-lg);\n --button-font-size: var(--md-font-size);\n --button-line-height: var(--line-height-button-md);\n}\n\n.tyk-button,\n.tyk-button--sm,\n.tyk-button--md,\n.tyk-button--lg {\n padding-block: var(--button-padding-y);\n padding-inline: var(--button-padding-x);\n font-size: var(--button-font-size);\n line-height: var(--button-line-height);\n border-radius: var(--button-border-radius);\n}\n\n.tyk-button--icon-only {\n border-radius: var(--general-border-radius);\n padding: 0;\n line-height: var(--spacing-md);\n inline-size: 24px;\n\n &:hover {\n border-radius: var(--general-border-radius);\n }\n}\n\n.tyk-button--fit {\n block-size: auto;\n inline-size: auto;\n line-height: normal;\n}\n\n.tyk-button--no-style {\n background: transparent;\n border: none;\n color: var(--text-color);\n\n &:hover {\n background: transparent;\n border: none;\n color: var(--text-color);\n }\n}\n",".tyk-button-group__wrapper {\n display: inline-block;\n position: relative;\n vertical-align: middle;\n\n label {\n font-family: var(--font-family-medium);\n }\n\n + .tyk-button,\n + .tyk-dropdown,\n + .tyk-toggle,\n + .tyk-button-group__wrapper {\n margin-inline-start: var(--spacing-sm);\n }\n\n .tyk-button-group {\n display: flex;\n\n > .tyk-button-group:not(:first-child) {\n > .tyk-button {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n }\n }\n\n > .tyk-button-group:not(:last-child) {\n > .tyk-button {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n }\n }\n\n .tyk-button {\n border-radius: 0;\n\n + .tyk-button {\n margin-inline-start: 0;\n }\n\n + .tyk-dropdown {\n margin-inline-start: 0;\n }\n\n &:first-child {\n border-start-start-radius: var(--spacing-md);\n border-end-start-radius: var(--spacing-md);\n }\n\n &:last-child {\n border-start-end-radius: var(--spacing-md);\n border-end-end-radius: var(--spacing-md);\n\n &.tyk-button--icon-only {\n inline-size: 42px;\n }\n }\n }\n }\n}\n",".tyk-card {\n background-color: white;\n border: 1px solid var(--color-background-base);\n border-radius: 8px;\n box-shadow: 2px 2px 3px var(--color-background-base);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.tyk-card__header {\n align-items: center;\n display: flex;\n font-family: var(--font-inter-regular);\n font-size: var(--sm-font-size);\n padding-block: var(--spacing-base) 0;\n padding-inline: var(--spacing-base);\n}\n\n.tyk-card__header-right {\n margin-inline-start: auto;\n}\n\n.tyk-card__title-group {\n display: grid;\n grid-template-columns: auto 1fr;\n align-items: center;\n\n .tyk-card__title-icon {\n align-items: center;\n display: flex;\n inline-size: 42px;\n block-size: 42px;\n justify-content: center;\n margin-inline-end: 10px;\n grid-row: span 2;\n }\n}\n\n.tyk-card__title {\n font-family: var(--font-inter-bold);\n font-size: var(--lg-font-size);\n display: -webkit-box;\n -webkit-box-orient: vertical;\n overflow: hidden;\n margin: 0;\n text-overflow: ellipsis;\n}\n\n.tyk-card__title--max-1-lines {\n -webkit-line-clamp: 1;\n}\n\n.tyk-card__title--max-2-lines {\n -webkit-line-clamp: 2;\n}\n\n.tyk-card__sub-title {\n font-family: var(--font-inter-medium);\n font-size: var(--xs-font-size);\n margin: 0;\n}\n\n.tyk-card__title-group + .tyk-card__summary,\n.tyk-card__sub-title + .tyk-card__summary,\n.tyk-card__title + .tyk-card__summary {\n margin-block-start: var(--spacing-sm);\n}\n\n.tyk-card__summary {\n color: var(--text-color);\n font-family: var(--font-inter-regular);\n font-size: var(--sm-font-size);\n display: -webkit-box;\n -webkit-box-orient: vertical;\n overflow: hidden;\n margin: 0;\n text-overflow: ellipsis;\n}\n\n.tyk-card__summary--max-1-lines {\n -webkit-line-clamp: 1;\n}\n\n.tyk-card__summary--max-2-lines {\n -webkit-line-clamp: 2;\n}\n\n.tyk-card__summary--max-3-lines {\n -webkit-line-clamp: 3;\n}\n\n.tyk-card__summary--max-4-lines {\n -webkit-line-clamp: 4;\n}\n\n.tyk-card__summary--max-5-lines {\n -webkit-line-clamp: 5;\n}\n\n.tyk-card__body {\n display: flex;\n flex: 1 0 auto;\n flex-grow: 1;\n padding: var(--spacing-base);\n}\n\n.tyk-card__body--align-top {\n align-items: flex-start;\n}\n\n.tyk-card__body--align-center {\n align-items: center;\n}\n\n.tyk-card__body--align-bottom {\n align-items: flex-end;\n}\n\n.tyk-card__footer {\n display: flex;\n justify-content: end;\n border-block-start: 1px solid var(--color-background-base);\n padding: var(--spacing-base);\n}",".tyk-chart__wrapper {\n position: relative;\n}\n\n.tyk-chart--no-data,\n.tyk-chart--loading-chart {\n filter: blur(var(--spacing-sm));\n}\n",".collapse-exit,\n.collapse-exit-active,\n.collapse-exit-done {\n block-size: 0;\n}\n\n.collapse-wrapper {\n overflow: hidden;\n transition: all .2s;\n}\n\n.collapse-horizontal-exit,\n.collapse-horizontal-exit-active,\n.collapse-horizontal-exit-done {\n inline-size: 0;\n}\n\n.collapse-horizontal-enter,\n.collapse-horizontal-enter-active,\n.collapse-horizontal-enter-done {\n inline-size: 100%;\n}\n",".tyk-copy-to-clipboard {\n position: absolute;\n inset-inline-start: -1000px;\n inset-block-start: -1000px;\n}",":root {\n --fixed-wrapper-top: 0;\n --fixed-wrapper-left: 0;\n --fixed-wrapper-right: 0;\n}\n\n.tyk-fixed-wrapper {\n inset-inline-start: var(--fixed-wrapper-left);\n inset-inline-end: var(--fixed-wrapper-right);\n position: sticky;\n inset-block-start: var(--fixed-wrapper-top);\n z-index: 8;\n}\n\n.tyk-fixed-wrapper--scrolled {\n box-shadow: 2px 2px 5px rgba(0 0 0 / 10%);\n}\n",".floating-container {\n position: fixed;\n inset-block-start: -9999px;\n overflow: auto;\n z-index: var(--modal-z-index, 1080);\n}\n\n.floating-container__content-wrapper {\n block-size: 100%;\n}",".tyk-icon {\n + .tyk-icon {\n margin-inline-start: var(--spacing-sm);\n }\n}\n",".tyk-infinite-scroller {\n block-size: 100%;\n overflow: hidden;\n position: relative;\n\n .loading {\n background: linear-gradient(180deg, rgba(255 255 255 / 0%), rgba(255 255 255 / 100%));\n justify-content: center;\n display: flex;\n inset-inline: 0;\n inset-block-start: auto;\n inset-block-end: 0;\n padding-block: var(--spacing-base);\n padding-inline: 0;\n inline-size: 100%;\n }\n}\n\n.tyk-infinite-scroller__wrapper {\n block-size: 100%;\n overflow-y: auto;\n}\n",".tyk-info-note {\n border-radius: 0;\n position: relative;\n\n p + p {\n margin-block-start: var(--spacing-base);\n }\n\n &::after {\n content: '';\n border-style: solid;\n border-width: 0 var(--spacing-md) var(--spacing-md) 0;\n border-color: transparent var(--color-info-base) transparent transparent;\n block-size: 0;\n position: absolute;\n inset-inline-end: 0;\n inset-block-start: 0;\n inline-size: 0;\n }\n\n .tyk-message {\n border-radius: 0;\n padding-block: 40px;\n }\n}\n",".tyk-loading__wrapper {\n background: rgba(255 255 255 / 60%);\n position: absolute;\n inset: 0;\n z-index: 99;\n}\n\n.loader-wrapper {\n min-block-size: 100px;\n position: relative;\n}\n\n.loading {\n position: absolute;\n inset-block-start: calc(50% - var(--spacing-sm));\n inset-inline-start: 50%;\n\n &.relative {\n inset-inline-start: auto;\n padding: 25px;\n position: relative;\n text-align: center;\n inset-block-start: auto;\n inline-size: 100%;\n }\n}\n\n.loading-bar {\n display: inline-block;\n inline-size: 4px;\n block-size: var(--spacing-md);\n border-radius: 4px;\n animation: loading 1s ease-in-out infinite;\n margin-inline-start: 2px;\n}\n\n.loading-bar:nth-child(1) {\n animation-delay: 0;\n background-color: var(--color-success-base);\n opacity: 1;\n}\n\n.loading-bar:nth-child(2) {\n animation-delay: 0.09s;\n background-color: var(--color-success-base);\n opacity: 0.80;\n}\n\n.loading-bar:nth-child(3) {\n animation-delay: .18s;\n background-color: var(--color-success-base);\n opacity: 0.60;\n}\n\n.loading-bar:nth-child(4) {\n animation-delay: .27s;\n background-color: var(--color-success-base);\n opacity: 0.40;\n}\n\n@keyframes loading {\n 0% {\n transform: scale(1);\n }\n\n 20% {\n transform: scale(1, 2.2);\n }\n\n 40% {\n transform: scale(1);\n }\n}\n",".tyk-list {\n border: var(--general-border-width) solid var(--color-default-light);\n border-radius: var(--general-border-radius);\n font-size: var(--sm-font-size);\n list-style-type: none;\n margin: 0;\n max-block-size: 191px;\n padding: 0;\n overflow: auto;\n\n li {\n border-block-end: 1px solid var(--color-default-light);\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-md);\n font-family: var(--font-family-medium);\n\n &.tyk-list__item--selected {\n background-color: var(--color-default-light);\n }\n\n &:last-child {\n border: none;\n }\n }\n}\n\n.tyk-list--with-inline-label {\n display: flex;\n\n > label {\n margin-inline-end: var(--spacing-md);\n }\n}\n\n.tyk-list--default {\n border-color: var(--color-default-light);\n}\n\n.tyk-list--primary {\n border-color: var(--color-primary-base);\n\n li {\n border-color: var(--color-primary-light);\n color: var(--text-color);\n\n &.tyk-list__item--selected {\n background-color: var(--color-primary-light);\n }\n }\n}\n\n.tyk-list--primary-light {\n border-color: var(--color-primary-light);\n\n li {\n border-color: var(--color-primary-light);\n color: var(--text-color);\n\n &.tyk-list__item--selected {\n background-color: var(--color-primary-light);\n }\n }\n}\n\n.tyk-list--success {\n border-color: var(--color-success-base);\n color: var(--color-success-base);\n\n li {\n border-color: var(--color-success-base);\n\n &.tyk-list__item--selected {\n background-color: var(--color-success-light);\n }\n }\n}\n\n.tyk-list--danger {\n border-color: var(--color-danger-base);\n color: var(--text-color);\n\n li {\n border-color: var(--color-danger-light);\n\n &.tyk-list__item--selected {\n background-color: var(--color-danger-light);\n }\n }\n}\n\nul.tyk-list--inline {\n align-items: center;\n display: flex;\n\n li {\n padding-block: 0;\n padding-inline: var(--spacing-sm);\n }\n\n &.tyk-list--with-separator {\n li:not(:first-child) {\n border-inline-start: 1px solid var(--color-default-base);\n }\n }\n}\n",":root {\n --tyk-message-padding-top: var(--spacing-md);\n --tyk-message-padding-right: var(--spacing-md);\n --tyk-message-padding-bottom: var(--spacing-md);\n --tyk-message-padding-left: var(--spacing-md);\n --tyk-message-border-radius: var(--general-border-radius);\n --tyk-message-default-background: var(--color-primary-light);\n --tyk-message-default-border: var(--color-default-dark);\n --tyk-message-default-text-color: var(--color-default-dark);\n --tyk-message-info-background: var(--color-info-light);\n --tyk-message-info-border: var(--color-info-base);\n --tyk-message-info-text-color: var(--color-info-base);\n --tyk-message-success-background: var(--color-success-light);\n --tyk-message-success-border: var(--color-success-dark);\n --tyk-message-success-text-color: var(--color-success-dark);\n --tyk-message-warning-background: var(--color-warning-light);\n --tyk-message-warning-border: var(--color-warning-base);\n --tyk-message-warning-text-color: var(--color-warning-dark);\n --tyk-message-danger-background: var(--color-danger-extra-light);\n --tyk-message-danger-border: var(--color-danger-base);\n --tyk-message-danger-text-color: var(--color-danger-dark);\n}\n\n.tyk-message {\n display: flex;\n align-items: center;\n border-radius: var(--tyk-message-border-radius);\n margin-block-end: var(--spacing-md);\n padding-block: var(--tyk-message-padding-top) var(--tyk-message-padding-bottom);\n padding-inline: var(--tyk-message-padding-left) var(--tyk-message-padding-right);\n\n > .tyk-icon:first-child {\n inline-size: 32px;\n block-size: 32px;\n flex-shrink: 0;\n border-radius: 50%;\n color: white;\n\n &::before {\n display: flex;\n inline-size: 100%;\n block-size: 100%;\n align-items: center;\n justify-content: center;\n }\n }\n\n > .tyk-icon:last-child {\n cursor: pointer;\n }\n\n /* &--default {\n @include message-variant(\n $tyk-message-default-background,\n $tyk-message-default-border,\n $tyk-message-default-text-color\n );\n\n > .tyk-icon:first-child {\n transform: rotate(180deg);\n }\n }\n\n &--info {\n @include message-variant(\n $tyk-message-info-background,\n $tyk-message-info-border,\n $tyk-message-info-text-color\n );\n }\n\n &--success {\n @include message-variant(\n $tyk-message-success-background,\n $tyk-message-success-border,\n $tyk-message-success-text-color\n );\n }\n\n &--warning {\n @include message-variant(\n $tyk-message-warning-background,\n $tyk-message-warning-border,\n $tyk-message-warning-text-color\n );\n }\n\n &--danger {\n @include message-variant(\n $tyk-message-danger-background,\n $tyk-message-danger-border,\n $tyk-message-danger-text-color\n );\n } */\n}\n\n.tyk-message__content {\n flex-grow: 1;\n margin-inline: var(--spacing-md);\n}\n\n.tyk-message--default {\n --message-variant-background: var(--tyk-message-default-background);\n --message-variant-border: var(--tyk-message-default-border);\n --message-variant-color: var(--tyk-message-default-text-color);\n\n > .tyk-icon:first-child {\n transform: rotate(180deg);\n }\n}\n\n.tyk-message--info {\n --message-variant-background: var(--tyk-message-info-background);\n --message-variant-border: var(--tyk-message-info-border);\n --message-variant-color: var(--tyk-message-info-text-color);\n}\n\n.tyk-message--success {\n --message-variant-background: var(--tyk-message-success-background);\n --message-variant-border: var(--tyk-message-success-border);\n --message-variant-color: var(--tyk-message-success-text-color);\n}\n\n.tyk-message--warning {\n --message-variant-background: var(--tyk-message-warning-background);\n --message-variant-border: var(--tyk-message-warning-border);\n --message-variant-color: var(--tyk-message-warning-text-color);\n}\n\n.tyk-message--danger {\n --message-variant-background: var(--tyk-message-danger-background);\n --message-variant-border: var(--tyk-message-danger-border);\n --message-variant-color: var(--tyk-message-danger-text-color);\n}\n\n.tyk-message--default,\n.tyk-message--info,\n.tyk-message--success,\n.tyk-message--warning,\n.tyk-message--danger {\n background-color: var(--message-variant-background);\n border: var(--general-border-width) solid var(--message-variant-border);\n color: var(--message-variant-color);\n\n & > .tyk-icon:first-child {\n background-color: var(--message-variant-border);\n }\n}\n",":root {\n --tyk-modal-body-padding: var(--spacing-lg);\n --tyk-modal-footer-padding: var(--spacing-lg);\n\n /* Deprecated Modal.Header and Modal.Title */\n --tyk-modal-header-padding: var(--spacing-lg);\n --tyk-modal-borders-color: var(--color-background-light);\n\n /* End of deprecated styles */\n}\n\n.tyk-modal {\n --theme-header-height: 15px;\n --theme-header-icon-size: 65px;\n\n align-items: center;\n pointer-events: none;\n position: fixed;\n inset: 0;\n z-index: -1;\n\n .tyk-panel {\n border: var(--general-border-width) solid var(--color-background-dark);\n box-shadow: none;\n }\n\n .tyk-modal__dialog {\n opacity: 0;\n transition: all .2s ease;\n }\n\n &.opened {\n display: flex;\n z-index: var(--modal-z-index);\n\n .tyk-modal__dialog {\n display: flex;\n max-block-size: 92vh;\n opacity: 1;\n pointer-events: all;\n }\n }\n\n &.appear-enter-done {\n .tyk-modal__dialog {\n opacity: 1;\n margin-block-start: 0;\n }\n }\n}\n\n.tyk-modal__theme-header {\n position: absolute;\n inset-block-start: -1px;\n inset-inline: 0;\n block-size: var(--theme-header-height);\n border-start-start-radius: var(--general-border-radius);\n border-start-end-radius: var(--general-border-radius);\n\n .tyk-icon {\n position: absolute;\n inset-inline-start: calc(50% - var(--theme-header-icon-size) / 2);\n inset-block-start: calc((var(--theme-header-icon-size) - var(--theme-header-height)) / -2);\n inline-size: var(--theme-header-icon-size);\n block-size: var(--theme-header-icon-size);\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: var(--xxl-font-size);\n color: white;\n }\n}\n\n.tyk-modal--theme-success {\n .tyk-modal__theme-header {\n background-color: var(--color-success-base);\n\n .tyk-icon {\n background-color: var(--color-success-base);\n }\n }\n}\n\n.tyk-modal--theme-warning {\n .tyk-modal__theme-header {\n background-color: var(--color-warning-base);\n\n .tyk-icon {\n background-color: var(--color-warning-base);\n }\n }\n}\n\n.tyk-modal--theme-danger {\n .tyk-modal__theme-header {\n background-color: var(--color-danger-base);\n\n .tyk-icon {\n background-color: var(--color-danger-base);\n }\n }\n}\n\n.tyk-modal__dialog {\n opacity: 0;\n margin-inline: auto;\n margin-block-start: -5%;\n margin-block-end: 0;\n pointer-events: all;\n transition: all .2s linear;\n inline-size: 85%;\n}\n\n@media only screen and (width >= 768px) {\n .tyk-modal__dialog {\n inline-size: 600px;\n\n &.tyk-modal--lg {\n inline-size: 800px;\n }\n }\n}\n\n.tyk-modal__content {\n background: white;\n border-radius: var(--general-border-radius);\n display: flex;\n flex-direction: column;\n position: relative;\n inline-size: 100%;\n}\n\n.tyk-modal__body {\n flex: 1;\n overflow: auto;\n padding-block-start: calc(var(--tyk-modal-body-padding) + (var(--theme-header-icon-size) - var(--theme-header-height)) / 2);\n padding-block-end: var(--tyk-modal-body-padding);\n padding-inline: var(--tyk-modal-body-padding);\n\n &.no-padding {\n padding: 0;\n }\n}\n\n.tyk-modal__footer {\n align-items: center;\n display: flex;\n justify-content: flex-end;\n padding: var(--tyk-modal-footer-padding);\n\n >:not(:first-child) {\n margin-inline-start: var(--spacing-xs);\n }\n}\n\n.tyk-modal__backdrop {\n background-color: var(--color-default-dark);\n border: none;\n display: none;\n position: fixed;\n inset: 0;\n inline-size: 100%;\n z-index: var(--modal-z-index) - 1;\n\n &.opened {\n display: block;\n opacity: 0.5;\n transition: opacity .2s ease;\n }\n\n &.fade-enter-done {\n opacity: 0.5;\n z-index: 9;\n }\n}\n\n/* Deprecated Modal.Header and Modal.Title */\n.tyk-modal__header {\n padding-block-start: calc(var(--tyk-modal-header-padding) + (var(--theme-header-icon-size) - var(--theme-header-height)) / 2);\n padding-block-end: var(--tyk-modal-header-padding);\n padding-inline: var(--tyk-modal-header-padding);\n align-items: center;\n border-block-end: 1px solid var(--tyk-modal-borders-color);\n display: flex;\n inline-size: 100%;\n\n .tyk-modal--theme-none & {\n padding-block-start: var(--tyk-modal-header-padding);\n }\n\n button {\n margin-inline-start: auto;\n padding-block: 0;\n padding-inline: 5px;\n }\n\n + .tyk-modal__body {\n padding-block-start: var(--tyk-modal-body-padding);\n }\n}\n\n.tyk-modal__title {\n font-family: var(--font-family-medium);\n font-weight: 500;\n margin: 0;\n inline-size: 100%;\n}\n\n/* End of deprecated styles */\n",":root {\n --navigation-background-color: white;\n --navigation-item-padding-y: var(--spacing-sm);\n --navigation-item-padding-x: var(--spacing-md);\n --navigation-item-background-color: white;\n --navigation-item-color: var(--text-color);\n --navigation-item-hover-background-color: var(--color-primary-base);\n --navigation-item-hover-color: white;\n --navigation-item-active-background-color: var(--color-primary-dark);\n --navigation-item-active-color: white;\n --navigation-padding: 0;\n}\n\n.tyk-navigation {\n background-color: var(--navigation-background-color);\n block-size: 100%;\n overflow: auto;\n padding: var(--navigation-padding);\n inline-size: 100%;\n\n .tyk-navigation-item {\n inline-size: 100%;\n\n a {\n color: var(--navigation-item-color);\n display: flex;\n padding-block: var(--navigation-item-padding-y);\n padding-inline: var(--navigation-item-padding-x);\n text-decoration: none;\n transition: all .2s ease;\n\n &:hover {\n background-color: var(--navigation-item-hover-background-color);\n color: var(--navigation-item-hover-color);\n }\n\n &.active {\n background-color: var(--navigation-item-active-background-color);\n color: var(--navigation-item-active-color);\n }\n }\n }\n}\n",":root {\n --nav-bar-background-color: white;\n --nav-bar-text-color: var(--color-default-base);\n --nav-bar-padding-left: 265px;\n --nav-bar-animate-left: 245px;\n --nav-bar-top-padding: var(--spacing-sm);\n --nav-bar-bottom-padding: 0;\n --nav-bar-left-padding: var(--spacing-md);\n --nav-bar-right-padding: var(--spacing-md);\n --nav-bar-padding: 0 var(--nav-bar-right-padding) 0 var(--nav-bar-left-padding);\n --nav-bar-top: 51px;\n --nav-bar-header-font-size: var(--xxl-font-size);\n --nav-bar-header-font-family: var(--headings-font-family-bold);\n --nav-bar-header-line-height: var(--xxl-line-height);\n --nav-bar-height: 92px;\n --nav-bar-font-family: var(--font-family-regular);\n}\n\n.tyk-nav-bar {\n align-items: center;\n border: none;\n background-color: var(--nav-bar-background-color);\n font-family: var(--nav-bar-font-family);\n color: var(--nav-bar-text-color);\n margin: 0;\n padding: var(--nav-bar-padding);\n inline-size: 100%;\n z-index: 8;\n transition: all .2s linear;\n\n &.tyk-nav-bar__with-tabs .tyk-tabs--default > ul li button {\n padding-block-start: 0;\n }\n\n @media screen and (width <= 1024px) {\n padding-inline-start: var(--spacing-md);\n\n .menu-opened & {\n transform: translate(var(--nav-bar-animate-left));\n }\n }\n\n h1 {\n color: var(--nav-bar-text-color);\n }\n\n h4 {\n margin: 0;\n }\n\n .tyk-nav-bar__wrapper {\n align-items: center;\n padding-block-end: var(--nav-bar-bottom-padding);\n display: flex;\n flex-wrap: wrap;\n block-size: var(--nav-bar-height);\n\n &.tyk-nav-bar--align-top {\n align-items: flex-start;\n }\n\n @media screen and (width <= 1024px) {\n padding-inline-start: 0;\n }\n\n h1 {\n font-size: var(--nav-bar-header-font-size);\n font-family: var(--nav-bar-header-font-family);\n line-height: var(--nav-bar-header-line-height);\n margin: 0;\n padding-inline-end: var(--spacing-sm);\n }\n\n h4 {\n padding-inline-end: var(--spacing-sm);\n }\n\n .tyk-nav-bar__container {\n align-items: center;\n display: flex;\n flex-grow: 1;\n justify-content: space-between;\n }\n\n .tyk-nav-bar__left {\n flex-grow: 1;\n }\n\n .tyk-nav-bar__right {\n margin-inline-start: auto;\n }\n }\n}\n\n.tyk-nav-bar__pre {\n align-self: flex-end;\n color: var(--text-color);\n flex-basis: 100%;\n\n a {\n font-family: var(--font-family-bold);\n font-size: var(--xs-font-size);\n line-height: var(--xs-line-height);\n color: var(--text-color);\n }\n}\n",":root {\n --padding-y-panel-header: var(--spacing-sm);\n --padding-x-panel-header: 25px;\n --padding-y-blank-panel-header: var(--spacing-md);\n --padding-panel-body: 25px;\n --padding-x-right-panel-collapsable: 48px;\n --padding-x-left-panel-collapsable: var(--padding-x-right-panel-collapsable);\n --panel-border-radius: 0;\n --panel-default-border-bottom-color: var(--color-background-base);\n --panel-header-font-size: var(--base-font-size);\n --panel-header-font-family: var(--font-family-medium);\n --panel-primary-header-color: var(--color-primary-base);\n --panel-primary-body-color: white;\n --panel-primary-header-text-color: white;\n --panel-primary-body-text-color: var(--text-color);\n --panel-primary-label-color: var(--text-color);\n --panel-primary-border-color: none;\n}\n\n.tyk-panel {\n background: white;\n border-radius: var(--panel-border-radius);\n margin-block-end: 20px;\n font-family: var(--font-family-medium);\n position: relative;\n\n &.has-error,\n & &.has-error {\n border: var(--general-border-width) solid var(--color-danger-base);\n }\n\n .tyk-panel {\n border: var(--general-border-width) solid var(--color-default-light);\n box-shadow: none;\n }\n\n .tyk-panel__header {\n border: none;\n font-size: var(--lg-font-size);\n line-height: var(--lg-line-height);\n }\n}\n\n.tyk-panel--blank {\n &.tyk-panel--collapsed {\n margin-block-end: 20px;\n\n .tyk-panel__header {\n margin-block-end: 0;\n }\n }\n\n .tyk-panel__header {\n margin-block-end: -20px;\n padding-block: var(--padding-y-blank-panel-header);\n padding-inline: var(--padding-x-panel-header);\n background-color: white;\n color: var(--color-default-base);\n }\n}\n\n.tyk-panel--primary {\n background-color: transparent;\n\n .tyk-panel__header {\n background-color: var(--panel-primary-header-color);\n color: var(--panel-primary-header-text-color);\n border: var(--panel-primary-border-color);\n }\n\n .tyk-panel__body {\n background-color: var(--panel-primary-body-color);\n color: var(--panel-primary-body-text-color);\n }\n\n & .tyk-form-group {\n label {\n color: var(--panel-primary-label-color);\n }\n }\n\n .tyk-toggle {\n .tyk-toggle__label {\n color: var(--panel-primary-label-color);\n }\n }\n}\n\n.tyk-panel--success {\n .tyk-panel__header {\n background-color: var(--color-success-base);\n color: white;\n }\n}\n\n.tyk-panel--danger {\n .tyk-panel__header {\n background-color: var(--color-danger-base);\n color: white;\n }\n}\n\n.tyk-panel--warning {\n .tyk-panel__header {\n background-color: var(--color-warning-base);\n color: white;\n }\n}\n\n.tyk-panel__body {\n background-color: white;\n border-radius: var(--panel-border-radius);\n font-family: var(--font-family-regular);\n padding: var(--padding-panel-body);\n position: relative;\n transition: block-size .2s;\n\n & ~ .tyk-panel__header {\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n\n &.no-padding {\n padding: 0;\n }\n}\n\n.tyk-panel__header {\n display: flex;\n align-items: center;\n border-block-end: 1px solid var(--panel-default-border-bottom-color);\n border-radius: var(--panel-border-radius);\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n font-family: var(--panel-header-font-family);\n overflow: hidden;\n padding-block: var(--padding-y-panel-header);\n padding-inline: var(--padding-x-panel-header);\n position: relative;\n\n > .tyk-icon,\n > .tyk-tooltip__wrapper {\n margin-inline-start: 5px;\n }\n\n .tyk-panel--collapsed & {\n border-end-start-radius: var(--panel-border-radius);\n border-end-end-radius: var(--panel-border-radius);\n }\n\n & ~ .tyk-panel__body {\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n }\n\n & h3 {\n margin: 0;\n }\n\n ng-transclude {\n vertical-align: middle;\n }\n\n &.collapsable {\n cursor: pointer;\n\n .tyk-panel__icon-collapse--right & {\n padding-inline-end: var(--padding-x-right-panel-collapsable);\n }\n\n .tyk-panel__icon-collapse--left & {\n padding-inline-start: var(--padding-x-left-panel-collapsable);\n }\n }\n\n .collapsable__arrow-right {\n font-size: var(--sm-font-size);\n position: absolute;\n padding: var(--spacing-sm);\n inset-inline-end: var(--spacing-sm);\n inset-block-start: calc(50% - 21px);\n }\n\n .collapsable__arrow-left {\n font-size: var(--sm-font-size);\n position: absolute;\n padding-block: 8px var(--spacing-sm);\n padding-inline: 20px 0;\n inset-inline-start: 0;\n inset-block-start: calc(50% - 21px);\n }\n}\n\n.tyk-panel__footer {\n align-items: center;\n border-block-start: 1px solid var(--color-background-light);\n display: flex;\n justify-content: flex-end;\n padding: var(--spacing-lg);\n\n >:not(:first-child) {\n margin-inline-start: 5px;\n }\n}\n",".tyk-pill {\n align-items: center;\n border-radius: var(--general-border-radius);\n display: inline-flex;\n font-size: var(--xs-font-size);\n line-height: 19px;\n margin: var(--pill-margin);\n padding-block: 6px;\n padding-inline: var(--spacing-base);\n font-family: var(--font-family-medium);\n\n i {\n font-size: var(--xs-font-size);\n }\n\n + .tyk-pill {\n margin-inline-end: var(--spacing-sm);\n }\n\n button + span {\n margin-inline-start: var(--spacing-sm);\n }\n\n span + button {\n margin-inline-start: var(--spacing-sm);\n }\n\n &:first-child {\n margin-inline-end: var(--spacing-sm);\n }\n\n &:last-child {\n margin-inline-end: 0;\n }\n}\n\n.tyk-pill--square {\n border-radius: 8px;\n}\n\n.tyk-pill--default {\n background-color: var(--default-pill-background-color);\n color: var(--default-pill-color);\n\n i {\n color: var(--default-pill-color);\n }\n}\n\n.tyk-pill--default-outline {\n box-shadow: var(--default-outline-pill-box-shadow);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n\n.tyk-pill--primary {\n background-color: var(--color-primary-base);\n color: white;\n\n i {\n color: var(--default-pill-color);\n }\n}\n\n.tyk-pill--primary-outline {\n box-shadow: inset 0 0 0 2px var(--color-primary-base);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n\n.tyk-pill--success {\n background-color: var(--color-success-base);\n color: white;\n\n i {\n color: white;\n }\n}\n\n.tyk-pill--success-outline {\n box-shadow: inset 0 0 0 2px var(--color-success-base);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n\n.tyk-pill--danger {\n background-color: var(--color-danger-base);\n color: white;\n\n i {\n color: white;\n }\n}\n\n.tyk-pill--danger-outline {\n box-shadow: inset 0 0 0 2px var(--color-danger-base);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n\n.tyk-pill--warning {\n background-color: var(--color-warning-base);\n color: white;\n\n i {\n color: white;\n }\n}\n\n.tyk-pill--warning-outline {\n box-shadow: inset 0 0 0 2px var(--color-warning-base);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n\n.tyk-pill--info {\n background-color: var(--color-info-base);\n color: white;\n\n i {\n color: white;\n }\n}\n\n.tyk-pill--info-outline {\n box-shadow: inset 0 0 0 2px var(--color-info-base);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n",".tyk-ui-reveal-wrapper {\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n align-items: stretch;\n inline-size: 100%;\n block-size: 100%;\n z-index: 1000;\n position: absolute;\n inset-block-end: 0;\n inset-inline-start: 0;\n pointer-events: none;\n}\n\n.tyk-ui-reveal-wrapper__panel {\n max-block-size: calc(100% - 2rem);\n background-color: white;\n padding: 0;\n margin: 0;\n display: flex;\n flex-direction: column;\n pointer-events: all;\n flex-shrink: 0;\n overflow: auto;\n}\n\n.tyk-ui-reveal-wrapper__hole {\n flex-grow: 1;\n opacity: 0;\n inline-size: 100%;\n background-color: green;\n -webkit-user-select: none;\n user-select: none;\n pointer-events: none;\n z-index: -1;\n}\n\n.tyk-ui-reveal-wrapper__gutter {\n block-size: 2rem;\n inline-size: 100%;\n cursor: row-resize;\n display: flex;\n background-color: var(--color-primary-base);\n z-index: 2;\n pointer-events: all;\n justify-content: space-between;\n align-items: stretch;\n position: relative;\n box-shadow: 0 5px 10px rgba(0 0 0 / 30%);\n}\n\n.tyk-ui-reveal-wrapper__gutter__headerleft,\n.tyk-ui-reveal-wrapper__gutter__headerright {\n display: flex;\n align-items: center;\n flex: 1;\n}\n\n.tyk-ui-reveal-wrapper__gutter__headerleft {\n justify-content: flex-start;\n}\n\n.tyk-ui-reveal-wrapper__gutter__headerright {\n justify-content: flex-end;\n}\n\n.tyk-ui-reveal-wrapper__gutter__logo {\n inline-size: 1rem;\n block-size: 1rem;\n -webkit-user-select: none;\n user-select: none;\n pointer-events: none;\n padding: 0.2rem;\n z-index: 2;\n background-image: url('./images/drag.svg');\n align-self: center;\n\n &:hover {\n border: dashed;\n }\n}\n",":root {\n --sidebar-background-color: white;\n --sidebar-top: 58px;\n --sidebar-height: calc(100vh - 58px);\n --sidebar-width: 280px;\n --sidebar-padding: 0;\n}\n\n.tyk-sidebar {\n background-color: var(--sidebar-background-color);\n block-size: var(--sidebar-height);\n flex: 0 0 var(--sidebar-width);\n padding: var(--sidebar-padding);\n position: sticky;\n overflow: auto;\n inset-block-start: var(--sidebar-top);\n}\n",":root {\n --table-th-padding: var(--spacing-base) var(--spacing-sm);\n --table-td-padding-y: var(--spacing-xs);\n --table-td-padding-x: var(--spacing-sm);\n --table-first-last-padding: 20px;\n --table-pagination-padding: var(--spacing-md) 25px;\n}\n\n.tyk-table {\n border-collapse: collapse;\n border-spacing: 0;\n background-color: white;\n border-radius: var(--general-border-radius);\n inline-size: 100%;\n\n > thead th {\n border-inline-end: 1px solid var(--color-default-light);\n color: var(--text-color);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n font-family: var(--font-family-bold);\n text-transform: uppercase;\n padding: var(--table-th-padding);\n\n &:last-child {\n border-inline-end: none;\n }\n\n i {\n font-size: var(--xs-font-size);\n }\n\n .tyk-button {\n background: none;\n color: var(--color-default-base);\n padding: 0;\n }\n }\n\n > tbody tr:hover {\n background: rgba(var(--color-background-light) / 40%);\n }\n\n > tbody td {\n border-inline-end: 1px solid var(--color-default-light);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n font-family: var(--font-family-regular);\n padding-block: var(--table-td-padding-y);\n padding-inline: var(--table-td-padding-x);\n vertical-align: middle;\n\n &:last-child {\n border-inline-end: none;\n }\n\n &.fit {\n white-space: nowrap;\n inline-size: 1%;\n }\n\n input:not([type='checkbox'], [type='radio']) {\n margin-block-start: var(--spacing-base);\n }\n\n a {\n color: var(--text-color);\n font-family: var(--font-family-medium);\n }\n\n label {\n margin: 0;\n }\n\n input[type='checkbox'] {\n margin: 0;\n }\n }\n\n tbody > tr {\n border-block-start: 1px solid var(--color-default-light);\n transition: all .4s linear;\n border-radius: var(--general-border-radius);\n\n &.clickable {\n cursor: pointer;\n }\n }\n\n > tbody tr td:first-child,\n > thead tr th:first-child {\n padding-inline-start: var(--table-first-last-padding);\n\n &.with-icon {\n padding-inline-start: var(--spacing-base);\n }\n }\n\n > tbody tr td:last-child,\n > thead tr th:last-child {\n padding-inline-end: var(--table-first-last-padding);\n\n &.with-icon {\n padding-inline-end: var(--spacing-base);\n }\n }\n\n .tyk-pagination {\n padding: var(--table-pagination-padding);\n\n li:first-child {\n margin-inline-start: auto;\n }\n }\n\n .nowrap {\n white-space: nowrap;\n }\n\n .wrap {\n word-break: break-all;\n }\n}\n\n.tyk-table__wrapper {\n border: var(--general-border-width) solid var(--color-default-light);\n border-radius: var(--general-border-radius);\n overflow: auto;\n\n &.no-innner-horizontal-borders {\n & .tyk-table > thead th,\n & .tyk-table > tbody td {\n border-inline-end: none;\n }\n }\n}\n\n.tyk-table__wrapper--no-border {\n border: none\n}\n\n.tyk-table-search {\n padding-block: var(--spacing-sm) 0;\n padding-inline: 25px;\n\n label {\n font-size: var(--sm-font-size);\n text-transform: uppercase;\n }\n}\n\n.header-sort {\n padding-inline-start: 3px;\n padding-block-start: var(--spacing-xs);\n vertical-align: middle;\n}\n\n.new-table-pagination {\n float: inline-end;\n}\n\n.selectable > div {\n margin-inline-start: var(--spacing-md);\n}\n\n.scrollable {\n display: block;\n overflow: auto;\n}\n\n.fixed-header {\n background: white;\n position: sticky;\n inset-block-start: 0;\n}\n\n.tyk-table.has-error,\n.tyk-table__wrapper.has-error {\n border: var(--general-border-width) solid var(--color-danger-base) !important;\n}",":root {\n --tabs-default-content-padding: 25px;\n --tab-button-padding: var(--spacing-sm) 2px 3px 2px;\n --tab-button-margin: 0;\n --tabs-font-familly: var(--font-family-medium);\n --tab-button-color: var(--text-color);\n --tab-active-button-color: var(--text-color);\n --tab-border-color: var(--color-success-base);\n}\n\n.tyk-tabs--default {\n > ul {\n display: flex;\n list-style-type: none;\n margin: 0;\n padding: 0;\n overflow: auto;\n\n li {\n display: flex;\n white-space: nowrap;\n margin-inline-end: var(--tab-button-margin);\n\n &:last-child {\n margin-inline-end: 0;\n }\n\n &.active button,\n button:hover {\n border-block-end-color: var(--tab-border-color);\n color: var(--tab-active-button-color);\n opacity: 1;\n }\n\n button {\n background: none;\n border: none;\n border-block-end: 4px solid transparent;\n color: var(--tab-button-color);\n cursor: pointer;\n font-size: var(--sm-font-size);\n font-family: var(--tabs-font-familly);\n padding: var(--tab-button-padding);\n margin-inline-end: var(--spacing-md);\n transition: all .2s linear;\n opacity: 0.7;\n\n &:focus {\n outline: none;\n }\n }\n }\n }\n}\n\n.tyk-tab__content {\n padding: var(--tabs-default-content-padding);\n}\n",".tyk-toast__container {\n inset-block-end: 0;\n min-inline-size: 300px;\n position: fixed;\n inset-inline-end: var(--spacing-md);\n z-index: 11;\n}\n\n.tyk-toast__message {\n position: relative;\n}\n\n.tyk-toast-message__button {\n color: var(--text-color);\n block-size: var(--spacing-md);\n line-height: 1;\n padding: var(--spacing-xs);\n position: absolute;\n inset-inline-end: var(--spacing-xs);\n inset-block-start: var(--spacing-xs);\n inline-size: var(--spacing-md);\n\n &:hover {\n background: rgba(255 255 255 / 30%);\n color: var(--text-color);\n }\n}\n",":root {\n --tooltip-max-width: 450px;\n}\n\n.tyk-tooltip {\n display: flex;\n align-items: center;\n background-color: var(--color-primary-light);\n border: 2px solid var(--color-primary-base);\n border-radius: var(--general-border-radius);\n max-inline-size: var(--tooltip-max-width);\n padding: var(--spacing-md);\n\n > .tyk-icon:first-child {\n inline-size: 32px;\n block-size: 32px;\n border-radius: 50%;\n color: white;\n background-color: var(--color-default-base-light);\n\n &::before {\n display: flex;\n inline-size: 100%;\n block-size: 100%;\n align-items: center;\n justify-content: center;\n }\n }\n\n > .tyk-icon + .tyk-tooltip__content {\n margin-inline-start: var(--spacing-md);\n }\n\n > .tyk-icon:last-child {\n cursor: pointer;\n }\n}\n\n.tyk-tooltip__content {\n color: var(--color-default-dark);\n word-break: break-word;\n word-wrap: break-word;\n\n + .tyk-icon {\n margin-inline-start: var(--spacing-md);\n }\n}\n",":root {\n --tyk-combobox-pill-background: #F0F0F0;\n --tyk-combobox-pill-color: var(--text-color);\n --tyk-combobox-list-item-hover-color: var(--form-default-color);\n --tyk-combobox-list-item-disabled-color: var(--form-default-color);\n}\n\n.tyk-combobox2 {\n --container-trigger-width: 40px;\n --values-default-height: 38px;\n\n outline: none;\n\n &.disabled {\n .tyk-form-control {\n border: var(--form-control-disabled-border) !important;\n background-color: var(--form-control-disabled-background-color);\n color: var(--form-control-disabled-color);\n cursor: not-allowed;\n }\n\n .tyk-combobox2__current-values .tyk-pill--combobox button {\n cursor: not-allowed;\n }\n\n &:not(.is-expand-mode) .tyk-combobox2__values-container-trigger {\n cursor: not-allowed;\n }\n\n .tyk-combobox2__entry-field {\n background-color: transparent;\n cursor: not-allowed;\n }\n }\n\n .tyk-form-control {\n display: flex;\n flex-direction: row;\n position: relative;\n min-block-size: 40px;\n block-size: auto;\n padding: 0;\n\n &:focus-within {\n outline: none;\n border: var(--form-control-border-focus);\n }\n }\n}\n\n.tyk-combobox2__current-values {\n display: flex;\n flex-grow: 1;\n flex-wrap: wrap;\n padding-block: 2px;\n padding-inline-start: var(--spacing-sm);\n max-inline-size: calc(100% - var(--container-trigger-width));\n\n &.expand-mode {\n max-block-size: 1000px;\n overflow: hidden;\n transition: max-block-size 1s ease;\n }\n\n .tyk-pill--combobox {\n margin-block: 3px;\n background-color: var(--tyk-combobox-pill-background);\n border-radius: var(--spacing-sm);\n color: var(--tyk-combobox-pill-color);\n padding-block: var(--spacing-xs);\n padding-inline: var(--spacing-sm);\n max-inline-size: 100%;\n max-block-size: 26px;\n\n button {\n background: none;\n border: none;\n cursor: pointer;\n inline-size: 23px;\n outline: none;\n\n + span {\n margin-inline-start: 0;\n }\n }\n\n span {\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n i {\n margin-inline-end: var(--spacing-xs);\n }\n }\n}\n\n.tyk-combobox2__current-values--collapsed.expand-mode {\n max-block-size: var(--values-default-height);\n transition: max-block-size .2s ease;\n}\n\n.tyk-combobox2__entry-field {\n border: none;\n line-height: 30px;\n\n &:focus,\n &:active {\n border: none;\n outline: none;\n }\n\n &::placeholder {\n color: var(--form-control-placeholder-color);\n font-family: var(--form-control-placeholder-font-family);\n }\n}\n\n.tyk-combobox2__text-value {\n font-family: var(--font-family-medium);\n font-size: var(--sm-font-size);\n padding-block: 9px;\n padding-inline: 5px;\n inline-size: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: 1;\n outline: none;\n\n &.overflow-single {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n &.is-placeholder {\n color: var(--form-control-placeholder-color);\n font-family: var(--form-control-placeholder-font-family);\n }\n}\n\n.tyk-combobox2__values-container-trigger {\n position: relative;\n flex-basis: var(--container-trigger-width);\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n outline: none;\n transition: all .2s;\n color: var(--text-color);\n\n .tyk-icon {\n block-size: 14px;\n }\n}\n\n.tyk-combobox2__values-container-trigger--expanded {\n transform: rotate(180deg);\n}\n\n.tyk-form-group--rounded-corners .tyk-combobox2-disabled-overlay {\n border-radius: calc(var(--general-border-radius) - 2px);\n}\n\n.tyk-combobox2__combobox-dropdown {\n display: flex;\n flex-direction: column;\n border: var(--general-border-width) solid var(--form-default-color);\n background-color: white;\n\n &.tyk-form-group--rounded-corners {\n border-radius: var(--general-border-radius);\n z-index: 1081;\n }\n\n .tyk-combobox2__combobox-search {\n background-color: white;\n position: sticky;\n inset-block-start: 0;\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-md);\n\n + .combobox-list {\n border-block-start: 1px solid var(--form-default-color);\n }\n }\n\n .tyk-combobox2__combobox-list {\n max-block-size: 255px;\n\n li {\n display: flex;\n cursor: pointer;\n padding-block: 9px;\n padding-inline: var(--spacing-md);\n transition: all .2s;\n font-family: var(--font-family-medium);\n\n &:hover,\n &.active {\n background-color: var(--tyk-combobox-list-item-hover-color);\n }\n\n &.disabled {\n color: var(--tyk-combobox-list-item-disabled-color);\n background-color: initial;\n }\n\n + li {\n border-block-start: 1px solid var(--form-default-color);\n }\n\n i {\n margin-inline-end: var(--spacing-xs);\n }\n\n .item-name {\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: 16px;\n }\n }\n }\n}\n",":root {\n --tyk-checkbox-theme-light-label-color: white;\n --tyk-checkbox-theme-light-label-disabled-color: white;\n --tyk-checkbox-theme-dark-label-color: var(--text-color);\n --tyk-checkbox-theme-dark-label-disabled-color: var(--text-color);\n}\n\n.tyk-checkbox {\n label {\n --label-indent: 20px;\n\n display: flex;\n align-items: flex-start;\n padding-inline-start: var(--label-indent);\n\n input {\n margin-inline-start: calc(-1 * var(--label-indent));\n margin-block-start: 5px;\n }\n }\n}\n\n.tyk-checkbox--theme-light {\n label {\n color: var(--tyk-checkbox-theme-light-label-color);\n }\n\n &.tyk-checkbox--is-disabled {\n label {\n color: var(--tyk-checkbox-theme-light-label-disabled-color);\n }\n }\n}\n\n.tyk-checkbox--is-disabled {\n label, p {\n cursor: not-allowed;\n opacity: 0.5;\n }\n}",".flatpickr-calendar{background:transparent;opacity:0;display:none;text-align:center;visibility:hidden;padding:0;-webkit-animation:none;animation:none;direction:ltr;border:0;font-size:14px;line-height:24px;border-radius:5px;position:absolute;width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-touch-action:manipulation;touch-action:manipulation;background:#fff;-webkit-box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,0.08);box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,0.08)}.flatpickr-calendar.open,.flatpickr-calendar.inline{opacity:1;max-height:640px;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{-webkit-animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1);animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{z-index:999;display:block}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){-webkit-box-shadow:none !important;box-shadow:none !important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){-webkit-box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-calendar .hasWeeks .dayContainer,.flatpickr-calendar .hasTime .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.hasTime .flatpickr-time{height:40px;border-top:1px solid #e6e6e6}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:before,.flatpickr-calendar:after{position:absolute;display:block;pointer-events:none;border:solid transparent;content:'';height:0;width:0;left:22px}.flatpickr-calendar.rightMost:before,.flatpickr-calendar.arrowRight:before,.flatpickr-calendar.rightMost:after,.flatpickr-calendar.arrowRight:after{left:auto;right:22px}.flatpickr-calendar.arrowCenter:before,.flatpickr-calendar.arrowCenter:after{left:50%;right:50%}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:before,.flatpickr-calendar.arrowTop:after{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:before,.flatpickr-calendar.arrowBottom:after{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{position:relative;display:inline-block}.flatpickr-months{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-months .flatpickr-month{background:transparent;color:rgba(0,0,0,0.9);fill:rgba(0,0,0,0.9);height:34px;line-height:1;text-align:center;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.flatpickr-months .flatpickr-prev-month,.flatpickr-months .flatpickr-next-month{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-decoration:none;cursor:pointer;position:absolute;top:0;height:34px;padding:10px;z-index:3;color:rgba(0,0,0,0.9);fill:rgba(0,0,0,0.9)}.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,.flatpickr-months .flatpickr-next-month.flatpickr-disabled{display:none}.flatpickr-months .flatpickr-prev-month i,.flatpickr-months .flatpickr-next-month i{position:relative}.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,.flatpickr-months .flatpickr-next-month.flatpickr-prev-month{/*\n /*rtl:begin:ignore*/left:0/*\n /*rtl:end:ignore*/}/*\n /*rtl:begin:ignore*/\n/*\n /*rtl:end:ignore*/\n.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,.flatpickr-months .flatpickr-next-month.flatpickr-next-month{/*\n /*rtl:begin:ignore*/right:0/*\n /*rtl:end:ignore*/}/*\n /*rtl:begin:ignore*/\n/*\n /*rtl:end:ignore*/\n.flatpickr-months .flatpickr-prev-month:hover,.flatpickr-months .flatpickr-next-month:hover{color:#959ea9}.flatpickr-months .flatpickr-prev-month:hover svg,.flatpickr-months .flatpickr-next-month:hover svg{fill:#f64747}.flatpickr-months .flatpickr-prev-month svg,.flatpickr-months .flatpickr-next-month svg{width:14px;height:14px}.flatpickr-months .flatpickr-prev-month svg path,.flatpickr-months .flatpickr-next-month svg path{-webkit-transition:fill .1s;transition:fill .1s;fill:inherit}.numInputWrapper{position:relative;height:auto}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper input::-webkit-outer-spin-button,.numInputWrapper input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none}.numInputWrapper span{position:absolute;right:0;width:14px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer;border:1px solid rgba(57,57,57,0.15);-webkit-box-sizing:border-box;box-sizing:border-box}.numInputWrapper span:hover{background:rgba(0,0,0,0.1)}.numInputWrapper span:active{background:rgba(0,0,0,0.2)}.numInputWrapper span:after{display:block;content:\"\";position:absolute}.numInputWrapper span.arrowUp{top:0;border-bottom:0}.numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid rgba(57,57,57,0.6);top:26%}.numInputWrapper span.arrowDown{top:50%}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(57,57,57,0.6);top:40%}.numInputWrapper span svg{width:inherit;height:auto}.numInputWrapper span svg path{fill:rgba(0,0,0,0.5)}.numInputWrapper:hover{background:rgba(0,0,0,0.05)}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{font-size:135%;line-height:inherit;font-weight:300;color:inherit;position:absolute;width:75%;left:12.5%;padding:7.48px 0 0 0;line-height:1;height:34px;display:inline-block;text-align:center;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.flatpickr-current-month span.cur-month{font-family:inherit;font-weight:700;color:inherit;display:inline-block;margin-left:.5ch;padding:0}.flatpickr-current-month span.cur-month:hover{background:rgba(0,0,0,0.05)}.flatpickr-current-month .numInputWrapper{width:6ch;width:7ch\\0;display:inline-block}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:rgba(0,0,0,0.9)}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:rgba(0,0,0,0.9)}.flatpickr-current-month input.cur-year{background:transparent;-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;cursor:text;padding:0 0 0 .5ch;margin:0;display:inline-block;font-size:inherit;font-family:inherit;font-weight:300;line-height:inherit;height:auto;border:0;border-radius:0;vertical-align:initial;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{font-size:100%;color:rgba(0,0,0,0.5);background:transparent;pointer-events:none}.flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;background:transparent;border:none;border-radius:0;box-sizing:border-box;color:inherit;cursor:pointer;font-size:inherit;font-family:inherit;font-weight:300;height:auto;line-height:inherit;margin:-1px 0 0 0;outline:none;padding:0 0 0 .5ch;position:relative;vertical-align:initial;-webkit-box-sizing:border-box;-webkit-appearance:menulist;-moz-appearance:menulist;width:auto}.flatpickr-current-month .flatpickr-monthDropdown-months:focus,.flatpickr-current-month .flatpickr-monthDropdown-months:active{outline:none}.flatpickr-current-month .flatpickr-monthDropdown-months:hover{background:rgba(0,0,0,0.05)}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:transparent;outline:none;padding:0}.flatpickr-weekdays{background:transparent;text-align:center;overflow:hidden;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:28px}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}span.flatpickr-weekday{cursor:default;font-size:90%;background:transparent;color:rgba(0,0,0,0.54);line-height:1;margin:0;text-align:center;display:block;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;font-weight:bolder}.dayContainer,.flatpickr-weeks{padding:1px 0 0 0}.flatpickr-days{position:relative;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;width:307.875px}.flatpickr-days:focus{outline:0}.dayContainer{padding:0;outline:0;text-align:left;width:307.875px;min-width:307.875px;max-width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;display:-ms-flexbox;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-wrap:wrap;-ms-flex-pack:justify;-webkit-justify-content:space-around;justify-content:space-around;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.dayContainer + .dayContainer{-webkit-box-shadow:-1px 0 0 #e6e6e6;box-shadow:-1px 0 0 #e6e6e6}.flatpickr-day{background:none;border:1px solid transparent;border-radius:150px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#393939;cursor:pointer;font-weight:400;width:14.2857143%;-webkit-flex-basis:14.2857143%;-ms-flex-preferred-size:14.2857143%;flex-basis:14.2857143%;max-width:39px;height:39px;line-height:39px;margin:0;display:inline-block;position:relative;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center}.flatpickr-day.inRange,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.today.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day:hover,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.nextMonthDay:hover,.flatpickr-day:focus,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.nextMonthDay:focus{cursor:pointer;outline:0;background:#e6e6e6;border-color:#e6e6e6}.flatpickr-day.today{border-color:#959ea9}.flatpickr-day.today:hover,.flatpickr-day.today:focus{border-color:#959ea9;background:#959ea9;color:#fff}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange,.flatpickr-day.selected.inRange,.flatpickr-day.startRange.inRange,.flatpickr-day.endRange.inRange,.flatpickr-day.selected:focus,.flatpickr-day.startRange:focus,.flatpickr-day.endRange:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange:hover,.flatpickr-day.endRange:hover,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.endRange.nextMonthDay{background:#569ff7;-webkit-box-shadow:none;box-shadow:none;color:#fff;border-color:#569ff7}.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange,.flatpickr-day.endRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange,.flatpickr-day.endRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)),.flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)){-webkit-box-shadow:-10px 0 0 #569ff7;box-shadow:-10px 0 0 #569ff7}.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange,.flatpickr-day.endRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;-webkit-box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.notAllowed.nextMonthDay{color:rgba(57,57,57,0.3);background:transparent;border-color:transparent;cursor:default}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{cursor:not-allowed;color:rgba(57,57,57,0.1)}.flatpickr-day.week.selected{border-radius:0;-webkit-box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7;box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{float:left}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;-webkit-box-shadow:1px 0 0 #e6e6e6;box-shadow:1px 0 0 #e6e6e6}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:rgba(57,57,57,0.3);background:transparent;cursor:default;border:none}.flatpickr-innerContainer{display:block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.flatpickr-rContainer{display:inline-block;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box}.flatpickr-time{text-align:center;outline:0;display:block;height:0;line-height:40px;max-height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-time:after{content:\"\";display:table;clear:both}.flatpickr-time .numInputWrapper{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;width:40%;height:40px;float:left}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#393939}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#393939}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{background:transparent;-webkit-box-shadow:none;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;color:#393939;font-size:14px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-time input.flatpickr-hour{font-weight:bold}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{outline:0;border:0}.flatpickr-time .flatpickr-time-separator,.flatpickr-time .flatpickr-am-pm{height:inherit;float:left;line-height:inherit;color:#393939;font-weight:bold;width:2%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.flatpickr-time .flatpickr-am-pm{outline:0;width:18%;cursor:pointer;text-align:center;font-weight:400}.flatpickr-time input:hover,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time .flatpickr-am-pm:focus{background:#eee}.flatpickr-input[readonly]{cursor:pointer}@-webkit-keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}","@import 'flatpickr/dist/flatpickr.min.css';\n\n.flatpickr-day.selected,\n.flatpickr-day.startRange,\n.flatpickr-day.endRange,\n.flatpickr-day.selected.inRange,\n.flatpickr-day.startRange.inRange,\n.flatpickr-day.endRange.inRange,\n.flatpickr-day.selected:focus,\n.flatpickr-day.startRange:focus,\n.flatpickr-day.endRange:focus,\n.flatpickr-day.selected:hover,\n.flatpickr-day.startRange:hover,\n.flatpickr-day.endRange:hover,\n.flatpickr-day.selected.prevMonthDay,\n.flatpickr-day.startRange.prevMonthDay,\n.flatpickr-day.endRange.prevMonthDay,\n.flatpickr-day.selected.nextMonthDay,\n.flatpickr-day.startRange.nextMonthDay,\n.flatpickr-day.endRange.nextMonthDay {\n background: var(--color-success-base) !important;\n border-color: var(--color-success-base) !important;\n}",":root {\n --tyk-dropdown-item-background: white;\n --tyk-dropdown-item-background-hover: var(--color-background-light);\n --tyk-dropdown-item-border-color: white;\n --tyk-dropdown-item-text-color: var(--text-color);\n --tyk-dropdown-item-hover-text-color: var(--text-color);\n}\n\n.tyk-dropdown {\n display: inline-block;\n\n + .tyk-button,\n + .tyk-dropdown,\n + .tyk-toggle {\n margin-inline-start: var(--spacing-sm)\n }\n\n label {\n display: block;\n }\n\n &.theme-list .tyk-button {\n background: white;\n border: var(--general-border-width) solid var(--color-default-base);\n border-radius: var(--general-border-radius);\n color: var(--text-color);\n\n &:hover,\n &:active,\n &:active:focus,\n &:focus {\n background: white;\n border-color: var(--color-background-dark);\n color: var(--text-color);\n }\n }\n}\n\n.tyk-dropdown--block {\n inset-inline: var(--spacing-md);\n}\n\n.tyk-dropdown--relative {\n inset-inline: auto;\n}\n\n.tyk-dropdown--custom {\n padding-block: var(--spacing-md);\n padding-inline: 25px;\n}\n\n.tyk-dropdown__trigger {\n position: relative;\n}\n\n.tyk-dropdown-menu {\n background: var(--tyk-dropdown-item-background);\n border: var(--general-border-width) solid var(--color-default-light);\n border-radius: var(--general-border-radius);\n filter: drop-shadow(1px 2px 1px rgba(0 0 0 / 10%));\n list-style-type: none;\n margin-inline: 0;\n margin-block: 3px 0;\n overflow: hidden;\n padding: 0;\n z-index: 1081;\n\n &.tyk-dropdown--scrollable {\n overflow: auto;\n }\n\n .tyk-panel {\n margin: 0;\n }\n\n &.opened {\n display: flex;\n flex-direction: column;\n position: absolute;\n }\n\n > li {\n background: var(--tyk-dropdown-item-background);\n border-block-end: 1px solid var(--tyk-dropdown-item-border-color);\n display: flex;\n position: relative;\n z-index: 7;\n\n &:last-child {\n border: none;\n }\n\n i {\n position: absolute;\n inset-inline-start: 7px;\n inset-block-start: 9px;\n }\n }\n}\n\n.tyk-dropdown-menu > li > a {\n cursor: pointer;\n color: var(--tyk-dropdown-item-text-color);\n display: flex;\n font-size: 12px;\n padding-block: 7px;\n padding-inline: 24px;\n text-transform: uppercase;\n text-decoration: none;\n inline-size: 100%;\n\n &:hover {\n color: var(--tyk-dropdown-item-hover-text-color);\n background-color: var(--tyk-dropdown-item-background-hover);\n text-decoration: none;\n }\n\n .badge {\n background: var(--text-color);\n color: white;\n font-size: var(--spacing-sm);\n margin-block-start: -4px;\n margin-inline-start: 6px;\n }\n}\n\n.tyk-dropdown--relative.opened {\n position: relative;\n}\n",".dropdown__menu {\n .tyk-list {\n background: white;\n max-block-size: none;\n\n li {\n padding: 0;\n\n &:hover {\n background: var(--primary-light);\n }\n\n a {\n cursor: pointer;\n display: block;\n padding-block: 10px;\n padding-inline: 20px;\n text-decoration: none;\n }\n }\n }\n}",".tyk-editable-list__submit-btn {\n white-space: nowrap;\n}\n\n.tyk-editable-list__form {\n align-items: center;\n display: flex;\n\n .tyk-form-group {\n margin-block-end: 0;\n }\n\n span.inline {\n margin-block-start: 0;\n }\n\n > span {\n margin-inline-start: var(--spacing-base);\n\n &.inline-with-label {\n align-self: flex-end;\n }\n }\n}\n\n.tyk-editable-list__form--sticked {\n margin-inline-start: 0;\n\n button {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n border-start-end-radius: 3px;\n border-end-end-radius: 3px;\n padding-block: var(--spacing-sm) 11px;\n padding-inline: var(--spacing-base);\n }\n}\n\n.tyk-editable-list__header {\n padding-block: var(--spacing-base);\n font-size: 11px;\n text-transform: uppercase;\n background-color: white;\n border-start-start-radius: var(--general-border-radius);\n border-start-end-radius: var(--general-border-radius);\n border: var(--general-border-width) solid var(--color-default-light);\n border-block-end: 1px solid var(--color-default-light) !important;\n color: var(--text-color) !important;\n font-family: var(--font-family-bold);\n margin-block-start: var(--spacing-sm);\n\n & + .tyk-editable-list-items.table {\n border-block-start: none;\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n }\n\n .tyk-row {\n margin: 0;\n }\n}\n\n.tyk-editable-list-items {\n overflow: hidden;\n list-style: none;\n padding-block: var(--spacing-md) 0;\n padding-inline: 0;\n\n .edit-mode-wrapper.table button {\n margin-block-start: 23px;\n }\n\n .tyk-row {\n margin: 0;\n }\n\n button[disabled] {\n cursor: not-allowed;\n }\n\n &.tyk-editable-list-items--inline {\n align-items: center;\n color: var(--text-color);\n display: flex;\n flex-wrap: wrap;\n }\n\n li {\n border-block-start: 1px solid var(--color-default-light);\n transition: all .2s linear;\n\n &.tyk-editable-list-item--inline {\n background-color: var(--color-default-light);\n border-radius: 25px;\n border: none;\n color: white;\n float: inline-start;\n font-family: var(--font-family-medium);\n margin-block-end: var(--spacing-sm);\n margin-inline-end: var(--spacing-base);\n padding-block: 0;\n padding-inline: var(--spacing-base);\n white-space: nowrap;\n\n .tyk-editable-list-item__text {\n color: var(--text-color);\n padding-block: var(--spacing-xs);\n padding-inline: 0;\n }\n\n .tyk-editable-list-action__button.on-edit {\n margin-block-start: 0;\n }\n }\n\n &:first-child {\n border-block-start: none;\n }\n\n .tyk-editable-list-item__text {\n display: flex;\n padding-block: var(--spacing-sm);\n padding-inline: 0;\n\n > span {\n flex-grow: 1;\n }\n\n > div:first-child {\n flex-grow: 1;\n\n .error-message {\n margin: 0;\n }\n }\n }\n\n .tyk-editable-list-items {\n overflow: hidden;\n padding-block-end: var(--spacing-sm);\n }\n\n .tyk-editable-list {\n border-block-start: var(--spacing-xs) solid var(--background-dark);\n background: var(--background-light);\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-base);\n }\n }\n\n .tyk-editable-list-item__text {\n display: block;\n word-wrap: break-word;\n word-break:break-all;\n }\n\n .tyk-editable-list-action__button {\n border: none;\n background: transparent;\n\n &.on-edit {\n margin-inline-start: var(--spacing-sm);\n }\n }\n\n .tyk-editable-list-item-controls {\n flex-grow: 0;\n text-align: end;\n }\n}\n\n.tyk-editable-list-item__controls {\n text-align: end;\n}\n\n.tyk-editable-list-items.table {\n background-color: white;\n border-radius: var(--general-border-radius);\n border: var(--general-border-width) solid var(--color-default-light);\n padding: 0 !important;\n\n li {\n border-color: var(--color-default-light);\n\n &:hover {\n background: var(--color-background-light);\n }\n }\n\n .tyk-editable-list-item__text {\n background: transparent;\n }\n\n .tyk-editable-list-action__button {\n border-radius: 6px;\n cursor: pointer;\n margin-inline-end: var(--spacing-sm);\n }\n}\n","/* stylelint-disable number-max-precision */\n\n.editable-list__header {\n align-items: center;\n display: flex;\n margin-block-end: 10px;\n\n .tyk-button {\n margin-inline-start: auto;\n }\n}\n\n.editable-list__wrapper.has-error .editable-list__list{\n border: var(--general-border-width) solid var(--color-danger-base);\n}\n\n.editable-list__list {\n border: var(--general-border-width) solid var(--color-default-light);\n border-radius: var(--general-border-radius);\n display: flex;\n flex-direction: column-reverse;\n}\n\n.editable-list__item {\n border-block-end: 1px solid var(--color-default-light);\n display: flex;\n flex-wrap: nowrap;\n inline-size: 100%;\n\n &:first-child {\n border-block-end: none;\n }\n}\n\n.editable-list__item-header {\n border-block-end: 1px solid var(--color-default-light);\n color: var(--text-color);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n font-family: var(--font-family-bold);\n text-transform: uppercase;\n\n .editable-list__item-cell {\n padding: 10px;\n }\n}\n\n.editable-list__item-cell {\n border-inline-start: 1px solid var(--color-default-light);\n overflow: hidden;\n padding-block: 0;\n padding-inline: 10px;\n\n .tyk-form-control--readonly {\n overflow: hidden;\n text-overflow: ellipsis;\n word-break: break-all;\n }\n\n &:first-child {\n border-inline-start: none;\n padding-inline-start: 15px;\n }\n\n &:last-child {\n padding-inline-end: 15px;\n }\n\n .tyk-form-group {\n margin-block: 10px;\n margin-inline: 0;\n inline-size: 100%;\n }\n}\n\n.editable-list__item--size-1 {\n display: flex;\n flex-grow: 2;\n inline-size: 8.3333333333%;\n}\n\n.editable-list__item--size-2 {\n display: flex;\n flex-grow: 3;\n inline-size: 16.6666666667%;\n}\n\n.editable-list__item--size-3 {\n display: flex;\n flex-grow: 4;\n inline-size: 25%;\n}\n\n.editable-list__item--size-4 {\n display: flex;\n flex-grow: 5;\n inline-size: 33.3333333333%;\n}\n\n.editable-list__item--size-5 {\n display: flex;\n flex-grow: 6;\n inline-size: 41.6666666667%;\n}\n\n.editable-list__item--size-6 {\n display: flex;\n flex-grow: 7;\n inline-size: 50%;\n}\n\n.editable-list__item--size-7 {\n display: flex;\n flex-grow: 8;\n inline-size: 58.3333333333%;\n}\n\n.editable-list__item--size-8 {\n display: flex;\n flex-grow: 9;\n inline-size: 66.6666666667%;\n}\n\n.editable-list__item--size-9 {\n display: flex;\n flex-grow: 10;\n inline-size: 75%;\n}\n\n.editable-list__item--size-10 {\n display: flex;\n flex-grow: 11;\n inline-size: 83.3333333333%;\n}\n\n.editable-list__item--size-11 {\n display: flex;\n flex-grow: 12;\n inline-size: 91.6666666667%;\n}\n\n.editable-list__item--size-12 {\n display: flex;\n flex-grow: 13;\n inline-size: 100%;\n}\n\n.editable-list__item--size-fit {\n inline-size: fit-content;\n}\n\n.editable-list__item-action {\n align-items: flex-start;\n display: flex;\n justify-content: center;\n inline-size: 100px;\n\n .tyk-button {\n margin-block-start: 20px;\n }\n}\n\n.editable-list__item-action--read-only {\n color: var(--color-default-light);\n align-items: center;\n\n .tyk-button {\n margin-block-start: 0;\n }\n}",".tyk-file-input__wrapper {\n position: relative;\n\n > input {\n padding-block: 6px;\n padding-inline: var(--spacing-md);\n }\n\n > button {\n background: none;\n border: none;\n cursor: pointer;\n position: absolute;\n inset-inline-end: var(--spacing-base);\n inset-block-start: 9px;\n }\n}\n",".tyk-multiselect {\n align-items: flex-start;\n border-radius: var(--general-border-radius);\n flex-wrap: wrap;\n display: flex;\n margin-block-end: var(--spacing-md);\n inline-size: 100%;\n\n /* FALLBACK FOR ANGULAR COMPONENTS */\n .input-group .input-group-addon + .form-control {\n border-width: 1px !important;\n border-inline-start: none !important;\n border-start-start-radius: 0 !important;\n border-start-end-radius: 0 !important;\n border-end-start-radius: 0 !important;\n border-end-end-radius: 0 !important;\n }\n\n .input-group .input-group-addon {\n background: transparent !important;\n border-width: 1px !important;\n border-inline-end: 0 !important;\n border-start-start-radius: 0 !important;\n border-start-end-radius: 0 !important;\n border-end-start-radius: 0 !important;\n border-end-end-radius: 0 !important;\n }\n\n /* END FALLBACK FOR ANGULAR COMPONENTS */\n\n &.has-error {\n border: var(--general-border-width) solid var(--color-danger-base);\n }\n\n .tyk-form-group {\n margin: 0;\n }\n\n .tyk-multiselect-item__controls {\n display: flex;\n margin-inline-start: auto;\n flex-wrap: nowrap;\n\n .tyk-button {\n color: var(--text-color);\n margin-inline-start: var(--spacing-xs);\n\n &:last-child {\n margin-inline-start: 0;\n }\n }\n }\n}\n\n.tyk-multiselect__header {\n background-color: var(--color-default-base);\n border-start-start-radius: var(--general-border-radius);\n border-start-end-radius: var(--general-border-radius);\n color: white;\n display: flex;\n inline-size: 100%;\n\n > div {\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-base);\n inline-size: 50%;\n }\n}\n\n.tyk-multiselect__panel-wrapper {\n border: var(--form-control-border);\n border-block-start: none;\n border-end-start-radius: var(--general-border-radius);\n border-end-end-radius: var(--general-border-radius);\n display: flex;\n flex: 1;\n block-size: 265px;\n inline-size: 100%;\n}\n\n.tyk-multiselect__panel {\n display: flex;\n flex-direction: column;\n margin-block: 0;\n margin-inline: -1px 0;\n position: relative;\n inline-size: calc(50% + 1px);\n\n &:last-child {\n border-inline-start: var(--form-control-border);\n\n .tyk-form-group {\n margin-inline-start: -1px;\n inline-size: calc(100% + 2px);\n }\n }\n\n .tyk-message {\n margin-block: var(--spacing-md) 0;\n margin-inline: var(--spacing-md);\n }\n}\n\n.tyk-multiselect__list {\n list-style-type: none;\n margin: 0;\n padding: 0;\n\n > li {\n border-block-end: var(--form-control-border);\n display: flex;\n flex-direction: column;\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-base);\n\n > div {\n align-items: start;\n display: flex;\n inline-size: 100%;\n }\n\n .loading {\n justify-content: center;\n }\n\n &:last-child {\n border-block-end: none;\n }\n }\n}\n\n.tyk-multiselect__list--scroll {\n block-size: 100%;\n overflow-y: auto;\n}\n\n.tyk-multiselect-item__name {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n",":root {\n --pagination-border-radius: var(--general-border-radius);\n --pagination-button-padding: var(--spacing-sm) var(--spacing-base);\n}\n\n.tyk-pagination {\n display: flex;\n list-style-type: none;\n margin-block: var(--spacing-sm);\n margin-inline: 0;\n padding: 0;\n\n li {\n align-items: center;\n display: flex;\n }\n\n li:first-child button {\n border-start-start-radius: var(--pagination-border-radius);\n border-end-start-radius: var(--pagination-border-radius);\n }\n\n li:last-child button {\n border-start-end-radius: var(--pagination-border-radius);\n border-end-end-radius: var(--pagination-border-radius);\n }\n\n span {\n margin-block: 0;\n margin-inline: var(--spacing-sm);\n }\n\n button {\n background: white;\n border: none;\n font-size: var(--sm-font-size);\n font-family: var(--font-family-bold);\n cursor: pointer;\n color: var(--color-default-base);\n margin-inline-start: -1px;\n padding: var(--pagination-button-padding);\n\n &:hover {\n background-color: var(--color-success-light);\n }\n }\n\n .active button {\n background-color: var(--color-success-base);\n color: white;\n }\n}\n",":root {\n --radio-description-text-padding: 0 0 0 20px;\n}\n\n.tyk-radio {\n label {\n align-items: center;\n display: flex;\n }\n}\n\n.tyk-radio--is-disabled {\n label, p {\n cursor: not-allowed;\n opacity: 0.5;\n }\n}\n\n.tyk-radio__description-text {\n padding: var(--radio-description-text-padding);\n}",".tyk-select {\n background: transparent url('./images/arrow_down.svg') no-repeat calc(100% - 15px) center;\n background-size: var(--spacing-base) var(--spacing-base);\n}",".tyk-selectable-list {\n margin-block-end: var(--spacing-md);\n inline-size: 100%;\n\n li:not(.tyk-selectable-list__no-items-message) {\n font-family: var(--font-family-medium);\n padding: 0;\n\n .tyk-message {\n margin-block-end: 0;\n }\n\n label {\n font-family: var(--font-family-medium);\n margin: 0;\n }\n\n > label {\n align-items: center;\n cursor: pointer;\n display: flex;\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-md);\n\n input[type=\"checkbox\"] {\n margin-inline-start: auto;\n }\n }\n }\n}\n\n.tyk-selectable-list__item--with-icon {\n & input[type=\"checkbox\"] {\n visibility: hidden;\n }\n}\n","textarea.tyk-form-control {\n block-size: auto;\n}\n",":root {\n --toggle-font-family: var(--font-family-bold);\n --toggle-list-background-color: var(--color-background-light);\n --toggle-list-text-color: white;\n --toggle-list-background-color-on-dark: white;\n --toggle-list-text-color-on-dark: var(--text-color);\n --toggle-top: 4px;\n --toggle-bottom: 4px;\n --toggle-label-font-size: var(--sm-font-size);\n --toggle-label-font-family: var(--font-family-medium);\n --toggle-label-color: var(--label-color);\n --toggle-padding: 0;\n}\n\n.tyk-toggle {\n display: inline-flex;\n flex-wrap: wrap;\n font-family: var(--toggle-font-family);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n white-space: nowrap;\n\n &.block {\n margin-block-end: var(--spacing-md);\n inline-size: 100%;\n\n + .tyk-toggle {\n margin-inline-start: 0;\n }\n }\n\n &.inline-label {\n align-items: center;\n flex-wrap: nowrap;\n }\n\n + .tyk-button,\n + .tyk-dropdown,\n + .tyk-toggle {\n margin-inline-start: var(--spacing-sm)\n }\n}\n\n.tyk-toggle__list--has-error {\n border: var(--error-border);\n}\n\n.tyk-toggle .tyk-toggle__label {\n display: block;\n font-family: var(--toggle-label-font-family);\n font-size: var(--toggle-label-font-size);\n padding: var(--toggle-padding);\n inline-size: 100%;\n color: var(--toggle-label-color);\n}\n\n.tyk-toggle.inline-label .tyk-toggle__label {\n margin-inline-end: var(--spacing-sm);\n inline-size: auto;\n}\n\n.tyk-toggle--disabled-true {\n cursor: not-allowed;\n opacity: 0.7;\n}\n\n.tyk-toggle--column {\n .tyk-toggle__list--separated {\n display: flex;\n flex-direction: column;\n margin-inline-end: var(--spacing-md);\n\n .tyk-toggle__item {\n background-color: var(--toggle-list-background-color);\n margin-inline-end: auto;\n }\n }\n}\n\n.tyk-toggle__list {\n background: var(--toggle-list-background-color);\n border-radius: 25px;\n display: flex;\n list-style-type: none;\n margin: 0;\n padding: 0;\n position: relative;\n}\n\n.tyk-toggle__list--separated {\n background: transparent;\n flex-wrap: wrap;\n}\n\n.tyk-toggle--on-dark .tyk-toggle__list {\n background: var(--toggle-list-background-color-on-dark);\n}\n\n.tyk-toggle--default .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--default .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--default .tyk-toggle__list--separated .tyk-toggle__item--active {\n background-color: var(--button-default-color);\n color: white;\n border: var(--general-border-width) solid transparent;\n\n &:hover {\n background-color: var(--button-default-color);\n color: white;\n }\n\n span {\n color: white;\n }\n}\n\n.tyk-toggle--primary .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--primary .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--primary .tyk-toggle__list--separated .tyk-toggle__item--active {\n background-color: var(--color-primary-base);\n color: white;\n border: var(--general-border-width) solid transparent;\n\n &:hover {\n background-color: var(--color-primary-base);\n color: white;\n }\n\n span {\n color: white;\n }\n}\n\n.tyk-toggle--success .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--success .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--success .tyk-toggle__list--separated .tyk-toggle__item--active {\n background-color: var(--color-success-dark);\n color: white;\n border: var(--general-border-width) solid transparent;\n\n &:hover {\n background-color: var(--color-success-dark);\n color: white;\n }\n\n span {\n color: white;\n }\n}\n\n.tyk-toggle--danger .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--danger .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--danger .tyk-toggle__list--separated .tyk-toggle__item--active {\n background-color: var(--color-danger-base);\n color: white;\n border: var(--general-border-width) solid transparent;\n\n &:hover {\n background-color: var(--color-danger-base);\n color: white;\n }\n}\n\n.tyk-toggle--warning .tyk-toggle__item--active span {\n color: var(--text-color);\n}\n\n.tyk-toggle--warning .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--warning .tyk-toggle__list--separated .tyk-toggle__item--active {\n background-color: var(--color-warning-base);\n color: var(--text-color);\n border: var(--general-border-width) solid transparent;\n\n &:hover {\n background-color: var(--color-warning-base);\n color: var(--text-color);\n }\n}\n\n\n.tyk-toggle--primary-gradient .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--primary-gradient .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--primary-gradient .tyk-toggle__list--separated .tyk-toggle__item--active {\n border-image: linear-gradient(to right, var(--color-primary-base), var(--color-primary-dark), var(--color-primary-base)) 0 round;\n background: transparent linear-gradient(to right, var(--color-primary-base), var(--color-primary-dark), var(--color-primary-base));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: white;\n\n span {\n color: white;\n }\n}\n\n.tyk-toggle--success-gradient .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--success-gradient .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--success-gradient .tyk-toggle__list--separated .tyk-toggle__item--active {\n border-image: linear-gradient(to right, var(--color-success-base), var(--color-success-dark), var(--color-success-base)) 0 round;\n background: transparent linear-gradient(to right, var(--color-success-base), var(--color-success-dark), var(--color-success-base));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: white;\n\n span {\n color: white;\n }\n}\n\n\n.tyk-toggle--danger-gradient .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--danger-gradient .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--danger-gradient .tyk-toggle__list--separated .tyk-toggle__item--active {\n border-image: linear-gradient(to right, var(--color-danger-base), var(--color-danger-dark), var(--color-danger-base)) 0 round;\n background: transparent linear-gradient(to right, var(--color-danger-base), var(--color-danger-dark), var(--color-danger-base));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: white;\n\n span {\n color: white;\n }\n}\n\n\n.tyk-toggle--warning-gradient .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--warning-gradient .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--warning-gradient .tyk-toggle__list--separated .tyk-toggle__item--active {\n border-image: linear-gradient(to right, var(--color-warning-light), var(--color-warning-base), var(--color-warning-light)) 0 round;\n background: transparent linear-gradient(to right, var(--color-warning-light), var(--color-warning-base), var(--color-warning-light));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: var(--text-color);\n\n span {\n color: white;\n }\n}\n\n.tyk-toggle__item {\n color: var(--toggle-list-text-color);\n text-transform: uppercase;\n z-index: 2;\n border: 2px solid transparent;\n\n &:first-child {\n border-start-start-radius: 25px;\n border-end-start-radius: 25px;\n }\n\n &:last-child {\n border-start-end-radius: 25px;\n border-end-end-radius: 25px;\n }\n\n .tyk-toggle__list--separated & {\n border-radius: 25px;\n margin-block: var(--spacing-xs);\n margin-inline-end: var(--spacing-sm);\n\n &:last-child {\n margin-inline-end: 0;\n }\n }\n\n input {\n display: none;\n }\n\n label {\n cursor: pointer;\n font-family: var(--toggle-font-family);\n position: relative;\n margin: 0;\n transition: all .2s ease;\n\n .tyk-toggle__list--single & {\n padding-inline-start: 45px;\n }\n }\n}\n\n.tyk-toggle__list--single .tyk-toggle__item--active {\n label {\n padding-inline-start: 25px;\n padding-inline-end: 45px;\n\n .tyk-toggle__item-notch {\n inset-inline-start: calc(100% - 35px);\n }\n }\n}\n\n.tyk-toggle--on-dark .tyk-toggle__item:not(.tyk-toggle__item--active) {\n color: var(--toggle-list-text-color-on-dark);\n}\n\n.tyk-toggle--on-dark .tyk-toggle__item-notch--single {\n background: var(--color-background-light);\n}\n\n.tyk-toggle--sm label {\n padding-block: calc(var(--padding-y-button-sm) + 2px);\n padding-inline: calc(var(--padding-x-button-sm) + 2px);\n font-size: var(--xs-font-size);\n line-height: var(--xs-line-height);\n border-radius: var(--button-border-radius);\n}\n\n.tyk-toggle--sm .tyk-toggle__list--single label {\n padding-inline-start: 35px;\n}\n\n.tyk-toggle--sm .tyk-toggle__list--single .tyk-toggle__item--active label {\n padding-inline-start: 17px;\n padding-inline-end: 35px;\n\n .tyk-toggle__item-notch {\n inset-inline-start: calc(100% - 27px);\n }\n}\n\n.tyk-toggle--md label {\n padding-block: calc(var(--padding-y-button-md) + 2px);\n padding-inline: calc(var(--padding-x-button-md) + 2px);\n font-size: var(--sm-font-size);\n line-height: var(--line-height-button-sm);\n border-radius: var(--button-border-radius);\n}\n\n.tyk-toggle--lg label {\n padding-block: calc(var(--padding-y-button-lg) + 2px);\n padding-inline: calc(var(--padding-x-button-lg) + 2px);\n font-size: var(--sm-font-size);\n line-height: var(--line-height-button-sm);\n border-radius: var(--button-border-radius);\n}\n\n.tyk-toggle--lg .tyk-toggle__list--single label {\n padding-inline-start: 45px;\n}\n\n.tyk-toggle--lg .tyk-toggle__list--single .tyk-toggle__item--active label {\n padding-inline-start: 25px;\n padding-inline-end: 45px;\n\n .tyk-toggle__item-notch {\n inset-inline-start: calc(100% - 43px);\n }\n}\n\n.tyk-toggle__item-notch {\n border-radius: 25px;\n inset-block: 2px;\n position: absolute;\n transition: all .2s ease;\n}\n\n.tyk-toggle__item-notch--single {\n background: white;\n inset-inline-start: 2px;\n inline-size: 32px;\n}\n\n.tyk-toggle--sm .tyk-toggle__item-notch--single {\n inline-size: 24px;\n}\n\n.tyk-toggle--lg .tyk-toggle__item-notch--single {\n inline-size: 40px;\n}\n\n.tyk-toggle__notch {\n border-radius: 25px;\n inset-inline-start: 0;\n position: absolute;\n inset-block-start: var(--toggle-top);\n inset-block-end: var(--toggle-bottom);\n transition: all .2s ease;\n inline-size: 100px;\n z-index: 1;\n}\n\n.tyk-toggle--default .tyk-toggle__notch {\n --toggle-notch-background: var(--button-default-color);\n --toggle-notch-border: transparent;\n --toggle-notch-color: white;\n --toggle-notch-hover-background: var(--button-default-color);\n --toggle-notch-hover-color: white;\n}\n\n.tyk-toggle--primary .tyk-toggle__notch {\n --toggle-notch-background: var(--primary-base);\n --toggle-notch-border: transparent;\n --toggle-notch-color: white;\n --toggle-notch-hover-background: var(--primary-base);\n --toggle-notch-hover-color: white;\n}\n\n.tyk-toggle--success .tyk-toggle__notch {\n --toggle-notch-background: var(--success-base);\n --toggle-notch-border: transparent;\n --toggle-notch-color: white;\n --toggle-notch-hover-background: var(--success-base);\n --toggle-notch-hover-color: white;\n}\n\n.tyk-toggle--danger .tyk-toggle__notch {\n --toggle-notch-background: var(--color-danger-base);\n --toggle-notch-border: transparent;\n --toggle-notch-color: white;\n --toggle-notch-hover-background: var(--color-danger-base);\n --toggle-notch-hover-color: white;\n}\n\n.tyk-toggle--warning .tyk-toggle__notch {\n --toggle-notch-background: var(--color-warning-base);\n --toggle-notch-border: transparent;\n --toggle-notch-color: var(--text-color);\n --toggle-notch-hover-background: var(--color-warning-base);\n --toggle-notch-hover-color: var(--text-color);\n}\n\n.tyk-toggle--default .tyk-toggle__notch,\n.tyk-toggle--primary .tyk-toggle__notch,\n.tyk-toggle--success .tyk-toggle__notch,\n.tyk-toggle--danger .tyk-toggle__notch,\n.tyk-toggle--warning .tyk-toggle__notch {\n background-color: var(--toggle-notch-background);\n color: var(--toggle-notch-color);\n border: var(--general-border-width) solid var(--toggle-notch-border);\n\n &:hover {\n background-color: var(--toggle-notch-hover-background);\n color: var(--toggle-notch-hover-color);\n }\n}\n\n.tyk-toggle--primary-gradient .tyk-toggle__notch {\n --toggle-notch-gradient-left-color: var(--color-primary-base);\n --toggle-notch-gradient-right-color: var(--color-primary-dark);\n --toggle-notch-gradient-color: white;\n}\n\n.tyk-toggle--success-gradient .tyk-toggle__notch {\n --toggle-notch-gradient-left-color: var(--color-success-base);\n --toggle-notch-gradient-right-color: var(--color-success-dark);\n --toggle-notch-gradient-color: white;\n}\n\n.tyk-toggle--danger-gradient .tyk-toggle__notch {\n --toggle-notch-gradient-left-color: var(--color-danger-base);\n --toggle-notch-gradient-right-color: var(--color-danger-dark);\n --toggle-notch-gradient-color: white;\n}\n\n.tyk-toggle--warning-gradient .tyk-toggle__notch {\n --toggle-notch-gradient-left-color: var(--color-warning-light);\n --toggle-notch-gradient-right-color: var(--color-warning-base);\n --toggle-notch-gradient-color: var(--text-color);\n}\n\n.tyk-toggle--primary-gradient .tyk-toggle__notch,\n.tyk-toggle--success-gradient .tyk-toggle__notch,\n.tyk-toggle--danger-gradient .tyk-toggle__notch,\n.tyk-toggle--warning-gradient .tyk-toggle__notch {\n border-image: linear-gradient(to right, var(--toggle-notch-gradient-left-color), var(--toggle-notch-gradient-right-color), var(--toggle-notch-gradient-left-color)) 0 round;\n background: transparent linear-gradient(to right, var(--toggle-notch-gradient-left-color), var(--toggle-notch-gradient-right-color), var(--toggle-notch-gradient-left-color));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: var(--toggle-notch-gradient-color);\n}\n\n.empty-toggle {\n padding: 1px;\n}","* {\n box-sizing: border-box;\n}\n\nbody {\n background-color: var(--color-background-base);\n color: var(--text-color);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n font-family: var(--font-family-regular);\n}\n\n.tyk-main-wrapper {\n display: flex;\n flex-wrap: nowrap;\n}\n\n.tyk-main-content-wrapper {\n flex: 1;\n}\n\n.well {\n background: transparent;\n border: var(--general-border-width) solid var(--color-default-light);\n border-radius: var(--general-border-radius);\n box-shadow: none;\n\n &.has-error {\n border-color: var(--color-danger-base);\n }\n}\n",".title-medium {\n font-family: var(--font-family-medium);\n color: var(--label-color);\n font-size: var(--title-medium-font-size);\n}",".right-align {\n text-align: end !important;\n}\n\n.left-align {\n text-align: start !important;\n}\n\n.center-align {\n text-align: center !important;\n}\n\n.left {\n float: inline-start !important;\n}\n\n.right {\n float: inline-end !important;\n}\n\n.hide {\n display: none !important;\n}\n\n.no-margin {\n margin: 0 !important;\n}\n\n.no-margin-bottom {\n margin-block-end: 0 !important;\n}\n\n.no-margin-top {\n margin-block-start: 0 !important;\n}\n\n.no-margin-right {\n margin-inline-end: 0 !important;\n}\n\n.no-margin-left {\n margin-inline-start: 0 !important;\n}\n\n.disabled-section {\n color: var(--color-default-light);\n}\n\n.top-buffer-large {\n margin-block-start: var(--top-buffer-large) !important;\n}\n\n.top-buffer-small {\n margin-block-start: var(--top-buffer-small) !important;\n}\n\n.top-buffer-medium {\n margin-block-start: var(--top-buffer-medium) !important;\n}\n\n.bottom-buffer-large {\n margin-block-end: var(--bottom-buffer-large) !important;\n}\n\n.bottom-buffer-small {\n margin-block-end: var(--bottom-buffer-small) !important;\n}\n\n.bottom-buffer-medium {\n margin-block-end: var(--bottom-buffer-medium) !important;\n}\n\n.right-buffer-large {\n margin-inline-end: var(--right-buffer-large) !important;\n}\n\n.right-buffer-small {\n margin-inline-end: var(--right-buffer-small) !important;\n}\n\n.right-buffer-medium {\n margin-inline-end: var(--right-buffer-medium) !important;\n}\n\n.left-buffer-large {\n margin-inline-start: var(--left-buffer-large) !important;\n}\n\n.left-buffer-small {\n margin-inline-start: var(--left-buffer-small) !important;\n}\n\n.left-buffer-medium {\n margin-inline-start: var(--left-buffer-medium) !important;\n}\n\n.word-wrap {\n word-wrap: break-word;\n word-break: break-all;\n}\n\n.clear-left {\n clear: inline-start;\n}\n\n.flex-container {\n display: flex;\n}\n\n.vertical-center-align {\n align-items: center;\n}\n\n\n.right-align-controls {\n align-items: center;\n display: flex;\n margin-inline-start: auto;\n}\n\n.inline-label {\n margin-inline-end: 15px;\n}\n\n.nowrap {\n white-space: nowrap;\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"tyk-ui.css","mappings":"AAAA,2ZAGE,QAAS,CACT,YAAa,CACb,cAAe,CAJf,QAAS,CACT,SAAU,CAIV,uBACF,CAIA,8EACE,aAAgB,CAElB,KACE,aAAgB,CAElB,MACE,eAAkB,CAEpB,aACE,WAAc,CAEhB,WACE,iBACE,UAAW,CACX,YAAe,CAAE,CAErB,EACE,iBACE,UAAW,CACX,YAAe,CAAE,CAErB,MACE,wBAAyB,CACzB,gBAAmB,CCnCrB,MACE,4BAA6B,CAC7B,0BAA2B,CAE3B,4BAA6B,CAC7B,kCAAmC,CACnC,6BAA8B,CAC9B,4BAA6B,CAC7B,4BAA6B,CAC7B,6BAA8B,CAC9B,4BAA6B,CAC7B,4BAA6B,CAC7B,6BAA8B,CAC9B,4BAA6B,CAC7B,yBAA0B,CAC1B,0BAA2B,CAC3B,2BAA4B,CAC5B,kCAAmC,CACnC,4BAA6B,CAC7B,2BAA4B,CAC5B,4BAA6B,CAC7B,6BAA8B,CAC9B,4BAA6B,CAC7B,+BAAgC,CAChC,oCAAqC,CACrC,gCAAiC,CACjC,+BAAgC,CAChC,qCAAsC,CACtC,+BAAgC,CAChC,gCAAiC,CACjC,+BAAgC,CAChC,qCAAsC,CAEtC,sCAAuC,CACvC,uCAAwC,CAExC,qBAAsB,CACtB,qBAAsB,CACtB,qBAAsB,CACtB,qBAAsB,CACtB,qBAAsB,CACtB,sBAAuB,CAEvB,mBAAoB,CACpB,mBAAoB,CACpB,mBAAoB,CACpB,mBAAoB,CACpB,mBAAoB,CACpB,oBAAqB,CAErB,oCAAqC,CACrC,wCAAyC,CAEzC,gBAAiB,CACjB,iBAAkB,CAClB,mBAAoB,CACpB,iBAAkB,CAClB,iBAAkB,CAClB,iBAAkB,CAClB,kBAAmB,CAEnB,+BAAgC,CAChC,oDAAuD,CAEvD,qBAAsB,CACtB,qBAAsB,CACtB,sBAAuB,CACvB,sBAAuB,CAEvB,gCAAiC,CACjC,kCAAmC,CACnC,oCAAqC,CACrC,8BAA+B,CAE/B,wCAAyC,CACzC,wCAAyC,CACzC,kCAAmC,CAEnC,0CAA2C,CAC3C,kDAAmD,CACnD,gDAAiD,CACjD,4CAA6C,CAE7C,6BAA8B,CAC9B,yDAA0D,CAC1D,0BAA2B,CAC3B,8CAA+C,CAE/C,+BAAgC,CAChC,0BAA2B,CAC3B,6CAA8C,CAC9C,8CAA+C,CAC/C,+BAAgC,CAChC,kCAAmC,CACnC,0CAA4C,CAC5C,qCAAsC,CACtC,wCAAyC,CACzC,sCAAuC,CACvC,uCAAwC,CACxC,kFAAmF,CACnF,2FAA4F,CAC5F,0DAA2D,CAC3D,sEAAuE,CACvE,+CAA+C,CAC/C,+DAAgE,CAChE,gEAAiE,CACjE,oDAAqD,CACrD,+CAAgD,CAChD,8CAA+C,CAC/C,8CAA+C,CAE/C,yEAA0E,CAC1E,sDAAuD,CACvD,4CAA6C,CAC7C,8BAA+B,CAC/B,2DAA4D,CAC5D,8DAA+D,CAC/D,yDAA0D,CAC1D,yBAA2B,CAC3B,wBAAyB,CACzB,2EAA4E,CAC5E,8CAA+C,CAE/C,6BAA8B,CAE9B,uCAAwC,CACxC,2BAA4B,CAC5B,yBAA0B,CAC1B,oCAAqC,CACrC,wBAAyB,CACzB,sBAAuB,CACvB,sCAAuC,CACvC,0BAA2B,CAC3B,wBAAyB,CACzB,qCAAsC,CACtC,yBAA0B,CAC1B,uBAAwB,CAExB,oBACF,CCzIA,WAEE,cAAe,CACf,kBAAmB,CAFnB,qCAGF,CAEA,4BAEE,eAAgB,CAChB,iCACF,CAEA,SAEE,qBAAsB,CADtB,YAAa,CAGb,aAAc,CACd,kBAAmB,CACnB,cAAe,CAEf,2CAA4C,CAL5C,eAAgB,CAIhB,+CAAkD,CAGlD,aACE,QACF,CAEA,sBAEE,gBAAiB,CADjB,QAEF,CAEA,mBACE,0BACF,CACF,CAEA,SAEE,qBAAsB,CACtB,aAAc,CAEd,0CAA2C,CAD3C,WAAY,CAGZ,2CAA4C,CAD5C,sCAAuC,CALvC,+CAAgD,CAQhD,aACE,mBACF,CAEA,uBACE,QACF,CAEA,mBACE,6BACF,CAEA,wBACE,mBACF,CAEA,qBACE,qBACF,CAEA,wBACE,iBACF,CAEA,0BACE,mBACF,CAEA,yBACE,kBACF,CACF,CAEA,oCACE,eACE,gBAA2B,CAC3B,qBACF,CAEA,sBACE,qBACF,CAEA,eACE,gCAAsC,CACtC,qCACF,CAEA,sBACE,iCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,4BAA6B,CAC7B,iCACF,CAEA,uBACE,wBACF,CACF,CAEA,6CACE,eACE,gBAA2B,CAC3B,qBACF,CAEA,sBACE,qBACF,CAEA,eACE,gCAAsC,CACtC,qCACF,CAEA,sBACE,iCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,4BAA6B,CAC7B,iCACF,CAEA,uBACE,wBACF,CACF,CAEA,2CACE,eACE,gBAA2B,CAC3B,qBACF,CAEA,sBACE,qBACF,CAEA,eACE,gCAAsC,CACtC,qCACF,CAEA,sBACE,iCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,4BAA6B,CAC7B,iCACF,CAEA,uBACE,wBACF,CACF,CAEA,mCACE,eACE,gBAA2B,CAC3B,qBACF,CAEA,sBACE,qBACF,CAEA,eACE,gCAAsC,CACtC,qCACF,CAEA,sBACE,iCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,iCAAuC,CACvC,sCACF,CAEA,sBACE,kCACF,CAEA,eACE,2BAA4B,CAC5B,gCACF,CAEA,sBACE,uBACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,iCAAuC,CACvC,sCACF,CAEA,uBACE,kCACF,CAEA,gBACE,4BAA6B,CAC7B,iCACF,CAEA,uBACE,wBACF,CACF,CC1iBA,WACE,sBAAuB,CAIvB,iBAAkB,CADlB,eAAmB,CAFnB,qGAIF,CAEA,WACE,uBAAwB,CAIxB,iBAAkB,CADlB,eAAmB,CAFnB,uGAIF,CAEA,WACE,wBAAyB,CAIzB,iBAAkB,CADlB,eAAmB,CAFnB,yGAIF,CAEA,WACE,yBAA0B,CAI1B,iBAAkB,CADlB,eAAmB,CAFnB,2GAIF,CAEA,WACE,0BAA2B,CAI3B,iBAAkB,CADlB,eAAmB,CAFnB,6GAIF,CAEA,WACE,yBAA0B,CAI1B,iBAAkB,CADlB,eAAmB,CAFnB,+FAIF,CAEA,WACE,6BAA8B,CAI9B,iBAAkB,CADlB,eAAmB,CAFnB,uGAIF,CAEA,WACE,4BAA6B,CAI7B,iBAAkB,CADlB,eAAmB,CAFnB,qGAIF,CAEA,WACE,0BAA6B,CAI7B,iBAAkB,CADlB,eAAmB,CAFnB,iHAIF,CAEA,WACE,4BAA+B,CAI/B,iBAAkB,CADlB,eAAmB,CAFnB,qHAIF,CAEA,WACE,6BAAgC,CAIhC,iBAAkB,CADlB,eAAmB,CAFnB,uHAIF,CAEA,WACE,iBAAkB,CAIlB,iBAAkB,CADlB,eAAmB,CAFnB,+EAIF;;AC9FA;;;;EAIE,CACF,YAEE,qDAAwD,CAE1D,WAIE,kBAAmB,CAHnB,+BAAiC,CACjC,iBAAkB,CAClB,eAAgB,CAEhB,wHAA4I,CAE9I,eAEE,eAAkB;;AClBpB;;;;EAIE,CACF,YACE,8CAA+C,CAC/C,qDAAwD,CAE1D,WAIE,kBAAmB,CAHnB,+BAAiC,CACjC,iBAAkB,CAClB,eAAgB,CAEhB,wHAA4I,CAE9I,eAEE,eAAkB;;AClBpB;;;;EAIE,CACF,IACE,uDAAyD,CACzD,+BAAmC,CAErC,gKAoBE,iCAAkC,CAClC,kCAAmC,CACnC,sCAAwC,CACxC,iBAAkB,CAClB,mBAAoB,CACpB,aAAc,CACd,mBAAsB,CAExB,yEASE,+BAAmC,CAErC,gBAEE,kCAAsC,CAExC,wCAGE,mCAAuC,CAEzC,kCAKE,iCAAqC,CAEvC,gBAEE,eAAkB,CAEpB,OACE,aAAgB,CAElB,OACE,aAAgB,CAElB,OACE,aAAgB,CAElB,OACE,aAAgB,CAElB,OACE,aAAgB,CAElB,OACE,aAAgB,CAElB,OACE,aAAgB,CAElB,OACE,aAAgB,CAElB,OACE,aAAgB,CAElB,QACE,cAAiB,CAEnB,QACE,gBAAkB,CAClB,gBAAkB,CAClB,qBAAyB,CAE3B,OACE,eAAiB,CACjB,oBAAsB,CACtB,qBAAyB,CAE3B,OACE,gBAAkB,CAClB,oBAAsB,CACtB,uBAA2B,CAE7B,OACE,gBAAiB,CACjB,iBAAmB,CACnB,sBAA0B,CAE5B,OACE,eAAgB,CAChB,oBAAsB,CACtB,sBAA0B,CAE5B,QACE,aAAc,CACd,oBAAsB,CACtB,uBAA2B,CAE7B,OACE,iBAAkB,CAClB,YAAe,CAEjB,OACE,oBAAqB,CACrB,qCAAuC,CACvC,cAAiB,CACjB,UACE,iBAAoB,CAExB,OACE,qCAAwC,CAIxC,mBAAoB,CAHpB,iBAAkB,CAClB,iBAAkB,CAClB,4BACsB,CAExB,WACE,wCAA0C,CAC1C,0CAA6C,CAC7C,yCAA2C,CAC3C,yCAA4C,CAC5C,iDAAwD,CAE1D,cACE,UAAW,CACX,uCAA4C,CAE9C,eACE,WAAY,CACZ,sCAA2C,CAE7C,SAGE,oDAAsD,CAC9C,4CAA8C,CACtD,gEAAkE,CAC1D,wDAA0D,CAClE,0DAA4D,CACpD,kDAAoD,CAC5D,8EAAgF,CACxE,sEAAwE,CAThF,8BAA+B,CACvB,sBAAuB,CAS/B,wEAA0E,CAClE,gEAAoE,CAE9E,WAGE,oDAAsD,CAC9C,4CAA8C,CACtD,gEAAkE,CAC1D,wDAA0D,CAClE,0DAA4D,CACpD,kDAAoD,CAC5D,8EAAgF,CACxE,sEAAwE,CAThF,gCAAiC,CACzB,wBAAyB,CASjC,wFAAgG,CACxF,gFAA0F,CAEpG,SASE,8EAAgF,CACxE,sEAAwE,CAThF,8BAA+B,CACvB,sBAAuB,CAS/B,oFAA2F,CACnF,4EAAqF,CAE/F,uBAXE,oDAAsD,CAC9C,4CAA8C,CACtD,gEAAkE,CAC1D,wDAA0D,CAClE,0DAA4D,CACpD,kDAkBqF,CAZ/F,cASE,8EAAgF,CACxE,sEAAwE,CAThF,mCAAoC,CAC5B,2BAA4B,CASpC,oFAA2F,CACnF,4EAAqF,CAE/F,SAGE,oDAAsD,CAC9C,4CAA8C,CACtD,gEAAkE,CAC1D,wDAA0D,CAClE,0DAA4D,CACpD,kDAAoD,CAC5D,8EAAgF,CACxE,sEAAwE,CAThF,8BAA+B,CACvB,sBAAuB,CAS/B,wEAA0E,CAClE,gEAAoE,CAE9E,UAOE,0DAA4D,CACpD,kDAAoD,CAC5D,8EAAgF,CACxE,sEAAwE,CAThF,+BAAgC,CACxB,uBAAwB,CAShC,mEAAqE,CAC7D,2DAA+D,CAEzE,mBAXE,oDAAsD,CAC9C,4CAA8C,CACtD,gEAAkE,CAC1D,wDAoB+D,CAZzE,SAOE,0DAA4D,CACpD,kDAAoD,CAC5D,8EAAgF,CACxE,sEAAwE,CAThF,8BAA+B,CACvB,sBAAuB,CAS/B,mEAAqE,CAC7D,2DAA+D,CAEzE,iBACE,gCAAmC,CAErC,yBAIE,gEAAkE,CAC1D,wDAA0D,CAClE,0DAA4D,CACpD,kDAAoD,CAC5D,8EAAgF,CACxE,sEAAwE,CAPhF,8BAA+B,CACvB,sBAAuB,CAO/B,qEAAuE,CAC/D,6DAAiE,CAE3E,uCACE,gGASE,4BAA6B,CACrB,oBAAqB,CAC7B,8BAA+B,CACvB,sBAAuB,CAC/B,mCAAoC,CAC5B,2BAA4B,CACpC,2BAA4B,CACpB,mBAAoB,CAC5B,8BAA+B,CACvB,sBAAyB,CAAE,CAEvC,2BACE,OACE,0BAA2B,CACnB,kBAAqB,CAC/B,IACE,kDAAoD,CAC5C,0CAA8C,CAAE,CAE5D,mBACE,OACE,0BAA2B,CACnB,kBAAqB,CAC/B,IACE,kDAAoD,CAC5C,0CAA8C,CAAE,CAE5D,6BACE,GACE,wCAA4C,CACpC,gCAAsC,CAChD,IACE,2GAAgH,CACxG,mGAA0G,CACpH,IACE,qIAA4I,CACpI,6HAAsI,CAChJ,IACE,2GAAgH,CACxG,mGAA0G,CACpH,IACE,uEAA6E,CACrE,+DAAuE,CACjF,IACE,wCAA4C,CACpC,gCAAsC,CAChD,GACE,wCAA4C,CACpC,gCAAsC,CAAE,CAEpD,qBACE,GACE,wCAA4C,CACpC,gCAAsC,CAChD,IACE,2GAAgH,CACxG,mGAA0G,CACpH,IACE,qIAA4I,CACpI,6HAAsI,CAChJ,IACE,2GAAgH,CACxG,mGAA0G,CACpH,IACE,uEAA6E,CACrE,+DAAuE,CACjF,IACE,wCAA4C,CACpC,gCAAsC,CAChD,GACE,wCAA4C,CACpC,gCAAsC,CAAE,CAEpD,2BACE,IACE,iCAAsC,CAAE,CAE5C,mBACE,IACE,iCAAsC,CAAE,CAE5C,gCACE,MACE,sCAAyC,CACzC,0BAA2B,CACnB,kBAAqB,CAC/B,IACE,SAAU,CACV,wDAA0D,CAClD,gDAAoD,CAAE,CAElE,wBACE,MACE,sCAAyC,CACzC,0BAA2B,CACnB,kBAAqB,CAC/B,IACE,SAAU,CACV,wDAA0D,CAClD,gDAAoD,CAAE,CAElE,2BACE,IACE,iHAAyH,CACjH,yGAAmH,CAAE,CAEjI,mBACE,IACE,iHAAyH,CACjH,yGAAmH,CAAE,CAEjI,4BACE,GACE,gCAAiC,CACzB,wBAA2B,CACrC,GACE,+BAAgC,CACxB,uBAA0B,CACpC,OACE,gCAAiC,CACzB,wBAA2B,CACrC,QACE,+BAAgC,CACxB,uBAA0B,CACpC,IACE,gCAAiC,CACzB,wBAA2B,CACrC,IACE,+BAAgC,CACxB,uBAA0B,CACpC,IACE,gCAAiC,CACzB,wBAA2B,CACrC,IACE,+BAAgC,CACxB,uBAA0B,CACpC,OACE,8BAA+B,CACvB,sBAAyB,CAAE,CAEvC,oBACE,GACE,gCAAiC,CACzB,wBAA2B,CACrC,GACE,+BAAgC,CACxB,uBAA0B,CACpC,OACE,gCAAiC,CACzB,wBAA2B,CACrC,QACE,+BAAgC,CACxB,uBAA0B,CACpC,IACE,gCAAiC,CACzB,wBAA2B,CACrC,IACE,+BAAgC,CACxB,uBAA0B,CACpC,IACE,gCAAiC,CACzB,wBAA2B,CACrC,IACE,+BAAgC,CACxB,uBAA0B,CACpC,OACE,8BAA+B,CACvB,sBAAyB,CAAE,CAEvC,2BACE,GACE,8BAA+B,CACvB,sBAAyB,CACnC,GACE,+BAAiC,CACzB,uBAA2B,CAAE,CAEzC,mBACE,GACE,8BAA+B,CACvB,sBAAyB,CACnC,GACE,+BAAiC,CACzB,uBAA2B,CAAE,CAEzC,cACE,+BAAgC,CACxB,uBAA0B,CAEpC,eACE,gCAAiC,CACzB,wBAA2B,CAErC,eACE,gCAAiC,CACzB,wBAA2B,CAErC,oBACE,4BAA+B,CACvB,oBAAyB,CAEnC,kBACE,4BAA+B,CACvB,oBAAyB,CAEnC,mDAEE,2BAAgC,CACxB,mBAA0B,CAEpC,cACE,kDAAoD,CAC5C,0CAA8C,CAExD,UACE,oBAAqB,CACrB,UAAW,CACX,eAAgB,CAChB,iBAAkB,CAClB,qBAAsB,CACtB,WAAc,CAEhB,0BAEE,MAAO,CACP,iBAAkB,CAClB,iBAAkB,CAClB,UAAW,CACX,oCAAwC,CAE1C,aACE,mBAAsB,CAExB,aACE,aAAgB,CAElB,YACE,4BAAgC,CAKlC,aACE,aAAgB,CAElB,aACE,aAAgB,CAElB,aACE,aAAgB,CAElB,aACE,aAAgB,CAElB,aACE,aAAgB,CAElB,aACE,aAAgB,CAElB,aACE,aAAgB,CAElB,aACE,aAAgB,CAElB,aACE,aAAgB,CAElB,aACE,aAAgB,CAElB,qBACE,eAAkB,CAEpB,4BACE,eAAkB,CAKpB,gEACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,cACE,aAAgB,CAElB,4BACE,eAAkB,CAQpB,oFACE,eAAkB,CAKpB,0CACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,0CACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,oEACE,eAAkB,CAEpB,qBACE,eAAkB,CAQpB,+DACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,iCACE,eAAkB,CAKpB,uCACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,uCACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,eACE,eAAkB,CAKpB,wCACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,0CACE,eAAkB,CAKpB,wDACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,oDACE,eAAkB,CAKpB,kEACE,eAAkB,CAEpB,mCACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,+BACE,eAAkB,CAKpB,2CACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,cACE,eAAkB,CAEpB,4BACE,eAAkB,CAKpB,gEACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,gDACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,kEACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,oDACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,qCACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,4DACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,oCACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,0CACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,gCACE,eAAkB,CAKpB,kDACE,eAAkB,CAKpB,oDACE,eAAkB,CAKpB,6CACE,eAAkB,CAKpB,kCACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,wDACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,8DACE,eAAkB,CAEpB,qCACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,0CACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,mCACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,sBACE,eAAkB,CAQpB,2EACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,kCACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,aACE,aAAgB,CAElB,4BACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,wCACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,2CACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,0CACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,gEACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,qCACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,yCACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,sCACE,eAAkB,CAQpB,2EACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,4BACE,eAAkB,CAKpB,0CACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,0DACE,eAAkB,CAQpB,wFACE,eAAkB,CAKpB,iEACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,aACE,aAAgB,CAElB,mCACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,2CACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,kCACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,iBACE,eAAkB,CAQpB,2EACE,eAAkB,CAKpB,oDACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,wCACE,eAAkB,CAKpB,6DACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,4DACE,eAAkB,CAKpB,mCACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,kBACE,aAAgB,CAElB,iBACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,+DACE,eAAkB,CAEpB,wCACE,eAAkB,CAKpB,4DACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,0DACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,sCACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,+BACE,eAAkB,CAKpB,mCACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,gDACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,qCACE,eAAkB,CAKpB,+CACE,eAAkB,CAKpB,+DACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,4DACE,eAAkB,CAEpB,+BACE,eAAkB,CAKpB,wDACE,eAAkB,CAEpB,6BACE,eAAkB,CAKpB,8DACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,+BACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,6EACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,6CACE,eAAkB,CAQpB,sEACE,eAAkB,CAKpB,wCACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,0CACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,oBACE,aAAgB,CAElB,mCACE,eAAkB,CAEpB,yBACE,eAAkB,CAQpB,sEACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,yDACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,qCACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,2CACE,eAAkB,CAKpB,wCACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,yDACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,6BACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,eACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,sCACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,eACE,eAAkB,CAQpB,gEACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,yDACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,wCACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,mCACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,yCACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,gEACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,0CACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,0CACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,sDACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,gDACE,eAAkB,CAQpB,oFACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,sCACE,eAAkB,CAKpB,6DACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,cACE,eAAkB,CAEpB,cACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,uCACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,4BACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,2DACE,eAAkB,CAKpB,kEACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,wCACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,6BACE,eAAkB,CAKpB,qCACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,kBACE,aAAgB,CAKlB,mDACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,8BACE,eAAkB,CAWpB,mFACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,kDACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,wCACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,0EACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,qBACE,eAAkB,CAQpB,oFACE,eAAkB,CAEpB,aACE,aAAgB,CAKlB,2CACE,eAAkB,CAEpB,wDACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,aACE,aAAgB,CAElB,oBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,8BACE,eAAkB,CAWpB,kGACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,wCACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,gDACE,aAAgB,CAElB,iBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,aACE,aAAgB,CAKlB,0DACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,aACE,aAAgB,CAKlB,+CACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,yBACE,eAAkB,CAWpB,0GACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,qCACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,yCACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,mCACE,eAAkB,CAKpB,oDACE,eAAkB,CAKpB,wDACE,eAAkB,CAKpB,4DACE,eAAkB,CAEpB,qBACE,aAAgB,CAElB,oBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,6BACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,sDACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,mCACE,eAAkB,CAKpB,4DACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,6BACE,eAAkB,CAKpB,0CACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,6BACE,eAAkB,CAKpB,qDACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,gBACE,eAAkB,CAWpB,6FACE,eAAkB,CAKpB,8DACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,aACE,aAAgB,CAElB,iBACE,eAAkB,CAEpB,mCACE,eAAkB,CAEpB,cACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,qCACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,iBACE,aAAgB,CAElB,+BACE,eAAkB,CAKpB,8DACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,+DACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,wDACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,aACE,aAAgB,CAElB,yBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,yCACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,wCACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,iCACE,eAAkB,CAEpB,4BACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,uDACE,eAAkB,CAWpB,mGACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,8BACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,6BACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,4BACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,4DACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,qCACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,gCACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,+BACE,aAAgB,CAElB,kBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,oCACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,mCACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,uBACE,eAAkB,CAQpB,kFACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,2CACE,eAAkB,CAKpB,qDACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,gCACE,eAAkB,CAQpB,sEACE,eAAkB,CAKpB,4DACE,eAAkB,CAEpB,iCACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,4CACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,sBACE,aAAgB,CAElB,oBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,gDACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,4BACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,8BACE,eAAkB,CAKpB,0CACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,8CACE,eAAkB,CAKpB,iDACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,iCACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,qCACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,qBACE,eAAkB,CAQpB,uEACE,eAAkB,CAKpB,qDACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,8DACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,yDACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,4DACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,aACE,aAAgB,CAElB,yBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,2CACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,6BACE,eAAkB,CAKpB,qDACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,wCACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,oCACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,oDACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,cACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,mDACE,eAAkB,CAKpB,qDACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,oCACE,eAAkB,CAKpB,gDACE,eAAkB,CAQpB,yDACE,eAAkB,CAKpB,4CACE,eAAkB,CAKpB,mCACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,yCACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,oCACE,eAAkB,CAKpB,yCACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,wDACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,mDACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,iBACE,aAAgB,CAElB,gBACE,eAAkB,CAKpB,gDACE,eAAkB,CAKpB,sEACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,2CACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,kCACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,uBACE,eAAkB,CAWpB,4GACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,yDACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,6BACE,eAAkB,CAKpB,sDACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,oCACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,+BACE,eAAkB,CAKpB,0CACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,+BACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,cACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,6BACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,wDACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,wDACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,sCACE,eAAkB,CAEpB,gCACE,aAAgB,CAKlB,sDACE,eAAkB,CAWpB,6FACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,eACE,eAAkB,CAKpB,sCACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,oBACE,eAAkB,CAQpB,2EACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,sDACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,0DACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,oBACE,eAAkB,CAQpB,oDACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,qCACE,eAAkB,CAEpB,sCACE,eAAkB,CAEpB,qCACE,eAAkB,CAEpB,eACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,+BACE,eAAkB,CAKpB,wDACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,kCACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,wDACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,kDACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,iBACE,eAAkB,CAQpB,8DACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,kCACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,mCACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,yDACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,0DACE,eAAkB,CAKpB,+CACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,iEACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,eACE,eAAkB,CAKpB,4DACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,8BACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,0BACE,eAAkB,CAWpB,4GACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,0BACE,eAAkB,CAQpB,iEACE,eAAkB,CAKpB,gEACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,gDACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,0BACE,eAAkB,CAQpB,8EACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,0CACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,sDACE,eAAkB,CAKpB,2DACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,iCACE,eAAkB,CAKpB,sCACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,sBACE,eAAkB,CAQpB,wFACE,eAAkB,CAQpB,wEACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,iCACE,eAAkB,CAKpB,sDACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,8BACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,iDACE,eAAkB,CAKpB,oDACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,0CACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,wDACE,eAAkB,CAEpB,yCACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,sBACE,eAAkB,CAQpB,oFACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,4CACE,eAAkB,CAKpB,sDACE,eAAkB,CAKpB,6CACE,eAAkB,CAKpB,wCACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,iEACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,sBACE,eAAkB,CAQpB,4DACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,0CACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,8BACE,eAAkB,CAKpB,uDACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,wDACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,mCACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,qDACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,aACE,aAAgB,CAKlB,2CACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,aACE,aAAgB,CAElB,0BACE,eAAkB,CAKpB,8DACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,aACE,aAAgB,CAElB,sBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,sCACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,8BACE,eAAkB,CAKpB,4DACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,oCACE,eAAkB,CAQpB,+DACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,yDACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,2DACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,kCACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,oBACE,aAAgB,CAElB,0BACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,oDACE,eAAkB,CAKpB,2CACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,8BACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,qDACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,uCACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,kCACE,eAAkB,CAKpB,+DACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,uBACE,eAAkB,CAQpB,kDACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,eACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,aACE,aAAgB,CAElB,gBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,+BACE,eAAkB,CAEpB,8BACE,eAAkB,CAKpB,0CACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,mCACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,wBACE,eAAkB,CAQpB,iEACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,gCACE,eAAkB,CAKpB,yDACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,4CACE,eAAkB,CAKpB,4DACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,2CACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,kCACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,8BACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,aACE,aAAgB,CAKlB,iEACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,iCACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,2CACE,eAAkB,CAEpB,kCACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,kDACE,eAAkB,CAKpB,qDACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,yCACE,eAAkB,CAEpB,mCACE,eAAkB,CAKpB,iDACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,8BACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,aACE,aAAgB,CAWlB,gHACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,8BACE,eAAkB,CAKpB,qDACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,kEACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,gDACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,mCACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,iDACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,4BACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,4BACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,2CACE,eAAkB,CAEpB,uCACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,qCACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,gDACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,0DACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,iDACE,eAAkB,CAKpB,8CACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,8BACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,yCACE,eAAkB,CAEpB,eACE,eAAkB,CAKpB,2CACE,eAAkB,CAEpB,gBACE,eAAkB,CAQpB,qFACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,qCACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,wEACE,eAAkB,CAEpB,qBACE,eAAkB,CAQpB,gEACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,qCACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,uCACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,qCACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,iCACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,uCACE,eAAkB,CAKpB,wDACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,wDACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,oCACE,eAAkB,CAKpB,2DACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,sBACE,eAAkB,CAWpB,4GACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,wDACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,6BACE,eAAkB,CAQpB,oFACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,2DACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,yCACE,eAAkB,CAEpB,6BACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,iDACE,eAAkB,CAKpB,4DACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,oFACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,kEACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,oCACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,6CACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,oBACE,eAAkB,CAQpB,uFACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,iBACE,eAAkB,CAQpB,kFACE,eAAkB,CAKpB,8DACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,eACE,eAAkB,CAKpB,mDACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,qBACE,eAAkB,CAQpB,sDACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,mCACE,eAAkB,CAEpB,4BACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,aACE,aAAgB,CAElB,kBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,6DACE,eAAkB,CAKpB,8CACE,eAAkB,CAKpB,qCACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,mCACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,4CACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,6BACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,aACE,aAAgB,CAKlB,8CACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,cACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,0CACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,iDACE,eAAkB,CAKpB,yCACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,wDACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,sCACE,eAAkB,CAKpB,kEACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,mCACE,eAAkB,CAKpB,gDACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,8DACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,oBACE,eAAkB,CAQpB,iEACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,cACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,gCACE,eAAkB,CAKpB,gEACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,8BACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,8CACE,eAAkB,CAKpB,2DACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,4CACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,0CACE,eAAkB,CAEpB,sBACE,aAAgB,CAKlB,8CACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,wCACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,kBACE,eAAkB,CAQpB,mFACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,8DACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,iEACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,0EACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,kCACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,wBACE,eAAkB,CAQpB,+EACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,4BACE,eAAkB,CAKpB,mDACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,2DACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,kCACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,kBACE,eAAkB,CAcpB,wIACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,qCACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,+DACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,sCACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,4BACE,eAAkB,CAKpB,yDACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,qDACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,uDACE,eAAkB,CAKpB,wDACE,eAAkB,CAEpB,uCACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,uCACE,eAAkB,CAKpB,0CACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,kCACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,yDACE,eAAkB,CAEpB,yBACE,eAAkB,CAQpB,oEACE,eAAkB,CAKpB,2CACE,eAAkB,CAKpB,kDACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,wDACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,+BACE,aAAgB,CAElB,2BACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,qCACE,eAAkB,CAKpB,uCACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,mCACE,eAAkB,CAKpB,4CACE,eAAkB,CAWpB,kKACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,kCACE,eAAkB,CAQpB,sFACE,eAAkB,CAQpB,+EACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,iCACE,eAAkB,CAKpB,kDACE,eAAkB,CAKpB,+BACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,yCACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,iDACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,4BACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,4BACE,eAAkB,CAKpB,gDACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,mDACE,eAAkB,CAKpB,gDACE,eAAkB,CAKpB,0DACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,wCACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,6BACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,aACE,aAAgB,CAElB,qCACE,eAAkB,CAKpB,2DACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,uCACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,aACE,aAAgB,CAElB,oBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,mCACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,8DACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,2DACE,eAAkB,CAKpB,gDACE,eAAkB,CAWpB,8HACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,4DACE,eAAkB,CAEpB,6BACE,eAAkB,CAQpB,gEACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,wCACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,mCACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,4DACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,4CACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,6BACE,eAAkB,CAKpB,2CACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,aACE,aAAgB,CAElB,gBACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,qCACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,iCACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,wCACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,qCACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,wBACE,eAAkB,CAQpB,0EACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,sBACE,eAAkB,CAQpB,oEACE,eAAkB,CAEpB,oCACE,eAAkB,CAKpB,mCACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,2CACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,qCACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,oCACE,eAAkB,CAWpB,4EACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,aACE,aAAgB,CAElB,wBACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,gBACE,aAAgB,CAElB,wBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,sDACE,eAAkB,CAQpB,sEACE,eAAkB,CAKpB,uCACE,eAAkB,CAKpB,yDACE,eAAkB,CAEpB,0CACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,uDACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,2CACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,kEACE,eAAkB,CAKpB,yDACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,oDACE,eAAkB,CAKpB,6CACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,sDACE,eAAkB,CAKpB,+BACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,8BACE,eAAkB,CAcpB,gFACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,iBACE,eAAkB,CAWpB,wEACE,eAAkB,CAKpB,uDACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,2CACE,eAAkB,CAEpB,eACE,eAAkB,CAKpB,sDACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,6BACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,2CACE,eAAkB,CAKpB,iDACE,eAAkB,CAQpB,wEACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,+BACE,eAAkB,CAKpB,wDACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,+BACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,uBACE,eAAkB,CAQpB,6FACE,eAAkB,CAEpB,qBACE,aAAgB,CAKlB,gDACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,+CACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,wDACE,eAAkB,CAQpB,wFACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,+BACE,eAAkB,CAKpB,0CACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,qCACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,qCACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,uBACE,eAAkB,CAWpB,oGACE,eAAkB,CAEpB,4BACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,mCACE,eAAkB,CAEpB,qCACE,eAAkB,CAEpB,gCACE,eAAkB,CAQpB,yEACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,yCACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,6BACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,wCACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,oCACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,eACE,eAAkB,CAWpB,0GACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,wBACE,aAAgB,CAKlB,oDACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,wBACE,aAAgB,CAElB,kBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,6BACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,4DACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,mCACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,yBACE,eAAkB,CAWpB,8FACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,8BACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,gDACE,eAAkB,CAQpB,+EACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,qBACE,eAAkB,CAQpB,qEACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,4DACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,8BACE,eAAkB,CAQpB,+DACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,6BACE,eAAkB,CAKpB,qDACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,iBACE,eAAkB,CAQpB,+DACE,eAAkB,CAEpB,qCACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,iCACE,eAAkB,CAKpB,6DACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,2CACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,8CACE,eAAkB,CAQpB,6FACE,eAAkB,CAKpB,sDACE,eAAkB,CAKpB,wDACE,eAAkB,CAKpB,2DACE,eAAkB,CAKpB,2CACE,eAAkB,CAKpB,4DACE,eAAkB,CAWpB,oHACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,uDACE,aAAgB,CAElB,mBACE,eAAkB,CAKpB,6DACE,eAAkB,CAEpB,iBACE,aAAgB,CAElB,2BACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,yCACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,wBACE,eAAkB,CAQpB,qEACE,eAAkB,CAKpB,oEACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,qCACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,2DACE,eAAkB,CAEpB,kCACE,eAAkB,CAEpB,wBACE,eAAkB,CAQpB,gEACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,4BACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,wCACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,+BACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,iCACE,eAAkB,CAQpB,sDACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,oCACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,yCACE,eAAkB,CAKpB,0CACE,eAAkB,CAEpB,aACE,aAAgB,CAElB,wBACE,eAAkB,CAKpB,iDACE,eAAkB,CAKpB,uDACE,eAAkB,CAKpB,gEACE,eAAkB,CAEpB,+BACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,oCACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,2CACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,oCACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,8DACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,uDACE,eAAkB,CAKpB,qDACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,wBACE,eAAkB,CAQpB,uEACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,2CACE,eAAkB,CAKpB,qDACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,eACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,+BACE,aAAgB,CAElB,kBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,uBACE,eAAkB,CAcpB,yFACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,uDACE,eAAkB,CAKpB,yDACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,yDACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,iCACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,wCACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,4BACE,eAAkB,CAQpB,qEACE,aAAgB,CAKlB,uDACE,eAAkB,CAKpB,4DACE,eAAkB,CAEpB,cACE,eAAkB,CAEpB,kBACE,aAAgB,CAKlB,2CACE,eAAkB,CAEpB,qCACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,mBACE,eAAkB,CAcpB,iGACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,iCACE,eAAkB,CAKpB,6CACE,eAAkB,CAKpB,6EACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,wCACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,wBACE,eAAkB,CAQpB,6EACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,mEACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,wBACE,eAAkB,CAQpB,yFACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,2CACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,gDACE,eAAkB,CAKpB,qDACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,8BACE,eAAkB,CAKpB,yCACE,aAAgB,CAElB,wBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,2CACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,0CACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,eACE,eAAkB,CAKpB,yCACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,gDACE,eAAkB,CAKpB,sCACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,8DACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,iCACE,eAAkB,CAKpB,yCACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,6BACE,eAAkB,CAKpB,sDACE,eAAkB,CAQpB,oFACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,eACE,eAAkB,CAKpB,yDACE,eAAkB,CAEpB,gCACE,eAAkB,CAKpB,2CACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,oDACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,kCACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,2DACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,wDACE,eAAkB,CAKpB,0CACE,eAAkB,CAKpB,6DACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,iBACE,aAAgB,CAElB,uBACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,8CACE,eAAkB,CAKpB,8DACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,2CACE,eAAkB,CAEpB,qBACE,aAAgB,CAElB,kBACE,eAAkB,CAKpB,2DACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,2CACE,eAAkB,CAEpB,4CACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,wBACE,eAAkB,CAQpB,wEACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,mBACE,aAAgB,CAKlB,oEACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,aACE,aAAgB,CAElB,4BACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,qCACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,mDACE,eAAkB,CAEpB,kCACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,6BACE,eAAkB,CAKpB,2CACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,uDACE,eAAkB,CAKpB,mCACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,yBACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,8CACE,eAAkB,CAKpB,6DACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,mCACE,eAAkB,CAWpB,uFACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,0CACE,eAAkB,CAKpB,qDACE,eAAkB,CAKpB,iDACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,4BACE,eAAkB,CAKpB,+BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,mDACE,eAAkB,CAKpB,mDACE,eAAkB,CAKpB,0DACE,eAAkB,CAQpB,8EACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,0CACE,eAAkB,CAEpB,aACE,aAAgB,CAElB,yBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,yCACE,eAAkB,CAEpB,cACE,eAAkB,CAEpB,gCACE,eAAkB,CAKpB,yCACE,eAAkB,CAEpB,iCACE,eAAkB,CAKpB,sCACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,uDACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,2DACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,oCACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,mBACE,eAAkB,CAKpB,4CACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,yBACE,aAAgB,CAKlB,mDACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,gDACE,eAAkB,CAKpB,yDACE,eAAkB,CAEpB,kCACE,eAAkB,CAWpB,yGACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,yDACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,iBACE,eAAkB,CAQpB,mFACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,yCACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,wDACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,mCACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,uBACE,eAAkB,CAKpB,0CACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,4DACE,eAAkB,CAEpB,qBACE,eAAkB,CAQpB,6DACE,eAAkB,CAKpB,4DACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,mCACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,wBACE,eAAkB,CAQpB,yEACE,eAAkB,CAKpB,8CACE,eAAkB,CAKpB,sDACE,eAAkB,CAKpB,2CACE,eAAkB,CAKpB,qDACE,eAAkB,CAKpB,+CACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,oDACE,eAAkB,CAEpB,sCACE,eAAkB,CAKpB,sDACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,qBACE,eAAkB,CAKpB,gDACE,eAAkB,CAEpB,6BACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,0BACE,eAAkB,CAQpB,wEACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,4CACE,eAAkB,CAKpB,+CACE,eAAkB,CAKpB,wDACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,qCACE,eAAkB,CAKpB,0CACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,wCACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,0BACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,0CACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,6BACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,eACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,8CACE,eAAkB,CAKpB,0CACE,eAAkB,CAKpB,yCACE,eAAkB,CAEpB,8BACE,eAAkB,CAKpB,2DACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,oCACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,uBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,mCACE,eAAkB,CAEpB,wBACE,eAAkB,CAEpB,yBACE,eAAkB,CAEpB,wBACE,eAAkB,CAKpB,gDACE,eAAkB,CAKpB,6CACE,eAAkB,CAEpB,iBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,uBACE,aAAgB,CAElB,uBACE,eAAkB,CAEpB,8BACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,iBACE,eAAkB,CAQpB,oEACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,4DACE,eAAkB,CAQpB,wDACE,aAAgB,CAElB,wBACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,aACE,aAAgB,CAKlB,4DACE,eAAkB,CAKpB,2CACE,eAAkB,CAEpB,oCACE,eAAkB,CAcpB,2GACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,gBACE,eAAkB,CAEpB,kBACE,eAAkB,CAKpB,uCACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,kBACE,eAAkB,CAEpB,2BACE,eAAkB,CAKpB,wCACE,eAAkB,CAEpB,aACE,aAAgB,CAElB,mBACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,sBACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,2BACE,eAAkB,CAEpB,8BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,gBACE,eAAkB,CAKpB,qDACE,eAAkB,CAKpB,kDACE,eAAkB,CAKpB,8CACE,eAAkB,CAEpB,iBACE,eAAkB,CAKpB,0DACE,eAAkB,CAEpB,4BACE,eAAkB,CAEpB,0BACE,eAAkB,CAEpB,oBACE,eAAkB,CAEpB,mBACE,eAAkB,CAEpB,qBACE,eAAkB,CAEpB,sBACE,eAAkB,CAKpB,+DACE,eAAkB,CAKpB,yCACE,eAAkB,CAKpB,wDACE,eAAkB,CAKpB,kDACE,eAAkB,CAEpB,gCACE,eAAkB,CAEpB,+BACE,eAAkB,CAEpB,oBACE,eAAkB,CAKpB,oDACE,eAAkB,CAKpB,2CACE,eAAkB,CAcpB,sFAIE,UAAW,CAEX,WAAY,CACZ,eAAgB,CAFhB,SAAU,CAHV,iBAAkB,CAClB,SAAU,CAKV,kBAAsB,CAEtB,cAAe,CADf,kBACiB,CCnlanB,cACE,sCAAyC,CACzC,2BAA6B,CAE7B,6BAA+B,CAD/B,yBAA8B,CAG9B,aAAc,CADd,6BAA+B,CAE/B,kCAAmC,CACnC,iCACF,CAEA,wBACE,aACF,CAEA,wBACE,aACF,CAEA,yBACE,aACF,CAEA,sBACE,aACF,CAEA,8BACE,aACF,CAEA,qBACE,aACF,CAEA,qBACE,aACF,CAEA,qBACE,aACF,CAEA,oBACE,aACF,CAEA,qBACE,aACF,CAEA,qBACE,aACF,CAEA,qBACE,aACF,CAEA,mBACE,aACF,CAEA,yBACE,aACF,CAEA,mBACE,aACF,CAEA,uBACE,aACF,CAEA,sBACE,aACF,CAEA,0BACE,aACF,CAEA,oBACE,aACF,CAEA,wBACE,aACF,CAEA,oBACE,aACF,CAEA,mBACE,aACF,CAEA,qBACE,aACF,CAEA,uBACE,aACF,CAEA,oBACE,aACF,CAEA,mBACE,aACF,CAEA,sBACE,aACF,CAEA,mBACE,aACF,CAEA,mBACE,aACF,CAEA,oBACE,aACF,CAEA,oBACE,aACF,CAEA,4BACE,aACF,CAEA,mBACE,aACF,CAEA,sBACE,aACF,CAEA,qBACE,aACF,CAEA,uBACE,aACF,CAEA,sBACE,aACF,CAEA,gBACE,aACF,CAEA,sBACE,aACF,CAEA,yBACE,eACF,CAEA,8BACE,eACF,CAEA,mBACE,aACF,CCjLA,kBAIE,2BAA4B,CAF5B,uCAAwC,CACxC,uCAAwC,CAFxC,8CAIF,CAEA,MAIE,wBAAyB,CAHzB,oBAAqB,CAErB,oBAAqB,CADrB,oBAGF,CAEA,GACE,8BAA+B,CAC/B,kCACF,CAEA,GACE,6BAA8B,CAC9B,iCACF,CAEA,GACE,6BAA8B,CAC9B,iCACF,CAEA,GACE,6BAA8B,CAC9B,iCACF,CAEA,GACE,6BAA8B,CAC9B,iCACF,CAEA,GACE,6BAA8B,CAC9B,iCACF,CAEA,QAIE,sCAAuC,CAFvC,6BAA8B,CAC9B,iCAAkC,CAGlC,EACE,6BAA8B,CAC9B,yBACF,CACF,CAEA,OACE,mCACF,CAEA,mBAEE,uBAAwB,CADxB,cAAe,CAEf,sCAAuC,CAEvC,aACE,mCACF,CAEA,GACE,uBACF,CAEA,EACE,aACF,CACF,CAEA,qBACE,sCACF,CAEA,oBACE,qCACF,CAEA,kBACE,mCACF,CAEA,6BACE,+CACF,CAEA,4BACE,8CACF,CAEA,0BACE,4CACF,CAEA,YACE,4BACF,CAEA,cACE,qCACF,CAEA,YACE,mCACF,CAEA,iBACE,wBACF,CAEA,gBAEE,eAAgB,CAChB,sBA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A,kBACE,YAAa,CACb,gBACF,CAEA,0BACE,MACF,CAEA,MACE,sBAAuB,CACvB,mEAAoE,CACpE,0CAA2C,CAC3C,eAAgB,CAEhB,YACE,qCACF,CACF,CC9BA,cAEE,wBAAyB,CADzB,qCAAsC,CAEtC,uCACF,CCJA,aACE,wBACF,CAEA,YACE,0BACF,CAEA,cACE,2BACF,CAEA,MACE,4BACF,CAEA,OACE,0BACF,CAEA,MACE,sBACF,CAEA,WACE,kBACF,CAEA,kBACE,4BACF,CAEA,eACE,8BACF,CAEA,iBACE,6BACF,CAEA,gBACE,+BACF,CAEA,kBACE,gCACF,CAEA,kBACE,oDACF,CAEA,kBACE,oDACF,CAEA,mBACE,qDACF,CAEA,qBACE,qDACF,CAEA,qBACE,qDACF,CAEA,sBACE,sDACF,CAEA,oBACE,qDACF,CAEA,oBACE,qDACF,CAEA,qBACE,sDACF,CAEA,mBACE,sDACF,CAEA,mBACE,sDACF,CAEA,oBACE,uDACF,CAEA,WACE,oBAAqB,CACrB,oBACF,CAEA,YACE,kBACF,CAEA,gBACE,YACF,CAEA,uBACE,kBACF,CAGA,sBACE,kBAAmB,CACnB,YAAa,CACb,wBACF,CAEA,cACE,sBACF,CAEA,QACE,kBACF","sources":["webpack://@tyk-technologies/tyk-ui/./src/common/css/reset.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/variables.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/grid.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/fonts.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/fontawesome/light.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/fontawesome/solid.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/fontawesome/fontawesome.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/tykon.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/typography.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/form.css","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/Accordion.css","webpack://@tyk-technologies/tyk-ui/./src/components/Button/Button.css","webpack://@tyk-technologies/tyk-ui/./src/components/ButtonGroup/ButtonGroup.css","webpack://@tyk-technologies/tyk-ui/./src/components/Card/Card.css","webpack://@tyk-technologies/tyk-ui/./src/components/Chart/Chart.css","webpack://@tyk-technologies/tyk-ui/./src/components/Collapsible/Collapsible.css","webpack://@tyk-technologies/tyk-ui/./src/components/CopyToClipboard/CopyToClipboard.css","webpack://@tyk-technologies/tyk-ui/./src/components/FixedWrapper/FixedWrapper.css","webpack://@tyk-technologies/tyk-ui/./src/components/FloatingContainer/FloatingContainer.css","webpack://@tyk-technologies/tyk-ui/./src/components/Icon/Icon.css","webpack://@tyk-technologies/tyk-ui/./src/components/InfiniteScroller/InfiniteScroller.css","webpack://@tyk-technologies/tyk-ui/./src/components/InfoNote/InfoNote.css","webpack://@tyk-technologies/tyk-ui/./src/components/Loader/Loader.css","webpack://@tyk-technologies/tyk-ui/./src/components/List/List.css","webpack://@tyk-technologies/tyk-ui/./src/components/Message/Message.css","webpack://@tyk-technologies/tyk-ui/./src/components/Modal/Modal.css","webpack://@tyk-technologies/tyk-ui/./src/components/Navigation/Navigation.css","webpack://@tyk-technologies/tyk-ui/./src/components/NavBar/NavBar.css","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/Panel.css","webpack://@tyk-technologies/tyk-ui/./src/components/Pill/Pill.css","webpack://@tyk-technologies/tyk-ui/./src/components/RevealPanel/RevealPanel.css","webpack://@tyk-technologies/tyk-ui/./src/components/Sidebar/Sidebar.css","webpack://@tyk-technologies/tyk-ui/./src/components/Table/Table.css","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/Tabs.css","webpack://@tyk-technologies/tyk-ui/./src/components/Toast/Toast.css","webpack://@tyk-technologies/tyk-ui/./src/components/Tooltip/Tooltip.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox2/Combobox.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Checkbox/Checkbox.css","webpack://@tyk-technologies/tyk-ui/./node_modules/flatpickr/dist/flatpickr.min.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/DatePicker/DatePicker.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown/Dropdown.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/Dropdown.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList/EditableList.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/EditableList2.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/FileInput/FileInput.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/Multiselect.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Pagination/Pagination.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Radio/Radio.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Select/Select.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/SelectableList/SelectableList.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Textarea/Textarea.css","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/Toggle.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/layout.css","webpack://@tyk-technologies/tyk-ui/./src/common/css/texts.css","webpack://@tyk-technologies/tyk-ui/./src/utils/css-helpers/helpers.css"],"sourcesContent":["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 {\n margin: 0;\n padding: 0;\n border: 0;\n font: inherit;\n font-size: 100%;\n vertical-align: baseline;\n}\n\n/* HTML5 display-role reset for older browsers */\n\narticle, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {\n display: block; }\n\nbody {\n line-height: 1; }\n\nol, ul {\n list-style: none; }\n\nblockquote, q {\n quotes: none; }\n\nblockquote {\n &::before, &::after {\n content: '';\n content: none; } }\n\nq {\n &::before, &::after {\n content: '';\n content: none; } }\n\ntable {\n border-collapse: collapse;\n border-spacing: 0; }\n",":root {\n --general-border-radius: 18px;\n --general-border-width: 2px;\n\n --color-default-base: #36364C;\n --color-default-base-light: #7A79A1;\n --color-default-light: #C3C3E5;\n --color-default-dark: #505071;\n --color-primary-base: #A2A2CC;\n --color-primary-light: #EDEDF9;\n --color-primary-dark: #505071;\n --color-success-base: #00d9ba;\n --color-success-light: #C2F2E9;\n --color-success-dark: #00B798;\n --color-info-base: #82BBC6;\n --color-info-light: #D3EBEF;\n --color-danger-base: #FF6C7D;\n --color-danger-extra-light: #F5CCD1;\n --color-danger-light: #FFBBC5;\n --color-danger-dark: #EA4766;\n --color-warning-base: #D6B218;\n --color-warning-light: #FFE885;\n --color-warning-dark: #C58C11;\n --color-foreground-base: #393939;\n --color-foreground-base-dark: #22272B;\n --color-foreground-light: #5a5a68;\n --color-foreground-dark: #161B20;\n --color-foreground-extra-dark: #0A0D10;\n --color-background-base: #E1E1E1;\n --color-background-light: #EDEDF9;\n --color-background-dark: #43435B;\n --color-background-extra-dark: #0A0D10;\n\n --text-color: var(--color-default-dark);\n --label-color: var(--color-default-base);\n\n --xs-line-height: 16px;\n --sm-line-height: 19px;\n --md-line-height: 22px;\n --lg-line-height: 23px;\n --xl-line-height: 24px;\n --xxl-line-height: 30px;\n\n --xs-font-size: 13px;\n --sm-font-size: 14px;\n --md-font-size: 16px;\n --lg-font-size: 18px;\n --xl-font-size: 20px;\n --xxl-font-size: 25px;\n\n --base-font-size: var(--sm-font-size);\n --base-line-height: var(--sm-line-height);\n\n --spacing-xs: 5px;\n --spacing-sm: 10px;\n --spacing-base: 15px;\n --spacing-md: 20px;\n --spacing-lg: 25px;\n --spacing-xl: 30px;\n --spacing-xxl: 40px;\n\n --grid-gutter: var(--spacing-md);\n --grid-max-width: calc(1200px + var(--grid-gutter) * 2);\n\n --breakpoint-xs: 420px;\n --breakpoint-sm: 768px;\n --breakpoint-md: 1024px;\n --breakpoint-lg: 1248px;\n\n --font-inter-light: 'Inter-Light';\n --font-inter-medium: 'Inter-Medium';\n --font-inter-regular: 'Inter-Regular';\n --font-inter-bold: 'Inter-Bold';\n\n --font-family-regular: 'OpenSans-regular';\n --font-family-medium: 'OpenSans-SemiBold';\n --font-family-bold: 'OpenSans-Bold';\n\n --headings-color: var(--color-default-base);\n --headings-font-family-regular: 'smoolthan_regular';\n --headings-font-family-medium: 'smoolthan_medium';\n --headings-font-family-bold: 'smoolthan_bold';\n\n --headings-margin-bottom: 15px;\n --headings-font-family: var(--headings-font-family-medium);\n --headings-font-weight: 500;\n --headings-line-height: var(--base-line-height);\n\n --form-group-margin-bottom: 15px;\n --form-control-height: 39px;\n --form-control-padding-left: var(--spacing-md);\n --form-control-padding-right: var(--spacing-md);\n --form-control-padding-top: 10px;\n --form-control-padding-bottom: 10px;\n --form-control-addon-background-color: white;\n --form-control-addon-padding-top: 10px;\n --form-control-addon-padding-bottom: 10px;\n --form-control-addon-padding-left: 10px;\n --form-control-addon-padding-right: 10px;\n --form-control-border: var(--general-border-width) solid var(--color-default-light);\n --form-control-disabled-border: var(--general-border-width) solid var(--color-default-light);\n --form-control-placeholder-color: var(--color-primary-base);\n --form-control-disabled-background-color: var(--color-background-light);\n --form-control-disabled-color:var(--text-color);\n --form-control-border-focus: 2px solid var(--color-success-base);\n --form-control-placeholder-font-family: var(--font-family-medium);\n --form-control-error-colour: var(--color-danger-dark);\n --form-default-color: var(--color-default-light);\n --form-primary-color: var(--color-primary-base);\n --form-success-color: var(--color-success-base);\n\n --error-border: var(--general-border-width) solid var(--color-danger-base);\n --error-border-left: 2px solid var(--color-danger-dark);\n --help-block-color: var(--color-default-base);\n --help-block-font-style: normal;\n --help-block-padding: 0 0 0 var(--form-control-padding-left);\n --error-message-padding: 0 0 0 var(--form-control-padding-left);\n --default-pill-background-color: var(--color-default-base);\n --default-pill-color: white;\n --pill-margin: 0 0 10px 0;\n --default-outline-pill-box-shadow: inset 0 0 0 2px var(--color-default-base);\n --default-outline-pill-color: var(--text-color);\n\n --title-medium-font-size: 16px;\n\n --bottom-buffer-large: var(--spacing-md);\n --bottom-buffer-medium: 10px;\n --bottom-buffer-small: 5px;\n --top-buffer-large: var(--spacing-md);\n --top-buffer-medium: 10px;\n --top-buffer-small: 5px;\n --right-buffer-large: var(--spacing-md);\n --right-buffer-medium: 10px;\n --right-buffer-small: 5px;\n --left-buffer-large: var(--spacing-md);\n --left-buffer-medium: 10px;\n --left-buffer-small: 5px;\n\n --modal-z-index: 1080;\n}\n","/* stylelint-disable number-max-precision */\n\n.container {\n max-inline-size: var(--grid-max-width);\n margin-block: 0;\n margin-inline: auto;\n}\n\n.container,\n.container-fluid {\n padding-block: 0;\n padding-inline: var(--grid-gutter);\n}\n\n.tyk-row {\n display: flex;\n box-sizing: border-box;\n list-style: none;\n flex: 0 1 auto;\n flex-direction: row;\n flex-wrap: wrap;\n margin-inline-start: calc(-1 * var(--grid-gutter));\n inline-size: calc(100% + var(--grid-gutter));\n\n &.no-gutters {\n margin: 0;\n }\n\n &.tyk-row--gutterless {\n margin: 0;\n inline-size: 100%;\n }\n\n &.tyk-row--reverse {\n flex-direction: row-reverse;\n }\n}\n\n.tyk-col {\n max-inline-size: calc(100% - var(--grid-gutter));\n box-sizing: border-box;\n flex: 0 0 auto;\n flex-grow: 1;\n flex-basis: calc(100% - var(--grid-gutter));\n margin-inline-start: var(--grid-gutter);\n inline-size: calc(100% - var(--grid-gutter));\n\n &:last-child {\n margin-inline-end: 0;\n }\n\n .tyk-row--gutterless & {\n margin: 0;\n }\n\n &.tyk-col--reverse {\n flex-direction: column-reverse;\n }\n\n &.tyk-col--align-bottom {\n align-self: flex-end;\n }\n\n &.tyk-col--align-top {\n align-self: flex-start;\n }\n\n &.tyk-col--align-center {\n align-self: center;\n }\n\n &.tyk-col--align-baseline {\n align-self: baseline;\n }\n\n &.tyk-col--align-stretch {\n align-self: stretch;\n }\n}\n\n@media screen and (width >= 1248px) {\n .tyk-col--lg-0 {\n flex-basis: calc(0% - 20px);\n max-inline-size: calc(0% - 20px);\n }\n\n .tyk-col--offset-lg-0 {\n margin-inline-start: 0%;\n }\n\n .tyk-col--lg-1 {\n flex-basis: calc(8.3333333333% - 20px);\n max-inline-size: calc(8.3333333333% - 20px);\n }\n\n .tyk-col--offset-lg-1 {\n margin-inline-start: 8.3333333333%;\n }\n\n .tyk-col--lg-2 {\n flex-basis: calc(16.6666666667% - 20px);\n max-inline-size: calc(16.6666666667% - 20px);\n }\n\n .tyk-col--offset-lg-2 {\n margin-inline-start: 16.6666666667%;\n }\n\n .tyk-col--lg-3 {\n flex-basis: calc(25% - 20px);\n max-inline-size: calc(25% - 20px);\n }\n\n .tyk-col--offset-lg-3 {\n margin-inline-start: 25%;\n }\n\n .tyk-col--lg-4 {\n flex-basis: calc(33.3333333333% - 20px);\n max-inline-size: calc(33.3333333333% - 20px);\n }\n\n .tyk-col--offset-lg-4 {\n margin-inline-start: 33.3333333333%;\n }\n\n .tyk-col--lg-5 {\n flex-basis: calc(41.6666666667% - 20px);\n max-inline-size: calc(41.6666666667% - 20px);\n }\n\n .tyk-col--offset-lg-5 {\n margin-inline-start: 41.6666666667%;\n }\n\n .tyk-col--lg-6 {\n flex-basis: calc(50% - 20px);\n max-inline-size: calc(50% - 20px);\n }\n\n .tyk-col--offset-lg-6 {\n margin-inline-start: 50%;\n }\n\n .tyk-col--lg-7 {\n flex-basis: calc(58.3333333333% - 20px);\n max-inline-size: calc(58.3333333333% - 20px);\n }\n\n .tyk-col--offset-lg-7 {\n margin-inline-start: 58.3333333333%;\n }\n\n .tyk-col--lg-8 {\n flex-basis: calc(66.6666666667% - 20px);\n max-inline-size: calc(66.6666666667% - 20px);\n }\n\n .tyk-col--offset-lg-8 {\n margin-inline-start: 66.6666666667%;\n }\n\n .tyk-col--lg-9 {\n flex-basis: calc(75% - 20px);\n max-inline-size: calc(75% - 20px);\n }\n\n .tyk-col--offset-lg-9 {\n margin-inline-start: 75%;\n }\n\n .tyk-col--lg-10 {\n flex-basis: calc(83.3333333333% - 20px);\n max-inline-size: calc(83.3333333333% - 20px);\n }\n\n .tyk-col--offset-lg-10 {\n margin-inline-start: 83.3333333333%;\n }\n\n .tyk-col--lg-11 {\n flex-basis: calc(91.6666666667% - 20px);\n max-inline-size: calc(91.6666666667% - 20px);\n }\n\n .tyk-col--offset-lg-11 {\n margin-inline-start: 91.6666666667%;\n }\n\n .tyk-col--lg-12 {\n flex-basis: calc(100% - 20px);\n max-inline-size: calc(100% - 20px);\n }\n\n .tyk-col--offset-lg-12 {\n margin-inline-start: 100%;\n }\n}\n\n@media screen and (1024px <= width < 1248px) {\n .tyk-col--md-0 {\n flex-basis: calc(0% - 20px);\n max-inline-size: calc(0% - 20px);\n }\n\n .tyk-col--offset-md-0 {\n margin-inline-start: 0%;\n }\n\n .tyk-col--md-1 {\n flex-basis: calc(8.3333333333% - 20px);\n max-inline-size: calc(8.3333333333% - 20px);\n }\n\n .tyk-col--offset-md-1 {\n margin-inline-start: 8.3333333333%;\n }\n\n .tyk-col--md-2 {\n flex-basis: calc(16.6666666667% - 20px);\n max-inline-size: calc(16.6666666667% - 20px);\n }\n\n .tyk-col--offset-md-2 {\n margin-inline-start: 16.6666666667%;\n }\n\n .tyk-col--md-3 {\n flex-basis: calc(25% - 20px);\n max-inline-size: calc(25% - 20px);\n }\n\n .tyk-col--offset-md-3 {\n margin-inline-start: 25%;\n }\n\n .tyk-col--md-4 {\n flex-basis: calc(33.3333333333% - 20px);\n max-inline-size: calc(33.3333333333% - 20px);\n }\n\n .tyk-col--offset-md-4 {\n margin-inline-start: 33.3333333333%;\n }\n\n .tyk-col--md-5 {\n flex-basis: calc(41.6666666667% - 20px);\n max-inline-size: calc(41.6666666667% - 20px);\n }\n\n .tyk-col--offset-md-5 {\n margin-inline-start: 41.6666666667%;\n }\n\n .tyk-col--md-6 {\n flex-basis: calc(50% - 20px);\n max-inline-size: calc(50% - 20px);\n }\n\n .tyk-col--offset-md-6 {\n margin-inline-start: 50%;\n }\n\n .tyk-col--md-7 {\n flex-basis: calc(58.3333333333% - 20px);\n max-inline-size: calc(58.3333333333% - 20px);\n }\n\n .tyk-col--offset-md-7 {\n margin-inline-start: 58.3333333333%;\n }\n\n .tyk-col--md-8 {\n flex-basis: calc(66.6666666667% - 20px);\n max-inline-size: calc(66.6666666667% - 20px);\n }\n\n .tyk-col--offset-md-8 {\n margin-inline-start: 66.6666666667%;\n }\n\n .tyk-col--md-9 {\n flex-basis: calc(75% - 20px);\n max-inline-size: calc(75% - 20px);\n }\n\n .tyk-col--offset-md-9 {\n margin-inline-start: 75%;\n }\n\n .tyk-col--md-10 {\n flex-basis: calc(83.3333333333% - 20px);\n max-inline-size: calc(83.3333333333% - 20px);\n }\n\n .tyk-col--offset-md-10 {\n margin-inline-start: 83.3333333333%;\n }\n\n .tyk-col--md-11 {\n flex-basis: calc(91.6666666667% - 20px);\n max-inline-size: calc(91.6666666667% - 20px);\n }\n\n .tyk-col--offset-md-11 {\n margin-inline-start: 91.6666666667%;\n }\n\n .tyk-col--md-12 {\n flex-basis: calc(100% - 20px);\n max-inline-size: calc(100% - 20px);\n }\n\n .tyk-col--offset-md-12 {\n margin-inline-start: 100%;\n }\n}\n\n@media screen and (768px < width < 1024px) {\n .tyk-col--sm-0 {\n flex-basis: calc(0% - 20px);\n max-inline-size: calc(0% - 20px);\n }\n\n .tyk-col--offset-sm-0 {\n margin-inline-start: 0%;\n }\n\n .tyk-col--sm-1 {\n flex-basis: calc(8.3333333333% - 20px);\n max-inline-size: calc(8.3333333333% - 20px);\n }\n\n .tyk-col--offset-sm-1 {\n margin-inline-start: 8.3333333333%;\n }\n\n .tyk-col--sm-2 {\n flex-basis: calc(16.6666666667% - 20px);\n max-inline-size: calc(16.6666666667% - 20px);\n }\n\n .tyk-col--offset-sm-2 {\n margin-inline-start: 16.6666666667%;\n }\n\n .tyk-col--sm-3 {\n flex-basis: calc(25% - 20px);\n max-inline-size: calc(25% - 20px);\n }\n\n .tyk-col--offset-sm-3 {\n margin-inline-start: 25%;\n }\n\n .tyk-col--sm-4 {\n flex-basis: calc(33.3333333333% - 20px);\n max-inline-size: calc(33.3333333333% - 20px);\n }\n\n .tyk-col--offset-sm-4 {\n margin-inline-start: 33.3333333333%;\n }\n\n .tyk-col--sm-5 {\n flex-basis: calc(41.6666666667% - 20px);\n max-inline-size: calc(41.6666666667% - 20px);\n }\n\n .tyk-col--offset-sm-5 {\n margin-inline-start: 41.6666666667%;\n }\n\n .tyk-col--sm-6 {\n flex-basis: calc(50% - 20px);\n max-inline-size: calc(50% - 20px);\n }\n\n .tyk-col--offset-sm-6 {\n margin-inline-start: 50%;\n }\n\n .tyk-col--sm-7 {\n flex-basis: calc(58.3333333333% - 20px);\n max-inline-size: calc(58.3333333333% - 20px);\n }\n\n .tyk-col--offset-sm-7 {\n margin-inline-start: 58.3333333333%;\n }\n\n .tyk-col--sm-8 {\n flex-basis: calc(66.6666666667% - 20px);\n max-inline-size: calc(66.6666666667% - 20px);\n }\n\n .tyk-col--offset-sm-8 {\n margin-inline-start: 66.6666666667%;\n }\n\n .tyk-col--sm-9 {\n flex-basis: calc(75% - 20px);\n max-inline-size: calc(75% - 20px);\n }\n\n .tyk-col--offset-sm-9 {\n margin-inline-start: 75%;\n }\n\n .tyk-col--sm-10 {\n flex-basis: calc(83.3333333333% - 20px);\n max-inline-size: calc(83.3333333333% - 20px);\n }\n\n .tyk-col--offset-sm-10 {\n margin-inline-start: 83.3333333333%;\n }\n\n .tyk-col--sm-11 {\n flex-basis: calc(91.6666666667% - 20px);\n max-inline-size: calc(91.6666666667% - 20px);\n }\n\n .tyk-col--offset-sm-11 {\n margin-inline-start: 91.6666666667%;\n }\n\n .tyk-col--sm-12 {\n flex-basis: calc(100% - 20px);\n max-inline-size: calc(100% - 20px);\n }\n\n .tyk-col--offset-sm-12 {\n margin-inline-start: 100%;\n }\n}\n\n@media screen and (width <= 768px) {\n .tyk-col--xs-0 {\n flex-basis: calc(0% - 20px);\n max-inline-size: calc(0% - 20px);\n }\n\n .tyk-col--offset-xs-0 {\n margin-inline-start: 0%;\n }\n\n .tyk-col--xs-1 {\n flex-basis: calc(8.3333333333% - 20px);\n max-inline-size: calc(8.3333333333% - 20px);\n }\n\n .tyk-col--offset-xs-1 {\n margin-inline-start: 8.3333333333%;\n }\n\n .tyk-col--xs-2 {\n flex-basis: calc(16.6666666667% - 20px);\n max-inline-size: calc(16.6666666667% - 20px);\n }\n\n .tyk-col--offset-xs-2 {\n margin-inline-start: 16.6666666667%;\n }\n\n .tyk-col--xs-3 {\n flex-basis: calc(25% - 20px);\n max-inline-size: calc(25% - 20px);\n }\n\n .tyk-col--offset-xs-3 {\n margin-inline-start: 25%;\n }\n\n .tyk-col--xs-4 {\n flex-basis: calc(33.3333333333% - 20px);\n max-inline-size: calc(33.3333333333% - 20px);\n }\n\n .tyk-col--offset-xs-4 {\n margin-inline-start: 33.3333333333%;\n }\n\n .tyk-col--xs-5 {\n flex-basis: calc(41.6666666667% - 20px);\n max-inline-size: calc(41.6666666667% - 20px);\n }\n\n .tyk-col--offset-xs-5 {\n margin-inline-start: 41.6666666667%;\n }\n\n .tyk-col--xs-6 {\n flex-basis: calc(50% - 20px);\n max-inline-size: calc(50% - 20px);\n }\n\n .tyk-col--offset-xs-6 {\n margin-inline-start: 50%;\n }\n\n .tyk-col--xs-7 {\n flex-basis: calc(58.3333333333% - 20px);\n max-inline-size: calc(58.3333333333% - 20px);\n }\n\n .tyk-col--offset-xs-7 {\n margin-inline-start: 58.3333333333%;\n }\n\n .tyk-col--xs-8 {\n flex-basis: calc(66.6666666667% - 20px);\n max-inline-size: calc(66.6666666667% - 20px);\n }\n\n .tyk-col--offset-xs-8 {\n margin-inline-start: 66.6666666667%;\n }\n\n .tyk-col--xs-9 {\n flex-basis: calc(75% - 20px);\n max-inline-size: calc(75% - 20px);\n }\n\n .tyk-col--offset-xs-9 {\n margin-inline-start: 75%;\n }\n\n .tyk-col--xs-10 {\n flex-basis: calc(83.3333333333% - 20px);\n max-inline-size: calc(83.3333333333% - 20px);\n }\n\n .tyk-col--offset-xs-10 {\n margin-inline-start: 83.3333333333%;\n }\n\n .tyk-col--xs-11 {\n flex-basis: calc(91.6666666667% - 20px);\n max-inline-size: calc(91.6666666667% - 20px);\n }\n\n .tyk-col--offset-xs-11 {\n margin-inline-start: 91.6666666667%;\n }\n\n .tyk-col--xs-12 {\n flex-basis: calc(100% - 20px);\n max-inline-size: calc(100% - 20px);\n }\n\n .tyk-col--offset-xs-12 {\n margin-inline-start: 100%;\n }\n}\n","@font-face {\n font-family: Inter-Bold;\n src: url('../fonts/inter/Inter-Bold.woff2') format('woff2'),\n url('../fonts/inter/Inter-Bold.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: Inter-Light;\n src: url('../fonts/inter/Inter-Light.woff2') format('woff2'),\n url('../fonts/inter/Inter-Light.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: Inter-Medium;\n src: url('../fonts/inter/Inter-Medium.woff2') format('woff2'),\n url('../fonts/inter/Inter-Medium.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: Inter-Regular;\n src: url('../fonts/inter/Inter-Regular.woff2') format('woff2'),\n url('../fonts/inter/Inter-Regular.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: Inter-SemiBold;\n src: url('../fonts/inter/Inter-SemiBold.woff2') format('woff2'),\n url('../fonts/inter/Inter-SemiBold.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: OpenSans-Bold;\n src: url('../fonts/OpenSans-Bold.woff2') format('woff2'),\n url('../fonts/OpenSans-Bold.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: OpenSans-SemiBold;\n src: url('../fonts/OpenSans-SemiBold.woff2') format('woff2'),\n url('../fonts/OpenSans-SemiBold.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: OpenSans-Regular;\n src: url('../fonts/OpenSans-Regular.woff2') format('woff2'),\n url('../fonts/OpenSans-Regular.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'smoolthan_bold';\n src: url('../fonts/smoolthan_bold-webfont.woff2') format('woff2'),\n url('../fonts/smoolthan_bold-webfont.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'smoolthan_medium';\n src: url('../fonts/smoolthan_medium-webfont.woff2') format('woff2'),\n url('../fonts/smoolthan_medium-webfont.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'smoolthan_regular';\n src: url('../fonts/smoolthan_regular-webfont.woff2') format('woff2'),\n url('../fonts/smoolthan_regular-webfont.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: tykon;\n src: url('../fonts/tykon.woff2') format('woff2'),\n url('../fonts/tykon.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n","/*!\n * Font Awesome Pro 6.5.2 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license (Commercial License)\n * Copyright 2024 Fonticons, Inc.\n */\n:root, :host {\n --fa-style-family-classic: 'Font Awesome 6 Pro';\n --fa-font-light: normal 300 1em/1 'Font Awesome 6 Pro'; }\n\n@font-face {\n font-family: 'Font Awesome 6 Pro';\n font-style: normal;\n font-weight: 300;\n font-display: block;\n src: url(\"../../fonts/fontawesome/fa-light-300.woff2\") format(\"woff2\"), url(\"../../fonts/fontawesome/fa-light-300.ttf\") format(\"truetype\"); }\n\n.fal,\n.fa-light {\n font-weight: 300; }\n","/*!\n * Font Awesome Pro 6.5.2 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license (Commercial License)\n * Copyright 2024 Fonticons, Inc.\n */\n:root, :host {\n --fa-style-family-classic: 'Font Awesome 6 Pro';\n --fa-font-solid: normal 900 1em/1 'Font Awesome 6 Pro'; }\n\n@font-face {\n font-family: 'Font Awesome 6 Pro';\n font-style: normal;\n font-weight: 900;\n font-display: block;\n src: url(\"../../fonts/fontawesome/fa-solid-900.woff2\") format(\"woff2\"), url(\"../../fonts/fontawesome/fa-solid-900.ttf\") format(\"truetype\"); }\n\n.fas,\n.fa-solid {\n font-weight: 900; }\n","/*!\n * Font Awesome Pro 6.5.2 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license (Commercial License)\n * Copyright 2024 Fonticons, Inc.\n */\n.fa {\n font-family: var(--fa-style-family, \"Font Awesome 6 Pro\");\n font-weight: var(--fa-style, 900); }\n\n.fa,\n.fa-classic,\n.fa-sharp,\n.fas,\n.fa-solid,\n.far,\n.fa-regular,\n.fasr,\n.fal,\n.fa-light,\n.fasl,\n.fat,\n.fa-thin,\n.fast,\n.fad,\n.fa-duotone,\n.fass,\n.fa-sharp-solid,\n.fab,\n.fa-brands {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n display: var(--fa-display, inline-block);\n font-style: normal;\n font-variant: normal;\n line-height: 1;\n text-rendering: auto; }\n\n.fas,\n.fa-classic,\n.fa-solid,\n.far,\n.fa-regular,\n.fal,\n.fa-light,\n.fat,\n.fa-thin {\n font-family: 'Font Awesome 6 Pro'; }\n\n.fab,\n.fa-brands {\n font-family: 'Font Awesome 6 Brands'; }\n\n.fad,\n.fa-classic.fa-duotone,\n.fa-duotone {\n font-family: 'Font Awesome 6 Duotone'; }\n\n.fass,\n.fasr,\n.fasl,\n.fast,\n.fa-sharp {\n font-family: 'Font Awesome 6 Sharp'; }\n\n.fass,\n.fa-sharp {\n font-weight: 900; }\n\n.fa-1x {\n font-size: 1em; }\n\n.fa-2x {\n font-size: 2em; }\n\n.fa-3x {\n font-size: 3em; }\n\n.fa-4x {\n font-size: 4em; }\n\n.fa-5x {\n font-size: 5em; }\n\n.fa-6x {\n font-size: 6em; }\n\n.fa-7x {\n font-size: 7em; }\n\n.fa-8x {\n font-size: 8em; }\n\n.fa-9x {\n font-size: 9em; }\n\n.fa-10x {\n font-size: 10em; }\n\n.fa-2xs {\n font-size: 0.625em;\n line-height: 0.1em;\n vertical-align: 0.225em; }\n\n.fa-xs {\n font-size: 0.75em;\n line-height: 0.08333em;\n vertical-align: 0.125em; }\n\n.fa-sm {\n font-size: 0.875em;\n line-height: 0.07143em;\n vertical-align: 0.05357em; }\n\n.fa-lg {\n font-size: 1.25em;\n line-height: 0.05em;\n vertical-align: -0.075em; }\n\n.fa-xl {\n font-size: 1.5em;\n line-height: 0.04167em;\n vertical-align: -0.125em; }\n\n.fa-2xl {\n font-size: 2em;\n line-height: 0.03125em;\n vertical-align: -0.1875em; }\n\n.fa-fw {\n text-align: center;\n width: 1.25em; }\n\n.fa-ul {\n list-style-type: none;\n margin-left: var(--fa-li-margin, 2.5em);\n padding-left: 0; }\n .fa-ul > li {\n position: relative; }\n\n.fa-li {\n left: calc(var(--fa-li-width, 2em) * -1);\n position: absolute;\n text-align: center;\n width: var(--fa-li-width, 2em);\n line-height: inherit; }\n\n.fa-border {\n border-color: var(--fa-border-color, #eee);\n border-radius: var(--fa-border-radius, 0.1em);\n border-style: var(--fa-border-style, solid);\n border-width: var(--fa-border-width, 0.08em);\n padding: var(--fa-border-padding, 0.2em 0.25em 0.15em); }\n\n.fa-pull-left {\n float: left;\n margin-right: var(--fa-pull-margin, 0.3em); }\n\n.fa-pull-right {\n float: right;\n margin-left: var(--fa-pull-margin, 0.3em); }\n\n.fa-beat {\n -webkit-animation-name: fa-beat;\n animation-name: fa-beat;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\n animation-timing-function: var(--fa-animation-timing, ease-in-out); }\n\n.fa-bounce {\n -webkit-animation-name: fa-bounce;\n animation-name: fa-bounce;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); }\n\n.fa-fade {\n -webkit-animation-name: fa-fade;\n animation-name: fa-fade;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); }\n\n.fa-beat-fade {\n -webkit-animation-name: fa-beat-fade;\n animation-name: fa-beat-fade;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); }\n\n.fa-flip {\n -webkit-animation-name: fa-flip;\n animation-name: fa-flip;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\n animation-timing-function: var(--fa-animation-timing, ease-in-out); }\n\n.fa-shake {\n -webkit-animation-name: fa-shake;\n animation-name: fa-shake;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\n animation-timing-function: var(--fa-animation-timing, linear); }\n\n.fa-spin {\n -webkit-animation-name: fa-spin;\n animation-name: fa-spin;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 2s);\n animation-duration: var(--fa-animation-duration, 2s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\n animation-timing-function: var(--fa-animation-timing, linear); }\n\n.fa-spin-reverse {\n --fa-animation-direction: reverse; }\n\n.fa-pulse,\n.fa-spin-pulse {\n -webkit-animation-name: fa-spin;\n animation-name: fa-spin;\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, steps(8));\n animation-timing-function: var(--fa-animation-timing, steps(8)); }\n\n@media (prefers-reduced-motion: reduce) {\n .fa-beat,\n .fa-bounce,\n .fa-fade,\n .fa-beat-fade,\n .fa-flip,\n .fa-pulse,\n .fa-shake,\n .fa-spin,\n .fa-spin-pulse {\n -webkit-animation-delay: -1ms;\n animation-delay: -1ms;\n -webkit-animation-duration: 1ms;\n animation-duration: 1ms;\n -webkit-animation-iteration-count: 1;\n animation-iteration-count: 1;\n -webkit-transition-delay: 0s;\n transition-delay: 0s;\n -webkit-transition-duration: 0s;\n transition-duration: 0s; } }\n\n@-webkit-keyframes fa-beat {\n 0%, 90% {\n -webkit-transform: scale(1);\n transform: scale(1); }\n 45% {\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\n transform: scale(var(--fa-beat-scale, 1.25)); } }\n\n@keyframes fa-beat {\n 0%, 90% {\n -webkit-transform: scale(1);\n transform: scale(1); }\n 45% {\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\n transform: scale(var(--fa-beat-scale, 1.25)); } }\n\n@-webkit-keyframes fa-bounce {\n 0% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0); }\n 10% {\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); }\n 30% {\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); }\n 50% {\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); }\n 57% {\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); }\n 64% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0); }\n 100% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0); } }\n\n@keyframes fa-bounce {\n 0% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0); }\n 10% {\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); }\n 30% {\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); }\n 50% {\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); }\n 57% {\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); }\n 64% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0); }\n 100% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0); } }\n\n@-webkit-keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4); } }\n\n@keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4); } }\n\n@-webkit-keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n -webkit-transform: scale(1);\n transform: scale(1); }\n 50% {\n opacity: 1;\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\n transform: scale(var(--fa-beat-fade-scale, 1.125)); } }\n\n@keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n -webkit-transform: scale(1);\n transform: scale(1); }\n 50% {\n opacity: 1;\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\n transform: scale(var(--fa-beat-fade-scale, 1.125)); } }\n\n@-webkit-keyframes fa-flip {\n 50% {\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } }\n\n@keyframes fa-flip {\n 50% {\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } }\n\n@-webkit-keyframes fa-shake {\n 0% {\n -webkit-transform: rotate(-15deg);\n transform: rotate(-15deg); }\n 4% {\n -webkit-transform: rotate(15deg);\n transform: rotate(15deg); }\n 8%, 24% {\n -webkit-transform: rotate(-18deg);\n transform: rotate(-18deg); }\n 12%, 28% {\n -webkit-transform: rotate(18deg);\n transform: rotate(18deg); }\n 16% {\n -webkit-transform: rotate(-22deg);\n transform: rotate(-22deg); }\n 20% {\n -webkit-transform: rotate(22deg);\n transform: rotate(22deg); }\n 32% {\n -webkit-transform: rotate(-12deg);\n transform: rotate(-12deg); }\n 36% {\n -webkit-transform: rotate(12deg);\n transform: rotate(12deg); }\n 40%, 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); } }\n\n@keyframes fa-shake {\n 0% {\n -webkit-transform: rotate(-15deg);\n transform: rotate(-15deg); }\n 4% {\n -webkit-transform: rotate(15deg);\n transform: rotate(15deg); }\n 8%, 24% {\n -webkit-transform: rotate(-18deg);\n transform: rotate(-18deg); }\n 12%, 28% {\n -webkit-transform: rotate(18deg);\n transform: rotate(18deg); }\n 16% {\n -webkit-transform: rotate(-22deg);\n transform: rotate(-22deg); }\n 20% {\n -webkit-transform: rotate(22deg);\n transform: rotate(22deg); }\n 32% {\n -webkit-transform: rotate(-12deg);\n transform: rotate(-12deg); }\n 36% {\n -webkit-transform: rotate(12deg);\n transform: rotate(12deg); }\n 40%, 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); } }\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n\n.fa-rotate-90 {\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg); }\n\n.fa-rotate-180 {\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg); }\n\n.fa-rotate-270 {\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg); }\n\n.fa-flip-horizontal {\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1); }\n\n.fa-flip-vertical {\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1); }\n\n.fa-flip-both,\n.fa-flip-horizontal.fa-flip-vertical {\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1); }\n\n.fa-rotate-by {\n -webkit-transform: rotate(var(--fa-rotate-angle, 0));\n transform: rotate(var(--fa-rotate-angle, 0)); }\n\n.fa-stack {\n display: inline-block;\n height: 2em;\n line-height: 2em;\n position: relative;\n vertical-align: middle;\n width: 2.5em; }\n\n.fa-stack-1x,\n.fa-stack-2x {\n left: 0;\n position: absolute;\n text-align: center;\n width: 100%;\n z-index: var(--fa-stack-z-index, auto); }\n\n.fa-stack-1x {\n line-height: inherit; }\n\n.fa-stack-2x {\n font-size: 2em; }\n\n.fa-inverse {\n color: var(--fa-inverse, #fff); }\n\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\nreaders do not read off random characters that represent icons */\n\n.fa-0::before {\n content: \"\\30\"; }\n\n.fa-1::before {\n content: \"\\31\"; }\n\n.fa-2::before {\n content: \"\\32\"; }\n\n.fa-3::before {\n content: \"\\33\"; }\n\n.fa-4::before {\n content: \"\\34\"; }\n\n.fa-5::before {\n content: \"\\35\"; }\n\n.fa-6::before {\n content: \"\\36\"; }\n\n.fa-7::before {\n content: \"\\37\"; }\n\n.fa-8::before {\n content: \"\\38\"; }\n\n.fa-9::before {\n content: \"\\39\"; }\n\n.fa-fill-drip::before {\n content: \"\\f576\"; }\n\n.fa-arrows-to-circle::before {\n content: \"\\e4bd\"; }\n\n.fa-circle-chevron-right::before {\n content: \"\\f138\"; }\n\n.fa-chevron-circle-right::before {\n content: \"\\f138\"; }\n\n.fa-wagon-covered::before {\n content: \"\\f8ee\"; }\n\n.fa-line-height::before {\n content: \"\\f871\"; }\n\n.fa-bagel::before {\n content: \"\\e3d7\"; }\n\n.fa-transporter-7::before {\n content: \"\\e2a8\"; }\n\n.fa-at::before {\n content: \"\\40\"; }\n\n.fa-rectangles-mixed::before {\n content: \"\\e323\"; }\n\n.fa-phone-arrow-up-right::before {\n content: \"\\e224\"; }\n\n.fa-phone-arrow-up::before {\n content: \"\\e224\"; }\n\n.fa-phone-outgoing::before {\n content: \"\\e224\"; }\n\n.fa-trash-can::before {\n content: \"\\f2ed\"; }\n\n.fa-trash-alt::before {\n content: \"\\f2ed\"; }\n\n.fa-circle-l::before {\n content: \"\\e114\"; }\n\n.fa-head-side-goggles::before {\n content: \"\\f6ea\"; }\n\n.fa-head-vr::before {\n content: \"\\f6ea\"; }\n\n.fa-text-height::before {\n content: \"\\f034\"; }\n\n.fa-user-xmark::before {\n content: \"\\f235\"; }\n\n.fa-user-times::before {\n content: \"\\f235\"; }\n\n.fa-face-hand-yawn::before {\n content: \"\\e379\"; }\n\n.fa-gauge-simple-min::before {\n content: \"\\f62d\"; }\n\n.fa-tachometer-slowest::before {\n content: \"\\f62d\"; }\n\n.fa-stethoscope::before {\n content: \"\\f0f1\"; }\n\n.fa-coffin::before {\n content: \"\\f6c6\"; }\n\n.fa-message::before {\n content: \"\\f27a\"; }\n\n.fa-comment-alt::before {\n content: \"\\f27a\"; }\n\n.fa-salad::before {\n content: \"\\f81e\"; }\n\n.fa-bowl-salad::before {\n content: \"\\f81e\"; }\n\n.fa-info::before {\n content: \"\\f129\"; }\n\n.fa-robot-astromech::before {\n content: \"\\e2d2\"; }\n\n.fa-ring-diamond::before {\n content: \"\\e5ab\"; }\n\n.fa-fondue-pot::before {\n content: \"\\e40d\"; }\n\n.fa-theta::before {\n content: \"\\f69e\"; }\n\n.fa-face-hand-peeking::before {\n content: \"\\e481\"; }\n\n.fa-square-user::before {\n content: \"\\e283\"; }\n\n.fa-down-left-and-up-right-to-center::before {\n content: \"\\f422\"; }\n\n.fa-compress-alt::before {\n content: \"\\f422\"; }\n\n.fa-explosion::before {\n content: \"\\e4e9\"; }\n\n.fa-file-lines::before {\n content: \"\\f15c\"; }\n\n.fa-file-alt::before {\n content: \"\\f15c\"; }\n\n.fa-file-text::before {\n content: \"\\f15c\"; }\n\n.fa-wave-square::before {\n content: \"\\f83e\"; }\n\n.fa-ring::before {\n content: \"\\f70b\"; }\n\n.fa-building-un::before {\n content: \"\\e4d9\"; }\n\n.fa-dice-three::before {\n content: \"\\f527\"; }\n\n.fa-tire-pressure-warning::before {\n content: \"\\f633\"; }\n\n.fa-wifi-fair::before {\n content: \"\\f6ab\"; }\n\n.fa-wifi-2::before {\n content: \"\\f6ab\"; }\n\n.fa-calendar-days::before {\n content: \"\\f073\"; }\n\n.fa-calendar-alt::before {\n content: \"\\f073\"; }\n\n.fa-mp3-player::before {\n content: \"\\f8ce\"; }\n\n.fa-anchor-circle-check::before {\n content: \"\\e4aa\"; }\n\n.fa-tally-4::before {\n content: \"\\e297\"; }\n\n.fa-rectangle-history::before {\n content: \"\\e4a2\"; }\n\n.fa-building-circle-arrow-right::before {\n content: \"\\e4d1\"; }\n\n.fa-volleyball::before {\n content: \"\\f45f\"; }\n\n.fa-volleyball-ball::before {\n content: \"\\f45f\"; }\n\n.fa-sun-haze::before {\n content: \"\\f765\"; }\n\n.fa-text-size::before {\n content: \"\\f894\"; }\n\n.fa-ufo::before {\n content: \"\\e047\"; }\n\n.fa-fork::before {\n content: \"\\f2e3\"; }\n\n.fa-utensil-fork::before {\n content: \"\\f2e3\"; }\n\n.fa-arrows-up-to-line::before {\n content: \"\\e4c2\"; }\n\n.fa-mobile-signal::before {\n content: \"\\e1ef\"; }\n\n.fa-barcode-scan::before {\n content: \"\\f465\"; }\n\n.fa-sort-down::before {\n content: \"\\f0dd\"; }\n\n.fa-sort-desc::before {\n content: \"\\f0dd\"; }\n\n.fa-folder-arrow-down::before {\n content: \"\\e053\"; }\n\n.fa-folder-download::before {\n content: \"\\e053\"; }\n\n.fa-circle-minus::before {\n content: \"\\f056\"; }\n\n.fa-minus-circle::before {\n content: \"\\f056\"; }\n\n.fa-face-icicles::before {\n content: \"\\e37c\"; }\n\n.fa-shovel::before {\n content: \"\\f713\"; }\n\n.fa-door-open::before {\n content: \"\\f52b\"; }\n\n.fa-films::before {\n content: \"\\e17a\"; }\n\n.fa-right-from-bracket::before {\n content: \"\\f2f5\"; }\n\n.fa-sign-out-alt::before {\n content: \"\\f2f5\"; }\n\n.fa-face-glasses::before {\n content: \"\\e377\"; }\n\n.fa-nfc::before {\n content: \"\\e1f7\"; }\n\n.fa-atom::before {\n content: \"\\f5d2\"; }\n\n.fa-soap::before {\n content: \"\\e06e\"; }\n\n.fa-icons::before {\n content: \"\\f86d\"; }\n\n.fa-heart-music-camera-bolt::before {\n content: \"\\f86d\"; }\n\n.fa-microphone-lines-slash::before {\n content: \"\\f539\"; }\n\n.fa-microphone-alt-slash::before {\n content: \"\\f539\"; }\n\n.fa-closed-captioning-slash::before {\n content: \"\\e135\"; }\n\n.fa-calculator-simple::before {\n content: \"\\f64c\"; }\n\n.fa-calculator-alt::before {\n content: \"\\f64c\"; }\n\n.fa-bridge-circle-check::before {\n content: \"\\e4c9\"; }\n\n.fa-sliders-up::before {\n content: \"\\f3f1\"; }\n\n.fa-sliders-v::before {\n content: \"\\f3f1\"; }\n\n.fa-location-minus::before {\n content: \"\\f609\"; }\n\n.fa-map-marker-minus::before {\n content: \"\\f609\"; }\n\n.fa-pump-medical::before {\n content: \"\\e06a\"; }\n\n.fa-fingerprint::before {\n content: \"\\f577\"; }\n\n.fa-ski-boot::before {\n content: \"\\e3cc\"; }\n\n.fa-standard-definition::before {\n content: \"\\e28a\"; }\n\n.fa-rectangle-sd::before {\n content: \"\\e28a\"; }\n\n.fa-h1::before {\n content: \"\\f313\"; }\n\n.fa-hand-point-right::before {\n content: \"\\f0a4\"; }\n\n.fa-magnifying-glass-location::before {\n content: \"\\f689\"; }\n\n.fa-search-location::before {\n content: \"\\f689\"; }\n\n.fa-message-bot::before {\n content: \"\\e3b8\"; }\n\n.fa-forward-step::before {\n content: \"\\f051\"; }\n\n.fa-step-forward::before {\n content: \"\\f051\"; }\n\n.fa-face-smile-beam::before {\n content: \"\\f5b8\"; }\n\n.fa-smile-beam::before {\n content: \"\\f5b8\"; }\n\n.fa-light-ceiling::before {\n content: \"\\e016\"; }\n\n.fa-message-exclamation::before {\n content: \"\\f4a5\"; }\n\n.fa-comment-alt-exclamation::before {\n content: \"\\f4a5\"; }\n\n.fa-bowl-scoop::before {\n content: \"\\e3de\"; }\n\n.fa-bowl-shaved-ice::before {\n content: \"\\e3de\"; }\n\n.fa-square-x::before {\n content: \"\\e286\"; }\n\n.fa-building-memo::before {\n content: \"\\e61e\"; }\n\n.fa-utility-pole-double::before {\n content: \"\\e2c4\"; }\n\n.fa-flag-checkered::before {\n content: \"\\f11e\"; }\n\n.fa-chevrons-up::before {\n content: \"\\f325\"; }\n\n.fa-chevron-double-up::before {\n content: \"\\f325\"; }\n\n.fa-football::before {\n content: \"\\f44e\"; }\n\n.fa-football-ball::before {\n content: \"\\f44e\"; }\n\n.fa-user-vneck::before {\n content: \"\\e461\"; }\n\n.fa-school-circle-exclamation::before {\n content: \"\\e56c\"; }\n\n.fa-crop::before {\n content: \"\\f125\"; }\n\n.fa-angles-down::before {\n content: \"\\f103\"; }\n\n.fa-angle-double-down::before {\n content: \"\\f103\"; }\n\n.fa-users-rectangle::before {\n content: \"\\e594\"; }\n\n.fa-people-roof::before {\n content: \"\\e537\"; }\n\n.fa-square-arrow-right::before {\n content: \"\\f33b\"; }\n\n.fa-arrow-square-right::before {\n content: \"\\f33b\"; }\n\n.fa-location-plus::before {\n content: \"\\f60a\"; }\n\n.fa-map-marker-plus::before {\n content: \"\\f60a\"; }\n\n.fa-lightbulb-exclamation-on::before {\n content: \"\\e1ca\"; }\n\n.fa-people-line::before {\n content: \"\\e534\"; }\n\n.fa-beer-mug-empty::before {\n content: \"\\f0fc\"; }\n\n.fa-beer::before {\n content: \"\\f0fc\"; }\n\n.fa-crate-empty::before {\n content: \"\\e151\"; }\n\n.fa-diagram-predecessor::before {\n content: \"\\e477\"; }\n\n.fa-transporter::before {\n content: \"\\e042\"; }\n\n.fa-calendar-circle-user::before {\n content: \"\\e471\"; }\n\n.fa-arrow-up-long::before {\n content: \"\\f176\"; }\n\n.fa-long-arrow-up::before {\n content: \"\\f176\"; }\n\n.fa-person-carry-box::before {\n content: \"\\f4cf\"; }\n\n.fa-person-carry::before {\n content: \"\\f4cf\"; }\n\n.fa-fire-flame-simple::before {\n content: \"\\f46a\"; }\n\n.fa-burn::before {\n content: \"\\f46a\"; }\n\n.fa-person::before {\n content: \"\\f183\"; }\n\n.fa-male::before {\n content: \"\\f183\"; }\n\n.fa-laptop::before {\n content: \"\\f109\"; }\n\n.fa-file-csv::before {\n content: \"\\f6dd\"; }\n\n.fa-menorah::before {\n content: \"\\f676\"; }\n\n.fa-union::before {\n content: \"\\f6a2\"; }\n\n.fa-chevrons-left::before {\n content: \"\\f323\"; }\n\n.fa-chevron-double-left::before {\n content: \"\\f323\"; }\n\n.fa-circle-heart::before {\n content: \"\\f4c7\"; }\n\n.fa-heart-circle::before {\n content: \"\\f4c7\"; }\n\n.fa-truck-plane::before {\n content: \"\\e58f\"; }\n\n.fa-record-vinyl::before {\n content: \"\\f8d9\"; }\n\n.fa-bring-forward::before {\n content: \"\\f856\"; }\n\n.fa-square-p::before {\n content: \"\\e279\"; }\n\n.fa-face-grin-stars::before {\n content: \"\\f587\"; }\n\n.fa-grin-stars::before {\n content: \"\\f587\"; }\n\n.fa-sigma::before {\n content: \"\\f68b\"; }\n\n.fa-camera-movie::before {\n content: \"\\f8a9\"; }\n\n.fa-bong::before {\n content: \"\\f55c\"; }\n\n.fa-clarinet::before {\n content: \"\\f8ad\"; }\n\n.fa-truck-flatbed::before {\n content: \"\\e2b6\"; }\n\n.fa-spaghetti-monster-flying::before {\n content: \"\\f67b\"; }\n\n.fa-pastafarianism::before {\n content: \"\\f67b\"; }\n\n.fa-arrow-down-up-across-line::before {\n content: \"\\e4af\"; }\n\n.fa-arrows-rotate-reverse::before {\n content: \"\\e630\"; }\n\n.fa-leaf-heart::before {\n content: \"\\f4cb\"; }\n\n.fa-house-building::before {\n content: \"\\e1b1\"; }\n\n.fa-cheese-swiss::before {\n content: \"\\f7f0\"; }\n\n.fa-spoon::before {\n content: \"\\f2e5\"; }\n\n.fa-utensil-spoon::before {\n content: \"\\f2e5\"; }\n\n.fa-jar-wheat::before {\n content: \"\\e517\"; }\n\n.fa-envelopes-bulk::before {\n content: \"\\f674\"; }\n\n.fa-mail-bulk::before {\n content: \"\\f674\"; }\n\n.fa-file-circle-exclamation::before {\n content: \"\\e4eb\"; }\n\n.fa-bow-arrow::before {\n content: \"\\f6b9\"; }\n\n.fa-cart-xmark::before {\n content: \"\\e0dd\"; }\n\n.fa-hexagon-xmark::before {\n content: \"\\f2ee\"; }\n\n.fa-times-hexagon::before {\n content: \"\\f2ee\"; }\n\n.fa-xmark-hexagon::before {\n content: \"\\f2ee\"; }\n\n.fa-circle-h::before {\n content: \"\\f47e\"; }\n\n.fa-hospital-symbol::before {\n content: \"\\f47e\"; }\n\n.fa-merge::before {\n content: \"\\e526\"; }\n\n.fa-pager::before {\n content: \"\\f815\"; }\n\n.fa-cart-minus::before {\n content: \"\\e0db\"; }\n\n.fa-address-book::before {\n content: \"\\f2b9\"; }\n\n.fa-contact-book::before {\n content: \"\\f2b9\"; }\n\n.fa-pan-frying::before {\n content: \"\\e42c\"; }\n\n.fa-grid::before {\n content: \"\\e195\"; }\n\n.fa-grid-3::before {\n content: \"\\e195\"; }\n\n.fa-football-helmet::before {\n content: \"\\f44f\"; }\n\n.fa-hand-love::before {\n content: \"\\e1a5\"; }\n\n.fa-trees::before {\n content: \"\\f724\"; }\n\n.fa-strikethrough::before {\n content: \"\\f0cc\"; }\n\n.fa-page::before {\n content: \"\\e428\"; }\n\n.fa-k::before {\n content: \"\\4b\"; }\n\n.fa-diagram-previous::before {\n content: \"\\e478\"; }\n\n.fa-gauge-min::before {\n content: \"\\f628\"; }\n\n.fa-tachometer-alt-slowest::before {\n content: \"\\f628\"; }\n\n.fa-folder-grid::before {\n content: \"\\e188\"; }\n\n.fa-eggplant::before {\n content: \"\\e16c\"; }\n\n.fa-excavator::before {\n content: \"\\e656\"; }\n\n.fa-ram::before {\n content: \"\\f70a\"; }\n\n.fa-landmark-flag::before {\n content: \"\\e51c\"; }\n\n.fa-lips::before {\n content: \"\\f600\"; }\n\n.fa-pencil::before {\n content: \"\\f303\"; }\n\n.fa-pencil-alt::before {\n content: \"\\f303\"; }\n\n.fa-backward::before {\n content: \"\\f04a\"; }\n\n.fa-caret-right::before {\n content: \"\\f0da\"; }\n\n.fa-comments::before {\n content: \"\\f086\"; }\n\n.fa-paste::before {\n content: \"\\f0ea\"; }\n\n.fa-file-clipboard::before {\n content: \"\\f0ea\"; }\n\n.fa-desktop-arrow-down::before {\n content: \"\\e155\"; }\n\n.fa-code-pull-request::before {\n content: \"\\e13c\"; }\n\n.fa-pumpkin::before {\n content: \"\\f707\"; }\n\n.fa-clipboard-list::before {\n content: \"\\f46d\"; }\n\n.fa-pen-field::before {\n content: \"\\e211\"; }\n\n.fa-blueberries::before {\n content: \"\\e2e8\"; }\n\n.fa-truck-ramp-box::before {\n content: \"\\f4de\"; }\n\n.fa-truck-loading::before {\n content: \"\\f4de\"; }\n\n.fa-note::before {\n content: \"\\e1ff\"; }\n\n.fa-arrow-down-to-square::before {\n content: \"\\e096\"; }\n\n.fa-user-check::before {\n content: \"\\f4fc\"; }\n\n.fa-cloud-xmark::before {\n content: \"\\e35f\"; }\n\n.fa-vial-virus::before {\n content: \"\\e597\"; }\n\n.fa-book-blank::before {\n content: \"\\f5d9\"; }\n\n.fa-book-alt::before {\n content: \"\\f5d9\"; }\n\n.fa-golf-flag-hole::before {\n content: \"\\e3ac\"; }\n\n.fa-message-arrow-down::before {\n content: \"\\e1db\"; }\n\n.fa-comment-alt-arrow-down::before {\n content: \"\\e1db\"; }\n\n.fa-face-unamused::before {\n content: \"\\e39f\"; }\n\n.fa-sheet-plastic::before {\n content: \"\\e571\"; }\n\n.fa-circle-9::before {\n content: \"\\e0f6\"; }\n\n.fa-blog::before {\n content: \"\\f781\"; }\n\n.fa-user-ninja::before {\n content: \"\\f504\"; }\n\n.fa-pencil-slash::before {\n content: \"\\e215\"; }\n\n.fa-bowling-pins::before {\n content: \"\\f437\"; }\n\n.fa-person-arrow-up-from-line::before {\n content: \"\\e539\"; }\n\n.fa-down-right::before {\n content: \"\\e16b\"; }\n\n.fa-scroll-torah::before {\n content: \"\\f6a0\"; }\n\n.fa-torah::before {\n content: \"\\f6a0\"; }\n\n.fa-webhook::before {\n content: \"\\e5d5\"; }\n\n.fa-blinds-open::before {\n content: \"\\f8fc\"; }\n\n.fa-fence::before {\n content: \"\\e303\"; }\n\n.fa-up::before {\n content: \"\\f357\"; }\n\n.fa-arrow-alt-up::before {\n content: \"\\f357\"; }\n\n.fa-broom-ball::before {\n content: \"\\f458\"; }\n\n.fa-quidditch::before {\n content: \"\\f458\"; }\n\n.fa-quidditch-broom-ball::before {\n content: \"\\f458\"; }\n\n.fa-drumstick::before {\n content: \"\\f6d6\"; }\n\n.fa-square-v::before {\n content: \"\\e284\"; }\n\n.fa-face-awesome::before {\n content: \"\\e409\"; }\n\n.fa-gave-dandy::before {\n content: \"\\e409\"; }\n\n.fa-dial-off::before {\n content: \"\\e162\"; }\n\n.fa-toggle-off::before {\n content: \"\\f204\"; }\n\n.fa-face-smile-horns::before {\n content: \"\\e391\"; }\n\n.fa-box-archive::before {\n content: \"\\f187\"; }\n\n.fa-archive::before {\n content: \"\\f187\"; }\n\n.fa-grapes::before {\n content: \"\\e306\"; }\n\n.fa-person-drowning::before {\n content: \"\\e545\"; }\n\n.fa-dial-max::before {\n content: \"\\e15e\"; }\n\n.fa-circle-m::before {\n content: \"\\e115\"; }\n\n.fa-calendar-image::before {\n content: \"\\e0d4\"; }\n\n.fa-circle-caret-down::before {\n content: \"\\f32d\"; }\n\n.fa-caret-circle-down::before {\n content: \"\\f32d\"; }\n\n.fa-arrow-down-9-1::before {\n content: \"\\f886\"; }\n\n.fa-sort-numeric-desc::before {\n content: \"\\f886\"; }\n\n.fa-sort-numeric-down-alt::before {\n content: \"\\f886\"; }\n\n.fa-face-grin-tongue-squint::before {\n content: \"\\f58a\"; }\n\n.fa-grin-tongue-squint::before {\n content: \"\\f58a\"; }\n\n.fa-shish-kebab::before {\n content: \"\\f821\"; }\n\n.fa-spray-can::before {\n content: \"\\f5bd\"; }\n\n.fa-alarm-snooze::before {\n content: \"\\f845\"; }\n\n.fa-scarecrow::before {\n content: \"\\f70d\"; }\n\n.fa-truck-monster::before {\n content: \"\\f63b\"; }\n\n.fa-gift-card::before {\n content: \"\\f663\"; }\n\n.fa-w::before {\n content: \"\\57\"; }\n\n.fa-code-pull-request-draft::before {\n content: \"\\e3fa\"; }\n\n.fa-square-b::before {\n content: \"\\e264\"; }\n\n.fa-elephant::before {\n content: \"\\f6da\"; }\n\n.fa-earth-africa::before {\n content: \"\\f57c\"; }\n\n.fa-globe-africa::before {\n content: \"\\f57c\"; }\n\n.fa-rainbow::before {\n content: \"\\f75b\"; }\n\n.fa-circle-notch::before {\n content: \"\\f1ce\"; }\n\n.fa-tablet-screen-button::before {\n content: \"\\f3fa\"; }\n\n.fa-tablet-alt::before {\n content: \"\\f3fa\"; }\n\n.fa-paw::before {\n content: \"\\f1b0\"; }\n\n.fa-message-question::before {\n content: \"\\e1e3\"; }\n\n.fa-cloud::before {\n content: \"\\f0c2\"; }\n\n.fa-trowel-bricks::before {\n content: \"\\e58a\"; }\n\n.fa-square-3::before {\n content: \"\\e258\"; }\n\n.fa-face-flushed::before {\n content: \"\\f579\"; }\n\n.fa-flushed::before {\n content: \"\\f579\"; }\n\n.fa-hospital-user::before {\n content: \"\\f80d\"; }\n\n.fa-microwave::before {\n content: \"\\e01b\"; }\n\n.fa-chf-sign::before {\n content: \"\\e602\"; }\n\n.fa-tent-arrow-left-right::before {\n content: \"\\e57f\"; }\n\n.fa-cart-circle-arrow-up::before {\n content: \"\\e3f0\"; }\n\n.fa-trash-clock::before {\n content: \"\\e2b0\"; }\n\n.fa-reflect-both::before {\n content: \"\\e66f\"; }\n\n.fa-gavel::before {\n content: \"\\f0e3\"; }\n\n.fa-legal::before {\n content: \"\\f0e3\"; }\n\n.fa-sprinkler-ceiling::before {\n content: \"\\e44c\"; }\n\n.fa-browsers::before {\n content: \"\\e0cb\"; }\n\n.fa-trillium::before {\n content: \"\\e588\"; }\n\n.fa-music-slash::before {\n content: \"\\f8d1\"; }\n\n.fa-truck-ramp::before {\n content: \"\\f4e0\"; }\n\n.fa-binoculars::before {\n content: \"\\f1e5\"; }\n\n.fa-microphone-slash::before {\n content: \"\\f131\"; }\n\n.fa-box-tissue::before {\n content: \"\\e05b\"; }\n\n.fa-circle-c::before {\n content: \"\\e101\"; }\n\n.fa-star-christmas::before {\n content: \"\\f7d4\"; }\n\n.fa-chart-bullet::before {\n content: \"\\e0e1\"; }\n\n.fa-motorcycle::before {\n content: \"\\f21c\"; }\n\n.fa-tree-christmas::before {\n content: \"\\f7db\"; }\n\n.fa-tire-flat::before {\n content: \"\\f632\"; }\n\n.fa-sunglasses::before {\n content: \"\\f892\"; }\n\n.fa-badge::before {\n content: \"\\f335\"; }\n\n.fa-message-pen::before {\n content: \"\\f4a4\"; }\n\n.fa-comment-alt-edit::before {\n content: \"\\f4a4\"; }\n\n.fa-message-edit::before {\n content: \"\\f4a4\"; }\n\n.fa-bell-concierge::before {\n content: \"\\f562\"; }\n\n.fa-concierge-bell::before {\n content: \"\\f562\"; }\n\n.fa-pen-ruler::before {\n content: \"\\f5ae\"; }\n\n.fa-pencil-ruler::before {\n content: \"\\f5ae\"; }\n\n.fa-file-mp3::before {\n content: \"\\e648\"; }\n\n.fa-arrow-progress::before {\n content: \"\\e5df\"; }\n\n.fa-chess-rook-piece::before {\n content: \"\\f448\"; }\n\n.fa-chess-rook-alt::before {\n content: \"\\f448\"; }\n\n.fa-square-root::before {\n content: \"\\f697\"; }\n\n.fa-album-collection-circle-plus::before {\n content: \"\\e48e\"; }\n\n.fa-people-arrows::before {\n content: \"\\e068\"; }\n\n.fa-people-arrows-left-right::before {\n content: \"\\e068\"; }\n\n.fa-sign-post::before {\n content: \"\\e624\"; }\n\n.fa-face-angry-horns::before {\n content: \"\\e368\"; }\n\n.fa-mars-and-venus-burst::before {\n content: \"\\e523\"; }\n\n.fa-tombstone::before {\n content: \"\\f720\"; }\n\n.fa-square-caret-right::before {\n content: \"\\f152\"; }\n\n.fa-caret-square-right::before {\n content: \"\\f152\"; }\n\n.fa-scissors::before {\n content: \"\\f0c4\"; }\n\n.fa-cut::before {\n content: \"\\f0c4\"; }\n\n.fa-list-music::before {\n content: \"\\f8c9\"; }\n\n.fa-sun-plant-wilt::before {\n content: \"\\e57a\"; }\n\n.fa-toilets-portable::before {\n content: \"\\e584\"; }\n\n.fa-hockey-puck::before {\n content: \"\\f453\"; }\n\n.fa-mustache::before {\n content: \"\\e5bc\"; }\n\n.fa-hyphen::before {\n content: \"\\2d\"; }\n\n.fa-table::before {\n content: \"\\f0ce\"; }\n\n.fa-user-chef::before {\n content: \"\\e3d2\"; }\n\n.fa-message-image::before {\n content: \"\\e1e0\"; }\n\n.fa-comment-alt-image::before {\n content: \"\\e1e0\"; }\n\n.fa-users-medical::before {\n content: \"\\f830\"; }\n\n.fa-sensor-triangle-exclamation::before {\n content: \"\\e029\"; }\n\n.fa-sensor-alert::before {\n content: \"\\e029\"; }\n\n.fa-magnifying-glass-arrow-right::before {\n content: \"\\e521\"; }\n\n.fa-tachograph-digital::before {\n content: \"\\f566\"; }\n\n.fa-digital-tachograph::before {\n content: \"\\f566\"; }\n\n.fa-face-mask::before {\n content: \"\\e37f\"; }\n\n.fa-pickleball::before {\n content: \"\\e435\"; }\n\n.fa-star-sharp-half::before {\n content: \"\\e28c\"; }\n\n.fa-users-slash::before {\n content: \"\\e073\"; }\n\n.fa-clover::before {\n content: \"\\e139\"; }\n\n.fa-meat::before {\n content: \"\\f814\"; }\n\n.fa-reply::before {\n content: \"\\f3e5\"; }\n\n.fa-mail-reply::before {\n content: \"\\f3e5\"; }\n\n.fa-star-and-crescent::before {\n content: \"\\f699\"; }\n\n.fa-empty-set::before {\n content: \"\\f656\"; }\n\n.fa-house-fire::before {\n content: \"\\e50c\"; }\n\n.fa-square-minus::before {\n content: \"\\f146\"; }\n\n.fa-minus-square::before {\n content: \"\\f146\"; }\n\n.fa-helicopter::before {\n content: \"\\f533\"; }\n\n.fa-bird::before {\n content: \"\\e469\"; }\n\n.fa-compass::before {\n content: \"\\f14e\"; }\n\n.fa-square-caret-down::before {\n content: \"\\f150\"; }\n\n.fa-caret-square-down::before {\n content: \"\\f150\"; }\n\n.fa-heart-half-stroke::before {\n content: \"\\e1ac\"; }\n\n.fa-heart-half-alt::before {\n content: \"\\e1ac\"; }\n\n.fa-file-circle-question::before {\n content: \"\\e4ef\"; }\n\n.fa-truck-utensils::before {\n content: \"\\e628\"; }\n\n.fa-laptop-code::before {\n content: \"\\f5fc\"; }\n\n.fa-joystick::before {\n content: \"\\f8c5\"; }\n\n.fa-grill-fire::before {\n content: \"\\e5a4\"; }\n\n.fa-rectangle-vertical-history::before {\n content: \"\\e237\"; }\n\n.fa-swatchbook::before {\n content: \"\\f5c3\"; }\n\n.fa-prescription-bottle::before {\n content: \"\\f485\"; }\n\n.fa-bars::before {\n content: \"\\f0c9\"; }\n\n.fa-navicon::before {\n content: \"\\f0c9\"; }\n\n.fa-keyboard-left::before {\n content: \"\\e1c3\"; }\n\n.fa-people-group::before {\n content: \"\\e533\"; }\n\n.fa-hourglass-end::before {\n content: \"\\f253\"; }\n\n.fa-hourglass-3::before {\n content: \"\\f253\"; }\n\n.fa-heart-crack::before {\n content: \"\\f7a9\"; }\n\n.fa-heart-broken::before {\n content: \"\\f7a9\"; }\n\n.fa-face-beam-hand-over-mouth::before {\n content: \"\\e47c\"; }\n\n.fa-droplet-percent::before {\n content: \"\\f750\"; }\n\n.fa-humidity::before {\n content: \"\\f750\"; }\n\n.fa-square-up-right::before {\n content: \"\\f360\"; }\n\n.fa-external-link-square-alt::before {\n content: \"\\f360\"; }\n\n.fa-face-kiss-beam::before {\n content: \"\\f597\"; }\n\n.fa-kiss-beam::before {\n content: \"\\f597\"; }\n\n.fa-corn::before {\n content: \"\\f6c7\"; }\n\n.fa-roller-coaster::before {\n content: \"\\e324\"; }\n\n.fa-photo-film-music::before {\n content: \"\\e228\"; }\n\n.fa-radar::before {\n content: \"\\e024\"; }\n\n.fa-sickle::before {\n content: \"\\f822\"; }\n\n.fa-film::before {\n content: \"\\f008\"; }\n\n.fa-coconut::before {\n content: \"\\e2f6\"; }\n\n.fa-ruler-horizontal::before {\n content: \"\\f547\"; }\n\n.fa-shield-cross::before {\n content: \"\\f712\"; }\n\n.fa-cassette-tape::before {\n content: \"\\f8ab\"; }\n\n.fa-square-terminal::before {\n content: \"\\e32a\"; }\n\n.fa-people-robbery::before {\n content: \"\\e536\"; }\n\n.fa-lightbulb::before {\n content: \"\\f0eb\"; }\n\n.fa-caret-left::before {\n content: \"\\f0d9\"; }\n\n.fa-comment-middle::before {\n content: \"\\e149\"; }\n\n.fa-trash-can-list::before {\n content: \"\\e2ab\"; }\n\n.fa-block::before {\n content: \"\\e46a\"; }\n\n.fa-circle-exclamation::before {\n content: \"\\f06a\"; }\n\n.fa-exclamation-circle::before {\n content: \"\\f06a\"; }\n\n.fa-school-circle-xmark::before {\n content: \"\\e56d\"; }\n\n.fa-arrow-right-from-bracket::before {\n content: \"\\f08b\"; }\n\n.fa-sign-out::before {\n content: \"\\f08b\"; }\n\n.fa-face-frown-slight::before {\n content: \"\\e376\"; }\n\n.fa-circle-chevron-down::before {\n content: \"\\f13a\"; }\n\n.fa-chevron-circle-down::before {\n content: \"\\f13a\"; }\n\n.fa-sidebar-flip::before {\n content: \"\\e24f\"; }\n\n.fa-unlock-keyhole::before {\n content: \"\\f13e\"; }\n\n.fa-unlock-alt::before {\n content: \"\\f13e\"; }\n\n.fa-temperature-list::before {\n content: \"\\e299\"; }\n\n.fa-cloud-showers-heavy::before {\n content: \"\\f740\"; }\n\n.fa-headphones-simple::before {\n content: \"\\f58f\"; }\n\n.fa-headphones-alt::before {\n content: \"\\f58f\"; }\n\n.fa-sitemap::before {\n content: \"\\f0e8\"; }\n\n.fa-pipe-section::before {\n content: \"\\e438\"; }\n\n.fa-space-station-moon-construction::before {\n content: \"\\e034\"; }\n\n.fa-space-station-moon-alt::before {\n content: \"\\e034\"; }\n\n.fa-circle-dollar-to-slot::before {\n content: \"\\f4b9\"; }\n\n.fa-donate::before {\n content: \"\\f4b9\"; }\n\n.fa-memory::before {\n content: \"\\f538\"; }\n\n.fa-face-sleeping::before {\n content: \"\\e38d\"; }\n\n.fa-road-spikes::before {\n content: \"\\e568\"; }\n\n.fa-fire-burner::before {\n content: \"\\e4f1\"; }\n\n.fa-squirrel::before {\n content: \"\\f71a\"; }\n\n.fa-arrow-up-to-line::before {\n content: \"\\f341\"; }\n\n.fa-arrow-to-top::before {\n content: \"\\f341\"; }\n\n.fa-flag::before {\n content: \"\\f024\"; }\n\n.fa-face-cowboy-hat::before {\n content: \"\\e36e\"; }\n\n.fa-hanukiah::before {\n content: \"\\f6e6\"; }\n\n.fa-chart-scatter-3d::before {\n content: \"\\e0e8\"; }\n\n.fa-display-chart-up::before {\n content: \"\\e5e3\"; }\n\n.fa-square-code::before {\n content: \"\\e267\"; }\n\n.fa-feather::before {\n content: \"\\f52d\"; }\n\n.fa-volume-low::before {\n content: \"\\f027\"; }\n\n.fa-volume-down::before {\n content: \"\\f027\"; }\n\n.fa-xmark-to-slot::before {\n content: \"\\f771\"; }\n\n.fa-times-to-slot::before {\n content: \"\\f771\"; }\n\n.fa-vote-nay::before {\n content: \"\\f771\"; }\n\n.fa-box-taped::before {\n content: \"\\f49a\"; }\n\n.fa-box-alt::before {\n content: \"\\f49a\"; }\n\n.fa-comment-slash::before {\n content: \"\\f4b3\"; }\n\n.fa-swords::before {\n content: \"\\f71d\"; }\n\n.fa-cloud-sun-rain::before {\n content: \"\\f743\"; }\n\n.fa-album::before {\n content: \"\\f89f\"; }\n\n.fa-circle-n::before {\n content: \"\\e118\"; }\n\n.fa-compress::before {\n content: \"\\f066\"; }\n\n.fa-wheat-awn::before {\n content: \"\\e2cd\"; }\n\n.fa-wheat-alt::before {\n content: \"\\e2cd\"; }\n\n.fa-ankh::before {\n content: \"\\f644\"; }\n\n.fa-hands-holding-child::before {\n content: \"\\e4fa\"; }\n\n.fa-asterisk::before {\n content: \"\\2a\"; }\n\n.fa-key-skeleton-left-right::before {\n content: \"\\e3b4\"; }\n\n.fa-comment-lines::before {\n content: \"\\f4b0\"; }\n\n.fa-luchador-mask::before {\n content: \"\\f455\"; }\n\n.fa-luchador::before {\n content: \"\\f455\"; }\n\n.fa-mask-luchador::before {\n content: \"\\f455\"; }\n\n.fa-square-check::before {\n content: \"\\f14a\"; }\n\n.fa-check-square::before {\n content: \"\\f14a\"; }\n\n.fa-shredder::before {\n content: \"\\f68a\"; }\n\n.fa-book-open-cover::before {\n content: \"\\e0c0\"; }\n\n.fa-book-open-alt::before {\n content: \"\\e0c0\"; }\n\n.fa-sandwich::before {\n content: \"\\f81f\"; }\n\n.fa-peseta-sign::before {\n content: \"\\e221\"; }\n\n.fa-square-parking-slash::before {\n content: \"\\f617\"; }\n\n.fa-parking-slash::before {\n content: \"\\f617\"; }\n\n.fa-train-tunnel::before {\n content: \"\\e454\"; }\n\n.fa-heading::before {\n content: \"\\f1dc\"; }\n\n.fa-header::before {\n content: \"\\f1dc\"; }\n\n.fa-ghost::before {\n content: \"\\f6e2\"; }\n\n.fa-face-anguished::before {\n content: \"\\e369\"; }\n\n.fa-hockey-sticks::before {\n content: \"\\f454\"; }\n\n.fa-abacus::before {\n content: \"\\f640\"; }\n\n.fa-film-simple::before {\n content: \"\\f3a0\"; }\n\n.fa-film-alt::before {\n content: \"\\f3a0\"; }\n\n.fa-list::before {\n content: \"\\f03a\"; }\n\n.fa-list-squares::before {\n content: \"\\f03a\"; }\n\n.fa-tree-palm::before {\n content: \"\\f82b\"; }\n\n.fa-square-phone-flip::before {\n content: \"\\f87b\"; }\n\n.fa-phone-square-alt::before {\n content: \"\\f87b\"; }\n\n.fa-cart-plus::before {\n content: \"\\f217\"; }\n\n.fa-gamepad::before {\n content: \"\\f11b\"; }\n\n.fa-border-center-v::before {\n content: \"\\f89d\"; }\n\n.fa-circle-dot::before {\n content: \"\\f192\"; }\n\n.fa-dot-circle::before {\n content: \"\\f192\"; }\n\n.fa-clipboard-medical::before {\n content: \"\\e133\"; }\n\n.fa-face-dizzy::before {\n content: \"\\f567\"; }\n\n.fa-dizzy::before {\n content: \"\\f567\"; }\n\n.fa-egg::before {\n content: \"\\f7fb\"; }\n\n.fa-up-to-line::before {\n content: \"\\f34d\"; }\n\n.fa-arrow-alt-to-top::before {\n content: \"\\f34d\"; }\n\n.fa-house-medical-circle-xmark::before {\n content: \"\\e513\"; }\n\n.fa-watch-fitness::before {\n content: \"\\f63e\"; }\n\n.fa-clock-nine-thirty::before {\n content: \"\\e34d\"; }\n\n.fa-campground::before {\n content: \"\\f6bb\"; }\n\n.fa-folder-plus::before {\n content: \"\\f65e\"; }\n\n.fa-jug::before {\n content: \"\\f8c6\"; }\n\n.fa-futbol::before {\n content: \"\\f1e3\"; }\n\n.fa-futbol-ball::before {\n content: \"\\f1e3\"; }\n\n.fa-soccer-ball::before {\n content: \"\\f1e3\"; }\n\n.fa-snow-blowing::before {\n content: \"\\f761\"; }\n\n.fa-paintbrush::before {\n content: \"\\f1fc\"; }\n\n.fa-paint-brush::before {\n content: \"\\f1fc\"; }\n\n.fa-lock::before {\n content: \"\\f023\"; }\n\n.fa-arrow-down-from-line::before {\n content: \"\\f345\"; }\n\n.fa-arrow-from-top::before {\n content: \"\\f345\"; }\n\n.fa-gas-pump::before {\n content: \"\\f52f\"; }\n\n.fa-signal-bars-slash::before {\n content: \"\\f694\"; }\n\n.fa-signal-alt-slash::before {\n content: \"\\f694\"; }\n\n.fa-monkey::before {\n content: \"\\f6fb\"; }\n\n.fa-rectangle-pro::before {\n content: \"\\e235\"; }\n\n.fa-pro::before {\n content: \"\\e235\"; }\n\n.fa-house-night::before {\n content: \"\\e010\"; }\n\n.fa-hot-tub-person::before {\n content: \"\\f593\"; }\n\n.fa-hot-tub::before {\n content: \"\\f593\"; }\n\n.fa-globe-pointer::before {\n content: \"\\e60e\"; }\n\n.fa-blanket::before {\n content: \"\\f498\"; }\n\n.fa-map-location::before {\n content: \"\\f59f\"; }\n\n.fa-map-marked::before {\n content: \"\\f59f\"; }\n\n.fa-house-flood-water::before {\n content: \"\\e50e\"; }\n\n.fa-comments-question-check::before {\n content: \"\\e14f\"; }\n\n.fa-tree::before {\n content: \"\\f1bb\"; }\n\n.fa-arrows-cross::before {\n content: \"\\e0a2\"; }\n\n.fa-backpack::before {\n content: \"\\f5d4\"; }\n\n.fa-square-small::before {\n content: \"\\e27e\"; }\n\n.fa-folder-arrow-up::before {\n content: \"\\e054\"; }\n\n.fa-folder-upload::before {\n content: \"\\e054\"; }\n\n.fa-bridge-lock::before {\n content: \"\\e4cc\"; }\n\n.fa-crosshairs-simple::before {\n content: \"\\e59f\"; }\n\n.fa-sack-dollar::before {\n content: \"\\f81d\"; }\n\n.fa-pen-to-square::before {\n content: \"\\f044\"; }\n\n.fa-edit::before {\n content: \"\\f044\"; }\n\n.fa-square-sliders::before {\n content: \"\\f3f0\"; }\n\n.fa-sliders-h-square::before {\n content: \"\\f3f0\"; }\n\n.fa-car-side::before {\n content: \"\\f5e4\"; }\n\n.fa-message-middle-top::before {\n content: \"\\e1e2\"; }\n\n.fa-comment-middle-top-alt::before {\n content: \"\\e1e2\"; }\n\n.fa-lightbulb-on::before {\n content: \"\\f672\"; }\n\n.fa-knife::before {\n content: \"\\f2e4\"; }\n\n.fa-utensil-knife::before {\n content: \"\\f2e4\"; }\n\n.fa-share-nodes::before {\n content: \"\\f1e0\"; }\n\n.fa-share-alt::before {\n content: \"\\f1e0\"; }\n\n.fa-display-chart-up-circle-dollar::before {\n content: \"\\e5e6\"; }\n\n.fa-wave-sine::before {\n content: \"\\f899\"; }\n\n.fa-heart-circle-minus::before {\n content: \"\\e4ff\"; }\n\n.fa-circle-w::before {\n content: \"\\e12c\"; }\n\n.fa-circle-calendar::before {\n content: \"\\e102\"; }\n\n.fa-calendar-circle::before {\n content: \"\\e102\"; }\n\n.fa-hourglass-half::before {\n content: \"\\f252\"; }\n\n.fa-hourglass-2::before {\n content: \"\\f252\"; }\n\n.fa-microscope::before {\n content: \"\\f610\"; }\n\n.fa-sunset::before {\n content: \"\\f767\"; }\n\n.fa-sink::before {\n content: \"\\e06d\"; }\n\n.fa-calendar-exclamation::before {\n content: \"\\f334\"; }\n\n.fa-truck-container-empty::before {\n content: \"\\e2b5\"; }\n\n.fa-hand-heart::before {\n content: \"\\f4bc\"; }\n\n.fa-bag-shopping::before {\n content: \"\\f290\"; }\n\n.fa-shopping-bag::before {\n content: \"\\f290\"; }\n\n.fa-arrow-down-z-a::before {\n content: \"\\f881\"; }\n\n.fa-sort-alpha-desc::before {\n content: \"\\f881\"; }\n\n.fa-sort-alpha-down-alt::before {\n content: \"\\f881\"; }\n\n.fa-mitten::before {\n content: \"\\f7b5\"; }\n\n.fa-reply-clock::before {\n content: \"\\e239\"; }\n\n.fa-reply-time::before {\n content: \"\\e239\"; }\n\n.fa-person-rays::before {\n content: \"\\e54d\"; }\n\n.fa-right::before {\n content: \"\\f356\"; }\n\n.fa-arrow-alt-right::before {\n content: \"\\f356\"; }\n\n.fa-circle-f::before {\n content: \"\\e10e\"; }\n\n.fa-users::before {\n content: \"\\f0c0\"; }\n\n.fa-face-pleading::before {\n content: \"\\e386\"; }\n\n.fa-eye-slash::before {\n content: \"\\f070\"; }\n\n.fa-flask-vial::before {\n content: \"\\e4f3\"; }\n\n.fa-police-box::before {\n content: \"\\e021\"; }\n\n.fa-cucumber::before {\n content: \"\\e401\"; }\n\n.fa-head-side-brain::before {\n content: \"\\f808\"; }\n\n.fa-hand::before {\n content: \"\\f256\"; }\n\n.fa-hand-paper::before {\n content: \"\\f256\"; }\n\n.fa-person-biking-mountain::before {\n content: \"\\f84b\"; }\n\n.fa-biking-mountain::before {\n content: \"\\f84b\"; }\n\n.fa-utensils-slash::before {\n content: \"\\e464\"; }\n\n.fa-print-magnifying-glass::before {\n content: \"\\f81a\"; }\n\n.fa-print-search::before {\n content: \"\\f81a\"; }\n\n.fa-turn-right::before {\n content: \"\\e639\"; }\n\n.fa-folder-bookmark::before {\n content: \"\\e186\"; }\n\n.fa-arrow-turn-left-down::before {\n content: \"\\e633\"; }\n\n.fa-om::before {\n content: \"\\f679\"; }\n\n.fa-pi::before {\n content: \"\\f67e\"; }\n\n.fa-flask-round-potion::before {\n content: \"\\f6e1\"; }\n\n.fa-flask-potion::before {\n content: \"\\f6e1\"; }\n\n.fa-face-shush::before {\n content: \"\\e38c\"; }\n\n.fa-worm::before {\n content: \"\\e599\"; }\n\n.fa-house-circle-xmark::before {\n content: \"\\e50b\"; }\n\n.fa-plug::before {\n content: \"\\f1e6\"; }\n\n.fa-calendar-circle-exclamation::before {\n content: \"\\e46e\"; }\n\n.fa-square-i::before {\n content: \"\\e272\"; }\n\n.fa-chevron-up::before {\n content: \"\\f077\"; }\n\n.fa-face-saluting::before {\n content: \"\\e484\"; }\n\n.fa-gauge-simple-low::before {\n content: \"\\f62c\"; }\n\n.fa-tachometer-slow::before {\n content: \"\\f62c\"; }\n\n.fa-face-persevering::before {\n content: \"\\e385\"; }\n\n.fa-circle-camera::before {\n content: \"\\e103\"; }\n\n.fa-camera-circle::before {\n content: \"\\e103\"; }\n\n.fa-hand-spock::before {\n content: \"\\f259\"; }\n\n.fa-spider-web::before {\n content: \"\\f719\"; }\n\n.fa-circle-microphone::before {\n content: \"\\e116\"; }\n\n.fa-microphone-circle::before {\n content: \"\\e116\"; }\n\n.fa-book-arrow-up::before {\n content: \"\\e0ba\"; }\n\n.fa-popsicle::before {\n content: \"\\e43e\"; }\n\n.fa-command::before {\n content: \"\\e142\"; }\n\n.fa-blinds::before {\n content: \"\\f8fb\"; }\n\n.fa-stopwatch::before {\n content: \"\\f2f2\"; }\n\n.fa-saxophone::before {\n content: \"\\f8dc\"; }\n\n.fa-square-2::before {\n content: \"\\e257\"; }\n\n.fa-field-hockey-stick-ball::before {\n content: \"\\f44c\"; }\n\n.fa-field-hockey::before {\n content: \"\\f44c\"; }\n\n.fa-arrow-up-square-triangle::before {\n content: \"\\f88b\"; }\n\n.fa-sort-shapes-up-alt::before {\n content: \"\\f88b\"; }\n\n.fa-face-scream::before {\n content: \"\\e38b\"; }\n\n.fa-square-m::before {\n content: \"\\e276\"; }\n\n.fa-camera-web::before {\n content: \"\\f832\"; }\n\n.fa-webcam::before {\n content: \"\\f832\"; }\n\n.fa-comment-arrow-down::before {\n content: \"\\e143\"; }\n\n.fa-lightbulb-cfl::before {\n content: \"\\e5a6\"; }\n\n.fa-window-frame-open::before {\n content: \"\\e050\"; }\n\n.fa-face-kiss::before {\n content: \"\\f596\"; }\n\n.fa-kiss::before {\n content: \"\\f596\"; }\n\n.fa-bridge-circle-xmark::before {\n content: \"\\e4cb\"; }\n\n.fa-period::before {\n content: \"\\2e\"; }\n\n.fa-face-grin-tongue::before {\n content: \"\\f589\"; }\n\n.fa-grin-tongue::before {\n content: \"\\f589\"; }\n\n.fa-up-to-dotted-line::before {\n content: \"\\e457\"; }\n\n.fa-thought-bubble::before {\n content: \"\\e32e\"; }\n\n.fa-skeleton-ribs::before {\n content: \"\\e5cb\"; }\n\n.fa-raygun::before {\n content: \"\\e025\"; }\n\n.fa-flute::before {\n content: \"\\f8b9\"; }\n\n.fa-acorn::before {\n content: \"\\f6ae\"; }\n\n.fa-video-arrow-up-right::before {\n content: \"\\e2c9\"; }\n\n.fa-grate-droplet::before {\n content: \"\\e194\"; }\n\n.fa-seal-exclamation::before {\n content: \"\\e242\"; }\n\n.fa-chess-bishop::before {\n content: \"\\f43a\"; }\n\n.fa-message-sms::before {\n content: \"\\e1e5\"; }\n\n.fa-coffee-beans::before {\n content: \"\\e13f\"; }\n\n.fa-hat-witch::before {\n content: \"\\f6e7\"; }\n\n.fa-face-grin-wink::before {\n content: \"\\f58c\"; }\n\n.fa-grin-wink::before {\n content: \"\\f58c\"; }\n\n.fa-clock-three-thirty::before {\n content: \"\\e357\"; }\n\n.fa-ear-deaf::before {\n content: \"\\f2a4\"; }\n\n.fa-deaf::before {\n content: \"\\f2a4\"; }\n\n.fa-deafness::before {\n content: \"\\f2a4\"; }\n\n.fa-hard-of-hearing::before {\n content: \"\\f2a4\"; }\n\n.fa-alarm-clock::before {\n content: \"\\f34e\"; }\n\n.fa-eclipse::before {\n content: \"\\f749\"; }\n\n.fa-face-relieved::before {\n content: \"\\e389\"; }\n\n.fa-road-circle-check::before {\n content: \"\\e564\"; }\n\n.fa-dice-five::before {\n content: \"\\f523\"; }\n\n.fa-octagon-minus::before {\n content: \"\\f308\"; }\n\n.fa-minus-octagon::before {\n content: \"\\f308\"; }\n\n.fa-square-rss::before {\n content: \"\\f143\"; }\n\n.fa-rss-square::before {\n content: \"\\f143\"; }\n\n.fa-face-zany::before {\n content: \"\\e3a4\"; }\n\n.fa-tricycle::before {\n content: \"\\e5c3\"; }\n\n.fa-land-mine-on::before {\n content: \"\\e51b\"; }\n\n.fa-square-arrow-up-left::before {\n content: \"\\e263\"; }\n\n.fa-i-cursor::before {\n content: \"\\f246\"; }\n\n.fa-chart-mixed-up-circle-dollar::before {\n content: \"\\e5d9\"; }\n\n.fa-salt-shaker::before {\n content: \"\\e446\"; }\n\n.fa-stamp::before {\n content: \"\\f5bf\"; }\n\n.fa-file-plus::before {\n content: \"\\f319\"; }\n\n.fa-draw-square::before {\n content: \"\\f5ef\"; }\n\n.fa-toilet-paper-under-slash::before {\n content: \"\\e2a1\"; }\n\n.fa-toilet-paper-reverse-slash::before {\n content: \"\\e2a1\"; }\n\n.fa-stairs::before {\n content: \"\\e289\"; }\n\n.fa-drone-front::before {\n content: \"\\f860\"; }\n\n.fa-drone-alt::before {\n content: \"\\f860\"; }\n\n.fa-glass-empty::before {\n content: \"\\e191\"; }\n\n.fa-dial-high::before {\n content: \"\\e15c\"; }\n\n.fa-user-helmet-safety::before {\n content: \"\\f82c\"; }\n\n.fa-user-construction::before {\n content: \"\\f82c\"; }\n\n.fa-user-hard-hat::before {\n content: \"\\f82c\"; }\n\n.fa-i::before {\n content: \"\\49\"; }\n\n.fa-hryvnia-sign::before {\n content: \"\\f6f2\"; }\n\n.fa-hryvnia::before {\n content: \"\\f6f2\"; }\n\n.fa-arrow-down-left-and-arrow-up-right-to-center::before {\n content: \"\\e092\"; }\n\n.fa-pills::before {\n content: \"\\f484\"; }\n\n.fa-face-grin-wide::before {\n content: \"\\f581\"; }\n\n.fa-grin-alt::before {\n content: \"\\f581\"; }\n\n.fa-tooth::before {\n content: \"\\f5c9\"; }\n\n.fa-basketball-hoop::before {\n content: \"\\f435\"; }\n\n.fa-objects-align-bottom::before {\n content: \"\\e3bb\"; }\n\n.fa-v::before {\n content: \"\\56\"; }\n\n.fa-sparkles::before {\n content: \"\\f890\"; }\n\n.fa-squid::before {\n content: \"\\e450\"; }\n\n.fa-leafy-green::before {\n content: \"\\e41d\"; }\n\n.fa-circle-arrow-up-right::before {\n content: \"\\e0fc\"; }\n\n.fa-calendars::before {\n content: \"\\e0d7\"; }\n\n.fa-bangladeshi-taka-sign::before {\n content: \"\\e2e6\"; }\n\n.fa-bicycle::before {\n content: \"\\f206\"; }\n\n.fa-hammer-war::before {\n content: \"\\f6e4\"; }\n\n.fa-circle-d::before {\n content: \"\\e104\"; }\n\n.fa-spider-black-widow::before {\n content: \"\\f718\"; }\n\n.fa-staff-snake::before {\n content: \"\\e579\"; }\n\n.fa-rod-asclepius::before {\n content: \"\\e579\"; }\n\n.fa-rod-snake::before {\n content: \"\\e579\"; }\n\n.fa-staff-aesculapius::before {\n content: \"\\e579\"; }\n\n.fa-pear::before {\n content: \"\\e20c\"; }\n\n.fa-head-side-cough-slash::before {\n content: \"\\e062\"; }\n\n.fa-file-mov::before {\n content: \"\\e647\"; }\n\n.fa-triangle::before {\n content: \"\\f2ec\"; }\n\n.fa-apartment::before {\n content: \"\\e468\"; }\n\n.fa-truck-medical::before {\n content: \"\\f0f9\"; }\n\n.fa-ambulance::before {\n content: \"\\f0f9\"; }\n\n.fa-pepper::before {\n content: \"\\e432\"; }\n\n.fa-piano::before {\n content: \"\\f8d4\"; }\n\n.fa-gun-squirt::before {\n content: \"\\e19d\"; }\n\n.fa-wheat-awn-circle-exclamation::before {\n content: \"\\e598\"; }\n\n.fa-snowman::before {\n content: \"\\f7d0\"; }\n\n.fa-user-alien::before {\n content: \"\\e04a\"; }\n\n.fa-shield-check::before {\n content: \"\\f2f7\"; }\n\n.fa-mortar-pestle::before {\n content: \"\\f5a7\"; }\n\n.fa-road-barrier::before {\n content: \"\\e562\"; }\n\n.fa-chart-candlestick::before {\n content: \"\\e0e2\"; }\n\n.fa-briefcase-blank::before {\n content: \"\\e0c8\"; }\n\n.fa-school::before {\n content: \"\\f549\"; }\n\n.fa-igloo::before {\n content: \"\\f7ae\"; }\n\n.fa-bracket-round::before {\n content: \"\\28\"; }\n\n.fa-parenthesis::before {\n content: \"\\28\"; }\n\n.fa-joint::before {\n content: \"\\f595\"; }\n\n.fa-horse-saddle::before {\n content: \"\\f8c3\"; }\n\n.fa-mug-marshmallows::before {\n content: \"\\f7b7\"; }\n\n.fa-filters::before {\n content: \"\\e17e\"; }\n\n.fa-bell-on::before {\n content: \"\\f8fa\"; }\n\n.fa-angle-right::before {\n content: \"\\f105\"; }\n\n.fa-dial-med::before {\n content: \"\\e15f\"; }\n\n.fa-horse::before {\n content: \"\\f6f0\"; }\n\n.fa-q::before {\n content: \"\\51\"; }\n\n.fa-monitor-waveform::before {\n content: \"\\f611\"; }\n\n.fa-monitor-heart-rate::before {\n content: \"\\f611\"; }\n\n.fa-link-simple::before {\n content: \"\\e1cd\"; }\n\n.fa-whistle::before {\n content: \"\\f460\"; }\n\n.fa-g::before {\n content: \"\\47\"; }\n\n.fa-wine-glass-crack::before {\n content: \"\\f4bb\"; }\n\n.fa-fragile::before {\n content: \"\\f4bb\"; }\n\n.fa-slot-machine::before {\n content: \"\\e3ce\"; }\n\n.fa-notes-medical::before {\n content: \"\\f481\"; }\n\n.fa-car-wash::before {\n content: \"\\f5e6\"; }\n\n.fa-escalator::before {\n content: \"\\e171\"; }\n\n.fa-comment-image::before {\n content: \"\\e148\"; }\n\n.fa-temperature-half::before {\n content: \"\\f2c9\"; }\n\n.fa-temperature-2::before {\n content: \"\\f2c9\"; }\n\n.fa-thermometer-2::before {\n content: \"\\f2c9\"; }\n\n.fa-thermometer-half::before {\n content: \"\\f2c9\"; }\n\n.fa-dong-sign::before {\n content: \"\\e169\"; }\n\n.fa-donut::before {\n content: \"\\e406\"; }\n\n.fa-doughnut::before {\n content: \"\\e406\"; }\n\n.fa-capsules::before {\n content: \"\\f46b\"; }\n\n.fa-poo-storm::before {\n content: \"\\f75a\"; }\n\n.fa-poo-bolt::before {\n content: \"\\f75a\"; }\n\n.fa-tally-1::before {\n content: \"\\e294\"; }\n\n.fa-file-vector::before {\n content: \"\\e64c\"; }\n\n.fa-face-frown-open::before {\n content: \"\\f57a\"; }\n\n.fa-frown-open::before {\n content: \"\\f57a\"; }\n\n.fa-square-dashed::before {\n content: \"\\e269\"; }\n\n.fa-bag-shopping-plus::before {\n content: \"\\e651\"; }\n\n.fa-square-j::before {\n content: \"\\e273\"; }\n\n.fa-hand-point-up::before {\n content: \"\\f0a6\"; }\n\n.fa-money-bill::before {\n content: \"\\f0d6\"; }\n\n.fa-arrow-up-big-small::before {\n content: \"\\f88e\"; }\n\n.fa-sort-size-up::before {\n content: \"\\f88e\"; }\n\n.fa-barcode-read::before {\n content: \"\\f464\"; }\n\n.fa-baguette::before {\n content: \"\\e3d8\"; }\n\n.fa-bowl-soft-serve::before {\n content: \"\\e46b\"; }\n\n.fa-face-holding-back-tears::before {\n content: \"\\e482\"; }\n\n.fa-square-up::before {\n content: \"\\f353\"; }\n\n.fa-arrow-alt-square-up::before {\n content: \"\\f353\"; }\n\n.fa-train-subway-tunnel::before {\n content: \"\\e2a3\"; }\n\n.fa-subway-tunnel::before {\n content: \"\\e2a3\"; }\n\n.fa-square-exclamation::before {\n content: \"\\f321\"; }\n\n.fa-exclamation-square::before {\n content: \"\\f321\"; }\n\n.fa-semicolon::before {\n content: \"\\3b\"; }\n\n.fa-bookmark::before {\n content: \"\\f02e\"; }\n\n.fa-fan-table::before {\n content: \"\\e004\"; }\n\n.fa-align-justify::before {\n content: \"\\f039\"; }\n\n.fa-battery-low::before {\n content: \"\\e0b1\"; }\n\n.fa-battery-1::before {\n content: \"\\e0b1\"; }\n\n.fa-credit-card-front::before {\n content: \"\\f38a\"; }\n\n.fa-brain-arrow-curved-right::before {\n content: \"\\f677\"; }\n\n.fa-mind-share::before {\n content: \"\\f677\"; }\n\n.fa-umbrella-beach::before {\n content: \"\\f5ca\"; }\n\n.fa-helmet-un::before {\n content: \"\\e503\"; }\n\n.fa-location-smile::before {\n content: \"\\f60d\"; }\n\n.fa-map-marker-smile::before {\n content: \"\\f60d\"; }\n\n.fa-arrow-left-to-line::before {\n content: \"\\f33e\"; }\n\n.fa-arrow-to-left::before {\n content: \"\\f33e\"; }\n\n.fa-bullseye::before {\n content: \"\\f140\"; }\n\n.fa-sushi::before {\n content: \"\\e48a\"; }\n\n.fa-nigiri::before {\n content: \"\\e48a\"; }\n\n.fa-message-captions::before {\n content: \"\\e1de\"; }\n\n.fa-comment-alt-captions::before {\n content: \"\\e1de\"; }\n\n.fa-trash-list::before {\n content: \"\\e2b1\"; }\n\n.fa-bacon::before {\n content: \"\\f7e5\"; }\n\n.fa-option::before {\n content: \"\\e318\"; }\n\n.fa-raccoon::before {\n content: \"\\e613\"; }\n\n.fa-hand-point-down::before {\n content: \"\\f0a7\"; }\n\n.fa-arrow-up-from-bracket::before {\n content: \"\\e09a\"; }\n\n.fa-head-side-gear::before {\n content: \"\\e611\"; }\n\n.fa-trash-plus::before {\n content: \"\\e2b2\"; }\n\n.fa-file-cad::before {\n content: \"\\e672\"; }\n\n.fa-objects-align-top::before {\n content: \"\\e3c0\"; }\n\n.fa-folder::before {\n content: \"\\f07b\"; }\n\n.fa-folder-blank::before {\n content: \"\\f07b\"; }\n\n.fa-face-anxious-sweat::before {\n content: \"\\e36a\"; }\n\n.fa-credit-card-blank::before {\n content: \"\\f389\"; }\n\n.fa-file-waveform::before {\n content: \"\\f478\"; }\n\n.fa-file-medical-alt::before {\n content: \"\\f478\"; }\n\n.fa-microchip-ai::before {\n content: \"\\e1ec\"; }\n\n.fa-mug::before {\n content: \"\\f874\"; }\n\n.fa-plane-up-slash::before {\n content: \"\\e22e\"; }\n\n.fa-radiation::before {\n content: \"\\f7b9\"; }\n\n.fa-pen-circle::before {\n content: \"\\e20e\"; }\n\n.fa-bag-seedling::before {\n content: \"\\e5f2\"; }\n\n.fa-chart-simple::before {\n content: \"\\e473\"; }\n\n.fa-crutches::before {\n content: \"\\f7f8\"; }\n\n.fa-circle-parking::before {\n content: \"\\f615\"; }\n\n.fa-parking-circle::before {\n content: \"\\f615\"; }\n\n.fa-mars-stroke::before {\n content: \"\\f229\"; }\n\n.fa-leaf-oak::before {\n content: \"\\f6f7\"; }\n\n.fa-square-bolt::before {\n content: \"\\e265\"; }\n\n.fa-vial::before {\n content: \"\\f492\"; }\n\n.fa-gauge::before {\n content: \"\\f624\"; }\n\n.fa-dashboard::before {\n content: \"\\f624\"; }\n\n.fa-gauge-med::before {\n content: \"\\f624\"; }\n\n.fa-tachometer-alt-average::before {\n content: \"\\f624\"; }\n\n.fa-wand-magic-sparkles::before {\n content: \"\\e2ca\"; }\n\n.fa-magic-wand-sparkles::before {\n content: \"\\e2ca\"; }\n\n.fa-lambda::before {\n content: \"\\f66e\"; }\n\n.fa-e::before {\n content: \"\\45\"; }\n\n.fa-pizza::before {\n content: \"\\f817\"; }\n\n.fa-bowl-chopsticks-noodles::before {\n content: \"\\e2ea\"; }\n\n.fa-h3::before {\n content: \"\\f315\"; }\n\n.fa-pen-clip::before {\n content: \"\\f305\"; }\n\n.fa-pen-alt::before {\n content: \"\\f305\"; }\n\n.fa-bridge-circle-exclamation::before {\n content: \"\\e4ca\"; }\n\n.fa-badge-percent::before {\n content: \"\\f646\"; }\n\n.fa-rotate-reverse::before {\n content: \"\\e631\"; }\n\n.fa-user::before {\n content: \"\\f007\"; }\n\n.fa-sensor::before {\n content: \"\\e028\"; }\n\n.fa-comma::before {\n content: \"\\2c\"; }\n\n.fa-school-circle-check::before {\n content: \"\\e56b\"; }\n\n.fa-toilet-paper-under::before {\n content: \"\\e2a0\"; }\n\n.fa-toilet-paper-reverse::before {\n content: \"\\e2a0\"; }\n\n.fa-light-emergency::before {\n content: \"\\e41f\"; }\n\n.fa-arrow-down-to-arc::before {\n content: \"\\e4ae\"; }\n\n.fa-dumpster::before {\n content: \"\\f793\"; }\n\n.fa-van-shuttle::before {\n content: \"\\f5b6\"; }\n\n.fa-shuttle-van::before {\n content: \"\\f5b6\"; }\n\n.fa-building-user::before {\n content: \"\\e4da\"; }\n\n.fa-light-switch::before {\n content: \"\\e017\"; }\n\n.fa-square-caret-left::before {\n content: \"\\f191\"; }\n\n.fa-caret-square-left::before {\n content: \"\\f191\"; }\n\n.fa-highlighter::before {\n content: \"\\f591\"; }\n\n.fa-wave-pulse::before {\n content: \"\\f5f8\"; }\n\n.fa-heart-rate::before {\n content: \"\\f5f8\"; }\n\n.fa-key::before {\n content: \"\\f084\"; }\n\n.fa-arrow-left-to-bracket::before {\n content: \"\\e669\"; }\n\n.fa-hat-santa::before {\n content: \"\\f7a7\"; }\n\n.fa-tamale::before {\n content: \"\\e451\"; }\n\n.fa-box-check::before {\n content: \"\\f467\"; }\n\n.fa-bullhorn::before {\n content: \"\\f0a1\"; }\n\n.fa-steak::before {\n content: \"\\f824\"; }\n\n.fa-location-crosshairs-slash::before {\n content: \"\\f603\"; }\n\n.fa-location-slash::before {\n content: \"\\f603\"; }\n\n.fa-person-dolly::before {\n content: \"\\f4d0\"; }\n\n.fa-globe::before {\n content: \"\\f0ac\"; }\n\n.fa-synagogue::before {\n content: \"\\f69b\"; }\n\n.fa-file-chart-column::before {\n content: \"\\f659\"; }\n\n.fa-file-chart-line::before {\n content: \"\\f659\"; }\n\n.fa-person-half-dress::before {\n content: \"\\e548\"; }\n\n.fa-folder-image::before {\n content: \"\\e18a\"; }\n\n.fa-calendar-pen::before {\n content: \"\\f333\"; }\n\n.fa-calendar-edit::before {\n content: \"\\f333\"; }\n\n.fa-road-bridge::before {\n content: \"\\e563\"; }\n\n.fa-face-smile-tear::before {\n content: \"\\e393\"; }\n\n.fa-message-plus::before {\n content: \"\\f4a8\"; }\n\n.fa-comment-alt-plus::before {\n content: \"\\f4a8\"; }\n\n.fa-location-arrow::before {\n content: \"\\f124\"; }\n\n.fa-c::before {\n content: \"\\43\"; }\n\n.fa-tablet-button::before {\n content: \"\\f10a\"; }\n\n.fa-person-dress-fairy::before {\n content: \"\\e607\"; }\n\n.fa-rectangle-history-circle-user::before {\n content: \"\\e4a4\"; }\n\n.fa-building-lock::before {\n content: \"\\e4d6\"; }\n\n.fa-chart-line-up::before {\n content: \"\\e0e5\"; }\n\n.fa-mailbox::before {\n content: \"\\f813\"; }\n\n.fa-sign-posts::before {\n content: \"\\e625\"; }\n\n.fa-truck-bolt::before {\n content: \"\\e3d0\"; }\n\n.fa-pizza-slice::before {\n content: \"\\f818\"; }\n\n.fa-money-bill-wave::before {\n content: \"\\f53a\"; }\n\n.fa-chart-area::before {\n content: \"\\f1fe\"; }\n\n.fa-area-chart::before {\n content: \"\\f1fe\"; }\n\n.fa-house-flag::before {\n content: \"\\e50d\"; }\n\n.fa-circle-three-quarters-stroke::before {\n content: \"\\e5d4\"; }\n\n.fa-person-circle-minus::before {\n content: \"\\e540\"; }\n\n.fa-scalpel::before {\n content: \"\\f61d\"; }\n\n.fa-ban::before {\n content: \"\\f05e\"; }\n\n.fa-cancel::before {\n content: \"\\f05e\"; }\n\n.fa-bell-exclamation::before {\n content: \"\\f848\"; }\n\n.fa-circle-bookmark::before {\n content: \"\\e100\"; }\n\n.fa-bookmark-circle::before {\n content: \"\\e100\"; }\n\n.fa-egg-fried::before {\n content: \"\\f7fc\"; }\n\n.fa-face-weary::before {\n content: \"\\e3a1\"; }\n\n.fa-uniform-martial-arts::before {\n content: \"\\e3d1\"; }\n\n.fa-camera-rotate::before {\n content: \"\\e0d8\"; }\n\n.fa-sun-dust::before {\n content: \"\\f764\"; }\n\n.fa-comment-text::before {\n content: \"\\e14d\"; }\n\n.fa-spray-can-sparkles::before {\n content: \"\\f5d0\"; }\n\n.fa-air-freshener::before {\n content: \"\\f5d0\"; }\n\n.fa-signal-bars::before {\n content: \"\\f690\"; }\n\n.fa-signal-alt::before {\n content: \"\\f690\"; }\n\n.fa-signal-alt-4::before {\n content: \"\\f690\"; }\n\n.fa-signal-bars-strong::before {\n content: \"\\f690\"; }\n\n.fa-diamond-exclamation::before {\n content: \"\\e405\"; }\n\n.fa-star::before {\n content: \"\\f005\"; }\n\n.fa-dial-min::before {\n content: \"\\e161\"; }\n\n.fa-repeat::before {\n content: \"\\f363\"; }\n\n.fa-cross::before {\n content: \"\\f654\"; }\n\n.fa-page-caret-down::before {\n content: \"\\e429\"; }\n\n.fa-file-caret-down::before {\n content: \"\\e429\"; }\n\n.fa-box::before {\n content: \"\\f466\"; }\n\n.fa-venus-mars::before {\n content: \"\\f228\"; }\n\n.fa-clock-seven-thirty::before {\n content: \"\\e351\"; }\n\n.fa-arrow-pointer::before {\n content: \"\\f245\"; }\n\n.fa-mouse-pointer::before {\n content: \"\\f245\"; }\n\n.fa-clock-four-thirty::before {\n content: \"\\e34b\"; }\n\n.fa-signal-bars-good::before {\n content: \"\\f693\"; }\n\n.fa-signal-alt-3::before {\n content: \"\\f693\"; }\n\n.fa-cactus::before {\n content: \"\\f8a7\"; }\n\n.fa-lightbulb-gear::before {\n content: \"\\e5fd\"; }\n\n.fa-maximize::before {\n content: \"\\f31e\"; }\n\n.fa-expand-arrows-alt::before {\n content: \"\\f31e\"; }\n\n.fa-charging-station::before {\n content: \"\\f5e7\"; }\n\n.fa-shapes::before {\n content: \"\\f61f\"; }\n\n.fa-triangle-circle-square::before {\n content: \"\\f61f\"; }\n\n.fa-plane-tail::before {\n content: \"\\e22c\"; }\n\n.fa-gauge-simple-max::before {\n content: \"\\f62b\"; }\n\n.fa-tachometer-fastest::before {\n content: \"\\f62b\"; }\n\n.fa-circle-u::before {\n content: \"\\e127\"; }\n\n.fa-shield-slash::before {\n content: \"\\e24b\"; }\n\n.fa-square-phone-hangup::before {\n content: \"\\e27a\"; }\n\n.fa-phone-square-down::before {\n content: \"\\e27a\"; }\n\n.fa-arrow-up-left::before {\n content: \"\\e09d\"; }\n\n.fa-transporter-1::before {\n content: \"\\e043\"; }\n\n.fa-peanuts::before {\n content: \"\\e431\"; }\n\n.fa-shuffle::before {\n content: \"\\f074\"; }\n\n.fa-random::before {\n content: \"\\f074\"; }\n\n.fa-person-running::before {\n content: \"\\f70c\"; }\n\n.fa-running::before {\n content: \"\\f70c\"; }\n\n.fa-mobile-retro::before {\n content: \"\\e527\"; }\n\n.fa-grip-lines-vertical::before {\n content: \"\\f7a5\"; }\n\n.fa-bin-bottles-recycle::before {\n content: \"\\e5f6\"; }\n\n.fa-arrow-up-from-square::before {\n content: \"\\e09c\"; }\n\n.fa-file-dashed-line::before {\n content: \"\\f877\"; }\n\n.fa-page-break::before {\n content: \"\\f877\"; }\n\n.fa-bracket-curly-right::before {\n content: \"\\7d\"; }\n\n.fa-spider::before {\n content: \"\\f717\"; }\n\n.fa-clock-three::before {\n content: \"\\e356\"; }\n\n.fa-hands-bound::before {\n content: \"\\e4f9\"; }\n\n.fa-scalpel-line-dashed::before {\n content: \"\\f61e\"; }\n\n.fa-scalpel-path::before {\n content: \"\\f61e\"; }\n\n.fa-file-invoice-dollar::before {\n content: \"\\f571\"; }\n\n.fa-pipe-smoking::before {\n content: \"\\e3c4\"; }\n\n.fa-face-astonished::before {\n content: \"\\e36b\"; }\n\n.fa-window::before {\n content: \"\\f40e\"; }\n\n.fa-plane-circle-exclamation::before {\n content: \"\\e556\"; }\n\n.fa-ear::before {\n content: \"\\f5f0\"; }\n\n.fa-file-lock::before {\n content: \"\\e3a6\"; }\n\n.fa-diagram-venn::before {\n content: \"\\e15a\"; }\n\n.fa-arrow-down-from-bracket::before {\n content: \"\\e667\"; }\n\n.fa-x-ray::before {\n content: \"\\f497\"; }\n\n.fa-goal-net::before {\n content: \"\\e3ab\"; }\n\n.fa-coffin-cross::before {\n content: \"\\e051\"; }\n\n.fa-spell-check::before {\n content: \"\\f891\"; }\n\n.fa-location-xmark::before {\n content: \"\\f60e\"; }\n\n.fa-map-marker-times::before {\n content: \"\\f60e\"; }\n\n.fa-map-marker-xmark::before {\n content: \"\\f60e\"; }\n\n.fa-circle-quarter-stroke::before {\n content: \"\\e5d3\"; }\n\n.fa-lasso::before {\n content: \"\\f8c8\"; }\n\n.fa-slash::before {\n content: \"\\f715\"; }\n\n.fa-person-to-portal::before {\n content: \"\\e022\"; }\n\n.fa-portal-enter::before {\n content: \"\\e022\"; }\n\n.fa-calendar-star::before {\n content: \"\\f736\"; }\n\n.fa-computer-mouse::before {\n content: \"\\f8cc\"; }\n\n.fa-mouse::before {\n content: \"\\f8cc\"; }\n\n.fa-arrow-right-to-bracket::before {\n content: \"\\f090\"; }\n\n.fa-sign-in::before {\n content: \"\\f090\"; }\n\n.fa-pegasus::before {\n content: \"\\f703\"; }\n\n.fa-files-medical::before {\n content: \"\\f7fd\"; }\n\n.fa-cannon::before {\n content: \"\\e642\"; }\n\n.fa-nfc-lock::before {\n content: \"\\e1f8\"; }\n\n.fa-person-ski-lift::before {\n content: \"\\f7c8\"; }\n\n.fa-ski-lift::before {\n content: \"\\f7c8\"; }\n\n.fa-square-6::before {\n content: \"\\e25b\"; }\n\n.fa-shop-slash::before {\n content: \"\\e070\"; }\n\n.fa-store-alt-slash::before {\n content: \"\\e070\"; }\n\n.fa-wind-turbine::before {\n content: \"\\f89b\"; }\n\n.fa-sliders-simple::before {\n content: \"\\e253\"; }\n\n.fa-grid-round::before {\n content: \"\\e5da\"; }\n\n.fa-badge-sheriff::before {\n content: \"\\f8a2\"; }\n\n.fa-server::before {\n content: \"\\f233\"; }\n\n.fa-virus-covid-slash::before {\n content: \"\\e4a9\"; }\n\n.fa-intersection::before {\n content: \"\\f668\"; }\n\n.fa-shop-lock::before {\n content: \"\\e4a5\"; }\n\n.fa-family::before {\n content: \"\\e300\"; }\n\n.fa-hourglass-start::before {\n content: \"\\f251\"; }\n\n.fa-hourglass-1::before {\n content: \"\\f251\"; }\n\n.fa-user-hair-buns::before {\n content: \"\\e3d3\"; }\n\n.fa-blender-phone::before {\n content: \"\\f6b6\"; }\n\n.fa-hourglass-clock::before {\n content: \"\\e41b\"; }\n\n.fa-person-seat-reclined::before {\n content: \"\\e21f\"; }\n\n.fa-paper-plane-top::before {\n content: \"\\e20a\"; }\n\n.fa-paper-plane-alt::before {\n content: \"\\e20a\"; }\n\n.fa-send::before {\n content: \"\\e20a\"; }\n\n.fa-message-arrow-up::before {\n content: \"\\e1dc\"; }\n\n.fa-comment-alt-arrow-up::before {\n content: \"\\e1dc\"; }\n\n.fa-lightbulb-exclamation::before {\n content: \"\\f671\"; }\n\n.fa-layer-minus::before {\n content: \"\\f5fe\"; }\n\n.fa-layer-group-minus::before {\n content: \"\\f5fe\"; }\n\n.fa-chart-pie-simple-circle-currency::before {\n content: \"\\e604\"; }\n\n.fa-circle-e::before {\n content: \"\\e109\"; }\n\n.fa-building-wheat::before {\n content: \"\\e4db\"; }\n\n.fa-gauge-max::before {\n content: \"\\f626\"; }\n\n.fa-tachometer-alt-fastest::before {\n content: \"\\f626\"; }\n\n.fa-person-breastfeeding::before {\n content: \"\\e53a\"; }\n\n.fa-apostrophe::before {\n content: \"\\27\"; }\n\n.fa-file-png::before {\n content: \"\\e666\"; }\n\n.fa-fire-hydrant::before {\n content: \"\\e17f\"; }\n\n.fa-right-to-bracket::before {\n content: \"\\f2f6\"; }\n\n.fa-sign-in-alt::before {\n content: \"\\f2f6\"; }\n\n.fa-video-plus::before {\n content: \"\\f4e1\"; }\n\n.fa-square-right::before {\n content: \"\\f352\"; }\n\n.fa-arrow-alt-square-right::before {\n content: \"\\f352\"; }\n\n.fa-comment-smile::before {\n content: \"\\f4b4\"; }\n\n.fa-venus::before {\n content: \"\\f221\"; }\n\n.fa-passport::before {\n content: \"\\f5ab\"; }\n\n.fa-inbox-in::before {\n content: \"\\f310\"; }\n\n.fa-inbox-arrow-down::before {\n content: \"\\f310\"; }\n\n.fa-heart-pulse::before {\n content: \"\\f21e\"; }\n\n.fa-heartbeat::before {\n content: \"\\f21e\"; }\n\n.fa-circle-8::before {\n content: \"\\e0f5\"; }\n\n.fa-clouds-moon::before {\n content: \"\\f745\"; }\n\n.fa-clock-ten-thirty::before {\n content: \"\\e355\"; }\n\n.fa-people-carry-box::before {\n content: \"\\f4ce\"; }\n\n.fa-people-carry::before {\n content: \"\\f4ce\"; }\n\n.fa-folder-user::before {\n content: \"\\e18e\"; }\n\n.fa-trash-can-xmark::before {\n content: \"\\e2ae\"; }\n\n.fa-temperature-high::before {\n content: \"\\f769\"; }\n\n.fa-microchip::before {\n content: \"\\f2db\"; }\n\n.fa-left-long-to-line::before {\n content: \"\\e41e\"; }\n\n.fa-crown::before {\n content: \"\\f521\"; }\n\n.fa-weight-hanging::before {\n content: \"\\f5cd\"; }\n\n.fa-xmarks-lines::before {\n content: \"\\e59a\"; }\n\n.fa-file-prescription::before {\n content: \"\\f572\"; }\n\n.fa-table-cells-lock::before {\n content: \"\\e679\"; }\n\n.fa-calendar-range::before {\n content: \"\\e0d6\"; }\n\n.fa-flower-daffodil::before {\n content: \"\\f800\"; }\n\n.fa-hand-back-point-up::before {\n content: \"\\e1a2\"; }\n\n.fa-weight-scale::before {\n content: \"\\f496\"; }\n\n.fa-weight::before {\n content: \"\\f496\"; }\n\n.fa-arrow-up-to-arc::before {\n content: \"\\e617\"; }\n\n.fa-star-exclamation::before {\n content: \"\\f2f3\"; }\n\n.fa-books::before {\n content: \"\\f5db\"; }\n\n.fa-user-group::before {\n content: \"\\f500\"; }\n\n.fa-user-friends::before {\n content: \"\\f500\"; }\n\n.fa-arrow-up-a-z::before {\n content: \"\\f15e\"; }\n\n.fa-sort-alpha-up::before {\n content: \"\\f15e\"; }\n\n.fa-layer-plus::before {\n content: \"\\f5ff\"; }\n\n.fa-layer-group-plus::before {\n content: \"\\f5ff\"; }\n\n.fa-play-pause::before {\n content: \"\\e22f\"; }\n\n.fa-block-question::before {\n content: \"\\e3dd\"; }\n\n.fa-snooze::before {\n content: \"\\f880\"; }\n\n.fa-zzz::before {\n content: \"\\f880\"; }\n\n.fa-scanner-image::before {\n content: \"\\f8f3\"; }\n\n.fa-tv-retro::before {\n content: \"\\f401\"; }\n\n.fa-square-t::before {\n content: \"\\e280\"; }\n\n.fa-farm::before {\n content: \"\\f864\"; }\n\n.fa-barn-silo::before {\n content: \"\\f864\"; }\n\n.fa-chess-knight::before {\n content: \"\\f441\"; }\n\n.fa-bars-sort::before {\n content: \"\\e0ae\"; }\n\n.fa-pallet-boxes::before {\n content: \"\\f483\"; }\n\n.fa-palette-boxes::before {\n content: \"\\f483\"; }\n\n.fa-pallet-alt::before {\n content: \"\\f483\"; }\n\n.fa-face-laugh-squint::before {\n content: \"\\f59b\"; }\n\n.fa-laugh-squint::before {\n content: \"\\f59b\"; }\n\n.fa-code-simple::before {\n content: \"\\e13d\"; }\n\n.fa-bolt-slash::before {\n content: \"\\e0b8\"; }\n\n.fa-panel-fire::before {\n content: \"\\e42f\"; }\n\n.fa-binary-circle-check::before {\n content: \"\\e33c\"; }\n\n.fa-comment-minus::before {\n content: \"\\f4b1\"; }\n\n.fa-burrito::before {\n content: \"\\f7ed\"; }\n\n.fa-violin::before {\n content: \"\\f8ed\"; }\n\n.fa-objects-column::before {\n content: \"\\e3c1\"; }\n\n.fa-square-chevron-down::before {\n content: \"\\f329\"; }\n\n.fa-chevron-square-down::before {\n content: \"\\f329\"; }\n\n.fa-comment-plus::before {\n content: \"\\f4b2\"; }\n\n.fa-triangle-instrument::before {\n content: \"\\f8e2\"; }\n\n.fa-triangle-music::before {\n content: \"\\f8e2\"; }\n\n.fa-wheelchair::before {\n content: \"\\f193\"; }\n\n.fa-user-pilot-tie::before {\n content: \"\\e2c1\"; }\n\n.fa-piano-keyboard::before {\n content: \"\\f8d5\"; }\n\n.fa-bed-empty::before {\n content: \"\\f8f9\"; }\n\n.fa-circle-arrow-up::before {\n content: \"\\f0aa\"; }\n\n.fa-arrow-circle-up::before {\n content: \"\\f0aa\"; }\n\n.fa-toggle-on::before {\n content: \"\\f205\"; }\n\n.fa-rectangle-vertical::before {\n content: \"\\f2fb\"; }\n\n.fa-rectangle-portrait::before {\n content: \"\\f2fb\"; }\n\n.fa-person-walking::before {\n content: \"\\f554\"; }\n\n.fa-walking::before {\n content: \"\\f554\"; }\n\n.fa-l::before {\n content: \"\\4c\"; }\n\n.fa-signal-stream::before {\n content: \"\\f8dd\"; }\n\n.fa-down-to-bracket::before {\n content: \"\\e4e7\"; }\n\n.fa-circle-z::before {\n content: \"\\e130\"; }\n\n.fa-stars::before {\n content: \"\\f762\"; }\n\n.fa-fire::before {\n content: \"\\f06d\"; }\n\n.fa-bed-pulse::before {\n content: \"\\f487\"; }\n\n.fa-procedures::before {\n content: \"\\f487\"; }\n\n.fa-house-day::before {\n content: \"\\e00e\"; }\n\n.fa-shuttle-space::before {\n content: \"\\f197\"; }\n\n.fa-space-shuttle::before {\n content: \"\\f197\"; }\n\n.fa-shirt-long-sleeve::before {\n content: \"\\e3c7\"; }\n\n.fa-chart-pie-simple::before {\n content: \"\\f64e\"; }\n\n.fa-chart-pie-alt::before {\n content: \"\\f64e\"; }\n\n.fa-face-laugh::before {\n content: \"\\f599\"; }\n\n.fa-laugh::before {\n content: \"\\f599\"; }\n\n.fa-folder-open::before {\n content: \"\\f07c\"; }\n\n.fa-album-collection-circle-user::before {\n content: \"\\e48f\"; }\n\n.fa-candy::before {\n content: \"\\e3e7\"; }\n\n.fa-bowl-hot::before {\n content: \"\\f823\"; }\n\n.fa-soup::before {\n content: \"\\f823\"; }\n\n.fa-flatbread::before {\n content: \"\\e40b\"; }\n\n.fa-heart-circle-plus::before {\n content: \"\\e500\"; }\n\n.fa-code-fork::before {\n content: \"\\e13b\"; }\n\n.fa-city::before {\n content: \"\\f64f\"; }\n\n.fa-signal-bars-weak::before {\n content: \"\\f691\"; }\n\n.fa-signal-alt-1::before {\n content: \"\\f691\"; }\n\n.fa-microphone-lines::before {\n content: \"\\f3c9\"; }\n\n.fa-microphone-alt::before {\n content: \"\\f3c9\"; }\n\n.fa-clock-twelve::before {\n content: \"\\e358\"; }\n\n.fa-pepper-hot::before {\n content: \"\\f816\"; }\n\n.fa-citrus-slice::before {\n content: \"\\e2f5\"; }\n\n.fa-sheep::before {\n content: \"\\f711\"; }\n\n.fa-unlock::before {\n content: \"\\f09c\"; }\n\n.fa-colon-sign::before {\n content: \"\\e140\"; }\n\n.fa-headset::before {\n content: \"\\f590\"; }\n\n.fa-badger-honey::before {\n content: \"\\f6b4\"; }\n\n.fa-h4::before {\n content: \"\\f86a\"; }\n\n.fa-store-slash::before {\n content: \"\\e071\"; }\n\n.fa-road-circle-xmark::before {\n content: \"\\e566\"; }\n\n.fa-signal-slash::before {\n content: \"\\f695\"; }\n\n.fa-user-minus::before {\n content: \"\\f503\"; }\n\n.fa-mars-stroke-up::before {\n content: \"\\f22a\"; }\n\n.fa-mars-stroke-v::before {\n content: \"\\f22a\"; }\n\n.fa-champagne-glasses::before {\n content: \"\\f79f\"; }\n\n.fa-glass-cheers::before {\n content: \"\\f79f\"; }\n\n.fa-taco::before {\n content: \"\\f826\"; }\n\n.fa-hexagon-plus::before {\n content: \"\\f300\"; }\n\n.fa-plus-hexagon::before {\n content: \"\\f300\"; }\n\n.fa-clipboard::before {\n content: \"\\f328\"; }\n\n.fa-house-circle-exclamation::before {\n content: \"\\e50a\"; }\n\n.fa-file-arrow-up::before {\n content: \"\\f574\"; }\n\n.fa-file-upload::before {\n content: \"\\f574\"; }\n\n.fa-wifi::before {\n content: \"\\f1eb\"; }\n\n.fa-wifi-3::before {\n content: \"\\f1eb\"; }\n\n.fa-wifi-strong::before {\n content: \"\\f1eb\"; }\n\n.fa-messages::before {\n content: \"\\f4b6\"; }\n\n.fa-comments-alt::before {\n content: \"\\f4b6\"; }\n\n.fa-bath::before {\n content: \"\\f2cd\"; }\n\n.fa-bathtub::before {\n content: \"\\f2cd\"; }\n\n.fa-umbrella-simple::before {\n content: \"\\e2bc\"; }\n\n.fa-umbrella-alt::before {\n content: \"\\e2bc\"; }\n\n.fa-rectangle-history-circle-plus::before {\n content: \"\\e4a3\"; }\n\n.fa-underline::before {\n content: \"\\f0cd\"; }\n\n.fa-prescription-bottle-pill::before {\n content: \"\\e5c0\"; }\n\n.fa-user-pen::before {\n content: \"\\f4ff\"; }\n\n.fa-user-edit::before {\n content: \"\\f4ff\"; }\n\n.fa-binary-slash::before {\n content: \"\\e33e\"; }\n\n.fa-square-o::before {\n content: \"\\e278\"; }\n\n.fa-caduceus::before {\n content: \"\\e681\"; }\n\n.fa-signature::before {\n content: \"\\f5b7\"; }\n\n.fa-stroopwafel::before {\n content: \"\\f551\"; }\n\n.fa-bold::before {\n content: \"\\f032\"; }\n\n.fa-anchor-lock::before {\n content: \"\\e4ad\"; }\n\n.fa-building-ngo::before {\n content: \"\\e4d7\"; }\n\n.fa-transporter-3::before {\n content: \"\\e045\"; }\n\n.fa-engine-warning::before {\n content: \"\\f5f2\"; }\n\n.fa-engine-exclamation::before {\n content: \"\\f5f2\"; }\n\n.fa-circle-down-right::before {\n content: \"\\e108\"; }\n\n.fa-square-k::before {\n content: \"\\e274\"; }\n\n.fa-manat-sign::before {\n content: \"\\e1d5\"; }\n\n.fa-money-check-pen::before {\n content: \"\\f872\"; }\n\n.fa-money-check-edit::before {\n content: \"\\f872\"; }\n\n.fa-not-equal::before {\n content: \"\\f53e\"; }\n\n.fa-border-top-left::before {\n content: \"\\f853\"; }\n\n.fa-border-style::before {\n content: \"\\f853\"; }\n\n.fa-map-location-dot::before {\n content: \"\\f5a0\"; }\n\n.fa-map-marked-alt::before {\n content: \"\\f5a0\"; }\n\n.fa-tilde::before {\n content: \"\\7e\"; }\n\n.fa-jedi::before {\n content: \"\\f669\"; }\n\n.fa-square-poll-vertical::before {\n content: \"\\f681\"; }\n\n.fa-poll::before {\n content: \"\\f681\"; }\n\n.fa-arrow-down-square-triangle::before {\n content: \"\\f889\"; }\n\n.fa-sort-shapes-down-alt::before {\n content: \"\\f889\"; }\n\n.fa-mug-hot::before {\n content: \"\\f7b6\"; }\n\n.fa-dog-leashed::before {\n content: \"\\f6d4\"; }\n\n.fa-car-battery::before {\n content: \"\\f5df\"; }\n\n.fa-battery-car::before {\n content: \"\\f5df\"; }\n\n.fa-face-downcast-sweat::before {\n content: \"\\e371\"; }\n\n.fa-mailbox-flag-up::before {\n content: \"\\e5bb\"; }\n\n.fa-memo-circle-info::before {\n content: \"\\e49a\"; }\n\n.fa-gift::before {\n content: \"\\f06b\"; }\n\n.fa-dice-two::before {\n content: \"\\f528\"; }\n\n.fa-volume::before {\n content: \"\\f6a8\"; }\n\n.fa-volume-medium::before {\n content: \"\\f6a8\"; }\n\n.fa-transporter-5::before {\n content: \"\\e2a6\"; }\n\n.fa-gauge-circle-bolt::before {\n content: \"\\e496\"; }\n\n.fa-coin-front::before {\n content: \"\\e3fc\"; }\n\n.fa-file-slash::before {\n content: \"\\e3a7\"; }\n\n.fa-message-arrow-up-right::before {\n content: \"\\e1dd\"; }\n\n.fa-treasure-chest::before {\n content: \"\\f723\"; }\n\n.fa-chess-queen::before {\n content: \"\\f445\"; }\n\n.fa-paintbrush-fine::before {\n content: \"\\f5a9\"; }\n\n.fa-paint-brush-alt::before {\n content: \"\\f5a9\"; }\n\n.fa-paint-brush-fine::before {\n content: \"\\f5a9\"; }\n\n.fa-paintbrush-alt::before {\n content: \"\\f5a9\"; }\n\n.fa-glasses::before {\n content: \"\\f530\"; }\n\n.fa-hood-cloak::before {\n content: \"\\f6ef\"; }\n\n.fa-square-quote::before {\n content: \"\\e329\"; }\n\n.fa-up-left::before {\n content: \"\\e2bd\"; }\n\n.fa-bring-front::before {\n content: \"\\f857\"; }\n\n.fa-chess-board::before {\n content: \"\\f43c\"; }\n\n.fa-burger-cheese::before {\n content: \"\\f7f1\"; }\n\n.fa-cheeseburger::before {\n content: \"\\f7f1\"; }\n\n.fa-building-circle-check::before {\n content: \"\\e4d2\"; }\n\n.fa-repeat-1::before {\n content: \"\\f365\"; }\n\n.fa-arrow-down-to-line::before {\n content: \"\\f33d\"; }\n\n.fa-arrow-to-bottom::before {\n content: \"\\f33d\"; }\n\n.fa-grid-5::before {\n content: \"\\e199\"; }\n\n.fa-swap-arrows::before {\n content: \"\\e60a\"; }\n\n.fa-right-long-to-line::before {\n content: \"\\e444\"; }\n\n.fa-person-chalkboard::before {\n content: \"\\e53d\"; }\n\n.fa-mars-stroke-right::before {\n content: \"\\f22b\"; }\n\n.fa-mars-stroke-h::before {\n content: \"\\f22b\"; }\n\n.fa-hand-back-fist::before {\n content: \"\\f255\"; }\n\n.fa-hand-rock::before {\n content: \"\\f255\"; }\n\n.fa-grid-round-5::before {\n content: \"\\e5de\"; }\n\n.fa-tally::before {\n content: \"\\f69c\"; }\n\n.fa-tally-5::before {\n content: \"\\f69c\"; }\n\n.fa-square-caret-up::before {\n content: \"\\f151\"; }\n\n.fa-caret-square-up::before {\n content: \"\\f151\"; }\n\n.fa-cloud-showers-water::before {\n content: \"\\e4e4\"; }\n\n.fa-chart-bar::before {\n content: \"\\f080\"; }\n\n.fa-bar-chart::before {\n content: \"\\f080\"; }\n\n.fa-hands-bubbles::before {\n content: \"\\e05e\"; }\n\n.fa-hands-wash::before {\n content: \"\\e05e\"; }\n\n.fa-less-than-equal::before {\n content: \"\\f537\"; }\n\n.fa-train::before {\n content: \"\\f238\"; }\n\n.fa-up-from-dotted-line::before {\n content: \"\\e456\"; }\n\n.fa-eye-low-vision::before {\n content: \"\\f2a8\"; }\n\n.fa-low-vision::before {\n content: \"\\f2a8\"; }\n\n.fa-traffic-light-go::before {\n content: \"\\f638\"; }\n\n.fa-face-exhaling::before {\n content: \"\\e480\"; }\n\n.fa-sensor-fire::before {\n content: \"\\e02a\"; }\n\n.fa-user-unlock::before {\n content: \"\\e058\"; }\n\n.fa-hexagon-divide::before {\n content: \"\\e1ad\"; }\n\n.fa-00::before {\n content: \"\\e467\"; }\n\n.fa-crow::before {\n content: \"\\f520\"; }\n\n.fa-cassette-betamax::before {\n content: \"\\f8a4\"; }\n\n.fa-betamax::before {\n content: \"\\f8a4\"; }\n\n.fa-sailboat::before {\n content: \"\\e445\"; }\n\n.fa-window-restore::before {\n content: \"\\f2d2\"; }\n\n.fa-nfc-magnifying-glass::before {\n content: \"\\e1f9\"; }\n\n.fa-file-binary::before {\n content: \"\\e175\"; }\n\n.fa-circle-v::before {\n content: \"\\e12a\"; }\n\n.fa-square-plus::before {\n content: \"\\f0fe\"; }\n\n.fa-plus-square::before {\n content: \"\\f0fe\"; }\n\n.fa-bowl-scoops::before {\n content: \"\\e3df\"; }\n\n.fa-mistletoe::before {\n content: \"\\f7b4\"; }\n\n.fa-custard::before {\n content: \"\\e403\"; }\n\n.fa-lacrosse-stick::before {\n content: \"\\e3b5\"; }\n\n.fa-hockey-mask::before {\n content: \"\\f6ee\"; }\n\n.fa-sunrise::before {\n content: \"\\f766\"; }\n\n.fa-subtitles::before {\n content: \"\\e60f\"; }\n\n.fa-panel-ews::before {\n content: \"\\e42e\"; }\n\n.fa-torii-gate::before {\n content: \"\\f6a1\"; }\n\n.fa-cloud-exclamation::before {\n content: \"\\e491\"; }\n\n.fa-message-lines::before {\n content: \"\\f4a6\"; }\n\n.fa-comment-alt-lines::before {\n content: \"\\f4a6\"; }\n\n.fa-frog::before {\n content: \"\\f52e\"; }\n\n.fa-bucket::before {\n content: \"\\e4cf\"; }\n\n.fa-floppy-disk-pen::before {\n content: \"\\e182\"; }\n\n.fa-image::before {\n content: \"\\f03e\"; }\n\n.fa-window-frame::before {\n content: \"\\e04f\"; }\n\n.fa-microphone::before {\n content: \"\\f130\"; }\n\n.fa-cow::before {\n content: \"\\f6c8\"; }\n\n.fa-file-zip::before {\n content: \"\\e5ee\"; }\n\n.fa-square-ring::before {\n content: \"\\e44f\"; }\n\n.fa-down-from-line::before {\n content: \"\\f349\"; }\n\n.fa-arrow-alt-from-top::before {\n content: \"\\f349\"; }\n\n.fa-caret-up::before {\n content: \"\\f0d8\"; }\n\n.fa-shield-xmark::before {\n content: \"\\e24c\"; }\n\n.fa-shield-times::before {\n content: \"\\e24c\"; }\n\n.fa-screwdriver::before {\n content: \"\\f54a\"; }\n\n.fa-circle-sort-down::before {\n content: \"\\e031\"; }\n\n.fa-sort-circle-down::before {\n content: \"\\e031\"; }\n\n.fa-folder-closed::before {\n content: \"\\e185\"; }\n\n.fa-house-tsunami::before {\n content: \"\\e515\"; }\n\n.fa-square-nfi::before {\n content: \"\\e576\"; }\n\n.fa-forklift::before {\n content: \"\\f47a\"; }\n\n.fa-arrow-up-from-ground-water::before {\n content: \"\\e4b5\"; }\n\n.fa-bracket-square-right::before {\n content: \"\\5d\"; }\n\n.fa-martini-glass::before {\n content: \"\\f57b\"; }\n\n.fa-glass-martini-alt::before {\n content: \"\\f57b\"; }\n\n.fa-rotate-left::before {\n content: \"\\f2ea\"; }\n\n.fa-rotate-back::before {\n content: \"\\f2ea\"; }\n\n.fa-rotate-backward::before {\n content: \"\\f2ea\"; }\n\n.fa-undo-alt::before {\n content: \"\\f2ea\"; }\n\n.fa-table-columns::before {\n content: \"\\f0db\"; }\n\n.fa-columns::before {\n content: \"\\f0db\"; }\n\n.fa-square-a::before {\n content: \"\\e25f\"; }\n\n.fa-tick::before {\n content: \"\\e32f\"; }\n\n.fa-lemon::before {\n content: \"\\f094\"; }\n\n.fa-head-side-mask::before {\n content: \"\\e063\"; }\n\n.fa-handshake::before {\n content: \"\\f2b5\"; }\n\n.fa-gem::before {\n content: \"\\f3a5\"; }\n\n.fa-dolly::before {\n content: \"\\f472\"; }\n\n.fa-dolly-box::before {\n content: \"\\f472\"; }\n\n.fa-smoking::before {\n content: \"\\f48d\"; }\n\n.fa-minimize::before {\n content: \"\\f78c\"; }\n\n.fa-compress-arrows-alt::before {\n content: \"\\f78c\"; }\n\n.fa-refrigerator::before {\n content: \"\\e026\"; }\n\n.fa-monument::before {\n content: \"\\f5a6\"; }\n\n.fa-octagon-xmark::before {\n content: \"\\f2f0\"; }\n\n.fa-times-octagon::before {\n content: \"\\f2f0\"; }\n\n.fa-xmark-octagon::before {\n content: \"\\f2f0\"; }\n\n.fa-align-slash::before {\n content: \"\\f846\"; }\n\n.fa-snowplow::before {\n content: \"\\f7d2\"; }\n\n.fa-angles-right::before {\n content: \"\\f101\"; }\n\n.fa-angle-double-right::before {\n content: \"\\f101\"; }\n\n.fa-truck-ramp-couch::before {\n content: \"\\f4dd\"; }\n\n.fa-truck-couch::before {\n content: \"\\f4dd\"; }\n\n.fa-cannabis::before {\n content: \"\\f55f\"; }\n\n.fa-circle-play::before {\n content: \"\\f144\"; }\n\n.fa-play-circle::before {\n content: \"\\f144\"; }\n\n.fa-arrow-up-right-and-arrow-down-left-from-center::before {\n content: \"\\e0a0\"; }\n\n.fa-location-arrow-up::before {\n content: \"\\e63a\"; }\n\n.fa-tablets::before {\n content: \"\\f490\"; }\n\n.fa-360-degrees::before {\n content: \"\\e2dc\"; }\n\n.fa-ethernet::before {\n content: \"\\f796\"; }\n\n.fa-euro-sign::before {\n content: \"\\f153\"; }\n\n.fa-eur::before {\n content: \"\\f153\"; }\n\n.fa-euro::before {\n content: \"\\f153\"; }\n\n.fa-chair::before {\n content: \"\\f6c0\"; }\n\n.fa-circle-check::before {\n content: \"\\f058\"; }\n\n.fa-check-circle::before {\n content: \"\\f058\"; }\n\n.fa-square-dashed-circle-plus::before {\n content: \"\\e5c2\"; }\n\n.fa-hand-holding-circle-dollar::before {\n content: \"\\e621\"; }\n\n.fa-money-simple-from-bracket::before {\n content: \"\\e313\"; }\n\n.fa-bat::before {\n content: \"\\f6b5\"; }\n\n.fa-circle-stop::before {\n content: \"\\f28d\"; }\n\n.fa-stop-circle::before {\n content: \"\\f28d\"; }\n\n.fa-head-side-headphones::before {\n content: \"\\f8c2\"; }\n\n.fa-phone-rotary::before {\n content: \"\\f8d3\"; }\n\n.fa-arrow-up-to-bracket::before {\n content: \"\\e66a\"; }\n\n.fa-compass-drafting::before {\n content: \"\\f568\"; }\n\n.fa-drafting-compass::before {\n content: \"\\f568\"; }\n\n.fa-plate-wheat::before {\n content: \"\\e55a\"; }\n\n.fa-calendar-circle-minus::before {\n content: \"\\e46f\"; }\n\n.fa-chopsticks::before {\n content: \"\\e3f7\"; }\n\n.fa-car-wrench::before {\n content: \"\\f5e3\"; }\n\n.fa-car-mechanic::before {\n content: \"\\f5e3\"; }\n\n.fa-icicles::before {\n content: \"\\f7ad\"; }\n\n.fa-person-shelter::before {\n content: \"\\e54f\"; }\n\n.fa-neuter::before {\n content: \"\\f22c\"; }\n\n.fa-id-badge::before {\n content: \"\\f2c1\"; }\n\n.fa-kazoo::before {\n content: \"\\f8c7\"; }\n\n.fa-marker::before {\n content: \"\\f5a1\"; }\n\n.fa-bin-bottles::before {\n content: \"\\e5f5\"; }\n\n.fa-face-laugh-beam::before {\n content: \"\\f59a\"; }\n\n.fa-laugh-beam::before {\n content: \"\\f59a\"; }\n\n.fa-square-arrow-down-left::before {\n content: \"\\e261\"; }\n\n.fa-battery-bolt::before {\n content: \"\\f376\"; }\n\n.fa-tree-large::before {\n content: \"\\f7dd\"; }\n\n.fa-helicopter-symbol::before {\n content: \"\\e502\"; }\n\n.fa-aperture::before {\n content: \"\\e2df\"; }\n\n.fa-universal-access::before {\n content: \"\\f29a\"; }\n\n.fa-gear-complex::before {\n content: \"\\e5e9\"; }\n\n.fa-file-magnifying-glass::before {\n content: \"\\f865\"; }\n\n.fa-file-search::before {\n content: \"\\f865\"; }\n\n.fa-up-right::before {\n content: \"\\e2be\"; }\n\n.fa-circle-chevron-up::before {\n content: \"\\f139\"; }\n\n.fa-chevron-circle-up::before {\n content: \"\\f139\"; }\n\n.fa-user-police::before {\n content: \"\\e333\"; }\n\n.fa-lari-sign::before {\n content: \"\\e1c8\"; }\n\n.fa-volcano::before {\n content: \"\\f770\"; }\n\n.fa-teddy-bear::before {\n content: \"\\e3cf\"; }\n\n.fa-stocking::before {\n content: \"\\f7d5\"; }\n\n.fa-person-walking-dashed-line-arrow-right::before {\n content: \"\\e553\"; }\n\n.fa-image-slash::before {\n content: \"\\e1b7\"; }\n\n.fa-mask-snorkel::before {\n content: \"\\e3b7\"; }\n\n.fa-smoke::before {\n content: \"\\f760\"; }\n\n.fa-sterling-sign::before {\n content: \"\\f154\"; }\n\n.fa-gbp::before {\n content: \"\\f154\"; }\n\n.fa-pound-sign::before {\n content: \"\\f154\"; }\n\n.fa-battery-exclamation::before {\n content: \"\\e0b0\"; }\n\n.fa-viruses::before {\n content: \"\\e076\"; }\n\n.fa-square-person-confined::before {\n content: \"\\e577\"; }\n\n.fa-user-tie::before {\n content: \"\\f508\"; }\n\n.fa-up-to-bracket::before {\n content: \"\\e66e\"; }\n\n.fa-arrow-down-long::before {\n content: \"\\f175\"; }\n\n.fa-long-arrow-down::before {\n content: \"\\f175\"; }\n\n.fa-tent-arrow-down-to-line::before {\n content: \"\\e57e\"; }\n\n.fa-certificate::before {\n content: \"\\f0a3\"; }\n\n.fa-crystal-ball::before {\n content: \"\\e362\"; }\n\n.fa-reply-all::before {\n content: \"\\f122\"; }\n\n.fa-mail-reply-all::before {\n content: \"\\f122\"; }\n\n.fa-suitcase::before {\n content: \"\\f0f2\"; }\n\n.fa-person-skating::before {\n content: \"\\f7c5\"; }\n\n.fa-skating::before {\n content: \"\\f7c5\"; }\n\n.fa-star-shooting::before {\n content: \"\\e036\"; }\n\n.fa-binary-lock::before {\n content: \"\\e33d\"; }\n\n.fa-filter-circle-dollar::before {\n content: \"\\f662\"; }\n\n.fa-funnel-dollar::before {\n content: \"\\f662\"; }\n\n.fa-camera-retro::before {\n content: \"\\f083\"; }\n\n.fa-circle-arrow-down::before {\n content: \"\\f0ab\"; }\n\n.fa-arrow-circle-down::before {\n content: \"\\f0ab\"; }\n\n.fa-comment-pen::before {\n content: \"\\f4ae\"; }\n\n.fa-comment-edit::before {\n content: \"\\f4ae\"; }\n\n.fa-file-import::before {\n content: \"\\f56f\"; }\n\n.fa-arrow-right-to-file::before {\n content: \"\\f56f\"; }\n\n.fa-banjo::before {\n content: \"\\f8a3\"; }\n\n.fa-square-arrow-up-right::before {\n content: \"\\f14c\"; }\n\n.fa-external-link-square::before {\n content: \"\\f14c\"; }\n\n.fa-light-emergency-on::before {\n content: \"\\e420\"; }\n\n.fa-kerning::before {\n content: \"\\f86f\"; }\n\n.fa-box-open::before {\n content: \"\\f49e\"; }\n\n.fa-square-f::before {\n content: \"\\e270\"; }\n\n.fa-scroll::before {\n content: \"\\f70e\"; }\n\n.fa-spa::before {\n content: \"\\f5bb\"; }\n\n.fa-arrow-left-from-line::before {\n content: \"\\f344\"; }\n\n.fa-arrow-from-right::before {\n content: \"\\f344\"; }\n\n.fa-strawberry::before {\n content: \"\\e32b\"; }\n\n.fa-location-pin-lock::before {\n content: \"\\e51f\"; }\n\n.fa-pause::before {\n content: \"\\f04c\"; }\n\n.fa-clock-eight-thirty::before {\n content: \"\\e346\"; }\n\n.fa-plane-engines::before {\n content: \"\\f3de\"; }\n\n.fa-plane-alt::before {\n content: \"\\f3de\"; }\n\n.fa-hill-avalanche::before {\n content: \"\\e507\"; }\n\n.fa-temperature-empty::before {\n content: \"\\f2cb\"; }\n\n.fa-temperature-0::before {\n content: \"\\f2cb\"; }\n\n.fa-thermometer-0::before {\n content: \"\\f2cb\"; }\n\n.fa-thermometer-empty::before {\n content: \"\\f2cb\"; }\n\n.fa-bomb::before {\n content: \"\\f1e2\"; }\n\n.fa-gauge-low::before {\n content: \"\\f627\"; }\n\n.fa-tachometer-alt-slow::before {\n content: \"\\f627\"; }\n\n.fa-registered::before {\n content: \"\\f25d\"; }\n\n.fa-trash-can-plus::before {\n content: \"\\e2ac\"; }\n\n.fa-address-card::before {\n content: \"\\f2bb\"; }\n\n.fa-contact-card::before {\n content: \"\\f2bb\"; }\n\n.fa-vcard::before {\n content: \"\\f2bb\"; }\n\n.fa-scale-unbalanced-flip::before {\n content: \"\\f516\"; }\n\n.fa-balance-scale-right::before {\n content: \"\\f516\"; }\n\n.fa-globe-snow::before {\n content: \"\\f7a3\"; }\n\n.fa-subscript::before {\n content: \"\\f12c\"; }\n\n.fa-diamond-turn-right::before {\n content: \"\\f5eb\"; }\n\n.fa-directions::before {\n content: \"\\f5eb\"; }\n\n.fa-integral::before {\n content: \"\\f667\"; }\n\n.fa-burst::before {\n content: \"\\e4dc\"; }\n\n.fa-house-laptop::before {\n content: \"\\e066\"; }\n\n.fa-laptop-house::before {\n content: \"\\e066\"; }\n\n.fa-face-tired::before {\n content: \"\\f5c8\"; }\n\n.fa-tired::before {\n content: \"\\f5c8\"; }\n\n.fa-money-bills::before {\n content: \"\\e1f3\"; }\n\n.fa-blinds-raised::before {\n content: \"\\f8fd\"; }\n\n.fa-smog::before {\n content: \"\\f75f\"; }\n\n.fa-ufo-beam::before {\n content: \"\\e048\"; }\n\n.fa-circle-caret-up::before {\n content: \"\\f331\"; }\n\n.fa-caret-circle-up::before {\n content: \"\\f331\"; }\n\n.fa-user-vneck-hair-long::before {\n content: \"\\e463\"; }\n\n.fa-square-a-lock::before {\n content: \"\\e44d\"; }\n\n.fa-crutch::before {\n content: \"\\f7f7\"; }\n\n.fa-gas-pump-slash::before {\n content: \"\\f5f4\"; }\n\n.fa-cloud-arrow-up::before {\n content: \"\\f0ee\"; }\n\n.fa-cloud-upload::before {\n content: \"\\f0ee\"; }\n\n.fa-cloud-upload-alt::before {\n content: \"\\f0ee\"; }\n\n.fa-palette::before {\n content: \"\\f53f\"; }\n\n.fa-transporter-4::before {\n content: \"\\e2a5\"; }\n\n.fa-chart-mixed-up-circle-currency::before {\n content: \"\\e5d8\"; }\n\n.fa-objects-align-right::before {\n content: \"\\e3bf\"; }\n\n.fa-arrows-turn-right::before {\n content: \"\\e4c0\"; }\n\n.fa-vest::before {\n content: \"\\e085\"; }\n\n.fa-pig::before {\n content: \"\\f706\"; }\n\n.fa-inbox-full::before {\n content: \"\\e1ba\"; }\n\n.fa-circle-envelope::before {\n content: \"\\e10c\"; }\n\n.fa-envelope-circle::before {\n content: \"\\e10c\"; }\n\n.fa-triangle-person-digging::before {\n content: \"\\f85d\"; }\n\n.fa-construction::before {\n content: \"\\f85d\"; }\n\n.fa-ferry::before {\n content: \"\\e4ea\"; }\n\n.fa-bullseye-arrow::before {\n content: \"\\f648\"; }\n\n.fa-arrows-down-to-people::before {\n content: \"\\e4b9\"; }\n\n.fa-seedling::before {\n content: \"\\f4d8\"; }\n\n.fa-sprout::before {\n content: \"\\f4d8\"; }\n\n.fa-clock-seven::before {\n content: \"\\e350\"; }\n\n.fa-left-right::before {\n content: \"\\f337\"; }\n\n.fa-arrows-alt-h::before {\n content: \"\\f337\"; }\n\n.fa-boxes-packing::before {\n content: \"\\e4c7\"; }\n\n.fa-circle-arrow-left::before {\n content: \"\\f0a8\"; }\n\n.fa-arrow-circle-left::before {\n content: \"\\f0a8\"; }\n\n.fa-flashlight::before {\n content: \"\\f8b8\"; }\n\n.fa-file-jpg::before {\n content: \"\\e646\"; }\n\n.fa-group-arrows-rotate::before {\n content: \"\\e4f6\"; }\n\n.fa-bowl-food::before {\n content: \"\\e4c6\"; }\n\n.fa-square-9::before {\n content: \"\\e25e\"; }\n\n.fa-candy-cane::before {\n content: \"\\f786\"; }\n\n.fa-arrow-down-wide-short::before {\n content: \"\\f160\"; }\n\n.fa-sort-amount-asc::before {\n content: \"\\f160\"; }\n\n.fa-sort-amount-down::before {\n content: \"\\f160\"; }\n\n.fa-square-dollar::before {\n content: \"\\f2e9\"; }\n\n.fa-dollar-square::before {\n content: \"\\f2e9\"; }\n\n.fa-usd-square::before {\n content: \"\\f2e9\"; }\n\n.fa-phone-arrow-right::before {\n content: \"\\e5be\"; }\n\n.fa-hand-holding-seedling::before {\n content: \"\\f4bf\"; }\n\n.fa-message-check::before {\n content: \"\\f4a2\"; }\n\n.fa-comment-alt-check::before {\n content: \"\\f4a2\"; }\n\n.fa-cloud-bolt::before {\n content: \"\\f76c\"; }\n\n.fa-thunderstorm::before {\n content: \"\\f76c\"; }\n\n.fa-chart-line-up-down::before {\n content: \"\\e5d7\"; }\n\n.fa-text-slash::before {\n content: \"\\f87d\"; }\n\n.fa-remove-format::before {\n content: \"\\f87d\"; }\n\n.fa-watch::before {\n content: \"\\f2e1\"; }\n\n.fa-circle-down-left::before {\n content: \"\\e107\"; }\n\n.fa-text::before {\n content: \"\\f893\"; }\n\n.fa-projector::before {\n content: \"\\f8d6\"; }\n\n.fa-face-smile-wink::before {\n content: \"\\f4da\"; }\n\n.fa-smile-wink::before {\n content: \"\\f4da\"; }\n\n.fa-tombstone-blank::before {\n content: \"\\f721\"; }\n\n.fa-tombstone-alt::before {\n content: \"\\f721\"; }\n\n.fa-chess-king-piece::before {\n content: \"\\f440\"; }\n\n.fa-chess-king-alt::before {\n content: \"\\f440\"; }\n\n.fa-circle-6::before {\n content: \"\\e0f3\"; }\n\n.fa-waves-sine::before {\n content: \"\\e65d\"; }\n\n.fa-left::before {\n content: \"\\f355\"; }\n\n.fa-arrow-alt-left::before {\n content: \"\\f355\"; }\n\n.fa-file-word::before {\n content: \"\\f1c2\"; }\n\n.fa-file-powerpoint::before {\n content: \"\\f1c4\"; }\n\n.fa-square-down::before {\n content: \"\\f350\"; }\n\n.fa-arrow-alt-square-down::before {\n content: \"\\f350\"; }\n\n.fa-objects-align-center-vertical::before {\n content: \"\\e3bd\"; }\n\n.fa-arrows-left-right::before {\n content: \"\\f07e\"; }\n\n.fa-arrows-h::before {\n content: \"\\f07e\"; }\n\n.fa-house-lock::before {\n content: \"\\e510\"; }\n\n.fa-cloud-arrow-down::before {\n content: \"\\f0ed\"; }\n\n.fa-cloud-download::before {\n content: \"\\f0ed\"; }\n\n.fa-cloud-download-alt::before {\n content: \"\\f0ed\"; }\n\n.fa-wreath::before {\n content: \"\\f7e2\"; }\n\n.fa-children::before {\n content: \"\\e4e1\"; }\n\n.fa-meter-droplet::before {\n content: \"\\e1ea\"; }\n\n.fa-chalkboard::before {\n content: \"\\f51b\"; }\n\n.fa-blackboard::before {\n content: \"\\f51b\"; }\n\n.fa-user-large-slash::before {\n content: \"\\f4fa\"; }\n\n.fa-user-alt-slash::before {\n content: \"\\f4fa\"; }\n\n.fa-signal-strong::before {\n content: \"\\f68f\"; }\n\n.fa-signal-4::before {\n content: \"\\f68f\"; }\n\n.fa-lollipop::before {\n content: \"\\e424\"; }\n\n.fa-lollypop::before {\n content: \"\\e424\"; }\n\n.fa-list-tree::before {\n content: \"\\e1d2\"; }\n\n.fa-envelope-open::before {\n content: \"\\f2b6\"; }\n\n.fa-draw-circle::before {\n content: \"\\f5ed\"; }\n\n.fa-cat-space::before {\n content: \"\\e001\"; }\n\n.fa-handshake-simple-slash::before {\n content: \"\\e05f\"; }\n\n.fa-handshake-alt-slash::before {\n content: \"\\e05f\"; }\n\n.fa-rabbit-running::before {\n content: \"\\f709\"; }\n\n.fa-rabbit-fast::before {\n content: \"\\f709\"; }\n\n.fa-memo-pad::before {\n content: \"\\e1da\"; }\n\n.fa-mattress-pillow::before {\n content: \"\\e525\"; }\n\n.fa-alarm-plus::before {\n content: \"\\f844\"; }\n\n.fa-alicorn::before {\n content: \"\\f6b0\"; }\n\n.fa-comment-question::before {\n content: \"\\e14b\"; }\n\n.fa-gingerbread-man::before {\n content: \"\\f79d\"; }\n\n.fa-guarani-sign::before {\n content: \"\\e19a\"; }\n\n.fa-burger-fries::before {\n content: \"\\e0cd\"; }\n\n.fa-mug-tea::before {\n content: \"\\f875\"; }\n\n.fa-border-top::before {\n content: \"\\f855\"; }\n\n.fa-arrows-rotate::before {\n content: \"\\f021\"; }\n\n.fa-refresh::before {\n content: \"\\f021\"; }\n\n.fa-sync::before {\n content: \"\\f021\"; }\n\n.fa-circle-book-open::before {\n content: \"\\e0ff\"; }\n\n.fa-book-circle::before {\n content: \"\\e0ff\"; }\n\n.fa-arrows-to-dotted-line::before {\n content: \"\\e0a6\"; }\n\n.fa-fire-extinguisher::before {\n content: \"\\f134\"; }\n\n.fa-magnifying-glass-arrows-rotate::before {\n content: \"\\e65e\"; }\n\n.fa-garage-open::before {\n content: \"\\e00b\"; }\n\n.fa-shelves-empty::before {\n content: \"\\e246\"; }\n\n.fa-cruzeiro-sign::before {\n content: \"\\e152\"; }\n\n.fa-watch-apple::before {\n content: \"\\e2cb\"; }\n\n.fa-watch-calculator::before {\n content: \"\\f8f0\"; }\n\n.fa-list-dropdown::before {\n content: \"\\e1cf\"; }\n\n.fa-cabinet-filing::before {\n content: \"\\f64b\"; }\n\n.fa-burger-soda::before {\n content: \"\\f858\"; }\n\n.fa-square-arrow-up::before {\n content: \"\\f33c\"; }\n\n.fa-arrow-square-up::before {\n content: \"\\f33c\"; }\n\n.fa-greater-than-equal::before {\n content: \"\\f532\"; }\n\n.fa-pallet-box::before {\n content: \"\\e208\"; }\n\n.fa-face-confounded::before {\n content: \"\\e36c\"; }\n\n.fa-shield-halved::before {\n content: \"\\f3ed\"; }\n\n.fa-shield-alt::before {\n content: \"\\f3ed\"; }\n\n.fa-truck-plow::before {\n content: \"\\f7de\"; }\n\n.fa-book-atlas::before {\n content: \"\\f558\"; }\n\n.fa-atlas::before {\n content: \"\\f558\"; }\n\n.fa-virus::before {\n content: \"\\e074\"; }\n\n.fa-grid-round-2::before {\n content: \"\\e5db\"; }\n\n.fa-comment-middle-top::before {\n content: \"\\e14a\"; }\n\n.fa-wave::before {\n content: \"\\e65b\"; }\n\n.fa-envelope-circle-check::before {\n content: \"\\e4e8\"; }\n\n.fa-layer-group::before {\n content: \"\\f5fd\"; }\n\n.fa-restroom-simple::before {\n content: \"\\e23a\"; }\n\n.fa-arrows-to-dot::before {\n content: \"\\e4be\"; }\n\n.fa-border-outer::before {\n content: \"\\f851\"; }\n\n.fa-hashtag-lock::before {\n content: \"\\e415\"; }\n\n.fa-clock-two-thirty::before {\n content: \"\\e35b\"; }\n\n.fa-archway::before {\n content: \"\\f557\"; }\n\n.fa-heart-circle-check::before {\n content: \"\\e4fd\"; }\n\n.fa-house-chimney-crack::before {\n content: \"\\f6f1\"; }\n\n.fa-house-damage::before {\n content: \"\\f6f1\"; }\n\n.fa-file-zipper::before {\n content: \"\\f1c6\"; }\n\n.fa-file-archive::before {\n content: \"\\f1c6\"; }\n\n.fa-ticket-perforated::before {\n content: \"\\e63e\"; }\n\n.fa-heart-half::before {\n content: \"\\e1ab\"; }\n\n.fa-comment-check::before {\n content: \"\\f4ac\"; }\n\n.fa-square::before {\n content: \"\\f0c8\"; }\n\n.fa-memo::before {\n content: \"\\e1d8\"; }\n\n.fa-martini-glass-empty::before {\n content: \"\\f000\"; }\n\n.fa-glass-martini::before {\n content: \"\\f000\"; }\n\n.fa-couch::before {\n content: \"\\f4b8\"; }\n\n.fa-cedi-sign::before {\n content: \"\\e0df\"; }\n\n.fa-italic::before {\n content: \"\\f033\"; }\n\n.fa-glass-citrus::before {\n content: \"\\f869\"; }\n\n.fa-calendar-lines-pen::before {\n content: \"\\e472\"; }\n\n.fa-table-cells-column-lock::before {\n content: \"\\e678\"; }\n\n.fa-church::before {\n content: \"\\f51d\"; }\n\n.fa-person-snowmobiling::before {\n content: \"\\f7d1\"; }\n\n.fa-snowmobile::before {\n content: \"\\f7d1\"; }\n\n.fa-face-hushed::before {\n content: \"\\e37b\"; }\n\n.fa-comments-dollar::before {\n content: \"\\f653\"; }\n\n.fa-tickets-simple::before {\n content: \"\\e659\"; }\n\n.fa-pickaxe::before {\n content: \"\\e5bf\"; }\n\n.fa-link-simple-slash::before {\n content: \"\\e1ce\"; }\n\n.fa-democrat::before {\n content: \"\\f747\"; }\n\n.fa-face-confused::before {\n content: \"\\e36d\"; }\n\n.fa-pinball::before {\n content: \"\\e229\"; }\n\n.fa-z::before {\n content: \"\\5a\"; }\n\n.fa-person-skiing::before {\n content: \"\\f7c9\"; }\n\n.fa-skiing::before {\n content: \"\\f7c9\"; }\n\n.fa-deer::before {\n content: \"\\f78e\"; }\n\n.fa-input-pipe::before {\n content: \"\\e1be\"; }\n\n.fa-road-lock::before {\n content: \"\\e567\"; }\n\n.fa-a::before {\n content: \"\\41\"; }\n\n.fa-bookmark-slash::before {\n content: \"\\e0c2\"; }\n\n.fa-temperature-arrow-down::before {\n content: \"\\e03f\"; }\n\n.fa-temperature-down::before {\n content: \"\\e03f\"; }\n\n.fa-mace::before {\n content: \"\\f6f8\"; }\n\n.fa-feather-pointed::before {\n content: \"\\f56b\"; }\n\n.fa-feather-alt::before {\n content: \"\\f56b\"; }\n\n.fa-sausage::before {\n content: \"\\f820\"; }\n\n.fa-trash-can-clock::before {\n content: \"\\e2aa\"; }\n\n.fa-p::before {\n content: \"\\50\"; }\n\n.fa-broom-wide::before {\n content: \"\\e5d1\"; }\n\n.fa-snowflake::before {\n content: \"\\f2dc\"; }\n\n.fa-stomach::before {\n content: \"\\f623\"; }\n\n.fa-newspaper::before {\n content: \"\\f1ea\"; }\n\n.fa-rectangle-ad::before {\n content: \"\\f641\"; }\n\n.fa-ad::before {\n content: \"\\f641\"; }\n\n.fa-guitar-electric::before {\n content: \"\\f8be\"; }\n\n.fa-arrow-turn-down-right::before {\n content: \"\\e3d6\"; }\n\n.fa-moon-cloud::before {\n content: \"\\f754\"; }\n\n.fa-bread-slice-butter::before {\n content: \"\\e3e1\"; }\n\n.fa-circle-arrow-right::before {\n content: \"\\f0a9\"; }\n\n.fa-arrow-circle-right::before {\n content: \"\\f0a9\"; }\n\n.fa-user-group-crown::before {\n content: \"\\f6a5\"; }\n\n.fa-users-crown::before {\n content: \"\\f6a5\"; }\n\n.fa-circle-i::before {\n content: \"\\e111\"; }\n\n.fa-toilet-paper-check::before {\n content: \"\\e5b2\"; }\n\n.fa-filter-circle-xmark::before {\n content: \"\\e17b\"; }\n\n.fa-locust::before {\n content: \"\\e520\"; }\n\n.fa-sort::before {\n content: \"\\f0dc\"; }\n\n.fa-unsorted::before {\n content: \"\\f0dc\"; }\n\n.fa-list-ol::before {\n content: \"\\f0cb\"; }\n\n.fa-list-1-2::before {\n content: \"\\f0cb\"; }\n\n.fa-list-numeric::before {\n content: \"\\f0cb\"; }\n\n.fa-chart-waterfall::before {\n content: \"\\e0eb\"; }\n\n.fa-sparkle::before {\n content: \"\\e5d6\"; }\n\n.fa-face-party::before {\n content: \"\\e383\"; }\n\n.fa-kidneys::before {\n content: \"\\f5fb\"; }\n\n.fa-wifi-exclamation::before {\n content: \"\\e2cf\"; }\n\n.fa-chart-network::before {\n content: \"\\f78a\"; }\n\n.fa-person-dress-burst::before {\n content: \"\\e544\"; }\n\n.fa-dice-d4::before {\n content: \"\\f6d0\"; }\n\n.fa-money-check-dollar::before {\n content: \"\\f53d\"; }\n\n.fa-money-check-alt::before {\n content: \"\\f53d\"; }\n\n.fa-vector-square::before {\n content: \"\\f5cb\"; }\n\n.fa-bread-slice::before {\n content: \"\\f7ec\"; }\n\n.fa-language::before {\n content: \"\\f1ab\"; }\n\n.fa-wheat-awn-slash::before {\n content: \"\\e338\"; }\n\n.fa-face-kiss-wink-heart::before {\n content: \"\\f598\"; }\n\n.fa-kiss-wink-heart::before {\n content: \"\\f598\"; }\n\n.fa-dagger::before {\n content: \"\\f6cb\"; }\n\n.fa-podium::before {\n content: \"\\f680\"; }\n\n.fa-memo-circle-check::before {\n content: \"\\e1d9\"; }\n\n.fa-route-highway::before {\n content: \"\\f61a\"; }\n\n.fa-down-to-line::before {\n content: \"\\f34a\"; }\n\n.fa-arrow-alt-to-bottom::before {\n content: \"\\f34a\"; }\n\n.fa-filter::before {\n content: \"\\f0b0\"; }\n\n.fa-square-g::before {\n content: \"\\e271\"; }\n\n.fa-circle-phone::before {\n content: \"\\e11b\"; }\n\n.fa-phone-circle::before {\n content: \"\\e11b\"; }\n\n.fa-clipboard-prescription::before {\n content: \"\\f5e8\"; }\n\n.fa-user-nurse-hair::before {\n content: \"\\e45d\"; }\n\n.fa-question::before {\n content: \"\\3f\"; }\n\n.fa-file-signature::before {\n content: \"\\f573\"; }\n\n.fa-toggle-large-on::before {\n content: \"\\e5b1\"; }\n\n.fa-up-down-left-right::before {\n content: \"\\f0b2\"; }\n\n.fa-arrows-alt::before {\n content: \"\\f0b2\"; }\n\n.fa-dryer-heat::before {\n content: \"\\f862\"; }\n\n.fa-dryer-alt::before {\n content: \"\\f862\"; }\n\n.fa-house-chimney-user::before {\n content: \"\\e065\"; }\n\n.fa-hand-holding-heart::before {\n content: \"\\f4be\"; }\n\n.fa-arrow-up-small-big::before {\n content: \"\\f88f\"; }\n\n.fa-sort-size-up-alt::before {\n content: \"\\f88f\"; }\n\n.fa-train-track::before {\n content: \"\\e453\"; }\n\n.fa-puzzle-piece::before {\n content: \"\\f12e\"; }\n\n.fa-money-check::before {\n content: \"\\f53c\"; }\n\n.fa-star-half-stroke::before {\n content: \"\\f5c0\"; }\n\n.fa-star-half-alt::before {\n content: \"\\f5c0\"; }\n\n.fa-file-exclamation::before {\n content: \"\\f31a\"; }\n\n.fa-code::before {\n content: \"\\f121\"; }\n\n.fa-whiskey-glass::before {\n content: \"\\f7a0\"; }\n\n.fa-glass-whiskey::before {\n content: \"\\f7a0\"; }\n\n.fa-moon-stars::before {\n content: \"\\f755\"; }\n\n.fa-building-circle-exclamation::before {\n content: \"\\e4d3\"; }\n\n.fa-clothes-hanger::before {\n content: \"\\e136\"; }\n\n.fa-mobile-notch::before {\n content: \"\\e1ee\"; }\n\n.fa-mobile-iphone::before {\n content: \"\\e1ee\"; }\n\n.fa-magnifying-glass-chart::before {\n content: \"\\e522\"; }\n\n.fa-arrow-up-right-from-square::before {\n content: \"\\f08e\"; }\n\n.fa-external-link::before {\n content: \"\\f08e\"; }\n\n.fa-cubes-stacked::before {\n content: \"\\e4e6\"; }\n\n.fa-images-user::before {\n content: \"\\e1b9\"; }\n\n.fa-won-sign::before {\n content: \"\\f159\"; }\n\n.fa-krw::before {\n content: \"\\f159\"; }\n\n.fa-won::before {\n content: \"\\f159\"; }\n\n.fa-image-polaroid-user::before {\n content: \"\\e1b6\"; }\n\n.fa-virus-covid::before {\n content: \"\\e4a8\"; }\n\n.fa-square-ellipsis::before {\n content: \"\\e26e\"; }\n\n.fa-pie::before {\n content: \"\\f705\"; }\n\n.fa-chess-knight-piece::before {\n content: \"\\f442\"; }\n\n.fa-chess-knight-alt::before {\n content: \"\\f442\"; }\n\n.fa-austral-sign::before {\n content: \"\\e0a9\"; }\n\n.fa-cloud-plus::before {\n content: \"\\e35e\"; }\n\n.fa-f::before {\n content: \"\\46\"; }\n\n.fa-leaf::before {\n content: \"\\f06c\"; }\n\n.fa-bed-bunk::before {\n content: \"\\f8f8\"; }\n\n.fa-road::before {\n content: \"\\f018\"; }\n\n.fa-taxi::before {\n content: \"\\f1ba\"; }\n\n.fa-cab::before {\n content: \"\\f1ba\"; }\n\n.fa-person-circle-plus::before {\n content: \"\\e541\"; }\n\n.fa-chart-pie::before {\n content: \"\\f200\"; }\n\n.fa-pie-chart::before {\n content: \"\\f200\"; }\n\n.fa-bolt-lightning::before {\n content: \"\\e0b7\"; }\n\n.fa-clock-eight::before {\n content: \"\\e345\"; }\n\n.fa-sack-xmark::before {\n content: \"\\e56a\"; }\n\n.fa-file-xls::before {\n content: \"\\e64d\"; }\n\n.fa-file-excel::before {\n content: \"\\f1c3\"; }\n\n.fa-file-contract::before {\n content: \"\\f56c\"; }\n\n.fa-fish-fins::before {\n content: \"\\e4f2\"; }\n\n.fa-circle-q::before {\n content: \"\\e11e\"; }\n\n.fa-building-flag::before {\n content: \"\\e4d5\"; }\n\n.fa-face-grin-beam::before {\n content: \"\\f582\"; }\n\n.fa-grin-beam::before {\n content: \"\\f582\"; }\n\n.fa-object-ungroup::before {\n content: \"\\f248\"; }\n\n.fa-face-disguise::before {\n content: \"\\e370\"; }\n\n.fa-circle-arrow-down-right::before {\n content: \"\\e0fa\"; }\n\n.fa-alien-8bit::before {\n content: \"\\f8f6\"; }\n\n.fa-alien-monster::before {\n content: \"\\f8f6\"; }\n\n.fa-hand-point-ribbon::before {\n content: \"\\e1a6\"; }\n\n.fa-poop::before {\n content: \"\\f619\"; }\n\n.fa-object-exclude::before {\n content: \"\\e49c\"; }\n\n.fa-telescope::before {\n content: \"\\e03e\"; }\n\n.fa-location-pin::before {\n content: \"\\f041\"; }\n\n.fa-map-marker::before {\n content: \"\\f041\"; }\n\n.fa-square-list::before {\n content: \"\\e489\"; }\n\n.fa-kaaba::before {\n content: \"\\f66b\"; }\n\n.fa-toilet-paper::before {\n content: \"\\f71e\"; }\n\n.fa-helmet-safety::before {\n content: \"\\f807\"; }\n\n.fa-hard-hat::before {\n content: \"\\f807\"; }\n\n.fa-hat-hard::before {\n content: \"\\f807\"; }\n\n.fa-comment-code::before {\n content: \"\\e147\"; }\n\n.fa-sim-cards::before {\n content: \"\\e251\"; }\n\n.fa-starship::before {\n content: \"\\e039\"; }\n\n.fa-eject::before {\n content: \"\\f052\"; }\n\n.fa-circle-right::before {\n content: \"\\f35a\"; }\n\n.fa-arrow-alt-circle-right::before {\n content: \"\\f35a\"; }\n\n.fa-plane-circle-check::before {\n content: \"\\e555\"; }\n\n.fa-seal::before {\n content: \"\\e241\"; }\n\n.fa-user-cowboy::before {\n content: \"\\f8ea\"; }\n\n.fa-hexagon-vertical-nft::before {\n content: \"\\e505\"; }\n\n.fa-face-rolling-eyes::before {\n content: \"\\f5a5\"; }\n\n.fa-meh-rolling-eyes::before {\n content: \"\\f5a5\"; }\n\n.fa-bread-loaf::before {\n content: \"\\f7eb\"; }\n\n.fa-rings-wedding::before {\n content: \"\\f81b\"; }\n\n.fa-object-group::before {\n content: \"\\f247\"; }\n\n.fa-french-fries::before {\n content: \"\\f803\"; }\n\n.fa-chart-line::before {\n content: \"\\f201\"; }\n\n.fa-line-chart::before {\n content: \"\\f201\"; }\n\n.fa-calendar-arrow-down::before {\n content: \"\\e0d0\"; }\n\n.fa-calendar-download::before {\n content: \"\\e0d0\"; }\n\n.fa-send-back::before {\n content: \"\\f87e\"; }\n\n.fa-mask-ventilator::before {\n content: \"\\e524\"; }\n\n.fa-tickets::before {\n content: \"\\e658\"; }\n\n.fa-signature-lock::before {\n content: \"\\e3ca\"; }\n\n.fa-arrow-right::before {\n content: \"\\f061\"; }\n\n.fa-signs-post::before {\n content: \"\\f277\"; }\n\n.fa-map-signs::before {\n content: \"\\f277\"; }\n\n.fa-octagon-plus::before {\n content: \"\\f301\"; }\n\n.fa-plus-octagon::before {\n content: \"\\f301\"; }\n\n.fa-cash-register::before {\n content: \"\\f788\"; }\n\n.fa-person-circle-question::before {\n content: \"\\e542\"; }\n\n.fa-melon-slice::before {\n content: \"\\e311\"; }\n\n.fa-space-station-moon::before {\n content: \"\\e033\"; }\n\n.fa-message-smile::before {\n content: \"\\f4aa\"; }\n\n.fa-comment-alt-smile::before {\n content: \"\\f4aa\"; }\n\n.fa-cup-straw::before {\n content: \"\\e363\"; }\n\n.fa-left-from-line::before {\n content: \"\\f348\"; }\n\n.fa-arrow-alt-from-right::before {\n content: \"\\f348\"; }\n\n.fa-h::before {\n content: \"\\48\"; }\n\n.fa-basket-shopping-simple::before {\n content: \"\\e0af\"; }\n\n.fa-shopping-basket-alt::before {\n content: \"\\e0af\"; }\n\n.fa-hands-holding-heart::before {\n content: \"\\f4c3\"; }\n\n.fa-hands-heart::before {\n content: \"\\f4c3\"; }\n\n.fa-clock-nine::before {\n content: \"\\e34c\"; }\n\n.fa-hammer-brush::before {\n content: \"\\e620\"; }\n\n.fa-tarp::before {\n content: \"\\e57b\"; }\n\n.fa-face-sleepy::before {\n content: \"\\e38e\"; }\n\n.fa-hand-horns::before {\n content: \"\\e1a9\"; }\n\n.fa-screwdriver-wrench::before {\n content: \"\\f7d9\"; }\n\n.fa-tools::before {\n content: \"\\f7d9\"; }\n\n.fa-arrows-to-eye::before {\n content: \"\\e4bf\"; }\n\n.fa-circle-three-quarters::before {\n content: \"\\e125\"; }\n\n.fa-trophy-star::before {\n content: \"\\f2eb\"; }\n\n.fa-trophy-alt::before {\n content: \"\\f2eb\"; }\n\n.fa-plug-circle-bolt::before {\n content: \"\\e55b\"; }\n\n.fa-face-thermometer::before {\n content: \"\\e39a\"; }\n\n.fa-grid-round-4::before {\n content: \"\\e5dd\"; }\n\n.fa-sign-posts-wrench::before {\n content: \"\\e626\"; }\n\n.fa-shirt-running::before {\n content: \"\\e3c8\"; }\n\n.fa-book-circle-arrow-up::before {\n content: \"\\e0bd\"; }\n\n.fa-face-nauseated::before {\n content: \"\\e381\"; }\n\n.fa-heart::before {\n content: \"\\f004\"; }\n\n.fa-file-chart-pie::before {\n content: \"\\f65a\"; }\n\n.fa-mars-and-venus::before {\n content: \"\\f224\"; }\n\n.fa-house-user::before {\n content: \"\\e1b0\"; }\n\n.fa-home-user::before {\n content: \"\\e1b0\"; }\n\n.fa-circle-arrow-down-left::before {\n content: \"\\e0f9\"; }\n\n.fa-dumpster-fire::before {\n content: \"\\f794\"; }\n\n.fa-hexagon-minus::before {\n content: \"\\f307\"; }\n\n.fa-minus-hexagon::before {\n content: \"\\f307\"; }\n\n.fa-left-to-line::before {\n content: \"\\f34b\"; }\n\n.fa-arrow-alt-to-left::before {\n content: \"\\f34b\"; }\n\n.fa-house-crack::before {\n content: \"\\e3b1\"; }\n\n.fa-paw-simple::before {\n content: \"\\f701\"; }\n\n.fa-paw-alt::before {\n content: \"\\f701\"; }\n\n.fa-arrow-left-long-to-line::before {\n content: \"\\e3d4\"; }\n\n.fa-brackets-round::before {\n content: \"\\e0c5\"; }\n\n.fa-parentheses::before {\n content: \"\\e0c5\"; }\n\n.fa-martini-glass-citrus::before {\n content: \"\\f561\"; }\n\n.fa-cocktail::before {\n content: \"\\f561\"; }\n\n.fa-user-shakespeare::before {\n content: \"\\e2c2\"; }\n\n.fa-arrow-right-to-arc::before {\n content: \"\\e4b2\"; }\n\n.fa-face-surprise::before {\n content: \"\\f5c2\"; }\n\n.fa-surprise::before {\n content: \"\\f5c2\"; }\n\n.fa-bottle-water::before {\n content: \"\\e4c5\"; }\n\n.fa-circle-pause::before {\n content: \"\\f28b\"; }\n\n.fa-pause-circle::before {\n content: \"\\f28b\"; }\n\n.fa-gauge-circle-plus::before {\n content: \"\\e498\"; }\n\n.fa-folders::before {\n content: \"\\f660\"; }\n\n.fa-angel::before {\n content: \"\\f779\"; }\n\n.fa-value-absolute::before {\n content: \"\\f6a6\"; }\n\n.fa-rabbit::before {\n content: \"\\f708\"; }\n\n.fa-toilet-paper-slash::before {\n content: \"\\e072\"; }\n\n.fa-circle-euro::before {\n content: \"\\e5ce\"; }\n\n.fa-apple-whole::before {\n content: \"\\f5d1\"; }\n\n.fa-apple-alt::before {\n content: \"\\f5d1\"; }\n\n.fa-kitchen-set::before {\n content: \"\\e51a\"; }\n\n.fa-diamond-half::before {\n content: \"\\e5b7\"; }\n\n.fa-lock-keyhole::before {\n content: \"\\f30d\"; }\n\n.fa-lock-alt::before {\n content: \"\\f30d\"; }\n\n.fa-r::before {\n content: \"\\52\"; }\n\n.fa-temperature-quarter::before {\n content: \"\\f2ca\"; }\n\n.fa-temperature-1::before {\n content: \"\\f2ca\"; }\n\n.fa-thermometer-1::before {\n content: \"\\f2ca\"; }\n\n.fa-thermometer-quarter::before {\n content: \"\\f2ca\"; }\n\n.fa-square-info::before {\n content: \"\\f30f\"; }\n\n.fa-info-square::before {\n content: \"\\f30f\"; }\n\n.fa-wifi-slash::before {\n content: \"\\f6ac\"; }\n\n.fa-toilet-paper-xmark::before {\n content: \"\\e5b3\"; }\n\n.fa-hands-holding-dollar::before {\n content: \"\\f4c5\"; }\n\n.fa-hands-usd::before {\n content: \"\\f4c5\"; }\n\n.fa-cube::before {\n content: \"\\f1b2\"; }\n\n.fa-arrow-down-triangle-square::before {\n content: \"\\f888\"; }\n\n.fa-sort-shapes-down::before {\n content: \"\\f888\"; }\n\n.fa-bitcoin-sign::before {\n content: \"\\e0b4\"; }\n\n.fa-shutters::before {\n content: \"\\e449\"; }\n\n.fa-shield-dog::before {\n content: \"\\e573\"; }\n\n.fa-solar-panel::before {\n content: \"\\f5ba\"; }\n\n.fa-lock-open::before {\n content: \"\\f3c1\"; }\n\n.fa-table-tree::before {\n content: \"\\e293\"; }\n\n.fa-house-chimney-heart::before {\n content: \"\\e1b2\"; }\n\n.fa-tally-3::before {\n content: \"\\e296\"; }\n\n.fa-elevator::before {\n content: \"\\e16d\"; }\n\n.fa-money-bill-transfer::before {\n content: \"\\e528\"; }\n\n.fa-money-bill-trend-up::before {\n content: \"\\e529\"; }\n\n.fa-house-flood-water-circle-arrow-right::before {\n content: \"\\e50f\"; }\n\n.fa-square-poll-horizontal::before {\n content: \"\\f682\"; }\n\n.fa-poll-h::before {\n content: \"\\f682\"; }\n\n.fa-circle::before {\n content: \"\\f111\"; }\n\n.fa-left-to-bracket::before {\n content: \"\\e66d\"; }\n\n.fa-cart-circle-exclamation::before {\n content: \"\\e3f2\"; }\n\n.fa-sword::before {\n content: \"\\f71c\"; }\n\n.fa-backward-fast::before {\n content: \"\\f049\"; }\n\n.fa-fast-backward::before {\n content: \"\\f049\"; }\n\n.fa-recycle::before {\n content: \"\\f1b8\"; }\n\n.fa-user-astronaut::before {\n content: \"\\f4fb\"; }\n\n.fa-interrobang::before {\n content: \"\\e5ba\"; }\n\n.fa-plane-slash::before {\n content: \"\\e069\"; }\n\n.fa-circle-dashed::before {\n content: \"\\e105\"; }\n\n.fa-trademark::before {\n content: \"\\f25c\"; }\n\n.fa-basketball::before {\n content: \"\\f434\"; }\n\n.fa-basketball-ball::before {\n content: \"\\f434\"; }\n\n.fa-fork-knife::before {\n content: \"\\f2e6\"; }\n\n.fa-utensils-alt::before {\n content: \"\\f2e6\"; }\n\n.fa-satellite-dish::before {\n content: \"\\f7c0\"; }\n\n.fa-badge-check::before {\n content: \"\\f336\"; }\n\n.fa-circle-up::before {\n content: \"\\f35b\"; }\n\n.fa-arrow-alt-circle-up::before {\n content: \"\\f35b\"; }\n\n.fa-slider::before {\n content: \"\\e252\"; }\n\n.fa-mobile-screen-button::before {\n content: \"\\f3cd\"; }\n\n.fa-mobile-alt::before {\n content: \"\\f3cd\"; }\n\n.fa-clock-one-thirty::before {\n content: \"\\e34f\"; }\n\n.fa-inbox-out::before {\n content: \"\\f311\"; }\n\n.fa-inbox-arrow-up::before {\n content: \"\\f311\"; }\n\n.fa-cloud-slash::before {\n content: \"\\e137\"; }\n\n.fa-volume-high::before {\n content: \"\\f028\"; }\n\n.fa-volume-up::before {\n content: \"\\f028\"; }\n\n.fa-users-rays::before {\n content: \"\\e593\"; }\n\n.fa-wallet::before {\n content: \"\\f555\"; }\n\n.fa-octagon-check::before {\n content: \"\\e426\"; }\n\n.fa-flatbread-stuffed::before {\n content: \"\\e40c\"; }\n\n.fa-clipboard-check::before {\n content: \"\\f46c\"; }\n\n.fa-cart-circle-plus::before {\n content: \"\\e3f3\"; }\n\n.fa-truck-clock::before {\n content: \"\\f48c\"; }\n\n.fa-shipping-timed::before {\n content: \"\\f48c\"; }\n\n.fa-pool-8-ball::before {\n content: \"\\e3c5\"; }\n\n.fa-file-audio::before {\n content: \"\\f1c7\"; }\n\n.fa-turn-down-left::before {\n content: \"\\e331\"; }\n\n.fa-lock-hashtag::before {\n content: \"\\e423\"; }\n\n.fa-chart-radar::before {\n content: \"\\e0e7\"; }\n\n.fa-staff::before {\n content: \"\\f71b\"; }\n\n.fa-burger::before {\n content: \"\\f805\"; }\n\n.fa-hamburger::before {\n content: \"\\f805\"; }\n\n.fa-utility-pole::before {\n content: \"\\e2c3\"; }\n\n.fa-transporter-6::before {\n content: \"\\e2a7\"; }\n\n.fa-arrow-turn-left::before {\n content: \"\\e632\"; }\n\n.fa-wrench::before {\n content: \"\\f0ad\"; }\n\n.fa-bugs::before {\n content: \"\\e4d0\"; }\n\n.fa-vector-polygon::before {\n content: \"\\e2c7\"; }\n\n.fa-diagram-nested::before {\n content: \"\\e157\"; }\n\n.fa-rupee-sign::before {\n content: \"\\f156\"; }\n\n.fa-rupee::before {\n content: \"\\f156\"; }\n\n.fa-file-image::before {\n content: \"\\f1c5\"; }\n\n.fa-circle-question::before {\n content: \"\\f059\"; }\n\n.fa-question-circle::before {\n content: \"\\f059\"; }\n\n.fa-tickets-perforated::before {\n content: \"\\e63f\"; }\n\n.fa-image-user::before {\n content: \"\\e1b8\"; }\n\n.fa-buoy::before {\n content: \"\\e5b5\"; }\n\n.fa-plane-departure::before {\n content: \"\\f5b0\"; }\n\n.fa-handshake-slash::before {\n content: \"\\e060\"; }\n\n.fa-book-bookmark::before {\n content: \"\\e0bb\"; }\n\n.fa-border-center-h::before {\n content: \"\\f89c\"; }\n\n.fa-can-food::before {\n content: \"\\e3e6\"; }\n\n.fa-typewriter::before {\n content: \"\\f8e7\"; }\n\n.fa-arrow-right-from-arc::before {\n content: \"\\e4b1\"; }\n\n.fa-circle-k::before {\n content: \"\\e113\"; }\n\n.fa-face-hand-over-mouth::before {\n content: \"\\e378\"; }\n\n.fa-popcorn::before {\n content: \"\\f819\"; }\n\n.fa-house-water::before {\n content: \"\\f74f\"; }\n\n.fa-house-flood::before {\n content: \"\\f74f\"; }\n\n.fa-object-subtract::before {\n content: \"\\e49e\"; }\n\n.fa-code-branch::before {\n content: \"\\f126\"; }\n\n.fa-warehouse-full::before {\n content: \"\\f495\"; }\n\n.fa-warehouse-alt::before {\n content: \"\\f495\"; }\n\n.fa-hat-cowboy::before {\n content: \"\\f8c0\"; }\n\n.fa-bridge::before {\n content: \"\\e4c8\"; }\n\n.fa-phone-flip::before {\n content: \"\\f879\"; }\n\n.fa-phone-alt::before {\n content: \"\\f879\"; }\n\n.fa-arrow-down-from-dotted-line::before {\n content: \"\\e090\"; }\n\n.fa-file-doc::before {\n content: \"\\e5ed\"; }\n\n.fa-square-quarters::before {\n content: \"\\e44e\"; }\n\n.fa-truck-front::before {\n content: \"\\e2b7\"; }\n\n.fa-cat::before {\n content: \"\\f6be\"; }\n\n.fa-trash-xmark::before {\n content: \"\\e2b4\"; }\n\n.fa-circle-caret-left::before {\n content: \"\\f32e\"; }\n\n.fa-caret-circle-left::before {\n content: \"\\f32e\"; }\n\n.fa-files::before {\n content: \"\\e178\"; }\n\n.fa-anchor-circle-exclamation::before {\n content: \"\\e4ab\"; }\n\n.fa-face-clouds::before {\n content: \"\\e47d\"; }\n\n.fa-user-crown::before {\n content: \"\\f6a4\"; }\n\n.fa-basket-shopping-plus::before {\n content: \"\\e653\"; }\n\n.fa-truck-field::before {\n content: \"\\e58d\"; }\n\n.fa-route::before {\n content: \"\\f4d7\"; }\n\n.fa-cart-circle-check::before {\n content: \"\\e3f1\"; }\n\n.fa-clipboard-question::before {\n content: \"\\e4e3\"; }\n\n.fa-panorama::before {\n content: \"\\e209\"; }\n\n.fa-comment-medical::before {\n content: \"\\f7f5\"; }\n\n.fa-teeth-open::before {\n content: \"\\f62f\"; }\n\n.fa-user-tie-hair-long::before {\n content: \"\\e460\"; }\n\n.fa-file-circle-minus::before {\n content: \"\\e4ed\"; }\n\n.fa-head-side-medical::before {\n content: \"\\f809\"; }\n\n.fa-arrow-turn-right::before {\n content: \"\\e635\"; }\n\n.fa-tags::before {\n content: \"\\f02c\"; }\n\n.fa-wine-glass::before {\n content: \"\\f4e3\"; }\n\n.fa-forward-fast::before {\n content: \"\\f050\"; }\n\n.fa-fast-forward::before {\n content: \"\\f050\"; }\n\n.fa-face-meh-blank::before {\n content: \"\\f5a4\"; }\n\n.fa-meh-blank::before {\n content: \"\\f5a4\"; }\n\n.fa-user-robot::before {\n content: \"\\e04b\"; }\n\n.fa-square-parking::before {\n content: \"\\f540\"; }\n\n.fa-parking::before {\n content: \"\\f540\"; }\n\n.fa-card-diamond::before {\n content: \"\\e3ea\"; }\n\n.fa-face-zipper::before {\n content: \"\\e3a5\"; }\n\n.fa-face-raised-eyebrow::before {\n content: \"\\e388\"; }\n\n.fa-house-signal::before {\n content: \"\\e012\"; }\n\n.fa-square-chevron-up::before {\n content: \"\\f32c\"; }\n\n.fa-chevron-square-up::before {\n content: \"\\f32c\"; }\n\n.fa-bars-progress::before {\n content: \"\\f828\"; }\n\n.fa-tasks-alt::before {\n content: \"\\f828\"; }\n\n.fa-faucet-drip::before {\n content: \"\\e006\"; }\n\n.fa-arrows-to-line::before {\n content: \"\\e0a7\"; }\n\n.fa-dolphin::before {\n content: \"\\e168\"; }\n\n.fa-arrow-up-right::before {\n content: \"\\e09f\"; }\n\n.fa-circle-r::before {\n content: \"\\e120\"; }\n\n.fa-cart-flatbed::before {\n content: \"\\f474\"; }\n\n.fa-dolly-flatbed::before {\n content: \"\\f474\"; }\n\n.fa-ban-smoking::before {\n content: \"\\f54d\"; }\n\n.fa-smoking-ban::before {\n content: \"\\f54d\"; }\n\n.fa-circle-sort-up::before {\n content: \"\\e032\"; }\n\n.fa-sort-circle-up::before {\n content: \"\\e032\"; }\n\n.fa-terminal::before {\n content: \"\\f120\"; }\n\n.fa-mobile-button::before {\n content: \"\\f10b\"; }\n\n.fa-house-medical-flag::before {\n content: \"\\e514\"; }\n\n.fa-basket-shopping::before {\n content: \"\\f291\"; }\n\n.fa-shopping-basket::before {\n content: \"\\f291\"; }\n\n.fa-tape::before {\n content: \"\\f4db\"; }\n\n.fa-chestnut::before {\n content: \"\\e3f6\"; }\n\n.fa-bus-simple::before {\n content: \"\\f55e\"; }\n\n.fa-bus-alt::before {\n content: \"\\f55e\"; }\n\n.fa-eye::before {\n content: \"\\f06e\"; }\n\n.fa-face-sad-cry::before {\n content: \"\\f5b3\"; }\n\n.fa-sad-cry::before {\n content: \"\\f5b3\"; }\n\n.fa-heat::before {\n content: \"\\e00c\"; }\n\n.fa-ticket-airline::before {\n content: \"\\e29a\"; }\n\n.fa-ticket-perforated-plane::before {\n content: \"\\e29a\"; }\n\n.fa-ticket-plane::before {\n content: \"\\e29a\"; }\n\n.fa-boot-heeled::before {\n content: \"\\e33f\"; }\n\n.fa-arrows-minimize::before {\n content: \"\\e0a5\"; }\n\n.fa-compress-arrows::before {\n content: \"\\e0a5\"; }\n\n.fa-audio-description::before {\n content: \"\\f29e\"; }\n\n.fa-person-military-to-person::before {\n content: \"\\e54c\"; }\n\n.fa-file-shield::before {\n content: \"\\e4f0\"; }\n\n.fa-hexagon::before {\n content: \"\\f312\"; }\n\n.fa-manhole::before {\n content: \"\\e1d6\"; }\n\n.fa-user-slash::before {\n content: \"\\f506\"; }\n\n.fa-pen::before {\n content: \"\\f304\"; }\n\n.fa-tower-observation::before {\n content: \"\\e586\"; }\n\n.fa-floppy-disks::before {\n content: \"\\e183\"; }\n\n.fa-toilet-paper-blank-under::before {\n content: \"\\e29f\"; }\n\n.fa-toilet-paper-reverse-alt::before {\n content: \"\\e29f\"; }\n\n.fa-file-code::before {\n content: \"\\f1c9\"; }\n\n.fa-signal::before {\n content: \"\\f012\"; }\n\n.fa-signal-5::before {\n content: \"\\f012\"; }\n\n.fa-signal-perfect::before {\n content: \"\\f012\"; }\n\n.fa-pump::before {\n content: \"\\e442\"; }\n\n.fa-bus::before {\n content: \"\\f207\"; }\n\n.fa-heart-circle-xmark::before {\n content: \"\\e501\"; }\n\n.fa-arrow-up-left-from-circle::before {\n content: \"\\e09e\"; }\n\n.fa-house-chimney::before {\n content: \"\\e3af\"; }\n\n.fa-home-lg::before {\n content: \"\\e3af\"; }\n\n.fa-window-maximize::before {\n content: \"\\f2d0\"; }\n\n.fa-dryer::before {\n content: \"\\f861\"; }\n\n.fa-face-frown::before {\n content: \"\\f119\"; }\n\n.fa-frown::before {\n content: \"\\f119\"; }\n\n.fa-chess-bishop-piece::before {\n content: \"\\f43b\"; }\n\n.fa-chess-bishop-alt::before {\n content: \"\\f43b\"; }\n\n.fa-shirt-tank-top::before {\n content: \"\\e3c9\"; }\n\n.fa-diploma::before {\n content: \"\\f5ea\"; }\n\n.fa-scroll-ribbon::before {\n content: \"\\f5ea\"; }\n\n.fa-screencast::before {\n content: \"\\e23e\"; }\n\n.fa-walker::before {\n content: \"\\f831\"; }\n\n.fa-prescription::before {\n content: \"\\f5b1\"; }\n\n.fa-shop::before {\n content: \"\\f54f\"; }\n\n.fa-store-alt::before {\n content: \"\\f54f\"; }\n\n.fa-floppy-disk::before {\n content: \"\\f0c7\"; }\n\n.fa-save::before {\n content: \"\\f0c7\"; }\n\n.fa-vihara::before {\n content: \"\\f6a7\"; }\n\n.fa-face-kiss-closed-eyes::before {\n content: \"\\e37d\"; }\n\n.fa-scale-unbalanced::before {\n content: \"\\f515\"; }\n\n.fa-balance-scale-left::before {\n content: \"\\f515\"; }\n\n.fa-file-user::before {\n content: \"\\f65c\"; }\n\n.fa-user-police-tie::before {\n content: \"\\e334\"; }\n\n.fa-face-tongue-money::before {\n content: \"\\e39d\"; }\n\n.fa-tennis-ball::before {\n content: \"\\f45e\"; }\n\n.fa-square-l::before {\n content: \"\\e275\"; }\n\n.fa-sort-up::before {\n content: \"\\f0de\"; }\n\n.fa-sort-asc::before {\n content: \"\\f0de\"; }\n\n.fa-calendar-arrow-up::before {\n content: \"\\e0d1\"; }\n\n.fa-calendar-upload::before {\n content: \"\\e0d1\"; }\n\n.fa-comment-dots::before {\n content: \"\\f4ad\"; }\n\n.fa-commenting::before {\n content: \"\\f4ad\"; }\n\n.fa-plant-wilt::before {\n content: \"\\e5aa\"; }\n\n.fa-scarf::before {\n content: \"\\f7c1\"; }\n\n.fa-album-circle-plus::before {\n content: \"\\e48c\"; }\n\n.fa-user-nurse-hair-long::before {\n content: \"\\e45e\"; }\n\n.fa-diamond::before {\n content: \"\\f219\"; }\n\n.fa-square-left::before {\n content: \"\\f351\"; }\n\n.fa-arrow-alt-square-left::before {\n content: \"\\f351\"; }\n\n.fa-face-grin-squint::before {\n content: \"\\f585\"; }\n\n.fa-grin-squint::before {\n content: \"\\f585\"; }\n\n.fa-circle-ellipsis-vertical::before {\n content: \"\\e10b\"; }\n\n.fa-hand-holding-dollar::before {\n content: \"\\f4c0\"; }\n\n.fa-hand-holding-usd::before {\n content: \"\\f4c0\"; }\n\n.fa-grid-dividers::before {\n content: \"\\e3ad\"; }\n\n.fa-bacterium::before {\n content: \"\\e05a\"; }\n\n.fa-hand-pointer::before {\n content: \"\\f25a\"; }\n\n.fa-drum-steelpan::before {\n content: \"\\f56a\"; }\n\n.fa-hand-scissors::before {\n content: \"\\f257\"; }\n\n.fa-hands-praying::before {\n content: \"\\f684\"; }\n\n.fa-praying-hands::before {\n content: \"\\f684\"; }\n\n.fa-face-pensive::before {\n content: \"\\e384\"; }\n\n.fa-user-music::before {\n content: \"\\f8eb\"; }\n\n.fa-arrow-rotate-right::before {\n content: \"\\f01e\"; }\n\n.fa-arrow-right-rotate::before {\n content: \"\\f01e\"; }\n\n.fa-arrow-rotate-forward::before {\n content: \"\\f01e\"; }\n\n.fa-redo::before {\n content: \"\\f01e\"; }\n\n.fa-messages-dollar::before {\n content: \"\\f652\"; }\n\n.fa-comments-alt-dollar::before {\n content: \"\\f652\"; }\n\n.fa-sensor-on::before {\n content: \"\\e02b\"; }\n\n.fa-balloon::before {\n content: \"\\e2e3\"; }\n\n.fa-biohazard::before {\n content: \"\\f780\"; }\n\n.fa-chess-queen-piece::before {\n content: \"\\f446\"; }\n\n.fa-chess-queen-alt::before {\n content: \"\\f446\"; }\n\n.fa-location-crosshairs::before {\n content: \"\\f601\"; }\n\n.fa-location::before {\n content: \"\\f601\"; }\n\n.fa-mars-double::before {\n content: \"\\f227\"; }\n\n.fa-left-from-bracket::before {\n content: \"\\e66c\"; }\n\n.fa-house-person-leave::before {\n content: \"\\e00f\"; }\n\n.fa-house-leave::before {\n content: \"\\e00f\"; }\n\n.fa-house-person-depart::before {\n content: \"\\e00f\"; }\n\n.fa-ruler-triangle::before {\n content: \"\\f61c\"; }\n\n.fa-card-club::before {\n content: \"\\e3e9\"; }\n\n.fa-child-dress::before {\n content: \"\\e59c\"; }\n\n.fa-users-between-lines::before {\n content: \"\\e591\"; }\n\n.fa-lungs-virus::before {\n content: \"\\e067\"; }\n\n.fa-spinner-third::before {\n content: \"\\f3f4\"; }\n\n.fa-face-grin-tears::before {\n content: \"\\f588\"; }\n\n.fa-grin-tears::before {\n content: \"\\f588\"; }\n\n.fa-phone::before {\n content: \"\\f095\"; }\n\n.fa-computer-mouse-scrollwheel::before {\n content: \"\\f8cd\"; }\n\n.fa-mouse-alt::before {\n content: \"\\f8cd\"; }\n\n.fa-calendar-xmark::before {\n content: \"\\f273\"; }\n\n.fa-calendar-times::before {\n content: \"\\f273\"; }\n\n.fa-child-reaching::before {\n content: \"\\e59d\"; }\n\n.fa-table-layout::before {\n content: \"\\e290\"; }\n\n.fa-narwhal::before {\n content: \"\\f6fe\"; }\n\n.fa-ramp-loading::before {\n content: \"\\f4d4\"; }\n\n.fa-calendar-circle-plus::before {\n content: \"\\e470\"; }\n\n.fa-toothbrush::before {\n content: \"\\f635\"; }\n\n.fa-border-inner::before {\n content: \"\\f84e\"; }\n\n.fa-paw-claws::before {\n content: \"\\f702\"; }\n\n.fa-kiwi-fruit::before {\n content: \"\\e30c\"; }\n\n.fa-traffic-light-slow::before {\n content: \"\\f639\"; }\n\n.fa-rectangle-code::before {\n content: \"\\e322\"; }\n\n.fa-head-side-virus::before {\n content: \"\\e064\"; }\n\n.fa-keyboard-brightness::before {\n content: \"\\e1c0\"; }\n\n.fa-books-medical::before {\n content: \"\\f7e8\"; }\n\n.fa-lightbulb-slash::before {\n content: \"\\f673\"; }\n\n.fa-house-blank::before {\n content: \"\\e487\"; }\n\n.fa-home-blank::before {\n content: \"\\e487\"; }\n\n.fa-square-5::before {\n content: \"\\e25a\"; }\n\n.fa-square-heart::before {\n content: \"\\f4c8\"; }\n\n.fa-heart-square::before {\n content: \"\\f4c8\"; }\n\n.fa-puzzle::before {\n content: \"\\e443\"; }\n\n.fa-user-gear::before {\n content: \"\\f4fe\"; }\n\n.fa-user-cog::before {\n content: \"\\f4fe\"; }\n\n.fa-pipe-circle-check::before {\n content: \"\\e436\"; }\n\n.fa-arrow-up-1-9::before {\n content: \"\\f163\"; }\n\n.fa-sort-numeric-up::before {\n content: \"\\f163\"; }\n\n.fa-octagon-exclamation::before {\n content: \"\\e204\"; }\n\n.fa-dial-low::before {\n content: \"\\e15d\"; }\n\n.fa-door-closed::before {\n content: \"\\f52a\"; }\n\n.fa-laptop-mobile::before {\n content: \"\\f87a\"; }\n\n.fa-phone-laptop::before {\n content: \"\\f87a\"; }\n\n.fa-conveyor-belt-boxes::before {\n content: \"\\f46f\"; }\n\n.fa-conveyor-belt-alt::before {\n content: \"\\f46f\"; }\n\n.fa-shield-virus::before {\n content: \"\\e06c\"; }\n\n.fa-starfighter-twin-ion-engine-advanced::before {\n content: \"\\e28e\"; }\n\n.fa-starfighter-alt-advanced::before {\n content: \"\\e28e\"; }\n\n.fa-dice-six::before {\n content: \"\\f526\"; }\n\n.fa-starfighter-twin-ion-engine::before {\n content: \"\\e038\"; }\n\n.fa-starfighter-alt::before {\n content: \"\\e038\"; }\n\n.fa-rocket-launch::before {\n content: \"\\e027\"; }\n\n.fa-mosquito-net::before {\n content: \"\\e52c\"; }\n\n.fa-vent-damper::before {\n content: \"\\e465\"; }\n\n.fa-bridge-water::before {\n content: \"\\e4ce\"; }\n\n.fa-ban-bug::before {\n content: \"\\f7f9\"; }\n\n.fa-debug::before {\n content: \"\\f7f9\"; }\n\n.fa-person-booth::before {\n content: \"\\f756\"; }\n\n.fa-text-width::before {\n content: \"\\f035\"; }\n\n.fa-garage-car::before {\n content: \"\\e00a\"; }\n\n.fa-square-kanban::before {\n content: \"\\e488\"; }\n\n.fa-hat-wizard::before {\n content: \"\\f6e8\"; }\n\n.fa-chart-kanban::before {\n content: \"\\e64f\"; }\n\n.fa-pen-fancy::before {\n content: \"\\f5ac\"; }\n\n.fa-coffee-pot::before {\n content: \"\\e002\"; }\n\n.fa-mouse-field::before {\n content: \"\\e5a8\"; }\n\n.fa-person-digging::before {\n content: \"\\f85e\"; }\n\n.fa-digging::before {\n content: \"\\f85e\"; }\n\n.fa-shower-down::before {\n content: \"\\e24d\"; }\n\n.fa-shower-alt::before {\n content: \"\\e24d\"; }\n\n.fa-box-circle-check::before {\n content: \"\\e0c4\"; }\n\n.fa-brightness::before {\n content: \"\\e0c9\"; }\n\n.fa-car-side-bolt::before {\n content: \"\\e344\"; }\n\n.fa-file-xml::before {\n content: \"\\e654\"; }\n\n.fa-ornament::before {\n content: \"\\f7b8\"; }\n\n.fa-phone-arrow-down-left::before {\n content: \"\\e223\"; }\n\n.fa-phone-arrow-down::before {\n content: \"\\e223\"; }\n\n.fa-phone-incoming::before {\n content: \"\\e223\"; }\n\n.fa-cloud-word::before {\n content: \"\\e138\"; }\n\n.fa-hand-fingers-crossed::before {\n content: \"\\e1a3\"; }\n\n.fa-trash::before {\n content: \"\\f1f8\"; }\n\n.fa-gauge-simple::before {\n content: \"\\f629\"; }\n\n.fa-gauge-simple-med::before {\n content: \"\\f629\"; }\n\n.fa-tachometer-average::before {\n content: \"\\f629\"; }\n\n.fa-arrow-down-small-big::before {\n content: \"\\f88d\"; }\n\n.fa-sort-size-down-alt::before {\n content: \"\\f88d\"; }\n\n.fa-book-medical::before {\n content: \"\\f7e6\"; }\n\n.fa-face-melting::before {\n content: \"\\e483\"; }\n\n.fa-poo::before {\n content: \"\\f2fe\"; }\n\n.fa-pen-clip-slash::before {\n content: \"\\e20f\"; }\n\n.fa-pen-alt-slash::before {\n content: \"\\e20f\"; }\n\n.fa-quote-right::before {\n content: \"\\f10e\"; }\n\n.fa-quote-right-alt::before {\n content: \"\\f10e\"; }\n\n.fa-scroll-old::before {\n content: \"\\f70f\"; }\n\n.fa-guitars::before {\n content: \"\\f8bf\"; }\n\n.fa-phone-xmark::before {\n content: \"\\e227\"; }\n\n.fa-hose::before {\n content: \"\\e419\"; }\n\n.fa-clock-six::before {\n content: \"\\e352\"; }\n\n.fa-shirt::before {\n content: \"\\f553\"; }\n\n.fa-t-shirt::before {\n content: \"\\f553\"; }\n\n.fa-tshirt::before {\n content: \"\\f553\"; }\n\n.fa-billboard::before {\n content: \"\\e5cd\"; }\n\n.fa-square-r::before {\n content: \"\\e27c\"; }\n\n.fa-cubes::before {\n content: \"\\f1b3\"; }\n\n.fa-envelope-open-dollar::before {\n content: \"\\f657\"; }\n\n.fa-divide::before {\n content: \"\\f529\"; }\n\n.fa-sun-cloud::before {\n content: \"\\f763\"; }\n\n.fa-lamp-floor::before {\n content: \"\\e015\"; }\n\n.fa-square-7::before {\n content: \"\\e25c\"; }\n\n.fa-tenge-sign::before {\n content: \"\\f7d7\"; }\n\n.fa-tenge::before {\n content: \"\\f7d7\"; }\n\n.fa-headphones::before {\n content: \"\\f025\"; }\n\n.fa-hands-holding::before {\n content: \"\\f4c2\"; }\n\n.fa-campfire::before {\n content: \"\\f6ba\"; }\n\n.fa-circle-ampersand::before {\n content: \"\\e0f8\"; }\n\n.fa-snowflakes::before {\n content: \"\\f7cf\"; }\n\n.fa-hands-clapping::before {\n content: \"\\e1a8\"; }\n\n.fa-republican::before {\n content: \"\\f75e\"; }\n\n.fa-leaf-maple::before {\n content: \"\\f6f6\"; }\n\n.fa-arrow-left::before {\n content: \"\\f060\"; }\n\n.fa-person-circle-xmark::before {\n content: \"\\e543\"; }\n\n.fa-ruler::before {\n content: \"\\f545\"; }\n\n.fa-arrow-left-from-bracket::before {\n content: \"\\e668\"; }\n\n.fa-cup-straw-swoosh::before {\n content: \"\\e364\"; }\n\n.fa-temperature-sun::before {\n content: \"\\f76a\"; }\n\n.fa-temperature-hot::before {\n content: \"\\f76a\"; }\n\n.fa-align-left::before {\n content: \"\\f036\"; }\n\n.fa-dice-d6::before {\n content: \"\\f6d1\"; }\n\n.fa-restroom::before {\n content: \"\\f7bd\"; }\n\n.fa-high-definition::before {\n content: \"\\e1ae\"; }\n\n.fa-rectangle-hd::before {\n content: \"\\e1ae\"; }\n\n.fa-j::before {\n content: \"\\4a\"; }\n\n.fa-galaxy::before {\n content: \"\\e008\"; }\n\n.fa-users-viewfinder::before {\n content: \"\\e595\"; }\n\n.fa-file-video::before {\n content: \"\\f1c8\"; }\n\n.fa-cherries::before {\n content: \"\\e0ec\"; }\n\n.fa-up-right-from-square::before {\n content: \"\\f35d\"; }\n\n.fa-external-link-alt::before {\n content: \"\\f35d\"; }\n\n.fa-circle-sort::before {\n content: \"\\e030\"; }\n\n.fa-sort-circle::before {\n content: \"\\e030\"; }\n\n.fa-table-cells::before {\n content: \"\\f00a\"; }\n\n.fa-th::before {\n content: \"\\f00a\"; }\n\n.fa-bag-shopping-minus::before {\n content: \"\\e650\"; }\n\n.fa-file-pdf::before {\n content: \"\\f1c1\"; }\n\n.fa-siren::before {\n content: \"\\e02d\"; }\n\n.fa-arrow-up-to-dotted-line::before {\n content: \"\\e0a1\"; }\n\n.fa-image-landscape::before {\n content: \"\\e1b5\"; }\n\n.fa-landscape::before {\n content: \"\\e1b5\"; }\n\n.fa-tank-water::before {\n content: \"\\e452\"; }\n\n.fa-curling-stone::before {\n content: \"\\f44a\"; }\n\n.fa-curling::before {\n content: \"\\f44a\"; }\n\n.fa-gamepad-modern::before {\n content: \"\\e5a2\"; }\n\n.fa-gamepad-alt::before {\n content: \"\\e5a2\"; }\n\n.fa-messages-question::before {\n content: \"\\e1e7\"; }\n\n.fa-book-bible::before {\n content: \"\\f647\"; }\n\n.fa-bible::before {\n content: \"\\f647\"; }\n\n.fa-o::before {\n content: \"\\4f\"; }\n\n.fa-suitcase-medical::before {\n content: \"\\f0fa\"; }\n\n.fa-medkit::before {\n content: \"\\f0fa\"; }\n\n.fa-briefcase-arrow-right::before {\n content: \"\\e2f2\"; }\n\n.fa-expand-wide::before {\n content: \"\\f320\"; }\n\n.fa-clock-eleven-thirty::before {\n content: \"\\e348\"; }\n\n.fa-rv::before {\n content: \"\\f7be\"; }\n\n.fa-user-secret::before {\n content: \"\\f21b\"; }\n\n.fa-otter::before {\n content: \"\\f700\"; }\n\n.fa-dreidel::before {\n content: \"\\f792\"; }\n\n.fa-person-dress::before {\n content: \"\\f182\"; }\n\n.fa-female::before {\n content: \"\\f182\"; }\n\n.fa-comment-dollar::before {\n content: \"\\f651\"; }\n\n.fa-business-time::before {\n content: \"\\f64a\"; }\n\n.fa-briefcase-clock::before {\n content: \"\\f64a\"; }\n\n.fa-flower-tulip::before {\n content: \"\\f801\"; }\n\n.fa-people-pants-simple::before {\n content: \"\\e21a\"; }\n\n.fa-cloud-drizzle::before {\n content: \"\\f738\"; }\n\n.fa-table-cells-large::before {\n content: \"\\f009\"; }\n\n.fa-th-large::before {\n content: \"\\f009\"; }\n\n.fa-book-tanakh::before {\n content: \"\\f827\"; }\n\n.fa-tanakh::before {\n content: \"\\f827\"; }\n\n.fa-solar-system::before {\n content: \"\\e02f\"; }\n\n.fa-seal-question::before {\n content: \"\\e243\"; }\n\n.fa-phone-volume::before {\n content: \"\\f2a0\"; }\n\n.fa-volume-control-phone::before {\n content: \"\\f2a0\"; }\n\n.fa-disc-drive::before {\n content: \"\\f8b5\"; }\n\n.fa-hat-cowboy-side::before {\n content: \"\\f8c1\"; }\n\n.fa-table-rows::before {\n content: \"\\e292\"; }\n\n.fa-rows::before {\n content: \"\\e292\"; }\n\n.fa-location-exclamation::before {\n content: \"\\f608\"; }\n\n.fa-map-marker-exclamation::before {\n content: \"\\f608\"; }\n\n.fa-face-fearful::before {\n content: \"\\e375\"; }\n\n.fa-clipboard-user::before {\n content: \"\\f7f3\"; }\n\n.fa-bus-school::before {\n content: \"\\f5dd\"; }\n\n.fa-film-slash::before {\n content: \"\\e179\"; }\n\n.fa-square-arrow-down-right::before {\n content: \"\\e262\"; }\n\n.fa-book-sparkles::before {\n content: \"\\f6b8\"; }\n\n.fa-book-spells::before {\n content: \"\\f6b8\"; }\n\n.fa-washing-machine::before {\n content: \"\\f898\"; }\n\n.fa-washer::before {\n content: \"\\f898\"; }\n\n.fa-child::before {\n content: \"\\f1ae\"; }\n\n.fa-lira-sign::before {\n content: \"\\f195\"; }\n\n.fa-user-visor::before {\n content: \"\\e04c\"; }\n\n.fa-file-plus-minus::before {\n content: \"\\e177\"; }\n\n.fa-chess-clock-flip::before {\n content: \"\\f43e\"; }\n\n.fa-chess-clock-alt::before {\n content: \"\\f43e\"; }\n\n.fa-satellite::before {\n content: \"\\f7bf\"; }\n\n.fa-truck-fire::before {\n content: \"\\e65a\"; }\n\n.fa-plane-lock::before {\n content: \"\\e558\"; }\n\n.fa-steering-wheel::before {\n content: \"\\f622\"; }\n\n.fa-tag::before {\n content: \"\\f02b\"; }\n\n.fa-stretcher::before {\n content: \"\\f825\"; }\n\n.fa-book-section::before {\n content: \"\\e0c1\"; }\n\n.fa-book-law::before {\n content: \"\\e0c1\"; }\n\n.fa-inboxes::before {\n content: \"\\e1bb\"; }\n\n.fa-coffee-bean::before {\n content: \"\\e13e\"; }\n\n.fa-circle-yen::before {\n content: \"\\e5d0\"; }\n\n.fa-brackets-curly::before {\n content: \"\\f7ea\"; }\n\n.fa-ellipsis-stroke-vertical::before {\n content: \"\\f39c\"; }\n\n.fa-ellipsis-v-alt::before {\n content: \"\\f39c\"; }\n\n.fa-comment::before {\n content: \"\\f075\"; }\n\n.fa-square-1::before {\n content: \"\\e256\"; }\n\n.fa-cake-candles::before {\n content: \"\\f1fd\"; }\n\n.fa-birthday-cake::before {\n content: \"\\f1fd\"; }\n\n.fa-cake::before {\n content: \"\\f1fd\"; }\n\n.fa-head-side::before {\n content: \"\\f6e9\"; }\n\n.fa-truck-ladder::before {\n content: \"\\e657\"; }\n\n.fa-envelope::before {\n content: \"\\f0e0\"; }\n\n.fa-dolly-empty::before {\n content: \"\\f473\"; }\n\n.fa-face-tissue::before {\n content: \"\\e39c\"; }\n\n.fa-angles-up::before {\n content: \"\\f102\"; }\n\n.fa-angle-double-up::before {\n content: \"\\f102\"; }\n\n.fa-bin-recycle::before {\n content: \"\\e5f7\"; }\n\n.fa-paperclip::before {\n content: \"\\f0c6\"; }\n\n.fa-chart-line-down::before {\n content: \"\\f64d\"; }\n\n.fa-arrow-right-to-city::before {\n content: \"\\e4b3\"; }\n\n.fa-lock-a::before {\n content: \"\\e422\"; }\n\n.fa-ribbon::before {\n content: \"\\f4d6\"; }\n\n.fa-lungs::before {\n content: \"\\f604\"; }\n\n.fa-person-pinball::before {\n content: \"\\e21d\"; }\n\n.fa-arrow-up-9-1::before {\n content: \"\\f887\"; }\n\n.fa-sort-numeric-up-alt::before {\n content: \"\\f887\"; }\n\n.fa-apple-core::before {\n content: \"\\e08f\"; }\n\n.fa-circle-y::before {\n content: \"\\e12f\"; }\n\n.fa-h6::before {\n content: \"\\e413\"; }\n\n.fa-litecoin-sign::before {\n content: \"\\e1d3\"; }\n\n.fa-bottle-baby::before {\n content: \"\\e673\"; }\n\n.fa-circle-small::before {\n content: \"\\e122\"; }\n\n.fa-border-none::before {\n content: \"\\f850\"; }\n\n.fa-arrow-turn-down-left::before {\n content: \"\\e2e1\"; }\n\n.fa-circle-wifi-circle-wifi::before {\n content: \"\\e67e\"; }\n\n.fa-circle-wifi-group::before {\n content: \"\\e67e\"; }\n\n.fa-circle-nodes::before {\n content: \"\\e4e2\"; }\n\n.fa-parachute-box::before {\n content: \"\\f4cd\"; }\n\n.fa-reflect-horizontal::before {\n content: \"\\e664\"; }\n\n.fa-message-medical::before {\n content: \"\\f7f4\"; }\n\n.fa-comment-alt-medical::before {\n content: \"\\f7f4\"; }\n\n.fa-rugby-ball::before {\n content: \"\\e3c6\"; }\n\n.fa-comment-music::before {\n content: \"\\f8b0\"; }\n\n.fa-indent::before {\n content: \"\\f03c\"; }\n\n.fa-tree-deciduous::before {\n content: \"\\f400\"; }\n\n.fa-tree-alt::before {\n content: \"\\f400\"; }\n\n.fa-puzzle-piece-simple::before {\n content: \"\\e231\"; }\n\n.fa-puzzle-piece-alt::before {\n content: \"\\e231\"; }\n\n.fa-truck-field-un::before {\n content: \"\\e58e\"; }\n\n.fa-nfc-trash::before {\n content: \"\\e1fd\"; }\n\n.fa-hourglass::before {\n content: \"\\f254\"; }\n\n.fa-hourglass-empty::before {\n content: \"\\f254\"; }\n\n.fa-mountain::before {\n content: \"\\f6fc\"; }\n\n.fa-file-xmark::before {\n content: \"\\f317\"; }\n\n.fa-file-times::before {\n content: \"\\f317\"; }\n\n.fa-house-heart::before {\n content: \"\\f4c9\"; }\n\n.fa-home-heart::before {\n content: \"\\f4c9\"; }\n\n.fa-house-chimney-blank::before {\n content: \"\\e3b0\"; }\n\n.fa-meter-bolt::before {\n content: \"\\e1e9\"; }\n\n.fa-user-doctor::before {\n content: \"\\f0f0\"; }\n\n.fa-user-md::before {\n content: \"\\f0f0\"; }\n\n.fa-slash-back::before {\n content: \"\\5c\"; }\n\n.fa-circle-info::before {\n content: \"\\f05a\"; }\n\n.fa-info-circle::before {\n content: \"\\f05a\"; }\n\n.fa-fishing-rod::before {\n content: \"\\e3a8\"; }\n\n.fa-hammer-crash::before {\n content: \"\\e414\"; }\n\n.fa-message-heart::before {\n content: \"\\e5c9\"; }\n\n.fa-cloud-meatball::before {\n content: \"\\f73b\"; }\n\n.fa-camera-polaroid::before {\n content: \"\\f8aa\"; }\n\n.fa-camera::before {\n content: \"\\f030\"; }\n\n.fa-camera-alt::before {\n content: \"\\f030\"; }\n\n.fa-square-virus::before {\n content: \"\\e578\"; }\n\n.fa-cart-arrow-up::before {\n content: \"\\e3ee\"; }\n\n.fa-meteor::before {\n content: \"\\f753\"; }\n\n.fa-car-on::before {\n content: \"\\e4dd\"; }\n\n.fa-sleigh::before {\n content: \"\\f7cc\"; }\n\n.fa-arrow-down-1-9::before {\n content: \"\\f162\"; }\n\n.fa-sort-numeric-asc::before {\n content: \"\\f162\"; }\n\n.fa-sort-numeric-down::before {\n content: \"\\f162\"; }\n\n.fa-buoy-mooring::before {\n content: \"\\e5b6\"; }\n\n.fa-square-4::before {\n content: \"\\e259\"; }\n\n.fa-hand-holding-droplet::before {\n content: \"\\f4c1\"; }\n\n.fa-hand-holding-water::before {\n content: \"\\f4c1\"; }\n\n.fa-file-eps::before {\n content: \"\\e644\"; }\n\n.fa-tricycle-adult::before {\n content: \"\\e5c4\"; }\n\n.fa-waveform::before {\n content: \"\\f8f1\"; }\n\n.fa-water::before {\n content: \"\\f773\"; }\n\n.fa-star-sharp-half-stroke::before {\n content: \"\\e28d\"; }\n\n.fa-star-sharp-half-alt::before {\n content: \"\\e28d\"; }\n\n.fa-nfc-signal::before {\n content: \"\\e1fb\"; }\n\n.fa-plane-prop::before {\n content: \"\\e22b\"; }\n\n.fa-calendar-check::before {\n content: \"\\f274\"; }\n\n.fa-clock-desk::before {\n content: \"\\e134\"; }\n\n.fa-calendar-clock::before {\n content: \"\\e0d2\"; }\n\n.fa-calendar-time::before {\n content: \"\\e0d2\"; }\n\n.fa-braille::before {\n content: \"\\f2a1\"; }\n\n.fa-prescription-bottle-medical::before {\n content: \"\\f486\"; }\n\n.fa-prescription-bottle-alt::before {\n content: \"\\f486\"; }\n\n.fa-plate-utensils::before {\n content: \"\\e43b\"; }\n\n.fa-family-pants::before {\n content: \"\\e302\"; }\n\n.fa-hose-reel::before {\n content: \"\\e41a\"; }\n\n.fa-house-window::before {\n content: \"\\e3b3\"; }\n\n.fa-landmark::before {\n content: \"\\f66f\"; }\n\n.fa-truck::before {\n content: \"\\f0d1\"; }\n\n.fa-music-magnifying-glass::before {\n content: \"\\e662\"; }\n\n.fa-crosshairs::before {\n content: \"\\f05b\"; }\n\n.fa-cloud-rainbow::before {\n content: \"\\f73e\"; }\n\n.fa-person-cane::before {\n content: \"\\e53c\"; }\n\n.fa-alien::before {\n content: \"\\f8f5\"; }\n\n.fa-tent::before {\n content: \"\\e57d\"; }\n\n.fa-laptop-binary::before {\n content: \"\\e5e7\"; }\n\n.fa-vest-patches::before {\n content: \"\\e086\"; }\n\n.fa-people-dress-simple::before {\n content: \"\\e218\"; }\n\n.fa-check-double::before {\n content: \"\\f560\"; }\n\n.fa-arrow-down-a-z::before {\n content: \"\\f15d\"; }\n\n.fa-sort-alpha-asc::before {\n content: \"\\f15d\"; }\n\n.fa-sort-alpha-down::before {\n content: \"\\f15d\"; }\n\n.fa-bowling-ball-pin::before {\n content: \"\\e0c3\"; }\n\n.fa-bell-school-slash::before {\n content: \"\\f5d6\"; }\n\n.fa-plus-large::before {\n content: \"\\e59e\"; }\n\n.fa-money-bill-wheat::before {\n content: \"\\e52a\"; }\n\n.fa-camera-viewfinder::before {\n content: \"\\e0da\"; }\n\n.fa-screenshot::before {\n content: \"\\e0da\"; }\n\n.fa-message-music::before {\n content: \"\\f8af\"; }\n\n.fa-comment-alt-music::before {\n content: \"\\f8af\"; }\n\n.fa-car-building::before {\n content: \"\\f859\"; }\n\n.fa-border-bottom-right::before {\n content: \"\\f854\"; }\n\n.fa-border-style-alt::before {\n content: \"\\f854\"; }\n\n.fa-octagon::before {\n content: \"\\f306\"; }\n\n.fa-comment-arrow-up-right::before {\n content: \"\\e145\"; }\n\n.fa-octagon-divide::before {\n content: \"\\e203\"; }\n\n.fa-cookie::before {\n content: \"\\f563\"; }\n\n.fa-arrow-rotate-left::before {\n content: \"\\f0e2\"; }\n\n.fa-arrow-left-rotate::before {\n content: \"\\f0e2\"; }\n\n.fa-arrow-rotate-back::before {\n content: \"\\f0e2\"; }\n\n.fa-arrow-rotate-backward::before {\n content: \"\\f0e2\"; }\n\n.fa-undo::before {\n content: \"\\f0e2\"; }\n\n.fa-tv-music::before {\n content: \"\\f8e6\"; }\n\n.fa-hard-drive::before {\n content: \"\\f0a0\"; }\n\n.fa-hdd::before {\n content: \"\\f0a0\"; }\n\n.fa-reel::before {\n content: \"\\e238\"; }\n\n.fa-face-grin-squint-tears::before {\n content: \"\\f586\"; }\n\n.fa-grin-squint-tears::before {\n content: \"\\f586\"; }\n\n.fa-dumbbell::before {\n content: \"\\f44b\"; }\n\n.fa-rectangle-list::before {\n content: \"\\f022\"; }\n\n.fa-list-alt::before {\n content: \"\\f022\"; }\n\n.fa-tarp-droplet::before {\n content: \"\\e57c\"; }\n\n.fa-alarm-exclamation::before {\n content: \"\\f843\"; }\n\n.fa-house-medical-circle-check::before {\n content: \"\\e511\"; }\n\n.fa-traffic-cone::before {\n content: \"\\f636\"; }\n\n.fa-grate::before {\n content: \"\\e193\"; }\n\n.fa-arrow-down-right::before {\n content: \"\\e093\"; }\n\n.fa-person-skiing-nordic::before {\n content: \"\\f7ca\"; }\n\n.fa-skiing-nordic::before {\n content: \"\\f7ca\"; }\n\n.fa-calendar-plus::before {\n content: \"\\f271\"; }\n\n.fa-person-from-portal::before {\n content: \"\\e023\"; }\n\n.fa-portal-exit::before {\n content: \"\\e023\"; }\n\n.fa-plane-arrival::before {\n content: \"\\f5af\"; }\n\n.fa-cowbell-circle-plus::before {\n content: \"\\f8b4\"; }\n\n.fa-cowbell-more::before {\n content: \"\\f8b4\"; }\n\n.fa-circle-left::before {\n content: \"\\f359\"; }\n\n.fa-arrow-alt-circle-left::before {\n content: \"\\f359\"; }\n\n.fa-distribute-spacing-vertical::before {\n content: \"\\e366\"; }\n\n.fa-signal-bars-fair::before {\n content: \"\\f692\"; }\n\n.fa-signal-alt-2::before {\n content: \"\\f692\"; }\n\n.fa-sportsball::before {\n content: \"\\e44b\"; }\n\n.fa-game-console-handheld-crank::before {\n content: \"\\e5b9\"; }\n\n.fa-train-subway::before {\n content: \"\\f239\"; }\n\n.fa-subway::before {\n content: \"\\f239\"; }\n\n.fa-chart-gantt::before {\n content: \"\\e0e4\"; }\n\n.fa-face-smile-upside-down::before {\n content: \"\\e395\"; }\n\n.fa-ball-pile::before {\n content: \"\\f77e\"; }\n\n.fa-badge-dollar::before {\n content: \"\\f645\"; }\n\n.fa-money-bills-simple::before {\n content: \"\\e1f4\"; }\n\n.fa-money-bills-alt::before {\n content: \"\\e1f4\"; }\n\n.fa-list-timeline::before {\n content: \"\\e1d1\"; }\n\n.fa-indian-rupee-sign::before {\n content: \"\\e1bc\"; }\n\n.fa-indian-rupee::before {\n content: \"\\e1bc\"; }\n\n.fa-inr::before {\n content: \"\\e1bc\"; }\n\n.fa-crop-simple::before {\n content: \"\\f565\"; }\n\n.fa-crop-alt::before {\n content: \"\\f565\"; }\n\n.fa-money-bill-1::before {\n content: \"\\f3d1\"; }\n\n.fa-money-bill-alt::before {\n content: \"\\f3d1\"; }\n\n.fa-left-long::before {\n content: \"\\f30a\"; }\n\n.fa-long-arrow-alt-left::before {\n content: \"\\f30a\"; }\n\n.fa-keyboard-down::before {\n content: \"\\e1c2\"; }\n\n.fa-circle-up-right::before {\n content: \"\\e129\"; }\n\n.fa-cloud-bolt-moon::before {\n content: \"\\f76d\"; }\n\n.fa-thunderstorm-moon::before {\n content: \"\\f76d\"; }\n\n.fa-turn-left-up::before {\n content: \"\\e638\"; }\n\n.fa-dna::before {\n content: \"\\f471\"; }\n\n.fa-virus-slash::before {\n content: \"\\e075\"; }\n\n.fa-bracket-round-right::before {\n content: \"\\29\"; }\n\n.fa-circle-sterling::before {\n content: \"\\e5cf\"; }\n\n.fa-circle-5::before {\n content: \"\\e0f2\"; }\n\n.fa-minus::before {\n content: \"\\f068\"; }\n\n.fa-subtract::before {\n content: \"\\f068\"; }\n\n.fa-fire-flame::before {\n content: \"\\f6df\"; }\n\n.fa-flame::before {\n content: \"\\f6df\"; }\n\n.fa-right-to-line::before {\n content: \"\\f34c\"; }\n\n.fa-arrow-alt-to-right::before {\n content: \"\\f34c\"; }\n\n.fa-gif::before {\n content: \"\\e190\"; }\n\n.fa-chess::before {\n content: \"\\f439\"; }\n\n.fa-trash-slash::before {\n content: \"\\e2b3\"; }\n\n.fa-arrow-left-long::before {\n content: \"\\f177\"; }\n\n.fa-long-arrow-left::before {\n content: \"\\f177\"; }\n\n.fa-plug-circle-check::before {\n content: \"\\e55c\"; }\n\n.fa-font-case::before {\n content: \"\\f866\"; }\n\n.fa-street-view::before {\n content: \"\\f21d\"; }\n\n.fa-arrow-down-left::before {\n content: \"\\e091\"; }\n\n.fa-franc-sign::before {\n content: \"\\e18f\"; }\n\n.fa-flask-round-poison::before {\n content: \"\\f6e0\"; }\n\n.fa-flask-poison::before {\n content: \"\\f6e0\"; }\n\n.fa-volume-off::before {\n content: \"\\f026\"; }\n\n.fa-book-circle-arrow-right::before {\n content: \"\\e0bc\"; }\n\n.fa-chart-user::before {\n content: \"\\f6a3\"; }\n\n.fa-user-chart::before {\n content: \"\\f6a3\"; }\n\n.fa-hands-asl-interpreting::before {\n content: \"\\f2a3\"; }\n\n.fa-american-sign-language-interpreting::before {\n content: \"\\f2a3\"; }\n\n.fa-asl-interpreting::before {\n content: \"\\f2a3\"; }\n\n.fa-hands-american-sign-language-interpreting::before {\n content: \"\\f2a3\"; }\n\n.fa-presentation-screen::before {\n content: \"\\f685\"; }\n\n.fa-presentation::before {\n content: \"\\f685\"; }\n\n.fa-circle-bolt::before {\n content: \"\\e0fe\"; }\n\n.fa-face-smile-halo::before {\n content: \"\\e38f\"; }\n\n.fa-cart-circle-arrow-down::before {\n content: \"\\e3ef\"; }\n\n.fa-house-person-return::before {\n content: \"\\e011\"; }\n\n.fa-house-person-arrive::before {\n content: \"\\e011\"; }\n\n.fa-house-return::before {\n content: \"\\e011\"; }\n\n.fa-message-xmark::before {\n content: \"\\f4ab\"; }\n\n.fa-comment-alt-times::before {\n content: \"\\f4ab\"; }\n\n.fa-message-times::before {\n content: \"\\f4ab\"; }\n\n.fa-file-certificate::before {\n content: \"\\f5f3\"; }\n\n.fa-file-award::before {\n content: \"\\f5f3\"; }\n\n.fa-user-doctor-hair-long::before {\n content: \"\\e459\"; }\n\n.fa-camera-security::before {\n content: \"\\f8fe\"; }\n\n.fa-camera-home::before {\n content: \"\\f8fe\"; }\n\n.fa-gear::before {\n content: \"\\f013\"; }\n\n.fa-cog::before {\n content: \"\\f013\"; }\n\n.fa-droplet-slash::before {\n content: \"\\f5c7\"; }\n\n.fa-tint-slash::before {\n content: \"\\f5c7\"; }\n\n.fa-book-heart::before {\n content: \"\\f499\"; }\n\n.fa-mosque::before {\n content: \"\\f678\"; }\n\n.fa-duck::before {\n content: \"\\f6d8\"; }\n\n.fa-mosquito::before {\n content: \"\\e52b\"; }\n\n.fa-star-of-david::before {\n content: \"\\f69a\"; }\n\n.fa-flag-swallowtail::before {\n content: \"\\f74c\"; }\n\n.fa-flag-alt::before {\n content: \"\\f74c\"; }\n\n.fa-person-military-rifle::before {\n content: \"\\e54b\"; }\n\n.fa-car-garage::before {\n content: \"\\f5e2\"; }\n\n.fa-cart-shopping::before {\n content: \"\\f07a\"; }\n\n.fa-shopping-cart::before {\n content: \"\\f07a\"; }\n\n.fa-book-font::before {\n content: \"\\e0bf\"; }\n\n.fa-shield-plus::before {\n content: \"\\e24a\"; }\n\n.fa-vials::before {\n content: \"\\f493\"; }\n\n.fa-eye-dropper-full::before {\n content: \"\\e172\"; }\n\n.fa-distribute-spacing-horizontal::before {\n content: \"\\e365\"; }\n\n.fa-tablet-rugged::before {\n content: \"\\f48f\"; }\n\n.fa-temperature-snow::before {\n content: \"\\f768\"; }\n\n.fa-temperature-frigid::before {\n content: \"\\f768\"; }\n\n.fa-moped::before {\n content: \"\\e3b9\"; }\n\n.fa-face-smile-plus::before {\n content: \"\\f5b9\"; }\n\n.fa-smile-plus::before {\n content: \"\\f5b9\"; }\n\n.fa-radio-tuner::before {\n content: \"\\f8d8\"; }\n\n.fa-radio-alt::before {\n content: \"\\f8d8\"; }\n\n.fa-face-swear::before {\n content: \"\\e399\"; }\n\n.fa-water-arrow-down::before {\n content: \"\\f774\"; }\n\n.fa-water-lower::before {\n content: \"\\f774\"; }\n\n.fa-scanner-touchscreen::before {\n content: \"\\f48a\"; }\n\n.fa-circle-7::before {\n content: \"\\e0f4\"; }\n\n.fa-plug-circle-plus::before {\n content: \"\\e55f\"; }\n\n.fa-person-ski-jumping::before {\n content: \"\\f7c7\"; }\n\n.fa-ski-jump::before {\n content: \"\\f7c7\"; }\n\n.fa-place-of-worship::before {\n content: \"\\f67f\"; }\n\n.fa-water-arrow-up::before {\n content: \"\\f775\"; }\n\n.fa-water-rise::before {\n content: \"\\f775\"; }\n\n.fa-waveform-lines::before {\n content: \"\\f8f2\"; }\n\n.fa-waveform-path::before {\n content: \"\\f8f2\"; }\n\n.fa-split::before {\n content: \"\\e254\"; }\n\n.fa-film-canister::before {\n content: \"\\f8b7\"; }\n\n.fa-film-cannister::before {\n content: \"\\f8b7\"; }\n\n.fa-folder-xmark::before {\n content: \"\\f65f\"; }\n\n.fa-folder-times::before {\n content: \"\\f65f\"; }\n\n.fa-toilet-paper-blank::before {\n content: \"\\f71f\"; }\n\n.fa-toilet-paper-alt::before {\n content: \"\\f71f\"; }\n\n.fa-tablet-screen::before {\n content: \"\\f3fc\"; }\n\n.fa-tablet-android-alt::before {\n content: \"\\f3fc\"; }\n\n.fa-hexagon-vertical-nft-slanted::before {\n content: \"\\e506\"; }\n\n.fa-folder-music::before {\n content: \"\\e18d\"; }\n\n.fa-display-medical::before {\n content: \"\\e166\"; }\n\n.fa-desktop-medical::before {\n content: \"\\e166\"; }\n\n.fa-share-all::before {\n content: \"\\f367\"; }\n\n.fa-peapod::before {\n content: \"\\e31c\"; }\n\n.fa-chess-clock::before {\n content: \"\\f43d\"; }\n\n.fa-axe::before {\n content: \"\\f6b2\"; }\n\n.fa-square-d::before {\n content: \"\\e268\"; }\n\n.fa-grip-vertical::before {\n content: \"\\f58e\"; }\n\n.fa-mobile-signal-out::before {\n content: \"\\e1f0\"; }\n\n.fa-arrow-turn-up::before {\n content: \"\\f148\"; }\n\n.fa-level-up::before {\n content: \"\\f148\"; }\n\n.fa-u::before {\n content: \"\\55\"; }\n\n.fa-arrow-up-from-dotted-line::before {\n content: \"\\e09b\"; }\n\n.fa-square-root-variable::before {\n content: \"\\f698\"; }\n\n.fa-square-root-alt::before {\n content: \"\\f698\"; }\n\n.fa-light-switch-on::before {\n content: \"\\e019\"; }\n\n.fa-arrow-down-arrow-up::before {\n content: \"\\f883\"; }\n\n.fa-sort-alt::before {\n content: \"\\f883\"; }\n\n.fa-raindrops::before {\n content: \"\\f75c\"; }\n\n.fa-dash::before {\n content: \"\\e404\"; }\n\n.fa-minus-large::before {\n content: \"\\e404\"; }\n\n.fa-clock::before {\n content: \"\\f017\"; }\n\n.fa-clock-four::before {\n content: \"\\f017\"; }\n\n.fa-input-numeric::before {\n content: \"\\e1bd\"; }\n\n.fa-truck-tow::before {\n content: \"\\e2b8\"; }\n\n.fa-backward-step::before {\n content: \"\\f048\"; }\n\n.fa-step-backward::before {\n content: \"\\f048\"; }\n\n.fa-pallet::before {\n content: \"\\f482\"; }\n\n.fa-car-bolt::before {\n content: \"\\e341\"; }\n\n.fa-arrows-maximize::before {\n content: \"\\f31d\"; }\n\n.fa-expand-arrows::before {\n content: \"\\f31d\"; }\n\n.fa-faucet::before {\n content: \"\\e005\"; }\n\n.fa-cloud-sleet::before {\n content: \"\\f741\"; }\n\n.fa-lamp-street::before {\n content: \"\\e1c5\"; }\n\n.fa-list-radio::before {\n content: \"\\e1d0\"; }\n\n.fa-pen-nib-slash::before {\n content: \"\\e4a1\"; }\n\n.fa-baseball-bat-ball::before {\n content: \"\\f432\"; }\n\n.fa-square-up-left::before {\n content: \"\\e282\"; }\n\n.fa-overline::before {\n content: \"\\f876\"; }\n\n.fa-s::before {\n content: \"\\53\"; }\n\n.fa-timeline::before {\n content: \"\\e29c\"; }\n\n.fa-keyboard::before {\n content: \"\\f11c\"; }\n\n.fa-arrows-from-dotted-line::before {\n content: \"\\e0a3\"; }\n\n.fa-usb-drive::before {\n content: \"\\f8e9\"; }\n\n.fa-ballot::before {\n content: \"\\f732\"; }\n\n.fa-caret-down::before {\n content: \"\\f0d7\"; }\n\n.fa-location-dot-slash::before {\n content: \"\\f605\"; }\n\n.fa-map-marker-alt-slash::before {\n content: \"\\f605\"; }\n\n.fa-cards::before {\n content: \"\\e3ed\"; }\n\n.fa-house-chimney-medical::before {\n content: \"\\f7f2\"; }\n\n.fa-clinic-medical::before {\n content: \"\\f7f2\"; }\n\n.fa-boxing-glove::before {\n content: \"\\f438\"; }\n\n.fa-glove-boxing::before {\n content: \"\\f438\"; }\n\n.fa-temperature-three-quarters::before {\n content: \"\\f2c8\"; }\n\n.fa-temperature-3::before {\n content: \"\\f2c8\"; }\n\n.fa-thermometer-3::before {\n content: \"\\f2c8\"; }\n\n.fa-thermometer-three-quarters::before {\n content: \"\\f2c8\"; }\n\n.fa-bell-school::before {\n content: \"\\f5d5\"; }\n\n.fa-mobile-screen::before {\n content: \"\\f3cf\"; }\n\n.fa-mobile-android-alt::before {\n content: \"\\f3cf\"; }\n\n.fa-plane-up::before {\n content: \"\\e22d\"; }\n\n.fa-folder-heart::before {\n content: \"\\e189\"; }\n\n.fa-circle-location-arrow::before {\n content: \"\\f602\"; }\n\n.fa-location-circle::before {\n content: \"\\f602\"; }\n\n.fa-face-head-bandage::before {\n content: \"\\e37a\"; }\n\n.fa-sushi-roll::before {\n content: \"\\e48b\"; }\n\n.fa-maki-roll::before {\n content: \"\\e48b\"; }\n\n.fa-makizushi::before {\n content: \"\\e48b\"; }\n\n.fa-car-bump::before {\n content: \"\\f5e0\"; }\n\n.fa-piggy-bank::before {\n content: \"\\f4d3\"; }\n\n.fa-racquet::before {\n content: \"\\f45a\"; }\n\n.fa-car-mirrors::before {\n content: \"\\e343\"; }\n\n.fa-industry-windows::before {\n content: \"\\f3b3\"; }\n\n.fa-industry-alt::before {\n content: \"\\f3b3\"; }\n\n.fa-bolt-auto::before {\n content: \"\\e0b6\"; }\n\n.fa-battery-half::before {\n content: \"\\f242\"; }\n\n.fa-battery-3::before {\n content: \"\\f242\"; }\n\n.fa-flux-capacitor::before {\n content: \"\\f8ba\"; }\n\n.fa-mountain-city::before {\n content: \"\\e52e\"; }\n\n.fa-coins::before {\n content: \"\\f51e\"; }\n\n.fa-honey-pot::before {\n content: \"\\e418\"; }\n\n.fa-olive::before {\n content: \"\\e316\"; }\n\n.fa-khanda::before {\n content: \"\\f66d\"; }\n\n.fa-filter-list::before {\n content: \"\\e17c\"; }\n\n.fa-outlet::before {\n content: \"\\e01c\"; }\n\n.fa-sliders::before {\n content: \"\\f1de\"; }\n\n.fa-sliders-h::before {\n content: \"\\f1de\"; }\n\n.fa-cauldron::before {\n content: \"\\f6bf\"; }\n\n.fa-people::before {\n content: \"\\e216\"; }\n\n.fa-folder-tree::before {\n content: \"\\f802\"; }\n\n.fa-network-wired::before {\n content: \"\\f6ff\"; }\n\n.fa-croissant::before {\n content: \"\\f7f6\"; }\n\n.fa-map-pin::before {\n content: \"\\f276\"; }\n\n.fa-hamsa::before {\n content: \"\\f665\"; }\n\n.fa-cent-sign::before {\n content: \"\\e3f5\"; }\n\n.fa-swords-laser::before {\n content: \"\\e03d\"; }\n\n.fa-flask::before {\n content: \"\\f0c3\"; }\n\n.fa-person-pregnant::before {\n content: \"\\e31e\"; }\n\n.fa-square-u::before {\n content: \"\\e281\"; }\n\n.fa-wand-sparkles::before {\n content: \"\\f72b\"; }\n\n.fa-router::before {\n content: \"\\f8da\"; }\n\n.fa-ellipsis-vertical::before {\n content: \"\\f142\"; }\n\n.fa-ellipsis-v::before {\n content: \"\\f142\"; }\n\n.fa-sword-laser-alt::before {\n content: \"\\e03c\"; }\n\n.fa-ticket::before {\n content: \"\\f145\"; }\n\n.fa-power-off::before {\n content: \"\\f011\"; }\n\n.fa-coin::before {\n content: \"\\f85c\"; }\n\n.fa-laptop-slash::before {\n content: \"\\e1c7\"; }\n\n.fa-right-long::before {\n content: \"\\f30b\"; }\n\n.fa-long-arrow-alt-right::before {\n content: \"\\f30b\"; }\n\n.fa-circle-b::before {\n content: \"\\e0fd\"; }\n\n.fa-person-dress-simple::before {\n content: \"\\e21c\"; }\n\n.fa-pipe-collar::before {\n content: \"\\e437\"; }\n\n.fa-lights-holiday::before {\n content: \"\\f7b2\"; }\n\n.fa-citrus::before {\n content: \"\\e2f4\"; }\n\n.fa-flag-usa::before {\n content: \"\\f74d\"; }\n\n.fa-laptop-file::before {\n content: \"\\e51d\"; }\n\n.fa-tty::before {\n content: \"\\f1e4\"; }\n\n.fa-teletype::before {\n content: \"\\f1e4\"; }\n\n.fa-chart-tree-map::before {\n content: \"\\e0ea\"; }\n\n.fa-diagram-next::before {\n content: \"\\e476\"; }\n\n.fa-person-rifle::before {\n content: \"\\e54e\"; }\n\n.fa-clock-five-thirty::before {\n content: \"\\e34a\"; }\n\n.fa-pipe-valve::before {\n content: \"\\e439\"; }\n\n.fa-arrow-up-from-arc::before {\n content: \"\\e4b4\"; }\n\n.fa-face-spiral-eyes::before {\n content: \"\\e485\"; }\n\n.fa-compress-wide::before {\n content: \"\\f326\"; }\n\n.fa-circle-phone-hangup::before {\n content: \"\\e11d\"; }\n\n.fa-phone-circle-down::before {\n content: \"\\e11d\"; }\n\n.fa-gear-complex-code::before {\n content: \"\\e5eb\"; }\n\n.fa-house-medical-circle-exclamation::before {\n content: \"\\e512\"; }\n\n.fa-badminton::before {\n content: \"\\e33a\"; }\n\n.fa-closed-captioning::before {\n content: \"\\f20a\"; }\n\n.fa-person-hiking::before {\n content: \"\\f6ec\"; }\n\n.fa-hiking::before {\n content: \"\\f6ec\"; }\n\n.fa-right-from-line::before {\n content: \"\\f347\"; }\n\n.fa-arrow-alt-from-left::before {\n content: \"\\f347\"; }\n\n.fa-venus-double::before {\n content: \"\\f226\"; }\n\n.fa-images::before {\n content: \"\\f302\"; }\n\n.fa-calculator::before {\n content: \"\\f1ec\"; }\n\n.fa-shuttlecock::before {\n content: \"\\f45b\"; }\n\n.fa-user-hair::before {\n content: \"\\e45a\"; }\n\n.fa-eye-evil::before {\n content: \"\\f6db\"; }\n\n.fa-people-pulling::before {\n content: \"\\e535\"; }\n\n.fa-n::before {\n content: \"\\4e\"; }\n\n.fa-swap::before {\n content: \"\\e609\"; }\n\n.fa-garage::before {\n content: \"\\e009\"; }\n\n.fa-cable-car::before {\n content: \"\\f7da\"; }\n\n.fa-tram::before {\n content: \"\\f7da\"; }\n\n.fa-shovel-snow::before {\n content: \"\\f7c3\"; }\n\n.fa-cloud-rain::before {\n content: \"\\f73d\"; }\n\n.fa-face-lying::before {\n content: \"\\e37e\"; }\n\n.fa-sprinkler::before {\n content: \"\\e035\"; }\n\n.fa-building-circle-xmark::before {\n content: \"\\e4d4\"; }\n\n.fa-person-sledding::before {\n content: \"\\f7cb\"; }\n\n.fa-sledding::before {\n content: \"\\f7cb\"; }\n\n.fa-game-console-handheld::before {\n content: \"\\f8bb\"; }\n\n.fa-ship::before {\n content: \"\\f21a\"; }\n\n.fa-clock-six-thirty::before {\n content: \"\\e353\"; }\n\n.fa-battery-slash::before {\n content: \"\\f377\"; }\n\n.fa-tugrik-sign::before {\n content: \"\\e2ba\"; }\n\n.fa-arrows-down-to-line::before {\n content: \"\\e4b8\"; }\n\n.fa-download::before {\n content: \"\\f019\"; }\n\n.fa-angles-up-down::before {\n content: \"\\e60d\"; }\n\n.fa-shelves::before {\n content: \"\\f480\"; }\n\n.fa-inventory::before {\n content: \"\\f480\"; }\n\n.fa-cloud-snow::before {\n content: \"\\f742\"; }\n\n.fa-face-grin::before {\n content: \"\\f580\"; }\n\n.fa-grin::before {\n content: \"\\f580\"; }\n\n.fa-delete-left::before {\n content: \"\\f55a\"; }\n\n.fa-backspace::before {\n content: \"\\f55a\"; }\n\n.fa-oven::before {\n content: \"\\e01d\"; }\n\n.fa-cloud-binary::before {\n content: \"\\e601\"; }\n\n.fa-eye-dropper::before {\n content: \"\\f1fb\"; }\n\n.fa-eye-dropper-empty::before {\n content: \"\\f1fb\"; }\n\n.fa-eyedropper::before {\n content: \"\\f1fb\"; }\n\n.fa-comment-captions::before {\n content: \"\\e146\"; }\n\n.fa-comments-question::before {\n content: \"\\e14e\"; }\n\n.fa-scribble::before {\n content: \"\\e23f\"; }\n\n.fa-rotate-exclamation::before {\n content: \"\\e23c\"; }\n\n.fa-file-circle-check::before {\n content: \"\\e5a0\"; }\n\n.fa-glass::before {\n content: \"\\f804\"; }\n\n.fa-loader::before {\n content: \"\\e1d4\"; }\n\n.fa-forward::before {\n content: \"\\f04e\"; }\n\n.fa-user-pilot::before {\n content: \"\\e2c0\"; }\n\n.fa-mobile::before {\n content: \"\\f3ce\"; }\n\n.fa-mobile-android::before {\n content: \"\\f3ce\"; }\n\n.fa-mobile-phone::before {\n content: \"\\f3ce\"; }\n\n.fa-code-pull-request-closed::before {\n content: \"\\e3f9\"; }\n\n.fa-face-meh::before {\n content: \"\\f11a\"; }\n\n.fa-meh::before {\n content: \"\\f11a\"; }\n\n.fa-align-center::before {\n content: \"\\f037\"; }\n\n.fa-book-skull::before {\n content: \"\\f6b7\"; }\n\n.fa-book-dead::before {\n content: \"\\f6b7\"; }\n\n.fa-id-card::before {\n content: \"\\f2c2\"; }\n\n.fa-drivers-license::before {\n content: \"\\f2c2\"; }\n\n.fa-face-dotted::before {\n content: \"\\e47f\"; }\n\n.fa-face-worried::before {\n content: \"\\e3a3\"; }\n\n.fa-outdent::before {\n content: \"\\f03b\"; }\n\n.fa-dedent::before {\n content: \"\\f03b\"; }\n\n.fa-court-sport::before {\n content: \"\\e643\"; }\n\n.fa-heart-circle-exclamation::before {\n content: \"\\e4fe\"; }\n\n.fa-house::before {\n content: \"\\f015\"; }\n\n.fa-home::before {\n content: \"\\f015\"; }\n\n.fa-home-alt::before {\n content: \"\\f015\"; }\n\n.fa-home-lg-alt::before {\n content: \"\\f015\"; }\n\n.fa-vector-circle::before {\n content: \"\\e2c6\"; }\n\n.fa-car-circle-bolt::before {\n content: \"\\e342\"; }\n\n.fa-calendar-week::before {\n content: \"\\f784\"; }\n\n.fa-flying-disc::before {\n content: \"\\e3a9\"; }\n\n.fa-laptop-medical::before {\n content: \"\\f812\"; }\n\n.fa-square-down-right::before {\n content: \"\\e26c\"; }\n\n.fa-b::before {\n content: \"\\42\"; }\n\n.fa-seat-airline::before {\n content: \"\\e244\"; }\n\n.fa-moon-over-sun::before {\n content: \"\\f74a\"; }\n\n.fa-eclipse-alt::before {\n content: \"\\f74a\"; }\n\n.fa-pipe::before {\n content: \"\\7c\"; }\n\n.fa-file-medical::before {\n content: \"\\f477\"; }\n\n.fa-potato::before {\n content: \"\\e440\"; }\n\n.fa-dice-one::before {\n content: \"\\f525\"; }\n\n.fa-circle-a::before {\n content: \"\\e0f7\"; }\n\n.fa-helmet-battle::before {\n content: \"\\f6eb\"; }\n\n.fa-butter::before {\n content: \"\\e3e4\"; }\n\n.fa-blanket-fire::before {\n content: \"\\e3da\"; }\n\n.fa-kiwi-bird::before {\n content: \"\\f535\"; }\n\n.fa-castle::before {\n content: \"\\e0de\"; }\n\n.fa-golf-club::before {\n content: \"\\f451\"; }\n\n.fa-arrow-right-arrow-left::before {\n content: \"\\f0ec\"; }\n\n.fa-exchange::before {\n content: \"\\f0ec\"; }\n\n.fa-rotate-right::before {\n content: \"\\f2f9\"; }\n\n.fa-redo-alt::before {\n content: \"\\f2f9\"; }\n\n.fa-rotate-forward::before {\n content: \"\\f2f9\"; }\n\n.fa-utensils::before {\n content: \"\\f2e7\"; }\n\n.fa-cutlery::before {\n content: \"\\f2e7\"; }\n\n.fa-arrow-up-wide-short::before {\n content: \"\\f161\"; }\n\n.fa-sort-amount-up::before {\n content: \"\\f161\"; }\n\n.fa-chart-pie-simple-circle-dollar::before {\n content: \"\\e605\"; }\n\n.fa-balloons::before {\n content: \"\\e2e4\"; }\n\n.fa-mill-sign::before {\n content: \"\\e1ed\"; }\n\n.fa-bowl-rice::before {\n content: \"\\e2eb\"; }\n\n.fa-timeline-arrow::before {\n content: \"\\e29d\"; }\n\n.fa-skull::before {\n content: \"\\f54c\"; }\n\n.fa-game-board-simple::before {\n content: \"\\f868\"; }\n\n.fa-game-board-alt::before {\n content: \"\\f868\"; }\n\n.fa-circle-video::before {\n content: \"\\e12b\"; }\n\n.fa-video-circle::before {\n content: \"\\e12b\"; }\n\n.fa-chart-scatter-bubble::before {\n content: \"\\e0e9\"; }\n\n.fa-house-turret::before {\n content: \"\\e1b4\"; }\n\n.fa-banana::before {\n content: \"\\e2e5\"; }\n\n.fa-hand-holding-skull::before {\n content: \"\\e1a4\"; }\n\n.fa-people-dress::before {\n content: \"\\e217\"; }\n\n.fa-loveseat::before {\n content: \"\\f4cc\"; }\n\n.fa-couch-small::before {\n content: \"\\f4cc\"; }\n\n.fa-tower-broadcast::before {\n content: \"\\f519\"; }\n\n.fa-broadcast-tower::before {\n content: \"\\f519\"; }\n\n.fa-truck-pickup::before {\n content: \"\\f63c\"; }\n\n.fa-block-quote::before {\n content: \"\\e0b5\"; }\n\n.fa-up-long::before {\n content: \"\\f30c\"; }\n\n.fa-long-arrow-alt-up::before {\n content: \"\\f30c\"; }\n\n.fa-stop::before {\n content: \"\\f04d\"; }\n\n.fa-code-merge::before {\n content: \"\\f387\"; }\n\n.fa-money-check-dollar-pen::before {\n content: \"\\f873\"; }\n\n.fa-money-check-edit-alt::before {\n content: \"\\f873\"; }\n\n.fa-up-from-line::before {\n content: \"\\f346\"; }\n\n.fa-arrow-alt-from-bottom::before {\n content: \"\\f346\"; }\n\n.fa-upload::before {\n content: \"\\f093\"; }\n\n.fa-hurricane::before {\n content: \"\\f751\"; }\n\n.fa-grid-round-2-plus::before {\n content: \"\\e5dc\"; }\n\n.fa-people-pants::before {\n content: \"\\e219\"; }\n\n.fa-mound::before {\n content: \"\\e52d\"; }\n\n.fa-windsock::before {\n content: \"\\f777\"; }\n\n.fa-circle-half::before {\n content: \"\\e110\"; }\n\n.fa-brake-warning::before {\n content: \"\\e0c7\"; }\n\n.fa-toilet-portable::before {\n content: \"\\e583\"; }\n\n.fa-compact-disc::before {\n content: \"\\f51f\"; }\n\n.fa-file-arrow-down::before {\n content: \"\\f56d\"; }\n\n.fa-file-download::before {\n content: \"\\f56d\"; }\n\n.fa-saxophone-fire::before {\n content: \"\\f8db\"; }\n\n.fa-sax-hot::before {\n content: \"\\f8db\"; }\n\n.fa-camera-web-slash::before {\n content: \"\\f833\"; }\n\n.fa-webcam-slash::before {\n content: \"\\f833\"; }\n\n.fa-folder-medical::before {\n content: \"\\e18c\"; }\n\n.fa-folder-gear::before {\n content: \"\\e187\"; }\n\n.fa-folder-cog::before {\n content: \"\\e187\"; }\n\n.fa-hand-wave::before {\n content: \"\\e1a7\"; }\n\n.fa-arrow-up-arrow-down::before {\n content: \"\\e099\"; }\n\n.fa-sort-up-down::before {\n content: \"\\e099\"; }\n\n.fa-caravan::before {\n content: \"\\f8ff\"; }\n\n.fa-shield-cat::before {\n content: \"\\e572\"; }\n\n.fa-message-slash::before {\n content: \"\\f4a9\"; }\n\n.fa-comment-alt-slash::before {\n content: \"\\f4a9\"; }\n\n.fa-bolt::before {\n content: \"\\f0e7\"; }\n\n.fa-zap::before {\n content: \"\\f0e7\"; }\n\n.fa-trash-can-check::before {\n content: \"\\e2a9\"; }\n\n.fa-glass-water::before {\n content: \"\\e4f4\"; }\n\n.fa-oil-well::before {\n content: \"\\e532\"; }\n\n.fa-person-simple::before {\n content: \"\\e220\"; }\n\n.fa-arrow-turn-left-up::before {\n content: \"\\e634\"; }\n\n.fa-vault::before {\n content: \"\\e2c5\"; }\n\n.fa-mars::before {\n content: \"\\f222\"; }\n\n.fa-toilet::before {\n content: \"\\f7d8\"; }\n\n.fa-plane-circle-xmark::before {\n content: \"\\e557\"; }\n\n.fa-yen-sign::before {\n content: \"\\f157\"; }\n\n.fa-cny::before {\n content: \"\\f157\"; }\n\n.fa-jpy::before {\n content: \"\\f157\"; }\n\n.fa-rmb::before {\n content: \"\\f157\"; }\n\n.fa-yen::before {\n content: \"\\f157\"; }\n\n.fa-gear-code::before {\n content: \"\\e5e8\"; }\n\n.fa-notes::before {\n content: \"\\e202\"; }\n\n.fa-ruble-sign::before {\n content: \"\\f158\"; }\n\n.fa-rouble::before {\n content: \"\\f158\"; }\n\n.fa-rub::before {\n content: \"\\f158\"; }\n\n.fa-ruble::before {\n content: \"\\f158\"; }\n\n.fa-trash-undo::before {\n content: \"\\f895\"; }\n\n.fa-trash-arrow-turn-left::before {\n content: \"\\f895\"; }\n\n.fa-champagne-glass::before {\n content: \"\\f79e\"; }\n\n.fa-glass-champagne::before {\n content: \"\\f79e\"; }\n\n.fa-objects-align-center-horizontal::before {\n content: \"\\e3bc\"; }\n\n.fa-sun::before {\n content: \"\\f185\"; }\n\n.fa-trash-can-slash::before {\n content: \"\\e2ad\"; }\n\n.fa-trash-alt-slash::before {\n content: \"\\e2ad\"; }\n\n.fa-screen-users::before {\n content: \"\\f63d\"; }\n\n.fa-users-class::before {\n content: \"\\f63d\"; }\n\n.fa-guitar::before {\n content: \"\\f7a6\"; }\n\n.fa-square-arrow-left::before {\n content: \"\\f33a\"; }\n\n.fa-arrow-square-left::before {\n content: \"\\f33a\"; }\n\n.fa-square-8::before {\n content: \"\\e25d\"; }\n\n.fa-face-smile-hearts::before {\n content: \"\\e390\"; }\n\n.fa-brackets-square::before {\n content: \"\\f7e9\"; }\n\n.fa-brackets::before {\n content: \"\\f7e9\"; }\n\n.fa-laptop-arrow-down::before {\n content: \"\\e1c6\"; }\n\n.fa-hockey-stick-puck::before {\n content: \"\\e3ae\"; }\n\n.fa-house-tree::before {\n content: \"\\e1b3\"; }\n\n.fa-signal-fair::before {\n content: \"\\f68d\"; }\n\n.fa-signal-2::before {\n content: \"\\f68d\"; }\n\n.fa-face-laugh-wink::before {\n content: \"\\f59c\"; }\n\n.fa-laugh-wink::before {\n content: \"\\f59c\"; }\n\n.fa-circle-dollar::before {\n content: \"\\f2e8\"; }\n\n.fa-dollar-circle::before {\n content: \"\\f2e8\"; }\n\n.fa-usd-circle::before {\n content: \"\\f2e8\"; }\n\n.fa-horse-head::before {\n content: \"\\f7ab\"; }\n\n.fa-arrows-repeat::before {\n content: \"\\f364\"; }\n\n.fa-repeat-alt::before {\n content: \"\\f364\"; }\n\n.fa-bore-hole::before {\n content: \"\\e4c3\"; }\n\n.fa-industry::before {\n content: \"\\f275\"; }\n\n.fa-image-polaroid::before {\n content: \"\\f8c4\"; }\n\n.fa-wave-triangle::before {\n content: \"\\f89a\"; }\n\n.fa-turn-left-down::before {\n content: \"\\e637\"; }\n\n.fa-person-running-fast::before {\n content: \"\\e5ff\"; }\n\n.fa-circle-down::before {\n content: \"\\f358\"; }\n\n.fa-arrow-alt-circle-down::before {\n content: \"\\f358\"; }\n\n.fa-grill::before {\n content: \"\\e5a3\"; }\n\n.fa-arrows-turn-to-dots::before {\n content: \"\\e4c1\"; }\n\n.fa-chart-mixed::before {\n content: \"\\f643\"; }\n\n.fa-analytics::before {\n content: \"\\f643\"; }\n\n.fa-florin-sign::before {\n content: \"\\e184\"; }\n\n.fa-arrow-down-short-wide::before {\n content: \"\\f884\"; }\n\n.fa-sort-amount-desc::before {\n content: \"\\f884\"; }\n\n.fa-sort-amount-down-alt::before {\n content: \"\\f884\"; }\n\n.fa-less-than::before {\n content: \"\\3c\"; }\n\n.fa-display-code::before {\n content: \"\\e165\"; }\n\n.fa-desktop-code::before {\n content: \"\\e165\"; }\n\n.fa-face-drooling::before {\n content: \"\\e372\"; }\n\n.fa-oil-temperature::before {\n content: \"\\f614\"; }\n\n.fa-oil-temp::before {\n content: \"\\f614\"; }\n\n.fa-square-question::before {\n content: \"\\f2fd\"; }\n\n.fa-question-square::before {\n content: \"\\f2fd\"; }\n\n.fa-air-conditioner::before {\n content: \"\\f8f4\"; }\n\n.fa-angle-down::before {\n content: \"\\f107\"; }\n\n.fa-mountains::before {\n content: \"\\f6fd\"; }\n\n.fa-omega::before {\n content: \"\\f67a\"; }\n\n.fa-car-tunnel::before {\n content: \"\\e4de\"; }\n\n.fa-person-dolly-empty::before {\n content: \"\\f4d1\"; }\n\n.fa-pan-food::before {\n content: \"\\e42b\"; }\n\n.fa-head-side-cough::before {\n content: \"\\e061\"; }\n\n.fa-grip-lines::before {\n content: \"\\f7a4\"; }\n\n.fa-thumbs-down::before {\n content: \"\\f165\"; }\n\n.fa-user-lock::before {\n content: \"\\f502\"; }\n\n.fa-arrow-right-long::before {\n content: \"\\f178\"; }\n\n.fa-long-arrow-right::before {\n content: \"\\f178\"; }\n\n.fa-tickets-airline::before {\n content: \"\\e29b\"; }\n\n.fa-tickets-perforated-plane::before {\n content: \"\\e29b\"; }\n\n.fa-tickets-plane::before {\n content: \"\\e29b\"; }\n\n.fa-tent-double-peak::before {\n content: \"\\e627\"; }\n\n.fa-anchor-circle-xmark::before {\n content: \"\\e4ac\"; }\n\n.fa-ellipsis::before {\n content: \"\\f141\"; }\n\n.fa-ellipsis-h::before {\n content: \"\\f141\"; }\n\n.fa-nfc-slash::before {\n content: \"\\e1fc\"; }\n\n.fa-chess-pawn::before {\n content: \"\\f443\"; }\n\n.fa-kit-medical::before {\n content: \"\\f479\"; }\n\n.fa-first-aid::before {\n content: \"\\f479\"; }\n\n.fa-grid-2-plus::before {\n content: \"\\e197\"; }\n\n.fa-bells::before {\n content: \"\\f77f\"; }\n\n.fa-person-through-window::before {\n content: \"\\e5a9\"; }\n\n.fa-toolbox::before {\n content: \"\\f552\"; }\n\n.fa-envelope-dot::before {\n content: \"\\e16f\"; }\n\n.fa-envelope-badge::before {\n content: \"\\e16f\"; }\n\n.fa-magnifying-glass-waveform::before {\n content: \"\\e661\"; }\n\n.fa-hands-holding-circle::before {\n content: \"\\e4fb\"; }\n\n.fa-bug::before {\n content: \"\\f188\"; }\n\n.fa-bowl-chopsticks::before {\n content: \"\\e2e9\"; }\n\n.fa-credit-card::before {\n content: \"\\f09d\"; }\n\n.fa-credit-card-alt::before {\n content: \"\\f09d\"; }\n\n.fa-circle-s::before {\n content: \"\\e121\"; }\n\n.fa-box-ballot::before {\n content: \"\\f735\"; }\n\n.fa-car::before {\n content: \"\\f1b9\"; }\n\n.fa-automobile::before {\n content: \"\\f1b9\"; }\n\n.fa-hand-holding-hand::before {\n content: \"\\e4f7\"; }\n\n.fa-user-tie-hair::before {\n content: \"\\e45f\"; }\n\n.fa-podium-star::before {\n content: \"\\f758\"; }\n\n.fa-user-hair-mullet::before {\n content: \"\\e45c\"; }\n\n.fa-business-front::before {\n content: \"\\e45c\"; }\n\n.fa-party-back::before {\n content: \"\\e45c\"; }\n\n.fa-trian-balbot::before {\n content: \"\\e45c\"; }\n\n.fa-microphone-stand::before {\n content: \"\\f8cb\"; }\n\n.fa-book-open-reader::before {\n content: \"\\f5da\"; }\n\n.fa-book-reader::before {\n content: \"\\f5da\"; }\n\n.fa-family-dress::before {\n content: \"\\e301\"; }\n\n.fa-circle-x::before {\n content: \"\\e12e\"; }\n\n.fa-cabin::before {\n content: \"\\e46d\"; }\n\n.fa-mountain-sun::before {\n content: \"\\e52f\"; }\n\n.fa-chart-simple-horizontal::before {\n content: \"\\e474\"; }\n\n.fa-arrows-left-right-to-line::before {\n content: \"\\e4ba\"; }\n\n.fa-hand-back-point-left::before {\n content: \"\\e19f\"; }\n\n.fa-message-dots::before {\n content: \"\\f4a3\"; }\n\n.fa-comment-alt-dots::before {\n content: \"\\f4a3\"; }\n\n.fa-messaging::before {\n content: \"\\f4a3\"; }\n\n.fa-file-heart::before {\n content: \"\\e176\"; }\n\n.fa-beer-mug::before {\n content: \"\\e0b3\"; }\n\n.fa-beer-foam::before {\n content: \"\\e0b3\"; }\n\n.fa-dice-d20::before {\n content: \"\\f6cf\"; }\n\n.fa-drone::before {\n content: \"\\f85f\"; }\n\n.fa-truck-droplet::before {\n content: \"\\e58c\"; }\n\n.fa-file-circle-xmark::before {\n content: \"\\e5a1\"; }\n\n.fa-temperature-arrow-up::before {\n content: \"\\e040\"; }\n\n.fa-temperature-up::before {\n content: \"\\e040\"; }\n\n.fa-medal::before {\n content: \"\\f5a2\"; }\n\n.fa-person-fairy::before {\n content: \"\\e608\"; }\n\n.fa-bed::before {\n content: \"\\f236\"; }\n\n.fa-book-copy::before {\n content: \"\\e0be\"; }\n\n.fa-square-h::before {\n content: \"\\f0fd\"; }\n\n.fa-h-square::before {\n content: \"\\f0fd\"; }\n\n.fa-square-c::before {\n content: \"\\e266\"; }\n\n.fa-clock-two::before {\n content: \"\\e35a\"; }\n\n.fa-square-ellipsis-vertical::before {\n content: \"\\e26f\"; }\n\n.fa-calendar-users::before {\n content: \"\\e5e2\"; }\n\n.fa-podcast::before {\n content: \"\\f2ce\"; }\n\n.fa-bee::before {\n content: \"\\e0b2\"; }\n\n.fa-temperature-full::before {\n content: \"\\f2c7\"; }\n\n.fa-temperature-4::before {\n content: \"\\f2c7\"; }\n\n.fa-thermometer-4::before {\n content: \"\\f2c7\"; }\n\n.fa-thermometer-full::before {\n content: \"\\f2c7\"; }\n\n.fa-bell::before {\n content: \"\\f0f3\"; }\n\n.fa-candy-bar::before {\n content: \"\\e3e8\"; }\n\n.fa-chocolate-bar::before {\n content: \"\\e3e8\"; }\n\n.fa-xmark-large::before {\n content: \"\\e59b\"; }\n\n.fa-pinata::before {\n content: \"\\e3c3\"; }\n\n.fa-file-ppt::before {\n content: \"\\e64a\"; }\n\n.fa-arrows-from-line::before {\n content: \"\\e0a4\"; }\n\n.fa-superscript::before {\n content: \"\\f12b\"; }\n\n.fa-bowl-spoon::before {\n content: \"\\e3e0\"; }\n\n.fa-hexagon-check::before {\n content: \"\\e416\"; }\n\n.fa-plug-circle-xmark::before {\n content: \"\\e560\"; }\n\n.fa-star-of-life::before {\n content: \"\\f621\"; }\n\n.fa-phone-slash::before {\n content: \"\\f3dd\"; }\n\n.fa-traffic-light-stop::before {\n content: \"\\f63a\"; }\n\n.fa-paint-roller::before {\n content: \"\\f5aa\"; }\n\n.fa-accent-grave::before {\n content: \"\\60\"; }\n\n.fa-handshake-angle::before {\n content: \"\\f4c4\"; }\n\n.fa-hands-helping::before {\n content: \"\\f4c4\"; }\n\n.fa-circle-0::before {\n content: \"\\e0ed\"; }\n\n.fa-dial-med-low::before {\n content: \"\\e160\"; }\n\n.fa-location-dot::before {\n content: \"\\f3c5\"; }\n\n.fa-map-marker-alt::before {\n content: \"\\f3c5\"; }\n\n.fa-crab::before {\n content: \"\\e3ff\"; }\n\n.fa-box-open-full::before {\n content: \"\\f49c\"; }\n\n.fa-box-full::before {\n content: \"\\f49c\"; }\n\n.fa-file::before {\n content: \"\\f15b\"; }\n\n.fa-greater-than::before {\n content: \"\\3e\"; }\n\n.fa-quotes::before {\n content: \"\\e234\"; }\n\n.fa-pretzel::before {\n content: \"\\e441\"; }\n\n.fa-t-rex::before {\n content: \"\\e629\"; }\n\n.fa-person-swimming::before {\n content: \"\\f5c4\"; }\n\n.fa-swimmer::before {\n content: \"\\f5c4\"; }\n\n.fa-arrow-down::before {\n content: \"\\f063\"; }\n\n.fa-user-robot-xmarks::before {\n content: \"\\e4a7\"; }\n\n.fa-message-quote::before {\n content: \"\\e1e4\"; }\n\n.fa-comment-alt-quote::before {\n content: \"\\e1e4\"; }\n\n.fa-candy-corn::before {\n content: \"\\f6bd\"; }\n\n.fa-folder-magnifying-glass::before {\n content: \"\\e18b\"; }\n\n.fa-folder-search::before {\n content: \"\\e18b\"; }\n\n.fa-notebook::before {\n content: \"\\e201\"; }\n\n.fa-circle-wifi::before {\n content: \"\\e67d\"; }\n\n.fa-droplet::before {\n content: \"\\f043\"; }\n\n.fa-tint::before {\n content: \"\\f043\"; }\n\n.fa-bullseye-pointer::before {\n content: \"\\f649\"; }\n\n.fa-eraser::before {\n content: \"\\f12d\"; }\n\n.fa-hexagon-image::before {\n content: \"\\e504\"; }\n\n.fa-earth-americas::before {\n content: \"\\f57d\"; }\n\n.fa-earth::before {\n content: \"\\f57d\"; }\n\n.fa-earth-america::before {\n content: \"\\f57d\"; }\n\n.fa-globe-americas::before {\n content: \"\\f57d\"; }\n\n.fa-file-svg::before {\n content: \"\\e64b\"; }\n\n.fa-crate-apple::before {\n content: \"\\f6b1\"; }\n\n.fa-apple-crate::before {\n content: \"\\f6b1\"; }\n\n.fa-person-burst::before {\n content: \"\\e53b\"; }\n\n.fa-game-board::before {\n content: \"\\f867\"; }\n\n.fa-hat-chef::before {\n content: \"\\f86b\"; }\n\n.fa-hand-back-point-right::before {\n content: \"\\e1a1\"; }\n\n.fa-dove::before {\n content: \"\\f4ba\"; }\n\n.fa-snowflake-droplets::before {\n content: \"\\e5c1\"; }\n\n.fa-battery-empty::before {\n content: \"\\f244\"; }\n\n.fa-battery-0::before {\n content: \"\\f244\"; }\n\n.fa-grid-4::before {\n content: \"\\e198\"; }\n\n.fa-socks::before {\n content: \"\\f696\"; }\n\n.fa-face-sunglasses::before {\n content: \"\\e398\"; }\n\n.fa-inbox::before {\n content: \"\\f01c\"; }\n\n.fa-square-0::before {\n content: \"\\e255\"; }\n\n.fa-section::before {\n content: \"\\e447\"; }\n\n.fa-square-this-way-up::before {\n content: \"\\f49f\"; }\n\n.fa-box-up::before {\n content: \"\\f49f\"; }\n\n.fa-gauge-high::before {\n content: \"\\f625\"; }\n\n.fa-tachometer-alt::before {\n content: \"\\f625\"; }\n\n.fa-tachometer-alt-fast::before {\n content: \"\\f625\"; }\n\n.fa-square-ampersand::before {\n content: \"\\e260\"; }\n\n.fa-envelope-open-text::before {\n content: \"\\f658\"; }\n\n.fa-lamp-desk::before {\n content: \"\\e014\"; }\n\n.fa-hospital::before {\n content: \"\\f0f8\"; }\n\n.fa-hospital-alt::before {\n content: \"\\f0f8\"; }\n\n.fa-hospital-wide::before {\n content: \"\\f0f8\"; }\n\n.fa-poll-people::before {\n content: \"\\f759\"; }\n\n.fa-whiskey-glass-ice::before {\n content: \"\\f7a1\"; }\n\n.fa-glass-whiskey-rocks::before {\n content: \"\\f7a1\"; }\n\n.fa-wine-bottle::before {\n content: \"\\f72f\"; }\n\n.fa-chess-rook::before {\n content: \"\\f447\"; }\n\n.fa-user-bounty-hunter::before {\n content: \"\\e2bf\"; }\n\n.fa-bars-staggered::before {\n content: \"\\f550\"; }\n\n.fa-reorder::before {\n content: \"\\f550\"; }\n\n.fa-stream::before {\n content: \"\\f550\"; }\n\n.fa-diagram-sankey::before {\n content: \"\\e158\"; }\n\n.fa-cloud-hail-mixed::before {\n content: \"\\f73a\"; }\n\n.fa-circle-up-left::before {\n content: \"\\e128\"; }\n\n.fa-dharmachakra::before {\n content: \"\\f655\"; }\n\n.fa-objects-align-left::before {\n content: \"\\e3be\"; }\n\n.fa-oil-can-drip::before {\n content: \"\\e205\"; }\n\n.fa-face-smiling-hands::before {\n content: \"\\e396\"; }\n\n.fa-broccoli::before {\n content: \"\\e3e2\"; }\n\n.fa-route-interstate::before {\n content: \"\\f61b\"; }\n\n.fa-ear-muffs::before {\n content: \"\\f795\"; }\n\n.fa-hotdog::before {\n content: \"\\f80f\"; }\n\n.fa-transporter-empty::before {\n content: \"\\e046\"; }\n\n.fa-person-walking-with-cane::before {\n content: \"\\f29d\"; }\n\n.fa-blind::before {\n content: \"\\f29d\"; }\n\n.fa-angle-90::before {\n content: \"\\e08d\"; }\n\n.fa-rectangle-terminal::before {\n content: \"\\e236\"; }\n\n.fa-kite::before {\n content: \"\\f6f4\"; }\n\n.fa-drum::before {\n content: \"\\f569\"; }\n\n.fa-scrubber::before {\n content: \"\\f2f8\"; }\n\n.fa-ice-cream::before {\n content: \"\\f810\"; }\n\n.fa-heart-circle-bolt::before {\n content: \"\\e4fc\"; }\n\n.fa-fish-bones::before {\n content: \"\\e304\"; }\n\n.fa-deer-rudolph::before {\n content: \"\\f78f\"; }\n\n.fa-fax::before {\n content: \"\\f1ac\"; }\n\n.fa-paragraph::before {\n content: \"\\f1dd\"; }\n\n.fa-head-side-heart::before {\n content: \"\\e1aa\"; }\n\n.fa-square-e::before {\n content: \"\\e26d\"; }\n\n.fa-meter-fire::before {\n content: \"\\e1eb\"; }\n\n.fa-cloud-hail::before {\n content: \"\\f739\"; }\n\n.fa-check-to-slot::before {\n content: \"\\f772\"; }\n\n.fa-vote-yea::before {\n content: \"\\f772\"; }\n\n.fa-money-from-bracket::before {\n content: \"\\e312\"; }\n\n.fa-star-half::before {\n content: \"\\f089\"; }\n\n.fa-car-bus::before {\n content: \"\\f85a\"; }\n\n.fa-speaker::before {\n content: \"\\f8df\"; }\n\n.fa-timer::before {\n content: \"\\e29e\"; }\n\n.fa-boxes-stacked::before {\n content: \"\\f468\"; }\n\n.fa-boxes::before {\n content: \"\\f468\"; }\n\n.fa-boxes-alt::before {\n content: \"\\f468\"; }\n\n.fa-landmark-magnifying-glass::before {\n content: \"\\e622\"; }\n\n.fa-grill-hot::before {\n content: \"\\e5a5\"; }\n\n.fa-ballot-check::before {\n content: \"\\f733\"; }\n\n.fa-link::before {\n content: \"\\f0c1\"; }\n\n.fa-chain::before {\n content: \"\\f0c1\"; }\n\n.fa-ear-listen::before {\n content: \"\\f2a2\"; }\n\n.fa-assistive-listening-systems::before {\n content: \"\\f2a2\"; }\n\n.fa-file-minus::before {\n content: \"\\f318\"; }\n\n.fa-tree-city::before {\n content: \"\\e587\"; }\n\n.fa-play::before {\n content: \"\\f04b\"; }\n\n.fa-font::before {\n content: \"\\f031\"; }\n\n.fa-cup-togo::before {\n content: \"\\f6c5\"; }\n\n.fa-coffee-togo::before {\n content: \"\\f6c5\"; }\n\n.fa-square-down-left::before {\n content: \"\\e26b\"; }\n\n.fa-burger-lettuce::before {\n content: \"\\e3e3\"; }\n\n.fa-table-cells-row-lock::before {\n content: \"\\e67a\"; }\n\n.fa-rupiah-sign::before {\n content: \"\\e23d\"; }\n\n.fa-magnifying-glass::before {\n content: \"\\f002\"; }\n\n.fa-search::before {\n content: \"\\f002\"; }\n\n.fa-table-tennis-paddle-ball::before {\n content: \"\\f45d\"; }\n\n.fa-ping-pong-paddle-ball::before {\n content: \"\\f45d\"; }\n\n.fa-table-tennis::before {\n content: \"\\f45d\"; }\n\n.fa-person-dots-from-line::before {\n content: \"\\f470\"; }\n\n.fa-diagnoses::before {\n content: \"\\f470\"; }\n\n.fa-chevrons-down::before {\n content: \"\\f322\"; }\n\n.fa-chevron-double-down::before {\n content: \"\\f322\"; }\n\n.fa-trash-can-arrow-up::before {\n content: \"\\f82a\"; }\n\n.fa-trash-restore-alt::before {\n content: \"\\f82a\"; }\n\n.fa-signal-good::before {\n content: \"\\f68e\"; }\n\n.fa-signal-3::before {\n content: \"\\f68e\"; }\n\n.fa-location-question::before {\n content: \"\\f60b\"; }\n\n.fa-map-marker-question::before {\n content: \"\\f60b\"; }\n\n.fa-floppy-disk-circle-xmark::before {\n content: \"\\e181\"; }\n\n.fa-floppy-disk-times::before {\n content: \"\\e181\"; }\n\n.fa-save-circle-xmark::before {\n content: \"\\e181\"; }\n\n.fa-save-times::before {\n content: \"\\e181\"; }\n\n.fa-naira-sign::before {\n content: \"\\e1f6\"; }\n\n.fa-peach::before {\n content: \"\\e20b\"; }\n\n.fa-taxi-bus::before {\n content: \"\\e298\"; }\n\n.fa-bracket-curly::before {\n content: \"\\7b\"; }\n\n.fa-bracket-curly-left::before {\n content: \"\\7b\"; }\n\n.fa-lobster::before {\n content: \"\\e421\"; }\n\n.fa-cart-flatbed-empty::before {\n content: \"\\f476\"; }\n\n.fa-dolly-flatbed-empty::before {\n content: \"\\f476\"; }\n\n.fa-colon::before {\n content: \"\\3a\"; }\n\n.fa-cart-arrow-down::before {\n content: \"\\f218\"; }\n\n.fa-wand::before {\n content: \"\\f72a\"; }\n\n.fa-walkie-talkie::before {\n content: \"\\f8ef\"; }\n\n.fa-file-pen::before {\n content: \"\\f31c\"; }\n\n.fa-file-edit::before {\n content: \"\\f31c\"; }\n\n.fa-receipt::before {\n content: \"\\f543\"; }\n\n.fa-table-picnic::before {\n content: \"\\e32d\"; }\n\n.fa-square-pen::before {\n content: \"\\f14b\"; }\n\n.fa-pen-square::before {\n content: \"\\f14b\"; }\n\n.fa-pencil-square::before {\n content: \"\\f14b\"; }\n\n.fa-circle-microphone-lines::before {\n content: \"\\e117\"; }\n\n.fa-microphone-circle-alt::before {\n content: \"\\e117\"; }\n\n.fa-display-slash::before {\n content: \"\\e2fa\"; }\n\n.fa-desktop-slash::before {\n content: \"\\e2fa\"; }\n\n.fa-suitcase-rolling::before {\n content: \"\\f5c1\"; }\n\n.fa-person-circle-exclamation::before {\n content: \"\\e53f\"; }\n\n.fa-transporter-2::before {\n content: \"\\e044\"; }\n\n.fa-hands-holding-diamond::before {\n content: \"\\f47c\"; }\n\n.fa-hand-receiving::before {\n content: \"\\f47c\"; }\n\n.fa-money-bill-simple-wave::before {\n content: \"\\e1f2\"; }\n\n.fa-chevron-down::before {\n content: \"\\f078\"; }\n\n.fa-battery-full::before {\n content: \"\\f240\"; }\n\n.fa-battery::before {\n content: \"\\f240\"; }\n\n.fa-battery-5::before {\n content: \"\\f240\"; }\n\n.fa-bell-plus::before {\n content: \"\\f849\"; }\n\n.fa-book-arrow-right::before {\n content: \"\\e0b9\"; }\n\n.fa-hospitals::before {\n content: \"\\f80e\"; }\n\n.fa-club::before {\n content: \"\\f327\"; }\n\n.fa-skull-crossbones::before {\n content: \"\\f714\"; }\n\n.fa-droplet-degree::before {\n content: \"\\f748\"; }\n\n.fa-dewpoint::before {\n content: \"\\f748\"; }\n\n.fa-code-compare::before {\n content: \"\\e13a\"; }\n\n.fa-list-ul::before {\n content: \"\\f0ca\"; }\n\n.fa-list-dots::before {\n content: \"\\f0ca\"; }\n\n.fa-hand-holding-magic::before {\n content: \"\\f6e5\"; }\n\n.fa-watermelon-slice::before {\n content: \"\\e337\"; }\n\n.fa-circle-ellipsis::before {\n content: \"\\e10a\"; }\n\n.fa-school-lock::before {\n content: \"\\e56f\"; }\n\n.fa-tower-cell::before {\n content: \"\\e585\"; }\n\n.fa-sd-cards::before {\n content: \"\\e240\"; }\n\n.fa-jug-bottle::before {\n content: \"\\e5fb\"; }\n\n.fa-down-long::before {\n content: \"\\f309\"; }\n\n.fa-long-arrow-alt-down::before {\n content: \"\\f309\"; }\n\n.fa-envelopes::before {\n content: \"\\e170\"; }\n\n.fa-phone-office::before {\n content: \"\\f67d\"; }\n\n.fa-ranking-star::before {\n content: \"\\e561\"; }\n\n.fa-chess-king::before {\n content: \"\\f43f\"; }\n\n.fa-nfc-pen::before {\n content: \"\\e1fa\"; }\n\n.fa-person-harassing::before {\n content: \"\\e549\"; }\n\n.fa-magnifying-glass-play::before {\n content: \"\\e660\"; }\n\n.fa-hat-winter::before {\n content: \"\\f7a8\"; }\n\n.fa-brazilian-real-sign::before {\n content: \"\\e46c\"; }\n\n.fa-landmark-dome::before {\n content: \"\\f752\"; }\n\n.fa-landmark-alt::before {\n content: \"\\f752\"; }\n\n.fa-bone-break::before {\n content: \"\\f5d8\"; }\n\n.fa-arrow-up::before {\n content: \"\\f062\"; }\n\n.fa-down-from-dotted-line::before {\n content: \"\\e407\"; }\n\n.fa-tv::before {\n content: \"\\f26c\"; }\n\n.fa-television::before {\n content: \"\\f26c\"; }\n\n.fa-tv-alt::before {\n content: \"\\f26c\"; }\n\n.fa-border-left::before {\n content: \"\\f84f\"; }\n\n.fa-circle-divide::before {\n content: \"\\e106\"; }\n\n.fa-shrimp::before {\n content: \"\\e448\"; }\n\n.fa-list-check::before {\n content: \"\\f0ae\"; }\n\n.fa-tasks::before {\n content: \"\\f0ae\"; }\n\n.fa-diagram-subtask::before {\n content: \"\\e479\"; }\n\n.fa-jug-detergent::before {\n content: \"\\e519\"; }\n\n.fa-circle-user::before {\n content: \"\\f2bd\"; }\n\n.fa-user-circle::before {\n content: \"\\f2bd\"; }\n\n.fa-square-y::before {\n content: \"\\e287\"; }\n\n.fa-user-doctor-hair::before {\n content: \"\\e458\"; }\n\n.fa-planet-ringed::before {\n content: \"\\e020\"; }\n\n.fa-mushroom::before {\n content: \"\\e425\"; }\n\n.fa-user-shield::before {\n content: \"\\f505\"; }\n\n.fa-megaphone::before {\n content: \"\\f675\"; }\n\n.fa-wreath-laurel::before {\n content: \"\\e5d2\"; }\n\n.fa-circle-exclamation-check::before {\n content: \"\\e10d\"; }\n\n.fa-wind::before {\n content: \"\\f72e\"; }\n\n.fa-box-dollar::before {\n content: \"\\f4a0\"; }\n\n.fa-box-usd::before {\n content: \"\\f4a0\"; }\n\n.fa-car-burst::before {\n content: \"\\f5e1\"; }\n\n.fa-car-crash::before {\n content: \"\\f5e1\"; }\n\n.fa-y::before {\n content: \"\\59\"; }\n\n.fa-user-headset::before {\n content: \"\\f82d\"; }\n\n.fa-arrows-retweet::before {\n content: \"\\f361\"; }\n\n.fa-retweet-alt::before {\n content: \"\\f361\"; }\n\n.fa-person-snowboarding::before {\n content: \"\\f7ce\"; }\n\n.fa-snowboarding::before {\n content: \"\\f7ce\"; }\n\n.fa-square-chevron-right::before {\n content: \"\\f32b\"; }\n\n.fa-chevron-square-right::before {\n content: \"\\f32b\"; }\n\n.fa-lacrosse-stick-ball::before {\n content: \"\\e3b6\"; }\n\n.fa-truck-fast::before {\n content: \"\\f48b\"; }\n\n.fa-shipping-fast::before {\n content: \"\\f48b\"; }\n\n.fa-user-magnifying-glass::before {\n content: \"\\e5c5\"; }\n\n.fa-star-sharp::before {\n content: \"\\e28b\"; }\n\n.fa-comment-heart::before {\n content: \"\\e5c8\"; }\n\n.fa-circle-1::before {\n content: \"\\e0ee\"; }\n\n.fa-circle-star::before {\n content: \"\\e123\"; }\n\n.fa-star-circle::before {\n content: \"\\e123\"; }\n\n.fa-fish::before {\n content: \"\\f578\"; }\n\n.fa-cloud-fog::before {\n content: \"\\f74e\"; }\n\n.fa-fog::before {\n content: \"\\f74e\"; }\n\n.fa-waffle::before {\n content: \"\\e466\"; }\n\n.fa-music-note::before {\n content: \"\\f8cf\"; }\n\n.fa-music-alt::before {\n content: \"\\f8cf\"; }\n\n.fa-hexagon-exclamation::before {\n content: \"\\e417\"; }\n\n.fa-cart-shopping-fast::before {\n content: \"\\e0dc\"; }\n\n.fa-object-union::before {\n content: \"\\e49f\"; }\n\n.fa-user-graduate::before {\n content: \"\\f501\"; }\n\n.fa-starfighter::before {\n content: \"\\e037\"; }\n\n.fa-circle-half-stroke::before {\n content: \"\\f042\"; }\n\n.fa-adjust::before {\n content: \"\\f042\"; }\n\n.fa-arrow-right-long-to-line::before {\n content: \"\\e3d5\"; }\n\n.fa-square-arrow-down::before {\n content: \"\\f339\"; }\n\n.fa-arrow-square-down::before {\n content: \"\\f339\"; }\n\n.fa-diamond-half-stroke::before {\n content: \"\\e5b8\"; }\n\n.fa-clapperboard::before {\n content: \"\\e131\"; }\n\n.fa-square-chevron-left::before {\n content: \"\\f32a\"; }\n\n.fa-chevron-square-left::before {\n content: \"\\f32a\"; }\n\n.fa-phone-intercom::before {\n content: \"\\e434\"; }\n\n.fa-link-horizontal::before {\n content: \"\\e1cb\"; }\n\n.fa-chain-horizontal::before {\n content: \"\\e1cb\"; }\n\n.fa-mango::before {\n content: \"\\e30f\"; }\n\n.fa-music-note-slash::before {\n content: \"\\f8d0\"; }\n\n.fa-music-alt-slash::before {\n content: \"\\f8d0\"; }\n\n.fa-circle-radiation::before {\n content: \"\\f7ba\"; }\n\n.fa-radiation-alt::before {\n content: \"\\f7ba\"; }\n\n.fa-face-tongue-sweat::before {\n content: \"\\e39e\"; }\n\n.fa-globe-stand::before {\n content: \"\\f5f6\"; }\n\n.fa-baseball::before {\n content: \"\\f433\"; }\n\n.fa-baseball-ball::before {\n content: \"\\f433\"; }\n\n.fa-circle-p::before {\n content: \"\\e11a\"; }\n\n.fa-award-simple::before {\n content: \"\\e0ab\"; }\n\n.fa-jet-fighter-up::before {\n content: \"\\e518\"; }\n\n.fa-diagram-project::before {\n content: \"\\f542\"; }\n\n.fa-project-diagram::before {\n content: \"\\f542\"; }\n\n.fa-pedestal::before {\n content: \"\\e20d\"; }\n\n.fa-chart-pyramid::before {\n content: \"\\e0e6\"; }\n\n.fa-sidebar::before {\n content: \"\\e24e\"; }\n\n.fa-snowman-head::before {\n content: \"\\f79b\"; }\n\n.fa-frosty-head::before {\n content: \"\\f79b\"; }\n\n.fa-copy::before {\n content: \"\\f0c5\"; }\n\n.fa-burger-glass::before {\n content: \"\\e0ce\"; }\n\n.fa-volume-xmark::before {\n content: \"\\f6a9\"; }\n\n.fa-volume-mute::before {\n content: \"\\f6a9\"; }\n\n.fa-volume-times::before {\n content: \"\\f6a9\"; }\n\n.fa-hand-sparkles::before {\n content: \"\\e05d\"; }\n\n.fa-bars-filter::before {\n content: \"\\e0ad\"; }\n\n.fa-paintbrush-pencil::before {\n content: \"\\e206\"; }\n\n.fa-party-bell::before {\n content: \"\\e31a\"; }\n\n.fa-user-vneck-hair::before {\n content: \"\\e462\"; }\n\n.fa-jack-o-lantern::before {\n content: \"\\f30e\"; }\n\n.fa-grip::before {\n content: \"\\f58d\"; }\n\n.fa-grip-horizontal::before {\n content: \"\\f58d\"; }\n\n.fa-share-from-square::before {\n content: \"\\f14d\"; }\n\n.fa-share-square::before {\n content: \"\\f14d\"; }\n\n.fa-keynote::before {\n content: \"\\f66c\"; }\n\n.fa-child-combatant::before {\n content: \"\\e4e0\"; }\n\n.fa-child-rifle::before {\n content: \"\\e4e0\"; }\n\n.fa-gun::before {\n content: \"\\e19b\"; }\n\n.fa-square-phone::before {\n content: \"\\f098\"; }\n\n.fa-phone-square::before {\n content: \"\\f098\"; }\n\n.fa-hat-beach::before {\n content: \"\\e606\"; }\n\n.fa-plus::before {\n content: \"\\2b\"; }\n\n.fa-add::before {\n content: \"\\2b\"; }\n\n.fa-expand::before {\n content: \"\\f065\"; }\n\n.fa-computer::before {\n content: \"\\e4e5\"; }\n\n.fa-fort::before {\n content: \"\\e486\"; }\n\n.fa-cloud-check::before {\n content: \"\\e35c\"; }\n\n.fa-xmark::before {\n content: \"\\f00d\"; }\n\n.fa-close::before {\n content: \"\\f00d\"; }\n\n.fa-multiply::before {\n content: \"\\f00d\"; }\n\n.fa-remove::before {\n content: \"\\f00d\"; }\n\n.fa-times::before {\n content: \"\\f00d\"; }\n\n.fa-face-smirking::before {\n content: \"\\e397\"; }\n\n.fa-arrows-up-down-left-right::before {\n content: \"\\f047\"; }\n\n.fa-arrows::before {\n content: \"\\f047\"; }\n\n.fa-chalkboard-user::before {\n content: \"\\f51c\"; }\n\n.fa-chalkboard-teacher::before {\n content: \"\\f51c\"; }\n\n.fa-rhombus::before {\n content: \"\\e23b\"; }\n\n.fa-claw-marks::before {\n content: \"\\f6c2\"; }\n\n.fa-peso-sign::before {\n content: \"\\e222\"; }\n\n.fa-face-smile-tongue::before {\n content: \"\\e394\"; }\n\n.fa-cart-circle-xmark::before {\n content: \"\\e3f4\"; }\n\n.fa-building-shield::before {\n content: \"\\e4d8\"; }\n\n.fa-circle-phone-flip::before {\n content: \"\\e11c\"; }\n\n.fa-phone-circle-alt::before {\n content: \"\\e11c\"; }\n\n.fa-baby::before {\n content: \"\\f77c\"; }\n\n.fa-users-line::before {\n content: \"\\e592\"; }\n\n.fa-quote-left::before {\n content: \"\\f10d\"; }\n\n.fa-quote-left-alt::before {\n content: \"\\f10d\"; }\n\n.fa-tractor::before {\n content: \"\\f722\"; }\n\n.fa-down-from-bracket::before {\n content: \"\\e66b\"; }\n\n.fa-key-skeleton::before {\n content: \"\\f6f3\"; }\n\n.fa-trash-arrow-up::before {\n content: \"\\f829\"; }\n\n.fa-trash-restore::before {\n content: \"\\f829\"; }\n\n.fa-arrow-down-up-lock::before {\n content: \"\\e4b0\"; }\n\n.fa-arrow-down-to-bracket::before {\n content: \"\\e094\"; }\n\n.fa-lines-leaning::before {\n content: \"\\e51e\"; }\n\n.fa-square-q::before {\n content: \"\\e27b\"; }\n\n.fa-ruler-combined::before {\n content: \"\\f546\"; }\n\n.fa-symbols::before {\n content: \"\\f86e\"; }\n\n.fa-icons-alt::before {\n content: \"\\f86e\"; }\n\n.fa-copyright::before {\n content: \"\\f1f9\"; }\n\n.fa-flask-gear::before {\n content: \"\\e5f1\"; }\n\n.fa-highlighter-line::before {\n content: \"\\e1af\"; }\n\n.fa-bracket-square::before {\n content: \"\\5b\"; }\n\n.fa-bracket::before {\n content: \"\\5b\"; }\n\n.fa-bracket-left::before {\n content: \"\\5b\"; }\n\n.fa-island-tropical::before {\n content: \"\\f811\"; }\n\n.fa-island-tree-palm::before {\n content: \"\\f811\"; }\n\n.fa-arrow-right-from-line::before {\n content: \"\\f343\"; }\n\n.fa-arrow-from-left::before {\n content: \"\\f343\"; }\n\n.fa-h2::before {\n content: \"\\f314\"; }\n\n.fa-equals::before {\n content: \"\\3d\"; }\n\n.fa-cake-slice::before {\n content: \"\\e3e5\"; }\n\n.fa-shortcake::before {\n content: \"\\e3e5\"; }\n\n.fa-building-magnifying-glass::before {\n content: \"\\e61c\"; }\n\n.fa-peanut::before {\n content: \"\\e430\"; }\n\n.fa-wrench-simple::before {\n content: \"\\e2d1\"; }\n\n.fa-blender::before {\n content: \"\\f517\"; }\n\n.fa-teeth::before {\n content: \"\\f62e\"; }\n\n.fa-tally-2::before {\n content: \"\\e295\"; }\n\n.fa-shekel-sign::before {\n content: \"\\f20b\"; }\n\n.fa-ils::before {\n content: \"\\f20b\"; }\n\n.fa-shekel::before {\n content: \"\\f20b\"; }\n\n.fa-sheqel::before {\n content: \"\\f20b\"; }\n\n.fa-sheqel-sign::before {\n content: \"\\f20b\"; }\n\n.fa-cars::before {\n content: \"\\f85b\"; }\n\n.fa-axe-battle::before {\n content: \"\\f6b3\"; }\n\n.fa-user-hair-long::before {\n content: \"\\e45b\"; }\n\n.fa-map::before {\n content: \"\\f279\"; }\n\n.fa-arrow-left-from-arc::before {\n content: \"\\e615\"; }\n\n.fa-file-circle-info::before {\n content: \"\\e493\"; }\n\n.fa-face-disappointed::before {\n content: \"\\e36f\"; }\n\n.fa-lasso-sparkles::before {\n content: \"\\e1c9\"; }\n\n.fa-clock-eleven::before {\n content: \"\\e347\"; }\n\n.fa-rocket::before {\n content: \"\\f135\"; }\n\n.fa-siren-on::before {\n content: \"\\e02e\"; }\n\n.fa-clock-ten::before {\n content: \"\\e354\"; }\n\n.fa-candle-holder::before {\n content: \"\\f6bc\"; }\n\n.fa-video-arrow-down-left::before {\n content: \"\\e2c8\"; }\n\n.fa-photo-film::before {\n content: \"\\f87c\"; }\n\n.fa-photo-video::before {\n content: \"\\f87c\"; }\n\n.fa-floppy-disk-circle-arrow-right::before {\n content: \"\\e180\"; }\n\n.fa-save-circle-arrow-right::before {\n content: \"\\e180\"; }\n\n.fa-folder-minus::before {\n content: \"\\f65d\"; }\n\n.fa-planet-moon::before {\n content: \"\\e01f\"; }\n\n.fa-face-eyes-xmarks::before {\n content: \"\\e374\"; }\n\n.fa-chart-scatter::before {\n content: \"\\f7ee\"; }\n\n.fa-circle-gf::before {\n content: \"\\e67f\"; }\n\n.fa-display-arrow-down::before {\n content: \"\\e164\"; }\n\n.fa-store::before {\n content: \"\\f54e\"; }\n\n.fa-arrow-trend-up::before {\n content: \"\\e098\"; }\n\n.fa-plug-circle-minus::before {\n content: \"\\e55e\"; }\n\n.fa-olive-branch::before {\n content: \"\\e317\"; }\n\n.fa-angle::before {\n content: \"\\e08c\"; }\n\n.fa-vacuum-robot::before {\n content: \"\\e04e\"; }\n\n.fa-sign-hanging::before {\n content: \"\\f4d9\"; }\n\n.fa-sign::before {\n content: \"\\f4d9\"; }\n\n.fa-square-divide::before {\n content: \"\\e26a\"; }\n\n.fa-folder-check::before {\n content: \"\\e64e\"; }\n\n.fa-signal-stream-slash::before {\n content: \"\\e250\"; }\n\n.fa-bezier-curve::before {\n content: \"\\f55b\"; }\n\n.fa-eye-dropper-half::before {\n content: \"\\e173\"; }\n\n.fa-store-lock::before {\n content: \"\\e4a6\"; }\n\n.fa-bell-slash::before {\n content: \"\\f1f6\"; }\n\n.fa-cloud-bolt-sun::before {\n content: \"\\f76e\"; }\n\n.fa-thunderstorm-sun::before {\n content: \"\\f76e\"; }\n\n.fa-camera-slash::before {\n content: \"\\e0d9\"; }\n\n.fa-comment-quote::before {\n content: \"\\e14c\"; }\n\n.fa-tablet::before {\n content: \"\\f3fb\"; }\n\n.fa-tablet-android::before {\n content: \"\\f3fb\"; }\n\n.fa-school-flag::before {\n content: \"\\e56e\"; }\n\n.fa-message-code::before {\n content: \"\\e1df\"; }\n\n.fa-glass-half::before {\n content: \"\\e192\"; }\n\n.fa-glass-half-empty::before {\n content: \"\\e192\"; }\n\n.fa-glass-half-full::before {\n content: \"\\e192\"; }\n\n.fa-fill::before {\n content: \"\\f575\"; }\n\n.fa-message-minus::before {\n content: \"\\f4a7\"; }\n\n.fa-comment-alt-minus::before {\n content: \"\\f4a7\"; }\n\n.fa-angle-up::before {\n content: \"\\f106\"; }\n\n.fa-dinosaur::before {\n content: \"\\e5fe\"; }\n\n.fa-drumstick-bite::before {\n content: \"\\f6d7\"; }\n\n.fa-link-horizontal-slash::before {\n content: \"\\e1cc\"; }\n\n.fa-chain-horizontal-slash::before {\n content: \"\\e1cc\"; }\n\n.fa-holly-berry::before {\n content: \"\\f7aa\"; }\n\n.fa-nose::before {\n content: \"\\e5bd\"; }\n\n.fa-arrow-left-to-arc::before {\n content: \"\\e616\"; }\n\n.fa-chevron-left::before {\n content: \"\\f053\"; }\n\n.fa-bacteria::before {\n content: \"\\e059\"; }\n\n.fa-clouds::before {\n content: \"\\f744\"; }\n\n.fa-money-bill-simple::before {\n content: \"\\e1f1\"; }\n\n.fa-hand-lizard::before {\n content: \"\\f258\"; }\n\n.fa-table-pivot::before {\n content: \"\\e291\"; }\n\n.fa-filter-slash::before {\n content: \"\\e17d\"; }\n\n.fa-trash-can-undo::before {\n content: \"\\f896\"; }\n\n.fa-trash-can-arrow-turn-left::before {\n content: \"\\f896\"; }\n\n.fa-trash-undo-alt::before {\n content: \"\\f896\"; }\n\n.fa-notdef::before {\n content: \"\\e1fe\"; }\n\n.fa-disease::before {\n content: \"\\f7fa\"; }\n\n.fa-person-to-door::before {\n content: \"\\e433\"; }\n\n.fa-turntable::before {\n content: \"\\f8e4\"; }\n\n.fa-briefcase-medical::before {\n content: \"\\f469\"; }\n\n.fa-genderless::before {\n content: \"\\f22d\"; }\n\n.fa-chevron-right::before {\n content: \"\\f054\"; }\n\n.fa-signal-weak::before {\n content: \"\\f68c\"; }\n\n.fa-signal-1::before {\n content: \"\\f68c\"; }\n\n.fa-clock-five::before {\n content: \"\\e349\"; }\n\n.fa-retweet::before {\n content: \"\\f079\"; }\n\n.fa-car-rear::before {\n content: \"\\f5de\"; }\n\n.fa-car-alt::before {\n content: \"\\f5de\"; }\n\n.fa-pump-soap::before {\n content: \"\\e06b\"; }\n\n.fa-computer-classic::before {\n content: \"\\f8b1\"; }\n\n.fa-frame::before {\n content: \"\\e495\"; }\n\n.fa-video-slash::before {\n content: \"\\f4e2\"; }\n\n.fa-battery-quarter::before {\n content: \"\\f243\"; }\n\n.fa-battery-2::before {\n content: \"\\f243\"; }\n\n.fa-ellipsis-stroke::before {\n content: \"\\f39b\"; }\n\n.fa-ellipsis-h-alt::before {\n content: \"\\f39b\"; }\n\n.fa-radio::before {\n content: \"\\f8d7\"; }\n\n.fa-baby-carriage::before {\n content: \"\\f77d\"; }\n\n.fa-carriage-baby::before {\n content: \"\\f77d\"; }\n\n.fa-face-expressionless::before {\n content: \"\\e373\"; }\n\n.fa-down-to-dotted-line::before {\n content: \"\\e408\"; }\n\n.fa-cloud-music::before {\n content: \"\\f8ae\"; }\n\n.fa-traffic-light::before {\n content: \"\\f637\"; }\n\n.fa-cloud-minus::before {\n content: \"\\e35d\"; }\n\n.fa-thermometer::before {\n content: \"\\f491\"; }\n\n.fa-shield-minus::before {\n content: \"\\e249\"; }\n\n.fa-vr-cardboard::before {\n content: \"\\f729\"; }\n\n.fa-car-tilt::before {\n content: \"\\f5e5\"; }\n\n.fa-gauge-circle-minus::before {\n content: \"\\e497\"; }\n\n.fa-brightness-low::before {\n content: \"\\e0ca\"; }\n\n.fa-hand-middle-finger::before {\n content: \"\\f806\"; }\n\n.fa-percent::before {\n content: \"\\25\"; }\n\n.fa-percentage::before {\n content: \"\\25\"; }\n\n.fa-truck-moving::before {\n content: \"\\f4df\"; }\n\n.fa-glass-water-droplet::before {\n content: \"\\e4f5\"; }\n\n.fa-conveyor-belt::before {\n content: \"\\f46e\"; }\n\n.fa-location-check::before {\n content: \"\\f606\"; }\n\n.fa-map-marker-check::before {\n content: \"\\f606\"; }\n\n.fa-coin-vertical::before {\n content: \"\\e3fd\"; }\n\n.fa-display::before {\n content: \"\\e163\"; }\n\n.fa-person-sign::before {\n content: \"\\f757\"; }\n\n.fa-face-smile::before {\n content: \"\\f118\"; }\n\n.fa-smile::before {\n content: \"\\f118\"; }\n\n.fa-phone-hangup::before {\n content: \"\\e225\"; }\n\n.fa-signature-slash::before {\n content: \"\\e3cb\"; }\n\n.fa-thumbtack::before {\n content: \"\\f08d\"; }\n\n.fa-thumb-tack::before {\n content: \"\\f08d\"; }\n\n.fa-wheat-slash::before {\n content: \"\\e339\"; }\n\n.fa-trophy::before {\n content: \"\\f091\"; }\n\n.fa-clouds-sun::before {\n content: \"\\f746\"; }\n\n.fa-person-praying::before {\n content: \"\\f683\"; }\n\n.fa-pray::before {\n content: \"\\f683\"; }\n\n.fa-hammer::before {\n content: \"\\f6e3\"; }\n\n.fa-face-vomit::before {\n content: \"\\e3a0\"; }\n\n.fa-speakers::before {\n content: \"\\f8e0\"; }\n\n.fa-tty-answer::before {\n content: \"\\e2b9\"; }\n\n.fa-teletype-answer::before {\n content: \"\\e2b9\"; }\n\n.fa-mug-tea-saucer::before {\n content: \"\\e1f5\"; }\n\n.fa-diagram-lean-canvas::before {\n content: \"\\e156\"; }\n\n.fa-alt::before {\n content: \"\\e08a\"; }\n\n.fa-dial::before {\n content: \"\\e15b\"; }\n\n.fa-dial-med-high::before {\n content: \"\\e15b\"; }\n\n.fa-hand-peace::before {\n content: \"\\f25b\"; }\n\n.fa-circle-trash::before {\n content: \"\\e126\"; }\n\n.fa-trash-circle::before {\n content: \"\\e126\"; }\n\n.fa-rotate::before {\n content: \"\\f2f1\"; }\n\n.fa-sync-alt::before {\n content: \"\\f2f1\"; }\n\n.fa-circle-quarters::before {\n content: \"\\e3f8\"; }\n\n.fa-spinner::before {\n content: \"\\f110\"; }\n\n.fa-tower-control::before {\n content: \"\\e2a2\"; }\n\n.fa-arrow-up-triangle-square::before {\n content: \"\\f88a\"; }\n\n.fa-sort-shapes-up::before {\n content: \"\\f88a\"; }\n\n.fa-whale::before {\n content: \"\\f72c\"; }\n\n.fa-robot::before {\n content: \"\\f544\"; }\n\n.fa-peace::before {\n content: \"\\f67c\"; }\n\n.fa-party-horn::before {\n content: \"\\e31b\"; }\n\n.fa-gears::before {\n content: \"\\f085\"; }\n\n.fa-cogs::before {\n content: \"\\f085\"; }\n\n.fa-sun-bright::before {\n content: \"\\e28f\"; }\n\n.fa-sun-alt::before {\n content: \"\\e28f\"; }\n\n.fa-warehouse::before {\n content: \"\\f494\"; }\n\n.fa-conveyor-belt-arm::before {\n content: \"\\e5f8\"; }\n\n.fa-lock-keyhole-open::before {\n content: \"\\f3c2\"; }\n\n.fa-lock-open-alt::before {\n content: \"\\f3c2\"; }\n\n.fa-square-fragile::before {\n content: \"\\f49b\"; }\n\n.fa-box-fragile::before {\n content: \"\\f49b\"; }\n\n.fa-square-wine-glass-crack::before {\n content: \"\\f49b\"; }\n\n.fa-arrow-up-right-dots::before {\n content: \"\\e4b7\"; }\n\n.fa-square-n::before {\n content: \"\\e277\"; }\n\n.fa-splotch::before {\n content: \"\\f5bc\"; }\n\n.fa-face-grin-hearts::before {\n content: \"\\f584\"; }\n\n.fa-grin-hearts::before {\n content: \"\\f584\"; }\n\n.fa-meter::before {\n content: \"\\e1e8\"; }\n\n.fa-mandolin::before {\n content: \"\\f6f9\"; }\n\n.fa-dice-four::before {\n content: \"\\f524\"; }\n\n.fa-sim-card::before {\n content: \"\\f7c4\"; }\n\n.fa-transgender::before {\n content: \"\\f225\"; }\n\n.fa-transgender-alt::before {\n content: \"\\f225\"; }\n\n.fa-mercury::before {\n content: \"\\f223\"; }\n\n.fa-up-from-bracket::before {\n content: \"\\e590\"; }\n\n.fa-knife-kitchen::before {\n content: \"\\f6f5\"; }\n\n.fa-border-right::before {\n content: \"\\f852\"; }\n\n.fa-arrow-turn-down::before {\n content: \"\\f149\"; }\n\n.fa-level-down::before {\n content: \"\\f149\"; }\n\n.fa-spade::before {\n content: \"\\f2f4\"; }\n\n.fa-card-spade::before {\n content: \"\\e3ec\"; }\n\n.fa-line-columns::before {\n content: \"\\f870\"; }\n\n.fa-ant::before {\n content: \"\\e680\"; }\n\n.fa-arrow-right-to-line::before {\n content: \"\\f340\"; }\n\n.fa-arrow-to-right::before {\n content: \"\\f340\"; }\n\n.fa-person-falling-burst::before {\n content: \"\\e547\"; }\n\n.fa-flag-pennant::before {\n content: \"\\f456\"; }\n\n.fa-pennant::before {\n content: \"\\f456\"; }\n\n.fa-conveyor-belt-empty::before {\n content: \"\\e150\"; }\n\n.fa-user-group-simple::before {\n content: \"\\e603\"; }\n\n.fa-award::before {\n content: \"\\f559\"; }\n\n.fa-ticket-simple::before {\n content: \"\\f3ff\"; }\n\n.fa-ticket-alt::before {\n content: \"\\f3ff\"; }\n\n.fa-building::before {\n content: \"\\f1ad\"; }\n\n.fa-angles-left::before {\n content: \"\\f100\"; }\n\n.fa-angle-double-left::before {\n content: \"\\f100\"; }\n\n.fa-camcorder::before {\n content: \"\\f8a8\"; }\n\n.fa-video-handheld::before {\n content: \"\\f8a8\"; }\n\n.fa-pancakes::before {\n content: \"\\e42d\"; }\n\n.fa-album-circle-user::before {\n content: \"\\e48d\"; }\n\n.fa-subtitles-slash::before {\n content: \"\\e610\"; }\n\n.fa-qrcode::before {\n content: \"\\f029\"; }\n\n.fa-dice-d10::before {\n content: \"\\f6cd\"; }\n\n.fa-fireplace::before {\n content: \"\\f79a\"; }\n\n.fa-browser::before {\n content: \"\\f37e\"; }\n\n.fa-pen-paintbrush::before {\n content: \"\\f618\"; }\n\n.fa-pencil-paintbrush::before {\n content: \"\\f618\"; }\n\n.fa-fish-cooked::before {\n content: \"\\f7fe\"; }\n\n.fa-chair-office::before {\n content: \"\\f6c1\"; }\n\n.fa-magnifying-glass-music::before {\n content: \"\\e65f\"; }\n\n.fa-nesting-dolls::before {\n content: \"\\e3ba\"; }\n\n.fa-clock-rotate-left::before {\n content: \"\\f1da\"; }\n\n.fa-history::before {\n content: \"\\f1da\"; }\n\n.fa-trumpet::before {\n content: \"\\f8e3\"; }\n\n.fa-face-grin-beam-sweat::before {\n content: \"\\f583\"; }\n\n.fa-grin-beam-sweat::before {\n content: \"\\f583\"; }\n\n.fa-fire-smoke::before {\n content: \"\\f74b\"; }\n\n.fa-phone-missed::before {\n content: \"\\e226\"; }\n\n.fa-file-export::before {\n content: \"\\f56e\"; }\n\n.fa-arrow-right-from-file::before {\n content: \"\\f56e\"; }\n\n.fa-shield::before {\n content: \"\\f132\"; }\n\n.fa-shield-blank::before {\n content: \"\\f132\"; }\n\n.fa-arrow-up-short-wide::before {\n content: \"\\f885\"; }\n\n.fa-sort-amount-up-alt::before {\n content: \"\\f885\"; }\n\n.fa-arrows-repeat-1::before {\n content: \"\\f366\"; }\n\n.fa-repeat-1-alt::before {\n content: \"\\f366\"; }\n\n.fa-gun-slash::before {\n content: \"\\e19c\"; }\n\n.fa-avocado::before {\n content: \"\\e0aa\"; }\n\n.fa-binary::before {\n content: \"\\e33b\"; }\n\n.fa-glasses-round::before {\n content: \"\\f5f5\"; }\n\n.fa-glasses-alt::before {\n content: \"\\f5f5\"; }\n\n.fa-phone-plus::before {\n content: \"\\f4d2\"; }\n\n.fa-ditto::before {\n content: \"\\22\"; }\n\n.fa-person-seat::before {\n content: \"\\e21e\"; }\n\n.fa-house-medical::before {\n content: \"\\e3b2\"; }\n\n.fa-golf-ball-tee::before {\n content: \"\\f450\"; }\n\n.fa-golf-ball::before {\n content: \"\\f450\"; }\n\n.fa-circle-chevron-left::before {\n content: \"\\f137\"; }\n\n.fa-chevron-circle-left::before {\n content: \"\\f137\"; }\n\n.fa-house-chimney-window::before {\n content: \"\\e00d\"; }\n\n.fa-scythe::before {\n content: \"\\f710\"; }\n\n.fa-pen-nib::before {\n content: \"\\f5ad\"; }\n\n.fa-ban-parking::before {\n content: \"\\f616\"; }\n\n.fa-parking-circle-slash::before {\n content: \"\\f616\"; }\n\n.fa-tent-arrow-turn-left::before {\n content: \"\\e580\"; }\n\n.fa-face-diagonal-mouth::before {\n content: \"\\e47e\"; }\n\n.fa-diagram-cells::before {\n content: \"\\e475\"; }\n\n.fa-cricket-bat-ball::before {\n content: \"\\f449\"; }\n\n.fa-cricket::before {\n content: \"\\f449\"; }\n\n.fa-tents::before {\n content: \"\\e582\"; }\n\n.fa-wand-magic::before {\n content: \"\\f0d0\"; }\n\n.fa-magic::before {\n content: \"\\f0d0\"; }\n\n.fa-dog::before {\n content: \"\\f6d3\"; }\n\n.fa-pen-line::before {\n content: \"\\e212\"; }\n\n.fa-atom-simple::before {\n content: \"\\f5d3\"; }\n\n.fa-atom-alt::before {\n content: \"\\f5d3\"; }\n\n.fa-ampersand::before {\n content: \"\\26\"; }\n\n.fa-carrot::before {\n content: \"\\f787\"; }\n\n.fa-arrow-up-from-line::before {\n content: \"\\f342\"; }\n\n.fa-arrow-from-bottom::before {\n content: \"\\f342\"; }\n\n.fa-moon::before {\n content: \"\\f186\"; }\n\n.fa-pen-slash::before {\n content: \"\\e213\"; }\n\n.fa-wine-glass-empty::before {\n content: \"\\f5ce\"; }\n\n.fa-wine-glass-alt::before {\n content: \"\\f5ce\"; }\n\n.fa-square-star::before {\n content: \"\\e27f\"; }\n\n.fa-cheese::before {\n content: \"\\f7ef\"; }\n\n.fa-send-backward::before {\n content: \"\\f87f\"; }\n\n.fa-yin-yang::before {\n content: \"\\f6ad\"; }\n\n.fa-music::before {\n content: \"\\f001\"; }\n\n.fa-compass-slash::before {\n content: \"\\f5e9\"; }\n\n.fa-clock-one::before {\n content: \"\\e34e\"; }\n\n.fa-file-music::before {\n content: \"\\f8b6\"; }\n\n.fa-code-commit::before {\n content: \"\\f386\"; }\n\n.fa-temperature-low::before {\n content: \"\\f76b\"; }\n\n.fa-person-biking::before {\n content: \"\\f84a\"; }\n\n.fa-biking::before {\n content: \"\\f84a\"; }\n\n.fa-display-chart-up-circle-currency::before {\n content: \"\\e5e5\"; }\n\n.fa-skeleton::before {\n content: \"\\f620\"; }\n\n.fa-circle-g::before {\n content: \"\\e10f\"; }\n\n.fa-circle-arrow-up-left::before {\n content: \"\\e0fb\"; }\n\n.fa-coin-blank::before {\n content: \"\\e3fb\"; }\n\n.fa-broom::before {\n content: \"\\f51a\"; }\n\n.fa-vacuum::before {\n content: \"\\e04d\"; }\n\n.fa-shield-heart::before {\n content: \"\\e574\"; }\n\n.fa-card-heart::before {\n content: \"\\e3eb\"; }\n\n.fa-lightbulb-cfl-on::before {\n content: \"\\e5a7\"; }\n\n.fa-melon::before {\n content: \"\\e310\"; }\n\n.fa-gopuram::before {\n content: \"\\f664\"; }\n\n.fa-earth-oceania::before {\n content: \"\\e47b\"; }\n\n.fa-globe-oceania::before {\n content: \"\\e47b\"; }\n\n.fa-container-storage::before {\n content: \"\\f4b7\"; }\n\n.fa-face-pouting::before {\n content: \"\\e387\"; }\n\n.fa-square-xmark::before {\n content: \"\\f2d3\"; }\n\n.fa-times-square::before {\n content: \"\\f2d3\"; }\n\n.fa-xmark-square::before {\n content: \"\\f2d3\"; }\n\n.fa-face-explode::before {\n content: \"\\e2fe\"; }\n\n.fa-exploding-head::before {\n content: \"\\e2fe\"; }\n\n.fa-hashtag::before {\n content: \"\\23\"; }\n\n.fa-up-right-and-down-left-from-center::before {\n content: \"\\f424\"; }\n\n.fa-expand-alt::before {\n content: \"\\f424\"; }\n\n.fa-oil-can::before {\n content: \"\\f613\"; }\n\n.fa-t::before {\n content: \"\\54\"; }\n\n.fa-transformer-bolt::before {\n content: \"\\e2a4\"; }\n\n.fa-hippo::before {\n content: \"\\f6ed\"; }\n\n.fa-chart-column::before {\n content: \"\\e0e3\"; }\n\n.fa-cassette-vhs::before {\n content: \"\\f8ec\"; }\n\n.fa-vhs::before {\n content: \"\\f8ec\"; }\n\n.fa-infinity::before {\n content: \"\\f534\"; }\n\n.fa-vial-circle-check::before {\n content: \"\\e596\"; }\n\n.fa-chimney::before {\n content: \"\\f78b\"; }\n\n.fa-object-intersect::before {\n content: \"\\e49d\"; }\n\n.fa-person-arrow-down-to-line::before {\n content: \"\\e538\"; }\n\n.fa-voicemail::before {\n content: \"\\f897\"; }\n\n.fa-block-brick::before {\n content: \"\\e3db\"; }\n\n.fa-wall-brick::before {\n content: \"\\e3db\"; }\n\n.fa-fan::before {\n content: \"\\f863\"; }\n\n.fa-bags-shopping::before {\n content: \"\\f847\"; }\n\n.fa-paragraph-left::before {\n content: \"\\f878\"; }\n\n.fa-paragraph-rtl::before {\n content: \"\\f878\"; }\n\n.fa-person-walking-luggage::before {\n content: \"\\e554\"; }\n\n.fa-caravan-simple::before {\n content: \"\\e000\"; }\n\n.fa-caravan-alt::before {\n content: \"\\e000\"; }\n\n.fa-turtle::before {\n content: \"\\f726\"; }\n\n.fa-pencil-mechanical::before {\n content: \"\\e5ca\"; }\n\n.fa-up-down::before {\n content: \"\\f338\"; }\n\n.fa-arrows-alt-v::before {\n content: \"\\f338\"; }\n\n.fa-cloud-moon-rain::before {\n content: \"\\f73c\"; }\n\n.fa-booth-curtain::before {\n content: \"\\f734\"; }\n\n.fa-calendar::before {\n content: \"\\f133\"; }\n\n.fa-box-heart::before {\n content: \"\\f49d\"; }\n\n.fa-trailer::before {\n content: \"\\e041\"; }\n\n.fa-user-doctor-message::before {\n content: \"\\f82e\"; }\n\n.fa-user-md-chat::before {\n content: \"\\f82e\"; }\n\n.fa-bahai::before {\n content: \"\\f666\"; }\n\n.fa-haykal::before {\n content: \"\\f666\"; }\n\n.fa-lighthouse::before {\n content: \"\\e612\"; }\n\n.fa-amp-guitar::before {\n content: \"\\f8a1\"; }\n\n.fa-sd-card::before {\n content: \"\\f7c2\"; }\n\n.fa-volume-slash::before {\n content: \"\\f2e2\"; }\n\n.fa-border-bottom::before {\n content: \"\\f84d\"; }\n\n.fa-wifi-weak::before {\n content: \"\\f6aa\"; }\n\n.fa-wifi-1::before {\n content: \"\\f6aa\"; }\n\n.fa-dragon::before {\n content: \"\\f6d5\"; }\n\n.fa-shoe-prints::before {\n content: \"\\f54b\"; }\n\n.fa-circle-plus::before {\n content: \"\\f055\"; }\n\n.fa-plus-circle::before {\n content: \"\\f055\"; }\n\n.fa-face-grin-tongue-wink::before {\n content: \"\\f58b\"; }\n\n.fa-grin-tongue-wink::before {\n content: \"\\f58b\"; }\n\n.fa-hand-holding::before {\n content: \"\\f4bd\"; }\n\n.fa-plug-circle-exclamation::before {\n content: \"\\e55d\"; }\n\n.fa-link-slash::before {\n content: \"\\f127\"; }\n\n.fa-chain-broken::before {\n content: \"\\f127\"; }\n\n.fa-chain-slash::before {\n content: \"\\f127\"; }\n\n.fa-unlink::before {\n content: \"\\f127\"; }\n\n.fa-clone::before {\n content: \"\\f24d\"; }\n\n.fa-person-walking-arrow-loop-left::before {\n content: \"\\e551\"; }\n\n.fa-arrow-up-z-a::before {\n content: \"\\f882\"; }\n\n.fa-sort-alpha-up-alt::before {\n content: \"\\f882\"; }\n\n.fa-fire-flame-curved::before {\n content: \"\\f7e4\"; }\n\n.fa-fire-alt::before {\n content: \"\\f7e4\"; }\n\n.fa-tornado::before {\n content: \"\\f76f\"; }\n\n.fa-file-circle-plus::before {\n content: \"\\e494\"; }\n\n.fa-delete-right::before {\n content: \"\\e154\"; }\n\n.fa-book-quran::before {\n content: \"\\f687\"; }\n\n.fa-quran::before {\n content: \"\\f687\"; }\n\n.fa-circle-quarter::before {\n content: \"\\e11f\"; }\n\n.fa-anchor::before {\n content: \"\\f13d\"; }\n\n.fa-border-all::before {\n content: \"\\f84c\"; }\n\n.fa-function::before {\n content: \"\\f661\"; }\n\n.fa-face-angry::before {\n content: \"\\f556\"; }\n\n.fa-angry::before {\n content: \"\\f556\"; }\n\n.fa-people-simple::before {\n content: \"\\e21b\"; }\n\n.fa-cookie-bite::before {\n content: \"\\f564\"; }\n\n.fa-arrow-trend-down::before {\n content: \"\\e097\"; }\n\n.fa-rss::before {\n content: \"\\f09e\"; }\n\n.fa-feed::before {\n content: \"\\f09e\"; }\n\n.fa-face-monocle::before {\n content: \"\\e380\"; }\n\n.fa-draw-polygon::before {\n content: \"\\f5ee\"; }\n\n.fa-scale-balanced::before {\n content: \"\\f24e\"; }\n\n.fa-balance-scale::before {\n content: \"\\f24e\"; }\n\n.fa-calendar-lines::before {\n content: \"\\e0d5\"; }\n\n.fa-calendar-note::before {\n content: \"\\e0d5\"; }\n\n.fa-arrow-down-big-small::before {\n content: \"\\f88c\"; }\n\n.fa-sort-size-down::before {\n content: \"\\f88c\"; }\n\n.fa-gauge-simple-high::before {\n content: \"\\f62a\"; }\n\n.fa-tachometer::before {\n content: \"\\f62a\"; }\n\n.fa-tachometer-fast::before {\n content: \"\\f62a\"; }\n\n.fa-do-not-enter::before {\n content: \"\\f5ec\"; }\n\n.fa-shower::before {\n content: \"\\f2cc\"; }\n\n.fa-dice-d8::before {\n content: \"\\f6d2\"; }\n\n.fa-desktop::before {\n content: \"\\f390\"; }\n\n.fa-desktop-alt::before {\n content: \"\\f390\"; }\n\n.fa-m::before {\n content: \"\\4d\"; }\n\n.fa-spinner-scale::before {\n content: \"\\e62a\"; }\n\n.fa-grip-dots-vertical::before {\n content: \"\\e411\"; }\n\n.fa-face-viewfinder::before {\n content: \"\\e2ff\"; }\n\n.fa-soft-serve::before {\n content: \"\\e400\"; }\n\n.fa-creemee::before {\n content: \"\\e400\"; }\n\n.fa-h5::before {\n content: \"\\e412\"; }\n\n.fa-hand-back-point-down::before {\n content: \"\\e19e\"; }\n\n.fa-table-list::before {\n content: \"\\f00b\"; }\n\n.fa-th-list::before {\n content: \"\\f00b\"; }\n\n.fa-basket-shopping-minus::before {\n content: \"\\e652\"; }\n\n.fa-comment-sms::before {\n content: \"\\f7cd\"; }\n\n.fa-sms::before {\n content: \"\\f7cd\"; }\n\n.fa-rectangle::before {\n content: \"\\f2fa\"; }\n\n.fa-rectangle-landscape::before {\n content: \"\\f2fa\"; }\n\n.fa-clipboard-list-check::before {\n content: \"\\f737\"; }\n\n.fa-turkey::before {\n content: \"\\f725\"; }\n\n.fa-book::before {\n content: \"\\f02d\"; }\n\n.fa-user-plus::before {\n content: \"\\f234\"; }\n\n.fa-ice-skate::before {\n content: \"\\f7ac\"; }\n\n.fa-check::before {\n content: \"\\f00c\"; }\n\n.fa-battery-three-quarters::before {\n content: \"\\f241\"; }\n\n.fa-battery-4::before {\n content: \"\\f241\"; }\n\n.fa-tomato::before {\n content: \"\\e330\"; }\n\n.fa-sword-laser::before {\n content: \"\\e03b\"; }\n\n.fa-house-circle-check::before {\n content: \"\\e509\"; }\n\n.fa-buildings::before {\n content: \"\\e0cc\"; }\n\n.fa-angle-left::before {\n content: \"\\f104\"; }\n\n.fa-cart-flatbed-boxes::before {\n content: \"\\f475\"; }\n\n.fa-dolly-flatbed-alt::before {\n content: \"\\f475\"; }\n\n.fa-diagram-successor::before {\n content: \"\\e47a\"; }\n\n.fa-truck-arrow-right::before {\n content: \"\\e58b\"; }\n\n.fa-square-w::before {\n content: \"\\e285\"; }\n\n.fa-arrows-split-up-and-left::before {\n content: \"\\e4bc\"; }\n\n.fa-lamp::before {\n content: \"\\f4ca\"; }\n\n.fa-airplay::before {\n content: \"\\e089\"; }\n\n.fa-hand-fist::before {\n content: \"\\f6de\"; }\n\n.fa-fist-raised::before {\n content: \"\\f6de\"; }\n\n.fa-shield-quartered::before {\n content: \"\\e575\"; }\n\n.fa-slash-forward::before {\n content: \"\\2f\"; }\n\n.fa-location-pen::before {\n content: \"\\f607\"; }\n\n.fa-map-marker-edit::before {\n content: \"\\f607\"; }\n\n.fa-cloud-moon::before {\n content: \"\\f6c3\"; }\n\n.fa-pot-food::before {\n content: \"\\e43f\"; }\n\n.fa-briefcase::before {\n content: \"\\f0b1\"; }\n\n.fa-person-falling::before {\n content: \"\\e546\"; }\n\n.fa-image-portrait::before {\n content: \"\\f3e0\"; }\n\n.fa-portrait::before {\n content: \"\\f3e0\"; }\n\n.fa-user-tag::before {\n content: \"\\f507\"; }\n\n.fa-rug::before {\n content: \"\\e569\"; }\n\n.fa-print-slash::before {\n content: \"\\f686\"; }\n\n.fa-earth-europe::before {\n content: \"\\f7a2\"; }\n\n.fa-globe-europe::before {\n content: \"\\f7a2\"; }\n\n.fa-cart-flatbed-suitcase::before {\n content: \"\\f59d\"; }\n\n.fa-luggage-cart::before {\n content: \"\\f59d\"; }\n\n.fa-hand-back-point-ribbon::before {\n content: \"\\e1a0\"; }\n\n.fa-rectangle-xmark::before {\n content: \"\\f410\"; }\n\n.fa-rectangle-times::before {\n content: \"\\f410\"; }\n\n.fa-times-rectangle::before {\n content: \"\\f410\"; }\n\n.fa-window-close::before {\n content: \"\\f410\"; }\n\n.fa-tire-rugged::before {\n content: \"\\f634\"; }\n\n.fa-lightbulb-dollar::before {\n content: \"\\f670\"; }\n\n.fa-cowbell::before {\n content: \"\\f8b3\"; }\n\n.fa-baht-sign::before {\n content: \"\\e0ac\"; }\n\n.fa-corner::before {\n content: \"\\e3fe\"; }\n\n.fa-chevrons-right::before {\n content: \"\\f324\"; }\n\n.fa-chevron-double-right::before {\n content: \"\\f324\"; }\n\n.fa-book-open::before {\n content: \"\\f518\"; }\n\n.fa-book-journal-whills::before {\n content: \"\\f66a\"; }\n\n.fa-journal-whills::before {\n content: \"\\f66a\"; }\n\n.fa-inhaler::before {\n content: \"\\f5f9\"; }\n\n.fa-handcuffs::before {\n content: \"\\e4f8\"; }\n\n.fa-snake::before {\n content: \"\\f716\"; }\n\n.fa-triangle-exclamation::before {\n content: \"\\f071\"; }\n\n.fa-exclamation-triangle::before {\n content: \"\\f071\"; }\n\n.fa-warning::before {\n content: \"\\f071\"; }\n\n.fa-note-medical::before {\n content: \"\\e200\"; }\n\n.fa-database::before {\n content: \"\\f1c0\"; }\n\n.fa-down-left::before {\n content: \"\\e16a\"; }\n\n.fa-share::before {\n content: \"\\f064\"; }\n\n.fa-mail-forward::before {\n content: \"\\f064\"; }\n\n.fa-face-thinking::before {\n content: \"\\e39b\"; }\n\n.fa-turn-down-right::before {\n content: \"\\e455\"; }\n\n.fa-bottle-droplet::before {\n content: \"\\e4c4\"; }\n\n.fa-mask-face::before {\n content: \"\\e1d7\"; }\n\n.fa-hill-rockslide::before {\n content: \"\\e508\"; }\n\n.fa-scanner-keyboard::before {\n content: \"\\f489\"; }\n\n.fa-circle-o::before {\n content: \"\\e119\"; }\n\n.fa-grid-horizontal::before {\n content: \"\\e307\"; }\n\n.fa-message-dollar::before {\n content: \"\\f650\"; }\n\n.fa-comment-alt-dollar::before {\n content: \"\\f650\"; }\n\n.fa-right-left::before {\n content: \"\\f362\"; }\n\n.fa-exchange-alt::before {\n content: \"\\f362\"; }\n\n.fa-columns-3::before {\n content: \"\\e361\"; }\n\n.fa-paper-plane::before {\n content: \"\\f1d8\"; }\n\n.fa-road-circle-exclamation::before {\n content: \"\\e565\"; }\n\n.fa-dungeon::before {\n content: \"\\f6d9\"; }\n\n.fa-hand-holding-box::before {\n content: \"\\f47b\"; }\n\n.fa-input-text::before {\n content: \"\\e1bf\"; }\n\n.fa-window-flip::before {\n content: \"\\f40f\"; }\n\n.fa-window-alt::before {\n content: \"\\f40f\"; }\n\n.fa-align-right::before {\n content: \"\\f038\"; }\n\n.fa-scanner-gun::before {\n content: \"\\f488\"; }\n\n.fa-scanner::before {\n content: \"\\f488\"; }\n\n.fa-tire::before {\n content: \"\\f631\"; }\n\n.fa-engine::before {\n content: \"\\e16e\"; }\n\n.fa-money-bill-1-wave::before {\n content: \"\\f53b\"; }\n\n.fa-money-bill-wave-alt::before {\n content: \"\\f53b\"; }\n\n.fa-life-ring::before {\n content: \"\\f1cd\"; }\n\n.fa-hands::before {\n content: \"\\f2a7\"; }\n\n.fa-sign-language::before {\n content: \"\\f2a7\"; }\n\n.fa-signing::before {\n content: \"\\f2a7\"; }\n\n.fa-circle-caret-right::before {\n content: \"\\f330\"; }\n\n.fa-caret-circle-right::before {\n content: \"\\f330\"; }\n\n.fa-turn-left::before {\n content: \"\\e636\"; }\n\n.fa-wheat::before {\n content: \"\\f72d\"; }\n\n.fa-file-spreadsheet::before {\n content: \"\\f65b\"; }\n\n.fa-audio-description-slash::before {\n content: \"\\e0a8\"; }\n\n.fa-bell-ring::before {\n content: \"\\e62c\"; }\n\n.fa-calendar-day::before {\n content: \"\\f783\"; }\n\n.fa-water-ladder::before {\n content: \"\\f5c5\"; }\n\n.fa-ladder-water::before {\n content: \"\\f5c5\"; }\n\n.fa-swimming-pool::before {\n content: \"\\f5c5\"; }\n\n.fa-arrows-up-down::before {\n content: \"\\f07d\"; }\n\n.fa-arrows-v::before {\n content: \"\\f07d\"; }\n\n.fa-chess-pawn-piece::before {\n content: \"\\f444\"; }\n\n.fa-chess-pawn-alt::before {\n content: \"\\f444\"; }\n\n.fa-face-grimace::before {\n content: \"\\f57f\"; }\n\n.fa-grimace::before {\n content: \"\\f57f\"; }\n\n.fa-wheelchair-move::before {\n content: \"\\e2ce\"; }\n\n.fa-wheelchair-alt::before {\n content: \"\\e2ce\"; }\n\n.fa-turn-down::before {\n content: \"\\f3be\"; }\n\n.fa-level-down-alt::before {\n content: \"\\f3be\"; }\n\n.fa-square-s::before {\n content: \"\\e27d\"; }\n\n.fa-rectangle-barcode::before {\n content: \"\\f463\"; }\n\n.fa-barcode-alt::before {\n content: \"\\f463\"; }\n\n.fa-person-walking-arrow-right::before {\n content: \"\\e552\"; }\n\n.fa-square-envelope::before {\n content: \"\\f199\"; }\n\n.fa-envelope-square::before {\n content: \"\\f199\"; }\n\n.fa-dice::before {\n content: \"\\f522\"; }\n\n.fa-unicorn::before {\n content: \"\\f727\"; }\n\n.fa-bowling-ball::before {\n content: \"\\f436\"; }\n\n.fa-pompebled::before {\n content: \"\\e43d\"; }\n\n.fa-brain::before {\n content: \"\\f5dc\"; }\n\n.fa-watch-smart::before {\n content: \"\\e2cc\"; }\n\n.fa-book-user::before {\n content: \"\\f7e7\"; }\n\n.fa-sensor-cloud::before {\n content: \"\\e02c\"; }\n\n.fa-sensor-smoke::before {\n content: \"\\e02c\"; }\n\n.fa-clapperboard-play::before {\n content: \"\\e132\"; }\n\n.fa-bandage::before {\n content: \"\\f462\"; }\n\n.fa-band-aid::before {\n content: \"\\f462\"; }\n\n.fa-calendar-minus::before {\n content: \"\\f272\"; }\n\n.fa-circle-xmark::before {\n content: \"\\f057\"; }\n\n.fa-times-circle::before {\n content: \"\\f057\"; }\n\n.fa-xmark-circle::before {\n content: \"\\f057\"; }\n\n.fa-circle-4::before {\n content: \"\\e0f1\"; }\n\n.fa-gifts::before {\n content: \"\\f79c\"; }\n\n.fa-album-collection::before {\n content: \"\\f8a0\"; }\n\n.fa-hotel::before {\n content: \"\\f594\"; }\n\n.fa-earth-asia::before {\n content: \"\\f57e\"; }\n\n.fa-globe-asia::before {\n content: \"\\f57e\"; }\n\n.fa-id-card-clip::before {\n content: \"\\f47f\"; }\n\n.fa-id-card-alt::before {\n content: \"\\f47f\"; }\n\n.fa-magnifying-glass-plus::before {\n content: \"\\f00e\"; }\n\n.fa-search-plus::before {\n content: \"\\f00e\"; }\n\n.fa-thumbs-up::before {\n content: \"\\f164\"; }\n\n.fa-cloud-showers::before {\n content: \"\\f73f\"; }\n\n.fa-user-clock::before {\n content: \"\\f4fd\"; }\n\n.fa-onion::before {\n content: \"\\e427\"; }\n\n.fa-clock-twelve-thirty::before {\n content: \"\\e359\"; }\n\n.fa-arrow-down-to-dotted-line::before {\n content: \"\\e095\"; }\n\n.fa-hand-dots::before {\n content: \"\\f461\"; }\n\n.fa-allergies::before {\n content: \"\\f461\"; }\n\n.fa-file-invoice::before {\n content: \"\\f570\"; }\n\n.fa-window-minimize::before {\n content: \"\\f2d1\"; }\n\n.fa-rectangle-wide::before {\n content: \"\\f2fc\"; }\n\n.fa-comment-arrow-up::before {\n content: \"\\e144\"; }\n\n.fa-garlic::before {\n content: \"\\e40e\"; }\n\n.fa-mug-saucer::before {\n content: \"\\f0f4\"; }\n\n.fa-coffee::before {\n content: \"\\f0f4\"; }\n\n.fa-brush::before {\n content: \"\\f55d\"; }\n\n.fa-tree-decorated::before {\n content: \"\\f7dc\"; }\n\n.fa-mask::before {\n content: \"\\f6fa\"; }\n\n.fa-calendar-heart::before {\n content: \"\\e0d3\"; }\n\n.fa-magnifying-glass-minus::before {\n content: \"\\f010\"; }\n\n.fa-search-minus::before {\n content: \"\\f010\"; }\n\n.fa-flower::before {\n content: \"\\f7ff\"; }\n\n.fa-arrow-down-from-arc::before {\n content: \"\\e614\"; }\n\n.fa-right-left-large::before {\n content: \"\\e5e1\"; }\n\n.fa-ruler-vertical::before {\n content: \"\\f548\"; }\n\n.fa-circles-overlap::before {\n content: \"\\e600\"; }\n\n.fa-user-large::before {\n content: \"\\f406\"; }\n\n.fa-user-alt::before {\n content: \"\\f406\"; }\n\n.fa-starship-freighter::before {\n content: \"\\e03a\"; }\n\n.fa-train-tram::before {\n content: \"\\e5b4\"; }\n\n.fa-bridge-suspension::before {\n content: \"\\e4cd\"; }\n\n.fa-trash-check::before {\n content: \"\\e2af\"; }\n\n.fa-user-nurse::before {\n content: \"\\f82f\"; }\n\n.fa-boombox::before {\n content: \"\\f8a5\"; }\n\n.fa-syringe::before {\n content: \"\\f48e\"; }\n\n.fa-cloud-sun::before {\n content: \"\\f6c4\"; }\n\n.fa-shield-exclamation::before {\n content: \"\\e247\"; }\n\n.fa-stopwatch-20::before {\n content: \"\\e06f\"; }\n\n.fa-square-full::before {\n content: \"\\f45c\"; }\n\n.fa-grip-dots::before {\n content: \"\\e410\"; }\n\n.fa-comment-exclamation::before {\n content: \"\\f4af\"; }\n\n.fa-pen-swirl::before {\n content: \"\\e214\"; }\n\n.fa-falafel::before {\n content: \"\\e40a\"; }\n\n.fa-circle-2::before {\n content: \"\\e0ef\"; }\n\n.fa-magnet::before {\n content: \"\\f076\"; }\n\n.fa-jar::before {\n content: \"\\e516\"; }\n\n.fa-gramophone::before {\n content: \"\\f8bd\"; }\n\n.fa-dice-d12::before {\n content: \"\\f6ce\"; }\n\n.fa-note-sticky::before {\n content: \"\\f249\"; }\n\n.fa-sticky-note::before {\n content: \"\\f249\"; }\n\n.fa-down::before {\n content: \"\\f354\"; }\n\n.fa-arrow-alt-down::before {\n content: \"\\f354\"; }\n\n.fa-hundred-points::before {\n content: \"\\e41c\"; }\n\n.fa-100::before {\n content: \"\\e41c\"; }\n\n.fa-paperclip-vertical::before {\n content: \"\\e3c2\"; }\n\n.fa-wind-warning::before {\n content: \"\\f776\"; }\n\n.fa-wind-circle-exclamation::before {\n content: \"\\f776\"; }\n\n.fa-location-pin-slash::before {\n content: \"\\f60c\"; }\n\n.fa-map-marker-slash::before {\n content: \"\\f60c\"; }\n\n.fa-face-sad-sweat::before {\n content: \"\\e38a\"; }\n\n.fa-bug-slash::before {\n content: \"\\e490\"; }\n\n.fa-cupcake::before {\n content: \"\\e402\"; }\n\n.fa-light-switch-off::before {\n content: \"\\e018\"; }\n\n.fa-toggle-large-off::before {\n content: \"\\e5b0\"; }\n\n.fa-pen-fancy-slash::before {\n content: \"\\e210\"; }\n\n.fa-truck-container::before {\n content: \"\\f4dc\"; }\n\n.fa-boot::before {\n content: \"\\f782\"; }\n\n.fa-arrow-up-from-water-pump::before {\n content: \"\\e4b6\"; }\n\n.fa-file-check::before {\n content: \"\\f316\"; }\n\n.fa-bone::before {\n content: \"\\f5d7\"; }\n\n.fa-cards-blank::before {\n content: \"\\e4df\"; }\n\n.fa-circle-3::before {\n content: \"\\e0f0\"; }\n\n.fa-bench-tree::before {\n content: \"\\e2e7\"; }\n\n.fa-keyboard-brightness-low::before {\n content: \"\\e1c1\"; }\n\n.fa-ski-boot-ski::before {\n content: \"\\e3cd\"; }\n\n.fa-brain-circuit::before {\n content: \"\\e0c6\"; }\n\n.fa-user-injured::before {\n content: \"\\f728\"; }\n\n.fa-block-brick-fire::before {\n content: \"\\e3dc\"; }\n\n.fa-firewall::before {\n content: \"\\e3dc\"; }\n\n.fa-face-sad-tear::before {\n content: \"\\f5b4\"; }\n\n.fa-sad-tear::before {\n content: \"\\f5b4\"; }\n\n.fa-plane::before {\n content: \"\\f072\"; }\n\n.fa-tent-arrows-down::before {\n content: \"\\e581\"; }\n\n.fa-exclamation::before {\n content: \"\\21\"; }\n\n.fa-arrows-spin::before {\n content: \"\\e4bb\"; }\n\n.fa-face-smile-relaxed::before {\n content: \"\\e392\"; }\n\n.fa-comment-xmark::before {\n content: \"\\f4b5\"; }\n\n.fa-comment-times::before {\n content: \"\\f4b5\"; }\n\n.fa-print::before {\n content: \"\\f02f\"; }\n\n.fa-turkish-lira-sign::before {\n content: \"\\e2bb\"; }\n\n.fa-try::before {\n content: \"\\e2bb\"; }\n\n.fa-turkish-lira::before {\n content: \"\\e2bb\"; }\n\n.fa-face-nose-steam::before {\n content: \"\\e382\"; }\n\n.fa-circle-waveform-lines::before {\n content: \"\\e12d\"; }\n\n.fa-waveform-circle::before {\n content: \"\\e12d\"; }\n\n.fa-dollar-sign::before {\n content: \"\\24\"; }\n\n.fa-dollar::before {\n content: \"\\24\"; }\n\n.fa-usd::before {\n content: \"\\24\"; }\n\n.fa-ferris-wheel::before {\n content: \"\\e174\"; }\n\n.fa-computer-speaker::before {\n content: \"\\f8b2\"; }\n\n.fa-skull-cow::before {\n content: \"\\f8de\"; }\n\n.fa-x::before {\n content: \"\\58\"; }\n\n.fa-magnifying-glass-dollar::before {\n content: \"\\f688\"; }\n\n.fa-search-dollar::before {\n content: \"\\f688\"; }\n\n.fa-users-gear::before {\n content: \"\\f509\"; }\n\n.fa-users-cog::before {\n content: \"\\f509\"; }\n\n.fa-person-military-pointing::before {\n content: \"\\e54a\"; }\n\n.fa-building-columns::before {\n content: \"\\f19c\"; }\n\n.fa-bank::before {\n content: \"\\f19c\"; }\n\n.fa-institution::before {\n content: \"\\f19c\"; }\n\n.fa-museum::before {\n content: \"\\f19c\"; }\n\n.fa-university::before {\n content: \"\\f19c\"; }\n\n.fa-circle-t::before {\n content: \"\\e124\"; }\n\n.fa-sack::before {\n content: \"\\f81c\"; }\n\n.fa-grid-2::before {\n content: \"\\e196\"; }\n\n.fa-camera-cctv::before {\n content: \"\\f8ac\"; }\n\n.fa-cctv::before {\n content: \"\\f8ac\"; }\n\n.fa-umbrella::before {\n content: \"\\f0e9\"; }\n\n.fa-trowel::before {\n content: \"\\e589\"; }\n\n.fa-horizontal-rule::before {\n content: \"\\f86c\"; }\n\n.fa-bed-front::before {\n content: \"\\f8f7\"; }\n\n.fa-bed-alt::before {\n content: \"\\f8f7\"; }\n\n.fa-d::before {\n content: \"\\44\"; }\n\n.fa-stapler::before {\n content: \"\\e5af\"; }\n\n.fa-masks-theater::before {\n content: \"\\f630\"; }\n\n.fa-theater-masks::before {\n content: \"\\f630\"; }\n\n.fa-file-gif::before {\n content: \"\\e645\"; }\n\n.fa-kip-sign::before {\n content: \"\\e1c4\"; }\n\n.fa-face-woozy::before {\n content: \"\\e3a2\"; }\n\n.fa-cloud-question::before {\n content: \"\\e492\"; }\n\n.fa-pineapple::before {\n content: \"\\e31f\"; }\n\n.fa-hand-point-left::before {\n content: \"\\f0a5\"; }\n\n.fa-gallery-thumbnails::before {\n content: \"\\e3aa\"; }\n\n.fa-circle-j::before {\n content: \"\\e112\"; }\n\n.fa-eyes::before {\n content: \"\\e367\"; }\n\n.fa-handshake-simple::before {\n content: \"\\f4c6\"; }\n\n.fa-handshake-alt::before {\n content: \"\\f4c6\"; }\n\n.fa-page-caret-up::before {\n content: \"\\e42a\"; }\n\n.fa-file-caret-up::before {\n content: \"\\e42a\"; }\n\n.fa-jet-fighter::before {\n content: \"\\f0fb\"; }\n\n.fa-fighter-jet::before {\n content: \"\\f0fb\"; }\n\n.fa-comet::before {\n content: \"\\e003\"; }\n\n.fa-square-share-nodes::before {\n content: \"\\f1e1\"; }\n\n.fa-share-alt-square::before {\n content: \"\\f1e1\"; }\n\n.fa-reflect-vertical::before {\n content: \"\\e665\"; }\n\n.fa-shield-keyhole::before {\n content: \"\\e248\"; }\n\n.fa-file-mp4::before {\n content: \"\\e649\"; }\n\n.fa-barcode::before {\n content: \"\\f02a\"; }\n\n.fa-bulldozer::before {\n content: \"\\e655\"; }\n\n.fa-plus-minus::before {\n content: \"\\e43c\"; }\n\n.fa-square-sliders-vertical::before {\n content: \"\\f3f2\"; }\n\n.fa-sliders-v-square::before {\n content: \"\\f3f2\"; }\n\n.fa-video::before {\n content: \"\\f03d\"; }\n\n.fa-video-camera::before {\n content: \"\\f03d\"; }\n\n.fa-message-middle::before {\n content: \"\\e1e1\"; }\n\n.fa-comment-middle-alt::before {\n content: \"\\e1e1\"; }\n\n.fa-graduation-cap::before {\n content: \"\\f19d\"; }\n\n.fa-mortar-board::before {\n content: \"\\f19d\"; }\n\n.fa-hand-holding-medical::before {\n content: \"\\e05c\"; }\n\n.fa-person-circle-check::before {\n content: \"\\e53e\"; }\n\n.fa-square-z::before {\n content: \"\\e288\"; }\n\n.fa-message-text::before {\n content: \"\\e1e6\"; }\n\n.fa-comment-alt-text::before {\n content: \"\\e1e6\"; }\n\n.fa-turn-up::before {\n content: \"\\f3bf\"; }\n\n.fa-level-up-alt::before {\n content: \"\\f3bf\"; }\n\n.sr-only,\n.fa-sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0; }\n\n.sr-only-focusable:not(:focus),\n.fa-sr-only-focusable:not(:focus) {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0; }\n",".tykon::before {\n font-family: tykon, sans-serif !important;\n font-style: normal !important;\n font-weight: normal !important;\n font-variant: normal !important;\n text-transform: none !important;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.tykon-arrowdown::before {\n content: \"\\61\";\n}\n\n.tykon-arrowleft::before {\n content: \"\\62\";\n}\n\n.tykon-arrowright::before {\n content: \"\\63\";\n}\n\n.tykon-arrowup::before {\n content: \"\\64\";\n}\n\n.tykon-doublearrowdown::before {\n content: \"\\65\";\n}\n\n.tykon-filter::before {\n content: \"\\66\";\n}\n\n.tykon-graph1::before {\n content: \"\\67\";\n}\n\n.tykon-graph2::before {\n content: \"\\68\";\n}\n\n.tykon-label::before {\n content: \"\\69\";\n}\n\n.tykon-reload::before {\n content: \"\\6a\";\n}\n\n.tykon-select::before {\n content: \"\\6b\";\n}\n\n.tykon-target::before {\n content: \"\\6c\";\n}\n\n.tykon-undo::before {\n content: \"\\6d\";\n}\n\n.tykon-deployment::before {\n content: \"\\6e\";\n}\n\n.tykon-team::before {\n content: \"\\6f\";\n}\n\n.tykon-overview::before {\n content: \"\\70\";\n}\n\n.tykon-loadout::before {\n content: \"\\71\";\n}\n\n.tykon-entitlement::before {\n content: \"\\72\";\n}\n\n.tykon-users::before {\n content: \"\\73\";\n}\n\n.tykon-arrowsort::before {\n content: \"\\57\";\n}\n\n.tykon-check::before {\n content: \"\\56\";\n}\n\n.tykon-copy::before {\n content: \"\\43\";\n}\n\n.tykon-delete::before {\n content: \"\\55\";\n}\n\n.tykon-download::before {\n content: \"\\4c\";\n}\n\n.tykon-draft::before {\n content: \"\\44\";\n}\n\n.tykon-edit::before {\n content: \"\\45\";\n}\n\n.tykon-graphq2::before {\n content: \"\\68\";\n}\n\n.tykon-help::before {\n content: \"\\3f\";\n}\n\n.tykon-link::before {\n content: \"\\52\";\n}\n\n.tykon-lock1::before {\n content: \"\\59\";\n}\n\n.tykon-lock2::before {\n content: \"\\5A\";\n}\n\n.tykon-notifications::before {\n content: \"\\4E\";\n}\n\n.tykon-plus::before {\n content: \"\\2B\";\n}\n\n.tykon-profile::before {\n content: \"\\50\";\n}\n\n.tykon-search::before {\n content: \"\\4F\";\n}\n\n.tykon-settings::before {\n content: \"\\53\";\n}\n\n.tykon-warning::before {\n content: \"\\21\";\n}\n\n.tykon-x::before {\n content: \"\\58\";\n}\n\n.tykon-waiting::before {\n content: \"\\54\";\n}\n\n.tykon-fullscreen::before {\n content: \"\\e000\";\n}\n\n.tykon-fullscreen-exit::before {\n content: \"\\e001\";\n}\n\n.tykon-time::before {\n content: \"\\74\";\n}\n","h1, h2, h3, h4, h5, h6 {\n margin-block-end: var(--headings-margin-bottom);\n font-family: var(--headings-font-family);\n font-weight: var(--headings-font-weight);\n color: var(--headings-color);\n}\n\nlabel {\n display: inline-block;\n max-inline-size: 100%;\n margin-block-end: 5px;\n color: var(--label-color);\n}\n\nh1 {\n font-size: var(--xxl-font-size);\n line-height: var(--xxl-line-height);\n}\n\nh2 {\n font-size: var(--xl-font-size);\n line-height: var(--xl-line-height);\n}\n\nh3 {\n font-size: var(--lg-font-size);\n line-height: var(--lg-line-height);\n}\n\nh4 {\n font-size: var(--md-font-size);\n line-height: var(--md-line-height);\n}\n\nh5 {\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n}\n\nh6 {\n font-size: var(--xs-font-size);\n line-height: var(--xs-line-height);\n}\n\np,\nlabel {\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n font-family: var(--font-family-regular);\n\n a {\n font-size: var(--sm-font-size);\n text-decoration: underline;\n }\n}\n\nstrong {\n font-family: var(--font-family-bold);\n}\n\na:not(.tyk-button) {\n cursor: pointer;\n color: var(--text-color);\n font-family: var(--font-family-regular);\n\n &.link--bold {\n font-family: var(--font-family-bold);\n }\n\n + a {\n margin-inline-start: 5px;\n }\n\n i {\n font-size: 9px\n }\n}\n\n.font-family-regular {\n font-family: var(--font-family-regular);\n}\n\n.font-family-medium {\n font-family: var(--font-family-medium);\n}\n\n.font-family-bold {\n font-family: var(--font-family-bold);\n}\n\n.heading-font-family-regular {\n font-family: var(--headings-font-family-regular);\n}\n\n.heading-font-family-medium {\n font-family: var(--headings-font-family-medium);\n}\n\n.heading-font-family-bold {\n font-family: var(--headings-font-family-bold);\n}\n\n.text--info {\n color: var(--color-info-base);\n}\n\n.text--medium {\n font-family: var(--font-family-medium);\n}\n\n.text--bold {\n font-family: var(--font-family-bold);\n}\n\n.text--uppercase {\n text-transform: uppercase;\n}\n\n.text--ellipsis {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.text--underline {\n text-decoration: underline;\n}\n\n.text--default-light {\n color: var(--color-default-light) !important;\n}\n\n.text--default {\n color: var(--color-default-base) !important;\n}\n\n.text--primary {\n color: var(--color-primary-base) !important;\n}\n\n.text--danger {\n color: var(--color-danger-base) !important;\n}\n\n.text--success {\n color: var(--color-success-base) !important;\n}\n\n.text--warning {\n color: var(--color-warning-base) !important;\n}\n\ntd.text-ellipsis {\n max-inline-size: 250px;\n}\n\n.section-title {\n font-family: var(--headings-font-family-bold);\n margin-block-end: 5px;\n\n .tyk-icon {\n margin-inline-start: 5px;\n }\n}\n\n.sub-section-title {\n margin-block-end: 5px;\n font-family: var(--font-family-medium);\n font-size: var(--md-font-size);\n line-height: var(--md-line-height);\n\n .tyk-icon {\n margin-inline-start: 5px;\n }\n}\n\n.section-group-title {\n margin-block-end: 5px;\n font-family: var(--font-family-bold);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n text-transform: uppercase;\n\n .tyk-icon {\n margin-inline-start: 5px;\n }\n}\n",".tyk-form-section__title {\n font-size: var(--base-font-size);\n margin-block: var(--spacing-xs) var(--spacing-base);\n margin-inline: 0;\n}\n\n.tyk-form-section__title--light {\n color: var(--color-background-dark);\n}\n\n.tyk-form-group {\n margin-block-end: var(--form-group-margin-bottom);\n\n &.has-error > .tyk-form-control__wrapper > .tyk-form-control,\n &.has-error > .tyk-form-control__wrapper > .tyk-input-group > .tyk-form-control,\n &.has-error .tyk-file-input__wrapper > .tyk-form-control {\n border: var(--error-border);\n border-inline-start: var(--error-border-left);\n outline: none;\n\n &:focus {\n border-inline-start: 2px solid var(--color-danger-dark);\n border-color: var(--color-danger-dark);\n outline: none;\n }\n }\n\n label {\n font-family: var(--font-family-medium);\n }\n}\n\n.tyk-form-group--inline {\n align-items: stretch;\n display: flex;\n flex-wrap: nowrap;\n\n .tyk-form-control__wrapper {\n flex: 1;\n }\n\n label {\n display: flex;\n white-space: nowrap;\n margin-inline-end: var(--spacing-md);\n margin-block-start: 14px;\n }\n\n input,\n select {\n display: flex;\n }\n\n .tyk-form-control__help-block {\n display: flex;\n margin-inline-start: auto;\n }\n}\n\n.tyk-form-group--default {\n color: var(--text-color);\n\n > .tyk-form-control__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-file-input__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-input-group > .tyk-form-control {\n border: var(--general-border-width) solid var(--form-default-color);\n color: var(--text-color);\n\n &[disabled] {\n border: var(--general-border-width) solid var(--form-default-color);\n background-color: var(--form-control-disabled-background-color);\n color: var(--form-control-disabled-color);\n cursor: not-allowed;\n\n + .tyk-input-group__addon {\n background-color: var(--form-control-disabled-background-color);\n }\n }\n\n &::placeholder {\n opacity: 0.8;\n }\n\n &:-ms-input-placeholder {\n opacity: 0.8;\n }\n }\n\n &.tyk-form-group--addon-left {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-default-color);\n border-inline-start: 2px solid var(--form-default-color);\n color: var(--text-color);\n }\n }\n\n &.tyk-form-group--addon-right {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-default-color);\n border-inline-end: 2px solid var(--form-default-color);\n color: var(--text-color);\n }\n }\n}\n\n.tyk-form-group--primary {\n color: var(--text-color);\n\n > .tyk-form-control__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-file-input__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-input-group > .tyk-form-control {\n border: var(--general-border-width) solid var(--form-primary-color);\n color: var(--text-color);\n\n &[disabled] {\n border: var(--general-border-width) solid var(--form-primary-color);\n background-color: var(--form-control-disabled-background-color);\n color: var(--form-control-disabled-color);\n cursor: not-allowed;\n\n + .tyk-input-group__addon {\n background-color: var(--form-control-disabled-background-color);\n }\n }\n\n &::placeholder {\n opacity: 0.8;\n }\n\n &:-ms-input-placeholder {\n opacity: 0.8;\n }\n }\n\n &.tyk-form-group--addon-left {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-primary-color);\n border-inline-start: 2px solid var(--form-primary-color);\n color: var(--form-primary-color);\n }\n }\n\n &.tyk-form-group--addon-right {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-primary-color);\n border-inline-end: 2px solid var(--form-primary-color);\n color: var(--form-primary-color);\n }\n }\n}\n\n.tyk-form-group--success {\n color: var(--text-color);\n\n > .tyk-form-control__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-file-input__wrapper > .tyk-form-control,\n > .tyk-form-control__wrapper > .tyk-input-group > .tyk-form-control {\n border: var(--general-border-width) solid var(--form-success-color);\n color: var(--text-color);\n\n &[disabled] {\n border: var(--general-border-width) solid var(--form-success-color);\n background-color: var(--form-control-disabled-background-color);\n color: var(--form-control-disabled-color);\n cursor: not-allowed;\n\n + .tyk-input-group__addon {\n background-color: var(--form-control-disabled-background-color);\n }\n }\n\n &::placeholder {\n opacity: 0.8;\n }\n\n &:-ms-input-placeholder {\n opacity: 0.8;\n }\n }\n\n &.tyk-form-group--addon-left {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-success-color);\n border-inline-start: 2px solid var(--form-success-color);\n color: var(--form-success-color);\n }\n }\n\n &.tyk-form-group--addon-right {\n .tyk-input-group__addon {\n border-block: 2px solid var(--form-success-color);\n border-inline-end: 2px solid var(--form-success-color);\n color: var(--form-success-color);\n }\n }\n}\n\n.tyk-form-group--rounded-corners {\n &.has-error > .tyk-form-control__wrapper > .tyk-form-control {\n border-inline-start: var(--error-border);\n\n &:focus {\n border-inline-start: var(--error-border);\n outline: none;\n }\n }\n\n .tyk-form-control {\n border-radius: var(--general-border-radius);\n }\n}\n\n.tyk-form-group--addon-right input {\n border-inline-end: 0 !important;\n padding-inline-end: 0;\n}\n\n.tyk-form-group--addon-left input {\n border-inline-start: 0 !important;\n padding-inline-start: 0;\n}\n\n.tyk-form-group--rounded-corners.tyk-form-group--addon-right {\n input {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n }\n\n .tyk-input-group__addon {\n background: var(--form-control-addon-background-color);\n border-start-end-radius: var(--general-border-radius);\n border-end-end-radius: var(--general-border-radius);\n color: var(--text-color);\n }\n}\n\n.tyk-form-group--rounded-corners.tyk-form-group--addon-left {\n input {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n border-inline-start: 0 !important;\n }\n\n .tyk-input-group__addon {\n background: var(--form-control-addon-background-color);\n border-start-start-radius: var(--general-border-radius);\n border-end-start-radius: var(--general-border-radius);\n color: var(--text-color);\n }\n}\n\n.tyk-form-control__error-message {\n font-family: var(--font-family-regular);\n font-size: var(--xs-font-size);\n line-height: var(--xs-line-height);\n margin-block-start: 5px;\n padding: var(--error-message-padding);\n position: relative;\n\n &::before {\n content: '!';\n background: var(--color-danger-base);\n color: white;\n font-family: var(--font-family-bold);\n border-radius: 8px;\n display: inline-block;\n margin-inline-end: 5px;\n padding-block: 0;\n padding-inline: 7px;\n }\n}\n\n.tyk-input-group {\n align-items: center;\n display: flex;\n outline: none;\n}\n\n.tyk-input-group__addon {\n align-items: center;\n background-color: var(--form-control-addon-background-color);\n border: var(--form-control-border);\n display: flex;\n block-size: var(--form-control-height);\n padding-block: var(--form-control-addon-padding-top) var(--form-control-addon-padding-bottom);\n padding-inline: var(--form-control-addon-padding-left) var(--form-control-addon-padding-right);\n\n &:first-child {\n border-inline-end: 0;\n }\n\n &:last-child {\n border-inline-start: 0;\n }\n}\n\n.tyk-form-control {\n font-family: var(--font-family-medium);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n border: var(--form-control-border);\n background-color: white;\n color: var(--text-color);\n display: block;\n block-size: var(--form-control-height);\n padding-block: var(--form-control-padding-top) var(--form-control-padding-bottom);\n padding-inline: var(--form-control-padding-left) var(--form-control-padding-right);\n transition: all .2s linear;\n inline-size: 100%;\n\n &[disabled] {\n background-color: var(--form-control-disabled-background-color);\n\n .tyk-input-group__addon {\n background-color: var(--form-control-disabled-background-color);\n }\n\n cursor: not-allowed;\n }\n\n &::placeholder {\n font-family: var(--form-control-placeholder-font-family);\n color: var(--form-control-placeholder-color);\n }\n\n &:focus,\n &:active {\n outline: none;\n border: var(--form-control-border-focus) !important;\n\n + .tyk-input-group__addon {\n border: var(--form-control-border-focus) !important;\n border-inline-start: none !important;\n }\n }\n}\n\n.tyk-form-control__help-block {\n color: var(--help-block-color);\n font-style: var(--help-block-font-style);\n font-family: var(--font-family-regular);\n font-size: var(--xs-font-size);\n line-height: var(--xs-line-height);\n padding: var(--help-block-padding);\n margin-block: 5px 0;\n margin-inline: 0;\n}\n\nselect {\n border-radius: 0;\n appearance: none;\n}\n\n.inline-form-wrapper {\n align-items: center;\n display: flex;\n inline-size: 100%;\n\n .inline-form {\n inline-size: 100%;\n }\n\n > button {\n margin-inline-start: 10px;\n margin-block-end: var(--spacing-base);\n }\n}\n\n.tyk-checkbox,\n.tyk-radio {\n margin-block: 10px;\n margin-inline: 0;\n\n label {\n font-family: var(--font-family-medium);\n }\n\n input {\n margin-block: 0;\n margin-inline: 0 5px;\n }\n}\n\n.tyk-checkbox--inline,\n.tyk-radio--inline {\n display: inline-flex;\n margin-inline-start: var(--spacing-base);\n\n &:first-child {\n margin-inline-start: 0;\n }\n}\n\n.tyk-inline-form {\n align-items: center;\n display: flex;\n flex-wrap: wrap;\n\n .tyk-form-group {\n flex: 1;\n margin-inline-start: var(--spacing-md);\n min-inline-size: 200px;\n\n &:first-child {\n margin-inline-start:0\n }\n }\n\n > .tyk-button {\n margin-inline-start: var(--spacing-md);\n margin-block-end: var(--spacing-base);\n }\n}\n",":root {\n --accordion-item-header-padding-y: var(--spacing-base);\n --accordion-item-header-padding-x: var(--spacing-base);\n --accordion-item-header-font-size: var(--base-font-size);\n --accordion-item-outside-trigger-width: var(--spacing-xxl);\n}\n\n.tyk-accordion__item {\n display: grid;\n}\n\n.tyk-accordion__item--trigger-position-left {\n grid-template-columns: var(--accordion-item-outside-trigger-width) auto;\n grid-template-areas:\n \"trigger header\"\n \"trigger content\";\n}\n\n.tyk-accordion__item--trigger-position-right {\n grid-template-columns: auto var(--accordion-item-outside-trigger-width);\n grid-template-areas:\n \"header trigger\"\n \"content trigger\";\n}\n\n.tyk-accordion__item--trigger-in-header {\n grid-template-columns: auto;\n grid-template-areas:\n \"header\"\n \"content\";\n}\n\n.tyk-accordion__trigger-wrapper {\n grid-area: trigger;\n display: flex;\n align-items: flex-start;\n justify-content: center;\n\n .tyk-icon {\n margin-inline: auto;\n }\n}\n\n.tyk-accordion__trigger,\n.tyk-accordion__item-header > button {\n background: none;\n border: none;\n cursor: pointer;\n display: flex;\n font-size: var(--accordion-item-header-font-size);\n outline: none;\n padding-inline: var(--accordion-item-header-padding-x);\n padding-block: var(--accordion-item-header-padding-y);\n inline-size: 100%;\n\n .tyk-icon {\n margin-inline-start: auto;\n }\n}\n\n.tyk-accordion__item-header {\n grid-area: header;\n}\n\n.tyk-accordion__trigger--disabled {\n color: var(--color-background-base);\n}\n\n.tyk-accordion__item-header.tyk-accordion__arrow-trigger {\n align-items: center;\n display: flex;\n\n > div {\n flex: 1;\n }\n\n > button {\n margin-inline-start: auto;\n inline-size: auto;\n }\n}\n\n.tyk-accordion__item-content {\n grid-area: content;\n}\n",":root {\n --button-font-family: var(--font-family-bold);\n --button-border-radius: var(--spacing-md);\n\n --padding-y-button-sm: 3px;\n --padding-x-button-sm: var(--spacing-base);\n --padding-y-button-md: 8px;\n --padding-x-button-md: 23px;\n --padding-y-button-lg: 13px;\n --padding-x-button-lg: 23px;\n\n --line-height-button-sm: var(--xs-line-height);\n --line-height-button-md: var(--md-line-height);\n --line-height-button-lg: var(--lg-line-height);\n\n --button-default-color: var(--color-default-base);\n --button-default-hover-color: var(--color-default-dark);\n --button-default-gradient-start-color: var(--color-default-base);\n --button-default-gradient-end-color: var(--color-default-dark);\n\n --button-primary-color: var(--color-default-base-light);\n --button-primary-hover-color: var(--color-default-dark);\n --button-primary-text-color: white;\n --button-primary-gradient-start-color: var(--color-primary-base);\n --button-primary-gradient-end-color: var(--color-primary-dark);\n\n --button-success-color: var(--color-success-base);\n --button-success-hover-color: var(--color-success-dark);\n --button-success-gradient-start-color: var(--color-success-base);\n --button-success-gradient-end-color: var(--color-success-dark);\n\n --button-danger-color: var(--color-danger-base);\n --button-danger-hover-color: var(--color-danger-dark);\n --button-danger-gradient-start-color: var(--color-danger-base);\n --button-danger-gradient-end-color: var(--color-danger-dark);\n\n --button-warning-color: var(--color-warning-base);\n --button-warning-font-color: white;\n --button-warning-gradient-start-color: var(--color-warning-base);\n --button-warning-gradient-end-color: var(--color-warning-light);\n\n --button-info-color: var(--color-info-base);\n --button-info-font-color: var(--text-color);\n --button-info-gradient-start-color: var(--color-info-base);\n --button-info-gradient-end-color: var(--color-info-light);\n\n --button-icon-only-background-hover: var(--color-background-light);\n}\n\n.tyk-button {\n --button-padding-y: var(--padding-y-button-md);\n --button-padding-x: var(--padding-x-button-md);\n --button-font-size: var(--sm-font-size);\n --button-line-height: var(--line-height-button-md);\n\n background-color: transparent;\n border: none;\n color: white;\n cursor: pointer;\n display: inline-block;\n font-family: var(--button-font-family);\n text-align: center;\n text-transform: uppercase;\n text-decoration: none;\n transition: all .2s linear;\n user-select: none;\n vertical-align: middle;\n white-space: nowrap;\n\n + .tyk-button,\n + .tyk-dropdown,\n + .tyk-toggle {\n margin-inline-start: var(--spacing-sm);\n }\n\n span + i {\n margin-inline-start: var(--spacing-sm);\n }\n\n i + span {\n margin-inline-start: var(--spacing-sm);\n }\n\n &.disabled {\n cursor: not-allowed;\n opacity: 0.7;\n }\n\n &:hover {\n color: white;\n text-decoration: none;\n }\n\n &:focus {\n outline: none;\n }\n}\n\n.tyk-button--white {\n --button-variant-background: white;\n --button-variant-border: transparent;\n --button-variant-color: var(--color-default-base);\n --button-variant-hover-background: var(--color-background-dark);\n --button-variant-hover-color: white;\n}\n\n.tyk-button--primary {\n --button-variant-background: var(--button-primary-color);\n --button-variant-border: var(--button-primary-color);\n --button-variant-color: var(--button-primary-text-color);\n --button-variant-hover-background: var(--button-primary-hover-color);\n --button-variant-hover-color: var(--button-primary-text-color);\n}\n\n.tyk-button--success {\n --button-variant-background: var(--button-success-color);\n --button-variant-border: var(--button-success-color);\n --button-variant-color: white;\n --button-variant-hover-background: var(--button-success-hover-color);\n --button-variant-hover-color: white;\n}\n\n.tyk-button--danger {\n --button-variant-background: var(--button-danger-color);\n --button-variant-border: var(--button-danger-color);\n --button-variant-color: white;\n --button-variant-hover-background: var(--button-danger-hover-color);\n --button-variant-hover-color: white;\n}\n\n.tyk-button--warning {\n --button-variant-background: var(--button-warning-color);\n --button-variant-border: transparent;\n --button-variant-color: var(--button-warning-font-color);\n --button-variant-hover-background: color-mix(in srgb, var(--button-variant-background), black 15%);\n --button-variant-hover-color: var(--button-warning-font-color);\n}\n\n.tyk-button--info {\n --button-variant-background: var(--button-info-color);\n --button-variant-border: var(--button-info-color);\n --button-variant-color: white;\n --button-variant-hover-background: color-mix(in srgb, var(--button-variant-background), black 15%);\n --button-variant-hover-color: white;\n}\n\n.tyk-button--default {\n --button-variant-background: var(--button-default-color);\n --button-variant-border: var(--button-default-color);\n --button-variant-color: white;\n --button-variant-hover-background: var(--button-default-hover-color);\n --button-variant-hover-color: white;\n}\n\n.tyk-button--white,\n.tyk-button--primary,\n.tyk-button--success,\n.tyk-button--danger,\n.tyk-button--warning,\n.tyk-button--info,\n.tyk-button--default {\n background-color: var(--button-variant-background);\n color: var(--button-variant-color);\n border: var(--general-border-width) solid var(--button-variant-border);\n\n &:hover {\n background-color: var(--button-variant-hover-background);\n color: var(--button-variant-hover-color);\n }\n}\n\n.tyk-button--primary-link {\n --button-variant-link-color: var(--button-primary-color);\n}\n\n.tyk-button--success-link {\n --button-variant-link-color: var(--button-success-color);\n}\n\n.tyk-button--danger-link {\n --button-variant-link-color: var(--button-danger-color);\n}\n\n.tyk-button--warning-link {\n --button-variant-link-color: var(--button-warning-color);\n}\n\n.tyk-button--info-link {\n --button-variant-link-color: var(--button-info-color);\n}\n\n.tyk-button--default-link {\n --button-variant-link-color: var(--text-color);\n}\n\n.tyk-button--primary-link,\n.tyk-button--success-link,\n.tyk-button--danger-link,\n.tyk-button--warning-link,\n.tyk-button--info-link,\n.tyk-button--default-link {\n background-color: transparent;\n border: var(--general-border-width) solid transparent;\n color: var(--button-variant-link-color);\n\n &:hover {\n background-color: transparent;\n color: var(--button-variant-link-color);\n border-color: var(--button-variant-link-color);\n text-decoration: underline;\n }\n}\n\n.tyk-button--primary-outline {\n --button-variant-outline-border: var(--button-primary-color);\n --button-variant-outline-color: var(--button-primary-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--success-outline {\n --button-variant-outline-border: var(--button-success-color);\n --button-variant-outline-color: var(--button-success-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--danger-outline {\n --button-variant-outline-border: var(--button-danger-color);\n --button-variant-outline-color: var(--button-danger-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--warning-outline {\n --button-variant-outline-border: var(--button-warning-color);\n --button-variant-outline-color: var(--button-warning-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--info-outline {\n --button-variant-outline-border: var(--button-info-color);\n --button-variant-outline-color: var(--button-info-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--default-outline {\n --button-variant-outline-border: var(--button-default-color);\n --button-variant-outline-color: var(--button-default-color);\n --button-variant-outline-hover-color: white;\n}\n\n.tyk-button--primary-outline,\n.tyk-button--success-outline,\n.tyk-button--danger-outline,\n.tyk-button--warning-outline,\n.tyk-button--info-outline,\n.tyk-button--default-outline {\n border: var(--general-border-width) solid var(--button-variant-outline-border);\n background-color: transparent;\n color: var(--button-variant-outline-color);\n\n &:hover {\n background-color: var(--button-variant-outline-border);\n color: var(--button-variant-outline-hover-color);\n }\n\n &.disabled {\n color: var(--button-variant-outline-border);\n\n &:hover {\n background-color: transparent;\n color: var(--button-variant-outline-border);\n }\n }\n}\n\n.tyk-button--primary-gradient {\n --button-variant-gradient-left-color: var(--button-primary-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-primary-gradient-end-color);\n}\n\n.tyk-button--success-gradient {\n --button-variant-gradient-left-color: var(--button-success-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-success-gradient-end-color);\n}\n\n.tyk-button--danger-gradient {\n --button-variant-gradient-left-color: var(--button-danger-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-danger-gradient-end-color);\n}\n\n.tyk-button--warning-gradient {\n --button-variant-gradient-left-color: var(--button-warning-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-warning-gradient-end-color);\n --button-variant-gradient-color: var(--button-warning-font-color);\n}\n\n.tyk-button--info-gradient {\n --button-variant-gradient-left-color: var(--button-info-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-info-gradient-end-color);\n --button-variant-gradient-color: var(--button-info-font-color);\n}\n\n.tyk-button--default-gradient {\n --button-variant-gradient-left-color: var(--button-default-gradient-start-color);\n --button-variant-gradient-right-color: var(--button-default-gradient-end-color);\n}\n\n.tyk-button--primary-gradient,\n.tyk-button--success-gradient,\n.tyk-button--danger-gradient,\n.tyk-button--warning-gradient,\n.tyk-button--info-gradient,\n.tyk-button--default-gradient {\n border-image: linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color)) 0 round;\n background: transparent linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: var(--button-variant-gradient-color, white);\n\n &:hover,\n &:active,\n &:active:focus {\n border-image: linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color)) 0 round;\n background: transparent linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color));\n background-position: 100% 0;\n background-size: 200% auto;\n background-clip: border-box;\n\n &.disabled {\n border-image: linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color)) 0 round;\n background: transparent linear-gradient(to right, var(--button-variant-gradient-left-color), var(--button-variant-gradient-right-color), var(--button-variant-gradient-left-color));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: var(--button-variant-gradient-color, white);\n }\n }\n}\n\n.tyk-button--sm {\n --button-padding-y: var(--padding-y-button-sm);\n --button-padding-x: var(--padding-x-button-sm);\n --button-font-size: var(--xs-font-size);\n --button-line-height: var(--xs-line-height);\n}\n\n.tyk-button--md {\n --button-padding-y: var(--padding-y-button-md);\n --button-padding-x: var(--padding-x-button-md);\n --button-font-size: var(--sm-font-size);\n --button-line-height: var(--sm-line-height);\n}\n\n.tyk-button--lg {\n --button-padding-y: var(--padding-y-button-lg);\n --button-padding-x: var(--padding-x-button-lg);\n --button-font-size: var(--md-font-size);\n --button-line-height: var(--line-height-button-md);\n}\n\n.tyk-button,\n.tyk-button--sm,\n.tyk-button--md,\n.tyk-button--lg {\n padding-block: var(--button-padding-y);\n padding-inline: var(--button-padding-x);\n font-size: var(--button-font-size);\n line-height: var(--button-line-height);\n border-radius: var(--button-border-radius);\n}\n\n.tyk-button--icon-only {\n border-radius: var(--general-border-radius);\n padding: 0;\n line-height: var(--spacing-md);\n inline-size: 24px;\n\n &:hover {\n border-radius: var(--general-border-radius);\n }\n}\n\n.tyk-button--fit {\n block-size: auto;\n inline-size: auto;\n line-height: normal;\n}\n\n.tyk-button--no-style {\n background: transparent;\n border: none;\n color: var(--text-color);\n\n &:hover {\n background: transparent;\n border: none;\n color: var(--text-color);\n }\n}\n",".tyk-button-group__wrapper {\n display: inline-block;\n position: relative;\n vertical-align: middle;\n\n label {\n font-family: var(--font-family-medium);\n }\n\n + .tyk-button,\n + .tyk-dropdown,\n + .tyk-toggle,\n + .tyk-button-group__wrapper {\n margin-inline-start: var(--spacing-sm);\n }\n\n .tyk-button-group {\n display: flex;\n\n > .tyk-button-group:not(:first-child) {\n > .tyk-button {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n }\n }\n\n > .tyk-button-group:not(:last-child) {\n > .tyk-button {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n }\n }\n\n .tyk-button {\n border-radius: 0;\n\n + .tyk-button {\n margin-inline-start: 0;\n }\n\n + .tyk-dropdown {\n margin-inline-start: 0;\n }\n\n &:first-child {\n border-start-start-radius: var(--spacing-md);\n border-end-start-radius: var(--spacing-md);\n }\n\n &:last-child {\n border-start-end-radius: var(--spacing-md);\n border-end-end-radius: var(--spacing-md);\n\n &.tyk-button--icon-only {\n inline-size: 42px;\n }\n }\n }\n }\n}\n",".tyk-card {\n background-color: white;\n border: 1px solid var(--color-background-base);\n border-radius: 8px;\n box-shadow: 2px 2px 3px var(--color-background-base);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.tyk-card__header {\n align-items: center;\n display: flex;\n font-family: var(--font-inter-regular);\n font-size: var(--sm-font-size);\n padding-block: var(--spacing-base) 0;\n padding-inline: var(--spacing-base);\n}\n\n.tyk-card__header-right {\n margin-inline-start: auto;\n}\n\n.tyk-card__title-group {\n display: grid;\n grid-template-columns: auto 1fr;\n align-items: center;\n\n .tyk-card__title-icon {\n align-items: center;\n display: flex;\n inline-size: 42px;\n block-size: 42px;\n justify-content: center;\n margin-inline-end: 10px;\n grid-row: span 2;\n }\n}\n\n.tyk-card__title {\n font-family: var(--font-inter-bold);\n font-size: var(--lg-font-size);\n display: -webkit-box;\n -webkit-box-orient: vertical;\n overflow: hidden;\n margin: 0;\n text-overflow: ellipsis;\n}\n\n.tyk-card__title--max-1-lines {\n -webkit-line-clamp: 1;\n}\n\n.tyk-card__title--max-2-lines {\n -webkit-line-clamp: 2;\n}\n\n.tyk-card__sub-title {\n font-family: var(--font-inter-medium);\n font-size: var(--xs-font-size);\n margin: 0;\n}\n\n.tyk-card__title-group + .tyk-card__summary,\n.tyk-card__sub-title + .tyk-card__summary,\n.tyk-card__title + .tyk-card__summary {\n margin-block-start: var(--spacing-sm);\n}\n\n.tyk-card__summary {\n color: var(--text-color);\n font-family: var(--font-inter-regular);\n font-size: var(--sm-font-size);\n display: -webkit-box;\n -webkit-box-orient: vertical;\n overflow: hidden;\n margin: 0;\n text-overflow: ellipsis;\n}\n\n.tyk-card__summary--max-1-lines {\n -webkit-line-clamp: 1;\n}\n\n.tyk-card__summary--max-2-lines {\n -webkit-line-clamp: 2;\n}\n\n.tyk-card__summary--max-3-lines {\n -webkit-line-clamp: 3;\n}\n\n.tyk-card__summary--max-4-lines {\n -webkit-line-clamp: 4;\n}\n\n.tyk-card__summary--max-5-lines {\n -webkit-line-clamp: 5;\n}\n\n.tyk-card__body {\n display: flex;\n flex: 1 0 auto;\n flex-grow: 1;\n padding: var(--spacing-base);\n}\n\n.tyk-card__body--align-top {\n align-items: flex-start;\n}\n\n.tyk-card__body--align-center {\n align-items: center;\n}\n\n.tyk-card__body--align-bottom {\n align-items: flex-end;\n}\n\n.tyk-card__footer {\n display: flex;\n justify-content: end;\n border-block-start: 1px solid var(--color-background-base);\n padding: var(--spacing-base);\n}",".tyk-chart__wrapper {\n position: relative;\n}\n\n.tyk-chart--no-data,\n.tyk-chart--loading-chart {\n filter: blur(var(--spacing-sm));\n}\n",".collapse-exit,\n.collapse-exit-active,\n.collapse-exit-done {\n block-size: 0;\n}\n\n.collapse-wrapper {\n overflow: hidden;\n transition: all .2s;\n}\n\n.collapse-horizontal-exit,\n.collapse-horizontal-exit-active,\n.collapse-horizontal-exit-done {\n inline-size: 0;\n}\n\n.collapse-horizontal-enter,\n.collapse-horizontal-enter-active,\n.collapse-horizontal-enter-done {\n inline-size: 100%;\n}\n",".tyk-copy-to-clipboard {\n position: absolute;\n inset-inline-start: -1000px;\n inset-block-start: -1000px;\n}",":root {\n --fixed-wrapper-top: 0;\n --fixed-wrapper-left: 0;\n --fixed-wrapper-right: 0;\n}\n\n.tyk-fixed-wrapper {\n inset-inline-start: var(--fixed-wrapper-left);\n inset-inline-end: var(--fixed-wrapper-right);\n position: sticky;\n inset-block-start: var(--fixed-wrapper-top);\n z-index: 8;\n}\n\n.tyk-fixed-wrapper--scrolled {\n box-shadow: 2px 2px 5px rgba(0 0 0 / 10%);\n}\n",".floating-container {\n position: fixed;\n inset-block-start: -9999px;\n overflow: auto;\n z-index: var(--modal-z-index, 1080);\n}\n\n.floating-container__content-wrapper {\n block-size: 100%;\n}",".tyk-icon {\n + .tyk-icon {\n margin-inline-start: var(--spacing-sm);\n }\n}\n",".tyk-infinite-scroller {\n block-size: 100%;\n overflow: hidden;\n position: relative;\n\n .loading {\n background: linear-gradient(180deg, rgba(255 255 255 / 0%), rgba(255 255 255 / 100%));\n justify-content: center;\n display: flex;\n inset-inline: 0;\n inset-block-start: auto;\n inset-block-end: 0;\n padding-block: var(--spacing-base);\n padding-inline: 0;\n inline-size: 100%;\n }\n}\n\n.tyk-infinite-scroller__wrapper {\n block-size: 100%;\n overflow-y: auto;\n}\n",".tyk-info-note {\n border-radius: 0;\n position: relative;\n\n p + p {\n margin-block-start: var(--spacing-base);\n }\n\n &::after {\n content: '';\n border-style: solid;\n border-width: 0 var(--spacing-md) var(--spacing-md) 0;\n border-color: transparent var(--color-info-base) transparent transparent;\n block-size: 0;\n position: absolute;\n inset-inline-end: 0;\n inset-block-start: 0;\n inline-size: 0;\n }\n\n .tyk-message {\n border-radius: 0;\n padding-block: 40px;\n }\n}\n",".tyk-loading__wrapper {\n background: rgba(255 255 255 / 60%);\n position: absolute;\n inset: 0;\n z-index: 99;\n}\n\n.loader-wrapper {\n min-block-size: 100px;\n position: relative;\n}\n\n.loading {\n position: absolute;\n inset-block-start: calc(50% - var(--spacing-sm));\n inset-inline-start: 50%;\n\n &.relative {\n inset-inline-start: auto;\n padding: 25px;\n position: relative;\n text-align: center;\n inset-block-start: auto;\n inline-size: 100%;\n }\n}\n\n.loading-bar {\n display: inline-block;\n inline-size: 4px;\n block-size: var(--spacing-md);\n border-radius: 4px;\n animation: loading 1s ease-in-out infinite;\n margin-inline-start: 2px;\n}\n\n.loading-bar:nth-child(1) {\n animation-delay: 0;\n background-color: var(--color-success-base);\n opacity: 1;\n}\n\n.loading-bar:nth-child(2) {\n animation-delay: 0.09s;\n background-color: var(--color-success-base);\n opacity: 0.80;\n}\n\n.loading-bar:nth-child(3) {\n animation-delay: .18s;\n background-color: var(--color-success-base);\n opacity: 0.60;\n}\n\n.loading-bar:nth-child(4) {\n animation-delay: .27s;\n background-color: var(--color-success-base);\n opacity: 0.40;\n}\n\n@keyframes loading {\n 0% {\n transform: scale(1);\n }\n\n 20% {\n transform: scale(1, 2.2);\n }\n\n 40% {\n transform: scale(1);\n }\n}\n",".tyk-list {\n border: var(--general-border-width) solid var(--color-default-light);\n border-radius: var(--general-border-radius);\n font-size: var(--sm-font-size);\n list-style-type: none;\n margin: 0;\n max-block-size: 191px;\n padding: 0;\n overflow: auto;\n\n li {\n border-block-end: 1px solid var(--color-default-light);\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-md);\n font-family: var(--font-family-medium);\n\n &.tyk-list__item--selected {\n background-color: var(--color-default-light);\n }\n\n &:last-child {\n border: none;\n }\n }\n}\n\n.tyk-list--with-inline-label {\n display: flex;\n\n > label {\n margin-inline-end: var(--spacing-md);\n }\n}\n\n.tyk-list--default {\n border-color: var(--color-default-light);\n}\n\n.tyk-list--primary {\n border-color: var(--color-primary-base);\n\n li {\n border-color: var(--color-primary-light);\n color: var(--text-color);\n\n &.tyk-list__item--selected {\n background-color: var(--color-primary-light);\n }\n }\n}\n\n.tyk-list--primary-light {\n border-color: var(--color-primary-light);\n\n li {\n border-color: var(--color-primary-light);\n color: var(--text-color);\n\n &.tyk-list__item--selected {\n background-color: var(--color-primary-light);\n }\n }\n}\n\n.tyk-list--success {\n border-color: var(--color-success-base);\n color: var(--color-success-base);\n\n li {\n border-color: var(--color-success-base);\n\n &.tyk-list__item--selected {\n background-color: var(--color-success-light);\n }\n }\n}\n\n.tyk-list--danger {\n border-color: var(--color-danger-base);\n color: var(--text-color);\n\n li {\n border-color: var(--color-danger-light);\n\n &.tyk-list__item--selected {\n background-color: var(--color-danger-light);\n }\n }\n}\n\nul.tyk-list--inline {\n align-items: center;\n display: flex;\n\n li {\n padding-block: 0;\n padding-inline: var(--spacing-sm);\n }\n\n &.tyk-list--with-separator {\n li:not(:first-child) {\n border-inline-start: 1px solid var(--color-default-base);\n }\n }\n}\n",":root {\n --tyk-message-padding-top: var(--spacing-md);\n --tyk-message-padding-right: var(--spacing-md);\n --tyk-message-padding-bottom: var(--spacing-md);\n --tyk-message-padding-left: var(--spacing-md);\n --tyk-message-border-radius: var(--general-border-radius);\n --tyk-message-default-background: var(--color-primary-light);\n --tyk-message-default-border: var(--color-default-dark);\n --tyk-message-default-text-color: var(--color-default-dark);\n --tyk-message-info-background: var(--color-info-light);\n --tyk-message-info-border: var(--color-info-base);\n --tyk-message-info-text-color: var(--color-info-base);\n --tyk-message-success-background: var(--color-success-light);\n --tyk-message-success-border: var(--color-success-dark);\n --tyk-message-success-text-color: var(--color-success-dark);\n --tyk-message-warning-background: var(--color-warning-light);\n --tyk-message-warning-border: var(--color-warning-base);\n --tyk-message-warning-text-color: var(--color-warning-dark);\n --tyk-message-danger-background: var(--color-danger-extra-light);\n --tyk-message-danger-border: var(--color-danger-base);\n --tyk-message-danger-text-color: var(--color-danger-dark);\n}\n\n.tyk-message {\n display: flex;\n align-items: center;\n border-radius: var(--tyk-message-border-radius);\n margin-block-end: var(--spacing-md);\n padding-block: var(--tyk-message-padding-top) var(--tyk-message-padding-bottom);\n padding-inline: var(--tyk-message-padding-left) var(--tyk-message-padding-right);\n\n > .tyk-icon:first-child {\n inline-size: 32px;\n block-size: 32px;\n flex-shrink: 0;\n border-radius: 50%;\n color: white;\n\n &::before {\n display: flex;\n inline-size: 100%;\n block-size: 100%;\n align-items: center;\n justify-content: center;\n }\n }\n\n > .tyk-icon:last-child {\n cursor: pointer;\n }\n\n /* &--default {\n @include message-variant(\n $tyk-message-default-background,\n $tyk-message-default-border,\n $tyk-message-default-text-color\n );\n\n > .tyk-icon:first-child {\n transform: rotate(180deg);\n }\n }\n\n &--info {\n @include message-variant(\n $tyk-message-info-background,\n $tyk-message-info-border,\n $tyk-message-info-text-color\n );\n }\n\n &--success {\n @include message-variant(\n $tyk-message-success-background,\n $tyk-message-success-border,\n $tyk-message-success-text-color\n );\n }\n\n &--warning {\n @include message-variant(\n $tyk-message-warning-background,\n $tyk-message-warning-border,\n $tyk-message-warning-text-color\n );\n }\n\n &--danger {\n @include message-variant(\n $tyk-message-danger-background,\n $tyk-message-danger-border,\n $tyk-message-danger-text-color\n );\n } */\n}\n\n.tyk-message__content {\n flex-grow: 1;\n margin-inline: var(--spacing-md);\n}\n\n.tyk-message--default {\n --message-variant-background: var(--tyk-message-default-background);\n --message-variant-border: var(--tyk-message-default-border);\n --message-variant-color: var(--tyk-message-default-text-color);\n\n > .tyk-icon:first-child {\n transform: rotate(180deg);\n }\n}\n\n.tyk-message--info {\n --message-variant-background: var(--tyk-message-info-background);\n --message-variant-border: var(--tyk-message-info-border);\n --message-variant-color: var(--tyk-message-info-text-color);\n}\n\n.tyk-message--success {\n --message-variant-background: var(--tyk-message-success-background);\n --message-variant-border: var(--tyk-message-success-border);\n --message-variant-color: var(--tyk-message-success-text-color);\n}\n\n.tyk-message--warning {\n --message-variant-background: var(--tyk-message-warning-background);\n --message-variant-border: var(--tyk-message-warning-border);\n --message-variant-color: var(--tyk-message-warning-text-color);\n}\n\n.tyk-message--danger {\n --message-variant-background: var(--tyk-message-danger-background);\n --message-variant-border: var(--tyk-message-danger-border);\n --message-variant-color: var(--tyk-message-danger-text-color);\n}\n\n.tyk-message--default,\n.tyk-message--info,\n.tyk-message--success,\n.tyk-message--warning,\n.tyk-message--danger {\n background-color: var(--message-variant-background);\n border: var(--general-border-width) solid var(--message-variant-border);\n color: var(--message-variant-color);\n\n & > .tyk-icon:first-child {\n background-color: var(--message-variant-border);\n }\n}\n",":root {\n --tyk-modal-body-padding: var(--spacing-lg);\n --tyk-modal-footer-padding: var(--spacing-lg);\n\n /* Deprecated Modal.Header and Modal.Title */\n --tyk-modal-header-padding: var(--spacing-lg);\n --tyk-modal-borders-color: var(--color-background-light);\n\n /* End of deprecated styles */\n}\n\n.tyk-modal {\n --theme-header-height: 15px;\n --theme-header-icon-size: 65px;\n\n align-items: center;\n pointer-events: none;\n position: fixed;\n inset: 0;\n z-index: -1;\n\n .tyk-panel {\n border: var(--general-border-width) solid var(--color-background-dark);\n box-shadow: none;\n }\n\n .tyk-modal__dialog {\n opacity: 0;\n transition: all .2s ease;\n }\n\n &.opened {\n display: flex;\n z-index: var(--modal-z-index);\n\n .tyk-modal__dialog {\n display: flex;\n max-block-size: 92vh;\n opacity: 1;\n pointer-events: all;\n }\n }\n\n &.appear-enter-done {\n .tyk-modal__dialog {\n opacity: 1;\n margin-block-start: 0;\n }\n }\n}\n\n.tyk-modal__theme-header {\n position: absolute;\n inset-block-start: -1px;\n inset-inline: 0;\n block-size: var(--theme-header-height);\n border-start-start-radius: var(--general-border-radius);\n border-start-end-radius: var(--general-border-radius);\n\n .tyk-icon {\n position: absolute;\n inset-inline-start: calc(50% - var(--theme-header-icon-size) / 2);\n inset-block-start: calc((var(--theme-header-icon-size) - var(--theme-header-height)) / -2);\n inline-size: var(--theme-header-icon-size);\n block-size: var(--theme-header-icon-size);\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: var(--xxl-font-size);\n color: white;\n }\n}\n\n.tyk-modal--theme-success {\n .tyk-modal__theme-header {\n background-color: var(--color-success-base);\n\n .tyk-icon {\n background-color: var(--color-success-base);\n }\n }\n}\n\n.tyk-modal--theme-warning {\n .tyk-modal__theme-header {\n background-color: var(--color-warning-base);\n\n .tyk-icon {\n background-color: var(--color-warning-base);\n }\n }\n}\n\n.tyk-modal--theme-danger {\n .tyk-modal__theme-header {\n background-color: var(--color-danger-base);\n\n .tyk-icon {\n background-color: var(--color-danger-base);\n }\n }\n}\n\n.tyk-modal__dialog {\n opacity: 0;\n margin-inline: auto;\n margin-block-start: -5%;\n margin-block-end: 0;\n pointer-events: all;\n transition: all .2s linear;\n inline-size: 85%;\n}\n\n@media only screen and (width >= 768px) {\n .tyk-modal__dialog {\n inline-size: 600px;\n\n &.tyk-modal--lg {\n inline-size: 800px;\n }\n }\n}\n\n.tyk-modal__content {\n background: white;\n border-radius: var(--general-border-radius);\n display: flex;\n flex-direction: column;\n position: relative;\n inline-size: 100%;\n}\n\n.tyk-modal__body {\n flex: 1;\n overflow: auto;\n padding-block-start: calc(var(--tyk-modal-body-padding) + (var(--theme-header-icon-size) - var(--theme-header-height)) / 2);\n padding-block-end: var(--tyk-modal-body-padding);\n padding-inline: var(--tyk-modal-body-padding);\n\n &.no-padding {\n padding: 0;\n }\n}\n\n.tyk-modal__footer {\n align-items: center;\n display: flex;\n justify-content: flex-end;\n padding: var(--tyk-modal-footer-padding);\n\n >:not(:first-child) {\n margin-inline-start: var(--spacing-xs);\n }\n}\n\n.tyk-modal__backdrop {\n background-color: var(--color-default-dark);\n border: none;\n display: none;\n position: fixed;\n inset: 0;\n inline-size: 100%;\n z-index: var(--modal-z-index) - 1;\n\n &.opened {\n display: block;\n opacity: 0.5;\n transition: opacity .2s ease;\n }\n\n &.fade-enter-done {\n opacity: 0.5;\n z-index: 9;\n }\n}\n\n/* Deprecated Modal.Header and Modal.Title */\n.tyk-modal__header {\n padding-block-start: calc(var(--tyk-modal-header-padding) + (var(--theme-header-icon-size) - var(--theme-header-height)) / 2);\n padding-block-end: var(--tyk-modal-header-padding);\n padding-inline: var(--tyk-modal-header-padding);\n align-items: center;\n border-block-end: 1px solid var(--tyk-modal-borders-color);\n display: flex;\n inline-size: 100%;\n\n .tyk-modal--theme-none & {\n padding-block-start: var(--tyk-modal-header-padding);\n }\n\n button {\n margin-inline-start: auto;\n padding-block: 0;\n padding-inline: 5px;\n }\n\n + .tyk-modal__body {\n padding-block-start: var(--tyk-modal-body-padding);\n }\n}\n\n.tyk-modal__title {\n font-family: var(--font-family-medium);\n font-weight: 500;\n margin: 0;\n inline-size: 100%;\n}\n\n/* End of deprecated styles */\n",":root {\n --navigation-background-color: white;\n --navigation-item-padding-y: var(--spacing-sm);\n --navigation-item-padding-x: var(--spacing-md);\n --navigation-item-background-color: white;\n --navigation-item-color: var(--text-color);\n --navigation-item-hover-background-color: var(--color-primary-base);\n --navigation-item-hover-color: white;\n --navigation-item-active-background-color: var(--color-primary-dark);\n --navigation-item-active-color: white;\n --navigation-padding: 0;\n}\n\n.tyk-navigation {\n background-color: var(--navigation-background-color);\n block-size: 100%;\n overflow: auto;\n padding: var(--navigation-padding);\n inline-size: 100%;\n\n .tyk-navigation-item {\n inline-size: 100%;\n\n a {\n color: var(--navigation-item-color);\n display: flex;\n padding-block: var(--navigation-item-padding-y);\n padding-inline: var(--navigation-item-padding-x);\n text-decoration: none;\n transition: all .2s ease;\n\n &:hover {\n background-color: var(--navigation-item-hover-background-color);\n color: var(--navigation-item-hover-color);\n }\n\n &.active {\n background-color: var(--navigation-item-active-background-color);\n color: var(--navigation-item-active-color);\n }\n }\n }\n}\n",":root {\n --nav-bar-background-color: white;\n --nav-bar-text-color: var(--color-default-base);\n --nav-bar-padding-left: 265px;\n --nav-bar-animate-left: 245px;\n --nav-bar-top-padding: var(--spacing-sm);\n --nav-bar-bottom-padding: 0;\n --nav-bar-left-padding: var(--spacing-md);\n --nav-bar-right-padding: var(--spacing-md);\n --nav-bar-padding: 0 var(--nav-bar-right-padding) 0 var(--nav-bar-left-padding);\n --nav-bar-top: 51px;\n --nav-bar-header-font-size: var(--xxl-font-size);\n --nav-bar-header-font-family: var(--headings-font-family-bold);\n --nav-bar-header-line-height: var(--xxl-line-height);\n --nav-bar-height: 92px;\n --nav-bar-font-family: var(--font-family-regular);\n}\n\n.tyk-nav-bar {\n align-items: center;\n border: none;\n background-color: var(--nav-bar-background-color);\n font-family: var(--nav-bar-font-family);\n color: var(--nav-bar-text-color);\n margin: 0;\n padding: var(--nav-bar-padding);\n inline-size: 100%;\n z-index: 8;\n transition: all .2s linear;\n\n &.tyk-nav-bar__with-tabs .tyk-tabs--default > ul li button {\n padding-block-start: 0;\n }\n\n @media screen and (width <= 1024px) {\n padding-inline-start: var(--spacing-md);\n\n .menu-opened & {\n transform: translate(var(--nav-bar-animate-left));\n }\n }\n\n h1 {\n color: var(--nav-bar-text-color);\n }\n\n h4 {\n margin: 0;\n }\n\n .tyk-nav-bar__wrapper {\n align-items: center;\n padding-block-end: var(--nav-bar-bottom-padding);\n display: flex;\n flex-wrap: wrap;\n block-size: var(--nav-bar-height);\n\n &.tyk-nav-bar--align-top {\n align-items: flex-start;\n }\n\n @media screen and (width <= 1024px) {\n padding-inline-start: 0;\n }\n\n h1 {\n font-size: var(--nav-bar-header-font-size);\n font-family: var(--nav-bar-header-font-family);\n line-height: var(--nav-bar-header-line-height);\n margin: 0;\n padding-inline-end: var(--spacing-sm);\n }\n\n h4 {\n padding-inline-end: var(--spacing-sm);\n }\n\n .tyk-nav-bar__container {\n align-items: center;\n display: flex;\n flex-grow: 1;\n justify-content: space-between;\n }\n\n .tyk-nav-bar__left {\n flex-grow: 1;\n }\n\n .tyk-nav-bar__right {\n margin-inline-start: auto;\n }\n }\n}\n\n.tyk-nav-bar__pre {\n align-self: flex-end;\n color: var(--text-color);\n flex-basis: 100%;\n\n a {\n font-family: var(--font-family-bold);\n font-size: var(--xs-font-size);\n line-height: var(--xs-line-height);\n color: var(--text-color);\n }\n}\n",":root {\n --padding-y-panel-header: var(--spacing-sm);\n --padding-x-panel-header: 25px;\n --padding-y-blank-panel-header: var(--spacing-md);\n --padding-panel-body: 25px;\n --padding-x-right-panel-collapsable: 48px;\n --padding-x-left-panel-collapsable: var(--padding-x-right-panel-collapsable);\n --panel-border-radius: 0;\n --panel-default-border-bottom-color: var(--color-background-base);\n --panel-header-font-size: var(--base-font-size);\n --panel-header-font-family: var(--font-family-medium);\n --panel-primary-header-color: var(--color-primary-base);\n --panel-primary-body-color: white;\n --panel-primary-header-text-color: white;\n --panel-primary-body-text-color: var(--text-color);\n --panel-primary-label-color: var(--text-color);\n --panel-primary-border-color: none;\n}\n\n.tyk-panel {\n background: white;\n border-radius: var(--panel-border-radius);\n margin-block-end: 20px;\n font-family: var(--font-family-medium);\n position: relative;\n\n &.has-error,\n & &.has-error {\n border: var(--general-border-width) solid var(--color-danger-base);\n }\n\n .tyk-panel {\n border: var(--general-border-width) solid var(--color-default-light);\n box-shadow: none;\n }\n\n .tyk-panel__header {\n border: none;\n font-size: var(--lg-font-size);\n line-height: var(--lg-line-height);\n }\n}\n\n.tyk-panel--blank {\n &.tyk-panel--collapsed {\n margin-block-end: 20px;\n\n .tyk-panel__header {\n margin-block-end: 0;\n }\n }\n\n .tyk-panel__header {\n margin-block-end: -20px;\n padding-block: var(--padding-y-blank-panel-header);\n padding-inline: var(--padding-x-panel-header);\n background-color: white;\n color: var(--color-default-base);\n }\n}\n\n.tyk-panel--primary {\n background-color: transparent;\n\n .tyk-panel__header {\n background-color: var(--panel-primary-header-color);\n color: var(--panel-primary-header-text-color);\n border: var(--panel-primary-border-color);\n }\n\n .tyk-panel__body {\n background-color: var(--panel-primary-body-color);\n color: var(--panel-primary-body-text-color);\n }\n\n & .tyk-form-group {\n label {\n color: var(--panel-primary-label-color);\n }\n }\n\n .tyk-toggle {\n .tyk-toggle__label {\n color: var(--panel-primary-label-color);\n }\n }\n}\n\n.tyk-panel--success {\n .tyk-panel__header {\n background-color: var(--color-success-base);\n color: white;\n }\n}\n\n.tyk-panel--danger {\n .tyk-panel__header {\n background-color: var(--color-danger-base);\n color: white;\n }\n}\n\n.tyk-panel--warning {\n .tyk-panel__header {\n background-color: var(--color-warning-base);\n color: white;\n }\n}\n\n.tyk-panel__body {\n background-color: white;\n border-radius: var(--panel-border-radius);\n font-family: var(--font-family-regular);\n padding: var(--padding-panel-body);\n position: relative;\n transition: block-size .2s;\n\n & ~ .tyk-panel__header {\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n\n &.no-padding {\n padding: 0;\n }\n}\n\n.tyk-panel__header {\n display: flex;\n align-items: center;\n border-block-end: 1px solid var(--panel-default-border-bottom-color);\n border-radius: var(--panel-border-radius);\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n font-family: var(--panel-header-font-family);\n overflow: hidden;\n padding-block: var(--padding-y-panel-header);\n padding-inline: var(--padding-x-panel-header);\n position: relative;\n\n > .tyk-icon,\n > .tyk-tooltip__wrapper {\n margin-inline-start: 5px;\n }\n\n .tyk-panel--collapsed & {\n border-end-start-radius: var(--panel-border-radius);\n border-end-end-radius: var(--panel-border-radius);\n }\n\n & ~ .tyk-panel__body {\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n }\n\n & h3 {\n margin: 0;\n }\n\n ng-transclude {\n vertical-align: middle;\n }\n\n &.collapsable {\n cursor: pointer;\n\n .tyk-panel__icon-collapse--right & {\n padding-inline-end: var(--padding-x-right-panel-collapsable);\n }\n\n .tyk-panel__icon-collapse--left & {\n padding-inline-start: var(--padding-x-left-panel-collapsable);\n }\n }\n\n .collapsable__arrow-right {\n font-size: var(--sm-font-size);\n position: absolute;\n padding: var(--spacing-sm);\n inset-inline-end: var(--spacing-sm);\n inset-block-start: calc(50% - 21px);\n }\n\n .collapsable__arrow-left {\n font-size: var(--sm-font-size);\n position: absolute;\n padding-block: 8px var(--spacing-sm);\n padding-inline: 20px 0;\n inset-inline-start: 0;\n inset-block-start: calc(50% - 21px);\n }\n}\n\n.tyk-panel__footer {\n align-items: center;\n border-block-start: 1px solid var(--color-background-light);\n display: flex;\n justify-content: flex-end;\n padding: var(--spacing-lg);\n\n >:not(:first-child) {\n margin-inline-start: 5px;\n }\n}\n",".tyk-pill {\n align-items: center;\n border-radius: var(--general-border-radius);\n display: inline-flex;\n font-size: var(--xs-font-size);\n line-height: 19px;\n margin: var(--pill-margin);\n padding-block: 6px;\n padding-inline: var(--spacing-base);\n font-family: var(--font-family-medium);\n\n i {\n font-size: var(--xs-font-size);\n }\n\n + .tyk-pill {\n margin-inline-end: var(--spacing-sm);\n }\n\n button + span {\n margin-inline-start: var(--spacing-sm);\n }\n\n span + button {\n margin-inline-start: var(--spacing-sm);\n }\n\n &:first-child {\n margin-inline-end: var(--spacing-sm);\n }\n\n &:last-child {\n margin-inline-end: 0;\n }\n}\n\n.tyk-pill--square {\n border-radius: 8px;\n}\n\n.tyk-pill--default {\n background-color: var(--default-pill-background-color);\n color: var(--default-pill-color);\n\n i {\n color: var(--default-pill-color);\n }\n}\n\n.tyk-pill--default-outline {\n box-shadow: var(--default-outline-pill-box-shadow);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n\n.tyk-pill--primary {\n background-color: var(--color-primary-base);\n color: white;\n\n i {\n color: var(--default-pill-color);\n }\n}\n\n.tyk-pill--primary-outline {\n box-shadow: inset 0 0 0 2px var(--color-primary-base);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n\n.tyk-pill--success {\n background-color: var(--color-success-base);\n color: white;\n\n i {\n color: white;\n }\n}\n\n.tyk-pill--success-outline {\n box-shadow: inset 0 0 0 2px var(--color-success-base);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n\n.tyk-pill--danger {\n background-color: var(--color-danger-base);\n color: white;\n\n i {\n color: white;\n }\n}\n\n.tyk-pill--danger-outline {\n box-shadow: inset 0 0 0 2px var(--color-danger-base);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n\n.tyk-pill--warning {\n background-color: var(--color-warning-base);\n color: white;\n\n i {\n color: white;\n }\n}\n\n.tyk-pill--warning-outline {\n box-shadow: inset 0 0 0 2px var(--color-warning-base);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n\n.tyk-pill--info {\n background-color: var(--color-info-base);\n color: white;\n\n i {\n color: white;\n }\n}\n\n.tyk-pill--info-outline {\n box-shadow: inset 0 0 0 2px var(--color-info-base);\n color: var(--text-color);\n\n i {\n color: var(--text-color);\n }\n}\n",".tyk-ui-reveal-wrapper {\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n align-items: stretch;\n inline-size: 100%;\n block-size: 100%;\n z-index: 1000;\n position: absolute;\n inset-block-end: 0;\n inset-inline-start: 0;\n pointer-events: none;\n}\n\n.tyk-ui-reveal-wrapper__panel {\n max-block-size: calc(100% - 2rem);\n background-color: white;\n padding: 0;\n margin: 0;\n display: flex;\n flex-direction: column;\n pointer-events: all;\n flex-shrink: 0;\n overflow: auto;\n}\n\n.tyk-ui-reveal-wrapper__hole {\n flex-grow: 1;\n opacity: 0;\n inline-size: 100%;\n background-color: green;\n -webkit-user-select: none;\n user-select: none;\n pointer-events: none;\n z-index: -1;\n}\n\n.tyk-ui-reveal-wrapper__gutter {\n block-size: 2rem;\n inline-size: 100%;\n cursor: row-resize;\n display: flex;\n background-color: var(--color-primary-base);\n z-index: 2;\n pointer-events: all;\n justify-content: space-between;\n align-items: stretch;\n position: relative;\n box-shadow: 0 5px 10px rgba(0 0 0 / 30%);\n}\n\n.tyk-ui-reveal-wrapper__gutter__headerleft,\n.tyk-ui-reveal-wrapper__gutter__headerright {\n display: flex;\n align-items: center;\n flex: 1;\n}\n\n.tyk-ui-reveal-wrapper__gutter__headerleft {\n justify-content: flex-start;\n}\n\n.tyk-ui-reveal-wrapper__gutter__headerright {\n justify-content: flex-end;\n}\n\n.tyk-ui-reveal-wrapper__gutter__logo {\n inline-size: 1rem;\n block-size: 1rem;\n -webkit-user-select: none;\n user-select: none;\n pointer-events: none;\n padding: 0.2rem;\n z-index: 2;\n background-image: url('./images/drag.svg');\n align-self: center;\n\n &:hover {\n border: dashed;\n }\n}\n",":root {\n --sidebar-background-color: white;\n --sidebar-top: 58px;\n --sidebar-height: calc(100vh - 58px);\n --sidebar-width: 280px;\n --sidebar-padding: 0;\n}\n\n.tyk-sidebar {\n background-color: var(--sidebar-background-color);\n block-size: var(--sidebar-height);\n flex: 0 0 var(--sidebar-width);\n padding: var(--sidebar-padding);\n position: sticky;\n overflow: auto;\n inset-block-start: var(--sidebar-top);\n}\n",":root {\n --table-th-padding: var(--spacing-base) var(--spacing-sm);\n --table-td-padding-y: var(--spacing-xs);\n --table-td-padding-x: var(--spacing-sm);\n --table-first-last-padding: 20px;\n --table-pagination-padding: var(--spacing-md) 25px;\n}\n\n.tyk-table {\n border-collapse: collapse;\n border-spacing: 0;\n background-color: white;\n border-radius: var(--general-border-radius);\n inline-size: 100%;\n\n > thead th {\n border-inline-end: 1px solid var(--color-default-light);\n color: var(--text-color);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n font-family: var(--font-family-bold);\n text-transform: uppercase;\n padding: var(--table-th-padding);\n\n &:last-child {\n border-inline-end: none;\n }\n\n i {\n font-size: var(--xs-font-size);\n }\n\n .tyk-button {\n background: none;\n color: var(--color-default-base);\n padding: 0;\n }\n }\n\n > tbody tr:hover {\n background: rgba(var(--color-background-light) / 40%);\n }\n\n > tbody td {\n border-inline-end: 1px solid var(--color-default-light);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n font-family: var(--font-family-regular);\n padding-block: var(--table-td-padding-y);\n padding-inline: var(--table-td-padding-x);\n vertical-align: middle;\n\n &:last-child {\n border-inline-end: none;\n }\n\n &.fit {\n white-space: nowrap;\n inline-size: 1%;\n }\n\n input:not([type='checkbox'], [type='radio']) {\n margin-block-start: var(--spacing-base);\n }\n\n a {\n color: var(--text-color);\n font-family: var(--font-family-medium);\n }\n\n label {\n margin: 0;\n }\n\n input[type='checkbox'] {\n margin: 0;\n }\n }\n\n tbody > tr {\n border-block-start: 1px solid var(--color-default-light);\n transition: all .4s linear;\n border-radius: var(--general-border-radius);\n\n &.clickable {\n cursor: pointer;\n }\n }\n\n > tbody tr td:first-child,\n > thead tr th:first-child {\n padding-inline-start: var(--table-first-last-padding);\n\n &.with-icon {\n padding-inline-start: var(--spacing-base);\n }\n }\n\n > tbody tr td:last-child,\n > thead tr th:last-child {\n padding-inline-end: var(--table-first-last-padding);\n\n &.with-icon {\n padding-inline-end: var(--spacing-base);\n }\n }\n\n .tyk-pagination {\n padding: var(--table-pagination-padding);\n\n li:first-child {\n margin-inline-start: auto;\n }\n }\n\n .nowrap {\n white-space: nowrap;\n }\n\n .wrap {\n word-break: break-all;\n }\n}\n\n.tyk-table__wrapper {\n border: var(--general-border-width) solid var(--color-default-light);\n border-radius: var(--general-border-radius);\n overflow: auto;\n\n &.no-innner-horizontal-borders {\n & .tyk-table > thead th,\n & .tyk-table > tbody td {\n border-inline-end: none;\n }\n }\n}\n\n.tyk-table__wrapper--no-border {\n border: none\n}\n\n.tyk-table-search {\n padding-block: var(--spacing-sm) 0;\n padding-inline: 25px;\n\n label {\n font-size: var(--sm-font-size);\n text-transform: uppercase;\n }\n}\n\n.header-sort {\n padding-inline-start: 3px;\n padding-block-start: var(--spacing-xs);\n vertical-align: middle;\n}\n\n.new-table-pagination {\n float: inline-end;\n}\n\n.selectable > div {\n margin-inline-start: var(--spacing-md);\n}\n\n.scrollable {\n display: block;\n overflow: auto;\n}\n\n.fixed-header {\n background: white;\n position: sticky;\n inset-block-start: 0;\n}\n\n.tyk-table.has-error,\n.tyk-table__wrapper.has-error {\n border: var(--general-border-width) solid var(--color-danger-base) !important;\n}",":root {\n --tabs-default-content-padding: 25px;\n --tab-button-padding: var(--spacing-sm) 2px 3px 2px;\n --tab-button-margin: 0;\n --tabs-font-familly: var(--font-family-medium);\n --tab-button-color: var(--text-color);\n --tab-active-button-color: var(--text-color);\n --tab-border-color: var(--color-success-base);\n}\n\n.tyk-tabs--default {\n > ul {\n display: flex;\n list-style-type: none;\n margin: 0;\n padding: 0;\n overflow: auto;\n\n li {\n display: flex;\n white-space: nowrap;\n margin-inline-end: var(--tab-button-margin);\n\n &:last-child {\n margin-inline-end: 0;\n }\n\n &.active button,\n button:hover {\n border-block-end-color: var(--tab-border-color);\n color: var(--tab-active-button-color);\n opacity: 1;\n }\n\n button {\n background: none;\n border: none;\n border-block-end: 4px solid transparent;\n color: var(--tab-button-color);\n cursor: pointer;\n font-size: var(--sm-font-size);\n font-family: var(--tabs-font-familly);\n padding: var(--tab-button-padding);\n margin-inline-end: var(--spacing-md);\n transition: all .2s linear;\n opacity: 0.7;\n\n &:focus {\n outline: none;\n }\n }\n }\n }\n}\n\n.tyk-tab__content {\n padding: var(--tabs-default-content-padding);\n}\n",".tyk-toast__container {\n inset-block-end: 0;\n min-inline-size: 300px;\n position: fixed;\n inset-inline-end: var(--spacing-md);\n z-index: 11;\n}\n\n.tyk-toast__message {\n position: relative;\n}\n\n.tyk-toast-message__button {\n color: var(--text-color);\n block-size: var(--spacing-md);\n line-height: 1;\n padding: var(--spacing-xs);\n position: absolute;\n inset-inline-end: var(--spacing-xs);\n inset-block-start: var(--spacing-xs);\n inline-size: var(--spacing-md);\n\n &:hover {\n background: rgba(255 255 255 / 30%);\n color: var(--text-color);\n }\n}\n",":root {\n --tooltip-max-width: 450px;\n}\n\n.tyk-tooltip {\n display: flex;\n align-items: center;\n background-color: var(--color-primary-light);\n border: 2px solid var(--color-primary-base);\n border-radius: var(--general-border-radius);\n max-inline-size: var(--tooltip-max-width);\n padding: var(--spacing-md);\n\n > .tyk-icon:first-child {\n inline-size: 32px;\n block-size: 32px;\n border-radius: 50%;\n color: white;\n background-color: var(--color-default-base-light);\n\n &::before {\n display: flex;\n inline-size: 100%;\n block-size: 100%;\n align-items: center;\n justify-content: center;\n }\n }\n\n > .tyk-icon + .tyk-tooltip__content {\n margin-inline-start: var(--spacing-md);\n }\n\n > .tyk-icon:last-child {\n cursor: pointer;\n }\n}\n\n.tyk-tooltip__content {\n color: var(--color-default-dark);\n word-break: break-word;\n word-wrap: break-word;\n\n + .tyk-icon {\n margin-inline-start: var(--spacing-md);\n }\n}\n",":root {\n --tyk-combobox-pill-background: #F0F0F0;\n --tyk-combobox-pill-color: var(--text-color);\n --tyk-combobox-list-item-hover-color: var(--form-default-color);\n --tyk-combobox-list-item-disabled-color: var(--form-default-color);\n}\n\n.tyk-combobox2 {\n --container-trigger-width: 40px;\n --values-default-height: 38px;\n\n outline: none;\n\n &.disabled {\n .tyk-form-control {\n border: var(--form-control-disabled-border) !important;\n background-color: var(--form-control-disabled-background-color);\n color: var(--form-control-disabled-color);\n cursor: not-allowed;\n }\n\n .tyk-combobox2__current-values .tyk-pill--combobox button {\n cursor: not-allowed;\n }\n\n &:not(.is-expand-mode) .tyk-combobox2__values-container-trigger {\n cursor: not-allowed;\n }\n\n .tyk-combobox2__entry-field {\n background-color: transparent;\n cursor: not-allowed;\n }\n }\n\n .tyk-form-control {\n display: flex;\n flex-direction: row;\n position: relative;\n min-block-size: 40px;\n block-size: auto;\n padding: 0;\n\n &:focus-within {\n outline: none;\n border: var(--form-control-border-focus);\n }\n }\n}\n\n.tyk-combobox2__current-values {\n display: flex;\n flex-grow: 1;\n flex-wrap: wrap;\n padding-block: 2px;\n padding-inline-start: var(--spacing-sm);\n max-inline-size: calc(100% - var(--container-trigger-width));\n\n &.expand-mode {\n max-block-size: 1000px;\n overflow: hidden;\n transition: max-block-size 1s ease;\n }\n\n .tyk-pill--combobox {\n margin-block: 3px;\n background-color: var(--tyk-combobox-pill-background);\n border-radius: var(--spacing-sm);\n color: var(--tyk-combobox-pill-color);\n padding-block: var(--spacing-xs);\n padding-inline: var(--spacing-sm);\n max-inline-size: 100%;\n max-block-size: 26px;\n\n button {\n background: none;\n border: none;\n cursor: pointer;\n inline-size: 23px;\n outline: none;\n\n + span {\n margin-inline-start: 0;\n }\n }\n\n span {\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n i {\n margin-inline-end: var(--spacing-xs);\n }\n }\n}\n\n.tyk-combobox2__current-values--collapsed.expand-mode {\n max-block-size: var(--values-default-height);\n transition: max-block-size .2s ease;\n}\n\n.tyk-combobox2__entry-field {\n border: none;\n line-height: 30px;\n\n &:focus,\n &:active {\n border: none;\n outline: none;\n }\n\n &::placeholder {\n color: var(--form-control-placeholder-color);\n font-family: var(--form-control-placeholder-font-family);\n }\n}\n\n.tyk-combobox2__text-value {\n font-family: var(--font-family-medium);\n font-size: var(--sm-font-size);\n padding-block: 9px;\n padding-inline: 5px;\n inline-size: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: 1;\n outline: none;\n\n &.overflow-single {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n &.is-placeholder {\n color: var(--form-control-placeholder-color);\n font-family: var(--form-control-placeholder-font-family);\n }\n}\n\n.tyk-combobox2__values-container-trigger {\n position: relative;\n flex-basis: var(--container-trigger-width);\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n outline: none;\n transition: all .2s;\n color: var(--text-color);\n\n .tyk-icon {\n block-size: 14px;\n }\n}\n\n.tyk-combobox2__values-container-trigger--expanded {\n transform: rotate(180deg);\n}\n\n.tyk-form-group--rounded-corners .tyk-combobox2-disabled-overlay {\n border-radius: calc(var(--general-border-radius) - 2px);\n}\n\n.tyk-combobox2__combobox-dropdown {\n display: flex;\n flex-direction: column;\n border: var(--general-border-width) solid var(--form-default-color);\n background-color: white;\n\n &.tyk-form-group--rounded-corners {\n border-radius: var(--general-border-radius);\n z-index: 1081;\n }\n\n .tyk-combobox2__combobox-search {\n background-color: white;\n position: sticky;\n inset-block-start: 0;\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-md);\n\n + .combobox-list {\n border-block-start: 1px solid var(--form-default-color);\n }\n }\n\n .tyk-combobox2__combobox-list {\n max-block-size: 255px;\n\n li {\n display: flex;\n cursor: pointer;\n padding-block: 9px;\n padding-inline: var(--spacing-md);\n transition: all .2s;\n font-family: var(--font-family-medium);\n\n &:hover,\n &.active {\n background-color: var(--tyk-combobox-list-item-hover-color);\n }\n\n &.disabled {\n color: var(--tyk-combobox-list-item-disabled-color);\n background-color: initial;\n }\n\n + li {\n border-block-start: 1px solid var(--form-default-color);\n }\n\n i {\n margin-inline-end: var(--spacing-xs);\n }\n\n .item-name {\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: 16px;\n }\n }\n }\n}\n",":root {\n --tyk-checkbox-theme-light-label-color: white;\n --tyk-checkbox-theme-light-label-disabled-color: white;\n --tyk-checkbox-theme-dark-label-color: var(--text-color);\n --tyk-checkbox-theme-dark-label-disabled-color: var(--text-color);\n}\n\n.tyk-checkbox {\n label {\n --label-indent: 20px;\n\n display: flex;\n align-items: flex-start;\n padding-inline-start: var(--label-indent);\n\n input {\n margin-inline-start: calc(-1 * var(--label-indent));\n margin-block-start: 5px;\n }\n }\n}\n\n.tyk-checkbox--theme-light {\n label {\n color: var(--tyk-checkbox-theme-light-label-color);\n }\n\n &.tyk-checkbox--is-disabled {\n label {\n color: var(--tyk-checkbox-theme-light-label-disabled-color);\n }\n }\n}\n\n.tyk-checkbox--is-disabled {\n label, p {\n cursor: not-allowed;\n opacity: 0.5;\n }\n}",".flatpickr-calendar{background:transparent;opacity:0;display:none;text-align:center;visibility:hidden;padding:0;-webkit-animation:none;animation:none;direction:ltr;border:0;font-size:14px;line-height:24px;border-radius:5px;position:absolute;width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-touch-action:manipulation;touch-action:manipulation;background:#fff;-webkit-box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,0.08);box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,0.08)}.flatpickr-calendar.open,.flatpickr-calendar.inline{opacity:1;max-height:640px;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{-webkit-animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1);animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{z-index:999;display:block}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){-webkit-box-shadow:none !important;box-shadow:none !important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){-webkit-box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-calendar .hasWeeks .dayContainer,.flatpickr-calendar .hasTime .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.hasTime .flatpickr-time{height:40px;border-top:1px solid #e6e6e6}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:before,.flatpickr-calendar:after{position:absolute;display:block;pointer-events:none;border:solid transparent;content:'';height:0;width:0;left:22px}.flatpickr-calendar.rightMost:before,.flatpickr-calendar.arrowRight:before,.flatpickr-calendar.rightMost:after,.flatpickr-calendar.arrowRight:after{left:auto;right:22px}.flatpickr-calendar.arrowCenter:before,.flatpickr-calendar.arrowCenter:after{left:50%;right:50%}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:before,.flatpickr-calendar.arrowTop:after{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:before,.flatpickr-calendar.arrowBottom:after{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{position:relative;display:inline-block}.flatpickr-months{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-months .flatpickr-month{background:transparent;color:rgba(0,0,0,0.9);fill:rgba(0,0,0,0.9);height:34px;line-height:1;text-align:center;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.flatpickr-months .flatpickr-prev-month,.flatpickr-months .flatpickr-next-month{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-decoration:none;cursor:pointer;position:absolute;top:0;height:34px;padding:10px;z-index:3;color:rgba(0,0,0,0.9);fill:rgba(0,0,0,0.9)}.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,.flatpickr-months .flatpickr-next-month.flatpickr-disabled{display:none}.flatpickr-months .flatpickr-prev-month i,.flatpickr-months .flatpickr-next-month i{position:relative}.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,.flatpickr-months .flatpickr-next-month.flatpickr-prev-month{/*\n /*rtl:begin:ignore*/left:0/*\n /*rtl:end:ignore*/}/*\n /*rtl:begin:ignore*/\n/*\n /*rtl:end:ignore*/\n.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,.flatpickr-months .flatpickr-next-month.flatpickr-next-month{/*\n /*rtl:begin:ignore*/right:0/*\n /*rtl:end:ignore*/}/*\n /*rtl:begin:ignore*/\n/*\n /*rtl:end:ignore*/\n.flatpickr-months .flatpickr-prev-month:hover,.flatpickr-months .flatpickr-next-month:hover{color:#959ea9}.flatpickr-months .flatpickr-prev-month:hover svg,.flatpickr-months .flatpickr-next-month:hover svg{fill:#f64747}.flatpickr-months .flatpickr-prev-month svg,.flatpickr-months .flatpickr-next-month svg{width:14px;height:14px}.flatpickr-months .flatpickr-prev-month svg path,.flatpickr-months .flatpickr-next-month svg path{-webkit-transition:fill .1s;transition:fill .1s;fill:inherit}.numInputWrapper{position:relative;height:auto}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper input::-webkit-outer-spin-button,.numInputWrapper input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none}.numInputWrapper span{position:absolute;right:0;width:14px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer;border:1px solid rgba(57,57,57,0.15);-webkit-box-sizing:border-box;box-sizing:border-box}.numInputWrapper span:hover{background:rgba(0,0,0,0.1)}.numInputWrapper span:active{background:rgba(0,0,0,0.2)}.numInputWrapper span:after{display:block;content:\"\";position:absolute}.numInputWrapper span.arrowUp{top:0;border-bottom:0}.numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid rgba(57,57,57,0.6);top:26%}.numInputWrapper span.arrowDown{top:50%}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(57,57,57,0.6);top:40%}.numInputWrapper span svg{width:inherit;height:auto}.numInputWrapper span svg path{fill:rgba(0,0,0,0.5)}.numInputWrapper:hover{background:rgba(0,0,0,0.05)}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{font-size:135%;line-height:inherit;font-weight:300;color:inherit;position:absolute;width:75%;left:12.5%;padding:7.48px 0 0 0;line-height:1;height:34px;display:inline-block;text-align:center;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.flatpickr-current-month span.cur-month{font-family:inherit;font-weight:700;color:inherit;display:inline-block;margin-left:.5ch;padding:0}.flatpickr-current-month span.cur-month:hover{background:rgba(0,0,0,0.05)}.flatpickr-current-month .numInputWrapper{width:6ch;width:7ch\\0;display:inline-block}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:rgba(0,0,0,0.9)}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:rgba(0,0,0,0.9)}.flatpickr-current-month input.cur-year{background:transparent;-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;cursor:text;padding:0 0 0 .5ch;margin:0;display:inline-block;font-size:inherit;font-family:inherit;font-weight:300;line-height:inherit;height:auto;border:0;border-radius:0;vertical-align:initial;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{font-size:100%;color:rgba(0,0,0,0.5);background:transparent;pointer-events:none}.flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;background:transparent;border:none;border-radius:0;box-sizing:border-box;color:inherit;cursor:pointer;font-size:inherit;font-family:inherit;font-weight:300;height:auto;line-height:inherit;margin:-1px 0 0 0;outline:none;padding:0 0 0 .5ch;position:relative;vertical-align:initial;-webkit-box-sizing:border-box;-webkit-appearance:menulist;-moz-appearance:menulist;width:auto}.flatpickr-current-month .flatpickr-monthDropdown-months:focus,.flatpickr-current-month .flatpickr-monthDropdown-months:active{outline:none}.flatpickr-current-month .flatpickr-monthDropdown-months:hover{background:rgba(0,0,0,0.05)}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:transparent;outline:none;padding:0}.flatpickr-weekdays{background:transparent;text-align:center;overflow:hidden;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:28px}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}span.flatpickr-weekday{cursor:default;font-size:90%;background:transparent;color:rgba(0,0,0,0.54);line-height:1;margin:0;text-align:center;display:block;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;font-weight:bolder}.dayContainer,.flatpickr-weeks{padding:1px 0 0 0}.flatpickr-days{position:relative;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;width:307.875px}.flatpickr-days:focus{outline:0}.dayContainer{padding:0;outline:0;text-align:left;width:307.875px;min-width:307.875px;max-width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;display:-ms-flexbox;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-wrap:wrap;-ms-flex-pack:justify;-webkit-justify-content:space-around;justify-content:space-around;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.dayContainer + .dayContainer{-webkit-box-shadow:-1px 0 0 #e6e6e6;box-shadow:-1px 0 0 #e6e6e6}.flatpickr-day{background:none;border:1px solid transparent;border-radius:150px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#393939;cursor:pointer;font-weight:400;width:14.2857143%;-webkit-flex-basis:14.2857143%;-ms-flex-preferred-size:14.2857143%;flex-basis:14.2857143%;max-width:39px;height:39px;line-height:39px;margin:0;display:inline-block;position:relative;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center}.flatpickr-day.inRange,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.today.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day:hover,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.nextMonthDay:hover,.flatpickr-day:focus,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.nextMonthDay:focus{cursor:pointer;outline:0;background:#e6e6e6;border-color:#e6e6e6}.flatpickr-day.today{border-color:#959ea9}.flatpickr-day.today:hover,.flatpickr-day.today:focus{border-color:#959ea9;background:#959ea9;color:#fff}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange,.flatpickr-day.selected.inRange,.flatpickr-day.startRange.inRange,.flatpickr-day.endRange.inRange,.flatpickr-day.selected:focus,.flatpickr-day.startRange:focus,.flatpickr-day.endRange:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange:hover,.flatpickr-day.endRange:hover,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.endRange.nextMonthDay{background:#569ff7;-webkit-box-shadow:none;box-shadow:none;color:#fff;border-color:#569ff7}.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange,.flatpickr-day.endRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange,.flatpickr-day.endRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)),.flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)){-webkit-box-shadow:-10px 0 0 #569ff7;box-shadow:-10px 0 0 #569ff7}.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange,.flatpickr-day.endRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;-webkit-box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.notAllowed.nextMonthDay{color:rgba(57,57,57,0.3);background:transparent;border-color:transparent;cursor:default}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{cursor:not-allowed;color:rgba(57,57,57,0.1)}.flatpickr-day.week.selected{border-radius:0;-webkit-box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7;box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{float:left}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;-webkit-box-shadow:1px 0 0 #e6e6e6;box-shadow:1px 0 0 #e6e6e6}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:rgba(57,57,57,0.3);background:transparent;cursor:default;border:none}.flatpickr-innerContainer{display:block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.flatpickr-rContainer{display:inline-block;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box}.flatpickr-time{text-align:center;outline:0;display:block;height:0;line-height:40px;max-height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-time:after{content:\"\";display:table;clear:both}.flatpickr-time .numInputWrapper{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;width:40%;height:40px;float:left}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#393939}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#393939}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{background:transparent;-webkit-box-shadow:none;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;color:#393939;font-size:14px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-time input.flatpickr-hour{font-weight:bold}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{outline:0;border:0}.flatpickr-time .flatpickr-time-separator,.flatpickr-time .flatpickr-am-pm{height:inherit;float:left;line-height:inherit;color:#393939;font-weight:bold;width:2%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.flatpickr-time .flatpickr-am-pm{outline:0;width:18%;cursor:pointer;text-align:center;font-weight:400}.flatpickr-time input:hover,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time .flatpickr-am-pm:focus{background:#eee}.flatpickr-input[readonly]{cursor:pointer}@-webkit-keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}","@import 'flatpickr/dist/flatpickr.min.css';\n\n.flatpickr-day.selected,\n.flatpickr-day.startRange,\n.flatpickr-day.endRange,\n.flatpickr-day.selected.inRange,\n.flatpickr-day.startRange.inRange,\n.flatpickr-day.endRange.inRange,\n.flatpickr-day.selected:focus,\n.flatpickr-day.startRange:focus,\n.flatpickr-day.endRange:focus,\n.flatpickr-day.selected:hover,\n.flatpickr-day.startRange:hover,\n.flatpickr-day.endRange:hover,\n.flatpickr-day.selected.prevMonthDay,\n.flatpickr-day.startRange.prevMonthDay,\n.flatpickr-day.endRange.prevMonthDay,\n.flatpickr-day.selected.nextMonthDay,\n.flatpickr-day.startRange.nextMonthDay,\n.flatpickr-day.endRange.nextMonthDay {\n background: var(--color-success-base) !important;\n border-color: var(--color-success-base) !important;\n}",":root {\n --tyk-dropdown-item-background: white;\n --tyk-dropdown-item-background-hover: var(--color-background-light);\n --tyk-dropdown-item-border-color: white;\n --tyk-dropdown-item-text-color: var(--text-color);\n --tyk-dropdown-item-hover-text-color: var(--text-color);\n}\n\n.tyk-dropdown {\n display: inline-block;\n\n + .tyk-button,\n + .tyk-dropdown,\n + .tyk-toggle {\n margin-inline-start: var(--spacing-sm)\n }\n\n label {\n display: block;\n }\n\n &.theme-list .tyk-button {\n background: white;\n border: var(--general-border-width) solid var(--color-default-base);\n border-radius: var(--general-border-radius);\n color: var(--text-color);\n\n &:hover,\n &:active,\n &:active:focus,\n &:focus {\n background: white;\n border-color: var(--color-background-dark);\n color: var(--text-color);\n }\n }\n}\n\n.tyk-dropdown--block {\n inset-inline: var(--spacing-md);\n}\n\n.tyk-dropdown--relative {\n inset-inline: auto;\n}\n\n.tyk-dropdown--custom {\n padding-block: var(--spacing-md);\n padding-inline: 25px;\n}\n\n.tyk-dropdown__trigger {\n position: relative;\n}\n\n.tyk-dropdown-menu {\n background: var(--tyk-dropdown-item-background);\n border: var(--general-border-width) solid var(--color-default-light);\n border-radius: var(--general-border-radius);\n filter: drop-shadow(1px 2px 1px rgba(0 0 0 / 10%));\n list-style-type: none;\n margin-inline: 0;\n margin-block: 3px 0;\n overflow: hidden;\n padding: 0;\n z-index: 1081;\n\n &.tyk-dropdown--scrollable {\n overflow: auto;\n }\n\n .tyk-panel {\n margin: 0;\n }\n\n &.opened {\n display: flex;\n flex-direction: column;\n position: absolute;\n }\n\n > li {\n background: var(--tyk-dropdown-item-background);\n border-block-end: 1px solid var(--tyk-dropdown-item-border-color);\n display: flex;\n position: relative;\n z-index: 7;\n\n &:last-child {\n border: none;\n }\n\n i {\n position: absolute;\n inset-inline-start: 7px;\n inset-block-start: 9px;\n }\n }\n}\n\n.tyk-dropdown-menu > li > a {\n cursor: pointer;\n color: var(--tyk-dropdown-item-text-color);\n display: flex;\n font-size: 12px;\n padding-block: 7px;\n padding-inline: 24px;\n text-transform: uppercase;\n text-decoration: none;\n inline-size: 100%;\n\n &:hover {\n color: var(--tyk-dropdown-item-hover-text-color);\n background-color: var(--tyk-dropdown-item-background-hover);\n text-decoration: none;\n }\n\n .badge {\n background: var(--text-color);\n color: white;\n font-size: var(--spacing-sm);\n margin-block-start: -4px;\n margin-inline-start: 6px;\n }\n}\n\n.tyk-dropdown--relative.opened {\n position: relative;\n}\n",".dropdown__menu {\n .tyk-list {\n background: white;\n max-block-size: none;\n\n li {\n padding: 0;\n\n &:hover {\n background: var(--primary-light);\n }\n\n a {\n cursor: pointer;\n display: block;\n padding-block: 10px;\n padding-inline: 20px;\n text-decoration: none;\n }\n }\n }\n}",".tyk-editable-list__submit-btn {\n white-space: nowrap;\n}\n\n.tyk-editable-list__form {\n align-items: center;\n display: flex;\n\n .tyk-form-group {\n margin-block-end: 0;\n }\n\n span.inline {\n margin-block-start: 0;\n }\n\n > span {\n margin-inline-start: var(--spacing-base);\n\n &.inline-with-label {\n align-self: flex-end;\n }\n }\n}\n\n.tyk-editable-list__form--sticked {\n margin-inline-start: 0;\n\n button {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n border-start-end-radius: 3px;\n border-end-end-radius: 3px;\n padding-block: var(--spacing-sm) 11px;\n padding-inline: var(--spacing-base);\n }\n}\n\n.tyk-editable-list__header {\n padding-block: var(--spacing-base);\n font-size: 11px;\n text-transform: uppercase;\n background-color: white;\n border-start-start-radius: var(--general-border-radius);\n border-start-end-radius: var(--general-border-radius);\n border: var(--general-border-width) solid var(--color-default-light);\n border-block-end: 1px solid var(--color-default-light) !important;\n color: var(--text-color) !important;\n font-family: var(--font-family-bold);\n margin-block-start: var(--spacing-sm);\n\n & + .tyk-editable-list-items.table {\n border-block-start: none;\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n }\n\n .tyk-row {\n margin: 0;\n }\n}\n\n.tyk-editable-list-items {\n overflow: hidden;\n list-style: none;\n padding-block: var(--spacing-md) 0;\n padding-inline: 0;\n\n .edit-mode-wrapper.table button {\n margin-block-start: 23px;\n }\n\n .tyk-row {\n margin: 0;\n }\n\n button[disabled] {\n cursor: not-allowed;\n }\n\n &.tyk-editable-list-items--inline {\n align-items: center;\n color: var(--text-color);\n display: flex;\n flex-wrap: wrap;\n }\n\n li {\n border-block-start: 1px solid var(--color-default-light);\n transition: all .2s linear;\n\n &.tyk-editable-list-item--inline {\n background-color: var(--color-default-light);\n border-radius: 25px;\n border: none;\n color: white;\n float: inline-start;\n font-family: var(--font-family-medium);\n margin-block-end: var(--spacing-sm);\n margin-inline-end: var(--spacing-base);\n padding-block: 0;\n padding-inline: var(--spacing-base);\n white-space: nowrap;\n\n .tyk-editable-list-item__text {\n color: var(--text-color);\n padding-block: var(--spacing-xs);\n padding-inline: 0;\n }\n\n .tyk-editable-list-action__button.on-edit {\n margin-block-start: 0;\n }\n }\n\n &:first-child {\n border-block-start: none;\n }\n\n .tyk-editable-list-item__text {\n display: flex;\n padding-block: var(--spacing-sm);\n padding-inline: 0;\n\n > span {\n flex-grow: 1;\n }\n\n > div:first-child {\n flex-grow: 1;\n\n .error-message {\n margin: 0;\n }\n }\n }\n\n .tyk-editable-list-items {\n overflow: hidden;\n padding-block-end: var(--spacing-sm);\n }\n\n .tyk-editable-list {\n border-block-start: var(--spacing-xs) solid var(--background-dark);\n background: var(--background-light);\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-base);\n }\n }\n\n .tyk-editable-list-item__text {\n display: block;\n word-wrap: break-word;\n word-break:break-all;\n }\n\n .tyk-editable-list-action__button {\n border: none;\n background: transparent;\n\n &.on-edit {\n margin-inline-start: var(--spacing-sm);\n }\n }\n\n .tyk-editable-list-item-controls {\n flex-grow: 0;\n text-align: end;\n }\n}\n\n.tyk-editable-list-item__controls {\n text-align: end;\n}\n\n.tyk-editable-list-items.table {\n background-color: white;\n border-radius: var(--general-border-radius);\n border: var(--general-border-width) solid var(--color-default-light);\n padding: 0 !important;\n\n li {\n border-color: var(--color-default-light);\n\n &:hover {\n background: var(--color-background-light);\n }\n }\n\n .tyk-editable-list-item__text {\n background: transparent;\n }\n\n .tyk-editable-list-action__button {\n border-radius: 6px;\n cursor: pointer;\n margin-inline-end: var(--spacing-sm);\n }\n}\n","/* stylelint-disable number-max-precision */\n\n.editable-list__header {\n align-items: center;\n display: flex;\n margin-block-end: 10px;\n\n .tyk-button {\n margin-inline-start: auto;\n }\n}\n\n.editable-list__wrapper.has-error .editable-list__list{\n border: var(--general-border-width) solid var(--color-danger-base);\n}\n\n.editable-list__list {\n border: var(--general-border-width) solid var(--color-default-light);\n border-radius: var(--general-border-radius);\n display: flex;\n flex-direction: column-reverse;\n}\n\n.editable-list__item {\n border-block-end: 1px solid var(--color-default-light);\n display: flex;\n flex-wrap: nowrap;\n inline-size: 100%;\n\n &:first-child {\n border-block-end: none;\n }\n}\n\n.editable-list__item-header {\n border-block-end: 1px solid var(--color-default-light);\n color: var(--text-color);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n font-family: var(--font-family-bold);\n text-transform: uppercase;\n\n .editable-list__item-cell {\n padding: 10px;\n }\n}\n\n.editable-list__item-cell {\n border-inline-start: 1px solid var(--color-default-light);\n overflow: hidden;\n padding-block: 0;\n padding-inline: 10px;\n\n .tyk-form-control--readonly {\n overflow: hidden;\n text-overflow: ellipsis;\n word-break: break-all;\n }\n\n &:first-child {\n border-inline-start: none;\n padding-inline-start: 15px;\n }\n\n &:last-child {\n padding-inline-end: 15px;\n }\n\n .tyk-form-group {\n margin-block: 10px;\n margin-inline: 0;\n inline-size: 100%;\n }\n}\n\n.editable-list__item--size-1 {\n display: flex;\n flex-grow: 2;\n inline-size: 8.3333333333%;\n}\n\n.editable-list__item--size-2 {\n display: flex;\n flex-grow: 3;\n inline-size: 16.6666666667%;\n}\n\n.editable-list__item--size-3 {\n display: flex;\n flex-grow: 4;\n inline-size: 25%;\n}\n\n.editable-list__item--size-4 {\n display: flex;\n flex-grow: 5;\n inline-size: 33.3333333333%;\n}\n\n.editable-list__item--size-5 {\n display: flex;\n flex-grow: 6;\n inline-size: 41.6666666667%;\n}\n\n.editable-list__item--size-6 {\n display: flex;\n flex-grow: 7;\n inline-size: 50%;\n}\n\n.editable-list__item--size-7 {\n display: flex;\n flex-grow: 8;\n inline-size: 58.3333333333%;\n}\n\n.editable-list__item--size-8 {\n display: flex;\n flex-grow: 9;\n inline-size: 66.6666666667%;\n}\n\n.editable-list__item--size-9 {\n display: flex;\n flex-grow: 10;\n inline-size: 75%;\n}\n\n.editable-list__item--size-10 {\n display: flex;\n flex-grow: 11;\n inline-size: 83.3333333333%;\n}\n\n.editable-list__item--size-11 {\n display: flex;\n flex-grow: 12;\n inline-size: 91.6666666667%;\n}\n\n.editable-list__item--size-12 {\n display: flex;\n flex-grow: 13;\n inline-size: 100%;\n}\n\n.editable-list__item--size-fit {\n inline-size: fit-content;\n}\n\n.editable-list__item-action {\n align-items: flex-start;\n display: flex;\n justify-content: center;\n inline-size: 100px;\n\n .tyk-button {\n margin-block-start: 20px;\n }\n}\n\n.editable-list__item-action--read-only {\n color: var(--color-default-light);\n align-items: center;\n\n .tyk-button {\n margin-block-start: 0;\n }\n}",".tyk-file-input__wrapper {\n position: relative;\n\n > input {\n padding-block: 6px;\n padding-inline: var(--spacing-md);\n }\n\n > button {\n background: none;\n border: none;\n cursor: pointer;\n position: absolute;\n inset-inline-end: var(--spacing-base);\n inset-block-start: 9px;\n }\n}\n",".tyk-multiselect {\n align-items: flex-start;\n border-radius: var(--general-border-radius);\n flex-wrap: wrap;\n display: flex;\n margin-block-end: var(--spacing-md);\n inline-size: 100%;\n\n /* FALLBACK FOR ANGULAR COMPONENTS */\n .input-group .input-group-addon + .form-control {\n border-width: 1px !important;\n border-inline-start: none !important;\n border-start-start-radius: 0 !important;\n border-start-end-radius: 0 !important;\n border-end-start-radius: 0 !important;\n border-end-end-radius: 0 !important;\n }\n\n .input-group .input-group-addon {\n background: transparent !important;\n border-width: 1px !important;\n border-inline-end: 0 !important;\n border-start-start-radius: 0 !important;\n border-start-end-radius: 0 !important;\n border-end-start-radius: 0 !important;\n border-end-end-radius: 0 !important;\n }\n\n /* END FALLBACK FOR ANGULAR COMPONENTS */\n\n &.has-error {\n border: var(--general-border-width) solid var(--color-danger-base);\n }\n\n .tyk-form-group {\n margin: 0;\n }\n\n .tyk-multiselect-item__controls {\n display: flex;\n margin-inline-start: auto;\n flex-wrap: nowrap;\n\n .tyk-button {\n color: var(--text-color);\n margin-inline-start: var(--spacing-xs);\n\n &:last-child {\n margin-inline-start: 0;\n }\n }\n }\n}\n\n.tyk-multiselect__header {\n background-color: var(--color-default-base);\n border-start-start-radius: var(--general-border-radius);\n border-start-end-radius: var(--general-border-radius);\n color: white;\n display: flex;\n inline-size: 100%;\n\n > div {\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-base);\n inline-size: 50%;\n }\n}\n\n.tyk-multiselect__panel-wrapper {\n border: var(--form-control-border);\n border-block-start: none;\n border-end-start-radius: var(--general-border-radius);\n border-end-end-radius: var(--general-border-radius);\n display: flex;\n flex: 1;\n block-size: 265px;\n inline-size: 100%;\n}\n\n.tyk-multiselect__panel {\n display: flex;\n flex-direction: column;\n margin-block: 0;\n margin-inline: -1px 0;\n position: relative;\n inline-size: calc(50% + 1px);\n\n &:last-child {\n border-inline-start: var(--form-control-border);\n\n .tyk-form-group {\n margin-inline-start: -1px;\n inline-size: calc(100% + 2px);\n }\n }\n\n .tyk-message {\n margin-block: var(--spacing-md) 0;\n margin-inline: var(--spacing-md);\n }\n}\n\n.tyk-multiselect__list {\n list-style-type: none;\n margin: 0;\n padding: 0;\n\n > li {\n border-block-end: var(--form-control-border);\n display: flex;\n flex-direction: column;\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-base);\n\n > div {\n align-items: start;\n display: flex;\n inline-size: 100%;\n }\n\n .loading {\n justify-content: center;\n }\n\n &:last-child {\n border-block-end: none;\n }\n }\n}\n\n.tyk-multiselect__list--scroll {\n block-size: 100%;\n overflow-y: auto;\n}\n\n.tyk-multiselect-item__name {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n",":root {\n --pagination-border-radius: var(--general-border-radius);\n --pagination-button-padding: var(--spacing-sm) var(--spacing-base);\n}\n\n.tyk-pagination {\n display: flex;\n list-style-type: none;\n margin-block: var(--spacing-sm);\n margin-inline: 0;\n padding: 0;\n\n li {\n align-items: center;\n display: flex;\n }\n\n li:first-child button {\n border-start-start-radius: var(--pagination-border-radius);\n border-end-start-radius: var(--pagination-border-radius);\n }\n\n li:last-child button {\n border-start-end-radius: var(--pagination-border-radius);\n border-end-end-radius: var(--pagination-border-radius);\n }\n\n span {\n margin-block: 0;\n margin-inline: var(--spacing-sm);\n }\n\n button {\n background: white;\n border: none;\n font-size: var(--sm-font-size);\n font-family: var(--font-family-bold);\n cursor: pointer;\n color: var(--color-default-base);\n margin-inline-start: -1px;\n padding: var(--pagination-button-padding);\n\n &:hover {\n background-color: var(--color-success-light);\n }\n }\n\n .active button {\n background-color: var(--color-success-base);\n color: white;\n }\n}\n",":root {\n --radio-description-text-padding: 0 0 0 20px;\n}\n\n.tyk-radio {\n label {\n align-items: center;\n display: flex;\n }\n}\n\n.tyk-radio--is-disabled {\n label, p {\n cursor: not-allowed;\n opacity: 0.5;\n }\n}\n\n.tyk-radio__description-text {\n padding: var(--radio-description-text-padding);\n}",".tyk-select {\n background: transparent url('./images/arrow_down.svg') no-repeat calc(100% - 15px) center;\n background-size: var(--spacing-base) var(--spacing-base);\n}",".tyk-selectable-list {\n margin-block-end: var(--spacing-md);\n inline-size: 100%;\n\n li:not(.tyk-selectable-list__no-items-message) {\n font-family: var(--font-family-medium);\n padding: 0;\n\n .tyk-message {\n margin-block-end: 0;\n }\n\n label {\n font-family: var(--font-family-medium);\n margin: 0;\n }\n\n > label {\n align-items: center;\n cursor: pointer;\n display: flex;\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-md);\n\n input[type=\"checkbox\"] {\n margin-inline-start: auto;\n }\n }\n }\n}\n\n.tyk-selectable-list__item--with-icon {\n & input[type=\"checkbox\"] {\n visibility: hidden;\n }\n}\n","textarea.tyk-form-control {\n block-size: auto;\n}\n",":root {\n --toggle-font-family: var(--font-family-bold);\n --toggle-list-background-color: var(--color-background-light);\n --toggle-list-text-color: white;\n --toggle-list-background-color-on-dark: white;\n --toggle-list-text-color-on-dark: var(--text-color);\n --toggle-top: 4px;\n --toggle-bottom: 4px;\n --toggle-label-font-size: var(--sm-font-size);\n --toggle-label-font-family: var(--font-family-medium);\n --toggle-label-color: var(--label-color);\n --toggle-padding: 0;\n}\n\n.tyk-toggle {\n display: inline-flex;\n flex-wrap: wrap;\n font-family: var(--toggle-font-family);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n white-space: nowrap;\n\n &.block {\n margin-block-end: var(--spacing-md);\n inline-size: 100%;\n\n + .tyk-toggle {\n margin-inline-start: 0;\n }\n }\n\n &.inline-label {\n align-items: center;\n flex-wrap: nowrap;\n }\n\n + .tyk-button,\n + .tyk-dropdown,\n + .tyk-toggle {\n margin-inline-start: var(--spacing-sm)\n }\n}\n\n.tyk-toggle__list--has-error {\n border: var(--error-border);\n}\n\n.tyk-toggle .tyk-toggle__label {\n display: block;\n font-family: var(--toggle-label-font-family);\n font-size: var(--toggle-label-font-size);\n padding: var(--toggle-padding);\n inline-size: 100%;\n color: var(--toggle-label-color);\n}\n\n.tyk-toggle.inline-label .tyk-toggle__label {\n margin-inline-end: var(--spacing-sm);\n inline-size: auto;\n}\n\n.tyk-toggle--disabled-true {\n cursor: not-allowed;\n opacity: 0.7;\n}\n\n.tyk-toggle--column {\n .tyk-toggle__list--separated {\n display: flex;\n flex-direction: column;\n margin-inline-end: var(--spacing-md);\n\n .tyk-toggle__item {\n background-color: var(--toggle-list-background-color);\n margin-inline-end: auto;\n }\n }\n}\n\n.tyk-toggle__list {\n background: var(--toggle-list-background-color);\n border-radius: 25px;\n display: flex;\n list-style-type: none;\n margin: 0;\n padding: 0;\n position: relative;\n}\n\n.tyk-toggle__list--separated {\n background: transparent;\n flex-wrap: wrap;\n}\n\n.tyk-toggle--on-dark .tyk-toggle__list {\n background: var(--toggle-list-background-color-on-dark);\n}\n\n.tyk-toggle--default .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--default .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--default .tyk-toggle__list--separated .tyk-toggle__item--active {\n background-color: var(--button-default-color);\n color: white;\n border: var(--general-border-width) solid transparent;\n\n &:hover {\n background-color: var(--button-default-color);\n color: white;\n }\n\n span {\n color: white;\n }\n}\n\n.tyk-toggle--primary .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--primary .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--primary .tyk-toggle__list--separated .tyk-toggle__item--active {\n background-color: var(--color-primary-base);\n color: white;\n border: var(--general-border-width) solid transparent;\n\n &:hover {\n background-color: var(--color-primary-base);\n color: white;\n }\n\n span {\n color: white;\n }\n}\n\n.tyk-toggle--success .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--success .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--success .tyk-toggle__list--separated .tyk-toggle__item--active {\n background-color: var(--color-success-dark);\n color: white;\n border: var(--general-border-width) solid transparent;\n\n &:hover {\n background-color: var(--color-success-dark);\n color: white;\n }\n\n span {\n color: white;\n }\n}\n\n.tyk-toggle--danger .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--danger .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--danger .tyk-toggle__list--separated .tyk-toggle__item--active {\n background-color: var(--color-danger-base);\n color: white;\n border: var(--general-border-width) solid transparent;\n\n &:hover {\n background-color: var(--color-danger-base);\n color: white;\n }\n}\n\n.tyk-toggle--warning .tyk-toggle__item--active span {\n color: var(--text-color);\n}\n\n.tyk-toggle--warning .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--warning .tyk-toggle__list--separated .tyk-toggle__item--active {\n background-color: var(--color-warning-base);\n color: var(--text-color);\n border: var(--general-border-width) solid transparent;\n\n &:hover {\n background-color: var(--color-warning-base);\n color: var(--text-color);\n }\n}\n\n\n.tyk-toggle--primary-gradient .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--primary-gradient .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--primary-gradient .tyk-toggle__list--separated .tyk-toggle__item--active {\n border-image: linear-gradient(to right, var(--color-primary-base), var(--color-primary-dark), var(--color-primary-base)) 0 round;\n background: transparent linear-gradient(to right, var(--color-primary-base), var(--color-primary-dark), var(--color-primary-base));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: white;\n\n span {\n color: white;\n }\n}\n\n.tyk-toggle--success-gradient .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--success-gradient .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--success-gradient .tyk-toggle__list--separated .tyk-toggle__item--active {\n border-image: linear-gradient(to right, var(--color-success-base), var(--color-success-dark), var(--color-success-base)) 0 round;\n background: transparent linear-gradient(to right, var(--color-success-base), var(--color-success-dark), var(--color-success-base));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: white;\n\n span {\n color: white;\n }\n}\n\n\n.tyk-toggle--danger-gradient .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--danger-gradient .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--danger-gradient .tyk-toggle__list--separated .tyk-toggle__item--active {\n border-image: linear-gradient(to right, var(--color-danger-base), var(--color-danger-dark), var(--color-danger-base)) 0 round;\n background: transparent linear-gradient(to right, var(--color-danger-base), var(--color-danger-dark), var(--color-danger-base));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: white;\n\n span {\n color: white;\n }\n}\n\n\n.tyk-toggle--warning-gradient .tyk-toggle__item--active span {\n color: white;\n}\n\n.tyk-toggle--warning-gradient .tyk-toggle__list--single .tyk-toggle__item--active,\n.tyk-toggle--warning-gradient .tyk-toggle__list--separated .tyk-toggle__item--active {\n border-image: linear-gradient(to right, var(--color-warning-light), var(--color-warning-base), var(--color-warning-light)) 0 round;\n background: transparent linear-gradient(to right, var(--color-warning-light), var(--color-warning-base), var(--color-warning-light));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: var(--text-color);\n\n span {\n color: white;\n }\n}\n\n.tyk-toggle__item {\n color: var(--toggle-list-text-color);\n text-transform: uppercase;\n z-index: 2;\n border: 2px solid transparent;\n\n &:first-child {\n border-start-start-radius: 25px;\n border-end-start-radius: 25px;\n }\n\n &:last-child {\n border-start-end-radius: 25px;\n border-end-end-radius: 25px;\n }\n\n .tyk-toggle__list--separated & {\n border-radius: 25px;\n margin-block: var(--spacing-xs);\n margin-inline-end: var(--spacing-sm);\n\n &:last-child {\n margin-inline-end: 0;\n }\n }\n\n input {\n display: none;\n }\n\n label {\n cursor: pointer;\n font-family: var(--toggle-font-family);\n position: relative;\n margin: 0;\n transition: all .2s ease;\n\n .tyk-toggle__list--single & {\n padding-inline-start: 45px;\n }\n }\n}\n\n.tyk-toggle__list--single .tyk-toggle__item--active {\n label {\n padding-inline-start: 25px;\n padding-inline-end: 45px;\n\n .tyk-toggle__item-notch {\n inset-inline-start: calc(100% - 35px);\n }\n }\n}\n\n.tyk-toggle--on-dark .tyk-toggle__item:not(.tyk-toggle__item--active) {\n color: var(--toggle-list-text-color-on-dark);\n}\n\n.tyk-toggle--on-dark .tyk-toggle__item-notch--single {\n background: var(--color-background-light);\n}\n\n.tyk-toggle--sm label {\n padding-block: calc(var(--padding-y-button-sm) + 2px);\n padding-inline: calc(var(--padding-x-button-sm) + 2px);\n font-size: var(--xs-font-size);\n line-height: var(--xs-line-height);\n border-radius: var(--button-border-radius);\n}\n\n.tyk-toggle--sm .tyk-toggle__list--single label {\n padding-inline-start: 35px;\n}\n\n.tyk-toggle--sm .tyk-toggle__list--single .tyk-toggle__item--active label {\n padding-inline-start: 17px;\n padding-inline-end: 35px;\n\n .tyk-toggle__item-notch {\n inset-inline-start: calc(100% - 27px);\n }\n}\n\n.tyk-toggle--md label {\n padding-block: calc(var(--padding-y-button-md) + 2px);\n padding-inline: calc(var(--padding-x-button-md) + 2px);\n font-size: var(--sm-font-size);\n line-height: var(--line-height-button-sm);\n border-radius: var(--button-border-radius);\n}\n\n.tyk-toggle--lg label {\n padding-block: calc(var(--padding-y-button-lg) + 2px);\n padding-inline: calc(var(--padding-x-button-lg) + 2px);\n font-size: var(--sm-font-size);\n line-height: var(--line-height-button-sm);\n border-radius: var(--button-border-radius);\n}\n\n.tyk-toggle--lg .tyk-toggle__list--single label {\n padding-inline-start: 45px;\n}\n\n.tyk-toggle--lg .tyk-toggle__list--single .tyk-toggle__item--active label {\n padding-inline-start: 25px;\n padding-inline-end: 45px;\n\n .tyk-toggle__item-notch {\n inset-inline-start: calc(100% - 43px);\n }\n}\n\n.tyk-toggle__item-notch {\n border-radius: 25px;\n inset-block: 2px;\n position: absolute;\n transition: all .2s ease;\n}\n\n.tyk-toggle__item-notch--single {\n background: white;\n inset-inline-start: 2px;\n inline-size: 32px;\n}\n\n.tyk-toggle--sm .tyk-toggle__item-notch--single {\n inline-size: 24px;\n}\n\n.tyk-toggle--lg .tyk-toggle__item-notch--single {\n inline-size: 40px;\n}\n\n.tyk-toggle__notch {\n border-radius: 25px;\n inset-inline-start: 0;\n position: absolute;\n inset-block-start: var(--toggle-top);\n inset-block-end: var(--toggle-bottom);\n transition: all .2s ease;\n inline-size: 100px;\n z-index: 1;\n}\n\n.tyk-toggle--default .tyk-toggle__notch {\n --toggle-notch-background: var(--button-default-color);\n --toggle-notch-border: transparent;\n --toggle-notch-color: white;\n --toggle-notch-hover-background: var(--button-default-color);\n --toggle-notch-hover-color: white;\n}\n\n.tyk-toggle--primary .tyk-toggle__notch {\n --toggle-notch-background: var(--primary-base);\n --toggle-notch-border: transparent;\n --toggle-notch-color: white;\n --toggle-notch-hover-background: var(--primary-base);\n --toggle-notch-hover-color: white;\n}\n\n.tyk-toggle--success .tyk-toggle__notch {\n --toggle-notch-background: var(--success-base);\n --toggle-notch-border: transparent;\n --toggle-notch-color: white;\n --toggle-notch-hover-background: var(--success-base);\n --toggle-notch-hover-color: white;\n}\n\n.tyk-toggle--danger .tyk-toggle__notch {\n --toggle-notch-background: var(--color-danger-base);\n --toggle-notch-border: transparent;\n --toggle-notch-color: white;\n --toggle-notch-hover-background: var(--color-danger-base);\n --toggle-notch-hover-color: white;\n}\n\n.tyk-toggle--warning .tyk-toggle__notch {\n --toggle-notch-background: var(--color-warning-base);\n --toggle-notch-border: transparent;\n --toggle-notch-color: var(--text-color);\n --toggle-notch-hover-background: var(--color-warning-base);\n --toggle-notch-hover-color: var(--text-color);\n}\n\n.tyk-toggle--default .tyk-toggle__notch,\n.tyk-toggle--primary .tyk-toggle__notch,\n.tyk-toggle--success .tyk-toggle__notch,\n.tyk-toggle--danger .tyk-toggle__notch,\n.tyk-toggle--warning .tyk-toggle__notch {\n background-color: var(--toggle-notch-background);\n color: var(--toggle-notch-color);\n border: var(--general-border-width) solid var(--toggle-notch-border);\n\n &:hover {\n background-color: var(--toggle-notch-hover-background);\n color: var(--toggle-notch-hover-color);\n }\n}\n\n.tyk-toggle--primary-gradient .tyk-toggle__notch {\n --toggle-notch-gradient-left-color: var(--color-primary-base);\n --toggle-notch-gradient-right-color: var(--color-primary-dark);\n --toggle-notch-gradient-color: white;\n}\n\n.tyk-toggle--success-gradient .tyk-toggle__notch {\n --toggle-notch-gradient-left-color: var(--color-success-base);\n --toggle-notch-gradient-right-color: var(--color-success-dark);\n --toggle-notch-gradient-color: white;\n}\n\n.tyk-toggle--danger-gradient .tyk-toggle__notch {\n --toggle-notch-gradient-left-color: var(--color-danger-base);\n --toggle-notch-gradient-right-color: var(--color-danger-dark);\n --toggle-notch-gradient-color: white;\n}\n\n.tyk-toggle--warning-gradient .tyk-toggle__notch {\n --toggle-notch-gradient-left-color: var(--color-warning-light);\n --toggle-notch-gradient-right-color: var(--color-warning-base);\n --toggle-notch-gradient-color: var(--text-color);\n}\n\n.tyk-toggle--primary-gradient .tyk-toggle__notch,\n.tyk-toggle--success-gradient .tyk-toggle__notch,\n.tyk-toggle--danger-gradient .tyk-toggle__notch,\n.tyk-toggle--warning-gradient .tyk-toggle__notch {\n border-image: linear-gradient(to right, var(--toggle-notch-gradient-left-color), var(--toggle-notch-gradient-right-color), var(--toggle-notch-gradient-left-color)) 0 round;\n background: transparent linear-gradient(to right, var(--toggle-notch-gradient-left-color), var(--toggle-notch-gradient-right-color), var(--toggle-notch-gradient-left-color));\n background-origin: border-box;\n background-clip: border-box;\n background-size: 200% auto;\n background-position: 0 0;\n color: var(--toggle-notch-gradient-color);\n}\n\n.empty-toggle {\n padding: 1px;\n}","* {\n box-sizing: border-box;\n}\n\nbody {\n background-color: var(--color-background-base);\n color: var(--text-color);\n font-size: var(--sm-font-size);\n line-height: var(--sm-line-height);\n font-family: var(--font-family-regular);\n}\n\n.tyk-main-wrapper {\n display: flex;\n flex-wrap: nowrap;\n}\n\n.tyk-main-content-wrapper {\n flex: 1;\n}\n\n.well {\n background: transparent;\n border: var(--general-border-width) solid var(--color-default-light);\n border-radius: var(--general-border-radius);\n box-shadow: none;\n\n &.has-error {\n border-color: var(--color-danger-base);\n }\n}\n",".title-medium {\n font-family: var(--font-family-medium);\n color: var(--label-color);\n font-size: var(--title-medium-font-size);\n}",".right-align {\n text-align: end !important;\n}\n\n.left-align {\n text-align: start !important;\n}\n\n.center-align {\n text-align: center !important;\n}\n\n.left {\n float: inline-start !important;\n}\n\n.right {\n float: inline-end !important;\n}\n\n.hide {\n display: none !important;\n}\n\n.no-margin {\n margin: 0 !important;\n}\n\n.no-margin-bottom {\n margin-block-end: 0 !important;\n}\n\n.no-margin-top {\n margin-block-start: 0 !important;\n}\n\n.no-margin-right {\n margin-inline-end: 0 !important;\n}\n\n.no-margin-left {\n margin-inline-start: 0 !important;\n}\n\n.disabled-section {\n color: var(--color-default-light);\n}\n\n.top-buffer-large {\n margin-block-start: var(--top-buffer-large) !important;\n}\n\n.top-buffer-small {\n margin-block-start: var(--top-buffer-small) !important;\n}\n\n.top-buffer-medium {\n margin-block-start: var(--top-buffer-medium) !important;\n}\n\n.bottom-buffer-large {\n margin-block-end: var(--bottom-buffer-large) !important;\n}\n\n.bottom-buffer-small {\n margin-block-end: var(--bottom-buffer-small) !important;\n}\n\n.bottom-buffer-medium {\n margin-block-end: var(--bottom-buffer-medium) !important;\n}\n\n.right-buffer-large {\n margin-inline-end: var(--right-buffer-large) !important;\n}\n\n.right-buffer-small {\n margin-inline-end: var(--right-buffer-small) !important;\n}\n\n.right-buffer-medium {\n margin-inline-end: var(--right-buffer-medium) !important;\n}\n\n.left-buffer-large {\n margin-inline-start: var(--left-buffer-large) !important;\n}\n\n.left-buffer-small {\n margin-inline-start: var(--left-buffer-small) !important;\n}\n\n.left-buffer-medium {\n margin-inline-start: var(--left-buffer-medium) !important;\n}\n\n.word-wrap {\n word-wrap: break-word;\n word-break: break-all;\n}\n\n.clear-left {\n clear: inline-start;\n}\n\n.flex-container {\n display: flex;\n}\n\n.vertical-center-align {\n align-items: center;\n}\n\n\n.right-align-controls {\n align-items: center;\n display: flex;\n margin-inline-start: auto;\n}\n\n.inline-label {\n margin-inline-end: 15px;\n}\n\n.nowrap {\n white-space: nowrap;\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/lib/tyk-ui.js b/lib/tyk-ui.js index 6b83a7ef..68c21097 100644 --- a/lib/tyk-ui.js +++ b/lib/tyk-ui.js @@ -1,3 +1,3 @@ /*! For license information please see tyk-ui.js.LICENSE.txt */ -(()=>{var e={239:(e,t,n)=>{e=n.nmd(e),function(){var e=function(){return this}();e||"undefined"==typeof window||(e=window);var t=function(e,n,o){"string"==typeof e?(2==arguments.length&&(o=n),t.modules[e]||(t.payloads[e]=o,t.modules[e]=null)):t.original?t.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace())};t.modules={},t.payloads={};var n,o,i=function(e,t,n){if("string"==typeof t){var o=a(e,t);if(null!=o)return n&&n(),o}else if("[object Array]"===Object.prototype.toString.call(t)){for(var i=[],s=0,l=t.length;sn.length)&&(t=n.length),t-=e.length;var o=n.indexOf(e,t);return-1!==o&&o===t})),String.prototype.repeat||o(String.prototype,"repeat",(function(e){for(var t="",n=this;e>0;)1&e&&(t+=n),(e>>=1)&&(n+=n);return t})),String.prototype.includes||o(String.prototype,"includes",(function(e,t){return-1!=this.indexOf(e,t)})),Object.assign||(Object.assign=function(e){if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),n=1;n>>0,o=0|arguments[1],i=o<0?Math.max(n+o,0):Math.min(o,n),r=arguments[2],s=void 0===r?n:0|r,a=s<0?Math.max(n+s,0):Math.min(s,n);i0;)1&t&&(n+=e),(t>>=1)&&(e+=e);return n};var o=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(o,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){for(var t=[],n=0,o=e.length;n65535?2:1}})),ace.define("ace/lib/useragent",["require","exports","module"],(function(e,t,n){"use strict";t.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},t.getOS=function(){return t.isMac?t.OS.MAC:t.isLinux?t.OS.LINUX:t.OS.WINDOWS};var o="object"==typeof navigator?navigator:{},i=(/mac|win|linux/i.exec(o.platform)||["other"])[0].toLowerCase(),r=o.userAgent||"",s=o.appName||"";t.isWin="win"==i,t.isMac="mac"==i,t.isLinux="linux"==i,t.isIE="Microsoft Internet Explorer"==s||s.indexOf("MSAppHost")>=0?parseFloat((r.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((r.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=r.match(/ Gecko\/\d+/),t.isOpera="object"==typeof opera&&"[object Opera]"==Object.prototype.toString.call(window.opera),t.isWebKit=parseFloat(r.split("WebKit/")[1])||void 0,t.isChrome=parseFloat(r.split(" Chrome/")[1])||void 0,t.isSafari=parseFloat(r.split(" Safari/")[1])&&!t.isChrome||void 0,t.isEdge=parseFloat(r.split(" Edge/")[1])||void 0,t.isAIR=r.indexOf("AdobeAIR")>=0,t.isAndroid=r.indexOf("Android")>=0,t.isChromeOS=r.indexOf(" CrOS ")>=0,t.isIOS=/iPad|iPhone|iPod/.test(r)&&!window.MSStream,t.isIOS&&(t.isMac=!0),t.isMobile=t.isIOS||t.isAndroid})),ace.define("ace/lib/dom",["require","exports","module","ace/lib/useragent"],(function(e,t,n){"use strict";var o,i=e("./useragent");t.buildDom=function e(t,n,o){if("string"==typeof t&&t){var i=document.createTextNode(t);return n&&n.appendChild(i),i}if(!Array.isArray(t))return t&&t.appendChild&&n&&n.appendChild(t),t;if("string"!=typeof t[0]||!t[0]){for(var r=[],s=0;s=1.5,i.isChromeOS&&(t.HI_DPI=!1),"undefined"!=typeof document){var l=document.createElement("div");t.HI_DPI&&void 0!==l.style.transform&&(t.HAS_CSS_TRANSFORMS=!0),i.isEdge||void 0===l.style.animationName||(t.HAS_CSS_ANIMATION=!0),l=null}t.HAS_CSS_TRANSFORMS?t.translate=function(e,t,n){e.style.transform="translate("+Math.round(t)+"px, "+Math.round(n)+"px)"}:t.translate=function(e,t,n){e.style.top=Math.round(n)+"px",e.style.left=Math.round(t)+"px"}})),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("./dom");t.get=function(e,t){var n=new XMLHttpRequest;n.open("GET",e,!0),n.onreadystatechange=function(){4===n.readyState&&t(n.responseText)},n.send(null)},t.loadScript=function(e,t){var n=o.getDocumentHead(),i=document.createElement("script");i.src=e,n.appendChild(i),i.onload=i.onreadystatechange=function(e,n){!n&&i.readyState&&"loaded"!=i.readyState&&"complete"!=i.readyState||(i=i.onload=i.onreadystatechange=null,n||t())}},t.qualifyURL=function(e){var t=document.createElement("a");return t.href=e,t.href}})),ace.define("ace/lib/oop",["require","exports","module"],(function(e,t,n){"use strict";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}})),ace.define("ace/lib/event_emitter",["require","exports","module"],(function(e,t,n){"use strict";var o={},i=function(){this.propagationStopped=!0},r=function(){this.defaultPrevented=!0};o._emit=o._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],o=this._defaultHandlers[e];if(n.length||o){"object"==typeof t&&t||(t={}),t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=r),n=n.slice();for(var s=0;s1&&(i=n[n.length-2]);var s=l[t+"Path"];return null==s?s=l.basePath:"/"==o&&(t=o=""),s&&"/"!=s.slice(-1)&&(s+="/"),s+t+o+i+this.get("suffix")},t.setModuleUrl=function(e,t){return l.$moduleUrls[e]=t},t.setLoader=function(e){a=e},t.dynamicModules=Object.create(null),t.$loading={},t.$loaded={},t.loadModule=function(n,o){var r,s;Array.isArray(n)&&(s=n[0],n=n[1]);var l=function(r){if(r&&!t.$loading[n])return o&&o(r);if(t.$loading[n]||(t.$loading[n]=[]),t.$loading[n].push(o),!(t.$loading[n].length>1)){var l=function(){!function(t,n){"ace/theme/textmate"===t||"./theme/textmate"===t?n(0,e("./theme/textmate")):a?a(t,n):console.error("loader is not configured")}(n,(function(e,o){o&&(t.$loaded[n]=o),t._emit("load.module",{name:n,module:o});var i=t.$loading[n];t.$loading[n]=null,i.forEach((function(e){e&&e(o)}))}))};if(!t.get("packaged"))return l();i.loadScript(t.moduleUrl(n,s),l),c()}};if(t.dynamicModules[n])t.dynamicModules[n]().then((function(e){e.default?l(e.default):l(e)}));else{try{r=this.$require(n)}catch(e){}l(r||t.$loaded[n])}},t.$require=function(e){if("function"==typeof n.require)return n.require(e)},t.setModuleLoader=function(e,n){t.dynamicModules[e]=n};var c=function(){l.basePath||l.workerPath||l.modePath||l.themePath||Object.keys(l.$moduleUrls).length||(console.error("Unable to infer path to ace from script src,","use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes","or with webpack use ace/webpack-resolver"),c=function(){})};t.version="1.32.0"})),ace.define("ace/loader_build",["require","exports","module","ace/lib/fixoldbrowsers","ace/config"],(function(e,t,o){"use strict";e("./lib/fixoldbrowsers");var i=e("./config");i.setLoader((function(t,n){e([t],(function(e){n(null,e)}))}));var r=function(){return this||"undefined"!=typeof window&&window}();function s(t){if(r&&r.document){i.set("packaged",t||e.packaged||o.packaged||r.define&&n.amdD.packaged);var s={},a="",l=document.currentScript||document._currentScript,c=l&&l.ownerDocument||document;l&&l.src&&(a=l.src.split(/[?#]/)[0].split("/").slice(0,-1).join("/")||"");for(var u,h=c.getElementsByTagName("script"),d=0;d ["+this.end.row+"/"+this.end.column+"]"},e.prototype.contains=function(e,t){return 0==this.compare(e,t)},e.prototype.compareRange=function(e){var t,n=e.end,o=e.start;return 1==(t=this.compare(n.row,n.column))?1==(t=this.compare(o.row,o.column))?2:0==t?1:0:-1==t?-2:-1==(t=this.compare(o.row,o.column))?-1:1==t?42:0},e.prototype.comparePoint=function(e){return this.compare(e.row,e.column)},e.prototype.containsRange=function(e){return 0==this.comparePoint(e.start)&&0==this.comparePoint(e.end)},e.prototype.intersects=function(e){var t=this.compareRange(e);return-1==t||0==t||1==t},e.prototype.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},e.prototype.isStart=function(e,t){return this.start.row==e&&this.start.column==t},e.prototype.setStart=function(e,t){"object"==typeof e?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},e.prototype.setEnd=function(e,t){"object"==typeof e?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},e.prototype.inside=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)&&!this.isStart(e,t)},e.prototype.insideStart=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)},e.prototype.insideEnd=function(e,t){return 0==this.compare(e,t)&&!this.isStart(e,t)},e.prototype.compare=function(e,t){return this.isMultiLine()||e!==this.start.row?ethis.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0:tthis.end.column?1:0},e.prototype.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},e.prototype.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},e.prototype.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},e.prototype.clipRows=function(t,n){if(this.end.row>n)var o={row:n+1,column:0};else this.end.rown)var i={row:n+1,column:0};else this.start.row1?++h>4&&(h=1):h=1,r.isIE){var s=Math.abs(e.clientX-a)>5||Math.abs(e.clientY-l)>5;c&&!s||(h=1),c&&clearTimeout(c),c=setTimeout((function(){c=null}),n[h-1]||600),1==h&&(a=e.clientX,l=e.clientY)}if(e._clicks=h,o[i]("mousedown",e),h>4)h=0;else if(h>1)return o[i](d[h],e)}Array.isArray(e)||(e=[e]),e.forEach((function(e){u(e,"mousedown",p,s)}))};var d=function(e){return(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)};function p(e,t,n){var o=d(t);if(!r.isMac&&s){if(t.getModifierState&&(t.getModifierState("OS")||t.getModifierState("Win"))&&(o|=8),s.altGr){if(!(3&~o))return;s.altGr=0}if(18===n||17===n){var l="location"in t?t.location:t.keyLocation;17===n&&1===l?1==s[n]&&(a=t.timeStamp):18===n&&3===o&&2===l&&t.timeStamp-a<50&&(s.altGr=!0)}}if(n in i.MODIFIER_KEYS&&(n=-1),o||13!==n||3!==(l="location"in t?t.location:t.keyLocation)||(e(t,o,-n),!t.defaultPrevented)){if(r.isChromeOS&&8&o){if(e(t,o,n),t.defaultPrevented)return;o&=-9}return!!(o||n in i.FUNCTION_KEYS||n in i.PRINTABLE_KEYS)&&e(t,o,n)}}function g(){s=Object.create(null)}if(t.getModifierString=function(e){return i.KEY_MODS[d(e)]},t.addCommandKeyListener=function(e,n,o){if(r.isOldGecko||r.isOpera&&!("KeyboardEvent"in window)){var i=null;u(e,"keydown",(function(e){i=e.keyCode}),o),u(e,"keypress",(function(e){return p(n,e,i)}),o)}else{var a=null;u(e,"keydown",(function(e){s[e.keyCode]=(s[e.keyCode]||0)+1;var t=p(n,e,e.keyCode);return a=e.defaultPrevented,t}),o),u(e,"keypress",(function(e){a&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),a=null)}),o),u(e,"keyup",(function(e){s[e.keyCode]=null}),o),s||(g(),u(window,"focus",g))}},"object"==typeof window&&window.postMessage&&!r.isOldIE){var m=1;t.nextTick=function(e,n){n=n||window;var o="zero-timeout-message-"+m++,i=function(r){r.data==o&&(t.stopPropagation(r),h(n,"message",i),e())};u(n,"message",i),n.postMessage(o,"*")}}t.$idleBlocked=!1,t.onIdle=function(e,n){return setTimeout((function n(){t.$idleBlocked?setTimeout(n,100):e()}),n)},t.$idleBlockId=null,t.blockIdle=function(e){t.$idleBlockId&&clearTimeout(t.$idleBlockId),t.$idleBlocked=!0,t.$idleBlockId=setTimeout((function(){t.$idleBlocked=!1}),e||100)},t.nextFrame="object"==typeof window&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}})),ace.define("ace/clipboard",["require","exports","module"],(function(e,t,n){"use strict";var o;n.exports={lineMode:!1,pasteCancelled:function(){return!!(o&&o>Date.now()-50)||(o=!1)},cancel:function(){o=Date.now()}}})),ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/config","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/clipboard","ace/lib/keys"],(function(e,t,n){"use strict";var o=e("../lib/event"),i=e("../config").nls,r=e("../lib/useragent"),s=e("../lib/dom"),a=e("../lib/lang"),l=e("../clipboard"),c=r.isChrome<18,u=r.isIE,h=r.isChrome>63,d=400,p=e("../lib/keys"),g=p.KEY_MODS,m=r.isIOS,f=m?/\s/:/\n/,y=r.isMobile;t.TextInput=function(e,t){var n=s.createElement("textarea");n.className="ace_text-input",n.setAttribute("wrap","off"),n.setAttribute("autocorrect","off"),n.setAttribute("autocapitalize","off"),n.setAttribute("spellcheck",!1),n.style.opacity="0",e.insertBefore(n,e.firstChild);var v=!1,b=!1,w=!1,x=!1,k="";y||(n.style.fontSize="1px");var C=!1,$=!1,S="",E=0,O=0,T=0,A=Number.MAX_SAFE_INTEGER,_=Number.MIN_SAFE_INTEGER,L=0;try{var M=document.activeElement===n}catch(e){}this.setNumberOfExtraLines=function(e){A=Number.MAX_SAFE_INTEGER,_=Number.MIN_SAFE_INTEGER,L=e<0?0:e},this.setAriaOptions=function(e){if(e.activeDescendant?(n.setAttribute("aria-haspopup","true"),n.setAttribute("aria-autocomplete",e.inline?"both":"list"),n.setAttribute("aria-activedescendant",e.activeDescendant)):(n.setAttribute("aria-haspopup","false"),n.setAttribute("aria-autocomplete","both"),n.removeAttribute("aria-activedescendant")),e.role&&n.setAttribute("role",e.role),e.setLabel&&(n.setAttribute("aria-roledescription",i("editor")),t.session)){var o=t.session.selection.cursor.row;n.setAttribute("aria-label",i("Cursor at row $0",[o+1]))}},this.setAriaOptions({role:"textbox"}),o.addListener(n,"blur",(function(e){$||(t.onBlur(e),M=!1)}),t),o.addListener(n,"focus",(function(e){if(!$){if(M=!0,r.isEdge)try{if(!document.hasFocus())return}catch(e){}t.onFocus(e),r.isEdge?setTimeout(N):N()}}),t),this.$focusScroll=!1,this.focus=function(){if(this.setAriaOptions({setLabel:t.renderer.enableKeyboardAccessibility}),k||h||"browser"==this.$focusScroll)return n.focus({preventScroll:!0});var e=n.style.top;n.style.position="fixed",n.style.top="0px";try{var o=0!=n.getBoundingClientRect().top}catch(e){return}var i=[];if(o)for(var r=n.parentElement;r&&1==r.nodeType;)i.push(r),r.setAttribute("ace_nocontext",!0),r=!r.parentElement&&r.getRootNode?r.getRootNode().host:r.parentElement;n.focus({preventScroll:!0}),o&&i.forEach((function(e){e.removeAttribute("ace_nocontext")})),setTimeout((function(){n.style.position="","0px"==n.style.top&&(n.style.top=e)}),0)},this.blur=function(){n.blur()},this.isFocused=function(){return M},t.on("beforeEndOperation",(function(){var e=t.curOp,o=e&&e.command&&e.command.name;if("insertstring"!=o){var i=o&&(e.docChanged||e.selectionChanged);w&&i&&(S=n.value="",U()),N()}}));var R=function(e,n){for(var o=n,i=1;i<=e-A&&i<2*L+1;i++)o+=t.session.getLine(e-i).length+1;return o},N=m?function(e){if(M&&(!v||e)&&!x){e||(e="");var o="\n ab"+e+"cde fg\n";o!=n.value&&(n.value=S=o);var i=4+(e.length||(t.selection.isEmpty()?0:1));4==E&&O==i||n.setSelectionRange(4,i),E=4,O=i}}:function(){if(!w&&!x&&(M||P)){w=!0;var e=0,o=0,i="";if(t.session){var r=t.selection,s=r.getRange(),a=r.cursor.row;a===_+1?_=(A=_+1)+2*L:a===A-1?A=(_=A-1)-2*L:(a_+1)&&(A=a>L?a-L:0,_=a>L?a+L:2*L);for(var l=[],c=A;c<=_;c++)l.push(t.session.getLine(c));if(i=l.join("\n"),e=R(s.start.row,s.start.column),o=R(s.end.row,s.end.column),s.start.row_){var h=t.session.getLine(_+1);o=s.end.row>_+1?h.length:s.end.column,o+=i.length+1,i=i+"\n"+h}else y&&a>0&&(i="\n"+i,o+=1,e+=1);i.length>d&&(e0&&S[d]==e[d];)d++,a--;for(c=c.slice(d),d=1;l>0&&S.length-d>E-1&&S[S.length-d]==e[e.length-d];)d++,l--;u-=d-1,h-=d-1;var p=c.length-d+1;if(p<0&&(a=-p,p=0),c=c.slice(0,p),!(o||c||u||a||l||h))return"";x=!0;var g=!1;return r.isAndroid&&". "==c&&(c=" ",g=!0),c&&!a&&!l&&!u&&!h||C?t.onTextInput(c):t.onTextInput(c,{extendLeft:a,extendRight:l,restoreStart:u,restoreEnd:h}),x=!1,S=e,E=i,O=s,T=h,g?"\n":c},F=function(e){if(w)return V();if(e&&e.inputType){if("historyUndo"==e.inputType)return t.execCommand("undo");if("historyRedo"==e.inputType)return t.execCommand("redo")}var o=n.value,i=D(o,!0);(o.length>500||f.test(i)||y&&E<1&&E==O)&&N()},B=function(e,t,n){var o=e.clipboardData||window.clipboardData;if(o&&!c){var i=u||n?"Text":"text/plain";try{return t?!1!==o.setData(i,t):o.getData(i)}catch(e){if(!n)return B(e,t,!0)}}},W=function(e,i){var r=t.getCopyText();if(!r)return o.preventDefault(e);B(e,r)?(m&&(N(r),v=r,setTimeout((function(){v=!1}),10)),i?t.onCut():t.onCopy(),o.preventDefault(e)):(v=!0,n.value=r,n.select(),setTimeout((function(){v=!1,N(),i?t.onCut():t.onCopy()})))},H=function(e){W(e,!0)},j=function(e){W(e,!1)},z=function(e){var i=B(e);l.pasteCancelled()||("string"==typeof i?(i&&t.onPaste(i,e),r.isIE&&setTimeout(N),o.preventDefault(e)):(n.value="",b=!0))};o.addCommandKeyListener(n,t.onCommandKey.bind(t),t),o.addListener(n,"select",(function(e){w||(v?v=!1:function(e){return 0===e.selectionStart&&e.selectionEnd>=S.length&&e.value===S&&S&&e.selectionEnd!==O}(n)?(t.selectAll(),N()):y&&n.selectionStart!=E&&N())}),t),o.addListener(n,"input",F,t),o.addListener(n,"cut",H,t),o.addListener(n,"copy",j,t),o.addListener(n,"paste",z,t),"oncut"in n&&"oncopy"in n&&"onpaste"in n||o.addListener(e,"keydown",(function(e){if((!r.isMac||e.metaKey)&&e.ctrlKey)switch(e.keyCode){case 67:j(e);break;case 86:z(e);break;case 88:H(e)}}),t);var V=function(){if(w&&t.onCompositionUpdate&&!t.$readOnly){if(C)return G();if(w.useTextareaForIME)t.onCompositionUpdate(n.value);else{var e=n.value;D(e),w.markerRange&&(w.context&&(w.markerRange.start.column=w.selectionStart=w.context.compositionStartOffset),w.markerRange.end.column=w.markerRange.start.column+O-w.selectionStart+T)}}},U=function(e){t.onCompositionEnd&&!t.$readOnly&&(w=!1,t.onCompositionEnd(),t.off("mousedown",G),e&&F())};function G(){$=!0,n.blur(),n.focus(),$=!1}var K,q=a.delayedCall(V,50).schedule.bind(null,null);function Y(){clearTimeout(K),K=setTimeout((function(){k&&(n.style.cssText=k,k=""),t.renderer.$isMousePressed=!1,t.renderer.$keepTextAreaAtCursor&&t.renderer.$moveTextAreaToCursor()}),0)}o.addListener(n,"compositionstart",(function(e){if(!w&&t.onCompositionStart&&!t.$readOnly&&(w={},!C)){e.data&&(w.useTextareaForIME=!1),setTimeout(V,0),t._signal("compositionStart"),t.on("mousedown",G);var o=t.getSelectionRange();o.end.row=o.start.row,o.end.column=o.start.column,w.markerRange=o,w.selectionStart=E,t.onCompositionStart(w),w.useTextareaForIME?(S=n.value="",E=0,O=0):(n.msGetInputContext&&(w.context=n.msGetInputContext()),n.getInputContext&&(w.context=n.getInputContext()))}}),t),o.addListener(n,"compositionupdate",V,t),o.addListener(n,"keyup",(function(e){27==e.keyCode&&n.value.lengthO&&"\n"==S[r]?s=p.end:oO&&S.slice(0,r).split("\n").length>2?s=p.down:r>O&&" "==S[r-1]?(s=p.right,a=g.option):(r>O||r==O&&O!=E&&o==r)&&(s=p.right),o!==r&&(a|=g.shift),s){if(!t.onCommandKey({},a,s)&&t.commands){s=p.keyCodeToString(s);var l=t.commands.findKeyCommand(a,s);l&&t.execCommand(l)}E=o,O=r,N("")}}};document.addEventListener("selectionchange",r),t.on("destroy",(function(){document.removeEventListener("selectionchange",r)}))}(0,t,n),this.destroy=function(){n.parentElement&&n.parentElement.removeChild(n)}},t.$setUserAgentForTests=function(e,t){y=e,m=t}})),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/useragent"],(function(e,t,n){"use strict";var o=e("../lib/useragent"),i=function(){function e(e){e.$clickSelection=null;var t=e.editor;t.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),t.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),t.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),t.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),t.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e)),["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"].forEach((function(t){e[t]=this[t]}),this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}return e.prototype.onMouseDown=function(e){var t=e.inSelection(),n=e.getDocumentPosition();this.mousedownEvent=e;var i=this.editor,r=e.getButton();return 0!==r?((i.getSelectionRange().isEmpty()||1==r)&&i.selection.moveToPosition(n),void(2==r&&(i.textInput.onContextMenu(e.domEvent),o.isMozilla||e.preventDefault()))):(this.mousedownEvent.time=Date.now(),!t||i.isFocused()||(i.focus(),!this.$focusTimeout||this.$clickSelection||i.inMultiSelectMode)?(this.captureMouse(e),this.startSelect(n,e.domEvent._clicks>1),e.preventDefault()):(this.setState("focusWait"),void this.captureMouse(e)))},e.prototype.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var n=this.editor;this.mousedownEvent&&(this.mousedownEvent.getShiftKey()?n.selection.selectToPosition(e):t||n.selection.moveToPosition(e),t||this.select(),n.setStyle("ace_selecting"),this.setState("select"))},e.prototype.select=function(){var e,t=this.editor,n=t.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var o=this.$clickSelection.comparePoint(n);if(-1==o)e=this.$clickSelection.end;else if(1==o)e=this.$clickSelection.start;else{var i=r(this.$clickSelection,n);n=i.cursor,e=i.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(n),t.renderer.scrollCursorIntoView()},e.prototype.extendSelectionBy=function(e){var t,n=this.editor,o=n.renderer.screenToTextCoordinates(this.x,this.y),i=n.selection[e](o.row,o.column);if(this.$clickSelection){var s=this.$clickSelection.comparePoint(i.start),a=this.$clickSelection.comparePoint(i.end);if(-1==s&&a<=0)t=this.$clickSelection.end,i.end.row==o.row&&i.end.column==o.column||(o=i.start);else if(1==a&&s>=0)t=this.$clickSelection.start,i.start.row==o.row&&i.start.column==o.column||(o=i.end);else if(-1==s&&1==a)o=i.end,t=i.start;else{var l=r(this.$clickSelection,o);o=l.cursor,t=l.anchor}n.selection.setSelectionAnchor(t.row,t.column)}n.selection.selectToPosition(o),n.renderer.scrollCursorIntoView()},e.prototype.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting")},e.prototype.focusWait=function(){var e,t,n,o,i=(e=this.mousedownEvent.x,t=this.mousedownEvent.y,n=this.x,o=this.y,Math.sqrt(Math.pow(n-e,2)+Math.pow(o-t,2))),r=Date.now();(i>0||r-this.mousedownEvent.time>this.$focusTimeout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},e.prototype.onDoubleClick=function(e){var t=e.getDocumentPosition(),n=this.editor,o=n.session.getBracketRange(t);o?(o.isEmpty()&&(o.start.column--,o.end.column++),this.setState("select")):(o=n.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=o,this.select()},e.prototype.onTripleClick=function(e){var t=e.getDocumentPosition(),n=this.editor;this.setState("selectByLines");var o=n.getSelectionRange();o.isMultiLine()&&o.contains(t.row,t.column)?(this.$clickSelection=n.selection.getLineRange(o.start.row),this.$clickSelection.end=n.selection.getLineRange(o.end.row).end):this.$clickSelection=n.selection.getLineRange(t.row),this.select()},e.prototype.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},e.prototype.onMouseWheel=function(e){if(!e.getAccelKey()){e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var n=this.$lastScroll,o=e.domEvent.timeStamp,i=o-n.t,r=i?e.wheelX/i:n.vx,s=i?e.wheelY/i:n.vy;i<550&&(r=(r+n.vx)/2,s=(s+n.vy)/2);var a=Math.abs(r/s),l=!1;return a>=1&&t.renderer.isScrollableBy(e.wheelX*e.speed,0)&&(l=!0),a<=1&&t.renderer.isScrollableBy(0,e.wheelY*e.speed)&&(l=!0),l?n.allowed=o:o-n.allowed<550&&(Math.abs(r)<=1.5*Math.abs(n.vx)&&Math.abs(s)<=1.5*Math.abs(n.vy)?(l=!0,n.allowed=o):n.allowed=0),n.t=o,n.vx=r,n.vy=s,l?(t.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()):void 0}},e}();function r(e,t){if(e.start.row==e.end.row)var n=2*t.column-e.start.column-e.end.column;else if(e.start.row!=e.end.row-1||e.start.column||e.end.column)n=2*t.row-e.start.row-e.end.row;else n=t.column-4;return n<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}i.prototype.selectEnd=i.prototype.selectByLinesEnd,i.prototype.selectAllEnd=i.prototype.selectByLinesEnd,i.prototype.selectByWordsEnd=i.prototype.selectByLinesEnd,t.DefaultHandlers=i})),ace.define("ace/tooltip",["require","exports","module","ace/lib/dom","ace/lib/event","ace/range"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=this&&this.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],o=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&o>=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},s=e("./lib/dom"),a=e("./lib/event"),l=e("./range").Range,c="ace_tooltip",u=function(){function e(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}return e.prototype.$init=function(){return this.$element=s.createElement("div"),this.$element.className=c,this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},e.prototype.getElement=function(){return this.$element||this.$init()},e.prototype.setText=function(e){this.getElement().textContent=e},e.prototype.setHtml=function(e){this.getElement().innerHTML=e},e.prototype.setPosition=function(e,t){this.getElement().style.left=e+"px",this.getElement().style.top=t+"px"},e.prototype.setClassName=function(e){s.addCssClass(this.getElement(),e)},e.prototype.setTheme=function(e){this.$element.className=c+" "+(e.isDark?"ace_dark ":"")+(e.cssClass||"")},e.prototype.show=function(e,t,n){null!=e&&this.setText(e),null!=t&&null!=n&&this.setPosition(t,n),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},e.prototype.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.getElement().className=c,this.isOpen=!1)},e.prototype.getHeight=function(){return this.getElement().offsetHeight},e.prototype.getWidth=function(){return this.getElement().offsetWidth},e.prototype.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)},e}(),h=new(function(){function e(){this.popups=[]}return e.prototype.addPopup=function(e){this.popups.push(e),this.updatePopups()},e.prototype.removePopup=function(e){var t=this.popups.indexOf(e);-1!==t&&(this.popups.splice(t,1),this.updatePopups())},e.prototype.updatePopups=function(){var e,t,n,o;this.popups.sort((function(e,t){return t.priority-e.priority}));var i=[];try{for(var s=r(this.popups),a=s.next();!a.done;a=s.next()){var l=a.value,c=!0;try{for(var u=(n=void 0,r(i)),h=u.next();!h.done;h=u.next()){var d=h.value;if(this.doPopupsOverlap(d,l)){c=!1;break}}}catch(e){n={error:e}}finally{try{h&&!h.done&&(o=u.return)&&o.call(u)}finally{if(n)throw n.error}}c?i.push(l):l.hide()}}catch(t){e={error:t}}finally{try{a&&!a.done&&(t=s.return)&&t.call(s)}finally{if(e)throw e.error}}},e.prototype.doPopupsOverlap=function(e,t){var n=e.getElement().getBoundingClientRect(),o=t.getElement().getBoundingClientRect();return n.lefto.left&&n.topo.top},e}());t.popupManager=h,t.Tooltip=u;var d=function(e){function t(t){void 0===t&&(t=document.body);var n=e.call(this,t)||this;n.timeout=void 0,n.lastT=0,n.idleTime=350,n.lastEvent=void 0,n.onMouseOut=n.onMouseOut.bind(n),n.onMouseMove=n.onMouseMove.bind(n),n.waitForHover=n.waitForHover.bind(n),n.hide=n.hide.bind(n);var o=n.getElement();return o.style.whiteSpace="pre-wrap",o.style.pointerEvents="auto",o.addEventListener("mouseout",n.onMouseOut),o.tabIndex=-1,o.addEventListener("blur",function(){o.contains(document.activeElement)||this.hide()}.bind(n)),o.addEventListener("wheel",a.stopPropagation),n}return i(t,e),t.prototype.addToEditor=function(e){e.on("mousemove",this.onMouseMove),e.on("mousedown",this.hide),e.renderer.getMouseEventTarget().addEventListener("mouseout",this.onMouseOut,!0)},t.prototype.removeFromEditor=function(e){e.off("mousemove",this.onMouseMove),e.off("mousedown",this.hide),e.renderer.getMouseEventTarget().removeEventListener("mouseout",this.onMouseOut,!0),this.timeout&&(clearTimeout(this.timeout),this.timeout=null)},t.prototype.onMouseMove=function(e,t){this.lastEvent=e,this.lastT=Date.now();var n=t.$mouseHandler.isMousePressed;if(this.isOpen){var o=this.lastEvent&&this.lastEvent.getDocumentPosition();this.range&&this.range.contains(o.row,o.column)&&!n&&!this.isOutsideOfText(this.lastEvent)||this.hide()}this.timeout||n||(this.lastEvent=e,this.timeout=setTimeout(this.waitForHover,this.idleTime))},t.prototype.waitForHover=function(){this.timeout&&clearTimeout(this.timeout);var e=Date.now()-this.lastT;this.idleTime-e>10?this.timeout=setTimeout(this.waitForHover,this.idleTime-e):(this.timeout=null,this.lastEvent&&!this.isOutsideOfText(this.lastEvent)&&this.$gatherData(this.lastEvent,this.lastEvent.editor))},t.prototype.isOutsideOfText=function(e){var t=e.editor,n=e.getDocumentPosition(),o=t.session.getLine(n.row);if(n.column==o.length){var i=t.renderer.pixelToScreenCoordinates(e.clientX,e.clientY),r=t.session.documentToScreenPosition(n.row,n.column);if(r.column!=i.column||r.row!=i.row)return!0}return!1},t.prototype.setDataProvider=function(e){this.$gatherData=e},t.prototype.showForRange=function(e,t,n,o){if(!(o&&o!=this.lastEvent||this.isOpen&&document.activeElement==this.getElement())){var i=e.renderer;this.isOpen||(h.addPopup(this),this.$registerCloseEvents(),this.setTheme(i.theme)),this.isOpen=!0,this.addMarker(t,e.session),this.range=l.fromPoints(t.start,t.end);var r=i.textToScreenCoordinates(t.start.row,t.start.column),s=i.scroller.getBoundingClientRect();r.pageX=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},s=e("../lib/dom"),a=e("../lib/event"),l=e("../tooltip").Tooltip,c=e("../config").nls;t.GutterHandler=function(e){var t,n,o=e.editor,i=o.renderer.$gutterLayer,r=new u(o);function l(){t&&(t=clearTimeout(t)),r.isOpen&&(r.hideTooltip(),o.off("mousewheel",l))}function c(e){r.setPosition(e.x,e.y)}e.editor.setDefaultHandler("guttermousedown",(function(t){if(o.isFocused()&&0==t.getButton()&&"foldWidgets"!=i.getRegion(t)){var n=t.getDocumentPosition().row,r=o.session.selection;if(t.getShiftKey())r.selectTo(n,0);else{if(2==t.domEvent.detail)return o.selectAll(),t.preventDefault();e.$clickSelection=o.selection.getLineRange(n)}return e.setState("selectByLines"),e.captureMouse(t),t.preventDefault()}})),e.editor.setDefaultHandler("guttermousemove",(function(a){var u=a.domEvent.target||a.domEvent.srcElement;if(s.hasCssClass(u,"ace_fold-widget"))return l();r.isOpen&&e.$tooltipFollowsMouse&&c(a),n=a,t||(t=setTimeout((function(){t=null,n&&!e.isMousePressed?function(){var t=n.getDocumentPosition().row;if(t==o.session.getLength()){var s=o.renderer.pixelToScreenCoordinates(0,n.y).row,a=n.$pos;if(s>o.session.documentToScreenRow(a.row,a.column))return l()}if(r.showTooltip(t),r.isOpen)if(o.on("mousewheel",l),e.$tooltipFollowsMouse)c(n);else{var u=n.getGutterRow(),h=i.$lines.get(u);if(h){var d=h.element.querySelector(".ace_gutter_annotation").getBoundingClientRect(),p=r.getElement().style;p.left=d.right+"px",p.top=d.bottom+"px"}else c(n)}}():l()}),50))})),a.addListener(o.renderer.$gutter,"mouseout",(function(e){n=null,r.isOpen&&!t&&(t=setTimeout((function(){t=null,l()}),50))}),o),o.on("changeSession",l),o.on("input",l)};var u=function(e){function t(t){var n=e.call(this,t.container)||this;return n.editor=t,n}return i(t,e),t.prototype.setPosition=function(e,t){var n=window.innerWidth||document.documentElement.clientWidth,o=window.innerHeight||document.documentElement.clientHeight,i=this.getWidth(),r=this.getHeight();(e+=15)+i>n&&(e-=e+i-n),(t+=15)+r>o&&(t-=20+r),l.prototype.setPosition.call(this,e,t)},Object.defineProperty(t,"annotationLabels",{get:function(){return{error:{singular:c("error"),plural:c("errors")},warning:{singular:c("warning"),plural:c("warnings")},info:{singular:c("information message"),plural:c("information messages")}}},enumerable:!1,configurable:!0}),t.prototype.showTooltip=function(e){var n,o=this.editor.renderer.$gutterLayer,i=o.$annotations[e];n=i?{text:Array.from(i.text),type:Array.from(i.type)}:{text:[],type:[]};var r=o.session.getFoldLine(e);if(r&&o.$showFoldedAnnotations){for(var s,a={error:[],warning:[],info:[]},l=e+1;l<=r.end.row;l++)if(o.$annotations[l])for(var c=0;c ").concat(n.text[l]);d[n.type[l].replace("_fold","")].push(g)}var m=[].concat(d.error,d.warning,d.info).join("
    ");this.setHtml(m),this.$element.setAttribute("aria-live","polite"),this.isOpen||(this.setTheme(this.editor.renderer.theme),this.setClassName("ace_gutter-tooltip")),this.show(),this.editor._signal("showGutterTooltip",this)},t.prototype.hideTooltip=function(){this.$element.removeAttribute("aria-live"),this.hide(),this.editor._signal("hideGutterTooltip",this)},t.annotationsToSummaryString=function(e){var n,o,i=[];try{for(var s=r(["error","warning","info"]),a=s.next();!a.done;a=s.next()){var l=a.value;if(e[l].length){var c=1===e[l].length?t.annotationLabels[l].singular:t.annotationLabels[l].plural;i.push("".concat(e[l].length," ").concat(c))}}}catch(e){n={error:e}}finally{try{a&&!a.done&&(o=s.return)&&o.call(s)}finally{if(n)throw n.error}}return i.join(", ")},t}(l);t.GutterTooltip=u})),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],(function(e,t,n){"use strict";var o=e("../lib/event"),i=e("../lib/useragent"),r=function(){function e(e,t){this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1}return e.prototype.stopPropagation=function(){o.stopPropagation(this.domEvent),this.propagationStopped=!0},e.prototype.preventDefault=function(){o.preventDefault(this.domEvent),this.defaultPrevented=!0},e.prototype.stop=function(){this.stopPropagation(),this.preventDefault()},e.prototype.getDocumentPosition=function(){return this.$pos||(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY)),this.$pos},e.prototype.getGutterRow=function(){var e=this.getDocumentPosition().row;return this.editor.session.documentToScreenRow(e,0)-this.editor.session.documentToScreenRow(this.editor.renderer.$gutterLayer.$lines.get(0).row,0)},e.prototype.inSelection=function(){if(null!==this.$inSelection)return this.$inSelection;var e=this.editor.getSelectionRange();if(e.isEmpty())this.$inSelection=!1;else{var t=this.getDocumentPosition();this.$inSelection=e.contains(t.row,t.column)}return this.$inSelection},e.prototype.getButton=function(){return o.getButton(this.domEvent)},e.prototype.getShiftKey=function(){return this.domEvent.shiftKey},e.prototype.getAccelKey=function(){return i.isMac?this.domEvent.metaKey:this.domEvent.ctrlKey},e}();t.MouseEvent=r})),ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=e("../lib/event"),r=e("../lib/useragent");function s(e){var t=e.editor,n=o.createElement("div");n.style.cssText="top:-100px;position:absolute;z-index:2147483647;opacity:0.5",n.textContent=" ",["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"].forEach((function(t){e[t]=this[t]}),this),t.on("mousedown",this.onMouseDown.bind(e));var s,l,c,u,h,d,p,g,m,f,y,v=t.container,b=0;function w(){var e=d;(function(e,n){var o=Date.now(),i=!n||e.row!=n.row,r=!n||e.column!=n.column;!f||i||r?(t.moveCursorToPosition(e),f=o,y={x:l,y:c}):a(y.x,y.y,l,c)>5?f=null:o-f>=200&&(t.renderer.scrollCursorIntoView(),f=null)})(d=t.renderer.screenToTextCoordinates(l,c),e),function(e,n){var o=Date.now(),i=t.renderer.layerConfig.lineHeight,r=t.renderer.layerConfig.characterWidth,s=t.renderer.scroller.getBoundingClientRect(),a={x:{left:l-s.left,right:s.right-l},y:{top:c-s.top,bottom:s.bottom-c}},u=Math.min(a.x.left,a.x.right),h=Math.min(a.y.top,a.y.bottom),d={row:e.row,column:e.column};u/r<=2&&(d.column+=a.x.left=200&&t.renderer.scrollCursorIntoView(d):m=o:m=null}(d,e)}function x(){h=t.selection.toOrientedRange(),s=t.session.addMarker(h,"ace_selection",t.getSelectionStyle()),t.clearSelection(),t.isFocused()&&t.renderer.$cursorLayer.setBlinking(!1),clearInterval(u),w(),u=setInterval(w,20),b=0,i.addListener(document,"mousemove",$)}function k(){clearInterval(u),t.session.removeMarker(s),s=null,t.selection.fromOrientedRange(h),t.isFocused()&&!g&&t.$resetCursorStyle(),h=null,d=null,b=0,m=null,f=null,i.removeListener(document,"mousemove",$)}this.onDragStart=function(e){if(this.cancelDrag||!v.draggable){var o=this;return setTimeout((function(){o.startSelect(),o.captureMouse(e)}),0),e.preventDefault()}h=t.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=t.getReadOnly()?"copy":"copyMove",t.container.appendChild(n),i.setDragImage&&i.setDragImage(n,0,0),setTimeout((function(){t.container.removeChild(n)})),i.clearData(),i.setData("Text",t.session.getTextRange()),g=!0,this.setState("drag")},this.onDragEnd=function(e){if(v.draggable=!1,g=!1,this.setState(null),!t.getReadOnly()){var n=e.dataTransfer.dropEffect;p||"move"!=n||t.session.remove(t.getSelectionRange()),t.$resetCursorStyle()}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(!t.getReadOnly()&&S(e.dataTransfer))return l=e.clientX,c=e.clientY,s||x(),b++,e.dataTransfer.dropEffect=p=E(e),i.preventDefault(e)},this.onDragOver=function(e){if(!t.getReadOnly()&&S(e.dataTransfer))return l=e.clientX,c=e.clientY,s||(x(),b++),null!==C&&(C=null),e.dataTransfer.dropEffect=p=E(e),i.preventDefault(e)},this.onDragLeave=function(e){if(--b<=0&&s)return k(),p=null,i.preventDefault(e)},this.onDrop=function(e){if(d){var n=e.dataTransfer;if(g)switch(p){case"move":h=h.contains(d.row,d.column)?{start:d,end:d}:t.moveText(h,d);break;case"copy":h=t.moveText(h,d,!0)}else{var o=n.getData("Text");h={start:d,end:t.session.insert(d,o)},t.focus(),p=null}return k(),i.preventDefault(e)}},i.addListener(v,"dragstart",this.onDragStart.bind(e),t),i.addListener(v,"dragend",this.onDragEnd.bind(e),t),i.addListener(v,"dragenter",this.onDragEnter.bind(e),t),i.addListener(v,"dragover",this.onDragOver.bind(e),t),i.addListener(v,"dragleave",this.onDragLeave.bind(e),t),i.addListener(v,"drop",this.onDrop.bind(e),t);var C=null;function $(){null==C&&(C=setTimeout((function(){null!=C&&s&&k()}),20))}function S(e){var t=e.types;return!t||Array.prototype.some.call(t,(function(e){return"text/plain"==e||"Text"==e}))}function E(e){var t=["copy","copymove","all","uninitialized"],n=r.isMac?e.altKey:e.ctrlKey,o="uninitialized";try{o=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var i="none";return n&&t.indexOf(o)>=0?i="copy":["move","copymove","linkmove","all","uninitialized"].indexOf(o)>=0?i="move":t.indexOf(o)>=0&&(i="copy"),i}}function a(e,t,n,o){return Math.sqrt(Math.pow(n-e,2)+Math.pow(o-t,2))}(function(){this.dragWait=function(){Date.now()-this.mousedownEvent.time>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){this.editor.container.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.$resetCursorStyle(),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor;e.container.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var t=r.isWin?"default":"move";e.renderer.setCursorStyle(t),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;r.isIE&&"dragReady"==this.state&&a(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y)>3&&t.dragDrop(),"dragWait"===this.state&&a(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y)>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))},this.onMouseDown=function(e){if(this.$dragEnabled){this.mousedownEvent=e;var t=this.editor,n=e.inSelection(),o=e.getButton();if(1===(e.domEvent.detail||1)&&0===o&&n){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var i=e.domEvent.target||e.domEvent.srcElement;"unselectable"in i&&(i.unselectable="on"),t.getDragDelay()?(r.isWebKit&&(this.cancelDrag=!0,t.container.draggable=!0),this.setState("dragWait")):this.startDrag(),this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}}).call(s.prototype),t.DragdropHandler=s})),ace.define("ace/mouse/touch_handler",["require","exports","module","ace/mouse/mouse_event","ace/lib/event","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("./mouse_event").MouseEvent,i=e("../lib/event"),r=e("../lib/dom");t.addTouchListeners=function(e,t){var n,s,a,l,c,u,h,d,p,g="scroll",m=0,f=0,y=0,v=0;function b(){var e,n,o;p||(e=window.navigator&&window.navigator.clipboard,n=!1,o=function(o){var i,s,a=o.target.getAttribute("action");if("more"==a||!n)return n=!n,i=t.getCopyText(),s=t.session.getUndoManager().hasUndo(),void p.replaceChild(r.buildDom(n?["span",!i&&["span",{class:"ace_mobile-button",action:"selectall"},"Select All"],i&&["span",{class:"ace_mobile-button",action:"copy"},"Copy"],i&&["span",{class:"ace_mobile-button",action:"cut"},"Cut"],e&&["span",{class:"ace_mobile-button",action:"paste"},"Paste"],s&&["span",{class:"ace_mobile-button",action:"undo"},"Undo"],["span",{class:"ace_mobile-button",action:"find"},"Find"],["span",{class:"ace_mobile-button",action:"openCommandPalette"},"Palette"]]:["span"]),p.firstChild);"paste"==a?e.readText().then((function(e){t.execCommand(a,e)})):a&&("cut"!=a&&"copy"!=a||(e?e.writeText(t.getCopyText()):document.execCommand("copy")),t.execCommand(a)),p.firstChild.style.display="none",n=!1,"openCommandPalette"!=a&&t.focus()},p=r.buildDom(["div",{class:"ace_mobile-menu",ontouchstart:function(e){g="menu",e.stopPropagation(),e.preventDefault(),t.textInput.focus()},ontouchend:function(e){e.stopPropagation(),e.preventDefault(),o(e)},onclick:o},["span"],["span",{class:"ace_mobile-button",action:"more"},"..."]],t.container));var i=t.selection.cursor,s=t.renderer.textToScreenCoordinates(i.row,i.column),a=t.renderer.textToScreenCoordinates(0,0).pageX,l=t.renderer.scrollLeft,c=t.container.getBoundingClientRect();p.style.top=s.pageY-c.top-3+"px",s.pageX-c.left1)return clearTimeout(c),c=null,a=-1,void(g="zoom");d=t.$mouseHandler.isMousePressed=!0;var r=t.renderer.layerConfig.lineHeight,u=t.renderer.layerConfig.lineHeight,p=e.timeStamp;l=p;var b=i[0],w=b.clientX,k=b.clientY;Math.abs(n-w)+Math.abs(s-k)>r&&(a=-1),n=e.clientX=w,s=e.clientY=k,y=v=0;var C=new o(e,t);if(h=C.getDocumentPosition(),p-a<500&&1==i.length&&!m)f++,e.preventDefault(),e.button=0,function(){c=null,clearTimeout(c),t.selection.moveToPosition(h);var e=f>=2?t.selection.getLineRange(h.row):t.session.getBracketRange(h);e&&!e.isEmpty()?t.selection.setRange(e):t.selection.selectWord(),g="wait"}();else{f=0;var $=t.selection.cursor,S=t.selection.isEmpty()?$:t.selection.anchor,E=t.renderer.$cursorLayer.getPixelPosition($,!0),O=t.renderer.$cursorLayer.getPixelPosition(S,!0),T=t.renderer.scroller.getBoundingClientRect(),A=t.renderer.layerConfig.offset,_=t.renderer.scrollLeft,L=function(e,t){return(e/=u)*e+(t=t/r-.75)*t};if(e.clientXR?"cursor":"anchor"),g=R<3.5?"anchor":M<3.5?"cursor":"scroll",c=setTimeout(x,450)}a=p}),t),i.addListener(e,"touchend",(function(e){d=t.$mouseHandler.isMousePressed=!1,u&&clearInterval(u),"zoom"==g?(g="",m=0):c?(t.selection.moveToPosition(h),m=0,b()):"scroll"==g?(m+=60,u=setInterval((function(){m--<=0&&(clearInterval(u),u=null),Math.abs(y)<.01&&(y=0),Math.abs(v)<.01&&(v=0),m<20&&(y*=.9),m<20&&(v*=.9);var e=t.session.getScrollTop();t.renderer.scrollBy(10*y,10*v),e==t.session.getScrollTop()&&(m=0)}),10),w()):b(),clearTimeout(c),c=null}),t),i.addListener(e,"touchmove",(function(e){c&&(clearTimeout(c),c=null);var i=e.touches;if(!(i.length>1||"zoom"==g)){var r=i[0],a=n-r.clientX,u=s-r.clientY;if("wait"==g){if(!(a*a+u*u>4))return e.preventDefault();g="cursor"}n=r.clientX,s=r.clientY,e.clientX=r.clientX,e.clientY=r.clientY;var h=e.timeStamp,d=h-l;if(l=h,"scroll"==g){var p=new o(e,t);p.speed=1,p.wheelX=a,p.wheelY=u,10*Math.abs(a)=e){for(r=h+1;r=e;)r++;for(a=h,l=r-1;a=t.length||2!=(l=n[i-1])&&3!=l||2!=(c=t[i+1])&&3!=c?4:(r&&(c=3),c==l?c:4);case 10:return 2==(l=i>0?n[i-1]:5)&&i+10&&2==n[i-1])return 2;if(r)return 4;for(p=i+1,d=t.length;p=1425&&m<=2303||64286==m;if(l=t[p],f&&(1==l||7==l))return 1}return i<1||5==(l=t[i-1])?4:n[i-1];case 5:return r=!1,s=!0,o;case 6:return a=!0,4;case 13:case 14:case 16:case 17:case 15:r=!1;case h:return 4}}function f(e){var t=e.charCodeAt(0),n=t>>8;return 0==n?t>191?0:d[t]:5==n?/[\u0591-\u05f4]/.test(e)?1:0:6==n?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(e)?12:/[\u0660-\u0669\u066b-\u066c]/.test(e)?3:1642==t?u:/[\u06f0-\u06f9]/.test(e)?2:7:32==n&&t<=8287?p[255&t]:254==n&&t>=65136?7:4}t.L=0,t.R=1,t.EN=2,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.RLE=7,t.DOT="·",t.doBidiReorder=function(e,n,u){if(e.length<2)return{};var d=e.split(""),p=new Array(d.length),y=new Array(d.length),v=[];o=u?1:0,function(e,t,n,u){var h=o?c:l,d=null,p=null,g=null,y=0,v=null,b=-1,w=null,x=null,k=[];if(!u)for(w=0,u=[];w0)if(16==v){for(w=b;w-1){for(w=b;w=0&&8==u[C];C--)t[C]=o}}(d,v,d.length,n);for(var b=0;b7&&n[b]<13||4===n[b]||n[b]===h)?v[b]=t.ON_R:b>0&&"ل"===d[b-1]&&/\u0622|\u0623|\u0625|\u0627/.test(d[b])&&(v[b-1]=v[b]=t.R_H,b++);for(d[d.length-1]===t.DOT&&(v[d.length-1]=t.B),"‫"===d[0]&&(v[0]=t.RLE),b=0;b=0&&(e=this.session.$docRowCache[n])}return e},e.prototype.getSplitIndex=function(){var e=0,t=this.session.$screenRowCache;if(t.length)for(var n,o=this.session.$getRowCacheIndex(t,this.currentRow);this.currentRow-e>0&&(n=this.session.$getRowCacheIndex(t,this.currentRow-e-1))===o;)o=n,e++;else e=this.currentRow;return e},e.prototype.updateRowLine=function(e,t){void 0===e&&(e=this.getDocumentRow());var n=e===this.session.getLength()-1?this.EOF:this.EOL;if(this.wrapIndent=0,this.line=this.session.getLine(e),this.isRtlDir=this.$isRtl||this.line.charAt(0)===this.RLE,this.session.$useWrapMode){var r=this.session.$wrapData[e];r&&(void 0===t&&(t=this.getSplitIndex()),t>0&&r.length?(this.wrapIndent=r.indent,this.wrapOffset=this.wrapIndent*this.charWidths[o.L],this.line=tt?this.session.getOverwrite()?e:e-1:t,i=o.getVisualFromLogicalIdx(n,this.bidiMap),r=this.bidiMap.bidiLevels,s=0;!this.session.getOverwrite()&&e<=t&&r[i]%2!=0&&i++;for(var a=0;at&&r[i]%2==0&&(s+=this.charWidths[r[i]]),this.wrapIndent&&(s+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset),this.isRtlDir&&(s+=this.rtlLineOffset),s},e.prototype.getSelections=function(e,t){var n,o=this.bidiMap,i=o.bidiLevels,r=[],s=0,a=Math.min(e,t)-this.wrapIndent,l=Math.max(e,t)-this.wrapIndent,c=!1,u=!1,h=0;this.wrapIndent&&(s+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset);for(var d,p=0;p=a&&dn+r/2;){if(n+=r,o===i.length-1){r=0;break}r=this.charWidths[i[++o]]}return o>0&&i[o-1]%2!=0&&i[o]%2==0?(e0&&i[o-1]%2==0&&i[o]%2!=0?t=1+(e>n?this.bidiMap.logicalFromVisual[o]:this.bidiMap.logicalFromVisual[o-1]):this.isRtlDir&&o===i.length-1&&0===r&&i[o-1]%2==0||!this.isRtlDir&&0===o&&i[o]%2!=0?t=1+this.bidiMap.logicalFromVisual[o]:(o>0&&i[o-1]%2!=0&&0!==r&&o--,t=this.bidiMap.logicalFromVisual[o]),0===t&&this.isRtlDir&&t++,t+this.wrapIndent},e}();t.BidiHandler=s})),ace.define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],(function(e,t,n){"use strict";var o=e("./lib/oop"),i=e("./lib/lang"),r=e("./lib/event_emitter").EventEmitter,s=e("./range").Range,a=function(){function e(e){this.session=e,this.doc=e.getDocument(),this.clearSelection(),this.cursor=this.lead=this.doc.createAnchor(0,0),this.anchor=this.doc.createAnchor(0,0),this.$silent=!1;var t=this;this.cursor.on("change",(function(e){t.$cursorChanged=!0,t.$silent||t._emit("changeCursor"),t.$isEmpty||t.$silent||t._emit("changeSelection"),t.$keepDesiredColumnOnChange||e.old.column==e.value.column||(t.$desiredColumn=null)})),this.anchor.on("change",(function(){t.$anchorChanged=!0,t.$isEmpty||t.$silent||t._emit("changeSelection")}))}return e.prototype.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},e.prototype.isMultiLine=function(){return!this.$isEmpty&&this.anchor.row!=this.cursor.row},e.prototype.getCursor=function(){return this.lead.getPosition()},e.prototype.setAnchor=function(e,t){this.$isEmpty=!1,this.anchor.setPosition(e,t)},e.prototype.getAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},e.prototype.getSelectionLead=function(){return this.lead.getPosition()},e.prototype.isBackwards=function(){var e=this.anchor,t=this.lead;return e.row>t.row||e.row==t.row&&e.column>t.column},e.prototype.getRange=function(){var e=this.anchor,t=this.lead;return this.$isEmpty?s.fromPoints(t,t):this.isBackwards()?s.fromPoints(t,e):s.fromPoints(e,t)},e.prototype.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},e.prototype.selectAll=function(){this.$setSelection(0,0,Number.MAX_VALUE,Number.MAX_VALUE)},e.prototype.setRange=function(e,t){var n=t?e.end:e.start,o=t?e.start:e.end;this.$setSelection(n.row,n.column,o.row,o.column)},e.prototype.$setSelection=function(e,t,n,o){if(!this.$silent){var i=this.$isEmpty,r=this.inMultiSelectMode;this.$silent=!0,this.$cursorChanged=this.$anchorChanged=!1,this.anchor.setPosition(e,t),this.cursor.setPosition(n,o),this.$isEmpty=!s.comparePoints(this.anchor,this.cursor),this.$silent=!1,this.$cursorChanged&&this._emit("changeCursor"),(this.$cursorChanged||this.$anchorChanged||i!=this.$isEmpty||r)&&this._emit("changeSelection")}},e.prototype.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},e.prototype.selectTo=function(e,t){this.$moveSelection((function(){this.moveCursorTo(e,t)}))},e.prototype.selectToPosition=function(e){this.$moveSelection((function(){this.moveCursorToPosition(e)}))},e.prototype.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},e.prototype.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},e.prototype.selectUp=function(){this.$moveSelection(this.moveCursorUp)},e.prototype.selectDown=function(){this.$moveSelection(this.moveCursorDown)},e.prototype.selectRight=function(){this.$moveSelection(this.moveCursorRight)},e.prototype.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},e.prototype.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},e.prototype.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},e.prototype.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},e.prototype.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},e.prototype.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},e.prototype.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},e.prototype.getWordRange=function(e,t){if(void 0===t){var n=e||this.lead;e=n.row,t=n.column}return this.session.getWordRange(e,t)},e.prototype.selectWord=function(){this.setSelectionRange(this.getWordRange())},e.prototype.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},e.prototype.getLineRange=function(e,t){var n,o="number"==typeof e?e:this.lead.row,i=this.session.getFoldLine(o);return i?(o=i.start.row,n=i.end.row):n=o,!0===t?new s(o,0,n,this.session.getLine(n).length):new s(o,0,n+1,0)},e.prototype.selectLine=function(){this.setSelectionRange(this.getLineRange())},e.prototype.moveCursorUp=function(){this.moveCursorBy(-1,0)},e.prototype.moveCursorDown=function(){this.moveCursorBy(1,0)},e.prototype.wouldMoveIntoSoftTab=function(e,t,n){var o=e.column,i=e.column+t;return n<0&&(o=e.column-t,i=e.column),this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(o,i).split(" ").length-1==t},e.prototype.moveCursorLeft=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,-1))this.moveCursorTo(e.start.row,e.start.column);else if(0===t.column)t.row>0&&this.moveCursorTo(t.row-1,this.doc.getLine(t.row-1).length);else{var n=this.session.getTabSize();this.wouldMoveIntoSoftTab(t,n,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-n):this.moveCursorBy(0,-1)}},e.prototype.moveCursorRight=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,1))this.moveCursorTo(e.end.row,e.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(t.column=o)}}this.moveCursorTo(t.row,t.column)},e.prototype.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},e.prototype.moveCursorFileStart=function(){this.moveCursorTo(0,0)},e.prototype.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),o=n.substring(t);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var i=this.session.getFoldAt(e,t,1);if(i)this.moveCursorTo(i.end.row,i.end.column);else{if(this.session.nonTokenRe.exec(o)&&(t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,o=n.substring(t)),t>=n.length)return this.moveCursorTo(e,n.length),this.moveCursorRight(),void(e0&&this.moveCursorWordLeft());this.session.tokenRe.exec(r)&&(n-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,n)}},e.prototype.$shortWordEndIndex=function(e){var t,n=0,o=/\s/,i=this.session.tokenRe;if(i.lastIndex=0,this.session.tokenRe.exec(e))n=this.session.tokenRe.lastIndex;else{for(;(t=e[n])&&o.test(t);)n++;if(n<1)for(i.lastIndex=0;(t=e[n])&&!i.test(t);)if(i.lastIndex=0,n++,o.test(t)){if(n>2){n--;break}for(;(t=e[n])&&o.test(t);)n++;if(n>2)break}}return i.lastIndex=0,n},e.prototype.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),o=n.substring(t),i=this.session.getFoldAt(e,t,1);if(i)return this.moveCursorTo(i.end.row,i.end.column);if(t==n.length){var r=this.doc.getLength();do{e++,o=this.doc.getLine(e)}while(e0&&/^\s*$/.test(o));n=o.length,/\s+$/.test(o)||(o="")}var r=i.stringReverse(o),s=this.$shortWordEndIndex(r);return this.moveCursorTo(t,n-s)},e.prototype.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},e.prototype.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},e.prototype.moveCursorBy=function(e,t){var n,o=this.session.documentToScreenPosition(this.lead.row,this.lead.column);if(0===t&&(0!==e&&(this.session.$bidiHandler.isBidiRow(o.row,this.lead.row)?(n=this.session.$bidiHandler.getPosLeft(o.column),o.column=Math.round(n/this.session.$bidiHandler.charWidths[0])):n=o.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?o.column=this.$desiredColumn:this.$desiredColumn=o.column),0!=e&&this.session.lineWidgets&&this.session.lineWidgets[this.lead.row]){var i=this.session.lineWidgets[this.lead.row];e<0?e-=i.rowsAbove||0:e>0&&(e+=i.rowCount-(i.rowsAbove||0))}var r=this.session.screenToDocumentPosition(o.row+e,o.column,n);0!==e&&0===t&&r.row===this.lead.row&&(r.column,this.lead.column),this.moveCursorTo(r.row,r.column+t,0===t)},e.prototype.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},e.prototype.moveCursorTo=function(e,t,n){var o=this.session.getFoldAt(e,t,1);o&&(e=o.start.row,t=o.start.column),this.$keepDesiredColumnOnChange=!0;var i=this.session.getLine(e);/[\uDC00-\uDFFF]/.test(i.charAt(t))&&i.charAt(t-1)&&(this.lead.row==e&&this.lead.column==t+1?t-=1:t+=1),this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,n||(this.$desiredColumn=null)},e.prototype.moveCursorToScreen=function(e,t,n){var o=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(o.row,o.column,n)},e.prototype.detach=function(){this.lead.detach(),this.anchor.detach()},e.prototype.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},e.prototype.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},e.prototype.getRangeOfMovements=function(e){var t=this.getCursor();try{e(this);var n=this.getCursor();return s.fromPoints(t,n)}catch(e){return s.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},e.prototype.toJSON=function(){if(this.rangeCount)var e=this.ranges.map((function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t}));else(e=this.getRange()).isBackwards=this.isBackwards();return e},e.prototype.fromJSON=function(e){if(null==e.start){if(this.rangeList&&e.length>1){this.toSingleRange(e[0]);for(var t=e.length;t--;){var n=s.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(n.cursor=n.start),this.addRange(n,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},e.prototype.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0},e}();a.prototype.setSelectionAnchor=a.prototype.setAnchor,a.prototype.getSelectionAnchor=a.prototype.getAnchor,a.prototype.setSelectionRange=a.prototype.setRange,o.implement(a.prototype,r),t.Selection=a})),ace.define("ace/tokenizer",["require","exports","module","ace/lib/report_error"],(function(e,t,n){"use strict";var o=e("./lib/report_error").reportError,i=2e3,r=function(){function e(e){for(var t in this.states=e,this.regExps={},this.matchMappings={},this.states){for(var n=this.states[t],o=[],i=0,r=this.matchMappings[t]={defaultToken:"text"},s="g",a=[],l=0;l1?this.$applyToken:c.token),h>1&&(/\\\d/.test(c.regex)?u=c.regex.replace(/\\([0-9]+)/g,(function(e,t){return"\\"+(parseInt(t,10)+i+1)})):(h=1,u=this.removeCapturingGroups(c.regex)),c.splitRegex||"string"==typeof c.token||a.push(c)),r[i]=l,i+=h,o.push(u),c.onMatch||(c.onMatch=null)}}o.length||(r[0]=0,o.push("$")),a.forEach((function(e){e.splitRegex=this.createSplitterRegexp(e.regex,s)}),this),this.regExps[t]=new RegExp("("+o.join(")|(")+")|($)",s)}}return e.prototype.$setMaxTokenCount=function(e){i=0|e},e.prototype.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),n=this.token.apply(this,t);if("string"==typeof n)return[{type:n,value:e}];for(var o=[],i=0,r=n.length;iu){var y=e.substring(u,f-m.length);d.type==p?d.value+=y:(d.type&&c.push(d),d={type:p,value:y})}for(var v=0;vi){for(h>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});u1&&n[0]!==o&&n.unshift("#tmp",o),{tokens:c,state:n.length?n:o}},e}();r.prototype.reportError=o,t.Tokenizer=r})),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/deep_copy"],(function(e,t,n){"use strict";var o=e("../lib/deep_copy").deepCopy,i=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(e,t){if(t)for(var n in e){for(var o=e[n],i=0;i=this.$rowTokens.length;){if(this.$row+=1,e||(e=this.$session.getLength()),this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},e.prototype.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},e.prototype.getCurrentTokenRow=function(){return this.$row},e.prototype.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,n=e[t].start;if(void 0!==n)return n;for(n=0;t>0;)n+=e[t-=1].value.length;return n},e.prototype.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},e.prototype.getCurrentTokenRange=function(){var e=this.$rowTokens[this.$tokenIndex],t=this.getCurrentTokenColumn();return new o(this.$row,t,this.$row,t+e.value.length)},e}();t.TokenIterator=i})),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],(function(e,t,n){"use strict";var o,i=e("../../lib/oop"),r=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,a=e("../../lib/lang"),l=["text","paren.rparen","rparen","paren","punctuation.operator"],c=["text","paren.rparen","rparen","paren","punctuation.operator","comment"],u={},h={'"':'"',"'":"'"},d=function(e){var t=-1;if(e.multiSelect&&(t=e.selection.index,u.rangeCount!=e.multiSelect.rangeCount&&(u={rangeCount:e.multiSelect.rangeCount})),u[t])return o=u[t];o=u[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},p=function(e,t,n,o){var i=e.end.row-e.start.row;return{text:n+t+o,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},g=function(e){e=e||{},this.add("braces","insertion",(function(t,n,i,r,s){var l=i.getCursorPosition(),c=r.doc.getLine(l.row);if("{"==s){d(i);var u=i.getSelectionRange(),h=r.doc.getTextRange(u);if(""!==h&&"{"!==h&&i.getWrapBehavioursEnabled())return p(u,h,"{","}");if(g.isSaneInsertion(i,r))return/[\]\}\)]/.test(c[l.column])||i.inMultiSelectMode||e.braces?(g.recordAutoInsert(i,r,"}"),{text:"{}",selection:[1,1]}):(g.recordMaybeInsert(i,r,"{"),{text:"{",selection:[1,1]})}else if("}"==s){if(d(i),"}"==c.substring(l.column,l.column+1)&&null!==r.$findOpeningBracket("}",{column:l.column+1,row:l.row})&&g.isAutoInsertedClosing(l,c,s))return g.popAutoInsertedClosing(),{text:"",selection:[1,1]}}else{if("\n"==s||"\r\n"==s){d(i);var m="";if(g.isMaybeInsertedClosing(l,c)&&(m=a.stringRepeat("}",o.maybeInsertedBrackets),g.clearMaybeInsertedClosing()),"}"===c.substring(l.column,l.column+1)){var f=r.findMatchingBracket({row:l.row,column:l.column+1},"}");if(!f)return null;var y=this.$getIndent(r.getLine(f.row))}else{if(!m)return void g.clearMaybeInsertedClosing();y=this.$getIndent(c)}var v=y+r.getTabString();return{text:"\n"+v+"\n"+y+m,selection:[1,v.length,1,v.length]}}g.clearMaybeInsertedClosing()}})),this.add("braces","deletion",(function(e,t,n,i,r){var s=i.doc.getTextRange(r);if(!r.isMultiLine()&&"{"==s){if(d(n),"}"==i.doc.getLine(r.start.row).substring(r.end.column,r.end.column+1))return r.end.column++,r;o.maybeInsertedBrackets--}})),this.add("parens","insertion",(function(e,t,n,o,i){if("("==i){d(n);var r=n.getSelectionRange(),s=o.doc.getTextRange(r);if(""!==s&&n.getWrapBehavioursEnabled())return p(r,s,"(",")");if(g.isSaneInsertion(n,o))return g.recordAutoInsert(n,o,")"),{text:"()",selection:[1,1]}}else if(")"==i){d(n);var a=n.getCursorPosition(),l=o.doc.getLine(a.row);if(")"==l.substring(a.column,a.column+1)&&null!==o.$findOpeningBracket(")",{column:a.column+1,row:a.row})&&g.isAutoInsertedClosing(a,l,i))return g.popAutoInsertedClosing(),{text:"",selection:[1,1]}}})),this.add("parens","deletion",(function(e,t,n,o,i){var r=o.doc.getTextRange(i);if(!i.isMultiLine()&&"("==r&&(d(n),")"==o.doc.getLine(i.start.row).substring(i.start.column+1,i.start.column+2)))return i.end.column++,i})),this.add("brackets","insertion",(function(e,t,n,o,i){if("["==i){d(n);var r=n.getSelectionRange(),s=o.doc.getTextRange(r);if(""!==s&&n.getWrapBehavioursEnabled())return p(r,s,"[","]");if(g.isSaneInsertion(n,o))return g.recordAutoInsert(n,o,"]"),{text:"[]",selection:[1,1]}}else if("]"==i){d(n);var a=n.getCursorPosition(),l=o.doc.getLine(a.row);if("]"==l.substring(a.column,a.column+1)&&null!==o.$findOpeningBracket("]",{column:a.column+1,row:a.row})&&g.isAutoInsertedClosing(a,l,i))return g.popAutoInsertedClosing(),{text:"",selection:[1,1]}}})),this.add("brackets","deletion",(function(e,t,n,o,i){var r=o.doc.getTextRange(i);if(!i.isMultiLine()&&"["==r&&(d(n),"]"==o.doc.getLine(i.start.row).substring(i.start.column+1,i.start.column+2)))return i.end.column++,i})),this.add("string_dquotes","insertion",(function(e,t,n,o,i){var r=o.$mode.$quotes||h;if(1==i.length&&r[i]){if(this.lineCommentStart&&-1!=this.lineCommentStart.indexOf(i))return;d(n);var s=i,a=n.getSelectionRange(),l=o.doc.getTextRange(a);if(!(""===l||1==l.length&&r[l])&&n.getWrapBehavioursEnabled())return p(a,l,s,s);if(!l){var c=n.getCursorPosition(),u=o.doc.getLine(c.row),g=u.substring(c.column-1,c.column),m=u.substring(c.column,c.column+1),f=o.getTokenAt(c.row,c.column),y=o.getTokenAt(c.row,c.column+1);if("\\"==g&&f&&/escape/.test(f.type))return null;var v,b=f&&/string|escape/.test(f.type),w=!y||/string|escape/.test(y.type);if(m==s)(v=b!==w)&&/string\.end/.test(y.type)&&(v=!1);else{if(b&&!w)return null;if(b&&w)return null;var x=o.$mode.tokenRe;x.lastIndex=0;var k=x.test(g);x.lastIndex=0;var C=x.test(m),$=o.$mode.$pairQuotesAfter;if(!($&&$[s]&&$[s].test(g))&&k||C)return null;if(m&&!/[\s;,.})\]\\]/.test(m))return null;var S=u[c.column-2];if(g==s&&(S==s||x.test(S)))return null;v=!0}return{text:v?s+s:"",selection:[1,1]}}}})),this.add("string_dquotes","deletion",(function(e,t,n,o,i){var r=o.$mode.$quotes||h,s=o.doc.getTextRange(i);if(!i.isMultiLine()&&r.hasOwnProperty(s)&&(d(n),o.doc.getLine(i.start.row).substring(i.start.column+1,i.start.column+2)==s))return i.end.column++,i})),!1!==e.closeDocComment&&this.add("doc comment end","insertion",(function(e,t,n,o,i){if("doc-start"===e&&("\n"===i||"\r\n"===i)&&n.selection.isEmpty()){var r=n.getCursorPosition(),s=o.doc.getLine(r.row),a=o.doc.getLine(r.row+1),l=this.$getIndent(s);if(/\s*\*/.test(a))return/^\s*\*/.test(s)?{text:i+l+"* ",selection:[1,3+l.length,1,3+l.length]}:{text:i+l+" * ",selection:[1,3+l.length,1,3+l.length]};if(/\/\*\*/.test(s.substring(0,r.column)))return{text:i+l+" * "+i+" "+l+"*/",selection:[1,4+l.length,1,4+l.length]}}}))};g.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),o=new s(t,n.row,n.column);if(!this.$matchTokenType(o.getCurrentToken()||"text",l)){if(/[)}\]]/.test(e.session.getLine(n.row)[n.column]))return!0;var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",l))return!1}return o.stepForward(),o.getCurrentTokenRow()!==n.row||this.$matchTokenType(o.getCurrentToken()||"text",c)},g.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},g.recordAutoInsert=function(e,t,n){var i=e.getCursorPosition(),r=t.doc.getLine(i.row);this.isAutoInsertedClosing(i,r,o.autoInsertedLineEnd[0])||(o.autoInsertedBrackets=0),o.autoInsertedRow=i.row,o.autoInsertedLineEnd=n+r.substr(i.column),o.autoInsertedBrackets++},g.recordMaybeInsert=function(e,t,n){var i=e.getCursorPosition(),r=t.doc.getLine(i.row);this.isMaybeInsertedClosing(i,r)||(o.maybeInsertedBrackets=0),o.maybeInsertedRow=i.row,o.maybeInsertedLineStart=r.substr(0,i.column)+n,o.maybeInsertedLineEnd=r.substr(i.column),o.maybeInsertedBrackets++},g.isAutoInsertedClosing=function(e,t,n){return o.autoInsertedBrackets>0&&e.row===o.autoInsertedRow&&n===o.autoInsertedLineEnd[0]&&t.substr(e.column)===o.autoInsertedLineEnd},g.isMaybeInsertedClosing=function(e,t){return o.maybeInsertedBrackets>0&&e.row===o.maybeInsertedRow&&t.substr(e.column)===o.maybeInsertedLineEnd&&t.substr(0,e.column)==o.maybeInsertedLineStart},g.popAutoInsertedClosing=function(){o.autoInsertedLineEnd=o.autoInsertedLineEnd.substr(1),o.autoInsertedBrackets--},g.clearMaybeInsertedClosing=function(){o&&(o.maybeInsertedBrackets=0,o.maybeInsertedRow=-1)},i.inherits(g,r),t.CstyleBehaviour=g})),ace.define("ace/unicode",["require","exports","module"],(function(e,t,n){"use strict";for(var o=[48,9,8,25,5,0,2,25,48,0,11,0,5,0,6,22,2,30,2,457,5,11,15,4,8,0,2,0,18,116,2,1,3,3,9,0,2,2,2,0,2,19,2,82,2,138,2,4,3,155,12,37,3,0,8,38,10,44,2,0,2,1,2,1,2,0,9,26,6,2,30,10,7,61,2,9,5,101,2,7,3,9,2,18,3,0,17,58,3,100,15,53,5,0,6,45,211,57,3,18,2,5,3,11,3,9,2,1,7,6,2,2,2,7,3,1,3,21,2,6,2,0,4,3,3,8,3,1,3,3,9,0,5,1,2,4,3,11,16,2,2,5,5,1,3,21,2,6,2,1,2,1,2,1,3,0,2,4,5,1,3,2,4,0,8,3,2,0,8,15,12,2,2,8,2,2,2,21,2,6,2,1,2,4,3,9,2,2,2,2,3,0,16,3,3,9,18,2,2,7,3,1,3,21,2,6,2,1,2,4,3,8,3,1,3,2,9,1,5,1,2,4,3,9,2,0,17,1,2,5,4,2,2,3,4,1,2,0,2,1,4,1,4,2,4,11,5,4,4,2,2,3,3,0,7,0,15,9,18,2,2,7,2,2,2,22,2,9,2,4,4,7,2,2,2,3,8,1,2,1,7,3,3,9,19,1,2,7,2,2,2,22,2,9,2,4,3,8,2,2,2,3,8,1,8,0,2,3,3,9,19,1,2,7,2,2,2,22,2,15,4,7,2,2,2,3,10,0,9,3,3,9,11,5,3,1,2,17,4,23,2,8,2,0,3,6,4,0,5,5,2,0,2,7,19,1,14,57,6,14,2,9,40,1,2,0,3,1,2,0,3,0,7,3,2,6,2,2,2,0,2,0,3,1,2,12,2,2,3,4,2,0,2,5,3,9,3,1,35,0,24,1,7,9,12,0,2,0,2,0,5,9,2,35,5,19,2,5,5,7,2,35,10,0,58,73,7,77,3,37,11,42,2,0,4,328,2,3,3,6,2,0,2,3,3,40,2,3,3,32,2,3,3,6,2,0,2,3,3,14,2,56,2,3,3,66,5,0,33,15,17,84,13,619,3,16,2,25,6,74,22,12,2,6,12,20,12,19,13,12,2,2,2,1,13,51,3,29,4,0,5,1,3,9,34,2,3,9,7,87,9,42,6,69,11,28,4,11,5,11,11,39,3,4,12,43,5,25,7,10,38,27,5,62,2,28,3,10,7,9,14,0,89,75,5,9,18,8,13,42,4,11,71,55,9,9,4,48,83,2,2,30,14,230,23,280,3,5,3,37,3,5,3,7,2,0,2,0,2,0,2,30,3,52,2,6,2,0,4,2,2,6,4,3,3,5,5,12,6,2,2,6,67,1,20,0,29,0,14,0,17,4,60,12,5,0,4,11,18,0,5,0,3,9,2,0,4,4,7,0,2,0,2,0,2,3,2,10,3,3,6,4,5,0,53,1,2684,46,2,46,2,132,7,6,15,37,11,53,10,0,17,22,10,6,2,6,2,6,2,6,2,6,2,6,2,6,2,6,2,31,48,0,470,1,36,5,2,4,6,1,5,85,3,1,3,2,2,89,2,3,6,40,4,93,18,23,57,15,513,6581,75,20939,53,1164,68,45,3,268,4,27,21,31,3,13,13,1,2,24,9,69,11,1,38,8,3,102,3,1,111,44,25,51,13,68,12,9,7,23,4,0,5,45,3,35,13,28,4,64,15,10,39,54,10,13,3,9,7,22,4,1,5,66,25,2,227,42,2,1,3,9,7,11171,13,22,5,48,8453,301,3,61,3,105,39,6,13,4,6,11,2,12,2,4,2,0,2,1,2,1,2,107,34,362,19,63,3,53,41,11,5,15,17,6,13,1,25,2,33,4,2,134,20,9,8,25,5,0,2,25,12,88,4,5,3,5,3,5,3,2],i=0,r=[],s=0;s2?o%c!=c-1:o%c==0})}else{if(!this.blockComment)return!1;var p=this.blockComment.start,g=this.blockComment.end,m=new RegExp("^(\\s*)(?:"+l.escapeRegExp(p)+")"),f=new RegExp("(?:"+l.escapeRegExp(g)+")\\s*$"),y=function(e,t){b(e,t)||r&&!/\S/.test(e)||(i.insertInLine({row:t,column:e.length},g),i.insertInLine({row:t,column:a},p))},v=function(e,t){var n;(n=e.match(f))&&i.removeInLine(t,e.length-n[0].length,e.length),(n=e.match(m))&&i.removeInLine(t,n[1].length,n[0].length)},b=function(e,n){if(m.test(e))return!0;for(var o=t.getTokens(n),i=0;ie.length&&(x=e.length)})),a==1/0&&(a=x,r=!1,s=!1),u&&a%c!=0&&(a=Math.floor(a/c)*c),w(s?v:y)},this.toggleBlockComment=function(e,t,n,o){var i=this.blockComment;if(i){!i.start&&i[0]&&(i=i[0]);var r,s,a=(m=new c(t,o.row,o.column)).getCurrentToken(),l=(t.selection,t.selection.toOrientedRange());if(a&&/comment/.test(a.type)){for(var h,d;a&&/comment/.test(a.type);){if(-1!=(f=a.value.indexOf(i.start))){var p=m.getCurrentTokenRow(),g=m.getCurrentTokenColumn()+f;h=new u(p,g,p,g+i.start.length);break}a=m.stepBackward()}var m;for(a=(m=new c(t,o.row,o.column)).getCurrentToken();a&&/comment/.test(a.type);){var f;if(-1!=(f=a.value.indexOf(i.end))){p=m.getCurrentTokenRow(),g=m.getCurrentTokenColumn()+f,d=new u(p,g,p,g+i.end.length);break}a=m.stepForward()}d&&t.remove(d),h&&(t.remove(h),r=h.start.row,s=-i.start.length)}else s=i.start.length,r=n.start.row,t.insert(n.end,i.end),t.insert(n.start,i.start);l.start.row==r&&(l.start.column+=s),l.end.row==r&&(l.end.column+=s),t.selection.fromOrientedRange(l)}},this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.autoOutdent=function(e,t,n){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){for(var t in this.$embeds=[],this.$modes={},e)if(e[t]){var n=e[t],i=n.prototype.$id,r=o.$modes[i];r||(o.$modes[i]=r=new n),o.$modes[t]||(o.$modes[t]=r),this.$embeds.push(t),this.$modes[t]=r}var s=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"];for(t=0;tthis.row)){var t=function(e,t,n){var o="insert"==e.action,i=(o?1:-1)*(e.end.row-e.start.row),r=(o?1:-1)*(e.end.column-e.start.column),a=e.start,l=o?a:e.end;return s(t,a,n)?{row:t.row,column:t.column}:s(l,t,!n)?{row:t.row+i,column:t.column+(t.row==l.row?r:0)}:{row:a.row,column:a.column}}(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(t.row,t.column,!0)}},e.prototype.setPosition=function(e,t,n){var o;if(o=n?{row:e,column:t}:this.$clipPositionToDocument(e,t),this.row!=o.row||this.column!=o.column){var i={row:this.row,column:this.column};this.row=o.row,this.column=o.column,this._signal("change",{old:i,value:o})}},e.prototype.detach=function(){this.document.off("change",this.$onChange)},e.prototype.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},e.prototype.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n},e}();function s(e,t,n){var o=n?e.column<=t.column:e.column=n&&(e=n-1,t=void 0);var o=this.getLine(e);return null==t&&(t=o.length),{row:e,column:t=Math.min(Math.max(t,0),o.length)}},e.prototype.clonePos=function(e){return{row:e.row,column:e.column}},e.prototype.pos=function(e,t){return{row:e,column:t}},e.prototype.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},e.prototype.insertFullLines=function(e,t){var n=0;(e=Math.min(Math.max(e,0),this.getLength()))0,o=t=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},e.prototype.replace=function(e,t){return e instanceof s||(e=s.fromPoints(e.start,e.end)),0===t.length&&e.isEmpty()?e.start:t==this.getTextRange(e)?e.end:(this.remove(e),t?this.insert(e.start,t):e.start)},e.prototype.applyDeltas=function(e){for(var t=0;t=0;t--)this.revertDelta(e[t])},e.prototype.applyDelta=function(e,t){var n="insert"==e.action;(n?e.lines.length<=1&&!e.lines[0]:!s.comparePoints(e.start,e.end))||(n&&e.lines.length>2e4?this.$splitAndapplyLargeDelta(e,2e4):(i(this.$lines,e,t),this._signal("change",e)))},e.prototype.$safeApplyDelta=function(e){var t=this.$lines.length;("remove"==e.action&&e.start.row20){n.running=setTimeout(n.$worker,20);break}}n.currentLine=t,-1==o&&(o=t),r<=o&&n.fireUpdateEvent(r,o)}}}return e.prototype.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},e.prototype.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},e.prototype.fireUpdateEvent=function(e,t){var n={first:e,last:t};this._signal("update",{data:n})},e.prototype.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},e.prototype.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},e.prototype.$updateOnChange=function(e){var t=e.start.row,n=e.end.row-t;if(0===n)this.lines[t]=null;else if("remove"==e.action)this.lines.splice(t,n+1,null),this.states.splice(t,n+1,null);else{var o=Array(n+1);o.unshift(t,1),this.lines.splice.apply(this.lines,o),this.states.splice.apply(this.states,o)}this.currentLine=Math.min(t,this.currentLine,this.doc.getLength()),this.stop()},e.prototype.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},e.prototype.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},e.prototype.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||"start"},e.prototype.$tokenizeRow=function(e){var t=this.doc.getLine(e),n=this.states[e-1],o=this.tokenizer.getLineTokens(t,n,e);return this.states[e]+""!=o.state+""?(this.states[e]=o.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=o.tokens},e.prototype.cleanup=function(){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.removeAllListeners()},e}();o.implement(r.prototype,i),t.BackgroundTokenizer=r})),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/range"],(function(e,t,n){"use strict";var o=e("./lib/lang"),i=e("./range").Range,r=function(){function e(e,t,n){void 0===n&&(n="text"),this.setRegexp(e),this.clazz=t,this.type=n}return e.prototype.setRegexp=function(e){this.regExp+""!=e+""&&(this.regExp=e,this.cache=[])},e.prototype.update=function(e,t,n,r){if(this.regExp)for(var s=r.firstRow,a=r.lastRow,l={},c=s;c<=a;c++){var u=this.cache[c];null==u&&((u=o.getMatchOffsets(n.getLine(c),this.regExp)).length>this.MAX_RANGES&&(u=u.slice(0,this.MAX_RANGES)),u=u.map((function(e){return new i(c,e.offset,c,e.offset+e.length)})),this.cache[c]=u.length?u:"");for(var h=u.length;h--;){var d=u[h].toScreenRange(n),p=d.toString();l[p]||(l[p]=!0,t.drawSingleLineMarker(e,d,this.clazz,r))}}},e}();r.prototype.MAX_RANGES=500,t.SearchHighlight=r})),ace.define("ace/undomanager",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=function(){function e(){this.$maxRev=0,this.$fromUndo=!1,this.$undoDepth=1/0,this.reset()}return e.prototype.addSession=function(e){this.$session=e},e.prototype.add=function(e,t,n){if(!this.$fromUndo&&e!=this.$lastDelta){if(this.$keepRedoStack||(this.$redoStack.length=0),!1===t||!this.lastDeltas){this.lastDeltas=[];var o=this.$undoStack.length;o>this.$undoDepth-1&&this.$undoStack.splice(0,o-this.$undoDepth+1),this.$undoStack.push(this.lastDeltas),e.id=this.$rev=++this.$maxRev}"remove"!=e.action&&"insert"!=e.action||(this.$lastDelta=e),this.lastDeltas.push(e)}},e.prototype.addSelection=function(e,t){this.selections.push({value:e,rev:t||this.$rev})},e.prototype.startNewGroup=function(){return this.lastDeltas=null,this.$rev},e.prototype.markIgnored=function(e,t){null==t&&(t=this.$rev+1);for(var n=this.$undoStack,o=n.length;o--;){var i=n[o][0];if(i.id<=e)break;i.id0},e.prototype.canRedo=function(){return this.$redoStack.length>0},e.prototype.bookmark=function(e){null==e&&(e=this.$rev),this.mark=e},e.prototype.isAtBookmark=function(){return this.$rev===this.mark},e.prototype.toJSON=function(){return{$redoStack:this.$redoStack,$undoStack:this.$undoStack}},e.prototype.fromJSON=function(e){this.reset(),this.$undoStack=e.$undoStack,this.$redoStack=e.$redoStack},e.prototype.$prettyPrint=function(e){return e?a(e):a(this.$undoStack)+"\n---\n"+a(this.$redoStack)},e}();o.prototype.hasUndo=o.prototype.canUndo,o.prototype.hasRedo=o.prototype.canRedo,o.prototype.isClean=o.prototype.isAtBookmark,o.prototype.markClean=o.prototype.bookmark;var i=e("./range").Range,r=i.comparePoints;function s(e){return{row:e.row,column:e.column}}function a(e){if(e=e||this,Array.isArray(e))return e.map(a).join("\n");var t="";return e.action?(t="insert"==e.action?"+":"-",t+="["+e.lines+"]"):e.value&&(t=Array.isArray(e.value)?e.value.map(l).join("\n"):l(e.value)),e.start&&(t+=l(e)),(e.id||e.rev)&&(t+="\t("+(e.id||e.rev)+")"),t}function l(e){return e.start.row+":"+e.start.column+"=>"+e.end.row+":"+e.end.column}function c(e,t){var n="insert"==e.action,o="insert"==t.action;if(n&&o)if(r(t.start,e.end)>=0)d(t,e,-1);else{if(!(r(t.start,e.start)<=0))return null;d(e,t,1)}else if(n&&!o)if(r(t.start,e.end)>=0)d(t,e,-1);else{if(!(r(t.end,e.start)<=0))return null;d(e,t,-1)}else if(!n&&o)if(r(t.start,e.start)>=0)d(t,e,1);else{if(!(r(t.start,e.start)<=0))return null;d(e,t,1)}else if(!n&&!o)if(r(t.start,e.start)>=0)d(t,e,1);else{if(!(r(t.end,e.start)<=0))return null;d(e,t,-1)}return[t,e]}function u(e,t){for(var n=e.length;n--;)for(var o=0;o=0?d(e,t,-1):(r(e.start,t.start)<=0||d(e,i.fromPoints(t.start,e.start),-1),d(t,e,1));else if(!n&&o)r(t.start,e.end)>=0?d(t,e,-1):(r(t.start,e.start)<=0||d(t,i.fromPoints(e.start,t.start),-1),d(e,t,1));else if(!n&&!o)if(r(t.start,e.end)>=0)d(t,e,-1);else{var s,a;if(!(r(t.end,e.start)<=0))return r(e.start,t.start)<0&&(s=e,e=g(e,t.start)),r(e.end,t.end)>0&&(a=g(e,t.end)),p(t.end,e.start,e.end,-1),a&&!s&&(e.lines=a.lines,e.start=a.start,e.end=a.end,a=e),[t,s,a].filter(Boolean);d(e,t,-1)}return[t,e]}function d(e,t,n){p(e.start,t.start,t.end,n),p(e.end,t.start,t.end,n)}function p(e,t,n,o){e.row==(1==o?t:n).row&&(e.column+=o*(n.column-t.column)),e.row+=o*(n.row-t.row)}function g(e,t){var n=e.lines,o=e.end;e.end=s(t);var i=e.end.row-e.start.row,r=n.splice(i,n.length),a=i?t.column:t.column-e.start.column;return n.push(r[0].substring(0,a)),r[0]=r[0].substr(a),{start:s(t),end:o,lines:r,action:e.action}}function m(e,t){t=function(e){return{start:s(e.start),end:s(e.end),action:e.action,lines:e.lines.slice()}}(t);for(var n=e.length;n--;){for(var o=e[n],i=0;ithis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(e),this.folds.sort((function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)})),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},e.prototype.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},e.prototype.walk=function(e,t,n){var o,i,r=0,s=this.folds,a=!0;null==t&&(t=this.end.row,n=this.end.column);for(var l=0;l0)){var l=o(e,s.start);return 0===a?t&&0!==l?-r-2:r:l>0||0===l&&!t?r:-r-1}}return-r-1},e.prototype.add=function(e){var t=!e.isEmpty(),n=this.pointIndex(e.start,t);n<0&&(n=-n-1);var o=this.pointIndex(e.end,t,n);return o<0?o=-o-1:o++,this.ranges.splice(n,o-n,e)},e.prototype.addList=function(e){for(var t=[],n=e.length;n--;)t.push.apply(t,this.add(e[n]));return t},e.prototype.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},e.prototype.merge=function(){for(var e,t=[],n=this.ranges,i=(n=n.sort((function(e,t){return o(e.start,t.start)})))[0],r=1;r=0},e.prototype.containsPoint=function(e){return this.pointIndex(e)>=0},e.prototype.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},e.prototype.clipRows=function(e,t){var n=this.ranges;if(n[0].start.row>t||n[n.length-1].start.row=o);s++);if("insert"==e.action){for(var l=i-o,c=-t.column+n.column;so);s++)if(u.start.row==o&&u.start.column>=t.column&&(u.start.column==t.column&&this.$bias<=0||(u.start.column+=c,u.start.row+=l)),u.end.row==o&&u.end.column>=t.column){if(u.end.column==t.column&&this.$bias<0)continue;u.end.column==t.column&&c>0&&su.start.column&&u.end.column==r[s+1].start.column&&(u.end.column-=c),u.end.column+=c,u.end.row+=l}}else for(l=o-i,c=t.column-n.column;si);s++)u.end.rowt.column)&&(u.end.column=t.column,u.end.row=t.row):(u.end.column+=c,u.end.row+=l):u.end.row>i&&(u.end.row+=l),u.start.rowt.column)&&(u.start.column=t.column,u.start.row=t.row):(u.start.column+=c,u.start.row+=l):u.start.row>i&&(u.start.row+=l);if(0!=l&&s=e)return i;if(i.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var n=this.$foldData,o=0;for(t&&(o=n.indexOf(t)),-1==o&&(o=0);o=e)return i}return null},this.getFoldedRowCount=function(e,t){for(var n=this.$foldData,o=t-e+1,i=0;i=t){a=e?o-=t-a:o=0);break}s>=e&&(o-=a>=e?s-a:s-e+1)}return o},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort((function(e,t){return e.start.row-t.start.row})),e},this.addFold=function(e,t){var n,o=this.$foldData,s=!1;e instanceof r?n=e:(n=new r(t,e)).collapseChildren=t.collapseChildren,this.$clipRangeToDocument(n.range);var a=n.start.row,l=n.start.column,c=n.end.row,u=n.end.column,h=this.getFoldAt(a,l,1),d=this.getFoldAt(c,u,-1);if(h&&d==h)return h.addSubFold(n);h&&!h.range.isStart(a,l)&&this.removeFold(h),d&&!d.range.isEnd(c,u)&&this.removeFold(d);var p=this.getFoldsInRange(n.range);p.length>0&&(this.removeFolds(p),n.collapseChildren||p.forEach((function(e){n.addSubFold(e)})));for(var g=0;g0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach((function(e){this.expandFold(e)}),this)},this.unfold=function(e,t){var n,i;if(null==e)n=new o(0,0,this.getLength(),0),null==t&&(t=!0);else if("number"==typeof e)n=new o(e,0,e,this.getLine(e).length);else if("row"in e)n=o.fromPoints(e,e);else{if(Array.isArray(e))return i=[],e.forEach((function(e){i=i.concat(this.unfold(e))}),this),i;n=e}for(var r=i=this.getFoldsInRangeList(n);1==i.length&&o.comparePoints(i[0].start,n.start)<0&&o.comparePoints(i[0].end,n.end)>0;)this.expandFolds(i),i=this.getFoldsInRangeList(n);if(0!=t?this.removeFolds(i):this.expandFolds(i),r.length)return r},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var n=this.getFoldLine(e,t);return n?n.end.row:e},this.getRowFoldStart=function(e,t){var n=this.getFoldLine(e,t);return n?n.start.row:e},this.getFoldDisplayLine=function(e,t,n,o,i){null==o&&(o=e.start.row),null==i&&(i=0),null==t&&(t=e.end.row),null==n&&(n=this.getLine(t).length);var r=this.doc,s="";return e.walk((function(e,t,n,a){if(!(tu)break}while(r&&l.test(r.type)&&!/^comment.start/.test(r.type));r=i.stepBackward()}else r=i.getCurrentToken();return c.end.row=i.getCurrentTokenRow(),c.end.column=i.getCurrentTokenColumn(),/^comment.end/.test(r.type)||(c.end.column+=r.value.length-2),c}},this.foldAll=function(e,t,n,o){null==n&&(n=1e5);var i=this.foldWidgets;if(i){t=t||this.getLength();for(var r=e=e||0;r=e&&(r=s.end.row,s.collapseChildren=n,this.addFold("...",s))}}},this.foldToLevel=function(e){for(this.foldAll();e-- >0;)this.unfold(null,!1)},this.foldAllComments=function(){var e=this;this.foldAll(null,null,null,(function(t){for(var n=e.getTokens(t),o=0;o=0;){var r=n[i];if(null==r&&(r=n[i]=this.getFoldWidget(i)),"start"==r){var s=this.getFoldWidgetRange(i);if(o||(o=s),s&&s.end.row>=e)break}i--}return{range:-1!==i&&s,firstRange:o}},this.onFoldWidgetClick=function(e,t){t instanceof a&&(t=t.domEvent);var n={children:t.shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey};if(!this.$toggleFoldWidget(e,n)){var o=t.target||t.srcElement;o&&/ace_fold-widget/.test(o.className)&&(o.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(this.getFoldWidget){var n=this.getFoldWidget(e),o=this.getLine(e),i="end"===n?-1:1,r=this.getFoldAt(e,-1===i?0:o.length,i);if(r)return t.children||t.all?this.removeFold(r):this.expandFold(r),r;var s=this.getFoldWidgetRange(e,!0);if(s&&!s.isMultiLine()&&(r=this.getFoldAt(s.start.row,s.start.column,1))&&s.isEqual(r.range))return this.removeFold(r),r;if(t.siblings){var a=this.getParentFoldRangeData(e);if(a.range)var l=a.range.start.row+1,c=a.range.end.row;this.foldAll(l,c,t.all?1e4:0)}else t.children?(c=s?s.end.row:this.getLength(),this.foldAll(e+1,c,t.all?1e4:0)):s&&(t.all&&(s.collapseChildren=1e4),this.addFold("...",s));return s}},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var n=this.$toggleFoldWidget(t,{});if(!n){var o=this.getParentFoldRangeData(t,!0);if(n=o.range||o.firstRange){t=n.start.row;var i=this.getFoldAt(t,this.getLine(t).length,1);i?this.removeFold(i):this.addFold("...",n)}}},this.updateFoldWidgets=function(e){var t=e.start.row,n=e.end.row-t;if(0===n)this.foldWidgets[t]=null;else if("remove"==e.action)this.foldWidgets.splice(t,n+1,null);else{var o=Array(n+1);o.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,o)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}})),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],(function(e,t,n){"use strict";var o=e("../token_iterator").TokenIterator,i=e("../range").Range;t.BracketMatch=function(){this.findMatchingBracket=function(e,t){if(0==e.column)return null;var n=t||this.getLine(e.row).charAt(e.column-1);if(""==n)return null;var o=n.match(/([\(\[\{])|([\)\]\}])/);return o?o[1]?this.$findClosingBracket(o[1],e):this.$findOpeningBracket(o[2],e):null},this.getBracketRange=function(e){var t,n=this.getLine(e.row),o=!0,r=n.charAt(e.column-1),s=r&&r.match(/([\(\[\{])|([\)\]\}])/);if(s||(r=n.charAt(e.column),e={row:e.row,column:e.column+1},s=r&&r.match(/([\(\[\{])|([\)\]\}])/),o=!1),!s)return null;if(s[1]){if(!(a=this.$findClosingBracket(s[1],e)))return null;t=i.fromPoints(e,a),o||(t.end.column++,t.start.column--),t.cursor=t.end}else{var a;if(!(a=this.$findOpeningBracket(s[2],e)))return null;t=i.fromPoints(a,e),o||(t.start.column++,t.end.column--),t.cursor=t.start}return t},this.getMatchingBracketRanges=function(e,t){var n=this.getLine(e.row),o=/([\(\[\{])|([\)\]\}])/,r=!t&&n.charAt(e.column-1),s=r&&r.match(o);if(s||(r=(void 0===t||t)&&n.charAt(e.column),e={row:e.row,column:e.column+1},s=r&&r.match(o)),!s)return null;var a=new i(e.row,e.column-1,e.row,e.column),l=s[1]?this.$findClosingBracket(s[1],e):this.$findOpeningBracket(s[2],e);return l?[a,new i(l.row,l.column,l.row,l.column+1)]:[a]},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{","<":">",">":"<"},this.$findOpeningBracket=function(e,t,n){var i=this.$brackets[e],r=1,s=new o(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){n||(n=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)").replace(/-close\b/,"-(close|open)")+")+"));for(var l=t.column-s.getCurrentTokenColumn()-2,c=a.value;;){for(;l>=0;){var u=c.charAt(l);if(u==i){if(0==(r-=1))return{row:s.getCurrentTokenRow(),column:l+s.getCurrentTokenColumn()}}else u==e&&(r+=1);l-=1}do{a=s.stepBackward()}while(a&&!n.test(a.type));if(null==a)break;l=(c=a.value).length-1}return null}},this.$findClosingBracket=function(e,t,n){var i=this.$brackets[e],r=1,s=new o(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){n||(n=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)").replace(/-open\b/,"-(close|open)")+")+"));for(var l=t.column-s.getCurrentTokenColumn();;){for(var c=a.value,u=c.length;l"===t.value?o=!0:-1!==t.type.indexOf("tag-name")&&(n=!0))}while(t&&!n);return t},this.$findClosingTag=function(e,t){var n,o=t.value,r=t.value,s=0,a=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);t=e.stepForward();var l=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+t.value.length),c=!1;do{if(n=t,t=e.stepForward()){if(">"===t.value&&!c){var u=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);c=!0}if(-1!==t.type.indexOf("tag-name")){if(r===(o=t.value))if("<"===n.value)s++;else if(""!==t.value)return;var p=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1)}}else r===o&&"/>"===t.value&&--s<0&&(p=d=h=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+2),u=new i(l.end.row,l.end.column,l.end.row,l.end.column+1))}}while(t&&s>=0);if(a&&u&&h&&p&&l&&d)return{openTag:new i(a.start.row,a.start.column,u.end.row,u.end.column),closeTag:new i(h.start.row,h.start.column,p.end.row,p.end.column),openTagName:l,closeTagName:d}},this.$findOpeningTag=function(e,t){var n=e.getCurrentToken(),o=t.value,r=0,s=e.getCurrentTokenRow(),a=e.getCurrentTokenColumn(),l=a+2,c=new i(s,a,s,l);e.stepForward();var u=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+t.value.length);if((t=e.stepForward())&&">"===t.value){var h=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);e.stepBackward(),e.stepBackward();do{if(t=n,s=e.getCurrentTokenRow(),l=(a=e.getCurrentTokenColumn())+t.value.length,n=e.stepBackward(),t)if(-1!==t.type.indexOf("tag-name")){if(o===t.value)if("<"===n.value){if(++r>0){var d=new i(s,a,s,l),p=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);do{t=e.stepForward()}while(t&&">"!==t.value);var g=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1)}}else""===t.value){for(var m=0,f=n;f;){if(-1!==f.type.indexOf("tag-name")&&f.value===o){r--;break}if("<"===f.value)break;f=e.stepBackward(),m++}for(var y=0;yn&&(this.$docRowCache.splice(n,t),this.$screenRowCache.splice(n,t))},e.prototype.$getRowCacheIndex=function(e,t){for(var n=0,o=e.length-1;n<=o;){var i=n+o>>1,r=e[i];if(t>r)n=i+1;else{if(!(t=t);r++);return(n=o[r])?(n.index=r,n.start=i-n.value.length,n):null},e.prototype.setUndoManager=function(e){if(this.$undoManager=e,this.$informUndoManager&&this.$informUndoManager.cancel(),e){var t=this;e.addSession(this),this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.mergeUndoDeltas=!1},this.$informUndoManager=i.delayedCall(this.$syncInformUndoManager)}else this.$syncInformUndoManager=function(){}},e.prototype.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},e.prototype.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},e.prototype.getTabString=function(){return this.getUseSoftTabs()?i.stringRepeat(" ",this.getTabSize()):"\t"},e.prototype.setUseSoftTabs=function(e){this.setOption("useSoftTabs",e)},e.prototype.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},e.prototype.setTabSize=function(e){this.setOption("tabSize",e)},e.prototype.getTabSize=function(){return this.$tabSize},e.prototype.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize==0},e.prototype.setNavigateWithinSoftTabs=function(e){this.setOption("navigateWithinSoftTabs",e)},e.prototype.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},e.prototype.setOverwrite=function(e){this.setOption("overwrite",e)},e.prototype.getOverwrite=function(){return this.$overwrite},e.prototype.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},e.prototype.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._signal("changeBreakpoint",{})},e.prototype.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._signal("changeBreakpoint",{})},e.prototype.getBreakpoints=function(){return this.$breakpoints},e.prototype.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t0&&(o=!!n.charAt(t-1).match(this.tokenRe)),o||(o=!!n.charAt(t).match(this.tokenRe)),o)var i=this.tokenRe;else i=/^\s+$/.test(n.slice(t-1,t+1))?/\s/:this.nonTokenRe;var r=t;if(r>0){do{r--}while(r>=0&&n.charAt(r).match(i));r++}for(var s=t;se&&(e=t.screenWidth)})),this.lineWidgetWidth=e},e.prototype.$computeWidth=function(e){if(this.$modified||e){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var t=this.doc.getAllLines(),n=this.$rowLengthCache,o=0,i=0,r=this.$foldData[i],s=r?r.start.row:1/0,a=t.length,l=0;ls){if((l=r.end.row+1)>=a)break;s=(r=this.$foldData[i++])?r.start.row:1/0}null==n[l]&&(n[l]=this.$getStringScreenWidth(t[l])[0]),n[l]>o&&(o=n[l])}this.screenWidth=o}},e.prototype.getLine=function(e){return this.doc.getLine(e)},e.prototype.getLines=function(e,t){return this.doc.getLines(e,t)},e.prototype.getLength=function(){return this.doc.getLength()},e.prototype.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},e.prototype.insert=function(e,t){return this.doc.insert(e,t)},e.prototype.remove=function(e){return this.doc.remove(e)},e.prototype.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},e.prototype.undoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var n=e.length-1;-1!=n;n--){var o=e[n];"insert"==o.action||"remove"==o.action?this.doc.revertDelta(o):o.folds&&this.addFolds(o.folds)}!t&&this.$undoSelect&&(e.selectionBefore?this.selection.fromJSON(e.selectionBefore):this.selection.setRange(this.$getUndoSelection(e,!0))),this.$fromUndo=!1}},e.prototype.redoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var n=0;ne.end.column&&(r.start.column+=c),r.end.row==e.end.row&&r.end.column>e.end.column&&(r.end.column+=c)),s&&r.start.row>=e.end.row&&(r.start.row+=s,r.end.row+=s)}if(r.end=this.insert(r.start,o),i.length){var a=e.start,l=r.start,c=(s=l.row-a.row,l.column-a.column);this.addFolds(i.map((function(e){return(e=e.clone()).start.row==a.row&&(e.start.column+=c),e.end.row==a.row&&(e.end.column+=c),e.start.row+=s,e.end.row+=s,e})))}return r},e.prototype.indentRows=function(e,t,n){n=n.replace(/\t/g,this.getTabString());for(var o=e;o<=t;o++)this.doc.insertInLine({row:o,column:0},n)},e.prototype.outdentRows=function(e){for(var t=e.collapseRows(),n=new u(0,0,0,0),o=this.getTabSize(),i=t.start.row;i<=t.end.row;++i){var r=this.getLine(i);n.start.row=i,n.end.row=i;for(var s=0;s0){var i;if((i=this.getRowFoldEnd(t+n))>this.doc.getLength()-1)return 0;o=i-t}else e=this.$clipRowToDocument(e),o=(t=this.$clipRowToDocument(t))-e+1;var r=new u(e,0,t,Number.MAX_VALUE),s=this.getFoldsInRange(r).map((function(e){return(e=e.clone()).start.row+=o,e.end.row+=o,e})),a=0==n?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+o,a),s.length&&this.addFolds(s),o},e.prototype.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},e.prototype.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},e.prototype.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},e.prototype.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},e.prototype.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},e.prototype.$clipPositionToDocument=function(e,t){if(t=Math.max(0,t),e<0)e=0,t=0;else{var n=this.doc.getLength();e>=n?(e=n-1,t=this.doc.getLine(n-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},e.prototype.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},e.prototype.setUseWrapMode=function(e){if(e!=this.$useWrapMode){if(this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0),e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal("changeWrapMode")}},e.prototype.getUseWrapMode=function(){return this.$useWrapMode},e.prototype.setWrapLimitRange=function(e,t){this.$wrapLimitRange.min===e&&this.$wrapLimitRange.max===t||(this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},e.prototype.adjustWrapLimit=function(e,t){var n=this.$wrapLimitRange;n.max<0&&(n={min:t,max:t});var o=this.$constrainWrapLimit(e,n.min,n.max);return o!=this.$wrapLimit&&o>1&&(this.$wrapLimit=o,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0)},e.prototype.$constrainWrapLimit=function(e,t,n){return t&&(e=Math.max(t,e)),n&&(e=Math.min(n,e)),e},e.prototype.getWrapLimit=function(){return this.$wrapLimit},e.prototype.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},e.prototype.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},e.prototype.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,n=e.action,o=e.start,i=e.end,r=o.row,s=i.row,a=s-r,l=null;if(this.$updating=!0,0!=a)if("remove"===n){this[t?"$wrapData":"$rowLengthCache"].splice(r,a);var c=this.$foldData;l=this.getFoldsInRange(e),this.removeFolds(l);var u=0;if(m=this.getFoldLine(i.row)){m.addRemoveChars(i.row,i.column,o.column-i.column),m.shiftRow(-a);var h=this.getFoldLine(r);h&&h!==m&&(h.merge(m),m=h),u=c.indexOf(m)+1}for(;u=i.row&&m.shiftRow(-a);s=r}else{var d=Array(a);d.unshift(r,0);var p=t?this.$wrapData:this.$rowLengthCache;if(p.splice.apply(p,d),c=this.$foldData,u=0,m=this.getFoldLine(r)){var g=m.range.compareInside(o.row,o.column);0==g?(m=m.split(o.row,o.column))&&(m.shiftRow(a),m.addRemoveChars(s,0,i.column-o.column)):-1==g&&(m.addRemoveChars(r,0,i.column-o.column),m.shiftRow(a)),u=c.indexOf(m)+1}for(;u=r&&m.shiftRow(a)}}else a=Math.abs(e.start.column-e.end.column),"remove"===n&&(l=this.getFoldsInRange(e),this.removeFolds(l),a=-a),(m=this.getFoldLine(r))&&m.addRemoveChars(r,o.column,a);return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(r,s):this.$updateRowLengthCache(r,s),l},e.prototype.$updateRowLengthCache=function(e,t,n){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},e.prototype.$updateWrapData=function(e,t){var n,o,i=this.doc.getAllLines(),r=this.getTabSize(),s=this.$wrapData,a=this.$wrapLimit,l=e;for(t=Math.min(t,i.length-1);l<=t;)(o=this.getFoldLine(l,o))?(n=[],o.walk(function(e,t,o,r){var s;if(null!=e){(s=this.$getDisplayTokens(e,n.length))[0]=v;for(var a=1;at-h;){var d=r+t-h;if(e[d-1]>=x&&e[d]>=x)u(d);else if(e[d]!=v&&e[d]!=b){for(var p=Math.max(d-(t-(t>>2)),r-1);d>p&&e[d]p&&e[d]p&&e[d]==w;)d--}else for(;d>p&&e[d]p?u(++d):(e[d=r+t]==y&&d--,u(d-h))}else{for(;d!=r-1&&e[d]!=v;d--);if(d>r){u(d);continue}for(d=r+t;d39&&r<48||r>57&&r<64?o.push(w):r>=4352&&$(r)?o.push(f,y):o.push(f)}return o},e.prototype.$getStringScreenWidth=function(e,t,n){if(0==t)return[0,0];var o,i;for(null==t&&(t=1/0),n=n||0,i=0;i=4352&&$(o)?n+=2:n+=1,!(n>t));i++);return[n,i]},e.prototype.getRowLength=function(e){var t=1;return this.lineWidgets&&(t+=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0),this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+t:t},e.prototype.getRowLineCount=function(e){return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1:1},e.prototype.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),n=this.$wrapData[t.row];return n.length&&n[0]=0){a=c[u],r=this.$docRowCache[u];var d=e>c[h-1]}else d=!h;for(var p=this.getLength()-1,g=this.getNextFoldLine(r),m=g?g.start.row:1/0;a<=e&&!(a+(l=this.getRowLength(r))>e||r>=p);)a+=l,++r>m&&(r=g.end.row+1,m=(g=this.getNextFoldLine(r,g))?g.start.row:1/0),d&&(this.$docRowCache.push(r),this.$screenRowCache.push(a));if(g&&g.start.row<=r)o=this.getFoldDisplayLine(g),r=g.start.row;else{if(a+l<=e||r>p)return{row:p,column:this.getLine(p).length};o=this.getLine(r),g=null}var f=0,y=Math.floor(e-a);if(this.$useWrapMode){var v=this.$wrapData[r];v&&(i=v[y],y>0&&v.length&&(f=v.indent,s=v[y-1]||v[v.length-1],o=o.substring(s)))}return void 0!==n&&this.$bidiHandler.isBidiRow(a+y,r,y)&&(t=this.$bidiHandler.offsetToCol(n)),s+=this.$getStringScreenWidth(o,t-f)[1],this.$useWrapMode&&s>=i&&(s=i-1),g?g.idxToPosition(s):{row:r,column:s}},e.prototype.documentToScreenPosition=function(e,t){if(void 0===t)var n=this.$clipPositionToDocument(e.row,e.column);else n=this.$clipPositionToDocument(e,t);e=n.row,t=n.column;var o,i=0,r=null;(o=this.getFoldAt(e,t,1))&&(e=o.start.row,t=o.start.column);var s,a=0,l=this.$docRowCache,c=this.$getRowCacheIndex(l,e),u=l.length;if(u&&c>=0){a=l[c],i=this.$screenRowCache[c];var h=e>l[u-1]}else h=!u;for(var d=this.getNextFoldLine(a),p=d?d.start.row:1/0;a=p){if((s=d.end.row+1)>e)break;p=(d=this.getNextFoldLine(s,d))?d.start.row:1/0}else s=a+1;i+=this.getRowLength(a),a=s,h&&(this.$docRowCache.push(a),this.$screenRowCache.push(i))}var g="";d&&a>=p?(g=this.getFoldDisplayLine(d,e,t),r=d.start.row):(g=this.getLine(e).substring(0,t),r=e);var m=0;if(this.$useWrapMode){var f=this.$wrapData[r];if(f){for(var y=0;g.length>=f[y];)i++,y++;g=g.substring(f[y-1]||0,g.length),m=y>0?f.indent:0}}return this.lineWidgets&&this.lineWidgets[a]&&this.lineWidgets[a].rowsAbove&&(i+=this.lineWidgets[a].rowsAbove),{row:i,column:m+this.$getStringScreenWidth(g)[0]}},e.prototype.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},e.prototype.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},e.prototype.getScreenLength=function(){var e=0,t=null;if(this.$useWrapMode)for(var n=this.$wrapData.length,o=0,i=(a=0,(t=this.$foldData[a++])?t.start.row:1/0);oi&&(o=t.end.row+1,i=(t=this.$foldData[a++])?t.start.row:1/0)}else{e=this.getLength();for(var s=this.$foldData,a=0;an);r++);return[o,r]})},e.prototype.destroy=function(){this.destroyed||(this.bgTokenizer.setDocument(null),this.bgTokenizer.cleanup(),this.destroyed=!0),this.$stopWorker(),this.removeAllListeners(),this.doc&&this.doc.off("change",this.$onChange),this.selection.detach()},e}();m.$uid=0,m.prototype.$modes=s.$modes,m.prototype.getValue=m.prototype.toString,m.prototype.$defaultUndoManager={undo:function(){},redo:function(){},hasUndo:function(){},hasRedo:function(){},reset:function(){},add:function(){},addSelection:function(){},startNewGroup:function(){},addSession:function(){}},m.prototype.$overwrite=!1,m.prototype.$mode=null,m.prototype.$modeId=null,m.prototype.$scrollTop=0,m.prototype.$scrollLeft=0,m.prototype.$wrapLimit=80,m.prototype.$useWrapMode=!1,m.prototype.$wrapLimitRange={min:null,max:null},m.prototype.lineWidgets=null,m.prototype.isFullWidth=$,o.implement(m.prototype,a);var f=1,y=2,v=3,b=4,w=9,x=10,k=11,C=12;function $(e){return!(e<4352)&&(e>=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510)}e("./edit_session/folding").Folding.call(m.prototype),e("./edit_session/bracket_match").BracketMatch.call(m.prototype),s.defineOptions(m.prototype,"session",{wrap:{set:function(e){if(e&&"off"!=e?"free"==e?e=!0:"printMargin"==e?e=-1:"string"==typeof e&&(e=parseInt(e,10)||!1):e=!1,this.$wrap!=e)if(this.$wrap=e,e){var t="number"==typeof e?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}else this.setUseWrapMode(!1)},get:function(){return this.getUseWrapMode()?-1==this.$wrap?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){(e="auto"==e?"text"!=this.$mode.type:"text"!=e)!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0)))},initialValue:"auto"},indentedSoftWrap:{set:function(){this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0))},initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){(e=parseInt(e))>0&&this.$tabSize!==e&&(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},foldStyle:{set:function(e){this.setFoldStyle(e)},handlesSet:!0},overwrite:{set:function(e){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId},handlesSet:!0}}),t.EditSession=m})),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],(function(e,t,n){"use strict";var o=e("./lib/lang"),i=e("./lib/oop"),r=e("./range").Range,s=function(){function e(){this.$options={}}return e.prototype.set=function(e){return i.mixin(this.$options,e),this},e.prototype.getOptions=function(){return o.copyObject(this.$options)},e.prototype.setOptions=function(e){this.$options=e},e.prototype.find=function(e){var t=this.$options,n=this.$matchIterator(e,t);if(!n)return!1;var o=null;return n.forEach((function(e,n,i,s){return o=new r(e,n,i,s),!(n==s&&t.start&&t.start.start&&0!=t.skipCurrent&&o.isEqual(t.start)&&(o=null,1))})),o},e.prototype.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var n=t.range,i=n?e.getLines(n.start.row,n.end.row):e.doc.getAllLines(),s=[],a=t.re;if(t.$isMultiLine){var l,c=a.length,u=i.length-c;e:for(var h=a.offset||0;h<=u;h++){for(var d=0;dm||(s.push(l=new r(h,m,h+c-1,f)),c>2&&(h=h+c-2))}}else for(var y=0;yx&&s[d].end.row==k;)d--;for(s=s.slice(y,d+1),y=0,d=s.length;y=c;n--)if(p(n,Number.MAX_VALUE,e))return;if(0!=t.wrap)for(n=u,c=l.row;n>=c;n--)if(p(n,Number.MAX_VALUE,e))return}};else h=function(e){var n=l.row;if(!p(n,l.column,e)){for(n+=1;n<=u;n++)if(p(n,0,e))return;if(0!=t.wrap)for(n=c,u=l.row;n<=u;n++)if(p(n,0,e))return}};if(t.$isMultiLine)var d=n.length,p=function(t,o,r){var s=i?t-d+1:t;if(!(s<0||s+d>e.getLength())){var a=e.getLine(s),l=a.search(n[0]);if(!(!i&&lo))return!!r(s,l,s+d-1,u)||void 0}}};else p=i?function(t,i,r){var a,l=e.getLine(t),c=[],u=0;for(n.lastIndex=0;a=n.exec(l);){var h=a[0].length;if(u=a.index,!h){if(u>=l.length)break;n.lastIndex=u+=o.skipEmptyMatch(l,u,s)}if(a.index+h>i)break;c.push(a.index,h)}for(var d=c.length-1;d>=0;d-=2){var p=c[d-1];if(r(t,p,t,p+(h=c[d])))return!0}}:function(t,i,r){var a,l,c=e.getLine(t);for(n.lastIndex=i;l=n.exec(c);){var u=l[0].length;if(r(t,a=l.index,t,a+u))return!0;if(!u&&(n.lastIndex=a+=o.skipEmptyMatch(c,a,s),a>=c.length))return!1}};return{forEach:h}},e}();t.Search=s})),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=e("../lib/keys"),s=e("../lib/useragent"),a=r.KEY_MODS,l=function(){function e(e,t){this.$init(e,t,!1)}return e.prototype.$init=function(e,t,n){this.platform=t||(s.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=n},e.prototype.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},e.prototype.removeCommand=function(e,t){var n=e&&("string"==typeof e?e:e.name);e=this.commands[n],t||delete this.commands[n];var o=this.commandKeyBinding;for(var i in o){var r=o[i];if(r==e)delete o[i];else if(Array.isArray(r)){var s=r.indexOf(e);-1!=s&&(r.splice(s,1),1==r.length&&(o[i]=r[0]))}}},e.prototype.bindKey=function(e,t,n){if("object"==typeof e&&e&&(null==n&&(n=e.position),e=e[this.platform]),e)return"function"==typeof t?this.addCommand({exec:t,bindKey:e,name:t.name||e}):void e.split("|").forEach((function(e){var o="";if(-1!=e.indexOf(" ")){var i=e.split(/\s+/);e=i.pop(),i.forEach((function(e){var t=this.parseKeys(e),n=a[t.hashId]+t.key;o+=(o?" ":"")+n,this._addCommandToBinding(o,"chainKeys")}),this),o+=" "}var r=this.parseKeys(e),s=a[r.hashId]+r.key;this._addCommandToBinding(o+s,t,n)}),this)},e.prototype._addCommandToBinding=function(e,t,n){var o,i=this.commandKeyBinding;if(t)if(!i[e]||this.$singleCommand)i[e]=t;else{Array.isArray(i[e])?-1!=(o=i[e].indexOf(t))&&i[e].splice(o,1):i[e]=[i[e]],"number"!=typeof n&&(n=c(t));var r=i[e];for(o=0;on);o++);r.splice(o,0,t)}else delete i[e]},e.prototype.addCommands=function(e){e&&Object.keys(e).forEach((function(t){var n=e[t];if(n){if("string"==typeof n)return this.bindKey(n,t);"function"==typeof n&&(n={exec:n}),"object"==typeof n&&(n.name||(n.name=t),this.addCommand(n))}}),this)},e.prototype.removeCommands=function(e){Object.keys(e).forEach((function(t){this.removeCommand(e[t])}),this)},e.prototype.bindKeys=function(e){Object.keys(e).forEach((function(t){this.bindKey(t,e[t])}),this)},e.prototype._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},e.prototype.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter((function(e){return e})),n=t.pop(),o=r[n];if(r.FUNCTION_KEYS[o])n=r.FUNCTION_KEYS[o].toLowerCase();else{if(!t.length)return{key:n,hashId:-1};if(1==t.length&&"shift"==t[0])return{key:n.toUpperCase(),hashId:-1}}for(var i=0,s=t.length;s--;){var a=r.KEY_MODS[t[s]];if(null==a)return"undefined"!=typeof console&&console.error("invalid modifier "+t[s]+" in "+e),!1;i|=a}return{key:n,hashId:i}},e.prototype.findKeyCommand=function(e,t){var n=a[e]+t;return this.commandKeyBinding[n]},e.prototype.handleKeyboard=function(e,t,n,o){if(!(o<0)){var i=a[t]+n,r=this.commandKeyBinding[i];return e.$keyChain&&(e.$keyChain+=" "+i,r=this.commandKeyBinding[e.$keyChain]||r),!r||"chainKeys"!=r&&"chainKeys"!=r[r.length-1]?(e.$keyChain&&(t&&4!=t||1!=n.length?(-1==t||o>0)&&(e.$keyChain=""):e.$keyChain=e.$keyChain.slice(0,-i.length-1)),{command:r}):(e.$keyChain=e.$keyChain||i,{command:"null"})}},e.prototype.getStatusText=function(e,t){return t.$keyChain||""},e}();function c(e){return"object"==typeof e&&e.bindKey&&e.bindKey.position||(e.isDefault?-100:0)}var u=function(e){function t(t,n){var o=e.call(this,t,n)||this;return o.$singleCommand=!0,o}return i(t,e),t}(l);u.call=function(e,t,n){l.prototype.$init.call(e,t,n,!0)},l.call=function(e,t,n){l.prototype.$init.call(e,t,n,!1)},t.HashHandler=u,t.MultiHashHandler=l})),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=e("../lib/oop"),s=e("../keyboard/hash_handler").MultiHashHandler,a=e("../lib/event_emitter").EventEmitter,l=function(e){function t(t,n){var o=e.call(this,n,t)||this;return o.byName=o.commands,o.setDefaultHandler("exec",(function(e){return e.args?e.command.exec(e.editor,e.args,e.event,!1):e.command.exec(e.editor,{},e.event,!0)})),o}return i(t,e),t.prototype.exec=function(e,t,n){if(Array.isArray(e)){for(var o=e.length;o--;)if(this.exec(e[o],t,n))return!0;return!1}if("string"==typeof e&&(e=this.commands[e]),!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;if(0!=this.$checkCommandState&&e.isAvailable&&!e.isAvailable(t))return!1;var i={editor:t,command:e,args:n};return i.returnValue=this._emit("exec",i),this._signal("afterExec",i),!1!==i.returnValue},t.prototype.toggleRecording=function(e){if(!this.$inReplay)return e&&e._emit("changeStatus"),this.recording?(this.macro.pop(),this.off("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},t.prototype.replay=function(e){if(!this.$inReplay&&this.macro){if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach((function(t){"string"==typeof t?this.exec(t,e):this.exec(t[0],e,t[1])}),this)}finally{this.$inReplay=!1}}},t.prototype.trimMacro=function(e){return e.map((function(e){return"string"!=typeof e[0]&&(e[0]=e[0].name),e[1]||(e=e[0]),e}))},t}(s);r.implement(l.prototype,a),t.CommandManager=l})),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],(function(e,t,n){"use strict";var o=e("../lib/lang"),i=e("../config"),r=e("../range").Range;function s(e,t){return{win:e,mac:t}}t.commands=[{name:"showSettingsMenu",description:"Show settings menu",bindKey:s("Ctrl-,","Command-,"),exec:function(e){i.loadModule("ace/ext/settings_menu",(function(t){t.init(e),e.showSettingsMenu()}))},readOnly:!0},{name:"goToNextError",description:"Go to next error",bindKey:s("Alt-E","F4"),exec:function(e){i.loadModule("ace/ext/error_marker",(function(t){t.showErrorMarker(e,1)}))},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",description:"Go to previous error",bindKey:s("Alt-Shift-E","Shift-F4"),exec:function(e){i.loadModule("ace/ext/error_marker",(function(t){t.showErrorMarker(e,-1)}))},scrollIntoView:"animate",readOnly:!0},{name:"selectall",description:"Select all",bindKey:s("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",description:"Center selection",bindKey:s(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",description:"Go to line...",bindKey:s("Ctrl-L","Command-L"),exec:function(e,t){"number"!=typeof t||isNaN(t)||e.gotoLine(t),e.prompt({$type:"gotoLine"})},readOnly:!0},{name:"fold",bindKey:s("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:s("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",description:"Toggle fold widget",bindKey:s("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",description:"Toggle parent fold widget",bindKey:s("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",description:"Fold all",bindKey:s(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldAllComments",description:"Fold all comments",bindKey:s(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAllComments()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",description:"Fold other",bindKey:s("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",description:"Unfold all",bindKey:s("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",description:"Find next",bindKey:s("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",description:"Find previous",bindKey:s("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",description:"Select or find next",bindKey:s("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",description:"Select or find previous",bindKey:s("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",description:"Find",bindKey:s("Ctrl-F","Command-F"),exec:function(e){i.loadModule("ace/ext/searchbox",(function(t){t.Search(e)}))},readOnly:!0},{name:"overwrite",description:"Overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",description:"Select to start",bindKey:s("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",description:"Go to start",bindKey:s("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",description:"Select up",bindKey:s("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",description:"Go line up",bindKey:s("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",description:"Select to end",bindKey:s("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",description:"Go to end",bindKey:s("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",description:"Select down",bindKey:s("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",description:"Go line down",bindKey:s("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",description:"Select word left",bindKey:s("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",description:"Go to word left",bindKey:s("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",description:"Select to line start",bindKey:s("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",description:"Go to line start",bindKey:s("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",description:"Select left",bindKey:s("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",description:"Go to left",bindKey:s("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",description:"Select word right",bindKey:s("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",description:"Go to word right",bindKey:s("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",description:"Select to line end",bindKey:s("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",description:"Go to line end",bindKey:s("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",description:"Select right",bindKey:s("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",description:"Go to right",bindKey:s("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",description:"Select page down",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",description:"Page down",bindKey:s(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",description:"Go to page down",bindKey:s("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",description:"Select page up",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",description:"Page up",bindKey:s(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",description:"Go to page up",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",description:"Scroll up",bindKey:s("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",description:"Scroll down",bindKey:s("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",description:"Select line start",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",description:"Select line end",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",description:"Toggle recording",bindKey:s("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",description:"Replay macro",bindKey:s("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",description:"Jump to matching",bindKey:s("Ctrl-\\|Ctrl-P","Command-\\"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",description:"Select to matching",bindKey:s("Ctrl-Shift-\\|Ctrl-Shift-P","Command-Shift-\\"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",description:"Expand to matching",bindKey:s("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",description:"Pass keys to browser",bindKey:s(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",description:"Copy",exec:function(e){},readOnly:!0},{name:"cut",description:"Cut",exec:function(e){var t=e.$copyWithEmptySelection&&e.selection.isEmpty()?e.selection.getLineRange():e.selection.getRange();e._emit("cut",t),t.isEmpty()||e.session.remove(t),e.clearSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",description:"Paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",description:"Remove line",bindKey:s("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",description:"Duplicate selection",bindKey:s("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",description:"Sort lines",bindKey:s("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",description:"Toggle comment",bindKey:s("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",description:"Toggle block comment",bindKey:s("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",description:"Modify number up",bindKey:s("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",description:"Modify number down",bindKey:s("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",description:"Replace",bindKey:s("Ctrl-H","Command-Option-F"),exec:function(e){i.loadModule("ace/ext/searchbox",(function(t){t.Search(e,!0)}))}},{name:"undo",description:"Undo",bindKey:s("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",description:"Redo",bindKey:s("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",description:"Copy lines up",bindKey:s("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",description:"Move lines up",bindKey:s("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",description:"Copy lines down",bindKey:s("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",description:"Move lines down",bindKey:s("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",description:"Delete",bindKey:s("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",description:"Backspace",bindKey:s("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",description:"Cut or delete",bindKey:s("Shift-Delete",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",description:"Remove to line start",bindKey:s("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",description:"Remove to line end",bindKey:s("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",description:"Remove to line start hard",bindKey:s("Ctrl-Shift-Backspace",null),exec:function(e){var t=e.selection.getRange();t.start.column=0,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",description:"Remove to line end hard",bindKey:s("Ctrl-Shift-Delete",null),exec:function(e){var t=e.selection.getRange();t.end.column=Number.MAX_VALUE,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",description:"Remove word left",bindKey:s("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",description:"Remove word right",bindKey:s("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",description:"Outdent",bindKey:s("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",description:"Indent",bindKey:s("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",description:"Block outdent",bindKey:s("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",description:"Block indent",bindKey:s("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",description:"Insert string",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",description:"Insert text",exec:function(e,t){e.insert(o.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",description:"Split line",bindKey:s(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",description:"Transpose letters",bindKey:s("Alt-Shift-X","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",description:"To uppercase",bindKey:s("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",description:"To lowercase",bindKey:s("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"autoindent",description:"Auto Indent",bindKey:s(null,null),exec:function(e){e.autoIndent()},multiSelectAction:"forEachLine",scrollIntoView:"animate"},{name:"expandtoline",description:"Expand to line",bindKey:s("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"openlink",bindKey:s("Ctrl+F3","F3"),exec:function(e){e.openLink()}},{name:"joinlines",description:"Join lines",bindKey:s(null,null),exec:function(e){for(var t=e.selection.isBackwards(),n=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),i=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),s=e.session.doc.getLine(n.row).length,a=e.session.doc.getTextRange(e.selection.getRange()).replace(/\n\s*/," ").length,l=e.session.doc.getLine(n.row),c=n.row+1;c<=i.row+1;c++){var u=o.stringTrimLeft(o.stringTrimRight(e.session.doc.getLine(c)));0!==u.length&&(u=" "+u),l+=u}i.row+10?(e.selection.moveCursorTo(n.row,n.column),e.selection.selectTo(n.row,n.column+a)):(s=e.session.doc.getLine(n.row).length>s?s+1:s,e.selection.moveCursorTo(n.row,s))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",description:"Invert selection",bindKey:s(null,null),exec:function(e){var t=e.session.doc.getLength()-1,n=e.session.doc.getLine(t).length,o=e.selection.rangeList.ranges,i=[];o.length<1&&(o=[e.selection.getRange()]);for(var s=0;st[n].column&&n++,r.unshift(n,0),t.splice.apply(t,r),this.$updateRows()}}},e.prototype.$updateRows=function(){var e=this.session.lineWidgets;if(e){var t=!0;e.forEach((function(e,n){if(e)for(t=!1,e.row=n;e.$oldWidget;)e.$oldWidget.row=n,e=e.$oldWidget})),t&&(this.session.lineWidgets=null)}},e.prototype.$registerLineWidget=function(e){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var t=this.session.lineWidgets[e.row];return t&&(e.$oldWidget=t,t.el&&t.el.parentNode&&(t.el.parentNode.removeChild(t.el),t._inDocument=!1)),this.session.lineWidgets[e.row]=e,e},e.prototype.addLineWidget=function(e){if(this.$registerLineWidget(e),e.session=this.session,!this.editor)return e;var t=this.editor.renderer;e.html&&!e.el&&(e.el=o.createElement("div"),e.el.innerHTML=e.html),e.text&&!e.el&&(e.el=o.createElement("div"),e.el.textContent=e.text),e.el&&(o.addCssClass(e.el,"ace_lineWidgetContainer"),e.className&&o.addCssClass(e.el,e.className),e.el.style.position="absolute",e.el.style.zIndex=5,t.container.appendChild(e.el),e._inDocument=!0,e.coverGutter||(e.el.style.zIndex=3),null==e.pixelHeight&&(e.pixelHeight=e.el.offsetHeight)),null==e.rowCount&&(e.rowCount=e.pixelHeight/t.layerConfig.lineHeight);var n=this.session.getFoldAt(e.row,0);if(e.$fold=n,n){var i=this.session.lineWidgets;e.row!=n.end.row||i[n.start.row]?e.hidden=!0:i[n.start.row]=e}return this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows(),this.renderWidgets(null,t),this.onWidgetChanged(e),e},e.prototype.removeLineWidget=function(e){if(e._inDocument=!1,e.session=null,e.el&&e.el.parentNode&&e.el.parentNode.removeChild(e.el),e.editor&&e.editor.destroy)try{e.editor.destroy()}catch(e){}if(this.session.lineWidgets){var t=this.session.lineWidgets[e.row];if(t==e)this.session.lineWidgets[e.row]=e.$oldWidget,e.$oldWidget&&this.onWidgetChanged(e.$oldWidget);else for(;t;){if(t.$oldWidget==e){t.$oldWidget=e.$oldWidget;break}t=t.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows()},e.prototype.getWidgetsAtRow=function(e){for(var t=this.session.lineWidgets,n=t&&t[e],o=[];n;)o.push(n),n=n.$oldWidget;return o},e.prototype.onWidgetChanged=function(e){this.session._changedWidgets.push(e),this.editor&&this.editor.renderer.updateFull()},e.prototype.measureWidgets=function(e,t){var n=this.session._changedWidgets,o=t.layerConfig;if(n&&n.length){for(var i=1/0,r=0;r0&&!o[i];)i--;this.firstRow=n.firstRow,this.lastRow=n.lastRow,t.$cursorLayer.config=n;for(var s=i;s<=r;s++){var a=o[s];if(a&&a.el)if(a.hidden)a.el.style.top=-100-(a.pixelHeight||0)+"px";else{a._inDocument||(a._inDocument=!0,t.container.appendChild(a.el));var l=t.$cursorLayer.getPixelPosition({row:s,column:0},!0).top;a.coverLine||(l+=n.lineHeight*this.session.getRowLineCount(a.row)),a.el.style.top=l-n.offset+"px";var c=a.coverGutter?0:t.gutterWidth;a.fixedWidth||(c-=t.scrollLeft),a.el.style.left=c+"px",a.fullWidth&&a.screenWidth&&(a.el.style.minWidth=n.width+2*n.padding+"px"),a.fixedWidth?a.el.style.right=t.scrollBar.getWidth()+"px":a.el.style.right=""}}}},e}();t.LineWidgets=i})),ace.define("ace/keyboard/gutter_handler",["require","exports","module","ace/lib/keys","ace/mouse/default_gutter_handler"],(function(e,t,n){"use strict";var o=e("../lib/keys"),i=e("../mouse/default_gutter_handler").GutterTooltip,r=function(){function e(e){this.editor=e,this.gutterLayer=e.renderer.$gutterLayer,this.element=e.renderer.$gutter,this.lines=e.renderer.$gutterLayer.$lines,this.activeRowIndex=null,this.activeLane=null,this.annotationTooltip=new i(this.editor)}return e.prototype.addListener=function(){this.element.addEventListener("keydown",this.$onGutterKeyDown.bind(this)),this.element.addEventListener("focusout",this.$blurGutter.bind(this)),this.editor.on("mousewheel",this.$blurGutter.bind(this))},e.prototype.removeListener=function(){this.element.removeEventListener("keydown",this.$onGutterKeyDown.bind(this)),this.element.removeEventListener("focusout",this.$blurGutter.bind(this)),this.editor.off("mousewheel",this.$blurGutter.bind(this))},e.prototype.$onGutterKeyDown=function(e){if(this.annotationTooltip.isOpen)return e.preventDefault(),void(e.keyCode===o.escape&&this.annotationTooltip.hideTooltip());if(e.target===this.element){if(e.keyCode!=o.enter)return;e.preventDefault();var t=this.editor.getCursorPosition().row;return this.editor.isRowVisible(t)||this.editor.scrollToLine(t,!0,!0),void setTimeout(function(){var e=this.$rowToRowIndex(this.gutterLayer.$cursorCell.row),t=this.$findNearestFoldWidget(e),n=this.$findNearestAnnotation(e);if(null!==t||null!==n)return null===t&&null!==n?(this.activeRowIndex=n,this.activeLane="annotation",void this.$focusAnnotation(this.activeRowIndex)):null!==t&&null===n?(this.activeRowIndex=t,this.activeLane="fold",void this.$focusFoldWidget(this.activeRowIndex)):Math.abs(n-e)0||e+t=0&&this.$isFoldWidgetVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isFoldWidgetVisible(e+t))return e+t}return null},e.prototype.$findNearestAnnotation=function(e){if(this.$isAnnotationVisible(e))return e;for(var t=0;e-t>0||e+t=0&&this.$isAnnotationVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isAnnotationVisible(e+t))return e+t}return null},e.prototype.$focusFoldWidget=function(e){if(null!=e){var t=this.$getFoldWidget(e);t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus()}},e.prototype.$focusAnnotation=function(e){if(null!=e){var t=this.$getAnnotation(e);t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus()}},e.prototype.$blurFoldWidget=function(e){var t=this.$getFoldWidget(e);t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur()},e.prototype.$blurAnnotation=function(e){var t=this.$getAnnotation(e);t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur()},e.prototype.$moveFoldWidgetUp=function(){for(var e=this.activeRowIndex;e>0;)if(e--,this.$isFoldWidgetVisible(e))return this.$blurFoldWidget(this.activeRowIndex),this.activeRowIndex=e,void this.$focusFoldWidget(this.activeRowIndex)},e.prototype.$moveFoldWidgetDown=function(){for(var e=this.activeRowIndex;e0;)if(e--,this.$isAnnotationVisible(e))return this.$blurAnnotation(this.activeRowIndex),this.activeRowIndex=e,void this.$focusAnnotation(this.activeRowIndex)},e.prototype.$moveAnnotationDown=function(){for(var e=this.activeRowIndex;e=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},i=e("./lib/oop"),r=e("./lib/dom"),s=e("./lib/lang"),a=e("./lib/useragent"),l=e("./keyboard/textinput").TextInput,c=e("./mouse/mouse_handler").MouseHandler,u=e("./mouse/fold_handler").FoldHandler,h=e("./keyboard/keybinding").KeyBinding,d=e("./edit_session").EditSession,p=e("./search").Search,g=e("./range").Range,m=e("./lib/event_emitter").EventEmitter,f=e("./commands/command_manager").CommandManager,y=e("./commands/default_commands").commands,v=e("./config"),b=e("./token_iterator").TokenIterator,w=e("./line_widgets").LineWidgets,x=e("./keyboard/gutter_handler").GutterKeyboardHandler,k=e("./config").nls,C=e("./clipboard"),$=e("./lib/keys"),S=function(){function e(t,n,o){this.$toDestroy=[];var i=t.getContainerElement();this.container=i,this.renderer=t,this.id="editor"+ ++e.$uid,this.commands=new f(a.isMac?"mac":"win",y),"object"==typeof document&&(this.textInput=new l(t.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.$mouseHandler=new c(this),new u(this)),this.keyBinding=new h(this),this.$search=(new p).set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=s.delayedCall(function(){this._signal("input",{}),this.session&&!this.session.destroyed&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on("change",(function(e,t){t._$emitInputEvent.schedule(31)})),this.setSession(n||o&&o.session||new d("")),v.resetOptions(this),o&&this.setOptions(o),v._signal("editor",this)}return e.prototype.$initOperationListeners=function(){this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0),this.$opResetTimer=s.delayedCall(this.endOperation.bind(this,!0)),this.on("change",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.docChanged=!0}.bind(this),!0),this.on("changeSelection",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.selectionChanged=!0}.bind(this),!0)},e.prototype.startOperation=function(e){if(this.curOp){if(!e||this.curOp.command)return;this.prevOp=this.curOp}e||(this.previousCommand=null,e={}),this.$opResetTimer.schedule(),this.curOp=this.session.curOp={command:e.command||{},args:e.args,scrollTop:this.renderer.scrollTop},this.curOp.selectionBefore=this.selection.toJSON()},e.prototype.endOperation=function(e){if(this.curOp&&this.session){if(e&&!1===e.returnValue||!this.session)return this.curOp=null;if(1==e&&this.curOp.command&&"mouse"==this.curOp.command.name)return;if(this._signal("beforeEndOperation"),!this.curOp)return;var t=this.curOp.command,n=t&&t.scrollIntoView;if(n){switch(n){case"center-animate":n="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var o=this.selection.getRange(),i=this.renderer.layerConfig;(o.start.row>=i.lastRow||o.end.row<=i.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead)}"animate"==n&&this.renderer.animateScrolling(this.curOp.scrollTop)}var r=this.selection.toJSON();this.curOp.selectionAfter=r,this.$lastSel=this.selection.toJSON(),this.session.getUndoManager().addSelection(r),this.prevOp=this.curOp,this.curOp=null}},e.prototype.$historyTracker=function(e){if(this.$mergeUndoDeltas){var t=this.prevOp,n=this.$mergeableCommands,o=t.command&&e.command.name==t.command.name;if("insertstring"==e.command.name){var i=e.args;void 0===this.mergeNextCommand&&(this.mergeNextCommand=!0),o=o&&this.mergeNextCommand&&(!/\s/.test(i)||/\s/.test(t.args)),this.mergeNextCommand=!0}else o=o&&-1!==n.indexOf(e.command.name);"always"!=this.$mergeUndoDeltas&&Date.now()-this.sequenceStartTime>2e3&&(o=!1),o?this.session.mergeUndoDeltas=!0:-1!==n.indexOf(e.command.name)&&(this.sequenceStartTime=Date.now())}},e.prototype.setKeyboardHandler=function(e,t){if(e&&"string"==typeof e&&"ace"!=e){this.$keybindingId=e;var n=this;v.loadModule(["keybinding",e],(function(o){n.$keybindingId==e&&n.keyBinding.setKeyboardHandler(o&&o.handler),t&&t()}))}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},e.prototype.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},e.prototype.setSession=function(e){if(this.session!=e){this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var n=this.session.getSelection();n.off("changeCursor",this.$onCursorChange),n.off("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal("changeSession",{session:e,oldSession:t}),this.curOp=null,t&&t._signal("changeEditor",{oldEditor:this}),e&&e._signal("changeEditor",{editor:this}),e&&!e.destroyed&&e.bgTokenizer.scheduleStart()}},e.prototype.getSession=function(){return this.session},e.prototype.setValue=function(e,t){return this.session.doc.setValue(e),t?1==t?this.navigateFileEnd():-1==t&&this.navigateFileStart():this.selectAll(),e},e.prototype.getValue=function(){return this.session.getValue()},e.prototype.getSelection=function(){return this.selection},e.prototype.resize=function(e){this.renderer.onResize(e)},e.prototype.setTheme=function(e,t){this.renderer.setTheme(e,t)},e.prototype.getTheme=function(){return this.renderer.getTheme()},e.prototype.setStyle=function(e){this.renderer.setStyle(e)},e.prototype.unsetStyle=function(e){this.renderer.unsetStyle(e)},e.prototype.getFontSize=function(){return this.getOption("fontSize")||r.computedStyle(this.container).fontSize},e.prototype.setFontSize=function(e){this.setOption("fontSize",e)},e.prototype.$highlightBrackets=function(){if(!this.$highlightPending){var e=this;this.$highlightPending=!0,setTimeout((function(){e.$highlightPending=!1;var t=e.session;if(t&&!t.destroyed){t.$bracketHighlight&&(t.$bracketHighlight.markerIds.forEach((function(e){t.removeMarker(e)})),t.$bracketHighlight=null);var n=e.getCursorPosition(),o=e.getKeyboardHandler(),i=o&&o.$getDirectionForHighlight&&o.$getDirectionForHighlight(e),r=t.getMatchingBracketRanges(n,i);if(!r){var s=new b(t,n.row,n.column).getCurrentToken();if(s&&/\b(?:tag-open|tag-name)/.test(s.type)){var a=t.getMatchingTags(n);a&&(r=[a.openTagName,a.closeTagName])}}if(!r&&t.$mode.getMatching&&(r=t.$mode.getMatching(e.session)),r){var l="ace_bracket";Array.isArray(r)?1==r.length&&(l="ace_error_bracket"):r=[r],2==r.length&&(0==g.comparePoints(r[0].end,r[1].start)?r=[g.fromPoints(r[0].start,r[1].end)]:0==g.comparePoints(r[0].start,r[1].end)&&(r=[g.fromPoints(r[1].start,r[0].end)])),t.$bracketHighlight={ranges:r,markerIds:r.map((function(e){return t.addMarker(e,l,"text")}))},e.getHighlightIndentGuides()&&e.renderer.$textLayer.$highlightIndentGuide()}else e.getHighlightIndentGuides()&&e.renderer.$textLayer.$highlightIndentGuide()}}),50)}},e.prototype.focus=function(){this.textInput.focus()},e.prototype.isFocused=function(){return this.textInput.isFocused()},e.prototype.blur=function(){this.textInput.blur()},e.prototype.onFocus=function(e){this.$isFocused||(this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",e))},e.prototype.onBlur=function(e){this.$isFocused&&(this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",e))},e.prototype.$cursorChange=function(){this.renderer.updateCursor(),this.$highlightBrackets(),this.$updateHighlightActiveLine()},e.prototype.onDocumentChange=function(e){var t=this.session.$useWrapMode,n=e.start.row==e.end.row?e.end.row:1/0;this.renderer.updateLines(e.start.row,n,t),this._signal("change",e),this.$cursorChange()},e.prototype.onTokenizerUpdate=function(e){var t=e.data;this.renderer.updateLines(t.first,t.last)},e.prototype.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},e.prototype.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},e.prototype.onCursorChange=function(){this.$cursorChange(),this._signal("changeSelection")},e.prototype.$updateHighlightActiveLine=function(){var e,t=this.getSession();if(this.$highlightActiveLine&&("line"==this.$selectionStyle&&this.selection.isMultiLine()||(e=this.getCursorPosition()),this.renderer.theme&&this.renderer.theme.$selectionColorConflict&&!this.selection.isEmpty()&&(e=!1),!this.renderer.$maxLines||1!==this.session.getLength()||this.renderer.$minLines>1||(e=!1)),t.$highlightLineMarker&&!e)t.removeMarker(t.$highlightLineMarker.id),t.$highlightLineMarker=null;else if(!t.$highlightLineMarker&&e){var n=new g(e.row,e.column,e.row,1/0);n.id=t.addMarker(n,"ace_active-line","screenLine"),t.$highlightLineMarker=n}else e&&(t.$highlightLineMarker.start.row=e.row,t.$highlightLineMarker.end.row=e.row,t.$highlightLineMarker.start.column=e.column,t._signal("changeBackMarker"))},e.prototype.onSelectionChange=function(e){var t=this.session;if(t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var n=this.selection.getRange(),o=this.getSelectionStyle();t.$selectionMarker=t.addMarker(n,"ace_selection",o)}var i=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(i),this._signal("changeSelection")},e.prototype.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(!t.isEmpty()&&!t.isMultiLine()){var n=t.start.column,o=t.end.column,i=e.getLine(t.start.row),r=i.substring(n,o);if(!(r.length>5e3)&&/[\w\d]/.test(r)){var s=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:r}),a=i.substring(n-1,o+1);if(s.test(a))return s}}},e.prototype.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},e.prototype.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},e.prototype.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},e.prototype.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},e.prototype.onChangeMode=function(e){this.renderer.updateText(),this._emit("changeMode",e)},e.prototype.onChangeWrapLimit=function(){this.renderer.updateFull()},e.prototype.onChangeWrapMode=function(){this.renderer.onResize(!0)},e.prototype.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},e.prototype.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},e.prototype.getCopyText=function(){var e=this.getSelectedText(),t=this.session.doc.getNewLineCharacter(),n=!1;if(!e&&this.$copyWithEmptySelection){n=!0;for(var o=this.selection.getAllRanges(),i=0;ia.search(/\S|$/)){var l=a.substr(i.column).search(/\S|$/);n.doc.removeInLine(i.row,i.column,i.column+l)}}this.clearSelection();var c=i.column,u=n.getState(i.row),h=(a=n.getLine(i.row),o.checkOutdent(u,a,e));if(n.insert(i,e),r&&r.selection&&(2==r.selection.length?this.selection.setSelectionRange(new g(i.row,c+r.selection[0],i.row,c+r.selection[1])):this.selection.setSelectionRange(new g(i.row+r.selection[0],r.selection[1],i.row+r.selection[2],r.selection[3]))),this.$enableAutoIndent){if(n.getDocument().isNewLine(e)){var d=o.getNextLineIndent(u,a.slice(0,i.column),n.getTabString());n.insert({row:i.row+1,column:0},d)}h&&o.autoOutdent(u,n,i.row)}},e.prototype.autoIndent=function(){var e,t,n=this.session,o=n.getMode();if(this.selection.isEmpty())e=0,t=n.doc.getLength()-1;else{var i=this.getSelectionRange();e=i.start.row,t=i.end.row}for(var r,s,a,l="",c="",u="",h=n.getTabString(),d=e;d<=t;d++)d>0&&(l=n.getState(d-1),c=n.getLine(d-1),u=o.getNextLineIndent(l,c,h)),r=n.getLine(d),u!==(s=o.$getIndent(r))&&(s.length>0&&(a=new g(d,0,d,s.length),n.remove(a)),u.length>0&&n.insert({row:d,column:0},u)),o.autoOutdent(l,n,d)},e.prototype.onTextInput=function(e,t){if(!t)return this.keyBinding.onTextInput(e);this.startOperation({command:{name:"insertstring"}});var n=this.applyComposition.bind(this,e,t);this.selection.rangeCount?this.forEachSelection(n):n(),this.endOperation()},e.prototype.applyComposition=function(e,t){var n;(t.extendLeft||t.extendRight)&&((n=this.selection.getRange()).start.column-=t.extendLeft,n.end.column+=t.extendRight,n.start.column<0&&(n.start.row--,n.start.column+=this.session.getLine(n.start.row).length+1),this.selection.setRange(n),e||n.isEmpty()||this.remove()),!e&&this.selection.isEmpty()||this.insert(e,!0),(t.restoreStart||t.restoreEnd)&&((n=this.selection.getRange()).start.column-=t.restoreStart,n.end.column-=t.restoreEnd,this.selection.setRange(n))},e.prototype.onCommandKey=function(e,t,n){return this.keyBinding.onCommandKey(e,t,n)},e.prototype.setOverwrite=function(e){this.session.setOverwrite(e)},e.prototype.getOverwrite=function(){return this.session.getOverwrite()},e.prototype.toggleOverwrite=function(){this.session.toggleOverwrite()},e.prototype.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},e.prototype.getScrollSpeed=function(){return this.getOption("scrollSpeed")},e.prototype.setDragDelay=function(e){this.setOption("dragDelay",e)},e.prototype.getDragDelay=function(){return this.getOption("dragDelay")},e.prototype.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},e.prototype.getSelectionStyle=function(){return this.getOption("selectionStyle")},e.prototype.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},e.prototype.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},e.prototype.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},e.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},e.prototype.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},e.prototype.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},e.prototype.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},e.prototype.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},e.prototype.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},e.prototype.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},e.prototype.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},e.prototype.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},e.prototype.setHighlightIndentGuides=function(e){this.renderer.setHighlightIndentGuides(e)},e.prototype.getHighlightIndentGuides=function(){return this.renderer.getHighlightIndentGuides()},e.prototype.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},e.prototype.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},e.prototype.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},e.prototype.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},e.prototype.setReadOnly=function(e){this.setOption("readOnly",e)},e.prototype.getReadOnly=function(){return this.getOption("readOnly")},e.prototype.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},e.prototype.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},e.prototype.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},e.prototype.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},e.prototype.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},e.prototype.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},e.prototype.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},e.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},e.prototype.remove=function(e){this.selection.isEmpty()&&("left"==e?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var n=this.session,o=n.getState(t.start.row),i=n.getMode().transformAction(o,"deletion",this,n,t);if(0===t.end.column){var r=n.getTextRange(t);if("\n"==r[r.length-1]){var s=n.getLine(t.end.row);/^\s+$/.test(s)&&(t.end.column=s.length)}}i&&(t=i)}this.session.remove(t),this.clearSelection()},e.prototype.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.selection.isEmpty()&&this.selection.selectLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},e.prototype.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},e.prototype.setGhostText=function(e,t){this.session.widgetManager||(this.session.widgetManager=new w(this.session),this.session.widgetManager.attach(this)),this.renderer.setGhostText(e,t)},e.prototype.removeGhostText=function(){this.session.widgetManager&&this.renderer.removeGhostText()},e.prototype.transposeLetters=function(){if(this.selection.isEmpty()){var e=this.getCursorPosition(),t=e.column;if(0!==t){var n,o,i=this.session.getLine(e.row);tt.toLowerCase()?1:0}));var i=new g(0,0,0,0);for(o=e.first;o<=e.last;o++){var r=t.getLine(o);i.start.row=o,i.end.row=o,i.end.column=r.length,t.replace(i,n[o-e.first])}},e.prototype.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},e.prototype.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),n=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,n,e)},e.prototype.getNumberAt=function(e,t){var n=/[\-]?[0-9]+(?:\.[0-9]+)?/g;n.lastIndex=0;for(var o=this.session.getLine(e);n.lastIndex=t)return{value:i[0],start:i.index,end:i.index+i[0].length}}return null},e.prototype.modifyNumber=function(e){var t=this.selection.getCursor().row,n=this.selection.getCursor().column,o=new g(t,n-1,t,n),i=this.session.getTextRange(o);if(!isNaN(parseFloat(i))&&isFinite(i)){var r=this.getNumberAt(t,n);if(r){var s=r.value.indexOf(".")>=0?r.start+r.value.indexOf(".")+1:r.end,a=r.start+r.value.length-s,l=parseFloat(r.value);l*=Math.pow(10,a),s!==r.end&&n=a&&r<=l&&(n=t,c.selection.clearSelection(),c.moveCursorTo(e,a+o),c.selection.selectTo(e,l+o)),a=l}));for(var u,h=this.$toggleWordPairs,d=0;d=l&&s<=c&&d.match(/((?:https?|ftp):\/\/[\S]+)/)){a=d.replace(/[\s:.,'";}\]]+$/,"");break}l=c}}catch(e){n={error:e}}finally{try{h&&!h.done&&(i=u.return)&&i.call(u)}finally{if(n)throw n.error}}return a},e.prototype.openLink=function(){var e=this.selection.getCursor(),t=this.findLinkAt(e.row,e.column);return t&&window.open(t,"_blank"),null!=t},e.prototype.removeLines=function(){var e=this.$getSelectedRows();this.session.removeFullLines(e.first,e.last),this.clearSelection()},e.prototype.duplicateSelection=function(){var e=this.selection,t=this.session,n=e.getRange(),o=e.isBackwards();if(n.isEmpty()){var i=n.start.row;t.duplicateLines(i,i)}else{var r=o?n.start:n.end,s=t.insert(r,t.getTextRange(n),!1);n.start=r,n.end=s,e.setSelectionRange(n,o)}},e.prototype.moveLinesDown=function(){this.$moveLines(1,!1)},e.prototype.moveLinesUp=function(){this.$moveLines(-1,!1)},e.prototype.moveText=function(e,t,n){return this.session.moveText(e,t,n)},e.prototype.copyLinesUp=function(){this.$moveLines(-1,!0)},e.prototype.copyLinesDown=function(){this.$moveLines(1,!0)},e.prototype.$moveLines=function(e,t){var n,o,i=this.selection;if(!i.inMultiSelectMode||this.inVirtualSelectionMode){var r=i.toOrientedRange();n=this.$getSelectedRows(r),o=this.session.$moveLines(n.first,n.last,t?0:e),t&&-1==e&&(o=0),r.moveBy(o,0),i.fromOrientedRange(r)}else{var s=i.rangeList.ranges;i.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;for(var a=0,l=0,c=s.length,u=0;up+1)break;p=g.last}for(u--,a=this.session.$moveLines(d,p,t?0:e),t&&-1==e&&(h=u+1);h<=u;)s[h].moveBy(a,0),h++;t||(a=0),l+=a}i.fromOrientedRange(i.ranges[0]),i.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},e.prototype.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},e.prototype.onCompositionStart=function(e){this.renderer.showComposition(e)},e.prototype.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},e.prototype.onCompositionEnd=function(){this.renderer.hideComposition()},e.prototype.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},e.prototype.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},e.prototype.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},e.prototype.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},e.prototype.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},e.prototype.$moveByPage=function(e,t){var n=this.renderer,o=this.renderer.layerConfig,i=e*Math.floor(o.height/o.lineHeight);!0===t?this.selection.$moveSelection((function(){this.moveCursorBy(i,0)})):!1===t&&(this.selection.moveCursorBy(i,0),this.selection.clearSelection());var r=n.scrollTop;n.scrollBy(0,i*o.lineHeight),null!=t&&n.scrollCursorIntoView(null,.5),n.animateScrolling(r)},e.prototype.selectPageDown=function(){this.$moveByPage(1,!0)},e.prototype.selectPageUp=function(){this.$moveByPage(-1,!0)},e.prototype.gotoPageDown=function(){this.$moveByPage(1,!1)},e.prototype.gotoPageUp=function(){this.$moveByPage(-1,!1)},e.prototype.scrollPageDown=function(){this.$moveByPage(1)},e.prototype.scrollPageUp=function(){this.$moveByPage(-1)},e.prototype.scrollToRow=function(e){this.renderer.scrollToRow(e)},e.prototype.scrollToLine=function(e,t,n,o){this.renderer.scrollToLine(e,t,n,o)},e.prototype.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},e.prototype.getCursorPosition=function(){return this.selection.getCursor()},e.prototype.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},e.prototype.getSelectionRange=function(){return this.selection.getRange()},e.prototype.selectAll=function(){this.selection.selectAll()},e.prototype.clearSelection=function(){this.selection.clearSelection()},e.prototype.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},e.prototype.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},e.prototype.jumpToMatching=function(e,t){var n=this.getCursorPosition(),o=new b(this.session,n.row,n.column),i=o.getCurrentToken(),r=0;i&&-1!==i.type.indexOf("tag-name")&&(i=o.stepBackward());var s=i||o.stepForward();if(s){var a,l,c=!1,u={},h=n.column-s.start,d={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(s.value.match(/[{}()\[\]]/g)){for(;h1?u[s.value]++:"=0;--r)this.$tryReplace(n[r],e)&&o++;return this.selection.setSelectionRange(i),o},e.prototype.$tryReplace=function(e,t){var n=this.session.getTextRange(e);return null!==(t=this.$search.replace(n,t))?(e.end=this.session.replace(e,t),e):null},e.prototype.getLastSearchOptions=function(){return this.$search.getOptions()},e.prototype.find=function(e,t,n){t||(t={}),"string"==typeof e||e instanceof RegExp?t.needle=e:"object"==typeof e&&i.mixin(t,e);var o=this.selection.getRange();null==t.needle&&((e=this.session.getTextRange(o)||this.$search.$options.needle)||(o=this.session.getWordRange(o.start.row,o.start.column),e=this.session.getTextRange(o)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:o});var r=this.$search.find(this.session);return t.preventScroll?r:r?(this.revealRange(r,n),r):(t.backwards?o.start=o.end:o.end=o.start,void this.selection.setRange(o))},e.prototype.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},e.prototype.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},e.prototype.revealRange=function(e,t){this.session.unfold(e),this.selection.setSelectionRange(e);var n=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),!1!==t&&this.renderer.animateScrolling(n)},e.prototype.undo=function(){this.session.getUndoManager().undo(this.session),this.renderer.scrollCursorIntoView(null,.5)},e.prototype.redo=function(){this.session.getUndoManager().redo(this.session),this.renderer.scrollCursorIntoView(null,.5)},e.prototype.destroy=function(){this.$toDestroy&&(this.$toDestroy.forEach((function(e){e.destroy()})),this.$toDestroy=null),this.$mouseHandler&&this.$mouseHandler.destroy(),this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy(),this._$emitInputEvent&&this._$emitInputEvent.cancel(),this.removeAllListeners()},e.prototype.setAutoScrollEditorIntoView=function(e){if(e){var t,n=this,o=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var i=this.$scrollAnchor;i.style.cssText="position:absolute",this.container.insertBefore(i,this.container.firstChild);var r=this.on("changeSelection",(function(){o=!0})),s=this.renderer.on("beforeRender",(function(){o&&(t=n.renderer.container.getBoundingClientRect())})),a=this.renderer.on("afterRender",(function(){if(o&&t&&(n.isFocused()||n.searchBox&&n.searchBox.isFocused())){var e=n.renderer,r=e.$cursorLayer.$pixelPos,s=e.layerConfig,a=r.top-s.offset;null!=(o=r.top>=0&&a+t.top<0||!(r.topwindow.innerHeight)&&null)&&(i.style.top=a+"px",i.style.left=r.left+"px",i.style.height=s.lineHeight+"px",i.scrollIntoView(o)),o=t=null}}));this.setAutoScrollEditorIntoView=function(e){e||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",r),this.renderer.off("afterRender",a),this.renderer.off("beforeRender",s))}}},e.prototype.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;t&&(t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&"wide"!=e,r.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e)))},e.prototype.prompt=function(e,t,n){var o=this;v.loadModule("ace/ext/prompt",(function(i){i.prompt(o,e,t,n)}))},e}();S.$uid=0,S.prototype.curOp=null,S.prototype.prevOp={},S.prototype.$mergeableCommands=["backspace","del","insertstring"],S.prototype.$toggleWordPairs=[["first","last"],["true","false"],["yes","no"],["width","height"],["top","bottom"],["right","left"],["on","off"],["x","y"],["get","set"],["max","min"],["horizontal","vertical"],["show","hide"],["add","remove"],["up","down"],["before","after"],["even","odd"],["in","out"],["inside","outside"],["next","previous"],["increase","decrease"],["attach","detach"],["&&","||"],["==","!="]],i.implement(S.prototype,m),v.defineOptions(S.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.textInput.setReadOnly(e),this.$resetCursorStyle()},initialValue:!1},copyWithEmptySelection:{set:function(e){this.textInput.setCopyWithEmptySelection(e)},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},enableAutoIndent:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.$keybindingId},handlesSet:!0},value:{set:function(e){this.session.setValue(e)},get:function(){return this.getValue()},handlesSet:!0,hidden:!0},session:{set:function(e){this.setSession(e)},get:function(){return this.session},handlesSet:!0,hidden:!0},showLineNumbers:{set:function(e){this.renderer.$gutterLayer.setShowLineNumbers(e),this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER),e&&this.$relativeLineNumbers?E.attach(this):E.detach(this)},initialValue:!0},relativeLineNumbers:{set:function(e){this.$showLineNumbers&&e?E.attach(this):E.detach(this)}},placeholder:{set:function(e){this.$updatePlaceholder||(this.$updatePlaceholder=function(){var e=this.session&&(this.renderer.$composition||this.session.getLength()>1||this.session.getLine(0).length>0);if(e&&this.renderer.placeholderNode)this.renderer.off("afterRender",this.$updatePlaceholder),r.removeCssClass(this.container,"ace_hasPlaceholder"),this.renderer.placeholderNode.remove(),this.renderer.placeholderNode=null;else if(e||this.renderer.placeholderNode)!e&&this.renderer.placeholderNode&&(this.renderer.placeholderNode.textContent=this.$placeholder||"");else{this.renderer.on("afterRender",this.$updatePlaceholder),r.addCssClass(this.container,"ace_hasPlaceholder");var t=r.createElement("div");t.className="ace_placeholder",t.textContent=this.$placeholder||"",this.renderer.placeholderNode=t,this.renderer.content.appendChild(this.renderer.placeholderNode)}}.bind(this),this.on("input",this.$updatePlaceholder)),this.$updatePlaceholder()}},enableKeyboardAccessibility:{set:function(e){var t,n={name:"blurTextInput",description:"Set focus to the editor content div to allow tabbing through the page",bindKey:"Esc",exec:function(e){e.blur(),e.renderer.scroller.focus()},readOnly:!0},o=function(e){if(e.target==this.renderer.scroller&&e.keyCode===$.enter){e.preventDefault();var t=this.getCursorPosition().row;this.isRowVisible(t)||this.scrollToLine(t,!0,!0),this.focus()}};e?(this.renderer.enableKeyboardAccessibility=!0,this.renderer.keyboardFocusClassName="ace_keyboard-focus",this.textInput.getElement().setAttribute("tabindex",-1),this.textInput.setNumberOfExtraLines(a.isWin?3:0),this.renderer.scroller.setAttribute("tabindex",0),this.renderer.scroller.setAttribute("role","group"),this.renderer.scroller.setAttribute("aria-roledescription",k("editor")),this.renderer.scroller.classList.add(this.renderer.keyboardFocusClassName),this.renderer.scroller.setAttribute("aria-label",k("Editor content, press Enter to start editing, press Escape to exit")),this.renderer.scroller.addEventListener("keyup",o.bind(this)),this.commands.addCommand(n),this.renderer.$gutter.setAttribute("tabindex",0),this.renderer.$gutter.setAttribute("aria-hidden",!1),this.renderer.$gutter.setAttribute("role","group"),this.renderer.$gutter.setAttribute("aria-roledescription",k("editor")),this.renderer.$gutter.setAttribute("aria-label",k("Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit")),this.renderer.$gutter.classList.add(this.renderer.keyboardFocusClassName),this.renderer.content.setAttribute("aria-hidden",!0),t||(t=new x(this)),t.addListener()):(this.renderer.enableKeyboardAccessibility=!1,this.textInput.getElement().setAttribute("tabindex",0),this.textInput.setNumberOfExtraLines(0),this.renderer.scroller.setAttribute("tabindex",-1),this.renderer.scroller.removeAttribute("role"),this.renderer.scroller.removeAttribute("aria-roledescription"),this.renderer.scroller.classList.remove(this.renderer.keyboardFocusClassName),this.renderer.scroller.removeAttribute("aria-label"),this.renderer.scroller.removeEventListener("keyup",o.bind(this)),this.commands.removeCommand(n),this.renderer.content.removeAttribute("aria-hidden"),this.renderer.$gutter.setAttribute("tabindex",-1),this.renderer.$gutter.setAttribute("aria-hidden",!0),this.renderer.$gutter.removeAttribute("role"),this.renderer.$gutter.removeAttribute("aria-roledescription"),this.renderer.$gutter.removeAttribute("aria-label"),this.renderer.$gutter.classList.remove(this.renderer.keyboardFocusClassName),t&&t.removeListener())},initialValue:!1},customScrollbar:"renderer",hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",displayIndentGuides:"renderer",highlightIndentGuides:"renderer",showGutter:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",hasCssTransforms:"renderer",maxPixelHeight:"renderer",useTextareaForIME:"renderer",useResizeObserver:"renderer",useSvgGutterIcons:"renderer",showFoldedAnnotations:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimeout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",navigateWithinSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"});var E={getText:function(e,t){return(Math.abs(e.selection.lead.row-t)||t+1+(t<9?"·":""))+""},getWidth:function(e,t,n){return Math.max(t.toString().length,(n.lastRow+1).toString().length,2)*n.characterWidth},update:function(e,t){t.renderer.$loop.schedule(t.renderer.CHANGE_GUTTER)},attach:function(e){e.renderer.$gutterLayer.$renderer=this,e.on("changeSelection",this.update),this.update(null,e)},detach:function(e){e.renderer.$gutterLayer.$renderer==this&&(e.renderer.$gutterLayer.$renderer=null),e.off("changeSelection",this.update),this.update(null,e)}};t.Editor=S})),ace.define("ace/layer/lines",["require","exports","module","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=function(){function e(e,t){this.element=e,this.canvasHeight=t||5e5,this.element.style.height=2*this.canvasHeight+"px",this.cells=[],this.cellCache=[],this.$offsetCoefficient=0}return e.prototype.moveContainer=function(e){o.translate(this.element,0,-e.firstRowScreen*e.lineHeight%this.canvasHeight-e.offset*this.$offsetCoefficient)},e.prototype.pageChanged=function(e,t){return Math.floor(e.firstRowScreen*e.lineHeight/this.canvasHeight)!==Math.floor(t.firstRowScreen*t.lineHeight/this.canvasHeight)},e.prototype.computeLineTop=function(e,t,n){var o=t.firstRowScreen*t.lineHeight,i=Math.floor(o/this.canvasHeight);return n.documentToScreenRow(e,0)*t.lineHeight-i*this.canvasHeight},e.prototype.computeLineHeight=function(e,t,n){return t.lineHeight*n.getRowLineCount(e)},e.prototype.getLength=function(){return this.cells.length},e.prototype.get=function(e){return this.cells[e]},e.prototype.shift=function(){this.$cacheCell(this.cells.shift())},e.prototype.pop=function(){this.$cacheCell(this.cells.pop())},e.prototype.push=function(e){if(Array.isArray(e)){this.cells.push.apply(this.cells,e);for(var t=o.createFragment(this.element),n=0;nr&&(l=i.end.row+1,r=(i=t.getNextFoldLine(l,i))?i.start.row:1/0),l>o){for(;this.$lines.getLength()>a+1;)this.$lines.pop();break}(s=this.$lines.get(++a))?s.row=l:(s=this.$lines.createCell(l,e,this.session,u),this.$lines.push(s)),this.$renderCell(s,e,i,l),l++}this._signal("afterRender"),this.$updateGutterWidth(e)},e.prototype.$updateGutterWidth=function(e){var t=this.session,n=t.gutterRenderer||this.$renderer,o=t.$firstLineNumber,i=this.$lines.last()?this.$lines.last().text:"";(this.$fixedWidth||t.$useWrapMode)&&(i=t.getLength()+o-1);var r=n?n.getWidth(t,i,e):i.toString().length*e.characterWidth,s=this.$padding||this.$computePadding();(r+=s.left+s.right)===this.gutterWidth||isNaN(r)||(this.gutterWidth=r,this.element.parentNode.style.width=this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._signal("changeGutterWidth",r))},e.prototype.$updateCursorRow=function(){if(this.$highlightGutterLine){var e=this.session.selection.getCursor();this.$cursorRow!==e.row&&(this.$cursorRow=e.row)}},e.prototype.updateLineHighlight=function(){if(this.$highlightGutterLine){var e=this.session.selection.cursor.row;if(this.$cursorRow=e,!this.$cursorCell||this.$cursorCell.row!=e){this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ",""));var t=this.$lines.cells;this.$cursorCell=null;for(var n=0;n=this.$cursorRow){if(o.row>this.$cursorRow){var i=this.session.getFoldLine(this.$cursorRow);if(!(n>0&&i&&i.start.row==t[n-1].row))break;o=t[n-1]}o.element.className="ace_gutter-active-line "+o.element.className,this.$cursorCell=o;break}}}}},e.prototype.scrollLines=function(e){var t=this.config;if(this.config=e,this.$updateCursorRow(),this.$lines.pageChanged(t,e))return this.update(e);this.$lines.moveContainer(e);var n=Math.min(e.lastRow+e.gutterOffset,this.session.getLength()-1),o=this.oldLastRow;if(this.oldLastRow=n,!t||o0;i--)this.$lines.shift();if(o>n)for(i=this.session.getFoldedRowCount(n+1,o);i>0;i--)this.$lines.pop();e.firstRowo&&this.$lines.push(this.$renderLines(e,o+1,n)),this.updateLineHighlight(),this._signal("afterRender"),this.$updateGutterWidth(e)},e.prototype.$renderLines=function(e,t,n){for(var o=[],i=t,r=this.session.getNextFoldLine(i),s=r?r.start.row:1/0;i>s&&(i=r.end.row+1,s=(r=this.session.getNextFoldLine(i,r))?r.start.row:1/0),!(i>n);){var a=this.$lines.createCell(i,e,this.session,u);this.$renderCell(a,e,r,i),o.push(a),i++}return o},e.prototype.$renderCell=function(e,t,n,i){var r=e.element,s=this.session,a=r.childNodes[0],c=r.childNodes[1],u=r.childNodes[2],h=u.firstChild,d=s.$firstLineNumber,p=s.$breakpoints,g=s.$decorations,m=s.gutterRenderer||this.$renderer,f=this.$showFoldWidgets&&s.foldWidgets,y=n?n.start.row:Number.MAX_VALUE,v=t.lineHeight+"px",b=this.$useSvgGutterIcons?"ace_gutter-cell_svg-icons ":"ace_gutter-cell ",w=this.$useSvgGutterIcons?"ace_icon_svg":"ace_icon",x=(m?m.getText(s,i):i+d).toString();if(this.$highlightGutterLine&&(i==this.$cursorRow||n&&i=y&&this.$cursorRow<=n.end.row)&&(b+="ace_gutter-active-line ",this.$cursorCell!=e&&(this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ","")),this.$cursorCell=e)),p[i]&&(b+=p[i]),g[i]&&(b+=g[i]),this.$annotations[i]&&i!==y&&(b+=this.$annotations[i].className),f){var k=f[i];null==k&&(k=f[i]=s.getFoldWidget(i))}if(k){var C="ace_fold-widget ace_"+k,$="start"==k&&i==y&&in.right-t.right?"foldWidgets":void 0},e}();function u(e){var t=document.createTextNode("");e.appendChild(t);var n=o.createElement("span");e.appendChild(n);var i=o.createElement("span");e.appendChild(i);var r=o.createElement("span");return i.appendChild(r),e}c.prototype.$fixedWidth=!1,c.prototype.$highlightGutterLine=!0,c.prototype.$renderer="",c.prototype.$showLineNumbers=!0,c.prototype.$showFoldWidgets=!0,i.implement(c.prototype,s),t.Gutter=c})),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("../range").Range,i=e("../lib/dom"),r=function(){function e(e){this.element=i.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)}return e.prototype.setPadding=function(e){this.$padding=e},e.prototype.setSession=function(e){this.session=e},e.prototype.setMarkers=function(e){this.markers=e},e.prototype.elt=function(e,t){var n=-1!=this.i&&this.element.childNodes[this.i];n?this.i++:(n=document.createElement("div"),this.element.appendChild(n),this.i=-1),n.style.cssText=t,n.className=e},e.prototype.update=function(e){if(e){var t;for(var n in this.config=e,this.i=0,this.markers){var o=this.markers[n];if(o.range){var i=o.range.clipRows(e.firstRow,e.lastRow);if(!i.isEmpty())if(i=i.toScreenRange(this.session),o.renderer){var r=this.$getTop(i.start.row,e),s=this.$padding+i.start.column*e.characterWidth;o.renderer(t,i,s,r,e)}else"fullLine"==o.type?this.drawFullLineMarker(t,i,o.clazz,e):"screenLine"==o.type?this.drawScreenLineMarker(t,i,o.clazz,e):i.isMultiLine()?"text"==o.type?this.drawTextMarker(t,i,o.clazz,e):this.drawMultiLineMarker(t,i,o.clazz,e):this.drawSingleLineMarker(t,i,o.clazz+" ace_start ace_br15",e)}else o.update(t,this,this.session,e)}if(-1!=this.i)for(;this.id?4:0)|(c==l?8:0)),i,c==l?0:1,r)},e.prototype.drawMultiLineMarker=function(e,t,n,o,i){var r=this.$padding,s=o.lineHeight,a=this.$getTop(t.start.row,o),l=r+t.start.column*o.characterWidth;if(i=i||"",this.session.$bidiHandler.isBidiRow(t.start.row)?((c=t.clone()).end.row=c.start.row,c.end.column=this.session.getLine(c.start.row).length,this.drawBidiSingleLineMarker(e,c,n+" ace_br1 ace_start",o,null,i)):this.elt(n+" ace_br1 ace_start","height:"+s+"px;right:0;top:"+a+"px;left:"+l+"px;"+(i||"")),this.session.$bidiHandler.isBidiRow(t.end.row)){var c;(c=t.clone()).start.row=c.end.row,c.start.column=0,this.drawBidiSingleLineMarker(e,c,n+" ace_br12",o,null,i)}else{a=this.$getTop(t.end.row,o);var u=t.end.column*o.characterWidth;this.elt(n+" ace_br12","height:"+s+"px;width:"+u+"px;top:"+a+"px;left:"+r+"px;"+(i||""))}if(!((s=(t.end.row-t.start.row-1)*o.lineHeight)<=0)){a=this.$getTop(t.start.row+1,o);var h=(t.start.column?1:0)|(t.end.column?0:8);this.elt(n+(h?" ace_br"+h:""),"height:"+s+"px;right:0;top:"+a+"px;left:"+r+"px;"+(i||""))}},e.prototype.drawSingleLineMarker=function(e,t,n,o,i,r){if(this.session.$bidiHandler.isBidiRow(t.start.row))return this.drawBidiSingleLineMarker(e,t,n,o,i,r);var s=o.lineHeight,a=(t.end.column+(i||0)-t.start.column)*o.characterWidth,l=this.$getTop(t.start.row,o),c=this.$padding+t.start.column*o.characterWidth;this.elt(n,"height:"+s+"px;width:"+a+"px;top:"+l+"px;left:"+c+"px;"+(r||""))},e.prototype.drawBidiSingleLineMarker=function(e,t,n,o,i,r){var s=o.lineHeight,a=this.$getTop(t.start.row,o),l=this.$padding;this.session.$bidiHandler.getSelections(t.start.column,t.end.column).forEach((function(e){this.elt(n,"height:"+s+"px;width:"+(e.width+(i||0))+"px;top:"+a+"px;left:"+(l+e.left)+"px;"+(r||""))}),this)},e.prototype.drawFullLineMarker=function(e,t,n,o,i){var r=this.$getTop(t.start.row,o),s=o.lineHeight;t.start.row!=t.end.row&&(s+=this.$getTop(t.end.row,o)-r),this.elt(n,"height:"+s+"px;top:"+r+"px;left:0;right:0;"+(i||""))},e.prototype.drawScreenLineMarker=function(e,t,n,o,i){var r=this.$getTop(t.start.row,o),s=o.lineHeight;this.elt(n,"height:"+s+"px;top:"+r+"px;left:0;right:0;"+(i||""))},e}();r.prototype.$padding=0,t.Marker=r})),ace.define("ace/layer/text_util",["require","exports","module"],(function(e,t,n){var o=new Set(["text","rparen","lparen"]);t.isTextToken=function(e){return o.has(e)}})),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/layer/lines","ace/lib/event_emitter","ace/config","ace/layer/text_util"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("../lib/dom"),r=e("../lib/lang"),s=e("./lines").Lines,a=e("../lib/event_emitter").EventEmitter,l=e("../config").nls,c=e("./text_util").isTextToken,u=function(){function e(e){this.dom=i,this.element=this.dom.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this),this.$lines=new s(this.element)}return e.prototype.$updateEolChar=function(){var e=this.session.doc,t="\n"==e.getNewLineCharacter()&&"windows"!=e.getNewLineMode()?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=t)return this.EOL_CHAR=t,!0},e.prototype.setPadding=function(e){this.$padding=e,this.element.style.margin="0 "+e+"px"},e.prototype.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},e.prototype.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},e.prototype.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},e.prototype.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},e.prototype.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},e.prototype.setSession=function(e){this.session=e,e&&this.$computeTabString()},e.prototype.setShowInvisibles=function(e){return this.showInvisibles!=e&&(this.showInvisibles=e,"string"==typeof e?(this.showSpaces=/tab/i.test(e),this.showTabs=/space/i.test(e),this.showEOL=/eol/i.test(e)):this.showSpaces=this.showTabs=this.showEOL=e,this.$computeTabString(),!0)},e.prototype.setDisplayIndentGuides=function(e){return this.displayIndentGuides!=e&&(this.displayIndentGuides=e,this.$computeTabString(),!0)},e.prototype.setHighlightIndentGuides=function(e){return this.$highlightIndentGuides!==e&&(this.$highlightIndentGuides=e,e)},e.prototype.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;for(var t=this.$tabStrings=[0],n=1;nu&&(a=l.end.row+1,u=(l=this.session.getNextFoldLine(a,l))?l.start.row:1/0),!(a>i);){var h=r[s++];if(h){this.dom.removeChildren(h),this.$renderLine(h,a,a==u&&l),c&&(h.style.top=this.$lines.computeLineTop(a,e,this.session)+"px");var d=e.lineHeight*this.session.getRowLength(a)+"px";h.style.height!=d&&(c=!0,h.style.height=d)}a++}if(c)for(;s0;i--)this.$lines.shift();if(t.lastRow>e.lastRow)for(i=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);i>0;i--)this.$lines.pop();e.firstRowt.lastRow&&this.$lines.push(this.$renderLinesFragment(e,t.lastRow+1,e.lastRow)),this.$highlightIndentGuide()},e.prototype.$renderLinesFragment=function(e,t,n){for(var o=[],r=t,s=this.session.getNextFoldLine(r),a=s?s.start.row:1/0;r>a&&(r=s.end.row+1,a=(s=this.session.getNextFoldLine(r,s))?s.start.row:1/0),!(r>n);){var l=this.$lines.createCell(r,e,this.session),c=l.element;this.dom.removeChildren(c),i.setStyle(c.style,"height",this.$lines.computeLineHeight(r,e,this.session)+"px"),i.setStyle(c.style,"top",this.$lines.computeLineTop(r,e,this.session)+"px"),this.$renderLine(c,r,r==a&&s),this.$useLineGroups()?c.className="ace_line_group":c.className="ace_line",o.push(l),r++}return o},e.prototype.update=function(e){this.$lines.moveContainer(e),this.config=e;for(var t=e.firstRow,n=e.lastRow,o=this.$lines;o.getLength();)o.pop();o.push(this.$renderLinesFragment(e,t,n))},e.prototype.$renderToken=function(e,t,n,o){for(var i,s=this,a=/(\t)|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\uFEFF\uFFF9-\uFFFC\u2066\u2067\u2068\u202A\u202B\u202D\u202E\u202C\u2069]+)|(\u3000)|([\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3001-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF])/g,u=this.dom.createFragment(this.element),h=0;i=a.exec(o);){var d=i[1],p=i[2],g=i[3],m=i[4],f=i[5];if(s.showSpaces||!p){var y=h!=i.index?o.slice(h,i.index):"";if(h=i.index+i[0].length,y&&u.appendChild(this.dom.createTextNode(y,this.element)),d){var v=s.session.getScreenTabSize(t+i.index);u.appendChild(s.$tabStrings[v].cloneNode(!0)),t+=v-1}else p?s.showSpaces?((w=this.dom.createElement("span")).className="ace_invisible ace_invisible_space",w.textContent=r.stringRepeat(s.SPACE_CHAR,p.length),u.appendChild(w)):u.appendChild(this.dom.createTextNode(p,this.element)):g?((w=this.dom.createElement("span")).className="ace_invisible ace_invisible_space ace_invalid",w.textContent=r.stringRepeat(s.SPACE_CHAR,g.length),u.appendChild(w)):m?(t+=1,(w=this.dom.createElement("span")).style.width=2*s.config.characterWidth+"px",w.className=s.showSpaces?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",w.textContent=s.showSpaces?s.SPACE_CHAR:m,u.appendChild(w)):f&&(t+=1,(w=this.dom.createElement("span")).style.width=2*s.config.characterWidth+"px",w.className="ace_cjk",w.textContent=f,u.appendChild(w))}}if(u.appendChild(this.dom.createTextNode(h?o.slice(h):o,this.element)),c(n.type))e.appendChild(u);else{var b="ace_"+n.type.replace(/\./g," ace_"),w=this.dom.createElement("span");"fold"==n.type&&(w.style.width=n.value.length*this.config.characterWidth+"px",w.setAttribute("title",l("Unfold code"))),w.className=b,w.appendChild(u),e.appendChild(w)}return t+o.length},e.prototype.renderIndentGuide=function(e,t,n){var o=t.search(this.$indentGuideRe);if(o<=0||o>=n)return t;if(" "==t[0]){for(var i=(o-=o%this.tabSize)/this.tabSize,r=0;ri[r].start.row?this.$highlightIndentGuideMarker.dir=-1:this.$highlightIndentGuideMarker.dir=1;break}if(!this.$highlightIndentGuideMarker.end&&""!==e[t.row]&&t.column===e[t.row].length)for(this.$highlightIndentGuideMarker.dir=1,r=t.row+1;r0)for(var o=0;o=this.$highlightIndentGuideMarker.start+1){if(o.row>=this.$highlightIndentGuideMarker.end)break;this.$setIndentGuideActive(o,t)}}else for(n=e.length-1;n>=0;n--)if(o=e[n],this.$highlightIndentGuideMarker.end&&o.row=s;)a=this.$renderToken(l,a,u,h.substring(0,s-o)),h=h.substring(s-o),o=s,l=this.$createLineElement(),e.appendChild(l),l.appendChild(this.dom.createTextNode(r.stringRepeat(" ",n.indent),this.element)),a=0,s=n[++i]||Number.MAX_VALUE;0!=h.length&&(o+=h.length,a=this.$renderToken(l,a,u,h))}}n[n.length-1]>this.MAX_LINE_LENGTH&&this.$renderOverflowMessage(l,a,null,"",!0)},e.prototype.$renderSimpleLine=function(e,t){for(var n=0,o=0;othis.MAX_LINE_LENGTH)return this.$renderOverflowMessage(e,n,i,r);n=this.$renderToken(e,n,i,r)}}},e.prototype.$renderOverflowMessage=function(e,t,n,o,i){n&&this.$renderToken(e,t,n,o.slice(0,this.MAX_LINE_LENGTH-t));var r=this.dom.createElement("span");r.className="ace_inline_button ace_keyword ace_toggle_wrap",r.textContent=i?"":"",e.appendChild(r)},e.prototype.$renderLine=function(e,t,n){if(n||0==n||(n=this.session.getFoldLine(t)),n)var o=this.$getFoldLineTokens(t,n);else o=this.session.getTokens(t);var i=e;if(o.length){var r=this.session.getRowSplitData(t);r&&r.length?(this.$renderWrappedLine(e,o,r),i=e.lastChild):(i=e,this.$useLineGroups()&&(i=this.$createLineElement(),e.appendChild(i)),this.$renderSimpleLine(i,o))}else this.$useLineGroups()&&(i=this.$createLineElement(),e.appendChild(i));if(this.showEOL&&i){n&&(t=n.end.row);var s=this.dom.createElement("span");s.className="ace_invisible ace_invisible_eol",s.textContent=t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,i.appendChild(s)}},e.prototype.$getFoldLineTokens=function(e,t){var n=this.session,o=[],i=n.getTokens(e);return t.walk((function(e,t,r,s,a){null!=e?o.push({type:"fold",value:e}):(a&&(i=n.getTokens(t)),i.length&&function(e,t,n){for(var i=0,r=0;r+e[i].value.lengthn-t&&(s=s.substring(0,n-t)),o.push({type:e[i].type,value:s}),r=t+s.length,i+=1);rn?o.push({type:e[i].type,value:s.substring(0,n-r)}):o.push(e[i]),r+=s.length,i+=1}}(i,s,r))}),t.end.row,this.session.getLine(t.end.row).length),o},e.prototype.$useLineGroups=function(){return this.session.getUseWrapMode()},e}();u.prototype.EOF_CHAR="¶",u.prototype.EOL_CHAR_LF="¬",u.prototype.EOL_CHAR_CRLF="¤",u.prototype.EOL_CHAR=u.prototype.EOL_CHAR_LF,u.prototype.TAB_CHAR="—",u.prototype.SPACE_CHAR="·",u.prototype.$padding=0,u.prototype.MAX_LINE_LENGTH=1e4,u.prototype.showInvisibles=!1,u.prototype.showSpaces=!1,u.prototype.showTabs=!1,u.prototype.showEOL=!1,u.prototype.displayIndentGuides=!0,u.prototype.$highlightIndentGuides=!0,u.prototype.$tabStrings=[],u.prototype.destroy={},u.prototype.onChangeTabSize=u.prototype.$computeTabString,o.implement(u.prototype,a),t.Text=u})),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=function(){function e(e){this.element=o.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),o.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=this.$updateOpacity.bind(this)}return e.prototype.$updateOpacity=function(e){for(var t=this.cursors,n=t.length;n--;)o.setStyle(t[n].style,"opacity",e?"":"0")},e.prototype.$startCssAnimation=function(){for(var e=this.cursors,t=e.length;t--;)e[t].style.animationDuration=this.blinkInterval+"ms";this.$isAnimating=!0,setTimeout(function(){this.$isAnimating&&o.addCssClass(this.element,"ace_animate-blinking")}.bind(this))},e.prototype.$stopCssAnimation=function(){this.$isAnimating=!1,o.removeCssClass(this.element,"ace_animate-blinking")},e.prototype.setPadding=function(e){this.$padding=e},e.prototype.setSession=function(e){this.session=e},e.prototype.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},e.prototype.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},e.prototype.setSmoothBlinking=function(e){e!=this.smoothBlinking&&(this.smoothBlinking=e,o.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.restartTimer())},e.prototype.addCursor=function(){var e=o.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},e.prototype.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},e.prototype.hideCursor=function(){this.isVisible=!1,o.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},e.prototype.showCursor=function(){this.isVisible=!0,o.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},e.prototype.restartTimer=function(){var e=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.$stopCssAnimation(),this.smoothBlinking&&(this.$isSmoothBlinking=!1,o.removeCssClass(this.element,"ace_smooth-blinking")),e(!0),this.isBlinking&&this.blinkInterval&&this.isVisible)if(this.smoothBlinking&&(this.$isSmoothBlinking=!0,setTimeout(function(){this.$isSmoothBlinking&&o.addCssClass(this.element,"ace_smooth-blinking")}.bind(this))),o.HAS_CSS_ANIMATION)this.$startCssAnimation();else{var t=function(){this.timeoutId=setTimeout((function(){e(!1)}),.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval((function(){e(!0),t()}),this.blinkInterval),t()}else this.$stopCssAnimation()},e.prototype.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var n=this.session.documentToScreenPosition(e);return{left:this.$padding+(this.session.$bidiHandler.isBidiRow(n.row,e.row)?this.session.$bidiHandler.getPosLeft(n.column):n.column*this.config.characterWidth),top:(n.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight}},e.prototype.isCursorInView=function(e,t){return e.top>=0&&e.tope.height+e.offset||s.top<0)&&n>1)){var a=this.cursors[i++]||this.addCursor(),l=a.style;this.drawCursor?this.drawCursor(a,s,e,t[n],this.session):this.isCursorInView(s,e)?(o.setStyle(l,"display","block"),o.translate(a,s.left,s.top),o.setStyle(l,"width",Math.round(e.characterWidth)+"px"),o.setStyle(l,"height",e.lineHeight+"px")):o.setStyle(l,"display","none")}}for(;this.cursors.length>i;)this.removeCursor();var c=this.session.getOverwrite();this.$setOverwrite(c),this.$pixelPos=s,this.restartTimer()},e.prototype.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?o.addCssClass(this.element,"ace_overwrite-cursors"):o.removeCssClass(this.element,"ace_overwrite-cursors"))},e.prototype.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)},e}();i.prototype.$padding=0,i.prototype.drawCursor=null,t.Cursor=i})),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=e("./lib/oop"),s=e("./lib/dom"),a=e("./lib/event"),l=e("./lib/event_emitter").EventEmitter,c=32768,u=function(){function e(e,t){this.element=s.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+t,this.inner=s.createElement("div"),this.inner.className="ace_scrollbar-inner",this.inner.textContent=" ",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,a.addListener(this.element,"scroll",this.onScroll.bind(this)),a.addListener(this.element,"mousedown",a.preventDefault)}return e.prototype.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1},e}();r.implement(u.prototype,l);var h=function(e){function t(t,n){var o=e.call(this,t,"-v")||this;return o.scrollTop=0,o.scrollHeight=0,n.$scrollbarWidth=o.width=s.scrollbarWidth(t.ownerDocument),o.inner.style.width=o.element.style.width=(o.width||15)+5+"px",o.$minWidth=0,o}return i(t,e),t.prototype.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,1!=this.coeff){var e=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},t.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},t.prototype.setHeight=function(e){this.element.style.height=e+"px"},t.prototype.setScrollHeight=function(e){this.scrollHeight=e,e>c?(this.coeff=c/e,e=c):1!=this.coeff&&(this.coeff=1),this.inner.style.height=e+"px"},t.prototype.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)},t}(u);h.prototype.setInnerHeight=h.prototype.setScrollHeight;var d=function(e){function t(t,n){var o=e.call(this,t,"-h")||this;return o.scrollLeft=0,o.height=n.$scrollbarWidth,o.inner.style.height=o.element.style.height=(o.height||15)+5+"px",o}return i(t,e),t.prototype.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},t.prototype.getHeight=function(){return this.isVisible?this.height:0},t.prototype.setWidth=function(e){this.element.style.width=e+"px"},t.prototype.setInnerWidth=function(e){this.inner.style.width=e+"px"},t.prototype.setScrollWidth=function(e){this.inner.style.width=e+"px"},t.prototype.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)},t}(u);t.ScrollBar=h,t.ScrollBarV=h,t.ScrollBarH=d,t.VScrollBar=h,t.HScrollBar=d})),ace.define("ace/scrollbar_custom",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=e("./lib/oop"),s=e("./lib/dom"),a=e("./lib/event"),l=e("./lib/event_emitter").EventEmitter;s.importCssString(".ace_editor>.ace_sb-v div, .ace_editor>.ace_sb-h div{\n position: absolute;\n background: rgba(128, 128, 128, 0.6);\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n border: 1px solid #bbb;\n border-radius: 2px;\n z-index: 8;\n}\n.ace_editor>.ace_sb-v, .ace_editor>.ace_sb-h {\n position: absolute;\n z-index: 6;\n background: none;\n overflow: hidden!important;\n}\n.ace_editor>.ace_sb-v {\n z-index: 6;\n right: 0;\n top: 0;\n width: 12px;\n}\n.ace_editor>.ace_sb-v div {\n z-index: 8;\n right: 0;\n width: 100%;\n}\n.ace_editor>.ace_sb-h {\n bottom: 0;\n left: 0;\n height: 12px;\n}\n.ace_editor>.ace_sb-h div {\n bottom: 0;\n height: 100%;\n}\n.ace_editor>.ace_sb_grabbed {\n z-index: 8;\n background: #000;\n}","ace_scrollbar.css",!1);var c=function(){function e(e,t){this.element=s.createElement("div"),this.element.className="ace_sb"+t,this.inner=s.createElement("div"),this.inner.className="",this.element.appendChild(this.inner),this.VScrollWidth=12,this.HScrollHeight=12,e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,a.addMultiMouseDownListener(this.element,[500,300,300],this,"onMouseDown")}return e.prototype.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1},e}();r.implement(c.prototype,l);var u=function(e){function t(t,n){var o=e.call(this,t,"-v")||this;return o.scrollTop=0,o.scrollHeight=0,o.parent=t,o.width=o.VScrollWidth,o.renderer=n,o.inner.style.width=o.element.style.width=(o.width||15)+"px",o.$minWidth=0,o}return i(t,e),t.prototype.onMouseDown=function(e,t){if("mousedown"===e&&0===a.getButton(t)&&2!==t.detail){if(t.target===this.inner){var n=this,o=t.clientY,i=t.clientY,r=this.thumbTop;a.capture(this.inner,(function(e){o=e.clientY}),(function(){clearInterval(s)}));var s=setInterval((function(){if(void 0!==o){var e=n.scrollTopFromThumbTop(r+o-i);e!==n.scrollTop&&n._emit("scroll",{data:e})}}),20);return a.preventDefault(t)}var l=t.clientY-this.element.getBoundingClientRect().top-this.thumbHeight/2;return this._emit("scroll",{data:this.scrollTopFromThumbTop(l)}),a.preventDefault(t)}},t.prototype.getHeight=function(){return this.height},t.prototype.scrollTopFromThumbTop=function(e){var t=e*(this.pageHeight-this.viewHeight)/(this.slideHeight-this.thumbHeight);return(t|=0)<0?t=0:t>this.pageHeight-this.viewHeight&&(t=this.pageHeight-this.viewHeight),t},t.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},t.prototype.setHeight=function(e){this.height=Math.max(0,e),this.slideHeight=this.height,this.viewHeight=this.height,this.setScrollHeight(this.pageHeight,!0)},t.prototype.setScrollHeight=function(e,t){(this.pageHeight!==e||t)&&(this.pageHeight=e,this.thumbHeight=this.slideHeight*this.viewHeight/this.pageHeight,this.thumbHeight>this.slideHeight&&(this.thumbHeight=this.slideHeight),this.thumbHeight<15&&(this.thumbHeight=15),this.inner.style.height=this.thumbHeight+"px",this.scrollTop>this.pageHeight-this.viewHeight&&(this.scrollTop=this.pageHeight-this.viewHeight,this.scrollTop<0&&(this.scrollTop=0),this._emit("scroll",{data:this.scrollTop})))},t.prototype.setScrollTop=function(e){this.scrollTop=e,e<0&&(e=0),this.thumbTop=e*(this.slideHeight-this.thumbHeight)/(this.pageHeight-this.viewHeight),this.inner.style.top=this.thumbTop+"px"},t}(c);u.prototype.setInnerHeight=u.prototype.setScrollHeight;var h=function(e){function t(t,n){var o=e.call(this,t,"-h")||this;return o.scrollLeft=0,o.scrollWidth=0,o.height=o.HScrollHeight,o.inner.style.height=o.element.style.height=(o.height||12)+"px",o.renderer=n,o}return i(t,e),t.prototype.onMouseDown=function(e,t){if("mousedown"===e&&0===a.getButton(t)&&2!==t.detail){if(t.target===this.inner){var n=this,o=t.clientX,i=t.clientX,r=this.thumbLeft;a.capture(this.inner,(function(e){o=e.clientX}),(function(){clearInterval(s)}));var s=setInterval((function(){if(void 0!==o){var e=n.scrollLeftFromThumbLeft(r+o-i);e!==n.scrollLeft&&n._emit("scroll",{data:e})}}),20);return a.preventDefault(t)}var l=t.clientX-this.element.getBoundingClientRect().left-this.thumbWidth/2;return this._emit("scroll",{data:this.scrollLeftFromThumbLeft(l)}),a.preventDefault(t)}},t.prototype.getHeight=function(){return this.isVisible?this.height:0},t.prototype.scrollLeftFromThumbLeft=function(e){var t=e*(this.pageWidth-this.viewWidth)/(this.slideWidth-this.thumbWidth);return(t|=0)<0?t=0:t>this.pageWidth-this.viewWidth&&(t=this.pageWidth-this.viewWidth),t},t.prototype.setWidth=function(e){this.width=Math.max(0,e),this.element.style.width=this.width+"px",this.slideWidth=this.width,this.viewWidth=this.width,this.setScrollWidth(this.pageWidth,!0)},t.prototype.setScrollWidth=function(e,t){(this.pageWidth!==e||t)&&(this.pageWidth=e,this.thumbWidth=this.slideWidth*this.viewWidth/this.pageWidth,this.thumbWidth>this.slideWidth&&(this.thumbWidth=this.slideWidth),this.thumbWidth<15&&(this.thumbWidth=15),this.inner.style.width=this.thumbWidth+"px",this.scrollLeft>this.pageWidth-this.viewWidth&&(this.scrollLeft=this.pageWidth-this.viewWidth,this.scrollLeft<0&&(this.scrollLeft=0),this._emit("scroll",{data:this.scrollLeft})))},t.prototype.setScrollLeft=function(e){this.scrollLeft=e,e<0&&(e=0),this.thumbLeft=e*(this.slideWidth-this.thumbWidth)/(this.pageWidth-this.viewWidth),this.inner.style.left=this.thumbLeft+"px"},t}(c);h.prototype.setInnerWidth=h.prototype.setScrollWidth,t.ScrollBar=u,t.ScrollBarV=u,t.ScrollBarH=h,t.VScrollBar=u,t.HScrollBar=h})),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],(function(e,t,n){"use strict";var o=e("./lib/event"),i=function(){function e(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.$recursionLimit=2,this.window=t||window;var n=this;this._flush=function(e){n.pending=!1;var t=n.changes;if(t&&(o.blockIdle(100),n.changes=0,n.onRender(t)),n.changes){if(n.$recursionLimit--<0)return;n.schedule()}else n.$recursionLimit=2}}return e.prototype.schedule=function(e){this.changes=this.changes|e,this.changes&&!this.pending&&(o.nextFrame(this._flush),this.pending=!0)},e.prototype.clear=function(e){var t=this.changes;return this.changes=0,t},e}();t.RenderLoop=i})),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/lib/useragent","ace/lib/event_emitter"],(function(e,t,n){var o=e("../lib/oop"),i=e("../lib/dom"),r=e("../lib/lang"),s=e("../lib/event"),a=e("../lib/useragent"),l=e("../lib/event_emitter").EventEmitter,c=512,u="function"==typeof ResizeObserver,h=200,d=function(){function e(e){this.el=i.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=i.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=i.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),this.$measureNode.textContent=r.stringRepeat("X",c),this.$characterSize={width:0,height:0},u?this.$addObserver():this.checkForSizeChanges()}return e.prototype.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",a.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},e.prototype.checkForSizeChanges=function(e){if(void 0===e&&(e=this.$measureSizes()),e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},e.prototype.$addObserver=function(){var e=this;this.$observer=new window.ResizeObserver((function(t){e.checkForSizeChanges()})),this.$observer.observe(this.$measureNode)},e.prototype.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer||this.$observer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=s.onIdle((function t(){e.checkForSizeChanges(),s.onIdle(t,500)}),500)},e.prototype.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},e.prototype.$measureSizes=function(e){var t={height:(e||this.$measureNode).clientHeight,width:(e||this.$measureNode).clientWidth/c};return 0===t.width||0===t.height?null:t},e.prototype.$measureCharWidth=function(e){return this.$main.textContent=r.stringRepeat(e,c),this.$main.getBoundingClientRect().width/c},e.prototype.getCharacterWidth=function(e){var t=this.charSizes[e];return void 0===t&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},e.prototype.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$observer&&this.$observer.disconnect(),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)},e.prototype.$getZoom=function(e){return e&&e.parentElement?(window.getComputedStyle(e).zoom||1)*this.$getZoom(e.parentElement):1},e.prototype.$initTransformMeasureNodes=function(){var e=function(e,t){return["div",{style:"position: absolute;top:"+e+"px;left:"+t+"px;"}]};this.els=i.buildDom([e(0,0),e(h,0),e(0,h),e(h,h)],this.el)},e.prototype.transformCoordinates=function(e,t){function n(e,t,n){var o=e[1]*t[0]-e[0]*t[1];return[(-t[1]*n[0]+t[0]*n[1])/o,(+e[1]*n[0]-e[0]*n[1])/o]}function o(e,t){return[e[0]-t[0],e[1]-t[1]]}function i(e,t){return[e[0]+t[0],e[1]+t[1]]}function r(e,t){return[e*t[0],e*t[1]]}function s(e){var t=e.getBoundingClientRect();return[t.left,t.top]}e&&(e=r(1/this.$getZoom(this.el),e)),this.els||this.$initTransformMeasureNodes();var a=s(this.els[0]),l=s(this.els[1]),c=s(this.els[2]),u=s(this.els[3]),d=n(o(u,l),o(u,c),o(i(l,c),i(u,a))),p=r(1+d[0],o(l,a)),g=r(1+d[1],o(c,a));if(t){var m=t,f=d[0]*m[0]/h+d[1]*m[1]/h+1,y=i(r(m[0],p),r(m[1],g));return i(r(1/f/h,y),a)}var v=o(e,a),b=n(o(p,r(d[0],v)),o(g,r(d[1],v)),v);return r(h,b)},e}();d.prototype.$characterSize={width:0,height:0},o.implement(d.prototype,l),t.FontMetrics=d})),ace.define("ace/css/editor-css",["require","exports","module"],(function(e,t,n){n.exports='\n.ace_br1 {border-top-left-radius : 3px;}\n.ace_br2 {border-top-right-radius : 3px;}\n.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}\n.ace_br4 {border-bottom-right-radius: 3px;}\n.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}\n.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}\n.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}\n.ace_br8 {border-bottom-left-radius : 3px;}\n.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}\n.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}\n.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n\n\n.ace_editor {\n position: relative;\n overflow: hidden;\n padding: 0;\n font: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'Source Code Pro\', \'source-code-pro\', monospace;\n direction: ltr;\n text-align: left;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\n.ace_scroller {\n position: absolute;\n overflow: hidden;\n top: 0;\n bottom: 0;\n background-color: inherit;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n cursor: text;\n}\n\n.ace_content {\n position: absolute;\n box-sizing: border-box;\n min-width: 100%;\n contain: style size layout;\n font-variant-ligatures: no-common-ligatures;\n}\n\n.ace_keyboard-focus:focus {\n box-shadow: inset 0 0 0 2px #5E9ED6;\n outline: none;\n}\n\n.ace_dragging .ace_scroller:before{\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n content: \'\';\n background: rgba(250, 250, 250, 0.01);\n z-index: 1000;\n}\n.ace_dragging.ace_dark .ace_scroller:before{\n background: rgba(0, 0, 0, 0.01);\n}\n\n.ace_gutter {\n position: absolute;\n overflow : hidden;\n width: auto;\n top: 0;\n bottom: 0;\n left: 0;\n cursor: default;\n z-index: 4;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n contain: style size layout;\n}\n\n.ace_gutter-active-line {\n position: absolute;\n left: 0;\n right: 0;\n}\n\n.ace_scroller.ace_scroll-left:after {\n content: "";\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;\n pointer-events: none;\n}\n\n.ace_gutter-cell, .ace_gutter-cell_svg-icons {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n padding-left: 19px;\n padding-right: 6px;\n background-repeat: no-repeat;\n}\n\n.ace_gutter-cell_svg-icons .ace_gutter_annotation {\n margin-left: -14px;\n float: left;\n}\n\n.ace_gutter-cell .ace_gutter_annotation {\n margin-left: -19px;\n float: left;\n}\n\n.ace_gutter-cell.ace_error, .ace_icon.ace_error, .ace_icon.ace_error_fold {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_warning, .ace_icon.ace_warning, .ace_icon.ace_warning_fold {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_info, .ace_icon.ace_info {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n.ace_dark .ace_gutter-cell.ace_info, .ace_dark .ace_icon.ace_info {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");\n}\n\n.ace_icon_svg.ace_error {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJyZWQiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIj4KPGNpcmNsZSBmaWxsPSJub25lIiBjeD0iOCIgY3k9IjgiIHI9IjciIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPGxpbmUgeDE9IjExIiB5MT0iNSIgeDI9IjUiIHkyPSIxMSIvPgo8bGluZSB4MT0iMTEiIHkxPSIxMSIgeDI9IjUiIHkyPSI1Ii8+CjwvZz4KPC9zdmc+");\n background-color: crimson;\n}\n.ace_icon_svg.ace_warning {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJkYXJrb3JhbmdlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+Cjxwb2x5Z29uIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGZpbGw9Im5vbmUiIHBvaW50cz0iOCAxIDE1IDE1IDEgMTUgOCAxIi8+CjxyZWN0IHg9IjgiIHk9IjEyIiB3aWR0aD0iMC4wMSIgaGVpZ2h0PSIwLjAxIi8+CjxsaW5lIHgxPSI4IiB5MT0iNiIgeDI9IjgiIHkyPSIxMCIvPgo8L2c+Cjwvc3ZnPg==");\n background-color: darkorange;\n}\n.ace_icon_svg.ace_info {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJibHVlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+CjxjaXJjbGUgZmlsbD0ibm9uZSIgY3g9IjgiIGN5PSI4IiByPSI3IiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjxwb2x5bGluZSBwb2ludHM9IjggMTEgOCA4Ii8+Cjxwb2x5bGluZSBwb2ludHM9IjkgOCA2IDgiLz4KPGxpbmUgeDE9IjEwIiB5MT0iMTEiIHgyPSI2IiB5Mj0iMTEiLz4KPHJlY3QgeD0iOCIgeT0iNSIgd2lkdGg9IjAuMDEiIGhlaWdodD0iMC4wMSIvPgo8L2c+Cjwvc3ZnPg==");\n background-color: royalblue;\n}\n\n.ace_icon_svg.ace_error_fold {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSI+CiAgPHBhdGggZD0ibSAxOC45Mjk4NTEsNy44Mjk4MDc2IGMgMC4xNDYzNTMsNi4zMzc0NjA0IC02LjMyMzE0Nyw3Ljc3Nzg0NDQgLTcuNDc3OTEyLDcuNzc3ODQ0NCAtMi4xMDcyNzI2LC0wLjEyODc1IDUuMTE3Njc4LDAuMzU2MjQ5IDUuMDUxNjk4LC03Ljg3MDA2MTggLTAuNjA0NjcyLC04LjAwMzk3MzQ5IC03LjA3NzI3MDYsLTcuNTYzMTE4OSAtNC44NTczLC03LjQzMDM5NTU2IDEuNjA2LC0wLjExNTE0MjI1IDYuODk3NDg1LDEuMjYyNTQ1OTYgNy4yODM1MTQsNy41MjI2MTI5NiB6IiBmaWxsPSJjcmltc29uIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0ibSA4LjExNDc1NjIsMi4wNTI5ODI4IGMgMy4zNDkxNjk4LDAgNi4wNjQxMzI4LDIuNjc2ODYyNyA2LjA2NDEzMjgsNS45Nzg5NTMgMCwzLjMwMjExMjIgLTIuNzE0OTYzLDUuOTc4OTIwMiAtNi4wNjQxMzI4LDUuOTc4OTIwMiAtMy4zNDkxNDczLDAgLTYuMDY0MTc3MiwtMi42NzY4MDggLTYuMDY0MTc3MiwtNS45Nzg5MjAyIDAuMDA1MzksLTMuMjk5ODg2MSAyLjcxNzI2NTYsLTUuOTczNjQwOCA2LjA2NDE3NzIsLTUuOTc4OTUzIHogbSAwLC0xLjczNTgyNzE5IGMgLTQuMzIxNDgzNiwwIC03LjgyNDc0MDM4LDMuNDU0MDE4NDkgLTcuODI0NzQwMzgsNy43MTQ3ODAxOSAwLDQuMjYwNzI4MiAzLjUwMzI1Njc4LDcuNzE0NzQ1MiA3LjgyNDc0MDM4LDcuNzE0NzQ1MiA0LjMyMTQ0OTgsMCA3LjgyNDY5OTgsLTMuNDU0MDE3IDcuODI0Njk5OCwtNy43MTQ3NDUyIDAsLTIuMDQ2MDkxNCAtMC44MjQzOTIsLTQuMDA4MzY3MiAtMi4yOTE3NTYsLTUuNDU1MTc0NiBDIDEyLjE4MDIyNSwxLjEyOTk2NDggMTAuMTkwMDEzLDAuMzE3MTU1NjEgOC4xMTQ3NTYyLDAuMzE3MTU1NjEgWiBNIDYuOTM3NDU2Myw4LjI0MDU5ODUgNC42NzE4Njg1LDEwLjQ4NTg1MiA2LjAwODY4MTQsMTEuODc2NzI4IDguMzE3MDAzNSw5LjYwMDc5MTEgMTAuNjI1MzM3LDExLjg3NjcyOCAxMS45NjIxMzgsMTAuNDg1ODUyIDkuNjk2NTUwOCw4LjI0MDU5ODUgMTEuOTYyMTM4LDYuMDA2ODA2NiAxMC41NzMyNDYsNC42Mzc0MzM1IDguMzE3MDAzNSw2Ljg3MzQyOTcgNi4wNjA3NjA3LDQuNjM3NDMzNSA0LjY3MTg2ODUsNi4wMDY4MDY2IFoiIGZpbGw9ImNyaW1zb24iIHN0cm9rZS13aWR0aD0iMiIvPgo8L3N2Zz4=");\n background-color: crimson;\n}\n.ace_icon_svg.ace_warning_fold {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNC43NzY5IDE0LjczMzdMOC42NTE5MiAyLjQ4MzY5QzguMzI5NDYgMS44Mzg3NyA3LjQwOTEzIDEuODM4NzcgNy4wODY2NyAyLjQ4MzY5TDAuOTYxNjY5IDE0LjczMzdDMC42NzA3NzUgMTUuMzE1NSAxLjA5MzgzIDE2IDEuNzQ0MjkgMTZIMTMuOTk0M0MxNC42NDQ4IDE2IDE1LjA2NzggMTUuMzE1NSAxNC43NzY5IDE0LjczMzdaTTMuMTYwMDcgMTQuMjVMNy44NjkyOSA0LjgzMTU2TDEyLjU3ODUgMTQuMjVIMy4xNjAwN1pNOC43NDQyOSAxMS42MjVWMTMuMzc1SDYuOTk0MjlWMTEuNjI1SDguNzQ0MjlaTTYuOTk0MjkgMTAuNzVWNy4yNUg4Ljc0NDI5VjEwLjc1SDYuOTk0MjlaIiBmaWxsPSIjRUM3MjExIi8+CjxwYXRoIGQ9Ik0xMS4xOTkxIDIuOTUyMzhDMTAuODgwOSAyLjMxNDY3IDEwLjM1MzcgMS44MDUyNiA5LjcwNTUgMS41MDlMMTEuMDQxIDEuMDY5NzhDMTEuNjg4MyAwLjk0OTgxNCAxMi4zMzcgMS4yNzI2MyAxMi42MzE3IDEuODYxNDFMMTcuNjEzNiAxMS44MTYxQzE4LjM1MjcgMTMuMjkyOSAxNy41OTM4IDE1LjA4MDQgMTYuMDE4IDE1LjU3NDVDMTYuNDA0NCAxNC40NTA3IDE2LjMyMzEgMTMuMjE4OCAxNS43OTI0IDEyLjE1NTVMMTEuMTk5MSAyLjk1MjM4WiIgZmlsbD0iI0VDNzIxMSIvPgo8L3N2Zz4=");\n background-color: darkorange;\n}\n\n.ace_scrollbar {\n contain: strict;\n position: absolute;\n right: 0;\n bottom: 0;\n z-index: 6;\n}\n\n.ace_scrollbar-inner {\n position: absolute;\n cursor: text;\n left: 0;\n top: 0;\n}\n\n.ace_scrollbar-v{\n overflow-x: hidden;\n overflow-y: scroll;\n top: 0;\n}\n\n.ace_scrollbar-h {\n overflow-x: scroll;\n overflow-y: hidden;\n left: 0;\n}\n\n.ace_print-margin {\n position: absolute;\n height: 100%;\n}\n\n.ace_text-input {\n position: absolute;\n z-index: 0;\n width: 0.5em;\n height: 1em;\n opacity: 0;\n background: transparent;\n -moz-appearance: none;\n appearance: none;\n border: none;\n resize: none;\n outline: none;\n overflow: hidden;\n font: inherit;\n padding: 0 1px;\n margin: 0 -1px;\n contain: strict;\n -ms-user-select: text;\n -moz-user-select: text;\n -webkit-user-select: text;\n user-select: text;\n /*with `pre-line` chrome inserts   instead of space*/\n white-space: pre!important;\n}\n.ace_text-input.ace_composition {\n background: transparent;\n color: inherit;\n z-index: 1000;\n opacity: 1;\n}\n.ace_composition_placeholder { color: transparent }\n.ace_composition_marker { \n border-bottom: 1px solid;\n position: absolute;\n border-radius: 0;\n margin-top: 1px;\n}\n\n[ace_nocontext=true] {\n transform: none!important;\n filter: none!important;\n clip-path: none!important;\n mask : none!important;\n contain: none!important;\n perspective: none!important;\n mix-blend-mode: initial!important;\n z-index: auto;\n}\n\n.ace_layer {\n z-index: 1;\n position: absolute;\n overflow: hidden;\n /* workaround for chrome bug https://github.com/ajaxorg/ace/issues/2312*/\n word-wrap: normal;\n white-space: pre;\n height: 100%;\n width: 100%;\n box-sizing: border-box;\n /* setting pointer-events: auto; on node under the mouse, which changes\n during scroll, will break mouse wheel scrolling in Safari */\n pointer-events: none;\n}\n\n.ace_gutter-layer {\n position: relative;\n width: auto;\n text-align: right;\n pointer-events: auto;\n height: 1000000px;\n contain: style size layout;\n}\n\n.ace_text-layer {\n font: inherit !important;\n position: absolute;\n height: 1000000px;\n width: 1000000px;\n contain: style size layout;\n}\n\n.ace_text-layer > .ace_line, .ace_text-layer > .ace_line_group {\n contain: style size layout;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n}\n\n.ace_hidpi .ace_text-layer,\n.ace_hidpi .ace_gutter-layer,\n.ace_hidpi .ace_content,\n.ace_hidpi .ace_gutter {\n contain: strict;\n}\n.ace_hidpi .ace_text-layer > .ace_line, \n.ace_hidpi .ace_text-layer > .ace_line_group {\n contain: strict;\n}\n\n.ace_cjk {\n display: inline-block;\n text-align: center;\n}\n\n.ace_cursor-layer {\n z-index: 4;\n}\n\n.ace_cursor {\n z-index: 4;\n position: absolute;\n box-sizing: border-box;\n border-left: 2px solid;\n /* workaround for smooth cursor repaintng whole screen in chrome */\n transform: translatez(0);\n}\n\n.ace_multiselect .ace_cursor {\n border-left-width: 1px;\n}\n\n.ace_slim-cursors .ace_cursor {\n border-left-width: 1px;\n}\n\n.ace_overwrite-cursors .ace_cursor {\n border-left-width: 0;\n border-bottom: 1px solid;\n}\n\n.ace_hidden-cursors .ace_cursor {\n opacity: 0.2;\n}\n\n.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor {\n opacity: 0;\n}\n\n.ace_smooth-blinking .ace_cursor {\n transition: opacity 0.18s;\n}\n\n.ace_animate-blinking .ace_cursor {\n animation-duration: 1000ms;\n animation-timing-function: step-end;\n animation-name: blink-ace-animate;\n animation-iteration-count: infinite;\n}\n\n.ace_animate-blinking.ace_smooth-blinking .ace_cursor {\n animation-duration: 1000ms;\n animation-timing-function: ease-in-out;\n animation-name: blink-ace-animate-smooth;\n}\n \n@keyframes blink-ace-animate {\n from, to { opacity: 1; }\n 60% { opacity: 0; }\n}\n\n@keyframes blink-ace-animate-smooth {\n from, to { opacity: 1; }\n 45% { opacity: 1; }\n 60% { opacity: 0; }\n 85% { opacity: 0; }\n}\n\n.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\n position: absolute;\n z-index: 3;\n}\n\n.ace_marker-layer .ace_selection {\n position: absolute;\n z-index: 5;\n}\n\n.ace_marker-layer .ace_bracket {\n position: absolute;\n z-index: 6;\n}\n\n.ace_marker-layer .ace_error_bracket {\n position: absolute;\n border-bottom: 1px solid #DE5555;\n border-radius: 0;\n}\n\n.ace_marker-layer .ace_active-line {\n position: absolute;\n z-index: 2;\n}\n\n.ace_marker-layer .ace_selected-word {\n position: absolute;\n z-index: 4;\n box-sizing: border-box;\n}\n\n.ace_line .ace_fold {\n box-sizing: border-box;\n\n display: inline-block;\n height: 11px;\n margin-top: -2px;\n vertical-align: middle;\n\n background-image:\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");\n background-repeat: no-repeat, repeat-x;\n background-position: center center, top left;\n color: transparent;\n\n border: 1px solid black;\n border-radius: 2px;\n\n cursor: pointer;\n pointer-events: auto;\n}\n\n.ace_dark .ace_fold {\n}\n\n.ace_fold:hover{\n background-image:\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");\n}\n\n.ace_tooltip {\n background-color: #f5f5f5;\n border: 1px solid gray;\n border-radius: 1px;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\n color: black;\n max-width: 100%;\n padding: 3px 4px;\n position: fixed;\n z-index: 999999;\n box-sizing: border-box;\n cursor: default;\n white-space: pre-wrap;\n word-wrap: break-word;\n line-height: normal;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n pointer-events: none;\n overflow: auto;\n max-width: min(60em, 66vw);\n}\n.ace_tooltip pre {\n white-space: pre-wrap;\n}\n\n.ace_tooltip.ace_dark {\n background-color: #636363;\n color: #fff;\n}\n\n.ace_tooltip:focus {\n outline: 1px solid #5E9ED6;\n}\n\n.ace_icon {\n display: inline-block;\n width: 18px;\n vertical-align: top;\n}\n\n.ace_icon_svg {\n display: inline-block;\n width: 12px;\n vertical-align: top;\n -webkit-mask-repeat: no-repeat;\n -webkit-mask-size: 12px;\n -webkit-mask-position: center;\n}\n\n.ace_folding-enabled > .ace_gutter-cell, .ace_folding-enabled > .ace_gutter-cell_svg-icons {\n padding-right: 13px;\n}\n\n.ace_fold-widget {\n box-sizing: border-box;\n\n margin: 0 -12px 0 1px;\n display: none;\n width: 11px;\n vertical-align: top;\n\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: center;\n\n border-radius: 3px;\n \n border: 1px solid transparent;\n cursor: pointer;\n}\n\n.ace_folding-enabled .ace_fold-widget {\n display: inline-block; \n}\n\n.ace_fold-widget.ace_end {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");\n}\n\n.ace_fold-widget.ace_closed {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");\n}\n\n.ace_fold-widget:hover {\n border: 1px solid rgba(0, 0, 0, 0.3);\n background-color: rgba(255, 255, 255, 0.2);\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n}\n\n.ace_fold-widget:active {\n border: 1px solid rgba(0, 0, 0, 0.4);\n background-color: rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n}\n/**\n * Dark version for fold widgets\n */\n.ace_dark .ace_fold-widget {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");\n}\n.ace_dark .ace_fold-widget.ace_end {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");\n}\n.ace_dark .ace_fold-widget.ace_closed {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");\n}\n.ace_dark .ace_fold-widget:hover {\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n background-color: rgba(255, 255, 255, 0.1);\n}\n.ace_dark .ace_fold-widget:active {\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n}\n\n.ace_inline_button {\n border: 1px solid lightgray;\n display: inline-block;\n margin: -1px 8px;\n padding: 0 5px;\n pointer-events: auto;\n cursor: pointer;\n}\n.ace_inline_button:hover {\n border-color: gray;\n background: rgba(200,200,200,0.2);\n display: inline-block;\n pointer-events: auto;\n}\n\n.ace_fold-widget.ace_invalid {\n background-color: #FFB4B4;\n border-color: #DE5555;\n}\n\n.ace_fade-fold-widgets .ace_fold-widget {\n transition: opacity 0.4s ease 0.05s;\n opacity: 0;\n}\n\n.ace_fade-fold-widgets:hover .ace_fold-widget {\n transition: opacity 0.05s ease 0.05s;\n opacity:1;\n}\n\n.ace_underline {\n text-decoration: underline;\n}\n\n.ace_bold {\n font-weight: bold;\n}\n\n.ace_nobold .ace_bold {\n font-weight: normal;\n}\n\n.ace_italic {\n font-style: italic;\n}\n\n\n.ace_error-marker {\n background-color: rgba(255, 0, 0,0.2);\n position: absolute;\n z-index: 9;\n}\n\n.ace_highlight-marker {\n background-color: rgba(255, 255, 0,0.2);\n position: absolute;\n z-index: 8;\n}\n\n.ace_mobile-menu {\n position: absolute;\n line-height: 1.5;\n border-radius: 4px;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n background: white;\n box-shadow: 1px 3px 2px grey;\n border: 1px solid #dcdcdc;\n color: black;\n}\n.ace_dark > .ace_mobile-menu {\n background: #333;\n color: #ccc;\n box-shadow: 1px 3px 2px grey;\n border: 1px solid #444;\n\n}\n.ace_mobile-button {\n padding: 2px;\n cursor: pointer;\n overflow: hidden;\n}\n.ace_mobile-button:hover {\n background-color: #eee;\n opacity:1;\n}\n.ace_mobile-button:active {\n background-color: #ddd;\n}\n\n.ace_placeholder {\n font-family: arial;\n transform: scale(0.9);\n transform-origin: left;\n white-space: pre;\n opacity: 0.7;\n margin: 0 10px;\n}\n\n.ace_ghost_text {\n opacity: 0.5;\n font-style: italic;\n white-space: pre;\n}\n\n.ace_screenreader-only {\n position:absolute;\n left:-10000px;\n top:auto;\n width:1px;\n height:1px;\n overflow:hidden;\n}'})),ace.define("ace/layer/decorators",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=e("../lib/oop"),r=e("../lib/event_emitter").EventEmitter,s=function(){function e(e,t){this.canvas=o.createElement("canvas"),this.renderer=t,this.pixelRatio=1,this.maxHeight=t.layerConfig.maxHeight,this.lineHeight=t.layerConfig.lineHeight,this.canvasHeight=e.parent.scrollHeight,this.heightRatio=this.canvasHeight/this.maxHeight,this.canvasWidth=e.width,this.minDecorationHeight=2*this.pixelRatio|0,this.halfMinDecorationHeight=this.minDecorationHeight/2|0,this.canvas.width=this.canvasWidth,this.canvas.height=this.canvasHeight,this.canvas.style.top="0px",this.canvas.style.right="0px",this.canvas.style.zIndex="7px",this.canvas.style.position="absolute",this.colors={},this.colors.dark={error:"rgba(255, 18, 18, 1)",warning:"rgba(18, 136, 18, 1)",info:"rgba(18, 18, 136, 1)"},this.colors.light={error:"rgb(255,51,51)",warning:"rgb(32,133,72)",info:"rgb(35,68,138)"},e.element.appendChild(this.canvas)}return e.prototype.$updateDecorators=function(e){var t=!0===this.renderer.theme.isDark?this.colors.dark:this.colors.light;e&&(this.maxHeight=e.maxHeight,this.lineHeight=e.lineHeight,this.canvasHeight=e.height,(e.lastRow+1)*this.lineHeightt.priority?1:0}));for(var r=this.renderer.session.$foldData,s=0;sthis.canvasHeight&&(d=this.canvasHeight-this.halfMinDecorationHeight),u=Math.round(d-this.halfMinDecorationHeight),h=Math.round(d+this.halfMinDecorationHeight)}n.fillStyle=t[o[s].type]||null,n.fillRect(0,c,this.canvasWidth,h-u)}}var p=this.renderer.session.selection.getCursor();p&&(l=this.compensateFoldRows(p.row,r),c=Math.round((p.row-l)*this.lineHeight*this.heightRatio),n.fillStyle="rgba(0, 0, 0, 0.5)",n.fillRect(0,c,this.canvasWidth,2))},e.prototype.compensateFoldRows=function(e,t){var n=0;if(t&&t.length>0)for(var o=0;ot[o].start.row&&e=t[o].end.row&&(n+=t[o].end.row-t[o].start.row);return n},e}();i.implement(s.prototype,r),t.Decorator=s})),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/config","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/scrollbar_custom","ace/scrollbar_custom","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter","ace/css/editor-css","ace/layer/decorators","ace/lib/useragent"],(function(e,t,n){"use strict";var o=e("./lib/oop"),i=e("./lib/dom"),r=e("./lib/lang"),s=e("./config"),a=e("./layer/gutter").Gutter,l=e("./layer/marker").Marker,c=e("./layer/text").Text,u=e("./layer/cursor").Cursor,h=e("./scrollbar").HScrollBar,d=e("./scrollbar").VScrollBar,p=e("./scrollbar_custom").HScrollBar,g=e("./scrollbar_custom").VScrollBar,m=e("./renderloop").RenderLoop,f=e("./layer/font_metrics").FontMetrics,y=e("./lib/event_emitter").EventEmitter,v=e("./css/editor-css"),b=e("./layer/decorators").Decorator,w=e("./lib/useragent");i.importCssString(v,"ace_editor.css",!1);var x=function(){function e(e,t){var n=this;this.container=e||i.createElement("div"),i.addCssClass(this.container,"ace_editor"),i.HI_DPI&&i.addCssClass(this.container,"ace_hidpi"),this.setTheme(t),null==s.get("useStrictCSP")&&s.set("useStrictCSP",!1),this.$gutter=i.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden",!0),this.scroller=i.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=i.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new a(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new l(this.content);var o=this.$textLayer=new c(this.content);this.canvas=o.element,this.$markerFront=new l(this.content),this.$cursorLayer=new u(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new d(this.container,this),this.scrollBarH=new h(this.container,this),this.scrollBarV.on("scroll",(function(e){n.$scrollAnimation||n.session.setScrollTop(e.data-n.scrollMargin.top)})),this.scrollBarH.on("scroll",(function(e){n.$scrollAnimation||n.session.setScrollLeft(e.data-n.scrollMargin.left)})),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new f(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.on("changeCharacterSize",(function(e){n.updateCharacterSize(),n.onResize(!0,n.gutterWidth,n.$size.width,n.$size.height),n._signal("changeCharacterSize",e)})),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.margin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$keepTextAreaAtCursor=!w.isIOS,this.$loop=new m(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),this.$addResizeObserver(),s.resetOptions(this),s._signal("renderer",this)}return e.prototype.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin(),i.setStyle(this.scroller.style,"line-height",this.lineHeight+"px")},e.prototype.setSession=function(e){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e),e&&(this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode))},e.prototype.updateLines=function(e,t,n){if(void 0===t&&(t=1/0),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRowthis.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},e.prototype.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},e.prototype.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},e.prototype.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},e.prototype.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},e.prototype.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},e.prototype.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},e.prototype.onResize=function(e,t,n,o){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=e?1:0;var i=this.container;o||(o=i.clientHeight||i.scrollHeight),n||(n=i.clientWidth||i.scrollWidth);var r=this.$updateCachedSize(e,t,n,o);if(this.$resizeTimer&&this.$resizeTimer.cancel(),!this.$size.scrollerHeight||!n&&!o)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(r|this.$changes,!0):this.$loop.schedule(r|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.$customScrollbar&&this.$updateCustomScrollbar(!0)}},e.prototype.$updateCachedSize=function(e,t,n,o){o-=this.$extraHeight||0;var r=0,s=this.$size,a={width:s.width,height:s.height,scrollerHeight:s.scrollerHeight,scrollerWidth:s.scrollerWidth};if(o&&(e||s.height!=o)&&(s.height=o,r|=this.CHANGE_SIZE,s.scrollerHeight=s.height,this.$horizScroll&&(s.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.setHeight(s.scrollerHeight),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",r|=this.CHANGE_SCROLL),n&&(e||s.width!=n)){r|=this.CHANGE_SIZE,s.width=n,null==t&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,i.setStyle(this.scrollBarH.element.style,"left",t+"px"),i.setStyle(this.scroller.style,"left",t+this.margin.left+"px"),s.scrollerWidth=Math.max(0,n-t-this.scrollBarV.getWidth()-this.margin.h),i.setStyle(this.$gutter.style,"left",this.margin.left+"px");var l=this.scrollBarV.getWidth()+"px";i.setStyle(this.scrollBarH.element.style,"right",l),i.setStyle(this.scroller.style,"right",l),i.setStyle(this.scroller.style,"bottom",this.scrollBarH.getHeight()),this.scrollBarH.setWidth(s.scrollerWidth),(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)&&(r|=this.CHANGE_FULL)}return s.$dirty=!n||!o,r&&this._signal("resize",a),r},e.prototype.onGutterResize=function(e){var t=this.$showGutter?e:0;t!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,t,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()||this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):this.$computeLayerConfig()},e.prototype.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-2*this.$padding,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},e.prototype.setAnimatedScroll=function(e){this.setOption("animatedScroll",e)},e.prototype.getAnimatedScroll=function(){return this.$animatedScroll},e.prototype.setShowInvisibles=function(e){this.setOption("showInvisibles",e),this.session.$bidiHandler.setShowInvisibles(e)},e.prototype.getShowInvisibles=function(){return this.getOption("showInvisibles")},e.prototype.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},e.prototype.setDisplayIndentGuides=function(e){this.setOption("displayIndentGuides",e)},e.prototype.getHighlightIndentGuides=function(){return this.getOption("highlightIndentGuides")},e.prototype.setHighlightIndentGuides=function(e){this.setOption("highlightIndentGuides",e)},e.prototype.setShowPrintMargin=function(e){this.setOption("showPrintMargin",e)},e.prototype.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},e.prototype.setPrintMarginColumn=function(e){this.setOption("printMarginColumn",e)},e.prototype.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},e.prototype.getShowGutter=function(){return this.getOption("showGutter")},e.prototype.setShowGutter=function(e){return this.setOption("showGutter",e)},e.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},e.prototype.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},e.prototype.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},e.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},e.prototype.$updatePrintMargin=function(){if(this.$showPrintMargin||this.$printMarginEl){if(!this.$printMarginEl){var e=i.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=i.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=Math.round(this.characterWidth*this.$printMarginColumn+this.$padding)+"px",t.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&-1==this.session.$wrap&&this.adjustWrapLimit()}},e.prototype.getContainerElement=function(){return this.container},e.prototype.getMouseEventTarget=function(){return this.scroller},e.prototype.getTextAreaContainer=function(){return this.container},e.prototype.$moveTextAreaToCursor=function(){if(!this.$isMousePressed){var e=this.textarea.style,t=this.$composition;if(this.$keepTextAreaAtCursor||t){var n=this.$cursorLayer.$pixelPos;if(n){t&&t.markerRange&&(n=this.$cursorLayer.getPixelPosition(t.markerRange.start,!0));var o=this.layerConfig,r=n.top,s=n.left;r-=o.offset;var a=t&&t.useTextareaForIME||w.isMobile?this.lineHeight:1;if(r<0||r>o.height-a)i.translate(this.textarea,0,0);else{var l=1,c=this.$size.height-a;if(t)if(t.useTextareaForIME){var u=this.textarea.value;l=this.characterWidth*this.session.$getStringScreenWidth(u)[0]}else r+=this.lineHeight+2;else r+=this.lineHeight;(s-=this.scrollLeft)>this.$size.scrollerWidth-l&&(s=this.$size.scrollerWidth-l),s+=this.gutterWidth+this.margin.left,i.setStyle(e,"height",a+"px"),i.setStyle(e,"width",l+"px"),i.translate(this.textarea,Math.min(s,this.$size.scrollerWidth-l),Math.min(r,c))}}}else i.translate(this.textarea,-100,0)}},e.prototype.getFirstVisibleRow=function(){return this.layerConfig.firstRow},e.prototype.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(0===this.layerConfig.offset?0:1)},e.prototype.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow;return this.session.documentToScreenRow(t,0)*e.lineHeight-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},e.prototype.getLastVisibleRow=function(){return this.layerConfig.lastRow},e.prototype.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},e.prototype.setScrollMargin=function(e,t,n,o){var i=this.scrollMargin;i.top=0|e,i.bottom=0|t,i.right=0|o,i.left=0|n,i.v=i.top+i.bottom,i.h=i.left+i.right,i.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-i.top),this.updateFull()},e.prototype.setMargin=function(e,t,n,o){var i=this.margin;i.top=0|e,i.bottom=0|t,i.right=0|o,i.left=0|n,i.v=i.top+i.bottom,i.h=i.left+i.right,this.$updateCachedSize(!0,this.gutterWidth,this.$size.width,this.$size.height),this.updateFull()},e.prototype.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},e.prototype.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},e.prototype.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},e.prototype.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},e.prototype.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},e.prototype.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},e.prototype.freeze=function(){this.$frozen=!0},e.prototype.unfreeze=function(){this.$frozen=!1},e.prototype.$renderChanges=function(e,t){if(this.$changes&&(e|=this.$changes,this.$changes=0),this.session&&this.container.offsetWidth&&!this.$frozen&&(e||t)){if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender",e),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var n=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){if(e|=this.$computeLayerConfig()|this.$loop.clear(),n.firstRow!=this.layerConfig.firstRow&&n.firstRowScreen==this.layerConfig.firstRowScreen){var o=this.scrollTop+(n.firstRow-Math.max(this.layerConfig.firstRow,0))*this.lineHeight;o>0&&(this.scrollTop=o,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig()|this.$loop.clear())}n=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),i.translate(this.content,-this.scrollLeft,-n.offset);var r=n.width+2*this.$padding+"px",s=n.minHeight+"px";i.setStyle(this.content.style,"width",r),i.setStyle(this.content.style,"height",s)}if(e&this.CHANGE_H_SCROLL&&(i.translate(this.content,-this.scrollLeft,-n.offset),this.scroller.className=this.scrollLeft<=0?"ace_scroller ":"ace_scroller ace_scroll-left ",this.enableKeyboardAccessibility&&(this.scroller.className+=this.keyboardFocusClassName)),e&this.CHANGE_FULL)return this.$changedLines=null,this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),void this._signal("afterRender",e);if(e&this.CHANGE_SCROLL)return this.$changedLines=null,e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(n):this.$textLayer.scrollLines(n),this.$showGutter&&(e&this.CHANGE_GUTTER||e&this.CHANGE_LINES?this.$gutterLayer.update(n):this.$gutterLayer.scrollLines(n)),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),void this._signal("afterRender",e);e&this.CHANGE_TEXT?(this.$changedLines=null,this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_LINES?((this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER?(this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_CURSOR&&(this.$highlightGutterLine&&this.$gutterLayer.updateLineHighlight(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(n),this.$moveTextAreaToCursor()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(n),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(n),this._signal("afterRender",e)}else this.$changes|=e},e.prototype.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,n=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(n+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&n>this.$maxPixelHeight&&(n=this.$maxPixelHeight);var o=!(n<=2*this.lineHeight)&&e>t;if(n!=this.desiredHeight||this.$size.height!=this.desiredHeight||o!=this.$vScroll){o!=this.$vScroll&&(this.$vScroll=o,this.scrollBarV.setVisible(o));var i=this.container.clientWidth;this.container.style.height=n+"px",this.$updateCachedSize(!0,this.$gutterWidth,i,n),this.desiredHeight=n,this._signal("autosize")}},e.prototype.$computeLayerConfig=function(){var e=this.session,t=this.$size,n=t.height<=2*this.lineHeight,o=this.session.getScreenLength()*this.lineHeight,i=this.$getLongestLine(),r=!n&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-i-2*this.$padding<0),s=this.$horizScroll!==r;s&&(this.$horizScroll=r,this.scrollBarH.setVisible(r));var a=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var l=t.scrollerHeight+this.lineHeight,c=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;o+=c;var u=this.scrollMargin;this.session.setScrollTop(Math.max(-u.top,Math.min(this.scrollTop,o-t.scrollerHeight+u.bottom))),this.session.setScrollLeft(Math.max(-u.left,Math.min(this.scrollLeft,i+2*this.$padding-t.scrollerWidth+u.right)));var h=!n&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-o+c<0||this.scrollTop>u.top),d=a!==h;d&&(this.$vScroll=h,this.scrollBarV.setVisible(h));var p,g,m=this.scrollTop%this.lineHeight,f=Math.ceil(l/this.lineHeight)-1,y=Math.max(0,Math.round((this.scrollTop-m)/this.lineHeight)),v=y+f,b=this.lineHeight;y=e.screenToDocumentRow(y,0);var w=e.getFoldLine(y);w&&(y=w.start.row),p=e.documentToScreenRow(y,0),g=e.getRowLength(y)*b,v=Math.min(e.screenToDocumentRow(v,0),e.getLength()-1),l=t.scrollerHeight+e.getRowLength(v)*b+g,m=this.scrollTop-p*b;var x=0;return(this.layerConfig.width!=i||s)&&(x=this.CHANGE_H_SCROLL),(s||d)&&(x|=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),d&&(i=this.$getLongestLine())),this.layerConfig={width:i,padding:this.$padding,firstRow:y,firstRowScreen:p,lastRow:v,lineHeight:b,characterWidth:this.characterWidth,minHeight:l,maxHeight:o,offset:m,gutterOffset:b?Math.max(0,Math.ceil((m+t.height-t.scrollerHeight)/b)):0,height:this.$size.scrollerHeight},this.session.$bidiHandler&&this.session.$bidiHandler.setContentWidth(i-this.$padding),x},e.prototype.$updateLines=function(){if(this.$changedLines){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var n=this.layerConfig;if(!(e>n.lastRow+1||tthis.$textLayer.MAX_LINE_LENGTH&&(e=this.$textLayer.MAX_LINE_LENGTH+30),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(e*this.characterWidth))},e.prototype.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},e.prototype.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},e.prototype.addGutterDecoration=function(e,t){this.$gutterLayer.addGutterDecoration(e,t)},e.prototype.removeGutterDecoration=function(e,t){this.$gutterLayer.removeGutterDecoration(e,t)},e.prototype.updateBreakpoints=function(e){this.$loop.schedule(this.CHANGE_GUTTER)},e.prototype.setAnnotations=function(e){this.$gutterLayer.setAnnotations(e),this.$loop.schedule(this.CHANGE_GUTTER)},e.prototype.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},e.prototype.hideCursor=function(){this.$cursorLayer.hideCursor()},e.prototype.showCursor=function(){this.$cursorLayer.showCursor()},e.prototype.scrollSelectionIntoView=function(e,t,n){this.scrollCursorIntoView(e,n),this.scrollCursorIntoView(t,n)},e.prototype.scrollCursorIntoView=function(e,t,n){if(0!==this.$size.scrollerHeight){var o=this.$cursorLayer.getPixelPosition(e),i=o.left,r=o.top,s=n&&n.top||0,a=n&&n.bottom||0;this.$scrollAnimation&&(this.$stopAnimation=!0);var l=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;l+s>r?(t&&l+s>r+this.lineHeight&&(r-=t*this.$size.scrollerHeight),0===r&&(r=-this.scrollMargin.top),this.session.setScrollTop(r)):l+this.$size.scrollerHeight-a=1-this.scrollMargin.top||t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right||void 0},e.prototype.pixelToScreenCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var o=this.$fontMetrics.transformCoordinates([e,t]);e=o[1]-this.gutterWidth-this.margin.left,t=o[0]}else n=this.scroller.getBoundingClientRect();var i=e+this.scrollLeft-n.left-this.$padding,r=i/this.characterWidth,s=Math.floor((t+this.scrollTop-n.top)/this.lineHeight),a=this.$blockCursor?Math.floor(r):Math.round(r);return{row:s,column:a,side:r-a>0?1:-1,offsetX:i}},e.prototype.screenToTextCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var o=this.$fontMetrics.transformCoordinates([e,t]);e=o[1]-this.gutterWidth-this.margin.left,t=o[0]}else n=this.scroller.getBoundingClientRect();var i=e+this.scrollLeft-n.left-this.$padding,r=i/this.characterWidth,s=this.$blockCursor?Math.floor(r):Math.round(r),a=Math.floor((t+this.scrollTop-n.top)/this.lineHeight);return this.session.screenToDocumentPosition(a,Math.max(s,0),i)},e.prototype.textToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),o=this.session.documentToScreenPosition(e,t),i=this.$padding+(this.session.$bidiHandler.isBidiRow(o.row,e)?this.session.$bidiHandler.getPosLeft(o.column):Math.round(o.column*this.characterWidth)),r=o.row*this.lineHeight;return{pageX:n.left+i-this.scrollLeft,pageY:n.top+r-this.scrollTop}},e.prototype.visualizeFocus=function(){i.addCssClass(this.container,"ace_focus")},e.prototype.visualizeBlur=function(){i.removeCssClass(this.container,"ace_focus")},e.prototype.showComposition=function(e){this.$composition=e,e.cssText||(e.cssText=this.textarea.style.cssText),null==e.useTextareaForIME&&(e.useTextareaForIME=this.$useTextareaForIME),this.$useTextareaForIME?(i.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor(),this.$cursorLayer.element.style.display="none"):e.markerId=this.session.addMarker(e.markerRange,"ace_composition_marker","text")},e.prototype.setCompositionText=function(e){var t=this.session.selection.cursor;this.addToken(e,"composition_placeholder",t.row,t.column),this.$moveTextAreaToCursor()},e.prototype.hideComposition=function(){if(this.$composition){this.$composition.markerId&&this.session.removeMarker(this.$composition.markerId),i.removeCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText=this.$composition.cssText;var e=this.session.selection.cursor;this.removeExtraToken(e.row,e.column),this.$composition=null,this.$cursorLayer.element.style.display=""}},e.prototype.setGhostText=function(e,t){var n=this.session.selection.cursor,o=t||{row:n.row,column:n.column};this.removeGhostText();var i=e.split("\n");if(this.addToken(i[0],"ghost_text",o.row,o.column),this.$ghostText={text:e,position:{row:o.row,column:o.column}},i.length>1){this.$ghostTextWidget={text:i.slice(1).join("\n"),row:o.row,column:o.column,className:"ace_ghost_text"},this.session.widgetManager.addLineWidget(this.$ghostTextWidget);var r=this.$cursorLayer.getPixelPosition(o,!0),s=this.container.getBoundingClientRect().height,a=i.length*this.lineHeight;if(a1||Math.abs(e.$size.height-o)>1?e.$resizeTimer.delay():e.$resizeTimer.cancel()})),this.$resizeObserver.observe(this.container)}},e}();x.prototype.CHANGE_CURSOR=1,x.prototype.CHANGE_MARKER=2,x.prototype.CHANGE_GUTTER=4,x.prototype.CHANGE_SCROLL=8,x.prototype.CHANGE_LINES=16,x.prototype.CHANGE_TEXT=32,x.prototype.CHANGE_SIZE=64,x.prototype.CHANGE_MARKER_BACK=128,x.prototype.CHANGE_MARKER_FRONT=256,x.prototype.CHANGE_FULL=512,x.prototype.CHANGE_H_SCROLL=1024,x.prototype.$changes=0,x.prototype.$padding=null,x.prototype.$frozen=!1,x.prototype.STEPS=8,o.implement(x.prototype,y),s.defineOptions(x.prototype,"renderer",{useResizeObserver:{set:function(e){!e&&this.$resizeObserver?(this.$resizeObserver.disconnect(),this.$resizeTimer.cancel(),this.$resizeTimer=this.$resizeObserver=null):e&&!this.$resizeObserver&&this.$addResizeObserver()}},animatedScroll:{initialValue:!1},showInvisibles:{set:function(e){this.$textLayer.setShowInvisibles(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(e){"number"==typeof e&&(this.$printMarginColumn=e),this.$showPrintMargin=!!e,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(e){this.$gutter.style.display=e?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},useSvgGutterIcons:{set:function(e){this.$gutterLayer.$useSvgGutterIcons=e},initialValue:!1},showFoldedAnnotations:{set:function(e){this.$gutterLayer.$showFoldedAnnotations=e},initialValue:!1},fadeFoldWidgets:{set:function(e){i.setCssClass(this.$gutter,"ace_fade-fold-widgets",e)},initialValue:!1},showFoldWidgets:{set:function(e){this.$gutterLayer.setShowFoldWidgets(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightIndentGuides:{set:function(e){1==this.$textLayer.setHighlightIndentGuides(e)?this.$textLayer.$highlightIndentGuide():this.$textLayer.$clearActiveIndentGuide(this.$textLayer.$lines.cells)},initialValue:!0},highlightGutterLine:{set:function(e){this.$gutterLayer.setHighlightGutterLine(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},hScrollBarAlwaysVisible:{set:function(e){this.$hScrollBarAlwaysVisible&&this.$horizScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(e){this.$vScrollBarAlwaysVisible&&this.$vScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(e){"number"==typeof e&&(e+="px"),this.container.style.fontSize=e,this.updateFontSize()},initialValue:12},fontFamily:{set:function(e){this.container.style.fontFamily=e,this.updateFontSize()}},maxLines:{set:function(e){this.updateFull()}},minLines:{set:function(e){this.$minLines<562949953421311||(this.$minLines=0),this.updateFull()}},maxPixelHeight:{set:function(e){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(e){e=+e||0,this.$scrollPastEnd!=e&&(this.$scrollPastEnd=e,this.$loop.schedule(this.CHANGE_SCROLL))},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(e){this.$gutterLayer.$fixedWidth=!!e,this.$loop.schedule(this.CHANGE_GUTTER)}},customScrollbar:{set:function(e){this.$updateCustomScrollbar(e)},initialValue:!1},theme:{set:function(e){this.setTheme(e)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0},hasCssTransforms:{},useTextareaForIME:{initialValue:!w.isMobile&&!w.isIE}}),t.VirtualRenderer=x})),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("../lib/net"),r=e("../lib/event_emitter").EventEmitter,s=e("../config");function a(e){if("undefined"==typeof Worker)return{postMessage:function(){},terminate:function(){}};if(s.get("loadWorkerFromBlob")){var t=function(e){var t="importScripts('"+i.qualifyURL(e)+"');";try{return new Blob([t],{type:"application/javascript"})}catch(e){var n=new(window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder);return n.append(t),n.getBlob("application/javascript")}}(e),n=(window.URL||window.webkitURL).createObjectURL(t);return new Worker(n)}return new Worker(e)}var l=function(e){e.postMessage||(e=this.$createWorkerFromOldConfig.apply(this,arguments)),this.$worker=e,this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){o.implement(this,r),this.$createWorkerFromOldConfig=function(t,n,o,i,r){if(e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl),s.get("packaged")||!e.toUrl)i=i||s.moduleUrl(n,"worker");else{var l=this.$normalizePath;i=i||l(e.toUrl("ace/worker/worker.js",null,"_"));var c={};t.forEach((function(t){c[t]=l(e.toUrl(t,null,"_").replace(/(\.js)?(\?.*)?$/,""))}))}return this.$worker=a(i),r&&this.send("importScripts",r),this.$worker.postMessage({init:!0,tlns:c,module:n,classname:o}),this.$worker},this.onMessage=function(e){var t=e.data;switch(t.type){case"event":this._signal(t.name,{data:t.data});break;case"call":var n=this.callbacks[t.id];n&&(n(t.data),delete this.callbacks[t.id]);break;case"error":this.reportError(t.data);break;case"log":window.console&&console.log&&console.log.apply(console,t.data)}},this.reportError=function(e){window.console&&console.error&&console.error(e)},this.$normalizePath=function(e){return i.qualifyURL(e)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker.onerror=function(e){e.preventDefault()},this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,n){if(n){var o=this.callbackId++;this.callbacks[o]=n,t.push(o)}this.send(e,t)},this.emit=function(e,t){try{t.data&&t.data.err&&(t.data.err={message:t.data.err.message,stack:t.data.err.stack,code:t.data.err.code}),this.$worker&&this.$worker.postMessage({event:e,data:{data:t.data}})}catch(e){console.error(e.stack)}},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call("setValue",[e.getValue()]),e.on("change",this.changeListener,!0)},this.changeListener=function(e){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),"insert"==e.action?this.deltaQueue.push(e.start,e.lines):this.deltaQueue.push(e.start,e.end)},this.$sendDeltaQueue=function(){var e=this.deltaQueue;e&&(this.deltaQueue=null,e.length>50&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e}))}}).call(l.prototype),t.UIWorkerClient=function(e,t,n){var o=null,i=!1,a=Object.create(r),c=[],u=new l({messageBuffer:c,terminate:function(){},postMessage:function(e){c.push(e),o&&(i?setTimeout(h):h())}});u.setEmitSync=function(e){i=e};var h=function(){var e=c.shift();e.command?o[e.command].apply(o,e.args):e.event&&a._signal(e.event,e.data)};return a.postMessage=function(e){u.onMessage({data:e})},a.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},a.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},s.loadModule(["worker",t],(function(e){for(o=new e[n](a);c.length;)h()})),u},t.WorkerClient=l,t.createWorker=a})),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],(function(e,t,n){"use strict";var o=e("./range").Range,i=e("./lib/event_emitter").EventEmitter,r=e("./lib/oop"),s=function(){function e(e,t,n,o,i,r){var s=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=i,this.othersClass=r,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate,!0),this.$others=o,this.$onCursorChange=function(){setTimeout((function(){s.onCursorChange()}))},this.$pos=n;var a=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=a.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)}return e.prototype.setup=function(){var e=this,t=this.doc,n=this.session;this.selectionBefore=n.selection.toJSON(),n.selection.inMultiSelectMode&&n.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var i=this.pos;i.$insertRight=!0,i.detach(),i.markerId=n.addMarker(new o(i.row,i.column,i.row,i.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach((function(n){var o=t.createAnchor(n.row,n.column);o.$insertRight=!0,o.detach(),e.others.push(o)})),n.setUndoSelect(!1)},e.prototype.showOtherMarkers=function(){if(!this.othersActive){var e=this.session,t=this;this.othersActive=!0,this.others.forEach((function(n){n.markerId=e.addMarker(new o(n.row,n.column,n.row,n.column+t.length),t.othersClass,null,!1)}))}},e.prototype.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var e=0;e=this.pos.column&&t.start.column<=this.pos.column+this.length+1,r=t.start.column-this.pos.column;if(this.updateAnchors(e),i&&(this.length+=n),i&&!this.session.$fromUndo)if("insert"===e.action)for(var s=this.others.length-1;s>=0;s--){var a={row:(l=this.others[s]).row,column:l.column+r};this.doc.insertMergedLines(a,e.lines)}else if("remove"===e.action)for(s=this.others.length-1;s>=0;s--){var l;a={row:(l=this.others[s]).row,column:l.column+r},this.doc.remove(new o(a.row,a.column,a.row,a.column-n))}this.$updating=!1,this.updateMarkers()}},e.prototype.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},e.prototype.updateMarkers=function(){if(!this.$updating){var e=this,t=this.session,n=function(n,i){t.removeMarker(n.markerId),n.markerId=t.addMarker(new o(n.row,n.column,n.row,n.column+e.length),i,null,!1)};n(this.pos,this.mainClass);for(var i=this.others.length;i--;)n(this.others[i],this.othersClass)}},e.prototype.onCursorChange=function(e){if(!this.$updating&&this.session){var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))}},e.prototype.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.off("change",this.$onUpdate),this.session.selection.off("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},e.prototype.cancel=function(){if(-1!==this.$undoStackDepth){for(var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth,n=0;n1?e.multiSelect.joinSelections():e.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"splitSelectionIntoLines",description:"Split into lines",exec:function(e){e.multiSelect.splitIntoLines()},readOnly:!0},{name:"alignCursors",description:"Align cursors",exec:function(e){e.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",description:"Find all",exec:function(e){e.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],t.multiSelectCommands=[{name:"singleSelection",description:"Single selection",bindKey:"esc",exec:function(e){e.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(e){return e&&e.inMultiSelectMode}}];var o=e("../keyboard/hash_handler").HashHandler;t.keyboardHandler=new o(t.multiSelectCommands)})),ace.define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],(function(e,t,n){var o=e("./range_list").RangeList,i=e("./range").Range,r=e("./selection").Selection,s=e("./mouse/multi_select_handler").onMouseDown,a=e("./lib/event"),l=e("./lib/lang"),c=e("./commands/multi_select_commands");t.commands=c.defaultCommands.concat(c.multiSelectCommands);var u=new(0,e("./search").Search),h=e("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(h.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(e,t){if(e){if(!this.inMultiSelectMode&&0===this.rangeCount){var n=this.toOrientedRange();if(this.rangeList.add(n),this.rangeList.add(e),2!=this.rangeList.ranges.length)return this.rangeList.removeAll(),t||this.fromOrientedRange(e);this.rangeList.removeAll(),this.rangeList.add(n),this.$onAddRange(n)}e.cursor||(e.cursor=e.end);var o=this.rangeList.add(e);return this.$onAddRange(e),o.length&&this.$onRemoveRange(o),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)}},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length&&this.$onRemoveRange(e)},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal("addRange",{range:e})},this.$onRemoveRange=function(e){if(this.rangeCount=this.rangeList.ranges.length,1==this.rangeCount&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var n=e.length;n--;){var o=this.ranges.indexOf(e[n]);this.ranges.splice(o,1)}this._signal("removeRange",{ranges:e}),0===this.rangeCount&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),(t=t||this.ranges[0])&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new o,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){for(var e=this.ranges.length?this.ranges:[this.getRange()],t=[],n=0;n1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var o=this.session.documentToScreenPosition(this.cursor),r=this.session.documentToScreenPosition(this.anchor);this.rectangularRangeBlock(o,r).forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,n){var o=[],r=e.column0;)v--;if(v>0)for(var b=0;o[b].isEmpty();)b++;for(var w=v;w>=b;w--)o[w].isEmpty()&&o.splice(w,1)}return o}}.call(r.prototype);var d=e("./editor").Editor;function p(e){e.$multiselectOnSessionChange||(e.$onAddRange=e.$onAddRange.bind(e),e.$onRemoveRange=e.$onRemoveRange.bind(e),e.$onMultiSelect=e.$onMultiSelect.bind(e),e.$onSingleSelect=e.$onSingleSelect.bind(e),e.$multiselectOnSessionChange=t.onSessionChange.bind(e),e.$checkMultiselectChange=e.$checkMultiselectChange.bind(e),e.$multiselectOnSessionChange(e),e.on("changeSession",e.$multiselectOnSessionChange),e.on("mousedown",s),e.commands.addCommands(c.defaultCommands),function(e){if(e.textInput){var t=e.textInput.getElement(),n=!1;a.addListener(t,"keydown",(function(t){var i=18==t.keyCode&&!(t.ctrlKey||t.shiftKey||t.metaKey);e.$blockSelectEnabled&&i?n||(e.renderer.setMouseCursor("crosshair"),n=!0):n&&o()}),e),a.addListener(t,"keyup",o,e),a.addListener(t,"blur",o,e)}function o(t){n&&(e.renderer.setMouseCursor(""),n=!1)}}(e))}(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(e.marker){this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);-1!=t&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(e){for(var t=this.session.$selectionMarkers,n=e.length;n--;){var o=e[n];if(o.marker){this.session.removeMarker(o.marker);var i=t.indexOf(o);-1!=i&&t.splice(i,1)}}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(c.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(e){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(c.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(e){var t=e.command,n=e.editor;if(n.multiSelect){if(t.multiSelectAction)"forEach"==t.multiSelectAction?o=n.forEachSelection(t,e.args):"forEachLine"==t.multiSelectAction?o=n.forEachSelection(t,e.args,!0):"single"==t.multiSelectAction?(n.exitMultiSelectMode(),o=t.exec(n,e.args||{})):o=t.multiSelectAction(n,e.args||{});else{var o=t.exec(n,e.args||{});n.multiSelect.addRange(n.multiSelect.toOrientedRange()),n.multiSelect.mergeOverlappingRanges()}return o}},this.forEachSelection=function(e,t,n){if(!this.inVirtualSelectionMode){var o,i=n&&n.keepOrder,s=1==n||n&&n.$byLines,a=this.session,l=this.selection,c=l.rangeList,u=(i?l:c).ranges;if(!u.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var h=l._eventRegistry;l._eventRegistry={};var d=new r(a);this.inVirtualSelectionMode=!0;for(var p=u.length;p--;){if(s)for(;p>0&&u[p].start.row==u[p-1].end.row;)p--;d.fromOrientedRange(u[p]),d.index=p,this.selection=a.selection=d;var g=e.exec?e.exec(this,t||{}):e(this,t||{});o||void 0===g||(o=g),d.toOrientedRange(u[p])}d.detach(),this.selection=a.selection=l,this.inVirtualSelectionMode=!1,l._eventRegistry=h,l.mergeOverlappingRanges(),l.ranges[0]&&l.fromOrientedRange(l.ranges[0]);var m=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),m&&m.from==m.to&&this.renderer.animateScrolling(m.from),o}},this.exitMultiSelectMode=function(){this.inMultiSelectMode&&!this.inVirtualSelectionMode&&this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var t=this.multiSelect.rangeList.ranges,n=[],o=0;os&&(s=n.column),ou?e.insert(o,l.stringRepeat(" ",r-u)):e.remove(new i(o.row,o.column,o.row,o.column-r+u)),t.start.column=t.end.column=s,t.start.row=t.end.row=o.row,t.cursor=t.end})),t.fromOrientedRange(n[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}else{var u=this.selection.getRange(),h=u.start.row,d=u.end.row,p=h==d;if(p){var g,m=this.session.getLength();do{g=this.session.getLine(d)}while(/[=:]/.test(g)&&++d0);h<0&&(h=0),d>=m&&(d=m-1)}var f=this.session.removeFullLines(h,d);f=this.$reAlignText(f,p),this.session.insert({row:h,column:0},f.join("\n")+"\n"),p||(u.start.column=0,u.end.column=f[f.length-1].length),this.selection.setRange(u)}},this.$reAlignText=function(e,t){var n,o,i,r=!0,s=!0;return e.map((function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?null==n?(n=t[1].length,o=t[2].length,i=t[3].length,t):(n+o+i!=t[1].length+t[2].length+t[3].length&&(s=!1),n!=t[1].length&&(r=!1),n>t[1].length&&(n=t[1].length),ot[3].length&&(i=t[3].length),t):[e]})).map(t?c:r?s?function(e){return e[2]?a(n+o-e[2].length)+e[2]+a(i)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}:c:function(e){return e[2]?a(n)+e[2]+a(i)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]});function a(e){return l.stringRepeat(" ",e)}function c(e){return e[2]?a(n)+e[2]+a(o-e[2].length+i)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}}}).call(d.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var n=e.oldSession;n&&(n.multiSelect.off("addRange",this.$onAddRange),n.multiSelect.off("removeRange",this.$onRemoveRange),n.multiSelect.off("multiSelect",this.$onMultiSelect),n.multiSelect.off("singleSelect",this.$onSingleSelect),n.multiSelect.lead.off("change",this.$checkMultiselectChange),n.multiSelect.anchor.off("change",this.$checkMultiselectChange)),t&&(t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),t.multiSelect.lead.on("change",this.$checkMultiselectChange),t.multiSelect.anchor.on("change",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=p,e("./config").defineOptions(d.prototype,"editor",{enableMultiselect:{set:function(e){p(this),e?this.on("mousedown",s):this.off("mousedown",s)},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})})),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../../range").Range,i=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);return this.foldingStartMarker.test(o)?"start":"markbeginend"==t&&this.foldingStopMarker&&this.foldingStopMarker.test(o)?"end":""},this.getFoldWidgetRange=function(e,t,n){return null},this.indentationBlock=function(e,t,n){var i=/\S/,r=e.getLine(t),s=r.search(i);if(-1!=s){for(var a=n||r.length,l=e.getLength(),c=t,u=t;++tc){var p=e.getLine(u).length;return new o(c,a,u,p)}}},this.openingBracketBlock=function(e,t,n,i,r){var s={row:n,column:i+1},a=e.$findClosingBracket(t,s,r);if(a){var l=e.foldWidgets[a.row];return null==l&&(l=e.getFoldWidget(a.row)),"start"==l&&a.row>s.row&&(a.row--,a.column=e.getLine(a.row).length),o.fromPoints(s,a)}},this.closingBracketBlock=function(e,t,n,i,r){var s={row:n,column:i},a=e.$findOpeningBracket(t,s);if(a)return a.column++,s.column--,o.fromPoints(a,s)}}).call(i.prototype)})),ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range","ace/config"],(function(e,t,n){"use strict";var o=e("../line_widgets").LineWidgets,i=e("../lib/dom"),r=e("../range").Range,s=e("../config").nls;t.showErrorMarker=function(e,t){var n=e.session;n.widgetManager||(n.widgetManager=new o(n),n.widgetManager.attach(e));var a=e.getCursorPosition(),l=a.row,c=n.widgetManager.getWidgetsAtRow(l).filter((function(e){return"errorMarker"==e.type}))[0];c?c.destroy():l-=t;var u,h=function(e,t,n){var o=e.getAnnotations().sort(r.comparePoints);if(o.length){var i=function(e,t,n){for(var o=0,i=e.length-1;o<=i;){var r=o+i>>1,s=n(t,e[r]);if(s>0)o=r+1;else{if(!(s<0))return r;i=r-1}}return-(o+1)}(o,{row:t,column:-1},r.comparePoints);i<0&&(i=-i-1),i>=o.length?i=n>0?0:o.length-1:0===i&&n<0&&(i=o.length-1);var s=o[i];if(s&&n){if(s.row===t){do{s=o[i+=n]}while(s&&s.row===t);if(!s)return o.slice()}var a=[];t=s.row;do{a[n<0?"unshift":"push"](s),s=o[i+=n]}while(s&&s.row==t);return a.length&&a}}}(n,l,t);if(h){var d=h[0];a.column=(d.pos&&"number"!=typeof d.column?d.pos.sc:d.column)||0,a.row=d.row,u=e.renderer.$gutterLayer.$annotations[a.row]}else{if(c)return;u={text:[s("Looks good!")],className:"ace_ok"}}e.session.unfold(a.row),e.selection.moveToPosition(a);var p={row:a.row,fixedWidth:!0,coverGutter:!0,el:i.createElement("div"),type:"errorMarker"},g=p.el.appendChild(i.createElement("div")),m=p.el.appendChild(i.createElement("div"));m.className="error_widget_arrow "+u.className;var f=e.renderer.$cursorLayer.getPixelPosition(a).left;m.style.left=f+e.renderer.gutterWidth-5+"px",p.el.className="error_widget_wrapper",g.className="error_widget "+u.className,g.innerHTML=u.text.join("
    "),g.appendChild(i.createElement("div"));var y=function(e,t,n){if(0===t&&("esc"===n||"return"===n))return p.destroy(),{command:"null"}};p.destroy=function(){e.$mouseHandler.isMousePressed||(e.keyBinding.removeKeyboardHandler(y),n.widgetManager.removeLineWidget(p),e.off("changeSelection",p.destroy),e.off("changeSession",p.destroy),e.off("mouseup",p.destroy),e.off("change",p.destroy))},e.keyBinding.addKeyboardHandler(y),e.on("changeSelection",p.destroy),e.on("changeSession",p.destroy),e.on("mouseup",p.destroy),e.on("change",p.destroy),e.session.widgetManager.addLineWidget(p),p.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:p.el.offsetHeight})},i.importCssString("\n .error_widget_wrapper {\n background: inherit;\n color: inherit;\n border:none\n }\n .error_widget {\n border-top: solid 2px;\n border-bottom: solid 2px;\n margin: 5px 0;\n padding: 10px 40px;\n white-space: pre-wrap;\n }\n .error_widget.ace_error, .error_widget_arrow.ace_error{\n border-color: #ff5a5a\n }\n .error_widget.ace_warning, .error_widget_arrow.ace_warning{\n border-color: #F1D817\n }\n .error_widget.ace_info, .error_widget_arrow.ace_info{\n border-color: #5a5a5a\n }\n .error_widget.ace_ok, .error_widget_arrow.ace_ok{\n border-color: #5aaa5a\n }\n .error_widget_arrow {\n position: absolute;\n border: solid 5px;\n border-top-color: transparent!important;\n border-right-color: transparent!important;\n border-left-color: transparent!important;\n top: -5px;\n }\n","error_marker.css",!1)})),ace.define("ace/ace",["require","exports","module","ace/lib/dom","ace/range","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config","ace/loader_build"],(function(e,t,n){"use strict";e("./loader_build")(t);var o=e("./lib/dom"),i=e("./range").Range,r=e("./editor").Editor,s=e("./edit_session").EditSession,a=e("./undomanager").UndoManager,l=e("./virtual_renderer").VirtualRenderer;e("./worker/worker_client"),e("./keyboard/hash_handler"),e("./placeholder"),e("./multi_select"),e("./mode/folding/fold_mode"),e("./theme/textmate"),e("./ext/error_marker"),t.config=e("./config"),t.edit=function(e,n){if("string"==typeof e){var i=e;if(!(e=document.getElementById(i)))throw new Error("ace.edit can't find div #"+i)}if(e&&e.env&&e.env.editor instanceof r)return e.env.editor;var s="";if(e&&/input|textarea/i.test(e.tagName)){var a=e;s=a.value,e=o.createElement("pre"),a.parentNode.replaceChild(e,a)}else e&&(s=e.textContent,e.innerHTML="");var c=t.createEditSession(s),u=new r(new l(e),c,n),h={document:c,editor:u,onResize:u.resize.bind(u,null)};return a&&(h.textarea=a),u.on("destroy",(function(){h.editor.container.env=null})),u.container.env=u.env=h,u},t.createEditSession=function(e,t){var n=new s(e,t);return n.setUndoManager(new a),n},t.Range=i,t.Editor=r,t.EditSession=s,t.UndoManager=a,t.VirtualRenderer=l,t.version=t.config.version})),ace.require(["ace/ace"],(function(t){t&&(t.config.init(!0),t.define=ace.define);var n=function(){return this}();for(var o in n||"undefined"==typeof window||(n=window),n||"undefined"==typeof self||(n=self),n.ace||(n.ace=t),t)t.hasOwnProperty(o)&&(n.ace[o]=t[o]);n.ace.default=n.ace,e&&(e.exports=n.ace)}))},134:(e,t,n)=>{e=n.nmd(e),ace.define("ace/ext/beautify",["require","exports","module","ace/token_iterator"],(function(e,t,n){"use strict";var o=e("../token_iterator").TokenIterator;function i(e,t){return e.type.lastIndexOf(t+".xml")>-1}t.singletonTags=["area","base","br","col","command","embed","hr","html","img","input","keygen","link","meta","param","source","track","wbr"],t.blockTags=["article","aside","blockquote","body","div","dl","fieldset","footer","form","head","header","html","nav","ol","p","script","section","style","table","tbody","tfoot","thead","ul"],t.formatOptions={lineBreaksAfterCommasInCurlyBlock:!0},t.beautify=function(e){for(var n,r,s,a=new o(e,0,0),l=a.getCurrentToken(),c=e.getTabString(),u=t.singletonTags,h=t.blockTags,d=t.formatOptions||{},p=!1,g=!1,m=!1,f="",y="",v="",b=0,w=0,x=0,k=0,C=0,$=0,S=0,E=0,O=0,T=!1,A=!1,_=!1,L=!1,M={0:0},R=[],N=!1,I=function(){n&&n.value&&"string.regexp"!==n.type&&(n.value=n.value.replace(/^\s*/,""))},P=function(){for(var e=f.length-1;0!=e&&" "===f[e];)e-=1;f=f.slice(0,e+1)},D=function(){f=f.trimRight(),p=!1};null!==l;){if(E=a.getCurrentTokenRow(),a.$rowTokens,n=a.stepForward(),void 0!==l){if(y=l.value,C=0,_="style"===v||"ace/mode/css"===e.$modeId,i(l,"tag-open")?(A=!0,n&&(L=-1!==h.indexOf(n.value)),"0;O--)f+="\n";p=!0,i(l,"comment")||l.type.match(/^(comment|string)$/)||(y=y.trimLeft())}if(y){if("keyword"===l.type&&y.match(/^(if|else|elseif|for|foreach|while|switch)$/)?(R[b]=y,I(),m=!0,y.match(/^(else|elseif)$/)&&f.match(/\}[\s]*$/)&&(D(),g=!0)):"paren.lparen"===l.type?(I(),"{"===y.substr(-1)&&(m=!0,T=!1,A||(O=1)),"{"===y.substr(0,1)&&(g=!0,"["!==f.substr(-1)&&"["===f.trimRight().substr(-1)?(D(),g=!1):")"===f.trimRight().substr(-1)?D():P())):"paren.rparen"===l.type?(C=1,"}"===y.substr(0,1)&&("case"===R[b-1]&&C++,"{"===f.trimRight().substr(-1)?D():(g=!0,_&&(O+=2))),"]"===y.substr(0,1)&&"}"!==f.substr(-1)&&"}"===f.trimRight().substr(-1)&&(g=!1,k++,D()),")"===y.substr(0,1)&&"("!==f.substr(-1)&&"("===f.trimRight().substr(-1)&&(g=!1,k++,D()),P()):"keyword.operator"!==l.type&&"keyword"!==l.type||!y.match(/^(=|==|===|!=|!==|&&|\|\||and|or|xor|\+=|.=|>|>=|<|<=|=>)$/)?"punctuation.operator"===l.type&&";"===y?(D(),I(),m=!0,_&&O++):"punctuation.operator"===l.type&&y.match(/^(:|,)$/)?(D(),I(),y.match(/^(,)$/)&&S>0&&0===$&&d.lineBreaksAfterCommasInCurlyBlock?O++:(m=!0,p=!1)):"support.php_tag"!==l.type||"?>"!==y||p?i(l,"attribute-name")&&f.substr(-1).match(/^\s$/)?g=!0:i(l,"attribute-equals")?(P(),I()):i(l,"tag-close")?(P(),"/>"===y&&(g=!0)):"keyword"===l.type&&y.match(/^(case|default)$/)&&N&&(C=1):(D(),g=!0):(D(),I(),g=!0,m=!0),p&&(!l.type.match(/^(comment)$/)||y.substr(0,1).match(/^[/#]$/))&&(!l.type.match(/^(string)$/)||y.substr(0,1).match(/^['"@]$/))){if(k=x,b>w)for(k++,s=b;s>w;s--)M[s]=k;else b"===y)&&(O=L&&n&&""===y&&b--),i(l,"tag-name")&&(v=y),r=E}}l=n}f=f.trim(),e.doc.setValue(f)},t.commands=[{name:"beautify",description:"Format selection (Beautify)",exec:function(e){t.beautify(e.session)},bindKey:"Ctrl-Shift-B"}]})),ace.require(["ace/ext/beautify"],(function(t){e&&(e.exports=t)}))},604:(e,t,n)=>{e=n.nmd(e),ace.define("ace/ext/searchbox-css",["require","exports","module"],(function(e,t,n){n.exports='\n\n/* ------------------------------------------------------------------------------------------\n * Editor Search Form\n * --------------------------------------------------------------------------------------- */\n.ace_search {\n background-color: #ddd;\n color: #666;\n border: 1px solid #cbcbcb;\n border-top: 0 none;\n overflow: hidden;\n margin: 0;\n padding: 4px 6px 0 4px;\n position: absolute;\n top: 0;\n z-index: 99;\n white-space: normal;\n}\n.ace_search.left {\n border-left: 0 none;\n border-radius: 0px 0px 5px 0px;\n left: 0;\n}\n.ace_search.right {\n border-radius: 0px 0px 0px 5px;\n border-right: 0 none;\n right: 0;\n}\n\n.ace_search_form, .ace_replace_form {\n margin: 0 20px 4px 0;\n overflow: hidden;\n line-height: 1.9;\n}\n.ace_replace_form {\n margin-right: 0;\n}\n.ace_search_form.ace_nomatch {\n outline: 1px solid red;\n}\n\n.ace_search_field {\n border-radius: 3px 0 0 3px;\n background-color: white;\n color: black;\n border: 1px solid #cbcbcb;\n border-right: 0 none;\n outline: 0;\n padding: 0;\n font-size: inherit;\n margin: 0;\n line-height: inherit;\n padding: 0 6px;\n min-width: 17em;\n vertical-align: top;\n min-height: 1.8em;\n box-sizing: content-box;\n}\n.ace_searchbtn {\n border: 1px solid #cbcbcb;\n line-height: inherit;\n display: inline-block;\n padding: 0 6px;\n background: #fff;\n border-right: 0 none;\n border-left: 1px solid #dcdcdc;\n cursor: pointer;\n margin: 0;\n position: relative;\n color: #666;\n}\n.ace_searchbtn:last-child {\n border-radius: 0 3px 3px 0;\n border-right: 1px solid #cbcbcb;\n}\n.ace_searchbtn:disabled {\n background: none;\n cursor: default;\n}\n.ace_searchbtn:hover {\n background-color: #eef1f6;\n}\n.ace_searchbtn.prev, .ace_searchbtn.next {\n padding: 0px 0.7em\n}\n.ace_searchbtn.prev:after, .ace_searchbtn.next:after {\n content: "";\n border: solid 2px #888;\n width: 0.5em;\n height: 0.5em;\n border-width: 2px 0 0 2px;\n display:inline-block;\n transform: rotate(-45deg);\n}\n.ace_searchbtn.next:after {\n border-width: 0 2px 2px 0 ;\n}\n.ace_searchbtn_close {\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\n border-radius: 50%;\n border: 0 none;\n color: #656565;\n cursor: pointer;\n font: 16px/16px Arial;\n padding: 0;\n height: 14px;\n width: 14px;\n top: 9px;\n right: 7px;\n position: absolute;\n}\n.ace_searchbtn_close:hover {\n background-color: #656565;\n background-position: 50% 100%;\n color: white;\n}\n\n.ace_button {\n margin-left: 2px;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -o-user-select: none;\n -ms-user-select: none;\n user-select: none;\n overflow: hidden;\n opacity: 0.7;\n border: 1px solid rgba(100,100,100,0.23);\n padding: 1px;\n box-sizing: border-box!important;\n color: black;\n}\n\n.ace_button:hover {\n background-color: #eee;\n opacity:1;\n}\n.ace_button:active {\n background-color: #ddd;\n}\n\n.ace_button.checked {\n border-color: #3399ff;\n opacity:1;\n}\n\n.ace_search_options{\n margin-bottom: 3px;\n text-align: right;\n -webkit-user-select: none;\n -moz-user-select: none;\n -o-user-select: none;\n -ms-user-select: none;\n user-select: none;\n clear: both;\n}\n\n.ace_search_counter {\n float: left;\n font-family: arial;\n padding: 0 8px;\n}'})),ace.define("ace/ext/searchbox",["require","exports","module","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/ext/searchbox-css","ace/keyboard/hash_handler","ace/lib/keys","ace/config"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=e("../lib/lang"),r=e("../lib/event"),s=e("./searchbox-css"),a=e("../keyboard/hash_handler").HashHandler,l=e("../lib/keys"),c=e("../config").nls;o.importCssString(s,"ace_searchbox",!1);var u=function(){function e(e,t,n){var i=o.createElement("div");o.buildDom(["div",{class:"ace_search right"},["span",{action:"hide",class:"ace_searchbtn_close"}],["div",{class:"ace_search_form"},["input",{class:"ace_search_field",placeholder:c("Search for"),spellcheck:"false"}],["span",{action:"findPrev",class:"ace_searchbtn prev"},"​"],["span",{action:"findNext",class:"ace_searchbtn next"},"​"],["span",{action:"findAll",class:"ace_searchbtn",title:"Alt-Enter"},c("All")]],["div",{class:"ace_replace_form"},["input",{class:"ace_search_field",placeholder:c("Replace with"),spellcheck:"false"}],["span",{action:"replaceAndFindNext",class:"ace_searchbtn"},c("Replace")],["span",{action:"replaceAll",class:"ace_searchbtn"},c("All")]],["div",{class:"ace_search_options"},["span",{action:"toggleReplace",class:"ace_button",title:c("Toggle Replace mode"),style:"float:left;margin-top:-2px;padding:0 5px;"},"+"],["span",{class:"ace_search_counter"}],["span",{action:"toggleRegexpMode",class:"ace_button",title:c("RegExp Search")},".*"],["span",{action:"toggleCaseSensitive",class:"ace_button",title:c("CaseSensitive Search")},"Aa"],["span",{action:"toggleWholeWords",class:"ace_button",title:c("Whole Word Search")},"\\b"],["span",{action:"searchInSelection",class:"ace_button",title:c("Search In Selection")},"S"]]],i),this.element=i.firstChild,this.setSession=this.setSession.bind(this),this.$init(),this.setEditor(e),o.importCssString(s,"ace_searchbox",e.container)}return e.prototype.setEditor=function(e){e.searchBox=this,e.renderer.scroller.appendChild(this.element),this.editor=e},e.prototype.setSession=function(e){this.searchRange=null,this.$syncOptions(!0)},e.prototype.$initElements=function(e){this.searchBox=e.querySelector(".ace_search_form"),this.replaceBox=e.querySelector(".ace_replace_form"),this.searchOption=e.querySelector("[action=searchInSelection]"),this.replaceOption=e.querySelector("[action=toggleReplace]"),this.regExpOption=e.querySelector("[action=toggleRegexpMode]"),this.caseSensitiveOption=e.querySelector("[action=toggleCaseSensitive]"),this.wholeWordOption=e.querySelector("[action=toggleWholeWords]"),this.searchInput=this.searchBox.querySelector(".ace_search_field"),this.replaceInput=this.replaceBox.querySelector(".ace_search_field"),this.searchCounter=e.querySelector(".ace_search_counter")},e.prototype.$init=function(){var e=this.element;this.$initElements(e);var t=this;r.addListener(e,"mousedown",(function(e){setTimeout((function(){t.activeInput.focus()}),0),r.stopPropagation(e)})),r.addListener(e,"click",(function(e){var n=(e.target||e.srcElement).getAttribute("action");n&&t[n]?t[n]():t.$searchBarKb.commands[n]&&t.$searchBarKb.commands[n].exec(t),r.stopPropagation(e)})),r.addCommandKeyListener(e,(function(e,n,o){var i=l.keyCodeToString(o),s=t.$searchBarKb.findKeyCommand(n,i);s&&s.exec&&(s.exec(t),r.stopEvent(e))})),this.$onChange=i.delayedCall((function(){t.find(!1,!1)})),r.addListener(this.searchInput,"input",(function(){t.$onChange.schedule(20)})),r.addListener(this.searchInput,"focus",(function(){t.activeInput=t.searchInput,t.searchInput.value&&t.highlight()})),r.addListener(this.replaceInput,"focus",(function(){t.activeInput=t.replaceInput,t.searchInput.value&&t.highlight()}))},e.prototype.setSearchRange=function(e){this.searchRange=e,e?this.searchRangeMarker=this.editor.session.addMarker(e,"ace_active-line"):this.searchRangeMarker&&(this.editor.session.removeMarker(this.searchRangeMarker),this.searchRangeMarker=null)},e.prototype.$syncOptions=function(e){o.setCssClass(this.replaceOption,"checked",this.searchRange),o.setCssClass(this.searchOption,"checked",this.searchOption.checked),this.replaceOption.textContent=this.replaceOption.checked?"-":"+",o.setCssClass(this.regExpOption,"checked",this.regExpOption.checked),o.setCssClass(this.wholeWordOption,"checked",this.wholeWordOption.checked),o.setCssClass(this.caseSensitiveOption,"checked",this.caseSensitiveOption.checked);var t=this.editor.getReadOnly();this.replaceOption.style.display=t?"none":"",this.replaceBox.style.display=this.replaceOption.checked&&!t?"":"none",this.find(!1,!1,e)},e.prototype.highlight=function(e){this.editor.session.highlight(e||this.editor.$search.$options.re),this.editor.renderer.updateBackMarkers()},e.prototype.find=function(e,t,n){var i=!this.editor.find(this.searchInput.value,{skipCurrent:e,backwards:t,wrap:!0,regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked,preventScroll:n,range:this.searchRange})&&this.searchInput.value;o.setCssClass(this.searchBox,"ace_nomatch",i),this.editor._emit("findSearchBox",{match:!i}),this.highlight(),this.updateCounter()},e.prototype.updateCounter=function(){var e=this.editor,t=e.$search.$options.re,n=t.unicode,o=0,r=0;if(t){var s=this.searchRange?e.session.getTextRange(this.searchRange):e.getValue(),a=e.session.doc.positionToIndex(e.selection.anchor);this.searchRange&&(a-=e.session.doc.positionToIndex(this.searchRange.start));for(var l,u=t.lastIndex=0;(l=t.exec(s))&&(o++,(u=l.index)<=a&&r++,!(o>999))&&(l[0]||(t.lastIndex=u+=i.skipEmptyMatch(s,u,n),!(u>=s.length))););}this.searchCounter.textContent=c("$0 of $1",[r,o>999?"999+":o])},e.prototype.findNext=function(){this.find(!0,!1)},e.prototype.findPrev=function(){this.find(!0,!0)},e.prototype.findAll=function(){var e=!this.editor.findAll(this.searchInput.value,{regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked})&&this.searchInput.value;o.setCssClass(this.searchBox,"ace_nomatch",e),this.editor._emit("findSearchBox",{match:!e}),this.highlight(),this.hide()},e.prototype.replace=function(){this.editor.getReadOnly()||this.editor.replace(this.replaceInput.value)},e.prototype.replaceAndFindNext=function(){this.editor.getReadOnly()||(this.editor.replace(this.replaceInput.value),this.findNext())},e.prototype.replaceAll=function(){this.editor.getReadOnly()||this.editor.replaceAll(this.replaceInput.value)},e.prototype.hide=function(){this.active=!1,this.setSearchRange(null),this.editor.off("changeSession",this.setSession),this.element.style.display="none",this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb),this.editor.focus()},e.prototype.show=function(e,t){this.active=!0,this.editor.on("changeSession",this.setSession),this.element.style.display="",this.replaceOption.checked=t,e&&(this.searchInput.value=e),this.searchInput.focus(),this.searchInput.select(),this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb),this.$syncOptions(!0)},e.prototype.isFocused=function(){var e=document.activeElement;return e==this.searchInput||e==this.replaceInput},e}(),h=new a;h.bindKeys({"Ctrl-f|Command-f":function(e){var t=e.isReplace=!e.isReplace;e.replaceBox.style.display=t?"":"none",e.replaceOption.checked=!1,e.$syncOptions(),e.searchInput.focus()},"Ctrl-H|Command-Option-F":function(e){e.editor.getReadOnly()||(e.replaceOption.checked=!0,e.$syncOptions(),e.replaceInput.focus())},"Ctrl-G|Command-G":function(e){e.findNext()},"Ctrl-Shift-G|Command-Shift-G":function(e){e.findPrev()},esc:function(e){setTimeout((function(){e.hide()}))},Return:function(e){e.activeInput==e.replaceInput&&e.replace(),e.findNext()},"Shift-Return":function(e){e.activeInput==e.replaceInput&&e.replace(),e.findPrev()},"Alt-Return":function(e){e.activeInput==e.replaceInput&&e.replaceAll(),e.findAll()},Tab:function(e){(e.activeInput==e.replaceInput?e.searchInput:e.replaceInput).focus()}}),h.addCommands([{name:"toggleRegexpMode",bindKey:{win:"Alt-R|Alt-/",mac:"Ctrl-Alt-R|Ctrl-Alt-/"},exec:function(e){e.regExpOption.checked=!e.regExpOption.checked,e.$syncOptions()}},{name:"toggleCaseSensitive",bindKey:{win:"Alt-C|Alt-I",mac:"Ctrl-Alt-R|Ctrl-Alt-I"},exec:function(e){e.caseSensitiveOption.checked=!e.caseSensitiveOption.checked,e.$syncOptions()}},{name:"toggleWholeWords",bindKey:{win:"Alt-B|Alt-W",mac:"Ctrl-Alt-B|Ctrl-Alt-W"},exec:function(e){e.wholeWordOption.checked=!e.wholeWordOption.checked,e.$syncOptions()}},{name:"toggleReplace",exec:function(e){e.replaceOption.checked=!e.replaceOption.checked,e.$syncOptions()}},{name:"searchInSelection",exec:function(e){e.searchOption.checked=!e.searchRange,e.setSearchRange(e.searchOption.checked&&e.editor.getSelectionRange()),e.$syncOptions()}}]);var d=new a([{bindKey:"Esc",name:"closeSearchBar",exec:function(e){e.searchBox.hide()}}]);u.prototype.$searchBarKb=h,u.prototype.$closeSearchBarKb=d,t.SearchBox=u,t.Search=function(e,t){(e.searchBox||new u(e)).show(e.session.getTextRange(),t)}})),ace.require(["ace/ext/searchbox"],(function(t){e&&(e.exports=t)}))},549:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=(e("../lib/lang"),e("./text_highlight_rules").TextHighlightRules),r=t.supportType="align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index",s=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|flex-end|flex-start|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom",l=t.supportConstantColor="aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen",c=t.supportConstantFonts="arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",u=t.numRe="\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",d=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",p=function(){var e=this.createKeywordMapper({"support.function":s,"support.constant":a,"support.type":r,"support.constant.color":l,"support.constant.fonts":c},"text",!0);this.$rules={start:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"paren.rparen",regex:"\\}"},{token:"string",regex:"@(?!viewport)",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"keyword",regex:"%"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant.numeric",regex:u},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"start"},{token:"paren.rparen",regex:"\\}",next:"start"},{token:"string",regex:";",next:"start"},{token:"keyword",regex:"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)"}],comments:[{token:"comment",regex:"\\/\\*",push:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}]}],ruleset:[{regex:"-(webkit|ms|moz|o)-",token:"text"},{token:"punctuation.operator",regex:"[:;]"},{token:"paren.rparen",regex:"\\}",next:"start"},{include:["strings","url","comments"]},{token:["constant.numeric","keyword"],regex:"("+u+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)"},{token:"constant.numeric",regex:u},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:d},{include:"url"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}],url:[{token:"support.function",regex:"(?:url(:?-prefix)?|domain|regexp)\\(",push:[{token:"support.function",regex:"\\)",next:"pop"},{defaultToken:"string"}]}],strings:[{token:"string.start",regex:"'",push:[{token:"string.end",regex:"'|$",next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]},{token:"string.start",regex:'"',push:[{token:"string.end",regex:'"|$',next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]}],escapes:[{token:"constant.language.escape",regex:/\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/}]},this.normalizeRules()};o.inherits(p,i),t.CssHighlightRules=p})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/css_completions",["require","exports","module"],(function(e,t,n){"use strict";var o={background:{"#$0":1},"background-color":{"#$0":1,transparent:1,fixed:1},"background-image":{"url('/$0')":1},"background-repeat":{repeat:1,"repeat-x":1,"repeat-y":1,"no-repeat":1,inherit:1},"background-position":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},"background-attachment":{scroll:1,fixed:1},"background-size":{cover:1,contain:1},"background-clip":{"border-box":1,"padding-box":1,"content-box":1},"background-origin":{"border-box":1,"padding-box":1,"content-box":1},border:{"solid $0":1,"dashed $0":1,"dotted $0":1,"#$0":1},"border-color":{"#$0":1},"border-style":{solid:2,dashed:2,dotted:2,double:2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},"border-collapse":{collapse:1,separate:1},bottom:{px:1,em:1,"%":1},clear:{left:1,right:1,both:1,none:1},color:{"#$0":1,"rgb(#$00,0,0)":1},cursor:{default:1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,"n-resize":1,"ne-resize":1,"e-resize":1,"se-resize":1,"s-resize":1,"sw-resize":1,"w-resize":1,"nw-resize":1},display:{none:1,block:1,inline:1,"inline-block":1,"table-cell":1},"empty-cells":{show:1,hide:1},float:{left:1,right:1,none:1},"font-family":{Arial:2,"Comic Sans MS":2,Consolas:2,"Courier New":2,Courier:2,Georgia:2,Monospace:2,"Sans-Serif":2,"Segoe UI":2,Tahoma:2,"Times New Roman":2,"Trebuchet MS":2,Verdana:1},"font-size":{px:1,em:1,"%":1},"font-weight":{bold:1,normal:1},"font-style":{italic:1,normal:1},"font-variant":{normal:1,"small-caps":1},height:{px:1,em:1,"%":1},left:{px:1,em:1,"%":1},"letter-spacing":{normal:1},"line-height":{normal:1},"list-style-type":{none:1,disc:1,circle:1,square:1,decimal:1,"decimal-leading-zero":1,"lower-roman":1,"upper-roman":1,"lower-greek":1,"lower-latin":1,"upper-latin":1,georgian:1,"lower-alpha":1,"upper-alpha":1},margin:{px:1,em:1,"%":1},"margin-right":{px:1,em:1,"%":1},"margin-left":{px:1,em:1,"%":1},"margin-top":{px:1,em:1,"%":1},"margin-bottom":{px:1,em:1,"%":1},"max-height":{px:1,em:1,"%":1},"max-width":{px:1,em:1,"%":1},"min-height":{px:1,em:1,"%":1},"min-width":{px:1,em:1,"%":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},"overflow-x":{hidden:1,visible:1,auto:1,scroll:1},"overflow-y":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,"%":1},"padding-top":{px:1,em:1,"%":1},"padding-right":{px:1,em:1,"%":1},"padding-bottom":{px:1,em:1,"%":1},"padding-left":{px:1,em:1,"%":1},"page-break-after":{auto:1,always:1,avoid:1,left:1,right:1},"page-break-before":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,static:1},right:{px:1,em:1,"%":1},"table-layout":{fixed:1,auto:1},"text-decoration":{none:1,underline:1,"line-through":1,blink:1},"text-align":{left:1,right:1,center:1,justify:1},"text-transform":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,"%":1},"vertical-align":{top:1,bottom:1},visibility:{hidden:1,visible:1},"white-space":{nowrap:1,normal:1,pre:1,"pre-line":1,"pre-wrap":1},width:{px:1,em:1,"%":1},"word-spacing":{normal:1},filter:{"alpha(opacity=$0100)":1},"text-shadow":{"$02px 2px 2px #777":1},"text-overflow":{"ellipsis-word":1,clip:1,ellipsis:1},"-moz-border-radius":1,"-moz-border-radius-topright":1,"-moz-border-radius-bottomright":1,"-moz-border-radius-topleft":1,"-moz-border-radius-bottomleft":1,"-webkit-border-radius":1,"-webkit-border-top-right-radius":1,"-webkit-border-top-left-radius":1,"-webkit-border-bottom-right-radius":1,"-webkit-border-bottom-left-radius":1,"-moz-box-shadow":1,"-webkit-box-shadow":1,transform:{"rotate($00deg)":1,"skew($00deg)":1},"-moz-transform":{"rotate($00deg)":1,"skew($00deg)":1},"-webkit-transform":{"rotate($00deg)":1,"skew($00deg)":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement("c").style;for(var t in e)if("string"==typeof e[t]){var n=t.replace(/[A-Z]/g,(function(e){return"-"+e.toLowerCase()}));o.hasOwnProperty(n)||(o[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,o){if(this.completionsDefined||this.defineCompletions(),"ruleset"===e||"ace/mode/scss"==t.$mode.$id){var i=t.getLine(n.row).substr(0,n.column),r=/\([^)]*$/.test(i);return r&&(i=i.substr(i.lastIndexOf("(")+1)),/:[^;]+$/.test(i)?(/([\w\-]+):[^:]*$/.test(i),this.getPropertyValueCompletions(e,t,n,o)):this.getPropertyCompletions(e,t,n,o,r)}return[]},this.getPropertyCompletions=function(e,t,n,i,r){return r=r||!1,Object.keys(o).map((function(e){return{caption:e,snippet:e+": $0"+(r?"":";"),meta:"property",score:1e6}}))},this.getPropertyValueCompletions=function(e,t,n,i){var r=t.getLine(n.row).substr(0,n.column),s=(/([\w\-]+):[^:]*$/.exec(r)||{})[1];if(!s)return[];var a=[];return s in o&&"object"==typeof o[s]&&(a=Object.keys(o[s])),a.map((function(e){return{caption:e,snippet:e,meta:"property value",score:1e6}}))}}).call(i.prototype),t.CssCompletions=i})),ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=(e("../behaviour").Behaviour,e("./cstyle").CstyleBehaviour),r=e("../../token_iterator").TokenIterator,s=function(){this.inherit(i),this.add("colon","insertion",(function(e,t,n,o,i){if(":"===i&&n.selection.isEmpty()){var s=n.getCursorPosition(),a=new r(o,s.row,s.column),l=a.getCurrentToken();if(l&&l.value.match(/\s+/)&&(l=a.stepBackward()),l&&"support.type"===l.type){var c=o.doc.getLine(s.row);if(":"===c.substring(s.column,s.column+1))return{text:"",selection:[1,1]};if(/^(\s+[^;]|\s*$)/.test(c.substring(s.column)))return{text:":;",selection:[1,1]}}}})),this.add("colon","deletion",(function(e,t,n,o,i){var s=o.doc.getTextRange(i);if(!i.isMultiLine()&&":"===s){var a=n.getCursorPosition(),l=new r(o,a.row,a.column),c=l.getCurrentToken();if(c&&c.value.match(/\s+/)&&(c=l.stepBackward()),c&&"support.type"===c.type&&";"===o.doc.getLine(i.start.row).substring(i.end.column,i.end.column+1))return i.end.column++,i}})),this.add("semicolon","insertion",(function(e,t,n,o,i){if(";"===i&&n.selection.isEmpty()){var r=n.getCursorPosition();if(";"===o.doc.getLine(r.row).substring(r.column,r.column+1))return{text:"",selection:[1,1]}}})),this.add("!important","insertion",(function(e,t,n,o,i){if("!"===i&&n.selection.isEmpty()){var r=n.getCursorPosition(),s=o.doc.getLine(r.row);if(/^\s*(;|}|$)/.test(s.substring(r.column)))return{text:"!important",selection:[10,10]}}}))};o.inherits(s,i),t.CssBehaviour=s})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./css_highlight_rules").CssHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../worker/worker_client").WorkerClient,l=e("./css_completions").CssCompletions,c=e("./behaviour/css").CssBehaviour,u=e("./folding/cstyle").FoldMode,h=function(){this.HighlightRules=r,this.$outdent=new s,this.$behaviour=new c,this.$completer=new l,this.foldingRules=new u};o.inherits(h,i),function(){this.foldingRules="cStyle",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;return i.length&&"comment"==i[i.length-1].type||t.match(/^.*\{\s*$/)&&(o+=n),o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,o){return this.$completer.getCompletions(e,t,n,o)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/css_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("annotate",(function(t){e.setAnnotations(t.data)})),t.on("terminate",(function(){e.clearAnnotations()})),t},this.$id="ace/mode/css",this.snippetFileId="ace/snippets/css"}.call(h.prototype),t.Mode=h})),ace.require(["ace/mode/css"],(function(t){e&&(e.exports=t)}))},576:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@\\w+(?=\\s|$)"},r.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};o.inherits(r,i),r.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},r.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},r.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=r})),ace.define("ace/mode/golang_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],(function(e,t,n){var o=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,r=e("./text_highlight_rules").TextHighlightRules,s=function(){var e=this.createKeywordMapper({keyword:"else|break|case|return|goto|if|const|select|continue|struct|default|switch|for|range|func|import|package|chan|defer|fallthrough|go|interface|map|range|select|type|var","constant.language":"nil|true|false|iota","support.function":"new|close|cap|copy|panic|panicln|print|println|len|make|delete|real|recover|imag|append","support.type":"string|uint8|uint16|uint32|uint64|int8|int16|int32|int64|float32|float64|complex64|complex128|byte|rune|uint|int|uintptr|bool|error"},""),t="\\\\(?:[0-7]{3}|x\\h{2}|u{4}|U\\h{6}|[abfnrtv'\"\\\\])".replace(/\\h/g,"[a-fA-F\\d]");this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},i.getStartRule("doc-start"),{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"string",regex:/"(?:[^"\\]|\\.)*?"/},{token:"string",regex:"`",next:"bqstring"},{token:"constant.numeric",regex:"'(?:[^\\'\ud800-\udbff]|[\ud800-\udbff][\udc00-\udfff]|"+t.replace('"',"")+")'"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:["keyword","text","entity.name.function"],regex:"(func)(\\s+)([a-zA-Z_$][a-zA-Z0-9_$]*)\\b"},{token:function(t){return"("==t[t.length-1]?[{type:e(t.slice(0,-1))||"support.function",value:t.slice(0,-1)},{type:"paren.lparen",value:t.slice(-1)}]:e(t)||"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b\\(?"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^="},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}],bqstring:[{token:"string",regex:"`",next:"start"},{defaultToken:"string"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};o.inherits(s,r),t.GolangHighlightRules=s})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/golang",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/golang_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle"],(function(e,t,n){var o=e("../lib/oop"),i=e("./text").Mode,r=e("./golang_highlight_rules").GolangHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=r,this.$outdent=new s,this.foldingRules=new a,this.$behaviour=this.$defaultBehaviour};o.inherits(l,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),r=i.tokens;return i.state,r.length&&"comment"==r[r.length-1].type||"start"==e&&t.match(/^.*[\{\(\[]\s*$/)&&(o+=n),o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/golang"}.call(l.prototype),t.Mode=l})),ace.require(["ace/mode/golang"],(function(t){e&&(e.exports=t)}))},395:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/jsdoc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:["comment.doc.tag","comment.doc.text","lparen.doc"],regex:"(@(?:param|member|typedef|property|namespace|var|const|callback))(\\s*)({)",push:[{token:"lparen.doc",regex:"{",push:[{include:"doc-syntax"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"}]},{token:["rparen.doc","text.doc","variable.parameter.doc","lparen.doc","variable.parameter.doc","rparen.doc"],regex:/(})(\s*)(?:([\w=:\/\.]+)|(?:(\[)([\w=:\/\.]+)(\])))/,next:"pop"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"},{include:"doc-syntax"},{defaultToken:"text.doc"}]},{token:["comment.doc.tag","text.doc","lparen.doc"],regex:"(@(?:returns?|yields|type|this|suppress|public|protected|private|package|modifies|implements|external|exception|throws|enum|define|extends))(\\s*)({)",push:[{token:"lparen.doc",regex:"{",push:[{include:"doc-syntax"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"}]},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"},{include:"doc-syntax"},{defaultToken:"text.doc"}]},{token:["comment.doc.tag","text.doc","variable.parameter.doc"],regex:'(@(?:alias|memberof|instance|module|name|lends|namespace|external|this|template|requires|param|implements|function|extends|typedef|mixes|constructor|var|memberof\\!|event|listens|exports|class|constructs|interface|emits|fires|throws|const|callback|borrows|augments))(\\s+)(\\w[\\w#.:/~"\\-]*)?'},{token:["comment.doc.tag","text.doc","variable.parameter.doc"],regex:"(@method)(\\s+)(\\w[\\w.\\(\\)]*)"},{token:"comment.doc.tag",regex:"@access\\s+(?:private|public|protected)"},{token:"comment.doc.tag",regex:"@kind\\s+(?:class|constant|event|external|file|function|member|mixin|module|namespace|typedef)"},{token:"comment.doc.tag",regex:"@\\w+(?=\\s|$)"},r.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}],"doc-syntax":[{token:"operator.doc",regex:/[|:]/},{token:"paren.doc",regex:/[\[\]]/}]},this.normalizeRules()};o.inherits(r,i),r.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},r.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},r.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.JsDocCommentHighlightRules=r})),ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/jsdoc_comment_highlight_rules","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./jsdoc_comment_highlight_rules").JsDocCommentHighlightRules,r=e("./text_highlight_rules").TextHighlightRules,s="[a-zA-Z\\$_¡-￿][a-zA-Z\\d\\$_¡-￿]*",a=function(e){var t=this.createKeywordMapper({"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Symbol|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static|constructor","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert","constant.language.boolean":"true|false"},"identifier"),n="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)";this.$rules={no_regex:[i.getStartRule("doc-start"),c("no_regex"),{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator"],regex:"("+s+")(\\.)(prototype)(\\.)("+s+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+s+")(\\.)("+s+")(\\s*)(=)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+s+")(\\s*)(=)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+s+")(\\.)("+s+")(\\s*)(=)(\\s*)(function\\*?)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function\\*?)(\\s+)("+s+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+s+")(\\s*)(:)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:"keyword",regex:"from(?=\\s*('|\"))"},{token:"keyword",regex:"(?:case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void)\\b",next:"start"},{token:"support.constant",regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:s},{token:"punctuation.operator",regex:/[.](?![.])/,next:"property"},{token:"storage.type",regex:/=>/,next:"start"},{token:"keyword.operator",regex:/--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],property:[{token:"text",regex:"\\s+"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+s+")(\\.)("+s+")(\\s*)(=)(\\s*)(function\\*?)(?:(\\s+)(\\w+))?(\\s*)(\\()",next:"function_arguments"},{token:"punctuation.operator",regex:/[.](?![.])/},{token:"support.function",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|lter|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward|rEach)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:"support.function.dom",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:"support.constant",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:"identifier",regex:s},{regex:"",token:"empty",next:"no_regex"}],start:[i.getStartRule("doc-start"),c("start"),{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+|^$",next:"start"},{token:"empty",regex:"",next:"no_regex"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/[sxngimy]*",next:"no_regex"},{token:"invalid",regex:/\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/},{token:"constant.language.delimiter",regex:/\|/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp"}],regex_character_class:[{token:"regexp.charclass.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp.charachterclass"}],default_parameter:[{token:"string",regex:"'(?=.)",push:[{token:"string",regex:"'|$",next:"pop"},{include:"qstring"}]},{token:"string",regex:'"(?=.)',push:[{token:"string",regex:'"|$',next:"pop"},{include:"qqstring"}]},{token:"constant.language",regex:"null|Infinity|NaN|undefined"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:"punctuation.operator",regex:",",next:"function_arguments"},{token:"text",regex:"\\s+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],function_arguments:[c("function_arguments"),{token:"variable.parameter",regex:s},{token:"punctuation.operator",regex:","},{token:"text",regex:"\\s+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],qqstring:[{token:"constant.language.escape",regex:n},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:n},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},e&&e.noES6||(this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){if(this.next="{"==e?this.nextState:"","{"==e&&n.length)n.unshift("start",t);else if("}"==e&&n.length&&(n.shift(),this.next=n.shift(),-1!=this.next.indexOf("string")||-1!=this.next.indexOf("jsx")))return"paren.quasi.end";return"{"==e?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:n},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]},{token:["variable.parameter","text"],regex:"("+s+")(\\s*)(?=\\=>)"},{token:"paren.lparen",regex:"(\\()(?=.+\\s*=>)",next:"function_arguments"},{token:"variable.language",regex:"(?:(?:(?:Weak)?(?:Set|Map))|Promise)\\b"}),this.$rules.function_arguments.unshift({token:"keyword.operator",regex:"=",next:"default_parameter"},{token:"keyword.operator",regex:"\\.{3}"}),this.$rules.property.unshift({token:"support.function",regex:"(findIndex|repeat|startsWith|endsWith|includes|isSafeInteger|trunc|cbrt|log2|log10|sign|then|catch|finally|resolve|reject|race|any|all|allSettled|keys|entries|isInteger)\\b(?=\\()"},{token:"constant.language",regex:"(?:MAX_SAFE_INTEGER|MIN_SAFE_INTEGER|EPSILON)\\b"}),e&&0==e.jsx||l.call(this)),this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};function l(){var e=s.replace("\\d","\\d\\-"),t={onMatch:function(e,t,n){var o="/"==e.charAt(1)?2:1;return 1==o?(t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++):2==o&&t==this.nextState&&(n[1]--,(!n[1]||n[1]<0)&&(n.shift(),n.shift())),[{type:"meta.tag.punctuation."+(1==o?"":"end-")+"tag-open.xml",value:e.slice(0,o)},{type:"meta.tag.tag-name.xml",value:e.substr(o)}]},regex:"",onMatch:function(e,t,n){return t==n[0]&&n.shift(),2==e.length&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||"start",[{type:this.token,value:e}]},nextState:"jsx"},n,c("jsxAttributes"),{token:"entity.other.attribute-name.xml",regex:e},{token:"keyword.operator.attribute-equals.xml",regex:"="},{token:"text.tag-whitespace.xml",regex:"\\s+"},{token:"string.attribute-value.xml",regex:"'",stateName:"jsx_attr_q",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',stateName:"jsx_attr_qq",push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},t],this.$rules.reference=[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}]}function c(e){return[{token:"comment",regex:/\/\*/,next:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]},{token:"comment",regex:"\\/\\/",next:[i.getTagRule(),{token:"comment",regex:"$|^",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]}]}o.inherits(a,r),t.JavaScriptHighlightRules=a})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./javascript_highlight_rules").JavaScriptHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../worker/worker_client").WorkerClient,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,u=function(){this.HighlightRules=r,this.$outdent=new s,this.$behaviour=new l,this.foldingRules=new c};o.inherits(u,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.$quotes={'"':'"',"'":"'","`":"`"},this.$pairQuotesAfter={"`":/\w/},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),r=i.tokens,s=i.state;if(r.length&&"comment"==r[r.length-1].type)return o;if("start"==e||"no_regex"==e)(a=t.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/))&&(o+=n);else if("doc-start"==e){if("start"==s||"no_regex"==s)return"";var a;(a=t.match(/^\s*(\/?)\*/))&&(a[1]&&(o+=" "),o+="* ")}return o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",(function(t){e.setAnnotations(t.data)})),t.on("terminate",(function(){e.clearAnnotations()})),t},this.$id="ace/mode/javascript",this.snippetFileId="ace/snippets/javascript"}.call(u.prototype),t.Mode=u})),ace.require(["ace/mode/javascript"],(function(t){e&&(e.exports=t)}))},252:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"punctuation.operator",regex:/[,]/},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};o.inherits(r,i),t.JsonHighlightRules=r})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle","ace/worker/worker_client"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./json_highlight_rules").JsonHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("./folding/cstyle").FoldMode,l=e("../worker/worker_client").WorkerClient,c=function(){this.HighlightRules=r,this.$outdent=new s,this.$behaviour=this.$defaultBehaviour,this.foldingRules=new a};o.inherits(c,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t);return"start"==e&&t.match(/^.*[\{\(\[]\s*$/)&&(o+=n),o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new l(["ace"],"ace/mode/json_worker","JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",(function(t){e.setAnnotations(t.data)})),t.on("terminate",(function(){e.clearAnnotations()})),t},this.$id="ace/mode/json"}.call(c.prototype),t.Mode=c})),ace.require(["ace/mode/json"],(function(t){e&&(e.exports=t)}))},711:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@\\w+(?=\\s|$)"},r.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};o.inherits(r,i),r.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},r.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},r.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=r})),ace.define("ace/mode/jsx_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],(function(e,t,n){var o=e("../lib/oop"),i=e("../lib/lang"),r=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,a=function(){var e=i.arrayToMap("break|do|instanceof|typeof|case|else|new|var|catch|finally|return|void|continue|for|switch|default|while|function|this|if|throw|delete|in|try|class|extends|super|import|from|into|implements|interface|static|mixin|override|abstract|final|number|int|string|boolean|variant|log|assert".split("|")),t=i.arrayToMap("null|true|false|NaN|Infinity|__FILE__|__LINE__|undefined".split("|")),n=i.arrayToMap("debugger|with|const|export|let|private|public|yield|protected|extern|native|as|operator|__fake__|__readonly__".split("|")),o="[a-zA-Z_][a-zA-Z0-9_]*\\b";this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},r.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:["storage.type","text","entity.name.function"],regex:"(function)(\\s+)("+o+")"},{token:function(o){return"this"==o?"variable.language":"function"==o?"storage.type":e.hasOwnProperty(o)||n.hasOwnProperty(o)?"keyword":t.hasOwnProperty(o)?"constant.language":/^_?[A-Z][a-zA-Z0-9_]*$/.test(o)?"language.support.class":"identifier"},regex:o},{token:"keyword.operator",regex:"!|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({<]"},{token:"paren.rparen",regex:"[\\])}>]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]},this.embedRules(r,"doc-",[r.getEndRule("start")])};o.inherits(a,s),t.JsxHighlightRules=a})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/jsx",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/jsx_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./jsx_highlight_rules").JsxHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("./folding/cstyle").FoldMode;function l(){this.HighlightRules=r,this.$outdent=new s,this.$behaviour=this.$defaultBehaviour,this.foldingRules=new a}o.inherits(l,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;return i.length&&"comment"==i[i.length-1].type||"start"==e&&t.match(/^.*[\{\(\[]\s*$/)&&(o+=n),o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/jsx"}.call(l.prototype),t.Mode=l})),ace.require(["ace/mode/jsx"],(function(t){e&&(e.exports=t)}))},7:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/python_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){var e=this.createKeywordMapper({"invalid.deprecated":"debugger","support.function":"abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|binfile|bin|iter|property|tuple|bool|filter|len|range|type|bytearray|float|list|raw_input|unichr|callable|format|locals|reduce|unicode|chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|__import__|complex|hash|min|apply|delattr|help|next|setattr|set|buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern|ascii|breakpoint|bytes","variable.language":"self|cls","constant.language":"True|False|None|NotImplemented|Ellipsis|__debug__",keyword:"and|as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|raise|return|try|while|with|yield|async|await|nonlocal"},"identifier"),t="[uU]?",n="[rR]",o="[fF]",i="(?:[rR][fF]|[fF][rR])",r="(?:(?:(?:[1-9]\\d*)|(?:0))|(?:0[oO]?[0-7]+)|(?:0[xX][\\dA-Fa-f]+)|(?:0[bB][01]+))",s="(?:\\d+)",a="(?:(?:"+s+"?(?:\\.\\d+))|(?:"+s+"\\.))",l="(?:(?:(?:"+a+"|"+s+")(?:[eE][+-]?\\d+))|"+a+")",c="\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\abfnrtv'\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})";this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"string",regex:t+'"{3}',next:"qqstring3"},{token:"string",regex:t+'"(?=.)',next:"qqstring"},{token:"string",regex:t+"'{3}",next:"qstring3"},{token:"string",regex:t+"'(?=.)",next:"qstring"},{token:"string",regex:n+'"{3}',next:"rawqqstring3"},{token:"string",regex:n+'"(?=.)',next:"rawqqstring"},{token:"string",regex:n+"'{3}",next:"rawqstring3"},{token:"string",regex:n+"'(?=.)",next:"rawqstring"},{token:"string",regex:o+'"{3}',next:"fqqstring3"},{token:"string",regex:o+'"(?=.)',next:"fqqstring"},{token:"string",regex:o+"'{3}",next:"fqstring3"},{token:"string",regex:o+"'(?=.)",next:"fqstring"},{token:"string",regex:i+'"{3}',next:"rfqqstring3"},{token:"string",regex:i+'"(?=.)',next:"rfqqstring"},{token:"string",regex:i+"'{3}",next:"rfqstring3"},{token:"string",regex:i+"'(?=.)",next:"rfqstring"},{token:"keyword.operator",regex:"\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|%|@|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|="},{token:"punctuation",regex:",|:|;|\\->|\\+=|\\-=|\\*=|\\/=|\\/\\/=|%=|@=|&=|\\|=|^=|>>=|<<=|\\*\\*="},{token:"paren.lparen",regex:"[\\[\\(\\{]"},{token:"paren.rparen",regex:"[\\]\\)\\}]"},{token:["keyword","text","entity.name.function"],regex:"(def|class)(\\s+)([\\u00BF-\\u1FFF\\u2C00-\\uD7FF\\w]+)"},{token:"text",regex:"\\s+"},{include:"constants"}],qqstring3:[{token:"constant.language.escape",regex:c},{token:"string",regex:'"{3}',next:"start"},{defaultToken:"string"}],qstring3:[{token:"constant.language.escape",regex:c},{token:"string",regex:"'{3}",next:"start"},{defaultToken:"string"}],qqstring:[{token:"constant.language.escape",regex:c},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:c},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"start"},{defaultToken:"string"}],rawqqstring3:[{token:"string",regex:'"{3}',next:"start"},{defaultToken:"string"}],rawqstring3:[{token:"string",regex:"'{3}",next:"start"},{defaultToken:"string"}],rawqqstring:[{token:"string",regex:"\\\\$",next:"rawqqstring"},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],rawqstring:[{token:"string",regex:"\\\\$",next:"rawqstring"},{token:"string",regex:"'|$",next:"start"},{defaultToken:"string"}],fqqstring3:[{token:"constant.language.escape",regex:c},{token:"string",regex:'"{3}',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqstring3:[{token:"constant.language.escape",regex:c},{token:"string",regex:"'{3}",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqqstring:[{token:"constant.language.escape",regex:c},{token:"string",regex:"\\\\$",next:"fqqstring"},{token:"string",regex:'"|$',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqstring:[{token:"constant.language.escape",regex:c},{token:"string",regex:"'|$",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqqstring3:[{token:"string",regex:'"{3}',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqstring3:[{token:"string",regex:"'{3}",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqqstring:[{token:"string",regex:"\\\\$",next:"rfqqstring"},{token:"string",regex:'"|$',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqstring:[{token:"string",regex:"'|$",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqstringParRules:[{token:"paren.lparen",regex:"[\\[\\(]"},{token:"paren.rparen",regex:"[\\]\\)]"},{token:"string",regex:"\\s+"},{token:"string",regex:"'[^']*'"},{token:"string",regex:'"[^"]*"'},{token:"function.support",regex:"(!s|!r|!a)"},{include:"constants"},{token:"paren.rparen",regex:"}",next:"pop"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"}],constants:[{token:"constant.numeric",regex:"(?:"+l+"|\\d+)[jJ]\\b"},{token:"constant.numeric",regex:l},{token:"constant.numeric",regex:r+"[lL]\\b"},{token:"constant.numeric",regex:r+"\\b"},{token:["punctuation","function.support"],regex:"(\\.)([a-zA-Z_]+)\\b"},{token:e,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"}]},this.normalizeRules()};o.inherits(r,i),t.PythonHighlightRules=r})),ace.define("ace/mode/folding/pythonic",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("./fold_mode").FoldMode,r=t.FoldMode=function(e){this.foldingStartMarker=new RegExp("([\\[{])(?:\\s*)$|("+e+")(?:\\s*)(?:#.*)?$")};o.inherits(r,i),function(){this.getFoldWidgetRange=function(e,t,n){var o=e.getLine(n).match(this.foldingStartMarker);if(o)return o[1]?this.openingBracketBlock(e,o[1],n,o.index):o[2]?this.indentationBlock(e,n,o.index+o[2].length):this.indentationBlock(e,n)}}.call(r.prototype)})),ace.define("ace/mode/python",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/python_highlight_rules","ace/mode/folding/pythonic","ace/range"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./python_highlight_rules").PythonHighlightRules,s=e("./folding/pythonic").FoldMode,a=e("../range").Range,l=function(){this.HighlightRules=r,this.foldingRules=new s("\\:"),this.$behaviour=this.$defaultBehaviour};o.inherits(l,i),function(){this.lineCommentStart="#",this.$pairQuotesAfter={"'":/[ruf]/i,'"':/[ruf]/i},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;return i.length&&"comment"==i[i.length-1].type||"start"==e&&t.match(/^.*[\{\(\[:]\s*$/)&&(o+=n),o};var e={pass:1,return:1,raise:1,break:1,continue:1};this.checkOutdent=function(t,n,o){if("\r\n"!==o&&"\r"!==o&&"\n"!==o)return!1;var i=this.getTokenizer().getLineTokens(n.trim(),t).tokens;if(!i)return!1;do{var r=i.pop()}while(r&&("comment"==r.type||"text"==r.type&&r.value.match(/^\s+$/)));return!!r&&"keyword"==r.type&&e[r.value]},this.autoOutdent=function(e,t,n){n+=1;var o=this.$getIndent(t.getLine(n)),i=t.getTabString();o.slice(-i.length)==i&&t.remove(new a(n,o.length-i.length,n,o.length))},this.$id="ace/mode/python",this.snippetFileId="ace/snippets/python"}.call(l.prototype),t.Mode=l})),ace.require(["ace/mode/python"],(function(t){e&&(e.exports=t)}))},202:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(e){var t="[_:a-zA-ZÀ-￿][-_:.a-zA-Z0-9À-￿]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+t+")",next:"processing_instruction"},{token:"comment.start.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"",next:"start"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+t+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.end.xml",regex:"--\x3e",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:t},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===r&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(<)("+n+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:t+"start"}]}),this.$rules[n+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(|$))",next:n+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(i.prototype),o.inherits(r,i),t.XmlHighlightRules=r})),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../behaviour").Behaviour,r=e("../../token_iterator").TokenIterator;function s(e,t){return e&&e.type.lastIndexOf(t+".xml")>-1}e("../../lib/lang");var a=function(){this.add("string_dquotes","insertion",(function(e,t,n,o,i){if('"'==i||"'"==i){var a=i,l=o.doc.getTextRange(n.getSelectionRange());if(""!==l&&"'"!==l&&'"'!=l&&n.getWrapBehavioursEnabled())return{text:a+l+a,selection:!1};var c=n.getCursorPosition(),u=o.doc.getLine(c.row).substring(c.column,c.column+1),h=new r(o,c.row,c.column),d=h.getCurrentToken();if(u==a&&(s(d,"attribute-value")||s(d,"string")))return{text:"",selection:[1,1]};if(d||(d=h.stepBackward()),!d)return;for(;s(d,"tag-whitespace")||s(d,"whitespace");)d=h.stepBackward();var p=!u||u.match(/\s/);if(s(d,"attribute-equals")&&(p||">"==u)||s(d,"decl-attribute-equals")&&(p||"?"==u))return{text:a+a,selection:[1,1]}}})),this.add("string_dquotes","deletion",(function(e,t,n,o,i){var r=o.doc.getTextRange(i);if(!i.isMultiLine()&&('"'==r||"'"==r)&&o.doc.getLine(i.start.row).substring(i.start.column+1,i.start.column+2)==r)return i.end.column++,i})),this.add("autoclosing","insertion",(function(e,t,n,o,i){if(">"==i){var a=n.getSelectionRange().start,l=new r(o,a.row,a.column),c=l.getCurrentToken()||l.stepBackward();if(!c||!(s(c,"tag-name")||s(c,"tag-whitespace")||s(c,"attribute-name")||s(c,"attribute-equals")||s(c,"attribute-value")))return;if(s(c,"reference.attribute-value"))return;if(s(c,"attribute-value")){var u=l.getCurrentTokenColumn()+c.value.length;if(a.column/.test(o.getLine(a.row).slice(a.column)))return;for(;!s(c,"tag-name");)if("<"==(c=l.stepBackward()).value){c=l.stepForward();break}var d=l.getCurrentTokenRow(),p=l.getCurrentTokenColumn();if(s(l.stepBackward(),"end-tag-open"))return;var g=c.value;if(d==a.row&&(g=g.substring(0,a.column-p)),this.voidElements.hasOwnProperty(g.toLowerCase()))return;return{text:">",selection:[1,1]}}})),this.add("autoindent","insertion",(function(e,t,n,o,i){if("\n"==i){var s=n.getCursorPosition(),a=o.getLine(s.row),l=new r(o,s.row,s.column),c=l.getCurrentToken();if(c&&-1!==c.type.indexOf("tag-close")){if("/>"==c.value)return;for(;c&&-1===c.type.indexOf("tag-name");)c=l.stepBackward();if(!c)return;var u=c.value,h=l.getCurrentTokenRow();if(!(c=l.stepBackward())||-1!==c.type.indexOf("end-tag"))return;if(this.voidElements&&!this.voidElements[u]){var d=o.getTokenAt(s.row,s.column+1),p=(a=o.getLine(h),this.$getIndent(a)),g=p+o.getTabString();return d&&"-1}(function(){this.getFoldWidget=function(e,t,n){var o=this._getFirstTagInLine(e,n);return o?o.closing||!o.tagName&&o.selfClosing?"markbeginend"===t?"end":"":!o.tagName||o.selfClosing||this.voidElements.hasOwnProperty(o.tagName.toLowerCase())||this._findEndTagInLine(e,n,o.tagName,o.end.column)?"":"start":this.getCommentFoldWidget(e,n)},this.getCommentFoldWidget=function(e,t){return/comment/.test(e.getState(t))&&/"==r.value;break}return o}if(l(r,"tag-close"))return o.selfClosing="/>"==r.value,o;o.start.column+=r.value.length}return null},this._findEndTagInLine=function(e,t,n,o){for(var i=e.getTokens(t),r=0,s=0;s{e=n.nmd(e),ace.define("ace/theme/github-css",["require","exports","module"],(function(e,t,n){n.exports='/* CSS style content from github\'s default pygments highlighter template.\n Cursor and selection styles from textmate.css. */\n.ace-github .ace_gutter {\n background: #e8e8e8;\n color: #AAA;\n}\n\n.ace-github {\n background: #fff;\n color: #000;\n}\n\n.ace-github .ace_keyword {\n font-weight: bold;\n}\n\n.ace-github .ace_string {\n color: #D14;\n}\n\n.ace-github .ace_variable.ace_class {\n color: teal;\n}\n\n.ace-github .ace_constant.ace_numeric {\n color: #099;\n}\n\n.ace-github .ace_constant.ace_buildin {\n color: #0086B3;\n}\n\n.ace-github .ace_support.ace_function {\n color: #0086B3;\n}\n\n.ace-github .ace_comment {\n color: #998;\n font-style: italic;\n}\n\n.ace-github .ace_variable.ace_language {\n color: #0086B3;\n}\n\n.ace-github .ace_paren {\n font-weight: bold;\n}\n\n.ace-github .ace_boolean {\n font-weight: bold;\n}\n\n.ace-github .ace_string.ace_regexp {\n color: #009926;\n font-weight: normal;\n}\n\n.ace-github .ace_variable.ace_instance {\n color: teal;\n}\n\n.ace-github .ace_constant.ace_language {\n font-weight: bold;\n}\n\n.ace-github .ace_cursor {\n color: black;\n}\n\n.ace-github.ace_focus .ace_marker-layer .ace_active-line {\n background: rgb(255, 255, 204);\n}\n.ace-github .ace_marker-layer .ace_active-line {\n background: rgb(245, 245, 245);\n}\n\n.ace-github .ace_marker-layer .ace_selection {\n background: rgb(181, 213, 255);\n}\n\n.ace-github.ace_multiselect .ace_selection.ace_start {\n box-shadow: 0 0 3px 0px white;\n}\n/* bold keywords cause cursor issues for some fonts */\n/* this disables bold style for editor and keeps for static highlighter */\n.ace-github.ace_nobold .ace_line > span {\n font-weight: normal !important;\n}\n\n.ace-github .ace_marker-layer .ace_step {\n background: rgb(252, 255, 0);\n}\n\n.ace-github .ace_marker-layer .ace_stack {\n background: rgb(164, 229, 101);\n}\n\n.ace-github .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-github .ace_gutter-active-line {\n background-color : rgba(0, 0, 0, 0.07);\n}\n\n.ace-github .ace_marker-layer .ace_selected-word {\n background: rgb(250, 250, 255);\n border: 1px solid rgb(200, 200, 250);\n}\n\n.ace-github .ace_invisible {\n color: #BFBFBF\n}\n\n.ace-github .ace_print-margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-github .ace_indent-guide {\n background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;\n}\n\n.ace-github .ace_indent-guide-active {\n background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC") right repeat-y;\n}\n'})),ace.define("ace/theme/github",["require","exports","module","ace/theme/github-css","ace/lib/dom"],(function(e,t,n){t.isDark=!1,t.cssClass="ace-github",t.cssText=e("./github-css"),e("../lib/dom").importCssString(t.cssText,t.cssClass,!1)})),ace.require(["ace/theme/github"],(function(t){e&&(e.exports=t)}))},745:(e,t,n)=>{"use strict";var o=n(137);t.s=o.createRoot,o.hydrateRoot},590:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,o="function"==typeof Set,i="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function r(e,s){if(e===s)return!0;if(e&&s&&"object"==typeof e&&"object"==typeof s){if(e.constructor!==s.constructor)return!1;var a,l,c,u;if(Array.isArray(e)){if((a=e.length)!=s.length)return!1;for(l=a;0!=l--;)if(!r(e[l],s[l]))return!1;return!0}if(n&&e instanceof Map&&s instanceof Map){if(e.size!==s.size)return!1;for(u=e.entries();!(l=u.next()).done;)if(!s.has(l.value[0]))return!1;for(u=e.entries();!(l=u.next()).done;)if(!r(l.value[1],s.get(l.value[0])))return!1;return!0}if(o&&e instanceof Set&&s instanceof Set){if(e.size!==s.size)return!1;for(u=e.entries();!(l=u.next()).done;)if(!s.has(l.value[0]))return!1;return!0}if(i&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(s)){if((a=e.length)!=s.length)return!1;for(l=a;0!=l--;)if(e[l]!==s[l])return!1;return!0}if(e.constructor===RegExp)return e.source===s.source&&e.flags===s.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof s.valueOf)return e.valueOf()===s.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof s.toString)return e.toString()===s.toString();if((a=(c=Object.keys(e)).length)!==Object.keys(s).length)return!1;for(l=a;0!=l--;)if(!Object.prototype.hasOwnProperty.call(s,c[l]))return!1;if(t&&e instanceof Element)return!1;for(l=a;0!=l--;)if(("_owner"!==c[l]&&"__v"!==c[l]&&"__o"!==c[l]||!e.$$typeof)&&!r(e[c[l]],s[c[l]]))return!1;return!0}return e!=e&&s!=s}e.exports=function(e,t){try{return r(e,t)}catch(e){if((e.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw e}}},137:e=>{"use strict";e.exports=require("react-dom")}},t={};function n(o){var i=t[o];if(void 0!==i)return i.exports;var r=t[o]={id:o,loaded:!1,exports:{}};return e[o](r,r.exports,n),r.loaded=!0,r.exports}n.amdD=function(){throw new Error("define cannot be used indirect")},n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),n.p="";var o={};(()=>{"use strict";n.r(o),n.d(o,{Accordion:()=>D,Button:()=>U,ButtonGroup:()=>K,Card:()=>he,Chart:()=>Te,Checkbox:()=>Io,CodeEditor:()=>gr,Collapsible:()=>R,Column:()=>li,Combobox:()=>Sr,Combobox2:()=>Wr,Confirm:()=>St,CopyToClipboard:()=>ut,DatePicker:()=>Zr,Dropdown:()=>Oi,Dropdown2:()=>Zi,EditableList:()=>ha,EditableList2:()=>Na,FieldCodeEditor:()=>ru,FieldCombobox:()=>gu,FieldCombobox2:()=>ju,FieldDatePicker:()=>Xu,FieldDropdown:()=>Cu,FieldEditableList:()=>sh,FieldFileInput:()=>fh,FieldInput:()=>Eh,FieldMultiselect:()=>Ih,FieldPagination:()=>Ru,FieldSelect:()=>Uh,FieldSelectableList:()=>ed,FieldToggle:()=>cd,FileInput:()=>za,FixedWrapper:()=>Ot,FloatingContainer:()=>Pt,FormikCheckbox:()=>Nc,FormikCodeEditor:()=>Ic,FormikCombobox:()=>Pc,FormikCombobox2:()=>Dc,FormikDatePicker:()=>Fc,FormikEditableList:()=>Bc,FormikEditableList2:()=>Wc,FormikFileInput:()=>Hc,FormikInput:()=>jc,FormikInput2:()=>zc,FormikMultiselect:()=>Vc,FormikRadio:()=>Uc,FormikSelect:()=>Gc,FormikSelectableList:()=>Kc,FormikTextarea:()=>qc,FormikToggle:()=>Yc,FormikWrapper:()=>Rc,Icon:()=>g,InfiniteScroller:()=>At,InfoNote:()=>Ft,Input:()=>Qa,Input2:()=>ll,List:()=>jt,Loader:()=>ye,Message:()=>be,Modal:()=>Ct,Multiselect:()=>Cl,NavBar:()=>Vt,Navigation:()=>qt,Pagination:()=>po,Panel:()=>pn,Pill:()=>mn,Radio:()=>Rl,RevealPanel:()=>Nn,Row:()=>yi,Select:()=>jl,SelectableList:()=>Xl,Table:()=>ti,Tabs:()=>eo,TextEllipsis:()=>uo,Textarea:()=>rc,Toggle:()=>bc,Tooltip:()=>lo,setConfig:()=>xc,toast:()=>ot,useComponentSize:()=>C,useEventListener:()=>$,useInterval:()=>ud,usePrevious:()=>me,useTimeout:()=>_e});const e=require("react");var t=n.n(e);const i=require("prop-types");var r=n.n(i);const s=(0,e.createContext)(),a=(0,e.createContext)();var l=Object.defineProperty,c=Object.getOwnPropertySymbols,u=Object.prototype.hasOwnProperty,h=Object.prototype.propertyIsEnumerable,d=(e,t,n)=>t in e?l(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function p(e){var n=e,{className:o,family:i,type:r}=n,s=((e,t)=>{var n={};for(var o in e)u.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&c)for(var o of c(e))t.indexOf(o)<0&&h.call(e,o)&&(n[o]=e[o]);return n})(n,["className","family","type"]);return t().createElement("i",((e,t)=>{for(var n in t||(t={}))u.call(t,n)&&d(e,n,t[n]);if(c)for(var n of c(t))h.call(t,n)&&d(e,n,t[n]);return e})({className:function(){const e=i||"fa";return["tyk-icon",e,`${e}-${r}`,o].filter(Boolean).join(" ")}()},s))}p.propTypes={className:r().string,family:r().string,type:r().string.isRequired};const g=p;function m({wrap:n}){const{collapsed:o,disabled:i,toggleChange:r}=(0,e.useContext)(a),s=o?"chevron-down":"chevron-up",l=["tyk-accordion__trigger",i&&"tyk-accordion__trigger--disabled"].filter(Boolean).join(" "),c=t().createElement("button",{className:l,onClick:r,type:"button","aria-label":"collapse/expand"},t().createElement(g,{className:"collapsable__arrow",type:s}));return n?t().createElement("div",{className:"tyk-accordion__trigger-wrapper"},c):c}m.propTypes={wrap:r().bool};const f=m;function y({collapsed:n,children:o,className:i,disabled:r},l){const{arrow:c}=(0,e.useContext)(s),[u,h]=(0,e.useState)(n),d=()=>{r||h(!u)},p=(0,e.useMemo)((()=>["tyk-accordion__item",c.expandToContent?`tyk-accordion__item--trigger-position-${c.position}`:"tyk-accordion__item--trigger-in-header",i,!1===u&&"tyk-accordion__item--active"].filter(Boolean).join(" ")),[c,i,u]),g=(0,e.useMemo)((()=>({collapsed:u,disabled:r,toggleChange:d})),[u,r,d]);return t().createElement("div",{ref:l,className:p},t().createElement(a.Provider,{value:g},c.expandToContent&&t().createElement(f,{wrap:!0}),o))}y.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),collapsed:r().bool,className:r().string,disabled:r().bool},y.defaultProps={collapsed:!1};const v=(0,e.forwardRef)(y);function b({className:n,children:o}){const{collapsed:i,disabled:r,toggleChange:l}=(0,e.useContext)(a),{usearrowastrigger:c,arrow:u}=(0,e.useContext)(s),h=i?"chevron-down":"chevron-up",d=["tyk-accordion__item-header",c&&"tyk-accordion__arrow-trigger",n].filter(Boolean).join(" ");return t().createElement("div",{className:d},c?t().createElement(t().Fragment,null,!u.expandToContent&&"left"===u.position&&t().createElement(f,null),t().createElement("div",null,o),!u.expandToContent&&"right"===u.position&&t().createElement(f,null)):t().createElement("button",{className:r?"tyk-accordion__trigger--disabled":"",onClick:l,type:"button"},t().createElement("span",null,o),t().createElement(g,{className:"collapsable__arrow",type:h})))}b.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string};const w=b,x=require("react-transition-group"),k=e=>e?{width:e.offsetWidth,height:e.offsetHeight}:{width:0,height:0},C=t=>{const[n,o]=(0,e.useState)(k(t?t.current:{})),i=(0,e.useCallback)((()=>{t.current&&o(k(t.current))}),[t]);return(0,e.useLayoutEffect)((()=>{i();let e=new ResizeObserver((()=>{i()}));return e.observe(t.current),()=>{e.disconnect(t.current),e=null}}),[t.current]),n},$=(t,n,o)=>{const i=(0,e.useRef)();(0,e.useEffect)((()=>{i.current=n}),[n]),(0,e.useEffect)((()=>{if(!(null==o?void 0:o.addEventListener))return;const e=e=>i.current(e);return o.addEventListener(t,e),()=>{o.removeEventListener(t,e)}}),[t,o])};var S=Object.defineProperty,E=Object.defineProperties,O=Object.getOwnPropertyDescriptors,T=Object.getOwnPropertySymbols,A=Object.prototype.hasOwnProperty,_=Object.prototype.propertyIsEnumerable,L=(e,t,n)=>t in e?S(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function M(n){var o=n,{className:i,collapsed:r,children:s}=o,a=((e,t)=>{var n={};for(var o in e)A.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&T)for(var o of T(e))t.indexOf(o)<0&&_.call(e,o)&&(n[o]=e[o]);return n})(o,["className","collapsed","children"]);const l=(0,e.useRef)(null),c=(0,e.useRef)(null),u=C(l),[h,d]=(0,e.useState)({height:r?0:"auto"}),p=e=>{d({height:`${e}px`})},g=()=>l.current?l.current.clientHeight:0;(0,e.useEffect)((()=>{!r&&(null==u?void 0:u.height)&&h.height!==(null==u?void 0:u.height)&&p(u.height)}),[u.height]);const m=(0,e.useCallback)((()=>{!r&&l.current&&(p(g()),c.current.style.height=`${g()}px`)}),[r,l.current]);return $("resize",m,window),t().createElement(x.CSSTransition,{onEnter:()=>{p(g())},onExit:()=>{p(0)},in:!r,timeout:0,classNames:"collapse"},t().createElement("div",{className:"collapse-wrapper",ref:c,style:h},t().createElement("div",(f=((e,t)=>{for(var n in t||(t={}))A.call(t,n)&&L(e,n,t[n]);if(T)for(var n of T(t))_.call(t,n)&&L(e,n,t[n]);return e})({},a),E(f,O({className:i,ref:l}))),s)));var f}M.propTypes={children:r().oneOfType([r().element,r().node,r().string]),collapsed:r().bool,className:r().string};const R=M;function N({children:n,className:o}){const{collapsed:i}=(0,e.useContext)(a),r=["tyk-accordion__item-content",o].filter(Boolean).join(" ");return t().createElement("div",{className:r},t().createElement(R,{collapsed:i},n))}N.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string};const I=N;function P({className:n,children:o,usearrowastrigger:i,arrow:r={position:"right",expandToContent:!1}}){const a=["tyk-accordion",n].filter(Boolean).join(" "),l=(0,e.useMemo)((()=>({usearrowastrigger:i,arrow:r})),[i,r]);return t().createElement("div",{className:a},t().createElement(s.Provider,{value:l},o))}P.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,usearrowastrigger:r().bool,arrow:r().shape({position:r().oneOf(["left","right"]),expandToContent:r().bool})},P.defaultProps={usearrowastrigger:!1},P.Item=v,P.Item.Header=w,P.Item.Content=I;const D=P;var F=Object.defineProperty,B=Object.getOwnPropertySymbols,W=Object.prototype.hasOwnProperty,H=Object.prototype.propertyIsEnumerable,j=(e,t,n)=>t in e?F(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,z=(e,t)=>{for(var n in t||(t={}))W.call(t,n)&&j(e,n,t[n]);if(B)for(var n of B(t))H.call(t,n)&&j(e,n,t[n]);return e};function V(n,o){const i=n,{customButton:r,children:s,iconType:a,iconFamily:l,iconPosition:c,iconOnly:u,id:h,className:d,disabled:p,display:m,href:f,onClick:y,noStyle:v,size:b,theme:w,type:x}=i,k=((e,t)=>{var n={};for(var o in e)W.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&B)for(var o of B(e))t.indexOf(o)<0&&H.call(e,o)&&(n[o]=e[o]);return n})(i,["customButton","children","iconType","iconFamily","iconPosition","iconOnly","id","className","disabled","display","href","onClick","noStyle","size","theme","type"]),C=()=>{const e=["tyk-button"].concat(d?d.split(" "):[]),t=b?`tyk-button--${b}`:"tyk-button--md",n=p?"disabled":"",o=m||"",i=w?`tyk-button--${w}`:"",r=u?"tyk-button--icon-only":"",s=v?"tyk-button--no-style":"";return e.push(r),e.push(i),e.push(t),e.push(n),e.push(o),e.push(s),a&&e.push(`icon-${c||"left"}`),e.join(" ")},$=e=>a&&(c||"left")===e?t().createElement(g,{family:l,type:a}):null;return(()=>{let n;return r?t().createElement(t().Fragment,null,(0,e.cloneElement)(r,{className:C(),disabled:p})):(n=f?t().createElement("a",z({id:h,className:C(),disabled:p,onClick:y,href:f,ref:o},k),$("left"),s,$("right")):t().createElement("button",z({id:h,className:C(),disabled:p,onClick:y,type:x||"button",ref:o},k),$("left"),s&&t().createElement("span",null,s),$("right")),n)})()}V.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),customButton:r().oneOfType([r().arrayOf(r().node),r().node,r().element]),className:r().string,display:r().string,disabled:r().bool,id:r().string,href:r().string,iconPosition:r().string,iconFamily:r().string,iconOnly:r().bool,iconType:r().string,noStyle:r().bool,onClick:r().func,theme:r().string,type:r().string,size:r().string},V.defaultProps={theme:"",type:"button"};const U=(0,e.forwardRef)(V);function G({className:e,children:n,label:o},i){return t().createElement("div",{ref:i,className:`tyk-button-group__wrapper ${e}`},Boolean(o)&&t().createElement("label",null,o),t().createElement("div",{className:"tyk-button-group"},n))}G.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string.isRequired,label:r().string.isRequired};const K=(0,e.forwardRef)(G);function q({right:e=null,children:n}){return t().createElement("div",{className:"tyk-card__header"},n&&t().createElement("div",{className:"tyk-card__header-content"},n),e&&t().createElement("div",{className:"tyk-card__header-right"},e))}q.propTypes={right:r().oneOfType([r().element,r().node,r().string]),children:r().oneOfType([r().element,r().node,r().string])};const Y=q;function J({align:e="top",children:n}){return t().createElement("div",{className:`tyk-card__body tyk-card__body--align-${e}`},t().createElement("div",null,n))}J.propTypes={align:r().oneOf(["top","center","bottom"]),children:r().oneOfType([r().element,r().node,r().string])};const X=J;function Q({children:e}){return t().createElement("div",{className:"tyk-card__footer"},e)}Q.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const Z=Q;function ee({maxLines:e=1,children:n}){return t().createElement("h4",{className:`tyk-card__title tyk-card__title--max-${e}-lines`},n)}ee.propTypes={maxLines:r().number,children:r().oneOfType([r().element,r().node,r().string])};const te=ee;function ne({children:e}){return t().createElement("div",{className:"tyk-card__title-group"},e)}ne.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const oe=ne;function ie({children:e}){return t().createElement("h5",{className:"tyk-card__sub-title"},e)}ie.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const re=ie;function se({maxLines:e=2,children:n}){return t().createElement("p",{className:`tyk-card__summary tyk-card__summary--max-${e}-lines`},n)}se.propTypes={maxLines:r().number,children:r().oneOfType([r().element,r().node,r().string])};const ae=se;function le({children:e}){return t().createElement("div",{className:"tyk-card__title-icon"},e)}le.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const ce=le;function ue({className:e="",height:n="auto",children:o}){return t().createElement("div",{style:{height:n},className:`tyk-card ${e}`},o)}ue.propTypes={className:r().string,height:r().oneOfType([r().number,r().string]),children:r().oneOfType([r().element,r().node,r().string])},ue.Header=Y,ue.Body=X,ue.Footer=Z,ue.Title=te,ue.TitleGroup=oe,ue.Icon=ce,ue.SubTitle=re,ue.Summary=ae;const he=ue,de=require("echarts"),pe=require("immutable"),ge=(e,t,n)=>{let o;return function(...i){const r=this,s=n&&!o;clearTimeout(o),o=setTimeout((()=>{o=null,n||e.apply(r,i)}),t),s&&e.apply(r,i)}},me=t=>{const n=(0,e.useRef)();return(0,e.useEffect)((()=>{n.current=t}),[t]),n.current};function fe({className:e,position:n="relative",withbackground:o=!1}){const i=["loading",n,e].filter(Boolean).join(" "),r=t().createElement("div",{className:i},t().createElement("div",{className:"loading-bar"}),t().createElement("div",{className:"loading-bar"}),t().createElement("div",{className:"loading-bar"}),t().createElement("div",{className:"loading-bar"}));return o?t().createElement("div",{className:"tyk-loading__wrapper"},r):r}fe.propTypes={className:r().string,position:r().string,withbackground:r().bool};const ye=fe;function ve({children:e,theme:n,onClose:o,noMargin:i,className:r}){const s="success"===n?"check":"warning";return t().createElement("div",{className:["tyk-message",`tyk-message--${n||"info"}`,i&&"no-margin",r].filter(Boolean).join(" ")},t().createElement(g,{family:"tykon",type:s}),t().createElement("div",{className:"tyk-message__content"},e),o&&t().createElement(g,{family:"tykon",type:"x",onClick:o}))}ve.propTypes={theme:r().string,children:r().oneOfType([r().element,r().node,r().string]),className:r().string,noMargin:r().bool,onClose:r().func};const be=ve,we=JSON.parse('{"type":"FeatureCollection","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:OGC:1.3:CRS84"}},"features":[{"geometry":{"type":"Polygon","coordinates":[[[47.97822265625001,7.9970703125],[46.97822265625001,7.9970703125],[43.98378906250002,9.008837890624989],[43.482519531250006,9.379492187499991],[43.181640625,9.879980468749991],[42.84160156250002,10.203076171874997],[42.65644531250001,10.6],[42.92275390625002,10.999316406249989],[43.24599609375002,11.499804687499989],[43.85273437500001,10.784277343749991],[44.38652343750002,10.430224609374989],[44.94296875,10.43671875],[45.81669921875002,10.835888671874997],[46.565039062500006,10.745996093749994],[47.40498046875001,11.174023437499997],[48.01923828125001,11.139355468749997],[48.57255859375002,11.320507812499997],[48.938574218750006,11.258447265624994],[50.11005859375001,11.529296875],[50.79228515625002,11.983691406249989],[51.2548828125,11.830712890624994],[51.08427734375002,11.335644531249997],[51.140625,10.656884765624994],[51.031835937500006,10.444775390624997],[51.19296875,10.554638671874997],[51.390234375,10.422607421875],[50.93007812500002,10.33554687499999],[50.825,9.428173828124997],[50.10283203125002,8.199804687499991],[49.85205078125,7.962548828124994],[49.234960937500006,6.77734375],[49.04931640625,6.173632812499989],[47.97529296875001,4.497021484374997],[46.87880859375002,3.28564453125],[46.05117187500002,2.475146484374989],[44.92021484375002,1.81015625],[43.71757812500002,0.857861328124997],[41.97988281250002,-0.973046875],[41.53271484375,-1.6953125],[41.521875,-1.572265625],[41.42695312500001,-1.449511718750003],[41.24980468750002,-1.220507812500003],[40.97871093750001,-0.870312500000011],[40.964453125,2.814648437499997],[41.341796875,3.20166015625],[41.61347656250001,3.590478515624994],[41.88398437500001,3.977734375],[41.91533203125002,4.031298828124989],[42.02412109375001,4.137939453125],[42.85664062500001,4.32421875],[43.12568359375001,4.644482421874997],[43.58349609375,4.85498046875],[43.988867187500006,4.950537109374991],[44.940527343750006,4.912011718749994],[47.97822265625001,7.9970703125]]]},"properties":{"name":"Somalia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[9.579979133936737,47.05856388629306],[9.409458596647225,47.02019676540292],[9.46249431093294,47.09010747968864],[9.46249431093294,47.19858962254578],[9.527658197470123,47.27026989773668],[9.579979133936737,47.05856388629306]]]},"properties":{"name":"Liechtenstein","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-8.683349609375,27.77800740805682],[-13.038761787013554,27.81190166624856],[-12.948925781249926,27.914160156250034],[-11.552685546874955,28.31010742187496],[-10.486474609374994,29.06494140625],[-10.200585937499994,29.380371093750057],[-9.667089843749949,30.10927734375005],[-9.652929687499977,30.447558593750045],[-9.875488281249943,30.717919921874966],[-9.80869140624992,31.42460937499996],[-9.347460937499932,32.086376953124955],[-9.245849609375,32.572460937499955],[-8.512841796874994,33.25244140625003],[-6.900976562499949,33.96904296874999],[-6.353125,34.77607421875001],[-5.924804687499943,35.78579101562502],[-5.277832031249943,35.90273437500002],[-5.252685546874972,35.61474609374997],[-4.628320312499966,35.206396484375006],[-4.329980468749937,35.161474609375006],[-3.693261718749994,35.27998046874998],[-3.394726562499926,35.21181640625005],[-2.972216796874989,35.40727539062499],[-2.839941406249949,35.127832031249994],[-2.731396484374955,35.13520507812498],[-2.636816406249977,35.11269531250002],[-2.423730468749994,35.12348632812498],[-2.219628906249966,35.10419921874998],[-1.795605468749926,34.751904296874955],[-1.67919921875,33.31865234375002],[-1.550732421874955,33.073583984375006],[-1.510009765625,32.877636718749955],[-1.45,32.784814453124966],[-1.352148437499977,32.70336914062497],[-1.29638671875,32.67568359375002],[-1.188232421875,32.608496093750006],[-1.111035156249983,32.55229492187502],[-1.065527343749949,32.46831054687496],[-1.16259765625,32.399169921875],[-1.275341796874983,32.089013671874966],[-2.863427734374937,32.07470703124997],[-2.930859374999926,32.04252929687499],[-2.988232421874983,31.874218749999983],[-3.01738281249996,31.834277343750017],[-3.439794921874949,31.704541015624983],[-3.604589843749949,31.686767578125],[-3.700244140624989,31.70009765625005],[-3.768164062499977,31.689550781250034],[-3.837109374999983,31.512353515624994],[-3.833398437499937,31.197802734375045],[-3.626904296874955,31.000927734374983],[-4.148779296874977,30.8095703125],[-4.322851562500006,30.698876953124994],[-4.52915039062492,30.62553710937499],[-4.778515624999926,30.552392578124994],[-4.968261718749943,30.465380859375045],[-5.061914062499937,30.326416015625057],[-5.180126953124955,30.166162109374994],[-5.293652343749983,30.058642578125045],[-5.44877929687496,29.956933593750023],[-6.00429687499999,29.83125],[-6.479736328124943,29.82036132812499],[-6.520556640624989,29.659863281249983],[-6.59775390624992,29.578955078125006],[-6.635351562499949,29.568798828124983],[-6.755126953125,29.583837890625034],[-6.855566406249949,29.601611328125017],[-7.142431640624949,29.61958007812504],[-7.427685546874983,29.425],[-7.485742187499994,29.392236328124994],[-8.659912109375,28.718603515625063],[-8.683349609375,27.900390625],[-8.683349609375,27.77800740805682]]]},"properties":{"name":"Morocco","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-13.038761787013554,27.81190166624856],[-8.683349609375,27.77800740805682],[-8.683349609375,27.65644531250004],[-8.817822265624955,27.65644531250004],[-8.817822265624951,27.656445312499997],[-8.683349609375,27.656445312499997],[-8.683349609375,27.2859375],[-8.682861328125,26.921337890624997],[-8.6826171875,26.72314453125],[-8.682324218749983,26.497705078124994],[-8.68212890625,26.273193359375],[-8.68212890625,26.10947265625],[-8.682226562499977,25.995507812499994],[-12.016308593749983,25.995410156250003],[-12.016308593749983,25.740136718749994],[-12.016308593749983,25.331689453124994],[-12.016308593749983,25.059375],[-12.016308593749983,24.923242187499994],[-12.016308593749983,24.378662109375],[-12.016308593749983,23.97021484375],[-12.0234375,23.467578125],[-12.372900390624977,23.318017578124994],[-12.559375,23.290820312500003],[-12.620410156249989,23.27133789062499],[-13.031494140625,23.000244140625],[-13.153271484374983,22.820507812499997],[-13.12702845982141,22.703770926339278],[-13.136540684091575,22.708182548616723],[-13.094335937499977,22.495996093749994],[-13.051220703124983,21.854785156250003],[-13.041748046875,21.713818359374997],[-13.0322265625,21.572070312500003],[-13.025097656249983,21.466796875],[-13.016210937499977,21.333935546874997],[-15.231201171875,21.331298828125],[-16.964550781249983,21.329248046874994],[-17.06396484375,20.89882812499999],[-17.048046874999983,20.80615234375],[-17.098779296874994,20.856884765624997],[-16.930859374999983,21.9],[-16.35874023437495,22.594531250000045],[-16.21025390624999,23.097900390625],[-15.789257812499926,23.792871093750023],[-15.980712890624943,23.670312500000023],[-15.899316406249966,23.844433593749955],[-14.904296875000028,24.719775390625017],[-14.794921874999943,25.404150390625006],[-14.413867187499932,26.25371093749999],[-13.57578125,26.735107421875],[-13.175976562499983,27.655712890624983],[-13.038761787013554,27.81190166624856]],[[-8.774365234374983,27.460546875],[-8.794873046874983,27.120703125000034],[-8.794873046874983,27.120703125],[-8.774365234374983,27.460546875]]]},"properties":{"name":"W. Sahara","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[21.5625,42.247509765625],[21.560839843750017,42.24765625],[21.389550781250023,42.21982421875],[21.28662109375,42.100390625],[21.05976562500001,42.171289062499994],[20.778125,42.071044921875],[20.725,41.87353515625],[20.566210937500017,41.873681640624994],[20.485449218750006,42.223388671875],[20.06396484375,42.54726562499999],[20.054296875,42.760058593749996],[20.344335937500006,42.827929687499996],[20.40996305279786,42.84373166741877],[20.344335937500063,42.82792968750002],[19.670996093750006,43.163964843749994],[19.21875,43.449951171875],[19.196484375000068,43.48500976562502],[19.19160156250004,43.52104492187499],[19.19433593749997,43.533300781250006],[19.495117187500057,43.642871093750045],[19.245019531249994,43.96503906250004],[19.583789062500017,44.04345703125003],[19.118457031250074,44.359960937500006],[19.348632812500057,44.88090820312502],[19.007128906250045,44.86918945312502],[19.062890625000023,45.13720703125],[19.4,45.2125],[19.004687500000074,45.39951171875006],[19.064257812500045,45.51499023437506],[18.839062499999983,45.83574218750002],[18.905371093750006,45.931738281250034],[19.421289062500023,46.064453125],[19.61347656250001,46.169189453125],[19.84443359375001,46.145898437499966],[19.934082031250057,46.161474609375034],[20.161425781250017,46.14189453124996],[20.210156250000068,46.12602539062502],[20.241796875000034,46.10859375000001],[20.301367187500006,46.05068359375002],[20.35859375000004,45.975488281249994],[20.581152343749977,45.86948242187506],[20.65273437499999,45.779394531250006],[20.709277343750074,45.735253906249994],[20.727832031250017,45.73740234374998],[20.746875,45.74897460937501],[20.76015625000005,45.75810546875002],[20.775,45.74980468750002],[20.794042968750006,45.467871093750034],[21.431445312500017,45.192529296874994],[21.465429687500006,45.171875],[21.357031250000034,44.99077148437502],[21.532324218750063,44.900683593750045],[21.519921875000023,44.88081054687498],[21.442187500000074,44.87338867187498],[21.384375,44.87006835937501],[21.357910156250057,44.86181640625003],[21.36005859375004,44.82666015624997],[21.52314453125004,44.79008789062499],[21.63613281250005,44.71044921875],[21.909277343750034,44.666113281250034],[22.026953125,44.61987304687503],[22.093066406250074,44.541943359374955],[22.200976562500017,44.560693359374966],[22.350683593750063,44.676123046875034],[22.497656249999977,44.70625],[22.64208984375,44.65097656249998],[22.720898437499983,44.605517578125045],[22.734375,44.56992187499998],[22.700781250000063,44.55551757812498],[22.620117187500057,44.562353515625034],[22.554003906250017,44.54033203124999],[22.49453125000005,44.43544921875002],[22.687890625000023,44.248291015625],[22.42080078125005,44.00742187500006],[22.399023437500063,43.96953125],[22.36542968750004,43.86210937500002],[22.36962890625003,43.78129882812499],[22.55458984375005,43.45449218750002],[22.767578125,43.35415039062502],[22.81972656250005,43.300732421874955],[22.85957031250001,43.252343749999966],[22.97685546874999,43.18798828125],[22.799902343750006,42.985742187499994],[22.706152343750006,42.88393554687505],[22.466796875,42.842480468749955],[22.53242187500004,42.48120117187497],[22.523535156250006,42.440966796875045],[22.44570312500005,42.35913085937497],[22.42207031250004,42.32885742187503],[22.344042968750045,42.31396484375003],[22.23974609375003,42.303110028468716],[21.81464843750001,42.303125],[21.5625,42.24750976562498],[21.5625,42.247509765625]]]},"properties":{"name":"Serbia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[74.54140625000002,37.02216796875],[74.03886718750002,36.825732421874996],[73.116796875,36.868554687499994],[72.24980468750002,36.734716796875],[71.23291015625,36.12177734375],[71.18505859375,36.04208984375],[71.57197265625001,35.546826171875],[71.62050781250002,35.183007812499994],[70.965625,34.53037109375],[71.095703125,34.369433593749996],[71.05156250000002,34.049707031249994],[70.65400390625001,33.952294921874994],[69.8896484375,34.007275390625],[70.26113281250002,33.289013671875],[69.5015625,33.020068359374996],[69.24140625000001,32.433544921875],[69.279296875,31.936816406249996],[68.86894531250002,31.634228515624997],[68.59765625,31.802978515625],[68.16103515625002,31.802978515625],[67.57822265625,31.506494140624994],[67.737890625,31.343945312499997],[67.45283203125001,31.234619140625],[66.82929687500001,31.263671875],[66.346875,30.802783203124996],[66.23125,29.86572265625],[65.09550781250002,29.559472656249994],[64.39375,29.544335937499994],[64.09873046875,29.391943359375],[63.56757812500001,29.497998046874997],[62.4765625,29.408349609374994],[62.0009765625,29.530419921874994],[61.22441406250002,29.749414062499994],[60.843359375,29.858691406249996],[61.331640625,30.363720703124997],[61.55947265625002,30.599365234375],[61.7841796875,30.831933593749994],[61.81083984375002,30.91328125],[61.81425781250002,31.072558593749996],[61.75507812500001,31.285302734374994],[61.66015625,31.382421875],[61.34648437500002,31.421630859375],[61.11074218750002,31.451123046874997],[60.854101562500006,31.483251953125],[60.82070312500002,31.495166015624996],[60.791601562500006,31.660595703124997],[60.804296875,31.73447265625],[60.7875,31.877197265625],[60.78994140625002,31.987109375],[60.827246093750006,32.16796875],[60.82929687500001,32.249414062499994],[60.71044921875,32.6],[60.57656250000002,32.994873046875],[60.560546875,33.137841796874994],[60.9169921875,33.505224609375],[60.573828125,33.588330078125],[60.4859375,33.7119140625],[60.48574218750002,34.094775390624996],[60.642675781250006,34.307177734374996],[60.88945312500002,34.31943359375],[60.80390625000001,34.418017578124996],[60.76259765625002,34.475244140624994],[60.73613281250002,34.491796875],[60.72626953125001,34.51826171875],[60.73945312500001,34.544726562499996],[60.80234375,34.554638671875],[60.8453125,34.587695312499996],[60.91474609375001,34.633984375],[60.951171875,34.653857421874996],[61.080078125,34.855615234374994],[61.1,35.272314453125],[61.18925781250002,35.31201171875],[61.24550781250002,35.474072265625],[61.27851562500001,35.51376953125],[61.281835937500006,35.55341796875],[61.26201171875002,35.619580078125],[61.3447265625,35.6294921875],[61.62099609375002,35.43232421875],[62.08964843750002,35.3796875],[62.30781250000001,35.170800781249994],[62.688085937500006,35.255322265625],[63.056640625,35.44580078125],[63.08417968750001,35.56806640625],[63.16972656250002,35.678125],[63.129980468750006,35.84619140625],[63.8625,36.012353515624994],[64.184375,36.14892578125],[64.51103515625002,36.340673828125],[64.56582031250002,36.427587890625],[64.6025390625,36.554541015625],[64.78242187500001,37.05927734375],[64.81630859375002,37.132080078125],[64.95156250000002,37.1935546875],[65.08964843750002,37.237939453124994],[65.30361328125002,37.24677734375],[65.55498046875002,37.251171875],[65.76503906250002,37.569140625],[66.471875,37.3447265625],[66.52226562500002,37.348486328125],[66.827734375,37.3712890625],[67.06884765625,37.334814453125],[67.19550781250001,37.235205078125],[67.31972656250002,37.2095703125],[67.44169921875002,37.2580078125],[67.51728515625001,37.266650390624996],[67.546484375,37.235644531249996],[67.607421875,37.222509765625],[67.7,37.22724609375],[67.7529296875,37.1998046875],[67.75898437500001,37.172216796875],[67.76601562500002,37.14013671875],[67.83447265625,37.064208984375],[67.9580078125,36.972021484375],[68.06777343750002,36.9498046875],[68.26093750000001,37.013085937499994],[68.284765625,37.036328125],[68.29951171875001,37.088427734374996],[68.38691406250001,37.1375],[68.66914062500001,37.2583984375],[68.7232421875,37.268017578125],[68.78203125000002,37.2580078125],[68.82373046875,37.270703125],[68.8384765625,37.30283203125],[68.85537109375002,37.316845703125],[68.88525390625,37.328076171875],[68.91181640625001,37.333935546875],[68.96044921875,37.325048828125],[69.18017578125,37.15830078125],[69.26484375000001,37.1083984375],[69.30390625000001,37.116943359375],[69.35380859375002,37.150048828124994],[69.41445312500002,37.207763671875],[69.4296875,37.290869140625],[69.39921875000002,37.399316406249994],[69.42011718750001,37.48671875],[69.49208984375002,37.553076171875],[69.62578125000002,37.594042968749996],[69.8208984375,37.6095703125],[69.9849609375,37.566162109375],[70.18867187500001,37.582470703125],[70.25146484375,37.66416015625],[70.25498046875,37.765380859375],[70.19941406250001,37.886035156249996],[70.21464843750002,37.9244140625],[70.41777343750002,38.075439453125],[70.7359375,38.42255859375],[71.255859375,38.306982421875],[71.33271484375001,38.170263671875],[71.27851562500001,37.918408203125],[71.319921875,37.90185546875],[71.3896484375,37.906298828124996],[71.48779296875,37.931884765625],[71.55195312500001,37.933154296874996],[71.58222656250001,37.910107421875],[71.43291015625002,37.1275390625],[71.530859375,36.845117187499994],[71.665625,36.696923828124994],[72.65742187500001,37.029052734375],[72.8955078125,37.267529296875],[73.21113281250001,37.408496093749996],[73.38291015625,37.462255859375],[73.48134765625002,37.4716796875],[73.60468750000001,37.446044921875],[73.65712890625002,37.43046875],[73.72060546875002,37.41875],[73.73378906250002,37.37578125],[73.71728515625,37.329443359375],[73.6275390625,37.261572265625],[73.65351562500001,37.23935546875],[73.749609375,37.231787109375],[74.16708984375,37.329443359375],[74.20351562500002,37.372460937499994],[74.25966796875002,37.415429687499994],[74.659375,37.394482421875],[74.73056640625,37.35703125],[74.83046875000002,37.2859375],[74.89130859375001,37.231640625],[74.84023437500002,37.225048828125],[74.76738281250002,37.249169921874994],[74.73896484375001,37.28564453125],[74.72666015625,37.29072265625],[74.6689453125,37.26669921875],[74.55898437500002,37.236621093749996],[74.37216796875,37.15771484375],[74.37617187500001,37.137353515624994],[74.49794921875002,37.0572265625],[74.52646484375,37.030664062499994],[74.54140625000002,37.02216796875]]]},"properties":{"name":"Afghanistan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[17.57958984375,-8.099023437500009],[17.643359375000017,-8.090722656250009],[18.00878906250003,-8.107617187499983],[18.56269531250001,-7.9359375],[18.944433593750063,-8.001464843750028],[19.142675781250034,-8.001464843750028],[19.34082031249997,-7.966601562500031],[19.369921875000045,-7.706542968749986],[19.371679687500063,-7.655078124999989],[19.47988281250008,-7.472167968750028],[19.48378906250008,-7.279492187500026],[19.527636718750017,-7.144433593749952],[19.87519531250004,-6.986328124999986],[19.99746093750008,-6.976464843750023],[20.190039062500063,-6.9462890625],[20.482226562500074,-6.915820312500017],[20.59003906250001,-6.919921874999957],[20.598730468750006,-6.935156249999949],[20.536914062500045,-7.121777343749955],[20.535839843749983,-7.182812499999955],[20.558398437500045,-7.244433593749989],[20.60781250000008,-7.277734375000023],[20.910937500000017,-7.281445312499983],[21.190332031250023,-7.284960937499989],[21.751074218750034,-7.305468749999989],[21.80605468750005,-7.32861328125],[21.905371093750034,-8.693359374999943],[21.813183593750068,-9.46875],[22.19775390625,-10.040625],[22.30703125000005,-10.691308593750023],[22.203515625000023,-10.829492187500009],[22.226171875,-11.121972656250009],[22.27880859375,-11.19414062499996],[22.314941406250057,-11.198632812499994],[22.39296875000005,-11.159472656250003],[22.486132812500045,-11.086718750000017],[22.56103515625003,-11.05585937500004],[22.814746093750017,-11.08027343750004],[23.076269531250006,-11.087890624999986],[23.463964843750034,-10.969335937499991],[23.83388671875008,-11.013671874999972],[23.96650390625001,-10.871777343750011],[23.98388671875,-11.725],[23.909375,-12.636132812500009],[23.886523437500045,-12.743261718749991],[23.882421875,-12.799023437499983],[23.968066406250045,-12.956933593749994],[23.962988281250006,-12.988476562500026],[23.843164062500023,-13.0009765625],[22.209570312500006,-13.0009765625],[21.97890625000008,-13.0009765625],[21.979101562500034,-13.798730468749994],[21.979296875000074,-14.11962890625],[21.979394531249994,-14.440527343750006],[21.97978515624999,-15.955566406250014],[22.193945312500006,-16.628125],[23.380664062500017,-17.640625],[22.32421875,-17.8375],[20.74550781250008,-18.019726562499983],[20.194335937500057,-17.86367187499999],[18.95527343750004,-17.80351562499999],[18.39638671875005,-17.3994140625],[16.14843750000003,-17.39023437499999],[14.017480468750023,-17.40888671874997],[13.475976562500023,-17.04003906249997],[13.179492187500017,-16.971679687499986],[12.548144531250017,-17.212695312499974],[12.35927734375008,-17.205859375],[12.318457031250006,-17.21337890625003],[12.213378906250028,-17.209960937500043],[12.013964843750074,-17.168554687500034],[11.902539062500011,-17.226562499999957],[11.743066406250023,-17.24921875000004],[11.780078125000017,-16.87128906249997],[11.818945312500034,-16.704101562500014],[11.750878906250023,-15.831933593749966],[12.016113281250057,-15.513671874999957],[12.55048828125004,-13.437792968750003],[12.983203124999989,-12.775683593750017],[13.4169921875,-12.52041015624998],[13.597949218750017,-12.286132812500028],[13.785351562499983,-11.81279296874996],[13.833593750000063,-10.9296875],[13.33222656250004,-9.998925781250009],[12.99853515625,-9.048046875],[13.358984375,-8.687207031250026],[13.378515625000063,-8.369726562500006],[12.82343750000004,-6.954785156249955],[12.283300781250063,-6.12431640624996],[13.184375,-5.85625],[13.346484375000017,-5.863378906250006],[13.978515625,-5.857226562500003],[16.315234375000074,-5.865625],[16.431445312500045,-5.90019531249996],[16.53710937499997,-5.9658203125],[16.697265625,-6.164257812500026],[16.74296874999999,-6.618457031250003],[16.813085937500063,-6.772558593749963],[16.919433593750057,-6.93398437499998],[16.98476562500005,-7.257421874999977],[17.57958984375,-8.099023437500009]]],[[[12.50146484375,-4.5875],[12.848144531250028,-4.428906249999983],[12.881054687500068,-4.445117187499989],[12.971386718750068,-4.551757812499957],[13.048046875000068,-4.619238281250034],[13.072753906250028,-4.634765625],[13.057324218750011,-4.651074218750026],[12.947460937500011,-4.695312499999986],[12.829687499999977,-4.73662109374996],[12.451464843750017,-5.071484374999969],[12.453222656250034,-5.090625],[12.52236328125008,-5.148925781250028],[12.484570312500011,-5.71875],[12.213671875000074,-5.758691406249994],[12.177148437499994,-5.324804687499977],[12.018359375000074,-5.004296874999966],[12.50146484375,-4.5875]]]]},"properties":{"name":"Angola","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[20.06396484375,42.54726562499999],[20.485449218750006,42.223388671875],[20.566210937500017,41.873681640624994],[20.48896484375001,41.272607421874994],[20.709277343750017,40.928369140624994],[20.964257812500023,40.849902343749996],[20.95576171875001,40.775292968749994],[21.030859375,40.622460937499994],[20.881640625000017,40.467919921874994],[20.65742187500001,40.1173828125],[20.4560546875,40.065576171874994],[20.408007812500017,40.049462890624994],[20.383691406250023,40.0171875],[20.338476562500006,39.991064453125],[20.311132812500006,39.979443359375],[20.311328125000017,39.95078125],[20.381640625000017,39.841796875],[20.382421875,39.802636718749994],[20.206835937500017,39.653515625],[20.13105468750001,39.66162109375],[20.05976562500001,39.699121093749994],[20.022558593750006,39.710693359375],[20.001269531250017,39.709423828125],[19.851855468750017,40.0435546875],[19.322265625,40.407080078125],[19.45917968750001,40.40537109375],[19.3375,40.663818359375],[19.57568359375,41.640429687499996],[19.577539062500023,41.7875],[19.342382812500006,41.869091796875],[19.280664062500023,42.17255859375],[19.65449218750001,42.628564453124994],[19.78828125000001,42.476171875],[20.06396484375,42.54726562499999]]]},"properties":{"name":"Albania","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[19.66230468750001,60.187158203124994],[19.53652343750005,60.14497070312501],[19.551367187500063,60.24384765625001],[19.66230468750001,60.187158203124994]]],[[[19.989550781250074,60.351171875],[20.258886718750063,60.26127929687499],[19.799804687500057,60.08173828125001],[19.68691406250005,60.267626953125045],[19.84765625000003,60.22055664062506],[19.823046875000074,60.390185546875045],[19.989550781250074,60.351171875]]]]},"properties":{"name":"Aland","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[1.7060546875,42.503320312499994],[1.534082031250023,42.441699218749996],[1.448828125,42.437451171875],[1.428125,42.46132812499999],[1.414843750000017,42.548388671874996],[1.428320312500006,42.5958984375],[1.501367187500023,42.642724609374994],[1.568164062500017,42.635009765625],[1.709863281250023,42.604443359375],[1.739453125000011,42.575927734375],[1.740234375,42.55673828125],[1.713964843750006,42.525634765625],[1.7060546875,42.503320312499994]]]},"properties":{"name":"Andorra","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[53.927832031250006,24.177197265624983],[53.63447265625004,24.169775390624977],[53.83378906250002,24.258935546875023],[53.927832031250006,24.177197265624983]]],[[[53.3322265625001,24.258593750000045],[53.19091796874997,24.290917968749966],[53.412402343750074,24.411035156250023],[53.3322265625001,24.258593750000045]]],[[[56.29785156250003,25.650683593750045],[56.38798828125002,24.97919921875004],[56.06386718750005,24.73876953125],[56.00058593750006,24.953222656249977],[55.795703125000074,24.868115234374955],[55.76083984375006,24.24267578125],[55.92861328125005,24.215136718750074],[55.98515625000002,24.063378906249966],[55.4684570312501,23.94111328125001],[55.53164062499999,23.81904296875001],[55.1999023437501,23.034765625000034],[55.185839843750074,22.7041015625],[55.104296875000074,22.621484375000023],[52.55507812500005,22.932812499999955],[51.592578125000074,24.07885742187503],[51.56835937500003,24.286181640625074],[51.76757812500003,24.25439453125],[51.84316406250005,24.010888671875023],[52.118554687499994,23.97109375],[52.64824218750002,24.154638671875006],[53.80175781249997,24.069482421874966],[54.14794921875003,24.17119140624999],[54.39707031250006,24.278173828125034],[54.74677734375004,24.810449218750023],[55.94121093750002,25.793994140625017],[56.08046875,26.06264648437505],[56.16748046875003,26.047460937499977],[56.144628906250006,25.690527343750006],[56.29785156250003,25.650683593750045]]]]},"properties":{"name":"United Arab Emirates","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-64.54916992187498,-54.71621093749998],[-63.81542968749997,-54.725097656250014],[-64.637353515625,-54.90253906250001],[-64.75732421875,-54.82656249999999],[-64.54916992187498,-54.71621093749998]]],[[[-68.65322265624994,-54.85361328124999],[-68.62993164062499,-52.65263671875004],[-68.24013671875,-53.08183593749999],[-68.43115234375,-53.0552734375],[-68.48852539062497,-53.260937499999976],[-68.16113281249997,-53.30644531250001],[-68.00849609374995,-53.5640625],[-67.29423828125002,-54.049804687500014],[-66.23564453124999,-54.53349609374997],[-65.17900390624993,-54.678125],[-65.47114257812495,-54.91464843749999],[-66.5111328125,-55.032128906249945],[-67.127099609375,-54.90380859375001],[-68.65322265624994,-54.85361328124999]]],[[[-61.084716796875,-23.65644531250001],[-60.83984375000003,-23.85810546874997],[-59.89248046874994,-24.093554687499974],[-59.18725585937497,-24.56230468749999],[-57.82167968749994,-25.136425781249983],[-57.56313476562494,-25.473730468749963],[-57.943115234375,-26.05292968750001],[-58.18149414062498,-26.30742187499999],[-58.222070312499994,-26.65],[-58.618603515624955,-27.13212890624996],[-58.64174804687494,-27.196093750000017],[-58.60483398437498,-27.314355468750037],[-58.16826171874993,-27.27343749999997],[-56.437158203124966,-27.553808593749977],[-56.16406250000003,-27.321484374999983],[-55.95146484374996,-27.325683593749957],[-55.789990234374926,-27.416406249999966],[-55.71464843749996,-27.41484375],[-55.632910156250006,-27.35712890624997],[-55.59379882812502,-27.288085937500014],[-55.597265625,-27.207617187499963],[-55.56489257812498,-27.15],[-55.496728515624966,-27.11533203124999],[-55.45063476562498,-27.068359375000014],[-55.426660156249994,-27.00927734374997],[-55.13593750000001,-26.931152343749957],[-54.934472656249994,-26.70253906250001],[-54.677734375,-26.308789062499997],[-54.631933593750006,-26.005761718749994],[-54.615869140624994,-25.576074218750023],[-54.44394531249998,-25.625],[-54.15458984374999,-25.523046874999963],[-53.89116210937499,-25.66884765625001],[-53.668554687500006,-26.288183593749977],[-53.83818359375002,-27.121093750000014],[-54.32700195312495,-27.423535156249997],[-54.82910156250003,-27.55058593750003],[-55.10151367187501,-27.866796874999963],[-55.72548828125002,-28.20410156250003],[-55.68725585937497,-28.38164062499996],[-55.890527343749994,-28.370019531249994],[-56.938623046874994,-29.594824218750034],[-57.22465820312499,-29.782128906249994],[-57.40522460937501,-30.03388671875004],[-57.563867187499994,-30.139941406249974],[-57.60888671875003,-30.187792968750045],[-57.65087890624997,-30.295019531250034],[-57.71269531249996,-30.38447265624997],[-57.83120117187502,-30.495214843749963],[-57.87250976562501,-30.591015625000026],[-57.81059570312499,-30.85859375000001],[-57.88632812499998,-30.937402343749994],[-57.86840820312497,-31.104394531249994],[-57.89335937499999,-31.195312499999957],[-58.03339843750001,-31.416601562500006],[-58.053857421874994,-31.494921874999974],[-58.009667968749966,-31.534375],[-57.98798828124998,-31.576171875],[-58.00698242187494,-31.684960937499966],[-58.04233398437495,-31.769238281249997],[-58.16748046874997,-31.87265625],[-58.18901367187499,-31.924218750000037],[-58.16040039062503,-31.986523437500026],[-58.156347656250006,-32.0515625],[-58.17700195312494,-32.11904296875002],[-58.16479492187494,-32.18486328125002],[-58.119726562500006,-32.24892578125002],[-58.12304687499997,-32.321875],[-58.201171875,-32.471679687500014],[-58.219970703125,-32.563964843749986],[-58.17099609374998,-32.95927734374996],[-58.424462890624994,-33.11152343749998],[-58.54721679687498,-33.66347656249998],[-58.392480468749966,-34.192968750000034],[-58.52548828124998,-34.29619140625002],[-58.28334960937494,-34.68349609375005],[-57.54785156250003,-35.018945312499994],[-57.170654296875,-35.3625],[-57.35390624999994,-35.72031249999998],[-57.33544921875,-36.026757812499966],[-57.07617187499994,-36.296777343749994],[-56.74946289062501,-36.346484375],[-56.67202148437494,-36.85126953124998],[-57.546972656250034,-38.085644531250026],[-58.17919921874994,-38.435839843750045],[-59.82832031250001,-38.83818359375003],[-61.112207031249994,-38.99296875000003],[-61.84790039062497,-38.961816406249994],[-62.33476562499993,-38.80009765625],[-62.29506835937502,-39.24326171874996],[-62.053662109374955,-39.373828125],[-62.179345703124994,-39.38046875000002],[-62.076806640624966,-39.46152343750002],[-62.131542968749926,-39.82539062499998],[-62.28691406249996,-39.89531250000002],[-62.40185546875003,-40.19658203125002],[-62.24633789062494,-40.674609374999974],[-62.39501953124997,-40.89082031249997],[-62.95903320312493,-41.10966796875006],[-63.621777343749955,-41.15976562499996],[-64.86948242187503,-40.735839843750014],[-65.13339843749998,-40.88066406250003],[-64.98637695312496,-42.102050781249986],[-64.53774414062494,-42.25458984374998],[-64.57099609374998,-42.416015625],[-64.42041015625003,-42.43378906249998],[-64.10087890624993,-42.395117187500006],[-64.06118164062494,-42.266113281250014],[-64.228515625,-42.21826171874996],[-63.795556640624994,-42.113867187500006],[-63.6298828125,-42.28271484375003],[-63.61733398437502,-42.695800781249986],[-64.03476562499998,-42.88125],[-64.48784179687499,-42.51347656250006],[-64.97070312499997,-42.66630859375002],[-65.02690429687496,-42.75888671874996],[-64.31914062499999,-42.968945312500026],[-64.83994140624998,-43.18886718749998],[-65.25234374999997,-43.571875],[-65.26552734375,-44.2796875],[-65.64760742187502,-44.661425781250045],[-65.63876953125,-45.0078125],[-66.19013671874995,-44.96474609375002],[-66.94140625,-45.25732421875003],[-67.59956054687495,-46.05253906250003],[-67.5064453125,-46.44277343749995],[-66.77685546874994,-47.005859375],[-65.99853515625,-47.09375],[-65.73808593749999,-47.34492187499998],[-65.81430664062495,-47.63818359374996],[-66.22524414062502,-47.826757812500006],[-65.93422851562497,-47.826757812500006],[-65.81005859374997,-47.941113281250026],[-67.46630859375,-48.95175781250004],[-67.68486328125002,-49.2466796875],[-67.82597656249999,-49.91962890625005],[-68.2572265625,-50.104589843749984],[-68.66757812500003,-49.75253906250003],[-68.66162109374997,-49.93574218750005],[-68.97958984375,-50.003027343749984],[-68.59794921874996,-50.00947265624997],[-68.421875,-50.15791015625001],[-69.04477539062495,-50.49912109374998],[-69.35859374999993,-51.028125],[-69.20102539062498,-50.99365234375001],[-69.03530273437497,-51.48896484375002],[-69.46542968750003,-51.58447265625003],[-68.96533203125003,-51.67714843749999],[-68.443359375,-52.35664062500004],[-69.96025390624993,-52.00820312500002],[-71.91865234374995,-51.98955078125004],[-72.40766601562501,-51.54082031250002],[-72.34023437499997,-50.68183593749999],[-72.50981445312496,-50.607519531250034],[-73.15292968749998,-50.73828125000003],[-73.50126953124996,-50.125292968750024],[-73.55419921875,-49.463867187500014],[-73.46157226562497,-49.31386718750001],[-73.13525390625,-49.30068359374999],[-73.03364257812501,-49.014355468750004],[-72.65126953125,-48.84160156249998],[-72.582861328125,-48.47539062499999],[-72.35473632812497,-48.36582031250005],[-72.32832031250001,-48.11005859374998],[-72.517919921875,-47.87636718749998],[-72.34594726562497,-47.49267578124997],[-71.90498046875001,-47.201660156250014],[-71.94023437499999,-46.83125],[-71.69965820312501,-46.6513671875],[-71.87568359374998,-46.160546875],[-71.63154296874998,-45.95371093749998],[-71.74619140624998,-45.57890625],[-71.34931640624995,-45.33193359374995],[-71.5962890625,-44.97919921875004],[-72.04169921874998,-44.90419921875004],[-72.06372070312503,-44.771875],[-71.26113281250002,-44.763085937499966],[-71.15971679687496,-44.56025390625004],[-71.21259765624998,-44.44121093750003],[-71.82001953124993,-44.38310546875],[-71.68007812500002,-43.92958984374998],[-71.90498046875001,-43.34755859374998],[-71.750634765625,-43.237304687499986],[-72.14643554687498,-42.990039062499974],[-72.10820312499993,-42.25185546874995],[-71.75,-42.04677734375001],[-71.91127929687497,-41.650390624999986],[-71.93212890624994,-40.69169921874999],[-71.70898437499997,-40.381738281249994],[-71.81831054687493,-40.17666015624995],[-71.65976562499998,-40.02080078125],[-71.71992187499995,-39.63525390624997],[-71.53945312499997,-39.60244140624995],[-71.40156249999995,-38.93505859374996],[-70.858642578125,-38.60449218750003],[-71.16757812499998,-37.76230468749996],[-71.19218750000002,-36.84365234375004],[-71.05551757812498,-36.52373046874996],[-70.40478515625,-36.06171874999998],[-70.41572265625001,-35.52304687500002],[-70.55517578125,-35.246875],[-70.39316406250003,-35.146875],[-70.05205078124999,-34.30078124999997],[-69.85244140625,-34.224316406250026],[-69.81962890624999,-33.28378906249999],[-70.08486328125002,-33.20175781249998],[-70.02197265625,-32.88457031250002],[-70.36376953125,-32.08349609374997],[-70.25439453125,-31.957714843750026],[-70.585205078125,-31.569433593749963],[-70.51958007812493,-31.1484375],[-70.30908203124994,-31.02265625000004],[-70.15322265625,-30.360937499999963],[-69.95634765624996,-30.35820312500003],[-69.84428710937493,-30.175],[-69.95996093749997,-30.078320312500026],[-70.02680664062501,-29.324023437500017],[-69.82788085937497,-29.10322265624997],[-69.65693359374995,-28.413574218749986],[-69.17441406249998,-27.924707031250037],[-68.84633789062494,-27.153710937499994],[-68.59208984375002,-27.140039062499966],[-68.31865234374999,-26.973242187500006],[-68.59160156249999,-26.47041015624997],[-68.41450195312498,-26.153710937500023],[-68.59208984375002,-25.420019531250034],[-68.38422851562495,-25.091894531249977],[-68.56201171875,-24.74736328125003],[-68.25029296875002,-24.391992187500023],[-67.35620117187503,-24.033789062499963],[-67.00878906249994,-23.00136718750005],[-67.19487304687493,-22.821679687500037],[-66.99111328125,-22.509863281250006],[-66.71171874999999,-22.216308593749986],[-66.36518554687501,-22.113769531249957],[-66.32246093750001,-22.053125],[-66.28212890624997,-21.94746093750001],[-66.24760742187496,-21.83046875],[-66.22016601562495,-21.802539062499974],[-66.174658203125,-21.805664062499986],[-66.09858398437495,-21.83505859375002],[-66.05859375,-21.87949218750002],[-65.86015624999999,-22.019726562499983],[-65.77104492187493,-22.099609375000014],[-65.68618164062497,-22.11025390625005],[-65.51879882812497,-22.094531250000045],[-64.99262695312498,-22.109667968750017],[-64.60551757812499,-22.228808593750045],[-64.52363281250001,-22.37158203125],[-64.47773437499998,-22.485351562499986],[-64.44550781249998,-22.585351562500023],[-64.37397460937498,-22.761035156250017],[-64.32529296875,-22.82763671875],[-64.30791015624993,-22.7953125],[-64.26640625000002,-22.60332031249996],[-63.97612304687502,-22.072558593750003],[-63.92167968749993,-22.028613281250017],[-62.843359375,-21.997265625000026],[-62.62597656250003,-22.29042968749998],[-62.54155273437496,-22.349609374999957],[-62.37250976562498,-22.439160156249997],[-62.21416015624996,-22.612402343750034],[-61.798535156249955,-23.18203125],[-61.084716796875,-23.65644531250001]]]]},"properties":{"name":"Argentina","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[46.490625,38.90668945312498],[46.1144531250001,38.877783203125034],[45.977441406249994,39.24389648437503],[45.76630859375004,39.37846679687499],[45.78447265625002,39.54560546875001],[45.456835937500074,39.494482421875006],[45.15283203125003,39.58266601562502],[45.03164062500005,39.76513671874997],[44.76826171875004,39.70351562500005],[44.28925781250004,40.040380859375006],[43.66621093750004,40.12636718750002],[43.56933593750003,40.48237304687498],[43.72265624999997,40.71953124999999],[43.43945312500003,41.10712890625001],[44.077246093750006,41.182519531249994],[44.81132812500002,41.259375],[45.001367187499994,41.29096679687498],[45.188574218750006,41.14741210937504],[45.07050781250004,41.075585937499966],[45.5875,40.846923828125],[45.37890624999997,40.67358398437506],[45.45439453125002,40.532373046874966],[45.96464843750002,40.233789062499966],[45.8859375000001,40.024853515624955],[45.57978515625004,39.9775390625],[46.202050781249994,39.59448242187503],[46.48144531249997,39.55517578125003],[46.36523437500003,39.402490234374994],[46.584765625000074,39.22368164062499],[46.400292968749994,39.1921875],[46.490625,38.90668945312498]]]},"properties":{"name":"Armenia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-170.72626953125,-14.351171875],[-170.8205078125,-14.312109375],[-170.568115234375,-14.266796875000011],[-170.72626953125,-14.351171875]]]},"properties":{"name":"American Samoa","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[69.2824218750001,-49.05888671875002],[69.16718750000004,-48.88291015624996],[69.36875,-48.89042968749998],[69.2824218750001,-49.05888671875002]]],[[[69.18486328125002,-49.10957031250004],[69.59277343749997,-48.97099609375005],[69.64404296875003,-49.11738281250003],[69.40507812500002,-49.18173828125],[69.5423828125,-49.25566406250005],[70.32021484375005,-49.05859374999996],[70.55546875000007,-49.201464843750024],[70.38613281250005,-49.433984374999966],[70.16582031250002,-49.34296874999998],[69.75996093750004,-49.430175781249986],[69.98642578125006,-49.58164062500003],[70.2477539062501,-49.53066406250003],[70.12431640625002,-49.70439453124999],[69.153125,-49.5296875],[68.99296875000007,-49.704980468750016],[68.81474609375002,-49.69960937499999],[68.88339843750006,-49.16494140624995],[68.76953125000003,-49.06591796875003],[69.00244140624997,-48.661230468750006],[69.13613281250005,-48.86103515625003],[69.05214843750005,-49.08193359375001],[69.18486328125002,-49.10957031250004]]],[[[51.83457031250006,-46.43994140625],[51.65927734375006,-46.37363281249999],[51.7418945312501,-46.32685546874997],[51.83457031250006,-46.43994140625]]]]},"properties":{"name":"Fr. S. Antarctic Lands","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[-61.71606445312503,17.037011718749994],[-61.85966796874996,17.013330078124966],[-61.887109374999966,17.09814453125],[-61.81728515624994,17.168945312500057],[-61.71606445312503,17.037011718749994]]]},"properties":{"name":"Antigua and Barb.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[147.35605468750006,-43.396972656250014],[147.30888671875007,-43.50078125000002],[147.10498046875003,-43.43115234374996],[147.28388671875004,-43.278906250000034],[147.35605468750006,-43.396972656250014]]],[[[145.04296875000003,-40.78671875],[145.28300781250002,-40.76992187500002],[146.31748046875006,-41.16347656250001],[146.72343750000002,-41.07802734375001],[146.84814453124997,-41.16806640624996],[146.98984375000006,-40.99238281249997],[147.45478515625004,-41.00166015624998],[147.62167968750012,-40.844726562499986],[147.87294921875005,-40.87255859374997],[147.96875,-40.779589843750045],[148.215234375,-40.85488281250002],[148.34257812500007,-42.21533203124997],[148.21367187500002,-41.97001953125],[147.92441406250006,-42.5724609375],[147.94541015625006,-43.18183593749997],[147.7858398437501,-43.22001953125002],[147.69892578125004,-43.12255859374997],[147.64794921874997,-43.02060546874999],[147.8,-42.928125],[147.57382812500006,-42.84570312499997],[147.4523437500001,-43.03339843750001],[147.29794921875006,-42.790917968749994],[147.24501953125005,-43.21591796874999],[146.99697265625005,-43.15634765625002],[147.07734375000004,-43.27587890625003],[146.87392578125,-43.6125],[146.54853515625004,-43.50888671874999],[146.04316406250004,-43.547167968749974],[145.99443359375007,-43.37607421875002],[146.20800781249997,-43.31621093749999],[145.8732421875001,-43.29238281250002],[145.48759765625002,-42.92666015625004],[145.19882812500006,-42.23085937500004],[145.46826171874997,-42.492871093750026],[145.51660156249997,-42.3544921875],[145.33105468750003,-42.14707031250002],[145.23486328124997,-42.19697265624997],[145.23818359375,-42.01962890624999],[144.76611328125003,-41.39003906249998],[144.64609375000006,-40.980859375],[144.71855468750002,-40.67226562500002],[145.04296875000003,-40.78671875]]],[[[148.23691406250006,-40.515136718749986],[148.18779296875007,-40.592578125000045],[148.11728515625012,-40.52148437499996],[148.23691406250006,-40.515136718749986]]],[[[144.784375,-40.506738281249966],[144.74804687499997,-40.589453125000034],[144.7833984375001,-40.434863281249974],[144.784375,-40.506738281249966]]],[[[148.32626953125006,-40.30693359375003],[148.40400390625004,-40.486523437500026],[148.02011718750012,-40.40419921874995],[148.32626953125006,-40.30693359375003]]],[[[148.000390625,-39.75761718750003],[148.29736328125003,-39.985742187499966],[148.31357421875012,-40.173535156250026],[148.10566406250004,-40.26210937499995],[147.76718750000012,-39.87031249999998],[148.000390625,-39.75761718750003]]],[[[143.92792968750004,-40.116113281249966],[143.83857421875004,-39.90410156250003],[144.00078125000007,-39.580175781250034],[144.14101562500005,-39.953808593750026],[143.92792968750004,-40.116113281249966]]],[[[145.31445312500003,-38.49082031249996],[145.35507812500012,-38.55703124999995],[145.12841796875003,-38.52763671875],[145.31445312500003,-38.49082031249996]]],[[[137.59648437500007,-35.73867187499998],[137.92890625000004,-35.72607421875],[138.12343750000005,-35.85234375],[137.67089843749997,-35.897949218750014],[137.44843750000004,-36.07480468749999],[137.20957031250012,-35.982421875],[136.7550781250001,-36.03310546875002],[136.540625,-35.89013671875003],[136.63867187499997,-35.74882812500002],[137.33408203125006,-35.59248046875004],[137.58496093749997,-35.620214843750006],[137.59648437500007,-35.73867187499998]]],[[[153.53876953125004,-27.436425781250037],[153.42656250000002,-27.70644531249998],[153.43544921875,-27.40537109375002],[153.53876953125004,-27.436425781250037]]],[[[113.18300781250005,-26.053125],[112.96425781250005,-25.78310546875001],[112.94707031250002,-25.531542968750017],[113.18300781250005,-26.053125]]],[[[153.07744140625002,-25.75078125],[152.97666015625012,-25.551367187499963],[153.03808593750003,-25.193164062500003],[153.22753906249997,-25.00576171875001],[153.14375,-24.814843750000023],[153.25693359375012,-24.72890625],[153.35019531250012,-25.063085937499963],[153.07744140625002,-25.75078125]]],[[[151.14658203125006,-23.49082031250002],[151.24013671875,-23.529687500000037],[151.23828124999997,-23.77578125],[151.03330078125006,-23.530175781250037],[151.14658203125006,-23.49082031250002]]],[[[115.44619140625005,-20.78779296875001],[115.31806640625004,-20.850585937500014],[115.43457031249997,-20.66796875000003],[115.44619140625005,-20.78779296875001]]],[[[149.04375,-20.29150390624997],[148.93886718750005,-20.283691406249986],[148.98105468750012,-20.153515625000026],[149.04375,-20.29150390624997]]],[[[146.27832031249997,-18.23125],[146.29882812499997,-18.48476562500005],[146.09882812500004,-18.251757812500003],[146.27832031249997,-18.23125]]],[[[139.45917968750004,-17.11455078124996],[139.49277343750006,-16.990429687499983],[139.57089843750006,-17.09443359375004],[139.45917968750004,-17.11455078124996]]],[[[139.50781250000003,-16.57304687499996],[139.1595703125,-16.74169921875003],[139.29296875000003,-16.467285156249986],[139.58789062499997,-16.39521484374997],[139.69775390624997,-16.514941406250017],[139.50781250000003,-16.57304687499996]]],[[[137.09365234375005,-15.778125],[136.94267578125002,-15.711718749999989],[137.00957031250007,-15.594824218749977],[137.09365234375005,-15.778125]]],[[[124.59726562500006,-15.40195312500002],[124.52421875000002,-15.421484375],[124.51933593750002,-15.26748046874998],[124.59726562500006,-15.40195312500002]]],[[[125.19882812500006,-14.57949218749998],[125.0912109375,-14.59169921874998],[125.15996093750002,-14.456054687499972],[125.19882812500006,-14.57949218749998]]],[[[136.71464843750002,-13.803906249999983],[136.89082031250004,-13.786621093750014],[136.74531250000004,-14.072656250000023],[136.95078125000006,-14.184277343750026],[136.89433593750002,-14.293066406249977],[136.33544921875003,-14.211816406250037],[136.42470703125,-13.864843749999963],[136.6556640625,-13.675878906250006],[136.71464843750002,-13.803906249999983]]],[[[136.23740234375006,-13.824511718750003],[136.12265625000012,-13.816601562499983],[136.21542968750012,-13.664746093750054],[136.23740234375006,-13.824511718750003]]],[[[136.33867187500007,-11.602343749999989],[136.18027343750006,-11.676757812499957],[136.47929687500002,-11.465917968749991],[136.33867187500007,-11.602343749999989]]],[[[130.45927734375007,-11.679296875000034],[130.60625,-11.816601562500026],[130.04326171875007,-11.787304687500011],[130.19755859375007,-11.658203125],[130.15283203124997,-11.477539062499972],[130.29492187499997,-11.33681640624998],[130.45927734375007,-11.679296875000034]]],[[[130.6188476562501,-11.376074218749991],[131.02304687500006,-11.334375],[131.26826171875004,-11.18984375],[131.53857421874997,-11.436914062500037],[130.95097656250007,-11.926464843750026],[130.51191406250004,-11.617871093749955],[130.38457031250002,-11.1921875],[130.6188476562501,-11.376074218749991]]],[[[136.59853515625,-11.378906249999943],[136.52656250000004,-11.438867187499994],[136.78027343749997,-11.0125],[136.59853515625,-11.378906249999943]]],[[[132.59335937500006,-11.302832031249991],[132.48378906250005,-11.037304687499983],[132.57880859375004,-10.968847656249977],[132.59335937500006,-11.302832031249991]]],[[[143.17890625000004,-11.954492187499966],[143.11025390625,-12.303515625000017],[143.40156250000004,-12.639941406249989],[143.5866210937501,-13.443652343750031],[143.54843750000012,-13.74101562499996],[143.75634765625003,-14.348828124999969],[143.96181640625005,-14.462890625000028],[144.473046875,-14.231835937500023],[144.64804687500006,-14.492480468750017],[145.28769531250006,-14.943164062499989],[145.42607421875002,-16.406152343749966],[145.75478515625,-16.879492187500034],[145.91210937499997,-16.9125],[146.12587890625005,-17.63525390625],[146.03222656249997,-18.272851562500037],[146.3332031250001,-18.55371093749997],[146.38339843750006,-18.97705078124997],[147.13876953125006,-19.39316406250002],[147.41855468750012,-19.378125],[147.7423828125001,-19.770117187499977],[148.759375,-20.28955078125003],[148.88476562499997,-20.480859375],[148.72998046874997,-20.4677734375],[148.68369140625012,-20.58017578124999],[149.20488281250007,-21.125097656249977],[149.45410156249997,-21.57871093750002],[149.70390625000002,-22.440527343750006],[149.82246093750004,-22.389843749999983],[149.97441406250007,-22.55068359374998],[149.94189453125003,-22.30810546875003],[150.07617187500003,-22.16445312499998],[150.54130859375002,-22.55908203125],[150.56855468750004,-22.38398437500004],[150.67246093750012,-22.418164062499983],[150.84316406250005,-23.4580078125],[151.15380859375003,-23.784082031249994],[151.83164062500006,-24.12294921875001],[152.12988281250003,-24.59755859374998],[152.45634765625007,-24.802441406249983],[152.65429687499997,-25.201953125000017],[152.91347656250005,-25.432128906250014],[152.98496093750012,-25.816210937500003],[153.16494140625,-25.964160156250045],[153.11679687500006,-27.194433593750034],[153.57568359375003,-28.24052734374999],[153.6168945312501,-28.673046875],[153.03056640625002,-30.563378906249994],[152.94394531250012,-31.43486328124999],[152.5592773437501,-32.045703125],[152.4704101562501,-32.439062500000034],[152.13652343750002,-32.678125],[152.1642578125001,-32.75742187499996],[151.812890625,-32.90107421875001],[151.29208984375012,-33.580957031249966],[151.28027343750003,-33.92666015625005],[151.12480468750007,-34.00527343749998],[151.23154296875006,-34.0296875],[150.8712890625001,-34.49912109374996],[150.80458984375,-35.01289062500001],[150.19531249999997,-35.83359374999996],[149.93271484375012,-37.528515625000026],[149.480859375,-37.77119140625],[147.87675781250002,-37.93417968749998],[146.8568359375,-38.663476562499966],[146.21748046875004,-38.72744140625004],[146.33662109375004,-38.89423828125],[146.46660156250007,-38.84033203125003],[146.40000000000012,-39.14550781250003],[146.1583984375001,-38.86572265624996],[145.93535156250002,-38.90175781250002],[145.79082031250007,-38.66699218749997],[145.39726562500002,-38.53535156249998],[145.54218750000004,-38.39384765625002],[145.4757812500001,-38.24375],[145.29277343750002,-38.237597656249974],[144.95957031250012,-38.500781250000045],[144.71777343749997,-38.34033203125004],[144.91142578125007,-38.34404296874999],[145.11992187500007,-38.091308593750014],[144.89130859375004,-37.899804687499994],[144.39550781250003,-38.13691406249998],[144.6652343750001,-38.20996093750003],[143.53896484375005,-38.82089843749998],[142.45585937500002,-38.38632812499999],[141.725,-38.27138671875002],[141.5939453125001,-38.38779296875002],[141.42421875,-38.36347656250004],[141.0109375000001,-38.07695312500003],[140.39042968750007,-37.89667968749998],[139.78427734375012,-37.24580078124998],[139.85732421875,-36.662109375],[139.72900390625003,-36.37138671875002],[138.9689453125001,-35.58076171874997],[139.17802734375007,-35.52304687500002],[139.289453125,-35.61132812499997],[139.28251953125002,-35.375390624999966],[138.521875,-35.6423828125],[138.184375,-35.612695312499994],[138.5111328125,-35.02441406249996],[138.48994140625004,-34.76357421875002],[138.0892578125,-34.16982421875002],[137.69169921875002,-35.14296875000004],[136.88359375000007,-35.23974609375004],[137.01425781250012,-34.91582031250003],[137.39101562500005,-34.91328124999997],[137.49384765625004,-34.16113281250003],[137.9318359375001,-33.57910156250003],[137.85234375000007,-33.20078124999996],[137.99257812500005,-33.094238281250014],[137.78320312500003,-32.578125],[137.79091796875,-32.82324218749996],[137.44228515625,-33.1935546875],[137.23730468750003,-33.62949218749999],[136.43066406249997,-34.02998046875004],[135.891015625,-34.660937499999974],[135.96972656249997,-34.98183593749998],[135.7923828125,-34.863281249999986],[135.64755859375006,-34.93964843750001],[135.12304687499997,-34.58574218750003],[135.21679687499997,-34.48730468749996],[135.45,-34.58105468749996],[135.21894531250004,-33.959765625000045],[134.88876953125012,-33.62636718749998],[134.79101562499997,-33.32832031250001],[134.60771484375002,-33.19013671875001],[134.30126953124997,-33.16503906249996],[134.17353515625004,-32.979101562500006],[134.10039062500007,-32.748632812500034],[134.22714843750006,-32.73056640624999],[134.23417968750007,-32.54853515625004],[133.66533203125007,-32.207226562500054],[133.21210937500004,-32.18378906249998],[132.75742187500012,-31.95625],[132.21464843750002,-32.00712890624996],[131.14365234375006,-31.49570312500005],[130.78300781250002,-31.604003906249986],[129.1876953125001,-31.659960937500017],[127.31982421874997,-32.2640625],[125.91718750000004,-32.296972656250034],[124.75878906250003,-32.882714843749994],[124.24375,-33.01523437499999],[123.50683593749997,-33.916210937500054],[122.15097656250006,-33.99179687499999],[122.06113281250006,-33.874414062499966],[121.40507812500007,-33.826757812500034],[119.85410156250012,-33.97470703124998],[119.45058593750005,-34.368261718750034],[118.89531250000007,-34.47988281250004],[118.13554687500002,-34.98662109374999],[117.58193359375005,-35.09775390624998],[116.51718750000012,-34.98789062499998],[115.98671875000005,-34.795019531250034],[115.56503906250012,-34.42578125000003],[115.00878906250003,-34.25585937499997],[114.9938476562501,-33.51533203125],[115.3587890625,-33.63994140624999],[115.68300781250005,-33.19287109375003],[115.6984375000001,-31.694531250000054],[115.07792968750007,-30.560449218750023],[114.85683593750005,-29.14296875],[114.16513671875012,-28.08066406250002],[114.028125,-27.34726562499999],[113.18476562500004,-26.182226562499963],[113.32324218749997,-26.243847656249997],[113.35605468750012,-26.080468750000023],[113.58164062500006,-26.558105468749986],[113.73369140625002,-26.59511718749998],[113.83642578125003,-26.50058593749999],[113.85283203125007,-26.33212890625005],[113.39531250000002,-25.71328125],[113.4513671875001,-25.599121093750014],[113.7130859375001,-25.83076171875004],[113.72373046875006,-26.129785156250037],[113.85390625,-26.01445312499999],[113.99199218750007,-26.32148437500001],[114.09033203124997,-26.393652343749963],[114.21572265625,-26.289453124999966],[114.2142578125,-25.851562500000014],[113.41767578125004,-24.435644531250034],[113.48984375000012,-23.869628906250014],[113.7570312500001,-23.418164062500054],[113.79511718750004,-22.91455078125003],[113.68281250000004,-22.637792968749963],[114.02285156250005,-21.881445312499977],[114.12392578125005,-21.828613281249957],[114.14160156250003,-22.483105468749983],[114.37773437500007,-22.341503906249997],[114.70927734375002,-21.82343749999997],[115.45615234375012,-21.49169921874997],[116.0109375000001,-21.030371093749963],[116.7067382812501,-20.653808593749986],[117.40625,-20.72119140625003],[118.19921875000003,-20.37519531249997],[118.75146484374997,-20.261914062499983],[119.10449218749997,-19.995312500000026],[119.58593750000003,-20.03828125],[120.99794921875,-19.604394531249966],[121.33769531250002,-19.31992187500002],[121.83378906250002,-18.477050781249986],[122.34541015625004,-18.11191406250002],[122.14746093749997,-17.54902343750001],[122.2609375000001,-17.135742187500014],[122.72041015625004,-16.78769531249999],[122.97070312499997,-16.436816406250003],[123.56308593750006,-17.520898437499966],[123.59355468750007,-17.03037109375005],[123.83105468750003,-17.120800781249997],[123.8744140625,-16.918652343750026],[123.4904296875001,-16.49072265624997],[123.62597656249997,-16.416308593750003],[123.60703125000006,-16.224023437499994],[123.72890625,-16.192480468749963],[123.85917968750007,-16.38232421875],[124.04443359374997,-16.264941406249974],[124.30039062500006,-16.388281249999977],[124.77197265624997,-16.40263671874996],[124.40488281250006,-16.298925781249977],[124.41640625,-16.133496093750026],[124.5768554687501,-16.11367187499998],[124.64853515625012,-15.870214843750034],[124.50429687500005,-15.972460937499989],[124.38164062500002,-15.758203125000037],[124.43955078125012,-15.493554687500037],[124.56162109375012,-15.496289062499969],[124.69257812500004,-15.273632812499997],[125.06298828125003,-15.44228515624998],[125.0729492187501,-15.306738281249991],[124.90917968750003,-15.310058593749957],[124.83906250000004,-15.160742187500006],[125.03818359375012,-15.004101562499969],[125.35566406250004,-15.119824218750011],[125.17871093749997,-14.714746093749994],[125.57978515625004,-14.483203124999989],[125.62773437500002,-14.256640625000017],[125.70458984374997,-14.29140625],[125.66162109375003,-14.529492187500011],[125.81953125000004,-14.469140624999966],[125.890625,-14.61796875],[126.0207031250001,-14.49453125],[126.0539062500001,-13.977246093750026],[126.1842773437501,-14.00205078125002],[126.25849609375004,-14.163574218749972],[126.403125,-14.018945312499994],[126.5697265625,-14.160937499999974],[126.7806640625,-13.955175781249977],[126.77558593750004,-13.788476562500037],[126.90322265625,-13.744140624999972],[127.45761718750006,-14.031445312499969],[128.18046875000007,-14.711621093749983],[128.06943359375012,-15.329296874999969],[128.15546875000004,-15.225585937499972],[128.25468750000002,-15.298535156250011],[128.175,-15.043164062500026],[128.57578125000006,-14.774511718750006],[129.05820312500012,-14.884375],[129.21582031249997,-15.160253906249991],[129.26757812500003,-14.871484375000051],[129.63476562499997,-15.139746093749991],[129.637109375,-14.850976562500037],[129.84873046875012,-14.828906249999989],[129.60468750000004,-14.647070312499977],[129.69794921875004,-14.557421875000017],[129.37871093750002,-14.39248046874998],[129.70986328125,-13.979980468749972],[129.83886718749997,-13.572949218749997],[130.25976562500003,-13.30224609375],[130.1349609375001,-13.145507812499957],[130.1681640625001,-12.957421875],[130.39990234374997,-12.68789062499999],[130.61748046875007,-12.646875],[130.62265625000006,-12.43105468749998],[130.8673828125001,-12.557812499999955],[130.87382812500007,-12.367187500000028],[131.29160156250006,-12.067871093749972],[131.43828125000002,-12.27695312500002],[132.06406250000006,-12.28076171875],[132.25322265625007,-12.186035156249972],[132.41103515625,-12.295117187499997],[132.51054687500002,-12.134863281250034],[132.71279296875,-12.1234375],[132.63046875000012,-12.035156249999972],[132.67421875000005,-11.649023437499991],[132.47519531250006,-11.491503906249974],[132.07285156250006,-11.474707031250006],[131.82246093750004,-11.302441406249997],[131.96152343750006,-11.180859375000011],[132.15546875000004,-11.311132812499991],[132.33398437499997,-11.223535156249994],[132.6828125000001,-11.505566406249997],[132.96103515625012,-11.407324218749963],[133.18525390625004,-11.705664062499991],[133.90419921875,-11.832031249999972],[134.4173828125,-12.052734375],[134.73027343750002,-11.984375],[135.02968750000005,-12.19375],[135.2179687500001,-12.221679687499957],[135.92246093750012,-11.825781250000034],[135.70439453125007,-12.209863281250037],[136.00849609375004,-12.19140625],[136.08183593750007,-12.422460937500006],[136.26064453125,-12.433789062499997],[136.32851562500005,-12.305566406249994],[136.24990234375,-12.173046875],[136.44335937499997,-11.951464843749974],[136.7194335937501,-12.226464843749952],[136.89746093749997,-12.243554687499966],[136.94746093750004,-12.34990234374996],[136.53701171875,-12.784277343749991],[136.59433593750012,-13.003808593750051],[136.46103515625006,-13.225195312500034],[136.29414062500004,-13.137988281250031],[135.92734375000012,-13.304296874999977],[135.95449218750005,-13.934863281250017],[135.40517578125005,-14.758203124999966],[135.4533203125001,-14.923144531250003],[136.20537109375002,-15.403417968749963],[136.29140625000005,-15.570117187500003],[136.70488281250007,-15.685253906250011],[136.78466796874997,-15.89423828125004],[137.00214843750004,-15.878320312499994],[137.70371093750006,-16.233007812499963],[138.24501953125005,-16.718359374999977],[139.00986328125006,-16.899316406249994],[139.2484375,-17.328613281249957],[140.03583984375004,-17.702636718749957],[140.51113281250005,-17.62451171875003],[140.83046875,-17.414453125000037],[141.29140625,-16.46347656250002],[141.62548828124997,-15.056640625000014],[141.52294921875003,-14.470117187499994],[141.59433593750006,-14.152832031250014],[141.47255859375,-13.797558593750011],[141.64541015625,-13.259082031250003],[141.61357421875002,-12.943457031250006],[141.92978515625006,-12.73984375],[141.67773437500003,-12.491406250000011],[141.68857421875012,-12.351074218750028],[141.87050781250005,-11.9755859375],[141.96113281250004,-12.054296874999963],[142.168359375,-10.946582031249974],[142.45644531250005,-10.707324218749989],[142.60507812500012,-10.748242187499983],[142.55273437500003,-10.874414062500023],[142.7796875,-11.115332031249977],[142.87255859374997,-11.821386718750034],[143.17890625000004,-11.954492187499966]]],[[[142.2748046875,-10.704785156250011],[142.19140624999997,-10.762011718750031],[142.1310546875001,-10.640625],[142.19794921875004,-10.59199218750004],[142.2748046875,-10.704785156250011]]]]},"properties":{"name":"Australia","childNum":30}},{"geometry":{"type":"Polygon","coordinates":[[[16.953125,48.598828125],[16.86542968750001,48.3869140625],[17.147363281250023,48.00595703125],[17.06660156250001,47.707568359374996],[16.421289062500023,47.674462890624994],[16.676562500000017,47.536035156249994],[16.44287109375,47.39951171875],[16.453417968750017,47.006787109375],[16.093066406250017,46.86328125],[15.957617187500006,46.677636718749994],[14.893261718750011,46.605908203125],[14.5498046875,46.399707031249996],[13.7,46.520263671875],[13.490039062500017,46.555566406249994],[13.3515625,46.557910156249996],[13.16875,46.57265625],[12.479199218750011,46.672509765624994],[12.38828125,46.70263671875],[12.330078125,46.759814453124996],[12.267968750000023,46.835888671875],[12.154101562500017,46.93525390625],[12.130761718750023,46.98476562499999],[12.16552734375,47.028173828125],[12.201269531250006,47.060888671875],[12.197167968750023,47.075],[12.16943359375,47.08212890625],[11.775683593750017,46.986083984375],[11.527539062500011,46.997412109375],[11.433203125,46.983056640624994],[11.244433593750017,46.97568359375],[11.133886718750006,46.936181640624994],[11.0634765625,46.859130859375],[11.025097656250011,46.79697265625],[10.993261718750006,46.777001953124994],[10.92734375,46.769482421875],[10.828906250000017,46.775244140625],[10.759765625,46.793310546875],[10.689257812500017,46.84638671875],[10.579785156250011,46.8537109375],[10.479394531250023,46.855126953124994],[10.452832031250011,46.86494140625],[10.45458984375,46.8994140625],[10.414941406250023,46.964404296874996],[10.349414062500017,46.98476562499999],[10.133496093750011,46.851513671875],[9.580273437500011,47.057373046875],[9.527539062500011,47.270751953125],[9.625878906250023,47.467041015625],[9.524023437500006,47.52421875],[9.748925781250023,47.575537109375],[9.839160156250017,47.552294921874996],[9.971582031250023,47.505322265625],[10.034082031250023,47.473583984375],[10.059863281250017,47.449072265625],[10.066308593750023,47.393359375],[10.200292968750006,47.363427734374994],[10.183007812500023,47.27880859375],[10.369140625,47.366064453125],[10.40390625,47.4169921875],[10.439453125,47.5515625],[10.482812500000023,47.541796875],[10.65869140625,47.547216796875],[10.741601562500023,47.52412109375],[10.873046875,47.52021484375],[11.0419921875,47.393115234374996],[12.185644531250006,47.61953125],[12.203808593750011,47.646728515625],[12.196875,47.70908203125],[12.209277343750017,47.71826171875],[12.268359375000017,47.702734375],[12.353540736607165,47.70264787946429],[12.492553013392856,47.68551897321428],[12.685839843750017,47.669335937499994],[12.771386718750023,47.639404296875],[12.796191406250017,47.60703125],[12.781152343750023,47.5904296875],[12.7828125,47.56416015625],[12.809375,47.5421875],[12.87890625,47.5064453125],[12.968066406250017,47.47568359375],[13.014355468750011,47.478076171874996],[13.031542968750017,47.5080078125],[13.047949218750006,47.579150390624996],[13.054101562500023,47.655126953125],[12.897656250000011,47.721875],[12.953515625000023,47.890625],[12.760351562500006,48.106982421874996],[13.215234375000023,48.301904296874994],[13.322851562500006,48.33125],[13.409375,48.394140625],[13.459863281250023,48.56455078125],[13.4716796875,48.571826171874996],[13.486621093750017,48.581835937499996],[13.636623883928596,48.580904017857144],[13.785351562500011,48.587451171874996],[13.798828125,48.6216796875],[13.802929687500011,48.747509765625],[13.814746093750017,48.766943359375],[14.049121093750017,48.602490234375],[14.691308593750023,48.59921875],[15.066796875000023,48.997851562499996],[16.057226562500006,48.754785156249994],[16.543554687500006,48.796240234375],[16.953125,48.598828125]]]},"properties":{"name":"Austria","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[46.1144531250001,38.877783203125034],[45.4796875000001,39.00625],[44.81718750000002,39.65043945312496],[44.76826171875004,39.70351562500005],[45.03164062500005,39.76513671874997],[45.15283203125003,39.58266601562502],[45.456835937500074,39.494482421875006],[45.78447265625002,39.54560546875001],[45.76630859375004,39.37846679687499],[45.977441406249994,39.24389648437503],[46.1144531250001,38.877783203125034]]],[[[48.572851562500006,41.84448242187503],[49.45673828125004,40.79985351562502],[49.77597656250006,40.583984375],[50.18251953125005,40.50478515625002],[50.3659179687501,40.279492187499955],[49.91884765625005,40.31640625000003],[49.55117187499999,40.19414062499999],[49.3244140625001,39.60834960937501],[49.36279296875003,39.349560546874955],[49.16533203125002,39.03027343750003],[49.013476562500074,39.13398437500001],[48.85449218750003,38.83881835937501],[48.86875,38.43549804687498],[48.59267578125005,38.41108398437498],[47.99648437499999,38.85375976562503],[48.292089843750006,39.01884765624999],[48.10439453125005,39.241113281249994],[48.322167968749994,39.39907226562502],[47.995898437500074,39.683935546875034],[46.490625,38.90668945312498],[46.400292968749994,39.1921875],[46.584765625000074,39.22368164062499],[46.36523437500003,39.402490234374994],[46.48144531249997,39.55517578125003],[46.202050781249994,39.59448242187503],[45.57978515625004,39.9775390625],[45.8859375000001,40.024853515624955],[45.96464843750002,40.233789062499966],[45.45439453125002,40.532373046874966],[45.37890624999997,40.67358398437506],[45.5875,40.846923828125],[45.07050781250004,41.075585937499966],[45.188574218750006,41.14741210937504],[45.001367187499994,41.29096679687498],[45.2171875,41.423193359375006],[45.28095703125004,41.449560546875034],[46.086523437500006,41.183837890625],[46.43095703125002,41.077050781249994],[46.534375,41.08857421875004],[46.62636718750005,41.15966796875006],[46.66240234375002,41.24550781250002],[46.67255859375004,41.28681640625001],[46.61894531250002,41.34375],[46.30546875000002,41.507714843749994],[46.18427734375004,41.70214843749997],[46.42988281250004,41.890966796875006],[46.74931640625002,41.812597656250006],[47.31767578125002,41.28242187500001],[47.79101562499997,41.19926757812502],[48.572851562500006,41.84448242187503]]]]},"properties":{"name":"Azerbaijan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[30.553613281250023,-2.400097656250011],[30.53369140625,-2.42626953125],[30.441992187500006,-2.613476562500011],[30.424218750000023,-2.6416015625],[30.47333984375001,-2.6943359375],[30.42402343750001,-2.824023437500003],[30.433496093750023,-2.87451171875],[30.515039062500023,-2.917578125],[30.604296875000017,-2.935253906250011],[30.70947265625,-2.977246093750011],[30.7802734375,-2.98486328125],[30.811132812500006,-3.116406250000011],[30.79023437500001,-3.274609375000011],[30.4,-3.65390625],[29.947265625,-4.307324218750011],[29.7177734375,-4.455859375],[29.403222656250023,-4.449316406250006],[29.211816406250023,-3.833789062500003],[29.224414062500017,-3.053515625],[29.01435546875001,-2.72021484375],[29.10205078125,-2.595703125],[29.390234375,-2.80859375],[29.698046875000017,-2.794726562500003],[29.8681640625,-2.71640625],[29.93017578125,-2.339550781250011],[30.117285156250006,-2.416601562500006],[30.408496093750017,-2.31298828125],[30.553613281250023,-2.400097656250011]]]},"properties":{"name":"Burundi","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[5.693554687500011,50.774755859375006],[5.993945312500017,50.75043945312504],[6.340917968750006,50.451757812500034],[6.116503906250045,50.120996093749966],[6.08906250000004,50.15458984374996],[6.054785156249977,50.154296875],[5.976269531250068,50.167187499999955],[5.866894531250068,50.08281250000002],[5.817382812500028,50.01269531250003],[5.7880859375,49.96123046875002],[5.744042968749994,49.91962890624998],[5.789746093749983,49.53828125000001],[5.50732421875,49.51088867187502],[4.867578125000051,49.78813476562502],[4.818652343750045,50.153173828125034],[4.545019531250063,49.96025390624999],[4.149316406250023,49.971582031249994],[4.174609375000017,50.24648437500005],[3.689355468750023,50.30605468750002],[3.595410156250068,50.47734374999999],[3.27333984375008,50.53154296875002],[3.10683593750008,50.779443359374994],[2.759375,50.750634765624994],[2.52490234375,51.097119140624955],[3.35009765625,51.37768554687503],[3.43251953125008,51.24575195312505],[3.902050781250011,51.20766601562502],[4.226171875000034,51.38647460937503],[5.03095703125004,51.46909179687498],[5.214160156250045,51.278955078124966],[5.796484375000034,51.153076171875],[5.693554687500011,50.774755859375006]]]},"properties":{"name":"Belgium","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[3.595410156250011,11.6962890625],[3.553906250000011,11.631884765624989],[3.490527343750017,11.49921875],[3.48779296875,11.395410156249994],[3.638867187500011,11.176855468749991],[3.65625,11.154589843749989],[3.6953125,11.1203125],[3.71640625,11.07958984375],[3.7568359375,10.76875],[3.83447265625,10.607421875],[3.771777343750017,10.417626953124994],[3.646582031250006,10.408984374999989],[3.60205078125,10.004541015624994],[3.3251953125,9.778466796874994],[3.044921875,9.083837890624991],[2.774804687500023,9.048535156249997],[2.703125,8.371826171875],[2.68603515625,7.873730468749997],[2.719335937500006,7.616259765624989],[2.7509765625,7.541894531249994],[2.78515625,7.476855468749989],[2.783984375000017,7.443408203124989],[2.765820312500011,7.422509765624994],[2.75048828125,7.395068359374989],[2.756738281250023,7.067919921874989],[2.721386718750011,6.980273437499989],[2.731738281250017,6.852832031249989],[2.7529296875,6.771630859374994],[2.774609375000011,6.711718749999989],[2.753710937500017,6.661767578124994],[2.735644531250017,6.595703125],[2.706445312500023,6.369238281249991],[1.62265625,6.216796875],[1.777929687500006,6.294628906249997],[1.530957031250011,6.992431640625],[1.624707031250011,6.997314453125],[1.600195312500006,9.050048828125],[1.3857421875,9.361669921874991],[1.330078125,9.996972656249994],[0.763378906250011,10.386669921874997],[0.900488281250006,10.993261718749991],[1.4267578125,11.447119140624991],[1.980371093750023,11.418408203124997],[2.38916015625,11.897070312499991],[2.366015625000017,12.221923828125],[2.805273437500006,12.383837890624989],[3.595410156250011,11.6962890625]]]},"properties":{"name":"Benin","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[0.217480468750011,14.911474609374991],[0.163867187500017,14.497216796874994],[0.382519531250011,14.245800781249997],[0.42919921875,13.972119140624997],[0.6181640625,13.703417968750003],[1.201171875,13.357519531249991],[0.988476562500011,13.36484375],[0.9873046875,13.041894531249994],[1.56494140625,12.635400390624994],[2.104589843750006,12.701269531249991],[2.226269531250011,12.466064453125],[2.072949218750011,12.309375],[2.38916015625,11.897070312499991],[1.980371093750023,11.418408203124997],[1.4267578125,11.447119140624991],[0.900488281250006,10.993261718749991],[0.49267578125,10.954980468749994],[-0.068603515625,11.115625],[-0.299462890624994,11.166894531249994],[-0.627148437499983,10.927392578124994],[-1.04248046875,11.010058593749989],[-2.829931640624977,10.998388671874991],[-2.914892578124977,10.592333984374989],[-2.791162109374994,10.432421874999989],[-2.780517578125,9.745849609375],[-2.765966796874977,9.658056640624991],[-2.706201171874994,9.533935546875],[-2.695849609374989,9.481347656249994],[-2.7171875,9.457128906249991],[-2.7666015625,9.424707031249994],[-2.816748046874977,9.425830078124989],[-2.875146484374994,9.500927734374997],[-2.90087890625,9.534619140624997],[-2.948144531249994,9.610742187499994],[-2.98828125,9.687353515624991],[-3.042626953124994,9.720898437499997],[-3.095800781249977,9.752099609374994],[-3.160693359374989,9.849169921874989],[-3.223535156249994,9.895458984374997],[-3.289697265624994,9.882226562499994],[-3.581152343749977,9.92431640625],[-3.790625,9.9171875],[-4.18115234375,9.78173828125],[-4.267187499999977,9.743261718749991],[-4.332226562499983,9.645703125],[-4.406201171874983,9.647998046874989],[-4.526611328125,9.723486328124991],[-4.625830078124977,9.713574218749997],[-4.721777343749977,9.756542968749997],[-5.262304687499977,10.319677734374991],[-5.523535156249977,10.426025390625],[-5.490478515625,11.042382812499994],[-5.250244140625,11.375781249999989],[-5.288134765624989,11.827929687499989],[-4.699316406249977,12.076171875],[-4.4287109375,12.337597656249997],[-4.480615234374994,12.672216796874991],[-4.227099609374989,12.793701171875],[-4.328710937499977,13.119042968749994],[-4.151025390624994,13.306201171875003],[-3.947314453124989,13.402197265624991],[-3.527636718749989,13.182714843749991],[-3.3017578125,13.28076171875],[-3.248632812499977,13.658349609374994],[-2.950830078124994,13.6484375],[-2.873925781249994,13.950732421875003],[-2.586718749999989,14.227587890625003],[-2.113232421874983,14.16845703125],[-1.97304687499999,14.45654296875],[-1.049560546875,14.81953125],[-0.760449218749983,15.047753906249994],[-0.235888671874989,15.059423828124991],[0.217480468750011,14.911474609374991]]]},"properties":{"name":"Burkina Faso","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[91.94921875000003,21.50805664062503],[91.85947265625012,21.532958984375057],[91.90771484374997,21.722949218750017],[91.94921875000003,21.50805664062503]]],[[[91.87382812500002,21.832128906249977],[91.8375976562501,21.750244140625],[91.85068359375012,21.927050781250045],[91.87382812500002,21.832128906249977]]],[[[91.15078125000005,22.175195312499966],[91.04472656250002,22.10517578125001],[91.0794921875,22.519726562499983],[91.15078125000005,22.175195312499966]]],[[[91.55673828125006,22.38222656250005],[91.41132812500004,22.475683593750006],[91.45605468749997,22.61650390624999],[91.55673828125006,22.38222656250005]]],[[[90.77763671875007,22.089306640624983],[90.51503906250005,22.06513671875001],[90.68046875000007,22.327490234375006],[90.50292968749997,22.835351562499994],[90.59648437500002,22.863525390625057],[90.86816406250003,22.48486328125],[90.77763671875007,22.089306640624983]]],[[[88.94072265625002,26.24536132812497],[88.97041015625004,26.250878906250023],[88.95195312500002,26.412109375],[89.01865234375012,26.410253906249977],[89.28925781250004,26.03759765625],[89.54990234375006,26.005273437499994],[89.57275390625003,26.13232421875003],[89.67089843750003,26.21381835937504],[89.8229492187501,25.94140625000003],[89.82490234375004,25.56015625],[89.80087890625012,25.33613281250001],[89.81406250000006,25.305371093749955],[89.86630859375012,25.293164062499955],[90.11962890625003,25.21997070312497],[90.61308593750002,25.16772460937497],[92.04970703125005,25.16948242187499],[92.46835937500006,24.94414062499999],[92.38496093750004,24.848779296875023],[92.25126953125007,24.895068359375045],[92.22832031250002,24.88134765625],[92.22666015625012,24.77099609374997],[92.11748046875002,24.493945312500017],[92.06416015625004,24.374365234375006],[91.84619140624997,24.17529296875003],[91.72656250000003,24.20507812499997],[91.35019531250012,24.06049804687501],[91.16044921875007,23.66064453125],[91.359375,23.06835937500003],[91.43623046875004,23.19990234375001],[91.55351562500002,22.991552734375006],[91.61953125,22.97968750000001],[91.75097656250003,23.053515625000017],[91.75419921875007,23.287304687499955],[91.79003906249997,23.361035156249983],[91.937890625,23.504687500000017],[91.92949218750007,23.598242187499977],[91.92958984375,23.68598632812501],[91.97851562500003,23.691992187499977],[92.04404296875006,23.677783203125017],[92.24609375000003,23.683593750000057],[92.33378906250002,23.242382812499955],[92.36162109375002,22.929003906250074],[92.46445312500006,22.734423828125045],[92.49140625000004,22.685400390625006],[92.5612304687501,22.04804687500001],[92.57490234375004,21.978076171875045],[92.58281250000002,21.940332031249994],[92.5934570312501,21.46733398437499],[92.63164062500002,21.306201171875045],[92.33056640624997,21.439794921874977],[92.17958984375005,21.293115234375023],[92.32412109375,20.791845703125063],[92.0560546875,21.1748046875],[91.86337890625012,22.350488281249966],[91.7970703125001,22.297460937500006],[91.48007812500006,22.884814453125045],[91.2162109375,22.642236328124994],[90.94560546875002,22.597021484375034],[90.65625,23.025488281250006],[90.60400390624997,23.59135742187499],[90.55566406249997,23.42153320312505],[90.26914062500012,23.455859375000017],[90.59091796875012,23.266406250000045],[90.43505859374997,22.751904296874955],[90.61611328125,22.362158203125034],[90.23056640625006,21.82978515625004],[90.07119140625005,21.887255859375017],[90.20957031250006,22.156591796875006],[89.95419921875006,22.022851562500023],[89.91806640625012,22.11616210937501],[89.98515625000002,22.466406250000063],[89.81191406250005,21.983496093750006],[89.56855468750004,21.767431640625034],[89.48320312500007,22.275537109374994],[89.50058593750006,21.914355468750045],[89.35371093750004,21.72109375],[89.09394531250004,21.872753906249983],[89.05,22.274609374999983],[88.92070312500002,22.632031249999955],[88.89970703125002,22.843505859375057],[88.85058593749997,23.040527343750057],[88.928125,23.186621093750063],[88.72441406250002,23.254980468750034],[88.69765625,23.493017578125034],[88.63574218749997,23.55],[88.56738281249997,23.674414062500034],[88.69980468750006,24.002539062500006],[88.71376953125,24.069628906250017],[88.72656250000003,24.186230468749955],[88.7335937500001,24.23090820312501],[88.72353515625,24.27490234375],[88.64228515625004,24.325976562500017],[88.49853515625003,24.34663085937504],[88.3375,24.45385742187503],[88.225,24.460644531249983],[88.14550781250003,24.485791015624955],[88.07910156249997,24.549902343750063],[88.02343750000003,24.62783203125005],[88.03027343749997,24.66445312500005],[88.0451171875001,24.713037109374994],[88.1498046875,24.914648437500034],[88.1888671875,24.92060546875001],[88.27949218750004,24.881933593750034],[88.31337890625005,24.8818359375],[88.37294921875,24.961523437499977],[88.45625,25.18842773437504],[88.57382812500006,25.18789062499999],[88.92978515625012,25.222998046875063],[88.94414062500002,25.290771484375],[88.85478515625002,25.333544921875017],[88.76914062500006,25.490478515625],[88.50244140624997,25.537011718749994],[88.14746093749997,25.811425781250023],[88.1066406250001,25.841113281250045],[88.15078125000005,26.08715820312497],[88.33398437499997,26.257519531249955],[88.44042968749997,26.369482421875034],[88.38623046875003,26.471533203125034],[88.35146484375005,26.482568359374966],[88.36992187500002,26.564111328124994],[88.51826171875004,26.517773437499955],[88.68281250000004,26.291699218749983],[88.94072265625002,26.24536132812497]]]]},"properties":{"name":"Bangladesh","childNum":6}},{"geometry":{"type":"Polygon","coordinates":[[[28.585351562500023,43.742236328124996],[28.465429687500006,43.389306640624994],[28.133691406250023,43.39560546875],[27.92890625000001,43.1861328125],[27.88886718750001,42.74970703125],[27.484765625000023,42.468066406249996],[28.014453125000017,41.969042968749996],[27.47480468750001,41.946875],[27.294921875,42.079541015625],[27.24433593750001,42.09326171875],[27.01171875,42.058642578124996],[26.96875,42.02685546875],[26.884863281250006,41.991845703124994],[26.615332031250006,41.964892578124996],[26.549707031250023,41.896728515625],[26.51142578125001,41.8263671875],[26.3603515625,41.8015625],[26.327246093750006,41.772802734375],[26.31796875,41.744677734374996],[26.320898437500006,41.716552734375],[26.200585937500023,41.743798828124994],[26.107421875,41.72568359375],[26.085546875,41.704150390624996],[26.066015625,41.673242187499994],[26.1435546875,41.521533203124996],[26.155175781250023,41.434863281249996],[26.135351562500006,41.3857421875],[26.06640625,41.35068359375],[25.92333984375,41.311914062499994],[25.784960937500017,41.330419921875],[25.52705078125001,41.2998046875],[25.381933593750006,41.26435546875],[25.25117187500001,41.243554687499994],[24.773730468750017,41.356103515624994],[24.595996093750017,41.442724609375],[24.5693359375,41.4673828125],[24.51826171875001,41.552539062499996],[24.487890625,41.555224609374996],[24.056054687500023,41.527246093749994],[24.03291015625001,41.469091796875],[24.011328125,41.46005859375],[23.635156250000023,41.386767578124996],[23.53583984375001,41.386035156249996],[23.433398437500017,41.398730468749996],[23.3720703125,41.3896484375],[23.23984375,41.3849609375],[23.15595703125001,41.322070312499996],[22.916015625,41.336279296875],[23.00361328125001,41.73984375],[22.836816406250023,41.993603515625],[22.344042968750017,42.31396484375],[22.42207031250001,42.328857421875],[22.445703125000023,42.359130859375],[22.523535156250006,42.440966796874996],[22.53242187500001,42.481201171875],[22.524218750000017,42.50390625],[22.43623046875001,42.6291015625],[22.466796875,42.84248046875],[22.799902343750006,42.985742187499994],[22.976855468750017,43.18798828125],[22.85957031250001,43.25234375],[22.819726562500023,43.300732421875],[22.767578125,43.354150390624994],[22.554589843750023,43.454492187499994],[22.36962890625,43.781298828124996],[22.36542968750001,43.862109375],[22.399023437500006,43.96953125],[22.420800781250023,44.007421875],[22.452529688228115,44.0510441391688],[22.547921095934313,44.113823956634434],[22.688564844478098,44.254306249271906],[23.02851562500001,44.077978515625],[22.868261718750006,43.947900390624994],[22.919042968750006,43.83447265625],[25.4970703125,43.670800781249994],[26.2158203125,44.007275390625],[27.0869140625,44.167382812499994],[27.425390625,44.0205078125],[27.88427734375,43.987353515624996],[28.221972656250017,43.772851562499994],[28.585351562500023,43.742236328124996]]]},"properties":{"name":"Bulgaria","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[50.60722656250002,25.883105468750003],[50.57490234375001,25.806787109374994],[50.465917968750006,25.965527343749997],[50.46992187500001,26.228955078124997],[50.5859375,26.24072265625],[50.60722656250002,25.883105468750003]]]},"properties":{"name":"Bahrain","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-73.02685546874994,21.19238281250003],[-73.16455078125003,20.979150390625023],[-73.68115234375003,20.9755859375],[-73.68037109374995,21.103320312500017],[-73.52309570312497,21.190820312499966],[-73.23535156249997,21.15449218750004],[-73.05849609375,21.313378906249994],[-73.02685546874994,21.19238281250003]]],[[[-73.041015625,22.429052734375006],[-72.74726562500001,22.32739257812497],[-73.16191406250002,22.380712890625006],[-73.041015625,22.429052734375006]]],[[[-74.20673828124998,22.213769531250023],[-74.27690429687499,22.183691406250006],[-73.906396484375,22.527441406250063],[-73.95419921874995,22.71552734375001],[-73.84995117187503,22.731054687500063],[-73.83652343749998,22.538427734374977],[-74.20673828124998,22.213769531250023]]],[[[-74.05751953124997,22.723486328125034],[-74.27460937499995,22.71166992187503],[-74.30703125,22.83959960937497],[-74.05751953124997,22.723486328125034]]],[[[-74.84047851562494,22.894335937500017],[-75.22333984374995,23.165332031250074],[-75.13056640624998,23.267919921875006],[-75.31596679687502,23.668359374999966],[-74.84047851562494,22.894335937500017]]],[[[-75.66455078124997,23.45014648437501],[-76.03710937500003,23.60278320312503],[-76.01044921875001,23.671386718750057],[-75.66455078124997,23.45014648437501]]],[[[-74.42944335937497,24.068066406249955],[-74.55092773437502,23.96894531250001],[-74.52690429687502,24.105078125000034],[-74.42944335937497,24.068066406249955]]],[[[-77.65771484374994,24.249462890624955],[-77.75527343750002,24.163476562500023],[-77.61538085937494,24.216357421875045],[-77.5615234375,24.136816406250006],[-77.57373046875,23.739160156249994],[-77.77128906249999,23.752539062499977],[-77.99990234374994,24.219824218750063],[-77.65771484374994,24.249462890624955]]],[[[-75.30839843749999,24.2],[-75.50322265624996,24.139062500000023],[-75.40893554687503,24.265771484374994],[-75.72666015625,24.68935546875005],[-75.30839843749999,24.2]]],[[[-77.34755859375,25.013867187499983],[-77.56191406249997,25.030029296875],[-77.27558593750001,25.055761718750006],[-77.34755859375,25.013867187499983]]],[[[-77.74384765625001,24.70742187499999],[-77.74521484375,24.463476562500034],[-78.04492187499997,24.287451171875063],[-78.14580078125002,24.493457031250017],[-78.36650390624993,24.544189453125057],[-78.435302734375,24.627587890624994],[-78.24272460937493,24.65380859375],[-78.21137695312495,25.191259765624977],[-77.97529296874998,25.084814453125063],[-77.74384765625001,24.70742187499999]]],[[[-76.64882812499994,25.487402343750006],[-76.34379882812496,25.33203124999997],[-76.12661132812497,25.14052734375005],[-76.16953125,24.6494140625],[-76.319970703125,24.81767578124999],[-76.21376953124994,24.822460937499983],[-76.160400390625,25.119335937499983],[-76.36928710937502,25.312597656250006],[-76.62070312499998,25.43164062500003],[-76.78066406249997,25.426855468750006],[-76.71083984374997,25.564892578124983],[-76.64882812499994,25.487402343750006]]],[[[-78.49287109375001,26.729052734375017],[-77.92246093749998,26.69111328125001],[-78.74365234374994,26.50068359375004],[-78.98564453124996,26.689501953125045],[-78.79804687500001,26.58242187499999],[-78.59711914062493,26.797949218750006],[-78.49287109375001,26.729052734375017]]],[[[-77.22563476562496,25.904199218750023],[-77.40317382812498,26.02470703124996],[-77.24677734374998,26.156347656250034],[-77.238623046875,26.561132812500006],[-77.510595703125,26.845996093750045],[-77.94375,26.90356445312503],[-77.53388671874995,26.903417968750006],[-77.06635742187501,26.530175781249994],[-77.03828124999998,26.333447265624983],[-77.16728515624996,26.240332031250006],[-77.22563476562496,25.904199218750023]]]]},"properties":{"name":"Bahamas","childNum":14}},{"geometry":{"type":"Polygon","coordinates":[[[19.007128906250045,44.86918945312502],[19.348632812500057,44.88090820312502],[19.118457031250074,44.359960937500006],[19.583789062500017,44.04345703125003],[19.245019531249994,43.96503906250004],[19.495117187500057,43.642871093750045],[19.19433593749997,43.533300781250006],[19.164355468750017,43.53544921874999],[19.11279296874997,43.52773437500002],[19.080078125000057,43.51772460937502],[19.0283203125,43.53251953125002],[18.97421875,43.54233398437498],[18.95068359375,43.52666015624999],[19.036718750000034,43.35732421875002],[19.026660156250017,43.292431640624955],[18.97871093750001,43.28540039062503],[18.934667968750006,43.339453125000034],[18.85107421875003,43.34633789062502],[18.749218750000068,43.283544921875006],[18.67421875000008,43.230810546875006],[18.623632812500063,43.027685546875034],[18.488476562500068,43.01215820312498],[18.44384765625003,42.96845703125004],[18.46601562500001,42.777246093749994],[18.54589843750003,42.64160156249997],[18.436328125000017,42.559716796874994],[17.667578125000063,42.897119140624994],[17.585156250000068,42.93837890625005],[17.650488281250063,43.006591796875],[17.27382812500005,43.44575195312501],[16.300097656250017,44.12451171875],[16.10341796875008,44.52099609375006],[15.736621093750045,44.76582031250001],[15.788085937500057,45.17895507812497],[16.028320312500057,45.18959960937502],[16.29335937500005,45.00883789062496],[16.53066406250008,45.21669921875002],[16.918652343749983,45.27656249999998],[17.812792968750074,45.078125],[18.66259765625,45.07744140624999],[18.83642578125,44.883251953124955],[19.007128906250045,44.86918945312502]]]},"properties":{"name":"Bosnia and Herz.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[28.14794921875,56.142919921875],[28.284277343750006,56.055908203125],[29.375,55.938720703125],[29.353417968750023,55.784375],[29.412988281250023,55.724853515625],[29.482226562500017,55.6845703125],[29.63007812500001,55.751171875],[29.6845703125,55.7697265625],[29.744140625,55.77041015625],[29.82392578125001,55.7951171875],[29.881640625000017,55.832324218749996],[29.93701171875,55.845263671874996],[30.04267578125001,55.83642578125],[30.23359375000001,55.84521484375],[30.625585937500006,55.666259765625],[30.906835937500006,55.57001953125],[30.90058593750001,55.397412109375],[30.82099609375001,55.3302734375],[30.810546875,55.306982421875],[30.814453125,55.2787109375],[30.87744140625,55.2234375],[30.958886718750023,55.13759765625],[30.97773437500001,55.08779296875],[30.97773437500001,55.05048828125],[30.829882812500017,54.914990234375],[30.804492187500017,54.8609375],[30.791015625,54.806005859375],[30.798828125,54.783251953124996],[30.984179687500017,54.6958984375],[31.12128906250001,54.648486328124996],[31.152148437500017,54.625341796875],[31.074804687500006,54.491796875],[31.18476562500001,54.452978515625],[31.299121093750017,54.29169921875],[31.403613281250017,54.195947265625],[31.62841796875,54.111181640625],[31.7919921875,54.055908203125],[31.825976562500017,54.030712890625],[31.837792968750023,54.00078125],[31.825292968750006,53.935009765625],[31.783007812500017,53.85498046875],[31.754199218750017,53.81044921875],[31.82080078125,53.791943359375],[31.9921875,53.796875],[32.20039062500001,53.78125],[32.45097656250002,53.6533203125],[32.70429687500001,53.336328125],[32.64443359375002,53.32890625],[32.57802734375002,53.31240234375],[32.469335937500006,53.2703125],[32.14199218750002,53.091162109375],[31.849707031250006,53.106201171875],[31.668261718750017,53.200927734375],[31.417871093750023,53.196044921875],[31.38837890625001,53.184814453125],[31.364550781250017,53.138964843749996],[31.30292968750001,53.060888671875],[31.2587890625,53.01669921875],[31.29511718750001,52.989794921874996],[31.35302734375,52.933447265625],[31.442773437500023,52.86181640625],[31.53515625,52.7982421875],[31.564843750000023,52.759228515625],[31.585546875,52.532470703125],[31.57734375000001,52.312304687499996],[31.6015625,52.284814453125],[31.64990234375,52.26220703125],[31.690625,52.220654296875],[31.758593750000017,52.125830078125],[31.76337890625001,52.10107421875],[31.57373046875,52.10810546875],[31.345996093750017,52.10537109375],[31.21796875000001,52.050244140625],[30.98066406250001,52.046191406249996],[30.845703125,51.953076171875],[30.755273437500023,51.895166015625],[30.667285156250017,51.814111328125],[30.583886718750023,51.68896484375],[30.533007812500017,51.596337890624994],[30.56074218750001,51.531494140625],[30.602343750000017,51.471240234374996],[30.611718750000023,51.40634765625],[30.63251953125001,51.355419921875],[30.449511718750017,51.274316406249994],[30.160742187500006,51.477880859375],[29.346484375000017,51.382568359375],[29.10205078125,51.6275390625],[29.06074218750001,51.625439453125],[29.013085937500023,51.598925781249996],[28.97773437500001,51.57177734375],[28.927539062500017,51.562158203124994],[28.849511718750023,51.540185546874994],[28.73125,51.433398437499996],[28.690234375000017,51.438867187499994],[28.647753906250017,51.45654296875],[28.599023437500023,51.542626953124994],[28.532031250000017,51.562451171875],[27.85859375000001,51.5923828125],[27.7,51.477978515625],[27.689746093750017,51.572412109374994],[27.296289062500023,51.597412109375],[27.270117187500006,51.613574218749996],[27.141992187500023,51.75205078125],[27.074121093750023,51.76083984375],[26.95283203125001,51.75400390625],[26.7734375,51.770703125],[25.785742187500006,51.923828125],[24.361914062500006,51.867529296875],[24.280078125000017,51.774707031249996],[24.126855468750023,51.6646484375],[23.978320312500017,51.59130859375],[23.951171875,51.58505859375],[23.8642578125,51.623974609375],[23.79169921875001,51.637109375],[23.706835937500017,51.64130859375],[23.61376953125,51.525390625],[23.605273437500017,51.517919921875],[23.652441406250006,52.040380859375],[23.175097656250017,52.28662109375],[23.915429687500023,52.770263671875],[23.484667968750017,53.939794921875],[23.55908203125,53.91982421875],[23.733691406250017,53.912255859375],[24.191308593750023,53.950439453125],[24.236621093750017,53.919970703124996],[24.31796875,53.89296875],[24.620703125,53.979833984375],[24.768164062500006,53.974658203124996],[24.78925781250001,53.9982421875],[24.82568359375,54.118994140625],[24.869531250000023,54.145166015625],[25.04609375000001,54.133056640625],[25.111425781250006,54.154931640625],[25.179492187500017,54.2142578125],[25.46113281250001,54.292773437499996],[25.505664062500017,54.264941406249996],[25.52734375,54.215136718749996],[25.497363281250017,54.175244140625],[25.573046875000017,54.139892578125],[25.765234375,54.17978515625],[25.702539062500023,54.29296875],[25.61689453125001,54.310107421874996],[25.557519531250023,54.310693359375],[25.54736328125,54.331835937499996],[25.56757812500001,54.37705078125],[25.62031250000001,54.460400390625],[25.68515625,54.535791015625],[25.72480468750001,54.564257812499996],[25.73164062500001,54.590380859374996],[25.722460937500017,54.71787109375],[25.859277343750023,54.919287109375],[25.964453125,54.94716796875],[26.09296875000001,54.9623046875],[26.175195312500023,55.003271484375],[26.250781250000017,55.12451171875],[26.291796875000017,55.139599609375],[26.601171875,55.130175781249996],[26.6484375,55.20419921875],[26.775683593750017,55.273095703125],[26.760156250000023,55.293359375],[26.68125,55.306445312499996],[26.49531250000001,55.318017578125],[26.457617187500006,55.34248046875],[26.469531250000017,55.371923828125],[26.51923828125001,55.44814453125],[26.56660156250001,55.546484375],[26.5908203125,55.62265625],[26.593554687500017,55.667529296874996],[27.052539062500017,55.83056640625],[27.576757812500006,55.798779296875],[28.14794921875,56.142919921875]]]},"properties":{"name":"Belarus","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-87.8529296875,17.4228515625],[-87.92998046874996,17.283007812500017],[-87.826416015625,17.546289062499994],[-87.8529296875,17.4228515625]]],[[[-88.89404296875,15.890625],[-89.2328125,15.888671875],[-89.16147460937503,17.81484375],[-89.13354492187503,17.970800781249977],[-88.80634765624998,17.965527343749983],[-88.52299804687499,18.445898437500063],[-88.29565429687494,18.47241210937503],[-88.34926757812494,18.358837890624983],[-88.1302734375,18.350732421875023],[-88.08525390624999,18.226123046875045],[-88.27172851562494,17.60986328125],[-88.203466796875,17.5166015625],[-88.31342773437501,16.632763671874983],[-88.89404296875,15.890625]]]]},"properties":{"name":"Belize","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-64.73027343749999,32.29345703125],[-64.86284179687499,32.273876953125],[-64.66831054687499,32.38193359375],[-64.73027343749999,32.29345703125]]]},"properties":{"name":"Bermuda","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-58.15976562499999,-20.164648437500006],[-58.18017578125,-19.81787109375],[-59.09052734375,-19.286230468750006],[-60.00737304687499,-19.29755859375001],[-61.7568359375,-19.6453125],[-62.276318359375,-20.5625],[-62.27666015624999,-21.066015625],[-62.65097656249999,-22.233691406250003],[-62.84335937499999,-21.99726562500001],[-63.92167968749999,-22.028613281250003],[-63.97612304687499,-22.072558593750003],[-64.26640624999999,-22.603320312500003],[-64.30791015624999,-22.7953125],[-64.32529296874999,-22.82763671875],[-64.373974609375,-22.761035156250003],[-64.4455078125,-22.58535156250001],[-64.477734375,-22.4853515625],[-64.5236328125,-22.37158203125],[-64.60551757812499,-22.228808593750003],[-64.992626953125,-22.109667968750003],[-65.518798828125,-22.09453125],[-65.686181640625,-22.11025390625001],[-65.77104492187499,-22.099609375],[-65.86015624999999,-22.01972656250001],[-66.05859375,-21.879492187500006],[-66.098583984375,-21.835058593750006],[-66.17465820312499,-21.8056640625],[-66.220166015625,-21.802539062500003],[-66.24760742187499,-21.83046875],[-66.28212890625,-21.94746093750001],[-66.3224609375,-22.053125],[-66.365185546875,-22.11376953125],[-66.71171874999999,-22.21630859375],[-66.99111328125,-22.509863281250006],[-67.19487304687499,-22.82167968750001],[-67.362255859375,-22.85517578125001],[-67.57993164062499,-22.891699218750006],[-67.79443359375,-22.879492187500006],[-67.87944335937499,-22.82294921875001],[-67.88173828125,-22.49335937500001],[-68.18642578125,-21.61855468750001],[-68.197021484375,-21.30029296875],[-68.558251953125,-20.901953125],[-68.484326171875,-20.62841796875],[-68.74516601562499,-20.45859375],[-68.75932617187499,-20.115527343750003],[-68.560693359375,-19.967089843750003],[-68.559375,-19.90234375],[-68.578271484375,-19.856542968750006],[-68.69619140625,-19.74072265625],[-68.69829101562499,-19.72109375],[-68.57529296874999,-19.56015625],[-68.462890625,-19.43281250000001],[-68.470166015625,-19.409960937500003],[-68.49199218749999,-19.381933593750006],[-68.85795898437499,-19.093359375],[-68.96831054687499,-18.96796875000001],[-68.97885742187499,-18.81298828125],[-69.026806640625,-18.65625],[-69.09228515625,-18.28242187500001],[-69.145458984375,-18.14404296875],[-69.0939453125,-18.05048828125001],[-69.28232421874999,-17.96484375],[-69.31337890625,-17.943164062500003],[-69.5109375,-17.50605468750001],[-69.51108398437499,-17.5048828125],[-69.510986328125,-17.46035156250001],[-69.521923828125,-17.388964843750003],[-69.645703125,-17.24853515625],[-69.62485351562499,-17.2001953125],[-69.020703125,-16.6421875],[-69.03291015625,-16.47597656250001],[-68.8427734375,-16.337890625],[-69.21757812499999,-16.14912109375001],[-69.4208984375,-15.640625],[-69.17246093749999,-15.236621093750003],[-69.37470703125,-14.962988281250006],[-69.35947265624999,-14.7953125],[-68.87089843749999,-14.169726562500003],[-69.07412109375,-13.682812500000011],[-68.97861328124999,-12.880078125000011],[-68.68525390625,-12.501953125],[-69.57861328125,-10.951757812500006],[-69.228515625,-10.955664062500006],[-68.84833984375,-11.011132812500009],[-68.678369140625,-11.11279296875],[-68.39799804687499,-11.01875],[-68.0716796875,-10.703125],[-67.99169921875,-10.674414062500006],[-67.83500976562499,-10.662792968750011],[-67.72177734374999,-10.68310546875],[-67.416943359375,-10.389843750000011],[-66.575341796875,-9.89990234375],[-65.396142578125,-9.71240234375],[-65.298583984375,-10.146777343750003],[-65.31308593749999,-10.253027343750006],[-65.395458984375,-10.392285156250011],[-65.4369140625,-10.449023437500003],[-65.44711914062499,-10.507421875],[-65.33403320312499,-10.892773437500011],[-65.32377929687499,-11.024804687500009],[-65.389892578125,-11.246289062500011],[-65.1857421875,-11.74951171875],[-64.783447265625,-12.059375],[-64.42050781249999,-12.439746093750003],[-63.68857421874999,-12.47802734375],[-63.3466796875,-12.680078125],[-63.06748046874999,-12.669140625000011],[-62.76547851562499,-12.997265625000011],[-62.11801757812499,-13.159765625],[-62.09477539062499,-13.241992187500003],[-61.944726562499994,-13.40625],[-61.87412109374999,-13.470410156250011],[-61.789941406249994,-13.525585937500011],[-61.57568359375,-13.524804687500009],[-61.51157226562499,-13.541210937500011],[-61.41606445312499,-13.526562500000011],[-61.129150390625,-13.49853515625],[-61.07700195312499,-13.48974609375],[-60.506591796875,-13.78984375],[-60.372705078124994,-14.41875],[-60.273339843749994,-15.088769531250009],[-60.402001953124994,-15.0927734375],[-60.583203125,-15.098339843750011],[-60.53046875,-15.143164062500006],[-60.38046875,-15.318261718750009],[-60.242333984374994,-15.479589843750006],[-60.20664062499999,-15.901953125],[-60.18720703125,-16.132128906250003],[-60.17558593749999,-16.269335937500003],[-58.53793945312499,-16.328222656250006],[-58.49658203125,-16.32666015625],[-58.42368164062499,-16.307910156250003],[-58.37539062499999,-16.28359375],[-58.345605468749994,-16.284375],[-58.35039062499999,-16.490820312500006],[-58.470605468749994,-16.650195312500003],[-58.478125,-16.70068359375],[-58.45981445312499,-16.910742187500006],[-58.417382812499994,-17.08056640625],[-58.39599609375,-17.23427734375001],[-58.34775390624999,-17.28212890625001],[-57.99091796875,-17.51289062500001],[-57.905029296875,-17.532324218750006],[-57.832470703125,-17.512109375],[-57.78886718749999,-17.573046875],[-57.780175781249994,-17.67177734375001],[-57.66166992187499,-17.947363281250006],[-57.58647460937499,-18.12226562500001],[-57.49565429687499,-18.214648437500003],[-57.57402343749999,-18.279296875],[-57.725,-18.733203125],[-57.783105468749994,-18.91425781250001],[-57.716796875,-19.044042968750006],[-58.131494140624994,-19.74453125],[-57.860742187499994,-19.979589843750006],[-57.887597656249994,-20.02041015625001],[-57.96015625,-20.04072265625001],[-58.021142578124994,-20.05517578125],[-58.09375,-20.15107421875001],[-58.15976562499999,-20.164648437500006]]]},"properties":{"name":"Bolivia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-48.48588867187493,-27.76699218749998],[-48.554589843749994,-27.81220703125004],[-48.542187499999955,-27.57480468749999],[-48.41489257812495,-27.399609375],[-48.48588867187493,-27.76699218749998]]],[[[-48.584423828124955,-26.401562499999983],[-48.665771484375,-26.289648437500006],[-48.53974609374998,-26.170312500000023],[-48.584423828124955,-26.401562499999983]]],[[[-45.26025390624997,-23.889160156249986],[-45.451416015625,-23.895605468749977],[-45.30234375,-23.727539062500014],[-45.26025390624997,-23.889160156249986]]],[[[-44.12929687499994,-23.14189453124999],[-44.36015624999999,-23.17207031250001],[-44.24287109374998,-23.074121093750037],[-44.12929687499994,-23.14189453124999]]],[[[-38.90356445312497,-13.473437499999974],[-38.97758789062496,-13.523535156249963],[-39.02216796874998,-13.445605468749989],[-38.907128906249994,-13.401074218749983],[-38.90356445312497,-13.473437499999974]]],[[[-38.743847656249955,-13.097070312500037],[-38.668115234374966,-12.880175781249989],[-38.601171875,-12.99257812499998],[-38.743847656249955,-13.097070312500037]]],[[[-44.49931640625002,-2.939648437499983],[-44.597753906250006,-3.037597656249943],[-44.4814453125,-2.717578125000031],[-44.49931640625002,-2.939648437499983]]],[[[-44.88310546874996,-1.317871093749986],[-45.020849609375034,-1.372363281249974],[-44.978662109374966,-1.267285156249983],[-44.88310546874996,-1.317871093749986]]],[[[-51.83251953124997,-1.433789062499969],[-51.938378906249966,-1.452636718749986],[-51.680029296875006,-1.086132812500026],[-51.546044921874966,-0.649609375],[-51.25400390624998,-0.54140625],[-51.16074218749998,-0.666699218750011],[-51.27631835937498,-1.02177734374996],[-51.83251953124997,-1.433789062499969]]],[[[-49.62866210937497,-0.229199218749969],[-49.11699218749999,-0.163574218750014],[-48.39267578124995,-0.29736328125],[-48.83359375,-1.390039062500023],[-49.038476562499994,-1.5140625],[-49.17270507812498,-1.41259765625],[-49.233984375000034,-1.59951171874998],[-49.50664062499999,-1.511621093750023],[-49.587890625,-1.712402343749972],[-49.805126953124955,-1.790234375000026],[-50.06572265625002,-1.703808593749997],[-50.50761718749999,-1.787988281250009],[-50.759765625,-1.240234374999972],[-50.72949218749997,-1.126757812499946],[-50.57695312499999,-1.103125],[-50.709619140624994,-1.07773437499999],[-50.796093749999955,-0.90625],[-50.6455078125,-0.27285156249998],[-50.24824218749998,-0.11640625],[-49.62866210937497,-0.229199218749969]]],[[[-50.65288085937499,-0.131640624999989],[-50.926367187500034,-0.327343749999983],[-51.03808593749994,-0.225878906250003],[-50.84218750000002,-0.050195312500009],[-50.65288085937499,-0.131640624999989]]],[[[-49.44389648437499,-0.112402343749977],[-49.83007812499997,-0.093896484375023],[-49.50346679687496,0.083691406250011],[-49.37231445312497,0.001074218749963],[-49.44389648437499,-0.112402343749977]]],[[[-49.73823242187498,0.26816406250002],[-49.917089843750006,-0.023193359375014],[-50.339453125,0.043359375000051],[-50.27265624999998,0.231738281249974],[-49.73823242187498,0.26816406250002]]],[[[-50.42612304687498,0.139257812500048],[-50.44394531249998,-0.007666015624949],[-50.623925781249966,0.054394531249983],[-50.372753906249955,0.590869140625031],[-50.33227539062497,0.259033203125028],[-50.42612304687498,0.139257812500048]]],[[[-50.152929687500006,0.393017578125054],[-50.26132812499998,0.359179687500003],[-50.281689453124955,0.51650390624998],[-50.05883789062503,0.638037109374963],[-50.152929687500006,0.393017578125054]]],[[[-50.29897460937502,1.93852539062496],[-50.45610351562496,1.910498046875034],[-50.49101562499996,2.128613281249969],[-50.34199218749998,2.14174804687498],[-50.29897460937502,1.93852539062496]]],[[[-59.69970703125,4.353515625],[-59.73857421874993,4.226757812500026],[-59.62021484374998,4.023144531250026],[-59.557763671874966,3.960009765625031],[-59.551123046875034,3.933544921874969],[-59.854394531249994,3.5875],[-59.99433593749998,2.689990234375031],[-59.88964843749997,2.362939453125009],[-59.75522460937495,2.27412109375004],[-59.74350585937498,2.12163085937496],[-59.75175781249996,1.962402343750028],[-59.75620117187498,1.900634765624972],[-59.666601562500006,1.746289062499969],[-59.53569335937499,1.7],[-59.23120117187494,1.376025390625031],[-58.82177734374994,1.201220703125031],[-58.787207031250006,1.208496093750014],[-58.73032226562498,1.247509765625054],[-58.68461914062499,1.28105468749996],[-58.511865234374966,1.284667968749986],[-58.506054687499926,1.438671875000011],[-58.39580078124993,1.481738281249989],[-58.38037109375,1.530224609375011],[-58.34067382812498,1.587548828125051],[-58.03466796875,1.520263671875014],[-57.9828125,1.648437500000014],[-57.87343750000002,1.667285156250045],[-57.79565429687497,1.7],[-57.59443359375001,1.704101562499986],[-57.54575195312495,1.726074218750028],[-57.31748046874998,1.963476562499991],[-57.27558593749998,1.959228515625014],[-57.189599609374966,1.981591796875037],[-57.11889648437494,2.013964843749974],[-57.09267578125002,2.005810546874997],[-57.03759765625,1.936474609374997],[-56.96953124999999,1.91640625],[-56.48281249999994,1.942138671874986],[-56.019921874999966,1.842236328124983],[-55.96333007812498,1.85708007812498],[-55.929638671874955,1.8875],[-55.92163085937503,1.976660156250006],[-55.91533203124999,2.039550781250028],[-55.96196289062496,2.09511718749998],[-56.02006835937499,2.15815429687504],[-56.073632812499994,2.236767578124969],[-56.13769531249997,2.259033203124986],[-56.12939453124997,2.299511718749969],[-56.08779296875002,2.341308593750043],[-56.045117187499955,2.364404296875037],[-56.02036132812498,2.392773437500054],[-55.993505859375006,2.497509765624983],[-55.9755859375,2.515966796875006],[-55.957470703124955,2.52045898437504],[-55.730566406250006,2.406152343750023],[-55.385351562500006,2.440625],[-55.34399414062503,2.488769531249972],[-55.28603515625002,2.49965820312498],[-55.18769531249998,2.547509765625037],[-55.114111328125006,2.539208984375037],[-55.07031249999994,2.548339843750028],[-55.005810546874955,2.592968749999983],[-54.97866210937502,2.597656250000043],[-54.968408203124966,2.548339843750028],[-54.92656249999999,2.497363281250045],[-54.876074218750006,2.450390624999969],[-54.72221679687499,2.441650390624972],[-54.69741210937502,2.359814453124997],[-54.66186523437497,2.327539062499994],[-54.61625976562499,2.326757812500006],[-54.59194335937502,2.313769531250031],[-54.55048828125001,2.293066406249991],[-54.51508789062498,2.245458984374963],[-54.43310546875,2.207519531250057],[-54.13007812499998,2.121044921875026],[-53.76777343749998,2.354833984375048],[-52.90346679687502,2.211523437499977],[-52.58300781250003,2.528906249999977],[-52.327880859375,3.18173828125002],[-51.65253906249998,4.061279296874972],[-51.54707031250001,4.31088867187502],[-51.219921874999955,4.093603515624991],[-50.71440429687502,2.134033203125],[-50.458886718749994,1.829589843749972],[-49.957128906250006,1.65986328125004],[-49.898876953124955,1.16298828124998],[-50.29443359374997,0.835742187500003],[-50.755078124999955,0.222558593749966],[-51.28291015625001,-0.085205078125028],[-51.98081054687498,-1.367968749999974],[-52.22924804687497,-1.3625],[-52.664160156250034,-1.551757812500028],[-51.94755859374996,-1.586718749999946],[-50.89492187500002,-0.937597656249963],[-50.690039062500006,-1.761718749999986],[-50.40322265625002,-2.015527343750009],[-49.999218749999955,-1.831835937499974],[-49.71953125000002,-1.926367187499963],[-49.31367187500001,-1.731738281250003],[-49.63652343749996,-2.656933593750026],[-49.45751953125,-2.504589843749983],[-49.21103515624998,-1.916503906249986],[-48.99130859374998,-1.829785156249997],[-48.71000976562496,-1.487695312500023],[-48.46293945312499,-1.613964843749997],[-48.349804687499926,-1.482128906249955],[-48.46806640624996,-1.393847656250003],[-48.44980468749998,-1.145507812499943],[-48.11508789062498,-0.7375],[-47.557324218749955,-0.669921874999957],[-47.418652343749955,-0.765917968749974],[-47.39809570312502,-0.626660156250026],[-45.45859374999995,-1.35625],[-45.32915039062496,-1.71728515625],[-45.07636718749998,-1.466406249999949],[-44.72114257812498,-1.733496093750006],[-44.778515624999955,-1.798828125],[-44.651269531249966,-1.745800781250026],[-44.537792968749955,-2.052734374999943],[-44.75634765624997,-2.265527343749952],[-44.66240234375002,-2.373242187499955],[-44.435449218749966,-2.168066406249991],[-44.38183593749997,-2.365527343749989],[-44.52011718749998,-2.40546875000004],[-44.589013671874994,-2.573437499999983],[-44.72304687500002,-3.204785156249997],[-44.43754882812496,-2.944433593749977],[-44.228613281250006,-2.471289062499949],[-44.105566406250006,-2.493457031250031],[-44.19267578124999,-2.809570312499943],[-43.93291015624999,-2.583496093749986],[-43.45512695312499,-2.502050781250006],[-43.38007812499998,-2.376074218750006],[-42.93671874999998,-2.465039062500011],[-42.24960937499998,-2.7919921875],[-41.876171874999926,-2.746582031249986],[-41.479931640624955,-2.916503906249972],[-40.474560546874926,-2.795605468750026],[-39.96469726562498,-2.861523437499955],[-38.475781249999955,-3.717480468749997],[-38.04882812500003,-4.216406250000034],[-37.626318359375006,-4.592089843750003],[-37.30146484375001,-4.713085937499969],[-37.174658203125006,-4.912402343749974],[-36.590722656249966,-5.097558593749952],[-35.549414062500006,-5.129394531249957],[-35.39257812499994,-5.250878906250009],[-34.833886718749994,-7.024414062500014],[-34.83466796874998,-7.97148437499996],[-35.34086914062499,-9.230664062499983],[-35.76396484374993,-9.702539062500023],[-35.890820312499926,-9.687011718749957],[-35.88544921875001,-9.84765625],[-36.39833984374994,-10.484082031249983],[-36.768310546875,-10.671679687500017],[-37.18281249999998,-11.06845703125002],[-37.35600585937502,-11.403906249999977],[-37.35922851562495,-11.252539062499963],[-37.68872070312503,-12.1],[-38.019238281249955,-12.591308593750028],[-38.401757812499994,-12.966210937500023],[-38.69096679687502,-12.623925781250009],[-38.85175781250001,-12.790136718750034],[-38.76372070312502,-12.9072265625],[-38.835302734375034,-13.147167968750026],[-39.030908203124994,-13.365136718750023],[-39.08935546875,-13.588183593749989],[-38.988623046875006,-13.61503906249996],[-39.04814453124996,-14.043945312500028],[-38.94233398437498,-14.030664062499994],[-39.05957031249997,-14.654785156249957],[-38.88061523437503,-15.864257812499972],[-39.20288085937503,-17.178125],[-39.154003906249926,-17.70390625000003],[-39.650781249999966,-18.252343750000037],[-39.78330078124998,-19.571777343749986],[-40.001367187499994,-19.74199218750003],[-40.39594726562501,-20.56943359375002],[-40.78925781250001,-20.90605468750003],[-40.954541015624926,-21.237890624999963],[-41.04726562499999,-21.505664062499974],[-41.00029296875002,-21.99902343750003],[-41.70551757812498,-22.30966796874999],[-41.980419921874955,-22.580664062499963],[-42.042382812499966,-22.947070312500003],[-42.95830078124996,-22.96708984374999],[-43.154296875,-22.725195312500006],[-43.22416992187502,-22.991210937500014],[-43.898828124999966,-23.10146484375001],[-43.97382812499998,-23.057324218749983],[-43.675976562499955,-23.00947265625001],[-43.86616210937498,-22.910546875000023],[-44.63725585937496,-23.05546875],[-44.67382812499994,-23.206640625000034],[-44.56967773437495,-23.27402343749999],[-45.32539062499998,-23.59970703124999],[-45.464306640624955,-23.802539062500017],[-45.97207031250002,-23.795507812500006],[-46.86728515624998,-24.236328125000014],[-47.989160156249994,-25.03574218749999],[-47.92939453124998,-25.16826171874999],[-48.20273437499998,-25.41650390625003],[-48.18593749999994,-25.309863281249974],[-48.402490234374994,-25.27207031249999],[-48.47612304687499,-25.44296875],[-48.73173828124993,-25.36875],[-48.6921875,-25.49150390625003],[-48.40117187500002,-25.59736328125001],[-48.665771484375,-25.844335937499963],[-48.576318359374994,-25.935449218749966],[-48.61943359374996,-26.17939453125001],[-48.74829101562503,-26.26865234374999],[-48.55415039062498,-27.195996093749997],[-48.62080078124998,-28.075585937499966],[-48.799658203125006,-28.575292968749977],[-49.27128906249999,-28.87119140625005],[-49.745996093749966,-29.363183593749994],[-50.299511718749955,-30.42578125000003],[-50.92138671874997,-31.25839843750002],[-52.039208984374994,-32.11484374999996],[-52.063232421875,-31.830371093750017],[-51.68066406249994,-31.774609375000026],[-51.272167968749955,-31.476953125000037],[-51.16142578124996,-31.11884765625001],[-50.980078125000034,-31.09423828124997],[-50.94082031249994,-30.903710937499966],[-50.68930664062495,-30.70419921874999],[-50.71630859374994,-30.425976562499983],[-50.58193359375002,-30.438867187500037],[-50.56352539062499,-30.25361328125004],[-51.02495117187493,-30.36865234375003],[-51.29804687499998,-30.03486328124997],[-51.15727539062499,-30.364257812500014],[-51.283056640625034,-30.751562499999963],[-51.35908203124998,-30.674511718749983],[-51.506298828124955,-31.104492187500014],[-51.97246093749999,-31.383789062499986],[-52.19355468749998,-31.885546874999974],[-52.12739257812501,-32.1677734375],[-52.652246093749994,-33.137792968750006],[-53.37060546874997,-33.74218750000003],[-53.39755859374995,-33.737304687500014],[-53.46357421875001,-33.70986328125002],[-53.531347656250034,-33.65546875000004],[-53.531347656250034,-33.1708984375],[-53.511865234374966,-33.10869140625003],[-53.482861328124926,-33.068554687500026],[-53.39521484375001,-33.01035156249998],[-53.31010742187499,-32.927050781249974],[-53.21406249999998,-32.82109375],[-53.12558593749998,-32.73671875],[-53.15727539062496,-32.680078125],[-53.601708984374994,-32.40302734374997],[-53.76171875,-32.05683593749997],[-53.920605468749926,-31.95234375],[-54.220556640625034,-31.855175781249997],[-54.58764648437503,-31.48515625000003],[-55.036035156249994,-31.27900390625004],[-55.091162109375034,-31.31396484374997],[-55.173535156249926,-31.279589843749974],[-55.557324218749955,-30.8759765625],[-55.60302734375003,-30.85078125000001],[-55.62714843749998,-30.858105468749997],[-55.650488281250034,-30.89208984375],[-55.66523437500001,-30.92490234375002],[-55.807763671874994,-31.036718749999977],[-55.87368164062502,-31.069628906250017],[-55.95200195312498,-31.08085937499999],[-56.0046875,-31.079199218750006],[-56.01845703125002,-30.991894531249983],[-55.998974609374955,-30.837207031250003],[-56.4072265625,-30.44746093750001],[-56.83271484374998,-30.107226562499974],[-57.120507812499994,-30.144433593749994],[-57.21445312499995,-30.283398437499983],[-57.55229492187496,-30.261230468749986],[-57.60888671875003,-30.187792968750045],[-57.563867187499994,-30.139941406249974],[-57.40522460937501,-30.03388671875004],[-57.22465820312499,-29.782128906249994],[-56.938623046874994,-29.594824218750034],[-55.890527343749994,-28.370019531249994],[-55.68725585937497,-28.38164062499996],[-55.72548828125002,-28.20410156250003],[-55.10151367187501,-27.866796874999963],[-54.82910156250003,-27.55058593750003],[-54.32700195312495,-27.423535156249997],[-53.83818359375002,-27.121093750000014],[-53.668554687500006,-26.288183593749977],[-53.89116210937499,-25.66884765625001],[-54.15458984374999,-25.523046874999963],[-54.44394531249998,-25.625],[-54.615869140624994,-25.576074218750023],[-54.61054687499998,-25.432714843750034],[-54.47314453124997,-25.22021484375],[-54.43623046875001,-25.12128906250001],[-54.281005859375,-24.30605468750001],[-54.31826171874994,-24.128125],[-54.26689453124996,-24.06582031250001],[-54.241796875,-24.047265624999966],[-54.44023437500002,-23.90175781249998],[-54.62548828125,-23.8125],[-54.98266601562494,-23.974511718749966],[-55.081884765625006,-23.997656249999977],[-55.1943359375,-24.017480468750023],[-55.28691406249993,-24.00429687499999],[-55.366308593750034,-23.99101562499996],[-55.41591796875002,-23.95136718749997],[-55.4423828125,-23.86533203125002],[-55.4423828125,-23.792578125000034],[-55.458886718749966,-23.686718750000054],[-55.51845703124994,-23.627246093750017],[-55.53828124999998,-23.580957031249994],[-55.61767578125,-22.67148437499999],[-55.74663085937499,-22.51269531249997],[-55.753271484375006,-22.410156250000043],[-55.84916992187499,-22.307617187500014],[-55.991406249999926,-22.28115234375005],[-56.18984374999994,-22.28115234375005],[-56.246044921874926,-22.26464843749997],[-56.39487304687498,-22.092675781250023],[-56.44780273437502,-22.07617187500003],[-56.77519531249999,-22.261328125],[-57.955908203125034,-22.109179687500003],[-57.94267578124999,-21.79833984375],[-57.830224609374994,-20.99794921875001],[-57.91513671874998,-20.690332031249966],[-57.97905273437493,-20.65732421874999],[-58.00224609374996,-20.465429687499977],[-58.02539062499997,-20.41582031249999],[-58.05844726562495,-20.38613281249998],[-58.091503906249926,-20.33320312500004],[-58.124609375000034,-20.293457031250014],[-58.13779296874995,-20.237304687500043],[-58.15976562499998,-20.164648437499977],[-58.09375,-20.15107421874997],[-58.021142578124994,-20.05517578124997],[-57.96015625000001,-20.04072265625004],[-57.887597656249966,-20.020410156249994],[-57.860742187499994,-19.97958984375002],[-58.029931640624994,-19.83271484375004],[-58.131494140624994,-19.74453125],[-57.71679687499997,-19.044042968750034],[-57.73085937499999,-18.91718750000004],[-57.783105468749994,-18.91425781249997],[-57.725,-18.73320312500003],[-57.57402343749993,-18.279296875000014],[-57.49565429687496,-18.21464843749999],[-57.58647460937499,-18.122265625],[-57.66166992187493,-17.94736328124999],[-57.78017578125002,-17.67177734374998],[-57.78886718750002,-17.573046875000017],[-57.83247070312501,-17.512109375000037],[-57.90502929687497,-17.53232421874999],[-57.990917968749955,-17.512890625000026],[-58.20556640625,-17.363085937499974],[-58.347753906250006,-17.282128906249994],[-58.39599609374997,-17.234277343750023],[-58.417382812499994,-17.08056640624997],[-58.459814453125006,-16.910742187500006],[-58.478125,-16.70068359375003],[-58.470605468749994,-16.650195312500045],[-58.35039062500002,-16.49082031249999],[-58.34560546875002,-16.284375],[-58.375390624999966,-16.283593749999966],[-58.423681640625034,-16.30791015625003],[-58.49658203124994,-16.32666015625003],[-58.537939453125034,-16.32822265624999],[-60.17558593749996,-16.26933593749999],[-60.187207031249955,-16.132128906250017],[-60.206640625,-15.90195312500002],[-60.242333984374994,-15.479589843750034],[-60.38046874999998,-15.318261718750023],[-60.53046874999998,-15.143164062499977],[-60.58320312499998,-15.098339843749983],[-60.273339843749994,-15.088769531249994],[-60.372705078124994,-14.41875],[-60.506591796875,-13.78984375],[-61.077001953125034,-13.489746093750014],[-61.129150390625,-13.498535156250028],[-61.41606445312502,-13.526562499999969],[-61.511572265625006,-13.541210937500011],[-61.789941406249966,-13.525585937500026],[-61.87412109374998,-13.470410156249983],[-61.944726562499966,-13.40625],[-62.09477539062499,-13.241992187499989],[-62.118017578125006,-13.15976562500002],[-62.765478515625034,-12.99726562500004],[-63.01518554687502,-12.80556640624998],[-63.067480468750006,-12.669140624999983],[-63.34667968749994,-12.68007812499999],[-63.68857421874998,-12.478027343749957],[-64.42050781249995,-12.439746093749974],[-64.783447265625,-12.059375],[-65.18574218749998,-11.749511718749957],[-65.389892578125,-11.246289062500011],[-65.33403320312499,-10.892773437500026],[-65.44711914062503,-10.507421875000034],[-65.4369140625,-10.449023437499946],[-65.39545898437498,-10.392285156250026],[-65.31308593749998,-10.253027343749991],[-65.29858398437497,-10.146777343750017],[-65.39614257812494,-9.712402343749986],[-66.57534179687502,-9.899902343749986],[-67.41694335937495,-10.389843749999969],[-67.72177734374998,-10.683105468749943],[-67.83500976562496,-10.662792968749983],[-67.99169921875,-10.674414062499949],[-68.07167968749994,-10.703125],[-68.39799804687499,-11.01875],[-68.678369140625,-11.11279296875],[-68.84833984374998,-11.01113281249998],[-69.228515625,-10.955664062499963],[-69.46254882812497,-10.948144531250023],[-69.57861328125,-10.951757812499963],[-69.67402343749998,-10.9541015625],[-69.83979492187501,-10.93339843749996],[-69.96035156249997,-10.92988281250004],[-70.06630859374997,-10.982421875],[-70.22006835937503,-11.04765625],[-70.29038085937498,-11.064257812499974],[-70.34199218750001,-11.066699218750017],[-70.39228515624995,-11.058593749999972],[-70.45087890624998,-11.024804687500009],[-70.53325195312496,-10.946875],[-70.59653320312498,-10.976855468750017],[-70.642333984375,-11.010253906249986],[-70.59916992187499,-9.620507812500009],[-70.54111328124998,-9.4375],[-70.60791015625,-9.463671875000031],[-70.63691406249995,-9.478222656249969],[-71.041748046875,-9.81875],[-71.11528320312499,-9.852441406250009],[-71.33940429687499,-9.988574218750031],[-72.18159179687495,-10.003710937500003],[-72.37905273437497,-9.51015625],[-73.20942382812493,-9.411425781249946],[-73.08984375,-9.26572265625002],[-72.970361328125,-9.120117187500028],[-72.97402343750002,-8.9931640625],[-73.07050781249995,-8.8828125],[-73.203125,-8.719335937499991],[-73.30244140624995,-8.654003906250011],[-73.36040039062496,-8.479296875000031],[-73.39814453125001,-8.458984374999986],[-73.54912109374993,-8.34580078125002],[-73.73203125,-7.875390625],[-73.72041015624993,-7.782519531250017],[-73.76689453124999,-7.753515624999963],[-73.82207031249996,-7.738964843750026],[-73.89462890624998,-7.654785156250014],[-73.946875,-7.611230468750023],[-73.98173828124996,-7.58505859375002],[-74.00205078125003,-7.556054687499966],[-73.98173828124996,-7.535742187500006],[-73.95849609374994,-7.506640625000031],[-73.96430664062498,-7.378906250000028],[-73.74946289062498,-7.335351562500037],[-73.72041015624993,-7.309277343749969],[-73.758203125,-7.172753906249952],[-73.79301757812499,-7.135058593750003],[-73.75810546874999,-6.90576171875],[-73.137353515625,-6.4658203125],[-73.23554687500001,-6.098437500000017],[-73.209375,-6.028710937500023],[-73.16289062499996,-5.933398437499974],[-72.97988281249997,-5.634863281249991],[-72.88706054687498,-5.122753906250026],[-72.83193359374994,-5.09375],[-72.69873046874997,-5.067187499999989],[-72.60834960937495,-5.009570312499974],[-72.46899414062497,-4.901269531250023],[-72.35283203124993,-4.786035156249994],[-72.25678710937501,-4.74892578124998],[-71.8447265625,-4.504394531249986],[-70.97368164062499,-4.350488281249994],[-70.86601562499999,-4.229589843749963],[-70.79951171874995,-4.173339843749957],[-70.72158203124997,-4.15888671875004],[-70.53066406249997,-4.167578125000034],[-70.40463867187498,-4.150097656250026],[-70.34365234375,-4.193652343750017],[-70.31689453124994,-4.246972656250037],[-70.23916015625002,-4.30117187499998],[-70.12880859375,-4.286621093749943],[-70.05332031249998,-4.333105468750006],[-70.00395507812496,-4.327246093749963],[-69.97202148437503,-4.30117187499998],[-69.96591796875003,-4.2359375],[-69.94819335937498,-4.200585937500009],[-69.66904296875003,-2.667675781249997],[-69.40024414062498,-1.194921874999977],[-69.63398437500001,-0.50927734375],[-70.07050781249993,-0.13886718750004],[-70.05390624999993,0.578613281250028],[-69.47211914062498,0.72993164062504],[-69.15332031249994,0.65878906250002],[-69.31181640624999,1.050488281249969],[-69.85214843750003,1.05952148437504],[-69.84858398437493,1.708740234375043],[-68.17656249999999,1.719824218749991],[-68.25595703125,1.845507812500017],[-68.19379882812495,1.987011718749983],[-67.93623046874998,1.748486328124969],[-67.40043945312499,2.116699218750028],[-67.11923828124998,1.703613281249986],[-67.082275390625,1.185400390625006],[-66.87602539062499,1.223046875000037],[-66.34711914062498,0.7671875],[-66.06005859375003,0.78535156250004],[-65.68144531249999,0.983447265624989],[-65.52299804687493,0.843408203124966],[-65.55605468750002,0.687988281250014],[-65.47338867187497,0.691259765624977],[-65.10375976562497,1.108105468749983],[-64.20502929687493,1.52949218750004],[-64.00849609374995,1.931591796874969],[-63.43251953124994,2.155566406250045],[-63.389257812500006,2.411914062500045],[-64.04658203124998,2.502392578124997],[-64.22109375000002,3.587402343749972],[-64.66899414062496,4.01181640625002],[-64.788671875,4.276025390625023],[-64.57636718750001,4.139892578125],[-64.19248046874995,4.126855468750009],[-64.02148437500003,3.929101562500051],[-63.33867187500002,3.943896484375045],[-62.85698242187502,3.593457031249969],[-62.71210937499998,4.01791992187502],[-62.41064453124994,4.156738281249972],[-62.153125,4.098388671874986],[-61.82084960937496,4.197021484375],[-61.28007812500002,4.516894531249974],[-61.00283203125002,4.535253906249991],[-60.603857421875006,4.94936523437498],[-60.671972656250034,5.164355468749989],[-60.71196289062499,5.191552734375023],[-60.742138671874926,5.202050781250037],[-60.6513671875,5.221142578125011],[-60.45952148437499,5.188085937500034],[-60.40878906249998,5.21015625],[-60.33520507812497,5.199316406250006],[-60.241650390624926,5.257958984374966],[-60.14204101562498,5.238818359374974],[-59.990673828124955,5.082861328124991],[-60.14863281249998,4.533251953125031],[-59.69970703125,4.353515625]]]]},"properties":{"name":"Brazil","childNum":17}},{"geometry":{"type":"Polygon","coordinates":[[[-59.493310546874994,13.081982421874997],[-59.611328125,13.102099609374989],[-59.6466796875,13.303125],[-59.427636718749994,13.152783203124997],[-59.493310546874994,13.081982421874997]]]},"properties":{"name":"Barbados","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[115.02675781250005,4.899707031249989],[115.1400390625,4.899755859374991],[115.290625,4.352587890624989],[115.10703125000006,4.390429687499974],[115.02675781250005,4.899707031249989]]],[[[115.02675781250005,4.899707031249989],[114.74667968750006,4.718066406250017],[114.84023437500005,4.393212890625009],[114.65410156250007,4.037646484375045],[114.0638671875,4.592675781249966],[114.42441406250006,4.660400390625],[114.99541015625002,5.022363281250023],[115.02675781250005,4.899707031249989]]]]},"properties":{"name":"Brunei","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[91.63193359375003,27.759960937499997],[91.5947265625,27.557666015624996],[91.74306640625002,27.442529296874994],[91.85126953125001,27.438623046874994],[91.95097656249999,27.458300781249996],[91.99082031250003,27.4501953125],[92.044921875,27.364697265624997],[92.08339843750002,27.290625],[92.03115234375002,27.214306640624997],[92.00253906250003,27.147363281249994],[91.99228515625003,27.099902343749996],[91.99863281250003,27.079296875],[92.03085937500003,27.040820312499996],[92.06816406249999,26.9751953125],[92.07343750000001,26.91484375],[92.04970703125002,26.874853515625],[91.99833984374999,26.85498046875],[91.84208984374999,26.852978515624997],[91.67158203125001,26.802001953125],[91.517578125,26.807324218749997],[91.45585937499999,26.866894531249997],[91.4267578125,26.867089843749994],[91.28652343750002,26.789941406249994],[90.73964843750002,26.771679687499997],[90.34589843750001,26.890332031249997],[90.2060546875,26.847509765625],[90.12294921875002,26.754589843749997],[89.94316406249999,26.723925781249996],[89.76386718750001,26.7015625],[89.60996093750003,26.719433593749997],[89.58613281250001,26.778955078124994],[89.33212890625003,26.8486328125],[89.14824218749999,26.816162109375],[89.04091796875002,26.865039062499996],[88.85761718750001,26.961474609374996],[88.73876953125,27.175585937499996],[88.76035156250003,27.218115234375],[88.88164062499999,27.2974609375],[88.89140624999999,27.316064453124994],[88.94755859374999,27.464013671874994],[89.48066406250001,28.059960937499994],[89.53691406249999,28.107421875],[89.65273437500002,28.15830078125],[89.74980468749999,28.188183593749997],[89.81689453125,28.256298828124997],[89.89785156250002,28.294140625],[89.98105468750003,28.311181640624994],[90.34824218750003,28.243945312499996],[90.36298828125001,28.216503906249997],[90.33310546875003,28.093994140625],[90.35273437500001,28.080224609374994],[90.47734374999999,28.070849609374996],[90.63007812500001,28.078564453124997],[90.71572265625002,28.071728515624997],[91.02080078124999,27.970068359375],[91.07773437500003,27.974462890625],[91.22587890624999,28.071240234374997],[91.27304687500003,28.078369140625],[91.30683593750001,28.064013671874996],[91.36757812500002,28.021630859374994],[91.64189453124999,27.923242187499994],[91.63193359375003,27.759960937499997]]]},"properties":{"name":"Bhutan","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[25.2587890625,-17.793554687500006],[25.242285156250006,-17.969042968750003],[25.939355468750023,-18.93867187500001],[26.168066406250006,-19.53828125000001],[27.17822265625,-20.10097656250001],[27.28076171875,-20.47871093750001],[27.679296875,-20.503027343750006],[27.66943359375,-21.064257812500003],[28.014062500000023,-21.55419921875],[29.02558593750001,-21.796875],[29.042382812500023,-22.018359375],[29.237207031250023,-22.07949218750001],[29.315234375000017,-22.15771484375],[29.36484375,-22.193945312500006],[29.1298828125,-22.21328125],[29.013476562500017,-22.278417968750006],[28.94580078125,-22.395117187500006],[28.83984375,-22.480859375],[28.21015625000001,-22.693652343750003],[27.812597656250006,-23.108007812500006],[27.7685546875,-23.14892578125],[27.085546875,-23.577929687500003],[26.835058593750006,-24.240820312500006],[26.617773437500006,-24.3955078125],[26.451757812500006,-24.58271484375001],[26.39716796875001,-24.613574218750003],[26.130859375,-24.671484375],[26.031835937500006,-24.702441406250003],[25.912109375,-24.74746093750001],[25.518164062500006,-25.66279296875001],[25.21337890625,-25.75625],[24.33056640625,-25.74287109375001],[24.19296875,-25.632910156250006],[23.969531250000017,-25.626074218750006],[23.89375,-25.600878906250003],[23.389257812500006,-25.29140625],[23.148730468750017,-25.288671875],[22.878808593750023,-25.45791015625001],[22.59765625,-26.13271484375001],[22.548632812500017,-26.17841796875001],[22.47089843750001,-26.219042968750003],[22.217578125000017,-26.38886718750001],[22.090917968750006,-26.580175781250006],[22.01093750000001,-26.635839843750006],[21.78828125000001,-26.710058593750006],[21.738085937500017,-26.80683593750001],[21.694726562500023,-26.840917968750006],[20.73984375,-26.84882812500001],[20.641406250000017,-26.7421875],[20.79316406250001,-25.915625],[20.4306640625,-25.147070312500006],[19.98046875,-24.77675781250001],[19.977343750000017,-22.00019531250001],[20.9794921875,-21.9619140625],[20.97412109375,-18.31884765625],[23.219335937500006,-17.99970703125001],[23.599707031250006,-18.4599609375],[24.243945312500017,-18.0234375],[24.530566406250017,-18.052734375],[24.909082031250023,-17.821386718750006],[25.2587890625,-17.793554687500006]]]},"properties":{"name":"Botswana","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[22.86005859375001,10.919677734375],[23.646289062500017,9.822900390624994],[23.62265625,9.340625],[23.46826171875,9.11474609375],[23.53730468750001,8.815820312499994],[24.147363281250023,8.665625],[24.291406250000023,8.29140625],[24.853320312500017,8.137548828124991],[25.20039062500001,7.807910156249989],[25.18134765625001,7.557226562499991],[25.27890625,7.427490234375],[26.36181640625,6.635302734374989],[26.30859375,6.455322265625],[26.514257812500006,6.069238281249994],[27.143945312500023,5.722949218749989],[27.4033203125,5.109179687499989],[27.071875,5.199755859374989],[26.822070312500017,5.062402343749994],[25.52509765625001,5.31210937499999],[25.065234375000017,4.967431640624994],[24.31982421875,4.994140625],[23.41718750000001,4.663134765624989],[22.864550781250017,4.723876953125],[22.422167968750017,4.134960937499997],[20.55810546875,4.462695312499989],[20.226367187500017,4.829638671874989],[19.806542968750023,5.089306640624997],[19.5009765625,5.127490234374989],[19.06855468750001,4.891406249999989],[18.594140625000023,4.346240234374989],[18.6103515625,3.478417968749994],[18.474414062500017,3.622998046874997],[18.160937500000017,3.499804687499989],[17.491601562500023,3.687304687499989],[16.610742187500023,3.50537109375],[16.468554687500017,2.831738281249997],[16.183398437500017,2.270068359374989],[16.0634765625,2.90859375],[15.128710937500017,3.826904296875],[15.063574218750006,4.284863281249997],[14.73125,4.602392578124991],[14.56298828125,5.279931640624994],[14.616894531250011,5.865136718749994],[14.43115234375,6.038720703124994],[14.7392578125,6.27978515625],[15.206738281250011,7.206152343749991],[15.480078125,7.523779296874991],[15.957617187500006,7.507568359375],[16.37890625,7.683544921874997],[16.545312500000023,7.865478515625],[16.784765625,7.550976562499997],[17.6494140625,7.98359375],[18.56416015625001,8.0458984375],[19.108691406250017,8.656152343749994],[18.886035156250017,8.836035156249991],[18.95625,8.938867187499994],[20.342089843750017,9.127099609374994],[20.773242187500017,9.405664062499994],[21.682714843750006,10.289843749999989],[21.771484375,10.642822265625],[22.49384765625001,10.996240234374994],[22.86005859375001,10.919677734375]]]},"properties":{"name":"Central African Rep.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-59.78759765624997,43.939599609374994],[-60.11748046874996,43.95336914062506],[-59.727148437500006,44.002832031249994],[-59.78759765624997,43.939599609374994]]],[[[-66.7625,44.68178710937502],[-66.8970703125,44.62890625],[-66.80214843749994,44.80537109374998],[-66.7625,44.68178710937502]]],[[[-60.961572265624966,45.48994140625001],[-61.081738281249926,45.55781249999998],[-60.91245117187498,45.56728515625005],[-60.961572265624966,45.48994140625001]]],[[[-73.69531249999997,45.58549804687502],[-73.85771484375002,45.573583984375006],[-73.57236328124998,45.69448242187502],[-73.69531249999997,45.58549804687502]]],[[[-73.56650390625003,45.469091796875034],[-73.960546875,45.44140624999997],[-73.68745117187498,45.561425781249994],[-73.47607421874997,45.704736328124994],[-73.56650390625003,45.469091796875034]]],[[[-61.10517578124998,45.94472656250002],[-60.86523437499997,45.983496093750006],[-61.05903320312501,45.70336914062497],[-60.73789062499995,45.75141601562498],[-60.46059570312494,45.96870117187501],[-60.733300781249994,45.956591796875045],[-60.297949218750034,46.31123046874998],[-60.22646484374994,46.19555664062506],[-59.86503906249993,46.159521484375006],[-59.8421875,45.941552734374994],[-60.67294921874995,45.59082031250006],[-61.28369140624994,45.573876953124966],[-61.44980468749995,45.71621093750002],[-61.40864257812501,46.17036132812498],[-60.87016601562499,46.796777343749966],[-60.40820312500003,47.00351562499998],[-60.332910156249966,46.737011718749955],[-60.49453125000002,46.270263671875],[-61.10517578124998,45.94472656250002]]],[[[-63.811279296875,46.46870117187501],[-63.68144531249993,46.561914062499994],[-63.12939453125,46.422216796875034],[-62.02373046874999,46.42158203125001],[-62.52607421875001,46.20288085937503],[-62.531347656250034,45.977294921875],[-63.02207031249998,46.06660156249998],[-62.89453125000003,46.12358398437496],[-63.056347656249955,46.22392578124996],[-62.97846679687498,46.31635742187498],[-63.21347656249998,46.15986328124998],[-63.641015624999966,46.23046874999997],[-63.758642578125034,46.397607421874994],[-64.11083984375003,46.425439453124994],[-64.13603515624999,46.59970703125006],[-64.388037109375,46.640869140625],[-63.99355468750002,47.06157226562502],[-64.08789062499997,46.77543945312499],[-63.811279296875,46.46870117187501]]],[[[-61.91411132812496,47.284521484375034],[-61.77255859374998,47.25981445312499],[-62.00830078124994,47.23427734375002],[-61.924707031249966,47.425146484375006],[-61.3955078125,47.63764648437504],[-61.91411132812496,47.284521484375034]]],[[[-54.227148437500034,47.44135742187501],[-54.32597656250002,47.408105468749994],[-54.12817382812494,47.646826171875034],[-54.227148437500034,47.44135742187501]]],[[[-74.70888671874997,45.0038574218751],[-73.55810546875,45.425097656250045],[-73.1595703125,46.01005859375002],[-72.10927734374997,46.55122070312504],[-71.26118164062495,46.75625],[-70.51948242187501,47.032519531250045],[-69.47104492187503,47.96728515625006],[-68.23818359374994,48.62641601562504],[-66.17817382812493,49.21313476562503],[-64.83632812499994,49.191748046875006],[-64.2162109375,48.873632812500034],[-64.51372070312493,48.84111328124999],[-64.24609374999994,48.69111328124998],[-64.34882812500001,48.423193359375034],[-65.259423828125,48.02124023437503],[-65.92670898437495,48.188867187499994],[-66.70439453125002,48.0224609375],[-66.35961914062494,48.06064453125006],[-65.84941406250002,47.91103515625005],[-65.60722656249996,47.67001953125006],[-65.00166015624995,47.84682617187502],[-64.70322265625,47.72485351562503],[-64.91220703125003,47.36865234375003],[-65.31889648437502,47.101220703124994],[-64.831396484375,47.06079101562503],[-64.88251953124993,46.822851562500034],[-64.54150390625,46.240332031250034],[-63.91591796875002,46.165820312500045],[-63.831933593749966,46.107177734375],[-64.05639648437503,46.021337890625006],[-63.70288085937494,45.858007812500034],[-62.70068359374997,45.740576171875006],[-62.750097656250006,45.64824218750002],[-62.483056640624966,45.62182617187506],[-61.955517578124955,45.86816406249997],[-61.776513671874994,45.655615234375006],[-61.49228515624998,45.68701171875],[-61.350488281249966,45.57368164062501],[-61.28198242187494,45.441064453124994],[-61.46098632812502,45.36669921875003],[-61.03154296875002,45.29174804687506],[-63.306298828124994,44.64257812500003],[-63.60400390624997,44.68320312500006],[-63.60976562499999,44.47998046875006],[-63.999707031249926,44.64492187499999],[-64.10087890624993,44.487451171874966],[-64.1669921875,44.58666992187503],[-64.28608398437493,44.55034179687499],[-64.27568359374993,44.33408203124998],[-65.48168945312497,43.51806640625],[-65.73813476562498,43.56074218750001],[-65.88691406250001,43.79521484374999],[-66.125732421875,43.813818359375034],[-66.19306640624995,44.143847656250045],[-65.86801757812498,44.56879882812501],[-66.14638671875002,44.43593750000005],[-66.090625,44.50493164062499],[-64.44814453125,45.33745117187502],[-64.13549804687497,45.023046875],[-64.09316406249997,45.21708984375002],[-63.368017578125034,45.36479492187502],[-64.87314453124998,45.35458984375006],[-64.31464843749998,45.83569335937503],[-64.48222656250002,45.80634765624998],[-64.63271484375002,45.94663085937506],[-64.77851562499998,45.63842773437497],[-65.88447265624995,45.22290039062506],[-66.10976562500002,45.316601562499955],[-66.02656249999995,45.417578125],[-66.43984374999994,45.09589843750001],[-66.87246093749997,45.067285156249966],[-67.12485351562498,45.16943359375],[-67.366943359375,45.17377929687498],[-67.43266601562496,45.603125],[-67.80224609374994,45.7275390625],[-67.806787109375,47.08281249999999],[-68.23549804687502,47.34594726562503],[-68.93720703124998,47.21123046875002],[-69.0501953125,47.426611328125034],[-69.24287109374998,47.46298828124998],[-70.00771484375002,46.70893554687501],[-70.296240234375,45.90610351562506],[-70.86503906249999,45.27070312500001],[-71.327294921875,45.29008789062496],[-71.51752929687495,45.00756835937497],[-74.663232421875,45.00390625000003],[-74.70888671874997,45.0038574218751]]],[[[-126.09208984374995,49.35400390625003],[-126.06401367187499,49.26362304687501],[-126.22963867187498,49.29565429687506],[-126.09208984374995,49.35400390625003]]],[[[-54.55439453125001,49.5888671875],[-54.786523437499966,49.496142578125045],[-54.86357421875002,49.576074218749966],[-54.55439453125001,49.5888671875]]],[[[-54.093701171874955,49.74443359374999],[-53.98066406250001,49.66196289062498],[-54.28613281249997,49.595361328124994],[-54.27763671875002,49.71147460937502],[-54.093701171874955,49.74443359374999]]],[[[-126.64121093749999,49.605810546875006],[-126.93857421874999,49.71845703125004],[-126.92583007812497,49.837744140625006],[-126.73813476562502,49.84365234375005],[-126.64121093749999,49.605810546875006]]],[[[-61.801123046875034,49.093896484374966],[-63.04150390624994,49.224951171875034],[-64.485205078125,49.88696289062497],[-64.13144531249995,49.94165039062503],[-62.858544921874966,49.70546875000005],[-61.817138671875,49.28354492187498],[-61.69614257812495,49.139013671875006],[-61.801123046875034,49.093896484374966]]],[[[-125.18413085937497,50.09711914062498],[-125.301171875,50.4140625],[-125.07402343750002,50.22065429687501],[-125.18413085937497,50.09711914062498]]],[[[-127.19731445312495,50.640380859375],[-125.48208007812501,50.316796874999966],[-124.83061523437499,49.53007812500002],[-123.99580078125,49.22402343750002],[-123.49702148437498,48.58208007812499],[-123.38989257812501,48.67021484374999],[-123.31064453125003,48.41103515625002],[-123.57314453124995,48.32280273437499],[-123.91694335937501,48.386572265625034],[-125.12070312500002,48.76079101562496],[-124.84965820312496,49.02827148437501],[-124.81264648437497,49.212646484375],[-124.92734374999998,49.01420898437499],[-125.489453125,48.933789062499955],[-125.82851562499998,49.09184570312499],[-125.64423828125001,49.18579101562506],[-125.95166015625001,49.24804687500003],[-125.93540039062499,49.401464843750006],[-126.51914062499999,49.396777343750045],[-126.54189453125001,49.590478515624966],[-126.13408203124997,49.672314453124955],[-126.52524414062499,49.71958007812498],[-126.90332031250001,49.94414062499999],[-127.114306640625,49.879736328125034],[-127.24980468749999,50.13798828124996],[-127.34941406249995,50.05195312500001],[-127.46713867187503,50.163427734375006],[-127.86391601562495,50.12773437500002],[-127.90585937499998,50.44521484375002],[-127.48652343749998,50.404638671875034],[-127.46591796874996,50.58310546875006],[-128.05834960937494,50.498486328124955],[-128.34604492187503,50.744238281250006],[-127.91806640624998,50.86054687500001],[-127.19731445312495,50.640380859375]]],[[[-55.45874023437494,51.53652343750005],[-55.58339843749994,51.38857421875002],[-56.031103515625034,51.328369140625],[-55.8,51.033300781250034],[-56.732324218749966,50.007714843749994],[-56.822167968749966,49.613476562499955],[-56.179394531249955,50.114990234375],[-56.161279296874994,49.94013671874998],[-55.50292968749997,49.98315429687503],[-56.14018554687496,49.61914062500006],[-55.869824218749955,49.67016601562506],[-56.08730468750002,49.45195312499999],[-55.375927734374955,49.48974609374997],[-55.34384765624998,49.37290039062506],[-55.22954101562496,49.508154296875006],[-55.35317382812502,49.07944335937506],[-54.50219726562503,49.52734375],[-54.44824218749997,49.329443359375006],[-53.957714843749955,49.44184570312498],[-53.61943359374996,49.321630859375006],[-53.57343750000001,49.141210937500034],[-54.16127929687494,48.787695312500034],[-53.852880859375006,48.81132812499996],[-53.966015624999955,48.70668945312505],[-53.70634765624999,48.65551757812503],[-54.11445312499998,48.393603515625045],[-53.027587890625,48.634716796874955],[-53.1357421875,48.40185546875003],[-53.60976562500002,48.20771484375001],[-53.56943359374998,48.088085937499955],[-53.869580078124926,48.019677734374966],[-53.63823242187496,48.01464843750003],[-53.863671874999966,47.787011718749994],[-53.67236328125,47.64824218749999],[-53.28271484375,47.99785156249996],[-52.86601562499993,48.11298828124998],[-53.16982421875002,47.51210937500005],[-52.945019531249955,47.55283203124998],[-52.782421874999955,47.769433593749966],[-52.653662109375034,47.549414062500006],[-53.11484375,46.65581054687502],[-53.32304687499996,46.71835937499998],[-53.589794921874955,46.638867187499955],[-53.59736328124998,47.14599609374997],[-54.00957031249993,46.839599609375],[-54.173730468749994,46.88037109375003],[-53.84951171875002,47.440332031249994],[-53.98901367187503,47.756201171875034],[-54.191845703124955,47.85981445312501],[-54.488134765625006,47.40385742187502],[-54.47392578124996,47.54707031249998],[-54.856640624999955,47.385009765625],[-55.31572265624993,46.905712890624955],[-55.78852539062498,46.86723632812502],[-55.91923828124996,47.01689453124996],[-55.49150390624996,47.16064453125003],[-54.78461914062501,47.664746093749955],[-55.366308593750034,47.66108398437501],[-55.57612304687498,47.46523437499999],[-56.12724609374999,47.50283203125002],[-55.867089843749994,47.592333984375045],[-55.85791015625,47.81918945312498],[-56.774121093749955,47.56499023437499],[-58.33686523437501,47.73085937500002],[-59.11694335937494,47.57070312499999],[-59.32065429687498,47.736914062500006],[-59.272070312500034,47.99555664062504],[-58.330224609374994,48.52211914062502],[-59.16767578124998,48.558496093749966],[-58.84179687500003,48.74643554687498],[-58.906445312499955,48.65019531249999],[-58.716455078124994,48.59804687500002],[-58.403662109375034,49.08432617187498],[-57.99052734374996,48.987939453124966],[-58.09892578124993,49.07744140624999],[-57.98007812499998,49.229638671874994],[-58.19091796875003,49.25874023437498],[-58.21337890625,49.38666992187501],[-58.01582031249998,49.54248046874997],[-57.79130859374999,49.48999023437503],[-57.92617187499999,49.700830078124994],[-57.4326171875,50.50581054687504],[-57.179589843749966,50.614843750000034],[-57.29799804687502,50.69873046874997],[-57.03593750000002,51.01083984374998],[-56.68242187500002,51.332763671875],[-56.025585937499955,51.56835937500006],[-55.6904296875,51.471337890624994],[-55.666406249999966,51.57890624999999],[-55.45874023437494,51.53652343750005]]],[[[-127.92465820312498,51.47387695312497],[-128.14877929687498,51.62670898437503],[-128.03173828125006,51.708398437499966],[-127.92465820312498,51.47387695312497]]],[[[-79.38427734374997,51.951953125000045],[-79.64375,52.01005859374996],[-79.27128906249996,52.086816406249966],[-79.38427734374997,51.951953125000045]]],[[[-128.36875,52.40087890625],[-128.43979492187503,52.696386718750006],[-128.24726562499998,52.784375],[-128.36875,52.40087890625]]],[[[-80.73168945312494,52.74726562499998],[-82.03925781249998,53.04990234374998],[-81.84731445312494,53.18627929687497],[-81.135595703125,53.20581054687503],[-80.73168945312494,52.74726562499998]]],[[[-131.7537109375,53.195556640625],[-131.63466796874997,52.92216796874999],[-131.97177734374998,52.87983398437498],[-131.45522460937502,52.70170898437502],[-131.59057617187494,52.578222656250006],[-131.25971679687495,52.415917968749966],[-131.31992187499998,52.30307617187498],[-131.142626953125,52.291113281250034],[-131.221533203125,52.15361328124999],[-132.16508789062493,52.783300781250034],[-132.14375,52.99931640624999],[-132.54677734374997,53.1375],[-131.7537109375,53.195556640625]]],[[[-128.55244140624998,52.93974609375002],[-128.50991210937502,52.51860351562502],[-128.678955078125,52.289648437500006],[-128.74633789062494,52.763378906249955],[-128.89980468749997,52.67382812500003],[-129.175927734375,52.964941406250006],[-129.033251953125,53.27993164062505],[-128.63266601562498,53.1125],[-128.55244140624998,52.93974609375002]]],[[[-129.167724609375,53.11787109374998],[-129.32387695312502,53.142138671875045],[-129.23818359374997,53.33007812500006],[-129.167724609375,53.11787109374998]]],[[[-129.84858398437498,53.167919921874955],[-130.51757812500003,53.54423828124999],[-130.45200195312498,53.63115234375002],[-129.94472656250002,53.436376953125034],[-129.75483398437498,53.244775390624994],[-129.84858398437498,53.167919921874955]]],[[[-130.236279296875,53.95854492187502],[-130.38422851562504,53.84394531250001],[-130.703173828125,53.892236328124994],[-130.44799804687497,54.08901367187502],[-130.236279296875,53.95854492187502]]],[[[-132.65551757812503,54.12749023437496],[-132.30336914062497,54.098876953125],[-132.16611328124998,53.95522460937505],[-132.53466796875,53.651708984375034],[-132.18696289062504,53.68481445312503],[-132.134423828125,54.03427734374998],[-131.66762695312502,54.14135742187503],[-131.957421875,53.308691406250034],[-132.34726562500003,53.18920898437503],[-132.747509765625,53.310498046874955],[-132.425,53.33696289062502],[-132.84501953125,53.507714843749994],[-133.07949218749997,53.837011718750034],[-133.04838867187493,54.15893554687497],[-132.65551757812503,54.12749023437496]]],[[[-130.92714843749997,54.47905273437499],[-130.90683593750003,54.63178710937504],[-130.75800781249998,54.61376953125],[-130.92714843749997,54.47905273437499]]],[[[-130.57534179687497,54.769677734374966],[-130.2140625,55.02587890625003],[-130.34941406249996,54.814550781250034],[-130.57534179687497,54.769677734374966]]],[[[-79.97758789062499,56.20703125000006],[-80.057470703125,56.28735351562497],[-79.57973632812502,56.466357421875045],[-79.97758789062499,56.20703125000006]]],[[[-78.93559570312496,56.26606445312498],[-79.17548828124998,55.88505859374999],[-79.18212890625,56.21215820312503],[-79.4951171875,55.87475585937503],[-79.76474609374995,55.80678710937505],[-79.54472656249999,56.12836914062501],[-79.9875,55.89213867187502],[-79.45888671875,56.53974609374998],[-79.53632812499995,56.180078124999966],[-79.27241210937493,56.600439453125006],[-78.93559570312496,56.26606445312498]]],[[[-61.743603515624955,57.55458984375005],[-61.6375,57.41606445312499],[-62.01123046875003,57.54848632812505],[-61.743603515624955,57.55458984375005]]],[[[-79.71650390624998,57.515527343749994],[-79.80844726562498,57.44243164062502],[-79.74257812499997,57.60795898437499],[-79.71650390624998,57.515527343749994]]],[[[-69.16005859375,59.04023437500001],[-69.35283203125002,58.96074218749999],[-69.30322265625003,59.144873046875006],[-69.16005859375,59.04023437500001]]],[[[-64.40703125,60.367089843749966],[-64.44194335937496,60.2978515625],[-64.73793945312497,60.37563476562502],[-64.83642578124997,60.50102539062499],[-64.40703125,60.367089843749966]]],[[[-68.23378906250002,60.24091796875001],[-68.36787109374998,60.314746093750045],[-68.08759765624998,60.58784179687501],[-67.81884765624994,60.449511718750074],[-68.23378906250002,60.24091796875001]]],[[[-78.531640625,60.72856445312499],[-78.66889648437498,60.716894531250006],[-78.24169921875,60.818652343750045],[-78.531640625,60.72856445312499]]],[[[-64.83261718749998,61.366064453125006],[-65.43212890625,61.649511718750034],[-64.78964843750003,61.662207031250034],[-64.83261718749998,61.366064453125006]]],[[[-65.03056640624999,61.879052734374966],[-64.89658203124995,61.73330078125005],[-65.23535156249997,61.89770507812506],[-65.03056640624999,61.879052734374966]]],[[[-79.54531250000002,62.41171875000006],[-79.28647460937495,62.247656250000034],[-79.32392578124995,62.02607421875001],[-79.81611328124995,61.59462890625002],[-80.26518554687496,61.818212890625006],[-80.26005859374996,62.10903320312502],[-79.9267578125,62.39287109375002],[-79.54531250000002,62.41171875000006]]],[[[-64.82382812499998,62.558740234374994],[-64.46503906249998,62.535937500000045],[-64.47832031250002,62.417871093749966],[-64.901220703125,62.421044921874994],[-64.82382812499998,62.558740234374994]]],[[[-70.33706054687497,62.548730468749994],[-70.76606445312498,62.596875],[-71.22011718750002,62.873925781249966],[-70.44262695312497,62.73378906250002],[-70.33706054687497,62.548730468749994]]],[[[-82.00048828124997,62.95419921874998],[-82.02583007812498,62.73007812499998],[-82.56826171875002,62.403222656249994],[-83.01582031249998,62.20991210937498],[-83.69887695312497,62.16025390624998],[-83.91049804687498,62.45415039062499],[-83.37641601562498,62.904931640624994],[-82.00048828124997,62.95419921874998]]],[[[-77.87670898437497,63.470556640625034],[-77.53271484374997,63.233642578125],[-77.94243164062496,63.11440429687502],[-78.536767578125,63.423730468749994],[-77.87670898437497,63.470556640625034]]],[[[-76.67758789062503,63.393945312499966],[-77.36474609374994,63.588330078124955],[-77.13369140624997,63.68203125000002],[-76.65244140624998,63.503564453124994],[-76.67758789062503,63.393945312499966]]],[[[-84.91962890624995,65.26108398437503],[-84.50112304687497,65.45844726562501],[-84.08486328125,65.21782226562502],[-82.05,64.64428710937506],[-81.67612304687498,64.21264648437503],[-81.88710937499997,64.01640625000002],[-80.82895507812495,64.08994140625],[-80.30205078124999,63.76220703125003],[-81.04638671875003,63.461572265624966],[-82.378125,63.706787109375],[-82.46708984375002,63.92695312500001],[-83.30395507812497,64.14379882812506],[-84.63291015625,63.30922851562502],[-85.39262695312496,63.119677734375045],[-85.76894531249997,63.70034179687502],[-87.15190429687499,63.58564453125001],[-86.93203124999997,63.90166015625002],[-86.252099609375,64.13686523437497],[-86.37426757812503,64.56582031249997],[-86.074609375,65.533837890625],[-85.55468750000003,65.91865234374995],[-85.17622070312501,65.746875],[-85.23994140624993,65.51030273437499],[-84.91962890624995,65.26108398437503]]],[[[-84.67475585937498,65.575],[-85.096337890625,65.756201171875],[-85.14960937500001,66.01538085937506],[-84.75737304687496,65.85893554687505],[-84.67475585937498,65.575]]],[[[-83.72597656249997,65.796728515625],[-83.23374023437495,65.71503906249995],[-83.332421875,65.63105468749998],[-84.11826171874995,65.77177734375007],[-84.40717773437501,66.13100585937497],[-83.78696289062495,65.96577148437498],[-83.72597656249997,65.796728515625]]],[[[-108.09272460937501,67.00517578124999],[-107.80551757812493,66.99858398437507],[-107.94394531249999,66.8578125],[-108.09272460937501,67.00517578124999]]],[[[-62.681542968749966,67.05629882812502],[-62.87163085937499,67.06259765625006],[-62.41679687499996,67.18847656250003],[-62.681542968749966,67.05629882812502]]],[[[-107.89985351562497,67.40180664062495],[-107.95024414062503,67.31821289062498],[-108.15224609374997,67.429443359375],[-108.04897460937498,67.664892578125],[-107.89985351562497,67.40180664062495]]],[[[-73.621728515625,67.783837890625],[-74.573388671875,67.82866210937507],[-74.70654296875003,68.06708984374995],[-73.49375,68.00063476562502],[-73.40717773437498,67.79306640625],[-73.621728515625,67.783837890625]]],[[[-86.59555664062498,67.7359375],[-86.89252929687498,67.836572265625],[-86.95981445312503,68.10024414062497],[-86.70209960937501,68.30561523437498],[-86.42114257812497,68.18344726562503],[-86.59555664062498,67.7359375]]],[[[-75.67587890624998,68.32250976562506],[-75.078125,68.17314453124999],[-75.20195312499996,67.45917968750001],[-75.78007812499996,67.28354492187503],[-76.94418945312498,67.25029296875002],[-77.30439453125001,67.68510742187505],[-77.12587890624997,67.94707031250002],[-76.59580078124998,68.27895507812497],[-75.67587890624998,68.32250976562506]]],[[[-78.98271484374999,68.19282226562501],[-79.17475585937493,68.26445312500002],[-78.95258789062495,68.35302734375006],[-78.98271484374999,68.19282226562501]]],[[[-104.54067382812497,68.405908203125],[-105.05136718749999,68.55903320312501],[-104.60200195312503,68.56152343749997],[-104.54067382812497,68.405908203125]]],[[[-74.880859375,68.34868164062505],[-75.40024414062503,68.52548828125],[-75.28740234374996,68.68774414062503],[-74.98364257812497,68.64760742187502],[-74.880859375,68.34868164062505]]],[[[-101.84589843749994,68.58632812499997],[-102.30815429687497,68.681982421875],[-102.01337890624995,68.82539062500001],[-101.73295898437495,68.75341796875],[-101.84589843749994,68.58632812499997]]],[[[-100.21723632812497,68.80668945312502],[-100.59653320312496,68.76640625000007],[-100.56547851562495,69.02680664062501],[-100.21723632812497,68.80668945312502]]],[[[-99.99467773437502,69.01352539062503],[-100.19570312500002,68.991455078125],[-100.153125,69.12949218750003],[-99.99467773437502,69.01352539062503]]],[[[-79.21064453124995,68.845458984375],[-79.24267578125,69.04926757812495],[-78.33256835937496,69.38603515624999],[-78.77919921875,68.95048828124999],[-79.21064453124995,68.845458984375]]],[[[-90.1998046875,69.419091796875],[-90.33027343749993,69.252197265625],[-90.49204101562503,69.369873046875],[-90.1998046875,69.419091796875]]],[[[-76.99536132812503,69.14375],[-77.37939453125,69.2740234375],[-77.18754882812502,69.440087890625],[-76.66884765625002,69.36616210937504],[-76.99536132812503,69.14375]]],[[[-101.171728515625,69.39707031250003],[-101.31289062499998,69.57607421875],[-101.00063476562497,69.4619140625],[-101.171728515625,69.39707031250003]]],[[[-95.51367187499997,69.57363281250002],[-95.43745117187498,69.37846679687505],[-95.73012695312502,69.34755859374997],[-95.80620117187499,69.56049804687501],[-95.89345703125,69.35175781250004],[-95.87583007812495,69.60600585937505],[-95.51367187499997,69.57363281250002]]],[[[-67.91469726562494,69.54096679687504],[-68.22138671874998,69.61674804687502],[-67.908837890625,69.68183593749995],[-67.91469726562494,69.54096679687504]]],[[[-78.02910156249993,69.71489257812502],[-78.03999023437495,69.6083984375],[-78.84819335937502,69.4828125],[-78.02910156249993,69.71489257812502]]],[[[-79.43066406250003,69.78779296874995],[-79.55283203124995,69.63085937500006],[-80.04750976562502,69.63432617187505],[-79.97783203124993,69.50966796874997],[-80.794775390625,69.68925781250005],[-80.42421875000002,69.797607421875],[-79.43066406250003,69.78779296874995]]],[[[-97.439453125,69.64267578125006],[-96.29995117187494,69.34438476562505],[-95.7513671875,68.89765624999998],[-95.26777343749998,68.82607421874997],[-96.40156249999995,68.47070312500003],[-97.47202148437498,68.543701171875],[-98.320556640625,68.84272460937498],[-98.70380859374993,68.80278320312502],[-98.90449218749995,68.93242187500005],[-99.25400390625002,68.86318359374997],[-99.49467773437493,68.95957031249998],[-99.455712890625,69.13120117187503],[-98.45595703124997,69.33466796875001],[-98.54599609375,69.57290039062497],[-98.04135742187498,69.456640625],[-98.20048828124996,69.79697265625006],[-97.79072265624998,69.86162109374999],[-97.439453125,69.64267578125006]]],[[[-86.91303710937501,70.11323242187501],[-86.55766601562499,69.99531249999995],[-87.3232421875,70.08012695312502],[-86.91303710937501,70.11323242187501]]],[[[-74.70888671874997,45.0038574218751],[-74.76245117187494,44.99907226562502],[-74.99614257812496,44.970117187499966],[-75.40126953124997,44.77226562499999],[-75.81933593749997,44.468017578125],[-76.18579101562503,44.24223632812502],[-76.819970703125,43.62880859375011],[-77.59653320312492,43.62861328125007],[-78.45825195312497,43.63149414062511],[-78.72041015624993,43.62495117187501],[-78.84555664062492,43.58334960937506],[-79.171875,43.466552734375085],[-79.0830566406249,43.33139648437509],[-79.05922851562494,43.27807617187506],[-79.066064453125,43.10610351562502],[-79.02617187499996,43.01733398437506],[-78.98076171874993,42.98061523437502],[-78.91508789062496,42.90913085937504],[-79.17373046875,42.74853515625],[-80.24755859374991,42.366015625000045],[-81.02822265624997,42.247167968750006],[-81.50732421874997,42.10346679687504],[-81.97416992187496,41.88872070312499],[-82.43906249999989,41.6748535156251],[-82.69003906249995,41.675195312499994],[-83.141943359375,41.97587890624996],[-83.10952148437497,42.25068359375001],[-82.54531249999997,42.62470703124998],[-82.19038085937495,43.47407226562501],[-82.137841796875,43.570898437500034],[-82.48505859374993,45.08374023437503],[-82.55107421874987,45.3473632812501],[-82.91933593749994,45.51796875000002],[-83.59267578125,45.81713867187506],[-83.46948242187503,45.99467773437499],[-83.61596679687503,46.116845703124994],[-83.97778320312494,46.08491210937507],[-84.12319335937497,46.50292968749997],[-84.44047851562496,46.49814453125006],[-84.66577148437503,46.54326171875002],[-84.87597656249994,46.89990234375003],[-85.07006835937497,46.97993164062498],[-85.65224609375,47.21997070312503],[-86.67216796874996,47.636425781249955],[-87.20800781249997,47.848486328125006],[-87.74389648437497,48.06054687500003],[-88.37817382812497,48.30307617187506],[-89.45566406249992,47.99624023437508],[-90.79731445312495,48.13105468750001],[-91.04345703124991,48.19370117187498],[-91.38720703124997,48.05854492187498],[-92.00517578125002,48.301855468750006],[-92.3484375,48.276611328125],[-92.41459960937493,48.276611328125],[-92.50058593749995,48.43535156250002],[-92.83671875,48.567773437499994],[-93.25795898437497,48.62885742187501],[-93.37788085937498,48.61655273437498],[-93.70771484374995,48.525439453125074],[-93.85161132812496,48.607275390625034],[-94.6208984374999,48.7426269531251],[-94.71279296874997,48.863427734374994],[-94.80346679687497,49.0029296875],[-94.86040039062493,49.258593750000045],[-94.85434570312495,49.304589843749994],[-95.15527343749997,49.3696777343751],[-95.16206054687493,48.991748046875045],[-95.39790039062493,48.99316406249997],[-96.25068359374993,48.99316406249997],[-96.67705078124993,48.99316406249997],[-97.52983398437493,48.99316406249997],[-98.80898437499995,48.99316406249997],[-104.77832031249997,48.993115234375125],[-110.7476562499999,48.993066406250136],[-116.71704101562493,48.993066406250136],[-118.84892578124993,48.993066406250136],[-119.27534179687494,48.993066406250136],[-119.70170898437495,48.99301757812495],[-120.98085937499995,48.99301757812495],[-122.78876953124994,48.99301757812495],[-122.82670898437495,49.028417968750034],[-122.9241699218749,49.07465820312504],[-122.96269531249993,49.07460937500005],[-123.06328125,48.97773437500001],[-123.22944335937493,49.260498046875085],[-122.87910156249995,49.39892578125003],[-123.27675781249997,49.34394531250001],[-123.1875,49.680322265624994],[-123.53056640624989,49.39731445312506],[-124.02861328125002,49.602880859375006],[-123.99262695312497,49.736181640625006],[-123.81718749999993,49.58657226562508],[-123.58247070312498,49.68125],[-123.87441406250005,49.736816406250114],[-123.82543945312493,50.14423828124998],[-123.94589843749995,50.18393554687509],[-123.9849121093749,49.87558593749998],[-124.28125,49.77211914062502],[-124.78237304687492,50.02011718749992],[-125.05668945312495,50.418652343750125],[-124.8598632812499,50.872412109375006],[-125.05878906249993,50.51386718749998],[-125.4763183593749,50.49716796874995],[-125.53935546874996,50.64902343749998],[-125.64130859374994,50.46621093750005],[-126.09433593749995,50.497607421875045],[-126.44746093750004,50.58774414062492],[-125.90410156250002,50.704931640625006],[-126.51435546875,50.679394531250125],[-126.37460937499995,50.83735351562498],[-126.5217773437499,50.86606445312498],[-126.51733398437497,51.0568359375001],[-126.63178710937494,50.915136718750006],[-127.057568359375,50.86752929687509],[-127.70810546875,51.15117187499996],[-127.41967773437496,51.608056640625136],[-126.69145507812502,51.70341796875002],[-127.33872070312489,51.70737304687495],[-127.66870117187497,51.47758789062502],[-127.85053710937498,51.67319335937509],[-127.79536132812493,52.19101562500006],[-127.43793945312504,52.356152343750125],[-127.24223632812496,52.39511718750009],[-126.71396484374989,52.060693359374994],[-127.19399414062498,52.45766601562502],[-126.95136718749994,52.7510253906251],[-127.01933593750002,52.8424804687501],[-127.06621093749989,52.65268554687498],[-127.79189453124994,52.28935546875002],[-128.10224609374993,51.78842773437495],[-128.3576171875,52.1588867187501],[-128.0375,52.318164062500045],[-127.94023437499996,52.545166015625085],[-128.27153320312493,52.3629882812501],[-128.05327148437487,52.91069335937496],[-128.3650390624999,52.82578125000006],[-128.52470703125002,53.1406738281251],[-129.08090820312492,53.36728515625006],[-129.1715820312499,53.53359375000002],[-128.8545898437499,53.70454101562504],[-128.90561523437492,53.559326171875114],[-128.5421386718749,53.420654296875114],[-128.13271484375002,53.417773437500045],[-127.92783203125,53.274707031250045],[-128.2072265624999,53.483203125000074],[-128.67553710937494,53.55458984375005],[-128.76367187500003,53.746875],[-128.5321289062499,53.85810546875007],[-128.959375,53.84145507812505],[-129.2578613281249,53.417968750000085],[-129.56372070312506,53.251464843750114],[-130.33525390625002,53.723925781250074],[-130.04331054687495,54.13354492187503],[-129.62602539062493,54.23027343750002],[-130.08422851562503,54.18139648437503],[-130.4302734375,54.42099609374998],[-129.56064453124995,55.46254882812508],[-129.79516601562503,55.559570312500114],[-130.04848632812494,55.05727539062511],[-130.01406249999997,55.950537109375006],[-130.09785156249995,56.10927734375002],[-130.41313476562487,56.12250976562507],[-130.47709960937496,56.230566406250034],[-130.649072265625,56.26367187500003],[-131.471875,56.55673828125006],[-131.82426757812496,56.58999023437508],[-131.86616210937495,56.792822265625006],[-132.1042968749999,56.85678710937509],[-132.062890625,56.95336914062503],[-132.33798828124992,57.07944335937498],[-132.27939453124998,57.14536132812506],[-132.23217773437494,57.198535156250074],[-132.30166015625005,57.2763183593751],[-132.44248046874986,57.40673828125003],[-132.55048828124995,57.499902343749994],[-133.00141601562495,57.948974609375],[-133.27529296875,58.22285156250004],[-133.54638671874997,58.50346679687499],[-134.21850585937503,58.849902343750045],[-134.32963867187505,58.93969726562506],[-134.39306640625,59.009179687499994],[-134.67724609374997,59.19926757812499],[-134.94375,59.28828125000001],[-135.05102539062491,59.57866210937502],[-135.36787109374998,59.743310546874994],[-135.70258789062504,59.72875976562506],[-136.3218261718749,59.604833984375034],[-136.27797851562494,59.48032226562506],[-136.46635742187493,59.459082031250006],[-136.57875976562494,59.15224609375002],[-136.81328125000002,59.15004882812511],[-137.12622070312491,59.04096679687507],[-137.2775390624999,58.988183593749994],[-137.43857421874995,58.903125],[-137.52089843749994,58.91538085937506],[-137.59331054687493,59.22626953124998],[-138.317626953125,59.611132812500074],[-138.86875,59.94575195312501],[-139.18515624999986,60.083593750000034],[-139.13696289062494,60.17270507812506],[-139.07924804687497,60.279443359375136],[-139.07924804687497,60.3437011718751],[-139.23476562499997,60.339746093749994],[-139.67631835937505,60.32832031249998],[-139.97329101562497,60.183154296875074],[-140.45283203125004,60.29970703125002],[-140.5254394531249,60.21835937499995],[-140.76274414062505,60.25913085937509],[-141.00214843750004,60.300244140625125],[-141.00214843750004,60.884667968749994],[-141.00214843750004,61.761279296875045],[-141.00214843750004,63.22226562499998],[-141.00214843750004,64.09887695312506],[-141.00214843750004,65.55991210937498],[-141.00214843750004,66.43652343750006],[-141.00214843750004,67.89755859374998],[-141.00214843750004,68.77416992187506],[-141.00214843750004,69.65078125000011],[-139.18154296874997,69.51552734375008],[-137.25996093749998,68.96411132812503],[-136.12236328124993,68.88222656250002],[-135.258837890625,68.68432617187503],[-135.93901367187487,68.9741699218751],[-135.575537109375,69.02695312500003],[-135.91020507812487,69.11147460937502],[-135.6914550781249,69.31118164062502],[-135.29282226562486,69.30786132812506],[-135.1408203124999,69.46782226562496],[-134.45683593749993,69.47763671875],[-134.40893554687494,69.68178710937502],[-133.87978515624997,69.50771484375011],[-134.17431640624991,69.25283203125005],[-133.16313476562496,69.43388671874999],[-132.91533203125002,69.62963867187506],[-132.40390625,69.65874023437496],[-132.48847656249993,69.73808593749996],[-132.16342773437498,69.70498046875014],[-131.13637695312497,69.90688476562505],[-130.66547851562495,70.12705078124998],[-129.944970703125,70.09091796875006],[-129.675634765625,70.19296875000009],[-129.64829101562495,69.9977539062501],[-130.83208007812487,69.65146484375006],[-131.9377929687499,69.5347167968751],[-132.8174804687499,69.20576171875004],[-133.41831054687492,68.84428710937493],[-133.138037109375,68.74658203125011],[-133.33666992187497,68.83525390625005],[-132.57763671874997,68.84780273437514],[-132.71894531249998,69.07919921875],[-131.78837890625002,69.43198242187495],[-131.32470703124997,69.36118164062509],[-131.06342773437504,69.45068359375003],[-130.97065429687495,69.20908203125],[-130.1176269531249,69.720068359375],[-128.89892578124994,69.96616210937506],[-129.15791015624995,69.80009765624999],[-129.05434570312502,69.70107421875005],[-128.85302734375003,69.7510253906251],[-127.68378906249994,70.26035156249995],[-128.17011718749998,70.41845703125],[-127.99101562499992,70.57382812500003],[-127.22597656249992,70.29614257812497],[-126.25043945312495,69.54526367187492],[-125.52495117187495,69.35156250000009],[-125.171875,69.42797851562503],[-125.35693359374991,69.62597656250003],[-124.767919921875,69.99003906249996],[-124.99038085937494,70.02661132812511],[-124.55502929687488,70.15122070312509],[-124.40693359374991,69.76743164062506],[-124.12460937499995,69.6899902343751],[-124.33808593749991,69.36484374999995],[-123.5284179687499,69.38935546874995],[-123.02578125,69.81000976562504],[-122.07006835937499,69.81616210937506],[-120.96245117187502,69.66040039062511],[-120.13999023437488,69.38056640625013],[-117.22695312499998,68.913427734375],[-116.05947265625,68.83701171875006],[-116.2434082031249,68.9740722656251],[-115.44228515624994,68.94091796875009],[-114.62016601562496,68.74609375],[-113.96440429687495,68.39907226562502],[-114.09594726562491,68.26679687500007],[-114.76528320312494,68.27021484375004],[-115.12705078124992,68.13203124999995],[-115.43447265624994,67.90234375000006],[-115.13320312499994,67.819189453125],[-112.50302734374993,67.6819335937501],[-110.9900390624999,67.79082031250007],[-110.07392578124995,67.99291992187506],[-109.63037109374991,67.73271484374996],[-109.03803710937504,67.69116210937503],[-108.85200195312497,67.42197265625009],[-108.61333007812493,67.59804687500008],[-107.98872070312495,67.2563964843751],[-107.99130859374995,67.09516601562513],[-108.49604492187493,67.09228515625006],[-107.25947265624998,66.39853515624995],[-107.71035156250001,66.74003906250007],[-107.7250976562499,66.98413085937506],[-107.15649414062497,66.88173828124997],[-107.9583984375,67.81860351562506],[-107.79829101562498,68.03691406249996],[-106.42426757812491,68.20058593750008],[-105.7501953125,68.59228515625011],[-106.45805664062496,68.51645507812495],[-106.60849609374988,68.35737304687504],[-107.61933593749994,68.3310546875],[-107.73417968749989,68.17373046875011],[-108.3228027343749,68.15410156250002],[-108.71811523437488,68.29746093750009],[-108.31347656249996,68.61079101562498],[-106.16445312499992,68.91987304687507],[-105.68559570312489,68.82817382812505],[-105.3774414062499,68.413818359375],[-104.65317382812488,68.23007812500003],[-104.48681640624991,68.06318359374998],[-103.47412109374993,68.11503906250005],[-102.32036132812489,67.73564453125005],[-101.55498046874992,67.69316406250007],[-100.21293945312489,67.83857421875004],[-98.92045898437502,67.72578124999998],[-98.41210937499991,67.80717773437505],[-98.63154296875004,68.0725585937501],[-97.45493164062486,67.61699218750002],[-97.20654296874989,67.85507812500003],[-97.73911132812495,67.97817382812505],[-98.19252929687494,67.92299804687502],[-98.65048828124989,68.36352539062506],[-98.21855468750002,68.31743164062507],[-97.7942382812499,68.38759765625],[-97.9250976562499,68.523681640625],[-97.41035156249993,68.49653320312498],[-96.97670898437497,68.25541992187505],[-96.43066406249991,68.3105957031251],[-96.72207031250005,68.03876953124998],[-95.9703125,68.24912109375],[-96.36914062499991,67.50976562500003],[-96.14145507812489,67.27182617187503],[-95.71992187499998,67.31679687500014],[-95.77768554687495,67.18461914062505],[-95.41591796875005,67.15556640624999],[-95.41889648437504,67.01323242187493],[-96.42255859374995,67.05175781249997],[-95.7875488281249,66.616796875],[-96.03686523437489,66.9375],[-95.39965820312503,66.94946289062509],[-95.25874023437493,67.26254882812492],[-95.65048828124986,67.73745117187505],[-95.46069335937503,68.02138671875],[-94.74443359374993,68.07089843749995],[-93.44892578124998,68.61889648437503],[-93.85244140624994,69.00034179687495],[-94.06489257812495,68.78476562500006],[-94.600439453125,68.80322265625011],[-94.08364257812497,69.12309570312507],[-94.254736328125,69.31376953125002],[-93.61948242187492,69.41699218750009],[-93.74853515624991,69.2261230468751],[-93.5322753906249,69.48090820312495],[-94.2708007812499,69.45512695312505],[-94.63383789062496,69.64965820312506],[-94.82250976562494,69.577783203125],[-95.96494140624989,69.80278320312499],[-96.5513671875,70.21030273437506],[-96.29770507812492,70.51137695312511],[-95.87861328124998,70.54897460937514],[-95.88632812499986,70.69428710937507],[-96.25800781249993,70.64228515625013],[-96.54892578124995,70.80874023437511],[-96.44658203124996,71.23989257812502],[-96.06201171874997,71.41386718749993],[-95.5642578124999,71.33676757812503],[-95.40625,71.49165039062498],[-95.87231445312494,71.57314453125005],[-94.73486328124994,71.98295898437507],[-94.30834960937491,71.76489257812506],[-93.74628906249998,71.742822265625],[-92.94868164062493,71.26210937500011],[-92.98144531249994,70.8522460937501],[-91.56406249999995,70.1782714843751],[-92.32050781250004,70.2353515625],[-92.51186523437494,70.10385742187503],[-91.976708984375,70.03867187500009],[-92.88779296874989,69.66821289062511],[-92.31166992187494,69.67290039062499],[-91.91196289062495,69.53125],[-91.20180664062494,69.64477539062494],[-91.43994140624997,69.52568359375002],[-90.4155761718749,69.45698242187507],[-90.89228515625004,69.26728515624995],[-91.23720703125005,69.28554687500014],[-90.47900390624994,68.88115234374999],[-90.57363281250005,68.47470703124998],[-90.20478515625004,68.25747070312511],[-89.27954101562491,69.25546875000003],[-88.22353515625,68.91503906249997],[-87.81357421874986,68.34570312499997],[-87.89267578125,68.24814453125],[-88.34697265624993,68.28828125000001],[-88.313818359375,67.95034179687508],[-87.359375,67.17724609374997],[-86.56079101562491,67.48212890625007],[-85.64316406249992,68.69970703124997],[-84.86757812499994,68.77333984375005],[-85.10664062499995,68.84404296875007],[-84.86220703125,69.07397460937503],[-85.38676757812493,69.23188476562504],[-85.50737304687487,69.84526367187493],[-82.61835937499993,69.69106445312514],[-82.39023437499989,69.60087890625007],[-82.75483398437493,69.49438476562506],[-82.30986328124996,69.41000976562509],[-82.22753906249997,69.24887695312495],[-81.37783203125005,69.18564453125003],[-81.95791015624991,68.88364257812498],[-81.38090820312496,68.85004882812504],[-81.28154296874987,68.65722656250003],[-81.91484374999993,68.4587890625001],[-82.55268554687504,68.44648437500007],[-82.22241210937489,68.145263671875],[-82.0125,68.19389648437496],[-81.97646484374997,67.86201171875001],[-81.2943359375,67.497412109375],[-81.46757812499996,67.0698730468751],[-83.40644531249998,66.37124023437508],[-84.53847656249994,66.97280273437505],[-84.84575195312502,67.02871093750008],[-85.11372070312498,66.90693359375013],[-84.73774414062504,66.93359375000006],[-84.223046875,66.68247070312506],[-83.86904296875,66.2135742187501],[-84.29306640624995,66.29179687500005],[-84.628076171875,66.20771484374998],[-85.603857421875,66.56826171875005],[-86.708154296875,66.52304687500009],[-86.68510742187502,66.36040039062499],[-85.95874023437491,66.11904296875002],[-87.45288085937503,65.33896484375009],[-87.96997070312503,65.34892578124999],[-89.7494140625,65.93603515625006],[-89.88969726562487,65.86855468749997],[-91.42724609374994,65.94790039062497],[-91.04111328124989,65.82983398437509],[-90.98344726562496,65.91923828124999],[-89.92407226562497,65.78027343750011],[-88.97402343749994,65.34829101562502],[-87.02753906249995,65.19809570312498],[-88.10561523437497,64.18330078125001],[-88.81772460937489,63.99223632812499],[-89.20063476562493,64.11376953125006],[-89.13154296874998,63.96850585937494],[-89.61582031249995,64.030615234375],[-89.8113281249999,64.18056640625],[-90.04165039062494,64.14086914062509],[-89.85571289062497,63.9569824218751],[-90.16816406250004,63.978759765625085],[-90.15473632812498,63.68964843749998],[-90.81191406249991,63.580908203125034],[-91.98222656249996,63.82241210937502],[-92.33842773437496,63.787646484375045],[-93.69633789062493,64.14716796875013],[-93.55981445312491,63.865283203125074],[-93.27021484374998,63.840869140625074],[-93.37851562499992,63.94848632812497],[-92.15688476562491,63.691699218750045],[-92.46508789062491,63.55507812500011],[-91.84184570312496,63.69755859374999],[-90.97006835937489,63.442773437500136],[-90.69858398437492,63.06386718750005],[-91.44897460937503,62.804052734375034],[-92.3612792968749,62.81938476562496],[-91.93583984374993,62.59238281250009],[-92.55141601562491,62.546728515625034],[-92.76596679687492,62.34995117187509],[-92.52797851562494,62.16840820312504],[-93.20537109374993,62.364941406250125],[-92.90551757812503,62.21513671874996],[-93.3330566406249,61.93291015625002],[-93.58178710937494,61.94204101562511],[-93.31201171874997,61.76728515625004],[-93.91274414062497,61.48144531250006],[-94.509375,60.60454101562493],[-94.76171874999991,60.498242187500125],[-94.78828124999998,59.26787109374993],[-94.95732421874996,59.068847656250085],[-94.28706054687493,58.716015625000125],[-94.33222656249998,58.297363281250114],[-94.12319335937494,58.73671875000008],[-93.1787597656249,58.72563476562496],[-92.43281249999993,57.3203125],[-92.7981445312499,56.921972656250034],[-90.89746093750003,57.25693359375006],[-88.94848632812489,56.85131835937503],[-88.07509765624997,56.46728515624994],[-87.48242187499991,56.021289062500045],[-85.55932617187491,55.54018554687508],[-85.21801757812491,55.348974609375034],[-85.3652832031249,55.07929687499998],[-85.06093749999997,55.285644531250085],[-83.91059570312493,55.314648437499955],[-82.39326171874998,55.067822265625125],[-82.219384765625,54.8134765625],[-82.42416992187486,54.2445800781251],[-82.14145507812492,53.81762695312497],[-82.29155273437496,53.03071289062507],[-81.5994140624999,52.432617187500085],[-81.82788085937489,52.22421875000009],[-81.46621093749994,52.204492187500136],[-80.588037109375,51.667236328125114],[-80.4433105468749,51.38857421875002],[-80.85122070312497,51.125],[-80.47832031249993,51.30732421874998],[-80.10356445312487,51.282861328125136],[-79.34790039062494,50.76264648437504],[-79.737451171875,51.186279296875],[-79.33867187500002,51.62817382812497],[-79.04052734375003,51.46376953125005],[-78.90317382812495,51.200292968750034],[-78.73134765624994,51.497460937499994],[-78.98164062499993,51.774560546875136],[-78.44809570312495,52.26137695312502],[-78.74414062499994,52.65537109374998],[-79.10034179687497,53.65664062500005],[-78.99604492187493,54.00249023437499],[-79.241796875,54.098876953125085],[-79.14672851562491,54.16923828125002],[-79.71235351562495,54.6718261718751],[-77.77529296874994,55.291259765625],[-76.60405273437496,56.19956054687495],[-76.52558593749998,56.8917968750001],[-76.80981445312497,57.65795898437506],[-77.15678710937496,58.018896484375034],[-78.51508789062493,58.68237304687503],[-77.76069335937498,59.38002929687505],[-77.72617187499995,59.67587890624992],[-77.34907226562495,59.57895507812509],[-77.48530273437493,59.684570312500114],[-77.28920898437494,60.0220214843751],[-77.58588867187498,60.088183593750074],[-77.45288085937497,60.1458007812501],[-77.6814453124999,60.427099609375034],[-77.503564453125,60.54272460937497],[-77.7908203124999,60.63984375000004],[-77.58955078124993,60.808593750000114],[-78.18134765624995,60.81914062499996],[-77.51435546874998,61.55629882812505],[-78.02138671874997,61.8320800781251],[-78.13339843749986,62.28227539062496],[-77.372412109375,62.572509765625114],[-75.81689453124991,62.31586914062507],[-75.7898437499999,62.17958984375002],[-75.3412109375,62.312109375],[-74.63256835937497,62.115673828125125],[-74.6458007812499,62.21113281250004],[-73.70507812499991,62.47314453124994],[-72.68696289062498,62.12456054687499],[-72.771630859375,61.840429687500006],[-72.50556640624998,61.922656250000074],[-72.22612304687487,61.83159179687499],[-72.04003906249991,61.68027343750006],[-72.21586914062502,61.58725585937495],[-71.86611328125,61.68852539062499],[-71.63828124999995,61.6171875],[-71.85439453124991,61.43979492187492],[-71.42270507812489,61.158935546875085],[-70.27929687499991,61.06865234374999],[-69.99243164062491,60.8564941406251],[-69.50332031249994,61.04042968750011],[-69.40473632812493,60.84677734375009],[-69.75947265624998,60.440234375000045],[-69.67373046874994,60.07587890625007],[-70.65483398437496,60.02622070312506],[-69.73393554687493,59.918017578125045],[-69.68188476562489,59.34174804687507],[-69.3440429687499,59.303076171875006],[-69.53164062499994,58.86923828125009],[-69.64838867187493,58.82080078125],[-69.78417968749994,58.95571289062511],[-70.15434570312496,58.76059570312498],[-69.78989257812486,58.689306640625034],[-69.27109374999986,58.88393554687505],[-68.69819335937495,58.904541015625],[-68.38115234374993,58.74350585937506],[-68.22939453124994,58.48457031250007],[-68.35654296874989,58.163232421875136],[-69.04082031249996,57.902490234375136],[-68.41357421874997,58.0517578125],[-68.02104492187493,58.48530273437504],[-67.88828124999989,58.29575195312495],[-68.06386718750005,58.13896484374999],[-67.75595703124992,58.4045898437501],[-67.6782714843749,57.99111328125008],[-67.5696289062499,58.21347656250006],[-66.72216796874991,58.49101562499996],[-66.36240234374989,58.791162109374994],[-66.0023925781249,58.43120117187502],[-66.04306640624995,58.82065429687495],[-65.72099609374996,59.02377929687495],[-65.38354492187494,59.06020507812508],[-65.7,59.21333007812501],[-65.4117187499999,59.31499023437496],[-65.47509765624994,59.47031249999998],[-65.03823242187494,59.38789062500007],[-65.40742187499993,59.53935546875002],[-65.4333984374999,59.776513671874994],[-65.02817382812495,59.77070312500007],[-65.17172851562489,59.90800781249996],[-64.81733398437498,60.3310546875],[-64.49941406250005,60.26826171875001],[-64.41958007812494,60.17138671874997],[-64.76845703124997,60.01210937500005],[-64.28349609374993,60.06406249999998],[-64.22631835937491,59.741210937500085],[-64.05605468750005,59.82255859374996],[-63.7501953124999,59.51259765625005],[-63.945458984374994,59.380175781250074],[-63.775878906249915,59.277148437500045],[-63.539892578124864,59.332861328125034],[-63.41513671874995,59.194384765625074],[-63.97114257812498,59.053808593750034],[-63.24843749999991,59.068310546874955],[-63.28212890624994,58.86738281250007],[-63.05029296874997,58.87817382812494],[-62.87387695312489,58.67246093749998],[-63.537060546874926,58.329931640625006],[-63.209960937499886,58.46694335937502],[-62.593847656249864,58.47402343750005],[-62.81206054687502,58.20039062500007],[-63.26152343749993,58.014697265625074],[-62.486230468749966,58.15405273437506],[-62.30566406249997,57.97226562499995],[-61.95864257812505,57.91176757812508],[-61.9679687499999,57.61191406250009],[-62.495556640624926,57.489208984375125],[-61.92114257812497,57.42080078125005],[-61.977441406249966,57.24794921875002],[-61.33374023437494,57.01059570312498],[-61.37163085937502,56.68081054687511],[-62.497265624999926,56.80170898437504],[-61.73774414062498,56.52602539062502],[-61.940429687499886,56.423583984375114],[-61.42529296874994,56.360644531250074],[-61.713085937499955,56.230957031250114],[-61.364697265624926,56.2160156250001],[-61.30112304687495,56.04716796874999],[-61.4495117187499,55.99570312499998],[-61.08935546874997,55.86635742187511],[-60.74326171874989,55.94145507812493],[-60.56210937499995,55.727001953125125],[-60.341015624999926,55.78466796874997],[-60.40830078124995,55.649560546874994],[-60.19238281249994,55.4809082031251],[-60.617138671874955,55.060205078124994],[-59.75878906249997,55.3095703125],[-59.68906249999989,55.19633789062502],[-59.43789062500005,55.175927734375136],[-59.837792968749994,54.813964843750114],[-59.25957031249996,55.19995117187506],[-58.99711914062496,55.149462890625074],[-58.780175781249994,54.838378906250114],[-58.39814453124998,54.77412109374998],[-57.96245117187493,54.875732421875085],[-57.40449218750004,54.59086914062496],[-57.69926757812496,54.38657226562506],[-58.435205078124966,54.228125],[-58.63320312499999,54.04956054687497],[-59.8230468749999,53.83442382812504],[-60.14492187499994,53.59614257812498],[-60.395410156249994,53.653320312500085],[-60.1002929687499,53.48696289062511],[-60.329492187499966,53.26611328125006],[-58.652050781249926,53.97788085937495],[-57.935986328124955,54.09116210937492],[-58.31748046874989,54.11445312500007],[-58.192089843749926,54.228173828125136],[-57.4160644531249,54.162744140625136],[-57.134960937499926,53.79184570312506],[-57.524072265624966,53.61142578125006],[-57.331738281249955,53.469091796875034],[-56.84086914062496,53.73945312500004],[-56.46499023437505,53.76503906250011],[-55.96611328125002,53.4711425781251],[-55.79794921874995,53.211962890625045],[-55.80283203124989,52.64316406249998],[-56.324902343749926,52.54453124999998],[-55.74648437499994,52.4745605468751],[-55.7771484374999,52.3642578125],[-56.01171874999997,52.394482421875125],[-55.695214843749994,52.13779296875006],[-56.97597656250005,51.45766601562505],[-58.510351562500006,51.295068359375136],[-59.88632812499992,50.316406250000085],[-61.72485351562503,50.10405273437499],[-61.91953124999989,50.2328613281251],[-62.71542968749995,50.30166015625008],[-66.49550781249991,50.2118652343751],[-66.94116210937503,49.993701171875045],[-67.37202148437495,49.348437500000045],[-68.28193359374998,49.197167968750136],[-69.67387695312496,48.19916992187504],[-71.01826171874993,48.455615234375045],[-69.86552734374993,48.17226562500005],[-69.775,48.09809570312504],[-69.9944335937499,47.73989257812508],[-70.70585937499996,47.13979492187505],[-71.26777343749995,46.79594726562499],[-71.87958984374998,46.68681640624996],[-72.98100585937493,46.209716796875085],[-73.4766113281249,45.738232421874955],[-74.03784179687494,45.501855468750136],[-74.31508789062494,45.531054687500045],[-73.97382812499995,45.345117187499994],[-74.70888671874997,45.0038574218751]]],[[[-96.78232421874998,72.93662109375],[-97.0927734375,72.99692382812503],[-96.86240234374995,73.18881835937506],[-96.78232421874998,72.93662109375]]],[[[-114.52153320312502,72.592919921875],[-113.57807617187501,72.65209960937506],[-113.2923828125,72.94980468750003],[-112.75361328125001,72.98603515624995],[-111.26972656249994,72.71372070312498],[-111.895166015625,72.35610351562497],[-111.67509765625002,72.30014648437503],[-110.20512695312495,72.66127929687497],[-110.66083984374998,73.00820312500002],[-110.00844726562494,72.983642578125],[-108.75498046875002,72.55107421874999],[-108.18823242187501,71.72377929687502],[-107.812841796875,71.62617187500004],[-107.30600585937496,71.89467773437502],[-108.23740234374999,73.14990234375003],[-108.029052734375,73.34873046875003],[-106.48212890624998,73.19619140624997],[-105.41513671874995,72.788330078125],[-104.38593749999997,71.57695312500005],[-104.51479492187502,71.06425781250005],[-103.58457031249995,70.63085937500003],[-103.07719726562497,70.50883789062505],[-103.04956054687503,70.65507812499999],[-101.67631835937495,70.27827148437495],[-101.56240234375001,70.135009765625],[-101.04267578125,70.11079101562504],[-100.98237304687497,69.67988281250001],[-101.483837890625,69.85019531250006],[-101.64765624999997,69.69853515625007],[-102.18212890624997,69.845947265625],[-102.59589843749997,69.71791992187502],[-102.62109374999996,69.55151367187506],[-103.464892578125,69.64448242187498],[-103.04892578124999,69.47177734375006],[-103.12021484374995,69.20458984374997],[-102.44677734374997,69.476318359375],[-102.04594726562493,69.46484374999997],[-101.85712890625001,69.02397460937505],[-102.89506835937499,68.8236328125],[-104.57143554687501,68.87211914062502],[-105.105859375,68.92041015625],[-105.019580078125,69.08125],[-106.27016601562497,69.19458007812497],[-106.65908203124997,69.439599609375],[-107.43989257812497,69.00214843749995],[-108.36499023437497,68.93476562499998],[-109.47211914062501,68.67670898437498],[-113.12773437500002,68.49414062500003],[-113.61684570312501,68.8384765625],[-113.69414062499995,69.19501953124998],[-115.61811523437495,69.28295898437506],[-116.51347656249993,69.42460937500005],[-117.19541015624995,70.05405273437503],[-114.59233398437497,70.31245117187498],[-112.63789062499997,70.225244140625],[-111.63256835937497,70.30883789062497],[-113.75727539062503,70.69072265625005],[-115.99091796874997,70.586279296875],[-117.58706054687498,70.62954101562502],[-118.2640625,70.888330078125],[-118.26909179687493,71.03471679687505],[-115.30341796874997,71.49370117187505],[-117.93564453125003,71.39208984375003],[-118.22646484374995,71.46708984375005],[-117.742333984375,71.65932617187502],[-118.58300781250003,71.64902343749998],[-118.98769531249997,71.7642578125],[-118.94462890624997,71.98554687499995],[-118.21347656249998,72.26289062499998],[-118.481298828125,72.42768554687498],[-118.13310546874995,72.63281250000003],[-114.63823242187499,73.37265625000003],[-114.20639648437495,73.29780273437495],[-114.05170898437497,73.07099609375004],[-114.52153320312502,72.592919921875]]],[[[-105.28891601562499,72.919921875],[-106.92153320312497,73.479833984375],[-106.61396484375001,73.69560546875002],[-105.31796874999995,73.76713867187502],[-104.5875,73.57807617187495],[-104.62172851562495,73.3111328125],[-105.28891601562499,72.919921875]]],[[[-79.53730468749998,73.65449218749998],[-78.2865234375,73.66582031250007],[-77.20654296874997,73.49956054687505],[-76.18339843749999,72.84306640625005],[-77.83593750000003,72.89682617187498],[-79.3193359375,72.75771484375],[-79.820703125,72.82631835937502],[-80.18330078124995,73.22465820312499],[-80.77641601562502,73.33417968750001],[-80.84887695312503,73.72124023437499],[-79.53730468749998,73.65449218749998]]],[[[-86.58935546874997,71.01079101562507],[-85.64384765624999,71.15244140624998],[-85.09487304687497,71.15195312500006],[-84.82373046874997,71.02861328125005],[-84.69941406249995,71.63144531250003],[-85.33906249999998,71.69726562500003],[-85.91162109375,71.98652343749998],[-85.321875,72.23315429687506],[-84.28374023437499,72.04448242187499],[-84.84199218749995,72.30815429687505],[-84.62304687500003,72.37656250000003],[-85.34111328124993,72.42153320312497],[-85.64990234374997,72.72216796875003],[-85.26210937500002,72.95400390625],[-84.25664062499999,72.79672851562503],[-85.454736328125,73.10546875000003],[-84.41606445312496,73.45649414062495],[-83.781884765625,73.41689453125],[-83.72983398437495,73.57587890624995],[-81.946142578125,73.72983398437506],[-81.40615234374997,73.634521484375],[-80.27724609375,72.77016601562502],[-81.229345703125,72.31171874999998],[-80.61147460937497,72.450830078125],[-80.925146484375,71.90766601562501],[-80.18193359374996,72.20878906250007],[-79.884375,72.17719726562501],[-80.10893554687499,72.33217773437497],[-79.83129882812503,72.44628906250003],[-79.000244140625,72.27202148437507],[-79.00781250000003,72.04291992187501],[-78.58510742187497,71.880615234375],[-78.86274414062495,72.100830078125],[-78.69926757812496,72.35141601562498],[-77.51650390624997,72.17778320312505],[-78.48427734374994,72.47060546875002],[-77.75322265624996,72.72475585937502],[-75.70429687499998,72.57153320312497],[-75.05268554687493,72.22636718749999],[-75.92280273437501,71.71723632812501],[-74.90317382812503,72.10048828125002],[-74.20932617187498,71.978662109375],[-74.31572265624999,71.84267578125],[-75.20478515625001,71.70913085937497],[-74.70078125,71.67558593750005],[-74.99619140624998,71.21811523437503],[-74.48808593750002,71.64838867187501],[-73.8140625,71.77143554687495],[-74.197265625,71.404150390625],[-73.71284179687498,71.58759765624998],[-73.18061523437501,71.282861328125],[-73.27822265625,71.53798828125],[-72.901953125,71.67778320312507],[-71.64067382812499,71.51625976562502],[-71.22939453124997,71.33876953125],[-71.49501953124997,71.10512695312502],[-71.93793945312498,71.09428710937502],[-72.63271484374994,70.83076171874998],[-71.74252929687495,71.046875],[-71.370849609375,70.97514648437499],[-70.82607421874994,71.10874023437503],[-70.67265625,71.05219726562498],[-70.76171874999997,70.79223632812503],[-71.89018554687502,70.43154296875002],[-71.27587890625,70.50029296874999],[-71.42944335937503,70.12778320312503],[-70.97978515624999,70.5810546875],[-69.94980468750003,70.84501953125005],[-68.49575195312502,70.61025390625],[-68.363525390625,70.48125],[-70.05771484375,70.042626953125],[-68.77822265625,70.20356445312501],[-69.00830078124997,69.97895507812501],[-68.74404296874997,69.94140625],[-68.05908203124997,70.317236328125],[-67.36367187499994,70.03442382812503],[-67.22163085937495,69.73071289062506],[-68.02041015625,69.77006835937499],[-69.25078124999999,69.51191406249998],[-68.51303710937498,69.57729492187497],[-67.236962890625,69.460107421875],[-66.71674804687495,69.31186523437498],[-66.70742187500002,69.16821289062503],[-68.40629882812499,69.23222656250002],[-69.040625,69.09799804687503],[-68.41552734375,69.17207031250001],[-67.8326171875,69.06596679687499],[-67.88320312500002,68.78398437499999],[-69.31909179687497,68.85698242187505],[-68.21040039062495,68.702978515625],[-67.9384765625,68.524169921875],[-66.74272460937502,68.45776367187497],[-67.032958984375,68.32607421874997],[-66.923095703125,68.06572265625005],[-66.72900390624997,68.12900390625006],[-66.66269531249995,68.03442382812497],[-66.63095703124998,68.21064453124998],[-66.21240234374997,68.280419921875],[-66.44394531249998,67.83383789062506],[-65.94238281250003,68.07094726562505],[-65.86435546875003,67.92285156249997],[-65.50908203124996,67.96826171875],[-65.40126953125002,67.67485351562499],[-65.41533203124996,67.87924804687498],[-64.92231445312495,68.03164062500002],[-65.02109375,67.78754882812495],[-64.63779296875,67.84023437500002],[-63.850195312500034,67.56606445312502],[-64.00795898437502,67.34731445312497],[-64.69995117187494,67.35053710937501],[-63.83623046874993,67.26411132812498],[-63.59160156250002,67.3775390625],[-63.040136718750034,67.235009765625],[-63.70156249999994,66.82236328125003],[-62.962304687499966,66.94926757812505],[-62.37973632812495,66.90537109375],[-62.12358398437499,67.046728515625],[-61.35341796874994,66.689208984375],[-61.52783203124994,66.55810546875003],[-62.12333984374993,66.64306640625003],[-61.57080078125,66.37290039062506],[-61.95634765624993,66.30932617187497],[-62.553125,66.40683593750003],[-62.53359374999994,66.22700195312498],[-61.99160156250002,66.03530273437502],[-62.624121093750006,66.01625976562505],[-62.381982421874966,65.83330078124999],[-62.65888671874998,65.63994140625002],[-63.16894531249997,65.65732421875],[-63.45874023437494,65.85302734375],[-63.42089843749997,65.70859374999998],[-63.651074218749955,65.66098632812506],[-63.33745117187493,65.61674804687502],[-63.36337890624998,65.22973632812503],[-63.606591796874966,64.92807617187503],[-64.345703125,65.17241210937499],[-64.26967773437497,65.40078124999997],[-64.55507812500002,65.1166015625],[-65.401611328125,65.764013671875],[-64.44536132812496,66.31713867187497],[-65.0044921875,66.07773437500003],[-65.82573242187499,65.996923828125],[-65.65634765625003,66.204736328125],[-66.06372070312497,66.13271484374997],[-66.986328125,66.62749023437505],[-67.07685546874995,66.52548828125006],[-67.30732421874993,66.5697265625],[-67.22539062499993,66.31025390624998],[-67.88339843749995,66.46743164062502],[-67.18320312499995,66.03442382812503],[-67.350439453125,65.92973632812502],[-67.82802734374997,65.96518554687503],[-68.45991210937498,66.249267578125],[-68.74892578125,66.200048828125],[-68.21718750000002,66.078857421875],[-68.18671874999993,65.87099609375002],[-67.86645507812497,65.773681640625],[-67.936767578125,65.56489257812501],[-67.56962890624999,65.64355468749997],[-67.11796874999999,65.44038085937495],[-67.3365234375,65.34658203125005],[-66.69741210937502,64.81518554687506],[-66.63549804687503,65.00034179687503],[-66.21464843749999,64.72241210937497],[-65.93852539062496,64.88574218750003],[-65.2748046875,64.63154296875004],[-65.52934570312499,64.50478515624997],[-65.074609375,64.43666992187502],[-65.21298828125003,64.30327148437502],[-65.580322265625,64.29384765624997],[-65.16987304687495,64.02817382812503],[-64.67846679687503,64.027978515625],[-64.79814453124999,63.91596679687498],[-64.4109375,63.70634765625002],[-64.66464843749995,63.24536132812497],[-65.19184570312498,63.764257812500006],[-65.06894531249998,63.26347656250002],[-64.67236328125003,62.921972656250006],[-65.16279296875001,62.93261718750003],[-65.10849609374998,62.62646484375],[-66.22402343749994,63.10717773437497],[-66.228662109375,62.99096679687503],[-66.41445312500002,63.027197265625034],[-66.65498046874998,63.264746093750006],[-66.69746093749993,63.069531249999955],[-67.89326171874993,63.733740234375006],[-67.72255859374997,63.422753906249966],[-68.49375,63.725488281249994],[-68.91108398437498,63.703222656250006],[-68.141259765625,63.17231445312501],[-67.67597656249998,63.093554687500045],[-67.73696289062497,63.00957031249999],[-65.98017578125001,62.20888671875002],[-66.12387695312498,61.89306640625],[-68.53588867187503,62.25561523437506],[-69.12558593749998,62.423974609374966],[-69.604736328125,62.76772460937502],[-70.23613281250002,62.76337890625001],[-70.801416015625,62.91049804687506],[-71.10576171874999,63.00224609375002],[-70.94604492187497,63.12070312499998],[-71.34726562499998,63.066113281249955],[-71.99223632812493,63.41616210937505],[-71.380859375,63.580322265625],[-72.29013671874995,63.72797851562498],[-72.17426757812498,63.893408203125006],[-72.49843749999994,63.82348632812497],[-73.45454101562495,64.39926757812503],[-73.27128906250002,64.58251953125],[-73.91035156249998,64.578125],[-74.064794921875,64.42465820312498],[-74.13046874999998,64.6078125],[-74.46123046874996,64.64467773437505],[-74.68139648437497,64.8306640625],[-74.91943359374997,64.76552734374997],[-74.69472656250002,64.49658203124997],[-75.71503906249995,64.52436523437495],[-75.76669921875,64.39194335937498],[-76.85615234374998,64.23764648437498],[-77.76049804687503,64.36015624999999],[-78.04521484374993,64.499267578125],[-78.09560546875,64.93925781250002],[-77.36088867187496,65.19653320312503],[-77.32670898437493,65.453125],[-75.82832031249993,65.22705078125003],[-75.45209960937495,64.84160156250002],[-75.35712890624995,65.00874023437495],[-75.79868164062503,65.297509765625],[-75.16630859374999,65.28393554687497],[-74.13847656250002,65.50346679687502],[-73.55078125000003,65.48525390625005],[-74.41640624999997,66.16708984375003],[-73.03325195312502,66.72817382812505],[-72.78881835937494,67.030615234375],[-72.22001953124999,67.25429687500002],[-73.28447265624993,68.35698242187505],[-73.82050781249998,68.36293945312502],[-73.82211914062495,68.68598632812501],[-74.11796875000002,68.70092773437506],[-73.9892578125,68.54863281250002],[-74.2701171875,68.54121093750001],[-74.89296875,68.80815429687505],[-74.71669921874997,69.04550781249998],[-76.58505859375,68.69873046875003],[-76.55722656250003,69.00947265625001],[-75.9537109375,69.03081054687502],[-75.64775390625002,69.212548828125],[-76.46494140624995,69.46943359375001],[-76.23408203125001,69.66210937500003],[-76.742333984375,69.57290039062497],[-77.08994140625,69.63510742187503],[-76.85859374999995,69.775390625],[-77.591650390625,69.84560546875002],[-77.77402343750003,70.23852539062503],[-78.28281250000003,70.229150390625],[-79.06640624999997,70.60356445312507],[-79.40522460937498,70.40073242187503],[-78.86284179687499,70.24189453125001],[-78.88964843750003,69.97749023437495],[-79.51542968749996,69.88759765625005],[-81.65195312500003,70.09462890625002],[-80.92172851562503,69.73090820312501],[-81.56469726562503,69.94272460937498],[-82.29384765624997,69.83691406250003],[-83.14995117187493,70.00908203125002],[-83.85908203124998,69.96274414062498],[-85.43237304687497,70.11137695312507],[-85.780029296875,70.03666992187505],[-86.32202148437503,70.14541015625],[-86.396875,70.46533203124997],[-87.838134765625,70.24658203125],[-88.78271484374997,70.49448242187503],[-89.45590820312498,71.06171874999995],[-87.84492187499995,70.94438476562505],[-87.14008789062498,71.01162109374997],[-89.80537109374993,71.46230468750005],[-89.86152343750001,72.41191406250005],[-88.70517578124998,73.40327148437495],[-87.71977539062496,73.72290039062497],[-85.95078124999998,73.85014648437505],[-84.94677734375,73.72163085937498],[-86.00053710937499,73.31254882812505],[-86.65629882812502,72.72402343750005],[-86.21845703124998,71.89912109375004],[-85.02338867187495,71.35322265625001],[-86.58935546874997,71.01079101562507]]],[[[-100.00190429687497,73.9458984375],[-99.15795898437499,73.73159179687497],[-97.66997070312499,73.88774414062499],[-97.1705078125,73.82485351562497],[-97.001708984375,73.66650390625003],[-97.62587890624997,73.50229492187498],[-97.27250976562502,73.38681640624998],[-98.42177734375002,72.94101562500003],[-97.63632812499998,73.02763671874999],[-97.128125,72.62758789062502],[-96.59208984374996,72.71025390624999],[-96.44560546874996,72.55244140624998],[-96.80146484374998,72.32241210937502],[-96.61342773437494,71.83383789062506],[-97.58227539062497,71.62968750000005],[-98.18134765624998,71.66245117187503],[-98.32270507812501,71.85234375000002],[-98.19863281249994,71.44086914062501],[-98.66289062499993,71.302099609375],[-99.22363281249996,71.387109375],[-100.594482421875,72.15234375000003],[-101.20854492187495,72.31699218749998],[-101.72392578124996,72.31489257812501],[-102.70874023437496,72.76450195312503],[-102.20400390624998,73.077294921875],[-101.27319335937497,72.7216796875],[-100.48476562500002,72.77294921874997],[-100.395703125,72.97700195312498],[-100.128125,72.90668945312495],[-100.53637695312497,73.19785156250003],[-99.82514648437503,73.2138671875],[-100.36611328125001,73.359033203125],[-100.88935546875003,73.27534179687501],[-101.52319335937501,73.48637695312502],[-100.97578124999995,73.59975585937502],[-100.5216796875,73.44931640625],[-100.96298828125002,73.79140625],[-99.99111328125,73.79516601562503],[-100.00190429687497,73.9458984375]]],[[[-98.270361328125,73.86850585937498],[-98.97392578124997,73.81206054687502],[-99.4169921875,73.89541015625002],[-97.69824218749997,74.10869140625005],[-98.270361328125,73.86850585937498]]],[[[-93.17084960937498,74.16098632812506],[-92.22270507812502,73.97236328124998],[-90.62744140625,73.95170898437505],[-90.38139648437496,73.82475585937502],[-92.11791992187497,72.75380859375],[-94.21132812499997,72.75693359375],[-93.77055664062496,72.66821289062506],[-93.55517578124994,72.42114257812497],[-94.03754882812498,72.02875976562498],[-95.00786132812496,72.01279296875],[-95.60214843749998,72.88447265624995],[-95.63291015625003,73.69545898437497],[-94.697607421875,73.66357421874997],[-95.134130859375,73.88125],[-94.97353515625,74.04140625000002],[-93.17084960937498,74.16098632812506]]],[[[-119.73632812499997,74.11264648437498],[-119.20595703125002,74.19799804687503],[-119.11796874999995,74.01552734375],[-118.54399414062499,74.24462890625003],[-117.51484375000001,74.23173828124999],[-115.51069335937501,73.61875],[-115.446875,73.43886718750002],[-118.96157226562497,72.68413085937499],[-119.51284179687501,72.30268554687501],[-120.17988281250001,72.21264648437506],[-120.61933593750001,71.50576171875002],[-121.47216796875003,71.38901367187503],[-121.74936523437502,71.44477539062501],[-123.09565429687503,71.09379882812502],[-124.00776367187494,71.67744140624998],[-125.29667968749999,71.973046875],[-125.84531250000002,71.978662109375],[-123.79726562499997,73.76816406250003],[-124.69624023437497,74.34819335937499],[-121.50415039062497,74.54511718749998],[-119.56264648437494,74.23281250000002],[-119.73632812499997,74.11264648437498]]],[[[-97.35551757812496,74.52631835937495],[-97.75,74.51054687500005],[-97.41650390624994,74.62656250000003],[-97.35551757812496,74.52631835937495]]],[[[-95.306640625,74.50541992187505],[-95.850732421875,74.58247070312504],[-95.51020507812498,74.63676757812499],[-95.306640625,74.50541992187505]]],[[[-104.11992187499995,75.03632812500004],[-104.88740234374998,75.14775390624999],[-104.34619140624996,75.42993164062503],[-103.64350585937497,75.18657226562499],[-104.11992187499995,75.03632812500004]]],[[[-93.54257812499995,75.0279296875],[-93.57309570312495,74.66884765625005],[-94.53452148437498,74.63671874999997],[-96.59960937499997,75.03178710937499],[-95.95463867187493,75.44379882812501],[-94.878173828125,75.63002929687502],[-93.90908203125002,75.42250976562502],[-93.54257812499995,75.0279296875]]],[[[-96.07856445312495,75.510107421875],[-96.91513671875003,75.37968749999999],[-96.98281249999997,75.50981445312505],[-96.367822265625,75.65463867187506],[-96.07856445312495,75.510107421875]]],[[[-94.52656249999995,75.74931640624999],[-94.901220703125,75.93076171875],[-94.53789062499996,75.99643554687506],[-94.52656249999995,75.74931640624999]]],[[[-118.328125,75.57968749999998],[-118.81713867187503,75.52211914062497],[-119.39458007812499,75.617333984375],[-117.63369140624998,76.11508789062498],[-118.328125,75.57968749999998]]],[[[-79.0630859375,75.92587890624998],[-79.63876953124995,75.84291992187505],[-79.00932617187499,76.14589843750005],[-79.0630859375,75.92587890624998]]],[[[-102.22734374999995,76.014892578125],[-102.00800781250003,75.93940429687498],[-102.57958984375003,75.78022460937498],[-103.31474609374996,75.76420898437499],[-103.04150390624999,75.91884765624997],[-103.98525390624997,75.93310546875003],[-103.80078124999994,76.03701171874997],[-104.24248046874996,76.04697265625006],[-104.35063476562497,76.18232421875001],[-102.72802734374999,76.30703125],[-102.22734374999995,76.014892578125]]],[[[-104.02285156249998,76.58310546875003],[-103.05131835937495,76.44985351562497],[-103.31137695312499,76.34755859375],[-104.35751953124995,76.33461914062502],[-104.58569335937499,76.60649414062499],[-104.07451171875003,76.66611328124998],[-104.02285156249998,76.58310546875003]]],[[[-97.70092773437497,76.46650390624998],[-97.89052734374997,75.7603515625],[-97.40751953124999,75.67250976562497],[-97.33603515624998,75.41982421875],[-97.65332031249997,75.50776367187498],[-97.87822265624996,75.41611328125003],[-97.67431640624997,75.127294921875],[-98.04531249999997,75.20083007812497],[-98.12094726562503,75.03271484375],[-100.234375,75.00771484374997],[-100.48349609374995,75.18842773437501],[-100.14570312499995,75.24614257812505],[-100.71191406250003,75.40634765625],[-99.19458007812499,75.698388671875],[-102.58740234375001,75.51367187500003],[-102.79750976562501,75.59965820312505],[-102.14472656249998,75.87504882812502],[-100.97280273437498,75.79843750000003],[-101.414990234375,75.84584960937502],[-101.87211914062496,76.08310546875003],[-101.52895507812495,76.21728515625003],[-102.1046875,76.33120117187505],[-101.41518554687495,76.42490234375003],[-99.86547851562499,75.92421875],[-100.11284179687502,76.11723632812507],[-99.54106445312497,76.14628906250005],[-100.41420898437495,76.242529296875],[-99.97773437500003,76.31245117187495],[-100.82973632812497,76.52387695312495],[-99.8140625,76.6322265625],[-98.89033203125,76.46557617187497],[-98.71083984374994,76.69384765625003],[-97.70092773437497,76.46650390624998]]],[[[-101.22612304687497,76.57934570312497],[-101.61308593749995,76.60458984375006],[-100.26914062499998,76.73413085937497],[-101.22612304687497,76.57934570312497]]],[[[-108.29238281250001,76.05712890625],[-107.72348632812502,75.99541015625002],[-108.020703125,75.80478515625],[-107.21621093749997,75.89155273437501],[-106.91352539062503,75.67963867187501],[-106.67700195312499,76.02373046875002],[-105.63266601562493,75.94536132812505],[-105.51948242187497,75.63237304687505],[-106.09262695312495,75.08945312500003],[-107.15341796874996,74.9271484375],[-108.47475585937495,74.94721679687501],[-108.83129882812501,75.06489257812498],[-112.51933593749997,74.41684570312503],[-113.67158203124997,74.45302734375005],[-114.31269531250003,74.71508789062506],[-112.835986328125,74.9755859375],[-111.67109375,75.01943359374997],[-111.09345703125001,75.25629882812498],[-113.71176757812499,75.06860351562503],[-113.85332031249996,75.259375],[-113.46708984374996,75.41611328125003],[-114.01650390624998,75.43427734375001],[-114.16845703124994,75.23950195312503],[-114.51381835937497,75.27548828125],[-114.45175781250002,75.08789062499997],[-115.02011718749999,74.97617187500003],[-115.41318359374995,75.11499023437497],[-115.72885742187496,74.968115234375],[-116.47607421874996,75.17177734375],[-117.56523437499997,75.23334960937504],[-117.25761718750002,75.45952148437502],[-116.07714843749996,75.49296874999999],[-115.14184570312501,75.67851562500005],[-116.42563476562498,75.58535156249997],[-117.16362304687496,75.64487304687503],[-116.80214843749995,75.77158203124998],[-114.99150390625002,75.896337890625],[-116.66455078124999,75.95756835937505],[-116.20986328125,76.19443359374998],[-114.77861328124999,76.17260742187497],[-115.82216796874997,76.27001953125003],[-114.99848632812503,76.4974609375],[-114.19394531249999,76.45146484375005],[-113.82348632812501,76.20683593750002],[-112.69760742187496,76.20170898437505],[-111.05268554687495,75.54853515625001],[-108.94716796875,75.54179687499999],[-108.94477539062495,75.69897460937503],[-109.8705078125,75.929052734375],[-109.48681640624999,76.14467773437497],[-110.31445312500001,76.369384765625],[-109.09824218749996,76.811865234375],[-108.46699218749997,76.73759765625007],[-108.29238281250001,76.05712890625]]],[[[-89.72646484374994,76.50742187499998],[-90.55625,76.73457031249998],[-90.13632812499995,76.83696289062505],[-89.69541015625,76.74116210937498],[-89.72646484374994,76.50742187499998]]],[[[-113.56069335937494,76.74326171874998],[-114.83525390624999,76.79467773437497],[-113.89165039062495,76.89487304687503],[-113.56069335937494,76.74326171874998]]],[[[-94.29497070312493,76.91245117187498],[-93.23002929687496,76.77026367187497],[-93.53457031250002,76.44770507812498],[-92.99536132812494,76.62041015624999],[-91.305029296875,76.68076171875003],[-90.54262695312494,76.495751953125],[-91.41508789062496,76.45585937500005],[-89.28452148437498,76.30161132812506],[-89.40659179687498,76.18916015624998],[-91.40732421874998,76.22006835937506],[-89.27758789062497,75.79506835937497],[-89.64604492187499,75.5650390625],[-88.91669921874998,75.45395507812503],[-88.64497070312495,75.65844726562503],[-88.201318359375,75.51201171875005],[-87.72973632812503,75.57563476562495],[-87.53911132812502,75.48486328125003],[-87.25693359374998,75.61772460937499],[-85.95146484374993,75.39501953125],[-85.97299804687498,75.5287109375],[-83.931982421875,75.81894531250003],[-83.23710937499993,75.75083007812503],[-82.153662109375,75.83105468750003],[-80.32197265624998,75.62910156250001],[-79.50908203125002,75.25981445312499],[-80.38198242187494,75.03417968750003],[-79.40141601562502,74.91762695312502],[-79.944482421875,74.83364257812505],[-80.34775390624998,74.90297851562505],[-80.26274414062499,74.58447265625],[-81.94018554687494,74.47270507812505],[-82.73579101562495,74.53027343749997],[-83.5220703125,74.90146484375],[-83.53188476562494,74.58569335937497],[-84.42553710937503,74.50810546875007],[-85.06142578125,74.60693359375003],[-85.133447265625,74.517431640625],[-85.44233398437495,74.6005859375],[-85.80800781249994,74.49897460937498],[-88.42304687499995,74.49414062499997],[-88.53496093749993,74.83173828125001],[-89.55869140624995,74.55473632812507],[-90.55327148437499,74.61274414062498],[-90.88022460937498,74.8177734375],[-91.13457031250002,74.64985351562498],[-91.54912109375002,74.65556640624999],[-92.3892578125,75.263330078125],[-92.18510742187499,75.84653320312498],[-93.09174804687495,76.35400390624997],[-95.27387695312498,76.26440429687503],[-96.03969726562494,76.48671875000002],[-95.65097656249998,76.58466796874998],[-96.88071289062495,76.73833007812505],[-96.40156249999995,76.79721679687503],[-96.75830078124997,76.97177734374998],[-95.84951171875002,77.06621093750005],[-94.29497070312493,76.91245117187498]]],[[[-115.55126953125001,77.36328125],[-116.32919921874996,77.137060546875],[-115.81005859374999,76.939111328125],[-116.25273437500002,76.90141601562505],[-115.94628906250003,76.71127929687503],[-116.99921874999995,76.531591796875],[-117.23359375000001,76.28154296875005],[-117.99296874999999,76.40581054687505],[-117.88081054687497,76.80507812500005],[-118.79140624999994,76.51298828125005],[-119.080712890625,76.12407226562505],[-119.58037109375,76.32651367187498],[-119.52612304687496,75.99721679687505],[-119.91289062499997,75.85883789062501],[-120.40888671874995,75.82563476562498],[-120.84838867187496,76.18266601562499],[-121.21347656249999,75.98369140625005],[-122.53305664062498,75.95092773437503],[-122.59272460937497,76.16206054687495],[-122.90278320312498,76.13471679687498],[-122.51938476562503,76.353173828125],[-121.56113281250003,76.453466796875],[-119.09018554687496,77.30507812500002],[-116.84355468749995,77.33955078124995],[-117.03974609374995,77.46513671875005],[-116.51132812500003,77.54760742187497],[-115.55126953125001,77.36328125]]],[[[-89.83325195312503,77.26762695312505],[-90.22827148437503,77.21245117187499],[-90.99321289062499,77.32949218750002],[-91.01904296875003,77.64389648437503],[-89.83896484375003,77.49140624999998],[-89.83325195312503,77.26762695312505]]],[[[-104.55815429687497,77.14174804687497],[-105.21508789062496,77.18208007812501],[-106.03559570312495,77.73984375000006],[-105.58789062499997,77.73598632812497],[-104.54223632812501,77.33774414062503],[-104.55815429687497,77.14174804687497]]],[[[-95.484375,77.79199218750003],[-93.30097656249995,77.73979492187505],[-93.54394531249997,77.466650390625],[-95.98706054687497,77.484130859375],[-96.19458007812497,77.70053710937503],[-95.484375,77.79199218750003]]],[[[-101.6935546875,77.69658203125005],[-102.37783203124995,77.728125],[-102.44770507812498,77.88061523437506],[-101.19321289062493,77.82978515624998],[-101.00205078124998,77.73510742187497],[-101.6935546875,77.69658203125005]]],[[[-113.83247070312497,77.75463867187506],[-114.28720703124998,77.72148437500005],[-114.98041992187498,77.91542968750002],[-114.33037109374997,78.07753906250002],[-113.83247070312497,77.75463867187506]]],[[[-110.45805664062496,78.10322265625001],[-109.62226562499995,78.07475585937499],[-110.865625,77.834130859375],[-110.15273437500002,77.76293945312506],[-110.19848632812501,77.52451171874998],[-112.37265625000002,77.36411132812498],[-113.16435546875002,77.5302734375],[-113.21518554687498,77.90351562500001],[-110.45805664062496,78.10322265625001]]],[[[-109.81596679687499,78.65039062500003],[-109.48447265624995,78.31640625],[-111.16918945312499,78.38627929687505],[-111.51748046874997,78.27470703125005],[-112.13125,78.366064453125],[-113.22304687499998,78.29790039062505],[-112.85585937499997,78.46684570312502],[-110.877587890625,78.73505859375004],[-109.81596679687499,78.65039062500003]]],[[[-96.20449218749994,78.53129882812499],[-94.91538085937495,78.39052734375002],[-95.32924804687497,78.22504882812495],[-94.93427734374998,78.07563476562498],[-96.98964843749994,77.80600585937503],[-97.65815429687498,78.090625],[-96.944677734375,78.15185546874997],[-98.04951171874995,78.325927734375],[-98.33261718749998,78.77353515625006],[-97.38232421875,78.78291015625001],[-96.20449218749994,78.53129882812499]]],[[[-103.42602539062499,79.315625],[-102.57617187499996,78.87939453125003],[-101.70366210937502,79.07890625000002],[-101.128125,78.80166015625002],[-100.43549804687503,78.8203125],[-99.60942382812495,78.58305664062507],[-99.16640625000002,77.85693359375003],[-100.27465820312503,77.83271484374995],[-101.07412109375001,78.19384765625],[-102.60698242187502,78.24892578125002],[-102.73134765624995,78.37104492187495],[-103.94658203124999,78.26000976562497],[-104.76357421874998,78.35166015625],[-104.90961914062498,78.55263671875],[-103.57050781250003,78.53984375000005],[-104.02084960937502,78.63491210937497],[-103.37158203125,78.73632812500003],[-104.18500976562498,78.78129882812505],[-104.15195312499999,78.989892578125],[-104.89550781249996,78.80815429687502],[-104.74677734375003,79.02709960937503],[-105.53564453124999,79.03251953125007],[-105.51455078124995,79.24248046875002],[-105.38769531249994,79.32358398437503],[-103.42602539062499,79.315625]]],[[[-98.79160156249995,79.98110351562505],[-98.94521484375,79.72407226562498],[-100.05683593749997,79.89824218750005],[-100.05327148437496,80.093359375],[-99.15322265625001,80.12421874999998],[-98.79160156249995,79.98110351562505]]],[[[-91.88554687499999,81.13286132812505],[-90.64301757812498,80.59370117187498],[-89.23559570312494,80.51064453125002],[-88.85732421874997,80.16621093750001],[-88.19990234374998,80.11147460937497],[-88.5248046875,80.41801757812507],[-87.675,80.37211914062505],[-87.92231445312501,80.09770507812499],[-86.97719726562502,79.89423828125001],[-87.29516601562494,79.58017578124998],[-86.33696289062496,79.63496093749995],[-86.00703124999998,79.47944335937498],[-85.6478515625,79.61142578125006],[-85.04213867187497,79.2845703125],[-86.95717773437502,78.97490234375005],[-87.61738281249995,78.67631835937505],[-88.04018554687494,78.99531250000004],[-87.98286132812498,78.53706054687501],[-88.74160156250002,78.58403320312499],[-88.82241210937497,78.18588867187498],[-90.037109375,78.60683593750002],[-89.52568359374999,78.15961914062495],[-90.29721679687495,78.32802734374997],[-90.614404296875,78.14985351562501],[-92.35126953125001,78.312890625],[-92.8482421875,78.46010742187497],[-91.86689453124998,78.54267578125001],[-93.26660156249997,78.60830078124997],[-93.63442382812502,78.75092773437498],[-93.15986328124998,78.77563476562503],[-94.11459960937498,78.92890625000001],[-92.54721679687495,79.28261718750002],[-91.29990234375003,79.372705078125],[-92.82192382812497,79.44990234375001],[-93.93315429687496,79.29072265624998],[-94.11030273437498,79.40156250000001],[-95.10317382812502,79.289892578125],[-95.66289062500002,79.52734374999997],[-94.40185546874997,79.736328125],[-95.73935546874995,79.66015625000003],[-96.58906249999995,79.91665039062497],[-96.77324218749999,80.13579101562502],[-94.64589843749994,80.04873046874997],[-94.26259765625002,80.19487304687499],[-95.40507812499996,80.13500976562506],[-96.39409179687493,80.31503906250003],[-95.549072265625,80.36660156249997],[-95.92695312499998,80.72065429687498],[-93.92792968749995,80.55917968750003],[-95.51474609375003,80.83813476562503],[-94.98051757812499,81.04965820312503],[-93.28671874999998,81.10029296874998],[-94.22011718749997,81.33076171875004],[-93.03466796874997,81.3462890625],[-91.88554687499999,81.13286132812505]]],[[[-69.4888671875,83.01679687499998],[-66.42255859374998,82.92685546875003],[-68.46933593749995,82.65336914062502],[-65.29902343749995,82.79960937500005],[-64.98388671874997,82.90229492187501],[-64.50400390625,82.77841796874998],[-63.641015624999966,82.81259765625003],[-63.246777343749926,82.4501953125],[-62.47519531249995,82.51958007812502],[-61.392480468749994,82.44189453125],[-61.61538085937502,82.18442382812503],[-64.43579101562497,81.74262695312501],[-66.62573242187497,81.61640624999995],[-68.68852539062493,81.29331054687503],[-64.78007812499993,81.49287109375001],[-69.55068359375,80.38325195312498],[-70.71259765625001,80.53959960937505],[-70.264892578125,80.23359374999998],[-72.05595703124996,80.12324218749995],[-70.56840820312493,80.09370117187498],[-71.387841796875,79.76176757812505],[-72.43652343750003,79.69438476562499],[-74.39448242187495,79.87407226562499],[-73.47246093749996,79.7564453125],[-73.36152343750001,79.50400390625],[-75.50341796875,79.41416015625],[-76.898828125,79.5123046875],[-75.60273437499998,79.23955078125005],[-74.48120117187503,79.22949218750006],[-74.64091796874996,79.03554687499997],[-78.58164062499998,79.075],[-77.88276367187498,78.9423828125],[-76.255859375,79.00683593749997],[-74.486328125,78.75009765624998],[-74.87861328124998,78.54482421875],[-76.41611328124995,78.51152343750005],[-75.19345703125,78.327734375],[-75.86596679687497,78.00981445312499],[-78.01259765624997,77.94604492187506],[-78.07617187500003,77.51904296875],[-78.70849609374997,77.34213867187503],[-80.57304687499996,77.31479492187506],[-81.65908203124997,77.52543945312499],[-81.3013671875,77.34404296875007],[-82.056787109375,77.29653320312497],[-81.75634765624997,77.20400390625005],[-79.49726562500001,77.19609375000005],[-78.97919921874998,76.89287109374999],[-78.28886718750002,76.97797851562501],[-77.98330078124994,76.75498046875006],[-78.284326171875,76.57124023437501],[-80.79970703124997,76.173583984375],[-80.97451171874994,76.470068359375],[-81.71738281250003,76.494970703125],[-82.52983398437499,76.723291015625],[-82.23315429687494,76.46582031250003],[-83.88569335937501,76.453125],[-84.22377929687497,76.67534179687499],[-84.27534179687498,76.35654296875006],[-85.141259765625,76.30458984375005],[-86.45371093750003,76.58486328125002],[-86.68022460937499,76.37661132812497],[-87.35419921874998,76.44804687500005],[-87.48979492187499,76.58583984374997],[-87.49755859374997,76.38627929687499],[-88.39599609374997,76.40527343750003],[-88.49584960937497,76.77285156249997],[-88.54580078125002,76.42089843750003],[-89.36962890624997,76.474462890625],[-89.49975585937503,76.82680664062502],[-88.39814453124995,77.10395507812501],[-86.81225585937497,77.18491210937498],[-87.68144531249996,77.43637695312503],[-88.01699218750002,77.78471679687505],[-86.75507812499998,77.86372070312498],[-85.58847656249998,77.46113281250004],[-84.73867187499997,77.36103515624998],[-83.72128906249998,77.41420898437497],[-82.7103515625,77.84951171875002],[-82.5953125,77.99213867187504],[-83.77939453125,77.53261718750002],[-85.28935546874996,77.55903320312498],[-85.54755859374998,77.92768554687495],[-84.61542968749998,78.19570312500002],[-84.22270507812499,78.176025390625],[-84.91035156249993,78.23969726562501],[-84.78320312499997,78.52758789062506],[-85.5859375,78.10957031249998],[-86.21777343750003,78.08120117187497],[-85.92006835937494,78.34287109374998],[-86.91323242187494,78.126806640625],[-87.5517578125,78.17661132812503],[-86.80791015624999,78.77436523437495],[-85.00375976562495,78.912255859375],[-83.27143554687501,78.77031250000002],[-81.75009765624995,78.97578124999995],[-82.43876953125002,78.903662109375],[-84.41201171875002,78.99658203125003],[-84.38359375000002,79.1185546875],[-83.57587890624995,79.05366210937501],[-86.42075195312498,79.84521484374997],[-86.49853515625003,80.25825195312501],[-83.72363281250003,80.22895507812501],[-81.68837890625,79.685791015625],[-80.47592773437498,79.60625],[-80.12446289062495,79.66948242187507],[-81.01015625000002,79.693115234375],[-82.98701171874995,80.32260742187498],[-76.86298828124995,80.86479492187505],[-78.71621093749994,80.95166015624997],[-76.88510742187503,81.43027343750006],[-81.00703125000001,80.6548828125],[-82.88432617187502,80.57753906249997],[-82.22236328124998,80.77231445312503],[-84.41782226562495,80.52675781250002],[-86.250341796875,80.56577148437506],[-86.60307617187499,80.66401367187498],[-85.63930664062494,80.92460937500007],[-83.288818359375,81.14794921875],[-85.780859375,81.03505859375],[-87.32988281250002,80.669775390625],[-88.00366210937497,80.675390625],[-89.16689453125,80.94130859375],[-86.47675781249993,81.03574218750006],[-84.94121093750002,81.28623046875],[-87.27509765624995,81.080810546875],[-89.623046875,81.032470703125],[-89.94731445312499,81.17265625000005],[-89.20869140624998,81.25009765625003],[-89.67368164062503,81.32861328125003],[-87.59702148437498,81.52583007812498],[-88.47905273437502,81.56464843749998],[-90.41630859374996,81.40537109375003],[-89.82167968749997,81.63486328124998],[-91.29238281250002,81.57124023437498],[-91.64755859374998,81.68383789062503],[-88.06318359375001,82.09648437500007],[-87.01821289062502,81.95874023437497],[-86.62680664062495,82.05102539062503],[-85.04482421874997,81.9828125],[-86.615625,82.21855468750007],[-84.89682617187503,82.44941406250001],[-82.63369140625002,82.07729492187497],[-82.53691406250002,82.24726562499995],[-79.465625,81.85112304687499],[-82.44755859374993,82.39501953125003],[-81.68115234375003,82.51865234375],[-82.11684570312497,82.62866210937503],[-80.8625,82.57153320312503],[-81.01015625000002,82.77905273437503],[-78.748779296875,82.67939453124998],[-80.15493164062497,82.91113281250003],[-77.61806640624997,82.89584960937503],[-76.009375,82.53515625],[-75.565625,82.60854492187502],[-77.12490234374994,83.00854492187497],[-74.41416015624995,83.01313476562501],[-72.65869140625,82.72163085937495],[-73.44189453124994,82.90483398437499],[-72.811669921875,83.08120117187502],[-71.98320312499996,83.10141601562498],[-70.94038085937495,82.90224609375],[-71.08481445312498,83.08266601562497],[-69.96992187499995,83.11611328125005],[-69.4888671875,83.01679687499998]]]]},"properties":{"name":"Canada","childNum":110}},{"geometry":{"type":"Polygon","coordinates":[[[9.527658197470123,47.27026989773668],[9.46249431093294,47.19858962254578],[9.46249431093294,47.09010747968864],[9.409458596647225,47.02019676540292],[9.579979133936737,47.05856388629306],[9.580273437500011,47.057373046875],[10.133496093750011,46.851513671875],[10.349414062500017,46.98476562499999],[10.414941406250023,46.964404296874996],[10.45458984375,46.8994140625],[10.452832031250011,46.86494140625],[10.406054687500017,46.73486328125],[10.39794921875,46.6650390625],[10.4306640625,46.550048828125],[10.195507812500011,46.62109375],[10.1375,46.61435546875],[10.087011718750006,46.599902343749996],[10.061230468750011,46.546777343749994],[10.038281250000011,46.483203125],[10.045605468750011,46.447900390624994],[10.081933593750023,46.420751953125],[10.109667968750017,46.362841796874996],[10.128320312500023,46.238232421875],[10.08056640625,46.227978515625],[10.041015625,46.238085937499996],[9.939257812500017,46.36181640625],[9.884472656250011,46.3677734375],[9.787792968750011,46.346044921875],[9.639453125000017,46.2958984375],[9.57958984375,46.29609375],[9.528710937500023,46.306201171874996],[9.427636718750023,46.482324218749994],[9.399316406250023,46.4806640625],[9.304394531250011,46.495556640625],[9.203417968750017,46.21923828125],[9.11874162946429,46.014892578125],[8.97551618303573,45.81677455357143],[8.74961495535715,46.02246372767857],[8.818554687500011,46.0771484375],[8.458398437500023,46.245898437499996],[8.370703125,46.445117187499996],[8.298535156250011,46.40341796875],[8.23193359375,46.341210937499994],[8.08154296875,46.256005859374994],[7.9931640625,46.015917968749996],[7.327929687500017,45.912353515625],[7.129003906250006,45.880419921874996],[7.055761718750006,45.90380859375],[7.02109375,45.92578125],[6.953710937500006,46.017138671874996],[6.897265625000017,46.0517578125],[6.772070312500006,46.16513671875],[6.758105468750017,46.415771484375],[6.578222656250006,46.437353515625],[6.428906250000011,46.430517578125],[6.321875,46.393701171874994],[6.234667968750017,46.3326171875],[6.199414062500011,46.19306640625],[6.086621093750011,46.147021484374996],[6.006640625000017,46.142333984375],[5.971484375000017,46.151220703125],[5.970019531250017,46.214697265625],[6.0361328125,46.238085937499996],[6.095898437500011,46.27939453125],[6.129687500000017,46.5669921875],[6.41015625,46.755419921874996],[6.429003906250017,46.832275390625],[6.45625,46.94833984375],[6.624804687500017,47.004345703125],[6.666894531250023,47.026513671874994],[6.688085937500006,47.058251953124994],[6.820703125000023,47.16318359375],[6.952050781250023,47.2671875],[6.978515625,47.302050781249996],[7.000585937500006,47.322509765625],[7.000585937500006,47.339453125],[6.900390625,47.39423828125],[6.968359375,47.45322265625],[7.136035156250017,47.48984375],[7.343164062500023,47.43310546875],[7.615625,47.592724609375],[8.454003906250023,47.59619140625],[8.559472656250023,47.6240234375],[8.570507812500011,47.63779296875],[8.567089843750011,47.651904296874996],[8.55234375,47.659130859375],[8.451757812500006,47.651806640625],[8.413281250000011,47.6626953125],[8.403417968750006,47.687792968749996],[8.435742187500011,47.731347656249994],[8.572656250000023,47.775634765625],[9.524023437500006,47.52421875],[9.625878906250023,47.467041015625],[9.527539062500011,47.270751953125],[9.527658197470123,47.27026989773668]]]},"properties":{"name":"Switzerland","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-67.28886718749999,-55.776855468749964],[-67.55996093749997,-55.72480468750002],[-67.39736328124997,-55.58515625],[-67.28886718749999,-55.776855468749964]]],[[[-67.07993164062498,-55.15380859374996],[-67.33969726562495,-55.292578124999984],[-67.4947265625,-55.177441406249976],[-68.07001953124995,-55.22109374999999],[-68.30136718750003,-54.98066406250003],[-67.245263671875,-54.977636718750034],[-67.07993164062498,-55.15380859374996]]],[[[-69.70297851562503,-54.91904296875],[-68.90078125000002,-55.01777343750004],[-68.45800781249997,-54.95966796875002],[-68.61328124999997,-55.155566406250045],[-68.28266601562495,-55.25517578125],[-68.04833984375,-55.6431640625],[-68.86704101562498,-55.45019531250003],[-68.89008789062498,-55.2412109375],[-69.19262695312497,-55.171875],[-69.35922851562498,-55.300683593749945],[-69.18085937499995,-55.47480468749998],[-69.41181640624995,-55.44423828124997],[-69.97978515625002,-55.14746093749999],[-69.88442382812494,-54.88203125000001],[-69.70297851562503,-54.91904296875]]],[[[-70.9916015625,-54.86796874999999],[-70.80483398437497,-54.96767578124996],[-70.41752929687493,-54.908886718749976],[-70.29785156249997,-55.11376953124997],[-70.47558593749994,-55.17705078124998],[-71.43720703125001,-54.88925781249997],[-70.9916015625,-54.86796874999999]]],[[[-71.390478515625,-54.03281250000002],[-71.02192382812495,-54.111816406250036],[-71.14326171874998,-54.374023437499986],[-71.473291015625,-54.23115234375001],[-71.94853515624999,-54.300878906250006],[-72.21044921874997,-54.04775390624995],[-71.996484375,-53.884863281249984],[-71.390478515625,-54.03281250000002]]],[[[-72.92324218749997,-53.481640625],[-72.88222656249997,-53.578320312499976],[-72.48227539062503,-53.58808593750001],[-72.20541992187503,-53.80742187500002],[-72.408544921875,-54.00380859374997],[-72.87099609375,-54.12656250000002],[-72.76376953125,-53.86484375],[-73.03945312499994,-53.83281250000004],[-73.08076171875001,-53.99804687499995],[-73.21064453125001,-53.98583984374995],[-73.31435546875,-53.72919921874998],[-73.845458984375,-53.54580078125001],[-73.44707031249993,-53.41005859374998],[-72.92324218749997,-53.481640625]]],[[[-74.38574218749994,-52.92236328125001],[-73.65400390624998,-53.06982421875003],[-73.13520507812498,-53.35390625],[-73.56728515625,-53.3068359375],[-73.86694335937494,-53.096875],[-74.27021484374995,-53.08154296875002],[-74.71201171874998,-52.74873046874998],[-74.38574218749994,-52.92236328125001]]],[[[-68.62993164062499,-52.65263671875004],[-68.65322265624994,-54.85361328124999],[-69.48627929687493,-54.85888671875],[-69.72343750000002,-54.71210937500003],[-70.49716796875,-54.80957031249999],[-71.83154296874997,-54.62617187500002],[-71.92773437500003,-54.52871093749997],[-71.80014648437498,-54.433984374999945],[-71.07993164062498,-54.444238281249994],[-70.79726562500002,-54.32724609374996],[-70.70112304687498,-54.48544921875004],[-70.31098632812498,-54.52851562500002],[-70.86308593749993,-54.11044921875003],[-70.86772460937499,-53.88417968750002],[-70.53129882812502,-53.627343750000016],[-70.37973632812495,-53.98671874999995],[-70.62983398437493,-54.005566406249976],[-70.53530273437494,-54.136132812500016],[-70.16899414062502,-54.37929687499999],[-69.74184570312494,-54.30585937500005],[-69.25317382812494,-54.557421875000045],[-69.04433593749997,-54.40673828124999],[-69.98813476562503,-54.10908203125001],[-70.15112304687503,-53.88808593750002],[-70.09111328124996,-53.72177734374998],[-69.35595703125003,-53.41630859375001],[-69.63701171874999,-53.33408203125004],[-70.32929687499998,-53.37763671875003],[-70.44335937499994,-53.085546875000034],[-70.130615234375,-52.942773437499994],[-70.38012695312494,-52.75195312500002],[-69.93544921874997,-52.82109374999998],[-69.41406249999997,-52.48623046874997],[-69.16704101562499,-52.66757812499997],[-68.78979492187497,-52.576757812500034],[-68.62993164062499,-52.65263671875004]]],[[[-74.82294921874993,-51.63017578125001],[-74.53681640624998,-51.96513671875004],[-74.69448242187497,-52.27919921874999],[-74.85180664062494,-52.27070312500003],[-75.10537109375,-51.78886718750001],[-74.82294921874993,-51.63017578125001]]],[[[-74.55864257812499,-51.27705078125001],[-74.62036132812497,-51.395703125000026],[-75.04736328125,-51.39833984375003],[-75.28911132812496,-51.625390625000016],[-75.15366210937498,-51.278808593750014],[-74.73666992187503,-51.20761718749999],[-74.55864257812499,-51.27705078125001]]],[[[-75.302001953125,-50.67998046875005],[-75.411376953125,-50.76435546875001],[-75.42763671875002,-50.48056640625002],[-75.11533203124998,-50.510449218749976],[-75.302001953125,-50.67998046875005]]],[[[-75.05478515625,-50.29609375],[-75.44912109374997,-50.34335937500004],[-75.32666015624997,-50.01181640625],[-74.8759765625,-50.10996093750001],[-75.05478515625,-50.29609375]]],[[[-75.106689453125,-48.83652343750001],[-75.38994140624999,-49.15917968750002],[-75.64116210937499,-49.195410156250034],[-75.48764648437498,-49.082421875000016],[-75.58310546874998,-48.85888671874995],[-75.106689453125,-48.83652343750001]]],[[[-74.47617187499998,-49.14785156250002],[-74.59472656249997,-50.00664062500001],[-74.76298828124996,-50.01142578125001],[-74.88041992187502,-49.72587890625001],[-74.72382812499998,-49.42382812500003],[-74.960107421875,-49.533007812499974],[-75.06601562499998,-49.85234375000002],[-75.54980468749994,-49.79130859375002],[-75.30585937499998,-49.49404296875003],[-75.46748046874995,-49.35888671875003],[-75.08603515624998,-49.27021484375],[-75.21015624999995,-49.14804687499998],[-74.94921875,-48.960156249999976],[-74.89624023437503,-48.73320312500002],[-74.54609374999993,-48.76689453125004],[-74.47617187499998,-49.14785156250002]]],[[[-75.51025390624997,-48.76347656250005],[-75.65092773437496,-48.58632812500002],[-75.57148437499993,-48.095898437500026],[-75.39140625000002,-48.01972656249997],[-75.15849609374999,-48.62265624999996],[-75.51025390624997,-48.76347656250005]]],[[[-74.56728515625,-48.591992187500026],[-74.92304687499998,-48.62646484375003],[-75.21289062499997,-48.141699218750034],[-75.19829101562502,-47.974609375000014],[-74.895654296875,-47.839355468749986],[-74.56728515625,-48.591992187500026]]],[[[-75.11220703124997,-47.8376953125],[-75.26103515625002,-47.76386718749998],[-74.92646484374998,-47.72314453125003],[-75.11220703124997,-47.8376953125]]],[[[-74.31289062500002,-45.69150390625002],[-74.46552734374995,-45.757226562499994],[-74.68984375,-45.66259765625],[-74.310546875,-45.17265625000002],[-74.31289062500002,-45.69150390625002]]],[[[-73.63217773437498,-44.82148437499997],[-73.81845703125,-44.65214843750002],[-73.72392578124993,-44.544238281249974],[-73.63217773437498,-44.82148437499997]]],[[[-72.98613281249999,-44.780078124999974],[-73.22846679687498,-44.85996093749999],[-73.39707031249998,-44.77431640624995],[-73.44506835937497,-44.641015624999966],[-73.20771484374993,-44.33496093749997],[-72.7763671875,-44.50859374999999],[-72.98613281249999,-44.780078124999974]]],[[[-73.73535156249997,-44.39453125000003],[-74.00205078125003,-44.59091796874998],[-73.728173828125,-45.195898437500034],[-74.016259765625,-45.344921875000026],[-74.61777343749998,-44.64794921874996],[-74.50180664062498,-44.47353515624995],[-74.09721679687496,-44.38935546875004],[-73.99492187499999,-44.140234375],[-73.70322265624998,-44.27412109375001],[-73.73535156249997,-44.39453125000003]]],[[[-73.81064453125003,-43.827246093750006],[-73.95566406249998,-43.921972656250034],[-74.14296874999997,-43.872167968750006],[-73.81064453125003,-43.827246093750006]]],[[[-73.77338867187498,-43.3458984375],[-74.114404296875,-43.35791015624996],[-74.387353515625,-43.231640625],[-74.03666992187496,-41.79550781249998],[-73.52783203124997,-41.89628906249999],[-73.42290039062499,-42.192871093750014],[-73.47080078124998,-42.46630859375004],[-73.78925781249993,-42.58574218750003],[-73.43632812499996,-42.9365234375],[-73.74965820312494,-43.15908203124995],[-73.77338867187498,-43.3458984375]]],[[[-78.80415039062501,-33.646484374999986],[-78.98945312499993,-33.66171874999998],[-78.87744140625003,-33.57519531250003],[-78.80415039062501,-33.646484374999986]]],[[[-109.27998046874994,-27.14042968749996],[-109.434130859375,-27.171289062500023],[-109.39047851562499,-27.068359375000014],[-109.27998046874994,-27.14042968749996]]],[[[-67.19487304687493,-22.821679687500037],[-67.00878906249994,-23.00136718750005],[-67.35620117187503,-24.033789062499963],[-68.25029296875002,-24.391992187500023],[-68.56201171875,-24.74736328125003],[-68.38422851562495,-25.091894531249977],[-68.59208984375002,-25.420019531250034],[-68.41450195312498,-26.153710937500023],[-68.59160156249999,-26.47041015624997],[-68.31865234374999,-26.973242187500006],[-68.59208984375002,-27.140039062499966],[-68.84633789062494,-27.153710937499994],[-69.17441406249998,-27.924707031250037],[-69.65693359374995,-28.413574218749986],[-69.82788085937497,-29.10322265624997],[-70.02680664062501,-29.324023437500017],[-69.95996093749997,-30.078320312500026],[-69.84428710937493,-30.175],[-69.95634765624996,-30.35820312500003],[-70.15322265625,-30.360937499999963],[-70.30908203124994,-31.02265625000004],[-70.51958007812493,-31.1484375],[-70.585205078125,-31.569433593749963],[-70.25439453125,-31.957714843750026],[-70.36376953125,-32.08349609374997],[-70.02197265625,-32.88457031250002],[-70.08486328125002,-33.20175781249998],[-69.81962890624999,-33.28378906249999],[-69.85244140625,-34.224316406250026],[-70.05205078124999,-34.30078124999997],[-70.39316406250003,-35.146875],[-70.55517578125,-35.246875],[-70.41572265625001,-35.52304687500002],[-70.40478515625,-36.06171874999998],[-71.05551757812498,-36.52373046874996],[-71.19218750000002,-36.84365234375004],[-71.16757812499998,-37.76230468749996],[-70.858642578125,-38.60449218750003],[-71.40156249999995,-38.93505859374996],[-71.53945312499997,-39.60244140624995],[-71.71992187499995,-39.63525390624997],[-71.65976562499998,-40.02080078125],[-71.81831054687493,-40.17666015624995],[-71.70898437499997,-40.381738281249994],[-71.93212890624994,-40.69169921874999],[-71.91127929687497,-41.650390624999986],[-71.75,-42.04677734375001],[-72.10820312499993,-42.25185546874995],[-72.14643554687498,-42.990039062499974],[-71.750634765625,-43.237304687499986],[-71.90498046875001,-43.34755859374998],[-71.68007812500002,-43.92958984374998],[-71.82001953124993,-44.38310546875],[-71.21259765624998,-44.44121093750003],[-71.15971679687496,-44.56025390625004],[-71.26113281250002,-44.763085937499966],[-72.06372070312503,-44.771875],[-72.04169921874998,-44.90419921875004],[-71.5962890625,-44.97919921875004],[-71.34931640624995,-45.33193359374995],[-71.74619140624998,-45.57890625],[-71.63154296874998,-45.95371093749998],[-71.87568359374998,-46.160546875],[-71.69965820312501,-46.6513671875],[-71.94023437499999,-46.83125],[-71.90498046875001,-47.201660156250014],[-72.34594726562497,-47.49267578124997],[-72.517919921875,-47.87636718749998],[-72.32832031250001,-48.11005859374998],[-72.35473632812497,-48.36582031250005],[-72.582861328125,-48.47539062499999],[-72.65126953125,-48.84160156249998],[-73.03364257812501,-49.014355468750004],[-73.13525390625,-49.30068359374999],[-73.46157226562497,-49.31386718750001],[-73.55419921875,-49.463867187500014],[-73.50126953124996,-50.125292968750024],[-73.15292968749998,-50.73828125000003],[-72.50981445312496,-50.607519531250034],[-72.34023437499997,-50.68183593749999],[-72.40766601562501,-51.54082031250002],[-71.91865234374995,-51.98955078125004],[-69.96025390624993,-52.00820312500002],[-68.443359375,-52.35664062500004],[-69.24101562499996,-52.20546874999997],[-69.62031249999995,-52.46474609374995],[-70.79511718749995,-52.76875],[-70.99584960937497,-53.77929687499997],[-71.29775390625002,-53.88339843750004],[-72.1744140625,-53.632324218749964],[-72.41289062500002,-53.35019531250004],[-71.94169921874993,-53.23408203125001],[-71.89169921874998,-53.523535156250006],[-71.79145507812498,-53.48457031249997],[-71.74052734374999,-53.232617187499976],[-71.28896484375002,-53.03369140624995],[-71.22714843750003,-52.810644531249984],[-71.38774414062496,-52.76425781250004],[-72.27802734374998,-53.13232421874997],[-72.54892578125,-53.4607421875],[-73.05273437499997,-53.24345703125005],[-72.72768554687502,-52.7623046875],[-72.453466796875,-52.814453124999964],[-72.11757812499997,-52.65],[-71.51127929687502,-52.60537109375],[-72.22568359374998,-52.52099609374995],[-72.43769531250001,-52.62578124999998],[-72.71210937499995,-52.53554687499999],[-73.12246093749997,-53.073925781249976],[-73.64521484374998,-52.83701171875003],[-73.2408203125,-52.707128906250034],[-73.12392578125,-52.487988281249976],[-73.24414062499997,-52.62402343749998],[-73.58569335937503,-52.68574218750003],[-74.01445312499999,-52.63935546875],[-74.26494140624993,-52.1048828125],[-73.83447265625,-52.23398437500001],[-73.68432617187494,-52.07773437499998],[-73.26044921874993,-52.157812500000034],[-72.79501953124998,-51.94951171875005],[-72.57084960937496,-52.200097656249945],[-72.67705078125002,-52.38466796874998],[-72.52333984374997,-52.255468750000034],[-72.62460937499998,-51.94648437499997],[-72.48964843750002,-51.76367187500003],[-72.76123046875,-51.57324218749996],[-73.16875,-51.45390624999998],[-72.60004882812495,-51.79912109374997],[-73.51816406250003,-52.04101562499996],[-73.75263671874993,-51.795507812500034],[-74.19667968749997,-51.68056640624997],[-73.92978515624995,-51.61787109374999],[-73.93950195312499,-51.26630859375005],[-74.81474609374996,-51.06289062499999],[-75.09467773437495,-50.68125],[-74.68574218749995,-50.662011718749945],[-74.77587890625003,-50.46992187499998],[-74.64448242187498,-50.360937499999984],[-74.365576171875,-50.487890625],[-74.13940429687503,-50.81777343749997],[-73.80654296875,-50.93837890625003],[-73.654443359375,-50.49267578125],[-73.97802734375003,-50.827050781249994],[-74.18559570312493,-50.485351562500014],[-73.95034179687497,-50.510546875],[-74.62958984374998,-50.19404296875],[-74.333740234375,-49.97460937499997],[-73.95859374999998,-49.994726562499984],[-74.32392578124995,-49.783398437500004],[-74.29082031249996,-49.604101562499984],[-73.83637695312493,-49.609375],[-74.09443359374993,-49.42968749999998],[-73.93496093749994,-49.02089843750001],[-74.2212890625,-49.500585937500034],[-74.36655273437503,-49.40048828124998],[-74.34101562499998,-48.59570312499998],[-74.00908203124996,-48.475],[-74.47441406249999,-48.46396484374996],[-74.58466796874998,-47.999023437500014],[-73.39106445312498,-48.14589843750001],[-73.60991210937499,-47.993945312500045],[-73.71586914062499,-47.65546875000001],[-73.94086914062498,-47.92939453125004],[-74.22705078124994,-47.96894531250001],[-74.654931640625,-47.702246093750034],[-74.5337890625,-47.567675781249974],[-74.24296874999999,-47.67929687499998],[-74.13408203125002,-47.590820312499986],[-74.48266601562497,-47.43046875],[-74.15839843749998,-47.18251953125002],[-74.31357421874998,-46.78818359374998],[-74.45419921875003,-46.76679687499997],[-74.51225585937496,-46.88515625000002],[-75.00595703125,-46.74111328124998],[-74.98417968750002,-46.51210937499995],[-75.54033203124999,-46.69873046874996],[-75.43037109374995,-46.93457031249996],[-75.70639648437498,-46.70527343749997],[-74.924462890625,-46.159667968750014],[-75.06669921874993,-45.874902343749994],[-74.15786132812497,-45.7671875],[-74.122705078125,-45.49619140625002],[-73.95717773437494,-45.40439453124998],[-73.825,-45.446875],[-74.01992187500002,-46.055859375],[-74.39296875,-46.21738281250005],[-73.96757812500002,-46.15410156250003],[-73.87871093749993,-45.846875],[-73.73525390624994,-45.81171875],[-73.70815429687502,-46.070312500000014],[-73.94863281249997,-46.533105468749966],[-73.845361328125,-46.56601562500002],[-73.59184570312493,-45.89912109375004],[-73.73076171874999,-45.47998046875],[-73.26621093749995,-45.346191406250014],[-72.933837890625,-45.45234374999997],[-73.44497070312497,-45.23818359374995],[-73.36245117187502,-44.97822265625001],[-72.73896484375001,-44.73417968750003],[-72.680078125,-44.59394531249997],[-72.66386718749999,-44.43642578124995],[-73.26508789062498,-44.16865234375001],[-73.22446289062498,-43.89794921875003],[-73.06879882812495,-43.86201171874998],[-72.99658203125,-43.63154296875001],[-73.07597656250002,-43.323632812499994],[-72.75800781249998,-43.039453125],[-72.84804687500002,-42.66914062499997],[-72.77392578125003,-42.505175781250045],[-72.63183593750003,-42.509667968749994],[-72.77324218749996,-42.257714843749994],[-72.63105468749995,-42.199804687500006],[-72.412353515625,-42.388183593750014],[-72.49941406249997,-41.98085937499999],[-72.82407226562503,-41.90878906249996],[-72.36040039062499,-41.64912109375],[-72.31826171875,-41.49902343749997],[-72.54238281250002,-41.690625],[-72.95283203124995,-41.51474609374998],[-73.24179687499995,-41.78085937500002],[-73.62402343750003,-41.77363281249997],[-73.73515625000002,-41.74248046875002],[-73.62392578125,-41.581347656250045],[-73.81074218749995,-41.51748046875001],[-73.96586914062493,-41.118261718750034],[-73.67099609375,-39.96318359374999],[-73.41040039062503,-39.78916015624998],[-73.22646484375002,-39.22441406250003],[-73.52021484375001,-38.509375],[-73.46479492187498,-38.04033203125003],[-73.66181640624998,-37.69853515625003],[-73.66240234375002,-37.341015625000026],[-73.60166015624998,-37.18847656250003],[-73.21596679687502,-37.16689453124998],[-73.11806640624997,-36.68837890625002],[-72.58735351562493,-35.759667968749994],[-72.62392578125002,-35.5857421875],[-72.22377929687494,-35.096191406250014],[-72.00283203124997,-34.16533203125],[-71.66435546875002,-33.65263671875],[-71.74296875,-33.09511718750001],[-71.45224609374998,-32.65957031250001],[-71.70893554687495,-30.62802734375002],[-71.66948242187499,-30.33037109374996],[-71.40039062499997,-30.142968749999966],[-71.31572265624996,-29.649707031250017],[-71.51923828124993,-28.926464843750026],[-71.30673828124998,-28.672460937499963],[-71.08652343749998,-27.814453124999957],[-70.92578125,-27.588671874999974],[-70.64658203124998,-26.329394531250017],[-70.71372070312498,-25.78417968749997],[-70.44536132812502,-25.17265624999999],[-70.57412109374994,-24.644335937500003],[-70.39233398437494,-23.565917968749957],[-70.59335937499995,-23.255468750000034],[-70.56318359374995,-23.057031250000023],[-70.33168945312494,-22.848632812500014],[-70.08002929687501,-21.356835937500037],[-70.19702148437494,-20.725390625],[-70.15742187499995,-19.70585937500003],[-70.41826171874999,-18.345605468750023],[-69.92636718749998,-18.206054687500014],[-69.80258789062498,-17.990234375000014],[-69.85209960937493,-17.70380859375001],[-69.68476562499995,-17.649804687500023],[-69.58642578125,-17.57324218749997],[-69.51093749999998,-17.50605468749997],[-69.31337890624997,-17.943164062500017],[-69.28232421875003,-17.96484375],[-69.09394531249993,-18.05048828125004],[-69.14545898437495,-18.14404296875],[-69.09228515624994,-18.28242187500004],[-69.02680664062493,-18.65625],[-68.97885742187503,-18.81298828125003],[-68.96831054687502,-18.967968749999983],[-68.85795898437499,-19.09335937500005],[-68.62055664062495,-19.29667968749999],[-68.54785156249997,-19.341113281249974],[-68.49199218749996,-19.381933593750034],[-68.47016601562495,-19.409960937499974],[-68.46289062499997,-19.43281250000001],[-68.57529296874998,-19.56015625000002],[-68.69829101562499,-19.721093750000037],[-68.69619140625,-19.74072265625003],[-68.57827148437494,-19.856542968750006],[-68.559375,-19.902343750000014],[-68.56069335937502,-19.96708984374996],[-68.75932617187499,-20.115527343750003],[-68.74516601562493,-20.45859375],[-68.48432617187498,-20.628417968749957],[-68.55825195312497,-20.90195312499999],[-68.197021484375,-21.30029296874997],[-68.18642578124997,-21.618554687499966],[-67.88173828124997,-22.493359375000026],[-67.87944335937496,-22.822949218750026],[-67.57993164062495,-22.89169921874999],[-67.36225585937493,-22.85517578125001],[-67.19487304687493,-22.821679687500037]]]]},"properties":{"name":"Chile","childNum":26}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[110.88876953125006,19.99194335937497],[111.01367187500003,19.65546875000001],[110.64091796875002,19.291210937499955],[110.45126953125012,18.747949218750023],[110.06738281249997,18.447558593750045],[109.51933593750007,18.21826171875003],[108.7015625,18.535253906250034],[108.66552734375003,19.304101562499994],[109.27666015625002,19.761132812500023],[109.17744140625004,19.768457031250023],[109.26347656250007,19.882666015625006],[110.1715820312501,20.053710937500057],[110.58818359375002,19.976367187500017],[110.6517578125,20.137744140625017],[110.88876953125006,19.99194335937497]]],[[[110.38515625000005,21.093164062499966],[110.52158203125006,21.083105468750063],[110.50390625000003,20.96772460937501],[110.28095703125004,21.001171874999983],[110.38515625000005,21.093164062499966]]],[[[112.64375,21.63964843750003],[112.525,21.62304687500003],[112.64765625000004,21.710253906250017],[112.64375,21.63964843750003]]],[[[112.79023437500004,21.601855468750045],[112.78203125000007,21.772265625000045],[112.86259765625002,21.75263671875004],[112.79023437500004,21.601855468750045]]],[[[118.1830078125,24.496289062499983],[118.0905273437501,24.446142578125063],[118.10380859375002,24.552343750000034],[118.1830078125,24.496289062499983]]],[[[119.82089843750006,25.45698242187504],[119.70029296875012,25.432714843750063],[119.72255859375005,25.638818359375023],[119.83837890625003,25.591064453125],[119.82089843750006,25.45698242187504]]],[[[121.2513671875,28.086425781250057],[121.13154296875004,28.062597656250006],[121.20546875,28.204394531250017],[121.2513671875,28.086425781250057]]],[[[122.29589843750003,29.96342773437499],[122.02402343750012,30.01333007812505],[121.96943359375004,30.143115234375017],[122.28447265625007,30.068017578124994],[122.29589843750003,29.96342773437499]]],[[[121.86269531250005,31.492285156249977],[121.519921875,31.549609375000017],[121.2111328125001,31.80537109375001],[121.86269531250005,31.492285156249977]]],[[[130.52695312500012,42.535400390625],[130.24667968750012,42.744824218749955],[130.24033203125006,42.891796874999955],[129.89824218750002,42.998144531250034],[129.69785156250012,42.448144531249994],[129.3136718750001,42.41357421874997],[128.92343750000006,42.038232421874966],[128.04521484375007,41.9875],[128.28925781250004,41.60742187500006],[128.14941406249997,41.38774414062496],[127.17968750000003,41.531347656250006],[126.95478515625004,41.76948242187501],[126.74306640625,41.724853515625],[125.98906250000002,40.904638671875034],[124.8893554687501,40.459814453125006],[124.36210937500002,40.004052734374994],[124.10576171875002,39.84101562499998],[123.65087890625003,39.881591796875],[122.8400390625001,39.600830078125],[121.98232421875,39.05317382812498],[121.67724609374997,39.00341796875006],[121.64990234375003,38.865087890625034],[121.16357421874997,38.73164062500001],[121.10673828125002,38.920800781249994],[121.6798828125001,39.10869140625002],[121.62763671875004,39.22016601562498],[121.81845703125006,39.38652343750002],[121.27548828125006,39.38476562500003],[121.26748046875,39.544677734375],[121.51757812499997,39.638964843750045],[121.51738281250002,39.84482421875006],[121.8009765625001,39.950537109375006],[122.27500000000012,40.541845703125034],[121.83486328125005,40.97426757812502],[121.72929687500002,40.84614257812504],[121.1745117187501,40.901269531249994],[120.47910156250006,40.23095703125003],[119.39111328125003,39.75249023437499],[118.976953125,39.182568359374955],[118.29785156249997,39.067089843749955],[118.04091796875,39.22675781249998],[117.86572265625003,39.191259765625034],[117.61669921875003,38.852880859375034],[117.5578125000001,38.625146484374994],[117.76669921875012,38.311669921874994],[118.01494140625007,38.18339843749996],[118.94003906250006,38.04277343750002],[119.08916015625007,37.70073242187496],[118.95263671875003,37.33115234374998],[119.28740234375002,37.138281250000034],[119.76054687500007,37.15507812499999],[120.31152343750003,37.62270507812505],[120.2572265625,37.67900390624996],[120.75,37.83393554687501],[121.64023437500012,37.46035156250002],[122.05664062500003,37.528906250000034],[122.66699218750003,37.40283203125003],[122.4466796875,37.06811523437503],[122.51972656250004,36.94682617187502],[122.34091796875012,36.83222656250004],[121.93271484375006,36.95947265625003],[121.05380859375006,36.61137695312499],[120.81083984375007,36.6328125],[120.89580078125007,36.44414062500002],[120.71152343750006,36.41328125000004],[120.6378906250001,36.129931640625045],[120.39306640625003,36.053857421874994],[120.32773437500006,36.228173828124994],[120.18330078125004,36.20244140624999],[120.094140625,36.11889648437503],[120.28476562500006,35.98442382812499],[119.42968749999997,35.301416015624994],[119.16533203125002,34.84882812499998],[119.20097656250002,34.748437499999966],[120.26669921875006,34.274023437500034],[120.87109374999997,33.016503906249994],[120.8532226562501,32.66137695312503],[121.34169921875005,32.42504882812503],[121.40390625000006,32.20625],[121.85634765625,31.816455078125045],[121.86630859375006,31.703564453124955],[121.68085937500004,31.71215820312503],[121.351953125,31.85878906250005],[120.97353515625,31.86938476562497],[120.52011718750006,32.10585937500002],[120.03593750000002,31.93627929687503],[120.7155273437501,31.983740234375006],[120.7877929687501,31.81977539062501],[121.66064453124997,31.319726562499994],[121.87792968750003,30.91699218750003],[121.41894531249997,30.789794921875057],[120.8214843750001,30.354638671875023],[120.44980468750006,30.38784179687505],[120.19462890625002,30.241308593750034],[120.49453125,30.303076171875006],[120.63339843750006,30.133154296875034],[121.25800781250004,30.30410156250005],[121.67792968750004,29.979101562500006],[122.08291015625005,29.870361328125057],[121.50625,29.484570312499955],[121.94121093750002,29.605908203124983],[121.91777343750007,29.13500976562497],[121.71748046875004,29.25634765625],[121.48710937500007,29.193164062500017],[121.67968749999997,28.953125],[121.54003906250003,28.931884765625],[121.6625,28.851416015625034],[121.47519531250006,28.64140625],[121.60996093750006,28.29213867187505],[121.27226562500002,28.222119140624983],[121.14570312500004,28.32666015624997],[120.95859375000006,28.037011718750023],[120.74765625000006,28.00996093750001],[120.83300781249997,27.891455078125034],[120.58750000000012,27.580761718749983],[120.60751953125012,27.41240234374996],[120.2787109375,27.097070312500023],[120.08671875000007,26.67158203125004],[119.88222656250005,26.610449218750006],[119.82421874999997,26.84638671875001],[119.71044921874997,26.728662109375023],[119.58818359375002,26.784960937500045],[119.8810546875001,26.33417968750004],[119.46308593750004,26.05468750000003],[119.13945312500007,26.12177734375001],[119.33203124999997,25.94873046875003],[119.61875000000012,26.003564453124994],[119.53945312500005,25.59125976562504],[119.6224609375,25.391162109375017],[119.180078125,25.449804687499977],[119.285546875,25.232226562500074],[118.97753906249997,25.209277343750017],[118.90908203125005,24.92890625000001],[118.63691406250004,24.835546874999977],[118.65703125000002,24.621435546874977],[118.0871093750001,24.627001953125045],[118.00595703125006,24.48198242187499],[117.84267578125005,24.47431640625004],[118.0560546875,24.24609374999997],[117.62822265625002,23.836718750000074],[117.46640625000012,23.84057617187497],[117.36767578124997,23.58862304687497],[117.29082031250007,23.71435546875],[117.08251953124997,23.578759765625023],[116.91064453124997,23.646679687499983],[116.86093750000006,23.453076171874983],[116.62939453124997,23.353857421875034],[116.69882812500006,23.277783203124983],[116.53828125000004,23.17968749999997],[116.47070312499997,22.945898437500034],[116.25185546875005,22.981347656249994],[115.85214843750006,22.801562500000045],[115.64042968750002,22.853417968750023],[115.49833984375002,22.718847656250063],[115.19580078125003,22.81728515625005],[114.85380859375007,22.616796875000063],[114.65166015625002,22.755273437500023],[114.55419921874997,22.52890625],[114.26601562500005,22.540966796874983],[114.01542968750007,22.51191406250001],[113.61962890624997,22.861425781249977],[113.6205078125,23.12749023437499],[113.51972656250004,23.102099609375074],[113.33105468749997,22.912011718749966],[113.55302734375002,22.594042968750045],[113.54912109375002,22.225195312500034],[113.14902343750012,22.075],[113.08876953125,22.207958984374983],[112.95390625000007,21.907324218750034],[112.80859374999997,21.944628906250074],[112.58632812500005,21.77685546875],[112.35966796875007,21.97802734375003],[112.30498046875002,21.74169921875003],[111.94394531250012,21.84965820312499],[111.60273437500004,21.55908203125003],[111.01689453125007,21.51171874999997],[110.56718750000002,21.21406250000001],[110.41093750000007,21.33813476562497],[110.15400390625004,20.944628906250017],[110.36542968750004,20.837597656249955],[110.31308593750012,20.67167968749999],[110.51152343750007,20.51826171875001],[110.34472656249997,20.29482421875005],[109.88251953125004,20.364062500000045],[109.96835937500006,20.448144531250023],[109.66259765625003,20.91689453125005],[109.68125000000012,21.13164062499999],[109.93076171875012,21.480566406250034],[109.6869140625,21.52460937500004],[109.56640624999997,21.690576171874994],[109.54404296875012,21.537939453125006],[109.14863281250004,21.425537109375],[109.1017578125001,21.59047851562505],[108.77167968750004,21.63046875],[108.59375,21.901025390624994],[108.47988281250005,21.904638671875006],[108.50214843750004,21.633447265624994],[108.32480468750006,21.693505859374994],[108.24628906250004,21.55839843749999],[107.97265624999997,21.507958984375023],[107.75927734374997,21.655029296875057],[107.35117187500012,21.60888671874997],[106.97099609375002,21.923925781250034],[106.66357421875003,21.97890625000005],[106.55039062500006,22.501367187499994],[106.78027343749997,22.778906250000034],[106.54179687500007,22.908349609375023],[106.2790039062501,22.857470703125045],[106.14843749999997,22.970068359375006],[105.8429687500001,22.922802734374955],[105.27539062500003,23.34521484375003],[104.86474609375003,23.136376953125023],[104.68730468750002,22.822216796874983],[104.37177734375004,22.704052734374983],[104.14306640624997,22.800146484375006],[103.94150390625006,22.540087890625045],[103.62021484375006,22.782031250000045],[103.49296875000007,22.587988281250034],[103.32666015625003,22.769775390625057],[102.98193359374997,22.4482421875],[102.47089843750004,22.75092773437501],[102.40644531250004,22.70800781249997],[102.2370117187501,22.466015624999983],[102.1759765625001,22.414648437500006],[102.12744140624997,22.379199218750045],[101.84179687500003,22.38847656249999],[101.75996093750004,22.490332031250034],[101.73876953124997,22.495263671874994],[101.70751953125003,22.486572265625],[101.67148437500006,22.462304687500023],[101.64619140625004,22.405419921874966],[101.61992187500002,22.32744140624999],[101.56787109374997,22.27636718749997],[101.52451171875006,22.25366210937497],[101.7365234375001,21.826513671874977],[101.74394531250007,21.77797851562505],[101.74726562500004,21.605761718750045],[101.72294921875007,21.31494140625003],[101.80058593750007,21.212597656249983],[101.78349609375007,21.204150390625017],[101.728125,21.156396484374994],[101.7047851562501,21.15014648437503],[101.54238281250005,21.23427734375005],[101.2814453125001,21.184130859375045],[101.24785156250007,21.197314453125045],[101.22441406250002,21.223730468750034],[101.21181640625,21.278222656250023],[101.2199218750001,21.34243164062505],[101.17539062500006,21.407519531250074],[101.19667968750005,21.522070312500063],[101.1388671875001,21.567480468749977],[101.07978515625004,21.75585937499997],[100.60458984375012,21.471777343750006],[100.14765625000004,21.480517578125017],[99.94072265625007,21.75874023437504],[99.9176757812501,22.02802734375001],[99.19296875000006,22.12597656249997],[99.50712890625002,22.959130859374994],[99.41806640625006,23.069238281250023],[98.86376953125003,23.191259765625034],[98.8322265625001,23.624365234374977],[98.67675781250003,23.905078125000045],[98.83505859375006,24.121191406250034],[98.2125,24.110644531250017],[97.56455078125012,23.911035156250023],[97.7082031250001,24.228759765625],[97.53144531250004,24.49169921875003],[97.58330078125002,24.77480468750005],[97.73789062500006,24.869873046875057],[97.8195312500001,25.251855468749994],[98.01074218749997,25.292529296875017],[98.14287109375007,25.571093750000017],[98.33378906250007,25.586767578125006],[98.65625,25.86357421874999],[98.56406250000006,26.072412109374994],[98.68554687499997,26.189355468750023],[98.7384765625001,26.785742187500006],[98.65117187500007,27.572460937499983],[98.4525390625,27.6572265625],[98.29882812499997,27.550097656250045],[98.06162109375012,28.185888671874977],[97.59921875000006,28.51704101562504],[97.53789062500002,28.510205078124983],[97.43144531250002,28.353906250000023],[97.35644531249997,28.254492187500006],[97.32158929493812,28.217097107438057],[97.3027336276825,28.08710519614969],[97.34382779482424,27.982305259167095],[97.04929369561631,27.76000444316393],[96.96494598325154,27.699301564540924],[96.19423412199573,28.04146177926422],[95.73730002295082,28.117613231051525],[95.11298892962586,27.748338353239472],[94.07167814294401,27.588707868507477],[93.61247595136224,27.323800298697016],[93.30681393470121,26.786120363519142],[92.74319481218781,26.833531317384058],[92.04974640832253,26.874866505386724],[92.07342257335648,26.915311275859864],[92.06813426293174,26.9752569185349],[92.02985139563152,27.03987087331446],[91.99856592104459,27.079255842602592],[91.99177981607339,27.100605151743654],[92.0025114452454,27.147290053160265],[92.03101585307499,27.214271359861193],[92.08387457645458,27.29090135496722],[92.04520857607581,27.364442429033787],[91.99069061380867,27.450181624174498],[91.95099838734396,27.45828799115413],[91.85276579410389,27.438593286730903],[91.74366351462741,27.442853010105477],[91.59505352446729,27.557262710287986],[91.63193359375012,27.759960937499983],[91.64189453125002,27.923242187500023],[91.36259958579089,28.02438066407592],[91.27304687500012,28.078369140625],[91.22587890625007,28.071240234374983],[91.07773437500012,27.974462890624977],[91.02080078125002,27.970068359374977],[90.71572265625,28.071728515624983],[90.63007812500004,28.078564453124955],[90.47734375000007,28.07084960937499],[90.3527343750001,28.080224609375023],[90.33310546875012,28.093994140625],[90.36298828125004,28.21650390625001],[90.34824218750006,28.24394531249999],[90.22080078125006,28.27773437500005],[90.10449218749997,28.302050781250017],[89.98105468750006,28.311181640625023],[89.8978515625,28.29414062500001],[89.81689453125003,28.25629882812501],[89.74980468750002,28.18818359375001],[89.65273437500005,28.158300781250034],[89.53691406250007,28.10742187499997],[89.4806640625001,28.059960937499994],[88.89140625000002,27.316064453124966],[88.83251953125003,27.36284179687499],[88.7648437500001,27.429882812499983],[88.74902343749997,27.521875],[88.82988281250002,27.76738281249999],[88.84882812500004,27.86865234375],[88.80371093750003,28.006933593750034],[88.57792968750002,28.093359375000034],[88.42597656250004,28.01166992187501],[88.27519531250007,27.968847656250006],[88.14111328125003,27.94892578125001],[88.10898437500006,27.933007812499966],[88.10976562500005,27.870605468750057],[87.8607421875,27.886083984375006],[87.62255859374997,27.81518554687503],[87.29072265625004,27.821923828124994],[87.14140625000002,27.838330078124955],[87.02011718750006,27.928662109374983],[86.9337890625001,27.96845703125001],[86.84238281250012,27.99916992187505],[86.750390625,28.022070312500006],[86.71962890625005,28.070654296875034],[86.69052734375006,28.09492187500001],[86.61445312500004,28.10302734374997],[86.55449218750007,28.08520507812497],[86.51689453125007,27.963525390624966],[86.40869140625003,27.928662109374983],[86.32861328124997,27.95952148437496],[86.2179687500001,28.022070312500006],[86.13701171875002,28.114355468750063],[86.07871093750006,28.08359375],[86.0641601562501,27.934716796874966],[85.99453125000005,27.910400390625],[85.95410156249997,27.92822265624997],[85.92167968750002,27.989697265624983],[85.84023437500005,28.135351562499977],[85.75947265625004,28.220654296874955],[85.67832031250012,28.277441406249977],[85.41064453125003,28.27602539062505],[85.21210937500004,28.292626953124966],[85.1224609375,28.315966796875017],[85.08857421875004,28.37226562500001],[85.121484375,28.484277343750023],[85.16015624999997,28.571875],[85.15908203125,28.592236328124983],[85.1263671875,28.602636718750063],[85.06914062500007,28.60966796874999],[84.85507812500006,28.553613281250023],[84.796875,28.560205078125023],[84.2287109375001,28.911767578124966],[84.17558593750002,29.036376953125057],[84.12783203125005,29.15629882812496],[84.10136718750002,29.21997070312497],[84.02197265624997,29.25385742187504],[83.93593750000005,29.27949218750001],[83.58349609375003,29.18359375000003],[83.15546875000004,29.612646484375034],[82.22070312500003,30.063867187500023],[82.04335937500005,30.326757812500034],[81.8548828125,30.362402343750006],[81.64189453125007,30.3875],[81.4171875000001,30.33759765625001],[81.25507812500004,30.09331054687499],[81.17714843750005,30.039892578125034],[80.98544921875006,30.23710937499999],[80.87353515625003,30.290576171875045],[80.19121093750002,30.56840820312496],[80.20712890625006,30.683740234375023],[79.92451171875004,30.888769531250034],[79.66425781250004,30.96523437499999],[79.38847656250007,31.064208984375],[79.10712890625004,31.402636718750017],[78.74355468750005,31.323779296875017],[78.7550781250001,31.55029296875],[78.69345703125006,31.740380859374994],[78.72558593750003,31.983789062500023],[78.49589843750002,32.21577148437504],[78.4552734375001,32.30034179687502],[78.41748046874997,32.466699218749994],[78.38964843749997,32.51987304687498],[78.73671875,32.55839843750002],[78.75351562500012,32.49926757812506],[78.91894531249997,32.35820312500002],[79.16992187500003,32.497216796874994],[79.14550781250003,33.00146484375006],[79.10283203125007,33.05253906249996],[79.13515625000005,33.17192382812496],[79.1125,33.22626953125001],[78.94843750000004,33.346533203125006],[78.86503906250002,33.43110351562501],[78.78378906250006,33.80878906250004],[78.72666015625006,34.013378906249955],[78.97060546875,34.22822265625004],[78.93642578125,34.35195312500002],[78.86484375000006,34.39033203125001],[78.32695312500007,34.60639648437498],[78.15849609375002,34.94648437499998],[78.07578125000006,35.13491210937502],[78.0426757812501,35.47978515625002],[77.79941406250006,35.49589843750002],[77.44648437500004,35.47558593750006],[77.29482421875005,35.508154296875034],[77.09003906250004,35.55205078124999],[76.87890625000003,35.61328125000003],[76.76689453125002,35.661718750000034],[76.72753906250003,35.67866210937504],[76.63183593749997,35.729394531249966],[76.56347656249997,35.77299804687499],[76.55126953124997,35.887060546875034],[76.50205078125006,35.87822265625002],[76.38574218750003,35.837158203125],[76.25166015625004,35.8109375],[76.17783203125012,35.810546875],[76.14785156250005,35.82900390625002],[76.07089843750006,35.983007812500034],[75.91230468750004,36.048974609374994],[75.97441406250007,36.38242187500006],[75.9518554687501,36.458105468750034],[75.9330078125,36.52158203124998],[75.840234375,36.64970703124999],[75.7721679687501,36.694921875000034],[75.6671875000001,36.741992187500045],[75.57373046874997,36.75932617187502],[75.46025390625002,36.725048828124955],[75.42421875000005,36.73823242187498],[75.37685546875,36.88369140625005],[75.34667968749997,36.913476562499966],[75.05390625000004,36.98715820312498],[74.94912109375,36.96835937500006],[74.88925781250006,36.95244140625002],[74.69218750000007,37.035742187500006],[74.60058593749997,37.03666992187502],[74.54140625,37.02216796875001],[74.52646484375006,37.03066406250005],[74.49794921875,37.057226562500034],[74.37617187500004,37.13735351562502],[74.37216796875006,37.15771484375],[74.558984375,37.23662109374999],[74.66894531250003,37.266699218750006],[74.72666015625006,37.29072265625001],[74.7389648437501,37.28564453125003],[74.76738281250002,37.249169921874966],[74.840234375,37.22504882812504],[74.89130859375004,37.231640624999955],[75.11875,37.38569335937498],[74.8942382812501,37.60141601562498],[74.81230468750002,38.46030273437498],[74.27744140625,38.659765625000034],[74.02558593750004,38.53984375000002],[73.80166015625,38.60688476562501],[73.69609375000007,38.85429687499996],[73.8052734375,38.968652343749994],[73.60732421875,39.229199218749955],[73.63632812500006,39.396679687499955],[73.63164062500007,39.44887695312502],[73.82294921875004,39.48896484375004],[73.90712890625,39.578515624999966],[73.9146484375,39.60649414062499],[73.88251953125004,39.71455078124998],[73.83974609375005,39.76284179687505],[73.8353515625,39.800146484375006],[73.85625,39.828662109375045],[73.88457031250002,39.87792968750006],[73.93876953125002,39.97880859374999],[73.99160156250005,40.04311523437502],[74.83046875,40.32851562499999],[74.80126953124997,40.428515625000045],[74.83515625000004,40.482617187499955],[74.865625,40.493505859375034],[75.0044921875,40.44951171874996],[75.11132812499997,40.4541015625],[75.24101562500002,40.48027343750002],[75.52080078125002,40.627539062500006],[75.55556640625,40.625195312499955],[75.6771484375,40.305810546874994],[75.87197265625,40.30322265625],[76.25830078124997,40.43076171875006],[76.3185546875001,40.352246093749955],[76.39638671875005,40.389794921874966],[76.4801757812501,40.44951171874996],[76.57792968750002,40.577880859375],[76.62216796875006,40.66235351562497],[76.6398437500001,40.74223632812499],[76.66113281249997,40.77963867187498],[76.70839843750005,40.818115234375],[76.82402343750002,40.982324218749966],[76.90771484374997,41.02416992187497],[76.98662109375002,41.039160156250006],[77.58173828125004,40.99277343750006],[77.71933593750012,41.024316406249994],[77.81523437500002,41.05561523437498],[77.9564453125,41.05068359375005],[78.1234375,41.07563476562498],[78.34628906250012,41.28144531249998],[78.36240234375012,41.37163085937496],[78.44287109374997,41.41752929687499],[78.742578125,41.56005859375],[79.29355468750006,41.78281249999998],[79.76611328124997,41.89887695312501],[79.84042968750012,41.99575195312502],[79.90966796875003,42.014990234375034],[80.21621093750005,42.03242187500004],[80.23515625000007,42.04345703124997],[80.24619140625012,42.05981445312503],[80.209375,42.190039062500006],[80.20224609375012,42.73447265624998],[80.53896484375005,42.873486328124955],[80.39023437500006,43.043115234374966],[80.78574218750006,43.16157226562504],[80.35527343750002,44.09726562500006],[80.48154296875006,44.71464843749999],[79.871875,44.88378906249997],[80.05917968750012,45.006445312500006],[81.69199218750012,45.34936523437497],[81.94492187500006,45.16083984375001],[82.26660156249997,45.21909179687498],[82.52148437500003,45.12548828125],[82.61162109375007,45.424267578124955],[82.31523437500002,45.59492187499998],[83.02949218750004,47.18593750000002],[84.016015625,46.97050781250002],[84.66660156250006,46.97236328125004],[84.78613281249997,46.83071289062505],[85.484765625,47.06352539062496],[85.65664062500005,47.254638671875],[85.52597656250006,47.915625],[85.7494140625,48.38505859374999],[86.54941406250012,48.52861328125002],[86.8083007812501,49.04970703125002],[87.32285156250012,49.085791015625006],[87.41669921875004,49.07661132812501],[87.5158203125001,49.122412109375006],[87.7625,49.16582031249996],[87.81425781250002,49.162304687499955],[87.87216796875012,49.000146484374966],[87.74316406250003,48.88164062499999],[87.83183593750007,48.79165039062505],[88.02792968750006,48.735595703125],[88.06005859375003,48.707177734374966],[87.9796875000001,48.55512695312498],[88.30996093750005,48.47207031250002],[88.41396484375,48.403417968750006],[88.51708984374997,48.384472656249955],[88.56679687500005,48.31743164062496],[88.57597656250007,48.220166015624955],[88.68183593750004,48.170556640624994],[88.83828125000005,48.101708984374994],[88.91777343750007,48.089013671874966],[89.04765625000007,48.002539062500034],[89.47919921875004,48.02905273437503],[89.5609375,48.00395507812496],[89.778125,47.82700195312498],[89.83134765625002,47.82329101562502],[89.91044921875007,47.844335937500034],[89.95869140625004,47.88632812499998],[90.02792968750012,47.877685546875],[90.1032226562501,47.74541015624996],[90.19101562500012,47.70209960937501],[90.31328125000007,47.67617187499999],[90.33066406250006,47.655175781249966],[90.42519531250005,47.50410156250001],[90.49619140625012,47.28515625],[90.64335937500007,47.10029296874998],[90.71552734375004,47.00385742187498],[90.7990234375001,46.98515624999999],[90.86992187500002,46.95449218750005],[90.91054687500005,46.88325195312501],[90.9857421875,46.7490234375],[90.9115234375,46.270654296874994],[90.94755859375002,46.17729492187499],[90.99677734375004,46.10498046875],[91.00175781250007,46.03579101562502],[90.6618164062501,45.525244140625006],[90.87724609375002,45.19609375000002],[91.05,45.217431640624994],[91.584375,45.07651367187498],[92.42382812499997,45.008935546874994],[92.57890625000002,45.01098632812506],[92.78789062500007,45.035742187500034],[93.51621093750012,44.944482421874994],[94.71201171875012,44.35083007812503],[95.35029296875004,44.27807617187503],[95.32558593750005,44.03935546874999],[95.52558593750004,43.953955078125006],[95.85957031250004,43.27597656249998],[96.38544921875004,42.72036132812502],[97.20566406250012,42.78979492187506],[99.46787109375012,42.568212890625034],[99.98378906250005,42.67734375000006],[100.08632812500005,42.67075195312506],[100.51904296875003,42.61679687499998],[101.09199218750004,42.55131835937496],[101.49531250000004,42.53876953124998],[101.57910156249997,42.52353515624998],[101.65996093750002,42.50004882812499],[101.97294921875002,42.21586914062502],[102.15664062500005,42.158105468749966],[102.57519531249997,42.09208984375002],[103.07285156250006,42.00595703125006],[103.7111328125001,41.75131835937506],[103.99726562500004,41.796972656250034],[104.30517578124997,41.84614257812501],[104.49824218750004,41.87700195312499],[104.49824218750004,41.65869140625],[104.86035156250003,41.64375],[104.98203125000012,41.59550781250002],[105.05058593750002,41.61591796875001],[105.1154296875001,41.66328124999998],[105.19707031250002,41.738037109375],[105.31435546875005,41.77089843750005],[105.86757812500005,41.993994140625034],[106.77001953125003,42.28872070312502],[108.17119140625002,42.44731445312502],[108.68730468750002,42.416113281250034],[109.33984374999997,42.43837890625005],[109.44316406250002,42.455957031249994],[110.40039062499997,42.77368164062497],[111.00722656250005,43.34140624999998],[111.878125,43.68017578125],[111.93173828125012,43.81494140625],[111.40224609375005,44.367285156250006],[111.89804687500006,45.064062500000034],[112.03261718750005,45.08164062500006],[112.11289062500006,45.06293945312498],[112.41132812500004,45.05820312499998],[112.49931640625002,45.01093750000004],[112.59677734375006,44.917675781249955],[112.7067382812501,44.883447265624994],[113.04941406250006,44.81035156250002],[113.3009765625001,44.79165039062502],[113.50791015625006,44.76235351562502],[113.58701171875006,44.745703125],[113.65263671875002,44.76347656249999],[113.87705078125012,44.89619140625001],[114.03027343749997,44.942578124999955],[114.08027343750004,44.97114257812501],[114.41914062500004,45.20258789062501],[114.56015625000012,45.38999023437498],[114.73876953124997,45.41962890624998],[114.91923828125007,45.378271484375006],[115.16259765624997,45.390234375000034],[115.6810546875,45.45825195312503],[116.19765625,45.739355468750006],[116.240625,45.795996093750006],[116.22910156250012,45.84575195312502],[116.21298828125012,45.88691406249998],[116.56259765625012,46.28979492187497],[116.85908203125004,46.387939453125],[117.3333984375,46.36201171875004],[117.35693359375003,46.391308593749955],[117.35634765625,46.436669921874966],[117.39218750000012,46.53759765625003],[117.40556640625007,46.57089843750006],[117.43808593750012,46.58623046874999],[117.546875,46.58828125000005],[117.74121093749997,46.51816406250006],[118.07128906249997,46.666601562500006],[118.15683593750006,46.678564453125034],[118.30869140625012,46.71704101562497],[118.40439453125006,46.70317382812499],[118.58046875,46.69189453125],[118.64873046875002,46.70166015625006],[118.72294921875007,46.69189453125],[118.8439453125001,46.76020507812498],[118.95712890625006,46.73486328124997],[119.16210937499997,46.638671875],[119.33183593750002,46.61381835937499],[119.47402343750005,46.626660156249955],[119.62021484375006,46.60395507812504],[119.70664062500006,46.60600585937502],[119.74746093750005,46.62719726562497],[119.86718750000003,46.67216796874999],[119.89785156250005,46.857812499999966],[119.71113281250004,47.15],[119.08193359375,47.654150390625034],[119.01757812500003,47.68535156249999],[118.88027343750005,47.72509765625],[118.75996093750004,47.75761718749996],[118.69052734375012,47.822265625],[118.56777343750005,47.94326171875005],[118.49843750000005,47.98398437499998],[117.76835937500002,47.98789062499998],[117.3507812500001,47.65219726562498],[117.28593750000002,47.666357421875034],[117.06972656250005,47.80639648437506],[116.95166015624997,47.836572265624966],[116.90117187500007,47.85307617187496],[116.76054687500002,47.869775390624994],[116.65195312500012,47.86450195312497],[116.51347656250007,47.839550781249955],[116.37822265625002,47.84404296874999],[116.31718750000002,47.85986328125],[116.2311523437501,47.85820312500002],[116.07480468750012,47.78955078125],[115.99384765625004,47.71132812500005],[115.89824218750002,47.68691406250005],[115.6164062500001,47.874804687500045],[115.52509765625004,48.13085937499997],[115.63945312500007,48.18623046874998],[115.785546875,48.24824218750001],[115.7965820312501,48.346337890624994],[115.7916992187501,48.455712890624994],[115.8205078125001,48.57724609375006],[116.6833007812501,49.82377929687499],[117.8734375,49.51347656250002],[118.4515625,49.84448242187503],[119.25986328125012,50.06640625000003],[119.34628906250012,50.278955078124994],[119.16367187500006,50.40600585937503],[120.06689453125003,51.60068359375006],[120.74980468750007,52.096533203125006],[120.65615234375,52.56665039062503],[120.0675781250001,52.632910156250034],[120.09453125000007,52.787207031250034],[120.98544921875012,53.28457031250002],[123.6078125,53.546533203124994],[124.81230468750002,53.133837890625045],[125.075,53.20366210937496],[125.64902343750012,53.042285156250045],[126.34169921875,52.36201171875001],[126.92480468749997,51.10014648437496],[127.30703125000005,50.70795898437501],[127.33720703125007,50.35014648437502],[127.590234375,50.20898437500003],[127.55078124999997,49.801806640625045],[127.99960937500006,49.56860351562506],[128.70400390625,49.60014648437499],[129.0651367187501,49.374658203124966],[129.49814453125012,49.38881835937502],[130.1959960937501,48.89165039062499],[130.553125,48.861181640625006],[130.5521484375,48.602490234374955],[130.80429687500012,48.34150390624998],[130.7326171875001,48.01923828124998],[130.96191406249997,47.70932617187498],[132.47626953125004,47.714990234374994],[132.7072265625001,47.94726562500006],[133.14404296875003,48.10566406249998],[133.46835937500006,48.09716796875003],[134.29335937500005,48.37343750000002],[134.66523437500004,48.25390625],[134.56601562500006,48.02250976562502],[134.75234375,47.71542968749998],[134.1676757812501,47.30219726562501],[133.86132812500003,46.24775390625004],[133.43642578125,45.60468750000004],[133.18603515625003,45.49482421875004],[133.1134765625001,45.130712890625006],[132.93603515624997,45.029931640624994],[131.85185546875002,45.32685546875001],[131.44687500000012,44.984033203124966],[130.9816406250001,44.844335937500034],[131.2552734375,44.07158203124999],[131.25732421875003,43.378076171874994],[131.06855468750004,42.90224609375005],[130.42480468749997,42.72705078124997],[130.52695312500012,42.535400390625]]],[[[113.9977539062501,22.210498046875045],[113.83886718749997,22.24169921875003],[114.04394531250003,22.33339843750005],[113.9977539062501,22.210498046875045]]],[[[114.01542968750007,22.51191406250001],[114.26601562500005,22.540966796874983],[114.26796875,22.295556640624966],[113.93730468750002,22.364990234375],[114.01542968750007,22.51191406250001]]],[],[[[118.4074218750001,24.522119140624994],[118.43271484375006,24.414355468750074],[118.29511718750004,24.436328125000017],[118.4074218750001,24.522119140624994]]],[[[121.00878906249997,22.62036132812497],[120.83984375000003,21.925],[120.2328125,22.71791992187505],[120.0724609375001,23.149755859375006],[120.13212890625007,23.652929687500034],[121.040625,25.032812500000034],[121.59365234375,25.275341796874983],[121.92900390625002,24.973730468749977],[121.39746093750003,23.172509765625023],[121.00878906249997,22.62036132812497]]]]},"properties":{"name":"China","childNum":15}},{"geometry":{"type":"Polygon","coordinates":[[[-5.262304687499977,10.319677734374991],[-4.72177734374992,9.756542968750026],[-4.625830078125006,9.713574218749969],[-4.526611328124943,9.723486328125034],[-4.406201171874926,9.647998046875031],[-4.332226562499955,9.645703125],[-4.18115234375,9.78173828125],[-3.790625,9.917187499999983],[-3.581152343749977,9.924316406250014],[-3.289697265625023,9.882226562500051],[-3.223535156249937,9.895458984374997],[-3.160693359374932,9.849169921874974],[-3.095800781249949,9.752099609375009],[-3.042626953124937,9.72089843750004],[-2.988281249999972,9.687353515624963],[-2.900878906249943,9.534619140625026],[-2.875146484374937,9.500927734374997],[-2.816748046874949,9.425830078124974],[-2.766601562499943,9.424707031250009],[-2.7171875,9.457128906250048],[-2.695849609374989,9.481347656250009],[-2.686132812499977,9.43173828125002],[-2.705761718749983,9.351367187499989],[-2.74692382812492,9.04511718750004],[-2.689892578124955,9.02509765625004],[-2.649218750000017,8.956591796875031],[-2.600390625000017,8.800439453125023],[-2.505859375000028,8.208740234375],[-2.538281249999955,8.171630859374986],[-2.61171875,8.147558593749963],[-2.619970703125006,8.12109375],[-2.600976562499937,8.082226562499983],[-2.613378906249977,8.046679687500017],[-2.668847656249994,8.022216796875014],[-2.789746093749955,7.931933593750003],[-2.959082031249977,7.454541015624997],[-3.227148437499977,6.749121093749991],[-2.998291015624972,5.711328125000051],[-2.793652343749955,5.600097656250028],[-2.754980468749977,5.432519531249994],[-2.815673828125,5.153027343749997],[-3.168701171874972,5.203027343749966],[-3.199951171874943,5.3544921875],[-3.347558593749994,5.13066406249996],[-4.120166015625017,5.309716796875023],[-4.60888671875,5.235888671875003],[-4.037207031249977,5.23012695312498],[-4.899707031249932,5.138330078125023],[-5.282373046874994,5.210253906250017],[-5.36752929687492,5.15078125],[-5.061816406249989,5.13066406249996],[-5.913769531249926,5.0109375],[-7.544970703124989,4.351318359375],[-7.574658203124983,4.572314453124989],[-7.585058593749977,4.916748046875],[-7.39990234375,5.550585937499989],[-7.454394531249989,5.841308593749972],[-7.636132812499994,5.90771484375],[-7.730371093749994,5.919042968749991],[-7.800927734374994,6.038916015624991],[-7.833251953125,6.076367187499983],[-7.855517578125017,6.150146484375],[-7.888623046875011,6.234863281250028],[-7.981591796874937,6.2861328125],[-8.287109375,6.31904296875004],[-8.587890625,6.490527343749989],[-8.324511718749989,6.920019531249991],[-8.408740234374989,7.411816406249997],[-8.429980468749989,7.601855468749989],[-8.351757812499926,7.590576171875],[-8.231884765624955,7.556738281250034],[-8.205957031249994,7.590234375000023],[-8.115429687499926,7.760742187500028],[-8.126855468749937,7.867724609374974],[-8.00986328124992,8.078515625000023],[-8.048583984375,8.169726562500045],[-8.140625,8.181445312500031],[-8.217138671874949,8.219677734375011],[-8.256103515625,8.253710937500017],[-8.244140624999943,8.407910156249983],[-8.236962890624994,8.455664062500034],[-7.953125,8.477734375],[-7.823583984374977,8.467675781249994],[-7.738964843749983,8.375244140624986],[-7.696093749999932,8.375585937499977],[-7.71958007812492,8.643017578125011],[-7.950976562499989,8.786816406249997],[-7.938183593749983,8.97978515624996],[-7.902099609375,9.017089843750014],[-7.777978515624937,9.080859375000031],[-7.799804687499943,9.115039062499989],[-7.839404296875017,9.151611328124972],[-7.918066406249949,9.188525390625031],[-7.896191406249955,9.415869140624991],[-8.136962890624972,9.49570312499999],[-8.155175781249937,9.973193359375017],[-7.990625,10.1625],[-7.661132812500028,10.427441406250011],[-7.385058593749989,10.340136718749989],[-7.01708984375,10.143261718750026],[-6.950341796874994,10.342333984374989],[-6.693261718750023,10.34946289062502],[-6.669335937499937,10.39218750000002],[-6.69199218749992,10.512011718750017],[-6.686132812499977,10.578027343750051],[-6.676367187499949,10.633789062500043],[-6.654150390624949,10.65644531250004],[-6.482617187499983,10.561230468749997],[-6.250244140625,10.717919921875037],[-6.190673828124943,10.400292968749994],[-6.192626953124972,10.369433593750003],[-6.241308593749949,10.279199218750009],[-6.238378906249977,10.26162109374998],[-6.117187499999972,10.201904296874986],[-6.034570312499937,10.194824218750057],[-5.907568359375006,10.307226562500034],[-5.896191406249983,10.354736328125028],[-5.843847656249977,10.389550781250023],[-5.694287109374983,10.433203125000034],[-5.556591796874983,10.439941406249986],[-5.382275390625011,10.314013671875003],[-5.262304687499977,10.319677734374991]]]},"properties":{"name":"Côte d\'Ivoire","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[15.480078125,7.523779296874991],[15.206738281250011,7.206152343749991],[14.7392578125,6.27978515625],[14.43115234375,6.038720703124994],[14.616894531250011,5.865136718749994],[14.56298828125,5.279931640624994],[14.73125,4.602392578124991],[15.063574218750006,4.284863281249997],[15.128710937500017,3.826904296875],[16.0634765625,2.90859375],[16.183398437500017,2.270068359374989],[16.059375,1.676220703124997],[15.741601562500023,1.914990234374997],[14.902441406250006,2.012304687499991],[14.578906250000017,2.199121093749994],[13.293554687500006,2.161572265624997],[13.2203125,2.256445312499991],[11.558984375000023,2.302197265624997],[11.348437500000017,2.299707031249994],[11.328710937500006,2.167431640624997],[11.096582031250023,2.16748046875],[10.790917968750023,2.16757812499999],[9.979882812500023,2.167773437499989],[9.8701171875,2.21328125],[9.8369140625,2.242382812499997],[9.830371093750017,2.275488281249991],[9.826171875,2.297802734374997],[9.80078125,2.304443359375],[9.82177734375,2.539257812499997],[9.948437500000011,3.079052734374997],[9.672070312500011,3.53759765625],[9.765722656250006,3.623828124999989],[9.642382812500017,3.611767578124997],[9.55615234375,3.798046875],[9.739648437500023,3.852929687499994],[9.639941406250017,3.96533203125],[9.688867187500023,4.056396484375],[9.483691406250017,4.066113281249997],[9.42529296875,3.922314453124997],[9.000097656250006,4.091601562499989],[8.918261718750017,4.553759765624989],[8.660351562500011,4.670996093749991],[8.65625,4.516357421875],[8.53955078125,4.571875],[8.715625,5.046875],[8.997167968750006,5.917724609375],[9.490234375,6.418652343749997],[9.779882812500006,6.76015625],[9.820703125000023,6.783935546875],[9.874218750000011,6.803271484374989],[10.038867187500017,6.92138671875],[10.1435546875,6.996435546874991],[10.167773437500017,6.959179687499997],[10.185546875,6.912792968749997],[10.205468750000023,6.8916015625],[10.293066406250006,6.876757812499989],[10.413183593750006,6.877734374999989],[10.60625,7.063085937499991],[10.954199218750006,6.7765625],[11.032519531250017,6.697900390624994],[11.1064453125,6.457714843749997],[11.1533203125,6.437939453124997],[11.2373046875,6.450537109374991],[11.401757812500023,6.533935546875],[11.551660156250023,6.697265625],[11.580078125,6.888867187499997],[11.657519531250017,6.9515625],[11.861425781250006,7.11640625],[11.767382812500017,7.272265624999989],[11.809179687500006,7.345068359374991],[12.016015625000023,7.589746093749994],[12.2333984375,8.282324218749991],[12.403515625000011,8.595556640624991],[12.582714843750011,8.624121093749991],[12.651562500000011,8.667773437499989],[12.7822265625,8.81787109375],[12.806542968750023,8.886621093749994],[12.875683593750011,9.303515624999989],[12.929492187500017,9.42626953125],[13.19873046875,9.563769531249989],[13.269921875000023,10.036181640624989],[13.41455078125,10.171435546874989],[13.535351562500011,10.60507812499999],[13.699902343750011,10.873144531249991],[13.89208984375,11.140087890624997],[13.9814453125,11.211865234374997],[14.056738281250006,11.245019531249994],[14.143261718750011,11.24853515625],[14.202343750000011,11.268164062499991],[14.559765625000011,11.492285156249991],[14.619726562500006,12.150976562499991],[14.518945312500023,12.298242187499994],[14.272851562500023,12.356494140624989],[14.184863281250017,12.447216796874997],[14.06396484375,13.07851562499999],[14.244824218750011,13.07734375],[14.461718750000017,13.021777343749989],[14.847070312500023,12.502099609374994],[15.08125,11.845507812499989],[15.029882812500006,11.11367187499999],[15.132226562500023,10.648486328124989],[15.276074218750011,10.357373046874997],[15.654882812500006,10.0078125],[14.243261718750006,9.979736328125],[13.977246093750011,9.691552734374994],[14.332324218750017,9.20351562499999],[15.1162109375,8.557324218749997],[15.5498046875,7.787890624999989],[15.480078125,7.523779296874991]]]},"properties":{"name":"Cameroon","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[27.4033203125,5.109179687499989],[27.7880859375,4.644677734374994],[28.19208984375001,4.350244140624994],[28.427539062500017,4.324169921874997],[28.72705078125,4.504980468749991],[29.224902343750017,4.391894531249989],[29.469628906250023,4.61181640625],[29.676855468750006,4.5869140625],[30.194921875,3.98193359375],[30.50830078125,3.835693359375],[30.586718750000017,3.62421875],[30.757226562500023,3.62421875],[30.83857421875001,3.49072265625],[30.90644531250001,3.408935546875],[30.754003906250006,3.041796874999989],[30.8466796875,2.847021484374991],[30.728613281250006,2.455371093749989],[31.176367187500006,2.270068359374989],[31.252734375000017,2.044580078124994],[29.94287109375,0.819238281249994],[29.934472656250023,0.4990234375],[29.717675781250023,0.098339843749997],[29.576953125000017,-1.387890625000011],[29.196582031250017,-1.719921875000011],[29.13154296875001,-2.195117187500003],[28.876367187500023,-2.400292968750009],[28.893945312500023,-2.635058593750003],[29.01435546875001,-2.72021484375],[29.224414062500017,-3.053515625],[29.211816406250023,-3.833789062500003],[29.403222656250023,-4.449316406250006],[29.404199218750023,-4.496679687500006],[29.32568359375,-4.835644531250011],[29.32343750000001,-4.898828125],[29.3427734375,-4.983105468750011],[29.542382812500023,-5.499804687500003],[29.594140625000023,-5.65078125],[29.60703125,-5.72265625],[29.59638671875001,-5.775976562500006],[29.490820312500006,-5.965429687500006],[29.480078125,-6.025],[29.50625,-6.172070312500011],[29.540820312500017,-6.313867187500009],[29.590625,-6.394433593750009],[29.70966796875001,-6.616894531250011],[29.798144531250017,-6.69189453125],[29.961816406250023,-6.803125],[30.10625,-6.9150390625],[30.212695312500017,-7.037890625],[30.31318359375001,-7.203710937500006],[30.40673828125,-7.460644531250011],[30.75117187500001,-8.193652343750003],[28.89814453125001,-8.485449218750006],[28.869531250000023,-8.785839843750011],[28.400683593750017,-9.224804687500011],[28.60419921875001,-9.678808593750006],[28.6455078125,-10.550195312500009],[28.383398437500006,-11.566699218750003],[28.482519531250006,-11.812109375],[29.064355468750023,-12.348828125000011],[29.48554687500001,-12.41845703125],[29.508203125000023,-12.228222656250011],[29.79511718750001,-12.155468750000011],[29.775195312500017,-13.438085937500006],[29.55419921875,-13.248925781250009],[29.20185546875001,-13.398339843750009],[29.014257812500006,-13.368847656250011],[28.730078125,-12.925488281250011],[28.550878906250006,-12.836132812500011],[28.412890625000017,-12.51806640625],[27.573828125,-12.22705078125],[27.1591796875,-11.579199218750006],[26.824023437500017,-11.965234375],[26.025976562500006,-11.89013671875],[25.349414062500017,-11.623046875],[25.28876953125001,-11.21240234375],[24.3779296875,-11.417089843750006],[24.36572265625,-11.1298828125],[23.96650390625001,-10.871777343750011],[23.901171875000017,-10.983203125],[23.833886718750023,-11.013671875],[23.463964843750006,-10.969335937500006],[23.076269531250006,-11.087890625],[22.814746093750017,-11.080273437500011],[22.56103515625,-11.055859375000011],[22.486132812500017,-11.08671875],[22.392968750000023,-11.159472656250003],[22.31494140625,-11.198632812500009],[22.27880859375,-11.194140625],[22.226171875,-11.121972656250009],[22.203515625000023,-10.829492187500009],[22.307031250000023,-10.691308593750009],[22.19775390625,-10.040625],[21.81318359375001,-9.46875],[21.905371093750006,-8.693359375],[21.806054687500023,-7.32861328125],[21.751074218750006,-7.30546875],[21.190332031250023,-7.284960937500003],[20.910937500000017,-7.281445312500011],[20.607812500000023,-7.277734375],[20.558398437500017,-7.244433593750003],[20.53583984375001,-7.182812500000011],[20.536914062500017,-7.121777343750011],[20.598730468750006,-6.93515625],[20.59003906250001,-6.919921875],[20.482226562500017,-6.915820312500003],[20.190039062500006,-6.9462890625],[19.997460937500023,-6.976464843750009],[19.87519531250001,-6.986328125],[19.527636718750017,-7.144433593750009],[19.483789062500023,-7.279492187500011],[19.479882812500023,-7.47216796875],[19.371679687500006,-7.655078125],[19.369921875000017,-7.70654296875],[19.3408203125,-7.966601562500003],[19.142675781250006,-8.00146484375],[18.944433593750006,-8.00146484375],[18.56269531250001,-7.9359375],[18.0087890625,-8.107617187500011],[17.643359375000017,-8.090722656250009],[17.57958984375,-8.099023437500009],[16.984765625000023,-7.257421875],[16.91943359375,-6.933984375],[16.813085937500006,-6.772558593750006],[16.742968750000017,-6.618457031250003],[16.697265625,-6.164257812500011],[16.537109375,-5.9658203125],[16.431445312500017,-5.900195312500003],[16.315234375000017,-5.865625],[13.978515625,-5.857226562500003],[13.346484375000017,-5.863378906250006],[13.184375,-5.85625],[12.452929687500017,-6.00048828125],[12.213671875000017,-5.758691406250009],[12.484570312500011,-5.71875],[12.451464843750017,-5.071484375000011],[12.502734375000017,-5.036914062500003],[12.573535156250017,-4.99658203125],[12.59619140625,-4.978417968750009],[12.8296875,-4.736621093750003],[12.947460937500011,-4.6953125],[13.057324218750011,-4.651074218750011],[13.07275390625,-4.634765625],[13.08740234375,-4.601953125],[13.136621093750023,-4.604296875],[13.414941406250023,-4.83740234375],[13.659570312500023,-4.721484375],[13.717089843750017,-4.454492187500009],[13.94091796875,-4.484667968750003],[14.358300781250023,-4.299414062500006],[14.449804687500006,-4.449511718750003],[14.365429687500011,-4.585546875],[14.410742187500006,-4.83125],[14.707910156250023,-4.881738281250009],[15.990039062500017,-3.766210937500006],[16.217382812500006,-3.0302734375],[16.21533203125,-2.177832031250006],[16.54072265625001,-1.840136718750003],[16.8798828125,-1.225878906250003],[17.752832031250023,-0.549023437500011],[18.072167968750023,2.01328125],[18.49091796875001,2.924414062499991],[18.6103515625,3.478417968749994],[18.594140625000023,4.346240234374989],[19.06855468750001,4.891406249999989],[19.5009765625,5.127490234374989],[19.806542968750023,5.089306640624997],[20.226367187500017,4.829638671874989],[20.55810546875,4.462695312499989],[22.422167968750017,4.134960937499997],[22.864550781250017,4.723876953125],[23.41718750000001,4.663134765624989],[24.31982421875,4.994140625],[25.065234375000017,4.967431640624994],[25.52509765625001,5.31210937499999],[26.822070312500017,5.062402343749994],[27.071875,5.199755859374989],[27.4033203125,5.109179687499989]]]},"properties":{"name":"Dem. Rep. Congo","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[18.6103515625,3.478417968749994],[18.49091796875001,2.924414062499991],[18.072167968750023,2.01328125],[17.752832031250023,-0.549023437500011],[16.8798828125,-1.225878906250003],[16.54072265625001,-1.840136718750003],[16.21533203125,-2.177832031250006],[16.217382812500006,-3.0302734375],[15.990039062500017,-3.766210937500006],[14.707910156250023,-4.881738281250009],[14.410742187500006,-4.83125],[14.365429687500011,-4.585546875],[14.449804687500006,-4.449511718750003],[14.358300781250023,-4.299414062500006],[13.94091796875,-4.484667968750003],[13.717089843750017,-4.454492187500009],[13.659570312500023,-4.721484375],[13.414941406250023,-4.83740234375],[13.136621093750023,-4.604296875],[13.08740234375,-4.601953125],[13.07275390625,-4.634765625],[13.048046875000011,-4.619238281250006],[12.971386718750011,-4.5517578125],[12.881054687500011,-4.445117187500003],[12.84814453125,-4.428906250000011],[12.50146484375,-4.5875],[12.018359375000017,-5.004296875],[11.777539062500011,-4.565820312500009],[11.130175781250017,-3.916308593750003],[11.234472656250006,-3.690820312500009],[11.504296875000023,-3.5203125],[11.685742187500011,-3.68203125],[11.8798828125,-3.665917968750009],[11.934179687500006,-3.318554687500011],[11.715429687500006,-3.176953125000011],[11.760156250000023,-2.983105468750011],[11.537792968750011,-2.83671875],[11.60546875,-2.342578125],[12.064453125,-2.41259765625],[12.446386718750006,-2.329980468750009],[12.43212890625,-1.928906250000011],[12.590429687500006,-1.826855468750011],[12.793554687500006,-1.931835937500011],[12.991992187500017,-2.313378906250009],[13.464941406250006,-2.395410156250009],[13.733789062500023,-2.138476562500003],[13.886914062500011,-2.465429687500006],[13.993847656250011,-2.490625],[14.199804687500006,-2.354199218750011],[14.162890625000017,-2.217578125],[14.383984375000011,-1.890039062500009],[14.47412109375,-0.573437500000011],[13.860058593750011,-0.203320312500011],[13.949609375000023,0.353808593749989],[14.32421875,0.62421875],[14.429882812500011,0.901464843749991],[14.180859375000011,1.370214843749991],[13.851367187500017,1.41875],[13.21630859375,1.2484375],[13.172167968750017,1.78857421875],[13.293554687500006,2.161572265624997],[14.578906250000017,2.199121093749994],[14.902441406250006,2.012304687499991],[15.741601562500023,1.914990234374997],[16.059375,1.676220703124997],[16.183398437500017,2.270068359374989],[16.468554687500017,2.831738281249997],[16.610742187500023,3.50537109375],[17.491601562500023,3.687304687499989],[18.160937500000017,3.499804687499989],[18.474414062500017,3.622998046874997],[18.6103515625,3.478417968749994]]]},"properties":{"name":"Congo","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-71.31972656249997,11.861914062500048],[-71.95810546875,11.66640625],[-72.24848632812501,11.196435546875009],[-72.690087890625,10.835839843749994],[-72.86933593750001,10.49125976562496],[-73.00654296874998,9.789160156250006],[-73.36621093749997,9.194140625000017],[-73.05839843749999,9.259570312500031],[-72.79638671874997,9.10898437499999],[-72.66542968749994,8.62758789062498],[-72.39033203124995,8.287060546874969],[-72.47197265624996,7.524267578124991],[-72.20771484374995,7.37026367187498],[-72.00664062499993,7.032617187500023],[-71.12861328124993,6.98671875],[-70.73715820312503,7.090039062499997],[-70.12919921874999,6.95361328125],[-69.42714843749997,6.123974609374997],[-68.47177734375,6.156542968749974],[-67.85917968749999,6.289892578124963],[-67.48198242187499,6.18027343750002],[-67.47387695312503,5.929980468750003],[-67.82490234374995,5.270458984375026],[-67.85527343750002,4.506884765624989],[-67.66162109375,3.864257812499986],[-67.3111328125,3.41586914062502],[-67.85908203124998,2.793603515624994],[-67.61870117187496,2.793603515624994],[-67.21083984375,2.390136718750043],[-66.87602539062499,1.223046875000037],[-67.082275390625,1.185400390625006],[-67.11923828124998,1.703613281249986],[-67.40043945312499,2.116699218750028],[-67.93623046874998,1.748486328124969],[-68.19379882812495,1.987011718749983],[-68.25595703125,1.845507812500017],[-68.17656249999999,1.719824218749991],[-69.84858398437493,1.708740234375043],[-69.85214843750003,1.05952148437504],[-69.31181640624999,1.050488281249969],[-69.15332031249994,0.65878906250002],[-69.47211914062498,0.72993164062504],[-70.05390624999993,0.578613281250028],[-70.07050781249993,-0.13886718750004],[-69.63398437500001,-0.50927734375],[-69.40024414062498,-1.194921874999977],[-69.66904296875003,-2.667675781249997],[-69.94819335937498,-4.200585937500009],[-69.96591796875003,-4.2359375],[-70.16752929687499,-4.050195312500009],[-70.24028320312496,-3.882714843749994],[-70.2984375,-3.844238281249972],[-70.33950195312502,-3.814355468750009],[-70.73510742187497,-3.781542968749989],[-70.09584960937494,-2.658203125000014],[-70.16474609374995,-2.639843750000011],[-70.24443359375002,-2.606542968749977],[-70.29462890624995,-2.552539062499989],[-70.57587890624995,-2.418261718749989],[-70.64799804687499,-2.405761718750014],[-70.70537109374996,-2.341992187499983],[-70.91455078125003,-2.218554687499974],[-70.96855468750002,-2.206835937499989],[-71.02729492187498,-2.225781250000026],[-71.11337890625003,-2.245410156250031],[-71.19638671874998,-2.313085937499963],[-71.39697265625,-2.334082031249977],[-71.55947265624997,-2.224218749999977],[-71.75253906249995,-2.15273437499998],[-71.80273437499997,-2.166308593749989],[-71.86728515624998,-2.227734374999983],[-71.932470703125,-2.288671874999963],[-71.98427734375,-2.326562499999952],[-72.21845703125001,-2.400488281250006],[-72.94111328124998,-2.394042968750028],[-72.9896484375,-2.33974609374998],[-73.15449218749993,-2.278222656249966],[-73.19697265624995,-1.830273437500011],[-73.49628906249993,-1.69306640625004],[-73.66430664062497,-1.248828124999946],[-73.86318359374997,-1.19667968749998],[-73.92695312500001,-1.125195312499983],[-73.98681640625003,-1.098144531249986],[-74.05439453124995,-1.028613281250031],[-74.18076171875,-0.997753906249955],[-74.24638671874999,-0.970605468750023],[-74.28388671874998,-0.927832031250006],[-74.33442382812498,-0.85087890624996],[-74.41787109375,-0.580664062499977],[-74.46518554687498,-0.517675781250034],[-74.51386718749993,-0.470117187500023],[-74.555078125,-0.429882812499997],[-74.61635742187494,-0.370019531249966],[-74.691650390625,-0.335253906249989],[-74.75537109375003,-0.298632812499989],[-74.78046874999998,-0.24453125],[-74.80175781249997,-0.200097656249994],[-75.13837890624998,-0.050488281249969],[-75.28447265624999,-0.10654296875002],[-75.77666015624999,0.08925781249998],[-76.27060546874998,0.439404296874997],[-76.49462890624997,0.23544921875002],[-77.396337890625,0.393896484374963],[-77.46767578124997,0.636523437500017],[-77.702880859375,0.837841796874997],[-78.1806640625,0.968554687499974],[-78.85966796874996,1.455371093750031],[-79.02543945312499,1.623681640625037],[-78.79296874999994,1.848730468749963],[-78.576904296875,1.773779296874977],[-78.59169921875,2.356640624999969],[-78.41689453125,2.483496093749963],[-78.06665039062494,2.509130859375034],[-77.81357421875,2.716357421874974],[-77.076806640625,3.913281250000026],[-77.26352539062503,3.893212890625023],[-77.27802734374995,4.058496093750023],[-77.35820312499996,3.944726562500037],[-77.40874023437496,4.24775390625004],[-77.52070312499993,4.212792968750023],[-77.35351562499997,4.398291015624977],[-77.28632812499995,4.72172851562496],[-77.373291015625,5.323974609375],[-77.53442382812497,5.537109374999986],[-77.24926757812497,5.780175781250037],[-77.46943359374995,6.176757812500014],[-77.368798828125,6.575585937499994],[-77.90117187499999,7.229345703125048],[-77.76191406249995,7.698828125000034],[-77.53828124999995,7.56625976562502],[-77.19599609374995,7.972460937500003],[-77.47851562499994,8.498437500000037],[-77.37421874999993,8.65830078125002],[-76.85185546875002,8.09047851562498],[-76.924658203125,7.973193359374974],[-76.78657226562493,7.931591796875026],[-76.7720703125,8.310546875000043],[-76.92045898437496,8.573730468750014],[-76.27685546875,8.989111328124991],[-76.02724609374997,9.365771484374989],[-75.63935546874998,9.450439453125014],[-75.680029296875,9.729785156249989],[-75.53857421874997,10.205175781250034],[-75.708349609375,10.143408203124963],[-75.44599609374995,10.610888671874989],[-74.84458007812498,11.109716796875006],[-74.330224609375,10.996679687499991],[-74.51625976562497,10.8625],[-74.40087890625,10.76523437499999],[-74.14291992187503,11.320849609375031],[-73.31337890624997,11.295751953124991],[-72.275,11.88925781250002],[-72.13574218749994,12.188574218749977],[-71.71455078124993,12.41997070312496],[-71.26210937499997,12.335302734375034],[-71.13730468750003,12.04633789062504],[-71.31972656249997,11.861914062500048]]]},"properties":{"name":"Colombia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[43.788671875,-12.307031250000023],[43.85898437500006,-12.368261718749977],[43.66367187500006,-12.342871093749949],[43.63134765624997,-12.247070312499972],[43.788671875,-12.307031250000023]]],[[[44.476367187500074,-12.08154296875],[44.504980468750006,-12.356542968749991],[44.220117187499994,-12.171386718750014],[44.476367187500074,-12.08154296875]]],[[[43.46582031249997,-11.901269531249966],[43.226660156250006,-11.75185546874998],[43.2990234375001,-11.374511718750028],[43.39296875000005,-11.408593749999952],[43.46582031249997,-11.901269531249966]]]]},"properties":{"name":"Comoros","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-24.308251953124966,14.856298828124991],[-24.44052734374992,14.834814453124963],[-24.496875,14.980273437500017],[-24.329492187499937,15.019482421875011],[-24.308251953124966,14.856298828124991]]],[[[-23.18212890624997,15.136767578125017],[-23.210253906250017,15.32353515625006],[-23.119335937499955,15.26840820312502],[-23.18212890624997,15.136767578125017]]],[[[-23.444238281249994,15.00795898437498],[-23.5046875,14.916113281250006],[-23.70537109374999,14.96132812499998],[-23.74809570312499,15.328515625],[-23.444238281249994,15.00795898437498]]],[[[-22.917724609375,16.237255859374955],[-22.69262695312497,16.169042968750006],[-22.710107421874994,16.043359374999966],[-22.95927734374996,16.045117187499983],[-22.917724609375,16.237255859374955]]],[[[-24.08769531249999,16.62250976562501],[-24.03271484374997,16.57202148437503],[-24.243066406250023,16.599414062500017],[-24.32236328124992,16.49311523437504],[-24.398095703124966,16.61840820312497],[-24.08769531249999,16.62250976562501]]],[[[-22.888330078124966,16.659082031249994],[-22.980615234374937,16.700878906249983],[-22.93291015624999,16.84101562500004],[-22.888330078124966,16.659082031249994]]],[[[-24.88706054687495,16.81811523437497],[-25.09306640624999,16.83251953125],[-24.936474609374983,16.92211914062503],[-24.88706054687495,16.81811523437497]]],[[[-25.169824218749994,16.94648437500001],[-25.308300781249955,16.93583984374999],[-25.337109374999955,17.091015624999983],[-25.03466796875,17.176464843749983],[-24.979687499999983,17.09472656250003],[-25.169824218749994,16.94648437500001]]]]},"properties":{"name":"Cape Verde","childNum":8}},{"geometry":{"type":"Polygon","coordinates":[[[-83.6419921875,10.917236328125],[-83.346826171875,10.315380859374997],[-82.77841796874999,9.66953125],[-82.56357421874999,9.57666015625],[-82.56923828125,9.55820312499999],[-82.58652343749999,9.538818359375],[-82.64409179687499,9.505859375],[-82.801025390625,9.591796875],[-82.843994140625,9.57080078125],[-82.86015624999999,9.511474609375],[-82.88896484374999,9.481005859374989],[-82.925048828125,9.469042968749989],[-82.93984375,9.449169921874997],[-82.94033203125,9.060107421874989],[-82.88134765625,9.055859375],[-82.78305664062499,8.990283203124989],[-82.741162109375,8.951708984374989],[-82.72783203124999,8.916064453124989],[-82.91704101562499,8.740332031249991],[-82.855712890625,8.635302734374989],[-82.84477539062499,8.489355468749991],[-82.86162109374999,8.45351562499999],[-83.02734375,8.337744140624991],[-82.879345703125,8.070654296874991],[-83.12333984374999,8.353076171874989],[-83.16240234374999,8.588183593749989],[-83.4697265625,8.706835937499989],[-83.29150390625,8.406005859375],[-83.54375,8.445849609374989],[-83.73408203125,8.614453125],[-83.613720703125,8.804052734374991],[-83.73691406249999,9.150292968749994],[-84.58159179687499,9.568359375],[-84.71494140624999,9.8994140625],[-85.23564453124999,10.242089843749994],[-85.2365234375,10.107373046874997],[-84.88642578125,9.820947265624994],[-85.07705078125,9.60195312499999],[-85.31455078124999,9.8109375],[-85.62485351562499,9.902441406249991],[-85.84965820312499,10.292041015624989],[-85.667236328125,10.745019531249994],[-85.90800781249999,10.897558593749991],[-85.7443359375,11.06210937499999],[-85.5841796875,11.189453125],[-84.9091796875,10.9453125],[-84.6341796875,11.045605468749997],[-83.91928710937499,10.7353515625],[-83.71293945312499,10.785888671875],[-83.6419921875,10.917236328125]]]},"properties":{"name":"Costa Rica","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-82.56176757812503,21.571679687500023],[-82.959619140625,21.441308593750023],[-83.18378906250001,21.59345703125004],[-82.97358398437498,21.592285156250057],[-83.08251953124997,21.791406250000023],[-82.99121093750003,21.942724609375034],[-82.71455078124998,21.890283203125023],[-82.56176757812503,21.571679687500023]]],[[[-77.66899414062493,21.951953125000045],[-77.91855468749998,22.088085937499983],[-77.63369140624994,22.054003906250074],[-77.66899414062493,21.951953125000045]]],[[[-77.87939453125,22.127539062500034],[-78.04165039062502,22.201269531250034],[-77.99921874999998,22.298730468749994],[-77.87939453125,22.127539062500034]]],[[[-81.83745117187499,23.163037109374955],[-81.26235351562497,23.156835937500034],[-81.14462890624998,23.054931640625057],[-80.65014648437494,23.10307617187499],[-80.36489257812502,22.943408203125074],[-79.82026367187498,22.887011718750045],[-79.27568359374999,22.407617187499994],[-78.68647460937493,22.366845703125023],[-77.63681640624995,21.79736328125],[-77.49711914062502,21.78833007812503],[-77.58315429687497,21.889257812499977],[-77.49726562499995,21.871630859375045],[-77.14414062499995,21.643603515625017],[-77.36616210937498,21.612646484375034],[-77.25288085937498,21.483496093750006],[-77.0986328125,21.589013671875023],[-76.86743164062497,21.330419921875006],[-75.72294921874996,21.111035156249983],[-75.59580078125,20.99467773437499],[-75.72456054687493,20.71455078125004],[-74.882568359375,20.65063476562497],[-74.51313476562495,20.384570312500045],[-74.16748046874997,20.292187499999955],[-74.15371093750002,20.168554687500006],[-75.11640624999995,19.901416015625017],[-75.151611328125,20.008349609375045],[-75.29047851562495,19.893115234375017],[-76.15844726562497,19.98974609374997],[-77.715087890625,19.85546874999997],[-77.10380859374999,20.407519531250017],[-77.22958984374995,20.64375],[-78.11635742187497,20.761865234374994],[-78.49077148437493,21.05371093750003],[-78.72768554687497,21.592724609374955],[-79.35742187500003,21.58515625000001],[-80.23134765625,21.872167968750063],[-80.48544921874998,22.1234375],[-81.03564453124997,22.073583984375063],[-81.18549804687495,22.26796875000005],[-81.284375,22.109423828125074],[-81.84941406249993,22.21367187499999],[-82.077734375,22.3876953125],[-81.71035156250002,22.496679687500006],[-81.83881835937498,22.672460937500034],[-82.73803710937497,22.689257812500074],[-83.37963867187503,22.222998046875034],[-83.90073242187495,22.17011718750001],[-84.03095703124993,21.94311523437503],[-84.502587890625,21.776171875000045],[-84.50136718750002,21.930273437499977],[-84.88720703125003,21.856982421875074],[-84.32636718749998,22.074316406250034],[-84.36127929687498,22.37890625],[-84.04492187500003,22.666015625000057],[-83.25781249999997,22.967578125000017],[-81.83745117187499,23.163037109374955]]]]},"properties":{"name":"Cuba","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[-68.75107421874999,12.059765625],[-68.9951171875,12.141845703125],[-69.15888671875,12.380273437499994],[-68.75107421874999,12.059765625]]]},"properties":{"name":"Curaçao","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-81.36953124999997,19.34887695312497],[-81.10712890624995,19.305175781250057],[-81.40478515624994,19.278417968750006],[-81.36953124999997,19.34887695312497]]],[[[-79.823388671875,19.711914062500057],[-79.90620117187501,19.702539062499994],[-79.74228515625,19.757128906250017],[-79.823388671875,19.711914062500057]]]]},"properties":{"name":"Cayman Is.","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[34.004492187500006,35.065234375],[33.47578125000001,35.000341796875],[33.3837890625,35.1626953125],[32.91953125,35.087841796875],[32.71269531250002,35.171044921874994],[32.8798828125,35.180566406249994],[32.94160156250001,35.390429687499996],[33.60761718750001,35.354150390624994],[34.55605468750002,35.662060546875],[33.941992187500006,35.292041015624996],[34.004492187500006,35.065234375]]]},"properties":{"name":"N. Cyprus","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[32.71269531250002,35.171044921874994],[32.91953125,35.087841796875],[33.3837890625,35.1626953125],[33.47578125000001,35.000341796875],[34.004492187500006,35.065234375],[34.05019531250002,34.98837890625],[33.69941406250001,34.969873046874994],[33.007910156250006,34.569580078125],[32.44902343750002,34.729443359375],[32.31718750000002,34.9533203125],[32.30097656250001,35.082958984375],[32.71269531250002,35.171044921874994]]]},"properties":{"name":"Cyprus","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[14.809375,50.858984375],[14.895800781250017,50.861376953124996],[14.98291015625,50.886572265625],[14.99375,51.01435546875],[16.007226562500023,50.611621093749996],[16.2822265625,50.655615234375],[16.419726562500017,50.573632812499994],[16.210351562500023,50.423730468749994],[16.63916015625,50.1021484375],[16.989648437500023,50.2369140625],[16.88007812500001,50.427050781249996],[17.41523437500001,50.254785156249994],[17.702246093750006,50.307177734374996],[17.627050781250006,50.11640625],[17.874804687500017,49.972265625],[18.0283203125,50.03525390625],[18.562402343750023,49.879345703125],[18.83222656250001,49.510791015624996],[18.160937500000017,49.257373046874996],[18.0859375,49.06513671875],[17.75849609375001,48.888134765625],[17.135644531250023,48.841064453125],[16.953125,48.598828125],[16.543554687500006,48.796240234375],[16.057226562500006,48.754785156249994],[15.066796875000023,48.997851562499996],[14.691308593750023,48.59921875],[14.049121093750017,48.602490234375],[13.814746093750017,48.766943359375],[13.769921875000023,48.815966796874996],[13.684960937500023,48.876708984375],[13.547656250000017,48.95966796875],[13.440722656250017,48.95556640625],[13.401171875000017,48.977587890624996],[12.916699218750011,49.33046875],[12.68115234375,49.414501953125],[12.390527343750023,49.739648437499994],[12.5125,49.87744140625],[12.09921875,50.310986328125],[12.134863281250006,50.3109375],[12.1748046875,50.288378906249996],[12.231152343750011,50.244873046875],[12.27734375,50.181445312499996],[12.3056640625,50.205712890624994],[12.549023437500011,50.393408203125],[13.016406250000017,50.490380859374994],[13.18115234375,50.510498046875],[14.369042968750023,50.898730468749996],[14.319726562500023,51.03779296875],[14.545703125000017,50.993945312499996],[14.559667968750006,50.954931640625],[14.59521484375,50.918603515624994],[14.623828125000017,50.91474609375],[14.613574218750017,50.85556640625],[14.658203125,50.8326171875],[14.723339843750011,50.814697265625],[14.766503906250023,50.818310546875],[14.797460937500006,50.842333984374996],[14.809375,50.858984375]]]},"properties":{"name":"Czech Rep.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[14.1982421875,53.919042968750034],[13.92578125,53.879052734374966],[13.827734375,54.12724609374999],[14.1982421875,53.919042968750034]]],[[[13.709179687500011,54.382714843749994],[13.707324218750074,54.281152343749994],[13.190039062500034,54.32563476562501],[13.336816406249994,54.697119140625006],[13.65761718750008,54.55957031249997],[13.709179687500011,54.382714843749994]]],[[[9.739746093750028,54.82553710937498],[10.022167968750011,54.673925781250006],[9.86865234375,54.47246093749999],[10.731542968750006,54.31625976562506],[11.013378906250068,54.37915039062497],[11.008593750000074,54.18115234374997],[10.810742187500068,54.075146484374955],[10.917773437500045,53.99531250000004],[11.39960937500004,53.94462890625002],[12.111328125,54.168310546875006],[12.57539062500004,54.467382812500006],[13.028613281250017,54.411035156249994],[13.448046875000017,54.14086914062503],[13.724218750000063,54.153222656249966],[13.865527343750074,53.85336914062498],[14.258886718750006,53.729638671874994],[14.298730468750051,53.55644531249999],[14.41455078125,53.28349609374996],[14.412304687500011,53.216748046874955],[14.410937500000074,53.19902343749999],[14.368554687500051,53.105566406250034],[14.293164062500068,53.026757812499966],[14.138867187500068,52.93286132812503],[14.128613281250011,52.87822265625002],[14.253710937500017,52.78251953124996],[14.514062500000023,52.645605468750034],[14.619433593750017,52.52851562499998],[14.569726562499994,52.431103515624955],[14.554589843750023,52.35966796874996],[14.573925781250068,52.31416015625001],[14.615625,52.277636718750045],[14.679882812500068,52.25],[14.752539062500034,52.08183593750002],[14.601660156250034,51.832373046875006],[14.738671875000051,51.62714843750004],[14.7109375,51.54492187499997],[14.724707031250063,51.523876953124955],[14.90595703125004,51.463330078124955],[14.935546875000028,51.435351562500045],[14.9638671875,51.095117187499994],[14.917480468750057,51.00874023437498],[14.814257812499989,50.871630859375045],[14.809375,50.858984375000034],[14.797460937500034,50.84233398437502],[14.766503906250051,50.81831054687501],[14.72333984375004,50.81469726562497],[14.658203125,50.832617187500006],[14.613574218750045,50.85556640625006],[14.623828125000017,50.91474609375004],[14.595214843750057,50.91860351562502],[14.559667968750006,50.954931640625034],[14.545703124999989,50.99394531249999],[14.319726562500051,51.037792968749955],[14.36904296875008,50.89873046874996],[13.18115234375,50.510498046875],[13.016406250000017,50.490380859374994],[12.549023437500011,50.393408203125034],[12.3056640625,50.205712890624994],[12.27734375,50.18144531250002],[12.231152343749983,50.24487304687497],[12.174804687500057,50.28837890624996],[12.134863281250006,50.31093750000002],[12.099218750000034,50.31098632812504],[12.089843749999972,50.30175781250003],[12.089746093750051,50.2685546875],[12.294598214285761,50.13608119419641],[12.5125,49.87744140625],[12.390527343750051,49.739648437499994],[12.68115234375,49.41450195312501],[12.91669921875004,49.33046875000002],[13.401171875000074,48.97758789062499],[13.440722656250045,48.95556640625003],[13.547656250000074,48.95966796874998],[13.684960937500051,48.87670898437506],[13.769921875000051,48.81596679687502],[13.814746093750017,48.76694335937498],[13.802929687500011,48.74750976562501],[13.798828124999972,48.62167968750006],[13.785351562499983,48.58745117187502],[13.486621093750074,48.58183593750002],[13.471679687500028,48.57182617187502],[13.459863281250023,48.564550781250034],[13.409375,48.39414062500006],[13.322851562500006,48.33125],[13.215234375000023,48.301904296874994],[12.760351562500063,48.10698242187499],[12.95351562500008,47.890625],[12.897656250000068,47.721875],[13.054101562500051,47.655126953125034],[13.047949218750034,47.57915039062502],[13.031542968750074,47.50800781250001],[13.01435546875004,47.478076171875045],[12.968066406250017,47.475683593750006],[12.878906250000057,47.506445312500034],[12.809375,47.542187499999955],[12.782812500000034,47.56416015624998],[12.781152343750051,47.590429687500006],[12.796191406249989,47.60703125],[12.771386718750023,47.63940429687503],[12.685839843750074,47.66933593750002],[12.209277343750074,47.71826171875003],[12.196875,47.709082031250034],[12.203808593750011,47.64672851562503],[12.185644531250063,47.61953125],[11.041992187500028,47.39311523437496],[10.98085937499999,47.39814453125001],[10.893945312500051,47.470458984375],[10.870605468750028,47.500781250000045],[10.873046874999972,47.52021484375001],[10.741601562500023,47.52412109375001],[10.65869140625,47.547216796875006],[10.482812500000051,47.54179687499996],[10.439453125000028,47.55156249999999],[10.403906250000063,47.41699218750003],[10.369140625,47.366064453125034],[10.18300781250008,47.27880859375003],[10.200292968750063,47.36342773437505],[10.066308593750023,47.39335937500002],[10.064575892857171,47.42369419642856],[10.059863281250045,47.44907226562498],[10.034082031250023,47.47358398437501],[9.971582031249994,47.50532226562498],[9.839160156250017,47.55229492187496],[9.748925781250023,47.575537109375006],[9.524023437500034,47.52421875000002],[8.572656250000023,47.775634765625],[8.435742187500011,47.73134765625002],[8.403417968750006,47.687792968750045],[8.413281250000068,47.66269531249998],[8.451757812500006,47.65180664062498],[8.552343750000063,47.65913085937498],[8.56708984375004,47.65190429687502],[8.57050781250004,47.63779296874998],[8.55947265625008,47.62402343750003],[8.477636718750034,47.61269531250002],[8.454003906249994,47.59619140625003],[7.615625,47.59272460937504],[7.616601562500023,48.15678710937502],[8.134863281250006,48.97358398437498],[7.450585937500051,49.152197265625034],[6.735449218750006,49.16059570312498],[6.344335937500006,49.45273437499998],[6.4873046875,49.798486328124994],[6.204882812500017,49.915136718750034],[6.13818359375,49.97431640625001],[6.10976562500008,50.034375],[6.116503906250045,50.120996093749966],[6.340917968750006,50.451757812500034],[5.993945312500017,50.75043945312504],[6.048437500000034,50.90488281250006],[5.857519531250034,51.030126953125006],[6.129980468750034,51.14741210937501],[6.198828125000034,51.45],[5.948730468750057,51.80268554687501],[6.800390625,51.96738281249998],[6.724511718749994,52.080224609374966],[7.035156250000057,52.38022460937498],[6.748828125000074,52.464013671874994],[6.710742187500045,52.61787109374998],[7.033007812500045,52.65136718749997],[7.197265625000028,53.28227539062499],[7.074316406250034,53.477636718750006],[7.285253906250034,53.68134765625001],[8.00927734375,53.69072265624999],[8.108496093750063,53.46767578125002],[8.245214843750006,53.44531249999997],[8.333886718750051,53.606201171875],[8.495214843750063,53.39423828124998],[8.618945312500045,53.875],[9.20556640625,53.85595703124997],[9.783984375000074,53.554638671874955],[9.31201171875,53.859130859375],[8.92041015625,53.96533203125006],[8.906640625000023,54.26079101562502],[8.625781250000017,54.35395507812501],[8.951855468750011,54.46757812499996],[8.670312500000023,54.903417968750034],[9.739746093750028,54.82553710937498]]],[[[8.307714843750034,54.786962890625034],[8.451464843750017,55.05537109374998],[8.3798828125,54.89985351562501],[8.629589843750068,54.891748046874966],[8.307714843750034,54.786962890625034]]]]},"properties":{"name":"Germany","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[43.24599609375002,11.499804687499989],[42.92275390625002,10.999316406249989],[42.557714843750006,11.080761718749997],[41.79824218750002,10.98046875],[41.79267578125001,11.68603515625],[42.378515625,12.46640625],[42.40859375000002,12.494384765625],[42.45,12.521337890624991],[42.47939453125002,12.513623046874997],[42.703710937500006,12.380322265624997],[42.76748046875002,12.4228515625],[42.825292968750006,12.5693359375],[42.86591796875001,12.622802734375],[42.88330078125,12.621289062499997],[43.00566406250002,12.662304687499997],[43.11669921875,12.70859375],[43.353515625,12.367041015624991],[43.38027343750002,12.091259765624997],[42.64003906250002,11.560107421874989],[42.52177734375002,11.572167968749994],[42.58378906250002,11.496777343749997],[43.04277343750002,11.588476562499991],[43.24599609375002,11.499804687499989]]]},"properties":{"name":"Djibouti","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-61.281689453125,15.2490234375],[-61.37539062499999,15.227294921875],[-61.45810546874999,15.633105468750003],[-61.277246093749994,15.526708984374991],[-61.281689453125,15.2490234375]]]},"properties":{"name":"Dominica","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[11.361425781250006,54.891650390625045],[11.739550781250017,54.80742187500002],[11.765917968750074,54.67944335937506],[11.457421875000023,54.628857421874955],[11.035546875000051,54.77309570312505],[11.058593750000028,54.940576171874966],[11.361425781250006,54.891650390625045]]],[[[12.549218750000051,54.96577148437504],[12.11884765625004,54.91440429687506],[12.274023437500034,55.064111328124994],[12.549218750000051,54.96577148437504]]],[[[10.061230468750068,54.88637695312502],[9.80625,54.90600585937503],[9.78125,55.06904296875001],[10.061230468750068,54.88637695312502]]],[[[10.734082031250011,54.750732421875],[10.621679687500006,54.851416015625006],[10.95107421875008,55.15620117187501],[10.734082031250011,54.750732421875]]],[[[15.087695312500017,55.021875],[14.684179687500063,55.10224609375004],[14.765332031250068,55.296728515625034],[15.132617187500017,55.14453125000003],[15.087695312500017,55.021875]]],[[[10.645117187500006,55.60981445312498],[10.785253906250034,55.13339843749998],[10.44277343750008,55.04877929687498],[9.988769531250028,55.163183593750006],[9.860644531250045,55.515478515625034],[10.645117187500006,55.60981445312498]]],[[[12.665722656250068,55.596533203125006],[12.550878906250034,55.55625],[12.59921875,55.68022460937502],[12.665722656250068,55.596533203125006]]],[[[12.56875,55.785058593749966],[12.215039062500011,55.46650390624998],[12.413085937500028,55.28618164062502],[12.089941406250006,55.18813476562505],[12.050390625000034,54.81533203125002],[11.8623046875,54.77260742187502],[11.653808593750057,55.186914062499966],[11.286328125000068,55.20444335937498],[10.978906250000051,55.721533203125006],[11.322265625000028,55.752539062500006],[11.627734375000074,55.95688476562498],[11.819726562500023,55.69765625000002],[11.86640625000004,55.968164062499966],[12.218945312499983,56.11865234374997],[12.578710937500006,56.06406250000006],[12.56875,55.785058593749966]]],[[[11.052148437500051,57.25253906250006],[10.873828125000045,57.26225585937499],[11.174511718750011,57.322900390624994],[11.052148437500051,57.25253906250006]]],[[[9.739746093750028,54.82553710937498],[8.670312500000023,54.903417968750034],[8.61591796875004,55.41821289062503],[8.132128906250074,55.59980468749998],[8.16396484375008,56.60688476562498],[8.671679687500045,56.49565429687496],[8.88808593750008,56.73505859374998],[9.06708984375004,56.79384765625005],[9.196386718750006,56.70166015625],[9.2548828125,57.01171875000003],[8.992773437499977,57.01611328125003],[8.771972656250028,56.72529296875004],[8.468359375,56.66455078125],[8.284082031250023,56.85234374999999],[8.618554687500051,57.11127929687498],[9.43359375,57.17431640625003],[9.96230468750008,57.580957031249994],[10.609960937500034,57.73691406249998],[10.282714843750057,56.620507812499994],[10.926171875000051,56.44326171875002],[10.753417968750028,56.24199218749999],[10.31875,56.212890625],[10.18300781250008,55.86518554687504],[9.903710937500023,55.84282226562502],[10.02363281250004,55.76142578125004],[9.591113281250017,55.49321289062502],[9.670996093750063,55.26640624999999],[9.453710937500006,55.03955078125006],[9.732324218750023,54.96801757812506],[9.739746093750028,54.82553710937498]]]]},"properties":{"name":"Denmark","childNum":10,"cp":[10.2768332,56.1773879]}},{"geometry":{"type":"Polygon","coordinates":[[[-71.647216796875,19.195947265624994],[-71.746484375,19.285839843749997],[-71.71147460937499,19.486572265625],[-71.75742187499999,19.688183593749997],[-71.779248046875,19.718164062499994],[-71.6673828125,19.8486328125],[-70.95415039062499,19.913964843749994],[-70.19384765625,19.63803710937499],[-69.95683593749999,19.671875],[-69.739404296875,19.29921875],[-69.23247070312499,19.27182617187499],[-69.60595703125,19.206494140624997],[-69.62363281249999,19.117822265624994],[-68.684765625,18.90478515625],[-68.33916015624999,18.611523437499997],[-68.68740234375,18.21494140624999],[-68.9349609375,18.408007812500003],[-69.27451171874999,18.43984375],[-69.770654296875,18.443554687499997],[-70.479931640625,18.21728515625],[-70.644677734375,18.336230468750003],[-71.02783203125,18.273193359375],[-71.43896484375,17.63559570312499],[-71.63173828125,17.773632812499997],[-71.768310546875,18.03916015624999],[-71.76376953124999,18.20395507812499],[-71.737255859375,18.270800781250003],[-71.7619140625,18.34130859375],[-71.87255859375,18.416210937499997],[-71.940380859375,18.512597656249994],[-72.000390625,18.597900390625],[-71.98686523437499,18.6103515625],[-71.86650390624999,18.614160156249994],[-71.74321289062499,18.73291015625],[-71.72705078125,18.80322265625],[-71.733642578125,18.856396484374997],[-71.80712890625,18.987011718749997],[-71.647216796875,19.195947265624994]]]},"properties":{"name":"Dominican Rep.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[8.207617187500006,36.518945312499994],[8.348730468750006,36.36796875],[8.318066406250011,35.654931640624994],[8.31640625,35.403125],[8.35986328125,35.299609375],[8.394238281250011,35.203857421875],[8.312109375,35.084619140624994],[8.27685546875,34.9794921875],[8.24560546875,34.73408203125],[7.513867187500011,34.080517578125],[7.534375,33.717919921874994],[7.877246093750017,33.172119140625],[8.1125,33.055322265624994],[8.333398437500023,32.543603515624994],[9.044042968750006,32.07236328125],[9.160253906250006,31.621337890625],[9.224023437500023,31.373681640624994],[9.51875,30.229394531249994],[9.310253906250011,30.115234375],[9.805273437500006,29.176953125],[9.916015625,27.785693359374996],[9.74755859375,27.330859375],[9.883203125000023,26.630810546874997],[9.491406250000011,26.333740234375],[9.4482421875,26.067138671875],[10.000683593750011,25.332080078125003],[10.255859375,24.591015625],[10.395898437500023,24.485595703125],[10.686132812500006,24.55136718749999],[11.507617187500017,24.314355468749994],[11.967871093750006,23.517871093750003],[7.481738281250017,20.873095703125003],[5.836621093750011,19.479150390624994],[4.227636718750006,19.142773437499997],[3.3564453125,18.986621093750003],[3.119726562500006,19.103173828124994],[3.255859375,19.4109375],[3.130273437500023,19.85019531249999],[1.685449218750023,20.378369140624997],[1.610644531250017,20.555566406249994],[1.165722656250011,20.817431640625003],[1.1455078125,21.102246093749997],[-1.947900390624994,23.124804687500003],[-4.822607421874977,24.99560546875],[-8.683349609375,27.2859375],[-8.683349609375,27.656445312499997],[-8.683349609375,27.900390625],[-8.659912109375,28.718603515625],[-7.485742187499994,29.392236328124994],[-7.427685546874983,29.425],[-7.142431640624977,29.619580078124997],[-6.855566406249977,29.601611328124996],[-6.755126953125,29.583837890625],[-6.635351562499977,29.568798828124997],[-6.597753906249977,29.578955078125],[-6.520556640624989,29.659863281249997],[-6.479736328125,29.820361328124996],[-6.00429687499999,29.83125],[-5.448779296874989,29.956933593749994],[-5.293652343749983,30.058642578124996],[-5.180126953124983,30.166162109374994],[-4.96826171875,30.465380859374996],[-4.778515624999983,30.552392578124994],[-4.529150390624977,30.625537109374996],[-4.322851562499977,30.698876953124994],[-4.148779296874977,30.8095703125],[-3.626904296874983,31.000927734374997],[-3.833398437499994,31.197802734374996],[-3.837109374999983,31.512353515624994],[-3.768164062499977,31.68955078125],[-3.700244140624989,31.700097656249994],[-3.604589843749977,31.686767578125],[-3.439794921874977,31.704541015624997],[-3.017382812499989,31.834277343749996],[-2.988232421874983,31.87421875],[-2.930859374999983,32.042529296874996],[-2.863427734374994,32.07470703125],[-1.275341796874983,32.089013671874994],[-1.16259765625,32.399169921875],[-1.111035156249983,32.552294921874996],[-1.188232421875,32.60849609375],[-1.29638671875,32.675683593749994],[-1.352148437499977,32.703369140625],[-1.45,32.784814453124994],[-1.510009765625,32.87763671875],[-1.550732421874983,33.073583984375],[-1.67919921875,33.318652343749996],[-1.795605468749983,34.751904296875],[-2.131787109374983,34.970849609374994],[-2.190771484374977,35.02978515625],[-2.219628906249994,35.10419921875],[-1.673632812499989,35.18310546875],[-0.426123046874977,35.8615234375],[-0.048242187499994,35.8328125],[0.312207031250011,36.162353515625],[0.9716796875,36.4439453125],[2.593359375,36.60068359375],[2.972851562500011,36.784472656249996],[3.779003906250011,36.89619140625],[4.758105468750017,36.896337890625],[5.29541015625,36.648242187499996],[6.486523437500011,37.085742187499996],[6.927539062500017,36.91943359375],[7.238476562500011,36.968505859375],[7.204296875000011,37.0923828125],[7.910449218750017,36.856347656249994],[8.576562500000023,36.93720703125],[8.601269531250011,36.833935546875],[8.207617187500006,36.518945312499994]]]},"properties":{"name":"Algeria","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-80.131591796875,-2.973144531249957],[-80.27294921875003,-2.995898437499974],[-80.22368164062502,-2.753125],[-80.08076171874995,-2.668847656249966],[-79.90903320312495,-2.725585937499972],[-80.131591796875,-2.973144531249957]]],[[[-90.42392578125,-1.339941406250034],[-90.51953124999994,-1.299121093749974],[-90.47719726562494,-1.22099609374996],[-90.42392578125,-1.339941406250034]]],[[[-89.41889648437498,-0.911035156249966],[-89.60859374999998,-0.888574218750009],[-89.28784179687503,-0.689843750000023],[-89.41889648437498,-0.911035156249966]]],[[[-90.33486328125,-0.771582031249977],[-90.54213867187502,-0.676464843749955],[-90.53168945312493,-0.581445312499966],[-90.26938476562498,-0.48466796874996],[-90.19272460937498,-0.658789062500006],[-90.33486328125,-0.771582031249977]]],[[[-91.42597656249995,-0.460839843749994],[-91.61074218749994,-0.44394531250002],[-91.64667968749998,-0.284472656249946],[-91.46015625000001,-0.255664062500031],[-91.42597656249995,-0.460839843749994]]],[[[-90.57392578124993,-0.333984375],[-90.8677734375,-0.271386718750037],[-90.78037109374998,-0.160449218749989],[-90.57392578124993,-0.333984375]]],[[[-91.27216796874998,0.025146484374986],[-90.799658203125,-0.752050781249991],[-90.90551757812497,-0.94052734375002],[-91.13105468750001,-1.019628906249977],[-91.41904296874998,-0.996679687500006],[-91.49541015624999,-0.860937499999977],[-91.120947265625,-0.559082031250028],[-91.36918945312493,-0.287207031249977],[-91.42885742187502,-0.023388671874955],[-91.59682617187497,0.002099609374994],[-91.36137695312496,0.125830078124977],[-91.27216796874998,0.025146484374986]]],[[[-78.90922851562502,1.252783203124977],[-78.99169921875003,1.293212890625043],[-78.89980468749997,1.359765625],[-78.90922851562502,1.252783203124977]]],[[[-75.28447265624999,-0.10654296875002],[-75.62626953124999,-0.122851562499974],[-75.63203125000001,-0.157617187500037],[-75.56059570312502,-0.200097656249994],[-75.49106445312498,-0.24833984374996],[-75.42470703124997,-0.408886718749983],[-75.259375,-0.59013671874996],[-75.24960937499998,-0.951855468750026],[-75.34819335937499,-0.966796874999957],[-75.38012695312503,-0.94023437499996],[-75.40805664062503,-0.92431640625],[-75.42041015624997,-0.962207031250003],[-75.570556640625,-1.53125],[-76.08979492187501,-2.133105468749974],[-76.6791015625,-2.562597656249991],[-77.860595703125,-2.981640625000011],[-78.240380859375,-3.472558593750009],[-78.345361328125,-3.397363281249966],[-78.64799804687499,-4.248144531250006],[-78.68603515625003,-4.562402343749994],[-78.86152343749998,-4.665039062499943],[-78.90761718749997,-4.714453124999977],[-78.92578125,-4.770703124999983],[-78.91420898437497,-4.818652343749974],[-78.919189453125,-4.858398437499986],[-78.97539062499999,-4.873242187499997],[-78.99526367187497,-4.908007812499974],[-79.03330078124998,-4.96914062499999],[-79.07626953125003,-4.990625],[-79.18666992187497,-4.958203124999983],[-79.26811523437493,-4.957617187499949],[-79.33095703124997,-4.92783203125002],[-79.39941406249997,-4.840039062499983],[-79.45576171874998,-4.766210937499949],[-79.50190429687495,-4.670605468750011],[-79.51616210937493,-4.539160156249963],[-79.57768554687496,-4.50058593750002],[-79.638525390625,-4.454882812500031],[-79.71098632812502,-4.467578124999946],[-79.79726562500002,-4.47636718749996],[-79.8451171875,-4.445898437499977],[-79.962890625,-4.390332031250026],[-80.06352539062499,-4.327539062500023],[-80.13955078125002,-4.296093750000011],[-80.19746093750001,-4.311035156249943],[-80.293359375,-4.416796875],[-80.38349609374998,-4.46367187499996],[-80.424169921875,-4.461425781250028],[-80.47856445312499,-4.430078125000037],[-80.48847656249995,-4.393652343749991],[-80.44384765625003,-4.335839843750023],[-80.35288085937495,-4.208496093750014],[-80.453759765625,-4.205175781249963],[-80.48847656249995,-4.165527343749972],[-80.49345703124999,-4.119140625000014],[-80.510009765625,-4.06953125000004],[-80.49013671874994,-4.010058593750003],[-80.43720703125001,-3.978613281249991],[-80.30327148437499,-4.005078124999969],[-80.26689453124993,-3.948828124999963],[-80.23051757812499,-3.924023437499969],[-80.19414062499996,-3.905859375],[-80.24375,-3.576757812500006],[-80.32465820312498,-3.387890625],[-79.96333007812501,-3.15771484375],[-79.72988281249997,-2.579101562499972],[-79.842138671875,-2.0673828125],[-79.92558593749996,-2.548535156249969],[-80.03017578124994,-2.556738281249949],[-80.00664062499993,-2.353808593750003],[-80.28471679687502,-2.706738281249955],[-80.93217773437493,-2.269140624999977],[-80.76059570312498,-1.934570312500028],[-80.90239257812499,-1.078906249999974],[-80.55390624999998,-0.847949218749989],[-80.45546875,-0.585449218749986],[-80.282373046875,-0.620507812500023],[-80.48227539062503,-0.368261718749963],[-80.046142578125,0.155371093750048],[-80.08828124999997,0.78476562500002],[-78.89965820312503,1.20625],[-78.85966796874996,1.455371093750031],[-78.1806640625,0.968554687499974],[-77.702880859375,0.837841796874997],[-77.46767578124997,0.636523437500017],[-77.396337890625,0.393896484374963],[-76.49462890624997,0.23544921875002],[-76.27060546874998,0.439404296874997],[-75.77666015624999,0.08925781249998],[-75.28447265624999,-0.10654296875002]]]]},"properties":{"name":"Ecuador","childNum":9}},{"geometry":{"type":"Polygon","coordinates":[[[34.24531250000001,31.208300781249996],[34.904296875,29.47734375],[34.736425781250006,29.27060546875],[34.39970703125002,28.01601562499999],[34.22011718750002,27.764306640624994],[33.76025390625,28.04765625],[33.24775390625001,28.567724609375],[32.56572265625002,29.973974609375],[32.35976562500002,29.630664062499996],[32.89824218750002,28.565234375],[33.54707031250001,27.898144531249997],[33.5498046875,27.607373046874997],[33.84931640625001,27.184912109375],[33.959082031250006,26.6490234375],[35.19414062500002,24.475146484375003],[35.78388671875001,23.937792968750003],[35.54082031250002,23.920654296875],[35.50439453125,23.779296875],[35.697851562500006,22.946191406249994],[36.22968750000001,22.628808593749994],[36.87138671875002,21.996728515624994],[31.434472656250023,21.995849609375],[31.486132812500017,22.14780273437499],[31.400292968750023,22.202441406250003],[31.260644531250023,22.00229492187499],[31.092675781250023,21.994873046875],[28.036425781250017,21.995361328125],[24.980273437500017,21.995849609375],[24.980273437500017,25.5888671875],[24.980273437500017,29.181884765625],[24.703222656250006,30.201074218749994],[24.96142578125,30.678515625],[24.85273437500001,31.334814453125],[25.150488281250006,31.654980468749997],[25.382226562500023,31.51279296875],[25.89326171875001,31.620898437499996],[27.248046875,31.377880859374997],[27.5400390625,31.212695312499996],[28.51484375000001,31.050439453124994],[29.072070312500017,30.830273437499997],[29.929785156250006,31.227490234374997],[30.22265625,31.2583984375],[30.395117187500006,31.4576171875],[30.92353515625001,31.566845703124997],[30.56298828125,31.4169921875],[31.001757812500017,31.462792968749994],[31.082910156250023,31.603320312499996],[31.5244140625,31.458251953125],[31.888964843750017,31.54140625],[32.13603515625002,31.341064453125],[31.8921875,31.482470703124996],[31.77109375,31.292578125],[32.10175781250001,31.092822265624996],[32.281835937500006,31.200878906249997],[32.21621093750002,31.29375],[32.60332031250002,31.06875],[33.66650390625,31.130419921874996],[34.19814453125002,31.322607421875],[34.24531250000001,31.208300781249996]]]},"properties":{"name":"Egypt","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[40.141210937500006,15.696142578125034],[40.399023437500006,15.579882812500045],[39.975195312500006,15.612451171875023],[39.94746093750004,15.696142578125034],[40.07050781250004,15.676611328125034],[39.93994140625003,15.744531250000023],[39.9567382812501,15.889404296875057],[40.141210937500006,15.696142578125034]]],[[[40.07646484375002,16.082421875000023],[40.11005859375004,15.985742187500051],[39.99609375000003,16.04267578125001],[40.07646484375002,16.082421875000023]]],[[[40.938574218750006,13.983105468749997],[40.82011718750002,14.111669921874991],[40.22148437500002,14.431152343749972],[39.531835937500006,14.53671875],[39.198046875000074,14.479394531250037],[39.1354492187501,14.581884765625034],[39.07421874999997,14.628222656249974],[39.02382812499999,14.628222656249974],[38.99570312500006,14.586865234374983],[38.81201171875003,14.482324218750009],[38.50439453124997,14.42441406250002],[38.43144531250002,14.428613281249994],[38.221484375000074,14.649658203124986],[38.002539062500006,14.737109375000045],[37.94345703125006,14.810546875],[37.884179687499994,14.852294921874972],[37.82031250000003,14.708496093749986],[37.70839843750005,14.45722656250004],[37.64843750000003,14.32255859375006],[37.571191406249994,14.149072265624966],[37.546777343749994,14.143847656249974],[37.507226562499994,14.156396484375037],[37.257226562499994,14.453759765625051],[37.024511718750006,14.271972656250057],[36.81191406250005,14.315039062500034],[36.67910156250005,14.307568359375026],[36.542382812499994,14.25820312499999],[36.52431640625005,14.256835937499986],[36.492285156250006,14.544335937500023],[36.470800781250006,14.736474609375009],[36.448144531249994,14.940087890625009],[36.42675781249997,15.132080078125043],[36.566015625,15.362109375],[36.9137695312501,16.296191406250045],[36.887792968750006,16.624658203124994],[36.9787109375001,16.800585937500045],[36.9757812500001,16.866552734375006],[36.99521484375006,17.020556640625017],[37.00898437500004,17.058886718750017],[37.06152343749997,17.061279296875057],[37.16953125000006,17.04140625],[37.41103515625005,17.061718749999955],[37.452929687500074,17.108691406250017],[37.51015625,17.28813476562499],[37.54746093750006,17.32412109375005],[37.78242187500004,17.458007812500057],[38.253515625,17.584765625000017],[38.26728515625004,17.616699218750057],[38.28984375000002,17.637011718750017],[38.34736328125004,17.68359375],[38.37373046875004,17.717333984375045],[38.42246093750006,17.823925781249983],[38.60947265625006,18.00507812500004],[39.03447265625002,17.085546875000034],[39.298925781250006,15.921093750000011],[39.78554687499999,15.124853515624991],[39.86376953124997,15.470312500000034],[40.20410156250003,15.014111328124983],[41.17646484375004,14.620312500000054],[41.65820312499997,13.983056640624994],[42.24511718749997,13.587646484374986],[42.39931640625005,13.212597656249969],[42.522851562499994,13.221484375],[42.796191406250074,12.864257812500057],[42.96953125000002,12.808349609375028],[42.99902343750003,12.899511718750048],[43.08291015625005,12.824609374999966],[43.11669921874997,12.708593749999963],[43.00566406250002,12.66230468750004],[42.88330078124997,12.621289062500026],[42.86591796875004,12.622802734374986],[42.82529296875006,12.569335937500014],[42.767480468749994,12.422851562500014],[42.70371093750006,12.380322265625054],[42.479394531249994,12.513623046875026],[42.45,12.521337890625006],[42.40859375,12.494384765625014],[42.37851562500006,12.46640625],[42.28994140625005,12.570214843750009],[42.225,12.661962890624963],[42.13427734374997,12.771435546874969],[41.95214843749997,12.88232421875],[41.85957031250004,13.025878906250028],[41.76503906250005,13.183935546874991],[41.362890625,13.499804687500031],[40.938574218750006,13.983105468749997]]]]},"properties":{"name":"Eritrea","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-17.887939453125,27.809570312500057],[-17.984765625000023,27.646386718750023],[-18.160546874999937,27.76147460937503],[-17.887939453125,27.809570312500057]]],[[[-15.400585937499955,28.147363281250023],[-15.436767578124972,27.810693359375023],[-15.71030273437492,27.784082031250023],[-15.809472656249966,27.994482421874977],[-15.682763671874994,28.15405273437497],[-15.400585937499955,28.147363281250023]]],[[[-17.184667968749977,28.02197265624997],[-17.324902343749955,28.11767578125003],[-17.25859375,28.203173828125045],[-17.103759765624943,28.111132812500017],[-17.184667968749977,28.02197265624997]]],[[[-16.33447265624997,28.37993164062499],[-16.41821289062497,28.15141601562496],[-16.65800781249999,28.007177734374977],[-16.905322265625017,28.33959960937503],[-16.12363281249992,28.57597656249996],[-16.33447265624997,28.37993164062499]]],[[[-14.196777343749943,28.169287109375063],[-14.332617187500006,28.056005859374977],[-14.49179687499992,28.100927734374977],[-14.231982421875017,28.21582031250003],[-14.003369140624983,28.706689453125023],[-13.85722656249996,28.73803710937503],[-13.928027343749989,28.25346679687499],[-14.196777343749943,28.169287109375063]]],[[[-17.83427734374999,28.49321289062496],[-18.00078124999999,28.758251953124955],[-17.928808593749977,28.844580078125063],[-17.7265625,28.724462890625006],[-17.83427734374999,28.49321289062496]]],[[[-13.715966796874966,28.911230468750034],[-13.85991210937496,28.869091796874983],[-13.823632812499966,29.013330078124966],[-13.463574218749955,29.237207031250023],[-13.477929687499966,29.00659179687503],[-13.715966796874966,28.911230468750034]]],[[[1.593945312500068,38.672070312499955],[1.40576171875,38.670996093750006],[1.436328125000017,38.768212890624994],[1.593945312500068,38.672070312499955]]],[[[1.445214843750051,38.91870117187503],[1.223339843750068,38.90385742187502],[1.3486328125,39.080810546875],[1.564453125,39.12104492187504],[1.623632812499977,39.03881835937497],[1.445214843750051,38.91870117187503]]],[[[3.145312500000017,39.79008789062499],[3.461816406250023,39.69775390625003],[3.072851562500006,39.30126953124997],[2.799804687500057,39.38505859374999],[2.700585937500023,39.54213867187502],[2.49951171875,39.47788085937498],[2.37001953125008,39.57207031249999],[3.15869140625,39.97050781249999],[3.145312500000017,39.79008789062499]]],[[[4.293652343750011,39.84184570312499],[3.8671875,39.958740234375],[3.853417968750051,40.06303710937502],[4.22578125000004,40.032373046874966],[4.293652343750011,39.84184570312499]]],[[[-1.794042968749949,43.407324218750006],[-1.410693359374932,43.240087890625034],[-1.460839843749937,43.05175781250006],[-1.300048828124943,43.10097656250002],[-0.586425781249943,42.798974609374966],[0.631640625000045,42.689599609374994],[0.696875,42.84511718750005],[1.428320312499977,42.59589843749998],[1.414843750000074,42.54838867187499],[1.448828124999977,42.43745117187504],[1.534082031250051,42.44169921875002],[1.7060546875,42.50332031250005],[1.859765625000051,42.457080078125045],[1.927929687500068,42.42631835937499],[2.032714843750028,42.353515625],[3.21142578125,42.43115234375],[3.248046875,41.94423828125002],[3.0048828125,41.76743164062506],[2.082617187500063,41.287402343750045],[1.032910156250068,41.06206054687496],[0.714648437500074,40.822851562500006],[0.891113281250057,40.72236328125004],[0.59609375000008,40.614501953125],[-0.327001953124949,39.519873046875006],[-0.204931640624949,39.062597656250034],[0.20156250000008,38.75917968750002],[-0.520800781249989,38.317285156249966],[-0.814648437500011,37.76992187500002],[-0.721582031249966,37.63105468749998],[-1.327539062499937,37.561132812500034],[-1.640966796874949,37.38696289062497],[-2.111523437499983,36.77666015624999],[-4.366845703124994,36.71811523437506],[-4.67412109374996,36.506445312500006],[-5.171484374999949,36.423779296874955],[-5.3609375,36.134912109374994],[-5.62548828125,36.02592773437499],[-6.040673828124937,36.18842773437498],[-6.38413085937492,36.63701171874996],[-6.216796875000028,36.91357421875],[-6.396191406249983,36.831640625],[-6.863769531250028,37.27890625],[-7.406152343749937,37.17944335937497],[-7.44394531249992,37.72827148437497],[-6.957568359374932,38.18789062499999],[-7.106396484374983,38.181005859375006],[-7.343017578124943,38.45742187500002],[-6.997949218749994,39.05644531250002],[-7.53569335937496,39.66157226562501],[-7.117675781249972,39.681689453125045],[-6.975390624999932,39.79838867187502],[-6.896093749999949,40.02182617187506],[-7.032617187499966,40.16791992187498],[-6.8101562499999,40.343115234375034],[-6.928466796874972,41.009130859375006],[-6.2125,41.53203125],[-6.542187499999955,41.672509765624994],[-6.61826171874992,41.9423828125],[-7.147119140625023,41.98115234374998],[-7.40361328124996,41.833691406249955],[-8.152490234374937,41.81196289062498],[-8.266064453124983,42.13740234375001],[-8.777148437500017,41.941064453124994],[-8.887207031249943,42.105273437500045],[-8.690917968749943,42.274169921875],[-8.815820312499966,42.285253906250034],[-8.730029296874989,42.411718750000034],[-8.8115234375,42.64033203124998],[-9.033105468750023,42.593847656250006],[-8.927197265624926,42.79858398437497],[-9.235205078124977,42.97690429687498],[-9.178076171874977,43.17402343749998],[-8.248925781249937,43.43940429687498],[-8.256738281249937,43.57988281249999],[-8.004687499999932,43.69438476562496],[-7.503613281249983,43.73994140625001],[-7.060986328124955,43.55395507812503],[-5.846679687499943,43.645068359375045],[-4.52304687499992,43.41572265625004],[-3.604638671874966,43.51948242187504],[-3.045605468749926,43.37158203125],[-2.875048828125017,43.454443359375006],[-2.337109374999926,43.32802734375002],[-1.794042968749949,43.407324218750006]]]]},"properties":{"name":"Spain","childNum":12,"cp":[-2.9366964,40.3438963]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[22.61738281250004,58.62124023437502],[23.323242187500057,58.45083007812502],[22.730273437500045,58.23066406250001],[22.371679687499977,58.217138671875006],[21.996875,57.93134765624998],[22.187695312500068,58.15434570312502],[21.88212890624999,58.262353515624994],[21.862304687500057,58.497167968750034],[22.61738281250004,58.62124023437502]]],[[[23.343554687500017,58.550341796875045],[23.10908203125004,58.65922851562502],[23.332812500000045,58.648583984374994],[23.343554687500017,58.550341796875045]]],[[[22.923730468750023,58.826904296875],[22.54218750000001,58.68999023437499],[22.411035156250023,58.863378906250034],[22.05625,58.94360351562506],[22.6494140625,59.08710937499998],[22.90986328125004,58.99121093749997],[22.923730468750023,58.826904296875]]],[[[28.0125,59.484277343749966],[28.15107421875004,59.374414062499966],[27.434179687500006,58.787255859374994],[27.502441406250057,58.221337890624994],[27.778515625000068,57.87070312500006],[27.542089843750063,57.799414062500006],[27.4,57.66679687499999],[27.35195312500005,57.528125],[26.96601562500001,57.60913085937506],[26.532617187499994,57.53100585937503],[26.29804687500001,57.60107421875],[25.66015625,57.920166015625],[25.27265625000001,58.009375],[25.11103515625004,58.06342773437498],[24.45888671875005,57.907861328124994],[24.3625,57.86616210937501],[24.322558593750074,57.87060546875003],[24.529101562500045,58.35424804687497],[24.114843750000034,58.26611328125006],[23.767578125000057,58.36083984374997],[23.50927734375003,58.65854492187498],[23.680761718750063,58.787158203125074],[23.43203125,58.920654296875],[23.494433593750017,59.19565429687498],[24.083398437500023,59.29189453125005],[24.38037109375003,59.47265625],[25.44375,59.52114257812502],[25.50927734374997,59.63901367187506],[26.974707031250006,59.450634765624955],[28.0125,59.484277343749966]]]]},"properties":{"name":"Estonia","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[38.43144531250002,14.428613281249994],[38.50439453125,14.424414062499991],[38.81201171875,14.482324218749994],[38.995703125,14.586865234374997],[39.02382812500002,14.628222656250003],[39.07421875,14.628222656250003],[39.13544921875001,14.581884765624991],[39.19804687500002,14.479394531249994],[39.531835937500006,14.53671875],[40.22148437500002,14.43115234375],[40.82011718750002,14.111669921874991],[40.938574218750006,13.983105468749997],[41.362890625,13.499804687500003],[41.76503906250002,13.183935546874991],[41.85957031250001,13.02587890625],[41.9521484375,12.88232421875],[42.13427734375,12.771435546874997],[42.225,12.661962890624991],[42.28994140625002,12.570214843749994],[42.378515625,12.46640625],[41.79267578125001,11.68603515625],[41.79824218750002,10.98046875],[42.557714843750006,11.080761718749997],[42.92275390625002,10.999316406249989],[42.65644531250001,10.6],[42.84160156250002,10.203076171874997],[43.181640625,9.879980468749991],[43.482519531250006,9.379492187499991],[43.98378906250002,9.008837890624989],[46.97822265625001,7.9970703125],[47.97822265625001,7.9970703125],[44.940527343750006,4.912011718749994],[43.988867187500006,4.950537109374991],[43.58349609375,4.85498046875],[43.12568359375001,4.644482421874997],[42.85664062500001,4.32421875],[42.02412109375001,4.137939453125],[41.91533203125002,4.031298828124989],[41.88398437500001,3.977734375],[41.73769531250002,3.979052734374989],[41.48193359375,3.96328125],[41.37246093750002,3.946191406249994],[41.22089843750001,3.943554687499997],[41.02080078125002,4.057470703124991],[40.765234375,4.27304687499999],[39.84218750000002,3.851464843749994],[39.79033203125002,3.754248046874991],[39.65751953125002,3.577832031249997],[39.49443359375002,3.456103515624989],[38.608007812500006,3.60009765625],[38.45156250000002,3.604833984374991],[38.22529296875001,3.618994140624991],[38.08613281250001,3.64882812499999],[37.15458984375002,4.254541015624994],[36.90556640625002,4.411474609374991],[36.02197265625,4.468115234374991],[35.76308593750002,4.808007812499994],[35.75615234375002,4.950488281249989],[35.779296875,5.105566406249991],[35.80029296875,5.156933593749997],[35.74501953125002,5.343994140625],[35.325292968750006,5.364892578124994],[35.2646484375,5.412060546874997],[35.26386718750001,5.457910156249994],[35.26835937500002,5.492285156249991],[34.98359375000001,5.858300781249994],[34.71064453125001,6.660302734374994],[34.06425781250002,7.225732421874994],[33.902441406250006,7.509521484375],[32.99892578125002,7.899511718749991],[33.28105468750002,8.437255859375],[33.95332031250001,8.443505859374994],[34.07275390625,8.545263671874991],[34.078125,9.461523437499991],[34.31123046875001,10.190869140624997],[34.34394531250001,10.658642578124997],[34.571875,10.880175781249989],[34.77128906250002,10.746191406249991],[34.93144531250002,10.864794921874989],[35.1123046875,11.816552734374994],[35.67021484375002,12.623730468749997],[36.12519531250001,12.75703125],[36.52431640625002,14.2568359375],[36.54238281250002,14.25820312499999],[36.67910156250002,14.307568359374997],[36.81191406250002,14.315039062499991],[37.024511718750006,14.27197265625],[37.25722656250002,14.453759765624994],[37.50722656250002,14.156396484374994],[37.54677734375002,14.143847656250003],[37.57119140625002,14.149072265624994],[37.6484375,14.322558593750003],[37.70839843750002,14.457226562499997],[37.8203125,14.70849609375],[37.88417968750002,14.852294921875],[37.943457031250006,14.810546875],[38.002539062500006,14.737109375],[38.22148437500002,14.649658203125],[38.43144531250002,14.428613281249994]]]},"properties":{"name":"Ethiopia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[22.17509765624999,60.370751953124994],[22.41552734375003,60.30336914062505],[22.36054687500004,60.165576171875045],[22.07714843750003,60.286328124999955],[22.17509765624999,60.370751953124994]]],[[[21.450878906250068,60.529589843750045],[21.3,60.47978515625002],[21.224707031250006,60.62060546875003],[21.450878906250068,60.529589843750045]]],[[[21.2177734375,63.241308593750034],[21.415625,63.19736328125006],[21.25341796875,63.152001953124966],[21.08388671875008,63.277539062499955],[21.2177734375,63.241308593750034]]],[[[24.848242187500034,64.99101562499999],[24.576562500000023,65.04287109375],[24.970605468750023,65.05532226562502],[24.848242187500034,64.99101562499999]]],[[[28.96582031250003,69.02197265625],[28.414062500000057,68.90415039062506],[28.77285156250005,68.84003906249995],[28.470703125000057,68.48837890625],[28.685156250000034,68.189794921875],[29.343847656250006,68.06186523437506],[29.988085937500017,67.66826171874999],[29.066210937500045,66.89174804687497],[30.102734375000097,65.72626953125004],[29.715917968750063,65.62456054687502],[29.608007812500006,65.248681640625],[29.826953125000017,65.14506835937502],[29.60419921875004,64.968408203125],[30.072851562500063,64.76503906250005],[30.04189453125005,64.44335937499997],[30.513769531250006,64.2],[30.50390625000003,64.02060546875],[29.991503906250074,63.73515625000002],[31.180859375000097,63.208300781250074],[31.533984375000017,62.885400390624994],[31.18671875000004,62.48139648437504],[29.69013671875004,61.54609375000001],[27.797656250000074,60.53613281250003],[26.53466796874997,60.412890625000074],[26.56933593750003,60.62456054687502],[26.377734375000074,60.42407226562503],[25.955957031250023,60.474218750000034],[26.03583984375004,60.34150390625001],[25.75800781250004,60.26752929687504],[25.65644531250004,60.33320312499998],[24.44560546874999,60.021289062500045],[23.46357421875004,59.986230468749994],[23.021289062500074,59.81601562500006],[23.19843750000001,60.02182617187498],[22.911718750000063,60.20971679687497],[22.749804687500017,60.057275390624994],[22.462695312500045,60.029199218749966],[22.5849609375,60.380566406249955],[21.436035156250057,60.596386718749955],[21.605957031250057,61.59155273437503],[21.255957031250063,61.98964843750005],[21.143847656250045,62.73999023437506],[21.650976562500063,63.039306640625],[21.545117187499983,63.204296874999955],[22.31972656250005,63.310449218749994],[22.532324218750034,63.647851562499994],[23.598925781250074,64.04091796874997],[24.557910156250045,64.801025390625],[25.288183593750063,64.8603515625],[25.34785156250004,65.47924804687497],[24.674902343750006,65.67070312499999],[24.628027343750034,65.85917968750002],[24.15546875000004,65.80527343750006],[23.700292968750034,66.25263671874998],[23.988574218750045,66.81054687500003],[23.64150390625005,67.12939453124997],[23.733593750000068,67.42290039062499],[23.454882812500045,67.46025390625007],[23.63886718750004,67.95439453125002],[22.854101562500034,68.36733398437502],[21.99746093750005,68.52060546874998],[20.622167968750006,69.036865234375],[21.065722656250017,69.04174804687503],[21.06611328125001,69.21411132812497],[21.59375,69.273583984375],[22.410937500000074,68.719873046875],[23.324023437500017,68.64897460937502],[23.85400390625,68.80590820312503],[24.94140625000003,68.59326171875006],[25.748339843750017,68.99013671875],[26.07246093750004,69.69155273437497],[26.525390625000057,69.91503906250003],[27.127539062500063,69.90649414062497],[27.747851562500045,70.06484375],[29.14160156250003,69.67143554687505],[29.33339843750005,69.47299804687503],[28.846289062500006,69.17690429687502],[28.96582031250003,69.02197265625]]]]},"properties":{"name":"Finland","childNum":5}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[178.48789062500018,-18.97412109375],[177.95869140624998,-19.121582031250014],[178.33427734375013,-18.93447265625001],[178.48789062500018,-18.97412109375]]],[[[179.34931640625015,-18.10234375000003],[179.25351562500018,-18.030566406249974],[179.30644531250013,-17.944042968750026],[179.34931640625015,-18.10234375000003]]],[[[178.28017578124994,-17.37197265625001],[178.59160156249996,-17.651464843750006],[178.66767578125004,-18.080859375],[177.95546875000005,-18.264062500000023],[177.32138671875,-18.077539062500037],[177.26396484375007,-17.86347656250004],[177.5044921875,-17.539550781250043],[177.81796875000012,-17.38847656249999],[178.28017578124994,-17.37197265625001]]],[[[180,-16.96308593750001],[179.89697265625003,-16.96406250000004],[180,-16.785742187500034],[180,-16.96308593750001]]],[[[-179.97490234374996,-16.92480468750003],[-180,-16.96298828124999],[-180,-16.907812500000034],[-180,-16.82431640624999],[-180,-16.78554687499999],[-179.86098632812502,-16.68828124999999],[-179.97490234374996,-16.92480468750003]]],[[[-179.92944335937503,-16.502832031250037],[-179.999951171875,-16.540039062499986],[-179.900927734375,-16.431542968749994],[-179.92944335937503,-16.502832031250037]]],[[[179.99921875000004,-16.168554687499977],[179.56416015625004,-16.636914062499997],[179.56816406249996,-16.747460937499966],[179.93037109375004,-16.51943359375005],[179.9279296875001,-16.74443359374996],[179.41933593750005,-16.80654296875001],[179.20234375000004,-16.71269531249999],[179.00683593750003,-16.90019531249999],[178.70664062500018,-16.97617187500002],[178.4974609375,-16.78789062500003],[178.58359375000012,-16.621875],[178.80507812499994,-16.631445312500034],[179.55175781250003,-16.249902343750023],[180,-16.15292968749999],[179.99921875000004,-16.168554687499977]]]]},"properties":{"name":"Fiji","childNum":7}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-61.01875,-51.7857421875],[-60.87597656250003,-51.79423828125004],[-60.94755859374996,-51.94628906250002],[-61.14501953125003,-51.83945312500001],[-61.01875,-51.7857421875]]],[[[-60.28623046874995,-51.461914062500014],[-59.38759765625002,-51.35996093750003],[-59.26806640625,-51.42753906250003],[-59.92138671874997,-51.969531250000045],[-60.246337890625,-51.98642578125003],[-60.35346679687498,-52.13994140625004],[-60.686376953125034,-52.18837890624996],[-60.96142578125003,-52.05732421874999],[-60.23847656249998,-51.771972656250036],[-60.58251953125,-51.71269531250004],[-60.24516601562493,-51.638867187500004],[-60.56845703124998,-51.357812499999945],[-60.28623046874995,-51.461914062500014]]],[[[-60.11171875000002,-51.39589843749998],[-60.275341796874955,-51.28056640625002],[-60.06982421875,-51.307910156249996],[-60.11171875000002,-51.39589843749998]]],[[[-58.85019531249995,-51.26992187499998],[-58.42583007812502,-51.32421875000003],[-58.508935546874994,-51.48359375],[-58.271582031250034,-51.57470703124999],[-58.25922851562501,-51.417089843750034],[-57.976513671874955,-51.384375],[-57.80849609375002,-51.51796875],[-57.96044921874997,-51.58320312500003],[-57.79179687499999,-51.63613281249998],[-58.68349609375002,-51.93623046875001],[-58.65278320312498,-52.09921875],[-59.19584960937496,-52.01767578125],[-59.06801757812502,-52.17304687500003],[-59.341503906249955,-52.19599609375],[-59.395654296874966,-52.308007812499994],[-59.64873046875002,-52.134375],[-59.57080078124994,-51.92539062500003],[-59.05952148437498,-51.685449218749994],[-59.09663085937498,-51.49140624999998],[-58.85019531249995,-51.26992187499998]]]]},"properties":{"name":"Falkland Is.","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[55.79736328125003,-21.33935546875003],[55.36269531250005,-21.27363281250004],[55.23281250000005,-21.05839843749999],[55.311328125000074,-20.90410156249999],[55.661914062500074,-20.90625],[55.8390625000001,-21.13857421874998],[55.79736328125003,-21.33935546875003]]],[[[45.180273437500006,-12.97675781250004],[45.069433593750006,-12.895605468750034],[45.09238281250006,-12.653027343749997],[45.22314453124997,-12.752148437500026],[45.180273437500006,-12.97675781250004]]],[[[-51.65253906249998,4.061279296874972],[-52.327880859375,3.18173828125002],[-52.58300781250003,2.528906249999977],[-52.90346679687502,2.211523437499977],[-53.76777343749998,2.354833984375048],[-54.13007812499998,2.121044921875026],[-54.43310546875,2.207519531250057],[-54.51508789062498,2.245458984374963],[-54.55048828125001,2.293066406249991],[-54.59194335937502,2.313769531250031],[-54.61625976562499,2.326757812500006],[-54.60473632812497,2.335791015624991],[-54.56840820312502,2.342578125000031],[-54.53593749999999,2.343310546875003],[-54.48554687500001,2.416113281250006],[-54.402001953124966,2.46152343750002],[-54.25673828125002,2.713720703124977],[-54.19550781249998,2.817871093750057],[-54.17070312499999,2.993603515624969],[-54.203125,3.138183593750028],[-54.18803710937499,3.178759765625031],[-54.063183593749955,3.353320312499989],[-54.00957031249993,3.448535156250017],[-54.03422851562499,3.62939453125],[-54.350732421874994,4.054101562500023],[-54.47968749999998,4.836523437499991],[-53.91992187499997,5.768994140624983],[-52.899316406249966,5.425048828124986],[-52.29052734375003,4.942187500000031],[-52.324609374999966,4.770898437500037],[-52.21997070312494,4.862792968750014],[-52.05810546875003,4.717382812499963],[-52.00292968749997,4.352294921875014],[-51.82753906250002,4.635693359375026],[-51.65253906249998,4.061279296874972]]],[[[-60.826269531250006,14.494482421874991],[-61.063720703125,14.467089843750017],[-61.01132812499998,14.601904296875034],[-61.21333007812501,14.848583984375011],[-60.927148437499966,14.755175781249989],[-60.826269531250006,14.494482421874991]]],[[[-61.23046875000003,15.889941406250074],[-61.310742187499955,15.894677734374966],[-61.25,16.006298828124983],[-61.23046875000003,15.889941406250074]]],[[[-61.58955078125001,16.006933593750006],[-61.759423828124966,16.062060546875045],[-61.74804687499997,16.355273437500017],[-61.55234374999998,16.270898437499966],[-61.58955078125001,16.006933593750006]]],[[[-61.3271484375,16.230419921874983],[-61.522167968749955,16.22802734375003],[-61.47119140624994,16.506640625000045],[-61.17260742187497,16.25610351562497],[-61.3271484375,16.230419921874983]]],[[[9.480371093750023,42.80541992187503],[9.550683593750051,42.12973632812506],[9.186132812500034,41.38491210937502],[8.80751953125008,41.58837890625],[8.886816406249977,41.70068359375003],[8.621875,41.93071289062502],[8.700976562500045,42.09560546875002],[8.565625,42.35771484374996],[8.81484375000008,42.60791015625003],[9.313378906250023,42.71318359374999],[9.363183593750051,43.01738281249996],[9.480371093750023,42.80541992187503]]],[[[-1.17832031249992,45.904052734375],[-1.213574218750011,45.81660156250004],[-1.388671874999972,46.05039062500006],[-1.17832031249992,45.904052734375]]],[[[5.789746093749983,49.53828125000001],[5.823437500000011,49.50507812499998],[5.9013671875,49.48974609374997],[5.928906250000011,49.47753906249997],[5.959472656250028,49.45463867187502],[6.01142578125004,49.44545898437502],[6.074121093750023,49.45463867187502],[6.119921875000017,49.485205078125034],[6.181054687500051,49.498925781249966],[6.344335937500006,49.45273437499998],[6.735449218750006,49.16059570312498],[7.450585937500051,49.152197265625034],[8.134863281250006,48.97358398437498],[7.616601562500023,48.15678710937502],[7.615625,47.59272460937504],[7.343164062499994,47.43310546875003],[7.136035156249989,47.489843750000034],[6.968359375000034,47.453222656250034],[6.900390625000028,47.39423828125001],[7.000585937500034,47.339453125000034],[7.000585937500034,47.32250976562506],[6.978515625000057,47.30205078124996],[6.95205078125008,47.26718750000006],[6.820703125000051,47.163183593750006],[6.688085937500034,47.05825195312505],[6.66689453125008,47.026513671874966],[6.624804687500017,47.00434570312498],[6.45625,46.948339843750034],[6.438646763392874,46.774418247767855],[6.129687500000045,46.56699218750006],[6.118111049107182,46.447459542410726],[6.095898437500011,46.279394531250006],[5.970019531250045,46.214697265625034],[5.971484375000074,46.151220703125006],[6.006640625000045,46.14233398437506],[6.086621093750068,46.14702148437502],[6.19941406250004,46.19306640624998],[6.234667968750045,46.332617187500006],[6.321875,46.39370117187502],[6.428906250000011,46.43051757812506],[6.578222656250034,46.437353515625034],[6.758105468750017,46.41577148437497],[6.772070312500006,46.16513671874998],[6.897265625000017,46.05175781249997],[6.953710937500063,46.017138671875045],[7.00390625,45.95883789062506],[7.021093750000034,45.92578124999997],[6.790917968750023,45.740869140624966],[7.146386718750051,45.381738281249994],[7.07832031250004,45.23994140624998],[6.634765625000028,45.06816406249996],[6.99267578125,44.82729492187502],[6.900195312499989,44.33574218749996],[7.318554687500068,44.13798828125002],[7.637207031250057,44.16484375],[7.4931640625,43.767138671875045],[6.570214843750023,43.199072265625034],[6.115917968750011,43.07236328124998],[5.406542968750074,43.228515625],[5.05976562500004,43.44453125000004],[4.712109375000011,43.373291015625],[3.910839843750011,43.563085937500034],[3.258886718750063,43.193212890625006],[3.051757812500057,42.915136718750006],[3.21142578125,42.43115234375],[2.032714843750028,42.353515625],[1.927929687500068,42.42631835937499],[1.859765625000051,42.457080078125045],[1.7060546875,42.50332031250005],[1.709863281250051,42.604443359374955],[1.568164062500045,42.63500976562506],[1.501367187500023,42.64272460937502],[1.428320312499977,42.59589843749998],[0.696875,42.84511718750005],[0.631640625000045,42.689599609374994],[-0.586425781249943,42.798974609374966],[-1.300048828124943,43.10097656250002],[-1.460839843749937,43.05175781250006],[-1.410693359374932,43.240087890625034],[-1.794042968749949,43.407324218750006],[-1.484863281249943,43.56376953124999],[-1.245507812499937,44.55986328124999],[-1.07695312499996,44.68984375],[-1.152880859374989,44.764013671875006],[-1.245214843749977,44.66669921874998],[-1.081005859374983,45.532421874999955],[-0.548486328124966,45.00058593750006],[-0.790771484375028,45.46801757812497],[-1.195996093749983,45.714453125],[-1.03173828125,45.741064453125006],[-1.14628906249996,46.311376953125034],[-1.786523437499937,46.51484375000001],[-2.059375,46.81030273437497],[-2.01889648437492,47.03764648437502],[-2.197070312499989,47.16293945312506],[-2.027587890625028,47.27358398437502],[-1.742529296874949,47.21596679687502],[-1.97539062499996,47.31069335937505],[-2.503125,47.31206054687496],[-2.427685546874983,47.47089843749998],[-2.770312499999989,47.513867187499955],[-2.787207031249949,47.62553710937496],[-4.312109374999949,47.82290039062502],[-4.678808593749949,48.03950195312501],[-4.32944335937492,48.169970703125045],[-4.577148437499943,48.2900390625],[-4.241406249999926,48.30366210937501],[-4.719384765624966,48.363134765625034],[-4.7625,48.45024414062502],[-4.531201171874983,48.61997070312506],[-3.231445312499972,48.84082031250003],[-2.692333984374983,48.53681640624998],[-2.446191406249937,48.64829101562506],[-2.00371093749996,48.58208007812499],[-1.905712890624955,48.69711914062506],[-1.376464843749972,48.65258789062503],[-1.565478515624932,48.805517578125034],[-1.583105468749977,49.20239257812506],[-1.856445312499972,49.68378906249998],[-1.258642578124949,49.68017578125006],[-1.138525390624977,49.38789062500001],[-0.163476562499937,49.296777343749994],[0.41689453125008,49.448388671874994],[0.129394531250028,49.508447265624966],[0.186718749999983,49.703027343749994],[1.245507812500051,49.99824218750001],[1.5927734375,50.25219726562506],[1.672265625000023,50.885009765625],[2.52490234375,51.097119140624955],[2.759375,50.750634765624994],[3.10683593750008,50.779443359374994],[3.27333984375008,50.53154296875002],[3.595410156250068,50.47734374999999],[3.689355468750023,50.30605468750002],[4.174609375000017,50.24648437500005],[4.149316406250023,49.971582031249994],[4.545019531250063,49.96025390624999],[4.818652343750045,50.153173828125034],[4.867578125000051,49.78813476562502],[5.50732421875,49.51088867187502],[5.789746093749983,49.53828125000001]]]]},"properties":{"name":"France","childNum":10,"cp":[2.8719426,46.8222422]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-7.186865234374949,62.139306640624966],[-7.116796874999977,62.046826171874955],[-7.379101562499926,62.07480468749998],[-7.186865234374949,62.139306640624966]]],[[[-6.631054687499955,62.22788085937498],[-6.655810546874932,62.09360351562498],[-6.840527343749983,62.119287109374994],[-6.725195312499949,61.95146484374999],[-7.17216796874996,62.28559570312501],[-6.631054687499955,62.22788085937498]]],[[[-6.406054687499932,62.258642578125034],[-6.544140624999926,62.20561523437499],[-6.554589843749994,62.35566406250001],[-6.406054687499932,62.258642578125034]]]]},"properties":{"name":"Faeroe Is.","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[158.31484375,6.813671875],[158.18339843750002,6.801269531250057],[158.13476562499997,6.944824218749986],[158.29462890625004,6.951074218750023],[158.31484375,6.813671875]]],[[[138.14267578125006,9.50068359375004],[138.06708984375004,9.419042968750006],[138.18583984375007,9.593310546874989],[138.14267578125006,9.50068359375004]]]]},"properties":{"name":"Micronesia","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[13.293554687500006,2.161572265624997],[13.172167968750017,1.78857421875],[13.21630859375,1.2484375],[13.851367187500017,1.41875],[14.180859375000011,1.370214843749991],[14.429882812500011,0.901464843749991],[14.32421875,0.62421875],[13.949609375000023,0.353808593749989],[13.860058593750011,-0.203320312500011],[14.47412109375,-0.573437500000011],[14.383984375000011,-1.890039062500009],[14.162890625000017,-2.217578125],[14.199804687500006,-2.354199218750011],[13.993847656250011,-2.490625],[13.886914062500011,-2.465429687500006],[13.733789062500023,-2.138476562500003],[13.464941406250006,-2.395410156250009],[12.991992187500017,-2.313378906250009],[12.793554687500006,-1.931835937500011],[12.590429687500006,-1.826855468750011],[12.43212890625,-1.928906250000011],[12.446386718750006,-2.329980468750009],[12.064453125,-2.41259765625],[11.60546875,-2.342578125],[11.537792968750011,-2.83671875],[11.760156250000023,-2.983105468750011],[11.715429687500006,-3.176953125000011],[11.934179687500006,-3.318554687500011],[11.8798828125,-3.665917968750009],[11.685742187500011,-3.68203125],[11.504296875000023,-3.5203125],[11.234472656250006,-3.690820312500009],[11.130175781250017,-3.916308593750003],[10.34765625,-3.013085937500009],[9.722070312500023,-2.467578125],[10.06201171875,-2.549902343750006],[9.624609375,-2.367089843750009],[9.298925781250006,-1.903027343750011],[9.483203125000017,-1.894628906250006],[9.265625,-1.825097656250009],[9.036328125000011,-1.308886718750003],[9.31884765625,-1.632031250000011],[9.501074218750006,-1.55517578125],[9.295800781250023,-1.515234375],[9.3466796875,-1.325],[9.203808593750011,-1.382421875],[9.064648437500011,-1.29833984375],[8.703125,-0.591015625000011],[8.946386718750006,-0.688769531250003],[9.296679687500017,-0.351269531250011],[9.354882812500023,0.343603515624991],[9.468164062500023,0.15976562499999],[9.796777343750023,0.044238281249989],[10.00146484375,0.194970703124994],[9.546484375,0.295947265624989],[9.324804687500006,0.552099609374991],[9.495312500000011,0.664843749999989],[9.617968750000017,0.576513671874991],[9.5908203125,1.031982421875],[9.636132812500023,1.046679687499989],[9.676464843750011,1.07470703125],[9.70458984375,1.079980468749994],[9.760546875000017,1.07470703125],[9.788671875,1.025683593749989],[9.803906250000011,0.998730468749997],[9.90673828125,0.960107421874994],[11.335351562500023,0.999707031249997],[11.332324218750017,1.528369140624989],[11.328710937500006,2.167431640624997],[11.348437500000017,2.299707031249994],[11.558984375000023,2.302197265624997],[13.2203125,2.256445312499991],[13.293554687500006,2.161572265624997]]]},"properties":{"name":"Gabon","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-1.065576171874966,50.69023437500002],[-1.25146484375,50.58881835937498],[-1.563427734374955,50.666113281250006],[-1.31279296874996,50.77348632812502],[-1.065576171874966,50.69023437500002]]],[[[-4.196777343749972,53.321435546874966],[-4.04936523437496,53.30576171874998],[-4.373046875,53.13417968750002],[-4.56787109375,53.386474609375],[-4.315087890625023,53.41723632812503],[-4.196777343749972,53.321435546874966]]],[[[-6.218017578125,54.08872070312506],[-6.649804687499937,54.05864257812496],[-7.007714843749937,54.40668945312501],[-7.324511718750017,54.13344726562502],[-7.606542968750006,54.14384765625002],[-8.118261718749977,54.41425781250004],[-7.75439453125,54.59492187499998],[-7.910595703124955,54.698339843750006],[-7.55039062499992,54.767968749999966],[-7.218652343749937,55.09199218749998],[-6.475048828124955,55.24101562499999],[-6.035791015624994,55.14453125000003],[-5.71684570312496,54.817480468750034],[-5.878613281249955,54.64130859375001],[-5.582519531249943,54.66342773437498],[-5.470410156249926,54.500195312499955],[-5.671093749999955,54.54975585937501],[-5.60678710937492,54.272558593750034],[-6.019042968749972,54.05126953124997],[-6.218017578125,54.08872070312506]]],[[[-5.105419921875011,55.448828125000034],[-5.331494140624955,55.481054687500034],[-5.318115234375,55.709179687499955],[-5.105419921875011,55.448828125000034]]],[[[-6.128906249999972,55.93056640625002],[-6.055322265624994,55.69531249999997],[-6.305078124999966,55.60693359375],[-6.286425781249989,55.77250976562499],[-6.491357421874994,55.697314453125045],[-6.462841796874955,55.808251953124994],[-6.128906249999972,55.93056640625002]]],[[[-5.970068359374949,55.814550781250034],[-6.071972656250011,55.893115234375045],[-5.72514648437496,56.118554687499966],[-5.970068359374949,55.814550781250034]]],[[[-5.77788085937496,56.344335937500034],[-6.313427734374983,56.29365234375001],[-6.138867187499955,56.490625],[-6.286328124999983,56.61186523437502],[-6.102734374999955,56.645654296874966],[-5.760839843749949,56.49067382812501],[-5.77788085937496,56.344335937500034]]],[[[-7.249853515624977,57.115332031250006],[-7.410546874999937,57.38110351562506],[-7.26713867187496,57.37177734375001],[-7.249853515624977,57.115332031250006]]],[[[-6.144726562499983,57.50498046874998],[-6.135546874999989,57.31425781250002],[-5.672460937499977,57.252685546875],[-5.94907226562492,57.045166015625],[-6.034375,57.20122070312499],[-6.322705078124926,57.20249023437498],[-6.761132812499994,57.4423828125],[-6.305957031249989,57.67197265624998],[-6.144726562499983,57.50498046874998]]],[[[-7.205566406250028,57.682958984375006],[-7.182617187499972,57.53330078125006],[-7.514746093749949,57.60195312500002],[-7.205566406250028,57.682958984375006]]],[[[-6.198681640624983,58.36328125000003],[-6.554589843749994,58.092871093750006],[-6.425195312499937,58.02128906249999],[-6.983105468749983,57.75],[-7.083447265624926,57.81376953124999],[-6.856835937499937,57.92353515624998],[-7.085253906249932,58.18217773437499],[-6.726464843749937,58.189404296874955],[-6.776464843750006,58.30151367187497],[-6.237451171874966,58.50283203125005],[-6.198681640624983,58.36328125000003]]],[[[-3.109667968749932,58.515478515625034],[-3.212353515624983,58.32124023437501],[-3.99003906249996,57.95903320312502],[-4.035595703124926,57.85200195312498],[-3.857128906249983,57.81855468750001],[-4.134521484375,57.57773437500006],[-3.402783203124955,57.708251953125],[-2.074072265624977,57.70239257812506],[-1.780664062499994,57.474023437499966],[-2.592675781249937,56.56157226562499],[-3.309960937499966,56.36347656250004],[-2.885156249999937,56.397509765625045],[-2.674267578124955,56.25341796875],[-3.362255859374955,56.02763671875002],[-3.789062499999972,56.09521484375],[-3.048730468749937,55.951953125000045],[-2.599316406249955,56.02729492187501],[-2.14707031249992,55.90297851562502],[-1.655371093749949,55.57036132812502],[-1.232421874999943,54.703710937500034],[-0.084375,54.118066406249994],[-0.20556640625,54.021728515625],[0.115332031250006,53.609277343749994],[-0.270019531249972,53.73676757812504],[-0.659912109375,53.72402343750002],[-0.293701171875,53.69233398437504],[0.270996093750028,53.33549804687499],[0.355761718750045,53.15996093750002],[0.0458984375,52.90561523437498],[0.279785156250028,52.80869140625006],[0.55878906250004,52.96694335937505],[1.05556640625008,52.95898437500003],[1.656738281249972,52.753710937500045],[1.74658203125,52.46899414062503],[1.59140625,52.11977539062502],[1.232421875000057,51.97124023437496],[1.188476562500057,51.803369140624966],[0.752246093750017,51.729589843750034],[0.890917968750017,51.571435546874966],[0.42451171875004,51.465625],[1.414941406250023,51.36328125],[1.397558593750034,51.18203125000002],[0.960156250000011,50.92587890624998],[0.299707031249994,50.775976562500006],[-0.785253906249949,50.76542968749999],[-1.416455078124955,50.896875],[-1.334472656249943,50.82080078124997],[-1.516748046874937,50.747460937499966],[-2.031054687499932,50.72539062499999],[-2.035839843749926,50.603076171875045],[-2.999414062499937,50.71660156249999],[-3.40458984374996,50.63242187499998],[-3.679785156250006,50.239941406249955],[-4.194580078124972,50.39331054687503],[-4.727978515624926,50.29047851562504],[-5.11850585937492,50.038330078125],[-5.622119140624932,50.05068359375002],[-4.188183593749926,51.18852539062502],[-3.135986328124972,51.20502929687501],[-2.433056640624926,51.74072265625],[-3.293115234374994,51.390429687500045],[-3.890771484374994,51.591650390625006],[-4.234570312499955,51.56909179687503],[-4.091015624999926,51.65991210937506],[-4.38627929687496,51.74106445312506],[-4.902294921874926,51.626269531250045],[-5.168359374999937,51.74072265625],[-5.183349609374972,51.94965820312501],[-4.217724609374983,52.277441406250006],[-3.980322265624949,52.54174804687503],[-4.101464843750023,52.915478515624955],[-4.683056640624926,52.80615234374997],[-4.268554687499943,53.14453125],[-3.427734374999972,53.34067382812498],[-3.097558593749937,53.260302734375045],[-3.064746093749932,53.426855468750034],[-2.74951171875,53.310205078124994],[-3.064599609374994,53.512841796874966],[-2.84648437499996,54.135302734375045],[-3.165966796874955,54.12792968750006],[-3.56938476562496,54.46757812499996],[-3.464599609374943,54.77309570312505],[-3.036230468749977,54.95307617187501],[-3.550439453124937,54.94741210937502],[-3.957910156249994,54.780957031249955],[-4.818066406249983,54.84614257812501],[-4.911230468749949,54.68945312500006],[-5.032324218749949,54.76137695312505],[-5.172705078124949,54.98588867187496],[-4.676757812499972,55.50131835937498],[-4.871679687499977,55.87392578125005],[-4.58408203124992,55.93867187500001],[-4.844091796874949,56.05117187499999],[-4.80029296875,56.158349609374994],[-5.228222656249983,55.886328125],[-5.084326171874977,56.197460937499955],[-5.41044921874996,55.995361328125],[-5.55644531249996,55.389599609374955],[-5.730664062499926,55.33413085937502],[-5.504492187499949,55.80239257812502],[-5.609570312499955,56.055273437500034],[-5.188378906249937,56.75805664062503],[-5.652441406249977,56.531982421875],[-6.133691406249966,56.706689453124966],[-5.730615234374994,56.853076171875045],[-5.86142578124992,56.902685546875006],[-5.561914062499994,57.23271484375002],[-5.794921874999972,57.37880859375002],[-5.581787109374972,57.546777343749966],[-5.744921874999989,57.668310546875034],[-5.608349609374955,57.88134765625],[-5.157226562499972,57.88134765625],[-5.413183593750006,58.06972656250002],[-5.338281250000023,58.23872070312498],[-5.008300781250028,58.262646484374955],[-5.016748046874966,58.566552734374966],[-4.433251953124937,58.51284179687505],[-3.25913085937492,58.65],[-3.053076171874949,58.63481445312502],[-3.109667968749932,58.515478515625034]]],[[[-3.057421874999932,59.02963867187498],[-2.793017578124989,58.906933593749955],[-3.331640624999949,58.97124023437499],[-3.31035156249996,59.13081054687498],[-3.057421874999932,59.02963867187498]]],[[[-1.30810546875,60.5375],[-1.052441406249955,60.44448242187502],[-1.299462890624994,59.87866210937503],[-1.290917968749937,60.153466796874966],[-1.663769531249983,60.282519531250074],[-1.374609374999949,60.33291015625002],[-1.571777343749972,60.494433593750074],[-1.363964843750011,60.60957031249998],[-1.30810546875,60.5375]]]]},"properties":{"name":"United Kingdom","childNum":14,"cp":[-2.5830348,54.4598409]}},{"geometry":{"type":"Polygon","coordinates":[[[46.30546875000002,41.507714843749994],[46.61894531250002,41.34375],[46.67255859375001,41.28681640625],[46.66240234375002,41.245507812499994],[46.62636718750002,41.15966796875],[46.534375,41.08857421875],[46.43095703125002,41.077050781249994],[46.086523437500006,41.183837890625],[45.28095703125001,41.449560546875],[45.21718750000002,41.423193359375],[45.00136718750002,41.290966796875],[44.97587890625002,41.277490234374994],[44.81132812500002,41.259375],[44.077246093750006,41.182519531249994],[43.43339843750002,41.155517578125],[43.20546875000002,41.199169921875],[43.15283203125,41.23642578125],[43.14101562500002,41.26484375],[43.17128906250002,41.287939453125],[43.149023437500006,41.30712890625],[43.05712890625,41.352832031249996],[42.90673828125,41.466845703124996],[42.82167968750002,41.4923828125],[42.78789062500002,41.563720703125],[42.75410156250001,41.57890625],[42.68242187500002,41.585742187499996],[42.60683593750002,41.57880859375],[42.590429687500006,41.57070312499999],[42.5673828125,41.55927734375],[42.46640625,41.43984375],[41.92578125,41.495654296874996],[41.82353515625002,41.432373046875],[41.779394531250006,41.44052734375],[41.701757812500006,41.471582031249994],[41.57656250000002,41.497314453125],[41.51005859375002,41.517480468749994],[41.701757812500006,41.705419921875],[41.76298828125002,41.970019531249996],[41.48876953125,42.659326171874994],[40.83662109375001,43.0634765625],[40.46210937500001,43.145703125],[39.97832031250002,43.419824218749994],[40.02373046875002,43.48486328125],[40.084570312500006,43.553125],[40.648046875,43.53388671875],[40.941992187500006,43.41806640625],[41.083105468750006,43.374462890625],[41.35820312500002,43.333398437499994],[41.46074218750002,43.276318359375],[41.58056640625,43.21923828125],[42.76064453125002,43.169580078124994],[42.99160156250002,43.09150390625],[43.00019531250001,43.049658203125],[43.08916015625002,42.9890625],[43.55781250000001,42.844482421875],[43.623046875,42.80771484375],[43.78261718750002,42.747021484375],[43.79873046875002,42.727783203125],[43.79541015625,42.702978515625],[43.74990234375002,42.657519531249996],[43.738378906250006,42.616992187499996],[43.759863281250006,42.59384765625],[43.82597656250002,42.571533203125],[43.95742187500002,42.566552734374994],[44.00468750000002,42.595605468749994],[44.10273437500001,42.616357421874994],[44.32949218750002,42.70351562499999],[44.505859375,42.7486328125],[44.77109375,42.616796875],[44.85048828125002,42.746826171875],[44.87099609375002,42.756396484374996],[44.943359375,42.730273437499996],[45.07158203125002,42.694140625],[45.160253906250006,42.675],[45.34375,42.52978515625],[45.56289062500002,42.5357421875],[45.70527343750001,42.498095703124996],[45.7275390625,42.475048828125],[45.63427734375,42.234716796875],[45.63857421875002,42.205078125],[46.21269531250002,41.989892578124994],[46.42988281250001,41.890966796875],[46.18427734375001,41.7021484375],[46.30546875000002,41.507714843749994]]]},"properties":{"name":"Georgia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-0.068603515625,11.115625],[0.009423828125023,11.02099609375],[-0.08632812499999,10.673046875],[0.380859375,10.291845703124991],[0.264550781250023,9.644726562499997],[0.342578125000017,9.604150390624994],[0.2333984375,9.463525390624994],[0.525683593750017,9.398486328124989],[0.48876953125,8.851464843749994],[0.37255859375,8.75927734375],[0.686328125000017,8.354882812499994],[0.5,7.546875],[0.634765625,7.353662109374994],[0.525585937500011,6.850927734374991],[0.736914062500006,6.452587890624997],[1.187207031250011,6.089404296874989],[0.94970703125,5.810253906249997],[0.259667968750023,5.75732421875],[-2.001855468749994,4.762451171875],[-3.114013671875,5.088671874999989],[-2.815673828125,5.153027343749997],[-2.754980468749977,5.432519531249994],[-2.793652343749983,5.60009765625],[-2.998291015625,5.71132812499999],[-3.227148437499977,6.749121093749991],[-2.959082031249977,7.454541015624997],[-2.789746093749983,7.931933593749989],[-2.668847656249994,8.022216796875],[-2.613378906249977,8.046679687499989],[-2.600976562499994,8.082226562499997],[-2.619970703124977,8.12109375],[-2.61171875,8.147558593749991],[-2.538281249999983,8.171630859375],[-2.505859375,8.208740234375],[-2.600390624999989,8.800439453124994],[-2.649218749999989,8.956591796874989],[-2.689892578124983,9.025097656249997],[-2.746923828124977,9.045117187499997],[-2.705761718749983,9.351367187499989],[-2.695849609374989,9.481347656249994],[-2.706201171874994,9.533935546875],[-2.765966796874977,9.658056640624991],[-2.780517578125,9.745849609375],[-2.791162109374994,10.432421874999989],[-2.914892578124977,10.592333984374989],[-2.829931640624977,10.998388671874991],[-1.04248046875,11.010058593749989],[-0.627148437499983,10.927392578124994],[-0.299462890624994,11.166894531249994],[-0.068603515625,11.115625]]]},"properties":{"name":"Ghana","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-11.389404296875,12.404394531249991],[-11.502197265625,12.198632812499994],[-11.30517578125,12.015429687499989],[-10.933203124999977,12.205175781249991],[-10.709228515625,11.898730468749989],[-10.274853515624983,12.212646484375],[-9.754003906249977,12.029931640624994],[-9.358105468749983,12.255419921874989],[-9.395361328124977,12.464648437499989],[-9.043066406249977,12.40234375],[-8.818310546874983,11.922509765624994],[-8.822021484375,11.673242187499994],[-8.398535156249977,11.366552734374991],[-8.666699218749983,11.009472656249997],[-8.33740234375,10.990625],[-8.266650390624989,10.485986328124994],[-8.007275390624983,10.321875],[-7.990625,10.1625],[-8.155175781249994,9.973193359374989],[-8.136962890625,9.49570312499999],[-7.896191406249983,9.415869140624991],[-7.918066406249977,9.188525390624989],[-7.839404296874989,9.151611328125],[-7.7998046875,9.115039062499989],[-7.777978515624994,9.080859374999989],[-7.902099609375,9.01708984375],[-7.938183593749983,8.979785156249989],[-7.950976562499989,8.786816406249997],[-7.719580078124977,8.643017578124997],[-7.696093749999989,8.375585937499991],[-7.823583984374977,8.467675781249994],[-7.953125,8.477734375],[-8.236962890624994,8.455664062499991],[-8.244140625,8.407910156249997],[-8.256103515625,8.253710937499989],[-8.217138671874977,8.219677734374997],[-8.140625,8.181445312499989],[-8.048583984375,8.169726562499989],[-8.009863281249977,8.07851562499999],[-8.126855468749994,7.867724609374989],[-8.115429687499983,7.7607421875],[-8.205957031249994,7.59023437499999],[-8.231884765624983,7.556738281249991],[-8.429980468749989,7.601855468749989],[-8.486425781249977,7.558496093749994],[-8.659765624999977,7.688378906249994],[-8.8896484375,7.2626953125],[-9.11757812499999,7.215917968749991],[-9.463818359374983,7.415869140624991],[-9.369140625,7.703808593749997],[-9.518261718749983,8.34609375],[-9.781982421875,8.537695312499991],[-10.064355468749994,8.429882812499997],[-10.147412109374983,8.519726562499997],[-10.233056640624994,8.488818359374989],[-10.283203125,8.485156249999989],[-10.360058593749983,8.495507812499994],[-10.394433593749994,8.48095703125],[-10.496435546874977,8.362109374999989],[-10.557714843749977,8.315673828125],[-10.686962890624983,8.321679687499994],[-10.712109374999983,8.335253906249989],[-10.677343749999977,8.400585937499997],[-10.500537109374989,8.687548828124989],[-10.615966796875,9.059179687499991],[-10.726855468749989,9.081689453124994],[-10.747021484374983,9.095263671874989],[-10.749951171874983,9.122363281249989],[-10.687646484374994,9.261132812499994],[-10.682714843749977,9.289355468749989],[-10.758593749999989,9.385351562499991],[-11.047460937499977,9.786328125],[-11.180859374999983,9.925341796874989],[-11.205664062499977,9.977734375],[-11.273632812499983,9.996533203124997],[-11.911083984374983,9.993017578124991],[-12.142333984375,9.87539062499999],[-12.427978515625,9.898144531249997],[-12.557861328125,9.704980468749994],[-12.755859375,9.373583984374989],[-12.958789062499989,9.263330078124994],[-13.077294921874994,9.069628906249989],[-13.292675781249983,9.04921875],[-13.436279296875,9.4203125],[-13.691357421874983,9.535791015624994],[-13.689794921874977,9.927783203124989],[-13.820117187499989,9.88720703125],[-14.045019531249977,10.141259765624994],[-14.426904296874994,10.248339843749989],[-14.609570312499983,10.549853515624989],[-14.593505859375,10.766699218749991],[-14.677343749999977,10.68896484375],[-14.775927734374989,10.931640625],[-14.88671875,10.968066406249989],[-14.975,10.803417968749997],[-15.051220703124983,10.834570312499991],[-15.043017578124989,10.940136718749997],[-14.9990234375,10.9921875],[-14.944433593749977,11.072167968749994],[-14.779296875,11.405517578125],[-14.720263671874989,11.48193359375],[-14.682958984374977,11.508496093749997],[-14.604785156249989,11.511621093749994],[-14.452441406249989,11.556201171874989],[-14.327832031249983,11.629785156249994],[-14.265576171874983,11.659912109375],[-14.122314453125,11.65195312499999],[-13.953222656249977,11.664599609374989],[-13.732763671874977,11.736035156249997],[-13.730664062499983,11.959863281249994],[-13.737988281249983,12.009667968749994],[-13.816308593749994,12.054492187499989],[-13.948876953124994,12.178173828124997],[-13.8875,12.246875],[-13.759765625,12.262353515624994],[-13.673535156249983,12.478515625],[-13.732617187499983,12.592822265624989],[-13.729248046875,12.673925781249991],[-13.082910156249994,12.633544921875],[-13.061279296875,12.489990234375],[-12.930712890624989,12.532275390624989],[-12.399072265624994,12.340087890625],[-11.389404296875,12.404394531249991]]]},"properties":{"name":"Guinea","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-16.763330078124994,13.064160156249997],[-16.824804687499977,13.341064453125],[-16.669335937499994,13.475],[-16.41337890624999,13.269726562499997],[-15.427490234375,13.46835937499999],[-16.135449218749983,13.4482421875],[-16.351806640625,13.34335937499999],[-16.56230468749999,13.587304687499994],[-15.509667968749994,13.586230468750003],[-15.426855468749977,13.727001953124997],[-15.108349609374983,13.81210937499999],[-14.405468749999983,13.503710937500003],[-13.977392578124977,13.54345703125],[-13.826708984374989,13.4078125],[-14.246777343749983,13.23583984375],[-15.151123046875,13.556494140624991],[-15.286230468749977,13.39599609375],[-15.814404296874983,13.325146484374997],[-15.834277343749989,13.156445312499997],[-16.648779296874977,13.154150390624991],[-16.763330078124994,13.064160156249997]]]},"properties":{"name":"Gambia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-15.895898437499966,11.082470703124969],[-15.963964843749977,11.05898437499998],[-15.937695312499955,11.192773437499966],[-15.895898437499966,11.082470703124969]]],[[[-16.11450195312503,11.059423828124977],[-16.236425781249977,11.113427734374966],[-16.06733398437501,11.197216796874983],[-16.11450195312503,11.059423828124977]]],[[[-15.901806640624926,11.4658203125],[-16.02319335937497,11.477148437499991],[-15.964550781249926,11.59829101562498],[-15.901806640624926,11.4658203125]]],[[[-15.986425781249949,11.882031249999969],[-16.038330078124943,11.759716796875011],[-16.15244140624992,11.876806640624963],[-15.986425781249949,11.882031249999969]]],[[[-13.759765625,12.262353515624994],[-13.8875,12.246875],[-13.948876953124966,12.178173828124997],[-13.737988281250011,12.009667968750037],[-13.730664062499926,11.959863281250009],[-13.73276367187492,11.736035156249983],[-13.953222656249977,11.664599609374989],[-14.265576171874926,11.659912109375014],[-14.327832031250011,11.629785156250009],[-14.452441406249989,11.556201171875017],[-14.604785156249932,11.511621093749994],[-14.682958984374949,11.508496093749983],[-14.720263671875017,11.481933593749986],[-14.779296874999972,11.405517578125057],[-14.944433593749949,11.072167968749994],[-14.999023437499972,10.992187500000043],[-15.04301757812496,10.940136718750011],[-15.09375,11.011035156249974],[-15.054589843749994,11.141943359375006],[-15.222119140624926,11.030908203125037],[-15.216699218749994,11.15625],[-15.39311523437496,11.217236328124983],[-15.354687499999955,11.396337890624963],[-15.479492187499972,11.410302734374966],[-15.072656249999937,11.597802734374966],[-15.230371093750023,11.686767578124972],[-15.412988281249994,11.615234374999972],[-15.501904296875011,11.723779296874966],[-15.467187499999937,11.842822265624974],[-15.078271484374937,11.968994140625014],[-15.941748046875006,11.786621093749986],[-15.92021484374996,11.93779296874996],[-16.138427734375,11.917285156250045],[-16.32807617187501,12.051611328124963],[-16.244580078124955,12.237109375],[-16.43681640624996,12.204150390625045],[-16.711816406249937,12.354833984375006],[-16.656933593749955,12.364355468749991],[-16.52133789062495,12.348632812499986],[-16.41630859374996,12.367675781250057],[-16.24150390624996,12.443310546875011],[-16.144189453124937,12.457421875000037],[-15.839550781249955,12.437890624999966],[-15.57480468749992,12.490380859375009],[-15.19609375,12.679931640624986],[-14.3492187499999,12.67641601562498],[-14.064843749999966,12.675292968750014],[-13.729248046875,12.673925781250006],[-13.732617187499983,12.592822265625003],[-13.673535156249926,12.478515624999986],[-13.759765625,12.262353515624994]]]]},"properties":{"name":"Guinea-Bissau","childNum":5}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[11.332324218750017,1.528369140624989],[11.335351562500023,0.999707031250011],[9.906738281250028,0.960107421875037],[9.80390625000004,0.998730468749997],[9.788671875000034,1.025683593749974],[9.760546874999989,1.074707031250014],[9.704589843750057,1.079980468750023],[9.676464843750011,1.074707031250014],[9.636132812500051,1.046679687499989],[9.590820312500057,1.031982421875014],[9.599414062500045,1.054443359374972],[9.509863281250006,1.114794921875017],[9.385937500000068,1.13925781250002],[9.807031250000051,1.927490234375028],[9.77968750000008,2.068212890625006],[9.800781250000028,2.304443359375],[9.826171875000057,2.297802734374969],[9.8369140625,2.242382812500054],[9.870117187500028,2.21328125],[9.979882812499994,2.167773437500045],[10.790917968750023,2.167578125],[11.096582031250051,2.167480468749986],[11.328710937500006,2.167431640624969],[11.332324218750017,1.528369140624989]]],[[[8.735742187500023,3.758300781249972],[8.910058593750023,3.758203125000051],[8.946093750000074,3.627539062499977],[8.704003906250051,3.223632812500028],[8.474902343749989,3.264648437500043],[8.464648437500045,3.450585937499994],[8.735742187500023,3.758300781249972]]]]},"properties":{"name":"Eq. Guinea","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[23.852246093749983,35.53544921874999],[24.166015625000057,35.59521484375],[24.108984374999977,35.49580078124998],[24.35400390625,35.359472656250034],[25.73017578125004,35.34858398437501],[25.791308593750074,35.122851562500045],[26.32021484375008,35.315136718749955],[26.165625,35.018603515625045],[24.79980468750003,34.93447265625002],[24.70888671875008,35.08906250000001],[24.463671875000045,35.160351562499955],[23.59277343749997,35.257226562499966],[23.56982421875,35.534765625000034],[23.67265624999999,35.51391601562506],[23.736914062500034,35.65551757812503],[23.852246093749983,35.53544921874999]]],[[[27.17607421874999,35.46528320312498],[27.070703125000023,35.59775390624998],[27.22314453125,35.820458984374966],[27.17607421874999,35.46528320312498]]],[[[23.053808593750034,36.18979492187498],[22.91083984375004,36.220996093750045],[22.950488281250045,36.38393554687502],[23.053808593750034,36.18979492187498]]],[[[27.84277343750003,35.929296875000034],[27.71552734375004,35.95732421874996],[27.71630859375003,36.17158203125001],[28.23183593750005,36.43364257812502],[28.087792968750023,36.06533203125002],[27.84277343750003,35.929296875000034]]],[[[25.48242187500003,36.39262695312502],[25.37050781250005,36.35893554687499],[25.408984375000074,36.473730468750006],[25.48242187500003,36.39262695312502]]],[[[26.46064453125001,36.58540039062501],[26.270019531250057,36.54692382812499],[26.370019531250023,36.63857421875002],[26.46064453125001,36.58540039062501]]],[[[26.94960937500005,36.72709960937502],[27.214941406250006,36.89863281249998],[27.352148437499977,36.86889648437506],[26.94960937500005,36.72709960937502]]],[[[25.859375,36.79042968750005],[25.74316406250003,36.78974609374998],[26.06445312500003,36.90273437500002],[25.859375,36.79042968750005]]],[[[27.01972656250004,36.95903320312502],[26.91992187500003,36.94521484375005],[26.88867187499997,37.087255859375034],[27.01972656250004,36.95903320312502]]],[[[25.278906250000034,37.06840820312502],[25.105468750000057,37.034960937500045],[25.235058593750068,37.148535156250006],[25.278906250000034,37.06840820312502]]],[[[25.54589843749997,36.96757812499999],[25.45673828125001,36.9296875],[25.361914062500063,37.07041015624998],[25.52529296875005,37.19638671875006],[25.54589843749997,36.96757812499999]]],[[[24.523535156250063,37.125097656250006],[24.42480468750003,37.131982421874994],[24.48378906250005,37.21020507812503],[24.523535156250063,37.125097656250006]]],[[[25.402734375000023,37.419140624999955],[25.312695312500068,37.48930664062496],[25.462988281250063,37.47109375],[25.402734375000023,37.419140624999955]]],[[[26.029296875000057,37.529394531250034],[26.086328125000023,37.63491210937505],[26.351367187500017,37.67431640625],[26.029296875000057,37.529394531250034]]],[[[25.255859375000057,37.59960937500006],[25.156347656250034,37.54506835937505],[24.99648437500005,37.676904296874994],[25.255859375000057,37.59960937500006]]],[[[24.35595703125003,37.57685546875004],[24.28896484375005,37.52827148437498],[24.37910156250004,37.682714843750006],[24.35595703125003,37.57685546875004]]],[[[26.82441406250004,37.81142578125005],[27.05507812500005,37.70927734375002],[26.84492187500004,37.64472656250001],[26.58105468750003,37.723730468750034],[26.82441406250004,37.81142578125005]]],[[[20.888476562500074,37.805371093749955],[20.993945312500074,37.70800781250003],[20.81855468750004,37.66474609375001],[20.61953125000008,37.855029296875045],[20.691503906250006,37.929541015625034],[20.888476562500074,37.805371093749955]]],[[[24.991699218750057,37.75961914062506],[24.962207031250074,37.69238281250003],[24.7001953125,37.961669921875],[24.956347656250045,37.90478515625006],[24.991699218750057,37.75961914062506]]],[[[20.61230468750003,38.38334960937502],[20.761328125,38.07055664062497],[20.523535156250063,38.106640624999955],[20.4521484375,38.23417968750002],[20.35253906250003,38.179882812499955],[20.563183593750068,38.474951171875034],[20.61230468750003,38.38334960937502]]],[[[26.094042968750017,38.21806640625002],[25.891894531250045,38.243310546874994],[25.991406250000068,38.353515625],[25.846093750000023,38.57402343749996],[26.16035156250001,38.54072265625001],[26.094042968750017,38.21806640625002]]],[[[20.68671875000001,38.60869140625002],[20.5546875,38.58256835937502],[20.69414062499999,38.84423828125003],[20.68671875000001,38.60869140625002]]],[[[24.67470703125005,38.80922851562502],[24.54101562499997,38.788671875],[24.485644531250074,38.980273437500045],[24.67470703125005,38.80922851562502]]],[[[23.41542968750008,38.958642578124994],[23.525,38.8134765625],[24.127539062500034,38.648486328125045],[24.27578125000005,38.22001953124996],[24.58837890625003,38.12397460937504],[24.53652343750005,37.97973632812506],[24.212011718750006,38.11752929687506],[24.040136718750006,38.389990234375034],[23.65078125000008,38.44306640625001],[23.25214843750004,38.80122070312498],[22.870312500000068,38.870507812499966],[23.258203125000023,39.03134765625006],[23.41542968750008,38.958642578124994]]],[[[26.41015625000003,39.329443359375034],[26.59560546875005,39.04882812499997],[26.488671875000023,39.074804687500034],[26.46875,38.97280273437502],[26.10791015625,39.08105468749997],[26.273144531249983,39.19755859374999],[26.072363281250034,39.095605468749994],[25.84414062500008,39.20004882812506],[26.16542968750008,39.37353515625006],[26.41015625000003,39.329443359375034]]],[[[20.077929687500045,39.432714843750034],[19.883984375000068,39.461523437500034],[19.646484375,39.76708984375003],[19.926074218750017,39.773730468750045],[19.8466796875,39.66811523437502],[20.077929687500045,39.432714843750034]]],[[[25.43769531250004,39.98330078125002],[25.357031250000063,39.80810546875003],[25.24941406250005,39.89414062500006],[25.06220703125004,39.852392578125006],[25.05800781250005,39.999658203124966],[25.43769531250004,39.98330078125002]]],[[[24.774218750000074,40.615185546874955],[24.515527343750023,40.64702148437496],[24.623339843750045,40.79291992187501],[24.774218750000074,40.615185546874955]]],[[[26.03896484375008,40.726757812499955],[25.10449218750003,40.994726562500006],[24.792968750000057,40.857519531250034],[24.47705078125,40.94775390625003],[24.082324218750074,40.72407226562504],[23.762792968750063,40.74780273437497],[23.866796875000034,40.41855468750006],[24.21279296875008,40.32778320312502],[24.343359375000034,40.14770507812503],[23.913183593750063,40.35878906250005],[23.72792968750008,40.329736328124994],[23.96748046875001,40.11455078125002],[23.947070312500045,39.96557617187506],[23.66455078125003,40.22382812499998],[23.42626953125,40.26396484374999],[23.62734375,39.92407226562503],[22.896484375000057,40.39990234374997],[22.92226562500008,40.59086914062499],[22.629492187500034,40.49555664062501],[22.59218750000005,40.03691406250002],[23.327734374999977,39.174902343750006],[23.15468750000008,39.10146484375005],[23.16171875,39.25776367187501],[22.92138671874997,39.30634765625004],[22.886035156250074,39.16997070312496],[23.066699218750017,39.03793945312498],[22.569140625000074,38.86748046874999],[23.25292968750003,38.66123046875006],[23.68398437500008,38.35244140625002],[23.96699218750001,38.275],[24.024511718750006,38.139794921874966],[24.01972656250001,37.67773437499997],[23.50175781249999,38.03486328124998],[23.03632812500004,37.87836914062501],[23.48925781250003,37.440185546875],[23.16152343750005,37.333837890625006],[22.725390625000017,37.542138671874966],[23.16015625000003,36.448095703125034],[22.717187500000023,36.79394531250006],[22.42773437500003,36.47578124999998],[22.08046875000008,37.028955078124966],[21.95556640625003,36.990087890625034],[21.892382812500045,36.73730468749997],[21.58291015625005,37.080957031249994],[21.678906250000068,37.38720703125003],[21.124707031250068,37.89160156250003],[21.40371093750005,38.19667968750002],[21.658398437500068,38.17509765624996],[21.82470703125003,38.328125],[22.846386718750068,37.96757812499996],[23.18349609375008,38.133691406249966],[22.421679687500045,38.43852539062499],[22.319921875,38.35683593750005],[21.96533203124997,38.412451171875006],[21.47255859375005,38.321386718750006],[21.3310546875,38.48730468749997],[21.303320312500034,38.373925781249966],[21.113183593750023,38.38466796875002],[20.768554687500057,38.874414062499966],[21.111621093750045,38.89628906249999],[21.11835937500001,39.029980468749955],[20.71337890625,39.03515625000003],[20.300781250000057,39.32709960937501],[20.19140625,39.545800781249966],[20.099414062500074,39.641259765624966],[20.001269531250074,39.70942382812501],[20.022558593750063,39.710693359375],[20.059765624999983,39.69912109375002],[20.13105468750004,39.66162109375003],[20.206835937500017,39.65351562499998],[20.382421875,39.802636718749994],[20.381640625000017,39.84179687500006],[20.311328125000074,39.95078125000006],[20.311132812500034,39.97944335937504],[20.338476562500006,39.991064453125006],[20.38369140625008,40.0171875],[20.408007812500074,40.049462890624994],[20.4560546875,40.065576171874994],[20.657421875000068,40.11738281249998],[20.881640625000017,40.467919921874994],[21.030859375000034,40.62246093750002],[20.95576171875001,40.775292968749994],[20.96425781250005,40.84990234374999],[21.575781250000034,40.86894531249996],[21.627539062500006,40.896337890625034],[21.77949218750004,40.95043945312506],[21.99335937500001,41.13095703125006],[22.18447265625005,41.15864257812501],[22.49355468750005,41.118505859375006],[22.603613281249977,41.14018554687499],[22.724804687500068,41.17851562499999],[22.78388671875004,41.33198242187498],[23.155957031250068,41.32207031249999],[23.239843750000034,41.38496093750001],[23.372070312500057,41.3896484375],[23.433398437500017,41.39873046874999],[23.53583984375001,41.38603515624999],[23.63515625000008,41.386767578125045],[24.011328124999977,41.460058593750034],[24.03291015625004,41.469091796875034],[24.05605468750005,41.527246093749966],[24.38671875,41.523535156250006],[24.487890625,41.55522460937499],[24.518261718750068,41.55253906249996],[24.773730468750045,41.356103515624994],[24.99355468750008,41.36499023437503],[25.133398437500063,41.31577148437506],[25.251171875000068,41.243554687499994],[25.923339843750057,41.311914062499966],[26.066406250000057,41.35068359375006],[26.135351562499977,41.3857421875],[26.155175781250023,41.43486328124999],[26.143554687500057,41.52153320312496],[26.085546875000063,41.704150390625045],[26.10742187499997,41.72568359374998],[26.20058593750005,41.74379882812502],[26.320898437500034,41.716552734375],[26.581347656250074,41.60126953125004],[26.62490234375008,41.401757812499994],[26.330664062499977,41.23876953125],[26.331054687500057,40.954492187499994],[26.03896484375008,40.726757812499955]]]]},"properties":{"name":"Greece","childNum":29}},{"geometry":{"type":"Polygon","coordinates":[[[-61.71552734375,12.012646484374997],[-61.714990234374994,12.18515625],[-61.60703125,12.223291015624994],[-61.71552734375,12.012646484374997]]]},"properties":{"name":"Grenada","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-46.266699218750006,60.781396484374994],[-46.381542968749955,60.66030273437502],[-46.7880859375,60.758398437500034],[-46.205224609374994,60.943505859374994],[-46.266699218750006,60.781396484374994]]],[[[-37.03125,65.53198242187497],[-37.23842773437494,65.60986328125003],[-37.047509765624966,65.722265625],[-37.03125,65.53198242187497]]],[[[-51.01367187499994,69.55249023437497],[-51.202050781249966,69.525],[-51.33886718749994,69.73203125000006],[-51.094580078125006,69.92416992187503],[-50.67900390624999,69.84853515625],[-51.01367187499994,69.55249023437497]]],[[[-52.73115234375001,69.94472656250005],[-52.0453125,69.8072265625],[-51.90019531249999,69.60478515625007],[-53.57841796874996,69.25664062500002],[-54.18271484374995,69.40351562500001],[-53.65830078124998,69.46513671875005],[-53.825,69.54033203124999],[-54.91914062499998,69.71362304687503],[-54.78789062499996,69.94985351562502],[-54.322607421875034,69.94189453125],[-54.83076171875001,70.13295898437502],[-54.37163085937499,70.31728515625],[-53.296728515625034,70.20537109375002],[-52.73115234375001,69.94472656250005]]],[[[-51.67514648437498,70.855224609375],[-52.11938476562497,70.87065429687502],[-52.10673828124999,70.96801757812497],[-51.67514648437498,70.855224609375]]],[[[-25.43232421875001,70.92133789062495],[-25.402246093749994,70.65268554687503],[-26.217871093749977,70.45405273437498],[-26.604687499999926,70.55336914062497],[-28.03525390624995,70.48681640625],[-27.61723632812496,70.91376953125001],[-26.621777343749955,70.87563476562497],[-25.81889648437499,71.04365234375001],[-25.43232421875001,70.92133789062495]]],[[[-53.53520507812493,71.04082031250005],[-53.9578125,71.12773437499999],[-53.58447265625003,71.29707031249995],[-53.53520507812493,71.04082031250005]]],[[[-55.01689453124999,72.79111328125003],[-55.56660156249998,72.56435546875002],[-56.214794921874955,72.71918945312495],[-55.01689453124999,72.79111328125003]]],[[[-18.000537109374932,75.40732421875003],[-17.391992187499937,75.03691406250007],[-18.670800781249966,75.00166015624998],[-18.856054687499977,75.31914062500002],[-18.000537109374932,75.40732421875003]]],[[[-18.58261718749995,76.042333984375],[-19.085351562499966,76.43037109375001],[-18.882470703124937,76.70380859375001],[-18.58261718749995,76.042333984375]]],[[[-71.667333984375,77.32529296874998],[-72.48955078124999,77.43164062499997],[-71.43344726562495,77.394384765625],[-71.667333984375,77.32529296874998]]],[[[-17.6125,79.82587890624995],[-18.662011718749966,79.72001953125005],[-19.13828125,79.85234375000002],[-17.98291015625,80.05517578125003],[-17.471386718749955,80.02871093749997],[-17.6125,79.82587890624995]]],[[[-44.86455078124999,82.08364257812502],[-46.75190429687501,82.34819335937502],[-47.27226562499996,82.65693359375001],[-46.399169921875,82.692138671875],[-44.91748046875003,82.48051757812505],[-44.86455078124999,82.08364257812502]]],[[[-29.952880859375,83.56484374999997],[-25.795068359374994,83.26098632812497],[-31.99267578125,83.0853515625],[-32.03271484374997,82.98344726562502],[-25.12338867187495,83.15961914062501],[-24.47031249999995,82.87739257812498],[-21.582519531249943,82.6341796875],[-23.118066406249966,82.32470703125003],[-29.57939453124996,82.16118164062502],[-29.887402343749983,82.05483398437502],[-29.543847656249994,81.93994140624997],[-27.839501953124966,82.04887695312505],[-25.148828124999966,82.001123046875],[-24.293066406249977,81.70097656250005],[-23.103710937499983,82.01181640625003],[-21.337988281249977,82.068701171875],[-21.230517578125017,81.60136718749999],[-23.11772460937499,80.77817382812498],[-19.62993164062499,81.63989257812503],[-17.456054687499943,81.397705078125],[-16.12070312499995,81.776611328125],[-14.241992187500017,81.81386718750005],[-12.434423828125006,81.68251953125002],[-11.430664062499972,81.45683593750005],[-13.126220703124972,81.08779296875],[-14.452343749999955,80.99311523437498],[-14.503564453124994,80.76328125000006],[-16.76059570312492,80.573388671875],[-15.937255859374972,80.42763671874997],[-16.48876953124997,80.25195312499997],[-18.070947265624994,80.17207031249995],[-19.429199218749943,80.25771484375],[-20.150146484375,80.01123046874997],[-18.99199218749996,79.17836914062502],[-21.133740234374926,78.65864257812501],[-21.729589843749977,77.70854492187499],[-20.862597656249932,77.91186523437503],[-19.490429687499983,77.71889648437497],[-19.46752929687503,77.56582031250005],[-20.162060546874926,77.68984375],[-20.680810546875023,77.61899414062503],[-20.23193359374997,77.36840820312497],[-19.30029296874997,77.22236328124995],[-18.442626953124943,77.259375],[-18.51030273437496,76.77817382812498],[-20.48671875,76.92080078125],[-21.614697265624926,76.68789062499997],[-22.18525390625001,76.79409179687502],[-22.609326171874983,76.70429687500004],[-21.877343749999966,76.57348632812503],[-21.488232421874926,76.271875],[-20.10361328124992,76.21909179687503],[-19.508984374999926,75.75751953124995],[-19.52636718750003,75.18022460937505],[-20.484960937500006,75.31425781249999],[-21.649316406249966,75.02343749999997],[-22.232861328124926,75.11972656249998],[-21.69511718749999,74.96445312500003],[-20.985791015624983,75.07436523437497],[-20.86157226562497,74.63593750000001],[-20.41708984374995,74.9751953125],[-19.98491210937499,74.9751953125],[-19.287011718750023,74.54638671875006],[-19.36914062499997,74.28403320312498],[-20.256445312499977,74.2828125],[-20.653125,74.13735351562502],[-21.954931640624977,74.24428710937497],[-21.942919921874932,74.56572265624999],[-22.32158203124999,74.30253906250002],[-22.134814453124932,73.99047851562503],[-20.36728515624992,73.8482421875],[-20.509667968749966,73.49287109375001],[-22.346875,73.26923828125001],[-23.23320312499999,73.39770507812497],[-24.157714843749943,73.76445312499999],[-24.67724609375,73.602197265625],[-25.521289062500017,73.85161132812499],[-24.79125976562497,73.51127929687502],[-26.062304687500017,73.25302734375],[-27.270410156250023,73.43627929687503],[-26.541845703125006,73.24897460937495],[-27.561621093750006,73.13847656250002],[-27.348046875000023,73.06782226562501],[-25.057031250000023,73.396484375],[-24.132666015625006,73.409375],[-22.036328124999955,72.91845703125006],[-22.29321289062497,72.11953125],[-24.06904296875001,72.49873046874998],[-24.629980468749977,73.03764648437499],[-26.657617187499966,72.71582031249997],[-24.81333007812492,72.90151367187497],[-24.65,72.58251953125],[-25.117871093749983,72.34697265625005],[-24.66684570312492,72.437353515625],[-21.959667968749955,71.74467773437502],[-22.479638671874937,71.38344726562497],[-22.417578125,71.24868164062505],[-22.29902343750001,71.43232421874998],[-21.75224609374999,71.47832031250002],[-21.522656249999926,70.52622070312503],[-22.38413085937492,70.46240234375],[-22.437011718749943,70.860009765625],[-22.690673828124943,70.43730468750002],[-23.327832031249983,70.45097656250007],[-23.97138671875001,70.64946289062499],[-24.562207031249926,71.22353515624997],[-25.885156249999966,71.571923828125],[-27.08720703124999,71.6265625],[-27.107031250000034,71.53266601562498],[-25.842724609374955,71.48017578124995],[-25.74223632812499,71.18359375],[-26.717919921874994,70.95048828125005],[-28.39843749999997,70.99291992187497],[-27.99218749999997,70.89521484374998],[-28.06987304687499,70.69902343750005],[-29.07207031249999,70.444970703125],[-26.621777343749955,70.46337890625],[-26.576806640625023,70.35708007812502],[-27.560839843749932,70.12446289062498],[-27.384179687500023,69.9916015625],[-27.027734374999966,70.20122070312499],[-25.529882812499977,70.35317382812502],[-23.66733398437495,70.139306640625],[-22.28447265624996,70.12583007812498],[-22.287060546874955,70.03339843749998],[-23.03364257812501,69.90083007812498],[-23.04956054687497,69.79272460937497],[-23.86572265624997,69.73671875000002],[-23.739404296874994,69.58862304687497],[-24.296679687500017,69.58554687500006],[-24.295556640624966,69.439306640625],[-25.188574218750006,69.26054687500002],[-25.092431640624937,69.16518554687502],[-25.697998046874943,68.889892578125],[-26.48291015624997,68.67592773437502],[-29.24951171874997,68.29877929687501],[-29.86850585937495,68.31157226562505],[-30.318115234375,68.19331054687501],[-30.72001953124999,68.25117187499998],[-30.610742187499994,68.11791992187503],[-30.97856445312499,68.06132812500005],[-32.32744140624999,68.43730468749999],[-32.16455078125,67.99111328125002],[-33.15698242187497,67.62670898437506],[-34.1982421875,66.65507812499999],[-35.18857421874995,66.25029296875002],[-35.86723632812502,66.44140624999997],[-35.630078124999926,66.13994140625002],[-36.37919921874996,65.830810546875],[-36.52724609375002,66.00771484375],[-36.665185546874966,65.79008789062507],[-37.06279296874996,65.87143554687503],[-37.410058593749994,65.65634765625],[-37.954785156249955,65.63359375000007],[-37.278710937499994,66.30439453124995],[-38.156640624999966,66.38559570312498],[-37.75234375000002,66.26152343750002],[-38.13994140625002,65.90351562499998],[-38.52036132812498,66.00966796875002],[-38.20336914062497,65.71171874999999],[-40.17353515624998,65.55615234375],[-39.57792968749996,65.34077148437501],[-39.937255859375,65.14160156250003],[-40.253125,65.04887695312505],[-41.08442382812501,65.10083007812497],[-40.966015624999955,64.86884765624995],[-40.655468749999926,64.91533203125002],[-40.18222656249998,64.47993164062495],[-40.78173828125,64.22177734375003],[-41.581005859374926,64.29833984375],[-41.03056640624996,64.12104492187504],[-40.61777343749998,64.13173828125],[-40.550390625000034,63.72524414062505],[-40.77519531249999,63.53364257812501],[-41.04873046875002,63.51381835937505],[-41.387890624999926,63.06186523437498],[-41.84448242187497,63.07026367187501],[-42.174511718749955,63.20878906249999],[-41.63447265624998,62.972460937500074],[-41.90898437499996,62.73710937499999],[-42.94165039062503,62.72021484375003],[-42.15297851562502,62.568457031250006],[-42.32148437499998,62.15273437500005],[-42.110205078125006,61.857226562500074],[-42.58530273437498,61.71748046875001],[-42.34736328125001,61.61743164062497],[-42.717041015625,60.767480468749994],[-43.04409179687502,60.523681640625],[-43.92270507812495,60.59536132812502],[-43.21298828124998,60.390673828125074],[-43.122900390625006,60.06123046875001],[-43.32011718749993,59.928125],[-43.95502929687498,60.025488281250006],[-43.65791015625001,59.85864257812503],[-43.90654296874996,59.815478515625045],[-44.11699218750002,59.83193359375002],[-44.06547851562499,59.92480468750003],[-44.412939453125006,59.922607421875],[-44.22436523437494,60.273535156250006],[-44.61328124999997,60.01665039062499],[-45.37924804687495,60.20292968750002],[-45.367773437500006,60.37294921875002],[-44.97470703124995,60.457226562499955],[-44.756738281249966,60.66459960937502],[-45.38051757812494,60.444921875],[-46.04663085937503,60.61572265625],[-46.141943359375006,60.776513671874994],[-45.87021484374998,61.21831054687502],[-46.87446289062501,60.81640625000003],[-48.180810546874966,60.76923828125001],[-47.77031249999999,60.99775390625001],[-48.386425781249926,61.004736328125034],[-48.42817382812501,61.18740234375002],[-48.92207031249998,61.27744140624998],[-49.28906249999997,61.58994140625006],[-49.380273437499994,61.89018554687502],[-48.82871093749998,62.0796875],[-49.62377929687494,61.99858398437499],[-49.553466796875,62.23271484374999],[-50.319238281249966,62.473193359375045],[-50.298730468749966,62.72197265625002],[-49.793115234374994,63.04462890625004],[-50.39008789062501,62.82202148437497],[-51.46884765624995,63.64228515625001],[-51.547509765624994,64.00610351562497],[-50.260693359374955,64.21425781250002],[-50.48662109374996,64.20888671875],[-50.43706054687499,64.31284179687503],[-51.58491210937498,64.10317382812502],[-51.70786132812498,64.205078125],[-51.403759765624926,64.46318359375002],[-50.49208984375002,64.69316406250005],[-50.00898437500001,64.44726562499997],[-50.12163085937493,64.703759765625],[-50.51699218750002,64.76650390625],[-50.96064453124998,65.20112304687498],[-50.721582031249966,64.79760742187503],[-51.22060546875002,64.62846679687502],[-51.25537109375,64.75810546875005],[-51.92260742187503,64.21875],[-52.259033203125,65.154931640625],[-52.537695312500034,65.32880859374998],[-51.61914062500003,65.71318359375002],[-51.091894531250006,65.77578125],[-51.7234375,65.723486328125],[-52.55126953125003,65.46137695312498],[-52.760937499999926,65.59082031249997],[-53.198974609375,65.59404296875002],[-53.106347656249966,65.97714843749998],[-53.39204101562498,66.04833984375],[-51.225,66.88154296875001],[-53.035791015624966,66.20141601562503],[-53.538769531249955,66.13935546874998],[-53.41875,66.64853515624998],[-53.038281249999955,66.82680664062497],[-52.38686523437502,66.88115234375005],[-53.44360351562503,66.924658203125],[-53.88442382812502,67.13554687499999],[-53.79858398437494,67.41816406250001],[-52.666455078124955,67.74970703124995],[-50.613476562499955,67.5279296875],[-51.171044921874966,67.693603515625],[-50.96884765624998,67.80664062500003],[-51.765234375000034,67.73784179687505],[-52.34482421874998,67.83691406249997],[-53.735205078125006,67.54902343750004],[-53.151562499999926,68.20776367187503],[-51.779980468749926,68.05673828124998],[-51.456494140624926,68.116064453125],[-51.21015625000001,68.419921875],[-52.19853515624993,68.22080078125],[-53.38315429687495,68.29736328124997],[-53.03945312500002,68.61088867187499],[-52.60458984374998,68.70874023437503],[-51.62314453124995,68.53481445312505],[-50.945703124999966,68.68266601562505],[-50.807714843750006,68.81699218749998],[-51.24941406250002,68.73994140625001],[-51.084863281249994,69.12827148437498],[-50.29736328124994,69.17060546874998],[-51.07695312499996,69.20947265625],[-50.291699218749955,70.01445312500005],[-52.254638671875,70.05893554687503],[-53.02304687499995,70.30190429687497],[-54.01445312499996,70.42167968750005],[-54.53076171875,70.69926757812502],[-54.16582031249999,70.82011718750005],[-52.801953124999955,70.7505859375],[-50.87236328124993,70.36489257812502],[-50.66328124999998,70.417578125],[-51.32285156249998,70.58876953124997],[-51.25659179687497,70.85268554687502],[-51.77431640625002,71.01044921875001],[-51.018945312499966,71.001318359375],[-51.37666015625001,71.11904296875],[-53.007568359375,71.17998046874999],[-52.89184570312497,71.457666015625],[-51.76992187500002,71.67172851562498],[-53.44008789062502,71.57900390625002],[-53.14453125000003,71.80742187500002],[-53.65214843749996,72.36264648437506],[-53.92773437499997,72.31879882812501],[-53.47758789062502,71.84995117187506],[-54.01992187500002,71.657861328125],[-53.96298828124995,71.45898437499997],[-54.6890625,71.36723632812505],[-55.59404296874999,71.55351562500005],[-55.315576171874994,72.11069335937498],[-54.84013671874996,72.35610351562497],[-55.581445312499994,72.178857421875],[-55.63583984374998,72.300439453125],[-55.29570312499996,72.35439453124997],[-55.60170898437494,72.453466796875],[-54.924951171874994,72.57197265624998],[-54.737939453124994,72.87250976562501],[-55.07309570312498,73.01513671875003],[-55.28891601562498,72.93320312500003],[-55.66855468749998,73.00791015624998],[-55.288281249999955,73.32709960937498],[-56.10405273437496,73.55815429687499],[-55.83828125,73.75971679687501],[-56.22539062499999,74.12910156249995],[-57.23056640624995,74.12529296875007],[-56.70634765625002,74.21918945312501],[-56.717675781249994,74.42924804687499],[-56.25546874999998,74.52680664062498],[-58.56552734374998,75.35273437500001],[-58.249658203124994,75.50668945312503],[-58.51621093749995,75.68906250000006],[-61.18823242187494,76.157861328125],[-63.29130859374996,76.35205078125003],[-63.84306640624999,76.21713867187498],[-64.307275390625,76.31650390624998],[-65.36992187499993,76.13056640625004],[-65.87573242187494,76.23833007812505],[-66.46577148437498,76.13916015625],[-66.99257812500002,76.21293945312502],[-66.67480468750003,75.977392578125],[-68.14873046875002,76.06704101562497],[-69.48408203125001,76.39916992187503],[-68.1142578125,76.65063476562503],[-69.67382812499994,76.73588867187507],[-69.69423828125002,76.98945312500004],[-70.613134765625,76.82182617187499],[-71.14145507812498,77.02866210937503],[-70.86284179687496,77.175439453125],[-68.97832031250002,77.19531250000006],[-68.13554687499999,77.37958984375001],[-66.38945312499999,77.28027343750003],[-66.69121093749999,77.68120117187502],[-67.68808593749995,77.523779296875],[-68.62153320312498,77.60185546875002],[-69.35136718749999,77.467138671875],[-70.53540039062497,77.699560546875],[-70.11445312500001,77.84135742187505],[-71.27163085937494,77.81313476562497],[-72.81806640624995,78.1943359375],[-72.47250976562498,78.48203125],[-71.65131835937493,78.62314453124998],[-68.99345703124999,78.857421875],[-68.37705078124998,79.037841796875],[-65.82553710937503,79.17373046874997],[-64.79228515624993,80.00063476562502],[-64.17915039062498,80.09926757812497],[-66.84365234374997,80.07622070312507],[-67.05063476562503,80.384521484375],[-64.51552734374997,81],[-63.72197265624993,81.05732421875001],[-63.028662109375006,80.88955078125002],[-62.90336914062496,81.21835937500003],[-61.43598632812498,81.13359375000002],[-60.842871093750034,81.85537109374997],[-59.28193359374998,81.88403320312503],[-56.615136718749994,81.362890625],[-59.26181640624998,82.00664062500005],[-54.54887695312496,82.35063476562505],[-53.671337890624955,82.16406249999997],[-53.55566406250003,81.65327148437501],[-53.022558593750034,82.32172851562504],[-50.894433593749994,81.89521484375001],[-49.54106445312496,81.91806640625003],[-50.93554687500003,82.38281250000003],[-50.03710937499994,82.472412109375],[-44.7294921875,81.77983398437505],[-44.23886718749998,82.3681640625],[-45.55654296875002,82.74702148437498],[-41.87646484375,82.680322265625],[-41.36962890625003,82.75],[-46.136816406250006,82.85883789062504],[-46.169042968750006,83.06386718749997],[-45.41459960937496,83.01767578124998],[-43.00927734375003,83.26459960937501],[-41.300146484375006,83.10078125000004],[-40.35683593750002,83.332177734375],[-38.15625,82.9986328125],[-38.74956054687496,83.37084960937497],[-37.72333984374998,83.49775390624998],[-29.952880859375,83.56484374999997]]]]},"properties":{"name":"Greenland","childNum":14}},{"geometry":{"type":"Polygon","coordinates":[[[-89.2328125,15.888671875],[-88.89404296875,15.890625],[-88.60336914062499,15.76416015625],[-88.5939453125,15.950292968749991],[-88.22832031249999,15.72900390625],[-88.271435546875,15.694873046875003],[-88.36455078124999,15.616015625],[-88.68447265625,15.360498046874994],[-88.96098632812499,15.152441406249991],[-89.142578125,15.072314453125003],[-89.22236328125,14.866064453124991],[-89.16220703124999,14.669238281250003],[-89.17177734375,14.606884765624997],[-89.28671875,14.529980468749997],[-89.36259765624999,14.416015625],[-89.5736328125,14.390087890624997],[-89.54716796874999,14.241259765625003],[-90.04814453124999,13.904052734375],[-90.09521484375,13.736523437499997],[-90.60693359375,13.929003906250003],[-91.37734375,13.990185546874997],[-92.23515624999999,14.54541015625],[-92.15854492187499,14.963574218749997],[-92.14423828125,15.001953125],[-92.09873046874999,15.026757812499994],[-92.07480468749999,15.07421875],[-92.187158203125,15.320898437499991],[-92.08212890624999,15.495556640624997],[-91.9572265625,15.703222656249991],[-91.736572265625,16.07016601562499],[-91.433984375,16.070458984374994],[-90.97958984374999,16.07080078125],[-90.70322265624999,16.071044921875],[-90.52197265625,16.071191406249994],[-90.44716796875,16.072705078124997],[-90.45986328125,16.162353515625],[-90.450146484375,16.261376953124994],[-90.4169921875,16.351318359375],[-90.4169921875,16.39101562499999],[-90.47109375,16.43955078124999],[-90.57578125,16.467822265625003],[-90.63408203124999,16.5107421875],[-90.634375,16.565136718749997],[-90.65996093749999,16.630908203125003],[-90.710693359375,16.70810546874999],[-90.975830078125,16.867822265624994],[-91.409619140625,17.255859375],[-91.1955078125,17.254101562499997],[-90.99296874999999,17.25244140625],[-90.98916015625,17.81640625],[-89.16147460937499,17.81484375],[-89.2328125,15.888671875]]]},"properties":{"name":"Guatemala","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[144.74179687500003,13.25927734375],[144.64931640625002,13.4287109375],[144.87539062500002,13.614648437499994],[144.94082031250002,13.5703125],[144.74179687500003,13.25927734375]]]},"properties":{"name":"Guam","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-57.194775390625,5.5484375],[-57.3185546875,5.335351562499994],[-57.20981445312499,5.195410156249991],[-57.331005859375,5.020166015624994],[-57.711083984374994,4.991064453124991],[-57.91704101562499,4.820410156249991],[-57.84599609374999,4.668164062499997],[-58.05429687499999,4.101660156249991],[-57.646728515625,3.39453125],[-57.303662109375,3.377099609374994],[-57.19736328124999,2.853271484375],[-56.704345703125,2.036474609374991],[-56.4828125,1.942138671875],[-56.96953124999999,1.91640625],[-57.03759765625,1.936474609374997],[-57.092675781249994,2.005810546874997],[-57.118896484375,2.013964843749989],[-57.31748046874999,1.963476562499991],[-57.41269531249999,1.908935546875],[-57.500439453125,1.77382812499999],[-57.54575195312499,1.72607421875],[-57.59443359375,1.7041015625],[-57.795654296875,1.7],[-57.8734375,1.667285156249989],[-57.9828125,1.6484375],[-58.03466796875,1.520263671875],[-58.34067382812499,1.587548828124994],[-58.38037109375,1.530224609374997],[-58.39580078124999,1.481738281249989],[-58.5060546875,1.438671875],[-58.511865234374994,1.28466796875],[-58.68461914062499,1.281054687499989],[-58.73032226562499,1.247509765624997],[-58.78720703124999,1.20849609375],[-58.82177734375,1.201220703124989],[-59.231201171875,1.376025390624989],[-59.53569335937499,1.7],[-59.66660156249999,1.746289062499997],[-59.66850585937499,1.842333984374989],[-59.74072265625,1.874169921874994],[-59.75620117187499,1.900634765625],[-59.75522460937499,2.274121093749997],[-59.8896484375,2.362939453124994],[-59.9943359375,2.689990234374989],[-59.854394531249994,3.5875],[-59.55112304687499,3.933544921874997],[-59.557763671874994,3.960009765624989],[-59.62021484374999,4.023144531249997],[-59.73857421874999,4.226757812499997],[-59.69970703125,4.353515625],[-60.1486328125,4.533251953124989],[-59.990673828125,5.082861328124991],[-60.142041015625,5.238818359374989],[-60.241650390625,5.257958984374994],[-60.335205078125,5.199316406249991],[-60.45952148437499,5.188085937499991],[-60.6513671875,5.221142578124997],[-60.742138671875,5.202050781249994],[-61.37680664062499,5.906982421875],[-61.3908203125,5.938769531249989],[-61.303125,6.049511718749997],[-61.22495117187499,6.129199218749989],[-61.15947265624999,6.174414062499991],[-61.12871093749999,6.214306640624997],[-61.152294921875,6.385107421874991],[-61.151025390624994,6.446533203125],[-61.181591796875,6.513378906249997],[-61.20361328125,6.58837890625],[-61.14560546874999,6.69453125],[-60.717919921874994,6.768310546875],[-60.35209960937499,7.002880859374997],[-60.32207031249999,7.092041015625],[-60.32548828124999,7.133984375],[-60.34506835937499,7.15],[-60.46494140624999,7.166552734374989],[-60.523193359375,7.143701171874994],[-60.583203125,7.156201171874997],[-60.63330078125,7.211083984374994],[-60.718652343749994,7.535937499999989],[-60.513623046875,7.813183593749997],[-60.032421875,8.053564453124991],[-59.99072265625,8.162011718749994],[-59.96484375,8.191601562499997],[-59.849072265625,8.248681640624994],[-59.83164062499999,8.305957031249989],[-60.017529296875,8.54931640625],[-59.20024414062499,8.07460937499999],[-58.51108398437499,7.39804687499999],[-58.48056640624999,7.038134765624989],[-58.67294921874999,6.390771484374994],[-58.414990234375,6.85117187499999],[-57.982568359374994,6.785888671875],[-57.54013671874999,6.33154296875],[-57.2275390625,6.178417968749997],[-57.194775390625,5.5484375]]]},"properties":{"name":"Guyana","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[73.70742187500002,-53.13710937499999],[73.46513671875002,-53.184179687500006],[73.25117187500001,-52.97578125000001],[73.83779296875002,-53.11279296875],[73.70742187500002,-53.13710937499999]]]},"properties":{"name":"Heard I. and McDonald Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-83.635498046875,14.876416015624997],[-84.53764648437496,14.633398437499963],[-84.64594726562498,14.661083984375011],[-84.86044921874998,14.809765625000011],[-84.98515624999999,14.752441406249972],[-85.059375,14.582958984374997],[-85.20834960937498,14.311816406250003],[-85.73393554687496,13.85869140625006],[-85.75341796875,13.852050781250028],[-85.78671874999995,13.844433593749997],[-85.98378906249997,13.965673828125006],[-86.04038085937503,14.050146484374977],[-86.33173828124995,13.770068359375031],[-86.37695312500003,13.755664062500031],[-86.61025390624997,13.774853515625026],[-86.73364257812494,13.763476562500017],[-86.75898437499995,13.746142578125045],[-86.77060546875003,13.698730468749972],[-86.763525390625,13.635253906250014],[-86.72958984375,13.4072265625],[-86.710693359375,13.31337890624998],[-86.72929687499996,13.284375],[-86.79213867187497,13.279785156249972],[-86.87353515624994,13.266503906250023],[-86.918212890625,13.223583984374983],[-87.00932617187499,13.007812499999986],[-87.0591796875,12.991455078125028],[-87.337255859375,12.979248046875028],[-87.48911132812503,13.352929687500051],[-87.814208984375,13.399169921875057],[-87.781884765625,13.521386718749994],[-87.71533203125003,13.812695312500011],[-87.73144531250003,13.841064453125014],[-87.80224609374997,13.889990234375034],[-87.89199218749997,13.894970703124983],[-87.99101562499996,13.879638671874972],[-88.15102539062497,13.987353515624974],[-88.44912109374994,13.850976562499994],[-88.48266601562503,13.854248046875043],[-88.49765624999998,13.904541015624986],[-88.50434570312501,13.964208984374963],[-88.51254882812498,13.97895507812504],[-89.12050781249994,14.370214843749991],[-89.36259765624996,14.416015625],[-89.17177734375,14.606884765624983],[-89.16220703125,14.669238281249989],[-89.22236328125001,14.86606445312502],[-89.142578125,15.072314453125031],[-88.96098632812496,15.15244140625002],[-88.68447265625002,15.360498046875037],[-88.36455078124996,15.616015625000045],[-88.27143554687498,15.694873046875045],[-88.22832031249999,15.729003906249972],[-88.131103515625,15.701025390625034],[-87.87495117187495,15.879345703124955],[-86.35664062499998,15.783203125],[-85.93627929687497,15.953417968750045],[-85.98564453124999,16.02416992187497],[-85.48369140624996,15.899511718749977],[-84.97373046874998,15.989892578124994],[-84.55966796875,15.802001953125],[-84.26142578124998,15.822607421875034],[-83.765283203125,15.405468750000054],[-83.972802734375,15.519628906250034],[-84.11132812499997,15.492431640625],[-84.09506835937503,15.400927734375017],[-83.92744140624998,15.394042968750028],[-83.76044921874998,15.220361328124994],[-83.49794921874997,15.222119140624997],[-83.64638671875,15.368408203125043],[-83.36918945312493,15.239990234375],[-83.29086914062498,15.078906250000045],[-83.2255859375,15.042285156250045],[-83.15751953124999,14.993066406249966],[-83.41503906249994,15.008056640625],[-83.5365234375,14.977001953124983],[-83.635498046875,14.876416015624997]]]},"properties":{"name":"Honduras","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[17.60781250000005,42.76904296875],[17.744238281250063,42.70034179687505],[17.34414062500008,42.790380859375006],[17.60781250000005,42.76904296875]]],[[[16.650683593750017,42.99658203125],[17.188281250000045,42.917041015625045],[16.850683593750006,42.8955078125],[16.650683593750017,42.99658203125]]],[[[17.667578125000063,42.897119140624994],[18.436328125000017,42.559716796874994],[18.517480468750023,42.43291015624999],[17.823828125,42.79741210937502],[17.045410156250057,43.014892578125],[17.667578125000063,42.897119140624994]]],[[[16.785253906250006,43.270654296874966],[16.490332031250034,43.28618164062502],[16.44892578125004,43.38706054687506],[16.89130859375001,43.314648437499955],[16.785253906250006,43.270654296874966]]],[[[15.371386718750074,43.973828124999955],[15.437207031250068,43.899511718750006],[15.270019531250028,44.01074218750003],[15.371386718750074,43.973828124999955]]],[[[14.488085937500074,44.66005859375005],[14.31240234375008,44.90039062499997],[14.33125,45.16499023437498],[14.488085937500074,44.66005859375005]]],[[[14.810253906250068,44.97705078124997],[14.45039062500004,45.079199218750006],[14.571093750000017,45.224755859374994],[14.810253906250068,44.97705078124997]]],[[[18.905371093750006,45.931738281250034],[18.839062499999983,45.83574218750002],[19.064257812500045,45.51499023437506],[19.004687500000074,45.39951171875006],[19.4,45.2125],[19.062890625000023,45.13720703125],[19.007128906250045,44.86918945312502],[18.83642578125,44.883251953124955],[18.66259765625,45.07744140624999],[17.812792968750074,45.078125],[16.918652343749983,45.27656249999998],[16.53066406250008,45.21669921875002],[16.29335937500005,45.00883789062496],[16.028320312500057,45.18959960937502],[15.788085937500057,45.17895507812497],[15.736621093750045,44.76582031250001],[16.10341796875008,44.52099609375006],[16.300097656250017,44.12451171875],[17.27382812500005,43.44575195312501],[17.650488281250063,43.006591796875],[17.585156250000068,42.93837890625005],[16.903125,43.392431640625006],[16.393945312500023,43.54335937500002],[15.985546875000068,43.519775390625],[15.185839843750017,44.17211914062503],[15.122949218749994,44.256787109374955],[15.470996093750045,44.27197265625003],[14.981347656250023,44.60292968750005],[14.854589843750034,45.08100585937501],[14.550488281249983,45.297705078125006],[14.31269531250004,45.33779296875002],[13.86074218750008,44.83740234375003],[13.517187500000063,45.481787109375034],[13.878710937500017,45.428369140624994],[14.369921875000074,45.48144531250006],[14.427343750000034,45.50576171875002],[14.56884765625,45.65722656249997],[14.591796875000057,45.65126953125002],[14.649511718750006,45.57148437500001],[14.793066406250034,45.47822265625001],[14.95458984375,45.499902343749994],[15.110449218750034,45.450781250000034],[15.242089843750023,45.44140624999997],[15.339453125000063,45.46704101562506],[15.326660156250028,45.502294921875034],[15.291210937500011,45.541552734375045],[15.283593750000051,45.5796875],[15.35371093750004,45.659912109375],[15.27705078125004,45.73261718749998],[15.652148437500074,45.86215820312498],[15.675585937500045,45.98369140624996],[15.666210937500011,46.04848632812502],[15.596875,46.10922851562506],[15.592578125000017,46.139990234375006],[15.608984374999977,46.171923828125045],[16.1064453125,46.382226562499994],[16.32119140625005,46.53461914062504],[16.42763671875005,46.5244140625],[16.516210937499977,46.499902343749966],[16.569921875,46.48500976562505],[16.748046875000057,46.41640625000002],[16.87148437500008,46.33930664062504],[17.310644531250006,45.99614257812502],[17.80712890625,45.79042968750002],[18.358300781250023,45.75302734375006],[18.533593750000023,45.79614257812503],[18.56464843750004,45.81328124999999],[18.666015625,45.90747070312497],[18.905371093750006,45.931738281250034]]]]},"properties":{"name":"Croatia","childNum":8}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-72.80458984374997,18.777685546875063],[-72.82221679687501,18.707128906249977],[-73.07797851562498,18.790917968749994],[-73.27641601562499,18.95405273437501],[-72.80458984374997,18.777685546875063]]],[[[-71.647216796875,19.195947265624994],[-71.80712890624997,18.987011718749983],[-71.733642578125,18.85639648437501],[-71.72705078125,18.80322265625003],[-71.74321289062502,18.73291015625],[-71.86650390624999,18.61416015625005],[-71.98686523437499,18.61035156249997],[-72.000390625,18.59790039062503],[-71.94038085937493,18.51259765625005],[-71.87255859374997,18.416210937499955],[-71.76191406249998,18.34130859374997],[-71.73725585937495,18.27080078124999],[-71.76831054687497,18.039160156250063],[-71.85292968749997,18.119140625],[-71.94609375,18.186083984375045],[-72.05986328124993,18.228564453125017],[-72.87666015624998,18.151757812499994],[-73.38515625000002,18.251171874999983],[-73.747314453125,18.190234375000017],[-73.88496093749998,18.041894531249994],[-74.478125,18.45],[-74.3875,18.624707031249983],[-74.22773437499998,18.662695312499977],[-72.78935546874996,18.434814453125],[-72.37607421874998,18.57446289062503],[-72.34765624999994,18.674951171874994],[-72.81108398437496,19.071582031250074],[-72.70322265625,19.441064453125023],[-73.43837890624994,19.722119140624983],[-73.21777343750003,19.88369140625005],[-72.63701171875002,19.90087890625],[-72.21982421875003,19.744628906250057],[-71.834716796875,19.696728515624983],[-71.77924804687498,19.718164062499994],[-71.75742187499998,19.68818359375001],[-71.71147460937493,19.486572265625057],[-71.74648437499997,19.28583984375001],[-71.647216796875,19.195947265624994]]]]},"properties":{"name":"Haiti","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[22.1318359375,48.405322265624996],[22.253710937500017,48.407373046874994],[22.582421875000023,48.134033203125],[22.769140625,48.109619140625],[22.87666015625001,47.947265625],[21.99970703125001,47.505029296874994],[21.121679687500006,46.282421875],[20.76025390625,46.246240234374994],[20.613671875000023,46.13349609375],[20.508105468750017,46.166943359375],[20.28095703125001,46.1330078125],[20.241796875,46.10859375],[20.21015625000001,46.126025390624996],[20.161425781250017,46.141894531249996],[19.93408203125,46.161474609375],[19.84443359375001,46.145898437499994],[19.61347656250001,46.169189453125],[19.421289062500023,46.064453125],[18.666015625,45.907470703125],[18.56464843750001,45.81328125],[18.533593750000023,45.796142578125],[18.358300781250023,45.75302734375],[17.80712890625,45.790429687499994],[17.310644531250006,45.996142578124996],[16.871484375000023,46.339306640625],[16.748046875,46.41640625],[16.569921875,46.485009765624994],[16.516210937500006,46.499902343749994],[16.283593750000023,46.857275390625],[16.093066406250017,46.86328125],[16.453417968750017,47.006787109375],[16.44287109375,47.39951171875],[16.676562500000017,47.536035156249994],[16.421289062500023,47.674462890624994],[17.06660156250001,47.707568359374996],[17.147363281250023,48.00595703125],[17.76191406250001,47.770166015624994],[18.72421875,47.787158203124996],[18.791894531250023,48.000292968749996],[19.625390625000023,48.223095703125],[19.95039062500001,48.146630859374994],[20.333789062500017,48.295556640624994],[20.490039062500017,48.526904296874996],[21.45136718750001,48.55224609375],[21.766992187500023,48.3380859375],[22.1318359375,48.405322265624996]]]},"properties":{"name":"Hungary","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[122.9489257812501,-10.90927734375002],[122.82617187500003,-10.899121093749983],[122.84570312500003,-10.761816406249991],[123.37109375000003,-10.474902343749989],[123.41816406250004,-10.651269531250037],[122.9489257812501,-10.90927734375002]]],[[[121.8830078125001,-10.590332031249957],[121.70468750000006,-10.5556640625],[121.99833984375002,-10.446972656249983],[121.8830078125001,-10.590332031249957]]],[[[123.41621093750004,-10.302636718749966],[123.3255859375,-10.264160156249943],[123.45878906250002,-10.13994140624996],[123.41621093750004,-10.302636718749966]]],[[[120.0125,-9.374707031250026],[120.78447265625002,-9.95703125],[120.83261718750006,-10.0375],[120.69804687500002,-10.206640624999949],[120.4391601562501,-10.294042968749991],[120.14482421875002,-10.200097656249952],[119.60107421874997,-9.773535156250006],[119.08544921875003,-9.706933593750023],[118.95878906250002,-9.519335937500003],[119.29589843749997,-9.3671875],[119.9420898437501,-9.301464843750026],[120.0125,-9.374707031250026]]],[[[125.06816406250002,-9.511914062499997],[124.42753906250002,-10.14863281250004],[123.7472656250001,-10.347167968749986],[123.60478515625002,-10.270117187500006],[123.71640625000012,-10.078613281249986],[123.5892578125,-9.966796875000028],[123.709375,-9.61484375],[124.0363281250001,-9.341601562500031],[124.28232421875012,-9.427929687500026],[124.44443359375012,-9.190332031250023],[124.92226562500005,-8.942480468749977],[124.93681640625007,-9.053417968750026],[125.14902343750012,-9.042578125000034],[125.10048828125,-9.189843750000023],[124.96015625000004,-9.213769531250009],[125.06816406250002,-9.511914062499997]]],[[[115.60996093750012,-8.769824218749974],[115.48046875000003,-8.715429687500006],[115.56142578125,-8.669921874999972],[115.60996093750012,-8.769824218749974]]],[[[122.97734375000002,-8.54521484374996],[122.88779296875006,-8.587304687500009],[123.01054687500002,-8.448339843750034],[123.153125,-8.475781250000026],[122.97734375000002,-8.54521484374996]]],[[[119.46406250000004,-8.741015624999974],[119.38554687500002,-8.736035156250026],[119.4464843750001,-8.429199218749957],[119.55722656250012,-8.518847656250003],[119.46406250000004,-8.741015624999974]]],[[[123.31748046875012,-8.354785156249974],[123.02500000000012,-8.395507812500014],[123.21708984375002,-8.235449218750006],[123.33603515625006,-8.269042968750014],[123.31748046875012,-8.354785156249974]]],[[[116.64082031250004,-8.613867187500006],[116.51425781250012,-8.820996093750011],[116.58652343750012,-8.886132812499966],[116.23935546875006,-8.912109375000014],[115.85732421875005,-8.787890625000017],[116.07646484375002,-8.744921874999974],[116.06113281250006,-8.437402343750023],[116.4015625000001,-8.204199218750034],[116.7189453125001,-8.336035156249977],[116.64082031250004,-8.613867187500006]]],[[[124.28662109375003,-8.32949218749998],[124.14667968750004,-8.531445312499997],[123.92773437500003,-8.448925781249969],[124.23955078125002,-8.20341796874996],[124.28662109375003,-8.32949218749998]]],[[[123.92480468750003,-8.2724609375],[123.55302734375007,-8.566796875],[123.23007812500006,-8.530664062500023],[123.47587890625007,-8.322265625000014],[123.39121093750012,-8.280468750000026],[123.77597656250006,-8.190429687499986],[123.92480468750003,-8.2724609375]]],[[[138.89511718750006,-8.388671874999957],[138.56337890625,-8.30908203125],[138.79619140625007,-8.173632812500017],[138.89511718750006,-8.388671874999957]]],[[[117.55634765625004,-8.367285156249949],[117.49052734375007,-8.183398437499974],[117.66503906249997,-8.148242187500003],[117.55634765625004,-8.367285156249949]]],[[[124.5755859375,-8.140820312499997],[125.05029296874997,-8.179589843749994],[125.13173828125,-8.326464843749989],[124.38066406250002,-8.41513671875002],[124.43066406249997,-8.18320312500002],[124.5755859375,-8.140820312499997]]],[[[127.8234375000001,-8.098828124999969],[128.11923828125012,-8.17070312499996],[128.02353515625006,-8.255371093749972],[127.82089843750012,-8.190234375000031],[127.8234375000001,-8.098828124999969]]],[[[122.7829101562501,-8.61171875],[121.65136718749997,-8.898730468749946],[121.41464843750006,-8.81484375],[121.32832031250004,-8.916894531250009],[121.03525390625012,-8.935449218749966],[120.55048828125004,-8.80185546875002],[119.909375,-8.857617187500011],[119.80791015625002,-8.697656250000023],[119.87480468750007,-8.419824218749994],[120.61025390625005,-8.24042968750004],[121.44453125000004,-8.57783203125004],[121.96650390625004,-8.455175781250006],[122.32324218749997,-8.628320312500023],[122.85048828125,-8.304394531250011],[122.91914062500004,-8.221875],[122.75859375000002,-8.185937499999952],[122.91699218749997,-8.105566406250006],[123.00595703125006,-8.329101562499986],[122.7829101562501,-8.61171875]]],[[[130.86220703125,-8.31875],[130.77519531250002,-8.34990234374996],[131.02011718750012,-8.091308593749943],[131.17636718750006,-8.130761718749994],[130.86220703125,-8.31875]]],[[[118.24238281250004,-8.317773437499994],[118.61191406250006,-8.28066406249998],[118.71386718749997,-8.41494140624998],[118.926171875,-8.297656249999974],[119.12968750000002,-8.668164062499969],[118.74589843750002,-8.735449218749991],[118.83261718750012,-8.833398437499966],[118.47861328125012,-8.856445312499957],[118.37890625000003,-8.674609375000031],[118.18994140624997,-8.840527343749997],[117.06132812500002,-9.099023437499994],[116.78847656250005,-9.006347656250028],[116.83505859375012,-8.532421875000026],[117.16484375000007,-8.367187500000014],[117.56708984375004,-8.426367187499991],[117.80605468750005,-8.711132812500011],[117.96953125000002,-8.728027343749986],[118.23486328124997,-8.591894531249963],[117.81484375000005,-8.342089843749974],[117.7552734375,-8.149511718749991],[118.11748046875007,-8.12226562500004],[118.24238281250004,-8.317773437499994]]],[[[115.44785156250012,-8.155175781249994],[115.70429687500004,-8.40712890624998],[115.14492187500005,-8.849023437500037],[115.05507812500005,-8.573046874999946],[114.61318359375,-8.37832031249998],[114.46757812500007,-8.166308593749946],[114.93847656249997,-8.18710937500002],[115.15400390625004,-8.065722656249974],[115.44785156250012,-8.155175781249994]]],[[[129.83886718749997,-7.954589843749986],[129.71347656250012,-8.04072265625004],[129.60898437500006,-7.803417968750011],[129.81298828124997,-7.819726562499952],[129.83886718749997,-7.954589843749986]]],[[[126.80097656250004,-7.667871093750009],[126.4720703125,-7.950390625000011],[126.04003906250003,-7.885839843750006],[125.79824218750005,-7.984570312499969],[125.97529296875004,-7.663378906249989],[126.21367187500002,-7.706738281250026],[126.60957031250004,-7.571777343749972],[126.80097656250004,-7.667871093750009]]],[[[127.41943359375003,-7.623046875000028],[127.37070312500012,-7.512792968749949],[127.47519531250012,-7.531054687500031],[127.41943359375003,-7.623046875000028]]],[[[138.53535156250004,-8.273632812499969],[138.2962890625,-8.405175781250037],[137.65039062499997,-8.386132812499966],[138.08183593750002,-7.566210937500003],[138.29550781250012,-7.4384765625],[138.76982421875002,-7.390429687499974],[138.98906250000002,-7.696093749999989],[138.53535156250004,-8.273632812499969]]],[[[131.3255859375,-7.999511718749986],[131.11376953125003,-7.997363281249989],[131.13779296875012,-7.684863281250017],[131.64345703125,-7.11279296875],[131.73613281250007,-7.197070312500017],[131.64384765625002,-7.266894531249946],[131.62441406250005,-7.626171874999955],[131.3255859375,-7.999511718749986]]],[[[131.98203125000006,-7.202050781249966],[131.75078125000002,-7.116796875],[131.92226562500005,-7.104492187499986],[131.98203125000006,-7.202050781249966]]],[[[128.6701171875001,-7.183300781249969],[128.52978515625003,-7.134570312499989],[128.62773437500007,-7.06875],[128.6701171875001,-7.183300781249969]]],[[[120.77441406250003,-7.118945312500003],[120.64082031250004,-7.115820312499991],[120.63339843750006,-7.018261718750011],[120.77441406250003,-7.118945312500003]]],[[[113.84453125000007,-7.105371093749994],[113.12695312499997,-7.224121093750028],[112.72587890625007,-7.072753906250014],[112.86806640625,-6.899902343749972],[113.06738281250003,-6.879980468749991],[113.97470703125012,-6.873046875],[114.0736328125,-6.960156249999983],[113.84453125000007,-7.105371093749994]]],[[[115.37705078125006,-6.97080078125002],[115.22031250000012,-6.952539062500037],[115.24052734375007,-6.861230468749994],[115.54609375000004,-6.938671874999955],[115.37705078125006,-6.97080078125002]]],[[[105.25283203125005,-6.640429687499946],[105.12138671875007,-6.614941406249997],[105.26054687500002,-6.523925781250014],[105.25283203125005,-6.640429687499946]]],[[[134.53681640625004,-6.442285156249994],[134.32275390624997,-6.84873046875002],[134.09082031249997,-6.833789062500003],[134.10703125000006,-6.471582031250009],[134.19462890625007,-6.459765625],[134.11464843750005,-6.190820312500009],[134.53681640625004,-6.442285156249994]]],[[[107.37392578125005,-6.007617187499989],[107.66679687500002,-6.215820312499957],[108.33017578125012,-6.286035156249966],[108.67783203125006,-6.790527343749972],[110.42626953124997,-6.947265625000028],[110.83476562500002,-6.424218749999952],[110.97226562500012,-6.435644531249977],[111.18154296875005,-6.686718749999969],[111.54033203125002,-6.648242187500031],[112.0873046875,-6.89335937499996],[112.53925781250004,-6.926464843749955],[112.64873046875007,-7.221289062499977],[112.7943359375,-7.304492187499974],[112.79453125000012,-7.55244140625004],[113.01357421875005,-7.657714843749986],[113.49765625000006,-7.723828124999955],[114.07070312500005,-7.633007812500011],[114.40927734375012,-7.79248046875],[114.38691406250004,-8.405175781250037],[114.58378906250002,-8.769628906250034],[113.25332031250005,-8.286718749999963],[112.67880859375006,-8.409179687499957],[111.50996093750004,-8.30507812499998],[110.60722656250002,-8.149414062499972],[109.28164062500005,-7.704882812500003],[108.74121093749997,-7.667089843750034],[108.45175781250006,-7.79697265625002],[107.91748046875003,-7.724121093750014],[107.28496093750007,-7.471679687500014],[106.45527343750004,-7.368652343749986],[106.51972656250004,-7.053710937499943],[106.19824218749997,-6.927832031249977],[105.25546875000012,-6.835253906250031],[105.37089843750002,-6.664355468750031],[105.48369140625007,-6.781542968750017],[105.65507812500002,-6.469531249999946],[105.78691406250002,-6.456933593749966],[105.86826171875006,-6.11640625000004],[106.075,-5.914160156249963],[106.82519531249997,-6.098242187499977],[107.0462890625,-5.90419921874998],[107.37392578125005,-6.007617187499989]]],[[[120.52832031249997,-6.2984375],[120.48730468749997,-6.464843749999972],[120.47734375000007,-5.775292968750009],[120.52832031249997,-6.2984375]]],[[[112.7194335937501,-5.81103515625],[112.58603515625006,-5.803613281249994],[112.69003906250006,-5.726171875000034],[112.7194335937501,-5.81103515625]]],[[[132.80712890625003,-5.850781250000011],[132.68144531250002,-5.91259765625],[132.63017578125002,-5.60703125],[132.80712890625003,-5.850781250000011]]],[[[134.74697265625,-5.707031249999957],[134.71416015625007,-6.29511718750004],[134.44111328125004,-6.334863281249966],[134.15488281250006,-6.06289062499998],[134.3019531250001,-6.009765624999986],[134.34306640625002,-5.833007812499943],[134.20537109375002,-5.707226562499997],[134.34130859375003,-5.712890624999986],[134.57080078124997,-5.42734375],[134.74697265625,-5.707031249999957]]],[[[132.92626953124997,-5.902050781249983],[132.84501953125002,-5.987988281249997],[133.13847656250002,-5.317871093749986],[133.11962890625003,-5.575976562499989],[132.92626953124997,-5.902050781249983]]],[[[102.36718750000003,-5.478710937499983],[102.1107421875,-5.32255859374996],[102.3717773437501,-5.366406250000011],[102.36718750000003,-5.478710937499983]]],[[[123.62675781250007,-5.271582031249963],[123.58261718750006,-5.36738281250004],[123.54277343750002,-5.271093749999963],[123.62675781250007,-5.271582031249963]]],[[[122.04296874999997,-5.437988281250028],[121.80849609375,-5.256152343750017],[121.91367187500012,-5.072265624999957],[122.04101562500003,-5.158789062499991],[122.04296874999997,-5.437988281250028]]],[[[122.64511718750012,-5.26943359374998],[122.5638671875,-5.3875],[122.28310546875,-5.319531249999969],[122.39628906250002,-5.069824218749986],[122.36894531250007,-4.767187499999977],[122.70195312500002,-4.61865234375],[122.75986328125012,-4.933886718750003],[122.61406250000007,-5.138671874999986],[122.64511718750012,-5.26943359374998]]],[[[123.17978515625006,-4.551171875000023],[123.195703125,-4.82265625],[123.05517578124997,-4.748242187500026],[122.97167968750003,-5.138476562500031],[123.18730468750007,-5.333007812499957],[122.96875,-5.405761718749943],[122.81210937500012,-5.671289062499952],[122.64501953124997,-5.663378906250031],[122.58642578124997,-5.488867187500006],[122.76650390625005,-5.210156249999983],[122.85332031250007,-4.618359375000026],[123.074609375,-4.38691406250004],[123.17978515625006,-4.551171875000023]]],[[[133.57080078124997,-4.245898437500003],[133.621875,-4.299316406249957],[133.32089843750006,-4.111035156249969],[133.57080078124997,-4.245898437500003]]],[[[123.2423828125001,-4.112988281250011],[123.07617187499997,-4.227148437499991],[122.96904296875002,-4.029980468749969],[123.21191406250003,-3.997558593750028],[123.2423828125001,-4.112988281250011]]],[[[128.56259765625012,-3.58544921875],[128.39160156250003,-3.637890625000026],[128.45156250000005,-3.514746093749991],[128.56259765625012,-3.58544921875]]],[[[128.2755859375001,-3.67460937499996],[127.97802734374997,-3.770996093749972],[127.925,-3.69931640625002],[128.32910156249997,-3.51591796874996],[128.2755859375001,-3.67460937499996]]],[[[116.42412109375007,-3.464453124999963],[116.38779296875012,-3.636718749999972],[116.3265625,-3.539062499999972],[116.42412109375007,-3.464453124999963]]],[[[116.30332031250006,-3.868164062499957],[116.05878906250004,-4.006933593749991],[116.06357421875006,-3.457910156249952],[116.26972656250004,-3.251074218750006],[116.30332031250006,-3.868164062499957]]],[[[126.86113281250007,-3.087890624999986],[127.22734375000007,-3.391015625],[127.22958984375006,-3.633007812500011],[126.68632812500007,-3.823632812500037],[126.21455078125004,-3.605175781250026],[126.05654296875,-3.420996093749991],[126.08828125,-3.105468750000014],[126.86113281250007,-3.087890624999986]]],[[[106.88642578125004,-3.005273437500023],[106.7428710937501,-2.932812500000011],[106.91064453124997,-2.93398437499998],[106.88642578125004,-3.005273437500023]]],[[[129.75468750000007,-2.865820312500034],[130.3791015625001,-2.989355468749977],[130.56992187500006,-3.130859375000028],[130.85996093750006,-3.570312500000028],[130.805078125,-3.85771484374996],[129.844140625,-3.327148437499957],[129.51171875000003,-3.32851562499998],[129.46767578125005,-3.453222656249977],[128.8625,-3.234960937500006],[128.51660156249997,-3.449121093750037],[128.13203125000004,-3.157421875000026],[127.90234374999997,-3.496289062499955],[127.87792968749997,-3.222070312499966],[128.19853515625002,-2.865917968749969],[128.99111328125,-2.82851562499998],[129.17441406250006,-2.933496093749966],[129.48417968750002,-2.785742187499977],[129.75468750000007,-2.865820312500034]]],[[[100.42509765625007,-3.182910156249974],[100.46513671875007,-3.32851562499998],[100.20429687500004,-2.98681640625],[100.19853515625002,-2.785546875000023],[100.45458984375003,-3.001953124999972],[100.42509765625007,-3.182910156249974]]],[[[108.2072265625001,-2.997656249999977],[108.05527343750006,-3.22685546874996],[107.85820312500002,-3.086328125000023],[107.61445312500004,-3.209375],[107.56347656250003,-2.920117187499997],[107.66630859375002,-2.566308593750037],[107.83779296875005,-2.530273437499972],[108.21513671875002,-2.696972656250011],[108.29062500000012,-2.829980468750023],[108.2072265625001,-2.997656249999977]]],[[[100.20410156249997,-2.741015625000017],[100.01494140625007,-2.819726562499966],[99.98789062500006,-2.525390624999957],[100.20410156249997,-2.741015625000017]]],[[[99.84306640625007,-2.343066406250031],[99.60703125000012,-2.257519531250011],[99.57216796875005,-2.025781249999966],[99.84306640625007,-2.343066406250031]]],[[[126.055078125,-2.451269531249963],[125.86289062500006,-2.077148437499943],[125.92275390625,-1.974804687499969],[126.055078125,-2.451269531249963]]],[[[126.02421875000007,-1.789746093750011],[126.33173828125004,-1.822851562500006],[125.47919921875004,-1.940039062499991],[125.38720703124997,-1.843066406249946],[126.02421875000007,-1.789746093750011]]],[[[130.35332031250007,-1.690527343749963],[130.41884765625,-1.971289062499963],[130.24804687500003,-2.047753906249994],[129.7376953125,-1.866894531250011],[130.35332031250007,-1.690527343749963]]],[[[124.96953125000007,-1.70546875],[125.18789062500005,-1.712890624999986],[125.31406250000006,-1.877148437499969],[124.41777343750002,-2.005175781250031],[124.32968750000012,-1.858886718749972],[124.41757812500006,-1.659277343749991],[124.96953125000007,-1.70546875]]],[[[135.47421875000006,-1.591796875000014],[136.89257812500003,-1.799707031249994],[136.22812500000012,-1.893652343749949],[135.47421875000006,-1.591796875000014]]],[[[108.953125,-1.61962890625],[108.83789062499997,-1.661621093750028],[108.80371093750003,-1.567773437499994],[108.953125,-1.61962890625]]],[[[106.04570312500002,-1.669433593750014],[106.36591796875004,-2.464843749999972],[106.81845703125006,-2.573339843749963],[106.6120117187501,-2.895507812499957],[106.66718750000004,-3.071777343749986],[105.99873046875004,-2.824902343749955],[105.7858398437501,-2.18134765625004],[105.13339843750012,-2.042578125],[105.45957031250006,-1.574707031249986],[105.58544921875003,-1.526757812499994],[105.7008789062501,-1.731054687499963],[105.7204101562501,-1.533886718750026],[105.91005859375,-1.504980468749991],[106.04570312500002,-1.669433593750014]]],[[[123.59755859375,-1.704296875000011],[123.48251953125006,-1.681445312499974],[123.52851562500004,-1.502832031250009],[123.59755859375,-1.704296875000011]]],[[[128.1530273437501,-1.66054687499998],[127.56162109375012,-1.728515624999972],[127.39501953125003,-1.589843749999972],[127.64667968750004,-1.332421875],[128.1530273437501,-1.66054687499998]]],[[[123.2123046875,-1.171289062499966],[123.23779296874997,-1.389355468749983],[123.43476562500004,-1.236816406249986],[123.54726562500005,-1.337402343749957],[123.51191406250004,-1.447363281249977],[123.27490234374997,-1.437207031249955],[123.17294921875006,-1.616015624999974],[123.15039062500003,-1.304492187500003],[122.89042968750007,-1.58720703124996],[122.81083984375002,-1.432128906249986],[122.90800781250002,-1.182226562499963],[123.2123046875,-1.171289062499966]]],[[[109.71025390625007,-1.1806640625],[109.46367187500002,-1.277539062500026],[109.4759765625,-0.9853515625],[109.74335937500004,-1.039355468749989],[109.71025390625007,-1.1806640625]]],[[[134.96533203124997,-1.116015624999974],[134.86171875,-1.114160156249952],[134.82792968750002,-0.978808593750003],[134.99628906250004,-1.03408203124998],[134.96533203124997,-1.116015624999974]]],[[[99.16386718750007,-1.777929687500006],[98.82773437500006,-1.609960937499977],[98.60175781250004,-1.197851562499949],[98.67607421875007,-0.970507812500003],[98.93261718750003,-0.954003906250009],[99.2672851562501,-1.62773437499996],[99.16386718750007,-1.777929687500006]]],[[[131.00185546875005,-1.315527343750034],[130.78232421875006,-1.255468749999963],[130.67294921875006,-0.959765625000031],[131.03300781250007,-0.917578124999963],[131.00185546875005,-1.315527343750034]]],[[[135.38300781250004,-0.6513671875],[135.89355468749997,-0.725781249999969],[136.37529296875007,-1.094042968750031],[136.1647460937501,-1.214746093750023],[135.91503906250003,-1.178417968749997],[135.74707031249997,-0.823046874999974],[135.64570312500004,-0.881933593749991],[135.38300781250004,-0.6513671875]]],[[[127.30039062500012,-0.780957031250026],[127.1564453125001,-0.760937500000026],[127.20908203125006,-0.619335937499955],[127.30039062500012,-0.780957031250026]]],[[[130.6266601562501,-0.528710937499966],[130.46542968750006,-0.486523437499983],[130.6159179687501,-0.417285156250003],[130.6266601562501,-0.528710937499966]]],[[[121.86435546875012,-0.406835937500006],[121.88125,-0.502636718749983],[121.65527343749997,-0.526171874999989],[121.86435546875012,-0.406835937500006]]],[[[140.97343750000007,-2.609765625],[140.97353515625,-2.803417968750026],[140.975,-6.346093750000023],[140.86230468749997,-6.740039062499989],[140.97519531250006,-6.90537109375002],[140.97617187500012,-9.11875],[140.00292968749997,-8.19550781250004],[140.11699218750002,-7.923730468750009],[139.93476562500004,-8.101171875],[139.38564453125,-8.189062499999963],[139.24882812500002,-7.982421874999972],[138.890625,-8.237792968749943],[139.08798828125012,-7.587207031250017],[138.74794921875,-7.25146484375],[139.17685546875006,-7.1904296875],[138.84570312500003,-7.13632812499999],[138.60136718750007,-6.936523437499972],[138.86455078125007,-6.858398437499943],[138.43867187500004,-6.343359375],[138.2962890625,-5.94902343749996],[138.37460937500006,-5.84365234374998],[138.19960937500005,-5.80703125],[138.33964843750007,-5.675683593749966],[138.08710937500004,-5.70917968750004],[138.06083984375002,-5.46523437499998],[137.27978515624997,-4.945410156249949],[136.61884765625004,-4.81875],[135.97968750000004,-4.530859374999963],[135.19560546875007,-4.450683593749972],[134.67968749999997,-4.079101562499943],[134.70654296875003,-3.954785156250026],[134.88652343750007,-3.938476562499986],[134.26621093750012,-3.945800781249972],[134.14707031250006,-3.79677734374998],[133.97382812500004,-3.817968750000034],[133.67832031250006,-3.4794921875],[133.8415039062501,-3.054785156249991],[133.70039062500004,-3.0875],[133.653125,-3.364355468749991],[133.51816406250012,-3.411914062500003],[133.40087890625003,-3.899023437500034],[133.24873046875004,-4.062304687499989],[132.91445312500005,-4.05693359374996],[132.75390625000003,-3.703613281250014],[132.86972656250006,-3.550976562499997],[132.75136718750005,-3.294628906249997],[131.97119140624997,-2.788574218750014],[132.2306640625001,-2.680371093749997],[132.725,-2.789062500000028],[133.19101562500006,-2.43779296874996],[133.70009765625005,-2.624609375],[133.75332031250005,-2.450683593750014],[133.90488281250012,-2.390917968750003],[133.79101562500003,-2.293652343749997],[133.92158203125004,-2.102050781249957],[132.96279296875005,-2.272558593749963],[132.30761718749997,-2.24228515625002],[132.02343749999997,-1.99033203125002],[131.93037109375004,-1.559667968750034],[131.29375,-1.393457031250009],[130.99589843750007,-1.42470703124998],[131.1908203125,-1.165820312500003],[131.2572265625,-0.855468750000014],[131.80429687500006,-0.703808593750026],[132.39375,-0.355468750000028],[132.85644531250003,-0.417382812500023],[133.47265624999997,-0.726171874999963],[133.97451171875,-0.744335937500026],[134.11152343750004,-0.84677734375002],[134.07197265625004,-1.001855468749994],[134.25957031250007,-1.362988281250026],[134.105859375,-1.720996093749946],[134.19482421875003,-2.309082031249943],[134.45996093749997,-2.83232421874996],[134.48330078125,-2.583007812499972],[134.62744140624997,-2.536718749999963],[134.70214843749997,-2.933593749999986],[134.84335937500006,-2.909179687499986],[134.88681640625006,-3.209863281249966],[135.25156250000012,-3.368554687499966],[135.48662109375002,-3.34511718749998],[135.85917968750002,-2.99531250000004],[136.38994140625002,-2.273339843750037],[137.07207031250002,-2.105078124999949],[137.1710937500001,-2.025488281249991],[137.1234375,-1.840917968749963],[137.80625000000012,-1.483203125],[139.78955078125003,-2.34824218750002],[140.62255859374997,-2.44580078125],[140.74746093750005,-2.607128906249997],[140.97343750000007,-2.609765625]]],[[[104.47421875000012,-0.334667968749955],[104.59013671875002,-0.466601562500017],[104.36318359375,-0.658593749999966],[104.25712890625002,-0.463281249999966],[104.47421875000012,-0.334667968749955]]],[[[127.56699218750006,-0.318945312499949],[127.68242187500002,-0.46835937500002],[127.60498046874997,-0.610156249999946],[127.88017578125002,-0.808691406249991],[127.7611328125,-0.883691406249994],[127.62382812500002,-0.76601562499999],[127.46269531250002,-0.80595703124996],[127.46865234375,-0.64296875],[127.3,-0.500292968749946],[127.32509765625,-0.335839843750023],[127.45517578125012,-0.406347656249991],[127.56699218750006,-0.318945312499949]]],[[[127.24990234375005,-0.4953125],[127.11914062500003,-0.520507812499986],[127.12646484375003,-0.278613281250003],[127.29003906250003,-0.284375],[127.24990234375005,-0.4953125]]],[[[103.73652343750004,-0.347949218750003],[103.461328125,-0.357617187500011],[103.54892578125006,-0.227539062499986],[103.73652343750004,-0.347949218750003]]],[[[130.81328125000007,-0.004101562500026],[131.27685546875003,-0.149804687499952],[131.33974609375005,-0.290332031249989],[131.00537109374997,-0.360742187500037],[130.62216796875006,-0.0859375],[130.89921875000002,-0.344433593749997],[130.7501953125001,-0.44384765625],[130.6886718750001,-0.296582031250011],[130.55078124999997,-0.366406250000026],[130.23662109375002,-0.209667968749983],[130.3625,-0.072851562500006],[130.81328125000007,-0.004101562500026]]],[[[98.45927734375007,-0.530468749999969],[98.30966796875012,-0.531835937499977],[98.4271484375,-0.226464843750037],[98.3229492187501,-0.000781249999974],[98.54414062500004,-0.257617187499989],[98.45927734375007,-0.530468749999969]]],[[[104.77861328125007,-0.175976562499955],[105.00537109374997,-0.282812499999963],[104.44707031250002,-0.189160156249983],[104.54267578125004,0.01772460937498],[104.77861328125007,-0.175976562499955]]],[[[103.28447265625002,0.541943359375011],[103.13955078125,0.549072265625043],[103.18740234375,0.699755859375017],[103.28447265625002,0.541943359375011]]],[[[103.0275390625001,0.746630859374974],[102.4904296875001,0.856640625],[102.50664062500002,1.088769531250037],[103.00244140624997,0.859277343750009],[103.0275390625001,0.746630859374974]]],[[[103.42392578125012,1.048339843749972],[103.31542968750003,1.071289062500028],[103.37998046875006,1.133642578125034],[103.42392578125012,1.048339843749972]]],[[[103.16640625000005,0.870166015625003],[102.7018554687501,1.0537109375],[102.72558593749997,1.158837890625023],[102.99941406250005,1.067773437500023],[103.16640625000005,0.870166015625003]]],[[[104.02480468750005,1.180566406250009],[104.13984375000004,1.165576171874974],[104.06611328125004,0.989550781249989],[103.93222656250012,1.071386718749963],[104.02480468750005,1.180566406250009]]],[[[104.58535156250005,1.21611328124996],[104.66289062500002,1.04951171875004],[104.57519531250003,0.831933593750037],[104.43925781250002,1.050439453125051],[104.25195312499997,1.014892578125],[104.36181640624997,1.18149414062502],[104.58535156250005,1.21611328124996]]],[[[102.4271484375,0.990136718750023],[102.27958984375002,1.075683593750043],[102.25634765625003,1.397070312499963],[102.44287109374997,1.234228515625006],[102.4271484375,0.990136718750023]]],[[[97.48154296875006,1.465087890624972],[97.93193359375002,0.973925781250003],[97.82041015625012,0.564453124999986],[97.683984375,0.596093750000037],[97.60390625000005,0.83388671874998],[97.40537109375012,0.946972656250026],[97.07919921875006,1.425488281249983],[97.35595703124997,1.539746093749997],[97.48154296875006,1.465087890624972]]],[[[102.49189453125004,1.459179687500011],[102.49941406250005,1.330908203124991],[102.02402343750012,1.607958984375031],[102.49189453125004,1.459179687500011]]],[[[124.88886718750004,0.995312500000011],[124.42753906250002,0.470605468750051],[123.75380859375,0.305517578124991],[123.26542968750007,0.326611328125026],[122.996875,0.493505859375006],[121.01298828125002,0.441699218750017],[120.57900390625,0.5283203125],[120.19228515625,0.268505859374997],[120.01328125000012,-0.196191406249994],[120.062890625,-0.555566406250023],[120.240625,-0.868261718749949],[120.51757812499997,-1.039453125],[120.66738281250005,-1.370117187499972],[121.14853515625012,-1.33945312500002],[121.5755859375,-0.828515625000023],[121.96962890625005,-0.933300781249969],[122.27998046875004,-0.757031250000026],[122.88876953125006,-0.755175781250003],[122.8294921875,-0.658886718750026],[123.17148437500012,-0.57070312499999],[123.37968750000002,-0.648535156249949],[123.43417968750006,-0.778222656249994],[123.37792968749997,-1.004101562500011],[122.90283203125003,-0.900976562499963],[122.25068359375004,-1.555273437500034],[121.8585937500001,-1.69326171874998],[121.65097656250006,-1.895410156249952],[121.35546874999997,-1.878222656250003],[122.29169921875004,-2.907617187500023],[122.39902343750006,-3.200878906249997],[122.25292968749997,-3.620410156250017],[122.68964843750004,-4.084472656249972],[122.84794921875002,-4.064550781250006],[122.8722656250001,-4.391992187500009],[122.71972656250003,-4.340722656249952],[122.11425781250003,-4.540234375000011],[122.03808593749997,-4.832421875000023],[121.58867187500007,-4.759570312500017],[121.48652343750004,-4.581054687499972],[121.61806640625,-4.092675781249952],[120.89179687500004,-3.520605468750034],[121.05429687500012,-3.167089843749949],[121.0521484375,-2.751660156249955],[120.87939453124997,-2.64560546875002],[120.65361328125002,-2.667578124999977],[120.26103515625007,-2.949316406249991],[120.43662109375012,-3.70732421874996],[120.42011718750004,-4.617382812500011],[120.27929687499997,-5.146093749999977],[120.4303710937501,-5.591015625000026],[119.9515625,-5.577636718749972],[119.71728515625003,-5.693359375000014],[119.55742187500007,-5.611035156250026],[119.36035156249997,-5.314160156250026],[119.59404296875007,-4.523144531249997],[119.62363281250006,-4.034375],[119.46748046875004,-3.512988281249989],[118.99462890624997,-3.537597656250028],[118.86767578124997,-3.39804687500002],[118.78330078125006,-2.720800781249977],[119.09218750000005,-2.482910156250014],[119.32187500000012,-1.929687500000014],[119.308984375,-1.408203125],[119.508203125,-0.906738281249972],[119.71132812500005,-0.680761718750034],[119.84433593750006,-0.861914062499991],[119.721875,-0.088476562499991],[119.865625,0.040087890625003],[119.80927734375004,0.238671875000051],[119.9132812500001,0.445068359375],[120.26953125000003,0.970800781249991],[120.60253906249997,0.854394531249994],[120.86796875000007,1.25283203124998],[121.0817382812501,1.327636718750028],[121.40410156250002,1.243603515624969],[121.59179687499997,1.067968749999977],[122.43662109375006,1.018066406250028],[122.83828125,0.845703125],[123.06650390625006,0.941796875000037],[123.93076171875006,0.850439453124977],[124.53369140624997,1.230468750000043],[124.94707031250002,1.672167968749974],[125.11093750000012,1.685693359374966],[125.2337890625,1.502294921875006],[124.88886718750004,0.995312500000011]]],[[[101.70810546875006,2.078417968750045],[101.71943359375004,1.789160156250006],[101.50078125000002,1.733203124999974],[101.40966796875003,2.021679687500026],[101.70810546875006,2.078417968750045]]],[[[127.73271484375007,0.848144531250043],[127.8810546875001,0.832128906249977],[127.96728515624997,1.042578125000048],[128.16074218750006,1.1578125],[128.22246093750002,1.400634765624986],[128.68837890625,1.572558593750017],[128.70263671874997,1.106396484374997],[128.29882812500003,0.87680664062502],[128.26064453125,0.733789062500023],[128.61123046875,0.549951171875051],[128.89960937500004,0.216259765625011],[127.9831054687501,0.471875],[127.88740234375004,0.298339843750043],[127.97783203125002,-0.24833984374996],[128.4254882812501,-0.892675781249949],[128.04638671875003,-0.706054687499943],[127.69160156250004,-0.241894531249983],[127.70869140625004,0.288085937499986],[127.53710937500003,0.610888671875031],[127.60800781250006,0.848242187499977],[127.42851562500002,1.139990234374991],[127.63173828125,1.843701171875011],[128.03642578125002,2.199023437500017],[127.88681640625012,1.83295898437504],[128.0109375000001,1.701220703125031],[128.01171874999997,1.331738281249983],[127.65283203124997,1.013867187499969],[127.73271484375007,0.848144531250043]]],[[[97.3341796875001,2.075634765625011],[97.10830078125,2.216894531250006],[97.29140625,2.200830078125023],[97.3341796875001,2.075634765625011]]],[[[128.45390625000002,2.051757812500028],[128.29589843749997,2.034716796875017],[128.2179687500001,2.297460937499991],[128.60214843750012,2.59760742187504],[128.68847656250003,2.473681640625017],[128.62324218750004,2.224414062500031],[128.45390625000002,2.051757812500028]]],[[[96.46367187500002,2.360009765625037],[95.80859374999997,2.655615234375034],[95.7171875,2.825976562500017],[95.89580078125007,2.8890625],[96.41728515625007,2.515185546875031],[96.46367187500002,2.360009765625037]]],[[[108.8875,2.905419921875037],[108.7865234375,2.885644531250009],[108.88574218750003,2.998974609374997],[108.8875,2.905419921875037]]],[[[105.76035156250006,2.863037109375014],[105.69218750000002,3.0625],[105.83671875000007,2.97651367187504],[105.76035156250006,2.863037109375014]]],[[[106.28525390625006,3.15712890624998],[106.28369140624997,3.088232421874977],[106.20097656250002,3.204882812500031],[106.28525390625006,3.15712890624998]]],[[[117.65839843750004,3.280517578124986],[117.54785156250003,3.43198242187502],[117.68085937500004,3.407519531250017],[117.65839843750004,3.280517578124986]]],[[[125.65810546875,3.436035156250043],[125.51152343750007,3.461132812500011],[125.46884765625006,3.73325195312502],[125.65810546875,3.436035156250043]]],[[[117.88476562499997,4.186132812500006],[117.92285156250003,4.054296874999977],[117.73681640624997,4.004003906250034],[117.64902343750012,4.168994140624974],[117.88476562499997,4.186132812500006]]],[[[108.31601562500006,3.689648437500026],[108.10039062500002,3.70454101562504],[108.24326171875006,3.810351562500017],[108.00234375,3.982861328124983],[108.24833984375002,4.21713867187502],[108.39287109375007,3.986181640625034],[108.31601562500006,3.689648437500026]]],[[[117.5744140625001,4.17060546875004],[117.46533203124997,4.076074218749966],[117.77724609375005,3.689257812500031],[117.05595703125007,3.622656249999963],[117.34628906250006,3.426611328124991],[117.35244140625,3.19375],[117.61064453125002,3.064355468749994],[117.56914062500002,2.92929687500002],[117.69765625,2.887304687499991],[117.6388671875001,2.825292968749963],[118.0666015625001,2.317822265624969],[117.7892578125001,2.026855468750014],[118.98496093750006,0.982128906249983],[118.53476562500006,0.813525390625017],[118.19609375000002,0.874365234374977],[117.91162109374997,1.098681640625017],[117.96425781250005,0.889550781250051],[117.74511718749997,0.72963867187498],[117.52216796875004,0.235888671875017],[117.46289062500003,-0.323730468749957],[117.5625,-0.770898437500009],[116.91396484375,-1.223632812499972],[116.73984375000006,-1.044238281250017],[116.75341796874997,-1.327343749999955],[116.27548828125006,-1.784863281249997],[116.42431640625003,-1.784863281249997],[116.45195312500002,-1.923144531250017],[116.31396484374997,-2.139843750000011],[116.56542968749997,-2.299707031249994],[116.52929687499997,-2.51054687499996],[116.31679687500005,-2.55185546875002],[116.33066406250012,-2.902148437499974],[116.16630859375002,-2.934570312500014],[116.2572265625,-3.126367187500009],[115.95615234375012,-3.595019531250003],[114.6935546875001,-4.169726562500017],[114.5255859375001,-3.376660156250011],[114.44599609375004,-3.481835937500037],[114.34433593750012,-3.444433593749963],[114.34433593750012,-3.23515625],[114.23632812500003,-3.36113281249996],[114.0822265625001,-3.27890625],[113.70507812499997,-3.45527343750004],[113.6100585937501,-3.195703125],[113.34316406250005,-3.246484374999966],[113.03398437500002,-2.933496093749966],[112.97148437500002,-3.187109375000034],[112.75800781250004,-3.322167968750009],[112.60029296875004,-3.400488281249977],[112.28496093750002,-3.32099609375004],[111.85810546875004,-3.551855468750006],[111.82304687500007,-3.057226562499949],[111.69472656250005,-2.88945312499996],[110.93007812500005,-3.071093750000017],[110.82968750000012,-2.9951171875],[110.89931640625,-2.908593749999952],[110.703125,-3.020898437500009],[110.57402343750007,-2.89140625],[110.25605468750004,-2.966113281249946],[110.09658203125,-2.001367187499966],[109.95986328125,-1.862792968749972],[109.98330078125,-1.274804687499994],[109.78740234375007,-1.011328124999963],[109.25878906250003,-0.807421874999989],[109.37275390625004,-0.638183593749972],[109.12109375000003,-0.39091796874996],[109.2575195312501,0.031152343750051],[108.94453125000004,0.355664062499997],[108.91679687500007,0.912646484375045],[108.95859375000006,1.134619140624963],[109.1315429687501,1.253857421875011],[109.01025390624997,1.239648437500051],[109.07587890625004,1.495898437500031],[109.37851562500006,1.922705078125034],[109.62890625000003,2.027539062499983],[109.53896484375,1.89619140625004],[109.65400390625004,1.614892578125023],[110.50576171875005,0.861962890625023],[111.10136718750002,1.050537109374986],[111.80898437500005,1.011669921874969],[112.078515625,1.143359374999974],[112.1857421875001,1.4390625],[112.47617187500006,1.559082031250028],[112.94296875000006,1.566992187500034],[113.00654296875004,1.433886718750003],[113.6222656250001,1.2359375],[113.90234375000003,1.434277343749997],[114.5125,1.452001953124963],[114.83056640625003,1.980029296874989],[114.78642578125002,2.250488281250014],[115.1791015625,2.523193359374972],[115.08076171875004,2.63422851562504],[115.117578125,2.89487304687502],[115.24697265625005,3.025927734374989],[115.45439453125002,3.034326171875009],[115.67880859375006,4.193017578124994],[115.86074218750005,4.348046875000037],[116.51474609375006,4.370800781249969],[117.10058593750003,4.337060546875023],[117.5744140625001,4.17060546875004]]],[[[126.81660156250004,4.033496093750003],[126.70449218750005,4.070996093749997],[126.81357421875006,4.258496093750011],[126.72207031250005,4.344189453124969],[126.75732421874997,4.547900390624989],[126.9210937500001,4.291015624999972],[126.81660156250004,4.033496093750003]]],[[[96.49257812500005,5.229345703124991],[97.54716796875002,5.205859375],[98.2484375,4.41455078125],[98.3073242187501,4.09287109375002],[99.73232421875005,3.183056640625026],[100.523828125,2.18916015625004],[100.88789062500004,1.948242187499986],[100.82822265625012,2.242578125],[101.04619140625002,2.257470703125023],[101.47666015625006,1.693066406250054],[102.019921875,1.442138671875],[102.38994140625007,0.84199218750004],[103.03183593750006,0.57890625],[103.0075195312501,0.415332031249974],[102.55,0.216455078124966],[103.33896484375012,0.513720703125045],[103.67265625000007,0.288916015624977],[103.78671875000012,0.046972656249991],[103.42851562500007,-0.19179687499998],[103.40517578125005,-0.36220703124998],[103.5091796875,-0.465527343749969],[103.43857421875006,-0.575585937500009],[103.72109375,-0.886718749999986],[104.36054687500004,-1.038378906249974],[104.51591796875002,-1.81943359375002],[104.84521484375003,-2.092968749999969],[104.65078125000005,-2.595214843749972],[104.97080078125012,-2.370898437500017],[105.39697265624997,-2.380175781249946],[106.0443359375,-3.10625],[105.84375,-3.61367187499998],[105.93046875000007,-3.833007812499986],[105.83144531250005,-4.16289062499996],[105.88720703124997,-5.009570312499974],[105.74833984375007,-5.818261718749966],[105.34941406250007,-5.549511718750011],[105.08134765625002,-5.74550781249998],[104.63955078125005,-5.520410156250037],[104.68398437500005,-5.89267578125002],[104.60156249999997,-5.90458984374996],[103.8314453125,-5.079589843750028],[102.53769531250006,-4.152148437499989],[102.12753906250006,-3.599218749999963],[101.57861328124997,-3.166992187500014],[100.88955078125,-2.248535156249957],[100.85527343750002,-1.934179687499949],[100.30820312500006,-0.82666015625],[99.66982421875005,0.045068359375037],[99.15917968749997,0.351757812499997],[98.59531250000006,1.864599609375006],[97.70078125000006,2.358544921875009],[97.59082031249997,2.846582031250037],[97.3913085937501,2.975292968749969],[96.9689453125001,3.575146484374969],[96.44472656250005,3.81630859374998],[95.57861328125003,4.661962890625048],[95.20664062500006,5.284033203125034],[95.22783203125002,5.564794921875034],[95.62890625000003,5.609082031249997],[96.13330078125003,5.294287109374991],[96.49257812500005,5.229345703124991]]]]},"properties":{"name":"Indonesia","childNum":107}},{"geometry":{"type":"Polygon","coordinates":[[[-4.412060546874983,54.185351562499996],[-4.785351562499983,54.073046875],[-4.424707031249994,54.407177734375],[-4.412060546874983,54.185351562499996]]]},"properties":{"name":"Isle of Man","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[75.32221348233018,32.28516356678968],[75.62496871116024,32.28516356678968],[75.73585997688717,32.78417426256088],[76.32728006076415,32.87658365066666],[76.62299010270264,33.32014871357439],[77.06655516561037,33.301666835953235],[77.71342088235082,32.6917648744551],[78.10154031239509,32.87658365066666],[78.49194250885338,32.53122786149202],[78.38964843749997,32.51987304687498],[78.41748046874997,32.466699218749994],[78.4552734375001,32.30034179687502],[78.49589843750002,32.21577148437504],[78.72558593750009,31.983789062500023],[78.71972656250009,31.887646484374983],[78.69345703125006,31.740380859374994],[78.7550781250001,31.55029296875],[78.74355468750005,31.323779296875017],[79.10712890625004,31.402636718750102],[79.38847656250013,31.064208984375085],[79.66425781250004,30.96523437499999],[79.92451171875004,30.888769531250034],[80.20712890625006,30.683740234375023],[80.19121093750002,30.56840820312496],[80.87353515625003,30.290576171875045],[80.98544921875006,30.23710937499999],[81.01025390625014,30.164501953125097],[80.96611328125002,30.180029296875063],[80.90761718750005,30.171923828125017],[80.84814453125009,30.139746093750034],[80.81992187500012,30.119335937499955],[80.68408203125014,29.994335937500068],[80.54902343750015,29.899804687499994],[80.40185546875003,29.730273437500102],[80.31689453125014,29.572070312500017],[80.25488281250009,29.423339843750114],[80.25595703125006,29.318017578125136],[80.23300781250006,29.194628906250045],[80.16953125000012,29.124316406250102],[80.13046875000006,29.100390625000045],[80.08457031249995,28.994189453125074],[80.05166015625,28.870312500000068],[80.07070312500005,28.830175781250063],[80.22656250000003,28.723339843750125],[80.32480468750012,28.66640625000008],[80.41855468749995,28.61201171875001],[80.47910156250012,28.604882812499994],[80.49580078125015,28.635791015625074],[80.51787109375002,28.665185546875023],[80.58701171875006,28.64960937500004],[81.16894531250014,28.335009765625074],[81.85263671875018,27.867089843750136],[81.89687500000011,27.87446289062504],[81.94521484375005,27.89926757812495],[81.98769531250016,27.91376953125004],[82.03701171875,27.90058593750004],[82.11191406250006,27.86494140625004],[82.28769531250018,27.756542968749983],[82.45136718750004,27.671826171874955],[82.62988281249997,27.687060546875045],[82.67734375000006,27.67343749999995],[82.71083984375005,27.596679687500114],[82.73339843750003,27.518994140625097],[83.28974609375004,27.370996093750136],[83.36943359375002,27.410253906249977],[83.38398437500004,27.444824218750085],[83.44716796875011,27.46533203125],[83.55166015625011,27.456347656249932],[83.74697265625011,27.395947265625068],[83.8288085937501,27.377832031250108],[84.09101562499993,27.491357421875136],[84.22978515625007,27.427832031250006],[84.48085937500005,27.348193359375102],[84.61015625000002,27.298681640624977],[84.64072265625012,27.249853515624977],[84.65478515625014,27.20366210937499],[84.65380859375009,27.09169921875008],[84.68535156250013,27.041015625000057],[85.19179687500011,26.766552734375097],[85.29296875000009,26.741015625000045],[85.56845703125012,26.839843750000114],[85.64843749999997,26.829003906250023],[85.69990234375004,26.781640624999966],[85.73730468750003,26.639746093750034],[85.79453125000006,26.60415039062505],[86.00732421875009,26.64936523437504],[86.70136718750015,26.435058593750057],[87.01640625000002,26.555419921875085],[87.2874023437499,26.360302734375125],[87.41357421875014,26.42294921875009],[87.84921875000006,26.43691406250008],[87.99511718750014,26.38237304687499],[88.02695312500023,26.395019531250085],[88.05488281250004,26.43002929687492],[88.11152343750004,26.58642578125],[88.1615234375,26.724804687500125],[88.15722656250009,26.807324218750068],[88.1110351562501,26.928466796875057],[87.99316406250009,27.086083984374994],[87.984375,27.133935546874994],[88.14697265625014,27.749218750000097],[88.15029296875011,27.843310546875074],[88.10976562500005,27.87060546874997],[88.10898437499995,27.93300781250005],[88.14111328125003,27.948925781250097],[88.27519531250013,27.96884765625009],[88.42597656250015,28.011669921875097],[88.57792968750002,28.093359375000034],[88.80371093750003,28.006933593750034],[88.74902343749997,27.521875000000136],[88.7648437500001,27.429882812500068],[88.83251953125003,27.362841796875074],[88.89140625000002,27.316064453125136],[88.88164062500007,27.29746093750009],[88.76035156250006,27.21811523437509],[88.73876953125009,27.175585937499932],[88.85761718750015,26.961474609375017],[89.14824218750002,26.816162109375085],[89.33212890625018,26.848632812500114],[89.58613281250004,26.778955078125136],[89.60996093750012,26.719433593750097],[89.71093750000009,26.713916015625045],[89.76386718750004,26.7015625],[89.94316406250013,26.723925781249932],[90.12294921875011,26.754589843749983],[90.20605468749997,26.847509765625063],[90.34589843750004,26.890332031250097],[90.73964843750005,26.771679687500068],[91.2865234375,26.78994140625008],[91.42675781249997,26.867089843749966],[91.45585937500013,26.866894531250125],[91.51757812500009,26.807324218750068],[91.67158203124993,26.80200195312503],[91.84208984375013,26.852978515625125],[91.94375,26.860839843750114],[91.99833984375013,26.85498046875],[92.04970703125016,26.87485351562495],[92.73155507489682,26.833697862861648],[93.30975376159499,26.784950522650554],[93.61047043679247,27.32239435188504],[94.06979001484449,27.589407158584788],[95.10800937321915,27.749636881153737],[95.74000740838363,28.116850432722256],[96.19577594042592,28.04291597700983],[96.96279296875,27.698291015625017],[96.88359375000013,27.514843750000125],[96.90195312500012,27.43959960937508],[97.10371093749993,27.163330078125114],[97.10205078125003,27.115429687500125],[96.95341796875013,27.13330078125003],[96.79785156249997,27.29619140624999],[96.19082031250005,27.26127929687499],[95.20146484375007,26.641406250000017],[95.05976562500015,26.473974609375006],[95.06894531250006,26.191113281250097],[95.10839843750014,26.091406250000034],[95.12929687500011,26.070410156250034],[95.13242187500006,26.041259765624943],[94.99199218750002,25.77045898437504],[94.66777343750007,25.458886718749966],[94.55302734375013,25.215722656249994],[94.70371093750012,25.097851562499955],[94.49316406250003,24.637646484374983],[94.37724609375002,24.473730468750006],[94.29306640625012,24.321875],[94.07480468750006,23.8720703125],[93.68339843750007,24.00654296875004],[93.45214843750003,23.987402343750034],[93.32626953125006,24.064208984375057],[93.36601562500007,23.132519531249955],[93.34941406250007,23.08496093750003],[93.20390625000002,23.03701171875005],[93.07871093750018,22.718212890625097],[93.16201171875,22.360205078125006],[93.07060546875002,22.20942382812501],[92.96455078125015,22.003759765625034],[92.90947265625013,21.988916015625023],[92.85429687500002,22.010156250000108],[92.77138671875,22.104785156250017],[92.68896484375009,22.130957031250006],[92.63037109375014,22.011328124999977],[92.57490234374993,21.97807617187496],[92.5612304687501,22.04804687500001],[92.49140625000004,22.685400390625006],[92.46445312500006,22.734423828125045],[92.36162109375002,22.929003906250074],[92.33378906250002,23.242382812499955],[92.24609375000003,23.68359374999997],[92.04404296875006,23.677783203125017],[91.97851562500003,23.691992187500063],[91.92958984375011,23.685986328125097],[91.92949218750019,23.598242187499977],[91.93789062500011,23.504687500000102],[91.75419921875013,23.28730468750004],[91.75097656250003,23.053515625000017],[91.55351562500013,22.991552734375006],[91.43623046875004,23.19990234375001],[91.359375,23.06835937500003],[91.16044921875019,23.660644531250085],[91.35019531250012,24.06049804687501],[91.72656250000003,24.20507812499997],[91.84619140624997,24.175292968749943],[92.06416015625004,24.374365234375006],[92.11748046875002,24.493945312500017],[92.22666015625012,24.77099609374997],[92.22832031250002,24.881347656250085],[92.2512695312499,24.895068359375045],[92.38496093750004,24.848779296875023],[92.46835937500018,24.944140625000074],[92.04970703125016,25.16948242187499],[90.61308593750002,25.16772460937497],[90.11962890625003,25.21997070312497],[89.86630859375012,25.293164062499955],[89.81406250000006,25.305371093749955],[89.80087890625012,25.33613281250001],[89.82490234375004,25.56015625],[89.82294921875015,25.94140625000003],[89.67089843750009,26.213818359375125],[89.57275390625003,26.13232421875003],[89.54990234375006,26.00527343750008],[89.28925781250015,26.037597656250085],[89.01865234375012,26.410253906249977],[88.95195312500002,26.412109375],[88.97041015625004,26.250878906250023],[88.94072265625002,26.24536132812497],[88.68281250000004,26.291699218749983],[88.51826171875004,26.51777343750004],[88.36992187500002,26.56411132812508],[88.35146484375005,26.482568359374966],[88.38623046875003,26.471533203125034],[88.44042968749997,26.369482421875034],[88.33398437499997,26.257519531249955],[88.15078125000005,26.087158203125057],[88.1066406250001,25.841113281250045],[88.14746093749997,25.811425781250023],[88.50244140625009,25.53701171875008],[88.76914062500006,25.490478515625],[88.85478515625002,25.333544921875017],[88.94414062500002,25.290771484375],[88.92978515625012,25.222998046875063],[88.57382812500006,25.18789062499999],[88.45625,25.188427734375125],[88.37294921875016,24.961523437500063],[88.31337890625011,24.8818359375],[88.27949218750015,24.881933593750034],[88.18886718750016,24.920605468750097],[88.14980468750011,24.91464843749995],[88.04511718750015,24.71303710937508],[88.03027343750009,24.664453125000136],[88.02343750000003,24.627832031250136],[88.07910156250009,24.549902343750063],[88.14550781250003,24.485791015624955],[88.225,24.460644531249983],[88.3375,24.45385742187503],[88.49853515625003,24.34663085937504],[88.64228515625015,24.325976562500102],[88.72353515625011,24.27490234375],[88.7335937500001,24.230908203125097],[88.72656250000009,24.18623046875004],[88.71376953125016,24.069628906250102],[88.69980468750006,24.00253906249992],[88.56738281250009,23.674414062500034],[88.63574218749997,23.55],[88.69765625,23.493017578125034],[88.72441406250002,23.254980468750034],[88.89707031250018,23.21040039062501],[88.92812500000011,23.186621093749977],[88.89970703125002,22.843505859375057],[88.92070312500002,22.632031249999955],[89.05,22.274609374999983],[89.02792968750023,21.937207031249983],[88.94931640625018,21.937939453125125],[89.05166015625,21.654101562500045],[88.85751953125012,21.744677734375017],[88.74501953125011,21.584375],[88.74023437500003,22.005419921875017],[88.64160156250003,22.121972656250136],[88.58466796875015,21.659716796874932],[88.44599609375004,21.614257812500085],[88.28750000000016,21.758203125000108],[88.25371093750002,21.622314453124943],[88.0568359375001,21.694140625000017],[88.19628906249997,22.139550781249994],[87.94140625000003,22.374316406250045],[88.15927734375018,22.12172851562508],[87.82373046875003,21.727343750000045],[87.20068359375009,21.544873046874983],[86.95410156250014,21.365332031250006],[86.84228515625009,21.106347656249994],[86.97548828125005,20.70014648437501],[86.75039062500011,20.313232421875057],[86.37656250000006,20.006738281249966],[86.24521484375012,20.05302734374999],[86.27949218750021,19.919433593749943],[85.575,19.69291992187499],[85.496875,19.696923828125108],[85.50410156250004,19.887695312500057],[85.24863281250006,19.757666015625034],[85.18076171875018,19.59487304687508],[85.44160156249993,19.626562499999977],[84.77099609375009,19.125390625000023],[84.10410156250018,18.29267578125001],[82.35957031250004,17.09619140624997],[82.25878906250014,16.55986328124996],[81.76191406250015,16.32949218750008],[81.28613281249997,16.337060546875023],[80.97871093750004,15.758349609375074],[80.64658203125006,15.895019531250028],[80.29345703125014,15.710742187499989],[80.0534179687501,15.074023437499932],[80.17871093750003,14.478320312500074],[80.11171875000005,14.212207031250045],[80.30654296875016,13.485058593750054],[80.15625,13.713769531250108],[80.06210937500006,13.60625],[80.34238281250006,13.361328125000071],[80.22910156250018,12.690332031249966],[79.85849609375018,11.988769531250043],[79.69316406250007,11.312548828124946],[79.79902343750004,11.338671874999932],[79.84863281250009,11.196875],[79.83818359375002,10.322558593750045],[79.31455078125018,10.256689453124949],[78.93994140625009,9.565771484375063],[79.01992187500005,9.333349609374963],[79.41142578125002,9.192382812500014],[78.97958984375018,9.268554687500085],[78.42148437500006,9.105029296874989],[78.19248046874995,8.890869140625057],[78.06015625000006,8.384570312499932],[77.51757812500003,8.078320312500068],[77.06591796875003,8.315917968749986],[76.5534179687501,8.902783203124997],[76.32460937500016,9.452099609374997],[76.24238281250004,9.927099609374949],[76.37558593750006,9.539892578124935],[76.45878906250013,9.536230468750077],[76.34648437500002,9.922119140625],[76.19560546875002,10.086132812500026],[75.72382812500015,11.361767578125026],[74.94550781250004,12.56455078124992],[74.38222656250005,14.494726562500048],[73.94921875000014,15.074755859375088],[73.80078125000009,15.39697265625],[73.93193359375013,15.39697265625],[73.77177734375013,15.573046874999989],[73.83281250000013,15.659375],[73.67988281250015,15.708886718750136],[73.47607421875003,16.05424804687496],[72.87548828124997,18.642822265625114],[72.97207031250011,19.15332031250003],[72.8346679687501,18.975585937500057],[72.80302734375013,19.07929687500004],[72.81162109375,19.298925781250006],[72.98720703125,19.27744140625009],[72.78789062500013,19.362988281250097],[72.66777343750019,19.83095703125005],[72.89375,20.672753906250136],[72.81386718750011,21.117187500000085],[72.62382812500002,21.371972656250108],[72.73476562500016,21.470800781250006],[72.61328125000009,21.461816406250108],[73.1125,21.750439453125125],[72.54306640625,21.69658203124999],[72.70019531250003,21.971923828124943],[72.52226562500013,21.976220703125108],[72.55302734375007,22.159960937500074],[72.80917968749995,22.23330078125008],[72.18281250000015,22.26972656250004],[72.30644531250002,22.18920898437497],[72.27441406250009,22.089746093749966],[72.03720703125006,21.82304687499999],[72.2103515625,21.72822265625004],[72.25400390625006,21.531005859375],[72.01523437500012,21.155712890625097],[71.0246093750001,20.73886718750009],[70.71933593750006,20.740429687500068],[70.12734375,21.094677734375097],[68.96992187500021,22.29028320312497],[69.05166015625016,22.437304687500074],[69.27656250000004,22.285498046875063],[70.17724609375014,22.57275390624997],[70.48925781250009,23.08950195312508],[70.33945312500012,22.939746093749932],[69.66464843750006,22.759082031250074],[69.23593749999995,22.848535156250023],[68.64072265625006,23.189941406250114],[68.41748046875009,23.57148437500004],[68.7767578125,23.852099609375017],[68.23496093749995,23.596972656250074],[68.16503906250009,23.857324218749994],[68.28251953125013,23.927978515625],[68.38125000000016,23.950878906250068],[68.48867187500011,23.96723632812501],[68.5866210937501,23.966601562500074],[68.72412109375003,23.964697265625034],[68.72812500000012,24.265625],[68.73964843750016,24.291992187500085],[68.75898437499993,24.307226562500006],[68.78115234375011,24.313720703125085],[68.8,24.30908203125003],[68.82832031250004,24.26401367187509],[68.86347656250015,24.26650390625005],[68.90078125000011,24.29243164062501],[68.98457031250015,24.273095703124966],[69.05156250000013,24.28632812500001],[69.11953125000011,24.26865234374995],[69.23505859374993,24.268261718750068],[69.44345703124995,24.275390625000085],[69.55917968750006,24.273095703124966],[69.80517578125009,24.16523437500004],[70.0982421875,24.2875],[70.28906250000009,24.356298828125063],[70.54677734375,24.418310546875063],[70.56503906250006,24.385791015625017],[70.55585937500015,24.331103515625074],[70.57929687500015,24.279052734374943],[70.65947265625013,24.24609374999997],[70.71630859375009,24.237988281250097],[70.7672851562501,24.245410156250017],[70.80507812500011,24.26196289062503],[70.88623046875014,24.34375],[70.92812500000016,24.362353515625045],[70.98281250000011,24.361035156250125],[71.04404296875006,24.400097656250097],[71.04531250000005,24.42998046874996],[70.96982421875012,24.571875],[70.97636718750013,24.61875],[71.00234375000016,24.6539062499999],[71.04785156250003,24.687744140625085],[71.02070312500021,24.75766601562492],[70.95087890625015,24.89160156250003],[70.87773437500019,25.06298828124997],[70.65205078125004,25.422900390625102],[70.64843750000003,25.666943359375068],[70.5695312500001,25.705957031250023],[70.50585937500009,25.685302734375085],[70.44853515625013,25.681347656249983],[70.26464843750009,25.70654296874997],[70.10019531250006,25.91005859375005],[70.14921875000002,26.347558593749994],[70.11464843750016,26.548046874999983],[69.47001953125002,26.804443359375],[69.56796875,27.174609375000102],[69.89628906250007,27.473632812500085],[70.04980468750009,27.694726562500023],[70.14453125000003,27.849023437499994],[70.19394531250006,27.89487304687492],[70.24433593750004,27.934130859375102],[70.4037109375,28.025048828124994],[70.48857421875013,28.023144531250125],[70.62910156250015,27.937451171875068],[70.6916015625001,27.76899414062504],[70.79794921875012,27.709619140625023],[70.87490234375016,27.71445312499995],[71.18476562500004,27.831640625],[71.54296875000003,27.869873046875],[71.8703125000001,27.9625],[71.88886718750004,28.04746093749992],[71.94804687500002,28.177294921875102],[72.12851562500012,28.34633789062508],[72.29199218750003,28.69726562499997],[72.34189453125006,28.751904296875097],[72.90332031250003,29.02875976562501],[73.38164062500013,29.934375],[73.8091796875,30.093359375],[73.88652343750013,30.162011718750136],[73.93339843750002,30.222070312500108],[73.92460937500007,30.28164062499999],[73.88271484375,30.352148437499977],[73.89931640625,30.435351562500045],[74.00898437500004,30.519677734374994],[74.33935546875003,30.893554687499943],[74.38037109375003,30.89340820312509],[74.50976562500009,30.959667968750097],[74.63281250000014,31.034667968750114],[74.62578125000002,31.068750000000108],[74.61035156250009,31.112841796875045],[74.51767578125012,31.185595703124932],[74.53496093750007,31.261376953125108],[74.59394531249993,31.465380859375102],[74.58183593750013,31.523925781250114],[74.50996093750015,31.712939453125074],[74.52597656249995,31.765136718750057],[74.55556640625011,31.818554687500097],[74.63574218750003,31.889746093750034],[74.73945312500015,31.948828125],[75.07148437500015,32.08935546875003],[75.13876953125,32.10478515624999],[75.25410156250004,32.140332031250125],[75.33349609374997,32.279199218749994],[75.32221348233018,32.28516356678968]]]]},"properties":{"name":"India","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[72.49199218750002,-7.37744140625],[72.42910156250002,-7.435351562500003],[72.34970703125,-7.263378906250011],[72.447265625,-7.395703125000011],[72.44560546875002,-7.220410156250011],[72.49199218750002,-7.37744140625]]]},"properties":{"name":"Br. Indian Ocean Ter.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-9.948193359374926,53.91313476562499],[-10.265722656249949,53.977685546874994],[-9.99638671874996,54.00361328125004],[-9.948193359374926,53.91313476562499]]],[[[-6.218017578125,54.08872070312506],[-6.347607421874926,53.94130859375005],[-6.027392578124989,52.927099609375006],[-6.463183593749932,52.345361328124994],[-6.325,52.246679687500034],[-6.890234375,52.15922851562499],[-6.965771484374926,52.24951171875],[-8.057812499999926,51.82558593750005],[-8.4091796875,51.888769531250034],[-8.349121093749943,51.73930664062496],[-8.813427734374926,51.584912109374955],[-9.737304687499943,51.473730468750034],[-9.524902343750028,51.68110351562501],[-10.120751953124994,51.60068359375006],[-9.598828124999983,51.87441406250005],[-10.341064453124943,51.798925781250034],[-9.909667968749972,52.122949218749966],[-10.39023437499992,52.134912109374994],[-10.356689453125,52.20693359375002],[-9.772119140624937,52.250097656250034],[-9.90605468749996,52.403710937499966],[-9.632226562499937,52.54692382812502],[-8.783447265624943,52.679638671874955],[-8.990283203124989,52.755419921875045],[-9.175390624999949,52.634912109374994],[-9.916601562499977,52.56972656250005],[-9.46489257812496,52.82319335937498],[-9.299218749999966,53.09755859375002],[-8.930126953124983,53.207080078125045],[-9.51420898437496,53.23823242187498],[-10.091259765624926,53.41284179687503],[-10.116992187499932,53.548535156249955],[-9.720654296874926,53.6044921875],[-9.901611328124943,53.72719726562502],[-9.578222656249949,53.80541992187497],[-9.578857421875,53.879833984374955],[-9.9140625,53.863720703124955],[-9.856445312499972,54.095361328124994],[-10.092675781249966,54.15576171875003],[-10.056396484374943,54.25781250000006],[-8.545556640624994,54.24121093750003],[-8.623144531249977,54.346875],[-8.133447265624966,54.64082031250001],[-8.763916015624972,54.68120117187496],[-8.377294921874977,54.88945312500002],[-8.274609374999955,55.146289062500045],[-7.667089843749977,55.25649414062502],[-7.65874023437496,54.97094726562503],[-7.308789062500011,55.365820312500006],[-6.961669921874972,55.23789062500006],[-7.218652343749937,55.09199218749998],[-7.55039062499992,54.767968749999966],[-7.910595703124955,54.698339843750006],[-7.75439453125,54.59492187499998],[-8.118261718749977,54.41425781250004],[-7.606542968750006,54.14384765625002],[-7.324511718750017,54.13344726562502],[-7.007714843749937,54.40668945312501],[-6.649804687499937,54.05864257812496],[-6.218017578125,54.08872070312506]]]]},"properties":{"name":"Ireland","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[56.18798828125003,26.92114257812497],[55.95429687500004,26.70112304687501],[55.31152343749997,26.592626953125006],[55.76259765625005,26.81196289062504],[55.75761718750002,26.94765625000005],[56.279394531250006,26.952099609374983],[56.18798828125003,26.92114257812497]]],[[[46.1144531250001,38.877783203125034],[46.490625,38.90668945312498],[47.995898437500074,39.683935546875034],[48.322167968749994,39.39907226562502],[48.10439453125005,39.241113281249994],[48.292089843750006,39.01884765624999],[47.99648437499999,38.85375976562503],[48.59267578125005,38.41108398437498],[48.86875,38.43549804687498],[48.95996093750003,37.89013671875],[49.171191406250074,37.60058593749997],[50.13046875,37.407128906249994],[50.53320312499997,37.01367187500006],[51.11855468750005,36.742578124999966],[52.19013671875004,36.62172851562505],[53.76767578125006,36.93032226562502],[53.91542968750005,36.93032226562502],[53.67949218750002,36.853125],[53.970117187499994,36.818310546874955],[53.91416015625006,37.34355468750002],[54.6994140625001,37.47016601562498],[54.90009765625004,37.77792968750006],[55.38085937500003,38.051123046875034],[56.272070312500006,38.080419921875034],[56.440625,38.249414062499994],[57.1935546875001,38.216406250000034],[57.35371093750004,37.97333984374998],[58.261621093749994,37.665820312500045],[58.81542968750003,37.683496093749994],[59.30175781249997,37.51064453125005],[59.454980468749994,37.25283203125002],[60.06279296875002,36.962890625],[60.34130859375003,36.63764648437501],[61.11962890625003,36.64257812500003],[61.212011718750006,36.190527343750034],[61.15292968750006,35.97675781250001],[61.25214843750004,35.86762695312498],[61.26201171875002,35.61958007812498],[61.28183593750006,35.55341796875001],[61.2785156250001,35.513769531250006],[61.245507812499994,35.47407226562501],[61.18925781250002,35.31201171875003],[61.1,35.272314453125034],[61.08007812499997,34.85561523437505],[60.95117187499997,34.65385742187499],[60.91474609375004,34.63398437500001],[60.80234375000006,34.55463867187501],[60.73945312500004,34.544726562500045],[60.7262695312501,34.51826171874998],[60.736132812500074,34.491796875],[60.76259765625005,34.475244140624994],[60.88945312500002,34.31943359375006],[60.642675781250006,34.30717773437496],[60.48574218750005,34.09477539062502],[60.4859375,33.7119140625],[60.57382812500006,33.58833007812498],[60.91699218749997,33.505224609375006],[60.56054687499997,33.13784179687502],[60.5765625,32.99487304687503],[60.71044921874997,32.6],[60.82929687500004,32.24941406250005],[60.82724609375006,32.16796874999997],[60.789941406249994,31.98710937499999],[60.7875,31.87719726562497],[60.791601562500006,31.660595703124983],[60.82070312499999,31.495166015625045],[60.854101562500006,31.483251953125006],[61.110742187499994,31.45112304687504],[61.346484375000074,31.42163085937497],[61.66015625000003,31.382421874999977],[61.7550781250001,31.285302734374994],[61.814257812500074,31.072558593750017],[61.810839843750074,30.913281249999983],[61.78417968749997,30.831933593750023],[61.55947265625005,30.59936523437497],[61.33164062500006,30.36372070312501],[60.84335937500006,29.85869140624999],[61.03417968750003,29.663427734374977],[61.15214843750002,29.542724609375],[61.8898437500001,28.546533203124994],[62.7625,28.202050781249994],[62.782324218750006,27.800537109375],[62.75273437500002,27.265625],[63.16679687500002,27.25249023437499],[63.19609375000002,27.243945312500017],[63.25625,27.20791015625005],[63.30156250000002,27.151464843750006],[63.30517578124997,27.124560546875017],[63.242089843749994,27.07768554687499],[63.25039062499999,26.879248046875063],[63.24160156250005,26.86474609375003],[63.18613281250006,26.83759765625001],[63.168066406250006,26.66557617187496],[62.31230468750002,26.490869140624994],[62.23935546875006,26.357031249999977],[62.12597656249997,26.368994140625034],[61.842382812500006,26.225927734375006],[61.809960937499994,26.165283203125],[61.78076171874997,25.99584960937503],[61.75439453125003,25.843359375000063],[61.737695312499994,25.821093750000045],[61.66865234375004,25.76899414062501],[61.6618164062501,25.751269531250017],[61.67138671874997,25.69238281250003],[61.64013671875003,25.584619140624994],[61.61542968750004,25.28613281250003],[61.58789062499997,25.20234375000001],[61.533105468749994,25.195507812499955],[61.41220703125006,25.102099609375017],[60.66386718750002,25.28222656250003],[60.51054687500002,25.437060546875045],[60.40019531250002,25.311572265625074],[59.45605468749997,25.481494140625045],[59.0460937500001,25.417285156250017],[58.79785156249997,25.554589843750023],[57.334570312500006,25.791552734375074],[57.03603515625005,26.80068359375005],[56.728125,27.127685546875057],[56.118066406249994,27.14311523437499],[54.75927734375003,26.50507812500004],[54.24707031250003,26.696630859374977],[53.70576171875004,26.72558593750003],[52.69160156250004,27.323388671875023],[52.475878906250074,27.61650390624999],[52.03076171874997,27.824414062499955],[51.58906250000004,27.864208984374983],[51.27890625,28.13134765624997],[51.06201171874997,28.72612304687499],[50.86699218750002,28.870166015625017],[50.87578125000002,29.062695312499983],[50.67519531250005,29.146582031250034],[50.64960937500004,29.420068359374966],[50.16894531250003,29.921240234375034],[50.071582031250074,30.198535156250017],[49.55488281250004,30.028955078125023],[49.028125,30.333447265624983],[49.224511718749994,30.472314453125023],[49.00195312500003,30.506542968749983],[48.91914062500004,30.120898437500017],[48.54648437500006,29.962353515624955],[48.47851562499997,30.003808593749966],[48.43457031249997,30.03759765625],[48.33105468749997,30.28544921874996],[48.01494140625002,30.465625],[48.01064453125005,30.989794921875017],[47.679492187500074,31.00239257812501],[47.679492187500074,31.400585937499955],[47.75390624999997,31.601367187500017],[47.829980468749994,31.79443359375],[47.71455078125004,31.936425781249966],[47.5915039062501,32.087988281250034],[47.51191406250004,32.15083007812504],[47.3297851562501,32.45551757812501],[47.28515625000003,32.474023437499966],[47.121386718750074,32.46660156249996],[46.569921875,32.83393554687501],[46.37705078125006,32.92924804687499],[46.29824218750005,32.95024414062502],[46.11279296875003,32.957666015624994],[46.09306640625002,32.97587890624999],[46.08046875,33.028222656249994],[46.0807617187501,33.08652343750006],[46.14111328125003,33.174414062500034],[46.145898437499994,33.229638671874994],[46.01992187500005,33.41572265624998],[45.39707031250006,33.970849609374994],[45.542773437500074,34.21552734375004],[45.459375,34.470361328124994],[45.50078125000002,34.58159179687499],[45.6375,34.573828125],[45.678125,34.798437500000034],[45.92089843750003,35.02851562500001],[46.04179687500002,35.08017578125006],[46.13378906249997,35.127636718749955],[46.15468750000005,35.19672851562498],[46.112109375000074,35.32167968750005],[45.97109375000005,35.524169921875],[46.03740234375002,35.67314453124999],[46.180957031250074,35.71137695312504],[46.2625,35.74414062500006],[46.27343749999997,35.77324218750002],[46.16748046874997,35.820556640625],[45.77636718749997,35.82182617187499],[45.36162109375002,36.015332031249955],[45.241113281249994,36.35595703125],[45.20654296874997,36.397167968749955],[45.15527343749997,36.407373046874994],[45.11240234375006,36.409277343750034],[45.053125,36.47163085937501],[44.76513671875003,37.142431640625006],[44.79414062500004,37.290380859375034],[44.574023437500074,37.435400390625006],[44.589941406250006,37.710351562499966],[44.21132812499999,37.908056640625006],[44.4499023437501,38.33422851562506],[44.2985351562501,38.38627929687499],[44.27167968750004,38.83603515625006],[44.02324218750002,39.37744140625006],[44.3893554687501,39.422119140625],[44.58710937500004,39.76855468750006],[44.81718750000002,39.65043945312496],[45.4796875000001,39.00625],[46.1144531250001,38.877783203125034]]]]},"properties":{"name":"Iran","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[45.6375,34.573828125],[45.50078125000002,34.581591796874996],[45.459375,34.470361328124994],[45.54277343750002,34.21552734375],[45.397070312500006,33.970849609374994],[46.01992187500002,33.41572265625],[46.14589843750002,33.229638671874994],[46.14111328125,33.1744140625],[46.08076171875001,33.0865234375],[46.08046875000002,33.028222656249994],[46.09306640625002,32.975878906249996],[46.11279296875,32.957666015624994],[46.377050781250006,32.929248046874996],[46.569921875,32.833935546875],[47.12138671875002,32.466601562499996],[47.28515625,32.474023437499994],[47.32978515625001,32.455517578125],[47.51191406250001,32.150830078125],[47.59150390625001,32.08798828125],[47.71455078125001,31.936425781249994],[47.82998046875002,31.79443359375],[47.75390625,31.601367187499996],[47.67949218750002,31.400585937499997],[47.67949218750002,31.002392578124997],[48.01064453125002,30.989794921874996],[48.01494140625002,30.465625],[48.3310546875,30.285449218749996],[48.546484375,29.962353515624997],[48.454199218750006,29.9384765625],[48.354589843750006,29.956738281249997],[48.141699218750006,30.040917968749994],[47.982519531250006,30.011328125],[47.97871093750001,29.9828125],[47.64375,30.097314453124994],[47.14824218750002,30.0009765625],[46.905859375,29.5375],[46.76933593750002,29.347460937499996],[46.69375,29.259667968749994],[46.53144531250001,29.096240234374996],[46.3564453125,29.063671875],[44.71650390625001,29.193603515625],[43.77373046875002,29.84921875],[42.07441406250001,31.080371093749996],[40.47890625000002,31.893359375],[40.36933593750001,31.93896484375],[40.02783203125,31.995019531249994],[39.7041015625,32.042529296874996],[39.14541015625002,32.12451171875],[39.29277343750002,32.24384765625],[39.24746093750002,32.350976562499994],[39.04140625000002,32.3056640625],[38.773535156250006,33.372216796874994],[40.98701171875001,34.429052734375],[41.19472656250002,34.768994140625],[41.354101562500006,35.640429687499996],[41.295996093750006,36.383349609374996],[41.41679687500002,36.5146484375],[41.78857421875,36.59716796875],[42.358984375,37.10859375],[42.45585937500002,37.128710937499996],[42.63544921875001,37.249267578125],[42.74111328125002,37.3619140625],[42.77460937500001,37.371875],[42.869140625,37.334912109375],[42.936621093750006,37.324755859374996],[43.09248046875001,37.3673828125],[43.67578125,37.22724609375],[43.83642578125,37.223535156249994],[44.01318359375,37.313525390624996],[44.11445312500001,37.30185546875],[44.15625,37.282958984375],[44.19179687500002,37.249853515625],[44.20839843750002,37.20263671875],[44.20166015625,37.051806640624996],[44.281835937500006,36.97802734375],[44.32558593750002,37.0107421875],[44.401953125,37.058496093749994],[44.60595703125,37.176025390625],[44.66933593750002,37.173583984375],[44.73095703125,37.165283203125],[44.76513671875,37.142431640625],[45.053125,36.471630859375],[45.112402343750006,36.40927734375],[45.1552734375,36.407373046874994],[45.20654296875,36.39716796875],[45.24111328125002,36.35595703125],[45.36162109375002,36.01533203125],[45.7763671875,35.821826171874996],[46.16748046875,35.820556640625],[46.2734375,35.773242187499996],[46.2625,35.744140625],[46.18095703125002,35.711376953125],[46.03740234375002,35.673144531249996],[45.97109375000002,35.524169921875],[46.11210937500002,35.321679687499994],[46.15468750000002,35.196728515625],[46.1337890625,35.12763671875],[46.04179687500002,35.08017578125],[45.9208984375,35.028515625],[45.678125,34.7984375],[45.6375,34.573828125]]]},"properties":{"name":"Iraq","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-15.543115234374994,66.228515625],[-14.595849609374994,66.38154296875],[-15.117382812499983,66.125634765625],[-14.698193359374983,66.02021484375],[-14.827099609374983,65.7642578125],[-14.391845703125,65.78740234375],[-14.473388671875,65.575341796875],[-14.166943359374983,65.64228515625],[-13.617871093749983,65.5193359375],[-13.804785156249977,65.35478515625],[-13.599316406249983,65.0359375],[-14.04443359375,64.74189453125],[-14.385107421874977,64.74521484375],[-14.475390624999989,64.493994140625],[-14.927392578124994,64.319677734375],[-15.832910156249994,64.17666015625],[-16.640332031249983,63.865478515625],[-17.81572265624999,63.71298828125],[-17.946923828124994,63.5357421875],[-18.65361328124999,63.406689453125],[-20.198144531249994,63.555810546874994],[-20.494042968749994,63.687353515625],[-20.413964843749994,63.80517578125],[-20.65092773437499,63.73740234375],[-21.15239257812499,63.94453125],[-22.652197265624977,63.827734375],[-22.701171875,64.083203125],[-22.51005859374999,63.991455078125],[-22.187597656249977,64.039208984375],[-21.463330078124983,64.379150390625],[-22.053369140624994,64.313916015625],[-21.950341796874994,64.514990234375],[-21.590625,64.6263671875],[-22.10600585937499,64.533056640625],[-22.467041015625,64.794970703125],[-23.818994140624994,64.73916015625],[-24.02617187499999,64.863427734375],[-22.7880859375,65.046484375],[-21.89213867187499,65.048779296875],[-21.779980468749983,65.1876953125],[-22.50908203124999,65.19677734375],[-21.844384765624994,65.44736328125],[-22.902490234374994,65.58046875],[-23.89990234375,65.407568359375],[-24.475683593749977,65.5251953125],[-24.248925781249994,65.614990234375],[-23.85673828124999,65.53837890625],[-24.092626953124977,65.77646484375],[-23.615917968749983,65.67958984375],[-23.285351562499983,65.75],[-23.832617187499977,65.84921875],[-23.52495117187499,65.880029296875],[-23.77734375,66.017578125],[-23.434472656249994,66.02421875],[-23.452539062499994,66.181005859375],[-23.018994140624983,65.98212890625],[-22.659863281249983,66.025927734375],[-22.61601562499999,65.86748046875],[-22.44169921874999,65.90830078125],[-22.4453125,66.07001953125],[-22.947900390624994,66.212744140625],[-22.48442382812499,66.26630859375],[-23.116943359375,66.338720703125],[-22.9443359375,66.429443359375],[-22.426123046874977,66.430126953125],[-21.406884765624994,66.0255859375],[-21.374902343749994,65.74189453125],[-21.658447265625,65.723583984375],[-21.12968749999999,65.2666015625],[-20.804345703124994,65.63642578125],[-20.454833984375,65.571044921875],[-20.20751953125,66.10009765625],[-19.489697265624983,65.76806640625],[-19.382958984374994,66.07568359375],[-18.845898437499983,66.183935546875],[-18.141943359374977,65.73408203125],[-18.29716796874999,66.157421875],[-17.906982421875,66.143310546875],[-17.550439453124994,65.964404296875],[-17.153027343749983,66.20283203125],[-16.838037109374994,66.125244140625],[-16.485009765624994,66.195947265625],[-16.540673828124994,66.446728515625],[-16.24931640624999,66.522900390625],[-15.985400390624989,66.5146484375],[-15.543115234374994,66.228515625]]]},"properties":{"name":"Iceland","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[35.78730468750001,32.734912109374996],[35.572851562500006,32.640869140625],[35.56904296875001,32.619873046875],[35.55146484375001,32.3955078125],[35.484375,32.401660156249996],[35.40263671875002,32.450634765625],[35.38671875,32.493017578125],[35.303808593750006,32.512939453125],[35.19326171875002,32.534423828125],[35.065039062500006,32.46044921875],[35.01054687500002,32.338183593749996],[34.95595703125002,32.1609375],[34.98974609375,31.91328125],[34.97832031250002,31.86640625],[34.95380859375001,31.841259765624997],[34.96113281250001,31.82333984375],[34.983007812500006,31.81679687499999],[35.05322265625,31.837939453124996],[35.12714843750001,31.816748046875],[35.203710937500006,31.75],[34.95097656250002,31.602294921875],[34.88046875,31.3681640625],[35.45058593750002,31.479296875],[34.97343750000002,29.555029296875],[34.904296875,29.47734375],[34.24531250000001,31.208300781249996],[34.34833984375001,31.292919921874997],[34.350195312500006,31.362744140624997],[34.52558593750001,31.525634765625],[34.47734375000002,31.584863281249994],[34.483984375,31.59228515625],[34.67841796875001,31.895703125],[35.10859375000001,33.08369140625],[35.411230468750006,33.07568359375],[35.869140625,33.43173828125],[35.91347656250002,32.94960937499999],[35.78730468750001,32.734912109374996]]]},"properties":{"name":"Israel","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[15.576562500000051,38.220312500000034],[15.099511718750023,37.45859375],[15.295703125000017,37.05517578124997],[15.112597656250017,36.687841796875006],[14.501855468750023,36.798681640625034],[14.142968750000023,37.103662109374994],[13.90546875000004,37.10063476562502],[13.169921875000028,37.47929687499996],[12.640234375000034,37.594335937500034],[12.435546874999972,37.819775390624955],[12.734375,38.18305664062498],[12.902734375000023,38.03486328124998],[13.291113281250034,38.19145507812502],[13.788867187499989,37.981201171875],[15.11875,38.15273437500002],[15.498730468750011,38.290869140625006],[15.576562500000051,38.220312500000034]]],[[[8.478906250000023,39.067529296874966],[8.421484375000034,38.968652343749994],[8.366796875,39.115917968749955],[8.478906250000023,39.067529296874966]]],[[[8.28603515625008,41.03984375],[8.205664062500034,40.99746093750005],[8.320214843750023,41.121875],[8.28603515625008,41.03984375]]],[[[9.632031250000011,40.88203124999998],[9.805273437500063,40.499560546875045],[9.642968750000023,40.268408203125006],[9.5625,39.16601562500006],[9.056347656250068,39.23916015625002],[8.966601562500074,38.963720703125034],[8.648535156250034,38.92656250000002],[8.418164062500068,39.205712890624966],[8.547753906250023,39.83920898437506],[8.4078125,39.91723632812497],[8.471289062500063,40.29267578124998],[8.189941406250028,40.651611328125],[8.22421875,40.91333007812503],[8.571875,40.85019531250006],[9.228417968750023,41.257080078125],[9.615332031249977,41.01728515624998],[9.632031250000011,40.88203124999998]]],[[[10.395117187500034,42.85815429687503],[10.419335937499994,42.71318359374999],[10.13125,42.742041015625006],[10.395117187500034,42.85815429687503]]],[[[13.420996093750006,46.212304687499994],[13.63251953125004,46.17705078125002],[13.634960937499983,46.15776367187499],[13.61660156250008,46.133105468750045],[13.54804687500004,46.08911132812503],[13.486425781250034,46.03955078124997],[13.480273437500017,46.00922851562501],[13.487695312500023,45.987109375000045],[13.509179687500051,45.973779296874994],[13.6005859375,45.97978515624996],[13.663476562500023,45.7919921875],[13.831152343750006,45.680419921875],[13.719824218750063,45.58759765625001],[13.628320312500051,45.77094726562498],[13.206347656250074,45.771386718749966],[12.27431640625008,45.44604492187503],[12.225683593750034,45.24150390625002],[12.523437500000028,44.96796874999998],[12.248339843750045,44.72250976562498],[12.396289062500074,44.223876953125],[13.56416015625004,43.57128906250003],[14.010449218750011,42.68955078125006],[14.54072265625004,42.24428710937502],[15.16875,41.93403320312498],[16.164648437500034,41.89619140624998],[15.900488281250034,41.51206054687498],[17.954980468749994,40.65517578125002],[18.460644531249983,40.221044921875034],[18.34375,39.82138671874998],[18.077929687500017,39.93696289062498],[17.865039062500074,40.28017578125002],[17.395800781250045,40.34023437499999],[17.179980468750045,40.50278320312498],[16.92822265625,40.45805664062502],[16.521875,39.74755859375003],[17.114550781250017,39.38061523437497],[17.174609375000017,38.998095703125045],[16.61669921875003,38.800146484375034],[16.54560546875001,38.40908203125002],[16.05683593750001,37.941845703124955],[15.72451171875008,37.93911132812502],[15.645800781250017,38.034228515625045],[15.87890625,38.61391601562502],[16.19677734375,38.759228515624955],[16.20996093750003,38.94111328124998],[15.692773437499994,39.99018554687501],[14.95087890625004,40.23901367187497],[14.94765625000008,40.469335937500006],[14.765722656250063,40.66840820312498],[14.339941406250006,40.59882812500001],[14.460546875000063,40.72871093750001],[14.04433593750008,40.81225585937506],[13.733398437500057,41.23564453124999],[13.088671875000074,41.243847656249955],[12.630859374999972,41.469677734374955],[11.637304687500063,42.287548828124955],[11.141210937499977,42.38989257812503],[11.167773437500074,42.53515625000006],[10.708398437500023,42.93632812499999],[10.514843750000011,42.96752929687503],[10.188085937500063,43.947509765625],[8.76582031250004,44.42231445312501],[8.004980468750006,43.87675781249999],[7.4931640625,43.767138671875045],[7.637207031250057,44.16484375],[7.318554687500068,44.13798828125002],[6.900195312499989,44.33574218749996],[6.99267578125,44.82729492187502],[6.634765625000028,45.06816406249996],[7.07832031250004,45.23994140624998],[7.146386718750051,45.381738281249994],[6.790917968750023,45.740869140624966],[7.021093750000034,45.92578124999997],[7.055761718749977,45.90380859375003],[7.129003906249977,45.88041992187499],[7.327929687500017,45.912353515625],[7.9931640625,46.01591796874996],[8.081542968750057,46.25600585937502],[8.231933593750057,46.341210937499966],[8.29853515625004,46.403417968750034],[8.370703125,46.44511718750002],[8.458398437500023,46.24589843750002],[8.818554687500011,46.0771484375],[8.826757812500006,46.06103515625],[8.77802734375004,45.996191406250034],[8.953710937500034,45.83002929687501],[9.023730468750074,45.845703125],[9.203417968750017,46.21923828125],[9.304394531250068,46.49555664062498],[9.399316406250023,46.480664062499955],[9.427636718750023,46.48232421875002],[9.528710937500023,46.306201171875045],[9.57958984375,46.29609375000001],[9.639453125000017,46.29589843749997],[9.78779296875004,46.34604492187498],[9.884472656250011,46.36777343750006],[9.939257812500074,46.36181640625],[10.041015625000028,46.23808593750002],[10.08056640625,46.22797851562501],[10.128320312500051,46.238232421874955],[10.109667968750074,46.36284179687502],[10.081933593750023,46.420751953125006],[10.045605468750068,46.44790039062505],[10.038281250000011,46.483203125000045],[10.061230468750068,46.54677734375002],[10.087011718750063,46.59990234375002],[10.1375,46.614355468750034],[10.195507812500068,46.62109374999997],[10.4306640625,46.55004882812497],[10.409352678571473,46.6092047991071],[10.39794921875,46.66503906250006],[10.406054687500045,46.73486328124997],[10.452832031249983,46.86494140625001],[10.47939453125008,46.85512695312505],[10.579785156250011,46.85371093750001],[10.689257812500017,46.846386718749955],[10.759765625,46.79331054687498],[10.828906250000045,46.775244140625034],[10.927343750000034,46.76948242187501],[10.993261718750034,46.77700195312502],[11.02509765625004,46.796972656250006],[11.063476562500057,46.85913085937497],[11.133886718750006,46.93618164062505],[11.244433593750045,46.975683593750006],[11.433203125000063,46.983056640624994],[11.527539062500011,46.99741210937498],[11.775683593750017,46.986083984375],[12.169433593750028,47.082128906250006],[12.19716796875008,47.075],[12.201269531250034,47.060888671875034],[12.165527343750028,47.028173828125034],[12.130761718750051,46.98476562499999],[12.154101562500017,46.93525390625004],[12.267968750000023,46.83588867187504],[12.330078125,46.75981445312499],[12.388281250000034,46.70263671874997],[12.479199218749983,46.672509765624966],[13.16875,46.572656249999966],[13.3515625,46.55791015624999],[13.490039062500045,46.55556640625002],[13.7,46.52026367187503],[13.679687500000057,46.46289062499997],[13.63710937500008,46.44853515624999],[13.563281250000045,46.41508789062502],[13.399511718749977,46.31752929687502],[13.420996093750006,46.212304687499994]]]]},"properties":{"name":"Italy","childNum":6}},{"geometry":{"type":"Polygon","coordinates":[[[-77.261474609375,18.45742187499999],[-76.349853515625,18.15185546875],[-76.21079101562499,17.913525390624997],[-76.524609375,17.8662109375],[-76.85322265625,17.97373046874999],[-76.94414062499999,17.848779296874994],[-77.11948242187499,17.880078125],[-77.20498046875,17.71494140624999],[-77.36142578124999,17.833691406249997],[-77.76816406249999,17.877392578124997],[-78.04448242187499,18.173828125],[-78.339501953125,18.28720703124999],[-78.21669921875,18.44809570312499],[-77.8734375,18.522216796875],[-77.261474609375,18.45742187499999]]]},"properties":{"name":"Jamaica","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-2.018652343749977,49.23125],[-2.23583984375,49.1763671875],[-2.220507812499989,49.266357421875],[-2.018652343749977,49.23125]]]},"properties":{"name":"Jersey","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[39.14541015625002,32.12451171875],[38.9970703125,32.007470703124994],[38.96230468750002,31.994921875],[38.37548828125,31.847460937499996],[38.111425781250006,31.781152343749994],[37.49335937500001,31.625878906249994],[37.215625,31.556103515624997],[36.95859375,31.491503906249996],[37.980078125,30.5],[37.862890625,30.442626953125],[37.66972656250002,30.34814453125],[37.64990234375,30.330957031249994],[37.63359375000002,30.31328125],[37.55361328125002,30.144580078124996],[37.49072265625,30.01171875],[37.46923828125,29.995068359374997],[36.75527343750002,29.866015625],[36.70390625000002,29.831640625],[36.591796875,29.66611328125],[36.47607421875,29.4951171875],[36.2828125,29.355371093749994],[36.068457031250006,29.200537109375],[34.95078125,29.353515625],[34.97343750000002,29.555029296875],[35.45058593750002,31.479296875],[35.57207031250002,32.237890625],[35.55146484375001,32.3955078125],[35.56904296875001,32.619873046875],[35.572851562500006,32.640869140625],[35.78730468750001,32.734912109374996],[36.3720703125,32.3869140625],[36.818359375,32.317285156249994],[38.773535156250006,33.372216796874994],[39.04140625000002,32.3056640625],[39.24746093750002,32.350976562499994],[39.29277343750002,32.24384765625],[39.14541015625002,32.12451171875]]]},"properties":{"name":"Jordan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[123.88867187499997,24.280126953124977],[123.67978515625012,24.317773437500023],[123.77148437499997,24.41445312499999],[123.93486328125002,24.362011718749983],[123.88867187499997,24.280126953124977]]],[[[124.29316406250004,24.515917968750074],[124.13574218750003,24.347607421874983],[124.08476562500002,24.435839843750017],[124.30195312500004,24.58710937500001],[124.29316406250004,24.515917968750074]]],[[[125.44414062500002,24.7431640625],[125.26894531250005,24.732519531250063],[125.28359375,24.871923828125034],[125.44414062500002,24.7431640625]]],[[[128.25878906249997,26.65278320312501],[127.86708984375,26.442480468749977],[127.80361328125005,26.152539062499983],[127.653125,26.0947265625],[127.90722656250003,26.69360351562497],[128.09765624999997,26.66777343749996],[128.25488281249997,26.88188476562496],[128.25878906249997,26.65278320312501]]],[[[128.99814453125012,27.720800781250006],[128.90000000000012,27.727783203125],[128.9076171875,27.897998046875045],[128.99814453125012,27.720800781250006]]],[[[129.45253906250005,28.20898437499997],[129.3664062500001,28.127734375000045],[129.16464843750012,28.24975585937503],[129.68955078125012,28.517480468750023],[129.45253906250005,28.20898437499997]]],[[[130.6227539062501,30.262988281250017],[130.44560546875002,30.264697265625017],[130.38808593750005,30.38818359375003],[130.49716796875006,30.465527343749983],[130.64355468749997,30.388964843750017],[130.6227539062501,30.262988281250017]]],[[[130.95976562500007,30.39692382812504],[130.87031250000004,30.444238281249994],[131.06035156250007,30.828466796875006],[130.95976562500007,30.39692382812504]]],[[[130.38105468750004,32.42373046875002],[130.24169921874997,32.462792968749994],[130.46142578124997,32.515722656250034],[130.38105468750004,32.42373046875002]]],[[[130.08251953124997,32.22968750000001],[129.9601562500001,32.24375],[130.00976562499997,32.521630859374994],[130.16777343750002,32.54121093749998],[130.19951171875002,32.34057617187506],[130.08251953124997,32.22968750000001]]],[[[128.66533203125002,32.783886718749955],[128.89453124999997,32.65214843750002],[128.69296875000012,32.60473632812506],[128.66533203125002,32.783886718749955]]],[[[129.07695312500002,32.84028320312498],[128.99726562500004,32.95185546874998],[129.10976562500005,33.13256835937503],[129.18193359375002,32.99311523437504],[129.07695312500002,32.84028320312498]]],[[[129.49179687500006,33.22304687499999],[129.37041015625002,33.176025390625],[129.56992187500006,33.36103515625004],[129.49179687500006,33.22304687499999]]],[[[129.79570312500007,33.74882812499999],[129.67480468749997,33.73969726562498],[129.71728515624997,33.8583984375],[129.79570312500007,33.74882812499999]]],[[[131.17460937500007,33.602587890625045],[131.69628906250003,33.60283203124999],[131.53740234375007,33.274072265624994],[131.89658203125006,33.25458984375001],[131.8478515625001,33.118066406249994],[132.0021484375001,32.882373046875045],[131.6603515625001,32.465625],[131.33720703125007,31.4046875],[131.07080078124997,31.436865234374977],[131.09843750000002,31.256152343750017],[130.68574218750004,31.01513671875003],[130.77626953125,31.70629882812497],[130.65507812500002,31.71840820312505],[130.5560546875,31.563085937500034],[130.58876953125,31.178515625000017],[130.20068359374997,31.291894531250023],[130.14726562500002,31.40849609374996],[130.2941406250001,31.45068359375003],[130.3219726562501,31.601464843750023],[130.18789062500005,31.768847656250017],[130.19443359375012,32.090771484374955],[130.64052734375005,32.61923828124998],[130.49785156250002,32.65693359375001],[130.547265625,32.83159179687499],[130.2375,33.177636718749966],[130.12685546875005,33.10483398437506],[130.175,32.851318359375],[130.32646484375002,32.852636718750006],[130.34042968750012,32.70185546875004],[130.05410156250005,32.770800781250045],[129.76855468749997,32.57099609375001],[129.82675781250006,32.72534179687503],[129.67910156250005,33.059960937499966],[129.99169921875003,32.85156249999997],[129.58007812500003,33.23627929687501],[129.61015625000002,33.34365234375005],[129.844140625,33.32177734375003],[129.82568359374997,33.43701171875006],[130.36503906250007,33.634472656249955],[130.4837890625,33.834619140624966],[130.715625,33.92778320312502],[130.953125,33.87202148437504],[131.17460937500007,33.602587890625045]]],[[[132.266015625,33.945166015625006],[132.44492187500006,33.91318359374998],[132.20878906250007,33.87285156250002],[132.266015625,33.945166015625006]]],[[[129.27949218750004,34.123388671875006],[129.18642578125,34.14501953125006],[129.21484374999997,34.320654296875034],[129.3371093750001,34.284765625],[129.27949218750004,34.123388671875006]]],[[[134.35742187500003,34.25634765625],[134.6375,34.22661132812499],[134.73886718750012,33.82050781250001],[134.37705078125012,33.60839843749997],[134.18164062500003,33.24721679687502],[133.95869140625004,33.44833984375006],[133.63203125000004,33.51098632812503],[133.28593750000007,33.35996093749998],[132.97724609375004,32.84199218749998],[132.80429687500006,32.75200195312502],[132.6417968750001,32.76245117187503],[132.70898437500003,32.90249023437505],[132.49511718749997,32.91660156249998],[132.41279296875004,33.43046875],[132.0326171875,33.339990234374994],[132.64306640624997,33.68994140624997],[132.93515625000006,34.09531250000006],[133.19306640625004,33.93320312499998],[133.58203124999997,34.01713867187502],[133.60263671875006,34.24384765625001],[133.94833984375006,34.34804687500002],[134.35742187500003,34.25634765625]]],[[[134.35185546875002,34.48364257812503],[134.25185546875,34.42304687500004],[134.18212890625003,34.51923828124998],[134.35185546875002,34.48364257812503]]],[[[134.9328125000001,34.28813476562499],[134.82441406250004,34.202929687500045],[134.66787109375005,34.294140624999955],[135.00468750000002,34.54404296874998],[134.9328125000001,34.28813476562499]]],[[[129.38564453125,34.35366210937502],[129.26669921875012,34.37045898437506],[129.45107421875005,34.68657226562499],[129.38564453125,34.35366210937502]]],[[[133.37050781250005,36.203857421875],[133.23925781249997,36.178759765625045],[133.20615234375006,36.293408203124955],[133.29570312500002,36.34013671874996],[133.37050781250005,36.203857421875]]],[[[138.34404296875007,37.822119140625006],[138.22519531250006,37.82939453124996],[138.25,38.078466796875006],[138.50361328125004,38.31591796875006],[138.45361328124997,38.07568359375006],[138.57519531249997,38.065527343750034],[138.34404296875007,37.822119140625006]]],[[[141.22929687500007,41.37265625],[141.45546875000005,41.404736328124955],[141.43046875000002,40.72333984374998],[141.7970703125001,40.29116210937502],[141.97695312500005,39.428808593750034],[141.90078125,39.111328125],[141.5462890625,38.762841796874966],[141.4674804687501,38.404150390625006],[141.10839843750003,38.33793945312502],[140.9621093750001,38.148876953124955],[141.00166015625004,37.11464843750002],[140.57353515625007,36.23134765625002],[140.87402343749997,35.72495117187506],[140.457421875,35.51025390625],[140.35468750000004,35.18144531249999],[139.8439453125001,34.914892578125034],[139.82646484375002,35.29667968750002],[140.096875,35.58515624999998],[139.83476562500002,35.658056640625006],[139.65000000000012,35.40913085937501],[139.675,35.149267578125006],[139.47441406250002,35.298535156249955],[139.24941406250005,35.27802734375004],[139.08603515625006,34.83916015624999],[138.8375,34.619238281250034],[138.80273437499997,34.97480468749998],[138.90361328125002,35.02524414062506],[138.71962890625,35.12407226562502],[138.18906250000012,34.596337890624994],[137.543359375,34.66420898437505],[137.06171875000004,34.58281249999999],[137.27519531250002,34.77250976562499],[136.96328125000005,34.83491210937501],[136.87128906250004,34.733105468749955],[136.89707031250006,35.03554687500002],[136.80419921874997,35.05029296875],[136.53300781250007,34.678369140624994],[136.8802734375,34.43359375000006],[136.8537109375001,34.324072265625034],[136.32988281250007,34.17685546875006],[135.91621093750004,33.561718749999955],[135.69531250000003,33.48696289062502],[135.4528320312501,33.55336914062505],[135.12792968749997,34.006982421874994],[135.10009765624997,34.288378906250045],[135.41591796875,34.61748046875002],[134.74003906250007,34.765234375],[134.246875,34.71386718750003],[133.96826171874997,34.52729492187504],[133.14238281250002,34.30244140624998],[132.65654296875007,34.24609375000003],[132.31259765625006,34.32495117187503],[132.14648437499997,33.83876953125002],[131.74052734375007,34.05205078125002],[130.91884765625,33.97573242187502],[130.88925781250012,34.261816406250034],[131.00419921875007,34.39257812500003],[131.35439453125,34.41318359375006],[132.92294921875006,35.511279296875045],[133.98125,35.50722656250002],[135.17431640625003,35.74707031250003],[135.32695312500002,35.52553710937502],[135.68027343750006,35.503125],[135.903125,35.60688476562498],[136.09531250000006,35.767626953125045],[136.06748046875006,36.11684570312505],[136.69814453125005,36.742041015625034],[136.84345703125004,37.38212890624999],[137.32265625,37.52207031249998],[136.89990234375003,37.11767578125],[137.01669921875006,36.83720703124999],[137.24628906250004,36.753173828125],[137.5140625,36.95156250000002],[138.31992187500012,37.21840820312502],[138.88505859375007,37.84394531250001],[139.36386718750006,38.09902343750002],[139.80195312500004,38.881591796875],[140.06474609375002,39.624414062499994],[139.99472656250006,39.855078125],[139.74150390625002,39.92084960937498],[140.01113281250005,40.26035156250006],[139.92285156250003,40.59843750000002],[140.28125,40.84609375000002],[140.3444335937501,41.203320312499955],[140.62763671875004,41.195410156250034],[140.74863281250012,40.830322265625],[140.93603515625003,40.940771484375034],[141.1185546875,40.88227539062501],[141.24423828125006,41.20561523437499],[140.80058593750002,41.138818359374966],[140.80185546875012,41.253662109375],[140.9369140625,41.50556640624998],[141.22929687500007,41.37265625]]],[[[139.48125,42.08100585937498],[139.43134765625004,42.19956054687498],[139.55839843750002,42.235205078125034],[139.48125,42.08100585937498]]],[[[141.29541015625003,45.11933593750001],[141.14531250000002,45.153906250000034],[141.19375,45.24785156249999],[141.29541015625003,45.11933593750001]]],[[[141.07275390624997,45.33286132812498],[141.03398437500007,45.26933593750002],[140.97167968749997,45.465478515624994],[141.07275390624997,45.33286132812498]]],[[[143.82431640625012,44.11699218749999],[144.71523437500005,43.92797851562503],[145.36953125000005,44.32739257812506],[145.13964843750003,43.6625],[145.34082031249997,43.30253906249999],[145.83300781249997,43.38593750000001],[144.92138671874997,43.00092773437498],[143.96933593750006,42.88139648437499],[143.42949218750002,42.41889648437498],[143.2365234375001,42.000195312499955],[141.85136718750007,42.57905273437501],[141.40664062500005,42.54692382812496],[140.98613281250002,42.34213867187498],[140.70976562500002,42.555615234374955],[140.48046875000003,42.559375],[140.32666015625003,42.29335937499999],[141.15097656250012,41.80507812499999],[140.99951171874997,41.73740234375006],[140.65986328125004,41.815576171874994],[140.3849609375001,41.51928710937503],[140.08515625000004,41.43408203125],[139.99531250000004,41.57641601562503],[140.10839843749997,41.912939453125034],[139.83544921874997,42.278076171875],[139.86015625000002,42.58173828125004],[140.43222656250012,42.95410156250006],[140.39238281250002,43.303125],[141.13818359374997,43.17993164062506],[141.37412109375006,43.279638671875006],[141.7609375000001,44.482519531250034],[141.58300781250003,45.15595703125001],[141.66796874999997,45.401269531249966],[141.93769531250004,45.509521484375],[142.88476562499997,44.670117187499955],[143.82431640625012,44.11699218749999]]]]},"properties":{"name":"Japan","childNum":28}},{"geometry":{"type":"Polygon","coordinates":[[[77.04863281249999,35.109912109374996],[76.927734375,35.346630859375],[76.88222656250002,35.4357421875],[76.81279296874999,35.571826171874996],[76.76689453124999,35.66171875],[76.87890625,35.61328125],[77.09003906250001,35.552050781249996],[77.29482421875002,35.508154296875],[77.44648437500001,35.4755859375],[77.57255859374999,35.471826171874994],[77.72402343750002,35.48056640625],[77.79941406250003,35.495898437499996],[77.42343750000003,35.302587890625],[77.16855468750003,35.171533203124994],[77.04863281249999,35.109912109374996]]]},"properties":{"name":"Siachen Glacier","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[50.184472656249994,44.854638671874994],[49.99511718750003,44.93696289062498],[50.10986328124997,45.08193359375002],[50.038867187500074,44.949121093749966],[50.184472656249994,44.854638671874994]]],[[[87.32285156250012,49.085791015625006],[86.8083007812501,49.04970703125002],[86.54941406250012,48.52861328125002],[85.7494140625,48.38505859374999],[85.52597656250006,47.915625],[85.65664062500005,47.254638671875],[85.484765625,47.06352539062496],[84.78613281249997,46.83071289062505],[84.66660156250006,46.97236328125004],[84.016015625,46.97050781250002],[83.02949218750004,47.18593750000002],[82.31523437500002,45.59492187499998],[82.61162109375007,45.424267578124955],[82.52148437500003,45.12548828125],[82.26660156249997,45.21909179687498],[81.94492187500006,45.16083984375001],[81.69199218750012,45.34936523437497],[80.05917968750012,45.006445312500006],[79.871875,44.88378906249997],[80.48154296875006,44.71464843749999],[80.35527343750002,44.09726562500006],[80.78574218750006,43.16157226562504],[80.39023437500006,43.043115234374966],[80.53896484375005,42.873486328124955],[80.20224609375012,42.73447265624998],[80.209375,42.190039062500006],[80.07128906249997,42.302978515625],[79.92109375000004,42.41313476562496],[79.49013671875,42.45756835937496],[79.42822265624997,42.483496093750006],[79.20302734375005,42.66601562499997],[79.16484375000007,42.759033203125],[79.1266601562501,42.775732421875034],[76.98808593750007,42.97358398437501],[76.64648437500003,42.928808593750034],[76.50917968750005,42.91889648437498],[75.9322265625,42.92851562499999],[75.84033203125003,42.9375],[75.78955078124997,42.93291015624999],[75.68173828125,42.83046875],[75.04765625000007,42.904394531250034],[74.20908203125006,43.24038085937502],[73.88603515625002,43.132568359375],[73.55625,43.002783203125006],[73.45019531249997,42.703027343749966],[73.421875,42.59350585937503],[73.49296875000007,42.409033203125034],[73.41162109375003,42.41977539062498],[73.316015625,42.46699218750001],[73.2829101562501,42.50410156250004],[72.85507812500006,42.561132812500006],[72.75292968750003,42.63789062500001],[72.54316406250004,42.67773437500006],[72.27578125,42.757666015625006],[71.76054687500002,42.82148437500004],[71.5142578125,42.766943359375006],[71.42207031250004,42.78315429687504],[71.25664062500002,42.733544921874966],[70.89287109375007,42.339990234374994],[70.94677734374997,42.24868164062505],[69.15361328125002,41.42524414062498],[68.58408203125,40.876269531250045],[68.57265625,40.62265624999998],[68.29189453125,40.656103515625034],[68.04765625000007,40.80927734374998],[68.11308593750007,41.02861328124999],[67.9357421875001,41.19658203125002],[66.70966796875004,41.17915039062501],[66.49863281250006,41.99487304687503],[66.00957031250007,42.00488281250003],[66.1002929687501,42.99082031249998],[65.80302734375002,42.87695312500006],[65.49619140625,43.310546875],[64.9054687500001,43.714697265625006],[64.44316406250007,43.55117187499999],[63.20703125000003,43.62797851562502],[61.99023437500003,43.492138671874955],[61.007910156250006,44.39379882812497],[58.555273437500006,45.55537109375001],[55.97568359375006,44.99492187499996],[55.97744140625005,41.32221679687504],[55.434375,41.296289062499994],[54.85380859375002,41.965185546875006],[54.120996093749994,42.335205078125],[53.0558593750001,42.14775390624999],[52.4938476562501,41.780371093750034],[52.59658203125005,42.760156249999966],[51.898242187500074,42.86962890624997],[51.61601562500002,43.15844726562503],[51.29541015624997,43.17412109375002],[51.30175781249997,43.48237304687501],[50.8307617187501,44.192773437499966],[50.331152343750006,44.32548828125002],[50.25292968749997,44.461523437500006],[50.409472656250074,44.6240234375],[51.543554687500006,44.53100585937506],[51.009375,44.92182617187501],[51.4157226562501,45.35786132812501],[53.20039062500004,45.33198242187498],[52.77382812499999,45.57275390625],[53.13525390625003,46.19165039062497],[53.069433593750006,46.85605468750006],[52.48320312500002,46.99067382812504],[52.13828125,46.82861328124997],[51.178027343750074,47.110156250000045],[49.886328125,46.59565429687504],[49.347460937500074,46.51914062499998],[49.232226562500074,46.33715820312503],[48.54121093750004,46.60561523437502],[48.558398437500074,46.75712890624999],[48.959375,46.77460937499998],[48.16699218750003,47.70878906249996],[47.48193359374997,47.80390624999998],[47.292382812499994,47.74091796875004],[47.06464843750004,48.23247070312499],[46.660937500000074,48.41225585937502],[46.70263671875003,48.80556640625002],[47.031347656250006,49.150292968749994],[46.80205078125002,49.36708984375002],[46.889550781249994,49.69697265625001],[47.42919921874997,50.35795898437502],[47.7057617187501,50.37797851562502],[48.33496093750003,49.858251953125006],[48.7589843750001,49.92832031250006],[48.625097656250006,50.61269531250005],[49.32343750000004,50.851708984374966],[49.49804687500003,51.08359375000006],[50.246875,51.28950195312498],[50.79394531249997,51.729199218749955],[51.16347656250005,51.6474609375],[51.344531250000074,51.47534179687503],[52.21914062499999,51.709375],[52.57119140625005,51.481640624999955],[53.33808593750004,51.48237304687504],[54.139746093750006,51.04077148437503],[54.555273437500006,50.535791015624994],[54.64160156250003,51.011572265625034],[55.68623046875004,50.582861328125006],[56.49140625000004,51.01953124999997],[57.01171874999997,51.06518554687503],[57.44218750000002,50.88886718749998],[57.83886718750003,51.091650390625006],[58.359179687500074,51.063818359375034],[58.88369140625005,50.694433593750006],[59.4523437500001,50.62041015625002],[59.523046875,50.492871093749955],[59.812402343749994,50.58203125],[60.05859374999997,50.850292968749955],[60.42480468749997,50.67915039062498],[60.94228515625005,50.69550781250004],[61.38945312500002,50.86103515625001],[61.55468750000003,51.32460937500005],[60.464746093749994,51.651171875000045],[60.03027343749997,51.93325195312505],[60.99453125000005,52.33686523437504],[60.77441406249997,52.67578124999997],[61.047460937500006,52.97246093750002],[62.08271484375004,53.00541992187499],[61.65986328125004,53.22846679687504],[61.19921874999997,53.28715820312502],[61.22890625,53.445898437500006],[61.53496093750002,53.52329101562506],[60.97949218749997,53.62172851562505],[61.231054687500006,54.01948242187498],[61.92871093750003,53.94648437500004],[64.46123046875002,54.38417968750002],[65.08837890624997,54.340185546875034],[65.476953125,54.62329101562497],[68.15585937500006,54.97670898437505],[68.20625,55.16093750000002],[68.9772460937501,55.389599609374955],[70.18242187500002,55.162451171875034],[70.73808593750007,55.30517578125],[71.18554687500003,54.59931640624998],[71.09316406250005,54.21220703124999],[72.00449218750006,54.20566406249998],[72.18603515625003,54.32563476562501],[72.44677734375003,53.94184570312498],[72.62226562500004,54.13432617187502],[73.22988281250005,53.957812500000045],[73.71240234375003,54.04238281250002],[73.30566406250003,53.707226562499955],[73.40693359375004,53.44755859374999],[73.85898437500006,53.61972656249998],[74.35156250000003,53.487646484375006],[74.45195312500007,53.64726562500002],[75.22021484374997,53.89379882812506],[75.43720703125004,54.08964843749999],[76.8373046875,54.4423828125],[76.65458984375007,54.14526367187503],[76.42167968750007,54.151513671874966],[76.48476562500005,54.02255859374998],[77.85996093750006,53.269189453124994],[79.98623046875,50.774560546874966],[80.42363281250002,50.94628906249997],[80.44804687500002,51.18334960937503],[80.73525390625,51.29340820312498],[81.12724609375002,51.19106445312502],[81.0714843750001,50.96875],[81.38828125000006,50.95649414062501],[81.46591796875006,50.73984375],[82.49394531250007,50.72758789062499],[82.76083984375012,50.89335937500002],[83.35732421875005,50.99458007812504],[83.94511718750007,50.774658203125],[84.32324218749997,50.239160156249966],[84.9894531250001,50.061425781249994],[85.2326171875001,49.61582031249998],[86.1808593750001,49.49931640624996],[86.67548828125004,49.77729492187501],[86.62646484374997,49.56269531250001],[87.32285156250012,49.085791015625006]]]]},"properties":{"name":"Kazakhstan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[35.325292968750006,5.364892578124994],[35.745019531249994,5.343994140625],[35.80029296874997,5.156933593749983],[35.77929687499997,5.105566406250006],[35.756152343750074,4.950488281250031],[35.76308593750005,4.808007812500051],[36.02197265625003,4.468115234374991],[36.90556640625002,4.411474609374991],[37.15458984375002,4.254541015624994],[37.944921875,3.746728515625023],[38.0861328125001,3.648828124999966],[38.22529296875004,3.61899414062502],[38.45156250000005,3.604833984374977],[38.608007812500006,3.600097656249986],[39.49443359375002,3.45610351562496],[39.65751953125002,3.577832031249983],[39.79033203125002,3.754248046875034],[39.8421875,3.851464843750037],[40.765234375,4.273046875000034],[41.02080078125002,4.057470703124991],[41.22089843750004,3.943554687499969],[41.372460937499994,3.94619140624998],[41.48193359375003,3.96328125],[41.737695312499994,3.979052734375003],[41.88398437500004,3.977734375000011],[41.6134765625001,3.59047851562498],[41.34179687499997,3.20166015625],[40.964453125,2.814648437500026],[40.9787109375001,-0.870312500000011],[41.249804687500074,-1.220507812499946],[41.4269531250001,-1.449511718749974],[41.521875,-1.572265625000028],[41.53271484374997,-1.695312499999957],[41.26748046875005,-1.945019531250026],[40.889746093750006,-2.023535156250034],[40.89824218750002,-2.269921874999966],[40.64414062500006,-2.53945312499998],[40.22246093750002,-2.688378906250037],[40.1154296875001,-3.250585937499991],[39.8609375,-3.576757812500006],[39.49091796875004,-4.478417968750023],[39.221777343750006,-4.692382812500014],[37.608203125000074,-3.497070312500028],[37.643847656250074,-3.045410156250028],[33.90322265625005,-1.002050781250034],[33.94316406250002,0.173779296874969],[34.160937500000074,0.605175781250026],[34.4108398437501,0.867285156250034],[34.48173828125002,1.042138671875051],[34.79863281250002,1.24453125],[34.976464843749994,1.719628906250051],[34.97753906249997,1.861914062499991],[34.9640625000001,2.06240234374998],[34.8830078125001,2.417919921875026],[34.90576171875003,2.4796875],[34.44785156250006,3.163476562500037],[34.40722656249997,3.357519531250034],[34.39941406249997,3.412695312500006],[34.44179687499999,3.60625],[34.43769531250004,3.650585937499969],[34.392871093750074,3.691503906250048],[34.26708984375003,3.733154296875],[34.16503906250003,3.812988281250014],[34.18574218750004,3.869775390625037],[34.13203125000004,3.889160156249986],[33.97607421874997,4.220214843750028],[34.176855468750006,4.419091796875037],[34.38017578125002,4.620654296874974],[34.6398437500001,4.875488281250028],[34.878320312499994,5.109570312500026],[35.08447265624997,5.31186523437502],[35.268359375000074,5.492285156250006],[35.325292968750006,5.364892578124994]]]},"properties":{"name":"Kenya","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[72.63994140625002,39.385986328125],[72.22998046875,39.20751953125],[72.14736328125002,39.2607421875],[72.08417968750001,39.31064453125],[72.04277343750002,39.3521484375],[71.77861328125002,39.277978515624994],[71.73222656250002,39.422998046874994],[71.50332031250002,39.478808593749996],[71.51738281250002,39.553857421874994],[71.50302734375,39.582177734374994],[71.4703125,39.603662109374994],[70.79931640625,39.3947265625],[70.50117187500001,39.587353515625],[69.29765625000002,39.524804687499994],[69.2447265625,39.827099609375],[69.27880859375,39.917773437499996],[69.3072265625,39.968554687499996],[69.36542968750001,39.947070312499996],[69.43193359375002,39.909765625],[69.47626953125001,39.919726562499996],[69.47099609375002,39.990625],[69.46875,40.020751953125],[69.966796875,40.20224609375],[70.59921875,39.974511718749994],[70.990625,40.2548828125],[71.3046875,40.286914062499996],[71.69248046875,40.15234375],[72.13125,40.438623046874994],[72.3892578125,40.427392578124994],[72.40205078125001,40.578076171875],[72.6041015625,40.525439453124996],[73.13212890625002,40.82851562499999],[72.65830078125,40.869921875],[72.36406250000002,41.04345703125],[72.294921875,41.039941406249994],[72.21308593750001,41.0142578125],[72.18730468750002,41.025927734374996],[72.18095703125002,41.118457031249996],[72.16425781250001,41.173730468749994],[72.11542968750001,41.186572265624996],[72.05244140625001,41.16474609375],[71.95849609375,41.187060546874996],[71.87861328125001,41.19501953125],[71.8580078125,41.311376953125],[71.79248046875,41.413134765624996],[71.75771484375002,41.428027343749996],[71.70068359375,41.454003906249994],[71.66494140625002,41.5412109375],[71.6375,41.5341796875],[71.60224609375001,41.503271484375],[71.60625,41.367431640625],[71.54560546875001,41.308056640625],[71.5,41.307470703125],[71.4208984375,41.34189453125],[71.40839843750001,41.136035156249996],[71.39306640625,41.123388671875],[71.11074218750002,41.152636718749996],[70.86044921875,41.224902343749996],[70.734375,41.400537109374994],[70.18095703125002,41.571435546874994],[70.85664062500001,42.030810546874996],[71.0322265625,42.077783203124994],[71.228515625,42.162890625],[71.23232421875002,42.186279296875],[71.21269531250002,42.206445312499994],[71.12998046875,42.25],[71.03603515625002,42.28466796875],[70.97900390625,42.266552734375],[70.94677734375,42.248681640624994],[70.89287109375002,42.339990234374994],[71.25664062500002,42.733544921874994],[71.42207031250001,42.783154296875],[71.5142578125,42.766943359375],[71.76054687500002,42.821484375],[72.16181640625001,42.760693359375],[72.27578125000002,42.757666015625],[72.54316406250001,42.677734375],[72.7529296875,42.637890625],[72.855078125,42.5611328125],[73.28291015625001,42.5041015625],[73.316015625,42.4669921875],[73.41162109375,42.419775390625],[73.49296875000002,42.409033203125],[73.421875,42.593505859375],[73.4501953125,42.703027343749994],[73.55625,43.002783203125],[73.88603515625002,43.132568359375],[74.20908203125,43.240380859374994],[75.04765625000002,42.90439453125],[75.68173828125,42.83046875],[75.78955078125,42.932910156249996],[75.84033203125,42.9375],[75.9322265625,42.928515625],[76.50917968750002,42.918896484375],[76.646484375,42.92880859375],[76.98808593749999,42.973583984375],[79.12666015625001,42.775732421875],[79.20302734375002,42.666015625],[79.29550781250003,42.604833984375],[79.36777343750003,42.547216796875],[79.42822265625,42.48349609375],[79.92109375000001,42.413134765624996],[80.0712890625,42.302978515625],[80.209375,42.1900390625],[80.24619140625003,42.059814453125],[80.23515624999999,42.04345703125],[80.21621093750002,42.032421875],[79.90966796875,42.014990234375],[79.84042968750003,41.995751953124994],[79.76611328125,41.898876953125],[78.74257812500002,41.56005859375],[78.54316406250001,41.4595703125],[78.44287109375,41.417529296874996],[78.36240234375003,41.371630859374996],[78.34628906250003,41.2814453125],[78.12343750000002,41.075634765625],[77.95644531250002,41.050683593749994],[77.81523437499999,41.055615234375],[77.71933593750003,41.024316406249994],[77.58173828125001,40.9927734375],[76.98662109374999,41.03916015625],[76.90771484375,41.024169921875],[76.82402343749999,40.982324218749994],[76.70839843750002,40.818115234375],[76.6611328125,40.779638671875],[76.63984375000001,40.742236328124996],[76.62216796875003,40.662353515625],[76.57792968749999,40.577880859375],[76.48017578125001,40.449511718749996],[76.39638671875002,40.389794921874994],[76.31855468750001,40.35224609375],[76.25830078125,40.43076171875],[75.87197265625002,40.30322265625],[75.67714843750002,40.305810546874994],[75.55556640625002,40.6251953125],[75.52080078125002,40.6275390625],[75.24101562500002,40.480273437499996],[75.111328125,40.4541015625],[75.0044921875,40.449511718749996],[74.865625,40.493505859375],[74.80126953125,40.428515625],[74.83046875000002,40.32851562499999],[74.41191406250002,40.13720703125],[74.24267578125,40.092041015625],[74.08515625000001,40.07431640625],[73.99160156250002,40.043115234374994],[73.93876953125002,39.978808593749996],[73.88457031250002,39.8779296875],[73.85625,39.828662109374996],[73.83535156250002,39.800146484375],[73.83974609375002,39.762841796874994],[73.88251953125001,39.71455078125],[73.9146484375,39.606494140624996],[73.90712890625002,39.57851562499999],[73.87275390625001,39.53330078125],[73.82294921875001,39.48896484375],[73.71572265625002,39.462255859375],[73.63164062500002,39.448876953124994],[73.47041015625001,39.460595703124994],[73.38740234375001,39.442724609375],[73.33613281250001,39.412353515625],[73.2349609375,39.374560546874996],[73.10927734375002,39.3619140625],[72.63994140625002,39.385986328125]],[[70.66416015625,39.85546875],[70.56708984375001,39.866601562499994],[70.49775390625001,39.882421875],[70.48281250000002,39.882714843749994],[70.4892578125,39.863037109375],[70.5595703125,39.790917968749994],[70.61210937500002,39.786767578124994],[70.70166015625,39.82529296875],[70.66416015625,39.85546875]],[[71.20615234375,39.892578125],[71.22871093750001,40.048144531249996],[71.08037109375002,40.079882812499996],[71.02412109375001,40.149169921875],[71.00546875,40.152294921875],[70.96064453125001,40.08798828125],[71.04482421875002,39.992529296875],[71.04365234375001,39.976318359375],[71.01171875,39.8951171875],[71.06425781250002,39.884912109374994],[71.15625,39.883447265624994],[71.20615234375,39.892578125]]]},"properties":{"name":"Kyrgyzstan","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[104.42636718750006,10.411230468749991],[103.87050781250005,10.655126953125034],[103.58710937500004,10.552197265625026],[103.54042968750005,10.668701171875043],[103.721875,10.890136718750043],[103.5324218750001,11.146679687499997],[103.35361328125006,10.921582031250054],[103.15283203124997,10.913720703125051],[103.12548828124997,11.460644531250011],[102.9486328125,11.773486328124974],[102.93388671875002,11.706689453125037],[102.73662109375007,12.089794921875011],[102.75566406250002,12.42626953125],[102.49960937500012,12.669970703125003],[102.33632812500005,13.560302734375014],[102.546875,13.585693359375043],[102.90927734375006,14.136718750000028],[103.19941406250004,14.332617187499977],[104.77900390625004,14.427832031250006],[105.07412109375005,14.227441406250037],[105.12597656250003,14.280957031250011],[105.16914062500004,14.336083984374966],[105.1833007812501,14.346240234374989],[105.18554687500003,14.319091796874972],[105.20703125000003,14.259375],[105.24570312500006,14.200537109374977],[105.35019531250006,14.109570312500011],[105.53154296875007,14.156152343749994],[105.73974609375003,14.084960937500057],[105.83144531250005,13.976611328125003],[105.9044921875001,13.924511718750054],[106.06679687500005,13.921191406250003],[106.12470703125004,14.049121093750031],[106.09667968749997,14.127099609375023],[106.00410156250004,14.262890624999983],[105.97890625,14.343017578125043],[106.00839843750012,14.357177734375],[106.1652343750001,14.372363281249989],[106.19072265625007,14.388134765624997],[106.22539062500002,14.476220703125009],[106.26796875,14.466210937500009],[106.35498046875003,14.454785156249997],[106.44697265625004,14.515039062500009],[106.50146484375003,14.578222656250006],[106.53115234375005,14.549414062499991],[106.5636718750001,14.505078125000026],[106.59921875000006,14.479394531250037],[106.66542968750005,14.441308593749994],[106.73818359375005,14.387744140625017],[106.78349609375002,14.335107421875037],[106.81992187500006,14.314697265625057],[106.91318359375006,14.329394531250031],[106.93808593750006,14.327343750000054],[106.99218750000003,14.391015624999966],[107.03017578125,14.425683593750009],[107.06240234375,14.415771484375043],[107.109375,14.416699218750054],[107.29267578125004,14.592382812500048],[107.37988281250003,14.555322265625051],[107.41474609375004,14.56289062499999],[107.51943359375005,14.705078125],[107.3314453125,14.126611328125009],[107.60546874999997,13.437792968750017],[107.47539062500002,13.030371093749963],[107.50644531250006,12.364550781250031],[107.39335937500002,12.260498046874972],[107.21210937500004,12.30400390624996],[106.70009765625,11.979296874999974],[106.41386718750002,11.9484375],[106.39921875000007,11.687011718750028],[106.0060546875001,11.758007812500011],[105.85146484375005,11.635009765625],[105.85605468750006,11.294287109375048],[106.16093750000002,11.037109375000057],[106.16396484375005,10.794921875],[105.85332031250007,10.86357421874996],[105.75507812500004,10.989990234375043],[105.40576171875003,10.95161132812504],[105.3146484375001,10.845166015625026],[105.04570312500002,10.911376953125014],[105.04638671874997,10.701660156250014],[104.85058593749997,10.534472656249974],[104.42636718750006,10.411230468749991]]]},"properties":{"name":"Cambodia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-157.34213867187503,1.855566406250034],[-157.17578125,1.73984375],[-157.57895507812498,1.902050781249997],[-157.43583984374993,1.84726562500002],[-157.365185546875,1.94609375],[-157.44189453125003,2.025048828125009],[-157.321875,1.968554687500045],[-157.34213867187503,1.855566406250034]]],[[[-159.3390625,3.923535156249983],[-159.27475585937503,3.796582031250054],[-159.40903320312503,3.87324218750004],[-159.3390625,3.923535156249983]]]]},"properties":{"name":"Kiribati","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[126.32695312500002,33.2236328125],[126.16562500000012,33.31201171875],[126.33769531250002,33.46040039062501],[126.90117187500002,33.51513671874997],[126.87285156250002,33.34116210937498],[126.32695312500002,33.2236328125]]],[[[126.23369140625002,34.370507812499994],[126.12285156250002,34.443945312500034],[126.34384765625012,34.544921875],[126.23369140625002,34.370507812499994]]],[[[126.17197265625006,34.73115234375001],[126.00751953125004,34.86748046874999],[126.07841796875002,34.914843750000045],[126.17197265625006,34.73115234375001]]],[[[128.0658203125,34.80585937500004],[128.05468750000003,34.70805664062502],[127.87343750000005,34.73496093749998],[127.8322265625001,34.87451171875],[128.0658203125,34.80585937500004]]],[[[128.74101562500007,34.798535156249955],[128.64667968750004,34.73686523437502],[128.48925781250003,34.86528320312496],[128.66796875000003,35.0087890625],[128.74101562500007,34.798535156249955]]],[[[126.52070312500004,37.73681640625003],[126.516015625,37.60468750000001],[126.42333984375003,37.62363281250006],[126.41162109374997,37.82265625000002],[126.52070312500004,37.73681640625003]]],[[[128.37460937500012,38.6234375],[129.41826171875002,37.059033203124955],[129.40351562500004,36.052148437499994],[129.57285156250006,36.05053710937503],[129.4191406250001,35.49785156249996],[129.07675781250006,35.12270507812502],[128.5109375000001,35.10097656250002],[128.44394531250012,34.87036132812503],[128.03623046875006,35.02197265625],[127.71484374999997,34.95468749999998],[127.71542968750012,34.72104492187498],[127.40429687499997,34.823095703125006],[127.47910156250012,34.625244140625],[127.324609375,34.463281249999966],[127.17343750000006,34.54614257812497],[127.24707031249997,34.755126953125],[126.89746093749997,34.438867187499966],[126.75478515625005,34.511865234374994],[126.53144531250004,34.31425781249999],[126.26445312500002,34.67324218750002],[126.52451171875006,34.697900390624966],[126.59335937500012,34.824365234374994],[126.42070312500002,34.823388671874966],[126.29111328125012,35.154150390625034],[126.61406250000007,35.57099609375004],[126.4884765625001,35.647070312500006],[126.75302734375006,35.871972656249994],[126.5404296875,36.166162109374966],[126.4876953125,36.69379882812498],[126.18085937500004,36.69160156249998],[126.16054687500005,36.77192382812501],[126.48701171875004,37.00747070312502],[126.78447265625007,36.94843749999998],[126.87207031249997,36.82446289062506],[126.97685546875002,36.93940429687501],[126.74638671875002,37.19355468750001],[126.63388671875012,37.78183593750006],[127.09033203125003,38.28388671875001],[128.03896484375,38.30854492187498],[128.37460937500012,38.6234375]]]]},"properties":{"name":"Korea","childNum":7}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[48.27539062499997,29.624316406250017],[48.17968750000003,29.611425781250063],[48.081445312499994,29.798925781250063],[48.1847656250001,29.978857421875034],[48.348242187500006,29.78266601562504],[48.27539062499997,29.624316406250017]]],[[[48.442480468750006,28.542919921874983],[47.671289062499994,28.53315429687504],[47.433203125,28.989550781250017],[46.53144531250004,29.09624023437499],[46.69375,29.259667968749966],[46.76933593750002,29.347460937500017],[46.90585937500006,29.5375],[47.14824218750002,30.0009765625],[47.64375,30.097314453125023],[47.75390624999997,30.076611328124955],[47.97871093750004,29.98281250000005],[48.00566406250002,29.835791015625034],[48.143457031249994,29.57246093750001],[47.96962890625005,29.61669921874997],[47.72265624999997,29.393017578124955],[48.0514648437501,29.355371093750023],[48.442480468750006,28.542919921874983]]]]},"properties":{"name":"Kuwait","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[102.12744140625011,22.37919921874999],[102.58251953125006,21.904296875000057],[102.66201171875008,21.676025390625057],[102.73857421875005,21.677929687500125],[102.77109375000015,21.70966796875001],[102.79824218750014,21.797949218750034],[102.81591796875,21.807373046875],[102.94960937500008,21.681347656250068],[102.85117187500009,21.26591796874999],[102.8837890625,21.202587890625068],[103.1044921875,20.89165039062499],[103.21074218749999,20.840625],[103.46357421874995,20.779833984375102],[103.6350585937501,20.697070312500102],[104.10136718750005,20.945507812500125],[104.1953125,20.91396484375008],[104.349609375,20.82109374999999],[104.58320312500001,20.646679687499955],[104.53271484375,20.554882812500125],[104.47861328124998,20.529589843750102],[104.40781250000015,20.485742187500023],[104.36777343750015,20.441406250000057],[104.39218750000015,20.424755859375068],[104.49619140625003,20.41367187499992],[104.61884765624995,20.374511718750114],[104.65644531250001,20.328515624999966],[104.66191406250005,20.289013671875125],[104.67695312500007,20.224707031249977],[104.69873046875006,20.205322265625114],[104.84785156250007,20.202441406250045],[104.88867187500006,20.169091796875023],[104.92919921874994,20.082812500000045],[104.92792968750007,20.01811523437499],[104.81513671875001,19.90400390625001],[104.80175781250011,19.836132812500068],[104.74316406250006,19.754736328124977],[104.58789062500006,19.61875],[104.54628906250014,19.610546875000068],[104.25986328125003,19.685498046875068],[104.06279296875005,19.678417968750068],[104.03203124999999,19.67514648437492],[104.0134765625001,19.646484374999943],[104.05156250000005,19.564160156250068],[104.06289062500002,19.482568359375136],[104.02753906250013,19.420458984375102],[103.93203125000002,19.366064453125034],[103.89638671875002,19.339990234375023],[103.89160156249994,19.30498046874999],[105.146484375,18.650976562499977],[105.14541015625014,18.616796874999977],[105.08701171875015,18.49624023437508],[105.11455078125005,18.405273437500057],[105.45820312500007,18.154296875000057],[105.51855468750011,18.077441406250045],[105.58847656250015,17.983691406249932],[105.69140625,17.737841796874932],[106.00625,17.415283203124943],[106.26953125,17.216796875000057],[106.33339843750002,17.14370117187508],[106.42597656250007,17.00253906250009],[106.50224609374999,16.9541015625],[106.52597656250003,16.876611328125023],[106.53369140625,16.821044921875057],[106.54619140625005,16.650732421874977],[106.65644531250013,16.492626953125125],[106.73955078124999,16.452539062500136],[106.79160156250015,16.490332031249977],[106.83242187500008,16.526269531250023],[106.85107421875,16.515625],[106.89277343750013,16.396533203125102],[106.93066406250006,16.353125],[107.39638671875008,16.04301757812499],[107.39199218750008,15.951660156250057],[107.36064453125005,15.921728515624977],[107.18886718750008,15.838623046875114],[107.16591796875002,15.802490234375],[107.27939453125003,15.618701171875045],[107.33876953125002,15.560498046875125],[107.56425781249999,15.3916015625],[107.62167968750015,15.309863281250045],[107.653125,15.255224609375091],[107.63369140625008,15.18984375000008],[107.58964843749999,15.118457031250102],[107.55527343750009,15.057031250000023],[107.48037109375014,14.979882812500136],[107.5046875000001,14.91591796875008],[107.52451171875003,14.871826171874943],[107.51376953124998,14.817382812500057],[107.51943359375008,14.705078125000114],[107.46513671875005,14.664990234375125],[107.41474609375007,14.56289062500008],[107.37988281250006,14.555322265625136],[107.29267578125007,14.592382812500034],[107.109375,14.416699218749955],[107.06240234375008,14.415771484374943],[107.03017578125008,14.425683593750023],[106.99218749999994,14.39101562500008],[106.93808593750015,14.327343750000068],[106.91318359375003,14.329394531249932],[106.81992187500003,14.314697265624943],[106.7834960937501,14.335107421875023],[106.73818359375008,14.387744140625102],[106.66542968750002,14.441308593750023],[106.59921875000003,14.479394531250136],[106.56367187500007,14.505078125000011],[106.53115234375002,14.549414062499977],[106.50146484375,14.578222656250034],[106.22539062500005,14.476220703125023],[106.1907226562501,14.388134765625011],[106.16523437500007,14.372363281249989],[106.00839843750009,14.357177734375114],[105.97890625000014,14.343017578125057],[106.00410156250013,14.262890625000068],[106.09667968750011,14.127099609375136],[106.12470703124995,14.049121093750045],[106.06679687500008,13.921191406250102],[105.90449218750007,13.924511718750068],[105.83144531250008,13.976611328124989],[105.73974609375006,14.084960937500057],[105.5315429687501,14.156152343750023],[105.35019531250009,14.109570312500125],[105.24570312500015,14.200537109374977],[105.20703125000006,14.259375],[105.18554687499994,14.319091796875],[105.18330078125001,14.346240234374989],[105.24365234375006,14.367871093749955],[105.34218750000008,14.416699218749955],[105.42265624999993,14.471630859374955],[105.47558593750006,14.530126953124977],[105.49736328125005,14.590673828125034],[105.52304687500015,14.843310546874989],[105.54667968749999,14.932470703125034],[105.53339843750013,15.041601562500091],[105.49042968750007,15.127587890625023],[105.49042968750007,15.256591796875],[105.615625,15.488281249999943],[105.63886718750013,15.585937499999943],[105.64101562500002,15.656542968749932],[105.62207031250006,15.699951171875114],[105.39892578125011,15.829882812500102],[105.40625,15.987451171875023],[105.33066406250003,16.037890625000045],[105.1487304687501,16.09355468749999],[105.04716796874999,16.16025390625009],[104.81933593749994,16.466064453125057],[104.75058593750015,16.647558593750034],[104.74355468750014,16.884375],[104.75898437500013,17.0771484375],[104.81601562499998,17.30029296875],[104.73964843750008,17.461669921875],[104.428125,17.698974609375057],[104.32265625000002,17.815820312500023],[104.19619140625002,17.988378906250034],[104.04873046875002,18.216699218749966],[103.94960937500008,18.318994140625023],[103.89882812500002,18.295312500000023],[103.79228515624999,18.31650390625009],[103.62968750000005,18.382568359375057],[103.48798828124995,18.41816406250001],[103.36699218750005,18.42333984375],[103.28828124999995,18.408398437499955],[103.25175781249999,18.373486328125125],[103.24892578125014,18.338964843750034],[103.27958984374999,18.304980468750045],[103.26318359375,18.278466796875136],[103.19970703125006,18.25947265625001],[103.14853515625009,18.221728515624932],[103.09121093750014,18.13823242187499],[103.05136718750003,18.02851562500001],[102.80742187500005,17.945556640625],[102.71757812500005,17.892236328125136],[102.67519531250014,17.851757812500068],[102.68007812500008,17.824121093750136],[102.66064453125,17.8179687499999],[102.61679687500015,17.833349609375034],[102.59824218750009,17.926757812500057],[102.55253906249999,17.965087890625057],[102.4587890625001,17.984619140624943],[102.35185546874999,18.045947265625045],[102.14824218750005,18.203857421875057],[102.10146484375014,18.21064453125001],[102.03457031250002,18.169824218750023],[101.94746093750001,18.081494140624955],[101.87548828125011,18.046435546874932],[101.81865234375005,18.064648437500125],[101.77480468750002,18.033398437500125],[101.6875,17.889404296875114],[101.56367187500001,17.820507812500125],[101.55507812500002,17.812353515625034],[101.41367187500015,17.71875],[101.16748046875011,17.4990234375],[101.10517578125001,17.479541015625102],[100.9084960937501,17.583886718750023],[101.14394531250008,18.14262695312499],[101.1375,18.286865234375057],[101.0505859375001,18.407031250000045],[101.04697265625003,18.441992187500034],[101.28632812499995,18.977148437500034],[101.19755859374999,19.327929687500045],[101.22080078125015,19.486621093750045],[101.21191406250011,19.548339843750057],[100.51357421875008,19.553466796875],[100.39765625000013,19.756103515625057],[100.51953125000006,20.177929687500068],[100.31796875000003,20.385888671875136],[100.2180664062501,20.339599609375114],[100.13974609375015,20.245410156250102],[100.11494140625007,20.25766601562492],[100.12246093750002,20.316650390625057],[100.12968750000005,20.372216796875023],[100.1838867187501,20.589111328124943],[100.2493164062501,20.730273437499932],[100.32607421875008,20.795703124999932],[100.40742187499995,20.823242187500057],[100.56513671875013,20.82509765625008],[100.62294921875002,20.85957031250001],[100.61767578125,20.87924804687509],[100.54931640625011,20.884228515625068],[100.5222656250001,20.921923828125102],[100.53613281250006,20.992382812500068],[100.703125,21.25136718750008],[101.0803710937501,21.46865234375008],[101.13886718750013,21.567480468749977],[101.19667968750002,21.522070312499977],[101.17539062500009,21.407519531250102],[101.21992187500013,21.342431640625136],[101.21181640625008,21.278222656250023],[101.22441406249999,21.22373046874992],[101.24785156249993,21.197314453125045],[101.28144531250007,21.184130859375045],[101.44355468750001,21.230810546874977],[101.54238281250008,21.234277343750136],[101.70478515625013,21.150146484375057],[101.728125,21.15639648437508],[101.78349609374999,21.204150390625045],[101.8005859375001,21.212597656249955],[101.7229492187501,21.314941406250057],[101.74726562500007,21.60576171874999],[101.7439453125001,21.77797851562508],[101.73652343750001,21.826513671874977],[101.52451171874998,22.253662109375],[101.56787109375011,22.2763671875],[101.6199218750001,22.327441406250102],[101.67148437500009,22.462304687500023],[101.70751953125,22.486572265625],[101.73876953125011,22.495263671874966],[101.75996093750001,22.490332031250034],[101.841796875,22.388476562500102],[102.02441406250006,22.439208984375114],[102.09150390625007,22.412255859375136],[102.12744140625011,22.37919921874999]]]},"properties":{"name":"Lao PDR","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[35.869140625,33.43173828125],[35.411230468750006,33.07568359375],[35.10859375000001,33.08369140625],[35.64785156250002,34.2482421875],[35.97626953125001,34.629199218749996],[36.383886718750006,34.65791015625],[36.32988281250002,34.499609375],[36.50439453125,34.432373046875],[36.5849609375,34.221240234374996],[36.27783203125,33.92529296875],[36.36503906250002,33.83935546875],[35.98613281250002,33.75263671875],[36.03447265625002,33.58505859375],[35.869140625,33.43173828125]]]},"properties":{"name":"Lebanon","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-8.486425781249977,7.558496093749994],[-8.408740234374989,7.411816406249997],[-8.324511718749989,6.920019531249991],[-8.587890625,6.490527343749989],[-8.287109375,6.319042968749997],[-7.981591796874994,6.2861328125],[-7.888623046874983,6.23486328125],[-7.800927734374994,6.038916015624991],[-7.730371093749994,5.919042968749991],[-7.636132812499994,5.90771484375],[-7.454394531249989,5.84130859375],[-7.39990234375,5.550585937499989],[-7.585058593749977,4.916748046875],[-7.574658203124983,4.572314453124989],[-7.544970703124989,4.351318359375],[-8.259033203125,4.589990234374994],[-9.132177734374977,5.054638671874997],[-10.2763671875,6.07763671875],[-11.291601562499977,6.688232421875],[-11.507519531249983,6.906542968749989],[-11.267675781249977,7.232617187499997],[-10.878076171874994,7.538232421874994],[-10.6474609375,7.759375],[-10.570849609374989,8.071142578124991],[-10.516748046874994,8.125292968749989],[-10.359814453124983,8.187939453124997],[-10.283203125,8.485156249999989],[-10.233056640624994,8.488818359374989],[-10.147412109374983,8.519726562499997],[-10.064355468749994,8.429882812499997],[-9.781982421875,8.537695312499991],[-9.518261718749983,8.34609375],[-9.369140625,7.703808593749997],[-9.463818359374983,7.415869140624991],[-9.11757812499999,7.215917968749991],[-8.8896484375,7.2626953125],[-8.659765624999977,7.688378906249994],[-8.486425781249977,7.558496093749994]]]},"properties":{"name":"Liberia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[25.150488281250006,31.654980468749997],[24.85273437500001,31.334814453125],[24.96142578125,30.678515625],[24.703222656250006,30.201074218749994],[24.980273437500017,29.181884765625],[24.980273437500017,25.5888671875],[24.980273437500017,21.995849609375],[24.9794921875,20.002587890624994],[23.980273437500017,19.99594726562499],[23.980273437500017,19.496630859375003],[20.14765625000001,21.38925781249999],[15.984082031250011,23.445214843749994],[14.97900390625,22.99619140624999],[14.215527343750011,22.619677734375003],[13.48125,23.18017578125],[11.967871093750006,23.517871093750003],[11.507617187500017,24.314355468749994],[10.686132812500006,24.55136718749999],[10.395898437500023,24.485595703125],[10.255859375,24.591015625],[10.000683593750011,25.332080078125003],[9.4482421875,26.067138671875],[9.491406250000011,26.333740234375],[9.883203125000023,26.630810546874997],[9.74755859375,27.330859375],[9.916015625,27.785693359374996],[9.805273437500006,29.176953125],[9.310253906250011,30.115234375],[9.51875,30.229394531249994],[9.89501953125,30.3873046875],[9.932519531250023,30.425341796874996],[10.059765625000011,30.580078125],[10.21640625,30.783203125],[10.114941406250011,31.463769531249994],[10.274609375000011,31.684960937499994],[10.475781250000011,31.736035156249997],[10.60888671875,31.929541015625],[10.826367187500011,32.0806640625],[11.005175781250017,32.172705078125],[11.168261718750017,32.256738281249994],[11.358007812500006,32.34521484375],[11.504980468750006,32.413671875],[11.535937500000017,32.47333984375],[11.533789062500006,32.524951171874996],[11.453906250000017,32.642578125],[11.453906250000017,32.781689453125],[11.459179687500011,32.897363281249994],[11.467187500000023,32.965722656249994],[11.504589843750011,33.181933593749996],[11.657128906250023,33.118896484375],[11.8134765625,33.093701171875],[12.279882812500006,32.858544921874994],[12.753515625,32.801074218749996],[13.283496093750017,32.9146484375],[15.176562500000017,32.391162109374996],[15.705957031250023,31.426416015624994],[17.830468750000023,30.927587890625],[18.669824218750023,30.415673828124994],[19.12373046875001,30.26611328125],[19.713281250000023,30.48837890625],[20.11152343750001,30.963720703125],[19.926367187500006,31.817529296874994],[20.121484375000023,32.21875],[20.62109375,32.58017578125],[21.63593750000001,32.937304687499996],[22.187402343750023,32.918261718749996],[23.090625,32.61875],[23.10625,32.331445312499994],[23.28632812500001,32.213818359375],[24.129687500000017,32.009228515625],[24.878515625,31.984277343749994],[25.150488281250006,31.654980468749997]]]},"properties":{"name":"Libya","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-60.89521484375,13.821972656249997],[-60.951416015625,13.717578125],[-61.073144531249994,13.865576171874991],[-60.908105468749994,14.09335937499999],[-60.89521484375,13.821972656249997]]]},"properties":{"name":"Saint Lucia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[79.87480468750002,9.050732421875026],[79.90371093750005,8.975],[79.74765625000006,9.104589843749991],[79.87480468750002,9.050732421875026]]],[[[79.98232421875,9.812695312500011],[80.25283203125005,9.796337890625054],[80.71113281250004,9.366357421875023],[81.226953125,8.50551757812498],[81.37285156250002,8.431445312499989],[81.42216796875007,8.147851562500023],[81.87412109375012,7.288330078124986],[81.86142578125012,6.901269531249994],[81.63740234375004,6.425146484374991],[80.72412109375003,5.97905273437496],[80.26738281250007,6.009765625],[80.09531250000012,6.153173828125006],[79.859375,6.829296874999983],[79.71298828125012,8.18232421875004],[79.74980468750007,8.294238281250003],[79.78349609375007,8.018457031250051],[79.92890625000004,8.899218749999974],[80.09960937499997,9.209960937500043],[80.08632812500005,9.577832031250026],[80.42832031250006,9.480957031250014],[80.04580078125005,9.649902343749972],[79.98232421875,9.812695312500011]]]]},"properties":{"name":"Sri Lanka","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[28.646875,-30.1265625],[28.39208984375,-30.147558593750006],[28.128710937500017,-30.52509765625001],[28.05683593750001,-30.63105468750001],[27.753125,-30.6],[27.364062500000017,-30.27919921875001],[27.19355468750001,-29.94130859375001],[27.056933593750017,-29.625585937500006],[27.29453125,-29.519335937500003],[27.73554687500001,-28.940039062500006],[27.959863281250023,-28.873339843750003],[28.084375,-28.77998046875001],[28.23261718750001,-28.701269531250006],[28.471875,-28.615820312500006],[28.583398437500023,-28.594140625],[28.625781250000017,-28.58173828125001],[29.301367187500006,-29.08984375],[29.38671875,-29.31972656250001],[29.34882812500001,-29.441992187500006],[29.293554687500006,-29.56689453125],[29.1421875,-29.700976562500003],[29.098046875000023,-29.919042968750006],[28.646875,-30.1265625]]]},"properties":{"name":"Lesotho","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[20.957812500000074,55.27890625000006],[20.89980468750008,55.286669921875045],[21.11484375,55.61650390624999],[20.957812500000074,55.27890625000006]]],[[[25.573046875000017,54.139892578125],[25.497363281250045,54.17524414062501],[25.52734375000003,54.21513671874996],[25.505664062500045,54.26494140624999],[25.46113281250004,54.29277343749996],[25.179492187500017,54.214257812499966],[25.111425781250006,54.15493164062505],[25.04609375000004,54.13305664062503],[24.869531250000023,54.14516601562502],[24.82568359374997,54.118994140625006],[24.78925781250001,53.99824218750001],[24.768164062499977,53.97465820312499],[24.31796875,53.892968749999966],[24.236621093750045,53.91997070312496],[24.19130859375005,53.95043945312503],[23.559082031250057,53.91982421875002],[23.484667968750074,53.939794921875006],[23.453613281250057,54.14345703125002],[23.3701171875,54.20048828124999],[23.282324218750063,54.240332031250034],[23.17031250000008,54.28144531249998],[23.0875,54.299462890624994],[23.042187500000068,54.30419921875],[23.01552734375005,54.34833984375001],[22.976757812500068,54.36635742187505],[22.89394531250008,54.390527343749994],[22.82373046874997,54.39580078124999],[22.766210937499977,54.356787109375034],[22.679882812500068,54.493017578125006],[22.684472656250023,54.56293945312504],[22.82470703125,54.87128906249998],[22.56728515625005,55.05913085937496],[22.072363281250034,55.06367187499998],[21.235742187500023,55.26411132812498],[21.237890625000034,55.455029296874955],[21.06191406250005,55.81342773437498],[21.053808593750006,56.02294921875003],[21.04609375000004,56.07006835937503],[21.31464843750004,56.18813476562502],[21.65351562500004,56.314550781250006],[22.084570312500034,56.40673828125006],[22.875585937500063,56.39643554687501],[22.96826171875003,56.38041992187502],[23.042968750000057,56.324072265625006],[23.119824218749983,56.330664062500006],[23.195898437500034,56.36713867187498],[24.120703125000063,56.26425781249998],[24.90302734375001,56.398193359375],[25.069921875,56.20039062500004],[25.663183593750063,56.104833984375006],[26.593554687500074,55.66752929687502],[26.590820312500057,55.62265625],[26.56660156250001,55.546484375000034],[26.51923828125004,55.448144531249994],[26.469531250000045,55.371923828125006],[26.457617187500006,55.342480468749955],[26.49531250000004,55.31801757812502],[26.68125,55.30644531249999],[26.76015625000008,55.29335937499999],[26.775683593750045,55.27309570312502],[26.601171875000034,55.130175781250045],[26.291796875000074,55.13959960937501],[26.250781250000045,55.12451171875006],[26.175195312500023,55.003271484375034],[26.092968750000068,54.96230468750005],[25.964453124999977,54.947167968749966],[25.85927734375005,54.91928710937498],[25.722460937500074,54.71787109374998],[25.731640625000068,54.59038085937502],[25.72480468750001,54.564257812500045],[25.68515625,54.53579101562502],[25.62031250000004,54.46040039062501],[25.56757812500004,54.377050781250006],[25.54736328125,54.33183593750002],[25.55751953125005,54.310693359374994],[25.702539062499994,54.29296875],[25.765234374999977,54.179785156250034],[25.573046875000017,54.139892578125]]]]},"properties":{"name":"Lithuania","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[6.4873046875,49.798486328124994],[6.344335937500006,49.452734375],[6.181054687500023,49.498925781249994],[6.119921875000017,49.485205078125],[6.074121093750023,49.454638671874996],[6.011425781250011,49.445458984374994],[5.95947265625,49.454638671874996],[5.928906250000011,49.4775390625],[5.9013671875,49.48974609375],[5.823437500000011,49.505078125],[5.789746093750011,49.53828125],[5.776710379464286,49.639953962053575],[5.744042968750023,49.91962890625],[5.7880859375,49.961230468749996],[5.8173828125,50.0126953125],[5.866894531250011,50.0828125],[5.976269531250011,50.1671875],[6.089062500000011,50.154589843749996],[6.110058593750011,50.123779296875],[6.116503906250017,50.120996093749994],[6.109765625000023,50.034375],[6.13818359375,49.97431640625],[6.204882812500017,49.91513671875],[6.272327008928583,49.887234933035714],[6.4873046875,49.798486328124994]]]},"properties":{"name":"Luxembourg","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[28.14794921875,56.142919921875],[27.576757812500006,55.798779296875],[27.052539062500017,55.83056640625],[26.593554687500017,55.667529296874996],[25.663183593750006,56.104833984375],[25.069921875,56.200390625],[24.90302734375001,56.398193359375],[24.120703125,56.2642578125],[23.81269531250001,56.329248046875],[23.195898437500006,56.367138671875],[23.11982421875001,56.3306640625],[23.04296875,56.324072265625],[22.875585937500006,56.396435546875],[22.084570312500006,56.40673828125],[21.730566406250006,56.325976562499996],[21.65351562500001,56.31455078125],[21.31464843750001,56.188134765625],[21.04609375000001,56.070068359375],[21.0712890625,56.82373046875],[21.72871093750001,57.57099609375],[22.554589843750023,57.724267578125],[23.28730468750001,57.08974609375],[23.647753906250017,56.971044921875],[24.382617187500017,57.250048828124996],[24.322558593750017,57.87060546875],[24.3625,57.866162109375],[24.458886718750023,57.907861328125],[25.11103515625001,58.063427734375],[25.27265625000001,58.009375],[25.66015625,57.920166015625],[26.29804687500001,57.60107421875],[26.532617187500023,57.531005859375],[26.96601562500001,57.609130859375],[27.187109375,57.538330078125],[27.326562500000023,57.52548828125],[27.4697265625,57.5240234375],[27.538671875,57.42978515625],[27.796875,57.316943359374996],[27.82861328125,57.293310546875],[27.838281250000023,57.247705078125],[27.83027343750001,57.194482421875],[27.639453125000017,56.845654296875],[27.806054687500023,56.86708984375],[27.8486328125,56.85341796875],[27.89208984375,56.741064453125],[28.00751953125001,56.599853515625],[28.103125,56.545703125],[28.11083984375,56.510693359375],[28.169238281250017,56.386865234375],[28.191699218750017,56.315576171875],[28.202050781250023,56.260400390625],[28.14794921875,56.142919921875]]]},"properties":{"name":"Latvia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[28.2125,45.450439453125],[28.07470703125,45.598974609375],[28.23945312500001,46.6408203125],[28.07177734375,46.978417968749994],[27.614062500000017,47.34052734375],[26.980761718750017,48.155029296875],[26.618945312500017,48.25986328125],[26.640429687500017,48.294140625],[26.847070312500023,48.387158203125],[26.90058593750001,48.371923828125],[27.228515625,48.371435546875],[27.549218750000023,48.477734375],[28.34052734375001,48.144433593749994],[28.42304687500001,48.146875],[29.125390625000023,47.96455078125],[29.134863281250006,47.489697265625],[29.455664062500006,47.292626953124994],[29.57197265625001,46.964013671874994],[29.7197265625,46.88291015625],[29.877832031250023,46.82890625],[29.942480468750006,46.723779296874994],[29.93476562500001,46.625],[29.92431640625,46.538867187499996],[30.13105468750001,46.423095703125],[30.07568359375,46.377832031249994],[29.878027343750006,46.360205078125],[29.837890625,46.350537109375],[29.458789062500017,46.453759765624994],[29.30488281250001,46.466601562499996],[29.22382812500001,46.376953125],[29.20458984375,46.379345703125],[29.20078125,46.50498046875],[29.18623046875001,46.523974609374996],[29.146289062500017,46.526904296874996],[28.958398437500023,46.45849609375],[28.92744140625001,46.424121093749996],[28.930566406250023,46.362255859375],[28.94375,46.288427734375],[29.00625,46.17646484375],[28.971875,46.12763671875],[28.94775390625,46.049951171874994],[28.849511718750023,45.978662109374994],[28.73876953125,45.937158203124994],[28.729296875000017,45.852001953125],[28.667578125,45.793847656249994],[28.562304687500017,45.735791015625],[28.491601562500023,45.665771484375],[28.4990234375,45.517724609374994],[28.310351562500017,45.498583984374996],[28.26484375000001,45.48388671875],[28.2125,45.450439453125]]]},"properties":{"name":"Moldova","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[49.936425781249994,-16.90292968750002],[49.82402343750002,-17.08652343750002],[50.02304687500006,-16.6953125],[49.936425781249994,-16.90292968750002]]],[[[48.3421875,-13.363867187500034],[48.21191406250003,-13.385253906249957],[48.191210937500074,-13.259960937500011],[48.308886718750074,-13.198242187499957],[48.3421875,-13.363867187500034]]],[[[49.53828125000004,-12.432128906250014],[49.9375,-13.072265624999957],[50.23535156249997,-14.732031249999963],[50.482714843750074,-15.385644531249994],[50.20898437499997,-15.960449218750028],[50.02041015625005,-15.801757812500028],[49.89257812500003,-15.457714843750011],[49.664355468750074,-15.521582031249977],[49.83906250000004,-16.486523437499997],[49.76718750000006,-16.815136718749983],[49.44931640625006,-17.240625],[49.477832031250074,-17.89853515624999],[49.362890625,-18.336328125],[47.934472656249994,-22.393945312500023],[47.55800781250005,-23.874609374999963],[47.17734375,-24.787207031249977],[46.72851562499997,-25.14990234374997],[46.15869140624997,-25.230371093750023],[45.5080078125001,-25.56318359374997],[45.2057617187501,-25.57050781250004],[44.0353515625001,-24.995703125],[43.670019531250006,-24.30029296875],[43.722265625,-23.529687500000037],[43.2648437500001,-22.38359375],[43.29052734374997,-21.93251953124998],[43.50185546875005,-21.356445312499957],[43.800195312499994,-21.179199218749986],[44.40468750000005,-19.922070312500026],[44.44882812500006,-19.42871093749997],[44.23876953124997,-19.075195312499986],[44.23310546875004,-18.740625],[44.04003906249997,-18.288476562500023],[43.979394531249994,-17.3916015625],[44.42138671874997,-16.70263671874997],[44.476171875,-16.217285156249957],[44.90917968749997,-16.174511718750026],[45.2228515625001,-15.95048828124996],[45.3421875,-16.03671875000002],[45.598242187500006,-15.992578125],[45.70019531249997,-15.813769531249989],[46.157519531250074,-15.738281249999972],[46.3996093750001,-15.924609375000017],[46.331445312499994,-15.713671875000031],[46.47509765625003,-15.513476562500003],[46.942285156249994,-15.219042968749974],[47.09921875,-15.43417968750002],[47.092578125000074,-15.150097656249969],[47.35195312500005,-14.766113281249986],[47.46474609375005,-14.713281249999966],[47.47832031250002,-15.009375],[47.77402343750006,-14.63671875],[47.964160156250074,-14.672558593750026],[47.773339843749994,-14.369921875],[47.995507812499994,-13.960449218749986],[47.88359375000002,-13.807519531250009],[47.94101562500006,-13.662402343750017],[48.03984375000002,-13.596289062499963],[48.25527343750005,-13.719335937499977],[48.796484375,-13.267480468750023],[48.91943359375003,-12.839062499999969],[48.78632812500004,-12.470898437500011],[48.931738281250006,-12.4390625],[49.20703124999997,-12.079589843749957],[49.53828125000004,-12.432128906250014]]]]},"properties":{"name":"Madagascar","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-91.68369140624998,18.677343750000034],[-91.81611328124995,18.675878906250006],[-91.53671874999998,18.760009765625],[-91.68369140624998,18.677343750000034]]],[[[-86.93964843750001,20.303320312500006],[-86.97797851562498,20.489794921875074],[-86.76328124999995,20.579052734374955],[-86.93964843750001,20.303320312500006]]],[[[-106.50224609374999,21.61083984375003],[-106.60703124999993,21.561474609374983],[-106.63935546874995,21.697851562499977],[-106.50224609374999,21.61083984375003]]],[[[-110.56738281249994,25.003466796875017],[-110.5388671875,24.89155273437504],[-110.69926757812499,25.081445312499994],[-110.56738281249994,25.003466796875017]]],[[[-112.05727539062498,24.545703125000017],[-112.29677734375002,24.789648437500063],[-112.15942382812501,25.28564453125003],[-112.19501953124998,24.841064453125057],[-112.05727539062498,24.545703125000017]]],[[[-111.10029296874998,26.020605468750006],[-111.224658203125,25.83588867187504],[-111.18291015625002,26.040625],[-111.10029296874998,26.020605468750006]]],[[[-115.17060546875001,28.06938476562496],[-115.35292968750002,28.103955078124983],[-115.23354492187495,28.36835937500004],[-115.17060546875001,28.06938476562496]]],[[[-112.20307617187503,29.00532226562504],[-112.27841796875,28.769335937500017],[-112.51406249999997,28.847607421874955],[-112.42353515625,29.203662109375017],[-112.28505859374994,29.240429687499955],[-112.20307617187503,29.00532226562504]]],[[[-113.15561523437502,29.05224609375],[-113.49633789062497,29.30761718749997],[-113.58720703125002,29.57304687499996],[-113.20214843749999,29.301855468750034],[-113.15561523437502,29.05224609375]]],[[[-97.14624023437494,25.961474609375045],[-97.66767578124995,24.389990234374977],[-97.84248046874995,22.510302734375017],[-97.76328124999998,22.105859374999966],[-97.31450195312496,21.56420898437503],[-97.40917968749997,21.272558593750034],[-97.38344726562497,21.56669921874999],[-97.75380859375002,22.02666015624999],[-97.18632812499996,20.717041015625],[-96.45605468749994,19.869775390624966],[-96.28955078124994,19.34375],[-95.778125,18.805517578125034],[-95.92036132812495,18.81958007812497],[-95.62680664062503,18.690576171874994],[-95.71982421874998,18.768359375000017],[-95.18183593749995,18.700732421875017],[-94.79814453124996,18.51459960937501],[-94.45976562499993,18.166650390624994],[-93.55234375,18.430468750000017],[-92.88476562499997,18.468652343749966],[-92.44101562499998,18.67529296874997],[-91.97377929687502,18.715869140625074],[-91.91357421875,18.52851562500001],[-91.53398437499993,18.45654296875],[-91.27524414062498,18.62446289062501],[-91.34306640624996,18.900585937499955],[-91.43666992187502,18.889794921874966],[-90.73925781249994,19.352246093749955],[-90.69316406249996,19.729882812499966],[-90.49169921874997,19.94677734375003],[-90.353125,21.009423828124966],[-89.81977539062495,21.274609374999983],[-88.46669921874997,21.569384765625017],[-88.0068359375,21.604052734375045],[-87.25087890625,21.44697265625004],[-87.18828124999993,21.546435546875045],[-87.36850585937498,21.57373046875],[-87.034765625,21.592236328124955],[-86.824072265625,21.421679687500017],[-86.77177734374999,21.150537109375023],[-86.92622070312493,20.786474609375034],[-87.42138671875,20.23139648437501],[-87.44174804687498,19.861523437499983],[-87.68769531249998,19.63710937499999],[-87.6453125,19.55390625000001],[-87.42475585937498,19.583349609375063],[-87.65869140625003,19.352343750000074],[-87.65576171874997,19.25786132812499],[-87.50107421874998,19.287792968749983],[-87.76181640624998,18.446142578125006],[-87.88198242187497,18.27387695312501],[-88.05644531249996,18.524462890625074],[-88.03173828125,18.838916015625017],[-88.29565429687494,18.47241210937503],[-88.52299804687499,18.445898437500063],[-88.80634765624998,17.965527343749983],[-89.13354492187503,17.970800781249977],[-89.16147460937503,17.81484375],[-90.98916015624997,17.81640624999997],[-90.99296874999993,17.25244140625],[-91.19550781249998,17.254101562499983],[-91.40961914062501,17.255859375],[-90.975830078125,16.867822265624994],[-90.710693359375,16.708105468750034],[-90.65996093749996,16.630908203125045],[-90.634375,16.565136718749955],[-90.63408203125002,16.51074218749997],[-90.57578124999995,16.467822265625017],[-90.47109374999994,16.439550781250034],[-90.41699218750003,16.391015625000023],[-90.41699218750003,16.351318359375],[-90.45014648437493,16.261376953124994],[-90.45986328124997,16.16235351562497],[-90.44716796874994,16.07270507812501],[-90.52197265625,16.07119140625005],[-90.70322265624998,16.07104492187503],[-90.97958984374998,16.07080078124997],[-91.433984375,16.070458984374994],[-91.736572265625,16.070166015625006],[-91.95722656250001,15.703222656250034],[-92.08212890624998,15.495556640625011],[-92.18715820312497,15.320898437499963],[-92.07480468749998,15.074218749999972],[-92.09873046874998,15.026757812499994],[-92.14423828125001,15.001953125],[-92.158544921875,14.963574218749997],[-92.23515625,14.545410156249986],[-93.91606445312493,16.053564453125006],[-94.374169921875,16.284765625000034],[-94.426416015625,16.22626953125001],[-94.00126953124996,16.018945312499966],[-94.66152343750002,16.20190429687503],[-94.58710937499995,16.315820312499966],[-94.79082031249999,16.28715820312499],[-94.85869140624996,16.41972656249999],[-95.02084960937503,16.277636718750017],[-94.79941406249995,16.20966796875001],[-95.134375,16.17695312500001],[-96.21357421874993,15.693066406250011],[-96.80795898437495,15.726416015624977],[-97.18466796874998,15.909277343750006],[-97.75478515624994,15.966845703125017],[-98.52031249999993,16.30483398437505],[-98.76220703125,16.534765624999977],[-99.69067382812499,16.719628906249994],[-100.847802734375,17.20048828124999],[-101.91870117187494,17.959765625000045],[-102.69956054687495,18.062841796875006],[-103.44160156249995,18.32539062500001],[-103.91245117187496,18.828466796875006],[-104.9384765625,19.309375],[-105.482080078125,19.97607421875003],[-105.66943359374997,20.385595703124977],[-105.26015625,20.579052734374955],[-105.32705078124994,20.752978515625045],[-105.51083984374999,20.808740234375023],[-105.23706054687499,21.119189453125045],[-105.20869140624998,21.490820312499977],[-105.43144531249997,21.618261718750006],[-105.64912109375001,21.988085937500045],[-105.64550781249999,22.32690429687497],[-105.79179687500003,22.627490234375017],[-106.93549804687497,23.88125],[-107.76494140625002,24.47192382812497],[-107.52724609375001,24.36005859375001],[-107.51191406249998,24.489160156250023],[-107.95117187499994,24.614892578124966],[-108.28076171874994,25.08154296875],[-108.05146484374995,25.067041015624994],[-108.69638671874998,25.382910156250034],[-108.78725585937502,25.53803710937501],[-109.02880859375003,25.48046875000003],[-108.886572265625,25.733447265625045],[-109.19648437499998,25.59252929687503],[-109.38496093750001,25.727148437500006],[-109.42563476562495,26.032568359375063],[-109.19970703125003,26.30522460937499],[-109.11669921874999,26.25273437499996],[-109.27626953125,26.533886718749955],[-109.48286132812498,26.710351562500023],[-109.75478515624995,26.702929687500017],[-109.94399414062495,27.079345703125057],[-110.37729492187495,27.233300781249966],[-110.59267578124995,27.544335937500023],[-110.52988281249995,27.864208984374983],[-111.12138671875002,27.966992187499983],[-112.16176757812495,29.018896484375034],[-113.05766601562496,30.651025390625023],[-113.04672851562495,31.17924804687499],[-113.62348632812494,31.34589843750001],[-113.75942382812501,31.557763671874994],[-113.94775390625001,31.62934570312501],[-114.14931640624995,31.507373046875045],[-114.93359374999994,31.900732421874977],[-114.78989257812498,31.647119140624994],[-114.88188476562499,31.156396484375023],[-114.55048828124997,30.02226562499999],[-113.75546875,29.367480468750017],[-113.49970703124995,28.92670898437501],[-113.20556640624997,28.798779296874955],[-113.09365234375001,28.511767578125017],[-112.870849609375,28.42421875000005],[-112.73403320312501,27.825976562500017],[-112.32919921874996,27.52343750000003],[-111.86264648437495,26.678515625000017],[-111.6994140625,26.58095703125005],[-111.79526367187499,26.8796875],[-111.56967773437495,26.707617187500006],[-111.29160156249996,25.78979492187497],[-110.68676757812501,24.867675781250057],[-110.65932617187502,24.34145507812505],[-110.36743164062497,24.100488281249994],[-110.30375976562497,24.339453125],[-110.02280273437502,24.17460937499999],[-109.6765625,23.66157226562501],[-109.42084960937495,23.480126953124994],[-109.49570312500002,23.159814453125023],[-110.00625,22.894042968750057],[-110.3626953125,23.60493164062501],[-111.68291015625002,24.555810546875023],[-111.80249023437494,24.542529296875074],[-112.07255859374999,24.84003906250001],[-112.06987304687497,25.572851562500006],[-112.37724609374997,26.21391601562496],[-113.02075195312499,26.58325195312497],[-113.15581054687496,26.94624023437504],[-113.27226562499997,26.79096679687501],[-113.59853515625001,26.721289062500034],[-113.84096679687502,26.966503906249983],[-114.44526367187503,27.218164062499994],[-114.53989257812495,27.431103515624955],[-114.99350585937499,27.736035156249983],[-115.03647460937495,27.84184570312496],[-114.57001953124995,27.78393554687497],[-114.30058593749995,27.87299804687501],[-114.30224609375003,27.775732421875006],[-114.0693359375,27.67568359375005],[-114.15839843750003,27.919677734375],[-114.26586914062499,27.934472656249994],[-114.04848632812502,28.42617187499999],[-114.93730468749999,29.35161132812496],[-115.67382812500003,29.756396484375017],[-116.06215820312501,30.80415039062504],[-116.29628906250001,30.97050781249999],[-116.33344726562494,31.202783203124994],[-116.66215820312495,31.56489257812504],[-116.72207031249998,31.734570312499955],[-116.62080078124995,31.85107421874997],[-116.84799804687496,31.997363281250045],[-117.12827148437495,32.533349609374994],[-114.72475585937495,32.71533203125003],[-114.83593749999994,32.50830078125003],[-111.0419921875,31.32421875000003],[-108.21445312499993,31.329443359375034],[-108.21181640625002,31.779345703125017],[-106.44541015624996,31.768408203125006],[-106.14804687499995,31.450927734375],[-104.97880859374996,30.645947265624955],[-104.50400390624995,29.677685546874955],[-104.110595703125,29.386132812499994],[-103.16831054687498,28.998193359374994],[-102.8919921875,29.216406250000034],[-102.61494140624994,29.75234375],[-102.26894531249998,29.871191406250034],[-101.44038085937503,29.77685546875],[-100.75458984375001,29.182519531249994],[-100.29604492187495,28.32768554687499],[-99.50532226562497,27.54833984375003],[-99.45654296874999,27.05668945312496],[-99.10776367187498,26.446923828124994],[-97.37563476562497,25.871826171875],[-97.14624023437494,25.961474609375045]]]]},"properties":{"name":"Mexico","childNum":10}},{"geometry":{"type":"Polygon","coordinates":[[[22.344042968750017,42.31396484375],[22.836816406250023,41.993603515625],[23.00361328125001,41.73984375],[22.916015625,41.336279296875],[22.78388671875001,41.331982421875],[22.72480468750001,41.178515625],[22.603613281250006,41.140185546874996],[22.493554687500023,41.118505859375],[22.184472656250023,41.158642578125],[21.99335937500001,41.13095703125],[21.77949218750001,40.950439453125],[21.627539062500006,40.896337890625],[21.57578125,40.868945312499996],[20.964257812500023,40.849902343749996],[20.709277343750017,40.928369140624994],[20.48896484375001,41.272607421874994],[20.566210937500017,41.873681640624994],[20.725,41.87353515625],[20.778125,42.071044921875],[21.05976562500001,42.171289062499994],[21.28662109375,42.100390625],[21.389550781250023,42.21982421875],[21.560839843750017,42.24765625],[21.5625,42.247509765625],[21.81464843750001,42.303125],[22.344042968750017,42.31396484375]]]},"properties":{"name":"Macedonia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[4.227636718750006,19.142773437499997],[4.234667968750017,16.996386718750003],[4.121289062500011,16.357714843750003],[3.842968750000011,15.701708984375003],[3.5205078125,15.483105468749997],[3.504296875000023,15.356347656249994],[3.06015625,15.427197265624997],[3.001074218750006,15.340966796874994],[1.300195312500023,15.272265625],[0.947460937500011,14.982128906249997],[0.217480468750011,14.911474609374991],[-0.235888671874989,15.059423828124991],[-0.760449218749983,15.047753906249994],[-1.049560546875,14.81953125],[-1.97304687499999,14.45654296875],[-2.113232421874983,14.16845703125],[-2.586718749999989,14.227587890625003],[-2.873925781249994,13.950732421875003],[-2.950830078124994,13.6484375],[-3.248632812499977,13.658349609374994],[-3.3017578125,13.28076171875],[-3.527636718749989,13.182714843749991],[-3.947314453124989,13.402197265624991],[-4.151025390624994,13.306201171875003],[-4.328710937499977,13.119042968749994],[-4.227099609374989,12.793701171875],[-4.480615234374994,12.672216796874991],[-4.4287109375,12.337597656249997],[-4.699316406249977,12.076171875],[-5.288134765624989,11.827929687499989],[-5.250244140625,11.375781249999989],[-5.490478515625,11.042382812499994],[-5.523535156249977,10.426025390625],[-5.556591796874983,10.43994140625],[-5.694287109374983,10.43320312499999],[-5.843847656249977,10.389550781249994],[-5.896191406249983,10.354736328125],[-5.907568359374977,10.307226562499991],[-6.034570312499994,10.19482421875],[-6.1171875,10.201904296875],[-6.238378906249977,10.261621093749994],[-6.241308593749977,10.279199218749994],[-6.192626953125,10.369433593749989],[-6.190673828125,10.400292968749994],[-6.250244140625,10.717919921874994],[-6.482617187499983,10.561230468749997],[-6.564599609374994,10.58642578125],[-6.654150390624977,10.656445312499997],[-6.676367187499977,10.6337890625],[-6.686132812499977,10.578027343749994],[-6.691992187499977,10.512011718749989],[-6.669335937499994,10.3921875],[-6.693261718749994,10.349462890624991],[-6.950341796874994,10.342333984374989],[-7.01708984375,10.143261718749997],[-7.385058593749989,10.340136718749989],[-7.6611328125,10.427441406249997],[-7.990625,10.1625],[-8.007275390624983,10.321875],[-8.266650390624989,10.485986328124994],[-8.33740234375,10.990625],[-8.666699218749983,11.009472656249997],[-8.398535156249977,11.366552734374991],[-8.822021484375,11.673242187499994],[-8.818310546874983,11.922509765624994],[-9.043066406249977,12.40234375],[-9.395361328124977,12.464648437499989],[-9.358105468749983,12.255419921874989],[-9.754003906249977,12.029931640624994],[-10.274853515624983,12.212646484375],[-10.709228515625,11.898730468749989],[-10.933203124999977,12.205175781249991],[-11.30517578125,12.015429687499989],[-11.502197265625,12.198632812499994],[-11.389404296875,12.404394531249991],[-11.390380859375,12.941992187499991],[-11.634960937499983,13.369873046875],[-11.831689453124994,13.315820312499994],[-12.05419921875,13.633056640625],[-11.960888671874983,13.875292968750003],[-12.019189453124994,14.206494140624997],[-12.228417968749994,14.45859375],[-12.280615234374977,14.809033203124997],[-12.104687499999983,14.745361328125],[-12.08154296875,14.766357421875],[-12.021582031249977,14.804931640625],[-11.76015625,15.425537109375],[-11.675878906249977,15.512060546874991],[-11.502685546875,15.636816406249991],[-11.455224609374994,15.62539062499999],[-10.9482421875,15.151123046875],[-10.696582031249989,15.42265625],[-9.94140625,15.373779296875],[-9.446923828124994,15.458203125],[-9.447705078124983,15.574853515624994],[-9.426562499999989,15.623046875],[-9.3505859375,15.677392578124994],[-9.33544921875,15.525683593750003],[-9.293701171875,15.502832031249994],[-5.5125,15.496289062499997],[-5.359912109374989,16.282861328124994],[-5.509619140624977,16.442041015624994],[-5.628662109375,16.568652343750003],[-5.65625,16.8095703125],[-5.684765624999983,17.058251953124994],[-5.713183593749989,17.306884765625],[-5.74169921875,17.555566406249994],[-5.827099609374983,18.3015625],[-6.026416015624989,20.0421875],[-6.396582031249977,23.274804687499994],[-6.482031249999977,24.020800781250003],[-6.538964843749994,24.51816406249999],[-6.5673828125,24.766796875],[-6.594091796874977,24.99462890625],[-6.287207031249977,24.994824218749997],[-5.959814453124977,24.99497070312499],[-5.640771484374994,24.995166015625003],[-4.822607421874977,24.99560546875],[-1.947900390624994,23.124804687500003],[1.1455078125,21.102246093749997],[1.165722656250011,20.817431640625003],[1.610644531250017,20.555566406249994],[1.685449218750023,20.378369140624997],[3.130273437500023,19.85019531249999],[3.255859375,19.4109375],[3.119726562500006,19.103173828124994],[3.3564453125,18.986621093750003],[4.227636718750006,19.142773437499997]]]},"properties":{"name":"Mali","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[14.566210937499989,35.85273437499998],[14.436425781250023,35.82167968750005],[14.351269531250011,35.978417968749994],[14.566210937499989,35.85273437499998]]]},"properties":{"name":"Malta","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[98.18261718749997,9.933447265625006],[98.11806640625,9.877880859375054],[98.2916992187501,10.051318359375031],[98.18261718749997,9.933447265625006]]],[[[98.20976562500002,10.952734375],[98.27148437499997,10.73989257812498],[98.08046875000005,10.886621093750037],[98.20976562500002,10.952734375]]],[[[98.55380859375012,11.744873046875],[98.52841796875012,11.538671875],[98.43476562500004,11.567089843750026],[98.37646484374997,11.79150390625],[98.55380859375012,11.744873046875]]],[[[98.516015625,11.905029296875028],[98.46621093750005,12.08427734374996],[98.60957031250004,11.956640624999977],[98.516015625,11.905029296875028]]],[[[98.06611328125004,12.389794921875023],[98.00234375000005,12.279003906250011],[97.93867187500004,12.34609375],[98.06611328125004,12.389794921875023]]],[[[98.41396484375005,12.597949218749974],[98.45947265625003,12.473730468749991],[98.3138671875,12.335986328124989],[98.31210937500006,12.678173828124983],[98.41396484375005,12.597949218749974]]],[[[98.31542968749997,13.099072265625026],[98.30917968750012,12.934716796875023],[98.26533203125004,13.202246093749991],[98.31542968749997,13.099072265625026]]],[[[94.80488281250004,15.8193359375],[94.73349609375006,15.823046875000045],[94.82802734375005,15.933007812499966],[94.80488281250004,15.8193359375]]],[[[94.47675781250004,15.945947265625023],[94.41191406250007,15.848388671875057],[94.3878906250001,15.994140624999972],[94.60126953125004,16.205517578124983],[94.47675781250004,15.945947265625023]]],[[[97.575,16.253222656250017],[97.48037109375,16.305712890625045],[97.54199218749997,16.505078124999983],[97.575,16.253222656250017]]],[[[93.6908203125,18.68427734375004],[93.4875,18.867529296875063],[93.74472656250006,18.865527343750017],[93.6908203125,18.68427734375004]]],[[[93.71484374999997,19.558251953124994],[93.94570312500005,19.428613281249966],[93.90195312500012,19.33203125],[93.75585937500003,19.325683593750057],[93.64404296874997,19.49506835937501],[93.71484374999997,19.558251953124994]]],[[[93.49179687500012,19.892578125],[93.51328125000006,19.754785156249994],[93.41289062500002,19.950341796875023],[93.49179687500012,19.892578125]]],[[[93.01015625000005,19.923925781249977],[93.02324218750007,19.82885742187497],[92.91464843750006,20.086474609375045],[93.01015625000005,19.923925781249977]]],[[[101.1388671875001,21.567480468749977],[101.08037109375007,21.468652343749994],[100.703125,21.251367187499966],[100.613671875,21.059326171875],[100.56660156250004,21.038183593750063],[100.53613281250003,20.992382812499955],[100.52226562500007,20.92192382812499],[100.54931640624997,20.884228515624955],[100.61767578125003,20.879248046875006],[100.62294921875005,20.859570312499983],[100.5651367187501,20.825097656249994],[100.4074218750001,20.823242187500057],[100.32607421875005,20.795703125000045],[100.24931640625002,20.730273437500045],[100.18388671875002,20.589111328125057],[100.12968750000002,20.372216796874994],[100.12246093750005,20.316650390625057],[100.0036132812501,20.37958984375001],[99.9542968750001,20.415429687500023],[99.8903320312501,20.424414062499977],[99.72011718750005,20.32543945312497],[99.45888671875005,20.363037109375],[99.48593750000006,20.14985351562501],[99.07421875000003,20.09936523437503],[98.9166992187501,19.77290039062504],[98.37128906250004,19.68916015625004],[98.01503906250005,19.74951171874997],[97.816796875,19.459960937500057],[97.74589843750002,18.58818359374999],[97.37392578125,18.51796875],[97.63222656250005,18.290332031250074],[97.7064453125,17.79711914062503],[98.4388671875,16.975683593750034],[98.66074218750006,16.330419921875006],[98.83544921875003,16.417578125],[98.88828125000006,16.351904296875034],[98.81796875000012,16.180810546874994],[98.59238281250006,16.05068359375005],[98.55693359375007,15.367675781249986],[98.19101562500012,15.204101562499972],[98.20214843749997,14.97592773437502],[98.57001953125004,14.359912109375031],[99.13681640625006,13.716699218749994],[99.12392578125,13.030761718750043],[99.40507812500002,12.547900390625003],[99.61474609374997,11.781201171875026],[99.1901367187501,11.105273437499989],[98.7572265625,10.660937499999974],[98.70253906250005,10.19038085937504],[98.56259765625006,10.034960937499989],[98.46494140625006,10.675830078124989],[98.67558593750007,10.986914062500034],[98.74140625000004,11.591699218749966],[98.87597656250003,11.719726562500028],[98.63632812500006,11.738378906250006],[98.69628906250003,12.225244140624994],[98.6002929687501,12.2453125],[98.67871093749997,12.348486328124963],[98.57597656250002,13.161914062500031],[98.20039062500004,13.980175781250026],[98.14951171875012,13.647607421875037],[98.11064453125007,13.712890625000014],[98.10019531250006,14.161523437500023],[97.90976562500012,14.652685546874991],[98.01875,14.652587890625057],[97.81230468750007,14.858935546874989],[97.7103515625,15.875537109375074],[97.58427734375007,16.019580078125017],[97.72597656250005,16.56855468750004],[97.37587890625005,16.52294921874997],[97.20019531249997,17.095410156249983],[96.85146484375005,17.401025390624994],[96.90859375000005,17.03095703125001],[96.76542968750002,16.710351562499966],[96.43115234374997,16.504931640625045],[96.18906250000012,16.768310546875057],[96.32431640625006,16.444433593750063],[95.76328125000006,16.169042968750006],[95.38955078125005,15.722753906250034],[95.30146484375004,15.756152343749989],[95.34677734375012,16.09760742187501],[95.17695312500004,15.825683593750028],[94.9425781250001,15.818261718750023],[94.89316406250006,16.182812499999955],[94.66152343750005,15.904394531250006],[94.70332031250004,16.511914062499955],[94.4416015625001,16.094384765624966],[94.22382812500004,16.016455078125006],[94.58896484375006,17.5693359375],[94.17070312500007,18.73242187499997],[94.24570312500006,18.741162109374983],[94.07001953125004,18.893408203125006],[94.04492187500003,19.287402343750074],[93.92919921874997,18.89965820312503],[93.70546875000005,19.026904296875017],[93.49306640625005,19.369482421875006],[93.82490234375004,19.238476562499955],[93.99814453125006,19.440869140624983],[93.61171875000005,19.776074218749983],[93.70703125000003,19.912158203125074],[93.25,20.070117187500017],[93.12949218750012,19.858007812500063],[93.00195312499997,20.074853515624994],[93.06679687500005,20.377636718749955],[92.82832031250004,20.177587890625063],[92.89111328124997,20.34033203125],[92.73564453125007,20.56269531250001],[92.72285156250004,20.29560546875004],[92.32412109375,20.791845703125063],[92.17958984375005,21.293115234375023],[92.33056640624997,21.439794921874977],[92.63164062500002,21.306201171875045],[92.5934570312501,21.46733398437499],[92.58281250000002,21.940332031249994],[92.57490234375004,21.978076171875045],[92.68896484374997,22.130957031250006],[92.72099609375002,22.132421875000063],[92.77138671875,22.104785156250017],[92.9645507812501,22.003759765625034],[93.07060546875002,22.20942382812501],[93.16201171875,22.360205078125006],[93.07871093750006,22.71821289062501],[93.20390625000002,23.03701171875005],[93.34941406250007,23.08496093750003],[93.36601562500007,23.132519531249955],[93.32626953125006,24.064208984375057],[93.45214843750003,23.987402343750034],[93.68339843750007,24.00654296875004],[94.07480468750006,23.8720703125],[94.29306640625012,24.321875],[94.37724609375002,24.473730468750006],[94.49316406250003,24.637646484374983],[94.70371093750012,25.097851562499955],[94.55302734375007,25.215722656249994],[94.66777343750007,25.458886718749966],[94.99199218750002,25.77045898437504],[95.01523437500006,25.912939453125006],[95.0929687500001,25.98730468749997],[95.13242187500006,26.041259765625057],[95.12929687500005,26.070410156250034],[95.10839843749997,26.091406250000034],[95.06894531250006,26.19111328125001],[95.0597656250001,26.473974609375006],[95.20146484375007,26.641406250000017],[96.19082031250005,27.26127929687499],[96.79785156249997,27.29619140624999],[96.95341796875002,27.13330078125003],[97.10205078125003,27.11542968750004],[97.10371093750004,27.16333007812503],[96.90195312500012,27.439599609374994],[96.88359375000002,27.514843749999955],[96.96279296875,27.698291015625017],[97.04970703125005,27.760009765625],[97.34355468750002,27.982324218749994],[97.30273437499997,28.08598632812496],[97.3224609375001,28.21796875000004],[97.35644531249997,28.254492187500006],[97.43144531250002,28.353906250000023],[97.53789062500002,28.510205078124983],[97.59921875000006,28.51704101562504],[98.06162109375012,28.185888671874977],[98.29882812499997,27.550097656250045],[98.4525390625,27.6572265625],[98.65117187500007,27.572460937499983],[98.7384765625001,26.785742187500006],[98.68554687499997,26.189355468750023],[98.56406250000006,26.072412109374994],[98.65625,25.86357421874999],[98.33378906250007,25.586767578125006],[98.14287109375007,25.571093750000017],[98.01074218749997,25.292529296875017],[97.8195312500001,25.251855468749994],[97.73789062500006,24.869873046875057],[97.58330078125002,24.77480468750005],[97.53144531250004,24.49169921875003],[97.7082031250001,24.228759765625],[97.56455078125012,23.911035156250023],[98.2125,24.110644531250017],[98.83505859375006,24.121191406250034],[98.67675781250003,23.905078125000045],[98.8322265625001,23.624365234374977],[98.86376953125003,23.191259765625034],[99.41806640625006,23.069238281250023],[99.50712890625002,22.959130859374994],[99.19296875000006,22.12597656249997],[99.9176757812501,22.02802734375001],[99.94072265625007,21.75874023437504],[100.14765625000004,21.480517578125017],[100.60458984375012,21.471777343750006],[101.07978515625004,21.75585937499997],[101.1388671875001,21.567480468749977]]]]},"properties":{"name":"Myanmar","childNum":15}},{"geometry":{"type":"Polygon","coordinates":[[[19.21875,43.449951171875],[19.670996093750006,43.163964843749994],[20.344335937500006,42.827929687499996],[20.054296875,42.760058593749996],[20.06396484375,42.54726562499999],[19.78828125000001,42.476171875],[19.65449218750001,42.628564453124994],[19.280664062500023,42.17255859375],[19.342382812500006,41.869091796875],[18.436328125000017,42.559716796874994],[18.5458984375,42.6416015625],[18.46601562500001,42.777246093749994],[18.44384765625,42.96845703125],[18.46015625000001,42.997900390625],[18.48847656250001,43.012158203125],[18.623632812500006,43.027685546875],[18.621875,43.124609375],[18.674218750000023,43.230810546875],[18.74921875000001,43.283544921875],[18.85107421875,43.346337890624994],[18.934667968750006,43.339453125],[18.97871093750001,43.285400390625],[19.026660156250017,43.292431640625],[19.03671875,43.357324218749994],[18.940234375000017,43.496728515624994],[18.95068359375,43.526660156249996],[18.97421875,43.542333984375],[19.0283203125,43.532519531249996],[19.080078125,43.517724609374994],[19.11279296875,43.52773437499999],[19.164355468750017,43.535449218749996],[19.1943359375,43.53330078125],[19.21875,43.449951171875]]]},"properties":{"name":"Montenegro","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[111.878125,43.68017578125],[111.00722656250002,43.34140625],[110.400390625,42.773681640625],[109.44316406249999,42.455957031249994],[109.33984375,42.438378906249994],[108.68730468749999,42.41611328125],[108.17119140624999,42.447314453124996],[106.77001953125,42.288720703124994],[105.86757812500002,41.993994140625],[105.31435546875002,41.770898437499994],[105.19707031249999,41.738037109375],[105.11542968750001,41.66328125],[105.05058593749999,41.61591796875],[104.98203125000003,41.595507812499996],[104.49824218750001,41.65869140625],[104.49824218750001,41.877001953124996],[104.30517578125,41.846142578125],[103.99726562500001,41.79697265625],[103.71113281250001,41.751318359375],[103.07285156250003,42.00595703125],[102.5751953125,42.092089843749996],[102.15664062500002,42.158105468749994],[101.97294921874999,42.215869140624996],[101.65996093749999,42.500048828124996],[101.5791015625,42.52353515625],[101.49531250000001,42.53876953125],[101.09199218750001,42.551318359374996],[100.51904296875,42.616796875],[100.08632812500002,42.670751953125],[99.98378906250002,42.67734375],[99.46787109375003,42.568212890625],[97.20566406250003,42.789794921875],[96.38544921875001,42.720361328124994],[95.85957031250001,43.2759765625],[95.52558593750001,43.953955078125],[95.32558593750002,44.039355468749996],[95.35029296875001,44.278076171875],[94.71201171875003,44.350830078125],[93.51621093750003,44.944482421874994],[92.78789062499999,45.0357421875],[92.57890624999999,45.010986328125],[92.423828125,45.008935546874994],[92.17265624999999,45.03525390625],[92.02978515625,45.068505859374994],[91.584375,45.076513671875],[91.05,45.217431640624994],[90.87724609374999,45.19609375],[90.66181640625001,45.525244140625],[91.00175781249999,46.035791015624994],[90.99677734375001,46.10498046875],[90.94755859374999,46.177294921874996],[90.91152343750002,46.270654296874994],[90.98574218750002,46.7490234375],[90.91054687500002,46.883251953125],[90.86992187499999,46.954492187499994],[90.79902343750001,46.98515625],[90.71552734375001,47.003857421875],[90.49619140625003,47.28515625],[90.42519531250002,47.5041015625],[90.34746093749999,47.596972656249996],[90.33066406250003,47.655175781249994],[90.31328124999999,47.67617187499999],[90.19101562500003,47.702099609375],[90.10322265625001,47.745410156249996],[90.02792968750003,47.877685546875],[89.95869140625001,47.886328125],[89.91044921874999,47.8443359375],[89.83134765624999,47.823291015624996],[89.778125,47.827001953125],[89.56093750000002,48.003955078124996],[89.47919921875001,48.029052734375],[89.04765624999999,48.0025390625],[88.97109375000002,48.049951171874994],[88.91777343749999,48.089013671874994],[88.83828125000002,48.101708984374994],[88.68183593750001,48.170556640624994],[88.57597656249999,48.220166015625],[88.56679687500002,48.317431640624996],[88.51708984375,48.38447265625],[88.41396484375002,48.40341796875],[88.30996093750002,48.472070312499994],[87.97968750000001,48.555126953125],[88.06005859375,48.707177734374994],[87.83183593749999,48.791650390624994],[87.7431640625,48.881640625],[87.87216796875003,49.000146484374994],[87.81630859375002,49.0802734375],[87.8251953125,49.11630859375],[87.81425781249999,49.1623046875],[87.93476562500001,49.16455078125],[87.98808593749999,49.186914062499994],[88.02851562500001,49.219775390624996],[88.11572265625,49.256298828125],[88.19257812500001,49.451708984374996],[88.63320312500002,49.486132812499996],[88.83164062500003,49.4484375],[88.86386718750003,49.527636718749996],[88.90019531249999,49.539697265624994],[88.94541015625003,49.507666015625],[88.97060546875002,49.483740234375],[89.00839843750003,49.472802734374994],[89.10947265625003,49.501367187499994],[89.17998046874999,49.5322265625],[89.20292968749999,49.595703125],[89.24394531249999,49.62705078125],[89.39560546875003,49.6115234375],[89.475,49.66054687499999],[89.57919921875003,49.69970703125],[89.65410156249999,49.71748046875],[89.64384765624999,49.90302734375],[90.0537109375,50.09375],[90.65507812499999,50.22236328125],[90.71435546875,50.259423828124994],[90.7607421875,50.305957031249996],[91.02158203125003,50.415478515625],[91.23378906250002,50.452392578125],[91.30058593749999,50.46337890625],[91.3408203125,50.470068359375],[91.4150390625,50.468017578125],[91.44648437500001,50.52216796875],[91.80429687500003,50.693603515625],[92.10400390625,50.6919921875],[92.1923828125,50.700585937499994],[92.35478515624999,50.864160156249994],[92.42636718750003,50.803076171875],[92.62666015625001,50.68828125],[92.68134765625001,50.683203125],[92.73867187500002,50.7109375],[92.779296875,50.778662109375],[92.8564453125,50.789111328124996],[92.94130859375002,50.778222656249994],[93.103125,50.60390625],[94.25107421875003,50.556396484375],[94.35468750000001,50.221826171874994],[94.61474609375,50.023730468749996],[94.67548828125001,50.028076171875],[94.71806640624999,50.043261718749996],[94.93027343750003,50.04375],[95.11142578125003,49.935449218749994],[95.52265625000001,49.91123046875],[96.06552734375003,49.99873046875],[96.31503906250003,49.901123046875],[96.98574218750002,49.8828125],[97.20859375000003,49.730810546875],[97.35976562500002,49.741455078125],[97.58935546875,49.911474609375],[98.00390625,50.0142578125],[98.25029296874999,50.30244140625],[98.27949218750001,50.533251953124996],[98.14501953125,50.5685546875],[98.07890624999999,50.603808593749996],[98.02978515625,50.64462890625],[97.82529296875003,50.985253906249994],[98.103125,51.483544921874994],[98.64052734375002,51.801171875],[98.89316406250003,52.11728515625],[99.92167968749999,51.755517578125],[100.03457031250002,51.737109375],[100.23037109375002,51.729833984375],[100.46894531250001,51.72607421875],[100.53623046875003,51.7134765625],[101.38125,51.45263671875],[101.57089843750003,51.4671875],[101.82119140625002,51.421044921874994],[102.11152343750001,51.353466796875],[102.15566406250002,51.313769531249996],[102.16005859375002,51.26083984375],[102.14238281249999,51.216064453125],[102.15195312500003,51.10751953125],[102.19453125000001,51.050683593749994],[102.21503906250001,50.829443359375],[102.31660156250001,50.71845703125],[102.28837890624999,50.585107421874994],[103.30439453125001,50.20029296875],[103.63291015625003,50.138574218749994],[103.72324218750003,50.153857421874996],[103.80263671875002,50.176074218749996],[104.07871093750003,50.154248046875],[105.38359374999999,50.47373046875],[106.21787109375003,50.304589843749994],[106.36845703124999,50.317578125],[106.57441406250001,50.32880859375],[106.71113281250001,50.31259765625],[106.94130859375002,50.196679687499994],[107.04023437500001,50.086474609374996],[107.14306640625,50.033007812499996],[107.23330078125002,49.989404296874994],[107.34707031250002,49.986669921875],[107.63095703125003,49.98310546875],[107.91660156250003,49.947802734374996],[107.96542968750003,49.653515625],[108.40693359375001,49.396386718749994],[108.5224609375,49.34150390625],[108.61367187500002,49.322802734374996],[109.23671875000002,49.334912109375],[109.45371093750003,49.296337890625],[109.52871093750002,49.269873046875],[110.19990234375001,49.17041015625],[110.42783203125003,49.219970703125],[110.70976562499999,49.14296875],[110.82792968749999,49.166162109374994],[111.20419921875003,49.304296875],[111.33662109375001,49.35585937499999],[111.42929687500003,49.342626953125],[112.07968750000003,49.42421875],[112.49492187499999,49.53232421875],[112.69736328125003,49.507275390625],[112.80644531249999,49.523583984374994],[112.91484374999999,49.569238281249994],[113.05556640625002,49.616259765624996],[113.09208984374999,49.692529296874994],[113.16416015625003,49.797167968749996],[113.31904296875001,49.874316406249996],[113.44550781250001,49.9416015625],[113.57421875,50.00703125],[114.29707031250001,50.2744140625],[114.7431640625,50.233691406249996],[115.00332031250002,50.138574218749994],[115.27451171875003,49.948876953124994],[115.36503906249999,49.911767578124994],[115.42919921875,49.896484375],[115.58798828125003,49.886035156249996],[115.7177734375,49.880615234375],[115.79521484374999,49.905908203124994],[115.92597656250001,49.9521484375],[116.13457031249999,50.010791015624996],[116.216796875,50.00927734375],[116.35117187500003,49.978076171874996],[116.55117187500002,49.9203125],[116.68330078125001,49.823779296874996],[115.82050781250001,48.57724609375],[115.79169921875001,48.455712890624994],[115.79658203125001,48.346337890624994],[115.78554687500002,48.2482421875],[115.63945312499999,48.18623046875],[115.52509765625001,48.130859375],[115.61640625000001,47.874804687499996],[115.89824218749999,47.686914062499994],[115.99384765625001,47.71132812499999],[116.07480468750003,47.78955078125],[116.23115234375001,47.858203125],[116.31718749999999,47.85986328125],[116.37822265624999,47.844042968749996],[116.51347656249999,47.83955078125],[116.65195312500003,47.864501953125],[116.76054687499999,47.869775390624994],[116.90117187499999,47.853076171874996],[116.95166015625,47.836572265624994],[117.06972656250002,47.806396484375],[117.28593749999999,47.666357421875],[117.35078125000001,47.652197265625],[117.76835937499999,47.987890625],[118.49843750000002,47.983984375],[118.56777343750002,47.943261718749994],[118.69052734375003,47.822265625],[118.75996093750001,47.757617187499996],[118.88027343750002,47.72509765625],[119.017578125,47.685351562499996],[119.08193359375002,47.654150390625],[119.71113281250001,47.15],[119.89785156250002,46.8578125],[119.8671875,46.672167968749996],[119.74746093750002,46.627197265625],[119.70664062500003,46.606005859374996],[119.62021484375003,46.603955078125],[119.47402343750002,46.62666015625],[119.33183593749999,46.613818359374996],[119.162109375,46.638671875],[118.95712890625003,46.73486328125],[118.84394531250001,46.760205078125],[118.79033203124999,46.7470703125],[118.72294921874999,46.69189453125],[118.64873046874999,46.70166015625],[118.58046875000002,46.69189453125],[118.40439453125003,46.703173828124996],[118.30869140625003,46.717041015625],[118.15683593750003,46.678564453125],[118.0712890625,46.6666015625],[117.7412109375,46.5181640625],[117.546875,46.58828125],[117.43808593750003,46.586230468749996],[117.40556640624999,46.5708984375],[117.39218750000003,46.53759765625],[117.35634765625002,46.436669921874994],[117.35693359375,46.39130859375],[117.33339843750002,46.36201171875],[116.85908203125001,46.387939453125],[116.56259765625003,46.289794921875],[116.21298828125003,45.8869140625],[116.22910156250003,45.845751953124996],[116.240625,45.79599609375],[116.19765625000002,45.73935546875],[115.68105468750002,45.458251953125],[115.16259765625,45.390234375],[114.91923828124999,45.378271484375],[114.73876953125,45.41962890625],[114.56015625000003,45.389990234375],[114.41914062500001,45.202587890625],[114.16738281250002,45.049853515624996],[114.08027343750001,44.971142578125],[113.87705078125003,44.89619140625],[113.65263671874999,44.763476562499996],[113.58701171875003,44.745703125],[113.04941406250003,44.810351562499996],[112.70673828125001,44.883447265624994],[112.59677734375003,44.91767578125],[112.49931640624999,45.0109375],[112.41132812500001,45.058203125],[112.11289062500003,45.062939453125],[112.03261718750002,45.081640625],[111.89804687500003,45.0640625],[111.40224609375002,44.36728515625],[111.93173828125003,43.81494140625],[111.878125,43.68017578125]]]},"properties":{"name":"Mongolia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[145.75195312499997,15.133154296874991],[145.71318359375007,15.215283203125026],[145.821875,15.265380859375014],[145.75195312499997,15.133154296874991]]]},"properties":{"name":"N. Mariana Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[32.112890625,-26.839453125],[32.10595703125,-26.52001953125],[32.04140625000002,-26.28125],[32.060546875,-26.018359375],[31.9482421875,-25.957617187500006],[31.98583984375,-24.46064453125001],[31.799609375000017,-23.8921875],[31.54560546875001,-23.48232421875001],[31.287890625000017,-22.40205078125001],[31.429492187500017,-22.298828125],[32.429785156250006,-21.29707031250001],[32.353613281250006,-21.136523437500003],[32.49238281250001,-20.659765625],[32.992773437500006,-19.98486328125],[32.77763671875002,-19.388769531250006],[32.84980468750001,-19.10439453125001],[32.69970703125,-18.94091796875],[32.99306640625002,-18.35957031250001],[32.87626953125002,-16.88359375],[32.94804687500002,-16.71230468750001],[31.939843750000023,-16.428808593750006],[31.236230468750023,-16.02363281250001],[30.437792968750017,-15.995312500000011],[30.39609375,-15.64306640625],[30.231835937500023,-14.990332031250006],[33.201757812500006,-14.013378906250011],[33.63642578125001,-14.568164062500003],[34.375,-14.4248046875],[34.50527343750002,-14.59814453125],[34.54082031250002,-15.297265625],[34.24609375,-15.829394531250003],[34.528125,-16.319140625],[34.93339843750002,-16.760351562500006],[35.11210937500002,-16.898535156250006],[35.06464843750001,-17.07861328125],[35.124609375,-17.127246093750003],[35.20136718750001,-17.13105468750001],[35.272558593750006,-17.118457031250003],[35.29042968750002,-17.096972656250003],[35.28115234375002,-16.80781250000001],[35.22978515625002,-16.639257812500006],[35.178320312500006,-16.573339843750006],[35.16718750000001,-16.56025390625001],[35.242773437500006,-16.375390625],[35.358496093750006,-16.160546875],[35.59931640625001,-16.12587890625001],[35.70888671875002,-16.095800781250006],[35.75527343750002,-16.05830078125001],[35.79121093750001,-15.958691406250011],[35.89277343750001,-14.891796875000011],[35.86669921875,-14.86376953125],[35.84716796875,-14.6708984375],[35.6904296875,-14.465527343750011],[35.48847656250001,-14.201074218750009],[35.37578125000002,-14.058691406250006],[35.24746093750002,-13.896875],[35.01386718750001,-13.643457031250009],[34.61152343750001,-13.437890625],[34.54570312500002,-13.21630859375],[34.542578125,-13.108691406250003],[34.35781250000002,-12.164746093750011],[34.60625,-11.690039062500006],[34.65957031250002,-11.588671875],[34.82656250000002,-11.57568359375],[34.95947265625,-11.578125],[35.1826171875,-11.574804687500006],[35.41826171875002,-11.583203125000011],[35.50439453125,-11.604785156250003],[35.56435546875002,-11.60234375],[35.630957031250006,-11.58203125],[35.78544921875002,-11.452929687500003],[35.91132812500001,-11.4546875],[36.08222656250001,-11.537304687500011],[36.17548828125001,-11.609277343750009],[36.19130859375002,-11.670703125],[36.3056640625,-11.706347656250003],[36.97890625000002,-11.566992187500006],[37.37285156250002,-11.71044921875],[37.54169921875001,-11.675097656250003],[37.72480468750001,-11.580664062500006],[37.92021484375002,-11.294726562500003],[38.491796875,-11.413281250000011],[38.9875,-11.167285156250003],[39.81708984375001,-10.912402343750003],[39.98867187500002,-10.82080078125],[40.46357421875001,-10.46435546875],[40.61171875000002,-10.661523437500009],[40.48662109375002,-10.76513671875],[40.59716796875,-10.830664062500006],[40.40283203125,-11.33203125],[40.53154296875002,-12.004589843750011],[40.48710937500002,-12.4921875],[40.58085937500002,-12.635546875],[40.43681640625002,-12.983105468750011],[40.56875,-12.984667968750003],[40.595703125,-14.122851562500003],[40.715625,-14.214453125],[40.64609375,-14.538671875],[40.775,-14.421289062500009],[40.84453125000002,-14.718652343750009],[40.617773437500006,-15.115527343750003],[40.650976562500006,-15.260937500000011],[39.98359375000001,-16.22548828125001],[39.79091796875002,-16.29453125],[39.84462890625002,-16.435644531250006],[39.084375,-16.97285156250001],[38.14492187500002,-17.242773437500006],[37.24453125000002,-17.73994140625001],[36.93935546875002,-17.993457031250003],[36.40371093750002,-18.76972656250001],[36.26289062500001,-18.71962890625001],[36.23564453125002,-18.861328125],[35.85371093750001,-18.99335937500001],[34.947851562500006,-19.81269531250001],[34.6494140625,-19.70136718750001],[34.75576171875002,-19.82197265625001],[34.705078125,-20.473046875],[34.98232421875002,-20.80625],[35.267675781250006,-21.650976562500006],[35.31572265625002,-22.396875],[35.38300781250001,-22.45458984375],[35.45634765625002,-22.11591796875001],[35.53007812500002,-22.248144531250006],[35.57539062500001,-22.96308593750001],[35.37041015625002,-23.79824218750001],[35.5419921875,-23.82441406250001],[35.48964843750002,-24.065527343750006],[34.99208984375002,-24.65058593750001],[32.96113281250001,-25.49042968750001],[32.590429687500006,-26.00410156250001],[32.84882812500001,-26.26806640625],[32.95488281250002,-26.08359375],[32.93359375,-26.25234375],[32.88916015625,-26.83046875],[32.88613281250002,-26.84931640625001],[32.353515625,-26.861621093750003],[32.19960937500002,-26.83349609375],[32.112890625,-26.839453125]]]},"properties":{"name":"Mozambique","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-16.37333984374999,19.706445312499994],[-16.437548828124932,19.609277343749994],[-16.477001953124983,19.710351562499994],[-16.343652343749994,19.86621093750003],[-16.37333984374999,19.706445312499994]]],[[[-5.359912109374989,16.282861328124994],[-5.5125,15.496289062499983],[-9.293701171875,15.502832031249994],[-9.350585937499943,15.677392578125023],[-9.38535156249992,15.667626953124994],[-9.4265625,15.623046875000057],[-9.447705078124926,15.574853515624994],[-9.446923828124937,15.458203124999955],[-9.941406249999972,15.373779296874986],[-10.696582031249989,15.42265625],[-10.9482421875,15.151123046875014],[-11.455224609374994,15.62539062499999],[-11.760156249999937,15.425537109375057],[-11.828759765624966,15.244873046875014],[-11.872851562499989,14.995166015625031],[-12.02158203124992,14.804931640625],[-12.081542968749972,14.766357421875057],[-12.104687499999955,14.745361328125043],[-12.40869140625,14.889013671874991],[-12.735253906249994,15.13125],[-13.105273437499989,15.57177734375],[-13.40966796875,16.059179687500006],[-13.756640624999989,16.172509765624994],[-13.868457031249932,16.14814453125001],[-14.300097656249932,16.58027343750001],[-14.990625,16.676904296874994],[-15.768212890624994,16.485107421875],[-16.23901367187497,16.53129882812499],[-16.44101562499992,16.20454101562504],[-16.480078124999977,16.097216796875017],[-16.50205078124992,15.917333984375063],[-16.53525390624995,15.838378906250057],[-16.53574218749995,16.28681640625001],[-16.463623046875,16.60151367187501],[-16.030322265625017,17.88793945312497],[-16.213085937499926,19.003320312500023],[-16.51445312499996,19.361962890624994],[-16.305273437499977,19.51264648437504],[-16.44487304687499,19.47314453124997],[-16.21044921875003,20.227929687500023],[-16.42978515624995,20.652343750000057],[-16.622509765624955,20.634179687499994],[-16.87607421874992,21.086132812499955],[-16.998242187499926,21.039697265625023],[-17.048046874999955,20.80615234375003],[-17.06396484375,20.89882812499999],[-16.96455078125001,21.329248046875023],[-15.231201171875,21.331298828125],[-14.084667968749926,21.33271484375001],[-13.626025390624932,21.33325195312503],[-13.396728515624943,21.333544921875017],[-13.167431640624926,21.333789062500074],[-13.016210937499949,21.33393554687501],[-13.025097656249983,21.46679687499997],[-13.032226562500028,21.572070312500017],[-13.041748046875,21.71381835937504],[-13.051220703124983,21.854785156250074],[-13.094335937499977,22.49599609375005],[-13.153271484374983,22.820507812499983],[-13.031494140624943,23.000244140625],[-12.895996093749972,23.08955078125001],[-12.739599609375006,23.192724609375063],[-12.62041015624996,23.271337890625006],[-12.559375,23.290820312500045],[-12.372900390624977,23.318017578124994],[-12.023437499999943,23.467578125000017],[-12.016308593749983,23.97021484375],[-12.016308593749983,24.378662109375],[-12.016308593749983,24.923242187499994],[-12.016308593749983,25.059375],[-12.016308593749983,25.331689453124994],[-12.016308593749983,25.740136718749994],[-12.016308593749983,25.995410156250017],[-10.376123046874966,25.995458984375034],[-9.444531249999983,25.99550781250005],[-9.071923828124937,25.99550781250005],[-8.885644531249994,25.99550781250005],[-8.682226562499949,25.99550781250005],[-8.68212890625,26.109472656250006],[-8.68212890625,26.273193359375057],[-8.682324218749955,26.49770507812505],[-8.682617187500028,26.723144531250057],[-8.682861328124972,26.92133789062501],[-8.683349609375,27.285937500000045],[-4.822607421874949,24.99560546875],[-5.640771484374994,24.99516601562499],[-5.959814453124977,24.994970703125063],[-6.287207031249977,24.99482421875001],[-6.594091796874977,24.99462890624997],[-6.396582031249977,23.274804687499994],[-6.02641601562496,20.04218750000001],[-5.827099609374955,18.301562500000045],[-5.741699218749943,17.555566406250023],[-5.713183593750017,17.306884765625],[-5.684765624999983,17.058251953124966],[-5.628662109375028,16.568652343750045],[-5.50961914062492,16.442041015625023],[-5.359912109374989,16.282861328124994]]]]},"properties":{"name":"Mauritania","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-62.1484375,16.74033203124999],[-62.221630859375,16.699511718750003],[-62.191357421875,16.804394531249997],[-62.1484375,16.74033203124999]]]},"properties":{"name":"Montserrat","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[57.65126953125002,-20.48486328125],[57.31767578125002,-20.42763671875001],[57.416015625,-20.18378906250001],[57.65654296875002,-19.98994140625001],[57.7919921875,-20.21259765625001],[57.65126953125002,-20.48486328125]]]},"properties":{"name":"Mauritius","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[34.95947265625003,-11.578125],[34.82656250000005,-11.575683593749972],[34.65957031250005,-11.58867187499996],[34.61855468750005,-11.620214843749991],[34.60625,-11.690039062500006],[34.3578125,-12.164746093749997],[34.542578125,-13.108691406250003],[34.54570312500002,-13.21630859375],[34.6115234375001,-13.437890625000023],[35.0138671875001,-13.64345703124998],[35.247460937499994,-13.896875],[35.37578125000002,-14.05869140625002],[35.48847656250004,-14.20107421874998],[35.69042968749997,-14.465527343750026],[35.84716796875003,-14.670898437500043],[35.8927734375001,-14.891796875000011],[35.7912109375001,-15.958691406250026],[35.75527343750005,-16.058300781249983],[35.708886718749994,-16.095800781249977],[35.5993164062501,-16.12587890624998],[35.35849609375006,-16.160546875000023],[35.242773437500006,-16.375390625],[35.16718750000004,-16.56025390625001],[35.178320312500006,-16.57333984375002],[35.22978515625002,-16.639257812500034],[35.281152343749994,-16.8078125],[35.29042968750005,-17.096972656250017],[35.27255859375006,-17.11845703124996],[35.2013671875001,-17.13105468750004],[35.124609375,-17.127246093749974],[35.06464843750004,-17.078613281250014],[35.11210937500002,-16.898535156250006],[34.93339843750002,-16.760351562500006],[34.528125,-16.319140625],[34.24609374999997,-15.829394531249974],[34.54082031250002,-15.297265625],[34.50527343750005,-14.598144531249957],[34.375,-14.4248046875],[33.63642578125004,-14.568164062499974],[33.148046875,-13.94091796875],[32.98125,-14.009375],[32.797460937500006,-13.6884765625],[32.67041015624997,-13.590429687500006],[32.96757812500002,-13.225],[32.97519531250006,-12.701367187499983],[33.51230468750006,-12.347753906249977],[33.340136718750074,-12.308300781250011],[33.25234375000005,-12.112597656250031],[33.3039062500001,-11.69082031249998],[33.23271484375002,-11.417675781250026],[33.26835937500002,-11.403906249999977],[33.379785156249994,-11.15791015625004],[33.29277343750002,-10.85234375],[33.661523437499994,-10.553125],[33.55371093749997,-10.391308593750011],[33.53759765624997,-10.351562499999986],[33.52890625,-10.234667968749974],[33.31152343750003,-10.037988281249966],[33.3371093750001,-9.954003906249994],[33.350976562499994,-9.862207031250037],[33.25,-9.759570312500003],[33.148046875,-9.603515625],[32.99599609375005,-9.622851562499946],[32.91992187500003,-9.407421875000026],[33.88886718750004,-9.670117187499983],[33.99560546875003,-9.495410156250003],[34.32089843750006,-9.731542968749977],[34.56992187500006,-10.241113281249966],[34.66708984375006,-10.792480468750028],[34.60791015624997,-11.08046875],[34.77382812500005,-11.341699218750009],[34.890625,-11.3935546875],[34.93701171874997,-11.463476562500034],[34.95947265625003,-11.578125]]]},"properties":{"name":"Malawi","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[111.38925781250006,2.415332031250031],[111.31152343749997,2.437597656250034],[111.33349609374997,2.768310546875],[111.38925781250006,2.415332031250031]]],[[[104.22158203125,2.731738281250003],[104.1291015625001,2.767236328125037],[104.18476562500004,2.871728515625009],[104.22158203125,2.731738281250003]]],[[[117.88476562499997,4.186132812500006],[117.64902343750012,4.168994140624974],[117.70800781249997,4.262402343749997],[117.88476562499997,4.186132812500006]]],[[[100.28896484375005,5.294726562499989],[100.19101562500006,5.28286132812498],[100.2455078125,5.467773437499986],[100.33886718749997,5.410058593750037],[100.28896484375005,5.294726562499989]]],[[[99.848046875,6.465722656249994],[99.9186523437501,6.358593750000011],[99.74375,6.263281249999963],[99.64628906250002,6.418359375000023],[99.848046875,6.465722656249994]]],[[[102.10107421874997,6.242236328125031],[102.34013671875002,6.172021484375023],[102.534375,5.862548828125028],[103.09707031250005,5.408447265624986],[103.41582031250007,4.85029296875004],[103.43945312499997,2.93310546875],[103.8122070312501,2.58046875],[104.21855468750002,1.722851562499997],[104.25009765625012,1.388574218750009],[104.11494140625004,1.412255859375037],[103.98144531250003,1.623632812500034],[103.99150390625002,1.454785156249997],[103.6945312500001,1.449658203125026],[103.48027343750007,1.329492187499966],[103.35683593750005,1.546142578125057],[102.72714843750012,1.855566406250034],[101.29550781250012,2.885205078125011],[101.29990234375012,3.253271484375034],[100.71542968750006,3.966210937499966],[100.79550781250012,4.023388671874983],[100.61455078125002,4.3734375],[100.34326171874997,5.984179687500031],[100.11914062499997,6.441992187500048],[100.26142578125004,6.682714843749963],[100.3454101562501,6.549902343750006],[100.75449218750012,6.460058593749991],[100.87392578125,6.24541015624996],[101.05351562500002,6.242578125],[100.98164062500004,5.771044921875045],[101.1139648437501,5.636767578125045],[101.5560546875,5.907763671875003],[101.67841796875004,5.778808593750028],[101.87363281250012,5.825292968749991],[102.10107421874997,6.242236328125031]]],[[[117.5744140625001,4.17060546875004],[117.10058593750003,4.337060546875023],[116.51474609375006,4.370800781249969],[115.86074218750005,4.348046875000037],[115.67880859375006,4.193017578124994],[115.45439453125002,3.034326171875009],[115.24697265625005,3.025927734374989],[115.117578125,2.89487304687502],[115.08076171875004,2.63422851562504],[115.1791015625,2.523193359374972],[114.78642578125002,2.250488281250014],[114.83056640625003,1.980029296874989],[114.5125,1.452001953124963],[113.90234375000003,1.434277343749997],[113.6222656250001,1.2359375],[113.00654296875004,1.433886718750003],[112.94296875000006,1.566992187500034],[112.47617187500006,1.559082031250028],[112.1857421875001,1.4390625],[112.078515625,1.143359374999974],[111.80898437500005,1.011669921874969],[111.10136718750002,1.050537109374986],[110.50576171875005,0.861962890625023],[109.65400390625004,1.614892578125023],[109.53896484375,1.89619140625004],[109.62890625000003,2.027539062499983],[109.86484375000012,1.764453125000031],[110.34921875000012,1.719726562499972],[111.22324218750012,1.395849609374991],[111.0287109375,1.557812500000026],[111.26816406250012,2.13974609375002],[111.20859375000012,2.379638671875043],[111.44384765625003,2.381542968749983],[111.5125,2.743017578124991],[112.98789062500006,3.161914062499974],[113.92392578125006,4.243212890625003],[114.0638671875,4.592675781249966],[114.65410156250007,4.037646484375045],[114.84023437500005,4.393212890625009],[114.74667968750006,4.718066406250017],[115.02675781250005,4.899707031249989],[115.10703125000006,4.390429687499974],[115.290625,4.352587890624989],[115.1400390625,4.899755859374991],[115.37490234375,4.932763671874966],[115.55449218750007,5.093554687500045],[115.41904296875012,5.413183593749963],[115.60390625,5.603417968749994],[115.74082031250012,5.533007812500045],[115.8771484375001,5.613525390625014],[116.74980468750007,6.977099609374989],[116.8498046875001,6.826708984374989],[116.78808593749997,6.606103515624994],[117.12851562500012,6.968896484375009],[117.2298828125,6.939990234374974],[117.29404296875006,6.676904296875023],[117.60966796875002,6.512646484375054],[117.69375,6.35],[117.64453124999997,6.001855468749994],[117.5011718750001,5.884667968750009],[118.00380859375,6.053320312499991],[118.11582031250006,5.8625],[117.93476562500004,5.7875],[117.97363281249997,5.70625],[118.35312500000012,5.80605468749998],[118.59482421875006,5.592089843750003],[119.22343750000007,5.412646484375031],[119.2663085937501,5.308105468750057],[119.21962890625,5.159814453125037],[118.9125,5.02290039062504],[118.26054687500007,4.988867187500034],[118.18535156250002,4.828515625000051],[118.5625,4.502148437499997],[118.54833984375003,4.379248046875006],[118.008203125,4.250244140625014],[117.6964843750001,4.342822265625045],[117.5744140625001,4.17060546875004]]],[[[117.14160156250003,7.168212890625028],[117.08066406250006,7.115283203124989],[117.06425781250007,7.26069335937504],[117.2640625,7.351660156250006],[117.26679687500004,7.220800781249991],[117.14160156250003,7.168212890625028]]]]},"properties":{"name":"Malaysia","childNum":8}},{"geometry":{"type":"Polygon","coordinates":[[[23.380664062500017,-17.640625],[24.27490234375,-17.481054687500006],[24.73291015625,-17.51777343750001],[25.001757812500017,-17.56855468750001],[25.2587890625,-17.793554687500006],[24.909082031250023,-17.821386718750006],[24.530566406250017,-18.052734375],[24.243945312500017,-18.0234375],[23.599707031250006,-18.4599609375],[23.219335937500006,-17.99970703125001],[20.97412109375,-18.31884765625],[20.9794921875,-21.9619140625],[19.977343750000017,-22.00019531250001],[19.98046875,-24.77675781250001],[19.98046875,-28.310351562500003],[19.98046875,-28.451269531250006],[19.539843750000017,-28.574609375],[19.31269531250001,-28.73330078125001],[19.24580078125001,-28.901660156250003],[19.16171875,-28.938769531250003],[18.310839843750017,-28.88623046875],[17.44794921875001,-28.69814453125001],[17.34785156250001,-28.50117187500001],[17.358691406250017,-28.26943359375001],[17.1884765625,-28.13251953125001],[17.05625,-28.031054687500003],[16.93330078125001,-28.069628906250003],[16.875292968750017,-28.1279296875],[16.841210937500023,-28.21894531250001],[16.81015625,-28.26455078125001],[16.7875,-28.39472656250001],[16.755761718750023,-28.4521484375],[16.62617187500001,-28.487890625],[16.487109375000017,-28.572851562500006],[16.447558593750017,-28.617578125],[15.719042968750017,-27.9658203125],[15.341503906250011,-27.386523437500003],[15.139062500000023,-26.50800781250001],[14.9677734375,-26.31806640625001],[14.837109375000011,-25.033203125],[14.5015625,-24.201953125],[14.462792968750023,-22.44912109375001],[13.450585937500023,-20.91669921875001],[13.168359375000023,-20.184667968750006],[12.458203125000011,-18.9267578125],[11.77587890625,-18.001757812500003],[11.733496093750006,-17.7509765625],[11.743066406250023,-17.24921875000001],[11.902539062500011,-17.2265625],[12.013964843750017,-17.168554687500006],[12.21337890625,-17.2099609375],[12.318457031250006,-17.21337890625],[12.359277343750023,-17.205859375],[12.548144531250017,-17.212695312500003],[13.179492187500017,-16.9716796875],[13.475976562500023,-17.0400390625],[14.017480468750023,-17.40888671875001],[16.1484375,-17.390234375],[18.396386718750023,-17.3994140625],[18.95527343750001,-17.803515625],[20.1943359375,-17.863671875],[20.745507812500023,-18.01972656250001],[22.32421875,-17.8375],[23.380664062500017,-17.640625]]]},"properties":{"name":"Namibia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[167.54443359375003,-22.62324218750001],[167.44375,-22.63916015624997],[167.44345703125006,-22.541406250000037],[167.54443359375003,-22.62324218750001]]],[[[168.01093750000004,-21.429980468750017],[168.1390625,-21.44521484375001],[168.12070312500012,-21.615820312500034],[167.96679687500003,-21.641601562499957],[167.81542968749997,-21.392675781249963],[167.9884765625001,-21.337890624999986],[168.01093750000004,-21.429980468750017]]],[[[167.40087890625003,-21.16064453125003],[167.07265625,-20.99726562499997],[167.03271484374997,-20.922558593750026],[167.18945312500003,-20.803515625000017],[167.05576171875012,-20.720214843750014],[167.29794921875006,-20.732519531250034],[167.40087890625003,-21.16064453125003]]],[[[164.20234375000004,-20.246093749999957],[164.4359375,-20.282226562499957],[165.191796875,-20.768847656249974],[165.66279296875004,-21.267187499999977],[166.94238281250003,-22.09013671875003],[166.97031250000012,-22.32285156250002],[166.77412109375004,-22.37617187500004],[166.4679687500001,-22.256054687499997],[164.92744140625004,-21.289843749999974],[164.16972656250007,-20.48017578125004],[164.05966796875012,-20.141503906249966],[164.20234375000004,-20.246093749999957]]]]},"properties":{"name":"New Caledonia","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[14.97900390625,22.99619140624999],[15.181835937500011,21.523388671874997],[15.607324218750023,20.954394531250003],[15.587109375000011,20.733300781249994],[15.963183593750017,20.34619140625],[15.735058593750011,19.904052734375],[15.474316406250011,16.908398437499997],[14.367968750000017,15.750146484374994],[13.4482421875,14.380664062500003],[13.505761718750023,14.134423828124994],[13.606347656250023,13.70458984375],[13.426953125000011,13.701757812499991],[13.323828125,13.670849609374997],[12.871679687500006,13.449023437500003],[12.65478515625,13.3265625],[12.463183593750017,13.09375],[10.958886718750023,13.371533203124997],[10.475878906250017,13.330224609374994],[10.229589843750006,13.281005859375],[10.184667968750006,13.270117187499991],[9.615917968750011,12.810644531249991],[9.201562500000023,12.821484375],[8.750585937500006,12.908154296874997],[8.4560546875,13.059667968749991],[8.095019531250017,13.291162109374994],[7.955761718750011,13.32275390625],[7.788671875,13.337890625],[7.056738281250006,13.000195312499997],[6.804296875,13.107666015625],[6.2998046875,13.658789062499991],[6.184277343750011,13.66367187499999],[5.838183593750017,13.765380859375],[5.491992187500017,13.872851562500003],[5.415820312500017,13.859179687500003],[5.361621093750017,13.836865234374997],[5.241894531250011,13.757226562499994],[4.664843750000017,13.733203125],[4.147558593750006,13.457714843749997],[3.947851562500006,12.775048828124994],[3.646679687500011,12.529980468749997],[3.595410156250011,11.6962890625],[2.805273437500006,12.383837890624989],[2.366015625000017,12.221923828125],[2.38916015625,11.897070312499991],[2.072949218750011,12.309375],[2.226269531250011,12.466064453125],[2.104589843750006,12.701269531249991],[1.56494140625,12.635400390624994],[0.9873046875,13.041894531249994],[0.988476562500011,13.36484375],[1.201171875,13.357519531249991],[0.6181640625,13.703417968750003],[0.42919921875,13.972119140624997],[0.382519531250011,14.245800781249997],[0.163867187500017,14.497216796874994],[0.217480468750011,14.911474609374991],[0.947460937500011,14.982128906249997],[1.300195312500023,15.272265625],[3.001074218750006,15.340966796874994],[3.06015625,15.427197265624997],[3.504296875000023,15.356347656249994],[3.5205078125,15.483105468749997],[3.842968750000011,15.701708984375003],[4.121289062500011,16.357714843750003],[4.234667968750017,16.996386718750003],[4.227636718750006,19.142773437499997],[5.836621093750011,19.479150390624994],[7.481738281250017,20.873095703125003],[11.967871093750006,23.517871093750003],[13.48125,23.18017578125],[14.215527343750011,22.619677734375003],[14.97900390625,22.99619140624999]]]},"properties":{"name":"Niger","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[7.30078125,4.418164062500026],[7.140429687500017,4.395117187500034],[7.227343750000045,4.527343749999972],[7.30078125,4.418164062500026]]],[[[6.804296875,13.107666015625],[7.056738281250006,13.00019531250004],[7.788671875,13.337890625],[7.955761718750011,13.322753906250028],[8.095019531250045,13.29116210937498],[8.750585937500034,12.908154296875026],[9.20156250000008,12.82148437500004],[9.615917968750011,12.810644531249963],[10.184667968750063,13.270117187499963],[10.229589843749977,13.281005859375043],[10.475878906250074,13.330224609375037],[10.958886718750051,13.371533203125011],[12.463183593750017,13.09375],[12.654785156250057,13.3265625],[13.426953125000068,13.701757812499963],[13.606347656250023,13.704589843750014],[13.932324218750011,13.258496093749997],[14.06396484375,13.078515625],[14.160058593750023,12.612792968749986],[14.184863281250017,12.447216796874997],[14.272851562500023,12.356494140624989],[14.518945312500051,12.298242187500023],[14.619726562500063,12.150976562500048],[14.559765625000011,11.492285156249963],[14.20234375000004,11.268164062499963],[14.143261718750068,11.248535156250043],[14.056738281250034,11.245019531250037],[13.981445312500057,11.21186523437504],[13.892089843750057,11.140087890624983],[13.699902343749983,10.873144531250048],[13.53535156250004,10.605078124999963],[13.414550781250028,10.171435546874989],[13.269921875000051,10.036181640624974],[13.198730468750028,9.563769531250003],[12.929492187500074,9.426269531249972],[12.87568359375004,9.303515625000017],[12.80654296875008,8.886621093749994],[12.7822265625,8.817871093750014],[12.651562500000011,8.667773437499989],[12.40351562500004,8.59555664062502],[12.311328125000074,8.419726562499989],[12.2333984375,8.282324218749977],[12.016015625000051,7.589746093750009],[11.809179687500006,7.345068359374991],[11.767382812500017,7.272265624999989],[11.861425781249977,7.11640625000004],[11.657519531250017,6.951562500000023],[11.580078125000057,6.88886718750004],[11.551660156250023,6.697265625],[11.153320312500057,6.437939453125011],[11.1064453125,6.457714843750054],[11.032519531250045,6.697900390625037],[10.954199218750006,6.7765625],[10.60625,7.063085937500006],[10.413183593750006,6.877734375],[10.293066406250034,6.876757812499974],[10.205468750000051,6.891601562499986],[10.185546874999972,6.91279296875004],[10.167773437500017,6.959179687499983],[10.143554687500057,6.99643554687502],[10.038867187500045,6.921386718750014],[9.874218750000068,6.803271484375017],[9.82070312500008,6.783935546874986],[9.779882812500034,6.760156250000023],[9.725585937499972,6.65],[9.659960937500017,6.531982421874986],[9.490234375,6.418652343749997],[8.997167968750006,5.917724609375],[8.715625,5.046875],[8.514843750000068,4.724707031250034],[8.23378906250008,4.907470703124972],[8.293066406250006,4.557617187500014],[7.644238281250068,4.525341796875011],[7.530761718750028,4.655175781249994],[7.284375,4.547656250000031],[7.076562500000051,4.716162109374991],[7.15468750000008,4.514404296875],[6.92324218750008,4.390673828125017],[6.767675781250006,4.724707031250034],[6.860351562500057,4.373339843750045],[6.633007812500011,4.340234375000051],[6.579980468750051,4.475976562499994],[6.554589843750023,4.34140625000002],[6.263671875,4.309423828124991],[6.270996093749972,4.432128906250028],[6.173339843749972,4.277392578125031],[5.970703125,4.338574218749983],[5.587792968750051,4.647216796874972],[5.448144531250023,4.945849609374974],[5.383300781250057,5.129003906249977],[5.475976562500023,5.153857421874989],[5.370019531250023,5.195019531250026],[5.367968750000045,5.337744140624963],[5.549707031250023,5.474218749999963],[5.385839843750034,5.401757812500037],[5.199218750000028,5.533544921874977],[5.456640624999977,5.61171875],[5.327343750000011,5.707519531249986],[5.112402343750034,5.64155273437504],[4.861035156250068,6.026318359374997],[4.431347656250011,6.348583984375026],[3.450781249999977,6.427050781250017],[3.71699218750004,6.597949218750017],[3.430175781250057,6.525],[3.335546875000063,6.396923828125011],[2.706445312500051,6.369238281249963],[2.735644531250045,6.595703125],[2.753710937499989,6.661767578124966],[2.774609374999983,6.711718750000017],[2.752929687500028,6.771630859374966],[2.731738281250045,6.852832031249989],[2.721386718750068,6.980273437500017],[2.75673828125008,7.067919921875017],[2.750488281250057,7.39506835937496],[2.765820312500068,7.422509765625051],[2.783984375000045,7.443408203125045],[2.78515625,7.476855468750017],[2.703125,8.371826171875],[2.774804687500023,9.048535156250026],[3.044921875,9.08383789062502],[3.325195312499972,9.778466796875051],[3.60205078125,10.004541015625009],[3.646582031250006,10.408984374999989],[3.771777343750017,10.417626953124966],[3.83447265625,10.607421875],[3.7568359375,10.76875],[3.71640625,11.07958984375],[3.695312499999972,11.12031250000004],[3.63886718750004,11.176855468750006],[3.487792968749972,11.395410156250037],[3.490527343750017,11.499218750000054],[3.55390625000004,11.631884765624989],[3.595410156250068,11.696289062500057],[3.664746093750068,11.762451171875028],[3.646679687500011,12.529980468749983],[3.947851562500006,12.775048828124994],[4.147558593750006,13.457714843749983],[4.664843750000045,13.733203124999974],[5.241894531250011,13.757226562499994],[5.361621093750074,13.836865234375054],[5.415820312500017,13.859179687499974],[5.491992187500074,13.872851562500003],[6.2998046875,13.658789062500006],[6.804296875,13.107666015625]]]]},"properties":{"name":"Nigeria","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-83.6419921875,10.917236328125],[-83.71293945312499,10.785888671875],[-83.91928710937499,10.7353515625],[-84.6341796875,11.045605468749997],[-84.9091796875,10.9453125],[-85.5841796875,11.189453125],[-85.7443359375,11.06210937499999],[-87.670166015625,12.965673828124991],[-87.58505859374999,13.043310546874991],[-87.42436523437499,12.921142578125],[-87.33725585937499,12.979248046875],[-87.05917968749999,12.991455078125],[-87.00932617187499,13.0078125],[-86.918212890625,13.223583984374997],[-86.87353515625,13.266503906249994],[-86.792138671875,13.27978515625],[-86.72929687499999,13.284375],[-86.710693359375,13.313378906249994],[-86.76352539062499,13.63525390625],[-86.77060546874999,13.69873046875],[-86.758984375,13.746142578125003],[-86.733642578125,13.763476562500003],[-86.61025390625,13.774853515624997],[-86.376953125,13.755664062500003],[-86.33173828125,13.770068359375003],[-86.238232421875,13.899462890625003],[-86.15122070312499,13.994580078124997],[-86.0892578125,14.037207031249991],[-86.04038085937499,14.050146484374991],[-85.9837890625,13.965673828124991],[-85.78671875,13.844433593749997],[-85.75341796875,13.85205078125],[-85.73393554687499,13.858691406250003],[-85.727734375,13.876074218749991],[-85.731201171875,13.931835937499997],[-85.68193359374999,13.982568359374994],[-85.20834960937499,14.311816406250003],[-85.059375,14.582958984374997],[-84.86044921874999,14.809765625],[-84.645947265625,14.661083984374997],[-84.53764648437499,14.633398437499991],[-83.635498046875,14.876416015624997],[-83.5365234375,14.977001953124997],[-83.4150390625,15.008056640625],[-83.15751953124999,14.993066406249994],[-83.18535156249999,14.956396484374991],[-83.21591796874999,14.932373046875],[-83.27988281249999,14.812792968750003],[-83.344384765625,14.902099609375],[-83.413720703125,14.825341796874994],[-83.29921875,14.7490234375],[-83.187744140625,14.340087890625],[-83.4123046875,13.99648437499999],[-83.567333984375,13.3203125],[-83.5109375,12.411816406249997],[-83.627197265625,12.459326171874991],[-83.59335937499999,12.713085937499997],[-83.75424804687499,12.501953125],[-83.680419921875,12.024316406249994],[-83.7671875,12.059277343749997],[-83.82890624999999,11.861035156249997],[-83.70458984375,11.824560546874991],[-83.6517578125,11.642041015624997],[-83.86787109375,11.300048828125],[-83.6419921875,10.917236328125]]]},"properties":{"name":"Nicaragua","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-169.80341796875,-19.0830078125],[-169.94833984375,-19.072851562500006],[-169.834033203125,-18.96601562500001],[-169.80341796875,-19.0830078125]]]},"properties":{"name":"Niue","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-68.205810546875,12.144580078124989],[-68.25434570312495,12.032080078124977],[-68.36923828125,12.301953124999983],[-68.205810546875,12.144580078124989]]],[[[4.226171875000034,51.38647460937503],[3.902050781250011,51.20766601562502],[3.43251953125008,51.24575195312505],[3.35009765625,51.37768554687503],[4.226171875000034,51.38647460937503]]],[[[3.94912109375008,51.73945312500001],[4.07509765625008,51.648779296875006],[3.699023437500017,51.70991210937501],[3.94912109375008,51.73945312500001]]],[[[4.886132812500023,53.07070312500005],[4.70917968750004,53.036035156249994],[4.886425781249983,53.18330078124998],[4.886132812500023,53.07070312500005]]],[[[4.226171875000034,51.38647460937503],[3.448925781250068,51.54077148437503],[3.743945312500017,51.596044921875006],[4.27412109375004,51.47163085937498],[4.004785156250051,51.595849609374966],[4.182617187500057,51.61030273437498],[3.946875,51.810546875],[4.482812500000023,52.30917968749998],[4.76875,52.941308593749966],[5.061230468750068,52.96064453125001],[5.532031250000074,53.268701171874966],[6.062207031250068,53.407080078125006],[6.816210937500045,53.44116210937503],[7.197265625000028,53.28227539062499],[7.033007812500045,52.65136718749997],[6.710742187500045,52.61787109374998],[6.748828125000074,52.464013671874994],[7.035156250000057,52.38022460937498],[6.724511718749994,52.080224609374966],[6.800390625,51.96738281249998],[5.948730468750057,51.80268554687501],[6.198828125000034,51.45],[6.129980468750034,51.14741210937501],[5.857519531250034,51.030126953125006],[6.048437500000034,50.90488281250006],[5.993945312500017,50.75043945312504],[5.693554687500011,50.774755859375006],[5.796484375000034,51.153076171875],[5.214160156250045,51.278955078124966],[5.03095703125004,51.46909179687498],[4.226171875000034,51.38647460937503]]],[[[5.325781250000063,53.38574218750003],[5.190234375000074,53.39179687500001],[5.582617187500063,53.438085937500034],[5.325781250000063,53.38574218750003]]]]},"properties":{"name":"Netherlands","childNum":6,"cp":[5.0752777,52.358465]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[5.085839843750023,60.30756835937501],[5.089062500000068,60.188769531250045],[4.95722656250004,60.44726562500006],[5.085839843750023,60.30756835937501]]],[[[4.958691406250068,61.084570312500034],[4.79902343750004,61.08271484375001],[4.861621093749989,61.19384765625],[4.958691406250068,61.084570312500034]]],[[[8.10273437500004,63.33759765625004],[7.804003906250017,63.413916015625034],[8.073535156250045,63.47080078124998],[8.10273437500004,63.33759765625004]]],[[[8.470800781250063,63.66713867187502],[8.287109375000028,63.68715820312502],[8.764648437500057,63.804638671874955],[8.78652343750008,63.703466796875034],[8.470800781250063,63.66713867187502]]],[[[11.2314453125,64.865869140625],[10.739843750000034,64.87031250000001],[11.02099609375,64.97871093749995],[11.2314453125,64.865869140625]]],[[[12.971777343750063,67.87412109375],[12.824023437500074,67.82124023437498],[13.068066406250068,68.07133789062505],[12.971777343750063,67.87412109375]]],[[[13.872851562500045,68.26533203125004],[14.096777343750034,68.218603515625],[13.229394531250051,67.995361328125],[13.300195312499994,68.16044921875007],[13.872851562500045,68.26533203125004]]],[[[15.207128906250006,68.943115234375],[15.222070312500023,68.61630859375003],[14.404687500000051,68.663232421875],[15.037792968750068,69.00053710937507],[15.207128906250006,68.943115234375]]],[[[15.760351562500006,68.56123046875001],[16.328906250000017,68.87631835937498],[16.519238281250068,68.63300781249998],[15.975292968750011,68.402490234375],[14.257519531249983,68.19077148437503],[15.412597656250028,68.61582031250003],[15.483007812500006,69.04345703125003],[16.04804687500001,69.30205078125002],[15.760351562500006,68.56123046875001]]],[[[17.503027343750034,69.59624023437502],[18.004101562500068,69.50498046874998],[17.95068359375003,69.19814453125],[17.487890625000063,69.19682617187499],[17.08251953124997,69.013671875],[16.81044921875008,69.07070312499997],[17.001757812500045,69.36191406250006],[17.36083984375003,69.38149414062497],[17.503027343750034,69.59624023437502]]],[[[29.956152343750006,69.79677734375002],[29.766210937500006,69.76752929687501],[29.835839843749994,69.90556640625005],[29.956152343750006,69.79677734375002]]],[[[20.779199218750023,70.08974609375002],[20.46425781250005,70.0765625],[20.492773437500006,70.20332031249995],[20.78603515625008,70.21953124999999],[20.779199218750023,70.08974609375002]]],[[[19.25507812500001,70.06640625000006],[19.607812500000023,70.019140625],[19.334765625000074,69.82026367187501],[18.784765625000034,69.57900390624997],[18.12988281250003,69.557861328125],[18.34931640625004,69.76787109374999],[18.67402343750004,69.78164062500002],[19.13271484375005,70.24414062500003],[19.25507812500001,70.06640625000006]]],[[[19.76748046875005,70.21669921875002],[20.005957031250034,70.07622070312502],[19.599023437499994,70.26616210937507],[19.76748046875005,70.21669921875002]]],[[[23.615332031250034,70.54931640625003],[23.15917968750003,70.28261718750005],[22.941015625000063,70.444580078125],[23.546679687500017,70.61708984374997],[23.615332031250034,70.54931640625003]]],[[[24.01757812500003,70.56738281249997],[23.716601562500074,70.561865234375],[23.778417968750063,70.74736328125005],[24.01757812500003,70.56738281249997]]],[[[23.440527343750063,70.81577148437503],[22.8291015625,70.54155273437505],[22.358691406250017,70.514794921875],[21.99453125000008,70.65712890624997],[23.440527343750063,70.81577148437503]]],[[[30.869726562500006,69.78344726562506],[30.860742187499994,69.53842773437503],[30.18017578124997,69.63583984375],[30.08730468750005,69.43286132812503],[29.38828125,69.29814453125005],[28.96582031250003,69.02197265625],[28.846289062500006,69.17690429687502],[29.33339843750005,69.47299804687503],[29.14160156250003,69.67143554687505],[27.747851562500045,70.06484375],[27.127539062500063,69.90649414062497],[26.525390625000057,69.91503906250003],[26.07246093750004,69.69155273437497],[25.748339843750017,68.99013671875],[24.94140625000003,68.59326171875006],[23.85400390625,68.80590820312503],[23.324023437500017,68.64897460937502],[22.410937500000074,68.719873046875],[21.59375,69.273583984375],[21.06611328125001,69.21411132812497],[21.065722656250017,69.04174804687503],[20.622167968750006,69.036865234375],[20.116699218750057,69.02089843750005],[20.348046875000023,68.84873046875003],[19.969824218750063,68.35639648437501],[18.303027343750045,68.55541992187497],[17.91669921875001,67.96489257812502],[17.324609375000023,68.10380859374999],[16.783593750000023,67.89501953125],[16.12744140625,67.42583007812507],[16.40351562500004,67.05498046875002],[15.422949218750006,66.48984374999998],[15.483789062500051,66.30595703124999],[14.543261718750045,66.12934570312498],[14.47968750000004,65.30146484374998],[13.650292968750023,64.58154296874997],[14.077636718750028,64.464013671875],[14.141210937500006,64.17353515624998],[13.960546875000063,64.01401367187498],[13.203515625000023,64.07509765625],[12.792773437500017,64],[12.175195312500051,63.595947265625],[11.999902343750051,63.29169921875001],[12.303515625000074,62.28559570312501],[12.155371093750006,61.720751953125045],[12.88076171875008,61.35229492187506],[12.706054687500028,61.059863281250074],[12.29414062500004,61.00268554687506],[12.588671874999989,60.450732421875045],[12.486132812500074,60.10678710937506],[11.680761718750034,59.59228515625003],[11.798144531250074,59.28989257812498],[11.64277343750004,58.92607421875002],[11.470703125000057,58.909521484375034],[11.388281250000063,59.036523437499966],[10.834472656250028,59.18393554687498],[10.595312500000063,59.764550781249966],[10.179394531250068,59.00927734375003],[9.842578125000017,58.95849609374997],[9.557226562500063,59.11269531250002],[9.65693359375004,58.97119140624997],[8.166113281250063,58.145312500000045],[7.0048828125,58.024218750000074],[6.877050781250006,58.15073242187498],[6.590527343750068,58.09731445312502],[6.659863281250068,58.26274414062499],[5.706835937500074,58.52363281250001],[5.55556640625008,58.975195312500006],[6.099023437500023,58.87026367187502],[6.363281250000028,59.00092773437501],[6.099414062500017,58.951953125000074],[5.88916015625,59.097949218750045],[5.951855468750068,59.299072265625],[6.415332031250074,59.547119140625],[5.17324218750008,59.16254882812498],[5.2421875,59.564306640625034],[5.472460937500017,59.713085937499955],[5.77216796875004,59.66093749999999],[6.216601562499989,59.818359375],[5.73046875,59.863085937500045],[6.348730468750006,60.35297851562504],[6.57363281250008,60.36059570312497],[6.526855468750057,60.152929687500034],[6.995703125,60.511962890625],[6.1533203125,60.34624023437499],[5.145800781250074,59.63881835937502],[5.205664062500006,60.087939453125045],[5.688574218749977,60.12319335937502],[5.285839843750011,60.20571289062505],[5.13710937500008,60.445605468750074],[5.648339843750051,60.68798828124997],[5.244042968750023,60.569580078125],[5.115820312500006,60.63598632812503],[5.008593750000017,61.038183593750006],[6.777832031250028,61.142431640625006],[7.038671875000063,60.952929687500045],[7.040136718750006,61.091162109375034],[7.604492187500057,61.210546875000034],[7.34658203125008,61.30058593749999],[7.442578125000011,61.43461914062502],[7.173535156250011,61.16596679687501],[6.599902343750017,61.28964843749998],[6.383496093750068,61.133886718750034],[5.451269531250034,61.10234375000002],[5.106738281250017,61.187548828125045],[5.002734375000074,61.43359375],[5.338671875000017,61.485498046874994],[4.927832031249977,61.71069335937506],[4.93007812499999,61.878320312499994],[6.01582031250004,61.7875],[6.730761718750045,61.86977539062505],[5.266894531250045,61.935595703125045],[5.143164062500063,62.159912109375],[5.908300781249977,62.41601562500003],[6.083496093750057,62.349609375],[6.580078125000057,62.407275390625045],[6.692382812500028,62.46806640624999],[6.136132812500051,62.40747070312497],[6.352929687500051,62.61113281249999],[7.653125,62.56401367187499],[7.538378906250074,62.67207031249998],[8.045507812500006,62.77124023437503],[6.734960937500006,62.72070312500003],[6.940429687500028,62.930468750000045],[7.571875,63.09951171875002],[8.100585937500028,63.090966796874966],[8.623144531250006,62.84624023437502],[8.158007812500017,63.16152343750005],[8.635546875000045,63.34233398437502],[8.360742187500023,63.498876953125034],[8.576171875000028,63.60117187499998],[9.135839843750006,63.593652343749966],[9.156054687500045,63.459326171875034],[9.696875,63.624560546875045],[10.020996093750028,63.39082031250004],[10.76015625000008,63.461279296875006],[10.725292968750068,63.625],[11.370703125000034,63.804833984374994],[11.175585937500074,63.89887695312498],[11.457617187500063,64.00297851562505],[11.306640625000028,64.04887695312499],[10.91425781250004,63.92109374999998],[10.934863281250045,63.770214843749955],[10.055078125000051,63.5126953125],[9.567285156250051,63.70615234374998],[10.565625,64.418310546875],[11.523828125000051,64.744384765625],[11.632910156250063,64.81391601562495],[11.296777343750051,64.75478515625],[11.489355468750034,64.975830078125],[12.15966796875,65.178955078125],[12.508398437499977,65.09941406250005],[12.915527343750057,65.33925781249997],[12.417578125000063,65.18408203124997],[12.133886718749977,65.27915039062498],[12.68886718750008,65.90219726562498],[13.033105468750051,65.95625],[12.783789062500063,66.10043945312506],[14.034179687500057,66.29755859374998],[13.118847656250011,66.23066406250004],[13.211425781250028,66.64082031250001],[13.959472656250028,66.79433593750002],[13.651562500000011,66.90708007812498],[14.10878906250008,67.11923828125003],[15.41572265625004,67.20244140625002],[14.441699218750045,67.27138671875005],[14.961914062500057,67.57426757812502],[15.59443359375004,67.34853515625005],[15.691503906250006,67.52138671875],[15.24873046875004,67.6021484375],[15.303906250000011,67.76528320312502],[14.854687500000068,67.66333007812506],[14.798925781250063,67.80932617187503],[15.13427734375,67.97270507812502],[15.621386718750017,67.94829101562502],[15.316015624999977,68.06875],[16.007910156250006,68.22871093750004],[16.312304687500017,67.88144531249998],[16.20380859375001,68.31674804687503],[17.552832031250063,68.42626953125006],[16.51435546875004,68.53256835937503],[18.101464843749994,69.15629882812499],[18.259765625,69.47060546875],[18.915917968750023,69.33559570312502],[18.614453125000068,69.49057617187498],[19.197265625000057,69.74785156249999],[19.722460937500017,69.78164062500002],[19.64150390625005,69.42402343750001],[20.324218750000057,69.94531249999997],[20.054492187500074,69.33266601562497],[20.486718750000023,69.54208984375],[20.739453124999983,69.52050781250003],[20.622070312500057,69.91391601562498],[21.163085937500057,69.88950195312498],[21.432910156250045,70.01318359375006],[21.974707031250034,69.83457031249998],[21.355761718750045,70.23339843749997],[22.321972656250068,70.264501953125],[22.684570312500057,70.374755859375],[23.35390625000008,69.98339843750003],[23.3291015625,70.20722656249995],[24.420019531250034,70.70200195312503],[24.263476562500017,70.82631835937497],[24.658007812500017,71.00102539062505],[25.264648437500057,70.843505859375],[25.768164062500063,70.85317382812502],[25.043847656250023,70.10903320312502],[26.66132812500004,70.93974609374999],[26.585058593750034,70.41000976562498],[26.989355468750063,70.51137695312502],[27.183691406250034,70.74404296875],[27.546484375000063,70.80400390625005],[27.23525390625008,70.94721679687498],[27.59707031250005,71.09130859375003],[28.392285156250068,70.97529296875004],[27.898046875,70.67792968750001],[28.271777343750017,70.66796875000003],[28.192968750000034,70.24858398437505],[28.83154296875003,70.86396484375001],[29.7375,70.646826171875],[30.065136718750097,70.70297851562498],[30.944140625000017,70.27441406249997],[30.262988281250074,70.12470703125004],[28.804296875000063,70.09252929687506],[29.601367187500017,69.97675781249998],[29.792089843750063,69.727880859375],[30.08828125,69.71757812500005],[30.237597656250017,69.86220703125002],[30.428320312500006,69.722265625],[30.869726562500006,69.78344726562506]]],[[[25.58632812500005,71.14208984375],[26.13378906250003,70.99580078125004],[25.582031250000057,70.960791015625],[25.31494140625,71.03413085937504],[25.58632812500005,71.14208984375]]],[[[-8.953564453124983,70.83916015625002],[-8.001367187499966,71.17768554687495],[-8.002099609374937,71.04125976562497],[-8.953564453124983,70.83916015625002]]],[[[19.219335937500006,74.39101562500002],[18.86123046875008,74.51416015624997],[19.182910156250045,74.51791992187503],[19.219335937500006,74.39101562500002]]],[[[21.60810546875004,78.59570312499997],[22.04316406250004,78.57695312500007],[22.29951171875004,78.22817382812497],[23.451953125000074,78.14946289062502],[23.11669921874997,77.99150390624999],[24.901855468750057,77.756591796875],[22.55371093750003,77.26665039062502],[22.685351562500045,77.55351562500002],[20.928125,77.45966796874998],[21.653125,77.92353515624998],[20.22792968750005,78.47783203125005],[21.60810546875004,78.59570312499997]]],[[[11.250292968750017,78.610693359375],[12.116406250000068,78.232568359375],[11.121289062500011,78.46328125],[10.558203125000063,78.90292968750003],[11.250292968750017,78.610693359375]]],[[[29.047070312500068,78.91206054687504],[29.69667968750005,78.90473632812495],[27.88906250000005,78.8521484375],[28.511132812500023,78.96733398437502],[29.047070312500068,78.91206054687504]]],[[[16.786718750000034,79.90673828125],[17.834570312499977,79.80004882812503],[17.66875,79.38593750000004],[18.39736328125008,79.60517578125001],[18.677832031250006,79.26171875000003],[19.893554687500057,79.05620117187499],[20.61103515625004,79.10664062499998],[21.388769531250034,78.74042968749998],[19.67675781250003,78.60957031249995],[16.700488281250045,76.57929687499995],[14.365820312500034,77.23447265625003],[13.995703125000034,77.50820312500002],[14.69501953125004,77.525048828125],[14.920800781250023,77.68881835937506],[17.033300781250006,77.79770507812503],[16.91406250000003,77.89799804687505],[14.089941406250063,77.77138671875],[13.680566406250051,78.028125],[14.307226562500006,78.00507812500001],[15.783886718750011,78.32705078125005],[17.00292968750003,78.36938476562497],[16.44863281250008,78.50356445312502],[16.78261718750008,78.66362304687505],[15.417382812500023,78.47324218749998],[15.384179687500023,78.77119140625001],[15.01630859375004,78.63012695312497],[14.689257812500017,78.720947265625],[14.638281250000034,78.41459960937502],[14.110449218750063,78.27089843749997],[13.150195312499989,78.2375],[11.365429687500011,78.95039062500004],[12.323437500000068,78.91425781249995],[12.083984375000028,79.26752929687498],[11.579785156250068,79.28349609375005],[11.208105468750034,79.12963867187503],[10.737597656250017,79.52016601562502],[10.804003906250045,79.79877929687504],[11.150390625,79.71699218749998],[11.702343750000011,79.82060546875005],[12.287792968750068,79.713134765625],[12.279980468749983,79.81596679687507],[13.692871093749972,79.860986328125],[13.777539062500011,79.71528320312498],[12.555371093750068,79.56948242187502],[13.333789062500017,79.57480468750006],[14.029589843750017,79.34414062500005],[14.59365234375008,79.79873046875002],[16.34375,78.97612304687502],[15.816113281250011,79.68183593750001],[16.245703125000034,80.04946289062502],[16.786718750000034,79.90673828125]]],[[[32.52597656250006,80.119140625],[31.48193359374997,80.10791015625003],[33.62929687499999,80.21743164062497],[32.52597656250006,80.119140625]]],[[[20.897851562500023,80.24995117187501],[22.289746093749983,80.04921874999997],[22.450781250000034,80.40224609375005],[23.00800781250004,80.473974609375],[23.114550781250074,80.18696289062498],[24.29755859375004,80.36040039062505],[26.86083984375,80.16000976562498],[27.19863281250008,79.90659179687506],[25.641210937500034,79.40302734374995],[23.94775390625,79.19428710937498],[22.903710937500023,79.23066406250001],[22.865527343750045,79.41186523437497],[20.861132812500017,79.39785156249997],[20.128222656250074,79.489599609375],[19.674609375000045,79.591162109375],[20.784082031250023,79.74858398437502],[18.725,79.7607421875],[18.25537109375,79.92919921875003],[18.855957031250057,80.03662109375],[17.91689453125005,80.14311523437502],[19.343359375000063,80.11640624999998],[19.733300781249994,80.47783203124999],[20.897851562500023,80.24995117187501]]]]},"properties":{"name":"Norway","childNum":27}},{"geometry":{"type":"Polygon","coordinates":[[[87.984375,27.133935546874994],[87.9931640625,27.086083984374994],[88.11103515625001,26.928466796875],[88.1572265625,26.807324218749997],[88.16152343750002,26.724804687499997],[88.11152343750001,26.58642578125],[88.05488281250001,26.430029296875],[88.02695312500003,26.39501953125],[87.9951171875,26.382373046874996],[87.28740234374999,26.360302734374997],[87.01640624999999,26.555419921875],[86.70136718750001,26.43505859375],[86.00732421875,26.649365234374997],[85.79453125000003,26.604150390624994],[85.7373046875,26.63974609375],[85.6484375,26.829003906249994],[85.56845703125003,26.83984375],[85.29296875,26.741015625],[85.19179687500002,26.766552734374997],[84.68535156249999,27.041015625],[84.65380859375,27.091699218749994],[84.65478515625,27.203662109374996],[84.64072265625003,27.249853515625],[84.61015624999999,27.298681640625],[84.48085937500002,27.348193359374996],[84.22978515624999,27.42783203125],[84.09101562500001,27.491357421874994],[83.82880859375001,27.377832031249994],[83.74697265625002,27.395947265624997],[83.55166015625002,27.456347656249996],[83.44716796875002,27.46533203125],[83.38398437500001,27.44482421875],[83.36943359374999,27.41025390625],[83.28974609375001,27.370996093749994],[82.7333984375,27.518994140624997],[82.71083984375002,27.5966796875],[82.67734375000003,27.6734375],[82.6298828125,27.687060546874996],[82.45136718750001,27.671826171874997],[82.28769531250003,27.756542968749997],[82.11191406250003,27.864941406249997],[82.03701171875002,27.900585937499997],[81.98769531250002,27.913769531249997],[81.94521484375002,27.899267578125],[81.896875,27.874462890624997],[81.85263671875003,27.867089843749994],[81.1689453125,28.335009765624996],[80.58701171875003,28.649609375],[80.51787109374999,28.665185546874994],[80.49580078125001,28.635791015624996],[80.47910156250003,28.604882812499994],[80.41855468750003,28.612011718749997],[80.32480468750003,28.66640625],[80.2265625,28.723339843749997],[80.07070312500002,28.83017578125],[80.05166015625002,28.8703125],[80.08457031250003,28.994189453124996],[80.13046875000003,29.100390625],[80.16953125000003,29.124316406249996],[80.23300781250003,29.194628906249996],[80.25595703125003,29.318017578124994],[80.2548828125,29.42333984375],[80.31689453125,29.572070312499996],[80.40185546875,29.730273437499996],[80.54902343750001,29.899804687499994],[80.81992187500003,30.119335937499997],[80.84814453125,30.13974609375],[80.90761718750002,30.171923828124996],[80.96611328124999,30.180029296875],[81.17714843750002,30.039892578125],[81.25507812500001,30.093310546874996],[81.41718750000001,30.337597656249997],[81.64189453124999,30.3875],[81.85488281250002,30.36240234375],[82.04335937500002,30.3267578125],[82.220703125,30.063867187499994],[83.15546875000001,29.612646484375],[83.58349609375,29.18359375],[83.93593750000002,29.279492187499997],[84.02197265625,29.253857421874997],[84.10136718749999,29.219970703125],[84.12783203125002,29.156298828124996],[84.17558593749999,29.036376953125],[84.22871093750001,28.911767578124994],[84.796875,28.560205078124994],[84.85507812500003,28.553613281249994],[85.06914062499999,28.609667968749996],[85.12636718750002,28.60263671875],[85.15908203125002,28.592236328124997],[85.16015625,28.571875],[85.12148437500002,28.484277343749994],[85.08857421875001,28.372265625],[85.12246093750002,28.315966796874996],[85.21210937500001,28.292626953124994],[85.41064453125,28.276025390624994],[85.67832031250003,28.27744140625],[85.75947265625001,28.220654296874997],[85.84023437500002,28.1353515625],[85.92167968749999,27.989697265624997],[85.9541015625,27.92822265625],[85.99453125000002,27.910400390625],[86.06416015625001,27.934716796874994],[86.07871093750003,28.08359375],[86.13701171874999,28.11435546875],[86.21796875000001,28.0220703125],[86.32861328125,27.959521484374996],[86.40869140625,27.928662109374997],[86.51689453124999,27.963525390624994],[86.55449218749999,28.085205078125],[86.61445312500001,28.10302734375],[86.69052734375003,28.094921875],[86.71962890625002,28.070654296875],[86.75039062500002,28.0220703125],[86.93378906250001,27.968457031249997],[87.02011718750003,27.928662109374997],[87.14140624999999,27.838330078124997],[87.29072265625001,27.821923828124994],[87.62255859375,27.815185546875],[87.86074218750002,27.886083984375],[88.10976562500002,27.87060546875],[87.984375,27.133935546874994]]]},"properties":{"name":"Nepal","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[169.17822265624997,-52.497265625],[169.12753906250006,-52.570312499999964],[169.02177734375002,-52.49541015624998],[169.17822265624997,-52.497265625]]],[[[166.22109375,-50.76152343749997],[166.2428710937501,-50.84570312499998],[165.88916015624997,-50.80771484374996],[166.10136718750002,-50.538964843750016],[166.26748046875005,-50.558593750000014],[166.22109375,-50.76152343749997]]],[[[168.14492187500005,-46.862207031249966],[168.04316406250004,-46.9326171875],[168.2409179687501,-47.070019531250026],[167.52197265624997,-47.258691406249994],[167.80078125000003,-46.90654296875002],[167.78398437500007,-46.699804687500006],[167.9557617187501,-46.69443359374998],[168.14492187500005,-46.862207031249966]]],[[[166.97949218749997,-45.17968750000003],[167.02265625000004,-45.299804687499986],[166.89267578125012,-45.24052734374999],[166.97949218749997,-45.17968750000003]]],[[[-176.17763671874997,-43.74033203124998],[-176.38173828124997,-43.86679687499998],[-176.40737304687497,-43.7609375],[-176.516552734375,-43.78476562499996],[-176.33359375000003,-44.02529296875004],[-176.51552734374997,-44.11660156249998],[-176.62934570312495,-44.036132812500014],[-176.55512695312504,-43.85195312499998],[-176.84765625000003,-43.82392578125004],[-176.56611328124995,-43.717578125000045],[-176.17763671874997,-43.74033203124998]]],[[[173.91464843750018,-40.86367187500004],[173.78085937500012,-40.921777343749966],[173.964453125,-40.71298828124998],[173.91464843750018,-40.86367187500004]]],[[[173.11533203125006,-41.27929687499997],[173.94716796875005,-40.92412109375],[173.79785156250003,-41.271972656249986],[173.99941406250005,-40.99326171874996],[174.30253906249996,-41.019531249999986],[174.03857421875003,-41.24189453125],[174.37011718750009,-41.1037109375],[174.06933593750009,-41.42949218750002],[174.08369140625015,-41.67080078124998],[174.2831054687501,-41.740625],[173.22119140624997,-42.976562499999986],[172.62402343749997,-43.27246093749996],[172.73476562500005,-43.35478515625003],[172.52666015625002,-43.464746093749966],[172.69345703125006,-43.444335937499986],[172.80703125000005,-43.620996093749994],[173.07324218750003,-43.676171874999966],[173.065625,-43.87460937499998],[172.50273437500002,-43.84365234374998],[172.48037109375,-43.726660156250034],[172.29658203125004,-43.867871093750026],[172.035546875,-43.70175781250002],[172.17978515625006,-43.895996093749986],[171.24072265624997,-44.26416015625003],[171.14628906250002,-44.9123046875],[170.99902343750003,-44.91142578124999],[171.11328125000003,-45.03925781250001],[170.7005859375,-45.68427734374997],[170.77626953125005,-45.870898437499974],[170.4191406250001,-45.94101562499996],[169.68662109375006,-46.55166015625002],[169.34228515625003,-46.62050781250001],[168.38212890625007,-46.60537109374995],[168.1891601562501,-46.362207031249966],[167.8419921875001,-46.366210937499986],[167.539453125,-46.14853515624996],[167.36894531250007,-46.24150390624999],[166.73154296875006,-46.19785156249998],[166.91669921875004,-45.95722656249998],[166.64990234374997,-46.04169921875004],[166.71796875000004,-45.88935546875001],[166.49316406249997,-45.9638671875],[166.48828124999997,-45.83183593750002],[167.0033203125,-45.71210937500004],[166.79765625000002,-45.64560546874999],[166.99082031250012,-45.531738281249986],[166.73398437500012,-45.54355468749999],[166.74306640625,-45.46845703124997],[166.91992187499997,-45.40791015624998],[166.86923828125006,-45.31123046875],[167.15566406250005,-45.410937499999974],[167.23007812500012,-45.29033203125],[167.02587890624997,-45.12363281249998],[167.25947265625004,-45.08222656249997],[167.19453125000004,-44.963476562500034],[167.41074218750006,-44.82792968750003],[167.4662109375,-44.958300781250045],[167.48496093750006,-44.77138671874998],[167.78701171875,-44.59501953125002],[167.90898437500002,-44.66474609375001],[167.85654296875012,-44.50068359374998],[168.45742187500005,-44.030566406250045],[169.17890625000004,-43.9130859375],[169.16953125000006,-43.77705078125],[169.83388671875,-43.53701171875004],[170.24023437499997,-43.163867187500045],[170.39609375000012,-43.18222656249996],[170.30283203125012,-43.10761718750004],[170.61181640625003,-43.091796875000014],[170.5236328125001,-43.00898437500001],[170.6654296875,-42.961230468749974],[170.73525390625005,-43.029785156249986],[170.96992187500004,-42.71835937499996],[171.01171875000003,-42.88505859374999],[171.027734375,-42.696093750000045],[171.31337890625005,-42.460156250000026],[171.48623046875,-41.7947265625],[171.94804687500002,-41.53867187499996],[172.13945312500002,-40.947265625000014],[172.640625,-40.51826171875001],[172.94365234375007,-40.51875],[172.73261718750004,-40.54375],[172.70439453125002,-40.6677734375],[172.988671875,-40.84824218749999],[173.11533203125006,-41.27929687499997]]],[[[175.54316406250015,-36.279296874999986],[175.34619140624997,-36.217773437499986],[175.3895507812501,-36.07773437499996],[175.54316406250015,-36.279296874999986]]],[[[173.26943359375,-34.93476562499998],[173.44785156250012,-34.844335937500034],[173.47265625000003,-34.94697265624998],[174.10400390625003,-35.14287109375002],[174.1431640625,-35.3],[174.32031250000003,-35.246679687500034],[174.58066406250018,-35.78554687500004],[174.39580078124996,-35.79736328124996],[174.8021484375,-36.30947265625001],[174.72246093750007,-36.84121093749998],[175.29951171875004,-36.99326171874996],[175.38535156250012,-37.206933593749966],[175.54248046874997,-37.2013671875],[175.46083984375005,-36.475683593750034],[175.77216796875004,-36.73515625],[176.10839843749997,-37.64511718749998],[177.27402343750012,-37.993457031249974],[178.0091796875,-37.55488281249998],[178.53623046875006,-37.69208984375004],[178.26767578125006,-38.551171875],[177.976171875,-38.72226562500005],[177.90878906250012,-39.23955078125],[177.52294921875003,-39.07382812499999],[177.07675781250012,-39.22177734375002],[176.93925781249996,-39.55527343750002],[177.10986328125009,-39.673144531250045],[176.8421875000001,-40.15781250000002],[175.98291015625003,-41.21328125000002],[175.30976562499998,-41.610644531249974],[175.16562500000012,-41.41738281249995],[174.88134765624997,-41.42402343749997],[174.8656250000001,-41.223046874999966],[174.63535156250012,-41.28945312499999],[175.1625,-40.62158203125],[175.25410156250004,-40.28935546875],[175.1559570312501,-40.11494140625],[175.00927734375009,-39.95214843749996],[173.93437500000013,-39.50908203125002],[173.76367187499997,-39.31875],[173.84433593750006,-39.13935546875001],[174.39843749999997,-38.96259765624998],[174.59736328124998,-38.78505859374995],[174.80166015625005,-37.895507812500014],[174.92802734375002,-37.80449218750003],[174.58583984374994,-37.09775390625002],[174.73427734375,-37.21523437499998],[174.92890625000004,-37.084765625000045],[174.78203125000013,-36.94375],[174.47558593750009,-36.94189453124997],[174.1888671875001,-36.492285156250034],[174.4015625000001,-36.60195312499999],[174.39277343750004,-36.24003906249999],[174.26787109375002,-36.16308593750003],[174.25371093749996,-36.24912109374998],[174.03642578125013,-36.12246093750001],[173.91445312499994,-35.908691406249986],[173.91728515625002,-36.01816406249999],[174.16640624999994,-36.327636718749986],[174.05468749999991,-36.35976562500004],[173.41220703125012,-35.542578125],[173.62617187500004,-35.31914062499996],[173.3763671875001,-35.50009765624996],[173.31396484375003,-35.44335937499996],[173.11669921874997,-35.205273437500026],[173.190625,-35.01621093749998],[172.70595703125005,-34.45517578124998],[173.04394531249997,-34.429101562499994],[172.96376953125,-34.53515625000003],[173.26943359375,-34.93476562499998]]]]},"properties":{"name":"New Zealand","childNum":9}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[58.722070312499994,20.21875],[58.640917968750074,20.210693359375057],[58.64121093750006,20.33735351562501],[58.884375,20.680566406250023],[58.95078125000006,20.516162109375017],[58.722070312499994,20.21875]]],[[[56.38798828125002,24.97919921875004],[56.640625,24.4703125],[57.12304687500003,23.980712890625],[58.773046875,23.517187499999977],[59.42939453125004,22.660839843749955],[59.82324218749997,22.50898437500004],[59.8,22.21992187500001],[59.37148437500005,21.498828125000017],[58.89570312500004,21.11279296874997],[58.47421875000006,20.406884765624966],[58.20898437500003,20.423974609374994],[58.245019531249994,20.599218749999977],[58.16943359375003,20.58950195312505],[57.86181640624997,20.24414062500003],[57.71416015625002,19.678417968749983],[57.81162109375006,19.01708984374997],[56.825976562500074,18.753515625],[56.3834960937501,17.98798828125001],[55.479101562500006,17.84326171875003],[55.25537109375003,17.58564453125004],[55.275195312500074,17.320898437500006],[55.06416015625004,17.038916015625034],[54.06816406250002,17.005517578124966],[53.60986328124997,16.75996093750004],[53.08564453125004,16.648388671874955],[51.977636718750006,18.996142578125074],[54.97734375000002,19.995947265625006],[55.64101562499999,22.001855468749994],[55.185839843750074,22.7041015625],[55.1999023437501,23.034765625000034],[55.53164062499999,23.81904296875001],[55.4684570312501,23.94111328125001],[55.98515625000002,24.063378906249966],[55.92861328125005,24.215136718750074],[55.76083984375006,24.24267578125],[55.795703125000074,24.868115234374955],[56.00058593750006,24.953222656249977],[56.06386718750005,24.73876953125],[56.38798828125002,24.97919921875004]]],[[[56.29785156250003,25.650683593750045],[56.144628906250006,25.690527343750006],[56.16748046875003,26.047460937499977],[56.08046875,26.06264648437505],[56.41308593749997,26.351171875000034],[56.29785156250003,25.650683593750045]]]]},"properties":{"name":"Oman","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[73.08961802927895,36.86435907947333],[73.08203125000107,36.43949943991182],[72.31128647748268,35.77290936638241],[73.13410859949555,34.82510160558277],[73.19895048106557,33.88770931468204],[74.00809389139292,33.25375789331485],[73.98984375,33.22119140625],[74.30361328125002,32.991796875],[74.30546875000002,32.810449218749994],[74.35458984375,32.768701171874994],[74.58828125000002,32.753222656249996],[74.632421875,32.770898437499994],[74.66328125000001,32.757666015625],[74.64335937500002,32.607714843749996],[74.68574218750001,32.493798828124994],[74.78886718750002,32.4578125],[74.9873046875,32.462207031249996],[75.33349609375,32.279199218749994],[75.25410156250001,32.14033203125],[75.13876953125,32.104785156249996],[75.07148437500001,32.08935546875],[74.73945312500001,31.948828125],[74.6357421875,31.88974609375],[74.55556640625002,31.818554687499997],[74.5259765625,31.76513671875],[74.50996093750001,31.712939453124996],[74.58183593750002,31.52392578125],[74.59394531250001,31.465380859374996],[74.53496093750002,31.261376953124994],[74.51767578125,31.185595703124996],[74.6103515625,31.112841796874996],[74.62578125000002,31.06875],[74.6328125,31.03466796875],[74.509765625,30.959667968749997],[74.38037109375,30.893408203125],[74.33935546875,30.8935546875],[74.00898437500001,30.519677734374994],[73.89931640625002,30.435351562499996],[73.88271484375002,30.3521484375],[73.92460937500002,30.28164062499999],[73.93339843750002,30.222070312499994],[73.88652343750002,30.162011718749994],[73.8091796875,30.093359375],[73.38164062500002,29.934375],[72.9033203125,29.028759765624997],[72.34189453125,28.751904296874997],[72.2919921875,28.697265625],[72.128515625,28.346337890624994],[71.94804687500002,28.177294921874996],[71.88886718750001,28.0474609375],[71.87031250000001,27.9625],[71.54296875,27.869873046875],[71.18476562500001,27.831640625],[70.87490234375002,27.714453125],[70.79794921875,27.709619140624994],[70.69160156250001,27.768994140624997],[70.62910156250001,27.937451171874997],[70.40371093750002,28.025048828124994],[70.24433593750001,27.934130859374996],[70.1939453125,27.894873046875],[70.14453125,27.849023437499994],[70.0498046875,27.694726562499994],[69.89628906250002,27.4736328125],[69.56796875,27.174609375],[69.47001953125002,26.804443359375],[70.11464843750002,26.548046875],[70.14921875000002,26.347558593749994],[70.1001953125,25.910058593749994],[70.2646484375,25.70654296875],[70.3251953125,25.685742187499997],[70.44853515625002,25.681347656249997],[70.505859375,25.685302734375],[70.56953125000001,25.705957031249994],[70.6484375,25.666943359374997],[70.65205078125001,25.422900390625003],[70.87773437500002,25.06298828125],[70.95087890625001,24.8916015625],[71.02070312500001,24.75766601562499],[71.0478515625,24.687744140625],[71.00234375000002,24.65390625],[70.97636718750002,24.61875],[70.96982421875,24.571875],[71.04531250000002,24.429980468750003],[71.04404296875,24.400097656249997],[70.98281250000002,24.361035156249997],[70.928125,24.362353515625003],[70.88623046875,24.34375],[70.80507812500002,24.261962890625],[70.76728515625001,24.245410156250003],[70.71630859375,24.237988281249997],[70.65947265625002,24.24609375],[70.57929687500001,24.279052734375],[70.55585937500001,24.331103515625003],[70.5650390625,24.385791015625003],[70.54677734375002,24.41831054687499],[70.2890625,24.35629882812499],[70.0982421875,24.2875],[69.80517578125,24.165234375],[69.71621093750002,24.172607421875],[69.63417968750002,24.22519531249999],[69.5591796875,24.273095703124994],[69.44345703125,24.275390625],[69.23505859375001,24.268261718749997],[69.11953125000002,24.26865234374999],[69.05156250000002,24.286328125],[68.98457031250001,24.273095703124994],[68.90078125000002,24.292431640624997],[68.86347656250001,24.266503906249994],[68.82832031250001,24.26401367187499],[68.78115234375002,24.313720703125],[68.75898437500001,24.30722656249999],[68.73964843750002,24.2919921875],[68.728125,24.265625],[68.72412109375,23.96469726562499],[68.48867187500002,23.967236328124997],[68.38125,23.950878906249997],[68.28251953125002,23.927978515625],[68.1650390625,23.857324218749994],[68.11552734375002,23.753369140624997],[67.8599609375,23.90268554687499],[67.66845703125,23.810986328124997],[67.309375,24.1748046875],[67.171484375,24.756103515625],[66.70302734375002,24.8609375],[66.69863281250002,25.226318359375],[66.32421875,25.601806640625],[66.13115234375002,25.49326171874999],[66.46767578125002,25.4453125],[64.77666015625002,25.307324218749997],[64.65898437500002,25.18408203125],[64.059375,25.40292968749999],[63.556640625,25.353173828124994],[63.49140625000001,25.210839843749994],[61.56689453125,25.186328125],[61.587890625,25.20234375],[61.61542968750001,25.2861328125],[61.64013671875,25.584619140624994],[61.67138671875,25.6923828125],[61.66181640625001,25.751269531250003],[61.66865234375001,25.768994140624997],[61.73769531250002,25.82109375],[61.75439453125,25.84335937499999],[61.78076171875,25.995849609375],[61.80996093750002,26.165283203125],[61.842382812500006,26.225927734375],[62.1259765625,26.368994140625],[62.239355468750006,26.35703125],[62.31230468750002,26.490869140624994],[63.168066406250006,26.665576171874996],[63.186132812500006,26.837597656249997],[63.24160156250002,26.86474609375],[63.25039062500002,26.879248046875],[63.24208984375002,27.077685546874996],[63.30517578125,27.124560546874996],[63.30156250000002,27.15146484375],[63.25625,27.207910156249994],[63.19609375000002,27.243945312499996],[63.16679687500002,27.252490234374996],[62.75273437500002,27.265625],[62.782324218750006,27.800537109375],[62.7625,28.202050781249994],[61.88984375000001,28.546533203124994],[61.15214843750002,29.542724609375],[61.0341796875,29.663427734375],[60.843359375,29.858691406249996],[61.22441406250002,29.749414062499994],[62.0009765625,29.530419921874994],[62.4765625,29.408349609374994],[63.56757812500001,29.497998046874997],[64.09873046875,29.391943359375],[64.39375,29.544335937499994],[65.09550781250002,29.559472656249994],[66.23125,29.86572265625],[66.346875,30.802783203124996],[66.82929687500001,31.263671875],[67.45283203125001,31.234619140625],[67.737890625,31.343945312499997],[67.57822265625,31.506494140624994],[68.16103515625002,31.802978515625],[68.59765625,31.802978515625],[68.86894531250002,31.634228515624997],[69.279296875,31.936816406249996],[69.24140625000001,32.433544921875],[69.5015625,33.020068359374996],[70.26113281250002,33.289013671875],[69.8896484375,34.007275390625],[70.65400390625001,33.952294921874994],[71.05156250000002,34.049707031249994],[71.095703125,34.369433593749996],[70.965625,34.53037109375],[71.62050781250002,35.183007812499994],[71.57197265625001,35.546826171875],[71.18505859375,36.04208984375],[71.23291015625,36.12177734375],[72.24980468750002,36.734716796875],[73.08961802927895,36.86435907947333]]]},"properties":{"name":"Pakistan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-81.60327148437497,7.332812499999989],[-81.85205078125003,7.453320312500026],[-81.812158203125,7.59238281250002],[-81.72875976562494,7.62119140625002],[-81.60327148437497,7.332812499999989]]],[[[-78.89833984375002,8.27426757812502],[-78.960595703125,8.435839843749989],[-78.88325195312495,8.460253906249989],[-78.89833984375002,8.27426757812502]]],[[[-77.37421874999993,8.65830078125002],[-77.47851562499994,8.498437500000037],[-77.19599609374995,7.972460937500003],[-77.53828124999995,7.56625976562502],[-77.76191406249995,7.698828125000034],[-77.90117187499999,7.229345703125048],[-78.42158203124995,8.060986328125011],[-78.28735351562497,8.091796874999972],[-78.14189453125002,8.386083984374977],[-77.76054687499993,8.133251953124983],[-78.09946289062498,8.496972656250009],[-78.22304687500002,8.396630859374994],[-78.39921874999993,8.505664062500003],[-78.40986328124998,8.35532226562502],[-78.51406249999997,8.628173828125],[-79.08637695312495,8.997167968750034],[-79.50708007812494,8.97006835937502],[-79.68745117187493,8.850976562500009],[-79.81591796875,8.639208984375031],[-79.75043945312498,8.595507812500017],[-80.458984375,8.213867187499972],[-80.45810546875,8.077050781249994],[-80.01123046875,7.500048828125031],[-80.66669921874995,7.225683593750006],[-80.90122070312503,7.277148437500017],[-81.06386718749994,7.89975585937502],[-81.26840820312495,7.625488281250014],[-81.50415039062503,7.721191406249972],[-81.72763671875,8.137548828124977],[-82.15986328124995,8.19482421875],[-82.23544921874998,8.311035156250057],[-82.67954101562503,8.321972656249969],[-82.86611328124994,8.246337890625014],[-82.87934570312498,8.07065429687502],[-83.02734375,8.337744140624991],[-82.86162109374999,8.453515625000037],[-82.84477539062493,8.489355468749963],[-82.85571289062494,8.635302734375031],[-82.91704101562502,8.740332031250034],[-82.88198242187497,8.805322265625037],[-82.72783203125002,8.916064453125031],[-82.78305664062498,8.990283203124974],[-82.88134765625003,9.055859375000011],[-82.94033203124997,9.060107421874989],[-82.93984374999994,9.449169921875026],[-82.92504882812494,9.469042968749989],[-82.88896484374999,9.481005859375017],[-82.86015625,9.511474609375014],[-82.84399414062497,9.570800781250014],[-82.801025390625,9.591796875000028],[-82.64409179687502,9.505859375000028],[-82.56357421875003,9.576660156249972],[-82.50034179687503,9.523242187500017],[-82.37080078124993,9.428564453124991],[-82.33974609375,9.209179687499983],[-82.18813476562502,9.191748046874977],[-82.24418945312499,9.031494140625014],[-82.07788085937503,8.93486328124996],[-81.78022460937495,8.957226562499983],[-81.89448242187495,9.140429687500003],[-81.35478515624996,8.78056640624996],[-80.83867187499999,8.887207031250014],[-80.12709960937497,9.20991210937504],[-79.57729492187497,9.597851562500026],[-78.08276367187494,9.236279296874997],[-77.37421874999993,8.65830078125002]]]]},"properties":{"name":"Panama","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[-73.137353515625,-6.4658203125],[-73.75810546874999,-6.90576171875],[-73.79301757812499,-7.135058593750003],[-73.758203125,-7.172753906250009],[-73.72041015625,-7.309277343750011],[-73.964306640625,-7.37890625],[-73.95849609375,-7.506640625],[-73.98173828124999,-7.535742187500006],[-74.00205078124999,-7.556054687500009],[-73.98173828124999,-7.585058593750006],[-73.946875,-7.611230468750009],[-73.89462890624999,-7.65478515625],[-73.82207031249999,-7.738964843750011],[-73.76689453124999,-7.753515625],[-73.72041015625,-7.782519531250003],[-73.73203125,-7.875390625],[-73.54912109374999,-8.345800781250006],[-73.39814453125,-8.458984375],[-73.36040039062499,-8.479296875],[-73.351708984375,-8.51416015625],[-73.35673828124999,-8.566992187500006],[-73.30244140625,-8.654003906250011],[-73.203125,-8.719335937500006],[-73.0705078125,-8.8828125],[-72.9740234375,-8.9931640625],[-72.970361328125,-9.1201171875],[-73.08984375,-9.265722656250006],[-73.209423828125,-9.411425781250003],[-72.379052734375,-9.51015625],[-72.181591796875,-10.003710937500003],[-71.33940429687499,-9.988574218750003],[-71.11528320312499,-9.852441406250009],[-71.041748046875,-9.81875],[-70.6369140625,-9.478222656250011],[-70.60791015625,-9.463671875],[-70.54111328124999,-9.4375],[-70.57016601562499,-9.48984375],[-70.592236328125,-9.54345703125],[-70.59916992187499,-9.620507812500009],[-70.642333984375,-11.01025390625],[-70.59653320312499,-10.976855468750003],[-70.53325195312499,-10.946875],[-70.45087890625,-11.024804687500009],[-70.39228515625,-11.05859375],[-70.3419921875,-11.066699218750003],[-70.29038085937499,-11.064257812500003],[-70.22006835937499,-11.04765625],[-70.06630859375,-10.982421875],[-69.9603515625,-10.929882812500011],[-69.839794921875,-10.933398437500003],[-69.6740234375,-10.9541015625],[-69.57861328125,-10.951757812500006],[-68.68525390625,-12.501953125],[-68.97861328124999,-12.880078125000011],[-69.07412109375,-13.682812500000011],[-68.87089843749999,-14.169726562500003],[-69.35947265624999,-14.7953125],[-69.37470703125,-14.962988281250006],[-69.17246093749999,-15.236621093750003],[-69.4208984375,-15.640625],[-69.21757812499999,-16.14912109375001],[-68.8427734375,-16.337890625],[-69.03291015625,-16.47597656250001],[-69.020703125,-16.6421875],[-69.62485351562499,-17.2001953125],[-69.645703125,-17.24853515625],[-69.521923828125,-17.388964843750003],[-69.510986328125,-17.46035156250001],[-69.51108398437499,-17.5048828125],[-69.5109375,-17.50605468750001],[-69.58642578125,-17.5732421875],[-69.684765625,-17.64980468750001],[-69.85209960937499,-17.70380859375001],[-69.80258789062499,-17.990234375],[-69.92636718749999,-18.2060546875],[-70.41826171874999,-18.34560546875001],[-71.33696289062499,-17.68251953125001],[-71.5322265625,-17.29433593750001],[-72.46767578125,-16.708105468750006],[-73.727685546875,-16.20166015625],[-75.104248046875,-15.411914062500003],[-75.533642578125,-14.89921875],[-75.93388671874999,-14.63359375],[-76.37646484375,-13.863085937500003],[-76.259228515625,-13.802832031250006],[-76.2236328125,-13.371191406250006],[-76.83212890624999,-12.348730468750006],[-77.152734375,-12.060351562500003],[-77.2203125,-11.663378906250003],[-77.633203125,-11.287792968750011],[-77.736083984375,-10.83671875],[-78.18559570312499,-10.089062500000011],[-78.76225585937499,-8.616992187500003],[-79.37724609374999,-7.835546875],[-79.99497070312499,-6.768945312500009],[-81.142041015625,-6.056738281250006],[-81.164306640625,-5.875292968750003],[-80.9306640625,-5.8408203125],[-80.88193359374999,-5.635058593750003],[-81.33662109375,-4.66953125],[-81.283203125,-4.322265625],[-80.503662109375,-3.49609375],[-80.324658203125,-3.387890625000011],[-80.24375,-3.576757812500006],[-80.19414062499999,-3.905859375],[-80.23051757812499,-3.924023437500011],[-80.26689453124999,-3.948828125],[-80.30327148437499,-4.005078125000011],[-80.43720703125,-3.978613281250006],[-80.49013671875,-4.010058593750003],[-80.510009765625,-4.069531250000011],[-80.49345703124999,-4.119140625],[-80.4884765625,-4.16552734375],[-80.453759765625,-4.205175781250006],[-80.35288085937499,-4.20849609375],[-80.44384765625,-4.335839843750009],[-80.4884765625,-4.393652343750006],[-80.47856445312499,-4.430078125],[-80.42416992187499,-4.46142578125],[-80.38349609375,-4.463671875],[-80.293359375,-4.416796875],[-80.1974609375,-4.31103515625],[-80.13955078125,-4.296093750000011],[-80.06352539062499,-4.327539062500009],[-79.962890625,-4.390332031250011],[-79.8451171875,-4.445898437500006],[-79.797265625,-4.476367187500003],[-79.71098632812499,-4.467578125],[-79.63852539062499,-4.454882812500003],[-79.57768554687499,-4.500585937500006],[-79.51616210937499,-4.539160156250006],[-79.501904296875,-4.670605468750011],[-79.45576171875,-4.766210937500006],[-79.3994140625,-4.840039062500011],[-79.33095703125,-4.927832031250006],[-79.26811523437499,-4.957617187500006],[-79.186669921875,-4.958203125000011],[-79.07626953124999,-4.990625],[-79.03330078124999,-4.969140625],[-78.995263671875,-4.908007812500003],[-78.97539062499999,-4.873242187500011],[-78.919189453125,-4.8583984375],[-78.92578125,-4.770703125000011],[-78.9076171875,-4.714453125],[-78.8615234375,-4.6650390625],[-78.68603515625,-4.562402343750009],[-78.64799804687499,-4.248144531250006],[-78.345361328125,-3.397363281250009],[-78.240380859375,-3.472558593750009],[-77.860595703125,-2.981640625000011],[-76.6791015625,-2.562597656250006],[-76.089794921875,-2.133105468750003],[-75.570556640625,-1.53125],[-75.42041015625,-0.962207031250003],[-75.40805664062499,-0.92431640625],[-75.24960937499999,-0.951855468750011],[-75.259375,-0.590136718750003],[-75.42470703125,-0.408886718750011],[-75.49106445312499,-0.248339843750003],[-75.56059570312499,-0.200097656250009],[-75.63203125,-0.157617187500009],[-75.62626953124999,-0.122851562500003],[-75.340478515625,-0.1421875],[-75.13837890625,-0.050488281250011],[-74.8017578125,-0.200097656250009],[-74.78046875,-0.24453125],[-74.75537109375,-0.298632812500003],[-74.691650390625,-0.335253906250003],[-74.616357421875,-0.370019531250009],[-74.555078125,-0.429882812500011],[-74.5138671875,-0.470117187500009],[-74.46518554687499,-0.517675781250006],[-74.41787109375,-0.580664062500006],[-74.334423828125,-0.850878906250003],[-74.28388671875,-0.927832031250006],[-74.24638671874999,-0.970605468750009],[-74.05439453125,-1.028613281250003],[-73.98681640625,-1.09814453125],[-73.926953125,-1.125195312500011],[-73.86318359375,-1.196679687500009],[-73.664306640625,-1.248828125],[-73.4962890625,-1.693066406250011],[-73.19697265625,-1.830273437500011],[-73.1544921875,-2.278222656250009],[-72.9896484375,-2.339746093750009],[-72.94111328125,-2.39404296875],[-72.21845703125,-2.400488281250006],[-71.98427734375,-2.3265625],[-71.93247070312499,-2.288671875],[-71.86728515624999,-2.227734375000011],[-71.802734375,-2.166308593750003],[-71.75253906249999,-2.152734375],[-71.55947265625,-2.22421875],[-71.39697265625,-2.334082031250006],[-71.19638671874999,-2.313085937500006],[-71.11337890624999,-2.245410156250003],[-71.027294921875,-2.225781250000011],[-70.96855468749999,-2.206835937500003],[-70.70537109374999,-2.341992187500011],[-70.64799804687499,-2.40576171875],[-70.57587890625,-2.418261718750003],[-70.29462890625,-2.552539062500003],[-70.24443359374999,-2.606542968750006],[-70.16474609375,-2.639843750000011],[-70.095849609375,-2.658203125],[-70.735107421875,-3.781542968750003],[-70.5296875,-3.866406250000011],[-70.48583984375,-3.869335937500011],[-70.42109375,-3.849609375],[-70.37919921874999,-3.81875],[-70.339501953125,-3.814355468750009],[-70.2984375,-3.84423828125],[-70.24028320312499,-3.882714843750009],[-70.16752929687499,-4.050195312500009],[-70.0171875,-4.162011718750009],[-69.96591796874999,-4.2359375],[-69.97202148437499,-4.301171875],[-70.00395507812499,-4.327246093750006],[-70.05332031249999,-4.333105468750006],[-70.12880859375,-4.28662109375],[-70.23916015625,-4.301171875],[-70.31689453125,-4.246972656250009],[-70.34365234375,-4.193652343750003],[-70.40463867187499,-4.150097656250011],[-70.5306640625,-4.167578125],[-70.72158203125,-4.158886718750011],[-70.79951171875,-4.17333984375],[-70.97368164062499,-4.350488281250009],[-71.8447265625,-4.50439453125],[-72.256787109375,-4.748925781250009],[-72.35283203124999,-4.786035156250009],[-72.468994140625,-4.901269531250009],[-72.608349609375,-5.009570312500003],[-72.69873046875,-5.0671875],[-72.83193359375,-5.09375],[-72.88706054687499,-5.122753906250011],[-72.9798828125,-5.634863281250006],[-73.16289062499999,-5.933398437500003],[-73.209375,-6.028710937500009],[-73.235546875,-6.0984375],[-73.137353515625,-6.4658203125]]]},"properties":{"name":"Peru","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[120.250390625,5.256591796875043],[119.82148437500004,5.06953125000004],[120.1652343750001,5.332421875000037],[120.250390625,5.256591796875043]]],[[[121.159375,6.075634765625011],[121.41103515625005,5.939843749999966],[121.29443359374997,5.869970703125034],[120.8763671875,5.95263671875],[121.159375,6.075634765625011]]],[[[122.09287109375012,6.428320312500006],[121.95917968750004,6.415820312500045],[121.83203125000003,6.664062499999986],[122.0583007812501,6.740722656249972],[122.32353515625002,6.602246093750011],[122.09287109375012,6.428320312500006]]],[[[122.93710937500006,7.409130859374983],[122.80468750000003,7.315966796875017],[122.82216796875,7.428466796875014],[122.93710937500006,7.409130859374983]]],[[[117.07988281250007,7.883398437499977],[117.02832031249997,7.807519531249966],[116.96953125000007,7.894921875],[116.9935546875,8.050537109375014],[117.07705078125,8.069140624999974],[117.07988281250007,7.883398437499977]]],[[[117.35527343750002,8.21464843749996],[117.28701171875,8.191015625000034],[117.28085937500006,8.314990234374974],[117.35527343750002,8.21464843749996]]],[[[124.80664062500003,9.142626953125003],[124.66582031250002,9.132324218750043],[124.65332031250003,9.225830078125],[124.80664062500003,9.142626953125003]]],[[[123.69765625000005,9.237304687500028],[123.61445312500004,9.103320312499989],[123.49345703125002,9.192089843750054],[123.69765625000005,9.237304687500028]]],[[[126.00595703125006,9.320947265625009],[126.19335937499997,9.276708984374963],[126.30458984375,8.952050781249994],[126.13955078125005,8.59565429687504],[126.36533203125012,8.483886718750014],[126.45869140625004,8.20283203125004],[126.43535156250002,7.832812499999974],[126.57011718750002,7.677246093749986],[126.58154296875003,7.247753906249969],[126.1920898437501,6.852539062500014],[126.18935546875,6.309667968749991],[125.82441406250004,7.333300781249989],[125.68925781250007,7.263037109374977],[125.38066406250007,6.689941406250014],[125.58847656250012,6.465771484374997],[125.66796874999997,5.97866210937498],[125.34648437500002,5.598974609374977],[125.23154296875006,6.069531250000011],[124.92734375000006,5.875341796874977],[124.21279296875,6.233251953124977],[124.078125,6.404443359375037],[123.98525390625,6.993701171875003],[124.20664062500006,7.396435546874983],[123.66582031250002,7.817773437500023],[123.49306640625,7.80791015624996],[123.39091796875007,7.407519531250017],[123.09667968749997,7.700439453125],[122.8429687500001,7.529296875000043],[122.79179687500002,7.72246093749996],[122.61621093749997,7.763134765624983],[122.14248046875,6.949658203124997],[121.96425781250005,6.96821289062504],[121.92460937500002,7.199511718750003],[122.24335937500004,7.945117187500031],[122.91113281250003,8.156445312499997],[123.05058593750002,8.433935546875048],[123.43457031249997,8.70332031250004],[123.84921875000006,8.432714843749977],[123.79941406250006,8.049121093749989],[124.19765625,8.229541015624974],[124.40488281250006,8.599853515625014],[124.7311523437501,8.562988281250043],[124.86894531250002,8.972265625000034],[125.141015625,8.86875],[125.20966796875004,9.027148437500017],[125.49873046875004,9.014746093749977],[125.47128906250006,9.756787109374983],[126.00595703125006,9.320947265625009]]],[[[126.059375,9.766210937500034],[125.99121093750003,9.838525390625023],[126.07382812500006,10.059228515625051],[126.1725585937501,9.79995117187498],[126.059375,9.766210937500034]]],[[[124.59384765625006,9.787207031249963],[124.1224609375,9.599316406249969],[123.93564453125012,9.623974609375011],[123.81718750000002,9.817382812499986],[124.17285156250003,10.135205078124983],[124.33574218750002,10.159912109375043],[124.57714843749997,10.026708984374991],[124.59384765625006,9.787207031249963]]],[[[125.69023437500007,9.914453125000037],[125.49482421875004,10.118701171875003],[125.66679687500002,10.440136718750026],[125.69023437500007,9.914453125000037]]],[[[119.91621093750004,10.485986328125037],[119.79316406250004,10.455273437499997],[119.85205078124997,10.64013671875],[120.00839843750012,10.570117187500031],[119.91621093750004,10.485986328125037]]],[[[122.64951171875012,10.472705078125003],[122.53837890625002,10.424951171875037],[122.5375,10.607568359375023],[122.70126953125006,10.740625],[122.64951171875012,10.472705078125003]]],[[[123.13085937500003,9.064111328124994],[122.99472656250006,9.058837890624986],[122.8666015625,9.319824218750043],[122.5625,9.482812500000037],[122.39951171875006,9.823046874999989],[122.47148437500007,9.961523437500034],[122.85556640625006,10.0869140625],[122.81699218750012,10.503808593750023],[122.98330078125,10.886621093750037],[123.25664062500007,10.99394531249996],[123.51064453125005,10.923046875],[123.5675781250001,10.780761718750057],[123.16201171875,9.864257812500028],[123.1498046875,9.606152343750026],[123.32050781250004,9.27294921875],[123.13085937500003,9.064111328124994]]],[[[123.37031250000004,9.449609375000023],[123.38623046874997,9.967089843750017],[124.03886718750002,11.273535156249991],[124.00498046875012,10.40009765625004],[123.70048828125007,10.128320312500009],[123.37031250000004,9.449609375000023]]],[[[123.75703125000004,11.28330078125002],[123.815625,11.15073242187502],[123.73671875,11.151464843749991],[123.75703125000004,11.28330078125002]]],[[[117.31113281250012,8.439599609375051],[117.21855468750007,8.367285156249963],[117.34990234375002,8.713574218749997],[119.22382812500004,10.477294921875043],[119.30566406250003,10.9736328125],[119.55332031250012,11.31352539062496],[119.52666015625002,10.953173828125003],[119.68691406250005,10.500341796875034],[119.36933593750004,10.327294921875037],[119.19150390625012,10.061083984374989],[118.78212890625005,9.91611328125002],[118.4349609375,9.256005859375009],[117.31113281250012,8.439599609375051]]],[[[119.86142578125006,11.52534179687504],[119.83066406250012,11.375683593750011],[119.72998046874997,11.431933593750017],[119.86142578125006,11.52534179687504]]],[[[124.574609375,11.343066406250031],[124.92998046875002,11.372851562499974],[125.02656250000004,11.21171875],[125.01318359374997,10.785693359374989],[125.26845703125005,10.307714843750048],[125.14257812499997,10.189453125000028],[124.9875,10.36757812499998],[125.02656250000004,10.033105468749966],[124.78076171874997,10.16806640625002],[124.78671875000012,10.781396484375009],[124.66269531250006,10.961962890625017],[124.44550781250004,10.923583984375014],[124.33066406250012,11.535205078125003],[124.574609375,11.343066406250031]]],[[[124.60839843750003,11.492187500000043],[124.48349609375006,11.485839843749986],[124.36035156250003,11.665917968749994],[124.5109375000001,11.687109375000048],[124.60839843750003,11.492187500000043]]],[[[122.49619140625006,11.615087890625034],[122.83808593750004,11.595654296874983],[122.89453125000003,11.44130859374998],[123.15830078125012,11.53554687499999],[123.11953125,11.286816406250026],[122.8029296875001,10.99003906249996],[122.76992187500005,10.823828125000034],[121.95400390625,10.444384765625003],[122.10351562499997,11.64291992187502],[121.91601562499997,11.854345703125006],[122.02919921875005,11.895410156250023],[122.49619140625006,11.615087890625034]]],[[[120.03876953125004,11.703320312499969],[119.94492187500006,11.690722656249989],[119.86093750000006,11.953955078124963],[120.03593750000002,11.917236328125028],[120.03876953125004,11.703320312499969]]],[[[120.1,12.167675781249983],[120.22822265625004,12.219824218750034],[120.31455078125012,12.012402343749969],[120.01054687500002,12.008251953125011],[119.88574218749997,12.299853515625003],[120.1,12.167675781249983]]],[[[122.65449218750004,12.309033203125011],[122.42294921875006,12.455078125],[122.60361328125006,12.49160156249998],[122.65449218750004,12.309033203125011]]],[[[125.23955078125002,12.527880859375003],[125.32021484375,12.321826171875031],[125.53564453125003,12.191406250000028],[125.49179687500006,11.594335937499977],[125.57353515625002,11.238232421874997],[125.73564453125002,11.049609375000017],[125.23339843749997,11.145068359375017],[125.03427734375012,11.341259765625026],[124.91699218750003,11.558398437500031],[124.99501953125,11.764941406250003],[124.445703125,12.152783203124969],[124.29472656250007,12.569335937500014],[125.23955078125002,12.527880859375003]]],[[[123.71660156250007,12.287353515625028],[124.04033203125002,11.966796875],[124.04550781250012,11.752441406250028],[123.47373046875006,12.21665039062502],[123.15781250000012,11.925634765624963],[123.23642578125012,12.583496093750057],[123.71660156250007,12.287353515625028]]],[[[122.09404296875002,12.354882812500023],[122.01396484375002,12.105615234375037],[121.9232421875,12.331298828125014],[122.00156250000006,12.598535156250009],[122.14501953124997,12.652636718750017],[122.09404296875002,12.354882812500023]]],[[[123.77539062499997,12.453906250000031],[123.77910156250002,12.366259765625031],[123.62148437500005,12.67490234375002],[123.77539062499997,12.453906250000031]]],[[[123.28183593750006,12.85341796874998],[123.36718750000003,12.70083007812498],[122.95751953124997,13.107177734374986],[123.28183593750006,12.85341796874998]]],[[[120.70439453125002,13.479492187499986],[121.20273437500006,13.432324218749969],[121.52275390625007,13.131201171874991],[121.540625,12.63818359375],[121.39433593750002,12.300585937499974],[121.23671875000005,12.218798828125003],[120.92216796875002,12.51162109374998],[120.65136718749997,13.169140625],[120.33847656250012,13.412353515624986],[120.40126953125,13.517041015624997],[120.70439453125002,13.479492187499986]]],[[[121.91484375000002,13.540332031250031],[122.11455078125002,13.463183593750031],[122.00488281249997,13.204980468750009],[121.82919921875006,13.328613281249972],[121.91484375000002,13.540332031250031]]],[[[124.35361328125006,13.632226562500009],[124.17539062500012,13.531542968750017],[124.03886718750002,13.663134765625003],[124.22490234375007,14.077587890624969],[124.41718750000004,13.871044921874997],[124.35361328125006,13.632226562500009]]],[[[122.03349609375002,15.005029296875009],[121.93300781250005,14.656054687500045],[121.83984374999997,15.038134765625003],[122.03349609375002,15.005029296875009]]],[[[121.10156249999997,18.615283203125017],[121.84560546875,18.29541015625003],[122.03847656250005,18.32792968749999],[122.14667968750004,18.486572265625],[122.26552734375005,18.458837890625034],[122.15234374999997,17.664404296875006],[122.51914062500012,17.124853515625034],[122.13515625000005,16.18481445312503],[121.59531250000012,15.933251953125023],[121.60703125000006,15.669824218749994],[121.39228515625004,15.324414062499969],[121.69541015625006,14.7373046875],[121.62792968749997,14.581152343749977],[121.76660156249997,14.16806640625002],[122.21171875000002,13.930175781250057],[122.2875,13.996191406250006],[122.19970703125003,14.148046875000034],[122.6271484375001,14.317529296875009],[122.93417968750012,14.18808593750002],[123.101953125,13.750244140624986],[123.29697265625012,13.836425781250043],[123.32031249999997,14.061669921875023],[123.81572265625002,13.837109375000011],[123.80625000000012,13.721728515625045],[123.54960937500007,13.645751953125014],[123.81923828125,13.269482421875011],[123.78515625000003,13.110546875000054],[124.14277343750004,13.035791015625009],[124.0597656250001,12.567089843749997],[123.87783203125005,12.689697265625014],[123.94853515625007,12.916406250000023],[123.31093750000005,13.044091796875009],[123.16328125000004,13.44174804687502],[122.59521484374997,13.90761718749998],[122.46796875000004,13.886718749999986],[122.66787109375,13.395361328124991],[122.59990234375002,13.194140625000031],[122.37656250000012,13.520605468750006],[121.77792968750006,13.93764648437498],[121.50107421875006,13.8421875],[121.344140625,13.649121093749997],[121.09550781250007,13.679492187500045],[120.84072265625,13.884716796875026],[120.637109375,13.804492187500031],[120.61679687500006,14.188037109375003],[120.9220703125001,14.493115234374983],[120.94130859375,14.645068359375031],[120.58369140625004,14.88125],[120.58867187500002,14.483105468749983],[120.43876953125002,14.453369140624972],[120.25078125000002,14.793310546875034],[120.08212890625012,14.851074218749986],[119.77255859375012,16.25512695312503],[119.83076171875004,16.326562500000023],[120.15976562500012,16.047656250000045],[120.36875,16.109570312499955],[120.35839843749997,17.63818359375],[120.59970703125012,18.507861328125074],[121.10156249999997,18.615283203125017]]],[[[121.92167968750007,18.89472656250001],[121.82519531250003,18.842724609374983],[121.94335937500003,19.010449218749955],[121.92167968750007,18.89472656250001]]],[[[121.52089843750005,19.361962890624994],[121.53125,19.271337890625006],[121.37460937500006,19.356298828124977],[121.52089843750005,19.361962890624994]]]]},"properties":{"name":"Philippines","childNum":37}},{"geometry":{"type":"Polygon","coordinates":[[[134.5954101562501,7.382031249999969],[134.51572265625012,7.525781250000037],[134.65117187500002,7.712109374999983],[134.5954101562501,7.382031249999969]]]},"properties":{"name":"Palau","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[153.53613281249997,-11.476171874999949],[153.75986328125006,-11.586328125],[153.55371093749997,-11.630566406249969],[153.28681640625004,-11.516992187500009],[153.20361328124997,-11.32412109374998],[153.53613281249997,-11.476171874999949]]],[[[154.28076171874997,-11.36142578125002],[154.12119140625006,-11.425683593749966],[154.02343750000003,-11.347949218750031],[154.28076171874997,-11.36142578125002]]],[[[150.89873046875002,-10.565332031250023],[150.88466796875,-10.643457031250037],[150.78574218750006,-10.603417968749966],[150.89873046875002,-10.565332031250023]]],[[[151.08095703125,-10.020117187499963],[151.29648437500012,-9.956738281250026],[151.230859375,-10.194726562500009],[150.95917968750004,-10.092578124999989],[150.77607421875004,-9.70908203125002],[151.08095703125,-10.020117187499963]]],[[[150.52841796875006,-9.34658203124998],[150.78867187500006,-9.417968749999957],[150.89404296875003,-9.667480468749986],[150.43623046875004,-9.624609374999949],[150.5084960937501,-9.536132812499957],[150.43730468750007,-9.359960937500034],[150.52841796875006,-9.34658203124998]]],[[[150.3454101562501,-9.493847656249955],[150.10976562500005,-9.361914062499991],[150.20830078125002,-9.206347656250003],[150.32011718750007,-9.264160156249972],[150.3454101562501,-9.493847656249955]]],[[[152.63095703125012,-8.959375],[152.95292968750007,-9.07011718749996],[152.96689453125006,-9.208984375000014],[152.51513671874997,-9.009863281250034],[152.63095703125012,-8.959375]]],[[[151.10683593750005,-8.733496093749949],[151.12412109375012,-8.804882812500011],[151.00498046875006,-8.523828124999952],[151.117578125,-8.41884765624998],[151.10683593750005,-8.733496093749949]]],[[[143.58681640625005,-8.481738281250003],[143.321875,-8.367578125],[143.5814453125,-8.390917968749974],[143.58681640625005,-8.481738281250003]]],[[[148.02578125,-5.826367187500011],[147.78105468750007,-5.627246093749946],[147.7946289062501,-5.492382812500011],[148.05478515625006,-5.61152343750004],[148.02578125,-5.826367187500011]]],[[[155.95761718750006,-6.686816406249989],[155.71933593750012,-6.862792968749957],[155.34404296875007,-6.721679687499986],[155.20214843750003,-6.3076171875],[154.75927734375003,-5.931347656249997],[154.72929687500002,-5.444433593750006],[155.09384765625006,-5.620214843750034],[155.46699218750004,-6.145117187500034],[155.82255859375002,-6.38046875000002],[155.95761718750006,-6.686816406249989]]],[[[147.17626953124997,-5.431933593749946],[147.00585937499997,-5.30703125],[147.1310546875001,-5.190820312500037],[147.17626953124997,-5.431933593749946]]],[[[154.64726562500002,-5.43271484375002],[154.54003906250003,-5.11083984375],[154.63261718750007,-5.013867187499955],[154.72714843750006,-5.218066406249989],[154.64726562500002,-5.43271484375002]]],[[[146.01933593750007,-4.726171874999963],[145.88359375000007,-4.66748046875],[145.9958007812501,-4.539257812499983],[146.01933593750007,-4.726171874999963]]],[[[151.915625,-4.296777343749966],[152.11718749999997,-4.212207031249974],[152.40566406250005,-4.340722656249952],[152.35117187500006,-4.82216796874998],[151.98369140625007,-5.07441406250004],[152.14296875,-5.357031249999963],[152.07705078125,-5.458300781249989],[151.86542968750004,-5.564843750000023],[151.51513671874997,-5.552343749999963],[151.22929687500002,-5.919921874999986],[150.47353515625,-6.263378906249969],[149.65253906250004,-6.290429687499966],[149.38232421874997,-6.078125],[149.0990234375,-6.116992187499989],[148.33720703125007,-5.669433593750014],[148.43203125,-5.471777343749991],[149.35888671875003,-5.583984375000014],[149.8314453125,-5.524121093749997],[149.96279296875,-5.447753906249972],[150.0900390625001,-5.011816406249977],[150.1703125,-5.070605468749974],[150.0724609375001,-5.309570312499986],[150.18310546874997,-5.523632812499983],[150.90029296875005,-5.447167968750037],[151.32656250000005,-4.96035156249998],[151.67119140625007,-4.88330078125],[151.59306640625007,-4.200781249999949],[151.915625,-4.296777343749966]]],[[[152.67060546875004,-3.13339843750002],[152.64619140625004,-3.221191406249957],[152.54326171875002,-3.095605468749952],[152.63876953125012,-3.042773437500031],[152.67060546875004,-3.13339843750002]]],[[[140.97617187500012,-9.11875],[140.97519531250006,-6.90537109375002],[140.86230468749997,-6.740039062499989],[140.975,-6.346093750000023],[140.97353515625,-2.803417968750026],[140.97343750000007,-2.609765625],[142.90517578125,-3.32070312499998],[143.50898437500004,-3.431152343750014],[144.06640625000003,-3.80517578125],[144.4777343750001,-3.82529296875002],[145.08779296875,-4.349121093749972],[145.33457031250012,-4.385253906249972],[145.7669921875,-4.823046874999989],[145.74521484375012,-5.402441406249977],[147.56669921875002,-6.056933593750003],[147.80205078125002,-6.31523437499996],[147.84550781250007,-6.662402343749989],[147.11914062499997,-6.721679687499986],[146.95361328124997,-6.834082031249963],[147.19003906250012,-7.378125],[148.12675781250007,-8.103613281249963],[148.246875,-8.554296875000034],[148.45117187499997,-8.694531250000011],[148.58310546875006,-9.051757812499957],[149.19833984375006,-9.03125],[149.26318359374997,-9.497851562499974],[150.01103515625007,-9.688183593750026],[149.76123046874997,-9.805859375000011],[149.87441406250005,-10.012988281250031],[150.84951171875,-10.236035156249997],[150.44609375000007,-10.30732421875004],[150.6471679687501,-10.517968749999966],[150.31992187500012,-10.654882812499963],[150.0167968750001,-10.577148437500028],[149.75410156250004,-10.353027343750028],[147.76865234375012,-10.070117187500031],[147.01718750000006,-9.38789062500004],[146.96376953125,-9.059570312499943],[146.63085937499997,-8.951171874999972],[146.03320312499997,-8.076367187500011],[144.97382812500004,-7.802148437500009],[144.86425781249997,-7.631542968749983],[144.50986328125006,-7.567382812499972],[144.14287109375007,-7.757226562500009],[143.65488281250012,-7.460351562500009],[143.94228515625005,-7.944238281250009],[143.8333984375,-8.029101562499974],[143.51816406250006,-8.000683593749955],[143.61376953125003,-8.200390624999969],[142.52412109375004,-8.32167968749998],[142.34746093750002,-8.167480468750014],[142.20683593750002,-8.195800781250014],[142.47480468750004,-8.369433593750031],[142.79794921875006,-8.345019531250031],[143.11181640624997,-8.474511718750037],[143.37724609375007,-8.762207031250028],[143.36621093750003,-8.961035156250034],[142.6471679687501,-9.327832031249969],[142.22958984375012,-9.169921874999957],[141.13320312500005,-9.221289062500034],[140.97617187500012,-9.11875]]],[[[152.96582031249997,-4.756347656249986],[152.89169921875006,-4.832421875000023],[152.73994140625004,-4.635839843750034],[152.66816406250004,-4.131835937500028],[152.27939453125006,-3.582421875],[151.06679687500005,-2.829003906249994],[150.74609374999997,-2.73886718750002],[150.8253906250001,-2.572949218749969],[152.03291015625004,-3.25136718749998],[153.01679687500004,-4.105664062500026],[153.1325195312501,-4.352441406250037],[152.96582031249997,-4.756347656249986]]],[[[150.43662109375012,-2.66181640625004],[150.16572265625004,-2.660253906249991],[149.96162109375004,-2.473828125000026],[150.22714843750006,-2.384179687499966],[150.42949218750007,-2.47041015625004],[150.43662109375012,-2.66181640625004]]],[[[147.06757812500004,-1.96015625],[147.43808593750012,-2.05898437499998],[147.20634765625007,-2.181933593749974],[146.54648437500012,-2.20859375],[146.65625,-1.97402343749998],[147.06757812500004,-1.96015625]]],[[[149.76542968750007,-1.553027343750017],[149.54589843749997,-1.471679687499957],[149.58095703125005,-1.353222656249983],[149.76542968750007,-1.553027343750017]]]]},"properties":{"name":"Papua New Guinea","childNum":21}},{"geometry":{"type":"Polygon","coordinates":[[[23.484667968750017,53.939794921875],[23.915429687500023,52.770263671875],[23.175097656250017,52.28662109375],[23.652441406250006,52.040380859375],[23.605273437500017,51.517919921875],[23.664453125000023,51.31005859375],[24.095800781250006,50.87275390625],[23.9970703125,50.809375],[24.089941406250006,50.53046875],[23.97265625,50.410058593749994],[23.711718750000017,50.37734375],[23.03632812500001,49.899072265624994],[22.706152343750006,49.606201171875],[22.6494140625,49.539013671875],[22.66064453125,49.483691406249996],[22.71992187500001,49.353808593749996],[22.732421875,49.295166015625],[22.705664062500006,49.171191406249996],[22.847070312500023,49.08125],[22.538671875,49.072705078125],[22.473046875000023,49.081298828125],[22.020117187500006,49.209521484374996],[21.6396484375,49.411962890625],[21.079394531250017,49.418261718749996],[20.868457031250017,49.314697265625],[20.36298828125001,49.38525390625],[20.0576171875,49.181298828124994],[19.756640625000017,49.204394531249996],[19.77392578125,49.37216796875],[19.44160156250001,49.597705078124996],[19.1494140625,49.4],[18.83222656250001,49.510791015624996],[18.562402343750023,49.879345703125],[18.0283203125,50.03525390625],[17.874804687500017,49.972265625],[17.627050781250006,50.11640625],[17.702246093750006,50.307177734374996],[17.41523437500001,50.254785156249994],[16.88007812500001,50.427050781249996],[16.989648437500023,50.2369140625],[16.63916015625,50.1021484375],[16.210351562500023,50.423730468749994],[16.419726562500017,50.573632812499994],[16.2822265625,50.655615234375],[16.007226562500023,50.611621093749996],[14.99375,51.01435546875],[14.98291015625,50.886572265625],[14.895800781250017,50.861376953124996],[14.809375,50.858984375],[14.814257812500017,50.871630859374996],[14.91748046875,51.008740234375],[14.9638671875,51.095117187499994],[14.935546875,51.435351562499996],[14.905957031250011,51.463330078125],[14.724707031250006,51.523876953125],[14.7109375,51.544921875],[14.738671875000023,51.6271484375],[14.601660156250006,51.832373046875],[14.752539062500006,52.081835937499996],[14.679882812500011,52.25],[14.615625,52.277636718749996],[14.573925781250011,52.31416015625],[14.554589843750023,52.359667968749996],[14.569726562500023,52.431103515625],[14.619433593750017,52.528515625],[14.514062500000023,52.64560546875],[14.253710937500017,52.782519531249996],[14.128613281250011,52.878222656249996],[14.138867187500011,52.932861328125],[14.293164062500011,53.0267578125],[14.368554687500023,53.10556640625],[14.410937500000017,53.199023437499996],[14.412304687500011,53.216748046875],[14.41455078125,53.283496093749996],[14.258886718750006,53.729638671875],[14.58349609375,53.63935546875],[14.558398437500017,53.823193359375],[14.21142578125,53.950341796875],[16.186328125000017,54.290380859375],[16.55976562500001,54.55380859375],[18.32343750000001,54.838183593749996],[18.75927734375,54.6845703125],[18.43623046875001,54.7447265625],[18.83642578125,54.369580078125],[19.604394531250023,54.4591796875],[20.20820312500001,54.420751953125],[22.16845703125,54.35986328125],[22.731835937500023,54.35009765625],[22.766210937500006,54.356787109375],[22.82373046875,54.395800781249996],[22.893945312500023,54.39052734375],[22.97675781250001,54.366357421875],[23.015527343750023,54.34833984375],[23.04218750000001,54.30419921875],[23.0875,54.299462890625],[23.170312500000023,54.2814453125],[23.282324218750006,54.24033203125],[23.3701171875,54.200488281249996],[23.45361328125,54.14345703125],[23.484667968750017,53.939794921875]]]},"properties":{"name":"Poland","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-65.42558593749999,18.105615234374994],[-65.57221679687493,18.137304687499977],[-65.29487304687501,18.133349609375045],[-65.42558593749999,18.105615234374994]]],[[[-66.12939453125003,18.444921875000034],[-65.62880859375,18.381396484375045],[-65.62084960937497,18.242333984374966],[-65.97080078124995,17.974365234375],[-67.196875,17.994189453125045],[-67.2640625,18.364599609375006],[-67.15864257812501,18.499218749999983],[-66.12939453125003,18.444921875000034]]]]},"properties":{"name":"Puerto Rico","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[130.52695312500012,42.535400390625],[130.68730468750007,42.30253906249999],[130.2357421875,42.183203125000034],[129.75634765624997,41.712255859375006],[129.70869140625004,40.857324218749994],[129.34111328125002,40.72631835937506],[128.51123046874997,40.130224609375006],[127.56816406250002,39.78198242187503],[127.39453125000003,39.207910156249966],[127.78613281250003,39.084130859374966],[128.37460937500012,38.6234375],[128.03896484375,38.30854492187498],[127.09033203125003,38.28388671875001],[126.63388671875012,37.78183593750006],[126.36992187500007,37.87836914062501],[126.11669921875003,37.74291992187503],[125.76914062500006,37.98535156250003],[125.35781250000005,37.72480468749998],[125.31074218750004,37.843505859375],[124.98876953124997,37.93144531249999],[125.2067382812501,38.08154296875],[124.69091796874997,38.12919921875002],[125.06738281250003,38.556738281250006],[125.55449218750002,38.68623046875001],[125.16884765625,38.80551757812506],[125.40966796875003,39.28837890625002],[125.36083984375003,39.52661132812497],[124.77529296875,39.75805664062506],[124.63828125000006,39.61508789062506],[124.36210937500002,40.004052734374994],[124.8893554687501,40.459814453125006],[125.98906250000002,40.904638671875034],[126.74306640625,41.724853515625],[126.95478515625004,41.76948242187501],[127.17968750000003,41.531347656250006],[128.14941406249997,41.38774414062496],[128.28925781250004,41.60742187500006],[128.04521484375007,41.9875],[128.92343750000006,42.038232421874966],[129.3136718750001,42.41357421874997],[129.69785156250012,42.448144531249994],[129.89824218750002,42.998144531250034],[130.24033203125006,42.891796874999955],[130.24667968750012,42.744824218749955],[130.52695312500012,42.535400390625]]]},"properties":{"name":"Dem. Rep. Korea","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-17.190869140624926,32.86860351562498],[-16.693261718749966,32.75800781250001],[-17.018261718749926,32.66279296874998],[-17.226025390624983,32.76684570312503],[-17.190869140624926,32.86860351562498]]],[[[-25.64897460937499,37.840917968750006],[-25.18193359374996,37.837890625],[-25.19072265624999,37.764355468749955],[-25.73447265624992,37.76289062500001],[-25.845898437499983,37.89404296875],[-25.64897460937499,37.840917968750006]]],[[[-28.14726562499996,38.45268554687502],[-28.064794921875034,38.412744140624966],[-28.454492187500023,38.40864257812504],[-28.54882812499997,38.51855468750003],[-28.14726562499996,38.45268554687502]]],[[[-28.641308593749983,38.525],[-28.842041015625,38.5984375],[-28.69775390625,38.638476562500045],[-28.641308593749983,38.525]]],[[[-27.07524414062496,38.643457031249994],[-27.38593750000001,38.765820312499955],[-27.127001953125017,38.78984375],[-27.07524414062496,38.643457031249994]]],[[[-31.137109374999937,39.40693359375001],[-31.282958984375,39.39409179687496],[-31.260839843750034,39.49677734375001],[-31.137109374999937,39.40693359375001]]],[[[-7.406152343749937,37.17944335937497],[-7.834130859374994,37.005712890625034],[-8.597656249999943,37.12133789062506],[-8.997802734375028,37.03227539062502],[-8.814160156249983,37.43081054687502],[-8.881103515624943,38.44667968750005],[-8.668310546874949,38.42431640625003],[-8.798876953124989,38.518164062500034],[-9.213281249999937,38.44809570312498],[-9.250390624999966,38.65673828125003],[-9.021484374999943,38.746875],[-8.79160156249992,39.07817382812502],[-9.13579101562496,38.74277343749998],[-9.35673828124996,38.697900390624994],[-9.479736328124972,38.79877929687501],[-9.374755859374972,39.338281249999966],[-8.837841796874926,40.11567382812498],[-8.684619140624989,40.75253906250006],[-8.755419921874932,41.69838867187502],[-8.887597656249937,41.76459960937501],[-8.777148437500017,41.941064453124994],[-8.266064453124983,42.13740234375001],[-8.152490234374937,41.81196289062498],[-7.40361328124996,41.833691406249955],[-7.147119140625023,41.98115234374998],[-6.61826171874992,41.9423828125],[-6.542187499999955,41.672509765624994],[-6.2125,41.53203125],[-6.928466796874972,41.009130859375006],[-6.8101562499999,40.343115234375034],[-7.032617187499966,40.16791992187498],[-6.896093749999949,40.02182617187506],[-6.975390624999932,39.79838867187502],[-7.117675781249972,39.681689453125045],[-7.53569335937496,39.66157226562501],[-6.997949218749994,39.05644531250002],[-7.343017578124943,38.45742187500002],[-7.106396484374983,38.181005859375006],[-6.957568359374932,38.18789062499999],[-7.44394531249992,37.72827148437497],[-7.406152343749937,37.17944335937497]]]]},"properties":{"name":"Portugal","childNum":7,"cp":[-8.7440694,39.9251454]}},{"geometry":{"type":"Polygon","coordinates":[[[-58.15976562499999,-20.164648437500006],[-58.13779296874999,-20.2373046875],[-58.12460937499999,-20.29345703125],[-58.09150390625,-20.33320312500001],[-58.05844726562499,-20.38613281250001],[-58.025390625,-20.415820312500003],[-58.00224609374999,-20.465429687500006],[-57.97905273437499,-20.657324218750006],[-57.91513671874999,-20.69033203125001],[-57.830224609374994,-20.99794921875001],[-57.94267578124999,-21.79833984375],[-57.95590820312499,-22.109179687500003],[-56.77519531249999,-22.261328125],[-56.44780273437499,-22.076171875],[-56.39487304687499,-22.09267578125001],[-56.35185546874999,-22.17861328125001],[-56.246044921875,-22.2646484375],[-56.18984375,-22.28115234375001],[-55.99140625,-22.28115234375001],[-55.84916992187499,-22.3076171875],[-55.75327148437499,-22.41015625],[-55.74663085937499,-22.5126953125],[-55.61767578125,-22.671484375],[-55.53828125,-23.58095703125001],[-55.518457031249994,-23.627246093750003],[-55.458886718749994,-23.68671875000001],[-55.4423828125,-23.792578125],[-55.4423828125,-23.865332031250006],[-55.415917968749994,-23.95136718750001],[-55.36630859374999,-23.991015625],[-55.28691406249999,-24.004296875],[-55.1943359375,-24.01748046875001],[-55.08188476562499,-23.99765625],[-54.982666015625,-23.97451171875001],[-54.62548828125,-23.8125],[-54.44023437499999,-23.90175781250001],[-54.37080078125,-23.97119140625],[-54.24179687499999,-24.047265625],[-54.281005859375,-24.30605468750001],[-54.43623046875,-25.12128906250001],[-54.47314453125,-25.22021484375],[-54.610546875,-25.432714843750006],[-54.615869140624994,-25.57607421875001],[-54.63193359374999,-26.00576171875001],[-54.677734375,-26.30878906250001],[-54.934472656249994,-26.70253906250001],[-55.1359375,-26.93115234375],[-55.426660156249994,-27.00927734375],[-55.450634765625,-27.068359375],[-55.496728515624994,-27.115332031250006],[-55.564892578125,-27.15],[-55.59726562499999,-27.207617187500006],[-55.59379882812499,-27.2880859375],[-55.63291015624999,-27.35712890625001],[-55.71464843749999,-27.41484375],[-55.789990234375,-27.41640625],[-55.95146484374999,-27.32568359375],[-56.1640625,-27.32148437500001],[-56.437158203124994,-27.553808593750006],[-58.16826171874999,-27.2734375],[-58.60483398437499,-27.31435546875001],[-58.641748046874994,-27.19609375],[-58.618603515625,-27.132128906250003],[-58.222070312499994,-26.65],[-58.18149414062499,-26.307421875],[-57.943115234375,-26.05292968750001],[-57.563134765624994,-25.473730468750006],[-57.821679687499994,-25.13642578125001],[-59.187255859375,-24.562304687500003],[-59.892480468749994,-24.093554687500003],[-60.83984375,-23.85810546875001],[-61.084716796875,-23.65644531250001],[-61.79853515625,-23.18203125],[-62.21416015624999,-22.612402343750006],[-62.372509765625,-22.43916015625001],[-62.54155273437499,-22.349609375],[-62.6259765625,-22.29042968750001],[-62.62568359375,-22.261523437500003],[-62.65097656249999,-22.233691406250003],[-62.27666015624999,-21.066015625],[-62.276318359375,-20.5625],[-61.7568359375,-19.6453125],[-60.00737304687499,-19.29755859375001],[-59.09052734375,-19.286230468750006],[-58.18017578125,-19.81787109375],[-58.15976562499999,-20.164648437500006]]]},"properties":{"name":"Paraguay","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[34.34833984375004,31.292919921874955],[34.2453125000001,31.208300781250045],[34.2125,31.292285156250017],[34.198144531249994,31.322607421875063],[34.47734375000002,31.584863281250023],[34.52412109375004,31.541650390624994],[34.5255859375001,31.52563476562503],[34.34833984375004,31.292919921874955]]],[[[34.88046875,31.3681640625],[34.950976562500074,31.60229492187503],[35.20371093750006,31.75],[35.1271484375001,31.816748046875006],[35.05322265625003,31.83793945312496],[34.983007812500006,31.816796875000023],[34.9611328125001,31.823339843750006],[34.95380859375004,31.84125976562504],[34.98974609374997,31.913281249999955],[34.955957031249994,32.1609375],[35.01054687500002,32.33818359375002],[35.06503906250006,32.46044921875006],[35.19326171875005,32.53442382812503],[35.303808593750006,32.512939453125],[35.38671875000003,32.493017578125034],[35.402636718750074,32.45063476562501],[35.484375,32.40166015624999],[35.5514648437501,32.39550781250006],[35.57207031250002,32.237890625],[35.450585937499994,31.479296875000017],[34.88046875,31.3681640625]]]]},"properties":{"name":"Palestine","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-149.321533203125,-17.690039062499963],[-149.177685546875,-17.736621093750045],[-149.18178710937497,-17.86230468749997],[-149.34111328125,-17.732421874999986],[-149.57890624999993,-17.734960937499963],[-149.635009765625,-17.564257812500003],[-149.37919921874993,-17.522363281249994],[-149.321533203125,-17.690039062499963]]],[[[-143.44057617187497,-16.619726562499963],[-143.38618164062498,-16.668847656250023],[-143.55068359375002,-16.62109374999997],[-143.44057617187497,-16.619726562499963]]],[[[-139.02431640624997,-9.695214843750037],[-138.82734375,-9.74160156249998],[-139.13408203124996,-9.829492187500037],[-139.02431640624997,-9.695214843750037]]],[[[-140.075634765625,-9.425976562499983],[-140.14438476562498,-9.359375],[-140.07094726562497,-9.328125],[-140.075634765625,-9.425976562499983]]],[[[-140.07260742187503,-8.910449218750031],[-140.21743164062497,-8.929687499999957],[-140.24003906249993,-8.79755859375004],[-140.057666015625,-8.801464843750026],[-140.07260742187503,-8.910449218750031]]]]},"properties":{"name":"Fr. Polynesia","childNum":5}},{"geometry":{"type":"Polygon","coordinates":[[[51.26796875000002,24.607226562500003],[51.17802734375002,24.58671875],[51.093359375,24.564648437499997],[51.02275390625002,24.565234375],[50.96601562500001,24.573925781249997],[50.928320312500006,24.595117187499994],[50.85566406250001,24.679638671874997],[50.80439453125001,24.789257812499997],[50.8359375,24.850390625],[50.846777343750006,24.888574218749994],[50.75458984375001,25.39926757812499],[51.003125,25.9814453125],[51.262304687500006,26.153271484374997],[51.543066406250006,25.902392578125003],[51.4853515625,25.524707031250003],[51.60888671875,25.052880859374994],[51.42792968750001,24.668261718750003],[51.26796875000002,24.607226562500003]]]},"properties":{"name":"Qatar","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[28.2125,45.450439453125],[28.317675781250017,45.347119140625],[28.451269531250006,45.2921875],[28.78828125000001,45.240966796875],[28.78173828125,45.309863281249996],[28.894335937500017,45.289941406249994],[29.223535156250023,45.4029296875],[29.403710937500023,45.419677734375],[29.567675781250017,45.37080078125],[29.705859375000017,45.259912109374994],[29.557519531250023,44.843408203124994],[29.048242187500023,44.757568359375],[29.0953125,44.975048828125],[28.891503906250023,44.91865234375],[28.585351562500023,43.742236328124996],[28.221972656250017,43.772851562499994],[27.88427734375,43.987353515624996],[27.425390625,44.0205078125],[27.0869140625,44.167382812499994],[26.2158203125,44.007275390625],[25.4970703125,43.670800781249994],[22.919042968750006,43.83447265625],[22.868261718750006,43.947900390624994],[23.02851562500001,44.077978515625],[22.705078125,44.23779296875],[22.687890625000023,44.248291015625],[22.494531250000023,44.435449218749994],[22.554003906250017,44.540332031249996],[22.6201171875,44.562353515625],[22.70078125,44.555517578125],[22.734375,44.569921875],[22.72089843750001,44.605517578124996],[22.64208984375,44.6509765625],[22.49765625,44.70625],[22.350683593750006,44.676123046875],[22.200976562500017,44.560693359374994],[22.093066406250017,44.541943359375],[21.909277343750006,44.66611328125],[21.636132812500023,44.71044921875],[21.52314453125001,44.790087890624996],[21.36005859375001,44.82666015625],[21.35791015625,44.86181640625],[21.384375,44.870068359375],[21.442187500000017,44.873388671875],[21.519921875000023,44.880810546875],[21.532324218750006,44.900683593749996],[21.35703125,44.990771484374996],[21.465429687500006,45.171875],[21.431445312500017,45.192529296874994],[20.794042968750006,45.46787109375],[20.775,45.749804687499996],[20.760156250000023,45.758105468749996],[20.746875,45.748974609375],[20.727832031250017,45.73740234375],[20.709277343750017,45.735253906249994],[20.652734375000023,45.77939453125],[20.581152343750006,45.869482421875],[20.35859375000001,45.975488281249994],[20.241796875,46.10859375],[20.28095703125001,46.1330078125],[20.508105468750017,46.166943359375],[20.613671875000023,46.13349609375],[20.76025390625,46.246240234374994],[21.121679687500006,46.282421875],[21.99970703125001,47.505029296874994],[22.87666015625001,47.947265625],[23.054785156250006,48.00654296875],[23.139453125000017,48.08740234375],[23.20263671875,48.084521484374996],[23.408203125,47.989990234375],[23.628710937500017,47.995849609375],[24.578906250000017,47.931054687499994],[24.979101562500006,47.72412109375],[25.464257812500023,47.910791015624994],[25.689257812500017,47.932470703125],[25.90869140625,47.967578125],[26.162695312500006,47.992529296875],[26.236230468750023,48.064355468749994],[26.276953125,48.113232421875],[26.3056640625,48.203759765624994],[26.4423828125,48.22998046875],[26.618945312500017,48.25986328125],[26.980761718750017,48.155029296875],[27.614062500000017,47.34052734375],[28.07177734375,46.978417968749994],[28.23945312500001,46.6408203125],[28.07470703125,45.598974609375],[28.2125,45.450439453125]]]},"properties":{"name":"Romania","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[146.71396484375012,43.743798828124994],[146.62197265625,43.81298828125006],[146.88408203125002,43.82915039062496],[146.71396484375012,43.743798828124994]]],[[[146.20761718750006,44.49765625],[146.5677734375,44.44042968749997],[145.91406249999997,44.10371093750004],[145.58681640625,43.84511718750002],[145.5558593750001,43.66459960937502],[145.46171875000007,43.870898437500045],[146.20761718750006,44.49765625]]],[[[148.59951171875,45.317626953125],[147.91376953125004,44.99038085937502],[147.65781250000012,44.97714843749998],[146.89746093750003,44.404296875],[147.24658203124997,44.856054687500006],[147.88554687500007,45.22563476562499],[147.9240234375001,45.38330078125006],[148.05605468750005,45.26210937500005],[148.32421874999997,45.28242187500001],[148.8122070312501,45.510009765625],[148.83710937500004,45.36269531250002],[148.59951171875,45.317626953125]]],[[[149.68769531250004,45.64204101562501],[149.44707031250002,45.593359375000034],[149.9623046875,46.02192382812504],[150.553125,46.208544921875045],[149.68769531250004,45.64204101562501]]],[[[152.00205078125006,46.89716796874998],[151.72343750000007,46.82880859375001],[152.28886718750007,47.1421875],[152.00205078125006,46.89716796874998]]],[[[154.81044921875005,49.31201171875],[154.61093750000006,49.29404296874998],[154.82490234375004,49.64692382812501],[154.81044921875005,49.31201171875]]],[[[155.9210937500001,50.30219726562501],[155.39716796875004,50.04125976562497],[155.24306640625,50.09462890625002],[155.21835937500012,50.29785156250003],[155.68017578124997,50.400732421875034],[156.096875,50.771875],[155.9210937500001,50.30219726562501]]],[[[156.40507812500002,50.65761718750005],[156.16796874999997,50.73188476562498],[156.37646484374997,50.86210937499996],[156.4875,50.84296874999998],[156.40507812500002,50.65761718750005]]],[[[142.76103515625002,54.393945312499966],[143.32470703125003,52.96308593749998],[143.15556640625002,52.08374023437497],[143.29951171875004,51.632373046875045],[143.81601562500006,50.28261718750002],[144.71376953125,48.64028320312502],[144.04873046875,49.249169921874994],[143.73232421875,49.31201171875],[143.10498046875003,49.198828125000034],[142.57421874999997,48.07216796875002],[142.55693359375002,47.737890625000034],[143.21767578125005,46.79487304687504],[143.48564453125002,46.752050781250006],[143.58066406250012,46.360693359375034],[143.43164062500003,46.02866210937498],[143.28232421875006,46.55898437500002],[142.57802734375005,46.700781250000034],[142.07714843749997,45.91704101562499],[141.83037109375002,46.451074218749966],[142.03867187500012,47.140283203124966],[141.9640625000001,47.58745117187502],[142.18173828125012,48.01337890625001],[141.86630859375006,48.750097656250006],[142.1422851562501,49.56914062499999],[142.06601562500006,50.630468750000034],[142.20673828125004,51.22255859375002],[141.72236328125004,51.73632812499997],[141.66083984375004,52.27294921874997],[141.85556640625012,52.79350585937499],[141.82353515625007,53.33950195312502],[142.1419921875,53.49560546875003],[142.52617187500002,53.44746093749998],[142.70595703125,53.89570312499998],[142.33496093749997,54.28071289062501],[142.76103515625002,54.393945312499966]]],[[[137.17861328125005,55.100439453125034],[137.05527343750006,54.9267578125],[136.71464843750002,54.956152343750034],[137.17861328125005,55.100439453125034]]],[[[137.94052734375012,55.092626953125034],[138.20615234375012,55.03354492187498],[137.72148437500007,54.66323242187505],[137.46269531250002,54.873388671875034],[137.23291015624997,54.79057617187496],[137.5773437500001,55.19702148437497],[137.94052734375012,55.092626953125034]]],[[[21.235742187500023,55.26411132812498],[22.072363281250034,55.06367187499998],[22.56728515625005,55.05913085937496],[22.82470703125,54.87128906249998],[22.684472656250023,54.56293945312504],[22.679882812500068,54.493017578125006],[22.766210937499977,54.356787109375034],[22.168457031250057,54.35986328125006],[21.14052734375008,54.39179687499998],[19.604394531250023,54.45917968750004],[19.974511718750023,54.92119140625002],[20.520312500000017,54.994873046875],[20.89980468750008,55.286669921875045],[20.957812500000074,55.27890625000006],[20.594824218750006,54.982373046874955],[20.995898437500017,54.90268554687506],[21.18886718750008,54.93520507812502],[21.235742187500023,55.26411132812498]]],[[[166.65029296875005,54.83906249999998],[166.64511718750006,54.69409179687503],[165.75107421875006,55.294531250000034],[166.27578125000005,55.311962890624955],[166.24804687499997,55.16542968750002],[166.65029296875005,54.83906249999998]]],[[[150.58994140625006,59.01875],[150.47021484375003,59.05405273437498],[150.66621093750004,59.16015625000003],[150.58994140625006,59.01875]]],[[[163.63515625000005,58.603369140625006],[163.47138671875004,58.509375],[163.7609375000001,59.01503906250002],[164.57265625,59.22114257812501],[164.61572265624997,58.885595703125034],[163.63515625000005,58.603369140625006]]],[[[35.8161132812501,65.18208007812501],[35.77871093750005,64.97666015625],[35.52890625000006,65.15107421875001],[35.8161132812501,65.18208007812501]]],[[[70.02070312500004,66.502197265625],[69.65136718750003,66.56533203125],[69.50273437500002,66.75107421875],[70.07666015624997,66.69589843750003],[70.02070312500004,66.502197265625]]],[[[-179.79853515625,68.9404296875],[-178.873876953125,68.75410156249995],[-178.69262695312503,68.54599609375],[-178.09746093750002,68.4248046875],[-178.05581054687497,68.26489257812503],[-177.79677734374997,68.33798828125],[-178.37304687500003,68.56567382812503],[-177.52724609375002,68.29438476562501],[-177.58920898437503,68.22421875],[-175.34521484375,67.67807617187503],[-175.37470703124998,67.35737304687498],[-175.00268554687494,67.4375],[-174.849853515625,67.34887695312503],[-174.92490234375,66.62314453125006],[-174.503759765625,66.537939453125],[-174.39409179687496,66.34423828124997],[-174.084765625,66.47309570312504],[-174.06503906249998,66.22958984374998],[-173.77397460937502,66.43466796875003],[-174.23159179687497,66.63188476562505],[-174.08642578125,66.94287109375],[-174.55009765624993,67.090625],[-173.6796875,67.144775390625],[-173.15781249999998,67.06909179687503],[-173.32353515625,66.95483398437503],[-173.25893554687497,66.84008789062503],[-173.19301757812497,66.99360351562504],[-172.5201171875,66.952490234375],[-173.00751953125,67.06489257812498],[-171.79555664062502,66.93173828125003],[-170.50952148437503,66.34365234375005],[-170.604443359375,66.24892578125002],[-170.30122070312504,66.29404296874998],[-170.24394531250002,66.16928710937503],[-169.777880859375,66.14311523437505],[-169.83168945312497,65.99892578124997],[-170.54067382812497,65.86542968749995],[-170.66630859375,65.62153320312501],[-171.42153320312502,65.81035156250002],[-171.10585937500002,65.51103515625005],[-171.90712890625,65.495947265625],[-172.78330078124998,65.68105468749997],[-172.23281250000002,65.45571289062497],[-172.30927734375004,65.27563476562497],[-172.66191406249993,65.24853515625006],[-172.28603515625002,65.20571289062502],[-172.21318359375,65.04814453124999],[-173.08579101562498,64.81733398437495],[-172.80107421874996,64.79052734375],[-172.90087890624994,64.62885742187501],[-172.40146484374998,64.413916015625],[-172.73916015624997,64.41225585937502],[-172.90317382812498,64.52607421875004],[-172.96005859375003,64.32768554687502],[-173.27548828124998,64.2896484375],[-173.327490234375,64.53955078125003],[-173.72973632812497,64.36450195312497],[-174.57055664062503,64.7177734375],[-175.39511718749998,64.80239257812502],[-175.85385742187498,65.01083984375003],[-176.09326171875,65.471044921875],[-177.05625,65.613623046875],[-177.48876953125,65.50371093749999],[-178.4125,65.49555664062501],[-178.93906249999998,66.03276367187505],[-178.74672851562497,66.01367187500006],[-178.52656250000004,66.40156250000004],[-178.86811523437498,66.18706054687502],[-179.14340820312503,66.37504882812505],[-179.327197265625,66.16259765625003],[-179.68330078124998,66.18413085937505],[-179.78969726562497,65.90087890625],[-179.352099609375,65.51674804687497],[-180,65.06723632812498],[-180,65.31196289062501],[-180,65.55678710937497],[-180,65.80156250000002],[-180,66.04628906250002],[-180,66.29106445312499],[-180,66.53583984375004],[-180,66.78056640625005],[-180,67.02534179687501],[-180,67.27011718750006],[-180,67.51484374999998],[-180,67.75961914062503],[-180,68.00439453124997],[-180,68.24912109375],[-180,68.49389648437497],[-180,68.738671875],[-179.999951171875,68.98344726562505],[-179.79853515625,68.9404296875]]],[[[50.265234375,69.18559570312502],[49.62626953125002,68.85971679687498],[48.91035156250004,68.74306640625002],[48.4390625,68.80488281249998],[48.319921875,69.26923828125001],[48.8449218750001,69.49472656250003],[49.22519531250006,69.51123046875],[50.265234375,69.18559570312502]]],[[[161.46708984375002,68.90097656250003],[161.08281250000007,69.4056640625],[161.50517578125007,69.63945312500002],[161.46708984375002,68.90097656250003]]],[[[169.20078125000006,69.58046875],[168.34804687500005,69.66435546875005],[167.86474609375003,69.90107421875004],[168.35791015625003,70.01567382812502],[169.37480468750007,69.88261718749999],[169.20078125000006,69.58046875]]],[[[60.450488281250074,69.93486328124999],[60.44023437500002,69.72592773437506],[59.637011718750074,69.72104492187503],[59.50263671875004,69.86621093750003],[58.952734375,69.89277343750004],[58.51992187500005,70.31831054687504],[59.04804687500004,70.46049804687505],[60.450488281250074,69.93486328124999]]],[[[52.90332031250003,71.36499023437503],[53.19257812500004,71.21528320312498],[53.0226562500001,70.96870117187501],[52.24960937500006,71.28491210937506],[52.90332031250003,71.36499023437503]]],[[[178.8615234375001,70.826416015625],[178.68388671875013,71.10566406250004],[180,71.53774414062505],[180,70.993017578125],[178.8615234375001,70.826416015625]]],[[[137.95986328125005,71.50766601562503],[137.71181640625005,71.4232421875],[137.06406250000006,71.52988281250003],[137.816796875,71.58789062500006],[137.95986328125005,71.50766601562503]]],[[[-178.87646484375,71.57705078124997],[-178.13388671874998,71.46547851562497],[-177.523583984375,71.16689453125],[-179.415673828125,70.91899414062502],[-179.999951171875,70.993017578125],[-179.999951171875,71.53774414062505],[-178.87646484375,71.57705078124997]]],[[[77.6325195312501,72.291259765625],[76.87109374999997,72.317041015625],[77.74853515625003,72.63120117187506],[78.36513671875005,72.48242187500003],[77.6325195312501,72.291259765625]]],[[[79.50146484374997,72.72192382812497],[78.63320312500005,72.85073242187502],[79.16425781250004,73.0943359375],[79.50146484374997,72.72192382812497]]],[[[74.660546875,72.87343750000002],[74.18066406250003,72.975341796875],[74.19853515625002,73.10908203124998],[74.9615234375,73.0625],[74.660546875,72.87343750000002]]],[[[120.26132812500012,73.08984374999997],[119.79208984375006,73.04541015624997],[119.64042968750002,73.12431640625007],[120.26132812500012,73.08984374999997]]],[[[55.31982421875003,73.30830078124998],[56.42958984375005,73.201171875],[56.121679687500006,72.80659179687498],[55.40332031249997,72.54907226562503],[55.29785156249997,71.93535156250005],[56.45439453125002,71.10737304687504],[57.62539062500005,70.72880859374999],[57.14589843750005,70.58911132812506],[56.38574218749997,70.73413085937503],[56.49970703125004,70.56640625000003],[55.687304687500074,70.69218749999999],[54.60117187500006,70.68007812500002],[53.383593750000074,70.87353515625],[53.670507812500006,71.08691406250003],[54.155664062499994,71.12548828125],[53.40996093750002,71.34013671875002],[53.41162109375003,71.530126953125],[51.93789062500005,71.47470703124998],[51.511328125,71.64809570312497],[51.58251953124997,72.07119140625],[52.252050781250006,72.12973632812503],[52.66191406250002,72.33686523437495],[52.91660156250006,72.66889648437501],[52.5792968750001,72.791357421875],[53.3698242187501,72.91674804687506],[53.2511718750001,73.182958984375],[54.80390625000004,73.38764648437498],[55.31982421875003,73.30830078124998]]],[[[70.67392578125006,73.09501953125005],[70.04072265625004,73.03715820312507],[69.99589843750002,73.359375],[70.94023437500002,73.51440429687503],[71.6261718750001,73.17397460937497],[70.67392578125006,73.09501953125005]]],[[[142.18486328125007,73.89589843750005],[143.34375,73.56875],[143.45146484375007,73.231298828125],[141.59667968750003,73.31083984375005],[140.66279296875004,73.45200195312503],[139.785546875,73.35522460937503],[141.08476562500002,73.86586914062497],[142.18486328125007,73.89589843750005]]],[[[83.5490234375001,74.07177734375],[82.8177734375,74.09160156250005],[83.14980468750005,74.151611328125],[83.5490234375001,74.07177734375]]],[[[141.01025390625003,73.99946289062501],[140.40947265625002,73.92167968750005],[140.1935546875001,74.23671875000002],[141.03857421875003,74.24272460937502],[141.01025390625003,73.99946289062501]]],[[[113.38720703124997,74.40043945312499],[112.78242187500004,74.09506835937503],[111.50341796874997,74.35307617187502],[111.87978515625,74.36381835937499],[112.08447265624997,74.54897460937505],[113.38720703124997,74.40043945312499]]],[[[86.653125,74.981298828125],[87.05214843750005,74.982568359375],[86.92714843750005,74.83076171874998],[86.25859375000002,74.89350585937498],[86.653125,74.981298828125]]],[[[82.17236328125003,75.41938476562501],[81.97851562499997,75.24711914062499],[81.65478515625003,75.28891601562498],[81.71210937500004,75.45141601562506],[82.165625,75.515625],[82.17236328125003,75.41938476562501]]],[[[146.79521484375007,75.37075195312505],[148.43242187500002,75.41352539062495],[148.59013671875007,75.23637695312502],[150.82236328125006,75.15654296875002],[150.64628906250002,74.944580078125],[149.596875,74.77260742187505],[148.296875,74.80043945312502],[146.14853515625012,75.19829101562499],[146.5375,75.58178710937506],[146.79521484375007,75.37075195312505]]],[[[135.9486328125,75.40957031250005],[135.45195312500007,75.38955078124997],[135.6986328125,75.84526367187499],[136.16894531249997,75.60556640625],[135.9486328125,75.40957031250005]]],[[[140.04873046875,75.82895507812503],[140.81591796874997,75.63071289062498],[141.48544921875012,76.13715820312495],[142.66953125000012,75.86342773437497],[143.68583984375002,75.86367187500002],[145.35996093750006,75.53046874999998],[144.01972656250004,75.04467773437506],[143.1703125,75.11689453125001],[142.72949218749997,75.33764648437506],[142.941796875,75.71328125000002],[142.30791015625007,75.69169921875005],[142.19882812500006,75.39267578124998],[143.12792968749997,74.9703125],[142.47275390625006,74.82041015625],[141.98730468750003,74.99125976562499],[140.26787109375002,74.846923828125],[139.68125,74.96406249999995],[139.09912109374997,74.65654296875002],[138.09228515625003,74.79746093750003],[136.94765625000005,75.32553710937498],[137.28974609375004,75.34863281249997],[137.26884765625002,75.7494140625],[137.70654296875003,75.75957031250002],[137.56054687499997,75.95522460937502],[138.20761718750006,76.11494140624995],[138.91953125000006,76.19672851562501],[140.04873046875,75.82895507812503]]],[[[96.5324218750001,76.278125],[96.30058593750002,76.121728515625],[95.31113281250006,76.21474609375002],[95.37988281250003,76.2890625],[96.5324218750001,76.278125]]],[[[112.47802734375003,76.62089843749999],[112.531640625,76.450048828125],[111.96894531250004,76.62617187500001],[112.47802734375003,76.62089843749999]]],[[[149.15019531250002,76.65991210937506],[148.39863281250004,76.64824218750007],[149.4064453125001,76.78208007812498],[149.15019531250002,76.65991210937506]]],[[[67.7653320312501,76.23759765624999],[61.35595703124997,75.31484375000002],[60.27685546875003,75.00756835937503],[60.501367187499994,74.90463867187503],[59.67402343750004,74.61015624999999],[59.24013671875005,74.69296874999998],[59.040429687499994,74.48554687500001],[58.53466796875003,74.49892578124997],[58.6178710937501,74.22739257812498],[57.76738281250002,74.013818359375],[57.755957031250006,73.769189453125],[57.313085937500006,73.838037109375],[57.54257812500006,73.65820312500003],[56.96386718750003,73.36655273437503],[56.43037109375004,73.29721679687503],[55.00683593750003,73.45385742187506],[54.29990234375006,73.35097656249997],[53.7628906250001,73.76616210937499],[54.64267578125006,73.95957031250006],[55.34091796875006,74.41962890624998],[56.13710937500005,74.49609375000003],[55.5822265625001,74.627685546875],[56.4987304687501,74.95708007812505],[55.81005859374997,75.12490234374997],[56.03554687499999,75.19423828124997],[56.57031250000003,75.09775390625003],[56.8444335937501,75.351416015625],[57.606835937499994,75.34125976562498],[58.05830078125004,75.6630859375],[58.88125,75.85478515625007],[60.27929687499997,76.09624023437505],[60.94218750000002,76.07128906250003],[61.20166015624997,76.28203125000007],[62.97148437500002,76.23666992187498],[64.4634765625,76.37817382812503],[67.65185546874997,77.011572265625],[68.48574218750005,76.93369140625003],[68.94169921875002,76.707666015625],[67.7653320312501,76.23759765624999]]],[[[96.28544921875002,77.02666015625007],[95.27031250000007,77.01884765624999],[96.52841796875006,77.20551757812501],[96.28544921875002,77.02666015625007]]],[[[89.51425781250006,77.18881835937498],[89.14169921875012,77.22680664062497],[89.61621093749997,77.31103515625],[89.51425781250006,77.18881835937498]]],[[[130.68730468750007,42.30253906249999],[130.52695312500012,42.535400390625],[130.42480468749997,42.72705078124997],[131.06855468750004,42.90224609375005],[131.25732421875003,43.378076171874994],[131.2552734375,44.07158203124999],[130.9816406250001,44.844335937500034],[131.44687500000012,44.984033203124966],[131.85185546875002,45.32685546875001],[132.93603515624997,45.029931640624994],[133.1134765625001,45.130712890625006],[133.18603515625003,45.49482421875004],[133.43642578125,45.60468750000004],[133.86132812500003,46.24775390625004],[134.1676757812501,47.30219726562501],[134.75234375,47.71542968749998],[134.56601562500006,48.02250976562502],[134.66523437500004,48.25390625],[134.29335937500005,48.37343750000002],[133.46835937500006,48.09716796875003],[133.14404296875003,48.10566406249998],[132.7072265625001,47.94726562500006],[132.47626953125004,47.714990234374994],[130.96191406249997,47.70932617187498],[130.7326171875001,48.01923828124998],[130.80429687500012,48.34150390624998],[130.5521484375,48.602490234374955],[130.553125,48.861181640625006],[130.1959960937501,48.89165039062499],[129.49814453125012,49.38881835937502],[129.0651367187501,49.374658203124966],[128.70400390625,49.60014648437499],[127.99960937500006,49.56860351562506],[127.55078124999997,49.801806640625045],[127.590234375,50.20898437500003],[127.33720703125007,50.35014648437502],[127.30703125000005,50.70795898437501],[126.92480468749997,51.10014648437496],[126.34169921875,52.36201171875001],[125.64902343750012,53.042285156250045],[125.075,53.20366210937496],[124.81230468750002,53.133837890625045],[123.6078125,53.546533203124994],[120.98544921875012,53.28457031250002],[120.09453125000007,52.787207031250034],[120.0675781250001,52.632910156250034],[120.65615234375,52.56665039062503],[120.74980468750007,52.096533203125006],[120.06689453125003,51.60068359375006],[119.16367187500006,50.40600585937503],[119.34628906250012,50.278955078124994],[119.25986328125012,50.06640625000003],[118.4515625,49.84448242187503],[117.8734375,49.51347656250002],[116.6833007812501,49.82377929687499],[116.551171875,49.92031250000002],[116.35117187500012,49.97807617187499],[116.21679687500003,50.00927734375003],[116.13457031250002,50.01079101562499],[115.9259765625001,49.95214843750003],[115.79521484375002,49.90590820312502],[115.71777343750003,49.88061523437503],[115.58798828125006,49.88603515624996],[115.42919921874997,49.89648437499997],[115.36503906250002,49.911767578124966],[115.27451171875006,49.948876953124994],[115.00332031250005,50.138574218749994],[114.74316406249997,50.23369140625002],[114.29707031250004,50.27441406250006],[113.57421874999997,50.00703125000001],[113.44550781250004,49.94160156250001],[113.31904296875004,49.87431640624999],[113.16416015625012,49.79716796874999],[113.09208984375007,49.692529296874994],[113.05556640625,49.61625976562499],[112.91484375000002,49.569238281249994],[112.80644531250007,49.52358398437502],[112.69736328125012,49.50727539062498],[112.49492187500002,49.532324218750034],[112.07968750000006,49.42421875000002],[111.42929687500006,49.342626953125034],[111.3366210937501,49.355859374999966],[111.20419921875012,49.304296875000034],[110.82792968750002,49.16616210937505],[110.70976562500002,49.14296875000002],[110.42783203125006,49.219970703125],[110.32138671875012,49.215869140625045],[110.19990234375004,49.17041015625003],[109.5287109375,49.269873046875034],[109.45371093750012,49.29633789062501],[109.23671875000005,49.334912109374955],[108.61367187500005,49.32280273437499],[108.52246093750003,49.34150390624998],[108.4069335937501,49.39638671875005],[107.96542968750012,49.65351562500004],[107.91660156250012,49.947802734375045],[107.63095703125012,49.98310546875004],[107.3470703125,49.986669921875034],[107.23330078125,49.989404296874994],[107.14306640625003,50.03300781249999],[107.04023437500004,50.086474609375045],[106.94130859375005,50.19667968750002],[106.71113281250004,50.312597656250006],[106.57441406250004,50.32880859375004],[106.36845703125002,50.317578124999955],[106.21787109375006,50.304589843749966],[105.38359375000002,50.47373046874998],[104.07871093750012,50.15424804687498],[103.63291015625006,50.138574218749994],[103.49628906250004,50.16494140625005],[103.42119140625002,50.18706054687502],[103.3043945312501,50.200292968750034],[102.28837890625007,50.58510742187502],[102.31660156250004,50.71845703125001],[102.21503906250004,50.82944335937506],[102.19453125000004,51.05068359375002],[102.15195312500006,51.107519531250034],[102.14238281250007,51.21606445312503],[102.16005859375005,51.260839843750006],[102.1556640625,51.31376953124996],[102.1115234375001,51.353466796874955],[101.97919921875004,51.382226562499966],[101.82119140625,51.421044921874966],[101.57089843750006,51.46718750000005],[101.38125,51.45263671875],[100.53623046875006,51.713476562500034],[100.46894531250004,51.72607421875003],[100.23037109375,51.729833984375006],[100.0345703125,51.73710937499996],[99.92167968750002,51.755517578124994],[99.71923828124997,51.87163085937502],[98.89316406250006,52.11728515625006],[98.64052734375005,51.80117187500005],[98.103125,51.483544921874994],[97.82529296875012,50.985253906249994],[97.953125,50.85517578124998],[98.02978515625003,50.64462890624998],[98.07890625000002,50.60380859375002],[98.14501953124997,50.56855468750001],[98.22050781250007,50.55717773437502],[98.2794921875001,50.53325195312502],[98.25029296875002,50.30244140624998],[98.00390625000003,50.01425781249998],[97.35976562500005,49.741455078125],[97.20859375000006,49.73081054687506],[96.98574218750005,49.88281250000003],[96.31503906250012,49.90112304687503],[96.06552734375006,49.99873046875001],[95.52265625000004,49.911230468750034],[95.11142578125012,49.935449218749994],[94.93027343750006,50.04375],[94.8112304687501,50.04819335937506],[94.71806640625002,50.04326171875002],[94.67548828125004,50.02807617187506],[94.61474609375003,50.02373046874996],[94.56464843750004,50.08793945312499],[94.35468750000004,50.221826171874994],[94.25107421875006,50.55639648437503],[93.103125,50.60390625000002],[92.94130859375005,50.77822265625002],[92.85644531250003,50.78911132812502],[92.77929687500003,50.778662109375006],[92.738671875,50.71093749999997],[92.68134765625004,50.683203125],[92.6266601562501,50.68828124999999],[92.57890625000002,50.725439453125006],[92.42636718750006,50.803076171875006],[92.35478515625002,50.86416015625002],[92.29580078125,50.84980468750004],[92.19238281249997,50.700585937499994],[91.80429687500006,50.693603515625],[91.4464843750001,50.52216796874998],[91.41503906249997,50.46801757812506],[91.34082031249997,50.470068359375034],[91.30058593750002,50.46337890625],[91.2337890625,50.45239257812497],[91.02158203125012,50.41547851562501],[90.83808593750004,50.32373046874997],[90.76074218749997,50.30595703124999],[90.71435546874997,50.25942382812502],[90.65507812500007,50.22236328125001],[90.05371093750003,50.09375],[89.64384765625002,49.90302734374998],[89.65410156250007,49.71748046875001],[89.57919921875006,49.69970703125003],[89.475,49.66054687500005],[89.39560546875006,49.61152343750001],[89.24394531250007,49.62705078125006],[89.20292968750007,49.59570312499997],[89.17998046875002,49.5322265625],[89.10947265625012,49.50136718750002],[89.00839843750006,49.472802734374994],[88.97060546875,49.483740234375006],[88.94541015625012,49.50766601562498],[88.90019531250002,49.53969726562502],[88.86386718750006,49.52763671874996],[88.83164062500012,49.44843749999998],[88.633203125,49.486132812500045],[88.19257812500004,49.451708984375045],[88.13554687500002,49.38149414062502],[88.11572265624997,49.25629882812501],[88.0285156250001,49.219775390625045],[87.98808593750002,49.186914062499994],[87.9347656250001,49.16455078124997],[87.81425781250002,49.162304687499955],[87.7625,49.16582031249996],[87.5158203125001,49.122412109375006],[87.41669921875004,49.07661132812501],[87.32285156250012,49.085791015625006],[86.62646484374997,49.56269531250001],[86.67548828125004,49.77729492187501],[86.1808593750001,49.49931640624996],[85.2326171875001,49.61582031249998],[84.9894531250001,50.061425781249994],[84.32324218749997,50.239160156249966],[83.94511718750007,50.774658203125],[83.35732421875005,50.99458007812504],[82.76083984375012,50.89335937500002],[82.49394531250007,50.72758789062499],[81.46591796875006,50.73984375],[81.38828125000006,50.95649414062501],[81.0714843750001,50.96875],[81.12724609375002,51.19106445312502],[80.73525390625,51.29340820312498],[80.44804687500002,51.18334960937503],[80.42363281250002,50.94628906249997],[79.98623046875,50.774560546874966],[77.85996093750006,53.269189453124994],[76.48476562500005,54.02255859374998],[76.42167968750007,54.151513671874966],[76.65458984375007,54.14526367187503],[76.8373046875,54.4423828125],[75.43720703125004,54.08964843749999],[75.22021484374997,53.89379882812506],[74.45195312500007,53.64726562500002],[74.35156250000003,53.487646484375006],[73.85898437500006,53.61972656249998],[73.40693359375004,53.44755859374999],[73.30566406250003,53.707226562499955],[73.71240234375003,54.04238281250002],[73.22988281250005,53.957812500000045],[72.62226562500004,54.13432617187502],[72.44677734375003,53.94184570312498],[72.18603515625003,54.32563476562501],[72.00449218750006,54.20566406249998],[71.09316406250005,54.21220703124999],[71.18554687500003,54.59931640624998],[70.73808593750007,55.30517578125],[70.18242187500002,55.162451171875034],[68.9772460937501,55.389599609374955],[68.20625,55.16093750000002],[68.15585937500006,54.97670898437505],[65.476953125,54.62329101562497],[65.08837890624997,54.340185546875034],[64.46123046875002,54.38417968750002],[61.92871093750003,53.94648437500004],[61.231054687500006,54.01948242187498],[60.97949218749997,53.62172851562505],[61.53496093750002,53.52329101562506],[61.22890625,53.445898437500006],[61.19921874999997,53.28715820312502],[61.65986328125004,53.22846679687504],[62.08271484375004,53.00541992187499],[61.047460937500006,52.97246093750002],[60.77441406249997,52.67578124999997],[60.99453125000005,52.33686523437504],[60.03027343749997,51.93325195312505],[60.464746093749994,51.651171875000045],[61.55468750000003,51.32460937500005],[61.38945312500002,50.86103515625001],[60.94228515625005,50.69550781250004],[60.42480468749997,50.67915039062498],[60.05859374999997,50.850292968749955],[59.812402343749994,50.58203125],[59.523046875,50.492871093749955],[59.4523437500001,50.62041015625002],[58.88369140625005,50.694433593750006],[58.359179687500074,51.063818359375034],[57.83886718750003,51.091650390625006],[57.44218750000002,50.88886718749998],[57.01171874999997,51.06518554687503],[56.49140625000004,51.01953124999997],[55.68623046875004,50.582861328125006],[54.64160156250003,51.011572265625034],[54.555273437500006,50.535791015624994],[54.139746093750006,51.04077148437503],[53.33808593750004,51.48237304687504],[52.57119140625005,51.481640624999955],[52.21914062499999,51.709375],[51.344531250000074,51.47534179687503],[51.16347656250005,51.6474609375],[50.79394531249997,51.729199218749955],[50.246875,51.28950195312498],[49.49804687500003,51.08359375000006],[49.32343750000004,50.851708984374966],[48.625097656250006,50.61269531250005],[48.7589843750001,49.92832031250006],[48.33496093750003,49.858251953125006],[47.7057617187501,50.37797851562502],[47.42919921874997,50.35795898437502],[46.889550781249994,49.69697265625001],[46.80205078125002,49.36708984375002],[47.031347656250006,49.150292968749994],[46.70263671875003,48.80556640625002],[46.660937500000074,48.41225585937502],[47.06464843750004,48.23247070312499],[47.292382812499994,47.74091796875004],[47.48193359374997,47.80390624999998],[48.16699218750003,47.70878906249996],[48.959375,46.77460937499998],[48.558398437500074,46.75712890624999],[48.54121093750004,46.60561523437502],[49.232226562500074,46.33715820312503],[48.683691406250006,46.08618164062497],[48.72958984375006,45.896826171875034],[48.4870117187501,45.93486328124996],[47.63330078124997,45.58403320312499],[47.46328125,45.67968750000003],[47.5294921875001,45.530224609374955],[47.3512695312501,45.21772460937498],[46.7072265625001,44.503320312499994],[47.30703125000005,44.103125],[47.462792968749994,43.55502929687498],[47.64648437500003,43.88461914062498],[47.463183593750074,43.03505859375002],[48.572851562500006,41.84448242187503],[47.79101562499997,41.19926757812502],[47.31767578125002,41.28242187500001],[46.74931640625002,41.812597656250006],[46.42988281250004,41.890966796875006],[46.21269531250002,41.989892578124994],[45.63857421875005,42.20507812500003],[45.63427734374997,42.234716796875034],[45.72753906249997,42.47504882812498],[45.70527343750004,42.49809570312496],[45.56289062499999,42.53574218749998],[45.34375,42.52978515625003],[45.16025390625006,42.675],[45.07158203125002,42.69414062500002],[44.94335937499997,42.73027343750002],[44.870996093749994,42.75639648437499],[44.850488281249994,42.746826171875],[44.77109375000006,42.61679687499998],[44.69179687499999,42.709619140624966],[44.64433593750002,42.734716796875034],[44.50585937500003,42.748632812500006],[44.329492187499994,42.703515624999966],[44.10273437500004,42.616357421874994],[44.004687500000074,42.59560546875002],[43.95742187500005,42.56655273437505],[43.825976562500074,42.571533203125],[43.759863281250006,42.593847656250006],[43.738378906250006,42.61699218750002],[43.74990234375005,42.65751953125002],[43.79541015624997,42.702978515625034],[43.78261718750005,42.747021484374955],[43.62304687500003,42.80771484374998],[43.5578125000001,42.844482421875],[43.089160156250074,42.9890625],[43.00019531250004,43.04965820312506],[42.991601562499994,43.09150390624998],[42.76064453125005,43.169580078124966],[41.58056640624997,43.21923828124997],[41.460742187500074,43.276318359374955],[41.35820312500002,43.33339843750005],[41.08310546875006,43.37446289062498],[40.94199218750006,43.41806640624998],[40.801660156249994,43.479931640624955],[40.64804687500006,43.53388671875004],[40.084570312500006,43.553125],[40.02373046875002,43.48486328125],[39.873632812500006,43.47280273437502],[38.71728515624997,44.28808593750003],[38.18125,44.41967773437503],[37.851464843749994,44.698828125000034],[37.49511718750003,44.69526367187504],[37.20478515625004,44.97197265624999],[36.62763671875004,45.15131835937504],[36.941210937500074,45.289697265624994],[36.72041015625004,45.371875],[36.8659179687501,45.42705078124999],[37.21357421875004,45.272314453125006],[37.6471679687501,45.37719726562506],[37.61240234375006,45.56469726562506],[37.93310546875003,46.001708984375],[38.014257812500006,46.047753906249966],[38.07958984375003,45.93481445312506],[38.18359374999997,46.09482421875006],[38.49228515625006,46.09052734374998],[37.913867187500074,46.40649414062503],[37.766503906249994,46.63613281250002],[38.50097656249997,46.663671875000034],[38.43867187500004,46.813085937500006],[39.29345703125003,47.105761718750045],[39.19570312499999,47.268847656250045],[39.023730468750074,47.27221679687503],[38.928320312500006,47.175683593749994],[38.55244140625004,47.15034179687498],[38.7619140625001,47.261621093749994],[38.21435546875003,47.091455078124966],[38.36884765625004,47.609960937500006],[38.90029296875005,47.85512695312502],[39.77871093750005,47.88754882812506],[39.95791015625005,48.268896484375034],[39.8356445312501,48.54277343749996],[39.6447265625001,48.591210937499966],[39.792871093749994,48.807714843750034],[40.00361328125004,48.82207031250002],[39.68652343749997,49.007910156250034],[40.10878906250005,49.251562500000034],[40.080664062500006,49.576855468749955],[39.780566406250074,49.57202148437503],[39.17480468750003,49.85595703124997],[38.91835937499999,49.82470703125],[38.258593750000074,50.05234375],[38.046875,49.92001953125006],[37.42285156249997,50.411474609375006],[36.619433593750074,50.209228515625],[36.1164062500001,50.408544921875006],[35.59111328125002,50.36875],[35.31191406250005,51.043896484374955],[35.0640625,51.203417968750045],[34.21386718750003,51.25537109375006],[34.12109375000003,51.67915039062498],[34.397851562499994,51.780419921874994],[33.735253906249994,52.344775390625045],[32.435449218749994,52.307226562500034],[32.12226562500004,52.05058593749996],[31.763378906250097,52.10107421875003],[31.758593750000017,52.125830078125034],[31.690625,52.22065429687498],[31.64990234374997,52.26220703125],[31.60156250000003,52.284814453124994],[31.57734375000004,52.31230468749999],[31.585546875,52.532470703125],[31.56484375,52.75922851562501],[31.53515624999997,52.798242187499966],[31.442773437499994,52.86181640625003],[31.35302734374997,52.93344726562498],[31.295117187500097,52.98979492187499],[31.25878906249997,53.01669921875006],[31.364550781250017,53.13896484375002],[31.388378906250097,53.18481445312503],[31.41787109375005,53.196044921875],[31.849707031250006,53.106201171875],[32.14199218750005,53.091162109375034],[32.46933593750006,53.270312500000045],[32.578027343749994,53.312402343749994],[32.644433593749994,53.32890624999999],[32.70429687500004,53.33632812499999],[32.45097656250002,53.6533203125],[32.20039062500004,53.78125],[31.99218750000003,53.796875],[31.82080078124997,53.79194335937498],[31.754199218750017,53.81044921875002],[31.825292968750006,53.93500976562501],[31.837792968749994,54.00078124999999],[31.825976562500074,54.030712890624955],[31.79199218749997,54.05590820312503],[31.62841796874997,54.111181640625006],[31.403613281250017,54.195947265624966],[31.299121093750017,54.29169921875001],[31.184765625000097,54.452978515625006],[31.074804687500063,54.491796875],[31.154882812500063,54.610937500000034],[31.152148437500017,54.625341796875034],[31.12128906250004,54.64848632812496],[30.984179687500074,54.695898437500034],[30.79882812499997,54.78325195312499],[30.79101562499997,54.806005859375006],[30.804492187500074,54.8609375],[30.829882812500017,54.91499023437498],[30.977734375000097,55.05048828124998],[30.977734375000097,55.08779296875002],[30.958886718749994,55.13759765625005],[30.87744140625003,55.223437500000045],[30.81445312499997,55.27871093750002],[30.81054687499997,55.306982421875006],[30.82099609375004,55.330273437499955],[30.900585937500097,55.397412109374955],[30.906835937500063,55.57001953125004],[30.625585937500006,55.666259765625],[30.23359375000004,55.84521484375006],[30.04267578125004,55.83642578125003],[29.93701171874997,55.84526367187499],[29.881640625000074,55.83232421875002],[29.82392578125004,55.79511718749998],[29.74414062499997,55.770410156249994],[29.630078125000097,55.75117187499998],[29.482226562500074,55.6845703125],[29.412988281249994,55.72485351562506],[29.35341796875005,55.784375],[29.375,55.938720703125],[28.284277343750006,56.055908203125],[28.14794921875003,56.142919921875034],[28.202050781250023,56.260400390624994],[28.191699218750045,56.31557617187505],[28.169238281250017,56.386865234374994],[28.11083984375,56.51069335937501],[28.103125,56.545703125000045],[27.89208984375003,56.741064453125034],[27.88154296875001,56.82416992187501],[27.848632812500057,56.85341796875002],[27.806054687499994,56.86708984375005],[27.639453125000074,56.84565429687504],[27.83027343750004,57.19448242187505],[27.83828125000008,57.247705078124966],[27.82861328124997,57.293310546875006],[27.796875,57.316943359375045],[27.538671875000063,57.429785156250034],[27.51113281250005,57.508154296875006],[27.469726562500057,57.524023437500034],[27.35195312500005,57.528125],[27.4,57.66679687499999],[27.542089843750063,57.799414062500006],[27.778515625000068,57.87070312500006],[27.502441406250057,58.221337890624994],[27.434179687500006,58.787255859374994],[28.15107421875004,59.374414062499966],[28.0125,59.484277343749966],[28.05800781250008,59.781542968750045],[28.334570312500034,59.69252929687502],[28.518164062500034,59.849560546874955],[28.947265625000057,59.828759765624994],[29.147265625000045,59.999755859375],[30.12255859374997,59.873583984375074],[30.172656250000017,59.957128906250034],[29.72119140624997,60.19531249999997],[29.069140625000017,60.19145507812499],[28.643164062500006,60.375292968750045],[28.512792968750006,60.67729492187502],[27.797656250000074,60.53613281250003],[29.69013671875004,61.54609375000001],[31.18671875000004,62.48139648437504],[31.533984375000017,62.885400390624994],[31.180859375000097,63.208300781250074],[29.991503906250074,63.73515625000002],[30.50390625000003,64.02060546875],[30.513769531250006,64.2],[30.04189453125005,64.44335937499997],[30.072851562500063,64.76503906250005],[29.60419921875004,64.968408203125],[29.826953125000017,65.14506835937502],[29.608007812500006,65.248681640625],[29.715917968750063,65.62456054687502],[30.102734375000097,65.72626953125004],[29.066210937500045,66.89174804687497],[29.988085937500017,67.66826171874999],[29.343847656250006,68.06186523437506],[28.685156250000034,68.189794921875],[28.470703125000057,68.48837890625],[28.77285156250005,68.84003906249995],[28.414062500000057,68.90415039062506],[28.96582031250003,69.02197265625],[29.38828125,69.29814453125005],[30.08730468750005,69.43286132812503],[30.18017578124997,69.63583984375],[30.860742187499994,69.53842773437503],[30.869726562500006,69.78344726562506],[31.546972656250063,69.696923828125],[31.997949218749994,69.80991210937503],[31.98457031250004,69.95366210937499],[33.00781249999997,69.72211914062498],[32.91503906249997,69.60170898437497],[32.17675781250003,69.67402343749995],[32.37773437500002,69.47910156250003],[32.99980468750002,69.4701171875],[32.97890625000005,69.367333984375],[33.45429687500004,69.42817382812495],[33.14121093750006,69.068701171875],[33.684375,69.31025390625001],[35.85791015625003,69.19174804687503],[37.73056640625006,68.69213867187503],[38.43017578125003,68.35561523437505],[39.568945312500006,68.07172851562501],[39.82333984375006,68.05859375],[39.80927734375004,68.15083007812498],[40.38066406250002,67.831884765625],[40.96640625000006,67.71347656250003],[41.358789062499994,67.20966796874998],[41.18896484375003,66.82617187500003],[40.10332031250002,66.29995117187502],[38.65390625000006,66.06904296874995],[35.51347656250002,66.39580078125002],[34.82460937499999,66.61113281249999],[34.48261718750004,66.55034179687505],[34.4515625,66.651220703125],[33.15019531250002,66.84394531250001],[32.93046875000002,67.08681640625002],[31.895312500000074,67.16142578125002],[33.65595703125004,66.44262695312506],[33.36054687500004,66.32954101562501],[34.112695312499994,66.225244140625],[34.69179687500005,65.95185546874998],[34.77695312500006,65.76826171874998],[34.40644531250004,65.39575195312503],[35.03535156250004,64.44023437500005],[35.802050781250074,64.3353515625],[36.3649414062501,64.00283203125002],[37.44218750000002,63.813378906249966],[37.9679687500001,63.949121093749994],[38.0622070312501,64.09101562499995],[37.953710937500006,64.32011718749999],[37.183691406250006,64.40849609375007],[36.6242187500001,64.75053710937502],[36.534570312499994,64.93862304687497],[36.88281249999997,65.17236328124997],[39.7580078125001,64.57705078125002],[40.05781250000004,64.77075195312497],[40.44492187500006,64.7787109375],[39.7980468750001,65.349853515625],[39.816503906250006,65.59794921874999],[41.4757812500001,66.12343750000002],[42.21054687500006,66.51967773437502],[43.23320312500002,66.41552734375003],[43.653125,66.2509765625],[43.54189453125005,66.12338867187503],[43.84375,66.14238281249999],[44.10439453125005,66.00859374999999],[44.42929687500006,66.93774414062503],[43.7824218750001,67.25449218749998],[44.20468750000006,68.25375976562498],[43.33320312500004,68.67338867187502],[44.04804687500004,68.54882812499997],[45.891992187499994,68.47968750000001],[46.69042968750003,67.84882812500001],[45.52871093750005,67.75756835937497],[44.90214843750002,67.41313476562505],[45.56220703125004,67.18559570312507],[45.88535156250006,66.89106445312501],[46.4923828125001,66.80019531249997],[47.65585937500006,66.97592773437498],[47.87470703125004,67.58417968749998],[48.83320312500004,67.681494140625],[48.75429687500005,67.89594726562501],[49.15527343750003,67.87041015625005],[51.994726562500006,68.53876953124995],[52.3966796875001,68.35170898437505],[52.72265624999997,68.484033203125],[52.34404296875002,68.60815429687497],[53.80195312500004,68.99589843750002],[54.49121093750003,68.992333984375],[53.797656250000074,68.90747070312503],[53.9308593750001,68.43554687499997],[53.260546875000074,68.26748046875002],[54.476171875,68.29414062499995],[54.86132812500003,68.20185546874998],[55.418066406250006,68.56782226562501],[56.04365234375004,68.64887695312501],[57.126855468749994,68.55400390625005],[58.17304687500004,68.88974609375006],[59.0573242187501,69.00605468750004],[59.37050781250005,68.73837890625003],[59.09902343750005,68.4443359375],[59.725683593750006,68.35161132812502],[59.89599609374997,68.70634765624999],[60.489160156249994,68.72895507812498],[60.93359374999997,68.98676757812501],[60.17060546875004,69.59091796875],[60.90908203125005,69.84711914062495],[64.19042968750003,69.53466796875],[64.89628906250002,69.247802734375],[67.00244140625003,68.87358398437505],[68.37119140625006,68.31425781250005],[69.14052734375005,68.95063476562501],[68.54277343750002,68.96708984374999],[68.00585937499997,69.48002929687505],[67.62412109375,69.58442382812501],[67.06445312500003,69.69370117187498],[66.89667968750004,69.55380859374998],[67.28476562500006,70.73872070312498],[67.14335937500002,70.83754882812502],[66.70224609375006,70.81850585937497],[66.63964843749997,71.08139648437498],[68.2692382812501,71.68281250000001],[69.61181640625003,72.98193359375],[69.73828124999997,72.88496093749998],[71.5001953125001,72.91367187500003],[72.812109375,72.69140624999997],[72.57412109375,72.01254882812506],[71.86728515625,71.457373046875],[72.70449218750005,70.96323242187498],[72.5767578125,68.96870117187498],[73.59169921875005,68.48188476562501],[73.13945312500002,68.18134765624998],[73.06679687500005,67.766943359375],[71.84746093750002,67.00761718750005],[71.36523437500003,66.96152343749998],[71.53955078125003,66.68310546875],[70.72490234375007,66.51943359374997],[70.38281249999997,66.60249023437501],[70.69072265625002,66.74531249999998],[70.2833984375001,66.68579101562503],[69.8771484375001,66.84545898437506],[69.21777343749997,66.82861328125],[69.01347656250002,66.78833007812503],[69.19433593749997,66.57866210937505],[70.33945312500006,66.34238281250006],[71.35800781250006,66.35942382812505],[71.91699218749997,66.24672851562502],[72.32158203125002,66.33212890625],[72.4173828125,66.56079101562506],[73.79208984375,66.99531250000001],[74.07451171875007,67.41411132812499],[74.76953124999997,67.76635742187497],[74.39140625000007,68.42060546874995],[74.57958984375003,68.751220703125],[76.10751953125006,68.975732421875],[76.45917968750004,68.97827148437497],[77.2384765625001,68.46958007812498],[77.17441406250012,67.77851562499998],[77.77158203125006,67.57026367187501],[78.92246093750006,67.58911132812503],[77.58828125000005,67.75190429687498],[77.66484375000002,68.19038085937495],[77.99511718749997,68.25947265624998],[77.65068359375007,68.90302734375001],[76.00097656249997,69.23505859374998],[75.42001953125,69.23862304687498],[74.81484375,69.09057617187503],[73.83603515625006,69.143212890625],[73.578125,69.80297851562503],[74.34335937500006,70.57871093749998],[73.08623046875007,71.44492187500006],[73.67177734375,71.84506835937503],[74.99218749999997,72.14482421874999],[74.78681640625004,72.811865234375],[75.15244140625,72.85273437499998],[75.74140625000004,72.29624023437503],[75.273828125,71.95893554687495],[75.33203125000003,71.34174804687498],[76.92900390625002,71.12788085937504],[77.58964843750007,71.16791992187501],[78.32060546875002,70.93041992187503],[78.94218750000002,70.93378906250001],[79.08388671875,71.00200195312505],[78.58769531250007,70.993896484375],[78.21259765625004,71.26630859374998],[76.43339843750002,71.55249023437503],[76.03242187500004,71.91040039062503],[76.87138671875002,72.03300781250005],[77.77753906250004,71.83642578125006],[78.23242187500003,71.95229492187502],[78.01640625000007,72.092041015625],[77.49287109375004,72.07172851562504],[77.47158203125,72.19213867187506],[78.22539062500007,72.37744140625006],[79.4220703125001,72.38076171875002],[80.7625,72.08916015625002],[81.66162109374997,71.71596679687502],[82.75781250000003,71.76411132812498],[83.23359375000004,71.66816406249995],[82.32285156250006,71.26000976562503],[82.16318359375012,70.59814453125003],[82.22119140625003,70.39570312499998],[82.86914062499997,70.95483398437503],[83.03017578125,70.58051757812498],[82.6823242187501,70.21772460937498],[83.0807617187501,70.09301757812497],[83.07382812500012,70.276708984375],[83.73593750000006,70.54648437499998],[83.15126953125005,71.10361328124998],[83.534375,71.68393554687498],[83.20029296875012,71.87470703125004],[82.64541015625005,71.92524414062504],[82.09365234375,72.26542968750005],[80.82705078125005,72.48828124999997],[80.84160156250007,72.94916992187498],[80.4245117187501,73.23115234374998],[80.5832031250001,73.56845703125003],[85.20058593750005,73.72153320312506],[86.89296875,73.88710937500002],[85.79257812500012,73.438330078125],[86.67705078125002,73.10678710937503],[85.93896484374997,73.45649414062495],[87.12011718750003,73.61503906250002],[87.57119140625,73.81074218750001],[86.57109375000007,74.24375],[86.0013671875,74.316015625],[86.39580078125007,74.45009765624997],[86.89794921874997,74.32534179687497],[87.22968750000004,74.3638671875],[85.79101562499997,74.6451171875],[86.20126953125006,74.81621093750005],[86.65146484375012,74.68242187500005],[87.04179687500007,74.77885742187499],[87.46757812500002,75.01323242187505],[86.93906250000006,75.06811523437503],[87.00595703125012,75.16982421874997],[87.67138671874997,75.12958984375004],[90.18496093750005,75.59106445312497],[94.07519531249997,75.91289062499999],[92.89042968750002,75.90996093750002],[93.25927734375003,76.09877929687502],[95.57871093750012,76.13730468749998],[96.07548828125007,76.08198242187498],[95.65332031250003,75.89218750000003],[96.50859375000002,76.00556640624995],[96.49707031249997,75.89121093750003],[98.66201171875005,76.24267578125003],[99.77041015625,76.02875976562498],[99.5407226562501,75.79858398437497],[99.85136718750007,75.93027343749998],[99.8253906250001,76.13593749999995],[98.80566406250003,76.48066406250004],[100.84375,76.52519531250005],[101.59775390625006,76.43920898437503],[100.92802734375002,76.55673828124998],[100.98994140625004,76.99047851562497],[102.61015625000007,77.508544921875],[104.01455078125,77.73041992187501],[106.05957031249997,77.39052734375002],[104.20244140625002,77.101806640625],[106.9416015625001,77.034375],[107.42978515625006,76.92656250000002],[106.41357421874997,76.51225585937499],[107.72216796875003,76.52231445312498],[108.18164062500003,76.73784179687502],[111.39248046875,76.686669921875],[112.09394531250004,76.48032226562506],[111.94267578125002,76.38046875000003],[112.61953125,76.38354492187506],[112.65625,76.05356445312498],[113.2726562500001,76.25166015625001],[113.5638671875,75.89165039062502],[113.85722656250007,75.92128906250002],[113.56757812500004,75.56840820312499],[112.45302734375,75.83017578125003],[112.95566406250006,75.571923828125],[113.24296875000007,75.61142578125003],[113.72617187500012,75.45063476562498],[112.92490234375012,75.01503906249997],[109.84033203124997,74.32197265624998],[109.8102539062501,74.16918945312503],[108.19951171875002,73.69409179687497],[107.27109375000006,73.62104492187501],[106.67939453125004,73.3306640625],[106.1886718750001,73.3080078125],[105.14394531250005,72.77705078125001],[105.7082031250001,72.836669921875],[106.47792968750005,73.13940429687503],[107.750390625,73.17314453125007],[109.33105468749997,73.48745117187497],[109.85527343750002,73.47246093750002],[110.86816406249997,73.73071289062497],[109.70673828125004,73.74375],[110.2614257812501,74.01743164062503],[111.05625,73.93935546875002],[111.13085937500003,74.05283203125003],[111.55058593750007,74.02851562499998],[111.22812500000012,73.96855468750002],[111.40039062500003,73.827734375],[112.14726562500007,73.70893554687498],[112.79541015625003,73.74609375],[112.83593750000003,73.96206054687502],[113.03281250000006,73.91386718750007],[113.4162109375001,73.647607421875],[113.15693359375004,73.45957031249998],[113.49091796875004,73.34609375000002],[113.12783203125,72.8306640625],[113.66455078124997,72.63452148437503],[113.2155273437501,72.80585937500001],[113.88623046875003,73.34580078124998],[113.51035156250012,73.50498046874998],[115.33769531250007,73.70258789062501],[118.87089843750007,73.53789062500002],[118.45703124999997,73.46440429687507],[118.43027343750012,73.24653320312501],[119.750390625,72.97910156250006],[122.26015625,72.88056640624995],[122.75195312500003,72.906494140625],[122.61523437499997,73.02792968750006],[123.1603515625001,72.95488281250002],[123.62226562500004,73.19326171875],[123.49111328125005,73.666357421875],[124.54121093750004,73.75126953125007],[125.59853515625005,73.447412109375],[126.25449218750012,73.548193359375],[126.55253906250007,73.33491210937498],[127.03134765625006,73.54746093750003],[127.74033203125012,73.48154296875],[129.10058593750003,73.11235351562502],[128.5990234375,72.895166015625],[129.01728515625004,72.8724609375],[129.250390625,72.70517578125003],[128.41826171875002,72.53515625000003],[129.28134765625006,72.43769531249998],[129.41064453124997,72.16630859375002],[128.93496093750005,72.07949218750002],[127.8034179687501,72.43403320312504],[127.84140625000012,72.308251953125],[128.91142578125002,71.75532226562495],[129.21025390625007,71.91694335937501],[129.46083984375,71.73930664062499],[128.84326171875003,71.6634765625],[129.76191406250004,71.11953125000002],[130.53710937500003,70.89252929687495],[130.75712890625002,70.96235351562498],[131.02158203125006,70.74609374999997],[132.0353515625001,71.24404296875],[132.65390625000006,71.92597656250001],[133.6888671875,71.434228515625],[134.70273437500012,71.38681640625003],[135.55917968750006,71.6103515625],[136.09033203125003,71.61958007812501],[137.9396484375001,71.1333984375],[137.84404296875007,71.22680664062503],[138.31406250000006,71.32553710937498],[137.918359375,71.38408203124999],[138.23417968750007,71.596337890625],[138.78017578125,71.62900390624998],[139.209375,71.44477539062501],[139.98417968750007,71.49150390625005],[139.72294921875002,71.88496093749998],[139.35927734375005,71.95136718750001],[140.18769531250004,72.19130859374997],[139.17636718750006,72.16347656249997],[139.14082031250004,72.32973632812502],[139.60117187500012,72.49609374999997],[141.07929687500004,72.5869140625],[140.80820312500006,72.89096679687503],[142.06142578125005,72.72080078125],[146.25292968749997,72.442236328125],[146.234765625,72.34970703125],[144.77636718749997,72.38227539062495],[144.16923828125002,72.25878906250003],[144.29492187499997,72.19262695312497],[146.83183593750007,72.29541015625003],[146.11328125000003,71.94497070312497],[146.23027343750007,72.1375],[145.75859375000007,72.22587890624999],[145.75673828125005,71.94130859375002],[145.06396484374997,71.92607421875002],[145.18857421875012,71.69580078125],[146.07324218749997,71.80834960937503],[147.26181640625006,72.327880859375],[149.50156250000012,72.16430664062497],[150.01689453125002,71.89565429687505],[149.04873046875005,71.79575195312503],[148.9681640625,71.69047851562499],[150.59980468750004,71.5201171875],[150.09765624999997,71.22656249999997],[150.96777343749997,71.38046874999998],[151.58242187500005,71.28696289062503],[152.09277343749997,71.02329101562503],[151.76201171875002,70.98247070312499],[152.50878906250003,70.83447265625003],[156.68457031250003,71.09375],[158.03701171875005,71.03925781250001],[159.35068359375006,70.79072265625001],[160.00644531250006,70.30966796875006],[159.72939453125005,69.87021484375006],[160.91074218750012,69.60634765625002],[161.03554687500005,69.09819335937507],[161.30986328125007,68.98227539062498],[160.85605468750006,68.53833007812506],[161.565625,68.90517578125],[161.53691406250002,69.379541015625],[162.16601562499997,69.61157226562503],[163.20136718750004,69.71474609375],[166.82031250000003,69.49956054687505],[167.8568359375,69.72822265624998],[168.30302734375002,69.27148437500003],[169.31064453125006,69.07954101562498],[169.60986328124997,68.78603515624997],[170.53759765624997,68.82539062500001],[170.99541015625002,69.04531250000005],[170.58222656250004,69.58334960937506],[170.16093750000007,69.62656249999998],[170.48681640625003,70.107568359375],[173.27744140625006,69.823828125],[173.43867187500004,69.94682617187502],[175.92148437500012,69.89531250000002],[179.27265624999998,69.25966796875002],[180,68.98344726562505],[180,65.06723632812498],[178.51953125000003,64.60297851562498],[177.7486328125,64.71704101562503],[176.88085937499997,65.08193359375002],[176.34101562500015,65.04731445312501],[177.03730468750004,64.99965820312497],[177.22285156250004,64.861669921875],[177.06875,64.78666992187502],[176.06113281250012,64.96088867187498],[174.54882812500009,64.68388671875005],[176.0565429687501,64.90473632812498],[176.35097656250005,64.70512695312502],[176.14091796875007,64.58583984375005],[177.42744140625015,64.76337890624998],[177.43291015625002,64.44448242187502],[177.6875,64.30473632812507],[178.04472656250013,64.21958007812503],[178.22949218749991,64.36440429687497],[178.38144531250018,64.26088867187502],[178.73144531250003,63.667089843750006],[178.44042968750009,63.605566406250006],[178.74404296874994,63.39477539062503],[178.79296874999997,63.54033203125002],[179.38857421875,63.14721679687497],[179.25957031250002,63.00830078125],[179.5705078125001,62.6875],[179.12070312500012,62.32036132812499],[177.292578125,62.59902343750002],[177.33896484375006,62.781347656250034],[177.02353515625012,62.777246093749994],[177.15947265625007,62.56098632812498],[174.51435546875015,61.823632812499966],[173.6234375,61.716064453125],[173.13183593749997,61.40664062500002],[172.85654296875006,61.469189453124955],[172.90800781250002,61.311621093750006],[172.39609375000006,61.16738281250002],[172.39277343750004,61.061767578125],[170.60820312500007,60.434912109375034],[170.3509765625,59.965527343749955],[169.9826171875001,60.067089843749955],[169.2267578125001,60.59594726562497],[168.1375,60.57392578125001],[167.22675781250004,60.406298828125045],[166.27304687500012,59.85625],[166.13603515625007,59.979345703125034],[166.35214843750006,60.48481445312498],[165.08457031250006,60.09858398437498],[164.95371093750006,59.843603515625006],[164.52529296875,60.06127929687503],[164.11328125000003,59.89755859374998],[164.13505859375002,59.984375],[163.74384765625004,60.02802734374998],[163.36484375000012,59.78144531250004],[163.27285156250005,59.302587890625006],[162.14160156249997,58.44741210937502],[161.96005859375012,58.07690429687506],[162.39140625000002,57.717236328124955],[162.65429687499997,57.94824218750003],[163.22578125000004,57.790380859375034],[162.77929687500003,57.35761718749998],[162.79111328125012,56.875390624999966],[162.92207031250004,56.72265625000003],[163.2565429687501,56.68803710937499],[163.33554687500012,56.232519531250006],[163.04736328125003,56.044677734375],[162.84033203125003,56.065625],[162.628125,56.232275390625034],[163.03837890625002,56.521875],[162.67148437500006,56.49008789062498],[162.52822265625005,56.260693359374955],[162.08496093749997,56.08964843750002],[161.72392578125002,55.49614257812499],[162.10556640625006,54.75214843750004],[161.62480468750002,54.51625976562502],[160.77265625000004,54.54135742187498],[160.0744140625001,54.18916015625001],[159.84375,53.78364257812498],[160.02509765625004,53.129589843749955],[159.58593750000003,53.237695312499966],[158.74541015625002,52.90893554687506],[158.47207031250005,53.032373046874966],[158.6087890625,52.873632812500034],[158.49316406249997,52.383154296875034],[158.10351562500003,51.80961914062499],[156.84746093750002,51.006591796875],[156.74775390625004,50.969287109375045],[156.52119140625004,51.38027343750002],[156.36474609374997,52.509375],[156.11035156250003,52.86616210937504],[155.62031250000004,54.86455078125002],[155.5548828125001,55.348486328125034],[155.98251953125012,56.69521484375002],[156.8488281250001,57.290185546874994],[156.97675781250004,57.46630859375],[156.82988281250007,57.77963867187498],[157.4503906250001,57.79926757812498],[157.66640625000005,58.01977539062506],[158.27519531250007,58.00898437499998],[159.21064453125004,58.519433593749966],[159.8473632812501,59.127148437499955],[161.75351562500012,60.15229492187501],[162.06816406250002,60.466406250000034],[163.70996093749997,60.916796875000045],[163.55351562500002,61.02563476562503],[164.00546875000006,61.34379882812499],[163.80439453125004,61.46137695312498],[164.20722656250004,62.29223632812506],[164.59833984375004,62.470556640625034],[165.20810546875012,62.37397460937501],[165.41738281250005,62.447070312500045],[164.418359375,62.704638671875045],[163.33173828125004,62.550927734374994],[163.01767578125006,61.89106445312504],[163.25781249999997,61.69946289062497],[163.08525390625002,61.570556640625],[162.85595703125003,61.705029296874955],[162.39257812500003,61.662109375],[160.76660156249997,60.753320312499966],[160.17363281250002,60.638427734375],[160.37890625000003,61.02548828124998],[159.79042968750005,60.956640625],[160.309375,61.894384765625006],[159.55234375000012,61.71948242187497],[159.18925781250007,61.92939453125001],[158.07011718750002,61.75361328125001],[157.46933593750012,61.798925781250006],[157.0841796875001,61.67568359375002],[155.71611328125002,60.682373046875],[154.97080078125012,60.376660156249955],[154.29306640625006,59.833349609375034],[154.1498046875,59.52851562500001],[154.97128906250006,59.44960937500002],[155.16044921875002,59.19013671875001],[154.45800781250003,59.21655273437497],[154.01093750000004,59.075537109375006],[153.69521484375005,59.22475585937505],[153.36113281250002,59.214794921874955],[152.81787109375003,58.92626953124997],[152.31962890625002,59.03076171875003],[152.08789062499997,58.910449218750045],[151.32675781250006,58.875097656250034],[151.12109375000003,59.08251953125003],[152.26064453125,59.22358398437498],[151.34824218750012,59.561132812500006],[150.4835937500001,59.494384765625],[150.66728515625002,59.55634765625001],[149.64257812499997,59.770410156249994],[149.06523437500002,59.63051757812502],[149.20498046875,59.488183593749966],[148.79707031250004,59.532324218750006],[148.74414062499997,59.37353515624997],[148.96464843750007,59.36914062499997],[148.72666015625006,59.257910156250034],[148.25742187500006,59.414208984374994],[147.51445312500002,59.2685546875],[146.53720703125006,59.45698242187501],[146.0495117187501,59.17055664062502],[145.55458984375,59.413525390624955],[143.19218750000002,59.3701171875],[142.58027343750004,59.240136718749966],[140.79023437500004,58.30346679687503],[140.446875,57.81367187499998],[138.66210937500003,56.96552734375004],[137.69150390625006,56.13935546875004],[135.2625,54.94331054687498],[135.25771484375005,54.73149414062499],[135.85156249999997,54.583935546874955],[136.797265625,54.62099609375005],[136.71884765625006,53.804101562499994],[137.15537109375012,53.82167968750002],[137.14160156249997,54.182226562500006],[137.66601562500003,54.283300781250006],[137.3392578125,54.10053710937498],[137.83476562500002,53.94672851562498],[137.25371093750007,53.546142578125],[137.95048828125007,53.60356445312499],[138.52792968750012,53.959863281249994],[138.56914062500002,53.818798828124955],[138.24970703125004,53.524023437500034],[138.45068359375003,53.53701171875002],[138.69941406250004,53.869726562500034],[138.65722656249997,54.29833984375003],[139.31972656250005,54.19296874999998],[139.707421875,54.27714843749999],[140.68759765625012,53.59643554687503],[141.3737304687501,53.29277343749999],[141.18125,53.01528320312505],[140.83964843750002,53.087890625],[141.25585937499997,52.84013671874996],[141.13242187500006,52.435693359374994],[141.48525390625,52.17851562500002],[141.36689453125004,51.92065429687506],[140.93261718750003,51.61992187499999],[140.5208984375,50.80019531250005],[140.62451171874997,50.08242187500002],[140.46269531250002,49.911474609375006],[140.51718750000012,49.59614257812498],[140.17060546875004,48.52368164062497],[138.58681640625005,47.057226562500006],[138.33691406250003,46.543408203124955],[137.68544921875,45.81835937500003],[136.14228515625004,44.489111328125034],[135.87460937500012,44.37353515625003],[135.1310546875001,43.52573242187506],[134.01044921875004,42.94746093750001],[133.15996093750007,42.69697265624998],[132.70898437500003,42.875830078125006],[132.30380859375006,42.88330078125],[132.30957031249997,43.31352539062499],[131.8666015625,43.09516601562501],[131.93896484374997,43.30195312500004],[131.15830078125012,42.62602539062499],[130.709375,42.656396484374966],[130.8341796875001,42.52294921875006],[130.68730468750007,42.30253906249999]]],[[[107.69550781250004,78.13090820312505],[107.48164062500004,78.057763671875],[106.41552734375003,78.13984375000001],[107.69550781250004,78.13090820312505]]],[[[102.88476562499997,79.25395507812505],[102.4123046875001,78.83544921874997],[103.80078124999997,79.14926757812503],[104.45205078125005,78.880029296875],[105.14599609375003,78.81884765625006],[105.31259765625012,78.49990234375],[104.74179687500012,78.33974609374997],[102.79667968750007,78.18789062500002],[101.20410156249997,78.19194335937505],[99.50029296875002,77.97607421875003],[101.590625,79.350439453125],[102.25126953125002,79.25605468749995],[102.40488281250006,79.43320312499998],[102.88476562499997,79.25395507812505]]],[[[76.24892578125005,79.65107421874995],[77.58896484375012,79.50190429687504],[76.64951171875012,79.493408203125],[76.24892578125005,79.65107421874995]]],[[[92.68349609375005,79.685205078125],[91.37626953125007,79.83549804687505],[91.22929687500007,80.03071289062504],[93.803125,79.904541015625],[92.68349609375005,79.685205078125]]],[[[51.409277343750006,79.94423828125],[50.09140625,79.98056640625003],[50.93632812500002,80.09423828125],[51.409277343750006,79.94423828125]]],[[[59.68886718750005,79.95581054687506],[58.91923828125002,79.98461914062506],[59.54453125000006,80.11884765624995],[59.68886718750005,79.95581054687506]]],[[[97.67451171875004,80.15825195312499],[97.65166015625002,79.76064453125],[98.59648437500002,80.05219726562495],[100.0612304687501,79.77709960937506],[99.68066406250003,79.32333984374998],[99.04179687500007,79.29301757812502],[99.92929687500012,78.96142578124997],[98.41113281250003,78.78779296875004],[95.53105468750007,79.09809570312501],[95.02041015625005,79.05268554687498],[94.21875,79.40234375],[93.07080078124997,79.49531250000001],[94.98730468749997,80.096826171875],[95.28134765625012,80.030517578125],[97.67451171875004,80.15825195312499]]],[[[50.05175781250003,80.07431640625003],[49.55605468750005,80.15893554687503],[49.883691406249994,80.230224609375],[50.05175781250003,80.07431640625003]]],[[[57.07871093750006,80.35092773437498],[56.986914062500006,80.07148437499998],[55.811621093750006,80.08715820312497],[56.02441406250003,80.34130859374997],[57.07871093750006,80.35092773437498]]],[[[53.521386718749994,80.18520507812497],[52.34355468750002,80.213232421875],[52.85390625,80.40239257812499],[53.85166015625006,80.26835937500005],[53.521386718749994,80.18520507812497]]],[[[57.95625,80.12324218749995],[57.33232421875002,80.15810546875005],[57.075,80.49394531249999],[59.25546875000006,80.34321289062501],[58.39794921874997,80.31875],[57.95625,80.12324218749995]]],[[[54.41533203125002,80.47280273437502],[53.811914062499994,80.47622070312502],[53.87724609375002,80.60527343750002],[54.41533203125002,80.47280273437502]]],[[[47.441992187500006,80.853662109375],[48.44570312500005,80.80600585937506],[48.68359375000003,80.63325195312504],[47.7052734375001,80.76518554687499],[46.141406250000074,80.44672851562495],[45.969042968750074,80.56948242187502],[44.9049804687501,80.61127929687501],[47.441992187500006,80.853662109375]]],[[[62.167773437500074,80.83476562500005],[62.07578125000006,80.616943359375],[61.05126953124997,80.418603515625],[60.27832031249997,80.49443359374999],[59.649804687499994,80.43125],[59.59228515625003,80.81650390624998],[62.167773437500074,80.83476562500005]]],[[[50.278125,80.92724609374997],[51.70361328125003,80.68764648437502],[48.81103515625003,80.35371093750001],[48.97753906250003,80.16259765624997],[47.73730468749997,80.08168945312502],[47.89296875000005,80.23925781249997],[46.991015625000074,80.182763671875],[46.644433593749994,80.30034179687507],[47.89580078125002,80.52905273437503],[49.087792968749994,80.515771484375],[49.24433593750004,80.82138671875],[50.278125,80.92724609374997]]],[[[80.02666015625007,80.84814453125003],[79.09853515625005,80.81206054687505],[79.21738281250012,80.96035156249997],[80.27958984375007,80.94980468750003],[80.02666015625007,80.84814453125003]]],[[[61.1408203125001,80.95034179687497],[60.0783203125001,80.99916992187497],[61.45742187499999,81.10395507812501],[61.1408203125001,80.95034179687497]]],[[[54.71894531250004,81.11596679687497],[56.47226562500006,80.99824218749995],[57.58037109375002,80.75546874999998],[55.88339843750006,80.62841796875003],[54.66816406250004,80.73867187500002],[54.04541015624997,80.87197265625],[54.71894531250004,81.11596679687497]]],[[[58.62236328125002,81.04165039062502],[58.930566406249994,80.83168945312497],[58.28564453124997,80.76489257812503],[57.21093749999997,81.01708984374997],[58.04951171875004,81.11845703125002],[58.62236328125002,81.04165039062502]]],[[[63.37382812500002,80.70009765624997],[62.59257812500002,80.85302734375006],[64.80205078125002,81.197265625],[65.43740234375005,80.93071289062507],[63.37382812500002,80.70009765624997]]],[[[91.56718750000007,81.14121093750003],[91.2228515625001,81.063818359375],[89.90117187500002,81.17070312500002],[91.56718750000007,81.14121093750003]]],[[[96.52656250000004,81.0755859375],[97.86992187500007,80.76328125000006],[97.02539062499997,80.53554687500002],[97.29843750000006,80.27275390625005],[93.6546875,80.009619140625],[91.52382812500005,80.35854492187502],[93.2625,80.79125976562497],[92.59257812500007,80.780859375],[92.7103515625,80.87216796875003],[95.1595703125,81.27099609375003],[95.80068359375005,81.28046874999998],[96.52656250000004,81.0755859375]]],[[[57.81025390625004,81.54604492187502],[58.563867187499994,81.41840820312504],[57.858691406250074,81.36806640625],[57.76972656250004,81.16972656249999],[55.71669921875005,81.1884765625],[55.46601562500004,81.31118164062502],[57.81025390625004,81.54604492187502]]],[[[63.65097656250006,81.60932617187501],[62.10644531249997,81.679345703125],[63.709570312500006,81.68730468750002],[63.65097656250006,81.60932617187501]]],[[[58.29541015625003,81.715185546875],[58.13457031250002,81.82797851562498],[59.261816406250006,81.85419921874998],[59.35644531250003,81.75898437499995],[58.29541015625003,81.715185546875]]]]},"properties":{"name":"Russia","childNum":73}},{"geometry":{"type":"Polygon","coordinates":[[[30.50996093750001,-1.067285156250009],[30.47705078125,-1.0830078125],[30.47021484375,-1.131152343750003],[30.508105468750017,-1.208203125000011],[30.631933593750006,-1.367480468750003],[30.710742187500017,-1.396777343750003],[30.76220703125,-1.458691406250011],[30.812597656250006,-1.563085937500006],[30.8765625,-2.143359375],[30.85498046875,-2.265429687500003],[30.828710937500006,-2.338476562500006],[30.7625,-2.371679687500006],[30.71484375,-2.363476562500011],[30.656640625000023,-2.373828125],[30.593359375,-2.396777343750003],[30.553613281250023,-2.400097656250011],[30.408496093750017,-2.31298828125],[30.117285156250006,-2.416601562500006],[29.93017578125,-2.339550781250011],[29.8681640625,-2.71640625],[29.698046875000017,-2.794726562500003],[29.390234375,-2.80859375],[29.10205078125,-2.595703125],[29.01435546875001,-2.72021484375],[28.893945312500023,-2.635058593750003],[28.876367187500023,-2.400292968750009],[29.13154296875001,-2.195117187500003],[29.196582031250017,-1.719921875000011],[29.576953125000017,-1.387890625000011],[29.82539062500001,-1.335546875],[29.930078125000023,-1.469921875000011],[30.360253906250023,-1.074609375],[30.41230468750001,-1.063085937500006],[30.46992187500001,-1.066015625],[30.50996093750001,-1.067285156250009]]]},"properties":{"name":"Rwanda","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[41.98769531250005,16.715625],[42.059960937499994,16.803515625000017],[42.15781250000006,16.570703125000023],[41.80156250000002,16.778759765624955],[41.86044921875006,17.002539062499977],[41.98769531250005,16.715625]]],[[[46.53144531250004,29.09624023437499],[47.433203125,28.989550781250017],[47.671289062499994,28.53315429687504],[48.442480468750006,28.542919921874983],[48.80898437499999,27.895898437499966],[48.797167968750074,27.72431640625001],[49.2375,27.49272460937499],[49.17509765625002,27.43764648437505],[49.40527343749997,27.18095703124996],[50.149804687499994,26.66264648437499],[50.00810546875002,26.678515625000017],[50.21386718750003,26.30849609375005],[50.15546875000004,26.100537109374955],[50.03164062499999,26.11098632812505],[50.55791015625002,25.086669921875],[50.66689453125005,24.96381835937501],[50.72558593749997,24.869384765625057],[50.80439453125004,24.789257812499983],[50.928320312500006,24.595117187500023],[50.96601562500004,24.573925781249983],[51.022753906250074,24.56523437499999],[51.09335937500006,24.564648437499955],[51.178027343750074,24.586718750000017],[51.26796875,24.607226562500017],[51.33847656250006,24.564355468749994],[51.41123046875006,24.570800781250057],[51.30986328125002,24.340380859375017],[51.56835937500003,24.286181640625074],[51.592578125000074,24.07885742187503],[52.55507812500005,22.932812499999955],[55.104296875000074,22.621484375000023],[55.185839843750074,22.7041015625],[55.64101562499999,22.001855468749994],[54.97734375000002,19.995947265625006],[51.977636718750006,18.996142578125074],[49.04199218750003,18.58178710937503],[48.17216796875002,18.156933593749983],[47.57958984374997,17.448339843750034],[47.44179687499999,17.111865234375045],[47.14355468749997,16.946679687499966],[46.97568359375006,16.953466796875034],[46.72763671875006,17.26557617187501],[45.5353515625001,17.30205078124999],[45.14804687500006,17.427441406249955],[43.91699218749997,17.32470703124997],[43.41796875000003,17.516259765625023],[43.19091796875003,17.359375],[43.16503906249997,16.689404296874955],[42.79931640624997,16.37177734375001],[42.29394531249997,17.434960937499966],[41.75,17.88574218749997],[41.22949218750003,18.678417968749983],[40.75917968750005,19.755468750000034],[40.080664062500006,20.265917968750017],[39.728320312500074,20.390332031249955],[39.27607421875004,20.973974609375034],[39.093554687500074,21.31035156249999],[39.14707031250006,21.518994140624955],[38.98789062500006,21.88173828125005],[39.06201171874997,22.592187500000023],[38.46416015625002,23.71186523437504],[37.91972656250002,24.185400390625063],[37.54306640625006,24.291650390625023],[37.18085937500004,24.82001953125001],[37.26630859375004,24.960058593750034],[37.14882812499999,25.291113281249977],[35.18046875000002,28.03486328125004],[34.722070312499994,28.130664062500017],[34.625,28.064501953125017],[34.95078125,29.353515625],[36.068457031250006,29.200537109375006],[36.28281250000006,29.355371093750023],[36.47607421874997,29.49511718749997],[36.59179687500003,29.666113281250006],[36.703906250000074,29.831640624999977],[36.75527343750005,29.86601562499996],[37.46923828125003,29.995068359374955],[37.49072265625003,30.01171874999997],[37.55361328125005,30.14458007812496],[37.63359375000002,30.313281250000045],[37.64990234374997,30.330957031249994],[37.669726562500074,30.34814453125003],[37.862890625,30.44262695312503],[37.98007812500006,30.5],[37.47900390624997,31.007763671874955],[37.10527343750002,31.35517578125004],[36.95859375000006,31.491503906250017],[37.215625,31.55610351562501],[37.49335937500004,31.625878906250023],[38.111425781250006,31.78115234375005],[38.37548828124997,31.84746093749996],[38.962304687499994,31.99492187499999],[38.99707031249997,32.00747070312505],[39.145410156249994,32.12451171875],[39.36865234374997,32.09174804687498],[39.70410156250003,32.04252929687499],[40.02783203124997,31.995019531249994],[40.3693359375001,31.93896484375003],[40.47890625000005,31.89335937499999],[42.07441406250004,31.08037109374999],[43.77373046875002,29.84921875],[44.71650390625004,29.19360351562503],[46.35644531250003,29.06367187500001],[46.53144531250004,29.09624023437499]]]]},"properties":{"name":"Saudi Arabia","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[36.87138671875002,21.996728515624994],[36.92695312500001,21.58652343749999],[37.25859375000002,21.108544921874994],[37.25722656250002,21.03940429687499],[37.15058593750001,21.103759765625],[37.14111328125,20.98178710937499],[37.19316406250002,20.12070312499999],[37.471289062500006,18.820117187500003],[38.609472656250006,18.005078125],[38.422460937500006,17.823925781249997],[38.39716796875001,17.778369140625003],[38.38554687500002,17.751269531250003],[38.37373046875001,17.717333984375003],[38.34736328125001,17.68359375],[38.28984375000002,17.637011718750003],[38.26728515625001,17.61669921875],[38.253515625,17.584765625],[37.78242187500001,17.4580078125],[37.547460937500006,17.324121093749994],[37.51015625000002,17.288134765625003],[37.45292968750002,17.108691406250003],[37.41103515625002,17.06171875],[37.24882812500002,17.056884765625],[37.16953125,17.04140625],[37.0615234375,17.061279296875],[37.00898437500001,17.058886718750003],[36.995214843750006,17.020556640625003],[36.97578125000001,16.86655273437499],[36.97871093750001,16.800585937500003],[36.887792968750006,16.624658203124994],[36.91376953125001,16.296191406250003],[36.566015625,15.362109375],[36.4267578125,15.132080078125],[36.44814453125002,14.940087890624994],[36.470800781250006,14.736474609374994],[36.52431640625002,14.2568359375],[36.12519531250001,12.75703125],[35.67021484375002,12.623730468749997],[35.1123046875,11.816552734374994],[34.93144531250002,10.864794921874989],[34.77128906250002,10.746191406249991],[34.571875,10.880175781249989],[34.34394531250001,10.658642578124997],[34.31123046875001,10.190869140624997],[34.078125,9.461523437499991],[33.87148437500002,9.506152343749989],[33.96328125000002,9.861767578124997],[33.90703125000002,10.181445312499989],[33.13007812500001,10.745947265624991],[33.073339843750006,11.606103515624994],[33.199316406250006,12.21728515625],[32.721875,12.223095703124997],[32.73671875000002,12.009667968749994],[32.072265625,12.006738281249994],[32.338476562500006,11.710107421874994],[32.42080078125002,11.089111328125],[31.224902343750017,9.799267578124997],[30.75537109375,9.731201171875],[30.003027343750006,10.277392578124989],[29.60546875,10.065087890624994],[29.47314453125,9.768603515624989],[28.979589843750006,9.594189453124997],[28.844531250000017,9.326074218749994],[28.048925781250006,9.32861328125],[27.880859375,9.601611328124989],[27.07421875,9.613818359374989],[26.65869140625,9.484130859375],[25.91914062500001,10.169335937499994],[25.858203125000017,10.406494140625],[25.211718750000017,10.329931640624991],[25.066992187500006,10.293798828124991],[24.785253906250006,9.774658203125],[24.53193359375001,8.886914062499997],[24.147363281250023,8.665625],[23.53730468750001,8.815820312499994],[23.46826171875,9.11474609375],[23.62265625,9.340625],[23.646289062500017,9.822900390624994],[22.86005859375001,10.919677734375],[22.922656250000017,11.344873046874994],[22.591113281250017,11.579882812499989],[22.580957031250023,11.990136718749994],[22.472460937500017,12.067773437499994],[22.352343750000017,12.660449218749989],[21.928125,12.678125],[21.825292968750006,12.79052734375],[22.228125,13.32958984375],[22.1064453125,13.7998046875],[22.53857421875,14.161865234375],[22.38154296875001,14.550488281249997],[22.6708984375,14.722460937500003],[22.93232421875001,15.162109375],[22.933886718750017,15.533105468749994],[23.10517578125001,15.702539062499994],[23.970800781250006,15.721533203124991],[23.980273437500017,19.496630859375003],[23.980273437500017,19.99594726562499],[24.9794921875,20.002587890624994],[24.980273437500017,21.995849609375],[28.036425781250017,21.995361328125],[31.092675781250023,21.994873046875],[31.260644531250023,22.00229492187499],[31.400292968750023,22.202441406250003],[31.486132812500017,22.14780273437499],[31.434472656250023,21.995849609375],[36.87138671875002,21.996728515624994]]]},"properties":{"name":"Sudan","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[34.078125,9.461523437499991],[34.07275390625,8.545263671874991],[33.95332031250001,8.443505859374994],[33.28105468750002,8.437255859375],[32.99892578125002,7.899511718749991],[33.902441406250006,7.509521484375],[34.06425781250002,7.225732421874994],[34.71064453125001,6.660302734374994],[34.98359375000001,5.858300781249994],[35.26835937500002,5.492285156249991],[35.08447265625,5.311865234374991],[34.87832031250002,5.109570312499997],[34.63984375000001,4.87548828125],[34.38017578125002,4.620654296874989],[34.176855468750006,4.419091796874994],[33.97607421875,4.22021484375],[33.74160156250002,3.985253906249994],[33.568457031250006,3.81171875],[33.489355468750006,3.755078125],[32.99726562500001,3.880175781249989],[32.33574218750002,3.706201171874994],[32.13593750000001,3.519726562499997],[31.79804687500001,3.802636718749994],[31.547167968750017,3.677587890624991],[31.15234375,3.785595703124997],[30.83857421875001,3.49072265625],[30.757226562500023,3.62421875],[30.586718750000017,3.62421875],[30.50830078125,3.835693359375],[30.194921875,3.98193359375],[29.676855468750006,4.5869140625],[29.469628906250023,4.61181640625],[29.224902343750017,4.391894531249989],[28.72705078125,4.504980468749991],[28.427539062500017,4.324169921874997],[28.19208984375001,4.350244140624994],[27.7880859375,4.644677734374994],[27.4033203125,5.109179687499989],[27.143945312500023,5.722949218749989],[26.514257812500006,6.069238281249994],[26.30859375,6.455322265625],[26.36181640625,6.635302734374989],[25.27890625,7.427490234375],[25.18134765625001,7.557226562499991],[25.20039062500001,7.807910156249989],[24.853320312500017,8.137548828124991],[24.291406250000023,8.29140625],[24.147363281250023,8.665625],[24.53193359375001,8.886914062499997],[24.785253906250006,9.774658203125],[25.066992187500006,10.293798828124991],[25.211718750000017,10.329931640624991],[25.858203125000017,10.406494140625],[25.91914062500001,10.169335937499994],[26.65869140625,9.484130859375],[27.07421875,9.613818359374989],[27.880859375,9.601611328124989],[28.048925781250006,9.32861328125],[28.844531250000017,9.326074218749994],[28.979589843750006,9.594189453124997],[29.47314453125,9.768603515624989],[29.60546875,10.065087890624994],[30.003027343750006,10.277392578124989],[30.75537109375,9.731201171875],[31.224902343750017,9.799267578124997],[32.42080078125002,11.089111328125],[32.338476562500006,11.710107421874994],[32.072265625,12.006738281249994],[32.73671875000002,12.009667968749994],[32.721875,12.223095703124997],[33.199316406250006,12.21728515625],[33.073339843750006,11.606103515624994],[33.13007812500001,10.745947265624991],[33.90703125000002,10.181445312499989],[33.96328125000002,9.861767578124997],[33.87148437500002,9.506152343749989],[34.078125,9.461523437499991]]]},"properties":{"name":"S. Sudan","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-12.280615234374977,14.809033203124997],[-12.228417968749994,14.45859375],[-12.019189453124994,14.206494140624997],[-11.960888671874983,13.875292968750003],[-12.05419921875,13.633056640625],[-11.831689453124994,13.315820312499994],[-11.634960937499983,13.369873046875],[-11.390380859375,12.941992187499991],[-11.389404296875,12.404394531249991],[-12.399072265624994,12.340087890625],[-12.930712890624989,12.532275390624989],[-13.061279296875,12.489990234375],[-13.082910156249994,12.633544921875],[-13.729248046875,12.673925781249991],[-14.06484375,12.67529296875],[-14.349218749999977,12.676416015624994],[-15.196093749999989,12.679931640625],[-15.3779296875,12.588964843749991],[-15.574804687499977,12.490380859374994],[-15.839550781249983,12.43789062499999],[-16.144189453124994,12.45742187499999],[-16.24150390624999,12.443310546874997],[-16.41630859374999,12.36767578125],[-16.521337890624977,12.3486328125],[-16.656933593749983,12.364355468749991],[-16.711816406249994,12.354833984374991],[-16.76030273437499,12.52578125],[-16.44287109375,12.609472656249991],[-16.59765625,12.715283203124997],[-16.743896484375,12.58544921875],[-16.763330078124994,13.064160156249997],[-16.648779296874977,13.154150390624991],[-15.834277343749989,13.156445312499997],[-15.814404296874983,13.325146484374997],[-15.286230468749977,13.39599609375],[-15.151123046875,13.556494140624991],[-14.246777343749983,13.23583984375],[-13.826708984374989,13.4078125],[-13.977392578124977,13.54345703125],[-14.405468749999983,13.503710937500003],[-15.108349609374983,13.81210937499999],[-15.426855468749977,13.727001953124997],[-15.509667968749994,13.586230468750003],[-16.56230468749999,13.587304687499994],[-16.766943359374977,13.904931640624994],[-16.618115234374983,14.04052734375],[-16.791748046875,14.004150390625],[-17.168066406249977,14.640625],[-17.345800781249977,14.729296875],[-17.445019531249983,14.651611328125],[-17.53564453125,14.755126953125],[-17.147167968749983,14.922021484374994],[-16.843408203124994,15.293994140625003],[-16.570751953124983,15.734423828125003],[-16.535253906249977,15.83837890625],[-16.502050781249977,15.917333984374991],[-16.480078124999977,16.097216796875003],[-16.441015624999977,16.204541015624997],[-16.239013671875,16.531298828125003],[-15.768212890624994,16.485107421875],[-14.990625,16.676904296874994],[-14.300097656249989,16.580273437499997],[-13.868457031249989,16.148144531249997],[-13.756640624999989,16.172509765624994],[-13.40966796875,16.05917968749999],[-13.105273437499989,15.57177734375],[-12.735253906249994,15.13125],[-12.40869140625,14.889013671874991],[-12.280615234374977,14.809033203124997]]]},"properties":{"name":"Senegal","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[103.9697265625,1.331445312499994],[103.65019531249999,1.325537109374991],[103.81796875000003,1.447070312499989],[103.9697265625,1.331445312499994]]]},"properties":{"name":"Singapore","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-37.10332031249996,-54.065625],[-36.70380859375001,-54.10810546874999],[-36.64741210937498,-54.26230468749996],[-36.32646484374996,-54.251171875],[-35.79858398437497,-54.76347656250002],[-36.08549804687499,-54.86679687500001],[-36.885986328125,-54.33945312499996],[-37.63090820312496,-54.16748046875001],[-37.61884765625001,-54.04208984375004],[-38.017431640625034,-54.008007812500026],[-37.10332031249996,-54.065625]]]},"properties":{"name":"S. Geo. and S. Sandw. Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-5.692138671874972,-15.997753906249997],[-5.782519531250017,-16.00400390625002],[-5.707861328124977,-15.90615234374998],[-5.692138671874972,-15.997753906249997]]]},"properties":{"name":"Saint Helena","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[160.57626953125006,-11.797851562500028],[160.44306640625004,-11.814941406249957],[159.98632812499997,-11.494726562500006],[160.57626953125006,-11.797851562500028]]],[[[166.13320312500005,-10.757812499999972],[165.90400390625004,-10.851464843749966],[165.79101562500003,-10.784765624999963],[166.02382812500005,-10.6611328125],[166.13320312500005,-10.757812499999972]]],[[[161.71533203124997,-10.387304687499991],[162.10537109375005,-10.45380859375004],[162.37333984375002,-10.823242187499986],[161.78681640625004,-10.716894531249991],[161.53789062500007,-10.566406249999972],[161.4870117187501,-10.361425781249963],[161.29394531250003,-10.326464843750031],[161.30478515625012,-10.204394531250031],[161.71533203124997,-10.387304687499991]]],[[[161.54785156249997,-9.625683593749997],[161.55380859375012,-9.769726562500026],[161.40976562500006,-9.681640625000028],[161.36416015625,-9.353417968750037],[161.54785156249997,-9.625683593749997]]],[[[159.75039062500005,-9.272656250000011],[159.97060546875,-9.433300781249969],[160.35458984375006,-9.421582031249983],[160.81894531250006,-9.862792968749986],[160.64921875000002,-9.92861328124998],[159.80273437499997,-9.763476562500003],[159.61230468749997,-9.470703124999943],[159.62558593750012,-9.311230468749969],[159.75039062500005,-9.272656250000011]]],[[[160.1681640625001,-8.995507812500037],[160.40751953125007,-9.140332031249969],[160.10537109375,-9.080761718749997],[160.1681640625001,-8.995507812500037]]],[[[159.18857421875006,-9.123535156250014],[159.03632812500004,-9.075],[159.12978515625,-8.99306640624998],[159.22841796875005,-9.029980468749955],[159.18857421875006,-9.123535156250014]]],[[[158.10791015625003,-8.684179687500034],[157.93759765625006,-8.73642578125002],[157.90927734375006,-8.565625],[158.10546874999997,-8.536816406250026],[158.10791015625003,-8.684179687500034]]],[[[157.38896484375002,-8.713476562499963],[157.2123046875,-8.565039062500006],[157.37949218750012,-8.420898437499943],[157.38896484375002,-8.713476562499963]]],[[[160.7494140625,-8.313964843750014],[160.99765625000006,-8.612011718749983],[160.94433593750003,-8.799023437499983],[161.15869140624997,-8.961816406250009],[161.36738281250004,-9.61123046874998],[160.77207031250012,-8.963867187499986],[160.7140625000001,-8.539257812499997],[160.59042968750006,-8.372753906249997],[160.7494140625,-8.313964843750014]]],[[[157.76347656250002,-8.242187499999957],[157.89843749999997,-8.506347656249943],[157.81933593750003,-8.612011718749983],[157.58789062500003,-8.445410156249963],[157.5580078125,-8.269921875],[157.30244140625004,-8.33330078124996],[157.21757812500002,-8.262792968749977],[157.490625,-7.965722656250037],[157.76347656250002,-8.242187499999957]]],[[[157.171875,-8.108105468749997],[156.95830078125002,-8.014355468749997],[157.02412109375004,-7.867871093749997],[157.18613281250006,-7.941210937500017],[157.171875,-8.108105468749997]]],[[[156.687890625,-7.92304687500004],[156.5109375000001,-7.707812499999974],[156.5609375,-7.574023437499989],[156.80908203124997,-7.722851562500026],[156.687890625,-7.92304687500004]]],[[[159.8791015625001,-8.534277343749949],[158.9440429687501,-8.04072265625004],[158.457421875,-7.544726562499974],[158.734375,-7.604296875000031],[159.43144531250002,-8.029003906249955],[159.84306640625002,-8.326953124999989],[159.8791015625001,-8.534277343749949]]],[[[155.83984374999997,-7.097167968750014],[155.67753906250002,-7.08896484375002],[155.73896484375004,-6.972949218750017],[155.83984374999997,-7.097167968750014]]],[[[157.48671875000005,-7.330371093750003],[157.44130859375,-7.425683593749966],[157.10156249999997,-7.323632812499966],[156.4525390625,-6.638281249999963],[157.03027343750003,-6.891992187499952],[157.19335937499997,-7.160351562499997],[157.48671875000005,-7.330371093750003]]]]},"properties":{"name":"Solomon Is.","childNum":16}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-12.526074218749926,7.436328125000017],[-12.951611328124926,7.570849609374989],[-12.615234374999972,7.63720703125],[-12.5125,7.582421875000037],[-12.526074218749926,7.436328125000017]]],[[[-10.758593749999989,9.385351562499991],[-10.682714843750006,9.289355468749974],[-10.687646484374937,9.261132812499994],[-10.749951171874926,9.12236328124996],[-10.747021484374955,9.095263671875045],[-10.726855468749932,9.081689453125023],[-10.615966796875,9.059179687499977],[-10.500537109375017,8.687548828125017],[-10.677343749999977,8.400585937499997],[-10.712109374999955,8.335253906250017],[-10.686962890624983,8.321679687500009],[-10.652636718749989,8.330273437499983],[-10.604003906249943,8.319482421874994],[-10.55771484374992,8.315673828125028],[-10.496435546874977,8.362109374999974],[-10.394433593749966,8.480957031250028],[-10.360058593749983,8.49550781249998],[-10.283203124999972,8.48515625],[-10.285742187499949,8.454101562499986],[-10.314648437499983,8.310839843750017],[-10.359814453124926,8.187939453125026],[-10.570849609374932,8.071142578125034],[-10.6474609375,7.759375],[-10.878076171874994,7.538232421874994],[-11.267675781249977,7.232617187499997],[-11.507519531249983,6.906542968750003],[-12.48564453124996,7.386279296875045],[-12.480273437499932,7.75327148437502],[-12.697607421874977,7.715869140625045],[-12.850878906249932,7.818701171875034],[-12.956933593749966,8.145312500000045],[-13.148974609374989,8.214599609375043],[-13.272753906249989,8.429736328124989],[-13.085009765624932,8.42475585937504],[-12.894091796874932,8.62978515624998],[-13.181835937499955,8.576904296875043],[-13.206933593749994,8.843115234375006],[-13.059472656249966,8.881152343750031],[-13.292675781249955,9.04921875],[-13.077294921874966,9.069628906249974],[-12.958789062499989,9.263330078124994],[-12.755859374999943,9.373583984374989],[-12.557861328125,9.704980468749994],[-12.427978515625028,9.898144531250011],[-12.142333984375,9.87539062499999],[-11.911083984374955,9.993017578124977],[-11.273632812499955,9.996533203124983],[-11.205664062499949,9.977734374999969],[-11.180859374999955,9.925341796875045],[-11.047460937499977,9.786328125000054],[-10.758593749999989,9.385351562499991]]]]},"properties":{"name":"Sierra Leone","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-89.36259765624999,14.416015625],[-89.1205078125,14.370214843749991],[-88.51254882812499,13.978955078124997],[-88.504345703125,13.964208984374991],[-88.49765625,13.904541015625],[-88.482666015625,13.854248046875],[-88.44912109375,13.850976562499994],[-88.40849609374999,13.87539062499999],[-88.27622070312499,13.942675781250003],[-88.151025390625,13.987353515625003],[-87.99101562499999,13.879638671875],[-87.8919921875,13.894970703124997],[-87.80224609375,13.889990234374991],[-87.7314453125,13.841064453125],[-87.71533203125,13.812695312499997],[-87.781884765625,13.521386718749994],[-87.930859375,13.1806640625],[-88.68564453124999,13.281494140625],[-88.51201171874999,13.183935546874991],[-89.80419921875,13.560107421875003],[-90.09521484375,13.736523437499997],[-90.04814453124999,13.904052734375],[-89.54716796874999,14.241259765625003],[-89.5736328125,14.390087890624997],[-89.36259765624999,14.416015625]]]},"properties":{"name":"El Salvador","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-56.26708984374997,46.838476562500034],[-56.38476562499994,46.81943359375006],[-56.36464843749994,47.09897460937498],[-56.26708984374997,46.838476562500034]]]},"properties":{"name":"St. Pierre and Miquelon","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[6.659960937499989,0.120654296874989],[6.51972656250004,0.066308593750023],[6.468164062499994,0.22734375],[6.68691406250008,0.404394531249977],[6.75,0.24345703124996],[6.659960937499989,0.120654296874989]]],[[[7.423828125,1.567724609375006],[7.330664062500034,1.603369140624991],[7.414453125000051,1.699121093750037],[7.423828125,1.567724609375006]]]]},"properties":{"name":"São Tomé and Principe","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-54.03422851562499,3.62939453125],[-54.00957031249999,3.448535156249989],[-54.06318359375,3.353320312499989],[-54.18803710937499,3.178759765624989],[-54.203125,3.13818359375],[-54.17070312499999,2.993603515624997],[-54.18808593749999,2.874853515624991],[-54.1955078125,2.81787109375],[-54.256738281249994,2.713720703124991],[-54.402001953124994,2.461523437499991],[-54.53593749999999,2.343310546874989],[-54.56840820312499,2.342578124999989],[-54.604736328125,2.335791015624991],[-54.61625976562499,2.326757812499991],[-54.661865234375,2.327539062499994],[-54.697412109374994,2.359814453124997],[-54.72221679687499,2.441650390625],[-54.87607421874999,2.450390625],[-54.92656249999999,2.497363281249989],[-54.968408203124994,2.54833984375],[-54.978662109374994,2.59765625],[-55.005810546875,2.59296875],[-55.0703125,2.54833984375],[-55.11411132812499,2.539208984374994],[-55.1876953125,2.547509765624994],[-55.286035156249994,2.499658203124994],[-55.343994140625,2.48876953125],[-55.38535156249999,2.440625],[-55.73056640624999,2.406152343749994],[-55.957470703125,2.520458984374997],[-55.99350585937499,2.497509765624997],[-56.02036132812499,2.392773437499997],[-56.0451171875,2.364404296874994],[-56.087792968749994,2.34130859375],[-56.12939453125,2.299511718749997],[-56.1376953125,2.259033203125],[-56.073632812499994,2.236767578124997],[-56.02006835937499,2.158154296874997],[-55.96196289062499,2.095117187499994],[-55.91533203124999,2.03955078125],[-55.921630859375,1.976660156249991],[-55.929638671875,1.8875],[-56.01992187499999,1.842236328124997],[-56.4828125,1.942138671875],[-56.704345703125,2.036474609374991],[-57.19736328124999,2.853271484375],[-57.303662109375,3.377099609374994],[-57.646728515625,3.39453125],[-58.05429687499999,4.101660156249991],[-57.84599609374999,4.668164062499997],[-57.91704101562499,4.820410156249991],[-57.711083984374994,4.991064453124991],[-57.331005859375,5.020166015624994],[-57.20981445312499,5.195410156249991],[-57.3185546875,5.335351562499994],[-57.194775390625,5.5484375],[-56.96982421874999,5.992871093749997],[-56.235595703125,5.885351562499991],[-55.897607421874994,5.699316406249991],[-55.909912109375,5.892626953124989],[-55.648339843749994,5.985888671874989],[-54.83369140625,5.988330078124989],[-54.05419921875,5.807910156249989],[-54.08046875,5.502246093749989],[-54.4796875,4.836523437499991],[-54.350732421874994,4.054101562499994],[-54.03422851562499,3.62939453125]]]},"properties":{"name":"Suriname","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[22.538671875,49.072705078125],[22.52412109375001,49.031396484374994],[22.389453125000017,48.873486328125],[22.295214843750017,48.685839843749996],[22.142871093750017,48.568505859374994],[22.1318359375,48.405322265624996],[21.766992187500023,48.3380859375],[21.45136718750001,48.55224609375],[20.490039062500017,48.526904296874996],[20.333789062500017,48.295556640624994],[19.95039062500001,48.146630859374994],[19.625390625000023,48.223095703125],[18.791894531250023,48.000292968749996],[18.72421875,47.787158203124996],[17.76191406250001,47.770166015624994],[17.147363281250023,48.00595703125],[16.86542968750001,48.3869140625],[16.953125,48.598828125],[17.135644531250023,48.841064453125],[17.75849609375001,48.888134765625],[18.0859375,49.06513671875],[18.160937500000017,49.257373046874996],[18.83222656250001,49.510791015624996],[19.1494140625,49.4],[19.44160156250001,49.597705078124996],[19.77392578125,49.37216796875],[19.756640625000017,49.204394531249996],[20.0576171875,49.181298828124994],[20.36298828125001,49.38525390625],[20.868457031250017,49.314697265625],[21.079394531250017,49.418261718749996],[21.6396484375,49.411962890625],[22.020117187500006,49.209521484374996],[22.473046875000023,49.081298828125],[22.538671875,49.072705078125]]]},"properties":{"name":"Slovakia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[16.516210937500006,46.499902343749994],[16.427636718750023,46.5244140625],[16.321191406250023,46.534619140625],[16.1064453125,46.382226562499994],[15.608984375,46.171923828124996],[15.592578125000017,46.139990234375],[15.596875,46.109228515625],[15.675585937500017,45.983691406249996],[15.652148437500017,45.862158203125],[15.277050781250011,45.7326171875],[15.353710937500011,45.659912109375],[15.283593750000023,45.5796875],[15.291210937500011,45.541552734374996],[15.32666015625,45.502294921875],[15.339453125,45.467041015625],[15.242089843750023,45.44140625],[15.110449218750006,45.45078125],[14.95458984375,45.499902343749994],[14.793066406250006,45.47822265625],[14.649511718750006,45.571484375],[14.591796875,45.651269531249994],[14.56884765625,45.6572265625],[14.548448660714302,45.628388671875],[14.507586495535731,45.59039341517857],[14.42734375,45.505761718749994],[14.369921875000017,45.4814453125],[13.878710937500017,45.428369140624994],[13.577929687500017,45.516894531249996],[13.8447265625,45.59287109375],[13.831152343750006,45.680419921875],[13.663476562500023,45.7919921875],[13.6005859375,45.979785156249996],[13.509179687500023,45.973779296874994],[13.487695312500023,45.987109375],[13.480273437500017,46.009228515625],[13.486425781250006,46.03955078125],[13.548046875000011,46.089111328125],[13.616601562500023,46.133105468749996],[13.634960937500011,46.157763671874996],[13.632519531250011,46.177050781249996],[13.420996093750006,46.212304687499994],[13.399511718750006,46.317529296874994],[13.563281250000017,46.415087890624996],[13.637109375000023,46.448535156249996],[13.6796875,46.462890625],[13.7,46.520263671875],[14.5498046875,46.399707031249996],[14.893261718750011,46.605908203125],[15.957617187500006,46.677636718749994],[16.093066406250017,46.86328125],[16.283593750000023,46.857275390625],[16.516210937500006,46.499902343749994]]]},"properties":{"name":"Slovenia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[16.52851562500001,56.29052734375],[16.431640625,56.24375],[16.41230468750004,56.568994140624994],[17.02539062499997,57.345068359375006],[16.52851562500001,56.29052734375]]],[[[19.076464843750045,57.8359375],[18.813867187500023,57.70620117187502],[18.907910156250068,57.39833984375002],[18.146386718749994,56.920507812500006],[18.285351562500068,57.08320312500001],[18.136523437500045,57.55664062500003],[18.53740234374999,57.83056640625006],[18.90058593750001,57.91547851562504],[19.076464843750045,57.8359375]]],[[[19.156347656250063,57.92260742187497],[19.086523437500034,57.86499023437506],[19.134863281250034,57.98134765625002],[19.331445312500023,57.962890625],[19.156347656250063,57.92260742187497]]],[[[24.15546875000004,65.80527343750006],[23.102343750000074,65.73535156250003],[22.400976562500006,65.86210937499999],[22.254003906250006,65.59755859375002],[21.565527343750063,65.40810546874997],[21.609179687500074,65.261376953125],[21.410351562500068,65.31743164062505],[21.57392578125001,65.12578124999999],[21.138183593750057,64.80869140625006],[21.519628906250034,64.46308593749998],[20.76269531250003,63.86782226562505],[18.60644531250003,63.17827148437499],[18.31289062500008,62.996386718750045],[18.46308593750004,62.895849609375006],[18.170019531250034,62.789355468750074],[17.906640625000023,62.88676757812502],[18.037304687500068,62.60053710937498],[17.834472656250057,62.50273437500002],[17.410253906250063,62.508398437500034],[17.633691406249994,62.23300781250006],[17.374511718750057,61.866308593750034],[17.465429687500006,61.68447265625005],[17.196386718750006,61.72456054687504],[17.13076171875005,61.57573242187499],[17.25097656250003,60.70078125],[17.6611328125,60.53515625000003],[17.955761718750068,60.589794921874955],[18.85273437500001,60.02587890625],[18.970507812500045,59.757226562499994],[17.964257812500023,59.359375],[18.56025390625004,59.39448242187498],[18.285351562500068,59.109375],[16.978125,58.65415039062506],[16.214257812500023,58.636669921874955],[16.92382812499997,58.49257812499999],[16.651953125,58.43432617187503],[16.65224609375008,57.50068359374998],[16.348730468750063,56.70927734374996],[15.826660156250028,56.12495117187501],[14.782031250000017,56.16191406250002],[14.754785156250051,56.03315429687498],[14.401953125000034,55.97675781250004],[14.21503906250004,55.83261718749998],[14.341699218749994,55.52773437500002],[14.17373046875008,55.396630859374966],[12.885839843750063,55.41137695312506],[12.973925781250074,55.748144531250006],[12.471191406250057,56.29052734375],[12.801660156250051,56.263916015625],[12.65644531250004,56.44057617187502],[12.857421875000028,56.45239257812503],[12.883691406250051,56.61772460937496],[12.421484375000034,56.906396484374966],[11.449316406250063,58.118359374999955],[11.43154296875008,58.339990234374994],[11.24824218750004,58.369140625],[11.14716796875004,58.98862304687498],[11.19580078125,59.07827148437505],[11.388281250000063,59.036523437499966],[11.470703125000057,58.909521484375034],[11.64277343750004,58.92607421875002],[11.798144531250074,59.28989257812498],[11.680761718750034,59.59228515625003],[12.486132812500074,60.10678710937506],[12.588671874999989,60.450732421875045],[12.29414062500004,61.00268554687506],[12.706054687500028,61.059863281250074],[12.88076171875008,61.35229492187506],[12.155371093750006,61.720751953125045],[12.303515625000074,62.28559570312501],[11.999902343750051,63.29169921875001],[12.175195312500051,63.595947265625],[12.792773437500017,64],[13.203515625000023,64.07509765625],[13.960546875000063,64.01401367187498],[14.141210937500006,64.17353515624998],[14.077636718750028,64.464013671875],[13.650292968750023,64.58154296874997],[14.47968750000004,65.30146484374998],[14.543261718750045,66.12934570312498],[15.483789062500051,66.30595703124999],[15.422949218750006,66.48984374999998],[16.40351562500004,67.05498046875002],[16.12744140625,67.42583007812507],[16.783593750000023,67.89501953125],[17.324609375000023,68.10380859374999],[17.91669921875001,67.96489257812502],[18.303027343750045,68.55541992187497],[19.969824218750063,68.35639648437501],[20.348046875000023,68.84873046875003],[20.116699218750057,69.02089843750005],[20.622167968750006,69.036865234375],[21.99746093750005,68.52060546874998],[22.854101562500034,68.36733398437502],[23.63886718750004,67.95439453125002],[23.454882812500045,67.46025390625007],[23.733593750000068,67.42290039062499],[23.64150390625005,67.12939453124997],[23.988574218750045,66.81054687500003],[23.700292968750034,66.25263671874998],[24.15546875000004,65.80527343750006]]]]},"properties":{"name":"Sweden","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[31.9482421875,-25.957617187500006],[32.060546875,-26.018359375],[32.04140625000002,-26.28125],[32.10595703125,-26.52001953125],[32.112890625,-26.839453125],[32.02480468750002,-26.811132812500006],[31.994726562500006,-26.817480468750006],[31.967187500000023,-26.96064453125001],[31.946093750000017,-27.173632812500003],[31.958398437500023,-27.30585937500001],[31.742578125000023,-27.30996093750001],[31.469531250000017,-27.295507812500006],[31.274023437500006,-27.238378906250006],[31.063378906250023,-27.1123046875],[30.938085937500006,-26.915820312500003],[30.88330078125,-26.79238281250001],[30.806738281250006,-26.785253906250006],[30.794335937500023,-26.764257812500006],[30.803320312500006,-26.41347656250001],[31.08808593750001,-25.98066406250001],[31.207324218750017,-25.843359375],[31.33515625000001,-25.75556640625001],[31.382617187500017,-25.74296875],[31.415136718750006,-25.74658203125],[31.921679687500017,-25.96875],[31.9482421875,-25.957617187500006]]]},"properties":{"name":"Swaziland","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[55.54033203125002,-4.693066406250011],[55.54296875,-4.785546875],[55.383398437500006,-4.609277343750009],[55.45576171875001,-4.558789062500011],[55.54033203125002,-4.693066406250011]]]},"properties":{"name":"Seychelles","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[42.358984375,37.10859375],[41.78857421875,36.59716796875],[41.41679687500002,36.5146484375],[41.295996093750006,36.383349609374996],[41.354101562500006,35.640429687499996],[41.19472656250002,34.768994140625],[40.98701171875001,34.429052734375],[38.773535156250006,33.372216796874994],[36.818359375,32.317285156249994],[36.3720703125,32.3869140625],[35.78730468750001,32.734912109374996],[35.91347656250002,32.94960937499999],[35.869140625,33.43173828125],[36.03447265625002,33.58505859375],[35.98613281250002,33.75263671875],[36.36503906250002,33.83935546875],[36.27783203125,33.92529296875],[36.5849609375,34.221240234374996],[36.50439453125,34.432373046875],[36.32988281250002,34.499609375],[36.383886718750006,34.65791015625],[35.97626953125001,34.629199218749996],[35.902441406250006,35.420703125],[35.76445312500002,35.571582031249996],[35.83964843750002,35.84921875],[35.892675781250006,35.916552734374996],[35.96757812500002,35.910058593749994],[36.12734375000002,35.831445312499994],[36.15361328125002,35.833886718749994],[36.34755859375002,36.003515625],[36.37539062500002,36.171240234375],[36.63671875,36.233984375],[36.64140625000002,36.263525390625],[36.5375,36.45742187499999],[36.54667968750002,36.50634765625],[36.596875,36.7013671875],[36.62841796875,36.777685546875],[36.65859375000002,36.802539062499996],[36.77656250000001,36.79267578125],[36.94179687500002,36.7583984375],[36.9853515625,36.702392578125],[37.06621093750002,36.652636718749996],[37.43632812500002,36.643310546875],[37.523535156250006,36.6783203125],[37.7203125,36.743701171874996],[37.90664062500002,36.79462890625],[38.19169921875002,36.9015625],[38.7666015625,36.693115234375],[38.90644531250001,36.694677734375],[39.1083984375,36.680566406249994],[39.35664062500001,36.681591796875],[39.50146484375,36.70224609375],[39.6865234375,36.738623046875],[40.01640625000002,36.826074218749994],[40.705664062500006,37.097705078124996],[41.886816406250006,37.156396484374994],[42.05986328125002,37.2060546875],[42.16787109375002,37.288623046874996],[42.202734375,37.29726562499999],[42.24755859375,37.2822265625],[42.2685546875,37.2765625],[42.31289062500002,37.22958984375],[42.358984375,37.10859375]]]},"properties":{"name":"Syria","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-72.3328125,21.85136718749999],[-72.14433593750002,21.79272460937503],[-72.33544921874994,21.758007812499983],[-72.3328125,21.85136718749999]]]},"properties":{"name":"Turks and Caicos Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[23.980273437500017,19.496630859375003],[23.970800781250006,15.721533203124991],[23.10517578125001,15.702539062499994],[22.933886718750017,15.533105468749994],[22.93232421875001,15.162109375],[22.6708984375,14.722460937500003],[22.38154296875001,14.550488281249997],[22.53857421875,14.161865234375],[22.1064453125,13.7998046875],[22.228125,13.32958984375],[21.825292968750006,12.79052734375],[21.928125,12.678125],[22.352343750000017,12.660449218749989],[22.472460937500017,12.067773437499994],[22.580957031250023,11.990136718749994],[22.591113281250017,11.579882812499989],[22.922656250000017,11.344873046874994],[22.86005859375001,10.919677734375],[22.49384765625001,10.996240234374994],[21.771484375,10.642822265625],[21.682714843750006,10.289843749999989],[20.773242187500017,9.405664062499994],[20.342089843750017,9.127099609374994],[18.95625,8.938867187499994],[18.886035156250017,8.836035156249991],[19.108691406250017,8.656152343749994],[18.56416015625001,8.0458984375],[17.6494140625,7.98359375],[16.784765625,7.550976562499997],[16.545312500000023,7.865478515625],[16.37890625,7.683544921874997],[15.957617187500006,7.507568359375],[15.480078125,7.523779296874991],[15.5498046875,7.787890624999989],[15.1162109375,8.557324218749997],[14.332324218750017,9.20351562499999],[13.977246093750011,9.691552734374994],[14.243261718750006,9.979736328125],[15.654882812500006,10.0078125],[15.276074218750011,10.357373046874997],[15.132226562500023,10.648486328124989],[15.029882812500006,11.11367187499999],[15.08125,11.845507812499989],[14.847070312500023,12.502099609374994],[14.461718750000017,13.021777343749989],[14.244824218750011,13.07734375],[14.06396484375,13.07851562499999],[13.932324218750011,13.258496093749997],[13.606347656250023,13.70458984375],[13.505761718750023,14.134423828124994],[13.4482421875,14.380664062500003],[14.367968750000017,15.750146484374994],[15.474316406250011,16.908398437499997],[15.735058593750011,19.904052734375],[15.963183593750017,20.34619140625],[15.587109375000011,20.733300781249994],[15.607324218750023,20.954394531250003],[15.181835937500011,21.523388671874997],[14.97900390625,22.99619140624999],[15.984082031250011,23.445214843749994],[20.14765625000001,21.38925781249999],[23.980273437500017,19.496630859375003]]]},"properties":{"name":"Chad","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[0.900488281250006,10.993261718749991],[0.763378906250011,10.386669921874997],[1.330078125,9.996972656249994],[1.3857421875,9.361669921874991],[1.600195312500006,9.050048828125],[1.624707031250011,6.997314453125],[1.530957031250011,6.992431640625],[1.777929687500006,6.294628906249997],[1.62265625,6.216796875],[1.187207031250011,6.089404296874989],[0.736914062500006,6.452587890624997],[0.525585937500011,6.850927734374991],[0.634765625,7.353662109374994],[0.5,7.546875],[0.686328125000017,8.354882812499994],[0.37255859375,8.75927734375],[0.48876953125,8.851464843749994],[0.525683593750017,9.398486328124989],[0.2333984375,9.463525390624994],[0.342578125000017,9.604150390624994],[0.264550781250023,9.644726562499997],[0.380859375,10.291845703124991],[-0.08632812499999,10.673046875],[0.009423828125023,11.02099609375],[-0.068603515625,11.115625],[0.49267578125,10.954980468749994],[0.900488281250006,10.993261718749991]]]},"properties":{"name":"Togo","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[98.40908203125005,7.90205078125004],[98.2962890625,7.776074218750054],[98.32207031250007,8.166308593749974],[98.4349609375,8.085644531249969],[98.40908203125005,7.90205078125004]]],[[[100.070703125,9.58603515625002],[99.96240234375003,9.421630859375],[99.93955078125006,9.559960937500037],[100.070703125,9.58603515625002]]],[[[102.42675781250003,11.988720703125026],[102.30195312500004,11.98081054687502],[102.27744140625006,12.151855468750043],[102.42675781250003,11.988720703125026]]],[[[100.12246093750005,20.316650390625057],[100.11494140625004,20.257666015625034],[100.13974609375012,20.245410156250017],[100.31796875000006,20.38588867187505],[100.51953125000003,20.17792968750004],[100.39765625000004,19.756103515625],[100.51357421875005,19.553466796875],[101.21191406249997,19.54833984375003],[101.22080078125006,19.486621093750074],[101.19755859375007,19.327929687500074],[101.2863281250001,18.977148437500006],[101.04697265625012,18.441992187500063],[101.05058593750002,18.407031250000045],[101.1375,18.28686523437497],[101.14394531250005,18.14262695312499],[100.90849609375002,17.583886718750023],[100.95585937500002,17.541113281250006],[101.10517578125004,17.47954101562499],[101.16748046874997,17.49902343749997],[101.41367187500012,17.71875],[101.55507812500005,17.812353515625034],[101.56367187500004,17.82050781250001],[101.6875,17.889404296875],[101.77480468750005,18.03339843750004],[101.81865234375002,18.06464843750001],[101.87548828124997,18.046435546875017],[101.94746093750004,18.081494140624983],[102.03457031250005,18.169824218750023],[102.10146484375,18.210644531249983],[102.14824218750002,18.20385742187503],[102.35185546875002,18.045947265625017],[102.45878906250002,17.984619140625057],[102.55253906250007,17.96508789062497],[102.61679687500006,17.833349609375034],[102.66064453124997,17.817968750000034],[102.680078125,17.824121093750023],[103.05136718750006,18.02851562500001],[103.0912109375,18.13823242187499],[103.14853515625006,18.221728515625045],[103.19970703124997,18.259472656249983],[103.26318359374997,18.27846679687505],[103.27958984375002,18.304980468750017],[103.24892578125,18.338964843750034],[103.25175781250002,18.373486328124955],[103.2882812500001,18.408398437499955],[103.36699218750007,18.42333984374997],[103.48798828125004,18.418164062499983],[103.62968750000002,18.38256835937503],[103.79228515625002,18.316503906249977],[103.89882812500005,18.295312500000023],[103.949609375,18.31899414062505],[104.04873046875005,18.216699218749994],[104.19619140625005,17.988378906250006],[104.32265625,17.815820312500023],[104.428125,17.69897460937503],[104.7396484375,17.461669921875],[104.81601562500012,17.30029296874997],[104.75898437500004,17.0771484375],[104.7435546875,16.884375],[104.75058593750012,16.647558593750063],[104.81933593750003,16.46606445312503],[105.04716796875007,16.160253906249977],[105.14873046875007,16.09355468749999],[105.33066406250006,16.037890625000017],[105.40625,15.987451171875051],[105.39892578124997,15.829882812500017],[105.62207031250003,15.699951171875],[105.641015625,15.656542968750045],[105.6388671875001,15.585937500000057],[105.615625,15.488281250000057],[105.49042968750004,15.256591796875],[105.49042968750004,15.127587890625009],[105.5333984375001,15.041601562499991],[105.54667968750002,14.932470703124963],[105.52304687500012,14.843310546875003],[105.49736328125002,14.590673828124963],[105.47558593750003,14.530126953124977],[105.42265625000007,14.471630859375054],[105.34218750000005,14.416699218750054],[105.24365234375003,14.367871093750054],[105.1833007812501,14.346240234374989],[105.16914062500004,14.336083984374966],[105.12597656250003,14.280957031250011],[105.07412109375005,14.227441406250037],[104.77900390625004,14.427832031250006],[103.19941406250004,14.332617187499977],[102.90927734375006,14.136718750000028],[102.546875,13.585693359375043],[102.33632812500005,13.560302734375014],[102.49960937500012,12.669970703125003],[102.75566406250002,12.42626953125],[102.73662109375007,12.089794921875011],[102.93388671875002,11.706689453125037],[102.594140625,12.203027343749994],[102.54023437500004,12.109228515624977],[101.83574218750002,12.640380859375014],[100.89775390625007,12.653808593749986],[100.96269531250007,13.431982421874991],[100.60292968750005,13.568164062500017],[100.23564453125002,13.48447265625002],[99.99052734375007,13.243457031250031],[100.08994140625006,13.045654296874972],[99.96396484375006,12.690039062500006],[99.98906250000007,12.170800781249994],[99.16503906250003,10.319824218750028],[99.25390625000003,9.265234375000034],[99.83554687500012,9.288378906250031],[99.98955078125007,8.589208984374977],[100.129296875,8.428076171875006],[100.16347656250005,8.508398437500034],[100.27939453125006,8.268505859375011],[100.54521484375002,7.226904296874991],[100.43935546875005,7.280761718750043],[100.38037109375003,7.541503906250043],[100.28378906250006,7.551513671875043],[100.25664062500002,7.774902343749986],[100.16074218750012,7.599267578124994],[100.4235351562501,7.18784179687502],[101.01787109375002,6.860937500000034],[101.49794921875005,6.865283203125031],[102.10107421874997,6.242236328125031],[101.87363281250012,5.825292968749991],[101.67841796875004,5.778808593750028],[101.5560546875,5.907763671875003],[101.1139648437501,5.636767578125045],[100.98164062500004,5.771044921875045],[101.05351562500002,6.242578125],[100.87392578125,6.24541015624996],[100.75449218750012,6.460058593749991],[100.3454101562501,6.549902343750006],[100.26142578125004,6.682714843749963],[100.11914062499997,6.441992187500048],[99.69599609375004,6.87666015625004],[99.72031250000012,7.106201171875],[99.55302734375002,7.218798828125031],[99.59697265625002,7.355615234375009],[99.35859375000004,7.372216796875023],[99.26367187499997,7.619042968750037],[99.07763671874997,7.718066406250045],[99.05107421875002,7.887841796874994],[98.78867187500012,8.059814453125028],[98.703515625,8.256738281250009],[98.57919921875006,8.344287109374989],[98.42099609375006,8.17822265625],[98.30546875000007,8.226220703125009],[98.24179687500006,8.767871093750045],[98.70253906250005,10.19038085937504],[98.7572265625,10.660937499999974],[99.1901367187501,11.105273437499989],[99.61474609374997,11.781201171875026],[99.40507812500002,12.547900390625003],[99.12392578125,13.030761718750043],[99.13681640625006,13.716699218749994],[98.57001953125004,14.359912109375031],[98.20214843749997,14.97592773437502],[98.19101562500012,15.204101562499972],[98.55693359375007,15.367675781249986],[98.59238281250006,16.05068359375005],[98.81796875000012,16.180810546874994],[98.88828125000006,16.351904296875034],[98.83544921875003,16.417578125],[98.66074218750006,16.330419921875006],[98.4388671875,16.975683593750034],[97.7064453125,17.79711914062503],[97.63222656250005,18.290332031250074],[97.37392578125,18.51796875],[97.74589843750002,18.58818359374999],[97.816796875,19.459960937500057],[98.01503906250005,19.74951171874997],[98.37128906250004,19.68916015625004],[98.9166992187501,19.77290039062504],[99.07421875000003,20.09936523437503],[99.48593750000006,20.14985351562501],[99.45888671875005,20.363037109375],[99.72011718750005,20.32543945312497],[99.8903320312501,20.424414062499977],[99.9542968750001,20.415429687500023],[100.0036132812501,20.37958984375001],[100.12246093750005,20.316650390625057]]]]},"properties":{"name":"Thailand","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[70.66416015625,39.85546875],[70.55957031250003,39.790917968749994],[70.48925781250003,39.86303710937503],[70.48281250000005,39.88271484375005],[70.49775390625004,39.88242187499998],[70.56708984375004,39.86660156250005],[70.66416015625,39.85546875]]],[[[70.95800781250003,40.238867187500034],[70.59921875,39.974511718749994],[69.96679687499997,40.202246093750034],[69.46875,40.020751953125],[69.47099609375002,39.990625],[69.43193359375007,39.909765625000034],[69.36542968750004,39.94707031250002],[69.30722656250006,39.968554687500045],[69.27880859374997,39.91777343749999],[69.24472656250006,39.82709960937498],[69.29765625000007,39.52480468750005],[70.50117187500004,39.58735351562501],[70.79931640625003,39.39472656250001],[71.4703125,39.60366210937502],[71.50302734375006,39.58217773437502],[71.51738281250002,39.55385742187502],[71.50585937499997,39.51708984374997],[71.5033203125,39.47880859374999],[71.73222656250002,39.422998046874994],[71.77861328125007,39.27797851562502],[72.04277343750002,39.352148437500034],[72.08417968750004,39.310644531250034],[72.14736328125005,39.26074218749997],[72.22998046874997,39.20751953124997],[72.63994140625002,39.385986328125],[73.10927734375,39.36191406249998],[73.2349609375,39.37456054687499],[73.3361328125001,39.41235351562506],[73.38740234375004,39.442724609375034],[73.4704101562501,39.46059570312502],[73.63164062500007,39.44887695312502],[73.63632812500006,39.396679687499955],[73.60732421875,39.229199218749955],[73.8052734375,38.968652343749994],[73.69609375000007,38.85429687499996],[73.80166015625,38.60688476562501],[74.02558593750004,38.53984375000002],[74.27744140625,38.659765625000034],[74.81230468750002,38.46030273437498],[74.8942382812501,37.60141601562498],[75.11875,37.38569335937498],[74.89130859375004,37.231640624999955],[74.875390625,37.24199218750002],[74.83046875,37.28593750000002],[74.73056640625006,37.35703125],[74.659375,37.39448242187501],[74.34902343750005,37.41875],[74.25966796875005,37.41542968750002],[74.20351562500005,37.37246093750005],[74.16708984375,37.32944335937498],[73.74960937500006,37.23178710937498],[73.6535156250001,37.239355468750034],[73.62753906250006,37.261572265625006],[73.71728515625003,37.32944335937498],[73.7337890625,37.37578125000002],[73.72060546875,37.41875],[73.65712890625005,37.43046875],[73.6046875000001,37.44604492187503],[73.48134765625,37.4716796875],[73.38291015625006,37.462255859375034],[73.21113281250004,37.40849609375002],[72.89550781250003,37.26752929687498],[72.65742187500004,37.029052734375],[71.665625,36.696923828124994],[71.530859375,36.845117187499994],[71.43291015625007,37.12753906249998],[71.5822265625001,37.91010742187498],[71.55195312500004,37.93315429687496],[71.48779296874997,37.93188476562497],[71.38964843750003,37.90629882812502],[71.31992187500006,37.90185546875],[71.27851562500004,37.91840820312498],[71.33271484375004,38.170263671875034],[71.25585937499997,38.306982421875006],[70.7359375,38.42255859375001],[70.41777343750002,38.075439453125],[70.21464843750002,37.92441406250006],[70.19941406250004,37.88603515624996],[70.25498046875006,37.76538085937497],[70.25146484374997,37.66416015625006],[70.18867187500004,37.58247070312501],[70.11982421875004,37.54350585937499],[69.9849609375,37.566162109375],[69.8208984375,37.60957031250004],[69.62578125000002,37.59404296874999],[69.49208984375,37.55307617187498],[69.42011718750004,37.486718749999966],[69.39921875000007,37.39931640625002],[69.42968749999997,37.290869140625034],[69.414453125,37.20776367187497],[69.35380859375007,37.15004882812502],[69.3039062500001,37.11694335937503],[69.26484375000004,37.1083984375],[69.18017578125003,37.158300781250034],[68.96044921875003,37.32504882812498],[68.9118164062501,37.33393554687501],[68.88525390624997,37.32807617187498],[68.85537109375005,37.31684570312501],[68.83847656250006,37.30283203124998],[68.82373046874997,37.27070312500001],[68.78203125000002,37.25800781250001],[68.7232421875,37.26801757812501],[68.6691406250001,37.258398437500006],[68.3869140625001,37.1375],[68.29951171875004,37.08842773437502],[68.28476562500006,37.036328124999955],[68.2609375000001,37.01308593750002],[68.2121093750001,37.02153320312496],[68.0677734375,36.949804687500006],[67.95800781249997,36.972021484375006],[67.83447265624997,37.06420898437506],[67.75898437500004,37.172216796875034],[67.7980468750001,37.244970703125006],[67.81435546875005,37.48701171875004],[68.3502929687501,38.211035156250006],[68.08720703125002,38.47353515625002],[68.13251953125004,38.927636718749966],[67.69443359375006,38.99462890625003],[67.64833984375005,39.13105468750004],[67.3576171875001,39.216699218749994],[67.426171875,39.46557617187497],[67.71904296875007,39.62138671875002],[68.46328125,39.53671874999998],[68.63896484375007,39.8388671875],[68.86875,39.90747070312503],[68.80468750000003,40.05034179687499],[68.9720703125,40.08994140624998],[68.63066406250007,40.16708984374998],[69.27490234374997,40.19809570312498],[69.20625,40.566552734374994],[69.35722656250002,40.76738281249996],[69.71289062500003,40.65698242187503],[70.40195312500006,41.03510742187498],[70.75107421875006,40.721777343750006],[70.37158203125003,40.38413085937506],[70.653125,40.201171875],[70.95800781250003,40.238867187500034]]]]},"properties":{"name":"Tajikistan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[66.52226562500007,37.34848632812506],[66.471875,37.3447265625],[65.7650390625,37.56914062499996],[65.55498046875002,37.25117187500004],[65.30361328125005,37.24677734375001],[65.08964843750007,37.237939453124994],[64.9515625,37.19355468750001],[64.81630859375005,37.13208007812503],[64.7824218750001,37.05927734375001],[64.60253906250003,36.554541015625034],[64.5658203125,36.427587890625034],[64.51103515625002,36.34067382812498],[64.184375,36.14892578125],[63.8625,36.012353515624994],[63.12998046875006,35.84619140624997],[63.169726562500074,35.678125],[63.05664062500003,35.44580078125003],[62.98027343750002,35.40917968750003],[62.85800781250006,35.34965820312499],[62.688085937500006,35.25532226562504],[62.3078125000001,35.17080078125005],[62.08964843750002,35.3796875],[61.62099609375005,35.43232421875004],[61.34472656249997,35.62949218750006],[61.26201171875002,35.61958007812498],[61.25214843750004,35.86762695312498],[61.15292968750006,35.97675781250001],[61.212011718750006,36.190527343750034],[61.11962890625003,36.64257812500003],[60.34130859375003,36.63764648437501],[60.06279296875002,36.962890625],[59.454980468749994,37.25283203125002],[59.30175781249997,37.51064453125005],[58.81542968750003,37.683496093749994],[58.261621093749994,37.665820312500045],[57.35371093750004,37.97333984374998],[57.1935546875001,38.216406250000034],[56.440625,38.249414062499994],[56.272070312500006,38.080419921875034],[55.38085937500003,38.051123046875034],[54.90009765625004,37.77792968750006],[54.6994140625001,37.47016601562498],[53.91416015625006,37.34355468750002],[53.86865234375003,38.949267578125045],[53.70458984375003,39.209570312500034],[53.33632812500005,39.34082031250006],[53.15664062499999,39.26499023437506],[53.23564453125002,39.608544921874966],[53.603125,39.546972656250034],[53.472265625,39.66879882812498],[53.48730468749997,39.909375],[52.9875,39.98759765625002],[53.03554687500005,39.7744140625],[52.80468749999997,40.054003906250045],[52.73369140625002,40.39873046875002],[52.943457031250006,41.03808593750006],[53.1452148437501,40.82495117187497],[53.61523437500003,40.818505859374994],[53.87001953125005,40.64868164062503],[54.37734375,40.693261718749966],[54.319433593750006,40.83457031249998],[54.68505859375003,40.873046875],[54.70371093750006,41.071142578125034],[54.094824218750006,41.51938476562506],[53.80468749999997,42.11762695312498],[53.16416015625006,42.09379882812502],[52.97001953125002,41.97622070312505],[52.81484375,41.711816406249994],[52.850390625000074,41.20029296875006],[52.4938476562501,41.780371093750034],[53.0558593750001,42.14775390624999],[54.120996093749994,42.335205078125],[54.85380859375002,41.965185546875006],[55.434375,41.296289062499994],[55.97744140625005,41.32221679687504],[57.01796875,41.26347656249996],[57.11884765625004,41.35029296874998],[56.96406250000004,41.856542968750006],[57.290625,42.123779296875],[57.814257812500074,42.18984375000005],[58.02890625,42.48764648437506],[58.474414062500074,42.29936523437496],[58.15156250000004,42.628076171874966],[58.477148437500006,42.66284179687503],[58.5890625000001,42.778466796874966],[59.35429687500002,42.32329101562496],[59.98515625000002,42.21171875],[59.94179687499999,41.97353515625002],[60.20078125000006,41.803125],[60.07558593750005,41.759667968749966],[60.089648437500074,41.39941406250003],[60.454980468749994,41.221630859374955],[61.2423828125001,41.18920898437503],[61.496972656249994,41.276074218749955],[61.90283203124997,41.09370117187501],[62.48320312500002,39.97563476562496],[63.76367187500003,39.16054687499999],[64.3099609375,38.97729492187497],[65.612890625,38.23857421875002],[65.97119140624997,38.244238281250006],[66.60625,37.98671875000005],[66.52558593750004,37.785742187500034],[66.51132812500006,37.59916992187496],[66.51064453125,37.45869140625004],[66.52226562500007,37.34848632812506]]]},"properties":{"name":"Turkmenistan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[124.0363281250001,-9.341601562500031],[124.44443359375012,-9.190332031250023],[124.28232421875012,-9.427929687500026],[124.0363281250001,-9.341601562500031]]],[[[125.06816406250002,-9.511914062499997],[124.96015625000004,-9.213769531250009],[125.10048828125,-9.189843750000023],[125.14902343750012,-9.042578125000034],[124.93681640625007,-9.053417968750026],[124.92226562500005,-8.942480468749977],[125.17802734375002,-8.647851562499994],[125.38183593749997,-8.575390624999983],[126.61972656250006,-8.459472656249986],[126.96640625000012,-8.315722656250017],[127.29609375000004,-8.424511718749969],[126.91523437500004,-8.715234374999966],[125.40800781250002,-9.275781250000023],[125.06816406250002,-9.511914062499997]]],[[[125.64609375000006,-8.139941406250003],[125.5794921875,-8.311816406250017],[125.50712890625007,-8.275097656249997],[125.64609375000006,-8.139941406250003]]]]},"properties":{"name":"Timor-Leste","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-175.1619140625,-21.169335937500023],[-175.07817382812496,-21.129003906249977],[-175.15659179687495,-21.26367187499997],[-175.36235351562496,-21.106835937499994],[-175.1619140625,-21.169335937500023]]],[[[-173.953515625,-18.63935546875001],[-174.06914062500002,-18.640234375],[-173.96806640624993,-18.565332031250023],[-173.953515625,-18.63935546875001]]]]},"properties":{"name":"Tonga","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-61.012109374999966,10.134326171874989],[-61.906103515625006,10.069140625000031],[-61.49931640624999,10.268554687499972],[-61.47827148437497,10.603369140624977],[-61.65117187499993,10.718066406249974],[-60.917626953124966,10.84023437499999],[-61.03374023437502,10.669873046875026],[-61.012109374999966,10.134326171874989]]]},"properties":{"name":"Trinidad and Tobago","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[10.957617187500063,33.72207031250005],[10.722070312500051,33.738916015624994],[10.745214843750063,33.88867187500006],[11.017871093749989,33.82333984374998],[10.957617187500063,33.72207031250005]]],[[[11.278027343750068,34.753808593749994],[11.123632812500063,34.68168945312496],[11.254882812500057,34.82031250000006],[11.278027343750068,34.753808593749994]]],[[[10.274609375000011,31.684960937499994],[10.114941406250068,31.46376953125005],[10.216406250000063,30.78320312500003],[10.05976562500004,30.58007812500003],[9.932519531250051,30.42534179687496],[9.895019531250028,30.387304687500034],[9.51875,30.229394531249994],[9.224023437500023,31.373681640624994],[9.160253906250006,31.621337890625],[9.044042968750034,32.072363281250034],[8.333398437500051,32.54360351562502],[8.1125,33.055322265624994],[7.877246093750017,33.172119140625],[7.534375,33.717919921874994],[7.513867187500068,34.080517578124955],[8.24560546875,34.73408203124998],[8.276855468750057,34.97949218749997],[8.312109375000063,35.084619140624994],[8.394238281250011,35.20385742187503],[8.318066406250011,35.654931640624994],[8.348730468750063,36.367968750000045],[8.207617187500006,36.518945312499994],[8.601269531250068,36.83393554687504],[8.576562500000023,36.93720703125001],[9.687988281250057,37.34038085937499],[9.838476562500063,37.30898437499999],[9.830273437499983,37.13535156250006],[9.875585937499977,37.25415039062503],[10.196386718750063,37.205859375000045],[10.293261718750074,36.781494140625],[10.412304687499983,36.73183593750002],[11.053906250000068,37.07250976562506],[11.12666015625004,36.874072265625045],[10.476562500000028,36.175146484375006],[10.590820312500028,35.88725585937499],[11.00429687500008,35.63383789062496],[11.120117187500057,35.24028320312499],[10.69091796875,34.67846679687503],[10.118359375000068,34.280078125000045],[10.049023437500068,34.056298828124994],[10.305273437500034,33.72827148437497],[10.713183593750017,33.68901367187496],[10.722753906250006,33.514404296875],[10.958007812500057,33.62631835937498],[11.257421875000034,33.30883789062506],[11.202636718749972,33.24921874999998],[11.50458984375004,33.181933593750045],[11.502441406250028,33.15556640624999],[11.467187500000051,32.96572265625005],[11.459179687500011,32.897363281249966],[11.453906250000017,32.64257812500003],[11.533789062500034,32.52495117187496],[11.535937500000017,32.47333984375001],[11.504980468750034,32.413671875000034],[11.358007812500006,32.34521484375003],[11.168261718750074,32.25673828125002],[11.005175781250074,32.17270507812506],[10.826367187500068,32.080664062500034],[10.771582031250006,32.02119140625001],[10.60888671875,31.929541015624977],[10.47578125000004,31.736035156249983],[10.274609375000011,31.684960937499994]]]]},"properties":{"name":"Tunisia","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[25.970019531250045,40.136328125],[25.6689453125,40.13588867187502],[25.918359375000023,40.23798828125004],[25.970019531250045,40.136328125]]],[[[43.43339843750002,41.155517578125],[43.43945312500003,41.10712890625001],[43.72265624999997,40.71953124999999],[43.56933593750003,40.48237304687498],[43.66621093750004,40.12636718750002],[44.28925781250004,40.040380859375006],[44.76826171875004,39.70351562500005],[44.81718750000002,39.65043945312496],[44.58710937500004,39.76855468750006],[44.3893554687501,39.422119140625],[44.02324218750002,39.37744140625006],[44.27167968750004,38.83603515625006],[44.2985351562501,38.38627929687499],[44.4499023437501,38.33422851562506],[44.21132812499999,37.908056640625006],[44.589941406250006,37.710351562499966],[44.574023437500074,37.435400390625006],[44.79414062500004,37.290380859375034],[44.76513671875003,37.142431640625006],[44.73095703124997,37.16528320312503],[44.66933593750005,37.17358398437503],[44.60595703124997,37.176025390625],[44.401953125,37.05849609375002],[44.325585937499994,37.0107421875],[44.28183593750006,36.97802734374997],[44.24570312500006,36.983300781249994],[44.20166015624997,37.05180664062502],[44.208398437499994,37.20263671875],[44.19179687499999,37.249853515625034],[44.15625,37.28295898437503],[44.11445312500004,37.30185546875006],[44.01318359375003,37.313525390625045],[43.83642578124997,37.223535156249994],[43.67578125000003,37.227246093749955],[43.09248046875004,37.36738281249998],[42.936621093750006,37.32475585937502],[42.77460937500004,37.371875],[42.74111328125005,37.361914062500034],[42.6354492187501,37.249267578125],[42.45585937500002,37.128710937500045],[42.358984375,37.10859375000004],[42.31289062499999,37.22958984374998],[42.26855468749997,37.276562499999955],[42.24755859375003,37.28222656250006],[42.20273437500006,37.29726562499999],[42.16787109375005,37.28862304687502],[42.059863281250074,37.2060546875],[41.886816406250006,37.156396484374994],[40.70566406250006,37.09770507812502],[40.4503906250001,37.00888671875006],[40.016406250000074,36.82607421875002],[39.68652343749997,36.73862304687506],[39.50146484374997,36.702246093750034],[39.35664062500004,36.68159179687498],[39.10839843749997,36.68056640625005],[38.90644531250004,36.69467773437498],[38.76660156249997,36.69311523437503],[38.19169921875002,36.90156250000004],[37.90664062500005,36.79462890625001],[37.7203125,36.74370117187502],[37.52353515625006,36.678320312500034],[37.436328125000074,36.643310546875],[37.327050781249994,36.64658203125006],[37.18740234375005,36.655908203124994],[37.066210937500074,36.652636718750045],[36.98535156250003,36.70239257812506],[36.94179687499999,36.758398437500006],[36.77656250000004,36.79267578124998],[36.65859375000005,36.80253906250002],[36.62841796875003,36.777685546875034],[36.596875,36.70136718750001],[36.546679687500074,36.50634765625],[36.5375,36.457421874999966],[36.63671874999997,36.233984375],[36.37539062499999,36.171240234375034],[36.347558593749994,36.003515625000034],[36.20195312500002,35.93754882812502],[36.15361328125002,35.83388671875005],[36.12734375,35.831445312499994],[35.967578125000074,35.91005859375002],[35.89267578125006,35.91655273437502],[35.81093750000005,36.30986328125002],[36.18847656250003,36.65898437499999],[36.048925781250006,36.91059570312501],[35.393164062500006,36.57519531249997],[34.70361328125003,36.81679687499999],[33.694726562499994,36.18198242187498],[32.794824218749994,36.03588867187497],[32.37773437500002,36.18364257812496],[32.02197265625003,36.53530273437502],[31.35253906249997,36.80107421874999],[30.64404296874997,36.86567382812501],[30.446093750000074,36.269873046875034],[29.6890625,36.15668945312498],[29.22363281249997,36.32446289062497],[28.96962890625008,36.71533203125003],[28.303710937500057,36.81196289062498],[28.01943359375005,36.63447265624998],[28.083984375000057,36.75146484375],[27.453906250000017,36.712158203125],[28.00537109375003,36.83198242187498],[28.242382812500068,37.029052734375],[27.262988281250045,36.97656250000003],[27.30019531250005,37.12685546875002],[27.53505859375005,37.16386718750002],[27.06796875,37.65791015625004],[27.224414062500074,37.725439453125006],[27.23242187500003,37.978662109374994],[26.29072265625001,38.27719726562498],[26.44130859375005,38.64121093749998],[26.67421875000008,38.33574218750002],[27.14423828125001,38.45195312499996],[26.906835937500034,38.48173828124999],[26.763671875,38.709619140624966],[27.013671875000057,38.88686523437502],[26.814941406250057,38.96098632812502],[26.853613281250034,39.115625],[26.68183593750004,39.292236328125],[26.89921874999999,39.549658203125034],[26.113085937500074,39.46738281249998],[26.101367187500074,39.56894531249998],[26.18134765625004,39.99008789062498],[26.738085937500045,40.40024414062506],[27.28457031250008,40.45561523437496],[27.4755859375,40.319921875000034],[27.72802734375,40.32880859374998],[27.84853515625005,40.38173828125002],[27.73183593750008,40.48149414062499],[27.87490234375008,40.512939453125],[27.989550781250074,40.48945312500001],[27.96259765625001,40.369873046875],[29.00712890624999,40.389746093750034],[28.787890625000017,40.534033203125034],[28.95800781250003,40.63056640624998],[29.849218750000063,40.760107421875006],[29.113867187499977,40.93784179687506],[29.14814453125004,41.221044921875034],[31.25488281249997,41.10761718750001],[31.45800781249997,41.32001953125004],[32.306445312500074,41.72958984374998],[33.38134765625003,42.01757812500003],[34.75048828124997,41.95683593749999],[35.006445312500006,42.06328125000002],[35.15488281250006,42.02753906250001],[35.12207031250003,41.89111328125003],[35.297753906249994,41.72851562500003],[35.558007812499994,41.63403320312506],[36.05175781249997,41.68256835937498],[36.40537109375006,41.27460937500001],[36.77773437499999,41.36347656250001],[37.066210937500074,41.184423828125034],[38.38105468750004,40.92451171875001],[39.426367187500006,41.10644531250003],[40.26523437500006,40.96132812500005],[41.08359375000006,41.26118164062504],[41.41435546875002,41.42363281249999],[41.510058593750074,41.51748046875002],[41.70175781250006,41.471582031249994],[41.77939453125006,41.44052734374998],[41.823535156250074,41.432373046875],[41.92578125000003,41.49565429687502],[42.46640625,41.43984375000002],[42.56738281249997,41.55927734375001],[42.590429687500006,41.57070312500002],[42.60683593750005,41.57880859374998],[42.682421875000074,41.58574218749999],[42.75410156250004,41.57890625000002],[42.787890625000074,41.56372070312503],[42.82167968750005,41.49238281249998],[42.90673828125003,41.46684570312502],[43.05712890625003,41.35283203124996],[43.149023437500006,41.30712890624997],[43.171289062499994,41.28793945312498],[43.14101562499999,41.26484374999998],[43.15283203124997,41.23642578125006],[43.20546875000005,41.19916992187501],[43.43339843750002,41.155517578125]]],[[[27.47480468750001,41.946875],[28.014453125000017,41.96904296874999],[28.197851562500063,41.55449218750002],[29.057226562500006,41.22973632812503],[28.95625,41.00820312499999],[28.172167968750074,41.08071289062502],[27.49941406250005,40.97314453124997],[27.258007812499983,40.687353515625006],[26.772070312500034,40.498046875],[26.202734375000034,40.07539062500004],[26.25380859375005,40.31469726562503],[26.792089843750034,40.626611328124994],[26.10546875000003,40.61132812499997],[26.03896484375008,40.726757812499955],[26.331054687500057,40.954492187499994],[26.330664062499977,41.23876953125],[26.62490234375008,41.401757812499994],[26.581347656250074,41.60126953125004],[26.320898437500034,41.716552734375],[26.3603515625,41.80156249999999],[26.51142578125004,41.82636718749998],[26.549707031250023,41.896728515625],[26.5796875,41.947949218749955],[26.615332031250063,41.964892578125045],[26.884863281250006,41.99184570312502],[26.96875,42.02685546875006],[27.01171875,42.05864257812496],[27.193359375000057,42.07709960937498],[27.24433593750004,42.09326171875],[27.294921875000057,42.079541015624955],[27.47480468750001,41.946875]]]]},"properties":{"name":"Turkey","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[39.71132812499999,-7.977441406250023],[39.602929687499994,-7.936132812499949],[39.907128906249994,-7.649218750000031],[39.71132812499999,-7.977441406250023]]],[[[39.49648437499999,-6.174609375],[39.573046875000074,-6.387402343750011],[39.48095703124997,-6.45371093750002],[39.18232421875004,-6.172558593750026],[39.30898437499999,-5.721972656249974],[39.49648437499999,-6.174609375]]],[[[39.86503906250002,-4.906152343750037],[39.74931640625002,-5.443847656249986],[39.646777343750074,-5.368554687500009],[39.6734375,-4.927050781250031],[39.86503906250002,-4.906152343750037]]],[[[33.90322265625005,-1.002050781250034],[37.643847656250074,-3.045410156250028],[37.608203125000074,-3.497070312500028],[39.221777343750006,-4.692382812500014],[38.80468750000003,-6.070117187500031],[38.87402343750003,-6.33125],[39.5460937500001,-7.024023437500034],[39.288476562499994,-7.517871093750003],[39.28701171875005,-7.787695312500006],[39.4284179687501,-7.81279296874996],[39.441015625,-8.011523437499946],[39.304003906250074,-8.44384765625],[39.451269531250006,-8.94296875],[39.64130859375004,-9.19248046875002],[39.72519531250006,-10.000488281249972],[40.46357421875004,-10.464355468749972],[39.98867187499999,-10.820800781250014],[39.81708984375004,-10.912402343750031],[38.9875,-11.167285156250003],[38.49179687500006,-11.413281250000026],[37.92021484375002,-11.294726562500031],[37.72480468750004,-11.58066406250002],[37.54169921875004,-11.675097656249974],[37.37285156250002,-11.710449218749986],[36.97890625000005,-11.566992187499977],[36.30566406250003,-11.706347656249946],[36.191308593749994,-11.670703124999974],[36.17548828125004,-11.60927734374998],[36.08222656250004,-11.537304687499969],[35.91132812500004,-11.45468750000002],[35.785449218750074,-11.452929687500017],[35.63095703125006,-11.582031250000028],[35.564355468749994,-11.602343749999989],[35.418261718750074,-11.583203125],[35.18261718750003,-11.574804687499977],[34.95947265625003,-11.578125],[34.93701171874997,-11.463476562500034],[34.890625,-11.3935546875],[34.77382812500005,-11.341699218750009],[34.60791015624997,-11.08046875],[34.66708984375006,-10.792480468750028],[34.56992187500006,-10.241113281249966],[34.32089843750006,-9.731542968749977],[33.99560546875003,-9.495410156250003],[33.88886718750004,-9.670117187499983],[32.91992187500003,-9.407421875000026],[32.75664062500002,-9.322265625],[31.94257812500004,-9.05400390624996],[31.91865234375004,-8.942187500000017],[31.886132812499994,-8.921972656249977],[31.81806640625004,-8.902246093749952],[31.673632812500017,-8.908789062499963],[31.55625,-8.80546875],[31.44921874999997,-8.65390625],[31.35058593750003,-8.607031250000034],[31.07636718750004,-8.611914062499963],[30.968359375000063,-8.550976562499983],[30.89199218750005,-8.473730468749963],[30.830664062500063,-8.385546875000031],[30.720898437500097,-8.104394531250037],[30.40673828125003,-7.460644531249983],[30.313183593750097,-7.203710937499949],[30.212695312500017,-7.037890625000017],[30.10625,-6.915039062500028],[29.961816406249994,-6.803125],[29.798144531250017,-6.691894531249957],[29.70966796875004,-6.61689453125004],[29.590625,-6.394433593750023],[29.540820312500017,-6.313867187500037],[29.50625,-6.172070312500011],[29.480078125,-6.025],[29.490820312500063,-5.96542968750002],[29.59638671875004,-5.775976562499963],[29.60703125,-5.722656250000028],[29.59414062500005,-5.650781250000037],[29.542382812499994,-5.499804687500017],[29.34277343749997,-4.983105468749997],[29.32343750000004,-4.898828124999966],[29.32568359374997,-4.835644531249969],[29.404199218749994,-4.49667968750002],[29.40322265625005,-4.449316406249963],[29.71777343750003,-4.45585937499996],[29.94726562499997,-4.307324218749983],[30.4,-3.65390625],[30.790234375000097,-3.274609375000011],[30.811132812500006,-3.116406250000011],[30.78027343750003,-2.984863281249957],[30.70947265624997,-2.977246093749997],[30.604296875000074,-2.935253906249969],[30.515039062499994,-2.917578125],[30.45556640625003,-2.893164062500006],[30.433496093749994,-2.874511718750028],[30.424023437500097,-2.82402343749996],[30.473339843750097,-2.6943359375],[30.42421875000005,-2.641601562500014],[30.441992187500006,-2.613476562499969],[30.53369140624997,-2.426269531250014],[30.55361328125005,-2.400097656250011],[30.593359375000063,-2.39677734374996],[30.65664062500005,-2.373828124999989],[30.71484375000003,-2.363476562500011],[30.7625,-2.371679687499991],[30.828710937500006,-2.338476562499977],[30.85498046874997,-2.265429687500017],[30.8765625,-2.143359375000017],[30.864648437499994,-2.044042968749949],[30.819140625000017,-1.967480468749983],[30.812597656250006,-1.56308593750002],[30.76220703124997,-1.458691406249983],[30.710742187500074,-1.396777343749974],[30.631933593750006,-1.36748046874996],[30.508105468750074,-1.208203125000026],[30.47021484374997,-1.13115234374996],[30.47705078124997,-1.0830078125],[30.509960937500097,-1.067285156249994],[30.51992187499999,-1.0625],[30.67275390625005,-1.051367187499949],[30.741992187500017,-1.007519531249997],[30.809179687500063,-0.994921875],[30.82363281250005,-0.999023437499943],[30.84472656250003,-1.002050781250034],[32.371875,-1.002050781250034],[33.90322265625005,-1.002050781250034]]]]},"properties":{"name":"Tanzania","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[30.50996093750001,-1.067285156250009],[30.46992187500001,-1.066015625],[30.41230468750001,-1.063085937500006],[30.360253906250023,-1.074609375],[29.930078125000023,-1.469921875000011],[29.82539062500001,-1.335546875],[29.576953125000017,-1.387890625000011],[29.717675781250023,0.098339843749997],[29.934472656250023,0.4990234375],[29.94287109375,0.819238281249994],[31.252734375000017,2.044580078124994],[31.176367187500006,2.270068359374989],[30.728613281250006,2.455371093749989],[30.8466796875,2.847021484374991],[30.754003906250006,3.041796874999989],[30.90644531250001,3.408935546875],[30.83857421875001,3.49072265625],[31.15234375,3.785595703124997],[31.547167968750017,3.677587890624991],[31.79804687500001,3.802636718749994],[32.13593750000001,3.519726562499997],[32.33574218750002,3.706201171874994],[32.99726562500001,3.880175781249989],[33.489355468750006,3.755078125],[33.568457031250006,3.81171875],[33.74160156250002,3.985253906249994],[33.97607421875,4.22021484375],[34.13203125000001,3.88916015625],[34.18574218750001,3.869775390624994],[34.1650390625,3.81298828125],[34.26708984375,3.733154296875],[34.39287109375002,3.691503906249991],[34.43769531250001,3.650585937499997],[34.44179687500002,3.60625],[34.3994140625,3.412695312499991],[34.4072265625,3.357519531249991],[34.447851562500006,3.163476562499994],[34.90576171875,2.4796875],[34.88300781250001,2.417919921874997],[34.96406250000001,2.062402343749994],[34.9775390625,1.861914062499991],[34.97646484375002,1.719628906249994],[34.79863281250002,1.24453125],[34.48173828125002,1.042138671874994],[34.41083984375001,0.867285156249991],[34.16093750000002,0.605175781249997],[33.94316406250002,0.173779296874997],[33.90322265625002,-1.002050781250006],[32.371875,-1.002050781250006],[30.8447265625,-1.002050781250006],[30.823632812500023,-0.9990234375],[30.809179687500006,-0.994921875],[30.741992187500017,-1.007519531250011],[30.672753906250023,-1.051367187500006],[30.598730468750006,-1.069726562500009],[30.519921875000023,-1.0625],[30.50996093750001,-1.067285156250009]]]},"properties":{"name":"Uganda","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[32.01220703124997,46.20390624999999],[32.15009765625004,46.1546875],[31.56386718750005,46.25776367187504],[31.50878906250003,46.373144531250006],[32.01220703124997,46.20390624999999]]],[[[38.21435546875003,47.091455078124966],[37.54335937499999,47.07456054687498],[36.794824218749994,46.71440429687499],[36.55878906250004,46.76269531250006],[35.82714843749997,46.62431640625002],[35.01455078125005,46.10600585937502],[35.280175781249994,46.27949218750001],[35.23037109375005,46.440625],[34.84960937500003,46.189892578124955],[35.02285156250005,45.70097656250002],[35.45751953124997,45.316308593749994],[36.170507812500006,45.453076171874955],[36.575,45.3935546875],[36.39335937500002,45.06538085937501],[35.87011718750003,45.005322265624955],[35.472558593749994,45.098486328125006],[35.08769531250002,44.802636718749966],[34.46992187500004,44.7216796875],[33.909960937500074,44.387597656249966],[33.45068359374997,44.553662109374955],[33.55517578125003,45.09765625000003],[32.5080078125001,45.40380859375006],[33.664843750000074,45.94707031249996],[33.59414062500005,46.09624023437499],[33.42988281250004,46.05761718750003],[33.20224609375006,46.17573242187501],[32.47675781250004,46.08369140625001],[31.83125,46.28168945312501],[32.00849609375004,46.42998046875002],[31.554882812500097,46.554296875000034],[32.36132812499997,46.474951171875034],[32.578027343749994,46.615625],[32.04433593750005,46.642480468749966],[31.75917968750005,47.21284179687501],[31.872851562500017,46.649755859375034],[31.532128906249994,46.66474609374998],[31.56337890625005,46.77729492187501],[31.402929687500063,46.62880859375002],[30.796289062499994,46.55200195312503],[30.219042968750074,45.866748046875045],[29.62841796875003,45.722460937500045],[29.705859375000074,45.25991210937505],[29.567675781250074,45.37080078124998],[29.40371093750005,45.419677734375],[29.22353515625005,45.402929687500034],[28.894335937500017,45.28994140625002],[28.78173828125,45.30986328125002],[28.76660156250003,45.28623046874998],[28.78828125000001,45.240966796875],[28.451269531250006,45.292187499999955],[28.317675781250045,45.347119140624955],[28.2125,45.45043945312506],[28.26484375000004,45.48388671875003],[28.310351562500074,45.49858398437499],[28.499023437500057,45.517724609374994],[28.513769531250034,45.57241210937502],[28.49160156250005,45.66577148437503],[28.562304687500074,45.73579101562501],[28.667578125,45.79384765625002],[28.729296875000074,45.852001953124955],[28.73876953125003,45.937158203124994],[28.84951171875005,45.97866210937502],[28.94775390624997,46.049951171874966],[28.971875,46.12763671874998],[29.00625,46.17646484374998],[28.94375,46.28842773437506],[28.930566406250023,46.36225585937501],[28.92744140625001,46.42412109374999],[28.958398437500023,46.45849609374997],[29.146289062500017,46.52690429687496],[29.186230468750068,46.52397460937499],[29.20078125,46.504980468750034],[29.20458984374997,46.37934570312501],[29.223828125000097,46.37695312499997],[29.458789062500017,46.453759765624994],[29.83789062499997,46.35053710937501],[29.878027343750063,46.360205078125034],[30.07568359375003,46.377832031249966],[30.131054687500097,46.42309570312506],[29.92431640624997,46.53886718750002],[29.934765625000097,46.625],[29.942480468750063,46.72377929687502],[29.918066406250063,46.78242187499998],[29.877832031249994,46.828906250000045],[29.57197265625004,46.96401367187502],[29.455664062500006,47.292626953124994],[29.134863281250006,47.48969726562501],[29.125390625000023,47.96455078125001],[28.42304687500001,48.146875],[28.34052734375001,48.144433593749994],[27.54921875000008,48.47773437500004],[27.22851562500003,48.37143554687506],[26.90058593750001,48.37192382812506],[26.847070312500023,48.387158203124955],[26.640429687500045,48.29414062500001],[26.618945312500017,48.25986328125006],[26.4423828125,48.22998046875],[26.162695312500063,47.992529296875034],[25.90869140625,47.96757812500002],[25.689257812500045,47.93247070312506],[25.46425781250005,47.910791015624994],[24.979101562500063,47.72412109374997],[24.578906250000074,47.93105468750005],[23.628710937500017,47.995849609375],[23.40820312500003,47.98999023437506],[23.20263671875,48.084521484375045],[23.13945312499999,48.08740234375],[22.87666015625001,47.94726562500006],[22.769140625000063,48.109619140625],[22.582421875000023,48.134033203125],[22.253710937500017,48.407373046874994],[22.131835937500057,48.40532226562502],[22.142871093750017,48.568505859374966],[22.295214843750045,48.68583984374999],[22.389453125000045,48.87348632812501],[22.52412109375004,49.03139648437502],[22.538671875,49.07270507812501],[22.847070312500023,49.08125],[22.705664062500006,49.17119140624999],[22.6494140625,49.53901367187498],[22.706152343750006,49.60620117187497],[23.03632812500004,49.899072265624966],[23.711718750000045,50.377343749999966],[23.97265625,50.410058593749966],[24.089941406250006,50.53046874999998],[24.0947265625,50.617041015625034],[23.9970703125,50.809375],[24.095800781250063,50.87275390625001],[23.664453125000023,51.31005859375],[23.61376953125,51.525390625],[23.706835937500045,51.64130859374998],[23.79169921875001,51.63710937500002],[23.864257812500057,51.62397460937501],[23.951171875,51.58505859374998],[23.978320312500017,51.59130859375003],[24.12685546875008,51.664648437500034],[24.280078125000017,51.77470703124999],[24.361914062500006,51.86752929687498],[25.785742187500006,51.923828125],[26.77343750000003,51.77070312499998],[26.952832031249983,51.754003906250034],[27.074121093750023,51.760839843750006],[27.14199218750008,51.75205078124998],[27.29628906250008,51.59741210937503],[27.689746093750017,51.572412109374994],[27.7,51.47797851562501],[27.85859375000004,51.59238281250006],[28.532031250000017,51.56245117187501],[28.59902343750008,51.54262695312505],[28.647753906250074,51.45654296875],[28.690234375000017,51.43886718750005],[28.73125,51.43339843749999],[28.84951171875005,51.540185546874994],[28.927539062500045,51.56215820312502],[28.97773437500004,51.57177734375003],[29.01308593750005,51.59892578124996],[29.06074218750001,51.625439453124955],[29.102050781250057,51.627539062500034],[29.346484375000017,51.38256835937503],[30.160742187500006,51.477880859375006],[30.449511718750017,51.274316406249994],[30.63251953125004,51.35541992187501],[30.61171875000005,51.406347656250006],[30.602343750000017,51.47124023437499],[30.56074218750004,51.531494140625],[30.533007812500017,51.596337890624966],[30.583886718749994,51.68896484375003],[30.667285156250017,51.81411132812502],[30.755273437499994,51.89516601562502],[30.84570312500003,51.95307617187501],[30.980664062500097,52.04619140624996],[31.217968750000097,52.05024414062498],[31.345996093750074,52.10537109375002],[31.57373046875003,52.108105468749955],[31.763378906250097,52.10107421875003],[32.12226562500004,52.05058593749996],[32.435449218749994,52.307226562500034],[33.735253906249994,52.344775390625045],[34.397851562499994,51.780419921874994],[34.12109375000003,51.67915039062498],[34.21386718750003,51.25537109375006],[35.0640625,51.203417968750045],[35.31191406250005,51.043896484374955],[35.59111328125002,50.36875],[36.1164062500001,50.408544921875006],[36.619433593750074,50.209228515625],[37.42285156249997,50.411474609375006],[38.046875,49.92001953125006],[38.258593750000074,50.05234375],[38.91835937499999,49.82470703125],[39.17480468750003,49.85595703124997],[39.780566406250074,49.57202148437503],[40.080664062500006,49.576855468749955],[40.10878906250005,49.251562500000034],[39.68652343749997,49.007910156250034],[40.00361328125004,48.82207031250002],[39.792871093749994,48.807714843750034],[39.6447265625001,48.591210937499966],[39.8356445312501,48.54277343749996],[39.95791015625005,48.268896484375034],[39.77871093750005,47.88754882812506],[38.90029296875005,47.85512695312502],[38.36884765625004,47.609960937500006],[38.21435546875003,47.091455078124966]]]]},"properties":{"name":"Ukraine","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-57.81059570312499,-30.85859375000001],[-57.872509765625,-30.59101562500001],[-57.831201171874994,-30.495214843750006],[-57.71269531249999,-30.38447265625001],[-57.65087890625,-30.295019531250006],[-57.645751953125,-30.226953125],[-57.60888671875,-30.187792968750003],[-57.55229492187499,-30.26123046875],[-57.21445312499999,-30.28339843750001],[-57.186914062499994,-30.26484375000001],[-57.120507812499994,-30.14443359375001],[-56.83271484375,-30.107226562500003],[-56.4072265625,-30.44746093750001],[-55.998974609375,-30.837207031250003],[-56.018457031249994,-30.99189453125001],[-56.00468749999999,-31.079199218750006],[-55.873681640624994,-31.069628906250003],[-55.6271484375,-30.85810546875001],[-55.60302734375,-30.85078125000001],[-55.55732421875,-30.8759765625],[-55.17353515625,-31.279589843750003],[-55.09116210937499,-31.31396484375],[-55.036035156249994,-31.27900390625001],[-54.587646484375,-31.48515625],[-54.22055664062499,-31.85517578125001],[-53.76171875,-32.05683593750001],[-53.601708984374994,-32.40302734375001],[-53.12558593749999,-32.73671875],[-53.2140625,-32.82109375],[-53.31010742187499,-32.92705078125],[-53.39521484375,-33.010351562500006],[-53.482861328125,-33.06855468750001],[-53.511865234374994,-33.10869140625],[-53.53134765624999,-33.1708984375],[-53.53134765624999,-33.65546875000001],[-53.37060546875,-33.7421875],[-53.419580078124994,-33.77919921875001],[-53.47246093749999,-33.84931640625001],[-53.53452148437499,-34.01748046875001],[-53.742919921875,-34.24951171875],[-53.785302734374994,-34.38037109375],[-54.16855468749999,-34.670703125],[-54.902294921875,-34.93281250000001],[-55.67314453124999,-34.77568359375],[-56.249951171875,-34.90126953125001],[-57.17070312499999,-34.45234375000001],[-57.8291015625,-34.47734375],[-58.40019531249999,-33.91240234375],[-58.363525390625,-33.18232421875001],[-58.08232421874999,-32.893652343750006],[-58.12958984375,-32.75722656250001],[-58.16220703124999,-32.566503906250006],[-58.201171875,-32.4716796875],[-58.123046875,-32.321875],[-58.11972656249999,-32.24892578125001],[-58.164794921875,-32.18486328125],[-58.177001953125,-32.11904296875001],[-58.15634765624999,-32.0515625],[-58.160400390625,-31.98652343750001],[-58.18901367187499,-31.92421875],[-58.16748046875,-31.87265625],[-58.04233398437499,-31.76923828125001],[-58.006982421874994,-31.68496093750001],[-58.053857421874994,-31.494921875],[-58.0333984375,-31.416601562500006],[-57.89335937499999,-31.1953125],[-57.868408203125,-31.10439453125001],[-57.88632812499999,-30.93740234375001],[-57.81059570312499,-30.85859375000001]]]},"properties":{"name":"Uruguay","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-155.58134765624996,19.012011718750017],[-155.88129882812495,19.07050781250001],[-156.04868164062498,19.749951171874983],[-155.82031249999997,20.01416015624997],[-155.83164062499998,20.27583007812501],[-155.198779296875,19.99438476562503],[-154.80419921875,19.524462890625045],[-155.58134765624996,19.012011718750017]]],[[[-156.84960937499997,20.772656249999955],[-156.97338867187497,20.757519531249983],[-157.0505859375,20.912451171875034],[-156.88056640624995,20.904833984375074],[-156.84960937499997,20.772656249999955]]],[[[-156.48681640624994,20.93256835937504],[-156.27753906250004,20.951269531250034],[-155.98984374999998,20.75712890624999],[-156.40878906249998,20.60517578125004],[-156.480078125,20.80122070312501],[-156.69775390625003,20.949072265625034],[-156.58540039062495,21.034326171874994],[-156.48681640624994,20.93256835937504]]],[[[-157.21362304687497,21.215380859375017],[-156.71215820312506,21.155078125000074],[-156.85986328125,21.05634765625004],[-157.29033203124996,21.112597656250017],[-157.21362304687497,21.215380859375017]]],[[[-157.79936523437502,21.456640625000034],[-157.63540039062502,21.30761718749997],[-158.11035156249994,21.318603515625],[-158.27314453125,21.585253906250045],[-157.9625,21.701367187499983],[-157.79936523437502,21.456640625000034]]],[[[-159.37275390625,21.93237304687497],[-159.60883789062495,21.909521484375034],[-159.78916015625003,22.041796875000074],[-159.57919921874998,22.22314453124997],[-159.35205078124997,22.219580078125034],[-159.37275390625,21.93237304687497]]],[[[-81.04418945312503,24.716796875000057],[-81.137353515625,24.710498046875017],[-80.93046875,24.75947265625004],[-81.04418945312503,24.716796875000057]]],[[[-80.3818359375,25.142285156249955],[-80.58056640624997,24.954248046875023],[-80.25708007812497,25.34760742187504],[-80.3818359375,25.142285156249955]]],[[[-97.17070312499996,26.159375],[-97.40209960937494,26.820507812499983],[-97.38598632812494,27.19648437500004],[-97.17070312499996,26.159375]]],[[[-80.18676757812497,27.278417968750034],[-80.17050781250003,27.20478515625004],[-80.43691406249994,27.850537109374955],[-80.18676757812497,27.278417968750034]]],[[[-91.793701171875,29.50073242187497],[-92.00664062499996,29.61030273437501],[-91.875244140625,29.640966796875034],[-91.793701171875,29.50073242187497]]],[[[-84.90791015624998,29.642626953125017],[-85.11674804687499,29.63281249999997],[-84.737158203125,29.732421875],[-84.90791015624998,29.642626953125017]]],[[[-89.22397460937498,30.084082031249977],[-89.34199218749995,30.062841796875006],[-89.18466796874995,30.168652343749983],[-89.22397460937498,30.084082031249977]]],[[[-118.34794921875002,33.3857421875],[-118.29746093750003,33.312109375],[-118.44628906249997,33.317089843749955],[-118.56943359375002,33.46416015624999],[-118.34794921875002,33.3857421875]]],[[[-120.04355468749995,33.918847656249994],[-120.25190429687494,34.01386718749998],[-120.07182617187493,34.026513671874966],[-120.04355468749995,33.918847656249994]]],[[[-119.88237304687497,34.07968749999998],[-119.54926757812497,34.02817382812506],[-119.80957031249997,33.9677734375],[-119.88237304687497,34.07968749999998]]],[[[-75.54414062499995,35.240087890625034],[-75.69008789062502,35.221582031249994],[-75.53637695312497,35.27861328124999],[-75.50351562500003,35.769140625],[-75.46474609374994,35.448632812499966],[-75.54414062499995,35.240087890625034]]],[[[-74.13320312500002,39.680761718750034],[-74.25048828125,39.529394531250006],[-74.10673828124996,39.74643554687498],[-74.13320312500002,39.680761718750034]]],[[[-72.50976562500003,40.98603515625001],[-72.58085937499996,40.92133789062498],[-71.90322265625,41.06069335937505],[-73.19428710937495,40.654199218749994],[-74.01489257812497,40.581201171874966],[-73.87924804687498,40.79165039062502],[-73.573828125,40.91962890624998],[-72.62509765624998,40.99184570312505],[-72.27412109374998,41.15302734375001],[-72.50976562500003,40.98603515625001]]],[[[-69.9779296875,41.26557617187504],[-70.23305664062502,41.28632812500001],[-70.04121093750001,41.3974609375],[-69.9779296875,41.26557617187504]]],[[[-70.50991210937502,41.376318359375034],[-70.82919921874995,41.35898437500006],[-70.61601562499996,41.45722656250001],[-70.50991210937502,41.376318359375034]]],[[[-71.24140625000001,41.49194335937497],[-71.34624023437496,41.469384765624994],[-71.23203124999995,41.654296875],[-71.24140625000001,41.49194335937497]]],[[[-68.18725585937497,44.33247070312501],[-68.41171875000003,44.294335937499966],[-68.29941406249998,44.456494140624955],[-68.18725585937497,44.33247070312501]]],[[[-122.394140625,47.39526367187503],[-122.50991210937497,47.358007812500006],[-122.486474609375,47.48876953125],[-122.394140625,47.39526367187503]]],[[[-122.57275390624999,48.15664062499999],[-122.38315429687499,47.923193359375034],[-122.74150390624999,48.22529296875004],[-122.62861328125,48.38422851562498],[-122.54243164062503,48.29399414062499],[-122.69702148437499,48.228662109374994],[-122.57275390624999,48.15664062499999]]],[[[-94.80346679687497,49.0029296875],[-94.71279296874997,48.863427734374994],[-94.62089843749999,48.74262695312501],[-93.85161132812496,48.607275390625034],[-93.70771484374995,48.52543945312499],[-93.37788085937498,48.61655273437498],[-93.25795898437497,48.62885742187501],[-92.83671875,48.567773437499994],[-92.50058593749995,48.43535156250002],[-92.41459960937493,48.276611328125],[-92.3484375,48.276611328125],[-92.00517578125002,48.301855468750006],[-91.38720703124997,48.05854492187498],[-91.04345703125003,48.19370117187498],[-90.84033203125003,48.20053710937506],[-90.79731445312495,48.13105468750001],[-89.4556640625,47.996240234374994],[-88.37817382812497,48.30307617187498],[-87.74389648437497,48.06054687500003],[-87.20800781249997,47.848486328125006],[-86.67216796874996,47.636425781249955],[-85.65224609375,47.21997070312503],[-85.07006835937497,46.97993164062498],[-84.87597656249994,46.89990234375003],[-84.66577148437503,46.54326171875002],[-84.44047851562496,46.49814453125006],[-84.12319335937497,46.50292968749997],[-83.97778320312503,46.08491210937498],[-83.61596679687503,46.116845703124994],[-83.46948242187503,45.99467773437499],[-83.59267578125,45.81713867187506],[-82.91933593749994,45.51796875000002],[-82.55107421874996,45.34736328125001],[-82.48505859374993,45.08374023437503],[-82.137841796875,43.570898437500034],[-82.19038085937495,43.47407226562501],[-82.54531249999997,42.62470703124998],[-83.10952148437497,42.25068359375001],[-83.141943359375,41.97587890624996],[-82.69003906249995,41.675195312499994],[-82.43906249999998,41.67485351562502],[-81.97416992187496,41.88872070312499],[-81.50732421874997,42.10346679687504],[-81.02822265624997,42.247167968750006],[-80.24755859375,42.36601562499996],[-79.17373046875,42.74853515625],[-78.91508789062496,42.90913085937504],[-78.98076171874993,42.98061523437502],[-79.02617187499996,43.01733398437506],[-79.066064453125,43.10610351562502],[-79.171875,43.466552734375],[-79.00249023437502,43.52714843749999],[-78.845556640625,43.58334960937498],[-78.72041015625001,43.62495117187501],[-78.45825195312497,43.63149414062502],[-77.596533203125,43.62861328124998],[-76.819970703125,43.62880859375002],[-76.18579101562503,44.24223632812502],[-75.81933593749997,44.468017578125],[-75.40126953124997,44.77226562499999],[-74.99614257812496,44.970117187499966],[-74.76245117187494,44.99907226562502],[-74.663232421875,45.00390625000003],[-71.51752929687495,45.00756835937497],[-71.327294921875,45.29008789062496],[-70.86503906249999,45.27070312500001],[-70.296240234375,45.90610351562506],[-70.00771484375002,46.70893554687501],[-69.24287109374998,47.46298828124998],[-69.0501953125,47.426611328125034],[-68.93720703124998,47.21123046875002],[-68.23549804687502,47.34594726562503],[-67.806787109375,47.08281249999999],[-67.80224609374994,45.7275390625],[-67.43266601562496,45.603125],[-67.366943359375,45.17377929687498],[-67.12485351562498,45.16943359375],[-66.98701171874995,44.82768554687502],[-67.191259765625,44.67558593750002],[-67.83906249999998,44.576269531250034],[-68.056640625,44.38432617187502],[-68.15205078124998,44.50200195312499],[-68.45058593749997,44.50761718749999],[-68.53251953124996,44.25864257812498],[-68.81191406249994,44.33935546875],[-68.76269531249994,44.57075195312498],[-69.22607421875003,43.98647460937505],[-69.52075195312503,43.89736328125002],[-69.55668945312496,43.982763671875006],[-69.62392578125,43.88061523437497],[-69.65288085937493,43.99389648437506],[-69.808349609375,43.772314453125034],[-69.965234375,43.855078125],[-70.17880859374998,43.76635742187506],[-70.73310546875001,43.07001953125004],[-70.82905273437493,42.82534179687502],[-70.61293945312497,42.623242187499955],[-71.04619140624993,42.331103515625045],[-70.73828125,42.228857421875006],[-70.42666015625002,41.75727539062501],[-70.00141601562498,41.82617187500003],[-70.24106445312495,42.09121093750002],[-70.10893554687496,42.07832031249998],[-69.97788085937498,41.961279296875006],[-69.94863281249997,41.67714843750005],[-70.65712890625,41.53422851562496],[-70.70112304687498,41.71484375],[-71.1685546875,41.489404296874994],[-71.14873046874996,41.74570312499998],[-71.27109375,41.68125],[-71.39013671875003,41.79531250000005],[-71.52285156249997,41.378955078125045],[-72.92470703125002,41.28515625000003],[-73.98710937499999,40.751367187499994],[-73.87197265625,41.05517578124997],[-73.96992187499995,41.24970703125001],[-73.92719726562495,40.914257812499955],[-74.26420898437496,40.52861328124999],[-73.972265625,40.40034179687498],[-74.079931640625,39.78813476562496],[-74.06459960937497,39.99311523437498],[-74.79448242187499,39.00190429687501],[-74.95429687499995,38.949951171875],[-74.89702148437502,39.14545898437504],[-75.52421874999999,39.49018554687501],[-75.421875,39.78969726562502],[-75.07416992187495,39.98349609375006],[-75.40063476562503,39.83159179687502],[-75.58759765625001,39.64077148437505],[-75.3921875,39.09277343750006],[-75.08867187499999,38.777539062499955],[-75.18710937499995,38.59111328124999],[-75.03876953124993,38.426367187500006],[-75.934375,37.15190429687496],[-75.97504882812498,37.3984375],[-75.65927734374995,37.953955078125034],[-75.850830078125,37.971582031249994],[-75.85869140624999,38.36206054687503],[-76.05122070312495,38.27954101562503],[-76.2646484375,38.436425781249994],[-76.26416015625,38.599951171875006],[-76.016943359375,38.62509765624998],[-76.21298828124998,38.75830078125003],[-76.34116210937498,38.70966796874998],[-76.16816406249998,38.85273437499998],[-76.32958984375,38.95278320312505],[-76.13520507812493,39.082128906250006],[-76.23569335937498,39.19160156250001],[-76.153125,39.315039062500034],[-75.87597656249997,39.3759765625],[-76.003125,39.41083984375001],[-75.87294921874997,39.510888671874966],[-75.95893554687498,39.58505859374998],[-76.2763671875,39.32275390625],[-76.330810546875,39.40390625],[-76.42089843749997,39.225],[-76.57041015624995,39.26933593749996],[-76.42758789062498,39.12602539062499],[-76.55854492187493,39.065234375000045],[-76.39409179687502,38.368994140625034],[-76.67734374999998,38.611962890624966],[-76.66855468749998,38.5375],[-76.34116210937498,38.08701171875006],[-76.86811523437495,38.39028320312502],[-76.88974609375,38.292089843750006],[-77.00117187499995,38.44526367187504],[-77.23251953125,38.40771484375003],[-77.03037109374995,38.88925781249998],[-77.26040039062502,38.6],[-77.27324218749996,38.35175781249998],[-77.04677734375002,38.356689453125],[-76.26425781250003,37.89355468749997],[-76.34414062499997,37.675683593749994],[-76.49248046874999,37.682226562500006],[-77.11108398437497,38.165673828124994],[-76.54946289062494,37.66914062500001],[-76.30556640625,37.57148437500001],[-76.26347656249996,37.35703125],[-76.40097656249998,37.386132812499994],[-76.45390624999993,37.27353515625006],[-76.75771484375002,37.50541992187496],[-76.28330078125,37.05268554687501],[-76.40087890624997,36.991308593750034],[-76.63090820312493,37.22172851562499],[-77.25087890624994,37.329199218750034],[-76.671875,37.172949218750006],[-76.48784179687502,36.89702148437499],[-75.99941406249997,36.91264648437499],[-75.53417968749997,35.81909179687506],[-75.94648437499995,36.65908203125002],[-75.99277343749995,36.47377929687502],[-75.82006835937494,36.11284179687502],[-76.14785156250002,36.279296875],[-76.15,36.14575195312497],[-76.27060546874998,36.18989257812501],[-76.22739257812498,36.11601562499996],[-76.559375,36.015332031249955],[-76.733642578125,36.229150390624994],[-76.726220703125,35.957617187500034],[-76.06977539062501,35.970312500000034],[-76.08359374999998,35.69052734375006],[-75.85390625,35.96015625000001],[-75.75883789062499,35.84326171875],[-75.77392578124997,35.64697265624997],[-76.17382812499997,35.354150390624994],[-76.489501953125,35.397021484375045],[-76.57719726562502,35.53232421874998],[-76.74140624999998,35.431494140625034],[-77.03999023437495,35.527392578125045],[-76.51293945312497,35.270410156249994],[-76.77915039062503,34.990332031250034],[-77.07026367187501,35.154638671875034],[-76.97495117187503,35.025195312500045],[-76.74497070312498,34.94096679687502],[-76.45673828124998,34.989355468750034],[-76.36220703125,34.9365234375],[-76.43979492187498,34.84291992187502],[-77.29624023437503,34.602929687499994],[-77.41225585937497,34.730810546875034],[-77.37978515625,34.526611328125],[-77.750732421875,34.28496093749996],[-77.92783203125,33.93974609374999],[-77.95327148437494,34.16899414062496],[-78.01333007812502,33.91181640624998],[-78.40585937499995,33.91757812499998],[-78.84145507812497,33.72407226562501],[-79.19379882812498,33.24414062500003],[-79.22646484375,33.40488281249998],[-79.27602539062497,33.135400390624966],[-79.80498046874999,32.78740234374996],[-79.93310546874997,32.81005859375006],[-79.94072265625002,32.667138671874966],[-80.36284179687496,32.500732421875],[-80.6341796875,32.51171875000003],[-80.474267578125,32.42275390625002],[-80.579345703125,32.28730468750004],[-80.80253906249999,32.44804687500002],[-80.69423828124997,32.21572265625002],[-81.11328124999997,31.87861328125001],[-81.06611328124995,31.787988281250023],[-81.259375,31.538916015624977],[-81.17543945312494,31.531298828125017],[-81.38095703124998,31.353271484375],[-81.28847656249997,31.263916015625],[-81.441748046875,31.19970703124997],[-81.5162109375,30.801806640625017],[-81.24951171875003,29.793798828125006],[-80.52412109374995,28.48608398437503],[-80.5849609375,28.271582031250034],[-80.456884765625,27.90068359374996],[-80.61000976562494,28.177587890624977],[-80.60693359375003,28.522900390624983],[-80.693505859375,28.34497070312497],[-80.68847656250003,28.578515625000023],[-80.83818359374999,28.757666015625034],[-80.74863281250003,28.381005859375023],[-80.050048828125,26.807714843750063],[-80.1263671875,25.83349609375],[-80.48466796874999,25.229833984375034],[-81.11049804687494,25.138037109374977],[-81.13603515624999,25.309667968750034],[-80.94042968750003,25.264208984375017],[-81.11333007812499,25.367236328125045],[-81.36494140625001,25.83105468750003],[-81.715478515625,25.98315429687503],[-81.95893554687495,26.489941406249983],[-81.82866210937496,26.68706054687499],[-82.03959960937496,26.552050781250017],[-82.01328125,26.96157226562505],[-82.24287109374998,26.848876953125],[-82.44135742187501,27.059667968750034],[-82.71459960937497,27.499609375000063],[-82.40576171874994,27.862890624999977],[-82.67519531249994,27.963769531250023],[-82.61098632812502,27.77724609375005],[-82.74287109374995,27.709375],[-82.84350585937494,27.845996093750017],[-82.65146484375,28.8875],[-83.69438476562502,29.92597656250001],[-84.04423828124996,30.10380859374999],[-84.30966796874995,30.064746093750045],[-84.38281250000003,29.90737304687505],[-85.31894531249995,29.680224609375045],[-85.413818359375,29.76757812499997],[-85.413818359375,29.842480468749955],[-85.31489257812493,29.758105468750017],[-85.35361328125,29.875732421875],[-85.67578125,30.121923828125063],[-85.60351562500003,30.286767578124966],[-85.75581054687495,30.1669921875],[-86.454443359375,30.39912109375004],[-86.12382812499999,30.40581054687499],[-86.25737304687502,30.493017578124977],[-87.201171875,30.339257812499994],[-86.98579101562498,30.43085937500001],[-86.99755859375,30.5703125],[-87.17060546874998,30.538769531249983],[-87.28105468750002,30.339257812499994],[-87.47578124999998,30.294287109375006],[-87.44829101562499,30.394140625],[-87.62226562499998,30.264746093750006],[-88.00595703124998,30.230908203124955],[-87.79028320312503,30.291796875000017],[-88.011328125,30.694189453125006],[-88.13544921874998,30.366601562499994],[-88.90522460937495,30.415136718750006],[-89.32055664062503,30.3453125],[-89.58847656249998,30.165966796874955],[-90.12597656249997,30.369091796874955],[-90.33198242187493,30.277587890625057],[-90.41303710937501,30.140332031249983],[-90.17534179687499,30.02910156249996],[-89.73745117187497,30.171972656250034],[-89.66503906249994,30.117041015625034],[-89.81518554687497,30.007275390624955],[-89.631689453125,29.90380859375003],[-89.400732421875,30.04604492187505],[-89.35444335937501,29.82021484375005],[-89.72089843749995,29.619287109374966],[-89.01572265625,29.202880859375057],[-89.15551757812497,29.01660156250003],[-89.23608398437494,29.081103515625017],[-89.37612304687497,28.981347656250023],[-89.44316406249996,29.194140625000045],[-90.15908203124997,29.537158203125017],[-90.05278320312499,29.336816406249966],[-90.21279296875,29.104931640624983],[-90.37919921874996,29.29511718750001],[-90.75102539062496,29.13085937500003],[-91.29013671875,29.288964843749994],[-91.15078124999994,29.317919921875045],[-91.24882812499993,29.56420898437503],[-91.51420898437499,29.55537109375001],[-91.8931640625,29.836035156249977],[-92.135498046875,29.699462890625057],[-92.08403320312499,29.59282226562499],[-92.26083984374995,29.55683593750004],[-93.17568359375,29.778955078124994],[-93.82646484374999,29.725146484375045],[-93.84145507812502,29.97973632812503],[-93.89047851562495,29.689355468750023],[-94.759619140625,29.384277343750057],[-94.52626953125,29.547949218750006],[-94.77827148437498,29.54785156249997],[-94.74194335937497,29.75],[-95.0228515625,29.70234375000001],[-94.88828125000003,29.37055664062501],[-95.27348632812499,28.96386718750003],[-96.23452148437502,28.488964843749983],[-96.01103515624996,28.631933593749977],[-96.44873046874997,28.594482421875],[-96.64003906249994,28.708789062500017],[-96.42109374999993,28.457324218750045],[-96.67636718749998,28.34130859375003],[-96.77353515624998,28.421630859375057],[-96.839501953125,28.194384765625017],[-97.156494140625,28.144335937500045],[-97.141259765625,28.060742187499983],[-97.034326171875,28.093847656250063],[-97.07309570312498,27.98608398437503],[-97.43149414062498,27.83720703124999],[-97.28872070312494,27.670605468749983],[-97.43911132812502,27.328271484374966],[-97.76845703124997,27.45751953125],[-97.69238281250003,27.287158203125017],[-97.48510742187497,27.237402343750006],[-97.55468749999994,26.96733398437496],[-97.43505859375,26.48583984375003],[-97.14624023437494,25.961474609375045],[-97.37563476562497,25.871826171875],[-99.10776367187498,26.446923828124994],[-99.45654296874999,27.05668945312496],[-99.50532226562497,27.54833984375003],[-100.29604492187495,28.32768554687499],[-100.75458984375001,29.182519531249994],[-101.44038085937503,29.77685546875],[-102.26894531249998,29.871191406250034],[-102.61494140624994,29.75234375],[-102.8919921875,29.216406250000034],[-103.16831054687498,28.998193359374994],[-104.110595703125,29.386132812499994],[-104.50400390624995,29.677685546874955],[-104.97880859374996,30.645947265624955],[-106.14804687499995,31.450927734375],[-106.44541015624996,31.768408203125006],[-108.21181640625002,31.779345703125017],[-108.21445312499993,31.329443359375034],[-111.0419921875,31.32421875000003],[-114.83593749999994,32.50830078125003],[-114.72475585937495,32.71533203125003],[-117.12827148437495,32.533349609374994],[-117.46743164062495,33.295507812500006],[-118.08051757812497,33.72216796874997],[-118.41044921874996,33.74394531249996],[-118.506201171875,34.01738281249999],[-119.14375,34.11201171874998],[-119.60605468749999,34.41801757812499],[-120.48120117187503,34.47163085937498],[-120.64467773437502,34.57998046875002],[-120.65908203124994,35.122412109375034],[-120.85737304687501,35.209667968749955],[-120.899609375,35.42509765624999],[-121.28383789062494,35.67631835937499],[-121.87739257812498,36.33105468749997],[-121.80742187499995,36.851220703124994],[-122.394921875,37.20751953125003],[-122.49921875000001,37.542626953124994],[-122.44560546875002,37.797998046874966],[-122.07050781249998,37.47827148437503],[-122.38544921875001,37.960595703124966],[-122.31425781249999,38.00732421874997],[-121.52534179687503,38.05590820312503],[-122.39335937499995,38.14482421875002],[-122.52133789062499,37.82641601562497],[-122.93198242187498,38.05546875000002],[-122.998779296875,37.98862304687498],[-122.90815429687501,38.19658203124999],[-123.701123046875,38.90727539062502],[-123.83291015624994,39.775488281250034],[-124.35654296875003,40.37109374999997],[-124.07192382812497,41.45952148437502],[-124.53964843750003,42.812890624999966],[-124.14873046874997,43.691748046875034],[-123.92934570312495,45.57695312499996],[-123.989306640625,46.21938476562502],[-123.22060546874998,46.153613281250045],[-123.46484375,46.27109374999998],[-124.07275390624996,46.279443359374994],[-124.04433593750002,46.605078125],[-123.946142578125,46.43256835937501],[-123.88916015625003,46.660009765625006],[-124.11254882812497,46.862695312499994],[-123.84287109375002,46.963183593750045],[-124.11171875,47.03520507812496],[-124.1392578125,46.95468749999998],[-124.376025390625,47.658642578124955],[-124.66308593749996,47.97412109375003],[-124.7099609375,48.38037109375],[-123.97578125,48.16845703125],[-122.97387695312499,48.07329101562496],[-122.77861328125,48.13759765625002],[-122.65664062500002,47.88115234374999],[-122.77841796874996,47.738427734374966],[-122.82138671875,47.79316406250001],[-123.1390625,47.386083984375034],[-122.92216796874993,47.40766601562498],[-123.066796875,47.39965820312506],[-123.04863281249995,47.479345703125034],[-122.53281250000002,47.919726562500045],[-122.67548828124995,47.612353515625045],[-122.57788085937496,47.29316406250001],[-122.76777343750001,47.21835937500006],[-122.82846679687503,47.336572265624994],[-123.02758789062501,47.13891601562503],[-122.70195312500002,47.11088867187502],[-122.35380859374996,47.37158203125],[-122.40180664062497,47.78427734374998],[-122.24199218750002,48.01074218750003],[-122.5169921875,48.15966796874997],[-122.40854492187502,48.29389648437498],[-122.66899414062496,48.465234374999966],[-122.49677734374995,48.50556640625001],[-122.51274414062502,48.66943359375],[-122.56201171875001,48.777978515624994],[-122.68593749999995,48.794287109375034],[-122.72246093750002,48.85302734375003],[-122.78876953125003,48.993017578125034],[-121.40722656249994,48.993017578125034],[-119.70170898437495,48.993017578125034],[-119.27534179687494,48.99306640625005],[-118.84892578124993,48.99306640625005],[-117.99619140625002,48.99306640625005],[-116.71704101562501,48.99306640625005],[-110.74765625,48.99306640625005],[-104.77832031249997,48.993115234374955],[-98.80898437499995,48.99316406249997],[-97.52983398437493,48.99316406249997],[-96.67705078124993,48.99316406249997],[-96.25068359374993,48.99316406249997],[-95.39790039062493,48.99316406249997],[-95.16206054687493,48.991748046875045],[-95.15527343749997,49.36967773437502],[-94.85434570312495,49.304589843749994],[-94.86040039062493,49.258593750000045],[-94.80346679687497,49.0029296875]]],[[[-176.28671874999998,51.79199218750006],[-176.34965820312502,51.733300781249994],[-176.41372070312502,51.840576171875],[-176.28671874999998,51.79199218750006]]],[[[-177.87905273437502,51.64970703125002],[-178.05888671875,51.67260742187497],[-177.98637695312493,51.76425781249998],[-178.16826171874996,51.90302734375001],[-177.644482421875,51.826269531250006],[-177.87905273437502,51.64970703125002]]],[[[-177.14819335937497,51.71674804687498],[-177.67021484375002,51.701074218749994],[-177.11005859375,51.92875976562502],[-177.14819335937497,51.71674804687498]]],[[[-176.593310546875,51.86669921875],[-176.45234374999995,51.735693359375034],[-176.96162109374998,51.60366210937505],[-176.69833984374998,51.986035156249955],[-176.593310546875,51.86669921875]]],[[[179.72773437500015,51.905419921874966],[179.50390625000003,51.97958984374998],[179.6271484375001,52.03041992187502],[179.72773437500015,51.905419921874966]]],[[[177.4154296875,51.88281249999997],[177.25029296875013,51.902929687500006],[177.6696289062501,52.10302734375],[177.4154296875,51.88281249999997]]],[[[-173.5533203125,52.13627929687502],[-173.02290039062504,52.07915039062502],[-173.83579101562498,52.048193359375006],[-173.99248046874993,52.12333984374996],[-173.5533203125,52.13627929687502]]],[[[-172.464794921875,52.27226562500002],[-172.61982421874998,52.27285156250005],[-172.47041015625,52.38803710937506],[-172.31362304687497,52.32958984375006],[-172.464794921875,52.27226562500002]]],[[[-174.67739257812502,52.035009765625006],[-175.29555664062502,52.022167968749955],[-174.30615234375,52.216162109375034],[-174.43554687499997,52.317236328125034],[-174.168896484375,52.42016601562503],[-174.04560546875,52.36723632812499],[-174.12065429687493,52.13520507812498],[-174.67739257812502,52.035009765625006]]],[[[173.72275390625018,52.35957031250004],[173.40234375000009,52.40478515625],[173.77607421875004,52.49511718750003],[173.72275390625018,52.35957031250004]]],[[[172.81181640625002,53.01298828125002],[173.43603515625003,52.85205078125],[172.93515625000012,52.752099609374966],[172.49482421875004,52.93789062499999],[172.81181640625002,53.01298828125002]]],[[[-167.96435546875003,53.345117187499994],[-169.088916015625,52.83203125],[-168.68984375000002,53.227246093749955],[-168.38041992187496,53.28344726562506],[-168.28769531249998,53.500146484374966],[-167.82807617187495,53.50795898437505],[-167.96435546875003,53.345117187499994]]],[[[-166.61533203124998,53.90092773437499],[-166.37231445312494,53.99897460937498],[-166.230859375,53.93261718750006],[-166.54560546875,53.726464843749966],[-166.354541015625,53.67353515625004],[-166.85097656249997,53.45288085937503],[-167.78085937500003,53.30024414062501],[-167.13608398437503,53.526464843750006],[-167.01572265625003,53.69838867187502],[-166.80898437500002,53.64614257812505],[-166.741259765625,53.71293945312496],[-167.10561523437497,53.813378906249994],[-167.03808593749997,53.9421875],[-166.67329101562498,54.00595703124998],[-166.61533203124998,53.90092773437499]]],[[[-165.841552734375,54.070654296875006],[-166.05664062500003,54.054345703124994],[-166.08774414062498,54.16914062500001],[-165.89287109375,54.20698242187498],[-165.69287109375,54.09990234375002],[-165.841552734375,54.070654296875006]]],[[[-165.56113281249998,54.13671874999997],[-165.55063476562498,54.28452148437498],[-165.40786132812502,54.19682617187496],[-165.56113281249998,54.13671874999997]]],[[[-162.29814453124993,54.847021484375006],[-162.43388671875,54.931542968749994],[-162.26459960937504,54.983496093750006],[-162.29814453124993,54.847021484375006]]],[[[-163.476025390625,54.98071289062497],[-163.37895507812496,54.81552734374998],[-163.083251953125,54.66899414062496],[-163.35810546874995,54.73569335937506],[-164.82343749999998,54.41909179687505],[-164.887646484375,54.60781250000002],[-164.47861328124998,54.906835937500006],[-163.80712890624997,55.04907226562503],[-163.476025390625,54.98071289062497]]],[[[-159.51513671875,55.15185546875003],[-159.617724609375,55.05732421875004],[-159.54506835937497,55.22597656250002],[-159.51513671875,55.15185546875003]]],[[[-131.33974609375002,55.079833984375],[-131.32954101562498,54.887744140625045],[-131.592236328125,55.02568359374999],[-131.5654296875,55.26411132812498],[-131.33974609375002,55.079833984375]]],[[[-159.87299804687495,55.128759765625034],[-160.22705078124997,54.92270507812506],[-160.17207031249995,55.123046875],[-159.88735351562497,55.27299804687502],[-159.87299804687495,55.128759765625034]]],[[[-132.86225585937504,54.894433593749966],[-132.61723632812493,54.892431640625006],[-132.70581054687497,54.684179687500034],[-133.42905273437498,55.30380859374998],[-133.097412109375,55.213720703125006],[-132.86225585937504,54.894433593749966]]],[[[-160.329296875,55.337695312500045],[-160.34331054687493,55.25878906250006],[-160.51748046875,55.33383789062506],[-160.329296875,55.337695312500045]]],[[[-160.68491210937498,55.314794921875006],[-160.552783203125,55.38076171875002],[-160.48754882812503,55.18486328124999],[-160.79506835937497,55.14521484375001],[-160.72392578124993,55.404638671875006],[-160.68491210937498,55.314794921875006]]],[[[-133.30507812500002,55.54375],[-133.6501953125,55.26928710937506],[-133.73710937500002,55.49692382812498],[-133.30507812500002,55.54375]]],[[[-155.56601562500003,55.82119140625005],[-155.73735351562493,55.82978515625001],[-155.59394531250004,55.92431640625],[-155.56601562500003,55.82119140625005]]],[[[-130.97915039062502,55.489160156249994],[-131.187890625,55.206298828125],[-131.44755859374996,55.40878906250006],[-131.7625,55.16582031250002],[-131.84609374999997,55.41625976562497],[-131.62495117187504,55.831689453124966],[-131.26923828125004,55.95537109375002],[-130.997802734375,55.727636718750006],[-130.97915039062502,55.489160156249994]]],[[[-133.56611328125,56.33920898437498],[-133.202978515625,56.31982421875003],[-133.096630859375,56.09003906250001],[-132.59760742187504,55.89501953125],[-132.17270507812498,55.48061523437502],[-132.51127929687493,55.59394531250001],[-132.63129882812495,55.47319335937502],[-132.41787109375002,55.48291015625006],[-132.20668945312497,55.22441406249996],[-131.97641601562498,55.208593750000034],[-132.06474609375002,54.713134765625],[-133.11855468750002,55.32763671875003],[-132.95888671875002,55.39555664062502],[-133.0333984375,55.589697265625034],[-133.68017578124994,55.78515625],[-133.24150390624993,55.920800781249994],[-133.371240234375,56.035888671875],[-133.74252929687498,55.96484375],[-133.530859375,56.145654296874966],[-133.56611328125,56.33920898437498]]],[[[-132.77988281249998,56.24726562499998],[-133.03500976562498,56.34091796875006],[-132.90205078124998,56.45375976562505],[-132.62910156249995,56.411914062500045],[-132.77988281249998,56.24726562499998]]],[[[-132.11235351562493,56.109375],[-132.13295898437497,55.94326171875005],[-132.28730468749995,55.92939453124998],[-132.65991210937503,56.07817382812499],[-132.379833984375,56.49877929687497],[-132.06689453125,56.24423828124998],[-132.11235351562493,56.109375]]],[[[-154.208642578125,56.51489257812497],[-154.32221679687504,56.570605468750045],[-154.11040039062496,56.602929687499966],[-154.208642578125,56.51489257812497]]],[[[-169.755224609375,56.63505859375002],[-169.47431640624998,56.59404296875002],[-169.6326171875,56.545703125000045],[-169.755224609375,56.63505859375002]]],[[[-132.746875,56.525683593750045],[-132.94804687500002,56.56723632812498],[-132.842529296875,56.79477539062506],[-132.56796875000003,56.57583007812505],[-132.746875,56.525683593750045]]],[[[-133.98959960937503,56.84497070312497],[-133.73837890625,56.65043945312496],[-133.94970703125,56.12773437499996],[-134.18959960937502,56.07695312500002],[-134.084375,56.456347656250045],[-134.37368164062502,56.838671875000045],[-134.14326171874998,56.93232421875001],[-133.98959960937503,56.84497070312497]]],[[[-133.36621093750006,57.003515625000034],[-132.99624023437497,56.93041992187497],[-132.95917968749998,56.67705078124996],[-133.03491210937494,56.62075195312505],[-133.32895507812498,56.83007812499997],[-133.158154296875,56.495166015625045],[-133.4841796875,56.45175781249998],[-133.979443359375,57.009570312500045],[-133.36621093750006,57.003515625000034]]],[[[-153.007080078125,57.12485351562498],[-153.37460937499998,57.05190429687505],[-153.285205078125,57.18505859375],[-152.90839843750004,57.152441406250006],[-153.007080078125,57.12485351562498]]],[[[-134.96977539062496,57.351416015625034],[-134.62070312499998,56.71831054687502],[-134.68188476562503,56.216162109375034],[-134.98056640625003,56.518945312499994],[-134.88344726562497,56.679052734375034],[-135.33061523437505,56.821875],[-135.19960937499997,57.02734375],[-135.45493164062503,57.24941406250005],[-135.81230468750002,57.00952148437503],[-135.82275390625,57.280419921874966],[-135.448681640625,57.534375],[-134.96977539062496,57.351416015625034]]],[[[-152.89804687499998,57.82392578125004],[-152.42875976562493,57.82568359375003],[-152.48261718749998,57.70332031249998],[-152.21621093749997,57.577001953125006],[-152.41220703125003,57.454785156249955],[-152.94077148437498,57.49809570312499],[-152.67905273437503,57.345117187499994],[-153.274365234375,57.22636718749996],[-153.732568359375,57.052343750000034],[-153.643310546875,56.960742187500045],[-154.02734375,56.77797851562502],[-153.793212890625,56.98950195312503],[-154.24375,57.143017578124955],[-154.33896484374998,56.9208984375],[-154.67319335937498,57.44609375],[-154.11616210937498,57.651220703125006],[-153.6876953125,57.30512695312504],[-153.841552734375,57.86284179687496],[-153.48793945312497,57.73095703125],[-153.21748046875004,57.79575195312506],[-153.16044921875,57.97197265624999],[-152.85039062499993,57.896777343750045],[-152.89804687499998,57.82392578125004]]],[[[-135.73037109375002,58.244238281250034],[-135.61323242187507,57.99184570312505],[-135.346630859375,58.12412109374998],[-134.9546875,58.01533203125004],[-134.97065429687495,57.817236328125006],[-135.33847656250003,57.768652343750034],[-134.97885742187503,57.724365234375],[-134.93149414062498,57.48115234375001],[-135.564208984375,57.66640625],[-135.691943359375,57.41992187500006],[-135.91079101562502,57.44658203124999],[-136.568603515625,57.97216796875003],[-136.32197265625,58.21889648437502],[-136.14375,58.098486328125006],[-136.09438476562502,58.198144531249966],[-135.73037109375002,58.244238281250034]]],[[[-134.68027343749998,58.16166992187499],[-134.24008789062498,58.143994140624955],[-133.82275390624997,57.62866210937503],[-134.29233398437498,58.044726562500074],[-133.91113281250003,57.3525390625],[-134.51601562499997,57.042578125],[-134.48676757812495,57.48203125],[-134.92348632812497,58.354638671874966],[-134.68027343749998,58.16166992187499]]],[[[-152.416943359375,58.360205078125034],[-151.974365234375,58.30986328124999],[-152.068896484375,58.17792968750001],[-152.26835937499993,58.25170898437506],[-152.30922851562502,58.133886718750034],[-152.5982421875,58.16259765625],[-152.92841796875004,57.99370117187499],[-153.38134765625003,58.08720703125002],[-152.976123046875,58.29702148437505],[-152.771875,58.278564453125],[-152.84111328125002,58.41640625000002],[-152.416943359375,58.360205078125034]]],[[[-152.486083984375,58.485009765624966],[-152.63662109375002,58.54169921874998],[-152.3955078125,58.619384765625],[-152.486083984375,58.485009765624966]]],[[[-160.918994140625,58.57709960937498],[-161.13149414062502,58.668212890625],[-160.71513671875005,58.79521484375002],[-160.918994140625,58.57709960937498]]],[[[-148.02177734375,60.06533203125005],[-148.271875,60.05327148437499],[-148.07958984375003,60.151660156250045],[-148.02177734375,60.06533203125005]]],[[[-147.735888671875,59.81323242187503],[-147.76806640625,59.94375],[-147.180859375,60.358251953125034],[-147.01987304687498,60.33222656249998],[-147.735888671875,59.81323242187503]]],[[[-166.13544921875,60.38354492187503],[-165.72968750000004,60.31420898437503],[-165.591796875,59.913134765625045],[-166.14873046874996,59.764111328124955],[-167.13886718749998,60.00854492187503],[-167.43642578125002,60.20664062500006],[-166.836328125,60.21699218750004],[-166.47568359374998,60.382763671874955],[-166.13544921875,60.38354492187503]]],[[[-146.3939453125,60.44965820312501],[-146.10224609374998,60.41118164062499],[-146.61831054687497,60.27368164062503],[-146.70253906249997,60.40854492187498],[-146.3939453125,60.44965820312501]]],[[[-147.658251953125,60.45048828124999],[-147.787841796875,60.17792968749998],[-147.89145507812498,60.299414062500034],[-147.658251953125,60.45048828124999]]],[[[-172.74223632812496,60.45737304687498],[-172.23208007812494,60.299121093750074],[-172.63574218750003,60.328857421875],[-173.04765625000002,60.56831054687501],[-172.74223632812496,60.45737304687498]]],[[[-171.46303710937494,63.640039062499994],[-171.03486328125,63.58549804687499],[-170.29936523437502,63.68061523437501],[-169.55454101562498,63.373486328124955],[-168.71601562500004,63.310595703125045],[-168.76132812500003,63.21376953125002],[-169.364697265625,63.17114257812506],[-169.67636718750003,62.95610351562502],[-169.81860351562494,63.122363281250045],[-170.84838867187494,63.44438476562502],[-171.63183593749997,63.351220703124966],[-171.74638671874993,63.703076171874955],[-171.46303710937494,63.640039062499994]]],[[[-141.00214843750004,68.77416992187506],[-141.00214843750004,67.89755859374998],[-141.00214843750004,66.43652343750006],[-141.00214843750004,65.55991210937498],[-141.00214843750004,64.09887695312506],[-141.00214843750004,63.22226562499998],[-141.00214843750004,61.761279296875045],[-141.00214843750004,60.884667968749994],[-141.00214843750004,60.30024414062504],[-140.76274414062505,60.259130859375006],[-140.525439453125,60.218359375000034],[-140.45283203125004,60.29970703125002],[-139.97329101562497,60.183154296875074],[-139.67631835937505,60.32832031249998],[-139.23476562499997,60.339746093749994],[-139.07924804687497,60.34370117187501],[-139.07924804687497,60.279443359374966],[-139.136962890625,60.17270507812498],[-139.18515624999998,60.083593750000034],[-138.86875,59.94575195312501],[-138.317626953125,59.611132812500074],[-137.59331054687493,59.22626953124998],[-137.52089843750002,58.91538085937498],[-137.43857421875003,58.903125],[-137.2775390625,58.988183593749994],[-137.126220703125,59.04096679687498],[-136.81328125000002,59.150048828124994],[-136.57875976562502,59.15224609375002],[-136.46635742187493,59.459082031250006],[-136.27797851562502,59.48032226562506],[-136.321826171875,59.604833984375034],[-135.70258789062504,59.72875976562506],[-135.36787109374998,59.743310546874994],[-135.051025390625,59.57866210937502],[-134.94375,59.28828125000001],[-134.67724609374997,59.19926757812499],[-134.39306640625,59.009179687499994],[-134.32963867187505,58.93969726562506],[-134.21850585937503,58.849902343750045],[-133.54638671874997,58.50346679687499],[-133.27529296875,58.22285156250004],[-133.00141601562495,57.948974609375],[-132.55048828125,57.499902343749994],[-132.44248046874998,57.40673828125003],[-132.30166015624997,57.27631835937501],[-132.232177734375,57.19853515624999],[-132.27939453124998,57.14536132812498],[-132.33798828124998,57.07944335937506],[-132.15703125,57.048193359375006],[-132.03154296875,57.02656250000004],[-132.062890625,56.95336914062503],[-132.104296875,56.856787109375006],[-131.86616210937495,56.792822265625006],[-131.82426757812496,56.589990234374994],[-131.471875,56.55673828125006],[-130.649072265625,56.26367187500003],[-130.47709960937496,56.230566406250034],[-130.413134765625,56.12250976562498],[-130.09785156249995,56.10927734375002],[-130.01406249999997,55.950537109375006],[-130.2140625,55.02587890625003],[-130.57534179687497,54.769677734374966],[-130.849609375,54.80761718750006],[-131.04785156249997,55.157666015624955],[-130.74819335937502,55.31801757812502],[-131.127685546875,55.96015625000001],[-131.032763671875,56.08808593749998],[-131.78417968749997,55.876562500000034],[-131.98339843749994,55.535009765625006],[-132.15541992187502,55.59956054687501],[-132.20751953124997,55.75341796875],[-131.84384765625003,56.16010742187498],[-131.55136718749998,56.206787109375],[-131.88789062500004,56.24165039062498],[-132.18203125000002,56.42065429687506],[-132.82460937500002,57.05581054687505],[-133.465869140625,57.17216796875002],[-133.64873046874993,57.64228515624998],[-133.11704101562498,57.56621093750002],[-133.535205078125,57.83295898437501],[-133.1943359375,57.87768554687506],[-133.559375,57.924462890624994],[-133.72231445312502,57.84423828125],[-134.03110351562498,58.072167968749966],[-133.87675781249996,58.51816406249998],[-134.20883789062503,58.232958984375045],[-134.77612304687506,58.45385742187503],[-135.36367187500002,59.41943359375],[-135.50234375000002,59.202294921874994],[-135.090234375,58.245849609375],[-135.57177734374994,58.41206054687504],[-135.89755859374998,58.40019531250002],[-136.04311523437497,58.82163085937498],[-135.82636718750004,58.89794921874997],[-136.0166015625,58.87397460937498],[-136.150048828125,59.04809570312503],[-136.22583007812497,58.765478515625006],[-136.98901367187503,59.03447265624999],[-137.05903320312498,58.87373046875001],[-136.613916015625,58.809277343749955],[-136.48374023437503,58.61767578125],[-136.224609375,58.602246093749955],[-136.06147460937495,58.45273437500006],[-136.607421875,58.24399414062498],[-137.54399414062502,58.58120117187502],[-138.51489257812503,59.16591796875005],[-139.77329101562498,59.52729492187504],[-139.51303710937498,59.698095703125006],[-139.5123046875,59.95356445312501],[-139.28671874999998,59.610937500000034],[-139.22080078125003,59.819873046875045],[-138.9880859375,59.83500976562502],[-139.43144531249996,60.012255859375074],[-140.41982421874997,59.71074218750002],[-141.40830078125,59.90278320312498],[-141.408740234375,60.11767578125006],[-141.67016601562497,59.969873046874966],[-142.94565429687503,60.09697265625002],[-144.14721679687494,60.01640625000002],[-144.185498046875,60.150732421875034],[-144.901318359375,60.335156249999955],[-144.69111328125,60.66909179687502],[-145.248291015625,60.38012695312506],[-145.898876953125,60.47817382812505],[-145.67490234374998,60.65112304687503],[-146.57045898437497,60.72915039062502],[-146.39199218749997,60.810839843750045],[-146.63842773437497,60.89731445312498],[-146.59912109374994,61.05351562500002],[-146.284912109375,61.11264648437498],[-147.89111328125,60.889892578125],[-148.00512695312494,60.96855468750002],[-147.75185546874997,61.218945312499955],[-148.34189453125,61.060400390625006],[-148.34443359374998,60.853564453125045],[-148.55615234374994,60.82700195312506],[-148.25673828124997,60.67529296874997],[-148.64013671875,60.48945312500004],[-148.11918945312502,60.57514648437498],[-147.96411132812494,60.48486328124997],[-148.430712890625,59.98911132812498],[-149.2666015625,59.99829101562497],[-149.395263671875,60.10576171875002],[-149.59804687500002,59.77045898437501],[-149.7138671875,59.91958007812502],[-149.80126953124994,59.737939453124966],[-150.00532226562507,59.78442382812503],[-150.19804687499996,59.56655273437505],[-150.60737304687504,59.56337890625002],[-150.934521484375,59.249121093750034],[-151.18276367187502,59.30078124999997],[-151.73818359375002,59.18852539062502],[-151.94951171875,59.26508789062498],[-151.88461914062503,59.386328125],[-151.39960937499995,59.51630859375001],[-151.04648437499998,59.771826171875034],[-151.45009765624997,59.65039062499997],[-151.85322265625,59.78208007812498],[-151.39599609375006,60.27446289062502],[-151.35644531249997,60.72294921874999],[-150.44125976562503,61.02358398437505],[-149.07509765624997,60.87641601562498],[-150.05327148437496,61.17109374999998],[-149.433544921875,61.50078125000002],[-149.97568359374998,61.27934570312502],[-150.61225585937495,61.301123046875006],[-151.59350585937494,60.979638671874966],[-152.54091796874997,60.265429687500045],[-153.025,60.29565429687497],[-152.660107421875,59.99721679687502],[-153.21123046875002,59.84272460937498],[-153.09360351562503,59.70913085937505],[-153.65253906250004,59.64702148437499],[-154.17832031250003,59.155566406250074],[-153.41826171875,58.9599609375],[-153.43759765625003,58.754833984374955],[-154.289013671875,58.30434570312502],[-154.247021484375,58.15942382812497],[-155.006884765625,58.01606445312501],[-155.77797851562497,57.56821289062498],[-156.43588867187498,57.359960937500006],[-156.62900390624998,57.00996093750001],[-158.41440429687498,56.435839843750045],[-158.5521484375,56.31269531249998],[-158.27563476562497,56.19624023437498],[-158.5046875,56.062109375],[-158.59116210937503,56.18452148437498],[-158.78984375000002,55.98691406250006],[-159.52324218749993,55.81000976562498],[-159.65966796875003,55.625927734374955],[-159.77138671874997,55.84111328125002],[-160.49931640625002,55.53730468750004],[-161.38193359374998,55.371289062499955],[-161.44379882812495,55.513281250000034],[-161.202099609375,55.54355468750006],[-161.51694335937503,55.61840820312503],[-162.073974609375,55.13930664062505],[-162.38637695312497,55.05234375],[-162.63037109375003,55.24667968749998],[-162.67436523437505,54.99658203125],[-162.86503906249996,54.954541015624955],[-163.11962890624997,55.06469726562503],[-163.131103515625,54.916552734375045],[-163.33530273437503,54.83916015624999],[-163.27880859374997,55.12182617187503],[-162.906591796875,55.19555664062503],[-161.69731445312502,55.9072265625],[-161.215625,56.02143554687498],[-160.8986328125,55.99365234375],[-161.00537109375,55.88715820312498],[-160.80283203125003,55.754443359375045],[-160.70634765625002,55.870458984375034],[-160.29169921875,55.80507812500005],[-160.53906250000006,56.00629882812501],[-160.30205078125,56.31411132812502],[-158.91801757812502,56.882177734375006],[-158.675146484375,56.79487304687498],[-158.66079101562502,57.03940429687498],[-158.32094726562497,57.29790039062499],[-157.84575195312496,57.52807617187497],[-157.4619140625,57.506201171875034],[-157.697216796875,57.679443359375],[-157.610888671875,58.050830078125074],[-157.19370117187498,58.19418945312506],[-157.48837890624998,58.25371093750002],[-157.52363281249998,58.421337890624955],[-156.97465820312496,58.736328125],[-156.80888671875005,59.13427734375],[-157.14204101562504,58.87763671875001],[-158.19091796875003,58.6142578125],[-158.50317382812494,58.85034179687497],[-158.42563476562498,58.99931640625002],[-158.080517578125,58.97744140625002],[-158.422802734375,59.08984375],[-158.67827148437502,58.92939453124998],[-158.80947265625002,58.973876953125],[-158.78862304687493,58.440966796875045],[-158.95068359375,58.404541015625],[-159.67026367187498,58.9111328125],[-159.92021484375,58.819873046875074],[-160.36313476562498,59.05117187500002],[-161.246826171875,58.799462890624994],[-161.36132812499994,58.66953124999998],[-162.144921875,58.64423828124998],[-161.724365234375,58.794287109375006],[-161.64438476562498,59.109667968750045],[-161.9810546875,59.14614257812502],[-161.82871093749998,59.588623046875],[-162.421337890625,60.28398437500002],[-161.96201171875003,60.695361328125045],[-162.68496093749997,60.268945312499966],[-162.57075195312495,59.98974609375],[-163.68037109374998,59.80151367187503],[-164.14282226562497,59.89677734374999],[-165.02651367187497,60.500634765624994],[-165.35380859375002,60.54121093750001],[-164.80517578125,60.89204101562498],[-164.31850585937497,60.77128906249999],[-164.37236328125002,60.59184570312502],[-163.999560546875,60.76606445312498],[-163.72998046874997,60.589990234374994],[-163.420947265625,60.757421875],[-163.90654296874996,60.85380859375002],[-163.58691406249994,60.902978515624994],[-163.74902343750003,60.9697265625],[-163.99462890624997,60.86469726562501],[-165.11484375,60.93281250000004],[-164.86899414062503,61.11176757812498],[-165.27978515624994,61.169628906249955],[-165.27363281250004,61.27485351562498],[-165.56586914062498,61.10234375000002],[-165.86396484375004,61.33569335937503],[-165.84531249999998,61.536230468750034],[-166.152734375,61.545947265625074],[-166.16811523437502,61.65083007812501],[-165.80893554687503,61.69609375000002],[-166.07880859375,61.803125],[-165.61279296875003,61.86928710937502],[-165.707275390625,62.10043945312506],[-165.19453125,62.47353515625002],[-164.75786132812493,62.496728515624966],[-164.589453125,62.709375],[-164.79267578125,62.623193359374966],[-164.79965820312503,62.918066406250006],[-164.384228515625,63.03046874999998],[-164.40903320312503,63.21503906250001],[-163.94287109375,63.247216796874994],[-163.61630859374998,63.125146484374994],[-163.73784179687496,63.016406250000045],[-163.504345703125,63.105859374999966],[-163.28784179687494,63.046435546875045],[-162.621484375,63.26582031249998],[-162.28281250000003,63.529199218749994],[-161.97397460937498,63.45292968749999],[-161.09970703125003,63.557910156250045],[-160.778564453125,63.818945312500034],[-160.987548828125,64.25126953125002],[-161.49072265625003,64.43378906249998],[-160.93193359374996,64.5791015625],[-160.855908203125,64.755615234375],[-161.13017578125005,64.92543945312505],[-161.759375,64.816259765625],[-162.80703124999997,64.37421875000001],[-163.20390625,64.65200195312502],[-163.14433593750002,64.423828125],[-163.71308593749998,64.588232421875],[-164.978759765625,64.45366210937502],[-166.1427734375,64.58276367187503],[-166.48139648437498,64.72807617187507],[-166.415234375,64.926513671875],[-166.92841796875,65.15708007812498],[-166.15703125,65.28583984375001],[-167.40400390625,65.42211914062497],[-168.08837890624997,65.65776367187502],[-166.39873046875002,66.14443359375005],[-165.62993164062496,66.131201171875],[-165.77617187500002,66.31904296875001],[-164.46049804687502,66.58842773437499],[-163.63823242187502,66.57465820312504],[-163.89394531249997,66.57587890625001],[-164.03374023437493,66.21552734374995],[-163.69536132812502,66.08383789062503],[-161.93369140625003,66.04287109374997],[-161.45541992187503,66.28139648437497],[-161.03427734375003,66.18881835937503],[-161.12031249999995,66.334326171875],[-161.91689453124997,66.41181640624998],[-162.54365234375004,66.80512695312501],[-162.36162109375,66.94731445312502],[-161.591015625,66.45952148437502],[-160.23168945312503,66.420263671875],[-160.360888671875,66.6125],[-160.864013671875,66.67084960937501],[-161.39804687499998,66.55185546875],[-161.85668945312497,66.70034179687497],[-161.719921875,67.02055664062502],[-163.5318359375,67.10258789062502],[-164.1251953125,67.60673828125007],[-166.786279296875,68.35961914062497],[-166.38051757812502,68.425146484375],[-166.20908203125,68.88535156250003],[-165.04394531249994,68.882470703125],[-163.867919921875,69.03666992187505],[-161.88095703125003,70.33173828125001],[-162.073876953125,70.16196289062498],[-160.9962890625,70.30458984375],[-160.11713867187495,70.59121093750002],[-159.86567382812498,70.27885742187499],[-159.81499023437496,70.49707031250003],[-159.38676757812493,70.52451171875003],[-160.081591796875,70.63486328125003],[-159.680908203125,70.786767578125],[-159.31450195312496,70.87851562500003],[-159.251171875,70.7484375],[-157.909375,70.860107421875],[-156.47021484374994,71.40766601562501],[-156.469970703125,71.29155273437507],[-155.57944335937503,71.12109374999997],[-156.14658203125,70.92783203125003],[-155.97353515625002,70.84199218749995],[-155.16684570312498,71.09921875000006],[-154.19521484375002,70.80112304687498],[-153.23291015625,70.93256835937504],[-152.49121093749994,70.88095703125],[-152.23291015625,70.81035156249999],[-152.39921875,70.62045898437503],[-151.76904296875,70.56015625],[-151.94467773437498,70.45209960937501],[-149.26943359374997,70.50078124999999],[-147.70537109375,70.21723632812495],[-145.82314453124997,70.16005859375002],[-145.19736328125003,70.00869140625002],[-143.218310546875,70.11625976562499],[-142.70786132812498,70.03378906249998],[-141.40791015625,69.65336914062502],[-141.00214843750004,69.65078125000002],[-141.00214843750004,68.77416992187506]]]]},"properties":{"name":"United States","childNum":76}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[71.20615234375006,39.892578125],[71.15625,39.88344726562502],[71.06425781250002,39.88491210937505],[71.01171874999997,39.895117187500006],[71.04365234375004,39.97631835937503],[71.04482421875005,39.992529296875034],[70.96064453125004,40.087988281250034],[71.00546875,40.15229492187498],[71.0241210937501,40.14916992187497],[71.08037109375007,40.07988281249999],[71.2287109375001,40.04814453124999],[71.20615234375006,39.892578125]]],[[[70.94677734374997,42.24868164062505],[70.97900390625003,42.26655273437504],[71.03603515625,42.28466796875],[71.12998046875006,42.25],[71.21269531250002,42.20644531250005],[71.23232421875005,42.18627929687503],[71.22851562499997,42.16289062499996],[70.18095703125007,41.571435546874994],[70.734375,41.400537109374994],[70.86044921875006,41.22490234375002],[71.11074218750005,41.152636718750045],[71.29882812500003,41.152490234374994],[71.39306640625003,41.123388671875034],[71.40839843750004,41.13603515625002],[71.42089843750003,41.341894531250034],[71.60625,41.367431640625],[71.66494140625,41.54121093749998],[71.70068359374997,41.454003906249966],[71.75771484375005,41.42802734375002],[71.79248046875003,41.41313476562499],[71.85800781250006,41.311376953125034],[71.8786132812501,41.195019531249955],[71.95849609375003,41.18706054687502],[72.05244140625004,41.16474609375001],[72.1154296875001,41.18657226562502],[72.1642578125001,41.173730468749966],[72.18095703125002,41.11845703124999],[72.18730468750002,41.02592773437499],[72.2130859375001,41.014257812500006],[72.36406250000002,41.04345703125],[72.65830078125,40.86992187499999],[73.13212890625002,40.82851562499999],[72.6041015625,40.52543945312499],[72.40205078125004,40.578076171874955],[72.3892578125,40.427392578124994],[72.13125,40.438623046874966],[71.69248046875,40.15234375],[71.30468749999997,40.28691406249996],[70.990625,40.2548828125],[70.95800781250003,40.238867187500034],[70.653125,40.201171875],[70.37158203125003,40.38413085937506],[70.75107421875006,40.721777343750006],[70.40195312500006,41.03510742187498],[69.71289062500003,40.65698242187503],[69.35722656250002,40.76738281249996],[69.20625,40.566552734374994],[69.27490234374997,40.19809570312498],[68.63066406250007,40.16708984374998],[68.9720703125,40.08994140624998],[68.80468750000003,40.05034179687499],[68.86875,39.90747070312503],[68.63896484375007,39.8388671875],[68.46328125,39.53671874999998],[67.71904296875007,39.62138671875002],[67.426171875,39.46557617187497],[67.3576171875001,39.216699218749994],[67.64833984375005,39.13105468750004],[67.69443359375006,38.99462890625003],[68.13251953125004,38.927636718749966],[68.08720703125002,38.47353515625002],[68.3502929687501,38.211035156250006],[67.81435546875005,37.48701171875004],[67.7980468750001,37.244970703125006],[67.75898437500004,37.172216796875034],[67.75292968749997,37.199804687500034],[67.7,37.227246093749955],[67.60742187499997,37.22250976562506],[67.5172851562501,37.26665039062499],[67.44169921875007,37.25800781250001],[67.3197265625,37.209570312500006],[67.1955078125001,37.23520507812498],[67.06884765624997,37.334814453125006],[66.82773437500006,37.37128906249998],[66.52226562500007,37.34848632812506],[66.51064453125,37.45869140625004],[66.51132812500006,37.59916992187496],[66.52558593750004,37.785742187500034],[66.60625,37.98671875000005],[65.97119140624997,38.244238281250006],[65.612890625,38.23857421875002],[64.3099609375,38.97729492187497],[63.76367187500003,39.16054687499999],[62.48320312500002,39.97563476562496],[61.90283203124997,41.09370117187501],[61.496972656249994,41.276074218749955],[61.2423828125001,41.18920898437503],[60.454980468749994,41.221630859374955],[60.089648437500074,41.39941406250003],[60.07558593750005,41.759667968749966],[60.20078125000006,41.803125],[59.94179687499999,41.97353515625002],[59.98515625000002,42.21171875],[59.35429687500002,42.32329101562496],[58.5890625000001,42.778466796874966],[58.477148437500006,42.66284179687503],[58.15156250000004,42.628076171874966],[58.474414062500074,42.29936523437496],[58.02890625,42.48764648437506],[57.814257812500074,42.18984375000005],[57.290625,42.123779296875],[56.96406250000004,41.856542968750006],[57.11884765625004,41.35029296874998],[57.01796875,41.26347656249996],[55.97744140625005,41.32221679687504],[55.97568359375006,44.99492187499996],[58.555273437500006,45.55537109375001],[61.007910156250006,44.39379882812497],[61.99023437500003,43.492138671874955],[63.20703125000003,43.62797851562502],[64.44316406250007,43.55117187499999],[64.9054687500001,43.714697265625006],[65.49619140625,43.310546875],[65.80302734375002,42.87695312500006],[66.1002929687501,42.99082031249998],[66.00957031250007,42.00488281250003],[66.49863281250006,41.99487304687503],[66.70966796875004,41.17915039062501],[67.9357421875001,41.19658203125002],[68.11308593750007,41.02861328124999],[68.04765625000007,40.80927734374998],[68.29189453125,40.656103515625034],[68.57265625,40.62265624999998],[68.58408203125,40.876269531250045],[69.15361328125002,41.42524414062498],[70.94677734374997,42.24868164062505]]]]},"properties":{"name":"Uzbekistan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-61.17451171875001,13.158105468749966],[-61.268457031249966,13.287695312499991],[-61.13896484374996,13.358740234374991],[-61.17451171875001,13.158105468749966]]]},"properties":{"name":"St. Vin. and Gren.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-60.99790039062498,8.867333984374966],[-61.069189453125034,8.947314453125003],[-60.91582031249996,9.070312500000014],[-60.86142578124998,8.949609375000037],[-60.99790039062498,8.867333984374966]]],[[[-60.821191406249966,9.138378906250026],[-60.94140625000003,9.105566406250006],[-60.73583984374997,9.203320312500026],[-60.821191406249966,9.138378906250026]]],[[[-63.84936523437494,11.131005859374994],[-63.917626953124994,10.887548828125048],[-64.40234375,10.981591796875023],[-64.21367187500002,11.086132812499997],[-64.0283203125,11.00185546874998],[-63.84936523437494,11.131005859374994]]],[[[-60.742138671874926,5.202050781250037],[-60.71196289062499,5.191552734375023],[-60.671972656250034,5.164355468749989],[-60.603857421875006,4.94936523437498],[-61.00283203125002,4.535253906249991],[-61.28007812500002,4.516894531249974],[-61.82084960937496,4.197021484375],[-62.153125,4.098388671874986],[-62.41064453124994,4.156738281249972],[-62.71210937499998,4.01791992187502],[-62.85698242187502,3.593457031249969],[-63.33867187500002,3.943896484375045],[-64.02148437500003,3.929101562500051],[-64.19248046874995,4.126855468750009],[-64.57636718750001,4.139892578125],[-64.788671875,4.276025390625023],[-64.66899414062496,4.01181640625002],[-64.22109375000002,3.587402343749972],[-64.04658203124998,2.502392578124997],[-63.389257812500006,2.411914062500045],[-63.43251953124994,2.155566406250045],[-64.00849609374995,1.931591796874969],[-64.20502929687493,1.52949218750004],[-65.10375976562497,1.108105468749983],[-65.47338867187497,0.691259765624977],[-65.55605468750002,0.687988281250014],[-65.52299804687493,0.843408203124966],[-65.68144531249999,0.983447265624989],[-66.06005859375003,0.78535156250004],[-66.34711914062498,0.7671875],[-66.87602539062499,1.223046875000037],[-67.21083984375,2.390136718750043],[-67.61870117187496,2.793603515624994],[-67.85908203124998,2.793603515624994],[-67.3111328125,3.41586914062502],[-67.66162109375,3.864257812499986],[-67.85527343750002,4.506884765624989],[-67.82490234374995,5.270458984375026],[-67.47387695312503,5.929980468750003],[-67.48198242187499,6.18027343750002],[-67.85917968749999,6.289892578124963],[-68.47177734375,6.156542968749974],[-69.42714843749997,6.123974609374997],[-70.12919921874999,6.95361328125],[-70.73715820312503,7.090039062499997],[-71.12861328124993,6.98671875],[-72.00664062499993,7.032617187500023],[-72.20771484374995,7.37026367187498],[-72.47197265624996,7.524267578124991],[-72.39033203124995,8.287060546874969],[-72.66542968749994,8.62758789062498],[-72.79638671874997,9.10898437499999],[-73.05839843749999,9.259570312500031],[-73.36621093749997,9.194140625000017],[-73.00654296874998,9.789160156250006],[-72.86933593750001,10.49125976562496],[-72.690087890625,10.835839843749994],[-72.24848632812501,11.196435546875009],[-71.95810546875,11.66640625],[-71.31972656249997,11.861914062500048],[-71.95693359375002,11.569921874999977],[-71.835107421875,11.190332031250009],[-71.6416015625,11.013525390625048],[-71.73090820312498,10.994677734375017],[-71.59433593749995,10.657373046875051],[-72.11284179687499,9.815576171874966],[-71.61953124999994,9.047949218749991],[-71.24140625000001,9.160449218750003],[-71.08583984375002,9.348242187499977],[-71.05268554687501,9.705810546874986],[-71.49423828125,10.533203124999972],[-71.46953124999993,10.964160156250017],[-70.23251953124998,11.372998046874997],[-70.09711914062493,11.519775390624972],[-69.80478515624998,11.47421875000002],[-69.81733398437495,11.672070312499997],[-70.19257812499993,11.62460937500002],[-70.28652343749997,11.886035156249989],[-70.20278320312497,12.098388671874986],[-70.00395507812496,12.177880859375023],[-69.63159179687494,11.479931640625026],[-68.827978515625,11.431738281249977],[-68.39863281249995,11.160986328124977],[-68.29628906249997,10.689355468749994],[-68.13994140624999,10.492724609374989],[-66.24721679687497,10.632226562499994],[-65.85175781249995,10.257763671874997],[-65.12910156249998,10.070068359375043],[-64.85048828125,10.098095703124969],[-64.188330078125,10.457812499999989],[-63.73188476562501,10.503417968750043],[-64.24750976562498,10.54257812500002],[-64.298193359375,10.635156249999966],[-61.879492187500006,10.741015625000031],[-62.379980468750006,10.546875],[-62.91357421875,10.531494140624986],[-62.68583984374996,10.289794921875043],[-62.740576171875006,10.056152343750043],[-62.55034179687499,10.200439453125043],[-62.320410156250034,9.783056640625006],[-62.22114257812498,9.882568359375028],[-62.15336914062493,9.821777343749986],[-62.15532226562499,9.979248046875014],[-62.077099609374926,9.97504882812504],[-61.73593749999998,9.631201171874977],[-61.76591796874996,9.813818359374963],[-61.58886718749994,9.894531249999986],[-60.79248046874997,9.360742187500037],[-61.02314453124998,9.15458984374996],[-61.24726562499998,8.600341796875014],[-61.61870117187499,8.59746093749996],[-61.30400390624999,8.410400390625043],[-60.800976562499926,8.592138671875034],[-60.16748046875,8.616992187500031],[-60.01752929687501,8.549316406250014],[-59.83164062499998,8.305957031250003],[-59.84907226562498,8.248681640624966],[-59.96484375000003,8.191601562499969],[-59.99072265624997,8.16201171874998],[-60.032421874999926,8.053564453125006],[-60.51362304687501,7.813183593749969],[-60.71865234374994,7.535937499999974],[-60.606542968750006,7.320849609375031],[-60.63330078124997,7.211083984374966],[-60.58320312499998,7.156201171874969],[-60.523193359375,7.143701171875009],[-60.464941406250034,7.166552734375045],[-60.39238281249999,7.164550781249986],[-60.34506835937495,7.15],[-60.32548828124996,7.133984374999983],[-60.32207031249996,7.092041015625043],[-60.35209960937496,7.002880859374997],[-60.39501953125,6.945361328125003],[-60.717919921874966,6.768310546875],[-61.14560546874998,6.694531249999983],[-61.20361328124997,6.588378906250028],[-61.181591796874926,6.513378906250026],[-61.15102539062502,6.446533203124986],[-61.15229492187501,6.385107421875006],[-61.12871093749999,6.214306640625026],[-61.15947265624996,6.174414062499977],[-61.22495117187498,6.129199218750003],[-61.303125,6.049511718750026],[-61.39082031250001,5.938769531250017],[-61.376806640625006,5.906982421875028],[-61.167187499999926,5.674218750000037],[-60.95400390625002,5.437402343750023],[-60.742138671874926,5.202050781250037]]]]},"properties":{"name":"Venezuela","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[-64.765625,17.794335937499994],[-64.58046874999994,17.750195312499983],[-64.88911132812495,17.701708984375045],[-64.765625,17.794335937499994]]]},"properties":{"name":"U.S. Virgin Is.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[104.06396484375003,10.390820312500011],[104.01845703125,10.029199218749966],[103.84951171875005,10.371093749999986],[104.06396484375003,10.390820312500011]]],[[[107.52128906250007,20.926611328124977],[107.39921875000007,20.903466796874966],[107.55126953125003,21.034033203125006],[107.52128906250007,20.926611328124977]]],[[[107.60273437500004,21.21679687500003],[107.40351562500004,21.093652343749994],[107.47626953125004,21.268945312499994],[107.60273437500004,21.21679687500003]]],[[[107.97265624999997,21.507958984375023],[107.40996093750002,21.284814453125023],[107.35429687500007,21.055175781250057],[107.1647460937501,20.94873046875003],[106.68339843750007,21.000292968750074],[106.75341796875003,20.73505859375004],[106.55078124999997,20.52656250000001],[106.57285156250012,20.392187499999977],[105.98408203125004,19.939062500000034],[105.62177734375004,18.96630859375003],[105.88828125000006,18.502490234375045],[106.49902343749997,17.946435546874994],[106.47890625000005,17.719580078125063],[106.3705078125,17.746875],[107.83378906250002,16.322460937499983],[108.02939453125012,16.331103515625074],[108.82128906249997,15.377929687500028],[109.30332031250012,13.856445312500043],[109.271875,13.279345703124974],[109.42392578125006,12.955957031249994],[109.44492187500006,12.599609375000057],[109.33554687500012,12.751904296874997],[109.21894531250004,12.64580078124996],[109.30468750000003,12.391162109375045],[109.20683593750007,12.415380859375006],[109.1986328125,11.724853515625014],[109.03964843750012,11.592675781249994],[108.98671875,11.336376953124997],[108.09492187500004,10.897265624999989],[108.0013671875,10.720361328125009],[107.26152343750007,10.39838867187504],[107.00664062500002,10.66054687499998],[106.94746093750004,10.400341796874997],[106.72734375000007,10.535644531250028],[106.605859375,10.46494140625002],[106.74121093750003,10.444384765625003],[106.75742187500006,10.295800781250023],[106.46406250000004,10.298291015624997],[106.78525390625012,10.116455078124986],[106.59560546875005,9.859863281250028],[106.1364257812501,10.221679687500014],[106.56435546875005,9.715625],[106.48408203125004,9.559423828125006],[105.83095703125005,10.000732421875028],[106.15859375,9.59414062499998],[106.16835937500005,9.396728515625],[105.50097656249997,9.093212890624983],[105.11435546875006,8.629199218750031],[104.77041015625,8.59765625],[104.89628906250007,8.746630859374974],[104.81855468750004,8.801855468750034],[104.84521484375003,9.606152343750026],[105.08447265625003,9.99570312499999],[104.8019531250001,10.202734374999977],[104.66347656250005,10.169921875000043],[104.42636718750006,10.411230468749991],[104.85058593749997,10.534472656249974],[105.04638671874997,10.701660156250014],[105.04570312500002,10.911376953125014],[105.3146484375001,10.845166015625026],[105.40576171875003,10.95161132812504],[105.75507812500004,10.989990234375043],[105.85332031250007,10.86357421874996],[106.16396484375005,10.794921875],[106.16093750000002,11.037109375000057],[105.85605468750006,11.294287109375048],[105.85146484375005,11.635009765625],[106.0060546875001,11.758007812500011],[106.39921875000007,11.687011718750028],[106.41386718750002,11.9484375],[106.70009765625,11.979296874999974],[107.21210937500004,12.30400390624996],[107.39335937500002,12.260498046874972],[107.50644531250006,12.364550781250031],[107.47539062500002,13.030371093749963],[107.60546874999997,13.437792968750017],[107.3314453125,14.126611328125009],[107.51943359375005,14.705078125],[107.51376953125012,14.817382812500057],[107.52451171875012,14.871826171875043],[107.50468750000007,14.915917968749966],[107.48037109375,14.979882812500037],[107.55527343750006,15.057031250000023],[107.58964843750002,15.118457031250017],[107.63369140625005,15.18984375],[107.653125,15.255224609374991],[107.62167968750006,15.309863281250017],[107.56425781250002,15.391601562499972],[107.45957031250012,15.4658203125],[107.33876953125,15.560498046875011],[107.27939453125006,15.618701171875045],[107.16591796875005,15.802490234375028],[107.1888671875,15.838623046875],[107.36064453125002,15.921728515624977],[107.3919921875,15.951660156250028],[107.39638671875,16.04301757812499],[106.93066406249997,16.353125],[106.8927734375001,16.396533203125074],[106.85107421875003,16.515625],[106.83242187500005,16.526269531250023],[106.79160156250006,16.490332031250006],[106.73955078125007,16.452539062500023],[106.6564453125001,16.49262695312501],[106.54619140625002,16.650732421874977],[106.53369140625003,16.821044921875057],[106.52597656250006,16.876611328124994],[106.50224609375002,16.95410156249997],[106.26953125000003,17.21679687500003],[106.00625,17.415283203125057],[105.69140625000003,17.737841796875045],[105.58847656250012,17.983691406250045],[105.51855468749997,18.077441406250045],[105.45820312500004,18.15429687499997],[105.11455078125002,18.40527343750003],[105.08701171875006,18.496240234374994],[105.14541015625,18.616796875000063],[105.14648437500003,18.650976562500006],[103.89160156250003,19.304980468750017],[103.89638671875,19.339990234375023],[103.93203125,19.366064453125006],[104.0275390625001,19.42045898437499],[104.062890625,19.48256835937505],[104.05156250000007,19.564160156249955],[104.01347656250007,19.64648437500003],[104.03203125000002,19.675146484375006],[104.06279296875007,19.678417968749983],[104.25986328125006,19.685498046874983],[104.5462890625,19.61054687500001],[104.58789062500003,19.61875],[104.74316406250003,19.754736328124977],[104.80175781249997,19.83613281250004],[104.81513671875004,19.90400390625001],[104.9279296875001,20.01811523437499],[104.92919921875003,20.082812500000017],[104.88867187500003,20.169091796875023],[104.84785156250004,20.202441406250045],[104.69873046875003,20.20532226562503],[104.67695312500004,20.224707031249977],[104.66191406250007,20.28901367187501],[104.65644531250004,20.32851562499999],[104.6188476562501,20.37451171875003],[104.49619140625006,20.413671875],[104.39218750000012,20.424755859374955],[104.36777343750012,20.44140624999997],[104.40781250000012,20.48574218750005],[104.47861328125006,20.529589843750017],[104.53271484374997,20.55488281250001],[104.58320312500004,20.646679687499955],[104.34960937499997,20.821093750000074],[104.19531249999997,20.913964843749966],[104.10136718750002,20.94550781250001],[103.63505859375007,20.697070312500017],[103.46357421875004,20.779833984375017],[103.21074218750002,20.840625],[103.10449218749997,20.891650390625045],[102.88378906250003,21.202587890624983],[102.85117187500006,21.26591796874999],[102.94960937500005,21.681347656249983],[102.84521484374997,21.73476562500005],[102.81591796874997,21.807373046875],[102.7982421875,21.797949218750034],[102.77109375000006,21.709667968749983],[102.73857421875002,21.67792968750001],[102.66201171875005,21.67602539062497],[102.58251953125003,21.90429687500003],[102.12744140624997,22.379199218750045],[102.1759765625001,22.414648437500006],[102.2370117187501,22.466015624999983],[102.40644531250004,22.70800781249997],[102.47089843750004,22.75092773437501],[102.98193359374997,22.4482421875],[103.32666015625003,22.769775390625057],[103.49296875000007,22.587988281250034],[103.62021484375006,22.782031250000045],[103.94150390625006,22.540087890625045],[104.14306640624997,22.800146484375006],[104.37177734375004,22.704052734374983],[104.68730468750002,22.822216796874983],[104.86474609375003,23.136376953125023],[105.27539062500003,23.34521484375003],[105.8429687500001,22.922802734374955],[106.14843749999997,22.970068359375006],[106.2790039062501,22.857470703125045],[106.54179687500007,22.908349609375023],[106.78027343749997,22.778906250000034],[106.55039062500006,22.501367187499994],[106.66357421875003,21.97890625000005],[106.97099609375002,21.923925781250034],[107.35117187500012,21.60888671874997],[107.75927734374997,21.655029296875057],[107.97265624999997,21.507958984375023]]]]},"properties":{"name":"Vietnam","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[169.49130859375006,-19.54013671875002],[169.34726562500006,-19.623535156249957],[169.2174804687501,-19.476367187500003],[169.24746093750005,-19.3447265625],[169.49130859375006,-19.54013671875002]]],[[[169.334375,-18.940234375000017],[168.98691406250006,-18.87128906250001],[169.01582031250004,-18.64375],[169.14384765625002,-18.63105468750001],[169.334375,-18.940234375000017]]],[[[168.44580078124997,-17.54218750000004],[168.58496093750003,-17.695898437500006],[168.52460937500004,-17.798046875000026],[168.15820312500003,-17.710546874999963],[168.2731445312501,-17.552246093749957],[168.44580078124997,-17.54218750000004]]],[[[168.44677734375003,-16.778808593749957],[168.18144531250002,-16.804003906250017],[168.13535156250006,-16.636914062499997],[168.44677734375003,-16.778808593749957]]],[[[168.29667968750007,-16.33652343749999],[167.92900390625002,-16.22871093749997],[168.16386718750002,-16.081640625000034],[168.29667968750007,-16.33652343749999]]],[[[167.4125,-16.095898437499997],[167.83662109375004,-16.449707031249957],[167.44931640625012,-16.554980468750003],[167.34921875000006,-16.15449218750004],[167.15146484375006,-16.080468749999966],[167.19951171875002,-15.885058593750031],[167.33574218750007,-15.916699218749997],[167.4125,-16.095898437499997]]],[[[167.9113281250001,-15.435937500000023],[167.67421875,-15.4515625],[168.00253906250012,-15.283203124999986],[167.9113281250001,-15.435937500000023]]],[[[166.74580078125004,-14.826855468750011],[166.81015625000012,-15.15742187500004],[167.0755859375,-14.935644531249977],[167.20078125000012,-15.443066406249969],[167.0939453125001,-15.580859374999974],[166.75830078125003,-15.631152343750003],[166.63105468750004,-15.406054687499974],[166.56738281250003,-14.641796874999969],[166.74580078125004,-14.826855468750011]]],[[[167.58486328125,-14.260937500000011],[167.43027343750012,-14.294921875],[167.41074218750006,-14.19746093750004],[167.50644531250012,-14.142187499999977],[167.58486328125,-14.260937500000011]]],[[[167.48886718750006,-13.907226562499972],[167.3917968750001,-13.788378906250017],[167.48105468750006,-13.709472656250014],[167.48886718750006,-13.907226562499972]]]]},"properties":{"name":"Vanuatu","childNum":10}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-171.4541015625,-14.04648437500002],[-171.9119140625,-14.001660156250026],[-172.04589843750003,-13.857128906249983],[-171.60390624999997,-13.879199218750045],[-171.4541015625,-14.04648437500002]]],[[[-172.33349609375,-13.46523437499999],[-172.17685546874998,-13.68466796875002],[-172.224951171875,-13.804296874999963],[-172.535693359375,-13.791699218749983],[-172.77851562499998,-13.516796875000011],[-172.33349609375,-13.46523437499999]]]]},"properties":{"name":"Samoa","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[53.76318359374997,12.636816406249991],[54.18740234375005,12.664013671875026],[54.511132812499994,12.552783203125017],[54.12949218750006,12.360644531250045],[53.71884765625006,12.318994140624994],[53.31582031250005,12.533154296875011],[53.53496093750002,12.715771484374997],[53.76318359374997,12.636816406249991]]],[[[42.75585937500003,13.70429687500004],[42.689746093750074,13.673632812500017],[42.7941406250001,13.766113281250028],[42.75585937500003,13.70429687500004]]],[[[42.787402343750074,13.971484375000031],[42.69404296875004,14.007910156249991],[42.76210937500005,14.067480468750048],[42.787402343750074,13.971484375000031]]],[[[53.08564453125004,16.648388671874955],[52.327734375,16.293554687500063],[52.17402343750004,15.956835937500017],[52.2174804687501,15.655517578125],[51.3224609375001,15.22626953125004],[49.34990234375002,14.637792968749977],[48.66835937499999,14.050146484374977],[47.9899414062501,14.048095703125],[47.40771484374997,13.661621093750057],[46.78886718750002,13.465576171874986],[45.65732421875006,13.338720703124991],[45.03867187500006,12.815869140624969],[44.617773437500006,12.817236328124977],[44.00585937499997,12.607666015625],[43.634375,12.744482421874991],[43.487597656250074,12.69882812500002],[43.23193359375003,13.267089843750057],[43.2824218750001,13.692529296875037],[43.08906250000004,14.010986328125],[42.93642578125005,14.938574218749963],[42.85566406250004,15.132958984375037],[42.65781250000006,15.232812500000051],[42.79902343750004,15.326269531249991],[42.71718750000005,15.654638671875006],[42.83964843750002,16.032031250000074],[42.79931640624997,16.37177734375001],[43.16503906249997,16.689404296874955],[43.19091796875003,17.359375],[43.41796875000003,17.516259765625023],[43.91699218749997,17.32470703124997],[45.14804687500006,17.427441406249955],[45.5353515625001,17.30205078124999],[46.72763671875006,17.26557617187501],[46.97568359375006,16.953466796875034],[47.14355468749997,16.946679687499966],[47.44179687499999,17.111865234375045],[47.57958984374997,17.448339843750034],[48.17216796875002,18.156933593749983],[49.04199218750003,18.58178710937503],[51.977636718750006,18.996142578125074],[53.08564453125004,16.648388671874955]]]]},"properties":{"name":"Yemen","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[37.85693359375003,-46.94423828124998],[37.5900390625001,-46.90800781250006],[37.78955078124997,-46.8375],[37.85693359375003,-46.94423828124998]]],[[[31.799609375000017,-23.8921875],[31.98583984374997,-24.460644531249983],[31.921679687500017,-25.96875],[31.335156250000097,-25.755566406249997],[31.207324218750074,-25.843359375000034],[31.08808593750004,-25.980664062500026],[30.803320312500006,-26.41347656250001],[30.806738281250006,-26.78525390624999],[30.88330078124997,-26.792382812500023],[30.938085937500006,-26.91582031250003],[31.06337890625005,-27.1123046875],[31.274023437500063,-27.23837890625002],[31.469531250000017,-27.29550781250002],[31.74257812500005,-27.309960937500037],[31.95839843750005,-27.305859375],[31.946093750000017,-27.173632812499974],[31.96718750000005,-26.96064453125001],[31.994726562500006,-26.817480468749977],[32.024804687499994,-26.81113281250002],[32.112890625,-26.83945312500002],[32.19960937499999,-26.833496093749957],[32.35351562499997,-26.861621093750003],[32.7765625000001,-26.850976562499966],[32.88613281250005,-26.849316406249983],[32.53476562500006,-28.19970703125003],[32.285742187500006,-28.62148437499998],[31.335156250000097,-29.378125],[29.97119140625003,-31.322070312500017],[28.449414062500068,-32.62460937499999],[27.077441406250074,-33.52119140625004],[26.429492187500045,-33.75957031250002],[25.80585937500001,-33.737109374999974],[25.574218750000057,-34.03535156249998],[25.00292968750003,-33.97363281250003],[24.8271484375,-34.16894531250003],[24.595507812500074,-34.17451171875],[23.697851562500063,-33.99277343750002],[23.268164062500006,-34.08115234374999],[22.553808593750063,-34.01005859374999],[22.24550781250005,-34.06914062500003],[21.788964843750023,-34.37265624999996],[20.529882812500034,-34.4630859375],[20.020605468750006,-34.785742187500006],[19.298242187500023,-34.61503906249996],[19.330761718750068,-34.49238281250001],[19.098339843750068,-34.350097656249986],[18.831347656250017,-34.36406249999999],[18.75214843750004,-34.08261718750002],[18.50039062499999,-34.10927734375004],[18.46162109375001,-34.346875],[18.35205078124997,-34.1884765625],[18.43300781250005,-33.71728515625003],[17.851074218750057,-32.82744140625002],[17.96523437500005,-32.70859374999996],[18.125,-32.74912109374996],[18.325292968750034,-32.50498046874996],[18.21083984375008,-31.74248046874996],[17.34707031250005,-30.44482421875],[16.95,-29.40341796875002],[16.739453124999983,-29.009375],[16.447558593750045,-28.61757812499998],[16.755761718750023,-28.45214843750003],[16.7875,-28.39472656249997],[16.81015625,-28.264550781249994],[16.841210937500023,-28.21894531250004],[16.875292968750045,-28.12792968749997],[16.93330078125004,-28.06962890624999],[17.05625,-28.03105468750003],[17.1884765625,-28.13251953125001],[17.358691406250017,-28.269433593750023],[17.44794921875001,-28.698144531249966],[18.310839843750017,-28.88623046875],[19.16171875,-28.93876953124996],[19.245800781250068,-28.90166015625003],[19.31269531250004,-28.733300781250023],[19.539843750000017,-28.574609375000023],[19.98046875,-28.45126953125002],[19.98046875,-28.310351562500003],[19.98046875,-24.77675781249998],[20.430664062500057,-25.14707031250002],[20.79316406250001,-25.915625],[20.641406250000017,-26.7421875],[20.739843749999977,-26.84882812499997],[21.694726562500023,-26.840917968749963],[21.738085937500045,-26.806835937500026],[21.788281250000068,-26.710058593750034],[22.01093750000004,-26.635839843750006],[22.090917968749977,-26.580175781250034],[22.217578125000045,-26.38886718749997],[22.47089843750004,-26.219042968750003],[22.548632812500074,-26.178417968749997],[22.59765625000003,-26.13271484375001],[22.878808593750023,-25.457910156250023],[23.148730468750017,-25.288671875],[23.389257812500006,-25.291406250000023],[23.89375,-25.600878906250017],[23.96953124999999,-25.62607421874999],[24.192968750000034,-25.632910156249963],[24.33056640625,-25.742871093749983],[25.21337890625,-25.75625],[25.518164062500006,-25.66279296875001],[25.91210937499997,-24.747460937499966],[26.031835937500034,-24.70244140625003],[26.130859375000057,-24.671484375000034],[26.39716796875004,-24.61357421874996],[26.451757812500063,-24.582714843749983],[26.835058593750063,-24.240820312499963],[27.085546875000034,-23.577929687500003],[27.7685546875,-23.14892578125],[27.812597656250006,-23.108007812500006],[28.210156249999983,-22.693652343749974],[28.83984375000003,-22.480859374999966],[28.94580078125003,-22.39511718749999],[29.013476562500045,-22.27841796875002],[29.129882812500057,-22.21328125],[29.364843750000063,-22.19394531250005],[29.37744140625003,-22.19277343749998],[29.66308593749997,-22.146289062500017],[29.90234375000003,-22.184179687500006],[30.19042968750003,-22.291113281250034],[30.460156250000097,-22.329003906250023],[30.71162109375004,-22.297851562499986],[31.07343750000004,-22.30781249999997],[31.19726562499997,-22.344921874999983],[31.287890625000074,-22.402050781249983],[31.54560546875004,-23.48232421874998],[31.799609375000017,-23.8921875]],[[27.19355468750001,-29.94130859375001],[27.364062500000017,-30.27919921875001],[27.753125,-30.6],[28.05683593750001,-30.63105468750001],[28.128710937500017,-30.52509765625001],[28.39208984375003,-30.14755859375002],[28.646875,-30.1265625],[29.09804687500005,-29.919042968750006],[29.142187500000063,-29.70097656249999],[29.293554687500006,-29.56689453125003],[29.348828125000097,-29.441992187499977],[29.38671874999997,-29.319726562500023],[29.301367187500006,-29.08984375],[28.625781250000017,-28.581738281250054],[28.583398437499994,-28.59414062499999],[28.471875,-28.615820312499977],[28.23261718750004,-28.701269531249977],[28.084375,-28.779980468750026],[27.95986328125008,-28.87333984375003],[27.73554687500004,-28.940039062500034],[27.294531250000063,-29.519335937500017],[27.056933593750074,-29.62558593749999],[27.19355468750001,-29.94130859375001]]]]},"properties":{"name":"South Africa","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[33.148046875,-9.603515625],[33.25,-9.759570312500003],[33.35097656250002,-9.862207031250009],[33.33710937500001,-9.954003906250009],[33.3115234375,-10.037988281250009],[33.52890625,-10.234667968750003],[33.53759765625,-10.3515625],[33.5537109375,-10.391308593750011],[33.66152343750002,-10.553125],[33.29277343750002,-10.85234375],[33.37978515625002,-11.157910156250011],[33.26835937500002,-11.40390625],[33.23271484375002,-11.417675781250011],[33.22636718750002,-11.534863281250011],[33.30390625000001,-11.690820312500009],[33.25234375000002,-12.112597656250003],[33.34013671875002,-12.308300781250011],[33.512304687500006,-12.347753906250006],[32.975195312500006,-12.701367187500011],[32.96757812500002,-13.225],[32.67041015625,-13.590429687500006],[32.797460937500006,-13.6884765625],[32.98125,-14.009375],[33.148046875,-13.94091796875],[33.201757812500006,-14.013378906250011],[30.231835937500023,-14.990332031250006],[30.39609375,-15.64306640625],[29.4873046875,-15.69677734375],[28.9130859375,-15.98779296875],[28.760546875000017,-16.53212890625001],[27.932226562500006,-16.89619140625001],[27.020800781250017,-17.95839843750001],[26.779882812500006,-18.04150390625],[26.333398437500023,-17.929296875],[25.995898437500017,-17.969824218750006],[25.2587890625,-17.793554687500006],[25.001757812500017,-17.56855468750001],[24.73291015625,-17.51777343750001],[24.27490234375,-17.481054687500006],[23.380664062500017,-17.640625],[22.193945312500006,-16.628125],[21.979785156250017,-15.95556640625],[21.979394531250023,-14.440527343750006],[21.979296875000017,-14.11962890625],[21.979101562500006,-13.798730468750009],[21.978906250000023,-13.0009765625],[22.209570312500006,-13.0009765625],[23.843164062500023,-13.0009765625],[23.962988281250006,-12.988476562500011],[23.882421875,-12.799023437500011],[23.886523437500017,-12.743261718750006],[23.909375,-12.636132812500009],[23.98388671875,-11.725],[23.96650390625001,-10.871777343750011],[24.36572265625,-11.1298828125],[24.3779296875,-11.417089843750006],[25.28876953125001,-11.21240234375],[25.349414062500017,-11.623046875],[26.025976562500006,-11.89013671875],[26.824023437500017,-11.965234375],[27.1591796875,-11.579199218750006],[27.573828125,-12.22705078125],[28.412890625000017,-12.51806640625],[28.550878906250006,-12.836132812500011],[28.730078125,-12.925488281250011],[29.014257812500006,-13.368847656250011],[29.20185546875001,-13.398339843750009],[29.55419921875,-13.248925781250009],[29.775195312500017,-13.438085937500006],[29.79511718750001,-12.155468750000011],[29.508203125000023,-12.228222656250011],[29.48554687500001,-12.41845703125],[29.064355468750023,-12.348828125000011],[28.482519531250006,-11.812109375],[28.383398437500006,-11.566699218750003],[28.6455078125,-10.550195312500009],[28.60419921875001,-9.678808593750006],[28.400683593750017,-9.224804687500011],[28.869531250000023,-8.785839843750011],[28.89814453125001,-8.485449218750006],[30.75117187500001,-8.193652343750003],[30.830664062500006,-8.385546875],[30.891992187500023,-8.473730468750006],[30.968359375,-8.550976562500011],[31.07636718750001,-8.611914062500006],[31.3505859375,-8.60703125],[31.44921875,-8.65390625],[31.53486328125001,-8.71328125],[31.55625,-8.80546875],[31.673632812500017,-8.908789062500006],[31.91865234375001,-8.9421875],[31.921875,-9.019433593750009],[31.94257812500001,-9.054003906250003],[32.75664062500002,-9.322265625],[32.919921875,-9.407421875000011],[32.99599609375002,-9.622851562500003],[33.148046875,-9.603515625]]]},"properties":{"name":"Zambia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[31.287890625000017,-22.40205078125001],[31.07343750000001,-22.30781250000001],[30.71162109375001,-22.2978515625],[30.46015625000001,-22.32900390625001],[30.1904296875,-22.291113281250006],[29.90234375,-22.184179687500006],[29.6630859375,-22.146289062500003],[29.37744140625,-22.19277343750001],[29.36484375,-22.193945312500006],[29.315234375000017,-22.15771484375],[29.237207031250023,-22.07949218750001],[29.042382812500023,-22.018359375],[29.02558593750001,-21.796875],[28.014062500000023,-21.55419921875],[27.66943359375,-21.064257812500003],[27.679296875,-20.503027343750006],[27.28076171875,-20.47871093750001],[27.17822265625,-20.10097656250001],[26.168066406250006,-19.53828125000001],[25.939355468750023,-18.93867187500001],[25.242285156250006,-17.969042968750003],[25.2587890625,-17.793554687500006],[25.995898437500017,-17.969824218750006],[26.333398437500023,-17.929296875],[26.779882812500006,-18.04150390625],[27.020800781250017,-17.95839843750001],[27.932226562500006,-16.89619140625001],[28.760546875000017,-16.53212890625001],[28.9130859375,-15.98779296875],[29.4873046875,-15.69677734375],[30.39609375,-15.64306640625],[30.437792968750017,-15.995312500000011],[31.236230468750023,-16.02363281250001],[31.939843750000023,-16.428808593750006],[32.94804687500002,-16.71230468750001],[32.87626953125002,-16.88359375],[32.99306640625002,-18.35957031250001],[32.69970703125,-18.94091796875],[32.84980468750001,-19.10439453125001],[32.77763671875002,-19.388769531250006],[32.992773437500006,-19.98486328125],[32.49238281250001,-20.659765625],[32.353613281250006,-21.136523437500003],[32.429785156250006,-21.29707031250001],[31.429492187500017,-22.298828125],[31.287890625000017,-22.40205078125001]]]},"properties":{"name":"Zimbabwe","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[74.00809389139292,33.25375789331485],[73.19660141888893,33.898124784580936],[73.13410859949555,34.82510160558277],[72.31128647748268,35.77290936638241],[73.08203125000107,36.43949943991182],[73.08961802927895,36.86435907947333],[73.116796875,36.868554687499994],[74.03886718750002,36.825732421874996],[74.54140625000002,37.02216796875],[74.69218750000002,37.0357421875],[74.8892578125,36.952441406249996],[74.94912109375002,36.968359375],[75.05390625000001,36.987158203125],[75.14521484375001,36.9732421875],[75.3466796875,36.913476562499994],[75.37685546875002,36.883691406249994],[75.42421875000002,36.738232421875],[75.46025390625002,36.725048828125],[75.57373046875,36.759326171874996],[75.66718750000001,36.741992187499996],[75.77216796875001,36.694921875],[75.84023437500002,36.649707031249996],[75.88496093750001,36.600732421874994],[75.93300781250002,36.52158203125],[75.95185546875001,36.45810546875],[75.97441406250002,36.382421875],[75.91230468750001,36.048974609374994],[76.07089843750003,35.9830078125],[76.14785156250002,35.829003906249994],[76.17783203125003,35.810546875],[76.25166015625001,35.8109375],[76.3857421875,35.837158203125],[76.50205078125003,35.878222656249996],[76.55126953125,35.887060546875],[76.5634765625,35.772998046874996],[76.6318359375,35.729394531249994],[76.7275390625,35.678662109375],[76.76689453124999,35.66171875],[76.81279296874999,35.571826171874996],[76.88222656250002,35.4357421875],[76.927734375,35.346630859375],[77.04863281249999,35.109912109374996],[77.00087890625002,34.991992187499996],[76.78291015625001,34.900195312499996],[76.75751953125001,34.877832031249994],[76.7490234375,34.847558593749994],[76.6962890625,34.786914062499996],[76.59443359375001,34.73583984375],[76.45673828125001,34.756103515625],[76.17246093750003,34.667724609375],[76.041015625,34.669921875],[75.93828125000002,34.612548828125],[75.86210937500002,34.56025390625],[75.70917968750001,34.503076171874994],[74.300390625,34.765380859375],[74.17197265625,34.7208984375],[74.05585937500001,34.6806640625],[73.96123046875002,34.653466796874994],[73.79453125,34.378222656249996],[73.80996093750002,34.325341796874994],[73.92460937500002,34.287841796875],[73.97236328125001,34.236621093749996],[73.9794921875,34.191308593749994],[73.90390625,34.1080078125],[73.94990234375001,34.018798828125],[74.24648437500002,33.990185546875],[73.97646484375002,33.7212890625],[74.15,33.506982421874994],[74.00809389139292,33.25375789331485]]]},"properties":{"name":"","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[78.49194250885338,32.53122786149202],[78.10154031239509,32.87658365066666],[77.71342088235082,32.6917648744551],[77.06655516561037,33.301666835953235],[76.62299010270264,33.32014871357439],[76.32728006076415,32.87658365066666],[75.73585997688717,32.78417426256088],[75.62496871116024,32.28516356678968],[75.32221348233018,32.28516356678968],[74.98730468749997,32.46220703124996],[74.78886718750013,32.4578125],[74.6857421875001,32.493798828124994],[74.66328125000004,32.75766601562495],[74.63242187499995,32.770898437500136],[74.58828125000011,32.7532226562501],[74.35458984375012,32.76870117187505],[74.30546875000007,32.81044921875002],[74.30361328125005,32.991796875000034],[73.98984375000006,33.22119140625006],[74.15,33.506982421874994],[73.97646484375016,33.72128906249998],[74.24648437500011,33.99018554687504],[73.9499023437501,34.018798828125],[73.90390625000012,34.10800781250006],[73.97949218750009,34.191308593749966],[73.97236328125004,34.23662109374996],[73.92460937500007,34.287841796875114],[73.80996093750016,34.32534179687511],[73.79453125000006,34.378222656250045],[73.96123046875007,34.653466796874994],[74.05585937500015,34.68066406250003],[74.17197265624995,34.72089843750004],[74.30039062500006,34.76538085937506],[75.70917968750004,34.50307617187508],[75.86210937500002,34.56025390625001],[75.93828125000019,34.612548828125],[76.04101562500014,34.66992187499997],[76.17246093750006,34.66772460937506],[76.4567382812501,34.756103515625114],[76.5944335937501,34.73583984375006],[76.69628906249997,34.78691406249999],[76.74902343750014,34.84755859375008],[76.7575195312501,34.87783203125005],[76.7829101562501,34.90019531249999],[77.00087890625011,34.99199218750002],[77.03066406250011,35.06235351562498],[77.04863281250007,35.109912109375074],[77.42343749999995,35.30258789062506],[77.57158203125002,35.37875976562495],[77.69697265625015,35.443261718750136],[77.79941406250006,35.49589843750002],[78.0426757812501,35.4797851562501],[78.07578125000006,35.13491210937502],[78.15849609375002,34.94648437499998],[78.32695312500007,34.60639648437498],[78.86484375000006,34.39033203125001],[78.93642578125,34.35195312500002],[78.97060546875011,34.22822265625004],[78.72666015625006,34.013378906249955],[78.78378906250006,33.80878906250004],[78.86503906250002,33.43110351562501],[78.94843750000004,33.346533203125006],[79.1125,33.22626953125001],[79.13515625000005,33.17192382812496],[79.10283203125007,33.05253906249996],[79.14550781250003,33.00146484375006],[79.16992187500003,32.497216796874994],[78.91894531249997,32.3582031250001],[78.75351562500012,32.49926757812506],[78.73671875,32.55839843750002],[78.49194250885338,32.53122786149202]]]]},"properties":{"name":"","childNum":1}}]}');var xe=Object.defineProperty,ke=Object.getOwnPropertySymbols,Ce=Object.prototype.hasOwnProperty,$e=Object.prototype.propertyIsEnumerable,Se=(e,t,n)=>t in e?xe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ee=(e,t)=>{for(var n in t||(t={}))Ce.call(t,n)&&Se(e,n,t[n]);if(ke)for(var n of ke(t))$e.call(t,n)&&Se(e,n,t[n]);return e};function Oe({areaStyleColors:n,dataLoaded:o,hasData:i,highlight:r,type:s,option:a,series:l,onChange:c,zoomStart:u,zoomEnd:h,title:d,seriesConfig:p=[],noDataComponent:g=null,zoomColors:m,style:f}){const[y,v]=(0,e.useState)(null),b=(0,e.useRef)(null),w=()=>{y&&y.resize()},x=(0,e.useMemo)((()=>g?g():t().createElement(be,{theme:"info"},"No data to display")),[g]),k={defaultOpts:(0,pe.fromJS)({title:{show:!0,text:d,left:0},color:[],toolbox:{right:"0",orient:"horizontal",itemSize:15,showTitle:!0,feature:null},dataZoom:[{show:!0,start:0,end:100,orient:"horizontal",dataBackground:{lineStyle:{color:(null==m?void 0:m.lineStyle)||"#368493"},areaStyle:{color:(null==m?void 0:m.areaStyle)||"#368493"}},handleStyle:{color:(null==m?void 0:m.handleStyle)||"#368493"},textStyle:{color:(null==m?void 0:m.textStyle)||"#368493"},borderColor:"transparent",fillerColor:(null==m?void 0:m.fillerColor)||"rgba(54, 132, 147, 0.1)"}],legend:{show:!1},tooltip:{trigger:"axis",axisPointer:{type:"cross"}},grid:{left:"1%",right:"1%",bottom:"50px",top:"40px",containLabel:!0},xAxis:{boundaryGap:!1,type:"category",splitLine:{show:!0,lineStyle:{type:"dotted",color:"#F0F0F0"}},axisLine:{show:!1},axisTick:{show:!1},data:[]},yAxis:{min:"dataMin",boundaryGap:!0,axisPointer:{show:!0},splitLine:{lineStyle:{type:"dotted",color:"#F0F0F0"},show:!0},axisLabel:{show:!0},axisLine:{show:!0},axisTick:{show:!1},type:"value"},textStyle:{color:"#5a5a68"},series:[],animationEasing:"elasticOut"}),seriesDefault:(0,pe.fromJS)({data:[],type:"line",areaStyle:{opacity:1,color:n?new de.graphic.LinearGradient(0,0,1,1,n.map(((e,t)=>({offset:t,color:e})))):[]},smooth:!1,symbolSize:7,name:""})},C={defaultOpts:(0,pe.fromJS)({tooltip:{trigger:"axis",formatter:"{b}: {c} ({d}%)"},legend:{orient:"horizontal",x:"left",y:"top",data:[]},color:[],series:[]}),seriesDefault:(0,pe.fromJS)({type:"pie",center:["50%","55%"],radius:["50%","75%"],avoidLabelOverlap:!1,animationType:"scale",animationEasing:"elasticOut",labelLine:{normal:{show:!0,smooth:.2,length:6,length2:6}},data:[]})},$={defaultOpts:(0,pe.fromJS)({series:[]}),seriesDefault:(0,pe.fromJS)({type:"map",data:[]})};(0,e.useEffect)((()=>(window.addEventListener("resize",w),()=>{window.removeEventListener("resize",w)})),[y]),(0,e.useEffect)((()=>{if(null==b?void 0:b.current)return v(de.init(b.current)),()=>{y&&y.dispose()}}),[b.current]);const S=e=>{c&&c(e)};(0,e.useEffect)((()=>{let e;return y&&(e=ge(S,500),y.on("dataZoom",e),y.on("restore",e),y.on("click",e),y.on("mousemove",(e=>{e.data&&y.getZr().setCursorStyle("pointer")}))),()=>{y&&(y.off("dataZoom",e),y.off("restore",e),y.off("click",e))}}),[y,c]);const E=me(y),O=me(a),T=me(s),A=me(l);(0,e.useEffect)((()=>{var e,t,n,o,i,r;!y||(null==(t=null==(e=(0,pe.fromJS)(E))?void 0:e.equals)?void 0:t.call(e,(0,pe.fromJS)(y)))&&(null==(o=null==(n=(0,pe.fromJS)(O))?void 0:n.equals)?void 0:o.call(n,(0,pe.fromJS)(a)))&&T===s&&(null==(r=(i=(0,pe.fromJS)(A)).equals)?void 0:r.call(i,(0,pe.fromJS)(l)))||(y.clear(),y.setOption(((e,t,n)=>{let o={};switch(e){case"pie":o=C.defaultOpts.mergeDeep((0,pe.fromJS)(t)).toJS(),n.forEach((e=>{o.series.push(C.seriesDefault.mergeDeep((0,pe.fromJS)(e)).toJS())}));break;case"geo":o=$.defaultOpts.mergeDeep((0,pe.fromJS)(t)).toJS(),n.forEach((e=>{o.series.push($.seriesDefault.mergeDeep((0,pe.fromJS)(e)).toJS())}));break;default:o=k.defaultOpts.mergeDeep((0,pe.fromJS)(t)).toJS(),Array.isArray(t.yAxis)&&(o.yAxis=t.yAxis),n.forEach(((e,t)=>{const n=Ee(Ee(Ee({},k.seriesDefault.toJS()),p[t]),e);o.series.push(n)}))}return o})(s,a,l)),y.dispatchAction({type:"takeGlobalCursor",key:"dataZoomSelect",dataZoomSelectActive:!0}))}),[y,a,l,s]),(0,e.useEffect)((()=>{y&&r&&(y.dispatchAction({type:"highlight",seriesIndex:r.seriesIndex,dataIndex:r.dataIndex}),y.dispatchAction({type:"showTip",seriesIndex:r.seriesIndex,dataIndex:r.dataIndex}))}),[r]);const _=me(u),L=me(h);(0,e.useEffect)((()=>{!y||-1===u||-1===h||_===u&&L===h||y.dispatchAction({type:"dataZoom",startValue:u,endValue:h})}),[u,h]);const M=()=>!o||!1!==i&&!0!==i||i;return t().createElement("div",{className:"tyk-chart__wrapper"},o?null:t().createElement(ye,null),t().createElement("div",{className:(()=>{const e=["tyk-chart"];return o||e.push("tyk-chart--loading-chart"),M()||e.push("tyk-chart--no-data"),e.join(" ")})(),style:(()=>{const e=f||{};return e.height||(e.height="300px"),e.width||(e.width="100%"),e})(),"data-type":s,ref:b}),M()?null:x)}de.registerMap("world",we),Oe.propTypes={areaStyleColors:r().instanceOf(Array),dataLoaded:r().bool,hasData:r().bool,highlight:r().oneOfType([r().number,r().string,r().instanceOf(Array)]),noDataComponent:r().func,zoomStart:r().number,zoomEnd:r().number,zoomColors:r().instanceOf(Object),option:r().instanceOf(Object),onChange:r().func,style:r().instanceOf(Object),type:r().string,title:r().string,series:r().instanceOf(Array),seriesConfig:r().instanceOf(Object)};const Te=(0,e.memo)(Oe);var Ae=n(745);const _e=(t,n)=>{const o=(0,e.useRef)();(0,e.useEffect)((()=>{o.current=t}),[t]),(0,e.useEffect)((()=>{if(null!==n){const e=setTimeout((function(){o.current()}),n);return()=>clearTimeout(e)}return()=>{}}),[n])};var Le=Object.defineProperty,Me=Object.getOwnPropertySymbols,Re=Object.prototype.hasOwnProperty,Ne=Object.prototype.propertyIsEnumerable,Ie=(e,t,n)=>t in e?Le(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Pe(e){const{children:n,options:o,onClose:i,index:r}=e,s=((e,t)=>{for(var n in t||(t={}))Re.call(t,n)&&Ie(e,n,t[n]);if(Me)for(var n of Me(t))Ne.call(t,n)&&Ie(e,n,t[n]);return e})({theme:"success",delay:3e3},o),a=e=>{i(e),clearTimeout(void 0)};return _e((()=>a(r)),s.delay),t().createElement(be,{className:"tyk-toast__message",theme:s.theme,onClose:()=>a(r)},n)}Pe.propTypes={children:r().oneOfType([r().element,r().node,r().string]),options:r().instanceOf(Object),onClose:r().func,index:r().number};const De=Pe;var Fe=Object.defineProperty,Be=Object.defineProperties,We=Object.getOwnPropertyDescriptors,He=Object.getOwnPropertySymbols,je=Object.prototype.hasOwnProperty,ze=Object.prototype.propertyIsEnumerable,Ve=(e,t,n)=>t in e?Fe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ue=(e,t)=>{for(var n in t||(t={}))je.call(t,n)&&Ve(e,n,t[n]);if(He)for(var n of He(t))ze.call(t,n)&&Ve(e,n,t[n]);return e};function Ge(n){const[o,i]=(0,e.useState)({}),{notify:r}=n,s=(e,t)=>{const n=Math.floor(1e6*Math.random());i((o=>{return i=Ue({},o),Be(i,We({[n]:{message:e,options:t}}));var i}))};(0,e.useEffect)((()=>{r(s)}),[o]);const a=e=>{delete Ue({},o)[e],i((t=>{const n=Ue({},t);return delete n[e],n}))};return t().createElement("div",{className:"tyk-toast__container"},Object.keys(o).map((e=>o[e]?t().createElement(De,{options:o[e].options,onClose:a.bind(null,e),index:e,key:e},o[e].message):null)))}Ge.propTypes={notify:r().func};const Ke=Ge;var qe=Object.defineProperty,Ye=Object.defineProperties,Je=Object.getOwnPropertyDescriptors,Xe=Object.getOwnPropertySymbols,Qe=Object.prototype.hasOwnProperty,Ze=Object.prototype.propertyIsEnumerable,et=(e,t,n)=>t in e?qe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,tt=(e,t)=>{for(var n in t||(t={}))Qe.call(t,n)&&et(e,n,t[n]);if(Xe)for(var n of Xe(t))Ze.call(t,n)&&et(e,n,t[n]);return e},nt=(e,t)=>Ye(e,Je(t));const ot=new class{constructor(){var e;et(this,"symbol"!=typeof(e="bindNotify")?e+"":e,(e=>{this.createNotification=e}));const n=document.createElement("div");n.className="tyk-toast",document.body.appendChild(n),(0,Ae.s)(n).render(t().createElement(Ke,{notify:this.bindNotify}))}notify(e,t){this.createNotification&&this.createNotification(e,t)}danger(e,t){this.notify(e,nt(tt({},t),{theme:"danger"}))}success(e,t){this.notify(e,nt(tt({},t),{theme:"success"}))}warning(e,t){this.notify(e,nt(tt({},t),{theme:"warning"}))}info(e,t){this.notify(e,nt(tt({},t),{theme:"info"}))}};var it=Object.defineProperty,rt=Object.getOwnPropertySymbols,st=Object.prototype.hasOwnProperty,at=Object.prototype.propertyIsEnumerable,lt=(e,t,n)=>t in e?it(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function ct(n){const{display:o,copy:i,children:r,onCopy:s,message:a="copied"}=n,l=(0,e.createRef)(),c=(0,e.useCallback)((()=>{if(s&&s(),!window.navigator.clipboard)return l.current.select(),document.execCommand("copy"),void ot.success(a);window.navigator.clipboard.writeText(i),ot.success(a)}),[s,l]);return t().createElement(t().Fragment,null,t().createElement(n.element,((e,t)=>{for(var n in t||(t={}))st.call(t,n)&<(e,n,t[n]);if(rt)for(var n of rt(t))at.call(t,n)&<(e,n,t[n]);return e})({onClick:c,onKeyUp:c},n),r||o),window.navigator.clipboard?null:t().createElement("textarea",{ref:l,className:"tyk-copy-to-clipboard",name:"copy",value:i},i))}ct.propTypes={message:r().string,onCopy:r().func,copy:r().string.isRequired,display:r().string,children:r().oneOfType([r().element,r().string,r().object,r().node])};const ut=ct;var ht=n(137),dt=n.n(ht);function pt({children:e}){return t().createElement("div",{className:"tyk-modal__footer"},e)}pt.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const gt=pt;function mt({children:e}){return t().createElement("div",{className:"tyk-modal__body"},e)}mt.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const ft=mt;var yt=Object.defineProperty,vt=Object.getOwnPropertySymbols,bt=Object.prototype.hasOwnProperty,wt=Object.prototype.propertyIsEnumerable,xt=(e,t,n)=>t in e?yt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function kt(e){var n=e,{children:o,theme:i="none",disableCloseCommands:r=!1,opened:s=!1,onClose:a=(()=>{}),size:l="md",className:c="",showBackdrop:u=!0}=n,h=((e,t)=>{var n={};for(var o in e)bt.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&vt)for(var o of vt(e))t.indexOf(o)<0&&wt.call(e,o)&&(n[o]=e[o]);return n})(n,["children","theme","disableCloseCommands","opened","onClose","size","className","showBackdrop"]);const d=["tyk-modal",`tyk-modal--theme-${i}`,s&&"opened"].concat(c.split(" ")).filter(Boolean).join(" "),p=["tyk-modal__backdrop",s&&"opened"].filter(Boolean).join(" "),m={success:"check",warning:"warning",danger:"delete"}[i];return t().createElement(t().Fragment,null,dt().createPortal(t().createElement(x.CSSTransition,{in:s,timeout:100,classNames:"appear"},t().createElement("div",((e,t)=>{for(var n in t||(t={}))bt.call(t,n)&&xt(e,n,t[n]);if(vt)for(var n of vt(t))wt.call(t,n)&&xt(e,n,t[n]);return e})({className:d},h),t().createElement("div",{className:`tyk-modal__dialog tyk-modal--${l}`},t().createElement("div",{className:"tyk-modal__content"},"none"!==i&&t().createElement("div",{className:"tyk-modal__theme-header"},t().createElement(g,{family:"tykon",type:m})),o)))),document.querySelector("body")),u&&dt().createPortal(t().createElement(x.CSSTransition,{in:s,timeout:100,classNames:"fade"},t().createElement("button",{className:p,onClick:()=>!r&&a(),onKeyDown:()=>{},type:"button","aria-label":"Close"})),document.querySelector("body")))}kt.Body=ft,kt.Footer=gt,kt.Header=({children:e})=>(console.warn("%cModal.Header%c is deprecated.","font-weight: bold",""),t().createElement("div",{className:"tyk-modal__header"},e)),kt.Header.propTypes={children:r().element},kt.Title=({children:e})=>(console.warn("%cModal.Title%c is deprecated.","font-weight: bold",""),t().createElement("h4",{className:"tyk-modal__title"},e)),kt.Title.propTypes={children:r().element},kt.propTypes={children:r().oneOfType([r().element,r().node,r().string]),className:r().string,theme:r().string,disableCloseCommands:r().bool,opened:r().bool,onClose:r().func,size:r().string,showBackdrop:r().bool};const Ct=kt;function $t(n){const{children:o,title:i,description:r,confirmBtnText:s="Confirm",cancelBtnText:a="Cancel"}=n,[l,c]=(0,e.useState)(!1),[u,h]=(0,e.useState)(null),[d,p]=(0,e.useState)(null),g=()=>{c(!1),h(null),p(null)},m=()=>{d&&d(),g()};return t().createElement(t().Fragment,null,o(((e,t,n)=>(...o)=>{n&&n(...o),c(!0),h((()=>()=>e(...o))),t&&p((()=>()=>t(...o)))})),t().createElement(Ct,{opened:l,onClose:m},t().createElement(Ct.Body,null,t().createElement("h4",null,i),r),t().createElement(Ct.Footer,null,t().createElement(U,{onClick:m,theme:"default"},a),t().createElement(U,{onClick:()=>{u(),g()},theme:"success"},s))))}$t.propTypes={confirmBtnText:r().string,cancelBtnText:r().string,title:r().string,description:r().string,children:r().oneOfType([r().element,r().string,r().object,r().node,r().func])};const St=$t;function Et({children:n,className:o,showShadow:i}){const r=(0,e.useRef)(null),s=(0,e.useCallback)((()=>{const e=r.current;e&&(window.scrollY?e.classList.add("tyk-fixed-wrapper--scrolled"):e.classList.remove("tyk-fixed-wrapper--scrolled"))}),[r.current]),a=(0,e.useCallback)(ge(s,100),[s]);return(0,e.useEffect)((()=>(i&&window.addEventListener("scroll",a),()=>{window.removeEventListener("scroll",a)})),[a,i]),t().createElement("div",{className:`tyk-fixed-wrapper ${o}`,ref:r},n)}Et.propTypes={children:r().oneOfType([r().element,r().node,r().string]),className:r().string,showShadow:r().bool},Et.defaultProps={className:""};const Ot=Et;function Tt({children:n,hasMore:o,initialLoad:i,loadMore:r,pageNumber:s,refChild:a}){const[l,c]=(0,e.useState)(!1),u=(0,e.useRef)(null),h=C(a);(0,e.useEffect)((()=>{i&&"function"==typeof r&&(c(!1),r(s))}),[i]);const d=(0,e.useCallback)((()=>{if(!u.current)return!1;const{clientHeight:e,scrollTop:t}=u.current;return o&&(e+Math.round(t)===h.height||e>=h.height)}),[u,h.height]),p=(0,e.useCallback)((()=>{o&&"function"==typeof r?(r(s+1),c(!0)):c(!1)}),[o,s]),g=me(s),m=(0,e.useCallback)(ge((()=>{d()&&g<=s&&p()}),200),[p,d]);(0,e.useEffect)((()=>{var e;return null==(e=u.current)||e.addEventListener("scroll",m),()=>{var e;return null==(e=u.current)?void 0:e.removeEventListener("scroll",m)}}),[u,m]),(0,e.useEffect)((()=>{g>0&&0===s&&(u.current.scrollTop=0)}),[u,s]);const f=me(h);return(0,e.useEffect)((()=>{h&&f&&h.height!==f.height&&!0===l&&c(!1)}),[l,h.height]),(0,e.useEffect)((()=>{a&&h.heightt in e?_t(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function It({element:n,size:o="auto",forceDisplay:i="auto",displayAxis:r="auto",preferredPosition:s,offset:a=0,className:l,children:c,infiniteScrollerConfig:u},h){const d=(0,e.useRef)(null),p=h||d,g=(0,e.useRef)(null),m=(0,e.useRef)(null);return(0,e.useEffect)((()=>{window.requestAnimationFrame((function e(){(function(){var e;const t="auto"!==i?i:function(){const e=n.current,t=p.current;if(!t)return(null!=s?s:"vertical"===r)?"bottom":"right";const{left:o,top:i}=e.getBoundingClientRect(),a=i,l=window.innerHeight-i-e.offsetHeight,c=o,u=window.innerWidth-o-e.offsetWidth,h=a>t.scrollHeight,d=l>t.scrollHeight,g=c>t.offsetWidth,m=u>t.offsetWidth,f=o+e.offsetWidth/2-t.offsetWidth/2>0,y=i+e.offsetHeight/2-t.scrollHeight/2>0;return"vertical"===r||"auto"===r&&(h||d)&&f?function({preferredPosition:e,hasTopSpace:t,hasBottomSpace:n,topSpace:o,bottomSpace:i}){return"top"===e&&t?"top":"bottom"===e&&n||n||i>o?"bottom":"top"}({preferredPosition:s,hasTopSpace:h,hasBottomSpace:d,topSpace:a,bottomSpace:l}):"horizontal"===r?function({preferredPosition:e,hasLeftSpace:t,hasRightSpace:n,leftSpace:o,rightSpace:i}){return"left"===e&&t?"left":"right"===e&&n||n||i>o?"right":"left"}({preferredPosition:s,hasLeftSpace:g,hasRightSpace:m,leftSpace:c,rightSpace:u}):function({preferredPosition:e,hasTopSpace:t,hasBottomSpace:n,hasLeftSpace:o,hasRightSpace:i,positionedHorizontallyFitsInViewport:r,positionedVerticallyFitsInViewport:s}){return t&&s?"top":n&&s?"bottom":i&&r?"right":o&&r?"left":null!=e?e:"bottom"}({preferredPosition:s,hasTopSpace:h,hasBottomSpace:d,hasLeftSpace:g,hasRightSpace:m,positionedHorizontallyFitsInViewport:y,positionedVerticallyFitsInViewport:f})}(),l=n.current,c=p.current;if(!l||!c)return;const u=l.getBoundingClientRect(),{left:h,top:d}=null!=(e=m.current)?e:{left:0,top:0};if("top"===t&&Object.assign(c.style,function({container:e,targetPosition:t,target:n,size:o,offset:i,vpLeft:r,vpTop:s}){const a={},l={auto:t.left+n.offsetWidth/2-e.offsetWidth/2,matchElement:t.left,matchStart:t.left,matchEnd:t.right-e.offsetWidth}[o],c=t.top-e.offsetHeight-i;return a.left=`${l+r}px`,a.top=`${c+s}px`,"matchElement"===o?a.width=`${n.offsetWidth}px`:"matchEnd"===o?a.maxWidth=t.right-5+"px":"function"==typeof o&&(a.width=`${o(n.offsetWidth)}px`),a.maxHeight=t.top-i+"px",a}({container:c,targetPosition:u,target:l,size:o,offset:a,vpLeft:h,vpTop:d})),"bottom"===t&&Object.assign(c.style,function({targetPosition:e,target:t,container:n,size:o,offset:i,vpLeft:r,vpTop:s}){const a={},l={auto:e.left+t.offsetWidth/2-n.offsetWidth/2,matchElement:e.left,matchStart:e.left,matchEnd:e.right-n.offsetWidth}[o],c=e.bottom+i;return a.left=`${l+r}px`,a.top=`${c+s}px`,"matchElement"===o?a.width=`${t.offsetWidth}px`:"matchEnd"===o?a.maxWidth=e.right-5+"px":"function"==typeof o&&(a.width=`${o(t.offsetWidth)}px`),a.maxHeight=window.innerHeight-e.bottom-i+"px",a}({container:c,targetPosition:u,target:l,size:o,offset:a,vpLeft:h,vpTop:d})),"left"===t&&Object.assign(c.style,function({targetPosition:e,target:t,container:n,size:o,offset:i}){const r={},s=e.left-n.offsetWidth-i,a={auto:e.top+t.offsetHeight/2-n.offsetHeight/2,matchElement:e.top,matchStart:e.top,matchEnd:e.bottom-n.offsetHeight}[o];return r.left=`${s}px`,r.top=`${a}px`,"matchElement"===o?r.height=`${t.offsetHeight}px`:"function"==typeof o&&(r.height=`${o(t.offsetHeight)}px`),r.maxWidth=e.left-i+"px",r}({targetPosition:u,target:l,container:c,size:o,offset:a})),"right"===t&&Object.assign(c.style,function({targetPosition:e,target:t,container:n,size:o,offset:i,vpLeft:r,vpTop:s}){const a={},l=e.left+t.offsetWidth+i,c={auto:e.top+t.offsetHeight/2-n.offsetHeight/2,matchElement:e.top,matchStart:e.top,matchEnd:e.bottom-n.offsetHeight}[o];return a.left="auto"===o?`${l+r}px`:`${l}px`,a.top="auto"===o?`${c+s}px`:`${c}px`,"matchElement"===o?a.height=`${t.offsetHeight}px`:"function"==typeof o&&(a.height=`${o(t.offsetHeight)}px`),a.maxWidth=window.innerWidth-e.left-t.offsetWidth-i+"px",a}({targetPosition:u,target:l,container:c,size:o,offset:a,vpLeft:h,vpTop:d})),null===m.current)if("matchEnd"===o)m.current={left:0,top:0};else{const e=Number(c.style.left.replace("px","")),t=Number(c.style.top.replace("px",""));m.current={left:e<0?5-e:0,top:t<0?5-t:0}}})(),window.requestAnimationFrame(e)}))}),[]),(0,ht.createPortal)(t().createElement("div",{className:`floating-container ${l||""}`,ref:p},t().createElement(At,((e,t)=>{for(var n in t||(t={}))Mt.call(t,n)&&Nt(e,n,t[n]);if(Lt)for(var n of Lt(t))Rt.call(t,n)&&Nt(e,n,t[n]);return e})({refChild:g},u),t().createElement("div",{className:"floating-container__content-wrapper",ref:g},c))),document.querySelector("body"))}It.propTypes={element:r().instanceOf(Object),className:r().string,size:r().oneOfType([r().oneOf(["auto","matchElement","matchStart","matchEnd"]),r().func]),offset:r().number,forceDisplay:r().oneOf(["auto","top","bottom","left","right"]),displayAxis:r().oneOf(["auto","vertical","horizontal"]),preferredPosition:r().oneOf(["top","bottom","left","right"]),infiniteScrollerConfig:r().instanceOf(Object)};const Pt=(0,e.forwardRef)(It);function Dt({children:e}){return t().createElement("div",{className:"tyk-info-note"},t().createElement(be,{theme:"info"},e))}Dt.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const Ft=Dt;function Bt(e){const{className:n,children:o,selected:i}=e;return t().createElement("li",{className:`${n} ${i?"tyk-list__item--selected":""}`},o)}Bt.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,selected:r().bool},Bt.defaultProps={className:""};const Wt=Bt;function Ht(e){const{className:n,children:o,label:i,labelwidth:r,theme:s,style:a}=e;return t().createElement("div",{className:"tyk-list__wrapper "+(r?"tyk-list--with-inline-label":"")},void 0!==i?t().createElement("label",{style:{flexBasis:r||"auto"}},i):null,t().createElement("ul",{className:(()=>{let e=["tyk-list"];return s&&e.push(`tyk-list--${s}`),n&&(e=e.concat(n.split(" "))),e.join(" ")})(),style:(()=>{const e=structuredClone(a);return r&&(e.flexBasis=`calc(100% - ${r} - 20px)`),e})()},o))}Ht.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,label:r().string,labelwidth:r().string,theme:r().string,style:r().instanceOf(Object)},Ht.defaultProps={theme:"default",style:{}},Ht.Item=Wt;const jt=Ht;function zt({align:e="center",children:n,left:o,right:i,title:r,pre:s,subtitle:a,withTabs:l}){const c=a?t().createElement("p",{className:"font-family-medium"},a):null;return t().createElement("section",{className:"tyk-nav-bar "+(l?"tyk-nav-bar__with-tabs":"")},t().createElement("div",{className:`tyk-nav-bar__wrapper tyk-nav-bar--align-${e}`},s&&t().createElement("div",{className:"tyk-nav-bar__pre"},s),r?t().createElement("div",null,t().createElement("h1",null,r),c):c,t().createElement("div",{className:"tyk-nav-bar__container"},o&&t().createElement("div",{className:"tyk-nav-bar__left"},o),i&&t().createElement("div",{className:"tyk-nav-bar__right"},i))),n)}zt.propTypes={align:r().string,children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),title:r().string,subtitle:r().string,pre:r().oneOfType([r().element,r().node]),left:r().oneOfType([r().element,r().node]),right:r().oneOfType([r().element,r().node]),withTabs:r().bool};const Vt=zt;function Ut({children:e}){return t().createElement("li",{className:"tyk-navigation-item"},e)}Ut.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string])};const Gt=Ut;function Kt({children:e}){return t().createElement("ul",{className:"tyk-navigation"},e)}Kt.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string])},Kt.Item=Gt;const qt=Kt,Yt=(0,e.createContext)();var Jt=Object.defineProperty,Xt=Object.defineProperties,Qt=Object.getOwnPropertyDescriptors,Zt=Object.getOwnPropertySymbols,en=Object.prototype.hasOwnProperty,tn=Object.prototype.propertyIsEnumerable,nn=(e,t,n)=>t in e?Jt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,on=(e,t)=>{for(var n in t||(t={}))en.call(t,n)&&nn(e,n,t[n]);if(Zt)for(var n of Zt(t))tn.call(t,n)&&nn(e,n,t[n]);return e},rn=(e,t)=>Xt(e,Qt(t));function sn(n){var o=n,{children:i,noPadding:r,className:s}=o,a=((e,t)=>{var n={};for(var o in e)en.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Zt)for(var o of Zt(e))t.indexOf(o)<0&&tn.call(e,o)&&(n[o]=e[o]);return n})(o,["children","noPadding","className"]);const l=(0,e.useCallback)((()=>["tyk-panel__body",s,r&&"no-padding"].filter(Boolean).join(" ")),[s,r]);return t().createElement(Yt.Consumer,null,(e=>e.collapsable?t().createElement(R,rn(on({},a),{collapsed:e.collapsed,className:l()}),i):t().createElement("div",rn(on({},a),{className:l()}),i)))}sn.propTypes={children:r().oneOfType([r().element,r().node,r().string]),noPadding:r().bool,className:r().string};const an=sn;function ln(e){const{children:n}=e;return t().createElement("div",{className:"tyk-panel__footer"},n)}ln.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const cn=ln;class un extends e.Component{getCssClasses(e){const{className:t}=this.props;let n=["tyk-panel__header"];return e.collapsable&&n.push("collapsable"),t&&(n=n.concat(t.split(" "))),n.join(" ")}render(){const{children:e}=this.props;return t().createElement(Yt.Consumer,null,(n=>{const o="blank"===n.theme?"h3":"div",i=n.collapsed?"chevron-down":"chevron-up";return t().createElement(o,{className:this.getCssClasses(n),onClick:n.collapsable?n.onToggle:void 0},e,n.collapsable?t().createElement("div",{className:`collapsable__arrow-${n.collapsibleIconPosition}`},t().createElement(g,{type:i})):null)}))}}un.propTypes={children:r().oneOfType([r().element,r().node,r().string]).isRequired,className:r().string};const hn=un;function dn(n){const{children:o,className:i,collapsed:r,collapsable:s,theme:a,onToggleCollapse:l,collapsibleIconPosition:c="right"}=n,[u,h]=(0,e.useState)(r||!1);(0,e.useEffect)((()=>{r!==u&&h(r)}),[r]);const d=(0,e.useCallback)((()=>{h(!u),l&&l(!u)}),[u,l]),p=(0,e.useMemo)((()=>({collapsable:s,collapsed:u,onToggle:d,theme:a,collapsibleIconPosition:c})),[s,u,c,a,d]);return t().createElement("div",{className:(()=>{let e=["tyk-panel"];const t=`tyk-panel--${a||"default"}`,n=`tyk-panel__icon-collapse--${c}`;return e.push(t),e.push(n),i&&(e=e.concat(i.split(" "))),u&&e.push("tyk-panel--collapsed"),e.join(" ")})()},t().createElement(Yt.Provider,{value:p},"function"==typeof o?o({toggleCollapse:d}):o))}dn.propTypes={children:r().oneOfType([r().func,r().element,r().node,r().string]),className:r().string,collapsable:r().bool,collapsibleIconPosition:r().string,collapsed:r().bool,theme:r().string,onToggleCollapse:r().func},dn.Body=an,dn.Footer=cn,dn.Header=hn;const pn=dn;function gn(e){const{children:n,className:o,theme:i}=e;return t().createElement("div",{className:(()=>{let e=["tyk-pill",...i.split(" ").map((e=>`tyk-pill--${e}`))];return o&&(e=e.concat(o)),e.join(" ")})()},n)}gn.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,theme:r().string},gn.defaultProps={theme:"default"};const mn=gn;var fn,yn,vn,bn,wn,xn,kn,Cn,$n=(e,t,n)=>{if(!t.has(e))throw TypeError("Cannot "+n)},Sn=(e,t,n)=>($n(e,t,"read from private field"),n?n.call(e):t.get(e)),En=(e,t,n)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,n)},On=(e,t,n,o)=>($n(e,t,"write to private field"),o?o.call(e,n):t.set(e,n),n);class Tn{constructor(){En(this,fn,null),En(this,yn,null),En(this,vn,null),En(this,bn,null),En(this,wn,[]),En(this,xn,[]),En(this,kn,[]),En(this,Cn,!1)}on(e,t){let n=null;"onHeightChange"===e?n=Sn(this,wn):"onDragStart"===e?n=Sn(this,xn):"onDragEnd"===e&&(n=Sn(this,kn)),n&&this.addListener(n,t)}off(e,t){let n=null;"onHeightChange"===e?n=Sn(this,wn):"onDragStart"===e?n=Sn(this,xn):"onDragEnd"===e&&(n=Sn(this,kn)),n&&this.removeListener(n,t)}setRefs(e,t,n){(Sn(this,yn)||Sn(this,vn)||Sn(this,bn))&&this.unbindEvents(),On(this,bn,e),On(this,yn,t),On(this,vn,n),On(this,fn,null),this.bindEvents()}bindEvents(){this.ensureRefs("bindEvents"),Sn(this,vn).addEventListener("mousedown",this.onMouseDown.bind(this)),document.addEventListener("mousemove",this.onMouseMove.bind(this)),document.addEventListener("mouseup",this.onMouseUp.bind(this))}getHeight(){return this.ensureRefs("getHeight"),Sn(this,yn).getBoundingClientRect().height}onMouseDown(e){this.ensureRefs("onMouseDown"),On(this,fn,{mouseDown:!0,initialRect:Sn(this,yn).getBoundingClientRect(),initialEvent:e})}onMouseMove(e){if(this.ensureRefs("onMouseMove"),!Sn(this,fn))return;if(!this.isPrimaryMouseButtonDown(e))return void this.onMouseUp();Sn(this,Cn)||(On(this,Cn,!0),this.onDragStart.bind(this)());const t=Sn(this,fn).initialEvent.y-e.y,n=Math.ceil(Sn(this,fn).initialRect.height+t);this.setHeight(`${n}px`,"mousemove")}notifyListeners(e,t){e&&Array.isArray(e)&&e.length&&e.forEach((e=>{"function"==typeof e&&e(t)}))}addListener(e,t){e&&Array.isArray(e)&&"function"==typeof t&&e.push(t)}removeListener(e,t){if(e&&Array.isArray(e)&&"function"==typeof t&&e.length){const n=e.indexOf(t);n>-1&&e.splice(n,1)}}onDragEnd(){Sn(this,Cn)&&this.notifyListeners(Sn(this,kn),this.getHeight())}onDragStart(){this.notifyListeners(Sn(this,xn),this.getHeight())}isPrimaryMouseButtonDown(e){return 1===(void 0!==e.buttons?e.buttons:e.which)}onMouseUp(){On(this,fn,null),this.onDragEnd.bind(this)(),On(this,Cn,!1)}setHeight(e){let t=e;this.ensureRefs("setHeight"),"number"==typeof t&&(t+="px"),Sn(this,yn).style.height=t,this.notifyListeners(Sn(this,wn),this.getHeight())}ensureRefs(e){if(!Sn(this,yn)||!Sn(this,vn)||!Sn(this,bn))throw new Error(`${e}: Wrapper, panel, and gutter elements are required. Use setRefs method first.`)}isHidden(){return this.ensureRefs("isHidden"),"hidden"===Sn(this,bn).style.visibility}hide(){this.ensureRefs("hide"),Sn(this,bn).style.visibility="hidden"}show(){this.ensureRefs("show"),Sn(this,bn).style.visibility="visible"}unbindEvents(){On(this,wn,[]),On(this,xn,[]),On(this,kn,[]),Sn(this,vn).removeEventListener("mousedown",this.onMouseDown.bind(this)),document.removeEventListener("mousemove",this.onMouseMove.bind(this)),document.removeEventListener("mouseup",this.onMouseUp.bind(this))}deinit(){this.unbindEvents()}}function An({children:e}){return t().createElement(t().Fragment,null,e)}function _n({children:e}){return t().createElement(t().Fragment,null,e)}fn=new WeakMap,yn=new WeakMap,vn=new WeakMap,bn=new WeakMap,wn=new WeakMap,xn=new WeakMap,kn=new WeakMap,Cn=new WeakMap,An.propTypes={children:r().instanceOf({})},_n.propTypes={children:r().instanceOf({})};const Ln=(...e)=>e.map((e=>(e||"").trim())).filter(Boolean).join(" ");function Mn({children:n,height:o,onHeightChange:i=null,onDragStart:r=null,onDragEnd:s=null,style:a=null,parentSelector:l=null,contentStyle:c,contentClassName:u,gutterClassName:h,wrapperClassName:d},p){const g=(0,e.useRef)(null),m=(0,e.useRef)(null),f=(0,e.useRef)(null),y=(0,e.useRef)(new Tn).current;(0,e.useEffect)((()=>{if(g.current&&m.current&&f.current&&y)return y.setRefs(f.current,g.current,m.current),y.on("onHeightChange",i),y.on("onDragStart",r),y.on("onDragEnd",s),y.setHeight(o,"initialize"),()=>{y.unbindEvents()}}),[]),(0,e.useImperativeHandle)(p,(()=>{const e=e=>e.bind(y);return{getHeight:e(y.getHeight),setHeight:e(y.setHeight),hide:e(y.hide),show:e(y.show),isHidden:e(y.isHidden),deinit:e(y.deinit),on:e(y.on),off:e(y.off)}}),[]);let v=null,b=null;const w=[];t().Children.forEach(n,(e=>{e&&t().isValidElement(e)&&(e.type===An?v=e:e.type===_n?b=e:w.push(e))}));const x=t().createElement("div",{className:Ln("tyk-ui-reveal-wrapper",d||"cem"),ref:f,style:a},t().createElement("div",{className:"tyk-ui-reveal-wrapper__hole"}),t().createElement("div",{ref:m,className:Ln("tyk-ui-reveal-wrapper__gutter",h)},t().createElement("div",{className:"tyk-ui-reveal-wrapper__gutter__headerleft"},v),t().createElement("div",{className:"tyk-ui-reveal-wrapper__gutter__logo"}," "),t().createElement("div",{className:"tyk-ui-reveal-wrapper__gutter__headerright"},b)),t().createElement("div",{ref:g,className:Ln("tyk-ui-reveal-wrapper__panel",u),style:c},w));if(l)return(0,ht.createPortal)(x,document.querySelector(l))}Mn.propTypes={children:r().instanceOf({}),height:r().string,onHeightChange:r().func,onDragStart:r().func,onDragEnd:r().func,parentSelector:r().string,style:r().instanceOf({}),contentStyle:r().instanceOf({}),contentClassName:r().string,gutterClassName:r().string,wrapperClassName:r().string};const Rn=(0,e.forwardRef)(Mn);Rn.HeaderLeft=An,Rn.HeaderRight=_n;const Nn=Rn,In=(0,e.createContext)(),Pn=(0,e.createContext)();var Dn=Object.defineProperty,Fn=Object.getOwnPropertySymbols,Bn=Object.prototype.hasOwnProperty,Wn=Object.prototype.propertyIsEnumerable,Hn=(e,t,n)=>t in e?Dn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,jn=(e,t)=>{for(var n in t||(t={}))Bn.call(t,n)&&Hn(e,n,t[n]);if(Fn)for(var n of Fn(t))Wn.call(t,n)&&Hn(e,n,t[n]);return e};function zn(n){const{addTab:o,hideTab:i,updateTab:r,showTab:s,children:a,selectedPath:l,tabData:c,tabsId:u,tabExists:h,path:d,rendered:p,hideTabContent:g,tabs:m}=n;(0,e.useEffect)((()=>{const e=jn({},c);h(d)||o(e,d)}),[c,d]);const f=me(c);(0,e.useEffect)((()=>{if(h(d)&&(null==c?void 0:c.title)&&((null==f?void 0:f.title)!==(null==c?void 0:c.title)||(null==f?void 0:f.selected)!==c.selected)){const e=jn({},c);r(e,d)}}),[c,d,f,m]),(0,e.useEffect)((()=>(s(d),()=>i(d))),[]);const y=(0,e.useMemo)((()=>!!Object.keys(m).length&&!g&&!1!==m[c.id].show&&(p?l&&l.indexOf(c.id)>-1:h(d))),[g,p,l,c,m]),v=(0,e.useMemo)((()=>({path:d,tabsId:u})),[d,u]);return y?t().createElement("div",{key:c.id,className:"tyk-tab__content",style:{display:l&&l.indexOf(c.id)>-1?"block":"none"}},t().createElement(Pn.Provider,{value:v},a)):null}zn.propTypes={addTab:r().func,updateTab:r().func,hideTab:r().func,showTab:r().func,children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),path:r().instanceOf(Array),hideTabContent:r().bool,rendered:r().bool,selectedPath:r().instanceOf(Array),tabExists:r().func,tabsId:r().string,tabData:r().instanceOf(Object),tabs:r().instanceOf(Object)};const Vn=zn;function Un(n){const{id:o}=n,i=(0,e.useContext)(In),r=(0,e.useContext)(Pn),{tabExists:s,selectedPath:a,addTab:l,updateTab:c,hideTab:u,showTab:h,rendered:d,hideTabContent:p,tabs:g}=i,{children:m}=n,[f,y]=(0,e.useState)("");return(0,e.useEffect)((()=>{let e;e=r&&f&&r.tabsId===i.id?r.path.concat([o]):[o],y(e)}),[r]),f?t().createElement(Vn,{addTab:l,updateTab:c,hideTab:u,showTab:h,tabExists:s,tabData:n,path:f,tabsId:i.id,selectedPath:a,rendered:d,hideTabContent:p,tabs:g},m):null}Un.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),id:r().string},Un.defaultProps={};const Gn=Un;var Kn=Object.defineProperty,qn=Object.getOwnPropertySymbols,Yn=Object.prototype.hasOwnProperty,Jn=Object.prototype.propertyIsEnumerable,Xn=(e,t,n)=>t in e?Kn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Qn=(e,t)=>{for(var n in t||(t={}))Yn.call(t,n)&&Xn(e,n,t[n]);if(qn)for(var n of qn(t))Jn.call(t,n)&&Xn(e,n,t[n]);return e};function Zn(n){const{children:o,className:i,id:r,onTabChange:s,type:a,hideTabContent:l}=n,[c,u]=(0,e.useState)({}),[h,d]=(0,e.useState)([]),[p,m]=(0,e.useState)(!1),[f,y]=(0,e.useState)(null);(0,e.useEffect)((()=>{d(f)}),[f]);const v=(e,t)=>{const n=e.slice(0);let o=!0;t.collapsible&&(n.push(Object.keys(t.tabs)[0]),o=!1),u((t=>{let n=Qn({},t);return n=((e,t)=>{let n=Qn({},e);const o=t.slice(0);for(;o.length>1;)n=n[o.shift()];const i=o.shift();return void 0===n[i].collapsed?n[i].collapsed=!0:n[i].collapsed=!n[i].collapsed,n})(n,e),n})),d(n),m(o),s&&s(t)},b=e=>{const t=[];return h&&h.indexOf(e)>-1&&t.push("active"),t.join(" ")},w=(e,n)=>e?t().createElement("ul",null,Object.keys(e).map(((o,i)=>{const r=n?n.concat([e[o].id]):[e[o].id],s=e[o].collapsed?"chevron-up":"chevron-down";return!1===e[o].show?null:t().createElement("li",{className:b(e[o].id),key:e[o].id},t().createElement("button",{type:"button",onClick:v.bind(null,r,e[o]),onKeyDown:v.bind(null,r,e[o]),tabIndex:i},e[o].title,e[o].collapsible?t().createElement(g,{className:"collapsable-arrow",type:s}):null),e[o].collapsible?t().createElement(R,{collapsed:e[o].collapsed},w(e[o].tabs,r)):w(e[o].tabs,r))}))):null,x=(e,t)=>{u((n=>((e,t,n)=>{let o=Qn({},e);const i=Qn({},n),r=t.slice(0);for(;r.length>1;)o=o[r.shift()],o||(o={});return i.tempPath=r,o[r.shift()]=i,o})(Qn({},n),t,e))),e.selected&&y(t)},k=(e,t)=>{u((t=>{const n=Qn({},t);return n[e.id]=e,n})),e.selected&&v(t,e)},C=e=>{u((t=>{const n=Qn({},t);return n[e].show=!1,n}))},$=e=>{u((t=>{const n=Qn({},t);return n[e].show=!0,n}))},S=e=>{let t=Qn({},c);const n=e.slice(0);for(;n.length>1;)t=t[n.shift()];const o=n.shift();return Boolean(null==t?void 0:t[o])},E=(0,e.useMemo)((()=>({id:r,addTab:x,hideTab:C,updateTab:k,showTab:$,tabExists:S,selectedPath:h,rendered:p,hideTabContent:l,tabs:c})),[r,x,C,k,$,S,h,p,l,c]);return t().createElement("div",{className:(()=>{let e=["tyk-tabs"];return e.push(`tyk-tabs--${a||"default"}`),i&&(e=e.concat(i.split(" "))),e.join(" ")})()},w(c),t().createElement(In.Provider,{value:E},"function"==typeof o?o({hideTab:C,showTab:$}):o))}Zn.propTypes={className:r().string,children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),hideTabContent:r().bool,id:r().string,onTabChange:r().func,type:r().string},Zn.Tab=Gn;const eo=Zn;var to=Object.defineProperty,no=Object.getOwnPropertySymbols,oo=Object.prototype.hasOwnProperty,io=Object.prototype.propertyIsEnumerable,ro=(e,t,n)=>t in e?to(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,so=(e,t)=>{for(var n in t||(t={}))oo.call(t,n)&&ro(e,n,t[n]);if(no)for(var n of no(t))io.call(t,n)&&ro(e,n,t[n]);return e};function ao(n){var o=n,{render:i,className:r,children:s,position:a="auto",style:l,icon:c=!1,closable:u,isOpened:h=!1,additionalClickParents:d=[]}=o,p=((e,t)=>{var n={};for(var o in e)oo.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&no)for(var o of no(e))t.indexOf(o)<0&&io.call(e,o)&&(n[o]=e[o]);return n})(o,["render","className","children","position","style","icon","closable","isOpened","additionalClickParents"]);const[m,f]=(0,e.useState)(!1),y=(0,e.useRef)(null),v=(0,e.useRef)(null),b=u?{onClick:()=>f(!0)}:{onMouseEnter:()=>f(!0),onMouseLeave:()=>f(!1),onFocus:()=>f(!0),onBlur:()=>f(!1)},w=(0,e.useCallback)((e=>{[...d,v.current].some((t=>{var n;return null==(n=null==t?void 0:t.contains)?void 0:n.call(t,e.target)}))||f(!1)}),[d]);(0,e.useEffect)((()=>(document.addEventListener("click",w,!0),()=>document.removeEventListener("click",w,!0))),[w]),(0,e.useEffect)((()=>{f(h)}),[h]);const x=["tyk-tooltip",r].filter(Boolean).join(" ");return t().createElement("div",so(so({className:"tyk-tooltip__wrapper",style:so({display:"inline-block"},l),ref:y},b),p),s,m&&t().createElement(Pt,{element:y,forceDisplay:a,preferredPosition:"top",offset:20},t().createElement("div",{className:x,ref:v},c&&(!0===c?t().createElement(g,{family:"tykon",type:"help"}):c),t().createElement("div",{className:"tyk-tooltip__content"},i),u&&t().createElement(g,{family:"tykon",type:"x",onClick:e=>{e.stopPropagation(),f(!1)}}))))}ao.propTypes={children:r().node.isRequired,style:r().instanceOf(Object),position:r().string,render:r().oneOfType([r().node,r().string]),className:r().string,icon:r().oneOfType([r().bool,r().node]),closable:r().bool,isOpened:r().bool,additionalClickParents:r().instanceOf(Array)};const lo=ao;function co({text:e,limit:n,position:o}){return e.length>n?t().createElement(lo,{render:e,position:o},e.substring(0,n),"..."):e}co.propTypes={text:r().string,limit:r().number,position:r().string};const uo=co;function ho(n){const{value:o=0,totalNrOfPages:i,onChange:r}=n,[s,a]=(0,e.useState)(o),l=(0,e.useMemo)((()=>function(e,t){let n;const o=[];for(n=0;n<=e;n+=1)i=n,r=t,((s=e)<10||r<5&&i<5||r>s-5&&i>s-5||i>=r-2&&i<=r+2||[0,1,s-1,s].includes(i))&&(n>o.at(-1)&&o.push(`...-${n}`),o.push(n+1));var i,r,s;return o}(i,s)),[s,i]);function c(e){a(e),r&&r(e)}return i?t().createElement("ul",{className:"tyk-pagination"},s>0&&i>5&&t().createElement("li",null,t().createElement("button",{onClick:()=>c(s-1),type:"button"},"Previous")),l.map((e=>t().createElement("li",{key:e,className:s===e-1?"active":""},String(e).startsWith("...")?t().createElement("span",null,"..."):t().createElement("button",{onClick:()=>c(e-1),type:"button"},e)))),s5&&t().createElement("li",null,t().createElement("button",{onClick:()=>c(s+1),type:"button"},"Next"))):null}ho.propTypes={value:r().number,totalNrOfPages:r().number,onChange:r().func};const po=ho,go=(0,e.createContext)();function mo({column:n}){const{sortable:o}=n,[i,r]=(0,e.useState)((null==o?void 0:o.default)||"ASC"),{state:s,sendMessage:a}=(0,e.useContext)(go);return t().createElement("th",{key:n.id,onClick:o?()=>{a("sort",{column:n,sortOrder:i}),r("ASC"===i?"DESC":"ASC")}:null,className:s.maxHeight?"fixed-header":""},n.name,n.sortable&&t().createElement("span",{className:"header-sort"},t().createElement(g,{family:"tykon",type:"arrowsort"})))}mo.propTypes={column:r().instanceOf(Object)};var fo=Object.defineProperty,yo=Object.defineProperties,vo=Object.getOwnPropertyDescriptors,bo=Object.getOwnPropertySymbols,wo=Object.prototype.hasOwnProperty,xo=Object.prototype.propertyIsEnumerable,ko=(e,t,n)=>t in e?fo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Co=(e,t)=>{for(var n in t||(t={}))wo.call(t,n)&&ko(e,n,t[n]);if(bo)for(var n of bo(t))xo.call(t,n)&&ko(e,n,t[n]);return e},$o=(e,t)=>yo(e,vo(t));function So({allRowsSelected:n}){const{state:o,sendMessage:i}=(0,e.useContext)(go),{columns:r,selectable:s}=o,a=()=>{var e;const r=s.type;return t().createElement("th",{className:o.maxHeight?"fixed-header":""},(null==s?void 0:s.allowSelectAll)?t().createElement("div",{className:null==s?void 0:s.style},t().createElement(r,$o(Co({},s.values),{value:n,onChange:e=>{var t,n;const o="input"===(null==(t=null==e?void 0:e.target)?void 0:t.tagName.toLowerCase())&&"checkbox"===(null==(n=null==e?void 0:e.target)?void 0:n.type.toLowerCase());i("header.selectAll.change",o?e.target.checked:Boolean(e))}}),null==(e=s.values)?void 0:e.value)):s.name||"Select")};return t().createElement("thead",null,t().createElement("tr",null,"LEFT"===(null==s?void 0:s.position)&&a(),r.map((e=>t().createElement(mo,{key:e.id,column:e}))),"RIGHT"===(null==s?void 0:s.position)&&a()))}So.propTypes={allRowsSelected:r().bool};var Eo=Object.defineProperty,Oo=Object.defineProperties,To=Object.getOwnPropertyDescriptors,Ao=Object.getOwnPropertySymbols,_o=Object.prototype.hasOwnProperty,Lo=Object.prototype.propertyIsEnumerable,Mo=(e,t,n)=>t in e?Eo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ro=(e,t)=>{for(var n in t||(t={}))_o.call(t,n)&&Mo(e,n,t[n]);if(Ao)for(var n of Ao(t))Lo.call(t,n)&&Mo(e,n,t[n]);return e};class No extends e.Component{getCssClasses(){const{inline:e,disabled:t,readOnly:n,theme:o="",wrapperClassName:i=""}=this.props,r=[i];return r.push("tyk-checkbox"),e&&r.push("tyk-checkbox--inline"),o.trim()&&r.push(...o.split(" ").map((e=>`tyk-checkbox--theme-${e}`))),(t||n)&&r.push("tyk-checkbox--is-disabled"),r.join(" ")}displayError(){const{error:e}=this.props;return e?t().createElement("p",{className:"tyk-form-control__error-message"},e):null}displayNote(){const{note:e}=this.props;return e?t().createElement("p",{className:"tyk-form-control__help-block"},e):null}render(){const e=this.props,{input:n,value:o,label:i}=e,r=((e,t)=>{var n={};for(var o in e)_o.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ao)for(var o of Ao(e))t.indexOf(o)<0&&Lo.call(e,o)&&(n[o]=e[o]);return n})(e,["input","value","label"]);return t().createElement("div",{className:this.getCssClasses()},t().createElement("div",{className:"tyk-form-control__wrapper"},t().createElement("label",null,t().createElement("input",(s=Ro(Ro({checked:n?n.value:o},n),r),Oo(s,To({type:"checkbox"})))),i),this.displayNote(),this.displayError()));var s}}No.propTypes={disabled:r().bool,readOnly:r().bool,inline:r().bool,theme:r().string,error:r().oneOfType([r().string,r().bool]),note:r().string,input:r().instanceOf(Object),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),name:r().string,value:r().oneOfType([r().string,r().bool]),checked:r().oneOfType([r().string,r().bool]),onChange:r().func,wrapperClassName:r().string};const Io=No;var Po=Object.defineProperty,Do=Object.getOwnPropertySymbols,Fo=Object.prototype.hasOwnProperty,Bo=Object.prototype.propertyIsEnumerable,Wo=(e,t,n)=>t in e?Po(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ho=(e,t)=>{for(var n in t||(t={}))Fo.call(t,n)&&Wo(e,n,t[n]);if(Do)for(var n of Do(t))Bo.call(t,n)&&Wo(e,n,t[n]);return e};function jo({col:e,row:n}){var o,i,r,s,a;if(!n.values[e.id])return t().createElement("td",null);if("string"===e.type)return t().createElement("td",Ho({className:(null==(o=n.values[e.id].styling)?void 0:o.className)||null},null==(i=n.values[e.id])?void 0:i.events),null==(r=n.values[e.id])?void 0:r.value);const l=e.type;return t().createElement("td",Ho({className:(null==(s=n.values[e.id].styling)?void 0:s.className)||null},null==(a=n.values[e.id])?void 0:a.events),t().createElement(l,Ho({},n.values[e.id].props),n.values[e.id].children?n.values[e.id].children:null))}function zo({row:n,index:o}){var i,r;const{state:s,sendMessage:a}=(0,e.useContext)(go),{columns:l,selectable:c}=s,u=(0,e.useCallback)((()=>t().createElement("td",null,t().createElement(Io,{value:n.selected,onChange:e=>a("row.selected",{index:o,selected:e.target.checked})}))),[n.selected,o]);return t().createElement("tr",{onClick:null==(i=n.events)?void 0:i.onClick,className:null==(r=n.styling)?void 0:r.className},c&&"LEFT"===c.position&&u(),l.map((e=>t().createElement(jo,{key:e.id,col:e,row:n,index:o}))),c&&"RIGHT"===c.position&&u())}function Vo(){const{state:n}=(0,e.useContext)(go),{rows:o}=n;return t().createElement("tbody",null,o.map(((e,n)=>t().createElement(zo,{key:n,row:e,index:n}))))}jo.propTypes={col:r().instanceOf(Object),row:r().instanceOf(Object),index:r().number},zo.propTypes={row:r().instanceOf(Object),index:r().number};var Uo=Object.defineProperty,Go=Object.defineProperties,Ko=Object.getOwnPropertyDescriptors,qo=Object.getOwnPropertySymbols,Yo=Object.prototype.hasOwnProperty,Jo=Object.prototype.propertyIsEnumerable,Xo=(e,t,n)=>t in e?Uo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Qo=(e,t)=>{for(var n in t||(t={}))Yo.call(t,n)&&Xo(e,n,t[n]);if(qo)for(var n of qo(t))Jo.call(t,n)&&Xo(e,n,t[n]);return e},Zo=(e,t)=>Go(e,Ko(t));function ei({value:n,onChange:o,noDataMessage:i,loading:r,infiniteScrolling:s}){var a;const[l,c]=(0,e.useState)(null),[u,h]=(0,e.useState)("api"),d=(0,e.useRef)(null),p=(0,e.useCallback)(((e,t)=>{c((n=>Zo(Qo({},n),{sort:{order:t,col:e}})))}),[]),g=(0,e.useCallback)((e=>{c((t=>Zo(Qo({},t),{rows:t.rows.map((t=>Zo(Qo({},t),{selected:e})))})))}),[]),m=(0,e.useCallback)((({index:e,selected:t})=>{c((n=>Zo(Qo({},n),{rows:[...n.rows.slice(0,e),Zo(Qo({},n.rows[e]),{selected:t}),...n.rows.slice(e+1)]})))}),[]),f=(0,e.useCallback)((e=>{c((t=>Zo(Qo({},t),{pagination:Zo(Qo({},t.pagination),{current:e+1})})))}),[]),y={getState:()=>l,setState:e=>c(e)},v=(0,e.useCallback)(((e,t)=>{h(e),"sort"===e&&p(t.column.id,t.sortOrder),"header.selectAll.change"===e&&g(t),"row.selected"===e&&m(t),"pagination.change"===e&&f(t)}),[p,g,m,f]),b=(0,e.useMemo)((()=>({state:l,sendMessage:v})),[l,v]);if((0,e.useEffect)((()=>c(n)),[n]),(0,e.useEffect)((()=>{o&&o(u,l,y),h("api")}),[l]),!l)return t().createElement(ye,{position:"absolute"});if(l.rows<=0)return t().createElement(be,{theme:"info"},i||"No Data Available");const w=()=>t().createElement("table",{className:"tyk-table",ref:d},t().createElement(So,{allRowsSelected:l.rows.every((({selected:e})=>e))}),t().createElement(Vo,null));return t().createElement(go.Provider,{value:b},t().createElement("div",{className:`scrollable ${(null==(a=l.styling)?void 0:a.className)||""}`,style:{height:l.maxHeight?l.maxHeight:"auto",position:"relative"}},r&&t().createElement(ye,{position:"absolute",withbackground:!0}),s&&l.pagination?t().createElement(At,{refChild:d,hasMore:l.pagination.totalPages>l.pagination.current,loadMore:e=>v("pagination.change",e),pageNumber:l.pagination.current-1,initialLoad:!1},w()):w()),l.pagination&&!s&&t().createElement("div",{className:"new-table-pagination"},t().createElement(po,{value:l.pagination.current-1,nrItemsOnPage:l.pagination.perPage-1,totalNrOfPages:l.pagination.totalPages-1,onChange:e=>v("pagination.change",e)})))}ei.propTypes={value:r().shape({columns:r().arrayOf(r().shape({id:r().string.isRequired,name:r().string,type:r().oneOfType([r().string,r().element,r().func]),sortable:r().oneOfType([r().bool,r().shape({default:r().string})])})),rows:r().arrayOf(r().shape({})),selectable:r().shape({}),pagination:r().shape({}),maxHeight:r().string,styling:r().shape({className:r().string})}).isRequired,onChange:r().func,noDataMessage:r().string,loading:r().bool,infiniteScrolling:r().bool},ei.defaultProps={loading:!1,infiniteScrolling:!1,noDataMessage:"No Data Available",onChange:null};const ti=ei;var ni=Object.defineProperty,oi=Object.getOwnPropertySymbols,ii=Object.prototype.hasOwnProperty,ri=Object.prototype.propertyIsEnumerable,si=(e,t,n)=>t in e?ni(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function ai(e){var n=e,{children:o,align:i,className:r,offset:s,size:a}=n,l=((e,t)=>{var n={};for(var o in e)ii.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&oi)for(var o of oi(e))t.indexOf(o)<0&&ri.call(e,o)&&(n[o]=e[o]);return n})(n,["children","align","className","offset","size"]);const c=["tyk-col",r,i&&`tyk-col--align-${i}`,...a.split(" ").map((e=>`tyk-col--${e}`)),...(s?s.split(" "):[]).map((e=>`tyk-col--offset-${e}`))].filter(Boolean).join(" ");return t().createElement("div",((e,t)=>{for(var n in t||(t={}))ii.call(t,n)&&si(e,n,t[n]);if(oi)for(var n of oi(t))ri.call(t,n)&&si(e,n,t[n]);return e})({className:c},l),o)}ai.propTypes={align:r().string,className:r().string,size:r().string.isRequired,offset:r().string,children:r().oneOfType([r().element,r().string,r().object,r().node])};const li=ai;var ci=Object.defineProperty,ui=Object.defineProperties,hi=Object.getOwnPropertyDescriptors,di=Object.getOwnPropertySymbols,pi=Object.prototype.hasOwnProperty,gi=Object.prototype.propertyIsEnumerable,mi=(e,t,n)=>t in e?ci(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function fi(e){var n=e,{className:o,nogutters:i,children:r}=n,s=((e,t)=>{var n={};for(var o in e)pi.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&di)for(var o of di(e))t.indexOf(o)<0&&gi.call(e,o)&&(n[o]=e[o]);return n})(n,["className","nogutters","children"]);const a=["tyk-row",o,i&&"no-gutters",i&&"tyk-row--gutterless"].filter(Boolean).join(" ");return t().createElement("div",(l=((e,t)=>{for(var n in t||(t={}))pi.call(t,n)&&mi(e,n,t[n]);if(di)for(var n of di(t))gi.call(t,n)&&mi(e,n,t[n]);return e})({},s),ui(l,hi({className:a}))),r);var l}fi.propTypes={children:r().oneOfType([r().element,r().node]),className:r().string,nogutters:r().bool};const yi=fi,vi=(0,e.createContext)();function bi(n){const{customdropdownitem:o,children:i,eventKey:r,href:s,target:a,title:l,onClick:c}=n,u=(0,e.useCallback)(((e,t)=>{e.onSelectItem(r,t),c&&c(r)}),[]);return t().createElement(vi.Consumer,null,(c=>t().createElement("li",{onClick:()=>u(c,n),onKeyUp:()=>{}},o?(0,e.cloneElement)(o,{}):t().createElement("a",{href:s,target:a},r&&c.selectedItem===r&&c.showCheckmark?t().createElement(g,{type:"check"}):null,t().createElement("span",null,l||i)))))}bi.propTypes={children:r().oneOfType([r().element,r().node,r().string]),customdropdownitem:r().oneOfType([r().arrayOf(r().node),r().node,r().element]),eventKey:r().string,href:r().string,target:r().string,onClick:r().func,title:r().string};const wi=bi;var xi=Object.defineProperty,ki=Object.getOwnPropertySymbols,Ci=Object.prototype.hasOwnProperty,$i=Object.prototype.propertyIsEnumerable,Si=(e,t,n)=>t in e?xi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Ei extends e.Component{static isElemInRightView(e,t){const n=window.innerWidth;return e.getBoundingClientRect().left+t<=n}static isElemInBottomView(e,t){const n=window.innerHeight,o=e.getBoundingClientRect(),i=e.clientHeight;return o.top+i+t<=n}constructor(t){super(t);const{selectedItem:n,open:o}=this.props;this.state={opened:o,selectedItem:n||null},this.dropdownRef=(0,e.createRef)(),this.dropdownListRef=(0,e.createRef)(),this.dropdownButtonRef=(0,e.createRef)(),this.onSelectItem=this.onSelectItem.bind(this),this.toggleDropdown=this.toggleDropdown.bind(this),this.handleClickOutside=this.handleClickOutside.bind(this)}componentDidMount(){document.addEventListener("mousedown",this.handleClickOutside),this.dropdownListRef.current&&this.getStyles()}componentDidUpdate(e){const{open:t}=this.props,{opened:n}=this.state;this.dropdownListRef.current&&this.getStyles(),e.open||!0!==t||n||this.toggleDropdown(),e.open&&!1===t&&n&&this.closeDropdown()}componentWillUnmount(){document.removeEventListener("mousedown",this.handleClickOutside)}handleClickOutside(e){this.dropdownListRef.current&&!this.dropdownListRef.current.contains(e.target)&&this.dropdownRef.current&&!this.dropdownRef.current.contains(e.target)&&this.closeDropdown()}onSelectItem(e,t){const{closeOnSelect:n,onSelect:o}=this.props,i={selectedItem:e,selectedItemProps:t};n&&(i.opened=!1),this.setState(i),o&&"function"==typeof o&&o(e)}getStyles(){const{display:e,position:t,offset:n}=this.props,o=this.dropdownListRef.current;if(n)return o.style.top=`${n.top}`,void(o.style.left=`${n.left}`);const i=Math.max(document.documentElement.scrollTop,document.body.scrollTop,window.scrollY),r=this.dropdownRef.current,s=r.clientHeight,a=o?o.clientHeight:0,l=o?o.clientWidth:0,c=r.getBoundingClientRect(),{left:u,top:h}=c;let d=0,p=u;d=Ei.isElemInBottomView(r,a)?h+i+s:h+i-a-5,Ei.isElemInRightView(r,l)||(p=u+r.clientWidth-l),"relative"!==t&&(o.style.top=`${d}px`,"block"!==e&&(o.style.left=`${p}px`)),"block"!==e&&(o.style.minWidth=`${this.dropdownButtonRef.current.clientWidth}px`)}getWrapperCssClasses(){const{btnGroup:e,btnGroupSize:t,className:n,btnTheme:o,wrapperClassName:i=""}=this.props;let r=[i,"tyk-dropdown"];return r.push(`theme-${o||"default"}`),n&&(r=r.concat(n.split(" "))),e&&(r.push("tyk-button-group"),r.push(t?`tyk-button-group--${t}`:"tyk-button-group--md")),r.join(" ")}getCssClasses(){const{opened:e}=this.state,{hasCustomContent:t,display:n,listclassnames:o,position:i,maxHeight:r}=this.props;let s=["tyk-dropdown-menu","tyk-dropdown"];return r&&s.push("tyk-dropdown--scrollable"),e&&s.push("opened"),o&&(s=s.concat(o.split(" "))),n&&s.push("tyk-dropdown--block"),t&&s.push("tyk-dropdown--custom"),"relative"===i&&s.push("tyk-dropdown--relative"),s.join(" ")}getBtnTitle(){const{btnTitle:e,stopButtonTextChange:t}=this.props,{selectedItemProps:n}=this.state;return!t&&(null==n?void 0:n.title)?n.title:e}closeDropdown(){const{onClose:e}=this.props;this.setState({opened:!1},(()=>{e&&e()}))}toggleDropdown(){const{opened:e}=this.state;e?this.closeDropdown():this.setState({opened:!0})}render(){const{appendTo:e,btnClassName:n,btnSize:o,customBtnTitle:i,hasCustomContent:r,btnTheme:s,children:a,label:l,showDropdownIcon:c,showTriggerButton:u,showCheckmark:h,disabled:d=!1,maxHeight:p}=this.props,{selectedItem:g,opened:m}=this.state,f=r?"div":"ul";return t().createElement("div",{className:this.getWrapperCssClasses(),ref:this.dropdownRef},l?t().createElement("label",{className:"font-family-medium"},l):null,u?t().createElement(U,{className:`tyk-dropdown__trigger ${m?"tyk-dropdown__trigger--opened ":" "} ${n}`,theme:s||"default",onClick:this.toggleDropdown,iconType:c?"chevron-down":null,iconPosition:"right",size:o||"md",type:"button",disabled:d,ref:this.dropdownButtonRef},i||this.getBtnTitle()):null,m?dt().createPortal(t().createElement(vi.Provider,{value:{onSelectItem:this.onSelectItem,selectedItem:g,showCheckmark:h}},m?t().createElement(f,((e,t)=>{for(var n in t||(t={}))Ci.call(t,n)&&Si(e,n,t[n]);if(ki)for(var n of ki(t))$i.call(t,n)&&Si(e,n,t[n]);return e})({className:this.getCssClasses(),ref:this.dropdownListRef},p&&{style:{maxHeight:p}}),"function"==typeof a?a({closeDropdown:this.closeDropdown.bind(this)}):a):null),document.querySelector(e||"body")):null)}}Ei.propTypes={appendTo:r().string,children:r().oneOfType([r().element,r().node,r().string,r().func]),closeOnSelect:r().bool,btnClassName:r().string,btnSize:r().string,btnGroupSize:r().string,btnTheme:r().string,btnTitle:r().oneOfType([r().node,r().element,r().string]),customBtnTitle:r().oneOfType([r().node,r().element,r().string]),btnGroup:r().bool,className:r().string,display:r().string,disabled:r().bool,hasCustomContent:r().bool,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),listclassnames:r().string,onClose:r().func,onSelect:r().func,open:r().bool,offset:r().instanceOf(Object),position:r().string,selectedItem:r().string,showDropdownIcon:r().bool,stopButtonTextChange:r().bool,showTriggerButton:r().bool,showCheckmark:r().bool,maxHeight:r().string,wrapperClassName:r().string},Ei.defaultProps={closeOnSelect:!1,showDropdownIcon:!0,showTriggerButton:!0,showCheckmark:!0,open:!1},Ei.Item=wi;const Oi=Ei;var Ti=Object.defineProperty,Ai=Object.getOwnPropertySymbols,_i=Object.prototype.hasOwnProperty,Li=Object.prototype.propertyIsEnumerable,Mi=(e,t,n)=>t in e?Ti(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Ri({title:e,theme:n="primary",splitTrigger:o,toggle:i,onTriggerClick:r,value:s},a){return o?t().createElement(K,{ref:a},t().createElement(U,((e,t)=>{for(var n in t||(t={}))_i.call(t,n)&&Mi(e,n,t[n]);if(Ai)for(var n of Ai(t))Li.call(t,n)&&Mi(e,n,t[n]);return e})({theme:n},r&&{onClick:()=>r(s)}),e),t().createElement(U,{className:"dropdown__trigger",iconType:"arrowdown",iconFamily:"tykon",iconPosition:"right",theme:n,onClick:i,iconOnly:!0})):t().createElement(U,{className:"dropdown__trigger",iconType:"arrowdown",iconFamily:"tykon",iconPosition:"right",theme:n,ref:a,onClick:i},e)}Ri.propTypes={title:r().string,theme:r().string,splitTrigger:r().bool,toggle:r().func,dropdownRef:r().shape({current:r().instanceOf(Element)}).isRequired,onTriggerClick:r().func,value:r().oneOfType([r().string,r().number])};const Ni=(0,e.forwardRef)(Ri);var Ii=Object.defineProperty,Pi=Object.getOwnPropertySymbols,Di=Object.prototype.hasOwnProperty,Fi=Object.prototype.propertyIsEnumerable,Bi=(e,t,n)=>t in e?Ii(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Wi=(e,t)=>{for(var n in t||(t={}))Di.call(t,n)&&Bi(e,n,t[n]);if(Pi)for(var n of Pi(t))Fi.call(t,n)&&Bi(e,n,t[n]);return e};function Hi({children:e,element:n,maxWidth:o},i){return t().createElement(Pt,{element:n,ref:i,className:"dropdown__menu",position:"bottom",alignment:"auto",offset:5,arrow:!0},t().createElement(jt,{style:Wi({},o&&{maxWidth:o}),theme:"primary"},e))}Hi.propTypes={element:r().shape({current:r().instanceOf(Element)}),children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),maxWidth:r().string};const ji=(0,e.forwardRef)(Hi),zi=(0,e.createContext)();var Vi=Object.defineProperty,Ui=Object.getOwnPropertySymbols,Gi=Object.prototype.hasOwnProperty,Ki=Object.prototype.propertyIsEnumerable,qi=(e,t,n)=>t in e?Vi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Yi=(e,t)=>{for(var n in t||(t={}))Gi.call(t,n)&&qi(e,n,t[n]);if(Ui)for(var n of Ui(t))Ki.call(t,n)&&qi(e,n,t[n]);return e};function Ji({children:n,value:o}){const{onChange:i,value:r}=(0,e.useContext)(zi);return t().createElement(jt.Item,Yi({},o===r&&{selected:!0}),t().createElement("a",Yi({},i&&{onClick:()=>i(o)}),n))}Ji.propTypes={children:r().node,value:r().any};const Xi=Ji;function Qi({children:n,title:o,theme:i,splitTrigger:r,onChange:s,value:a,setSelectedValueAsTitle:l,maxWidth:c,onTriggerClick:u}){const{isOpen:h,toggle:d,dropdownRef:p,dropdownListRef:g}=(({splitTrigger:t})=>{const[n,o]=(0,e.useState)(!1),i=(0,e.useRef)(null),r=(0,e.useRef)(null),s=(0,e.useCallback)((e=>{const s=t?i.current.querySelector(".dropdown__trigger"):i.current;!n||s.contains(e.target)||r.current.contains(e.target)||o(!1)}),[n]);return(0,e.useEffect)((()=>(document.addEventListener("mousedown",s),()=>{document.removeEventListener("mousedown",s)})),[s]),{isOpen:n,toggle:()=>o(!n),dropdownRef:i,dropdownListRef:r}})({splitTrigger:r}),m=(0,e.useMemo)((()=>({onChange:s,value:a})),[s,a]);return t().createElement(zi.Provider,{value:m},t().createElement(Ni,{title:l?a:o,onTriggerClick:u,theme:i,splitTrigger:r,toggle:d,ref:p,value:a}),h&&t().createElement(ji,{element:p,ref:g,maxWidth:c},n))}Qi.propTypes={title:r().string,theme:r().string,children:r().node,splitTrigger:r().bool,onChange:r().func,value:r().oneOfType([r().string,r().number]),setSelectedValueAsTitle:r().bool,maxWidth:r().string,onTriggerClick:r().func},Qi.Item=Xi;const Zi=Qi;var er=n(239),tr=n.n(er);const nr=require("react-ace");var or=n.n(nr);n(395),n(576),n(7),n(549),n(252),n(202),n(711),n(604),n(134),n(203);const ir=n.p+"ee385296b124aae4e5d9.js";var rr=Object.defineProperty,sr=Object.defineProperties,ar=Object.getOwnPropertyDescriptors,lr=Object.getOwnPropertySymbols,cr=Object.prototype.hasOwnProperty,ur=Object.prototype.propertyIsEnumerable,hr=(e,t,n)=>t in e?rr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,dr=(e,t)=>{for(var n in t||(t={}))cr.call(t,n)&&hr(e,n,t[n]);if(lr)for(var n of lr(t))ur.call(t,n)&&hr(e,n,t[n]);return e};function pr(n){const{disabled:o,readOnly:i,disableValidation:r,id:s,error:a,label:l,labelwidth:c,note:u,onBlur:h,onChange:d,theme:p,value:g,setOptions:m,wrapperClassName:f}=n,y=["tyk-form-group",f,...p?p.split(" ").map((e=>`tyk-form-group--${e}`)):[],c&&"tyk-form-group--label-has-width",a&&"has-error"].filter(Boolean).join(" "),v=dr(dr({},m),r&&{useWorker:!1}),b=(0,e.useCallback)((()=>a&&"true"!==a&&"false"!==a?t().createElement("p",{className:"tyk-form-control__error-message"},a):null),[a]),w=(0,e.useCallback)((()=>c?{flexBasis:c}:{}),[c]),x=(0,e.useCallback)((()=>c?{flexBasis:`calc(100% - ${c} - 20px)`}:{}),[c]),k=(0,e.useCallback)((e=>{d&&d(e)}),[d]),C=(0,e.useCallback)((()=>{h&&h(g)}),[h,g]);return t().createElement("div",{className:y},l?t().createElement("label",{htmlFor:s,style:w()},l):null,t().createElement("div",{className:"tyk-form-control__wrapper",style:x()},t().createElement(or(),($=dr({className:"tyk-form-control"},n),sr($,ar({onChange:k,onBlur:C,theme:"github",editorProps:{$blockScrolling:!0},readOnly:i||o,onLoad:e=>{e.container.style.resize="both",document.addEventListener("mouseup",(()=>e.resize()))},setOptions:v})))),u?t().createElement("p",{className:"tyk-form-control__help-block"},u):null,b()));var $}tr().config.setModuleUrl("ace/mode/json_worker",ir),pr.propTypes={disabled:r().bool,readOnly:r().bool,disableValidation:r().bool,id:r().string,error:r().oneOfType([r().string,r().bool]),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,mode:r().string,name:r().string,note:r().string,onBlur:r().func,onChange:r().func,theme:r().string,value:r().string,setOptions:r().instanceOf(Object),wrapperClassName:r().string};const gr=pr;var mr=Object.defineProperty,fr=Object.defineProperties,yr=Object.getOwnPropertyDescriptors,vr=Object.getOwnPropertySymbols,br=Object.prototype.hasOwnProperty,wr=Object.prototype.propertyIsEnumerable,xr=(e,t,n)=>t in e?mr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,kr=(e,t)=>{for(var n in t||(t={}))br.call(t,n)&&xr(e,n,t[n]);if(vr)for(var n of vr(t))wr.call(t,n)&&xr(e,n,t[n]);return e};const Cr=(e,t,n)=>n||(e||t?[]:null);class $r extends e.Component{static closeList(){return{cursor:-1,opened:!1}}static openList(){return{opened:!0}}static filterByName(e,t){return e.name.toLowerCase().indexOf(t)>-1}constructor(t){super(t);const{multiple:n,tags:o,value:i}=t;this.state={cursor:-1,opened:!1,width:50,initialValue:i,stateSelectedValues:Cr(n,o,i),searchText:"",tags:o},this.comboboxRef=(0,e.createRef)(),this.valuesListRef=(0,e.createRef)(),this.inputRef=(0,e.createRef)(),this.textRef=(0,e.createRef)(),this.focusInput=this.focusInput.bind(this),this.onKeyUp=this.onKeyUp.bind(this),$r.openList=$r.openList.bind(this),this.handleClickOutside=this.handleClickOutside.bind(this),this.handleItemsNavigation=this.handleItemsNavigation.bind(this),this.handleComboboxDropdownClick=this.handleComboboxDropdownClick.bind(this),this.handleListItemClick=this.handleListItemClick.bind(this),this.handlePillRemoveClick=this.handlePillRemoveClick.bind(this),this.manageSelectedTags=this.manageSelectedTags.bind(this)}componentDidMount(){const{tags:e}=this.props;e&&this.setInputWidth(),this.bindEvents()}componentWillUnmount(){this.unBindEvents()}static getDerivedStateFromProps(e,t){return JSON.stringify(e.value)!==JSON.stringify(t.initialValue)||e.tags!==t.tags?{initialValue:e.value,stateSelectedValues:Cr(e.multiple,e.tags,e.value),tags:e.tags}:null}handleItemsNavigation(e){const{tags:t}=this.props;if(-1===["ArrowDown","ArrowUp"].indexOf(e.key))return;const{cursor:n}=this.state,o=this.filterValues();let i;if(e.preventDefault(),"ArrowDown"===e.key&&(-1===n||n===o.length-1?i=0:n0?n-1:o.length-1),this.valuesListRef.current&&i>4){const e=38*(i-4);this.valuesListRef.current.scrollTop=t?e:60+e}else this.valuesListRef.current&&(this.valuesListRef.current.scrollTop=0);this.setState((e=>{return t=kr({},e),fr(t,yr({opened:!0,cursor:i}));var t}))}handleListItemClick(e){if(this.props.values[e].disabled)return;const{multiple:t,tags:n}=this.props,o=n?"manageSelectedTags":"manageSelectedValues",i=kr(kr({},this.state),this[o](e));this.setState((e=>(t||n||(i.opened=!1),kr(kr({},e),i))))}handlePillRemoveClick(e){const{disabled:t}=this.props;if(t)return;const n=this.removeSelectedValue(e);this.setState((e=>kr(kr({},e),n)))}handleClickOutside(e){this.valuesListRef.current&&!this.valuesListRef.current.contains(e.target)&&this.comboboxRef.current&&!this.comboboxRef.current.contains(e.target)&&this.setState((e=>kr(kr({},e),$r.closeList())))}handleComboboxDropdownClick(){const{disabled:e}=this.props;e||this.setState((e=>kr(kr({},e),$r.openList())))}onKeyUp(e){const{tags:t,allowCustomValues:n}=this.props,{cursor:o,opened:i}=this.state,r=this.filterValues();let s=this.getSearchText();if(t&&"Escape"!==e.key&&(s=kr(kr({},s),this.setInputWidth())),"Enter"===e.key){const e=t?"manageSelectedTags":"manageSelectedValues";s=kr(kr({},s),this[e](o))}n&&" "!==e.key&&t&&(s=kr(kr({},s),this.manageSelectedTags())),!i&&this.inputRef.current.value&&(null==r?void 0:r.length)&&"Escape"!==e.key&&(s=kr(kr({},s),$r.openList())),"Escape"===e.key&&i&&(s=kr(kr({},s),$r.closeList())),i&&r&&!r.length&&(s=kr(kr({},s),$r.closeList())),this.setState((e=>kr(kr({},e),s)))}getLabelStyles(){const{labelwidth:e}=this.props,t={};return e&&(t.flexBasis=e),t}getNonLabelWidth(){const{labelwidth:e}=this.props,t={};return e&&(t.flexBasis=`calc(100% - ${e} - 20px)`),t}setInputWidth(){return{width:50+this.textRef.current.offsetWidth}}getSelectedIndex(e){const{stateSelectedValues:t}=this.state;let n=-1;return Array.isArray(t)?t.forEach(((t,o)=>{t.id===e.id&&(n=o)})):t&&t.id===e.id&&(n=0),n}getSearchText(){return{searchText:this.inputRef.current.value}}getListItemCssClasses(e,t){const n=[],{cursor:o}=this.state;return o===t&&n.push("active"),e.disabled&&n.push("disabled"),n.join(" ")}getComboboxListCssClass(){const{opened:e}=this.state,{tags:t,theme:n}=this.props,o=n?n.split(" "):[],i=["tyk-combobox__list"];return e&&i.push("tyk-combobox__list--opened"),t&&i.push("tyk-combobox__list--has-tags"),o.length&&o.forEach((e=>{i.push(`tyk-form-group--${e}`)})),i.join(" ")}getCssClasses(){const{error:e,disabled:t,theme:n,labelwidth:o}=this.props,i=["tyk-form-group","tyk-combobox"],r=n?n.split(" "):[];return e&&i.push("has-error"),o&&i.push("tyk-form-group--label-has-width"),r.length&&r.forEach((e=>{i.push(`tyk-form-group--${e}`)})),t&&i.push("disabled"),i.join(" ")}getInputError(){const{error:e}=this.props;return e&&"true"!==e&&"false"!==e?t().createElement("p",{className:"tyk-form-control__error-message"},e):null}getStyles(){const{scrollTop:e}=document.documentElement,t=this.comboboxRef.current,n=t.offsetHeight,o=t.offsetWidth,i=t.getBoundingClientRect(),{left:r}=i;let s=0;return s=i.top+e+n,{top:s-1+"px",left:`${r}px`,width:`${o}px`}}getComboboxDisplayData(){const{stateSelectedValues:e}=this.state,{multiple:t,placeholder:n,values:o}=this.props;return e?e&&Array.isArray(e)&&!e.length?n:!e||Array.isArray(e)||e.id?Array.isArray(e)&&t?e.reduce(((t,n,o)=>t+n.name+(o!==e.length-1?", ":"")),""):!(null==o?void 0:o.length)||Array.isArray(e)||e.name?e.name:o.filter((t=>t.id===e.id))[0].name:n:n}manageSelectedTags(e){const{max:t,allowCustomValues:n}=this.props,{stateSelectedValues:o}=this.state,i=this.filterValues(),r={id:this.inputRef.current.value,name:this.inputRef.current.value};if(!1===n&&-1===e)return null;const s=i[e]||r,a=this.getSelectedIndex(s);let l={};if(this.inputRef.current.value="",a>-1&&this.isInInitialValues(s))l=this.removeSelectedValue(a);else if(-1===a){if(t&&o.length>=t)return l;l=this.addSelectedValue(s)}return l}manageSelectedValues(e){const{stateSelectedValues:t}=this.state,{multiple:n,onChange:o,max:i}=this.props,r=this.filterValues(),s=r[e];let a;const l=this.getSelectedIndex(s);if(s&&n)if(l>-1)a=this.removeSelectedValue(l);else{if(i&&t.length>=i)return a;a=this.addSelectedValue(r[e])}else a={stateSelectedValues:-1===l?s:{id:null}},null==o||o(-1===l?s:null);return a}removeSelectedValue(e){const{stateSelectedValues:t}=this.state,{onChange:n}=this.props,o=JSON.parse(JSON.stringify(t));return o.splice(e,1),n&&"function"==typeof n&&n(o.length?o:null),{stateSelectedValues:o,searchText:""}}addSelectedValue(e){const{stateSelectedValues:t}=this.state,{onChange:n}=this.props,o=JSON.parse(JSON.stringify(t));return o.push(e),n&&"function"==typeof n&&n(o.length?o:null),{stateSelectedValues:o,searchText:""}}isInInitialValues(e){const{values:t}=this.props;let n=!1;return t.forEach((t=>{e.id===t.id&&(n=!0)})),n}filterValues(){const{values:e,searchItem:t}=this.props;return this.inputRef.current?e.filter((e=>t?t(e,this.inputRef.current.value.toLowerCase()):$r.filterByName(e,this.inputRef.current.value.toLowerCase()))):e}bindEvents(){document.addEventListener("mousedown",this.handleClickOutside)}unBindEvents(){document.removeEventListener("mousedown",this.handleClickOutside)}reset(){const{multiple:e,tags:t,value:n}=this.props;this.setState({stateSelectedValues:Cr(e,t,n)})}focusInput(){this.inputRef.current&&this.inputRef.current.focus()}renderInput(e){const{disabled:n,tags:o,max:i,placeholder:r}=this.props,{width:s,searchText:a,stateSelectedValues:l}=this.state;return t().createElement("ul",{className:"tyk-form-control"+(o?" tyk-form-control--with-tags":""),onClick:this.focusInput,onKeyDown:()=>{},ref:this.comboboxRef},o?t().createElement(t().Fragment,null,(l||[]).map(((e,n)=>t().createElement("li",{className:"pill",key:e.id},t().createElement("button",{type:"button",onClick:this.handlePillRemoveClick.bind(this,n),"aria-label":"remove"},t().createElement(g,{type:"times"})),t().createElement("span",null,e.name)))),t().createElement("li",{className:"tyk-combobox__search-box",style:{width:(null==l?void 0:l.length)?"auto":"100%"}},(void 0===i||(null==l?void 0:l.length){"Enter"===e.key&&e.preventDefault(),this.handleItemsNavigation(e)},onKeyUp:this.onKeyUp,placeholder:(null==l?void 0:l.length)?"":r,ref:this.inputRef,style:{width:(null==l?void 0:l.length)?`${s}px`:"100%"}}),t().createElement("span",{ref:this.textRef,style:{visbility:"hidden",position:"absolute",top:"-9999px"}},a)),e.length>0&&t().createElement(U,{className:"tyk-combobox--with-tags__button-down",iconType:"arrow-down",iconOnly:!0,onClick:this.handleComboboxDropdownClick}))):t().createElement("li",{className:"tyk-combobox__placeholder",onClick:this.handleComboboxDropdownClick,onKeyDown:()=>{}},this.getComboboxDisplayData(),t().createElement(g,{family:"tykon",type:"arrowdown"})))}renderDropdown(e){const{tags:n}=this.props,{opened:o}=this.state;return t().createElement("ul",{className:this.getComboboxListCssClass(),ref:this.valuesListRef,style:this.getStyles()},n?null:t().createElement("li",{className:"combobox-search__container"},t().createElement("input",{autoFocus:o,className:"tyk-form-control",onKeyUp:this.onKeyUp,onKeyDown:this.handleItemsNavigation,key:"searchInput",ref:this.inputRef})),e.map(((e,n)=>t().createElement("li",{className:this.getListItemCssClasses(e,n),onClick:this.handleListItemClick.bind(this,n),onKeyDown:()=>{},key:e.id},this.getSelectedIndex(e)>-1?t().createElement(g,{type:"check"}):null,t().createElement("span",null," ",e.name)))))}render(){const{CustomListComponent:e,id:n,label:o,note:i}=this.props,{opened:r}=this.state,s=this.filterValues();return t().createElement(t().Fragment,null,t().createElement("div",{className:this.getCssClasses()},o?t().createElement("label",{htmlFor:n,style:this.getLabelStyles()},o):null,t().createElement("div",{className:"tyk-form-control__wrapper",style:this.getNonLabelWidth()},this.renderInput(s),i?t().createElement("p",{className:"tyk-form-control__help-block"},i):null,this.getInputError())),e?t().createElement(e,{ref:this.valuesListRef,className:this.getComboboxListCssClass(),getListItemCssClasses:this.getListItemCssClasses.bind(this),getSelectedIndex:this.getSelectedIndex.bind(this),filteredValues:s,handleListItemClick:this.handleListItemClick.bind(this)}):r&&s.length?dt().createPortal(this.renderDropdown(s),document.querySelector("body")):null)}}$r.propTypes={allowCustomValues:r().bool,CustomListComponent:r().elementType,searchItem:r().func,disabled:r().bool,error:r().string,id:r().string,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,multiple:r().bool,max:r().number,note:r().oneOfType([r().node,r().element,r().string]),onChange:r().func,placeholder:r().string,tags:r().bool,theme:r().string,value:r().oneOfType([r().string,r().instanceOf(Object),r().instanceOf(Array)]),values:r().instanceOf(Array)},$r.defaultProps={allowCustomValues:!0};const Sr=$r;function Er(n){const{value:o,max:i,tags:r,tagSeparators:s,addTagOnBlur:a,placeholder:l,disabled:c,renderValue:u,valueOverflow:h,focus:d,onMessage:p,readOnly:m}=n,f=(0,e.useRef)(null),y=(0,e.useRef)(null),[v,b]=(0,e.useState)(""),[w,x]=(0,e.useState)("70px");function k(e){if(s.some((t=>e.slice(-1)===t)))return;const t=y.current;t.innerHTML=e,x(`${Math.max(t.clientWidth,60)+10}px`),b(e),p("tag.input.change",e)}function C(){p("text-value.click")}function $(e,n=!1){if(m)return e||"-";const o=["tyk-combobox2__text-value",`overflow-${h}`,n&&"is-placeholder"].filter(Boolean).join(" ");return t().createElement("span",{className:o,title:"single"===h?e:void 0,role:"none",tabIndex:c?"-1":"0",onClick:C,onKeyDown:C},e)}function S(e){return u(e,{tags:r,tagSeparators:s,placeholder:l,disabled:c,renderValue:u,sendMessage:p})}return(0,e.useEffect)((()=>{d&&f.current&&f.current.focus()}),[d]),m?t().createElement("div",{className:"tyk-form-control--readonly"},$(o.map((e=>e.name)).join(", "))):r?t().createElement(t().Fragment,null,o.map((function(e){return u?S(e):t().createElement(mn,{key:e.id,theme:"combobox"},t().createElement("button",{type:"button",onClick:t=>{t.stopPropagation(),p("tag.remove",e.id)},"aria-label":"remove"},t().createElement(g,{type:"times"})),t().createElement("span",{title:e.name},e.name))})),o.lengthk(e.target.value),onKeyDown:e=>{"Enter"===e.key&&e.preventDefault(),function(e,t){if(r){if(""!==t||"Backspace"!==e||!o.length)return"Enter"===e?(p("tag.input.enter",t),void k("")):void("ArrowUp"!==e?"ArrowDown"!==e?"Escape"!==e?s.includes(e)&&(p("tag.add",t),k("")):p("tag.input.escape"):p("tag.input.arrowDown"):p("tag.input.arrowUp"));p("tag.remove",o[o.length-1].id)}}(e.key,e.target.value)},onFocus:()=>p("tag.input.focus"),onBlur:e=>{p("tag.input.blur",e.target.value),a&&k("")}}),t().createElement("span",{ref:y,style:{visbility:"hidden",position:"absolute",top:"-9999px"}}))):u?0===o.length?$(l,!0):o.map(S):0===o.length?$(l,!0):$(o.map((e=>e.name)).join(", "))}Er.propTypes={value:r().instanceOf(Array),max:r().number,tags:r().instanceOf(Array),tagSeparators:r().instanceOf(Array),addTagOnBlur:r().bool,placeholder:r().string,disabled:r().bool,renderValue:r().func,valueOverflow:r().string,focus:r().bool,onMessage:r().func,readOnly:r().bool};const Or=Er;function Tr(n){const{listRef:o,tags:i,values:r,searchValue:s,activeItem:a,onMessage:l,renderListItem:c,selectAll:u,showSearch:h}=n;return(0,e.useEffect)((()=>{if(!o.current)return;const e=o.current.querySelector(".active");e&&e.scrollIntoView({block:"end"})}),[a]),t().createElement(t().Fragment,null,!i&&h&&t().createElement("div",{className:"tyk-combobox2__combobox-search"},t().createElement("input",{autoFocus:!0,className:"tyk-form-control",value:s,onChange:e=>l("search.change",e.target.value),onKeyDown:e=>{"Escape"===e.key&&l("search.escape"),"ArrowUp"===e.key&&l("search.arrowUp"),"ArrowDown"===e.key&&l("search.arrowDown"),"Enter"===e.key&&l("search.enter")}})),r.length>0&&t().createElement("ul",{ref:o,className:"tyk-combobox2__combobox-list"},Boolean(u)&&function(){var e,n,o;const i=r.every((e=>e.selected)),s=r.every((e=>!e.selected)),a=null!=(e=null==u?void 0:u.label)?e:"Select All",c=null!=(n=null==u?void 0:u.mode)?n:"select",h=null!=(o=null==u?void 0:u.show)?o:"always",d=null==u?void 0:u.render;return"always"!==h&&("select"===c?i:s)?null:d?d({label:a,mode:c,show:h,isAllSelected:i,isNoneSelected:s},l):t().createElement("li",{onClick:()=>l("value.select-all","select"===c?!i:s),onKeyDown:()=>{}},("select"===c?i:s)&&t().createElement(g,{type:"check"}),a)}(),r.map((function(e){return c?c(e,{tags:i,searchValue:s,sendMessage:l,activeItem:a}):t().createElement("li",{key:e.id,title:e.name,className:[e.disabled&&"disabled",a&&e.id===a.id&&"active"].filter(Boolean).join(" "),onClick:()=>!e.disabled&&l("value.select",{item:e}),onKeyDown:()=>{}},e.selected&&t().createElement(g,{type:"check"}),t().createElement("span",{className:"item-name"},e.name))}))))}Tr.propTypes={listRef:r().instanceOf(Object),tags:r().bool,values:r().instanceOf(Array),searchValue:r().string,activeItem:r().instanceOf(Object),onMessage:r().func,renderListItem:r().func,selectAll:r().oneOfType([r().bool,r().shape({label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),mode:r().oneOf(["select","unselect"]),show:r().oneOf(["always","notSameState"]),render:r().func})]),showSearch:r().bool};const Ar=Tr;var _r=Object.defineProperty,Lr=Object.defineProperties,Mr=Object.getOwnPropertyDescriptors,Rr=Object.getOwnPropertySymbols,Nr=Object.prototype.hasOwnProperty,Ir=Object.prototype.propertyIsEnumerable,Pr=(e,t,n)=>t in e?_r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Dr=(e,t)=>{for(var n in t||(t={}))Nr.call(t,n)&&Pr(e,n,t[n]);if(Rr)for(var n of Rr(t))Ir.call(t,n)&&Pr(e,n,t[n]);return e},Fr=(e,t)=>Lr(e,Mr(t));function Br(n){var o=n,{value:i,values:r=[],valueOverflow:s="single",label:a="",labelwidth:l,tags:c=!1,tagSeparators:u=[" ","Enter"],addTagOnBlur:h=!1,max:d,multiple:p=!1,placeholder:m="",theme:f,note:y="",error:v="",disabled:b=!1,readOnly:w=!1,allowCustomValues:x=!0,searchItem:k,renderValue:C,renderListItem:$,renderList:S,CustomListComponent:E,onBeforeChange:O=(()=>!0),onChange:T=(()=>{}),floatingContainerConfig:A,expandMode:_,infiniteScrollerConfig:L,displayDropdownTrigger:M=!0,selectAll:R,closeOnSelect:N,showSearch:I=!1,required:P=!1,validateOnChange:D=(()=>{}),wrapperClassName:F=""}=o,B=((e,t)=>{var n={};for(var o in e)Nr.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Rr)for(var o of Rr(e))t.indexOf(o)<0&&Ir.call(e,o)&&(n[o]=e[o]);return n})(o,["value","values","valueOverflow","label","labelwidth","tags","tagSeparators","addTagOnBlur","max","multiple","placeholder","theme","note","error","disabled","readOnly","allowCustomValues","searchItem","renderValue","renderListItem","renderList","CustomListComponent","onBeforeChange","onChange","floatingContainerConfig","expandMode","infiniteScrollerConfig","displayDropdownTrigger","selectAll","closeOnSelect","showSearch","required","validateOnChange","wrapperClassName"]);const W=(0,e.useMemo)((()=>p?1/0:d||(c?1/0:1)),[p,d,c]),H=E?(e,{sendMessage:n})=>t().createElement(E,{filteredValues:e,handleListItemClick:t=>n("value.select",{item:e[t]})}):S,j=(0,e.useRef)(null),z=(0,e.useRef)(null),V=(0,e.useRef)(null),U=(0,e.useRef)(null),[G,K]=(0,e.useState)(jr(i,r)),[q,Y]=(0,e.useState)(r.map((e=>Hr(e)))),[J,X]=(0,e.useState)(""),[Q,Z]=(0,e.useState)(null),[ee,te]=(0,e.useState)(!1),[ne,oe]=(0,e.useState)(!1),[ie,re]=(0,e.useState)("");function se(){return(f?f.split(" "):[]).map((e=>`tyk-form-group--${e}`))}function ae(){const e=k||((e,t)=>{var n,o;return null==(o=null==(n=null==e?void 0:e.name)?void 0:n.toLowerCase())?void 0:o.includes(t)});return q.filter((t=>e(t,J.toLowerCase())))}function le(){te(!0)}function ce(){te(!1),c||ue(""),Z(null)}function ue(e){X(e),Q&&ae().every((e=>e.id!==Q.id))&&Z(null),e&&!ee&&le()}function he(e,t){const n=D(e,t);return re(n),void 0===n}function de(e){K(e),T(1!==W||c?e:e[0]||null)}function pe(e){if(!e)return;if(G.length>=W)return;if(G.some((({name:t})=>t===e)))return;const t=q.findIndex((t=>t.name===e));let n,o,i=[...G];-1===t?x&&(n={id:e,name:e},i=[...G,n]):(o=[...q.slice(0,t),Fr(Dr({},q[t]),{selected:!0}),...q.slice(t+1)],n=q[t],i=[...G,q[t]]),he(i,n)&&O(G,i)&&(o&&Y(o),de(i))}function ge({id:e}){const t=q.find((t=>t.id===e)),n=q.findIndex((t=>t.id===e));let o=G,i=q;t.selected?P&&1===W||(o=G.filter((e=>e.id!==t.id)),i=q.with(n,Fr(Dr({},t),{selected:!1}))):G.lengthFr(Dr({},e),{selected:e.id===t.id})))),he(o,t)&&O(G,o)&&(de(o),Y(i)),(1===W||N)&&ce()}function me(e){if(q.length>W)return;const t=e?[...q]:[];O(G,t)&&(de(t),Y(q.map((t=>Fr(Dr({},t),{selected:e})))),N&&ce())}function fe(){const e=ae().filter((e=>!e.disabled));if(0===e.length)return;if(null===Q||1===e.length)return void Z(e[e.length-1]);const t=e.findIndex((e=>e.id===Q.id));Z(e[t>0?t-1:e.length-1])}function ye(){const e=ae().filter((e=>!e.disabled));if(0===e.length)return;if(null===Q||1===e.length)return void Z(e[0]);const t=e.findIndex((e=>e.id===Q.id));Z(e[tt.id===e)),n=G.filter((t=>t.id!==e));O(G,n)&&(-1!==t&&Y([...q.slice(0,t),Fr(Dr({},q[t]),{selected:!1}),...q.slice(t+1)]),de(n))}(t),"input.change"===e&&ue(t),"input.enter"===e&&(Q?ge(Q):u.includes("Enter")&&(pe(t),ue(""))),"input.arrowUp"===e&&(le(),fe()),"input.arrowDown"===e&&(le(),ye()),"input.escape"===e&&ce(),"input.blur"===e&&h&&(pe(t),ue("")),"input.focus"===e&&le()}const xe=(0,e.useCallback)(((e,t)=>{e.startsWith("tag.")&&we(e.slice(4),t),"value.select"===e&&ge(t.item),"value.select-all"===e&&me(t),"text-value.click"===e&&le(),"search.change"===e&&ue(t),"search.escape"===e&&ce(),"search.arrowUp"===e&&fe(),"search.arrowDown"===e&&ye(),"search.enter"===e&&Q&&ge(Q)}),[we,ge,me,le,ue,ce,fe,ye]),ke=(0,e.useCallback)((()=>_?t().createElement(g,{type:ne?"compress-arrows-alt":"expand-arrows-alt"}):t().createElement(g,{family:"tykon",type:"arrowdown"})),[_,ne]);(0,e.useEffect)((()=>(window.addEventListener("click",be,!0),()=>window.removeEventListener("click",be,!0))),[]),(0,e.useEffect)((()=>{if(r.length){const e=r.map((e=>Fr(Dr({},Hr(e)),{selected:G.some((t=>t.id===e.id))})));Y(e),K((t=>t.map((t=>e.find((e=>e.id===t.id))||t))))}else q.length&&Y([])}),[r]),(0,e.useEffect)((()=>{const e=jr(i,q);K(e),Y((t=>t.map((t=>Fr(Dr({},Hr(t)),{selected:e.some((e=>e.id===t.id))})))))}),[i]),(0,e.useEffect)((()=>{if(!_)return()=>{};const e=z.current.querySelector(".tyk-combobox2__current-values"),t=()=>{e.scrollTop=e.scrollHeight},n=new MutationObserver(t),o=new ResizeObserver(t);return n.observe(e,{attributes:!0,childList:!0,subtree:!0}),o.observe(e),()=>{n.disconnect(),o.disconnect()}}));const Ce=ae(),$e=["tyk-combobox2__current-values",_&&"expand-mode","tyk-combobox2__current-values--"+(ne?"expanded":"collapsed")].join(" ");return t().createElement("div",Fr(Dr({ref:j,tabIndex:b?"-1":"0",onClickCapture:function(e){if(!b)return;if(!_)return void e.stopPropagation();const t=j.current.querySelector(".tyk-combobox2__values-container-trigger");t&&(t===e.target||t.contains(e.target)||e.stopPropagation())}},B),{className:[F,"tyk-form-group","tyk-combobox2",...se(),(v||ie)&&"has-error",l&&"tyk-form-group--label-has-width",b&&"disabled",_&&"is-expand-mode"].filter(Boolean).join(" ")}),a&&t().createElement("label",{style:{flexBasis:l||"auto"}},a),!w&&t().createElement("div",{className:"tyk-form-control__wrapper",style:{flexBasis:`calc(100% - ${l} - 20px)`}},t().createElement("div",{className:"tyk-form-control",ref:z},t().createElement("div",{className:$e,onClick:le,role:"none"},t().createElement(Or,{value:G,max:W,tags:c,tagSeparators:u,addTagOnBlur:h,allowCustomValues:x,placeholder:m,disabled:b,valueOverflow:s,renderValue:C,focus:ee,onMessage:xe,readOnly:w})),M&&t().createElement("div",{className:"tyk-combobox2__values-container-trigger"+(ne?" tyk-combobox2__values-container-trigger--expanded":""),role:"button",tabIndex:b?-1:0,onClick:ve,onKeyDown:ve},ke())),ee&&(!c||Ce.length>0)&&t().createElement(Pt,Fr(Dr({element:z,size:"matchElement",className:`tyk-combobox2__combobox-dropdown tyk-form-group ${se().join(" ")}`,ref:V,displayAxis:"vertical"},A),{infiniteScrollerConfig:L}),H?H(Ce,{tags:c,searchValue:J,activeItem:Q,listRef:U,sendMessage:xe}):t().createElement(Ar,{listRef:U,showSearch:I,values:Ce,tags:c,searchValue:J,activeItem:Q,onMessage:xe,renderListItem:$,selectAll:R})),y&&t().createElement("p",{className:"tyk-form-control__help-block"},y),(v&&"true"!==v&&"false"!==v||Boolean(ie))&&t().createElement("p",{className:"tyk-form-control__error-message"},v||ie)),w&&t().createElement("div",null,t().createElement(Or,{value:G,tags:c,renderValue:C,readOnly:w})))}Br.propTypes={allowCustomValues:r().bool,CustomListComponent:r().elementType,searchItem:r().func,renderValue:r().func,renderListItem:r().func,renderList:r().func,disabled:r().bool,readOnly:r().bool,error:r().string,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,max:r().number,multiple:r().bool,note:r().oneOfType([r().node,r().element,r().string]),onBeforeChange:r().func,onChange:r().func,placeholder:r().string,tags:r().bool,tagSeparators:r().arrayOf(r().string),addTagOnBlur:r().bool,theme:r().string,value:r().oneOfType([r().string,r().instanceOf(Array),r().instanceOf(Object)]),values:r().instanceOf(Array),floatingContainerConfig:r().instanceOf(Object),valueOverflow:r().oneOf(["single","multiple"]),expandMode:r().bool,infiniteScrollerConfig:r().instanceOf(Object),displayDropdownTrigger:r().bool,selectAll:r().oneOfType([r().bool,r().shape({label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),mode:r().oneOf(["select","unselect"]),show:r().oneOf(["always","notSameState"]),render:r().func})]),closeOnSelect:r().bool,showSearch:r().bool,required:r().bool,validateOnChange:r().func,wrapperClassName:r().string};const Wr=Br;function Hr(e,t){let n=e;if("string"==typeof e?n={id:e,name:e}:e.hasOwnProperty("name")||(n=Fr(Dr({},e),{name:e.id})),!t)return n;const o=t.find((e=>e.id===n.id));return o?Dr(Dr({},n),o):n}function jr(e,t){return e?Array.isArray(e)?e.map((e=>Hr(e,t))):[Hr(e,t)]:[]}const zr=require("flatpickr");var Vr=n.n(zr),Ur=Object.defineProperty,Gr=Object.defineProperties,Kr=Object.getOwnPropertyDescriptors,qr=Object.getOwnPropertySymbols,Yr=Object.prototype.hasOwnProperty,Jr=Object.prototype.propertyIsEnumerable,Xr=(e,t,n)=>t in e?Ur(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Qr({children:n,disabled:o,readOnly:i=!1,error:r,id:s,label:a,labelwidth:l,note:c,onClose:u,onChange:h,onOpen:d,theme:p,config:m={},value:f,wrapperClassName:y=""}){const[v,b]=(0,e.useState)(null),w=(0,e.useRef)(null),x=me(f),k=(0,e.useCallback)(((e,t)=>{if(!e)return!0;if(!Array.isArray(t))return e.getTime()!==t.getTime();let n=t;return e&&t.length&&e.length?(n=t.filter(((t,n)=>t.getTime()!==e[n].getTime())),n.length>0):t.length>0}),[]),C=(0,e.useCallback)((e=>{const t="range"===m.mode?e:e[0]||null;h&&("range"===m.mode?2===t.length&&k(x,t)&&h(t):h(t))}),[x,h,k]);(0,e.useEffect)((()=>{if(w.current&&!v){const t=Vr()(w.current,(e=((e,t)=>{for(var n in t||(t={}))Yr.call(t,n)&&Xr(e,n,t[n]);if(qr)for(var n of qr(t))Jr.call(t,n)&&Xr(e,n,t[n]);return e})({},m),Gr(e,Kr({defaultDate:f,onChange:C,onClose:u,onOpen:d}))));b(t)}var e;return()=>{v&&v.destroy()}}),[v]),(0,e.useEffect)((()=>{if(v){let e=f;"string"==typeof f?e=new Date(f):Array.isArray(f)&&(e=f.map((e=>new Date(e)))),k(x,e)&&(v.set("onChange",C),"range"===m.mode?e&&2===e.length&&v.setDate(e,!0):v.setDate(e,!0))}}),[x,f,v]);const $=["tyk-form-group","tyk-form-group--addon-right",y,...p?p.split(" ").map((e=>`tyk-form-group--${e}`)):[],l&&"tyk-form-group--label-has-width",r&&"has-error"].filter(Boolean).join(" "),S=(0,e.useCallback)((()=>{v&&v.open()}),[v]);return t().createElement(t().Fragment,null,(null==n?void 0:n.length)?n({openCalendar:S,ref:w}):t().createElement("div",{className:$},a?t().createElement("label",{htmlFor:s,style:l?{flexBasis:l}:{}},a):null,!i&&t().createElement("div",{className:"tyk-form-control__wrapper flatpickr",style:l?{flexBasis:`calc(100% - ${l} - 20px)`}:{}},t().createElement("div",{className:"tyk-input-group"},(()=>{let e={},n={};return(null==m?void 0:m.inline)&&(e={height:0,padding:0,width:0,visibility:"hidden"},n={display:"none"}),t().createElement(t().Fragment,null,t().createElement("input",{disabled:o,className:"tyk-form-control","data-input":!0,type:"date",ref:w,style:e}),t().createElement("div",{className:"tyk-input-group__addon",onClick:S,role:"button",onKeyUp:()=>{},tabIndex:0,style:n,"aria-label":"show calendar"},t().createElement(g,{type:"calendar"})))})()),c?t().createElement("p",{className:"tyk-form-control__help-block"},c):null,r&&"true"!==r&&"false"!==r?t().createElement("p",{className:"tyk-form-control__error-message"},r):null)),t().createElement("div",{className:"tyk-form-control--readonly"},i&&!f&&"-",i&&f&&Vr().formatDate(f,m.dateFormat||"d/m/Y")))}Qr.propTypes={config:r().instanceOf(Object),children:r().oneOfType([r().element,r().node,r().string,r().func]),disabled:r().bool,readOnly:r().bool,id:r().string,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,note:r().string,onChange:r().oneOfType([r().func,r().instanceOf(Array)]),onClose:r().oneOfType([r().func,r().instanceOf(Array)]),onOpen:r().oneOfType([r().func,r().instanceOf(Array)]),theme:r().string,error:r().string,value:r().oneOfType([r().instanceOf(Array),r().instanceOf(Object),r().string]),wrapperClassName:r().string};const Zr=Qr;function es(e){return es="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},es(e)}function ts(e,t){if(t.length1?"s":"")+" required, but only "+t.length+" present")}function ns(e){return ts(1,arguments),e instanceof Date||"object"===es(e)&&"[object Date]"===Object.prototype.toString.call(e)}function os(e){ts(1,arguments);var t=Object.prototype.toString.call(e);return e instanceof Date||"object"===es(e)&&"[object Date]"===t?new Date(e.getTime()):"number"==typeof e||"[object Number]"===t?new Date(e):("string"!=typeof e&&"[object String]"!==t||"undefined"==typeof console||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn((new Error).stack)),new Date(NaN))}function is(e){if(null===e||!0===e||!1===e)return NaN;var t=Number(e);return isNaN(t)?t:t<0?Math.ceil(t):Math.floor(t)}function rs(e){ts(1,arguments);var t=os(e),n=t.getUTCDay(),o=(n<1?7:0)+n-1;return t.setUTCDate(t.getUTCDate()-o),t.setUTCHours(0,0,0,0),t}function ss(e){ts(1,arguments);var t=os(e),n=t.getUTCFullYear(),o=new Date(0);o.setUTCFullYear(n+1,0,4),o.setUTCHours(0,0,0,0);var i=rs(o),r=new Date(0);r.setUTCFullYear(n,0,4),r.setUTCHours(0,0,0,0);var s=rs(r);return t.getTime()>=i.getTime()?n+1:t.getTime()>=s.getTime()?n:n-1}var as={};function ls(){return as}function cs(e,t){var n,o,i,r,s,a,l,c;ts(1,arguments);var u=ls(),h=is(null!==(n=null!==(o=null!==(i=null!==(r=null==t?void 0:t.weekStartsOn)&&void 0!==r?r:null==t||null===(s=t.locale)||void 0===s||null===(a=s.options)||void 0===a?void 0:a.weekStartsOn)&&void 0!==i?i:u.weekStartsOn)&&void 0!==o?o:null===(l=u.locale)||void 0===l||null===(c=l.options)||void 0===c?void 0:c.weekStartsOn)&&void 0!==n?n:0);if(!(h>=0&&h<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var d=os(e),p=d.getUTCDay(),g=(p=1&&p<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var g=new Date(0);g.setUTCFullYear(h+1,0,p),g.setUTCHours(0,0,0,0);var m=cs(g,t),f=new Date(0);f.setUTCFullYear(h,0,p),f.setUTCHours(0,0,0,0);var y=cs(f,t);return u.getTime()>=m.getTime()?h+1:u.getTime()>=y.getTime()?h:h-1}function hs(e,t){for(var n=e<0?"-":"",o=Math.abs(e).toString();o.length0?n:1-n;return hs("yy"===t?o%100:o,t.length)},ps=function(e,t){var n=e.getUTCMonth();return"M"===t?String(n+1):hs(n+1,2)},gs=function(e,t){return hs(e.getUTCDate(),t.length)},ms=function(e,t){return hs(e.getUTCHours()%12||12,t.length)},fs=function(e,t){return hs(e.getUTCHours(),t.length)},ys=function(e,t){return hs(e.getUTCMinutes(),t.length)},vs=function(e,t){return hs(e.getUTCSeconds(),t.length)},bs=function(e,t){var n=t.length,o=e.getUTCMilliseconds();return hs(Math.floor(o*Math.pow(10,n-3)),t.length)};var ws={G:function(e,t,n){var o=e.getUTCFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(o,{width:"abbreviated"});case"GGGGG":return n.era(o,{width:"narrow"});default:return n.era(o,{width:"wide"})}},y:function(e,t,n){if("yo"===t){var o=e.getUTCFullYear(),i=o>0?o:1-o;return n.ordinalNumber(i,{unit:"year"})}return ds(e,t)},Y:function(e,t,n,o){var i=us(e,o),r=i>0?i:1-i;return"YY"===t?hs(r%100,2):"Yo"===t?n.ordinalNumber(r,{unit:"year"}):hs(r,t.length)},R:function(e,t){return hs(ss(e),t.length)},u:function(e,t){return hs(e.getUTCFullYear(),t.length)},Q:function(e,t,n){var o=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"Q":return String(o);case"QQ":return hs(o,2);case"Qo":return n.ordinalNumber(o,{unit:"quarter"});case"QQQ":return n.quarter(o,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(o,{width:"narrow",context:"formatting"});default:return n.quarter(o,{width:"wide",context:"formatting"})}},q:function(e,t,n){var o=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"q":return String(o);case"qq":return hs(o,2);case"qo":return n.ordinalNumber(o,{unit:"quarter"});case"qqq":return n.quarter(o,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(o,{width:"narrow",context:"standalone"});default:return n.quarter(o,{width:"wide",context:"standalone"})}},M:function(e,t,n){var o=e.getUTCMonth();switch(t){case"M":case"MM":return ps(e,t);case"Mo":return n.ordinalNumber(o+1,{unit:"month"});case"MMM":return n.month(o,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(o,{width:"narrow",context:"formatting"});default:return n.month(o,{width:"wide",context:"formatting"})}},L:function(e,t,n){var o=e.getUTCMonth();switch(t){case"L":return String(o+1);case"LL":return hs(o+1,2);case"Lo":return n.ordinalNumber(o+1,{unit:"month"});case"LLL":return n.month(o,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(o,{width:"narrow",context:"standalone"});default:return n.month(o,{width:"wide",context:"standalone"})}},w:function(e,t,n,o){var i=function(e,t){ts(1,arguments);var n=os(e),o=cs(n,t).getTime()-function(e,t){var n,o,i,r,s,a,l,c;ts(1,arguments);var u=ls(),h=is(null!==(n=null!==(o=null!==(i=null!==(r=null==t?void 0:t.firstWeekContainsDate)&&void 0!==r?r:null==t||null===(s=t.locale)||void 0===s||null===(a=s.options)||void 0===a?void 0:a.firstWeekContainsDate)&&void 0!==i?i:u.firstWeekContainsDate)&&void 0!==o?o:null===(l=u.locale)||void 0===l||null===(c=l.options)||void 0===c?void 0:c.firstWeekContainsDate)&&void 0!==n?n:1),d=us(e,t),p=new Date(0);return p.setUTCFullYear(d,0,h),p.setUTCHours(0,0,0,0),cs(p,t)}(n,t).getTime();return Math.round(o/6048e5)+1}(e,o);return"wo"===t?n.ordinalNumber(i,{unit:"week"}):hs(i,t.length)},I:function(e,t,n){var o=function(e){ts(1,arguments);var t=os(e),n=rs(t).getTime()-function(e){ts(1,arguments);var t=ss(e),n=new Date(0);return n.setUTCFullYear(t,0,4),n.setUTCHours(0,0,0,0),rs(n)}(t).getTime();return Math.round(n/6048e5)+1}(e);return"Io"===t?n.ordinalNumber(o,{unit:"week"}):hs(o,t.length)},d:function(e,t,n){return"do"===t?n.ordinalNumber(e.getUTCDate(),{unit:"date"}):gs(e,t)},D:function(e,t,n){var o=function(e){ts(1,arguments);var t=os(e),n=t.getTime();t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0);var o=n-t.getTime();return Math.floor(o/864e5)+1}(e);return"Do"===t?n.ordinalNumber(o,{unit:"dayOfYear"}):hs(o,t.length)},E:function(e,t,n){var o=e.getUTCDay();switch(t){case"E":case"EE":case"EEE":return n.day(o,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(o,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(o,{width:"short",context:"formatting"});default:return n.day(o,{width:"wide",context:"formatting"})}},e:function(e,t,n,o){var i=e.getUTCDay(),r=(i-o.weekStartsOn+8)%7||7;switch(t){case"e":return String(r);case"ee":return hs(r,2);case"eo":return n.ordinalNumber(r,{unit:"day"});case"eee":return n.day(i,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(i,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(i,{width:"short",context:"formatting"});default:return n.day(i,{width:"wide",context:"formatting"})}},c:function(e,t,n,o){var i=e.getUTCDay(),r=(i-o.weekStartsOn+8)%7||7;switch(t){case"c":return String(r);case"cc":return hs(r,t.length);case"co":return n.ordinalNumber(r,{unit:"day"});case"ccc":return n.day(i,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(i,{width:"narrow",context:"standalone"});case"cccccc":return n.day(i,{width:"short",context:"standalone"});default:return n.day(i,{width:"wide",context:"standalone"})}},i:function(e,t,n){var o=e.getUTCDay(),i=0===o?7:o;switch(t){case"i":return String(i);case"ii":return hs(i,t.length);case"io":return n.ordinalNumber(i,{unit:"day"});case"iii":return n.day(o,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(o,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(o,{width:"short",context:"formatting"});default:return n.day(o,{width:"wide",context:"formatting"})}},a:function(e,t,n){var o=e.getUTCHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(o,{width:"narrow",context:"formatting"});default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},b:function(e,t,n){var o,i=e.getUTCHours();switch(o=12===i?"noon":0===i?"midnight":i/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(o,{width:"narrow",context:"formatting"});default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},B:function(e,t,n){var o,i=e.getUTCHours();switch(o=i>=17?"evening":i>=12?"afternoon":i>=4?"morning":"night",t){case"B":case"BB":case"BBB":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(o,{width:"narrow",context:"formatting"});default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},h:function(e,t,n){if("ho"===t){var o=e.getUTCHours()%12;return 0===o&&(o=12),n.ordinalNumber(o,{unit:"hour"})}return ms(e,t)},H:function(e,t,n){return"Ho"===t?n.ordinalNumber(e.getUTCHours(),{unit:"hour"}):fs(e,t)},K:function(e,t,n){var o=e.getUTCHours()%12;return"Ko"===t?n.ordinalNumber(o,{unit:"hour"}):hs(o,t.length)},k:function(e,t,n){var o=e.getUTCHours();return 0===o&&(o=24),"ko"===t?n.ordinalNumber(o,{unit:"hour"}):hs(o,t.length)},m:function(e,t,n){return"mo"===t?n.ordinalNumber(e.getUTCMinutes(),{unit:"minute"}):ys(e,t)},s:function(e,t,n){return"so"===t?n.ordinalNumber(e.getUTCSeconds(),{unit:"second"}):vs(e,t)},S:function(e,t){return bs(e,t)},X:function(e,t,n,o){var i=(o._originalDate||e).getTimezoneOffset();if(0===i)return"Z";switch(t){case"X":return ks(i);case"XXXX":case"XX":return Cs(i);default:return Cs(i,":")}},x:function(e,t,n,o){var i=(o._originalDate||e).getTimezoneOffset();switch(t){case"x":return ks(i);case"xxxx":case"xx":return Cs(i);default:return Cs(i,":")}},O:function(e,t,n,o){var i=(o._originalDate||e).getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+xs(i,":");default:return"GMT"+Cs(i,":")}},z:function(e,t,n,o){var i=(o._originalDate||e).getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+xs(i,":");default:return"GMT"+Cs(i,":")}},t:function(e,t,n,o){var i=o._originalDate||e;return hs(Math.floor(i.getTime()/1e3),t.length)},T:function(e,t,n,o){return hs((o._originalDate||e).getTime(),t.length)}};function xs(e,t){var n=e>0?"-":"+",o=Math.abs(e),i=Math.floor(o/60),r=o%60;if(0===r)return n+String(i);var s=t||"";return n+String(i)+s+hs(r,2)}function ks(e,t){return e%60==0?(e>0?"-":"+")+hs(Math.abs(e)/60,2):Cs(e,t)}function Cs(e,t){var n=t||"",o=e>0?"-":"+",i=Math.abs(e);return o+hs(Math.floor(i/60),2)+n+hs(i%60,2)}const $s=ws;var Ss=function(e,t){switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}},Es=function(e,t){switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}},Os={p:Es,P:function(e,t){var n,o=e.match(/(P+)(p+)?/)||[],i=o[1],r=o[2];if(!r)return Ss(e,t);switch(i){case"P":n=t.dateTime({width:"short"});break;case"PP":n=t.dateTime({width:"medium"});break;case"PPP":n=t.dateTime({width:"long"});break;default:n=t.dateTime({width:"full"})}return n.replace("{{date}}",Ss(i,t)).replace("{{time}}",Es(r,t))}};const Ts=Os;var As=["D","DD"],_s=["YY","YYYY"];function Ls(e,t,n){if("YYYY"===e)throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(t,"`) for formatting years to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("YY"===e)throw new RangeError("Use `yy` instead of `YY` (in `".concat(t,"`) for formatting years to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("D"===e)throw new RangeError("Use `d` instead of `D` (in `".concat(t,"`) for formatting days of the month to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("DD"===e)throw new RangeError("Use `dd` instead of `DD` (in `".concat(t,"`) for formatting days of the month to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"))}var Ms={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function Rs(e){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}var Ns,Is={date:Rs({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:Rs({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:Rs({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},Ps={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function Ds(e){return function(t,n){var o;if("formatting"===(null!=n&&n.context?String(n.context):"standalone")&&e.formattingValues){var i=e.defaultFormattingWidth||e.defaultWidth,r=null!=n&&n.width?String(n.width):i;o=e.formattingValues[r]||e.formattingValues[i]}else{var s=e.defaultWidth,a=null!=n&&n.width?String(n.width):e.defaultWidth;o=e.values[a]||e.values[s]}return o[e.argumentCallback?e.argumentCallback(t):t]}}function Fs(e){return function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=n.width,i=o&&e.matchPatterns[o]||e.matchPatterns[e.defaultMatchWidth],r=t.match(i);if(!r)return null;var s,a=r[0],l=o&&e.parsePatterns[o]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(l)?function(e,t){for(var n=0;n0?"in "+o:o+" ago":o},formatLong:Is,formatRelative:function(e,t,n,o){return Ps[e]},localize:{ordinalNumber:function(e,t){var n=Number(e),o=n%100;if(o>20||o<10)switch(o%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:Ds({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:Ds({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:function(e){return e-1}}),month:Ds({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:Ds({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:Ds({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(Ns={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:function(e){return parseInt(e,10)}},function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.match(Ns.matchPattern);if(!n)return null;var o=n[0],i=e.match(Ns.parsePattern);if(!i)return null;var r=Ns.valueCallback?Ns.valueCallback(i[0]):i[0];return{value:r=t.valueCallback?t.valueCallback(r):r,rest:e.slice(o.length)}}),era:Fs({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:Fs({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(e){return e+1}}),month:Fs({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:Fs({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:Fs({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}};var Ws=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Hs=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,js=/^'([^]*?)'?$/,zs=/''/g,Vs=/[a-zA-Z]/;function Us(e,t,n){var o,i,r,s,a,l,c,u,h,d,p,g,m,f,y,v,b,w;ts(2,arguments);var x=String(t),k=ls(),C=null!==(o=null!==(i=null==n?void 0:n.locale)&&void 0!==i?i:k.locale)&&void 0!==o?o:Bs,$=is(null!==(r=null!==(s=null!==(a=null!==(l=null==n?void 0:n.firstWeekContainsDate)&&void 0!==l?l:null==n||null===(c=n.locale)||void 0===c||null===(u=c.options)||void 0===u?void 0:u.firstWeekContainsDate)&&void 0!==a?a:k.firstWeekContainsDate)&&void 0!==s?s:null===(h=k.locale)||void 0===h||null===(d=h.options)||void 0===d?void 0:d.firstWeekContainsDate)&&void 0!==r?r:1);if(!($>=1&&$<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var S=is(null!==(p=null!==(g=null!==(m=null!==(f=null==n?void 0:n.weekStartsOn)&&void 0!==f?f:null==n||null===(y=n.locale)||void 0===y||null===(v=y.options)||void 0===v?void 0:v.weekStartsOn)&&void 0!==m?m:k.weekStartsOn)&&void 0!==g?g:null===(b=k.locale)||void 0===b||null===(w=b.options)||void 0===w?void 0:w.weekStartsOn)&&void 0!==p?p:0);if(!(S>=0&&S<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!C.localize)throw new RangeError("locale must contain localize property");if(!C.formatLong)throw new RangeError("locale must contain formatLong property");var E=os(e);if(!function(e){if(ts(1,arguments),!ns(e)&&"number"!=typeof e)return!1;var t=os(e);return!isNaN(Number(t))}(E))throw new RangeError("Invalid time value");var O=function(e){var t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),e.getTime()-t.getTime()}(E),T=function(e,t){return ts(2,arguments),function(e,t){ts(2,arguments);var n=os(e).getTime(),o=is(t);return new Date(n+o)}(e,-is(t))}(E,O),A={firstWeekContainsDate:$,weekStartsOn:S,locale:C,_originalDate:E};return x.match(Hs).map((function(e){var t=e[0];return"p"===t||"P"===t?(0,Ts[t])(e,C.formatLong):e})).join("").match(Ws).map((function(o){if("''"===o)return"'";var i,r,s=o[0];if("'"===s)return(r=(i=o).match(js))?r[1].replace(zs,"'"):i;var a,l=$s[s];if(l)return null!=n&&n.useAdditionalWeekYearTokens||(a=o,-1===_s.indexOf(a))||Ls(o,t,String(e)),null!=n&&n.useAdditionalDayOfYearTokens||!function(e){return-1!==As.indexOf(e)}(o)||Ls(o,t,String(e)),l(T,o,C.localize,A);if(s.match(Vs))throw new RangeError("Format string contains an unescaped latin alphabet character `"+s+"`");return o})).join("")}var Gs=n(590),Ks=n.n(Gs),qs=Object.defineProperty,Ys=Object.defineProperties,Js=Object.getOwnPropertyDescriptors,Xs=Object.getOwnPropertySymbols,Qs=Object.prototype.hasOwnProperty,Zs=Object.prototype.propertyIsEnumerable,ea=(e,t,n)=>t in e?qs(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ta=(e,t)=>{for(var n in t||(t={}))Qs.call(t,n)&&ea(e,n,t[n]);if(Xs)for(var n of Xs(t))Zs.call(t,n)&&ea(e,n,t[n]);return e};class na extends e.Component{static getMainFormValue(e){const t=new Array(e.length);return e.forEach(((e,n)=>{t[n]=e.props.value||void 0})),t}constructor(t){super(t);const{components:n}=t;this.submitButtonRef=(0,e.createRef)(),this.handleOnChange=this.handleOnChange.bind(this),this.submitForm=this.submitForm.bind(this),this.state={components:n,errors:{},mainError:null,mainFormValue:na.getMainFormValue(n),refs:[]}}componentDidMount(){const{addValueOnFieldChange:e,getMainFormButtonWidth:t}=this.props;this.createRefs(),t&&t(e?0:this.submitButtonRef.current.clientWidth)}static getDerivedStateFromProps(e,t){const n={},{components:o}=e,{components:i}=t;return Ks()(o,i)||Ks()(na.getMainFormValue(o),na.getMainFormValue(i))||(n.mainFormValue=na.getMainFormValue(o),n.components=o),n}handleOnChange(e,t,n){const{addValueOnFieldChange:o}=this.props;let i=this.state;i=ta(ta({},i),this.validateValue(n,e.props)),i.errors[e.props.name]||(i.mainFormValue[t]=n,e.props.onChange&&e.props.onChange(n)),this.setState((e=>ta(ta({},e),i)),(()=>{o&&this.submitForm()}))}getFormCssClasses(){const{noLabels:e}=this.props,t=["tyk-editable-list__form"];return e&&t.push("no-labels"),t.join(" ")}getButtonClassName(){const{buttonStyle:e,displayType:t}=this.props,n=[];return e&&n.push(e),t&&n.push(t),n.join(" ")}getComponentsError(e){const{error:t,errors:n,mainError:o}=this.state;return t||o?n[e.props.name]="true":t||o||"true"!==n[e.props.name]||delete n[e.props.name],n[e.props.name]?n[e.props.name].toString():void 0}createRefs(){const{components:t}=this.props,n=[];t.forEach((()=>{n.push((0,e.createRef)())})),this.setState({refs:n})}validateValue(e,t){const{mainError:n,errors:o}=this.state,{error:i,errorPersist:r}=this.props,s=t.validate?Object.keys(t.validate):[],a={errors:i||n?{}:ta({},o)};let l=!0;if(r)return a;for(const n of s)if((0,t.validate[n])(e)){a.errors[t.name]=t.validationmessages[n],l=!1;break}return l&&delete a.errors[t.name],a.mainError=null,a}hasMainFormErrors(e){const{components:t,errorPersist:n}=this.props,{mainFormValue:o}=this.state,i={errors:ta({},e)};return(!n||-1!==o.indexOf(void 0))&&(Object.keys(i.errors).length>0||(t.forEach(((e,t)=>{i.errors=ta(ta({},i.errors),this.validateValue(o[t],e.props).errors)})),Object.keys(i.errors).length>0))}resetForm(){const{refs:e}=this.state,{components:t}=this.props;e.forEach((e=>{var t;(null==(t=e.current)?void 0:t.reset)&&e.current.reset()})),this.setState({errors:{},mainError:null,mainFormValue:na.getMainFormValue(t)})}showMainError(e){this.setState({mainError:e})}submitForm(){const{errors:e,mainFormValue:t}=this.state,{errorPersist:n,onSubmit:o,validate:i,validationmessage:r}=this.props;n&&(o(t),this.resetForm()),0===Object.keys(e).length&&o&&"function"==typeof o&&(i&&i(t)?this.showMainError(r):(o(t),this.resetForm()))}render(){const{addValueOnFieldChange:e,components:n,buttonName:o,disabled:i,displayType:r,error:s}=this.props,{mainError:a,refs:l,errors:c}=this.state;return t().createElement("div",null,t().createElement("div",{className:this.getFormCssClasses()},t().createElement(yi,null,n.map(((e,n)=>{const o=e.name;console.log("ComponentName",o);const s=e.props,{onChange:a,value:c}=s,u=((e,t)=>{var n={};for(var o in e)Qs.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Xs)for(var o of Xs(e))t.indexOf(o)<0&&Zs.call(e,o)&&(n[o]=e[o]);return n})(s,["onChange","value"]);return t().createElement(li,{size:`md-${e.size||"12"} lg-${e.size||"12"}`,key:e.props.name},t().createElement(o,(h=ta({disabled:i||e.props.disabled,onChange:this.handleOnChange.bind(this,e,n)},u),d={label:"inline"===r?"":e.props.label,error:this.getComponentsError(e),ref:l[n],value:c},Ys(h,Js(d)))));var h,d}))),e?null:t().createElement("span",{className:this.getButtonClassName(),ref:this.submitButtonRef},t().createElement(U,{disabled:this.hasMainFormErrors(c),className:"tyk-editable-list__submit-btn",onClick:this.submitForm,theme:"default",type:"button",size:"inline"===r?"sm":"md"},o||"ADD"))),s||a?t().createElement("div",{className:"tyk-editable-list-main-error"},t().createElement("p",{className:"error-message"},s||a)):null)}}na.propTypes={addValueOnFieldChange:r().bool,noLabels:r().bool,buttonName:r().string,buttonStyle:r().string,components:r().instanceOf(Array),displayType:r().string,disabled:r().bool,getMainFormButtonWidth:r().func,error:r().string,errorPersist:r().bool,onSubmit:r().func,validate:r().func,validationmessage:r().string};const oa=na;var ia=Object.defineProperty,ra=Object.getOwnPropertySymbols,sa=Object.prototype.hasOwnProperty,aa=Object.prototype.propertyIsEnumerable,la=(e,t,n)=>t in e?ia(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ca=(e,t)=>{for(var n in t||(t={}))sa.call(t,n)&&la(e,n,t[n]);if(ra)for(var n of ra(t))aa.call(t,n)&&la(e,n,t[n]);return e};class ua extends e.Component{static getItemListValue(e){let t=null;return"string"==typeof e&&(t=e),"[object Object]"===Object.prototype.toString.call(e)&&(t=e.name),ns(e)&&(t=Us(e,"dd/MM/yyyy")),t}static getListItemCssClass(e){const t=[];return"inline"===e&&t.push("tyk-editable-list-item--inline"),t.join(" ")}constructor(t){super(t);const{value:n}=this.props;this.state={initialValue:n||"",value:n||[],buttonWidth:0},this.startIndex=1,this.handleFormSubmit=this.handleFormSubmit.bind(this),this.getMainFormButtonWidth=this.getMainFormButtonWidth.bind(this),this.dropdownListItemRef=(0,e.createRef)()}static getDerivedStateFromProps(e,t){const n={};return e.value&&JSON.stringify(e.value)!==JSON.stringify(t.initialValue)&&(n.value=e.value||[],n.initialValue=e.value||""),n.value?n:null}handleFormSubmit(e){const t=this.addValues(e);this.setState((e=>ca(ca({},e),t)),(()=>{this.triggerOnChange(t.value.length-1,null,e)}))}handleItemUpdate(e,t){let n;this.setState((o=>{const i=ca({},o);return n=(0,pe.fromJS)(i.value[e].value).toJS(),i.value[e].value=t,i.value[e].editMode=!1,i}),(()=>{this.triggerOnChange(e,n,t)}))}handleChildrenOnChange(e,t){let n;this.setState((o=>{const i=ca({},o);return n=(0,pe.fromJS)(i.value[e].children).toJS(),i.value[e].children=t,i}),(()=>{this.triggerOnChange(e,n,t)}))}getListItemsCssClass(e){const{config:t}=this.props,n=["tyk-editable-list-items"];return n.push(t.displayType||"table"),"inline"===e&&n.push("tyk-editable-list-items--inline"),n.join(" ")}getFormInputKey(){return this.startIndex+=1,this.startIndex}getListItemText(e){const{config:n}=this.props;let o=null;switch(n.displayType){case"list":case"inline":o=e.value.reduce(((t,n,o)=>{const i=ua.getItemListValue(n);let r=", ";return o===e.value.length-1&&(r=""),t+i+r}),"");break;default:o=t().createElement(yi,null,n.components.map(((n,o)=>t().createElement(li,{key:this.getFormInputKey(),size:`md-${n.size} lg-${n.size}`},ua.getItemListValue(e.value[o])))))}return o}getMainFormButtonWidth(e){this.setState({buttonWidth:e})}setItemEditMode(e){const t=this.closeListItems();this.setState((n=>{const o=ca({},n);return o.value=t,o.value[e].editMode=!o.value[e].editMode,o}))}isInList(e,t){const{value:n}=this.state;let o=!1;return n.forEach(((n,i)=>{JSON.stringify(n.value)===JSON.stringify(t)&&(o=!(e>=0&&i===e))})),o}addValues(e){const{value:t}=this.state,{config:n}=this.props,o={editMode:!1,value:e},i={value:t.slice(0)};return n.children&&(o.children=[]),i.value.push(o),i}removeListItem(e){let t;this.setState((n=>{const o=n.value.slice(0);return t=o.splice(e,1),{value:o}}),(()=>{this.triggerOnChange(e,t,null)}))}closeListItems(){const{value:e}=this.state;return e.map((e=>{const t=ca({},e);return t.editMode?(t.editMode=!1,t):t}))}triggerOnChange(e,t,n){const{onChange:o}=this.props,{value:i}=this.state;o&&"function"==typeof o&&o(i.length?i:null,e,t,n)}genListItem(e,n){var o;const{config:i,disabled:r}=this.props,{buttonWidth:s,value:a}=this.state,l=(0,pe.fromJS)(i.components).toJS();return e.value.forEach(((e,t)=>{l[t].props.value=e})),t().createElement("li",{key:n,className:ua.getListItemCssClass(i.displayType),ref:this.dropdownListItemRef},t().createElement("div",{className:`tyk-editable-list-item__text ${i.displayType||"table"}${e.editMode?" edit-mode-wrapper":""}`},e.editMode?t().createElement(t().Fragment,null,t().createElement(oa,{buttonName:"Update",noLabels:i.noLabels,disabled:r,displayType:i.displayType,components:l,onSubmit:this.handleItemUpdate.bind(this,n),validate:this.isInList.bind(this,n),validationmessage:"This value is already in the list"}),t().createElement("button",{type:"button",className:"tyk-editable-list-action__button on-edit",onClick:this.removeListItem.bind(this,n),"aria-label":"remove"},t().createElement(g,{type:"trash"}))):t().createElement(t().Fragment,null,this.getListItemText(e,n),t().createElement("div",{className:"tyk-editable-list-item__controls",style:{display:"block",width:"inline"===i.displayType?"auto":`${s+60}px`}},t().createElement("button",{disabled:r,type:"button",className:"tyk-editable-list-action__button",onClick:this.setItemEditMode.bind(this,n),"aria-label":"edit"},t().createElement(g,{type:"edit"})),t().createElement("button",{disabled:r,type:"button",className:"tyk-editable-list-action__button",onClick:this.removeListItem.bind(this,n),"aria-label":"remove"},t().createElement(g,{type:"trash"}))))),i.children?t().createElement(ua,{disabled:r,onChange:this.handleChildrenOnChange.bind(this,n),config:i.children.config,value:(null==(o=a[n])?void 0:o.children)||[]}):null)}genList(){const{config:e}=this.props,{buttonWidth:n,value:o}=this.state;return o&&0!==o.length?t().createElement(t().Fragment,null,"table"!==e.displayType&&e.displayType?null:t().createElement("div",{className:"tyk-editable-list__header",style:{paddingRight:`${n+60}px`}},t().createElement(yi,null,e.components.map(((e,n)=>t().createElement(li,{key:e.props.label||n,size:`md-${e.size||12} lg-${e.size||12}`},e.props.label))))),t().createElement("ul",{className:this.getListItemsCssClass(e.displayType)},o.map(((e,t)=>this.genListItem(e,t))))):null}render(){const{addValueOnFieldChange:e,config:n,error:o,disabled:i,label:r}=this.props,s=document.querySelector(n.appendTo)||document.querySelector("body");return t().createElement("div",{className:"tyk-editable-list"},r?t().createElement("label",null,r):null,t().createElement(oa,{addValueOnFieldChange:e,components:n.components,buttonName:n.formButtonTitle,buttonStyle:n.formButtonStyle,disabled:i,error:o,errorPersist:!!o,noLabels:n.noLabels,onSubmit:this.handleFormSubmit,validate:this.isInList.bind(this,-1),validationmessage:"This value is already in the list",getMainFormButtonWidth:this.getMainFormButtonWidth}),n.appendTo?dt().createPortal(this.genList(),s):this.genList())}}ua.propTypes={addValueOnFieldChange:r().bool,disabled:r().bool,error:r().string,config:r().instanceOf(Object),onChange:r().func,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),value:r().oneOfType([r().instanceOf(Array),r().instanceOf(Object)])};const ha=ua;function da({label:e,addButtonName:n,onAddRow:o,disabled:i,readOnly:r}){return t().createElement("div",{className:"editable-list__header"},e?t().createElement("label",null,e):null,!i&&!r&&t().createElement(U,{theme:"primary rounded-corners",onClick:o},n||"Add"))}da.propTypes={disabled:r().bool,readOnly:r().bool,onAddRow:r().func,addButtonName:r().string,label:r().oneOfType([r().string,r().element,r().node])};const pa=da;function ga({fields:e,readOnly:n}){return t().createElement("li",{className:"editable-list__item editable-list__item-header"},e.map((e=>{var n,o;return t().createElement("div",{key:(null==(n=null==e?void 0:e.props)?void 0:n.label)||JSON.stringify(e),className:`editable-list__item-cell editable-list__item--size-${(null==e?void 0:e.size)||12}`},null==(o=null==e?void 0:e.props)?void 0:o.label)})),t().createElement("div",{className:`editable-list__item-cell editable-list__item-action ${n&&"editable-list__item-action--read-only"}`},"Delete"))}ga.propTypes={fields:r().instanceOf(Array),readOnly:r().bool};const ma=ga;var fa=Object.defineProperty,ya=Object.defineProperties,va=Object.getOwnPropertyDescriptors,ba=Object.getOwnPropertySymbols,wa=Object.prototype.hasOwnProperty,xa=Object.prototype.propertyIsEnumerable,ka=(e,t,n)=>t in e?fa(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Ca({fields:e,disabled:n,readOnly:o,errors:i,components:r,onChange:s,onDelete:a,value:l,rowIndex:c}){return t().createElement("li",{className:"editable-list__item"},r.map(((r,a)=>{var u,h,d;const p=e[a],g="function"==typeof p?p(c,a):p;return t().createElement("div",{key:`${c}-${a}`,className:`editable-list__item-cell editable-list__item--size-${(null==(u=e[a])?void 0:u.size)||12}`},t().createElement(r,(m=((e,t)=>{for(var n in t||(t={}))wa.call(t,n)&&ka(e,n,t[n]);if(ba)for(var n of ba(t))xa.call(t,n)&&ka(e,n,t[n]);return e})({},null==g?void 0:g.props),f={label:"",value:l[a],onChange:s.bind(null,a),error:null==i?void 0:i[a],disabled:n||(null==(h=null==g?void 0:g.props)?void 0:h.disabled),readOnly:o||(null==(d=null==g?void 0:g.props)?void 0:d.readOnly)},ya(m,va(f)))));var m,f})),t().createElement("div",{className:`editable-list__item-cell editable-list__item-action ${o&&"editable-list__item-action--read-only"}`},t().createElement(U,{iconOnly:!0,iconType:"trash-alt",theme:"primary-link",onClick:a,disabled:o||n})))}Ca.propTypes={disabled:r().bool,readOnly:r().bool,rowIndex:r().oneOfType([r().string,r().number]),fields:r().instanceOf(Array),errors:r().instanceOf(Array),components:r().instanceOf(Array),value:r().instanceOf(Array),onChange:r().func,onDelete:r().func};const $a=Ca;var Sa=Object.defineProperty,Ea=Object.defineProperties,Oa=Object.getOwnPropertyDescriptors,Ta=Object.getOwnPropertySymbols,Aa=Object.prototype.hasOwnProperty,_a=Object.prototype.propertyIsEnumerable,La=(e,t,n)=>t in e?Sa(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;let Ma=1;function Ra({addButtonName:n,disabled:o,readOnly:i,fields:r,label:s,error:a,value:l=[],onChange:c=(()=>{}),hideOnEmpty:u=!0,wrapperClassName:h=""}){const[d,p]=(0,e.useState)(null),g=(e,t,n,o)=>{var i;const s=l?[...l]:[];if(l){const o=[...s[e]];o[t]=n,s[e]=o,s[e].id=l[e].id}else s[e]=[...new Array(r.length)],s[e][t]=n;if((null==(i=null==d?void 0:d[e])?void 0:i[t])&&o){const n=[...d],o=[...n[e]];o[t]=null,n[e]=o,p(n)}c(s)},m=(0,e.useMemo)((()=>r.map((n=>{const o="function"==typeof n?n():n;return i=(null==o?void 0:o.component)||null,n=>{var o=n,{onChange:r,validate:s,error:a}=o,l=((e,t)=>{var n={};for(var o in e)Aa.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ta)for(var o of Ta(e))t.indexOf(o)<0&&_a.call(e,o)&&(n[o]=e[o]);return n})(o,["onChange","validate","error"]);const[c,u]=(0,e.useState)(null),h=(0,e.useCallback)((e=>{const t=(null==e?void 0:e.target)?["radio","checkbox"].includes(e.target.type)?e.target.checked:null==e?void 0:e.target.value:e;let n=!0;if(s&&"function"==typeof s){const e=s(t);n=!e,u(e)}r(t,n)}),[s,r]);return t().createElement(i,(d=((e,t)=>{for(var n in t||(t={}))Aa.call(t,n)&&La(e,n,t[n]);if(Ta)for(var n of Ta(t))_a.call(t,n)&&La(e,n,t[n]);return e})({},l),Ea(d,Oa({onChange:h,error:c||a}))));var d};var i}))),[]),f=e=>{if(!l)return;const t=[...l];t.splice(e,1),c(t)};return t().createElement("div",{className:`editable-list__wrapper tyk-form-group tyk-form-group--default ${a?"has-error":""} ${h}`},t().createElement(pa,{disabled:o,readOnly:i,label:s,addButtonName:n,onAddRow:()=>{const e=((e,t)=>{var n;return null==(n=t||[[void 0,void 0]])?void 0:n.map((t=>null==t?void 0:t.map(((t,n)=>{var o,i;return null==(i=(o=e[n].props).validate)?void 0:i.call(o,t)}))))})(r,l);if((e=>{var t;return Boolean(null==(t=null==e?void 0:e.flat())?void 0:t.filter(Boolean).length)})(e))return void p(e);const t=[...new Array(r.length)];t.id="row-"+Ma++,c([...l,t])}}),(null==l?void 0:l.length)||!u?t().createElement("ul",{className:"editable-list__list"},(l||[[]]).map(((e,n)=>t().createElement($a,{key:e.id||n,rowIndex:n,disabled:o,readOnly:i,fields:r,onChange:g.bind(null,n),onDelete:f.bind(null,n),value:e,errors:null==d?void 0:d[n],components:m}))),t().createElement(ma,{fields:r,readOnly:i})):null,a&&"true"!==a&&"false"!==a?t().createElement("p",{className:"tyk-form-control__error-message"},a):null)}Ra.propTypes={disabled:r().bool,readOnly:r().bool,addButtonName:r().string,label:r().oneOfType([r().string,r().element,r().node]),fields:r().instanceOf(Array),onChange:r().func,value:r().oneOfType([r().instanceOf(Object),r().instanceOf(Array)]),error:r().string,hideOnEmpty:r().bool,wrapperClassName:r().string};const Na=Ra;var Ia=Object.defineProperty,Pa=Object.defineProperties,Da=Object.getOwnPropertyDescriptors,Fa=Object.getOwnPropertySymbols,Ba=Object.prototype.hasOwnProperty,Wa=Object.prototype.propertyIsEnumerable,Ha=(e,t,n)=>t in e?Ia(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function ja(n){var o=n,{error:i,theme:r,labelwidth:s,wrapperClassName:a="",id:l,label:c,note:u,accept:h,value:d,onChange:p}=o,m=((e,t)=>{var n={};for(var o in e)Ba.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Fa)for(var o of Fa(e))t.indexOf(o)<0&&Wa.call(e,o)&&(n[o]=e[o]);return n})(o,["error","theme","labelwidth","wrapperClassName","id","label","note","accept","value","onChange"]);const f=(0,e.useRef)();return t().createElement("div",{className:function(){const e=[a,"tyk-form-group"],t=r?r.split(" "):[];return t.length&&t.forEach((t=>{e.push(`tyk-form-group--${t}`)})),s&&e.push("tyk-form-group--label-has-width"),i&&e.push("has-error"),e.join(" ")}()},c?t().createElement("label",{htmlFor:l,style:function(){const e={};return s&&(e.flexBasis=s),e}()},c):null,t().createElement("div",{className:"tyk-form-control__wrapper"},t().createElement("div",{className:"tyk-file-input__wrapper",style:function(){const e={};return s&&(e.flexBasis=`calc(100% - ${s} - 20px)`),e}()},t().createElement("input",(y=((e,t)=>{for(var n in t||(t={}))Ba.call(t,n)&&Ha(e,n,t[n]);if(Fa)for(var n of Fa(t))Wa.call(t,n)&&Ha(e,n,t[n]);return e})({accept:h,className:"tyk-form-control"},m),Pa(y,Da({onChange:function(e){p(e.target.files)},ref:f,type:"file"})))),f.current&&f.current.files.length>0?t().createElement("button",{onClick:function(){f.current.value="",p("")},type:"button","aria-label":"clear value"},t().createElement(g,{type:"times"})):null),u?t().createElement("p",{className:"tyk-form-control__help-block"},u):null),i&&"true"!==i&&"false"!==i?t().createElement("p",{className:"tyk-form-control__error-message"},i):null);var y}ja.propTypes={accept:r().string,disabled:r().bool,id:r().string,error:r().oneOfType([r().string,r().bool]),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,name:r().string,note:r().string,onChange:r().func,placeholder:r().string,theme:r().string,value:r().instanceOf(Object),wrapperClassName:r().string};const za=ja;var Va=Object.defineProperty,Ua=Object.defineProperties,Ga=Object.getOwnPropertyDescriptors,Ka=Object.getOwnPropertySymbols,qa=Object.prototype.hasOwnProperty,Ya=Object.prototype.propertyIsEnumerable,Ja=(e,t,n)=>t in e?Va(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Xa extends e.Component{static getAddon(e){return t().createElement("div",{className:"tyk-input-group__addon"},e)}constructor(e){super(e);const{value:t}=this.props;this.state={initValue:t,stateValue:t},this.handleOnChange=this.handleOnChange.bind(this)}componentDidUpdate(e){const{isfield:t,value:n,onChange:o}=this.props;t||e.value===n||this.setState({stateValue:n},(()=>{o&&o(n)}))}handleOnChange(e){const{onChange:t,isfield:n}=this.props,o=e.target.value;n?t(o):this.setState({stateValue:o},(()=>{t&&t(o)}))}getLabelStyles(){const{labelwidth:e}=this.props,t={};return e&&(t.flexBasis=e),t}getNonLabelWidth(){const{labelwidth:e}=this.props,t={};return e&&(t.flexBasis=`calc(100% - ${e} - 20px)`),t}getInputError(){const{error:e}=this.props;return e&&"true"!==e&&"false"!==e?t().createElement("p",{className:"tyk-form-control__error-message"},e):null}getCssClasses(){const{error:e,theme:t,labelwidth:n,inputgroupaddonleft:o,inputgroupaddonright:i}=this.props,r=["tyk-form-group"],s=t?t.split(" "):[];return s.length&&s.forEach((e=>{r.push(`tyk-form-group--${e}`)})),o&&r.push("tyk-form-group--addon-left"),i&&r.push("tyk-form-group--addon-right"),n&&r.push("tyk-form-group--label-has-width"),e&&r.push("has-error"),r.join(" ")}getInputGroupAddon(){const{inputgroupaddonleft:e,inputgroupaddonright:n}=this.props;return t().createElement("div",{className:"tyk-input-group"},e?Xa.getAddon(e):null,this.getInputComponent(),n?Xa.getAddon(n):null)}getInputComponent(){const e=this.props,{isfield:n,onChange:o,value:i}=e,r=((e,t)=>{var n={};for(var o in e)qa.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ka)for(var o of Ka(e))t.indexOf(o)<0&&Ya.call(e,o)&&(n[o]=e[o]);return n})(e,["isfield","onChange","value"]),{stateValue:s}=this.state;return t().createElement("input",(a=((e,t)=>{for(var n in t||(t={}))qa.call(t,n)&&Ja(e,n,t[n]);if(Ka)for(var n of Ka(t))Ya.call(t,n)&&Ja(e,n,t[n]);return e})({autoComplete:"off",className:"tyk-form-control"},r),l={onChange:this.handleOnChange,value:n?i:s},Ua(a,Ga(l))));var a,l}reset(){const{initValue:e}=this.state;this.setState({stateValue:e})}render(){const{label:e,id:n,inputgroupaddonleft:o,inputgroupaddonright:i,note:r,readOnly:s,value:a}=this.props;return t().createElement("div",{className:this.getCssClasses()},e?t().createElement("label",{htmlFor:n,style:this.getLabelStyles()},e):null,!s&&t().createElement("div",{className:"tyk-form-control__wrapper",style:this.getNonLabelWidth()},o||i?this.getInputGroupAddon():this.getInputComponent(),r?t().createElement("p",{className:"tyk-form-control__help-block"},r):null,this.getInputError()),s&&t().createElement("div",{className:"tyk-form-control--readonly"},a||"-"))}}Xa.propTypes={disabled:r().bool,readOnly:r().bool,id:r().string,isfield:r().bool,error:r().oneOfType([r().string,r().bool]),inputgroupaddonleft:r().oneOfType([r().element,r().node,r().string]),inputgroupaddonright:r().oneOfType([r().element,r().node,r().string]),label:r().oneOfType([r().string,r().element,r().node]),labelwidth:r().string,name:r().string,note:r().string,onChange:r().func,placeholder:r().string,theme:r().string,value:r().oneOfType([r().number,r().string])};const Qa=Xa;var Za=Object.defineProperty,el=Object.defineProperties,tl=Object.getOwnPropertyDescriptors,nl=Object.getOwnPropertySymbols,ol=Object.prototype.hasOwnProperty,il=Object.prototype.propertyIsEnumerable,rl=(e,t,n)=>t in e?Za(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,sl=(e,t)=>{for(var n in t||(t={}))ol.call(t,n)&&rl(e,n,t[n]);if(nl)for(var n of nl(t))il.call(t,n)&&rl(e,n,t[n]);return e};function al(n,o){var i=n,{error:r,onChange:s,readOnly:a,id:l,inputgroupaddonleft:c,inputgroupaddonright:u,label:h,labelwidth:d,note:p,theme:g,value:m,wrapperClassName:f=""}=i,y=((e,t)=>{var n={};for(var o in e)ol.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&nl)for(var o of nl(e))t.indexOf(o)<0&&il.call(e,o)&&(n[o]=e[o]);return n})(i,["error","onChange","readOnly","id","inputgroupaddonleft","inputgroupaddonright","label","labelwidth","note","theme","value","wrapperClassName"]);const v=(0,e.useRef)();(0,e.useImperativeHandle)(o,(()=>({focus:()=>{v.current.focus()}})));const b=e=>t().createElement("div",{className:"tyk-input-group__addon"},e),w=e=>{s(e,e.target.value)},x=()=>{return t().createElement("input",(e=sl({autoComplete:"off",className:"tyk-form-control"},y),el(e,tl({onChange:w,value:m,ref:v}))));var e};return t().createElement("div",{className:(()=>{const e=[f,"tyk-form-group"],t=g?g.split(" "):[];return t.length&&t.forEach((t=>{e.push(`tyk-form-group--${t}`)})),c&&e.push("tyk-form-group--addon-left"),u&&e.push("tyk-form-group--addon-right"),d&&e.push("tyk-form-group--label-has-width"),r&&e.push("has-error"),e.join(" ")})()},h?t().createElement("label",{htmlFor:l,style:sl({},d&&{flexBasis:d})},h):null,!a&&t().createElement("div",{className:"tyk-form-control__wrapper",style:sl({},d&&{flexBasis:`calc(100% - ${d} - 20px)`})},c||u?t().createElement("div",{className:"tyk-input-group"},c?b(c):null,x(),u?b(u):null):x(),p?t().createElement("p",{className:"tyk-form-control__help-block"},p):null,r&&"true"!==r&&"false"!==r?t().createElement("p",{className:"tyk-form-control__error-message"},r):null),a&&t().createElement("div",{className:"tyk-form-control--readonly"},m||"-"))}al.propTypes={disabled:r().bool,readOnly:r().bool,id:r().string,error:r().oneOfType([r().string,r().bool]),inputgroupaddonleft:r().oneOfType([r().element,r().node,r().string]),inputgroupaddonright:r().oneOfType([r().element,r().node,r().string]),label:r().oneOfType([r().string,r().element,r().node]),labelwidth:r().string,name:r().string,note:r().string,onChange:r().func,placeholder:r().string,theme:r().string,value:r().oneOfType([r().number,r().string]),wrapperClassName:r().string};const ll=(0,e.forwardRef)(al),cl=(0,e.createContext)();function ul({item:n,itemType:o,searchValue:i,onChange:r}){const s=(0,e.useCallback)((e=>(null==e?void 0:e.length)>0?e.some((e=>{var t;return null==(t=n[e])?void 0:t.includes(i)})):JSON.stringify(n).includes(i)),[n,i]),a=(0,e.useCallback)((()=>{r(n)}),[r,n]);return t().createElement(cl.Consumer,null,(e=>s(e.fieldsToSearchOn)?t().createElement("li",null,t().createElement("div",null,t().createElement("span",{className:"tyk-multiselect-item__name"},e.itemDisplayTemplate?e.itemDisplayTemplate(n):JSON.stringify(n)),t().createElement("span",{className:"tyk-multiselect-item__controls"},t().createElement(U,{iconType:"normal"===o?"plus":"minus",iconOnly:!0,onClick:a,disabled:e.disabled||e.maxSelections&&e.maxSelections===e.nrSelectedItems&&"normal"===o}),t().createElement(U,{iconType:e.opened[n.id]?"chevron-up":"chevron-down",iconOnly:!0,onClick:()=>e.onGetItemDetails(n)}))),n.details?t().createElement(R,{collapsed:!e.opened[n.id],className:"tyk-multiselect-item__details"},((e,t)=>e.detailsDisplayTemplate?e.detailsDisplayTemplate(t):JSON.stringify(t.details))(e,n)):((e,n)=>{const{opened:o}=e;return o[n.id]?t().createElement(ye,{position:"relative"}):null})(e,n)):null))}ul.propTypes={item:r().instanceOf(Object),itemType:r().string,searchValue:r().string,onChange:r().func};const hl=ul;function dl({inputPlaceholder:n,noItemsMessage:o,items:i,onCustomSearch:r,onChange:s,customSearch:a,panelType:l,serverLoad:c,itemsPageNumber:u,itemsNrPages:h,loadMoreItems:d}){const[p,m]=(0,e.useState)(""),f=(0,e.useRef)(0),y=(0,e.useRef)(),v=(0,e.useCallback)((e=>{r?r(e):m(e)}),[r]),b=(0,e.useCallback)((e=>{let t=structuredClone(i);t=t.filter((t=>e.id!==t.id)),s(t,e)}),[i]);function w(){return t().createElement("ul",{className:"tyk-multiselect__list"+(c?"":" tyk-multiselect__list--scroll"),ref:y},i.map((e=>t().createElement(hl,{itemType:l,key:(f.current+=1,f.current),onChange:b,searchValue:a?"":p,item:e}))))}return t().createElement("div",{className:"tyk-multiselect__panel"},t().createElement(Qa,{inputgroupaddonleft:t().createElement(g,{type:"search"}),name:"search",onChange:v,placeholder:n,value:p}),i.length?c?t().createElement(At,{refChild:y,hasMore:h>u,loadMore:d,pageNumber:u},w()):w():t().createElement(be,{theme:"info"},o))}dl.propTypes={customSearch:r().bool,onCustomSearch:r().func,panelType:r().string,onChange:r().func,items:r().instanceOf(Array),itemsPageNumber:r().number,itemsNrPages:r().number,inputPlaceholder:r().string,loadMoreItems:r().func,noItemsMessage:r().string,serverLoad:r().bool};const pl=dl;var gl=Object.defineProperty,ml=Object.defineProperties,fl=Object.getOwnPropertyDescriptors,yl=Object.getOwnPropertySymbols,vl=Object.prototype.hasOwnProperty,bl=Object.prototype.propertyIsEnumerable,wl=(e,t,n)=>t in e?gl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const xl=(e,t)=>t.filter((t=>!e.find((e=>e.id===t.id))));function kl({customSearch:n,entityNamePlural:o,disabled:i,error:r,getItemDetails:s,itemDisplayTemplate:a,detailsDisplayTemplate:l,fieldsToSearchOn:c,items:u,itemsPageNumber:h,itemsNrPages:d,loadMoreItems:p,maxSelections:g,note:m,value:f,onChange:y,wrapperClassName:v=""}){const[b,w]=(0,e.useState)({}),x=(0,e.useCallback)((e=>{w((t=>{return n=((e,t)=>{for(var n in t||(t={}))vl.call(t,n)&&wl(e,n,t[n]);if(yl)for(var n of yl(t))bl.call(t,n)&&wl(e,n,t[n]);return e})({},t),o={[e.id]:!t[e.id]},ml(n,fl(o));var n,o})),s&&s(e)}),[s]),k=(0,e.useCallback)((()=>[v,"tyk-multiselect",r&&"has-error"].filter(Boolean).join(" ")),[v,r]),C=(0,e.useCallback)(((e,t)=>{const n=structuredClone(f);n.unshift(t),y(n,t,"added")}),[f]),$=(0,e.useCallback)(((e,t)=>{y(e,t,"removed")}),[u]),S=(0,e.useMemo)((()=>({disabled:i,itemDisplayTemplate:a,detailsDisplayTemplate:l,fieldsToSearchOn:c,maxSelections:g,nrSelectedItems:f.length,onGetItemDetails:x,opened:b})),[i,a,l,c,g,f,x,b]);return t().createElement(t().Fragment,null,t().createElement("div",{className:k()},t().createElement(cl.Provider,{value:S},t().createElement("div",{className:"tyk-multiselect__header"},t().createElement("div",null,f.length," ","Selected"," ",o),t().createElement("div",null,"Select from existing",o)),t().createElement("div",{className:"tyk-multiselect__panel-wrapper"},t().createElement(pl,{inputPlaceholder:`Search through selected ${o}`,noItemsMessage:`Selected ${o} will show here`,items:f,onChange:$,panelType:"selected"}),t().createElement(pl,{inputPlaceholder:`Search existing ${o}`,noItemsMessage:`No ${o} to display`,entityNamePlural:o,customSearch:!!n,onCustomSearch:n,items:xl(f,u),onChange:C,serverLoad:!!p,loadMoreItems:p,itemsPageNumber:h,itemsNrPages:d,panelType:"normal"})))),t().createElement("div",null,m?t().createElement("p",{className:"tyk-form-control__help-block"},m):null),r&&"true"!==r&&"false"!==r?t().createElement("p",{className:"tyk-form-control__error-message"},r):null)}kl.propTypes={customSearch:r().func,disabled:r().bool,error:r().string,entityNamePlural:r().string,items:r().instanceOf(Array),itemDisplayTemplate:r().func,detailsDisplayTemplate:r().func,fieldsToSearchOn:r().instanceOf(Array),onChange:r().func,getItemDetails:r().func,itemsPageNumber:r().number,itemsNrPages:r().number,loadMoreItems:r().func,note:r().string,maxSelections:r().number,value:r().instanceOf(Array),wrapperClassName:r().string};const Cl=kl;var $l=Object.defineProperty,Sl=Object.defineProperties,El=Object.getOwnPropertyDescriptors,Ol=Object.getOwnPropertySymbols,Tl=Object.prototype.hasOwnProperty,Al=Object.prototype.propertyIsEnumerable,_l=(e,t,n)=>t in e?$l(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ll=(e,t)=>{for(var n in t||(t={}))Tl.call(t,n)&&_l(e,n,t[n]);if(Ol)for(var n of Ol(t))Al.call(t,n)&&_l(e,n,t[n]);return e};function Ml(e){var n=e,{label:o,input:i,note:r,inline:s,nospace:a,theme:l="",disabled:c,readOnly:u,wrapperClassName:h=""}=n,d=((e,t)=>{var n={};for(var o in e)Tl.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ol)for(var o of Ol(e))t.indexOf(o)<0&&Al.call(e,o)&&(n[o]=e[o]);return n})(n,["label","input","note","inline","nospace","theme","disabled","readOnly","wrapperClassName"]);const p=[s?"tyk-radio--inline":"tyk-radio",h,a&&"no-margin",...l?l.split(" ").filter(Boolean).map((e=>`tyk-radio--theme-${e}`)):[],(u||c)&&"tyk-radio--is-disabled"].filter(Boolean).join(" ");return t().createElement("div",{className:p},t().createElement("label",null,t().createElement("input",(g=Ll(Ll({},i),d),Sl(g,El({type:"radio",disabled:u||c})))),o),r&&t().createElement("p",{className:"tyk-form-control__help-block"},r));var g}Ml.propTypes={disabled:r().bool,readOnly:r().bool,inline:r().bool,theme:r().string,input:r().instanceOf(Object),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),name:r().string,nospace:r().bool,value:r().string,note:r().oneOfType([r().string,r().element,r().node]),wrapperClassName:r().string};const Rl=Ml;var Nl=Object.defineProperty,Il=Object.defineProperties,Pl=Object.getOwnPropertyDescriptors,Dl=Object.getOwnPropertySymbols,Fl=Object.prototype.hasOwnProperty,Bl=Object.prototype.propertyIsEnumerable,Wl=(e,t,n)=>t in e?Nl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Hl(n){const o=n,{value:i,onChange:r,onBlur:s,isfield:a,label:l,labelwidth:c,id:u,note:h,readOnly:d,options:p,error:g,theme:m,wrapperClassName:f=""}=o,y=((e,t)=>{var n={};for(var o in e)Fl.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Dl)for(var o of Dl(e))t.indexOf(o)<0&&Bl.call(e,o)&&(n[o]=e[o]);return n})(o,["value","onChange","onBlur","isfield","label","labelwidth","id","note","readOnly","options","error","theme","wrapperClassName"]),[v,b]=(0,e.useState)(i);(0,e.useEffect)((()=>{a||v===i||(b(i),r&&r(i))}),[v,i]);const w=(0,e.useCallback)((e=>{const t=p.find((t=>t.id===e.target.value));a||b(t),r(t.id?t:null)}),[p,a,r]),x=(0,e.useCallback)((()=>{s&&s(i)}),[s]),k=(0,e.useCallback)((()=>g&&"true"!==g&&"false"!==g?t().createElement("p",{className:"tyk-form-control__error-message"},g):null),[g]),C=(0,e.useCallback)((()=>["tyk-form-group",f,...m?m.split(" ").map((e=>`tyk-form-group--${e}`)):[],c&&"tyk-form-group--label-has-width",g&&"has-error"].filter(Boolean).join(" ")),[f,m,c,g]),$=(0,e.useCallback)((()=>c?{flexBasis:c}:{}),[c]),S=(0,e.useCallback)((()=>c?{flexBasis:`calc(100% - ${c} - 20px)`}:{}),[c]),E=(0,e.useCallback)((()=>{const e=a&&i?i:v;return t().createElement("select",(n=((e,t)=>{for(var n in t||(t={}))Fl.call(t,n)&&Wl(e,n,t[n]);if(Dl)for(var n of Dl(t))Bl.call(t,n)&&Wl(e,n,t[n]);return e})({className:"tyk-form-control tyk-select"},y),o={onChange:w,onBlur:x,value:e?e.id:""},Il(n,Pl(o))),p.map((e=>t().createElement("option",{key:e.id,value:e.id},e.name))));var n,o}),[a,i,v,w,x,p,y]);return t().createElement("div",{className:C()},l?t().createElement("label",{htmlFor:u,style:$()},l):null,!d&&t().createElement("div",{className:"tyk-form-control__wrapper",style:S()},E(),h?t().createElement("p",{className:"tyk-form-control__help-block"},h):null,k()),d&&t().createElement("div",{className:"tyk-form-control--readonly"},i||"-"))}Hl.propTypes={disabled:r().bool,readOnly:r().bool,id:r().string,isfield:r().bool,error:r().oneOfType([r().string,r().bool]),options:r().instanceOf(Array),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,name:r().string,note:r().string,onBlur:r().func,onChange:r().func,placeholder:r().string,theme:r().string,value:r().oneOfType([r().string,r().object]),wrapperClassName:r().string};const jl=Hl;var zl=Object.defineProperty,Vl=Object.defineProperties,Ul=Object.getOwnPropertyDescriptors,Gl=Object.getOwnPropertySymbols,Kl=Object.prototype.hasOwnProperty,ql=Object.prototype.propertyIsEnumerable,Yl=(e,t,n)=>t in e?zl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Jl(e){const{checkboxalticon:n,items:o,itemTemplate:i,value:r,noItemsMessage:s="No items in the list",onChange:a,theme:l,primaryKey:c,wrapperClassName:u=""}=e,h=e=>{const t=structuredClone(r),n=t.findIndex((t=>JSON.stringify(t)===JSON.stringify(Array.isArray(t)?e.target.value.split(","):e.target.value)));if(e.target.checked&&-1===n){const n=e.target.value.split(","),o=n.length>1?n:e.target.value;t.push(o)}else!e.target.checked&&n>-1&&t.splice(n,1);a&&a(t)},d=e=>{const t=[];return n&&t.push("tyk-selectable-list__item--with-icon"),e&&t.push("tyk-selectable-list__item--active"),t.join(" ")};return t().createElement(jt,(p=((e,t)=>{for(var n in t||(t={}))Kl.call(t,n)&&Yl(e,n,t[n]);if(Gl)for(var n of Gl(t))ql.call(t,n)&&Yl(e,n,t[n]);return e})({},e),Vl(p,Ul({theme:l||"default",className:`tyk-selectable-list ${u}`}))),o.length?o.map(((e,o)=>{return t().createElement(jt.Item,{key:o,className:d(r.includes(e[c]))},t().createElement("label",null,t().createElement("div",{className:"tyk-selectable-list__item"},i?i(e):e.name),t().createElement("input",{type:"checkbox",checked:(s=r,a=e[c],Boolean(s.find((e=>JSON.stringify(a)===JSON.stringify(e))))),onChange:h.bind(e),value:e[c]}),n?t().createElement(g,{type:n}):null));var s,a})):t().createElement("li",{className:"tyk-selectable-list__no-items-message"},t().createElement(be,{theme:"info"},s)));var p}Jl.propTypes={items:r().instanceOf(Array),itemTemplate:r().oneOfType([r().node,r().element,r().string,r().func]),value:r().instanceOf(Array),onChange:r().func,primaryKey:r().string,noItemsMessage:r().string,checkboxalticon:r().oneOfType([r().node,r().element,r().string]),theme:r().string,wrapperClassName:r().string},Jl.defaultProps={items:[],primaryKey:"id",value:[]};const Xl=Jl;var Ql=Object.defineProperty,Zl=Object.getOwnPropertySymbols,ec=Object.prototype.hasOwnProperty,tc=Object.prototype.propertyIsEnumerable,nc=(e,t,n)=>t in e?Ql(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,oc=(e,t)=>{for(var n in t||(t={}))ec.call(t,n)&&nc(e,n,t[n]);if(Zl)for(var n of Zl(t))tc.call(t,n)&&nc(e,n,t[n]);return e};function ic(e){var n=e,{id:o,input:i,label:r,note:s,error:a,theme:l,labelwidth:c,value:u,readOnly:h,wrapperClassName:d}=n,p=((e,t)=>{var n={};for(var o in e)ec.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Zl)for(var o of Zl(e))t.indexOf(o)<0&&tc.call(e,o)&&(n[o]=e[o]);return n})(n,["id","input","label","note","error","theme","labelwidth","value","readOnly","wrapperClassName"]);const g=["tyk-form-group",d,...l?l.split(" ").map((e=>`tyk-form-group--${e}`)):[],c&&"tyk-form-group--label-has-width",a&&"has-error"].filter(Boolean).join(" ");return t().createElement("div",{className:g},r?t().createElement("label",{htmlFor:o,style:c?{flexBasis:c}:{}},r):null,!h&&t().createElement("div",{className:"tyk-form-control__wrapper",style:c?{flexBasis:`calc(100% - ${c} - 20px)`}:{}},t().createElement("textarea",oc(oc({className:"tyk-form-control"},p),i),u),s?t().createElement("p",{className:"tyk-form-control__help-block"},s):null,a&&"true"!==a&&"false"!==a?t().createElement("p",{className:"tyk-form-control__error-message"},a):null),h&&t().createElement("div",{className:"tyk-form-control--readonly"},u||"-"))}ic.propTypes={disabled:r().bool,readOnly:r().bool,input:r().instanceOf(Object),error:r().string,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,name:r().string,note:r().string,onChange:r().func,id:r().string,theme:r().string,value:r().string,wrapperClassName:r().string};const rc=ic,sc=(0,e.createContext)();class ac extends e.Component{static getNotchCssClasses(e){return["tyk-toggle__item-notch",`tyk-toggle__item-notch--${e.type}`].join(" ")}constructor(t){super(t),this.itemRef=(0,e.createRef)()}componentDidMount(){const{context:e,value:t}=this.props;e.value===t&&e.saveSelectedRef(this.itemRef)}componentDidUpdate(e){const{context:t,value:n}=this.props;e.context.value!==t.value&&t.value===n&&t.saveSelectedRef(this.itemRef)}onChange(e){const{context:t,value:n}=this.props,{disabled:o,readOnly:i}=t;o||i||t.onItemSelected("single"===t.type?!t.value:n,e)}render(){const{context:e,label:n,name:o,value:i}=this.props;return t().createElement("li",{className:"tyk-toggle__item "+(!e.value||"single"!==e.type&&e.value!==i?"":"tyk-toggle__item--active"),ref:this.itemRef},t().createElement("label",null,t().createElement("input",{type:"single"===e.type?"checkbox":"radio",name:o,checked:e.value===i,onChange:this.onChange.bind(this),value:i}),n?t().createElement("span",null,n):t().createElement("span",{className:"empty-toggle"}," "),"single"===e.type?t().createElement("span",{className:ac.getNotchCssClasses(e)}):null))}}ac.propTypes={context:r().instanceOf(Object),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),name:r().string,value:r().string};const lc=ac;var cc=Object.defineProperty,uc=Object.defineProperties,hc=Object.getOwnPropertyDescriptors,dc=Object.getOwnPropertySymbols,pc=Object.prototype.hasOwnProperty,gc=Object.prototype.propertyIsEnumerable,mc=(e,t,n)=>t in e?cc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function fc(e,n){var o=e,{children:i}=o,r=((e,t)=>{var n={};for(var o in e)pc.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&dc)for(var o of dc(e))t.indexOf(o)<0&&gc.call(e,o)&&(n[o]=e[o]);return n})(o,["children"]);return t().createElement(sc.Consumer,null,(e=>{return t().createElement(lc,(o=((e,t)=>{for(var n in t||(t={}))pc.call(t,n)&&mc(e,n,t[n]);if(dc)for(var n of dc(t))gc.call(t,n)&&mc(e,n,t[n]);return e})({},r),uc(o,hc({context:e,ref:n}))),i);var o}))}fc.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string])};const yc=(0,e.forwardRef)(fc);function vc({className:n,disabled:o,readOnly:i,size:r,theme:s,direction:a,onDark:l,wrapperClassName:c="",onChange:u,labelwidth:h,label:d,separated:p,children:g,type:m,value:f,error:y}){const[v,b]=(0,e.useState)(null),w=(0,e.useRef)(),x=(0,e.useRef)(),k=[c,n,"tyk-toggle",`tyk-toggle--disabled-${i||o}`,`tyk-toggle--${r||"md"}`,`tyk-toggle--${s}`,`tyk-toggle--${a}`,l&&"tyk-toggle--on-dark"].filter(Boolean).join(" "),C=(0,e.useCallback)(((e,t)=>{u&&u(e,t)}),[u]),$=(0,e.useCallback)((()=>h?{flexBasis:h}:{}),[h]),S=(0,e.useCallback)((()=>{if(!v||p)return{};const e=v.current.offsetWidth;return{left:v.current.getBoundingClientRect().left-x.current.getBoundingClientRect().left+4+"px",width:e-8+"px"}}),[v,p]),E=(0,e.useMemo)((()=>({disabled:o,readOnly:i,onItemSelected:C,saveSelectedRef:b,separated:p,type:m,value:f})),[o,i,C,p,m,f]);return t().createElement(t().Fragment,null,t().createElement("div",{className:k,ref:x},t().createElement(sc.Provider,{value:E},d?t().createElement("label",{className:"tyk-toggle__label",style:$()},d):null,t().createElement("ul",{className:`tyk-toggle__list tyk-toggle__list--${m} ${y&&"tyk-toggle__list--has-error"} tyk-toggle__list--${p?"separated":"not-separated"}`},g,"multiple"!==m||p?null:t().createElement("li",{className:"tyk-toggle__notch",ref:w,style:S()})))),y&&t().createElement("p",{className:"tyk-form-control__error-message"},y))}vc.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,disabled:r().bool,readOnly:r().bool,error:r().string,onChange:r().func,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,theme:r().string,type:r().string,size:r().string,separated:r().bool,direction:r().string,value:r().oneOfType([r().bool,r().string]),onDark:r().bool,wrapperClassName:r().string},vc.defaultProps={separated:!1,theme:"primary",type:"single",direction:"row"},vc.Item=yc;const bc=vc,wc={FORM_DEBOUNCE:200};function xc(e,t){wc[e]=t}const kc=wc;var Cc=Object.defineProperty,$c=Object.defineProperties,Sc=Object.getOwnPropertyDescriptors,Ec=Object.getOwnPropertySymbols,Oc=Object.prototype.hasOwnProperty,Tc=Object.prototype.propertyIsEnumerable,Ac=(e,t,n)=>t in e?Cc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,_c=(e,t)=>{for(var n in t||(t={}))Oc.call(t,n)&&Ac(e,n,t[n]);if(Ec)for(var n of Ec(t))Tc.call(t,n)&&Ac(e,n,t[n]);return e},Lc=(e,t)=>$c(e,Sc(t));function Mc(e,t){return t.split(/[\][.]/).filter(Boolean).reduce(((e,t)=>e?e[t]:e),e)}const Rc=(n,o)=>i=>{var r,s=i,{field:a,form:l}=s,c=((e,t)=>{var n={};for(var o in e)Oc.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ec)for(var o of Ec(e))t.indexOf(o)<0&&Tc.call(e,o)&&(n[o]=e[o]);return n})(s,["field","form"]);const u="number"==typeof kc.FORM_DEBOUNCE?kc.FORM_DEBOUNCE:200,[h,d]=(0,e.useState)(a.value),p=_c({getOnChangeProps:()=>({}),hasIsFieldProp:!1},o),g=(0,e.useCallback)((()=>{const e=e=>e();return!1===c.debounce||!1===kc.FORM_DEBOUNCE&&!c.debounce?e:function(e,t){let n;return(...o)=>{clearTimeout(n),n=setTimeout(e,t,...o)}}(e,"number"==typeof c.debounce?c.debounce:u)})(),[]),m=e=>{const t=(null==(n=e)?void 0:n.target)?"INPUT"!==n.target.nodeName||"checkbox"!==n.target.type&&"radio"!==n.target.type?n.target.value:n.target.checked:n;var n;const o=p.getOnChangeProps(t,a,l,c),i=o.value||c.value||t;g((()=>{"function"==typeof c.onChange&&c.onChange(i),a.onChange({target:_c({name:a.name,value:i},o)})})),d(i)},f=(Mc(l.touched,a.name)||Boolean(l.submitCount))&&Mc(l.errors,a.name),y="string"==typeof f?f:"";(0,e.useEffect)((()=>{d(a.value)}),[a.value]),(null==(r=l.status)?void 0:r.disabled)&&(c.disabled=!0);const v=_c({},c);return delete v.debounce,Object.hasOwn(v,"className")&&void 0===v.className&&delete v.className,Object.hasOwn(v,"children")&&void 0===v.children&&delete v.children,t().createElement(n,Lc(_c(_c(Lc(_c({},a),{error:y}),p.hasIsFieldProp?{isfield:!0}:{}),v),{checked:"string"==typeof c.value?a.value===c.value:a.value,onChange:m,value:h,input:{value:h,onChange:m}}))},Nc=Rc(Io,{getOnChangeProps:e=>({checked:e})}),Ic=Rc(gr),Pc=Rc(Sr),Dc=Rc(Wr),Fc=Rc(Zr),Bc=Rc(ha,{getOnChangeProps:e=>({value:e||[]})}),Wc=Rc(Na),Hc=Rc(za),jc=Rc(Qa,{hasIsFieldProp:!0}),zc=Rc(ll),Vc=Rc(Cl),Uc=Rc(Rl,{getOnChangeProps:(e,t,n,o)=>({checked:e===o.value,value:o.value})}),Gc=Rc(jl,{hasIsFieldProp:!0}),Kc=Rc(Xl),qc=Rc(rc),Yc=Rc(bc);var Jc=Object.defineProperty,Xc=Object.defineProperties,Qc=Object.getOwnPropertyDescriptors,Zc=Object.getOwnPropertySymbols,eu=Object.prototype.hasOwnProperty,tu=Object.prototype.propertyIsEnumerable,nu=(e,t,n)=>t in e?Jc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ou=(e,t)=>{for(var n in t||(t={}))eu.call(t,n)&&nu(e,n,t[n]);if(Zc)for(var n of Zc(t))tu.call(t,n)&&nu(e,n,t[n]);return e};class iu extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.prop,{onChange:n}=t;n((0,pe.fromJS)(e))}getInputError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=this.props,{input:n}=e,o=((e,t)=>{var n={};for(var o in e)eu.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Zc)for(var o of Zc(e))t.indexOf(o)<0&&tu.call(e,o)&&(n[o]=e[o]);return n})(e,["input"]);return t().createElement(gr,(i=ou(ou({},n),o),r={error:this.getInputError()},Xc(i,Qc(r))));var i,r}}iu.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const ru=iu;var su=Object.defineProperty,au=Object.defineProperties,lu=Object.getOwnPropertyDescriptors,cu=Object.getOwnPropertySymbols,uu=Object.prototype.hasOwnProperty,hu=Object.prototype.propertyIsEnumerable,du=(e,t,n)=>t in e?su(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class pu extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props,{onChange:n}=t;n((0,pe.fromJS)(e))}getComboboxError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=((e,t)=>{var n={};for(var o in e)uu.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&cu)for(var o of cu(e))t.indexOf(o)<0&&hu.call(e,o)&&(n[o]=e[o]);return n})(this.props,[]);return t().createElement(Sr,(n=((e,t)=>{for(var n in t||(t={}))uu.call(t,n)&&du(e,n,t[n]);if(cu)for(var n of cu(t))hu.call(t,n)&&du(e,n,t[n]);return e})({},e),o={onChange:this.handleOnChange,value:e.input.value?e.input.value.toJS():e.input.value,error:this.getComboboxError()},au(n,lu(o))));var n,o}}pu.propTypes={meta:r().instanceOf(Object),input:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const gu=pu;var mu=Object.defineProperty,fu=Object.defineProperties,yu=Object.getOwnPropertyDescriptors,vu=Object.getOwnPropertySymbols,bu=Object.prototype.hasOwnProperty,wu=Object.prototype.propertyIsEnumerable,xu=(e,t,n)=>t in e?mu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class ku extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props,{onChange:n}=t;n((0,pe.fromJS)(e))}render(){const e=this.props,{children:n,input:o}=e,i=((e,t)=>{var n={};for(var o in e)bu.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&vu)for(var o of vu(e))t.indexOf(o)<0&&wu.call(e,o)&&(n[o]=e[o]);return n})(e,["children","input"]);return t().createElement(Oi,(r=((e,t)=>{for(var n in t||(t={}))bu.call(t,n)&&xu(e,n,t[n]);if(vu)for(var n of vu(t))wu.call(t,n)&&xu(e,n,t[n]);return e})({},i),s={onSelect:this.handleOnChange,selectedItem:o.value},fu(r,yu(s))),n);var r,s}}ku.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),input:r().instanceOf(Object)};const Cu=ku;var $u=Object.defineProperty,Su=Object.defineProperties,Eu=Object.getOwnPropertyDescriptors,Ou=Object.getOwnPropertySymbols,Tu=Object.prototype.hasOwnProperty,Au=Object.prototype.propertyIsEnumerable,_u=(e,t,n)=>t in e?$u(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Lu=(e,t)=>{for(var n in t||(t={}))Tu.call(t,n)&&_u(e,n,t[n]);if(Ou)for(var n of Ou(t))Au.call(t,n)&&_u(e,n,t[n]);return e};function Mu(e){const n=e,{input:o}=n,i=((e,t)=>{var n={};for(var o in e)Tu.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ou)for(var o of Ou(e))t.indexOf(o)<0&&Au.call(e,o)&&(n[o]=e[o]);return n})(n,["input"]);return t().createElement(po,(r=Lu(Lu({},o),i),s={onChange:o.onChange,value:o.value?o.value:0},Su(r,Eu(s))));var r,s}Mu.propTypes={input:r().instanceOf(Object)};const Ru=Mu;var Nu=Object.defineProperty,Iu=Object.defineProperties,Pu=Object.getOwnPropertyDescriptors,Du=Object.getOwnPropertySymbols,Fu=Object.prototype.hasOwnProperty,Bu=Object.prototype.propertyIsEnumerable,Wu=(e,t,n)=>t in e?Nu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Hu(e){const{input:n,meta:o,validationmessages:i}=e;return t().createElement(Wr,(r=((e,t)=>{for(var n in t||(t={}))Fu.call(t,n)&&Wu(e,n,t[n]);if(Du)for(var n of Du(t))Bu.call(t,n)&&Wu(e,n,t[n]);return e})({},e),s={onChange:e=>{const{onChange:t}=n;t((0,pe.fromJS)(e))},value:n.value?n.value.toJS():n.value,error:(()=>{const{touched:e,error:t,warning:n}=o;let r=null;return e&&t&&i[t]?r=i[t]:e&&n&&(r="warning"),r})()},Iu(r,Pu(s))));var r,s}Hu.propTypes={meta:r().instanceOf(Object),input:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const ju=Hu;var zu=Object.defineProperty,Vu=Object.defineProperties,Uu=Object.getOwnPropertyDescriptors,Gu=Object.getOwnPropertySymbols,Ku=Object.prototype.hasOwnProperty,qu=Object.prototype.propertyIsEnumerable,Yu=(e,t,n)=>t in e?zu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Ju(e){const n=e,{input:o,meta:i,validationmessages:r}=n,s=((e,t)=>{var n={};for(var o in e)Ku.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Gu)for(var o of Gu(e))t.indexOf(o)<0&&qu.call(e,o)&&(n[o]=e[o]);return n})(n,["input","meta","validationmessages"]);return t().createElement(Zr,(a=((e,t)=>{for(var n in t||(t={}))Ku.call(t,n)&&Yu(e,n,t[n]);if(Gu)for(var n of Gu(t))qu.call(t,n)&&Yu(e,n,t[n]);return e})({},s),l={onChange:e=>{const{onChange:t}=o;t((0,pe.fromJS)(e))},value:o.value?o.value.toJS():o.value,error:(()=>{const{touched:e,error:t}=i;let n=null;return e&&t&&r[t]&&(n=r[t]),n})()},Vu(a,Uu(l))));var a,l}Ju.propTypes={meta:r().instanceOf(Object),input:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const Xu=Ju;var Qu=Object.defineProperty,Zu=Object.defineProperties,eh=Object.getOwnPropertyDescriptors,th=Object.getOwnPropertySymbols,nh=Object.prototype.hasOwnProperty,oh=Object.prototype.propertyIsEnumerable,ih=(e,t,n)=>t in e?Qu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class rh extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props,{onChange:n}=t;n((0,pe.fromJS)(e))}getEditableListError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o}=e;let i=null;return n&&o&&t[o]&&(i=t[o]),i}render(){const e=((e,t)=>{var n={};for(var o in e)nh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&th)for(var o of th(e))t.indexOf(o)<0&&oh.call(e,o)&&(n[o]=e[o]);return n})(this.props,[]);return t().createElement(ha,(n=((e,t)=>{for(var n in t||(t={}))nh.call(t,n)&&ih(e,n,t[n]);if(th)for(var n of th(t))oh.call(t,n)&&ih(e,n,t[n]);return e})({},e),o={onChange:this.handleOnChange,value:e.input.value?e.input.value.toJS():null,error:this.getEditableListError()},Zu(n,eh(o))));var n,o}}rh.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const sh=rh;var ah=Object.defineProperty,lh=Object.defineProperties,ch=Object.getOwnPropertyDescriptors,uh=Object.getOwnPropertySymbols,hh=Object.prototype.hasOwnProperty,dh=Object.prototype.propertyIsEnumerable,ph=(e,t,n)=>t in e?ah(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,gh=(e,t)=>{for(var n in t||(t={}))hh.call(t,n)&&ph(e,n,t[n]);if(uh)for(var n of uh(t))dh.call(t,n)&&ph(e,n,t[n]);return e};class mh extends e.Component{getInputError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=this.props,{input:n}=e,o=((e,t)=>{var n={};for(var o in e)hh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&uh)for(var o of uh(e))t.indexOf(o)<0&&dh.call(e,o)&&(n[o]=e[o]);return n})(e,["input"]);return t().createElement(za,(i=gh(gh({},n),o),r={error:this.getInputError()},lh(i,ch(r))));var i,r}}mh.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const fh=mh;var yh=Object.defineProperty,vh=Object.defineProperties,bh=Object.getOwnPropertyDescriptors,wh=Object.getOwnPropertySymbols,xh=Object.prototype.hasOwnProperty,kh=Object.prototype.propertyIsEnumerable,Ch=(e,t,n)=>t in e?yh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,$h=(e,t)=>{for(var n in t||(t={}))xh.call(t,n)&&Ch(e,n,t[n]);if(wh)for(var n of wh(t))kh.call(t,n)&&Ch(e,n,t[n]);return e};class Sh extends e.Component{getInputError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=this.props,{input:n}=e,o=((e,t)=>{var n={};for(var o in e)xh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&wh)for(var o of wh(e))t.indexOf(o)<0&&kh.call(e,o)&&(n[o]=e[o]);return n})(e,["input"]);return t().createElement(Qa,(i=$h($h({},n),o),r={isfield:!0,error:this.getInputError()},vh(i,bh(r))));var i,r}}Sh.propTypes={meta:r().instanceOf(Object),input:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const Eh=Sh;var Oh=Object.defineProperty,Th=Object.defineProperties,Ah=Object.getOwnPropertyDescriptors,_h=Object.getOwnPropertySymbols,Lh=Object.prototype.hasOwnProperty,Mh=Object.prototype.propertyIsEnumerable,Rh=(e,t,n)=>t in e?Oh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Nh extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props,{onChange:n}=t;n((0,pe.fromJS)(e))}getMultiselectError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=((e,t)=>{var n={};for(var o in e)Lh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&_h)for(var o of _h(e))t.indexOf(o)<0&&Mh.call(e,o)&&(n[o]=e[o]);return n})(this.props,[]);return t().createElement(Cl,(n=((e,t)=>{for(var n in t||(t={}))Lh.call(t,n)&&Rh(e,n,t[n]);if(_h)for(var n of _h(t))Mh.call(t,n)&&Rh(e,n,t[n]);return e})({},e),o={onChange:this.handleOnChange,value:e.input.value?e.input.value.toJS():e.input.value,error:this.getMultiselectError()},Th(n,Ah(o))));var n,o}}Nh.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const Ih=Nh;var Ph=Object.defineProperty,Dh=Object.defineProperties,Fh=Object.getOwnPropertyDescriptors,Bh=Object.getOwnPropertySymbols,Wh=Object.prototype.hasOwnProperty,Hh=Object.prototype.propertyIsEnumerable,jh=(e,t,n)=>t in e?Ph(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,zh=(e,t)=>{for(var n in t||(t={}))Wh.call(t,n)&&jh(e,n,t[n]);if(Bh)for(var n of Bh(t))Hh.call(t,n)&&jh(e,n,t[n]);return e};class Vh extends e.Component{constructor(e){super(e),this.handleEvent=this.handleEvent.bind(this)}handleEvent(e){const{input:t}=this.props,{onChange:n,value:o}=t;n((0,pe.fromJS)(void 0!==e?e:o))}getSelectError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=this.props,{input:n}=e,o=((e,t)=>{var n={};for(var o in e)Wh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Bh)for(var o of Bh(e))t.indexOf(o)<0&&Hh.call(e,o)&&(n[o]=e[o]);return n})(e,["input"]);return t().createElement(jl,(i=zh(zh({},n),o),r={isfield:!0,error:this.getSelectError(),onChange:this.handleEvent,onBlur:this.handleEvent,value:n.value?n.value.toJS():n.value},Dh(i,Fh(r))));var i,r}}Vh.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const Uh=Vh;var Gh=Object.defineProperty,Kh=Object.defineProperties,qh=Object.getOwnPropertyDescriptors,Yh=Object.getOwnPropertySymbols,Jh=Object.prototype.hasOwnProperty,Xh=Object.prototype.propertyIsEnumerable,Qh=(e,t,n)=>t in e?Gh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Zh extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props;t.onChange((0,pe.fromJS)(e))}render(){const e=this.props,{children:n}=e,o=((e,t)=>{var n={};for(var o in e)Jh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Yh)for(var o of Yh(e))t.indexOf(o)<0&&Xh.call(e,o)&&(n[o]=e[o]);return n})(e,["children"]);return t().createElement(Xl,(i=((e,t)=>{for(var n in t||(t={}))Jh.call(t,n)&&Qh(e,n,t[n]);if(Yh)for(var n of Yh(t))Xh.call(t,n)&&Qh(e,n,t[n]);return e})({},o),r={onChange:this.handleOnChange,value:o.input.value?o.input.value.toJS():[]},Kh(i,qh(r))));var i,r}}Zh.propTypes={children:r().oneOfType([r().node]),onChange:r().func,input:r().instanceOf(Object)};const ed=Zh;var td=Object.defineProperty,nd=Object.defineProperties,od=Object.getOwnPropertyDescriptors,id=Object.getOwnPropertySymbols,rd=Object.prototype.hasOwnProperty,sd=Object.prototype.propertyIsEnumerable,ad=(e,t,n)=>t in e?td(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class ld extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props;t.onChange((0,pe.fromJS)(e))}render(){const e=this.props,{children:n}=e,o=((e,t)=>{var n={};for(var o in e)rd.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&id)for(var o of id(e))t.indexOf(o)<0&&sd.call(e,o)&&(n[o]=e[o]);return n})(e,["children"]);return t().createElement(bc,(i=((e,t)=>{for(var n in t||(t={}))rd.call(t,n)&&ad(e,n,t[n]);if(id)for(var n of id(t))sd.call(t,n)&&ad(e,n,t[n]);return e})({},o),r={onChange:this.handleOnChange,value:o.input.value},nd(i,od(r))),n);var i,r}}ld.propTypes={children:r().oneOfType([r().node]),onChange:r().func,input:r().instanceOf(Object)};const cd=ld;function ud(t,n,...o){const i=(0,e.useRef)();(0,e.useEffect)((()=>{i.current=t}),[t]),(0,e.useEffect)((()=>{if(null!=n){const e=setInterval((function(){i.current(...o)}),n);return()=>clearInterval(e)}}),[n])}})(),module.exports=o})(); +(()=>{var e={239:(e,t,n)=>{e=n.nmd(e),function(){var e=function(){return this}();e||"undefined"==typeof window||(e=window);var t=function(e,n,o){"string"==typeof e?(2==arguments.length&&(o=n),t.modules[e]||(t.payloads[e]=o,t.modules[e]=null)):t.original?t.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace())};t.modules={},t.payloads={};var n,o,i=function(e,t,n){if("string"==typeof t){var o=a(e,t);if(null!=o)return n&&n(),o}else if("[object Array]"===Object.prototype.toString.call(t)){for(var i=[],s=0,l=t.length;sn.length)&&(t=n.length),t-=e.length;var o=n.indexOf(e,t);return-1!==o&&o===t})),String.prototype.repeat||o(String.prototype,"repeat",(function(e){for(var t="",n=this;e>0;)1&e&&(t+=n),(e>>=1)&&(n+=n);return t})),String.prototype.includes||o(String.prototype,"includes",(function(e,t){return-1!=this.indexOf(e,t)})),Object.assign||(Object.assign=function(e){if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),n=1;n>>0,o=0|arguments[1],i=o<0?Math.max(n+o,0):Math.min(o,n),r=arguments[2],s=void 0===r?n:0|r,a=s<0?Math.max(n+s,0):Math.min(s,n);i0;)1&t&&(n+=e),(t>>=1)&&(e+=e);return n};var o=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(o,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){for(var t=[],n=0,o=e.length;n65535?2:1}})),ace.define("ace/lib/useragent",["require","exports","module"],(function(e,t,n){"use strict";t.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},t.getOS=function(){return t.isMac?t.OS.MAC:t.isLinux?t.OS.LINUX:t.OS.WINDOWS};var o="object"==typeof navigator?navigator:{},i=(/mac|win|linux/i.exec(o.platform)||["other"])[0].toLowerCase(),r=o.userAgent||"",s=o.appName||"";t.isWin="win"==i,t.isMac="mac"==i,t.isLinux="linux"==i,t.isIE="Microsoft Internet Explorer"==s||s.indexOf("MSAppHost")>=0?parseFloat((r.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((r.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=r.match(/ Gecko\/\d+/),t.isOpera="object"==typeof opera&&"[object Opera]"==Object.prototype.toString.call(window.opera),t.isWebKit=parseFloat(r.split("WebKit/")[1])||void 0,t.isChrome=parseFloat(r.split(" Chrome/")[1])||void 0,t.isSafari=parseFloat(r.split(" Safari/")[1])&&!t.isChrome||void 0,t.isEdge=parseFloat(r.split(" Edge/")[1])||void 0,t.isAIR=r.indexOf("AdobeAIR")>=0,t.isAndroid=r.indexOf("Android")>=0,t.isChromeOS=r.indexOf(" CrOS ")>=0,t.isIOS=/iPad|iPhone|iPod/.test(r)&&!window.MSStream,t.isIOS&&(t.isMac=!0),t.isMobile=t.isIOS||t.isAndroid})),ace.define("ace/lib/dom",["require","exports","module","ace/lib/useragent"],(function(e,t,n){"use strict";var o,i=e("./useragent");t.buildDom=function e(t,n,o){if("string"==typeof t&&t){var i=document.createTextNode(t);return n&&n.appendChild(i),i}if(!Array.isArray(t))return t&&t.appendChild&&n&&n.appendChild(t),t;if("string"!=typeof t[0]||!t[0]){for(var r=[],s=0;s=1.5,i.isChromeOS&&(t.HI_DPI=!1),"undefined"!=typeof document){var l=document.createElement("div");t.HI_DPI&&void 0!==l.style.transform&&(t.HAS_CSS_TRANSFORMS=!0),i.isEdge||void 0===l.style.animationName||(t.HAS_CSS_ANIMATION=!0),l=null}t.HAS_CSS_TRANSFORMS?t.translate=function(e,t,n){e.style.transform="translate("+Math.round(t)+"px, "+Math.round(n)+"px)"}:t.translate=function(e,t,n){e.style.top=Math.round(n)+"px",e.style.left=Math.round(t)+"px"}})),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("./dom");t.get=function(e,t){var n=new XMLHttpRequest;n.open("GET",e,!0),n.onreadystatechange=function(){4===n.readyState&&t(n.responseText)},n.send(null)},t.loadScript=function(e,t){var n=o.getDocumentHead(),i=document.createElement("script");i.src=e,n.appendChild(i),i.onload=i.onreadystatechange=function(e,n){!n&&i.readyState&&"loaded"!=i.readyState&&"complete"!=i.readyState||(i=i.onload=i.onreadystatechange=null,n||t())}},t.qualifyURL=function(e){var t=document.createElement("a");return t.href=e,t.href}})),ace.define("ace/lib/oop",["require","exports","module"],(function(e,t,n){"use strict";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}})),ace.define("ace/lib/event_emitter",["require","exports","module"],(function(e,t,n){"use strict";var o={},i=function(){this.propagationStopped=!0},r=function(){this.defaultPrevented=!0};o._emit=o._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],o=this._defaultHandlers[e];if(n.length||o){"object"==typeof t&&t||(t={}),t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=r),n=n.slice();for(var s=0;s1&&(i=n[n.length-2]);var s=l[t+"Path"];return null==s?s=l.basePath:"/"==o&&(t=o=""),s&&"/"!=s.slice(-1)&&(s+="/"),s+t+o+i+this.get("suffix")},t.setModuleUrl=function(e,t){return l.$moduleUrls[e]=t},t.setLoader=function(e){a=e},t.dynamicModules=Object.create(null),t.$loading={},t.$loaded={},t.loadModule=function(n,o){var r,s;Array.isArray(n)&&(s=n[0],n=n[1]);var l=function(r){if(r&&!t.$loading[n])return o&&o(r);if(t.$loading[n]||(t.$loading[n]=[]),t.$loading[n].push(o),!(t.$loading[n].length>1)){var l=function(){!function(t,n){"ace/theme/textmate"===t||"./theme/textmate"===t?n(0,e("./theme/textmate")):a?a(t,n):console.error("loader is not configured")}(n,(function(e,o){o&&(t.$loaded[n]=o),t._emit("load.module",{name:n,module:o});var i=t.$loading[n];t.$loading[n]=null,i.forEach((function(e){e&&e(o)}))}))};if(!t.get("packaged"))return l();i.loadScript(t.moduleUrl(n,s),l),c()}};if(t.dynamicModules[n])t.dynamicModules[n]().then((function(e){e.default?l(e.default):l(e)}));else{try{r=this.$require(n)}catch(e){}l(r||t.$loaded[n])}},t.$require=function(e){if("function"==typeof n.require)return n.require(e)},t.setModuleLoader=function(e,n){t.dynamicModules[e]=n};var c=function(){l.basePath||l.workerPath||l.modePath||l.themePath||Object.keys(l.$moduleUrls).length||(console.error("Unable to infer path to ace from script src,","use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes","or with webpack use ace/webpack-resolver"),c=function(){})};t.version="1.32.0"})),ace.define("ace/loader_build",["require","exports","module","ace/lib/fixoldbrowsers","ace/config"],(function(e,t,o){"use strict";e("./lib/fixoldbrowsers");var i=e("./config");i.setLoader((function(t,n){e([t],(function(e){n(null,e)}))}));var r=function(){return this||"undefined"!=typeof window&&window}();function s(t){if(r&&r.document){i.set("packaged",t||e.packaged||o.packaged||r.define&&n.amdD.packaged);var s={},a="",l=document.currentScript||document._currentScript,c=l&&l.ownerDocument||document;l&&l.src&&(a=l.src.split(/[?#]/)[0].split("/").slice(0,-1).join("/")||"");for(var u,h=c.getElementsByTagName("script"),d=0;d ["+this.end.row+"/"+this.end.column+"]"},e.prototype.contains=function(e,t){return 0==this.compare(e,t)},e.prototype.compareRange=function(e){var t,n=e.end,o=e.start;return 1==(t=this.compare(n.row,n.column))?1==(t=this.compare(o.row,o.column))?2:0==t?1:0:-1==t?-2:-1==(t=this.compare(o.row,o.column))?-1:1==t?42:0},e.prototype.comparePoint=function(e){return this.compare(e.row,e.column)},e.prototype.containsRange=function(e){return 0==this.comparePoint(e.start)&&0==this.comparePoint(e.end)},e.prototype.intersects=function(e){var t=this.compareRange(e);return-1==t||0==t||1==t},e.prototype.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},e.prototype.isStart=function(e,t){return this.start.row==e&&this.start.column==t},e.prototype.setStart=function(e,t){"object"==typeof e?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},e.prototype.setEnd=function(e,t){"object"==typeof e?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},e.prototype.inside=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)&&!this.isStart(e,t)},e.prototype.insideStart=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)},e.prototype.insideEnd=function(e,t){return 0==this.compare(e,t)&&!this.isStart(e,t)},e.prototype.compare=function(e,t){return this.isMultiLine()||e!==this.start.row?ethis.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0:tthis.end.column?1:0},e.prototype.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},e.prototype.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},e.prototype.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},e.prototype.clipRows=function(t,n){if(this.end.row>n)var o={row:n+1,column:0};else this.end.rown)var i={row:n+1,column:0};else this.start.row1?++h>4&&(h=1):h=1,r.isIE){var s=Math.abs(e.clientX-a)>5||Math.abs(e.clientY-l)>5;c&&!s||(h=1),c&&clearTimeout(c),c=setTimeout((function(){c=null}),n[h-1]||600),1==h&&(a=e.clientX,l=e.clientY)}if(e._clicks=h,o[i]("mousedown",e),h>4)h=0;else if(h>1)return o[i](d[h],e)}Array.isArray(e)||(e=[e]),e.forEach((function(e){u(e,"mousedown",p,s)}))};var d=function(e){return(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)};function p(e,t,n){var o=d(t);if(!r.isMac&&s){if(t.getModifierState&&(t.getModifierState("OS")||t.getModifierState("Win"))&&(o|=8),s.altGr){if(!(3&~o))return;s.altGr=0}if(18===n||17===n){var l="location"in t?t.location:t.keyLocation;17===n&&1===l?1==s[n]&&(a=t.timeStamp):18===n&&3===o&&2===l&&t.timeStamp-a<50&&(s.altGr=!0)}}if(n in i.MODIFIER_KEYS&&(n=-1),o||13!==n||3!==(l="location"in t?t.location:t.keyLocation)||(e(t,o,-n),!t.defaultPrevented)){if(r.isChromeOS&&8&o){if(e(t,o,n),t.defaultPrevented)return;o&=-9}return!!(o||n in i.FUNCTION_KEYS||n in i.PRINTABLE_KEYS)&&e(t,o,n)}}function g(){s=Object.create(null)}if(t.getModifierString=function(e){return i.KEY_MODS[d(e)]},t.addCommandKeyListener=function(e,n,o){if(r.isOldGecko||r.isOpera&&!("KeyboardEvent"in window)){var i=null;u(e,"keydown",(function(e){i=e.keyCode}),o),u(e,"keypress",(function(e){return p(n,e,i)}),o)}else{var a=null;u(e,"keydown",(function(e){s[e.keyCode]=(s[e.keyCode]||0)+1;var t=p(n,e,e.keyCode);return a=e.defaultPrevented,t}),o),u(e,"keypress",(function(e){a&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),a=null)}),o),u(e,"keyup",(function(e){s[e.keyCode]=null}),o),s||(g(),u(window,"focus",g))}},"object"==typeof window&&window.postMessage&&!r.isOldIE){var m=1;t.nextTick=function(e,n){n=n||window;var o="zero-timeout-message-"+m++,i=function(r){r.data==o&&(t.stopPropagation(r),h(n,"message",i),e())};u(n,"message",i),n.postMessage(o,"*")}}t.$idleBlocked=!1,t.onIdle=function(e,n){return setTimeout((function n(){t.$idleBlocked?setTimeout(n,100):e()}),n)},t.$idleBlockId=null,t.blockIdle=function(e){t.$idleBlockId&&clearTimeout(t.$idleBlockId),t.$idleBlocked=!0,t.$idleBlockId=setTimeout((function(){t.$idleBlocked=!1}),e||100)},t.nextFrame="object"==typeof window&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}})),ace.define("ace/clipboard",["require","exports","module"],(function(e,t,n){"use strict";var o;n.exports={lineMode:!1,pasteCancelled:function(){return!!(o&&o>Date.now()-50)||(o=!1)},cancel:function(){o=Date.now()}}})),ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/config","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/clipboard","ace/lib/keys"],(function(e,t,n){"use strict";var o=e("../lib/event"),i=e("../config").nls,r=e("../lib/useragent"),s=e("../lib/dom"),a=e("../lib/lang"),l=e("../clipboard"),c=r.isChrome<18,u=r.isIE,h=r.isChrome>63,d=400,p=e("../lib/keys"),g=p.KEY_MODS,m=r.isIOS,f=m?/\s/:/\n/,y=r.isMobile;t.TextInput=function(e,t){var n=s.createElement("textarea");n.className="ace_text-input",n.setAttribute("wrap","off"),n.setAttribute("autocorrect","off"),n.setAttribute("autocapitalize","off"),n.setAttribute("spellcheck",!1),n.style.opacity="0",e.insertBefore(n,e.firstChild);var v=!1,b=!1,w=!1,x=!1,k="";y||(n.style.fontSize="1px");var C=!1,$=!1,S="",E=0,O=0,T=0,A=Number.MAX_SAFE_INTEGER,_=Number.MIN_SAFE_INTEGER,L=0;try{var M=document.activeElement===n}catch(e){}this.setNumberOfExtraLines=function(e){A=Number.MAX_SAFE_INTEGER,_=Number.MIN_SAFE_INTEGER,L=e<0?0:e},this.setAriaOptions=function(e){if(e.activeDescendant?(n.setAttribute("aria-haspopup","true"),n.setAttribute("aria-autocomplete",e.inline?"both":"list"),n.setAttribute("aria-activedescendant",e.activeDescendant)):(n.setAttribute("aria-haspopup","false"),n.setAttribute("aria-autocomplete","both"),n.removeAttribute("aria-activedescendant")),e.role&&n.setAttribute("role",e.role),e.setLabel&&(n.setAttribute("aria-roledescription",i("editor")),t.session)){var o=t.session.selection.cursor.row;n.setAttribute("aria-label",i("Cursor at row $0",[o+1]))}},this.setAriaOptions({role:"textbox"}),o.addListener(n,"blur",(function(e){$||(t.onBlur(e),M=!1)}),t),o.addListener(n,"focus",(function(e){if(!$){if(M=!0,r.isEdge)try{if(!document.hasFocus())return}catch(e){}t.onFocus(e),r.isEdge?setTimeout(N):N()}}),t),this.$focusScroll=!1,this.focus=function(){if(this.setAriaOptions({setLabel:t.renderer.enableKeyboardAccessibility}),k||h||"browser"==this.$focusScroll)return n.focus({preventScroll:!0});var e=n.style.top;n.style.position="fixed",n.style.top="0px";try{var o=0!=n.getBoundingClientRect().top}catch(e){return}var i=[];if(o)for(var r=n.parentElement;r&&1==r.nodeType;)i.push(r),r.setAttribute("ace_nocontext",!0),r=!r.parentElement&&r.getRootNode?r.getRootNode().host:r.parentElement;n.focus({preventScroll:!0}),o&&i.forEach((function(e){e.removeAttribute("ace_nocontext")})),setTimeout((function(){n.style.position="","0px"==n.style.top&&(n.style.top=e)}),0)},this.blur=function(){n.blur()},this.isFocused=function(){return M},t.on("beforeEndOperation",(function(){var e=t.curOp,o=e&&e.command&&e.command.name;if("insertstring"!=o){var i=o&&(e.docChanged||e.selectionChanged);w&&i&&(S=n.value="",U()),N()}}));var R=function(e,n){for(var o=n,i=1;i<=e-A&&i<2*L+1;i++)o+=t.session.getLine(e-i).length+1;return o},N=m?function(e){if(M&&(!v||e)&&!x){e||(e="");var o="\n ab"+e+"cde fg\n";o!=n.value&&(n.value=S=o);var i=4+(e.length||(t.selection.isEmpty()?0:1));4==E&&O==i||n.setSelectionRange(4,i),E=4,O=i}}:function(){if(!w&&!x&&(M||P)){w=!0;var e=0,o=0,i="";if(t.session){var r=t.selection,s=r.getRange(),a=r.cursor.row;a===_+1?_=(A=_+1)+2*L:a===A-1?A=(_=A-1)-2*L:(a_+1)&&(A=a>L?a-L:0,_=a>L?a+L:2*L);for(var l=[],c=A;c<=_;c++)l.push(t.session.getLine(c));if(i=l.join("\n"),e=R(s.start.row,s.start.column),o=R(s.end.row,s.end.column),s.start.row_){var h=t.session.getLine(_+1);o=s.end.row>_+1?h.length:s.end.column,o+=i.length+1,i=i+"\n"+h}else y&&a>0&&(i="\n"+i,o+=1,e+=1);i.length>d&&(e0&&S[d]==e[d];)d++,a--;for(c=c.slice(d),d=1;l>0&&S.length-d>E-1&&S[S.length-d]==e[e.length-d];)d++,l--;u-=d-1,h-=d-1;var p=c.length-d+1;if(p<0&&(a=-p,p=0),c=c.slice(0,p),!(o||c||u||a||l||h))return"";x=!0;var g=!1;return r.isAndroid&&". "==c&&(c=" ",g=!0),c&&!a&&!l&&!u&&!h||C?t.onTextInput(c):t.onTextInput(c,{extendLeft:a,extendRight:l,restoreStart:u,restoreEnd:h}),x=!1,S=e,E=i,O=s,T=h,g?"\n":c},F=function(e){if(w)return V();if(e&&e.inputType){if("historyUndo"==e.inputType)return t.execCommand("undo");if("historyRedo"==e.inputType)return t.execCommand("redo")}var o=n.value,i=D(o,!0);(o.length>500||f.test(i)||y&&E<1&&E==O)&&N()},B=function(e,t,n){var o=e.clipboardData||window.clipboardData;if(o&&!c){var i=u||n?"Text":"text/plain";try{return t?!1!==o.setData(i,t):o.getData(i)}catch(e){if(!n)return B(e,t,!0)}}},W=function(e,i){var r=t.getCopyText();if(!r)return o.preventDefault(e);B(e,r)?(m&&(N(r),v=r,setTimeout((function(){v=!1}),10)),i?t.onCut():t.onCopy(),o.preventDefault(e)):(v=!0,n.value=r,n.select(),setTimeout((function(){v=!1,N(),i?t.onCut():t.onCopy()})))},H=function(e){W(e,!0)},j=function(e){W(e,!1)},z=function(e){var i=B(e);l.pasteCancelled()||("string"==typeof i?(i&&t.onPaste(i,e),r.isIE&&setTimeout(N),o.preventDefault(e)):(n.value="",b=!0))};o.addCommandKeyListener(n,t.onCommandKey.bind(t),t),o.addListener(n,"select",(function(e){w||(v?v=!1:function(e){return 0===e.selectionStart&&e.selectionEnd>=S.length&&e.value===S&&S&&e.selectionEnd!==O}(n)?(t.selectAll(),N()):y&&n.selectionStart!=E&&N())}),t),o.addListener(n,"input",F,t),o.addListener(n,"cut",H,t),o.addListener(n,"copy",j,t),o.addListener(n,"paste",z,t),"oncut"in n&&"oncopy"in n&&"onpaste"in n||o.addListener(e,"keydown",(function(e){if((!r.isMac||e.metaKey)&&e.ctrlKey)switch(e.keyCode){case 67:j(e);break;case 86:z(e);break;case 88:H(e)}}),t);var V=function(){if(w&&t.onCompositionUpdate&&!t.$readOnly){if(C)return G();if(w.useTextareaForIME)t.onCompositionUpdate(n.value);else{var e=n.value;D(e),w.markerRange&&(w.context&&(w.markerRange.start.column=w.selectionStart=w.context.compositionStartOffset),w.markerRange.end.column=w.markerRange.start.column+O-w.selectionStart+T)}}},U=function(e){t.onCompositionEnd&&!t.$readOnly&&(w=!1,t.onCompositionEnd(),t.off("mousedown",G),e&&F())};function G(){$=!0,n.blur(),n.focus(),$=!1}var K,q=a.delayedCall(V,50).schedule.bind(null,null);function Y(){clearTimeout(K),K=setTimeout((function(){k&&(n.style.cssText=k,k=""),t.renderer.$isMousePressed=!1,t.renderer.$keepTextAreaAtCursor&&t.renderer.$moveTextAreaToCursor()}),0)}o.addListener(n,"compositionstart",(function(e){if(!w&&t.onCompositionStart&&!t.$readOnly&&(w={},!C)){e.data&&(w.useTextareaForIME=!1),setTimeout(V,0),t._signal("compositionStart"),t.on("mousedown",G);var o=t.getSelectionRange();o.end.row=o.start.row,o.end.column=o.start.column,w.markerRange=o,w.selectionStart=E,t.onCompositionStart(w),w.useTextareaForIME?(S=n.value="",E=0,O=0):(n.msGetInputContext&&(w.context=n.msGetInputContext()),n.getInputContext&&(w.context=n.getInputContext()))}}),t),o.addListener(n,"compositionupdate",V,t),o.addListener(n,"keyup",(function(e){27==e.keyCode&&n.value.lengthO&&"\n"==S[r]?s=p.end:oO&&S.slice(0,r).split("\n").length>2?s=p.down:r>O&&" "==S[r-1]?(s=p.right,a=g.option):(r>O||r==O&&O!=E&&o==r)&&(s=p.right),o!==r&&(a|=g.shift),s){if(!t.onCommandKey({},a,s)&&t.commands){s=p.keyCodeToString(s);var l=t.commands.findKeyCommand(a,s);l&&t.execCommand(l)}E=o,O=r,N("")}}};document.addEventListener("selectionchange",r),t.on("destroy",(function(){document.removeEventListener("selectionchange",r)}))}(0,t,n),this.destroy=function(){n.parentElement&&n.parentElement.removeChild(n)}},t.$setUserAgentForTests=function(e,t){y=e,m=t}})),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/useragent"],(function(e,t,n){"use strict";var o=e("../lib/useragent"),i=function(){function e(e){e.$clickSelection=null;var t=e.editor;t.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),t.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),t.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),t.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),t.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e)),["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"].forEach((function(t){e[t]=this[t]}),this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}return e.prototype.onMouseDown=function(e){var t=e.inSelection(),n=e.getDocumentPosition();this.mousedownEvent=e;var i=this.editor,r=e.getButton();return 0!==r?((i.getSelectionRange().isEmpty()||1==r)&&i.selection.moveToPosition(n),void(2==r&&(i.textInput.onContextMenu(e.domEvent),o.isMozilla||e.preventDefault()))):(this.mousedownEvent.time=Date.now(),!t||i.isFocused()||(i.focus(),!this.$focusTimeout||this.$clickSelection||i.inMultiSelectMode)?(this.captureMouse(e),this.startSelect(n,e.domEvent._clicks>1),e.preventDefault()):(this.setState("focusWait"),void this.captureMouse(e)))},e.prototype.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var n=this.editor;this.mousedownEvent&&(this.mousedownEvent.getShiftKey()?n.selection.selectToPosition(e):t||n.selection.moveToPosition(e),t||this.select(),n.setStyle("ace_selecting"),this.setState("select"))},e.prototype.select=function(){var e,t=this.editor,n=t.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var o=this.$clickSelection.comparePoint(n);if(-1==o)e=this.$clickSelection.end;else if(1==o)e=this.$clickSelection.start;else{var i=r(this.$clickSelection,n);n=i.cursor,e=i.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(n),t.renderer.scrollCursorIntoView()},e.prototype.extendSelectionBy=function(e){var t,n=this.editor,o=n.renderer.screenToTextCoordinates(this.x,this.y),i=n.selection[e](o.row,o.column);if(this.$clickSelection){var s=this.$clickSelection.comparePoint(i.start),a=this.$clickSelection.comparePoint(i.end);if(-1==s&&a<=0)t=this.$clickSelection.end,i.end.row==o.row&&i.end.column==o.column||(o=i.start);else if(1==a&&s>=0)t=this.$clickSelection.start,i.start.row==o.row&&i.start.column==o.column||(o=i.end);else if(-1==s&&1==a)o=i.end,t=i.start;else{var l=r(this.$clickSelection,o);o=l.cursor,t=l.anchor}n.selection.setSelectionAnchor(t.row,t.column)}n.selection.selectToPosition(o),n.renderer.scrollCursorIntoView()},e.prototype.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting")},e.prototype.focusWait=function(){var e,t,n,o,i=(e=this.mousedownEvent.x,t=this.mousedownEvent.y,n=this.x,o=this.y,Math.sqrt(Math.pow(n-e,2)+Math.pow(o-t,2))),r=Date.now();(i>0||r-this.mousedownEvent.time>this.$focusTimeout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},e.prototype.onDoubleClick=function(e){var t=e.getDocumentPosition(),n=this.editor,o=n.session.getBracketRange(t);o?(o.isEmpty()&&(o.start.column--,o.end.column++),this.setState("select")):(o=n.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=o,this.select()},e.prototype.onTripleClick=function(e){var t=e.getDocumentPosition(),n=this.editor;this.setState("selectByLines");var o=n.getSelectionRange();o.isMultiLine()&&o.contains(t.row,t.column)?(this.$clickSelection=n.selection.getLineRange(o.start.row),this.$clickSelection.end=n.selection.getLineRange(o.end.row).end):this.$clickSelection=n.selection.getLineRange(t.row),this.select()},e.prototype.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},e.prototype.onMouseWheel=function(e){if(!e.getAccelKey()){e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var n=this.$lastScroll,o=e.domEvent.timeStamp,i=o-n.t,r=i?e.wheelX/i:n.vx,s=i?e.wheelY/i:n.vy;i<550&&(r=(r+n.vx)/2,s=(s+n.vy)/2);var a=Math.abs(r/s),l=!1;return a>=1&&t.renderer.isScrollableBy(e.wheelX*e.speed,0)&&(l=!0),a<=1&&t.renderer.isScrollableBy(0,e.wheelY*e.speed)&&(l=!0),l?n.allowed=o:o-n.allowed<550&&(Math.abs(r)<=1.5*Math.abs(n.vx)&&Math.abs(s)<=1.5*Math.abs(n.vy)?(l=!0,n.allowed=o):n.allowed=0),n.t=o,n.vx=r,n.vy=s,l?(t.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()):void 0}},e}();function r(e,t){if(e.start.row==e.end.row)var n=2*t.column-e.start.column-e.end.column;else if(e.start.row!=e.end.row-1||e.start.column||e.end.column)n=2*t.row-e.start.row-e.end.row;else n=t.column-4;return n<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}i.prototype.selectEnd=i.prototype.selectByLinesEnd,i.prototype.selectAllEnd=i.prototype.selectByLinesEnd,i.prototype.selectByWordsEnd=i.prototype.selectByLinesEnd,t.DefaultHandlers=i})),ace.define("ace/tooltip",["require","exports","module","ace/lib/dom","ace/lib/event","ace/range"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=this&&this.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],o=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&o>=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},s=e("./lib/dom"),a=e("./lib/event"),l=e("./range").Range,c="ace_tooltip",u=function(){function e(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}return e.prototype.$init=function(){return this.$element=s.createElement("div"),this.$element.className=c,this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},e.prototype.getElement=function(){return this.$element||this.$init()},e.prototype.setText=function(e){this.getElement().textContent=e},e.prototype.setHtml=function(e){this.getElement().innerHTML=e},e.prototype.setPosition=function(e,t){this.getElement().style.left=e+"px",this.getElement().style.top=t+"px"},e.prototype.setClassName=function(e){s.addCssClass(this.getElement(),e)},e.prototype.setTheme=function(e){this.$element.className=c+" "+(e.isDark?"ace_dark ":"")+(e.cssClass||"")},e.prototype.show=function(e,t,n){null!=e&&this.setText(e),null!=t&&null!=n&&this.setPosition(t,n),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},e.prototype.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.getElement().className=c,this.isOpen=!1)},e.prototype.getHeight=function(){return this.getElement().offsetHeight},e.prototype.getWidth=function(){return this.getElement().offsetWidth},e.prototype.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)},e}(),h=new(function(){function e(){this.popups=[]}return e.prototype.addPopup=function(e){this.popups.push(e),this.updatePopups()},e.prototype.removePopup=function(e){var t=this.popups.indexOf(e);-1!==t&&(this.popups.splice(t,1),this.updatePopups())},e.prototype.updatePopups=function(){var e,t,n,o;this.popups.sort((function(e,t){return t.priority-e.priority}));var i=[];try{for(var s=r(this.popups),a=s.next();!a.done;a=s.next()){var l=a.value,c=!0;try{for(var u=(n=void 0,r(i)),h=u.next();!h.done;h=u.next()){var d=h.value;if(this.doPopupsOverlap(d,l)){c=!1;break}}}catch(e){n={error:e}}finally{try{h&&!h.done&&(o=u.return)&&o.call(u)}finally{if(n)throw n.error}}c?i.push(l):l.hide()}}catch(t){e={error:t}}finally{try{a&&!a.done&&(t=s.return)&&t.call(s)}finally{if(e)throw e.error}}},e.prototype.doPopupsOverlap=function(e,t){var n=e.getElement().getBoundingClientRect(),o=t.getElement().getBoundingClientRect();return n.lefto.left&&n.topo.top},e}());t.popupManager=h,t.Tooltip=u;var d=function(e){function t(t){void 0===t&&(t=document.body);var n=e.call(this,t)||this;n.timeout=void 0,n.lastT=0,n.idleTime=350,n.lastEvent=void 0,n.onMouseOut=n.onMouseOut.bind(n),n.onMouseMove=n.onMouseMove.bind(n),n.waitForHover=n.waitForHover.bind(n),n.hide=n.hide.bind(n);var o=n.getElement();return o.style.whiteSpace="pre-wrap",o.style.pointerEvents="auto",o.addEventListener("mouseout",n.onMouseOut),o.tabIndex=-1,o.addEventListener("blur",function(){o.contains(document.activeElement)||this.hide()}.bind(n)),o.addEventListener("wheel",a.stopPropagation),n}return i(t,e),t.prototype.addToEditor=function(e){e.on("mousemove",this.onMouseMove),e.on("mousedown",this.hide),e.renderer.getMouseEventTarget().addEventListener("mouseout",this.onMouseOut,!0)},t.prototype.removeFromEditor=function(e){e.off("mousemove",this.onMouseMove),e.off("mousedown",this.hide),e.renderer.getMouseEventTarget().removeEventListener("mouseout",this.onMouseOut,!0),this.timeout&&(clearTimeout(this.timeout),this.timeout=null)},t.prototype.onMouseMove=function(e,t){this.lastEvent=e,this.lastT=Date.now();var n=t.$mouseHandler.isMousePressed;if(this.isOpen){var o=this.lastEvent&&this.lastEvent.getDocumentPosition();this.range&&this.range.contains(o.row,o.column)&&!n&&!this.isOutsideOfText(this.lastEvent)||this.hide()}this.timeout||n||(this.lastEvent=e,this.timeout=setTimeout(this.waitForHover,this.idleTime))},t.prototype.waitForHover=function(){this.timeout&&clearTimeout(this.timeout);var e=Date.now()-this.lastT;this.idleTime-e>10?this.timeout=setTimeout(this.waitForHover,this.idleTime-e):(this.timeout=null,this.lastEvent&&!this.isOutsideOfText(this.lastEvent)&&this.$gatherData(this.lastEvent,this.lastEvent.editor))},t.prototype.isOutsideOfText=function(e){var t=e.editor,n=e.getDocumentPosition(),o=t.session.getLine(n.row);if(n.column==o.length){var i=t.renderer.pixelToScreenCoordinates(e.clientX,e.clientY),r=t.session.documentToScreenPosition(n.row,n.column);if(r.column!=i.column||r.row!=i.row)return!0}return!1},t.prototype.setDataProvider=function(e){this.$gatherData=e},t.prototype.showForRange=function(e,t,n,o){if(!(o&&o!=this.lastEvent||this.isOpen&&document.activeElement==this.getElement())){var i=e.renderer;this.isOpen||(h.addPopup(this),this.$registerCloseEvents(),this.setTheme(i.theme)),this.isOpen=!0,this.addMarker(t,e.session),this.range=l.fromPoints(t.start,t.end);var r=i.textToScreenCoordinates(t.start.row,t.start.column),s=i.scroller.getBoundingClientRect();r.pageX=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},s=e("../lib/dom"),a=e("../lib/event"),l=e("../tooltip").Tooltip,c=e("../config").nls;t.GutterHandler=function(e){var t,n,o=e.editor,i=o.renderer.$gutterLayer,r=new u(o);function l(){t&&(t=clearTimeout(t)),r.isOpen&&(r.hideTooltip(),o.off("mousewheel",l))}function c(e){r.setPosition(e.x,e.y)}e.editor.setDefaultHandler("guttermousedown",(function(t){if(o.isFocused()&&0==t.getButton()&&"foldWidgets"!=i.getRegion(t)){var n=t.getDocumentPosition().row,r=o.session.selection;if(t.getShiftKey())r.selectTo(n,0);else{if(2==t.domEvent.detail)return o.selectAll(),t.preventDefault();e.$clickSelection=o.selection.getLineRange(n)}return e.setState("selectByLines"),e.captureMouse(t),t.preventDefault()}})),e.editor.setDefaultHandler("guttermousemove",(function(a){var u=a.domEvent.target||a.domEvent.srcElement;if(s.hasCssClass(u,"ace_fold-widget"))return l();r.isOpen&&e.$tooltipFollowsMouse&&c(a),n=a,t||(t=setTimeout((function(){t=null,n&&!e.isMousePressed?function(){var t=n.getDocumentPosition().row;if(t==o.session.getLength()){var s=o.renderer.pixelToScreenCoordinates(0,n.y).row,a=n.$pos;if(s>o.session.documentToScreenRow(a.row,a.column))return l()}if(r.showTooltip(t),r.isOpen)if(o.on("mousewheel",l),e.$tooltipFollowsMouse)c(n);else{var u=n.getGutterRow(),h=i.$lines.get(u);if(h){var d=h.element.querySelector(".ace_gutter_annotation").getBoundingClientRect(),p=r.getElement().style;p.left=d.right+"px",p.top=d.bottom+"px"}else c(n)}}():l()}),50))})),a.addListener(o.renderer.$gutter,"mouseout",(function(e){n=null,r.isOpen&&!t&&(t=setTimeout((function(){t=null,l()}),50))}),o),o.on("changeSession",l),o.on("input",l)};var u=function(e){function t(t){var n=e.call(this,t.container)||this;return n.editor=t,n}return i(t,e),t.prototype.setPosition=function(e,t){var n=window.innerWidth||document.documentElement.clientWidth,o=window.innerHeight||document.documentElement.clientHeight,i=this.getWidth(),r=this.getHeight();(e+=15)+i>n&&(e-=e+i-n),(t+=15)+r>o&&(t-=20+r),l.prototype.setPosition.call(this,e,t)},Object.defineProperty(t,"annotationLabels",{get:function(){return{error:{singular:c("error"),plural:c("errors")},warning:{singular:c("warning"),plural:c("warnings")},info:{singular:c("information message"),plural:c("information messages")}}},enumerable:!1,configurable:!0}),t.prototype.showTooltip=function(e){var n,o=this.editor.renderer.$gutterLayer,i=o.$annotations[e];n=i?{text:Array.from(i.text),type:Array.from(i.type)}:{text:[],type:[]};var r=o.session.getFoldLine(e);if(r&&o.$showFoldedAnnotations){for(var s,a={error:[],warning:[],info:[]},l=e+1;l<=r.end.row;l++)if(o.$annotations[l])for(var c=0;c ").concat(n.text[l]);d[n.type[l].replace("_fold","")].push(g)}var m=[].concat(d.error,d.warning,d.info).join("
    ");this.setHtml(m),this.$element.setAttribute("aria-live","polite"),this.isOpen||(this.setTheme(this.editor.renderer.theme),this.setClassName("ace_gutter-tooltip")),this.show(),this.editor._signal("showGutterTooltip",this)},t.prototype.hideTooltip=function(){this.$element.removeAttribute("aria-live"),this.hide(),this.editor._signal("hideGutterTooltip",this)},t.annotationsToSummaryString=function(e){var n,o,i=[];try{for(var s=r(["error","warning","info"]),a=s.next();!a.done;a=s.next()){var l=a.value;if(e[l].length){var c=1===e[l].length?t.annotationLabels[l].singular:t.annotationLabels[l].plural;i.push("".concat(e[l].length," ").concat(c))}}}catch(e){n={error:e}}finally{try{a&&!a.done&&(o=s.return)&&o.call(s)}finally{if(n)throw n.error}}return i.join(", ")},t}(l);t.GutterTooltip=u})),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],(function(e,t,n){"use strict";var o=e("../lib/event"),i=e("../lib/useragent"),r=function(){function e(e,t){this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1}return e.prototype.stopPropagation=function(){o.stopPropagation(this.domEvent),this.propagationStopped=!0},e.prototype.preventDefault=function(){o.preventDefault(this.domEvent),this.defaultPrevented=!0},e.prototype.stop=function(){this.stopPropagation(),this.preventDefault()},e.prototype.getDocumentPosition=function(){return this.$pos||(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY)),this.$pos},e.prototype.getGutterRow=function(){var e=this.getDocumentPosition().row;return this.editor.session.documentToScreenRow(e,0)-this.editor.session.documentToScreenRow(this.editor.renderer.$gutterLayer.$lines.get(0).row,0)},e.prototype.inSelection=function(){if(null!==this.$inSelection)return this.$inSelection;var e=this.editor.getSelectionRange();if(e.isEmpty())this.$inSelection=!1;else{var t=this.getDocumentPosition();this.$inSelection=e.contains(t.row,t.column)}return this.$inSelection},e.prototype.getButton=function(){return o.getButton(this.domEvent)},e.prototype.getShiftKey=function(){return this.domEvent.shiftKey},e.prototype.getAccelKey=function(){return i.isMac?this.domEvent.metaKey:this.domEvent.ctrlKey},e}();t.MouseEvent=r})),ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=e("../lib/event"),r=e("../lib/useragent");function s(e){var t=e.editor,n=o.createElement("div");n.style.cssText="top:-100px;position:absolute;z-index:2147483647;opacity:0.5",n.textContent=" ",["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"].forEach((function(t){e[t]=this[t]}),this),t.on("mousedown",this.onMouseDown.bind(e));var s,l,c,u,h,d,p,g,m,f,y,v=t.container,b=0;function w(){var e=d;(function(e,n){var o=Date.now(),i=!n||e.row!=n.row,r=!n||e.column!=n.column;!f||i||r?(t.moveCursorToPosition(e),f=o,y={x:l,y:c}):a(y.x,y.y,l,c)>5?f=null:o-f>=200&&(t.renderer.scrollCursorIntoView(),f=null)})(d=t.renderer.screenToTextCoordinates(l,c),e),function(e,n){var o=Date.now(),i=t.renderer.layerConfig.lineHeight,r=t.renderer.layerConfig.characterWidth,s=t.renderer.scroller.getBoundingClientRect(),a={x:{left:l-s.left,right:s.right-l},y:{top:c-s.top,bottom:s.bottom-c}},u=Math.min(a.x.left,a.x.right),h=Math.min(a.y.top,a.y.bottom),d={row:e.row,column:e.column};u/r<=2&&(d.column+=a.x.left=200&&t.renderer.scrollCursorIntoView(d):m=o:m=null}(d,e)}function x(){h=t.selection.toOrientedRange(),s=t.session.addMarker(h,"ace_selection",t.getSelectionStyle()),t.clearSelection(),t.isFocused()&&t.renderer.$cursorLayer.setBlinking(!1),clearInterval(u),w(),u=setInterval(w,20),b=0,i.addListener(document,"mousemove",$)}function k(){clearInterval(u),t.session.removeMarker(s),s=null,t.selection.fromOrientedRange(h),t.isFocused()&&!g&&t.$resetCursorStyle(),h=null,d=null,b=0,m=null,f=null,i.removeListener(document,"mousemove",$)}this.onDragStart=function(e){if(this.cancelDrag||!v.draggable){var o=this;return setTimeout((function(){o.startSelect(),o.captureMouse(e)}),0),e.preventDefault()}h=t.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=t.getReadOnly()?"copy":"copyMove",t.container.appendChild(n),i.setDragImage&&i.setDragImage(n,0,0),setTimeout((function(){t.container.removeChild(n)})),i.clearData(),i.setData("Text",t.session.getTextRange()),g=!0,this.setState("drag")},this.onDragEnd=function(e){if(v.draggable=!1,g=!1,this.setState(null),!t.getReadOnly()){var n=e.dataTransfer.dropEffect;p||"move"!=n||t.session.remove(t.getSelectionRange()),t.$resetCursorStyle()}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(!t.getReadOnly()&&S(e.dataTransfer))return l=e.clientX,c=e.clientY,s||x(),b++,e.dataTransfer.dropEffect=p=E(e),i.preventDefault(e)},this.onDragOver=function(e){if(!t.getReadOnly()&&S(e.dataTransfer))return l=e.clientX,c=e.clientY,s||(x(),b++),null!==C&&(C=null),e.dataTransfer.dropEffect=p=E(e),i.preventDefault(e)},this.onDragLeave=function(e){if(--b<=0&&s)return k(),p=null,i.preventDefault(e)},this.onDrop=function(e){if(d){var n=e.dataTransfer;if(g)switch(p){case"move":h=h.contains(d.row,d.column)?{start:d,end:d}:t.moveText(h,d);break;case"copy":h=t.moveText(h,d,!0)}else{var o=n.getData("Text");h={start:d,end:t.session.insert(d,o)},t.focus(),p=null}return k(),i.preventDefault(e)}},i.addListener(v,"dragstart",this.onDragStart.bind(e),t),i.addListener(v,"dragend",this.onDragEnd.bind(e),t),i.addListener(v,"dragenter",this.onDragEnter.bind(e),t),i.addListener(v,"dragover",this.onDragOver.bind(e),t),i.addListener(v,"dragleave",this.onDragLeave.bind(e),t),i.addListener(v,"drop",this.onDrop.bind(e),t);var C=null;function $(){null==C&&(C=setTimeout((function(){null!=C&&s&&k()}),20))}function S(e){var t=e.types;return!t||Array.prototype.some.call(t,(function(e){return"text/plain"==e||"Text"==e}))}function E(e){var t=["copy","copymove","all","uninitialized"],n=r.isMac?e.altKey:e.ctrlKey,o="uninitialized";try{o=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var i="none";return n&&t.indexOf(o)>=0?i="copy":["move","copymove","linkmove","all","uninitialized"].indexOf(o)>=0?i="move":t.indexOf(o)>=0&&(i="copy"),i}}function a(e,t,n,o){return Math.sqrt(Math.pow(n-e,2)+Math.pow(o-t,2))}(function(){this.dragWait=function(){Date.now()-this.mousedownEvent.time>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){this.editor.container.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.$resetCursorStyle(),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor;e.container.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var t=r.isWin?"default":"move";e.renderer.setCursorStyle(t),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;r.isIE&&"dragReady"==this.state&&a(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y)>3&&t.dragDrop(),"dragWait"===this.state&&a(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y)>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))},this.onMouseDown=function(e){if(this.$dragEnabled){this.mousedownEvent=e;var t=this.editor,n=e.inSelection(),o=e.getButton();if(1===(e.domEvent.detail||1)&&0===o&&n){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var i=e.domEvent.target||e.domEvent.srcElement;"unselectable"in i&&(i.unselectable="on"),t.getDragDelay()?(r.isWebKit&&(this.cancelDrag=!0,t.container.draggable=!0),this.setState("dragWait")):this.startDrag(),this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}}).call(s.prototype),t.DragdropHandler=s})),ace.define("ace/mouse/touch_handler",["require","exports","module","ace/mouse/mouse_event","ace/lib/event","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("./mouse_event").MouseEvent,i=e("../lib/event"),r=e("../lib/dom");t.addTouchListeners=function(e,t){var n,s,a,l,c,u,h,d,p,g="scroll",m=0,f=0,y=0,v=0;function b(){var e,n,o;p||(e=window.navigator&&window.navigator.clipboard,n=!1,o=function(o){var i,s,a=o.target.getAttribute("action");if("more"==a||!n)return n=!n,i=t.getCopyText(),s=t.session.getUndoManager().hasUndo(),void p.replaceChild(r.buildDom(n?["span",!i&&["span",{class:"ace_mobile-button",action:"selectall"},"Select All"],i&&["span",{class:"ace_mobile-button",action:"copy"},"Copy"],i&&["span",{class:"ace_mobile-button",action:"cut"},"Cut"],e&&["span",{class:"ace_mobile-button",action:"paste"},"Paste"],s&&["span",{class:"ace_mobile-button",action:"undo"},"Undo"],["span",{class:"ace_mobile-button",action:"find"},"Find"],["span",{class:"ace_mobile-button",action:"openCommandPalette"},"Palette"]]:["span"]),p.firstChild);"paste"==a?e.readText().then((function(e){t.execCommand(a,e)})):a&&("cut"!=a&&"copy"!=a||(e?e.writeText(t.getCopyText()):document.execCommand("copy")),t.execCommand(a)),p.firstChild.style.display="none",n=!1,"openCommandPalette"!=a&&t.focus()},p=r.buildDom(["div",{class:"ace_mobile-menu",ontouchstart:function(e){g="menu",e.stopPropagation(),e.preventDefault(),t.textInput.focus()},ontouchend:function(e){e.stopPropagation(),e.preventDefault(),o(e)},onclick:o},["span"],["span",{class:"ace_mobile-button",action:"more"},"..."]],t.container));var i=t.selection.cursor,s=t.renderer.textToScreenCoordinates(i.row,i.column),a=t.renderer.textToScreenCoordinates(0,0).pageX,l=t.renderer.scrollLeft,c=t.container.getBoundingClientRect();p.style.top=s.pageY-c.top-3+"px",s.pageX-c.left1)return clearTimeout(c),c=null,a=-1,void(g="zoom");d=t.$mouseHandler.isMousePressed=!0;var r=t.renderer.layerConfig.lineHeight,u=t.renderer.layerConfig.lineHeight,p=e.timeStamp;l=p;var b=i[0],w=b.clientX,k=b.clientY;Math.abs(n-w)+Math.abs(s-k)>r&&(a=-1),n=e.clientX=w,s=e.clientY=k,y=v=0;var C=new o(e,t);if(h=C.getDocumentPosition(),p-a<500&&1==i.length&&!m)f++,e.preventDefault(),e.button=0,function(){c=null,clearTimeout(c),t.selection.moveToPosition(h);var e=f>=2?t.selection.getLineRange(h.row):t.session.getBracketRange(h);e&&!e.isEmpty()?t.selection.setRange(e):t.selection.selectWord(),g="wait"}();else{f=0;var $=t.selection.cursor,S=t.selection.isEmpty()?$:t.selection.anchor,E=t.renderer.$cursorLayer.getPixelPosition($,!0),O=t.renderer.$cursorLayer.getPixelPosition(S,!0),T=t.renderer.scroller.getBoundingClientRect(),A=t.renderer.layerConfig.offset,_=t.renderer.scrollLeft,L=function(e,t){return(e/=u)*e+(t=t/r-.75)*t};if(e.clientXR?"cursor":"anchor"),g=R<3.5?"anchor":M<3.5?"cursor":"scroll",c=setTimeout(x,450)}a=p}),t),i.addListener(e,"touchend",(function(e){d=t.$mouseHandler.isMousePressed=!1,u&&clearInterval(u),"zoom"==g?(g="",m=0):c?(t.selection.moveToPosition(h),m=0,b()):"scroll"==g?(m+=60,u=setInterval((function(){m--<=0&&(clearInterval(u),u=null),Math.abs(y)<.01&&(y=0),Math.abs(v)<.01&&(v=0),m<20&&(y*=.9),m<20&&(v*=.9);var e=t.session.getScrollTop();t.renderer.scrollBy(10*y,10*v),e==t.session.getScrollTop()&&(m=0)}),10),w()):b(),clearTimeout(c),c=null}),t),i.addListener(e,"touchmove",(function(e){c&&(clearTimeout(c),c=null);var i=e.touches;if(!(i.length>1||"zoom"==g)){var r=i[0],a=n-r.clientX,u=s-r.clientY;if("wait"==g){if(!(a*a+u*u>4))return e.preventDefault();g="cursor"}n=r.clientX,s=r.clientY,e.clientX=r.clientX,e.clientY=r.clientY;var h=e.timeStamp,d=h-l;if(l=h,"scroll"==g){var p=new o(e,t);p.speed=1,p.wheelX=a,p.wheelY=u,10*Math.abs(a)=e){for(r=h+1;r=e;)r++;for(a=h,l=r-1;a=t.length||2!=(l=n[i-1])&&3!=l||2!=(c=t[i+1])&&3!=c?4:(r&&(c=3),c==l?c:4);case 10:return 2==(l=i>0?n[i-1]:5)&&i+10&&2==n[i-1])return 2;if(r)return 4;for(p=i+1,d=t.length;p=1425&&m<=2303||64286==m;if(l=t[p],f&&(1==l||7==l))return 1}return i<1||5==(l=t[i-1])?4:n[i-1];case 5:return r=!1,s=!0,o;case 6:return a=!0,4;case 13:case 14:case 16:case 17:case 15:r=!1;case h:return 4}}function f(e){var t=e.charCodeAt(0),n=t>>8;return 0==n?t>191?0:d[t]:5==n?/[\u0591-\u05f4]/.test(e)?1:0:6==n?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(e)?12:/[\u0660-\u0669\u066b-\u066c]/.test(e)?3:1642==t?u:/[\u06f0-\u06f9]/.test(e)?2:7:32==n&&t<=8287?p[255&t]:254==n&&t>=65136?7:4}t.L=0,t.R=1,t.EN=2,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.RLE=7,t.DOT="·",t.doBidiReorder=function(e,n,u){if(e.length<2)return{};var d=e.split(""),p=new Array(d.length),y=new Array(d.length),v=[];o=u?1:0,function(e,t,n,u){var h=o?c:l,d=null,p=null,g=null,y=0,v=null,b=-1,w=null,x=null,k=[];if(!u)for(w=0,u=[];w0)if(16==v){for(w=b;w-1){for(w=b;w=0&&8==u[C];C--)t[C]=o}}(d,v,d.length,n);for(var b=0;b7&&n[b]<13||4===n[b]||n[b]===h)?v[b]=t.ON_R:b>0&&"ل"===d[b-1]&&/\u0622|\u0623|\u0625|\u0627/.test(d[b])&&(v[b-1]=v[b]=t.R_H,b++);for(d[d.length-1]===t.DOT&&(v[d.length-1]=t.B),"‫"===d[0]&&(v[0]=t.RLE),b=0;b=0&&(e=this.session.$docRowCache[n])}return e},e.prototype.getSplitIndex=function(){var e=0,t=this.session.$screenRowCache;if(t.length)for(var n,o=this.session.$getRowCacheIndex(t,this.currentRow);this.currentRow-e>0&&(n=this.session.$getRowCacheIndex(t,this.currentRow-e-1))===o;)o=n,e++;else e=this.currentRow;return e},e.prototype.updateRowLine=function(e,t){void 0===e&&(e=this.getDocumentRow());var n=e===this.session.getLength()-1?this.EOF:this.EOL;if(this.wrapIndent=0,this.line=this.session.getLine(e),this.isRtlDir=this.$isRtl||this.line.charAt(0)===this.RLE,this.session.$useWrapMode){var r=this.session.$wrapData[e];r&&(void 0===t&&(t=this.getSplitIndex()),t>0&&r.length?(this.wrapIndent=r.indent,this.wrapOffset=this.wrapIndent*this.charWidths[o.L],this.line=tt?this.session.getOverwrite()?e:e-1:t,i=o.getVisualFromLogicalIdx(n,this.bidiMap),r=this.bidiMap.bidiLevels,s=0;!this.session.getOverwrite()&&e<=t&&r[i]%2!=0&&i++;for(var a=0;at&&r[i]%2==0&&(s+=this.charWidths[r[i]]),this.wrapIndent&&(s+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset),this.isRtlDir&&(s+=this.rtlLineOffset),s},e.prototype.getSelections=function(e,t){var n,o=this.bidiMap,i=o.bidiLevels,r=[],s=0,a=Math.min(e,t)-this.wrapIndent,l=Math.max(e,t)-this.wrapIndent,c=!1,u=!1,h=0;this.wrapIndent&&(s+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset);for(var d,p=0;p=a&&dn+r/2;){if(n+=r,o===i.length-1){r=0;break}r=this.charWidths[i[++o]]}return o>0&&i[o-1]%2!=0&&i[o]%2==0?(e0&&i[o-1]%2==0&&i[o]%2!=0?t=1+(e>n?this.bidiMap.logicalFromVisual[o]:this.bidiMap.logicalFromVisual[o-1]):this.isRtlDir&&o===i.length-1&&0===r&&i[o-1]%2==0||!this.isRtlDir&&0===o&&i[o]%2!=0?t=1+this.bidiMap.logicalFromVisual[o]:(o>0&&i[o-1]%2!=0&&0!==r&&o--,t=this.bidiMap.logicalFromVisual[o]),0===t&&this.isRtlDir&&t++,t+this.wrapIndent},e}();t.BidiHandler=s})),ace.define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],(function(e,t,n){"use strict";var o=e("./lib/oop"),i=e("./lib/lang"),r=e("./lib/event_emitter").EventEmitter,s=e("./range").Range,a=function(){function e(e){this.session=e,this.doc=e.getDocument(),this.clearSelection(),this.cursor=this.lead=this.doc.createAnchor(0,0),this.anchor=this.doc.createAnchor(0,0),this.$silent=!1;var t=this;this.cursor.on("change",(function(e){t.$cursorChanged=!0,t.$silent||t._emit("changeCursor"),t.$isEmpty||t.$silent||t._emit("changeSelection"),t.$keepDesiredColumnOnChange||e.old.column==e.value.column||(t.$desiredColumn=null)})),this.anchor.on("change",(function(){t.$anchorChanged=!0,t.$isEmpty||t.$silent||t._emit("changeSelection")}))}return e.prototype.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},e.prototype.isMultiLine=function(){return!this.$isEmpty&&this.anchor.row!=this.cursor.row},e.prototype.getCursor=function(){return this.lead.getPosition()},e.prototype.setAnchor=function(e,t){this.$isEmpty=!1,this.anchor.setPosition(e,t)},e.prototype.getAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},e.prototype.getSelectionLead=function(){return this.lead.getPosition()},e.prototype.isBackwards=function(){var e=this.anchor,t=this.lead;return e.row>t.row||e.row==t.row&&e.column>t.column},e.prototype.getRange=function(){var e=this.anchor,t=this.lead;return this.$isEmpty?s.fromPoints(t,t):this.isBackwards()?s.fromPoints(t,e):s.fromPoints(e,t)},e.prototype.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},e.prototype.selectAll=function(){this.$setSelection(0,0,Number.MAX_VALUE,Number.MAX_VALUE)},e.prototype.setRange=function(e,t){var n=t?e.end:e.start,o=t?e.start:e.end;this.$setSelection(n.row,n.column,o.row,o.column)},e.prototype.$setSelection=function(e,t,n,o){if(!this.$silent){var i=this.$isEmpty,r=this.inMultiSelectMode;this.$silent=!0,this.$cursorChanged=this.$anchorChanged=!1,this.anchor.setPosition(e,t),this.cursor.setPosition(n,o),this.$isEmpty=!s.comparePoints(this.anchor,this.cursor),this.$silent=!1,this.$cursorChanged&&this._emit("changeCursor"),(this.$cursorChanged||this.$anchorChanged||i!=this.$isEmpty||r)&&this._emit("changeSelection")}},e.prototype.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},e.prototype.selectTo=function(e,t){this.$moveSelection((function(){this.moveCursorTo(e,t)}))},e.prototype.selectToPosition=function(e){this.$moveSelection((function(){this.moveCursorToPosition(e)}))},e.prototype.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},e.prototype.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},e.prototype.selectUp=function(){this.$moveSelection(this.moveCursorUp)},e.prototype.selectDown=function(){this.$moveSelection(this.moveCursorDown)},e.prototype.selectRight=function(){this.$moveSelection(this.moveCursorRight)},e.prototype.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},e.prototype.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},e.prototype.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},e.prototype.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},e.prototype.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},e.prototype.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},e.prototype.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},e.prototype.getWordRange=function(e,t){if(void 0===t){var n=e||this.lead;e=n.row,t=n.column}return this.session.getWordRange(e,t)},e.prototype.selectWord=function(){this.setSelectionRange(this.getWordRange())},e.prototype.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},e.prototype.getLineRange=function(e,t){var n,o="number"==typeof e?e:this.lead.row,i=this.session.getFoldLine(o);return i?(o=i.start.row,n=i.end.row):n=o,!0===t?new s(o,0,n,this.session.getLine(n).length):new s(o,0,n+1,0)},e.prototype.selectLine=function(){this.setSelectionRange(this.getLineRange())},e.prototype.moveCursorUp=function(){this.moveCursorBy(-1,0)},e.prototype.moveCursorDown=function(){this.moveCursorBy(1,0)},e.prototype.wouldMoveIntoSoftTab=function(e,t,n){var o=e.column,i=e.column+t;return n<0&&(o=e.column-t,i=e.column),this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(o,i).split(" ").length-1==t},e.prototype.moveCursorLeft=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,-1))this.moveCursorTo(e.start.row,e.start.column);else if(0===t.column)t.row>0&&this.moveCursorTo(t.row-1,this.doc.getLine(t.row-1).length);else{var n=this.session.getTabSize();this.wouldMoveIntoSoftTab(t,n,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-n):this.moveCursorBy(0,-1)}},e.prototype.moveCursorRight=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,1))this.moveCursorTo(e.end.row,e.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(t.column=o)}}this.moveCursorTo(t.row,t.column)},e.prototype.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},e.prototype.moveCursorFileStart=function(){this.moveCursorTo(0,0)},e.prototype.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),o=n.substring(t);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var i=this.session.getFoldAt(e,t,1);if(i)this.moveCursorTo(i.end.row,i.end.column);else{if(this.session.nonTokenRe.exec(o)&&(t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,o=n.substring(t)),t>=n.length)return this.moveCursorTo(e,n.length),this.moveCursorRight(),void(e0&&this.moveCursorWordLeft());this.session.tokenRe.exec(r)&&(n-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,n)}},e.prototype.$shortWordEndIndex=function(e){var t,n=0,o=/\s/,i=this.session.tokenRe;if(i.lastIndex=0,this.session.tokenRe.exec(e))n=this.session.tokenRe.lastIndex;else{for(;(t=e[n])&&o.test(t);)n++;if(n<1)for(i.lastIndex=0;(t=e[n])&&!i.test(t);)if(i.lastIndex=0,n++,o.test(t)){if(n>2){n--;break}for(;(t=e[n])&&o.test(t);)n++;if(n>2)break}}return i.lastIndex=0,n},e.prototype.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),o=n.substring(t),i=this.session.getFoldAt(e,t,1);if(i)return this.moveCursorTo(i.end.row,i.end.column);if(t==n.length){var r=this.doc.getLength();do{e++,o=this.doc.getLine(e)}while(e0&&/^\s*$/.test(o));n=o.length,/\s+$/.test(o)||(o="")}var r=i.stringReverse(o),s=this.$shortWordEndIndex(r);return this.moveCursorTo(t,n-s)},e.prototype.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},e.prototype.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},e.prototype.moveCursorBy=function(e,t){var n,o=this.session.documentToScreenPosition(this.lead.row,this.lead.column);if(0===t&&(0!==e&&(this.session.$bidiHandler.isBidiRow(o.row,this.lead.row)?(n=this.session.$bidiHandler.getPosLeft(o.column),o.column=Math.round(n/this.session.$bidiHandler.charWidths[0])):n=o.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?o.column=this.$desiredColumn:this.$desiredColumn=o.column),0!=e&&this.session.lineWidgets&&this.session.lineWidgets[this.lead.row]){var i=this.session.lineWidgets[this.lead.row];e<0?e-=i.rowsAbove||0:e>0&&(e+=i.rowCount-(i.rowsAbove||0))}var r=this.session.screenToDocumentPosition(o.row+e,o.column,n);0!==e&&0===t&&r.row===this.lead.row&&(r.column,this.lead.column),this.moveCursorTo(r.row,r.column+t,0===t)},e.prototype.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},e.prototype.moveCursorTo=function(e,t,n){var o=this.session.getFoldAt(e,t,1);o&&(e=o.start.row,t=o.start.column),this.$keepDesiredColumnOnChange=!0;var i=this.session.getLine(e);/[\uDC00-\uDFFF]/.test(i.charAt(t))&&i.charAt(t-1)&&(this.lead.row==e&&this.lead.column==t+1?t-=1:t+=1),this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,n||(this.$desiredColumn=null)},e.prototype.moveCursorToScreen=function(e,t,n){var o=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(o.row,o.column,n)},e.prototype.detach=function(){this.lead.detach(),this.anchor.detach()},e.prototype.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},e.prototype.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},e.prototype.getRangeOfMovements=function(e){var t=this.getCursor();try{e(this);var n=this.getCursor();return s.fromPoints(t,n)}catch(e){return s.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},e.prototype.toJSON=function(){if(this.rangeCount)var e=this.ranges.map((function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t}));else(e=this.getRange()).isBackwards=this.isBackwards();return e},e.prototype.fromJSON=function(e){if(null==e.start){if(this.rangeList&&e.length>1){this.toSingleRange(e[0]);for(var t=e.length;t--;){var n=s.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(n.cursor=n.start),this.addRange(n,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},e.prototype.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0},e}();a.prototype.setSelectionAnchor=a.prototype.setAnchor,a.prototype.getSelectionAnchor=a.prototype.getAnchor,a.prototype.setSelectionRange=a.prototype.setRange,o.implement(a.prototype,r),t.Selection=a})),ace.define("ace/tokenizer",["require","exports","module","ace/lib/report_error"],(function(e,t,n){"use strict";var o=e("./lib/report_error").reportError,i=2e3,r=function(){function e(e){for(var t in this.states=e,this.regExps={},this.matchMappings={},this.states){for(var n=this.states[t],o=[],i=0,r=this.matchMappings[t]={defaultToken:"text"},s="g",a=[],l=0;l1?this.$applyToken:c.token),h>1&&(/\\\d/.test(c.regex)?u=c.regex.replace(/\\([0-9]+)/g,(function(e,t){return"\\"+(parseInt(t,10)+i+1)})):(h=1,u=this.removeCapturingGroups(c.regex)),c.splitRegex||"string"==typeof c.token||a.push(c)),r[i]=l,i+=h,o.push(u),c.onMatch||(c.onMatch=null)}}o.length||(r[0]=0,o.push("$")),a.forEach((function(e){e.splitRegex=this.createSplitterRegexp(e.regex,s)}),this),this.regExps[t]=new RegExp("("+o.join(")|(")+")|($)",s)}}return e.prototype.$setMaxTokenCount=function(e){i=0|e},e.prototype.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),n=this.token.apply(this,t);if("string"==typeof n)return[{type:n,value:e}];for(var o=[],i=0,r=n.length;iu){var y=e.substring(u,f-m.length);d.type==p?d.value+=y:(d.type&&c.push(d),d={type:p,value:y})}for(var v=0;vi){for(h>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});u1&&n[0]!==o&&n.unshift("#tmp",o),{tokens:c,state:n.length?n:o}},e}();r.prototype.reportError=o,t.Tokenizer=r})),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/deep_copy"],(function(e,t,n){"use strict";var o=e("../lib/deep_copy").deepCopy,i=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(e,t){if(t)for(var n in e){for(var o=e[n],i=0;i=this.$rowTokens.length;){if(this.$row+=1,e||(e=this.$session.getLength()),this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},e.prototype.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},e.prototype.getCurrentTokenRow=function(){return this.$row},e.prototype.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,n=e[t].start;if(void 0!==n)return n;for(n=0;t>0;)n+=e[t-=1].value.length;return n},e.prototype.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},e.prototype.getCurrentTokenRange=function(){var e=this.$rowTokens[this.$tokenIndex],t=this.getCurrentTokenColumn();return new o(this.$row,t,this.$row,t+e.value.length)},e}();t.TokenIterator=i})),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],(function(e,t,n){"use strict";var o,i=e("../../lib/oop"),r=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,a=e("../../lib/lang"),l=["text","paren.rparen","rparen","paren","punctuation.operator"],c=["text","paren.rparen","rparen","paren","punctuation.operator","comment"],u={},h={'"':'"',"'":"'"},d=function(e){var t=-1;if(e.multiSelect&&(t=e.selection.index,u.rangeCount!=e.multiSelect.rangeCount&&(u={rangeCount:e.multiSelect.rangeCount})),u[t])return o=u[t];o=u[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},p=function(e,t,n,o){var i=e.end.row-e.start.row;return{text:n+t+o,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},g=function(e){e=e||{},this.add("braces","insertion",(function(t,n,i,r,s){var l=i.getCursorPosition(),c=r.doc.getLine(l.row);if("{"==s){d(i);var u=i.getSelectionRange(),h=r.doc.getTextRange(u);if(""!==h&&"{"!==h&&i.getWrapBehavioursEnabled())return p(u,h,"{","}");if(g.isSaneInsertion(i,r))return/[\]\}\)]/.test(c[l.column])||i.inMultiSelectMode||e.braces?(g.recordAutoInsert(i,r,"}"),{text:"{}",selection:[1,1]}):(g.recordMaybeInsert(i,r,"{"),{text:"{",selection:[1,1]})}else if("}"==s){if(d(i),"}"==c.substring(l.column,l.column+1)&&null!==r.$findOpeningBracket("}",{column:l.column+1,row:l.row})&&g.isAutoInsertedClosing(l,c,s))return g.popAutoInsertedClosing(),{text:"",selection:[1,1]}}else{if("\n"==s||"\r\n"==s){d(i);var m="";if(g.isMaybeInsertedClosing(l,c)&&(m=a.stringRepeat("}",o.maybeInsertedBrackets),g.clearMaybeInsertedClosing()),"}"===c.substring(l.column,l.column+1)){var f=r.findMatchingBracket({row:l.row,column:l.column+1},"}");if(!f)return null;var y=this.$getIndent(r.getLine(f.row))}else{if(!m)return void g.clearMaybeInsertedClosing();y=this.$getIndent(c)}var v=y+r.getTabString();return{text:"\n"+v+"\n"+y+m,selection:[1,v.length,1,v.length]}}g.clearMaybeInsertedClosing()}})),this.add("braces","deletion",(function(e,t,n,i,r){var s=i.doc.getTextRange(r);if(!r.isMultiLine()&&"{"==s){if(d(n),"}"==i.doc.getLine(r.start.row).substring(r.end.column,r.end.column+1))return r.end.column++,r;o.maybeInsertedBrackets--}})),this.add("parens","insertion",(function(e,t,n,o,i){if("("==i){d(n);var r=n.getSelectionRange(),s=o.doc.getTextRange(r);if(""!==s&&n.getWrapBehavioursEnabled())return p(r,s,"(",")");if(g.isSaneInsertion(n,o))return g.recordAutoInsert(n,o,")"),{text:"()",selection:[1,1]}}else if(")"==i){d(n);var a=n.getCursorPosition(),l=o.doc.getLine(a.row);if(")"==l.substring(a.column,a.column+1)&&null!==o.$findOpeningBracket(")",{column:a.column+1,row:a.row})&&g.isAutoInsertedClosing(a,l,i))return g.popAutoInsertedClosing(),{text:"",selection:[1,1]}}})),this.add("parens","deletion",(function(e,t,n,o,i){var r=o.doc.getTextRange(i);if(!i.isMultiLine()&&"("==r&&(d(n),")"==o.doc.getLine(i.start.row).substring(i.start.column+1,i.start.column+2)))return i.end.column++,i})),this.add("brackets","insertion",(function(e,t,n,o,i){if("["==i){d(n);var r=n.getSelectionRange(),s=o.doc.getTextRange(r);if(""!==s&&n.getWrapBehavioursEnabled())return p(r,s,"[","]");if(g.isSaneInsertion(n,o))return g.recordAutoInsert(n,o,"]"),{text:"[]",selection:[1,1]}}else if("]"==i){d(n);var a=n.getCursorPosition(),l=o.doc.getLine(a.row);if("]"==l.substring(a.column,a.column+1)&&null!==o.$findOpeningBracket("]",{column:a.column+1,row:a.row})&&g.isAutoInsertedClosing(a,l,i))return g.popAutoInsertedClosing(),{text:"",selection:[1,1]}}})),this.add("brackets","deletion",(function(e,t,n,o,i){var r=o.doc.getTextRange(i);if(!i.isMultiLine()&&"["==r&&(d(n),"]"==o.doc.getLine(i.start.row).substring(i.start.column+1,i.start.column+2)))return i.end.column++,i})),this.add("string_dquotes","insertion",(function(e,t,n,o,i){var r=o.$mode.$quotes||h;if(1==i.length&&r[i]){if(this.lineCommentStart&&-1!=this.lineCommentStart.indexOf(i))return;d(n);var s=i,a=n.getSelectionRange(),l=o.doc.getTextRange(a);if(!(""===l||1==l.length&&r[l])&&n.getWrapBehavioursEnabled())return p(a,l,s,s);if(!l){var c=n.getCursorPosition(),u=o.doc.getLine(c.row),g=u.substring(c.column-1,c.column),m=u.substring(c.column,c.column+1),f=o.getTokenAt(c.row,c.column),y=o.getTokenAt(c.row,c.column+1);if("\\"==g&&f&&/escape/.test(f.type))return null;var v,b=f&&/string|escape/.test(f.type),w=!y||/string|escape/.test(y.type);if(m==s)(v=b!==w)&&/string\.end/.test(y.type)&&(v=!1);else{if(b&&!w)return null;if(b&&w)return null;var x=o.$mode.tokenRe;x.lastIndex=0;var k=x.test(g);x.lastIndex=0;var C=x.test(m),$=o.$mode.$pairQuotesAfter;if(!($&&$[s]&&$[s].test(g))&&k||C)return null;if(m&&!/[\s;,.})\]\\]/.test(m))return null;var S=u[c.column-2];if(g==s&&(S==s||x.test(S)))return null;v=!0}return{text:v?s+s:"",selection:[1,1]}}}})),this.add("string_dquotes","deletion",(function(e,t,n,o,i){var r=o.$mode.$quotes||h,s=o.doc.getTextRange(i);if(!i.isMultiLine()&&r.hasOwnProperty(s)&&(d(n),o.doc.getLine(i.start.row).substring(i.start.column+1,i.start.column+2)==s))return i.end.column++,i})),!1!==e.closeDocComment&&this.add("doc comment end","insertion",(function(e,t,n,o,i){if("doc-start"===e&&("\n"===i||"\r\n"===i)&&n.selection.isEmpty()){var r=n.getCursorPosition(),s=o.doc.getLine(r.row),a=o.doc.getLine(r.row+1),l=this.$getIndent(s);if(/\s*\*/.test(a))return/^\s*\*/.test(s)?{text:i+l+"* ",selection:[1,3+l.length,1,3+l.length]}:{text:i+l+" * ",selection:[1,3+l.length,1,3+l.length]};if(/\/\*\*/.test(s.substring(0,r.column)))return{text:i+l+" * "+i+" "+l+"*/",selection:[1,4+l.length,1,4+l.length]}}}))};g.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),o=new s(t,n.row,n.column);if(!this.$matchTokenType(o.getCurrentToken()||"text",l)){if(/[)}\]]/.test(e.session.getLine(n.row)[n.column]))return!0;var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",l))return!1}return o.stepForward(),o.getCurrentTokenRow()!==n.row||this.$matchTokenType(o.getCurrentToken()||"text",c)},g.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},g.recordAutoInsert=function(e,t,n){var i=e.getCursorPosition(),r=t.doc.getLine(i.row);this.isAutoInsertedClosing(i,r,o.autoInsertedLineEnd[0])||(o.autoInsertedBrackets=0),o.autoInsertedRow=i.row,o.autoInsertedLineEnd=n+r.substr(i.column),o.autoInsertedBrackets++},g.recordMaybeInsert=function(e,t,n){var i=e.getCursorPosition(),r=t.doc.getLine(i.row);this.isMaybeInsertedClosing(i,r)||(o.maybeInsertedBrackets=0),o.maybeInsertedRow=i.row,o.maybeInsertedLineStart=r.substr(0,i.column)+n,o.maybeInsertedLineEnd=r.substr(i.column),o.maybeInsertedBrackets++},g.isAutoInsertedClosing=function(e,t,n){return o.autoInsertedBrackets>0&&e.row===o.autoInsertedRow&&n===o.autoInsertedLineEnd[0]&&t.substr(e.column)===o.autoInsertedLineEnd},g.isMaybeInsertedClosing=function(e,t){return o.maybeInsertedBrackets>0&&e.row===o.maybeInsertedRow&&t.substr(e.column)===o.maybeInsertedLineEnd&&t.substr(0,e.column)==o.maybeInsertedLineStart},g.popAutoInsertedClosing=function(){o.autoInsertedLineEnd=o.autoInsertedLineEnd.substr(1),o.autoInsertedBrackets--},g.clearMaybeInsertedClosing=function(){o&&(o.maybeInsertedBrackets=0,o.maybeInsertedRow=-1)},i.inherits(g,r),t.CstyleBehaviour=g})),ace.define("ace/unicode",["require","exports","module"],(function(e,t,n){"use strict";for(var o=[48,9,8,25,5,0,2,25,48,0,11,0,5,0,6,22,2,30,2,457,5,11,15,4,8,0,2,0,18,116,2,1,3,3,9,0,2,2,2,0,2,19,2,82,2,138,2,4,3,155,12,37,3,0,8,38,10,44,2,0,2,1,2,1,2,0,9,26,6,2,30,10,7,61,2,9,5,101,2,7,3,9,2,18,3,0,17,58,3,100,15,53,5,0,6,45,211,57,3,18,2,5,3,11,3,9,2,1,7,6,2,2,2,7,3,1,3,21,2,6,2,0,4,3,3,8,3,1,3,3,9,0,5,1,2,4,3,11,16,2,2,5,5,1,3,21,2,6,2,1,2,1,2,1,3,0,2,4,5,1,3,2,4,0,8,3,2,0,8,15,12,2,2,8,2,2,2,21,2,6,2,1,2,4,3,9,2,2,2,2,3,0,16,3,3,9,18,2,2,7,3,1,3,21,2,6,2,1,2,4,3,8,3,1,3,2,9,1,5,1,2,4,3,9,2,0,17,1,2,5,4,2,2,3,4,1,2,0,2,1,4,1,4,2,4,11,5,4,4,2,2,3,3,0,7,0,15,9,18,2,2,7,2,2,2,22,2,9,2,4,4,7,2,2,2,3,8,1,2,1,7,3,3,9,19,1,2,7,2,2,2,22,2,9,2,4,3,8,2,2,2,3,8,1,8,0,2,3,3,9,19,1,2,7,2,2,2,22,2,15,4,7,2,2,2,3,10,0,9,3,3,9,11,5,3,1,2,17,4,23,2,8,2,0,3,6,4,0,5,5,2,0,2,7,19,1,14,57,6,14,2,9,40,1,2,0,3,1,2,0,3,0,7,3,2,6,2,2,2,0,2,0,3,1,2,12,2,2,3,4,2,0,2,5,3,9,3,1,35,0,24,1,7,9,12,0,2,0,2,0,5,9,2,35,5,19,2,5,5,7,2,35,10,0,58,73,7,77,3,37,11,42,2,0,4,328,2,3,3,6,2,0,2,3,3,40,2,3,3,32,2,3,3,6,2,0,2,3,3,14,2,56,2,3,3,66,5,0,33,15,17,84,13,619,3,16,2,25,6,74,22,12,2,6,12,20,12,19,13,12,2,2,2,1,13,51,3,29,4,0,5,1,3,9,34,2,3,9,7,87,9,42,6,69,11,28,4,11,5,11,11,39,3,4,12,43,5,25,7,10,38,27,5,62,2,28,3,10,7,9,14,0,89,75,5,9,18,8,13,42,4,11,71,55,9,9,4,48,83,2,2,30,14,230,23,280,3,5,3,37,3,5,3,7,2,0,2,0,2,0,2,30,3,52,2,6,2,0,4,2,2,6,4,3,3,5,5,12,6,2,2,6,67,1,20,0,29,0,14,0,17,4,60,12,5,0,4,11,18,0,5,0,3,9,2,0,4,4,7,0,2,0,2,0,2,3,2,10,3,3,6,4,5,0,53,1,2684,46,2,46,2,132,7,6,15,37,11,53,10,0,17,22,10,6,2,6,2,6,2,6,2,6,2,6,2,6,2,6,2,31,48,0,470,1,36,5,2,4,6,1,5,85,3,1,3,2,2,89,2,3,6,40,4,93,18,23,57,15,513,6581,75,20939,53,1164,68,45,3,268,4,27,21,31,3,13,13,1,2,24,9,69,11,1,38,8,3,102,3,1,111,44,25,51,13,68,12,9,7,23,4,0,5,45,3,35,13,28,4,64,15,10,39,54,10,13,3,9,7,22,4,1,5,66,25,2,227,42,2,1,3,9,7,11171,13,22,5,48,8453,301,3,61,3,105,39,6,13,4,6,11,2,12,2,4,2,0,2,1,2,1,2,107,34,362,19,63,3,53,41,11,5,15,17,6,13,1,25,2,33,4,2,134,20,9,8,25,5,0,2,25,12,88,4,5,3,5,3,5,3,2],i=0,r=[],s=0;s2?o%c!=c-1:o%c==0})}else{if(!this.blockComment)return!1;var p=this.blockComment.start,g=this.blockComment.end,m=new RegExp("^(\\s*)(?:"+l.escapeRegExp(p)+")"),f=new RegExp("(?:"+l.escapeRegExp(g)+")\\s*$"),y=function(e,t){b(e,t)||r&&!/\S/.test(e)||(i.insertInLine({row:t,column:e.length},g),i.insertInLine({row:t,column:a},p))},v=function(e,t){var n;(n=e.match(f))&&i.removeInLine(t,e.length-n[0].length,e.length),(n=e.match(m))&&i.removeInLine(t,n[1].length,n[0].length)},b=function(e,n){if(m.test(e))return!0;for(var o=t.getTokens(n),i=0;ie.length&&(x=e.length)})),a==1/0&&(a=x,r=!1,s=!1),u&&a%c!=0&&(a=Math.floor(a/c)*c),w(s?v:y)},this.toggleBlockComment=function(e,t,n,o){var i=this.blockComment;if(i){!i.start&&i[0]&&(i=i[0]);var r,s,a=(m=new c(t,o.row,o.column)).getCurrentToken(),l=(t.selection,t.selection.toOrientedRange());if(a&&/comment/.test(a.type)){for(var h,d;a&&/comment/.test(a.type);){if(-1!=(f=a.value.indexOf(i.start))){var p=m.getCurrentTokenRow(),g=m.getCurrentTokenColumn()+f;h=new u(p,g,p,g+i.start.length);break}a=m.stepBackward()}var m;for(a=(m=new c(t,o.row,o.column)).getCurrentToken();a&&/comment/.test(a.type);){var f;if(-1!=(f=a.value.indexOf(i.end))){p=m.getCurrentTokenRow(),g=m.getCurrentTokenColumn()+f,d=new u(p,g,p,g+i.end.length);break}a=m.stepForward()}d&&t.remove(d),h&&(t.remove(h),r=h.start.row,s=-i.start.length)}else s=i.start.length,r=n.start.row,t.insert(n.end,i.end),t.insert(n.start,i.start);l.start.row==r&&(l.start.column+=s),l.end.row==r&&(l.end.column+=s),t.selection.fromOrientedRange(l)}},this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.autoOutdent=function(e,t,n){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){for(var t in this.$embeds=[],this.$modes={},e)if(e[t]){var n=e[t],i=n.prototype.$id,r=o.$modes[i];r||(o.$modes[i]=r=new n),o.$modes[t]||(o.$modes[t]=r),this.$embeds.push(t),this.$modes[t]=r}var s=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"];for(t=0;tthis.row)){var t=function(e,t,n){var o="insert"==e.action,i=(o?1:-1)*(e.end.row-e.start.row),r=(o?1:-1)*(e.end.column-e.start.column),a=e.start,l=o?a:e.end;return s(t,a,n)?{row:t.row,column:t.column}:s(l,t,!n)?{row:t.row+i,column:t.column+(t.row==l.row?r:0)}:{row:a.row,column:a.column}}(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(t.row,t.column,!0)}},e.prototype.setPosition=function(e,t,n){var o;if(o=n?{row:e,column:t}:this.$clipPositionToDocument(e,t),this.row!=o.row||this.column!=o.column){var i={row:this.row,column:this.column};this.row=o.row,this.column=o.column,this._signal("change",{old:i,value:o})}},e.prototype.detach=function(){this.document.off("change",this.$onChange)},e.prototype.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},e.prototype.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n},e}();function s(e,t,n){var o=n?e.column<=t.column:e.column=n&&(e=n-1,t=void 0);var o=this.getLine(e);return null==t&&(t=o.length),{row:e,column:t=Math.min(Math.max(t,0),o.length)}},e.prototype.clonePos=function(e){return{row:e.row,column:e.column}},e.prototype.pos=function(e,t){return{row:e,column:t}},e.prototype.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},e.prototype.insertFullLines=function(e,t){var n=0;(e=Math.min(Math.max(e,0),this.getLength()))0,o=t=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},e.prototype.replace=function(e,t){return e instanceof s||(e=s.fromPoints(e.start,e.end)),0===t.length&&e.isEmpty()?e.start:t==this.getTextRange(e)?e.end:(this.remove(e),t?this.insert(e.start,t):e.start)},e.prototype.applyDeltas=function(e){for(var t=0;t=0;t--)this.revertDelta(e[t])},e.prototype.applyDelta=function(e,t){var n="insert"==e.action;(n?e.lines.length<=1&&!e.lines[0]:!s.comparePoints(e.start,e.end))||(n&&e.lines.length>2e4?this.$splitAndapplyLargeDelta(e,2e4):(i(this.$lines,e,t),this._signal("change",e)))},e.prototype.$safeApplyDelta=function(e){var t=this.$lines.length;("remove"==e.action&&e.start.row20){n.running=setTimeout(n.$worker,20);break}}n.currentLine=t,-1==o&&(o=t),r<=o&&n.fireUpdateEvent(r,o)}}}return e.prototype.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},e.prototype.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},e.prototype.fireUpdateEvent=function(e,t){var n={first:e,last:t};this._signal("update",{data:n})},e.prototype.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},e.prototype.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},e.prototype.$updateOnChange=function(e){var t=e.start.row,n=e.end.row-t;if(0===n)this.lines[t]=null;else if("remove"==e.action)this.lines.splice(t,n+1,null),this.states.splice(t,n+1,null);else{var o=Array(n+1);o.unshift(t,1),this.lines.splice.apply(this.lines,o),this.states.splice.apply(this.states,o)}this.currentLine=Math.min(t,this.currentLine,this.doc.getLength()),this.stop()},e.prototype.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},e.prototype.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},e.prototype.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||"start"},e.prototype.$tokenizeRow=function(e){var t=this.doc.getLine(e),n=this.states[e-1],o=this.tokenizer.getLineTokens(t,n,e);return this.states[e]+""!=o.state+""?(this.states[e]=o.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=o.tokens},e.prototype.cleanup=function(){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.removeAllListeners()},e}();o.implement(r.prototype,i),t.BackgroundTokenizer=r})),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/range"],(function(e,t,n){"use strict";var o=e("./lib/lang"),i=e("./range").Range,r=function(){function e(e,t,n){void 0===n&&(n="text"),this.setRegexp(e),this.clazz=t,this.type=n}return e.prototype.setRegexp=function(e){this.regExp+""!=e+""&&(this.regExp=e,this.cache=[])},e.prototype.update=function(e,t,n,r){if(this.regExp)for(var s=r.firstRow,a=r.lastRow,l={},c=s;c<=a;c++){var u=this.cache[c];null==u&&((u=o.getMatchOffsets(n.getLine(c),this.regExp)).length>this.MAX_RANGES&&(u=u.slice(0,this.MAX_RANGES)),u=u.map((function(e){return new i(c,e.offset,c,e.offset+e.length)})),this.cache[c]=u.length?u:"");for(var h=u.length;h--;){var d=u[h].toScreenRange(n),p=d.toString();l[p]||(l[p]=!0,t.drawSingleLineMarker(e,d,this.clazz,r))}}},e}();r.prototype.MAX_RANGES=500,t.SearchHighlight=r})),ace.define("ace/undomanager",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=function(){function e(){this.$maxRev=0,this.$fromUndo=!1,this.$undoDepth=1/0,this.reset()}return e.prototype.addSession=function(e){this.$session=e},e.prototype.add=function(e,t,n){if(!this.$fromUndo&&e!=this.$lastDelta){if(this.$keepRedoStack||(this.$redoStack.length=0),!1===t||!this.lastDeltas){this.lastDeltas=[];var o=this.$undoStack.length;o>this.$undoDepth-1&&this.$undoStack.splice(0,o-this.$undoDepth+1),this.$undoStack.push(this.lastDeltas),e.id=this.$rev=++this.$maxRev}"remove"!=e.action&&"insert"!=e.action||(this.$lastDelta=e),this.lastDeltas.push(e)}},e.prototype.addSelection=function(e,t){this.selections.push({value:e,rev:t||this.$rev})},e.prototype.startNewGroup=function(){return this.lastDeltas=null,this.$rev},e.prototype.markIgnored=function(e,t){null==t&&(t=this.$rev+1);for(var n=this.$undoStack,o=n.length;o--;){var i=n[o][0];if(i.id<=e)break;i.id0},e.prototype.canRedo=function(){return this.$redoStack.length>0},e.prototype.bookmark=function(e){null==e&&(e=this.$rev),this.mark=e},e.prototype.isAtBookmark=function(){return this.$rev===this.mark},e.prototype.toJSON=function(){return{$redoStack:this.$redoStack,$undoStack:this.$undoStack}},e.prototype.fromJSON=function(e){this.reset(),this.$undoStack=e.$undoStack,this.$redoStack=e.$redoStack},e.prototype.$prettyPrint=function(e){return e?a(e):a(this.$undoStack)+"\n---\n"+a(this.$redoStack)},e}();o.prototype.hasUndo=o.prototype.canUndo,o.prototype.hasRedo=o.prototype.canRedo,o.prototype.isClean=o.prototype.isAtBookmark,o.prototype.markClean=o.prototype.bookmark;var i=e("./range").Range,r=i.comparePoints;function s(e){return{row:e.row,column:e.column}}function a(e){if(e=e||this,Array.isArray(e))return e.map(a).join("\n");var t="";return e.action?(t="insert"==e.action?"+":"-",t+="["+e.lines+"]"):e.value&&(t=Array.isArray(e.value)?e.value.map(l).join("\n"):l(e.value)),e.start&&(t+=l(e)),(e.id||e.rev)&&(t+="\t("+(e.id||e.rev)+")"),t}function l(e){return e.start.row+":"+e.start.column+"=>"+e.end.row+":"+e.end.column}function c(e,t){var n="insert"==e.action,o="insert"==t.action;if(n&&o)if(r(t.start,e.end)>=0)d(t,e,-1);else{if(!(r(t.start,e.start)<=0))return null;d(e,t,1)}else if(n&&!o)if(r(t.start,e.end)>=0)d(t,e,-1);else{if(!(r(t.end,e.start)<=0))return null;d(e,t,-1)}else if(!n&&o)if(r(t.start,e.start)>=0)d(t,e,1);else{if(!(r(t.start,e.start)<=0))return null;d(e,t,1)}else if(!n&&!o)if(r(t.start,e.start)>=0)d(t,e,1);else{if(!(r(t.end,e.start)<=0))return null;d(e,t,-1)}return[t,e]}function u(e,t){for(var n=e.length;n--;)for(var o=0;o=0?d(e,t,-1):(r(e.start,t.start)<=0||d(e,i.fromPoints(t.start,e.start),-1),d(t,e,1));else if(!n&&o)r(t.start,e.end)>=0?d(t,e,-1):(r(t.start,e.start)<=0||d(t,i.fromPoints(e.start,t.start),-1),d(e,t,1));else if(!n&&!o)if(r(t.start,e.end)>=0)d(t,e,-1);else{var s,a;if(!(r(t.end,e.start)<=0))return r(e.start,t.start)<0&&(s=e,e=g(e,t.start)),r(e.end,t.end)>0&&(a=g(e,t.end)),p(t.end,e.start,e.end,-1),a&&!s&&(e.lines=a.lines,e.start=a.start,e.end=a.end,a=e),[t,s,a].filter(Boolean);d(e,t,-1)}return[t,e]}function d(e,t,n){p(e.start,t.start,t.end,n),p(e.end,t.start,t.end,n)}function p(e,t,n,o){e.row==(1==o?t:n).row&&(e.column+=o*(n.column-t.column)),e.row+=o*(n.row-t.row)}function g(e,t){var n=e.lines,o=e.end;e.end=s(t);var i=e.end.row-e.start.row,r=n.splice(i,n.length),a=i?t.column:t.column-e.start.column;return n.push(r[0].substring(0,a)),r[0]=r[0].substr(a),{start:s(t),end:o,lines:r,action:e.action}}function m(e,t){t=function(e){return{start:s(e.start),end:s(e.end),action:e.action,lines:e.lines.slice()}}(t);for(var n=e.length;n--;){for(var o=e[n],i=0;ithis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(e),this.folds.sort((function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)})),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},e.prototype.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},e.prototype.walk=function(e,t,n){var o,i,r=0,s=this.folds,a=!0;null==t&&(t=this.end.row,n=this.end.column);for(var l=0;l0)){var l=o(e,s.start);return 0===a?t&&0!==l?-r-2:r:l>0||0===l&&!t?r:-r-1}}return-r-1},e.prototype.add=function(e){var t=!e.isEmpty(),n=this.pointIndex(e.start,t);n<0&&(n=-n-1);var o=this.pointIndex(e.end,t,n);return o<0?o=-o-1:o++,this.ranges.splice(n,o-n,e)},e.prototype.addList=function(e){for(var t=[],n=e.length;n--;)t.push.apply(t,this.add(e[n]));return t},e.prototype.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},e.prototype.merge=function(){for(var e,t=[],n=this.ranges,i=(n=n.sort((function(e,t){return o(e.start,t.start)})))[0],r=1;r=0},e.prototype.containsPoint=function(e){return this.pointIndex(e)>=0},e.prototype.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},e.prototype.clipRows=function(e,t){var n=this.ranges;if(n[0].start.row>t||n[n.length-1].start.row=o);s++);if("insert"==e.action){for(var l=i-o,c=-t.column+n.column;so);s++)if(u.start.row==o&&u.start.column>=t.column&&(u.start.column==t.column&&this.$bias<=0||(u.start.column+=c,u.start.row+=l)),u.end.row==o&&u.end.column>=t.column){if(u.end.column==t.column&&this.$bias<0)continue;u.end.column==t.column&&c>0&&su.start.column&&u.end.column==r[s+1].start.column&&(u.end.column-=c),u.end.column+=c,u.end.row+=l}}else for(l=o-i,c=t.column-n.column;si);s++)u.end.rowt.column)&&(u.end.column=t.column,u.end.row=t.row):(u.end.column+=c,u.end.row+=l):u.end.row>i&&(u.end.row+=l),u.start.rowt.column)&&(u.start.column=t.column,u.start.row=t.row):(u.start.column+=c,u.start.row+=l):u.start.row>i&&(u.start.row+=l);if(0!=l&&s=e)return i;if(i.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var n=this.$foldData,o=0;for(t&&(o=n.indexOf(t)),-1==o&&(o=0);o=e)return i}return null},this.getFoldedRowCount=function(e,t){for(var n=this.$foldData,o=t-e+1,i=0;i=t){a=e?o-=t-a:o=0);break}s>=e&&(o-=a>=e?s-a:s-e+1)}return o},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort((function(e,t){return e.start.row-t.start.row})),e},this.addFold=function(e,t){var n,o=this.$foldData,s=!1;e instanceof r?n=e:(n=new r(t,e)).collapseChildren=t.collapseChildren,this.$clipRangeToDocument(n.range);var a=n.start.row,l=n.start.column,c=n.end.row,u=n.end.column,h=this.getFoldAt(a,l,1),d=this.getFoldAt(c,u,-1);if(h&&d==h)return h.addSubFold(n);h&&!h.range.isStart(a,l)&&this.removeFold(h),d&&!d.range.isEnd(c,u)&&this.removeFold(d);var p=this.getFoldsInRange(n.range);p.length>0&&(this.removeFolds(p),n.collapseChildren||p.forEach((function(e){n.addSubFold(e)})));for(var g=0;g0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach((function(e){this.expandFold(e)}),this)},this.unfold=function(e,t){var n,i;if(null==e)n=new o(0,0,this.getLength(),0),null==t&&(t=!0);else if("number"==typeof e)n=new o(e,0,e,this.getLine(e).length);else if("row"in e)n=o.fromPoints(e,e);else{if(Array.isArray(e))return i=[],e.forEach((function(e){i=i.concat(this.unfold(e))}),this),i;n=e}for(var r=i=this.getFoldsInRangeList(n);1==i.length&&o.comparePoints(i[0].start,n.start)<0&&o.comparePoints(i[0].end,n.end)>0;)this.expandFolds(i),i=this.getFoldsInRangeList(n);if(0!=t?this.removeFolds(i):this.expandFolds(i),r.length)return r},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var n=this.getFoldLine(e,t);return n?n.end.row:e},this.getRowFoldStart=function(e,t){var n=this.getFoldLine(e,t);return n?n.start.row:e},this.getFoldDisplayLine=function(e,t,n,o,i){null==o&&(o=e.start.row),null==i&&(i=0),null==t&&(t=e.end.row),null==n&&(n=this.getLine(t).length);var r=this.doc,s="";return e.walk((function(e,t,n,a){if(!(tu)break}while(r&&l.test(r.type)&&!/^comment.start/.test(r.type));r=i.stepBackward()}else r=i.getCurrentToken();return c.end.row=i.getCurrentTokenRow(),c.end.column=i.getCurrentTokenColumn(),/^comment.end/.test(r.type)||(c.end.column+=r.value.length-2),c}},this.foldAll=function(e,t,n,o){null==n&&(n=1e5);var i=this.foldWidgets;if(i){t=t||this.getLength();for(var r=e=e||0;r=e&&(r=s.end.row,s.collapseChildren=n,this.addFold("...",s))}}},this.foldToLevel=function(e){for(this.foldAll();e-- >0;)this.unfold(null,!1)},this.foldAllComments=function(){var e=this;this.foldAll(null,null,null,(function(t){for(var n=e.getTokens(t),o=0;o=0;){var r=n[i];if(null==r&&(r=n[i]=this.getFoldWidget(i)),"start"==r){var s=this.getFoldWidgetRange(i);if(o||(o=s),s&&s.end.row>=e)break}i--}return{range:-1!==i&&s,firstRange:o}},this.onFoldWidgetClick=function(e,t){t instanceof a&&(t=t.domEvent);var n={children:t.shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey};if(!this.$toggleFoldWidget(e,n)){var o=t.target||t.srcElement;o&&/ace_fold-widget/.test(o.className)&&(o.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(this.getFoldWidget){var n=this.getFoldWidget(e),o=this.getLine(e),i="end"===n?-1:1,r=this.getFoldAt(e,-1===i?0:o.length,i);if(r)return t.children||t.all?this.removeFold(r):this.expandFold(r),r;var s=this.getFoldWidgetRange(e,!0);if(s&&!s.isMultiLine()&&(r=this.getFoldAt(s.start.row,s.start.column,1))&&s.isEqual(r.range))return this.removeFold(r),r;if(t.siblings){var a=this.getParentFoldRangeData(e);if(a.range)var l=a.range.start.row+1,c=a.range.end.row;this.foldAll(l,c,t.all?1e4:0)}else t.children?(c=s?s.end.row:this.getLength(),this.foldAll(e+1,c,t.all?1e4:0)):s&&(t.all&&(s.collapseChildren=1e4),this.addFold("...",s));return s}},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var n=this.$toggleFoldWidget(t,{});if(!n){var o=this.getParentFoldRangeData(t,!0);if(n=o.range||o.firstRange){t=n.start.row;var i=this.getFoldAt(t,this.getLine(t).length,1);i?this.removeFold(i):this.addFold("...",n)}}},this.updateFoldWidgets=function(e){var t=e.start.row,n=e.end.row-t;if(0===n)this.foldWidgets[t]=null;else if("remove"==e.action)this.foldWidgets.splice(t,n+1,null);else{var o=Array(n+1);o.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,o)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}})),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],(function(e,t,n){"use strict";var o=e("../token_iterator").TokenIterator,i=e("../range").Range;t.BracketMatch=function(){this.findMatchingBracket=function(e,t){if(0==e.column)return null;var n=t||this.getLine(e.row).charAt(e.column-1);if(""==n)return null;var o=n.match(/([\(\[\{])|([\)\]\}])/);return o?o[1]?this.$findClosingBracket(o[1],e):this.$findOpeningBracket(o[2],e):null},this.getBracketRange=function(e){var t,n=this.getLine(e.row),o=!0,r=n.charAt(e.column-1),s=r&&r.match(/([\(\[\{])|([\)\]\}])/);if(s||(r=n.charAt(e.column),e={row:e.row,column:e.column+1},s=r&&r.match(/([\(\[\{])|([\)\]\}])/),o=!1),!s)return null;if(s[1]){if(!(a=this.$findClosingBracket(s[1],e)))return null;t=i.fromPoints(e,a),o||(t.end.column++,t.start.column--),t.cursor=t.end}else{var a;if(!(a=this.$findOpeningBracket(s[2],e)))return null;t=i.fromPoints(a,e),o||(t.start.column++,t.end.column--),t.cursor=t.start}return t},this.getMatchingBracketRanges=function(e,t){var n=this.getLine(e.row),o=/([\(\[\{])|([\)\]\}])/,r=!t&&n.charAt(e.column-1),s=r&&r.match(o);if(s||(r=(void 0===t||t)&&n.charAt(e.column),e={row:e.row,column:e.column+1},s=r&&r.match(o)),!s)return null;var a=new i(e.row,e.column-1,e.row,e.column),l=s[1]?this.$findClosingBracket(s[1],e):this.$findOpeningBracket(s[2],e);return l?[a,new i(l.row,l.column,l.row,l.column+1)]:[a]},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{","<":">",">":"<"},this.$findOpeningBracket=function(e,t,n){var i=this.$brackets[e],r=1,s=new o(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){n||(n=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)").replace(/-close\b/,"-(close|open)")+")+"));for(var l=t.column-s.getCurrentTokenColumn()-2,c=a.value;;){for(;l>=0;){var u=c.charAt(l);if(u==i){if(0==(r-=1))return{row:s.getCurrentTokenRow(),column:l+s.getCurrentTokenColumn()}}else u==e&&(r+=1);l-=1}do{a=s.stepBackward()}while(a&&!n.test(a.type));if(null==a)break;l=(c=a.value).length-1}return null}},this.$findClosingBracket=function(e,t,n){var i=this.$brackets[e],r=1,s=new o(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){n||(n=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)").replace(/-open\b/,"-(close|open)")+")+"));for(var l=t.column-s.getCurrentTokenColumn();;){for(var c=a.value,u=c.length;l"===t.value?o=!0:-1!==t.type.indexOf("tag-name")&&(n=!0))}while(t&&!n);return t},this.$findClosingTag=function(e,t){var n,o=t.value,r=t.value,s=0,a=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);t=e.stepForward();var l=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+t.value.length),c=!1;do{if(n=t,t=e.stepForward()){if(">"===t.value&&!c){var u=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);c=!0}if(-1!==t.type.indexOf("tag-name")){if(r===(o=t.value))if("<"===n.value)s++;else if(""!==t.value)return;var p=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1)}}else r===o&&"/>"===t.value&&--s<0&&(p=d=h=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+2),u=new i(l.end.row,l.end.column,l.end.row,l.end.column+1))}}while(t&&s>=0);if(a&&u&&h&&p&&l&&d)return{openTag:new i(a.start.row,a.start.column,u.end.row,u.end.column),closeTag:new i(h.start.row,h.start.column,p.end.row,p.end.column),openTagName:l,closeTagName:d}},this.$findOpeningTag=function(e,t){var n=e.getCurrentToken(),o=t.value,r=0,s=e.getCurrentTokenRow(),a=e.getCurrentTokenColumn(),l=a+2,c=new i(s,a,s,l);e.stepForward();var u=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+t.value.length);if((t=e.stepForward())&&">"===t.value){var h=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);e.stepBackward(),e.stepBackward();do{if(t=n,s=e.getCurrentTokenRow(),l=(a=e.getCurrentTokenColumn())+t.value.length,n=e.stepBackward(),t)if(-1!==t.type.indexOf("tag-name")){if(o===t.value)if("<"===n.value){if(++r>0){var d=new i(s,a,s,l),p=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);do{t=e.stepForward()}while(t&&">"!==t.value);var g=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1)}}else""===t.value){for(var m=0,f=n;f;){if(-1!==f.type.indexOf("tag-name")&&f.value===o){r--;break}if("<"===f.value)break;f=e.stepBackward(),m++}for(var y=0;yn&&(this.$docRowCache.splice(n,t),this.$screenRowCache.splice(n,t))},e.prototype.$getRowCacheIndex=function(e,t){for(var n=0,o=e.length-1;n<=o;){var i=n+o>>1,r=e[i];if(t>r)n=i+1;else{if(!(t=t);r++);return(n=o[r])?(n.index=r,n.start=i-n.value.length,n):null},e.prototype.setUndoManager=function(e){if(this.$undoManager=e,this.$informUndoManager&&this.$informUndoManager.cancel(),e){var t=this;e.addSession(this),this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.mergeUndoDeltas=!1},this.$informUndoManager=i.delayedCall(this.$syncInformUndoManager)}else this.$syncInformUndoManager=function(){}},e.prototype.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},e.prototype.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},e.prototype.getTabString=function(){return this.getUseSoftTabs()?i.stringRepeat(" ",this.getTabSize()):"\t"},e.prototype.setUseSoftTabs=function(e){this.setOption("useSoftTabs",e)},e.prototype.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},e.prototype.setTabSize=function(e){this.setOption("tabSize",e)},e.prototype.getTabSize=function(){return this.$tabSize},e.prototype.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize==0},e.prototype.setNavigateWithinSoftTabs=function(e){this.setOption("navigateWithinSoftTabs",e)},e.prototype.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},e.prototype.setOverwrite=function(e){this.setOption("overwrite",e)},e.prototype.getOverwrite=function(){return this.$overwrite},e.prototype.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},e.prototype.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._signal("changeBreakpoint",{})},e.prototype.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._signal("changeBreakpoint",{})},e.prototype.getBreakpoints=function(){return this.$breakpoints},e.prototype.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t0&&(o=!!n.charAt(t-1).match(this.tokenRe)),o||(o=!!n.charAt(t).match(this.tokenRe)),o)var i=this.tokenRe;else i=/^\s+$/.test(n.slice(t-1,t+1))?/\s/:this.nonTokenRe;var r=t;if(r>0){do{r--}while(r>=0&&n.charAt(r).match(i));r++}for(var s=t;se&&(e=t.screenWidth)})),this.lineWidgetWidth=e},e.prototype.$computeWidth=function(e){if(this.$modified||e){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var t=this.doc.getAllLines(),n=this.$rowLengthCache,o=0,i=0,r=this.$foldData[i],s=r?r.start.row:1/0,a=t.length,l=0;ls){if((l=r.end.row+1)>=a)break;s=(r=this.$foldData[i++])?r.start.row:1/0}null==n[l]&&(n[l]=this.$getStringScreenWidth(t[l])[0]),n[l]>o&&(o=n[l])}this.screenWidth=o}},e.prototype.getLine=function(e){return this.doc.getLine(e)},e.prototype.getLines=function(e,t){return this.doc.getLines(e,t)},e.prototype.getLength=function(){return this.doc.getLength()},e.prototype.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},e.prototype.insert=function(e,t){return this.doc.insert(e,t)},e.prototype.remove=function(e){return this.doc.remove(e)},e.prototype.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},e.prototype.undoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var n=e.length-1;-1!=n;n--){var o=e[n];"insert"==o.action||"remove"==o.action?this.doc.revertDelta(o):o.folds&&this.addFolds(o.folds)}!t&&this.$undoSelect&&(e.selectionBefore?this.selection.fromJSON(e.selectionBefore):this.selection.setRange(this.$getUndoSelection(e,!0))),this.$fromUndo=!1}},e.prototype.redoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var n=0;ne.end.column&&(r.start.column+=c),r.end.row==e.end.row&&r.end.column>e.end.column&&(r.end.column+=c)),s&&r.start.row>=e.end.row&&(r.start.row+=s,r.end.row+=s)}if(r.end=this.insert(r.start,o),i.length){var a=e.start,l=r.start,c=(s=l.row-a.row,l.column-a.column);this.addFolds(i.map((function(e){return(e=e.clone()).start.row==a.row&&(e.start.column+=c),e.end.row==a.row&&(e.end.column+=c),e.start.row+=s,e.end.row+=s,e})))}return r},e.prototype.indentRows=function(e,t,n){n=n.replace(/\t/g,this.getTabString());for(var o=e;o<=t;o++)this.doc.insertInLine({row:o,column:0},n)},e.prototype.outdentRows=function(e){for(var t=e.collapseRows(),n=new u(0,0,0,0),o=this.getTabSize(),i=t.start.row;i<=t.end.row;++i){var r=this.getLine(i);n.start.row=i,n.end.row=i;for(var s=0;s0){var i;if((i=this.getRowFoldEnd(t+n))>this.doc.getLength()-1)return 0;o=i-t}else e=this.$clipRowToDocument(e),o=(t=this.$clipRowToDocument(t))-e+1;var r=new u(e,0,t,Number.MAX_VALUE),s=this.getFoldsInRange(r).map((function(e){return(e=e.clone()).start.row+=o,e.end.row+=o,e})),a=0==n?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+o,a),s.length&&this.addFolds(s),o},e.prototype.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},e.prototype.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},e.prototype.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},e.prototype.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},e.prototype.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},e.prototype.$clipPositionToDocument=function(e,t){if(t=Math.max(0,t),e<0)e=0,t=0;else{var n=this.doc.getLength();e>=n?(e=n-1,t=this.doc.getLine(n-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},e.prototype.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},e.prototype.setUseWrapMode=function(e){if(e!=this.$useWrapMode){if(this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0),e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal("changeWrapMode")}},e.prototype.getUseWrapMode=function(){return this.$useWrapMode},e.prototype.setWrapLimitRange=function(e,t){this.$wrapLimitRange.min===e&&this.$wrapLimitRange.max===t||(this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},e.prototype.adjustWrapLimit=function(e,t){var n=this.$wrapLimitRange;n.max<0&&(n={min:t,max:t});var o=this.$constrainWrapLimit(e,n.min,n.max);return o!=this.$wrapLimit&&o>1&&(this.$wrapLimit=o,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0)},e.prototype.$constrainWrapLimit=function(e,t,n){return t&&(e=Math.max(t,e)),n&&(e=Math.min(n,e)),e},e.prototype.getWrapLimit=function(){return this.$wrapLimit},e.prototype.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},e.prototype.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},e.prototype.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,n=e.action,o=e.start,i=e.end,r=o.row,s=i.row,a=s-r,l=null;if(this.$updating=!0,0!=a)if("remove"===n){this[t?"$wrapData":"$rowLengthCache"].splice(r,a);var c=this.$foldData;l=this.getFoldsInRange(e),this.removeFolds(l);var u=0;if(m=this.getFoldLine(i.row)){m.addRemoveChars(i.row,i.column,o.column-i.column),m.shiftRow(-a);var h=this.getFoldLine(r);h&&h!==m&&(h.merge(m),m=h),u=c.indexOf(m)+1}for(;u=i.row&&m.shiftRow(-a);s=r}else{var d=Array(a);d.unshift(r,0);var p=t?this.$wrapData:this.$rowLengthCache;if(p.splice.apply(p,d),c=this.$foldData,u=0,m=this.getFoldLine(r)){var g=m.range.compareInside(o.row,o.column);0==g?(m=m.split(o.row,o.column))&&(m.shiftRow(a),m.addRemoveChars(s,0,i.column-o.column)):-1==g&&(m.addRemoveChars(r,0,i.column-o.column),m.shiftRow(a)),u=c.indexOf(m)+1}for(;u=r&&m.shiftRow(a)}}else a=Math.abs(e.start.column-e.end.column),"remove"===n&&(l=this.getFoldsInRange(e),this.removeFolds(l),a=-a),(m=this.getFoldLine(r))&&m.addRemoveChars(r,o.column,a);return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(r,s):this.$updateRowLengthCache(r,s),l},e.prototype.$updateRowLengthCache=function(e,t,n){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},e.prototype.$updateWrapData=function(e,t){var n,o,i=this.doc.getAllLines(),r=this.getTabSize(),s=this.$wrapData,a=this.$wrapLimit,l=e;for(t=Math.min(t,i.length-1);l<=t;)(o=this.getFoldLine(l,o))?(n=[],o.walk(function(e,t,o,r){var s;if(null!=e){(s=this.$getDisplayTokens(e,n.length))[0]=v;for(var a=1;at-h;){var d=r+t-h;if(e[d-1]>=x&&e[d]>=x)u(d);else if(e[d]!=v&&e[d]!=b){for(var p=Math.max(d-(t-(t>>2)),r-1);d>p&&e[d]p&&e[d]p&&e[d]==w;)d--}else for(;d>p&&e[d]p?u(++d):(e[d=r+t]==y&&d--,u(d-h))}else{for(;d!=r-1&&e[d]!=v;d--);if(d>r){u(d);continue}for(d=r+t;d39&&r<48||r>57&&r<64?o.push(w):r>=4352&&$(r)?o.push(f,y):o.push(f)}return o},e.prototype.$getStringScreenWidth=function(e,t,n){if(0==t)return[0,0];var o,i;for(null==t&&(t=1/0),n=n||0,i=0;i=4352&&$(o)?n+=2:n+=1,!(n>t));i++);return[n,i]},e.prototype.getRowLength=function(e){var t=1;return this.lineWidgets&&(t+=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0),this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+t:t},e.prototype.getRowLineCount=function(e){return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1:1},e.prototype.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),n=this.$wrapData[t.row];return n.length&&n[0]=0){a=c[u],r=this.$docRowCache[u];var d=e>c[h-1]}else d=!h;for(var p=this.getLength()-1,g=this.getNextFoldLine(r),m=g?g.start.row:1/0;a<=e&&!(a+(l=this.getRowLength(r))>e||r>=p);)a+=l,++r>m&&(r=g.end.row+1,m=(g=this.getNextFoldLine(r,g))?g.start.row:1/0),d&&(this.$docRowCache.push(r),this.$screenRowCache.push(a));if(g&&g.start.row<=r)o=this.getFoldDisplayLine(g),r=g.start.row;else{if(a+l<=e||r>p)return{row:p,column:this.getLine(p).length};o=this.getLine(r),g=null}var f=0,y=Math.floor(e-a);if(this.$useWrapMode){var v=this.$wrapData[r];v&&(i=v[y],y>0&&v.length&&(f=v.indent,s=v[y-1]||v[v.length-1],o=o.substring(s)))}return void 0!==n&&this.$bidiHandler.isBidiRow(a+y,r,y)&&(t=this.$bidiHandler.offsetToCol(n)),s+=this.$getStringScreenWidth(o,t-f)[1],this.$useWrapMode&&s>=i&&(s=i-1),g?g.idxToPosition(s):{row:r,column:s}},e.prototype.documentToScreenPosition=function(e,t){if(void 0===t)var n=this.$clipPositionToDocument(e.row,e.column);else n=this.$clipPositionToDocument(e,t);e=n.row,t=n.column;var o,i=0,r=null;(o=this.getFoldAt(e,t,1))&&(e=o.start.row,t=o.start.column);var s,a=0,l=this.$docRowCache,c=this.$getRowCacheIndex(l,e),u=l.length;if(u&&c>=0){a=l[c],i=this.$screenRowCache[c];var h=e>l[u-1]}else h=!u;for(var d=this.getNextFoldLine(a),p=d?d.start.row:1/0;a=p){if((s=d.end.row+1)>e)break;p=(d=this.getNextFoldLine(s,d))?d.start.row:1/0}else s=a+1;i+=this.getRowLength(a),a=s,h&&(this.$docRowCache.push(a),this.$screenRowCache.push(i))}var g="";d&&a>=p?(g=this.getFoldDisplayLine(d,e,t),r=d.start.row):(g=this.getLine(e).substring(0,t),r=e);var m=0;if(this.$useWrapMode){var f=this.$wrapData[r];if(f){for(var y=0;g.length>=f[y];)i++,y++;g=g.substring(f[y-1]||0,g.length),m=y>0?f.indent:0}}return this.lineWidgets&&this.lineWidgets[a]&&this.lineWidgets[a].rowsAbove&&(i+=this.lineWidgets[a].rowsAbove),{row:i,column:m+this.$getStringScreenWidth(g)[0]}},e.prototype.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},e.prototype.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},e.prototype.getScreenLength=function(){var e=0,t=null;if(this.$useWrapMode)for(var n=this.$wrapData.length,o=0,i=(a=0,(t=this.$foldData[a++])?t.start.row:1/0);oi&&(o=t.end.row+1,i=(t=this.$foldData[a++])?t.start.row:1/0)}else{e=this.getLength();for(var s=this.$foldData,a=0;an);r++);return[o,r]})},e.prototype.destroy=function(){this.destroyed||(this.bgTokenizer.setDocument(null),this.bgTokenizer.cleanup(),this.destroyed=!0),this.$stopWorker(),this.removeAllListeners(),this.doc&&this.doc.off("change",this.$onChange),this.selection.detach()},e}();m.$uid=0,m.prototype.$modes=s.$modes,m.prototype.getValue=m.prototype.toString,m.prototype.$defaultUndoManager={undo:function(){},redo:function(){},hasUndo:function(){},hasRedo:function(){},reset:function(){},add:function(){},addSelection:function(){},startNewGroup:function(){},addSession:function(){}},m.prototype.$overwrite=!1,m.prototype.$mode=null,m.prototype.$modeId=null,m.prototype.$scrollTop=0,m.prototype.$scrollLeft=0,m.prototype.$wrapLimit=80,m.prototype.$useWrapMode=!1,m.prototype.$wrapLimitRange={min:null,max:null},m.prototype.lineWidgets=null,m.prototype.isFullWidth=$,o.implement(m.prototype,a);var f=1,y=2,v=3,b=4,w=9,x=10,k=11,C=12;function $(e){return!(e<4352)&&(e>=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510)}e("./edit_session/folding").Folding.call(m.prototype),e("./edit_session/bracket_match").BracketMatch.call(m.prototype),s.defineOptions(m.prototype,"session",{wrap:{set:function(e){if(e&&"off"!=e?"free"==e?e=!0:"printMargin"==e?e=-1:"string"==typeof e&&(e=parseInt(e,10)||!1):e=!1,this.$wrap!=e)if(this.$wrap=e,e){var t="number"==typeof e?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}else this.setUseWrapMode(!1)},get:function(){return this.getUseWrapMode()?-1==this.$wrap?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){(e="auto"==e?"text"!=this.$mode.type:"text"!=e)!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0)))},initialValue:"auto"},indentedSoftWrap:{set:function(){this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0))},initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){(e=parseInt(e))>0&&this.$tabSize!==e&&(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},foldStyle:{set:function(e){this.setFoldStyle(e)},handlesSet:!0},overwrite:{set:function(e){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId},handlesSet:!0}}),t.EditSession=m})),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],(function(e,t,n){"use strict";var o=e("./lib/lang"),i=e("./lib/oop"),r=e("./range").Range,s=function(){function e(){this.$options={}}return e.prototype.set=function(e){return i.mixin(this.$options,e),this},e.prototype.getOptions=function(){return o.copyObject(this.$options)},e.prototype.setOptions=function(e){this.$options=e},e.prototype.find=function(e){var t=this.$options,n=this.$matchIterator(e,t);if(!n)return!1;var o=null;return n.forEach((function(e,n,i,s){return o=new r(e,n,i,s),!(n==s&&t.start&&t.start.start&&0!=t.skipCurrent&&o.isEqual(t.start)&&(o=null,1))})),o},e.prototype.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var n=t.range,i=n?e.getLines(n.start.row,n.end.row):e.doc.getAllLines(),s=[],a=t.re;if(t.$isMultiLine){var l,c=a.length,u=i.length-c;e:for(var h=a.offset||0;h<=u;h++){for(var d=0;dm||(s.push(l=new r(h,m,h+c-1,f)),c>2&&(h=h+c-2))}}else for(var y=0;yx&&s[d].end.row==k;)d--;for(s=s.slice(y,d+1),y=0,d=s.length;y=c;n--)if(p(n,Number.MAX_VALUE,e))return;if(0!=t.wrap)for(n=u,c=l.row;n>=c;n--)if(p(n,Number.MAX_VALUE,e))return}};else h=function(e){var n=l.row;if(!p(n,l.column,e)){for(n+=1;n<=u;n++)if(p(n,0,e))return;if(0!=t.wrap)for(n=c,u=l.row;n<=u;n++)if(p(n,0,e))return}};if(t.$isMultiLine)var d=n.length,p=function(t,o,r){var s=i?t-d+1:t;if(!(s<0||s+d>e.getLength())){var a=e.getLine(s),l=a.search(n[0]);if(!(!i&&lo))return!!r(s,l,s+d-1,u)||void 0}}};else p=i?function(t,i,r){var a,l=e.getLine(t),c=[],u=0;for(n.lastIndex=0;a=n.exec(l);){var h=a[0].length;if(u=a.index,!h){if(u>=l.length)break;n.lastIndex=u+=o.skipEmptyMatch(l,u,s)}if(a.index+h>i)break;c.push(a.index,h)}for(var d=c.length-1;d>=0;d-=2){var p=c[d-1];if(r(t,p,t,p+(h=c[d])))return!0}}:function(t,i,r){var a,l,c=e.getLine(t);for(n.lastIndex=i;l=n.exec(c);){var u=l[0].length;if(r(t,a=l.index,t,a+u))return!0;if(!u&&(n.lastIndex=a+=o.skipEmptyMatch(c,a,s),a>=c.length))return!1}};return{forEach:h}},e}();t.Search=s})),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=e("../lib/keys"),s=e("../lib/useragent"),a=r.KEY_MODS,l=function(){function e(e,t){this.$init(e,t,!1)}return e.prototype.$init=function(e,t,n){this.platform=t||(s.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=n},e.prototype.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},e.prototype.removeCommand=function(e,t){var n=e&&("string"==typeof e?e:e.name);e=this.commands[n],t||delete this.commands[n];var o=this.commandKeyBinding;for(var i in o){var r=o[i];if(r==e)delete o[i];else if(Array.isArray(r)){var s=r.indexOf(e);-1!=s&&(r.splice(s,1),1==r.length&&(o[i]=r[0]))}}},e.prototype.bindKey=function(e,t,n){if("object"==typeof e&&e&&(null==n&&(n=e.position),e=e[this.platform]),e)return"function"==typeof t?this.addCommand({exec:t,bindKey:e,name:t.name||e}):void e.split("|").forEach((function(e){var o="";if(-1!=e.indexOf(" ")){var i=e.split(/\s+/);e=i.pop(),i.forEach((function(e){var t=this.parseKeys(e),n=a[t.hashId]+t.key;o+=(o?" ":"")+n,this._addCommandToBinding(o,"chainKeys")}),this),o+=" "}var r=this.parseKeys(e),s=a[r.hashId]+r.key;this._addCommandToBinding(o+s,t,n)}),this)},e.prototype._addCommandToBinding=function(e,t,n){var o,i=this.commandKeyBinding;if(t)if(!i[e]||this.$singleCommand)i[e]=t;else{Array.isArray(i[e])?-1!=(o=i[e].indexOf(t))&&i[e].splice(o,1):i[e]=[i[e]],"number"!=typeof n&&(n=c(t));var r=i[e];for(o=0;on);o++);r.splice(o,0,t)}else delete i[e]},e.prototype.addCommands=function(e){e&&Object.keys(e).forEach((function(t){var n=e[t];if(n){if("string"==typeof n)return this.bindKey(n,t);"function"==typeof n&&(n={exec:n}),"object"==typeof n&&(n.name||(n.name=t),this.addCommand(n))}}),this)},e.prototype.removeCommands=function(e){Object.keys(e).forEach((function(t){this.removeCommand(e[t])}),this)},e.prototype.bindKeys=function(e){Object.keys(e).forEach((function(t){this.bindKey(t,e[t])}),this)},e.prototype._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},e.prototype.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter((function(e){return e})),n=t.pop(),o=r[n];if(r.FUNCTION_KEYS[o])n=r.FUNCTION_KEYS[o].toLowerCase();else{if(!t.length)return{key:n,hashId:-1};if(1==t.length&&"shift"==t[0])return{key:n.toUpperCase(),hashId:-1}}for(var i=0,s=t.length;s--;){var a=r.KEY_MODS[t[s]];if(null==a)return"undefined"!=typeof console&&console.error("invalid modifier "+t[s]+" in "+e),!1;i|=a}return{key:n,hashId:i}},e.prototype.findKeyCommand=function(e,t){var n=a[e]+t;return this.commandKeyBinding[n]},e.prototype.handleKeyboard=function(e,t,n,o){if(!(o<0)){var i=a[t]+n,r=this.commandKeyBinding[i];return e.$keyChain&&(e.$keyChain+=" "+i,r=this.commandKeyBinding[e.$keyChain]||r),!r||"chainKeys"!=r&&"chainKeys"!=r[r.length-1]?(e.$keyChain&&(t&&4!=t||1!=n.length?(-1==t||o>0)&&(e.$keyChain=""):e.$keyChain=e.$keyChain.slice(0,-i.length-1)),{command:r}):(e.$keyChain=e.$keyChain||i,{command:"null"})}},e.prototype.getStatusText=function(e,t){return t.$keyChain||""},e}();function c(e){return"object"==typeof e&&e.bindKey&&e.bindKey.position||(e.isDefault?-100:0)}var u=function(e){function t(t,n){var o=e.call(this,t,n)||this;return o.$singleCommand=!0,o}return i(t,e),t}(l);u.call=function(e,t,n){l.prototype.$init.call(e,t,n,!0)},l.call=function(e,t,n){l.prototype.$init.call(e,t,n,!1)},t.HashHandler=u,t.MultiHashHandler=l})),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=e("../lib/oop"),s=e("../keyboard/hash_handler").MultiHashHandler,a=e("../lib/event_emitter").EventEmitter,l=function(e){function t(t,n){var o=e.call(this,n,t)||this;return o.byName=o.commands,o.setDefaultHandler("exec",(function(e){return e.args?e.command.exec(e.editor,e.args,e.event,!1):e.command.exec(e.editor,{},e.event,!0)})),o}return i(t,e),t.prototype.exec=function(e,t,n){if(Array.isArray(e)){for(var o=e.length;o--;)if(this.exec(e[o],t,n))return!0;return!1}if("string"==typeof e&&(e=this.commands[e]),!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;if(0!=this.$checkCommandState&&e.isAvailable&&!e.isAvailable(t))return!1;var i={editor:t,command:e,args:n};return i.returnValue=this._emit("exec",i),this._signal("afterExec",i),!1!==i.returnValue},t.prototype.toggleRecording=function(e){if(!this.$inReplay)return e&&e._emit("changeStatus"),this.recording?(this.macro.pop(),this.off("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},t.prototype.replay=function(e){if(!this.$inReplay&&this.macro){if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach((function(t){"string"==typeof t?this.exec(t,e):this.exec(t[0],e,t[1])}),this)}finally{this.$inReplay=!1}}},t.prototype.trimMacro=function(e){return e.map((function(e){return"string"!=typeof e[0]&&(e[0]=e[0].name),e[1]||(e=e[0]),e}))},t}(s);r.implement(l.prototype,a),t.CommandManager=l})),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],(function(e,t,n){"use strict";var o=e("../lib/lang"),i=e("../config"),r=e("../range").Range;function s(e,t){return{win:e,mac:t}}t.commands=[{name:"showSettingsMenu",description:"Show settings menu",bindKey:s("Ctrl-,","Command-,"),exec:function(e){i.loadModule("ace/ext/settings_menu",(function(t){t.init(e),e.showSettingsMenu()}))},readOnly:!0},{name:"goToNextError",description:"Go to next error",bindKey:s("Alt-E","F4"),exec:function(e){i.loadModule("ace/ext/error_marker",(function(t){t.showErrorMarker(e,1)}))},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",description:"Go to previous error",bindKey:s("Alt-Shift-E","Shift-F4"),exec:function(e){i.loadModule("ace/ext/error_marker",(function(t){t.showErrorMarker(e,-1)}))},scrollIntoView:"animate",readOnly:!0},{name:"selectall",description:"Select all",bindKey:s("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",description:"Center selection",bindKey:s(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",description:"Go to line...",bindKey:s("Ctrl-L","Command-L"),exec:function(e,t){"number"!=typeof t||isNaN(t)||e.gotoLine(t),e.prompt({$type:"gotoLine"})},readOnly:!0},{name:"fold",bindKey:s("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:s("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",description:"Toggle fold widget",bindKey:s("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",description:"Toggle parent fold widget",bindKey:s("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",description:"Fold all",bindKey:s(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldAllComments",description:"Fold all comments",bindKey:s(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAllComments()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",description:"Fold other",bindKey:s("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",description:"Unfold all",bindKey:s("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",description:"Find next",bindKey:s("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",description:"Find previous",bindKey:s("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",description:"Select or find next",bindKey:s("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",description:"Select or find previous",bindKey:s("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",description:"Find",bindKey:s("Ctrl-F","Command-F"),exec:function(e){i.loadModule("ace/ext/searchbox",(function(t){t.Search(e)}))},readOnly:!0},{name:"overwrite",description:"Overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",description:"Select to start",bindKey:s("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",description:"Go to start",bindKey:s("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",description:"Select up",bindKey:s("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",description:"Go line up",bindKey:s("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",description:"Select to end",bindKey:s("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",description:"Go to end",bindKey:s("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",description:"Select down",bindKey:s("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",description:"Go line down",bindKey:s("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",description:"Select word left",bindKey:s("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",description:"Go to word left",bindKey:s("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",description:"Select to line start",bindKey:s("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",description:"Go to line start",bindKey:s("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",description:"Select left",bindKey:s("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",description:"Go to left",bindKey:s("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",description:"Select word right",bindKey:s("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",description:"Go to word right",bindKey:s("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",description:"Select to line end",bindKey:s("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",description:"Go to line end",bindKey:s("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",description:"Select right",bindKey:s("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",description:"Go to right",bindKey:s("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",description:"Select page down",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",description:"Page down",bindKey:s(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",description:"Go to page down",bindKey:s("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",description:"Select page up",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",description:"Page up",bindKey:s(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",description:"Go to page up",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",description:"Scroll up",bindKey:s("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",description:"Scroll down",bindKey:s("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",description:"Select line start",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",description:"Select line end",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",description:"Toggle recording",bindKey:s("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",description:"Replay macro",bindKey:s("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",description:"Jump to matching",bindKey:s("Ctrl-\\|Ctrl-P","Command-\\"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",description:"Select to matching",bindKey:s("Ctrl-Shift-\\|Ctrl-Shift-P","Command-Shift-\\"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",description:"Expand to matching",bindKey:s("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",description:"Pass keys to browser",bindKey:s(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",description:"Copy",exec:function(e){},readOnly:!0},{name:"cut",description:"Cut",exec:function(e){var t=e.$copyWithEmptySelection&&e.selection.isEmpty()?e.selection.getLineRange():e.selection.getRange();e._emit("cut",t),t.isEmpty()||e.session.remove(t),e.clearSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",description:"Paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",description:"Remove line",bindKey:s("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",description:"Duplicate selection",bindKey:s("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",description:"Sort lines",bindKey:s("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",description:"Toggle comment",bindKey:s("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",description:"Toggle block comment",bindKey:s("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",description:"Modify number up",bindKey:s("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",description:"Modify number down",bindKey:s("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",description:"Replace",bindKey:s("Ctrl-H","Command-Option-F"),exec:function(e){i.loadModule("ace/ext/searchbox",(function(t){t.Search(e,!0)}))}},{name:"undo",description:"Undo",bindKey:s("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",description:"Redo",bindKey:s("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",description:"Copy lines up",bindKey:s("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",description:"Move lines up",bindKey:s("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",description:"Copy lines down",bindKey:s("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",description:"Move lines down",bindKey:s("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",description:"Delete",bindKey:s("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",description:"Backspace",bindKey:s("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",description:"Cut or delete",bindKey:s("Shift-Delete",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",description:"Remove to line start",bindKey:s("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",description:"Remove to line end",bindKey:s("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",description:"Remove to line start hard",bindKey:s("Ctrl-Shift-Backspace",null),exec:function(e){var t=e.selection.getRange();t.start.column=0,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",description:"Remove to line end hard",bindKey:s("Ctrl-Shift-Delete",null),exec:function(e){var t=e.selection.getRange();t.end.column=Number.MAX_VALUE,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",description:"Remove word left",bindKey:s("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",description:"Remove word right",bindKey:s("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",description:"Outdent",bindKey:s("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",description:"Indent",bindKey:s("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",description:"Block outdent",bindKey:s("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",description:"Block indent",bindKey:s("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",description:"Insert string",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",description:"Insert text",exec:function(e,t){e.insert(o.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",description:"Split line",bindKey:s(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",description:"Transpose letters",bindKey:s("Alt-Shift-X","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",description:"To uppercase",bindKey:s("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",description:"To lowercase",bindKey:s("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"autoindent",description:"Auto Indent",bindKey:s(null,null),exec:function(e){e.autoIndent()},multiSelectAction:"forEachLine",scrollIntoView:"animate"},{name:"expandtoline",description:"Expand to line",bindKey:s("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"openlink",bindKey:s("Ctrl+F3","F3"),exec:function(e){e.openLink()}},{name:"joinlines",description:"Join lines",bindKey:s(null,null),exec:function(e){for(var t=e.selection.isBackwards(),n=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),i=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),s=e.session.doc.getLine(n.row).length,a=e.session.doc.getTextRange(e.selection.getRange()).replace(/\n\s*/," ").length,l=e.session.doc.getLine(n.row),c=n.row+1;c<=i.row+1;c++){var u=o.stringTrimLeft(o.stringTrimRight(e.session.doc.getLine(c)));0!==u.length&&(u=" "+u),l+=u}i.row+10?(e.selection.moveCursorTo(n.row,n.column),e.selection.selectTo(n.row,n.column+a)):(s=e.session.doc.getLine(n.row).length>s?s+1:s,e.selection.moveCursorTo(n.row,s))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",description:"Invert selection",bindKey:s(null,null),exec:function(e){var t=e.session.doc.getLength()-1,n=e.session.doc.getLine(t).length,o=e.selection.rangeList.ranges,i=[];o.length<1&&(o=[e.selection.getRange()]);for(var s=0;st[n].column&&n++,r.unshift(n,0),t.splice.apply(t,r),this.$updateRows()}}},e.prototype.$updateRows=function(){var e=this.session.lineWidgets;if(e){var t=!0;e.forEach((function(e,n){if(e)for(t=!1,e.row=n;e.$oldWidget;)e.$oldWidget.row=n,e=e.$oldWidget})),t&&(this.session.lineWidgets=null)}},e.prototype.$registerLineWidget=function(e){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var t=this.session.lineWidgets[e.row];return t&&(e.$oldWidget=t,t.el&&t.el.parentNode&&(t.el.parentNode.removeChild(t.el),t._inDocument=!1)),this.session.lineWidgets[e.row]=e,e},e.prototype.addLineWidget=function(e){if(this.$registerLineWidget(e),e.session=this.session,!this.editor)return e;var t=this.editor.renderer;e.html&&!e.el&&(e.el=o.createElement("div"),e.el.innerHTML=e.html),e.text&&!e.el&&(e.el=o.createElement("div"),e.el.textContent=e.text),e.el&&(o.addCssClass(e.el,"ace_lineWidgetContainer"),e.className&&o.addCssClass(e.el,e.className),e.el.style.position="absolute",e.el.style.zIndex=5,t.container.appendChild(e.el),e._inDocument=!0,e.coverGutter||(e.el.style.zIndex=3),null==e.pixelHeight&&(e.pixelHeight=e.el.offsetHeight)),null==e.rowCount&&(e.rowCount=e.pixelHeight/t.layerConfig.lineHeight);var n=this.session.getFoldAt(e.row,0);if(e.$fold=n,n){var i=this.session.lineWidgets;e.row!=n.end.row||i[n.start.row]?e.hidden=!0:i[n.start.row]=e}return this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows(),this.renderWidgets(null,t),this.onWidgetChanged(e),e},e.prototype.removeLineWidget=function(e){if(e._inDocument=!1,e.session=null,e.el&&e.el.parentNode&&e.el.parentNode.removeChild(e.el),e.editor&&e.editor.destroy)try{e.editor.destroy()}catch(e){}if(this.session.lineWidgets){var t=this.session.lineWidgets[e.row];if(t==e)this.session.lineWidgets[e.row]=e.$oldWidget,e.$oldWidget&&this.onWidgetChanged(e.$oldWidget);else for(;t;){if(t.$oldWidget==e){t.$oldWidget=e.$oldWidget;break}t=t.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows()},e.prototype.getWidgetsAtRow=function(e){for(var t=this.session.lineWidgets,n=t&&t[e],o=[];n;)o.push(n),n=n.$oldWidget;return o},e.prototype.onWidgetChanged=function(e){this.session._changedWidgets.push(e),this.editor&&this.editor.renderer.updateFull()},e.prototype.measureWidgets=function(e,t){var n=this.session._changedWidgets,o=t.layerConfig;if(n&&n.length){for(var i=1/0,r=0;r0&&!o[i];)i--;this.firstRow=n.firstRow,this.lastRow=n.lastRow,t.$cursorLayer.config=n;for(var s=i;s<=r;s++){var a=o[s];if(a&&a.el)if(a.hidden)a.el.style.top=-100-(a.pixelHeight||0)+"px";else{a._inDocument||(a._inDocument=!0,t.container.appendChild(a.el));var l=t.$cursorLayer.getPixelPosition({row:s,column:0},!0).top;a.coverLine||(l+=n.lineHeight*this.session.getRowLineCount(a.row)),a.el.style.top=l-n.offset+"px";var c=a.coverGutter?0:t.gutterWidth;a.fixedWidth||(c-=t.scrollLeft),a.el.style.left=c+"px",a.fullWidth&&a.screenWidth&&(a.el.style.minWidth=n.width+2*n.padding+"px"),a.fixedWidth?a.el.style.right=t.scrollBar.getWidth()+"px":a.el.style.right=""}}}},e}();t.LineWidgets=i})),ace.define("ace/keyboard/gutter_handler",["require","exports","module","ace/lib/keys","ace/mouse/default_gutter_handler"],(function(e,t,n){"use strict";var o=e("../lib/keys"),i=e("../mouse/default_gutter_handler").GutterTooltip,r=function(){function e(e){this.editor=e,this.gutterLayer=e.renderer.$gutterLayer,this.element=e.renderer.$gutter,this.lines=e.renderer.$gutterLayer.$lines,this.activeRowIndex=null,this.activeLane=null,this.annotationTooltip=new i(this.editor)}return e.prototype.addListener=function(){this.element.addEventListener("keydown",this.$onGutterKeyDown.bind(this)),this.element.addEventListener("focusout",this.$blurGutter.bind(this)),this.editor.on("mousewheel",this.$blurGutter.bind(this))},e.prototype.removeListener=function(){this.element.removeEventListener("keydown",this.$onGutterKeyDown.bind(this)),this.element.removeEventListener("focusout",this.$blurGutter.bind(this)),this.editor.off("mousewheel",this.$blurGutter.bind(this))},e.prototype.$onGutterKeyDown=function(e){if(this.annotationTooltip.isOpen)return e.preventDefault(),void(e.keyCode===o.escape&&this.annotationTooltip.hideTooltip());if(e.target===this.element){if(e.keyCode!=o.enter)return;e.preventDefault();var t=this.editor.getCursorPosition().row;return this.editor.isRowVisible(t)||this.editor.scrollToLine(t,!0,!0),void setTimeout(function(){var e=this.$rowToRowIndex(this.gutterLayer.$cursorCell.row),t=this.$findNearestFoldWidget(e),n=this.$findNearestAnnotation(e);if(null!==t||null!==n)return null===t&&null!==n?(this.activeRowIndex=n,this.activeLane="annotation",void this.$focusAnnotation(this.activeRowIndex)):null!==t&&null===n?(this.activeRowIndex=t,this.activeLane="fold",void this.$focusFoldWidget(this.activeRowIndex)):Math.abs(n-e)0||e+t=0&&this.$isFoldWidgetVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isFoldWidgetVisible(e+t))return e+t}return null},e.prototype.$findNearestAnnotation=function(e){if(this.$isAnnotationVisible(e))return e;for(var t=0;e-t>0||e+t=0&&this.$isAnnotationVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isAnnotationVisible(e+t))return e+t}return null},e.prototype.$focusFoldWidget=function(e){if(null!=e){var t=this.$getFoldWidget(e);t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus()}},e.prototype.$focusAnnotation=function(e){if(null!=e){var t=this.$getAnnotation(e);t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus()}},e.prototype.$blurFoldWidget=function(e){var t=this.$getFoldWidget(e);t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur()},e.prototype.$blurAnnotation=function(e){var t=this.$getAnnotation(e);t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur()},e.prototype.$moveFoldWidgetUp=function(){for(var e=this.activeRowIndex;e>0;)if(e--,this.$isFoldWidgetVisible(e))return this.$blurFoldWidget(this.activeRowIndex),this.activeRowIndex=e,void this.$focusFoldWidget(this.activeRowIndex)},e.prototype.$moveFoldWidgetDown=function(){for(var e=this.activeRowIndex;e0;)if(e--,this.$isAnnotationVisible(e))return this.$blurAnnotation(this.activeRowIndex),this.activeRowIndex=e,void this.$focusAnnotation(this.activeRowIndex)},e.prototype.$moveAnnotationDown=function(){for(var e=this.activeRowIndex;e=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},i=e("./lib/oop"),r=e("./lib/dom"),s=e("./lib/lang"),a=e("./lib/useragent"),l=e("./keyboard/textinput").TextInput,c=e("./mouse/mouse_handler").MouseHandler,u=e("./mouse/fold_handler").FoldHandler,h=e("./keyboard/keybinding").KeyBinding,d=e("./edit_session").EditSession,p=e("./search").Search,g=e("./range").Range,m=e("./lib/event_emitter").EventEmitter,f=e("./commands/command_manager").CommandManager,y=e("./commands/default_commands").commands,v=e("./config"),b=e("./token_iterator").TokenIterator,w=e("./line_widgets").LineWidgets,x=e("./keyboard/gutter_handler").GutterKeyboardHandler,k=e("./config").nls,C=e("./clipboard"),$=e("./lib/keys"),S=function(){function e(t,n,o){this.$toDestroy=[];var i=t.getContainerElement();this.container=i,this.renderer=t,this.id="editor"+ ++e.$uid,this.commands=new f(a.isMac?"mac":"win",y),"object"==typeof document&&(this.textInput=new l(t.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.$mouseHandler=new c(this),new u(this)),this.keyBinding=new h(this),this.$search=(new p).set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=s.delayedCall(function(){this._signal("input",{}),this.session&&!this.session.destroyed&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on("change",(function(e,t){t._$emitInputEvent.schedule(31)})),this.setSession(n||o&&o.session||new d("")),v.resetOptions(this),o&&this.setOptions(o),v._signal("editor",this)}return e.prototype.$initOperationListeners=function(){this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0),this.$opResetTimer=s.delayedCall(this.endOperation.bind(this,!0)),this.on("change",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.docChanged=!0}.bind(this),!0),this.on("changeSelection",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.selectionChanged=!0}.bind(this),!0)},e.prototype.startOperation=function(e){if(this.curOp){if(!e||this.curOp.command)return;this.prevOp=this.curOp}e||(this.previousCommand=null,e={}),this.$opResetTimer.schedule(),this.curOp=this.session.curOp={command:e.command||{},args:e.args,scrollTop:this.renderer.scrollTop},this.curOp.selectionBefore=this.selection.toJSON()},e.prototype.endOperation=function(e){if(this.curOp&&this.session){if(e&&!1===e.returnValue||!this.session)return this.curOp=null;if(1==e&&this.curOp.command&&"mouse"==this.curOp.command.name)return;if(this._signal("beforeEndOperation"),!this.curOp)return;var t=this.curOp.command,n=t&&t.scrollIntoView;if(n){switch(n){case"center-animate":n="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var o=this.selection.getRange(),i=this.renderer.layerConfig;(o.start.row>=i.lastRow||o.end.row<=i.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead)}"animate"==n&&this.renderer.animateScrolling(this.curOp.scrollTop)}var r=this.selection.toJSON();this.curOp.selectionAfter=r,this.$lastSel=this.selection.toJSON(),this.session.getUndoManager().addSelection(r),this.prevOp=this.curOp,this.curOp=null}},e.prototype.$historyTracker=function(e){if(this.$mergeUndoDeltas){var t=this.prevOp,n=this.$mergeableCommands,o=t.command&&e.command.name==t.command.name;if("insertstring"==e.command.name){var i=e.args;void 0===this.mergeNextCommand&&(this.mergeNextCommand=!0),o=o&&this.mergeNextCommand&&(!/\s/.test(i)||/\s/.test(t.args)),this.mergeNextCommand=!0}else o=o&&-1!==n.indexOf(e.command.name);"always"!=this.$mergeUndoDeltas&&Date.now()-this.sequenceStartTime>2e3&&(o=!1),o?this.session.mergeUndoDeltas=!0:-1!==n.indexOf(e.command.name)&&(this.sequenceStartTime=Date.now())}},e.prototype.setKeyboardHandler=function(e,t){if(e&&"string"==typeof e&&"ace"!=e){this.$keybindingId=e;var n=this;v.loadModule(["keybinding",e],(function(o){n.$keybindingId==e&&n.keyBinding.setKeyboardHandler(o&&o.handler),t&&t()}))}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},e.prototype.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},e.prototype.setSession=function(e){if(this.session!=e){this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var n=this.session.getSelection();n.off("changeCursor",this.$onCursorChange),n.off("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal("changeSession",{session:e,oldSession:t}),this.curOp=null,t&&t._signal("changeEditor",{oldEditor:this}),e&&e._signal("changeEditor",{editor:this}),e&&!e.destroyed&&e.bgTokenizer.scheduleStart()}},e.prototype.getSession=function(){return this.session},e.prototype.setValue=function(e,t){return this.session.doc.setValue(e),t?1==t?this.navigateFileEnd():-1==t&&this.navigateFileStart():this.selectAll(),e},e.prototype.getValue=function(){return this.session.getValue()},e.prototype.getSelection=function(){return this.selection},e.prototype.resize=function(e){this.renderer.onResize(e)},e.prototype.setTheme=function(e,t){this.renderer.setTheme(e,t)},e.prototype.getTheme=function(){return this.renderer.getTheme()},e.prototype.setStyle=function(e){this.renderer.setStyle(e)},e.prototype.unsetStyle=function(e){this.renderer.unsetStyle(e)},e.prototype.getFontSize=function(){return this.getOption("fontSize")||r.computedStyle(this.container).fontSize},e.prototype.setFontSize=function(e){this.setOption("fontSize",e)},e.prototype.$highlightBrackets=function(){if(!this.$highlightPending){var e=this;this.$highlightPending=!0,setTimeout((function(){e.$highlightPending=!1;var t=e.session;if(t&&!t.destroyed){t.$bracketHighlight&&(t.$bracketHighlight.markerIds.forEach((function(e){t.removeMarker(e)})),t.$bracketHighlight=null);var n=e.getCursorPosition(),o=e.getKeyboardHandler(),i=o&&o.$getDirectionForHighlight&&o.$getDirectionForHighlight(e),r=t.getMatchingBracketRanges(n,i);if(!r){var s=new b(t,n.row,n.column).getCurrentToken();if(s&&/\b(?:tag-open|tag-name)/.test(s.type)){var a=t.getMatchingTags(n);a&&(r=[a.openTagName,a.closeTagName])}}if(!r&&t.$mode.getMatching&&(r=t.$mode.getMatching(e.session)),r){var l="ace_bracket";Array.isArray(r)?1==r.length&&(l="ace_error_bracket"):r=[r],2==r.length&&(0==g.comparePoints(r[0].end,r[1].start)?r=[g.fromPoints(r[0].start,r[1].end)]:0==g.comparePoints(r[0].start,r[1].end)&&(r=[g.fromPoints(r[1].start,r[0].end)])),t.$bracketHighlight={ranges:r,markerIds:r.map((function(e){return t.addMarker(e,l,"text")}))},e.getHighlightIndentGuides()&&e.renderer.$textLayer.$highlightIndentGuide()}else e.getHighlightIndentGuides()&&e.renderer.$textLayer.$highlightIndentGuide()}}),50)}},e.prototype.focus=function(){this.textInput.focus()},e.prototype.isFocused=function(){return this.textInput.isFocused()},e.prototype.blur=function(){this.textInput.blur()},e.prototype.onFocus=function(e){this.$isFocused||(this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",e))},e.prototype.onBlur=function(e){this.$isFocused&&(this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",e))},e.prototype.$cursorChange=function(){this.renderer.updateCursor(),this.$highlightBrackets(),this.$updateHighlightActiveLine()},e.prototype.onDocumentChange=function(e){var t=this.session.$useWrapMode,n=e.start.row==e.end.row?e.end.row:1/0;this.renderer.updateLines(e.start.row,n,t),this._signal("change",e),this.$cursorChange()},e.prototype.onTokenizerUpdate=function(e){var t=e.data;this.renderer.updateLines(t.first,t.last)},e.prototype.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},e.prototype.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},e.prototype.onCursorChange=function(){this.$cursorChange(),this._signal("changeSelection")},e.prototype.$updateHighlightActiveLine=function(){var e,t=this.getSession();if(this.$highlightActiveLine&&("line"==this.$selectionStyle&&this.selection.isMultiLine()||(e=this.getCursorPosition()),this.renderer.theme&&this.renderer.theme.$selectionColorConflict&&!this.selection.isEmpty()&&(e=!1),!this.renderer.$maxLines||1!==this.session.getLength()||this.renderer.$minLines>1||(e=!1)),t.$highlightLineMarker&&!e)t.removeMarker(t.$highlightLineMarker.id),t.$highlightLineMarker=null;else if(!t.$highlightLineMarker&&e){var n=new g(e.row,e.column,e.row,1/0);n.id=t.addMarker(n,"ace_active-line","screenLine"),t.$highlightLineMarker=n}else e&&(t.$highlightLineMarker.start.row=e.row,t.$highlightLineMarker.end.row=e.row,t.$highlightLineMarker.start.column=e.column,t._signal("changeBackMarker"))},e.prototype.onSelectionChange=function(e){var t=this.session;if(t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var n=this.selection.getRange(),o=this.getSelectionStyle();t.$selectionMarker=t.addMarker(n,"ace_selection",o)}var i=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(i),this._signal("changeSelection")},e.prototype.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(!t.isEmpty()&&!t.isMultiLine()){var n=t.start.column,o=t.end.column,i=e.getLine(t.start.row),r=i.substring(n,o);if(!(r.length>5e3)&&/[\w\d]/.test(r)){var s=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:r}),a=i.substring(n-1,o+1);if(s.test(a))return s}}},e.prototype.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},e.prototype.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},e.prototype.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},e.prototype.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},e.prototype.onChangeMode=function(e){this.renderer.updateText(),this._emit("changeMode",e)},e.prototype.onChangeWrapLimit=function(){this.renderer.updateFull()},e.prototype.onChangeWrapMode=function(){this.renderer.onResize(!0)},e.prototype.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},e.prototype.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},e.prototype.getCopyText=function(){var e=this.getSelectedText(),t=this.session.doc.getNewLineCharacter(),n=!1;if(!e&&this.$copyWithEmptySelection){n=!0;for(var o=this.selection.getAllRanges(),i=0;ia.search(/\S|$/)){var l=a.substr(i.column).search(/\S|$/);n.doc.removeInLine(i.row,i.column,i.column+l)}}this.clearSelection();var c=i.column,u=n.getState(i.row),h=(a=n.getLine(i.row),o.checkOutdent(u,a,e));if(n.insert(i,e),r&&r.selection&&(2==r.selection.length?this.selection.setSelectionRange(new g(i.row,c+r.selection[0],i.row,c+r.selection[1])):this.selection.setSelectionRange(new g(i.row+r.selection[0],r.selection[1],i.row+r.selection[2],r.selection[3]))),this.$enableAutoIndent){if(n.getDocument().isNewLine(e)){var d=o.getNextLineIndent(u,a.slice(0,i.column),n.getTabString());n.insert({row:i.row+1,column:0},d)}h&&o.autoOutdent(u,n,i.row)}},e.prototype.autoIndent=function(){var e,t,n=this.session,o=n.getMode();if(this.selection.isEmpty())e=0,t=n.doc.getLength()-1;else{var i=this.getSelectionRange();e=i.start.row,t=i.end.row}for(var r,s,a,l="",c="",u="",h=n.getTabString(),d=e;d<=t;d++)d>0&&(l=n.getState(d-1),c=n.getLine(d-1),u=o.getNextLineIndent(l,c,h)),r=n.getLine(d),u!==(s=o.$getIndent(r))&&(s.length>0&&(a=new g(d,0,d,s.length),n.remove(a)),u.length>0&&n.insert({row:d,column:0},u)),o.autoOutdent(l,n,d)},e.prototype.onTextInput=function(e,t){if(!t)return this.keyBinding.onTextInput(e);this.startOperation({command:{name:"insertstring"}});var n=this.applyComposition.bind(this,e,t);this.selection.rangeCount?this.forEachSelection(n):n(),this.endOperation()},e.prototype.applyComposition=function(e,t){var n;(t.extendLeft||t.extendRight)&&((n=this.selection.getRange()).start.column-=t.extendLeft,n.end.column+=t.extendRight,n.start.column<0&&(n.start.row--,n.start.column+=this.session.getLine(n.start.row).length+1),this.selection.setRange(n),e||n.isEmpty()||this.remove()),!e&&this.selection.isEmpty()||this.insert(e,!0),(t.restoreStart||t.restoreEnd)&&((n=this.selection.getRange()).start.column-=t.restoreStart,n.end.column-=t.restoreEnd,this.selection.setRange(n))},e.prototype.onCommandKey=function(e,t,n){return this.keyBinding.onCommandKey(e,t,n)},e.prototype.setOverwrite=function(e){this.session.setOverwrite(e)},e.prototype.getOverwrite=function(){return this.session.getOverwrite()},e.prototype.toggleOverwrite=function(){this.session.toggleOverwrite()},e.prototype.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},e.prototype.getScrollSpeed=function(){return this.getOption("scrollSpeed")},e.prototype.setDragDelay=function(e){this.setOption("dragDelay",e)},e.prototype.getDragDelay=function(){return this.getOption("dragDelay")},e.prototype.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},e.prototype.getSelectionStyle=function(){return this.getOption("selectionStyle")},e.prototype.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},e.prototype.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},e.prototype.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},e.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},e.prototype.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},e.prototype.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},e.prototype.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},e.prototype.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},e.prototype.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},e.prototype.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},e.prototype.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},e.prototype.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},e.prototype.setHighlightIndentGuides=function(e){this.renderer.setHighlightIndentGuides(e)},e.prototype.getHighlightIndentGuides=function(){return this.renderer.getHighlightIndentGuides()},e.prototype.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},e.prototype.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},e.prototype.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},e.prototype.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},e.prototype.setReadOnly=function(e){this.setOption("readOnly",e)},e.prototype.getReadOnly=function(){return this.getOption("readOnly")},e.prototype.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},e.prototype.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},e.prototype.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},e.prototype.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},e.prototype.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},e.prototype.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},e.prototype.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},e.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},e.prototype.remove=function(e){this.selection.isEmpty()&&("left"==e?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var n=this.session,o=n.getState(t.start.row),i=n.getMode().transformAction(o,"deletion",this,n,t);if(0===t.end.column){var r=n.getTextRange(t);if("\n"==r[r.length-1]){var s=n.getLine(t.end.row);/^\s+$/.test(s)&&(t.end.column=s.length)}}i&&(t=i)}this.session.remove(t),this.clearSelection()},e.prototype.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.selection.isEmpty()&&this.selection.selectLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},e.prototype.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},e.prototype.setGhostText=function(e,t){this.session.widgetManager||(this.session.widgetManager=new w(this.session),this.session.widgetManager.attach(this)),this.renderer.setGhostText(e,t)},e.prototype.removeGhostText=function(){this.session.widgetManager&&this.renderer.removeGhostText()},e.prototype.transposeLetters=function(){if(this.selection.isEmpty()){var e=this.getCursorPosition(),t=e.column;if(0!==t){var n,o,i=this.session.getLine(e.row);tt.toLowerCase()?1:0}));var i=new g(0,0,0,0);for(o=e.first;o<=e.last;o++){var r=t.getLine(o);i.start.row=o,i.end.row=o,i.end.column=r.length,t.replace(i,n[o-e.first])}},e.prototype.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},e.prototype.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),n=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,n,e)},e.prototype.getNumberAt=function(e,t){var n=/[\-]?[0-9]+(?:\.[0-9]+)?/g;n.lastIndex=0;for(var o=this.session.getLine(e);n.lastIndex=t)return{value:i[0],start:i.index,end:i.index+i[0].length}}return null},e.prototype.modifyNumber=function(e){var t=this.selection.getCursor().row,n=this.selection.getCursor().column,o=new g(t,n-1,t,n),i=this.session.getTextRange(o);if(!isNaN(parseFloat(i))&&isFinite(i)){var r=this.getNumberAt(t,n);if(r){var s=r.value.indexOf(".")>=0?r.start+r.value.indexOf(".")+1:r.end,a=r.start+r.value.length-s,l=parseFloat(r.value);l*=Math.pow(10,a),s!==r.end&&n=a&&r<=l&&(n=t,c.selection.clearSelection(),c.moveCursorTo(e,a+o),c.selection.selectTo(e,l+o)),a=l}));for(var u,h=this.$toggleWordPairs,d=0;d=l&&s<=c&&d.match(/((?:https?|ftp):\/\/[\S]+)/)){a=d.replace(/[\s:.,'";}\]]+$/,"");break}l=c}}catch(e){n={error:e}}finally{try{h&&!h.done&&(i=u.return)&&i.call(u)}finally{if(n)throw n.error}}return a},e.prototype.openLink=function(){var e=this.selection.getCursor(),t=this.findLinkAt(e.row,e.column);return t&&window.open(t,"_blank"),null!=t},e.prototype.removeLines=function(){var e=this.$getSelectedRows();this.session.removeFullLines(e.first,e.last),this.clearSelection()},e.prototype.duplicateSelection=function(){var e=this.selection,t=this.session,n=e.getRange(),o=e.isBackwards();if(n.isEmpty()){var i=n.start.row;t.duplicateLines(i,i)}else{var r=o?n.start:n.end,s=t.insert(r,t.getTextRange(n),!1);n.start=r,n.end=s,e.setSelectionRange(n,o)}},e.prototype.moveLinesDown=function(){this.$moveLines(1,!1)},e.prototype.moveLinesUp=function(){this.$moveLines(-1,!1)},e.prototype.moveText=function(e,t,n){return this.session.moveText(e,t,n)},e.prototype.copyLinesUp=function(){this.$moveLines(-1,!0)},e.prototype.copyLinesDown=function(){this.$moveLines(1,!0)},e.prototype.$moveLines=function(e,t){var n,o,i=this.selection;if(!i.inMultiSelectMode||this.inVirtualSelectionMode){var r=i.toOrientedRange();n=this.$getSelectedRows(r),o=this.session.$moveLines(n.first,n.last,t?0:e),t&&-1==e&&(o=0),r.moveBy(o,0),i.fromOrientedRange(r)}else{var s=i.rangeList.ranges;i.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;for(var a=0,l=0,c=s.length,u=0;up+1)break;p=g.last}for(u--,a=this.session.$moveLines(d,p,t?0:e),t&&-1==e&&(h=u+1);h<=u;)s[h].moveBy(a,0),h++;t||(a=0),l+=a}i.fromOrientedRange(i.ranges[0]),i.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},e.prototype.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},e.prototype.onCompositionStart=function(e){this.renderer.showComposition(e)},e.prototype.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},e.prototype.onCompositionEnd=function(){this.renderer.hideComposition()},e.prototype.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},e.prototype.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},e.prototype.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},e.prototype.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},e.prototype.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},e.prototype.$moveByPage=function(e,t){var n=this.renderer,o=this.renderer.layerConfig,i=e*Math.floor(o.height/o.lineHeight);!0===t?this.selection.$moveSelection((function(){this.moveCursorBy(i,0)})):!1===t&&(this.selection.moveCursorBy(i,0),this.selection.clearSelection());var r=n.scrollTop;n.scrollBy(0,i*o.lineHeight),null!=t&&n.scrollCursorIntoView(null,.5),n.animateScrolling(r)},e.prototype.selectPageDown=function(){this.$moveByPage(1,!0)},e.prototype.selectPageUp=function(){this.$moveByPage(-1,!0)},e.prototype.gotoPageDown=function(){this.$moveByPage(1,!1)},e.prototype.gotoPageUp=function(){this.$moveByPage(-1,!1)},e.prototype.scrollPageDown=function(){this.$moveByPage(1)},e.prototype.scrollPageUp=function(){this.$moveByPage(-1)},e.prototype.scrollToRow=function(e){this.renderer.scrollToRow(e)},e.prototype.scrollToLine=function(e,t,n,o){this.renderer.scrollToLine(e,t,n,o)},e.prototype.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},e.prototype.getCursorPosition=function(){return this.selection.getCursor()},e.prototype.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},e.prototype.getSelectionRange=function(){return this.selection.getRange()},e.prototype.selectAll=function(){this.selection.selectAll()},e.prototype.clearSelection=function(){this.selection.clearSelection()},e.prototype.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},e.prototype.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},e.prototype.jumpToMatching=function(e,t){var n=this.getCursorPosition(),o=new b(this.session,n.row,n.column),i=o.getCurrentToken(),r=0;i&&-1!==i.type.indexOf("tag-name")&&(i=o.stepBackward());var s=i||o.stepForward();if(s){var a,l,c=!1,u={},h=n.column-s.start,d={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(s.value.match(/[{}()\[\]]/g)){for(;h1?u[s.value]++:"=0;--r)this.$tryReplace(n[r],e)&&o++;return this.selection.setSelectionRange(i),o},e.prototype.$tryReplace=function(e,t){var n=this.session.getTextRange(e);return null!==(t=this.$search.replace(n,t))?(e.end=this.session.replace(e,t),e):null},e.prototype.getLastSearchOptions=function(){return this.$search.getOptions()},e.prototype.find=function(e,t,n){t||(t={}),"string"==typeof e||e instanceof RegExp?t.needle=e:"object"==typeof e&&i.mixin(t,e);var o=this.selection.getRange();null==t.needle&&((e=this.session.getTextRange(o)||this.$search.$options.needle)||(o=this.session.getWordRange(o.start.row,o.start.column),e=this.session.getTextRange(o)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:o});var r=this.$search.find(this.session);return t.preventScroll?r:r?(this.revealRange(r,n),r):(t.backwards?o.start=o.end:o.end=o.start,void this.selection.setRange(o))},e.prototype.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},e.prototype.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},e.prototype.revealRange=function(e,t){this.session.unfold(e),this.selection.setSelectionRange(e);var n=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),!1!==t&&this.renderer.animateScrolling(n)},e.prototype.undo=function(){this.session.getUndoManager().undo(this.session),this.renderer.scrollCursorIntoView(null,.5)},e.prototype.redo=function(){this.session.getUndoManager().redo(this.session),this.renderer.scrollCursorIntoView(null,.5)},e.prototype.destroy=function(){this.$toDestroy&&(this.$toDestroy.forEach((function(e){e.destroy()})),this.$toDestroy=null),this.$mouseHandler&&this.$mouseHandler.destroy(),this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy(),this._$emitInputEvent&&this._$emitInputEvent.cancel(),this.removeAllListeners()},e.prototype.setAutoScrollEditorIntoView=function(e){if(e){var t,n=this,o=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var i=this.$scrollAnchor;i.style.cssText="position:absolute",this.container.insertBefore(i,this.container.firstChild);var r=this.on("changeSelection",(function(){o=!0})),s=this.renderer.on("beforeRender",(function(){o&&(t=n.renderer.container.getBoundingClientRect())})),a=this.renderer.on("afterRender",(function(){if(o&&t&&(n.isFocused()||n.searchBox&&n.searchBox.isFocused())){var e=n.renderer,r=e.$cursorLayer.$pixelPos,s=e.layerConfig,a=r.top-s.offset;null!=(o=r.top>=0&&a+t.top<0||!(r.topwindow.innerHeight)&&null)&&(i.style.top=a+"px",i.style.left=r.left+"px",i.style.height=s.lineHeight+"px",i.scrollIntoView(o)),o=t=null}}));this.setAutoScrollEditorIntoView=function(e){e||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",r),this.renderer.off("afterRender",a),this.renderer.off("beforeRender",s))}}},e.prototype.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;t&&(t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&"wide"!=e,r.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e)))},e.prototype.prompt=function(e,t,n){var o=this;v.loadModule("ace/ext/prompt",(function(i){i.prompt(o,e,t,n)}))},e}();S.$uid=0,S.prototype.curOp=null,S.prototype.prevOp={},S.prototype.$mergeableCommands=["backspace","del","insertstring"],S.prototype.$toggleWordPairs=[["first","last"],["true","false"],["yes","no"],["width","height"],["top","bottom"],["right","left"],["on","off"],["x","y"],["get","set"],["max","min"],["horizontal","vertical"],["show","hide"],["add","remove"],["up","down"],["before","after"],["even","odd"],["in","out"],["inside","outside"],["next","previous"],["increase","decrease"],["attach","detach"],["&&","||"],["==","!="]],i.implement(S.prototype,m),v.defineOptions(S.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.textInput.setReadOnly(e),this.$resetCursorStyle()},initialValue:!1},copyWithEmptySelection:{set:function(e){this.textInput.setCopyWithEmptySelection(e)},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},enableAutoIndent:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.$keybindingId},handlesSet:!0},value:{set:function(e){this.session.setValue(e)},get:function(){return this.getValue()},handlesSet:!0,hidden:!0},session:{set:function(e){this.setSession(e)},get:function(){return this.session},handlesSet:!0,hidden:!0},showLineNumbers:{set:function(e){this.renderer.$gutterLayer.setShowLineNumbers(e),this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER),e&&this.$relativeLineNumbers?E.attach(this):E.detach(this)},initialValue:!0},relativeLineNumbers:{set:function(e){this.$showLineNumbers&&e?E.attach(this):E.detach(this)}},placeholder:{set:function(e){this.$updatePlaceholder||(this.$updatePlaceholder=function(){var e=this.session&&(this.renderer.$composition||this.session.getLength()>1||this.session.getLine(0).length>0);if(e&&this.renderer.placeholderNode)this.renderer.off("afterRender",this.$updatePlaceholder),r.removeCssClass(this.container,"ace_hasPlaceholder"),this.renderer.placeholderNode.remove(),this.renderer.placeholderNode=null;else if(e||this.renderer.placeholderNode)!e&&this.renderer.placeholderNode&&(this.renderer.placeholderNode.textContent=this.$placeholder||"");else{this.renderer.on("afterRender",this.$updatePlaceholder),r.addCssClass(this.container,"ace_hasPlaceholder");var t=r.createElement("div");t.className="ace_placeholder",t.textContent=this.$placeholder||"",this.renderer.placeholderNode=t,this.renderer.content.appendChild(this.renderer.placeholderNode)}}.bind(this),this.on("input",this.$updatePlaceholder)),this.$updatePlaceholder()}},enableKeyboardAccessibility:{set:function(e){var t,n={name:"blurTextInput",description:"Set focus to the editor content div to allow tabbing through the page",bindKey:"Esc",exec:function(e){e.blur(),e.renderer.scroller.focus()},readOnly:!0},o=function(e){if(e.target==this.renderer.scroller&&e.keyCode===$.enter){e.preventDefault();var t=this.getCursorPosition().row;this.isRowVisible(t)||this.scrollToLine(t,!0,!0),this.focus()}};e?(this.renderer.enableKeyboardAccessibility=!0,this.renderer.keyboardFocusClassName="ace_keyboard-focus",this.textInput.getElement().setAttribute("tabindex",-1),this.textInput.setNumberOfExtraLines(a.isWin?3:0),this.renderer.scroller.setAttribute("tabindex",0),this.renderer.scroller.setAttribute("role","group"),this.renderer.scroller.setAttribute("aria-roledescription",k("editor")),this.renderer.scroller.classList.add(this.renderer.keyboardFocusClassName),this.renderer.scroller.setAttribute("aria-label",k("Editor content, press Enter to start editing, press Escape to exit")),this.renderer.scroller.addEventListener("keyup",o.bind(this)),this.commands.addCommand(n),this.renderer.$gutter.setAttribute("tabindex",0),this.renderer.$gutter.setAttribute("aria-hidden",!1),this.renderer.$gutter.setAttribute("role","group"),this.renderer.$gutter.setAttribute("aria-roledescription",k("editor")),this.renderer.$gutter.setAttribute("aria-label",k("Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit")),this.renderer.$gutter.classList.add(this.renderer.keyboardFocusClassName),this.renderer.content.setAttribute("aria-hidden",!0),t||(t=new x(this)),t.addListener()):(this.renderer.enableKeyboardAccessibility=!1,this.textInput.getElement().setAttribute("tabindex",0),this.textInput.setNumberOfExtraLines(0),this.renderer.scroller.setAttribute("tabindex",-1),this.renderer.scroller.removeAttribute("role"),this.renderer.scroller.removeAttribute("aria-roledescription"),this.renderer.scroller.classList.remove(this.renderer.keyboardFocusClassName),this.renderer.scroller.removeAttribute("aria-label"),this.renderer.scroller.removeEventListener("keyup",o.bind(this)),this.commands.removeCommand(n),this.renderer.content.removeAttribute("aria-hidden"),this.renderer.$gutter.setAttribute("tabindex",-1),this.renderer.$gutter.setAttribute("aria-hidden",!0),this.renderer.$gutter.removeAttribute("role"),this.renderer.$gutter.removeAttribute("aria-roledescription"),this.renderer.$gutter.removeAttribute("aria-label"),this.renderer.$gutter.classList.remove(this.renderer.keyboardFocusClassName),t&&t.removeListener())},initialValue:!1},customScrollbar:"renderer",hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",displayIndentGuides:"renderer",highlightIndentGuides:"renderer",showGutter:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",hasCssTransforms:"renderer",maxPixelHeight:"renderer",useTextareaForIME:"renderer",useResizeObserver:"renderer",useSvgGutterIcons:"renderer",showFoldedAnnotations:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimeout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",navigateWithinSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"});var E={getText:function(e,t){return(Math.abs(e.selection.lead.row-t)||t+1+(t<9?"·":""))+""},getWidth:function(e,t,n){return Math.max(t.toString().length,(n.lastRow+1).toString().length,2)*n.characterWidth},update:function(e,t){t.renderer.$loop.schedule(t.renderer.CHANGE_GUTTER)},attach:function(e){e.renderer.$gutterLayer.$renderer=this,e.on("changeSelection",this.update),this.update(null,e)},detach:function(e){e.renderer.$gutterLayer.$renderer==this&&(e.renderer.$gutterLayer.$renderer=null),e.off("changeSelection",this.update),this.update(null,e)}};t.Editor=S})),ace.define("ace/layer/lines",["require","exports","module","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=function(){function e(e,t){this.element=e,this.canvasHeight=t||5e5,this.element.style.height=2*this.canvasHeight+"px",this.cells=[],this.cellCache=[],this.$offsetCoefficient=0}return e.prototype.moveContainer=function(e){o.translate(this.element,0,-e.firstRowScreen*e.lineHeight%this.canvasHeight-e.offset*this.$offsetCoefficient)},e.prototype.pageChanged=function(e,t){return Math.floor(e.firstRowScreen*e.lineHeight/this.canvasHeight)!==Math.floor(t.firstRowScreen*t.lineHeight/this.canvasHeight)},e.prototype.computeLineTop=function(e,t,n){var o=t.firstRowScreen*t.lineHeight,i=Math.floor(o/this.canvasHeight);return n.documentToScreenRow(e,0)*t.lineHeight-i*this.canvasHeight},e.prototype.computeLineHeight=function(e,t,n){return t.lineHeight*n.getRowLineCount(e)},e.prototype.getLength=function(){return this.cells.length},e.prototype.get=function(e){return this.cells[e]},e.prototype.shift=function(){this.$cacheCell(this.cells.shift())},e.prototype.pop=function(){this.$cacheCell(this.cells.pop())},e.prototype.push=function(e){if(Array.isArray(e)){this.cells.push.apply(this.cells,e);for(var t=o.createFragment(this.element),n=0;nr&&(l=i.end.row+1,r=(i=t.getNextFoldLine(l,i))?i.start.row:1/0),l>o){for(;this.$lines.getLength()>a+1;)this.$lines.pop();break}(s=this.$lines.get(++a))?s.row=l:(s=this.$lines.createCell(l,e,this.session,u),this.$lines.push(s)),this.$renderCell(s,e,i,l),l++}this._signal("afterRender"),this.$updateGutterWidth(e)},e.prototype.$updateGutterWidth=function(e){var t=this.session,n=t.gutterRenderer||this.$renderer,o=t.$firstLineNumber,i=this.$lines.last()?this.$lines.last().text:"";(this.$fixedWidth||t.$useWrapMode)&&(i=t.getLength()+o-1);var r=n?n.getWidth(t,i,e):i.toString().length*e.characterWidth,s=this.$padding||this.$computePadding();(r+=s.left+s.right)===this.gutterWidth||isNaN(r)||(this.gutterWidth=r,this.element.parentNode.style.width=this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._signal("changeGutterWidth",r))},e.prototype.$updateCursorRow=function(){if(this.$highlightGutterLine){var e=this.session.selection.getCursor();this.$cursorRow!==e.row&&(this.$cursorRow=e.row)}},e.prototype.updateLineHighlight=function(){if(this.$highlightGutterLine){var e=this.session.selection.cursor.row;if(this.$cursorRow=e,!this.$cursorCell||this.$cursorCell.row!=e){this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ",""));var t=this.$lines.cells;this.$cursorCell=null;for(var n=0;n=this.$cursorRow){if(o.row>this.$cursorRow){var i=this.session.getFoldLine(this.$cursorRow);if(!(n>0&&i&&i.start.row==t[n-1].row))break;o=t[n-1]}o.element.className="ace_gutter-active-line "+o.element.className,this.$cursorCell=o;break}}}}},e.prototype.scrollLines=function(e){var t=this.config;if(this.config=e,this.$updateCursorRow(),this.$lines.pageChanged(t,e))return this.update(e);this.$lines.moveContainer(e);var n=Math.min(e.lastRow+e.gutterOffset,this.session.getLength()-1),o=this.oldLastRow;if(this.oldLastRow=n,!t||o0;i--)this.$lines.shift();if(o>n)for(i=this.session.getFoldedRowCount(n+1,o);i>0;i--)this.$lines.pop();e.firstRowo&&this.$lines.push(this.$renderLines(e,o+1,n)),this.updateLineHighlight(),this._signal("afterRender"),this.$updateGutterWidth(e)},e.prototype.$renderLines=function(e,t,n){for(var o=[],i=t,r=this.session.getNextFoldLine(i),s=r?r.start.row:1/0;i>s&&(i=r.end.row+1,s=(r=this.session.getNextFoldLine(i,r))?r.start.row:1/0),!(i>n);){var a=this.$lines.createCell(i,e,this.session,u);this.$renderCell(a,e,r,i),o.push(a),i++}return o},e.prototype.$renderCell=function(e,t,n,i){var r=e.element,s=this.session,a=r.childNodes[0],c=r.childNodes[1],u=r.childNodes[2],h=u.firstChild,d=s.$firstLineNumber,p=s.$breakpoints,g=s.$decorations,m=s.gutterRenderer||this.$renderer,f=this.$showFoldWidgets&&s.foldWidgets,y=n?n.start.row:Number.MAX_VALUE,v=t.lineHeight+"px",b=this.$useSvgGutterIcons?"ace_gutter-cell_svg-icons ":"ace_gutter-cell ",w=this.$useSvgGutterIcons?"ace_icon_svg":"ace_icon",x=(m?m.getText(s,i):i+d).toString();if(this.$highlightGutterLine&&(i==this.$cursorRow||n&&i=y&&this.$cursorRow<=n.end.row)&&(b+="ace_gutter-active-line ",this.$cursorCell!=e&&(this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ","")),this.$cursorCell=e)),p[i]&&(b+=p[i]),g[i]&&(b+=g[i]),this.$annotations[i]&&i!==y&&(b+=this.$annotations[i].className),f){var k=f[i];null==k&&(k=f[i]=s.getFoldWidget(i))}if(k){var C="ace_fold-widget ace_"+k,$="start"==k&&i==y&&in.right-t.right?"foldWidgets":void 0},e}();function u(e){var t=document.createTextNode("");e.appendChild(t);var n=o.createElement("span");e.appendChild(n);var i=o.createElement("span");e.appendChild(i);var r=o.createElement("span");return i.appendChild(r),e}c.prototype.$fixedWidth=!1,c.prototype.$highlightGutterLine=!0,c.prototype.$renderer="",c.prototype.$showLineNumbers=!0,c.prototype.$showFoldWidgets=!0,i.implement(c.prototype,s),t.Gutter=c})),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("../range").Range,i=e("../lib/dom"),r=function(){function e(e){this.element=i.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)}return e.prototype.setPadding=function(e){this.$padding=e},e.prototype.setSession=function(e){this.session=e},e.prototype.setMarkers=function(e){this.markers=e},e.prototype.elt=function(e,t){var n=-1!=this.i&&this.element.childNodes[this.i];n?this.i++:(n=document.createElement("div"),this.element.appendChild(n),this.i=-1),n.style.cssText=t,n.className=e},e.prototype.update=function(e){if(e){var t;for(var n in this.config=e,this.i=0,this.markers){var o=this.markers[n];if(o.range){var i=o.range.clipRows(e.firstRow,e.lastRow);if(!i.isEmpty())if(i=i.toScreenRange(this.session),o.renderer){var r=this.$getTop(i.start.row,e),s=this.$padding+i.start.column*e.characterWidth;o.renderer(t,i,s,r,e)}else"fullLine"==o.type?this.drawFullLineMarker(t,i,o.clazz,e):"screenLine"==o.type?this.drawScreenLineMarker(t,i,o.clazz,e):i.isMultiLine()?"text"==o.type?this.drawTextMarker(t,i,o.clazz,e):this.drawMultiLineMarker(t,i,o.clazz,e):this.drawSingleLineMarker(t,i,o.clazz+" ace_start ace_br15",e)}else o.update(t,this,this.session,e)}if(-1!=this.i)for(;this.id?4:0)|(c==l?8:0)),i,c==l?0:1,r)},e.prototype.drawMultiLineMarker=function(e,t,n,o,i){var r=this.$padding,s=o.lineHeight,a=this.$getTop(t.start.row,o),l=r+t.start.column*o.characterWidth;if(i=i||"",this.session.$bidiHandler.isBidiRow(t.start.row)?((c=t.clone()).end.row=c.start.row,c.end.column=this.session.getLine(c.start.row).length,this.drawBidiSingleLineMarker(e,c,n+" ace_br1 ace_start",o,null,i)):this.elt(n+" ace_br1 ace_start","height:"+s+"px;right:0;top:"+a+"px;left:"+l+"px;"+(i||"")),this.session.$bidiHandler.isBidiRow(t.end.row)){var c;(c=t.clone()).start.row=c.end.row,c.start.column=0,this.drawBidiSingleLineMarker(e,c,n+" ace_br12",o,null,i)}else{a=this.$getTop(t.end.row,o);var u=t.end.column*o.characterWidth;this.elt(n+" ace_br12","height:"+s+"px;width:"+u+"px;top:"+a+"px;left:"+r+"px;"+(i||""))}if(!((s=(t.end.row-t.start.row-1)*o.lineHeight)<=0)){a=this.$getTop(t.start.row+1,o);var h=(t.start.column?1:0)|(t.end.column?0:8);this.elt(n+(h?" ace_br"+h:""),"height:"+s+"px;right:0;top:"+a+"px;left:"+r+"px;"+(i||""))}},e.prototype.drawSingleLineMarker=function(e,t,n,o,i,r){if(this.session.$bidiHandler.isBidiRow(t.start.row))return this.drawBidiSingleLineMarker(e,t,n,o,i,r);var s=o.lineHeight,a=(t.end.column+(i||0)-t.start.column)*o.characterWidth,l=this.$getTop(t.start.row,o),c=this.$padding+t.start.column*o.characterWidth;this.elt(n,"height:"+s+"px;width:"+a+"px;top:"+l+"px;left:"+c+"px;"+(r||""))},e.prototype.drawBidiSingleLineMarker=function(e,t,n,o,i,r){var s=o.lineHeight,a=this.$getTop(t.start.row,o),l=this.$padding;this.session.$bidiHandler.getSelections(t.start.column,t.end.column).forEach((function(e){this.elt(n,"height:"+s+"px;width:"+(e.width+(i||0))+"px;top:"+a+"px;left:"+(l+e.left)+"px;"+(r||""))}),this)},e.prototype.drawFullLineMarker=function(e,t,n,o,i){var r=this.$getTop(t.start.row,o),s=o.lineHeight;t.start.row!=t.end.row&&(s+=this.$getTop(t.end.row,o)-r),this.elt(n,"height:"+s+"px;top:"+r+"px;left:0;right:0;"+(i||""))},e.prototype.drawScreenLineMarker=function(e,t,n,o,i){var r=this.$getTop(t.start.row,o),s=o.lineHeight;this.elt(n,"height:"+s+"px;top:"+r+"px;left:0;right:0;"+(i||""))},e}();r.prototype.$padding=0,t.Marker=r})),ace.define("ace/layer/text_util",["require","exports","module"],(function(e,t,n){var o=new Set(["text","rparen","lparen"]);t.isTextToken=function(e){return o.has(e)}})),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/layer/lines","ace/lib/event_emitter","ace/config","ace/layer/text_util"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("../lib/dom"),r=e("../lib/lang"),s=e("./lines").Lines,a=e("../lib/event_emitter").EventEmitter,l=e("../config").nls,c=e("./text_util").isTextToken,u=function(){function e(e){this.dom=i,this.element=this.dom.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this),this.$lines=new s(this.element)}return e.prototype.$updateEolChar=function(){var e=this.session.doc,t="\n"==e.getNewLineCharacter()&&"windows"!=e.getNewLineMode()?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=t)return this.EOL_CHAR=t,!0},e.prototype.setPadding=function(e){this.$padding=e,this.element.style.margin="0 "+e+"px"},e.prototype.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},e.prototype.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},e.prototype.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},e.prototype.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},e.prototype.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},e.prototype.setSession=function(e){this.session=e,e&&this.$computeTabString()},e.prototype.setShowInvisibles=function(e){return this.showInvisibles!=e&&(this.showInvisibles=e,"string"==typeof e?(this.showSpaces=/tab/i.test(e),this.showTabs=/space/i.test(e),this.showEOL=/eol/i.test(e)):this.showSpaces=this.showTabs=this.showEOL=e,this.$computeTabString(),!0)},e.prototype.setDisplayIndentGuides=function(e){return this.displayIndentGuides!=e&&(this.displayIndentGuides=e,this.$computeTabString(),!0)},e.prototype.setHighlightIndentGuides=function(e){return this.$highlightIndentGuides!==e&&(this.$highlightIndentGuides=e,e)},e.prototype.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;for(var t=this.$tabStrings=[0],n=1;nu&&(a=l.end.row+1,u=(l=this.session.getNextFoldLine(a,l))?l.start.row:1/0),!(a>i);){var h=r[s++];if(h){this.dom.removeChildren(h),this.$renderLine(h,a,a==u&&l),c&&(h.style.top=this.$lines.computeLineTop(a,e,this.session)+"px");var d=e.lineHeight*this.session.getRowLength(a)+"px";h.style.height!=d&&(c=!0,h.style.height=d)}a++}if(c)for(;s0;i--)this.$lines.shift();if(t.lastRow>e.lastRow)for(i=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);i>0;i--)this.$lines.pop();e.firstRowt.lastRow&&this.$lines.push(this.$renderLinesFragment(e,t.lastRow+1,e.lastRow)),this.$highlightIndentGuide()},e.prototype.$renderLinesFragment=function(e,t,n){for(var o=[],r=t,s=this.session.getNextFoldLine(r),a=s?s.start.row:1/0;r>a&&(r=s.end.row+1,a=(s=this.session.getNextFoldLine(r,s))?s.start.row:1/0),!(r>n);){var l=this.$lines.createCell(r,e,this.session),c=l.element;this.dom.removeChildren(c),i.setStyle(c.style,"height",this.$lines.computeLineHeight(r,e,this.session)+"px"),i.setStyle(c.style,"top",this.$lines.computeLineTop(r,e,this.session)+"px"),this.$renderLine(c,r,r==a&&s),this.$useLineGroups()?c.className="ace_line_group":c.className="ace_line",o.push(l),r++}return o},e.prototype.update=function(e){this.$lines.moveContainer(e),this.config=e;for(var t=e.firstRow,n=e.lastRow,o=this.$lines;o.getLength();)o.pop();o.push(this.$renderLinesFragment(e,t,n))},e.prototype.$renderToken=function(e,t,n,o){for(var i,s=this,a=/(\t)|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\uFEFF\uFFF9-\uFFFC\u2066\u2067\u2068\u202A\u202B\u202D\u202E\u202C\u2069]+)|(\u3000)|([\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3001-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF])/g,u=this.dom.createFragment(this.element),h=0;i=a.exec(o);){var d=i[1],p=i[2],g=i[3],m=i[4],f=i[5];if(s.showSpaces||!p){var y=h!=i.index?o.slice(h,i.index):"";if(h=i.index+i[0].length,y&&u.appendChild(this.dom.createTextNode(y,this.element)),d){var v=s.session.getScreenTabSize(t+i.index);u.appendChild(s.$tabStrings[v].cloneNode(!0)),t+=v-1}else p?s.showSpaces?((w=this.dom.createElement("span")).className="ace_invisible ace_invisible_space",w.textContent=r.stringRepeat(s.SPACE_CHAR,p.length),u.appendChild(w)):u.appendChild(this.dom.createTextNode(p,this.element)):g?((w=this.dom.createElement("span")).className="ace_invisible ace_invisible_space ace_invalid",w.textContent=r.stringRepeat(s.SPACE_CHAR,g.length),u.appendChild(w)):m?(t+=1,(w=this.dom.createElement("span")).style.width=2*s.config.characterWidth+"px",w.className=s.showSpaces?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",w.textContent=s.showSpaces?s.SPACE_CHAR:m,u.appendChild(w)):f&&(t+=1,(w=this.dom.createElement("span")).style.width=2*s.config.characterWidth+"px",w.className="ace_cjk",w.textContent=f,u.appendChild(w))}}if(u.appendChild(this.dom.createTextNode(h?o.slice(h):o,this.element)),c(n.type))e.appendChild(u);else{var b="ace_"+n.type.replace(/\./g," ace_"),w=this.dom.createElement("span");"fold"==n.type&&(w.style.width=n.value.length*this.config.characterWidth+"px",w.setAttribute("title",l("Unfold code"))),w.className=b,w.appendChild(u),e.appendChild(w)}return t+o.length},e.prototype.renderIndentGuide=function(e,t,n){var o=t.search(this.$indentGuideRe);if(o<=0||o>=n)return t;if(" "==t[0]){for(var i=(o-=o%this.tabSize)/this.tabSize,r=0;ri[r].start.row?this.$highlightIndentGuideMarker.dir=-1:this.$highlightIndentGuideMarker.dir=1;break}if(!this.$highlightIndentGuideMarker.end&&""!==e[t.row]&&t.column===e[t.row].length)for(this.$highlightIndentGuideMarker.dir=1,r=t.row+1;r0)for(var o=0;o=this.$highlightIndentGuideMarker.start+1){if(o.row>=this.$highlightIndentGuideMarker.end)break;this.$setIndentGuideActive(o,t)}}else for(n=e.length-1;n>=0;n--)if(o=e[n],this.$highlightIndentGuideMarker.end&&o.row=s;)a=this.$renderToken(l,a,u,h.substring(0,s-o)),h=h.substring(s-o),o=s,l=this.$createLineElement(),e.appendChild(l),l.appendChild(this.dom.createTextNode(r.stringRepeat(" ",n.indent),this.element)),a=0,s=n[++i]||Number.MAX_VALUE;0!=h.length&&(o+=h.length,a=this.$renderToken(l,a,u,h))}}n[n.length-1]>this.MAX_LINE_LENGTH&&this.$renderOverflowMessage(l,a,null,"",!0)},e.prototype.$renderSimpleLine=function(e,t){for(var n=0,o=0;othis.MAX_LINE_LENGTH)return this.$renderOverflowMessage(e,n,i,r);n=this.$renderToken(e,n,i,r)}}},e.prototype.$renderOverflowMessage=function(e,t,n,o,i){n&&this.$renderToken(e,t,n,o.slice(0,this.MAX_LINE_LENGTH-t));var r=this.dom.createElement("span");r.className="ace_inline_button ace_keyword ace_toggle_wrap",r.textContent=i?"":"",e.appendChild(r)},e.prototype.$renderLine=function(e,t,n){if(n||0==n||(n=this.session.getFoldLine(t)),n)var o=this.$getFoldLineTokens(t,n);else o=this.session.getTokens(t);var i=e;if(o.length){var r=this.session.getRowSplitData(t);r&&r.length?(this.$renderWrappedLine(e,o,r),i=e.lastChild):(i=e,this.$useLineGroups()&&(i=this.$createLineElement(),e.appendChild(i)),this.$renderSimpleLine(i,o))}else this.$useLineGroups()&&(i=this.$createLineElement(),e.appendChild(i));if(this.showEOL&&i){n&&(t=n.end.row);var s=this.dom.createElement("span");s.className="ace_invisible ace_invisible_eol",s.textContent=t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,i.appendChild(s)}},e.prototype.$getFoldLineTokens=function(e,t){var n=this.session,o=[],i=n.getTokens(e);return t.walk((function(e,t,r,s,a){null!=e?o.push({type:"fold",value:e}):(a&&(i=n.getTokens(t)),i.length&&function(e,t,n){for(var i=0,r=0;r+e[i].value.lengthn-t&&(s=s.substring(0,n-t)),o.push({type:e[i].type,value:s}),r=t+s.length,i+=1);rn?o.push({type:e[i].type,value:s.substring(0,n-r)}):o.push(e[i]),r+=s.length,i+=1}}(i,s,r))}),t.end.row,this.session.getLine(t.end.row).length),o},e.prototype.$useLineGroups=function(){return this.session.getUseWrapMode()},e}();u.prototype.EOF_CHAR="¶",u.prototype.EOL_CHAR_LF="¬",u.prototype.EOL_CHAR_CRLF="¤",u.prototype.EOL_CHAR=u.prototype.EOL_CHAR_LF,u.prototype.TAB_CHAR="—",u.prototype.SPACE_CHAR="·",u.prototype.$padding=0,u.prototype.MAX_LINE_LENGTH=1e4,u.prototype.showInvisibles=!1,u.prototype.showSpaces=!1,u.prototype.showTabs=!1,u.prototype.showEOL=!1,u.prototype.displayIndentGuides=!0,u.prototype.$highlightIndentGuides=!0,u.prototype.$tabStrings=[],u.prototype.destroy={},u.prototype.onChangeTabSize=u.prototype.$computeTabString,o.implement(u.prototype,a),t.Text=u})),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=function(){function e(e){this.element=o.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),o.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=this.$updateOpacity.bind(this)}return e.prototype.$updateOpacity=function(e){for(var t=this.cursors,n=t.length;n--;)o.setStyle(t[n].style,"opacity",e?"":"0")},e.prototype.$startCssAnimation=function(){for(var e=this.cursors,t=e.length;t--;)e[t].style.animationDuration=this.blinkInterval+"ms";this.$isAnimating=!0,setTimeout(function(){this.$isAnimating&&o.addCssClass(this.element,"ace_animate-blinking")}.bind(this))},e.prototype.$stopCssAnimation=function(){this.$isAnimating=!1,o.removeCssClass(this.element,"ace_animate-blinking")},e.prototype.setPadding=function(e){this.$padding=e},e.prototype.setSession=function(e){this.session=e},e.prototype.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},e.prototype.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},e.prototype.setSmoothBlinking=function(e){e!=this.smoothBlinking&&(this.smoothBlinking=e,o.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.restartTimer())},e.prototype.addCursor=function(){var e=o.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},e.prototype.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},e.prototype.hideCursor=function(){this.isVisible=!1,o.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},e.prototype.showCursor=function(){this.isVisible=!0,o.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},e.prototype.restartTimer=function(){var e=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.$stopCssAnimation(),this.smoothBlinking&&(this.$isSmoothBlinking=!1,o.removeCssClass(this.element,"ace_smooth-blinking")),e(!0),this.isBlinking&&this.blinkInterval&&this.isVisible)if(this.smoothBlinking&&(this.$isSmoothBlinking=!0,setTimeout(function(){this.$isSmoothBlinking&&o.addCssClass(this.element,"ace_smooth-blinking")}.bind(this))),o.HAS_CSS_ANIMATION)this.$startCssAnimation();else{var t=function(){this.timeoutId=setTimeout((function(){e(!1)}),.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval((function(){e(!0),t()}),this.blinkInterval),t()}else this.$stopCssAnimation()},e.prototype.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var n=this.session.documentToScreenPosition(e);return{left:this.$padding+(this.session.$bidiHandler.isBidiRow(n.row,e.row)?this.session.$bidiHandler.getPosLeft(n.column):n.column*this.config.characterWidth),top:(n.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight}},e.prototype.isCursorInView=function(e,t){return e.top>=0&&e.tope.height+e.offset||s.top<0)&&n>1)){var a=this.cursors[i++]||this.addCursor(),l=a.style;this.drawCursor?this.drawCursor(a,s,e,t[n],this.session):this.isCursorInView(s,e)?(o.setStyle(l,"display","block"),o.translate(a,s.left,s.top),o.setStyle(l,"width",Math.round(e.characterWidth)+"px"),o.setStyle(l,"height",e.lineHeight+"px")):o.setStyle(l,"display","none")}}for(;this.cursors.length>i;)this.removeCursor();var c=this.session.getOverwrite();this.$setOverwrite(c),this.$pixelPos=s,this.restartTimer()},e.prototype.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?o.addCssClass(this.element,"ace_overwrite-cursors"):o.removeCssClass(this.element,"ace_overwrite-cursors"))},e.prototype.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)},e}();i.prototype.$padding=0,i.prototype.drawCursor=null,t.Cursor=i})),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=e("./lib/oop"),s=e("./lib/dom"),a=e("./lib/event"),l=e("./lib/event_emitter").EventEmitter,c=32768,u=function(){function e(e,t){this.element=s.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+t,this.inner=s.createElement("div"),this.inner.className="ace_scrollbar-inner",this.inner.textContent=" ",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,a.addListener(this.element,"scroll",this.onScroll.bind(this)),a.addListener(this.element,"mousedown",a.preventDefault)}return e.prototype.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1},e}();r.implement(u.prototype,l);var h=function(e){function t(t,n){var o=e.call(this,t,"-v")||this;return o.scrollTop=0,o.scrollHeight=0,n.$scrollbarWidth=o.width=s.scrollbarWidth(t.ownerDocument),o.inner.style.width=o.element.style.width=(o.width||15)+5+"px",o.$minWidth=0,o}return i(t,e),t.prototype.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,1!=this.coeff){var e=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},t.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},t.prototype.setHeight=function(e){this.element.style.height=e+"px"},t.prototype.setScrollHeight=function(e){this.scrollHeight=e,e>c?(this.coeff=c/e,e=c):1!=this.coeff&&(this.coeff=1),this.inner.style.height=e+"px"},t.prototype.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)},t}(u);h.prototype.setInnerHeight=h.prototype.setScrollHeight;var d=function(e){function t(t,n){var o=e.call(this,t,"-h")||this;return o.scrollLeft=0,o.height=n.$scrollbarWidth,o.inner.style.height=o.element.style.height=(o.height||15)+5+"px",o}return i(t,e),t.prototype.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},t.prototype.getHeight=function(){return this.isVisible?this.height:0},t.prototype.setWidth=function(e){this.element.style.width=e+"px"},t.prototype.setInnerWidth=function(e){this.inner.style.width=e+"px"},t.prototype.setScrollWidth=function(e){this.inner.style.width=e+"px"},t.prototype.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)},t}(u);t.ScrollBar=h,t.ScrollBarV=h,t.ScrollBarH=d,t.VScrollBar=h,t.HScrollBar=d})),ace.define("ace/scrollbar_custom",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],(function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),r=e("./lib/oop"),s=e("./lib/dom"),a=e("./lib/event"),l=e("./lib/event_emitter").EventEmitter;s.importCssString(".ace_editor>.ace_sb-v div, .ace_editor>.ace_sb-h div{\n position: absolute;\n background: rgba(128, 128, 128, 0.6);\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n border: 1px solid #bbb;\n border-radius: 2px;\n z-index: 8;\n}\n.ace_editor>.ace_sb-v, .ace_editor>.ace_sb-h {\n position: absolute;\n z-index: 6;\n background: none;\n overflow: hidden!important;\n}\n.ace_editor>.ace_sb-v {\n z-index: 6;\n right: 0;\n top: 0;\n width: 12px;\n}\n.ace_editor>.ace_sb-v div {\n z-index: 8;\n right: 0;\n width: 100%;\n}\n.ace_editor>.ace_sb-h {\n bottom: 0;\n left: 0;\n height: 12px;\n}\n.ace_editor>.ace_sb-h div {\n bottom: 0;\n height: 100%;\n}\n.ace_editor>.ace_sb_grabbed {\n z-index: 8;\n background: #000;\n}","ace_scrollbar.css",!1);var c=function(){function e(e,t){this.element=s.createElement("div"),this.element.className="ace_sb"+t,this.inner=s.createElement("div"),this.inner.className="",this.element.appendChild(this.inner),this.VScrollWidth=12,this.HScrollHeight=12,e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,a.addMultiMouseDownListener(this.element,[500,300,300],this,"onMouseDown")}return e.prototype.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1},e}();r.implement(c.prototype,l);var u=function(e){function t(t,n){var o=e.call(this,t,"-v")||this;return o.scrollTop=0,o.scrollHeight=0,o.parent=t,o.width=o.VScrollWidth,o.renderer=n,o.inner.style.width=o.element.style.width=(o.width||15)+"px",o.$minWidth=0,o}return i(t,e),t.prototype.onMouseDown=function(e,t){if("mousedown"===e&&0===a.getButton(t)&&2!==t.detail){if(t.target===this.inner){var n=this,o=t.clientY,i=t.clientY,r=this.thumbTop;a.capture(this.inner,(function(e){o=e.clientY}),(function(){clearInterval(s)}));var s=setInterval((function(){if(void 0!==o){var e=n.scrollTopFromThumbTop(r+o-i);e!==n.scrollTop&&n._emit("scroll",{data:e})}}),20);return a.preventDefault(t)}var l=t.clientY-this.element.getBoundingClientRect().top-this.thumbHeight/2;return this._emit("scroll",{data:this.scrollTopFromThumbTop(l)}),a.preventDefault(t)}},t.prototype.getHeight=function(){return this.height},t.prototype.scrollTopFromThumbTop=function(e){var t=e*(this.pageHeight-this.viewHeight)/(this.slideHeight-this.thumbHeight);return(t|=0)<0?t=0:t>this.pageHeight-this.viewHeight&&(t=this.pageHeight-this.viewHeight),t},t.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},t.prototype.setHeight=function(e){this.height=Math.max(0,e),this.slideHeight=this.height,this.viewHeight=this.height,this.setScrollHeight(this.pageHeight,!0)},t.prototype.setScrollHeight=function(e,t){(this.pageHeight!==e||t)&&(this.pageHeight=e,this.thumbHeight=this.slideHeight*this.viewHeight/this.pageHeight,this.thumbHeight>this.slideHeight&&(this.thumbHeight=this.slideHeight),this.thumbHeight<15&&(this.thumbHeight=15),this.inner.style.height=this.thumbHeight+"px",this.scrollTop>this.pageHeight-this.viewHeight&&(this.scrollTop=this.pageHeight-this.viewHeight,this.scrollTop<0&&(this.scrollTop=0),this._emit("scroll",{data:this.scrollTop})))},t.prototype.setScrollTop=function(e){this.scrollTop=e,e<0&&(e=0),this.thumbTop=e*(this.slideHeight-this.thumbHeight)/(this.pageHeight-this.viewHeight),this.inner.style.top=this.thumbTop+"px"},t}(c);u.prototype.setInnerHeight=u.prototype.setScrollHeight;var h=function(e){function t(t,n){var o=e.call(this,t,"-h")||this;return o.scrollLeft=0,o.scrollWidth=0,o.height=o.HScrollHeight,o.inner.style.height=o.element.style.height=(o.height||12)+"px",o.renderer=n,o}return i(t,e),t.prototype.onMouseDown=function(e,t){if("mousedown"===e&&0===a.getButton(t)&&2!==t.detail){if(t.target===this.inner){var n=this,o=t.clientX,i=t.clientX,r=this.thumbLeft;a.capture(this.inner,(function(e){o=e.clientX}),(function(){clearInterval(s)}));var s=setInterval((function(){if(void 0!==o){var e=n.scrollLeftFromThumbLeft(r+o-i);e!==n.scrollLeft&&n._emit("scroll",{data:e})}}),20);return a.preventDefault(t)}var l=t.clientX-this.element.getBoundingClientRect().left-this.thumbWidth/2;return this._emit("scroll",{data:this.scrollLeftFromThumbLeft(l)}),a.preventDefault(t)}},t.prototype.getHeight=function(){return this.isVisible?this.height:0},t.prototype.scrollLeftFromThumbLeft=function(e){var t=e*(this.pageWidth-this.viewWidth)/(this.slideWidth-this.thumbWidth);return(t|=0)<0?t=0:t>this.pageWidth-this.viewWidth&&(t=this.pageWidth-this.viewWidth),t},t.prototype.setWidth=function(e){this.width=Math.max(0,e),this.element.style.width=this.width+"px",this.slideWidth=this.width,this.viewWidth=this.width,this.setScrollWidth(this.pageWidth,!0)},t.prototype.setScrollWidth=function(e,t){(this.pageWidth!==e||t)&&(this.pageWidth=e,this.thumbWidth=this.slideWidth*this.viewWidth/this.pageWidth,this.thumbWidth>this.slideWidth&&(this.thumbWidth=this.slideWidth),this.thumbWidth<15&&(this.thumbWidth=15),this.inner.style.width=this.thumbWidth+"px",this.scrollLeft>this.pageWidth-this.viewWidth&&(this.scrollLeft=this.pageWidth-this.viewWidth,this.scrollLeft<0&&(this.scrollLeft=0),this._emit("scroll",{data:this.scrollLeft})))},t.prototype.setScrollLeft=function(e){this.scrollLeft=e,e<0&&(e=0),this.thumbLeft=e*(this.slideWidth-this.thumbWidth)/(this.pageWidth-this.viewWidth),this.inner.style.left=this.thumbLeft+"px"},t}(c);h.prototype.setInnerWidth=h.prototype.setScrollWidth,t.ScrollBar=u,t.ScrollBarV=u,t.ScrollBarH=h,t.VScrollBar=u,t.HScrollBar=h})),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],(function(e,t,n){"use strict";var o=e("./lib/event"),i=function(){function e(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.$recursionLimit=2,this.window=t||window;var n=this;this._flush=function(e){n.pending=!1;var t=n.changes;if(t&&(o.blockIdle(100),n.changes=0,n.onRender(t)),n.changes){if(n.$recursionLimit--<0)return;n.schedule()}else n.$recursionLimit=2}}return e.prototype.schedule=function(e){this.changes=this.changes|e,this.changes&&!this.pending&&(o.nextFrame(this._flush),this.pending=!0)},e.prototype.clear=function(e){var t=this.changes;return this.changes=0,t},e}();t.RenderLoop=i})),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/lib/useragent","ace/lib/event_emitter"],(function(e,t,n){var o=e("../lib/oop"),i=e("../lib/dom"),r=e("../lib/lang"),s=e("../lib/event"),a=e("../lib/useragent"),l=e("../lib/event_emitter").EventEmitter,c=512,u="function"==typeof ResizeObserver,h=200,d=function(){function e(e){this.el=i.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=i.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=i.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),this.$measureNode.textContent=r.stringRepeat("X",c),this.$characterSize={width:0,height:0},u?this.$addObserver():this.checkForSizeChanges()}return e.prototype.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",a.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},e.prototype.checkForSizeChanges=function(e){if(void 0===e&&(e=this.$measureSizes()),e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},e.prototype.$addObserver=function(){var e=this;this.$observer=new window.ResizeObserver((function(t){e.checkForSizeChanges()})),this.$observer.observe(this.$measureNode)},e.prototype.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer||this.$observer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=s.onIdle((function t(){e.checkForSizeChanges(),s.onIdle(t,500)}),500)},e.prototype.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},e.prototype.$measureSizes=function(e){var t={height:(e||this.$measureNode).clientHeight,width:(e||this.$measureNode).clientWidth/c};return 0===t.width||0===t.height?null:t},e.prototype.$measureCharWidth=function(e){return this.$main.textContent=r.stringRepeat(e,c),this.$main.getBoundingClientRect().width/c},e.prototype.getCharacterWidth=function(e){var t=this.charSizes[e];return void 0===t&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},e.prototype.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$observer&&this.$observer.disconnect(),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)},e.prototype.$getZoom=function(e){return e&&e.parentElement?(window.getComputedStyle(e).zoom||1)*this.$getZoom(e.parentElement):1},e.prototype.$initTransformMeasureNodes=function(){var e=function(e,t){return["div",{style:"position: absolute;top:"+e+"px;left:"+t+"px;"}]};this.els=i.buildDom([e(0,0),e(h,0),e(0,h),e(h,h)],this.el)},e.prototype.transformCoordinates=function(e,t){function n(e,t,n){var o=e[1]*t[0]-e[0]*t[1];return[(-t[1]*n[0]+t[0]*n[1])/o,(+e[1]*n[0]-e[0]*n[1])/o]}function o(e,t){return[e[0]-t[0],e[1]-t[1]]}function i(e,t){return[e[0]+t[0],e[1]+t[1]]}function r(e,t){return[e*t[0],e*t[1]]}function s(e){var t=e.getBoundingClientRect();return[t.left,t.top]}e&&(e=r(1/this.$getZoom(this.el),e)),this.els||this.$initTransformMeasureNodes();var a=s(this.els[0]),l=s(this.els[1]),c=s(this.els[2]),u=s(this.els[3]),d=n(o(u,l),o(u,c),o(i(l,c),i(u,a))),p=r(1+d[0],o(l,a)),g=r(1+d[1],o(c,a));if(t){var m=t,f=d[0]*m[0]/h+d[1]*m[1]/h+1,y=i(r(m[0],p),r(m[1],g));return i(r(1/f/h,y),a)}var v=o(e,a),b=n(o(p,r(d[0],v)),o(g,r(d[1],v)),v);return r(h,b)},e}();d.prototype.$characterSize={width:0,height:0},o.implement(d.prototype,l),t.FontMetrics=d})),ace.define("ace/css/editor-css",["require","exports","module"],(function(e,t,n){n.exports='\n.ace_br1 {border-top-left-radius : 3px;}\n.ace_br2 {border-top-right-radius : 3px;}\n.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}\n.ace_br4 {border-bottom-right-radius: 3px;}\n.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}\n.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}\n.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}\n.ace_br8 {border-bottom-left-radius : 3px;}\n.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}\n.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}\n.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n\n\n.ace_editor {\n position: relative;\n overflow: hidden;\n padding: 0;\n font: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'Source Code Pro\', \'source-code-pro\', monospace;\n direction: ltr;\n text-align: left;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\n.ace_scroller {\n position: absolute;\n overflow: hidden;\n top: 0;\n bottom: 0;\n background-color: inherit;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n cursor: text;\n}\n\n.ace_content {\n position: absolute;\n box-sizing: border-box;\n min-width: 100%;\n contain: style size layout;\n font-variant-ligatures: no-common-ligatures;\n}\n\n.ace_keyboard-focus:focus {\n box-shadow: inset 0 0 0 2px #5E9ED6;\n outline: none;\n}\n\n.ace_dragging .ace_scroller:before{\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n content: \'\';\n background: rgba(250, 250, 250, 0.01);\n z-index: 1000;\n}\n.ace_dragging.ace_dark .ace_scroller:before{\n background: rgba(0, 0, 0, 0.01);\n}\n\n.ace_gutter {\n position: absolute;\n overflow : hidden;\n width: auto;\n top: 0;\n bottom: 0;\n left: 0;\n cursor: default;\n z-index: 4;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n contain: style size layout;\n}\n\n.ace_gutter-active-line {\n position: absolute;\n left: 0;\n right: 0;\n}\n\n.ace_scroller.ace_scroll-left:after {\n content: "";\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;\n pointer-events: none;\n}\n\n.ace_gutter-cell, .ace_gutter-cell_svg-icons {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n padding-left: 19px;\n padding-right: 6px;\n background-repeat: no-repeat;\n}\n\n.ace_gutter-cell_svg-icons .ace_gutter_annotation {\n margin-left: -14px;\n float: left;\n}\n\n.ace_gutter-cell .ace_gutter_annotation {\n margin-left: -19px;\n float: left;\n}\n\n.ace_gutter-cell.ace_error, .ace_icon.ace_error, .ace_icon.ace_error_fold {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_warning, .ace_icon.ace_warning, .ace_icon.ace_warning_fold {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_info, .ace_icon.ace_info {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n.ace_dark .ace_gutter-cell.ace_info, .ace_dark .ace_icon.ace_info {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");\n}\n\n.ace_icon_svg.ace_error {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJyZWQiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIj4KPGNpcmNsZSBmaWxsPSJub25lIiBjeD0iOCIgY3k9IjgiIHI9IjciIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPGxpbmUgeDE9IjExIiB5MT0iNSIgeDI9IjUiIHkyPSIxMSIvPgo8bGluZSB4MT0iMTEiIHkxPSIxMSIgeDI9IjUiIHkyPSI1Ii8+CjwvZz4KPC9zdmc+");\n background-color: crimson;\n}\n.ace_icon_svg.ace_warning {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJkYXJrb3JhbmdlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+Cjxwb2x5Z29uIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGZpbGw9Im5vbmUiIHBvaW50cz0iOCAxIDE1IDE1IDEgMTUgOCAxIi8+CjxyZWN0IHg9IjgiIHk9IjEyIiB3aWR0aD0iMC4wMSIgaGVpZ2h0PSIwLjAxIi8+CjxsaW5lIHgxPSI4IiB5MT0iNiIgeDI9IjgiIHkyPSIxMCIvPgo8L2c+Cjwvc3ZnPg==");\n background-color: darkorange;\n}\n.ace_icon_svg.ace_info {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJibHVlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+CjxjaXJjbGUgZmlsbD0ibm9uZSIgY3g9IjgiIGN5PSI4IiByPSI3IiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjxwb2x5bGluZSBwb2ludHM9IjggMTEgOCA4Ii8+Cjxwb2x5bGluZSBwb2ludHM9IjkgOCA2IDgiLz4KPGxpbmUgeDE9IjEwIiB5MT0iMTEiIHgyPSI2IiB5Mj0iMTEiLz4KPHJlY3QgeD0iOCIgeT0iNSIgd2lkdGg9IjAuMDEiIGhlaWdodD0iMC4wMSIvPgo8L2c+Cjwvc3ZnPg==");\n background-color: royalblue;\n}\n\n.ace_icon_svg.ace_error_fold {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSI+CiAgPHBhdGggZD0ibSAxOC45Mjk4NTEsNy44Mjk4MDc2IGMgMC4xNDYzNTMsNi4zMzc0NjA0IC02LjMyMzE0Nyw3Ljc3Nzg0NDQgLTcuNDc3OTEyLDcuNzc3ODQ0NCAtMi4xMDcyNzI2LC0wLjEyODc1IDUuMTE3Njc4LDAuMzU2MjQ5IDUuMDUxNjk4LC03Ljg3MDA2MTggLTAuNjA0NjcyLC04LjAwMzk3MzQ5IC03LjA3NzI3MDYsLTcuNTYzMTE4OSAtNC44NTczLC03LjQzMDM5NTU2IDEuNjA2LC0wLjExNTE0MjI1IDYuODk3NDg1LDEuMjYyNTQ1OTYgNy4yODM1MTQsNy41MjI2MTI5NiB6IiBmaWxsPSJjcmltc29uIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0ibSA4LjExNDc1NjIsMi4wNTI5ODI4IGMgMy4zNDkxNjk4LDAgNi4wNjQxMzI4LDIuNjc2ODYyNyA2LjA2NDEzMjgsNS45Nzg5NTMgMCwzLjMwMjExMjIgLTIuNzE0OTYzLDUuOTc4OTIwMiAtNi4wNjQxMzI4LDUuOTc4OTIwMiAtMy4zNDkxNDczLDAgLTYuMDY0MTc3MiwtMi42NzY4MDggLTYuMDY0MTc3MiwtNS45Nzg5MjAyIDAuMDA1MzksLTMuMjk5ODg2MSAyLjcxNzI2NTYsLTUuOTczNjQwOCA2LjA2NDE3NzIsLTUuOTc4OTUzIHogbSAwLC0xLjczNTgyNzE5IGMgLTQuMzIxNDgzNiwwIC03LjgyNDc0MDM4LDMuNDU0MDE4NDkgLTcuODI0NzQwMzgsNy43MTQ3ODAxOSAwLDQuMjYwNzI4MiAzLjUwMzI1Njc4LDcuNzE0NzQ1MiA3LjgyNDc0MDM4LDcuNzE0NzQ1MiA0LjMyMTQ0OTgsMCA3LjgyNDY5OTgsLTMuNDU0MDE3IDcuODI0Njk5OCwtNy43MTQ3NDUyIDAsLTIuMDQ2MDkxNCAtMC44MjQzOTIsLTQuMDA4MzY3MiAtMi4yOTE3NTYsLTUuNDU1MTc0NiBDIDEyLjE4MDIyNSwxLjEyOTk2NDggMTAuMTkwMDEzLDAuMzE3MTU1NjEgOC4xMTQ3NTYyLDAuMzE3MTU1NjEgWiBNIDYuOTM3NDU2Myw4LjI0MDU5ODUgNC42NzE4Njg1LDEwLjQ4NTg1MiA2LjAwODY4MTQsMTEuODc2NzI4IDguMzE3MDAzNSw5LjYwMDc5MTEgMTAuNjI1MzM3LDExLjg3NjcyOCAxMS45NjIxMzgsMTAuNDg1ODUyIDkuNjk2NTUwOCw4LjI0MDU5ODUgMTEuOTYyMTM4LDYuMDA2ODA2NiAxMC41NzMyNDYsNC42Mzc0MzM1IDguMzE3MDAzNSw2Ljg3MzQyOTcgNi4wNjA3NjA3LDQuNjM3NDMzNSA0LjY3MTg2ODUsNi4wMDY4MDY2IFoiIGZpbGw9ImNyaW1zb24iIHN0cm9rZS13aWR0aD0iMiIvPgo8L3N2Zz4=");\n background-color: crimson;\n}\n.ace_icon_svg.ace_warning_fold {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNC43NzY5IDE0LjczMzdMOC42NTE5MiAyLjQ4MzY5QzguMzI5NDYgMS44Mzg3NyA3LjQwOTEzIDEuODM4NzcgNy4wODY2NyAyLjQ4MzY5TDAuOTYxNjY5IDE0LjczMzdDMC42NzA3NzUgMTUuMzE1NSAxLjA5MzgzIDE2IDEuNzQ0MjkgMTZIMTMuOTk0M0MxNC42NDQ4IDE2IDE1LjA2NzggMTUuMzE1NSAxNC43NzY5IDE0LjczMzdaTTMuMTYwMDcgMTQuMjVMNy44NjkyOSA0LjgzMTU2TDEyLjU3ODUgMTQuMjVIMy4xNjAwN1pNOC43NDQyOSAxMS42MjVWMTMuMzc1SDYuOTk0MjlWMTEuNjI1SDguNzQ0MjlaTTYuOTk0MjkgMTAuNzVWNy4yNUg4Ljc0NDI5VjEwLjc1SDYuOTk0MjlaIiBmaWxsPSIjRUM3MjExIi8+CjxwYXRoIGQ9Ik0xMS4xOTkxIDIuOTUyMzhDMTAuODgwOSAyLjMxNDY3IDEwLjM1MzcgMS44MDUyNiA5LjcwNTUgMS41MDlMMTEuMDQxIDEuMDY5NzhDMTEuNjg4MyAwLjk0OTgxNCAxMi4zMzcgMS4yNzI2MyAxMi42MzE3IDEuODYxNDFMMTcuNjEzNiAxMS44MTYxQzE4LjM1MjcgMTMuMjkyOSAxNy41OTM4IDE1LjA4MDQgMTYuMDE4IDE1LjU3NDVDMTYuNDA0NCAxNC40NTA3IDE2LjMyMzEgMTMuMjE4OCAxNS43OTI0IDEyLjE1NTVMMTEuMTk5MSAyLjk1MjM4WiIgZmlsbD0iI0VDNzIxMSIvPgo8L3N2Zz4=");\n background-color: darkorange;\n}\n\n.ace_scrollbar {\n contain: strict;\n position: absolute;\n right: 0;\n bottom: 0;\n z-index: 6;\n}\n\n.ace_scrollbar-inner {\n position: absolute;\n cursor: text;\n left: 0;\n top: 0;\n}\n\n.ace_scrollbar-v{\n overflow-x: hidden;\n overflow-y: scroll;\n top: 0;\n}\n\n.ace_scrollbar-h {\n overflow-x: scroll;\n overflow-y: hidden;\n left: 0;\n}\n\n.ace_print-margin {\n position: absolute;\n height: 100%;\n}\n\n.ace_text-input {\n position: absolute;\n z-index: 0;\n width: 0.5em;\n height: 1em;\n opacity: 0;\n background: transparent;\n -moz-appearance: none;\n appearance: none;\n border: none;\n resize: none;\n outline: none;\n overflow: hidden;\n font: inherit;\n padding: 0 1px;\n margin: 0 -1px;\n contain: strict;\n -ms-user-select: text;\n -moz-user-select: text;\n -webkit-user-select: text;\n user-select: text;\n /*with `pre-line` chrome inserts   instead of space*/\n white-space: pre!important;\n}\n.ace_text-input.ace_composition {\n background: transparent;\n color: inherit;\n z-index: 1000;\n opacity: 1;\n}\n.ace_composition_placeholder { color: transparent }\n.ace_composition_marker { \n border-bottom: 1px solid;\n position: absolute;\n border-radius: 0;\n margin-top: 1px;\n}\n\n[ace_nocontext=true] {\n transform: none!important;\n filter: none!important;\n clip-path: none!important;\n mask : none!important;\n contain: none!important;\n perspective: none!important;\n mix-blend-mode: initial!important;\n z-index: auto;\n}\n\n.ace_layer {\n z-index: 1;\n position: absolute;\n overflow: hidden;\n /* workaround for chrome bug https://github.com/ajaxorg/ace/issues/2312*/\n word-wrap: normal;\n white-space: pre;\n height: 100%;\n width: 100%;\n box-sizing: border-box;\n /* setting pointer-events: auto; on node under the mouse, which changes\n during scroll, will break mouse wheel scrolling in Safari */\n pointer-events: none;\n}\n\n.ace_gutter-layer {\n position: relative;\n width: auto;\n text-align: right;\n pointer-events: auto;\n height: 1000000px;\n contain: style size layout;\n}\n\n.ace_text-layer {\n font: inherit !important;\n position: absolute;\n height: 1000000px;\n width: 1000000px;\n contain: style size layout;\n}\n\n.ace_text-layer > .ace_line, .ace_text-layer > .ace_line_group {\n contain: style size layout;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n}\n\n.ace_hidpi .ace_text-layer,\n.ace_hidpi .ace_gutter-layer,\n.ace_hidpi .ace_content,\n.ace_hidpi .ace_gutter {\n contain: strict;\n}\n.ace_hidpi .ace_text-layer > .ace_line, \n.ace_hidpi .ace_text-layer > .ace_line_group {\n contain: strict;\n}\n\n.ace_cjk {\n display: inline-block;\n text-align: center;\n}\n\n.ace_cursor-layer {\n z-index: 4;\n}\n\n.ace_cursor {\n z-index: 4;\n position: absolute;\n box-sizing: border-box;\n border-left: 2px solid;\n /* workaround for smooth cursor repaintng whole screen in chrome */\n transform: translatez(0);\n}\n\n.ace_multiselect .ace_cursor {\n border-left-width: 1px;\n}\n\n.ace_slim-cursors .ace_cursor {\n border-left-width: 1px;\n}\n\n.ace_overwrite-cursors .ace_cursor {\n border-left-width: 0;\n border-bottom: 1px solid;\n}\n\n.ace_hidden-cursors .ace_cursor {\n opacity: 0.2;\n}\n\n.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor {\n opacity: 0;\n}\n\n.ace_smooth-blinking .ace_cursor {\n transition: opacity 0.18s;\n}\n\n.ace_animate-blinking .ace_cursor {\n animation-duration: 1000ms;\n animation-timing-function: step-end;\n animation-name: blink-ace-animate;\n animation-iteration-count: infinite;\n}\n\n.ace_animate-blinking.ace_smooth-blinking .ace_cursor {\n animation-duration: 1000ms;\n animation-timing-function: ease-in-out;\n animation-name: blink-ace-animate-smooth;\n}\n \n@keyframes blink-ace-animate {\n from, to { opacity: 1; }\n 60% { opacity: 0; }\n}\n\n@keyframes blink-ace-animate-smooth {\n from, to { opacity: 1; }\n 45% { opacity: 1; }\n 60% { opacity: 0; }\n 85% { opacity: 0; }\n}\n\n.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\n position: absolute;\n z-index: 3;\n}\n\n.ace_marker-layer .ace_selection {\n position: absolute;\n z-index: 5;\n}\n\n.ace_marker-layer .ace_bracket {\n position: absolute;\n z-index: 6;\n}\n\n.ace_marker-layer .ace_error_bracket {\n position: absolute;\n border-bottom: 1px solid #DE5555;\n border-radius: 0;\n}\n\n.ace_marker-layer .ace_active-line {\n position: absolute;\n z-index: 2;\n}\n\n.ace_marker-layer .ace_selected-word {\n position: absolute;\n z-index: 4;\n box-sizing: border-box;\n}\n\n.ace_line .ace_fold {\n box-sizing: border-box;\n\n display: inline-block;\n height: 11px;\n margin-top: -2px;\n vertical-align: middle;\n\n background-image:\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");\n background-repeat: no-repeat, repeat-x;\n background-position: center center, top left;\n color: transparent;\n\n border: 1px solid black;\n border-radius: 2px;\n\n cursor: pointer;\n pointer-events: auto;\n}\n\n.ace_dark .ace_fold {\n}\n\n.ace_fold:hover{\n background-image:\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");\n}\n\n.ace_tooltip {\n background-color: #f5f5f5;\n border: 1px solid gray;\n border-radius: 1px;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\n color: black;\n max-width: 100%;\n padding: 3px 4px;\n position: fixed;\n z-index: 999999;\n box-sizing: border-box;\n cursor: default;\n white-space: pre-wrap;\n word-wrap: break-word;\n line-height: normal;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n pointer-events: none;\n overflow: auto;\n max-width: min(60em, 66vw);\n}\n.ace_tooltip pre {\n white-space: pre-wrap;\n}\n\n.ace_tooltip.ace_dark {\n background-color: #636363;\n color: #fff;\n}\n\n.ace_tooltip:focus {\n outline: 1px solid #5E9ED6;\n}\n\n.ace_icon {\n display: inline-block;\n width: 18px;\n vertical-align: top;\n}\n\n.ace_icon_svg {\n display: inline-block;\n width: 12px;\n vertical-align: top;\n -webkit-mask-repeat: no-repeat;\n -webkit-mask-size: 12px;\n -webkit-mask-position: center;\n}\n\n.ace_folding-enabled > .ace_gutter-cell, .ace_folding-enabled > .ace_gutter-cell_svg-icons {\n padding-right: 13px;\n}\n\n.ace_fold-widget {\n box-sizing: border-box;\n\n margin: 0 -12px 0 1px;\n display: none;\n width: 11px;\n vertical-align: top;\n\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: center;\n\n border-radius: 3px;\n \n border: 1px solid transparent;\n cursor: pointer;\n}\n\n.ace_folding-enabled .ace_fold-widget {\n display: inline-block; \n}\n\n.ace_fold-widget.ace_end {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");\n}\n\n.ace_fold-widget.ace_closed {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");\n}\n\n.ace_fold-widget:hover {\n border: 1px solid rgba(0, 0, 0, 0.3);\n background-color: rgba(255, 255, 255, 0.2);\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n}\n\n.ace_fold-widget:active {\n border: 1px solid rgba(0, 0, 0, 0.4);\n background-color: rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n}\n/**\n * Dark version for fold widgets\n */\n.ace_dark .ace_fold-widget {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");\n}\n.ace_dark .ace_fold-widget.ace_end {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");\n}\n.ace_dark .ace_fold-widget.ace_closed {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");\n}\n.ace_dark .ace_fold-widget:hover {\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n background-color: rgba(255, 255, 255, 0.1);\n}\n.ace_dark .ace_fold-widget:active {\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n}\n\n.ace_inline_button {\n border: 1px solid lightgray;\n display: inline-block;\n margin: -1px 8px;\n padding: 0 5px;\n pointer-events: auto;\n cursor: pointer;\n}\n.ace_inline_button:hover {\n border-color: gray;\n background: rgba(200,200,200,0.2);\n display: inline-block;\n pointer-events: auto;\n}\n\n.ace_fold-widget.ace_invalid {\n background-color: #FFB4B4;\n border-color: #DE5555;\n}\n\n.ace_fade-fold-widgets .ace_fold-widget {\n transition: opacity 0.4s ease 0.05s;\n opacity: 0;\n}\n\n.ace_fade-fold-widgets:hover .ace_fold-widget {\n transition: opacity 0.05s ease 0.05s;\n opacity:1;\n}\n\n.ace_underline {\n text-decoration: underline;\n}\n\n.ace_bold {\n font-weight: bold;\n}\n\n.ace_nobold .ace_bold {\n font-weight: normal;\n}\n\n.ace_italic {\n font-style: italic;\n}\n\n\n.ace_error-marker {\n background-color: rgba(255, 0, 0,0.2);\n position: absolute;\n z-index: 9;\n}\n\n.ace_highlight-marker {\n background-color: rgba(255, 255, 0,0.2);\n position: absolute;\n z-index: 8;\n}\n\n.ace_mobile-menu {\n position: absolute;\n line-height: 1.5;\n border-radius: 4px;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n background: white;\n box-shadow: 1px 3px 2px grey;\n border: 1px solid #dcdcdc;\n color: black;\n}\n.ace_dark > .ace_mobile-menu {\n background: #333;\n color: #ccc;\n box-shadow: 1px 3px 2px grey;\n border: 1px solid #444;\n\n}\n.ace_mobile-button {\n padding: 2px;\n cursor: pointer;\n overflow: hidden;\n}\n.ace_mobile-button:hover {\n background-color: #eee;\n opacity:1;\n}\n.ace_mobile-button:active {\n background-color: #ddd;\n}\n\n.ace_placeholder {\n font-family: arial;\n transform: scale(0.9);\n transform-origin: left;\n white-space: pre;\n opacity: 0.7;\n margin: 0 10px;\n}\n\n.ace_ghost_text {\n opacity: 0.5;\n font-style: italic;\n white-space: pre;\n}\n\n.ace_screenreader-only {\n position:absolute;\n left:-10000px;\n top:auto;\n width:1px;\n height:1px;\n overflow:hidden;\n}'})),ace.define("ace/layer/decorators",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=e("../lib/oop"),r=e("../lib/event_emitter").EventEmitter,s=function(){function e(e,t){this.canvas=o.createElement("canvas"),this.renderer=t,this.pixelRatio=1,this.maxHeight=t.layerConfig.maxHeight,this.lineHeight=t.layerConfig.lineHeight,this.canvasHeight=e.parent.scrollHeight,this.heightRatio=this.canvasHeight/this.maxHeight,this.canvasWidth=e.width,this.minDecorationHeight=2*this.pixelRatio|0,this.halfMinDecorationHeight=this.minDecorationHeight/2|0,this.canvas.width=this.canvasWidth,this.canvas.height=this.canvasHeight,this.canvas.style.top="0px",this.canvas.style.right="0px",this.canvas.style.zIndex="7px",this.canvas.style.position="absolute",this.colors={},this.colors.dark={error:"rgba(255, 18, 18, 1)",warning:"rgba(18, 136, 18, 1)",info:"rgba(18, 18, 136, 1)"},this.colors.light={error:"rgb(255,51,51)",warning:"rgb(32,133,72)",info:"rgb(35,68,138)"},e.element.appendChild(this.canvas)}return e.prototype.$updateDecorators=function(e){var t=!0===this.renderer.theme.isDark?this.colors.dark:this.colors.light;e&&(this.maxHeight=e.maxHeight,this.lineHeight=e.lineHeight,this.canvasHeight=e.height,(e.lastRow+1)*this.lineHeightt.priority?1:0}));for(var r=this.renderer.session.$foldData,s=0;sthis.canvasHeight&&(d=this.canvasHeight-this.halfMinDecorationHeight),u=Math.round(d-this.halfMinDecorationHeight),h=Math.round(d+this.halfMinDecorationHeight)}n.fillStyle=t[o[s].type]||null,n.fillRect(0,c,this.canvasWidth,h-u)}}var p=this.renderer.session.selection.getCursor();p&&(l=this.compensateFoldRows(p.row,r),c=Math.round((p.row-l)*this.lineHeight*this.heightRatio),n.fillStyle="rgba(0, 0, 0, 0.5)",n.fillRect(0,c,this.canvasWidth,2))},e.prototype.compensateFoldRows=function(e,t){var n=0;if(t&&t.length>0)for(var o=0;ot[o].start.row&&e=t[o].end.row&&(n+=t[o].end.row-t[o].start.row);return n},e}();i.implement(s.prototype,r),t.Decorator=s})),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/config","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/scrollbar_custom","ace/scrollbar_custom","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter","ace/css/editor-css","ace/layer/decorators","ace/lib/useragent"],(function(e,t,n){"use strict";var o=e("./lib/oop"),i=e("./lib/dom"),r=e("./lib/lang"),s=e("./config"),a=e("./layer/gutter").Gutter,l=e("./layer/marker").Marker,c=e("./layer/text").Text,u=e("./layer/cursor").Cursor,h=e("./scrollbar").HScrollBar,d=e("./scrollbar").VScrollBar,p=e("./scrollbar_custom").HScrollBar,g=e("./scrollbar_custom").VScrollBar,m=e("./renderloop").RenderLoop,f=e("./layer/font_metrics").FontMetrics,y=e("./lib/event_emitter").EventEmitter,v=e("./css/editor-css"),b=e("./layer/decorators").Decorator,w=e("./lib/useragent");i.importCssString(v,"ace_editor.css",!1);var x=function(){function e(e,t){var n=this;this.container=e||i.createElement("div"),i.addCssClass(this.container,"ace_editor"),i.HI_DPI&&i.addCssClass(this.container,"ace_hidpi"),this.setTheme(t),null==s.get("useStrictCSP")&&s.set("useStrictCSP",!1),this.$gutter=i.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden",!0),this.scroller=i.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=i.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new a(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new l(this.content);var o=this.$textLayer=new c(this.content);this.canvas=o.element,this.$markerFront=new l(this.content),this.$cursorLayer=new u(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new d(this.container,this),this.scrollBarH=new h(this.container,this),this.scrollBarV.on("scroll",(function(e){n.$scrollAnimation||n.session.setScrollTop(e.data-n.scrollMargin.top)})),this.scrollBarH.on("scroll",(function(e){n.$scrollAnimation||n.session.setScrollLeft(e.data-n.scrollMargin.left)})),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new f(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.on("changeCharacterSize",(function(e){n.updateCharacterSize(),n.onResize(!0,n.gutterWidth,n.$size.width,n.$size.height),n._signal("changeCharacterSize",e)})),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.margin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$keepTextAreaAtCursor=!w.isIOS,this.$loop=new m(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),this.$addResizeObserver(),s.resetOptions(this),s._signal("renderer",this)}return e.prototype.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin(),i.setStyle(this.scroller.style,"line-height",this.lineHeight+"px")},e.prototype.setSession=function(e){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e),e&&(this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode))},e.prototype.updateLines=function(e,t,n){if(void 0===t&&(t=1/0),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRowthis.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},e.prototype.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},e.prototype.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},e.prototype.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},e.prototype.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},e.prototype.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},e.prototype.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},e.prototype.onResize=function(e,t,n,o){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=e?1:0;var i=this.container;o||(o=i.clientHeight||i.scrollHeight),n||(n=i.clientWidth||i.scrollWidth);var r=this.$updateCachedSize(e,t,n,o);if(this.$resizeTimer&&this.$resizeTimer.cancel(),!this.$size.scrollerHeight||!n&&!o)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(r|this.$changes,!0):this.$loop.schedule(r|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.$customScrollbar&&this.$updateCustomScrollbar(!0)}},e.prototype.$updateCachedSize=function(e,t,n,o){o-=this.$extraHeight||0;var r=0,s=this.$size,a={width:s.width,height:s.height,scrollerHeight:s.scrollerHeight,scrollerWidth:s.scrollerWidth};if(o&&(e||s.height!=o)&&(s.height=o,r|=this.CHANGE_SIZE,s.scrollerHeight=s.height,this.$horizScroll&&(s.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.setHeight(s.scrollerHeight),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",r|=this.CHANGE_SCROLL),n&&(e||s.width!=n)){r|=this.CHANGE_SIZE,s.width=n,null==t&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,i.setStyle(this.scrollBarH.element.style,"left",t+"px"),i.setStyle(this.scroller.style,"left",t+this.margin.left+"px"),s.scrollerWidth=Math.max(0,n-t-this.scrollBarV.getWidth()-this.margin.h),i.setStyle(this.$gutter.style,"left",this.margin.left+"px");var l=this.scrollBarV.getWidth()+"px";i.setStyle(this.scrollBarH.element.style,"right",l),i.setStyle(this.scroller.style,"right",l),i.setStyle(this.scroller.style,"bottom",this.scrollBarH.getHeight()),this.scrollBarH.setWidth(s.scrollerWidth),(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)&&(r|=this.CHANGE_FULL)}return s.$dirty=!n||!o,r&&this._signal("resize",a),r},e.prototype.onGutterResize=function(e){var t=this.$showGutter?e:0;t!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,t,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()||this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):this.$computeLayerConfig()},e.prototype.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-2*this.$padding,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},e.prototype.setAnimatedScroll=function(e){this.setOption("animatedScroll",e)},e.prototype.getAnimatedScroll=function(){return this.$animatedScroll},e.prototype.setShowInvisibles=function(e){this.setOption("showInvisibles",e),this.session.$bidiHandler.setShowInvisibles(e)},e.prototype.getShowInvisibles=function(){return this.getOption("showInvisibles")},e.prototype.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},e.prototype.setDisplayIndentGuides=function(e){this.setOption("displayIndentGuides",e)},e.prototype.getHighlightIndentGuides=function(){return this.getOption("highlightIndentGuides")},e.prototype.setHighlightIndentGuides=function(e){this.setOption("highlightIndentGuides",e)},e.prototype.setShowPrintMargin=function(e){this.setOption("showPrintMargin",e)},e.prototype.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},e.prototype.setPrintMarginColumn=function(e){this.setOption("printMarginColumn",e)},e.prototype.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},e.prototype.getShowGutter=function(){return this.getOption("showGutter")},e.prototype.setShowGutter=function(e){return this.setOption("showGutter",e)},e.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},e.prototype.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},e.prototype.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},e.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},e.prototype.$updatePrintMargin=function(){if(this.$showPrintMargin||this.$printMarginEl){if(!this.$printMarginEl){var e=i.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=i.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=Math.round(this.characterWidth*this.$printMarginColumn+this.$padding)+"px",t.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&-1==this.session.$wrap&&this.adjustWrapLimit()}},e.prototype.getContainerElement=function(){return this.container},e.prototype.getMouseEventTarget=function(){return this.scroller},e.prototype.getTextAreaContainer=function(){return this.container},e.prototype.$moveTextAreaToCursor=function(){if(!this.$isMousePressed){var e=this.textarea.style,t=this.$composition;if(this.$keepTextAreaAtCursor||t){var n=this.$cursorLayer.$pixelPos;if(n){t&&t.markerRange&&(n=this.$cursorLayer.getPixelPosition(t.markerRange.start,!0));var o=this.layerConfig,r=n.top,s=n.left;r-=o.offset;var a=t&&t.useTextareaForIME||w.isMobile?this.lineHeight:1;if(r<0||r>o.height-a)i.translate(this.textarea,0,0);else{var l=1,c=this.$size.height-a;if(t)if(t.useTextareaForIME){var u=this.textarea.value;l=this.characterWidth*this.session.$getStringScreenWidth(u)[0]}else r+=this.lineHeight+2;else r+=this.lineHeight;(s-=this.scrollLeft)>this.$size.scrollerWidth-l&&(s=this.$size.scrollerWidth-l),s+=this.gutterWidth+this.margin.left,i.setStyle(e,"height",a+"px"),i.setStyle(e,"width",l+"px"),i.translate(this.textarea,Math.min(s,this.$size.scrollerWidth-l),Math.min(r,c))}}}else i.translate(this.textarea,-100,0)}},e.prototype.getFirstVisibleRow=function(){return this.layerConfig.firstRow},e.prototype.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(0===this.layerConfig.offset?0:1)},e.prototype.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow;return this.session.documentToScreenRow(t,0)*e.lineHeight-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},e.prototype.getLastVisibleRow=function(){return this.layerConfig.lastRow},e.prototype.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},e.prototype.setScrollMargin=function(e,t,n,o){var i=this.scrollMargin;i.top=0|e,i.bottom=0|t,i.right=0|o,i.left=0|n,i.v=i.top+i.bottom,i.h=i.left+i.right,i.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-i.top),this.updateFull()},e.prototype.setMargin=function(e,t,n,o){var i=this.margin;i.top=0|e,i.bottom=0|t,i.right=0|o,i.left=0|n,i.v=i.top+i.bottom,i.h=i.left+i.right,this.$updateCachedSize(!0,this.gutterWidth,this.$size.width,this.$size.height),this.updateFull()},e.prototype.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},e.prototype.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},e.prototype.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},e.prototype.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},e.prototype.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},e.prototype.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},e.prototype.freeze=function(){this.$frozen=!0},e.prototype.unfreeze=function(){this.$frozen=!1},e.prototype.$renderChanges=function(e,t){if(this.$changes&&(e|=this.$changes,this.$changes=0),this.session&&this.container.offsetWidth&&!this.$frozen&&(e||t)){if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender",e),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var n=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){if(e|=this.$computeLayerConfig()|this.$loop.clear(),n.firstRow!=this.layerConfig.firstRow&&n.firstRowScreen==this.layerConfig.firstRowScreen){var o=this.scrollTop+(n.firstRow-Math.max(this.layerConfig.firstRow,0))*this.lineHeight;o>0&&(this.scrollTop=o,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig()|this.$loop.clear())}n=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),i.translate(this.content,-this.scrollLeft,-n.offset);var r=n.width+2*this.$padding+"px",s=n.minHeight+"px";i.setStyle(this.content.style,"width",r),i.setStyle(this.content.style,"height",s)}if(e&this.CHANGE_H_SCROLL&&(i.translate(this.content,-this.scrollLeft,-n.offset),this.scroller.className=this.scrollLeft<=0?"ace_scroller ":"ace_scroller ace_scroll-left ",this.enableKeyboardAccessibility&&(this.scroller.className+=this.keyboardFocusClassName)),e&this.CHANGE_FULL)return this.$changedLines=null,this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),void this._signal("afterRender",e);if(e&this.CHANGE_SCROLL)return this.$changedLines=null,e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(n):this.$textLayer.scrollLines(n),this.$showGutter&&(e&this.CHANGE_GUTTER||e&this.CHANGE_LINES?this.$gutterLayer.update(n):this.$gutterLayer.scrollLines(n)),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),void this._signal("afterRender",e);e&this.CHANGE_TEXT?(this.$changedLines=null,this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_LINES?((this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER?(this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_CURSOR&&(this.$highlightGutterLine&&this.$gutterLayer.updateLineHighlight(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(n),this.$moveTextAreaToCursor()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(n),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(n),this._signal("afterRender",e)}else this.$changes|=e},e.prototype.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,n=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(n+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&n>this.$maxPixelHeight&&(n=this.$maxPixelHeight);var o=!(n<=2*this.lineHeight)&&e>t;if(n!=this.desiredHeight||this.$size.height!=this.desiredHeight||o!=this.$vScroll){o!=this.$vScroll&&(this.$vScroll=o,this.scrollBarV.setVisible(o));var i=this.container.clientWidth;this.container.style.height=n+"px",this.$updateCachedSize(!0,this.$gutterWidth,i,n),this.desiredHeight=n,this._signal("autosize")}},e.prototype.$computeLayerConfig=function(){var e=this.session,t=this.$size,n=t.height<=2*this.lineHeight,o=this.session.getScreenLength()*this.lineHeight,i=this.$getLongestLine(),r=!n&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-i-2*this.$padding<0),s=this.$horizScroll!==r;s&&(this.$horizScroll=r,this.scrollBarH.setVisible(r));var a=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var l=t.scrollerHeight+this.lineHeight,c=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;o+=c;var u=this.scrollMargin;this.session.setScrollTop(Math.max(-u.top,Math.min(this.scrollTop,o-t.scrollerHeight+u.bottom))),this.session.setScrollLeft(Math.max(-u.left,Math.min(this.scrollLeft,i+2*this.$padding-t.scrollerWidth+u.right)));var h=!n&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-o+c<0||this.scrollTop>u.top),d=a!==h;d&&(this.$vScroll=h,this.scrollBarV.setVisible(h));var p,g,m=this.scrollTop%this.lineHeight,f=Math.ceil(l/this.lineHeight)-1,y=Math.max(0,Math.round((this.scrollTop-m)/this.lineHeight)),v=y+f,b=this.lineHeight;y=e.screenToDocumentRow(y,0);var w=e.getFoldLine(y);w&&(y=w.start.row),p=e.documentToScreenRow(y,0),g=e.getRowLength(y)*b,v=Math.min(e.screenToDocumentRow(v,0),e.getLength()-1),l=t.scrollerHeight+e.getRowLength(v)*b+g,m=this.scrollTop-p*b;var x=0;return(this.layerConfig.width!=i||s)&&(x=this.CHANGE_H_SCROLL),(s||d)&&(x|=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),d&&(i=this.$getLongestLine())),this.layerConfig={width:i,padding:this.$padding,firstRow:y,firstRowScreen:p,lastRow:v,lineHeight:b,characterWidth:this.characterWidth,minHeight:l,maxHeight:o,offset:m,gutterOffset:b?Math.max(0,Math.ceil((m+t.height-t.scrollerHeight)/b)):0,height:this.$size.scrollerHeight},this.session.$bidiHandler&&this.session.$bidiHandler.setContentWidth(i-this.$padding),x},e.prototype.$updateLines=function(){if(this.$changedLines){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var n=this.layerConfig;if(!(e>n.lastRow+1||tthis.$textLayer.MAX_LINE_LENGTH&&(e=this.$textLayer.MAX_LINE_LENGTH+30),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(e*this.characterWidth))},e.prototype.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},e.prototype.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},e.prototype.addGutterDecoration=function(e,t){this.$gutterLayer.addGutterDecoration(e,t)},e.prototype.removeGutterDecoration=function(e,t){this.$gutterLayer.removeGutterDecoration(e,t)},e.prototype.updateBreakpoints=function(e){this.$loop.schedule(this.CHANGE_GUTTER)},e.prototype.setAnnotations=function(e){this.$gutterLayer.setAnnotations(e),this.$loop.schedule(this.CHANGE_GUTTER)},e.prototype.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},e.prototype.hideCursor=function(){this.$cursorLayer.hideCursor()},e.prototype.showCursor=function(){this.$cursorLayer.showCursor()},e.prototype.scrollSelectionIntoView=function(e,t,n){this.scrollCursorIntoView(e,n),this.scrollCursorIntoView(t,n)},e.prototype.scrollCursorIntoView=function(e,t,n){if(0!==this.$size.scrollerHeight){var o=this.$cursorLayer.getPixelPosition(e),i=o.left,r=o.top,s=n&&n.top||0,a=n&&n.bottom||0;this.$scrollAnimation&&(this.$stopAnimation=!0);var l=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;l+s>r?(t&&l+s>r+this.lineHeight&&(r-=t*this.$size.scrollerHeight),0===r&&(r=-this.scrollMargin.top),this.session.setScrollTop(r)):l+this.$size.scrollerHeight-a=1-this.scrollMargin.top||t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right||void 0},e.prototype.pixelToScreenCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var o=this.$fontMetrics.transformCoordinates([e,t]);e=o[1]-this.gutterWidth-this.margin.left,t=o[0]}else n=this.scroller.getBoundingClientRect();var i=e+this.scrollLeft-n.left-this.$padding,r=i/this.characterWidth,s=Math.floor((t+this.scrollTop-n.top)/this.lineHeight),a=this.$blockCursor?Math.floor(r):Math.round(r);return{row:s,column:a,side:r-a>0?1:-1,offsetX:i}},e.prototype.screenToTextCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var o=this.$fontMetrics.transformCoordinates([e,t]);e=o[1]-this.gutterWidth-this.margin.left,t=o[0]}else n=this.scroller.getBoundingClientRect();var i=e+this.scrollLeft-n.left-this.$padding,r=i/this.characterWidth,s=this.$blockCursor?Math.floor(r):Math.round(r),a=Math.floor((t+this.scrollTop-n.top)/this.lineHeight);return this.session.screenToDocumentPosition(a,Math.max(s,0),i)},e.prototype.textToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),o=this.session.documentToScreenPosition(e,t),i=this.$padding+(this.session.$bidiHandler.isBidiRow(o.row,e)?this.session.$bidiHandler.getPosLeft(o.column):Math.round(o.column*this.characterWidth)),r=o.row*this.lineHeight;return{pageX:n.left+i-this.scrollLeft,pageY:n.top+r-this.scrollTop}},e.prototype.visualizeFocus=function(){i.addCssClass(this.container,"ace_focus")},e.prototype.visualizeBlur=function(){i.removeCssClass(this.container,"ace_focus")},e.prototype.showComposition=function(e){this.$composition=e,e.cssText||(e.cssText=this.textarea.style.cssText),null==e.useTextareaForIME&&(e.useTextareaForIME=this.$useTextareaForIME),this.$useTextareaForIME?(i.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor(),this.$cursorLayer.element.style.display="none"):e.markerId=this.session.addMarker(e.markerRange,"ace_composition_marker","text")},e.prototype.setCompositionText=function(e){var t=this.session.selection.cursor;this.addToken(e,"composition_placeholder",t.row,t.column),this.$moveTextAreaToCursor()},e.prototype.hideComposition=function(){if(this.$composition){this.$composition.markerId&&this.session.removeMarker(this.$composition.markerId),i.removeCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText=this.$composition.cssText;var e=this.session.selection.cursor;this.removeExtraToken(e.row,e.column),this.$composition=null,this.$cursorLayer.element.style.display=""}},e.prototype.setGhostText=function(e,t){var n=this.session.selection.cursor,o=t||{row:n.row,column:n.column};this.removeGhostText();var i=e.split("\n");if(this.addToken(i[0],"ghost_text",o.row,o.column),this.$ghostText={text:e,position:{row:o.row,column:o.column}},i.length>1){this.$ghostTextWidget={text:i.slice(1).join("\n"),row:o.row,column:o.column,className:"ace_ghost_text"},this.session.widgetManager.addLineWidget(this.$ghostTextWidget);var r=this.$cursorLayer.getPixelPosition(o,!0),s=this.container.getBoundingClientRect().height,a=i.length*this.lineHeight;if(a1||Math.abs(e.$size.height-o)>1?e.$resizeTimer.delay():e.$resizeTimer.cancel()})),this.$resizeObserver.observe(this.container)}},e}();x.prototype.CHANGE_CURSOR=1,x.prototype.CHANGE_MARKER=2,x.prototype.CHANGE_GUTTER=4,x.prototype.CHANGE_SCROLL=8,x.prototype.CHANGE_LINES=16,x.prototype.CHANGE_TEXT=32,x.prototype.CHANGE_SIZE=64,x.prototype.CHANGE_MARKER_BACK=128,x.prototype.CHANGE_MARKER_FRONT=256,x.prototype.CHANGE_FULL=512,x.prototype.CHANGE_H_SCROLL=1024,x.prototype.$changes=0,x.prototype.$padding=null,x.prototype.$frozen=!1,x.prototype.STEPS=8,o.implement(x.prototype,y),s.defineOptions(x.prototype,"renderer",{useResizeObserver:{set:function(e){!e&&this.$resizeObserver?(this.$resizeObserver.disconnect(),this.$resizeTimer.cancel(),this.$resizeTimer=this.$resizeObserver=null):e&&!this.$resizeObserver&&this.$addResizeObserver()}},animatedScroll:{initialValue:!1},showInvisibles:{set:function(e){this.$textLayer.setShowInvisibles(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(e){"number"==typeof e&&(this.$printMarginColumn=e),this.$showPrintMargin=!!e,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(e){this.$gutter.style.display=e?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},useSvgGutterIcons:{set:function(e){this.$gutterLayer.$useSvgGutterIcons=e},initialValue:!1},showFoldedAnnotations:{set:function(e){this.$gutterLayer.$showFoldedAnnotations=e},initialValue:!1},fadeFoldWidgets:{set:function(e){i.setCssClass(this.$gutter,"ace_fade-fold-widgets",e)},initialValue:!1},showFoldWidgets:{set:function(e){this.$gutterLayer.setShowFoldWidgets(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightIndentGuides:{set:function(e){1==this.$textLayer.setHighlightIndentGuides(e)?this.$textLayer.$highlightIndentGuide():this.$textLayer.$clearActiveIndentGuide(this.$textLayer.$lines.cells)},initialValue:!0},highlightGutterLine:{set:function(e){this.$gutterLayer.setHighlightGutterLine(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},hScrollBarAlwaysVisible:{set:function(e){this.$hScrollBarAlwaysVisible&&this.$horizScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(e){this.$vScrollBarAlwaysVisible&&this.$vScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(e){"number"==typeof e&&(e+="px"),this.container.style.fontSize=e,this.updateFontSize()},initialValue:12},fontFamily:{set:function(e){this.container.style.fontFamily=e,this.updateFontSize()}},maxLines:{set:function(e){this.updateFull()}},minLines:{set:function(e){this.$minLines<562949953421311||(this.$minLines=0),this.updateFull()}},maxPixelHeight:{set:function(e){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(e){e=+e||0,this.$scrollPastEnd!=e&&(this.$scrollPastEnd=e,this.$loop.schedule(this.CHANGE_SCROLL))},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(e){this.$gutterLayer.$fixedWidth=!!e,this.$loop.schedule(this.CHANGE_GUTTER)}},customScrollbar:{set:function(e){this.$updateCustomScrollbar(e)},initialValue:!1},theme:{set:function(e){this.setTheme(e)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0},hasCssTransforms:{},useTextareaForIME:{initialValue:!w.isMobile&&!w.isIE}}),t.VirtualRenderer=x})),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("../lib/net"),r=e("../lib/event_emitter").EventEmitter,s=e("../config");function a(e){if("undefined"==typeof Worker)return{postMessage:function(){},terminate:function(){}};if(s.get("loadWorkerFromBlob")){var t=function(e){var t="importScripts('"+i.qualifyURL(e)+"');";try{return new Blob([t],{type:"application/javascript"})}catch(e){var n=new(window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder);return n.append(t),n.getBlob("application/javascript")}}(e),n=(window.URL||window.webkitURL).createObjectURL(t);return new Worker(n)}return new Worker(e)}var l=function(e){e.postMessage||(e=this.$createWorkerFromOldConfig.apply(this,arguments)),this.$worker=e,this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){o.implement(this,r),this.$createWorkerFromOldConfig=function(t,n,o,i,r){if(e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl),s.get("packaged")||!e.toUrl)i=i||s.moduleUrl(n,"worker");else{var l=this.$normalizePath;i=i||l(e.toUrl("ace/worker/worker.js",null,"_"));var c={};t.forEach((function(t){c[t]=l(e.toUrl(t,null,"_").replace(/(\.js)?(\?.*)?$/,""))}))}return this.$worker=a(i),r&&this.send("importScripts",r),this.$worker.postMessage({init:!0,tlns:c,module:n,classname:o}),this.$worker},this.onMessage=function(e){var t=e.data;switch(t.type){case"event":this._signal(t.name,{data:t.data});break;case"call":var n=this.callbacks[t.id];n&&(n(t.data),delete this.callbacks[t.id]);break;case"error":this.reportError(t.data);break;case"log":window.console&&console.log&&console.log.apply(console,t.data)}},this.reportError=function(e){window.console&&console.error&&console.error(e)},this.$normalizePath=function(e){return i.qualifyURL(e)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker.onerror=function(e){e.preventDefault()},this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,n){if(n){var o=this.callbackId++;this.callbacks[o]=n,t.push(o)}this.send(e,t)},this.emit=function(e,t){try{t.data&&t.data.err&&(t.data.err={message:t.data.err.message,stack:t.data.err.stack,code:t.data.err.code}),this.$worker&&this.$worker.postMessage({event:e,data:{data:t.data}})}catch(e){console.error(e.stack)}},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call("setValue",[e.getValue()]),e.on("change",this.changeListener,!0)},this.changeListener=function(e){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),"insert"==e.action?this.deltaQueue.push(e.start,e.lines):this.deltaQueue.push(e.start,e.end)},this.$sendDeltaQueue=function(){var e=this.deltaQueue;e&&(this.deltaQueue=null,e.length>50&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e}))}}).call(l.prototype),t.UIWorkerClient=function(e,t,n){var o=null,i=!1,a=Object.create(r),c=[],u=new l({messageBuffer:c,terminate:function(){},postMessage:function(e){c.push(e),o&&(i?setTimeout(h):h())}});u.setEmitSync=function(e){i=e};var h=function(){var e=c.shift();e.command?o[e.command].apply(o,e.args):e.event&&a._signal(e.event,e.data)};return a.postMessage=function(e){u.onMessage({data:e})},a.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},a.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},s.loadModule(["worker",t],(function(e){for(o=new e[n](a);c.length;)h()})),u},t.WorkerClient=l,t.createWorker=a})),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],(function(e,t,n){"use strict";var o=e("./range").Range,i=e("./lib/event_emitter").EventEmitter,r=e("./lib/oop"),s=function(){function e(e,t,n,o,i,r){var s=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=i,this.othersClass=r,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate,!0),this.$others=o,this.$onCursorChange=function(){setTimeout((function(){s.onCursorChange()}))},this.$pos=n;var a=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=a.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)}return e.prototype.setup=function(){var e=this,t=this.doc,n=this.session;this.selectionBefore=n.selection.toJSON(),n.selection.inMultiSelectMode&&n.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var i=this.pos;i.$insertRight=!0,i.detach(),i.markerId=n.addMarker(new o(i.row,i.column,i.row,i.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach((function(n){var o=t.createAnchor(n.row,n.column);o.$insertRight=!0,o.detach(),e.others.push(o)})),n.setUndoSelect(!1)},e.prototype.showOtherMarkers=function(){if(!this.othersActive){var e=this.session,t=this;this.othersActive=!0,this.others.forEach((function(n){n.markerId=e.addMarker(new o(n.row,n.column,n.row,n.column+t.length),t.othersClass,null,!1)}))}},e.prototype.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var e=0;e=this.pos.column&&t.start.column<=this.pos.column+this.length+1,r=t.start.column-this.pos.column;if(this.updateAnchors(e),i&&(this.length+=n),i&&!this.session.$fromUndo)if("insert"===e.action)for(var s=this.others.length-1;s>=0;s--){var a={row:(l=this.others[s]).row,column:l.column+r};this.doc.insertMergedLines(a,e.lines)}else if("remove"===e.action)for(s=this.others.length-1;s>=0;s--){var l;a={row:(l=this.others[s]).row,column:l.column+r},this.doc.remove(new o(a.row,a.column,a.row,a.column-n))}this.$updating=!1,this.updateMarkers()}},e.prototype.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},e.prototype.updateMarkers=function(){if(!this.$updating){var e=this,t=this.session,n=function(n,i){t.removeMarker(n.markerId),n.markerId=t.addMarker(new o(n.row,n.column,n.row,n.column+e.length),i,null,!1)};n(this.pos,this.mainClass);for(var i=this.others.length;i--;)n(this.others[i],this.othersClass)}},e.prototype.onCursorChange=function(e){if(!this.$updating&&this.session){var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))}},e.prototype.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.off("change",this.$onUpdate),this.session.selection.off("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},e.prototype.cancel=function(){if(-1!==this.$undoStackDepth){for(var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth,n=0;n1?e.multiSelect.joinSelections():e.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"splitSelectionIntoLines",description:"Split into lines",exec:function(e){e.multiSelect.splitIntoLines()},readOnly:!0},{name:"alignCursors",description:"Align cursors",exec:function(e){e.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",description:"Find all",exec:function(e){e.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],t.multiSelectCommands=[{name:"singleSelection",description:"Single selection",bindKey:"esc",exec:function(e){e.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(e){return e&&e.inMultiSelectMode}}];var o=e("../keyboard/hash_handler").HashHandler;t.keyboardHandler=new o(t.multiSelectCommands)})),ace.define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],(function(e,t,n){var o=e("./range_list").RangeList,i=e("./range").Range,r=e("./selection").Selection,s=e("./mouse/multi_select_handler").onMouseDown,a=e("./lib/event"),l=e("./lib/lang"),c=e("./commands/multi_select_commands");t.commands=c.defaultCommands.concat(c.multiSelectCommands);var u=new(0,e("./search").Search),h=e("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(h.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(e,t){if(e){if(!this.inMultiSelectMode&&0===this.rangeCount){var n=this.toOrientedRange();if(this.rangeList.add(n),this.rangeList.add(e),2!=this.rangeList.ranges.length)return this.rangeList.removeAll(),t||this.fromOrientedRange(e);this.rangeList.removeAll(),this.rangeList.add(n),this.$onAddRange(n)}e.cursor||(e.cursor=e.end);var o=this.rangeList.add(e);return this.$onAddRange(e),o.length&&this.$onRemoveRange(o),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)}},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length&&this.$onRemoveRange(e)},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal("addRange",{range:e})},this.$onRemoveRange=function(e){if(this.rangeCount=this.rangeList.ranges.length,1==this.rangeCount&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var n=e.length;n--;){var o=this.ranges.indexOf(e[n]);this.ranges.splice(o,1)}this._signal("removeRange",{ranges:e}),0===this.rangeCount&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),(t=t||this.ranges[0])&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new o,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){for(var e=this.ranges.length?this.ranges:[this.getRange()],t=[],n=0;n1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var o=this.session.documentToScreenPosition(this.cursor),r=this.session.documentToScreenPosition(this.anchor);this.rectangularRangeBlock(o,r).forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,n){var o=[],r=e.column0;)v--;if(v>0)for(var b=0;o[b].isEmpty();)b++;for(var w=v;w>=b;w--)o[w].isEmpty()&&o.splice(w,1)}return o}}.call(r.prototype);var d=e("./editor").Editor;function p(e){e.$multiselectOnSessionChange||(e.$onAddRange=e.$onAddRange.bind(e),e.$onRemoveRange=e.$onRemoveRange.bind(e),e.$onMultiSelect=e.$onMultiSelect.bind(e),e.$onSingleSelect=e.$onSingleSelect.bind(e),e.$multiselectOnSessionChange=t.onSessionChange.bind(e),e.$checkMultiselectChange=e.$checkMultiselectChange.bind(e),e.$multiselectOnSessionChange(e),e.on("changeSession",e.$multiselectOnSessionChange),e.on("mousedown",s),e.commands.addCommands(c.defaultCommands),function(e){if(e.textInput){var t=e.textInput.getElement(),n=!1;a.addListener(t,"keydown",(function(t){var i=18==t.keyCode&&!(t.ctrlKey||t.shiftKey||t.metaKey);e.$blockSelectEnabled&&i?n||(e.renderer.setMouseCursor("crosshair"),n=!0):n&&o()}),e),a.addListener(t,"keyup",o,e),a.addListener(t,"blur",o,e)}function o(t){n&&(e.renderer.setMouseCursor(""),n=!1)}}(e))}(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(e.marker){this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);-1!=t&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(e){for(var t=this.session.$selectionMarkers,n=e.length;n--;){var o=e[n];if(o.marker){this.session.removeMarker(o.marker);var i=t.indexOf(o);-1!=i&&t.splice(i,1)}}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(c.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(e){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(c.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(e){var t=e.command,n=e.editor;if(n.multiSelect){if(t.multiSelectAction)"forEach"==t.multiSelectAction?o=n.forEachSelection(t,e.args):"forEachLine"==t.multiSelectAction?o=n.forEachSelection(t,e.args,!0):"single"==t.multiSelectAction?(n.exitMultiSelectMode(),o=t.exec(n,e.args||{})):o=t.multiSelectAction(n,e.args||{});else{var o=t.exec(n,e.args||{});n.multiSelect.addRange(n.multiSelect.toOrientedRange()),n.multiSelect.mergeOverlappingRanges()}return o}},this.forEachSelection=function(e,t,n){if(!this.inVirtualSelectionMode){var o,i=n&&n.keepOrder,s=1==n||n&&n.$byLines,a=this.session,l=this.selection,c=l.rangeList,u=(i?l:c).ranges;if(!u.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var h=l._eventRegistry;l._eventRegistry={};var d=new r(a);this.inVirtualSelectionMode=!0;for(var p=u.length;p--;){if(s)for(;p>0&&u[p].start.row==u[p-1].end.row;)p--;d.fromOrientedRange(u[p]),d.index=p,this.selection=a.selection=d;var g=e.exec?e.exec(this,t||{}):e(this,t||{});o||void 0===g||(o=g),d.toOrientedRange(u[p])}d.detach(),this.selection=a.selection=l,this.inVirtualSelectionMode=!1,l._eventRegistry=h,l.mergeOverlappingRanges(),l.ranges[0]&&l.fromOrientedRange(l.ranges[0]);var m=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),m&&m.from==m.to&&this.renderer.animateScrolling(m.from),o}},this.exitMultiSelectMode=function(){this.inMultiSelectMode&&!this.inVirtualSelectionMode&&this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var t=this.multiSelect.rangeList.ranges,n=[],o=0;os&&(s=n.column),ou?e.insert(o,l.stringRepeat(" ",r-u)):e.remove(new i(o.row,o.column,o.row,o.column-r+u)),t.start.column=t.end.column=s,t.start.row=t.end.row=o.row,t.cursor=t.end})),t.fromOrientedRange(n[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}else{var u=this.selection.getRange(),h=u.start.row,d=u.end.row,p=h==d;if(p){var g,m=this.session.getLength();do{g=this.session.getLine(d)}while(/[=:]/.test(g)&&++d0);h<0&&(h=0),d>=m&&(d=m-1)}var f=this.session.removeFullLines(h,d);f=this.$reAlignText(f,p),this.session.insert({row:h,column:0},f.join("\n")+"\n"),p||(u.start.column=0,u.end.column=f[f.length-1].length),this.selection.setRange(u)}},this.$reAlignText=function(e,t){var n,o,i,r=!0,s=!0;return e.map((function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?null==n?(n=t[1].length,o=t[2].length,i=t[3].length,t):(n+o+i!=t[1].length+t[2].length+t[3].length&&(s=!1),n!=t[1].length&&(r=!1),n>t[1].length&&(n=t[1].length),ot[3].length&&(i=t[3].length),t):[e]})).map(t?c:r?s?function(e){return e[2]?a(n+o-e[2].length)+e[2]+a(i)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}:c:function(e){return e[2]?a(n)+e[2]+a(i)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]});function a(e){return l.stringRepeat(" ",e)}function c(e){return e[2]?a(n)+e[2]+a(o-e[2].length+i)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}}}).call(d.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var n=e.oldSession;n&&(n.multiSelect.off("addRange",this.$onAddRange),n.multiSelect.off("removeRange",this.$onRemoveRange),n.multiSelect.off("multiSelect",this.$onMultiSelect),n.multiSelect.off("singleSelect",this.$onSingleSelect),n.multiSelect.lead.off("change",this.$checkMultiselectChange),n.multiSelect.anchor.off("change",this.$checkMultiselectChange)),t&&(t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),t.multiSelect.lead.on("change",this.$checkMultiselectChange),t.multiSelect.anchor.on("change",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=p,e("./config").defineOptions(d.prototype,"editor",{enableMultiselect:{set:function(e){p(this),e?this.on("mousedown",s):this.off("mousedown",s)},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})})),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../../range").Range,i=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);return this.foldingStartMarker.test(o)?"start":"markbeginend"==t&&this.foldingStopMarker&&this.foldingStopMarker.test(o)?"end":""},this.getFoldWidgetRange=function(e,t,n){return null},this.indentationBlock=function(e,t,n){var i=/\S/,r=e.getLine(t),s=r.search(i);if(-1!=s){for(var a=n||r.length,l=e.getLength(),c=t,u=t;++tc){var p=e.getLine(u).length;return new o(c,a,u,p)}}},this.openingBracketBlock=function(e,t,n,i,r){var s={row:n,column:i+1},a=e.$findClosingBracket(t,s,r);if(a){var l=e.foldWidgets[a.row];return null==l&&(l=e.getFoldWidget(a.row)),"start"==l&&a.row>s.row&&(a.row--,a.column=e.getLine(a.row).length),o.fromPoints(s,a)}},this.closingBracketBlock=function(e,t,n,i,r){var s={row:n,column:i},a=e.$findOpeningBracket(t,s);if(a)return a.column++,s.column--,o.fromPoints(a,s)}}).call(i.prototype)})),ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range","ace/config"],(function(e,t,n){"use strict";var o=e("../line_widgets").LineWidgets,i=e("../lib/dom"),r=e("../range").Range,s=e("../config").nls;t.showErrorMarker=function(e,t){var n=e.session;n.widgetManager||(n.widgetManager=new o(n),n.widgetManager.attach(e));var a=e.getCursorPosition(),l=a.row,c=n.widgetManager.getWidgetsAtRow(l).filter((function(e){return"errorMarker"==e.type}))[0];c?c.destroy():l-=t;var u,h=function(e,t,n){var o=e.getAnnotations().sort(r.comparePoints);if(o.length){var i=function(e,t,n){for(var o=0,i=e.length-1;o<=i;){var r=o+i>>1,s=n(t,e[r]);if(s>0)o=r+1;else{if(!(s<0))return r;i=r-1}}return-(o+1)}(o,{row:t,column:-1},r.comparePoints);i<0&&(i=-i-1),i>=o.length?i=n>0?0:o.length-1:0===i&&n<0&&(i=o.length-1);var s=o[i];if(s&&n){if(s.row===t){do{s=o[i+=n]}while(s&&s.row===t);if(!s)return o.slice()}var a=[];t=s.row;do{a[n<0?"unshift":"push"](s),s=o[i+=n]}while(s&&s.row==t);return a.length&&a}}}(n,l,t);if(h){var d=h[0];a.column=(d.pos&&"number"!=typeof d.column?d.pos.sc:d.column)||0,a.row=d.row,u=e.renderer.$gutterLayer.$annotations[a.row]}else{if(c)return;u={text:[s("Looks good!")],className:"ace_ok"}}e.session.unfold(a.row),e.selection.moveToPosition(a);var p={row:a.row,fixedWidth:!0,coverGutter:!0,el:i.createElement("div"),type:"errorMarker"},g=p.el.appendChild(i.createElement("div")),m=p.el.appendChild(i.createElement("div"));m.className="error_widget_arrow "+u.className;var f=e.renderer.$cursorLayer.getPixelPosition(a).left;m.style.left=f+e.renderer.gutterWidth-5+"px",p.el.className="error_widget_wrapper",g.className="error_widget "+u.className,g.innerHTML=u.text.join("
    "),g.appendChild(i.createElement("div"));var y=function(e,t,n){if(0===t&&("esc"===n||"return"===n))return p.destroy(),{command:"null"}};p.destroy=function(){e.$mouseHandler.isMousePressed||(e.keyBinding.removeKeyboardHandler(y),n.widgetManager.removeLineWidget(p),e.off("changeSelection",p.destroy),e.off("changeSession",p.destroy),e.off("mouseup",p.destroy),e.off("change",p.destroy))},e.keyBinding.addKeyboardHandler(y),e.on("changeSelection",p.destroy),e.on("changeSession",p.destroy),e.on("mouseup",p.destroy),e.on("change",p.destroy),e.session.widgetManager.addLineWidget(p),p.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:p.el.offsetHeight})},i.importCssString("\n .error_widget_wrapper {\n background: inherit;\n color: inherit;\n border:none\n }\n .error_widget {\n border-top: solid 2px;\n border-bottom: solid 2px;\n margin: 5px 0;\n padding: 10px 40px;\n white-space: pre-wrap;\n }\n .error_widget.ace_error, .error_widget_arrow.ace_error{\n border-color: #ff5a5a\n }\n .error_widget.ace_warning, .error_widget_arrow.ace_warning{\n border-color: #F1D817\n }\n .error_widget.ace_info, .error_widget_arrow.ace_info{\n border-color: #5a5a5a\n }\n .error_widget.ace_ok, .error_widget_arrow.ace_ok{\n border-color: #5aaa5a\n }\n .error_widget_arrow {\n position: absolute;\n border: solid 5px;\n border-top-color: transparent!important;\n border-right-color: transparent!important;\n border-left-color: transparent!important;\n top: -5px;\n }\n","error_marker.css",!1)})),ace.define("ace/ace",["require","exports","module","ace/lib/dom","ace/range","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config","ace/loader_build"],(function(e,t,n){"use strict";e("./loader_build")(t);var o=e("./lib/dom"),i=e("./range").Range,r=e("./editor").Editor,s=e("./edit_session").EditSession,a=e("./undomanager").UndoManager,l=e("./virtual_renderer").VirtualRenderer;e("./worker/worker_client"),e("./keyboard/hash_handler"),e("./placeholder"),e("./multi_select"),e("./mode/folding/fold_mode"),e("./theme/textmate"),e("./ext/error_marker"),t.config=e("./config"),t.edit=function(e,n){if("string"==typeof e){var i=e;if(!(e=document.getElementById(i)))throw new Error("ace.edit can't find div #"+i)}if(e&&e.env&&e.env.editor instanceof r)return e.env.editor;var s="";if(e&&/input|textarea/i.test(e.tagName)){var a=e;s=a.value,e=o.createElement("pre"),a.parentNode.replaceChild(e,a)}else e&&(s=e.textContent,e.innerHTML="");var c=t.createEditSession(s),u=new r(new l(e),c,n),h={document:c,editor:u,onResize:u.resize.bind(u,null)};return a&&(h.textarea=a),u.on("destroy",(function(){h.editor.container.env=null})),u.container.env=u.env=h,u},t.createEditSession=function(e,t){var n=new s(e,t);return n.setUndoManager(new a),n},t.Range=i,t.Editor=r,t.EditSession=s,t.UndoManager=a,t.VirtualRenderer=l,t.version=t.config.version})),ace.require(["ace/ace"],(function(t){t&&(t.config.init(!0),t.define=ace.define);var n=function(){return this}();for(var o in n||"undefined"==typeof window||(n=window),n||"undefined"==typeof self||(n=self),n.ace||(n.ace=t),t)t.hasOwnProperty(o)&&(n.ace[o]=t[o]);n.ace.default=n.ace,e&&(e.exports=n.ace)}))},134:(e,t,n)=>{e=n.nmd(e),ace.define("ace/ext/beautify",["require","exports","module","ace/token_iterator"],(function(e,t,n){"use strict";var o=e("../token_iterator").TokenIterator;function i(e,t){return e.type.lastIndexOf(t+".xml")>-1}t.singletonTags=["area","base","br","col","command","embed","hr","html","img","input","keygen","link","meta","param","source","track","wbr"],t.blockTags=["article","aside","blockquote","body","div","dl","fieldset","footer","form","head","header","html","nav","ol","p","script","section","style","table","tbody","tfoot","thead","ul"],t.formatOptions={lineBreaksAfterCommasInCurlyBlock:!0},t.beautify=function(e){for(var n,r,s,a=new o(e,0,0),l=a.getCurrentToken(),c=e.getTabString(),u=t.singletonTags,h=t.blockTags,d=t.formatOptions||{},p=!1,g=!1,m=!1,f="",y="",v="",b=0,w=0,x=0,k=0,C=0,$=0,S=0,E=0,O=0,T=!1,A=!1,_=!1,L=!1,M={0:0},R=[],N=!1,I=function(){n&&n.value&&"string.regexp"!==n.type&&(n.value=n.value.replace(/^\s*/,""))},P=function(){for(var e=f.length-1;0!=e&&" "===f[e];)e-=1;f=f.slice(0,e+1)},D=function(){f=f.trimRight(),p=!1};null!==l;){if(E=a.getCurrentTokenRow(),a.$rowTokens,n=a.stepForward(),void 0!==l){if(y=l.value,C=0,_="style"===v||"ace/mode/css"===e.$modeId,i(l,"tag-open")?(A=!0,n&&(L=-1!==h.indexOf(n.value)),"0;O--)f+="\n";p=!0,i(l,"comment")||l.type.match(/^(comment|string)$/)||(y=y.trimLeft())}if(y){if("keyword"===l.type&&y.match(/^(if|else|elseif|for|foreach|while|switch)$/)?(R[b]=y,I(),m=!0,y.match(/^(else|elseif)$/)&&f.match(/\}[\s]*$/)&&(D(),g=!0)):"paren.lparen"===l.type?(I(),"{"===y.substr(-1)&&(m=!0,T=!1,A||(O=1)),"{"===y.substr(0,1)&&(g=!0,"["!==f.substr(-1)&&"["===f.trimRight().substr(-1)?(D(),g=!1):")"===f.trimRight().substr(-1)?D():P())):"paren.rparen"===l.type?(C=1,"}"===y.substr(0,1)&&("case"===R[b-1]&&C++,"{"===f.trimRight().substr(-1)?D():(g=!0,_&&(O+=2))),"]"===y.substr(0,1)&&"}"!==f.substr(-1)&&"}"===f.trimRight().substr(-1)&&(g=!1,k++,D()),")"===y.substr(0,1)&&"("!==f.substr(-1)&&"("===f.trimRight().substr(-1)&&(g=!1,k++,D()),P()):"keyword.operator"!==l.type&&"keyword"!==l.type||!y.match(/^(=|==|===|!=|!==|&&|\|\||and|or|xor|\+=|.=|>|>=|<|<=|=>)$/)?"punctuation.operator"===l.type&&";"===y?(D(),I(),m=!0,_&&O++):"punctuation.operator"===l.type&&y.match(/^(:|,)$/)?(D(),I(),y.match(/^(,)$/)&&S>0&&0===$&&d.lineBreaksAfterCommasInCurlyBlock?O++:(m=!0,p=!1)):"support.php_tag"!==l.type||"?>"!==y||p?i(l,"attribute-name")&&f.substr(-1).match(/^\s$/)?g=!0:i(l,"attribute-equals")?(P(),I()):i(l,"tag-close")?(P(),"/>"===y&&(g=!0)):"keyword"===l.type&&y.match(/^(case|default)$/)&&N&&(C=1):(D(),g=!0):(D(),I(),g=!0,m=!0),p&&(!l.type.match(/^(comment)$/)||y.substr(0,1).match(/^[/#]$/))&&(!l.type.match(/^(string)$/)||y.substr(0,1).match(/^['"@]$/))){if(k=x,b>w)for(k++,s=b;s>w;s--)M[s]=k;else b"===y)&&(O=L&&n&&""===y&&b--),i(l,"tag-name")&&(v=y),r=E}}l=n}f=f.trim(),e.doc.setValue(f)},t.commands=[{name:"beautify",description:"Format selection (Beautify)",exec:function(e){t.beautify(e.session)},bindKey:"Ctrl-Shift-B"}]})),ace.require(["ace/ext/beautify"],(function(t){e&&(e.exports=t)}))},604:(e,t,n)=>{e=n.nmd(e),ace.define("ace/ext/searchbox-css",["require","exports","module"],(function(e,t,n){n.exports='\n\n/* ------------------------------------------------------------------------------------------\n * Editor Search Form\n * --------------------------------------------------------------------------------------- */\n.ace_search {\n background-color: #ddd;\n color: #666;\n border: 1px solid #cbcbcb;\n border-top: 0 none;\n overflow: hidden;\n margin: 0;\n padding: 4px 6px 0 4px;\n position: absolute;\n top: 0;\n z-index: 99;\n white-space: normal;\n}\n.ace_search.left {\n border-left: 0 none;\n border-radius: 0px 0px 5px 0px;\n left: 0;\n}\n.ace_search.right {\n border-radius: 0px 0px 0px 5px;\n border-right: 0 none;\n right: 0;\n}\n\n.ace_search_form, .ace_replace_form {\n margin: 0 20px 4px 0;\n overflow: hidden;\n line-height: 1.9;\n}\n.ace_replace_form {\n margin-right: 0;\n}\n.ace_search_form.ace_nomatch {\n outline: 1px solid red;\n}\n\n.ace_search_field {\n border-radius: 3px 0 0 3px;\n background-color: white;\n color: black;\n border: 1px solid #cbcbcb;\n border-right: 0 none;\n outline: 0;\n padding: 0;\n font-size: inherit;\n margin: 0;\n line-height: inherit;\n padding: 0 6px;\n min-width: 17em;\n vertical-align: top;\n min-height: 1.8em;\n box-sizing: content-box;\n}\n.ace_searchbtn {\n border: 1px solid #cbcbcb;\n line-height: inherit;\n display: inline-block;\n padding: 0 6px;\n background: #fff;\n border-right: 0 none;\n border-left: 1px solid #dcdcdc;\n cursor: pointer;\n margin: 0;\n position: relative;\n color: #666;\n}\n.ace_searchbtn:last-child {\n border-radius: 0 3px 3px 0;\n border-right: 1px solid #cbcbcb;\n}\n.ace_searchbtn:disabled {\n background: none;\n cursor: default;\n}\n.ace_searchbtn:hover {\n background-color: #eef1f6;\n}\n.ace_searchbtn.prev, .ace_searchbtn.next {\n padding: 0px 0.7em\n}\n.ace_searchbtn.prev:after, .ace_searchbtn.next:after {\n content: "";\n border: solid 2px #888;\n width: 0.5em;\n height: 0.5em;\n border-width: 2px 0 0 2px;\n display:inline-block;\n transform: rotate(-45deg);\n}\n.ace_searchbtn.next:after {\n border-width: 0 2px 2px 0 ;\n}\n.ace_searchbtn_close {\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\n border-radius: 50%;\n border: 0 none;\n color: #656565;\n cursor: pointer;\n font: 16px/16px Arial;\n padding: 0;\n height: 14px;\n width: 14px;\n top: 9px;\n right: 7px;\n position: absolute;\n}\n.ace_searchbtn_close:hover {\n background-color: #656565;\n background-position: 50% 100%;\n color: white;\n}\n\n.ace_button {\n margin-left: 2px;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -o-user-select: none;\n -ms-user-select: none;\n user-select: none;\n overflow: hidden;\n opacity: 0.7;\n border: 1px solid rgba(100,100,100,0.23);\n padding: 1px;\n box-sizing: border-box!important;\n color: black;\n}\n\n.ace_button:hover {\n background-color: #eee;\n opacity:1;\n}\n.ace_button:active {\n background-color: #ddd;\n}\n\n.ace_button.checked {\n border-color: #3399ff;\n opacity:1;\n}\n\n.ace_search_options{\n margin-bottom: 3px;\n text-align: right;\n -webkit-user-select: none;\n -moz-user-select: none;\n -o-user-select: none;\n -ms-user-select: none;\n user-select: none;\n clear: both;\n}\n\n.ace_search_counter {\n float: left;\n font-family: arial;\n padding: 0 8px;\n}'})),ace.define("ace/ext/searchbox",["require","exports","module","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/ext/searchbox-css","ace/keyboard/hash_handler","ace/lib/keys","ace/config"],(function(e,t,n){"use strict";var o=e("../lib/dom"),i=e("../lib/lang"),r=e("../lib/event"),s=e("./searchbox-css"),a=e("../keyboard/hash_handler").HashHandler,l=e("../lib/keys"),c=e("../config").nls;o.importCssString(s,"ace_searchbox",!1);var u=function(){function e(e,t,n){var i=o.createElement("div");o.buildDom(["div",{class:"ace_search right"},["span",{action:"hide",class:"ace_searchbtn_close"}],["div",{class:"ace_search_form"},["input",{class:"ace_search_field",placeholder:c("Search for"),spellcheck:"false"}],["span",{action:"findPrev",class:"ace_searchbtn prev"},"​"],["span",{action:"findNext",class:"ace_searchbtn next"},"​"],["span",{action:"findAll",class:"ace_searchbtn",title:"Alt-Enter"},c("All")]],["div",{class:"ace_replace_form"},["input",{class:"ace_search_field",placeholder:c("Replace with"),spellcheck:"false"}],["span",{action:"replaceAndFindNext",class:"ace_searchbtn"},c("Replace")],["span",{action:"replaceAll",class:"ace_searchbtn"},c("All")]],["div",{class:"ace_search_options"},["span",{action:"toggleReplace",class:"ace_button",title:c("Toggle Replace mode"),style:"float:left;margin-top:-2px;padding:0 5px;"},"+"],["span",{class:"ace_search_counter"}],["span",{action:"toggleRegexpMode",class:"ace_button",title:c("RegExp Search")},".*"],["span",{action:"toggleCaseSensitive",class:"ace_button",title:c("CaseSensitive Search")},"Aa"],["span",{action:"toggleWholeWords",class:"ace_button",title:c("Whole Word Search")},"\\b"],["span",{action:"searchInSelection",class:"ace_button",title:c("Search In Selection")},"S"]]],i),this.element=i.firstChild,this.setSession=this.setSession.bind(this),this.$init(),this.setEditor(e),o.importCssString(s,"ace_searchbox",e.container)}return e.prototype.setEditor=function(e){e.searchBox=this,e.renderer.scroller.appendChild(this.element),this.editor=e},e.prototype.setSession=function(e){this.searchRange=null,this.$syncOptions(!0)},e.prototype.$initElements=function(e){this.searchBox=e.querySelector(".ace_search_form"),this.replaceBox=e.querySelector(".ace_replace_form"),this.searchOption=e.querySelector("[action=searchInSelection]"),this.replaceOption=e.querySelector("[action=toggleReplace]"),this.regExpOption=e.querySelector("[action=toggleRegexpMode]"),this.caseSensitiveOption=e.querySelector("[action=toggleCaseSensitive]"),this.wholeWordOption=e.querySelector("[action=toggleWholeWords]"),this.searchInput=this.searchBox.querySelector(".ace_search_field"),this.replaceInput=this.replaceBox.querySelector(".ace_search_field"),this.searchCounter=e.querySelector(".ace_search_counter")},e.prototype.$init=function(){var e=this.element;this.$initElements(e);var t=this;r.addListener(e,"mousedown",(function(e){setTimeout((function(){t.activeInput.focus()}),0),r.stopPropagation(e)})),r.addListener(e,"click",(function(e){var n=(e.target||e.srcElement).getAttribute("action");n&&t[n]?t[n]():t.$searchBarKb.commands[n]&&t.$searchBarKb.commands[n].exec(t),r.stopPropagation(e)})),r.addCommandKeyListener(e,(function(e,n,o){var i=l.keyCodeToString(o),s=t.$searchBarKb.findKeyCommand(n,i);s&&s.exec&&(s.exec(t),r.stopEvent(e))})),this.$onChange=i.delayedCall((function(){t.find(!1,!1)})),r.addListener(this.searchInput,"input",(function(){t.$onChange.schedule(20)})),r.addListener(this.searchInput,"focus",(function(){t.activeInput=t.searchInput,t.searchInput.value&&t.highlight()})),r.addListener(this.replaceInput,"focus",(function(){t.activeInput=t.replaceInput,t.searchInput.value&&t.highlight()}))},e.prototype.setSearchRange=function(e){this.searchRange=e,e?this.searchRangeMarker=this.editor.session.addMarker(e,"ace_active-line"):this.searchRangeMarker&&(this.editor.session.removeMarker(this.searchRangeMarker),this.searchRangeMarker=null)},e.prototype.$syncOptions=function(e){o.setCssClass(this.replaceOption,"checked",this.searchRange),o.setCssClass(this.searchOption,"checked",this.searchOption.checked),this.replaceOption.textContent=this.replaceOption.checked?"-":"+",o.setCssClass(this.regExpOption,"checked",this.regExpOption.checked),o.setCssClass(this.wholeWordOption,"checked",this.wholeWordOption.checked),o.setCssClass(this.caseSensitiveOption,"checked",this.caseSensitiveOption.checked);var t=this.editor.getReadOnly();this.replaceOption.style.display=t?"none":"",this.replaceBox.style.display=this.replaceOption.checked&&!t?"":"none",this.find(!1,!1,e)},e.prototype.highlight=function(e){this.editor.session.highlight(e||this.editor.$search.$options.re),this.editor.renderer.updateBackMarkers()},e.prototype.find=function(e,t,n){var i=!this.editor.find(this.searchInput.value,{skipCurrent:e,backwards:t,wrap:!0,regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked,preventScroll:n,range:this.searchRange})&&this.searchInput.value;o.setCssClass(this.searchBox,"ace_nomatch",i),this.editor._emit("findSearchBox",{match:!i}),this.highlight(),this.updateCounter()},e.prototype.updateCounter=function(){var e=this.editor,t=e.$search.$options.re,n=t.unicode,o=0,r=0;if(t){var s=this.searchRange?e.session.getTextRange(this.searchRange):e.getValue(),a=e.session.doc.positionToIndex(e.selection.anchor);this.searchRange&&(a-=e.session.doc.positionToIndex(this.searchRange.start));for(var l,u=t.lastIndex=0;(l=t.exec(s))&&(o++,(u=l.index)<=a&&r++,!(o>999))&&(l[0]||(t.lastIndex=u+=i.skipEmptyMatch(s,u,n),!(u>=s.length))););}this.searchCounter.textContent=c("$0 of $1",[r,o>999?"999+":o])},e.prototype.findNext=function(){this.find(!0,!1)},e.prototype.findPrev=function(){this.find(!0,!0)},e.prototype.findAll=function(){var e=!this.editor.findAll(this.searchInput.value,{regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked})&&this.searchInput.value;o.setCssClass(this.searchBox,"ace_nomatch",e),this.editor._emit("findSearchBox",{match:!e}),this.highlight(),this.hide()},e.prototype.replace=function(){this.editor.getReadOnly()||this.editor.replace(this.replaceInput.value)},e.prototype.replaceAndFindNext=function(){this.editor.getReadOnly()||(this.editor.replace(this.replaceInput.value),this.findNext())},e.prototype.replaceAll=function(){this.editor.getReadOnly()||this.editor.replaceAll(this.replaceInput.value)},e.prototype.hide=function(){this.active=!1,this.setSearchRange(null),this.editor.off("changeSession",this.setSession),this.element.style.display="none",this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb),this.editor.focus()},e.prototype.show=function(e,t){this.active=!0,this.editor.on("changeSession",this.setSession),this.element.style.display="",this.replaceOption.checked=t,e&&(this.searchInput.value=e),this.searchInput.focus(),this.searchInput.select(),this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb),this.$syncOptions(!0)},e.prototype.isFocused=function(){var e=document.activeElement;return e==this.searchInput||e==this.replaceInput},e}(),h=new a;h.bindKeys({"Ctrl-f|Command-f":function(e){var t=e.isReplace=!e.isReplace;e.replaceBox.style.display=t?"":"none",e.replaceOption.checked=!1,e.$syncOptions(),e.searchInput.focus()},"Ctrl-H|Command-Option-F":function(e){e.editor.getReadOnly()||(e.replaceOption.checked=!0,e.$syncOptions(),e.replaceInput.focus())},"Ctrl-G|Command-G":function(e){e.findNext()},"Ctrl-Shift-G|Command-Shift-G":function(e){e.findPrev()},esc:function(e){setTimeout((function(){e.hide()}))},Return:function(e){e.activeInput==e.replaceInput&&e.replace(),e.findNext()},"Shift-Return":function(e){e.activeInput==e.replaceInput&&e.replace(),e.findPrev()},"Alt-Return":function(e){e.activeInput==e.replaceInput&&e.replaceAll(),e.findAll()},Tab:function(e){(e.activeInput==e.replaceInput?e.searchInput:e.replaceInput).focus()}}),h.addCommands([{name:"toggleRegexpMode",bindKey:{win:"Alt-R|Alt-/",mac:"Ctrl-Alt-R|Ctrl-Alt-/"},exec:function(e){e.regExpOption.checked=!e.regExpOption.checked,e.$syncOptions()}},{name:"toggleCaseSensitive",bindKey:{win:"Alt-C|Alt-I",mac:"Ctrl-Alt-R|Ctrl-Alt-I"},exec:function(e){e.caseSensitiveOption.checked=!e.caseSensitiveOption.checked,e.$syncOptions()}},{name:"toggleWholeWords",bindKey:{win:"Alt-B|Alt-W",mac:"Ctrl-Alt-B|Ctrl-Alt-W"},exec:function(e){e.wholeWordOption.checked=!e.wholeWordOption.checked,e.$syncOptions()}},{name:"toggleReplace",exec:function(e){e.replaceOption.checked=!e.replaceOption.checked,e.$syncOptions()}},{name:"searchInSelection",exec:function(e){e.searchOption.checked=!e.searchRange,e.setSearchRange(e.searchOption.checked&&e.editor.getSelectionRange()),e.$syncOptions()}}]);var d=new a([{bindKey:"Esc",name:"closeSearchBar",exec:function(e){e.searchBox.hide()}}]);u.prototype.$searchBarKb=h,u.prototype.$closeSearchBarKb=d,t.SearchBox=u,t.Search=function(e,t){(e.searchBox||new u(e)).show(e.session.getTextRange(),t)}})),ace.require(["ace/ext/searchbox"],(function(t){e&&(e.exports=t)}))},549:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=(e("../lib/lang"),e("./text_highlight_rules").TextHighlightRules),r=t.supportType="align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index",s=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|flex-end|flex-start|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom",l=t.supportConstantColor="aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen",c=t.supportConstantFonts="arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",u=t.numRe="\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",d=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",p=function(){var e=this.createKeywordMapper({"support.function":s,"support.constant":a,"support.type":r,"support.constant.color":l,"support.constant.fonts":c},"text",!0);this.$rules={start:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"paren.rparen",regex:"\\}"},{token:"string",regex:"@(?!viewport)",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"keyword",regex:"%"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant.numeric",regex:u},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"start"},{token:"paren.rparen",regex:"\\}",next:"start"},{token:"string",regex:";",next:"start"},{token:"keyword",regex:"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)"}],comments:[{token:"comment",regex:"\\/\\*",push:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}]}],ruleset:[{regex:"-(webkit|ms|moz|o)-",token:"text"},{token:"punctuation.operator",regex:"[:;]"},{token:"paren.rparen",regex:"\\}",next:"start"},{include:["strings","url","comments"]},{token:["constant.numeric","keyword"],regex:"("+u+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)"},{token:"constant.numeric",regex:u},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:d},{include:"url"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}],url:[{token:"support.function",regex:"(?:url(:?-prefix)?|domain|regexp)\\(",push:[{token:"support.function",regex:"\\)",next:"pop"},{defaultToken:"string"}]}],strings:[{token:"string.start",regex:"'",push:[{token:"string.end",regex:"'|$",next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]},{token:"string.start",regex:'"',push:[{token:"string.end",regex:'"|$',next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]}],escapes:[{token:"constant.language.escape",regex:/\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/}]},this.normalizeRules()};o.inherits(p,i),t.CssHighlightRules=p})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/css_completions",["require","exports","module"],(function(e,t,n){"use strict";var o={background:{"#$0":1},"background-color":{"#$0":1,transparent:1,fixed:1},"background-image":{"url('/$0')":1},"background-repeat":{repeat:1,"repeat-x":1,"repeat-y":1,"no-repeat":1,inherit:1},"background-position":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},"background-attachment":{scroll:1,fixed:1},"background-size":{cover:1,contain:1},"background-clip":{"border-box":1,"padding-box":1,"content-box":1},"background-origin":{"border-box":1,"padding-box":1,"content-box":1},border:{"solid $0":1,"dashed $0":1,"dotted $0":1,"#$0":1},"border-color":{"#$0":1},"border-style":{solid:2,dashed:2,dotted:2,double:2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},"border-collapse":{collapse:1,separate:1},bottom:{px:1,em:1,"%":1},clear:{left:1,right:1,both:1,none:1},color:{"#$0":1,"rgb(#$00,0,0)":1},cursor:{default:1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,"n-resize":1,"ne-resize":1,"e-resize":1,"se-resize":1,"s-resize":1,"sw-resize":1,"w-resize":1,"nw-resize":1},display:{none:1,block:1,inline:1,"inline-block":1,"table-cell":1},"empty-cells":{show:1,hide:1},float:{left:1,right:1,none:1},"font-family":{Arial:2,"Comic Sans MS":2,Consolas:2,"Courier New":2,Courier:2,Georgia:2,Monospace:2,"Sans-Serif":2,"Segoe UI":2,Tahoma:2,"Times New Roman":2,"Trebuchet MS":2,Verdana:1},"font-size":{px:1,em:1,"%":1},"font-weight":{bold:1,normal:1},"font-style":{italic:1,normal:1},"font-variant":{normal:1,"small-caps":1},height:{px:1,em:1,"%":1},left:{px:1,em:1,"%":1},"letter-spacing":{normal:1},"line-height":{normal:1},"list-style-type":{none:1,disc:1,circle:1,square:1,decimal:1,"decimal-leading-zero":1,"lower-roman":1,"upper-roman":1,"lower-greek":1,"lower-latin":1,"upper-latin":1,georgian:1,"lower-alpha":1,"upper-alpha":1},margin:{px:1,em:1,"%":1},"margin-right":{px:1,em:1,"%":1},"margin-left":{px:1,em:1,"%":1},"margin-top":{px:1,em:1,"%":1},"margin-bottom":{px:1,em:1,"%":1},"max-height":{px:1,em:1,"%":1},"max-width":{px:1,em:1,"%":1},"min-height":{px:1,em:1,"%":1},"min-width":{px:1,em:1,"%":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},"overflow-x":{hidden:1,visible:1,auto:1,scroll:1},"overflow-y":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,"%":1},"padding-top":{px:1,em:1,"%":1},"padding-right":{px:1,em:1,"%":1},"padding-bottom":{px:1,em:1,"%":1},"padding-left":{px:1,em:1,"%":1},"page-break-after":{auto:1,always:1,avoid:1,left:1,right:1},"page-break-before":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,static:1},right:{px:1,em:1,"%":1},"table-layout":{fixed:1,auto:1},"text-decoration":{none:1,underline:1,"line-through":1,blink:1},"text-align":{left:1,right:1,center:1,justify:1},"text-transform":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,"%":1},"vertical-align":{top:1,bottom:1},visibility:{hidden:1,visible:1},"white-space":{nowrap:1,normal:1,pre:1,"pre-line":1,"pre-wrap":1},width:{px:1,em:1,"%":1},"word-spacing":{normal:1},filter:{"alpha(opacity=$0100)":1},"text-shadow":{"$02px 2px 2px #777":1},"text-overflow":{"ellipsis-word":1,clip:1,ellipsis:1},"-moz-border-radius":1,"-moz-border-radius-topright":1,"-moz-border-radius-bottomright":1,"-moz-border-radius-topleft":1,"-moz-border-radius-bottomleft":1,"-webkit-border-radius":1,"-webkit-border-top-right-radius":1,"-webkit-border-top-left-radius":1,"-webkit-border-bottom-right-radius":1,"-webkit-border-bottom-left-radius":1,"-moz-box-shadow":1,"-webkit-box-shadow":1,transform:{"rotate($00deg)":1,"skew($00deg)":1},"-moz-transform":{"rotate($00deg)":1,"skew($00deg)":1},"-webkit-transform":{"rotate($00deg)":1,"skew($00deg)":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement("c").style;for(var t in e)if("string"==typeof e[t]){var n=t.replace(/[A-Z]/g,(function(e){return"-"+e.toLowerCase()}));o.hasOwnProperty(n)||(o[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,o){if(this.completionsDefined||this.defineCompletions(),"ruleset"===e||"ace/mode/scss"==t.$mode.$id){var i=t.getLine(n.row).substr(0,n.column),r=/\([^)]*$/.test(i);return r&&(i=i.substr(i.lastIndexOf("(")+1)),/:[^;]+$/.test(i)?(/([\w\-]+):[^:]*$/.test(i),this.getPropertyValueCompletions(e,t,n,o)):this.getPropertyCompletions(e,t,n,o,r)}return[]},this.getPropertyCompletions=function(e,t,n,i,r){return r=r||!1,Object.keys(o).map((function(e){return{caption:e,snippet:e+": $0"+(r?"":";"),meta:"property",score:1e6}}))},this.getPropertyValueCompletions=function(e,t,n,i){var r=t.getLine(n.row).substr(0,n.column),s=(/([\w\-]+):[^:]*$/.exec(r)||{})[1];if(!s)return[];var a=[];return s in o&&"object"==typeof o[s]&&(a=Object.keys(o[s])),a.map((function(e){return{caption:e,snippet:e,meta:"property value",score:1e6}}))}}).call(i.prototype),t.CssCompletions=i})),ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=(e("../behaviour").Behaviour,e("./cstyle").CstyleBehaviour),r=e("../../token_iterator").TokenIterator,s=function(){this.inherit(i),this.add("colon","insertion",(function(e,t,n,o,i){if(":"===i&&n.selection.isEmpty()){var s=n.getCursorPosition(),a=new r(o,s.row,s.column),l=a.getCurrentToken();if(l&&l.value.match(/\s+/)&&(l=a.stepBackward()),l&&"support.type"===l.type){var c=o.doc.getLine(s.row);if(":"===c.substring(s.column,s.column+1))return{text:"",selection:[1,1]};if(/^(\s+[^;]|\s*$)/.test(c.substring(s.column)))return{text:":;",selection:[1,1]}}}})),this.add("colon","deletion",(function(e,t,n,o,i){var s=o.doc.getTextRange(i);if(!i.isMultiLine()&&":"===s){var a=n.getCursorPosition(),l=new r(o,a.row,a.column),c=l.getCurrentToken();if(c&&c.value.match(/\s+/)&&(c=l.stepBackward()),c&&"support.type"===c.type&&";"===o.doc.getLine(i.start.row).substring(i.end.column,i.end.column+1))return i.end.column++,i}})),this.add("semicolon","insertion",(function(e,t,n,o,i){if(";"===i&&n.selection.isEmpty()){var r=n.getCursorPosition();if(";"===o.doc.getLine(r.row).substring(r.column,r.column+1))return{text:"",selection:[1,1]}}})),this.add("!important","insertion",(function(e,t,n,o,i){if("!"===i&&n.selection.isEmpty()){var r=n.getCursorPosition(),s=o.doc.getLine(r.row);if(/^\s*(;|}|$)/.test(s.substring(r.column)))return{text:"!important",selection:[10,10]}}}))};o.inherits(s,i),t.CssBehaviour=s})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./css_highlight_rules").CssHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../worker/worker_client").WorkerClient,l=e("./css_completions").CssCompletions,c=e("./behaviour/css").CssBehaviour,u=e("./folding/cstyle").FoldMode,h=function(){this.HighlightRules=r,this.$outdent=new s,this.$behaviour=new c,this.$completer=new l,this.foldingRules=new u};o.inherits(h,i),function(){this.foldingRules="cStyle",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;return i.length&&"comment"==i[i.length-1].type||t.match(/^.*\{\s*$/)&&(o+=n),o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,o){return this.$completer.getCompletions(e,t,n,o)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/css_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("annotate",(function(t){e.setAnnotations(t.data)})),t.on("terminate",(function(){e.clearAnnotations()})),t},this.$id="ace/mode/css",this.snippetFileId="ace/snippets/css"}.call(h.prototype),t.Mode=h})),ace.require(["ace/mode/css"],(function(t){e&&(e.exports=t)}))},576:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@\\w+(?=\\s|$)"},r.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};o.inherits(r,i),r.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},r.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},r.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=r})),ace.define("ace/mode/golang_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],(function(e,t,n){var o=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,r=e("./text_highlight_rules").TextHighlightRules,s=function(){var e=this.createKeywordMapper({keyword:"else|break|case|return|goto|if|const|select|continue|struct|default|switch|for|range|func|import|package|chan|defer|fallthrough|go|interface|map|range|select|type|var","constant.language":"nil|true|false|iota","support.function":"new|close|cap|copy|panic|panicln|print|println|len|make|delete|real|recover|imag|append","support.type":"string|uint8|uint16|uint32|uint64|int8|int16|int32|int64|float32|float64|complex64|complex128|byte|rune|uint|int|uintptr|bool|error"},""),t="\\\\(?:[0-7]{3}|x\\h{2}|u{4}|U\\h{6}|[abfnrtv'\"\\\\])".replace(/\\h/g,"[a-fA-F\\d]");this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},i.getStartRule("doc-start"),{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"string",regex:/"(?:[^"\\]|\\.)*?"/},{token:"string",regex:"`",next:"bqstring"},{token:"constant.numeric",regex:"'(?:[^\\'\ud800-\udbff]|[\ud800-\udbff][\udc00-\udfff]|"+t.replace('"',"")+")'"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:["keyword","text","entity.name.function"],regex:"(func)(\\s+)([a-zA-Z_$][a-zA-Z0-9_$]*)\\b"},{token:function(t){return"("==t[t.length-1]?[{type:e(t.slice(0,-1))||"support.function",value:t.slice(0,-1)},{type:"paren.lparen",value:t.slice(-1)}]:e(t)||"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b\\(?"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^="},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}],bqstring:[{token:"string",regex:"`",next:"start"},{defaultToken:"string"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};o.inherits(s,r),t.GolangHighlightRules=s})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/golang",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/golang_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle"],(function(e,t,n){var o=e("../lib/oop"),i=e("./text").Mode,r=e("./golang_highlight_rules").GolangHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=r,this.$outdent=new s,this.foldingRules=new a,this.$behaviour=this.$defaultBehaviour};o.inherits(l,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),r=i.tokens;return i.state,r.length&&"comment"==r[r.length-1].type||"start"==e&&t.match(/^.*[\{\(\[]\s*$/)&&(o+=n),o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/golang"}.call(l.prototype),t.Mode=l})),ace.require(["ace/mode/golang"],(function(t){e&&(e.exports=t)}))},395:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/jsdoc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:["comment.doc.tag","comment.doc.text","lparen.doc"],regex:"(@(?:param|member|typedef|property|namespace|var|const|callback))(\\s*)({)",push:[{token:"lparen.doc",regex:"{",push:[{include:"doc-syntax"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"}]},{token:["rparen.doc","text.doc","variable.parameter.doc","lparen.doc","variable.parameter.doc","rparen.doc"],regex:/(})(\s*)(?:([\w=:\/\.]+)|(?:(\[)([\w=:\/\.]+)(\])))/,next:"pop"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"},{include:"doc-syntax"},{defaultToken:"text.doc"}]},{token:["comment.doc.tag","text.doc","lparen.doc"],regex:"(@(?:returns?|yields|type|this|suppress|public|protected|private|package|modifies|implements|external|exception|throws|enum|define|extends))(\\s*)({)",push:[{token:"lparen.doc",regex:"{",push:[{include:"doc-syntax"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"}]},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"},{include:"doc-syntax"},{defaultToken:"text.doc"}]},{token:["comment.doc.tag","text.doc","variable.parameter.doc"],regex:'(@(?:alias|memberof|instance|module|name|lends|namespace|external|this|template|requires|param|implements|function|extends|typedef|mixes|constructor|var|memberof\\!|event|listens|exports|class|constructs|interface|emits|fires|throws|const|callback|borrows|augments))(\\s+)(\\w[\\w#.:/~"\\-]*)?'},{token:["comment.doc.tag","text.doc","variable.parameter.doc"],regex:"(@method)(\\s+)(\\w[\\w.\\(\\)]*)"},{token:"comment.doc.tag",regex:"@access\\s+(?:private|public|protected)"},{token:"comment.doc.tag",regex:"@kind\\s+(?:class|constant|event|external|file|function|member|mixin|module|namespace|typedef)"},{token:"comment.doc.tag",regex:"@\\w+(?=\\s|$)"},r.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}],"doc-syntax":[{token:"operator.doc",regex:/[|:]/},{token:"paren.doc",regex:/[\[\]]/}]},this.normalizeRules()};o.inherits(r,i),r.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},r.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},r.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.JsDocCommentHighlightRules=r})),ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/jsdoc_comment_highlight_rules","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./jsdoc_comment_highlight_rules").JsDocCommentHighlightRules,r=e("./text_highlight_rules").TextHighlightRules,s="[a-zA-Z\\$_¡-￿][a-zA-Z\\d\\$_¡-￿]*",a=function(e){var t=this.createKeywordMapper({"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Symbol|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static|constructor","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert","constant.language.boolean":"true|false"},"identifier"),n="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)";this.$rules={no_regex:[i.getStartRule("doc-start"),c("no_regex"),{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator"],regex:"("+s+")(\\.)(prototype)(\\.)("+s+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+s+")(\\.)("+s+")(\\s*)(=)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+s+")(\\s*)(=)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+s+")(\\.)("+s+")(\\s*)(=)(\\s*)(function\\*?)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function\\*?)(\\s+)("+s+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+s+")(\\s*)(:)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:"keyword",regex:"from(?=\\s*('|\"))"},{token:"keyword",regex:"(?:case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void)\\b",next:"start"},{token:"support.constant",regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:s},{token:"punctuation.operator",regex:/[.](?![.])/,next:"property"},{token:"storage.type",regex:/=>/,next:"start"},{token:"keyword.operator",regex:/--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],property:[{token:"text",regex:"\\s+"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+s+")(\\.)("+s+")(\\s*)(=)(\\s*)(function\\*?)(?:(\\s+)(\\w+))?(\\s*)(\\()",next:"function_arguments"},{token:"punctuation.operator",regex:/[.](?![.])/},{token:"support.function",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|lter|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward|rEach)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:"support.function.dom",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:"support.constant",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:"identifier",regex:s},{regex:"",token:"empty",next:"no_regex"}],start:[i.getStartRule("doc-start"),c("start"),{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+|^$",next:"start"},{token:"empty",regex:"",next:"no_regex"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/[sxngimy]*",next:"no_regex"},{token:"invalid",regex:/\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/},{token:"constant.language.delimiter",regex:/\|/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp"}],regex_character_class:[{token:"regexp.charclass.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp.charachterclass"}],default_parameter:[{token:"string",regex:"'(?=.)",push:[{token:"string",regex:"'|$",next:"pop"},{include:"qstring"}]},{token:"string",regex:'"(?=.)',push:[{token:"string",regex:'"|$',next:"pop"},{include:"qqstring"}]},{token:"constant.language",regex:"null|Infinity|NaN|undefined"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:"punctuation.operator",regex:",",next:"function_arguments"},{token:"text",regex:"\\s+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],function_arguments:[c("function_arguments"),{token:"variable.parameter",regex:s},{token:"punctuation.operator",regex:","},{token:"text",regex:"\\s+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],qqstring:[{token:"constant.language.escape",regex:n},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:n},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},e&&e.noES6||(this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){if(this.next="{"==e?this.nextState:"","{"==e&&n.length)n.unshift("start",t);else if("}"==e&&n.length&&(n.shift(),this.next=n.shift(),-1!=this.next.indexOf("string")||-1!=this.next.indexOf("jsx")))return"paren.quasi.end";return"{"==e?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:n},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]},{token:["variable.parameter","text"],regex:"("+s+")(\\s*)(?=\\=>)"},{token:"paren.lparen",regex:"(\\()(?=.+\\s*=>)",next:"function_arguments"},{token:"variable.language",regex:"(?:(?:(?:Weak)?(?:Set|Map))|Promise)\\b"}),this.$rules.function_arguments.unshift({token:"keyword.operator",regex:"=",next:"default_parameter"},{token:"keyword.operator",regex:"\\.{3}"}),this.$rules.property.unshift({token:"support.function",regex:"(findIndex|repeat|startsWith|endsWith|includes|isSafeInteger|trunc|cbrt|log2|log10|sign|then|catch|finally|resolve|reject|race|any|all|allSettled|keys|entries|isInteger)\\b(?=\\()"},{token:"constant.language",regex:"(?:MAX_SAFE_INTEGER|MIN_SAFE_INTEGER|EPSILON)\\b"}),e&&0==e.jsx||l.call(this)),this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};function l(){var e=s.replace("\\d","\\d\\-"),t={onMatch:function(e,t,n){var o="/"==e.charAt(1)?2:1;return 1==o?(t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++):2==o&&t==this.nextState&&(n[1]--,(!n[1]||n[1]<0)&&(n.shift(),n.shift())),[{type:"meta.tag.punctuation."+(1==o?"":"end-")+"tag-open.xml",value:e.slice(0,o)},{type:"meta.tag.tag-name.xml",value:e.substr(o)}]},regex:"",onMatch:function(e,t,n){return t==n[0]&&n.shift(),2==e.length&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||"start",[{type:this.token,value:e}]},nextState:"jsx"},n,c("jsxAttributes"),{token:"entity.other.attribute-name.xml",regex:e},{token:"keyword.operator.attribute-equals.xml",regex:"="},{token:"text.tag-whitespace.xml",regex:"\\s+"},{token:"string.attribute-value.xml",regex:"'",stateName:"jsx_attr_q",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',stateName:"jsx_attr_qq",push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},t],this.$rules.reference=[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}]}function c(e){return[{token:"comment",regex:/\/\*/,next:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]},{token:"comment",regex:"\\/\\/",next:[i.getTagRule(),{token:"comment",regex:"$|^",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]}]}o.inherits(a,r),t.JavaScriptHighlightRules=a})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./javascript_highlight_rules").JavaScriptHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../worker/worker_client").WorkerClient,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,u=function(){this.HighlightRules=r,this.$outdent=new s,this.$behaviour=new l,this.foldingRules=new c};o.inherits(u,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.$quotes={'"':'"',"'":"'","`":"`"},this.$pairQuotesAfter={"`":/\w/},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),r=i.tokens,s=i.state;if(r.length&&"comment"==r[r.length-1].type)return o;if("start"==e||"no_regex"==e)(a=t.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/))&&(o+=n);else if("doc-start"==e){if("start"==s||"no_regex"==s)return"";var a;(a=t.match(/^\s*(\/?)\*/))&&(a[1]&&(o+=" "),o+="* ")}return o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",(function(t){e.setAnnotations(t.data)})),t.on("terminate",(function(){e.clearAnnotations()})),t},this.$id="ace/mode/javascript",this.snippetFileId="ace/snippets/javascript"}.call(u.prototype),t.Mode=u})),ace.require(["ace/mode/javascript"],(function(t){e&&(e.exports=t)}))},252:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"punctuation.operator",regex:/[,]/},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};o.inherits(r,i),t.JsonHighlightRules=r})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle","ace/worker/worker_client"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./json_highlight_rules").JsonHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("./folding/cstyle").FoldMode,l=e("../worker/worker_client").WorkerClient,c=function(){this.HighlightRules=r,this.$outdent=new s,this.$behaviour=this.$defaultBehaviour,this.foldingRules=new a};o.inherits(c,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t);return"start"==e&&t.match(/^.*[\{\(\[]\s*$/)&&(o+=n),o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new l(["ace"],"ace/mode/json_worker","JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",(function(t){e.setAnnotations(t.data)})),t.on("terminate",(function(){e.clearAnnotations()})),t},this.$id="ace/mode/json"}.call(c.prototype),t.Mode=c})),ace.require(["ace/mode/json"],(function(t){e&&(e.exports=t)}))},711:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@\\w+(?=\\s|$)"},r.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};o.inherits(r,i),r.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},r.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},r.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=r})),ace.define("ace/mode/jsx_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],(function(e,t,n){var o=e("../lib/oop"),i=e("../lib/lang"),r=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,a=function(){var e=i.arrayToMap("break|do|instanceof|typeof|case|else|new|var|catch|finally|return|void|continue|for|switch|default|while|function|this|if|throw|delete|in|try|class|extends|super|import|from|into|implements|interface|static|mixin|override|abstract|final|number|int|string|boolean|variant|log|assert".split("|")),t=i.arrayToMap("null|true|false|NaN|Infinity|__FILE__|__LINE__|undefined".split("|")),n=i.arrayToMap("debugger|with|const|export|let|private|public|yield|protected|extern|native|as|operator|__fake__|__readonly__".split("|")),o="[a-zA-Z_][a-zA-Z0-9_]*\\b";this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},r.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:["storage.type","text","entity.name.function"],regex:"(function)(\\s+)("+o+")"},{token:function(o){return"this"==o?"variable.language":"function"==o?"storage.type":e.hasOwnProperty(o)||n.hasOwnProperty(o)?"keyword":t.hasOwnProperty(o)?"constant.language":/^_?[A-Z][a-zA-Z0-9_]*$/.test(o)?"language.support.class":"identifier"},regex:o},{token:"keyword.operator",regex:"!|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({<]"},{token:"paren.rparen",regex:"[\\])}>]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]},this.embedRules(r,"doc-",[r.getEndRule("start")])};o.inherits(a,s),t.JsxHighlightRules=a})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var o=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var s=this.$getIndent(e.getLine(r.row));e.replace(new o(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var o=e.getLine(n);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(o)?"start":i},this.getFoldWidgetRange=function(e,t,n,o){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var s=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,s);var a=e.getCommentFoldRange(n,s+i[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(i=r.match(this.foldingStopMarker))?(s=i.index+i[0].length,i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),o=n.search(/\S/),r=t,s=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(o==c)break}a=t}}return new i(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var o=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new i(s,o,n,t.length)}}.call(s.prototype)})),ace.define("ace/mode/jsx",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/jsx_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./jsx_highlight_rules").JsxHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("./folding/cstyle").FoldMode;function l(){this.HighlightRules=r,this.$outdent=new s,this.$behaviour=this.$defaultBehaviour,this.foldingRules=new a}o.inherits(l,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;return i.length&&"comment"==i[i.length-1].type||"start"==e&&t.match(/^.*[\{\(\[]\s*$/)&&(o+=n),o},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/jsx"}.call(l.prototype),t.Mode=l})),ace.require(["ace/mode/jsx"],(function(t){e&&(e.exports=t)}))},7:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/python_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){var e=this.createKeywordMapper({"invalid.deprecated":"debugger","support.function":"abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|binfile|bin|iter|property|tuple|bool|filter|len|range|type|bytearray|float|list|raw_input|unichr|callable|format|locals|reduce|unicode|chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|__import__|complex|hash|min|apply|delattr|help|next|setattr|set|buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern|ascii|breakpoint|bytes","variable.language":"self|cls","constant.language":"True|False|None|NotImplemented|Ellipsis|__debug__",keyword:"and|as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|raise|return|try|while|with|yield|async|await|nonlocal"},"identifier"),t="[uU]?",n="[rR]",o="[fF]",i="(?:[rR][fF]|[fF][rR])",r="(?:(?:(?:[1-9]\\d*)|(?:0))|(?:0[oO]?[0-7]+)|(?:0[xX][\\dA-Fa-f]+)|(?:0[bB][01]+))",s="(?:\\d+)",a="(?:(?:"+s+"?(?:\\.\\d+))|(?:"+s+"\\.))",l="(?:(?:(?:"+a+"|"+s+")(?:[eE][+-]?\\d+))|"+a+")",c="\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\abfnrtv'\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})";this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"string",regex:t+'"{3}',next:"qqstring3"},{token:"string",regex:t+'"(?=.)',next:"qqstring"},{token:"string",regex:t+"'{3}",next:"qstring3"},{token:"string",regex:t+"'(?=.)",next:"qstring"},{token:"string",regex:n+'"{3}',next:"rawqqstring3"},{token:"string",regex:n+'"(?=.)',next:"rawqqstring"},{token:"string",regex:n+"'{3}",next:"rawqstring3"},{token:"string",regex:n+"'(?=.)",next:"rawqstring"},{token:"string",regex:o+'"{3}',next:"fqqstring3"},{token:"string",regex:o+'"(?=.)',next:"fqqstring"},{token:"string",regex:o+"'{3}",next:"fqstring3"},{token:"string",regex:o+"'(?=.)",next:"fqstring"},{token:"string",regex:i+'"{3}',next:"rfqqstring3"},{token:"string",regex:i+'"(?=.)',next:"rfqqstring"},{token:"string",regex:i+"'{3}",next:"rfqstring3"},{token:"string",regex:i+"'(?=.)",next:"rfqstring"},{token:"keyword.operator",regex:"\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|%|@|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|="},{token:"punctuation",regex:",|:|;|\\->|\\+=|\\-=|\\*=|\\/=|\\/\\/=|%=|@=|&=|\\|=|^=|>>=|<<=|\\*\\*="},{token:"paren.lparen",regex:"[\\[\\(\\{]"},{token:"paren.rparen",regex:"[\\]\\)\\}]"},{token:["keyword","text","entity.name.function"],regex:"(def|class)(\\s+)([\\u00BF-\\u1FFF\\u2C00-\\uD7FF\\w]+)"},{token:"text",regex:"\\s+"},{include:"constants"}],qqstring3:[{token:"constant.language.escape",regex:c},{token:"string",regex:'"{3}',next:"start"},{defaultToken:"string"}],qstring3:[{token:"constant.language.escape",regex:c},{token:"string",regex:"'{3}",next:"start"},{defaultToken:"string"}],qqstring:[{token:"constant.language.escape",regex:c},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:c},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"start"},{defaultToken:"string"}],rawqqstring3:[{token:"string",regex:'"{3}',next:"start"},{defaultToken:"string"}],rawqstring3:[{token:"string",regex:"'{3}",next:"start"},{defaultToken:"string"}],rawqqstring:[{token:"string",regex:"\\\\$",next:"rawqqstring"},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],rawqstring:[{token:"string",regex:"\\\\$",next:"rawqstring"},{token:"string",regex:"'|$",next:"start"},{defaultToken:"string"}],fqqstring3:[{token:"constant.language.escape",regex:c},{token:"string",regex:'"{3}',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqstring3:[{token:"constant.language.escape",regex:c},{token:"string",regex:"'{3}",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqqstring:[{token:"constant.language.escape",regex:c},{token:"string",regex:"\\\\$",next:"fqqstring"},{token:"string",regex:'"|$',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqstring:[{token:"constant.language.escape",regex:c},{token:"string",regex:"'|$",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqqstring3:[{token:"string",regex:'"{3}',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqstring3:[{token:"string",regex:"'{3}",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqqstring:[{token:"string",regex:"\\\\$",next:"rfqqstring"},{token:"string",regex:'"|$',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqstring:[{token:"string",regex:"'|$",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqstringParRules:[{token:"paren.lparen",regex:"[\\[\\(]"},{token:"paren.rparen",regex:"[\\]\\)]"},{token:"string",regex:"\\s+"},{token:"string",regex:"'[^']*'"},{token:"string",regex:'"[^"]*"'},{token:"function.support",regex:"(!s|!r|!a)"},{include:"constants"},{token:"paren.rparen",regex:"}",next:"pop"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"}],constants:[{token:"constant.numeric",regex:"(?:"+l+"|\\d+)[jJ]\\b"},{token:"constant.numeric",regex:l},{token:"constant.numeric",regex:r+"[lL]\\b"},{token:"constant.numeric",regex:r+"\\b"},{token:["punctuation","function.support"],regex:"(\\.)([a-zA-Z_]+)\\b"},{token:e,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"}]},this.normalizeRules()};o.inherits(r,i),t.PythonHighlightRules=r})),ace.define("ace/mode/folding/pythonic",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("./fold_mode").FoldMode,r=t.FoldMode=function(e){this.foldingStartMarker=new RegExp("([\\[{])(?:\\s*)$|("+e+")(?:\\s*)(?:#.*)?$")};o.inherits(r,i),function(){this.getFoldWidgetRange=function(e,t,n){var o=e.getLine(n).match(this.foldingStartMarker);if(o)return o[1]?this.openingBracketBlock(e,o[1],n,o.index):o[2]?this.indentationBlock(e,n,o.index+o[2].length):this.indentationBlock(e,n)}}.call(r.prototype)})),ace.define("ace/mode/python",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/python_highlight_rules","ace/mode/folding/pythonic","ace/range"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text").Mode,r=e("./python_highlight_rules").PythonHighlightRules,s=e("./folding/pythonic").FoldMode,a=e("../range").Range,l=function(){this.HighlightRules=r,this.foldingRules=new s("\\:"),this.$behaviour=this.$defaultBehaviour};o.inherits(l,i),function(){this.lineCommentStart="#",this.$pairQuotesAfter={"'":/[ruf]/i,'"':/[ruf]/i},this.getNextLineIndent=function(e,t,n){var o=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;return i.length&&"comment"==i[i.length-1].type||"start"==e&&t.match(/^.*[\{\(\[:]\s*$/)&&(o+=n),o};var e={pass:1,return:1,raise:1,break:1,continue:1};this.checkOutdent=function(t,n,o){if("\r\n"!==o&&"\r"!==o&&"\n"!==o)return!1;var i=this.getTokenizer().getLineTokens(n.trim(),t).tokens;if(!i)return!1;do{var r=i.pop()}while(r&&("comment"==r.type||"text"==r.type&&r.value.match(/^\s+$/)));return!!r&&"keyword"==r.type&&e[r.value]},this.autoOutdent=function(e,t,n){n+=1;var o=this.$getIndent(t.getLine(n)),i=t.getTabString();o.slice(-i.length)==i&&t.remove(new a(n,o.length-i.length,n,o.length))},this.$id="ace/mode/python",this.snippetFileId="ace/snippets/python"}.call(l.prototype),t.Mode=l})),ace.require(["ace/mode/python"],(function(t){e&&(e.exports=t)}))},202:(e,t,n)=>{e=n.nmd(e),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var o=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(e){var t="[_:a-zA-ZÀ-￿][-_:.a-zA-Z0-9À-￿]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+t+")",next:"processing_instruction"},{token:"comment.start.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"",next:"start"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+t+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.end.xml",regex:"--\x3e",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:t},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===r&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(<)("+n+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:t+"start"}]}),this.$rules[n+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(|$))",next:n+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(i.prototype),o.inherits(r,i),t.XmlHighlightRules=r})),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],(function(e,t,n){"use strict";var o=e("../../lib/oop"),i=e("../behaviour").Behaviour,r=e("../../token_iterator").TokenIterator;function s(e,t){return e&&e.type.lastIndexOf(t+".xml")>-1}e("../../lib/lang");var a=function(){this.add("string_dquotes","insertion",(function(e,t,n,o,i){if('"'==i||"'"==i){var a=i,l=o.doc.getTextRange(n.getSelectionRange());if(""!==l&&"'"!==l&&'"'!=l&&n.getWrapBehavioursEnabled())return{text:a+l+a,selection:!1};var c=n.getCursorPosition(),u=o.doc.getLine(c.row).substring(c.column,c.column+1),h=new r(o,c.row,c.column),d=h.getCurrentToken();if(u==a&&(s(d,"attribute-value")||s(d,"string")))return{text:"",selection:[1,1]};if(d||(d=h.stepBackward()),!d)return;for(;s(d,"tag-whitespace")||s(d,"whitespace");)d=h.stepBackward();var p=!u||u.match(/\s/);if(s(d,"attribute-equals")&&(p||">"==u)||s(d,"decl-attribute-equals")&&(p||"?"==u))return{text:a+a,selection:[1,1]}}})),this.add("string_dquotes","deletion",(function(e,t,n,o,i){var r=o.doc.getTextRange(i);if(!i.isMultiLine()&&('"'==r||"'"==r)&&o.doc.getLine(i.start.row).substring(i.start.column+1,i.start.column+2)==r)return i.end.column++,i})),this.add("autoclosing","insertion",(function(e,t,n,o,i){if(">"==i){var a=n.getSelectionRange().start,l=new r(o,a.row,a.column),c=l.getCurrentToken()||l.stepBackward();if(!c||!(s(c,"tag-name")||s(c,"tag-whitespace")||s(c,"attribute-name")||s(c,"attribute-equals")||s(c,"attribute-value")))return;if(s(c,"reference.attribute-value"))return;if(s(c,"attribute-value")){var u=l.getCurrentTokenColumn()+c.value.length;if(a.column/.test(o.getLine(a.row).slice(a.column)))return;for(;!s(c,"tag-name");)if("<"==(c=l.stepBackward()).value){c=l.stepForward();break}var d=l.getCurrentTokenRow(),p=l.getCurrentTokenColumn();if(s(l.stepBackward(),"end-tag-open"))return;var g=c.value;if(d==a.row&&(g=g.substring(0,a.column-p)),this.voidElements.hasOwnProperty(g.toLowerCase()))return;return{text:">",selection:[1,1]}}})),this.add("autoindent","insertion",(function(e,t,n,o,i){if("\n"==i){var s=n.getCursorPosition(),a=o.getLine(s.row),l=new r(o,s.row,s.column),c=l.getCurrentToken();if(c&&-1!==c.type.indexOf("tag-close")){if("/>"==c.value)return;for(;c&&-1===c.type.indexOf("tag-name");)c=l.stepBackward();if(!c)return;var u=c.value,h=l.getCurrentTokenRow();if(!(c=l.stepBackward())||-1!==c.type.indexOf("end-tag"))return;if(this.voidElements&&!this.voidElements[u]){var d=o.getTokenAt(s.row,s.column+1),p=(a=o.getLine(h),this.$getIndent(a)),g=p+o.getTabString();return d&&"-1}(function(){this.getFoldWidget=function(e,t,n){var o=this._getFirstTagInLine(e,n);return o?o.closing||!o.tagName&&o.selfClosing?"markbeginend"===t?"end":"":!o.tagName||o.selfClosing||this.voidElements.hasOwnProperty(o.tagName.toLowerCase())||this._findEndTagInLine(e,n,o.tagName,o.end.column)?"":"start":this.getCommentFoldWidget(e,n)},this.getCommentFoldWidget=function(e,t){return/comment/.test(e.getState(t))&&/"==r.value;break}return o}if(l(r,"tag-close"))return o.selfClosing="/>"==r.value,o;o.start.column+=r.value.length}return null},this._findEndTagInLine=function(e,t,n,o){for(var i=e.getTokens(t),r=0,s=0;s{e=n.nmd(e),ace.define("ace/theme/github-css",["require","exports","module"],(function(e,t,n){n.exports='/* CSS style content from github\'s default pygments highlighter template.\n Cursor and selection styles from textmate.css. */\n.ace-github .ace_gutter {\n background: #e8e8e8;\n color: #AAA;\n}\n\n.ace-github {\n background: #fff;\n color: #000;\n}\n\n.ace-github .ace_keyword {\n font-weight: bold;\n}\n\n.ace-github .ace_string {\n color: #D14;\n}\n\n.ace-github .ace_variable.ace_class {\n color: teal;\n}\n\n.ace-github .ace_constant.ace_numeric {\n color: #099;\n}\n\n.ace-github .ace_constant.ace_buildin {\n color: #0086B3;\n}\n\n.ace-github .ace_support.ace_function {\n color: #0086B3;\n}\n\n.ace-github .ace_comment {\n color: #998;\n font-style: italic;\n}\n\n.ace-github .ace_variable.ace_language {\n color: #0086B3;\n}\n\n.ace-github .ace_paren {\n font-weight: bold;\n}\n\n.ace-github .ace_boolean {\n font-weight: bold;\n}\n\n.ace-github .ace_string.ace_regexp {\n color: #009926;\n font-weight: normal;\n}\n\n.ace-github .ace_variable.ace_instance {\n color: teal;\n}\n\n.ace-github .ace_constant.ace_language {\n font-weight: bold;\n}\n\n.ace-github .ace_cursor {\n color: black;\n}\n\n.ace-github.ace_focus .ace_marker-layer .ace_active-line {\n background: rgb(255, 255, 204);\n}\n.ace-github .ace_marker-layer .ace_active-line {\n background: rgb(245, 245, 245);\n}\n\n.ace-github .ace_marker-layer .ace_selection {\n background: rgb(181, 213, 255);\n}\n\n.ace-github.ace_multiselect .ace_selection.ace_start {\n box-shadow: 0 0 3px 0px white;\n}\n/* bold keywords cause cursor issues for some fonts */\n/* this disables bold style for editor and keeps for static highlighter */\n.ace-github.ace_nobold .ace_line > span {\n font-weight: normal !important;\n}\n\n.ace-github .ace_marker-layer .ace_step {\n background: rgb(252, 255, 0);\n}\n\n.ace-github .ace_marker-layer .ace_stack {\n background: rgb(164, 229, 101);\n}\n\n.ace-github .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-github .ace_gutter-active-line {\n background-color : rgba(0, 0, 0, 0.07);\n}\n\n.ace-github .ace_marker-layer .ace_selected-word {\n background: rgb(250, 250, 255);\n border: 1px solid rgb(200, 200, 250);\n}\n\n.ace-github .ace_invisible {\n color: #BFBFBF\n}\n\n.ace-github .ace_print-margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-github .ace_indent-guide {\n background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;\n}\n\n.ace-github .ace_indent-guide-active {\n background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC") right repeat-y;\n}\n'})),ace.define("ace/theme/github",["require","exports","module","ace/theme/github-css","ace/lib/dom"],(function(e,t,n){t.isDark=!1,t.cssClass="ace-github",t.cssText=e("./github-css"),e("../lib/dom").importCssString(t.cssText,t.cssClass,!1)})),ace.require(["ace/theme/github"],(function(t){e&&(e.exports=t)}))},745:(e,t,n)=>{"use strict";var o=n(137);t.s=o.createRoot,o.hydrateRoot},590:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,o="function"==typeof Set,i="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function r(e,s){if(e===s)return!0;if(e&&s&&"object"==typeof e&&"object"==typeof s){if(e.constructor!==s.constructor)return!1;var a,l,c,u;if(Array.isArray(e)){if((a=e.length)!=s.length)return!1;for(l=a;0!=l--;)if(!r(e[l],s[l]))return!1;return!0}if(n&&e instanceof Map&&s instanceof Map){if(e.size!==s.size)return!1;for(u=e.entries();!(l=u.next()).done;)if(!s.has(l.value[0]))return!1;for(u=e.entries();!(l=u.next()).done;)if(!r(l.value[1],s.get(l.value[0])))return!1;return!0}if(o&&e instanceof Set&&s instanceof Set){if(e.size!==s.size)return!1;for(u=e.entries();!(l=u.next()).done;)if(!s.has(l.value[0]))return!1;return!0}if(i&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(s)){if((a=e.length)!=s.length)return!1;for(l=a;0!=l--;)if(e[l]!==s[l])return!1;return!0}if(e.constructor===RegExp)return e.source===s.source&&e.flags===s.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof s.valueOf)return e.valueOf()===s.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof s.toString)return e.toString()===s.toString();if((a=(c=Object.keys(e)).length)!==Object.keys(s).length)return!1;for(l=a;0!=l--;)if(!Object.prototype.hasOwnProperty.call(s,c[l]))return!1;if(t&&e instanceof Element)return!1;for(l=a;0!=l--;)if(("_owner"!==c[l]&&"__v"!==c[l]&&"__o"!==c[l]||!e.$$typeof)&&!r(e[c[l]],s[c[l]]))return!1;return!0}return e!=e&&s!=s}e.exports=function(e,t){try{return r(e,t)}catch(e){if((e.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw e}}},137:e=>{"use strict";e.exports=require("react-dom")}},t={};function n(o){var i=t[o];if(void 0!==i)return i.exports;var r=t[o]={id:o,loaded:!1,exports:{}};return e[o](r,r.exports,n),r.loaded=!0,r.exports}n.amdD=function(){throw new Error("define cannot be used indirect")},n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),n.p="";var o={};(()=>{"use strict";n.r(o),n.d(o,{Accordion:()=>D,Button:()=>U,ButtonGroup:()=>K,Card:()=>he,Chart:()=>Te,Checkbox:()=>Io,CodeEditor:()=>gr,Collapsible:()=>R,Column:()=>li,Combobox:()=>Sr,Combobox2:()=>Wr,Confirm:()=>St,CopyToClipboard:()=>ut,DatePicker:()=>Zr,Dropdown:()=>Oi,Dropdown2:()=>Zi,EditableList:()=>ha,EditableList2:()=>Na,FieldCodeEditor:()=>ru,FieldCombobox:()=>gu,FieldCombobox2:()=>ju,FieldDatePicker:()=>Xu,FieldDropdown:()=>Cu,FieldEditableList:()=>sh,FieldFileInput:()=>fh,FieldInput:()=>Eh,FieldMultiselect:()=>Ih,FieldPagination:()=>Ru,FieldSelect:()=>Uh,FieldSelectableList:()=>ed,FieldToggle:()=>cd,FileInput:()=>za,FixedWrapper:()=>Ot,FloatingContainer:()=>Pt,FormikCheckbox:()=>Nc,FormikCodeEditor:()=>Ic,FormikCombobox:()=>Pc,FormikCombobox2:()=>Dc,FormikDatePicker:()=>Fc,FormikEditableList:()=>Bc,FormikEditableList2:()=>Wc,FormikFileInput:()=>Hc,FormikInput:()=>jc,FormikInput2:()=>zc,FormikMultiselect:()=>Vc,FormikRadio:()=>Uc,FormikSelect:()=>Gc,FormikSelectableList:()=>Kc,FormikTextarea:()=>qc,FormikToggle:()=>Yc,FormikWrapper:()=>Rc,Icon:()=>g,InfiniteScroller:()=>At,InfoNote:()=>Ft,Input:()=>Qa,Input2:()=>ll,List:()=>jt,Loader:()=>ye,Message:()=>be,Modal:()=>Ct,Multiselect:()=>Cl,NavBar:()=>Vt,Navigation:()=>qt,Pagination:()=>po,Panel:()=>pn,Pill:()=>mn,Radio:()=>Rl,RevealPanel:()=>Nn,Row:()=>yi,Select:()=>jl,SelectableList:()=>Xl,Table:()=>ti,Tabs:()=>eo,TextEllipsis:()=>uo,Textarea:()=>rc,Toggle:()=>bc,Tooltip:()=>lo,setConfig:()=>xc,toast:()=>ot,useComponentSize:()=>C,useEventListener:()=>$,useInterval:()=>ud,usePrevious:()=>me,useTimeout:()=>_e});const e=require("react");var t=n.n(e);const i=require("prop-types");var r=n.n(i);const s=(0,e.createContext)(),a=(0,e.createContext)();var l=Object.defineProperty,c=Object.getOwnPropertySymbols,u=Object.prototype.hasOwnProperty,h=Object.prototype.propertyIsEnumerable,d=(e,t,n)=>t in e?l(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function p(e){var n=e,{className:o,family:i,type:r,weight:s}=n,a=((e,t)=>{var n={};for(var o in e)u.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&c)for(var o of c(e))t.indexOf(o)<0&&h.call(e,o)&&(n[o]=e[o]);return n})(n,["className","family","type","weight"]);return t().createElement("i",((e,t)=>{for(var n in t||(t={}))u.call(t,n)&&d(e,n,t[n]);if(c)for(var n of c(t))h.call(t,n)&&d(e,n,t[n]);return e})({className:function(){const e=i||"fa";return["tyk-icon","fa"!==e&&e,`${e}-${r}`,"fa"===e?`fa-${s||"light"}`:"",o].filter(Boolean).join(" ")}()},a))}p.propTypes={className:r().string,family:r().string,type:r().string.isRequired};const g=p;function m({wrap:n}){const{collapsed:o,disabled:i,toggleChange:r}=(0,e.useContext)(a),s=o?"chevron-down":"chevron-up",l=["tyk-accordion__trigger",i&&"tyk-accordion__trigger--disabled"].filter(Boolean).join(" "),c=t().createElement("button",{className:l,onClick:r,type:"button","aria-label":"collapse/expand"},t().createElement(g,{className:"collapsable__arrow",type:s}));return n?t().createElement("div",{className:"tyk-accordion__trigger-wrapper"},c):c}m.propTypes={wrap:r().bool};const f=m;function y({collapsed:n,children:o,className:i,disabled:r},l){const{arrow:c}=(0,e.useContext)(s),[u,h]=(0,e.useState)(n),d=()=>{r||h(!u)},p=(0,e.useMemo)((()=>["tyk-accordion__item",c.expandToContent?`tyk-accordion__item--trigger-position-${c.position}`:"tyk-accordion__item--trigger-in-header",i,!1===u&&"tyk-accordion__item--active"].filter(Boolean).join(" ")),[c,i,u]),g=(0,e.useMemo)((()=>({collapsed:u,disabled:r,toggleChange:d})),[u,r,d]);return t().createElement("div",{ref:l,className:p},t().createElement(a.Provider,{value:g},c.expandToContent&&t().createElement(f,{wrap:!0}),o))}y.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),collapsed:r().bool,className:r().string,disabled:r().bool},y.defaultProps={collapsed:!1};const v=(0,e.forwardRef)(y);function b({className:n,children:o}){const{collapsed:i,disabled:r,toggleChange:l}=(0,e.useContext)(a),{usearrowastrigger:c,arrow:u}=(0,e.useContext)(s),h=i?"chevron-down":"chevron-up",d=["tyk-accordion__item-header",c&&"tyk-accordion__arrow-trigger",n].filter(Boolean).join(" ");return t().createElement("div",{className:d},c?t().createElement(t().Fragment,null,!u.expandToContent&&"left"===u.position&&t().createElement(f,null),t().createElement("div",null,o),!u.expandToContent&&"right"===u.position&&t().createElement(f,null)):t().createElement("button",{className:r?"tyk-accordion__trigger--disabled":"",onClick:l,type:"button"},t().createElement("span",null,o),t().createElement(g,{className:"collapsable__arrow",type:h})))}b.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string};const w=b,x=require("react-transition-group"),k=e=>e?{width:e.offsetWidth,height:e.offsetHeight}:{width:0,height:0},C=t=>{const[n,o]=(0,e.useState)(k(t?t.current:{})),i=(0,e.useCallback)((()=>{t.current&&o(k(t.current))}),[t]);return(0,e.useLayoutEffect)((()=>{i();let e=new ResizeObserver((()=>{i()}));return e.observe(t.current),()=>{e.disconnect(t.current),e=null}}),[t.current]),n},$=(t,n,o)=>{const i=(0,e.useRef)();(0,e.useEffect)((()=>{i.current=n}),[n]),(0,e.useEffect)((()=>{if(!(null==o?void 0:o.addEventListener))return;const e=e=>i.current(e);return o.addEventListener(t,e),()=>{o.removeEventListener(t,e)}}),[t,o])};var S=Object.defineProperty,E=Object.defineProperties,O=Object.getOwnPropertyDescriptors,T=Object.getOwnPropertySymbols,A=Object.prototype.hasOwnProperty,_=Object.prototype.propertyIsEnumerable,L=(e,t,n)=>t in e?S(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function M(n){var o=n,{className:i,collapsed:r,children:s}=o,a=((e,t)=>{var n={};for(var o in e)A.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&T)for(var o of T(e))t.indexOf(o)<0&&_.call(e,o)&&(n[o]=e[o]);return n})(o,["className","collapsed","children"]);const l=(0,e.useRef)(null),c=(0,e.useRef)(null),u=C(l),[h,d]=(0,e.useState)({height:r?0:"auto"}),p=e=>{d({height:`${e}px`})},g=()=>l.current?l.current.clientHeight:0;(0,e.useEffect)((()=>{!r&&(null==u?void 0:u.height)&&h.height!==(null==u?void 0:u.height)&&p(u.height)}),[u.height]);const m=(0,e.useCallback)((()=>{!r&&l.current&&(p(g()),c.current.style.height=`${g()}px`)}),[r,l.current]);return $("resize",m,window),t().createElement(x.CSSTransition,{onEnter:()=>{p(g())},onExit:()=>{p(0)},in:!r,timeout:0,classNames:"collapse"},t().createElement("div",{className:"collapse-wrapper",ref:c,style:h},t().createElement("div",(f=((e,t)=>{for(var n in t||(t={}))A.call(t,n)&&L(e,n,t[n]);if(T)for(var n of T(t))_.call(t,n)&&L(e,n,t[n]);return e})({},a),E(f,O({className:i,ref:l}))),s)));var f}M.propTypes={children:r().oneOfType([r().element,r().node,r().string]),collapsed:r().bool,className:r().string};const R=M;function N({children:n,className:o}){const{collapsed:i}=(0,e.useContext)(a),r=["tyk-accordion__item-content",o].filter(Boolean).join(" ");return t().createElement("div",{className:r},t().createElement(R,{collapsed:i},n))}N.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string};const I=N;function P({className:n,children:o,usearrowastrigger:i,arrow:r={position:"right",expandToContent:!1}}){const a=["tyk-accordion",n].filter(Boolean).join(" "),l=(0,e.useMemo)((()=>({usearrowastrigger:i,arrow:r})),[i,r]);return t().createElement("div",{className:a},t().createElement(s.Provider,{value:l},o))}P.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,usearrowastrigger:r().bool,arrow:r().shape({position:r().oneOf(["left","right"]),expandToContent:r().bool})},P.defaultProps={usearrowastrigger:!1},P.Item=v,P.Item.Header=w,P.Item.Content=I;const D=P;var F=Object.defineProperty,B=Object.getOwnPropertySymbols,W=Object.prototype.hasOwnProperty,H=Object.prototype.propertyIsEnumerable,j=(e,t,n)=>t in e?F(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,z=(e,t)=>{for(var n in t||(t={}))W.call(t,n)&&j(e,n,t[n]);if(B)for(var n of B(t))H.call(t,n)&&j(e,n,t[n]);return e};function V(n,o){const i=n,{customButton:r,children:s,iconType:a,iconFamily:l,iconPosition:c,iconOnly:u,id:h,className:d,disabled:p,display:m,href:f,onClick:y,noStyle:v,size:b,theme:w,type:x}=i,k=((e,t)=>{var n={};for(var o in e)W.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&B)for(var o of B(e))t.indexOf(o)<0&&H.call(e,o)&&(n[o]=e[o]);return n})(i,["customButton","children","iconType","iconFamily","iconPosition","iconOnly","id","className","disabled","display","href","onClick","noStyle","size","theme","type"]),C=()=>{const e=["tyk-button"].concat(d?d.split(" "):[]),t=b?`tyk-button--${b}`:"tyk-button--md",n=p?"disabled":"",o=m||"",i=w?`tyk-button--${w}`:"",r=u?"tyk-button--icon-only":"",s=v?"tyk-button--no-style":"";return e.push(r),e.push(i),e.push(t),e.push(n),e.push(o),e.push(s),a&&e.push(`icon-${c||"left"}`),e.join(" ")},$=e=>a&&(c||"left")===e?t().createElement(g,{family:l,type:a}):null;return(()=>{let n;return r?t().createElement(t().Fragment,null,(0,e.cloneElement)(r,{className:C(),disabled:p})):(n=f?t().createElement("a",z({id:h,className:C(),disabled:p,onClick:y,href:f,ref:o},k),$("left"),s,$("right")):t().createElement("button",z({id:h,className:C(),disabled:p,onClick:y,type:x||"button",ref:o},k),$("left"),s&&t().createElement("span",null,s),$("right")),n)})()}V.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),customButton:r().oneOfType([r().arrayOf(r().node),r().node,r().element]),className:r().string,display:r().string,disabled:r().bool,id:r().string,href:r().string,iconPosition:r().string,iconFamily:r().string,iconOnly:r().bool,iconType:r().string,noStyle:r().bool,onClick:r().func,theme:r().string,type:r().string,size:r().string},V.defaultProps={theme:"",type:"button"};const U=(0,e.forwardRef)(V);function G({className:e,children:n,label:o},i){return t().createElement("div",{ref:i,className:`tyk-button-group__wrapper ${e}`},Boolean(o)&&t().createElement("label",null,o),t().createElement("div",{className:"tyk-button-group"},n))}G.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string.isRequired,label:r().string.isRequired};const K=(0,e.forwardRef)(G);function q({right:e=null,children:n}){return t().createElement("div",{className:"tyk-card__header"},n&&t().createElement("div",{className:"tyk-card__header-content"},n),e&&t().createElement("div",{className:"tyk-card__header-right"},e))}q.propTypes={right:r().oneOfType([r().element,r().node,r().string]),children:r().oneOfType([r().element,r().node,r().string])};const Y=q;function J({align:e="top",children:n}){return t().createElement("div",{className:`tyk-card__body tyk-card__body--align-${e}`},t().createElement("div",null,n))}J.propTypes={align:r().oneOf(["top","center","bottom"]),children:r().oneOfType([r().element,r().node,r().string])};const X=J;function Q({children:e}){return t().createElement("div",{className:"tyk-card__footer"},e)}Q.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const Z=Q;function ee({maxLines:e=1,children:n}){return t().createElement("h4",{className:`tyk-card__title tyk-card__title--max-${e}-lines`},n)}ee.propTypes={maxLines:r().number,children:r().oneOfType([r().element,r().node,r().string])};const te=ee;function ne({children:e}){return t().createElement("div",{className:"tyk-card__title-group"},e)}ne.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const oe=ne;function ie({children:e}){return t().createElement("h5",{className:"tyk-card__sub-title"},e)}ie.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const re=ie;function se({maxLines:e=2,children:n}){return t().createElement("p",{className:`tyk-card__summary tyk-card__summary--max-${e}-lines`},n)}se.propTypes={maxLines:r().number,children:r().oneOfType([r().element,r().node,r().string])};const ae=se;function le({children:e}){return t().createElement("div",{className:"tyk-card__title-icon"},e)}le.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const ce=le;function ue({className:e="",height:n="auto",children:o}){return t().createElement("div",{style:{height:n},className:`tyk-card ${e}`},o)}ue.propTypes={className:r().string,height:r().oneOfType([r().number,r().string]),children:r().oneOfType([r().element,r().node,r().string])},ue.Header=Y,ue.Body=X,ue.Footer=Z,ue.Title=te,ue.TitleGroup=oe,ue.Icon=ce,ue.SubTitle=re,ue.Summary=ae;const he=ue,de=require("echarts"),pe=require("immutable"),ge=(e,t,n)=>{let o;return function(...i){const r=this,s=n&&!o;clearTimeout(o),o=setTimeout((()=>{o=null,n||e.apply(r,i)}),t),s&&e.apply(r,i)}},me=t=>{const n=(0,e.useRef)();return(0,e.useEffect)((()=>{n.current=t}),[t]),n.current};function fe({className:e,position:n="relative",withbackground:o=!1}){const i=["loading",n,e].filter(Boolean).join(" "),r=t().createElement("div",{className:i},t().createElement("div",{className:"loading-bar"}),t().createElement("div",{className:"loading-bar"}),t().createElement("div",{className:"loading-bar"}),t().createElement("div",{className:"loading-bar"}));return o?t().createElement("div",{className:"tyk-loading__wrapper"},r):r}fe.propTypes={className:r().string,position:r().string,withbackground:r().bool};const ye=fe;function ve({children:e,theme:n,onClose:o,noMargin:i,className:r}){const s="success"===n?"check":"warning";return t().createElement("div",{className:["tyk-message",`tyk-message--${n||"info"}`,i&&"no-margin",r].filter(Boolean).join(" ")},t().createElement(g,{family:"tykon",type:s}),t().createElement("div",{className:"tyk-message__content"},e),o&&t().createElement(g,{family:"tykon",type:"x",onClick:o}))}ve.propTypes={theme:r().string,children:r().oneOfType([r().element,r().node,r().string]),className:r().string,noMargin:r().bool,onClose:r().func};const be=ve,we=JSON.parse('{"type":"FeatureCollection","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:OGC:1.3:CRS84"}},"features":[{"geometry":{"type":"Polygon","coordinates":[[[47.97822265625001,7.9970703125],[46.97822265625001,7.9970703125],[43.98378906250002,9.008837890624989],[43.482519531250006,9.379492187499991],[43.181640625,9.879980468749991],[42.84160156250002,10.203076171874997],[42.65644531250001,10.6],[42.92275390625002,10.999316406249989],[43.24599609375002,11.499804687499989],[43.85273437500001,10.784277343749991],[44.38652343750002,10.430224609374989],[44.94296875,10.43671875],[45.81669921875002,10.835888671874997],[46.565039062500006,10.745996093749994],[47.40498046875001,11.174023437499997],[48.01923828125001,11.139355468749997],[48.57255859375002,11.320507812499997],[48.938574218750006,11.258447265624994],[50.11005859375001,11.529296875],[50.79228515625002,11.983691406249989],[51.2548828125,11.830712890624994],[51.08427734375002,11.335644531249997],[51.140625,10.656884765624994],[51.031835937500006,10.444775390624997],[51.19296875,10.554638671874997],[51.390234375,10.422607421875],[50.93007812500002,10.33554687499999],[50.825,9.428173828124997],[50.10283203125002,8.199804687499991],[49.85205078125,7.962548828124994],[49.234960937500006,6.77734375],[49.04931640625,6.173632812499989],[47.97529296875001,4.497021484374997],[46.87880859375002,3.28564453125],[46.05117187500002,2.475146484374989],[44.92021484375002,1.81015625],[43.71757812500002,0.857861328124997],[41.97988281250002,-0.973046875],[41.53271484375,-1.6953125],[41.521875,-1.572265625],[41.42695312500001,-1.449511718750003],[41.24980468750002,-1.220507812500003],[40.97871093750001,-0.870312500000011],[40.964453125,2.814648437499997],[41.341796875,3.20166015625],[41.61347656250001,3.590478515624994],[41.88398437500001,3.977734375],[41.91533203125002,4.031298828124989],[42.02412109375001,4.137939453125],[42.85664062500001,4.32421875],[43.12568359375001,4.644482421874997],[43.58349609375,4.85498046875],[43.988867187500006,4.950537109374991],[44.940527343750006,4.912011718749994],[47.97822265625001,7.9970703125]]]},"properties":{"name":"Somalia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[9.579979133936737,47.05856388629306],[9.409458596647225,47.02019676540292],[9.46249431093294,47.09010747968864],[9.46249431093294,47.19858962254578],[9.527658197470123,47.27026989773668],[9.579979133936737,47.05856388629306]]]},"properties":{"name":"Liechtenstein","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-8.683349609375,27.77800740805682],[-13.038761787013554,27.81190166624856],[-12.948925781249926,27.914160156250034],[-11.552685546874955,28.31010742187496],[-10.486474609374994,29.06494140625],[-10.200585937499994,29.380371093750057],[-9.667089843749949,30.10927734375005],[-9.652929687499977,30.447558593750045],[-9.875488281249943,30.717919921874966],[-9.80869140624992,31.42460937499996],[-9.347460937499932,32.086376953124955],[-9.245849609375,32.572460937499955],[-8.512841796874994,33.25244140625003],[-6.900976562499949,33.96904296874999],[-6.353125,34.77607421875001],[-5.924804687499943,35.78579101562502],[-5.277832031249943,35.90273437500002],[-5.252685546874972,35.61474609374997],[-4.628320312499966,35.206396484375006],[-4.329980468749937,35.161474609375006],[-3.693261718749994,35.27998046874998],[-3.394726562499926,35.21181640625005],[-2.972216796874989,35.40727539062499],[-2.839941406249949,35.127832031249994],[-2.731396484374955,35.13520507812498],[-2.636816406249977,35.11269531250002],[-2.423730468749994,35.12348632812498],[-2.219628906249966,35.10419921874998],[-1.795605468749926,34.751904296874955],[-1.67919921875,33.31865234375002],[-1.550732421874955,33.073583984375006],[-1.510009765625,32.877636718749955],[-1.45,32.784814453124966],[-1.352148437499977,32.70336914062497],[-1.29638671875,32.67568359375002],[-1.188232421875,32.608496093750006],[-1.111035156249983,32.55229492187502],[-1.065527343749949,32.46831054687496],[-1.16259765625,32.399169921875],[-1.275341796874983,32.089013671874966],[-2.863427734374937,32.07470703124997],[-2.930859374999926,32.04252929687499],[-2.988232421874983,31.874218749999983],[-3.01738281249996,31.834277343750017],[-3.439794921874949,31.704541015624983],[-3.604589843749949,31.686767578125],[-3.700244140624989,31.70009765625005],[-3.768164062499977,31.689550781250034],[-3.837109374999983,31.512353515624994],[-3.833398437499937,31.197802734375045],[-3.626904296874955,31.000927734374983],[-4.148779296874977,30.8095703125],[-4.322851562500006,30.698876953124994],[-4.52915039062492,30.62553710937499],[-4.778515624999926,30.552392578124994],[-4.968261718749943,30.465380859375045],[-5.061914062499937,30.326416015625057],[-5.180126953124955,30.166162109374994],[-5.293652343749983,30.058642578125045],[-5.44877929687496,29.956933593750023],[-6.00429687499999,29.83125],[-6.479736328124943,29.82036132812499],[-6.520556640624989,29.659863281249983],[-6.59775390624992,29.578955078125006],[-6.635351562499949,29.568798828124983],[-6.755126953125,29.583837890625034],[-6.855566406249949,29.601611328125017],[-7.142431640624949,29.61958007812504],[-7.427685546874983,29.425],[-7.485742187499994,29.392236328124994],[-8.659912109375,28.718603515625063],[-8.683349609375,27.900390625],[-8.683349609375,27.77800740805682]]]},"properties":{"name":"Morocco","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-13.038761787013554,27.81190166624856],[-8.683349609375,27.77800740805682],[-8.683349609375,27.65644531250004],[-8.817822265624955,27.65644531250004],[-8.817822265624951,27.656445312499997],[-8.683349609375,27.656445312499997],[-8.683349609375,27.2859375],[-8.682861328125,26.921337890624997],[-8.6826171875,26.72314453125],[-8.682324218749983,26.497705078124994],[-8.68212890625,26.273193359375],[-8.68212890625,26.10947265625],[-8.682226562499977,25.995507812499994],[-12.016308593749983,25.995410156250003],[-12.016308593749983,25.740136718749994],[-12.016308593749983,25.331689453124994],[-12.016308593749983,25.059375],[-12.016308593749983,24.923242187499994],[-12.016308593749983,24.378662109375],[-12.016308593749983,23.97021484375],[-12.0234375,23.467578125],[-12.372900390624977,23.318017578124994],[-12.559375,23.290820312500003],[-12.620410156249989,23.27133789062499],[-13.031494140625,23.000244140625],[-13.153271484374983,22.820507812499997],[-13.12702845982141,22.703770926339278],[-13.136540684091575,22.708182548616723],[-13.094335937499977,22.495996093749994],[-13.051220703124983,21.854785156250003],[-13.041748046875,21.713818359374997],[-13.0322265625,21.572070312500003],[-13.025097656249983,21.466796875],[-13.016210937499977,21.333935546874997],[-15.231201171875,21.331298828125],[-16.964550781249983,21.329248046874994],[-17.06396484375,20.89882812499999],[-17.048046874999983,20.80615234375],[-17.098779296874994,20.856884765624997],[-16.930859374999983,21.9],[-16.35874023437495,22.594531250000045],[-16.21025390624999,23.097900390625],[-15.789257812499926,23.792871093750023],[-15.980712890624943,23.670312500000023],[-15.899316406249966,23.844433593749955],[-14.904296875000028,24.719775390625017],[-14.794921874999943,25.404150390625006],[-14.413867187499932,26.25371093749999],[-13.57578125,26.735107421875],[-13.175976562499983,27.655712890624983],[-13.038761787013554,27.81190166624856]],[[-8.774365234374983,27.460546875],[-8.794873046874983,27.120703125000034],[-8.794873046874983,27.120703125],[-8.774365234374983,27.460546875]]]},"properties":{"name":"W. Sahara","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[21.5625,42.247509765625],[21.560839843750017,42.24765625],[21.389550781250023,42.21982421875],[21.28662109375,42.100390625],[21.05976562500001,42.171289062499994],[20.778125,42.071044921875],[20.725,41.87353515625],[20.566210937500017,41.873681640624994],[20.485449218750006,42.223388671875],[20.06396484375,42.54726562499999],[20.054296875,42.760058593749996],[20.344335937500006,42.827929687499996],[20.40996305279786,42.84373166741877],[20.344335937500063,42.82792968750002],[19.670996093750006,43.163964843749994],[19.21875,43.449951171875],[19.196484375000068,43.48500976562502],[19.19160156250004,43.52104492187499],[19.19433593749997,43.533300781250006],[19.495117187500057,43.642871093750045],[19.245019531249994,43.96503906250004],[19.583789062500017,44.04345703125003],[19.118457031250074,44.359960937500006],[19.348632812500057,44.88090820312502],[19.007128906250045,44.86918945312502],[19.062890625000023,45.13720703125],[19.4,45.2125],[19.004687500000074,45.39951171875006],[19.064257812500045,45.51499023437506],[18.839062499999983,45.83574218750002],[18.905371093750006,45.931738281250034],[19.421289062500023,46.064453125],[19.61347656250001,46.169189453125],[19.84443359375001,46.145898437499966],[19.934082031250057,46.161474609375034],[20.161425781250017,46.14189453124996],[20.210156250000068,46.12602539062502],[20.241796875000034,46.10859375000001],[20.301367187500006,46.05068359375002],[20.35859375000004,45.975488281249994],[20.581152343749977,45.86948242187506],[20.65273437499999,45.779394531250006],[20.709277343750074,45.735253906249994],[20.727832031250017,45.73740234374998],[20.746875,45.74897460937501],[20.76015625000005,45.75810546875002],[20.775,45.74980468750002],[20.794042968750006,45.467871093750034],[21.431445312500017,45.192529296874994],[21.465429687500006,45.171875],[21.357031250000034,44.99077148437502],[21.532324218750063,44.900683593750045],[21.519921875000023,44.88081054687498],[21.442187500000074,44.87338867187498],[21.384375,44.87006835937501],[21.357910156250057,44.86181640625003],[21.36005859375004,44.82666015624997],[21.52314453125004,44.79008789062499],[21.63613281250005,44.71044921875],[21.909277343750034,44.666113281250034],[22.026953125,44.61987304687503],[22.093066406250074,44.541943359374955],[22.200976562500017,44.560693359374966],[22.350683593750063,44.676123046875034],[22.497656249999977,44.70625],[22.64208984375,44.65097656249998],[22.720898437499983,44.605517578125045],[22.734375,44.56992187499998],[22.700781250000063,44.55551757812498],[22.620117187500057,44.562353515625034],[22.554003906250017,44.54033203124999],[22.49453125000005,44.43544921875002],[22.687890625000023,44.248291015625],[22.42080078125005,44.00742187500006],[22.399023437500063,43.96953125],[22.36542968750004,43.86210937500002],[22.36962890625003,43.78129882812499],[22.55458984375005,43.45449218750002],[22.767578125,43.35415039062502],[22.81972656250005,43.300732421874955],[22.85957031250001,43.252343749999966],[22.97685546874999,43.18798828125],[22.799902343750006,42.985742187499994],[22.706152343750006,42.88393554687505],[22.466796875,42.842480468749955],[22.53242187500004,42.48120117187497],[22.523535156250006,42.440966796875045],[22.44570312500005,42.35913085937497],[22.42207031250004,42.32885742187503],[22.344042968750045,42.31396484375003],[22.23974609375003,42.303110028468716],[21.81464843750001,42.303125],[21.5625,42.24750976562498],[21.5625,42.247509765625]]]},"properties":{"name":"Serbia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[74.54140625000002,37.02216796875],[74.03886718750002,36.825732421874996],[73.116796875,36.868554687499994],[72.24980468750002,36.734716796875],[71.23291015625,36.12177734375],[71.18505859375,36.04208984375],[71.57197265625001,35.546826171875],[71.62050781250002,35.183007812499994],[70.965625,34.53037109375],[71.095703125,34.369433593749996],[71.05156250000002,34.049707031249994],[70.65400390625001,33.952294921874994],[69.8896484375,34.007275390625],[70.26113281250002,33.289013671875],[69.5015625,33.020068359374996],[69.24140625000001,32.433544921875],[69.279296875,31.936816406249996],[68.86894531250002,31.634228515624997],[68.59765625,31.802978515625],[68.16103515625002,31.802978515625],[67.57822265625,31.506494140624994],[67.737890625,31.343945312499997],[67.45283203125001,31.234619140625],[66.82929687500001,31.263671875],[66.346875,30.802783203124996],[66.23125,29.86572265625],[65.09550781250002,29.559472656249994],[64.39375,29.544335937499994],[64.09873046875,29.391943359375],[63.56757812500001,29.497998046874997],[62.4765625,29.408349609374994],[62.0009765625,29.530419921874994],[61.22441406250002,29.749414062499994],[60.843359375,29.858691406249996],[61.331640625,30.363720703124997],[61.55947265625002,30.599365234375],[61.7841796875,30.831933593749994],[61.81083984375002,30.91328125],[61.81425781250002,31.072558593749996],[61.75507812500001,31.285302734374994],[61.66015625,31.382421875],[61.34648437500002,31.421630859375],[61.11074218750002,31.451123046874997],[60.854101562500006,31.483251953125],[60.82070312500002,31.495166015624996],[60.791601562500006,31.660595703124997],[60.804296875,31.73447265625],[60.7875,31.877197265625],[60.78994140625002,31.987109375],[60.827246093750006,32.16796875],[60.82929687500001,32.249414062499994],[60.71044921875,32.6],[60.57656250000002,32.994873046875],[60.560546875,33.137841796874994],[60.9169921875,33.505224609375],[60.573828125,33.588330078125],[60.4859375,33.7119140625],[60.48574218750002,34.094775390624996],[60.642675781250006,34.307177734374996],[60.88945312500002,34.31943359375],[60.80390625000001,34.418017578124996],[60.76259765625002,34.475244140624994],[60.73613281250002,34.491796875],[60.72626953125001,34.51826171875],[60.73945312500001,34.544726562499996],[60.80234375,34.554638671875],[60.8453125,34.587695312499996],[60.91474609375001,34.633984375],[60.951171875,34.653857421874996],[61.080078125,34.855615234374994],[61.1,35.272314453125],[61.18925781250002,35.31201171875],[61.24550781250002,35.474072265625],[61.27851562500001,35.51376953125],[61.281835937500006,35.55341796875],[61.26201171875002,35.619580078125],[61.3447265625,35.6294921875],[61.62099609375002,35.43232421875],[62.08964843750002,35.3796875],[62.30781250000001,35.170800781249994],[62.688085937500006,35.255322265625],[63.056640625,35.44580078125],[63.08417968750001,35.56806640625],[63.16972656250002,35.678125],[63.129980468750006,35.84619140625],[63.8625,36.012353515624994],[64.184375,36.14892578125],[64.51103515625002,36.340673828125],[64.56582031250002,36.427587890625],[64.6025390625,36.554541015625],[64.78242187500001,37.05927734375],[64.81630859375002,37.132080078125],[64.95156250000002,37.1935546875],[65.08964843750002,37.237939453124994],[65.30361328125002,37.24677734375],[65.55498046875002,37.251171875],[65.76503906250002,37.569140625],[66.471875,37.3447265625],[66.52226562500002,37.348486328125],[66.827734375,37.3712890625],[67.06884765625,37.334814453125],[67.19550781250001,37.235205078125],[67.31972656250002,37.2095703125],[67.44169921875002,37.2580078125],[67.51728515625001,37.266650390624996],[67.546484375,37.235644531249996],[67.607421875,37.222509765625],[67.7,37.22724609375],[67.7529296875,37.1998046875],[67.75898437500001,37.172216796875],[67.76601562500002,37.14013671875],[67.83447265625,37.064208984375],[67.9580078125,36.972021484375],[68.06777343750002,36.9498046875],[68.26093750000001,37.013085937499994],[68.284765625,37.036328125],[68.29951171875001,37.088427734374996],[68.38691406250001,37.1375],[68.66914062500001,37.2583984375],[68.7232421875,37.268017578125],[68.78203125000002,37.2580078125],[68.82373046875,37.270703125],[68.8384765625,37.30283203125],[68.85537109375002,37.316845703125],[68.88525390625,37.328076171875],[68.91181640625001,37.333935546875],[68.96044921875,37.325048828125],[69.18017578125,37.15830078125],[69.26484375000001,37.1083984375],[69.30390625000001,37.116943359375],[69.35380859375002,37.150048828124994],[69.41445312500002,37.207763671875],[69.4296875,37.290869140625],[69.39921875000002,37.399316406249994],[69.42011718750001,37.48671875],[69.49208984375002,37.553076171875],[69.62578125000002,37.594042968749996],[69.8208984375,37.6095703125],[69.9849609375,37.566162109375],[70.18867187500001,37.582470703125],[70.25146484375,37.66416015625],[70.25498046875,37.765380859375],[70.19941406250001,37.886035156249996],[70.21464843750002,37.9244140625],[70.41777343750002,38.075439453125],[70.7359375,38.42255859375],[71.255859375,38.306982421875],[71.33271484375001,38.170263671875],[71.27851562500001,37.918408203125],[71.319921875,37.90185546875],[71.3896484375,37.906298828124996],[71.48779296875,37.931884765625],[71.55195312500001,37.933154296874996],[71.58222656250001,37.910107421875],[71.43291015625002,37.1275390625],[71.530859375,36.845117187499994],[71.665625,36.696923828124994],[72.65742187500001,37.029052734375],[72.8955078125,37.267529296875],[73.21113281250001,37.408496093749996],[73.38291015625,37.462255859375],[73.48134765625002,37.4716796875],[73.60468750000001,37.446044921875],[73.65712890625002,37.43046875],[73.72060546875002,37.41875],[73.73378906250002,37.37578125],[73.71728515625,37.329443359375],[73.6275390625,37.261572265625],[73.65351562500001,37.23935546875],[73.749609375,37.231787109375],[74.16708984375,37.329443359375],[74.20351562500002,37.372460937499994],[74.25966796875002,37.415429687499994],[74.659375,37.394482421875],[74.73056640625,37.35703125],[74.83046875000002,37.2859375],[74.89130859375001,37.231640625],[74.84023437500002,37.225048828125],[74.76738281250002,37.249169921874994],[74.73896484375001,37.28564453125],[74.72666015625,37.29072265625],[74.6689453125,37.26669921875],[74.55898437500002,37.236621093749996],[74.37216796875,37.15771484375],[74.37617187500001,37.137353515624994],[74.49794921875002,37.0572265625],[74.52646484375,37.030664062499994],[74.54140625000002,37.02216796875]]]},"properties":{"name":"Afghanistan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[17.57958984375,-8.099023437500009],[17.643359375000017,-8.090722656250009],[18.00878906250003,-8.107617187499983],[18.56269531250001,-7.9359375],[18.944433593750063,-8.001464843750028],[19.142675781250034,-8.001464843750028],[19.34082031249997,-7.966601562500031],[19.369921875000045,-7.706542968749986],[19.371679687500063,-7.655078124999989],[19.47988281250008,-7.472167968750028],[19.48378906250008,-7.279492187500026],[19.527636718750017,-7.144433593749952],[19.87519531250004,-6.986328124999986],[19.99746093750008,-6.976464843750023],[20.190039062500063,-6.9462890625],[20.482226562500074,-6.915820312500017],[20.59003906250001,-6.919921874999957],[20.598730468750006,-6.935156249999949],[20.536914062500045,-7.121777343749955],[20.535839843749983,-7.182812499999955],[20.558398437500045,-7.244433593749989],[20.60781250000008,-7.277734375000023],[20.910937500000017,-7.281445312499983],[21.190332031250023,-7.284960937499989],[21.751074218750034,-7.305468749999989],[21.80605468750005,-7.32861328125],[21.905371093750034,-8.693359374999943],[21.813183593750068,-9.46875],[22.19775390625,-10.040625],[22.30703125000005,-10.691308593750023],[22.203515625000023,-10.829492187500009],[22.226171875,-11.121972656250009],[22.27880859375,-11.19414062499996],[22.314941406250057,-11.198632812499994],[22.39296875000005,-11.159472656250003],[22.486132812500045,-11.086718750000017],[22.56103515625003,-11.05585937500004],[22.814746093750017,-11.08027343750004],[23.076269531250006,-11.087890624999986],[23.463964843750034,-10.969335937499991],[23.83388671875008,-11.013671874999972],[23.96650390625001,-10.871777343750011],[23.98388671875,-11.725],[23.909375,-12.636132812500009],[23.886523437500045,-12.743261718749991],[23.882421875,-12.799023437499983],[23.968066406250045,-12.956933593749994],[23.962988281250006,-12.988476562500026],[23.843164062500023,-13.0009765625],[22.209570312500006,-13.0009765625],[21.97890625000008,-13.0009765625],[21.979101562500034,-13.798730468749994],[21.979296875000074,-14.11962890625],[21.979394531249994,-14.440527343750006],[21.97978515624999,-15.955566406250014],[22.193945312500006,-16.628125],[23.380664062500017,-17.640625],[22.32421875,-17.8375],[20.74550781250008,-18.019726562499983],[20.194335937500057,-17.86367187499999],[18.95527343750004,-17.80351562499999],[18.39638671875005,-17.3994140625],[16.14843750000003,-17.39023437499999],[14.017480468750023,-17.40888671874997],[13.475976562500023,-17.04003906249997],[13.179492187500017,-16.971679687499986],[12.548144531250017,-17.212695312499974],[12.35927734375008,-17.205859375],[12.318457031250006,-17.21337890625003],[12.213378906250028,-17.209960937500043],[12.013964843750074,-17.168554687500034],[11.902539062500011,-17.226562499999957],[11.743066406250023,-17.24921875000004],[11.780078125000017,-16.87128906249997],[11.818945312500034,-16.704101562500014],[11.750878906250023,-15.831933593749966],[12.016113281250057,-15.513671874999957],[12.55048828125004,-13.437792968750003],[12.983203124999989,-12.775683593750017],[13.4169921875,-12.52041015624998],[13.597949218750017,-12.286132812500028],[13.785351562499983,-11.81279296874996],[13.833593750000063,-10.9296875],[13.33222656250004,-9.998925781250009],[12.99853515625,-9.048046875],[13.358984375,-8.687207031250026],[13.378515625000063,-8.369726562500006],[12.82343750000004,-6.954785156249955],[12.283300781250063,-6.12431640624996],[13.184375,-5.85625],[13.346484375000017,-5.863378906250006],[13.978515625,-5.857226562500003],[16.315234375000074,-5.865625],[16.431445312500045,-5.90019531249996],[16.53710937499997,-5.9658203125],[16.697265625,-6.164257812500026],[16.74296874999999,-6.618457031250003],[16.813085937500063,-6.772558593749963],[16.919433593750057,-6.93398437499998],[16.98476562500005,-7.257421874999977],[17.57958984375,-8.099023437500009]]],[[[12.50146484375,-4.5875],[12.848144531250028,-4.428906249999983],[12.881054687500068,-4.445117187499989],[12.971386718750068,-4.551757812499957],[13.048046875000068,-4.619238281250034],[13.072753906250028,-4.634765625],[13.057324218750011,-4.651074218750026],[12.947460937500011,-4.695312499999986],[12.829687499999977,-4.73662109374996],[12.451464843750017,-5.071484374999969],[12.453222656250034,-5.090625],[12.52236328125008,-5.148925781250028],[12.484570312500011,-5.71875],[12.213671875000074,-5.758691406249994],[12.177148437499994,-5.324804687499977],[12.018359375000074,-5.004296874999966],[12.50146484375,-4.5875]]]]},"properties":{"name":"Angola","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[20.06396484375,42.54726562499999],[20.485449218750006,42.223388671875],[20.566210937500017,41.873681640624994],[20.48896484375001,41.272607421874994],[20.709277343750017,40.928369140624994],[20.964257812500023,40.849902343749996],[20.95576171875001,40.775292968749994],[21.030859375,40.622460937499994],[20.881640625000017,40.467919921874994],[20.65742187500001,40.1173828125],[20.4560546875,40.065576171874994],[20.408007812500017,40.049462890624994],[20.383691406250023,40.0171875],[20.338476562500006,39.991064453125],[20.311132812500006,39.979443359375],[20.311328125000017,39.95078125],[20.381640625000017,39.841796875],[20.382421875,39.802636718749994],[20.206835937500017,39.653515625],[20.13105468750001,39.66162109375],[20.05976562500001,39.699121093749994],[20.022558593750006,39.710693359375],[20.001269531250017,39.709423828125],[19.851855468750017,40.0435546875],[19.322265625,40.407080078125],[19.45917968750001,40.40537109375],[19.3375,40.663818359375],[19.57568359375,41.640429687499996],[19.577539062500023,41.7875],[19.342382812500006,41.869091796875],[19.280664062500023,42.17255859375],[19.65449218750001,42.628564453124994],[19.78828125000001,42.476171875],[20.06396484375,42.54726562499999]]]},"properties":{"name":"Albania","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[19.66230468750001,60.187158203124994],[19.53652343750005,60.14497070312501],[19.551367187500063,60.24384765625001],[19.66230468750001,60.187158203124994]]],[[[19.989550781250074,60.351171875],[20.258886718750063,60.26127929687499],[19.799804687500057,60.08173828125001],[19.68691406250005,60.267626953125045],[19.84765625000003,60.22055664062506],[19.823046875000074,60.390185546875045],[19.989550781250074,60.351171875]]]]},"properties":{"name":"Aland","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[1.7060546875,42.503320312499994],[1.534082031250023,42.441699218749996],[1.448828125,42.437451171875],[1.428125,42.46132812499999],[1.414843750000017,42.548388671874996],[1.428320312500006,42.5958984375],[1.501367187500023,42.642724609374994],[1.568164062500017,42.635009765625],[1.709863281250023,42.604443359375],[1.739453125000011,42.575927734375],[1.740234375,42.55673828125],[1.713964843750006,42.525634765625],[1.7060546875,42.503320312499994]]]},"properties":{"name":"Andorra","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[53.927832031250006,24.177197265624983],[53.63447265625004,24.169775390624977],[53.83378906250002,24.258935546875023],[53.927832031250006,24.177197265624983]]],[[[53.3322265625001,24.258593750000045],[53.19091796874997,24.290917968749966],[53.412402343750074,24.411035156250023],[53.3322265625001,24.258593750000045]]],[[[56.29785156250003,25.650683593750045],[56.38798828125002,24.97919921875004],[56.06386718750005,24.73876953125],[56.00058593750006,24.953222656249977],[55.795703125000074,24.868115234374955],[55.76083984375006,24.24267578125],[55.92861328125005,24.215136718750074],[55.98515625000002,24.063378906249966],[55.4684570312501,23.94111328125001],[55.53164062499999,23.81904296875001],[55.1999023437501,23.034765625000034],[55.185839843750074,22.7041015625],[55.104296875000074,22.621484375000023],[52.55507812500005,22.932812499999955],[51.592578125000074,24.07885742187503],[51.56835937500003,24.286181640625074],[51.76757812500003,24.25439453125],[51.84316406250005,24.010888671875023],[52.118554687499994,23.97109375],[52.64824218750002,24.154638671875006],[53.80175781249997,24.069482421874966],[54.14794921875003,24.17119140624999],[54.39707031250006,24.278173828125034],[54.74677734375004,24.810449218750023],[55.94121093750002,25.793994140625017],[56.08046875,26.06264648437505],[56.16748046875003,26.047460937499977],[56.144628906250006,25.690527343750006],[56.29785156250003,25.650683593750045]]]]},"properties":{"name":"United Arab Emirates","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-64.54916992187498,-54.71621093749998],[-63.81542968749997,-54.725097656250014],[-64.637353515625,-54.90253906250001],[-64.75732421875,-54.82656249999999],[-64.54916992187498,-54.71621093749998]]],[[[-68.65322265624994,-54.85361328124999],[-68.62993164062499,-52.65263671875004],[-68.24013671875,-53.08183593749999],[-68.43115234375,-53.0552734375],[-68.48852539062497,-53.260937499999976],[-68.16113281249997,-53.30644531250001],[-68.00849609374995,-53.5640625],[-67.29423828125002,-54.049804687500014],[-66.23564453124999,-54.53349609374997],[-65.17900390624993,-54.678125],[-65.47114257812495,-54.91464843749999],[-66.5111328125,-55.032128906249945],[-67.127099609375,-54.90380859375001],[-68.65322265624994,-54.85361328124999]]],[[[-61.084716796875,-23.65644531250001],[-60.83984375000003,-23.85810546874997],[-59.89248046874994,-24.093554687499974],[-59.18725585937497,-24.56230468749999],[-57.82167968749994,-25.136425781249983],[-57.56313476562494,-25.473730468749963],[-57.943115234375,-26.05292968750001],[-58.18149414062498,-26.30742187499999],[-58.222070312499994,-26.65],[-58.618603515624955,-27.13212890624996],[-58.64174804687494,-27.196093750000017],[-58.60483398437498,-27.314355468750037],[-58.16826171874993,-27.27343749999997],[-56.437158203124966,-27.553808593749977],[-56.16406250000003,-27.321484374999983],[-55.95146484374996,-27.325683593749957],[-55.789990234374926,-27.416406249999966],[-55.71464843749996,-27.41484375],[-55.632910156250006,-27.35712890624997],[-55.59379882812502,-27.288085937500014],[-55.597265625,-27.207617187499963],[-55.56489257812498,-27.15],[-55.496728515624966,-27.11533203124999],[-55.45063476562498,-27.068359375000014],[-55.426660156249994,-27.00927734374997],[-55.13593750000001,-26.931152343749957],[-54.934472656249994,-26.70253906250001],[-54.677734375,-26.308789062499997],[-54.631933593750006,-26.005761718749994],[-54.615869140624994,-25.576074218750023],[-54.44394531249998,-25.625],[-54.15458984374999,-25.523046874999963],[-53.89116210937499,-25.66884765625001],[-53.668554687500006,-26.288183593749977],[-53.83818359375002,-27.121093750000014],[-54.32700195312495,-27.423535156249997],[-54.82910156250003,-27.55058593750003],[-55.10151367187501,-27.866796874999963],[-55.72548828125002,-28.20410156250003],[-55.68725585937497,-28.38164062499996],[-55.890527343749994,-28.370019531249994],[-56.938623046874994,-29.594824218750034],[-57.22465820312499,-29.782128906249994],[-57.40522460937501,-30.03388671875004],[-57.563867187499994,-30.139941406249974],[-57.60888671875003,-30.187792968750045],[-57.65087890624997,-30.295019531250034],[-57.71269531249996,-30.38447265624997],[-57.83120117187502,-30.495214843749963],[-57.87250976562501,-30.591015625000026],[-57.81059570312499,-30.85859375000001],[-57.88632812499998,-30.937402343749994],[-57.86840820312497,-31.104394531249994],[-57.89335937499999,-31.195312499999957],[-58.03339843750001,-31.416601562500006],[-58.053857421874994,-31.494921874999974],[-58.009667968749966,-31.534375],[-57.98798828124998,-31.576171875],[-58.00698242187494,-31.684960937499966],[-58.04233398437495,-31.769238281249997],[-58.16748046874997,-31.87265625],[-58.18901367187499,-31.924218750000037],[-58.16040039062503,-31.986523437500026],[-58.156347656250006,-32.0515625],[-58.17700195312494,-32.11904296875002],[-58.16479492187494,-32.18486328125002],[-58.119726562500006,-32.24892578125002],[-58.12304687499997,-32.321875],[-58.201171875,-32.471679687500014],[-58.219970703125,-32.563964843749986],[-58.17099609374998,-32.95927734374996],[-58.424462890624994,-33.11152343749998],[-58.54721679687498,-33.66347656249998],[-58.392480468749966,-34.192968750000034],[-58.52548828124998,-34.29619140625002],[-58.28334960937494,-34.68349609375005],[-57.54785156250003,-35.018945312499994],[-57.170654296875,-35.3625],[-57.35390624999994,-35.72031249999998],[-57.33544921875,-36.026757812499966],[-57.07617187499994,-36.296777343749994],[-56.74946289062501,-36.346484375],[-56.67202148437494,-36.85126953124998],[-57.546972656250034,-38.085644531250026],[-58.17919921874994,-38.435839843750045],[-59.82832031250001,-38.83818359375003],[-61.112207031249994,-38.99296875000003],[-61.84790039062497,-38.961816406249994],[-62.33476562499993,-38.80009765625],[-62.29506835937502,-39.24326171874996],[-62.053662109374955,-39.373828125],[-62.179345703124994,-39.38046875000002],[-62.076806640624966,-39.46152343750002],[-62.131542968749926,-39.82539062499998],[-62.28691406249996,-39.89531250000002],[-62.40185546875003,-40.19658203125002],[-62.24633789062494,-40.674609374999974],[-62.39501953124997,-40.89082031249997],[-62.95903320312493,-41.10966796875006],[-63.621777343749955,-41.15976562499996],[-64.86948242187503,-40.735839843750014],[-65.13339843749998,-40.88066406250003],[-64.98637695312496,-42.102050781249986],[-64.53774414062494,-42.25458984374998],[-64.57099609374998,-42.416015625],[-64.42041015625003,-42.43378906249998],[-64.10087890624993,-42.395117187500006],[-64.06118164062494,-42.266113281250014],[-64.228515625,-42.21826171874996],[-63.795556640624994,-42.113867187500006],[-63.6298828125,-42.28271484375003],[-63.61733398437502,-42.695800781249986],[-64.03476562499998,-42.88125],[-64.48784179687499,-42.51347656250006],[-64.97070312499997,-42.66630859375002],[-65.02690429687496,-42.75888671874996],[-64.31914062499999,-42.968945312500026],[-64.83994140624998,-43.18886718749998],[-65.25234374999997,-43.571875],[-65.26552734375,-44.2796875],[-65.64760742187502,-44.661425781250045],[-65.63876953125,-45.0078125],[-66.19013671874995,-44.96474609375002],[-66.94140625,-45.25732421875003],[-67.59956054687495,-46.05253906250003],[-67.5064453125,-46.44277343749995],[-66.77685546874994,-47.005859375],[-65.99853515625,-47.09375],[-65.73808593749999,-47.34492187499998],[-65.81430664062495,-47.63818359374996],[-66.22524414062502,-47.826757812500006],[-65.93422851562497,-47.826757812500006],[-65.81005859374997,-47.941113281250026],[-67.46630859375,-48.95175781250004],[-67.68486328125002,-49.2466796875],[-67.82597656249999,-49.91962890625005],[-68.2572265625,-50.104589843749984],[-68.66757812500003,-49.75253906250003],[-68.66162109374997,-49.93574218750005],[-68.97958984375,-50.003027343749984],[-68.59794921874996,-50.00947265624997],[-68.421875,-50.15791015625001],[-69.04477539062495,-50.49912109374998],[-69.35859374999993,-51.028125],[-69.20102539062498,-50.99365234375001],[-69.03530273437497,-51.48896484375002],[-69.46542968750003,-51.58447265625003],[-68.96533203125003,-51.67714843749999],[-68.443359375,-52.35664062500004],[-69.96025390624993,-52.00820312500002],[-71.91865234374995,-51.98955078125004],[-72.40766601562501,-51.54082031250002],[-72.34023437499997,-50.68183593749999],[-72.50981445312496,-50.607519531250034],[-73.15292968749998,-50.73828125000003],[-73.50126953124996,-50.125292968750024],[-73.55419921875,-49.463867187500014],[-73.46157226562497,-49.31386718750001],[-73.13525390625,-49.30068359374999],[-73.03364257812501,-49.014355468750004],[-72.65126953125,-48.84160156249998],[-72.582861328125,-48.47539062499999],[-72.35473632812497,-48.36582031250005],[-72.32832031250001,-48.11005859374998],[-72.517919921875,-47.87636718749998],[-72.34594726562497,-47.49267578124997],[-71.90498046875001,-47.201660156250014],[-71.94023437499999,-46.83125],[-71.69965820312501,-46.6513671875],[-71.87568359374998,-46.160546875],[-71.63154296874998,-45.95371093749998],[-71.74619140624998,-45.57890625],[-71.34931640624995,-45.33193359374995],[-71.5962890625,-44.97919921875004],[-72.04169921874998,-44.90419921875004],[-72.06372070312503,-44.771875],[-71.26113281250002,-44.763085937499966],[-71.15971679687496,-44.56025390625004],[-71.21259765624998,-44.44121093750003],[-71.82001953124993,-44.38310546875],[-71.68007812500002,-43.92958984374998],[-71.90498046875001,-43.34755859374998],[-71.750634765625,-43.237304687499986],[-72.14643554687498,-42.990039062499974],[-72.10820312499993,-42.25185546874995],[-71.75,-42.04677734375001],[-71.91127929687497,-41.650390624999986],[-71.93212890624994,-40.69169921874999],[-71.70898437499997,-40.381738281249994],[-71.81831054687493,-40.17666015624995],[-71.65976562499998,-40.02080078125],[-71.71992187499995,-39.63525390624997],[-71.53945312499997,-39.60244140624995],[-71.40156249999995,-38.93505859374996],[-70.858642578125,-38.60449218750003],[-71.16757812499998,-37.76230468749996],[-71.19218750000002,-36.84365234375004],[-71.05551757812498,-36.52373046874996],[-70.40478515625,-36.06171874999998],[-70.41572265625001,-35.52304687500002],[-70.55517578125,-35.246875],[-70.39316406250003,-35.146875],[-70.05205078124999,-34.30078124999997],[-69.85244140625,-34.224316406250026],[-69.81962890624999,-33.28378906249999],[-70.08486328125002,-33.20175781249998],[-70.02197265625,-32.88457031250002],[-70.36376953125,-32.08349609374997],[-70.25439453125,-31.957714843750026],[-70.585205078125,-31.569433593749963],[-70.51958007812493,-31.1484375],[-70.30908203124994,-31.02265625000004],[-70.15322265625,-30.360937499999963],[-69.95634765624996,-30.35820312500003],[-69.84428710937493,-30.175],[-69.95996093749997,-30.078320312500026],[-70.02680664062501,-29.324023437500017],[-69.82788085937497,-29.10322265624997],[-69.65693359374995,-28.413574218749986],[-69.17441406249998,-27.924707031250037],[-68.84633789062494,-27.153710937499994],[-68.59208984375002,-27.140039062499966],[-68.31865234374999,-26.973242187500006],[-68.59160156249999,-26.47041015624997],[-68.41450195312498,-26.153710937500023],[-68.59208984375002,-25.420019531250034],[-68.38422851562495,-25.091894531249977],[-68.56201171875,-24.74736328125003],[-68.25029296875002,-24.391992187500023],[-67.35620117187503,-24.033789062499963],[-67.00878906249994,-23.00136718750005],[-67.19487304687493,-22.821679687500037],[-66.99111328125,-22.509863281250006],[-66.71171874999999,-22.216308593749986],[-66.36518554687501,-22.113769531249957],[-66.32246093750001,-22.053125],[-66.28212890624997,-21.94746093750001],[-66.24760742187496,-21.83046875],[-66.22016601562495,-21.802539062499974],[-66.174658203125,-21.805664062499986],[-66.09858398437495,-21.83505859375002],[-66.05859375,-21.87949218750002],[-65.86015624999999,-22.019726562499983],[-65.77104492187493,-22.099609375000014],[-65.68618164062497,-22.11025390625005],[-65.51879882812497,-22.094531250000045],[-64.99262695312498,-22.109667968750017],[-64.60551757812499,-22.228808593750045],[-64.52363281250001,-22.37158203125],[-64.47773437499998,-22.485351562499986],[-64.44550781249998,-22.585351562500023],[-64.37397460937498,-22.761035156250017],[-64.32529296875,-22.82763671875],[-64.30791015624993,-22.7953125],[-64.26640625000002,-22.60332031249996],[-63.97612304687502,-22.072558593750003],[-63.92167968749993,-22.028613281250017],[-62.843359375,-21.997265625000026],[-62.62597656250003,-22.29042968749998],[-62.54155273437496,-22.349609374999957],[-62.37250976562498,-22.439160156249997],[-62.21416015624996,-22.612402343750034],[-61.798535156249955,-23.18203125],[-61.084716796875,-23.65644531250001]]]]},"properties":{"name":"Argentina","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[46.490625,38.90668945312498],[46.1144531250001,38.877783203125034],[45.977441406249994,39.24389648437503],[45.76630859375004,39.37846679687499],[45.78447265625002,39.54560546875001],[45.456835937500074,39.494482421875006],[45.15283203125003,39.58266601562502],[45.03164062500005,39.76513671874997],[44.76826171875004,39.70351562500005],[44.28925781250004,40.040380859375006],[43.66621093750004,40.12636718750002],[43.56933593750003,40.48237304687498],[43.72265624999997,40.71953124999999],[43.43945312500003,41.10712890625001],[44.077246093750006,41.182519531249994],[44.81132812500002,41.259375],[45.001367187499994,41.29096679687498],[45.188574218750006,41.14741210937504],[45.07050781250004,41.075585937499966],[45.5875,40.846923828125],[45.37890624999997,40.67358398437506],[45.45439453125002,40.532373046874966],[45.96464843750002,40.233789062499966],[45.8859375000001,40.024853515624955],[45.57978515625004,39.9775390625],[46.202050781249994,39.59448242187503],[46.48144531249997,39.55517578125003],[46.36523437500003,39.402490234374994],[46.584765625000074,39.22368164062499],[46.400292968749994,39.1921875],[46.490625,38.90668945312498]]]},"properties":{"name":"Armenia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-170.72626953125,-14.351171875],[-170.8205078125,-14.312109375],[-170.568115234375,-14.266796875000011],[-170.72626953125,-14.351171875]]]},"properties":{"name":"American Samoa","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[69.2824218750001,-49.05888671875002],[69.16718750000004,-48.88291015624996],[69.36875,-48.89042968749998],[69.2824218750001,-49.05888671875002]]],[[[69.18486328125002,-49.10957031250004],[69.59277343749997,-48.97099609375005],[69.64404296875003,-49.11738281250003],[69.40507812500002,-49.18173828125],[69.5423828125,-49.25566406250005],[70.32021484375005,-49.05859374999996],[70.55546875000007,-49.201464843750024],[70.38613281250005,-49.433984374999966],[70.16582031250002,-49.34296874999998],[69.75996093750004,-49.430175781249986],[69.98642578125006,-49.58164062500003],[70.2477539062501,-49.53066406250003],[70.12431640625002,-49.70439453124999],[69.153125,-49.5296875],[68.99296875000007,-49.704980468750016],[68.81474609375002,-49.69960937499999],[68.88339843750006,-49.16494140624995],[68.76953125000003,-49.06591796875003],[69.00244140624997,-48.661230468750006],[69.13613281250005,-48.86103515625003],[69.05214843750005,-49.08193359375001],[69.18486328125002,-49.10957031250004]]],[[[51.83457031250006,-46.43994140625],[51.65927734375006,-46.37363281249999],[51.7418945312501,-46.32685546874997],[51.83457031250006,-46.43994140625]]]]},"properties":{"name":"Fr. S. Antarctic Lands","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[-61.71606445312503,17.037011718749994],[-61.85966796874996,17.013330078124966],[-61.887109374999966,17.09814453125],[-61.81728515624994,17.168945312500057],[-61.71606445312503,17.037011718749994]]]},"properties":{"name":"Antigua and Barb.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[147.35605468750006,-43.396972656250014],[147.30888671875007,-43.50078125000002],[147.10498046875003,-43.43115234374996],[147.28388671875004,-43.278906250000034],[147.35605468750006,-43.396972656250014]]],[[[145.04296875000003,-40.78671875],[145.28300781250002,-40.76992187500002],[146.31748046875006,-41.16347656250001],[146.72343750000002,-41.07802734375001],[146.84814453124997,-41.16806640624996],[146.98984375000006,-40.99238281249997],[147.45478515625004,-41.00166015624998],[147.62167968750012,-40.844726562499986],[147.87294921875005,-40.87255859374997],[147.96875,-40.779589843750045],[148.215234375,-40.85488281250002],[148.34257812500007,-42.21533203124997],[148.21367187500002,-41.97001953125],[147.92441406250006,-42.5724609375],[147.94541015625006,-43.18183593749997],[147.7858398437501,-43.22001953125002],[147.69892578125004,-43.12255859374997],[147.64794921874997,-43.02060546874999],[147.8,-42.928125],[147.57382812500006,-42.84570312499997],[147.4523437500001,-43.03339843750001],[147.29794921875006,-42.790917968749994],[147.24501953125005,-43.21591796874999],[146.99697265625005,-43.15634765625002],[147.07734375000004,-43.27587890625003],[146.87392578125,-43.6125],[146.54853515625004,-43.50888671874999],[146.04316406250004,-43.547167968749974],[145.99443359375007,-43.37607421875002],[146.20800781249997,-43.31621093749999],[145.8732421875001,-43.29238281250002],[145.48759765625002,-42.92666015625004],[145.19882812500006,-42.23085937500004],[145.46826171874997,-42.492871093750026],[145.51660156249997,-42.3544921875],[145.33105468750003,-42.14707031250002],[145.23486328124997,-42.19697265624997],[145.23818359375,-42.01962890624999],[144.76611328125003,-41.39003906249998],[144.64609375000006,-40.980859375],[144.71855468750002,-40.67226562500002],[145.04296875000003,-40.78671875]]],[[[148.23691406250006,-40.515136718749986],[148.18779296875007,-40.592578125000045],[148.11728515625012,-40.52148437499996],[148.23691406250006,-40.515136718749986]]],[[[144.784375,-40.506738281249966],[144.74804687499997,-40.589453125000034],[144.7833984375001,-40.434863281249974],[144.784375,-40.506738281249966]]],[[[148.32626953125006,-40.30693359375003],[148.40400390625004,-40.486523437500026],[148.02011718750012,-40.40419921874995],[148.32626953125006,-40.30693359375003]]],[[[148.000390625,-39.75761718750003],[148.29736328125003,-39.985742187499966],[148.31357421875012,-40.173535156250026],[148.10566406250004,-40.26210937499995],[147.76718750000012,-39.87031249999998],[148.000390625,-39.75761718750003]]],[[[143.92792968750004,-40.116113281249966],[143.83857421875004,-39.90410156250003],[144.00078125000007,-39.580175781250034],[144.14101562500005,-39.953808593750026],[143.92792968750004,-40.116113281249966]]],[[[145.31445312500003,-38.49082031249996],[145.35507812500012,-38.55703124999995],[145.12841796875003,-38.52763671875],[145.31445312500003,-38.49082031249996]]],[[[137.59648437500007,-35.73867187499998],[137.92890625000004,-35.72607421875],[138.12343750000005,-35.85234375],[137.67089843749997,-35.897949218750014],[137.44843750000004,-36.07480468749999],[137.20957031250012,-35.982421875],[136.7550781250001,-36.03310546875002],[136.540625,-35.89013671875003],[136.63867187499997,-35.74882812500002],[137.33408203125006,-35.59248046875004],[137.58496093749997,-35.620214843750006],[137.59648437500007,-35.73867187499998]]],[[[153.53876953125004,-27.436425781250037],[153.42656250000002,-27.70644531249998],[153.43544921875,-27.40537109375002],[153.53876953125004,-27.436425781250037]]],[[[113.18300781250005,-26.053125],[112.96425781250005,-25.78310546875001],[112.94707031250002,-25.531542968750017],[113.18300781250005,-26.053125]]],[[[153.07744140625002,-25.75078125],[152.97666015625012,-25.551367187499963],[153.03808593750003,-25.193164062500003],[153.22753906249997,-25.00576171875001],[153.14375,-24.814843750000023],[153.25693359375012,-24.72890625],[153.35019531250012,-25.063085937499963],[153.07744140625002,-25.75078125]]],[[[151.14658203125006,-23.49082031250002],[151.24013671875,-23.529687500000037],[151.23828124999997,-23.77578125],[151.03330078125006,-23.530175781250037],[151.14658203125006,-23.49082031250002]]],[[[115.44619140625005,-20.78779296875001],[115.31806640625004,-20.850585937500014],[115.43457031249997,-20.66796875000003],[115.44619140625005,-20.78779296875001]]],[[[149.04375,-20.29150390624997],[148.93886718750005,-20.283691406249986],[148.98105468750012,-20.153515625000026],[149.04375,-20.29150390624997]]],[[[146.27832031249997,-18.23125],[146.29882812499997,-18.48476562500005],[146.09882812500004,-18.251757812500003],[146.27832031249997,-18.23125]]],[[[139.45917968750004,-17.11455078124996],[139.49277343750006,-16.990429687499983],[139.57089843750006,-17.09443359375004],[139.45917968750004,-17.11455078124996]]],[[[139.50781250000003,-16.57304687499996],[139.1595703125,-16.74169921875003],[139.29296875000003,-16.467285156249986],[139.58789062499997,-16.39521484374997],[139.69775390624997,-16.514941406250017],[139.50781250000003,-16.57304687499996]]],[[[137.09365234375005,-15.778125],[136.94267578125002,-15.711718749999989],[137.00957031250007,-15.594824218749977],[137.09365234375005,-15.778125]]],[[[124.59726562500006,-15.40195312500002],[124.52421875000002,-15.421484375],[124.51933593750002,-15.26748046874998],[124.59726562500006,-15.40195312500002]]],[[[125.19882812500006,-14.57949218749998],[125.0912109375,-14.59169921874998],[125.15996093750002,-14.456054687499972],[125.19882812500006,-14.57949218749998]]],[[[136.71464843750002,-13.803906249999983],[136.89082031250004,-13.786621093750014],[136.74531250000004,-14.072656250000023],[136.95078125000006,-14.184277343750026],[136.89433593750002,-14.293066406249977],[136.33544921875003,-14.211816406250037],[136.42470703125,-13.864843749999963],[136.6556640625,-13.675878906250006],[136.71464843750002,-13.803906249999983]]],[[[136.23740234375006,-13.824511718750003],[136.12265625000012,-13.816601562499983],[136.21542968750012,-13.664746093750054],[136.23740234375006,-13.824511718750003]]],[[[136.33867187500007,-11.602343749999989],[136.18027343750006,-11.676757812499957],[136.47929687500002,-11.465917968749991],[136.33867187500007,-11.602343749999989]]],[[[130.45927734375007,-11.679296875000034],[130.60625,-11.816601562500026],[130.04326171875007,-11.787304687500011],[130.19755859375007,-11.658203125],[130.15283203124997,-11.477539062499972],[130.29492187499997,-11.33681640624998],[130.45927734375007,-11.679296875000034]]],[[[130.6188476562501,-11.376074218749991],[131.02304687500006,-11.334375],[131.26826171875004,-11.18984375],[131.53857421874997,-11.436914062500037],[130.95097656250007,-11.926464843750026],[130.51191406250004,-11.617871093749955],[130.38457031250002,-11.1921875],[130.6188476562501,-11.376074218749991]]],[[[136.59853515625,-11.378906249999943],[136.52656250000004,-11.438867187499994],[136.78027343749997,-11.0125],[136.59853515625,-11.378906249999943]]],[[[132.59335937500006,-11.302832031249991],[132.48378906250005,-11.037304687499983],[132.57880859375004,-10.968847656249977],[132.59335937500006,-11.302832031249991]]],[[[143.17890625000004,-11.954492187499966],[143.11025390625,-12.303515625000017],[143.40156250000004,-12.639941406249989],[143.5866210937501,-13.443652343750031],[143.54843750000012,-13.74101562499996],[143.75634765625003,-14.348828124999969],[143.96181640625005,-14.462890625000028],[144.473046875,-14.231835937500023],[144.64804687500006,-14.492480468750017],[145.28769531250006,-14.943164062499989],[145.42607421875002,-16.406152343749966],[145.75478515625,-16.879492187500034],[145.91210937499997,-16.9125],[146.12587890625005,-17.63525390625],[146.03222656249997,-18.272851562500037],[146.3332031250001,-18.55371093749997],[146.38339843750006,-18.97705078124997],[147.13876953125006,-19.39316406250002],[147.41855468750012,-19.378125],[147.7423828125001,-19.770117187499977],[148.759375,-20.28955078125003],[148.88476562499997,-20.480859375],[148.72998046874997,-20.4677734375],[148.68369140625012,-20.58017578124999],[149.20488281250007,-21.125097656249977],[149.45410156249997,-21.57871093750002],[149.70390625000002,-22.440527343750006],[149.82246093750004,-22.389843749999983],[149.97441406250007,-22.55068359374998],[149.94189453125003,-22.30810546875003],[150.07617187500003,-22.16445312499998],[150.54130859375002,-22.55908203125],[150.56855468750004,-22.38398437500004],[150.67246093750012,-22.418164062499983],[150.84316406250005,-23.4580078125],[151.15380859375003,-23.784082031249994],[151.83164062500006,-24.12294921875001],[152.12988281250003,-24.59755859374998],[152.45634765625007,-24.802441406249983],[152.65429687499997,-25.201953125000017],[152.91347656250005,-25.432128906250014],[152.98496093750012,-25.816210937500003],[153.16494140625,-25.964160156250045],[153.11679687500006,-27.194433593750034],[153.57568359375003,-28.24052734374999],[153.6168945312501,-28.673046875],[153.03056640625002,-30.563378906249994],[152.94394531250012,-31.43486328124999],[152.5592773437501,-32.045703125],[152.4704101562501,-32.439062500000034],[152.13652343750002,-32.678125],[152.1642578125001,-32.75742187499996],[151.812890625,-32.90107421875001],[151.29208984375012,-33.580957031249966],[151.28027343750003,-33.92666015625005],[151.12480468750007,-34.00527343749998],[151.23154296875006,-34.0296875],[150.8712890625001,-34.49912109374996],[150.80458984375,-35.01289062500001],[150.19531249999997,-35.83359374999996],[149.93271484375012,-37.528515625000026],[149.480859375,-37.77119140625],[147.87675781250002,-37.93417968749998],[146.8568359375,-38.663476562499966],[146.21748046875004,-38.72744140625004],[146.33662109375004,-38.89423828125],[146.46660156250007,-38.84033203125003],[146.40000000000012,-39.14550781250003],[146.1583984375001,-38.86572265624996],[145.93535156250002,-38.90175781250002],[145.79082031250007,-38.66699218749997],[145.39726562500002,-38.53535156249998],[145.54218750000004,-38.39384765625002],[145.4757812500001,-38.24375],[145.29277343750002,-38.237597656249974],[144.95957031250012,-38.500781250000045],[144.71777343749997,-38.34033203125004],[144.91142578125007,-38.34404296874999],[145.11992187500007,-38.091308593750014],[144.89130859375004,-37.899804687499994],[144.39550781250003,-38.13691406249998],[144.6652343750001,-38.20996093750003],[143.53896484375005,-38.82089843749998],[142.45585937500002,-38.38632812499999],[141.725,-38.27138671875002],[141.5939453125001,-38.38779296875002],[141.42421875,-38.36347656250004],[141.0109375000001,-38.07695312500003],[140.39042968750007,-37.89667968749998],[139.78427734375012,-37.24580078124998],[139.85732421875,-36.662109375],[139.72900390625003,-36.37138671875002],[138.9689453125001,-35.58076171874997],[139.17802734375007,-35.52304687500002],[139.289453125,-35.61132812499997],[139.28251953125002,-35.375390624999966],[138.521875,-35.6423828125],[138.184375,-35.612695312499994],[138.5111328125,-35.02441406249996],[138.48994140625004,-34.76357421875002],[138.0892578125,-34.16982421875002],[137.69169921875002,-35.14296875000004],[136.88359375000007,-35.23974609375004],[137.01425781250012,-34.91582031250003],[137.39101562500005,-34.91328124999997],[137.49384765625004,-34.16113281250003],[137.9318359375001,-33.57910156250003],[137.85234375000007,-33.20078124999996],[137.99257812500005,-33.094238281250014],[137.78320312500003,-32.578125],[137.79091796875,-32.82324218749996],[137.44228515625,-33.1935546875],[137.23730468750003,-33.62949218749999],[136.43066406249997,-34.02998046875004],[135.891015625,-34.660937499999974],[135.96972656249997,-34.98183593749998],[135.7923828125,-34.863281249999986],[135.64755859375006,-34.93964843750001],[135.12304687499997,-34.58574218750003],[135.21679687499997,-34.48730468749996],[135.45,-34.58105468749996],[135.21894531250004,-33.959765625000045],[134.88876953125012,-33.62636718749998],[134.79101562499997,-33.32832031250001],[134.60771484375002,-33.19013671875001],[134.30126953124997,-33.16503906249996],[134.17353515625004,-32.979101562500006],[134.10039062500007,-32.748632812500034],[134.22714843750006,-32.73056640624999],[134.23417968750007,-32.54853515625004],[133.66533203125007,-32.207226562500054],[133.21210937500004,-32.18378906249998],[132.75742187500012,-31.95625],[132.21464843750002,-32.00712890624996],[131.14365234375006,-31.49570312500005],[130.78300781250002,-31.604003906249986],[129.1876953125001,-31.659960937500017],[127.31982421874997,-32.2640625],[125.91718750000004,-32.296972656250034],[124.75878906250003,-32.882714843749994],[124.24375,-33.01523437499999],[123.50683593749997,-33.916210937500054],[122.15097656250006,-33.99179687499999],[122.06113281250006,-33.874414062499966],[121.40507812500007,-33.826757812500034],[119.85410156250012,-33.97470703124998],[119.45058593750005,-34.368261718750034],[118.89531250000007,-34.47988281250004],[118.13554687500002,-34.98662109374999],[117.58193359375005,-35.09775390624998],[116.51718750000012,-34.98789062499998],[115.98671875000005,-34.795019531250034],[115.56503906250012,-34.42578125000003],[115.00878906250003,-34.25585937499997],[114.9938476562501,-33.51533203125],[115.3587890625,-33.63994140624999],[115.68300781250005,-33.19287109375003],[115.6984375000001,-31.694531250000054],[115.07792968750007,-30.560449218750023],[114.85683593750005,-29.14296875],[114.16513671875012,-28.08066406250002],[114.028125,-27.34726562499999],[113.18476562500004,-26.182226562499963],[113.32324218749997,-26.243847656249997],[113.35605468750012,-26.080468750000023],[113.58164062500006,-26.558105468749986],[113.73369140625002,-26.59511718749998],[113.83642578125003,-26.50058593749999],[113.85283203125007,-26.33212890625005],[113.39531250000002,-25.71328125],[113.4513671875001,-25.599121093750014],[113.7130859375001,-25.83076171875004],[113.72373046875006,-26.129785156250037],[113.85390625,-26.01445312499999],[113.99199218750007,-26.32148437500001],[114.09033203124997,-26.393652343749963],[114.21572265625,-26.289453124999966],[114.2142578125,-25.851562500000014],[113.41767578125004,-24.435644531250034],[113.48984375000012,-23.869628906250014],[113.7570312500001,-23.418164062500054],[113.79511718750004,-22.91455078125003],[113.68281250000004,-22.637792968749963],[114.02285156250005,-21.881445312499977],[114.12392578125005,-21.828613281249957],[114.14160156250003,-22.483105468749983],[114.37773437500007,-22.341503906249997],[114.70927734375002,-21.82343749999997],[115.45615234375012,-21.49169921874997],[116.0109375000001,-21.030371093749963],[116.7067382812501,-20.653808593749986],[117.40625,-20.72119140625003],[118.19921875000003,-20.37519531249997],[118.75146484374997,-20.261914062499983],[119.10449218749997,-19.995312500000026],[119.58593750000003,-20.03828125],[120.99794921875,-19.604394531249966],[121.33769531250002,-19.31992187500002],[121.83378906250002,-18.477050781249986],[122.34541015625004,-18.11191406250002],[122.14746093749997,-17.54902343750001],[122.2609375000001,-17.135742187500014],[122.72041015625004,-16.78769531249999],[122.97070312499997,-16.436816406250003],[123.56308593750006,-17.520898437499966],[123.59355468750007,-17.03037109375005],[123.83105468750003,-17.120800781249997],[123.8744140625,-16.918652343750026],[123.4904296875001,-16.49072265624997],[123.62597656249997,-16.416308593750003],[123.60703125000006,-16.224023437499994],[123.72890625,-16.192480468749963],[123.85917968750007,-16.38232421875],[124.04443359374997,-16.264941406249974],[124.30039062500006,-16.388281249999977],[124.77197265624997,-16.40263671874996],[124.40488281250006,-16.298925781249977],[124.41640625,-16.133496093750026],[124.5768554687501,-16.11367187499998],[124.64853515625012,-15.870214843750034],[124.50429687500005,-15.972460937499989],[124.38164062500002,-15.758203125000037],[124.43955078125012,-15.493554687500037],[124.56162109375012,-15.496289062499969],[124.69257812500004,-15.273632812499997],[125.06298828125003,-15.44228515624998],[125.0729492187501,-15.306738281249991],[124.90917968750003,-15.310058593749957],[124.83906250000004,-15.160742187500006],[125.03818359375012,-15.004101562499969],[125.35566406250004,-15.119824218750011],[125.17871093749997,-14.714746093749994],[125.57978515625004,-14.483203124999989],[125.62773437500002,-14.256640625000017],[125.70458984374997,-14.29140625],[125.66162109375003,-14.529492187500011],[125.81953125000004,-14.469140624999966],[125.890625,-14.61796875],[126.0207031250001,-14.49453125],[126.0539062500001,-13.977246093750026],[126.1842773437501,-14.00205078125002],[126.25849609375004,-14.163574218749972],[126.403125,-14.018945312499994],[126.5697265625,-14.160937499999974],[126.7806640625,-13.955175781249977],[126.77558593750004,-13.788476562500037],[126.90322265625,-13.744140624999972],[127.45761718750006,-14.031445312499969],[128.18046875000007,-14.711621093749983],[128.06943359375012,-15.329296874999969],[128.15546875000004,-15.225585937499972],[128.25468750000002,-15.298535156250011],[128.175,-15.043164062500026],[128.57578125000006,-14.774511718750006],[129.05820312500012,-14.884375],[129.21582031249997,-15.160253906249991],[129.26757812500003,-14.871484375000051],[129.63476562499997,-15.139746093749991],[129.637109375,-14.850976562500037],[129.84873046875012,-14.828906249999989],[129.60468750000004,-14.647070312499977],[129.69794921875004,-14.557421875000017],[129.37871093750002,-14.39248046874998],[129.70986328125,-13.979980468749972],[129.83886718749997,-13.572949218749997],[130.25976562500003,-13.30224609375],[130.1349609375001,-13.145507812499957],[130.1681640625001,-12.957421875],[130.39990234374997,-12.68789062499999],[130.61748046875007,-12.646875],[130.62265625000006,-12.43105468749998],[130.8673828125001,-12.557812499999955],[130.87382812500007,-12.367187500000028],[131.29160156250006,-12.067871093749972],[131.43828125000002,-12.27695312500002],[132.06406250000006,-12.28076171875],[132.25322265625007,-12.186035156249972],[132.41103515625,-12.295117187499997],[132.51054687500002,-12.134863281250034],[132.71279296875,-12.1234375],[132.63046875000012,-12.035156249999972],[132.67421875000005,-11.649023437499991],[132.47519531250006,-11.491503906249974],[132.07285156250006,-11.474707031250006],[131.82246093750004,-11.302441406249997],[131.96152343750006,-11.180859375000011],[132.15546875000004,-11.311132812499991],[132.33398437499997,-11.223535156249994],[132.6828125000001,-11.505566406249997],[132.96103515625012,-11.407324218749963],[133.18525390625004,-11.705664062499991],[133.90419921875,-11.832031249999972],[134.4173828125,-12.052734375],[134.73027343750002,-11.984375],[135.02968750000005,-12.19375],[135.2179687500001,-12.221679687499957],[135.92246093750012,-11.825781250000034],[135.70439453125007,-12.209863281250037],[136.00849609375004,-12.19140625],[136.08183593750007,-12.422460937500006],[136.26064453125,-12.433789062499997],[136.32851562500005,-12.305566406249994],[136.24990234375,-12.173046875],[136.44335937499997,-11.951464843749974],[136.7194335937501,-12.226464843749952],[136.89746093749997,-12.243554687499966],[136.94746093750004,-12.34990234374996],[136.53701171875,-12.784277343749991],[136.59433593750012,-13.003808593750051],[136.46103515625006,-13.225195312500034],[136.29414062500004,-13.137988281250031],[135.92734375000012,-13.304296874999977],[135.95449218750005,-13.934863281250017],[135.40517578125005,-14.758203124999966],[135.4533203125001,-14.923144531250003],[136.20537109375002,-15.403417968749963],[136.29140625000005,-15.570117187500003],[136.70488281250007,-15.685253906250011],[136.78466796874997,-15.89423828125004],[137.00214843750004,-15.878320312499994],[137.70371093750006,-16.233007812499963],[138.24501953125005,-16.718359374999977],[139.00986328125006,-16.899316406249994],[139.2484375,-17.328613281249957],[140.03583984375004,-17.702636718749957],[140.51113281250005,-17.62451171875003],[140.83046875,-17.414453125000037],[141.29140625,-16.46347656250002],[141.62548828124997,-15.056640625000014],[141.52294921875003,-14.470117187499994],[141.59433593750006,-14.152832031250014],[141.47255859375,-13.797558593750011],[141.64541015625,-13.259082031250003],[141.61357421875002,-12.943457031250006],[141.92978515625006,-12.73984375],[141.67773437500003,-12.491406250000011],[141.68857421875012,-12.351074218750028],[141.87050781250005,-11.9755859375],[141.96113281250004,-12.054296874999963],[142.168359375,-10.946582031249974],[142.45644531250005,-10.707324218749989],[142.60507812500012,-10.748242187499983],[142.55273437500003,-10.874414062500023],[142.7796875,-11.115332031249977],[142.87255859374997,-11.821386718750034],[143.17890625000004,-11.954492187499966]]],[[[142.2748046875,-10.704785156250011],[142.19140624999997,-10.762011718750031],[142.1310546875001,-10.640625],[142.19794921875004,-10.59199218750004],[142.2748046875,-10.704785156250011]]]]},"properties":{"name":"Australia","childNum":30}},{"geometry":{"type":"Polygon","coordinates":[[[16.953125,48.598828125],[16.86542968750001,48.3869140625],[17.147363281250023,48.00595703125],[17.06660156250001,47.707568359374996],[16.421289062500023,47.674462890624994],[16.676562500000017,47.536035156249994],[16.44287109375,47.39951171875],[16.453417968750017,47.006787109375],[16.093066406250017,46.86328125],[15.957617187500006,46.677636718749994],[14.893261718750011,46.605908203125],[14.5498046875,46.399707031249996],[13.7,46.520263671875],[13.490039062500017,46.555566406249994],[13.3515625,46.557910156249996],[13.16875,46.57265625],[12.479199218750011,46.672509765624994],[12.38828125,46.70263671875],[12.330078125,46.759814453124996],[12.267968750000023,46.835888671875],[12.154101562500017,46.93525390625],[12.130761718750023,46.98476562499999],[12.16552734375,47.028173828125],[12.201269531250006,47.060888671875],[12.197167968750023,47.075],[12.16943359375,47.08212890625],[11.775683593750017,46.986083984375],[11.527539062500011,46.997412109375],[11.433203125,46.983056640624994],[11.244433593750017,46.97568359375],[11.133886718750006,46.936181640624994],[11.0634765625,46.859130859375],[11.025097656250011,46.79697265625],[10.993261718750006,46.777001953124994],[10.92734375,46.769482421875],[10.828906250000017,46.775244140625],[10.759765625,46.793310546875],[10.689257812500017,46.84638671875],[10.579785156250011,46.8537109375],[10.479394531250023,46.855126953124994],[10.452832031250011,46.86494140625],[10.45458984375,46.8994140625],[10.414941406250023,46.964404296874996],[10.349414062500017,46.98476562499999],[10.133496093750011,46.851513671875],[9.580273437500011,47.057373046875],[9.527539062500011,47.270751953125],[9.625878906250023,47.467041015625],[9.524023437500006,47.52421875],[9.748925781250023,47.575537109375],[9.839160156250017,47.552294921874996],[9.971582031250023,47.505322265625],[10.034082031250023,47.473583984375],[10.059863281250017,47.449072265625],[10.066308593750023,47.393359375],[10.200292968750006,47.363427734374994],[10.183007812500023,47.27880859375],[10.369140625,47.366064453125],[10.40390625,47.4169921875],[10.439453125,47.5515625],[10.482812500000023,47.541796875],[10.65869140625,47.547216796875],[10.741601562500023,47.52412109375],[10.873046875,47.52021484375],[11.0419921875,47.393115234374996],[12.185644531250006,47.61953125],[12.203808593750011,47.646728515625],[12.196875,47.70908203125],[12.209277343750017,47.71826171875],[12.268359375000017,47.702734375],[12.353540736607165,47.70264787946429],[12.492553013392856,47.68551897321428],[12.685839843750017,47.669335937499994],[12.771386718750023,47.639404296875],[12.796191406250017,47.60703125],[12.781152343750023,47.5904296875],[12.7828125,47.56416015625],[12.809375,47.5421875],[12.87890625,47.5064453125],[12.968066406250017,47.47568359375],[13.014355468750011,47.478076171874996],[13.031542968750017,47.5080078125],[13.047949218750006,47.579150390624996],[13.054101562500023,47.655126953125],[12.897656250000011,47.721875],[12.953515625000023,47.890625],[12.760351562500006,48.106982421874996],[13.215234375000023,48.301904296874994],[13.322851562500006,48.33125],[13.409375,48.394140625],[13.459863281250023,48.56455078125],[13.4716796875,48.571826171874996],[13.486621093750017,48.581835937499996],[13.636623883928596,48.580904017857144],[13.785351562500011,48.587451171874996],[13.798828125,48.6216796875],[13.802929687500011,48.747509765625],[13.814746093750017,48.766943359375],[14.049121093750017,48.602490234375],[14.691308593750023,48.59921875],[15.066796875000023,48.997851562499996],[16.057226562500006,48.754785156249994],[16.543554687500006,48.796240234375],[16.953125,48.598828125]]]},"properties":{"name":"Austria","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[46.1144531250001,38.877783203125034],[45.4796875000001,39.00625],[44.81718750000002,39.65043945312496],[44.76826171875004,39.70351562500005],[45.03164062500005,39.76513671874997],[45.15283203125003,39.58266601562502],[45.456835937500074,39.494482421875006],[45.78447265625002,39.54560546875001],[45.76630859375004,39.37846679687499],[45.977441406249994,39.24389648437503],[46.1144531250001,38.877783203125034]]],[[[48.572851562500006,41.84448242187503],[49.45673828125004,40.79985351562502],[49.77597656250006,40.583984375],[50.18251953125005,40.50478515625002],[50.3659179687501,40.279492187499955],[49.91884765625005,40.31640625000003],[49.55117187499999,40.19414062499999],[49.3244140625001,39.60834960937501],[49.36279296875003,39.349560546874955],[49.16533203125002,39.03027343750003],[49.013476562500074,39.13398437500001],[48.85449218750003,38.83881835937501],[48.86875,38.43549804687498],[48.59267578125005,38.41108398437498],[47.99648437499999,38.85375976562503],[48.292089843750006,39.01884765624999],[48.10439453125005,39.241113281249994],[48.322167968749994,39.39907226562502],[47.995898437500074,39.683935546875034],[46.490625,38.90668945312498],[46.400292968749994,39.1921875],[46.584765625000074,39.22368164062499],[46.36523437500003,39.402490234374994],[46.48144531249997,39.55517578125003],[46.202050781249994,39.59448242187503],[45.57978515625004,39.9775390625],[45.8859375000001,40.024853515624955],[45.96464843750002,40.233789062499966],[45.45439453125002,40.532373046874966],[45.37890624999997,40.67358398437506],[45.5875,40.846923828125],[45.07050781250004,41.075585937499966],[45.188574218750006,41.14741210937504],[45.001367187499994,41.29096679687498],[45.2171875,41.423193359375006],[45.28095703125004,41.449560546875034],[46.086523437500006,41.183837890625],[46.43095703125002,41.077050781249994],[46.534375,41.08857421875004],[46.62636718750005,41.15966796875006],[46.66240234375002,41.24550781250002],[46.67255859375004,41.28681640625001],[46.61894531250002,41.34375],[46.30546875000002,41.507714843749994],[46.18427734375004,41.70214843749997],[46.42988281250004,41.890966796875006],[46.74931640625002,41.812597656250006],[47.31767578125002,41.28242187500001],[47.79101562499997,41.19926757812502],[48.572851562500006,41.84448242187503]]]]},"properties":{"name":"Azerbaijan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[30.553613281250023,-2.400097656250011],[30.53369140625,-2.42626953125],[30.441992187500006,-2.613476562500011],[30.424218750000023,-2.6416015625],[30.47333984375001,-2.6943359375],[30.42402343750001,-2.824023437500003],[30.433496093750023,-2.87451171875],[30.515039062500023,-2.917578125],[30.604296875000017,-2.935253906250011],[30.70947265625,-2.977246093750011],[30.7802734375,-2.98486328125],[30.811132812500006,-3.116406250000011],[30.79023437500001,-3.274609375000011],[30.4,-3.65390625],[29.947265625,-4.307324218750011],[29.7177734375,-4.455859375],[29.403222656250023,-4.449316406250006],[29.211816406250023,-3.833789062500003],[29.224414062500017,-3.053515625],[29.01435546875001,-2.72021484375],[29.10205078125,-2.595703125],[29.390234375,-2.80859375],[29.698046875000017,-2.794726562500003],[29.8681640625,-2.71640625],[29.93017578125,-2.339550781250011],[30.117285156250006,-2.416601562500006],[30.408496093750017,-2.31298828125],[30.553613281250023,-2.400097656250011]]]},"properties":{"name":"Burundi","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[5.693554687500011,50.774755859375006],[5.993945312500017,50.75043945312504],[6.340917968750006,50.451757812500034],[6.116503906250045,50.120996093749966],[6.08906250000004,50.15458984374996],[6.054785156249977,50.154296875],[5.976269531250068,50.167187499999955],[5.866894531250068,50.08281250000002],[5.817382812500028,50.01269531250003],[5.7880859375,49.96123046875002],[5.744042968749994,49.91962890624998],[5.789746093749983,49.53828125000001],[5.50732421875,49.51088867187502],[4.867578125000051,49.78813476562502],[4.818652343750045,50.153173828125034],[4.545019531250063,49.96025390624999],[4.149316406250023,49.971582031249994],[4.174609375000017,50.24648437500005],[3.689355468750023,50.30605468750002],[3.595410156250068,50.47734374999999],[3.27333984375008,50.53154296875002],[3.10683593750008,50.779443359374994],[2.759375,50.750634765624994],[2.52490234375,51.097119140624955],[3.35009765625,51.37768554687503],[3.43251953125008,51.24575195312505],[3.902050781250011,51.20766601562502],[4.226171875000034,51.38647460937503],[5.03095703125004,51.46909179687498],[5.214160156250045,51.278955078124966],[5.796484375000034,51.153076171875],[5.693554687500011,50.774755859375006]]]},"properties":{"name":"Belgium","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[3.595410156250011,11.6962890625],[3.553906250000011,11.631884765624989],[3.490527343750017,11.49921875],[3.48779296875,11.395410156249994],[3.638867187500011,11.176855468749991],[3.65625,11.154589843749989],[3.6953125,11.1203125],[3.71640625,11.07958984375],[3.7568359375,10.76875],[3.83447265625,10.607421875],[3.771777343750017,10.417626953124994],[3.646582031250006,10.408984374999989],[3.60205078125,10.004541015624994],[3.3251953125,9.778466796874994],[3.044921875,9.083837890624991],[2.774804687500023,9.048535156249997],[2.703125,8.371826171875],[2.68603515625,7.873730468749997],[2.719335937500006,7.616259765624989],[2.7509765625,7.541894531249994],[2.78515625,7.476855468749989],[2.783984375000017,7.443408203124989],[2.765820312500011,7.422509765624994],[2.75048828125,7.395068359374989],[2.756738281250023,7.067919921874989],[2.721386718750011,6.980273437499989],[2.731738281250017,6.852832031249989],[2.7529296875,6.771630859374994],[2.774609375000011,6.711718749999989],[2.753710937500017,6.661767578124994],[2.735644531250017,6.595703125],[2.706445312500023,6.369238281249991],[1.62265625,6.216796875],[1.777929687500006,6.294628906249997],[1.530957031250011,6.992431640625],[1.624707031250011,6.997314453125],[1.600195312500006,9.050048828125],[1.3857421875,9.361669921874991],[1.330078125,9.996972656249994],[0.763378906250011,10.386669921874997],[0.900488281250006,10.993261718749991],[1.4267578125,11.447119140624991],[1.980371093750023,11.418408203124997],[2.38916015625,11.897070312499991],[2.366015625000017,12.221923828125],[2.805273437500006,12.383837890624989],[3.595410156250011,11.6962890625]]]},"properties":{"name":"Benin","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[0.217480468750011,14.911474609374991],[0.163867187500017,14.497216796874994],[0.382519531250011,14.245800781249997],[0.42919921875,13.972119140624997],[0.6181640625,13.703417968750003],[1.201171875,13.357519531249991],[0.988476562500011,13.36484375],[0.9873046875,13.041894531249994],[1.56494140625,12.635400390624994],[2.104589843750006,12.701269531249991],[2.226269531250011,12.466064453125],[2.072949218750011,12.309375],[2.38916015625,11.897070312499991],[1.980371093750023,11.418408203124997],[1.4267578125,11.447119140624991],[0.900488281250006,10.993261718749991],[0.49267578125,10.954980468749994],[-0.068603515625,11.115625],[-0.299462890624994,11.166894531249994],[-0.627148437499983,10.927392578124994],[-1.04248046875,11.010058593749989],[-2.829931640624977,10.998388671874991],[-2.914892578124977,10.592333984374989],[-2.791162109374994,10.432421874999989],[-2.780517578125,9.745849609375],[-2.765966796874977,9.658056640624991],[-2.706201171874994,9.533935546875],[-2.695849609374989,9.481347656249994],[-2.7171875,9.457128906249991],[-2.7666015625,9.424707031249994],[-2.816748046874977,9.425830078124989],[-2.875146484374994,9.500927734374997],[-2.90087890625,9.534619140624997],[-2.948144531249994,9.610742187499994],[-2.98828125,9.687353515624991],[-3.042626953124994,9.720898437499997],[-3.095800781249977,9.752099609374994],[-3.160693359374989,9.849169921874989],[-3.223535156249994,9.895458984374997],[-3.289697265624994,9.882226562499994],[-3.581152343749977,9.92431640625],[-3.790625,9.9171875],[-4.18115234375,9.78173828125],[-4.267187499999977,9.743261718749991],[-4.332226562499983,9.645703125],[-4.406201171874983,9.647998046874989],[-4.526611328125,9.723486328124991],[-4.625830078124977,9.713574218749997],[-4.721777343749977,9.756542968749997],[-5.262304687499977,10.319677734374991],[-5.523535156249977,10.426025390625],[-5.490478515625,11.042382812499994],[-5.250244140625,11.375781249999989],[-5.288134765624989,11.827929687499989],[-4.699316406249977,12.076171875],[-4.4287109375,12.337597656249997],[-4.480615234374994,12.672216796874991],[-4.227099609374989,12.793701171875],[-4.328710937499977,13.119042968749994],[-4.151025390624994,13.306201171875003],[-3.947314453124989,13.402197265624991],[-3.527636718749989,13.182714843749991],[-3.3017578125,13.28076171875],[-3.248632812499977,13.658349609374994],[-2.950830078124994,13.6484375],[-2.873925781249994,13.950732421875003],[-2.586718749999989,14.227587890625003],[-2.113232421874983,14.16845703125],[-1.97304687499999,14.45654296875],[-1.049560546875,14.81953125],[-0.760449218749983,15.047753906249994],[-0.235888671874989,15.059423828124991],[0.217480468750011,14.911474609374991]]]},"properties":{"name":"Burkina Faso","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[91.94921875000003,21.50805664062503],[91.85947265625012,21.532958984375057],[91.90771484374997,21.722949218750017],[91.94921875000003,21.50805664062503]]],[[[91.87382812500002,21.832128906249977],[91.8375976562501,21.750244140625],[91.85068359375012,21.927050781250045],[91.87382812500002,21.832128906249977]]],[[[91.15078125000005,22.175195312499966],[91.04472656250002,22.10517578125001],[91.0794921875,22.519726562499983],[91.15078125000005,22.175195312499966]]],[[[91.55673828125006,22.38222656250005],[91.41132812500004,22.475683593750006],[91.45605468749997,22.61650390624999],[91.55673828125006,22.38222656250005]]],[[[90.77763671875007,22.089306640624983],[90.51503906250005,22.06513671875001],[90.68046875000007,22.327490234375006],[90.50292968749997,22.835351562499994],[90.59648437500002,22.863525390625057],[90.86816406250003,22.48486328125],[90.77763671875007,22.089306640624983]]],[[[88.94072265625002,26.24536132812497],[88.97041015625004,26.250878906250023],[88.95195312500002,26.412109375],[89.01865234375012,26.410253906249977],[89.28925781250004,26.03759765625],[89.54990234375006,26.005273437499994],[89.57275390625003,26.13232421875003],[89.67089843750003,26.21381835937504],[89.8229492187501,25.94140625000003],[89.82490234375004,25.56015625],[89.80087890625012,25.33613281250001],[89.81406250000006,25.305371093749955],[89.86630859375012,25.293164062499955],[90.11962890625003,25.21997070312497],[90.61308593750002,25.16772460937497],[92.04970703125005,25.16948242187499],[92.46835937500006,24.94414062499999],[92.38496093750004,24.848779296875023],[92.25126953125007,24.895068359375045],[92.22832031250002,24.88134765625],[92.22666015625012,24.77099609374997],[92.11748046875002,24.493945312500017],[92.06416015625004,24.374365234375006],[91.84619140624997,24.17529296875003],[91.72656250000003,24.20507812499997],[91.35019531250012,24.06049804687501],[91.16044921875007,23.66064453125],[91.359375,23.06835937500003],[91.43623046875004,23.19990234375001],[91.55351562500002,22.991552734375006],[91.61953125,22.97968750000001],[91.75097656250003,23.053515625000017],[91.75419921875007,23.287304687499955],[91.79003906249997,23.361035156249983],[91.937890625,23.504687500000017],[91.92949218750007,23.598242187499977],[91.92958984375,23.68598632812501],[91.97851562500003,23.691992187499977],[92.04404296875006,23.677783203125017],[92.24609375000003,23.683593750000057],[92.33378906250002,23.242382812499955],[92.36162109375002,22.929003906250074],[92.46445312500006,22.734423828125045],[92.49140625000004,22.685400390625006],[92.5612304687501,22.04804687500001],[92.57490234375004,21.978076171875045],[92.58281250000002,21.940332031249994],[92.5934570312501,21.46733398437499],[92.63164062500002,21.306201171875045],[92.33056640624997,21.439794921874977],[92.17958984375005,21.293115234375023],[92.32412109375,20.791845703125063],[92.0560546875,21.1748046875],[91.86337890625012,22.350488281249966],[91.7970703125001,22.297460937500006],[91.48007812500006,22.884814453125045],[91.2162109375,22.642236328124994],[90.94560546875002,22.597021484375034],[90.65625,23.025488281250006],[90.60400390624997,23.59135742187499],[90.55566406249997,23.42153320312505],[90.26914062500012,23.455859375000017],[90.59091796875012,23.266406250000045],[90.43505859374997,22.751904296874955],[90.61611328125,22.362158203125034],[90.23056640625006,21.82978515625004],[90.07119140625005,21.887255859375017],[90.20957031250006,22.156591796875006],[89.95419921875006,22.022851562500023],[89.91806640625012,22.11616210937501],[89.98515625000002,22.466406250000063],[89.81191406250005,21.983496093750006],[89.56855468750004,21.767431640625034],[89.48320312500007,22.275537109374994],[89.50058593750006,21.914355468750045],[89.35371093750004,21.72109375],[89.09394531250004,21.872753906249983],[89.05,22.274609374999983],[88.92070312500002,22.632031249999955],[88.89970703125002,22.843505859375057],[88.85058593749997,23.040527343750057],[88.928125,23.186621093750063],[88.72441406250002,23.254980468750034],[88.69765625,23.493017578125034],[88.63574218749997,23.55],[88.56738281249997,23.674414062500034],[88.69980468750006,24.002539062500006],[88.71376953125,24.069628906250017],[88.72656250000003,24.186230468749955],[88.7335937500001,24.23090820312501],[88.72353515625,24.27490234375],[88.64228515625004,24.325976562500017],[88.49853515625003,24.34663085937504],[88.3375,24.45385742187503],[88.225,24.460644531249983],[88.14550781250003,24.485791015624955],[88.07910156249997,24.549902343750063],[88.02343750000003,24.62783203125005],[88.03027343749997,24.66445312500005],[88.0451171875001,24.713037109374994],[88.1498046875,24.914648437500034],[88.1888671875,24.92060546875001],[88.27949218750004,24.881933593750034],[88.31337890625005,24.8818359375],[88.37294921875,24.961523437499977],[88.45625,25.18842773437504],[88.57382812500006,25.18789062499999],[88.92978515625012,25.222998046875063],[88.94414062500002,25.290771484375],[88.85478515625002,25.333544921875017],[88.76914062500006,25.490478515625],[88.50244140624997,25.537011718749994],[88.14746093749997,25.811425781250023],[88.1066406250001,25.841113281250045],[88.15078125000005,26.08715820312497],[88.33398437499997,26.257519531249955],[88.44042968749997,26.369482421875034],[88.38623046875003,26.471533203125034],[88.35146484375005,26.482568359374966],[88.36992187500002,26.564111328124994],[88.51826171875004,26.517773437499955],[88.68281250000004,26.291699218749983],[88.94072265625002,26.24536132812497]]]]},"properties":{"name":"Bangladesh","childNum":6}},{"geometry":{"type":"Polygon","coordinates":[[[28.585351562500023,43.742236328124996],[28.465429687500006,43.389306640624994],[28.133691406250023,43.39560546875],[27.92890625000001,43.1861328125],[27.88886718750001,42.74970703125],[27.484765625000023,42.468066406249996],[28.014453125000017,41.969042968749996],[27.47480468750001,41.946875],[27.294921875,42.079541015625],[27.24433593750001,42.09326171875],[27.01171875,42.058642578124996],[26.96875,42.02685546875],[26.884863281250006,41.991845703124994],[26.615332031250006,41.964892578124996],[26.549707031250023,41.896728515625],[26.51142578125001,41.8263671875],[26.3603515625,41.8015625],[26.327246093750006,41.772802734375],[26.31796875,41.744677734374996],[26.320898437500006,41.716552734375],[26.200585937500023,41.743798828124994],[26.107421875,41.72568359375],[26.085546875,41.704150390624996],[26.066015625,41.673242187499994],[26.1435546875,41.521533203124996],[26.155175781250023,41.434863281249996],[26.135351562500006,41.3857421875],[26.06640625,41.35068359375],[25.92333984375,41.311914062499994],[25.784960937500017,41.330419921875],[25.52705078125001,41.2998046875],[25.381933593750006,41.26435546875],[25.25117187500001,41.243554687499994],[24.773730468750017,41.356103515624994],[24.595996093750017,41.442724609375],[24.5693359375,41.4673828125],[24.51826171875001,41.552539062499996],[24.487890625,41.555224609374996],[24.056054687500023,41.527246093749994],[24.03291015625001,41.469091796875],[24.011328125,41.46005859375],[23.635156250000023,41.386767578124996],[23.53583984375001,41.386035156249996],[23.433398437500017,41.398730468749996],[23.3720703125,41.3896484375],[23.23984375,41.3849609375],[23.15595703125001,41.322070312499996],[22.916015625,41.336279296875],[23.00361328125001,41.73984375],[22.836816406250023,41.993603515625],[22.344042968750017,42.31396484375],[22.42207031250001,42.328857421875],[22.445703125000023,42.359130859375],[22.523535156250006,42.440966796874996],[22.53242187500001,42.481201171875],[22.524218750000017,42.50390625],[22.43623046875001,42.6291015625],[22.466796875,42.84248046875],[22.799902343750006,42.985742187499994],[22.976855468750017,43.18798828125],[22.85957031250001,43.25234375],[22.819726562500023,43.300732421875],[22.767578125,43.354150390624994],[22.554589843750023,43.454492187499994],[22.36962890625,43.781298828124996],[22.36542968750001,43.862109375],[22.399023437500006,43.96953125],[22.420800781250023,44.007421875],[22.452529688228115,44.0510441391688],[22.547921095934313,44.113823956634434],[22.688564844478098,44.254306249271906],[23.02851562500001,44.077978515625],[22.868261718750006,43.947900390624994],[22.919042968750006,43.83447265625],[25.4970703125,43.670800781249994],[26.2158203125,44.007275390625],[27.0869140625,44.167382812499994],[27.425390625,44.0205078125],[27.88427734375,43.987353515624996],[28.221972656250017,43.772851562499994],[28.585351562500023,43.742236328124996]]]},"properties":{"name":"Bulgaria","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[50.60722656250002,25.883105468750003],[50.57490234375001,25.806787109374994],[50.465917968750006,25.965527343749997],[50.46992187500001,26.228955078124997],[50.5859375,26.24072265625],[50.60722656250002,25.883105468750003]]]},"properties":{"name":"Bahrain","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-73.02685546874994,21.19238281250003],[-73.16455078125003,20.979150390625023],[-73.68115234375003,20.9755859375],[-73.68037109374995,21.103320312500017],[-73.52309570312497,21.190820312499966],[-73.23535156249997,21.15449218750004],[-73.05849609375,21.313378906249994],[-73.02685546874994,21.19238281250003]]],[[[-73.041015625,22.429052734375006],[-72.74726562500001,22.32739257812497],[-73.16191406250002,22.380712890625006],[-73.041015625,22.429052734375006]]],[[[-74.20673828124998,22.213769531250023],[-74.27690429687499,22.183691406250006],[-73.906396484375,22.527441406250063],[-73.95419921874995,22.71552734375001],[-73.84995117187503,22.731054687500063],[-73.83652343749998,22.538427734374977],[-74.20673828124998,22.213769531250023]]],[[[-74.05751953124997,22.723486328125034],[-74.27460937499995,22.71166992187503],[-74.30703125,22.83959960937497],[-74.05751953124997,22.723486328125034]]],[[[-74.84047851562494,22.894335937500017],[-75.22333984374995,23.165332031250074],[-75.13056640624998,23.267919921875006],[-75.31596679687502,23.668359374999966],[-74.84047851562494,22.894335937500017]]],[[[-75.66455078124997,23.45014648437501],[-76.03710937500003,23.60278320312503],[-76.01044921875001,23.671386718750057],[-75.66455078124997,23.45014648437501]]],[[[-74.42944335937497,24.068066406249955],[-74.55092773437502,23.96894531250001],[-74.52690429687502,24.105078125000034],[-74.42944335937497,24.068066406249955]]],[[[-77.65771484374994,24.249462890624955],[-77.75527343750002,24.163476562500023],[-77.61538085937494,24.216357421875045],[-77.5615234375,24.136816406250006],[-77.57373046875,23.739160156249994],[-77.77128906249999,23.752539062499977],[-77.99990234374994,24.219824218750063],[-77.65771484374994,24.249462890624955]]],[[[-75.30839843749999,24.2],[-75.50322265624996,24.139062500000023],[-75.40893554687503,24.265771484374994],[-75.72666015625,24.68935546875005],[-75.30839843749999,24.2]]],[[[-77.34755859375,25.013867187499983],[-77.56191406249997,25.030029296875],[-77.27558593750001,25.055761718750006],[-77.34755859375,25.013867187499983]]],[[[-77.74384765625001,24.70742187499999],[-77.74521484375,24.463476562500034],[-78.04492187499997,24.287451171875063],[-78.14580078125002,24.493457031250017],[-78.36650390624993,24.544189453125057],[-78.435302734375,24.627587890624994],[-78.24272460937493,24.65380859375],[-78.21137695312495,25.191259765624977],[-77.97529296874998,25.084814453125063],[-77.74384765625001,24.70742187499999]]],[[[-76.64882812499994,25.487402343750006],[-76.34379882812496,25.33203124999997],[-76.12661132812497,25.14052734375005],[-76.16953125,24.6494140625],[-76.319970703125,24.81767578124999],[-76.21376953124994,24.822460937499983],[-76.160400390625,25.119335937499983],[-76.36928710937502,25.312597656250006],[-76.62070312499998,25.43164062500003],[-76.78066406249997,25.426855468750006],[-76.71083984374997,25.564892578124983],[-76.64882812499994,25.487402343750006]]],[[[-78.49287109375001,26.729052734375017],[-77.92246093749998,26.69111328125001],[-78.74365234374994,26.50068359375004],[-78.98564453124996,26.689501953125045],[-78.79804687500001,26.58242187499999],[-78.59711914062493,26.797949218750006],[-78.49287109375001,26.729052734375017]]],[[[-77.22563476562496,25.904199218750023],[-77.40317382812498,26.02470703124996],[-77.24677734374998,26.156347656250034],[-77.238623046875,26.561132812500006],[-77.510595703125,26.845996093750045],[-77.94375,26.90356445312503],[-77.53388671874995,26.903417968750006],[-77.06635742187501,26.530175781249994],[-77.03828124999998,26.333447265624983],[-77.16728515624996,26.240332031250006],[-77.22563476562496,25.904199218750023]]]]},"properties":{"name":"Bahamas","childNum":14}},{"geometry":{"type":"Polygon","coordinates":[[[19.007128906250045,44.86918945312502],[19.348632812500057,44.88090820312502],[19.118457031250074,44.359960937500006],[19.583789062500017,44.04345703125003],[19.245019531249994,43.96503906250004],[19.495117187500057,43.642871093750045],[19.19433593749997,43.533300781250006],[19.164355468750017,43.53544921874999],[19.11279296874997,43.52773437500002],[19.080078125000057,43.51772460937502],[19.0283203125,43.53251953125002],[18.97421875,43.54233398437498],[18.95068359375,43.52666015624999],[19.036718750000034,43.35732421875002],[19.026660156250017,43.292431640624955],[18.97871093750001,43.28540039062503],[18.934667968750006,43.339453125000034],[18.85107421875003,43.34633789062502],[18.749218750000068,43.283544921875006],[18.67421875000008,43.230810546875006],[18.623632812500063,43.027685546875034],[18.488476562500068,43.01215820312498],[18.44384765625003,42.96845703125004],[18.46601562500001,42.777246093749994],[18.54589843750003,42.64160156249997],[18.436328125000017,42.559716796874994],[17.667578125000063,42.897119140624994],[17.585156250000068,42.93837890625005],[17.650488281250063,43.006591796875],[17.27382812500005,43.44575195312501],[16.300097656250017,44.12451171875],[16.10341796875008,44.52099609375006],[15.736621093750045,44.76582031250001],[15.788085937500057,45.17895507812497],[16.028320312500057,45.18959960937502],[16.29335937500005,45.00883789062496],[16.53066406250008,45.21669921875002],[16.918652343749983,45.27656249999998],[17.812792968750074,45.078125],[18.66259765625,45.07744140624999],[18.83642578125,44.883251953124955],[19.007128906250045,44.86918945312502]]]},"properties":{"name":"Bosnia and Herz.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[28.14794921875,56.142919921875],[28.284277343750006,56.055908203125],[29.375,55.938720703125],[29.353417968750023,55.784375],[29.412988281250023,55.724853515625],[29.482226562500017,55.6845703125],[29.63007812500001,55.751171875],[29.6845703125,55.7697265625],[29.744140625,55.77041015625],[29.82392578125001,55.7951171875],[29.881640625000017,55.832324218749996],[29.93701171875,55.845263671874996],[30.04267578125001,55.83642578125],[30.23359375000001,55.84521484375],[30.625585937500006,55.666259765625],[30.906835937500006,55.57001953125],[30.90058593750001,55.397412109375],[30.82099609375001,55.3302734375],[30.810546875,55.306982421875],[30.814453125,55.2787109375],[30.87744140625,55.2234375],[30.958886718750023,55.13759765625],[30.97773437500001,55.08779296875],[30.97773437500001,55.05048828125],[30.829882812500017,54.914990234375],[30.804492187500017,54.8609375],[30.791015625,54.806005859375],[30.798828125,54.783251953124996],[30.984179687500017,54.6958984375],[31.12128906250001,54.648486328124996],[31.152148437500017,54.625341796875],[31.074804687500006,54.491796875],[31.18476562500001,54.452978515625],[31.299121093750017,54.29169921875],[31.403613281250017,54.195947265625],[31.62841796875,54.111181640625],[31.7919921875,54.055908203125],[31.825976562500017,54.030712890625],[31.837792968750023,54.00078125],[31.825292968750006,53.935009765625],[31.783007812500017,53.85498046875],[31.754199218750017,53.81044921875],[31.82080078125,53.791943359375],[31.9921875,53.796875],[32.20039062500001,53.78125],[32.45097656250002,53.6533203125],[32.70429687500001,53.336328125],[32.64443359375002,53.32890625],[32.57802734375002,53.31240234375],[32.469335937500006,53.2703125],[32.14199218750002,53.091162109375],[31.849707031250006,53.106201171875],[31.668261718750017,53.200927734375],[31.417871093750023,53.196044921875],[31.38837890625001,53.184814453125],[31.364550781250017,53.138964843749996],[31.30292968750001,53.060888671875],[31.2587890625,53.01669921875],[31.29511718750001,52.989794921874996],[31.35302734375,52.933447265625],[31.442773437500023,52.86181640625],[31.53515625,52.7982421875],[31.564843750000023,52.759228515625],[31.585546875,52.532470703125],[31.57734375000001,52.312304687499996],[31.6015625,52.284814453125],[31.64990234375,52.26220703125],[31.690625,52.220654296875],[31.758593750000017,52.125830078125],[31.76337890625001,52.10107421875],[31.57373046875,52.10810546875],[31.345996093750017,52.10537109375],[31.21796875000001,52.050244140625],[30.98066406250001,52.046191406249996],[30.845703125,51.953076171875],[30.755273437500023,51.895166015625],[30.667285156250017,51.814111328125],[30.583886718750023,51.68896484375],[30.533007812500017,51.596337890624994],[30.56074218750001,51.531494140625],[30.602343750000017,51.471240234374996],[30.611718750000023,51.40634765625],[30.63251953125001,51.355419921875],[30.449511718750017,51.274316406249994],[30.160742187500006,51.477880859375],[29.346484375000017,51.382568359375],[29.10205078125,51.6275390625],[29.06074218750001,51.625439453125],[29.013085937500023,51.598925781249996],[28.97773437500001,51.57177734375],[28.927539062500017,51.562158203124994],[28.849511718750023,51.540185546874994],[28.73125,51.433398437499996],[28.690234375000017,51.438867187499994],[28.647753906250017,51.45654296875],[28.599023437500023,51.542626953124994],[28.532031250000017,51.562451171875],[27.85859375000001,51.5923828125],[27.7,51.477978515625],[27.689746093750017,51.572412109374994],[27.296289062500023,51.597412109375],[27.270117187500006,51.613574218749996],[27.141992187500023,51.75205078125],[27.074121093750023,51.76083984375],[26.95283203125001,51.75400390625],[26.7734375,51.770703125],[25.785742187500006,51.923828125],[24.361914062500006,51.867529296875],[24.280078125000017,51.774707031249996],[24.126855468750023,51.6646484375],[23.978320312500017,51.59130859375],[23.951171875,51.58505859375],[23.8642578125,51.623974609375],[23.79169921875001,51.637109375],[23.706835937500017,51.64130859375],[23.61376953125,51.525390625],[23.605273437500017,51.517919921875],[23.652441406250006,52.040380859375],[23.175097656250017,52.28662109375],[23.915429687500023,52.770263671875],[23.484667968750017,53.939794921875],[23.55908203125,53.91982421875],[23.733691406250017,53.912255859375],[24.191308593750023,53.950439453125],[24.236621093750017,53.919970703124996],[24.31796875,53.89296875],[24.620703125,53.979833984375],[24.768164062500006,53.974658203124996],[24.78925781250001,53.9982421875],[24.82568359375,54.118994140625],[24.869531250000023,54.145166015625],[25.04609375000001,54.133056640625],[25.111425781250006,54.154931640625],[25.179492187500017,54.2142578125],[25.46113281250001,54.292773437499996],[25.505664062500017,54.264941406249996],[25.52734375,54.215136718749996],[25.497363281250017,54.175244140625],[25.573046875000017,54.139892578125],[25.765234375,54.17978515625],[25.702539062500023,54.29296875],[25.61689453125001,54.310107421874996],[25.557519531250023,54.310693359375],[25.54736328125,54.331835937499996],[25.56757812500001,54.37705078125],[25.62031250000001,54.460400390625],[25.68515625,54.535791015625],[25.72480468750001,54.564257812499996],[25.73164062500001,54.590380859374996],[25.722460937500017,54.71787109375],[25.859277343750023,54.919287109375],[25.964453125,54.94716796875],[26.09296875000001,54.9623046875],[26.175195312500023,55.003271484375],[26.250781250000017,55.12451171875],[26.291796875000017,55.139599609375],[26.601171875,55.130175781249996],[26.6484375,55.20419921875],[26.775683593750017,55.273095703125],[26.760156250000023,55.293359375],[26.68125,55.306445312499996],[26.49531250000001,55.318017578125],[26.457617187500006,55.34248046875],[26.469531250000017,55.371923828125],[26.51923828125001,55.44814453125],[26.56660156250001,55.546484375],[26.5908203125,55.62265625],[26.593554687500017,55.667529296874996],[27.052539062500017,55.83056640625],[27.576757812500006,55.798779296875],[28.14794921875,56.142919921875]]]},"properties":{"name":"Belarus","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-87.8529296875,17.4228515625],[-87.92998046874996,17.283007812500017],[-87.826416015625,17.546289062499994],[-87.8529296875,17.4228515625]]],[[[-88.89404296875,15.890625],[-89.2328125,15.888671875],[-89.16147460937503,17.81484375],[-89.13354492187503,17.970800781249977],[-88.80634765624998,17.965527343749983],[-88.52299804687499,18.445898437500063],[-88.29565429687494,18.47241210937503],[-88.34926757812494,18.358837890624983],[-88.1302734375,18.350732421875023],[-88.08525390624999,18.226123046875045],[-88.27172851562494,17.60986328125],[-88.203466796875,17.5166015625],[-88.31342773437501,16.632763671874983],[-88.89404296875,15.890625]]]]},"properties":{"name":"Belize","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-64.73027343749999,32.29345703125],[-64.86284179687499,32.273876953125],[-64.66831054687499,32.38193359375],[-64.73027343749999,32.29345703125]]]},"properties":{"name":"Bermuda","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-58.15976562499999,-20.164648437500006],[-58.18017578125,-19.81787109375],[-59.09052734375,-19.286230468750006],[-60.00737304687499,-19.29755859375001],[-61.7568359375,-19.6453125],[-62.276318359375,-20.5625],[-62.27666015624999,-21.066015625],[-62.65097656249999,-22.233691406250003],[-62.84335937499999,-21.99726562500001],[-63.92167968749999,-22.028613281250003],[-63.97612304687499,-22.072558593750003],[-64.26640624999999,-22.603320312500003],[-64.30791015624999,-22.7953125],[-64.32529296874999,-22.82763671875],[-64.373974609375,-22.761035156250003],[-64.4455078125,-22.58535156250001],[-64.477734375,-22.4853515625],[-64.5236328125,-22.37158203125],[-64.60551757812499,-22.228808593750003],[-64.992626953125,-22.109667968750003],[-65.518798828125,-22.09453125],[-65.686181640625,-22.11025390625001],[-65.77104492187499,-22.099609375],[-65.86015624999999,-22.01972656250001],[-66.05859375,-21.879492187500006],[-66.098583984375,-21.835058593750006],[-66.17465820312499,-21.8056640625],[-66.220166015625,-21.802539062500003],[-66.24760742187499,-21.83046875],[-66.28212890625,-21.94746093750001],[-66.3224609375,-22.053125],[-66.365185546875,-22.11376953125],[-66.71171874999999,-22.21630859375],[-66.99111328125,-22.509863281250006],[-67.19487304687499,-22.82167968750001],[-67.362255859375,-22.85517578125001],[-67.57993164062499,-22.891699218750006],[-67.79443359375,-22.879492187500006],[-67.87944335937499,-22.82294921875001],[-67.88173828125,-22.49335937500001],[-68.18642578125,-21.61855468750001],[-68.197021484375,-21.30029296875],[-68.558251953125,-20.901953125],[-68.484326171875,-20.62841796875],[-68.74516601562499,-20.45859375],[-68.75932617187499,-20.115527343750003],[-68.560693359375,-19.967089843750003],[-68.559375,-19.90234375],[-68.578271484375,-19.856542968750006],[-68.69619140625,-19.74072265625],[-68.69829101562499,-19.72109375],[-68.57529296874999,-19.56015625],[-68.462890625,-19.43281250000001],[-68.470166015625,-19.409960937500003],[-68.49199218749999,-19.381933593750006],[-68.85795898437499,-19.093359375],[-68.96831054687499,-18.96796875000001],[-68.97885742187499,-18.81298828125],[-69.026806640625,-18.65625],[-69.09228515625,-18.28242187500001],[-69.145458984375,-18.14404296875],[-69.0939453125,-18.05048828125001],[-69.28232421874999,-17.96484375],[-69.31337890625,-17.943164062500003],[-69.5109375,-17.50605468750001],[-69.51108398437499,-17.5048828125],[-69.510986328125,-17.46035156250001],[-69.521923828125,-17.388964843750003],[-69.645703125,-17.24853515625],[-69.62485351562499,-17.2001953125],[-69.020703125,-16.6421875],[-69.03291015625,-16.47597656250001],[-68.8427734375,-16.337890625],[-69.21757812499999,-16.14912109375001],[-69.4208984375,-15.640625],[-69.17246093749999,-15.236621093750003],[-69.37470703125,-14.962988281250006],[-69.35947265624999,-14.7953125],[-68.87089843749999,-14.169726562500003],[-69.07412109375,-13.682812500000011],[-68.97861328124999,-12.880078125000011],[-68.68525390625,-12.501953125],[-69.57861328125,-10.951757812500006],[-69.228515625,-10.955664062500006],[-68.84833984375,-11.011132812500009],[-68.678369140625,-11.11279296875],[-68.39799804687499,-11.01875],[-68.0716796875,-10.703125],[-67.99169921875,-10.674414062500006],[-67.83500976562499,-10.662792968750011],[-67.72177734374999,-10.68310546875],[-67.416943359375,-10.389843750000011],[-66.575341796875,-9.89990234375],[-65.396142578125,-9.71240234375],[-65.298583984375,-10.146777343750003],[-65.31308593749999,-10.253027343750006],[-65.395458984375,-10.392285156250011],[-65.4369140625,-10.449023437500003],[-65.44711914062499,-10.507421875],[-65.33403320312499,-10.892773437500011],[-65.32377929687499,-11.024804687500009],[-65.389892578125,-11.246289062500011],[-65.1857421875,-11.74951171875],[-64.783447265625,-12.059375],[-64.42050781249999,-12.439746093750003],[-63.68857421874999,-12.47802734375],[-63.3466796875,-12.680078125],[-63.06748046874999,-12.669140625000011],[-62.76547851562499,-12.997265625000011],[-62.11801757812499,-13.159765625],[-62.09477539062499,-13.241992187500003],[-61.944726562499994,-13.40625],[-61.87412109374999,-13.470410156250011],[-61.789941406249994,-13.525585937500011],[-61.57568359375,-13.524804687500009],[-61.51157226562499,-13.541210937500011],[-61.41606445312499,-13.526562500000011],[-61.129150390625,-13.49853515625],[-61.07700195312499,-13.48974609375],[-60.506591796875,-13.78984375],[-60.372705078124994,-14.41875],[-60.273339843749994,-15.088769531250009],[-60.402001953124994,-15.0927734375],[-60.583203125,-15.098339843750011],[-60.53046875,-15.143164062500006],[-60.38046875,-15.318261718750009],[-60.242333984374994,-15.479589843750006],[-60.20664062499999,-15.901953125],[-60.18720703125,-16.132128906250003],[-60.17558593749999,-16.269335937500003],[-58.53793945312499,-16.328222656250006],[-58.49658203125,-16.32666015625],[-58.42368164062499,-16.307910156250003],[-58.37539062499999,-16.28359375],[-58.345605468749994,-16.284375],[-58.35039062499999,-16.490820312500006],[-58.470605468749994,-16.650195312500003],[-58.478125,-16.70068359375],[-58.45981445312499,-16.910742187500006],[-58.417382812499994,-17.08056640625],[-58.39599609375,-17.23427734375001],[-58.34775390624999,-17.28212890625001],[-57.99091796875,-17.51289062500001],[-57.905029296875,-17.532324218750006],[-57.832470703125,-17.512109375],[-57.78886718749999,-17.573046875],[-57.780175781249994,-17.67177734375001],[-57.66166992187499,-17.947363281250006],[-57.58647460937499,-18.12226562500001],[-57.49565429687499,-18.214648437500003],[-57.57402343749999,-18.279296875],[-57.725,-18.733203125],[-57.783105468749994,-18.91425781250001],[-57.716796875,-19.044042968750006],[-58.131494140624994,-19.74453125],[-57.860742187499994,-19.979589843750006],[-57.887597656249994,-20.02041015625001],[-57.96015625,-20.04072265625001],[-58.021142578124994,-20.05517578125],[-58.09375,-20.15107421875001],[-58.15976562499999,-20.164648437500006]]]},"properties":{"name":"Bolivia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-48.48588867187493,-27.76699218749998],[-48.554589843749994,-27.81220703125004],[-48.542187499999955,-27.57480468749999],[-48.41489257812495,-27.399609375],[-48.48588867187493,-27.76699218749998]]],[[[-48.584423828124955,-26.401562499999983],[-48.665771484375,-26.289648437500006],[-48.53974609374998,-26.170312500000023],[-48.584423828124955,-26.401562499999983]]],[[[-45.26025390624997,-23.889160156249986],[-45.451416015625,-23.895605468749977],[-45.30234375,-23.727539062500014],[-45.26025390624997,-23.889160156249986]]],[[[-44.12929687499994,-23.14189453124999],[-44.36015624999999,-23.17207031250001],[-44.24287109374998,-23.074121093750037],[-44.12929687499994,-23.14189453124999]]],[[[-38.90356445312497,-13.473437499999974],[-38.97758789062496,-13.523535156249963],[-39.02216796874998,-13.445605468749989],[-38.907128906249994,-13.401074218749983],[-38.90356445312497,-13.473437499999974]]],[[[-38.743847656249955,-13.097070312500037],[-38.668115234374966,-12.880175781249989],[-38.601171875,-12.99257812499998],[-38.743847656249955,-13.097070312500037]]],[[[-44.49931640625002,-2.939648437499983],[-44.597753906250006,-3.037597656249943],[-44.4814453125,-2.717578125000031],[-44.49931640625002,-2.939648437499983]]],[[[-44.88310546874996,-1.317871093749986],[-45.020849609375034,-1.372363281249974],[-44.978662109374966,-1.267285156249983],[-44.88310546874996,-1.317871093749986]]],[[[-51.83251953124997,-1.433789062499969],[-51.938378906249966,-1.452636718749986],[-51.680029296875006,-1.086132812500026],[-51.546044921874966,-0.649609375],[-51.25400390624998,-0.54140625],[-51.16074218749998,-0.666699218750011],[-51.27631835937498,-1.02177734374996],[-51.83251953124997,-1.433789062499969]]],[[[-49.62866210937497,-0.229199218749969],[-49.11699218749999,-0.163574218750014],[-48.39267578124995,-0.29736328125],[-48.83359375,-1.390039062500023],[-49.038476562499994,-1.5140625],[-49.17270507812498,-1.41259765625],[-49.233984375000034,-1.59951171874998],[-49.50664062499999,-1.511621093750023],[-49.587890625,-1.712402343749972],[-49.805126953124955,-1.790234375000026],[-50.06572265625002,-1.703808593749997],[-50.50761718749999,-1.787988281250009],[-50.759765625,-1.240234374999972],[-50.72949218749997,-1.126757812499946],[-50.57695312499999,-1.103125],[-50.709619140624994,-1.07773437499999],[-50.796093749999955,-0.90625],[-50.6455078125,-0.27285156249998],[-50.24824218749998,-0.11640625],[-49.62866210937497,-0.229199218749969]]],[[[-50.65288085937499,-0.131640624999989],[-50.926367187500034,-0.327343749999983],[-51.03808593749994,-0.225878906250003],[-50.84218750000002,-0.050195312500009],[-50.65288085937499,-0.131640624999989]]],[[[-49.44389648437499,-0.112402343749977],[-49.83007812499997,-0.093896484375023],[-49.50346679687496,0.083691406250011],[-49.37231445312497,0.001074218749963],[-49.44389648437499,-0.112402343749977]]],[[[-49.73823242187498,0.26816406250002],[-49.917089843750006,-0.023193359375014],[-50.339453125,0.043359375000051],[-50.27265624999998,0.231738281249974],[-49.73823242187498,0.26816406250002]]],[[[-50.42612304687498,0.139257812500048],[-50.44394531249998,-0.007666015624949],[-50.623925781249966,0.054394531249983],[-50.372753906249955,0.590869140625031],[-50.33227539062497,0.259033203125028],[-50.42612304687498,0.139257812500048]]],[[[-50.152929687500006,0.393017578125054],[-50.26132812499998,0.359179687500003],[-50.281689453124955,0.51650390624998],[-50.05883789062503,0.638037109374963],[-50.152929687500006,0.393017578125054]]],[[[-50.29897460937502,1.93852539062496],[-50.45610351562496,1.910498046875034],[-50.49101562499996,2.128613281249969],[-50.34199218749998,2.14174804687498],[-50.29897460937502,1.93852539062496]]],[[[-59.69970703125,4.353515625],[-59.73857421874993,4.226757812500026],[-59.62021484374998,4.023144531250026],[-59.557763671874966,3.960009765625031],[-59.551123046875034,3.933544921874969],[-59.854394531249994,3.5875],[-59.99433593749998,2.689990234375031],[-59.88964843749997,2.362939453125009],[-59.75522460937495,2.27412109375004],[-59.74350585937498,2.12163085937496],[-59.75175781249996,1.962402343750028],[-59.75620117187498,1.900634765624972],[-59.666601562500006,1.746289062499969],[-59.53569335937499,1.7],[-59.23120117187494,1.376025390625031],[-58.82177734374994,1.201220703125031],[-58.787207031250006,1.208496093750014],[-58.73032226562498,1.247509765625054],[-58.68461914062499,1.28105468749996],[-58.511865234374966,1.284667968749986],[-58.506054687499926,1.438671875000011],[-58.39580078124993,1.481738281249989],[-58.38037109375,1.530224609375011],[-58.34067382812498,1.587548828125051],[-58.03466796875,1.520263671875014],[-57.9828125,1.648437500000014],[-57.87343750000002,1.667285156250045],[-57.79565429687497,1.7],[-57.59443359375001,1.704101562499986],[-57.54575195312495,1.726074218750028],[-57.31748046874998,1.963476562499991],[-57.27558593749998,1.959228515625014],[-57.189599609374966,1.981591796875037],[-57.11889648437494,2.013964843749974],[-57.09267578125002,2.005810546874997],[-57.03759765625,1.936474609374997],[-56.96953124999999,1.91640625],[-56.48281249999994,1.942138671874986],[-56.019921874999966,1.842236328124983],[-55.96333007812498,1.85708007812498],[-55.929638671874955,1.8875],[-55.92163085937503,1.976660156250006],[-55.91533203124999,2.039550781250028],[-55.96196289062496,2.09511718749998],[-56.02006835937499,2.15815429687504],[-56.073632812499994,2.236767578124969],[-56.13769531249997,2.259033203124986],[-56.12939453124997,2.299511718749969],[-56.08779296875002,2.341308593750043],[-56.045117187499955,2.364404296875037],[-56.02036132812498,2.392773437500054],[-55.993505859375006,2.497509765624983],[-55.9755859375,2.515966796875006],[-55.957470703124955,2.52045898437504],[-55.730566406250006,2.406152343750023],[-55.385351562500006,2.440625],[-55.34399414062503,2.488769531249972],[-55.28603515625002,2.49965820312498],[-55.18769531249998,2.547509765625037],[-55.114111328125006,2.539208984375037],[-55.07031249999994,2.548339843750028],[-55.005810546874955,2.592968749999983],[-54.97866210937502,2.597656250000043],[-54.968408203124966,2.548339843750028],[-54.92656249999999,2.497363281250045],[-54.876074218750006,2.450390624999969],[-54.72221679687499,2.441650390624972],[-54.69741210937502,2.359814453124997],[-54.66186523437497,2.327539062499994],[-54.61625976562499,2.326757812500006],[-54.59194335937502,2.313769531250031],[-54.55048828125001,2.293066406249991],[-54.51508789062498,2.245458984374963],[-54.43310546875,2.207519531250057],[-54.13007812499998,2.121044921875026],[-53.76777343749998,2.354833984375048],[-52.90346679687502,2.211523437499977],[-52.58300781250003,2.528906249999977],[-52.327880859375,3.18173828125002],[-51.65253906249998,4.061279296874972],[-51.54707031250001,4.31088867187502],[-51.219921874999955,4.093603515624991],[-50.71440429687502,2.134033203125],[-50.458886718749994,1.829589843749972],[-49.957128906250006,1.65986328125004],[-49.898876953124955,1.16298828124998],[-50.29443359374997,0.835742187500003],[-50.755078124999955,0.222558593749966],[-51.28291015625001,-0.085205078125028],[-51.98081054687498,-1.367968749999974],[-52.22924804687497,-1.3625],[-52.664160156250034,-1.551757812500028],[-51.94755859374996,-1.586718749999946],[-50.89492187500002,-0.937597656249963],[-50.690039062500006,-1.761718749999986],[-50.40322265625002,-2.015527343750009],[-49.999218749999955,-1.831835937499974],[-49.71953125000002,-1.926367187499963],[-49.31367187500001,-1.731738281250003],[-49.63652343749996,-2.656933593750026],[-49.45751953125,-2.504589843749983],[-49.21103515624998,-1.916503906249986],[-48.99130859374998,-1.829785156249997],[-48.71000976562496,-1.487695312500023],[-48.46293945312499,-1.613964843749997],[-48.349804687499926,-1.482128906249955],[-48.46806640624996,-1.393847656250003],[-48.44980468749998,-1.145507812499943],[-48.11508789062498,-0.7375],[-47.557324218749955,-0.669921874999957],[-47.418652343749955,-0.765917968749974],[-47.39809570312502,-0.626660156250026],[-45.45859374999995,-1.35625],[-45.32915039062496,-1.71728515625],[-45.07636718749998,-1.466406249999949],[-44.72114257812498,-1.733496093750006],[-44.778515624999955,-1.798828125],[-44.651269531249966,-1.745800781250026],[-44.537792968749955,-2.052734374999943],[-44.75634765624997,-2.265527343749952],[-44.66240234375002,-2.373242187499955],[-44.435449218749966,-2.168066406249991],[-44.38183593749997,-2.365527343749989],[-44.52011718749998,-2.40546875000004],[-44.589013671874994,-2.573437499999983],[-44.72304687500002,-3.204785156249997],[-44.43754882812496,-2.944433593749977],[-44.228613281250006,-2.471289062499949],[-44.105566406250006,-2.493457031250031],[-44.19267578124999,-2.809570312499943],[-43.93291015624999,-2.583496093749986],[-43.45512695312499,-2.502050781250006],[-43.38007812499998,-2.376074218750006],[-42.93671874999998,-2.465039062500011],[-42.24960937499998,-2.7919921875],[-41.876171874999926,-2.746582031249986],[-41.479931640624955,-2.916503906249972],[-40.474560546874926,-2.795605468750026],[-39.96469726562498,-2.861523437499955],[-38.475781249999955,-3.717480468749997],[-38.04882812500003,-4.216406250000034],[-37.626318359375006,-4.592089843750003],[-37.30146484375001,-4.713085937499969],[-37.174658203125006,-4.912402343749974],[-36.590722656249966,-5.097558593749952],[-35.549414062500006,-5.129394531249957],[-35.39257812499994,-5.250878906250009],[-34.833886718749994,-7.024414062500014],[-34.83466796874998,-7.97148437499996],[-35.34086914062499,-9.230664062499983],[-35.76396484374993,-9.702539062500023],[-35.890820312499926,-9.687011718749957],[-35.88544921875001,-9.84765625],[-36.39833984374994,-10.484082031249983],[-36.768310546875,-10.671679687500017],[-37.18281249999998,-11.06845703125002],[-37.35600585937502,-11.403906249999977],[-37.35922851562495,-11.252539062499963],[-37.68872070312503,-12.1],[-38.019238281249955,-12.591308593750028],[-38.401757812499994,-12.966210937500023],[-38.69096679687502,-12.623925781250009],[-38.85175781250001,-12.790136718750034],[-38.76372070312502,-12.9072265625],[-38.835302734375034,-13.147167968750026],[-39.030908203124994,-13.365136718750023],[-39.08935546875,-13.588183593749989],[-38.988623046875006,-13.61503906249996],[-39.04814453124996,-14.043945312500028],[-38.94233398437498,-14.030664062499994],[-39.05957031249997,-14.654785156249957],[-38.88061523437503,-15.864257812499972],[-39.20288085937503,-17.178125],[-39.154003906249926,-17.70390625000003],[-39.650781249999966,-18.252343750000037],[-39.78330078124998,-19.571777343749986],[-40.001367187499994,-19.74199218750003],[-40.39594726562501,-20.56943359375002],[-40.78925781250001,-20.90605468750003],[-40.954541015624926,-21.237890624999963],[-41.04726562499999,-21.505664062499974],[-41.00029296875002,-21.99902343750003],[-41.70551757812498,-22.30966796874999],[-41.980419921874955,-22.580664062499963],[-42.042382812499966,-22.947070312500003],[-42.95830078124996,-22.96708984374999],[-43.154296875,-22.725195312500006],[-43.22416992187502,-22.991210937500014],[-43.898828124999966,-23.10146484375001],[-43.97382812499998,-23.057324218749983],[-43.675976562499955,-23.00947265625001],[-43.86616210937498,-22.910546875000023],[-44.63725585937496,-23.05546875],[-44.67382812499994,-23.206640625000034],[-44.56967773437495,-23.27402343749999],[-45.32539062499998,-23.59970703124999],[-45.464306640624955,-23.802539062500017],[-45.97207031250002,-23.795507812500006],[-46.86728515624998,-24.236328125000014],[-47.989160156249994,-25.03574218749999],[-47.92939453124998,-25.16826171874999],[-48.20273437499998,-25.41650390625003],[-48.18593749999994,-25.309863281249974],[-48.402490234374994,-25.27207031249999],[-48.47612304687499,-25.44296875],[-48.73173828124993,-25.36875],[-48.6921875,-25.49150390625003],[-48.40117187500002,-25.59736328125001],[-48.665771484375,-25.844335937499963],[-48.576318359374994,-25.935449218749966],[-48.61943359374996,-26.17939453125001],[-48.74829101562503,-26.26865234374999],[-48.55415039062498,-27.195996093749997],[-48.62080078124998,-28.075585937499966],[-48.799658203125006,-28.575292968749977],[-49.27128906249999,-28.87119140625005],[-49.745996093749966,-29.363183593749994],[-50.299511718749955,-30.42578125000003],[-50.92138671874997,-31.25839843750002],[-52.039208984374994,-32.11484374999996],[-52.063232421875,-31.830371093750017],[-51.68066406249994,-31.774609375000026],[-51.272167968749955,-31.476953125000037],[-51.16142578124996,-31.11884765625001],[-50.980078125000034,-31.09423828124997],[-50.94082031249994,-30.903710937499966],[-50.68930664062495,-30.70419921874999],[-50.71630859374994,-30.425976562499983],[-50.58193359375002,-30.438867187500037],[-50.56352539062499,-30.25361328125004],[-51.02495117187493,-30.36865234375003],[-51.29804687499998,-30.03486328124997],[-51.15727539062499,-30.364257812500014],[-51.283056640625034,-30.751562499999963],[-51.35908203124998,-30.674511718749983],[-51.506298828124955,-31.104492187500014],[-51.97246093749999,-31.383789062499986],[-52.19355468749998,-31.885546874999974],[-52.12739257812501,-32.1677734375],[-52.652246093749994,-33.137792968750006],[-53.37060546874997,-33.74218750000003],[-53.39755859374995,-33.737304687500014],[-53.46357421875001,-33.70986328125002],[-53.531347656250034,-33.65546875000004],[-53.531347656250034,-33.1708984375],[-53.511865234374966,-33.10869140625003],[-53.482861328124926,-33.068554687500026],[-53.39521484375001,-33.01035156249998],[-53.31010742187499,-32.927050781249974],[-53.21406249999998,-32.82109375],[-53.12558593749998,-32.73671875],[-53.15727539062496,-32.680078125],[-53.601708984374994,-32.40302734374997],[-53.76171875,-32.05683593749997],[-53.920605468749926,-31.95234375],[-54.220556640625034,-31.855175781249997],[-54.58764648437503,-31.48515625000003],[-55.036035156249994,-31.27900390625004],[-55.091162109375034,-31.31396484374997],[-55.173535156249926,-31.279589843749974],[-55.557324218749955,-30.8759765625],[-55.60302734375003,-30.85078125000001],[-55.62714843749998,-30.858105468749997],[-55.650488281250034,-30.89208984375],[-55.66523437500001,-30.92490234375002],[-55.807763671874994,-31.036718749999977],[-55.87368164062502,-31.069628906250017],[-55.95200195312498,-31.08085937499999],[-56.0046875,-31.079199218750006],[-56.01845703125002,-30.991894531249983],[-55.998974609374955,-30.837207031250003],[-56.4072265625,-30.44746093750001],[-56.83271484374998,-30.107226562499974],[-57.120507812499994,-30.144433593749994],[-57.21445312499995,-30.283398437499983],[-57.55229492187496,-30.261230468749986],[-57.60888671875003,-30.187792968750045],[-57.563867187499994,-30.139941406249974],[-57.40522460937501,-30.03388671875004],[-57.22465820312499,-29.782128906249994],[-56.938623046874994,-29.594824218750034],[-55.890527343749994,-28.370019531249994],[-55.68725585937497,-28.38164062499996],[-55.72548828125002,-28.20410156250003],[-55.10151367187501,-27.866796874999963],[-54.82910156250003,-27.55058593750003],[-54.32700195312495,-27.423535156249997],[-53.83818359375002,-27.121093750000014],[-53.668554687500006,-26.288183593749977],[-53.89116210937499,-25.66884765625001],[-54.15458984374999,-25.523046874999963],[-54.44394531249998,-25.625],[-54.615869140624994,-25.576074218750023],[-54.61054687499998,-25.432714843750034],[-54.47314453124997,-25.22021484375],[-54.43623046875001,-25.12128906250001],[-54.281005859375,-24.30605468750001],[-54.31826171874994,-24.128125],[-54.26689453124996,-24.06582031250001],[-54.241796875,-24.047265624999966],[-54.44023437500002,-23.90175781249998],[-54.62548828125,-23.8125],[-54.98266601562494,-23.974511718749966],[-55.081884765625006,-23.997656249999977],[-55.1943359375,-24.017480468750023],[-55.28691406249993,-24.00429687499999],[-55.366308593750034,-23.99101562499996],[-55.41591796875002,-23.95136718749997],[-55.4423828125,-23.86533203125002],[-55.4423828125,-23.792578125000034],[-55.458886718749966,-23.686718750000054],[-55.51845703124994,-23.627246093750017],[-55.53828124999998,-23.580957031249994],[-55.61767578125,-22.67148437499999],[-55.74663085937499,-22.51269531249997],[-55.753271484375006,-22.410156250000043],[-55.84916992187499,-22.307617187500014],[-55.991406249999926,-22.28115234375005],[-56.18984374999994,-22.28115234375005],[-56.246044921874926,-22.26464843749997],[-56.39487304687498,-22.092675781250023],[-56.44780273437502,-22.07617187500003],[-56.77519531249999,-22.261328125],[-57.955908203125034,-22.109179687500003],[-57.94267578124999,-21.79833984375],[-57.830224609374994,-20.99794921875001],[-57.91513671874998,-20.690332031249966],[-57.97905273437493,-20.65732421874999],[-58.00224609374996,-20.465429687499977],[-58.02539062499997,-20.41582031249999],[-58.05844726562495,-20.38613281249998],[-58.091503906249926,-20.33320312500004],[-58.124609375000034,-20.293457031250014],[-58.13779296874995,-20.237304687500043],[-58.15976562499998,-20.164648437499977],[-58.09375,-20.15107421874997],[-58.021142578124994,-20.05517578124997],[-57.96015625000001,-20.04072265625004],[-57.887597656249966,-20.020410156249994],[-57.860742187499994,-19.97958984375002],[-58.029931640624994,-19.83271484375004],[-58.131494140624994,-19.74453125],[-57.71679687499997,-19.044042968750034],[-57.73085937499999,-18.91718750000004],[-57.783105468749994,-18.91425781249997],[-57.725,-18.73320312500003],[-57.57402343749993,-18.279296875000014],[-57.49565429687496,-18.21464843749999],[-57.58647460937499,-18.122265625],[-57.66166992187493,-17.94736328124999],[-57.78017578125002,-17.67177734374998],[-57.78886718750002,-17.573046875000017],[-57.83247070312501,-17.512109375000037],[-57.90502929687497,-17.53232421874999],[-57.990917968749955,-17.512890625000026],[-58.20556640625,-17.363085937499974],[-58.347753906250006,-17.282128906249994],[-58.39599609374997,-17.234277343750023],[-58.417382812499994,-17.08056640624997],[-58.459814453125006,-16.910742187500006],[-58.478125,-16.70068359375003],[-58.470605468749994,-16.650195312500045],[-58.35039062500002,-16.49082031249999],[-58.34560546875002,-16.284375],[-58.375390624999966,-16.283593749999966],[-58.423681640625034,-16.30791015625003],[-58.49658203124994,-16.32666015625003],[-58.537939453125034,-16.32822265624999],[-60.17558593749996,-16.26933593749999],[-60.187207031249955,-16.132128906250017],[-60.206640625,-15.90195312500002],[-60.242333984374994,-15.479589843750034],[-60.38046874999998,-15.318261718750023],[-60.53046874999998,-15.143164062499977],[-60.58320312499998,-15.098339843749983],[-60.273339843749994,-15.088769531249994],[-60.372705078124994,-14.41875],[-60.506591796875,-13.78984375],[-61.077001953125034,-13.489746093750014],[-61.129150390625,-13.498535156250028],[-61.41606445312502,-13.526562499999969],[-61.511572265625006,-13.541210937500011],[-61.789941406249966,-13.525585937500026],[-61.87412109374998,-13.470410156249983],[-61.944726562499966,-13.40625],[-62.09477539062499,-13.241992187499989],[-62.118017578125006,-13.15976562500002],[-62.765478515625034,-12.99726562500004],[-63.01518554687502,-12.80556640624998],[-63.067480468750006,-12.669140624999983],[-63.34667968749994,-12.68007812499999],[-63.68857421874998,-12.478027343749957],[-64.42050781249995,-12.439746093749974],[-64.783447265625,-12.059375],[-65.18574218749998,-11.749511718749957],[-65.389892578125,-11.246289062500011],[-65.33403320312499,-10.892773437500026],[-65.44711914062503,-10.507421875000034],[-65.4369140625,-10.449023437499946],[-65.39545898437498,-10.392285156250026],[-65.31308593749998,-10.253027343749991],[-65.29858398437497,-10.146777343750017],[-65.39614257812494,-9.712402343749986],[-66.57534179687502,-9.899902343749986],[-67.41694335937495,-10.389843749999969],[-67.72177734374998,-10.683105468749943],[-67.83500976562496,-10.662792968749983],[-67.99169921875,-10.674414062499949],[-68.07167968749994,-10.703125],[-68.39799804687499,-11.01875],[-68.678369140625,-11.11279296875],[-68.84833984374998,-11.01113281249998],[-69.228515625,-10.955664062499963],[-69.46254882812497,-10.948144531250023],[-69.57861328125,-10.951757812499963],[-69.67402343749998,-10.9541015625],[-69.83979492187501,-10.93339843749996],[-69.96035156249997,-10.92988281250004],[-70.06630859374997,-10.982421875],[-70.22006835937503,-11.04765625],[-70.29038085937498,-11.064257812499974],[-70.34199218750001,-11.066699218750017],[-70.39228515624995,-11.058593749999972],[-70.45087890624998,-11.024804687500009],[-70.53325195312496,-10.946875],[-70.59653320312498,-10.976855468750017],[-70.642333984375,-11.010253906249986],[-70.59916992187499,-9.620507812500009],[-70.54111328124998,-9.4375],[-70.60791015625,-9.463671875000031],[-70.63691406249995,-9.478222656249969],[-71.041748046875,-9.81875],[-71.11528320312499,-9.852441406250009],[-71.33940429687499,-9.988574218750031],[-72.18159179687495,-10.003710937500003],[-72.37905273437497,-9.51015625],[-73.20942382812493,-9.411425781249946],[-73.08984375,-9.26572265625002],[-72.970361328125,-9.120117187500028],[-72.97402343750002,-8.9931640625],[-73.07050781249995,-8.8828125],[-73.203125,-8.719335937499991],[-73.30244140624995,-8.654003906250011],[-73.36040039062496,-8.479296875000031],[-73.39814453125001,-8.458984374999986],[-73.54912109374993,-8.34580078125002],[-73.73203125,-7.875390625],[-73.72041015624993,-7.782519531250017],[-73.76689453124999,-7.753515624999963],[-73.82207031249996,-7.738964843750026],[-73.89462890624998,-7.654785156250014],[-73.946875,-7.611230468750023],[-73.98173828124996,-7.58505859375002],[-74.00205078125003,-7.556054687499966],[-73.98173828124996,-7.535742187500006],[-73.95849609374994,-7.506640625000031],[-73.96430664062498,-7.378906250000028],[-73.74946289062498,-7.335351562500037],[-73.72041015624993,-7.309277343749969],[-73.758203125,-7.172753906249952],[-73.79301757812499,-7.135058593750003],[-73.75810546874999,-6.90576171875],[-73.137353515625,-6.4658203125],[-73.23554687500001,-6.098437500000017],[-73.209375,-6.028710937500023],[-73.16289062499996,-5.933398437499974],[-72.97988281249997,-5.634863281249991],[-72.88706054687498,-5.122753906250026],[-72.83193359374994,-5.09375],[-72.69873046874997,-5.067187499999989],[-72.60834960937495,-5.009570312499974],[-72.46899414062497,-4.901269531250023],[-72.35283203124993,-4.786035156249994],[-72.25678710937501,-4.74892578124998],[-71.8447265625,-4.504394531249986],[-70.97368164062499,-4.350488281249994],[-70.86601562499999,-4.229589843749963],[-70.79951171874995,-4.173339843749957],[-70.72158203124997,-4.15888671875004],[-70.53066406249997,-4.167578125000034],[-70.40463867187498,-4.150097656250026],[-70.34365234375,-4.193652343750017],[-70.31689453124994,-4.246972656250037],[-70.23916015625002,-4.30117187499998],[-70.12880859375,-4.286621093749943],[-70.05332031249998,-4.333105468750006],[-70.00395507812496,-4.327246093749963],[-69.97202148437503,-4.30117187499998],[-69.96591796875003,-4.2359375],[-69.94819335937498,-4.200585937500009],[-69.66904296875003,-2.667675781249997],[-69.40024414062498,-1.194921874999977],[-69.63398437500001,-0.50927734375],[-70.07050781249993,-0.13886718750004],[-70.05390624999993,0.578613281250028],[-69.47211914062498,0.72993164062504],[-69.15332031249994,0.65878906250002],[-69.31181640624999,1.050488281249969],[-69.85214843750003,1.05952148437504],[-69.84858398437493,1.708740234375043],[-68.17656249999999,1.719824218749991],[-68.25595703125,1.845507812500017],[-68.19379882812495,1.987011718749983],[-67.93623046874998,1.748486328124969],[-67.40043945312499,2.116699218750028],[-67.11923828124998,1.703613281249986],[-67.082275390625,1.185400390625006],[-66.87602539062499,1.223046875000037],[-66.34711914062498,0.7671875],[-66.06005859375003,0.78535156250004],[-65.68144531249999,0.983447265624989],[-65.52299804687493,0.843408203124966],[-65.55605468750002,0.687988281250014],[-65.47338867187497,0.691259765624977],[-65.10375976562497,1.108105468749983],[-64.20502929687493,1.52949218750004],[-64.00849609374995,1.931591796874969],[-63.43251953124994,2.155566406250045],[-63.389257812500006,2.411914062500045],[-64.04658203124998,2.502392578124997],[-64.22109375000002,3.587402343749972],[-64.66899414062496,4.01181640625002],[-64.788671875,4.276025390625023],[-64.57636718750001,4.139892578125],[-64.19248046874995,4.126855468750009],[-64.02148437500003,3.929101562500051],[-63.33867187500002,3.943896484375045],[-62.85698242187502,3.593457031249969],[-62.71210937499998,4.01791992187502],[-62.41064453124994,4.156738281249972],[-62.153125,4.098388671874986],[-61.82084960937496,4.197021484375],[-61.28007812500002,4.516894531249974],[-61.00283203125002,4.535253906249991],[-60.603857421875006,4.94936523437498],[-60.671972656250034,5.164355468749989],[-60.71196289062499,5.191552734375023],[-60.742138671874926,5.202050781250037],[-60.6513671875,5.221142578125011],[-60.45952148437499,5.188085937500034],[-60.40878906249998,5.21015625],[-60.33520507812497,5.199316406250006],[-60.241650390624926,5.257958984374966],[-60.14204101562498,5.238818359374974],[-59.990673828124955,5.082861328124991],[-60.14863281249998,4.533251953125031],[-59.69970703125,4.353515625]]]]},"properties":{"name":"Brazil","childNum":17}},{"geometry":{"type":"Polygon","coordinates":[[[-59.493310546874994,13.081982421874997],[-59.611328125,13.102099609374989],[-59.6466796875,13.303125],[-59.427636718749994,13.152783203124997],[-59.493310546874994,13.081982421874997]]]},"properties":{"name":"Barbados","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[115.02675781250005,4.899707031249989],[115.1400390625,4.899755859374991],[115.290625,4.352587890624989],[115.10703125000006,4.390429687499974],[115.02675781250005,4.899707031249989]]],[[[115.02675781250005,4.899707031249989],[114.74667968750006,4.718066406250017],[114.84023437500005,4.393212890625009],[114.65410156250007,4.037646484375045],[114.0638671875,4.592675781249966],[114.42441406250006,4.660400390625],[114.99541015625002,5.022363281250023],[115.02675781250005,4.899707031249989]]]]},"properties":{"name":"Brunei","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[91.63193359375003,27.759960937499997],[91.5947265625,27.557666015624996],[91.74306640625002,27.442529296874994],[91.85126953125001,27.438623046874994],[91.95097656249999,27.458300781249996],[91.99082031250003,27.4501953125],[92.044921875,27.364697265624997],[92.08339843750002,27.290625],[92.03115234375002,27.214306640624997],[92.00253906250003,27.147363281249994],[91.99228515625003,27.099902343749996],[91.99863281250003,27.079296875],[92.03085937500003,27.040820312499996],[92.06816406249999,26.9751953125],[92.07343750000001,26.91484375],[92.04970703125002,26.874853515625],[91.99833984374999,26.85498046875],[91.84208984374999,26.852978515624997],[91.67158203125001,26.802001953125],[91.517578125,26.807324218749997],[91.45585937499999,26.866894531249997],[91.4267578125,26.867089843749994],[91.28652343750002,26.789941406249994],[90.73964843750002,26.771679687499997],[90.34589843750001,26.890332031249997],[90.2060546875,26.847509765625],[90.12294921875002,26.754589843749997],[89.94316406249999,26.723925781249996],[89.76386718750001,26.7015625],[89.60996093750003,26.719433593749997],[89.58613281250001,26.778955078124994],[89.33212890625003,26.8486328125],[89.14824218749999,26.816162109375],[89.04091796875002,26.865039062499996],[88.85761718750001,26.961474609374996],[88.73876953125,27.175585937499996],[88.76035156250003,27.218115234375],[88.88164062499999,27.2974609375],[88.89140624999999,27.316064453124994],[88.94755859374999,27.464013671874994],[89.48066406250001,28.059960937499994],[89.53691406249999,28.107421875],[89.65273437500002,28.15830078125],[89.74980468749999,28.188183593749997],[89.81689453125,28.256298828124997],[89.89785156250002,28.294140625],[89.98105468750003,28.311181640624994],[90.34824218750003,28.243945312499996],[90.36298828125001,28.216503906249997],[90.33310546875003,28.093994140625],[90.35273437500001,28.080224609374994],[90.47734374999999,28.070849609374996],[90.63007812500001,28.078564453124997],[90.71572265625002,28.071728515624997],[91.02080078124999,27.970068359375],[91.07773437500003,27.974462890625],[91.22587890624999,28.071240234374997],[91.27304687500003,28.078369140625],[91.30683593750001,28.064013671874996],[91.36757812500002,28.021630859374994],[91.64189453124999,27.923242187499994],[91.63193359375003,27.759960937499997]]]},"properties":{"name":"Bhutan","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[25.2587890625,-17.793554687500006],[25.242285156250006,-17.969042968750003],[25.939355468750023,-18.93867187500001],[26.168066406250006,-19.53828125000001],[27.17822265625,-20.10097656250001],[27.28076171875,-20.47871093750001],[27.679296875,-20.503027343750006],[27.66943359375,-21.064257812500003],[28.014062500000023,-21.55419921875],[29.02558593750001,-21.796875],[29.042382812500023,-22.018359375],[29.237207031250023,-22.07949218750001],[29.315234375000017,-22.15771484375],[29.36484375,-22.193945312500006],[29.1298828125,-22.21328125],[29.013476562500017,-22.278417968750006],[28.94580078125,-22.395117187500006],[28.83984375,-22.480859375],[28.21015625000001,-22.693652343750003],[27.812597656250006,-23.108007812500006],[27.7685546875,-23.14892578125],[27.085546875,-23.577929687500003],[26.835058593750006,-24.240820312500006],[26.617773437500006,-24.3955078125],[26.451757812500006,-24.58271484375001],[26.39716796875001,-24.613574218750003],[26.130859375,-24.671484375],[26.031835937500006,-24.702441406250003],[25.912109375,-24.74746093750001],[25.518164062500006,-25.66279296875001],[25.21337890625,-25.75625],[24.33056640625,-25.74287109375001],[24.19296875,-25.632910156250006],[23.969531250000017,-25.626074218750006],[23.89375,-25.600878906250003],[23.389257812500006,-25.29140625],[23.148730468750017,-25.288671875],[22.878808593750023,-25.45791015625001],[22.59765625,-26.13271484375001],[22.548632812500017,-26.17841796875001],[22.47089843750001,-26.219042968750003],[22.217578125000017,-26.38886718750001],[22.090917968750006,-26.580175781250006],[22.01093750000001,-26.635839843750006],[21.78828125000001,-26.710058593750006],[21.738085937500017,-26.80683593750001],[21.694726562500023,-26.840917968750006],[20.73984375,-26.84882812500001],[20.641406250000017,-26.7421875],[20.79316406250001,-25.915625],[20.4306640625,-25.147070312500006],[19.98046875,-24.77675781250001],[19.977343750000017,-22.00019531250001],[20.9794921875,-21.9619140625],[20.97412109375,-18.31884765625],[23.219335937500006,-17.99970703125001],[23.599707031250006,-18.4599609375],[24.243945312500017,-18.0234375],[24.530566406250017,-18.052734375],[24.909082031250023,-17.821386718750006],[25.2587890625,-17.793554687500006]]]},"properties":{"name":"Botswana","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[22.86005859375001,10.919677734375],[23.646289062500017,9.822900390624994],[23.62265625,9.340625],[23.46826171875,9.11474609375],[23.53730468750001,8.815820312499994],[24.147363281250023,8.665625],[24.291406250000023,8.29140625],[24.853320312500017,8.137548828124991],[25.20039062500001,7.807910156249989],[25.18134765625001,7.557226562499991],[25.27890625,7.427490234375],[26.36181640625,6.635302734374989],[26.30859375,6.455322265625],[26.514257812500006,6.069238281249994],[27.143945312500023,5.722949218749989],[27.4033203125,5.109179687499989],[27.071875,5.199755859374989],[26.822070312500017,5.062402343749994],[25.52509765625001,5.31210937499999],[25.065234375000017,4.967431640624994],[24.31982421875,4.994140625],[23.41718750000001,4.663134765624989],[22.864550781250017,4.723876953125],[22.422167968750017,4.134960937499997],[20.55810546875,4.462695312499989],[20.226367187500017,4.829638671874989],[19.806542968750023,5.089306640624997],[19.5009765625,5.127490234374989],[19.06855468750001,4.891406249999989],[18.594140625000023,4.346240234374989],[18.6103515625,3.478417968749994],[18.474414062500017,3.622998046874997],[18.160937500000017,3.499804687499989],[17.491601562500023,3.687304687499989],[16.610742187500023,3.50537109375],[16.468554687500017,2.831738281249997],[16.183398437500017,2.270068359374989],[16.0634765625,2.90859375],[15.128710937500017,3.826904296875],[15.063574218750006,4.284863281249997],[14.73125,4.602392578124991],[14.56298828125,5.279931640624994],[14.616894531250011,5.865136718749994],[14.43115234375,6.038720703124994],[14.7392578125,6.27978515625],[15.206738281250011,7.206152343749991],[15.480078125,7.523779296874991],[15.957617187500006,7.507568359375],[16.37890625,7.683544921874997],[16.545312500000023,7.865478515625],[16.784765625,7.550976562499997],[17.6494140625,7.98359375],[18.56416015625001,8.0458984375],[19.108691406250017,8.656152343749994],[18.886035156250017,8.836035156249991],[18.95625,8.938867187499994],[20.342089843750017,9.127099609374994],[20.773242187500017,9.405664062499994],[21.682714843750006,10.289843749999989],[21.771484375,10.642822265625],[22.49384765625001,10.996240234374994],[22.86005859375001,10.919677734375]]]},"properties":{"name":"Central African Rep.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-59.78759765624997,43.939599609374994],[-60.11748046874996,43.95336914062506],[-59.727148437500006,44.002832031249994],[-59.78759765624997,43.939599609374994]]],[[[-66.7625,44.68178710937502],[-66.8970703125,44.62890625],[-66.80214843749994,44.80537109374998],[-66.7625,44.68178710937502]]],[[[-60.961572265624966,45.48994140625001],[-61.081738281249926,45.55781249999998],[-60.91245117187498,45.56728515625005],[-60.961572265624966,45.48994140625001]]],[[[-73.69531249999997,45.58549804687502],[-73.85771484375002,45.573583984375006],[-73.57236328124998,45.69448242187502],[-73.69531249999997,45.58549804687502]]],[[[-73.56650390625003,45.469091796875034],[-73.960546875,45.44140624999997],[-73.68745117187498,45.561425781249994],[-73.47607421874997,45.704736328124994],[-73.56650390625003,45.469091796875034]]],[[[-61.10517578124998,45.94472656250002],[-60.86523437499997,45.983496093750006],[-61.05903320312501,45.70336914062497],[-60.73789062499995,45.75141601562498],[-60.46059570312494,45.96870117187501],[-60.733300781249994,45.956591796875045],[-60.297949218750034,46.31123046874998],[-60.22646484374994,46.19555664062506],[-59.86503906249993,46.159521484375006],[-59.8421875,45.941552734374994],[-60.67294921874995,45.59082031250006],[-61.28369140624994,45.573876953124966],[-61.44980468749995,45.71621093750002],[-61.40864257812501,46.17036132812498],[-60.87016601562499,46.796777343749966],[-60.40820312500003,47.00351562499998],[-60.332910156249966,46.737011718749955],[-60.49453125000002,46.270263671875],[-61.10517578124998,45.94472656250002]]],[[[-63.811279296875,46.46870117187501],[-63.68144531249993,46.561914062499994],[-63.12939453125,46.422216796875034],[-62.02373046874999,46.42158203125001],[-62.52607421875001,46.20288085937503],[-62.531347656250034,45.977294921875],[-63.02207031249998,46.06660156249998],[-62.89453125000003,46.12358398437496],[-63.056347656249955,46.22392578124996],[-62.97846679687498,46.31635742187498],[-63.21347656249998,46.15986328124998],[-63.641015624999966,46.23046874999997],[-63.758642578125034,46.397607421874994],[-64.11083984375003,46.425439453124994],[-64.13603515624999,46.59970703125006],[-64.388037109375,46.640869140625],[-63.99355468750002,47.06157226562502],[-64.08789062499997,46.77543945312499],[-63.811279296875,46.46870117187501]]],[[[-61.91411132812496,47.284521484375034],[-61.77255859374998,47.25981445312499],[-62.00830078124994,47.23427734375002],[-61.924707031249966,47.425146484375006],[-61.3955078125,47.63764648437504],[-61.91411132812496,47.284521484375034]]],[[[-54.227148437500034,47.44135742187501],[-54.32597656250002,47.408105468749994],[-54.12817382812494,47.646826171875034],[-54.227148437500034,47.44135742187501]]],[[[-74.70888671874997,45.0038574218751],[-73.55810546875,45.425097656250045],[-73.1595703125,46.01005859375002],[-72.10927734374997,46.55122070312504],[-71.26118164062495,46.75625],[-70.51948242187501,47.032519531250045],[-69.47104492187503,47.96728515625006],[-68.23818359374994,48.62641601562504],[-66.17817382812493,49.21313476562503],[-64.83632812499994,49.191748046875006],[-64.2162109375,48.873632812500034],[-64.51372070312493,48.84111328124999],[-64.24609374999994,48.69111328124998],[-64.34882812500001,48.423193359375034],[-65.259423828125,48.02124023437503],[-65.92670898437495,48.188867187499994],[-66.70439453125002,48.0224609375],[-66.35961914062494,48.06064453125006],[-65.84941406250002,47.91103515625005],[-65.60722656249996,47.67001953125006],[-65.00166015624995,47.84682617187502],[-64.70322265625,47.72485351562503],[-64.91220703125003,47.36865234375003],[-65.31889648437502,47.101220703124994],[-64.831396484375,47.06079101562503],[-64.88251953124993,46.822851562500034],[-64.54150390625,46.240332031250034],[-63.91591796875002,46.165820312500045],[-63.831933593749966,46.107177734375],[-64.05639648437503,46.021337890625006],[-63.70288085937494,45.858007812500034],[-62.70068359374997,45.740576171875006],[-62.750097656250006,45.64824218750002],[-62.483056640624966,45.62182617187506],[-61.955517578124955,45.86816406249997],[-61.776513671874994,45.655615234375006],[-61.49228515624998,45.68701171875],[-61.350488281249966,45.57368164062501],[-61.28198242187494,45.441064453124994],[-61.46098632812502,45.36669921875003],[-61.03154296875002,45.29174804687506],[-63.306298828124994,44.64257812500003],[-63.60400390624997,44.68320312500006],[-63.60976562499999,44.47998046875006],[-63.999707031249926,44.64492187499999],[-64.10087890624993,44.487451171874966],[-64.1669921875,44.58666992187503],[-64.28608398437493,44.55034179687499],[-64.27568359374993,44.33408203124998],[-65.48168945312497,43.51806640625],[-65.73813476562498,43.56074218750001],[-65.88691406250001,43.79521484374999],[-66.125732421875,43.813818359375034],[-66.19306640624995,44.143847656250045],[-65.86801757812498,44.56879882812501],[-66.14638671875002,44.43593750000005],[-66.090625,44.50493164062499],[-64.44814453125,45.33745117187502],[-64.13549804687497,45.023046875],[-64.09316406249997,45.21708984375002],[-63.368017578125034,45.36479492187502],[-64.87314453124998,45.35458984375006],[-64.31464843749998,45.83569335937503],[-64.48222656250002,45.80634765624998],[-64.63271484375002,45.94663085937506],[-64.77851562499998,45.63842773437497],[-65.88447265624995,45.22290039062506],[-66.10976562500002,45.316601562499955],[-66.02656249999995,45.417578125],[-66.43984374999994,45.09589843750001],[-66.87246093749997,45.067285156249966],[-67.12485351562498,45.16943359375],[-67.366943359375,45.17377929687498],[-67.43266601562496,45.603125],[-67.80224609374994,45.7275390625],[-67.806787109375,47.08281249999999],[-68.23549804687502,47.34594726562503],[-68.93720703124998,47.21123046875002],[-69.0501953125,47.426611328125034],[-69.24287109374998,47.46298828124998],[-70.00771484375002,46.70893554687501],[-70.296240234375,45.90610351562506],[-70.86503906249999,45.27070312500001],[-71.327294921875,45.29008789062496],[-71.51752929687495,45.00756835937497],[-74.663232421875,45.00390625000003],[-74.70888671874997,45.0038574218751]]],[[[-126.09208984374995,49.35400390625003],[-126.06401367187499,49.26362304687501],[-126.22963867187498,49.29565429687506],[-126.09208984374995,49.35400390625003]]],[[[-54.55439453125001,49.5888671875],[-54.786523437499966,49.496142578125045],[-54.86357421875002,49.576074218749966],[-54.55439453125001,49.5888671875]]],[[[-54.093701171874955,49.74443359374999],[-53.98066406250001,49.66196289062498],[-54.28613281249997,49.595361328124994],[-54.27763671875002,49.71147460937502],[-54.093701171874955,49.74443359374999]]],[[[-126.64121093749999,49.605810546875006],[-126.93857421874999,49.71845703125004],[-126.92583007812497,49.837744140625006],[-126.73813476562502,49.84365234375005],[-126.64121093749999,49.605810546875006]]],[[[-61.801123046875034,49.093896484374966],[-63.04150390624994,49.224951171875034],[-64.485205078125,49.88696289062497],[-64.13144531249995,49.94165039062503],[-62.858544921874966,49.70546875000005],[-61.817138671875,49.28354492187498],[-61.69614257812495,49.139013671875006],[-61.801123046875034,49.093896484374966]]],[[[-125.18413085937497,50.09711914062498],[-125.301171875,50.4140625],[-125.07402343750002,50.22065429687501],[-125.18413085937497,50.09711914062498]]],[[[-127.19731445312495,50.640380859375],[-125.48208007812501,50.316796874999966],[-124.83061523437499,49.53007812500002],[-123.99580078125,49.22402343750002],[-123.49702148437498,48.58208007812499],[-123.38989257812501,48.67021484374999],[-123.31064453125003,48.41103515625002],[-123.57314453124995,48.32280273437499],[-123.91694335937501,48.386572265625034],[-125.12070312500002,48.76079101562496],[-124.84965820312496,49.02827148437501],[-124.81264648437497,49.212646484375],[-124.92734374999998,49.01420898437499],[-125.489453125,48.933789062499955],[-125.82851562499998,49.09184570312499],[-125.64423828125001,49.18579101562506],[-125.95166015625001,49.24804687500003],[-125.93540039062499,49.401464843750006],[-126.51914062499999,49.396777343750045],[-126.54189453125001,49.590478515624966],[-126.13408203124997,49.672314453124955],[-126.52524414062499,49.71958007812498],[-126.90332031250001,49.94414062499999],[-127.114306640625,49.879736328125034],[-127.24980468749999,50.13798828124996],[-127.34941406249995,50.05195312500001],[-127.46713867187503,50.163427734375006],[-127.86391601562495,50.12773437500002],[-127.90585937499998,50.44521484375002],[-127.48652343749998,50.404638671875034],[-127.46591796874996,50.58310546875006],[-128.05834960937494,50.498486328124955],[-128.34604492187503,50.744238281250006],[-127.91806640624998,50.86054687500001],[-127.19731445312495,50.640380859375]]],[[[-55.45874023437494,51.53652343750005],[-55.58339843749994,51.38857421875002],[-56.031103515625034,51.328369140625],[-55.8,51.033300781250034],[-56.732324218749966,50.007714843749994],[-56.822167968749966,49.613476562499955],[-56.179394531249955,50.114990234375],[-56.161279296874994,49.94013671874998],[-55.50292968749997,49.98315429687503],[-56.14018554687496,49.61914062500006],[-55.869824218749955,49.67016601562506],[-56.08730468750002,49.45195312499999],[-55.375927734374955,49.48974609374997],[-55.34384765624998,49.37290039062506],[-55.22954101562496,49.508154296875006],[-55.35317382812502,49.07944335937506],[-54.50219726562503,49.52734375],[-54.44824218749997,49.329443359375006],[-53.957714843749955,49.44184570312498],[-53.61943359374996,49.321630859375006],[-53.57343750000001,49.141210937500034],[-54.16127929687494,48.787695312500034],[-53.852880859375006,48.81132812499996],[-53.966015624999955,48.70668945312505],[-53.70634765624999,48.65551757812503],[-54.11445312499998,48.393603515625045],[-53.027587890625,48.634716796874955],[-53.1357421875,48.40185546875003],[-53.60976562500002,48.20771484375001],[-53.56943359374998,48.088085937499955],[-53.869580078124926,48.019677734374966],[-53.63823242187496,48.01464843750003],[-53.863671874999966,47.787011718749994],[-53.67236328125,47.64824218749999],[-53.28271484375,47.99785156249996],[-52.86601562499993,48.11298828124998],[-53.16982421875002,47.51210937500005],[-52.945019531249955,47.55283203124998],[-52.782421874999955,47.769433593749966],[-52.653662109375034,47.549414062500006],[-53.11484375,46.65581054687502],[-53.32304687499996,46.71835937499998],[-53.589794921874955,46.638867187499955],[-53.59736328124998,47.14599609374997],[-54.00957031249993,46.839599609375],[-54.173730468749994,46.88037109375003],[-53.84951171875002,47.440332031249994],[-53.98901367187503,47.756201171875034],[-54.191845703124955,47.85981445312501],[-54.488134765625006,47.40385742187502],[-54.47392578124996,47.54707031249998],[-54.856640624999955,47.385009765625],[-55.31572265624993,46.905712890624955],[-55.78852539062498,46.86723632812502],[-55.91923828124996,47.01689453124996],[-55.49150390624996,47.16064453125003],[-54.78461914062501,47.664746093749955],[-55.366308593750034,47.66108398437501],[-55.57612304687498,47.46523437499999],[-56.12724609374999,47.50283203125002],[-55.867089843749994,47.592333984375045],[-55.85791015625,47.81918945312498],[-56.774121093749955,47.56499023437499],[-58.33686523437501,47.73085937500002],[-59.11694335937494,47.57070312499999],[-59.32065429687498,47.736914062500006],[-59.272070312500034,47.99555664062504],[-58.330224609374994,48.52211914062502],[-59.16767578124998,48.558496093749966],[-58.84179687500003,48.74643554687498],[-58.906445312499955,48.65019531249999],[-58.716455078124994,48.59804687500002],[-58.403662109375034,49.08432617187498],[-57.99052734374996,48.987939453124966],[-58.09892578124993,49.07744140624999],[-57.98007812499998,49.229638671874994],[-58.19091796875003,49.25874023437498],[-58.21337890625,49.38666992187501],[-58.01582031249998,49.54248046874997],[-57.79130859374999,49.48999023437503],[-57.92617187499999,49.700830078124994],[-57.4326171875,50.50581054687504],[-57.179589843749966,50.614843750000034],[-57.29799804687502,50.69873046874997],[-57.03593750000002,51.01083984374998],[-56.68242187500002,51.332763671875],[-56.025585937499955,51.56835937500006],[-55.6904296875,51.471337890624994],[-55.666406249999966,51.57890624999999],[-55.45874023437494,51.53652343750005]]],[[[-127.92465820312498,51.47387695312497],[-128.14877929687498,51.62670898437503],[-128.03173828125006,51.708398437499966],[-127.92465820312498,51.47387695312497]]],[[[-79.38427734374997,51.951953125000045],[-79.64375,52.01005859374996],[-79.27128906249996,52.086816406249966],[-79.38427734374997,51.951953125000045]]],[[[-128.36875,52.40087890625],[-128.43979492187503,52.696386718750006],[-128.24726562499998,52.784375],[-128.36875,52.40087890625]]],[[[-80.73168945312494,52.74726562499998],[-82.03925781249998,53.04990234374998],[-81.84731445312494,53.18627929687497],[-81.135595703125,53.20581054687503],[-80.73168945312494,52.74726562499998]]],[[[-131.7537109375,53.195556640625],[-131.63466796874997,52.92216796874999],[-131.97177734374998,52.87983398437498],[-131.45522460937502,52.70170898437502],[-131.59057617187494,52.578222656250006],[-131.25971679687495,52.415917968749966],[-131.31992187499998,52.30307617187498],[-131.142626953125,52.291113281250034],[-131.221533203125,52.15361328124999],[-132.16508789062493,52.783300781250034],[-132.14375,52.99931640624999],[-132.54677734374997,53.1375],[-131.7537109375,53.195556640625]]],[[[-128.55244140624998,52.93974609375002],[-128.50991210937502,52.51860351562502],[-128.678955078125,52.289648437500006],[-128.74633789062494,52.763378906249955],[-128.89980468749997,52.67382812500003],[-129.175927734375,52.964941406250006],[-129.033251953125,53.27993164062505],[-128.63266601562498,53.1125],[-128.55244140624998,52.93974609375002]]],[[[-129.167724609375,53.11787109374998],[-129.32387695312502,53.142138671875045],[-129.23818359374997,53.33007812500006],[-129.167724609375,53.11787109374998]]],[[[-129.84858398437498,53.167919921874955],[-130.51757812500003,53.54423828124999],[-130.45200195312498,53.63115234375002],[-129.94472656250002,53.436376953125034],[-129.75483398437498,53.244775390624994],[-129.84858398437498,53.167919921874955]]],[[[-130.236279296875,53.95854492187502],[-130.38422851562504,53.84394531250001],[-130.703173828125,53.892236328124994],[-130.44799804687497,54.08901367187502],[-130.236279296875,53.95854492187502]]],[[[-132.65551757812503,54.12749023437496],[-132.30336914062497,54.098876953125],[-132.16611328124998,53.95522460937505],[-132.53466796875,53.651708984375034],[-132.18696289062504,53.68481445312503],[-132.134423828125,54.03427734374998],[-131.66762695312502,54.14135742187503],[-131.957421875,53.308691406250034],[-132.34726562500003,53.18920898437503],[-132.747509765625,53.310498046874955],[-132.425,53.33696289062502],[-132.84501953125,53.507714843749994],[-133.07949218749997,53.837011718750034],[-133.04838867187493,54.15893554687497],[-132.65551757812503,54.12749023437496]]],[[[-130.92714843749997,54.47905273437499],[-130.90683593750003,54.63178710937504],[-130.75800781249998,54.61376953125],[-130.92714843749997,54.47905273437499]]],[[[-130.57534179687497,54.769677734374966],[-130.2140625,55.02587890625003],[-130.34941406249996,54.814550781250034],[-130.57534179687497,54.769677734374966]]],[[[-79.97758789062499,56.20703125000006],[-80.057470703125,56.28735351562497],[-79.57973632812502,56.466357421875045],[-79.97758789062499,56.20703125000006]]],[[[-78.93559570312496,56.26606445312498],[-79.17548828124998,55.88505859374999],[-79.18212890625,56.21215820312503],[-79.4951171875,55.87475585937503],[-79.76474609374995,55.80678710937505],[-79.54472656249999,56.12836914062501],[-79.9875,55.89213867187502],[-79.45888671875,56.53974609374998],[-79.53632812499995,56.180078124999966],[-79.27241210937493,56.600439453125006],[-78.93559570312496,56.26606445312498]]],[[[-61.743603515624955,57.55458984375005],[-61.6375,57.41606445312499],[-62.01123046875003,57.54848632812505],[-61.743603515624955,57.55458984375005]]],[[[-79.71650390624998,57.515527343749994],[-79.80844726562498,57.44243164062502],[-79.74257812499997,57.60795898437499],[-79.71650390624998,57.515527343749994]]],[[[-69.16005859375,59.04023437500001],[-69.35283203125002,58.96074218749999],[-69.30322265625003,59.144873046875006],[-69.16005859375,59.04023437500001]]],[[[-64.40703125,60.367089843749966],[-64.44194335937496,60.2978515625],[-64.73793945312497,60.37563476562502],[-64.83642578124997,60.50102539062499],[-64.40703125,60.367089843749966]]],[[[-68.23378906250002,60.24091796875001],[-68.36787109374998,60.314746093750045],[-68.08759765624998,60.58784179687501],[-67.81884765624994,60.449511718750074],[-68.23378906250002,60.24091796875001]]],[[[-78.531640625,60.72856445312499],[-78.66889648437498,60.716894531250006],[-78.24169921875,60.818652343750045],[-78.531640625,60.72856445312499]]],[[[-64.83261718749998,61.366064453125006],[-65.43212890625,61.649511718750034],[-64.78964843750003,61.662207031250034],[-64.83261718749998,61.366064453125006]]],[[[-65.03056640624999,61.879052734374966],[-64.89658203124995,61.73330078125005],[-65.23535156249997,61.89770507812506],[-65.03056640624999,61.879052734374966]]],[[[-79.54531250000002,62.41171875000006],[-79.28647460937495,62.247656250000034],[-79.32392578124995,62.02607421875001],[-79.81611328124995,61.59462890625002],[-80.26518554687496,61.818212890625006],[-80.26005859374996,62.10903320312502],[-79.9267578125,62.39287109375002],[-79.54531250000002,62.41171875000006]]],[[[-64.82382812499998,62.558740234374994],[-64.46503906249998,62.535937500000045],[-64.47832031250002,62.417871093749966],[-64.901220703125,62.421044921874994],[-64.82382812499998,62.558740234374994]]],[[[-70.33706054687497,62.548730468749994],[-70.76606445312498,62.596875],[-71.22011718750002,62.873925781249966],[-70.44262695312497,62.73378906250002],[-70.33706054687497,62.548730468749994]]],[[[-82.00048828124997,62.95419921874998],[-82.02583007812498,62.73007812499998],[-82.56826171875002,62.403222656249994],[-83.01582031249998,62.20991210937498],[-83.69887695312497,62.16025390624998],[-83.91049804687498,62.45415039062499],[-83.37641601562498,62.904931640624994],[-82.00048828124997,62.95419921874998]]],[[[-77.87670898437497,63.470556640625034],[-77.53271484374997,63.233642578125],[-77.94243164062496,63.11440429687502],[-78.536767578125,63.423730468749994],[-77.87670898437497,63.470556640625034]]],[[[-76.67758789062503,63.393945312499966],[-77.36474609374994,63.588330078124955],[-77.13369140624997,63.68203125000002],[-76.65244140624998,63.503564453124994],[-76.67758789062503,63.393945312499966]]],[[[-84.91962890624995,65.26108398437503],[-84.50112304687497,65.45844726562501],[-84.08486328125,65.21782226562502],[-82.05,64.64428710937506],[-81.67612304687498,64.21264648437503],[-81.88710937499997,64.01640625000002],[-80.82895507812495,64.08994140625],[-80.30205078124999,63.76220703125003],[-81.04638671875003,63.461572265624966],[-82.378125,63.706787109375],[-82.46708984375002,63.92695312500001],[-83.30395507812497,64.14379882812506],[-84.63291015625,63.30922851562502],[-85.39262695312496,63.119677734375045],[-85.76894531249997,63.70034179687502],[-87.15190429687499,63.58564453125001],[-86.93203124999997,63.90166015625002],[-86.252099609375,64.13686523437497],[-86.37426757812503,64.56582031249997],[-86.074609375,65.533837890625],[-85.55468750000003,65.91865234374995],[-85.17622070312501,65.746875],[-85.23994140624993,65.51030273437499],[-84.91962890624995,65.26108398437503]]],[[[-84.67475585937498,65.575],[-85.096337890625,65.756201171875],[-85.14960937500001,66.01538085937506],[-84.75737304687496,65.85893554687505],[-84.67475585937498,65.575]]],[[[-83.72597656249997,65.796728515625],[-83.23374023437495,65.71503906249995],[-83.332421875,65.63105468749998],[-84.11826171874995,65.77177734375007],[-84.40717773437501,66.13100585937497],[-83.78696289062495,65.96577148437498],[-83.72597656249997,65.796728515625]]],[[[-108.09272460937501,67.00517578124999],[-107.80551757812493,66.99858398437507],[-107.94394531249999,66.8578125],[-108.09272460937501,67.00517578124999]]],[[[-62.681542968749966,67.05629882812502],[-62.87163085937499,67.06259765625006],[-62.41679687499996,67.18847656250003],[-62.681542968749966,67.05629882812502]]],[[[-107.89985351562497,67.40180664062495],[-107.95024414062503,67.31821289062498],[-108.15224609374997,67.429443359375],[-108.04897460937498,67.664892578125],[-107.89985351562497,67.40180664062495]]],[[[-73.621728515625,67.783837890625],[-74.573388671875,67.82866210937507],[-74.70654296875003,68.06708984374995],[-73.49375,68.00063476562502],[-73.40717773437498,67.79306640625],[-73.621728515625,67.783837890625]]],[[[-86.59555664062498,67.7359375],[-86.89252929687498,67.836572265625],[-86.95981445312503,68.10024414062497],[-86.70209960937501,68.30561523437498],[-86.42114257812497,68.18344726562503],[-86.59555664062498,67.7359375]]],[[[-75.67587890624998,68.32250976562506],[-75.078125,68.17314453124999],[-75.20195312499996,67.45917968750001],[-75.78007812499996,67.28354492187503],[-76.94418945312498,67.25029296875002],[-77.30439453125001,67.68510742187505],[-77.12587890624997,67.94707031250002],[-76.59580078124998,68.27895507812497],[-75.67587890624998,68.32250976562506]]],[[[-78.98271484374999,68.19282226562501],[-79.17475585937493,68.26445312500002],[-78.95258789062495,68.35302734375006],[-78.98271484374999,68.19282226562501]]],[[[-104.54067382812497,68.405908203125],[-105.05136718749999,68.55903320312501],[-104.60200195312503,68.56152343749997],[-104.54067382812497,68.405908203125]]],[[[-74.880859375,68.34868164062505],[-75.40024414062503,68.52548828125],[-75.28740234374996,68.68774414062503],[-74.98364257812497,68.64760742187502],[-74.880859375,68.34868164062505]]],[[[-101.84589843749994,68.58632812499997],[-102.30815429687497,68.681982421875],[-102.01337890624995,68.82539062500001],[-101.73295898437495,68.75341796875],[-101.84589843749994,68.58632812499997]]],[[[-100.21723632812497,68.80668945312502],[-100.59653320312496,68.76640625000007],[-100.56547851562495,69.02680664062501],[-100.21723632812497,68.80668945312502]]],[[[-99.99467773437502,69.01352539062503],[-100.19570312500002,68.991455078125],[-100.153125,69.12949218750003],[-99.99467773437502,69.01352539062503]]],[[[-79.21064453124995,68.845458984375],[-79.24267578125,69.04926757812495],[-78.33256835937496,69.38603515624999],[-78.77919921875,68.95048828124999],[-79.21064453124995,68.845458984375]]],[[[-90.1998046875,69.419091796875],[-90.33027343749993,69.252197265625],[-90.49204101562503,69.369873046875],[-90.1998046875,69.419091796875]]],[[[-76.99536132812503,69.14375],[-77.37939453125,69.2740234375],[-77.18754882812502,69.440087890625],[-76.66884765625002,69.36616210937504],[-76.99536132812503,69.14375]]],[[[-101.171728515625,69.39707031250003],[-101.31289062499998,69.57607421875],[-101.00063476562497,69.4619140625],[-101.171728515625,69.39707031250003]]],[[[-95.51367187499997,69.57363281250002],[-95.43745117187498,69.37846679687505],[-95.73012695312502,69.34755859374997],[-95.80620117187499,69.56049804687501],[-95.89345703125,69.35175781250004],[-95.87583007812495,69.60600585937505],[-95.51367187499997,69.57363281250002]]],[[[-67.91469726562494,69.54096679687504],[-68.22138671874998,69.61674804687502],[-67.908837890625,69.68183593749995],[-67.91469726562494,69.54096679687504]]],[[[-78.02910156249993,69.71489257812502],[-78.03999023437495,69.6083984375],[-78.84819335937502,69.4828125],[-78.02910156249993,69.71489257812502]]],[[[-79.43066406250003,69.78779296874995],[-79.55283203124995,69.63085937500006],[-80.04750976562502,69.63432617187505],[-79.97783203124993,69.50966796874997],[-80.794775390625,69.68925781250005],[-80.42421875000002,69.797607421875],[-79.43066406250003,69.78779296874995]]],[[[-97.439453125,69.64267578125006],[-96.29995117187494,69.34438476562505],[-95.7513671875,68.89765624999998],[-95.26777343749998,68.82607421874997],[-96.40156249999995,68.47070312500003],[-97.47202148437498,68.543701171875],[-98.320556640625,68.84272460937498],[-98.70380859374993,68.80278320312502],[-98.90449218749995,68.93242187500005],[-99.25400390625002,68.86318359374997],[-99.49467773437493,68.95957031249998],[-99.455712890625,69.13120117187503],[-98.45595703124997,69.33466796875001],[-98.54599609375,69.57290039062497],[-98.04135742187498,69.456640625],[-98.20048828124996,69.79697265625006],[-97.79072265624998,69.86162109374999],[-97.439453125,69.64267578125006]]],[[[-86.91303710937501,70.11323242187501],[-86.55766601562499,69.99531249999995],[-87.3232421875,70.08012695312502],[-86.91303710937501,70.11323242187501]]],[[[-74.70888671874997,45.0038574218751],[-74.76245117187494,44.99907226562502],[-74.99614257812496,44.970117187499966],[-75.40126953124997,44.77226562499999],[-75.81933593749997,44.468017578125],[-76.18579101562503,44.24223632812502],[-76.819970703125,43.62880859375011],[-77.59653320312492,43.62861328125007],[-78.45825195312497,43.63149414062511],[-78.72041015624993,43.62495117187501],[-78.84555664062492,43.58334960937506],[-79.171875,43.466552734375085],[-79.0830566406249,43.33139648437509],[-79.05922851562494,43.27807617187506],[-79.066064453125,43.10610351562502],[-79.02617187499996,43.01733398437506],[-78.98076171874993,42.98061523437502],[-78.91508789062496,42.90913085937504],[-79.17373046875,42.74853515625],[-80.24755859374991,42.366015625000045],[-81.02822265624997,42.247167968750006],[-81.50732421874997,42.10346679687504],[-81.97416992187496,41.88872070312499],[-82.43906249999989,41.6748535156251],[-82.69003906249995,41.675195312499994],[-83.141943359375,41.97587890624996],[-83.10952148437497,42.25068359375001],[-82.54531249999997,42.62470703124998],[-82.19038085937495,43.47407226562501],[-82.137841796875,43.570898437500034],[-82.48505859374993,45.08374023437503],[-82.55107421874987,45.3473632812501],[-82.91933593749994,45.51796875000002],[-83.59267578125,45.81713867187506],[-83.46948242187503,45.99467773437499],[-83.61596679687503,46.116845703124994],[-83.97778320312494,46.08491210937507],[-84.12319335937497,46.50292968749997],[-84.44047851562496,46.49814453125006],[-84.66577148437503,46.54326171875002],[-84.87597656249994,46.89990234375003],[-85.07006835937497,46.97993164062498],[-85.65224609375,47.21997070312503],[-86.67216796874996,47.636425781249955],[-87.20800781249997,47.848486328125006],[-87.74389648437497,48.06054687500003],[-88.37817382812497,48.30307617187506],[-89.45566406249992,47.99624023437508],[-90.79731445312495,48.13105468750001],[-91.04345703124991,48.19370117187498],[-91.38720703124997,48.05854492187498],[-92.00517578125002,48.301855468750006],[-92.3484375,48.276611328125],[-92.41459960937493,48.276611328125],[-92.50058593749995,48.43535156250002],[-92.83671875,48.567773437499994],[-93.25795898437497,48.62885742187501],[-93.37788085937498,48.61655273437498],[-93.70771484374995,48.525439453125074],[-93.85161132812496,48.607275390625034],[-94.6208984374999,48.7426269531251],[-94.71279296874997,48.863427734374994],[-94.80346679687497,49.0029296875],[-94.86040039062493,49.258593750000045],[-94.85434570312495,49.304589843749994],[-95.15527343749997,49.3696777343751],[-95.16206054687493,48.991748046875045],[-95.39790039062493,48.99316406249997],[-96.25068359374993,48.99316406249997],[-96.67705078124993,48.99316406249997],[-97.52983398437493,48.99316406249997],[-98.80898437499995,48.99316406249997],[-104.77832031249997,48.993115234375125],[-110.7476562499999,48.993066406250136],[-116.71704101562493,48.993066406250136],[-118.84892578124993,48.993066406250136],[-119.27534179687494,48.993066406250136],[-119.70170898437495,48.99301757812495],[-120.98085937499995,48.99301757812495],[-122.78876953124994,48.99301757812495],[-122.82670898437495,49.028417968750034],[-122.9241699218749,49.07465820312504],[-122.96269531249993,49.07460937500005],[-123.06328125,48.97773437500001],[-123.22944335937493,49.260498046875085],[-122.87910156249995,49.39892578125003],[-123.27675781249997,49.34394531250001],[-123.1875,49.680322265624994],[-123.53056640624989,49.39731445312506],[-124.02861328125002,49.602880859375006],[-123.99262695312497,49.736181640625006],[-123.81718749999993,49.58657226562508],[-123.58247070312498,49.68125],[-123.87441406250005,49.736816406250114],[-123.82543945312493,50.14423828124998],[-123.94589843749995,50.18393554687509],[-123.9849121093749,49.87558593749998],[-124.28125,49.77211914062502],[-124.78237304687492,50.02011718749992],[-125.05668945312495,50.418652343750125],[-124.8598632812499,50.872412109375006],[-125.05878906249993,50.51386718749998],[-125.4763183593749,50.49716796874995],[-125.53935546874996,50.64902343749998],[-125.64130859374994,50.46621093750005],[-126.09433593749995,50.497607421875045],[-126.44746093750004,50.58774414062492],[-125.90410156250002,50.704931640625006],[-126.51435546875,50.679394531250125],[-126.37460937499995,50.83735351562498],[-126.5217773437499,50.86606445312498],[-126.51733398437497,51.0568359375001],[-126.63178710937494,50.915136718750006],[-127.057568359375,50.86752929687509],[-127.70810546875,51.15117187499996],[-127.41967773437496,51.608056640625136],[-126.69145507812502,51.70341796875002],[-127.33872070312489,51.70737304687495],[-127.66870117187497,51.47758789062502],[-127.85053710937498,51.67319335937509],[-127.79536132812493,52.19101562500006],[-127.43793945312504,52.356152343750125],[-127.24223632812496,52.39511718750009],[-126.71396484374989,52.060693359374994],[-127.19399414062498,52.45766601562502],[-126.95136718749994,52.7510253906251],[-127.01933593750002,52.8424804687501],[-127.06621093749989,52.65268554687498],[-127.79189453124994,52.28935546875002],[-128.10224609374993,51.78842773437495],[-128.3576171875,52.1588867187501],[-128.0375,52.318164062500045],[-127.94023437499996,52.545166015625085],[-128.27153320312493,52.3629882812501],[-128.05327148437487,52.91069335937496],[-128.3650390624999,52.82578125000006],[-128.52470703125002,53.1406738281251],[-129.08090820312492,53.36728515625006],[-129.1715820312499,53.53359375000002],[-128.8545898437499,53.70454101562504],[-128.90561523437492,53.559326171875114],[-128.5421386718749,53.420654296875114],[-128.13271484375002,53.417773437500045],[-127.92783203125,53.274707031250045],[-128.2072265624999,53.483203125000074],[-128.67553710937494,53.55458984375005],[-128.76367187500003,53.746875],[-128.5321289062499,53.85810546875007],[-128.959375,53.84145507812505],[-129.2578613281249,53.417968750000085],[-129.56372070312506,53.251464843750114],[-130.33525390625002,53.723925781250074],[-130.04331054687495,54.13354492187503],[-129.62602539062493,54.23027343750002],[-130.08422851562503,54.18139648437503],[-130.4302734375,54.42099609374998],[-129.56064453124995,55.46254882812508],[-129.79516601562503,55.559570312500114],[-130.04848632812494,55.05727539062511],[-130.01406249999997,55.950537109375006],[-130.09785156249995,56.10927734375002],[-130.41313476562487,56.12250976562507],[-130.47709960937496,56.230566406250034],[-130.649072265625,56.26367187500003],[-131.471875,56.55673828125006],[-131.82426757812496,56.58999023437508],[-131.86616210937495,56.792822265625006],[-132.1042968749999,56.85678710937509],[-132.062890625,56.95336914062503],[-132.33798828124992,57.07944335937498],[-132.27939453124998,57.14536132812506],[-132.23217773437494,57.198535156250074],[-132.30166015625005,57.2763183593751],[-132.44248046874986,57.40673828125003],[-132.55048828124995,57.499902343749994],[-133.00141601562495,57.948974609375],[-133.27529296875,58.22285156250004],[-133.54638671874997,58.50346679687499],[-134.21850585937503,58.849902343750045],[-134.32963867187505,58.93969726562506],[-134.39306640625,59.009179687499994],[-134.67724609374997,59.19926757812499],[-134.94375,59.28828125000001],[-135.05102539062491,59.57866210937502],[-135.36787109374998,59.743310546874994],[-135.70258789062504,59.72875976562506],[-136.3218261718749,59.604833984375034],[-136.27797851562494,59.48032226562506],[-136.46635742187493,59.459082031250006],[-136.57875976562494,59.15224609375002],[-136.81328125000002,59.15004882812511],[-137.12622070312491,59.04096679687507],[-137.2775390624999,58.988183593749994],[-137.43857421874995,58.903125],[-137.52089843749994,58.91538085937506],[-137.59331054687493,59.22626953124998],[-138.317626953125,59.611132812500074],[-138.86875,59.94575195312501],[-139.18515624999986,60.083593750000034],[-139.13696289062494,60.17270507812506],[-139.07924804687497,60.279443359375136],[-139.07924804687497,60.3437011718751],[-139.23476562499997,60.339746093749994],[-139.67631835937505,60.32832031249998],[-139.97329101562497,60.183154296875074],[-140.45283203125004,60.29970703125002],[-140.5254394531249,60.21835937499995],[-140.76274414062505,60.25913085937509],[-141.00214843750004,60.300244140625125],[-141.00214843750004,60.884667968749994],[-141.00214843750004,61.761279296875045],[-141.00214843750004,63.22226562499998],[-141.00214843750004,64.09887695312506],[-141.00214843750004,65.55991210937498],[-141.00214843750004,66.43652343750006],[-141.00214843750004,67.89755859374998],[-141.00214843750004,68.77416992187506],[-141.00214843750004,69.65078125000011],[-139.18154296874997,69.51552734375008],[-137.25996093749998,68.96411132812503],[-136.12236328124993,68.88222656250002],[-135.258837890625,68.68432617187503],[-135.93901367187487,68.9741699218751],[-135.575537109375,69.02695312500003],[-135.91020507812487,69.11147460937502],[-135.6914550781249,69.31118164062502],[-135.29282226562486,69.30786132812506],[-135.1408203124999,69.46782226562496],[-134.45683593749993,69.47763671875],[-134.40893554687494,69.68178710937502],[-133.87978515624997,69.50771484375011],[-134.17431640624991,69.25283203125005],[-133.16313476562496,69.43388671874999],[-132.91533203125002,69.62963867187506],[-132.40390625,69.65874023437496],[-132.48847656249993,69.73808593749996],[-132.16342773437498,69.70498046875014],[-131.13637695312497,69.90688476562505],[-130.66547851562495,70.12705078124998],[-129.944970703125,70.09091796875006],[-129.675634765625,70.19296875000009],[-129.64829101562495,69.9977539062501],[-130.83208007812487,69.65146484375006],[-131.9377929687499,69.5347167968751],[-132.8174804687499,69.20576171875004],[-133.41831054687492,68.84428710937493],[-133.138037109375,68.74658203125011],[-133.33666992187497,68.83525390625005],[-132.57763671874997,68.84780273437514],[-132.71894531249998,69.07919921875],[-131.78837890625002,69.43198242187495],[-131.32470703124997,69.36118164062509],[-131.06342773437504,69.45068359375003],[-130.97065429687495,69.20908203125],[-130.1176269531249,69.720068359375],[-128.89892578124994,69.96616210937506],[-129.15791015624995,69.80009765624999],[-129.05434570312502,69.70107421875005],[-128.85302734375003,69.7510253906251],[-127.68378906249994,70.26035156249995],[-128.17011718749998,70.41845703125],[-127.99101562499992,70.57382812500003],[-127.22597656249992,70.29614257812497],[-126.25043945312495,69.54526367187492],[-125.52495117187495,69.35156250000009],[-125.171875,69.42797851562503],[-125.35693359374991,69.62597656250003],[-124.767919921875,69.99003906249996],[-124.99038085937494,70.02661132812511],[-124.55502929687488,70.15122070312509],[-124.40693359374991,69.76743164062506],[-124.12460937499995,69.6899902343751],[-124.33808593749991,69.36484374999995],[-123.5284179687499,69.38935546874995],[-123.02578125,69.81000976562504],[-122.07006835937499,69.81616210937506],[-120.96245117187502,69.66040039062511],[-120.13999023437488,69.38056640625013],[-117.22695312499998,68.913427734375],[-116.05947265625,68.83701171875006],[-116.2434082031249,68.9740722656251],[-115.44228515624994,68.94091796875009],[-114.62016601562496,68.74609375],[-113.96440429687495,68.39907226562502],[-114.09594726562491,68.26679687500007],[-114.76528320312494,68.27021484375004],[-115.12705078124992,68.13203124999995],[-115.43447265624994,67.90234375000006],[-115.13320312499994,67.819189453125],[-112.50302734374993,67.6819335937501],[-110.9900390624999,67.79082031250007],[-110.07392578124995,67.99291992187506],[-109.63037109374991,67.73271484374996],[-109.03803710937504,67.69116210937503],[-108.85200195312497,67.42197265625009],[-108.61333007812493,67.59804687500008],[-107.98872070312495,67.2563964843751],[-107.99130859374995,67.09516601562513],[-108.49604492187493,67.09228515625006],[-107.25947265624998,66.39853515624995],[-107.71035156250001,66.74003906250007],[-107.7250976562499,66.98413085937506],[-107.15649414062497,66.88173828124997],[-107.9583984375,67.81860351562506],[-107.79829101562498,68.03691406249996],[-106.42426757812491,68.20058593750008],[-105.7501953125,68.59228515625011],[-106.45805664062496,68.51645507812495],[-106.60849609374988,68.35737304687504],[-107.61933593749994,68.3310546875],[-107.73417968749989,68.17373046875011],[-108.3228027343749,68.15410156250002],[-108.71811523437488,68.29746093750009],[-108.31347656249996,68.61079101562498],[-106.16445312499992,68.91987304687507],[-105.68559570312489,68.82817382812505],[-105.3774414062499,68.413818359375],[-104.65317382812488,68.23007812500003],[-104.48681640624991,68.06318359374998],[-103.47412109374993,68.11503906250005],[-102.32036132812489,67.73564453125005],[-101.55498046874992,67.69316406250007],[-100.21293945312489,67.83857421875004],[-98.92045898437502,67.72578124999998],[-98.41210937499991,67.80717773437505],[-98.63154296875004,68.0725585937501],[-97.45493164062486,67.61699218750002],[-97.20654296874989,67.85507812500003],[-97.73911132812495,67.97817382812505],[-98.19252929687494,67.92299804687502],[-98.65048828124989,68.36352539062506],[-98.21855468750002,68.31743164062507],[-97.7942382812499,68.38759765625],[-97.9250976562499,68.523681640625],[-97.41035156249993,68.49653320312498],[-96.97670898437497,68.25541992187505],[-96.43066406249991,68.3105957031251],[-96.72207031250005,68.03876953124998],[-95.9703125,68.24912109375],[-96.36914062499991,67.50976562500003],[-96.14145507812489,67.27182617187503],[-95.71992187499998,67.31679687500014],[-95.77768554687495,67.18461914062505],[-95.41591796875005,67.15556640624999],[-95.41889648437504,67.01323242187493],[-96.42255859374995,67.05175781249997],[-95.7875488281249,66.616796875],[-96.03686523437489,66.9375],[-95.39965820312503,66.94946289062509],[-95.25874023437493,67.26254882812492],[-95.65048828124986,67.73745117187505],[-95.46069335937503,68.02138671875],[-94.74443359374993,68.07089843749995],[-93.44892578124998,68.61889648437503],[-93.85244140624994,69.00034179687495],[-94.06489257812495,68.78476562500006],[-94.600439453125,68.80322265625011],[-94.08364257812497,69.12309570312507],[-94.254736328125,69.31376953125002],[-93.61948242187492,69.41699218750009],[-93.74853515624991,69.2261230468751],[-93.5322753906249,69.48090820312495],[-94.2708007812499,69.45512695312505],[-94.63383789062496,69.64965820312506],[-94.82250976562494,69.577783203125],[-95.96494140624989,69.80278320312499],[-96.5513671875,70.21030273437506],[-96.29770507812492,70.51137695312511],[-95.87861328124998,70.54897460937514],[-95.88632812499986,70.69428710937507],[-96.25800781249993,70.64228515625013],[-96.54892578124995,70.80874023437511],[-96.44658203124996,71.23989257812502],[-96.06201171874997,71.41386718749993],[-95.5642578124999,71.33676757812503],[-95.40625,71.49165039062498],[-95.87231445312494,71.57314453125005],[-94.73486328124994,71.98295898437507],[-94.30834960937491,71.76489257812506],[-93.74628906249998,71.742822265625],[-92.94868164062493,71.26210937500011],[-92.98144531249994,70.8522460937501],[-91.56406249999995,70.1782714843751],[-92.32050781250004,70.2353515625],[-92.51186523437494,70.10385742187503],[-91.976708984375,70.03867187500009],[-92.88779296874989,69.66821289062511],[-92.31166992187494,69.67290039062499],[-91.91196289062495,69.53125],[-91.20180664062494,69.64477539062494],[-91.43994140624997,69.52568359375002],[-90.4155761718749,69.45698242187507],[-90.89228515625004,69.26728515624995],[-91.23720703125005,69.28554687500014],[-90.47900390624994,68.88115234374999],[-90.57363281250005,68.47470703124998],[-90.20478515625004,68.25747070312511],[-89.27954101562491,69.25546875000003],[-88.22353515625,68.91503906249997],[-87.81357421874986,68.34570312499997],[-87.89267578125,68.24814453125],[-88.34697265624993,68.28828125000001],[-88.313818359375,67.95034179687508],[-87.359375,67.17724609374997],[-86.56079101562491,67.48212890625007],[-85.64316406249992,68.69970703124997],[-84.86757812499994,68.77333984375005],[-85.10664062499995,68.84404296875007],[-84.86220703125,69.07397460937503],[-85.38676757812493,69.23188476562504],[-85.50737304687487,69.84526367187493],[-82.61835937499993,69.69106445312514],[-82.39023437499989,69.60087890625007],[-82.75483398437493,69.49438476562506],[-82.30986328124996,69.41000976562509],[-82.22753906249997,69.24887695312495],[-81.37783203125005,69.18564453125003],[-81.95791015624991,68.88364257812498],[-81.38090820312496,68.85004882812504],[-81.28154296874987,68.65722656250003],[-81.91484374999993,68.4587890625001],[-82.55268554687504,68.44648437500007],[-82.22241210937489,68.145263671875],[-82.0125,68.19389648437496],[-81.97646484374997,67.86201171875001],[-81.2943359375,67.497412109375],[-81.46757812499996,67.0698730468751],[-83.40644531249998,66.37124023437508],[-84.53847656249994,66.97280273437505],[-84.84575195312502,67.02871093750008],[-85.11372070312498,66.90693359375013],[-84.73774414062504,66.93359375000006],[-84.223046875,66.68247070312506],[-83.86904296875,66.2135742187501],[-84.29306640624995,66.29179687500005],[-84.628076171875,66.20771484374998],[-85.603857421875,66.56826171875005],[-86.708154296875,66.52304687500009],[-86.68510742187502,66.36040039062499],[-85.95874023437491,66.11904296875002],[-87.45288085937503,65.33896484375009],[-87.96997070312503,65.34892578124999],[-89.7494140625,65.93603515625006],[-89.88969726562487,65.86855468749997],[-91.42724609374994,65.94790039062497],[-91.04111328124989,65.82983398437509],[-90.98344726562496,65.91923828124999],[-89.92407226562497,65.78027343750011],[-88.97402343749994,65.34829101562502],[-87.02753906249995,65.19809570312498],[-88.10561523437497,64.18330078125001],[-88.81772460937489,63.99223632812499],[-89.20063476562493,64.11376953125006],[-89.13154296874998,63.96850585937494],[-89.61582031249995,64.030615234375],[-89.8113281249999,64.18056640625],[-90.04165039062494,64.14086914062509],[-89.85571289062497,63.9569824218751],[-90.16816406250004,63.978759765625085],[-90.15473632812498,63.68964843749998],[-90.81191406249991,63.580908203125034],[-91.98222656249996,63.82241210937502],[-92.33842773437496,63.787646484375045],[-93.69633789062493,64.14716796875013],[-93.55981445312491,63.865283203125074],[-93.27021484374998,63.840869140625074],[-93.37851562499992,63.94848632812497],[-92.15688476562491,63.691699218750045],[-92.46508789062491,63.55507812500011],[-91.84184570312496,63.69755859374999],[-90.97006835937489,63.442773437500136],[-90.69858398437492,63.06386718750005],[-91.44897460937503,62.804052734375034],[-92.3612792968749,62.81938476562496],[-91.93583984374993,62.59238281250009],[-92.55141601562491,62.546728515625034],[-92.76596679687492,62.34995117187509],[-92.52797851562494,62.16840820312504],[-93.20537109374993,62.364941406250125],[-92.90551757812503,62.21513671874996],[-93.3330566406249,61.93291015625002],[-93.58178710937494,61.94204101562511],[-93.31201171874997,61.76728515625004],[-93.91274414062497,61.48144531250006],[-94.509375,60.60454101562493],[-94.76171874999991,60.498242187500125],[-94.78828124999998,59.26787109374993],[-94.95732421874996,59.068847656250085],[-94.28706054687493,58.716015625000125],[-94.33222656249998,58.297363281250114],[-94.12319335937494,58.73671875000008],[-93.1787597656249,58.72563476562496],[-92.43281249999993,57.3203125],[-92.7981445312499,56.921972656250034],[-90.89746093750003,57.25693359375006],[-88.94848632812489,56.85131835937503],[-88.07509765624997,56.46728515624994],[-87.48242187499991,56.021289062500045],[-85.55932617187491,55.54018554687508],[-85.21801757812491,55.348974609375034],[-85.3652832031249,55.07929687499998],[-85.06093749999997,55.285644531250085],[-83.91059570312493,55.314648437499955],[-82.39326171874998,55.067822265625125],[-82.219384765625,54.8134765625],[-82.42416992187486,54.2445800781251],[-82.14145507812492,53.81762695312497],[-82.29155273437496,53.03071289062507],[-81.5994140624999,52.432617187500085],[-81.82788085937489,52.22421875000009],[-81.46621093749994,52.204492187500136],[-80.588037109375,51.667236328125114],[-80.4433105468749,51.38857421875002],[-80.85122070312497,51.125],[-80.47832031249993,51.30732421874998],[-80.10356445312487,51.282861328125136],[-79.34790039062494,50.76264648437504],[-79.737451171875,51.186279296875],[-79.33867187500002,51.62817382812497],[-79.04052734375003,51.46376953125005],[-78.90317382812495,51.200292968750034],[-78.73134765624994,51.497460937499994],[-78.98164062499993,51.774560546875136],[-78.44809570312495,52.26137695312502],[-78.74414062499994,52.65537109374998],[-79.10034179687497,53.65664062500005],[-78.99604492187493,54.00249023437499],[-79.241796875,54.098876953125085],[-79.14672851562491,54.16923828125002],[-79.71235351562495,54.6718261718751],[-77.77529296874994,55.291259765625],[-76.60405273437496,56.19956054687495],[-76.52558593749998,56.8917968750001],[-76.80981445312497,57.65795898437506],[-77.15678710937496,58.018896484375034],[-78.51508789062493,58.68237304687503],[-77.76069335937498,59.38002929687505],[-77.72617187499995,59.67587890624992],[-77.34907226562495,59.57895507812509],[-77.48530273437493,59.684570312500114],[-77.28920898437494,60.0220214843751],[-77.58588867187498,60.088183593750074],[-77.45288085937497,60.1458007812501],[-77.6814453124999,60.427099609375034],[-77.503564453125,60.54272460937497],[-77.7908203124999,60.63984375000004],[-77.58955078124993,60.808593750000114],[-78.18134765624995,60.81914062499996],[-77.51435546874998,61.55629882812505],[-78.02138671874997,61.8320800781251],[-78.13339843749986,62.28227539062496],[-77.372412109375,62.572509765625114],[-75.81689453124991,62.31586914062507],[-75.7898437499999,62.17958984375002],[-75.3412109375,62.312109375],[-74.63256835937497,62.115673828125125],[-74.6458007812499,62.21113281250004],[-73.70507812499991,62.47314453124994],[-72.68696289062498,62.12456054687499],[-72.771630859375,61.840429687500006],[-72.50556640624998,61.922656250000074],[-72.22612304687487,61.83159179687499],[-72.04003906249991,61.68027343750006],[-72.21586914062502,61.58725585937495],[-71.86611328125,61.68852539062499],[-71.63828124999995,61.6171875],[-71.85439453124991,61.43979492187492],[-71.42270507812489,61.158935546875085],[-70.27929687499991,61.06865234374999],[-69.99243164062491,60.8564941406251],[-69.50332031249994,61.04042968750011],[-69.40473632812493,60.84677734375009],[-69.75947265624998,60.440234375000045],[-69.67373046874994,60.07587890625007],[-70.65483398437496,60.02622070312506],[-69.73393554687493,59.918017578125045],[-69.68188476562489,59.34174804687507],[-69.3440429687499,59.303076171875006],[-69.53164062499994,58.86923828125009],[-69.64838867187493,58.82080078125],[-69.78417968749994,58.95571289062511],[-70.15434570312496,58.76059570312498],[-69.78989257812486,58.689306640625034],[-69.27109374999986,58.88393554687505],[-68.69819335937495,58.904541015625],[-68.38115234374993,58.74350585937506],[-68.22939453124994,58.48457031250007],[-68.35654296874989,58.163232421875136],[-69.04082031249996,57.902490234375136],[-68.41357421874997,58.0517578125],[-68.02104492187493,58.48530273437504],[-67.88828124999989,58.29575195312495],[-68.06386718750005,58.13896484374999],[-67.75595703124992,58.4045898437501],[-67.6782714843749,57.99111328125008],[-67.5696289062499,58.21347656250006],[-66.72216796874991,58.49101562499996],[-66.36240234374989,58.791162109374994],[-66.0023925781249,58.43120117187502],[-66.04306640624995,58.82065429687495],[-65.72099609374996,59.02377929687495],[-65.38354492187494,59.06020507812508],[-65.7,59.21333007812501],[-65.4117187499999,59.31499023437496],[-65.47509765624994,59.47031249999998],[-65.03823242187494,59.38789062500007],[-65.40742187499993,59.53935546875002],[-65.4333984374999,59.776513671874994],[-65.02817382812495,59.77070312500007],[-65.17172851562489,59.90800781249996],[-64.81733398437498,60.3310546875],[-64.49941406250005,60.26826171875001],[-64.41958007812494,60.17138671874997],[-64.76845703124997,60.01210937500005],[-64.28349609374993,60.06406249999998],[-64.22631835937491,59.741210937500085],[-64.05605468750005,59.82255859374996],[-63.7501953124999,59.51259765625005],[-63.945458984374994,59.380175781250074],[-63.775878906249915,59.277148437500045],[-63.539892578124864,59.332861328125034],[-63.41513671874995,59.194384765625074],[-63.97114257812498,59.053808593750034],[-63.24843749999991,59.068310546874955],[-63.28212890624994,58.86738281250007],[-63.05029296874997,58.87817382812494],[-62.87387695312489,58.67246093749998],[-63.537060546874926,58.329931640625006],[-63.209960937499886,58.46694335937502],[-62.593847656249864,58.47402343750005],[-62.81206054687502,58.20039062500007],[-63.26152343749993,58.014697265625074],[-62.486230468749966,58.15405273437506],[-62.30566406249997,57.97226562499995],[-61.95864257812505,57.91176757812508],[-61.9679687499999,57.61191406250009],[-62.495556640624926,57.489208984375125],[-61.92114257812497,57.42080078125005],[-61.977441406249966,57.24794921875002],[-61.33374023437494,57.01059570312498],[-61.37163085937502,56.68081054687511],[-62.497265624999926,56.80170898437504],[-61.73774414062498,56.52602539062502],[-61.940429687499886,56.423583984375114],[-61.42529296874994,56.360644531250074],[-61.713085937499955,56.230957031250114],[-61.364697265624926,56.2160156250001],[-61.30112304687495,56.04716796874999],[-61.4495117187499,55.99570312499998],[-61.08935546874997,55.86635742187511],[-60.74326171874989,55.94145507812493],[-60.56210937499995,55.727001953125125],[-60.341015624999926,55.78466796874997],[-60.40830078124995,55.649560546874994],[-60.19238281249994,55.4809082031251],[-60.617138671874955,55.060205078124994],[-59.75878906249997,55.3095703125],[-59.68906249999989,55.19633789062502],[-59.43789062500005,55.175927734375136],[-59.837792968749994,54.813964843750114],[-59.25957031249996,55.19995117187506],[-58.99711914062496,55.149462890625074],[-58.780175781249994,54.838378906250114],[-58.39814453124998,54.77412109374998],[-57.96245117187493,54.875732421875085],[-57.40449218750004,54.59086914062496],[-57.69926757812496,54.38657226562506],[-58.435205078124966,54.228125],[-58.63320312499999,54.04956054687497],[-59.8230468749999,53.83442382812504],[-60.14492187499994,53.59614257812498],[-60.395410156249994,53.653320312500085],[-60.1002929687499,53.48696289062511],[-60.329492187499966,53.26611328125006],[-58.652050781249926,53.97788085937495],[-57.935986328124955,54.09116210937492],[-58.31748046874989,54.11445312500007],[-58.192089843749926,54.228173828125136],[-57.4160644531249,54.162744140625136],[-57.134960937499926,53.79184570312506],[-57.524072265624966,53.61142578125006],[-57.331738281249955,53.469091796875034],[-56.84086914062496,53.73945312500004],[-56.46499023437505,53.76503906250011],[-55.96611328125002,53.4711425781251],[-55.79794921874995,53.211962890625045],[-55.80283203124989,52.64316406249998],[-56.324902343749926,52.54453124999998],[-55.74648437499994,52.4745605468751],[-55.7771484374999,52.3642578125],[-56.01171874999997,52.394482421875125],[-55.695214843749994,52.13779296875006],[-56.97597656250005,51.45766601562505],[-58.510351562500006,51.295068359375136],[-59.88632812499992,50.316406250000085],[-61.72485351562503,50.10405273437499],[-61.91953124999989,50.2328613281251],[-62.71542968749995,50.30166015625008],[-66.49550781249991,50.2118652343751],[-66.94116210937503,49.993701171875045],[-67.37202148437495,49.348437500000045],[-68.28193359374998,49.197167968750136],[-69.67387695312496,48.19916992187504],[-71.01826171874993,48.455615234375045],[-69.86552734374993,48.17226562500005],[-69.775,48.09809570312504],[-69.9944335937499,47.73989257812508],[-70.70585937499996,47.13979492187505],[-71.26777343749995,46.79594726562499],[-71.87958984374998,46.68681640624996],[-72.98100585937493,46.209716796875085],[-73.4766113281249,45.738232421874955],[-74.03784179687494,45.501855468750136],[-74.31508789062494,45.531054687500045],[-73.97382812499995,45.345117187499994],[-74.70888671874997,45.0038574218751]]],[[[-96.78232421874998,72.93662109375],[-97.0927734375,72.99692382812503],[-96.86240234374995,73.18881835937506],[-96.78232421874998,72.93662109375]]],[[[-114.52153320312502,72.592919921875],[-113.57807617187501,72.65209960937506],[-113.2923828125,72.94980468750003],[-112.75361328125001,72.98603515624995],[-111.26972656249994,72.71372070312498],[-111.895166015625,72.35610351562497],[-111.67509765625002,72.30014648437503],[-110.20512695312495,72.66127929687497],[-110.66083984374998,73.00820312500002],[-110.00844726562494,72.983642578125],[-108.75498046875002,72.55107421874999],[-108.18823242187501,71.72377929687502],[-107.812841796875,71.62617187500004],[-107.30600585937496,71.89467773437502],[-108.23740234374999,73.14990234375003],[-108.029052734375,73.34873046875003],[-106.48212890624998,73.19619140624997],[-105.41513671874995,72.788330078125],[-104.38593749999997,71.57695312500005],[-104.51479492187502,71.06425781250005],[-103.58457031249995,70.63085937500003],[-103.07719726562497,70.50883789062505],[-103.04956054687503,70.65507812499999],[-101.67631835937495,70.27827148437495],[-101.56240234375001,70.135009765625],[-101.04267578125,70.11079101562504],[-100.98237304687497,69.67988281250001],[-101.483837890625,69.85019531250006],[-101.64765624999997,69.69853515625007],[-102.18212890624997,69.845947265625],[-102.59589843749997,69.71791992187502],[-102.62109374999996,69.55151367187506],[-103.464892578125,69.64448242187498],[-103.04892578124999,69.47177734375006],[-103.12021484374995,69.20458984374997],[-102.44677734374997,69.476318359375],[-102.04594726562493,69.46484374999997],[-101.85712890625001,69.02397460937505],[-102.89506835937499,68.8236328125],[-104.57143554687501,68.87211914062502],[-105.105859375,68.92041015625],[-105.019580078125,69.08125],[-106.27016601562497,69.19458007812497],[-106.65908203124997,69.439599609375],[-107.43989257812497,69.00214843749995],[-108.36499023437497,68.93476562499998],[-109.47211914062501,68.67670898437498],[-113.12773437500002,68.49414062500003],[-113.61684570312501,68.8384765625],[-113.69414062499995,69.19501953124998],[-115.61811523437495,69.28295898437506],[-116.51347656249993,69.42460937500005],[-117.19541015624995,70.05405273437503],[-114.59233398437497,70.31245117187498],[-112.63789062499997,70.225244140625],[-111.63256835937497,70.30883789062497],[-113.75727539062503,70.69072265625005],[-115.99091796874997,70.586279296875],[-117.58706054687498,70.62954101562502],[-118.2640625,70.888330078125],[-118.26909179687493,71.03471679687505],[-115.30341796874997,71.49370117187505],[-117.93564453125003,71.39208984375003],[-118.22646484374995,71.46708984375005],[-117.742333984375,71.65932617187502],[-118.58300781250003,71.64902343749998],[-118.98769531249997,71.7642578125],[-118.94462890624997,71.98554687499995],[-118.21347656249998,72.26289062499998],[-118.481298828125,72.42768554687498],[-118.13310546874995,72.63281250000003],[-114.63823242187499,73.37265625000003],[-114.20639648437495,73.29780273437495],[-114.05170898437497,73.07099609375004],[-114.52153320312502,72.592919921875]]],[[[-105.28891601562499,72.919921875],[-106.92153320312497,73.479833984375],[-106.61396484375001,73.69560546875002],[-105.31796874999995,73.76713867187502],[-104.5875,73.57807617187495],[-104.62172851562495,73.3111328125],[-105.28891601562499,72.919921875]]],[[[-79.53730468749998,73.65449218749998],[-78.2865234375,73.66582031250007],[-77.20654296874997,73.49956054687505],[-76.18339843749999,72.84306640625005],[-77.83593750000003,72.89682617187498],[-79.3193359375,72.75771484375],[-79.820703125,72.82631835937502],[-80.18330078124995,73.22465820312499],[-80.77641601562502,73.33417968750001],[-80.84887695312503,73.72124023437499],[-79.53730468749998,73.65449218749998]]],[[[-86.58935546874997,71.01079101562507],[-85.64384765624999,71.15244140624998],[-85.09487304687497,71.15195312500006],[-84.82373046874997,71.02861328125005],[-84.69941406249995,71.63144531250003],[-85.33906249999998,71.69726562500003],[-85.91162109375,71.98652343749998],[-85.321875,72.23315429687506],[-84.28374023437499,72.04448242187499],[-84.84199218749995,72.30815429687505],[-84.62304687500003,72.37656250000003],[-85.34111328124993,72.42153320312497],[-85.64990234374997,72.72216796875003],[-85.26210937500002,72.95400390625],[-84.25664062499999,72.79672851562503],[-85.454736328125,73.10546875000003],[-84.41606445312496,73.45649414062495],[-83.781884765625,73.41689453125],[-83.72983398437495,73.57587890624995],[-81.946142578125,73.72983398437506],[-81.40615234374997,73.634521484375],[-80.27724609375,72.77016601562502],[-81.229345703125,72.31171874999998],[-80.61147460937497,72.450830078125],[-80.925146484375,71.90766601562501],[-80.18193359374996,72.20878906250007],[-79.884375,72.17719726562501],[-80.10893554687499,72.33217773437497],[-79.83129882812503,72.44628906250003],[-79.000244140625,72.27202148437507],[-79.00781250000003,72.04291992187501],[-78.58510742187497,71.880615234375],[-78.86274414062495,72.100830078125],[-78.69926757812496,72.35141601562498],[-77.51650390624997,72.17778320312505],[-78.48427734374994,72.47060546875002],[-77.75322265624996,72.72475585937502],[-75.70429687499998,72.57153320312497],[-75.05268554687493,72.22636718749999],[-75.92280273437501,71.71723632812501],[-74.90317382812503,72.10048828125002],[-74.20932617187498,71.978662109375],[-74.31572265624999,71.84267578125],[-75.20478515625001,71.70913085937497],[-74.70078125,71.67558593750005],[-74.99619140624998,71.21811523437503],[-74.48808593750002,71.64838867187501],[-73.8140625,71.77143554687495],[-74.197265625,71.404150390625],[-73.71284179687498,71.58759765624998],[-73.18061523437501,71.282861328125],[-73.27822265625,71.53798828125],[-72.901953125,71.67778320312507],[-71.64067382812499,71.51625976562502],[-71.22939453124997,71.33876953125],[-71.49501953124997,71.10512695312502],[-71.93793945312498,71.09428710937502],[-72.63271484374994,70.83076171874998],[-71.74252929687495,71.046875],[-71.370849609375,70.97514648437499],[-70.82607421874994,71.10874023437503],[-70.67265625,71.05219726562498],[-70.76171874999997,70.79223632812503],[-71.89018554687502,70.43154296875002],[-71.27587890625,70.50029296874999],[-71.42944335937503,70.12778320312503],[-70.97978515624999,70.5810546875],[-69.94980468750003,70.84501953125005],[-68.49575195312502,70.61025390625],[-68.363525390625,70.48125],[-70.05771484375,70.042626953125],[-68.77822265625,70.20356445312501],[-69.00830078124997,69.97895507812501],[-68.74404296874997,69.94140625],[-68.05908203124997,70.317236328125],[-67.36367187499994,70.03442382812503],[-67.22163085937495,69.73071289062506],[-68.02041015625,69.77006835937499],[-69.25078124999999,69.51191406249998],[-68.51303710937498,69.57729492187497],[-67.236962890625,69.460107421875],[-66.71674804687495,69.31186523437498],[-66.70742187500002,69.16821289062503],[-68.40629882812499,69.23222656250002],[-69.040625,69.09799804687503],[-68.41552734375,69.17207031250001],[-67.8326171875,69.06596679687499],[-67.88320312500002,68.78398437499999],[-69.31909179687497,68.85698242187505],[-68.21040039062495,68.702978515625],[-67.9384765625,68.524169921875],[-66.74272460937502,68.45776367187497],[-67.032958984375,68.32607421874997],[-66.923095703125,68.06572265625005],[-66.72900390624997,68.12900390625006],[-66.66269531249995,68.03442382812497],[-66.63095703124998,68.21064453124998],[-66.21240234374997,68.280419921875],[-66.44394531249998,67.83383789062506],[-65.94238281250003,68.07094726562505],[-65.86435546875003,67.92285156249997],[-65.50908203124996,67.96826171875],[-65.40126953125002,67.67485351562499],[-65.41533203124996,67.87924804687498],[-64.92231445312495,68.03164062500002],[-65.02109375,67.78754882812495],[-64.63779296875,67.84023437500002],[-63.850195312500034,67.56606445312502],[-64.00795898437502,67.34731445312497],[-64.69995117187494,67.35053710937501],[-63.83623046874993,67.26411132812498],[-63.59160156250002,67.3775390625],[-63.040136718750034,67.235009765625],[-63.70156249999994,66.82236328125003],[-62.962304687499966,66.94926757812505],[-62.37973632812495,66.90537109375],[-62.12358398437499,67.046728515625],[-61.35341796874994,66.689208984375],[-61.52783203124994,66.55810546875003],[-62.12333984374993,66.64306640625003],[-61.57080078125,66.37290039062506],[-61.95634765624993,66.30932617187497],[-62.553125,66.40683593750003],[-62.53359374999994,66.22700195312498],[-61.99160156250002,66.03530273437502],[-62.624121093750006,66.01625976562505],[-62.381982421874966,65.83330078124999],[-62.65888671874998,65.63994140625002],[-63.16894531249997,65.65732421875],[-63.45874023437494,65.85302734375],[-63.42089843749997,65.70859374999998],[-63.651074218749955,65.66098632812506],[-63.33745117187493,65.61674804687502],[-63.36337890624998,65.22973632812503],[-63.606591796874966,64.92807617187503],[-64.345703125,65.17241210937499],[-64.26967773437497,65.40078124999997],[-64.55507812500002,65.1166015625],[-65.401611328125,65.764013671875],[-64.44536132812496,66.31713867187497],[-65.0044921875,66.07773437500003],[-65.82573242187499,65.996923828125],[-65.65634765625003,66.204736328125],[-66.06372070312497,66.13271484374997],[-66.986328125,66.62749023437505],[-67.07685546874995,66.52548828125006],[-67.30732421874993,66.5697265625],[-67.22539062499993,66.31025390624998],[-67.88339843749995,66.46743164062502],[-67.18320312499995,66.03442382812503],[-67.350439453125,65.92973632812502],[-67.82802734374997,65.96518554687503],[-68.45991210937498,66.249267578125],[-68.74892578125,66.200048828125],[-68.21718750000002,66.078857421875],[-68.18671874999993,65.87099609375002],[-67.86645507812497,65.773681640625],[-67.936767578125,65.56489257812501],[-67.56962890624999,65.64355468749997],[-67.11796874999999,65.44038085937495],[-67.3365234375,65.34658203125005],[-66.69741210937502,64.81518554687506],[-66.63549804687503,65.00034179687503],[-66.21464843749999,64.72241210937497],[-65.93852539062496,64.88574218750003],[-65.2748046875,64.63154296875004],[-65.52934570312499,64.50478515624997],[-65.074609375,64.43666992187502],[-65.21298828125003,64.30327148437502],[-65.580322265625,64.29384765624997],[-65.16987304687495,64.02817382812503],[-64.67846679687503,64.027978515625],[-64.79814453124999,63.91596679687498],[-64.4109375,63.70634765625002],[-64.66464843749995,63.24536132812497],[-65.19184570312498,63.764257812500006],[-65.06894531249998,63.26347656250002],[-64.67236328125003,62.921972656250006],[-65.16279296875001,62.93261718750003],[-65.10849609374998,62.62646484375],[-66.22402343749994,63.10717773437497],[-66.228662109375,62.99096679687503],[-66.41445312500002,63.027197265625034],[-66.65498046874998,63.264746093750006],[-66.69746093749993,63.069531249999955],[-67.89326171874993,63.733740234375006],[-67.72255859374997,63.422753906249966],[-68.49375,63.725488281249994],[-68.91108398437498,63.703222656250006],[-68.141259765625,63.17231445312501],[-67.67597656249998,63.093554687500045],[-67.73696289062497,63.00957031249999],[-65.98017578125001,62.20888671875002],[-66.12387695312498,61.89306640625],[-68.53588867187503,62.25561523437506],[-69.12558593749998,62.423974609374966],[-69.604736328125,62.76772460937502],[-70.23613281250002,62.76337890625001],[-70.801416015625,62.91049804687506],[-71.10576171874999,63.00224609375002],[-70.94604492187497,63.12070312499998],[-71.34726562499998,63.066113281249955],[-71.99223632812493,63.41616210937505],[-71.380859375,63.580322265625],[-72.29013671874995,63.72797851562498],[-72.17426757812498,63.893408203125006],[-72.49843749999994,63.82348632812497],[-73.45454101562495,64.39926757812503],[-73.27128906250002,64.58251953125],[-73.91035156249998,64.578125],[-74.064794921875,64.42465820312498],[-74.13046874999998,64.6078125],[-74.46123046874996,64.64467773437505],[-74.68139648437497,64.8306640625],[-74.91943359374997,64.76552734374997],[-74.69472656250002,64.49658203124997],[-75.71503906249995,64.52436523437495],[-75.76669921875,64.39194335937498],[-76.85615234374998,64.23764648437498],[-77.76049804687503,64.36015624999999],[-78.04521484374993,64.499267578125],[-78.09560546875,64.93925781250002],[-77.36088867187496,65.19653320312503],[-77.32670898437493,65.453125],[-75.82832031249993,65.22705078125003],[-75.45209960937495,64.84160156250002],[-75.35712890624995,65.00874023437495],[-75.79868164062503,65.297509765625],[-75.16630859374999,65.28393554687497],[-74.13847656250002,65.50346679687502],[-73.55078125000003,65.48525390625005],[-74.41640624999997,66.16708984375003],[-73.03325195312502,66.72817382812505],[-72.78881835937494,67.030615234375],[-72.22001953124999,67.25429687500002],[-73.28447265624993,68.35698242187505],[-73.82050781249998,68.36293945312502],[-73.82211914062495,68.68598632812501],[-74.11796875000002,68.70092773437506],[-73.9892578125,68.54863281250002],[-74.2701171875,68.54121093750001],[-74.89296875,68.80815429687505],[-74.71669921874997,69.04550781249998],[-76.58505859375,68.69873046875003],[-76.55722656250003,69.00947265625001],[-75.9537109375,69.03081054687502],[-75.64775390625002,69.212548828125],[-76.46494140624995,69.46943359375001],[-76.23408203125001,69.66210937500003],[-76.742333984375,69.57290039062497],[-77.08994140625,69.63510742187503],[-76.85859374999995,69.775390625],[-77.591650390625,69.84560546875002],[-77.77402343750003,70.23852539062503],[-78.28281250000003,70.229150390625],[-79.06640624999997,70.60356445312507],[-79.40522460937498,70.40073242187503],[-78.86284179687499,70.24189453125001],[-78.88964843750003,69.97749023437495],[-79.51542968749996,69.88759765625005],[-81.65195312500003,70.09462890625002],[-80.92172851562503,69.73090820312501],[-81.56469726562503,69.94272460937498],[-82.29384765624997,69.83691406250003],[-83.14995117187493,70.00908203125002],[-83.85908203124998,69.96274414062498],[-85.43237304687497,70.11137695312507],[-85.780029296875,70.03666992187505],[-86.32202148437503,70.14541015625],[-86.396875,70.46533203124997],[-87.838134765625,70.24658203125],[-88.78271484374997,70.49448242187503],[-89.45590820312498,71.06171874999995],[-87.84492187499995,70.94438476562505],[-87.14008789062498,71.01162109374997],[-89.80537109374993,71.46230468750005],[-89.86152343750001,72.41191406250005],[-88.70517578124998,73.40327148437495],[-87.71977539062496,73.72290039062497],[-85.95078124999998,73.85014648437505],[-84.94677734375,73.72163085937498],[-86.00053710937499,73.31254882812505],[-86.65629882812502,72.72402343750005],[-86.21845703124998,71.89912109375004],[-85.02338867187495,71.35322265625001],[-86.58935546874997,71.01079101562507]]],[[[-100.00190429687497,73.9458984375],[-99.15795898437499,73.73159179687497],[-97.66997070312499,73.88774414062499],[-97.1705078125,73.82485351562497],[-97.001708984375,73.66650390625003],[-97.62587890624997,73.50229492187498],[-97.27250976562502,73.38681640624998],[-98.42177734375002,72.94101562500003],[-97.63632812499998,73.02763671874999],[-97.128125,72.62758789062502],[-96.59208984374996,72.71025390624999],[-96.44560546874996,72.55244140624998],[-96.80146484374998,72.32241210937502],[-96.61342773437494,71.83383789062506],[-97.58227539062497,71.62968750000005],[-98.18134765624998,71.66245117187503],[-98.32270507812501,71.85234375000002],[-98.19863281249994,71.44086914062501],[-98.66289062499993,71.302099609375],[-99.22363281249996,71.387109375],[-100.594482421875,72.15234375000003],[-101.20854492187495,72.31699218749998],[-101.72392578124996,72.31489257812501],[-102.70874023437496,72.76450195312503],[-102.20400390624998,73.077294921875],[-101.27319335937497,72.7216796875],[-100.48476562500002,72.77294921874997],[-100.395703125,72.97700195312498],[-100.128125,72.90668945312495],[-100.53637695312497,73.19785156250003],[-99.82514648437503,73.2138671875],[-100.36611328125001,73.359033203125],[-100.88935546875003,73.27534179687501],[-101.52319335937501,73.48637695312502],[-100.97578124999995,73.59975585937502],[-100.5216796875,73.44931640625],[-100.96298828125002,73.79140625],[-99.99111328125,73.79516601562503],[-100.00190429687497,73.9458984375]]],[[[-98.270361328125,73.86850585937498],[-98.97392578124997,73.81206054687502],[-99.4169921875,73.89541015625002],[-97.69824218749997,74.10869140625005],[-98.270361328125,73.86850585937498]]],[[[-93.17084960937498,74.16098632812506],[-92.22270507812502,73.97236328124998],[-90.62744140625,73.95170898437505],[-90.38139648437496,73.82475585937502],[-92.11791992187497,72.75380859375],[-94.21132812499997,72.75693359375],[-93.77055664062496,72.66821289062506],[-93.55517578124994,72.42114257812497],[-94.03754882812498,72.02875976562498],[-95.00786132812496,72.01279296875],[-95.60214843749998,72.88447265624995],[-95.63291015625003,73.69545898437497],[-94.697607421875,73.66357421874997],[-95.134130859375,73.88125],[-94.97353515625,74.04140625000002],[-93.17084960937498,74.16098632812506]]],[[[-119.73632812499997,74.11264648437498],[-119.20595703125002,74.19799804687503],[-119.11796874999995,74.01552734375],[-118.54399414062499,74.24462890625003],[-117.51484375000001,74.23173828124999],[-115.51069335937501,73.61875],[-115.446875,73.43886718750002],[-118.96157226562497,72.68413085937499],[-119.51284179687501,72.30268554687501],[-120.17988281250001,72.21264648437506],[-120.61933593750001,71.50576171875002],[-121.47216796875003,71.38901367187503],[-121.74936523437502,71.44477539062501],[-123.09565429687503,71.09379882812502],[-124.00776367187494,71.67744140624998],[-125.29667968749999,71.973046875],[-125.84531250000002,71.978662109375],[-123.79726562499997,73.76816406250003],[-124.69624023437497,74.34819335937499],[-121.50415039062497,74.54511718749998],[-119.56264648437494,74.23281250000002],[-119.73632812499997,74.11264648437498]]],[[[-97.35551757812496,74.52631835937495],[-97.75,74.51054687500005],[-97.41650390624994,74.62656250000003],[-97.35551757812496,74.52631835937495]]],[[[-95.306640625,74.50541992187505],[-95.850732421875,74.58247070312504],[-95.51020507812498,74.63676757812499],[-95.306640625,74.50541992187505]]],[[[-104.11992187499995,75.03632812500004],[-104.88740234374998,75.14775390624999],[-104.34619140624996,75.42993164062503],[-103.64350585937497,75.18657226562499],[-104.11992187499995,75.03632812500004]]],[[[-93.54257812499995,75.0279296875],[-93.57309570312495,74.66884765625005],[-94.53452148437498,74.63671874999997],[-96.59960937499997,75.03178710937499],[-95.95463867187493,75.44379882812501],[-94.878173828125,75.63002929687502],[-93.90908203125002,75.42250976562502],[-93.54257812499995,75.0279296875]]],[[[-96.07856445312495,75.510107421875],[-96.91513671875003,75.37968749999999],[-96.98281249999997,75.50981445312505],[-96.367822265625,75.65463867187506],[-96.07856445312495,75.510107421875]]],[[[-94.52656249999995,75.74931640624999],[-94.901220703125,75.93076171875],[-94.53789062499996,75.99643554687506],[-94.52656249999995,75.74931640624999]]],[[[-118.328125,75.57968749999998],[-118.81713867187503,75.52211914062497],[-119.39458007812499,75.617333984375],[-117.63369140624998,76.11508789062498],[-118.328125,75.57968749999998]]],[[[-79.0630859375,75.92587890624998],[-79.63876953124995,75.84291992187505],[-79.00932617187499,76.14589843750005],[-79.0630859375,75.92587890624998]]],[[[-102.22734374999995,76.014892578125],[-102.00800781250003,75.93940429687498],[-102.57958984375003,75.78022460937498],[-103.31474609374996,75.76420898437499],[-103.04150390624999,75.91884765624997],[-103.98525390624997,75.93310546875003],[-103.80078124999994,76.03701171874997],[-104.24248046874996,76.04697265625006],[-104.35063476562497,76.18232421875001],[-102.72802734374999,76.30703125],[-102.22734374999995,76.014892578125]]],[[[-104.02285156249998,76.58310546875003],[-103.05131835937495,76.44985351562497],[-103.31137695312499,76.34755859375],[-104.35751953124995,76.33461914062502],[-104.58569335937499,76.60649414062499],[-104.07451171875003,76.66611328124998],[-104.02285156249998,76.58310546875003]]],[[[-97.70092773437497,76.46650390624998],[-97.89052734374997,75.7603515625],[-97.40751953124999,75.67250976562497],[-97.33603515624998,75.41982421875],[-97.65332031249997,75.50776367187498],[-97.87822265624996,75.41611328125003],[-97.67431640624997,75.127294921875],[-98.04531249999997,75.20083007812497],[-98.12094726562503,75.03271484375],[-100.234375,75.00771484374997],[-100.48349609374995,75.18842773437501],[-100.14570312499995,75.24614257812505],[-100.71191406250003,75.40634765625],[-99.19458007812499,75.698388671875],[-102.58740234375001,75.51367187500003],[-102.79750976562501,75.59965820312505],[-102.14472656249998,75.87504882812502],[-100.97280273437498,75.79843750000003],[-101.414990234375,75.84584960937502],[-101.87211914062496,76.08310546875003],[-101.52895507812495,76.21728515625003],[-102.1046875,76.33120117187505],[-101.41518554687495,76.42490234375003],[-99.86547851562499,75.92421875],[-100.11284179687502,76.11723632812507],[-99.54106445312497,76.14628906250005],[-100.41420898437495,76.242529296875],[-99.97773437500003,76.31245117187495],[-100.82973632812497,76.52387695312495],[-99.8140625,76.6322265625],[-98.89033203125,76.46557617187497],[-98.71083984374994,76.69384765625003],[-97.70092773437497,76.46650390624998]]],[[[-101.22612304687497,76.57934570312497],[-101.61308593749995,76.60458984375006],[-100.26914062499998,76.73413085937497],[-101.22612304687497,76.57934570312497]]],[[[-108.29238281250001,76.05712890625],[-107.72348632812502,75.99541015625002],[-108.020703125,75.80478515625],[-107.21621093749997,75.89155273437501],[-106.91352539062503,75.67963867187501],[-106.67700195312499,76.02373046875002],[-105.63266601562493,75.94536132812505],[-105.51948242187497,75.63237304687505],[-106.09262695312495,75.08945312500003],[-107.15341796874996,74.9271484375],[-108.47475585937495,74.94721679687501],[-108.83129882812501,75.06489257812498],[-112.51933593749997,74.41684570312503],[-113.67158203124997,74.45302734375005],[-114.31269531250003,74.71508789062506],[-112.835986328125,74.9755859375],[-111.67109375,75.01943359374997],[-111.09345703125001,75.25629882812498],[-113.71176757812499,75.06860351562503],[-113.85332031249996,75.259375],[-113.46708984374996,75.41611328125003],[-114.01650390624998,75.43427734375001],[-114.16845703124994,75.23950195312503],[-114.51381835937497,75.27548828125],[-114.45175781250002,75.08789062499997],[-115.02011718749999,74.97617187500003],[-115.41318359374995,75.11499023437497],[-115.72885742187496,74.968115234375],[-116.47607421874996,75.17177734375],[-117.56523437499997,75.23334960937504],[-117.25761718750002,75.45952148437502],[-116.07714843749996,75.49296874999999],[-115.14184570312501,75.67851562500005],[-116.42563476562498,75.58535156249997],[-117.16362304687496,75.64487304687503],[-116.80214843749995,75.77158203124998],[-114.99150390625002,75.896337890625],[-116.66455078124999,75.95756835937505],[-116.20986328125,76.19443359374998],[-114.77861328124999,76.17260742187497],[-115.82216796874997,76.27001953125003],[-114.99848632812503,76.4974609375],[-114.19394531249999,76.45146484375005],[-113.82348632812501,76.20683593750002],[-112.69760742187496,76.20170898437505],[-111.05268554687495,75.54853515625001],[-108.94716796875,75.54179687499999],[-108.94477539062495,75.69897460937503],[-109.8705078125,75.929052734375],[-109.48681640624999,76.14467773437497],[-110.31445312500001,76.369384765625],[-109.09824218749996,76.811865234375],[-108.46699218749997,76.73759765625007],[-108.29238281250001,76.05712890625]]],[[[-89.72646484374994,76.50742187499998],[-90.55625,76.73457031249998],[-90.13632812499995,76.83696289062505],[-89.69541015625,76.74116210937498],[-89.72646484374994,76.50742187499998]]],[[[-113.56069335937494,76.74326171874998],[-114.83525390624999,76.79467773437497],[-113.89165039062495,76.89487304687503],[-113.56069335937494,76.74326171874998]]],[[[-94.29497070312493,76.91245117187498],[-93.23002929687496,76.77026367187497],[-93.53457031250002,76.44770507812498],[-92.99536132812494,76.62041015624999],[-91.305029296875,76.68076171875003],[-90.54262695312494,76.495751953125],[-91.41508789062496,76.45585937500005],[-89.28452148437498,76.30161132812506],[-89.40659179687498,76.18916015624998],[-91.40732421874998,76.22006835937506],[-89.27758789062497,75.79506835937497],[-89.64604492187499,75.5650390625],[-88.91669921874998,75.45395507812503],[-88.64497070312495,75.65844726562503],[-88.201318359375,75.51201171875005],[-87.72973632812503,75.57563476562495],[-87.53911132812502,75.48486328125003],[-87.25693359374998,75.61772460937499],[-85.95146484374993,75.39501953125],[-85.97299804687498,75.5287109375],[-83.931982421875,75.81894531250003],[-83.23710937499993,75.75083007812503],[-82.153662109375,75.83105468750003],[-80.32197265624998,75.62910156250001],[-79.50908203125002,75.25981445312499],[-80.38198242187494,75.03417968750003],[-79.40141601562502,74.91762695312502],[-79.944482421875,74.83364257812505],[-80.34775390624998,74.90297851562505],[-80.26274414062499,74.58447265625],[-81.94018554687494,74.47270507812505],[-82.73579101562495,74.53027343749997],[-83.5220703125,74.90146484375],[-83.53188476562494,74.58569335937497],[-84.42553710937503,74.50810546875007],[-85.06142578125,74.60693359375003],[-85.133447265625,74.517431640625],[-85.44233398437495,74.6005859375],[-85.80800781249994,74.49897460937498],[-88.42304687499995,74.49414062499997],[-88.53496093749993,74.83173828125001],[-89.55869140624995,74.55473632812507],[-90.55327148437499,74.61274414062498],[-90.88022460937498,74.8177734375],[-91.13457031250002,74.64985351562498],[-91.54912109375002,74.65556640624999],[-92.3892578125,75.263330078125],[-92.18510742187499,75.84653320312498],[-93.09174804687495,76.35400390624997],[-95.27387695312498,76.26440429687503],[-96.03969726562494,76.48671875000002],[-95.65097656249998,76.58466796874998],[-96.88071289062495,76.73833007812505],[-96.40156249999995,76.79721679687503],[-96.75830078124997,76.97177734374998],[-95.84951171875002,77.06621093750005],[-94.29497070312493,76.91245117187498]]],[[[-115.55126953125001,77.36328125],[-116.32919921874996,77.137060546875],[-115.81005859374999,76.939111328125],[-116.25273437500002,76.90141601562505],[-115.94628906250003,76.71127929687503],[-116.99921874999995,76.531591796875],[-117.23359375000001,76.28154296875005],[-117.99296874999999,76.40581054687505],[-117.88081054687497,76.80507812500005],[-118.79140624999994,76.51298828125005],[-119.080712890625,76.12407226562505],[-119.58037109375,76.32651367187498],[-119.52612304687496,75.99721679687505],[-119.91289062499997,75.85883789062501],[-120.40888671874995,75.82563476562498],[-120.84838867187496,76.18266601562499],[-121.21347656249999,75.98369140625005],[-122.53305664062498,75.95092773437503],[-122.59272460937497,76.16206054687495],[-122.90278320312498,76.13471679687498],[-122.51938476562503,76.353173828125],[-121.56113281250003,76.453466796875],[-119.09018554687496,77.30507812500002],[-116.84355468749995,77.33955078124995],[-117.03974609374995,77.46513671875005],[-116.51132812500003,77.54760742187497],[-115.55126953125001,77.36328125]]],[[[-89.83325195312503,77.26762695312505],[-90.22827148437503,77.21245117187499],[-90.99321289062499,77.32949218750002],[-91.01904296875003,77.64389648437503],[-89.83896484375003,77.49140624999998],[-89.83325195312503,77.26762695312505]]],[[[-104.55815429687497,77.14174804687497],[-105.21508789062496,77.18208007812501],[-106.03559570312495,77.73984375000006],[-105.58789062499997,77.73598632812497],[-104.54223632812501,77.33774414062503],[-104.55815429687497,77.14174804687497]]],[[[-95.484375,77.79199218750003],[-93.30097656249995,77.73979492187505],[-93.54394531249997,77.466650390625],[-95.98706054687497,77.484130859375],[-96.19458007812497,77.70053710937503],[-95.484375,77.79199218750003]]],[[[-101.6935546875,77.69658203125005],[-102.37783203124995,77.728125],[-102.44770507812498,77.88061523437506],[-101.19321289062493,77.82978515624998],[-101.00205078124998,77.73510742187497],[-101.6935546875,77.69658203125005]]],[[[-113.83247070312497,77.75463867187506],[-114.28720703124998,77.72148437500005],[-114.98041992187498,77.91542968750002],[-114.33037109374997,78.07753906250002],[-113.83247070312497,77.75463867187506]]],[[[-110.45805664062496,78.10322265625001],[-109.62226562499995,78.07475585937499],[-110.865625,77.834130859375],[-110.15273437500002,77.76293945312506],[-110.19848632812501,77.52451171874998],[-112.37265625000002,77.36411132812498],[-113.16435546875002,77.5302734375],[-113.21518554687498,77.90351562500001],[-110.45805664062496,78.10322265625001]]],[[[-109.81596679687499,78.65039062500003],[-109.48447265624995,78.31640625],[-111.16918945312499,78.38627929687505],[-111.51748046874997,78.27470703125005],[-112.13125,78.366064453125],[-113.22304687499998,78.29790039062505],[-112.85585937499997,78.46684570312502],[-110.877587890625,78.73505859375004],[-109.81596679687499,78.65039062500003]]],[[[-96.20449218749994,78.53129882812499],[-94.91538085937495,78.39052734375002],[-95.32924804687497,78.22504882812495],[-94.93427734374998,78.07563476562498],[-96.98964843749994,77.80600585937503],[-97.65815429687498,78.090625],[-96.944677734375,78.15185546874997],[-98.04951171874995,78.325927734375],[-98.33261718749998,78.77353515625006],[-97.38232421875,78.78291015625001],[-96.20449218749994,78.53129882812499]]],[[[-103.42602539062499,79.315625],[-102.57617187499996,78.87939453125003],[-101.70366210937502,79.07890625000002],[-101.128125,78.80166015625002],[-100.43549804687503,78.8203125],[-99.60942382812495,78.58305664062507],[-99.16640625000002,77.85693359375003],[-100.27465820312503,77.83271484374995],[-101.07412109375001,78.19384765625],[-102.60698242187502,78.24892578125002],[-102.73134765624995,78.37104492187495],[-103.94658203124999,78.26000976562497],[-104.76357421874998,78.35166015625],[-104.90961914062498,78.55263671875],[-103.57050781250003,78.53984375000005],[-104.02084960937502,78.63491210937497],[-103.37158203125,78.73632812500003],[-104.18500976562498,78.78129882812505],[-104.15195312499999,78.989892578125],[-104.89550781249996,78.80815429687502],[-104.74677734375003,79.02709960937503],[-105.53564453124999,79.03251953125007],[-105.51455078124995,79.24248046875002],[-105.38769531249994,79.32358398437503],[-103.42602539062499,79.315625]]],[[[-98.79160156249995,79.98110351562505],[-98.94521484375,79.72407226562498],[-100.05683593749997,79.89824218750005],[-100.05327148437496,80.093359375],[-99.15322265625001,80.12421874999998],[-98.79160156249995,79.98110351562505]]],[[[-91.88554687499999,81.13286132812505],[-90.64301757812498,80.59370117187498],[-89.23559570312494,80.51064453125002],[-88.85732421874997,80.16621093750001],[-88.19990234374998,80.11147460937497],[-88.5248046875,80.41801757812507],[-87.675,80.37211914062505],[-87.92231445312501,80.09770507812499],[-86.97719726562502,79.89423828125001],[-87.29516601562494,79.58017578124998],[-86.33696289062496,79.63496093749995],[-86.00703124999998,79.47944335937498],[-85.6478515625,79.61142578125006],[-85.04213867187497,79.2845703125],[-86.95717773437502,78.97490234375005],[-87.61738281249995,78.67631835937505],[-88.04018554687494,78.99531250000004],[-87.98286132812498,78.53706054687501],[-88.74160156250002,78.58403320312499],[-88.82241210937497,78.18588867187498],[-90.037109375,78.60683593750002],[-89.52568359374999,78.15961914062495],[-90.29721679687495,78.32802734374997],[-90.614404296875,78.14985351562501],[-92.35126953125001,78.312890625],[-92.8482421875,78.46010742187497],[-91.86689453124998,78.54267578125001],[-93.26660156249997,78.60830078124997],[-93.63442382812502,78.75092773437498],[-93.15986328124998,78.77563476562503],[-94.11459960937498,78.92890625000001],[-92.54721679687495,79.28261718750002],[-91.29990234375003,79.372705078125],[-92.82192382812497,79.44990234375001],[-93.93315429687496,79.29072265624998],[-94.11030273437498,79.40156250000001],[-95.10317382812502,79.289892578125],[-95.66289062500002,79.52734374999997],[-94.40185546874997,79.736328125],[-95.73935546874995,79.66015625000003],[-96.58906249999995,79.91665039062497],[-96.77324218749999,80.13579101562502],[-94.64589843749994,80.04873046874997],[-94.26259765625002,80.19487304687499],[-95.40507812499996,80.13500976562506],[-96.39409179687493,80.31503906250003],[-95.549072265625,80.36660156249997],[-95.92695312499998,80.72065429687498],[-93.92792968749995,80.55917968750003],[-95.51474609375003,80.83813476562503],[-94.98051757812499,81.04965820312503],[-93.28671874999998,81.10029296874998],[-94.22011718749997,81.33076171875004],[-93.03466796874997,81.3462890625],[-91.88554687499999,81.13286132812505]]],[[[-69.4888671875,83.01679687499998],[-66.42255859374998,82.92685546875003],[-68.46933593749995,82.65336914062502],[-65.29902343749995,82.79960937500005],[-64.98388671874997,82.90229492187501],[-64.50400390625,82.77841796874998],[-63.641015624999966,82.81259765625003],[-63.246777343749926,82.4501953125],[-62.47519531249995,82.51958007812502],[-61.392480468749994,82.44189453125],[-61.61538085937502,82.18442382812503],[-64.43579101562497,81.74262695312501],[-66.62573242187497,81.61640624999995],[-68.68852539062493,81.29331054687503],[-64.78007812499993,81.49287109375001],[-69.55068359375,80.38325195312498],[-70.71259765625001,80.53959960937505],[-70.264892578125,80.23359374999998],[-72.05595703124996,80.12324218749995],[-70.56840820312493,80.09370117187498],[-71.387841796875,79.76176757812505],[-72.43652343750003,79.69438476562499],[-74.39448242187495,79.87407226562499],[-73.47246093749996,79.7564453125],[-73.36152343750001,79.50400390625],[-75.50341796875,79.41416015625],[-76.898828125,79.5123046875],[-75.60273437499998,79.23955078125005],[-74.48120117187503,79.22949218750006],[-74.64091796874996,79.03554687499997],[-78.58164062499998,79.075],[-77.88276367187498,78.9423828125],[-76.255859375,79.00683593749997],[-74.486328125,78.75009765624998],[-74.87861328124998,78.54482421875],[-76.41611328124995,78.51152343750005],[-75.19345703125,78.327734375],[-75.86596679687497,78.00981445312499],[-78.01259765624997,77.94604492187506],[-78.07617187500003,77.51904296875],[-78.70849609374997,77.34213867187503],[-80.57304687499996,77.31479492187506],[-81.65908203124997,77.52543945312499],[-81.3013671875,77.34404296875007],[-82.056787109375,77.29653320312497],[-81.75634765624997,77.20400390625005],[-79.49726562500001,77.19609375000005],[-78.97919921874998,76.89287109374999],[-78.28886718750002,76.97797851562501],[-77.98330078124994,76.75498046875006],[-78.284326171875,76.57124023437501],[-80.79970703124997,76.173583984375],[-80.97451171874994,76.470068359375],[-81.71738281250003,76.494970703125],[-82.52983398437499,76.723291015625],[-82.23315429687494,76.46582031250003],[-83.88569335937501,76.453125],[-84.22377929687497,76.67534179687499],[-84.27534179687498,76.35654296875006],[-85.141259765625,76.30458984375005],[-86.45371093750003,76.58486328125002],[-86.68022460937499,76.37661132812497],[-87.35419921874998,76.44804687500005],[-87.48979492187499,76.58583984374997],[-87.49755859374997,76.38627929687499],[-88.39599609374997,76.40527343750003],[-88.49584960937497,76.77285156249997],[-88.54580078125002,76.42089843750003],[-89.36962890624997,76.474462890625],[-89.49975585937503,76.82680664062502],[-88.39814453124995,77.10395507812501],[-86.81225585937497,77.18491210937498],[-87.68144531249996,77.43637695312503],[-88.01699218750002,77.78471679687505],[-86.75507812499998,77.86372070312498],[-85.58847656249998,77.46113281250004],[-84.73867187499997,77.36103515624998],[-83.72128906249998,77.41420898437497],[-82.7103515625,77.84951171875002],[-82.5953125,77.99213867187504],[-83.77939453125,77.53261718750002],[-85.28935546874996,77.55903320312498],[-85.54755859374998,77.92768554687495],[-84.61542968749998,78.19570312500002],[-84.22270507812499,78.176025390625],[-84.91035156249993,78.23969726562501],[-84.78320312499997,78.52758789062506],[-85.5859375,78.10957031249998],[-86.21777343750003,78.08120117187497],[-85.92006835937494,78.34287109374998],[-86.91323242187494,78.126806640625],[-87.5517578125,78.17661132812503],[-86.80791015624999,78.77436523437495],[-85.00375976562495,78.912255859375],[-83.27143554687501,78.77031250000002],[-81.75009765624995,78.97578124999995],[-82.43876953125002,78.903662109375],[-84.41201171875002,78.99658203125003],[-84.38359375000002,79.1185546875],[-83.57587890624995,79.05366210937501],[-86.42075195312498,79.84521484374997],[-86.49853515625003,80.25825195312501],[-83.72363281250003,80.22895507812501],[-81.68837890625,79.685791015625],[-80.47592773437498,79.60625],[-80.12446289062495,79.66948242187507],[-81.01015625000002,79.693115234375],[-82.98701171874995,80.32260742187498],[-76.86298828124995,80.86479492187505],[-78.71621093749994,80.95166015624997],[-76.88510742187503,81.43027343750006],[-81.00703125000001,80.6548828125],[-82.88432617187502,80.57753906249997],[-82.22236328124998,80.77231445312503],[-84.41782226562495,80.52675781250002],[-86.250341796875,80.56577148437506],[-86.60307617187499,80.66401367187498],[-85.63930664062494,80.92460937500007],[-83.288818359375,81.14794921875],[-85.780859375,81.03505859375],[-87.32988281250002,80.669775390625],[-88.00366210937497,80.675390625],[-89.16689453125,80.94130859375],[-86.47675781249993,81.03574218750006],[-84.94121093750002,81.28623046875],[-87.27509765624995,81.080810546875],[-89.623046875,81.032470703125],[-89.94731445312499,81.17265625000005],[-89.20869140624998,81.25009765625003],[-89.67368164062503,81.32861328125003],[-87.59702148437498,81.52583007812498],[-88.47905273437502,81.56464843749998],[-90.41630859374996,81.40537109375003],[-89.82167968749997,81.63486328124998],[-91.29238281250002,81.57124023437498],[-91.64755859374998,81.68383789062503],[-88.06318359375001,82.09648437500007],[-87.01821289062502,81.95874023437497],[-86.62680664062495,82.05102539062503],[-85.04482421874997,81.9828125],[-86.615625,82.21855468750007],[-84.89682617187503,82.44941406250001],[-82.63369140625002,82.07729492187497],[-82.53691406250002,82.24726562499995],[-79.465625,81.85112304687499],[-82.44755859374993,82.39501953125003],[-81.68115234375003,82.51865234375],[-82.11684570312497,82.62866210937503],[-80.8625,82.57153320312503],[-81.01015625000002,82.77905273437503],[-78.748779296875,82.67939453124998],[-80.15493164062497,82.91113281250003],[-77.61806640624997,82.89584960937503],[-76.009375,82.53515625],[-75.565625,82.60854492187502],[-77.12490234374994,83.00854492187497],[-74.41416015624995,83.01313476562501],[-72.65869140625,82.72163085937495],[-73.44189453124994,82.90483398437499],[-72.811669921875,83.08120117187502],[-71.98320312499996,83.10141601562498],[-70.94038085937495,82.90224609375],[-71.08481445312498,83.08266601562497],[-69.96992187499995,83.11611328125005],[-69.4888671875,83.01679687499998]]]]},"properties":{"name":"Canada","childNum":110}},{"geometry":{"type":"Polygon","coordinates":[[[9.527658197470123,47.27026989773668],[9.46249431093294,47.19858962254578],[9.46249431093294,47.09010747968864],[9.409458596647225,47.02019676540292],[9.579979133936737,47.05856388629306],[9.580273437500011,47.057373046875],[10.133496093750011,46.851513671875],[10.349414062500017,46.98476562499999],[10.414941406250023,46.964404296874996],[10.45458984375,46.8994140625],[10.452832031250011,46.86494140625],[10.406054687500017,46.73486328125],[10.39794921875,46.6650390625],[10.4306640625,46.550048828125],[10.195507812500011,46.62109375],[10.1375,46.61435546875],[10.087011718750006,46.599902343749996],[10.061230468750011,46.546777343749994],[10.038281250000011,46.483203125],[10.045605468750011,46.447900390624994],[10.081933593750023,46.420751953125],[10.109667968750017,46.362841796874996],[10.128320312500023,46.238232421875],[10.08056640625,46.227978515625],[10.041015625,46.238085937499996],[9.939257812500017,46.36181640625],[9.884472656250011,46.3677734375],[9.787792968750011,46.346044921875],[9.639453125000017,46.2958984375],[9.57958984375,46.29609375],[9.528710937500023,46.306201171874996],[9.427636718750023,46.482324218749994],[9.399316406250023,46.4806640625],[9.304394531250011,46.495556640625],[9.203417968750017,46.21923828125],[9.11874162946429,46.014892578125],[8.97551618303573,45.81677455357143],[8.74961495535715,46.02246372767857],[8.818554687500011,46.0771484375],[8.458398437500023,46.245898437499996],[8.370703125,46.445117187499996],[8.298535156250011,46.40341796875],[8.23193359375,46.341210937499994],[8.08154296875,46.256005859374994],[7.9931640625,46.015917968749996],[7.327929687500017,45.912353515625],[7.129003906250006,45.880419921874996],[7.055761718750006,45.90380859375],[7.02109375,45.92578125],[6.953710937500006,46.017138671874996],[6.897265625000017,46.0517578125],[6.772070312500006,46.16513671875],[6.758105468750017,46.415771484375],[6.578222656250006,46.437353515625],[6.428906250000011,46.430517578125],[6.321875,46.393701171874994],[6.234667968750017,46.3326171875],[6.199414062500011,46.19306640625],[6.086621093750011,46.147021484374996],[6.006640625000017,46.142333984375],[5.971484375000017,46.151220703125],[5.970019531250017,46.214697265625],[6.0361328125,46.238085937499996],[6.095898437500011,46.27939453125],[6.129687500000017,46.5669921875],[6.41015625,46.755419921874996],[6.429003906250017,46.832275390625],[6.45625,46.94833984375],[6.624804687500017,47.004345703125],[6.666894531250023,47.026513671874994],[6.688085937500006,47.058251953124994],[6.820703125000023,47.16318359375],[6.952050781250023,47.2671875],[6.978515625,47.302050781249996],[7.000585937500006,47.322509765625],[7.000585937500006,47.339453125],[6.900390625,47.39423828125],[6.968359375,47.45322265625],[7.136035156250017,47.48984375],[7.343164062500023,47.43310546875],[7.615625,47.592724609375],[8.454003906250023,47.59619140625],[8.559472656250023,47.6240234375],[8.570507812500011,47.63779296875],[8.567089843750011,47.651904296874996],[8.55234375,47.659130859375],[8.451757812500006,47.651806640625],[8.413281250000011,47.6626953125],[8.403417968750006,47.687792968749996],[8.435742187500011,47.731347656249994],[8.572656250000023,47.775634765625],[9.524023437500006,47.52421875],[9.625878906250023,47.467041015625],[9.527539062500011,47.270751953125],[9.527658197470123,47.27026989773668]]]},"properties":{"name":"Switzerland","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-67.28886718749999,-55.776855468749964],[-67.55996093749997,-55.72480468750002],[-67.39736328124997,-55.58515625],[-67.28886718749999,-55.776855468749964]]],[[[-67.07993164062498,-55.15380859374996],[-67.33969726562495,-55.292578124999984],[-67.4947265625,-55.177441406249976],[-68.07001953124995,-55.22109374999999],[-68.30136718750003,-54.98066406250003],[-67.245263671875,-54.977636718750034],[-67.07993164062498,-55.15380859374996]]],[[[-69.70297851562503,-54.91904296875],[-68.90078125000002,-55.01777343750004],[-68.45800781249997,-54.95966796875002],[-68.61328124999997,-55.155566406250045],[-68.28266601562495,-55.25517578125],[-68.04833984375,-55.6431640625],[-68.86704101562498,-55.45019531250003],[-68.89008789062498,-55.2412109375],[-69.19262695312497,-55.171875],[-69.35922851562498,-55.300683593749945],[-69.18085937499995,-55.47480468749998],[-69.41181640624995,-55.44423828124997],[-69.97978515625002,-55.14746093749999],[-69.88442382812494,-54.88203125000001],[-69.70297851562503,-54.91904296875]]],[[[-70.9916015625,-54.86796874999999],[-70.80483398437497,-54.96767578124996],[-70.41752929687493,-54.908886718749976],[-70.29785156249997,-55.11376953124997],[-70.47558593749994,-55.17705078124998],[-71.43720703125001,-54.88925781249997],[-70.9916015625,-54.86796874999999]]],[[[-71.390478515625,-54.03281250000002],[-71.02192382812495,-54.111816406250036],[-71.14326171874998,-54.374023437499986],[-71.473291015625,-54.23115234375001],[-71.94853515624999,-54.300878906250006],[-72.21044921874997,-54.04775390624995],[-71.996484375,-53.884863281249984],[-71.390478515625,-54.03281250000002]]],[[[-72.92324218749997,-53.481640625],[-72.88222656249997,-53.578320312499976],[-72.48227539062503,-53.58808593750001],[-72.20541992187503,-53.80742187500002],[-72.408544921875,-54.00380859374997],[-72.87099609375,-54.12656250000002],[-72.76376953125,-53.86484375],[-73.03945312499994,-53.83281250000004],[-73.08076171875001,-53.99804687499995],[-73.21064453125001,-53.98583984374995],[-73.31435546875,-53.72919921874998],[-73.845458984375,-53.54580078125001],[-73.44707031249993,-53.41005859374998],[-72.92324218749997,-53.481640625]]],[[[-74.38574218749994,-52.92236328125001],[-73.65400390624998,-53.06982421875003],[-73.13520507812498,-53.35390625],[-73.56728515625,-53.3068359375],[-73.86694335937494,-53.096875],[-74.27021484374995,-53.08154296875002],[-74.71201171874998,-52.74873046874998],[-74.38574218749994,-52.92236328125001]]],[[[-68.62993164062499,-52.65263671875004],[-68.65322265624994,-54.85361328124999],[-69.48627929687493,-54.85888671875],[-69.72343750000002,-54.71210937500003],[-70.49716796875,-54.80957031249999],[-71.83154296874997,-54.62617187500002],[-71.92773437500003,-54.52871093749997],[-71.80014648437498,-54.433984374999945],[-71.07993164062498,-54.444238281249994],[-70.79726562500002,-54.32724609374996],[-70.70112304687498,-54.48544921875004],[-70.31098632812498,-54.52851562500002],[-70.86308593749993,-54.11044921875003],[-70.86772460937499,-53.88417968750002],[-70.53129882812502,-53.627343750000016],[-70.37973632812495,-53.98671874999995],[-70.62983398437493,-54.005566406249976],[-70.53530273437494,-54.136132812500016],[-70.16899414062502,-54.37929687499999],[-69.74184570312494,-54.30585937500005],[-69.25317382812494,-54.557421875000045],[-69.04433593749997,-54.40673828124999],[-69.98813476562503,-54.10908203125001],[-70.15112304687503,-53.88808593750002],[-70.09111328124996,-53.72177734374998],[-69.35595703125003,-53.41630859375001],[-69.63701171874999,-53.33408203125004],[-70.32929687499998,-53.37763671875003],[-70.44335937499994,-53.085546875000034],[-70.130615234375,-52.942773437499994],[-70.38012695312494,-52.75195312500002],[-69.93544921874997,-52.82109374999998],[-69.41406249999997,-52.48623046874997],[-69.16704101562499,-52.66757812499997],[-68.78979492187497,-52.576757812500034],[-68.62993164062499,-52.65263671875004]]],[[[-74.82294921874993,-51.63017578125001],[-74.53681640624998,-51.96513671875004],[-74.69448242187497,-52.27919921874999],[-74.85180664062494,-52.27070312500003],[-75.10537109375,-51.78886718750001],[-74.82294921874993,-51.63017578125001]]],[[[-74.55864257812499,-51.27705078125001],[-74.62036132812497,-51.395703125000026],[-75.04736328125,-51.39833984375003],[-75.28911132812496,-51.625390625000016],[-75.15366210937498,-51.278808593750014],[-74.73666992187503,-51.20761718749999],[-74.55864257812499,-51.27705078125001]]],[[[-75.302001953125,-50.67998046875005],[-75.411376953125,-50.76435546875001],[-75.42763671875002,-50.48056640625002],[-75.11533203124998,-50.510449218749976],[-75.302001953125,-50.67998046875005]]],[[[-75.05478515625,-50.29609375],[-75.44912109374997,-50.34335937500004],[-75.32666015624997,-50.01181640625],[-74.8759765625,-50.10996093750001],[-75.05478515625,-50.29609375]]],[[[-75.106689453125,-48.83652343750001],[-75.38994140624999,-49.15917968750002],[-75.64116210937499,-49.195410156250034],[-75.48764648437498,-49.082421875000016],[-75.58310546874998,-48.85888671874995],[-75.106689453125,-48.83652343750001]]],[[[-74.47617187499998,-49.14785156250002],[-74.59472656249997,-50.00664062500001],[-74.76298828124996,-50.01142578125001],[-74.88041992187502,-49.72587890625001],[-74.72382812499998,-49.42382812500003],[-74.960107421875,-49.533007812499974],[-75.06601562499998,-49.85234375000002],[-75.54980468749994,-49.79130859375002],[-75.30585937499998,-49.49404296875003],[-75.46748046874995,-49.35888671875003],[-75.08603515624998,-49.27021484375],[-75.21015624999995,-49.14804687499998],[-74.94921875,-48.960156249999976],[-74.89624023437503,-48.73320312500002],[-74.54609374999993,-48.76689453125004],[-74.47617187499998,-49.14785156250002]]],[[[-75.51025390624997,-48.76347656250005],[-75.65092773437496,-48.58632812500002],[-75.57148437499993,-48.095898437500026],[-75.39140625000002,-48.01972656249997],[-75.15849609374999,-48.62265624999996],[-75.51025390624997,-48.76347656250005]]],[[[-74.56728515625,-48.591992187500026],[-74.92304687499998,-48.62646484375003],[-75.21289062499997,-48.141699218750034],[-75.19829101562502,-47.974609375000014],[-74.895654296875,-47.839355468749986],[-74.56728515625,-48.591992187500026]]],[[[-75.11220703124997,-47.8376953125],[-75.26103515625002,-47.76386718749998],[-74.92646484374998,-47.72314453125003],[-75.11220703124997,-47.8376953125]]],[[[-74.31289062500002,-45.69150390625002],[-74.46552734374995,-45.757226562499994],[-74.68984375,-45.66259765625],[-74.310546875,-45.17265625000002],[-74.31289062500002,-45.69150390625002]]],[[[-73.63217773437498,-44.82148437499997],[-73.81845703125,-44.65214843750002],[-73.72392578124993,-44.544238281249974],[-73.63217773437498,-44.82148437499997]]],[[[-72.98613281249999,-44.780078124999974],[-73.22846679687498,-44.85996093749999],[-73.39707031249998,-44.77431640624995],[-73.44506835937497,-44.641015624999966],[-73.20771484374993,-44.33496093749997],[-72.7763671875,-44.50859374999999],[-72.98613281249999,-44.780078124999974]]],[[[-73.73535156249997,-44.39453125000003],[-74.00205078125003,-44.59091796874998],[-73.728173828125,-45.195898437500034],[-74.016259765625,-45.344921875000026],[-74.61777343749998,-44.64794921874996],[-74.50180664062498,-44.47353515624995],[-74.09721679687496,-44.38935546875004],[-73.99492187499999,-44.140234375],[-73.70322265624998,-44.27412109375001],[-73.73535156249997,-44.39453125000003]]],[[[-73.81064453125003,-43.827246093750006],[-73.95566406249998,-43.921972656250034],[-74.14296874999997,-43.872167968750006],[-73.81064453125003,-43.827246093750006]]],[[[-73.77338867187498,-43.3458984375],[-74.114404296875,-43.35791015624996],[-74.387353515625,-43.231640625],[-74.03666992187496,-41.79550781249998],[-73.52783203124997,-41.89628906249999],[-73.42290039062499,-42.192871093750014],[-73.47080078124998,-42.46630859375004],[-73.78925781249993,-42.58574218750003],[-73.43632812499996,-42.9365234375],[-73.74965820312494,-43.15908203124995],[-73.77338867187498,-43.3458984375]]],[[[-78.80415039062501,-33.646484374999986],[-78.98945312499993,-33.66171874999998],[-78.87744140625003,-33.57519531250003],[-78.80415039062501,-33.646484374999986]]],[[[-109.27998046874994,-27.14042968749996],[-109.434130859375,-27.171289062500023],[-109.39047851562499,-27.068359375000014],[-109.27998046874994,-27.14042968749996]]],[[[-67.19487304687493,-22.821679687500037],[-67.00878906249994,-23.00136718750005],[-67.35620117187503,-24.033789062499963],[-68.25029296875002,-24.391992187500023],[-68.56201171875,-24.74736328125003],[-68.38422851562495,-25.091894531249977],[-68.59208984375002,-25.420019531250034],[-68.41450195312498,-26.153710937500023],[-68.59160156249999,-26.47041015624997],[-68.31865234374999,-26.973242187500006],[-68.59208984375002,-27.140039062499966],[-68.84633789062494,-27.153710937499994],[-69.17441406249998,-27.924707031250037],[-69.65693359374995,-28.413574218749986],[-69.82788085937497,-29.10322265624997],[-70.02680664062501,-29.324023437500017],[-69.95996093749997,-30.078320312500026],[-69.84428710937493,-30.175],[-69.95634765624996,-30.35820312500003],[-70.15322265625,-30.360937499999963],[-70.30908203124994,-31.02265625000004],[-70.51958007812493,-31.1484375],[-70.585205078125,-31.569433593749963],[-70.25439453125,-31.957714843750026],[-70.36376953125,-32.08349609374997],[-70.02197265625,-32.88457031250002],[-70.08486328125002,-33.20175781249998],[-69.81962890624999,-33.28378906249999],[-69.85244140625,-34.224316406250026],[-70.05205078124999,-34.30078124999997],[-70.39316406250003,-35.146875],[-70.55517578125,-35.246875],[-70.41572265625001,-35.52304687500002],[-70.40478515625,-36.06171874999998],[-71.05551757812498,-36.52373046874996],[-71.19218750000002,-36.84365234375004],[-71.16757812499998,-37.76230468749996],[-70.858642578125,-38.60449218750003],[-71.40156249999995,-38.93505859374996],[-71.53945312499997,-39.60244140624995],[-71.71992187499995,-39.63525390624997],[-71.65976562499998,-40.02080078125],[-71.81831054687493,-40.17666015624995],[-71.70898437499997,-40.381738281249994],[-71.93212890624994,-40.69169921874999],[-71.91127929687497,-41.650390624999986],[-71.75,-42.04677734375001],[-72.10820312499993,-42.25185546874995],[-72.14643554687498,-42.990039062499974],[-71.750634765625,-43.237304687499986],[-71.90498046875001,-43.34755859374998],[-71.68007812500002,-43.92958984374998],[-71.82001953124993,-44.38310546875],[-71.21259765624998,-44.44121093750003],[-71.15971679687496,-44.56025390625004],[-71.26113281250002,-44.763085937499966],[-72.06372070312503,-44.771875],[-72.04169921874998,-44.90419921875004],[-71.5962890625,-44.97919921875004],[-71.34931640624995,-45.33193359374995],[-71.74619140624998,-45.57890625],[-71.63154296874998,-45.95371093749998],[-71.87568359374998,-46.160546875],[-71.69965820312501,-46.6513671875],[-71.94023437499999,-46.83125],[-71.90498046875001,-47.201660156250014],[-72.34594726562497,-47.49267578124997],[-72.517919921875,-47.87636718749998],[-72.32832031250001,-48.11005859374998],[-72.35473632812497,-48.36582031250005],[-72.582861328125,-48.47539062499999],[-72.65126953125,-48.84160156249998],[-73.03364257812501,-49.014355468750004],[-73.13525390625,-49.30068359374999],[-73.46157226562497,-49.31386718750001],[-73.55419921875,-49.463867187500014],[-73.50126953124996,-50.125292968750024],[-73.15292968749998,-50.73828125000003],[-72.50981445312496,-50.607519531250034],[-72.34023437499997,-50.68183593749999],[-72.40766601562501,-51.54082031250002],[-71.91865234374995,-51.98955078125004],[-69.96025390624993,-52.00820312500002],[-68.443359375,-52.35664062500004],[-69.24101562499996,-52.20546874999997],[-69.62031249999995,-52.46474609374995],[-70.79511718749995,-52.76875],[-70.99584960937497,-53.77929687499997],[-71.29775390625002,-53.88339843750004],[-72.1744140625,-53.632324218749964],[-72.41289062500002,-53.35019531250004],[-71.94169921874993,-53.23408203125001],[-71.89169921874998,-53.523535156250006],[-71.79145507812498,-53.48457031249997],[-71.74052734374999,-53.232617187499976],[-71.28896484375002,-53.03369140624995],[-71.22714843750003,-52.810644531249984],[-71.38774414062496,-52.76425781250004],[-72.27802734374998,-53.13232421874997],[-72.54892578125,-53.4607421875],[-73.05273437499997,-53.24345703125005],[-72.72768554687502,-52.7623046875],[-72.453466796875,-52.814453124999964],[-72.11757812499997,-52.65],[-71.51127929687502,-52.60537109375],[-72.22568359374998,-52.52099609374995],[-72.43769531250001,-52.62578124999998],[-72.71210937499995,-52.53554687499999],[-73.12246093749997,-53.073925781249976],[-73.64521484374998,-52.83701171875003],[-73.2408203125,-52.707128906250034],[-73.12392578125,-52.487988281249976],[-73.24414062499997,-52.62402343749998],[-73.58569335937503,-52.68574218750003],[-74.01445312499999,-52.63935546875],[-74.26494140624993,-52.1048828125],[-73.83447265625,-52.23398437500001],[-73.68432617187494,-52.07773437499998],[-73.26044921874993,-52.157812500000034],[-72.79501953124998,-51.94951171875005],[-72.57084960937496,-52.200097656249945],[-72.67705078125002,-52.38466796874998],[-72.52333984374997,-52.255468750000034],[-72.62460937499998,-51.94648437499997],[-72.48964843750002,-51.76367187500003],[-72.76123046875,-51.57324218749996],[-73.16875,-51.45390624999998],[-72.60004882812495,-51.79912109374997],[-73.51816406250003,-52.04101562499996],[-73.75263671874993,-51.795507812500034],[-74.19667968749997,-51.68056640624997],[-73.92978515624995,-51.61787109374999],[-73.93950195312499,-51.26630859375005],[-74.81474609374996,-51.06289062499999],[-75.09467773437495,-50.68125],[-74.68574218749995,-50.662011718749945],[-74.77587890625003,-50.46992187499998],[-74.64448242187498,-50.360937499999984],[-74.365576171875,-50.487890625],[-74.13940429687503,-50.81777343749997],[-73.80654296875,-50.93837890625003],[-73.654443359375,-50.49267578125],[-73.97802734375003,-50.827050781249994],[-74.18559570312493,-50.485351562500014],[-73.95034179687497,-50.510546875],[-74.62958984374998,-50.19404296875],[-74.333740234375,-49.97460937499997],[-73.95859374999998,-49.994726562499984],[-74.32392578124995,-49.783398437500004],[-74.29082031249996,-49.604101562499984],[-73.83637695312493,-49.609375],[-74.09443359374993,-49.42968749999998],[-73.93496093749994,-49.02089843750001],[-74.2212890625,-49.500585937500034],[-74.36655273437503,-49.40048828124998],[-74.34101562499998,-48.59570312499998],[-74.00908203124996,-48.475],[-74.47441406249999,-48.46396484374996],[-74.58466796874998,-47.999023437500014],[-73.39106445312498,-48.14589843750001],[-73.60991210937499,-47.993945312500045],[-73.71586914062499,-47.65546875000001],[-73.94086914062498,-47.92939453125004],[-74.22705078124994,-47.96894531250001],[-74.654931640625,-47.702246093750034],[-74.5337890625,-47.567675781249974],[-74.24296874999999,-47.67929687499998],[-74.13408203125002,-47.590820312499986],[-74.48266601562497,-47.43046875],[-74.15839843749998,-47.18251953125002],[-74.31357421874998,-46.78818359374998],[-74.45419921875003,-46.76679687499997],[-74.51225585937496,-46.88515625000002],[-75.00595703125,-46.74111328124998],[-74.98417968750002,-46.51210937499995],[-75.54033203124999,-46.69873046874996],[-75.43037109374995,-46.93457031249996],[-75.70639648437498,-46.70527343749997],[-74.924462890625,-46.159667968750014],[-75.06669921874993,-45.874902343749994],[-74.15786132812497,-45.7671875],[-74.122705078125,-45.49619140625002],[-73.95717773437494,-45.40439453124998],[-73.825,-45.446875],[-74.01992187500002,-46.055859375],[-74.39296875,-46.21738281250005],[-73.96757812500002,-46.15410156250003],[-73.87871093749993,-45.846875],[-73.73525390624994,-45.81171875],[-73.70815429687502,-46.070312500000014],[-73.94863281249997,-46.533105468749966],[-73.845361328125,-46.56601562500002],[-73.59184570312493,-45.89912109375004],[-73.73076171874999,-45.47998046875],[-73.26621093749995,-45.346191406250014],[-72.933837890625,-45.45234374999997],[-73.44497070312497,-45.23818359374995],[-73.36245117187502,-44.97822265625001],[-72.73896484375001,-44.73417968750003],[-72.680078125,-44.59394531249997],[-72.66386718749999,-44.43642578124995],[-73.26508789062498,-44.16865234375001],[-73.22446289062498,-43.89794921875003],[-73.06879882812495,-43.86201171874998],[-72.99658203125,-43.63154296875001],[-73.07597656250002,-43.323632812499994],[-72.75800781249998,-43.039453125],[-72.84804687500002,-42.66914062499997],[-72.77392578125003,-42.505175781250045],[-72.63183593750003,-42.509667968749994],[-72.77324218749996,-42.257714843749994],[-72.63105468749995,-42.199804687500006],[-72.412353515625,-42.388183593750014],[-72.49941406249997,-41.98085937499999],[-72.82407226562503,-41.90878906249996],[-72.36040039062499,-41.64912109375],[-72.31826171875,-41.49902343749997],[-72.54238281250002,-41.690625],[-72.95283203124995,-41.51474609374998],[-73.24179687499995,-41.78085937500002],[-73.62402343750003,-41.77363281249997],[-73.73515625000002,-41.74248046875002],[-73.62392578125,-41.581347656250045],[-73.81074218749995,-41.51748046875001],[-73.96586914062493,-41.118261718750034],[-73.67099609375,-39.96318359374999],[-73.41040039062503,-39.78916015624998],[-73.22646484375002,-39.22441406250003],[-73.52021484375001,-38.509375],[-73.46479492187498,-38.04033203125003],[-73.66181640624998,-37.69853515625003],[-73.66240234375002,-37.341015625000026],[-73.60166015624998,-37.18847656250003],[-73.21596679687502,-37.16689453124998],[-73.11806640624997,-36.68837890625002],[-72.58735351562493,-35.759667968749994],[-72.62392578125002,-35.5857421875],[-72.22377929687494,-35.096191406250014],[-72.00283203124997,-34.16533203125],[-71.66435546875002,-33.65263671875],[-71.74296875,-33.09511718750001],[-71.45224609374998,-32.65957031250001],[-71.70893554687495,-30.62802734375002],[-71.66948242187499,-30.33037109374996],[-71.40039062499997,-30.142968749999966],[-71.31572265624996,-29.649707031250017],[-71.51923828124993,-28.926464843750026],[-71.30673828124998,-28.672460937499963],[-71.08652343749998,-27.814453124999957],[-70.92578125,-27.588671874999974],[-70.64658203124998,-26.329394531250017],[-70.71372070312498,-25.78417968749997],[-70.44536132812502,-25.17265624999999],[-70.57412109374994,-24.644335937500003],[-70.39233398437494,-23.565917968749957],[-70.59335937499995,-23.255468750000034],[-70.56318359374995,-23.057031250000023],[-70.33168945312494,-22.848632812500014],[-70.08002929687501,-21.356835937500037],[-70.19702148437494,-20.725390625],[-70.15742187499995,-19.70585937500003],[-70.41826171874999,-18.345605468750023],[-69.92636718749998,-18.206054687500014],[-69.80258789062498,-17.990234375000014],[-69.85209960937493,-17.70380859375001],[-69.68476562499995,-17.649804687500023],[-69.58642578125,-17.57324218749997],[-69.51093749999998,-17.50605468749997],[-69.31337890624997,-17.943164062500017],[-69.28232421875003,-17.96484375],[-69.09394531249993,-18.05048828125004],[-69.14545898437495,-18.14404296875],[-69.09228515624994,-18.28242187500004],[-69.02680664062493,-18.65625],[-68.97885742187503,-18.81298828125003],[-68.96831054687502,-18.967968749999983],[-68.85795898437499,-19.09335937500005],[-68.62055664062495,-19.29667968749999],[-68.54785156249997,-19.341113281249974],[-68.49199218749996,-19.381933593750034],[-68.47016601562495,-19.409960937499974],[-68.46289062499997,-19.43281250000001],[-68.57529296874998,-19.56015625000002],[-68.69829101562499,-19.721093750000037],[-68.69619140625,-19.74072265625003],[-68.57827148437494,-19.856542968750006],[-68.559375,-19.902343750000014],[-68.56069335937502,-19.96708984374996],[-68.75932617187499,-20.115527343750003],[-68.74516601562493,-20.45859375],[-68.48432617187498,-20.628417968749957],[-68.55825195312497,-20.90195312499999],[-68.197021484375,-21.30029296874997],[-68.18642578124997,-21.618554687499966],[-67.88173828124997,-22.493359375000026],[-67.87944335937496,-22.822949218750026],[-67.57993164062495,-22.89169921874999],[-67.36225585937493,-22.85517578125001],[-67.19487304687493,-22.821679687500037]]]]},"properties":{"name":"Chile","childNum":26}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[110.88876953125006,19.99194335937497],[111.01367187500003,19.65546875000001],[110.64091796875002,19.291210937499955],[110.45126953125012,18.747949218750023],[110.06738281249997,18.447558593750045],[109.51933593750007,18.21826171875003],[108.7015625,18.535253906250034],[108.66552734375003,19.304101562499994],[109.27666015625002,19.761132812500023],[109.17744140625004,19.768457031250023],[109.26347656250007,19.882666015625006],[110.1715820312501,20.053710937500057],[110.58818359375002,19.976367187500017],[110.6517578125,20.137744140625017],[110.88876953125006,19.99194335937497]]],[[[110.38515625000005,21.093164062499966],[110.52158203125006,21.083105468750063],[110.50390625000003,20.96772460937501],[110.28095703125004,21.001171874999983],[110.38515625000005,21.093164062499966]]],[[[112.64375,21.63964843750003],[112.525,21.62304687500003],[112.64765625000004,21.710253906250017],[112.64375,21.63964843750003]]],[[[112.79023437500004,21.601855468750045],[112.78203125000007,21.772265625000045],[112.86259765625002,21.75263671875004],[112.79023437500004,21.601855468750045]]],[[[118.1830078125,24.496289062499983],[118.0905273437501,24.446142578125063],[118.10380859375002,24.552343750000034],[118.1830078125,24.496289062499983]]],[[[119.82089843750006,25.45698242187504],[119.70029296875012,25.432714843750063],[119.72255859375005,25.638818359375023],[119.83837890625003,25.591064453125],[119.82089843750006,25.45698242187504]]],[[[121.2513671875,28.086425781250057],[121.13154296875004,28.062597656250006],[121.20546875,28.204394531250017],[121.2513671875,28.086425781250057]]],[[[122.29589843750003,29.96342773437499],[122.02402343750012,30.01333007812505],[121.96943359375004,30.143115234375017],[122.28447265625007,30.068017578124994],[122.29589843750003,29.96342773437499]]],[[[121.86269531250005,31.492285156249977],[121.519921875,31.549609375000017],[121.2111328125001,31.80537109375001],[121.86269531250005,31.492285156249977]]],[[[130.52695312500012,42.535400390625],[130.24667968750012,42.744824218749955],[130.24033203125006,42.891796874999955],[129.89824218750002,42.998144531250034],[129.69785156250012,42.448144531249994],[129.3136718750001,42.41357421874997],[128.92343750000006,42.038232421874966],[128.04521484375007,41.9875],[128.28925781250004,41.60742187500006],[128.14941406249997,41.38774414062496],[127.17968750000003,41.531347656250006],[126.95478515625004,41.76948242187501],[126.74306640625,41.724853515625],[125.98906250000002,40.904638671875034],[124.8893554687501,40.459814453125006],[124.36210937500002,40.004052734374994],[124.10576171875002,39.84101562499998],[123.65087890625003,39.881591796875],[122.8400390625001,39.600830078125],[121.98232421875,39.05317382812498],[121.67724609374997,39.00341796875006],[121.64990234375003,38.865087890625034],[121.16357421874997,38.73164062500001],[121.10673828125002,38.920800781249994],[121.6798828125001,39.10869140625002],[121.62763671875004,39.22016601562498],[121.81845703125006,39.38652343750002],[121.27548828125006,39.38476562500003],[121.26748046875,39.544677734375],[121.51757812499997,39.638964843750045],[121.51738281250002,39.84482421875006],[121.8009765625001,39.950537109375006],[122.27500000000012,40.541845703125034],[121.83486328125005,40.97426757812502],[121.72929687500002,40.84614257812504],[121.1745117187501,40.901269531249994],[120.47910156250006,40.23095703125003],[119.39111328125003,39.75249023437499],[118.976953125,39.182568359374955],[118.29785156249997,39.067089843749955],[118.04091796875,39.22675781249998],[117.86572265625003,39.191259765625034],[117.61669921875003,38.852880859375034],[117.5578125000001,38.625146484374994],[117.76669921875012,38.311669921874994],[118.01494140625007,38.18339843749996],[118.94003906250006,38.04277343750002],[119.08916015625007,37.70073242187496],[118.95263671875003,37.33115234374998],[119.28740234375002,37.138281250000034],[119.76054687500007,37.15507812499999],[120.31152343750003,37.62270507812505],[120.2572265625,37.67900390624996],[120.75,37.83393554687501],[121.64023437500012,37.46035156250002],[122.05664062500003,37.528906250000034],[122.66699218750003,37.40283203125003],[122.4466796875,37.06811523437503],[122.51972656250004,36.94682617187502],[122.34091796875012,36.83222656250004],[121.93271484375006,36.95947265625003],[121.05380859375006,36.61137695312499],[120.81083984375007,36.6328125],[120.89580078125007,36.44414062500002],[120.71152343750006,36.41328125000004],[120.6378906250001,36.129931640625045],[120.39306640625003,36.053857421874994],[120.32773437500006,36.228173828124994],[120.18330078125004,36.20244140624999],[120.094140625,36.11889648437503],[120.28476562500006,35.98442382812499],[119.42968749999997,35.301416015624994],[119.16533203125002,34.84882812499998],[119.20097656250002,34.748437499999966],[120.26669921875006,34.274023437500034],[120.87109374999997,33.016503906249994],[120.8532226562501,32.66137695312503],[121.34169921875005,32.42504882812503],[121.40390625000006,32.20625],[121.85634765625,31.816455078125045],[121.86630859375006,31.703564453124955],[121.68085937500004,31.71215820312503],[121.351953125,31.85878906250005],[120.97353515625,31.86938476562497],[120.52011718750006,32.10585937500002],[120.03593750000002,31.93627929687503],[120.7155273437501,31.983740234375006],[120.7877929687501,31.81977539062501],[121.66064453124997,31.319726562499994],[121.87792968750003,30.91699218750003],[121.41894531249997,30.789794921875057],[120.8214843750001,30.354638671875023],[120.44980468750006,30.38784179687505],[120.19462890625002,30.241308593750034],[120.49453125,30.303076171875006],[120.63339843750006,30.133154296875034],[121.25800781250004,30.30410156250005],[121.67792968750004,29.979101562500006],[122.08291015625005,29.870361328125057],[121.50625,29.484570312499955],[121.94121093750002,29.605908203124983],[121.91777343750007,29.13500976562497],[121.71748046875004,29.25634765625],[121.48710937500007,29.193164062500017],[121.67968749999997,28.953125],[121.54003906250003,28.931884765625],[121.6625,28.851416015625034],[121.47519531250006,28.64140625],[121.60996093750006,28.29213867187505],[121.27226562500002,28.222119140624983],[121.14570312500004,28.32666015624997],[120.95859375000006,28.037011718750023],[120.74765625000006,28.00996093750001],[120.83300781249997,27.891455078125034],[120.58750000000012,27.580761718749983],[120.60751953125012,27.41240234374996],[120.2787109375,27.097070312500023],[120.08671875000007,26.67158203125004],[119.88222656250005,26.610449218750006],[119.82421874999997,26.84638671875001],[119.71044921874997,26.728662109375023],[119.58818359375002,26.784960937500045],[119.8810546875001,26.33417968750004],[119.46308593750004,26.05468750000003],[119.13945312500007,26.12177734375001],[119.33203124999997,25.94873046875003],[119.61875000000012,26.003564453124994],[119.53945312500005,25.59125976562504],[119.6224609375,25.391162109375017],[119.180078125,25.449804687499977],[119.285546875,25.232226562500074],[118.97753906249997,25.209277343750017],[118.90908203125005,24.92890625000001],[118.63691406250004,24.835546874999977],[118.65703125000002,24.621435546874977],[118.0871093750001,24.627001953125045],[118.00595703125006,24.48198242187499],[117.84267578125005,24.47431640625004],[118.0560546875,24.24609374999997],[117.62822265625002,23.836718750000074],[117.46640625000012,23.84057617187497],[117.36767578124997,23.58862304687497],[117.29082031250007,23.71435546875],[117.08251953124997,23.578759765625023],[116.91064453124997,23.646679687499983],[116.86093750000006,23.453076171874983],[116.62939453124997,23.353857421875034],[116.69882812500006,23.277783203124983],[116.53828125000004,23.17968749999997],[116.47070312499997,22.945898437500034],[116.25185546875005,22.981347656249994],[115.85214843750006,22.801562500000045],[115.64042968750002,22.853417968750023],[115.49833984375002,22.718847656250063],[115.19580078125003,22.81728515625005],[114.85380859375007,22.616796875000063],[114.65166015625002,22.755273437500023],[114.55419921874997,22.52890625],[114.26601562500005,22.540966796874983],[114.01542968750007,22.51191406250001],[113.61962890624997,22.861425781249977],[113.6205078125,23.12749023437499],[113.51972656250004,23.102099609375074],[113.33105468749997,22.912011718749966],[113.55302734375002,22.594042968750045],[113.54912109375002,22.225195312500034],[113.14902343750012,22.075],[113.08876953125,22.207958984374983],[112.95390625000007,21.907324218750034],[112.80859374999997,21.944628906250074],[112.58632812500005,21.77685546875],[112.35966796875007,21.97802734375003],[112.30498046875002,21.74169921875003],[111.94394531250012,21.84965820312499],[111.60273437500004,21.55908203125003],[111.01689453125007,21.51171874999997],[110.56718750000002,21.21406250000001],[110.41093750000007,21.33813476562497],[110.15400390625004,20.944628906250017],[110.36542968750004,20.837597656249955],[110.31308593750012,20.67167968749999],[110.51152343750007,20.51826171875001],[110.34472656249997,20.29482421875005],[109.88251953125004,20.364062500000045],[109.96835937500006,20.448144531250023],[109.66259765625003,20.91689453125005],[109.68125000000012,21.13164062499999],[109.93076171875012,21.480566406250034],[109.6869140625,21.52460937500004],[109.56640624999997,21.690576171874994],[109.54404296875012,21.537939453125006],[109.14863281250004,21.425537109375],[109.1017578125001,21.59047851562505],[108.77167968750004,21.63046875],[108.59375,21.901025390624994],[108.47988281250005,21.904638671875006],[108.50214843750004,21.633447265624994],[108.32480468750006,21.693505859374994],[108.24628906250004,21.55839843749999],[107.97265624999997,21.507958984375023],[107.75927734374997,21.655029296875057],[107.35117187500012,21.60888671874997],[106.97099609375002,21.923925781250034],[106.66357421875003,21.97890625000005],[106.55039062500006,22.501367187499994],[106.78027343749997,22.778906250000034],[106.54179687500007,22.908349609375023],[106.2790039062501,22.857470703125045],[106.14843749999997,22.970068359375006],[105.8429687500001,22.922802734374955],[105.27539062500003,23.34521484375003],[104.86474609375003,23.136376953125023],[104.68730468750002,22.822216796874983],[104.37177734375004,22.704052734374983],[104.14306640624997,22.800146484375006],[103.94150390625006,22.540087890625045],[103.62021484375006,22.782031250000045],[103.49296875000007,22.587988281250034],[103.32666015625003,22.769775390625057],[102.98193359374997,22.4482421875],[102.47089843750004,22.75092773437501],[102.40644531250004,22.70800781249997],[102.2370117187501,22.466015624999983],[102.1759765625001,22.414648437500006],[102.12744140624997,22.379199218750045],[101.84179687500003,22.38847656249999],[101.75996093750004,22.490332031250034],[101.73876953124997,22.495263671874994],[101.70751953125003,22.486572265625],[101.67148437500006,22.462304687500023],[101.64619140625004,22.405419921874966],[101.61992187500002,22.32744140624999],[101.56787109374997,22.27636718749997],[101.52451171875006,22.25366210937497],[101.7365234375001,21.826513671874977],[101.74394531250007,21.77797851562505],[101.74726562500004,21.605761718750045],[101.72294921875007,21.31494140625003],[101.80058593750007,21.212597656249983],[101.78349609375007,21.204150390625017],[101.728125,21.156396484374994],[101.7047851562501,21.15014648437503],[101.54238281250005,21.23427734375005],[101.2814453125001,21.184130859375045],[101.24785156250007,21.197314453125045],[101.22441406250002,21.223730468750034],[101.21181640625,21.278222656250023],[101.2199218750001,21.34243164062505],[101.17539062500006,21.407519531250074],[101.19667968750005,21.522070312500063],[101.1388671875001,21.567480468749977],[101.07978515625004,21.75585937499997],[100.60458984375012,21.471777343750006],[100.14765625000004,21.480517578125017],[99.94072265625007,21.75874023437504],[99.9176757812501,22.02802734375001],[99.19296875000006,22.12597656249997],[99.50712890625002,22.959130859374994],[99.41806640625006,23.069238281250023],[98.86376953125003,23.191259765625034],[98.8322265625001,23.624365234374977],[98.67675781250003,23.905078125000045],[98.83505859375006,24.121191406250034],[98.2125,24.110644531250017],[97.56455078125012,23.911035156250023],[97.7082031250001,24.228759765625],[97.53144531250004,24.49169921875003],[97.58330078125002,24.77480468750005],[97.73789062500006,24.869873046875057],[97.8195312500001,25.251855468749994],[98.01074218749997,25.292529296875017],[98.14287109375007,25.571093750000017],[98.33378906250007,25.586767578125006],[98.65625,25.86357421874999],[98.56406250000006,26.072412109374994],[98.68554687499997,26.189355468750023],[98.7384765625001,26.785742187500006],[98.65117187500007,27.572460937499983],[98.4525390625,27.6572265625],[98.29882812499997,27.550097656250045],[98.06162109375012,28.185888671874977],[97.59921875000006,28.51704101562504],[97.53789062500002,28.510205078124983],[97.43144531250002,28.353906250000023],[97.35644531249997,28.254492187500006],[97.32158929493812,28.217097107438057],[97.3027336276825,28.08710519614969],[97.34382779482424,27.982305259167095],[97.04929369561631,27.76000444316393],[96.96494598325154,27.699301564540924],[96.19423412199573,28.04146177926422],[95.73730002295082,28.117613231051525],[95.11298892962586,27.748338353239472],[94.07167814294401,27.588707868507477],[93.61247595136224,27.323800298697016],[93.30681393470121,26.786120363519142],[92.74319481218781,26.833531317384058],[92.04974640832253,26.874866505386724],[92.07342257335648,26.915311275859864],[92.06813426293174,26.9752569185349],[92.02985139563152,27.03987087331446],[91.99856592104459,27.079255842602592],[91.99177981607339,27.100605151743654],[92.0025114452454,27.147290053160265],[92.03101585307499,27.214271359861193],[92.08387457645458,27.29090135496722],[92.04520857607581,27.364442429033787],[91.99069061380867,27.450181624174498],[91.95099838734396,27.45828799115413],[91.85276579410389,27.438593286730903],[91.74366351462741,27.442853010105477],[91.59505352446729,27.557262710287986],[91.63193359375012,27.759960937499983],[91.64189453125002,27.923242187500023],[91.36259958579089,28.02438066407592],[91.27304687500012,28.078369140625],[91.22587890625007,28.071240234374983],[91.07773437500012,27.974462890624977],[91.02080078125002,27.970068359374977],[90.71572265625,28.071728515624983],[90.63007812500004,28.078564453124955],[90.47734375000007,28.07084960937499],[90.3527343750001,28.080224609375023],[90.33310546875012,28.093994140625],[90.36298828125004,28.21650390625001],[90.34824218750006,28.24394531249999],[90.22080078125006,28.27773437500005],[90.10449218749997,28.302050781250017],[89.98105468750006,28.311181640625023],[89.8978515625,28.29414062500001],[89.81689453125003,28.25629882812501],[89.74980468750002,28.18818359375001],[89.65273437500005,28.158300781250034],[89.53691406250007,28.10742187499997],[89.4806640625001,28.059960937499994],[88.89140625000002,27.316064453124966],[88.83251953125003,27.36284179687499],[88.7648437500001,27.429882812499983],[88.74902343749997,27.521875],[88.82988281250002,27.76738281249999],[88.84882812500004,27.86865234375],[88.80371093750003,28.006933593750034],[88.57792968750002,28.093359375000034],[88.42597656250004,28.01166992187501],[88.27519531250007,27.968847656250006],[88.14111328125003,27.94892578125001],[88.10898437500006,27.933007812499966],[88.10976562500005,27.870605468750057],[87.8607421875,27.886083984375006],[87.62255859374997,27.81518554687503],[87.29072265625004,27.821923828124994],[87.14140625000002,27.838330078124955],[87.02011718750006,27.928662109374983],[86.9337890625001,27.96845703125001],[86.84238281250012,27.99916992187505],[86.750390625,28.022070312500006],[86.71962890625005,28.070654296875034],[86.69052734375006,28.09492187500001],[86.61445312500004,28.10302734374997],[86.55449218750007,28.08520507812497],[86.51689453125007,27.963525390624966],[86.40869140625003,27.928662109374983],[86.32861328124997,27.95952148437496],[86.2179687500001,28.022070312500006],[86.13701171875002,28.114355468750063],[86.07871093750006,28.08359375],[86.0641601562501,27.934716796874966],[85.99453125000005,27.910400390625],[85.95410156249997,27.92822265624997],[85.92167968750002,27.989697265624983],[85.84023437500005,28.135351562499977],[85.75947265625004,28.220654296874955],[85.67832031250012,28.277441406249977],[85.41064453125003,28.27602539062505],[85.21210937500004,28.292626953124966],[85.1224609375,28.315966796875017],[85.08857421875004,28.37226562500001],[85.121484375,28.484277343750023],[85.16015624999997,28.571875],[85.15908203125,28.592236328124983],[85.1263671875,28.602636718750063],[85.06914062500007,28.60966796874999],[84.85507812500006,28.553613281250023],[84.796875,28.560205078125023],[84.2287109375001,28.911767578124966],[84.17558593750002,29.036376953125057],[84.12783203125005,29.15629882812496],[84.10136718750002,29.21997070312497],[84.02197265624997,29.25385742187504],[83.93593750000005,29.27949218750001],[83.58349609375003,29.18359375000003],[83.15546875000004,29.612646484375034],[82.22070312500003,30.063867187500023],[82.04335937500005,30.326757812500034],[81.8548828125,30.362402343750006],[81.64189453125007,30.3875],[81.4171875000001,30.33759765625001],[81.25507812500004,30.09331054687499],[81.17714843750005,30.039892578125034],[80.98544921875006,30.23710937499999],[80.87353515625003,30.290576171875045],[80.19121093750002,30.56840820312496],[80.20712890625006,30.683740234375023],[79.92451171875004,30.888769531250034],[79.66425781250004,30.96523437499999],[79.38847656250007,31.064208984375],[79.10712890625004,31.402636718750017],[78.74355468750005,31.323779296875017],[78.7550781250001,31.55029296875],[78.69345703125006,31.740380859374994],[78.72558593750003,31.983789062500023],[78.49589843750002,32.21577148437504],[78.4552734375001,32.30034179687502],[78.41748046874997,32.466699218749994],[78.38964843749997,32.51987304687498],[78.73671875,32.55839843750002],[78.75351562500012,32.49926757812506],[78.91894531249997,32.35820312500002],[79.16992187500003,32.497216796874994],[79.14550781250003,33.00146484375006],[79.10283203125007,33.05253906249996],[79.13515625000005,33.17192382812496],[79.1125,33.22626953125001],[78.94843750000004,33.346533203125006],[78.86503906250002,33.43110351562501],[78.78378906250006,33.80878906250004],[78.72666015625006,34.013378906249955],[78.97060546875,34.22822265625004],[78.93642578125,34.35195312500002],[78.86484375000006,34.39033203125001],[78.32695312500007,34.60639648437498],[78.15849609375002,34.94648437499998],[78.07578125000006,35.13491210937502],[78.0426757812501,35.47978515625002],[77.79941406250006,35.49589843750002],[77.44648437500004,35.47558593750006],[77.29482421875005,35.508154296875034],[77.09003906250004,35.55205078124999],[76.87890625000003,35.61328125000003],[76.76689453125002,35.661718750000034],[76.72753906250003,35.67866210937504],[76.63183593749997,35.729394531249966],[76.56347656249997,35.77299804687499],[76.55126953124997,35.887060546875034],[76.50205078125006,35.87822265625002],[76.38574218750003,35.837158203125],[76.25166015625004,35.8109375],[76.17783203125012,35.810546875],[76.14785156250005,35.82900390625002],[76.07089843750006,35.983007812500034],[75.91230468750004,36.048974609374994],[75.97441406250007,36.38242187500006],[75.9518554687501,36.458105468750034],[75.9330078125,36.52158203124998],[75.840234375,36.64970703124999],[75.7721679687501,36.694921875000034],[75.6671875000001,36.741992187500045],[75.57373046874997,36.75932617187502],[75.46025390625002,36.725048828124955],[75.42421875000005,36.73823242187498],[75.37685546875,36.88369140625005],[75.34667968749997,36.913476562499966],[75.05390625000004,36.98715820312498],[74.94912109375,36.96835937500006],[74.88925781250006,36.95244140625002],[74.69218750000007,37.035742187500006],[74.60058593749997,37.03666992187502],[74.54140625,37.02216796875001],[74.52646484375006,37.03066406250005],[74.49794921875,37.057226562500034],[74.37617187500004,37.13735351562502],[74.37216796875006,37.15771484375],[74.558984375,37.23662109374999],[74.66894531250003,37.266699218750006],[74.72666015625006,37.29072265625001],[74.7389648437501,37.28564453125003],[74.76738281250002,37.249169921874966],[74.840234375,37.22504882812504],[74.89130859375004,37.231640624999955],[75.11875,37.38569335937498],[74.8942382812501,37.60141601562498],[74.81230468750002,38.46030273437498],[74.27744140625,38.659765625000034],[74.02558593750004,38.53984375000002],[73.80166015625,38.60688476562501],[73.69609375000007,38.85429687499996],[73.8052734375,38.968652343749994],[73.60732421875,39.229199218749955],[73.63632812500006,39.396679687499955],[73.63164062500007,39.44887695312502],[73.82294921875004,39.48896484375004],[73.90712890625,39.578515624999966],[73.9146484375,39.60649414062499],[73.88251953125004,39.71455078124998],[73.83974609375005,39.76284179687505],[73.8353515625,39.800146484375006],[73.85625,39.828662109375045],[73.88457031250002,39.87792968750006],[73.93876953125002,39.97880859374999],[73.99160156250005,40.04311523437502],[74.83046875,40.32851562499999],[74.80126953124997,40.428515625000045],[74.83515625000004,40.482617187499955],[74.865625,40.493505859375034],[75.0044921875,40.44951171874996],[75.11132812499997,40.4541015625],[75.24101562500002,40.48027343750002],[75.52080078125002,40.627539062500006],[75.55556640625,40.625195312499955],[75.6771484375,40.305810546874994],[75.87197265625,40.30322265625],[76.25830078124997,40.43076171875006],[76.3185546875001,40.352246093749955],[76.39638671875005,40.389794921874966],[76.4801757812501,40.44951171874996],[76.57792968750002,40.577880859375],[76.62216796875006,40.66235351562497],[76.6398437500001,40.74223632812499],[76.66113281249997,40.77963867187498],[76.70839843750005,40.818115234375],[76.82402343750002,40.982324218749966],[76.90771484374997,41.02416992187497],[76.98662109375002,41.039160156250006],[77.58173828125004,40.99277343750006],[77.71933593750012,41.024316406249994],[77.81523437500002,41.05561523437498],[77.9564453125,41.05068359375005],[78.1234375,41.07563476562498],[78.34628906250012,41.28144531249998],[78.36240234375012,41.37163085937496],[78.44287109374997,41.41752929687499],[78.742578125,41.56005859375],[79.29355468750006,41.78281249999998],[79.76611328124997,41.89887695312501],[79.84042968750012,41.99575195312502],[79.90966796875003,42.014990234375034],[80.21621093750005,42.03242187500004],[80.23515625000007,42.04345703124997],[80.24619140625012,42.05981445312503],[80.209375,42.190039062500006],[80.20224609375012,42.73447265624998],[80.53896484375005,42.873486328124955],[80.39023437500006,43.043115234374966],[80.78574218750006,43.16157226562504],[80.35527343750002,44.09726562500006],[80.48154296875006,44.71464843749999],[79.871875,44.88378906249997],[80.05917968750012,45.006445312500006],[81.69199218750012,45.34936523437497],[81.94492187500006,45.16083984375001],[82.26660156249997,45.21909179687498],[82.52148437500003,45.12548828125],[82.61162109375007,45.424267578124955],[82.31523437500002,45.59492187499998],[83.02949218750004,47.18593750000002],[84.016015625,46.97050781250002],[84.66660156250006,46.97236328125004],[84.78613281249997,46.83071289062505],[85.484765625,47.06352539062496],[85.65664062500005,47.254638671875],[85.52597656250006,47.915625],[85.7494140625,48.38505859374999],[86.54941406250012,48.52861328125002],[86.8083007812501,49.04970703125002],[87.32285156250012,49.085791015625006],[87.41669921875004,49.07661132812501],[87.5158203125001,49.122412109375006],[87.7625,49.16582031249996],[87.81425781250002,49.162304687499955],[87.87216796875012,49.000146484374966],[87.74316406250003,48.88164062499999],[87.83183593750007,48.79165039062505],[88.02792968750006,48.735595703125],[88.06005859375003,48.707177734374966],[87.9796875000001,48.55512695312498],[88.30996093750005,48.47207031250002],[88.41396484375,48.403417968750006],[88.51708984374997,48.384472656249955],[88.56679687500005,48.31743164062496],[88.57597656250007,48.220166015624955],[88.68183593750004,48.170556640624994],[88.83828125000005,48.101708984374994],[88.91777343750007,48.089013671874966],[89.04765625000007,48.002539062500034],[89.47919921875004,48.02905273437503],[89.5609375,48.00395507812496],[89.778125,47.82700195312498],[89.83134765625002,47.82329101562502],[89.91044921875007,47.844335937500034],[89.95869140625004,47.88632812499998],[90.02792968750012,47.877685546875],[90.1032226562501,47.74541015624996],[90.19101562500012,47.70209960937501],[90.31328125000007,47.67617187499999],[90.33066406250006,47.655175781249966],[90.42519531250005,47.50410156250001],[90.49619140625012,47.28515625],[90.64335937500007,47.10029296874998],[90.71552734375004,47.00385742187498],[90.7990234375001,46.98515624999999],[90.86992187500002,46.95449218750005],[90.91054687500005,46.88325195312501],[90.9857421875,46.7490234375],[90.9115234375,46.270654296874994],[90.94755859375002,46.17729492187499],[90.99677734375004,46.10498046875],[91.00175781250007,46.03579101562502],[90.6618164062501,45.525244140625006],[90.87724609375002,45.19609375000002],[91.05,45.217431640624994],[91.584375,45.07651367187498],[92.42382812499997,45.008935546874994],[92.57890625000002,45.01098632812506],[92.78789062500007,45.035742187500034],[93.51621093750012,44.944482421874994],[94.71201171875012,44.35083007812503],[95.35029296875004,44.27807617187503],[95.32558593750005,44.03935546874999],[95.52558593750004,43.953955078125006],[95.85957031250004,43.27597656249998],[96.38544921875004,42.72036132812502],[97.20566406250012,42.78979492187506],[99.46787109375012,42.568212890625034],[99.98378906250005,42.67734375000006],[100.08632812500005,42.67075195312506],[100.51904296875003,42.61679687499998],[101.09199218750004,42.55131835937496],[101.49531250000004,42.53876953124998],[101.57910156249997,42.52353515624998],[101.65996093750002,42.50004882812499],[101.97294921875002,42.21586914062502],[102.15664062500005,42.158105468749966],[102.57519531249997,42.09208984375002],[103.07285156250006,42.00595703125006],[103.7111328125001,41.75131835937506],[103.99726562500004,41.796972656250034],[104.30517578124997,41.84614257812501],[104.49824218750004,41.87700195312499],[104.49824218750004,41.65869140625],[104.86035156250003,41.64375],[104.98203125000012,41.59550781250002],[105.05058593750002,41.61591796875001],[105.1154296875001,41.66328124999998],[105.19707031250002,41.738037109375],[105.31435546875005,41.77089843750005],[105.86757812500005,41.993994140625034],[106.77001953125003,42.28872070312502],[108.17119140625002,42.44731445312502],[108.68730468750002,42.416113281250034],[109.33984374999997,42.43837890625005],[109.44316406250002,42.455957031249994],[110.40039062499997,42.77368164062497],[111.00722656250005,43.34140624999998],[111.878125,43.68017578125],[111.93173828125012,43.81494140625],[111.40224609375005,44.367285156250006],[111.89804687500006,45.064062500000034],[112.03261718750005,45.08164062500006],[112.11289062500006,45.06293945312498],[112.41132812500004,45.05820312499998],[112.49931640625002,45.01093750000004],[112.59677734375006,44.917675781249955],[112.7067382812501,44.883447265624994],[113.04941406250006,44.81035156250002],[113.3009765625001,44.79165039062502],[113.50791015625006,44.76235351562502],[113.58701171875006,44.745703125],[113.65263671875002,44.76347656249999],[113.87705078125012,44.89619140625001],[114.03027343749997,44.942578124999955],[114.08027343750004,44.97114257812501],[114.41914062500004,45.20258789062501],[114.56015625000012,45.38999023437498],[114.73876953124997,45.41962890624998],[114.91923828125007,45.378271484375006],[115.16259765624997,45.390234375000034],[115.6810546875,45.45825195312503],[116.19765625,45.739355468750006],[116.240625,45.795996093750006],[116.22910156250012,45.84575195312502],[116.21298828125012,45.88691406249998],[116.56259765625012,46.28979492187497],[116.85908203125004,46.387939453125],[117.3333984375,46.36201171875004],[117.35693359375003,46.391308593749955],[117.35634765625,46.436669921874966],[117.39218750000012,46.53759765625003],[117.40556640625007,46.57089843750006],[117.43808593750012,46.58623046874999],[117.546875,46.58828125000005],[117.74121093749997,46.51816406250006],[118.07128906249997,46.666601562500006],[118.15683593750006,46.678564453125034],[118.30869140625012,46.71704101562497],[118.40439453125006,46.70317382812499],[118.58046875,46.69189453125],[118.64873046875002,46.70166015625006],[118.72294921875007,46.69189453125],[118.8439453125001,46.76020507812498],[118.95712890625006,46.73486328124997],[119.16210937499997,46.638671875],[119.33183593750002,46.61381835937499],[119.47402343750005,46.626660156249955],[119.62021484375006,46.60395507812504],[119.70664062500006,46.60600585937502],[119.74746093750005,46.62719726562497],[119.86718750000003,46.67216796874999],[119.89785156250005,46.857812499999966],[119.71113281250004,47.15],[119.08193359375,47.654150390625034],[119.01757812500003,47.68535156249999],[118.88027343750005,47.72509765625],[118.75996093750004,47.75761718749996],[118.69052734375012,47.822265625],[118.56777343750005,47.94326171875005],[118.49843750000005,47.98398437499998],[117.76835937500002,47.98789062499998],[117.3507812500001,47.65219726562498],[117.28593750000002,47.666357421875034],[117.06972656250005,47.80639648437506],[116.95166015624997,47.836572265624966],[116.90117187500007,47.85307617187496],[116.76054687500002,47.869775390624994],[116.65195312500012,47.86450195312497],[116.51347656250007,47.839550781249955],[116.37822265625002,47.84404296874999],[116.31718750000002,47.85986328125],[116.2311523437501,47.85820312500002],[116.07480468750012,47.78955078125],[115.99384765625004,47.71132812500005],[115.89824218750002,47.68691406250005],[115.6164062500001,47.874804687500045],[115.52509765625004,48.13085937499997],[115.63945312500007,48.18623046874998],[115.785546875,48.24824218750001],[115.7965820312501,48.346337890624994],[115.7916992187501,48.455712890624994],[115.8205078125001,48.57724609375006],[116.6833007812501,49.82377929687499],[117.8734375,49.51347656250002],[118.4515625,49.84448242187503],[119.25986328125012,50.06640625000003],[119.34628906250012,50.278955078124994],[119.16367187500006,50.40600585937503],[120.06689453125003,51.60068359375006],[120.74980468750007,52.096533203125006],[120.65615234375,52.56665039062503],[120.0675781250001,52.632910156250034],[120.09453125000007,52.787207031250034],[120.98544921875012,53.28457031250002],[123.6078125,53.546533203124994],[124.81230468750002,53.133837890625045],[125.075,53.20366210937496],[125.64902343750012,53.042285156250045],[126.34169921875,52.36201171875001],[126.92480468749997,51.10014648437496],[127.30703125000005,50.70795898437501],[127.33720703125007,50.35014648437502],[127.590234375,50.20898437500003],[127.55078124999997,49.801806640625045],[127.99960937500006,49.56860351562506],[128.70400390625,49.60014648437499],[129.0651367187501,49.374658203124966],[129.49814453125012,49.38881835937502],[130.1959960937501,48.89165039062499],[130.553125,48.861181640625006],[130.5521484375,48.602490234374955],[130.80429687500012,48.34150390624998],[130.7326171875001,48.01923828124998],[130.96191406249997,47.70932617187498],[132.47626953125004,47.714990234374994],[132.7072265625001,47.94726562500006],[133.14404296875003,48.10566406249998],[133.46835937500006,48.09716796875003],[134.29335937500005,48.37343750000002],[134.66523437500004,48.25390625],[134.56601562500006,48.02250976562502],[134.75234375,47.71542968749998],[134.1676757812501,47.30219726562501],[133.86132812500003,46.24775390625004],[133.43642578125,45.60468750000004],[133.18603515625003,45.49482421875004],[133.1134765625001,45.130712890625006],[132.93603515624997,45.029931640624994],[131.85185546875002,45.32685546875001],[131.44687500000012,44.984033203124966],[130.9816406250001,44.844335937500034],[131.2552734375,44.07158203124999],[131.25732421875003,43.378076171874994],[131.06855468750004,42.90224609375005],[130.42480468749997,42.72705078124997],[130.52695312500012,42.535400390625]]],[[[113.9977539062501,22.210498046875045],[113.83886718749997,22.24169921875003],[114.04394531250003,22.33339843750005],[113.9977539062501,22.210498046875045]]],[[[114.01542968750007,22.51191406250001],[114.26601562500005,22.540966796874983],[114.26796875,22.295556640624966],[113.93730468750002,22.364990234375],[114.01542968750007,22.51191406250001]]],[],[[[118.4074218750001,24.522119140624994],[118.43271484375006,24.414355468750074],[118.29511718750004,24.436328125000017],[118.4074218750001,24.522119140624994]]],[[[121.00878906249997,22.62036132812497],[120.83984375000003,21.925],[120.2328125,22.71791992187505],[120.0724609375001,23.149755859375006],[120.13212890625007,23.652929687500034],[121.040625,25.032812500000034],[121.59365234375,25.275341796874983],[121.92900390625002,24.973730468749977],[121.39746093750003,23.172509765625023],[121.00878906249997,22.62036132812497]]]]},"properties":{"name":"China","childNum":15}},{"geometry":{"type":"Polygon","coordinates":[[[-5.262304687499977,10.319677734374991],[-4.72177734374992,9.756542968750026],[-4.625830078125006,9.713574218749969],[-4.526611328124943,9.723486328125034],[-4.406201171874926,9.647998046875031],[-4.332226562499955,9.645703125],[-4.18115234375,9.78173828125],[-3.790625,9.917187499999983],[-3.581152343749977,9.924316406250014],[-3.289697265625023,9.882226562500051],[-3.223535156249937,9.895458984374997],[-3.160693359374932,9.849169921874974],[-3.095800781249949,9.752099609375009],[-3.042626953124937,9.72089843750004],[-2.988281249999972,9.687353515624963],[-2.900878906249943,9.534619140625026],[-2.875146484374937,9.500927734374997],[-2.816748046874949,9.425830078124974],[-2.766601562499943,9.424707031250009],[-2.7171875,9.457128906250048],[-2.695849609374989,9.481347656250009],[-2.686132812499977,9.43173828125002],[-2.705761718749983,9.351367187499989],[-2.74692382812492,9.04511718750004],[-2.689892578124955,9.02509765625004],[-2.649218750000017,8.956591796875031],[-2.600390625000017,8.800439453125023],[-2.505859375000028,8.208740234375],[-2.538281249999955,8.171630859374986],[-2.61171875,8.147558593749963],[-2.619970703125006,8.12109375],[-2.600976562499937,8.082226562499983],[-2.613378906249977,8.046679687500017],[-2.668847656249994,8.022216796875014],[-2.789746093749955,7.931933593750003],[-2.959082031249977,7.454541015624997],[-3.227148437499977,6.749121093749991],[-2.998291015624972,5.711328125000051],[-2.793652343749955,5.600097656250028],[-2.754980468749977,5.432519531249994],[-2.815673828125,5.153027343749997],[-3.168701171874972,5.203027343749966],[-3.199951171874943,5.3544921875],[-3.347558593749994,5.13066406249996],[-4.120166015625017,5.309716796875023],[-4.60888671875,5.235888671875003],[-4.037207031249977,5.23012695312498],[-4.899707031249932,5.138330078125023],[-5.282373046874994,5.210253906250017],[-5.36752929687492,5.15078125],[-5.061816406249989,5.13066406249996],[-5.913769531249926,5.0109375],[-7.544970703124989,4.351318359375],[-7.574658203124983,4.572314453124989],[-7.585058593749977,4.916748046875],[-7.39990234375,5.550585937499989],[-7.454394531249989,5.841308593749972],[-7.636132812499994,5.90771484375],[-7.730371093749994,5.919042968749991],[-7.800927734374994,6.038916015624991],[-7.833251953125,6.076367187499983],[-7.855517578125017,6.150146484375],[-7.888623046875011,6.234863281250028],[-7.981591796874937,6.2861328125],[-8.287109375,6.31904296875004],[-8.587890625,6.490527343749989],[-8.324511718749989,6.920019531249991],[-8.408740234374989,7.411816406249997],[-8.429980468749989,7.601855468749989],[-8.351757812499926,7.590576171875],[-8.231884765624955,7.556738281250034],[-8.205957031249994,7.590234375000023],[-8.115429687499926,7.760742187500028],[-8.126855468749937,7.867724609374974],[-8.00986328124992,8.078515625000023],[-8.048583984375,8.169726562500045],[-8.140625,8.181445312500031],[-8.217138671874949,8.219677734375011],[-8.256103515625,8.253710937500017],[-8.244140624999943,8.407910156249983],[-8.236962890624994,8.455664062500034],[-7.953125,8.477734375],[-7.823583984374977,8.467675781249994],[-7.738964843749983,8.375244140624986],[-7.696093749999932,8.375585937499977],[-7.71958007812492,8.643017578125011],[-7.950976562499989,8.786816406249997],[-7.938183593749983,8.97978515624996],[-7.902099609375,9.017089843750014],[-7.777978515624937,9.080859375000031],[-7.799804687499943,9.115039062499989],[-7.839404296875017,9.151611328124972],[-7.918066406249949,9.188525390625031],[-7.896191406249955,9.415869140624991],[-8.136962890624972,9.49570312499999],[-8.155175781249937,9.973193359375017],[-7.990625,10.1625],[-7.661132812500028,10.427441406250011],[-7.385058593749989,10.340136718749989],[-7.01708984375,10.143261718750026],[-6.950341796874994,10.342333984374989],[-6.693261718750023,10.34946289062502],[-6.669335937499937,10.39218750000002],[-6.69199218749992,10.512011718750017],[-6.686132812499977,10.578027343750051],[-6.676367187499949,10.633789062500043],[-6.654150390624949,10.65644531250004],[-6.482617187499983,10.561230468749997],[-6.250244140625,10.717919921875037],[-6.190673828124943,10.400292968749994],[-6.192626953124972,10.369433593750003],[-6.241308593749949,10.279199218750009],[-6.238378906249977,10.26162109374998],[-6.117187499999972,10.201904296874986],[-6.034570312499937,10.194824218750057],[-5.907568359375006,10.307226562500034],[-5.896191406249983,10.354736328125028],[-5.843847656249977,10.389550781250023],[-5.694287109374983,10.433203125000034],[-5.556591796874983,10.439941406249986],[-5.382275390625011,10.314013671875003],[-5.262304687499977,10.319677734374991]]]},"properties":{"name":"Côte d\'Ivoire","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[15.480078125,7.523779296874991],[15.206738281250011,7.206152343749991],[14.7392578125,6.27978515625],[14.43115234375,6.038720703124994],[14.616894531250011,5.865136718749994],[14.56298828125,5.279931640624994],[14.73125,4.602392578124991],[15.063574218750006,4.284863281249997],[15.128710937500017,3.826904296875],[16.0634765625,2.90859375],[16.183398437500017,2.270068359374989],[16.059375,1.676220703124997],[15.741601562500023,1.914990234374997],[14.902441406250006,2.012304687499991],[14.578906250000017,2.199121093749994],[13.293554687500006,2.161572265624997],[13.2203125,2.256445312499991],[11.558984375000023,2.302197265624997],[11.348437500000017,2.299707031249994],[11.328710937500006,2.167431640624997],[11.096582031250023,2.16748046875],[10.790917968750023,2.16757812499999],[9.979882812500023,2.167773437499989],[9.8701171875,2.21328125],[9.8369140625,2.242382812499997],[9.830371093750017,2.275488281249991],[9.826171875,2.297802734374997],[9.80078125,2.304443359375],[9.82177734375,2.539257812499997],[9.948437500000011,3.079052734374997],[9.672070312500011,3.53759765625],[9.765722656250006,3.623828124999989],[9.642382812500017,3.611767578124997],[9.55615234375,3.798046875],[9.739648437500023,3.852929687499994],[9.639941406250017,3.96533203125],[9.688867187500023,4.056396484375],[9.483691406250017,4.066113281249997],[9.42529296875,3.922314453124997],[9.000097656250006,4.091601562499989],[8.918261718750017,4.553759765624989],[8.660351562500011,4.670996093749991],[8.65625,4.516357421875],[8.53955078125,4.571875],[8.715625,5.046875],[8.997167968750006,5.917724609375],[9.490234375,6.418652343749997],[9.779882812500006,6.76015625],[9.820703125000023,6.783935546875],[9.874218750000011,6.803271484374989],[10.038867187500017,6.92138671875],[10.1435546875,6.996435546874991],[10.167773437500017,6.959179687499997],[10.185546875,6.912792968749997],[10.205468750000023,6.8916015625],[10.293066406250006,6.876757812499989],[10.413183593750006,6.877734374999989],[10.60625,7.063085937499991],[10.954199218750006,6.7765625],[11.032519531250017,6.697900390624994],[11.1064453125,6.457714843749997],[11.1533203125,6.437939453124997],[11.2373046875,6.450537109374991],[11.401757812500023,6.533935546875],[11.551660156250023,6.697265625],[11.580078125,6.888867187499997],[11.657519531250017,6.9515625],[11.861425781250006,7.11640625],[11.767382812500017,7.272265624999989],[11.809179687500006,7.345068359374991],[12.016015625000023,7.589746093749994],[12.2333984375,8.282324218749991],[12.403515625000011,8.595556640624991],[12.582714843750011,8.624121093749991],[12.651562500000011,8.667773437499989],[12.7822265625,8.81787109375],[12.806542968750023,8.886621093749994],[12.875683593750011,9.303515624999989],[12.929492187500017,9.42626953125],[13.19873046875,9.563769531249989],[13.269921875000023,10.036181640624989],[13.41455078125,10.171435546874989],[13.535351562500011,10.60507812499999],[13.699902343750011,10.873144531249991],[13.89208984375,11.140087890624997],[13.9814453125,11.211865234374997],[14.056738281250006,11.245019531249994],[14.143261718750011,11.24853515625],[14.202343750000011,11.268164062499991],[14.559765625000011,11.492285156249991],[14.619726562500006,12.150976562499991],[14.518945312500023,12.298242187499994],[14.272851562500023,12.356494140624989],[14.184863281250017,12.447216796874997],[14.06396484375,13.07851562499999],[14.244824218750011,13.07734375],[14.461718750000017,13.021777343749989],[14.847070312500023,12.502099609374994],[15.08125,11.845507812499989],[15.029882812500006,11.11367187499999],[15.132226562500023,10.648486328124989],[15.276074218750011,10.357373046874997],[15.654882812500006,10.0078125],[14.243261718750006,9.979736328125],[13.977246093750011,9.691552734374994],[14.332324218750017,9.20351562499999],[15.1162109375,8.557324218749997],[15.5498046875,7.787890624999989],[15.480078125,7.523779296874991]]]},"properties":{"name":"Cameroon","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[27.4033203125,5.109179687499989],[27.7880859375,4.644677734374994],[28.19208984375001,4.350244140624994],[28.427539062500017,4.324169921874997],[28.72705078125,4.504980468749991],[29.224902343750017,4.391894531249989],[29.469628906250023,4.61181640625],[29.676855468750006,4.5869140625],[30.194921875,3.98193359375],[30.50830078125,3.835693359375],[30.586718750000017,3.62421875],[30.757226562500023,3.62421875],[30.83857421875001,3.49072265625],[30.90644531250001,3.408935546875],[30.754003906250006,3.041796874999989],[30.8466796875,2.847021484374991],[30.728613281250006,2.455371093749989],[31.176367187500006,2.270068359374989],[31.252734375000017,2.044580078124994],[29.94287109375,0.819238281249994],[29.934472656250023,0.4990234375],[29.717675781250023,0.098339843749997],[29.576953125000017,-1.387890625000011],[29.196582031250017,-1.719921875000011],[29.13154296875001,-2.195117187500003],[28.876367187500023,-2.400292968750009],[28.893945312500023,-2.635058593750003],[29.01435546875001,-2.72021484375],[29.224414062500017,-3.053515625],[29.211816406250023,-3.833789062500003],[29.403222656250023,-4.449316406250006],[29.404199218750023,-4.496679687500006],[29.32568359375,-4.835644531250011],[29.32343750000001,-4.898828125],[29.3427734375,-4.983105468750011],[29.542382812500023,-5.499804687500003],[29.594140625000023,-5.65078125],[29.60703125,-5.72265625],[29.59638671875001,-5.775976562500006],[29.490820312500006,-5.965429687500006],[29.480078125,-6.025],[29.50625,-6.172070312500011],[29.540820312500017,-6.313867187500009],[29.590625,-6.394433593750009],[29.70966796875001,-6.616894531250011],[29.798144531250017,-6.69189453125],[29.961816406250023,-6.803125],[30.10625,-6.9150390625],[30.212695312500017,-7.037890625],[30.31318359375001,-7.203710937500006],[30.40673828125,-7.460644531250011],[30.75117187500001,-8.193652343750003],[28.89814453125001,-8.485449218750006],[28.869531250000023,-8.785839843750011],[28.400683593750017,-9.224804687500011],[28.60419921875001,-9.678808593750006],[28.6455078125,-10.550195312500009],[28.383398437500006,-11.566699218750003],[28.482519531250006,-11.812109375],[29.064355468750023,-12.348828125000011],[29.48554687500001,-12.41845703125],[29.508203125000023,-12.228222656250011],[29.79511718750001,-12.155468750000011],[29.775195312500017,-13.438085937500006],[29.55419921875,-13.248925781250009],[29.20185546875001,-13.398339843750009],[29.014257812500006,-13.368847656250011],[28.730078125,-12.925488281250011],[28.550878906250006,-12.836132812500011],[28.412890625000017,-12.51806640625],[27.573828125,-12.22705078125],[27.1591796875,-11.579199218750006],[26.824023437500017,-11.965234375],[26.025976562500006,-11.89013671875],[25.349414062500017,-11.623046875],[25.28876953125001,-11.21240234375],[24.3779296875,-11.417089843750006],[24.36572265625,-11.1298828125],[23.96650390625001,-10.871777343750011],[23.901171875000017,-10.983203125],[23.833886718750023,-11.013671875],[23.463964843750006,-10.969335937500006],[23.076269531250006,-11.087890625],[22.814746093750017,-11.080273437500011],[22.56103515625,-11.055859375000011],[22.486132812500017,-11.08671875],[22.392968750000023,-11.159472656250003],[22.31494140625,-11.198632812500009],[22.27880859375,-11.194140625],[22.226171875,-11.121972656250009],[22.203515625000023,-10.829492187500009],[22.307031250000023,-10.691308593750009],[22.19775390625,-10.040625],[21.81318359375001,-9.46875],[21.905371093750006,-8.693359375],[21.806054687500023,-7.32861328125],[21.751074218750006,-7.30546875],[21.190332031250023,-7.284960937500003],[20.910937500000017,-7.281445312500011],[20.607812500000023,-7.277734375],[20.558398437500017,-7.244433593750003],[20.53583984375001,-7.182812500000011],[20.536914062500017,-7.121777343750011],[20.598730468750006,-6.93515625],[20.59003906250001,-6.919921875],[20.482226562500017,-6.915820312500003],[20.190039062500006,-6.9462890625],[19.997460937500023,-6.976464843750009],[19.87519531250001,-6.986328125],[19.527636718750017,-7.144433593750009],[19.483789062500023,-7.279492187500011],[19.479882812500023,-7.47216796875],[19.371679687500006,-7.655078125],[19.369921875000017,-7.70654296875],[19.3408203125,-7.966601562500003],[19.142675781250006,-8.00146484375],[18.944433593750006,-8.00146484375],[18.56269531250001,-7.9359375],[18.0087890625,-8.107617187500011],[17.643359375000017,-8.090722656250009],[17.57958984375,-8.099023437500009],[16.984765625000023,-7.257421875],[16.91943359375,-6.933984375],[16.813085937500006,-6.772558593750006],[16.742968750000017,-6.618457031250003],[16.697265625,-6.164257812500011],[16.537109375,-5.9658203125],[16.431445312500017,-5.900195312500003],[16.315234375000017,-5.865625],[13.978515625,-5.857226562500003],[13.346484375000017,-5.863378906250006],[13.184375,-5.85625],[12.452929687500017,-6.00048828125],[12.213671875000017,-5.758691406250009],[12.484570312500011,-5.71875],[12.451464843750017,-5.071484375000011],[12.502734375000017,-5.036914062500003],[12.573535156250017,-4.99658203125],[12.59619140625,-4.978417968750009],[12.8296875,-4.736621093750003],[12.947460937500011,-4.6953125],[13.057324218750011,-4.651074218750011],[13.07275390625,-4.634765625],[13.08740234375,-4.601953125],[13.136621093750023,-4.604296875],[13.414941406250023,-4.83740234375],[13.659570312500023,-4.721484375],[13.717089843750017,-4.454492187500009],[13.94091796875,-4.484667968750003],[14.358300781250023,-4.299414062500006],[14.449804687500006,-4.449511718750003],[14.365429687500011,-4.585546875],[14.410742187500006,-4.83125],[14.707910156250023,-4.881738281250009],[15.990039062500017,-3.766210937500006],[16.217382812500006,-3.0302734375],[16.21533203125,-2.177832031250006],[16.54072265625001,-1.840136718750003],[16.8798828125,-1.225878906250003],[17.752832031250023,-0.549023437500011],[18.072167968750023,2.01328125],[18.49091796875001,2.924414062499991],[18.6103515625,3.478417968749994],[18.594140625000023,4.346240234374989],[19.06855468750001,4.891406249999989],[19.5009765625,5.127490234374989],[19.806542968750023,5.089306640624997],[20.226367187500017,4.829638671874989],[20.55810546875,4.462695312499989],[22.422167968750017,4.134960937499997],[22.864550781250017,4.723876953125],[23.41718750000001,4.663134765624989],[24.31982421875,4.994140625],[25.065234375000017,4.967431640624994],[25.52509765625001,5.31210937499999],[26.822070312500017,5.062402343749994],[27.071875,5.199755859374989],[27.4033203125,5.109179687499989]]]},"properties":{"name":"Dem. Rep. Congo","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[18.6103515625,3.478417968749994],[18.49091796875001,2.924414062499991],[18.072167968750023,2.01328125],[17.752832031250023,-0.549023437500011],[16.8798828125,-1.225878906250003],[16.54072265625001,-1.840136718750003],[16.21533203125,-2.177832031250006],[16.217382812500006,-3.0302734375],[15.990039062500017,-3.766210937500006],[14.707910156250023,-4.881738281250009],[14.410742187500006,-4.83125],[14.365429687500011,-4.585546875],[14.449804687500006,-4.449511718750003],[14.358300781250023,-4.299414062500006],[13.94091796875,-4.484667968750003],[13.717089843750017,-4.454492187500009],[13.659570312500023,-4.721484375],[13.414941406250023,-4.83740234375],[13.136621093750023,-4.604296875],[13.08740234375,-4.601953125],[13.07275390625,-4.634765625],[13.048046875000011,-4.619238281250006],[12.971386718750011,-4.5517578125],[12.881054687500011,-4.445117187500003],[12.84814453125,-4.428906250000011],[12.50146484375,-4.5875],[12.018359375000017,-5.004296875],[11.777539062500011,-4.565820312500009],[11.130175781250017,-3.916308593750003],[11.234472656250006,-3.690820312500009],[11.504296875000023,-3.5203125],[11.685742187500011,-3.68203125],[11.8798828125,-3.665917968750009],[11.934179687500006,-3.318554687500011],[11.715429687500006,-3.176953125000011],[11.760156250000023,-2.983105468750011],[11.537792968750011,-2.83671875],[11.60546875,-2.342578125],[12.064453125,-2.41259765625],[12.446386718750006,-2.329980468750009],[12.43212890625,-1.928906250000011],[12.590429687500006,-1.826855468750011],[12.793554687500006,-1.931835937500011],[12.991992187500017,-2.313378906250009],[13.464941406250006,-2.395410156250009],[13.733789062500023,-2.138476562500003],[13.886914062500011,-2.465429687500006],[13.993847656250011,-2.490625],[14.199804687500006,-2.354199218750011],[14.162890625000017,-2.217578125],[14.383984375000011,-1.890039062500009],[14.47412109375,-0.573437500000011],[13.860058593750011,-0.203320312500011],[13.949609375000023,0.353808593749989],[14.32421875,0.62421875],[14.429882812500011,0.901464843749991],[14.180859375000011,1.370214843749991],[13.851367187500017,1.41875],[13.21630859375,1.2484375],[13.172167968750017,1.78857421875],[13.293554687500006,2.161572265624997],[14.578906250000017,2.199121093749994],[14.902441406250006,2.012304687499991],[15.741601562500023,1.914990234374997],[16.059375,1.676220703124997],[16.183398437500017,2.270068359374989],[16.468554687500017,2.831738281249997],[16.610742187500023,3.50537109375],[17.491601562500023,3.687304687499989],[18.160937500000017,3.499804687499989],[18.474414062500017,3.622998046874997],[18.6103515625,3.478417968749994]]]},"properties":{"name":"Congo","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-71.31972656249997,11.861914062500048],[-71.95810546875,11.66640625],[-72.24848632812501,11.196435546875009],[-72.690087890625,10.835839843749994],[-72.86933593750001,10.49125976562496],[-73.00654296874998,9.789160156250006],[-73.36621093749997,9.194140625000017],[-73.05839843749999,9.259570312500031],[-72.79638671874997,9.10898437499999],[-72.66542968749994,8.62758789062498],[-72.39033203124995,8.287060546874969],[-72.47197265624996,7.524267578124991],[-72.20771484374995,7.37026367187498],[-72.00664062499993,7.032617187500023],[-71.12861328124993,6.98671875],[-70.73715820312503,7.090039062499997],[-70.12919921874999,6.95361328125],[-69.42714843749997,6.123974609374997],[-68.47177734375,6.156542968749974],[-67.85917968749999,6.289892578124963],[-67.48198242187499,6.18027343750002],[-67.47387695312503,5.929980468750003],[-67.82490234374995,5.270458984375026],[-67.85527343750002,4.506884765624989],[-67.66162109375,3.864257812499986],[-67.3111328125,3.41586914062502],[-67.85908203124998,2.793603515624994],[-67.61870117187496,2.793603515624994],[-67.21083984375,2.390136718750043],[-66.87602539062499,1.223046875000037],[-67.082275390625,1.185400390625006],[-67.11923828124998,1.703613281249986],[-67.40043945312499,2.116699218750028],[-67.93623046874998,1.748486328124969],[-68.19379882812495,1.987011718749983],[-68.25595703125,1.845507812500017],[-68.17656249999999,1.719824218749991],[-69.84858398437493,1.708740234375043],[-69.85214843750003,1.05952148437504],[-69.31181640624999,1.050488281249969],[-69.15332031249994,0.65878906250002],[-69.47211914062498,0.72993164062504],[-70.05390624999993,0.578613281250028],[-70.07050781249993,-0.13886718750004],[-69.63398437500001,-0.50927734375],[-69.40024414062498,-1.194921874999977],[-69.66904296875003,-2.667675781249997],[-69.94819335937498,-4.200585937500009],[-69.96591796875003,-4.2359375],[-70.16752929687499,-4.050195312500009],[-70.24028320312496,-3.882714843749994],[-70.2984375,-3.844238281249972],[-70.33950195312502,-3.814355468750009],[-70.73510742187497,-3.781542968749989],[-70.09584960937494,-2.658203125000014],[-70.16474609374995,-2.639843750000011],[-70.24443359375002,-2.606542968749977],[-70.29462890624995,-2.552539062499989],[-70.57587890624995,-2.418261718749989],[-70.64799804687499,-2.405761718750014],[-70.70537109374996,-2.341992187499983],[-70.91455078125003,-2.218554687499974],[-70.96855468750002,-2.206835937499989],[-71.02729492187498,-2.225781250000026],[-71.11337890625003,-2.245410156250031],[-71.19638671874998,-2.313085937499963],[-71.39697265625,-2.334082031249977],[-71.55947265624997,-2.224218749999977],[-71.75253906249995,-2.15273437499998],[-71.80273437499997,-2.166308593749989],[-71.86728515624998,-2.227734374999983],[-71.932470703125,-2.288671874999963],[-71.98427734375,-2.326562499999952],[-72.21845703125001,-2.400488281250006],[-72.94111328124998,-2.394042968750028],[-72.9896484375,-2.33974609374998],[-73.15449218749993,-2.278222656249966],[-73.19697265624995,-1.830273437500011],[-73.49628906249993,-1.69306640625004],[-73.66430664062497,-1.248828124999946],[-73.86318359374997,-1.19667968749998],[-73.92695312500001,-1.125195312499983],[-73.98681640625003,-1.098144531249986],[-74.05439453124995,-1.028613281250031],[-74.18076171875,-0.997753906249955],[-74.24638671874999,-0.970605468750023],[-74.28388671874998,-0.927832031250006],[-74.33442382812498,-0.85087890624996],[-74.41787109375,-0.580664062499977],[-74.46518554687498,-0.517675781250034],[-74.51386718749993,-0.470117187500023],[-74.555078125,-0.429882812499997],[-74.61635742187494,-0.370019531249966],[-74.691650390625,-0.335253906249989],[-74.75537109375003,-0.298632812499989],[-74.78046874999998,-0.24453125],[-74.80175781249997,-0.200097656249994],[-75.13837890624998,-0.050488281249969],[-75.28447265624999,-0.10654296875002],[-75.77666015624999,0.08925781249998],[-76.27060546874998,0.439404296874997],[-76.49462890624997,0.23544921875002],[-77.396337890625,0.393896484374963],[-77.46767578124997,0.636523437500017],[-77.702880859375,0.837841796874997],[-78.1806640625,0.968554687499974],[-78.85966796874996,1.455371093750031],[-79.02543945312499,1.623681640625037],[-78.79296874999994,1.848730468749963],[-78.576904296875,1.773779296874977],[-78.59169921875,2.356640624999969],[-78.41689453125,2.483496093749963],[-78.06665039062494,2.509130859375034],[-77.81357421875,2.716357421874974],[-77.076806640625,3.913281250000026],[-77.26352539062503,3.893212890625023],[-77.27802734374995,4.058496093750023],[-77.35820312499996,3.944726562500037],[-77.40874023437496,4.24775390625004],[-77.52070312499993,4.212792968750023],[-77.35351562499997,4.398291015624977],[-77.28632812499995,4.72172851562496],[-77.373291015625,5.323974609375],[-77.53442382812497,5.537109374999986],[-77.24926757812497,5.780175781250037],[-77.46943359374995,6.176757812500014],[-77.368798828125,6.575585937499994],[-77.90117187499999,7.229345703125048],[-77.76191406249995,7.698828125000034],[-77.53828124999995,7.56625976562502],[-77.19599609374995,7.972460937500003],[-77.47851562499994,8.498437500000037],[-77.37421874999993,8.65830078125002],[-76.85185546875002,8.09047851562498],[-76.924658203125,7.973193359374974],[-76.78657226562493,7.931591796875026],[-76.7720703125,8.310546875000043],[-76.92045898437496,8.573730468750014],[-76.27685546875,8.989111328124991],[-76.02724609374997,9.365771484374989],[-75.63935546874998,9.450439453125014],[-75.680029296875,9.729785156249989],[-75.53857421874997,10.205175781250034],[-75.708349609375,10.143408203124963],[-75.44599609374995,10.610888671874989],[-74.84458007812498,11.109716796875006],[-74.330224609375,10.996679687499991],[-74.51625976562497,10.8625],[-74.40087890625,10.76523437499999],[-74.14291992187503,11.320849609375031],[-73.31337890624997,11.295751953124991],[-72.275,11.88925781250002],[-72.13574218749994,12.188574218749977],[-71.71455078124993,12.41997070312496],[-71.26210937499997,12.335302734375034],[-71.13730468750003,12.04633789062504],[-71.31972656249997,11.861914062500048]]]},"properties":{"name":"Colombia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[43.788671875,-12.307031250000023],[43.85898437500006,-12.368261718749977],[43.66367187500006,-12.342871093749949],[43.63134765624997,-12.247070312499972],[43.788671875,-12.307031250000023]]],[[[44.476367187500074,-12.08154296875],[44.504980468750006,-12.356542968749991],[44.220117187499994,-12.171386718750014],[44.476367187500074,-12.08154296875]]],[[[43.46582031249997,-11.901269531249966],[43.226660156250006,-11.75185546874998],[43.2990234375001,-11.374511718750028],[43.39296875000005,-11.408593749999952],[43.46582031249997,-11.901269531249966]]]]},"properties":{"name":"Comoros","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-24.308251953124966,14.856298828124991],[-24.44052734374992,14.834814453124963],[-24.496875,14.980273437500017],[-24.329492187499937,15.019482421875011],[-24.308251953124966,14.856298828124991]]],[[[-23.18212890624997,15.136767578125017],[-23.210253906250017,15.32353515625006],[-23.119335937499955,15.26840820312502],[-23.18212890624997,15.136767578125017]]],[[[-23.444238281249994,15.00795898437498],[-23.5046875,14.916113281250006],[-23.70537109374999,14.96132812499998],[-23.74809570312499,15.328515625],[-23.444238281249994,15.00795898437498]]],[[[-22.917724609375,16.237255859374955],[-22.69262695312497,16.169042968750006],[-22.710107421874994,16.043359374999966],[-22.95927734374996,16.045117187499983],[-22.917724609375,16.237255859374955]]],[[[-24.08769531249999,16.62250976562501],[-24.03271484374997,16.57202148437503],[-24.243066406250023,16.599414062500017],[-24.32236328124992,16.49311523437504],[-24.398095703124966,16.61840820312497],[-24.08769531249999,16.62250976562501]]],[[[-22.888330078124966,16.659082031249994],[-22.980615234374937,16.700878906249983],[-22.93291015624999,16.84101562500004],[-22.888330078124966,16.659082031249994]]],[[[-24.88706054687495,16.81811523437497],[-25.09306640624999,16.83251953125],[-24.936474609374983,16.92211914062503],[-24.88706054687495,16.81811523437497]]],[[[-25.169824218749994,16.94648437500001],[-25.308300781249955,16.93583984374999],[-25.337109374999955,17.091015624999983],[-25.03466796875,17.176464843749983],[-24.979687499999983,17.09472656250003],[-25.169824218749994,16.94648437500001]]]]},"properties":{"name":"Cape Verde","childNum":8}},{"geometry":{"type":"Polygon","coordinates":[[[-83.6419921875,10.917236328125],[-83.346826171875,10.315380859374997],[-82.77841796874999,9.66953125],[-82.56357421874999,9.57666015625],[-82.56923828125,9.55820312499999],[-82.58652343749999,9.538818359375],[-82.64409179687499,9.505859375],[-82.801025390625,9.591796875],[-82.843994140625,9.57080078125],[-82.86015624999999,9.511474609375],[-82.88896484374999,9.481005859374989],[-82.925048828125,9.469042968749989],[-82.93984375,9.449169921874997],[-82.94033203125,9.060107421874989],[-82.88134765625,9.055859375],[-82.78305664062499,8.990283203124989],[-82.741162109375,8.951708984374989],[-82.72783203124999,8.916064453124989],[-82.91704101562499,8.740332031249991],[-82.855712890625,8.635302734374989],[-82.84477539062499,8.489355468749991],[-82.86162109374999,8.45351562499999],[-83.02734375,8.337744140624991],[-82.879345703125,8.070654296874991],[-83.12333984374999,8.353076171874989],[-83.16240234374999,8.588183593749989],[-83.4697265625,8.706835937499989],[-83.29150390625,8.406005859375],[-83.54375,8.445849609374989],[-83.73408203125,8.614453125],[-83.613720703125,8.804052734374991],[-83.73691406249999,9.150292968749994],[-84.58159179687499,9.568359375],[-84.71494140624999,9.8994140625],[-85.23564453124999,10.242089843749994],[-85.2365234375,10.107373046874997],[-84.88642578125,9.820947265624994],[-85.07705078125,9.60195312499999],[-85.31455078124999,9.8109375],[-85.62485351562499,9.902441406249991],[-85.84965820312499,10.292041015624989],[-85.667236328125,10.745019531249994],[-85.90800781249999,10.897558593749991],[-85.7443359375,11.06210937499999],[-85.5841796875,11.189453125],[-84.9091796875,10.9453125],[-84.6341796875,11.045605468749997],[-83.91928710937499,10.7353515625],[-83.71293945312499,10.785888671875],[-83.6419921875,10.917236328125]]]},"properties":{"name":"Costa Rica","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-82.56176757812503,21.571679687500023],[-82.959619140625,21.441308593750023],[-83.18378906250001,21.59345703125004],[-82.97358398437498,21.592285156250057],[-83.08251953124997,21.791406250000023],[-82.99121093750003,21.942724609375034],[-82.71455078124998,21.890283203125023],[-82.56176757812503,21.571679687500023]]],[[[-77.66899414062493,21.951953125000045],[-77.91855468749998,22.088085937499983],[-77.63369140624994,22.054003906250074],[-77.66899414062493,21.951953125000045]]],[[[-77.87939453125,22.127539062500034],[-78.04165039062502,22.201269531250034],[-77.99921874999998,22.298730468749994],[-77.87939453125,22.127539062500034]]],[[[-81.83745117187499,23.163037109374955],[-81.26235351562497,23.156835937500034],[-81.14462890624998,23.054931640625057],[-80.65014648437494,23.10307617187499],[-80.36489257812502,22.943408203125074],[-79.82026367187498,22.887011718750045],[-79.27568359374999,22.407617187499994],[-78.68647460937493,22.366845703125023],[-77.63681640624995,21.79736328125],[-77.49711914062502,21.78833007812503],[-77.58315429687497,21.889257812499977],[-77.49726562499995,21.871630859375045],[-77.14414062499995,21.643603515625017],[-77.36616210937498,21.612646484375034],[-77.25288085937498,21.483496093750006],[-77.0986328125,21.589013671875023],[-76.86743164062497,21.330419921875006],[-75.72294921874996,21.111035156249983],[-75.59580078125,20.99467773437499],[-75.72456054687493,20.71455078125004],[-74.882568359375,20.65063476562497],[-74.51313476562495,20.384570312500045],[-74.16748046874997,20.292187499999955],[-74.15371093750002,20.168554687500006],[-75.11640624999995,19.901416015625017],[-75.151611328125,20.008349609375045],[-75.29047851562495,19.893115234375017],[-76.15844726562497,19.98974609374997],[-77.715087890625,19.85546874999997],[-77.10380859374999,20.407519531250017],[-77.22958984374995,20.64375],[-78.11635742187497,20.761865234374994],[-78.49077148437493,21.05371093750003],[-78.72768554687497,21.592724609374955],[-79.35742187500003,21.58515625000001],[-80.23134765625,21.872167968750063],[-80.48544921874998,22.1234375],[-81.03564453124997,22.073583984375063],[-81.18549804687495,22.26796875000005],[-81.284375,22.109423828125074],[-81.84941406249993,22.21367187499999],[-82.077734375,22.3876953125],[-81.71035156250002,22.496679687500006],[-81.83881835937498,22.672460937500034],[-82.73803710937497,22.689257812500074],[-83.37963867187503,22.222998046875034],[-83.90073242187495,22.17011718750001],[-84.03095703124993,21.94311523437503],[-84.502587890625,21.776171875000045],[-84.50136718750002,21.930273437499977],[-84.88720703125003,21.856982421875074],[-84.32636718749998,22.074316406250034],[-84.36127929687498,22.37890625],[-84.04492187500003,22.666015625000057],[-83.25781249999997,22.967578125000017],[-81.83745117187499,23.163037109374955]]]]},"properties":{"name":"Cuba","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[-68.75107421874999,12.059765625],[-68.9951171875,12.141845703125],[-69.15888671875,12.380273437499994],[-68.75107421874999,12.059765625]]]},"properties":{"name":"Curaçao","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-81.36953124999997,19.34887695312497],[-81.10712890624995,19.305175781250057],[-81.40478515624994,19.278417968750006],[-81.36953124999997,19.34887695312497]]],[[[-79.823388671875,19.711914062500057],[-79.90620117187501,19.702539062499994],[-79.74228515625,19.757128906250017],[-79.823388671875,19.711914062500057]]]]},"properties":{"name":"Cayman Is.","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[34.004492187500006,35.065234375],[33.47578125000001,35.000341796875],[33.3837890625,35.1626953125],[32.91953125,35.087841796875],[32.71269531250002,35.171044921874994],[32.8798828125,35.180566406249994],[32.94160156250001,35.390429687499996],[33.60761718750001,35.354150390624994],[34.55605468750002,35.662060546875],[33.941992187500006,35.292041015624996],[34.004492187500006,35.065234375]]]},"properties":{"name":"N. Cyprus","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[32.71269531250002,35.171044921874994],[32.91953125,35.087841796875],[33.3837890625,35.1626953125],[33.47578125000001,35.000341796875],[34.004492187500006,35.065234375],[34.05019531250002,34.98837890625],[33.69941406250001,34.969873046874994],[33.007910156250006,34.569580078125],[32.44902343750002,34.729443359375],[32.31718750000002,34.9533203125],[32.30097656250001,35.082958984375],[32.71269531250002,35.171044921874994]]]},"properties":{"name":"Cyprus","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[14.809375,50.858984375],[14.895800781250017,50.861376953124996],[14.98291015625,50.886572265625],[14.99375,51.01435546875],[16.007226562500023,50.611621093749996],[16.2822265625,50.655615234375],[16.419726562500017,50.573632812499994],[16.210351562500023,50.423730468749994],[16.63916015625,50.1021484375],[16.989648437500023,50.2369140625],[16.88007812500001,50.427050781249996],[17.41523437500001,50.254785156249994],[17.702246093750006,50.307177734374996],[17.627050781250006,50.11640625],[17.874804687500017,49.972265625],[18.0283203125,50.03525390625],[18.562402343750023,49.879345703125],[18.83222656250001,49.510791015624996],[18.160937500000017,49.257373046874996],[18.0859375,49.06513671875],[17.75849609375001,48.888134765625],[17.135644531250023,48.841064453125],[16.953125,48.598828125],[16.543554687500006,48.796240234375],[16.057226562500006,48.754785156249994],[15.066796875000023,48.997851562499996],[14.691308593750023,48.59921875],[14.049121093750017,48.602490234375],[13.814746093750017,48.766943359375],[13.769921875000023,48.815966796874996],[13.684960937500023,48.876708984375],[13.547656250000017,48.95966796875],[13.440722656250017,48.95556640625],[13.401171875000017,48.977587890624996],[12.916699218750011,49.33046875],[12.68115234375,49.414501953125],[12.390527343750023,49.739648437499994],[12.5125,49.87744140625],[12.09921875,50.310986328125],[12.134863281250006,50.3109375],[12.1748046875,50.288378906249996],[12.231152343750011,50.244873046875],[12.27734375,50.181445312499996],[12.3056640625,50.205712890624994],[12.549023437500011,50.393408203125],[13.016406250000017,50.490380859374994],[13.18115234375,50.510498046875],[14.369042968750023,50.898730468749996],[14.319726562500023,51.03779296875],[14.545703125000017,50.993945312499996],[14.559667968750006,50.954931640625],[14.59521484375,50.918603515624994],[14.623828125000017,50.91474609375],[14.613574218750017,50.85556640625],[14.658203125,50.8326171875],[14.723339843750011,50.814697265625],[14.766503906250023,50.818310546875],[14.797460937500006,50.842333984374996],[14.809375,50.858984375]]]},"properties":{"name":"Czech Rep.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[14.1982421875,53.919042968750034],[13.92578125,53.879052734374966],[13.827734375,54.12724609374999],[14.1982421875,53.919042968750034]]],[[[13.709179687500011,54.382714843749994],[13.707324218750074,54.281152343749994],[13.190039062500034,54.32563476562501],[13.336816406249994,54.697119140625006],[13.65761718750008,54.55957031249997],[13.709179687500011,54.382714843749994]]],[[[9.739746093750028,54.82553710937498],[10.022167968750011,54.673925781250006],[9.86865234375,54.47246093749999],[10.731542968750006,54.31625976562506],[11.013378906250068,54.37915039062497],[11.008593750000074,54.18115234374997],[10.810742187500068,54.075146484374955],[10.917773437500045,53.99531250000004],[11.39960937500004,53.94462890625002],[12.111328125,54.168310546875006],[12.57539062500004,54.467382812500006],[13.028613281250017,54.411035156249994],[13.448046875000017,54.14086914062503],[13.724218750000063,54.153222656249966],[13.865527343750074,53.85336914062498],[14.258886718750006,53.729638671874994],[14.298730468750051,53.55644531249999],[14.41455078125,53.28349609374996],[14.412304687500011,53.216748046874955],[14.410937500000074,53.19902343749999],[14.368554687500051,53.105566406250034],[14.293164062500068,53.026757812499966],[14.138867187500068,52.93286132812503],[14.128613281250011,52.87822265625002],[14.253710937500017,52.78251953124996],[14.514062500000023,52.645605468750034],[14.619433593750017,52.52851562499998],[14.569726562499994,52.431103515624955],[14.554589843750023,52.35966796874996],[14.573925781250068,52.31416015625001],[14.615625,52.277636718750045],[14.679882812500068,52.25],[14.752539062500034,52.08183593750002],[14.601660156250034,51.832373046875006],[14.738671875000051,51.62714843750004],[14.7109375,51.54492187499997],[14.724707031250063,51.523876953124955],[14.90595703125004,51.463330078124955],[14.935546875000028,51.435351562500045],[14.9638671875,51.095117187499994],[14.917480468750057,51.00874023437498],[14.814257812499989,50.871630859375045],[14.809375,50.858984375000034],[14.797460937500034,50.84233398437502],[14.766503906250051,50.81831054687501],[14.72333984375004,50.81469726562497],[14.658203125,50.832617187500006],[14.613574218750045,50.85556640625006],[14.623828125000017,50.91474609375004],[14.595214843750057,50.91860351562502],[14.559667968750006,50.954931640625034],[14.545703124999989,50.99394531249999],[14.319726562500051,51.037792968749955],[14.36904296875008,50.89873046874996],[13.18115234375,50.510498046875],[13.016406250000017,50.490380859374994],[12.549023437500011,50.393408203125034],[12.3056640625,50.205712890624994],[12.27734375,50.18144531250002],[12.231152343749983,50.24487304687497],[12.174804687500057,50.28837890624996],[12.134863281250006,50.31093750000002],[12.099218750000034,50.31098632812504],[12.089843749999972,50.30175781250003],[12.089746093750051,50.2685546875],[12.294598214285761,50.13608119419641],[12.5125,49.87744140625],[12.390527343750051,49.739648437499994],[12.68115234375,49.41450195312501],[12.91669921875004,49.33046875000002],[13.401171875000074,48.97758789062499],[13.440722656250045,48.95556640625003],[13.547656250000074,48.95966796874998],[13.684960937500051,48.87670898437506],[13.769921875000051,48.81596679687502],[13.814746093750017,48.76694335937498],[13.802929687500011,48.74750976562501],[13.798828124999972,48.62167968750006],[13.785351562499983,48.58745117187502],[13.486621093750074,48.58183593750002],[13.471679687500028,48.57182617187502],[13.459863281250023,48.564550781250034],[13.409375,48.39414062500006],[13.322851562500006,48.33125],[13.215234375000023,48.301904296874994],[12.760351562500063,48.10698242187499],[12.95351562500008,47.890625],[12.897656250000068,47.721875],[13.054101562500051,47.655126953125034],[13.047949218750034,47.57915039062502],[13.031542968750074,47.50800781250001],[13.01435546875004,47.478076171875045],[12.968066406250017,47.475683593750006],[12.878906250000057,47.506445312500034],[12.809375,47.542187499999955],[12.782812500000034,47.56416015624998],[12.781152343750051,47.590429687500006],[12.796191406249989,47.60703125],[12.771386718750023,47.63940429687503],[12.685839843750074,47.66933593750002],[12.209277343750074,47.71826171875003],[12.196875,47.709082031250034],[12.203808593750011,47.64672851562503],[12.185644531250063,47.61953125],[11.041992187500028,47.39311523437496],[10.98085937499999,47.39814453125001],[10.893945312500051,47.470458984375],[10.870605468750028,47.500781250000045],[10.873046874999972,47.52021484375001],[10.741601562500023,47.52412109375001],[10.65869140625,47.547216796875006],[10.482812500000051,47.54179687499996],[10.439453125000028,47.55156249999999],[10.403906250000063,47.41699218750003],[10.369140625,47.366064453125034],[10.18300781250008,47.27880859375003],[10.200292968750063,47.36342773437505],[10.066308593750023,47.39335937500002],[10.064575892857171,47.42369419642856],[10.059863281250045,47.44907226562498],[10.034082031250023,47.47358398437501],[9.971582031249994,47.50532226562498],[9.839160156250017,47.55229492187496],[9.748925781250023,47.575537109375006],[9.524023437500034,47.52421875000002],[8.572656250000023,47.775634765625],[8.435742187500011,47.73134765625002],[8.403417968750006,47.687792968750045],[8.413281250000068,47.66269531249998],[8.451757812500006,47.65180664062498],[8.552343750000063,47.65913085937498],[8.56708984375004,47.65190429687502],[8.57050781250004,47.63779296874998],[8.55947265625008,47.62402343750003],[8.477636718750034,47.61269531250002],[8.454003906249994,47.59619140625003],[7.615625,47.59272460937504],[7.616601562500023,48.15678710937502],[8.134863281250006,48.97358398437498],[7.450585937500051,49.152197265625034],[6.735449218750006,49.16059570312498],[6.344335937500006,49.45273437499998],[6.4873046875,49.798486328124994],[6.204882812500017,49.915136718750034],[6.13818359375,49.97431640625001],[6.10976562500008,50.034375],[6.116503906250045,50.120996093749966],[6.340917968750006,50.451757812500034],[5.993945312500017,50.75043945312504],[6.048437500000034,50.90488281250006],[5.857519531250034,51.030126953125006],[6.129980468750034,51.14741210937501],[6.198828125000034,51.45],[5.948730468750057,51.80268554687501],[6.800390625,51.96738281249998],[6.724511718749994,52.080224609374966],[7.035156250000057,52.38022460937498],[6.748828125000074,52.464013671874994],[6.710742187500045,52.61787109374998],[7.033007812500045,52.65136718749997],[7.197265625000028,53.28227539062499],[7.074316406250034,53.477636718750006],[7.285253906250034,53.68134765625001],[8.00927734375,53.69072265624999],[8.108496093750063,53.46767578125002],[8.245214843750006,53.44531249999997],[8.333886718750051,53.606201171875],[8.495214843750063,53.39423828124998],[8.618945312500045,53.875],[9.20556640625,53.85595703124997],[9.783984375000074,53.554638671874955],[9.31201171875,53.859130859375],[8.92041015625,53.96533203125006],[8.906640625000023,54.26079101562502],[8.625781250000017,54.35395507812501],[8.951855468750011,54.46757812499996],[8.670312500000023,54.903417968750034],[9.739746093750028,54.82553710937498]]],[[[8.307714843750034,54.786962890625034],[8.451464843750017,55.05537109374998],[8.3798828125,54.89985351562501],[8.629589843750068,54.891748046874966],[8.307714843750034,54.786962890625034]]]]},"properties":{"name":"Germany","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[43.24599609375002,11.499804687499989],[42.92275390625002,10.999316406249989],[42.557714843750006,11.080761718749997],[41.79824218750002,10.98046875],[41.79267578125001,11.68603515625],[42.378515625,12.46640625],[42.40859375000002,12.494384765625],[42.45,12.521337890624991],[42.47939453125002,12.513623046874997],[42.703710937500006,12.380322265624997],[42.76748046875002,12.4228515625],[42.825292968750006,12.5693359375],[42.86591796875001,12.622802734375],[42.88330078125,12.621289062499997],[43.00566406250002,12.662304687499997],[43.11669921875,12.70859375],[43.353515625,12.367041015624991],[43.38027343750002,12.091259765624997],[42.64003906250002,11.560107421874989],[42.52177734375002,11.572167968749994],[42.58378906250002,11.496777343749997],[43.04277343750002,11.588476562499991],[43.24599609375002,11.499804687499989]]]},"properties":{"name":"Djibouti","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-61.281689453125,15.2490234375],[-61.37539062499999,15.227294921875],[-61.45810546874999,15.633105468750003],[-61.277246093749994,15.526708984374991],[-61.281689453125,15.2490234375]]]},"properties":{"name":"Dominica","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[11.361425781250006,54.891650390625045],[11.739550781250017,54.80742187500002],[11.765917968750074,54.67944335937506],[11.457421875000023,54.628857421874955],[11.035546875000051,54.77309570312505],[11.058593750000028,54.940576171874966],[11.361425781250006,54.891650390625045]]],[[[12.549218750000051,54.96577148437504],[12.11884765625004,54.91440429687506],[12.274023437500034,55.064111328124994],[12.549218750000051,54.96577148437504]]],[[[10.061230468750068,54.88637695312502],[9.80625,54.90600585937503],[9.78125,55.06904296875001],[10.061230468750068,54.88637695312502]]],[[[10.734082031250011,54.750732421875],[10.621679687500006,54.851416015625006],[10.95107421875008,55.15620117187501],[10.734082031250011,54.750732421875]]],[[[15.087695312500017,55.021875],[14.684179687500063,55.10224609375004],[14.765332031250068,55.296728515625034],[15.132617187500017,55.14453125000003],[15.087695312500017,55.021875]]],[[[10.645117187500006,55.60981445312498],[10.785253906250034,55.13339843749998],[10.44277343750008,55.04877929687498],[9.988769531250028,55.163183593750006],[9.860644531250045,55.515478515625034],[10.645117187500006,55.60981445312498]]],[[[12.665722656250068,55.596533203125006],[12.550878906250034,55.55625],[12.59921875,55.68022460937502],[12.665722656250068,55.596533203125006]]],[[[12.56875,55.785058593749966],[12.215039062500011,55.46650390624998],[12.413085937500028,55.28618164062502],[12.089941406250006,55.18813476562505],[12.050390625000034,54.81533203125002],[11.8623046875,54.77260742187502],[11.653808593750057,55.186914062499966],[11.286328125000068,55.20444335937498],[10.978906250000051,55.721533203125006],[11.322265625000028,55.752539062500006],[11.627734375000074,55.95688476562498],[11.819726562500023,55.69765625000002],[11.86640625000004,55.968164062499966],[12.218945312499983,56.11865234374997],[12.578710937500006,56.06406250000006],[12.56875,55.785058593749966]]],[[[11.052148437500051,57.25253906250006],[10.873828125000045,57.26225585937499],[11.174511718750011,57.322900390624994],[11.052148437500051,57.25253906250006]]],[[[9.739746093750028,54.82553710937498],[8.670312500000023,54.903417968750034],[8.61591796875004,55.41821289062503],[8.132128906250074,55.59980468749998],[8.16396484375008,56.60688476562498],[8.671679687500045,56.49565429687496],[8.88808593750008,56.73505859374998],[9.06708984375004,56.79384765625005],[9.196386718750006,56.70166015625],[9.2548828125,57.01171875000003],[8.992773437499977,57.01611328125003],[8.771972656250028,56.72529296875004],[8.468359375,56.66455078125],[8.284082031250023,56.85234374999999],[8.618554687500051,57.11127929687498],[9.43359375,57.17431640625003],[9.96230468750008,57.580957031249994],[10.609960937500034,57.73691406249998],[10.282714843750057,56.620507812499994],[10.926171875000051,56.44326171875002],[10.753417968750028,56.24199218749999],[10.31875,56.212890625],[10.18300781250008,55.86518554687504],[9.903710937500023,55.84282226562502],[10.02363281250004,55.76142578125004],[9.591113281250017,55.49321289062502],[9.670996093750063,55.26640624999999],[9.453710937500006,55.03955078125006],[9.732324218750023,54.96801757812506],[9.739746093750028,54.82553710937498]]]]},"properties":{"name":"Denmark","childNum":10,"cp":[10.2768332,56.1773879]}},{"geometry":{"type":"Polygon","coordinates":[[[-71.647216796875,19.195947265624994],[-71.746484375,19.285839843749997],[-71.71147460937499,19.486572265625],[-71.75742187499999,19.688183593749997],[-71.779248046875,19.718164062499994],[-71.6673828125,19.8486328125],[-70.95415039062499,19.913964843749994],[-70.19384765625,19.63803710937499],[-69.95683593749999,19.671875],[-69.739404296875,19.29921875],[-69.23247070312499,19.27182617187499],[-69.60595703125,19.206494140624997],[-69.62363281249999,19.117822265624994],[-68.684765625,18.90478515625],[-68.33916015624999,18.611523437499997],[-68.68740234375,18.21494140624999],[-68.9349609375,18.408007812500003],[-69.27451171874999,18.43984375],[-69.770654296875,18.443554687499997],[-70.479931640625,18.21728515625],[-70.644677734375,18.336230468750003],[-71.02783203125,18.273193359375],[-71.43896484375,17.63559570312499],[-71.63173828125,17.773632812499997],[-71.768310546875,18.03916015624999],[-71.76376953124999,18.20395507812499],[-71.737255859375,18.270800781250003],[-71.7619140625,18.34130859375],[-71.87255859375,18.416210937499997],[-71.940380859375,18.512597656249994],[-72.000390625,18.597900390625],[-71.98686523437499,18.6103515625],[-71.86650390624999,18.614160156249994],[-71.74321289062499,18.73291015625],[-71.72705078125,18.80322265625],[-71.733642578125,18.856396484374997],[-71.80712890625,18.987011718749997],[-71.647216796875,19.195947265624994]]]},"properties":{"name":"Dominican Rep.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[8.207617187500006,36.518945312499994],[8.348730468750006,36.36796875],[8.318066406250011,35.654931640624994],[8.31640625,35.403125],[8.35986328125,35.299609375],[8.394238281250011,35.203857421875],[8.312109375,35.084619140624994],[8.27685546875,34.9794921875],[8.24560546875,34.73408203125],[7.513867187500011,34.080517578125],[7.534375,33.717919921874994],[7.877246093750017,33.172119140625],[8.1125,33.055322265624994],[8.333398437500023,32.543603515624994],[9.044042968750006,32.07236328125],[9.160253906250006,31.621337890625],[9.224023437500023,31.373681640624994],[9.51875,30.229394531249994],[9.310253906250011,30.115234375],[9.805273437500006,29.176953125],[9.916015625,27.785693359374996],[9.74755859375,27.330859375],[9.883203125000023,26.630810546874997],[9.491406250000011,26.333740234375],[9.4482421875,26.067138671875],[10.000683593750011,25.332080078125003],[10.255859375,24.591015625],[10.395898437500023,24.485595703125],[10.686132812500006,24.55136718749999],[11.507617187500017,24.314355468749994],[11.967871093750006,23.517871093750003],[7.481738281250017,20.873095703125003],[5.836621093750011,19.479150390624994],[4.227636718750006,19.142773437499997],[3.3564453125,18.986621093750003],[3.119726562500006,19.103173828124994],[3.255859375,19.4109375],[3.130273437500023,19.85019531249999],[1.685449218750023,20.378369140624997],[1.610644531250017,20.555566406249994],[1.165722656250011,20.817431640625003],[1.1455078125,21.102246093749997],[-1.947900390624994,23.124804687500003],[-4.822607421874977,24.99560546875],[-8.683349609375,27.2859375],[-8.683349609375,27.656445312499997],[-8.683349609375,27.900390625],[-8.659912109375,28.718603515625],[-7.485742187499994,29.392236328124994],[-7.427685546874983,29.425],[-7.142431640624977,29.619580078124997],[-6.855566406249977,29.601611328124996],[-6.755126953125,29.583837890625],[-6.635351562499977,29.568798828124997],[-6.597753906249977,29.578955078125],[-6.520556640624989,29.659863281249997],[-6.479736328125,29.820361328124996],[-6.00429687499999,29.83125],[-5.448779296874989,29.956933593749994],[-5.293652343749983,30.058642578124996],[-5.180126953124983,30.166162109374994],[-4.96826171875,30.465380859374996],[-4.778515624999983,30.552392578124994],[-4.529150390624977,30.625537109374996],[-4.322851562499977,30.698876953124994],[-4.148779296874977,30.8095703125],[-3.626904296874983,31.000927734374997],[-3.833398437499994,31.197802734374996],[-3.837109374999983,31.512353515624994],[-3.768164062499977,31.68955078125],[-3.700244140624989,31.700097656249994],[-3.604589843749977,31.686767578125],[-3.439794921874977,31.704541015624997],[-3.017382812499989,31.834277343749996],[-2.988232421874983,31.87421875],[-2.930859374999983,32.042529296874996],[-2.863427734374994,32.07470703125],[-1.275341796874983,32.089013671874994],[-1.16259765625,32.399169921875],[-1.111035156249983,32.552294921874996],[-1.188232421875,32.60849609375],[-1.29638671875,32.675683593749994],[-1.352148437499977,32.703369140625],[-1.45,32.784814453124994],[-1.510009765625,32.87763671875],[-1.550732421874983,33.073583984375],[-1.67919921875,33.318652343749996],[-1.795605468749983,34.751904296875],[-2.131787109374983,34.970849609374994],[-2.190771484374977,35.02978515625],[-2.219628906249994,35.10419921875],[-1.673632812499989,35.18310546875],[-0.426123046874977,35.8615234375],[-0.048242187499994,35.8328125],[0.312207031250011,36.162353515625],[0.9716796875,36.4439453125],[2.593359375,36.60068359375],[2.972851562500011,36.784472656249996],[3.779003906250011,36.89619140625],[4.758105468750017,36.896337890625],[5.29541015625,36.648242187499996],[6.486523437500011,37.085742187499996],[6.927539062500017,36.91943359375],[7.238476562500011,36.968505859375],[7.204296875000011,37.0923828125],[7.910449218750017,36.856347656249994],[8.576562500000023,36.93720703125],[8.601269531250011,36.833935546875],[8.207617187500006,36.518945312499994]]]},"properties":{"name":"Algeria","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-80.131591796875,-2.973144531249957],[-80.27294921875003,-2.995898437499974],[-80.22368164062502,-2.753125],[-80.08076171874995,-2.668847656249966],[-79.90903320312495,-2.725585937499972],[-80.131591796875,-2.973144531249957]]],[[[-90.42392578125,-1.339941406250034],[-90.51953124999994,-1.299121093749974],[-90.47719726562494,-1.22099609374996],[-90.42392578125,-1.339941406250034]]],[[[-89.41889648437498,-0.911035156249966],[-89.60859374999998,-0.888574218750009],[-89.28784179687503,-0.689843750000023],[-89.41889648437498,-0.911035156249966]]],[[[-90.33486328125,-0.771582031249977],[-90.54213867187502,-0.676464843749955],[-90.53168945312493,-0.581445312499966],[-90.26938476562498,-0.48466796874996],[-90.19272460937498,-0.658789062500006],[-90.33486328125,-0.771582031249977]]],[[[-91.42597656249995,-0.460839843749994],[-91.61074218749994,-0.44394531250002],[-91.64667968749998,-0.284472656249946],[-91.46015625000001,-0.255664062500031],[-91.42597656249995,-0.460839843749994]]],[[[-90.57392578124993,-0.333984375],[-90.8677734375,-0.271386718750037],[-90.78037109374998,-0.160449218749989],[-90.57392578124993,-0.333984375]]],[[[-91.27216796874998,0.025146484374986],[-90.799658203125,-0.752050781249991],[-90.90551757812497,-0.94052734375002],[-91.13105468750001,-1.019628906249977],[-91.41904296874998,-0.996679687500006],[-91.49541015624999,-0.860937499999977],[-91.120947265625,-0.559082031250028],[-91.36918945312493,-0.287207031249977],[-91.42885742187502,-0.023388671874955],[-91.59682617187497,0.002099609374994],[-91.36137695312496,0.125830078124977],[-91.27216796874998,0.025146484374986]]],[[[-78.90922851562502,1.252783203124977],[-78.99169921875003,1.293212890625043],[-78.89980468749997,1.359765625],[-78.90922851562502,1.252783203124977]]],[[[-75.28447265624999,-0.10654296875002],[-75.62626953124999,-0.122851562499974],[-75.63203125000001,-0.157617187500037],[-75.56059570312502,-0.200097656249994],[-75.49106445312498,-0.24833984374996],[-75.42470703124997,-0.408886718749983],[-75.259375,-0.59013671874996],[-75.24960937499998,-0.951855468750026],[-75.34819335937499,-0.966796874999957],[-75.38012695312503,-0.94023437499996],[-75.40805664062503,-0.92431640625],[-75.42041015624997,-0.962207031250003],[-75.570556640625,-1.53125],[-76.08979492187501,-2.133105468749974],[-76.6791015625,-2.562597656249991],[-77.860595703125,-2.981640625000011],[-78.240380859375,-3.472558593750009],[-78.345361328125,-3.397363281249966],[-78.64799804687499,-4.248144531250006],[-78.68603515625003,-4.562402343749994],[-78.86152343749998,-4.665039062499943],[-78.90761718749997,-4.714453124999977],[-78.92578125,-4.770703124999983],[-78.91420898437497,-4.818652343749974],[-78.919189453125,-4.858398437499986],[-78.97539062499999,-4.873242187499997],[-78.99526367187497,-4.908007812499974],[-79.03330078124998,-4.96914062499999],[-79.07626953125003,-4.990625],[-79.18666992187497,-4.958203124999983],[-79.26811523437493,-4.957617187499949],[-79.33095703124997,-4.92783203125002],[-79.39941406249997,-4.840039062499983],[-79.45576171874998,-4.766210937499949],[-79.50190429687495,-4.670605468750011],[-79.51616210937493,-4.539160156249963],[-79.57768554687496,-4.50058593750002],[-79.638525390625,-4.454882812500031],[-79.71098632812502,-4.467578124999946],[-79.79726562500002,-4.47636718749996],[-79.8451171875,-4.445898437499977],[-79.962890625,-4.390332031250026],[-80.06352539062499,-4.327539062500023],[-80.13955078125002,-4.296093750000011],[-80.19746093750001,-4.311035156249943],[-80.293359375,-4.416796875],[-80.38349609374998,-4.46367187499996],[-80.424169921875,-4.461425781250028],[-80.47856445312499,-4.430078125000037],[-80.48847656249995,-4.393652343749991],[-80.44384765625003,-4.335839843750023],[-80.35288085937495,-4.208496093750014],[-80.453759765625,-4.205175781249963],[-80.48847656249995,-4.165527343749972],[-80.49345703124999,-4.119140625000014],[-80.510009765625,-4.06953125000004],[-80.49013671874994,-4.010058593750003],[-80.43720703125001,-3.978613281249991],[-80.30327148437499,-4.005078124999969],[-80.26689453124993,-3.948828124999963],[-80.23051757812499,-3.924023437499969],[-80.19414062499996,-3.905859375],[-80.24375,-3.576757812500006],[-80.32465820312498,-3.387890625],[-79.96333007812501,-3.15771484375],[-79.72988281249997,-2.579101562499972],[-79.842138671875,-2.0673828125],[-79.92558593749996,-2.548535156249969],[-80.03017578124994,-2.556738281249949],[-80.00664062499993,-2.353808593750003],[-80.28471679687502,-2.706738281249955],[-80.93217773437493,-2.269140624999977],[-80.76059570312498,-1.934570312500028],[-80.90239257812499,-1.078906249999974],[-80.55390624999998,-0.847949218749989],[-80.45546875,-0.585449218749986],[-80.282373046875,-0.620507812500023],[-80.48227539062503,-0.368261718749963],[-80.046142578125,0.155371093750048],[-80.08828124999997,0.78476562500002],[-78.89965820312503,1.20625],[-78.85966796874996,1.455371093750031],[-78.1806640625,0.968554687499974],[-77.702880859375,0.837841796874997],[-77.46767578124997,0.636523437500017],[-77.396337890625,0.393896484374963],[-76.49462890624997,0.23544921875002],[-76.27060546874998,0.439404296874997],[-75.77666015624999,0.08925781249998],[-75.28447265624999,-0.10654296875002]]]]},"properties":{"name":"Ecuador","childNum":9}},{"geometry":{"type":"Polygon","coordinates":[[[34.24531250000001,31.208300781249996],[34.904296875,29.47734375],[34.736425781250006,29.27060546875],[34.39970703125002,28.01601562499999],[34.22011718750002,27.764306640624994],[33.76025390625,28.04765625],[33.24775390625001,28.567724609375],[32.56572265625002,29.973974609375],[32.35976562500002,29.630664062499996],[32.89824218750002,28.565234375],[33.54707031250001,27.898144531249997],[33.5498046875,27.607373046874997],[33.84931640625001,27.184912109375],[33.959082031250006,26.6490234375],[35.19414062500002,24.475146484375003],[35.78388671875001,23.937792968750003],[35.54082031250002,23.920654296875],[35.50439453125,23.779296875],[35.697851562500006,22.946191406249994],[36.22968750000001,22.628808593749994],[36.87138671875002,21.996728515624994],[31.434472656250023,21.995849609375],[31.486132812500017,22.14780273437499],[31.400292968750023,22.202441406250003],[31.260644531250023,22.00229492187499],[31.092675781250023,21.994873046875],[28.036425781250017,21.995361328125],[24.980273437500017,21.995849609375],[24.980273437500017,25.5888671875],[24.980273437500017,29.181884765625],[24.703222656250006,30.201074218749994],[24.96142578125,30.678515625],[24.85273437500001,31.334814453125],[25.150488281250006,31.654980468749997],[25.382226562500023,31.51279296875],[25.89326171875001,31.620898437499996],[27.248046875,31.377880859374997],[27.5400390625,31.212695312499996],[28.51484375000001,31.050439453124994],[29.072070312500017,30.830273437499997],[29.929785156250006,31.227490234374997],[30.22265625,31.2583984375],[30.395117187500006,31.4576171875],[30.92353515625001,31.566845703124997],[30.56298828125,31.4169921875],[31.001757812500017,31.462792968749994],[31.082910156250023,31.603320312499996],[31.5244140625,31.458251953125],[31.888964843750017,31.54140625],[32.13603515625002,31.341064453125],[31.8921875,31.482470703124996],[31.77109375,31.292578125],[32.10175781250001,31.092822265624996],[32.281835937500006,31.200878906249997],[32.21621093750002,31.29375],[32.60332031250002,31.06875],[33.66650390625,31.130419921874996],[34.19814453125002,31.322607421875],[34.24531250000001,31.208300781249996]]]},"properties":{"name":"Egypt","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[40.141210937500006,15.696142578125034],[40.399023437500006,15.579882812500045],[39.975195312500006,15.612451171875023],[39.94746093750004,15.696142578125034],[40.07050781250004,15.676611328125034],[39.93994140625003,15.744531250000023],[39.9567382812501,15.889404296875057],[40.141210937500006,15.696142578125034]]],[[[40.07646484375002,16.082421875000023],[40.11005859375004,15.985742187500051],[39.99609375000003,16.04267578125001],[40.07646484375002,16.082421875000023]]],[[[40.938574218750006,13.983105468749997],[40.82011718750002,14.111669921874991],[40.22148437500002,14.431152343749972],[39.531835937500006,14.53671875],[39.198046875000074,14.479394531250037],[39.1354492187501,14.581884765625034],[39.07421874999997,14.628222656249974],[39.02382812499999,14.628222656249974],[38.99570312500006,14.586865234374983],[38.81201171875003,14.482324218750009],[38.50439453124997,14.42441406250002],[38.43144531250002,14.428613281249994],[38.221484375000074,14.649658203124986],[38.002539062500006,14.737109375000045],[37.94345703125006,14.810546875],[37.884179687499994,14.852294921874972],[37.82031250000003,14.708496093749986],[37.70839843750005,14.45722656250004],[37.64843750000003,14.32255859375006],[37.571191406249994,14.149072265624966],[37.546777343749994,14.143847656249974],[37.507226562499994,14.156396484375037],[37.257226562499994,14.453759765625051],[37.024511718750006,14.271972656250057],[36.81191406250005,14.315039062500034],[36.67910156250005,14.307568359375026],[36.542382812499994,14.25820312499999],[36.52431640625005,14.256835937499986],[36.492285156250006,14.544335937500023],[36.470800781250006,14.736474609375009],[36.448144531249994,14.940087890625009],[36.42675781249997,15.132080078125043],[36.566015625,15.362109375],[36.9137695312501,16.296191406250045],[36.887792968750006,16.624658203124994],[36.9787109375001,16.800585937500045],[36.9757812500001,16.866552734375006],[36.99521484375006,17.020556640625017],[37.00898437500004,17.058886718750017],[37.06152343749997,17.061279296875057],[37.16953125000006,17.04140625],[37.41103515625005,17.061718749999955],[37.452929687500074,17.108691406250017],[37.51015625,17.28813476562499],[37.54746093750006,17.32412109375005],[37.78242187500004,17.458007812500057],[38.253515625,17.584765625000017],[38.26728515625004,17.616699218750057],[38.28984375000002,17.637011718750017],[38.34736328125004,17.68359375],[38.37373046875004,17.717333984375045],[38.42246093750006,17.823925781249983],[38.60947265625006,18.00507812500004],[39.03447265625002,17.085546875000034],[39.298925781250006,15.921093750000011],[39.78554687499999,15.124853515624991],[39.86376953124997,15.470312500000034],[40.20410156250003,15.014111328124983],[41.17646484375004,14.620312500000054],[41.65820312499997,13.983056640624994],[42.24511718749997,13.587646484374986],[42.39931640625005,13.212597656249969],[42.522851562499994,13.221484375],[42.796191406250074,12.864257812500057],[42.96953125000002,12.808349609375028],[42.99902343750003,12.899511718750048],[43.08291015625005,12.824609374999966],[43.11669921874997,12.708593749999963],[43.00566406250002,12.66230468750004],[42.88330078124997,12.621289062500026],[42.86591796875004,12.622802734374986],[42.82529296875006,12.569335937500014],[42.767480468749994,12.422851562500014],[42.70371093750006,12.380322265625054],[42.479394531249994,12.513623046875026],[42.45,12.521337890625006],[42.40859375,12.494384765625014],[42.37851562500006,12.46640625],[42.28994140625005,12.570214843750009],[42.225,12.661962890624963],[42.13427734374997,12.771435546874969],[41.95214843749997,12.88232421875],[41.85957031250004,13.025878906250028],[41.76503906250005,13.183935546874991],[41.362890625,13.499804687500031],[40.938574218750006,13.983105468749997]]]]},"properties":{"name":"Eritrea","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-17.887939453125,27.809570312500057],[-17.984765625000023,27.646386718750023],[-18.160546874999937,27.76147460937503],[-17.887939453125,27.809570312500057]]],[[[-15.400585937499955,28.147363281250023],[-15.436767578124972,27.810693359375023],[-15.71030273437492,27.784082031250023],[-15.809472656249966,27.994482421874977],[-15.682763671874994,28.15405273437497],[-15.400585937499955,28.147363281250023]]],[[[-17.184667968749977,28.02197265624997],[-17.324902343749955,28.11767578125003],[-17.25859375,28.203173828125045],[-17.103759765624943,28.111132812500017],[-17.184667968749977,28.02197265624997]]],[[[-16.33447265624997,28.37993164062499],[-16.41821289062497,28.15141601562496],[-16.65800781249999,28.007177734374977],[-16.905322265625017,28.33959960937503],[-16.12363281249992,28.57597656249996],[-16.33447265624997,28.37993164062499]]],[[[-14.196777343749943,28.169287109375063],[-14.332617187500006,28.056005859374977],[-14.49179687499992,28.100927734374977],[-14.231982421875017,28.21582031250003],[-14.003369140624983,28.706689453125023],[-13.85722656249996,28.73803710937503],[-13.928027343749989,28.25346679687499],[-14.196777343749943,28.169287109375063]]],[[[-17.83427734374999,28.49321289062496],[-18.00078124999999,28.758251953124955],[-17.928808593749977,28.844580078125063],[-17.7265625,28.724462890625006],[-17.83427734374999,28.49321289062496]]],[[[-13.715966796874966,28.911230468750034],[-13.85991210937496,28.869091796874983],[-13.823632812499966,29.013330078124966],[-13.463574218749955,29.237207031250023],[-13.477929687499966,29.00659179687503],[-13.715966796874966,28.911230468750034]]],[[[1.593945312500068,38.672070312499955],[1.40576171875,38.670996093750006],[1.436328125000017,38.768212890624994],[1.593945312500068,38.672070312499955]]],[[[1.445214843750051,38.91870117187503],[1.223339843750068,38.90385742187502],[1.3486328125,39.080810546875],[1.564453125,39.12104492187504],[1.623632812499977,39.03881835937497],[1.445214843750051,38.91870117187503]]],[[[3.145312500000017,39.79008789062499],[3.461816406250023,39.69775390625003],[3.072851562500006,39.30126953124997],[2.799804687500057,39.38505859374999],[2.700585937500023,39.54213867187502],[2.49951171875,39.47788085937498],[2.37001953125008,39.57207031249999],[3.15869140625,39.97050781249999],[3.145312500000017,39.79008789062499]]],[[[4.293652343750011,39.84184570312499],[3.8671875,39.958740234375],[3.853417968750051,40.06303710937502],[4.22578125000004,40.032373046874966],[4.293652343750011,39.84184570312499]]],[[[-1.794042968749949,43.407324218750006],[-1.410693359374932,43.240087890625034],[-1.460839843749937,43.05175781250006],[-1.300048828124943,43.10097656250002],[-0.586425781249943,42.798974609374966],[0.631640625000045,42.689599609374994],[0.696875,42.84511718750005],[1.428320312499977,42.59589843749998],[1.414843750000074,42.54838867187499],[1.448828124999977,42.43745117187504],[1.534082031250051,42.44169921875002],[1.7060546875,42.50332031250005],[1.859765625000051,42.457080078125045],[1.927929687500068,42.42631835937499],[2.032714843750028,42.353515625],[3.21142578125,42.43115234375],[3.248046875,41.94423828125002],[3.0048828125,41.76743164062506],[2.082617187500063,41.287402343750045],[1.032910156250068,41.06206054687496],[0.714648437500074,40.822851562500006],[0.891113281250057,40.72236328125004],[0.59609375000008,40.614501953125],[-0.327001953124949,39.519873046875006],[-0.204931640624949,39.062597656250034],[0.20156250000008,38.75917968750002],[-0.520800781249989,38.317285156249966],[-0.814648437500011,37.76992187500002],[-0.721582031249966,37.63105468749998],[-1.327539062499937,37.561132812500034],[-1.640966796874949,37.38696289062497],[-2.111523437499983,36.77666015624999],[-4.366845703124994,36.71811523437506],[-4.67412109374996,36.506445312500006],[-5.171484374999949,36.423779296874955],[-5.3609375,36.134912109374994],[-5.62548828125,36.02592773437499],[-6.040673828124937,36.18842773437498],[-6.38413085937492,36.63701171874996],[-6.216796875000028,36.91357421875],[-6.396191406249983,36.831640625],[-6.863769531250028,37.27890625],[-7.406152343749937,37.17944335937497],[-7.44394531249992,37.72827148437497],[-6.957568359374932,38.18789062499999],[-7.106396484374983,38.181005859375006],[-7.343017578124943,38.45742187500002],[-6.997949218749994,39.05644531250002],[-7.53569335937496,39.66157226562501],[-7.117675781249972,39.681689453125045],[-6.975390624999932,39.79838867187502],[-6.896093749999949,40.02182617187506],[-7.032617187499966,40.16791992187498],[-6.8101562499999,40.343115234375034],[-6.928466796874972,41.009130859375006],[-6.2125,41.53203125],[-6.542187499999955,41.672509765624994],[-6.61826171874992,41.9423828125],[-7.147119140625023,41.98115234374998],[-7.40361328124996,41.833691406249955],[-8.152490234374937,41.81196289062498],[-8.266064453124983,42.13740234375001],[-8.777148437500017,41.941064453124994],[-8.887207031249943,42.105273437500045],[-8.690917968749943,42.274169921875],[-8.815820312499966,42.285253906250034],[-8.730029296874989,42.411718750000034],[-8.8115234375,42.64033203124998],[-9.033105468750023,42.593847656250006],[-8.927197265624926,42.79858398437497],[-9.235205078124977,42.97690429687498],[-9.178076171874977,43.17402343749998],[-8.248925781249937,43.43940429687498],[-8.256738281249937,43.57988281249999],[-8.004687499999932,43.69438476562496],[-7.503613281249983,43.73994140625001],[-7.060986328124955,43.55395507812503],[-5.846679687499943,43.645068359375045],[-4.52304687499992,43.41572265625004],[-3.604638671874966,43.51948242187504],[-3.045605468749926,43.37158203125],[-2.875048828125017,43.454443359375006],[-2.337109374999926,43.32802734375002],[-1.794042968749949,43.407324218750006]]]]},"properties":{"name":"Spain","childNum":12,"cp":[-2.9366964,40.3438963]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[22.61738281250004,58.62124023437502],[23.323242187500057,58.45083007812502],[22.730273437500045,58.23066406250001],[22.371679687499977,58.217138671875006],[21.996875,57.93134765624998],[22.187695312500068,58.15434570312502],[21.88212890624999,58.262353515624994],[21.862304687500057,58.497167968750034],[22.61738281250004,58.62124023437502]]],[[[23.343554687500017,58.550341796875045],[23.10908203125004,58.65922851562502],[23.332812500000045,58.648583984374994],[23.343554687500017,58.550341796875045]]],[[[22.923730468750023,58.826904296875],[22.54218750000001,58.68999023437499],[22.411035156250023,58.863378906250034],[22.05625,58.94360351562506],[22.6494140625,59.08710937499998],[22.90986328125004,58.99121093749997],[22.923730468750023,58.826904296875]]],[[[28.0125,59.484277343749966],[28.15107421875004,59.374414062499966],[27.434179687500006,58.787255859374994],[27.502441406250057,58.221337890624994],[27.778515625000068,57.87070312500006],[27.542089843750063,57.799414062500006],[27.4,57.66679687499999],[27.35195312500005,57.528125],[26.96601562500001,57.60913085937506],[26.532617187499994,57.53100585937503],[26.29804687500001,57.60107421875],[25.66015625,57.920166015625],[25.27265625000001,58.009375],[25.11103515625004,58.06342773437498],[24.45888671875005,57.907861328124994],[24.3625,57.86616210937501],[24.322558593750074,57.87060546875003],[24.529101562500045,58.35424804687497],[24.114843750000034,58.26611328125006],[23.767578125000057,58.36083984374997],[23.50927734375003,58.65854492187498],[23.680761718750063,58.787158203125074],[23.43203125,58.920654296875],[23.494433593750017,59.19565429687498],[24.083398437500023,59.29189453125005],[24.38037109375003,59.47265625],[25.44375,59.52114257812502],[25.50927734374997,59.63901367187506],[26.974707031250006,59.450634765624955],[28.0125,59.484277343749966]]]]},"properties":{"name":"Estonia","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[38.43144531250002,14.428613281249994],[38.50439453125,14.424414062499991],[38.81201171875,14.482324218749994],[38.995703125,14.586865234374997],[39.02382812500002,14.628222656250003],[39.07421875,14.628222656250003],[39.13544921875001,14.581884765624991],[39.19804687500002,14.479394531249994],[39.531835937500006,14.53671875],[40.22148437500002,14.43115234375],[40.82011718750002,14.111669921874991],[40.938574218750006,13.983105468749997],[41.362890625,13.499804687500003],[41.76503906250002,13.183935546874991],[41.85957031250001,13.02587890625],[41.9521484375,12.88232421875],[42.13427734375,12.771435546874997],[42.225,12.661962890624991],[42.28994140625002,12.570214843749994],[42.378515625,12.46640625],[41.79267578125001,11.68603515625],[41.79824218750002,10.98046875],[42.557714843750006,11.080761718749997],[42.92275390625002,10.999316406249989],[42.65644531250001,10.6],[42.84160156250002,10.203076171874997],[43.181640625,9.879980468749991],[43.482519531250006,9.379492187499991],[43.98378906250002,9.008837890624989],[46.97822265625001,7.9970703125],[47.97822265625001,7.9970703125],[44.940527343750006,4.912011718749994],[43.988867187500006,4.950537109374991],[43.58349609375,4.85498046875],[43.12568359375001,4.644482421874997],[42.85664062500001,4.32421875],[42.02412109375001,4.137939453125],[41.91533203125002,4.031298828124989],[41.88398437500001,3.977734375],[41.73769531250002,3.979052734374989],[41.48193359375,3.96328125],[41.37246093750002,3.946191406249994],[41.22089843750001,3.943554687499997],[41.02080078125002,4.057470703124991],[40.765234375,4.27304687499999],[39.84218750000002,3.851464843749994],[39.79033203125002,3.754248046874991],[39.65751953125002,3.577832031249997],[39.49443359375002,3.456103515624989],[38.608007812500006,3.60009765625],[38.45156250000002,3.604833984374991],[38.22529296875001,3.618994140624991],[38.08613281250001,3.64882812499999],[37.15458984375002,4.254541015624994],[36.90556640625002,4.411474609374991],[36.02197265625,4.468115234374991],[35.76308593750002,4.808007812499994],[35.75615234375002,4.950488281249989],[35.779296875,5.105566406249991],[35.80029296875,5.156933593749997],[35.74501953125002,5.343994140625],[35.325292968750006,5.364892578124994],[35.2646484375,5.412060546874997],[35.26386718750001,5.457910156249994],[35.26835937500002,5.492285156249991],[34.98359375000001,5.858300781249994],[34.71064453125001,6.660302734374994],[34.06425781250002,7.225732421874994],[33.902441406250006,7.509521484375],[32.99892578125002,7.899511718749991],[33.28105468750002,8.437255859375],[33.95332031250001,8.443505859374994],[34.07275390625,8.545263671874991],[34.078125,9.461523437499991],[34.31123046875001,10.190869140624997],[34.34394531250001,10.658642578124997],[34.571875,10.880175781249989],[34.77128906250002,10.746191406249991],[34.93144531250002,10.864794921874989],[35.1123046875,11.816552734374994],[35.67021484375002,12.623730468749997],[36.12519531250001,12.75703125],[36.52431640625002,14.2568359375],[36.54238281250002,14.25820312499999],[36.67910156250002,14.307568359374997],[36.81191406250002,14.315039062499991],[37.024511718750006,14.27197265625],[37.25722656250002,14.453759765624994],[37.50722656250002,14.156396484374994],[37.54677734375002,14.143847656250003],[37.57119140625002,14.149072265624994],[37.6484375,14.322558593750003],[37.70839843750002,14.457226562499997],[37.8203125,14.70849609375],[37.88417968750002,14.852294921875],[37.943457031250006,14.810546875],[38.002539062500006,14.737109375],[38.22148437500002,14.649658203125],[38.43144531250002,14.428613281249994]]]},"properties":{"name":"Ethiopia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[22.17509765624999,60.370751953124994],[22.41552734375003,60.30336914062505],[22.36054687500004,60.165576171875045],[22.07714843750003,60.286328124999955],[22.17509765624999,60.370751953124994]]],[[[21.450878906250068,60.529589843750045],[21.3,60.47978515625002],[21.224707031250006,60.62060546875003],[21.450878906250068,60.529589843750045]]],[[[21.2177734375,63.241308593750034],[21.415625,63.19736328125006],[21.25341796875,63.152001953124966],[21.08388671875008,63.277539062499955],[21.2177734375,63.241308593750034]]],[[[24.848242187500034,64.99101562499999],[24.576562500000023,65.04287109375],[24.970605468750023,65.05532226562502],[24.848242187500034,64.99101562499999]]],[[[28.96582031250003,69.02197265625],[28.414062500000057,68.90415039062506],[28.77285156250005,68.84003906249995],[28.470703125000057,68.48837890625],[28.685156250000034,68.189794921875],[29.343847656250006,68.06186523437506],[29.988085937500017,67.66826171874999],[29.066210937500045,66.89174804687497],[30.102734375000097,65.72626953125004],[29.715917968750063,65.62456054687502],[29.608007812500006,65.248681640625],[29.826953125000017,65.14506835937502],[29.60419921875004,64.968408203125],[30.072851562500063,64.76503906250005],[30.04189453125005,64.44335937499997],[30.513769531250006,64.2],[30.50390625000003,64.02060546875],[29.991503906250074,63.73515625000002],[31.180859375000097,63.208300781250074],[31.533984375000017,62.885400390624994],[31.18671875000004,62.48139648437504],[29.69013671875004,61.54609375000001],[27.797656250000074,60.53613281250003],[26.53466796874997,60.412890625000074],[26.56933593750003,60.62456054687502],[26.377734375000074,60.42407226562503],[25.955957031250023,60.474218750000034],[26.03583984375004,60.34150390625001],[25.75800781250004,60.26752929687504],[25.65644531250004,60.33320312499998],[24.44560546874999,60.021289062500045],[23.46357421875004,59.986230468749994],[23.021289062500074,59.81601562500006],[23.19843750000001,60.02182617187498],[22.911718750000063,60.20971679687497],[22.749804687500017,60.057275390624994],[22.462695312500045,60.029199218749966],[22.5849609375,60.380566406249955],[21.436035156250057,60.596386718749955],[21.605957031250057,61.59155273437503],[21.255957031250063,61.98964843750005],[21.143847656250045,62.73999023437506],[21.650976562500063,63.039306640625],[21.545117187499983,63.204296874999955],[22.31972656250005,63.310449218749994],[22.532324218750034,63.647851562499994],[23.598925781250074,64.04091796874997],[24.557910156250045,64.801025390625],[25.288183593750063,64.8603515625],[25.34785156250004,65.47924804687497],[24.674902343750006,65.67070312499999],[24.628027343750034,65.85917968750002],[24.15546875000004,65.80527343750006],[23.700292968750034,66.25263671874998],[23.988574218750045,66.81054687500003],[23.64150390625005,67.12939453124997],[23.733593750000068,67.42290039062499],[23.454882812500045,67.46025390625007],[23.63886718750004,67.95439453125002],[22.854101562500034,68.36733398437502],[21.99746093750005,68.52060546874998],[20.622167968750006,69.036865234375],[21.065722656250017,69.04174804687503],[21.06611328125001,69.21411132812497],[21.59375,69.273583984375],[22.410937500000074,68.719873046875],[23.324023437500017,68.64897460937502],[23.85400390625,68.80590820312503],[24.94140625000003,68.59326171875006],[25.748339843750017,68.99013671875],[26.07246093750004,69.69155273437497],[26.525390625000057,69.91503906250003],[27.127539062500063,69.90649414062497],[27.747851562500045,70.06484375],[29.14160156250003,69.67143554687505],[29.33339843750005,69.47299804687503],[28.846289062500006,69.17690429687502],[28.96582031250003,69.02197265625]]]]},"properties":{"name":"Finland","childNum":5}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[178.48789062500018,-18.97412109375],[177.95869140624998,-19.121582031250014],[178.33427734375013,-18.93447265625001],[178.48789062500018,-18.97412109375]]],[[[179.34931640625015,-18.10234375000003],[179.25351562500018,-18.030566406249974],[179.30644531250013,-17.944042968750026],[179.34931640625015,-18.10234375000003]]],[[[178.28017578124994,-17.37197265625001],[178.59160156249996,-17.651464843750006],[178.66767578125004,-18.080859375],[177.95546875000005,-18.264062500000023],[177.32138671875,-18.077539062500037],[177.26396484375007,-17.86347656250004],[177.5044921875,-17.539550781250043],[177.81796875000012,-17.38847656249999],[178.28017578124994,-17.37197265625001]]],[[[180,-16.96308593750001],[179.89697265625003,-16.96406250000004],[180,-16.785742187500034],[180,-16.96308593750001]]],[[[-179.97490234374996,-16.92480468750003],[-180,-16.96298828124999],[-180,-16.907812500000034],[-180,-16.82431640624999],[-180,-16.78554687499999],[-179.86098632812502,-16.68828124999999],[-179.97490234374996,-16.92480468750003]]],[[[-179.92944335937503,-16.502832031250037],[-179.999951171875,-16.540039062499986],[-179.900927734375,-16.431542968749994],[-179.92944335937503,-16.502832031250037]]],[[[179.99921875000004,-16.168554687499977],[179.56416015625004,-16.636914062499997],[179.56816406249996,-16.747460937499966],[179.93037109375004,-16.51943359375005],[179.9279296875001,-16.74443359374996],[179.41933593750005,-16.80654296875001],[179.20234375000004,-16.71269531249999],[179.00683593750003,-16.90019531249999],[178.70664062500018,-16.97617187500002],[178.4974609375,-16.78789062500003],[178.58359375000012,-16.621875],[178.80507812499994,-16.631445312500034],[179.55175781250003,-16.249902343750023],[180,-16.15292968749999],[179.99921875000004,-16.168554687499977]]]]},"properties":{"name":"Fiji","childNum":7}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-61.01875,-51.7857421875],[-60.87597656250003,-51.79423828125004],[-60.94755859374996,-51.94628906250002],[-61.14501953125003,-51.83945312500001],[-61.01875,-51.7857421875]]],[[[-60.28623046874995,-51.461914062500014],[-59.38759765625002,-51.35996093750003],[-59.26806640625,-51.42753906250003],[-59.92138671874997,-51.969531250000045],[-60.246337890625,-51.98642578125003],[-60.35346679687498,-52.13994140625004],[-60.686376953125034,-52.18837890624996],[-60.96142578125003,-52.05732421874999],[-60.23847656249998,-51.771972656250036],[-60.58251953125,-51.71269531250004],[-60.24516601562493,-51.638867187500004],[-60.56845703124998,-51.357812499999945],[-60.28623046874995,-51.461914062500014]]],[[[-60.11171875000002,-51.39589843749998],[-60.275341796874955,-51.28056640625002],[-60.06982421875,-51.307910156249996],[-60.11171875000002,-51.39589843749998]]],[[[-58.85019531249995,-51.26992187499998],[-58.42583007812502,-51.32421875000003],[-58.508935546874994,-51.48359375],[-58.271582031250034,-51.57470703124999],[-58.25922851562501,-51.417089843750034],[-57.976513671874955,-51.384375],[-57.80849609375002,-51.51796875],[-57.96044921874997,-51.58320312500003],[-57.79179687499999,-51.63613281249998],[-58.68349609375002,-51.93623046875001],[-58.65278320312498,-52.09921875],[-59.19584960937496,-52.01767578125],[-59.06801757812502,-52.17304687500003],[-59.341503906249955,-52.19599609375],[-59.395654296874966,-52.308007812499994],[-59.64873046875002,-52.134375],[-59.57080078124994,-51.92539062500003],[-59.05952148437498,-51.685449218749994],[-59.09663085937498,-51.49140624999998],[-58.85019531249995,-51.26992187499998]]]]},"properties":{"name":"Falkland Is.","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[55.79736328125003,-21.33935546875003],[55.36269531250005,-21.27363281250004],[55.23281250000005,-21.05839843749999],[55.311328125000074,-20.90410156249999],[55.661914062500074,-20.90625],[55.8390625000001,-21.13857421874998],[55.79736328125003,-21.33935546875003]]],[[[45.180273437500006,-12.97675781250004],[45.069433593750006,-12.895605468750034],[45.09238281250006,-12.653027343749997],[45.22314453124997,-12.752148437500026],[45.180273437500006,-12.97675781250004]]],[[[-51.65253906249998,4.061279296874972],[-52.327880859375,3.18173828125002],[-52.58300781250003,2.528906249999977],[-52.90346679687502,2.211523437499977],[-53.76777343749998,2.354833984375048],[-54.13007812499998,2.121044921875026],[-54.43310546875,2.207519531250057],[-54.51508789062498,2.245458984374963],[-54.55048828125001,2.293066406249991],[-54.59194335937502,2.313769531250031],[-54.61625976562499,2.326757812500006],[-54.60473632812497,2.335791015624991],[-54.56840820312502,2.342578125000031],[-54.53593749999999,2.343310546875003],[-54.48554687500001,2.416113281250006],[-54.402001953124966,2.46152343750002],[-54.25673828125002,2.713720703124977],[-54.19550781249998,2.817871093750057],[-54.17070312499999,2.993603515624969],[-54.203125,3.138183593750028],[-54.18803710937499,3.178759765625031],[-54.063183593749955,3.353320312499989],[-54.00957031249993,3.448535156250017],[-54.03422851562499,3.62939453125],[-54.350732421874994,4.054101562500023],[-54.47968749999998,4.836523437499991],[-53.91992187499997,5.768994140624983],[-52.899316406249966,5.425048828124986],[-52.29052734375003,4.942187500000031],[-52.324609374999966,4.770898437500037],[-52.21997070312494,4.862792968750014],[-52.05810546875003,4.717382812499963],[-52.00292968749997,4.352294921875014],[-51.82753906250002,4.635693359375026],[-51.65253906249998,4.061279296874972]]],[[[-60.826269531250006,14.494482421874991],[-61.063720703125,14.467089843750017],[-61.01132812499998,14.601904296875034],[-61.21333007812501,14.848583984375011],[-60.927148437499966,14.755175781249989],[-60.826269531250006,14.494482421874991]]],[[[-61.23046875000003,15.889941406250074],[-61.310742187499955,15.894677734374966],[-61.25,16.006298828124983],[-61.23046875000003,15.889941406250074]]],[[[-61.58955078125001,16.006933593750006],[-61.759423828124966,16.062060546875045],[-61.74804687499997,16.355273437500017],[-61.55234374999998,16.270898437499966],[-61.58955078125001,16.006933593750006]]],[[[-61.3271484375,16.230419921874983],[-61.522167968749955,16.22802734375003],[-61.47119140624994,16.506640625000045],[-61.17260742187497,16.25610351562497],[-61.3271484375,16.230419921874983]]],[[[9.480371093750023,42.80541992187503],[9.550683593750051,42.12973632812506],[9.186132812500034,41.38491210937502],[8.80751953125008,41.58837890625],[8.886816406249977,41.70068359375003],[8.621875,41.93071289062502],[8.700976562500045,42.09560546875002],[8.565625,42.35771484374996],[8.81484375000008,42.60791015625003],[9.313378906250023,42.71318359374999],[9.363183593750051,43.01738281249996],[9.480371093750023,42.80541992187503]]],[[[-1.17832031249992,45.904052734375],[-1.213574218750011,45.81660156250004],[-1.388671874999972,46.05039062500006],[-1.17832031249992,45.904052734375]]],[[[5.789746093749983,49.53828125000001],[5.823437500000011,49.50507812499998],[5.9013671875,49.48974609374997],[5.928906250000011,49.47753906249997],[5.959472656250028,49.45463867187502],[6.01142578125004,49.44545898437502],[6.074121093750023,49.45463867187502],[6.119921875000017,49.485205078125034],[6.181054687500051,49.498925781249966],[6.344335937500006,49.45273437499998],[6.735449218750006,49.16059570312498],[7.450585937500051,49.152197265625034],[8.134863281250006,48.97358398437498],[7.616601562500023,48.15678710937502],[7.615625,47.59272460937504],[7.343164062499994,47.43310546875003],[7.136035156249989,47.489843750000034],[6.968359375000034,47.453222656250034],[6.900390625000028,47.39423828125001],[7.000585937500034,47.339453125000034],[7.000585937500034,47.32250976562506],[6.978515625000057,47.30205078124996],[6.95205078125008,47.26718750000006],[6.820703125000051,47.163183593750006],[6.688085937500034,47.05825195312505],[6.66689453125008,47.026513671874966],[6.624804687500017,47.00434570312498],[6.45625,46.948339843750034],[6.438646763392874,46.774418247767855],[6.129687500000045,46.56699218750006],[6.118111049107182,46.447459542410726],[6.095898437500011,46.279394531250006],[5.970019531250045,46.214697265625034],[5.971484375000074,46.151220703125006],[6.006640625000045,46.14233398437506],[6.086621093750068,46.14702148437502],[6.19941406250004,46.19306640624998],[6.234667968750045,46.332617187500006],[6.321875,46.39370117187502],[6.428906250000011,46.43051757812506],[6.578222656250034,46.437353515625034],[6.758105468750017,46.41577148437497],[6.772070312500006,46.16513671874998],[6.897265625000017,46.05175781249997],[6.953710937500063,46.017138671875045],[7.00390625,45.95883789062506],[7.021093750000034,45.92578124999997],[6.790917968750023,45.740869140624966],[7.146386718750051,45.381738281249994],[7.07832031250004,45.23994140624998],[6.634765625000028,45.06816406249996],[6.99267578125,44.82729492187502],[6.900195312499989,44.33574218749996],[7.318554687500068,44.13798828125002],[7.637207031250057,44.16484375],[7.4931640625,43.767138671875045],[6.570214843750023,43.199072265625034],[6.115917968750011,43.07236328124998],[5.406542968750074,43.228515625],[5.05976562500004,43.44453125000004],[4.712109375000011,43.373291015625],[3.910839843750011,43.563085937500034],[3.258886718750063,43.193212890625006],[3.051757812500057,42.915136718750006],[3.21142578125,42.43115234375],[2.032714843750028,42.353515625],[1.927929687500068,42.42631835937499],[1.859765625000051,42.457080078125045],[1.7060546875,42.50332031250005],[1.709863281250051,42.604443359374955],[1.568164062500045,42.63500976562506],[1.501367187500023,42.64272460937502],[1.428320312499977,42.59589843749998],[0.696875,42.84511718750005],[0.631640625000045,42.689599609374994],[-0.586425781249943,42.798974609374966],[-1.300048828124943,43.10097656250002],[-1.460839843749937,43.05175781250006],[-1.410693359374932,43.240087890625034],[-1.794042968749949,43.407324218750006],[-1.484863281249943,43.56376953124999],[-1.245507812499937,44.55986328124999],[-1.07695312499996,44.68984375],[-1.152880859374989,44.764013671875006],[-1.245214843749977,44.66669921874998],[-1.081005859374983,45.532421874999955],[-0.548486328124966,45.00058593750006],[-0.790771484375028,45.46801757812497],[-1.195996093749983,45.714453125],[-1.03173828125,45.741064453125006],[-1.14628906249996,46.311376953125034],[-1.786523437499937,46.51484375000001],[-2.059375,46.81030273437497],[-2.01889648437492,47.03764648437502],[-2.197070312499989,47.16293945312506],[-2.027587890625028,47.27358398437502],[-1.742529296874949,47.21596679687502],[-1.97539062499996,47.31069335937505],[-2.503125,47.31206054687496],[-2.427685546874983,47.47089843749998],[-2.770312499999989,47.513867187499955],[-2.787207031249949,47.62553710937496],[-4.312109374999949,47.82290039062502],[-4.678808593749949,48.03950195312501],[-4.32944335937492,48.169970703125045],[-4.577148437499943,48.2900390625],[-4.241406249999926,48.30366210937501],[-4.719384765624966,48.363134765625034],[-4.7625,48.45024414062502],[-4.531201171874983,48.61997070312506],[-3.231445312499972,48.84082031250003],[-2.692333984374983,48.53681640624998],[-2.446191406249937,48.64829101562506],[-2.00371093749996,48.58208007812499],[-1.905712890624955,48.69711914062506],[-1.376464843749972,48.65258789062503],[-1.565478515624932,48.805517578125034],[-1.583105468749977,49.20239257812506],[-1.856445312499972,49.68378906249998],[-1.258642578124949,49.68017578125006],[-1.138525390624977,49.38789062500001],[-0.163476562499937,49.296777343749994],[0.41689453125008,49.448388671874994],[0.129394531250028,49.508447265624966],[0.186718749999983,49.703027343749994],[1.245507812500051,49.99824218750001],[1.5927734375,50.25219726562506],[1.672265625000023,50.885009765625],[2.52490234375,51.097119140624955],[2.759375,50.750634765624994],[3.10683593750008,50.779443359374994],[3.27333984375008,50.53154296875002],[3.595410156250068,50.47734374999999],[3.689355468750023,50.30605468750002],[4.174609375000017,50.24648437500005],[4.149316406250023,49.971582031249994],[4.545019531250063,49.96025390624999],[4.818652343750045,50.153173828125034],[4.867578125000051,49.78813476562502],[5.50732421875,49.51088867187502],[5.789746093749983,49.53828125000001]]]]},"properties":{"name":"France","childNum":10,"cp":[2.8719426,46.8222422]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-7.186865234374949,62.139306640624966],[-7.116796874999977,62.046826171874955],[-7.379101562499926,62.07480468749998],[-7.186865234374949,62.139306640624966]]],[[[-6.631054687499955,62.22788085937498],[-6.655810546874932,62.09360351562498],[-6.840527343749983,62.119287109374994],[-6.725195312499949,61.95146484374999],[-7.17216796874996,62.28559570312501],[-6.631054687499955,62.22788085937498]]],[[[-6.406054687499932,62.258642578125034],[-6.544140624999926,62.20561523437499],[-6.554589843749994,62.35566406250001],[-6.406054687499932,62.258642578125034]]]]},"properties":{"name":"Faeroe Is.","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[158.31484375,6.813671875],[158.18339843750002,6.801269531250057],[158.13476562499997,6.944824218749986],[158.29462890625004,6.951074218750023],[158.31484375,6.813671875]]],[[[138.14267578125006,9.50068359375004],[138.06708984375004,9.419042968750006],[138.18583984375007,9.593310546874989],[138.14267578125006,9.50068359375004]]]]},"properties":{"name":"Micronesia","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[13.293554687500006,2.161572265624997],[13.172167968750017,1.78857421875],[13.21630859375,1.2484375],[13.851367187500017,1.41875],[14.180859375000011,1.370214843749991],[14.429882812500011,0.901464843749991],[14.32421875,0.62421875],[13.949609375000023,0.353808593749989],[13.860058593750011,-0.203320312500011],[14.47412109375,-0.573437500000011],[14.383984375000011,-1.890039062500009],[14.162890625000017,-2.217578125],[14.199804687500006,-2.354199218750011],[13.993847656250011,-2.490625],[13.886914062500011,-2.465429687500006],[13.733789062500023,-2.138476562500003],[13.464941406250006,-2.395410156250009],[12.991992187500017,-2.313378906250009],[12.793554687500006,-1.931835937500011],[12.590429687500006,-1.826855468750011],[12.43212890625,-1.928906250000011],[12.446386718750006,-2.329980468750009],[12.064453125,-2.41259765625],[11.60546875,-2.342578125],[11.537792968750011,-2.83671875],[11.760156250000023,-2.983105468750011],[11.715429687500006,-3.176953125000011],[11.934179687500006,-3.318554687500011],[11.8798828125,-3.665917968750009],[11.685742187500011,-3.68203125],[11.504296875000023,-3.5203125],[11.234472656250006,-3.690820312500009],[11.130175781250017,-3.916308593750003],[10.34765625,-3.013085937500009],[9.722070312500023,-2.467578125],[10.06201171875,-2.549902343750006],[9.624609375,-2.367089843750009],[9.298925781250006,-1.903027343750011],[9.483203125000017,-1.894628906250006],[9.265625,-1.825097656250009],[9.036328125000011,-1.308886718750003],[9.31884765625,-1.632031250000011],[9.501074218750006,-1.55517578125],[9.295800781250023,-1.515234375],[9.3466796875,-1.325],[9.203808593750011,-1.382421875],[9.064648437500011,-1.29833984375],[8.703125,-0.591015625000011],[8.946386718750006,-0.688769531250003],[9.296679687500017,-0.351269531250011],[9.354882812500023,0.343603515624991],[9.468164062500023,0.15976562499999],[9.796777343750023,0.044238281249989],[10.00146484375,0.194970703124994],[9.546484375,0.295947265624989],[9.324804687500006,0.552099609374991],[9.495312500000011,0.664843749999989],[9.617968750000017,0.576513671874991],[9.5908203125,1.031982421875],[9.636132812500023,1.046679687499989],[9.676464843750011,1.07470703125],[9.70458984375,1.079980468749994],[9.760546875000017,1.07470703125],[9.788671875,1.025683593749989],[9.803906250000011,0.998730468749997],[9.90673828125,0.960107421874994],[11.335351562500023,0.999707031249997],[11.332324218750017,1.528369140624989],[11.328710937500006,2.167431640624997],[11.348437500000017,2.299707031249994],[11.558984375000023,2.302197265624997],[13.2203125,2.256445312499991],[13.293554687500006,2.161572265624997]]]},"properties":{"name":"Gabon","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-1.065576171874966,50.69023437500002],[-1.25146484375,50.58881835937498],[-1.563427734374955,50.666113281250006],[-1.31279296874996,50.77348632812502],[-1.065576171874966,50.69023437500002]]],[[[-4.196777343749972,53.321435546874966],[-4.04936523437496,53.30576171874998],[-4.373046875,53.13417968750002],[-4.56787109375,53.386474609375],[-4.315087890625023,53.41723632812503],[-4.196777343749972,53.321435546874966]]],[[[-6.218017578125,54.08872070312506],[-6.649804687499937,54.05864257812496],[-7.007714843749937,54.40668945312501],[-7.324511718750017,54.13344726562502],[-7.606542968750006,54.14384765625002],[-8.118261718749977,54.41425781250004],[-7.75439453125,54.59492187499998],[-7.910595703124955,54.698339843750006],[-7.55039062499992,54.767968749999966],[-7.218652343749937,55.09199218749998],[-6.475048828124955,55.24101562499999],[-6.035791015624994,55.14453125000003],[-5.71684570312496,54.817480468750034],[-5.878613281249955,54.64130859375001],[-5.582519531249943,54.66342773437498],[-5.470410156249926,54.500195312499955],[-5.671093749999955,54.54975585937501],[-5.60678710937492,54.272558593750034],[-6.019042968749972,54.05126953124997],[-6.218017578125,54.08872070312506]]],[[[-5.105419921875011,55.448828125000034],[-5.331494140624955,55.481054687500034],[-5.318115234375,55.709179687499955],[-5.105419921875011,55.448828125000034]]],[[[-6.128906249999972,55.93056640625002],[-6.055322265624994,55.69531249999997],[-6.305078124999966,55.60693359375],[-6.286425781249989,55.77250976562499],[-6.491357421874994,55.697314453125045],[-6.462841796874955,55.808251953124994],[-6.128906249999972,55.93056640625002]]],[[[-5.970068359374949,55.814550781250034],[-6.071972656250011,55.893115234375045],[-5.72514648437496,56.118554687499966],[-5.970068359374949,55.814550781250034]]],[[[-5.77788085937496,56.344335937500034],[-6.313427734374983,56.29365234375001],[-6.138867187499955,56.490625],[-6.286328124999983,56.61186523437502],[-6.102734374999955,56.645654296874966],[-5.760839843749949,56.49067382812501],[-5.77788085937496,56.344335937500034]]],[[[-7.249853515624977,57.115332031250006],[-7.410546874999937,57.38110351562506],[-7.26713867187496,57.37177734375001],[-7.249853515624977,57.115332031250006]]],[[[-6.144726562499983,57.50498046874998],[-6.135546874999989,57.31425781250002],[-5.672460937499977,57.252685546875],[-5.94907226562492,57.045166015625],[-6.034375,57.20122070312499],[-6.322705078124926,57.20249023437498],[-6.761132812499994,57.4423828125],[-6.305957031249989,57.67197265624998],[-6.144726562499983,57.50498046874998]]],[[[-7.205566406250028,57.682958984375006],[-7.182617187499972,57.53330078125006],[-7.514746093749949,57.60195312500002],[-7.205566406250028,57.682958984375006]]],[[[-6.198681640624983,58.36328125000003],[-6.554589843749994,58.092871093750006],[-6.425195312499937,58.02128906249999],[-6.983105468749983,57.75],[-7.083447265624926,57.81376953124999],[-6.856835937499937,57.92353515624998],[-7.085253906249932,58.18217773437499],[-6.726464843749937,58.189404296874955],[-6.776464843750006,58.30151367187497],[-6.237451171874966,58.50283203125005],[-6.198681640624983,58.36328125000003]]],[[[-3.109667968749932,58.515478515625034],[-3.212353515624983,58.32124023437501],[-3.99003906249996,57.95903320312502],[-4.035595703124926,57.85200195312498],[-3.857128906249983,57.81855468750001],[-4.134521484375,57.57773437500006],[-3.402783203124955,57.708251953125],[-2.074072265624977,57.70239257812506],[-1.780664062499994,57.474023437499966],[-2.592675781249937,56.56157226562499],[-3.309960937499966,56.36347656250004],[-2.885156249999937,56.397509765625045],[-2.674267578124955,56.25341796875],[-3.362255859374955,56.02763671875002],[-3.789062499999972,56.09521484375],[-3.048730468749937,55.951953125000045],[-2.599316406249955,56.02729492187501],[-2.14707031249992,55.90297851562502],[-1.655371093749949,55.57036132812502],[-1.232421874999943,54.703710937500034],[-0.084375,54.118066406249994],[-0.20556640625,54.021728515625],[0.115332031250006,53.609277343749994],[-0.270019531249972,53.73676757812504],[-0.659912109375,53.72402343750002],[-0.293701171875,53.69233398437504],[0.270996093750028,53.33549804687499],[0.355761718750045,53.15996093750002],[0.0458984375,52.90561523437498],[0.279785156250028,52.80869140625006],[0.55878906250004,52.96694335937505],[1.05556640625008,52.95898437500003],[1.656738281249972,52.753710937500045],[1.74658203125,52.46899414062503],[1.59140625,52.11977539062502],[1.232421875000057,51.97124023437496],[1.188476562500057,51.803369140624966],[0.752246093750017,51.729589843750034],[0.890917968750017,51.571435546874966],[0.42451171875004,51.465625],[1.414941406250023,51.36328125],[1.397558593750034,51.18203125000002],[0.960156250000011,50.92587890624998],[0.299707031249994,50.775976562500006],[-0.785253906249949,50.76542968749999],[-1.416455078124955,50.896875],[-1.334472656249943,50.82080078124997],[-1.516748046874937,50.747460937499966],[-2.031054687499932,50.72539062499999],[-2.035839843749926,50.603076171875045],[-2.999414062499937,50.71660156249999],[-3.40458984374996,50.63242187499998],[-3.679785156250006,50.239941406249955],[-4.194580078124972,50.39331054687503],[-4.727978515624926,50.29047851562504],[-5.11850585937492,50.038330078125],[-5.622119140624932,50.05068359375002],[-4.188183593749926,51.18852539062502],[-3.135986328124972,51.20502929687501],[-2.433056640624926,51.74072265625],[-3.293115234374994,51.390429687500045],[-3.890771484374994,51.591650390625006],[-4.234570312499955,51.56909179687503],[-4.091015624999926,51.65991210937506],[-4.38627929687496,51.74106445312506],[-4.902294921874926,51.626269531250045],[-5.168359374999937,51.74072265625],[-5.183349609374972,51.94965820312501],[-4.217724609374983,52.277441406250006],[-3.980322265624949,52.54174804687503],[-4.101464843750023,52.915478515624955],[-4.683056640624926,52.80615234374997],[-4.268554687499943,53.14453125],[-3.427734374999972,53.34067382812498],[-3.097558593749937,53.260302734375045],[-3.064746093749932,53.426855468750034],[-2.74951171875,53.310205078124994],[-3.064599609374994,53.512841796874966],[-2.84648437499996,54.135302734375045],[-3.165966796874955,54.12792968750006],[-3.56938476562496,54.46757812499996],[-3.464599609374943,54.77309570312505],[-3.036230468749977,54.95307617187501],[-3.550439453124937,54.94741210937502],[-3.957910156249994,54.780957031249955],[-4.818066406249983,54.84614257812501],[-4.911230468749949,54.68945312500006],[-5.032324218749949,54.76137695312505],[-5.172705078124949,54.98588867187496],[-4.676757812499972,55.50131835937498],[-4.871679687499977,55.87392578125005],[-4.58408203124992,55.93867187500001],[-4.844091796874949,56.05117187499999],[-4.80029296875,56.158349609374994],[-5.228222656249983,55.886328125],[-5.084326171874977,56.197460937499955],[-5.41044921874996,55.995361328125],[-5.55644531249996,55.389599609374955],[-5.730664062499926,55.33413085937502],[-5.504492187499949,55.80239257812502],[-5.609570312499955,56.055273437500034],[-5.188378906249937,56.75805664062503],[-5.652441406249977,56.531982421875],[-6.133691406249966,56.706689453124966],[-5.730615234374994,56.853076171875045],[-5.86142578124992,56.902685546875006],[-5.561914062499994,57.23271484375002],[-5.794921874999972,57.37880859375002],[-5.581787109374972,57.546777343749966],[-5.744921874999989,57.668310546875034],[-5.608349609374955,57.88134765625],[-5.157226562499972,57.88134765625],[-5.413183593750006,58.06972656250002],[-5.338281250000023,58.23872070312498],[-5.008300781250028,58.262646484374955],[-5.016748046874966,58.566552734374966],[-4.433251953124937,58.51284179687505],[-3.25913085937492,58.65],[-3.053076171874949,58.63481445312502],[-3.109667968749932,58.515478515625034]]],[[[-3.057421874999932,59.02963867187498],[-2.793017578124989,58.906933593749955],[-3.331640624999949,58.97124023437499],[-3.31035156249996,59.13081054687498],[-3.057421874999932,59.02963867187498]]],[[[-1.30810546875,60.5375],[-1.052441406249955,60.44448242187502],[-1.299462890624994,59.87866210937503],[-1.290917968749937,60.153466796874966],[-1.663769531249983,60.282519531250074],[-1.374609374999949,60.33291015625002],[-1.571777343749972,60.494433593750074],[-1.363964843750011,60.60957031249998],[-1.30810546875,60.5375]]]]},"properties":{"name":"United Kingdom","childNum":14,"cp":[-2.5830348,54.4598409]}},{"geometry":{"type":"Polygon","coordinates":[[[46.30546875000002,41.507714843749994],[46.61894531250002,41.34375],[46.67255859375001,41.28681640625],[46.66240234375002,41.245507812499994],[46.62636718750002,41.15966796875],[46.534375,41.08857421875],[46.43095703125002,41.077050781249994],[46.086523437500006,41.183837890625],[45.28095703125001,41.449560546875],[45.21718750000002,41.423193359375],[45.00136718750002,41.290966796875],[44.97587890625002,41.277490234374994],[44.81132812500002,41.259375],[44.077246093750006,41.182519531249994],[43.43339843750002,41.155517578125],[43.20546875000002,41.199169921875],[43.15283203125,41.23642578125],[43.14101562500002,41.26484375],[43.17128906250002,41.287939453125],[43.149023437500006,41.30712890625],[43.05712890625,41.352832031249996],[42.90673828125,41.466845703124996],[42.82167968750002,41.4923828125],[42.78789062500002,41.563720703125],[42.75410156250001,41.57890625],[42.68242187500002,41.585742187499996],[42.60683593750002,41.57880859375],[42.590429687500006,41.57070312499999],[42.5673828125,41.55927734375],[42.46640625,41.43984375],[41.92578125,41.495654296874996],[41.82353515625002,41.432373046875],[41.779394531250006,41.44052734375],[41.701757812500006,41.471582031249994],[41.57656250000002,41.497314453125],[41.51005859375002,41.517480468749994],[41.701757812500006,41.705419921875],[41.76298828125002,41.970019531249996],[41.48876953125,42.659326171874994],[40.83662109375001,43.0634765625],[40.46210937500001,43.145703125],[39.97832031250002,43.419824218749994],[40.02373046875002,43.48486328125],[40.084570312500006,43.553125],[40.648046875,43.53388671875],[40.941992187500006,43.41806640625],[41.083105468750006,43.374462890625],[41.35820312500002,43.333398437499994],[41.46074218750002,43.276318359375],[41.58056640625,43.21923828125],[42.76064453125002,43.169580078124994],[42.99160156250002,43.09150390625],[43.00019531250001,43.049658203125],[43.08916015625002,42.9890625],[43.55781250000001,42.844482421875],[43.623046875,42.80771484375],[43.78261718750002,42.747021484375],[43.79873046875002,42.727783203125],[43.79541015625,42.702978515625],[43.74990234375002,42.657519531249996],[43.738378906250006,42.616992187499996],[43.759863281250006,42.59384765625],[43.82597656250002,42.571533203125],[43.95742187500002,42.566552734374994],[44.00468750000002,42.595605468749994],[44.10273437500001,42.616357421874994],[44.32949218750002,42.70351562499999],[44.505859375,42.7486328125],[44.77109375,42.616796875],[44.85048828125002,42.746826171875],[44.87099609375002,42.756396484374996],[44.943359375,42.730273437499996],[45.07158203125002,42.694140625],[45.160253906250006,42.675],[45.34375,42.52978515625],[45.56289062500002,42.5357421875],[45.70527343750001,42.498095703124996],[45.7275390625,42.475048828125],[45.63427734375,42.234716796875],[45.63857421875002,42.205078125],[46.21269531250002,41.989892578124994],[46.42988281250001,41.890966796875],[46.18427734375001,41.7021484375],[46.30546875000002,41.507714843749994]]]},"properties":{"name":"Georgia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-0.068603515625,11.115625],[0.009423828125023,11.02099609375],[-0.08632812499999,10.673046875],[0.380859375,10.291845703124991],[0.264550781250023,9.644726562499997],[0.342578125000017,9.604150390624994],[0.2333984375,9.463525390624994],[0.525683593750017,9.398486328124989],[0.48876953125,8.851464843749994],[0.37255859375,8.75927734375],[0.686328125000017,8.354882812499994],[0.5,7.546875],[0.634765625,7.353662109374994],[0.525585937500011,6.850927734374991],[0.736914062500006,6.452587890624997],[1.187207031250011,6.089404296874989],[0.94970703125,5.810253906249997],[0.259667968750023,5.75732421875],[-2.001855468749994,4.762451171875],[-3.114013671875,5.088671874999989],[-2.815673828125,5.153027343749997],[-2.754980468749977,5.432519531249994],[-2.793652343749983,5.60009765625],[-2.998291015625,5.71132812499999],[-3.227148437499977,6.749121093749991],[-2.959082031249977,7.454541015624997],[-2.789746093749983,7.931933593749989],[-2.668847656249994,8.022216796875],[-2.613378906249977,8.046679687499989],[-2.600976562499994,8.082226562499997],[-2.619970703124977,8.12109375],[-2.61171875,8.147558593749991],[-2.538281249999983,8.171630859375],[-2.505859375,8.208740234375],[-2.600390624999989,8.800439453124994],[-2.649218749999989,8.956591796874989],[-2.689892578124983,9.025097656249997],[-2.746923828124977,9.045117187499997],[-2.705761718749983,9.351367187499989],[-2.695849609374989,9.481347656249994],[-2.706201171874994,9.533935546875],[-2.765966796874977,9.658056640624991],[-2.780517578125,9.745849609375],[-2.791162109374994,10.432421874999989],[-2.914892578124977,10.592333984374989],[-2.829931640624977,10.998388671874991],[-1.04248046875,11.010058593749989],[-0.627148437499983,10.927392578124994],[-0.299462890624994,11.166894531249994],[-0.068603515625,11.115625]]]},"properties":{"name":"Ghana","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-11.389404296875,12.404394531249991],[-11.502197265625,12.198632812499994],[-11.30517578125,12.015429687499989],[-10.933203124999977,12.205175781249991],[-10.709228515625,11.898730468749989],[-10.274853515624983,12.212646484375],[-9.754003906249977,12.029931640624994],[-9.358105468749983,12.255419921874989],[-9.395361328124977,12.464648437499989],[-9.043066406249977,12.40234375],[-8.818310546874983,11.922509765624994],[-8.822021484375,11.673242187499994],[-8.398535156249977,11.366552734374991],[-8.666699218749983,11.009472656249997],[-8.33740234375,10.990625],[-8.266650390624989,10.485986328124994],[-8.007275390624983,10.321875],[-7.990625,10.1625],[-8.155175781249994,9.973193359374989],[-8.136962890625,9.49570312499999],[-7.896191406249983,9.415869140624991],[-7.918066406249977,9.188525390624989],[-7.839404296874989,9.151611328125],[-7.7998046875,9.115039062499989],[-7.777978515624994,9.080859374999989],[-7.902099609375,9.01708984375],[-7.938183593749983,8.979785156249989],[-7.950976562499989,8.786816406249997],[-7.719580078124977,8.643017578124997],[-7.696093749999989,8.375585937499991],[-7.823583984374977,8.467675781249994],[-7.953125,8.477734375],[-8.236962890624994,8.455664062499991],[-8.244140625,8.407910156249997],[-8.256103515625,8.253710937499989],[-8.217138671874977,8.219677734374997],[-8.140625,8.181445312499989],[-8.048583984375,8.169726562499989],[-8.009863281249977,8.07851562499999],[-8.126855468749994,7.867724609374989],[-8.115429687499983,7.7607421875],[-8.205957031249994,7.59023437499999],[-8.231884765624983,7.556738281249991],[-8.429980468749989,7.601855468749989],[-8.486425781249977,7.558496093749994],[-8.659765624999977,7.688378906249994],[-8.8896484375,7.2626953125],[-9.11757812499999,7.215917968749991],[-9.463818359374983,7.415869140624991],[-9.369140625,7.703808593749997],[-9.518261718749983,8.34609375],[-9.781982421875,8.537695312499991],[-10.064355468749994,8.429882812499997],[-10.147412109374983,8.519726562499997],[-10.233056640624994,8.488818359374989],[-10.283203125,8.485156249999989],[-10.360058593749983,8.495507812499994],[-10.394433593749994,8.48095703125],[-10.496435546874977,8.362109374999989],[-10.557714843749977,8.315673828125],[-10.686962890624983,8.321679687499994],[-10.712109374999983,8.335253906249989],[-10.677343749999977,8.400585937499997],[-10.500537109374989,8.687548828124989],[-10.615966796875,9.059179687499991],[-10.726855468749989,9.081689453124994],[-10.747021484374983,9.095263671874989],[-10.749951171874983,9.122363281249989],[-10.687646484374994,9.261132812499994],[-10.682714843749977,9.289355468749989],[-10.758593749999989,9.385351562499991],[-11.047460937499977,9.786328125],[-11.180859374999983,9.925341796874989],[-11.205664062499977,9.977734375],[-11.273632812499983,9.996533203124997],[-11.911083984374983,9.993017578124991],[-12.142333984375,9.87539062499999],[-12.427978515625,9.898144531249997],[-12.557861328125,9.704980468749994],[-12.755859375,9.373583984374989],[-12.958789062499989,9.263330078124994],[-13.077294921874994,9.069628906249989],[-13.292675781249983,9.04921875],[-13.436279296875,9.4203125],[-13.691357421874983,9.535791015624994],[-13.689794921874977,9.927783203124989],[-13.820117187499989,9.88720703125],[-14.045019531249977,10.141259765624994],[-14.426904296874994,10.248339843749989],[-14.609570312499983,10.549853515624989],[-14.593505859375,10.766699218749991],[-14.677343749999977,10.68896484375],[-14.775927734374989,10.931640625],[-14.88671875,10.968066406249989],[-14.975,10.803417968749997],[-15.051220703124983,10.834570312499991],[-15.043017578124989,10.940136718749997],[-14.9990234375,10.9921875],[-14.944433593749977,11.072167968749994],[-14.779296875,11.405517578125],[-14.720263671874989,11.48193359375],[-14.682958984374977,11.508496093749997],[-14.604785156249989,11.511621093749994],[-14.452441406249989,11.556201171874989],[-14.327832031249983,11.629785156249994],[-14.265576171874983,11.659912109375],[-14.122314453125,11.65195312499999],[-13.953222656249977,11.664599609374989],[-13.732763671874977,11.736035156249997],[-13.730664062499983,11.959863281249994],[-13.737988281249983,12.009667968749994],[-13.816308593749994,12.054492187499989],[-13.948876953124994,12.178173828124997],[-13.8875,12.246875],[-13.759765625,12.262353515624994],[-13.673535156249983,12.478515625],[-13.732617187499983,12.592822265624989],[-13.729248046875,12.673925781249991],[-13.082910156249994,12.633544921875],[-13.061279296875,12.489990234375],[-12.930712890624989,12.532275390624989],[-12.399072265624994,12.340087890625],[-11.389404296875,12.404394531249991]]]},"properties":{"name":"Guinea","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-16.763330078124994,13.064160156249997],[-16.824804687499977,13.341064453125],[-16.669335937499994,13.475],[-16.41337890624999,13.269726562499997],[-15.427490234375,13.46835937499999],[-16.135449218749983,13.4482421875],[-16.351806640625,13.34335937499999],[-16.56230468749999,13.587304687499994],[-15.509667968749994,13.586230468750003],[-15.426855468749977,13.727001953124997],[-15.108349609374983,13.81210937499999],[-14.405468749999983,13.503710937500003],[-13.977392578124977,13.54345703125],[-13.826708984374989,13.4078125],[-14.246777343749983,13.23583984375],[-15.151123046875,13.556494140624991],[-15.286230468749977,13.39599609375],[-15.814404296874983,13.325146484374997],[-15.834277343749989,13.156445312499997],[-16.648779296874977,13.154150390624991],[-16.763330078124994,13.064160156249997]]]},"properties":{"name":"Gambia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-15.895898437499966,11.082470703124969],[-15.963964843749977,11.05898437499998],[-15.937695312499955,11.192773437499966],[-15.895898437499966,11.082470703124969]]],[[[-16.11450195312503,11.059423828124977],[-16.236425781249977,11.113427734374966],[-16.06733398437501,11.197216796874983],[-16.11450195312503,11.059423828124977]]],[[[-15.901806640624926,11.4658203125],[-16.02319335937497,11.477148437499991],[-15.964550781249926,11.59829101562498],[-15.901806640624926,11.4658203125]]],[[[-15.986425781249949,11.882031249999969],[-16.038330078124943,11.759716796875011],[-16.15244140624992,11.876806640624963],[-15.986425781249949,11.882031249999969]]],[[[-13.759765625,12.262353515624994],[-13.8875,12.246875],[-13.948876953124966,12.178173828124997],[-13.737988281250011,12.009667968750037],[-13.730664062499926,11.959863281250009],[-13.73276367187492,11.736035156249983],[-13.953222656249977,11.664599609374989],[-14.265576171874926,11.659912109375014],[-14.327832031250011,11.629785156250009],[-14.452441406249989,11.556201171875017],[-14.604785156249932,11.511621093749994],[-14.682958984374949,11.508496093749983],[-14.720263671875017,11.481933593749986],[-14.779296874999972,11.405517578125057],[-14.944433593749949,11.072167968749994],[-14.999023437499972,10.992187500000043],[-15.04301757812496,10.940136718750011],[-15.09375,11.011035156249974],[-15.054589843749994,11.141943359375006],[-15.222119140624926,11.030908203125037],[-15.216699218749994,11.15625],[-15.39311523437496,11.217236328124983],[-15.354687499999955,11.396337890624963],[-15.479492187499972,11.410302734374966],[-15.072656249999937,11.597802734374966],[-15.230371093750023,11.686767578124972],[-15.412988281249994,11.615234374999972],[-15.501904296875011,11.723779296874966],[-15.467187499999937,11.842822265624974],[-15.078271484374937,11.968994140625014],[-15.941748046875006,11.786621093749986],[-15.92021484374996,11.93779296874996],[-16.138427734375,11.917285156250045],[-16.32807617187501,12.051611328124963],[-16.244580078124955,12.237109375],[-16.43681640624996,12.204150390625045],[-16.711816406249937,12.354833984375006],[-16.656933593749955,12.364355468749991],[-16.52133789062495,12.348632812499986],[-16.41630859374996,12.367675781250057],[-16.24150390624996,12.443310546875011],[-16.144189453124937,12.457421875000037],[-15.839550781249955,12.437890624999966],[-15.57480468749992,12.490380859375009],[-15.19609375,12.679931640624986],[-14.3492187499999,12.67641601562498],[-14.064843749999966,12.675292968750014],[-13.729248046875,12.673925781250006],[-13.732617187499983,12.592822265625003],[-13.673535156249926,12.478515624999986],[-13.759765625,12.262353515624994]]]]},"properties":{"name":"Guinea-Bissau","childNum":5}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[11.332324218750017,1.528369140624989],[11.335351562500023,0.999707031250011],[9.906738281250028,0.960107421875037],[9.80390625000004,0.998730468749997],[9.788671875000034,1.025683593749974],[9.760546874999989,1.074707031250014],[9.704589843750057,1.079980468750023],[9.676464843750011,1.074707031250014],[9.636132812500051,1.046679687499989],[9.590820312500057,1.031982421875014],[9.599414062500045,1.054443359374972],[9.509863281250006,1.114794921875017],[9.385937500000068,1.13925781250002],[9.807031250000051,1.927490234375028],[9.77968750000008,2.068212890625006],[9.800781250000028,2.304443359375],[9.826171875000057,2.297802734374969],[9.8369140625,2.242382812500054],[9.870117187500028,2.21328125],[9.979882812499994,2.167773437500045],[10.790917968750023,2.167578125],[11.096582031250051,2.167480468749986],[11.328710937500006,2.167431640624969],[11.332324218750017,1.528369140624989]]],[[[8.735742187500023,3.758300781249972],[8.910058593750023,3.758203125000051],[8.946093750000074,3.627539062499977],[8.704003906250051,3.223632812500028],[8.474902343749989,3.264648437500043],[8.464648437500045,3.450585937499994],[8.735742187500023,3.758300781249972]]]]},"properties":{"name":"Eq. Guinea","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[23.852246093749983,35.53544921874999],[24.166015625000057,35.59521484375],[24.108984374999977,35.49580078124998],[24.35400390625,35.359472656250034],[25.73017578125004,35.34858398437501],[25.791308593750074,35.122851562500045],[26.32021484375008,35.315136718749955],[26.165625,35.018603515625045],[24.79980468750003,34.93447265625002],[24.70888671875008,35.08906250000001],[24.463671875000045,35.160351562499955],[23.59277343749997,35.257226562499966],[23.56982421875,35.534765625000034],[23.67265624999999,35.51391601562506],[23.736914062500034,35.65551757812503],[23.852246093749983,35.53544921874999]]],[[[27.17607421874999,35.46528320312498],[27.070703125000023,35.59775390624998],[27.22314453125,35.820458984374966],[27.17607421874999,35.46528320312498]]],[[[23.053808593750034,36.18979492187498],[22.91083984375004,36.220996093750045],[22.950488281250045,36.38393554687502],[23.053808593750034,36.18979492187498]]],[[[27.84277343750003,35.929296875000034],[27.71552734375004,35.95732421874996],[27.71630859375003,36.17158203125001],[28.23183593750005,36.43364257812502],[28.087792968750023,36.06533203125002],[27.84277343750003,35.929296875000034]]],[[[25.48242187500003,36.39262695312502],[25.37050781250005,36.35893554687499],[25.408984375000074,36.473730468750006],[25.48242187500003,36.39262695312502]]],[[[26.46064453125001,36.58540039062501],[26.270019531250057,36.54692382812499],[26.370019531250023,36.63857421875002],[26.46064453125001,36.58540039062501]]],[[[26.94960937500005,36.72709960937502],[27.214941406250006,36.89863281249998],[27.352148437499977,36.86889648437506],[26.94960937500005,36.72709960937502]]],[[[25.859375,36.79042968750005],[25.74316406250003,36.78974609374998],[26.06445312500003,36.90273437500002],[25.859375,36.79042968750005]]],[[[27.01972656250004,36.95903320312502],[26.91992187500003,36.94521484375005],[26.88867187499997,37.087255859375034],[27.01972656250004,36.95903320312502]]],[[[25.278906250000034,37.06840820312502],[25.105468750000057,37.034960937500045],[25.235058593750068,37.148535156250006],[25.278906250000034,37.06840820312502]]],[[[25.54589843749997,36.96757812499999],[25.45673828125001,36.9296875],[25.361914062500063,37.07041015624998],[25.52529296875005,37.19638671875006],[25.54589843749997,36.96757812499999]]],[[[24.523535156250063,37.125097656250006],[24.42480468750003,37.131982421874994],[24.48378906250005,37.21020507812503],[24.523535156250063,37.125097656250006]]],[[[25.402734375000023,37.419140624999955],[25.312695312500068,37.48930664062496],[25.462988281250063,37.47109375],[25.402734375000023,37.419140624999955]]],[[[26.029296875000057,37.529394531250034],[26.086328125000023,37.63491210937505],[26.351367187500017,37.67431640625],[26.029296875000057,37.529394531250034]]],[[[25.255859375000057,37.59960937500006],[25.156347656250034,37.54506835937505],[24.99648437500005,37.676904296874994],[25.255859375000057,37.59960937500006]]],[[[24.35595703125003,37.57685546875004],[24.28896484375005,37.52827148437498],[24.37910156250004,37.682714843750006],[24.35595703125003,37.57685546875004]]],[[[26.82441406250004,37.81142578125005],[27.05507812500005,37.70927734375002],[26.84492187500004,37.64472656250001],[26.58105468750003,37.723730468750034],[26.82441406250004,37.81142578125005]]],[[[20.888476562500074,37.805371093749955],[20.993945312500074,37.70800781250003],[20.81855468750004,37.66474609375001],[20.61953125000008,37.855029296875045],[20.691503906250006,37.929541015625034],[20.888476562500074,37.805371093749955]]],[[[24.991699218750057,37.75961914062506],[24.962207031250074,37.69238281250003],[24.7001953125,37.961669921875],[24.956347656250045,37.90478515625006],[24.991699218750057,37.75961914062506]]],[[[20.61230468750003,38.38334960937502],[20.761328125,38.07055664062497],[20.523535156250063,38.106640624999955],[20.4521484375,38.23417968750002],[20.35253906250003,38.179882812499955],[20.563183593750068,38.474951171875034],[20.61230468750003,38.38334960937502]]],[[[26.094042968750017,38.21806640625002],[25.891894531250045,38.243310546874994],[25.991406250000068,38.353515625],[25.846093750000023,38.57402343749996],[26.16035156250001,38.54072265625001],[26.094042968750017,38.21806640625002]]],[[[20.68671875000001,38.60869140625002],[20.5546875,38.58256835937502],[20.69414062499999,38.84423828125003],[20.68671875000001,38.60869140625002]]],[[[24.67470703125005,38.80922851562502],[24.54101562499997,38.788671875],[24.485644531250074,38.980273437500045],[24.67470703125005,38.80922851562502]]],[[[23.41542968750008,38.958642578124994],[23.525,38.8134765625],[24.127539062500034,38.648486328125045],[24.27578125000005,38.22001953124996],[24.58837890625003,38.12397460937504],[24.53652343750005,37.97973632812506],[24.212011718750006,38.11752929687506],[24.040136718750006,38.389990234375034],[23.65078125000008,38.44306640625001],[23.25214843750004,38.80122070312498],[22.870312500000068,38.870507812499966],[23.258203125000023,39.03134765625006],[23.41542968750008,38.958642578124994]]],[[[26.41015625000003,39.329443359375034],[26.59560546875005,39.04882812499997],[26.488671875000023,39.074804687500034],[26.46875,38.97280273437502],[26.10791015625,39.08105468749997],[26.273144531249983,39.19755859374999],[26.072363281250034,39.095605468749994],[25.84414062500008,39.20004882812506],[26.16542968750008,39.37353515625006],[26.41015625000003,39.329443359375034]]],[[[20.077929687500045,39.432714843750034],[19.883984375000068,39.461523437500034],[19.646484375,39.76708984375003],[19.926074218750017,39.773730468750045],[19.8466796875,39.66811523437502],[20.077929687500045,39.432714843750034]]],[[[25.43769531250004,39.98330078125002],[25.357031250000063,39.80810546875003],[25.24941406250005,39.89414062500006],[25.06220703125004,39.852392578125006],[25.05800781250005,39.999658203124966],[25.43769531250004,39.98330078125002]]],[[[24.774218750000074,40.615185546874955],[24.515527343750023,40.64702148437496],[24.623339843750045,40.79291992187501],[24.774218750000074,40.615185546874955]]],[[[26.03896484375008,40.726757812499955],[25.10449218750003,40.994726562500006],[24.792968750000057,40.857519531250034],[24.47705078125,40.94775390625003],[24.082324218750074,40.72407226562504],[23.762792968750063,40.74780273437497],[23.866796875000034,40.41855468750006],[24.21279296875008,40.32778320312502],[24.343359375000034,40.14770507812503],[23.913183593750063,40.35878906250005],[23.72792968750008,40.329736328124994],[23.96748046875001,40.11455078125002],[23.947070312500045,39.96557617187506],[23.66455078125003,40.22382812499998],[23.42626953125,40.26396484374999],[23.62734375,39.92407226562503],[22.896484375000057,40.39990234374997],[22.92226562500008,40.59086914062499],[22.629492187500034,40.49555664062501],[22.59218750000005,40.03691406250002],[23.327734374999977,39.174902343750006],[23.15468750000008,39.10146484375005],[23.16171875,39.25776367187501],[22.92138671874997,39.30634765625004],[22.886035156250074,39.16997070312496],[23.066699218750017,39.03793945312498],[22.569140625000074,38.86748046874999],[23.25292968750003,38.66123046875006],[23.68398437500008,38.35244140625002],[23.96699218750001,38.275],[24.024511718750006,38.139794921874966],[24.01972656250001,37.67773437499997],[23.50175781249999,38.03486328124998],[23.03632812500004,37.87836914062501],[23.48925781250003,37.440185546875],[23.16152343750005,37.333837890625006],[22.725390625000017,37.542138671874966],[23.16015625000003,36.448095703125034],[22.717187500000023,36.79394531250006],[22.42773437500003,36.47578124999998],[22.08046875000008,37.028955078124966],[21.95556640625003,36.990087890625034],[21.892382812500045,36.73730468749997],[21.58291015625005,37.080957031249994],[21.678906250000068,37.38720703125003],[21.124707031250068,37.89160156250003],[21.40371093750005,38.19667968750002],[21.658398437500068,38.17509765624996],[21.82470703125003,38.328125],[22.846386718750068,37.96757812499996],[23.18349609375008,38.133691406249966],[22.421679687500045,38.43852539062499],[22.319921875,38.35683593750005],[21.96533203124997,38.412451171875006],[21.47255859375005,38.321386718750006],[21.3310546875,38.48730468749997],[21.303320312500034,38.373925781249966],[21.113183593750023,38.38466796875002],[20.768554687500057,38.874414062499966],[21.111621093750045,38.89628906249999],[21.11835937500001,39.029980468749955],[20.71337890625,39.03515625000003],[20.300781250000057,39.32709960937501],[20.19140625,39.545800781249966],[20.099414062500074,39.641259765624966],[20.001269531250074,39.70942382812501],[20.022558593750063,39.710693359375],[20.059765624999983,39.69912109375002],[20.13105468750004,39.66162109375003],[20.206835937500017,39.65351562499998],[20.382421875,39.802636718749994],[20.381640625000017,39.84179687500006],[20.311328125000074,39.95078125000006],[20.311132812500034,39.97944335937504],[20.338476562500006,39.991064453125006],[20.38369140625008,40.0171875],[20.408007812500074,40.049462890624994],[20.4560546875,40.065576171874994],[20.657421875000068,40.11738281249998],[20.881640625000017,40.467919921874994],[21.030859375000034,40.62246093750002],[20.95576171875001,40.775292968749994],[20.96425781250005,40.84990234374999],[21.575781250000034,40.86894531249996],[21.627539062500006,40.896337890625034],[21.77949218750004,40.95043945312506],[21.99335937500001,41.13095703125006],[22.18447265625005,41.15864257812501],[22.49355468750005,41.118505859375006],[22.603613281249977,41.14018554687499],[22.724804687500068,41.17851562499999],[22.78388671875004,41.33198242187498],[23.155957031250068,41.32207031249999],[23.239843750000034,41.38496093750001],[23.372070312500057,41.3896484375],[23.433398437500017,41.39873046874999],[23.53583984375001,41.38603515624999],[23.63515625000008,41.386767578125045],[24.011328124999977,41.460058593750034],[24.03291015625004,41.469091796875034],[24.05605468750005,41.527246093749966],[24.38671875,41.523535156250006],[24.487890625,41.55522460937499],[24.518261718750068,41.55253906249996],[24.773730468750045,41.356103515624994],[24.99355468750008,41.36499023437503],[25.133398437500063,41.31577148437506],[25.251171875000068,41.243554687499994],[25.923339843750057,41.311914062499966],[26.066406250000057,41.35068359375006],[26.135351562499977,41.3857421875],[26.155175781250023,41.43486328124999],[26.143554687500057,41.52153320312496],[26.085546875000063,41.704150390625045],[26.10742187499997,41.72568359374998],[26.20058593750005,41.74379882812502],[26.320898437500034,41.716552734375],[26.581347656250074,41.60126953125004],[26.62490234375008,41.401757812499994],[26.330664062499977,41.23876953125],[26.331054687500057,40.954492187499994],[26.03896484375008,40.726757812499955]]]]},"properties":{"name":"Greece","childNum":29}},{"geometry":{"type":"Polygon","coordinates":[[[-61.71552734375,12.012646484374997],[-61.714990234374994,12.18515625],[-61.60703125,12.223291015624994],[-61.71552734375,12.012646484374997]]]},"properties":{"name":"Grenada","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-46.266699218750006,60.781396484374994],[-46.381542968749955,60.66030273437502],[-46.7880859375,60.758398437500034],[-46.205224609374994,60.943505859374994],[-46.266699218750006,60.781396484374994]]],[[[-37.03125,65.53198242187497],[-37.23842773437494,65.60986328125003],[-37.047509765624966,65.722265625],[-37.03125,65.53198242187497]]],[[[-51.01367187499994,69.55249023437497],[-51.202050781249966,69.525],[-51.33886718749994,69.73203125000006],[-51.094580078125006,69.92416992187503],[-50.67900390624999,69.84853515625],[-51.01367187499994,69.55249023437497]]],[[[-52.73115234375001,69.94472656250005],[-52.0453125,69.8072265625],[-51.90019531249999,69.60478515625007],[-53.57841796874996,69.25664062500002],[-54.18271484374995,69.40351562500001],[-53.65830078124998,69.46513671875005],[-53.825,69.54033203124999],[-54.91914062499998,69.71362304687503],[-54.78789062499996,69.94985351562502],[-54.322607421875034,69.94189453125],[-54.83076171875001,70.13295898437502],[-54.37163085937499,70.31728515625],[-53.296728515625034,70.20537109375002],[-52.73115234375001,69.94472656250005]]],[[[-51.67514648437498,70.855224609375],[-52.11938476562497,70.87065429687502],[-52.10673828124999,70.96801757812497],[-51.67514648437498,70.855224609375]]],[[[-25.43232421875001,70.92133789062495],[-25.402246093749994,70.65268554687503],[-26.217871093749977,70.45405273437498],[-26.604687499999926,70.55336914062497],[-28.03525390624995,70.48681640625],[-27.61723632812496,70.91376953125001],[-26.621777343749955,70.87563476562497],[-25.81889648437499,71.04365234375001],[-25.43232421875001,70.92133789062495]]],[[[-53.53520507812493,71.04082031250005],[-53.9578125,71.12773437499999],[-53.58447265625003,71.29707031249995],[-53.53520507812493,71.04082031250005]]],[[[-55.01689453124999,72.79111328125003],[-55.56660156249998,72.56435546875002],[-56.214794921874955,72.71918945312495],[-55.01689453124999,72.79111328125003]]],[[[-18.000537109374932,75.40732421875003],[-17.391992187499937,75.03691406250007],[-18.670800781249966,75.00166015624998],[-18.856054687499977,75.31914062500002],[-18.000537109374932,75.40732421875003]]],[[[-18.58261718749995,76.042333984375],[-19.085351562499966,76.43037109375001],[-18.882470703124937,76.70380859375001],[-18.58261718749995,76.042333984375]]],[[[-71.667333984375,77.32529296874998],[-72.48955078124999,77.43164062499997],[-71.43344726562495,77.394384765625],[-71.667333984375,77.32529296874998]]],[[[-17.6125,79.82587890624995],[-18.662011718749966,79.72001953125005],[-19.13828125,79.85234375000002],[-17.98291015625,80.05517578125003],[-17.471386718749955,80.02871093749997],[-17.6125,79.82587890624995]]],[[[-44.86455078124999,82.08364257812502],[-46.75190429687501,82.34819335937502],[-47.27226562499996,82.65693359375001],[-46.399169921875,82.692138671875],[-44.91748046875003,82.48051757812505],[-44.86455078124999,82.08364257812502]]],[[[-29.952880859375,83.56484374999997],[-25.795068359374994,83.26098632812497],[-31.99267578125,83.0853515625],[-32.03271484374997,82.98344726562502],[-25.12338867187495,83.15961914062501],[-24.47031249999995,82.87739257812498],[-21.582519531249943,82.6341796875],[-23.118066406249966,82.32470703125003],[-29.57939453124996,82.16118164062502],[-29.887402343749983,82.05483398437502],[-29.543847656249994,81.93994140624997],[-27.839501953124966,82.04887695312505],[-25.148828124999966,82.001123046875],[-24.293066406249977,81.70097656250005],[-23.103710937499983,82.01181640625003],[-21.337988281249977,82.068701171875],[-21.230517578125017,81.60136718749999],[-23.11772460937499,80.77817382812498],[-19.62993164062499,81.63989257812503],[-17.456054687499943,81.397705078125],[-16.12070312499995,81.776611328125],[-14.241992187500017,81.81386718750005],[-12.434423828125006,81.68251953125002],[-11.430664062499972,81.45683593750005],[-13.126220703124972,81.08779296875],[-14.452343749999955,80.99311523437498],[-14.503564453124994,80.76328125000006],[-16.76059570312492,80.573388671875],[-15.937255859374972,80.42763671874997],[-16.48876953124997,80.25195312499997],[-18.070947265624994,80.17207031249995],[-19.429199218749943,80.25771484375],[-20.150146484375,80.01123046874997],[-18.99199218749996,79.17836914062502],[-21.133740234374926,78.65864257812501],[-21.729589843749977,77.70854492187499],[-20.862597656249932,77.91186523437503],[-19.490429687499983,77.71889648437497],[-19.46752929687503,77.56582031250005],[-20.162060546874926,77.68984375],[-20.680810546875023,77.61899414062503],[-20.23193359374997,77.36840820312497],[-19.30029296874997,77.22236328124995],[-18.442626953124943,77.259375],[-18.51030273437496,76.77817382812498],[-20.48671875,76.92080078125],[-21.614697265624926,76.68789062499997],[-22.18525390625001,76.79409179687502],[-22.609326171874983,76.70429687500004],[-21.877343749999966,76.57348632812503],[-21.488232421874926,76.271875],[-20.10361328124992,76.21909179687503],[-19.508984374999926,75.75751953124995],[-19.52636718750003,75.18022460937505],[-20.484960937500006,75.31425781249999],[-21.649316406249966,75.02343749999997],[-22.232861328124926,75.11972656249998],[-21.69511718749999,74.96445312500003],[-20.985791015624983,75.07436523437497],[-20.86157226562497,74.63593750000001],[-20.41708984374995,74.9751953125],[-19.98491210937499,74.9751953125],[-19.287011718750023,74.54638671875006],[-19.36914062499997,74.28403320312498],[-20.256445312499977,74.2828125],[-20.653125,74.13735351562502],[-21.954931640624977,74.24428710937497],[-21.942919921874932,74.56572265624999],[-22.32158203124999,74.30253906250002],[-22.134814453124932,73.99047851562503],[-20.36728515624992,73.8482421875],[-20.509667968749966,73.49287109375001],[-22.346875,73.26923828125001],[-23.23320312499999,73.39770507812497],[-24.157714843749943,73.76445312499999],[-24.67724609375,73.602197265625],[-25.521289062500017,73.85161132812499],[-24.79125976562497,73.51127929687502],[-26.062304687500017,73.25302734375],[-27.270410156250023,73.43627929687503],[-26.541845703125006,73.24897460937495],[-27.561621093750006,73.13847656250002],[-27.348046875000023,73.06782226562501],[-25.057031250000023,73.396484375],[-24.132666015625006,73.409375],[-22.036328124999955,72.91845703125006],[-22.29321289062497,72.11953125],[-24.06904296875001,72.49873046874998],[-24.629980468749977,73.03764648437499],[-26.657617187499966,72.71582031249997],[-24.81333007812492,72.90151367187497],[-24.65,72.58251953125],[-25.117871093749983,72.34697265625005],[-24.66684570312492,72.437353515625],[-21.959667968749955,71.74467773437502],[-22.479638671874937,71.38344726562497],[-22.417578125,71.24868164062505],[-22.29902343750001,71.43232421874998],[-21.75224609374999,71.47832031250002],[-21.522656249999926,70.52622070312503],[-22.38413085937492,70.46240234375],[-22.437011718749943,70.860009765625],[-22.690673828124943,70.43730468750002],[-23.327832031249983,70.45097656250007],[-23.97138671875001,70.64946289062499],[-24.562207031249926,71.22353515624997],[-25.885156249999966,71.571923828125],[-27.08720703124999,71.6265625],[-27.107031250000034,71.53266601562498],[-25.842724609374955,71.48017578124995],[-25.74223632812499,71.18359375],[-26.717919921874994,70.95048828125005],[-28.39843749999997,70.99291992187497],[-27.99218749999997,70.89521484374998],[-28.06987304687499,70.69902343750005],[-29.07207031249999,70.444970703125],[-26.621777343749955,70.46337890625],[-26.576806640625023,70.35708007812502],[-27.560839843749932,70.12446289062498],[-27.384179687500023,69.9916015625],[-27.027734374999966,70.20122070312499],[-25.529882812499977,70.35317382812502],[-23.66733398437495,70.139306640625],[-22.28447265624996,70.12583007812498],[-22.287060546874955,70.03339843749998],[-23.03364257812501,69.90083007812498],[-23.04956054687497,69.79272460937497],[-23.86572265624997,69.73671875000002],[-23.739404296874994,69.58862304687497],[-24.296679687500017,69.58554687500006],[-24.295556640624966,69.439306640625],[-25.188574218750006,69.26054687500002],[-25.092431640624937,69.16518554687502],[-25.697998046874943,68.889892578125],[-26.48291015624997,68.67592773437502],[-29.24951171874997,68.29877929687501],[-29.86850585937495,68.31157226562505],[-30.318115234375,68.19331054687501],[-30.72001953124999,68.25117187499998],[-30.610742187499994,68.11791992187503],[-30.97856445312499,68.06132812500005],[-32.32744140624999,68.43730468749999],[-32.16455078125,67.99111328125002],[-33.15698242187497,67.62670898437506],[-34.1982421875,66.65507812499999],[-35.18857421874995,66.25029296875002],[-35.86723632812502,66.44140624999997],[-35.630078124999926,66.13994140625002],[-36.37919921874996,65.830810546875],[-36.52724609375002,66.00771484375],[-36.665185546874966,65.79008789062507],[-37.06279296874996,65.87143554687503],[-37.410058593749994,65.65634765625],[-37.954785156249955,65.63359375000007],[-37.278710937499994,66.30439453124995],[-38.156640624999966,66.38559570312498],[-37.75234375000002,66.26152343750002],[-38.13994140625002,65.90351562499998],[-38.52036132812498,66.00966796875002],[-38.20336914062497,65.71171874999999],[-40.17353515624998,65.55615234375],[-39.57792968749996,65.34077148437501],[-39.937255859375,65.14160156250003],[-40.253125,65.04887695312505],[-41.08442382812501,65.10083007812497],[-40.966015624999955,64.86884765624995],[-40.655468749999926,64.91533203125002],[-40.18222656249998,64.47993164062495],[-40.78173828125,64.22177734375003],[-41.581005859374926,64.29833984375],[-41.03056640624996,64.12104492187504],[-40.61777343749998,64.13173828125],[-40.550390625000034,63.72524414062505],[-40.77519531249999,63.53364257812501],[-41.04873046875002,63.51381835937505],[-41.387890624999926,63.06186523437498],[-41.84448242187497,63.07026367187501],[-42.174511718749955,63.20878906249999],[-41.63447265624998,62.972460937500074],[-41.90898437499996,62.73710937499999],[-42.94165039062503,62.72021484375003],[-42.15297851562502,62.568457031250006],[-42.32148437499998,62.15273437500005],[-42.110205078125006,61.857226562500074],[-42.58530273437498,61.71748046875001],[-42.34736328125001,61.61743164062497],[-42.717041015625,60.767480468749994],[-43.04409179687502,60.523681640625],[-43.92270507812495,60.59536132812502],[-43.21298828124998,60.390673828125074],[-43.122900390625006,60.06123046875001],[-43.32011718749993,59.928125],[-43.95502929687498,60.025488281250006],[-43.65791015625001,59.85864257812503],[-43.90654296874996,59.815478515625045],[-44.11699218750002,59.83193359375002],[-44.06547851562499,59.92480468750003],[-44.412939453125006,59.922607421875],[-44.22436523437494,60.273535156250006],[-44.61328124999997,60.01665039062499],[-45.37924804687495,60.20292968750002],[-45.367773437500006,60.37294921875002],[-44.97470703124995,60.457226562499955],[-44.756738281249966,60.66459960937502],[-45.38051757812494,60.444921875],[-46.04663085937503,60.61572265625],[-46.141943359375006,60.776513671874994],[-45.87021484374998,61.21831054687502],[-46.87446289062501,60.81640625000003],[-48.180810546874966,60.76923828125001],[-47.77031249999999,60.99775390625001],[-48.386425781249926,61.004736328125034],[-48.42817382812501,61.18740234375002],[-48.92207031249998,61.27744140624998],[-49.28906249999997,61.58994140625006],[-49.380273437499994,61.89018554687502],[-48.82871093749998,62.0796875],[-49.62377929687494,61.99858398437499],[-49.553466796875,62.23271484374999],[-50.319238281249966,62.473193359375045],[-50.298730468749966,62.72197265625002],[-49.793115234374994,63.04462890625004],[-50.39008789062501,62.82202148437497],[-51.46884765624995,63.64228515625001],[-51.547509765624994,64.00610351562497],[-50.260693359374955,64.21425781250002],[-50.48662109374996,64.20888671875],[-50.43706054687499,64.31284179687503],[-51.58491210937498,64.10317382812502],[-51.70786132812498,64.205078125],[-51.403759765624926,64.46318359375002],[-50.49208984375002,64.69316406250005],[-50.00898437500001,64.44726562499997],[-50.12163085937493,64.703759765625],[-50.51699218750002,64.76650390625],[-50.96064453124998,65.20112304687498],[-50.721582031249966,64.79760742187503],[-51.22060546875002,64.62846679687502],[-51.25537109375,64.75810546875005],[-51.92260742187503,64.21875],[-52.259033203125,65.154931640625],[-52.537695312500034,65.32880859374998],[-51.61914062500003,65.71318359375002],[-51.091894531250006,65.77578125],[-51.7234375,65.723486328125],[-52.55126953125003,65.46137695312498],[-52.760937499999926,65.59082031249997],[-53.198974609375,65.59404296875002],[-53.106347656249966,65.97714843749998],[-53.39204101562498,66.04833984375],[-51.225,66.88154296875001],[-53.035791015624966,66.20141601562503],[-53.538769531249955,66.13935546874998],[-53.41875,66.64853515624998],[-53.038281249999955,66.82680664062497],[-52.38686523437502,66.88115234375005],[-53.44360351562503,66.924658203125],[-53.88442382812502,67.13554687499999],[-53.79858398437494,67.41816406250001],[-52.666455078124955,67.74970703124995],[-50.613476562499955,67.5279296875],[-51.171044921874966,67.693603515625],[-50.96884765624998,67.80664062500003],[-51.765234375000034,67.73784179687505],[-52.34482421874998,67.83691406249997],[-53.735205078125006,67.54902343750004],[-53.151562499999926,68.20776367187503],[-51.779980468749926,68.05673828124998],[-51.456494140624926,68.116064453125],[-51.21015625000001,68.419921875],[-52.19853515624993,68.22080078125],[-53.38315429687495,68.29736328124997],[-53.03945312500002,68.61088867187499],[-52.60458984374998,68.70874023437503],[-51.62314453124995,68.53481445312505],[-50.945703124999966,68.68266601562505],[-50.807714843750006,68.81699218749998],[-51.24941406250002,68.73994140625001],[-51.084863281249994,69.12827148437498],[-50.29736328124994,69.17060546874998],[-51.07695312499996,69.20947265625],[-50.291699218749955,70.01445312500005],[-52.254638671875,70.05893554687503],[-53.02304687499995,70.30190429687497],[-54.01445312499996,70.42167968750005],[-54.53076171875,70.69926757812502],[-54.16582031249999,70.82011718750005],[-52.801953124999955,70.7505859375],[-50.87236328124993,70.36489257812502],[-50.66328124999998,70.417578125],[-51.32285156249998,70.58876953124997],[-51.25659179687497,70.85268554687502],[-51.77431640625002,71.01044921875001],[-51.018945312499966,71.001318359375],[-51.37666015625001,71.11904296875],[-53.007568359375,71.17998046874999],[-52.89184570312497,71.457666015625],[-51.76992187500002,71.67172851562498],[-53.44008789062502,71.57900390625002],[-53.14453125000003,71.80742187500002],[-53.65214843749996,72.36264648437506],[-53.92773437499997,72.31879882812501],[-53.47758789062502,71.84995117187506],[-54.01992187500002,71.657861328125],[-53.96298828124995,71.45898437499997],[-54.6890625,71.36723632812505],[-55.59404296874999,71.55351562500005],[-55.315576171874994,72.11069335937498],[-54.84013671874996,72.35610351562497],[-55.581445312499994,72.178857421875],[-55.63583984374998,72.300439453125],[-55.29570312499996,72.35439453124997],[-55.60170898437494,72.453466796875],[-54.924951171874994,72.57197265624998],[-54.737939453124994,72.87250976562501],[-55.07309570312498,73.01513671875003],[-55.28891601562498,72.93320312500003],[-55.66855468749998,73.00791015624998],[-55.288281249999955,73.32709960937498],[-56.10405273437496,73.55815429687499],[-55.83828125,73.75971679687501],[-56.22539062499999,74.12910156249995],[-57.23056640624995,74.12529296875007],[-56.70634765625002,74.21918945312501],[-56.717675781249994,74.42924804687499],[-56.25546874999998,74.52680664062498],[-58.56552734374998,75.35273437500001],[-58.249658203124994,75.50668945312503],[-58.51621093749995,75.68906250000006],[-61.18823242187494,76.157861328125],[-63.29130859374996,76.35205078125003],[-63.84306640624999,76.21713867187498],[-64.307275390625,76.31650390624998],[-65.36992187499993,76.13056640625004],[-65.87573242187494,76.23833007812505],[-66.46577148437498,76.13916015625],[-66.99257812500002,76.21293945312502],[-66.67480468750003,75.977392578125],[-68.14873046875002,76.06704101562497],[-69.48408203125001,76.39916992187503],[-68.1142578125,76.65063476562503],[-69.67382812499994,76.73588867187507],[-69.69423828125002,76.98945312500004],[-70.613134765625,76.82182617187499],[-71.14145507812498,77.02866210937503],[-70.86284179687496,77.175439453125],[-68.97832031250002,77.19531250000006],[-68.13554687499999,77.37958984375001],[-66.38945312499999,77.28027343750003],[-66.69121093749999,77.68120117187502],[-67.68808593749995,77.523779296875],[-68.62153320312498,77.60185546875002],[-69.35136718749999,77.467138671875],[-70.53540039062497,77.699560546875],[-70.11445312500001,77.84135742187505],[-71.27163085937494,77.81313476562497],[-72.81806640624995,78.1943359375],[-72.47250976562498,78.48203125],[-71.65131835937493,78.62314453124998],[-68.99345703124999,78.857421875],[-68.37705078124998,79.037841796875],[-65.82553710937503,79.17373046874997],[-64.79228515624993,80.00063476562502],[-64.17915039062498,80.09926757812497],[-66.84365234374997,80.07622070312507],[-67.05063476562503,80.384521484375],[-64.51552734374997,81],[-63.72197265624993,81.05732421875001],[-63.028662109375006,80.88955078125002],[-62.90336914062496,81.21835937500003],[-61.43598632812498,81.13359375000002],[-60.842871093750034,81.85537109374997],[-59.28193359374998,81.88403320312503],[-56.615136718749994,81.362890625],[-59.26181640624998,82.00664062500005],[-54.54887695312496,82.35063476562505],[-53.671337890624955,82.16406249999997],[-53.55566406250003,81.65327148437501],[-53.022558593750034,82.32172851562504],[-50.894433593749994,81.89521484375001],[-49.54106445312496,81.91806640625003],[-50.93554687500003,82.38281250000003],[-50.03710937499994,82.472412109375],[-44.7294921875,81.77983398437505],[-44.23886718749998,82.3681640625],[-45.55654296875002,82.74702148437498],[-41.87646484375,82.680322265625],[-41.36962890625003,82.75],[-46.136816406250006,82.85883789062504],[-46.169042968750006,83.06386718749997],[-45.41459960937496,83.01767578124998],[-43.00927734375003,83.26459960937501],[-41.300146484375006,83.10078125000004],[-40.35683593750002,83.332177734375],[-38.15625,82.9986328125],[-38.74956054687496,83.37084960937497],[-37.72333984374998,83.49775390624998],[-29.952880859375,83.56484374999997]]]]},"properties":{"name":"Greenland","childNum":14}},{"geometry":{"type":"Polygon","coordinates":[[[-89.2328125,15.888671875],[-88.89404296875,15.890625],[-88.60336914062499,15.76416015625],[-88.5939453125,15.950292968749991],[-88.22832031249999,15.72900390625],[-88.271435546875,15.694873046875003],[-88.36455078124999,15.616015625],[-88.68447265625,15.360498046874994],[-88.96098632812499,15.152441406249991],[-89.142578125,15.072314453125003],[-89.22236328125,14.866064453124991],[-89.16220703124999,14.669238281250003],[-89.17177734375,14.606884765624997],[-89.28671875,14.529980468749997],[-89.36259765624999,14.416015625],[-89.5736328125,14.390087890624997],[-89.54716796874999,14.241259765625003],[-90.04814453124999,13.904052734375],[-90.09521484375,13.736523437499997],[-90.60693359375,13.929003906250003],[-91.37734375,13.990185546874997],[-92.23515624999999,14.54541015625],[-92.15854492187499,14.963574218749997],[-92.14423828125,15.001953125],[-92.09873046874999,15.026757812499994],[-92.07480468749999,15.07421875],[-92.187158203125,15.320898437499991],[-92.08212890624999,15.495556640624997],[-91.9572265625,15.703222656249991],[-91.736572265625,16.07016601562499],[-91.433984375,16.070458984374994],[-90.97958984374999,16.07080078125],[-90.70322265624999,16.071044921875],[-90.52197265625,16.071191406249994],[-90.44716796875,16.072705078124997],[-90.45986328125,16.162353515625],[-90.450146484375,16.261376953124994],[-90.4169921875,16.351318359375],[-90.4169921875,16.39101562499999],[-90.47109375,16.43955078124999],[-90.57578125,16.467822265625003],[-90.63408203124999,16.5107421875],[-90.634375,16.565136718749997],[-90.65996093749999,16.630908203125003],[-90.710693359375,16.70810546874999],[-90.975830078125,16.867822265624994],[-91.409619140625,17.255859375],[-91.1955078125,17.254101562499997],[-90.99296874999999,17.25244140625],[-90.98916015625,17.81640625],[-89.16147460937499,17.81484375],[-89.2328125,15.888671875]]]},"properties":{"name":"Guatemala","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[144.74179687500003,13.25927734375],[144.64931640625002,13.4287109375],[144.87539062500002,13.614648437499994],[144.94082031250002,13.5703125],[144.74179687500003,13.25927734375]]]},"properties":{"name":"Guam","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-57.194775390625,5.5484375],[-57.3185546875,5.335351562499994],[-57.20981445312499,5.195410156249991],[-57.331005859375,5.020166015624994],[-57.711083984374994,4.991064453124991],[-57.91704101562499,4.820410156249991],[-57.84599609374999,4.668164062499997],[-58.05429687499999,4.101660156249991],[-57.646728515625,3.39453125],[-57.303662109375,3.377099609374994],[-57.19736328124999,2.853271484375],[-56.704345703125,2.036474609374991],[-56.4828125,1.942138671875],[-56.96953124999999,1.91640625],[-57.03759765625,1.936474609374997],[-57.092675781249994,2.005810546874997],[-57.118896484375,2.013964843749989],[-57.31748046874999,1.963476562499991],[-57.41269531249999,1.908935546875],[-57.500439453125,1.77382812499999],[-57.54575195312499,1.72607421875],[-57.59443359375,1.7041015625],[-57.795654296875,1.7],[-57.8734375,1.667285156249989],[-57.9828125,1.6484375],[-58.03466796875,1.520263671875],[-58.34067382812499,1.587548828124994],[-58.38037109375,1.530224609374997],[-58.39580078124999,1.481738281249989],[-58.5060546875,1.438671875],[-58.511865234374994,1.28466796875],[-58.68461914062499,1.281054687499989],[-58.73032226562499,1.247509765624997],[-58.78720703124999,1.20849609375],[-58.82177734375,1.201220703124989],[-59.231201171875,1.376025390624989],[-59.53569335937499,1.7],[-59.66660156249999,1.746289062499997],[-59.66850585937499,1.842333984374989],[-59.74072265625,1.874169921874994],[-59.75620117187499,1.900634765625],[-59.75522460937499,2.274121093749997],[-59.8896484375,2.362939453124994],[-59.9943359375,2.689990234374989],[-59.854394531249994,3.5875],[-59.55112304687499,3.933544921874997],[-59.557763671874994,3.960009765624989],[-59.62021484374999,4.023144531249997],[-59.73857421874999,4.226757812499997],[-59.69970703125,4.353515625],[-60.1486328125,4.533251953124989],[-59.990673828125,5.082861328124991],[-60.142041015625,5.238818359374989],[-60.241650390625,5.257958984374994],[-60.335205078125,5.199316406249991],[-60.45952148437499,5.188085937499991],[-60.6513671875,5.221142578124997],[-60.742138671875,5.202050781249994],[-61.37680664062499,5.906982421875],[-61.3908203125,5.938769531249989],[-61.303125,6.049511718749997],[-61.22495117187499,6.129199218749989],[-61.15947265624999,6.174414062499991],[-61.12871093749999,6.214306640624997],[-61.152294921875,6.385107421874991],[-61.151025390624994,6.446533203125],[-61.181591796875,6.513378906249997],[-61.20361328125,6.58837890625],[-61.14560546874999,6.69453125],[-60.717919921874994,6.768310546875],[-60.35209960937499,7.002880859374997],[-60.32207031249999,7.092041015625],[-60.32548828124999,7.133984375],[-60.34506835937499,7.15],[-60.46494140624999,7.166552734374989],[-60.523193359375,7.143701171874994],[-60.583203125,7.156201171874997],[-60.63330078125,7.211083984374994],[-60.718652343749994,7.535937499999989],[-60.513623046875,7.813183593749997],[-60.032421875,8.053564453124991],[-59.99072265625,8.162011718749994],[-59.96484375,8.191601562499997],[-59.849072265625,8.248681640624994],[-59.83164062499999,8.305957031249989],[-60.017529296875,8.54931640625],[-59.20024414062499,8.07460937499999],[-58.51108398437499,7.39804687499999],[-58.48056640624999,7.038134765624989],[-58.67294921874999,6.390771484374994],[-58.414990234375,6.85117187499999],[-57.982568359374994,6.785888671875],[-57.54013671874999,6.33154296875],[-57.2275390625,6.178417968749997],[-57.194775390625,5.5484375]]]},"properties":{"name":"Guyana","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[73.70742187500002,-53.13710937499999],[73.46513671875002,-53.184179687500006],[73.25117187500001,-52.97578125000001],[73.83779296875002,-53.11279296875],[73.70742187500002,-53.13710937499999]]]},"properties":{"name":"Heard I. and McDonald Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-83.635498046875,14.876416015624997],[-84.53764648437496,14.633398437499963],[-84.64594726562498,14.661083984375011],[-84.86044921874998,14.809765625000011],[-84.98515624999999,14.752441406249972],[-85.059375,14.582958984374997],[-85.20834960937498,14.311816406250003],[-85.73393554687496,13.85869140625006],[-85.75341796875,13.852050781250028],[-85.78671874999995,13.844433593749997],[-85.98378906249997,13.965673828125006],[-86.04038085937503,14.050146484374977],[-86.33173828124995,13.770068359375031],[-86.37695312500003,13.755664062500031],[-86.61025390624997,13.774853515625026],[-86.73364257812494,13.763476562500017],[-86.75898437499995,13.746142578125045],[-86.77060546875003,13.698730468749972],[-86.763525390625,13.635253906250014],[-86.72958984375,13.4072265625],[-86.710693359375,13.31337890624998],[-86.72929687499996,13.284375],[-86.79213867187497,13.279785156249972],[-86.87353515624994,13.266503906250023],[-86.918212890625,13.223583984374983],[-87.00932617187499,13.007812499999986],[-87.0591796875,12.991455078125028],[-87.337255859375,12.979248046875028],[-87.48911132812503,13.352929687500051],[-87.814208984375,13.399169921875057],[-87.781884765625,13.521386718749994],[-87.71533203125003,13.812695312500011],[-87.73144531250003,13.841064453125014],[-87.80224609374997,13.889990234375034],[-87.89199218749997,13.894970703124983],[-87.99101562499996,13.879638671874972],[-88.15102539062497,13.987353515624974],[-88.44912109374994,13.850976562499994],[-88.48266601562503,13.854248046875043],[-88.49765624999998,13.904541015624986],[-88.50434570312501,13.964208984374963],[-88.51254882812498,13.97895507812504],[-89.12050781249994,14.370214843749991],[-89.36259765624996,14.416015625],[-89.17177734375,14.606884765624983],[-89.16220703125,14.669238281249989],[-89.22236328125001,14.86606445312502],[-89.142578125,15.072314453125031],[-88.96098632812496,15.15244140625002],[-88.68447265625002,15.360498046875037],[-88.36455078124996,15.616015625000045],[-88.27143554687498,15.694873046875045],[-88.22832031249999,15.729003906249972],[-88.131103515625,15.701025390625034],[-87.87495117187495,15.879345703124955],[-86.35664062499998,15.783203125],[-85.93627929687497,15.953417968750045],[-85.98564453124999,16.02416992187497],[-85.48369140624996,15.899511718749977],[-84.97373046874998,15.989892578124994],[-84.55966796875,15.802001953125],[-84.26142578124998,15.822607421875034],[-83.765283203125,15.405468750000054],[-83.972802734375,15.519628906250034],[-84.11132812499997,15.492431640625],[-84.09506835937503,15.400927734375017],[-83.92744140624998,15.394042968750028],[-83.76044921874998,15.220361328124994],[-83.49794921874997,15.222119140624997],[-83.64638671875,15.368408203125043],[-83.36918945312493,15.239990234375],[-83.29086914062498,15.078906250000045],[-83.2255859375,15.042285156250045],[-83.15751953124999,14.993066406249966],[-83.41503906249994,15.008056640625],[-83.5365234375,14.977001953124983],[-83.635498046875,14.876416015624997]]]},"properties":{"name":"Honduras","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[17.60781250000005,42.76904296875],[17.744238281250063,42.70034179687505],[17.34414062500008,42.790380859375006],[17.60781250000005,42.76904296875]]],[[[16.650683593750017,42.99658203125],[17.188281250000045,42.917041015625045],[16.850683593750006,42.8955078125],[16.650683593750017,42.99658203125]]],[[[17.667578125000063,42.897119140624994],[18.436328125000017,42.559716796874994],[18.517480468750023,42.43291015624999],[17.823828125,42.79741210937502],[17.045410156250057,43.014892578125],[17.667578125000063,42.897119140624994]]],[[[16.785253906250006,43.270654296874966],[16.490332031250034,43.28618164062502],[16.44892578125004,43.38706054687506],[16.89130859375001,43.314648437499955],[16.785253906250006,43.270654296874966]]],[[[15.371386718750074,43.973828124999955],[15.437207031250068,43.899511718750006],[15.270019531250028,44.01074218750003],[15.371386718750074,43.973828124999955]]],[[[14.488085937500074,44.66005859375005],[14.31240234375008,44.90039062499997],[14.33125,45.16499023437498],[14.488085937500074,44.66005859375005]]],[[[14.810253906250068,44.97705078124997],[14.45039062500004,45.079199218750006],[14.571093750000017,45.224755859374994],[14.810253906250068,44.97705078124997]]],[[[18.905371093750006,45.931738281250034],[18.839062499999983,45.83574218750002],[19.064257812500045,45.51499023437506],[19.004687500000074,45.39951171875006],[19.4,45.2125],[19.062890625000023,45.13720703125],[19.007128906250045,44.86918945312502],[18.83642578125,44.883251953124955],[18.66259765625,45.07744140624999],[17.812792968750074,45.078125],[16.918652343749983,45.27656249999998],[16.53066406250008,45.21669921875002],[16.29335937500005,45.00883789062496],[16.028320312500057,45.18959960937502],[15.788085937500057,45.17895507812497],[15.736621093750045,44.76582031250001],[16.10341796875008,44.52099609375006],[16.300097656250017,44.12451171875],[17.27382812500005,43.44575195312501],[17.650488281250063,43.006591796875],[17.585156250000068,42.93837890625005],[16.903125,43.392431640625006],[16.393945312500023,43.54335937500002],[15.985546875000068,43.519775390625],[15.185839843750017,44.17211914062503],[15.122949218749994,44.256787109374955],[15.470996093750045,44.27197265625003],[14.981347656250023,44.60292968750005],[14.854589843750034,45.08100585937501],[14.550488281249983,45.297705078125006],[14.31269531250004,45.33779296875002],[13.86074218750008,44.83740234375003],[13.517187500000063,45.481787109375034],[13.878710937500017,45.428369140624994],[14.369921875000074,45.48144531250006],[14.427343750000034,45.50576171875002],[14.56884765625,45.65722656249997],[14.591796875000057,45.65126953125002],[14.649511718750006,45.57148437500001],[14.793066406250034,45.47822265625001],[14.95458984375,45.499902343749994],[15.110449218750034,45.450781250000034],[15.242089843750023,45.44140624999997],[15.339453125000063,45.46704101562506],[15.326660156250028,45.502294921875034],[15.291210937500011,45.541552734375045],[15.283593750000051,45.5796875],[15.35371093750004,45.659912109375],[15.27705078125004,45.73261718749998],[15.652148437500074,45.86215820312498],[15.675585937500045,45.98369140624996],[15.666210937500011,46.04848632812502],[15.596875,46.10922851562506],[15.592578125000017,46.139990234375006],[15.608984374999977,46.171923828125045],[16.1064453125,46.382226562499994],[16.32119140625005,46.53461914062504],[16.42763671875005,46.5244140625],[16.516210937499977,46.499902343749966],[16.569921875,46.48500976562505],[16.748046875000057,46.41640625000002],[16.87148437500008,46.33930664062504],[17.310644531250006,45.99614257812502],[17.80712890625,45.79042968750002],[18.358300781250023,45.75302734375006],[18.533593750000023,45.79614257812503],[18.56464843750004,45.81328124999999],[18.666015625,45.90747070312497],[18.905371093750006,45.931738281250034]]]]},"properties":{"name":"Croatia","childNum":8}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-72.80458984374997,18.777685546875063],[-72.82221679687501,18.707128906249977],[-73.07797851562498,18.790917968749994],[-73.27641601562499,18.95405273437501],[-72.80458984374997,18.777685546875063]]],[[[-71.647216796875,19.195947265624994],[-71.80712890624997,18.987011718749983],[-71.733642578125,18.85639648437501],[-71.72705078125,18.80322265625003],[-71.74321289062502,18.73291015625],[-71.86650390624999,18.61416015625005],[-71.98686523437499,18.61035156249997],[-72.000390625,18.59790039062503],[-71.94038085937493,18.51259765625005],[-71.87255859374997,18.416210937499955],[-71.76191406249998,18.34130859374997],[-71.73725585937495,18.27080078124999],[-71.76831054687497,18.039160156250063],[-71.85292968749997,18.119140625],[-71.94609375,18.186083984375045],[-72.05986328124993,18.228564453125017],[-72.87666015624998,18.151757812499994],[-73.38515625000002,18.251171874999983],[-73.747314453125,18.190234375000017],[-73.88496093749998,18.041894531249994],[-74.478125,18.45],[-74.3875,18.624707031249983],[-74.22773437499998,18.662695312499977],[-72.78935546874996,18.434814453125],[-72.37607421874998,18.57446289062503],[-72.34765624999994,18.674951171874994],[-72.81108398437496,19.071582031250074],[-72.70322265625,19.441064453125023],[-73.43837890624994,19.722119140624983],[-73.21777343750003,19.88369140625005],[-72.63701171875002,19.90087890625],[-72.21982421875003,19.744628906250057],[-71.834716796875,19.696728515624983],[-71.77924804687498,19.718164062499994],[-71.75742187499998,19.68818359375001],[-71.71147460937493,19.486572265625057],[-71.74648437499997,19.28583984375001],[-71.647216796875,19.195947265624994]]]]},"properties":{"name":"Haiti","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[22.1318359375,48.405322265624996],[22.253710937500017,48.407373046874994],[22.582421875000023,48.134033203125],[22.769140625,48.109619140625],[22.87666015625001,47.947265625],[21.99970703125001,47.505029296874994],[21.121679687500006,46.282421875],[20.76025390625,46.246240234374994],[20.613671875000023,46.13349609375],[20.508105468750017,46.166943359375],[20.28095703125001,46.1330078125],[20.241796875,46.10859375],[20.21015625000001,46.126025390624996],[20.161425781250017,46.141894531249996],[19.93408203125,46.161474609375],[19.84443359375001,46.145898437499994],[19.61347656250001,46.169189453125],[19.421289062500023,46.064453125],[18.666015625,45.907470703125],[18.56464843750001,45.81328125],[18.533593750000023,45.796142578125],[18.358300781250023,45.75302734375],[17.80712890625,45.790429687499994],[17.310644531250006,45.996142578124996],[16.871484375000023,46.339306640625],[16.748046875,46.41640625],[16.569921875,46.485009765624994],[16.516210937500006,46.499902343749994],[16.283593750000023,46.857275390625],[16.093066406250017,46.86328125],[16.453417968750017,47.006787109375],[16.44287109375,47.39951171875],[16.676562500000017,47.536035156249994],[16.421289062500023,47.674462890624994],[17.06660156250001,47.707568359374996],[17.147363281250023,48.00595703125],[17.76191406250001,47.770166015624994],[18.72421875,47.787158203124996],[18.791894531250023,48.000292968749996],[19.625390625000023,48.223095703125],[19.95039062500001,48.146630859374994],[20.333789062500017,48.295556640624994],[20.490039062500017,48.526904296874996],[21.45136718750001,48.55224609375],[21.766992187500023,48.3380859375],[22.1318359375,48.405322265624996]]]},"properties":{"name":"Hungary","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[122.9489257812501,-10.90927734375002],[122.82617187500003,-10.899121093749983],[122.84570312500003,-10.761816406249991],[123.37109375000003,-10.474902343749989],[123.41816406250004,-10.651269531250037],[122.9489257812501,-10.90927734375002]]],[[[121.8830078125001,-10.590332031249957],[121.70468750000006,-10.5556640625],[121.99833984375002,-10.446972656249983],[121.8830078125001,-10.590332031249957]]],[[[123.41621093750004,-10.302636718749966],[123.3255859375,-10.264160156249943],[123.45878906250002,-10.13994140624996],[123.41621093750004,-10.302636718749966]]],[[[120.0125,-9.374707031250026],[120.78447265625002,-9.95703125],[120.83261718750006,-10.0375],[120.69804687500002,-10.206640624999949],[120.4391601562501,-10.294042968749991],[120.14482421875002,-10.200097656249952],[119.60107421874997,-9.773535156250006],[119.08544921875003,-9.706933593750023],[118.95878906250002,-9.519335937500003],[119.29589843749997,-9.3671875],[119.9420898437501,-9.301464843750026],[120.0125,-9.374707031250026]]],[[[125.06816406250002,-9.511914062499997],[124.42753906250002,-10.14863281250004],[123.7472656250001,-10.347167968749986],[123.60478515625002,-10.270117187500006],[123.71640625000012,-10.078613281249986],[123.5892578125,-9.966796875000028],[123.709375,-9.61484375],[124.0363281250001,-9.341601562500031],[124.28232421875012,-9.427929687500026],[124.44443359375012,-9.190332031250023],[124.92226562500005,-8.942480468749977],[124.93681640625007,-9.053417968750026],[125.14902343750012,-9.042578125000034],[125.10048828125,-9.189843750000023],[124.96015625000004,-9.213769531250009],[125.06816406250002,-9.511914062499997]]],[[[115.60996093750012,-8.769824218749974],[115.48046875000003,-8.715429687500006],[115.56142578125,-8.669921874999972],[115.60996093750012,-8.769824218749974]]],[[[122.97734375000002,-8.54521484374996],[122.88779296875006,-8.587304687500009],[123.01054687500002,-8.448339843750034],[123.153125,-8.475781250000026],[122.97734375000002,-8.54521484374996]]],[[[119.46406250000004,-8.741015624999974],[119.38554687500002,-8.736035156250026],[119.4464843750001,-8.429199218749957],[119.55722656250012,-8.518847656250003],[119.46406250000004,-8.741015624999974]]],[[[123.31748046875012,-8.354785156249974],[123.02500000000012,-8.395507812500014],[123.21708984375002,-8.235449218750006],[123.33603515625006,-8.269042968750014],[123.31748046875012,-8.354785156249974]]],[[[116.64082031250004,-8.613867187500006],[116.51425781250012,-8.820996093750011],[116.58652343750012,-8.886132812499966],[116.23935546875006,-8.912109375000014],[115.85732421875005,-8.787890625000017],[116.07646484375002,-8.744921874999974],[116.06113281250006,-8.437402343750023],[116.4015625000001,-8.204199218750034],[116.7189453125001,-8.336035156249977],[116.64082031250004,-8.613867187500006]]],[[[124.28662109375003,-8.32949218749998],[124.14667968750004,-8.531445312499997],[123.92773437500003,-8.448925781249969],[124.23955078125002,-8.20341796874996],[124.28662109375003,-8.32949218749998]]],[[[123.92480468750003,-8.2724609375],[123.55302734375007,-8.566796875],[123.23007812500006,-8.530664062500023],[123.47587890625007,-8.322265625000014],[123.39121093750012,-8.280468750000026],[123.77597656250006,-8.190429687499986],[123.92480468750003,-8.2724609375]]],[[[138.89511718750006,-8.388671874999957],[138.56337890625,-8.30908203125],[138.79619140625007,-8.173632812500017],[138.89511718750006,-8.388671874999957]]],[[[117.55634765625004,-8.367285156249949],[117.49052734375007,-8.183398437499974],[117.66503906249997,-8.148242187500003],[117.55634765625004,-8.367285156249949]]],[[[124.5755859375,-8.140820312499997],[125.05029296874997,-8.179589843749994],[125.13173828125,-8.326464843749989],[124.38066406250002,-8.41513671875002],[124.43066406249997,-8.18320312500002],[124.5755859375,-8.140820312499997]]],[[[127.8234375000001,-8.098828124999969],[128.11923828125012,-8.17070312499996],[128.02353515625006,-8.255371093749972],[127.82089843750012,-8.190234375000031],[127.8234375000001,-8.098828124999969]]],[[[122.7829101562501,-8.61171875],[121.65136718749997,-8.898730468749946],[121.41464843750006,-8.81484375],[121.32832031250004,-8.916894531250009],[121.03525390625012,-8.935449218749966],[120.55048828125004,-8.80185546875002],[119.909375,-8.857617187500011],[119.80791015625002,-8.697656250000023],[119.87480468750007,-8.419824218749994],[120.61025390625005,-8.24042968750004],[121.44453125000004,-8.57783203125004],[121.96650390625004,-8.455175781250006],[122.32324218749997,-8.628320312500023],[122.85048828125,-8.304394531250011],[122.91914062500004,-8.221875],[122.75859375000002,-8.185937499999952],[122.91699218749997,-8.105566406250006],[123.00595703125006,-8.329101562499986],[122.7829101562501,-8.61171875]]],[[[130.86220703125,-8.31875],[130.77519531250002,-8.34990234374996],[131.02011718750012,-8.091308593749943],[131.17636718750006,-8.130761718749994],[130.86220703125,-8.31875]]],[[[118.24238281250004,-8.317773437499994],[118.61191406250006,-8.28066406249998],[118.71386718749997,-8.41494140624998],[118.926171875,-8.297656249999974],[119.12968750000002,-8.668164062499969],[118.74589843750002,-8.735449218749991],[118.83261718750012,-8.833398437499966],[118.47861328125012,-8.856445312499957],[118.37890625000003,-8.674609375000031],[118.18994140624997,-8.840527343749997],[117.06132812500002,-9.099023437499994],[116.78847656250005,-9.006347656250028],[116.83505859375012,-8.532421875000026],[117.16484375000007,-8.367187500000014],[117.56708984375004,-8.426367187499991],[117.80605468750005,-8.711132812500011],[117.96953125000002,-8.728027343749986],[118.23486328124997,-8.591894531249963],[117.81484375000005,-8.342089843749974],[117.7552734375,-8.149511718749991],[118.11748046875007,-8.12226562500004],[118.24238281250004,-8.317773437499994]]],[[[115.44785156250012,-8.155175781249994],[115.70429687500004,-8.40712890624998],[115.14492187500005,-8.849023437500037],[115.05507812500005,-8.573046874999946],[114.61318359375,-8.37832031249998],[114.46757812500007,-8.166308593749946],[114.93847656249997,-8.18710937500002],[115.15400390625004,-8.065722656249974],[115.44785156250012,-8.155175781249994]]],[[[129.83886718749997,-7.954589843749986],[129.71347656250012,-8.04072265625004],[129.60898437500006,-7.803417968750011],[129.81298828124997,-7.819726562499952],[129.83886718749997,-7.954589843749986]]],[[[126.80097656250004,-7.667871093750009],[126.4720703125,-7.950390625000011],[126.04003906250003,-7.885839843750006],[125.79824218750005,-7.984570312499969],[125.97529296875004,-7.663378906249989],[126.21367187500002,-7.706738281250026],[126.60957031250004,-7.571777343749972],[126.80097656250004,-7.667871093750009]]],[[[127.41943359375003,-7.623046875000028],[127.37070312500012,-7.512792968749949],[127.47519531250012,-7.531054687500031],[127.41943359375003,-7.623046875000028]]],[[[138.53535156250004,-8.273632812499969],[138.2962890625,-8.405175781250037],[137.65039062499997,-8.386132812499966],[138.08183593750002,-7.566210937500003],[138.29550781250012,-7.4384765625],[138.76982421875002,-7.390429687499974],[138.98906250000002,-7.696093749999989],[138.53535156250004,-8.273632812499969]]],[[[131.3255859375,-7.999511718749986],[131.11376953125003,-7.997363281249989],[131.13779296875012,-7.684863281250017],[131.64345703125,-7.11279296875],[131.73613281250007,-7.197070312500017],[131.64384765625002,-7.266894531249946],[131.62441406250005,-7.626171874999955],[131.3255859375,-7.999511718749986]]],[[[131.98203125000006,-7.202050781249966],[131.75078125000002,-7.116796875],[131.92226562500005,-7.104492187499986],[131.98203125000006,-7.202050781249966]]],[[[128.6701171875001,-7.183300781249969],[128.52978515625003,-7.134570312499989],[128.62773437500007,-7.06875],[128.6701171875001,-7.183300781249969]]],[[[120.77441406250003,-7.118945312500003],[120.64082031250004,-7.115820312499991],[120.63339843750006,-7.018261718750011],[120.77441406250003,-7.118945312500003]]],[[[113.84453125000007,-7.105371093749994],[113.12695312499997,-7.224121093750028],[112.72587890625007,-7.072753906250014],[112.86806640625,-6.899902343749972],[113.06738281250003,-6.879980468749991],[113.97470703125012,-6.873046875],[114.0736328125,-6.960156249999983],[113.84453125000007,-7.105371093749994]]],[[[115.37705078125006,-6.97080078125002],[115.22031250000012,-6.952539062500037],[115.24052734375007,-6.861230468749994],[115.54609375000004,-6.938671874999955],[115.37705078125006,-6.97080078125002]]],[[[105.25283203125005,-6.640429687499946],[105.12138671875007,-6.614941406249997],[105.26054687500002,-6.523925781250014],[105.25283203125005,-6.640429687499946]]],[[[134.53681640625004,-6.442285156249994],[134.32275390624997,-6.84873046875002],[134.09082031249997,-6.833789062500003],[134.10703125000006,-6.471582031250009],[134.19462890625007,-6.459765625],[134.11464843750005,-6.190820312500009],[134.53681640625004,-6.442285156249994]]],[[[107.37392578125005,-6.007617187499989],[107.66679687500002,-6.215820312499957],[108.33017578125012,-6.286035156249966],[108.67783203125006,-6.790527343749972],[110.42626953124997,-6.947265625000028],[110.83476562500002,-6.424218749999952],[110.97226562500012,-6.435644531249977],[111.18154296875005,-6.686718749999969],[111.54033203125002,-6.648242187500031],[112.0873046875,-6.89335937499996],[112.53925781250004,-6.926464843749955],[112.64873046875007,-7.221289062499977],[112.7943359375,-7.304492187499974],[112.79453125000012,-7.55244140625004],[113.01357421875005,-7.657714843749986],[113.49765625000006,-7.723828124999955],[114.07070312500005,-7.633007812500011],[114.40927734375012,-7.79248046875],[114.38691406250004,-8.405175781250037],[114.58378906250002,-8.769628906250034],[113.25332031250005,-8.286718749999963],[112.67880859375006,-8.409179687499957],[111.50996093750004,-8.30507812499998],[110.60722656250002,-8.149414062499972],[109.28164062500005,-7.704882812500003],[108.74121093749997,-7.667089843750034],[108.45175781250006,-7.79697265625002],[107.91748046875003,-7.724121093750014],[107.28496093750007,-7.471679687500014],[106.45527343750004,-7.368652343749986],[106.51972656250004,-7.053710937499943],[106.19824218749997,-6.927832031249977],[105.25546875000012,-6.835253906250031],[105.37089843750002,-6.664355468750031],[105.48369140625007,-6.781542968750017],[105.65507812500002,-6.469531249999946],[105.78691406250002,-6.456933593749966],[105.86826171875006,-6.11640625000004],[106.075,-5.914160156249963],[106.82519531249997,-6.098242187499977],[107.0462890625,-5.90419921874998],[107.37392578125005,-6.007617187499989]]],[[[120.52832031249997,-6.2984375],[120.48730468749997,-6.464843749999972],[120.47734375000007,-5.775292968750009],[120.52832031249997,-6.2984375]]],[[[112.7194335937501,-5.81103515625],[112.58603515625006,-5.803613281249994],[112.69003906250006,-5.726171875000034],[112.7194335937501,-5.81103515625]]],[[[132.80712890625003,-5.850781250000011],[132.68144531250002,-5.91259765625],[132.63017578125002,-5.60703125],[132.80712890625003,-5.850781250000011]]],[[[134.74697265625,-5.707031249999957],[134.71416015625007,-6.29511718750004],[134.44111328125004,-6.334863281249966],[134.15488281250006,-6.06289062499998],[134.3019531250001,-6.009765624999986],[134.34306640625002,-5.833007812499943],[134.20537109375002,-5.707226562499997],[134.34130859375003,-5.712890624999986],[134.57080078124997,-5.42734375],[134.74697265625,-5.707031249999957]]],[[[132.92626953124997,-5.902050781249983],[132.84501953125002,-5.987988281249997],[133.13847656250002,-5.317871093749986],[133.11962890625003,-5.575976562499989],[132.92626953124997,-5.902050781249983]]],[[[102.36718750000003,-5.478710937499983],[102.1107421875,-5.32255859374996],[102.3717773437501,-5.366406250000011],[102.36718750000003,-5.478710937499983]]],[[[123.62675781250007,-5.271582031249963],[123.58261718750006,-5.36738281250004],[123.54277343750002,-5.271093749999963],[123.62675781250007,-5.271582031249963]]],[[[122.04296874999997,-5.437988281250028],[121.80849609375,-5.256152343750017],[121.91367187500012,-5.072265624999957],[122.04101562500003,-5.158789062499991],[122.04296874999997,-5.437988281250028]]],[[[122.64511718750012,-5.26943359374998],[122.5638671875,-5.3875],[122.28310546875,-5.319531249999969],[122.39628906250002,-5.069824218749986],[122.36894531250007,-4.767187499999977],[122.70195312500002,-4.61865234375],[122.75986328125012,-4.933886718750003],[122.61406250000007,-5.138671874999986],[122.64511718750012,-5.26943359374998]]],[[[123.17978515625006,-4.551171875000023],[123.195703125,-4.82265625],[123.05517578124997,-4.748242187500026],[122.97167968750003,-5.138476562500031],[123.18730468750007,-5.333007812499957],[122.96875,-5.405761718749943],[122.81210937500012,-5.671289062499952],[122.64501953124997,-5.663378906250031],[122.58642578124997,-5.488867187500006],[122.76650390625005,-5.210156249999983],[122.85332031250007,-4.618359375000026],[123.074609375,-4.38691406250004],[123.17978515625006,-4.551171875000023]]],[[[133.57080078124997,-4.245898437500003],[133.621875,-4.299316406249957],[133.32089843750006,-4.111035156249969],[133.57080078124997,-4.245898437500003]]],[[[123.2423828125001,-4.112988281250011],[123.07617187499997,-4.227148437499991],[122.96904296875002,-4.029980468749969],[123.21191406250003,-3.997558593750028],[123.2423828125001,-4.112988281250011]]],[[[128.56259765625012,-3.58544921875],[128.39160156250003,-3.637890625000026],[128.45156250000005,-3.514746093749991],[128.56259765625012,-3.58544921875]]],[[[128.2755859375001,-3.67460937499996],[127.97802734374997,-3.770996093749972],[127.925,-3.69931640625002],[128.32910156249997,-3.51591796874996],[128.2755859375001,-3.67460937499996]]],[[[116.42412109375007,-3.464453124999963],[116.38779296875012,-3.636718749999972],[116.3265625,-3.539062499999972],[116.42412109375007,-3.464453124999963]]],[[[116.30332031250006,-3.868164062499957],[116.05878906250004,-4.006933593749991],[116.06357421875006,-3.457910156249952],[116.26972656250004,-3.251074218750006],[116.30332031250006,-3.868164062499957]]],[[[126.86113281250007,-3.087890624999986],[127.22734375000007,-3.391015625],[127.22958984375006,-3.633007812500011],[126.68632812500007,-3.823632812500037],[126.21455078125004,-3.605175781250026],[126.05654296875,-3.420996093749991],[126.08828125,-3.105468750000014],[126.86113281250007,-3.087890624999986]]],[[[106.88642578125004,-3.005273437500023],[106.7428710937501,-2.932812500000011],[106.91064453124997,-2.93398437499998],[106.88642578125004,-3.005273437500023]]],[[[129.75468750000007,-2.865820312500034],[130.3791015625001,-2.989355468749977],[130.56992187500006,-3.130859375000028],[130.85996093750006,-3.570312500000028],[130.805078125,-3.85771484374996],[129.844140625,-3.327148437499957],[129.51171875000003,-3.32851562499998],[129.46767578125005,-3.453222656249977],[128.8625,-3.234960937500006],[128.51660156249997,-3.449121093750037],[128.13203125000004,-3.157421875000026],[127.90234374999997,-3.496289062499955],[127.87792968749997,-3.222070312499966],[128.19853515625002,-2.865917968749969],[128.99111328125,-2.82851562499998],[129.17441406250006,-2.933496093749966],[129.48417968750002,-2.785742187499977],[129.75468750000007,-2.865820312500034]]],[[[100.42509765625007,-3.182910156249974],[100.46513671875007,-3.32851562499998],[100.20429687500004,-2.98681640625],[100.19853515625002,-2.785546875000023],[100.45458984375003,-3.001953124999972],[100.42509765625007,-3.182910156249974]]],[[[108.2072265625001,-2.997656249999977],[108.05527343750006,-3.22685546874996],[107.85820312500002,-3.086328125000023],[107.61445312500004,-3.209375],[107.56347656250003,-2.920117187499997],[107.66630859375002,-2.566308593750037],[107.83779296875005,-2.530273437499972],[108.21513671875002,-2.696972656250011],[108.29062500000012,-2.829980468750023],[108.2072265625001,-2.997656249999977]]],[[[100.20410156249997,-2.741015625000017],[100.01494140625007,-2.819726562499966],[99.98789062500006,-2.525390624999957],[100.20410156249997,-2.741015625000017]]],[[[99.84306640625007,-2.343066406250031],[99.60703125000012,-2.257519531250011],[99.57216796875005,-2.025781249999966],[99.84306640625007,-2.343066406250031]]],[[[126.055078125,-2.451269531249963],[125.86289062500006,-2.077148437499943],[125.92275390625,-1.974804687499969],[126.055078125,-2.451269531249963]]],[[[126.02421875000007,-1.789746093750011],[126.33173828125004,-1.822851562500006],[125.47919921875004,-1.940039062499991],[125.38720703124997,-1.843066406249946],[126.02421875000007,-1.789746093750011]]],[[[130.35332031250007,-1.690527343749963],[130.41884765625,-1.971289062499963],[130.24804687500003,-2.047753906249994],[129.7376953125,-1.866894531250011],[130.35332031250007,-1.690527343749963]]],[[[124.96953125000007,-1.70546875],[125.18789062500005,-1.712890624999986],[125.31406250000006,-1.877148437499969],[124.41777343750002,-2.005175781250031],[124.32968750000012,-1.858886718749972],[124.41757812500006,-1.659277343749991],[124.96953125000007,-1.70546875]]],[[[135.47421875000006,-1.591796875000014],[136.89257812500003,-1.799707031249994],[136.22812500000012,-1.893652343749949],[135.47421875000006,-1.591796875000014]]],[[[108.953125,-1.61962890625],[108.83789062499997,-1.661621093750028],[108.80371093750003,-1.567773437499994],[108.953125,-1.61962890625]]],[[[106.04570312500002,-1.669433593750014],[106.36591796875004,-2.464843749999972],[106.81845703125006,-2.573339843749963],[106.6120117187501,-2.895507812499957],[106.66718750000004,-3.071777343749986],[105.99873046875004,-2.824902343749955],[105.7858398437501,-2.18134765625004],[105.13339843750012,-2.042578125],[105.45957031250006,-1.574707031249986],[105.58544921875003,-1.526757812499994],[105.7008789062501,-1.731054687499963],[105.7204101562501,-1.533886718750026],[105.91005859375,-1.504980468749991],[106.04570312500002,-1.669433593750014]]],[[[123.59755859375,-1.704296875000011],[123.48251953125006,-1.681445312499974],[123.52851562500004,-1.502832031250009],[123.59755859375,-1.704296875000011]]],[[[128.1530273437501,-1.66054687499998],[127.56162109375012,-1.728515624999972],[127.39501953125003,-1.589843749999972],[127.64667968750004,-1.332421875],[128.1530273437501,-1.66054687499998]]],[[[123.2123046875,-1.171289062499966],[123.23779296874997,-1.389355468749983],[123.43476562500004,-1.236816406249986],[123.54726562500005,-1.337402343749957],[123.51191406250004,-1.447363281249977],[123.27490234374997,-1.437207031249955],[123.17294921875006,-1.616015624999974],[123.15039062500003,-1.304492187500003],[122.89042968750007,-1.58720703124996],[122.81083984375002,-1.432128906249986],[122.90800781250002,-1.182226562499963],[123.2123046875,-1.171289062499966]]],[[[109.71025390625007,-1.1806640625],[109.46367187500002,-1.277539062500026],[109.4759765625,-0.9853515625],[109.74335937500004,-1.039355468749989],[109.71025390625007,-1.1806640625]]],[[[134.96533203124997,-1.116015624999974],[134.86171875,-1.114160156249952],[134.82792968750002,-0.978808593750003],[134.99628906250004,-1.03408203124998],[134.96533203124997,-1.116015624999974]]],[[[99.16386718750007,-1.777929687500006],[98.82773437500006,-1.609960937499977],[98.60175781250004,-1.197851562499949],[98.67607421875007,-0.970507812500003],[98.93261718750003,-0.954003906250009],[99.2672851562501,-1.62773437499996],[99.16386718750007,-1.777929687500006]]],[[[131.00185546875005,-1.315527343750034],[130.78232421875006,-1.255468749999963],[130.67294921875006,-0.959765625000031],[131.03300781250007,-0.917578124999963],[131.00185546875005,-1.315527343750034]]],[[[135.38300781250004,-0.6513671875],[135.89355468749997,-0.725781249999969],[136.37529296875007,-1.094042968750031],[136.1647460937501,-1.214746093750023],[135.91503906250003,-1.178417968749997],[135.74707031249997,-0.823046874999974],[135.64570312500004,-0.881933593749991],[135.38300781250004,-0.6513671875]]],[[[127.30039062500012,-0.780957031250026],[127.1564453125001,-0.760937500000026],[127.20908203125006,-0.619335937499955],[127.30039062500012,-0.780957031250026]]],[[[130.6266601562501,-0.528710937499966],[130.46542968750006,-0.486523437499983],[130.6159179687501,-0.417285156250003],[130.6266601562501,-0.528710937499966]]],[[[121.86435546875012,-0.406835937500006],[121.88125,-0.502636718749983],[121.65527343749997,-0.526171874999989],[121.86435546875012,-0.406835937500006]]],[[[140.97343750000007,-2.609765625],[140.97353515625,-2.803417968750026],[140.975,-6.346093750000023],[140.86230468749997,-6.740039062499989],[140.97519531250006,-6.90537109375002],[140.97617187500012,-9.11875],[140.00292968749997,-8.19550781250004],[140.11699218750002,-7.923730468750009],[139.93476562500004,-8.101171875],[139.38564453125,-8.189062499999963],[139.24882812500002,-7.982421874999972],[138.890625,-8.237792968749943],[139.08798828125012,-7.587207031250017],[138.74794921875,-7.25146484375],[139.17685546875006,-7.1904296875],[138.84570312500003,-7.13632812499999],[138.60136718750007,-6.936523437499972],[138.86455078125007,-6.858398437499943],[138.43867187500004,-6.343359375],[138.2962890625,-5.94902343749996],[138.37460937500006,-5.84365234374998],[138.19960937500005,-5.80703125],[138.33964843750007,-5.675683593749966],[138.08710937500004,-5.70917968750004],[138.06083984375002,-5.46523437499998],[137.27978515624997,-4.945410156249949],[136.61884765625004,-4.81875],[135.97968750000004,-4.530859374999963],[135.19560546875007,-4.450683593749972],[134.67968749999997,-4.079101562499943],[134.70654296875003,-3.954785156250026],[134.88652343750007,-3.938476562499986],[134.26621093750012,-3.945800781249972],[134.14707031250006,-3.79677734374998],[133.97382812500004,-3.817968750000034],[133.67832031250006,-3.4794921875],[133.8415039062501,-3.054785156249991],[133.70039062500004,-3.0875],[133.653125,-3.364355468749991],[133.51816406250012,-3.411914062500003],[133.40087890625003,-3.899023437500034],[133.24873046875004,-4.062304687499989],[132.91445312500005,-4.05693359374996],[132.75390625000003,-3.703613281250014],[132.86972656250006,-3.550976562499997],[132.75136718750005,-3.294628906249997],[131.97119140624997,-2.788574218750014],[132.2306640625001,-2.680371093749997],[132.725,-2.789062500000028],[133.19101562500006,-2.43779296874996],[133.70009765625005,-2.624609375],[133.75332031250005,-2.450683593750014],[133.90488281250012,-2.390917968750003],[133.79101562500003,-2.293652343749997],[133.92158203125004,-2.102050781249957],[132.96279296875005,-2.272558593749963],[132.30761718749997,-2.24228515625002],[132.02343749999997,-1.99033203125002],[131.93037109375004,-1.559667968750034],[131.29375,-1.393457031250009],[130.99589843750007,-1.42470703124998],[131.1908203125,-1.165820312500003],[131.2572265625,-0.855468750000014],[131.80429687500006,-0.703808593750026],[132.39375,-0.355468750000028],[132.85644531250003,-0.417382812500023],[133.47265624999997,-0.726171874999963],[133.97451171875,-0.744335937500026],[134.11152343750004,-0.84677734375002],[134.07197265625004,-1.001855468749994],[134.25957031250007,-1.362988281250026],[134.105859375,-1.720996093749946],[134.19482421875003,-2.309082031249943],[134.45996093749997,-2.83232421874996],[134.48330078125,-2.583007812499972],[134.62744140624997,-2.536718749999963],[134.70214843749997,-2.933593749999986],[134.84335937500006,-2.909179687499986],[134.88681640625006,-3.209863281249966],[135.25156250000012,-3.368554687499966],[135.48662109375002,-3.34511718749998],[135.85917968750002,-2.99531250000004],[136.38994140625002,-2.273339843750037],[137.07207031250002,-2.105078124999949],[137.1710937500001,-2.025488281249991],[137.1234375,-1.840917968749963],[137.80625000000012,-1.483203125],[139.78955078125003,-2.34824218750002],[140.62255859374997,-2.44580078125],[140.74746093750005,-2.607128906249997],[140.97343750000007,-2.609765625]]],[[[104.47421875000012,-0.334667968749955],[104.59013671875002,-0.466601562500017],[104.36318359375,-0.658593749999966],[104.25712890625002,-0.463281249999966],[104.47421875000012,-0.334667968749955]]],[[[127.56699218750006,-0.318945312499949],[127.68242187500002,-0.46835937500002],[127.60498046874997,-0.610156249999946],[127.88017578125002,-0.808691406249991],[127.7611328125,-0.883691406249994],[127.62382812500002,-0.76601562499999],[127.46269531250002,-0.80595703124996],[127.46865234375,-0.64296875],[127.3,-0.500292968749946],[127.32509765625,-0.335839843750023],[127.45517578125012,-0.406347656249991],[127.56699218750006,-0.318945312499949]]],[[[127.24990234375005,-0.4953125],[127.11914062500003,-0.520507812499986],[127.12646484375003,-0.278613281250003],[127.29003906250003,-0.284375],[127.24990234375005,-0.4953125]]],[[[103.73652343750004,-0.347949218750003],[103.461328125,-0.357617187500011],[103.54892578125006,-0.227539062499986],[103.73652343750004,-0.347949218750003]]],[[[130.81328125000007,-0.004101562500026],[131.27685546875003,-0.149804687499952],[131.33974609375005,-0.290332031249989],[131.00537109374997,-0.360742187500037],[130.62216796875006,-0.0859375],[130.89921875000002,-0.344433593749997],[130.7501953125001,-0.44384765625],[130.6886718750001,-0.296582031250011],[130.55078124999997,-0.366406250000026],[130.23662109375002,-0.209667968749983],[130.3625,-0.072851562500006],[130.81328125000007,-0.004101562500026]]],[[[98.45927734375007,-0.530468749999969],[98.30966796875012,-0.531835937499977],[98.4271484375,-0.226464843750037],[98.3229492187501,-0.000781249999974],[98.54414062500004,-0.257617187499989],[98.45927734375007,-0.530468749999969]]],[[[104.77861328125007,-0.175976562499955],[105.00537109374997,-0.282812499999963],[104.44707031250002,-0.189160156249983],[104.54267578125004,0.01772460937498],[104.77861328125007,-0.175976562499955]]],[[[103.28447265625002,0.541943359375011],[103.13955078125,0.549072265625043],[103.18740234375,0.699755859375017],[103.28447265625002,0.541943359375011]]],[[[103.0275390625001,0.746630859374974],[102.4904296875001,0.856640625],[102.50664062500002,1.088769531250037],[103.00244140624997,0.859277343750009],[103.0275390625001,0.746630859374974]]],[[[103.42392578125012,1.048339843749972],[103.31542968750003,1.071289062500028],[103.37998046875006,1.133642578125034],[103.42392578125012,1.048339843749972]]],[[[103.16640625000005,0.870166015625003],[102.7018554687501,1.0537109375],[102.72558593749997,1.158837890625023],[102.99941406250005,1.067773437500023],[103.16640625000005,0.870166015625003]]],[[[104.02480468750005,1.180566406250009],[104.13984375000004,1.165576171874974],[104.06611328125004,0.989550781249989],[103.93222656250012,1.071386718749963],[104.02480468750005,1.180566406250009]]],[[[104.58535156250005,1.21611328124996],[104.66289062500002,1.04951171875004],[104.57519531250003,0.831933593750037],[104.43925781250002,1.050439453125051],[104.25195312499997,1.014892578125],[104.36181640624997,1.18149414062502],[104.58535156250005,1.21611328124996]]],[[[102.4271484375,0.990136718750023],[102.27958984375002,1.075683593750043],[102.25634765625003,1.397070312499963],[102.44287109374997,1.234228515625006],[102.4271484375,0.990136718750023]]],[[[97.48154296875006,1.465087890624972],[97.93193359375002,0.973925781250003],[97.82041015625012,0.564453124999986],[97.683984375,0.596093750000037],[97.60390625000005,0.83388671874998],[97.40537109375012,0.946972656250026],[97.07919921875006,1.425488281249983],[97.35595703124997,1.539746093749997],[97.48154296875006,1.465087890624972]]],[[[102.49189453125004,1.459179687500011],[102.49941406250005,1.330908203124991],[102.02402343750012,1.607958984375031],[102.49189453125004,1.459179687500011]]],[[[124.88886718750004,0.995312500000011],[124.42753906250002,0.470605468750051],[123.75380859375,0.305517578124991],[123.26542968750007,0.326611328125026],[122.996875,0.493505859375006],[121.01298828125002,0.441699218750017],[120.57900390625,0.5283203125],[120.19228515625,0.268505859374997],[120.01328125000012,-0.196191406249994],[120.062890625,-0.555566406250023],[120.240625,-0.868261718749949],[120.51757812499997,-1.039453125],[120.66738281250005,-1.370117187499972],[121.14853515625012,-1.33945312500002],[121.5755859375,-0.828515625000023],[121.96962890625005,-0.933300781249969],[122.27998046875004,-0.757031250000026],[122.88876953125006,-0.755175781250003],[122.8294921875,-0.658886718750026],[123.17148437500012,-0.57070312499999],[123.37968750000002,-0.648535156249949],[123.43417968750006,-0.778222656249994],[123.37792968749997,-1.004101562500011],[122.90283203125003,-0.900976562499963],[122.25068359375004,-1.555273437500034],[121.8585937500001,-1.69326171874998],[121.65097656250006,-1.895410156249952],[121.35546874999997,-1.878222656250003],[122.29169921875004,-2.907617187500023],[122.39902343750006,-3.200878906249997],[122.25292968749997,-3.620410156250017],[122.68964843750004,-4.084472656249972],[122.84794921875002,-4.064550781250006],[122.8722656250001,-4.391992187500009],[122.71972656250003,-4.340722656249952],[122.11425781250003,-4.540234375000011],[122.03808593749997,-4.832421875000023],[121.58867187500007,-4.759570312500017],[121.48652343750004,-4.581054687499972],[121.61806640625,-4.092675781249952],[120.89179687500004,-3.520605468750034],[121.05429687500012,-3.167089843749949],[121.0521484375,-2.751660156249955],[120.87939453124997,-2.64560546875002],[120.65361328125002,-2.667578124999977],[120.26103515625007,-2.949316406249991],[120.43662109375012,-3.70732421874996],[120.42011718750004,-4.617382812500011],[120.27929687499997,-5.146093749999977],[120.4303710937501,-5.591015625000026],[119.9515625,-5.577636718749972],[119.71728515625003,-5.693359375000014],[119.55742187500007,-5.611035156250026],[119.36035156249997,-5.314160156250026],[119.59404296875007,-4.523144531249997],[119.62363281250006,-4.034375],[119.46748046875004,-3.512988281249989],[118.99462890624997,-3.537597656250028],[118.86767578124997,-3.39804687500002],[118.78330078125006,-2.720800781249977],[119.09218750000005,-2.482910156250014],[119.32187500000012,-1.929687500000014],[119.308984375,-1.408203125],[119.508203125,-0.906738281249972],[119.71132812500005,-0.680761718750034],[119.84433593750006,-0.861914062499991],[119.721875,-0.088476562499991],[119.865625,0.040087890625003],[119.80927734375004,0.238671875000051],[119.9132812500001,0.445068359375],[120.26953125000003,0.970800781249991],[120.60253906249997,0.854394531249994],[120.86796875000007,1.25283203124998],[121.0817382812501,1.327636718750028],[121.40410156250002,1.243603515624969],[121.59179687499997,1.067968749999977],[122.43662109375006,1.018066406250028],[122.83828125,0.845703125],[123.06650390625006,0.941796875000037],[123.93076171875006,0.850439453124977],[124.53369140624997,1.230468750000043],[124.94707031250002,1.672167968749974],[125.11093750000012,1.685693359374966],[125.2337890625,1.502294921875006],[124.88886718750004,0.995312500000011]]],[[[101.70810546875006,2.078417968750045],[101.71943359375004,1.789160156250006],[101.50078125000002,1.733203124999974],[101.40966796875003,2.021679687500026],[101.70810546875006,2.078417968750045]]],[[[127.73271484375007,0.848144531250043],[127.8810546875001,0.832128906249977],[127.96728515624997,1.042578125000048],[128.16074218750006,1.1578125],[128.22246093750002,1.400634765624986],[128.68837890625,1.572558593750017],[128.70263671874997,1.106396484374997],[128.29882812500003,0.87680664062502],[128.26064453125,0.733789062500023],[128.61123046875,0.549951171875051],[128.89960937500004,0.216259765625011],[127.9831054687501,0.471875],[127.88740234375004,0.298339843750043],[127.97783203125002,-0.24833984374996],[128.4254882812501,-0.892675781249949],[128.04638671875003,-0.706054687499943],[127.69160156250004,-0.241894531249983],[127.70869140625004,0.288085937499986],[127.53710937500003,0.610888671875031],[127.60800781250006,0.848242187499977],[127.42851562500002,1.139990234374991],[127.63173828125,1.843701171875011],[128.03642578125002,2.199023437500017],[127.88681640625012,1.83295898437504],[128.0109375000001,1.701220703125031],[128.01171874999997,1.331738281249983],[127.65283203124997,1.013867187499969],[127.73271484375007,0.848144531250043]]],[[[97.3341796875001,2.075634765625011],[97.10830078125,2.216894531250006],[97.29140625,2.200830078125023],[97.3341796875001,2.075634765625011]]],[[[128.45390625000002,2.051757812500028],[128.29589843749997,2.034716796875017],[128.2179687500001,2.297460937499991],[128.60214843750012,2.59760742187504],[128.68847656250003,2.473681640625017],[128.62324218750004,2.224414062500031],[128.45390625000002,2.051757812500028]]],[[[96.46367187500002,2.360009765625037],[95.80859374999997,2.655615234375034],[95.7171875,2.825976562500017],[95.89580078125007,2.8890625],[96.41728515625007,2.515185546875031],[96.46367187500002,2.360009765625037]]],[[[108.8875,2.905419921875037],[108.7865234375,2.885644531250009],[108.88574218750003,2.998974609374997],[108.8875,2.905419921875037]]],[[[105.76035156250006,2.863037109375014],[105.69218750000002,3.0625],[105.83671875000007,2.97651367187504],[105.76035156250006,2.863037109375014]]],[[[106.28525390625006,3.15712890624998],[106.28369140624997,3.088232421874977],[106.20097656250002,3.204882812500031],[106.28525390625006,3.15712890624998]]],[[[117.65839843750004,3.280517578124986],[117.54785156250003,3.43198242187502],[117.68085937500004,3.407519531250017],[117.65839843750004,3.280517578124986]]],[[[125.65810546875,3.436035156250043],[125.51152343750007,3.461132812500011],[125.46884765625006,3.73325195312502],[125.65810546875,3.436035156250043]]],[[[117.88476562499997,4.186132812500006],[117.92285156250003,4.054296874999977],[117.73681640624997,4.004003906250034],[117.64902343750012,4.168994140624974],[117.88476562499997,4.186132812500006]]],[[[108.31601562500006,3.689648437500026],[108.10039062500002,3.70454101562504],[108.24326171875006,3.810351562500017],[108.00234375,3.982861328124983],[108.24833984375002,4.21713867187502],[108.39287109375007,3.986181640625034],[108.31601562500006,3.689648437500026]]],[[[117.5744140625001,4.17060546875004],[117.46533203124997,4.076074218749966],[117.77724609375005,3.689257812500031],[117.05595703125007,3.622656249999963],[117.34628906250006,3.426611328124991],[117.35244140625,3.19375],[117.61064453125002,3.064355468749994],[117.56914062500002,2.92929687500002],[117.69765625,2.887304687499991],[117.6388671875001,2.825292968749963],[118.0666015625001,2.317822265624969],[117.7892578125001,2.026855468750014],[118.98496093750006,0.982128906249983],[118.53476562500006,0.813525390625017],[118.19609375000002,0.874365234374977],[117.91162109374997,1.098681640625017],[117.96425781250005,0.889550781250051],[117.74511718749997,0.72963867187498],[117.52216796875004,0.235888671875017],[117.46289062500003,-0.323730468749957],[117.5625,-0.770898437500009],[116.91396484375,-1.223632812499972],[116.73984375000006,-1.044238281250017],[116.75341796874997,-1.327343749999955],[116.27548828125006,-1.784863281249997],[116.42431640625003,-1.784863281249997],[116.45195312500002,-1.923144531250017],[116.31396484374997,-2.139843750000011],[116.56542968749997,-2.299707031249994],[116.52929687499997,-2.51054687499996],[116.31679687500005,-2.55185546875002],[116.33066406250012,-2.902148437499974],[116.16630859375002,-2.934570312500014],[116.2572265625,-3.126367187500009],[115.95615234375012,-3.595019531250003],[114.6935546875001,-4.169726562500017],[114.5255859375001,-3.376660156250011],[114.44599609375004,-3.481835937500037],[114.34433593750012,-3.444433593749963],[114.34433593750012,-3.23515625],[114.23632812500003,-3.36113281249996],[114.0822265625001,-3.27890625],[113.70507812499997,-3.45527343750004],[113.6100585937501,-3.195703125],[113.34316406250005,-3.246484374999966],[113.03398437500002,-2.933496093749966],[112.97148437500002,-3.187109375000034],[112.75800781250004,-3.322167968750009],[112.60029296875004,-3.400488281249977],[112.28496093750002,-3.32099609375004],[111.85810546875004,-3.551855468750006],[111.82304687500007,-3.057226562499949],[111.69472656250005,-2.88945312499996],[110.93007812500005,-3.071093750000017],[110.82968750000012,-2.9951171875],[110.89931640625,-2.908593749999952],[110.703125,-3.020898437500009],[110.57402343750007,-2.89140625],[110.25605468750004,-2.966113281249946],[110.09658203125,-2.001367187499966],[109.95986328125,-1.862792968749972],[109.98330078125,-1.274804687499994],[109.78740234375007,-1.011328124999963],[109.25878906250003,-0.807421874999989],[109.37275390625004,-0.638183593749972],[109.12109375000003,-0.39091796874996],[109.2575195312501,0.031152343750051],[108.94453125000004,0.355664062499997],[108.91679687500007,0.912646484375045],[108.95859375000006,1.134619140624963],[109.1315429687501,1.253857421875011],[109.01025390624997,1.239648437500051],[109.07587890625004,1.495898437500031],[109.37851562500006,1.922705078125034],[109.62890625000003,2.027539062499983],[109.53896484375,1.89619140625004],[109.65400390625004,1.614892578125023],[110.50576171875005,0.861962890625023],[111.10136718750002,1.050537109374986],[111.80898437500005,1.011669921874969],[112.078515625,1.143359374999974],[112.1857421875001,1.4390625],[112.47617187500006,1.559082031250028],[112.94296875000006,1.566992187500034],[113.00654296875004,1.433886718750003],[113.6222656250001,1.2359375],[113.90234375000003,1.434277343749997],[114.5125,1.452001953124963],[114.83056640625003,1.980029296874989],[114.78642578125002,2.250488281250014],[115.1791015625,2.523193359374972],[115.08076171875004,2.63422851562504],[115.117578125,2.89487304687502],[115.24697265625005,3.025927734374989],[115.45439453125002,3.034326171875009],[115.67880859375006,4.193017578124994],[115.86074218750005,4.348046875000037],[116.51474609375006,4.370800781249969],[117.10058593750003,4.337060546875023],[117.5744140625001,4.17060546875004]]],[[[126.81660156250004,4.033496093750003],[126.70449218750005,4.070996093749997],[126.81357421875006,4.258496093750011],[126.72207031250005,4.344189453124969],[126.75732421874997,4.547900390624989],[126.9210937500001,4.291015624999972],[126.81660156250004,4.033496093750003]]],[[[96.49257812500005,5.229345703124991],[97.54716796875002,5.205859375],[98.2484375,4.41455078125],[98.3073242187501,4.09287109375002],[99.73232421875005,3.183056640625026],[100.523828125,2.18916015625004],[100.88789062500004,1.948242187499986],[100.82822265625012,2.242578125],[101.04619140625002,2.257470703125023],[101.47666015625006,1.693066406250054],[102.019921875,1.442138671875],[102.38994140625007,0.84199218750004],[103.03183593750006,0.57890625],[103.0075195312501,0.415332031249974],[102.55,0.216455078124966],[103.33896484375012,0.513720703125045],[103.67265625000007,0.288916015624977],[103.78671875000012,0.046972656249991],[103.42851562500007,-0.19179687499998],[103.40517578125005,-0.36220703124998],[103.5091796875,-0.465527343749969],[103.43857421875006,-0.575585937500009],[103.72109375,-0.886718749999986],[104.36054687500004,-1.038378906249974],[104.51591796875002,-1.81943359375002],[104.84521484375003,-2.092968749999969],[104.65078125000005,-2.595214843749972],[104.97080078125012,-2.370898437500017],[105.39697265624997,-2.380175781249946],[106.0443359375,-3.10625],[105.84375,-3.61367187499998],[105.93046875000007,-3.833007812499986],[105.83144531250005,-4.16289062499996],[105.88720703124997,-5.009570312499974],[105.74833984375007,-5.818261718749966],[105.34941406250007,-5.549511718750011],[105.08134765625002,-5.74550781249998],[104.63955078125005,-5.520410156250037],[104.68398437500005,-5.89267578125002],[104.60156249999997,-5.90458984374996],[103.8314453125,-5.079589843750028],[102.53769531250006,-4.152148437499989],[102.12753906250006,-3.599218749999963],[101.57861328124997,-3.166992187500014],[100.88955078125,-2.248535156249957],[100.85527343750002,-1.934179687499949],[100.30820312500006,-0.82666015625],[99.66982421875005,0.045068359375037],[99.15917968749997,0.351757812499997],[98.59531250000006,1.864599609375006],[97.70078125000006,2.358544921875009],[97.59082031249997,2.846582031250037],[97.3913085937501,2.975292968749969],[96.9689453125001,3.575146484374969],[96.44472656250005,3.81630859374998],[95.57861328125003,4.661962890625048],[95.20664062500006,5.284033203125034],[95.22783203125002,5.564794921875034],[95.62890625000003,5.609082031249997],[96.13330078125003,5.294287109374991],[96.49257812500005,5.229345703124991]]]]},"properties":{"name":"Indonesia","childNum":107}},{"geometry":{"type":"Polygon","coordinates":[[[-4.412060546874983,54.185351562499996],[-4.785351562499983,54.073046875],[-4.424707031249994,54.407177734375],[-4.412060546874983,54.185351562499996]]]},"properties":{"name":"Isle of Man","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[75.32221348233018,32.28516356678968],[75.62496871116024,32.28516356678968],[75.73585997688717,32.78417426256088],[76.32728006076415,32.87658365066666],[76.62299010270264,33.32014871357439],[77.06655516561037,33.301666835953235],[77.71342088235082,32.6917648744551],[78.10154031239509,32.87658365066666],[78.49194250885338,32.53122786149202],[78.38964843749997,32.51987304687498],[78.41748046874997,32.466699218749994],[78.4552734375001,32.30034179687502],[78.49589843750002,32.21577148437504],[78.72558593750009,31.983789062500023],[78.71972656250009,31.887646484374983],[78.69345703125006,31.740380859374994],[78.7550781250001,31.55029296875],[78.74355468750005,31.323779296875017],[79.10712890625004,31.402636718750102],[79.38847656250013,31.064208984375085],[79.66425781250004,30.96523437499999],[79.92451171875004,30.888769531250034],[80.20712890625006,30.683740234375023],[80.19121093750002,30.56840820312496],[80.87353515625003,30.290576171875045],[80.98544921875006,30.23710937499999],[81.01025390625014,30.164501953125097],[80.96611328125002,30.180029296875063],[80.90761718750005,30.171923828125017],[80.84814453125009,30.139746093750034],[80.81992187500012,30.119335937499955],[80.68408203125014,29.994335937500068],[80.54902343750015,29.899804687499994],[80.40185546875003,29.730273437500102],[80.31689453125014,29.572070312500017],[80.25488281250009,29.423339843750114],[80.25595703125006,29.318017578125136],[80.23300781250006,29.194628906250045],[80.16953125000012,29.124316406250102],[80.13046875000006,29.100390625000045],[80.08457031249995,28.994189453125074],[80.05166015625,28.870312500000068],[80.07070312500005,28.830175781250063],[80.22656250000003,28.723339843750125],[80.32480468750012,28.66640625000008],[80.41855468749995,28.61201171875001],[80.47910156250012,28.604882812499994],[80.49580078125015,28.635791015625074],[80.51787109375002,28.665185546875023],[80.58701171875006,28.64960937500004],[81.16894531250014,28.335009765625074],[81.85263671875018,27.867089843750136],[81.89687500000011,27.87446289062504],[81.94521484375005,27.89926757812495],[81.98769531250016,27.91376953125004],[82.03701171875,27.90058593750004],[82.11191406250006,27.86494140625004],[82.28769531250018,27.756542968749983],[82.45136718750004,27.671826171874955],[82.62988281249997,27.687060546875045],[82.67734375000006,27.67343749999995],[82.71083984375005,27.596679687500114],[82.73339843750003,27.518994140625097],[83.28974609375004,27.370996093750136],[83.36943359375002,27.410253906249977],[83.38398437500004,27.444824218750085],[83.44716796875011,27.46533203125],[83.55166015625011,27.456347656249932],[83.74697265625011,27.395947265625068],[83.8288085937501,27.377832031250108],[84.09101562499993,27.491357421875136],[84.22978515625007,27.427832031250006],[84.48085937500005,27.348193359375102],[84.61015625000002,27.298681640624977],[84.64072265625012,27.249853515624977],[84.65478515625014,27.20366210937499],[84.65380859375009,27.09169921875008],[84.68535156250013,27.041015625000057],[85.19179687500011,26.766552734375097],[85.29296875000009,26.741015625000045],[85.56845703125012,26.839843750000114],[85.64843749999997,26.829003906250023],[85.69990234375004,26.781640624999966],[85.73730468750003,26.639746093750034],[85.79453125000006,26.60415039062505],[86.00732421875009,26.64936523437504],[86.70136718750015,26.435058593750057],[87.01640625000002,26.555419921875085],[87.2874023437499,26.360302734375125],[87.41357421875014,26.42294921875009],[87.84921875000006,26.43691406250008],[87.99511718750014,26.38237304687499],[88.02695312500023,26.395019531250085],[88.05488281250004,26.43002929687492],[88.11152343750004,26.58642578125],[88.1615234375,26.724804687500125],[88.15722656250009,26.807324218750068],[88.1110351562501,26.928466796875057],[87.99316406250009,27.086083984374994],[87.984375,27.133935546874994],[88.14697265625014,27.749218750000097],[88.15029296875011,27.843310546875074],[88.10976562500005,27.87060546874997],[88.10898437499995,27.93300781250005],[88.14111328125003,27.948925781250097],[88.27519531250013,27.96884765625009],[88.42597656250015,28.011669921875097],[88.57792968750002,28.093359375000034],[88.80371093750003,28.006933593750034],[88.74902343749997,27.521875000000136],[88.7648437500001,27.429882812500068],[88.83251953125003,27.362841796875074],[88.89140625000002,27.316064453125136],[88.88164062500007,27.29746093750009],[88.76035156250006,27.21811523437509],[88.73876953125009,27.175585937499932],[88.85761718750015,26.961474609375017],[89.14824218750002,26.816162109375085],[89.33212890625018,26.848632812500114],[89.58613281250004,26.778955078125136],[89.60996093750012,26.719433593750097],[89.71093750000009,26.713916015625045],[89.76386718750004,26.7015625],[89.94316406250013,26.723925781249932],[90.12294921875011,26.754589843749983],[90.20605468749997,26.847509765625063],[90.34589843750004,26.890332031250097],[90.73964843750005,26.771679687500068],[91.2865234375,26.78994140625008],[91.42675781249997,26.867089843749966],[91.45585937500013,26.866894531250125],[91.51757812500009,26.807324218750068],[91.67158203124993,26.80200195312503],[91.84208984375013,26.852978515625125],[91.94375,26.860839843750114],[91.99833984375013,26.85498046875],[92.04970703125016,26.87485351562495],[92.73155507489682,26.833697862861648],[93.30975376159499,26.784950522650554],[93.61047043679247,27.32239435188504],[94.06979001484449,27.589407158584788],[95.10800937321915,27.749636881153737],[95.74000740838363,28.116850432722256],[96.19577594042592,28.04291597700983],[96.96279296875,27.698291015625017],[96.88359375000013,27.514843750000125],[96.90195312500012,27.43959960937508],[97.10371093749993,27.163330078125114],[97.10205078125003,27.115429687500125],[96.95341796875013,27.13330078125003],[96.79785156249997,27.29619140624999],[96.19082031250005,27.26127929687499],[95.20146484375007,26.641406250000017],[95.05976562500015,26.473974609375006],[95.06894531250006,26.191113281250097],[95.10839843750014,26.091406250000034],[95.12929687500011,26.070410156250034],[95.13242187500006,26.041259765624943],[94.99199218750002,25.77045898437504],[94.66777343750007,25.458886718749966],[94.55302734375013,25.215722656249994],[94.70371093750012,25.097851562499955],[94.49316406250003,24.637646484374983],[94.37724609375002,24.473730468750006],[94.29306640625012,24.321875],[94.07480468750006,23.8720703125],[93.68339843750007,24.00654296875004],[93.45214843750003,23.987402343750034],[93.32626953125006,24.064208984375057],[93.36601562500007,23.132519531249955],[93.34941406250007,23.08496093750003],[93.20390625000002,23.03701171875005],[93.07871093750018,22.718212890625097],[93.16201171875,22.360205078125006],[93.07060546875002,22.20942382812501],[92.96455078125015,22.003759765625034],[92.90947265625013,21.988916015625023],[92.85429687500002,22.010156250000108],[92.77138671875,22.104785156250017],[92.68896484375009,22.130957031250006],[92.63037109375014,22.011328124999977],[92.57490234374993,21.97807617187496],[92.5612304687501,22.04804687500001],[92.49140625000004,22.685400390625006],[92.46445312500006,22.734423828125045],[92.36162109375002,22.929003906250074],[92.33378906250002,23.242382812499955],[92.24609375000003,23.68359374999997],[92.04404296875006,23.677783203125017],[91.97851562500003,23.691992187500063],[91.92958984375011,23.685986328125097],[91.92949218750019,23.598242187499977],[91.93789062500011,23.504687500000102],[91.75419921875013,23.28730468750004],[91.75097656250003,23.053515625000017],[91.55351562500013,22.991552734375006],[91.43623046875004,23.19990234375001],[91.359375,23.06835937500003],[91.16044921875019,23.660644531250085],[91.35019531250012,24.06049804687501],[91.72656250000003,24.20507812499997],[91.84619140624997,24.175292968749943],[92.06416015625004,24.374365234375006],[92.11748046875002,24.493945312500017],[92.22666015625012,24.77099609374997],[92.22832031250002,24.881347656250085],[92.2512695312499,24.895068359375045],[92.38496093750004,24.848779296875023],[92.46835937500018,24.944140625000074],[92.04970703125016,25.16948242187499],[90.61308593750002,25.16772460937497],[90.11962890625003,25.21997070312497],[89.86630859375012,25.293164062499955],[89.81406250000006,25.305371093749955],[89.80087890625012,25.33613281250001],[89.82490234375004,25.56015625],[89.82294921875015,25.94140625000003],[89.67089843750009,26.213818359375125],[89.57275390625003,26.13232421875003],[89.54990234375006,26.00527343750008],[89.28925781250015,26.037597656250085],[89.01865234375012,26.410253906249977],[88.95195312500002,26.412109375],[88.97041015625004,26.250878906250023],[88.94072265625002,26.24536132812497],[88.68281250000004,26.291699218749983],[88.51826171875004,26.51777343750004],[88.36992187500002,26.56411132812508],[88.35146484375005,26.482568359374966],[88.38623046875003,26.471533203125034],[88.44042968749997,26.369482421875034],[88.33398437499997,26.257519531249955],[88.15078125000005,26.087158203125057],[88.1066406250001,25.841113281250045],[88.14746093749997,25.811425781250023],[88.50244140625009,25.53701171875008],[88.76914062500006,25.490478515625],[88.85478515625002,25.333544921875017],[88.94414062500002,25.290771484375],[88.92978515625012,25.222998046875063],[88.57382812500006,25.18789062499999],[88.45625,25.188427734375125],[88.37294921875016,24.961523437500063],[88.31337890625011,24.8818359375],[88.27949218750015,24.881933593750034],[88.18886718750016,24.920605468750097],[88.14980468750011,24.91464843749995],[88.04511718750015,24.71303710937508],[88.03027343750009,24.664453125000136],[88.02343750000003,24.627832031250136],[88.07910156250009,24.549902343750063],[88.14550781250003,24.485791015624955],[88.225,24.460644531249983],[88.3375,24.45385742187503],[88.49853515625003,24.34663085937504],[88.64228515625015,24.325976562500102],[88.72353515625011,24.27490234375],[88.7335937500001,24.230908203125097],[88.72656250000009,24.18623046875004],[88.71376953125016,24.069628906250102],[88.69980468750006,24.00253906249992],[88.56738281250009,23.674414062500034],[88.63574218749997,23.55],[88.69765625,23.493017578125034],[88.72441406250002,23.254980468750034],[88.89707031250018,23.21040039062501],[88.92812500000011,23.186621093749977],[88.89970703125002,22.843505859375057],[88.92070312500002,22.632031249999955],[89.05,22.274609374999983],[89.02792968750023,21.937207031249983],[88.94931640625018,21.937939453125125],[89.05166015625,21.654101562500045],[88.85751953125012,21.744677734375017],[88.74501953125011,21.584375],[88.74023437500003,22.005419921875017],[88.64160156250003,22.121972656250136],[88.58466796875015,21.659716796874932],[88.44599609375004,21.614257812500085],[88.28750000000016,21.758203125000108],[88.25371093750002,21.622314453124943],[88.0568359375001,21.694140625000017],[88.19628906249997,22.139550781249994],[87.94140625000003,22.374316406250045],[88.15927734375018,22.12172851562508],[87.82373046875003,21.727343750000045],[87.20068359375009,21.544873046874983],[86.95410156250014,21.365332031250006],[86.84228515625009,21.106347656249994],[86.97548828125005,20.70014648437501],[86.75039062500011,20.313232421875057],[86.37656250000006,20.006738281249966],[86.24521484375012,20.05302734374999],[86.27949218750021,19.919433593749943],[85.575,19.69291992187499],[85.496875,19.696923828125108],[85.50410156250004,19.887695312500057],[85.24863281250006,19.757666015625034],[85.18076171875018,19.59487304687508],[85.44160156249993,19.626562499999977],[84.77099609375009,19.125390625000023],[84.10410156250018,18.29267578125001],[82.35957031250004,17.09619140624997],[82.25878906250014,16.55986328124996],[81.76191406250015,16.32949218750008],[81.28613281249997,16.337060546875023],[80.97871093750004,15.758349609375074],[80.64658203125006,15.895019531250028],[80.29345703125014,15.710742187499989],[80.0534179687501,15.074023437499932],[80.17871093750003,14.478320312500074],[80.11171875000005,14.212207031250045],[80.30654296875016,13.485058593750054],[80.15625,13.713769531250108],[80.06210937500006,13.60625],[80.34238281250006,13.361328125000071],[80.22910156250018,12.690332031249966],[79.85849609375018,11.988769531250043],[79.69316406250007,11.312548828124946],[79.79902343750004,11.338671874999932],[79.84863281250009,11.196875],[79.83818359375002,10.322558593750045],[79.31455078125018,10.256689453124949],[78.93994140625009,9.565771484375063],[79.01992187500005,9.333349609374963],[79.41142578125002,9.192382812500014],[78.97958984375018,9.268554687500085],[78.42148437500006,9.105029296874989],[78.19248046874995,8.890869140625057],[78.06015625000006,8.384570312499932],[77.51757812500003,8.078320312500068],[77.06591796875003,8.315917968749986],[76.5534179687501,8.902783203124997],[76.32460937500016,9.452099609374997],[76.24238281250004,9.927099609374949],[76.37558593750006,9.539892578124935],[76.45878906250013,9.536230468750077],[76.34648437500002,9.922119140625],[76.19560546875002,10.086132812500026],[75.72382812500015,11.361767578125026],[74.94550781250004,12.56455078124992],[74.38222656250005,14.494726562500048],[73.94921875000014,15.074755859375088],[73.80078125000009,15.39697265625],[73.93193359375013,15.39697265625],[73.77177734375013,15.573046874999989],[73.83281250000013,15.659375],[73.67988281250015,15.708886718750136],[73.47607421875003,16.05424804687496],[72.87548828124997,18.642822265625114],[72.97207031250011,19.15332031250003],[72.8346679687501,18.975585937500057],[72.80302734375013,19.07929687500004],[72.81162109375,19.298925781250006],[72.98720703125,19.27744140625009],[72.78789062500013,19.362988281250097],[72.66777343750019,19.83095703125005],[72.89375,20.672753906250136],[72.81386718750011,21.117187500000085],[72.62382812500002,21.371972656250108],[72.73476562500016,21.470800781250006],[72.61328125000009,21.461816406250108],[73.1125,21.750439453125125],[72.54306640625,21.69658203124999],[72.70019531250003,21.971923828124943],[72.52226562500013,21.976220703125108],[72.55302734375007,22.159960937500074],[72.80917968749995,22.23330078125008],[72.18281250000015,22.26972656250004],[72.30644531250002,22.18920898437497],[72.27441406250009,22.089746093749966],[72.03720703125006,21.82304687499999],[72.2103515625,21.72822265625004],[72.25400390625006,21.531005859375],[72.01523437500012,21.155712890625097],[71.0246093750001,20.73886718750009],[70.71933593750006,20.740429687500068],[70.12734375,21.094677734375097],[68.96992187500021,22.29028320312497],[69.05166015625016,22.437304687500074],[69.27656250000004,22.285498046875063],[70.17724609375014,22.57275390624997],[70.48925781250009,23.08950195312508],[70.33945312500012,22.939746093749932],[69.66464843750006,22.759082031250074],[69.23593749999995,22.848535156250023],[68.64072265625006,23.189941406250114],[68.41748046875009,23.57148437500004],[68.7767578125,23.852099609375017],[68.23496093749995,23.596972656250074],[68.16503906250009,23.857324218749994],[68.28251953125013,23.927978515625],[68.38125000000016,23.950878906250068],[68.48867187500011,23.96723632812501],[68.5866210937501,23.966601562500074],[68.72412109375003,23.964697265625034],[68.72812500000012,24.265625],[68.73964843750016,24.291992187500085],[68.75898437499993,24.307226562500006],[68.78115234375011,24.313720703125085],[68.8,24.30908203125003],[68.82832031250004,24.26401367187509],[68.86347656250015,24.26650390625005],[68.90078125000011,24.29243164062501],[68.98457031250015,24.273095703124966],[69.05156250000013,24.28632812500001],[69.11953125000011,24.26865234374995],[69.23505859374993,24.268261718750068],[69.44345703124995,24.275390625000085],[69.55917968750006,24.273095703124966],[69.80517578125009,24.16523437500004],[70.0982421875,24.2875],[70.28906250000009,24.356298828125063],[70.54677734375,24.418310546875063],[70.56503906250006,24.385791015625017],[70.55585937500015,24.331103515625074],[70.57929687500015,24.279052734374943],[70.65947265625013,24.24609374999997],[70.71630859375009,24.237988281250097],[70.7672851562501,24.245410156250017],[70.80507812500011,24.26196289062503],[70.88623046875014,24.34375],[70.92812500000016,24.362353515625045],[70.98281250000011,24.361035156250125],[71.04404296875006,24.400097656250097],[71.04531250000005,24.42998046874996],[70.96982421875012,24.571875],[70.97636718750013,24.61875],[71.00234375000016,24.6539062499999],[71.04785156250003,24.687744140625085],[71.02070312500021,24.75766601562492],[70.95087890625015,24.89160156250003],[70.87773437500019,25.06298828124997],[70.65205078125004,25.422900390625102],[70.64843750000003,25.666943359375068],[70.5695312500001,25.705957031250023],[70.50585937500009,25.685302734375085],[70.44853515625013,25.681347656249983],[70.26464843750009,25.70654296874997],[70.10019531250006,25.91005859375005],[70.14921875000002,26.347558593749994],[70.11464843750016,26.548046874999983],[69.47001953125002,26.804443359375],[69.56796875,27.174609375000102],[69.89628906250007,27.473632812500085],[70.04980468750009,27.694726562500023],[70.14453125000003,27.849023437499994],[70.19394531250006,27.89487304687492],[70.24433593750004,27.934130859375102],[70.4037109375,28.025048828124994],[70.48857421875013,28.023144531250125],[70.62910156250015,27.937451171875068],[70.6916015625001,27.76899414062504],[70.79794921875012,27.709619140625023],[70.87490234375016,27.71445312499995],[71.18476562500004,27.831640625],[71.54296875000003,27.869873046875],[71.8703125000001,27.9625],[71.88886718750004,28.04746093749992],[71.94804687500002,28.177294921875102],[72.12851562500012,28.34633789062508],[72.29199218750003,28.69726562499997],[72.34189453125006,28.751904296875097],[72.90332031250003,29.02875976562501],[73.38164062500013,29.934375],[73.8091796875,30.093359375],[73.88652343750013,30.162011718750136],[73.93339843750002,30.222070312500108],[73.92460937500007,30.28164062499999],[73.88271484375,30.352148437499977],[73.89931640625,30.435351562500045],[74.00898437500004,30.519677734374994],[74.33935546875003,30.893554687499943],[74.38037109375003,30.89340820312509],[74.50976562500009,30.959667968750097],[74.63281250000014,31.034667968750114],[74.62578125000002,31.068750000000108],[74.61035156250009,31.112841796875045],[74.51767578125012,31.185595703124932],[74.53496093750007,31.261376953125108],[74.59394531249993,31.465380859375102],[74.58183593750013,31.523925781250114],[74.50996093750015,31.712939453125074],[74.52597656249995,31.765136718750057],[74.55556640625011,31.818554687500097],[74.63574218750003,31.889746093750034],[74.73945312500015,31.948828125],[75.07148437500015,32.08935546875003],[75.13876953125,32.10478515624999],[75.25410156250004,32.140332031250125],[75.33349609374997,32.279199218749994],[75.32221348233018,32.28516356678968]]]]},"properties":{"name":"India","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[72.49199218750002,-7.37744140625],[72.42910156250002,-7.435351562500003],[72.34970703125,-7.263378906250011],[72.447265625,-7.395703125000011],[72.44560546875002,-7.220410156250011],[72.49199218750002,-7.37744140625]]]},"properties":{"name":"Br. Indian Ocean Ter.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-9.948193359374926,53.91313476562499],[-10.265722656249949,53.977685546874994],[-9.99638671874996,54.00361328125004],[-9.948193359374926,53.91313476562499]]],[[[-6.218017578125,54.08872070312506],[-6.347607421874926,53.94130859375005],[-6.027392578124989,52.927099609375006],[-6.463183593749932,52.345361328124994],[-6.325,52.246679687500034],[-6.890234375,52.15922851562499],[-6.965771484374926,52.24951171875],[-8.057812499999926,51.82558593750005],[-8.4091796875,51.888769531250034],[-8.349121093749943,51.73930664062496],[-8.813427734374926,51.584912109374955],[-9.737304687499943,51.473730468750034],[-9.524902343750028,51.68110351562501],[-10.120751953124994,51.60068359375006],[-9.598828124999983,51.87441406250005],[-10.341064453124943,51.798925781250034],[-9.909667968749972,52.122949218749966],[-10.39023437499992,52.134912109374994],[-10.356689453125,52.20693359375002],[-9.772119140624937,52.250097656250034],[-9.90605468749996,52.403710937499966],[-9.632226562499937,52.54692382812502],[-8.783447265624943,52.679638671874955],[-8.990283203124989,52.755419921875045],[-9.175390624999949,52.634912109374994],[-9.916601562499977,52.56972656250005],[-9.46489257812496,52.82319335937498],[-9.299218749999966,53.09755859375002],[-8.930126953124983,53.207080078125045],[-9.51420898437496,53.23823242187498],[-10.091259765624926,53.41284179687503],[-10.116992187499932,53.548535156249955],[-9.720654296874926,53.6044921875],[-9.901611328124943,53.72719726562502],[-9.578222656249949,53.80541992187497],[-9.578857421875,53.879833984374955],[-9.9140625,53.863720703124955],[-9.856445312499972,54.095361328124994],[-10.092675781249966,54.15576171875003],[-10.056396484374943,54.25781250000006],[-8.545556640624994,54.24121093750003],[-8.623144531249977,54.346875],[-8.133447265624966,54.64082031250001],[-8.763916015624972,54.68120117187496],[-8.377294921874977,54.88945312500002],[-8.274609374999955,55.146289062500045],[-7.667089843749977,55.25649414062502],[-7.65874023437496,54.97094726562503],[-7.308789062500011,55.365820312500006],[-6.961669921874972,55.23789062500006],[-7.218652343749937,55.09199218749998],[-7.55039062499992,54.767968749999966],[-7.910595703124955,54.698339843750006],[-7.75439453125,54.59492187499998],[-8.118261718749977,54.41425781250004],[-7.606542968750006,54.14384765625002],[-7.324511718750017,54.13344726562502],[-7.007714843749937,54.40668945312501],[-6.649804687499937,54.05864257812496],[-6.218017578125,54.08872070312506]]]]},"properties":{"name":"Ireland","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[56.18798828125003,26.92114257812497],[55.95429687500004,26.70112304687501],[55.31152343749997,26.592626953125006],[55.76259765625005,26.81196289062504],[55.75761718750002,26.94765625000005],[56.279394531250006,26.952099609374983],[56.18798828125003,26.92114257812497]]],[[[46.1144531250001,38.877783203125034],[46.490625,38.90668945312498],[47.995898437500074,39.683935546875034],[48.322167968749994,39.39907226562502],[48.10439453125005,39.241113281249994],[48.292089843750006,39.01884765624999],[47.99648437499999,38.85375976562503],[48.59267578125005,38.41108398437498],[48.86875,38.43549804687498],[48.95996093750003,37.89013671875],[49.171191406250074,37.60058593749997],[50.13046875,37.407128906249994],[50.53320312499997,37.01367187500006],[51.11855468750005,36.742578124999966],[52.19013671875004,36.62172851562505],[53.76767578125006,36.93032226562502],[53.91542968750005,36.93032226562502],[53.67949218750002,36.853125],[53.970117187499994,36.818310546874955],[53.91416015625006,37.34355468750002],[54.6994140625001,37.47016601562498],[54.90009765625004,37.77792968750006],[55.38085937500003,38.051123046875034],[56.272070312500006,38.080419921875034],[56.440625,38.249414062499994],[57.1935546875001,38.216406250000034],[57.35371093750004,37.97333984374998],[58.261621093749994,37.665820312500045],[58.81542968750003,37.683496093749994],[59.30175781249997,37.51064453125005],[59.454980468749994,37.25283203125002],[60.06279296875002,36.962890625],[60.34130859375003,36.63764648437501],[61.11962890625003,36.64257812500003],[61.212011718750006,36.190527343750034],[61.15292968750006,35.97675781250001],[61.25214843750004,35.86762695312498],[61.26201171875002,35.61958007812498],[61.28183593750006,35.55341796875001],[61.2785156250001,35.513769531250006],[61.245507812499994,35.47407226562501],[61.18925781250002,35.31201171875003],[61.1,35.272314453125034],[61.08007812499997,34.85561523437505],[60.95117187499997,34.65385742187499],[60.91474609375004,34.63398437500001],[60.80234375000006,34.55463867187501],[60.73945312500004,34.544726562500045],[60.7262695312501,34.51826171874998],[60.736132812500074,34.491796875],[60.76259765625005,34.475244140624994],[60.88945312500002,34.31943359375006],[60.642675781250006,34.30717773437496],[60.48574218750005,34.09477539062502],[60.4859375,33.7119140625],[60.57382812500006,33.58833007812498],[60.91699218749997,33.505224609375006],[60.56054687499997,33.13784179687502],[60.5765625,32.99487304687503],[60.71044921874997,32.6],[60.82929687500004,32.24941406250005],[60.82724609375006,32.16796874999997],[60.789941406249994,31.98710937499999],[60.7875,31.87719726562497],[60.791601562500006,31.660595703124983],[60.82070312499999,31.495166015625045],[60.854101562500006,31.483251953125006],[61.110742187499994,31.45112304687504],[61.346484375000074,31.42163085937497],[61.66015625000003,31.382421874999977],[61.7550781250001,31.285302734374994],[61.814257812500074,31.072558593750017],[61.810839843750074,30.913281249999983],[61.78417968749997,30.831933593750023],[61.55947265625005,30.59936523437497],[61.33164062500006,30.36372070312501],[60.84335937500006,29.85869140624999],[61.03417968750003,29.663427734374977],[61.15214843750002,29.542724609375],[61.8898437500001,28.546533203124994],[62.7625,28.202050781249994],[62.782324218750006,27.800537109375],[62.75273437500002,27.265625],[63.16679687500002,27.25249023437499],[63.19609375000002,27.243945312500017],[63.25625,27.20791015625005],[63.30156250000002,27.151464843750006],[63.30517578124997,27.124560546875017],[63.242089843749994,27.07768554687499],[63.25039062499999,26.879248046875063],[63.24160156250005,26.86474609375003],[63.18613281250006,26.83759765625001],[63.168066406250006,26.66557617187496],[62.31230468750002,26.490869140624994],[62.23935546875006,26.357031249999977],[62.12597656249997,26.368994140625034],[61.842382812500006,26.225927734375006],[61.809960937499994,26.165283203125],[61.78076171874997,25.99584960937503],[61.75439453125003,25.843359375000063],[61.737695312499994,25.821093750000045],[61.66865234375004,25.76899414062501],[61.6618164062501,25.751269531250017],[61.67138671874997,25.69238281250003],[61.64013671875003,25.584619140624994],[61.61542968750004,25.28613281250003],[61.58789062499997,25.20234375000001],[61.533105468749994,25.195507812499955],[61.41220703125006,25.102099609375017],[60.66386718750002,25.28222656250003],[60.51054687500002,25.437060546875045],[60.40019531250002,25.311572265625074],[59.45605468749997,25.481494140625045],[59.0460937500001,25.417285156250017],[58.79785156249997,25.554589843750023],[57.334570312500006,25.791552734375074],[57.03603515625005,26.80068359375005],[56.728125,27.127685546875057],[56.118066406249994,27.14311523437499],[54.75927734375003,26.50507812500004],[54.24707031250003,26.696630859374977],[53.70576171875004,26.72558593750003],[52.69160156250004,27.323388671875023],[52.475878906250074,27.61650390624999],[52.03076171874997,27.824414062499955],[51.58906250000004,27.864208984374983],[51.27890625,28.13134765624997],[51.06201171874997,28.72612304687499],[50.86699218750002,28.870166015625017],[50.87578125000002,29.062695312499983],[50.67519531250005,29.146582031250034],[50.64960937500004,29.420068359374966],[50.16894531250003,29.921240234375034],[50.071582031250074,30.198535156250017],[49.55488281250004,30.028955078125023],[49.028125,30.333447265624983],[49.224511718749994,30.472314453125023],[49.00195312500003,30.506542968749983],[48.91914062500004,30.120898437500017],[48.54648437500006,29.962353515624955],[48.47851562499997,30.003808593749966],[48.43457031249997,30.03759765625],[48.33105468749997,30.28544921874996],[48.01494140625002,30.465625],[48.01064453125005,30.989794921875017],[47.679492187500074,31.00239257812501],[47.679492187500074,31.400585937499955],[47.75390624999997,31.601367187500017],[47.829980468749994,31.79443359375],[47.71455078125004,31.936425781249966],[47.5915039062501,32.087988281250034],[47.51191406250004,32.15083007812504],[47.3297851562501,32.45551757812501],[47.28515625000003,32.474023437499966],[47.121386718750074,32.46660156249996],[46.569921875,32.83393554687501],[46.37705078125006,32.92924804687499],[46.29824218750005,32.95024414062502],[46.11279296875003,32.957666015624994],[46.09306640625002,32.97587890624999],[46.08046875,33.028222656249994],[46.0807617187501,33.08652343750006],[46.14111328125003,33.174414062500034],[46.145898437499994,33.229638671874994],[46.01992187500005,33.41572265624998],[45.39707031250006,33.970849609374994],[45.542773437500074,34.21552734375004],[45.459375,34.470361328124994],[45.50078125000002,34.58159179687499],[45.6375,34.573828125],[45.678125,34.798437500000034],[45.92089843750003,35.02851562500001],[46.04179687500002,35.08017578125006],[46.13378906249997,35.127636718749955],[46.15468750000005,35.19672851562498],[46.112109375000074,35.32167968750005],[45.97109375000005,35.524169921875],[46.03740234375002,35.67314453124999],[46.180957031250074,35.71137695312504],[46.2625,35.74414062500006],[46.27343749999997,35.77324218750002],[46.16748046874997,35.820556640625],[45.77636718749997,35.82182617187499],[45.36162109375002,36.015332031249955],[45.241113281249994,36.35595703125],[45.20654296874997,36.397167968749955],[45.15527343749997,36.407373046874994],[45.11240234375006,36.409277343750034],[45.053125,36.47163085937501],[44.76513671875003,37.142431640625006],[44.79414062500004,37.290380859375034],[44.574023437500074,37.435400390625006],[44.589941406250006,37.710351562499966],[44.21132812499999,37.908056640625006],[44.4499023437501,38.33422851562506],[44.2985351562501,38.38627929687499],[44.27167968750004,38.83603515625006],[44.02324218750002,39.37744140625006],[44.3893554687501,39.422119140625],[44.58710937500004,39.76855468750006],[44.81718750000002,39.65043945312496],[45.4796875000001,39.00625],[46.1144531250001,38.877783203125034]]]]},"properties":{"name":"Iran","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[45.6375,34.573828125],[45.50078125000002,34.581591796874996],[45.459375,34.470361328124994],[45.54277343750002,34.21552734375],[45.397070312500006,33.970849609374994],[46.01992187500002,33.41572265625],[46.14589843750002,33.229638671874994],[46.14111328125,33.1744140625],[46.08076171875001,33.0865234375],[46.08046875000002,33.028222656249994],[46.09306640625002,32.975878906249996],[46.11279296875,32.957666015624994],[46.377050781250006,32.929248046874996],[46.569921875,32.833935546875],[47.12138671875002,32.466601562499996],[47.28515625,32.474023437499994],[47.32978515625001,32.455517578125],[47.51191406250001,32.150830078125],[47.59150390625001,32.08798828125],[47.71455078125001,31.936425781249994],[47.82998046875002,31.79443359375],[47.75390625,31.601367187499996],[47.67949218750002,31.400585937499997],[47.67949218750002,31.002392578124997],[48.01064453125002,30.989794921874996],[48.01494140625002,30.465625],[48.3310546875,30.285449218749996],[48.546484375,29.962353515624997],[48.454199218750006,29.9384765625],[48.354589843750006,29.956738281249997],[48.141699218750006,30.040917968749994],[47.982519531250006,30.011328125],[47.97871093750001,29.9828125],[47.64375,30.097314453124994],[47.14824218750002,30.0009765625],[46.905859375,29.5375],[46.76933593750002,29.347460937499996],[46.69375,29.259667968749994],[46.53144531250001,29.096240234374996],[46.3564453125,29.063671875],[44.71650390625001,29.193603515625],[43.77373046875002,29.84921875],[42.07441406250001,31.080371093749996],[40.47890625000002,31.893359375],[40.36933593750001,31.93896484375],[40.02783203125,31.995019531249994],[39.7041015625,32.042529296874996],[39.14541015625002,32.12451171875],[39.29277343750002,32.24384765625],[39.24746093750002,32.350976562499994],[39.04140625000002,32.3056640625],[38.773535156250006,33.372216796874994],[40.98701171875001,34.429052734375],[41.19472656250002,34.768994140625],[41.354101562500006,35.640429687499996],[41.295996093750006,36.383349609374996],[41.41679687500002,36.5146484375],[41.78857421875,36.59716796875],[42.358984375,37.10859375],[42.45585937500002,37.128710937499996],[42.63544921875001,37.249267578125],[42.74111328125002,37.3619140625],[42.77460937500001,37.371875],[42.869140625,37.334912109375],[42.936621093750006,37.324755859374996],[43.09248046875001,37.3673828125],[43.67578125,37.22724609375],[43.83642578125,37.223535156249994],[44.01318359375,37.313525390624996],[44.11445312500001,37.30185546875],[44.15625,37.282958984375],[44.19179687500002,37.249853515625],[44.20839843750002,37.20263671875],[44.20166015625,37.051806640624996],[44.281835937500006,36.97802734375],[44.32558593750002,37.0107421875],[44.401953125,37.058496093749994],[44.60595703125,37.176025390625],[44.66933593750002,37.173583984375],[44.73095703125,37.165283203125],[44.76513671875,37.142431640625],[45.053125,36.471630859375],[45.112402343750006,36.40927734375],[45.1552734375,36.407373046874994],[45.20654296875,36.39716796875],[45.24111328125002,36.35595703125],[45.36162109375002,36.01533203125],[45.7763671875,35.821826171874996],[46.16748046875,35.820556640625],[46.2734375,35.773242187499996],[46.2625,35.744140625],[46.18095703125002,35.711376953125],[46.03740234375002,35.673144531249996],[45.97109375000002,35.524169921875],[46.11210937500002,35.321679687499994],[46.15468750000002,35.196728515625],[46.1337890625,35.12763671875],[46.04179687500002,35.08017578125],[45.9208984375,35.028515625],[45.678125,34.7984375],[45.6375,34.573828125]]]},"properties":{"name":"Iraq","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-15.543115234374994,66.228515625],[-14.595849609374994,66.38154296875],[-15.117382812499983,66.125634765625],[-14.698193359374983,66.02021484375],[-14.827099609374983,65.7642578125],[-14.391845703125,65.78740234375],[-14.473388671875,65.575341796875],[-14.166943359374983,65.64228515625],[-13.617871093749983,65.5193359375],[-13.804785156249977,65.35478515625],[-13.599316406249983,65.0359375],[-14.04443359375,64.74189453125],[-14.385107421874977,64.74521484375],[-14.475390624999989,64.493994140625],[-14.927392578124994,64.319677734375],[-15.832910156249994,64.17666015625],[-16.640332031249983,63.865478515625],[-17.81572265624999,63.71298828125],[-17.946923828124994,63.5357421875],[-18.65361328124999,63.406689453125],[-20.198144531249994,63.555810546874994],[-20.494042968749994,63.687353515625],[-20.413964843749994,63.80517578125],[-20.65092773437499,63.73740234375],[-21.15239257812499,63.94453125],[-22.652197265624977,63.827734375],[-22.701171875,64.083203125],[-22.51005859374999,63.991455078125],[-22.187597656249977,64.039208984375],[-21.463330078124983,64.379150390625],[-22.053369140624994,64.313916015625],[-21.950341796874994,64.514990234375],[-21.590625,64.6263671875],[-22.10600585937499,64.533056640625],[-22.467041015625,64.794970703125],[-23.818994140624994,64.73916015625],[-24.02617187499999,64.863427734375],[-22.7880859375,65.046484375],[-21.89213867187499,65.048779296875],[-21.779980468749983,65.1876953125],[-22.50908203124999,65.19677734375],[-21.844384765624994,65.44736328125],[-22.902490234374994,65.58046875],[-23.89990234375,65.407568359375],[-24.475683593749977,65.5251953125],[-24.248925781249994,65.614990234375],[-23.85673828124999,65.53837890625],[-24.092626953124977,65.77646484375],[-23.615917968749983,65.67958984375],[-23.285351562499983,65.75],[-23.832617187499977,65.84921875],[-23.52495117187499,65.880029296875],[-23.77734375,66.017578125],[-23.434472656249994,66.02421875],[-23.452539062499994,66.181005859375],[-23.018994140624983,65.98212890625],[-22.659863281249983,66.025927734375],[-22.61601562499999,65.86748046875],[-22.44169921874999,65.90830078125],[-22.4453125,66.07001953125],[-22.947900390624994,66.212744140625],[-22.48442382812499,66.26630859375],[-23.116943359375,66.338720703125],[-22.9443359375,66.429443359375],[-22.426123046874977,66.430126953125],[-21.406884765624994,66.0255859375],[-21.374902343749994,65.74189453125],[-21.658447265625,65.723583984375],[-21.12968749999999,65.2666015625],[-20.804345703124994,65.63642578125],[-20.454833984375,65.571044921875],[-20.20751953125,66.10009765625],[-19.489697265624983,65.76806640625],[-19.382958984374994,66.07568359375],[-18.845898437499983,66.183935546875],[-18.141943359374977,65.73408203125],[-18.29716796874999,66.157421875],[-17.906982421875,66.143310546875],[-17.550439453124994,65.964404296875],[-17.153027343749983,66.20283203125],[-16.838037109374994,66.125244140625],[-16.485009765624994,66.195947265625],[-16.540673828124994,66.446728515625],[-16.24931640624999,66.522900390625],[-15.985400390624989,66.5146484375],[-15.543115234374994,66.228515625]]]},"properties":{"name":"Iceland","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[35.78730468750001,32.734912109374996],[35.572851562500006,32.640869140625],[35.56904296875001,32.619873046875],[35.55146484375001,32.3955078125],[35.484375,32.401660156249996],[35.40263671875002,32.450634765625],[35.38671875,32.493017578125],[35.303808593750006,32.512939453125],[35.19326171875002,32.534423828125],[35.065039062500006,32.46044921875],[35.01054687500002,32.338183593749996],[34.95595703125002,32.1609375],[34.98974609375,31.91328125],[34.97832031250002,31.86640625],[34.95380859375001,31.841259765624997],[34.96113281250001,31.82333984375],[34.983007812500006,31.81679687499999],[35.05322265625,31.837939453124996],[35.12714843750001,31.816748046875],[35.203710937500006,31.75],[34.95097656250002,31.602294921875],[34.88046875,31.3681640625],[35.45058593750002,31.479296875],[34.97343750000002,29.555029296875],[34.904296875,29.47734375],[34.24531250000001,31.208300781249996],[34.34833984375001,31.292919921874997],[34.350195312500006,31.362744140624997],[34.52558593750001,31.525634765625],[34.47734375000002,31.584863281249994],[34.483984375,31.59228515625],[34.67841796875001,31.895703125],[35.10859375000001,33.08369140625],[35.411230468750006,33.07568359375],[35.869140625,33.43173828125],[35.91347656250002,32.94960937499999],[35.78730468750001,32.734912109374996]]]},"properties":{"name":"Israel","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[15.576562500000051,38.220312500000034],[15.099511718750023,37.45859375],[15.295703125000017,37.05517578124997],[15.112597656250017,36.687841796875006],[14.501855468750023,36.798681640625034],[14.142968750000023,37.103662109374994],[13.90546875000004,37.10063476562502],[13.169921875000028,37.47929687499996],[12.640234375000034,37.594335937500034],[12.435546874999972,37.819775390624955],[12.734375,38.18305664062498],[12.902734375000023,38.03486328124998],[13.291113281250034,38.19145507812502],[13.788867187499989,37.981201171875],[15.11875,38.15273437500002],[15.498730468750011,38.290869140625006],[15.576562500000051,38.220312500000034]]],[[[8.478906250000023,39.067529296874966],[8.421484375000034,38.968652343749994],[8.366796875,39.115917968749955],[8.478906250000023,39.067529296874966]]],[[[8.28603515625008,41.03984375],[8.205664062500034,40.99746093750005],[8.320214843750023,41.121875],[8.28603515625008,41.03984375]]],[[[9.632031250000011,40.88203124999998],[9.805273437500063,40.499560546875045],[9.642968750000023,40.268408203125006],[9.5625,39.16601562500006],[9.056347656250068,39.23916015625002],[8.966601562500074,38.963720703125034],[8.648535156250034,38.92656250000002],[8.418164062500068,39.205712890624966],[8.547753906250023,39.83920898437506],[8.4078125,39.91723632812497],[8.471289062500063,40.29267578124998],[8.189941406250028,40.651611328125],[8.22421875,40.91333007812503],[8.571875,40.85019531250006],[9.228417968750023,41.257080078125],[9.615332031249977,41.01728515624998],[9.632031250000011,40.88203124999998]]],[[[10.395117187500034,42.85815429687503],[10.419335937499994,42.71318359374999],[10.13125,42.742041015625006],[10.395117187500034,42.85815429687503]]],[[[13.420996093750006,46.212304687499994],[13.63251953125004,46.17705078125002],[13.634960937499983,46.15776367187499],[13.61660156250008,46.133105468750045],[13.54804687500004,46.08911132812503],[13.486425781250034,46.03955078124997],[13.480273437500017,46.00922851562501],[13.487695312500023,45.987109375000045],[13.509179687500051,45.973779296874994],[13.6005859375,45.97978515624996],[13.663476562500023,45.7919921875],[13.831152343750006,45.680419921875],[13.719824218750063,45.58759765625001],[13.628320312500051,45.77094726562498],[13.206347656250074,45.771386718749966],[12.27431640625008,45.44604492187503],[12.225683593750034,45.24150390625002],[12.523437500000028,44.96796874999998],[12.248339843750045,44.72250976562498],[12.396289062500074,44.223876953125],[13.56416015625004,43.57128906250003],[14.010449218750011,42.68955078125006],[14.54072265625004,42.24428710937502],[15.16875,41.93403320312498],[16.164648437500034,41.89619140624998],[15.900488281250034,41.51206054687498],[17.954980468749994,40.65517578125002],[18.460644531249983,40.221044921875034],[18.34375,39.82138671874998],[18.077929687500017,39.93696289062498],[17.865039062500074,40.28017578125002],[17.395800781250045,40.34023437499999],[17.179980468750045,40.50278320312498],[16.92822265625,40.45805664062502],[16.521875,39.74755859375003],[17.114550781250017,39.38061523437497],[17.174609375000017,38.998095703125045],[16.61669921875003,38.800146484375034],[16.54560546875001,38.40908203125002],[16.05683593750001,37.941845703124955],[15.72451171875008,37.93911132812502],[15.645800781250017,38.034228515625045],[15.87890625,38.61391601562502],[16.19677734375,38.759228515624955],[16.20996093750003,38.94111328124998],[15.692773437499994,39.99018554687501],[14.95087890625004,40.23901367187497],[14.94765625000008,40.469335937500006],[14.765722656250063,40.66840820312498],[14.339941406250006,40.59882812500001],[14.460546875000063,40.72871093750001],[14.04433593750008,40.81225585937506],[13.733398437500057,41.23564453124999],[13.088671875000074,41.243847656249955],[12.630859374999972,41.469677734374955],[11.637304687500063,42.287548828124955],[11.141210937499977,42.38989257812503],[11.167773437500074,42.53515625000006],[10.708398437500023,42.93632812499999],[10.514843750000011,42.96752929687503],[10.188085937500063,43.947509765625],[8.76582031250004,44.42231445312501],[8.004980468750006,43.87675781249999],[7.4931640625,43.767138671875045],[7.637207031250057,44.16484375],[7.318554687500068,44.13798828125002],[6.900195312499989,44.33574218749996],[6.99267578125,44.82729492187502],[6.634765625000028,45.06816406249996],[7.07832031250004,45.23994140624998],[7.146386718750051,45.381738281249994],[6.790917968750023,45.740869140624966],[7.021093750000034,45.92578124999997],[7.055761718749977,45.90380859375003],[7.129003906249977,45.88041992187499],[7.327929687500017,45.912353515625],[7.9931640625,46.01591796874996],[8.081542968750057,46.25600585937502],[8.231933593750057,46.341210937499966],[8.29853515625004,46.403417968750034],[8.370703125,46.44511718750002],[8.458398437500023,46.24589843750002],[8.818554687500011,46.0771484375],[8.826757812500006,46.06103515625],[8.77802734375004,45.996191406250034],[8.953710937500034,45.83002929687501],[9.023730468750074,45.845703125],[9.203417968750017,46.21923828125],[9.304394531250068,46.49555664062498],[9.399316406250023,46.480664062499955],[9.427636718750023,46.48232421875002],[9.528710937500023,46.306201171875045],[9.57958984375,46.29609375000001],[9.639453125000017,46.29589843749997],[9.78779296875004,46.34604492187498],[9.884472656250011,46.36777343750006],[9.939257812500074,46.36181640625],[10.041015625000028,46.23808593750002],[10.08056640625,46.22797851562501],[10.128320312500051,46.238232421874955],[10.109667968750074,46.36284179687502],[10.081933593750023,46.420751953125006],[10.045605468750068,46.44790039062505],[10.038281250000011,46.483203125000045],[10.061230468750068,46.54677734375002],[10.087011718750063,46.59990234375002],[10.1375,46.614355468750034],[10.195507812500068,46.62109374999997],[10.4306640625,46.55004882812497],[10.409352678571473,46.6092047991071],[10.39794921875,46.66503906250006],[10.406054687500045,46.73486328124997],[10.452832031249983,46.86494140625001],[10.47939453125008,46.85512695312505],[10.579785156250011,46.85371093750001],[10.689257812500017,46.846386718749955],[10.759765625,46.79331054687498],[10.828906250000045,46.775244140625034],[10.927343750000034,46.76948242187501],[10.993261718750034,46.77700195312502],[11.02509765625004,46.796972656250006],[11.063476562500057,46.85913085937497],[11.133886718750006,46.93618164062505],[11.244433593750045,46.975683593750006],[11.433203125000063,46.983056640624994],[11.527539062500011,46.99741210937498],[11.775683593750017,46.986083984375],[12.169433593750028,47.082128906250006],[12.19716796875008,47.075],[12.201269531250034,47.060888671875034],[12.165527343750028,47.028173828125034],[12.130761718750051,46.98476562499999],[12.154101562500017,46.93525390625004],[12.267968750000023,46.83588867187504],[12.330078125,46.75981445312499],[12.388281250000034,46.70263671874997],[12.479199218749983,46.672509765624966],[13.16875,46.572656249999966],[13.3515625,46.55791015624999],[13.490039062500045,46.55556640625002],[13.7,46.52026367187503],[13.679687500000057,46.46289062499997],[13.63710937500008,46.44853515624999],[13.563281250000045,46.41508789062502],[13.399511718749977,46.31752929687502],[13.420996093750006,46.212304687499994]]]]},"properties":{"name":"Italy","childNum":6}},{"geometry":{"type":"Polygon","coordinates":[[[-77.261474609375,18.45742187499999],[-76.349853515625,18.15185546875],[-76.21079101562499,17.913525390624997],[-76.524609375,17.8662109375],[-76.85322265625,17.97373046874999],[-76.94414062499999,17.848779296874994],[-77.11948242187499,17.880078125],[-77.20498046875,17.71494140624999],[-77.36142578124999,17.833691406249997],[-77.76816406249999,17.877392578124997],[-78.04448242187499,18.173828125],[-78.339501953125,18.28720703124999],[-78.21669921875,18.44809570312499],[-77.8734375,18.522216796875],[-77.261474609375,18.45742187499999]]]},"properties":{"name":"Jamaica","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-2.018652343749977,49.23125],[-2.23583984375,49.1763671875],[-2.220507812499989,49.266357421875],[-2.018652343749977,49.23125]]]},"properties":{"name":"Jersey","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[39.14541015625002,32.12451171875],[38.9970703125,32.007470703124994],[38.96230468750002,31.994921875],[38.37548828125,31.847460937499996],[38.111425781250006,31.781152343749994],[37.49335937500001,31.625878906249994],[37.215625,31.556103515624997],[36.95859375,31.491503906249996],[37.980078125,30.5],[37.862890625,30.442626953125],[37.66972656250002,30.34814453125],[37.64990234375,30.330957031249994],[37.63359375000002,30.31328125],[37.55361328125002,30.144580078124996],[37.49072265625,30.01171875],[37.46923828125,29.995068359374997],[36.75527343750002,29.866015625],[36.70390625000002,29.831640625],[36.591796875,29.66611328125],[36.47607421875,29.4951171875],[36.2828125,29.355371093749994],[36.068457031250006,29.200537109375],[34.95078125,29.353515625],[34.97343750000002,29.555029296875],[35.45058593750002,31.479296875],[35.57207031250002,32.237890625],[35.55146484375001,32.3955078125],[35.56904296875001,32.619873046875],[35.572851562500006,32.640869140625],[35.78730468750001,32.734912109374996],[36.3720703125,32.3869140625],[36.818359375,32.317285156249994],[38.773535156250006,33.372216796874994],[39.04140625000002,32.3056640625],[39.24746093750002,32.350976562499994],[39.29277343750002,32.24384765625],[39.14541015625002,32.12451171875]]]},"properties":{"name":"Jordan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[123.88867187499997,24.280126953124977],[123.67978515625012,24.317773437500023],[123.77148437499997,24.41445312499999],[123.93486328125002,24.362011718749983],[123.88867187499997,24.280126953124977]]],[[[124.29316406250004,24.515917968750074],[124.13574218750003,24.347607421874983],[124.08476562500002,24.435839843750017],[124.30195312500004,24.58710937500001],[124.29316406250004,24.515917968750074]]],[[[125.44414062500002,24.7431640625],[125.26894531250005,24.732519531250063],[125.28359375,24.871923828125034],[125.44414062500002,24.7431640625]]],[[[128.25878906249997,26.65278320312501],[127.86708984375,26.442480468749977],[127.80361328125005,26.152539062499983],[127.653125,26.0947265625],[127.90722656250003,26.69360351562497],[128.09765624999997,26.66777343749996],[128.25488281249997,26.88188476562496],[128.25878906249997,26.65278320312501]]],[[[128.99814453125012,27.720800781250006],[128.90000000000012,27.727783203125],[128.9076171875,27.897998046875045],[128.99814453125012,27.720800781250006]]],[[[129.45253906250005,28.20898437499997],[129.3664062500001,28.127734375000045],[129.16464843750012,28.24975585937503],[129.68955078125012,28.517480468750023],[129.45253906250005,28.20898437499997]]],[[[130.6227539062501,30.262988281250017],[130.44560546875002,30.264697265625017],[130.38808593750005,30.38818359375003],[130.49716796875006,30.465527343749983],[130.64355468749997,30.388964843750017],[130.6227539062501,30.262988281250017]]],[[[130.95976562500007,30.39692382812504],[130.87031250000004,30.444238281249994],[131.06035156250007,30.828466796875006],[130.95976562500007,30.39692382812504]]],[[[130.38105468750004,32.42373046875002],[130.24169921874997,32.462792968749994],[130.46142578124997,32.515722656250034],[130.38105468750004,32.42373046875002]]],[[[130.08251953124997,32.22968750000001],[129.9601562500001,32.24375],[130.00976562499997,32.521630859374994],[130.16777343750002,32.54121093749998],[130.19951171875002,32.34057617187506],[130.08251953124997,32.22968750000001]]],[[[128.66533203125002,32.783886718749955],[128.89453124999997,32.65214843750002],[128.69296875000012,32.60473632812506],[128.66533203125002,32.783886718749955]]],[[[129.07695312500002,32.84028320312498],[128.99726562500004,32.95185546874998],[129.10976562500005,33.13256835937503],[129.18193359375002,32.99311523437504],[129.07695312500002,32.84028320312498]]],[[[129.49179687500006,33.22304687499999],[129.37041015625002,33.176025390625],[129.56992187500006,33.36103515625004],[129.49179687500006,33.22304687499999]]],[[[129.79570312500007,33.74882812499999],[129.67480468749997,33.73969726562498],[129.71728515624997,33.8583984375],[129.79570312500007,33.74882812499999]]],[[[131.17460937500007,33.602587890625045],[131.69628906250003,33.60283203124999],[131.53740234375007,33.274072265624994],[131.89658203125006,33.25458984375001],[131.8478515625001,33.118066406249994],[132.0021484375001,32.882373046875045],[131.6603515625001,32.465625],[131.33720703125007,31.4046875],[131.07080078124997,31.436865234374977],[131.09843750000002,31.256152343750017],[130.68574218750004,31.01513671875003],[130.77626953125,31.70629882812497],[130.65507812500002,31.71840820312505],[130.5560546875,31.563085937500034],[130.58876953125,31.178515625000017],[130.20068359374997,31.291894531250023],[130.14726562500002,31.40849609374996],[130.2941406250001,31.45068359375003],[130.3219726562501,31.601464843750023],[130.18789062500005,31.768847656250017],[130.19443359375012,32.090771484374955],[130.64052734375005,32.61923828124998],[130.49785156250002,32.65693359375001],[130.547265625,32.83159179687499],[130.2375,33.177636718749966],[130.12685546875005,33.10483398437506],[130.175,32.851318359375],[130.32646484375002,32.852636718750006],[130.34042968750012,32.70185546875004],[130.05410156250005,32.770800781250045],[129.76855468749997,32.57099609375001],[129.82675781250006,32.72534179687503],[129.67910156250005,33.059960937499966],[129.99169921875003,32.85156249999997],[129.58007812500003,33.23627929687501],[129.61015625000002,33.34365234375005],[129.844140625,33.32177734375003],[129.82568359374997,33.43701171875006],[130.36503906250007,33.634472656249955],[130.4837890625,33.834619140624966],[130.715625,33.92778320312502],[130.953125,33.87202148437504],[131.17460937500007,33.602587890625045]]],[[[132.266015625,33.945166015625006],[132.44492187500006,33.91318359374998],[132.20878906250007,33.87285156250002],[132.266015625,33.945166015625006]]],[[[129.27949218750004,34.123388671875006],[129.18642578125,34.14501953125006],[129.21484374999997,34.320654296875034],[129.3371093750001,34.284765625],[129.27949218750004,34.123388671875006]]],[[[134.35742187500003,34.25634765625],[134.6375,34.22661132812499],[134.73886718750012,33.82050781250001],[134.37705078125012,33.60839843749997],[134.18164062500003,33.24721679687502],[133.95869140625004,33.44833984375006],[133.63203125000004,33.51098632812503],[133.28593750000007,33.35996093749998],[132.97724609375004,32.84199218749998],[132.80429687500006,32.75200195312502],[132.6417968750001,32.76245117187503],[132.70898437500003,32.90249023437505],[132.49511718749997,32.91660156249998],[132.41279296875004,33.43046875],[132.0326171875,33.339990234374994],[132.64306640624997,33.68994140624997],[132.93515625000006,34.09531250000006],[133.19306640625004,33.93320312499998],[133.58203124999997,34.01713867187502],[133.60263671875006,34.24384765625001],[133.94833984375006,34.34804687500002],[134.35742187500003,34.25634765625]]],[[[134.35185546875002,34.48364257812503],[134.25185546875,34.42304687500004],[134.18212890625003,34.51923828124998],[134.35185546875002,34.48364257812503]]],[[[134.9328125000001,34.28813476562499],[134.82441406250004,34.202929687500045],[134.66787109375005,34.294140624999955],[135.00468750000002,34.54404296874998],[134.9328125000001,34.28813476562499]]],[[[129.38564453125,34.35366210937502],[129.26669921875012,34.37045898437506],[129.45107421875005,34.68657226562499],[129.38564453125,34.35366210937502]]],[[[133.37050781250005,36.203857421875],[133.23925781249997,36.178759765625045],[133.20615234375006,36.293408203124955],[133.29570312500002,36.34013671874996],[133.37050781250005,36.203857421875]]],[[[138.34404296875007,37.822119140625006],[138.22519531250006,37.82939453124996],[138.25,38.078466796875006],[138.50361328125004,38.31591796875006],[138.45361328124997,38.07568359375006],[138.57519531249997,38.065527343750034],[138.34404296875007,37.822119140625006]]],[[[141.22929687500007,41.37265625],[141.45546875000005,41.404736328124955],[141.43046875000002,40.72333984374998],[141.7970703125001,40.29116210937502],[141.97695312500005,39.428808593750034],[141.90078125,39.111328125],[141.5462890625,38.762841796874966],[141.4674804687501,38.404150390625006],[141.10839843750003,38.33793945312502],[140.9621093750001,38.148876953124955],[141.00166015625004,37.11464843750002],[140.57353515625007,36.23134765625002],[140.87402343749997,35.72495117187506],[140.457421875,35.51025390625],[140.35468750000004,35.18144531249999],[139.8439453125001,34.914892578125034],[139.82646484375002,35.29667968750002],[140.096875,35.58515624999998],[139.83476562500002,35.658056640625006],[139.65000000000012,35.40913085937501],[139.675,35.149267578125006],[139.47441406250002,35.298535156249955],[139.24941406250005,35.27802734375004],[139.08603515625006,34.83916015624999],[138.8375,34.619238281250034],[138.80273437499997,34.97480468749998],[138.90361328125002,35.02524414062506],[138.71962890625,35.12407226562502],[138.18906250000012,34.596337890624994],[137.543359375,34.66420898437505],[137.06171875000004,34.58281249999999],[137.27519531250002,34.77250976562499],[136.96328125000005,34.83491210937501],[136.87128906250004,34.733105468749955],[136.89707031250006,35.03554687500002],[136.80419921874997,35.05029296875],[136.53300781250007,34.678369140624994],[136.8802734375,34.43359375000006],[136.8537109375001,34.324072265625034],[136.32988281250007,34.17685546875006],[135.91621093750004,33.561718749999955],[135.69531250000003,33.48696289062502],[135.4528320312501,33.55336914062505],[135.12792968749997,34.006982421874994],[135.10009765624997,34.288378906250045],[135.41591796875,34.61748046875002],[134.74003906250007,34.765234375],[134.246875,34.71386718750003],[133.96826171874997,34.52729492187504],[133.14238281250002,34.30244140624998],[132.65654296875007,34.24609375000003],[132.31259765625006,34.32495117187503],[132.14648437499997,33.83876953125002],[131.74052734375007,34.05205078125002],[130.91884765625,33.97573242187502],[130.88925781250012,34.261816406250034],[131.00419921875007,34.39257812500003],[131.35439453125,34.41318359375006],[132.92294921875006,35.511279296875045],[133.98125,35.50722656250002],[135.17431640625003,35.74707031250003],[135.32695312500002,35.52553710937502],[135.68027343750006,35.503125],[135.903125,35.60688476562498],[136.09531250000006,35.767626953125045],[136.06748046875006,36.11684570312505],[136.69814453125005,36.742041015625034],[136.84345703125004,37.38212890624999],[137.32265625,37.52207031249998],[136.89990234375003,37.11767578125],[137.01669921875006,36.83720703124999],[137.24628906250004,36.753173828125],[137.5140625,36.95156250000002],[138.31992187500012,37.21840820312502],[138.88505859375007,37.84394531250001],[139.36386718750006,38.09902343750002],[139.80195312500004,38.881591796875],[140.06474609375002,39.624414062499994],[139.99472656250006,39.855078125],[139.74150390625002,39.92084960937498],[140.01113281250005,40.26035156250006],[139.92285156250003,40.59843750000002],[140.28125,40.84609375000002],[140.3444335937501,41.203320312499955],[140.62763671875004,41.195410156250034],[140.74863281250012,40.830322265625],[140.93603515625003,40.940771484375034],[141.1185546875,40.88227539062501],[141.24423828125006,41.20561523437499],[140.80058593750002,41.138818359374966],[140.80185546875012,41.253662109375],[140.9369140625,41.50556640624998],[141.22929687500007,41.37265625]]],[[[139.48125,42.08100585937498],[139.43134765625004,42.19956054687498],[139.55839843750002,42.235205078125034],[139.48125,42.08100585937498]]],[[[141.29541015625003,45.11933593750001],[141.14531250000002,45.153906250000034],[141.19375,45.24785156249999],[141.29541015625003,45.11933593750001]]],[[[141.07275390624997,45.33286132812498],[141.03398437500007,45.26933593750002],[140.97167968749997,45.465478515624994],[141.07275390624997,45.33286132812498]]],[[[143.82431640625012,44.11699218749999],[144.71523437500005,43.92797851562503],[145.36953125000005,44.32739257812506],[145.13964843750003,43.6625],[145.34082031249997,43.30253906249999],[145.83300781249997,43.38593750000001],[144.92138671874997,43.00092773437498],[143.96933593750006,42.88139648437499],[143.42949218750002,42.41889648437498],[143.2365234375001,42.000195312499955],[141.85136718750007,42.57905273437501],[141.40664062500005,42.54692382812496],[140.98613281250002,42.34213867187498],[140.70976562500002,42.555615234374955],[140.48046875000003,42.559375],[140.32666015625003,42.29335937499999],[141.15097656250012,41.80507812499999],[140.99951171874997,41.73740234375006],[140.65986328125004,41.815576171874994],[140.3849609375001,41.51928710937503],[140.08515625000004,41.43408203125],[139.99531250000004,41.57641601562503],[140.10839843749997,41.912939453125034],[139.83544921874997,42.278076171875],[139.86015625000002,42.58173828125004],[140.43222656250012,42.95410156250006],[140.39238281250002,43.303125],[141.13818359374997,43.17993164062506],[141.37412109375006,43.279638671875006],[141.7609375000001,44.482519531250034],[141.58300781250003,45.15595703125001],[141.66796874999997,45.401269531249966],[141.93769531250004,45.509521484375],[142.88476562499997,44.670117187499955],[143.82431640625012,44.11699218749999]]]]},"properties":{"name":"Japan","childNum":28}},{"geometry":{"type":"Polygon","coordinates":[[[77.04863281249999,35.109912109374996],[76.927734375,35.346630859375],[76.88222656250002,35.4357421875],[76.81279296874999,35.571826171874996],[76.76689453124999,35.66171875],[76.87890625,35.61328125],[77.09003906250001,35.552050781249996],[77.29482421875002,35.508154296875],[77.44648437500001,35.4755859375],[77.57255859374999,35.471826171874994],[77.72402343750002,35.48056640625],[77.79941406250003,35.495898437499996],[77.42343750000003,35.302587890625],[77.16855468750003,35.171533203124994],[77.04863281249999,35.109912109374996]]]},"properties":{"name":"Siachen Glacier","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[50.184472656249994,44.854638671874994],[49.99511718750003,44.93696289062498],[50.10986328124997,45.08193359375002],[50.038867187500074,44.949121093749966],[50.184472656249994,44.854638671874994]]],[[[87.32285156250012,49.085791015625006],[86.8083007812501,49.04970703125002],[86.54941406250012,48.52861328125002],[85.7494140625,48.38505859374999],[85.52597656250006,47.915625],[85.65664062500005,47.254638671875],[85.484765625,47.06352539062496],[84.78613281249997,46.83071289062505],[84.66660156250006,46.97236328125004],[84.016015625,46.97050781250002],[83.02949218750004,47.18593750000002],[82.31523437500002,45.59492187499998],[82.61162109375007,45.424267578124955],[82.52148437500003,45.12548828125],[82.26660156249997,45.21909179687498],[81.94492187500006,45.16083984375001],[81.69199218750012,45.34936523437497],[80.05917968750012,45.006445312500006],[79.871875,44.88378906249997],[80.48154296875006,44.71464843749999],[80.35527343750002,44.09726562500006],[80.78574218750006,43.16157226562504],[80.39023437500006,43.043115234374966],[80.53896484375005,42.873486328124955],[80.20224609375012,42.73447265624998],[80.209375,42.190039062500006],[80.07128906249997,42.302978515625],[79.92109375000004,42.41313476562496],[79.49013671875,42.45756835937496],[79.42822265624997,42.483496093750006],[79.20302734375005,42.66601562499997],[79.16484375000007,42.759033203125],[79.1266601562501,42.775732421875034],[76.98808593750007,42.97358398437501],[76.64648437500003,42.928808593750034],[76.50917968750005,42.91889648437498],[75.9322265625,42.92851562499999],[75.84033203125003,42.9375],[75.78955078124997,42.93291015624999],[75.68173828125,42.83046875],[75.04765625000007,42.904394531250034],[74.20908203125006,43.24038085937502],[73.88603515625002,43.132568359375],[73.55625,43.002783203125006],[73.45019531249997,42.703027343749966],[73.421875,42.59350585937503],[73.49296875000007,42.409033203125034],[73.41162109375003,42.41977539062498],[73.316015625,42.46699218750001],[73.2829101562501,42.50410156250004],[72.85507812500006,42.561132812500006],[72.75292968750003,42.63789062500001],[72.54316406250004,42.67773437500006],[72.27578125,42.757666015625006],[71.76054687500002,42.82148437500004],[71.5142578125,42.766943359375006],[71.42207031250004,42.78315429687504],[71.25664062500002,42.733544921874966],[70.89287109375007,42.339990234374994],[70.94677734374997,42.24868164062505],[69.15361328125002,41.42524414062498],[68.58408203125,40.876269531250045],[68.57265625,40.62265624999998],[68.29189453125,40.656103515625034],[68.04765625000007,40.80927734374998],[68.11308593750007,41.02861328124999],[67.9357421875001,41.19658203125002],[66.70966796875004,41.17915039062501],[66.49863281250006,41.99487304687503],[66.00957031250007,42.00488281250003],[66.1002929687501,42.99082031249998],[65.80302734375002,42.87695312500006],[65.49619140625,43.310546875],[64.9054687500001,43.714697265625006],[64.44316406250007,43.55117187499999],[63.20703125000003,43.62797851562502],[61.99023437500003,43.492138671874955],[61.007910156250006,44.39379882812497],[58.555273437500006,45.55537109375001],[55.97568359375006,44.99492187499996],[55.97744140625005,41.32221679687504],[55.434375,41.296289062499994],[54.85380859375002,41.965185546875006],[54.120996093749994,42.335205078125],[53.0558593750001,42.14775390624999],[52.4938476562501,41.780371093750034],[52.59658203125005,42.760156249999966],[51.898242187500074,42.86962890624997],[51.61601562500002,43.15844726562503],[51.29541015624997,43.17412109375002],[51.30175781249997,43.48237304687501],[50.8307617187501,44.192773437499966],[50.331152343750006,44.32548828125002],[50.25292968749997,44.461523437500006],[50.409472656250074,44.6240234375],[51.543554687500006,44.53100585937506],[51.009375,44.92182617187501],[51.4157226562501,45.35786132812501],[53.20039062500004,45.33198242187498],[52.77382812499999,45.57275390625],[53.13525390625003,46.19165039062497],[53.069433593750006,46.85605468750006],[52.48320312500002,46.99067382812504],[52.13828125,46.82861328124997],[51.178027343750074,47.110156250000045],[49.886328125,46.59565429687504],[49.347460937500074,46.51914062499998],[49.232226562500074,46.33715820312503],[48.54121093750004,46.60561523437502],[48.558398437500074,46.75712890624999],[48.959375,46.77460937499998],[48.16699218750003,47.70878906249996],[47.48193359374997,47.80390624999998],[47.292382812499994,47.74091796875004],[47.06464843750004,48.23247070312499],[46.660937500000074,48.41225585937502],[46.70263671875003,48.80556640625002],[47.031347656250006,49.150292968749994],[46.80205078125002,49.36708984375002],[46.889550781249994,49.69697265625001],[47.42919921874997,50.35795898437502],[47.7057617187501,50.37797851562502],[48.33496093750003,49.858251953125006],[48.7589843750001,49.92832031250006],[48.625097656250006,50.61269531250005],[49.32343750000004,50.851708984374966],[49.49804687500003,51.08359375000006],[50.246875,51.28950195312498],[50.79394531249997,51.729199218749955],[51.16347656250005,51.6474609375],[51.344531250000074,51.47534179687503],[52.21914062499999,51.709375],[52.57119140625005,51.481640624999955],[53.33808593750004,51.48237304687504],[54.139746093750006,51.04077148437503],[54.555273437500006,50.535791015624994],[54.64160156250003,51.011572265625034],[55.68623046875004,50.582861328125006],[56.49140625000004,51.01953124999997],[57.01171874999997,51.06518554687503],[57.44218750000002,50.88886718749998],[57.83886718750003,51.091650390625006],[58.359179687500074,51.063818359375034],[58.88369140625005,50.694433593750006],[59.4523437500001,50.62041015625002],[59.523046875,50.492871093749955],[59.812402343749994,50.58203125],[60.05859374999997,50.850292968749955],[60.42480468749997,50.67915039062498],[60.94228515625005,50.69550781250004],[61.38945312500002,50.86103515625001],[61.55468750000003,51.32460937500005],[60.464746093749994,51.651171875000045],[60.03027343749997,51.93325195312505],[60.99453125000005,52.33686523437504],[60.77441406249997,52.67578124999997],[61.047460937500006,52.97246093750002],[62.08271484375004,53.00541992187499],[61.65986328125004,53.22846679687504],[61.19921874999997,53.28715820312502],[61.22890625,53.445898437500006],[61.53496093750002,53.52329101562506],[60.97949218749997,53.62172851562505],[61.231054687500006,54.01948242187498],[61.92871093750003,53.94648437500004],[64.46123046875002,54.38417968750002],[65.08837890624997,54.340185546875034],[65.476953125,54.62329101562497],[68.15585937500006,54.97670898437505],[68.20625,55.16093750000002],[68.9772460937501,55.389599609374955],[70.18242187500002,55.162451171875034],[70.73808593750007,55.30517578125],[71.18554687500003,54.59931640624998],[71.09316406250005,54.21220703124999],[72.00449218750006,54.20566406249998],[72.18603515625003,54.32563476562501],[72.44677734375003,53.94184570312498],[72.62226562500004,54.13432617187502],[73.22988281250005,53.957812500000045],[73.71240234375003,54.04238281250002],[73.30566406250003,53.707226562499955],[73.40693359375004,53.44755859374999],[73.85898437500006,53.61972656249998],[74.35156250000003,53.487646484375006],[74.45195312500007,53.64726562500002],[75.22021484374997,53.89379882812506],[75.43720703125004,54.08964843749999],[76.8373046875,54.4423828125],[76.65458984375007,54.14526367187503],[76.42167968750007,54.151513671874966],[76.48476562500005,54.02255859374998],[77.85996093750006,53.269189453124994],[79.98623046875,50.774560546874966],[80.42363281250002,50.94628906249997],[80.44804687500002,51.18334960937503],[80.73525390625,51.29340820312498],[81.12724609375002,51.19106445312502],[81.0714843750001,50.96875],[81.38828125000006,50.95649414062501],[81.46591796875006,50.73984375],[82.49394531250007,50.72758789062499],[82.76083984375012,50.89335937500002],[83.35732421875005,50.99458007812504],[83.94511718750007,50.774658203125],[84.32324218749997,50.239160156249966],[84.9894531250001,50.061425781249994],[85.2326171875001,49.61582031249998],[86.1808593750001,49.49931640624996],[86.67548828125004,49.77729492187501],[86.62646484374997,49.56269531250001],[87.32285156250012,49.085791015625006]]]]},"properties":{"name":"Kazakhstan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[35.325292968750006,5.364892578124994],[35.745019531249994,5.343994140625],[35.80029296874997,5.156933593749983],[35.77929687499997,5.105566406250006],[35.756152343750074,4.950488281250031],[35.76308593750005,4.808007812500051],[36.02197265625003,4.468115234374991],[36.90556640625002,4.411474609374991],[37.15458984375002,4.254541015624994],[37.944921875,3.746728515625023],[38.0861328125001,3.648828124999966],[38.22529296875004,3.61899414062502],[38.45156250000005,3.604833984374977],[38.608007812500006,3.600097656249986],[39.49443359375002,3.45610351562496],[39.65751953125002,3.577832031249983],[39.79033203125002,3.754248046875034],[39.8421875,3.851464843750037],[40.765234375,4.273046875000034],[41.02080078125002,4.057470703124991],[41.22089843750004,3.943554687499969],[41.372460937499994,3.94619140624998],[41.48193359375003,3.96328125],[41.737695312499994,3.979052734375003],[41.88398437500004,3.977734375000011],[41.6134765625001,3.59047851562498],[41.34179687499997,3.20166015625],[40.964453125,2.814648437500026],[40.9787109375001,-0.870312500000011],[41.249804687500074,-1.220507812499946],[41.4269531250001,-1.449511718749974],[41.521875,-1.572265625000028],[41.53271484374997,-1.695312499999957],[41.26748046875005,-1.945019531250026],[40.889746093750006,-2.023535156250034],[40.89824218750002,-2.269921874999966],[40.64414062500006,-2.53945312499998],[40.22246093750002,-2.688378906250037],[40.1154296875001,-3.250585937499991],[39.8609375,-3.576757812500006],[39.49091796875004,-4.478417968750023],[39.221777343750006,-4.692382812500014],[37.608203125000074,-3.497070312500028],[37.643847656250074,-3.045410156250028],[33.90322265625005,-1.002050781250034],[33.94316406250002,0.173779296874969],[34.160937500000074,0.605175781250026],[34.4108398437501,0.867285156250034],[34.48173828125002,1.042138671875051],[34.79863281250002,1.24453125],[34.976464843749994,1.719628906250051],[34.97753906249997,1.861914062499991],[34.9640625000001,2.06240234374998],[34.8830078125001,2.417919921875026],[34.90576171875003,2.4796875],[34.44785156250006,3.163476562500037],[34.40722656249997,3.357519531250034],[34.39941406249997,3.412695312500006],[34.44179687499999,3.60625],[34.43769531250004,3.650585937499969],[34.392871093750074,3.691503906250048],[34.26708984375003,3.733154296875],[34.16503906250003,3.812988281250014],[34.18574218750004,3.869775390625037],[34.13203125000004,3.889160156249986],[33.97607421874997,4.220214843750028],[34.176855468750006,4.419091796875037],[34.38017578125002,4.620654296874974],[34.6398437500001,4.875488281250028],[34.878320312499994,5.109570312500026],[35.08447265624997,5.31186523437502],[35.268359375000074,5.492285156250006],[35.325292968750006,5.364892578124994]]]},"properties":{"name":"Kenya","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[72.63994140625002,39.385986328125],[72.22998046875,39.20751953125],[72.14736328125002,39.2607421875],[72.08417968750001,39.31064453125],[72.04277343750002,39.3521484375],[71.77861328125002,39.277978515624994],[71.73222656250002,39.422998046874994],[71.50332031250002,39.478808593749996],[71.51738281250002,39.553857421874994],[71.50302734375,39.582177734374994],[71.4703125,39.603662109374994],[70.79931640625,39.3947265625],[70.50117187500001,39.587353515625],[69.29765625000002,39.524804687499994],[69.2447265625,39.827099609375],[69.27880859375,39.917773437499996],[69.3072265625,39.968554687499996],[69.36542968750001,39.947070312499996],[69.43193359375002,39.909765625],[69.47626953125001,39.919726562499996],[69.47099609375002,39.990625],[69.46875,40.020751953125],[69.966796875,40.20224609375],[70.59921875,39.974511718749994],[70.990625,40.2548828125],[71.3046875,40.286914062499996],[71.69248046875,40.15234375],[72.13125,40.438623046874994],[72.3892578125,40.427392578124994],[72.40205078125001,40.578076171875],[72.6041015625,40.525439453124996],[73.13212890625002,40.82851562499999],[72.65830078125,40.869921875],[72.36406250000002,41.04345703125],[72.294921875,41.039941406249994],[72.21308593750001,41.0142578125],[72.18730468750002,41.025927734374996],[72.18095703125002,41.118457031249996],[72.16425781250001,41.173730468749994],[72.11542968750001,41.186572265624996],[72.05244140625001,41.16474609375],[71.95849609375,41.187060546874996],[71.87861328125001,41.19501953125],[71.8580078125,41.311376953125],[71.79248046875,41.413134765624996],[71.75771484375002,41.428027343749996],[71.70068359375,41.454003906249994],[71.66494140625002,41.5412109375],[71.6375,41.5341796875],[71.60224609375001,41.503271484375],[71.60625,41.367431640625],[71.54560546875001,41.308056640625],[71.5,41.307470703125],[71.4208984375,41.34189453125],[71.40839843750001,41.136035156249996],[71.39306640625,41.123388671875],[71.11074218750002,41.152636718749996],[70.86044921875,41.224902343749996],[70.734375,41.400537109374994],[70.18095703125002,41.571435546874994],[70.85664062500001,42.030810546874996],[71.0322265625,42.077783203124994],[71.228515625,42.162890625],[71.23232421875002,42.186279296875],[71.21269531250002,42.206445312499994],[71.12998046875,42.25],[71.03603515625002,42.28466796875],[70.97900390625,42.266552734375],[70.94677734375,42.248681640624994],[70.89287109375002,42.339990234374994],[71.25664062500002,42.733544921874994],[71.42207031250001,42.783154296875],[71.5142578125,42.766943359375],[71.76054687500002,42.821484375],[72.16181640625001,42.760693359375],[72.27578125000002,42.757666015625],[72.54316406250001,42.677734375],[72.7529296875,42.637890625],[72.855078125,42.5611328125],[73.28291015625001,42.5041015625],[73.316015625,42.4669921875],[73.41162109375,42.419775390625],[73.49296875000002,42.409033203125],[73.421875,42.593505859375],[73.4501953125,42.703027343749994],[73.55625,43.002783203125],[73.88603515625002,43.132568359375],[74.20908203125,43.240380859374994],[75.04765625000002,42.90439453125],[75.68173828125,42.83046875],[75.78955078125,42.932910156249996],[75.84033203125,42.9375],[75.9322265625,42.928515625],[76.50917968750002,42.918896484375],[76.646484375,42.92880859375],[76.98808593749999,42.973583984375],[79.12666015625001,42.775732421875],[79.20302734375002,42.666015625],[79.29550781250003,42.604833984375],[79.36777343750003,42.547216796875],[79.42822265625,42.48349609375],[79.92109375000001,42.413134765624996],[80.0712890625,42.302978515625],[80.209375,42.1900390625],[80.24619140625003,42.059814453125],[80.23515624999999,42.04345703125],[80.21621093750002,42.032421875],[79.90966796875,42.014990234375],[79.84042968750003,41.995751953124994],[79.76611328125,41.898876953125],[78.74257812500002,41.56005859375],[78.54316406250001,41.4595703125],[78.44287109375,41.417529296874996],[78.36240234375003,41.371630859374996],[78.34628906250003,41.2814453125],[78.12343750000002,41.075634765625],[77.95644531250002,41.050683593749994],[77.81523437499999,41.055615234375],[77.71933593750003,41.024316406249994],[77.58173828125001,40.9927734375],[76.98662109374999,41.03916015625],[76.90771484375,41.024169921875],[76.82402343749999,40.982324218749994],[76.70839843750002,40.818115234375],[76.6611328125,40.779638671875],[76.63984375000001,40.742236328124996],[76.62216796875003,40.662353515625],[76.57792968749999,40.577880859375],[76.48017578125001,40.449511718749996],[76.39638671875002,40.389794921874994],[76.31855468750001,40.35224609375],[76.25830078125,40.43076171875],[75.87197265625002,40.30322265625],[75.67714843750002,40.305810546874994],[75.55556640625002,40.6251953125],[75.52080078125002,40.6275390625],[75.24101562500002,40.480273437499996],[75.111328125,40.4541015625],[75.0044921875,40.449511718749996],[74.865625,40.493505859375],[74.80126953125,40.428515625],[74.83046875000002,40.32851562499999],[74.41191406250002,40.13720703125],[74.24267578125,40.092041015625],[74.08515625000001,40.07431640625],[73.99160156250002,40.043115234374994],[73.93876953125002,39.978808593749996],[73.88457031250002,39.8779296875],[73.85625,39.828662109374996],[73.83535156250002,39.800146484375],[73.83974609375002,39.762841796874994],[73.88251953125001,39.71455078125],[73.9146484375,39.606494140624996],[73.90712890625002,39.57851562499999],[73.87275390625001,39.53330078125],[73.82294921875001,39.48896484375],[73.71572265625002,39.462255859375],[73.63164062500002,39.448876953124994],[73.47041015625001,39.460595703124994],[73.38740234375001,39.442724609375],[73.33613281250001,39.412353515625],[73.2349609375,39.374560546874996],[73.10927734375002,39.3619140625],[72.63994140625002,39.385986328125]],[[70.66416015625,39.85546875],[70.56708984375001,39.866601562499994],[70.49775390625001,39.882421875],[70.48281250000002,39.882714843749994],[70.4892578125,39.863037109375],[70.5595703125,39.790917968749994],[70.61210937500002,39.786767578124994],[70.70166015625,39.82529296875],[70.66416015625,39.85546875]],[[71.20615234375,39.892578125],[71.22871093750001,40.048144531249996],[71.08037109375002,40.079882812499996],[71.02412109375001,40.149169921875],[71.00546875,40.152294921875],[70.96064453125001,40.08798828125],[71.04482421875002,39.992529296875],[71.04365234375001,39.976318359375],[71.01171875,39.8951171875],[71.06425781250002,39.884912109374994],[71.15625,39.883447265624994],[71.20615234375,39.892578125]]]},"properties":{"name":"Kyrgyzstan","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[104.42636718750006,10.411230468749991],[103.87050781250005,10.655126953125034],[103.58710937500004,10.552197265625026],[103.54042968750005,10.668701171875043],[103.721875,10.890136718750043],[103.5324218750001,11.146679687499997],[103.35361328125006,10.921582031250054],[103.15283203124997,10.913720703125051],[103.12548828124997,11.460644531250011],[102.9486328125,11.773486328124974],[102.93388671875002,11.706689453125037],[102.73662109375007,12.089794921875011],[102.75566406250002,12.42626953125],[102.49960937500012,12.669970703125003],[102.33632812500005,13.560302734375014],[102.546875,13.585693359375043],[102.90927734375006,14.136718750000028],[103.19941406250004,14.332617187499977],[104.77900390625004,14.427832031250006],[105.07412109375005,14.227441406250037],[105.12597656250003,14.280957031250011],[105.16914062500004,14.336083984374966],[105.1833007812501,14.346240234374989],[105.18554687500003,14.319091796874972],[105.20703125000003,14.259375],[105.24570312500006,14.200537109374977],[105.35019531250006,14.109570312500011],[105.53154296875007,14.156152343749994],[105.73974609375003,14.084960937500057],[105.83144531250005,13.976611328125003],[105.9044921875001,13.924511718750054],[106.06679687500005,13.921191406250003],[106.12470703125004,14.049121093750031],[106.09667968749997,14.127099609375023],[106.00410156250004,14.262890624999983],[105.97890625,14.343017578125043],[106.00839843750012,14.357177734375],[106.1652343750001,14.372363281249989],[106.19072265625007,14.388134765624997],[106.22539062500002,14.476220703125009],[106.26796875,14.466210937500009],[106.35498046875003,14.454785156249997],[106.44697265625004,14.515039062500009],[106.50146484375003,14.578222656250006],[106.53115234375005,14.549414062499991],[106.5636718750001,14.505078125000026],[106.59921875000006,14.479394531250037],[106.66542968750005,14.441308593749994],[106.73818359375005,14.387744140625017],[106.78349609375002,14.335107421875037],[106.81992187500006,14.314697265625057],[106.91318359375006,14.329394531250031],[106.93808593750006,14.327343750000054],[106.99218750000003,14.391015624999966],[107.03017578125,14.425683593750009],[107.06240234375,14.415771484375043],[107.109375,14.416699218750054],[107.29267578125004,14.592382812500048],[107.37988281250003,14.555322265625051],[107.41474609375004,14.56289062499999],[107.51943359375005,14.705078125],[107.3314453125,14.126611328125009],[107.60546874999997,13.437792968750017],[107.47539062500002,13.030371093749963],[107.50644531250006,12.364550781250031],[107.39335937500002,12.260498046874972],[107.21210937500004,12.30400390624996],[106.70009765625,11.979296874999974],[106.41386718750002,11.9484375],[106.39921875000007,11.687011718750028],[106.0060546875001,11.758007812500011],[105.85146484375005,11.635009765625],[105.85605468750006,11.294287109375048],[106.16093750000002,11.037109375000057],[106.16396484375005,10.794921875],[105.85332031250007,10.86357421874996],[105.75507812500004,10.989990234375043],[105.40576171875003,10.95161132812504],[105.3146484375001,10.845166015625026],[105.04570312500002,10.911376953125014],[105.04638671874997,10.701660156250014],[104.85058593749997,10.534472656249974],[104.42636718750006,10.411230468749991]]]},"properties":{"name":"Cambodia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-157.34213867187503,1.855566406250034],[-157.17578125,1.73984375],[-157.57895507812498,1.902050781249997],[-157.43583984374993,1.84726562500002],[-157.365185546875,1.94609375],[-157.44189453125003,2.025048828125009],[-157.321875,1.968554687500045],[-157.34213867187503,1.855566406250034]]],[[[-159.3390625,3.923535156249983],[-159.27475585937503,3.796582031250054],[-159.40903320312503,3.87324218750004],[-159.3390625,3.923535156249983]]]]},"properties":{"name":"Kiribati","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[126.32695312500002,33.2236328125],[126.16562500000012,33.31201171875],[126.33769531250002,33.46040039062501],[126.90117187500002,33.51513671874997],[126.87285156250002,33.34116210937498],[126.32695312500002,33.2236328125]]],[[[126.23369140625002,34.370507812499994],[126.12285156250002,34.443945312500034],[126.34384765625012,34.544921875],[126.23369140625002,34.370507812499994]]],[[[126.17197265625006,34.73115234375001],[126.00751953125004,34.86748046874999],[126.07841796875002,34.914843750000045],[126.17197265625006,34.73115234375001]]],[[[128.0658203125,34.80585937500004],[128.05468750000003,34.70805664062502],[127.87343750000005,34.73496093749998],[127.8322265625001,34.87451171875],[128.0658203125,34.80585937500004]]],[[[128.74101562500007,34.798535156249955],[128.64667968750004,34.73686523437502],[128.48925781250003,34.86528320312496],[128.66796875000003,35.0087890625],[128.74101562500007,34.798535156249955]]],[[[126.52070312500004,37.73681640625003],[126.516015625,37.60468750000001],[126.42333984375003,37.62363281250006],[126.41162109374997,37.82265625000002],[126.52070312500004,37.73681640625003]]],[[[128.37460937500012,38.6234375],[129.41826171875002,37.059033203124955],[129.40351562500004,36.052148437499994],[129.57285156250006,36.05053710937503],[129.4191406250001,35.49785156249996],[129.07675781250006,35.12270507812502],[128.5109375000001,35.10097656250002],[128.44394531250012,34.87036132812503],[128.03623046875006,35.02197265625],[127.71484374999997,34.95468749999998],[127.71542968750012,34.72104492187498],[127.40429687499997,34.823095703125006],[127.47910156250012,34.625244140625],[127.324609375,34.463281249999966],[127.17343750000006,34.54614257812497],[127.24707031249997,34.755126953125],[126.89746093749997,34.438867187499966],[126.75478515625005,34.511865234374994],[126.53144531250004,34.31425781249999],[126.26445312500002,34.67324218750002],[126.52451171875006,34.697900390624966],[126.59335937500012,34.824365234374994],[126.42070312500002,34.823388671874966],[126.29111328125012,35.154150390625034],[126.61406250000007,35.57099609375004],[126.4884765625001,35.647070312500006],[126.75302734375006,35.871972656249994],[126.5404296875,36.166162109374966],[126.4876953125,36.69379882812498],[126.18085937500004,36.69160156249998],[126.16054687500005,36.77192382812501],[126.48701171875004,37.00747070312502],[126.78447265625007,36.94843749999998],[126.87207031249997,36.82446289062506],[126.97685546875002,36.93940429687501],[126.74638671875002,37.19355468750001],[126.63388671875012,37.78183593750006],[127.09033203125003,38.28388671875001],[128.03896484375,38.30854492187498],[128.37460937500012,38.6234375]]]]},"properties":{"name":"Korea","childNum":7}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[48.27539062499997,29.624316406250017],[48.17968750000003,29.611425781250063],[48.081445312499994,29.798925781250063],[48.1847656250001,29.978857421875034],[48.348242187500006,29.78266601562504],[48.27539062499997,29.624316406250017]]],[[[48.442480468750006,28.542919921874983],[47.671289062499994,28.53315429687504],[47.433203125,28.989550781250017],[46.53144531250004,29.09624023437499],[46.69375,29.259667968749966],[46.76933593750002,29.347460937500017],[46.90585937500006,29.5375],[47.14824218750002,30.0009765625],[47.64375,30.097314453125023],[47.75390624999997,30.076611328124955],[47.97871093750004,29.98281250000005],[48.00566406250002,29.835791015625034],[48.143457031249994,29.57246093750001],[47.96962890625005,29.61669921874997],[47.72265624999997,29.393017578124955],[48.0514648437501,29.355371093750023],[48.442480468750006,28.542919921874983]]]]},"properties":{"name":"Kuwait","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[102.12744140625011,22.37919921874999],[102.58251953125006,21.904296875000057],[102.66201171875008,21.676025390625057],[102.73857421875005,21.677929687500125],[102.77109375000015,21.70966796875001],[102.79824218750014,21.797949218750034],[102.81591796875,21.807373046875],[102.94960937500008,21.681347656250068],[102.85117187500009,21.26591796874999],[102.8837890625,21.202587890625068],[103.1044921875,20.89165039062499],[103.21074218749999,20.840625],[103.46357421874995,20.779833984375102],[103.6350585937501,20.697070312500102],[104.10136718750005,20.945507812500125],[104.1953125,20.91396484375008],[104.349609375,20.82109374999999],[104.58320312500001,20.646679687499955],[104.53271484375,20.554882812500125],[104.47861328124998,20.529589843750102],[104.40781250000015,20.485742187500023],[104.36777343750015,20.441406250000057],[104.39218750000015,20.424755859375068],[104.49619140625003,20.41367187499992],[104.61884765624995,20.374511718750114],[104.65644531250001,20.328515624999966],[104.66191406250005,20.289013671875125],[104.67695312500007,20.224707031249977],[104.69873046875006,20.205322265625114],[104.84785156250007,20.202441406250045],[104.88867187500006,20.169091796875023],[104.92919921874994,20.082812500000045],[104.92792968750007,20.01811523437499],[104.81513671875001,19.90400390625001],[104.80175781250011,19.836132812500068],[104.74316406250006,19.754736328124977],[104.58789062500006,19.61875],[104.54628906250014,19.610546875000068],[104.25986328125003,19.685498046875068],[104.06279296875005,19.678417968750068],[104.03203124999999,19.67514648437492],[104.0134765625001,19.646484374999943],[104.05156250000005,19.564160156250068],[104.06289062500002,19.482568359375136],[104.02753906250013,19.420458984375102],[103.93203125000002,19.366064453125034],[103.89638671875002,19.339990234375023],[103.89160156249994,19.30498046874999],[105.146484375,18.650976562499977],[105.14541015625014,18.616796874999977],[105.08701171875015,18.49624023437508],[105.11455078125005,18.405273437500057],[105.45820312500007,18.154296875000057],[105.51855468750011,18.077441406250045],[105.58847656250015,17.983691406249932],[105.69140625,17.737841796874932],[106.00625,17.415283203124943],[106.26953125,17.216796875000057],[106.33339843750002,17.14370117187508],[106.42597656250007,17.00253906250009],[106.50224609374999,16.9541015625],[106.52597656250003,16.876611328125023],[106.53369140625,16.821044921875057],[106.54619140625005,16.650732421874977],[106.65644531250013,16.492626953125125],[106.73955078124999,16.452539062500136],[106.79160156250015,16.490332031249977],[106.83242187500008,16.526269531250023],[106.85107421875,16.515625],[106.89277343750013,16.396533203125102],[106.93066406250006,16.353125],[107.39638671875008,16.04301757812499],[107.39199218750008,15.951660156250057],[107.36064453125005,15.921728515624977],[107.18886718750008,15.838623046875114],[107.16591796875002,15.802490234375],[107.27939453125003,15.618701171875045],[107.33876953125002,15.560498046875125],[107.56425781249999,15.3916015625],[107.62167968750015,15.309863281250045],[107.653125,15.255224609375091],[107.63369140625008,15.18984375000008],[107.58964843749999,15.118457031250102],[107.55527343750009,15.057031250000023],[107.48037109375014,14.979882812500136],[107.5046875000001,14.91591796875008],[107.52451171875003,14.871826171874943],[107.51376953124998,14.817382812500057],[107.51943359375008,14.705078125000114],[107.46513671875005,14.664990234375125],[107.41474609375007,14.56289062500008],[107.37988281250006,14.555322265625136],[107.29267578125007,14.592382812500034],[107.109375,14.416699218749955],[107.06240234375008,14.415771484374943],[107.03017578125008,14.425683593750023],[106.99218749999994,14.39101562500008],[106.93808593750015,14.327343750000068],[106.91318359375003,14.329394531249932],[106.81992187500003,14.314697265624943],[106.7834960937501,14.335107421875023],[106.73818359375008,14.387744140625102],[106.66542968750002,14.441308593750023],[106.59921875000003,14.479394531250136],[106.56367187500007,14.505078125000011],[106.53115234375002,14.549414062499977],[106.50146484375,14.578222656250034],[106.22539062500005,14.476220703125023],[106.1907226562501,14.388134765625011],[106.16523437500007,14.372363281249989],[106.00839843750009,14.357177734375114],[105.97890625000014,14.343017578125057],[106.00410156250013,14.262890625000068],[106.09667968750011,14.127099609375136],[106.12470703124995,14.049121093750045],[106.06679687500008,13.921191406250102],[105.90449218750007,13.924511718750068],[105.83144531250008,13.976611328124989],[105.73974609375006,14.084960937500057],[105.5315429687501,14.156152343750023],[105.35019531250009,14.109570312500125],[105.24570312500015,14.200537109374977],[105.20703125000006,14.259375],[105.18554687499994,14.319091796875],[105.18330078125001,14.346240234374989],[105.24365234375006,14.367871093749955],[105.34218750000008,14.416699218749955],[105.42265624999993,14.471630859374955],[105.47558593750006,14.530126953124977],[105.49736328125005,14.590673828125034],[105.52304687500015,14.843310546874989],[105.54667968749999,14.932470703125034],[105.53339843750013,15.041601562500091],[105.49042968750007,15.127587890625023],[105.49042968750007,15.256591796875],[105.615625,15.488281249999943],[105.63886718750013,15.585937499999943],[105.64101562500002,15.656542968749932],[105.62207031250006,15.699951171875114],[105.39892578125011,15.829882812500102],[105.40625,15.987451171875023],[105.33066406250003,16.037890625000045],[105.1487304687501,16.09355468749999],[105.04716796874999,16.16025390625009],[104.81933593749994,16.466064453125057],[104.75058593750015,16.647558593750034],[104.74355468750014,16.884375],[104.75898437500013,17.0771484375],[104.81601562499998,17.30029296875],[104.73964843750008,17.461669921875],[104.428125,17.698974609375057],[104.32265625000002,17.815820312500023],[104.19619140625002,17.988378906250034],[104.04873046875002,18.216699218749966],[103.94960937500008,18.318994140625023],[103.89882812500002,18.295312500000023],[103.79228515624999,18.31650390625009],[103.62968750000005,18.382568359375057],[103.48798828124995,18.41816406250001],[103.36699218750005,18.42333984375],[103.28828124999995,18.408398437499955],[103.25175781249999,18.373486328125125],[103.24892578125014,18.338964843750034],[103.27958984374999,18.304980468750045],[103.26318359375,18.278466796875136],[103.19970703125006,18.25947265625001],[103.14853515625009,18.221728515624932],[103.09121093750014,18.13823242187499],[103.05136718750003,18.02851562500001],[102.80742187500005,17.945556640625],[102.71757812500005,17.892236328125136],[102.67519531250014,17.851757812500068],[102.68007812500008,17.824121093750136],[102.66064453125,17.8179687499999],[102.61679687500015,17.833349609375034],[102.59824218750009,17.926757812500057],[102.55253906249999,17.965087890625057],[102.4587890625001,17.984619140624943],[102.35185546874999,18.045947265625045],[102.14824218750005,18.203857421875057],[102.10146484375014,18.21064453125001],[102.03457031250002,18.169824218750023],[101.94746093750001,18.081494140624955],[101.87548828125011,18.046435546874932],[101.81865234375005,18.064648437500125],[101.77480468750002,18.033398437500125],[101.6875,17.889404296875114],[101.56367187500001,17.820507812500125],[101.55507812500002,17.812353515625034],[101.41367187500015,17.71875],[101.16748046875011,17.4990234375],[101.10517578125001,17.479541015625102],[100.9084960937501,17.583886718750023],[101.14394531250008,18.14262695312499],[101.1375,18.286865234375057],[101.0505859375001,18.407031250000045],[101.04697265625003,18.441992187500034],[101.28632812499995,18.977148437500034],[101.19755859374999,19.327929687500045],[101.22080078125015,19.486621093750045],[101.21191406250011,19.548339843750057],[100.51357421875008,19.553466796875],[100.39765625000013,19.756103515625057],[100.51953125000006,20.177929687500068],[100.31796875000003,20.385888671875136],[100.2180664062501,20.339599609375114],[100.13974609375015,20.245410156250102],[100.11494140625007,20.25766601562492],[100.12246093750002,20.316650390625057],[100.12968750000005,20.372216796875023],[100.1838867187501,20.589111328124943],[100.2493164062501,20.730273437499932],[100.32607421875008,20.795703124999932],[100.40742187499995,20.823242187500057],[100.56513671875013,20.82509765625008],[100.62294921875002,20.85957031250001],[100.61767578125,20.87924804687509],[100.54931640625011,20.884228515625068],[100.5222656250001,20.921923828125102],[100.53613281250006,20.992382812500068],[100.703125,21.25136718750008],[101.0803710937501,21.46865234375008],[101.13886718750013,21.567480468749977],[101.19667968750002,21.522070312499977],[101.17539062500009,21.407519531250102],[101.21992187500013,21.342431640625136],[101.21181640625008,21.278222656250023],[101.22441406249999,21.22373046874992],[101.24785156249993,21.197314453125045],[101.28144531250007,21.184130859375045],[101.44355468750001,21.230810546874977],[101.54238281250008,21.234277343750136],[101.70478515625013,21.150146484375057],[101.728125,21.15639648437508],[101.78349609374999,21.204150390625045],[101.8005859375001,21.212597656249955],[101.7229492187501,21.314941406250057],[101.74726562500007,21.60576171874999],[101.7439453125001,21.77797851562508],[101.73652343750001,21.826513671874977],[101.52451171874998,22.253662109375],[101.56787109375011,22.2763671875],[101.6199218750001,22.327441406250102],[101.67148437500009,22.462304687500023],[101.70751953125,22.486572265625],[101.73876953125011,22.495263671874966],[101.75996093750001,22.490332031250034],[101.841796875,22.388476562500102],[102.02441406250006,22.439208984375114],[102.09150390625007,22.412255859375136],[102.12744140625011,22.37919921874999]]]},"properties":{"name":"Lao PDR","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[35.869140625,33.43173828125],[35.411230468750006,33.07568359375],[35.10859375000001,33.08369140625],[35.64785156250002,34.2482421875],[35.97626953125001,34.629199218749996],[36.383886718750006,34.65791015625],[36.32988281250002,34.499609375],[36.50439453125,34.432373046875],[36.5849609375,34.221240234374996],[36.27783203125,33.92529296875],[36.36503906250002,33.83935546875],[35.98613281250002,33.75263671875],[36.03447265625002,33.58505859375],[35.869140625,33.43173828125]]]},"properties":{"name":"Lebanon","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-8.486425781249977,7.558496093749994],[-8.408740234374989,7.411816406249997],[-8.324511718749989,6.920019531249991],[-8.587890625,6.490527343749989],[-8.287109375,6.319042968749997],[-7.981591796874994,6.2861328125],[-7.888623046874983,6.23486328125],[-7.800927734374994,6.038916015624991],[-7.730371093749994,5.919042968749991],[-7.636132812499994,5.90771484375],[-7.454394531249989,5.84130859375],[-7.39990234375,5.550585937499989],[-7.585058593749977,4.916748046875],[-7.574658203124983,4.572314453124989],[-7.544970703124989,4.351318359375],[-8.259033203125,4.589990234374994],[-9.132177734374977,5.054638671874997],[-10.2763671875,6.07763671875],[-11.291601562499977,6.688232421875],[-11.507519531249983,6.906542968749989],[-11.267675781249977,7.232617187499997],[-10.878076171874994,7.538232421874994],[-10.6474609375,7.759375],[-10.570849609374989,8.071142578124991],[-10.516748046874994,8.125292968749989],[-10.359814453124983,8.187939453124997],[-10.283203125,8.485156249999989],[-10.233056640624994,8.488818359374989],[-10.147412109374983,8.519726562499997],[-10.064355468749994,8.429882812499997],[-9.781982421875,8.537695312499991],[-9.518261718749983,8.34609375],[-9.369140625,7.703808593749997],[-9.463818359374983,7.415869140624991],[-9.11757812499999,7.215917968749991],[-8.8896484375,7.2626953125],[-8.659765624999977,7.688378906249994],[-8.486425781249977,7.558496093749994]]]},"properties":{"name":"Liberia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[25.150488281250006,31.654980468749997],[24.85273437500001,31.334814453125],[24.96142578125,30.678515625],[24.703222656250006,30.201074218749994],[24.980273437500017,29.181884765625],[24.980273437500017,25.5888671875],[24.980273437500017,21.995849609375],[24.9794921875,20.002587890624994],[23.980273437500017,19.99594726562499],[23.980273437500017,19.496630859375003],[20.14765625000001,21.38925781249999],[15.984082031250011,23.445214843749994],[14.97900390625,22.99619140624999],[14.215527343750011,22.619677734375003],[13.48125,23.18017578125],[11.967871093750006,23.517871093750003],[11.507617187500017,24.314355468749994],[10.686132812500006,24.55136718749999],[10.395898437500023,24.485595703125],[10.255859375,24.591015625],[10.000683593750011,25.332080078125003],[9.4482421875,26.067138671875],[9.491406250000011,26.333740234375],[9.883203125000023,26.630810546874997],[9.74755859375,27.330859375],[9.916015625,27.785693359374996],[9.805273437500006,29.176953125],[9.310253906250011,30.115234375],[9.51875,30.229394531249994],[9.89501953125,30.3873046875],[9.932519531250023,30.425341796874996],[10.059765625000011,30.580078125],[10.21640625,30.783203125],[10.114941406250011,31.463769531249994],[10.274609375000011,31.684960937499994],[10.475781250000011,31.736035156249997],[10.60888671875,31.929541015625],[10.826367187500011,32.0806640625],[11.005175781250017,32.172705078125],[11.168261718750017,32.256738281249994],[11.358007812500006,32.34521484375],[11.504980468750006,32.413671875],[11.535937500000017,32.47333984375],[11.533789062500006,32.524951171874996],[11.453906250000017,32.642578125],[11.453906250000017,32.781689453125],[11.459179687500011,32.897363281249994],[11.467187500000023,32.965722656249994],[11.504589843750011,33.181933593749996],[11.657128906250023,33.118896484375],[11.8134765625,33.093701171875],[12.279882812500006,32.858544921874994],[12.753515625,32.801074218749996],[13.283496093750017,32.9146484375],[15.176562500000017,32.391162109374996],[15.705957031250023,31.426416015624994],[17.830468750000023,30.927587890625],[18.669824218750023,30.415673828124994],[19.12373046875001,30.26611328125],[19.713281250000023,30.48837890625],[20.11152343750001,30.963720703125],[19.926367187500006,31.817529296874994],[20.121484375000023,32.21875],[20.62109375,32.58017578125],[21.63593750000001,32.937304687499996],[22.187402343750023,32.918261718749996],[23.090625,32.61875],[23.10625,32.331445312499994],[23.28632812500001,32.213818359375],[24.129687500000017,32.009228515625],[24.878515625,31.984277343749994],[25.150488281250006,31.654980468749997]]]},"properties":{"name":"Libya","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-60.89521484375,13.821972656249997],[-60.951416015625,13.717578125],[-61.073144531249994,13.865576171874991],[-60.908105468749994,14.09335937499999],[-60.89521484375,13.821972656249997]]]},"properties":{"name":"Saint Lucia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[79.87480468750002,9.050732421875026],[79.90371093750005,8.975],[79.74765625000006,9.104589843749991],[79.87480468750002,9.050732421875026]]],[[[79.98232421875,9.812695312500011],[80.25283203125005,9.796337890625054],[80.71113281250004,9.366357421875023],[81.226953125,8.50551757812498],[81.37285156250002,8.431445312499989],[81.42216796875007,8.147851562500023],[81.87412109375012,7.288330078124986],[81.86142578125012,6.901269531249994],[81.63740234375004,6.425146484374991],[80.72412109375003,5.97905273437496],[80.26738281250007,6.009765625],[80.09531250000012,6.153173828125006],[79.859375,6.829296874999983],[79.71298828125012,8.18232421875004],[79.74980468750007,8.294238281250003],[79.78349609375007,8.018457031250051],[79.92890625000004,8.899218749999974],[80.09960937499997,9.209960937500043],[80.08632812500005,9.577832031250026],[80.42832031250006,9.480957031250014],[80.04580078125005,9.649902343749972],[79.98232421875,9.812695312500011]]]]},"properties":{"name":"Sri Lanka","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[28.646875,-30.1265625],[28.39208984375,-30.147558593750006],[28.128710937500017,-30.52509765625001],[28.05683593750001,-30.63105468750001],[27.753125,-30.6],[27.364062500000017,-30.27919921875001],[27.19355468750001,-29.94130859375001],[27.056933593750017,-29.625585937500006],[27.29453125,-29.519335937500003],[27.73554687500001,-28.940039062500006],[27.959863281250023,-28.873339843750003],[28.084375,-28.77998046875001],[28.23261718750001,-28.701269531250006],[28.471875,-28.615820312500006],[28.583398437500023,-28.594140625],[28.625781250000017,-28.58173828125001],[29.301367187500006,-29.08984375],[29.38671875,-29.31972656250001],[29.34882812500001,-29.441992187500006],[29.293554687500006,-29.56689453125],[29.1421875,-29.700976562500003],[29.098046875000023,-29.919042968750006],[28.646875,-30.1265625]]]},"properties":{"name":"Lesotho","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[20.957812500000074,55.27890625000006],[20.89980468750008,55.286669921875045],[21.11484375,55.61650390624999],[20.957812500000074,55.27890625000006]]],[[[25.573046875000017,54.139892578125],[25.497363281250045,54.17524414062501],[25.52734375000003,54.21513671874996],[25.505664062500045,54.26494140624999],[25.46113281250004,54.29277343749996],[25.179492187500017,54.214257812499966],[25.111425781250006,54.15493164062505],[25.04609375000004,54.13305664062503],[24.869531250000023,54.14516601562502],[24.82568359374997,54.118994140625006],[24.78925781250001,53.99824218750001],[24.768164062499977,53.97465820312499],[24.31796875,53.892968749999966],[24.236621093750045,53.91997070312496],[24.19130859375005,53.95043945312503],[23.559082031250057,53.91982421875002],[23.484667968750074,53.939794921875006],[23.453613281250057,54.14345703125002],[23.3701171875,54.20048828124999],[23.282324218750063,54.240332031250034],[23.17031250000008,54.28144531249998],[23.0875,54.299462890624994],[23.042187500000068,54.30419921875],[23.01552734375005,54.34833984375001],[22.976757812500068,54.36635742187505],[22.89394531250008,54.390527343749994],[22.82373046874997,54.39580078124999],[22.766210937499977,54.356787109375034],[22.679882812500068,54.493017578125006],[22.684472656250023,54.56293945312504],[22.82470703125,54.87128906249998],[22.56728515625005,55.05913085937496],[22.072363281250034,55.06367187499998],[21.235742187500023,55.26411132812498],[21.237890625000034,55.455029296874955],[21.06191406250005,55.81342773437498],[21.053808593750006,56.02294921875003],[21.04609375000004,56.07006835937503],[21.31464843750004,56.18813476562502],[21.65351562500004,56.314550781250006],[22.084570312500034,56.40673828125006],[22.875585937500063,56.39643554687501],[22.96826171875003,56.38041992187502],[23.042968750000057,56.324072265625006],[23.119824218749983,56.330664062500006],[23.195898437500034,56.36713867187498],[24.120703125000063,56.26425781249998],[24.90302734375001,56.398193359375],[25.069921875,56.20039062500004],[25.663183593750063,56.104833984375006],[26.593554687500074,55.66752929687502],[26.590820312500057,55.62265625],[26.56660156250001,55.546484375000034],[26.51923828125004,55.448144531249994],[26.469531250000045,55.371923828125006],[26.457617187500006,55.342480468749955],[26.49531250000004,55.31801757812502],[26.68125,55.30644531249999],[26.76015625000008,55.29335937499999],[26.775683593750045,55.27309570312502],[26.601171875000034,55.130175781250045],[26.291796875000074,55.13959960937501],[26.250781250000045,55.12451171875006],[26.175195312500023,55.003271484375034],[26.092968750000068,54.96230468750005],[25.964453124999977,54.947167968749966],[25.85927734375005,54.91928710937498],[25.722460937500074,54.71787109374998],[25.731640625000068,54.59038085937502],[25.72480468750001,54.564257812500045],[25.68515625,54.53579101562502],[25.62031250000004,54.46040039062501],[25.56757812500004,54.377050781250006],[25.54736328125,54.33183593750002],[25.55751953125005,54.310693359374994],[25.702539062499994,54.29296875],[25.765234374999977,54.179785156250034],[25.573046875000017,54.139892578125]]]]},"properties":{"name":"Lithuania","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[6.4873046875,49.798486328124994],[6.344335937500006,49.452734375],[6.181054687500023,49.498925781249994],[6.119921875000017,49.485205078125],[6.074121093750023,49.454638671874996],[6.011425781250011,49.445458984374994],[5.95947265625,49.454638671874996],[5.928906250000011,49.4775390625],[5.9013671875,49.48974609375],[5.823437500000011,49.505078125],[5.789746093750011,49.53828125],[5.776710379464286,49.639953962053575],[5.744042968750023,49.91962890625],[5.7880859375,49.961230468749996],[5.8173828125,50.0126953125],[5.866894531250011,50.0828125],[5.976269531250011,50.1671875],[6.089062500000011,50.154589843749996],[6.110058593750011,50.123779296875],[6.116503906250017,50.120996093749994],[6.109765625000023,50.034375],[6.13818359375,49.97431640625],[6.204882812500017,49.91513671875],[6.272327008928583,49.887234933035714],[6.4873046875,49.798486328124994]]]},"properties":{"name":"Luxembourg","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[28.14794921875,56.142919921875],[27.576757812500006,55.798779296875],[27.052539062500017,55.83056640625],[26.593554687500017,55.667529296874996],[25.663183593750006,56.104833984375],[25.069921875,56.200390625],[24.90302734375001,56.398193359375],[24.120703125,56.2642578125],[23.81269531250001,56.329248046875],[23.195898437500006,56.367138671875],[23.11982421875001,56.3306640625],[23.04296875,56.324072265625],[22.875585937500006,56.396435546875],[22.084570312500006,56.40673828125],[21.730566406250006,56.325976562499996],[21.65351562500001,56.31455078125],[21.31464843750001,56.188134765625],[21.04609375000001,56.070068359375],[21.0712890625,56.82373046875],[21.72871093750001,57.57099609375],[22.554589843750023,57.724267578125],[23.28730468750001,57.08974609375],[23.647753906250017,56.971044921875],[24.382617187500017,57.250048828124996],[24.322558593750017,57.87060546875],[24.3625,57.866162109375],[24.458886718750023,57.907861328125],[25.11103515625001,58.063427734375],[25.27265625000001,58.009375],[25.66015625,57.920166015625],[26.29804687500001,57.60107421875],[26.532617187500023,57.531005859375],[26.96601562500001,57.609130859375],[27.187109375,57.538330078125],[27.326562500000023,57.52548828125],[27.4697265625,57.5240234375],[27.538671875,57.42978515625],[27.796875,57.316943359374996],[27.82861328125,57.293310546875],[27.838281250000023,57.247705078125],[27.83027343750001,57.194482421875],[27.639453125000017,56.845654296875],[27.806054687500023,56.86708984375],[27.8486328125,56.85341796875],[27.89208984375,56.741064453125],[28.00751953125001,56.599853515625],[28.103125,56.545703125],[28.11083984375,56.510693359375],[28.169238281250017,56.386865234375],[28.191699218750017,56.315576171875],[28.202050781250023,56.260400390625],[28.14794921875,56.142919921875]]]},"properties":{"name":"Latvia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[28.2125,45.450439453125],[28.07470703125,45.598974609375],[28.23945312500001,46.6408203125],[28.07177734375,46.978417968749994],[27.614062500000017,47.34052734375],[26.980761718750017,48.155029296875],[26.618945312500017,48.25986328125],[26.640429687500017,48.294140625],[26.847070312500023,48.387158203125],[26.90058593750001,48.371923828125],[27.228515625,48.371435546875],[27.549218750000023,48.477734375],[28.34052734375001,48.144433593749994],[28.42304687500001,48.146875],[29.125390625000023,47.96455078125],[29.134863281250006,47.489697265625],[29.455664062500006,47.292626953124994],[29.57197265625001,46.964013671874994],[29.7197265625,46.88291015625],[29.877832031250023,46.82890625],[29.942480468750006,46.723779296874994],[29.93476562500001,46.625],[29.92431640625,46.538867187499996],[30.13105468750001,46.423095703125],[30.07568359375,46.377832031249994],[29.878027343750006,46.360205078125],[29.837890625,46.350537109375],[29.458789062500017,46.453759765624994],[29.30488281250001,46.466601562499996],[29.22382812500001,46.376953125],[29.20458984375,46.379345703125],[29.20078125,46.50498046875],[29.18623046875001,46.523974609374996],[29.146289062500017,46.526904296874996],[28.958398437500023,46.45849609375],[28.92744140625001,46.424121093749996],[28.930566406250023,46.362255859375],[28.94375,46.288427734375],[29.00625,46.17646484375],[28.971875,46.12763671875],[28.94775390625,46.049951171874994],[28.849511718750023,45.978662109374994],[28.73876953125,45.937158203124994],[28.729296875000017,45.852001953125],[28.667578125,45.793847656249994],[28.562304687500017,45.735791015625],[28.491601562500023,45.665771484375],[28.4990234375,45.517724609374994],[28.310351562500017,45.498583984374996],[28.26484375000001,45.48388671875],[28.2125,45.450439453125]]]},"properties":{"name":"Moldova","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[49.936425781249994,-16.90292968750002],[49.82402343750002,-17.08652343750002],[50.02304687500006,-16.6953125],[49.936425781249994,-16.90292968750002]]],[[[48.3421875,-13.363867187500034],[48.21191406250003,-13.385253906249957],[48.191210937500074,-13.259960937500011],[48.308886718750074,-13.198242187499957],[48.3421875,-13.363867187500034]]],[[[49.53828125000004,-12.432128906250014],[49.9375,-13.072265624999957],[50.23535156249997,-14.732031249999963],[50.482714843750074,-15.385644531249994],[50.20898437499997,-15.960449218750028],[50.02041015625005,-15.801757812500028],[49.89257812500003,-15.457714843750011],[49.664355468750074,-15.521582031249977],[49.83906250000004,-16.486523437499997],[49.76718750000006,-16.815136718749983],[49.44931640625006,-17.240625],[49.477832031250074,-17.89853515624999],[49.362890625,-18.336328125],[47.934472656249994,-22.393945312500023],[47.55800781250005,-23.874609374999963],[47.17734375,-24.787207031249977],[46.72851562499997,-25.14990234374997],[46.15869140624997,-25.230371093750023],[45.5080078125001,-25.56318359374997],[45.2057617187501,-25.57050781250004],[44.0353515625001,-24.995703125],[43.670019531250006,-24.30029296875],[43.722265625,-23.529687500000037],[43.2648437500001,-22.38359375],[43.29052734374997,-21.93251953124998],[43.50185546875005,-21.356445312499957],[43.800195312499994,-21.179199218749986],[44.40468750000005,-19.922070312500026],[44.44882812500006,-19.42871093749997],[44.23876953124997,-19.075195312499986],[44.23310546875004,-18.740625],[44.04003906249997,-18.288476562500023],[43.979394531249994,-17.3916015625],[44.42138671874997,-16.70263671874997],[44.476171875,-16.217285156249957],[44.90917968749997,-16.174511718750026],[45.2228515625001,-15.95048828124996],[45.3421875,-16.03671875000002],[45.598242187500006,-15.992578125],[45.70019531249997,-15.813769531249989],[46.157519531250074,-15.738281249999972],[46.3996093750001,-15.924609375000017],[46.331445312499994,-15.713671875000031],[46.47509765625003,-15.513476562500003],[46.942285156249994,-15.219042968749974],[47.09921875,-15.43417968750002],[47.092578125000074,-15.150097656249969],[47.35195312500005,-14.766113281249986],[47.46474609375005,-14.713281249999966],[47.47832031250002,-15.009375],[47.77402343750006,-14.63671875],[47.964160156250074,-14.672558593750026],[47.773339843749994,-14.369921875],[47.995507812499994,-13.960449218749986],[47.88359375000002,-13.807519531250009],[47.94101562500006,-13.662402343750017],[48.03984375000002,-13.596289062499963],[48.25527343750005,-13.719335937499977],[48.796484375,-13.267480468750023],[48.91943359375003,-12.839062499999969],[48.78632812500004,-12.470898437500011],[48.931738281250006,-12.4390625],[49.20703124999997,-12.079589843749957],[49.53828125000004,-12.432128906250014]]]]},"properties":{"name":"Madagascar","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-91.68369140624998,18.677343750000034],[-91.81611328124995,18.675878906250006],[-91.53671874999998,18.760009765625],[-91.68369140624998,18.677343750000034]]],[[[-86.93964843750001,20.303320312500006],[-86.97797851562498,20.489794921875074],[-86.76328124999995,20.579052734374955],[-86.93964843750001,20.303320312500006]]],[[[-106.50224609374999,21.61083984375003],[-106.60703124999993,21.561474609374983],[-106.63935546874995,21.697851562499977],[-106.50224609374999,21.61083984375003]]],[[[-110.56738281249994,25.003466796875017],[-110.5388671875,24.89155273437504],[-110.69926757812499,25.081445312499994],[-110.56738281249994,25.003466796875017]]],[[[-112.05727539062498,24.545703125000017],[-112.29677734375002,24.789648437500063],[-112.15942382812501,25.28564453125003],[-112.19501953124998,24.841064453125057],[-112.05727539062498,24.545703125000017]]],[[[-111.10029296874998,26.020605468750006],[-111.224658203125,25.83588867187504],[-111.18291015625002,26.040625],[-111.10029296874998,26.020605468750006]]],[[[-115.17060546875001,28.06938476562496],[-115.35292968750002,28.103955078124983],[-115.23354492187495,28.36835937500004],[-115.17060546875001,28.06938476562496]]],[[[-112.20307617187503,29.00532226562504],[-112.27841796875,28.769335937500017],[-112.51406249999997,28.847607421874955],[-112.42353515625,29.203662109375017],[-112.28505859374994,29.240429687499955],[-112.20307617187503,29.00532226562504]]],[[[-113.15561523437502,29.05224609375],[-113.49633789062497,29.30761718749997],[-113.58720703125002,29.57304687499996],[-113.20214843749999,29.301855468750034],[-113.15561523437502,29.05224609375]]],[[[-97.14624023437494,25.961474609375045],[-97.66767578124995,24.389990234374977],[-97.84248046874995,22.510302734375017],[-97.76328124999998,22.105859374999966],[-97.31450195312496,21.56420898437503],[-97.40917968749997,21.272558593750034],[-97.38344726562497,21.56669921874999],[-97.75380859375002,22.02666015624999],[-97.18632812499996,20.717041015625],[-96.45605468749994,19.869775390624966],[-96.28955078124994,19.34375],[-95.778125,18.805517578125034],[-95.92036132812495,18.81958007812497],[-95.62680664062503,18.690576171874994],[-95.71982421874998,18.768359375000017],[-95.18183593749995,18.700732421875017],[-94.79814453124996,18.51459960937501],[-94.45976562499993,18.166650390624994],[-93.55234375,18.430468750000017],[-92.88476562499997,18.468652343749966],[-92.44101562499998,18.67529296874997],[-91.97377929687502,18.715869140625074],[-91.91357421875,18.52851562500001],[-91.53398437499993,18.45654296875],[-91.27524414062498,18.62446289062501],[-91.34306640624996,18.900585937499955],[-91.43666992187502,18.889794921874966],[-90.73925781249994,19.352246093749955],[-90.69316406249996,19.729882812499966],[-90.49169921874997,19.94677734375003],[-90.353125,21.009423828124966],[-89.81977539062495,21.274609374999983],[-88.46669921874997,21.569384765625017],[-88.0068359375,21.604052734375045],[-87.25087890625,21.44697265625004],[-87.18828124999993,21.546435546875045],[-87.36850585937498,21.57373046875],[-87.034765625,21.592236328124955],[-86.824072265625,21.421679687500017],[-86.77177734374999,21.150537109375023],[-86.92622070312493,20.786474609375034],[-87.42138671875,20.23139648437501],[-87.44174804687498,19.861523437499983],[-87.68769531249998,19.63710937499999],[-87.6453125,19.55390625000001],[-87.42475585937498,19.583349609375063],[-87.65869140625003,19.352343750000074],[-87.65576171874997,19.25786132812499],[-87.50107421874998,19.287792968749983],[-87.76181640624998,18.446142578125006],[-87.88198242187497,18.27387695312501],[-88.05644531249996,18.524462890625074],[-88.03173828125,18.838916015625017],[-88.29565429687494,18.47241210937503],[-88.52299804687499,18.445898437500063],[-88.80634765624998,17.965527343749983],[-89.13354492187503,17.970800781249977],[-89.16147460937503,17.81484375],[-90.98916015624997,17.81640624999997],[-90.99296874999993,17.25244140625],[-91.19550781249998,17.254101562499983],[-91.40961914062501,17.255859375],[-90.975830078125,16.867822265624994],[-90.710693359375,16.708105468750034],[-90.65996093749996,16.630908203125045],[-90.634375,16.565136718749955],[-90.63408203125002,16.51074218749997],[-90.57578124999995,16.467822265625017],[-90.47109374999994,16.439550781250034],[-90.41699218750003,16.391015625000023],[-90.41699218750003,16.351318359375],[-90.45014648437493,16.261376953124994],[-90.45986328124997,16.16235351562497],[-90.44716796874994,16.07270507812501],[-90.52197265625,16.07119140625005],[-90.70322265624998,16.07104492187503],[-90.97958984374998,16.07080078124997],[-91.433984375,16.070458984374994],[-91.736572265625,16.070166015625006],[-91.95722656250001,15.703222656250034],[-92.08212890624998,15.495556640625011],[-92.18715820312497,15.320898437499963],[-92.07480468749998,15.074218749999972],[-92.09873046874998,15.026757812499994],[-92.14423828125001,15.001953125],[-92.158544921875,14.963574218749997],[-92.23515625,14.545410156249986],[-93.91606445312493,16.053564453125006],[-94.374169921875,16.284765625000034],[-94.426416015625,16.22626953125001],[-94.00126953124996,16.018945312499966],[-94.66152343750002,16.20190429687503],[-94.58710937499995,16.315820312499966],[-94.79082031249999,16.28715820312499],[-94.85869140624996,16.41972656249999],[-95.02084960937503,16.277636718750017],[-94.79941406249995,16.20966796875001],[-95.134375,16.17695312500001],[-96.21357421874993,15.693066406250011],[-96.80795898437495,15.726416015624977],[-97.18466796874998,15.909277343750006],[-97.75478515624994,15.966845703125017],[-98.52031249999993,16.30483398437505],[-98.76220703125,16.534765624999977],[-99.69067382812499,16.719628906249994],[-100.847802734375,17.20048828124999],[-101.91870117187494,17.959765625000045],[-102.69956054687495,18.062841796875006],[-103.44160156249995,18.32539062500001],[-103.91245117187496,18.828466796875006],[-104.9384765625,19.309375],[-105.482080078125,19.97607421875003],[-105.66943359374997,20.385595703124977],[-105.26015625,20.579052734374955],[-105.32705078124994,20.752978515625045],[-105.51083984374999,20.808740234375023],[-105.23706054687499,21.119189453125045],[-105.20869140624998,21.490820312499977],[-105.43144531249997,21.618261718750006],[-105.64912109375001,21.988085937500045],[-105.64550781249999,22.32690429687497],[-105.79179687500003,22.627490234375017],[-106.93549804687497,23.88125],[-107.76494140625002,24.47192382812497],[-107.52724609375001,24.36005859375001],[-107.51191406249998,24.489160156250023],[-107.95117187499994,24.614892578124966],[-108.28076171874994,25.08154296875],[-108.05146484374995,25.067041015624994],[-108.69638671874998,25.382910156250034],[-108.78725585937502,25.53803710937501],[-109.02880859375003,25.48046875000003],[-108.886572265625,25.733447265625045],[-109.19648437499998,25.59252929687503],[-109.38496093750001,25.727148437500006],[-109.42563476562495,26.032568359375063],[-109.19970703125003,26.30522460937499],[-109.11669921874999,26.25273437499996],[-109.27626953125,26.533886718749955],[-109.48286132812498,26.710351562500023],[-109.75478515624995,26.702929687500017],[-109.94399414062495,27.079345703125057],[-110.37729492187495,27.233300781249966],[-110.59267578124995,27.544335937500023],[-110.52988281249995,27.864208984374983],[-111.12138671875002,27.966992187499983],[-112.16176757812495,29.018896484375034],[-113.05766601562496,30.651025390625023],[-113.04672851562495,31.17924804687499],[-113.62348632812494,31.34589843750001],[-113.75942382812501,31.557763671874994],[-113.94775390625001,31.62934570312501],[-114.14931640624995,31.507373046875045],[-114.93359374999994,31.900732421874977],[-114.78989257812498,31.647119140624994],[-114.88188476562499,31.156396484375023],[-114.55048828124997,30.02226562499999],[-113.75546875,29.367480468750017],[-113.49970703124995,28.92670898437501],[-113.20556640624997,28.798779296874955],[-113.09365234375001,28.511767578125017],[-112.870849609375,28.42421875000005],[-112.73403320312501,27.825976562500017],[-112.32919921874996,27.52343750000003],[-111.86264648437495,26.678515625000017],[-111.6994140625,26.58095703125005],[-111.79526367187499,26.8796875],[-111.56967773437495,26.707617187500006],[-111.29160156249996,25.78979492187497],[-110.68676757812501,24.867675781250057],[-110.65932617187502,24.34145507812505],[-110.36743164062497,24.100488281249994],[-110.30375976562497,24.339453125],[-110.02280273437502,24.17460937499999],[-109.6765625,23.66157226562501],[-109.42084960937495,23.480126953124994],[-109.49570312500002,23.159814453125023],[-110.00625,22.894042968750057],[-110.3626953125,23.60493164062501],[-111.68291015625002,24.555810546875023],[-111.80249023437494,24.542529296875074],[-112.07255859374999,24.84003906250001],[-112.06987304687497,25.572851562500006],[-112.37724609374997,26.21391601562496],[-113.02075195312499,26.58325195312497],[-113.15581054687496,26.94624023437504],[-113.27226562499997,26.79096679687501],[-113.59853515625001,26.721289062500034],[-113.84096679687502,26.966503906249983],[-114.44526367187503,27.218164062499994],[-114.53989257812495,27.431103515624955],[-114.99350585937499,27.736035156249983],[-115.03647460937495,27.84184570312496],[-114.57001953124995,27.78393554687497],[-114.30058593749995,27.87299804687501],[-114.30224609375003,27.775732421875006],[-114.0693359375,27.67568359375005],[-114.15839843750003,27.919677734375],[-114.26586914062499,27.934472656249994],[-114.04848632812502,28.42617187499999],[-114.93730468749999,29.35161132812496],[-115.67382812500003,29.756396484375017],[-116.06215820312501,30.80415039062504],[-116.29628906250001,30.97050781249999],[-116.33344726562494,31.202783203124994],[-116.66215820312495,31.56489257812504],[-116.72207031249998,31.734570312499955],[-116.62080078124995,31.85107421874997],[-116.84799804687496,31.997363281250045],[-117.12827148437495,32.533349609374994],[-114.72475585937495,32.71533203125003],[-114.83593749999994,32.50830078125003],[-111.0419921875,31.32421875000003],[-108.21445312499993,31.329443359375034],[-108.21181640625002,31.779345703125017],[-106.44541015624996,31.768408203125006],[-106.14804687499995,31.450927734375],[-104.97880859374996,30.645947265624955],[-104.50400390624995,29.677685546874955],[-104.110595703125,29.386132812499994],[-103.16831054687498,28.998193359374994],[-102.8919921875,29.216406250000034],[-102.61494140624994,29.75234375],[-102.26894531249998,29.871191406250034],[-101.44038085937503,29.77685546875],[-100.75458984375001,29.182519531249994],[-100.29604492187495,28.32768554687499],[-99.50532226562497,27.54833984375003],[-99.45654296874999,27.05668945312496],[-99.10776367187498,26.446923828124994],[-97.37563476562497,25.871826171875],[-97.14624023437494,25.961474609375045]]]]},"properties":{"name":"Mexico","childNum":10}},{"geometry":{"type":"Polygon","coordinates":[[[22.344042968750017,42.31396484375],[22.836816406250023,41.993603515625],[23.00361328125001,41.73984375],[22.916015625,41.336279296875],[22.78388671875001,41.331982421875],[22.72480468750001,41.178515625],[22.603613281250006,41.140185546874996],[22.493554687500023,41.118505859375],[22.184472656250023,41.158642578125],[21.99335937500001,41.13095703125],[21.77949218750001,40.950439453125],[21.627539062500006,40.896337890625],[21.57578125,40.868945312499996],[20.964257812500023,40.849902343749996],[20.709277343750017,40.928369140624994],[20.48896484375001,41.272607421874994],[20.566210937500017,41.873681640624994],[20.725,41.87353515625],[20.778125,42.071044921875],[21.05976562500001,42.171289062499994],[21.28662109375,42.100390625],[21.389550781250023,42.21982421875],[21.560839843750017,42.24765625],[21.5625,42.247509765625],[21.81464843750001,42.303125],[22.344042968750017,42.31396484375]]]},"properties":{"name":"Macedonia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[4.227636718750006,19.142773437499997],[4.234667968750017,16.996386718750003],[4.121289062500011,16.357714843750003],[3.842968750000011,15.701708984375003],[3.5205078125,15.483105468749997],[3.504296875000023,15.356347656249994],[3.06015625,15.427197265624997],[3.001074218750006,15.340966796874994],[1.300195312500023,15.272265625],[0.947460937500011,14.982128906249997],[0.217480468750011,14.911474609374991],[-0.235888671874989,15.059423828124991],[-0.760449218749983,15.047753906249994],[-1.049560546875,14.81953125],[-1.97304687499999,14.45654296875],[-2.113232421874983,14.16845703125],[-2.586718749999989,14.227587890625003],[-2.873925781249994,13.950732421875003],[-2.950830078124994,13.6484375],[-3.248632812499977,13.658349609374994],[-3.3017578125,13.28076171875],[-3.527636718749989,13.182714843749991],[-3.947314453124989,13.402197265624991],[-4.151025390624994,13.306201171875003],[-4.328710937499977,13.119042968749994],[-4.227099609374989,12.793701171875],[-4.480615234374994,12.672216796874991],[-4.4287109375,12.337597656249997],[-4.699316406249977,12.076171875],[-5.288134765624989,11.827929687499989],[-5.250244140625,11.375781249999989],[-5.490478515625,11.042382812499994],[-5.523535156249977,10.426025390625],[-5.556591796874983,10.43994140625],[-5.694287109374983,10.43320312499999],[-5.843847656249977,10.389550781249994],[-5.896191406249983,10.354736328125],[-5.907568359374977,10.307226562499991],[-6.034570312499994,10.19482421875],[-6.1171875,10.201904296875],[-6.238378906249977,10.261621093749994],[-6.241308593749977,10.279199218749994],[-6.192626953125,10.369433593749989],[-6.190673828125,10.400292968749994],[-6.250244140625,10.717919921874994],[-6.482617187499983,10.561230468749997],[-6.564599609374994,10.58642578125],[-6.654150390624977,10.656445312499997],[-6.676367187499977,10.6337890625],[-6.686132812499977,10.578027343749994],[-6.691992187499977,10.512011718749989],[-6.669335937499994,10.3921875],[-6.693261718749994,10.349462890624991],[-6.950341796874994,10.342333984374989],[-7.01708984375,10.143261718749997],[-7.385058593749989,10.340136718749989],[-7.6611328125,10.427441406249997],[-7.990625,10.1625],[-8.007275390624983,10.321875],[-8.266650390624989,10.485986328124994],[-8.33740234375,10.990625],[-8.666699218749983,11.009472656249997],[-8.398535156249977,11.366552734374991],[-8.822021484375,11.673242187499994],[-8.818310546874983,11.922509765624994],[-9.043066406249977,12.40234375],[-9.395361328124977,12.464648437499989],[-9.358105468749983,12.255419921874989],[-9.754003906249977,12.029931640624994],[-10.274853515624983,12.212646484375],[-10.709228515625,11.898730468749989],[-10.933203124999977,12.205175781249991],[-11.30517578125,12.015429687499989],[-11.502197265625,12.198632812499994],[-11.389404296875,12.404394531249991],[-11.390380859375,12.941992187499991],[-11.634960937499983,13.369873046875],[-11.831689453124994,13.315820312499994],[-12.05419921875,13.633056640625],[-11.960888671874983,13.875292968750003],[-12.019189453124994,14.206494140624997],[-12.228417968749994,14.45859375],[-12.280615234374977,14.809033203124997],[-12.104687499999983,14.745361328125],[-12.08154296875,14.766357421875],[-12.021582031249977,14.804931640625],[-11.76015625,15.425537109375],[-11.675878906249977,15.512060546874991],[-11.502685546875,15.636816406249991],[-11.455224609374994,15.62539062499999],[-10.9482421875,15.151123046875],[-10.696582031249989,15.42265625],[-9.94140625,15.373779296875],[-9.446923828124994,15.458203125],[-9.447705078124983,15.574853515624994],[-9.426562499999989,15.623046875],[-9.3505859375,15.677392578124994],[-9.33544921875,15.525683593750003],[-9.293701171875,15.502832031249994],[-5.5125,15.496289062499997],[-5.359912109374989,16.282861328124994],[-5.509619140624977,16.442041015624994],[-5.628662109375,16.568652343750003],[-5.65625,16.8095703125],[-5.684765624999983,17.058251953124994],[-5.713183593749989,17.306884765625],[-5.74169921875,17.555566406249994],[-5.827099609374983,18.3015625],[-6.026416015624989,20.0421875],[-6.396582031249977,23.274804687499994],[-6.482031249999977,24.020800781250003],[-6.538964843749994,24.51816406249999],[-6.5673828125,24.766796875],[-6.594091796874977,24.99462890625],[-6.287207031249977,24.994824218749997],[-5.959814453124977,24.99497070312499],[-5.640771484374994,24.995166015625003],[-4.822607421874977,24.99560546875],[-1.947900390624994,23.124804687500003],[1.1455078125,21.102246093749997],[1.165722656250011,20.817431640625003],[1.610644531250017,20.555566406249994],[1.685449218750023,20.378369140624997],[3.130273437500023,19.85019531249999],[3.255859375,19.4109375],[3.119726562500006,19.103173828124994],[3.3564453125,18.986621093750003],[4.227636718750006,19.142773437499997]]]},"properties":{"name":"Mali","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[14.566210937499989,35.85273437499998],[14.436425781250023,35.82167968750005],[14.351269531250011,35.978417968749994],[14.566210937499989,35.85273437499998]]]},"properties":{"name":"Malta","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[98.18261718749997,9.933447265625006],[98.11806640625,9.877880859375054],[98.2916992187501,10.051318359375031],[98.18261718749997,9.933447265625006]]],[[[98.20976562500002,10.952734375],[98.27148437499997,10.73989257812498],[98.08046875000005,10.886621093750037],[98.20976562500002,10.952734375]]],[[[98.55380859375012,11.744873046875],[98.52841796875012,11.538671875],[98.43476562500004,11.567089843750026],[98.37646484374997,11.79150390625],[98.55380859375012,11.744873046875]]],[[[98.516015625,11.905029296875028],[98.46621093750005,12.08427734374996],[98.60957031250004,11.956640624999977],[98.516015625,11.905029296875028]]],[[[98.06611328125004,12.389794921875023],[98.00234375000005,12.279003906250011],[97.93867187500004,12.34609375],[98.06611328125004,12.389794921875023]]],[[[98.41396484375005,12.597949218749974],[98.45947265625003,12.473730468749991],[98.3138671875,12.335986328124989],[98.31210937500006,12.678173828124983],[98.41396484375005,12.597949218749974]]],[[[98.31542968749997,13.099072265625026],[98.30917968750012,12.934716796875023],[98.26533203125004,13.202246093749991],[98.31542968749997,13.099072265625026]]],[[[94.80488281250004,15.8193359375],[94.73349609375006,15.823046875000045],[94.82802734375005,15.933007812499966],[94.80488281250004,15.8193359375]]],[[[94.47675781250004,15.945947265625023],[94.41191406250007,15.848388671875057],[94.3878906250001,15.994140624999972],[94.60126953125004,16.205517578124983],[94.47675781250004,15.945947265625023]]],[[[97.575,16.253222656250017],[97.48037109375,16.305712890625045],[97.54199218749997,16.505078124999983],[97.575,16.253222656250017]]],[[[93.6908203125,18.68427734375004],[93.4875,18.867529296875063],[93.74472656250006,18.865527343750017],[93.6908203125,18.68427734375004]]],[[[93.71484374999997,19.558251953124994],[93.94570312500005,19.428613281249966],[93.90195312500012,19.33203125],[93.75585937500003,19.325683593750057],[93.64404296874997,19.49506835937501],[93.71484374999997,19.558251953124994]]],[[[93.49179687500012,19.892578125],[93.51328125000006,19.754785156249994],[93.41289062500002,19.950341796875023],[93.49179687500012,19.892578125]]],[[[93.01015625000005,19.923925781249977],[93.02324218750007,19.82885742187497],[92.91464843750006,20.086474609375045],[93.01015625000005,19.923925781249977]]],[[[101.1388671875001,21.567480468749977],[101.08037109375007,21.468652343749994],[100.703125,21.251367187499966],[100.613671875,21.059326171875],[100.56660156250004,21.038183593750063],[100.53613281250003,20.992382812499955],[100.52226562500007,20.92192382812499],[100.54931640624997,20.884228515624955],[100.61767578125003,20.879248046875006],[100.62294921875005,20.859570312499983],[100.5651367187501,20.825097656249994],[100.4074218750001,20.823242187500057],[100.32607421875005,20.795703125000045],[100.24931640625002,20.730273437500045],[100.18388671875002,20.589111328125057],[100.12968750000002,20.372216796874994],[100.12246093750005,20.316650390625057],[100.0036132812501,20.37958984375001],[99.9542968750001,20.415429687500023],[99.8903320312501,20.424414062499977],[99.72011718750005,20.32543945312497],[99.45888671875005,20.363037109375],[99.48593750000006,20.14985351562501],[99.07421875000003,20.09936523437503],[98.9166992187501,19.77290039062504],[98.37128906250004,19.68916015625004],[98.01503906250005,19.74951171874997],[97.816796875,19.459960937500057],[97.74589843750002,18.58818359374999],[97.37392578125,18.51796875],[97.63222656250005,18.290332031250074],[97.7064453125,17.79711914062503],[98.4388671875,16.975683593750034],[98.66074218750006,16.330419921875006],[98.83544921875003,16.417578125],[98.88828125000006,16.351904296875034],[98.81796875000012,16.180810546874994],[98.59238281250006,16.05068359375005],[98.55693359375007,15.367675781249986],[98.19101562500012,15.204101562499972],[98.20214843749997,14.97592773437502],[98.57001953125004,14.359912109375031],[99.13681640625006,13.716699218749994],[99.12392578125,13.030761718750043],[99.40507812500002,12.547900390625003],[99.61474609374997,11.781201171875026],[99.1901367187501,11.105273437499989],[98.7572265625,10.660937499999974],[98.70253906250005,10.19038085937504],[98.56259765625006,10.034960937499989],[98.46494140625006,10.675830078124989],[98.67558593750007,10.986914062500034],[98.74140625000004,11.591699218749966],[98.87597656250003,11.719726562500028],[98.63632812500006,11.738378906250006],[98.69628906250003,12.225244140624994],[98.6002929687501,12.2453125],[98.67871093749997,12.348486328124963],[98.57597656250002,13.161914062500031],[98.20039062500004,13.980175781250026],[98.14951171875012,13.647607421875037],[98.11064453125007,13.712890625000014],[98.10019531250006,14.161523437500023],[97.90976562500012,14.652685546874991],[98.01875,14.652587890625057],[97.81230468750007,14.858935546874989],[97.7103515625,15.875537109375074],[97.58427734375007,16.019580078125017],[97.72597656250005,16.56855468750004],[97.37587890625005,16.52294921874997],[97.20019531249997,17.095410156249983],[96.85146484375005,17.401025390624994],[96.90859375000005,17.03095703125001],[96.76542968750002,16.710351562499966],[96.43115234374997,16.504931640625045],[96.18906250000012,16.768310546875057],[96.32431640625006,16.444433593750063],[95.76328125000006,16.169042968750006],[95.38955078125005,15.722753906250034],[95.30146484375004,15.756152343749989],[95.34677734375012,16.09760742187501],[95.17695312500004,15.825683593750028],[94.9425781250001,15.818261718750023],[94.89316406250006,16.182812499999955],[94.66152343750005,15.904394531250006],[94.70332031250004,16.511914062499955],[94.4416015625001,16.094384765624966],[94.22382812500004,16.016455078125006],[94.58896484375006,17.5693359375],[94.17070312500007,18.73242187499997],[94.24570312500006,18.741162109374983],[94.07001953125004,18.893408203125006],[94.04492187500003,19.287402343750074],[93.92919921874997,18.89965820312503],[93.70546875000005,19.026904296875017],[93.49306640625005,19.369482421875006],[93.82490234375004,19.238476562499955],[93.99814453125006,19.440869140624983],[93.61171875000005,19.776074218749983],[93.70703125000003,19.912158203125074],[93.25,20.070117187500017],[93.12949218750012,19.858007812500063],[93.00195312499997,20.074853515624994],[93.06679687500005,20.377636718749955],[92.82832031250004,20.177587890625063],[92.89111328124997,20.34033203125],[92.73564453125007,20.56269531250001],[92.72285156250004,20.29560546875004],[92.32412109375,20.791845703125063],[92.17958984375005,21.293115234375023],[92.33056640624997,21.439794921874977],[92.63164062500002,21.306201171875045],[92.5934570312501,21.46733398437499],[92.58281250000002,21.940332031249994],[92.57490234375004,21.978076171875045],[92.68896484374997,22.130957031250006],[92.72099609375002,22.132421875000063],[92.77138671875,22.104785156250017],[92.9645507812501,22.003759765625034],[93.07060546875002,22.20942382812501],[93.16201171875,22.360205078125006],[93.07871093750006,22.71821289062501],[93.20390625000002,23.03701171875005],[93.34941406250007,23.08496093750003],[93.36601562500007,23.132519531249955],[93.32626953125006,24.064208984375057],[93.45214843750003,23.987402343750034],[93.68339843750007,24.00654296875004],[94.07480468750006,23.8720703125],[94.29306640625012,24.321875],[94.37724609375002,24.473730468750006],[94.49316406250003,24.637646484374983],[94.70371093750012,25.097851562499955],[94.55302734375007,25.215722656249994],[94.66777343750007,25.458886718749966],[94.99199218750002,25.77045898437504],[95.01523437500006,25.912939453125006],[95.0929687500001,25.98730468749997],[95.13242187500006,26.041259765625057],[95.12929687500005,26.070410156250034],[95.10839843749997,26.091406250000034],[95.06894531250006,26.19111328125001],[95.0597656250001,26.473974609375006],[95.20146484375007,26.641406250000017],[96.19082031250005,27.26127929687499],[96.79785156249997,27.29619140624999],[96.95341796875002,27.13330078125003],[97.10205078125003,27.11542968750004],[97.10371093750004,27.16333007812503],[96.90195312500012,27.439599609374994],[96.88359375000002,27.514843749999955],[96.96279296875,27.698291015625017],[97.04970703125005,27.760009765625],[97.34355468750002,27.982324218749994],[97.30273437499997,28.08598632812496],[97.3224609375001,28.21796875000004],[97.35644531249997,28.254492187500006],[97.43144531250002,28.353906250000023],[97.53789062500002,28.510205078124983],[97.59921875000006,28.51704101562504],[98.06162109375012,28.185888671874977],[98.29882812499997,27.550097656250045],[98.4525390625,27.6572265625],[98.65117187500007,27.572460937499983],[98.7384765625001,26.785742187500006],[98.68554687499997,26.189355468750023],[98.56406250000006,26.072412109374994],[98.65625,25.86357421874999],[98.33378906250007,25.586767578125006],[98.14287109375007,25.571093750000017],[98.01074218749997,25.292529296875017],[97.8195312500001,25.251855468749994],[97.73789062500006,24.869873046875057],[97.58330078125002,24.77480468750005],[97.53144531250004,24.49169921875003],[97.7082031250001,24.228759765625],[97.56455078125012,23.911035156250023],[98.2125,24.110644531250017],[98.83505859375006,24.121191406250034],[98.67675781250003,23.905078125000045],[98.8322265625001,23.624365234374977],[98.86376953125003,23.191259765625034],[99.41806640625006,23.069238281250023],[99.50712890625002,22.959130859374994],[99.19296875000006,22.12597656249997],[99.9176757812501,22.02802734375001],[99.94072265625007,21.75874023437504],[100.14765625000004,21.480517578125017],[100.60458984375012,21.471777343750006],[101.07978515625004,21.75585937499997],[101.1388671875001,21.567480468749977]]]]},"properties":{"name":"Myanmar","childNum":15}},{"geometry":{"type":"Polygon","coordinates":[[[19.21875,43.449951171875],[19.670996093750006,43.163964843749994],[20.344335937500006,42.827929687499996],[20.054296875,42.760058593749996],[20.06396484375,42.54726562499999],[19.78828125000001,42.476171875],[19.65449218750001,42.628564453124994],[19.280664062500023,42.17255859375],[19.342382812500006,41.869091796875],[18.436328125000017,42.559716796874994],[18.5458984375,42.6416015625],[18.46601562500001,42.777246093749994],[18.44384765625,42.96845703125],[18.46015625000001,42.997900390625],[18.48847656250001,43.012158203125],[18.623632812500006,43.027685546875],[18.621875,43.124609375],[18.674218750000023,43.230810546875],[18.74921875000001,43.283544921875],[18.85107421875,43.346337890624994],[18.934667968750006,43.339453125],[18.97871093750001,43.285400390625],[19.026660156250017,43.292431640625],[19.03671875,43.357324218749994],[18.940234375000017,43.496728515624994],[18.95068359375,43.526660156249996],[18.97421875,43.542333984375],[19.0283203125,43.532519531249996],[19.080078125,43.517724609374994],[19.11279296875,43.52773437499999],[19.164355468750017,43.535449218749996],[19.1943359375,43.53330078125],[19.21875,43.449951171875]]]},"properties":{"name":"Montenegro","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[111.878125,43.68017578125],[111.00722656250002,43.34140625],[110.400390625,42.773681640625],[109.44316406249999,42.455957031249994],[109.33984375,42.438378906249994],[108.68730468749999,42.41611328125],[108.17119140624999,42.447314453124996],[106.77001953125,42.288720703124994],[105.86757812500002,41.993994140625],[105.31435546875002,41.770898437499994],[105.19707031249999,41.738037109375],[105.11542968750001,41.66328125],[105.05058593749999,41.61591796875],[104.98203125000003,41.595507812499996],[104.49824218750001,41.65869140625],[104.49824218750001,41.877001953124996],[104.30517578125,41.846142578125],[103.99726562500001,41.79697265625],[103.71113281250001,41.751318359375],[103.07285156250003,42.00595703125],[102.5751953125,42.092089843749996],[102.15664062500002,42.158105468749994],[101.97294921874999,42.215869140624996],[101.65996093749999,42.500048828124996],[101.5791015625,42.52353515625],[101.49531250000001,42.53876953125],[101.09199218750001,42.551318359374996],[100.51904296875,42.616796875],[100.08632812500002,42.670751953125],[99.98378906250002,42.67734375],[99.46787109375003,42.568212890625],[97.20566406250003,42.789794921875],[96.38544921875001,42.720361328124994],[95.85957031250001,43.2759765625],[95.52558593750001,43.953955078125],[95.32558593750002,44.039355468749996],[95.35029296875001,44.278076171875],[94.71201171875003,44.350830078125],[93.51621093750003,44.944482421874994],[92.78789062499999,45.0357421875],[92.57890624999999,45.010986328125],[92.423828125,45.008935546874994],[92.17265624999999,45.03525390625],[92.02978515625,45.068505859374994],[91.584375,45.076513671875],[91.05,45.217431640624994],[90.87724609374999,45.19609375],[90.66181640625001,45.525244140625],[91.00175781249999,46.035791015624994],[90.99677734375001,46.10498046875],[90.94755859374999,46.177294921874996],[90.91152343750002,46.270654296874994],[90.98574218750002,46.7490234375],[90.91054687500002,46.883251953125],[90.86992187499999,46.954492187499994],[90.79902343750001,46.98515625],[90.71552734375001,47.003857421875],[90.49619140625003,47.28515625],[90.42519531250002,47.5041015625],[90.34746093749999,47.596972656249996],[90.33066406250003,47.655175781249994],[90.31328124999999,47.67617187499999],[90.19101562500003,47.702099609375],[90.10322265625001,47.745410156249996],[90.02792968750003,47.877685546875],[89.95869140625001,47.886328125],[89.91044921874999,47.8443359375],[89.83134765624999,47.823291015624996],[89.778125,47.827001953125],[89.56093750000002,48.003955078124996],[89.47919921875001,48.029052734375],[89.04765624999999,48.0025390625],[88.97109375000002,48.049951171874994],[88.91777343749999,48.089013671874994],[88.83828125000002,48.101708984374994],[88.68183593750001,48.170556640624994],[88.57597656249999,48.220166015625],[88.56679687500002,48.317431640624996],[88.51708984375,48.38447265625],[88.41396484375002,48.40341796875],[88.30996093750002,48.472070312499994],[87.97968750000001,48.555126953125],[88.06005859375,48.707177734374994],[87.83183593749999,48.791650390624994],[87.7431640625,48.881640625],[87.87216796875003,49.000146484374994],[87.81630859375002,49.0802734375],[87.8251953125,49.11630859375],[87.81425781249999,49.1623046875],[87.93476562500001,49.16455078125],[87.98808593749999,49.186914062499994],[88.02851562500001,49.219775390624996],[88.11572265625,49.256298828125],[88.19257812500001,49.451708984374996],[88.63320312500002,49.486132812499996],[88.83164062500003,49.4484375],[88.86386718750003,49.527636718749996],[88.90019531249999,49.539697265624994],[88.94541015625003,49.507666015625],[88.97060546875002,49.483740234375],[89.00839843750003,49.472802734374994],[89.10947265625003,49.501367187499994],[89.17998046874999,49.5322265625],[89.20292968749999,49.595703125],[89.24394531249999,49.62705078125],[89.39560546875003,49.6115234375],[89.475,49.66054687499999],[89.57919921875003,49.69970703125],[89.65410156249999,49.71748046875],[89.64384765624999,49.90302734375],[90.0537109375,50.09375],[90.65507812499999,50.22236328125],[90.71435546875,50.259423828124994],[90.7607421875,50.305957031249996],[91.02158203125003,50.415478515625],[91.23378906250002,50.452392578125],[91.30058593749999,50.46337890625],[91.3408203125,50.470068359375],[91.4150390625,50.468017578125],[91.44648437500001,50.52216796875],[91.80429687500003,50.693603515625],[92.10400390625,50.6919921875],[92.1923828125,50.700585937499994],[92.35478515624999,50.864160156249994],[92.42636718750003,50.803076171875],[92.62666015625001,50.68828125],[92.68134765625001,50.683203125],[92.73867187500002,50.7109375],[92.779296875,50.778662109375],[92.8564453125,50.789111328124996],[92.94130859375002,50.778222656249994],[93.103125,50.60390625],[94.25107421875003,50.556396484375],[94.35468750000001,50.221826171874994],[94.61474609375,50.023730468749996],[94.67548828125001,50.028076171875],[94.71806640624999,50.043261718749996],[94.93027343750003,50.04375],[95.11142578125003,49.935449218749994],[95.52265625000001,49.91123046875],[96.06552734375003,49.99873046875],[96.31503906250003,49.901123046875],[96.98574218750002,49.8828125],[97.20859375000003,49.730810546875],[97.35976562500002,49.741455078125],[97.58935546875,49.911474609375],[98.00390625,50.0142578125],[98.25029296874999,50.30244140625],[98.27949218750001,50.533251953124996],[98.14501953125,50.5685546875],[98.07890624999999,50.603808593749996],[98.02978515625,50.64462890625],[97.82529296875003,50.985253906249994],[98.103125,51.483544921874994],[98.64052734375002,51.801171875],[98.89316406250003,52.11728515625],[99.92167968749999,51.755517578125],[100.03457031250002,51.737109375],[100.23037109375002,51.729833984375],[100.46894531250001,51.72607421875],[100.53623046875003,51.7134765625],[101.38125,51.45263671875],[101.57089843750003,51.4671875],[101.82119140625002,51.421044921874994],[102.11152343750001,51.353466796875],[102.15566406250002,51.313769531249996],[102.16005859375002,51.26083984375],[102.14238281249999,51.216064453125],[102.15195312500003,51.10751953125],[102.19453125000001,51.050683593749994],[102.21503906250001,50.829443359375],[102.31660156250001,50.71845703125],[102.28837890624999,50.585107421874994],[103.30439453125001,50.20029296875],[103.63291015625003,50.138574218749994],[103.72324218750003,50.153857421874996],[103.80263671875002,50.176074218749996],[104.07871093750003,50.154248046875],[105.38359374999999,50.47373046875],[106.21787109375003,50.304589843749994],[106.36845703124999,50.317578125],[106.57441406250001,50.32880859375],[106.71113281250001,50.31259765625],[106.94130859375002,50.196679687499994],[107.04023437500001,50.086474609374996],[107.14306640625,50.033007812499996],[107.23330078125002,49.989404296874994],[107.34707031250002,49.986669921875],[107.63095703125003,49.98310546875],[107.91660156250003,49.947802734374996],[107.96542968750003,49.653515625],[108.40693359375001,49.396386718749994],[108.5224609375,49.34150390625],[108.61367187500002,49.322802734374996],[109.23671875000002,49.334912109375],[109.45371093750003,49.296337890625],[109.52871093750002,49.269873046875],[110.19990234375001,49.17041015625],[110.42783203125003,49.219970703125],[110.70976562499999,49.14296875],[110.82792968749999,49.166162109374994],[111.20419921875003,49.304296875],[111.33662109375001,49.35585937499999],[111.42929687500003,49.342626953125],[112.07968750000003,49.42421875],[112.49492187499999,49.53232421875],[112.69736328125003,49.507275390625],[112.80644531249999,49.523583984374994],[112.91484374999999,49.569238281249994],[113.05556640625002,49.616259765624996],[113.09208984374999,49.692529296874994],[113.16416015625003,49.797167968749996],[113.31904296875001,49.874316406249996],[113.44550781250001,49.9416015625],[113.57421875,50.00703125],[114.29707031250001,50.2744140625],[114.7431640625,50.233691406249996],[115.00332031250002,50.138574218749994],[115.27451171875003,49.948876953124994],[115.36503906249999,49.911767578124994],[115.42919921875,49.896484375],[115.58798828125003,49.886035156249996],[115.7177734375,49.880615234375],[115.79521484374999,49.905908203124994],[115.92597656250001,49.9521484375],[116.13457031249999,50.010791015624996],[116.216796875,50.00927734375],[116.35117187500003,49.978076171874996],[116.55117187500002,49.9203125],[116.68330078125001,49.823779296874996],[115.82050781250001,48.57724609375],[115.79169921875001,48.455712890624994],[115.79658203125001,48.346337890624994],[115.78554687500002,48.2482421875],[115.63945312499999,48.18623046875],[115.52509765625001,48.130859375],[115.61640625000001,47.874804687499996],[115.89824218749999,47.686914062499994],[115.99384765625001,47.71132812499999],[116.07480468750003,47.78955078125],[116.23115234375001,47.858203125],[116.31718749999999,47.85986328125],[116.37822265624999,47.844042968749996],[116.51347656249999,47.83955078125],[116.65195312500003,47.864501953125],[116.76054687499999,47.869775390624994],[116.90117187499999,47.853076171874996],[116.95166015625,47.836572265624994],[117.06972656250002,47.806396484375],[117.28593749999999,47.666357421875],[117.35078125000001,47.652197265625],[117.76835937499999,47.987890625],[118.49843750000002,47.983984375],[118.56777343750002,47.943261718749994],[118.69052734375003,47.822265625],[118.75996093750001,47.757617187499996],[118.88027343750002,47.72509765625],[119.017578125,47.685351562499996],[119.08193359375002,47.654150390625],[119.71113281250001,47.15],[119.89785156250002,46.8578125],[119.8671875,46.672167968749996],[119.74746093750002,46.627197265625],[119.70664062500003,46.606005859374996],[119.62021484375003,46.603955078125],[119.47402343750002,46.62666015625],[119.33183593749999,46.613818359374996],[119.162109375,46.638671875],[118.95712890625003,46.73486328125],[118.84394531250001,46.760205078125],[118.79033203124999,46.7470703125],[118.72294921874999,46.69189453125],[118.64873046874999,46.70166015625],[118.58046875000002,46.69189453125],[118.40439453125003,46.703173828124996],[118.30869140625003,46.717041015625],[118.15683593750003,46.678564453125],[118.0712890625,46.6666015625],[117.7412109375,46.5181640625],[117.546875,46.58828125],[117.43808593750003,46.586230468749996],[117.40556640624999,46.5708984375],[117.39218750000003,46.53759765625],[117.35634765625002,46.436669921874994],[117.35693359375,46.39130859375],[117.33339843750002,46.36201171875],[116.85908203125001,46.387939453125],[116.56259765625003,46.289794921875],[116.21298828125003,45.8869140625],[116.22910156250003,45.845751953124996],[116.240625,45.79599609375],[116.19765625000002,45.73935546875],[115.68105468750002,45.458251953125],[115.16259765625,45.390234375],[114.91923828124999,45.378271484375],[114.73876953125,45.41962890625],[114.56015625000003,45.389990234375],[114.41914062500001,45.202587890625],[114.16738281250002,45.049853515624996],[114.08027343750001,44.971142578125],[113.87705078125003,44.89619140625],[113.65263671874999,44.763476562499996],[113.58701171875003,44.745703125],[113.04941406250003,44.810351562499996],[112.70673828125001,44.883447265624994],[112.59677734375003,44.91767578125],[112.49931640624999,45.0109375],[112.41132812500001,45.058203125],[112.11289062500003,45.062939453125],[112.03261718750002,45.081640625],[111.89804687500003,45.0640625],[111.40224609375002,44.36728515625],[111.93173828125003,43.81494140625],[111.878125,43.68017578125]]]},"properties":{"name":"Mongolia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[145.75195312499997,15.133154296874991],[145.71318359375007,15.215283203125026],[145.821875,15.265380859375014],[145.75195312499997,15.133154296874991]]]},"properties":{"name":"N. Mariana Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[32.112890625,-26.839453125],[32.10595703125,-26.52001953125],[32.04140625000002,-26.28125],[32.060546875,-26.018359375],[31.9482421875,-25.957617187500006],[31.98583984375,-24.46064453125001],[31.799609375000017,-23.8921875],[31.54560546875001,-23.48232421875001],[31.287890625000017,-22.40205078125001],[31.429492187500017,-22.298828125],[32.429785156250006,-21.29707031250001],[32.353613281250006,-21.136523437500003],[32.49238281250001,-20.659765625],[32.992773437500006,-19.98486328125],[32.77763671875002,-19.388769531250006],[32.84980468750001,-19.10439453125001],[32.69970703125,-18.94091796875],[32.99306640625002,-18.35957031250001],[32.87626953125002,-16.88359375],[32.94804687500002,-16.71230468750001],[31.939843750000023,-16.428808593750006],[31.236230468750023,-16.02363281250001],[30.437792968750017,-15.995312500000011],[30.39609375,-15.64306640625],[30.231835937500023,-14.990332031250006],[33.201757812500006,-14.013378906250011],[33.63642578125001,-14.568164062500003],[34.375,-14.4248046875],[34.50527343750002,-14.59814453125],[34.54082031250002,-15.297265625],[34.24609375,-15.829394531250003],[34.528125,-16.319140625],[34.93339843750002,-16.760351562500006],[35.11210937500002,-16.898535156250006],[35.06464843750001,-17.07861328125],[35.124609375,-17.127246093750003],[35.20136718750001,-17.13105468750001],[35.272558593750006,-17.118457031250003],[35.29042968750002,-17.096972656250003],[35.28115234375002,-16.80781250000001],[35.22978515625002,-16.639257812500006],[35.178320312500006,-16.573339843750006],[35.16718750000001,-16.56025390625001],[35.242773437500006,-16.375390625],[35.358496093750006,-16.160546875],[35.59931640625001,-16.12587890625001],[35.70888671875002,-16.095800781250006],[35.75527343750002,-16.05830078125001],[35.79121093750001,-15.958691406250011],[35.89277343750001,-14.891796875000011],[35.86669921875,-14.86376953125],[35.84716796875,-14.6708984375],[35.6904296875,-14.465527343750011],[35.48847656250001,-14.201074218750009],[35.37578125000002,-14.058691406250006],[35.24746093750002,-13.896875],[35.01386718750001,-13.643457031250009],[34.61152343750001,-13.437890625],[34.54570312500002,-13.21630859375],[34.542578125,-13.108691406250003],[34.35781250000002,-12.164746093750011],[34.60625,-11.690039062500006],[34.65957031250002,-11.588671875],[34.82656250000002,-11.57568359375],[34.95947265625,-11.578125],[35.1826171875,-11.574804687500006],[35.41826171875002,-11.583203125000011],[35.50439453125,-11.604785156250003],[35.56435546875002,-11.60234375],[35.630957031250006,-11.58203125],[35.78544921875002,-11.452929687500003],[35.91132812500001,-11.4546875],[36.08222656250001,-11.537304687500011],[36.17548828125001,-11.609277343750009],[36.19130859375002,-11.670703125],[36.3056640625,-11.706347656250003],[36.97890625000002,-11.566992187500006],[37.37285156250002,-11.71044921875],[37.54169921875001,-11.675097656250003],[37.72480468750001,-11.580664062500006],[37.92021484375002,-11.294726562500003],[38.491796875,-11.413281250000011],[38.9875,-11.167285156250003],[39.81708984375001,-10.912402343750003],[39.98867187500002,-10.82080078125],[40.46357421875001,-10.46435546875],[40.61171875000002,-10.661523437500009],[40.48662109375002,-10.76513671875],[40.59716796875,-10.830664062500006],[40.40283203125,-11.33203125],[40.53154296875002,-12.004589843750011],[40.48710937500002,-12.4921875],[40.58085937500002,-12.635546875],[40.43681640625002,-12.983105468750011],[40.56875,-12.984667968750003],[40.595703125,-14.122851562500003],[40.715625,-14.214453125],[40.64609375,-14.538671875],[40.775,-14.421289062500009],[40.84453125000002,-14.718652343750009],[40.617773437500006,-15.115527343750003],[40.650976562500006,-15.260937500000011],[39.98359375000001,-16.22548828125001],[39.79091796875002,-16.29453125],[39.84462890625002,-16.435644531250006],[39.084375,-16.97285156250001],[38.14492187500002,-17.242773437500006],[37.24453125000002,-17.73994140625001],[36.93935546875002,-17.993457031250003],[36.40371093750002,-18.76972656250001],[36.26289062500001,-18.71962890625001],[36.23564453125002,-18.861328125],[35.85371093750001,-18.99335937500001],[34.947851562500006,-19.81269531250001],[34.6494140625,-19.70136718750001],[34.75576171875002,-19.82197265625001],[34.705078125,-20.473046875],[34.98232421875002,-20.80625],[35.267675781250006,-21.650976562500006],[35.31572265625002,-22.396875],[35.38300781250001,-22.45458984375],[35.45634765625002,-22.11591796875001],[35.53007812500002,-22.248144531250006],[35.57539062500001,-22.96308593750001],[35.37041015625002,-23.79824218750001],[35.5419921875,-23.82441406250001],[35.48964843750002,-24.065527343750006],[34.99208984375002,-24.65058593750001],[32.96113281250001,-25.49042968750001],[32.590429687500006,-26.00410156250001],[32.84882812500001,-26.26806640625],[32.95488281250002,-26.08359375],[32.93359375,-26.25234375],[32.88916015625,-26.83046875],[32.88613281250002,-26.84931640625001],[32.353515625,-26.861621093750003],[32.19960937500002,-26.83349609375],[32.112890625,-26.839453125]]]},"properties":{"name":"Mozambique","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-16.37333984374999,19.706445312499994],[-16.437548828124932,19.609277343749994],[-16.477001953124983,19.710351562499994],[-16.343652343749994,19.86621093750003],[-16.37333984374999,19.706445312499994]]],[[[-5.359912109374989,16.282861328124994],[-5.5125,15.496289062499983],[-9.293701171875,15.502832031249994],[-9.350585937499943,15.677392578125023],[-9.38535156249992,15.667626953124994],[-9.4265625,15.623046875000057],[-9.447705078124926,15.574853515624994],[-9.446923828124937,15.458203124999955],[-9.941406249999972,15.373779296874986],[-10.696582031249989,15.42265625],[-10.9482421875,15.151123046875014],[-11.455224609374994,15.62539062499999],[-11.760156249999937,15.425537109375057],[-11.828759765624966,15.244873046875014],[-11.872851562499989,14.995166015625031],[-12.02158203124992,14.804931640625],[-12.081542968749972,14.766357421875057],[-12.104687499999955,14.745361328125043],[-12.40869140625,14.889013671874991],[-12.735253906249994,15.13125],[-13.105273437499989,15.57177734375],[-13.40966796875,16.059179687500006],[-13.756640624999989,16.172509765624994],[-13.868457031249932,16.14814453125001],[-14.300097656249932,16.58027343750001],[-14.990625,16.676904296874994],[-15.768212890624994,16.485107421875],[-16.23901367187497,16.53129882812499],[-16.44101562499992,16.20454101562504],[-16.480078124999977,16.097216796875017],[-16.50205078124992,15.917333984375063],[-16.53525390624995,15.838378906250057],[-16.53574218749995,16.28681640625001],[-16.463623046875,16.60151367187501],[-16.030322265625017,17.88793945312497],[-16.213085937499926,19.003320312500023],[-16.51445312499996,19.361962890624994],[-16.305273437499977,19.51264648437504],[-16.44487304687499,19.47314453124997],[-16.21044921875003,20.227929687500023],[-16.42978515624995,20.652343750000057],[-16.622509765624955,20.634179687499994],[-16.87607421874992,21.086132812499955],[-16.998242187499926,21.039697265625023],[-17.048046874999955,20.80615234375003],[-17.06396484375,20.89882812499999],[-16.96455078125001,21.329248046875023],[-15.231201171875,21.331298828125],[-14.084667968749926,21.33271484375001],[-13.626025390624932,21.33325195312503],[-13.396728515624943,21.333544921875017],[-13.167431640624926,21.333789062500074],[-13.016210937499949,21.33393554687501],[-13.025097656249983,21.46679687499997],[-13.032226562500028,21.572070312500017],[-13.041748046875,21.71381835937504],[-13.051220703124983,21.854785156250074],[-13.094335937499977,22.49599609375005],[-13.153271484374983,22.820507812499983],[-13.031494140624943,23.000244140625],[-12.895996093749972,23.08955078125001],[-12.739599609375006,23.192724609375063],[-12.62041015624996,23.271337890625006],[-12.559375,23.290820312500045],[-12.372900390624977,23.318017578124994],[-12.023437499999943,23.467578125000017],[-12.016308593749983,23.97021484375],[-12.016308593749983,24.378662109375],[-12.016308593749983,24.923242187499994],[-12.016308593749983,25.059375],[-12.016308593749983,25.331689453124994],[-12.016308593749983,25.740136718749994],[-12.016308593749983,25.995410156250017],[-10.376123046874966,25.995458984375034],[-9.444531249999983,25.99550781250005],[-9.071923828124937,25.99550781250005],[-8.885644531249994,25.99550781250005],[-8.682226562499949,25.99550781250005],[-8.68212890625,26.109472656250006],[-8.68212890625,26.273193359375057],[-8.682324218749955,26.49770507812505],[-8.682617187500028,26.723144531250057],[-8.682861328124972,26.92133789062501],[-8.683349609375,27.285937500000045],[-4.822607421874949,24.99560546875],[-5.640771484374994,24.99516601562499],[-5.959814453124977,24.994970703125063],[-6.287207031249977,24.99482421875001],[-6.594091796874977,24.99462890624997],[-6.396582031249977,23.274804687499994],[-6.02641601562496,20.04218750000001],[-5.827099609374955,18.301562500000045],[-5.741699218749943,17.555566406250023],[-5.713183593750017,17.306884765625],[-5.684765624999983,17.058251953124966],[-5.628662109375028,16.568652343750045],[-5.50961914062492,16.442041015625023],[-5.359912109374989,16.282861328124994]]]]},"properties":{"name":"Mauritania","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-62.1484375,16.74033203124999],[-62.221630859375,16.699511718750003],[-62.191357421875,16.804394531249997],[-62.1484375,16.74033203124999]]]},"properties":{"name":"Montserrat","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[57.65126953125002,-20.48486328125],[57.31767578125002,-20.42763671875001],[57.416015625,-20.18378906250001],[57.65654296875002,-19.98994140625001],[57.7919921875,-20.21259765625001],[57.65126953125002,-20.48486328125]]]},"properties":{"name":"Mauritius","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[34.95947265625003,-11.578125],[34.82656250000005,-11.575683593749972],[34.65957031250005,-11.58867187499996],[34.61855468750005,-11.620214843749991],[34.60625,-11.690039062500006],[34.3578125,-12.164746093749997],[34.542578125,-13.108691406250003],[34.54570312500002,-13.21630859375],[34.6115234375001,-13.437890625000023],[35.0138671875001,-13.64345703124998],[35.247460937499994,-13.896875],[35.37578125000002,-14.05869140625002],[35.48847656250004,-14.20107421874998],[35.69042968749997,-14.465527343750026],[35.84716796875003,-14.670898437500043],[35.8927734375001,-14.891796875000011],[35.7912109375001,-15.958691406250026],[35.75527343750005,-16.058300781249983],[35.708886718749994,-16.095800781249977],[35.5993164062501,-16.12587890624998],[35.35849609375006,-16.160546875000023],[35.242773437500006,-16.375390625],[35.16718750000004,-16.56025390625001],[35.178320312500006,-16.57333984375002],[35.22978515625002,-16.639257812500034],[35.281152343749994,-16.8078125],[35.29042968750005,-17.096972656250017],[35.27255859375006,-17.11845703124996],[35.2013671875001,-17.13105468750004],[35.124609375,-17.127246093749974],[35.06464843750004,-17.078613281250014],[35.11210937500002,-16.898535156250006],[34.93339843750002,-16.760351562500006],[34.528125,-16.319140625],[34.24609374999997,-15.829394531249974],[34.54082031250002,-15.297265625],[34.50527343750005,-14.598144531249957],[34.375,-14.4248046875],[33.63642578125004,-14.568164062499974],[33.148046875,-13.94091796875],[32.98125,-14.009375],[32.797460937500006,-13.6884765625],[32.67041015624997,-13.590429687500006],[32.96757812500002,-13.225],[32.97519531250006,-12.701367187499983],[33.51230468750006,-12.347753906249977],[33.340136718750074,-12.308300781250011],[33.25234375000005,-12.112597656250031],[33.3039062500001,-11.69082031249998],[33.23271484375002,-11.417675781250026],[33.26835937500002,-11.403906249999977],[33.379785156249994,-11.15791015625004],[33.29277343750002,-10.85234375],[33.661523437499994,-10.553125],[33.55371093749997,-10.391308593750011],[33.53759765624997,-10.351562499999986],[33.52890625,-10.234667968749974],[33.31152343750003,-10.037988281249966],[33.3371093750001,-9.954003906249994],[33.350976562499994,-9.862207031250037],[33.25,-9.759570312500003],[33.148046875,-9.603515625],[32.99599609375005,-9.622851562499946],[32.91992187500003,-9.407421875000026],[33.88886718750004,-9.670117187499983],[33.99560546875003,-9.495410156250003],[34.32089843750006,-9.731542968749977],[34.56992187500006,-10.241113281249966],[34.66708984375006,-10.792480468750028],[34.60791015624997,-11.08046875],[34.77382812500005,-11.341699218750009],[34.890625,-11.3935546875],[34.93701171874997,-11.463476562500034],[34.95947265625003,-11.578125]]]},"properties":{"name":"Malawi","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[111.38925781250006,2.415332031250031],[111.31152343749997,2.437597656250034],[111.33349609374997,2.768310546875],[111.38925781250006,2.415332031250031]]],[[[104.22158203125,2.731738281250003],[104.1291015625001,2.767236328125037],[104.18476562500004,2.871728515625009],[104.22158203125,2.731738281250003]]],[[[117.88476562499997,4.186132812500006],[117.64902343750012,4.168994140624974],[117.70800781249997,4.262402343749997],[117.88476562499997,4.186132812500006]]],[[[100.28896484375005,5.294726562499989],[100.19101562500006,5.28286132812498],[100.2455078125,5.467773437499986],[100.33886718749997,5.410058593750037],[100.28896484375005,5.294726562499989]]],[[[99.848046875,6.465722656249994],[99.9186523437501,6.358593750000011],[99.74375,6.263281249999963],[99.64628906250002,6.418359375000023],[99.848046875,6.465722656249994]]],[[[102.10107421874997,6.242236328125031],[102.34013671875002,6.172021484375023],[102.534375,5.862548828125028],[103.09707031250005,5.408447265624986],[103.41582031250007,4.85029296875004],[103.43945312499997,2.93310546875],[103.8122070312501,2.58046875],[104.21855468750002,1.722851562499997],[104.25009765625012,1.388574218750009],[104.11494140625004,1.412255859375037],[103.98144531250003,1.623632812500034],[103.99150390625002,1.454785156249997],[103.6945312500001,1.449658203125026],[103.48027343750007,1.329492187499966],[103.35683593750005,1.546142578125057],[102.72714843750012,1.855566406250034],[101.29550781250012,2.885205078125011],[101.29990234375012,3.253271484375034],[100.71542968750006,3.966210937499966],[100.79550781250012,4.023388671874983],[100.61455078125002,4.3734375],[100.34326171874997,5.984179687500031],[100.11914062499997,6.441992187500048],[100.26142578125004,6.682714843749963],[100.3454101562501,6.549902343750006],[100.75449218750012,6.460058593749991],[100.87392578125,6.24541015624996],[101.05351562500002,6.242578125],[100.98164062500004,5.771044921875045],[101.1139648437501,5.636767578125045],[101.5560546875,5.907763671875003],[101.67841796875004,5.778808593750028],[101.87363281250012,5.825292968749991],[102.10107421874997,6.242236328125031]]],[[[117.5744140625001,4.17060546875004],[117.10058593750003,4.337060546875023],[116.51474609375006,4.370800781249969],[115.86074218750005,4.348046875000037],[115.67880859375006,4.193017578124994],[115.45439453125002,3.034326171875009],[115.24697265625005,3.025927734374989],[115.117578125,2.89487304687502],[115.08076171875004,2.63422851562504],[115.1791015625,2.523193359374972],[114.78642578125002,2.250488281250014],[114.83056640625003,1.980029296874989],[114.5125,1.452001953124963],[113.90234375000003,1.434277343749997],[113.6222656250001,1.2359375],[113.00654296875004,1.433886718750003],[112.94296875000006,1.566992187500034],[112.47617187500006,1.559082031250028],[112.1857421875001,1.4390625],[112.078515625,1.143359374999974],[111.80898437500005,1.011669921874969],[111.10136718750002,1.050537109374986],[110.50576171875005,0.861962890625023],[109.65400390625004,1.614892578125023],[109.53896484375,1.89619140625004],[109.62890625000003,2.027539062499983],[109.86484375000012,1.764453125000031],[110.34921875000012,1.719726562499972],[111.22324218750012,1.395849609374991],[111.0287109375,1.557812500000026],[111.26816406250012,2.13974609375002],[111.20859375000012,2.379638671875043],[111.44384765625003,2.381542968749983],[111.5125,2.743017578124991],[112.98789062500006,3.161914062499974],[113.92392578125006,4.243212890625003],[114.0638671875,4.592675781249966],[114.65410156250007,4.037646484375045],[114.84023437500005,4.393212890625009],[114.74667968750006,4.718066406250017],[115.02675781250005,4.899707031249989],[115.10703125000006,4.390429687499974],[115.290625,4.352587890624989],[115.1400390625,4.899755859374991],[115.37490234375,4.932763671874966],[115.55449218750007,5.093554687500045],[115.41904296875012,5.413183593749963],[115.60390625,5.603417968749994],[115.74082031250012,5.533007812500045],[115.8771484375001,5.613525390625014],[116.74980468750007,6.977099609374989],[116.8498046875001,6.826708984374989],[116.78808593749997,6.606103515624994],[117.12851562500012,6.968896484375009],[117.2298828125,6.939990234374974],[117.29404296875006,6.676904296875023],[117.60966796875002,6.512646484375054],[117.69375,6.35],[117.64453124999997,6.001855468749994],[117.5011718750001,5.884667968750009],[118.00380859375,6.053320312499991],[118.11582031250006,5.8625],[117.93476562500004,5.7875],[117.97363281249997,5.70625],[118.35312500000012,5.80605468749998],[118.59482421875006,5.592089843750003],[119.22343750000007,5.412646484375031],[119.2663085937501,5.308105468750057],[119.21962890625,5.159814453125037],[118.9125,5.02290039062504],[118.26054687500007,4.988867187500034],[118.18535156250002,4.828515625000051],[118.5625,4.502148437499997],[118.54833984375003,4.379248046875006],[118.008203125,4.250244140625014],[117.6964843750001,4.342822265625045],[117.5744140625001,4.17060546875004]]],[[[117.14160156250003,7.168212890625028],[117.08066406250006,7.115283203124989],[117.06425781250007,7.26069335937504],[117.2640625,7.351660156250006],[117.26679687500004,7.220800781249991],[117.14160156250003,7.168212890625028]]]]},"properties":{"name":"Malaysia","childNum":8}},{"geometry":{"type":"Polygon","coordinates":[[[23.380664062500017,-17.640625],[24.27490234375,-17.481054687500006],[24.73291015625,-17.51777343750001],[25.001757812500017,-17.56855468750001],[25.2587890625,-17.793554687500006],[24.909082031250023,-17.821386718750006],[24.530566406250017,-18.052734375],[24.243945312500017,-18.0234375],[23.599707031250006,-18.4599609375],[23.219335937500006,-17.99970703125001],[20.97412109375,-18.31884765625],[20.9794921875,-21.9619140625],[19.977343750000017,-22.00019531250001],[19.98046875,-24.77675781250001],[19.98046875,-28.310351562500003],[19.98046875,-28.451269531250006],[19.539843750000017,-28.574609375],[19.31269531250001,-28.73330078125001],[19.24580078125001,-28.901660156250003],[19.16171875,-28.938769531250003],[18.310839843750017,-28.88623046875],[17.44794921875001,-28.69814453125001],[17.34785156250001,-28.50117187500001],[17.358691406250017,-28.26943359375001],[17.1884765625,-28.13251953125001],[17.05625,-28.031054687500003],[16.93330078125001,-28.069628906250003],[16.875292968750017,-28.1279296875],[16.841210937500023,-28.21894531250001],[16.81015625,-28.26455078125001],[16.7875,-28.39472656250001],[16.755761718750023,-28.4521484375],[16.62617187500001,-28.487890625],[16.487109375000017,-28.572851562500006],[16.447558593750017,-28.617578125],[15.719042968750017,-27.9658203125],[15.341503906250011,-27.386523437500003],[15.139062500000023,-26.50800781250001],[14.9677734375,-26.31806640625001],[14.837109375000011,-25.033203125],[14.5015625,-24.201953125],[14.462792968750023,-22.44912109375001],[13.450585937500023,-20.91669921875001],[13.168359375000023,-20.184667968750006],[12.458203125000011,-18.9267578125],[11.77587890625,-18.001757812500003],[11.733496093750006,-17.7509765625],[11.743066406250023,-17.24921875000001],[11.902539062500011,-17.2265625],[12.013964843750017,-17.168554687500006],[12.21337890625,-17.2099609375],[12.318457031250006,-17.21337890625],[12.359277343750023,-17.205859375],[12.548144531250017,-17.212695312500003],[13.179492187500017,-16.9716796875],[13.475976562500023,-17.0400390625],[14.017480468750023,-17.40888671875001],[16.1484375,-17.390234375],[18.396386718750023,-17.3994140625],[18.95527343750001,-17.803515625],[20.1943359375,-17.863671875],[20.745507812500023,-18.01972656250001],[22.32421875,-17.8375],[23.380664062500017,-17.640625]]]},"properties":{"name":"Namibia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[167.54443359375003,-22.62324218750001],[167.44375,-22.63916015624997],[167.44345703125006,-22.541406250000037],[167.54443359375003,-22.62324218750001]]],[[[168.01093750000004,-21.429980468750017],[168.1390625,-21.44521484375001],[168.12070312500012,-21.615820312500034],[167.96679687500003,-21.641601562499957],[167.81542968749997,-21.392675781249963],[167.9884765625001,-21.337890624999986],[168.01093750000004,-21.429980468750017]]],[[[167.40087890625003,-21.16064453125003],[167.07265625,-20.99726562499997],[167.03271484374997,-20.922558593750026],[167.18945312500003,-20.803515625000017],[167.05576171875012,-20.720214843750014],[167.29794921875006,-20.732519531250034],[167.40087890625003,-21.16064453125003]]],[[[164.20234375000004,-20.246093749999957],[164.4359375,-20.282226562499957],[165.191796875,-20.768847656249974],[165.66279296875004,-21.267187499999977],[166.94238281250003,-22.09013671875003],[166.97031250000012,-22.32285156250002],[166.77412109375004,-22.37617187500004],[166.4679687500001,-22.256054687499997],[164.92744140625004,-21.289843749999974],[164.16972656250007,-20.48017578125004],[164.05966796875012,-20.141503906249966],[164.20234375000004,-20.246093749999957]]]]},"properties":{"name":"New Caledonia","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[14.97900390625,22.99619140624999],[15.181835937500011,21.523388671874997],[15.607324218750023,20.954394531250003],[15.587109375000011,20.733300781249994],[15.963183593750017,20.34619140625],[15.735058593750011,19.904052734375],[15.474316406250011,16.908398437499997],[14.367968750000017,15.750146484374994],[13.4482421875,14.380664062500003],[13.505761718750023,14.134423828124994],[13.606347656250023,13.70458984375],[13.426953125000011,13.701757812499991],[13.323828125,13.670849609374997],[12.871679687500006,13.449023437500003],[12.65478515625,13.3265625],[12.463183593750017,13.09375],[10.958886718750023,13.371533203124997],[10.475878906250017,13.330224609374994],[10.229589843750006,13.281005859375],[10.184667968750006,13.270117187499991],[9.615917968750011,12.810644531249991],[9.201562500000023,12.821484375],[8.750585937500006,12.908154296874997],[8.4560546875,13.059667968749991],[8.095019531250017,13.291162109374994],[7.955761718750011,13.32275390625],[7.788671875,13.337890625],[7.056738281250006,13.000195312499997],[6.804296875,13.107666015625],[6.2998046875,13.658789062499991],[6.184277343750011,13.66367187499999],[5.838183593750017,13.765380859375],[5.491992187500017,13.872851562500003],[5.415820312500017,13.859179687500003],[5.361621093750017,13.836865234374997],[5.241894531250011,13.757226562499994],[4.664843750000017,13.733203125],[4.147558593750006,13.457714843749997],[3.947851562500006,12.775048828124994],[3.646679687500011,12.529980468749997],[3.595410156250011,11.6962890625],[2.805273437500006,12.383837890624989],[2.366015625000017,12.221923828125],[2.38916015625,11.897070312499991],[2.072949218750011,12.309375],[2.226269531250011,12.466064453125],[2.104589843750006,12.701269531249991],[1.56494140625,12.635400390624994],[0.9873046875,13.041894531249994],[0.988476562500011,13.36484375],[1.201171875,13.357519531249991],[0.6181640625,13.703417968750003],[0.42919921875,13.972119140624997],[0.382519531250011,14.245800781249997],[0.163867187500017,14.497216796874994],[0.217480468750011,14.911474609374991],[0.947460937500011,14.982128906249997],[1.300195312500023,15.272265625],[3.001074218750006,15.340966796874994],[3.06015625,15.427197265624997],[3.504296875000023,15.356347656249994],[3.5205078125,15.483105468749997],[3.842968750000011,15.701708984375003],[4.121289062500011,16.357714843750003],[4.234667968750017,16.996386718750003],[4.227636718750006,19.142773437499997],[5.836621093750011,19.479150390624994],[7.481738281250017,20.873095703125003],[11.967871093750006,23.517871093750003],[13.48125,23.18017578125],[14.215527343750011,22.619677734375003],[14.97900390625,22.99619140624999]]]},"properties":{"name":"Niger","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[7.30078125,4.418164062500026],[7.140429687500017,4.395117187500034],[7.227343750000045,4.527343749999972],[7.30078125,4.418164062500026]]],[[[6.804296875,13.107666015625],[7.056738281250006,13.00019531250004],[7.788671875,13.337890625],[7.955761718750011,13.322753906250028],[8.095019531250045,13.29116210937498],[8.750585937500034,12.908154296875026],[9.20156250000008,12.82148437500004],[9.615917968750011,12.810644531249963],[10.184667968750063,13.270117187499963],[10.229589843749977,13.281005859375043],[10.475878906250074,13.330224609375037],[10.958886718750051,13.371533203125011],[12.463183593750017,13.09375],[12.654785156250057,13.3265625],[13.426953125000068,13.701757812499963],[13.606347656250023,13.704589843750014],[13.932324218750011,13.258496093749997],[14.06396484375,13.078515625],[14.160058593750023,12.612792968749986],[14.184863281250017,12.447216796874997],[14.272851562500023,12.356494140624989],[14.518945312500051,12.298242187500023],[14.619726562500063,12.150976562500048],[14.559765625000011,11.492285156249963],[14.20234375000004,11.268164062499963],[14.143261718750068,11.248535156250043],[14.056738281250034,11.245019531250037],[13.981445312500057,11.21186523437504],[13.892089843750057,11.140087890624983],[13.699902343749983,10.873144531250048],[13.53535156250004,10.605078124999963],[13.414550781250028,10.171435546874989],[13.269921875000051,10.036181640624974],[13.198730468750028,9.563769531250003],[12.929492187500074,9.426269531249972],[12.87568359375004,9.303515625000017],[12.80654296875008,8.886621093749994],[12.7822265625,8.817871093750014],[12.651562500000011,8.667773437499989],[12.40351562500004,8.59555664062502],[12.311328125000074,8.419726562499989],[12.2333984375,8.282324218749977],[12.016015625000051,7.589746093750009],[11.809179687500006,7.345068359374991],[11.767382812500017,7.272265624999989],[11.861425781249977,7.11640625000004],[11.657519531250017,6.951562500000023],[11.580078125000057,6.88886718750004],[11.551660156250023,6.697265625],[11.153320312500057,6.437939453125011],[11.1064453125,6.457714843750054],[11.032519531250045,6.697900390625037],[10.954199218750006,6.7765625],[10.60625,7.063085937500006],[10.413183593750006,6.877734375],[10.293066406250034,6.876757812499974],[10.205468750000051,6.891601562499986],[10.185546874999972,6.91279296875004],[10.167773437500017,6.959179687499983],[10.143554687500057,6.99643554687502],[10.038867187500045,6.921386718750014],[9.874218750000068,6.803271484375017],[9.82070312500008,6.783935546874986],[9.779882812500034,6.760156250000023],[9.725585937499972,6.65],[9.659960937500017,6.531982421874986],[9.490234375,6.418652343749997],[8.997167968750006,5.917724609375],[8.715625,5.046875],[8.514843750000068,4.724707031250034],[8.23378906250008,4.907470703124972],[8.293066406250006,4.557617187500014],[7.644238281250068,4.525341796875011],[7.530761718750028,4.655175781249994],[7.284375,4.547656250000031],[7.076562500000051,4.716162109374991],[7.15468750000008,4.514404296875],[6.92324218750008,4.390673828125017],[6.767675781250006,4.724707031250034],[6.860351562500057,4.373339843750045],[6.633007812500011,4.340234375000051],[6.579980468750051,4.475976562499994],[6.554589843750023,4.34140625000002],[6.263671875,4.309423828124991],[6.270996093749972,4.432128906250028],[6.173339843749972,4.277392578125031],[5.970703125,4.338574218749983],[5.587792968750051,4.647216796874972],[5.448144531250023,4.945849609374974],[5.383300781250057,5.129003906249977],[5.475976562500023,5.153857421874989],[5.370019531250023,5.195019531250026],[5.367968750000045,5.337744140624963],[5.549707031250023,5.474218749999963],[5.385839843750034,5.401757812500037],[5.199218750000028,5.533544921874977],[5.456640624999977,5.61171875],[5.327343750000011,5.707519531249986],[5.112402343750034,5.64155273437504],[4.861035156250068,6.026318359374997],[4.431347656250011,6.348583984375026],[3.450781249999977,6.427050781250017],[3.71699218750004,6.597949218750017],[3.430175781250057,6.525],[3.335546875000063,6.396923828125011],[2.706445312500051,6.369238281249963],[2.735644531250045,6.595703125],[2.753710937499989,6.661767578124966],[2.774609374999983,6.711718750000017],[2.752929687500028,6.771630859374966],[2.731738281250045,6.852832031249989],[2.721386718750068,6.980273437500017],[2.75673828125008,7.067919921875017],[2.750488281250057,7.39506835937496],[2.765820312500068,7.422509765625051],[2.783984375000045,7.443408203125045],[2.78515625,7.476855468750017],[2.703125,8.371826171875],[2.774804687500023,9.048535156250026],[3.044921875,9.08383789062502],[3.325195312499972,9.778466796875051],[3.60205078125,10.004541015625009],[3.646582031250006,10.408984374999989],[3.771777343750017,10.417626953124966],[3.83447265625,10.607421875],[3.7568359375,10.76875],[3.71640625,11.07958984375],[3.695312499999972,11.12031250000004],[3.63886718750004,11.176855468750006],[3.487792968749972,11.395410156250037],[3.490527343750017,11.499218750000054],[3.55390625000004,11.631884765624989],[3.595410156250068,11.696289062500057],[3.664746093750068,11.762451171875028],[3.646679687500011,12.529980468749983],[3.947851562500006,12.775048828124994],[4.147558593750006,13.457714843749983],[4.664843750000045,13.733203124999974],[5.241894531250011,13.757226562499994],[5.361621093750074,13.836865234375054],[5.415820312500017,13.859179687499974],[5.491992187500074,13.872851562500003],[6.2998046875,13.658789062500006],[6.804296875,13.107666015625]]]]},"properties":{"name":"Nigeria","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-83.6419921875,10.917236328125],[-83.71293945312499,10.785888671875],[-83.91928710937499,10.7353515625],[-84.6341796875,11.045605468749997],[-84.9091796875,10.9453125],[-85.5841796875,11.189453125],[-85.7443359375,11.06210937499999],[-87.670166015625,12.965673828124991],[-87.58505859374999,13.043310546874991],[-87.42436523437499,12.921142578125],[-87.33725585937499,12.979248046875],[-87.05917968749999,12.991455078125],[-87.00932617187499,13.0078125],[-86.918212890625,13.223583984374997],[-86.87353515625,13.266503906249994],[-86.792138671875,13.27978515625],[-86.72929687499999,13.284375],[-86.710693359375,13.313378906249994],[-86.76352539062499,13.63525390625],[-86.77060546874999,13.69873046875],[-86.758984375,13.746142578125003],[-86.733642578125,13.763476562500003],[-86.61025390625,13.774853515624997],[-86.376953125,13.755664062500003],[-86.33173828125,13.770068359375003],[-86.238232421875,13.899462890625003],[-86.15122070312499,13.994580078124997],[-86.0892578125,14.037207031249991],[-86.04038085937499,14.050146484374991],[-85.9837890625,13.965673828124991],[-85.78671875,13.844433593749997],[-85.75341796875,13.85205078125],[-85.73393554687499,13.858691406250003],[-85.727734375,13.876074218749991],[-85.731201171875,13.931835937499997],[-85.68193359374999,13.982568359374994],[-85.20834960937499,14.311816406250003],[-85.059375,14.582958984374997],[-84.86044921874999,14.809765625],[-84.645947265625,14.661083984374997],[-84.53764648437499,14.633398437499991],[-83.635498046875,14.876416015624997],[-83.5365234375,14.977001953124997],[-83.4150390625,15.008056640625],[-83.15751953124999,14.993066406249994],[-83.18535156249999,14.956396484374991],[-83.21591796874999,14.932373046875],[-83.27988281249999,14.812792968750003],[-83.344384765625,14.902099609375],[-83.413720703125,14.825341796874994],[-83.29921875,14.7490234375],[-83.187744140625,14.340087890625],[-83.4123046875,13.99648437499999],[-83.567333984375,13.3203125],[-83.5109375,12.411816406249997],[-83.627197265625,12.459326171874991],[-83.59335937499999,12.713085937499997],[-83.75424804687499,12.501953125],[-83.680419921875,12.024316406249994],[-83.7671875,12.059277343749997],[-83.82890624999999,11.861035156249997],[-83.70458984375,11.824560546874991],[-83.6517578125,11.642041015624997],[-83.86787109375,11.300048828125],[-83.6419921875,10.917236328125]]]},"properties":{"name":"Nicaragua","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-169.80341796875,-19.0830078125],[-169.94833984375,-19.072851562500006],[-169.834033203125,-18.96601562500001],[-169.80341796875,-19.0830078125]]]},"properties":{"name":"Niue","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-68.205810546875,12.144580078124989],[-68.25434570312495,12.032080078124977],[-68.36923828125,12.301953124999983],[-68.205810546875,12.144580078124989]]],[[[4.226171875000034,51.38647460937503],[3.902050781250011,51.20766601562502],[3.43251953125008,51.24575195312505],[3.35009765625,51.37768554687503],[4.226171875000034,51.38647460937503]]],[[[3.94912109375008,51.73945312500001],[4.07509765625008,51.648779296875006],[3.699023437500017,51.70991210937501],[3.94912109375008,51.73945312500001]]],[[[4.886132812500023,53.07070312500005],[4.70917968750004,53.036035156249994],[4.886425781249983,53.18330078124998],[4.886132812500023,53.07070312500005]]],[[[4.226171875000034,51.38647460937503],[3.448925781250068,51.54077148437503],[3.743945312500017,51.596044921875006],[4.27412109375004,51.47163085937498],[4.004785156250051,51.595849609374966],[4.182617187500057,51.61030273437498],[3.946875,51.810546875],[4.482812500000023,52.30917968749998],[4.76875,52.941308593749966],[5.061230468750068,52.96064453125001],[5.532031250000074,53.268701171874966],[6.062207031250068,53.407080078125006],[6.816210937500045,53.44116210937503],[7.197265625000028,53.28227539062499],[7.033007812500045,52.65136718749997],[6.710742187500045,52.61787109374998],[6.748828125000074,52.464013671874994],[7.035156250000057,52.38022460937498],[6.724511718749994,52.080224609374966],[6.800390625,51.96738281249998],[5.948730468750057,51.80268554687501],[6.198828125000034,51.45],[6.129980468750034,51.14741210937501],[5.857519531250034,51.030126953125006],[6.048437500000034,50.90488281250006],[5.993945312500017,50.75043945312504],[5.693554687500011,50.774755859375006],[5.796484375000034,51.153076171875],[5.214160156250045,51.278955078124966],[5.03095703125004,51.46909179687498],[4.226171875000034,51.38647460937503]]],[[[5.325781250000063,53.38574218750003],[5.190234375000074,53.39179687500001],[5.582617187500063,53.438085937500034],[5.325781250000063,53.38574218750003]]]]},"properties":{"name":"Netherlands","childNum":6,"cp":[5.0752777,52.358465]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[5.085839843750023,60.30756835937501],[5.089062500000068,60.188769531250045],[4.95722656250004,60.44726562500006],[5.085839843750023,60.30756835937501]]],[[[4.958691406250068,61.084570312500034],[4.79902343750004,61.08271484375001],[4.861621093749989,61.19384765625],[4.958691406250068,61.084570312500034]]],[[[8.10273437500004,63.33759765625004],[7.804003906250017,63.413916015625034],[8.073535156250045,63.47080078124998],[8.10273437500004,63.33759765625004]]],[[[8.470800781250063,63.66713867187502],[8.287109375000028,63.68715820312502],[8.764648437500057,63.804638671874955],[8.78652343750008,63.703466796875034],[8.470800781250063,63.66713867187502]]],[[[11.2314453125,64.865869140625],[10.739843750000034,64.87031250000001],[11.02099609375,64.97871093749995],[11.2314453125,64.865869140625]]],[[[12.971777343750063,67.87412109375],[12.824023437500074,67.82124023437498],[13.068066406250068,68.07133789062505],[12.971777343750063,67.87412109375]]],[[[13.872851562500045,68.26533203125004],[14.096777343750034,68.218603515625],[13.229394531250051,67.995361328125],[13.300195312499994,68.16044921875007],[13.872851562500045,68.26533203125004]]],[[[15.207128906250006,68.943115234375],[15.222070312500023,68.61630859375003],[14.404687500000051,68.663232421875],[15.037792968750068,69.00053710937507],[15.207128906250006,68.943115234375]]],[[[15.760351562500006,68.56123046875001],[16.328906250000017,68.87631835937498],[16.519238281250068,68.63300781249998],[15.975292968750011,68.402490234375],[14.257519531249983,68.19077148437503],[15.412597656250028,68.61582031250003],[15.483007812500006,69.04345703125003],[16.04804687500001,69.30205078125002],[15.760351562500006,68.56123046875001]]],[[[17.503027343750034,69.59624023437502],[18.004101562500068,69.50498046874998],[17.95068359375003,69.19814453125],[17.487890625000063,69.19682617187499],[17.08251953124997,69.013671875],[16.81044921875008,69.07070312499997],[17.001757812500045,69.36191406250006],[17.36083984375003,69.38149414062497],[17.503027343750034,69.59624023437502]]],[[[29.956152343750006,69.79677734375002],[29.766210937500006,69.76752929687501],[29.835839843749994,69.90556640625005],[29.956152343750006,69.79677734375002]]],[[[20.779199218750023,70.08974609375002],[20.46425781250005,70.0765625],[20.492773437500006,70.20332031249995],[20.78603515625008,70.21953124999999],[20.779199218750023,70.08974609375002]]],[[[19.25507812500001,70.06640625000006],[19.607812500000023,70.019140625],[19.334765625000074,69.82026367187501],[18.784765625000034,69.57900390624997],[18.12988281250003,69.557861328125],[18.34931640625004,69.76787109374999],[18.67402343750004,69.78164062500002],[19.13271484375005,70.24414062500003],[19.25507812500001,70.06640625000006]]],[[[19.76748046875005,70.21669921875002],[20.005957031250034,70.07622070312502],[19.599023437499994,70.26616210937507],[19.76748046875005,70.21669921875002]]],[[[23.615332031250034,70.54931640625003],[23.15917968750003,70.28261718750005],[22.941015625000063,70.444580078125],[23.546679687500017,70.61708984374997],[23.615332031250034,70.54931640625003]]],[[[24.01757812500003,70.56738281249997],[23.716601562500074,70.561865234375],[23.778417968750063,70.74736328125005],[24.01757812500003,70.56738281249997]]],[[[23.440527343750063,70.81577148437503],[22.8291015625,70.54155273437505],[22.358691406250017,70.514794921875],[21.99453125000008,70.65712890624997],[23.440527343750063,70.81577148437503]]],[[[30.869726562500006,69.78344726562506],[30.860742187499994,69.53842773437503],[30.18017578124997,69.63583984375],[30.08730468750005,69.43286132812503],[29.38828125,69.29814453125005],[28.96582031250003,69.02197265625],[28.846289062500006,69.17690429687502],[29.33339843750005,69.47299804687503],[29.14160156250003,69.67143554687505],[27.747851562500045,70.06484375],[27.127539062500063,69.90649414062497],[26.525390625000057,69.91503906250003],[26.07246093750004,69.69155273437497],[25.748339843750017,68.99013671875],[24.94140625000003,68.59326171875006],[23.85400390625,68.80590820312503],[23.324023437500017,68.64897460937502],[22.410937500000074,68.719873046875],[21.59375,69.273583984375],[21.06611328125001,69.21411132812497],[21.065722656250017,69.04174804687503],[20.622167968750006,69.036865234375],[20.116699218750057,69.02089843750005],[20.348046875000023,68.84873046875003],[19.969824218750063,68.35639648437501],[18.303027343750045,68.55541992187497],[17.91669921875001,67.96489257812502],[17.324609375000023,68.10380859374999],[16.783593750000023,67.89501953125],[16.12744140625,67.42583007812507],[16.40351562500004,67.05498046875002],[15.422949218750006,66.48984374999998],[15.483789062500051,66.30595703124999],[14.543261718750045,66.12934570312498],[14.47968750000004,65.30146484374998],[13.650292968750023,64.58154296874997],[14.077636718750028,64.464013671875],[14.141210937500006,64.17353515624998],[13.960546875000063,64.01401367187498],[13.203515625000023,64.07509765625],[12.792773437500017,64],[12.175195312500051,63.595947265625],[11.999902343750051,63.29169921875001],[12.303515625000074,62.28559570312501],[12.155371093750006,61.720751953125045],[12.88076171875008,61.35229492187506],[12.706054687500028,61.059863281250074],[12.29414062500004,61.00268554687506],[12.588671874999989,60.450732421875045],[12.486132812500074,60.10678710937506],[11.680761718750034,59.59228515625003],[11.798144531250074,59.28989257812498],[11.64277343750004,58.92607421875002],[11.470703125000057,58.909521484375034],[11.388281250000063,59.036523437499966],[10.834472656250028,59.18393554687498],[10.595312500000063,59.764550781249966],[10.179394531250068,59.00927734375003],[9.842578125000017,58.95849609374997],[9.557226562500063,59.11269531250002],[9.65693359375004,58.97119140624997],[8.166113281250063,58.145312500000045],[7.0048828125,58.024218750000074],[6.877050781250006,58.15073242187498],[6.590527343750068,58.09731445312502],[6.659863281250068,58.26274414062499],[5.706835937500074,58.52363281250001],[5.55556640625008,58.975195312500006],[6.099023437500023,58.87026367187502],[6.363281250000028,59.00092773437501],[6.099414062500017,58.951953125000074],[5.88916015625,59.097949218750045],[5.951855468750068,59.299072265625],[6.415332031250074,59.547119140625],[5.17324218750008,59.16254882812498],[5.2421875,59.564306640625034],[5.472460937500017,59.713085937499955],[5.77216796875004,59.66093749999999],[6.216601562499989,59.818359375],[5.73046875,59.863085937500045],[6.348730468750006,60.35297851562504],[6.57363281250008,60.36059570312497],[6.526855468750057,60.152929687500034],[6.995703125,60.511962890625],[6.1533203125,60.34624023437499],[5.145800781250074,59.63881835937502],[5.205664062500006,60.087939453125045],[5.688574218749977,60.12319335937502],[5.285839843750011,60.20571289062505],[5.13710937500008,60.445605468750074],[5.648339843750051,60.68798828124997],[5.244042968750023,60.569580078125],[5.115820312500006,60.63598632812503],[5.008593750000017,61.038183593750006],[6.777832031250028,61.142431640625006],[7.038671875000063,60.952929687500045],[7.040136718750006,61.091162109375034],[7.604492187500057,61.210546875000034],[7.34658203125008,61.30058593749999],[7.442578125000011,61.43461914062502],[7.173535156250011,61.16596679687501],[6.599902343750017,61.28964843749998],[6.383496093750068,61.133886718750034],[5.451269531250034,61.10234375000002],[5.106738281250017,61.187548828125045],[5.002734375000074,61.43359375],[5.338671875000017,61.485498046874994],[4.927832031249977,61.71069335937506],[4.93007812499999,61.878320312499994],[6.01582031250004,61.7875],[6.730761718750045,61.86977539062505],[5.266894531250045,61.935595703125045],[5.143164062500063,62.159912109375],[5.908300781249977,62.41601562500003],[6.083496093750057,62.349609375],[6.580078125000057,62.407275390625045],[6.692382812500028,62.46806640624999],[6.136132812500051,62.40747070312497],[6.352929687500051,62.61113281249999],[7.653125,62.56401367187499],[7.538378906250074,62.67207031249998],[8.045507812500006,62.77124023437503],[6.734960937500006,62.72070312500003],[6.940429687500028,62.930468750000045],[7.571875,63.09951171875002],[8.100585937500028,63.090966796874966],[8.623144531250006,62.84624023437502],[8.158007812500017,63.16152343750005],[8.635546875000045,63.34233398437502],[8.360742187500023,63.498876953125034],[8.576171875000028,63.60117187499998],[9.135839843750006,63.593652343749966],[9.156054687500045,63.459326171875034],[9.696875,63.624560546875045],[10.020996093750028,63.39082031250004],[10.76015625000008,63.461279296875006],[10.725292968750068,63.625],[11.370703125000034,63.804833984374994],[11.175585937500074,63.89887695312498],[11.457617187500063,64.00297851562505],[11.306640625000028,64.04887695312499],[10.91425781250004,63.92109374999998],[10.934863281250045,63.770214843749955],[10.055078125000051,63.5126953125],[9.567285156250051,63.70615234374998],[10.565625,64.418310546875],[11.523828125000051,64.744384765625],[11.632910156250063,64.81391601562495],[11.296777343750051,64.75478515625],[11.489355468750034,64.975830078125],[12.15966796875,65.178955078125],[12.508398437499977,65.09941406250005],[12.915527343750057,65.33925781249997],[12.417578125000063,65.18408203124997],[12.133886718749977,65.27915039062498],[12.68886718750008,65.90219726562498],[13.033105468750051,65.95625],[12.783789062500063,66.10043945312506],[14.034179687500057,66.29755859374998],[13.118847656250011,66.23066406250004],[13.211425781250028,66.64082031250001],[13.959472656250028,66.79433593750002],[13.651562500000011,66.90708007812498],[14.10878906250008,67.11923828125003],[15.41572265625004,67.20244140625002],[14.441699218750045,67.27138671875005],[14.961914062500057,67.57426757812502],[15.59443359375004,67.34853515625005],[15.691503906250006,67.52138671875],[15.24873046875004,67.6021484375],[15.303906250000011,67.76528320312502],[14.854687500000068,67.66333007812506],[14.798925781250063,67.80932617187503],[15.13427734375,67.97270507812502],[15.621386718750017,67.94829101562502],[15.316015624999977,68.06875],[16.007910156250006,68.22871093750004],[16.312304687500017,67.88144531249998],[16.20380859375001,68.31674804687503],[17.552832031250063,68.42626953125006],[16.51435546875004,68.53256835937503],[18.101464843749994,69.15629882812499],[18.259765625,69.47060546875],[18.915917968750023,69.33559570312502],[18.614453125000068,69.49057617187498],[19.197265625000057,69.74785156249999],[19.722460937500017,69.78164062500002],[19.64150390625005,69.42402343750001],[20.324218750000057,69.94531249999997],[20.054492187500074,69.33266601562497],[20.486718750000023,69.54208984375],[20.739453124999983,69.52050781250003],[20.622070312500057,69.91391601562498],[21.163085937500057,69.88950195312498],[21.432910156250045,70.01318359375006],[21.974707031250034,69.83457031249998],[21.355761718750045,70.23339843749997],[22.321972656250068,70.264501953125],[22.684570312500057,70.374755859375],[23.35390625000008,69.98339843750003],[23.3291015625,70.20722656249995],[24.420019531250034,70.70200195312503],[24.263476562500017,70.82631835937497],[24.658007812500017,71.00102539062505],[25.264648437500057,70.843505859375],[25.768164062500063,70.85317382812502],[25.043847656250023,70.10903320312502],[26.66132812500004,70.93974609374999],[26.585058593750034,70.41000976562498],[26.989355468750063,70.51137695312502],[27.183691406250034,70.74404296875],[27.546484375000063,70.80400390625005],[27.23525390625008,70.94721679687498],[27.59707031250005,71.09130859375003],[28.392285156250068,70.97529296875004],[27.898046875,70.67792968750001],[28.271777343750017,70.66796875000003],[28.192968750000034,70.24858398437505],[28.83154296875003,70.86396484375001],[29.7375,70.646826171875],[30.065136718750097,70.70297851562498],[30.944140625000017,70.27441406249997],[30.262988281250074,70.12470703125004],[28.804296875000063,70.09252929687506],[29.601367187500017,69.97675781249998],[29.792089843750063,69.727880859375],[30.08828125,69.71757812500005],[30.237597656250017,69.86220703125002],[30.428320312500006,69.722265625],[30.869726562500006,69.78344726562506]]],[[[25.58632812500005,71.14208984375],[26.13378906250003,70.99580078125004],[25.582031250000057,70.960791015625],[25.31494140625,71.03413085937504],[25.58632812500005,71.14208984375]]],[[[-8.953564453124983,70.83916015625002],[-8.001367187499966,71.17768554687495],[-8.002099609374937,71.04125976562497],[-8.953564453124983,70.83916015625002]]],[[[19.219335937500006,74.39101562500002],[18.86123046875008,74.51416015624997],[19.182910156250045,74.51791992187503],[19.219335937500006,74.39101562500002]]],[[[21.60810546875004,78.59570312499997],[22.04316406250004,78.57695312500007],[22.29951171875004,78.22817382812497],[23.451953125000074,78.14946289062502],[23.11669921874997,77.99150390624999],[24.901855468750057,77.756591796875],[22.55371093750003,77.26665039062502],[22.685351562500045,77.55351562500002],[20.928125,77.45966796874998],[21.653125,77.92353515624998],[20.22792968750005,78.47783203125005],[21.60810546875004,78.59570312499997]]],[[[11.250292968750017,78.610693359375],[12.116406250000068,78.232568359375],[11.121289062500011,78.46328125],[10.558203125000063,78.90292968750003],[11.250292968750017,78.610693359375]]],[[[29.047070312500068,78.91206054687504],[29.69667968750005,78.90473632812495],[27.88906250000005,78.8521484375],[28.511132812500023,78.96733398437502],[29.047070312500068,78.91206054687504]]],[[[16.786718750000034,79.90673828125],[17.834570312499977,79.80004882812503],[17.66875,79.38593750000004],[18.39736328125008,79.60517578125001],[18.677832031250006,79.26171875000003],[19.893554687500057,79.05620117187499],[20.61103515625004,79.10664062499998],[21.388769531250034,78.74042968749998],[19.67675781250003,78.60957031249995],[16.700488281250045,76.57929687499995],[14.365820312500034,77.23447265625003],[13.995703125000034,77.50820312500002],[14.69501953125004,77.525048828125],[14.920800781250023,77.68881835937506],[17.033300781250006,77.79770507812503],[16.91406250000003,77.89799804687505],[14.089941406250063,77.77138671875],[13.680566406250051,78.028125],[14.307226562500006,78.00507812500001],[15.783886718750011,78.32705078125005],[17.00292968750003,78.36938476562497],[16.44863281250008,78.50356445312502],[16.78261718750008,78.66362304687505],[15.417382812500023,78.47324218749998],[15.384179687500023,78.77119140625001],[15.01630859375004,78.63012695312497],[14.689257812500017,78.720947265625],[14.638281250000034,78.41459960937502],[14.110449218750063,78.27089843749997],[13.150195312499989,78.2375],[11.365429687500011,78.95039062500004],[12.323437500000068,78.91425781249995],[12.083984375000028,79.26752929687498],[11.579785156250068,79.28349609375005],[11.208105468750034,79.12963867187503],[10.737597656250017,79.52016601562502],[10.804003906250045,79.79877929687504],[11.150390625,79.71699218749998],[11.702343750000011,79.82060546875005],[12.287792968750068,79.713134765625],[12.279980468749983,79.81596679687507],[13.692871093749972,79.860986328125],[13.777539062500011,79.71528320312498],[12.555371093750068,79.56948242187502],[13.333789062500017,79.57480468750006],[14.029589843750017,79.34414062500005],[14.59365234375008,79.79873046875002],[16.34375,78.97612304687502],[15.816113281250011,79.68183593750001],[16.245703125000034,80.04946289062502],[16.786718750000034,79.90673828125]]],[[[32.52597656250006,80.119140625],[31.48193359374997,80.10791015625003],[33.62929687499999,80.21743164062497],[32.52597656250006,80.119140625]]],[[[20.897851562500023,80.24995117187501],[22.289746093749983,80.04921874999997],[22.450781250000034,80.40224609375005],[23.00800781250004,80.473974609375],[23.114550781250074,80.18696289062498],[24.29755859375004,80.36040039062505],[26.86083984375,80.16000976562498],[27.19863281250008,79.90659179687506],[25.641210937500034,79.40302734374995],[23.94775390625,79.19428710937498],[22.903710937500023,79.23066406250001],[22.865527343750045,79.41186523437497],[20.861132812500017,79.39785156249997],[20.128222656250074,79.489599609375],[19.674609375000045,79.591162109375],[20.784082031250023,79.74858398437502],[18.725,79.7607421875],[18.25537109375,79.92919921875003],[18.855957031250057,80.03662109375],[17.91689453125005,80.14311523437502],[19.343359375000063,80.11640624999998],[19.733300781249994,80.47783203124999],[20.897851562500023,80.24995117187501]]]]},"properties":{"name":"Norway","childNum":27}},{"geometry":{"type":"Polygon","coordinates":[[[87.984375,27.133935546874994],[87.9931640625,27.086083984374994],[88.11103515625001,26.928466796875],[88.1572265625,26.807324218749997],[88.16152343750002,26.724804687499997],[88.11152343750001,26.58642578125],[88.05488281250001,26.430029296875],[88.02695312500003,26.39501953125],[87.9951171875,26.382373046874996],[87.28740234374999,26.360302734374997],[87.01640624999999,26.555419921875],[86.70136718750001,26.43505859375],[86.00732421875,26.649365234374997],[85.79453125000003,26.604150390624994],[85.7373046875,26.63974609375],[85.6484375,26.829003906249994],[85.56845703125003,26.83984375],[85.29296875,26.741015625],[85.19179687500002,26.766552734374997],[84.68535156249999,27.041015625],[84.65380859375,27.091699218749994],[84.65478515625,27.203662109374996],[84.64072265625003,27.249853515625],[84.61015624999999,27.298681640625],[84.48085937500002,27.348193359374996],[84.22978515624999,27.42783203125],[84.09101562500001,27.491357421874994],[83.82880859375001,27.377832031249994],[83.74697265625002,27.395947265624997],[83.55166015625002,27.456347656249996],[83.44716796875002,27.46533203125],[83.38398437500001,27.44482421875],[83.36943359374999,27.41025390625],[83.28974609375001,27.370996093749994],[82.7333984375,27.518994140624997],[82.71083984375002,27.5966796875],[82.67734375000003,27.6734375],[82.6298828125,27.687060546874996],[82.45136718750001,27.671826171874997],[82.28769531250003,27.756542968749997],[82.11191406250003,27.864941406249997],[82.03701171875002,27.900585937499997],[81.98769531250002,27.913769531249997],[81.94521484375002,27.899267578125],[81.896875,27.874462890624997],[81.85263671875003,27.867089843749994],[81.1689453125,28.335009765624996],[80.58701171875003,28.649609375],[80.51787109374999,28.665185546874994],[80.49580078125001,28.635791015624996],[80.47910156250003,28.604882812499994],[80.41855468750003,28.612011718749997],[80.32480468750003,28.66640625],[80.2265625,28.723339843749997],[80.07070312500002,28.83017578125],[80.05166015625002,28.8703125],[80.08457031250003,28.994189453124996],[80.13046875000003,29.100390625],[80.16953125000003,29.124316406249996],[80.23300781250003,29.194628906249996],[80.25595703125003,29.318017578124994],[80.2548828125,29.42333984375],[80.31689453125,29.572070312499996],[80.40185546875,29.730273437499996],[80.54902343750001,29.899804687499994],[80.81992187500003,30.119335937499997],[80.84814453125,30.13974609375],[80.90761718750002,30.171923828124996],[80.96611328124999,30.180029296875],[81.17714843750002,30.039892578125],[81.25507812500001,30.093310546874996],[81.41718750000001,30.337597656249997],[81.64189453124999,30.3875],[81.85488281250002,30.36240234375],[82.04335937500002,30.3267578125],[82.220703125,30.063867187499994],[83.15546875000001,29.612646484375],[83.58349609375,29.18359375],[83.93593750000002,29.279492187499997],[84.02197265625,29.253857421874997],[84.10136718749999,29.219970703125],[84.12783203125002,29.156298828124996],[84.17558593749999,29.036376953125],[84.22871093750001,28.911767578124994],[84.796875,28.560205078124994],[84.85507812500003,28.553613281249994],[85.06914062499999,28.609667968749996],[85.12636718750002,28.60263671875],[85.15908203125002,28.592236328124997],[85.16015625,28.571875],[85.12148437500002,28.484277343749994],[85.08857421875001,28.372265625],[85.12246093750002,28.315966796874996],[85.21210937500001,28.292626953124994],[85.41064453125,28.276025390624994],[85.67832031250003,28.27744140625],[85.75947265625001,28.220654296874997],[85.84023437500002,28.1353515625],[85.92167968749999,27.989697265624997],[85.9541015625,27.92822265625],[85.99453125000002,27.910400390625],[86.06416015625001,27.934716796874994],[86.07871093750003,28.08359375],[86.13701171874999,28.11435546875],[86.21796875000001,28.0220703125],[86.32861328125,27.959521484374996],[86.40869140625,27.928662109374997],[86.51689453124999,27.963525390624994],[86.55449218749999,28.085205078125],[86.61445312500001,28.10302734375],[86.69052734375003,28.094921875],[86.71962890625002,28.070654296875],[86.75039062500002,28.0220703125],[86.93378906250001,27.968457031249997],[87.02011718750003,27.928662109374997],[87.14140624999999,27.838330078124997],[87.29072265625001,27.821923828124994],[87.62255859375,27.815185546875],[87.86074218750002,27.886083984375],[88.10976562500002,27.87060546875],[87.984375,27.133935546874994]]]},"properties":{"name":"Nepal","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[169.17822265624997,-52.497265625],[169.12753906250006,-52.570312499999964],[169.02177734375002,-52.49541015624998],[169.17822265624997,-52.497265625]]],[[[166.22109375,-50.76152343749997],[166.2428710937501,-50.84570312499998],[165.88916015624997,-50.80771484374996],[166.10136718750002,-50.538964843750016],[166.26748046875005,-50.558593750000014],[166.22109375,-50.76152343749997]]],[[[168.14492187500005,-46.862207031249966],[168.04316406250004,-46.9326171875],[168.2409179687501,-47.070019531250026],[167.52197265624997,-47.258691406249994],[167.80078125000003,-46.90654296875002],[167.78398437500007,-46.699804687500006],[167.9557617187501,-46.69443359374998],[168.14492187500005,-46.862207031249966]]],[[[166.97949218749997,-45.17968750000003],[167.02265625000004,-45.299804687499986],[166.89267578125012,-45.24052734374999],[166.97949218749997,-45.17968750000003]]],[[[-176.17763671874997,-43.74033203124998],[-176.38173828124997,-43.86679687499998],[-176.40737304687497,-43.7609375],[-176.516552734375,-43.78476562499996],[-176.33359375000003,-44.02529296875004],[-176.51552734374997,-44.11660156249998],[-176.62934570312495,-44.036132812500014],[-176.55512695312504,-43.85195312499998],[-176.84765625000003,-43.82392578125004],[-176.56611328124995,-43.717578125000045],[-176.17763671874997,-43.74033203124998]]],[[[173.91464843750018,-40.86367187500004],[173.78085937500012,-40.921777343749966],[173.964453125,-40.71298828124998],[173.91464843750018,-40.86367187500004]]],[[[173.11533203125006,-41.27929687499997],[173.94716796875005,-40.92412109375],[173.79785156250003,-41.271972656249986],[173.99941406250005,-40.99326171874996],[174.30253906249996,-41.019531249999986],[174.03857421875003,-41.24189453125],[174.37011718750009,-41.1037109375],[174.06933593750009,-41.42949218750002],[174.08369140625015,-41.67080078124998],[174.2831054687501,-41.740625],[173.22119140624997,-42.976562499999986],[172.62402343749997,-43.27246093749996],[172.73476562500005,-43.35478515625003],[172.52666015625002,-43.464746093749966],[172.69345703125006,-43.444335937499986],[172.80703125000005,-43.620996093749994],[173.07324218750003,-43.676171874999966],[173.065625,-43.87460937499998],[172.50273437500002,-43.84365234374998],[172.48037109375,-43.726660156250034],[172.29658203125004,-43.867871093750026],[172.035546875,-43.70175781250002],[172.17978515625006,-43.895996093749986],[171.24072265624997,-44.26416015625003],[171.14628906250002,-44.9123046875],[170.99902343750003,-44.91142578124999],[171.11328125000003,-45.03925781250001],[170.7005859375,-45.68427734374997],[170.77626953125005,-45.870898437499974],[170.4191406250001,-45.94101562499996],[169.68662109375006,-46.55166015625002],[169.34228515625003,-46.62050781250001],[168.38212890625007,-46.60537109374995],[168.1891601562501,-46.362207031249966],[167.8419921875001,-46.366210937499986],[167.539453125,-46.14853515624996],[167.36894531250007,-46.24150390624999],[166.73154296875006,-46.19785156249998],[166.91669921875004,-45.95722656249998],[166.64990234374997,-46.04169921875004],[166.71796875000004,-45.88935546875001],[166.49316406249997,-45.9638671875],[166.48828124999997,-45.83183593750002],[167.0033203125,-45.71210937500004],[166.79765625000002,-45.64560546874999],[166.99082031250012,-45.531738281249986],[166.73398437500012,-45.54355468749999],[166.74306640625,-45.46845703124997],[166.91992187499997,-45.40791015624998],[166.86923828125006,-45.31123046875],[167.15566406250005,-45.410937499999974],[167.23007812500012,-45.29033203125],[167.02587890624997,-45.12363281249998],[167.25947265625004,-45.08222656249997],[167.19453125000004,-44.963476562500034],[167.41074218750006,-44.82792968750003],[167.4662109375,-44.958300781250045],[167.48496093750006,-44.77138671874998],[167.78701171875,-44.59501953125002],[167.90898437500002,-44.66474609375001],[167.85654296875012,-44.50068359374998],[168.45742187500005,-44.030566406250045],[169.17890625000004,-43.9130859375],[169.16953125000006,-43.77705078125],[169.83388671875,-43.53701171875004],[170.24023437499997,-43.163867187500045],[170.39609375000012,-43.18222656249996],[170.30283203125012,-43.10761718750004],[170.61181640625003,-43.091796875000014],[170.5236328125001,-43.00898437500001],[170.6654296875,-42.961230468749974],[170.73525390625005,-43.029785156249986],[170.96992187500004,-42.71835937499996],[171.01171875000003,-42.88505859374999],[171.027734375,-42.696093750000045],[171.31337890625005,-42.460156250000026],[171.48623046875,-41.7947265625],[171.94804687500002,-41.53867187499996],[172.13945312500002,-40.947265625000014],[172.640625,-40.51826171875001],[172.94365234375007,-40.51875],[172.73261718750004,-40.54375],[172.70439453125002,-40.6677734375],[172.988671875,-40.84824218749999],[173.11533203125006,-41.27929687499997]]],[[[175.54316406250015,-36.279296874999986],[175.34619140624997,-36.217773437499986],[175.3895507812501,-36.07773437499996],[175.54316406250015,-36.279296874999986]]],[[[173.26943359375,-34.93476562499998],[173.44785156250012,-34.844335937500034],[173.47265625000003,-34.94697265624998],[174.10400390625003,-35.14287109375002],[174.1431640625,-35.3],[174.32031250000003,-35.246679687500034],[174.58066406250018,-35.78554687500004],[174.39580078124996,-35.79736328124996],[174.8021484375,-36.30947265625001],[174.72246093750007,-36.84121093749998],[175.29951171875004,-36.99326171874996],[175.38535156250012,-37.206933593749966],[175.54248046874997,-37.2013671875],[175.46083984375005,-36.475683593750034],[175.77216796875004,-36.73515625],[176.10839843749997,-37.64511718749998],[177.27402343750012,-37.993457031249974],[178.0091796875,-37.55488281249998],[178.53623046875006,-37.69208984375004],[178.26767578125006,-38.551171875],[177.976171875,-38.72226562500005],[177.90878906250012,-39.23955078125],[177.52294921875003,-39.07382812499999],[177.07675781250012,-39.22177734375002],[176.93925781249996,-39.55527343750002],[177.10986328125009,-39.673144531250045],[176.8421875000001,-40.15781250000002],[175.98291015625003,-41.21328125000002],[175.30976562499998,-41.610644531249974],[175.16562500000012,-41.41738281249995],[174.88134765624997,-41.42402343749997],[174.8656250000001,-41.223046874999966],[174.63535156250012,-41.28945312499999],[175.1625,-40.62158203125],[175.25410156250004,-40.28935546875],[175.1559570312501,-40.11494140625],[175.00927734375009,-39.95214843749996],[173.93437500000013,-39.50908203125002],[173.76367187499997,-39.31875],[173.84433593750006,-39.13935546875001],[174.39843749999997,-38.96259765624998],[174.59736328124998,-38.78505859374995],[174.80166015625005,-37.895507812500014],[174.92802734375002,-37.80449218750003],[174.58583984374994,-37.09775390625002],[174.73427734375,-37.21523437499998],[174.92890625000004,-37.084765625000045],[174.78203125000013,-36.94375],[174.47558593750009,-36.94189453124997],[174.1888671875001,-36.492285156250034],[174.4015625000001,-36.60195312499999],[174.39277343750004,-36.24003906249999],[174.26787109375002,-36.16308593750003],[174.25371093749996,-36.24912109374998],[174.03642578125013,-36.12246093750001],[173.91445312499994,-35.908691406249986],[173.91728515625002,-36.01816406249999],[174.16640624999994,-36.327636718749986],[174.05468749999991,-36.35976562500004],[173.41220703125012,-35.542578125],[173.62617187500004,-35.31914062499996],[173.3763671875001,-35.50009765624996],[173.31396484375003,-35.44335937499996],[173.11669921874997,-35.205273437500026],[173.190625,-35.01621093749998],[172.70595703125005,-34.45517578124998],[173.04394531249997,-34.429101562499994],[172.96376953125,-34.53515625000003],[173.26943359375,-34.93476562499998]]]]},"properties":{"name":"New Zealand","childNum":9}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[58.722070312499994,20.21875],[58.640917968750074,20.210693359375057],[58.64121093750006,20.33735351562501],[58.884375,20.680566406250023],[58.95078125000006,20.516162109375017],[58.722070312499994,20.21875]]],[[[56.38798828125002,24.97919921875004],[56.640625,24.4703125],[57.12304687500003,23.980712890625],[58.773046875,23.517187499999977],[59.42939453125004,22.660839843749955],[59.82324218749997,22.50898437500004],[59.8,22.21992187500001],[59.37148437500005,21.498828125000017],[58.89570312500004,21.11279296874997],[58.47421875000006,20.406884765624966],[58.20898437500003,20.423974609374994],[58.245019531249994,20.599218749999977],[58.16943359375003,20.58950195312505],[57.86181640624997,20.24414062500003],[57.71416015625002,19.678417968749983],[57.81162109375006,19.01708984374997],[56.825976562500074,18.753515625],[56.3834960937501,17.98798828125001],[55.479101562500006,17.84326171875003],[55.25537109375003,17.58564453125004],[55.275195312500074,17.320898437500006],[55.06416015625004,17.038916015625034],[54.06816406250002,17.005517578124966],[53.60986328124997,16.75996093750004],[53.08564453125004,16.648388671874955],[51.977636718750006,18.996142578125074],[54.97734375000002,19.995947265625006],[55.64101562499999,22.001855468749994],[55.185839843750074,22.7041015625],[55.1999023437501,23.034765625000034],[55.53164062499999,23.81904296875001],[55.4684570312501,23.94111328125001],[55.98515625000002,24.063378906249966],[55.92861328125005,24.215136718750074],[55.76083984375006,24.24267578125],[55.795703125000074,24.868115234374955],[56.00058593750006,24.953222656249977],[56.06386718750005,24.73876953125],[56.38798828125002,24.97919921875004]]],[[[56.29785156250003,25.650683593750045],[56.144628906250006,25.690527343750006],[56.16748046875003,26.047460937499977],[56.08046875,26.06264648437505],[56.41308593749997,26.351171875000034],[56.29785156250003,25.650683593750045]]]]},"properties":{"name":"Oman","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[73.08961802927895,36.86435907947333],[73.08203125000107,36.43949943991182],[72.31128647748268,35.77290936638241],[73.13410859949555,34.82510160558277],[73.19895048106557,33.88770931468204],[74.00809389139292,33.25375789331485],[73.98984375,33.22119140625],[74.30361328125002,32.991796875],[74.30546875000002,32.810449218749994],[74.35458984375,32.768701171874994],[74.58828125000002,32.753222656249996],[74.632421875,32.770898437499994],[74.66328125000001,32.757666015625],[74.64335937500002,32.607714843749996],[74.68574218750001,32.493798828124994],[74.78886718750002,32.4578125],[74.9873046875,32.462207031249996],[75.33349609375,32.279199218749994],[75.25410156250001,32.14033203125],[75.13876953125,32.104785156249996],[75.07148437500001,32.08935546875],[74.73945312500001,31.948828125],[74.6357421875,31.88974609375],[74.55556640625002,31.818554687499997],[74.5259765625,31.76513671875],[74.50996093750001,31.712939453124996],[74.58183593750002,31.52392578125],[74.59394531250001,31.465380859374996],[74.53496093750002,31.261376953124994],[74.51767578125,31.185595703124996],[74.6103515625,31.112841796874996],[74.62578125000002,31.06875],[74.6328125,31.03466796875],[74.509765625,30.959667968749997],[74.38037109375,30.893408203125],[74.33935546875,30.8935546875],[74.00898437500001,30.519677734374994],[73.89931640625002,30.435351562499996],[73.88271484375002,30.3521484375],[73.92460937500002,30.28164062499999],[73.93339843750002,30.222070312499994],[73.88652343750002,30.162011718749994],[73.8091796875,30.093359375],[73.38164062500002,29.934375],[72.9033203125,29.028759765624997],[72.34189453125,28.751904296874997],[72.2919921875,28.697265625],[72.128515625,28.346337890624994],[71.94804687500002,28.177294921874996],[71.88886718750001,28.0474609375],[71.87031250000001,27.9625],[71.54296875,27.869873046875],[71.18476562500001,27.831640625],[70.87490234375002,27.714453125],[70.79794921875,27.709619140624994],[70.69160156250001,27.768994140624997],[70.62910156250001,27.937451171874997],[70.40371093750002,28.025048828124994],[70.24433593750001,27.934130859374996],[70.1939453125,27.894873046875],[70.14453125,27.849023437499994],[70.0498046875,27.694726562499994],[69.89628906250002,27.4736328125],[69.56796875,27.174609375],[69.47001953125002,26.804443359375],[70.11464843750002,26.548046875],[70.14921875000002,26.347558593749994],[70.1001953125,25.910058593749994],[70.2646484375,25.70654296875],[70.3251953125,25.685742187499997],[70.44853515625002,25.681347656249997],[70.505859375,25.685302734375],[70.56953125000001,25.705957031249994],[70.6484375,25.666943359374997],[70.65205078125001,25.422900390625003],[70.87773437500002,25.06298828125],[70.95087890625001,24.8916015625],[71.02070312500001,24.75766601562499],[71.0478515625,24.687744140625],[71.00234375000002,24.65390625],[70.97636718750002,24.61875],[70.96982421875,24.571875],[71.04531250000002,24.429980468750003],[71.04404296875,24.400097656249997],[70.98281250000002,24.361035156249997],[70.928125,24.362353515625003],[70.88623046875,24.34375],[70.80507812500002,24.261962890625],[70.76728515625001,24.245410156250003],[70.71630859375,24.237988281249997],[70.65947265625002,24.24609375],[70.57929687500001,24.279052734375],[70.55585937500001,24.331103515625003],[70.5650390625,24.385791015625003],[70.54677734375002,24.41831054687499],[70.2890625,24.35629882812499],[70.0982421875,24.2875],[69.80517578125,24.165234375],[69.71621093750002,24.172607421875],[69.63417968750002,24.22519531249999],[69.5591796875,24.273095703124994],[69.44345703125,24.275390625],[69.23505859375001,24.268261718749997],[69.11953125000002,24.26865234374999],[69.05156250000002,24.286328125],[68.98457031250001,24.273095703124994],[68.90078125000002,24.292431640624997],[68.86347656250001,24.266503906249994],[68.82832031250001,24.26401367187499],[68.78115234375002,24.313720703125],[68.75898437500001,24.30722656249999],[68.73964843750002,24.2919921875],[68.728125,24.265625],[68.72412109375,23.96469726562499],[68.48867187500002,23.967236328124997],[68.38125,23.950878906249997],[68.28251953125002,23.927978515625],[68.1650390625,23.857324218749994],[68.11552734375002,23.753369140624997],[67.8599609375,23.90268554687499],[67.66845703125,23.810986328124997],[67.309375,24.1748046875],[67.171484375,24.756103515625],[66.70302734375002,24.8609375],[66.69863281250002,25.226318359375],[66.32421875,25.601806640625],[66.13115234375002,25.49326171874999],[66.46767578125002,25.4453125],[64.77666015625002,25.307324218749997],[64.65898437500002,25.18408203125],[64.059375,25.40292968749999],[63.556640625,25.353173828124994],[63.49140625000001,25.210839843749994],[61.56689453125,25.186328125],[61.587890625,25.20234375],[61.61542968750001,25.2861328125],[61.64013671875,25.584619140624994],[61.67138671875,25.6923828125],[61.66181640625001,25.751269531250003],[61.66865234375001,25.768994140624997],[61.73769531250002,25.82109375],[61.75439453125,25.84335937499999],[61.78076171875,25.995849609375],[61.80996093750002,26.165283203125],[61.842382812500006,26.225927734375],[62.1259765625,26.368994140625],[62.239355468750006,26.35703125],[62.31230468750002,26.490869140624994],[63.168066406250006,26.665576171874996],[63.186132812500006,26.837597656249997],[63.24160156250002,26.86474609375],[63.25039062500002,26.879248046875],[63.24208984375002,27.077685546874996],[63.30517578125,27.124560546874996],[63.30156250000002,27.15146484375],[63.25625,27.207910156249994],[63.19609375000002,27.243945312499996],[63.16679687500002,27.252490234374996],[62.75273437500002,27.265625],[62.782324218750006,27.800537109375],[62.7625,28.202050781249994],[61.88984375000001,28.546533203124994],[61.15214843750002,29.542724609375],[61.0341796875,29.663427734375],[60.843359375,29.858691406249996],[61.22441406250002,29.749414062499994],[62.0009765625,29.530419921874994],[62.4765625,29.408349609374994],[63.56757812500001,29.497998046874997],[64.09873046875,29.391943359375],[64.39375,29.544335937499994],[65.09550781250002,29.559472656249994],[66.23125,29.86572265625],[66.346875,30.802783203124996],[66.82929687500001,31.263671875],[67.45283203125001,31.234619140625],[67.737890625,31.343945312499997],[67.57822265625,31.506494140624994],[68.16103515625002,31.802978515625],[68.59765625,31.802978515625],[68.86894531250002,31.634228515624997],[69.279296875,31.936816406249996],[69.24140625000001,32.433544921875],[69.5015625,33.020068359374996],[70.26113281250002,33.289013671875],[69.8896484375,34.007275390625],[70.65400390625001,33.952294921874994],[71.05156250000002,34.049707031249994],[71.095703125,34.369433593749996],[70.965625,34.53037109375],[71.62050781250002,35.183007812499994],[71.57197265625001,35.546826171875],[71.18505859375,36.04208984375],[71.23291015625,36.12177734375],[72.24980468750002,36.734716796875],[73.08961802927895,36.86435907947333]]]},"properties":{"name":"Pakistan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-81.60327148437497,7.332812499999989],[-81.85205078125003,7.453320312500026],[-81.812158203125,7.59238281250002],[-81.72875976562494,7.62119140625002],[-81.60327148437497,7.332812499999989]]],[[[-78.89833984375002,8.27426757812502],[-78.960595703125,8.435839843749989],[-78.88325195312495,8.460253906249989],[-78.89833984375002,8.27426757812502]]],[[[-77.37421874999993,8.65830078125002],[-77.47851562499994,8.498437500000037],[-77.19599609374995,7.972460937500003],[-77.53828124999995,7.56625976562502],[-77.76191406249995,7.698828125000034],[-77.90117187499999,7.229345703125048],[-78.42158203124995,8.060986328125011],[-78.28735351562497,8.091796874999972],[-78.14189453125002,8.386083984374977],[-77.76054687499993,8.133251953124983],[-78.09946289062498,8.496972656250009],[-78.22304687500002,8.396630859374994],[-78.39921874999993,8.505664062500003],[-78.40986328124998,8.35532226562502],[-78.51406249999997,8.628173828125],[-79.08637695312495,8.997167968750034],[-79.50708007812494,8.97006835937502],[-79.68745117187493,8.850976562500009],[-79.81591796875,8.639208984375031],[-79.75043945312498,8.595507812500017],[-80.458984375,8.213867187499972],[-80.45810546875,8.077050781249994],[-80.01123046875,7.500048828125031],[-80.66669921874995,7.225683593750006],[-80.90122070312503,7.277148437500017],[-81.06386718749994,7.89975585937502],[-81.26840820312495,7.625488281250014],[-81.50415039062503,7.721191406249972],[-81.72763671875,8.137548828124977],[-82.15986328124995,8.19482421875],[-82.23544921874998,8.311035156250057],[-82.67954101562503,8.321972656249969],[-82.86611328124994,8.246337890625014],[-82.87934570312498,8.07065429687502],[-83.02734375,8.337744140624991],[-82.86162109374999,8.453515625000037],[-82.84477539062493,8.489355468749963],[-82.85571289062494,8.635302734375031],[-82.91704101562502,8.740332031250034],[-82.88198242187497,8.805322265625037],[-82.72783203125002,8.916064453125031],[-82.78305664062498,8.990283203124974],[-82.88134765625003,9.055859375000011],[-82.94033203124997,9.060107421874989],[-82.93984374999994,9.449169921875026],[-82.92504882812494,9.469042968749989],[-82.88896484374999,9.481005859375017],[-82.86015625,9.511474609375014],[-82.84399414062497,9.570800781250014],[-82.801025390625,9.591796875000028],[-82.64409179687502,9.505859375000028],[-82.56357421875003,9.576660156249972],[-82.50034179687503,9.523242187500017],[-82.37080078124993,9.428564453124991],[-82.33974609375,9.209179687499983],[-82.18813476562502,9.191748046874977],[-82.24418945312499,9.031494140625014],[-82.07788085937503,8.93486328124996],[-81.78022460937495,8.957226562499983],[-81.89448242187495,9.140429687500003],[-81.35478515624996,8.78056640624996],[-80.83867187499999,8.887207031250014],[-80.12709960937497,9.20991210937504],[-79.57729492187497,9.597851562500026],[-78.08276367187494,9.236279296874997],[-77.37421874999993,8.65830078125002]]]]},"properties":{"name":"Panama","childNum":3}},{"geometry":{"type":"Polygon","coordinates":[[[-73.137353515625,-6.4658203125],[-73.75810546874999,-6.90576171875],[-73.79301757812499,-7.135058593750003],[-73.758203125,-7.172753906250009],[-73.72041015625,-7.309277343750011],[-73.964306640625,-7.37890625],[-73.95849609375,-7.506640625],[-73.98173828124999,-7.535742187500006],[-74.00205078124999,-7.556054687500009],[-73.98173828124999,-7.585058593750006],[-73.946875,-7.611230468750009],[-73.89462890624999,-7.65478515625],[-73.82207031249999,-7.738964843750011],[-73.76689453124999,-7.753515625],[-73.72041015625,-7.782519531250003],[-73.73203125,-7.875390625],[-73.54912109374999,-8.345800781250006],[-73.39814453125,-8.458984375],[-73.36040039062499,-8.479296875],[-73.351708984375,-8.51416015625],[-73.35673828124999,-8.566992187500006],[-73.30244140625,-8.654003906250011],[-73.203125,-8.719335937500006],[-73.0705078125,-8.8828125],[-72.9740234375,-8.9931640625],[-72.970361328125,-9.1201171875],[-73.08984375,-9.265722656250006],[-73.209423828125,-9.411425781250003],[-72.379052734375,-9.51015625],[-72.181591796875,-10.003710937500003],[-71.33940429687499,-9.988574218750003],[-71.11528320312499,-9.852441406250009],[-71.041748046875,-9.81875],[-70.6369140625,-9.478222656250011],[-70.60791015625,-9.463671875],[-70.54111328124999,-9.4375],[-70.57016601562499,-9.48984375],[-70.592236328125,-9.54345703125],[-70.59916992187499,-9.620507812500009],[-70.642333984375,-11.01025390625],[-70.59653320312499,-10.976855468750003],[-70.53325195312499,-10.946875],[-70.45087890625,-11.024804687500009],[-70.39228515625,-11.05859375],[-70.3419921875,-11.066699218750003],[-70.29038085937499,-11.064257812500003],[-70.22006835937499,-11.04765625],[-70.06630859375,-10.982421875],[-69.9603515625,-10.929882812500011],[-69.839794921875,-10.933398437500003],[-69.6740234375,-10.9541015625],[-69.57861328125,-10.951757812500006],[-68.68525390625,-12.501953125],[-68.97861328124999,-12.880078125000011],[-69.07412109375,-13.682812500000011],[-68.87089843749999,-14.169726562500003],[-69.35947265624999,-14.7953125],[-69.37470703125,-14.962988281250006],[-69.17246093749999,-15.236621093750003],[-69.4208984375,-15.640625],[-69.21757812499999,-16.14912109375001],[-68.8427734375,-16.337890625],[-69.03291015625,-16.47597656250001],[-69.020703125,-16.6421875],[-69.62485351562499,-17.2001953125],[-69.645703125,-17.24853515625],[-69.521923828125,-17.388964843750003],[-69.510986328125,-17.46035156250001],[-69.51108398437499,-17.5048828125],[-69.5109375,-17.50605468750001],[-69.58642578125,-17.5732421875],[-69.684765625,-17.64980468750001],[-69.85209960937499,-17.70380859375001],[-69.80258789062499,-17.990234375],[-69.92636718749999,-18.2060546875],[-70.41826171874999,-18.34560546875001],[-71.33696289062499,-17.68251953125001],[-71.5322265625,-17.29433593750001],[-72.46767578125,-16.708105468750006],[-73.727685546875,-16.20166015625],[-75.104248046875,-15.411914062500003],[-75.533642578125,-14.89921875],[-75.93388671874999,-14.63359375],[-76.37646484375,-13.863085937500003],[-76.259228515625,-13.802832031250006],[-76.2236328125,-13.371191406250006],[-76.83212890624999,-12.348730468750006],[-77.152734375,-12.060351562500003],[-77.2203125,-11.663378906250003],[-77.633203125,-11.287792968750011],[-77.736083984375,-10.83671875],[-78.18559570312499,-10.089062500000011],[-78.76225585937499,-8.616992187500003],[-79.37724609374999,-7.835546875],[-79.99497070312499,-6.768945312500009],[-81.142041015625,-6.056738281250006],[-81.164306640625,-5.875292968750003],[-80.9306640625,-5.8408203125],[-80.88193359374999,-5.635058593750003],[-81.33662109375,-4.66953125],[-81.283203125,-4.322265625],[-80.503662109375,-3.49609375],[-80.324658203125,-3.387890625000011],[-80.24375,-3.576757812500006],[-80.19414062499999,-3.905859375],[-80.23051757812499,-3.924023437500011],[-80.26689453124999,-3.948828125],[-80.30327148437499,-4.005078125000011],[-80.43720703125,-3.978613281250006],[-80.49013671875,-4.010058593750003],[-80.510009765625,-4.069531250000011],[-80.49345703124999,-4.119140625],[-80.4884765625,-4.16552734375],[-80.453759765625,-4.205175781250006],[-80.35288085937499,-4.20849609375],[-80.44384765625,-4.335839843750009],[-80.4884765625,-4.393652343750006],[-80.47856445312499,-4.430078125],[-80.42416992187499,-4.46142578125],[-80.38349609375,-4.463671875],[-80.293359375,-4.416796875],[-80.1974609375,-4.31103515625],[-80.13955078125,-4.296093750000011],[-80.06352539062499,-4.327539062500009],[-79.962890625,-4.390332031250011],[-79.8451171875,-4.445898437500006],[-79.797265625,-4.476367187500003],[-79.71098632812499,-4.467578125],[-79.63852539062499,-4.454882812500003],[-79.57768554687499,-4.500585937500006],[-79.51616210937499,-4.539160156250006],[-79.501904296875,-4.670605468750011],[-79.45576171875,-4.766210937500006],[-79.3994140625,-4.840039062500011],[-79.33095703125,-4.927832031250006],[-79.26811523437499,-4.957617187500006],[-79.186669921875,-4.958203125000011],[-79.07626953124999,-4.990625],[-79.03330078124999,-4.969140625],[-78.995263671875,-4.908007812500003],[-78.97539062499999,-4.873242187500011],[-78.919189453125,-4.8583984375],[-78.92578125,-4.770703125000011],[-78.9076171875,-4.714453125],[-78.8615234375,-4.6650390625],[-78.68603515625,-4.562402343750009],[-78.64799804687499,-4.248144531250006],[-78.345361328125,-3.397363281250009],[-78.240380859375,-3.472558593750009],[-77.860595703125,-2.981640625000011],[-76.6791015625,-2.562597656250006],[-76.089794921875,-2.133105468750003],[-75.570556640625,-1.53125],[-75.42041015625,-0.962207031250003],[-75.40805664062499,-0.92431640625],[-75.24960937499999,-0.951855468750011],[-75.259375,-0.590136718750003],[-75.42470703125,-0.408886718750011],[-75.49106445312499,-0.248339843750003],[-75.56059570312499,-0.200097656250009],[-75.63203125,-0.157617187500009],[-75.62626953124999,-0.122851562500003],[-75.340478515625,-0.1421875],[-75.13837890625,-0.050488281250011],[-74.8017578125,-0.200097656250009],[-74.78046875,-0.24453125],[-74.75537109375,-0.298632812500003],[-74.691650390625,-0.335253906250003],[-74.616357421875,-0.370019531250009],[-74.555078125,-0.429882812500011],[-74.5138671875,-0.470117187500009],[-74.46518554687499,-0.517675781250006],[-74.41787109375,-0.580664062500006],[-74.334423828125,-0.850878906250003],[-74.28388671875,-0.927832031250006],[-74.24638671874999,-0.970605468750009],[-74.05439453125,-1.028613281250003],[-73.98681640625,-1.09814453125],[-73.926953125,-1.125195312500011],[-73.86318359375,-1.196679687500009],[-73.664306640625,-1.248828125],[-73.4962890625,-1.693066406250011],[-73.19697265625,-1.830273437500011],[-73.1544921875,-2.278222656250009],[-72.9896484375,-2.339746093750009],[-72.94111328125,-2.39404296875],[-72.21845703125,-2.400488281250006],[-71.98427734375,-2.3265625],[-71.93247070312499,-2.288671875],[-71.86728515624999,-2.227734375000011],[-71.802734375,-2.166308593750003],[-71.75253906249999,-2.152734375],[-71.55947265625,-2.22421875],[-71.39697265625,-2.334082031250006],[-71.19638671874999,-2.313085937500006],[-71.11337890624999,-2.245410156250003],[-71.027294921875,-2.225781250000011],[-70.96855468749999,-2.206835937500003],[-70.70537109374999,-2.341992187500011],[-70.64799804687499,-2.40576171875],[-70.57587890625,-2.418261718750003],[-70.29462890625,-2.552539062500003],[-70.24443359374999,-2.606542968750006],[-70.16474609375,-2.639843750000011],[-70.095849609375,-2.658203125],[-70.735107421875,-3.781542968750003],[-70.5296875,-3.866406250000011],[-70.48583984375,-3.869335937500011],[-70.42109375,-3.849609375],[-70.37919921874999,-3.81875],[-70.339501953125,-3.814355468750009],[-70.2984375,-3.84423828125],[-70.24028320312499,-3.882714843750009],[-70.16752929687499,-4.050195312500009],[-70.0171875,-4.162011718750009],[-69.96591796874999,-4.2359375],[-69.97202148437499,-4.301171875],[-70.00395507812499,-4.327246093750006],[-70.05332031249999,-4.333105468750006],[-70.12880859375,-4.28662109375],[-70.23916015625,-4.301171875],[-70.31689453125,-4.246972656250009],[-70.34365234375,-4.193652343750003],[-70.40463867187499,-4.150097656250011],[-70.5306640625,-4.167578125],[-70.72158203125,-4.158886718750011],[-70.79951171875,-4.17333984375],[-70.97368164062499,-4.350488281250009],[-71.8447265625,-4.50439453125],[-72.256787109375,-4.748925781250009],[-72.35283203124999,-4.786035156250009],[-72.468994140625,-4.901269531250009],[-72.608349609375,-5.009570312500003],[-72.69873046875,-5.0671875],[-72.83193359375,-5.09375],[-72.88706054687499,-5.122753906250011],[-72.9798828125,-5.634863281250006],[-73.16289062499999,-5.933398437500003],[-73.209375,-6.028710937500009],[-73.235546875,-6.0984375],[-73.137353515625,-6.4658203125]]]},"properties":{"name":"Peru","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[120.250390625,5.256591796875043],[119.82148437500004,5.06953125000004],[120.1652343750001,5.332421875000037],[120.250390625,5.256591796875043]]],[[[121.159375,6.075634765625011],[121.41103515625005,5.939843749999966],[121.29443359374997,5.869970703125034],[120.8763671875,5.95263671875],[121.159375,6.075634765625011]]],[[[122.09287109375012,6.428320312500006],[121.95917968750004,6.415820312500045],[121.83203125000003,6.664062499999986],[122.0583007812501,6.740722656249972],[122.32353515625002,6.602246093750011],[122.09287109375012,6.428320312500006]]],[[[122.93710937500006,7.409130859374983],[122.80468750000003,7.315966796875017],[122.82216796875,7.428466796875014],[122.93710937500006,7.409130859374983]]],[[[117.07988281250007,7.883398437499977],[117.02832031249997,7.807519531249966],[116.96953125000007,7.894921875],[116.9935546875,8.050537109375014],[117.07705078125,8.069140624999974],[117.07988281250007,7.883398437499977]]],[[[117.35527343750002,8.21464843749996],[117.28701171875,8.191015625000034],[117.28085937500006,8.314990234374974],[117.35527343750002,8.21464843749996]]],[[[124.80664062500003,9.142626953125003],[124.66582031250002,9.132324218750043],[124.65332031250003,9.225830078125],[124.80664062500003,9.142626953125003]]],[[[123.69765625000005,9.237304687500028],[123.61445312500004,9.103320312499989],[123.49345703125002,9.192089843750054],[123.69765625000005,9.237304687500028]]],[[[126.00595703125006,9.320947265625009],[126.19335937499997,9.276708984374963],[126.30458984375,8.952050781249994],[126.13955078125005,8.59565429687504],[126.36533203125012,8.483886718750014],[126.45869140625004,8.20283203125004],[126.43535156250002,7.832812499999974],[126.57011718750002,7.677246093749986],[126.58154296875003,7.247753906249969],[126.1920898437501,6.852539062500014],[126.18935546875,6.309667968749991],[125.82441406250004,7.333300781249989],[125.68925781250007,7.263037109374977],[125.38066406250007,6.689941406250014],[125.58847656250012,6.465771484374997],[125.66796874999997,5.97866210937498],[125.34648437500002,5.598974609374977],[125.23154296875006,6.069531250000011],[124.92734375000006,5.875341796874977],[124.21279296875,6.233251953124977],[124.078125,6.404443359375037],[123.98525390625,6.993701171875003],[124.20664062500006,7.396435546874983],[123.66582031250002,7.817773437500023],[123.49306640625,7.80791015624996],[123.39091796875007,7.407519531250017],[123.09667968749997,7.700439453125],[122.8429687500001,7.529296875000043],[122.79179687500002,7.72246093749996],[122.61621093749997,7.763134765624983],[122.14248046875,6.949658203124997],[121.96425781250005,6.96821289062504],[121.92460937500002,7.199511718750003],[122.24335937500004,7.945117187500031],[122.91113281250003,8.156445312499997],[123.05058593750002,8.433935546875048],[123.43457031249997,8.70332031250004],[123.84921875000006,8.432714843749977],[123.79941406250006,8.049121093749989],[124.19765625,8.229541015624974],[124.40488281250006,8.599853515625014],[124.7311523437501,8.562988281250043],[124.86894531250002,8.972265625000034],[125.141015625,8.86875],[125.20966796875004,9.027148437500017],[125.49873046875004,9.014746093749977],[125.47128906250006,9.756787109374983],[126.00595703125006,9.320947265625009]]],[[[126.059375,9.766210937500034],[125.99121093750003,9.838525390625023],[126.07382812500006,10.059228515625051],[126.1725585937501,9.79995117187498],[126.059375,9.766210937500034]]],[[[124.59384765625006,9.787207031249963],[124.1224609375,9.599316406249969],[123.93564453125012,9.623974609375011],[123.81718750000002,9.817382812499986],[124.17285156250003,10.135205078124983],[124.33574218750002,10.159912109375043],[124.57714843749997,10.026708984374991],[124.59384765625006,9.787207031249963]]],[[[125.69023437500007,9.914453125000037],[125.49482421875004,10.118701171875003],[125.66679687500002,10.440136718750026],[125.69023437500007,9.914453125000037]]],[[[119.91621093750004,10.485986328125037],[119.79316406250004,10.455273437499997],[119.85205078124997,10.64013671875],[120.00839843750012,10.570117187500031],[119.91621093750004,10.485986328125037]]],[[[122.64951171875012,10.472705078125003],[122.53837890625002,10.424951171875037],[122.5375,10.607568359375023],[122.70126953125006,10.740625],[122.64951171875012,10.472705078125003]]],[[[123.13085937500003,9.064111328124994],[122.99472656250006,9.058837890624986],[122.8666015625,9.319824218750043],[122.5625,9.482812500000037],[122.39951171875006,9.823046874999989],[122.47148437500007,9.961523437500034],[122.85556640625006,10.0869140625],[122.81699218750012,10.503808593750023],[122.98330078125,10.886621093750037],[123.25664062500007,10.99394531249996],[123.51064453125005,10.923046875],[123.5675781250001,10.780761718750057],[123.16201171875,9.864257812500028],[123.1498046875,9.606152343750026],[123.32050781250004,9.27294921875],[123.13085937500003,9.064111328124994]]],[[[123.37031250000004,9.449609375000023],[123.38623046874997,9.967089843750017],[124.03886718750002,11.273535156249991],[124.00498046875012,10.40009765625004],[123.70048828125007,10.128320312500009],[123.37031250000004,9.449609375000023]]],[[[123.75703125000004,11.28330078125002],[123.815625,11.15073242187502],[123.73671875,11.151464843749991],[123.75703125000004,11.28330078125002]]],[[[117.31113281250012,8.439599609375051],[117.21855468750007,8.367285156249963],[117.34990234375002,8.713574218749997],[119.22382812500004,10.477294921875043],[119.30566406250003,10.9736328125],[119.55332031250012,11.31352539062496],[119.52666015625002,10.953173828125003],[119.68691406250005,10.500341796875034],[119.36933593750004,10.327294921875037],[119.19150390625012,10.061083984374989],[118.78212890625005,9.91611328125002],[118.4349609375,9.256005859375009],[117.31113281250012,8.439599609375051]]],[[[119.86142578125006,11.52534179687504],[119.83066406250012,11.375683593750011],[119.72998046874997,11.431933593750017],[119.86142578125006,11.52534179687504]]],[[[124.574609375,11.343066406250031],[124.92998046875002,11.372851562499974],[125.02656250000004,11.21171875],[125.01318359374997,10.785693359374989],[125.26845703125005,10.307714843750048],[125.14257812499997,10.189453125000028],[124.9875,10.36757812499998],[125.02656250000004,10.033105468749966],[124.78076171874997,10.16806640625002],[124.78671875000012,10.781396484375009],[124.66269531250006,10.961962890625017],[124.44550781250004,10.923583984375014],[124.33066406250012,11.535205078125003],[124.574609375,11.343066406250031]]],[[[124.60839843750003,11.492187500000043],[124.48349609375006,11.485839843749986],[124.36035156250003,11.665917968749994],[124.5109375000001,11.687109375000048],[124.60839843750003,11.492187500000043]]],[[[122.49619140625006,11.615087890625034],[122.83808593750004,11.595654296874983],[122.89453125000003,11.44130859374998],[123.15830078125012,11.53554687499999],[123.11953125,11.286816406250026],[122.8029296875001,10.99003906249996],[122.76992187500005,10.823828125000034],[121.95400390625,10.444384765625003],[122.10351562499997,11.64291992187502],[121.91601562499997,11.854345703125006],[122.02919921875005,11.895410156250023],[122.49619140625006,11.615087890625034]]],[[[120.03876953125004,11.703320312499969],[119.94492187500006,11.690722656249989],[119.86093750000006,11.953955078124963],[120.03593750000002,11.917236328125028],[120.03876953125004,11.703320312499969]]],[[[120.1,12.167675781249983],[120.22822265625004,12.219824218750034],[120.31455078125012,12.012402343749969],[120.01054687500002,12.008251953125011],[119.88574218749997,12.299853515625003],[120.1,12.167675781249983]]],[[[122.65449218750004,12.309033203125011],[122.42294921875006,12.455078125],[122.60361328125006,12.49160156249998],[122.65449218750004,12.309033203125011]]],[[[125.23955078125002,12.527880859375003],[125.32021484375,12.321826171875031],[125.53564453125003,12.191406250000028],[125.49179687500006,11.594335937499977],[125.57353515625002,11.238232421874997],[125.73564453125002,11.049609375000017],[125.23339843749997,11.145068359375017],[125.03427734375012,11.341259765625026],[124.91699218750003,11.558398437500031],[124.99501953125,11.764941406250003],[124.445703125,12.152783203124969],[124.29472656250007,12.569335937500014],[125.23955078125002,12.527880859375003]]],[[[123.71660156250007,12.287353515625028],[124.04033203125002,11.966796875],[124.04550781250012,11.752441406250028],[123.47373046875006,12.21665039062502],[123.15781250000012,11.925634765624963],[123.23642578125012,12.583496093750057],[123.71660156250007,12.287353515625028]]],[[[122.09404296875002,12.354882812500023],[122.01396484375002,12.105615234375037],[121.9232421875,12.331298828125014],[122.00156250000006,12.598535156250009],[122.14501953124997,12.652636718750017],[122.09404296875002,12.354882812500023]]],[[[123.77539062499997,12.453906250000031],[123.77910156250002,12.366259765625031],[123.62148437500005,12.67490234375002],[123.77539062499997,12.453906250000031]]],[[[123.28183593750006,12.85341796874998],[123.36718750000003,12.70083007812498],[122.95751953124997,13.107177734374986],[123.28183593750006,12.85341796874998]]],[[[120.70439453125002,13.479492187499986],[121.20273437500006,13.432324218749969],[121.52275390625007,13.131201171874991],[121.540625,12.63818359375],[121.39433593750002,12.300585937499974],[121.23671875000005,12.218798828125003],[120.92216796875002,12.51162109374998],[120.65136718749997,13.169140625],[120.33847656250012,13.412353515624986],[120.40126953125,13.517041015624997],[120.70439453125002,13.479492187499986]]],[[[121.91484375000002,13.540332031250031],[122.11455078125002,13.463183593750031],[122.00488281249997,13.204980468750009],[121.82919921875006,13.328613281249972],[121.91484375000002,13.540332031250031]]],[[[124.35361328125006,13.632226562500009],[124.17539062500012,13.531542968750017],[124.03886718750002,13.663134765625003],[124.22490234375007,14.077587890624969],[124.41718750000004,13.871044921874997],[124.35361328125006,13.632226562500009]]],[[[122.03349609375002,15.005029296875009],[121.93300781250005,14.656054687500045],[121.83984374999997,15.038134765625003],[122.03349609375002,15.005029296875009]]],[[[121.10156249999997,18.615283203125017],[121.84560546875,18.29541015625003],[122.03847656250005,18.32792968749999],[122.14667968750004,18.486572265625],[122.26552734375005,18.458837890625034],[122.15234374999997,17.664404296875006],[122.51914062500012,17.124853515625034],[122.13515625000005,16.18481445312503],[121.59531250000012,15.933251953125023],[121.60703125000006,15.669824218749994],[121.39228515625004,15.324414062499969],[121.69541015625006,14.7373046875],[121.62792968749997,14.581152343749977],[121.76660156249997,14.16806640625002],[122.21171875000002,13.930175781250057],[122.2875,13.996191406250006],[122.19970703125003,14.148046875000034],[122.6271484375001,14.317529296875009],[122.93417968750012,14.18808593750002],[123.101953125,13.750244140624986],[123.29697265625012,13.836425781250043],[123.32031249999997,14.061669921875023],[123.81572265625002,13.837109375000011],[123.80625000000012,13.721728515625045],[123.54960937500007,13.645751953125014],[123.81923828125,13.269482421875011],[123.78515625000003,13.110546875000054],[124.14277343750004,13.035791015625009],[124.0597656250001,12.567089843749997],[123.87783203125005,12.689697265625014],[123.94853515625007,12.916406250000023],[123.31093750000005,13.044091796875009],[123.16328125000004,13.44174804687502],[122.59521484374997,13.90761718749998],[122.46796875000004,13.886718749999986],[122.66787109375,13.395361328124991],[122.59990234375002,13.194140625000031],[122.37656250000012,13.520605468750006],[121.77792968750006,13.93764648437498],[121.50107421875006,13.8421875],[121.344140625,13.649121093749997],[121.09550781250007,13.679492187500045],[120.84072265625,13.884716796875026],[120.637109375,13.804492187500031],[120.61679687500006,14.188037109375003],[120.9220703125001,14.493115234374983],[120.94130859375,14.645068359375031],[120.58369140625004,14.88125],[120.58867187500002,14.483105468749983],[120.43876953125002,14.453369140624972],[120.25078125000002,14.793310546875034],[120.08212890625012,14.851074218749986],[119.77255859375012,16.25512695312503],[119.83076171875004,16.326562500000023],[120.15976562500012,16.047656250000045],[120.36875,16.109570312499955],[120.35839843749997,17.63818359375],[120.59970703125012,18.507861328125074],[121.10156249999997,18.615283203125017]]],[[[121.92167968750007,18.89472656250001],[121.82519531250003,18.842724609374983],[121.94335937500003,19.010449218749955],[121.92167968750007,18.89472656250001]]],[[[121.52089843750005,19.361962890624994],[121.53125,19.271337890625006],[121.37460937500006,19.356298828124977],[121.52089843750005,19.361962890624994]]]]},"properties":{"name":"Philippines","childNum":37}},{"geometry":{"type":"Polygon","coordinates":[[[134.5954101562501,7.382031249999969],[134.51572265625012,7.525781250000037],[134.65117187500002,7.712109374999983],[134.5954101562501,7.382031249999969]]]},"properties":{"name":"Palau","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[153.53613281249997,-11.476171874999949],[153.75986328125006,-11.586328125],[153.55371093749997,-11.630566406249969],[153.28681640625004,-11.516992187500009],[153.20361328124997,-11.32412109374998],[153.53613281249997,-11.476171874999949]]],[[[154.28076171874997,-11.36142578125002],[154.12119140625006,-11.425683593749966],[154.02343750000003,-11.347949218750031],[154.28076171874997,-11.36142578125002]]],[[[150.89873046875002,-10.565332031250023],[150.88466796875,-10.643457031250037],[150.78574218750006,-10.603417968749966],[150.89873046875002,-10.565332031250023]]],[[[151.08095703125,-10.020117187499963],[151.29648437500012,-9.956738281250026],[151.230859375,-10.194726562500009],[150.95917968750004,-10.092578124999989],[150.77607421875004,-9.70908203125002],[151.08095703125,-10.020117187499963]]],[[[150.52841796875006,-9.34658203124998],[150.78867187500006,-9.417968749999957],[150.89404296875003,-9.667480468749986],[150.43623046875004,-9.624609374999949],[150.5084960937501,-9.536132812499957],[150.43730468750007,-9.359960937500034],[150.52841796875006,-9.34658203124998]]],[[[150.3454101562501,-9.493847656249955],[150.10976562500005,-9.361914062499991],[150.20830078125002,-9.206347656250003],[150.32011718750007,-9.264160156249972],[150.3454101562501,-9.493847656249955]]],[[[152.63095703125012,-8.959375],[152.95292968750007,-9.07011718749996],[152.96689453125006,-9.208984375000014],[152.51513671874997,-9.009863281250034],[152.63095703125012,-8.959375]]],[[[151.10683593750005,-8.733496093749949],[151.12412109375012,-8.804882812500011],[151.00498046875006,-8.523828124999952],[151.117578125,-8.41884765624998],[151.10683593750005,-8.733496093749949]]],[[[143.58681640625005,-8.481738281250003],[143.321875,-8.367578125],[143.5814453125,-8.390917968749974],[143.58681640625005,-8.481738281250003]]],[[[148.02578125,-5.826367187500011],[147.78105468750007,-5.627246093749946],[147.7946289062501,-5.492382812500011],[148.05478515625006,-5.61152343750004],[148.02578125,-5.826367187500011]]],[[[155.95761718750006,-6.686816406249989],[155.71933593750012,-6.862792968749957],[155.34404296875007,-6.721679687499986],[155.20214843750003,-6.3076171875],[154.75927734375003,-5.931347656249997],[154.72929687500002,-5.444433593750006],[155.09384765625006,-5.620214843750034],[155.46699218750004,-6.145117187500034],[155.82255859375002,-6.38046875000002],[155.95761718750006,-6.686816406249989]]],[[[147.17626953124997,-5.431933593749946],[147.00585937499997,-5.30703125],[147.1310546875001,-5.190820312500037],[147.17626953124997,-5.431933593749946]]],[[[154.64726562500002,-5.43271484375002],[154.54003906250003,-5.11083984375],[154.63261718750007,-5.013867187499955],[154.72714843750006,-5.218066406249989],[154.64726562500002,-5.43271484375002]]],[[[146.01933593750007,-4.726171874999963],[145.88359375000007,-4.66748046875],[145.9958007812501,-4.539257812499983],[146.01933593750007,-4.726171874999963]]],[[[151.915625,-4.296777343749966],[152.11718749999997,-4.212207031249974],[152.40566406250005,-4.340722656249952],[152.35117187500006,-4.82216796874998],[151.98369140625007,-5.07441406250004],[152.14296875,-5.357031249999963],[152.07705078125,-5.458300781249989],[151.86542968750004,-5.564843750000023],[151.51513671874997,-5.552343749999963],[151.22929687500002,-5.919921874999986],[150.47353515625,-6.263378906249969],[149.65253906250004,-6.290429687499966],[149.38232421874997,-6.078125],[149.0990234375,-6.116992187499989],[148.33720703125007,-5.669433593750014],[148.43203125,-5.471777343749991],[149.35888671875003,-5.583984375000014],[149.8314453125,-5.524121093749997],[149.96279296875,-5.447753906249972],[150.0900390625001,-5.011816406249977],[150.1703125,-5.070605468749974],[150.0724609375001,-5.309570312499986],[150.18310546874997,-5.523632812499983],[150.90029296875005,-5.447167968750037],[151.32656250000005,-4.96035156249998],[151.67119140625007,-4.88330078125],[151.59306640625007,-4.200781249999949],[151.915625,-4.296777343749966]]],[[[152.67060546875004,-3.13339843750002],[152.64619140625004,-3.221191406249957],[152.54326171875002,-3.095605468749952],[152.63876953125012,-3.042773437500031],[152.67060546875004,-3.13339843750002]]],[[[140.97617187500012,-9.11875],[140.97519531250006,-6.90537109375002],[140.86230468749997,-6.740039062499989],[140.975,-6.346093750000023],[140.97353515625,-2.803417968750026],[140.97343750000007,-2.609765625],[142.90517578125,-3.32070312499998],[143.50898437500004,-3.431152343750014],[144.06640625000003,-3.80517578125],[144.4777343750001,-3.82529296875002],[145.08779296875,-4.349121093749972],[145.33457031250012,-4.385253906249972],[145.7669921875,-4.823046874999989],[145.74521484375012,-5.402441406249977],[147.56669921875002,-6.056933593750003],[147.80205078125002,-6.31523437499996],[147.84550781250007,-6.662402343749989],[147.11914062499997,-6.721679687499986],[146.95361328124997,-6.834082031249963],[147.19003906250012,-7.378125],[148.12675781250007,-8.103613281249963],[148.246875,-8.554296875000034],[148.45117187499997,-8.694531250000011],[148.58310546875006,-9.051757812499957],[149.19833984375006,-9.03125],[149.26318359374997,-9.497851562499974],[150.01103515625007,-9.688183593750026],[149.76123046874997,-9.805859375000011],[149.87441406250005,-10.012988281250031],[150.84951171875,-10.236035156249997],[150.44609375000007,-10.30732421875004],[150.6471679687501,-10.517968749999966],[150.31992187500012,-10.654882812499963],[150.0167968750001,-10.577148437500028],[149.75410156250004,-10.353027343750028],[147.76865234375012,-10.070117187500031],[147.01718750000006,-9.38789062500004],[146.96376953125,-9.059570312499943],[146.63085937499997,-8.951171874999972],[146.03320312499997,-8.076367187500011],[144.97382812500004,-7.802148437500009],[144.86425781249997,-7.631542968749983],[144.50986328125006,-7.567382812499972],[144.14287109375007,-7.757226562500009],[143.65488281250012,-7.460351562500009],[143.94228515625005,-7.944238281250009],[143.8333984375,-8.029101562499974],[143.51816406250006,-8.000683593749955],[143.61376953125003,-8.200390624999969],[142.52412109375004,-8.32167968749998],[142.34746093750002,-8.167480468750014],[142.20683593750002,-8.195800781250014],[142.47480468750004,-8.369433593750031],[142.79794921875006,-8.345019531250031],[143.11181640624997,-8.474511718750037],[143.37724609375007,-8.762207031250028],[143.36621093750003,-8.961035156250034],[142.6471679687501,-9.327832031249969],[142.22958984375012,-9.169921874999957],[141.13320312500005,-9.221289062500034],[140.97617187500012,-9.11875]]],[[[152.96582031249997,-4.756347656249986],[152.89169921875006,-4.832421875000023],[152.73994140625004,-4.635839843750034],[152.66816406250004,-4.131835937500028],[152.27939453125006,-3.582421875],[151.06679687500005,-2.829003906249994],[150.74609374999997,-2.73886718750002],[150.8253906250001,-2.572949218749969],[152.03291015625004,-3.25136718749998],[153.01679687500004,-4.105664062500026],[153.1325195312501,-4.352441406250037],[152.96582031249997,-4.756347656249986]]],[[[150.43662109375012,-2.66181640625004],[150.16572265625004,-2.660253906249991],[149.96162109375004,-2.473828125000026],[150.22714843750006,-2.384179687499966],[150.42949218750007,-2.47041015625004],[150.43662109375012,-2.66181640625004]]],[[[147.06757812500004,-1.96015625],[147.43808593750012,-2.05898437499998],[147.20634765625007,-2.181933593749974],[146.54648437500012,-2.20859375],[146.65625,-1.97402343749998],[147.06757812500004,-1.96015625]]],[[[149.76542968750007,-1.553027343750017],[149.54589843749997,-1.471679687499957],[149.58095703125005,-1.353222656249983],[149.76542968750007,-1.553027343750017]]]]},"properties":{"name":"Papua New Guinea","childNum":21}},{"geometry":{"type":"Polygon","coordinates":[[[23.484667968750017,53.939794921875],[23.915429687500023,52.770263671875],[23.175097656250017,52.28662109375],[23.652441406250006,52.040380859375],[23.605273437500017,51.517919921875],[23.664453125000023,51.31005859375],[24.095800781250006,50.87275390625],[23.9970703125,50.809375],[24.089941406250006,50.53046875],[23.97265625,50.410058593749994],[23.711718750000017,50.37734375],[23.03632812500001,49.899072265624994],[22.706152343750006,49.606201171875],[22.6494140625,49.539013671875],[22.66064453125,49.483691406249996],[22.71992187500001,49.353808593749996],[22.732421875,49.295166015625],[22.705664062500006,49.171191406249996],[22.847070312500023,49.08125],[22.538671875,49.072705078125],[22.473046875000023,49.081298828125],[22.020117187500006,49.209521484374996],[21.6396484375,49.411962890625],[21.079394531250017,49.418261718749996],[20.868457031250017,49.314697265625],[20.36298828125001,49.38525390625],[20.0576171875,49.181298828124994],[19.756640625000017,49.204394531249996],[19.77392578125,49.37216796875],[19.44160156250001,49.597705078124996],[19.1494140625,49.4],[18.83222656250001,49.510791015624996],[18.562402343750023,49.879345703125],[18.0283203125,50.03525390625],[17.874804687500017,49.972265625],[17.627050781250006,50.11640625],[17.702246093750006,50.307177734374996],[17.41523437500001,50.254785156249994],[16.88007812500001,50.427050781249996],[16.989648437500023,50.2369140625],[16.63916015625,50.1021484375],[16.210351562500023,50.423730468749994],[16.419726562500017,50.573632812499994],[16.2822265625,50.655615234375],[16.007226562500023,50.611621093749996],[14.99375,51.01435546875],[14.98291015625,50.886572265625],[14.895800781250017,50.861376953124996],[14.809375,50.858984375],[14.814257812500017,50.871630859374996],[14.91748046875,51.008740234375],[14.9638671875,51.095117187499994],[14.935546875,51.435351562499996],[14.905957031250011,51.463330078125],[14.724707031250006,51.523876953125],[14.7109375,51.544921875],[14.738671875000023,51.6271484375],[14.601660156250006,51.832373046875],[14.752539062500006,52.081835937499996],[14.679882812500011,52.25],[14.615625,52.277636718749996],[14.573925781250011,52.31416015625],[14.554589843750023,52.359667968749996],[14.569726562500023,52.431103515625],[14.619433593750017,52.528515625],[14.514062500000023,52.64560546875],[14.253710937500017,52.782519531249996],[14.128613281250011,52.878222656249996],[14.138867187500011,52.932861328125],[14.293164062500011,53.0267578125],[14.368554687500023,53.10556640625],[14.410937500000017,53.199023437499996],[14.412304687500011,53.216748046875],[14.41455078125,53.283496093749996],[14.258886718750006,53.729638671875],[14.58349609375,53.63935546875],[14.558398437500017,53.823193359375],[14.21142578125,53.950341796875],[16.186328125000017,54.290380859375],[16.55976562500001,54.55380859375],[18.32343750000001,54.838183593749996],[18.75927734375,54.6845703125],[18.43623046875001,54.7447265625],[18.83642578125,54.369580078125],[19.604394531250023,54.4591796875],[20.20820312500001,54.420751953125],[22.16845703125,54.35986328125],[22.731835937500023,54.35009765625],[22.766210937500006,54.356787109375],[22.82373046875,54.395800781249996],[22.893945312500023,54.39052734375],[22.97675781250001,54.366357421875],[23.015527343750023,54.34833984375],[23.04218750000001,54.30419921875],[23.0875,54.299462890625],[23.170312500000023,54.2814453125],[23.282324218750006,54.24033203125],[23.3701171875,54.200488281249996],[23.45361328125,54.14345703125],[23.484667968750017,53.939794921875]]]},"properties":{"name":"Poland","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-65.42558593749999,18.105615234374994],[-65.57221679687493,18.137304687499977],[-65.29487304687501,18.133349609375045],[-65.42558593749999,18.105615234374994]]],[[[-66.12939453125003,18.444921875000034],[-65.62880859375,18.381396484375045],[-65.62084960937497,18.242333984374966],[-65.97080078124995,17.974365234375],[-67.196875,17.994189453125045],[-67.2640625,18.364599609375006],[-67.15864257812501,18.499218749999983],[-66.12939453125003,18.444921875000034]]]]},"properties":{"name":"Puerto Rico","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[130.52695312500012,42.535400390625],[130.68730468750007,42.30253906249999],[130.2357421875,42.183203125000034],[129.75634765624997,41.712255859375006],[129.70869140625004,40.857324218749994],[129.34111328125002,40.72631835937506],[128.51123046874997,40.130224609375006],[127.56816406250002,39.78198242187503],[127.39453125000003,39.207910156249966],[127.78613281250003,39.084130859374966],[128.37460937500012,38.6234375],[128.03896484375,38.30854492187498],[127.09033203125003,38.28388671875001],[126.63388671875012,37.78183593750006],[126.36992187500007,37.87836914062501],[126.11669921875003,37.74291992187503],[125.76914062500006,37.98535156250003],[125.35781250000005,37.72480468749998],[125.31074218750004,37.843505859375],[124.98876953124997,37.93144531249999],[125.2067382812501,38.08154296875],[124.69091796874997,38.12919921875002],[125.06738281250003,38.556738281250006],[125.55449218750002,38.68623046875001],[125.16884765625,38.80551757812506],[125.40966796875003,39.28837890625002],[125.36083984375003,39.52661132812497],[124.77529296875,39.75805664062506],[124.63828125000006,39.61508789062506],[124.36210937500002,40.004052734374994],[124.8893554687501,40.459814453125006],[125.98906250000002,40.904638671875034],[126.74306640625,41.724853515625],[126.95478515625004,41.76948242187501],[127.17968750000003,41.531347656250006],[128.14941406249997,41.38774414062496],[128.28925781250004,41.60742187500006],[128.04521484375007,41.9875],[128.92343750000006,42.038232421874966],[129.3136718750001,42.41357421874997],[129.69785156250012,42.448144531249994],[129.89824218750002,42.998144531250034],[130.24033203125006,42.891796874999955],[130.24667968750012,42.744824218749955],[130.52695312500012,42.535400390625]]]},"properties":{"name":"Dem. Rep. Korea","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-17.190869140624926,32.86860351562498],[-16.693261718749966,32.75800781250001],[-17.018261718749926,32.66279296874998],[-17.226025390624983,32.76684570312503],[-17.190869140624926,32.86860351562498]]],[[[-25.64897460937499,37.840917968750006],[-25.18193359374996,37.837890625],[-25.19072265624999,37.764355468749955],[-25.73447265624992,37.76289062500001],[-25.845898437499983,37.89404296875],[-25.64897460937499,37.840917968750006]]],[[[-28.14726562499996,38.45268554687502],[-28.064794921875034,38.412744140624966],[-28.454492187500023,38.40864257812504],[-28.54882812499997,38.51855468750003],[-28.14726562499996,38.45268554687502]]],[[[-28.641308593749983,38.525],[-28.842041015625,38.5984375],[-28.69775390625,38.638476562500045],[-28.641308593749983,38.525]]],[[[-27.07524414062496,38.643457031249994],[-27.38593750000001,38.765820312499955],[-27.127001953125017,38.78984375],[-27.07524414062496,38.643457031249994]]],[[[-31.137109374999937,39.40693359375001],[-31.282958984375,39.39409179687496],[-31.260839843750034,39.49677734375001],[-31.137109374999937,39.40693359375001]]],[[[-7.406152343749937,37.17944335937497],[-7.834130859374994,37.005712890625034],[-8.597656249999943,37.12133789062506],[-8.997802734375028,37.03227539062502],[-8.814160156249983,37.43081054687502],[-8.881103515624943,38.44667968750005],[-8.668310546874949,38.42431640625003],[-8.798876953124989,38.518164062500034],[-9.213281249999937,38.44809570312498],[-9.250390624999966,38.65673828125003],[-9.021484374999943,38.746875],[-8.79160156249992,39.07817382812502],[-9.13579101562496,38.74277343749998],[-9.35673828124996,38.697900390624994],[-9.479736328124972,38.79877929687501],[-9.374755859374972,39.338281249999966],[-8.837841796874926,40.11567382812498],[-8.684619140624989,40.75253906250006],[-8.755419921874932,41.69838867187502],[-8.887597656249937,41.76459960937501],[-8.777148437500017,41.941064453124994],[-8.266064453124983,42.13740234375001],[-8.152490234374937,41.81196289062498],[-7.40361328124996,41.833691406249955],[-7.147119140625023,41.98115234374998],[-6.61826171874992,41.9423828125],[-6.542187499999955,41.672509765624994],[-6.2125,41.53203125],[-6.928466796874972,41.009130859375006],[-6.8101562499999,40.343115234375034],[-7.032617187499966,40.16791992187498],[-6.896093749999949,40.02182617187506],[-6.975390624999932,39.79838867187502],[-7.117675781249972,39.681689453125045],[-7.53569335937496,39.66157226562501],[-6.997949218749994,39.05644531250002],[-7.343017578124943,38.45742187500002],[-7.106396484374983,38.181005859375006],[-6.957568359374932,38.18789062499999],[-7.44394531249992,37.72827148437497],[-7.406152343749937,37.17944335937497]]]]},"properties":{"name":"Portugal","childNum":7,"cp":[-8.7440694,39.9251454]}},{"geometry":{"type":"Polygon","coordinates":[[[-58.15976562499999,-20.164648437500006],[-58.13779296874999,-20.2373046875],[-58.12460937499999,-20.29345703125],[-58.09150390625,-20.33320312500001],[-58.05844726562499,-20.38613281250001],[-58.025390625,-20.415820312500003],[-58.00224609374999,-20.465429687500006],[-57.97905273437499,-20.657324218750006],[-57.91513671874999,-20.69033203125001],[-57.830224609374994,-20.99794921875001],[-57.94267578124999,-21.79833984375],[-57.95590820312499,-22.109179687500003],[-56.77519531249999,-22.261328125],[-56.44780273437499,-22.076171875],[-56.39487304687499,-22.09267578125001],[-56.35185546874999,-22.17861328125001],[-56.246044921875,-22.2646484375],[-56.18984375,-22.28115234375001],[-55.99140625,-22.28115234375001],[-55.84916992187499,-22.3076171875],[-55.75327148437499,-22.41015625],[-55.74663085937499,-22.5126953125],[-55.61767578125,-22.671484375],[-55.53828125,-23.58095703125001],[-55.518457031249994,-23.627246093750003],[-55.458886718749994,-23.68671875000001],[-55.4423828125,-23.792578125],[-55.4423828125,-23.865332031250006],[-55.415917968749994,-23.95136718750001],[-55.36630859374999,-23.991015625],[-55.28691406249999,-24.004296875],[-55.1943359375,-24.01748046875001],[-55.08188476562499,-23.99765625],[-54.982666015625,-23.97451171875001],[-54.62548828125,-23.8125],[-54.44023437499999,-23.90175781250001],[-54.37080078125,-23.97119140625],[-54.24179687499999,-24.047265625],[-54.281005859375,-24.30605468750001],[-54.43623046875,-25.12128906250001],[-54.47314453125,-25.22021484375],[-54.610546875,-25.432714843750006],[-54.615869140624994,-25.57607421875001],[-54.63193359374999,-26.00576171875001],[-54.677734375,-26.30878906250001],[-54.934472656249994,-26.70253906250001],[-55.1359375,-26.93115234375],[-55.426660156249994,-27.00927734375],[-55.450634765625,-27.068359375],[-55.496728515624994,-27.115332031250006],[-55.564892578125,-27.15],[-55.59726562499999,-27.207617187500006],[-55.59379882812499,-27.2880859375],[-55.63291015624999,-27.35712890625001],[-55.71464843749999,-27.41484375],[-55.789990234375,-27.41640625],[-55.95146484374999,-27.32568359375],[-56.1640625,-27.32148437500001],[-56.437158203124994,-27.553808593750006],[-58.16826171874999,-27.2734375],[-58.60483398437499,-27.31435546875001],[-58.641748046874994,-27.19609375],[-58.618603515625,-27.132128906250003],[-58.222070312499994,-26.65],[-58.18149414062499,-26.307421875],[-57.943115234375,-26.05292968750001],[-57.563134765624994,-25.473730468750006],[-57.821679687499994,-25.13642578125001],[-59.187255859375,-24.562304687500003],[-59.892480468749994,-24.093554687500003],[-60.83984375,-23.85810546875001],[-61.084716796875,-23.65644531250001],[-61.79853515625,-23.18203125],[-62.21416015624999,-22.612402343750006],[-62.372509765625,-22.43916015625001],[-62.54155273437499,-22.349609375],[-62.6259765625,-22.29042968750001],[-62.62568359375,-22.261523437500003],[-62.65097656249999,-22.233691406250003],[-62.27666015624999,-21.066015625],[-62.276318359375,-20.5625],[-61.7568359375,-19.6453125],[-60.00737304687499,-19.29755859375001],[-59.09052734375,-19.286230468750006],[-58.18017578125,-19.81787109375],[-58.15976562499999,-20.164648437500006]]]},"properties":{"name":"Paraguay","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[34.34833984375004,31.292919921874955],[34.2453125000001,31.208300781250045],[34.2125,31.292285156250017],[34.198144531249994,31.322607421875063],[34.47734375000002,31.584863281250023],[34.52412109375004,31.541650390624994],[34.5255859375001,31.52563476562503],[34.34833984375004,31.292919921874955]]],[[[34.88046875,31.3681640625],[34.950976562500074,31.60229492187503],[35.20371093750006,31.75],[35.1271484375001,31.816748046875006],[35.05322265625003,31.83793945312496],[34.983007812500006,31.816796875000023],[34.9611328125001,31.823339843750006],[34.95380859375004,31.84125976562504],[34.98974609374997,31.913281249999955],[34.955957031249994,32.1609375],[35.01054687500002,32.33818359375002],[35.06503906250006,32.46044921875006],[35.19326171875005,32.53442382812503],[35.303808593750006,32.512939453125],[35.38671875000003,32.493017578125034],[35.402636718750074,32.45063476562501],[35.484375,32.40166015624999],[35.5514648437501,32.39550781250006],[35.57207031250002,32.237890625],[35.450585937499994,31.479296875000017],[34.88046875,31.3681640625]]]]},"properties":{"name":"Palestine","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-149.321533203125,-17.690039062499963],[-149.177685546875,-17.736621093750045],[-149.18178710937497,-17.86230468749997],[-149.34111328125,-17.732421874999986],[-149.57890624999993,-17.734960937499963],[-149.635009765625,-17.564257812500003],[-149.37919921874993,-17.522363281249994],[-149.321533203125,-17.690039062499963]]],[[[-143.44057617187497,-16.619726562499963],[-143.38618164062498,-16.668847656250023],[-143.55068359375002,-16.62109374999997],[-143.44057617187497,-16.619726562499963]]],[[[-139.02431640624997,-9.695214843750037],[-138.82734375,-9.74160156249998],[-139.13408203124996,-9.829492187500037],[-139.02431640624997,-9.695214843750037]]],[[[-140.075634765625,-9.425976562499983],[-140.14438476562498,-9.359375],[-140.07094726562497,-9.328125],[-140.075634765625,-9.425976562499983]]],[[[-140.07260742187503,-8.910449218750031],[-140.21743164062497,-8.929687499999957],[-140.24003906249993,-8.79755859375004],[-140.057666015625,-8.801464843750026],[-140.07260742187503,-8.910449218750031]]]]},"properties":{"name":"Fr. Polynesia","childNum":5}},{"geometry":{"type":"Polygon","coordinates":[[[51.26796875000002,24.607226562500003],[51.17802734375002,24.58671875],[51.093359375,24.564648437499997],[51.02275390625002,24.565234375],[50.96601562500001,24.573925781249997],[50.928320312500006,24.595117187499994],[50.85566406250001,24.679638671874997],[50.80439453125001,24.789257812499997],[50.8359375,24.850390625],[50.846777343750006,24.888574218749994],[50.75458984375001,25.39926757812499],[51.003125,25.9814453125],[51.262304687500006,26.153271484374997],[51.543066406250006,25.902392578125003],[51.4853515625,25.524707031250003],[51.60888671875,25.052880859374994],[51.42792968750001,24.668261718750003],[51.26796875000002,24.607226562500003]]]},"properties":{"name":"Qatar","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[28.2125,45.450439453125],[28.317675781250017,45.347119140625],[28.451269531250006,45.2921875],[28.78828125000001,45.240966796875],[28.78173828125,45.309863281249996],[28.894335937500017,45.289941406249994],[29.223535156250023,45.4029296875],[29.403710937500023,45.419677734375],[29.567675781250017,45.37080078125],[29.705859375000017,45.259912109374994],[29.557519531250023,44.843408203124994],[29.048242187500023,44.757568359375],[29.0953125,44.975048828125],[28.891503906250023,44.91865234375],[28.585351562500023,43.742236328124996],[28.221972656250017,43.772851562499994],[27.88427734375,43.987353515624996],[27.425390625,44.0205078125],[27.0869140625,44.167382812499994],[26.2158203125,44.007275390625],[25.4970703125,43.670800781249994],[22.919042968750006,43.83447265625],[22.868261718750006,43.947900390624994],[23.02851562500001,44.077978515625],[22.705078125,44.23779296875],[22.687890625000023,44.248291015625],[22.494531250000023,44.435449218749994],[22.554003906250017,44.540332031249996],[22.6201171875,44.562353515625],[22.70078125,44.555517578125],[22.734375,44.569921875],[22.72089843750001,44.605517578124996],[22.64208984375,44.6509765625],[22.49765625,44.70625],[22.350683593750006,44.676123046875],[22.200976562500017,44.560693359374994],[22.093066406250017,44.541943359375],[21.909277343750006,44.66611328125],[21.636132812500023,44.71044921875],[21.52314453125001,44.790087890624996],[21.36005859375001,44.82666015625],[21.35791015625,44.86181640625],[21.384375,44.870068359375],[21.442187500000017,44.873388671875],[21.519921875000023,44.880810546875],[21.532324218750006,44.900683593749996],[21.35703125,44.990771484374996],[21.465429687500006,45.171875],[21.431445312500017,45.192529296874994],[20.794042968750006,45.46787109375],[20.775,45.749804687499996],[20.760156250000023,45.758105468749996],[20.746875,45.748974609375],[20.727832031250017,45.73740234375],[20.709277343750017,45.735253906249994],[20.652734375000023,45.77939453125],[20.581152343750006,45.869482421875],[20.35859375000001,45.975488281249994],[20.241796875,46.10859375],[20.28095703125001,46.1330078125],[20.508105468750017,46.166943359375],[20.613671875000023,46.13349609375],[20.76025390625,46.246240234374994],[21.121679687500006,46.282421875],[21.99970703125001,47.505029296874994],[22.87666015625001,47.947265625],[23.054785156250006,48.00654296875],[23.139453125000017,48.08740234375],[23.20263671875,48.084521484374996],[23.408203125,47.989990234375],[23.628710937500017,47.995849609375],[24.578906250000017,47.931054687499994],[24.979101562500006,47.72412109375],[25.464257812500023,47.910791015624994],[25.689257812500017,47.932470703125],[25.90869140625,47.967578125],[26.162695312500006,47.992529296875],[26.236230468750023,48.064355468749994],[26.276953125,48.113232421875],[26.3056640625,48.203759765624994],[26.4423828125,48.22998046875],[26.618945312500017,48.25986328125],[26.980761718750017,48.155029296875],[27.614062500000017,47.34052734375],[28.07177734375,46.978417968749994],[28.23945312500001,46.6408203125],[28.07470703125,45.598974609375],[28.2125,45.450439453125]]]},"properties":{"name":"Romania","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[146.71396484375012,43.743798828124994],[146.62197265625,43.81298828125006],[146.88408203125002,43.82915039062496],[146.71396484375012,43.743798828124994]]],[[[146.20761718750006,44.49765625],[146.5677734375,44.44042968749997],[145.91406249999997,44.10371093750004],[145.58681640625,43.84511718750002],[145.5558593750001,43.66459960937502],[145.46171875000007,43.870898437500045],[146.20761718750006,44.49765625]]],[[[148.59951171875,45.317626953125],[147.91376953125004,44.99038085937502],[147.65781250000012,44.97714843749998],[146.89746093750003,44.404296875],[147.24658203124997,44.856054687500006],[147.88554687500007,45.22563476562499],[147.9240234375001,45.38330078125006],[148.05605468750005,45.26210937500005],[148.32421874999997,45.28242187500001],[148.8122070312501,45.510009765625],[148.83710937500004,45.36269531250002],[148.59951171875,45.317626953125]]],[[[149.68769531250004,45.64204101562501],[149.44707031250002,45.593359375000034],[149.9623046875,46.02192382812504],[150.553125,46.208544921875045],[149.68769531250004,45.64204101562501]]],[[[152.00205078125006,46.89716796874998],[151.72343750000007,46.82880859375001],[152.28886718750007,47.1421875],[152.00205078125006,46.89716796874998]]],[[[154.81044921875005,49.31201171875],[154.61093750000006,49.29404296874998],[154.82490234375004,49.64692382812501],[154.81044921875005,49.31201171875]]],[[[155.9210937500001,50.30219726562501],[155.39716796875004,50.04125976562497],[155.24306640625,50.09462890625002],[155.21835937500012,50.29785156250003],[155.68017578124997,50.400732421875034],[156.096875,50.771875],[155.9210937500001,50.30219726562501]]],[[[156.40507812500002,50.65761718750005],[156.16796874999997,50.73188476562498],[156.37646484374997,50.86210937499996],[156.4875,50.84296874999998],[156.40507812500002,50.65761718750005]]],[[[142.76103515625002,54.393945312499966],[143.32470703125003,52.96308593749998],[143.15556640625002,52.08374023437497],[143.29951171875004,51.632373046875045],[143.81601562500006,50.28261718750002],[144.71376953125,48.64028320312502],[144.04873046875,49.249169921874994],[143.73232421875,49.31201171875],[143.10498046875003,49.198828125000034],[142.57421874999997,48.07216796875002],[142.55693359375002,47.737890625000034],[143.21767578125005,46.79487304687504],[143.48564453125002,46.752050781250006],[143.58066406250012,46.360693359375034],[143.43164062500003,46.02866210937498],[143.28232421875006,46.55898437500002],[142.57802734375005,46.700781250000034],[142.07714843749997,45.91704101562499],[141.83037109375002,46.451074218749966],[142.03867187500012,47.140283203124966],[141.9640625000001,47.58745117187502],[142.18173828125012,48.01337890625001],[141.86630859375006,48.750097656250006],[142.1422851562501,49.56914062499999],[142.06601562500006,50.630468750000034],[142.20673828125004,51.22255859375002],[141.72236328125004,51.73632812499997],[141.66083984375004,52.27294921874997],[141.85556640625012,52.79350585937499],[141.82353515625007,53.33950195312502],[142.1419921875,53.49560546875003],[142.52617187500002,53.44746093749998],[142.70595703125,53.89570312499998],[142.33496093749997,54.28071289062501],[142.76103515625002,54.393945312499966]]],[[[137.17861328125005,55.100439453125034],[137.05527343750006,54.9267578125],[136.71464843750002,54.956152343750034],[137.17861328125005,55.100439453125034]]],[[[137.94052734375012,55.092626953125034],[138.20615234375012,55.03354492187498],[137.72148437500007,54.66323242187505],[137.46269531250002,54.873388671875034],[137.23291015624997,54.79057617187496],[137.5773437500001,55.19702148437497],[137.94052734375012,55.092626953125034]]],[[[21.235742187500023,55.26411132812498],[22.072363281250034,55.06367187499998],[22.56728515625005,55.05913085937496],[22.82470703125,54.87128906249998],[22.684472656250023,54.56293945312504],[22.679882812500068,54.493017578125006],[22.766210937499977,54.356787109375034],[22.168457031250057,54.35986328125006],[21.14052734375008,54.39179687499998],[19.604394531250023,54.45917968750004],[19.974511718750023,54.92119140625002],[20.520312500000017,54.994873046875],[20.89980468750008,55.286669921875045],[20.957812500000074,55.27890625000006],[20.594824218750006,54.982373046874955],[20.995898437500017,54.90268554687506],[21.18886718750008,54.93520507812502],[21.235742187500023,55.26411132812498]]],[[[166.65029296875005,54.83906249999998],[166.64511718750006,54.69409179687503],[165.75107421875006,55.294531250000034],[166.27578125000005,55.311962890624955],[166.24804687499997,55.16542968750002],[166.65029296875005,54.83906249999998]]],[[[150.58994140625006,59.01875],[150.47021484375003,59.05405273437498],[150.66621093750004,59.16015625000003],[150.58994140625006,59.01875]]],[[[163.63515625000005,58.603369140625006],[163.47138671875004,58.509375],[163.7609375000001,59.01503906250002],[164.57265625,59.22114257812501],[164.61572265624997,58.885595703125034],[163.63515625000005,58.603369140625006]]],[[[35.8161132812501,65.18208007812501],[35.77871093750005,64.97666015625],[35.52890625000006,65.15107421875001],[35.8161132812501,65.18208007812501]]],[[[70.02070312500004,66.502197265625],[69.65136718750003,66.56533203125],[69.50273437500002,66.75107421875],[70.07666015624997,66.69589843750003],[70.02070312500004,66.502197265625]]],[[[-179.79853515625,68.9404296875],[-178.873876953125,68.75410156249995],[-178.69262695312503,68.54599609375],[-178.09746093750002,68.4248046875],[-178.05581054687497,68.26489257812503],[-177.79677734374997,68.33798828125],[-178.37304687500003,68.56567382812503],[-177.52724609375002,68.29438476562501],[-177.58920898437503,68.22421875],[-175.34521484375,67.67807617187503],[-175.37470703124998,67.35737304687498],[-175.00268554687494,67.4375],[-174.849853515625,67.34887695312503],[-174.92490234375,66.62314453125006],[-174.503759765625,66.537939453125],[-174.39409179687496,66.34423828124997],[-174.084765625,66.47309570312504],[-174.06503906249998,66.22958984374998],[-173.77397460937502,66.43466796875003],[-174.23159179687497,66.63188476562505],[-174.08642578125,66.94287109375],[-174.55009765624993,67.090625],[-173.6796875,67.144775390625],[-173.15781249999998,67.06909179687503],[-173.32353515625,66.95483398437503],[-173.25893554687497,66.84008789062503],[-173.19301757812497,66.99360351562504],[-172.5201171875,66.952490234375],[-173.00751953125,67.06489257812498],[-171.79555664062502,66.93173828125003],[-170.50952148437503,66.34365234375005],[-170.604443359375,66.24892578125002],[-170.30122070312504,66.29404296874998],[-170.24394531250002,66.16928710937503],[-169.777880859375,66.14311523437505],[-169.83168945312497,65.99892578124997],[-170.54067382812497,65.86542968749995],[-170.66630859375,65.62153320312501],[-171.42153320312502,65.81035156250002],[-171.10585937500002,65.51103515625005],[-171.90712890625,65.495947265625],[-172.78330078124998,65.68105468749997],[-172.23281250000002,65.45571289062497],[-172.30927734375004,65.27563476562497],[-172.66191406249993,65.24853515625006],[-172.28603515625002,65.20571289062502],[-172.21318359375,65.04814453124999],[-173.08579101562498,64.81733398437495],[-172.80107421874996,64.79052734375],[-172.90087890624994,64.62885742187501],[-172.40146484374998,64.413916015625],[-172.73916015624997,64.41225585937502],[-172.90317382812498,64.52607421875004],[-172.96005859375003,64.32768554687502],[-173.27548828124998,64.2896484375],[-173.327490234375,64.53955078125003],[-173.72973632812497,64.36450195312497],[-174.57055664062503,64.7177734375],[-175.39511718749998,64.80239257812502],[-175.85385742187498,65.01083984375003],[-176.09326171875,65.471044921875],[-177.05625,65.613623046875],[-177.48876953125,65.50371093749999],[-178.4125,65.49555664062501],[-178.93906249999998,66.03276367187505],[-178.74672851562497,66.01367187500006],[-178.52656250000004,66.40156250000004],[-178.86811523437498,66.18706054687502],[-179.14340820312503,66.37504882812505],[-179.327197265625,66.16259765625003],[-179.68330078124998,66.18413085937505],[-179.78969726562497,65.90087890625],[-179.352099609375,65.51674804687497],[-180,65.06723632812498],[-180,65.31196289062501],[-180,65.55678710937497],[-180,65.80156250000002],[-180,66.04628906250002],[-180,66.29106445312499],[-180,66.53583984375004],[-180,66.78056640625005],[-180,67.02534179687501],[-180,67.27011718750006],[-180,67.51484374999998],[-180,67.75961914062503],[-180,68.00439453124997],[-180,68.24912109375],[-180,68.49389648437497],[-180,68.738671875],[-179.999951171875,68.98344726562505],[-179.79853515625,68.9404296875]]],[[[50.265234375,69.18559570312502],[49.62626953125002,68.85971679687498],[48.91035156250004,68.74306640625002],[48.4390625,68.80488281249998],[48.319921875,69.26923828125001],[48.8449218750001,69.49472656250003],[49.22519531250006,69.51123046875],[50.265234375,69.18559570312502]]],[[[161.46708984375002,68.90097656250003],[161.08281250000007,69.4056640625],[161.50517578125007,69.63945312500002],[161.46708984375002,68.90097656250003]]],[[[169.20078125000006,69.58046875],[168.34804687500005,69.66435546875005],[167.86474609375003,69.90107421875004],[168.35791015625003,70.01567382812502],[169.37480468750007,69.88261718749999],[169.20078125000006,69.58046875]]],[[[60.450488281250074,69.93486328124999],[60.44023437500002,69.72592773437506],[59.637011718750074,69.72104492187503],[59.50263671875004,69.86621093750003],[58.952734375,69.89277343750004],[58.51992187500005,70.31831054687504],[59.04804687500004,70.46049804687505],[60.450488281250074,69.93486328124999]]],[[[52.90332031250003,71.36499023437503],[53.19257812500004,71.21528320312498],[53.0226562500001,70.96870117187501],[52.24960937500006,71.28491210937506],[52.90332031250003,71.36499023437503]]],[[[178.8615234375001,70.826416015625],[178.68388671875013,71.10566406250004],[180,71.53774414062505],[180,70.993017578125],[178.8615234375001,70.826416015625]]],[[[137.95986328125005,71.50766601562503],[137.71181640625005,71.4232421875],[137.06406250000006,71.52988281250003],[137.816796875,71.58789062500006],[137.95986328125005,71.50766601562503]]],[[[-178.87646484375,71.57705078124997],[-178.13388671874998,71.46547851562497],[-177.523583984375,71.16689453125],[-179.415673828125,70.91899414062502],[-179.999951171875,70.993017578125],[-179.999951171875,71.53774414062505],[-178.87646484375,71.57705078124997]]],[[[77.6325195312501,72.291259765625],[76.87109374999997,72.317041015625],[77.74853515625003,72.63120117187506],[78.36513671875005,72.48242187500003],[77.6325195312501,72.291259765625]]],[[[79.50146484374997,72.72192382812497],[78.63320312500005,72.85073242187502],[79.16425781250004,73.0943359375],[79.50146484374997,72.72192382812497]]],[[[74.660546875,72.87343750000002],[74.18066406250003,72.975341796875],[74.19853515625002,73.10908203124998],[74.9615234375,73.0625],[74.660546875,72.87343750000002]]],[[[120.26132812500012,73.08984374999997],[119.79208984375006,73.04541015624997],[119.64042968750002,73.12431640625007],[120.26132812500012,73.08984374999997]]],[[[55.31982421875003,73.30830078124998],[56.42958984375005,73.201171875],[56.121679687500006,72.80659179687498],[55.40332031249997,72.54907226562503],[55.29785156249997,71.93535156250005],[56.45439453125002,71.10737304687504],[57.62539062500005,70.72880859374999],[57.14589843750005,70.58911132812506],[56.38574218749997,70.73413085937503],[56.49970703125004,70.56640625000003],[55.687304687500074,70.69218749999999],[54.60117187500006,70.68007812500002],[53.383593750000074,70.87353515625],[53.670507812500006,71.08691406250003],[54.155664062499994,71.12548828125],[53.40996093750002,71.34013671875002],[53.41162109375003,71.530126953125],[51.93789062500005,71.47470703124998],[51.511328125,71.64809570312497],[51.58251953124997,72.07119140625],[52.252050781250006,72.12973632812503],[52.66191406250002,72.33686523437495],[52.91660156250006,72.66889648437501],[52.5792968750001,72.791357421875],[53.3698242187501,72.91674804687506],[53.2511718750001,73.182958984375],[54.80390625000004,73.38764648437498],[55.31982421875003,73.30830078124998]]],[[[70.67392578125006,73.09501953125005],[70.04072265625004,73.03715820312507],[69.99589843750002,73.359375],[70.94023437500002,73.51440429687503],[71.6261718750001,73.17397460937497],[70.67392578125006,73.09501953125005]]],[[[142.18486328125007,73.89589843750005],[143.34375,73.56875],[143.45146484375007,73.231298828125],[141.59667968750003,73.31083984375005],[140.66279296875004,73.45200195312503],[139.785546875,73.35522460937503],[141.08476562500002,73.86586914062497],[142.18486328125007,73.89589843750005]]],[[[83.5490234375001,74.07177734375],[82.8177734375,74.09160156250005],[83.14980468750005,74.151611328125],[83.5490234375001,74.07177734375]]],[[[141.01025390625003,73.99946289062501],[140.40947265625002,73.92167968750005],[140.1935546875001,74.23671875000002],[141.03857421875003,74.24272460937502],[141.01025390625003,73.99946289062501]]],[[[113.38720703124997,74.40043945312499],[112.78242187500004,74.09506835937503],[111.50341796874997,74.35307617187502],[111.87978515625,74.36381835937499],[112.08447265624997,74.54897460937505],[113.38720703124997,74.40043945312499]]],[[[86.653125,74.981298828125],[87.05214843750005,74.982568359375],[86.92714843750005,74.83076171874998],[86.25859375000002,74.89350585937498],[86.653125,74.981298828125]]],[[[82.17236328125003,75.41938476562501],[81.97851562499997,75.24711914062499],[81.65478515625003,75.28891601562498],[81.71210937500004,75.45141601562506],[82.165625,75.515625],[82.17236328125003,75.41938476562501]]],[[[146.79521484375007,75.37075195312505],[148.43242187500002,75.41352539062495],[148.59013671875007,75.23637695312502],[150.82236328125006,75.15654296875002],[150.64628906250002,74.944580078125],[149.596875,74.77260742187505],[148.296875,74.80043945312502],[146.14853515625012,75.19829101562499],[146.5375,75.58178710937506],[146.79521484375007,75.37075195312505]]],[[[135.9486328125,75.40957031250005],[135.45195312500007,75.38955078124997],[135.6986328125,75.84526367187499],[136.16894531249997,75.60556640625],[135.9486328125,75.40957031250005]]],[[[140.04873046875,75.82895507812503],[140.81591796874997,75.63071289062498],[141.48544921875012,76.13715820312495],[142.66953125000012,75.86342773437497],[143.68583984375002,75.86367187500002],[145.35996093750006,75.53046874999998],[144.01972656250004,75.04467773437506],[143.1703125,75.11689453125001],[142.72949218749997,75.33764648437506],[142.941796875,75.71328125000002],[142.30791015625007,75.69169921875005],[142.19882812500006,75.39267578124998],[143.12792968749997,74.9703125],[142.47275390625006,74.82041015625],[141.98730468750003,74.99125976562499],[140.26787109375002,74.846923828125],[139.68125,74.96406249999995],[139.09912109374997,74.65654296875002],[138.09228515625003,74.79746093750003],[136.94765625000005,75.32553710937498],[137.28974609375004,75.34863281249997],[137.26884765625002,75.7494140625],[137.70654296875003,75.75957031250002],[137.56054687499997,75.95522460937502],[138.20761718750006,76.11494140624995],[138.91953125000006,76.19672851562501],[140.04873046875,75.82895507812503]]],[[[96.5324218750001,76.278125],[96.30058593750002,76.121728515625],[95.31113281250006,76.21474609375002],[95.37988281250003,76.2890625],[96.5324218750001,76.278125]]],[[[112.47802734375003,76.62089843749999],[112.531640625,76.450048828125],[111.96894531250004,76.62617187500001],[112.47802734375003,76.62089843749999]]],[[[149.15019531250002,76.65991210937506],[148.39863281250004,76.64824218750007],[149.4064453125001,76.78208007812498],[149.15019531250002,76.65991210937506]]],[[[67.7653320312501,76.23759765624999],[61.35595703124997,75.31484375000002],[60.27685546875003,75.00756835937503],[60.501367187499994,74.90463867187503],[59.67402343750004,74.61015624999999],[59.24013671875005,74.69296874999998],[59.040429687499994,74.48554687500001],[58.53466796875003,74.49892578124997],[58.6178710937501,74.22739257812498],[57.76738281250002,74.013818359375],[57.755957031250006,73.769189453125],[57.313085937500006,73.838037109375],[57.54257812500006,73.65820312500003],[56.96386718750003,73.36655273437503],[56.43037109375004,73.29721679687503],[55.00683593750003,73.45385742187506],[54.29990234375006,73.35097656249997],[53.7628906250001,73.76616210937499],[54.64267578125006,73.95957031250006],[55.34091796875006,74.41962890624998],[56.13710937500005,74.49609375000003],[55.5822265625001,74.627685546875],[56.4987304687501,74.95708007812505],[55.81005859374997,75.12490234374997],[56.03554687499999,75.19423828124997],[56.57031250000003,75.09775390625003],[56.8444335937501,75.351416015625],[57.606835937499994,75.34125976562498],[58.05830078125004,75.6630859375],[58.88125,75.85478515625007],[60.27929687499997,76.09624023437505],[60.94218750000002,76.07128906250003],[61.20166015624997,76.28203125000007],[62.97148437500002,76.23666992187498],[64.4634765625,76.37817382812503],[67.65185546874997,77.011572265625],[68.48574218750005,76.93369140625003],[68.94169921875002,76.707666015625],[67.7653320312501,76.23759765624999]]],[[[96.28544921875002,77.02666015625007],[95.27031250000007,77.01884765624999],[96.52841796875006,77.20551757812501],[96.28544921875002,77.02666015625007]]],[[[89.51425781250006,77.18881835937498],[89.14169921875012,77.22680664062497],[89.61621093749997,77.31103515625],[89.51425781250006,77.18881835937498]]],[[[130.68730468750007,42.30253906249999],[130.52695312500012,42.535400390625],[130.42480468749997,42.72705078124997],[131.06855468750004,42.90224609375005],[131.25732421875003,43.378076171874994],[131.2552734375,44.07158203124999],[130.9816406250001,44.844335937500034],[131.44687500000012,44.984033203124966],[131.85185546875002,45.32685546875001],[132.93603515624997,45.029931640624994],[133.1134765625001,45.130712890625006],[133.18603515625003,45.49482421875004],[133.43642578125,45.60468750000004],[133.86132812500003,46.24775390625004],[134.1676757812501,47.30219726562501],[134.75234375,47.71542968749998],[134.56601562500006,48.02250976562502],[134.66523437500004,48.25390625],[134.29335937500005,48.37343750000002],[133.46835937500006,48.09716796875003],[133.14404296875003,48.10566406249998],[132.7072265625001,47.94726562500006],[132.47626953125004,47.714990234374994],[130.96191406249997,47.70932617187498],[130.7326171875001,48.01923828124998],[130.80429687500012,48.34150390624998],[130.5521484375,48.602490234374955],[130.553125,48.861181640625006],[130.1959960937501,48.89165039062499],[129.49814453125012,49.38881835937502],[129.0651367187501,49.374658203124966],[128.70400390625,49.60014648437499],[127.99960937500006,49.56860351562506],[127.55078124999997,49.801806640625045],[127.590234375,50.20898437500003],[127.33720703125007,50.35014648437502],[127.30703125000005,50.70795898437501],[126.92480468749997,51.10014648437496],[126.34169921875,52.36201171875001],[125.64902343750012,53.042285156250045],[125.075,53.20366210937496],[124.81230468750002,53.133837890625045],[123.6078125,53.546533203124994],[120.98544921875012,53.28457031250002],[120.09453125000007,52.787207031250034],[120.0675781250001,52.632910156250034],[120.65615234375,52.56665039062503],[120.74980468750007,52.096533203125006],[120.06689453125003,51.60068359375006],[119.16367187500006,50.40600585937503],[119.34628906250012,50.278955078124994],[119.25986328125012,50.06640625000003],[118.4515625,49.84448242187503],[117.8734375,49.51347656250002],[116.6833007812501,49.82377929687499],[116.551171875,49.92031250000002],[116.35117187500012,49.97807617187499],[116.21679687500003,50.00927734375003],[116.13457031250002,50.01079101562499],[115.9259765625001,49.95214843750003],[115.79521484375002,49.90590820312502],[115.71777343750003,49.88061523437503],[115.58798828125006,49.88603515624996],[115.42919921874997,49.89648437499997],[115.36503906250002,49.911767578124966],[115.27451171875006,49.948876953124994],[115.00332031250005,50.138574218749994],[114.74316406249997,50.23369140625002],[114.29707031250004,50.27441406250006],[113.57421874999997,50.00703125000001],[113.44550781250004,49.94160156250001],[113.31904296875004,49.87431640624999],[113.16416015625012,49.79716796874999],[113.09208984375007,49.692529296874994],[113.05556640625,49.61625976562499],[112.91484375000002,49.569238281249994],[112.80644531250007,49.52358398437502],[112.69736328125012,49.50727539062498],[112.49492187500002,49.532324218750034],[112.07968750000006,49.42421875000002],[111.42929687500006,49.342626953125034],[111.3366210937501,49.355859374999966],[111.20419921875012,49.304296875000034],[110.82792968750002,49.16616210937505],[110.70976562500002,49.14296875000002],[110.42783203125006,49.219970703125],[110.32138671875012,49.215869140625045],[110.19990234375004,49.17041015625003],[109.5287109375,49.269873046875034],[109.45371093750012,49.29633789062501],[109.23671875000005,49.334912109374955],[108.61367187500005,49.32280273437499],[108.52246093750003,49.34150390624998],[108.4069335937501,49.39638671875005],[107.96542968750012,49.65351562500004],[107.91660156250012,49.947802734375045],[107.63095703125012,49.98310546875004],[107.3470703125,49.986669921875034],[107.23330078125,49.989404296874994],[107.14306640625003,50.03300781249999],[107.04023437500004,50.086474609375045],[106.94130859375005,50.19667968750002],[106.71113281250004,50.312597656250006],[106.57441406250004,50.32880859375004],[106.36845703125002,50.317578124999955],[106.21787109375006,50.304589843749966],[105.38359375000002,50.47373046874998],[104.07871093750012,50.15424804687498],[103.63291015625006,50.138574218749994],[103.49628906250004,50.16494140625005],[103.42119140625002,50.18706054687502],[103.3043945312501,50.200292968750034],[102.28837890625007,50.58510742187502],[102.31660156250004,50.71845703125001],[102.21503906250004,50.82944335937506],[102.19453125000004,51.05068359375002],[102.15195312500006,51.107519531250034],[102.14238281250007,51.21606445312503],[102.16005859375005,51.260839843750006],[102.1556640625,51.31376953124996],[102.1115234375001,51.353466796874955],[101.97919921875004,51.382226562499966],[101.82119140625,51.421044921874966],[101.57089843750006,51.46718750000005],[101.38125,51.45263671875],[100.53623046875006,51.713476562500034],[100.46894531250004,51.72607421875003],[100.23037109375,51.729833984375006],[100.0345703125,51.73710937499996],[99.92167968750002,51.755517578124994],[99.71923828124997,51.87163085937502],[98.89316406250006,52.11728515625006],[98.64052734375005,51.80117187500005],[98.103125,51.483544921874994],[97.82529296875012,50.985253906249994],[97.953125,50.85517578124998],[98.02978515625003,50.64462890624998],[98.07890625000002,50.60380859375002],[98.14501953124997,50.56855468750001],[98.22050781250007,50.55717773437502],[98.2794921875001,50.53325195312502],[98.25029296875002,50.30244140624998],[98.00390625000003,50.01425781249998],[97.35976562500005,49.741455078125],[97.20859375000006,49.73081054687506],[96.98574218750005,49.88281250000003],[96.31503906250012,49.90112304687503],[96.06552734375006,49.99873046875001],[95.52265625000004,49.911230468750034],[95.11142578125012,49.935449218749994],[94.93027343750006,50.04375],[94.8112304687501,50.04819335937506],[94.71806640625002,50.04326171875002],[94.67548828125004,50.02807617187506],[94.61474609375003,50.02373046874996],[94.56464843750004,50.08793945312499],[94.35468750000004,50.221826171874994],[94.25107421875006,50.55639648437503],[93.103125,50.60390625000002],[92.94130859375005,50.77822265625002],[92.85644531250003,50.78911132812502],[92.77929687500003,50.778662109375006],[92.738671875,50.71093749999997],[92.68134765625004,50.683203125],[92.6266601562501,50.68828124999999],[92.57890625000002,50.725439453125006],[92.42636718750006,50.803076171875006],[92.35478515625002,50.86416015625002],[92.29580078125,50.84980468750004],[92.19238281249997,50.700585937499994],[91.80429687500006,50.693603515625],[91.4464843750001,50.52216796874998],[91.41503906249997,50.46801757812506],[91.34082031249997,50.470068359375034],[91.30058593750002,50.46337890625],[91.2337890625,50.45239257812497],[91.02158203125012,50.41547851562501],[90.83808593750004,50.32373046874997],[90.76074218749997,50.30595703124999],[90.71435546874997,50.25942382812502],[90.65507812500007,50.22236328125001],[90.05371093750003,50.09375],[89.64384765625002,49.90302734374998],[89.65410156250007,49.71748046875001],[89.57919921875006,49.69970703125003],[89.475,49.66054687500005],[89.39560546875006,49.61152343750001],[89.24394531250007,49.62705078125006],[89.20292968750007,49.59570312499997],[89.17998046875002,49.5322265625],[89.10947265625012,49.50136718750002],[89.00839843750006,49.472802734374994],[88.97060546875,49.483740234375006],[88.94541015625012,49.50766601562498],[88.90019531250002,49.53969726562502],[88.86386718750006,49.52763671874996],[88.83164062500012,49.44843749999998],[88.633203125,49.486132812500045],[88.19257812500004,49.451708984375045],[88.13554687500002,49.38149414062502],[88.11572265624997,49.25629882812501],[88.0285156250001,49.219775390625045],[87.98808593750002,49.186914062499994],[87.9347656250001,49.16455078124997],[87.81425781250002,49.162304687499955],[87.7625,49.16582031249996],[87.5158203125001,49.122412109375006],[87.41669921875004,49.07661132812501],[87.32285156250012,49.085791015625006],[86.62646484374997,49.56269531250001],[86.67548828125004,49.77729492187501],[86.1808593750001,49.49931640624996],[85.2326171875001,49.61582031249998],[84.9894531250001,50.061425781249994],[84.32324218749997,50.239160156249966],[83.94511718750007,50.774658203125],[83.35732421875005,50.99458007812504],[82.76083984375012,50.89335937500002],[82.49394531250007,50.72758789062499],[81.46591796875006,50.73984375],[81.38828125000006,50.95649414062501],[81.0714843750001,50.96875],[81.12724609375002,51.19106445312502],[80.73525390625,51.29340820312498],[80.44804687500002,51.18334960937503],[80.42363281250002,50.94628906249997],[79.98623046875,50.774560546874966],[77.85996093750006,53.269189453124994],[76.48476562500005,54.02255859374998],[76.42167968750007,54.151513671874966],[76.65458984375007,54.14526367187503],[76.8373046875,54.4423828125],[75.43720703125004,54.08964843749999],[75.22021484374997,53.89379882812506],[74.45195312500007,53.64726562500002],[74.35156250000003,53.487646484375006],[73.85898437500006,53.61972656249998],[73.40693359375004,53.44755859374999],[73.30566406250003,53.707226562499955],[73.71240234375003,54.04238281250002],[73.22988281250005,53.957812500000045],[72.62226562500004,54.13432617187502],[72.44677734375003,53.94184570312498],[72.18603515625003,54.32563476562501],[72.00449218750006,54.20566406249998],[71.09316406250005,54.21220703124999],[71.18554687500003,54.59931640624998],[70.73808593750007,55.30517578125],[70.18242187500002,55.162451171875034],[68.9772460937501,55.389599609374955],[68.20625,55.16093750000002],[68.15585937500006,54.97670898437505],[65.476953125,54.62329101562497],[65.08837890624997,54.340185546875034],[64.46123046875002,54.38417968750002],[61.92871093750003,53.94648437500004],[61.231054687500006,54.01948242187498],[60.97949218749997,53.62172851562505],[61.53496093750002,53.52329101562506],[61.22890625,53.445898437500006],[61.19921874999997,53.28715820312502],[61.65986328125004,53.22846679687504],[62.08271484375004,53.00541992187499],[61.047460937500006,52.97246093750002],[60.77441406249997,52.67578124999997],[60.99453125000005,52.33686523437504],[60.03027343749997,51.93325195312505],[60.464746093749994,51.651171875000045],[61.55468750000003,51.32460937500005],[61.38945312500002,50.86103515625001],[60.94228515625005,50.69550781250004],[60.42480468749997,50.67915039062498],[60.05859374999997,50.850292968749955],[59.812402343749994,50.58203125],[59.523046875,50.492871093749955],[59.4523437500001,50.62041015625002],[58.88369140625005,50.694433593750006],[58.359179687500074,51.063818359375034],[57.83886718750003,51.091650390625006],[57.44218750000002,50.88886718749998],[57.01171874999997,51.06518554687503],[56.49140625000004,51.01953124999997],[55.68623046875004,50.582861328125006],[54.64160156250003,51.011572265625034],[54.555273437500006,50.535791015624994],[54.139746093750006,51.04077148437503],[53.33808593750004,51.48237304687504],[52.57119140625005,51.481640624999955],[52.21914062499999,51.709375],[51.344531250000074,51.47534179687503],[51.16347656250005,51.6474609375],[50.79394531249997,51.729199218749955],[50.246875,51.28950195312498],[49.49804687500003,51.08359375000006],[49.32343750000004,50.851708984374966],[48.625097656250006,50.61269531250005],[48.7589843750001,49.92832031250006],[48.33496093750003,49.858251953125006],[47.7057617187501,50.37797851562502],[47.42919921874997,50.35795898437502],[46.889550781249994,49.69697265625001],[46.80205078125002,49.36708984375002],[47.031347656250006,49.150292968749994],[46.70263671875003,48.80556640625002],[46.660937500000074,48.41225585937502],[47.06464843750004,48.23247070312499],[47.292382812499994,47.74091796875004],[47.48193359374997,47.80390624999998],[48.16699218750003,47.70878906249996],[48.959375,46.77460937499998],[48.558398437500074,46.75712890624999],[48.54121093750004,46.60561523437502],[49.232226562500074,46.33715820312503],[48.683691406250006,46.08618164062497],[48.72958984375006,45.896826171875034],[48.4870117187501,45.93486328124996],[47.63330078124997,45.58403320312499],[47.46328125,45.67968750000003],[47.5294921875001,45.530224609374955],[47.3512695312501,45.21772460937498],[46.7072265625001,44.503320312499994],[47.30703125000005,44.103125],[47.462792968749994,43.55502929687498],[47.64648437500003,43.88461914062498],[47.463183593750074,43.03505859375002],[48.572851562500006,41.84448242187503],[47.79101562499997,41.19926757812502],[47.31767578125002,41.28242187500001],[46.74931640625002,41.812597656250006],[46.42988281250004,41.890966796875006],[46.21269531250002,41.989892578124994],[45.63857421875005,42.20507812500003],[45.63427734374997,42.234716796875034],[45.72753906249997,42.47504882812498],[45.70527343750004,42.49809570312496],[45.56289062499999,42.53574218749998],[45.34375,42.52978515625003],[45.16025390625006,42.675],[45.07158203125002,42.69414062500002],[44.94335937499997,42.73027343750002],[44.870996093749994,42.75639648437499],[44.850488281249994,42.746826171875],[44.77109375000006,42.61679687499998],[44.69179687499999,42.709619140624966],[44.64433593750002,42.734716796875034],[44.50585937500003,42.748632812500006],[44.329492187499994,42.703515624999966],[44.10273437500004,42.616357421874994],[44.004687500000074,42.59560546875002],[43.95742187500005,42.56655273437505],[43.825976562500074,42.571533203125],[43.759863281250006,42.593847656250006],[43.738378906250006,42.61699218750002],[43.74990234375005,42.65751953125002],[43.79541015624997,42.702978515625034],[43.78261718750005,42.747021484374955],[43.62304687500003,42.80771484374998],[43.5578125000001,42.844482421875],[43.089160156250074,42.9890625],[43.00019531250004,43.04965820312506],[42.991601562499994,43.09150390624998],[42.76064453125005,43.169580078124966],[41.58056640624997,43.21923828124997],[41.460742187500074,43.276318359374955],[41.35820312500002,43.33339843750005],[41.08310546875006,43.37446289062498],[40.94199218750006,43.41806640624998],[40.801660156249994,43.479931640624955],[40.64804687500006,43.53388671875004],[40.084570312500006,43.553125],[40.02373046875002,43.48486328125],[39.873632812500006,43.47280273437502],[38.71728515624997,44.28808593750003],[38.18125,44.41967773437503],[37.851464843749994,44.698828125000034],[37.49511718750003,44.69526367187504],[37.20478515625004,44.97197265624999],[36.62763671875004,45.15131835937504],[36.941210937500074,45.289697265624994],[36.72041015625004,45.371875],[36.8659179687501,45.42705078124999],[37.21357421875004,45.272314453125006],[37.6471679687501,45.37719726562506],[37.61240234375006,45.56469726562506],[37.93310546875003,46.001708984375],[38.014257812500006,46.047753906249966],[38.07958984375003,45.93481445312506],[38.18359374999997,46.09482421875006],[38.49228515625006,46.09052734374998],[37.913867187500074,46.40649414062503],[37.766503906249994,46.63613281250002],[38.50097656249997,46.663671875000034],[38.43867187500004,46.813085937500006],[39.29345703125003,47.105761718750045],[39.19570312499999,47.268847656250045],[39.023730468750074,47.27221679687503],[38.928320312500006,47.175683593749994],[38.55244140625004,47.15034179687498],[38.7619140625001,47.261621093749994],[38.21435546875003,47.091455078124966],[38.36884765625004,47.609960937500006],[38.90029296875005,47.85512695312502],[39.77871093750005,47.88754882812506],[39.95791015625005,48.268896484375034],[39.8356445312501,48.54277343749996],[39.6447265625001,48.591210937499966],[39.792871093749994,48.807714843750034],[40.00361328125004,48.82207031250002],[39.68652343749997,49.007910156250034],[40.10878906250005,49.251562500000034],[40.080664062500006,49.576855468749955],[39.780566406250074,49.57202148437503],[39.17480468750003,49.85595703124997],[38.91835937499999,49.82470703125],[38.258593750000074,50.05234375],[38.046875,49.92001953125006],[37.42285156249997,50.411474609375006],[36.619433593750074,50.209228515625],[36.1164062500001,50.408544921875006],[35.59111328125002,50.36875],[35.31191406250005,51.043896484374955],[35.0640625,51.203417968750045],[34.21386718750003,51.25537109375006],[34.12109375000003,51.67915039062498],[34.397851562499994,51.780419921874994],[33.735253906249994,52.344775390625045],[32.435449218749994,52.307226562500034],[32.12226562500004,52.05058593749996],[31.763378906250097,52.10107421875003],[31.758593750000017,52.125830078125034],[31.690625,52.22065429687498],[31.64990234374997,52.26220703125],[31.60156250000003,52.284814453124994],[31.57734375000004,52.31230468749999],[31.585546875,52.532470703125],[31.56484375,52.75922851562501],[31.53515624999997,52.798242187499966],[31.442773437499994,52.86181640625003],[31.35302734374997,52.93344726562498],[31.295117187500097,52.98979492187499],[31.25878906249997,53.01669921875006],[31.364550781250017,53.13896484375002],[31.388378906250097,53.18481445312503],[31.41787109375005,53.196044921875],[31.849707031250006,53.106201171875],[32.14199218750005,53.091162109375034],[32.46933593750006,53.270312500000045],[32.578027343749994,53.312402343749994],[32.644433593749994,53.32890624999999],[32.70429687500004,53.33632812499999],[32.45097656250002,53.6533203125],[32.20039062500004,53.78125],[31.99218750000003,53.796875],[31.82080078124997,53.79194335937498],[31.754199218750017,53.81044921875002],[31.825292968750006,53.93500976562501],[31.837792968749994,54.00078124999999],[31.825976562500074,54.030712890624955],[31.79199218749997,54.05590820312503],[31.62841796874997,54.111181640625006],[31.403613281250017,54.195947265624966],[31.299121093750017,54.29169921875001],[31.184765625000097,54.452978515625006],[31.074804687500063,54.491796875],[31.154882812500063,54.610937500000034],[31.152148437500017,54.625341796875034],[31.12128906250004,54.64848632812496],[30.984179687500074,54.695898437500034],[30.79882812499997,54.78325195312499],[30.79101562499997,54.806005859375006],[30.804492187500074,54.8609375],[30.829882812500017,54.91499023437498],[30.977734375000097,55.05048828124998],[30.977734375000097,55.08779296875002],[30.958886718749994,55.13759765625005],[30.87744140625003,55.223437500000045],[30.81445312499997,55.27871093750002],[30.81054687499997,55.306982421875006],[30.82099609375004,55.330273437499955],[30.900585937500097,55.397412109374955],[30.906835937500063,55.57001953125004],[30.625585937500006,55.666259765625],[30.23359375000004,55.84521484375006],[30.04267578125004,55.83642578125003],[29.93701171874997,55.84526367187499],[29.881640625000074,55.83232421875002],[29.82392578125004,55.79511718749998],[29.74414062499997,55.770410156249994],[29.630078125000097,55.75117187499998],[29.482226562500074,55.6845703125],[29.412988281249994,55.72485351562506],[29.35341796875005,55.784375],[29.375,55.938720703125],[28.284277343750006,56.055908203125],[28.14794921875003,56.142919921875034],[28.202050781250023,56.260400390624994],[28.191699218750045,56.31557617187505],[28.169238281250017,56.386865234374994],[28.11083984375,56.51069335937501],[28.103125,56.545703125000045],[27.89208984375003,56.741064453125034],[27.88154296875001,56.82416992187501],[27.848632812500057,56.85341796875002],[27.806054687499994,56.86708984375005],[27.639453125000074,56.84565429687504],[27.83027343750004,57.19448242187505],[27.83828125000008,57.247705078124966],[27.82861328124997,57.293310546875006],[27.796875,57.316943359375045],[27.538671875000063,57.429785156250034],[27.51113281250005,57.508154296875006],[27.469726562500057,57.524023437500034],[27.35195312500005,57.528125],[27.4,57.66679687499999],[27.542089843750063,57.799414062500006],[27.778515625000068,57.87070312500006],[27.502441406250057,58.221337890624994],[27.434179687500006,58.787255859374994],[28.15107421875004,59.374414062499966],[28.0125,59.484277343749966],[28.05800781250008,59.781542968750045],[28.334570312500034,59.69252929687502],[28.518164062500034,59.849560546874955],[28.947265625000057,59.828759765624994],[29.147265625000045,59.999755859375],[30.12255859374997,59.873583984375074],[30.172656250000017,59.957128906250034],[29.72119140624997,60.19531249999997],[29.069140625000017,60.19145507812499],[28.643164062500006,60.375292968750045],[28.512792968750006,60.67729492187502],[27.797656250000074,60.53613281250003],[29.69013671875004,61.54609375000001],[31.18671875000004,62.48139648437504],[31.533984375000017,62.885400390624994],[31.180859375000097,63.208300781250074],[29.991503906250074,63.73515625000002],[30.50390625000003,64.02060546875],[30.513769531250006,64.2],[30.04189453125005,64.44335937499997],[30.072851562500063,64.76503906250005],[29.60419921875004,64.968408203125],[29.826953125000017,65.14506835937502],[29.608007812500006,65.248681640625],[29.715917968750063,65.62456054687502],[30.102734375000097,65.72626953125004],[29.066210937500045,66.89174804687497],[29.988085937500017,67.66826171874999],[29.343847656250006,68.06186523437506],[28.685156250000034,68.189794921875],[28.470703125000057,68.48837890625],[28.77285156250005,68.84003906249995],[28.414062500000057,68.90415039062506],[28.96582031250003,69.02197265625],[29.38828125,69.29814453125005],[30.08730468750005,69.43286132812503],[30.18017578124997,69.63583984375],[30.860742187499994,69.53842773437503],[30.869726562500006,69.78344726562506],[31.546972656250063,69.696923828125],[31.997949218749994,69.80991210937503],[31.98457031250004,69.95366210937499],[33.00781249999997,69.72211914062498],[32.91503906249997,69.60170898437497],[32.17675781250003,69.67402343749995],[32.37773437500002,69.47910156250003],[32.99980468750002,69.4701171875],[32.97890625000005,69.367333984375],[33.45429687500004,69.42817382812495],[33.14121093750006,69.068701171875],[33.684375,69.31025390625001],[35.85791015625003,69.19174804687503],[37.73056640625006,68.69213867187503],[38.43017578125003,68.35561523437505],[39.568945312500006,68.07172851562501],[39.82333984375006,68.05859375],[39.80927734375004,68.15083007812498],[40.38066406250002,67.831884765625],[40.96640625000006,67.71347656250003],[41.358789062499994,67.20966796874998],[41.18896484375003,66.82617187500003],[40.10332031250002,66.29995117187502],[38.65390625000006,66.06904296874995],[35.51347656250002,66.39580078125002],[34.82460937499999,66.61113281249999],[34.48261718750004,66.55034179687505],[34.4515625,66.651220703125],[33.15019531250002,66.84394531250001],[32.93046875000002,67.08681640625002],[31.895312500000074,67.16142578125002],[33.65595703125004,66.44262695312506],[33.36054687500004,66.32954101562501],[34.112695312499994,66.225244140625],[34.69179687500005,65.95185546874998],[34.77695312500006,65.76826171874998],[34.40644531250004,65.39575195312503],[35.03535156250004,64.44023437500005],[35.802050781250074,64.3353515625],[36.3649414062501,64.00283203125002],[37.44218750000002,63.813378906249966],[37.9679687500001,63.949121093749994],[38.0622070312501,64.09101562499995],[37.953710937500006,64.32011718749999],[37.183691406250006,64.40849609375007],[36.6242187500001,64.75053710937502],[36.534570312499994,64.93862304687497],[36.88281249999997,65.17236328124997],[39.7580078125001,64.57705078125002],[40.05781250000004,64.77075195312497],[40.44492187500006,64.7787109375],[39.7980468750001,65.349853515625],[39.816503906250006,65.59794921874999],[41.4757812500001,66.12343750000002],[42.21054687500006,66.51967773437502],[43.23320312500002,66.41552734375003],[43.653125,66.2509765625],[43.54189453125005,66.12338867187503],[43.84375,66.14238281249999],[44.10439453125005,66.00859374999999],[44.42929687500006,66.93774414062503],[43.7824218750001,67.25449218749998],[44.20468750000006,68.25375976562498],[43.33320312500004,68.67338867187502],[44.04804687500004,68.54882812499997],[45.891992187499994,68.47968750000001],[46.69042968750003,67.84882812500001],[45.52871093750005,67.75756835937497],[44.90214843750002,67.41313476562505],[45.56220703125004,67.18559570312507],[45.88535156250006,66.89106445312501],[46.4923828125001,66.80019531249997],[47.65585937500006,66.97592773437498],[47.87470703125004,67.58417968749998],[48.83320312500004,67.681494140625],[48.75429687500005,67.89594726562501],[49.15527343750003,67.87041015625005],[51.994726562500006,68.53876953124995],[52.3966796875001,68.35170898437505],[52.72265624999997,68.484033203125],[52.34404296875002,68.60815429687497],[53.80195312500004,68.99589843750002],[54.49121093750003,68.992333984375],[53.797656250000074,68.90747070312503],[53.9308593750001,68.43554687499997],[53.260546875000074,68.26748046875002],[54.476171875,68.29414062499995],[54.86132812500003,68.20185546874998],[55.418066406250006,68.56782226562501],[56.04365234375004,68.64887695312501],[57.126855468749994,68.55400390625005],[58.17304687500004,68.88974609375006],[59.0573242187501,69.00605468750004],[59.37050781250005,68.73837890625003],[59.09902343750005,68.4443359375],[59.725683593750006,68.35161132812502],[59.89599609374997,68.70634765624999],[60.489160156249994,68.72895507812498],[60.93359374999997,68.98676757812501],[60.17060546875004,69.59091796875],[60.90908203125005,69.84711914062495],[64.19042968750003,69.53466796875],[64.89628906250002,69.247802734375],[67.00244140625003,68.87358398437505],[68.37119140625006,68.31425781250005],[69.14052734375005,68.95063476562501],[68.54277343750002,68.96708984374999],[68.00585937499997,69.48002929687505],[67.62412109375,69.58442382812501],[67.06445312500003,69.69370117187498],[66.89667968750004,69.55380859374998],[67.28476562500006,70.73872070312498],[67.14335937500002,70.83754882812502],[66.70224609375006,70.81850585937497],[66.63964843749997,71.08139648437498],[68.2692382812501,71.68281250000001],[69.61181640625003,72.98193359375],[69.73828124999997,72.88496093749998],[71.5001953125001,72.91367187500003],[72.812109375,72.69140624999997],[72.57412109375,72.01254882812506],[71.86728515625,71.457373046875],[72.70449218750005,70.96323242187498],[72.5767578125,68.96870117187498],[73.59169921875005,68.48188476562501],[73.13945312500002,68.18134765624998],[73.06679687500005,67.766943359375],[71.84746093750002,67.00761718750005],[71.36523437500003,66.96152343749998],[71.53955078125003,66.68310546875],[70.72490234375007,66.51943359374997],[70.38281249999997,66.60249023437501],[70.69072265625002,66.74531249999998],[70.2833984375001,66.68579101562503],[69.8771484375001,66.84545898437506],[69.21777343749997,66.82861328125],[69.01347656250002,66.78833007812503],[69.19433593749997,66.57866210937505],[70.33945312500006,66.34238281250006],[71.35800781250006,66.35942382812505],[71.91699218749997,66.24672851562502],[72.32158203125002,66.33212890625],[72.4173828125,66.56079101562506],[73.79208984375,66.99531250000001],[74.07451171875007,67.41411132812499],[74.76953124999997,67.76635742187497],[74.39140625000007,68.42060546874995],[74.57958984375003,68.751220703125],[76.10751953125006,68.975732421875],[76.45917968750004,68.97827148437497],[77.2384765625001,68.46958007812498],[77.17441406250012,67.77851562499998],[77.77158203125006,67.57026367187501],[78.92246093750006,67.58911132812503],[77.58828125000005,67.75190429687498],[77.66484375000002,68.19038085937495],[77.99511718749997,68.25947265624998],[77.65068359375007,68.90302734375001],[76.00097656249997,69.23505859374998],[75.42001953125,69.23862304687498],[74.81484375,69.09057617187503],[73.83603515625006,69.143212890625],[73.578125,69.80297851562503],[74.34335937500006,70.57871093749998],[73.08623046875007,71.44492187500006],[73.67177734375,71.84506835937503],[74.99218749999997,72.14482421874999],[74.78681640625004,72.811865234375],[75.15244140625,72.85273437499998],[75.74140625000004,72.29624023437503],[75.273828125,71.95893554687495],[75.33203125000003,71.34174804687498],[76.92900390625002,71.12788085937504],[77.58964843750007,71.16791992187501],[78.32060546875002,70.93041992187503],[78.94218750000002,70.93378906250001],[79.08388671875,71.00200195312505],[78.58769531250007,70.993896484375],[78.21259765625004,71.26630859374998],[76.43339843750002,71.55249023437503],[76.03242187500004,71.91040039062503],[76.87138671875002,72.03300781250005],[77.77753906250004,71.83642578125006],[78.23242187500003,71.95229492187502],[78.01640625000007,72.092041015625],[77.49287109375004,72.07172851562504],[77.47158203125,72.19213867187506],[78.22539062500007,72.37744140625006],[79.4220703125001,72.38076171875002],[80.7625,72.08916015625002],[81.66162109374997,71.71596679687502],[82.75781250000003,71.76411132812498],[83.23359375000004,71.66816406249995],[82.32285156250006,71.26000976562503],[82.16318359375012,70.59814453125003],[82.22119140625003,70.39570312499998],[82.86914062499997,70.95483398437503],[83.03017578125,70.58051757812498],[82.6823242187501,70.21772460937498],[83.0807617187501,70.09301757812497],[83.07382812500012,70.276708984375],[83.73593750000006,70.54648437499998],[83.15126953125005,71.10361328124998],[83.534375,71.68393554687498],[83.20029296875012,71.87470703125004],[82.64541015625005,71.92524414062504],[82.09365234375,72.26542968750005],[80.82705078125005,72.48828124999997],[80.84160156250007,72.94916992187498],[80.4245117187501,73.23115234374998],[80.5832031250001,73.56845703125003],[85.20058593750005,73.72153320312506],[86.89296875,73.88710937500002],[85.79257812500012,73.438330078125],[86.67705078125002,73.10678710937503],[85.93896484374997,73.45649414062495],[87.12011718750003,73.61503906250002],[87.57119140625,73.81074218750001],[86.57109375000007,74.24375],[86.0013671875,74.316015625],[86.39580078125007,74.45009765624997],[86.89794921874997,74.32534179687497],[87.22968750000004,74.3638671875],[85.79101562499997,74.6451171875],[86.20126953125006,74.81621093750005],[86.65146484375012,74.68242187500005],[87.04179687500007,74.77885742187499],[87.46757812500002,75.01323242187505],[86.93906250000006,75.06811523437503],[87.00595703125012,75.16982421874997],[87.67138671874997,75.12958984375004],[90.18496093750005,75.59106445312497],[94.07519531249997,75.91289062499999],[92.89042968750002,75.90996093750002],[93.25927734375003,76.09877929687502],[95.57871093750012,76.13730468749998],[96.07548828125007,76.08198242187498],[95.65332031250003,75.89218750000003],[96.50859375000002,76.00556640624995],[96.49707031249997,75.89121093750003],[98.66201171875005,76.24267578125003],[99.77041015625,76.02875976562498],[99.5407226562501,75.79858398437497],[99.85136718750007,75.93027343749998],[99.8253906250001,76.13593749999995],[98.80566406250003,76.48066406250004],[100.84375,76.52519531250005],[101.59775390625006,76.43920898437503],[100.92802734375002,76.55673828124998],[100.98994140625004,76.99047851562497],[102.61015625000007,77.508544921875],[104.01455078125,77.73041992187501],[106.05957031249997,77.39052734375002],[104.20244140625002,77.101806640625],[106.9416015625001,77.034375],[107.42978515625006,76.92656250000002],[106.41357421874997,76.51225585937499],[107.72216796875003,76.52231445312498],[108.18164062500003,76.73784179687502],[111.39248046875,76.686669921875],[112.09394531250004,76.48032226562506],[111.94267578125002,76.38046875000003],[112.61953125,76.38354492187506],[112.65625,76.05356445312498],[113.2726562500001,76.25166015625001],[113.5638671875,75.89165039062502],[113.85722656250007,75.92128906250002],[113.56757812500004,75.56840820312499],[112.45302734375,75.83017578125003],[112.95566406250006,75.571923828125],[113.24296875000007,75.61142578125003],[113.72617187500012,75.45063476562498],[112.92490234375012,75.01503906249997],[109.84033203124997,74.32197265624998],[109.8102539062501,74.16918945312503],[108.19951171875002,73.69409179687497],[107.27109375000006,73.62104492187501],[106.67939453125004,73.3306640625],[106.1886718750001,73.3080078125],[105.14394531250005,72.77705078125001],[105.7082031250001,72.836669921875],[106.47792968750005,73.13940429687503],[107.750390625,73.17314453125007],[109.33105468749997,73.48745117187497],[109.85527343750002,73.47246093750002],[110.86816406249997,73.73071289062497],[109.70673828125004,73.74375],[110.2614257812501,74.01743164062503],[111.05625,73.93935546875002],[111.13085937500003,74.05283203125003],[111.55058593750007,74.02851562499998],[111.22812500000012,73.96855468750002],[111.40039062500003,73.827734375],[112.14726562500007,73.70893554687498],[112.79541015625003,73.74609375],[112.83593750000003,73.96206054687502],[113.03281250000006,73.91386718750007],[113.4162109375001,73.647607421875],[113.15693359375004,73.45957031249998],[113.49091796875004,73.34609375000002],[113.12783203125,72.8306640625],[113.66455078124997,72.63452148437503],[113.2155273437501,72.80585937500001],[113.88623046875003,73.34580078124998],[113.51035156250012,73.50498046874998],[115.33769531250007,73.70258789062501],[118.87089843750007,73.53789062500002],[118.45703124999997,73.46440429687507],[118.43027343750012,73.24653320312501],[119.750390625,72.97910156250006],[122.26015625,72.88056640624995],[122.75195312500003,72.906494140625],[122.61523437499997,73.02792968750006],[123.1603515625001,72.95488281250002],[123.62226562500004,73.19326171875],[123.49111328125005,73.666357421875],[124.54121093750004,73.75126953125007],[125.59853515625005,73.447412109375],[126.25449218750012,73.548193359375],[126.55253906250007,73.33491210937498],[127.03134765625006,73.54746093750003],[127.74033203125012,73.48154296875],[129.10058593750003,73.11235351562502],[128.5990234375,72.895166015625],[129.01728515625004,72.8724609375],[129.250390625,72.70517578125003],[128.41826171875002,72.53515625000003],[129.28134765625006,72.43769531249998],[129.41064453124997,72.16630859375002],[128.93496093750005,72.07949218750002],[127.8034179687501,72.43403320312504],[127.84140625000012,72.308251953125],[128.91142578125002,71.75532226562495],[129.21025390625007,71.91694335937501],[129.46083984375,71.73930664062499],[128.84326171875003,71.6634765625],[129.76191406250004,71.11953125000002],[130.53710937500003,70.89252929687495],[130.75712890625002,70.96235351562498],[131.02158203125006,70.74609374999997],[132.0353515625001,71.24404296875],[132.65390625000006,71.92597656250001],[133.6888671875,71.434228515625],[134.70273437500012,71.38681640625003],[135.55917968750006,71.6103515625],[136.09033203125003,71.61958007812501],[137.9396484375001,71.1333984375],[137.84404296875007,71.22680664062503],[138.31406250000006,71.32553710937498],[137.918359375,71.38408203124999],[138.23417968750007,71.596337890625],[138.78017578125,71.62900390624998],[139.209375,71.44477539062501],[139.98417968750007,71.49150390625005],[139.72294921875002,71.88496093749998],[139.35927734375005,71.95136718750001],[140.18769531250004,72.19130859374997],[139.17636718750006,72.16347656249997],[139.14082031250004,72.32973632812502],[139.60117187500012,72.49609374999997],[141.07929687500004,72.5869140625],[140.80820312500006,72.89096679687503],[142.06142578125005,72.72080078125],[146.25292968749997,72.442236328125],[146.234765625,72.34970703125],[144.77636718749997,72.38227539062495],[144.16923828125002,72.25878906250003],[144.29492187499997,72.19262695312497],[146.83183593750007,72.29541015625003],[146.11328125000003,71.94497070312497],[146.23027343750007,72.1375],[145.75859375000007,72.22587890624999],[145.75673828125005,71.94130859375002],[145.06396484374997,71.92607421875002],[145.18857421875012,71.69580078125],[146.07324218749997,71.80834960937503],[147.26181640625006,72.327880859375],[149.50156250000012,72.16430664062497],[150.01689453125002,71.89565429687505],[149.04873046875005,71.79575195312503],[148.9681640625,71.69047851562499],[150.59980468750004,71.5201171875],[150.09765624999997,71.22656249999997],[150.96777343749997,71.38046874999998],[151.58242187500005,71.28696289062503],[152.09277343749997,71.02329101562503],[151.76201171875002,70.98247070312499],[152.50878906250003,70.83447265625003],[156.68457031250003,71.09375],[158.03701171875005,71.03925781250001],[159.35068359375006,70.79072265625001],[160.00644531250006,70.30966796875006],[159.72939453125005,69.87021484375006],[160.91074218750012,69.60634765625002],[161.03554687500005,69.09819335937507],[161.30986328125007,68.98227539062498],[160.85605468750006,68.53833007812506],[161.565625,68.90517578125],[161.53691406250002,69.379541015625],[162.16601562499997,69.61157226562503],[163.20136718750004,69.71474609375],[166.82031250000003,69.49956054687505],[167.8568359375,69.72822265624998],[168.30302734375002,69.27148437500003],[169.31064453125006,69.07954101562498],[169.60986328124997,68.78603515624997],[170.53759765624997,68.82539062500001],[170.99541015625002,69.04531250000005],[170.58222656250004,69.58334960937506],[170.16093750000007,69.62656249999998],[170.48681640625003,70.107568359375],[173.27744140625006,69.823828125],[173.43867187500004,69.94682617187502],[175.92148437500012,69.89531250000002],[179.27265624999998,69.25966796875002],[180,68.98344726562505],[180,65.06723632812498],[178.51953125000003,64.60297851562498],[177.7486328125,64.71704101562503],[176.88085937499997,65.08193359375002],[176.34101562500015,65.04731445312501],[177.03730468750004,64.99965820312497],[177.22285156250004,64.861669921875],[177.06875,64.78666992187502],[176.06113281250012,64.96088867187498],[174.54882812500009,64.68388671875005],[176.0565429687501,64.90473632812498],[176.35097656250005,64.70512695312502],[176.14091796875007,64.58583984375005],[177.42744140625015,64.76337890624998],[177.43291015625002,64.44448242187502],[177.6875,64.30473632812507],[178.04472656250013,64.21958007812503],[178.22949218749991,64.36440429687497],[178.38144531250018,64.26088867187502],[178.73144531250003,63.667089843750006],[178.44042968750009,63.605566406250006],[178.74404296874994,63.39477539062503],[178.79296874999997,63.54033203125002],[179.38857421875,63.14721679687497],[179.25957031250002,63.00830078125],[179.5705078125001,62.6875],[179.12070312500012,62.32036132812499],[177.292578125,62.59902343750002],[177.33896484375006,62.781347656250034],[177.02353515625012,62.777246093749994],[177.15947265625007,62.56098632812498],[174.51435546875015,61.823632812499966],[173.6234375,61.716064453125],[173.13183593749997,61.40664062500002],[172.85654296875006,61.469189453124955],[172.90800781250002,61.311621093750006],[172.39609375000006,61.16738281250002],[172.39277343750004,61.061767578125],[170.60820312500007,60.434912109375034],[170.3509765625,59.965527343749955],[169.9826171875001,60.067089843749955],[169.2267578125001,60.59594726562497],[168.1375,60.57392578125001],[167.22675781250004,60.406298828125045],[166.27304687500012,59.85625],[166.13603515625007,59.979345703125034],[166.35214843750006,60.48481445312498],[165.08457031250006,60.09858398437498],[164.95371093750006,59.843603515625006],[164.52529296875,60.06127929687503],[164.11328125000003,59.89755859374998],[164.13505859375002,59.984375],[163.74384765625004,60.02802734374998],[163.36484375000012,59.78144531250004],[163.27285156250005,59.302587890625006],[162.14160156249997,58.44741210937502],[161.96005859375012,58.07690429687506],[162.39140625000002,57.717236328124955],[162.65429687499997,57.94824218750003],[163.22578125000004,57.790380859375034],[162.77929687500003,57.35761718749998],[162.79111328125012,56.875390624999966],[162.92207031250004,56.72265625000003],[163.2565429687501,56.68803710937499],[163.33554687500012,56.232519531250006],[163.04736328125003,56.044677734375],[162.84033203125003,56.065625],[162.628125,56.232275390625034],[163.03837890625002,56.521875],[162.67148437500006,56.49008789062498],[162.52822265625005,56.260693359374955],[162.08496093749997,56.08964843750002],[161.72392578125002,55.49614257812499],[162.10556640625006,54.75214843750004],[161.62480468750002,54.51625976562502],[160.77265625000004,54.54135742187498],[160.0744140625001,54.18916015625001],[159.84375,53.78364257812498],[160.02509765625004,53.129589843749955],[159.58593750000003,53.237695312499966],[158.74541015625002,52.90893554687506],[158.47207031250005,53.032373046874966],[158.6087890625,52.873632812500034],[158.49316406249997,52.383154296875034],[158.10351562500003,51.80961914062499],[156.84746093750002,51.006591796875],[156.74775390625004,50.969287109375045],[156.52119140625004,51.38027343750002],[156.36474609374997,52.509375],[156.11035156250003,52.86616210937504],[155.62031250000004,54.86455078125002],[155.5548828125001,55.348486328125034],[155.98251953125012,56.69521484375002],[156.8488281250001,57.290185546874994],[156.97675781250004,57.46630859375],[156.82988281250007,57.77963867187498],[157.4503906250001,57.79926757812498],[157.66640625000005,58.01977539062506],[158.27519531250007,58.00898437499998],[159.21064453125004,58.519433593749966],[159.8473632812501,59.127148437499955],[161.75351562500012,60.15229492187501],[162.06816406250002,60.466406250000034],[163.70996093749997,60.916796875000045],[163.55351562500002,61.02563476562503],[164.00546875000006,61.34379882812499],[163.80439453125004,61.46137695312498],[164.20722656250004,62.29223632812506],[164.59833984375004,62.470556640625034],[165.20810546875012,62.37397460937501],[165.41738281250005,62.447070312500045],[164.418359375,62.704638671875045],[163.33173828125004,62.550927734374994],[163.01767578125006,61.89106445312504],[163.25781249999997,61.69946289062497],[163.08525390625002,61.570556640625],[162.85595703125003,61.705029296874955],[162.39257812500003,61.662109375],[160.76660156249997,60.753320312499966],[160.17363281250002,60.638427734375],[160.37890625000003,61.02548828124998],[159.79042968750005,60.956640625],[160.309375,61.894384765625006],[159.55234375000012,61.71948242187497],[159.18925781250007,61.92939453125001],[158.07011718750002,61.75361328125001],[157.46933593750012,61.798925781250006],[157.0841796875001,61.67568359375002],[155.71611328125002,60.682373046875],[154.97080078125012,60.376660156249955],[154.29306640625006,59.833349609375034],[154.1498046875,59.52851562500001],[154.97128906250006,59.44960937500002],[155.16044921875002,59.19013671875001],[154.45800781250003,59.21655273437497],[154.01093750000004,59.075537109375006],[153.69521484375005,59.22475585937505],[153.36113281250002,59.214794921874955],[152.81787109375003,58.92626953124997],[152.31962890625002,59.03076171875003],[152.08789062499997,58.910449218750045],[151.32675781250006,58.875097656250034],[151.12109375000003,59.08251953125003],[152.26064453125,59.22358398437498],[151.34824218750012,59.561132812500006],[150.4835937500001,59.494384765625],[150.66728515625002,59.55634765625001],[149.64257812499997,59.770410156249994],[149.06523437500002,59.63051757812502],[149.20498046875,59.488183593749966],[148.79707031250004,59.532324218750006],[148.74414062499997,59.37353515624997],[148.96464843750007,59.36914062499997],[148.72666015625006,59.257910156250034],[148.25742187500006,59.414208984374994],[147.51445312500002,59.2685546875],[146.53720703125006,59.45698242187501],[146.0495117187501,59.17055664062502],[145.55458984375,59.413525390624955],[143.19218750000002,59.3701171875],[142.58027343750004,59.240136718749966],[140.79023437500004,58.30346679687503],[140.446875,57.81367187499998],[138.66210937500003,56.96552734375004],[137.69150390625006,56.13935546875004],[135.2625,54.94331054687498],[135.25771484375005,54.73149414062499],[135.85156249999997,54.583935546874955],[136.797265625,54.62099609375005],[136.71884765625006,53.804101562499994],[137.15537109375012,53.82167968750002],[137.14160156249997,54.182226562500006],[137.66601562500003,54.283300781250006],[137.3392578125,54.10053710937498],[137.83476562500002,53.94672851562498],[137.25371093750007,53.546142578125],[137.95048828125007,53.60356445312499],[138.52792968750012,53.959863281249994],[138.56914062500002,53.818798828124955],[138.24970703125004,53.524023437500034],[138.45068359375003,53.53701171875002],[138.69941406250004,53.869726562500034],[138.65722656249997,54.29833984375003],[139.31972656250005,54.19296874999998],[139.707421875,54.27714843749999],[140.68759765625012,53.59643554687503],[141.3737304687501,53.29277343749999],[141.18125,53.01528320312505],[140.83964843750002,53.087890625],[141.25585937499997,52.84013671874996],[141.13242187500006,52.435693359374994],[141.48525390625,52.17851562500002],[141.36689453125004,51.92065429687506],[140.93261718750003,51.61992187499999],[140.5208984375,50.80019531250005],[140.62451171874997,50.08242187500002],[140.46269531250002,49.911474609375006],[140.51718750000012,49.59614257812498],[140.17060546875004,48.52368164062497],[138.58681640625005,47.057226562500006],[138.33691406250003,46.543408203124955],[137.68544921875,45.81835937500003],[136.14228515625004,44.489111328125034],[135.87460937500012,44.37353515625003],[135.1310546875001,43.52573242187506],[134.01044921875004,42.94746093750001],[133.15996093750007,42.69697265624998],[132.70898437500003,42.875830078125006],[132.30380859375006,42.88330078125],[132.30957031249997,43.31352539062499],[131.8666015625,43.09516601562501],[131.93896484374997,43.30195312500004],[131.15830078125012,42.62602539062499],[130.709375,42.656396484374966],[130.8341796875001,42.52294921875006],[130.68730468750007,42.30253906249999]]],[[[107.69550781250004,78.13090820312505],[107.48164062500004,78.057763671875],[106.41552734375003,78.13984375000001],[107.69550781250004,78.13090820312505]]],[[[102.88476562499997,79.25395507812505],[102.4123046875001,78.83544921874997],[103.80078124999997,79.14926757812503],[104.45205078125005,78.880029296875],[105.14599609375003,78.81884765625006],[105.31259765625012,78.49990234375],[104.74179687500012,78.33974609374997],[102.79667968750007,78.18789062500002],[101.20410156249997,78.19194335937505],[99.50029296875002,77.97607421875003],[101.590625,79.350439453125],[102.25126953125002,79.25605468749995],[102.40488281250006,79.43320312499998],[102.88476562499997,79.25395507812505]]],[[[76.24892578125005,79.65107421874995],[77.58896484375012,79.50190429687504],[76.64951171875012,79.493408203125],[76.24892578125005,79.65107421874995]]],[[[92.68349609375005,79.685205078125],[91.37626953125007,79.83549804687505],[91.22929687500007,80.03071289062504],[93.803125,79.904541015625],[92.68349609375005,79.685205078125]]],[[[51.409277343750006,79.94423828125],[50.09140625,79.98056640625003],[50.93632812500002,80.09423828125],[51.409277343750006,79.94423828125]]],[[[59.68886718750005,79.95581054687506],[58.91923828125002,79.98461914062506],[59.54453125000006,80.11884765624995],[59.68886718750005,79.95581054687506]]],[[[97.67451171875004,80.15825195312499],[97.65166015625002,79.76064453125],[98.59648437500002,80.05219726562495],[100.0612304687501,79.77709960937506],[99.68066406250003,79.32333984374998],[99.04179687500007,79.29301757812502],[99.92929687500012,78.96142578124997],[98.41113281250003,78.78779296875004],[95.53105468750007,79.09809570312501],[95.02041015625005,79.05268554687498],[94.21875,79.40234375],[93.07080078124997,79.49531250000001],[94.98730468749997,80.096826171875],[95.28134765625012,80.030517578125],[97.67451171875004,80.15825195312499]]],[[[50.05175781250003,80.07431640625003],[49.55605468750005,80.15893554687503],[49.883691406249994,80.230224609375],[50.05175781250003,80.07431640625003]]],[[[57.07871093750006,80.35092773437498],[56.986914062500006,80.07148437499998],[55.811621093750006,80.08715820312497],[56.02441406250003,80.34130859374997],[57.07871093750006,80.35092773437498]]],[[[53.521386718749994,80.18520507812497],[52.34355468750002,80.213232421875],[52.85390625,80.40239257812499],[53.85166015625006,80.26835937500005],[53.521386718749994,80.18520507812497]]],[[[57.95625,80.12324218749995],[57.33232421875002,80.15810546875005],[57.075,80.49394531249999],[59.25546875000006,80.34321289062501],[58.39794921874997,80.31875],[57.95625,80.12324218749995]]],[[[54.41533203125002,80.47280273437502],[53.811914062499994,80.47622070312502],[53.87724609375002,80.60527343750002],[54.41533203125002,80.47280273437502]]],[[[47.441992187500006,80.853662109375],[48.44570312500005,80.80600585937506],[48.68359375000003,80.63325195312504],[47.7052734375001,80.76518554687499],[46.141406250000074,80.44672851562495],[45.969042968750074,80.56948242187502],[44.9049804687501,80.61127929687501],[47.441992187500006,80.853662109375]]],[[[62.167773437500074,80.83476562500005],[62.07578125000006,80.616943359375],[61.05126953124997,80.418603515625],[60.27832031249997,80.49443359374999],[59.649804687499994,80.43125],[59.59228515625003,80.81650390624998],[62.167773437500074,80.83476562500005]]],[[[50.278125,80.92724609374997],[51.70361328125003,80.68764648437502],[48.81103515625003,80.35371093750001],[48.97753906250003,80.16259765624997],[47.73730468749997,80.08168945312502],[47.89296875000005,80.23925781249997],[46.991015625000074,80.182763671875],[46.644433593749994,80.30034179687507],[47.89580078125002,80.52905273437503],[49.087792968749994,80.515771484375],[49.24433593750004,80.82138671875],[50.278125,80.92724609374997]]],[[[80.02666015625007,80.84814453125003],[79.09853515625005,80.81206054687505],[79.21738281250012,80.96035156249997],[80.27958984375007,80.94980468750003],[80.02666015625007,80.84814453125003]]],[[[61.1408203125001,80.95034179687497],[60.0783203125001,80.99916992187497],[61.45742187499999,81.10395507812501],[61.1408203125001,80.95034179687497]]],[[[54.71894531250004,81.11596679687497],[56.47226562500006,80.99824218749995],[57.58037109375002,80.75546874999998],[55.88339843750006,80.62841796875003],[54.66816406250004,80.73867187500002],[54.04541015624997,80.87197265625],[54.71894531250004,81.11596679687497]]],[[[58.62236328125002,81.04165039062502],[58.930566406249994,80.83168945312497],[58.28564453124997,80.76489257812503],[57.21093749999997,81.01708984374997],[58.04951171875004,81.11845703125002],[58.62236328125002,81.04165039062502]]],[[[63.37382812500002,80.70009765624997],[62.59257812500002,80.85302734375006],[64.80205078125002,81.197265625],[65.43740234375005,80.93071289062507],[63.37382812500002,80.70009765624997]]],[[[91.56718750000007,81.14121093750003],[91.2228515625001,81.063818359375],[89.90117187500002,81.17070312500002],[91.56718750000007,81.14121093750003]]],[[[96.52656250000004,81.0755859375],[97.86992187500007,80.76328125000006],[97.02539062499997,80.53554687500002],[97.29843750000006,80.27275390625005],[93.6546875,80.009619140625],[91.52382812500005,80.35854492187502],[93.2625,80.79125976562497],[92.59257812500007,80.780859375],[92.7103515625,80.87216796875003],[95.1595703125,81.27099609375003],[95.80068359375005,81.28046874999998],[96.52656250000004,81.0755859375]]],[[[57.81025390625004,81.54604492187502],[58.563867187499994,81.41840820312504],[57.858691406250074,81.36806640625],[57.76972656250004,81.16972656249999],[55.71669921875005,81.1884765625],[55.46601562500004,81.31118164062502],[57.81025390625004,81.54604492187502]]],[[[63.65097656250006,81.60932617187501],[62.10644531249997,81.679345703125],[63.709570312500006,81.68730468750002],[63.65097656250006,81.60932617187501]]],[[[58.29541015625003,81.715185546875],[58.13457031250002,81.82797851562498],[59.261816406250006,81.85419921874998],[59.35644531250003,81.75898437499995],[58.29541015625003,81.715185546875]]]]},"properties":{"name":"Russia","childNum":73}},{"geometry":{"type":"Polygon","coordinates":[[[30.50996093750001,-1.067285156250009],[30.47705078125,-1.0830078125],[30.47021484375,-1.131152343750003],[30.508105468750017,-1.208203125000011],[30.631933593750006,-1.367480468750003],[30.710742187500017,-1.396777343750003],[30.76220703125,-1.458691406250011],[30.812597656250006,-1.563085937500006],[30.8765625,-2.143359375],[30.85498046875,-2.265429687500003],[30.828710937500006,-2.338476562500006],[30.7625,-2.371679687500006],[30.71484375,-2.363476562500011],[30.656640625000023,-2.373828125],[30.593359375,-2.396777343750003],[30.553613281250023,-2.400097656250011],[30.408496093750017,-2.31298828125],[30.117285156250006,-2.416601562500006],[29.93017578125,-2.339550781250011],[29.8681640625,-2.71640625],[29.698046875000017,-2.794726562500003],[29.390234375,-2.80859375],[29.10205078125,-2.595703125],[29.01435546875001,-2.72021484375],[28.893945312500023,-2.635058593750003],[28.876367187500023,-2.400292968750009],[29.13154296875001,-2.195117187500003],[29.196582031250017,-1.719921875000011],[29.576953125000017,-1.387890625000011],[29.82539062500001,-1.335546875],[29.930078125000023,-1.469921875000011],[30.360253906250023,-1.074609375],[30.41230468750001,-1.063085937500006],[30.46992187500001,-1.066015625],[30.50996093750001,-1.067285156250009]]]},"properties":{"name":"Rwanda","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[41.98769531250005,16.715625],[42.059960937499994,16.803515625000017],[42.15781250000006,16.570703125000023],[41.80156250000002,16.778759765624955],[41.86044921875006,17.002539062499977],[41.98769531250005,16.715625]]],[[[46.53144531250004,29.09624023437499],[47.433203125,28.989550781250017],[47.671289062499994,28.53315429687504],[48.442480468750006,28.542919921874983],[48.80898437499999,27.895898437499966],[48.797167968750074,27.72431640625001],[49.2375,27.49272460937499],[49.17509765625002,27.43764648437505],[49.40527343749997,27.18095703124996],[50.149804687499994,26.66264648437499],[50.00810546875002,26.678515625000017],[50.21386718750003,26.30849609375005],[50.15546875000004,26.100537109374955],[50.03164062499999,26.11098632812505],[50.55791015625002,25.086669921875],[50.66689453125005,24.96381835937501],[50.72558593749997,24.869384765625057],[50.80439453125004,24.789257812499983],[50.928320312500006,24.595117187500023],[50.96601562500004,24.573925781249983],[51.022753906250074,24.56523437499999],[51.09335937500006,24.564648437499955],[51.178027343750074,24.586718750000017],[51.26796875,24.607226562500017],[51.33847656250006,24.564355468749994],[51.41123046875006,24.570800781250057],[51.30986328125002,24.340380859375017],[51.56835937500003,24.286181640625074],[51.592578125000074,24.07885742187503],[52.55507812500005,22.932812499999955],[55.104296875000074,22.621484375000023],[55.185839843750074,22.7041015625],[55.64101562499999,22.001855468749994],[54.97734375000002,19.995947265625006],[51.977636718750006,18.996142578125074],[49.04199218750003,18.58178710937503],[48.17216796875002,18.156933593749983],[47.57958984374997,17.448339843750034],[47.44179687499999,17.111865234375045],[47.14355468749997,16.946679687499966],[46.97568359375006,16.953466796875034],[46.72763671875006,17.26557617187501],[45.5353515625001,17.30205078124999],[45.14804687500006,17.427441406249955],[43.91699218749997,17.32470703124997],[43.41796875000003,17.516259765625023],[43.19091796875003,17.359375],[43.16503906249997,16.689404296874955],[42.79931640624997,16.37177734375001],[42.29394531249997,17.434960937499966],[41.75,17.88574218749997],[41.22949218750003,18.678417968749983],[40.75917968750005,19.755468750000034],[40.080664062500006,20.265917968750017],[39.728320312500074,20.390332031249955],[39.27607421875004,20.973974609375034],[39.093554687500074,21.31035156249999],[39.14707031250006,21.518994140624955],[38.98789062500006,21.88173828125005],[39.06201171874997,22.592187500000023],[38.46416015625002,23.71186523437504],[37.91972656250002,24.185400390625063],[37.54306640625006,24.291650390625023],[37.18085937500004,24.82001953125001],[37.26630859375004,24.960058593750034],[37.14882812499999,25.291113281249977],[35.18046875000002,28.03486328125004],[34.722070312499994,28.130664062500017],[34.625,28.064501953125017],[34.95078125,29.353515625],[36.068457031250006,29.200537109375006],[36.28281250000006,29.355371093750023],[36.47607421874997,29.49511718749997],[36.59179687500003,29.666113281250006],[36.703906250000074,29.831640624999977],[36.75527343750005,29.86601562499996],[37.46923828125003,29.995068359374955],[37.49072265625003,30.01171874999997],[37.55361328125005,30.14458007812496],[37.63359375000002,30.313281250000045],[37.64990234374997,30.330957031249994],[37.669726562500074,30.34814453125003],[37.862890625,30.44262695312503],[37.98007812500006,30.5],[37.47900390624997,31.007763671874955],[37.10527343750002,31.35517578125004],[36.95859375000006,31.491503906250017],[37.215625,31.55610351562501],[37.49335937500004,31.625878906250023],[38.111425781250006,31.78115234375005],[38.37548828124997,31.84746093749996],[38.962304687499994,31.99492187499999],[38.99707031249997,32.00747070312505],[39.145410156249994,32.12451171875],[39.36865234374997,32.09174804687498],[39.70410156250003,32.04252929687499],[40.02783203124997,31.995019531249994],[40.3693359375001,31.93896484375003],[40.47890625000005,31.89335937499999],[42.07441406250004,31.08037109374999],[43.77373046875002,29.84921875],[44.71650390625004,29.19360351562503],[46.35644531250003,29.06367187500001],[46.53144531250004,29.09624023437499]]]]},"properties":{"name":"Saudi Arabia","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[36.87138671875002,21.996728515624994],[36.92695312500001,21.58652343749999],[37.25859375000002,21.108544921874994],[37.25722656250002,21.03940429687499],[37.15058593750001,21.103759765625],[37.14111328125,20.98178710937499],[37.19316406250002,20.12070312499999],[37.471289062500006,18.820117187500003],[38.609472656250006,18.005078125],[38.422460937500006,17.823925781249997],[38.39716796875001,17.778369140625003],[38.38554687500002,17.751269531250003],[38.37373046875001,17.717333984375003],[38.34736328125001,17.68359375],[38.28984375000002,17.637011718750003],[38.26728515625001,17.61669921875],[38.253515625,17.584765625],[37.78242187500001,17.4580078125],[37.547460937500006,17.324121093749994],[37.51015625000002,17.288134765625003],[37.45292968750002,17.108691406250003],[37.41103515625002,17.06171875],[37.24882812500002,17.056884765625],[37.16953125,17.04140625],[37.0615234375,17.061279296875],[37.00898437500001,17.058886718750003],[36.995214843750006,17.020556640625003],[36.97578125000001,16.86655273437499],[36.97871093750001,16.800585937500003],[36.887792968750006,16.624658203124994],[36.91376953125001,16.296191406250003],[36.566015625,15.362109375],[36.4267578125,15.132080078125],[36.44814453125002,14.940087890624994],[36.470800781250006,14.736474609374994],[36.52431640625002,14.2568359375],[36.12519531250001,12.75703125],[35.67021484375002,12.623730468749997],[35.1123046875,11.816552734374994],[34.93144531250002,10.864794921874989],[34.77128906250002,10.746191406249991],[34.571875,10.880175781249989],[34.34394531250001,10.658642578124997],[34.31123046875001,10.190869140624997],[34.078125,9.461523437499991],[33.87148437500002,9.506152343749989],[33.96328125000002,9.861767578124997],[33.90703125000002,10.181445312499989],[33.13007812500001,10.745947265624991],[33.073339843750006,11.606103515624994],[33.199316406250006,12.21728515625],[32.721875,12.223095703124997],[32.73671875000002,12.009667968749994],[32.072265625,12.006738281249994],[32.338476562500006,11.710107421874994],[32.42080078125002,11.089111328125],[31.224902343750017,9.799267578124997],[30.75537109375,9.731201171875],[30.003027343750006,10.277392578124989],[29.60546875,10.065087890624994],[29.47314453125,9.768603515624989],[28.979589843750006,9.594189453124997],[28.844531250000017,9.326074218749994],[28.048925781250006,9.32861328125],[27.880859375,9.601611328124989],[27.07421875,9.613818359374989],[26.65869140625,9.484130859375],[25.91914062500001,10.169335937499994],[25.858203125000017,10.406494140625],[25.211718750000017,10.329931640624991],[25.066992187500006,10.293798828124991],[24.785253906250006,9.774658203125],[24.53193359375001,8.886914062499997],[24.147363281250023,8.665625],[23.53730468750001,8.815820312499994],[23.46826171875,9.11474609375],[23.62265625,9.340625],[23.646289062500017,9.822900390624994],[22.86005859375001,10.919677734375],[22.922656250000017,11.344873046874994],[22.591113281250017,11.579882812499989],[22.580957031250023,11.990136718749994],[22.472460937500017,12.067773437499994],[22.352343750000017,12.660449218749989],[21.928125,12.678125],[21.825292968750006,12.79052734375],[22.228125,13.32958984375],[22.1064453125,13.7998046875],[22.53857421875,14.161865234375],[22.38154296875001,14.550488281249997],[22.6708984375,14.722460937500003],[22.93232421875001,15.162109375],[22.933886718750017,15.533105468749994],[23.10517578125001,15.702539062499994],[23.970800781250006,15.721533203124991],[23.980273437500017,19.496630859375003],[23.980273437500017,19.99594726562499],[24.9794921875,20.002587890624994],[24.980273437500017,21.995849609375],[28.036425781250017,21.995361328125],[31.092675781250023,21.994873046875],[31.260644531250023,22.00229492187499],[31.400292968750023,22.202441406250003],[31.486132812500017,22.14780273437499],[31.434472656250023,21.995849609375],[36.87138671875002,21.996728515624994]]]},"properties":{"name":"Sudan","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[34.078125,9.461523437499991],[34.07275390625,8.545263671874991],[33.95332031250001,8.443505859374994],[33.28105468750002,8.437255859375],[32.99892578125002,7.899511718749991],[33.902441406250006,7.509521484375],[34.06425781250002,7.225732421874994],[34.71064453125001,6.660302734374994],[34.98359375000001,5.858300781249994],[35.26835937500002,5.492285156249991],[35.08447265625,5.311865234374991],[34.87832031250002,5.109570312499997],[34.63984375000001,4.87548828125],[34.38017578125002,4.620654296874989],[34.176855468750006,4.419091796874994],[33.97607421875,4.22021484375],[33.74160156250002,3.985253906249994],[33.568457031250006,3.81171875],[33.489355468750006,3.755078125],[32.99726562500001,3.880175781249989],[32.33574218750002,3.706201171874994],[32.13593750000001,3.519726562499997],[31.79804687500001,3.802636718749994],[31.547167968750017,3.677587890624991],[31.15234375,3.785595703124997],[30.83857421875001,3.49072265625],[30.757226562500023,3.62421875],[30.586718750000017,3.62421875],[30.50830078125,3.835693359375],[30.194921875,3.98193359375],[29.676855468750006,4.5869140625],[29.469628906250023,4.61181640625],[29.224902343750017,4.391894531249989],[28.72705078125,4.504980468749991],[28.427539062500017,4.324169921874997],[28.19208984375001,4.350244140624994],[27.7880859375,4.644677734374994],[27.4033203125,5.109179687499989],[27.143945312500023,5.722949218749989],[26.514257812500006,6.069238281249994],[26.30859375,6.455322265625],[26.36181640625,6.635302734374989],[25.27890625,7.427490234375],[25.18134765625001,7.557226562499991],[25.20039062500001,7.807910156249989],[24.853320312500017,8.137548828124991],[24.291406250000023,8.29140625],[24.147363281250023,8.665625],[24.53193359375001,8.886914062499997],[24.785253906250006,9.774658203125],[25.066992187500006,10.293798828124991],[25.211718750000017,10.329931640624991],[25.858203125000017,10.406494140625],[25.91914062500001,10.169335937499994],[26.65869140625,9.484130859375],[27.07421875,9.613818359374989],[27.880859375,9.601611328124989],[28.048925781250006,9.32861328125],[28.844531250000017,9.326074218749994],[28.979589843750006,9.594189453124997],[29.47314453125,9.768603515624989],[29.60546875,10.065087890624994],[30.003027343750006,10.277392578124989],[30.75537109375,9.731201171875],[31.224902343750017,9.799267578124997],[32.42080078125002,11.089111328125],[32.338476562500006,11.710107421874994],[32.072265625,12.006738281249994],[32.73671875000002,12.009667968749994],[32.721875,12.223095703124997],[33.199316406250006,12.21728515625],[33.073339843750006,11.606103515624994],[33.13007812500001,10.745947265624991],[33.90703125000002,10.181445312499989],[33.96328125000002,9.861767578124997],[33.87148437500002,9.506152343749989],[34.078125,9.461523437499991]]]},"properties":{"name":"S. Sudan","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-12.280615234374977,14.809033203124997],[-12.228417968749994,14.45859375],[-12.019189453124994,14.206494140624997],[-11.960888671874983,13.875292968750003],[-12.05419921875,13.633056640625],[-11.831689453124994,13.315820312499994],[-11.634960937499983,13.369873046875],[-11.390380859375,12.941992187499991],[-11.389404296875,12.404394531249991],[-12.399072265624994,12.340087890625],[-12.930712890624989,12.532275390624989],[-13.061279296875,12.489990234375],[-13.082910156249994,12.633544921875],[-13.729248046875,12.673925781249991],[-14.06484375,12.67529296875],[-14.349218749999977,12.676416015624994],[-15.196093749999989,12.679931640625],[-15.3779296875,12.588964843749991],[-15.574804687499977,12.490380859374994],[-15.839550781249983,12.43789062499999],[-16.144189453124994,12.45742187499999],[-16.24150390624999,12.443310546874997],[-16.41630859374999,12.36767578125],[-16.521337890624977,12.3486328125],[-16.656933593749983,12.364355468749991],[-16.711816406249994,12.354833984374991],[-16.76030273437499,12.52578125],[-16.44287109375,12.609472656249991],[-16.59765625,12.715283203124997],[-16.743896484375,12.58544921875],[-16.763330078124994,13.064160156249997],[-16.648779296874977,13.154150390624991],[-15.834277343749989,13.156445312499997],[-15.814404296874983,13.325146484374997],[-15.286230468749977,13.39599609375],[-15.151123046875,13.556494140624991],[-14.246777343749983,13.23583984375],[-13.826708984374989,13.4078125],[-13.977392578124977,13.54345703125],[-14.405468749999983,13.503710937500003],[-15.108349609374983,13.81210937499999],[-15.426855468749977,13.727001953124997],[-15.509667968749994,13.586230468750003],[-16.56230468749999,13.587304687499994],[-16.766943359374977,13.904931640624994],[-16.618115234374983,14.04052734375],[-16.791748046875,14.004150390625],[-17.168066406249977,14.640625],[-17.345800781249977,14.729296875],[-17.445019531249983,14.651611328125],[-17.53564453125,14.755126953125],[-17.147167968749983,14.922021484374994],[-16.843408203124994,15.293994140625003],[-16.570751953124983,15.734423828125003],[-16.535253906249977,15.83837890625],[-16.502050781249977,15.917333984374991],[-16.480078124999977,16.097216796875003],[-16.441015624999977,16.204541015624997],[-16.239013671875,16.531298828125003],[-15.768212890624994,16.485107421875],[-14.990625,16.676904296874994],[-14.300097656249989,16.580273437499997],[-13.868457031249989,16.148144531249997],[-13.756640624999989,16.172509765624994],[-13.40966796875,16.05917968749999],[-13.105273437499989,15.57177734375],[-12.735253906249994,15.13125],[-12.40869140625,14.889013671874991],[-12.280615234374977,14.809033203124997]]]},"properties":{"name":"Senegal","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[103.9697265625,1.331445312499994],[103.65019531249999,1.325537109374991],[103.81796875000003,1.447070312499989],[103.9697265625,1.331445312499994]]]},"properties":{"name":"Singapore","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-37.10332031249996,-54.065625],[-36.70380859375001,-54.10810546874999],[-36.64741210937498,-54.26230468749996],[-36.32646484374996,-54.251171875],[-35.79858398437497,-54.76347656250002],[-36.08549804687499,-54.86679687500001],[-36.885986328125,-54.33945312499996],[-37.63090820312496,-54.16748046875001],[-37.61884765625001,-54.04208984375004],[-38.017431640625034,-54.008007812500026],[-37.10332031249996,-54.065625]]]},"properties":{"name":"S. Geo. and S. Sandw. Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-5.692138671874972,-15.997753906249997],[-5.782519531250017,-16.00400390625002],[-5.707861328124977,-15.90615234374998],[-5.692138671874972,-15.997753906249997]]]},"properties":{"name":"Saint Helena","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[160.57626953125006,-11.797851562500028],[160.44306640625004,-11.814941406249957],[159.98632812499997,-11.494726562500006],[160.57626953125006,-11.797851562500028]]],[[[166.13320312500005,-10.757812499999972],[165.90400390625004,-10.851464843749966],[165.79101562500003,-10.784765624999963],[166.02382812500005,-10.6611328125],[166.13320312500005,-10.757812499999972]]],[[[161.71533203124997,-10.387304687499991],[162.10537109375005,-10.45380859375004],[162.37333984375002,-10.823242187499986],[161.78681640625004,-10.716894531249991],[161.53789062500007,-10.566406249999972],[161.4870117187501,-10.361425781249963],[161.29394531250003,-10.326464843750031],[161.30478515625012,-10.204394531250031],[161.71533203124997,-10.387304687499991]]],[[[161.54785156249997,-9.625683593749997],[161.55380859375012,-9.769726562500026],[161.40976562500006,-9.681640625000028],[161.36416015625,-9.353417968750037],[161.54785156249997,-9.625683593749997]]],[[[159.75039062500005,-9.272656250000011],[159.97060546875,-9.433300781249969],[160.35458984375006,-9.421582031249983],[160.81894531250006,-9.862792968749986],[160.64921875000002,-9.92861328124998],[159.80273437499997,-9.763476562500003],[159.61230468749997,-9.470703124999943],[159.62558593750012,-9.311230468749969],[159.75039062500005,-9.272656250000011]]],[[[160.1681640625001,-8.995507812500037],[160.40751953125007,-9.140332031249969],[160.10537109375,-9.080761718749997],[160.1681640625001,-8.995507812500037]]],[[[159.18857421875006,-9.123535156250014],[159.03632812500004,-9.075],[159.12978515625,-8.99306640624998],[159.22841796875005,-9.029980468749955],[159.18857421875006,-9.123535156250014]]],[[[158.10791015625003,-8.684179687500034],[157.93759765625006,-8.73642578125002],[157.90927734375006,-8.565625],[158.10546874999997,-8.536816406250026],[158.10791015625003,-8.684179687500034]]],[[[157.38896484375002,-8.713476562499963],[157.2123046875,-8.565039062500006],[157.37949218750012,-8.420898437499943],[157.38896484375002,-8.713476562499963]]],[[[160.7494140625,-8.313964843750014],[160.99765625000006,-8.612011718749983],[160.94433593750003,-8.799023437499983],[161.15869140624997,-8.961816406250009],[161.36738281250004,-9.61123046874998],[160.77207031250012,-8.963867187499986],[160.7140625000001,-8.539257812499997],[160.59042968750006,-8.372753906249997],[160.7494140625,-8.313964843750014]]],[[[157.76347656250002,-8.242187499999957],[157.89843749999997,-8.506347656249943],[157.81933593750003,-8.612011718749983],[157.58789062500003,-8.445410156249963],[157.5580078125,-8.269921875],[157.30244140625004,-8.33330078124996],[157.21757812500002,-8.262792968749977],[157.490625,-7.965722656250037],[157.76347656250002,-8.242187499999957]]],[[[157.171875,-8.108105468749997],[156.95830078125002,-8.014355468749997],[157.02412109375004,-7.867871093749997],[157.18613281250006,-7.941210937500017],[157.171875,-8.108105468749997]]],[[[156.687890625,-7.92304687500004],[156.5109375000001,-7.707812499999974],[156.5609375,-7.574023437499989],[156.80908203124997,-7.722851562500026],[156.687890625,-7.92304687500004]]],[[[159.8791015625001,-8.534277343749949],[158.9440429687501,-8.04072265625004],[158.457421875,-7.544726562499974],[158.734375,-7.604296875000031],[159.43144531250002,-8.029003906249955],[159.84306640625002,-8.326953124999989],[159.8791015625001,-8.534277343749949]]],[[[155.83984374999997,-7.097167968750014],[155.67753906250002,-7.08896484375002],[155.73896484375004,-6.972949218750017],[155.83984374999997,-7.097167968750014]]],[[[157.48671875000005,-7.330371093750003],[157.44130859375,-7.425683593749966],[157.10156249999997,-7.323632812499966],[156.4525390625,-6.638281249999963],[157.03027343750003,-6.891992187499952],[157.19335937499997,-7.160351562499997],[157.48671875000005,-7.330371093750003]]]]},"properties":{"name":"Solomon Is.","childNum":16}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-12.526074218749926,7.436328125000017],[-12.951611328124926,7.570849609374989],[-12.615234374999972,7.63720703125],[-12.5125,7.582421875000037],[-12.526074218749926,7.436328125000017]]],[[[-10.758593749999989,9.385351562499991],[-10.682714843750006,9.289355468749974],[-10.687646484374937,9.261132812499994],[-10.749951171874926,9.12236328124996],[-10.747021484374955,9.095263671875045],[-10.726855468749932,9.081689453125023],[-10.615966796875,9.059179687499977],[-10.500537109375017,8.687548828125017],[-10.677343749999977,8.400585937499997],[-10.712109374999955,8.335253906250017],[-10.686962890624983,8.321679687500009],[-10.652636718749989,8.330273437499983],[-10.604003906249943,8.319482421874994],[-10.55771484374992,8.315673828125028],[-10.496435546874977,8.362109374999974],[-10.394433593749966,8.480957031250028],[-10.360058593749983,8.49550781249998],[-10.283203124999972,8.48515625],[-10.285742187499949,8.454101562499986],[-10.314648437499983,8.310839843750017],[-10.359814453124926,8.187939453125026],[-10.570849609374932,8.071142578125034],[-10.6474609375,7.759375],[-10.878076171874994,7.538232421874994],[-11.267675781249977,7.232617187499997],[-11.507519531249983,6.906542968750003],[-12.48564453124996,7.386279296875045],[-12.480273437499932,7.75327148437502],[-12.697607421874977,7.715869140625045],[-12.850878906249932,7.818701171875034],[-12.956933593749966,8.145312500000045],[-13.148974609374989,8.214599609375043],[-13.272753906249989,8.429736328124989],[-13.085009765624932,8.42475585937504],[-12.894091796874932,8.62978515624998],[-13.181835937499955,8.576904296875043],[-13.206933593749994,8.843115234375006],[-13.059472656249966,8.881152343750031],[-13.292675781249955,9.04921875],[-13.077294921874966,9.069628906249974],[-12.958789062499989,9.263330078124994],[-12.755859374999943,9.373583984374989],[-12.557861328125,9.704980468749994],[-12.427978515625028,9.898144531250011],[-12.142333984375,9.87539062499999],[-11.911083984374955,9.993017578124977],[-11.273632812499955,9.996533203124983],[-11.205664062499949,9.977734374999969],[-11.180859374999955,9.925341796875045],[-11.047460937499977,9.786328125000054],[-10.758593749999989,9.385351562499991]]]]},"properties":{"name":"Sierra Leone","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-89.36259765624999,14.416015625],[-89.1205078125,14.370214843749991],[-88.51254882812499,13.978955078124997],[-88.504345703125,13.964208984374991],[-88.49765625,13.904541015625],[-88.482666015625,13.854248046875],[-88.44912109375,13.850976562499994],[-88.40849609374999,13.87539062499999],[-88.27622070312499,13.942675781250003],[-88.151025390625,13.987353515625003],[-87.99101562499999,13.879638671875],[-87.8919921875,13.894970703124997],[-87.80224609375,13.889990234374991],[-87.7314453125,13.841064453125],[-87.71533203125,13.812695312499997],[-87.781884765625,13.521386718749994],[-87.930859375,13.1806640625],[-88.68564453124999,13.281494140625],[-88.51201171874999,13.183935546874991],[-89.80419921875,13.560107421875003],[-90.09521484375,13.736523437499997],[-90.04814453124999,13.904052734375],[-89.54716796874999,14.241259765625003],[-89.5736328125,14.390087890624997],[-89.36259765624999,14.416015625]]]},"properties":{"name":"El Salvador","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-56.26708984374997,46.838476562500034],[-56.38476562499994,46.81943359375006],[-56.36464843749994,47.09897460937498],[-56.26708984374997,46.838476562500034]]]},"properties":{"name":"St. Pierre and Miquelon","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[6.659960937499989,0.120654296874989],[6.51972656250004,0.066308593750023],[6.468164062499994,0.22734375],[6.68691406250008,0.404394531249977],[6.75,0.24345703124996],[6.659960937499989,0.120654296874989]]],[[[7.423828125,1.567724609375006],[7.330664062500034,1.603369140624991],[7.414453125000051,1.699121093750037],[7.423828125,1.567724609375006]]]]},"properties":{"name":"São Tomé and Principe","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-54.03422851562499,3.62939453125],[-54.00957031249999,3.448535156249989],[-54.06318359375,3.353320312499989],[-54.18803710937499,3.178759765624989],[-54.203125,3.13818359375],[-54.17070312499999,2.993603515624997],[-54.18808593749999,2.874853515624991],[-54.1955078125,2.81787109375],[-54.256738281249994,2.713720703124991],[-54.402001953124994,2.461523437499991],[-54.53593749999999,2.343310546874989],[-54.56840820312499,2.342578124999989],[-54.604736328125,2.335791015624991],[-54.61625976562499,2.326757812499991],[-54.661865234375,2.327539062499994],[-54.697412109374994,2.359814453124997],[-54.72221679687499,2.441650390625],[-54.87607421874999,2.450390625],[-54.92656249999999,2.497363281249989],[-54.968408203124994,2.54833984375],[-54.978662109374994,2.59765625],[-55.005810546875,2.59296875],[-55.0703125,2.54833984375],[-55.11411132812499,2.539208984374994],[-55.1876953125,2.547509765624994],[-55.286035156249994,2.499658203124994],[-55.343994140625,2.48876953125],[-55.38535156249999,2.440625],[-55.73056640624999,2.406152343749994],[-55.957470703125,2.520458984374997],[-55.99350585937499,2.497509765624997],[-56.02036132812499,2.392773437499997],[-56.0451171875,2.364404296874994],[-56.087792968749994,2.34130859375],[-56.12939453125,2.299511718749997],[-56.1376953125,2.259033203125],[-56.073632812499994,2.236767578124997],[-56.02006835937499,2.158154296874997],[-55.96196289062499,2.095117187499994],[-55.91533203124999,2.03955078125],[-55.921630859375,1.976660156249991],[-55.929638671875,1.8875],[-56.01992187499999,1.842236328124997],[-56.4828125,1.942138671875],[-56.704345703125,2.036474609374991],[-57.19736328124999,2.853271484375],[-57.303662109375,3.377099609374994],[-57.646728515625,3.39453125],[-58.05429687499999,4.101660156249991],[-57.84599609374999,4.668164062499997],[-57.91704101562499,4.820410156249991],[-57.711083984374994,4.991064453124991],[-57.331005859375,5.020166015624994],[-57.20981445312499,5.195410156249991],[-57.3185546875,5.335351562499994],[-57.194775390625,5.5484375],[-56.96982421874999,5.992871093749997],[-56.235595703125,5.885351562499991],[-55.897607421874994,5.699316406249991],[-55.909912109375,5.892626953124989],[-55.648339843749994,5.985888671874989],[-54.83369140625,5.988330078124989],[-54.05419921875,5.807910156249989],[-54.08046875,5.502246093749989],[-54.4796875,4.836523437499991],[-54.350732421874994,4.054101562499994],[-54.03422851562499,3.62939453125]]]},"properties":{"name":"Suriname","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[22.538671875,49.072705078125],[22.52412109375001,49.031396484374994],[22.389453125000017,48.873486328125],[22.295214843750017,48.685839843749996],[22.142871093750017,48.568505859374994],[22.1318359375,48.405322265624996],[21.766992187500023,48.3380859375],[21.45136718750001,48.55224609375],[20.490039062500017,48.526904296874996],[20.333789062500017,48.295556640624994],[19.95039062500001,48.146630859374994],[19.625390625000023,48.223095703125],[18.791894531250023,48.000292968749996],[18.72421875,47.787158203124996],[17.76191406250001,47.770166015624994],[17.147363281250023,48.00595703125],[16.86542968750001,48.3869140625],[16.953125,48.598828125],[17.135644531250023,48.841064453125],[17.75849609375001,48.888134765625],[18.0859375,49.06513671875],[18.160937500000017,49.257373046874996],[18.83222656250001,49.510791015624996],[19.1494140625,49.4],[19.44160156250001,49.597705078124996],[19.77392578125,49.37216796875],[19.756640625000017,49.204394531249996],[20.0576171875,49.181298828124994],[20.36298828125001,49.38525390625],[20.868457031250017,49.314697265625],[21.079394531250017,49.418261718749996],[21.6396484375,49.411962890625],[22.020117187500006,49.209521484374996],[22.473046875000023,49.081298828125],[22.538671875,49.072705078125]]]},"properties":{"name":"Slovakia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[16.516210937500006,46.499902343749994],[16.427636718750023,46.5244140625],[16.321191406250023,46.534619140625],[16.1064453125,46.382226562499994],[15.608984375,46.171923828124996],[15.592578125000017,46.139990234375],[15.596875,46.109228515625],[15.675585937500017,45.983691406249996],[15.652148437500017,45.862158203125],[15.277050781250011,45.7326171875],[15.353710937500011,45.659912109375],[15.283593750000023,45.5796875],[15.291210937500011,45.541552734374996],[15.32666015625,45.502294921875],[15.339453125,45.467041015625],[15.242089843750023,45.44140625],[15.110449218750006,45.45078125],[14.95458984375,45.499902343749994],[14.793066406250006,45.47822265625],[14.649511718750006,45.571484375],[14.591796875,45.651269531249994],[14.56884765625,45.6572265625],[14.548448660714302,45.628388671875],[14.507586495535731,45.59039341517857],[14.42734375,45.505761718749994],[14.369921875000017,45.4814453125],[13.878710937500017,45.428369140624994],[13.577929687500017,45.516894531249996],[13.8447265625,45.59287109375],[13.831152343750006,45.680419921875],[13.663476562500023,45.7919921875],[13.6005859375,45.979785156249996],[13.509179687500023,45.973779296874994],[13.487695312500023,45.987109375],[13.480273437500017,46.009228515625],[13.486425781250006,46.03955078125],[13.548046875000011,46.089111328125],[13.616601562500023,46.133105468749996],[13.634960937500011,46.157763671874996],[13.632519531250011,46.177050781249996],[13.420996093750006,46.212304687499994],[13.399511718750006,46.317529296874994],[13.563281250000017,46.415087890624996],[13.637109375000023,46.448535156249996],[13.6796875,46.462890625],[13.7,46.520263671875],[14.5498046875,46.399707031249996],[14.893261718750011,46.605908203125],[15.957617187500006,46.677636718749994],[16.093066406250017,46.86328125],[16.283593750000023,46.857275390625],[16.516210937500006,46.499902343749994]]]},"properties":{"name":"Slovenia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[16.52851562500001,56.29052734375],[16.431640625,56.24375],[16.41230468750004,56.568994140624994],[17.02539062499997,57.345068359375006],[16.52851562500001,56.29052734375]]],[[[19.076464843750045,57.8359375],[18.813867187500023,57.70620117187502],[18.907910156250068,57.39833984375002],[18.146386718749994,56.920507812500006],[18.285351562500068,57.08320312500001],[18.136523437500045,57.55664062500003],[18.53740234374999,57.83056640625006],[18.90058593750001,57.91547851562504],[19.076464843750045,57.8359375]]],[[[19.156347656250063,57.92260742187497],[19.086523437500034,57.86499023437506],[19.134863281250034,57.98134765625002],[19.331445312500023,57.962890625],[19.156347656250063,57.92260742187497]]],[[[24.15546875000004,65.80527343750006],[23.102343750000074,65.73535156250003],[22.400976562500006,65.86210937499999],[22.254003906250006,65.59755859375002],[21.565527343750063,65.40810546874997],[21.609179687500074,65.261376953125],[21.410351562500068,65.31743164062505],[21.57392578125001,65.12578124999999],[21.138183593750057,64.80869140625006],[21.519628906250034,64.46308593749998],[20.76269531250003,63.86782226562505],[18.60644531250003,63.17827148437499],[18.31289062500008,62.996386718750045],[18.46308593750004,62.895849609375006],[18.170019531250034,62.789355468750074],[17.906640625000023,62.88676757812502],[18.037304687500068,62.60053710937498],[17.834472656250057,62.50273437500002],[17.410253906250063,62.508398437500034],[17.633691406249994,62.23300781250006],[17.374511718750057,61.866308593750034],[17.465429687500006,61.68447265625005],[17.196386718750006,61.72456054687504],[17.13076171875005,61.57573242187499],[17.25097656250003,60.70078125],[17.6611328125,60.53515625000003],[17.955761718750068,60.589794921874955],[18.85273437500001,60.02587890625],[18.970507812500045,59.757226562499994],[17.964257812500023,59.359375],[18.56025390625004,59.39448242187498],[18.285351562500068,59.109375],[16.978125,58.65415039062506],[16.214257812500023,58.636669921874955],[16.92382812499997,58.49257812499999],[16.651953125,58.43432617187503],[16.65224609375008,57.50068359374998],[16.348730468750063,56.70927734374996],[15.826660156250028,56.12495117187501],[14.782031250000017,56.16191406250002],[14.754785156250051,56.03315429687498],[14.401953125000034,55.97675781250004],[14.21503906250004,55.83261718749998],[14.341699218749994,55.52773437500002],[14.17373046875008,55.396630859374966],[12.885839843750063,55.41137695312506],[12.973925781250074,55.748144531250006],[12.471191406250057,56.29052734375],[12.801660156250051,56.263916015625],[12.65644531250004,56.44057617187502],[12.857421875000028,56.45239257812503],[12.883691406250051,56.61772460937496],[12.421484375000034,56.906396484374966],[11.449316406250063,58.118359374999955],[11.43154296875008,58.339990234374994],[11.24824218750004,58.369140625],[11.14716796875004,58.98862304687498],[11.19580078125,59.07827148437505],[11.388281250000063,59.036523437499966],[11.470703125000057,58.909521484375034],[11.64277343750004,58.92607421875002],[11.798144531250074,59.28989257812498],[11.680761718750034,59.59228515625003],[12.486132812500074,60.10678710937506],[12.588671874999989,60.450732421875045],[12.29414062500004,61.00268554687506],[12.706054687500028,61.059863281250074],[12.88076171875008,61.35229492187506],[12.155371093750006,61.720751953125045],[12.303515625000074,62.28559570312501],[11.999902343750051,63.29169921875001],[12.175195312500051,63.595947265625],[12.792773437500017,64],[13.203515625000023,64.07509765625],[13.960546875000063,64.01401367187498],[14.141210937500006,64.17353515624998],[14.077636718750028,64.464013671875],[13.650292968750023,64.58154296874997],[14.47968750000004,65.30146484374998],[14.543261718750045,66.12934570312498],[15.483789062500051,66.30595703124999],[15.422949218750006,66.48984374999998],[16.40351562500004,67.05498046875002],[16.12744140625,67.42583007812507],[16.783593750000023,67.89501953125],[17.324609375000023,68.10380859374999],[17.91669921875001,67.96489257812502],[18.303027343750045,68.55541992187497],[19.969824218750063,68.35639648437501],[20.348046875000023,68.84873046875003],[20.116699218750057,69.02089843750005],[20.622167968750006,69.036865234375],[21.99746093750005,68.52060546874998],[22.854101562500034,68.36733398437502],[23.63886718750004,67.95439453125002],[23.454882812500045,67.46025390625007],[23.733593750000068,67.42290039062499],[23.64150390625005,67.12939453124997],[23.988574218750045,66.81054687500003],[23.700292968750034,66.25263671874998],[24.15546875000004,65.80527343750006]]]]},"properties":{"name":"Sweden","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[31.9482421875,-25.957617187500006],[32.060546875,-26.018359375],[32.04140625000002,-26.28125],[32.10595703125,-26.52001953125],[32.112890625,-26.839453125],[32.02480468750002,-26.811132812500006],[31.994726562500006,-26.817480468750006],[31.967187500000023,-26.96064453125001],[31.946093750000017,-27.173632812500003],[31.958398437500023,-27.30585937500001],[31.742578125000023,-27.30996093750001],[31.469531250000017,-27.295507812500006],[31.274023437500006,-27.238378906250006],[31.063378906250023,-27.1123046875],[30.938085937500006,-26.915820312500003],[30.88330078125,-26.79238281250001],[30.806738281250006,-26.785253906250006],[30.794335937500023,-26.764257812500006],[30.803320312500006,-26.41347656250001],[31.08808593750001,-25.98066406250001],[31.207324218750017,-25.843359375],[31.33515625000001,-25.75556640625001],[31.382617187500017,-25.74296875],[31.415136718750006,-25.74658203125],[31.921679687500017,-25.96875],[31.9482421875,-25.957617187500006]]]},"properties":{"name":"Swaziland","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[55.54033203125002,-4.693066406250011],[55.54296875,-4.785546875],[55.383398437500006,-4.609277343750009],[55.45576171875001,-4.558789062500011],[55.54033203125002,-4.693066406250011]]]},"properties":{"name":"Seychelles","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[42.358984375,37.10859375],[41.78857421875,36.59716796875],[41.41679687500002,36.5146484375],[41.295996093750006,36.383349609374996],[41.354101562500006,35.640429687499996],[41.19472656250002,34.768994140625],[40.98701171875001,34.429052734375],[38.773535156250006,33.372216796874994],[36.818359375,32.317285156249994],[36.3720703125,32.3869140625],[35.78730468750001,32.734912109374996],[35.91347656250002,32.94960937499999],[35.869140625,33.43173828125],[36.03447265625002,33.58505859375],[35.98613281250002,33.75263671875],[36.36503906250002,33.83935546875],[36.27783203125,33.92529296875],[36.5849609375,34.221240234374996],[36.50439453125,34.432373046875],[36.32988281250002,34.499609375],[36.383886718750006,34.65791015625],[35.97626953125001,34.629199218749996],[35.902441406250006,35.420703125],[35.76445312500002,35.571582031249996],[35.83964843750002,35.84921875],[35.892675781250006,35.916552734374996],[35.96757812500002,35.910058593749994],[36.12734375000002,35.831445312499994],[36.15361328125002,35.833886718749994],[36.34755859375002,36.003515625],[36.37539062500002,36.171240234375],[36.63671875,36.233984375],[36.64140625000002,36.263525390625],[36.5375,36.45742187499999],[36.54667968750002,36.50634765625],[36.596875,36.7013671875],[36.62841796875,36.777685546875],[36.65859375000002,36.802539062499996],[36.77656250000001,36.79267578125],[36.94179687500002,36.7583984375],[36.9853515625,36.702392578125],[37.06621093750002,36.652636718749996],[37.43632812500002,36.643310546875],[37.523535156250006,36.6783203125],[37.7203125,36.743701171874996],[37.90664062500002,36.79462890625],[38.19169921875002,36.9015625],[38.7666015625,36.693115234375],[38.90644531250001,36.694677734375],[39.1083984375,36.680566406249994],[39.35664062500001,36.681591796875],[39.50146484375,36.70224609375],[39.6865234375,36.738623046875],[40.01640625000002,36.826074218749994],[40.705664062500006,37.097705078124996],[41.886816406250006,37.156396484374994],[42.05986328125002,37.2060546875],[42.16787109375002,37.288623046874996],[42.202734375,37.29726562499999],[42.24755859375,37.2822265625],[42.2685546875,37.2765625],[42.31289062500002,37.22958984375],[42.358984375,37.10859375]]]},"properties":{"name":"Syria","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[-72.3328125,21.85136718749999],[-72.14433593750002,21.79272460937503],[-72.33544921874994,21.758007812499983],[-72.3328125,21.85136718749999]]]},"properties":{"name":"Turks and Caicos Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[23.980273437500017,19.496630859375003],[23.970800781250006,15.721533203124991],[23.10517578125001,15.702539062499994],[22.933886718750017,15.533105468749994],[22.93232421875001,15.162109375],[22.6708984375,14.722460937500003],[22.38154296875001,14.550488281249997],[22.53857421875,14.161865234375],[22.1064453125,13.7998046875],[22.228125,13.32958984375],[21.825292968750006,12.79052734375],[21.928125,12.678125],[22.352343750000017,12.660449218749989],[22.472460937500017,12.067773437499994],[22.580957031250023,11.990136718749994],[22.591113281250017,11.579882812499989],[22.922656250000017,11.344873046874994],[22.86005859375001,10.919677734375],[22.49384765625001,10.996240234374994],[21.771484375,10.642822265625],[21.682714843750006,10.289843749999989],[20.773242187500017,9.405664062499994],[20.342089843750017,9.127099609374994],[18.95625,8.938867187499994],[18.886035156250017,8.836035156249991],[19.108691406250017,8.656152343749994],[18.56416015625001,8.0458984375],[17.6494140625,7.98359375],[16.784765625,7.550976562499997],[16.545312500000023,7.865478515625],[16.37890625,7.683544921874997],[15.957617187500006,7.507568359375],[15.480078125,7.523779296874991],[15.5498046875,7.787890624999989],[15.1162109375,8.557324218749997],[14.332324218750017,9.20351562499999],[13.977246093750011,9.691552734374994],[14.243261718750006,9.979736328125],[15.654882812500006,10.0078125],[15.276074218750011,10.357373046874997],[15.132226562500023,10.648486328124989],[15.029882812500006,11.11367187499999],[15.08125,11.845507812499989],[14.847070312500023,12.502099609374994],[14.461718750000017,13.021777343749989],[14.244824218750011,13.07734375],[14.06396484375,13.07851562499999],[13.932324218750011,13.258496093749997],[13.606347656250023,13.70458984375],[13.505761718750023,14.134423828124994],[13.4482421875,14.380664062500003],[14.367968750000017,15.750146484374994],[15.474316406250011,16.908398437499997],[15.735058593750011,19.904052734375],[15.963183593750017,20.34619140625],[15.587109375000011,20.733300781249994],[15.607324218750023,20.954394531250003],[15.181835937500011,21.523388671874997],[14.97900390625,22.99619140624999],[15.984082031250011,23.445214843749994],[20.14765625000001,21.38925781249999],[23.980273437500017,19.496630859375003]]]},"properties":{"name":"Chad","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[0.900488281250006,10.993261718749991],[0.763378906250011,10.386669921874997],[1.330078125,9.996972656249994],[1.3857421875,9.361669921874991],[1.600195312500006,9.050048828125],[1.624707031250011,6.997314453125],[1.530957031250011,6.992431640625],[1.777929687500006,6.294628906249997],[1.62265625,6.216796875],[1.187207031250011,6.089404296874989],[0.736914062500006,6.452587890624997],[0.525585937500011,6.850927734374991],[0.634765625,7.353662109374994],[0.5,7.546875],[0.686328125000017,8.354882812499994],[0.37255859375,8.75927734375],[0.48876953125,8.851464843749994],[0.525683593750017,9.398486328124989],[0.2333984375,9.463525390624994],[0.342578125000017,9.604150390624994],[0.264550781250023,9.644726562499997],[0.380859375,10.291845703124991],[-0.08632812499999,10.673046875],[0.009423828125023,11.02099609375],[-0.068603515625,11.115625],[0.49267578125,10.954980468749994],[0.900488281250006,10.993261718749991]]]},"properties":{"name":"Togo","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[98.40908203125005,7.90205078125004],[98.2962890625,7.776074218750054],[98.32207031250007,8.166308593749974],[98.4349609375,8.085644531249969],[98.40908203125005,7.90205078125004]]],[[[100.070703125,9.58603515625002],[99.96240234375003,9.421630859375],[99.93955078125006,9.559960937500037],[100.070703125,9.58603515625002]]],[[[102.42675781250003,11.988720703125026],[102.30195312500004,11.98081054687502],[102.27744140625006,12.151855468750043],[102.42675781250003,11.988720703125026]]],[[[100.12246093750005,20.316650390625057],[100.11494140625004,20.257666015625034],[100.13974609375012,20.245410156250017],[100.31796875000006,20.38588867187505],[100.51953125000003,20.17792968750004],[100.39765625000004,19.756103515625],[100.51357421875005,19.553466796875],[101.21191406249997,19.54833984375003],[101.22080078125006,19.486621093750074],[101.19755859375007,19.327929687500074],[101.2863281250001,18.977148437500006],[101.04697265625012,18.441992187500063],[101.05058593750002,18.407031250000045],[101.1375,18.28686523437497],[101.14394531250005,18.14262695312499],[100.90849609375002,17.583886718750023],[100.95585937500002,17.541113281250006],[101.10517578125004,17.47954101562499],[101.16748046874997,17.49902343749997],[101.41367187500012,17.71875],[101.55507812500005,17.812353515625034],[101.56367187500004,17.82050781250001],[101.6875,17.889404296875],[101.77480468750005,18.03339843750004],[101.81865234375002,18.06464843750001],[101.87548828124997,18.046435546875017],[101.94746093750004,18.081494140624983],[102.03457031250005,18.169824218750023],[102.10146484375,18.210644531249983],[102.14824218750002,18.20385742187503],[102.35185546875002,18.045947265625017],[102.45878906250002,17.984619140625057],[102.55253906250007,17.96508789062497],[102.61679687500006,17.833349609375034],[102.66064453124997,17.817968750000034],[102.680078125,17.824121093750023],[103.05136718750006,18.02851562500001],[103.0912109375,18.13823242187499],[103.14853515625006,18.221728515625045],[103.19970703124997,18.259472656249983],[103.26318359374997,18.27846679687505],[103.27958984375002,18.304980468750017],[103.24892578125,18.338964843750034],[103.25175781250002,18.373486328124955],[103.2882812500001,18.408398437499955],[103.36699218750007,18.42333984374997],[103.48798828125004,18.418164062499983],[103.62968750000002,18.38256835937503],[103.79228515625002,18.316503906249977],[103.89882812500005,18.295312500000023],[103.949609375,18.31899414062505],[104.04873046875005,18.216699218749994],[104.19619140625005,17.988378906250006],[104.32265625,17.815820312500023],[104.428125,17.69897460937503],[104.7396484375,17.461669921875],[104.81601562500012,17.30029296874997],[104.75898437500004,17.0771484375],[104.7435546875,16.884375],[104.75058593750012,16.647558593750063],[104.81933593750003,16.46606445312503],[105.04716796875007,16.160253906249977],[105.14873046875007,16.09355468749999],[105.33066406250006,16.037890625000017],[105.40625,15.987451171875051],[105.39892578124997,15.829882812500017],[105.62207031250003,15.699951171875],[105.641015625,15.656542968750045],[105.6388671875001,15.585937500000057],[105.615625,15.488281250000057],[105.49042968750004,15.256591796875],[105.49042968750004,15.127587890625009],[105.5333984375001,15.041601562499991],[105.54667968750002,14.932470703124963],[105.52304687500012,14.843310546875003],[105.49736328125002,14.590673828124963],[105.47558593750003,14.530126953124977],[105.42265625000007,14.471630859375054],[105.34218750000005,14.416699218750054],[105.24365234375003,14.367871093750054],[105.1833007812501,14.346240234374989],[105.16914062500004,14.336083984374966],[105.12597656250003,14.280957031250011],[105.07412109375005,14.227441406250037],[104.77900390625004,14.427832031250006],[103.19941406250004,14.332617187499977],[102.90927734375006,14.136718750000028],[102.546875,13.585693359375043],[102.33632812500005,13.560302734375014],[102.49960937500012,12.669970703125003],[102.75566406250002,12.42626953125],[102.73662109375007,12.089794921875011],[102.93388671875002,11.706689453125037],[102.594140625,12.203027343749994],[102.54023437500004,12.109228515624977],[101.83574218750002,12.640380859375014],[100.89775390625007,12.653808593749986],[100.96269531250007,13.431982421874991],[100.60292968750005,13.568164062500017],[100.23564453125002,13.48447265625002],[99.99052734375007,13.243457031250031],[100.08994140625006,13.045654296874972],[99.96396484375006,12.690039062500006],[99.98906250000007,12.170800781249994],[99.16503906250003,10.319824218750028],[99.25390625000003,9.265234375000034],[99.83554687500012,9.288378906250031],[99.98955078125007,8.589208984374977],[100.129296875,8.428076171875006],[100.16347656250005,8.508398437500034],[100.27939453125006,8.268505859375011],[100.54521484375002,7.226904296874991],[100.43935546875005,7.280761718750043],[100.38037109375003,7.541503906250043],[100.28378906250006,7.551513671875043],[100.25664062500002,7.774902343749986],[100.16074218750012,7.599267578124994],[100.4235351562501,7.18784179687502],[101.01787109375002,6.860937500000034],[101.49794921875005,6.865283203125031],[102.10107421874997,6.242236328125031],[101.87363281250012,5.825292968749991],[101.67841796875004,5.778808593750028],[101.5560546875,5.907763671875003],[101.1139648437501,5.636767578125045],[100.98164062500004,5.771044921875045],[101.05351562500002,6.242578125],[100.87392578125,6.24541015624996],[100.75449218750012,6.460058593749991],[100.3454101562501,6.549902343750006],[100.26142578125004,6.682714843749963],[100.11914062499997,6.441992187500048],[99.69599609375004,6.87666015625004],[99.72031250000012,7.106201171875],[99.55302734375002,7.218798828125031],[99.59697265625002,7.355615234375009],[99.35859375000004,7.372216796875023],[99.26367187499997,7.619042968750037],[99.07763671874997,7.718066406250045],[99.05107421875002,7.887841796874994],[98.78867187500012,8.059814453125028],[98.703515625,8.256738281250009],[98.57919921875006,8.344287109374989],[98.42099609375006,8.17822265625],[98.30546875000007,8.226220703125009],[98.24179687500006,8.767871093750045],[98.70253906250005,10.19038085937504],[98.7572265625,10.660937499999974],[99.1901367187501,11.105273437499989],[99.61474609374997,11.781201171875026],[99.40507812500002,12.547900390625003],[99.12392578125,13.030761718750043],[99.13681640625006,13.716699218749994],[98.57001953125004,14.359912109375031],[98.20214843749997,14.97592773437502],[98.19101562500012,15.204101562499972],[98.55693359375007,15.367675781249986],[98.59238281250006,16.05068359375005],[98.81796875000012,16.180810546874994],[98.88828125000006,16.351904296875034],[98.83544921875003,16.417578125],[98.66074218750006,16.330419921875006],[98.4388671875,16.975683593750034],[97.7064453125,17.79711914062503],[97.63222656250005,18.290332031250074],[97.37392578125,18.51796875],[97.74589843750002,18.58818359374999],[97.816796875,19.459960937500057],[98.01503906250005,19.74951171874997],[98.37128906250004,19.68916015625004],[98.9166992187501,19.77290039062504],[99.07421875000003,20.09936523437503],[99.48593750000006,20.14985351562501],[99.45888671875005,20.363037109375],[99.72011718750005,20.32543945312497],[99.8903320312501,20.424414062499977],[99.9542968750001,20.415429687500023],[100.0036132812501,20.37958984375001],[100.12246093750005,20.316650390625057]]]]},"properties":{"name":"Thailand","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[70.66416015625,39.85546875],[70.55957031250003,39.790917968749994],[70.48925781250003,39.86303710937503],[70.48281250000005,39.88271484375005],[70.49775390625004,39.88242187499998],[70.56708984375004,39.86660156250005],[70.66416015625,39.85546875]]],[[[70.95800781250003,40.238867187500034],[70.59921875,39.974511718749994],[69.96679687499997,40.202246093750034],[69.46875,40.020751953125],[69.47099609375002,39.990625],[69.43193359375007,39.909765625000034],[69.36542968750004,39.94707031250002],[69.30722656250006,39.968554687500045],[69.27880859374997,39.91777343749999],[69.24472656250006,39.82709960937498],[69.29765625000007,39.52480468750005],[70.50117187500004,39.58735351562501],[70.79931640625003,39.39472656250001],[71.4703125,39.60366210937502],[71.50302734375006,39.58217773437502],[71.51738281250002,39.55385742187502],[71.50585937499997,39.51708984374997],[71.5033203125,39.47880859374999],[71.73222656250002,39.422998046874994],[71.77861328125007,39.27797851562502],[72.04277343750002,39.352148437500034],[72.08417968750004,39.310644531250034],[72.14736328125005,39.26074218749997],[72.22998046874997,39.20751953124997],[72.63994140625002,39.385986328125],[73.10927734375,39.36191406249998],[73.2349609375,39.37456054687499],[73.3361328125001,39.41235351562506],[73.38740234375004,39.442724609375034],[73.4704101562501,39.46059570312502],[73.63164062500007,39.44887695312502],[73.63632812500006,39.396679687499955],[73.60732421875,39.229199218749955],[73.8052734375,38.968652343749994],[73.69609375000007,38.85429687499996],[73.80166015625,38.60688476562501],[74.02558593750004,38.53984375000002],[74.27744140625,38.659765625000034],[74.81230468750002,38.46030273437498],[74.8942382812501,37.60141601562498],[75.11875,37.38569335937498],[74.89130859375004,37.231640624999955],[74.875390625,37.24199218750002],[74.83046875,37.28593750000002],[74.73056640625006,37.35703125],[74.659375,37.39448242187501],[74.34902343750005,37.41875],[74.25966796875005,37.41542968750002],[74.20351562500005,37.37246093750005],[74.16708984375,37.32944335937498],[73.74960937500006,37.23178710937498],[73.6535156250001,37.239355468750034],[73.62753906250006,37.261572265625006],[73.71728515625003,37.32944335937498],[73.7337890625,37.37578125000002],[73.72060546875,37.41875],[73.65712890625005,37.43046875],[73.6046875000001,37.44604492187503],[73.48134765625,37.4716796875],[73.38291015625006,37.462255859375034],[73.21113281250004,37.40849609375002],[72.89550781250003,37.26752929687498],[72.65742187500004,37.029052734375],[71.665625,36.696923828124994],[71.530859375,36.845117187499994],[71.43291015625007,37.12753906249998],[71.5822265625001,37.91010742187498],[71.55195312500004,37.93315429687496],[71.48779296874997,37.93188476562497],[71.38964843750003,37.90629882812502],[71.31992187500006,37.90185546875],[71.27851562500004,37.91840820312498],[71.33271484375004,38.170263671875034],[71.25585937499997,38.306982421875006],[70.7359375,38.42255859375001],[70.41777343750002,38.075439453125],[70.21464843750002,37.92441406250006],[70.19941406250004,37.88603515624996],[70.25498046875006,37.76538085937497],[70.25146484374997,37.66416015625006],[70.18867187500004,37.58247070312501],[70.11982421875004,37.54350585937499],[69.9849609375,37.566162109375],[69.8208984375,37.60957031250004],[69.62578125000002,37.59404296874999],[69.49208984375,37.55307617187498],[69.42011718750004,37.486718749999966],[69.39921875000007,37.39931640625002],[69.42968749999997,37.290869140625034],[69.414453125,37.20776367187497],[69.35380859375007,37.15004882812502],[69.3039062500001,37.11694335937503],[69.26484375000004,37.1083984375],[69.18017578125003,37.158300781250034],[68.96044921875003,37.32504882812498],[68.9118164062501,37.33393554687501],[68.88525390624997,37.32807617187498],[68.85537109375005,37.31684570312501],[68.83847656250006,37.30283203124998],[68.82373046874997,37.27070312500001],[68.78203125000002,37.25800781250001],[68.7232421875,37.26801757812501],[68.6691406250001,37.258398437500006],[68.3869140625001,37.1375],[68.29951171875004,37.08842773437502],[68.28476562500006,37.036328124999955],[68.2609375000001,37.01308593750002],[68.2121093750001,37.02153320312496],[68.0677734375,36.949804687500006],[67.95800781249997,36.972021484375006],[67.83447265624997,37.06420898437506],[67.75898437500004,37.172216796875034],[67.7980468750001,37.244970703125006],[67.81435546875005,37.48701171875004],[68.3502929687501,38.211035156250006],[68.08720703125002,38.47353515625002],[68.13251953125004,38.927636718749966],[67.69443359375006,38.99462890625003],[67.64833984375005,39.13105468750004],[67.3576171875001,39.216699218749994],[67.426171875,39.46557617187497],[67.71904296875007,39.62138671875002],[68.46328125,39.53671874999998],[68.63896484375007,39.8388671875],[68.86875,39.90747070312503],[68.80468750000003,40.05034179687499],[68.9720703125,40.08994140624998],[68.63066406250007,40.16708984374998],[69.27490234374997,40.19809570312498],[69.20625,40.566552734374994],[69.35722656250002,40.76738281249996],[69.71289062500003,40.65698242187503],[70.40195312500006,41.03510742187498],[70.75107421875006,40.721777343750006],[70.37158203125003,40.38413085937506],[70.653125,40.201171875],[70.95800781250003,40.238867187500034]]]]},"properties":{"name":"Tajikistan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[66.52226562500007,37.34848632812506],[66.471875,37.3447265625],[65.7650390625,37.56914062499996],[65.55498046875002,37.25117187500004],[65.30361328125005,37.24677734375001],[65.08964843750007,37.237939453124994],[64.9515625,37.19355468750001],[64.81630859375005,37.13208007812503],[64.7824218750001,37.05927734375001],[64.60253906250003,36.554541015625034],[64.5658203125,36.427587890625034],[64.51103515625002,36.34067382812498],[64.184375,36.14892578125],[63.8625,36.012353515624994],[63.12998046875006,35.84619140624997],[63.169726562500074,35.678125],[63.05664062500003,35.44580078125003],[62.98027343750002,35.40917968750003],[62.85800781250006,35.34965820312499],[62.688085937500006,35.25532226562504],[62.3078125000001,35.17080078125005],[62.08964843750002,35.3796875],[61.62099609375005,35.43232421875004],[61.34472656249997,35.62949218750006],[61.26201171875002,35.61958007812498],[61.25214843750004,35.86762695312498],[61.15292968750006,35.97675781250001],[61.212011718750006,36.190527343750034],[61.11962890625003,36.64257812500003],[60.34130859375003,36.63764648437501],[60.06279296875002,36.962890625],[59.454980468749994,37.25283203125002],[59.30175781249997,37.51064453125005],[58.81542968750003,37.683496093749994],[58.261621093749994,37.665820312500045],[57.35371093750004,37.97333984374998],[57.1935546875001,38.216406250000034],[56.440625,38.249414062499994],[56.272070312500006,38.080419921875034],[55.38085937500003,38.051123046875034],[54.90009765625004,37.77792968750006],[54.6994140625001,37.47016601562498],[53.91416015625006,37.34355468750002],[53.86865234375003,38.949267578125045],[53.70458984375003,39.209570312500034],[53.33632812500005,39.34082031250006],[53.15664062499999,39.26499023437506],[53.23564453125002,39.608544921874966],[53.603125,39.546972656250034],[53.472265625,39.66879882812498],[53.48730468749997,39.909375],[52.9875,39.98759765625002],[53.03554687500005,39.7744140625],[52.80468749999997,40.054003906250045],[52.73369140625002,40.39873046875002],[52.943457031250006,41.03808593750006],[53.1452148437501,40.82495117187497],[53.61523437500003,40.818505859374994],[53.87001953125005,40.64868164062503],[54.37734375,40.693261718749966],[54.319433593750006,40.83457031249998],[54.68505859375003,40.873046875],[54.70371093750006,41.071142578125034],[54.094824218750006,41.51938476562506],[53.80468749999997,42.11762695312498],[53.16416015625006,42.09379882812502],[52.97001953125002,41.97622070312505],[52.81484375,41.711816406249994],[52.850390625000074,41.20029296875006],[52.4938476562501,41.780371093750034],[53.0558593750001,42.14775390624999],[54.120996093749994,42.335205078125],[54.85380859375002,41.965185546875006],[55.434375,41.296289062499994],[55.97744140625005,41.32221679687504],[57.01796875,41.26347656249996],[57.11884765625004,41.35029296874998],[56.96406250000004,41.856542968750006],[57.290625,42.123779296875],[57.814257812500074,42.18984375000005],[58.02890625,42.48764648437506],[58.474414062500074,42.29936523437496],[58.15156250000004,42.628076171874966],[58.477148437500006,42.66284179687503],[58.5890625000001,42.778466796874966],[59.35429687500002,42.32329101562496],[59.98515625000002,42.21171875],[59.94179687499999,41.97353515625002],[60.20078125000006,41.803125],[60.07558593750005,41.759667968749966],[60.089648437500074,41.39941406250003],[60.454980468749994,41.221630859374955],[61.2423828125001,41.18920898437503],[61.496972656249994,41.276074218749955],[61.90283203124997,41.09370117187501],[62.48320312500002,39.97563476562496],[63.76367187500003,39.16054687499999],[64.3099609375,38.97729492187497],[65.612890625,38.23857421875002],[65.97119140624997,38.244238281250006],[66.60625,37.98671875000005],[66.52558593750004,37.785742187500034],[66.51132812500006,37.59916992187496],[66.51064453125,37.45869140625004],[66.52226562500007,37.34848632812506]]]},"properties":{"name":"Turkmenistan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[124.0363281250001,-9.341601562500031],[124.44443359375012,-9.190332031250023],[124.28232421875012,-9.427929687500026],[124.0363281250001,-9.341601562500031]]],[[[125.06816406250002,-9.511914062499997],[124.96015625000004,-9.213769531250009],[125.10048828125,-9.189843750000023],[125.14902343750012,-9.042578125000034],[124.93681640625007,-9.053417968750026],[124.92226562500005,-8.942480468749977],[125.17802734375002,-8.647851562499994],[125.38183593749997,-8.575390624999983],[126.61972656250006,-8.459472656249986],[126.96640625000012,-8.315722656250017],[127.29609375000004,-8.424511718749969],[126.91523437500004,-8.715234374999966],[125.40800781250002,-9.275781250000023],[125.06816406250002,-9.511914062499997]]],[[[125.64609375000006,-8.139941406250003],[125.5794921875,-8.311816406250017],[125.50712890625007,-8.275097656249997],[125.64609375000006,-8.139941406250003]]]]},"properties":{"name":"Timor-Leste","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-175.1619140625,-21.169335937500023],[-175.07817382812496,-21.129003906249977],[-175.15659179687495,-21.26367187499997],[-175.36235351562496,-21.106835937499994],[-175.1619140625,-21.169335937500023]]],[[[-173.953515625,-18.63935546875001],[-174.06914062500002,-18.640234375],[-173.96806640624993,-18.565332031250023],[-173.953515625,-18.63935546875001]]]]},"properties":{"name":"Tonga","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-61.012109374999966,10.134326171874989],[-61.906103515625006,10.069140625000031],[-61.49931640624999,10.268554687499972],[-61.47827148437497,10.603369140624977],[-61.65117187499993,10.718066406249974],[-60.917626953124966,10.84023437499999],[-61.03374023437502,10.669873046875026],[-61.012109374999966,10.134326171874989]]]},"properties":{"name":"Trinidad and Tobago","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[10.957617187500063,33.72207031250005],[10.722070312500051,33.738916015624994],[10.745214843750063,33.88867187500006],[11.017871093749989,33.82333984374998],[10.957617187500063,33.72207031250005]]],[[[11.278027343750068,34.753808593749994],[11.123632812500063,34.68168945312496],[11.254882812500057,34.82031250000006],[11.278027343750068,34.753808593749994]]],[[[10.274609375000011,31.684960937499994],[10.114941406250068,31.46376953125005],[10.216406250000063,30.78320312500003],[10.05976562500004,30.58007812500003],[9.932519531250051,30.42534179687496],[9.895019531250028,30.387304687500034],[9.51875,30.229394531249994],[9.224023437500023,31.373681640624994],[9.160253906250006,31.621337890625],[9.044042968750034,32.072363281250034],[8.333398437500051,32.54360351562502],[8.1125,33.055322265624994],[7.877246093750017,33.172119140625],[7.534375,33.717919921874994],[7.513867187500068,34.080517578124955],[8.24560546875,34.73408203124998],[8.276855468750057,34.97949218749997],[8.312109375000063,35.084619140624994],[8.394238281250011,35.20385742187503],[8.318066406250011,35.654931640624994],[8.348730468750063,36.367968750000045],[8.207617187500006,36.518945312499994],[8.601269531250068,36.83393554687504],[8.576562500000023,36.93720703125001],[9.687988281250057,37.34038085937499],[9.838476562500063,37.30898437499999],[9.830273437499983,37.13535156250006],[9.875585937499977,37.25415039062503],[10.196386718750063,37.205859375000045],[10.293261718750074,36.781494140625],[10.412304687499983,36.73183593750002],[11.053906250000068,37.07250976562506],[11.12666015625004,36.874072265625045],[10.476562500000028,36.175146484375006],[10.590820312500028,35.88725585937499],[11.00429687500008,35.63383789062496],[11.120117187500057,35.24028320312499],[10.69091796875,34.67846679687503],[10.118359375000068,34.280078125000045],[10.049023437500068,34.056298828124994],[10.305273437500034,33.72827148437497],[10.713183593750017,33.68901367187496],[10.722753906250006,33.514404296875],[10.958007812500057,33.62631835937498],[11.257421875000034,33.30883789062506],[11.202636718749972,33.24921874999998],[11.50458984375004,33.181933593750045],[11.502441406250028,33.15556640624999],[11.467187500000051,32.96572265625005],[11.459179687500011,32.897363281249966],[11.453906250000017,32.64257812500003],[11.533789062500034,32.52495117187496],[11.535937500000017,32.47333984375001],[11.504980468750034,32.413671875000034],[11.358007812500006,32.34521484375003],[11.168261718750074,32.25673828125002],[11.005175781250074,32.17270507812506],[10.826367187500068,32.080664062500034],[10.771582031250006,32.02119140625001],[10.60888671875,31.929541015624977],[10.47578125000004,31.736035156249983],[10.274609375000011,31.684960937499994]]]]},"properties":{"name":"Tunisia","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[25.970019531250045,40.136328125],[25.6689453125,40.13588867187502],[25.918359375000023,40.23798828125004],[25.970019531250045,40.136328125]]],[[[43.43339843750002,41.155517578125],[43.43945312500003,41.10712890625001],[43.72265624999997,40.71953124999999],[43.56933593750003,40.48237304687498],[43.66621093750004,40.12636718750002],[44.28925781250004,40.040380859375006],[44.76826171875004,39.70351562500005],[44.81718750000002,39.65043945312496],[44.58710937500004,39.76855468750006],[44.3893554687501,39.422119140625],[44.02324218750002,39.37744140625006],[44.27167968750004,38.83603515625006],[44.2985351562501,38.38627929687499],[44.4499023437501,38.33422851562506],[44.21132812499999,37.908056640625006],[44.589941406250006,37.710351562499966],[44.574023437500074,37.435400390625006],[44.79414062500004,37.290380859375034],[44.76513671875003,37.142431640625006],[44.73095703124997,37.16528320312503],[44.66933593750005,37.17358398437503],[44.60595703124997,37.176025390625],[44.401953125,37.05849609375002],[44.325585937499994,37.0107421875],[44.28183593750006,36.97802734374997],[44.24570312500006,36.983300781249994],[44.20166015624997,37.05180664062502],[44.208398437499994,37.20263671875],[44.19179687499999,37.249853515625034],[44.15625,37.28295898437503],[44.11445312500004,37.30185546875006],[44.01318359375003,37.313525390625045],[43.83642578124997,37.223535156249994],[43.67578125000003,37.227246093749955],[43.09248046875004,37.36738281249998],[42.936621093750006,37.32475585937502],[42.77460937500004,37.371875],[42.74111328125005,37.361914062500034],[42.6354492187501,37.249267578125],[42.45585937500002,37.128710937500045],[42.358984375,37.10859375000004],[42.31289062499999,37.22958984374998],[42.26855468749997,37.276562499999955],[42.24755859375003,37.28222656250006],[42.20273437500006,37.29726562499999],[42.16787109375005,37.28862304687502],[42.059863281250074,37.2060546875],[41.886816406250006,37.156396484374994],[40.70566406250006,37.09770507812502],[40.4503906250001,37.00888671875006],[40.016406250000074,36.82607421875002],[39.68652343749997,36.73862304687506],[39.50146484374997,36.702246093750034],[39.35664062500004,36.68159179687498],[39.10839843749997,36.68056640625005],[38.90644531250004,36.69467773437498],[38.76660156249997,36.69311523437503],[38.19169921875002,36.90156250000004],[37.90664062500005,36.79462890625001],[37.7203125,36.74370117187502],[37.52353515625006,36.678320312500034],[37.436328125000074,36.643310546875],[37.327050781249994,36.64658203125006],[37.18740234375005,36.655908203124994],[37.066210937500074,36.652636718750045],[36.98535156250003,36.70239257812506],[36.94179687499999,36.758398437500006],[36.77656250000004,36.79267578124998],[36.65859375000005,36.80253906250002],[36.62841796875003,36.777685546875034],[36.596875,36.70136718750001],[36.546679687500074,36.50634765625],[36.5375,36.457421874999966],[36.63671874999997,36.233984375],[36.37539062499999,36.171240234375034],[36.347558593749994,36.003515625000034],[36.20195312500002,35.93754882812502],[36.15361328125002,35.83388671875005],[36.12734375,35.831445312499994],[35.967578125000074,35.91005859375002],[35.89267578125006,35.91655273437502],[35.81093750000005,36.30986328125002],[36.18847656250003,36.65898437499999],[36.048925781250006,36.91059570312501],[35.393164062500006,36.57519531249997],[34.70361328125003,36.81679687499999],[33.694726562499994,36.18198242187498],[32.794824218749994,36.03588867187497],[32.37773437500002,36.18364257812496],[32.02197265625003,36.53530273437502],[31.35253906249997,36.80107421874999],[30.64404296874997,36.86567382812501],[30.446093750000074,36.269873046875034],[29.6890625,36.15668945312498],[29.22363281249997,36.32446289062497],[28.96962890625008,36.71533203125003],[28.303710937500057,36.81196289062498],[28.01943359375005,36.63447265624998],[28.083984375000057,36.75146484375],[27.453906250000017,36.712158203125],[28.00537109375003,36.83198242187498],[28.242382812500068,37.029052734375],[27.262988281250045,36.97656250000003],[27.30019531250005,37.12685546875002],[27.53505859375005,37.16386718750002],[27.06796875,37.65791015625004],[27.224414062500074,37.725439453125006],[27.23242187500003,37.978662109374994],[26.29072265625001,38.27719726562498],[26.44130859375005,38.64121093749998],[26.67421875000008,38.33574218750002],[27.14423828125001,38.45195312499996],[26.906835937500034,38.48173828124999],[26.763671875,38.709619140624966],[27.013671875000057,38.88686523437502],[26.814941406250057,38.96098632812502],[26.853613281250034,39.115625],[26.68183593750004,39.292236328125],[26.89921874999999,39.549658203125034],[26.113085937500074,39.46738281249998],[26.101367187500074,39.56894531249998],[26.18134765625004,39.99008789062498],[26.738085937500045,40.40024414062506],[27.28457031250008,40.45561523437496],[27.4755859375,40.319921875000034],[27.72802734375,40.32880859374998],[27.84853515625005,40.38173828125002],[27.73183593750008,40.48149414062499],[27.87490234375008,40.512939453125],[27.989550781250074,40.48945312500001],[27.96259765625001,40.369873046875],[29.00712890624999,40.389746093750034],[28.787890625000017,40.534033203125034],[28.95800781250003,40.63056640624998],[29.849218750000063,40.760107421875006],[29.113867187499977,40.93784179687506],[29.14814453125004,41.221044921875034],[31.25488281249997,41.10761718750001],[31.45800781249997,41.32001953125004],[32.306445312500074,41.72958984374998],[33.38134765625003,42.01757812500003],[34.75048828124997,41.95683593749999],[35.006445312500006,42.06328125000002],[35.15488281250006,42.02753906250001],[35.12207031250003,41.89111328125003],[35.297753906249994,41.72851562500003],[35.558007812499994,41.63403320312506],[36.05175781249997,41.68256835937498],[36.40537109375006,41.27460937500001],[36.77773437499999,41.36347656250001],[37.066210937500074,41.184423828125034],[38.38105468750004,40.92451171875001],[39.426367187500006,41.10644531250003],[40.26523437500006,40.96132812500005],[41.08359375000006,41.26118164062504],[41.41435546875002,41.42363281249999],[41.510058593750074,41.51748046875002],[41.70175781250006,41.471582031249994],[41.77939453125006,41.44052734374998],[41.823535156250074,41.432373046875],[41.92578125000003,41.49565429687502],[42.46640625,41.43984375000002],[42.56738281249997,41.55927734375001],[42.590429687500006,41.57070312500002],[42.60683593750005,41.57880859374998],[42.682421875000074,41.58574218749999],[42.75410156250004,41.57890625000002],[42.787890625000074,41.56372070312503],[42.82167968750005,41.49238281249998],[42.90673828125003,41.46684570312502],[43.05712890625003,41.35283203124996],[43.149023437500006,41.30712890624997],[43.171289062499994,41.28793945312498],[43.14101562499999,41.26484374999998],[43.15283203124997,41.23642578125006],[43.20546875000005,41.19916992187501],[43.43339843750002,41.155517578125]]],[[[27.47480468750001,41.946875],[28.014453125000017,41.96904296874999],[28.197851562500063,41.55449218750002],[29.057226562500006,41.22973632812503],[28.95625,41.00820312499999],[28.172167968750074,41.08071289062502],[27.49941406250005,40.97314453124997],[27.258007812499983,40.687353515625006],[26.772070312500034,40.498046875],[26.202734375000034,40.07539062500004],[26.25380859375005,40.31469726562503],[26.792089843750034,40.626611328124994],[26.10546875000003,40.61132812499997],[26.03896484375008,40.726757812499955],[26.331054687500057,40.954492187499994],[26.330664062499977,41.23876953125],[26.62490234375008,41.401757812499994],[26.581347656250074,41.60126953125004],[26.320898437500034,41.716552734375],[26.3603515625,41.80156249999999],[26.51142578125004,41.82636718749998],[26.549707031250023,41.896728515625],[26.5796875,41.947949218749955],[26.615332031250063,41.964892578125045],[26.884863281250006,41.99184570312502],[26.96875,42.02685546875006],[27.01171875,42.05864257812496],[27.193359375000057,42.07709960937498],[27.24433593750004,42.09326171875],[27.294921875000057,42.079541015624955],[27.47480468750001,41.946875]]]]},"properties":{"name":"Turkey","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[39.71132812499999,-7.977441406250023],[39.602929687499994,-7.936132812499949],[39.907128906249994,-7.649218750000031],[39.71132812499999,-7.977441406250023]]],[[[39.49648437499999,-6.174609375],[39.573046875000074,-6.387402343750011],[39.48095703124997,-6.45371093750002],[39.18232421875004,-6.172558593750026],[39.30898437499999,-5.721972656249974],[39.49648437499999,-6.174609375]]],[[[39.86503906250002,-4.906152343750037],[39.74931640625002,-5.443847656249986],[39.646777343750074,-5.368554687500009],[39.6734375,-4.927050781250031],[39.86503906250002,-4.906152343750037]]],[[[33.90322265625005,-1.002050781250034],[37.643847656250074,-3.045410156250028],[37.608203125000074,-3.497070312500028],[39.221777343750006,-4.692382812500014],[38.80468750000003,-6.070117187500031],[38.87402343750003,-6.33125],[39.5460937500001,-7.024023437500034],[39.288476562499994,-7.517871093750003],[39.28701171875005,-7.787695312500006],[39.4284179687501,-7.81279296874996],[39.441015625,-8.011523437499946],[39.304003906250074,-8.44384765625],[39.451269531250006,-8.94296875],[39.64130859375004,-9.19248046875002],[39.72519531250006,-10.000488281249972],[40.46357421875004,-10.464355468749972],[39.98867187499999,-10.820800781250014],[39.81708984375004,-10.912402343750031],[38.9875,-11.167285156250003],[38.49179687500006,-11.413281250000026],[37.92021484375002,-11.294726562500031],[37.72480468750004,-11.58066406250002],[37.54169921875004,-11.675097656249974],[37.37285156250002,-11.710449218749986],[36.97890625000005,-11.566992187499977],[36.30566406250003,-11.706347656249946],[36.191308593749994,-11.670703124999974],[36.17548828125004,-11.60927734374998],[36.08222656250004,-11.537304687499969],[35.91132812500004,-11.45468750000002],[35.785449218750074,-11.452929687500017],[35.63095703125006,-11.582031250000028],[35.564355468749994,-11.602343749999989],[35.418261718750074,-11.583203125],[35.18261718750003,-11.574804687499977],[34.95947265625003,-11.578125],[34.93701171874997,-11.463476562500034],[34.890625,-11.3935546875],[34.77382812500005,-11.341699218750009],[34.60791015624997,-11.08046875],[34.66708984375006,-10.792480468750028],[34.56992187500006,-10.241113281249966],[34.32089843750006,-9.731542968749977],[33.99560546875003,-9.495410156250003],[33.88886718750004,-9.670117187499983],[32.91992187500003,-9.407421875000026],[32.75664062500002,-9.322265625],[31.94257812500004,-9.05400390624996],[31.91865234375004,-8.942187500000017],[31.886132812499994,-8.921972656249977],[31.81806640625004,-8.902246093749952],[31.673632812500017,-8.908789062499963],[31.55625,-8.80546875],[31.44921874999997,-8.65390625],[31.35058593750003,-8.607031250000034],[31.07636718750004,-8.611914062499963],[30.968359375000063,-8.550976562499983],[30.89199218750005,-8.473730468749963],[30.830664062500063,-8.385546875000031],[30.720898437500097,-8.104394531250037],[30.40673828125003,-7.460644531249983],[30.313183593750097,-7.203710937499949],[30.212695312500017,-7.037890625000017],[30.10625,-6.915039062500028],[29.961816406249994,-6.803125],[29.798144531250017,-6.691894531249957],[29.70966796875004,-6.61689453125004],[29.590625,-6.394433593750023],[29.540820312500017,-6.313867187500037],[29.50625,-6.172070312500011],[29.480078125,-6.025],[29.490820312500063,-5.96542968750002],[29.59638671875004,-5.775976562499963],[29.60703125,-5.722656250000028],[29.59414062500005,-5.650781250000037],[29.542382812499994,-5.499804687500017],[29.34277343749997,-4.983105468749997],[29.32343750000004,-4.898828124999966],[29.32568359374997,-4.835644531249969],[29.404199218749994,-4.49667968750002],[29.40322265625005,-4.449316406249963],[29.71777343750003,-4.45585937499996],[29.94726562499997,-4.307324218749983],[30.4,-3.65390625],[30.790234375000097,-3.274609375000011],[30.811132812500006,-3.116406250000011],[30.78027343750003,-2.984863281249957],[30.70947265624997,-2.977246093749997],[30.604296875000074,-2.935253906249969],[30.515039062499994,-2.917578125],[30.45556640625003,-2.893164062500006],[30.433496093749994,-2.874511718750028],[30.424023437500097,-2.82402343749996],[30.473339843750097,-2.6943359375],[30.42421875000005,-2.641601562500014],[30.441992187500006,-2.613476562499969],[30.53369140624997,-2.426269531250014],[30.55361328125005,-2.400097656250011],[30.593359375000063,-2.39677734374996],[30.65664062500005,-2.373828124999989],[30.71484375000003,-2.363476562500011],[30.7625,-2.371679687499991],[30.828710937500006,-2.338476562499977],[30.85498046874997,-2.265429687500017],[30.8765625,-2.143359375000017],[30.864648437499994,-2.044042968749949],[30.819140625000017,-1.967480468749983],[30.812597656250006,-1.56308593750002],[30.76220703124997,-1.458691406249983],[30.710742187500074,-1.396777343749974],[30.631933593750006,-1.36748046874996],[30.508105468750074,-1.208203125000026],[30.47021484374997,-1.13115234374996],[30.47705078124997,-1.0830078125],[30.509960937500097,-1.067285156249994],[30.51992187499999,-1.0625],[30.67275390625005,-1.051367187499949],[30.741992187500017,-1.007519531249997],[30.809179687500063,-0.994921875],[30.82363281250005,-0.999023437499943],[30.84472656250003,-1.002050781250034],[32.371875,-1.002050781250034],[33.90322265625005,-1.002050781250034]]]]},"properties":{"name":"Tanzania","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[30.50996093750001,-1.067285156250009],[30.46992187500001,-1.066015625],[30.41230468750001,-1.063085937500006],[30.360253906250023,-1.074609375],[29.930078125000023,-1.469921875000011],[29.82539062500001,-1.335546875],[29.576953125000017,-1.387890625000011],[29.717675781250023,0.098339843749997],[29.934472656250023,0.4990234375],[29.94287109375,0.819238281249994],[31.252734375000017,2.044580078124994],[31.176367187500006,2.270068359374989],[30.728613281250006,2.455371093749989],[30.8466796875,2.847021484374991],[30.754003906250006,3.041796874999989],[30.90644531250001,3.408935546875],[30.83857421875001,3.49072265625],[31.15234375,3.785595703124997],[31.547167968750017,3.677587890624991],[31.79804687500001,3.802636718749994],[32.13593750000001,3.519726562499997],[32.33574218750002,3.706201171874994],[32.99726562500001,3.880175781249989],[33.489355468750006,3.755078125],[33.568457031250006,3.81171875],[33.74160156250002,3.985253906249994],[33.97607421875,4.22021484375],[34.13203125000001,3.88916015625],[34.18574218750001,3.869775390624994],[34.1650390625,3.81298828125],[34.26708984375,3.733154296875],[34.39287109375002,3.691503906249991],[34.43769531250001,3.650585937499997],[34.44179687500002,3.60625],[34.3994140625,3.412695312499991],[34.4072265625,3.357519531249991],[34.447851562500006,3.163476562499994],[34.90576171875,2.4796875],[34.88300781250001,2.417919921874997],[34.96406250000001,2.062402343749994],[34.9775390625,1.861914062499991],[34.97646484375002,1.719628906249994],[34.79863281250002,1.24453125],[34.48173828125002,1.042138671874994],[34.41083984375001,0.867285156249991],[34.16093750000002,0.605175781249997],[33.94316406250002,0.173779296874997],[33.90322265625002,-1.002050781250006],[32.371875,-1.002050781250006],[30.8447265625,-1.002050781250006],[30.823632812500023,-0.9990234375],[30.809179687500006,-0.994921875],[30.741992187500017,-1.007519531250011],[30.672753906250023,-1.051367187500006],[30.598730468750006,-1.069726562500009],[30.519921875000023,-1.0625],[30.50996093750001,-1.067285156250009]]]},"properties":{"name":"Uganda","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[32.01220703124997,46.20390624999999],[32.15009765625004,46.1546875],[31.56386718750005,46.25776367187504],[31.50878906250003,46.373144531250006],[32.01220703124997,46.20390624999999]]],[[[38.21435546875003,47.091455078124966],[37.54335937499999,47.07456054687498],[36.794824218749994,46.71440429687499],[36.55878906250004,46.76269531250006],[35.82714843749997,46.62431640625002],[35.01455078125005,46.10600585937502],[35.280175781249994,46.27949218750001],[35.23037109375005,46.440625],[34.84960937500003,46.189892578124955],[35.02285156250005,45.70097656250002],[35.45751953124997,45.316308593749994],[36.170507812500006,45.453076171874955],[36.575,45.3935546875],[36.39335937500002,45.06538085937501],[35.87011718750003,45.005322265624955],[35.472558593749994,45.098486328125006],[35.08769531250002,44.802636718749966],[34.46992187500004,44.7216796875],[33.909960937500074,44.387597656249966],[33.45068359374997,44.553662109374955],[33.55517578125003,45.09765625000003],[32.5080078125001,45.40380859375006],[33.664843750000074,45.94707031249996],[33.59414062500005,46.09624023437499],[33.42988281250004,46.05761718750003],[33.20224609375006,46.17573242187501],[32.47675781250004,46.08369140625001],[31.83125,46.28168945312501],[32.00849609375004,46.42998046875002],[31.554882812500097,46.554296875000034],[32.36132812499997,46.474951171875034],[32.578027343749994,46.615625],[32.04433593750005,46.642480468749966],[31.75917968750005,47.21284179687501],[31.872851562500017,46.649755859375034],[31.532128906249994,46.66474609374998],[31.56337890625005,46.77729492187501],[31.402929687500063,46.62880859375002],[30.796289062499994,46.55200195312503],[30.219042968750074,45.866748046875045],[29.62841796875003,45.722460937500045],[29.705859375000074,45.25991210937505],[29.567675781250074,45.37080078124998],[29.40371093750005,45.419677734375],[29.22353515625005,45.402929687500034],[28.894335937500017,45.28994140625002],[28.78173828125,45.30986328125002],[28.76660156250003,45.28623046874998],[28.78828125000001,45.240966796875],[28.451269531250006,45.292187499999955],[28.317675781250045,45.347119140624955],[28.2125,45.45043945312506],[28.26484375000004,45.48388671875003],[28.310351562500074,45.49858398437499],[28.499023437500057,45.517724609374994],[28.513769531250034,45.57241210937502],[28.49160156250005,45.66577148437503],[28.562304687500074,45.73579101562501],[28.667578125,45.79384765625002],[28.729296875000074,45.852001953124955],[28.73876953125003,45.937158203124994],[28.84951171875005,45.97866210937502],[28.94775390624997,46.049951171874966],[28.971875,46.12763671874998],[29.00625,46.17646484374998],[28.94375,46.28842773437506],[28.930566406250023,46.36225585937501],[28.92744140625001,46.42412109374999],[28.958398437500023,46.45849609374997],[29.146289062500017,46.52690429687496],[29.186230468750068,46.52397460937499],[29.20078125,46.504980468750034],[29.20458984374997,46.37934570312501],[29.223828125000097,46.37695312499997],[29.458789062500017,46.453759765624994],[29.83789062499997,46.35053710937501],[29.878027343750063,46.360205078125034],[30.07568359375003,46.377832031249966],[30.131054687500097,46.42309570312506],[29.92431640624997,46.53886718750002],[29.934765625000097,46.625],[29.942480468750063,46.72377929687502],[29.918066406250063,46.78242187499998],[29.877832031249994,46.828906250000045],[29.57197265625004,46.96401367187502],[29.455664062500006,47.292626953124994],[29.134863281250006,47.48969726562501],[29.125390625000023,47.96455078125001],[28.42304687500001,48.146875],[28.34052734375001,48.144433593749994],[27.54921875000008,48.47773437500004],[27.22851562500003,48.37143554687506],[26.90058593750001,48.37192382812506],[26.847070312500023,48.387158203124955],[26.640429687500045,48.29414062500001],[26.618945312500017,48.25986328125006],[26.4423828125,48.22998046875],[26.162695312500063,47.992529296875034],[25.90869140625,47.96757812500002],[25.689257812500045,47.93247070312506],[25.46425781250005,47.910791015624994],[24.979101562500063,47.72412109374997],[24.578906250000074,47.93105468750005],[23.628710937500017,47.995849609375],[23.40820312500003,47.98999023437506],[23.20263671875,48.084521484375045],[23.13945312499999,48.08740234375],[22.87666015625001,47.94726562500006],[22.769140625000063,48.109619140625],[22.582421875000023,48.134033203125],[22.253710937500017,48.407373046874994],[22.131835937500057,48.40532226562502],[22.142871093750017,48.568505859374966],[22.295214843750045,48.68583984374999],[22.389453125000045,48.87348632812501],[22.52412109375004,49.03139648437502],[22.538671875,49.07270507812501],[22.847070312500023,49.08125],[22.705664062500006,49.17119140624999],[22.6494140625,49.53901367187498],[22.706152343750006,49.60620117187497],[23.03632812500004,49.899072265624966],[23.711718750000045,50.377343749999966],[23.97265625,50.410058593749966],[24.089941406250006,50.53046874999998],[24.0947265625,50.617041015625034],[23.9970703125,50.809375],[24.095800781250063,50.87275390625001],[23.664453125000023,51.31005859375],[23.61376953125,51.525390625],[23.706835937500045,51.64130859374998],[23.79169921875001,51.63710937500002],[23.864257812500057,51.62397460937501],[23.951171875,51.58505859374998],[23.978320312500017,51.59130859375003],[24.12685546875008,51.664648437500034],[24.280078125000017,51.77470703124999],[24.361914062500006,51.86752929687498],[25.785742187500006,51.923828125],[26.77343750000003,51.77070312499998],[26.952832031249983,51.754003906250034],[27.074121093750023,51.760839843750006],[27.14199218750008,51.75205078124998],[27.29628906250008,51.59741210937503],[27.689746093750017,51.572412109374994],[27.7,51.47797851562501],[27.85859375000004,51.59238281250006],[28.532031250000017,51.56245117187501],[28.59902343750008,51.54262695312505],[28.647753906250074,51.45654296875],[28.690234375000017,51.43886718750005],[28.73125,51.43339843749999],[28.84951171875005,51.540185546874994],[28.927539062500045,51.56215820312502],[28.97773437500004,51.57177734375003],[29.01308593750005,51.59892578124996],[29.06074218750001,51.625439453124955],[29.102050781250057,51.627539062500034],[29.346484375000017,51.38256835937503],[30.160742187500006,51.477880859375006],[30.449511718750017,51.274316406249994],[30.63251953125004,51.35541992187501],[30.61171875000005,51.406347656250006],[30.602343750000017,51.47124023437499],[30.56074218750004,51.531494140625],[30.533007812500017,51.596337890624966],[30.583886718749994,51.68896484375003],[30.667285156250017,51.81411132812502],[30.755273437499994,51.89516601562502],[30.84570312500003,51.95307617187501],[30.980664062500097,52.04619140624996],[31.217968750000097,52.05024414062498],[31.345996093750074,52.10537109375002],[31.57373046875003,52.108105468749955],[31.763378906250097,52.10107421875003],[32.12226562500004,52.05058593749996],[32.435449218749994,52.307226562500034],[33.735253906249994,52.344775390625045],[34.397851562499994,51.780419921874994],[34.12109375000003,51.67915039062498],[34.21386718750003,51.25537109375006],[35.0640625,51.203417968750045],[35.31191406250005,51.043896484374955],[35.59111328125002,50.36875],[36.1164062500001,50.408544921875006],[36.619433593750074,50.209228515625],[37.42285156249997,50.411474609375006],[38.046875,49.92001953125006],[38.258593750000074,50.05234375],[38.91835937499999,49.82470703125],[39.17480468750003,49.85595703124997],[39.780566406250074,49.57202148437503],[40.080664062500006,49.576855468749955],[40.10878906250005,49.251562500000034],[39.68652343749997,49.007910156250034],[40.00361328125004,48.82207031250002],[39.792871093749994,48.807714843750034],[39.6447265625001,48.591210937499966],[39.8356445312501,48.54277343749996],[39.95791015625005,48.268896484375034],[39.77871093750005,47.88754882812506],[38.90029296875005,47.85512695312502],[38.36884765625004,47.609960937500006],[38.21435546875003,47.091455078124966]]]]},"properties":{"name":"Ukraine","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-57.81059570312499,-30.85859375000001],[-57.872509765625,-30.59101562500001],[-57.831201171874994,-30.495214843750006],[-57.71269531249999,-30.38447265625001],[-57.65087890625,-30.295019531250006],[-57.645751953125,-30.226953125],[-57.60888671875,-30.187792968750003],[-57.55229492187499,-30.26123046875],[-57.21445312499999,-30.28339843750001],[-57.186914062499994,-30.26484375000001],[-57.120507812499994,-30.14443359375001],[-56.83271484375,-30.107226562500003],[-56.4072265625,-30.44746093750001],[-55.998974609375,-30.837207031250003],[-56.018457031249994,-30.99189453125001],[-56.00468749999999,-31.079199218750006],[-55.873681640624994,-31.069628906250003],[-55.6271484375,-30.85810546875001],[-55.60302734375,-30.85078125000001],[-55.55732421875,-30.8759765625],[-55.17353515625,-31.279589843750003],[-55.09116210937499,-31.31396484375],[-55.036035156249994,-31.27900390625001],[-54.587646484375,-31.48515625],[-54.22055664062499,-31.85517578125001],[-53.76171875,-32.05683593750001],[-53.601708984374994,-32.40302734375001],[-53.12558593749999,-32.73671875],[-53.2140625,-32.82109375],[-53.31010742187499,-32.92705078125],[-53.39521484375,-33.010351562500006],[-53.482861328125,-33.06855468750001],[-53.511865234374994,-33.10869140625],[-53.53134765624999,-33.1708984375],[-53.53134765624999,-33.65546875000001],[-53.37060546875,-33.7421875],[-53.419580078124994,-33.77919921875001],[-53.47246093749999,-33.84931640625001],[-53.53452148437499,-34.01748046875001],[-53.742919921875,-34.24951171875],[-53.785302734374994,-34.38037109375],[-54.16855468749999,-34.670703125],[-54.902294921875,-34.93281250000001],[-55.67314453124999,-34.77568359375],[-56.249951171875,-34.90126953125001],[-57.17070312499999,-34.45234375000001],[-57.8291015625,-34.47734375],[-58.40019531249999,-33.91240234375],[-58.363525390625,-33.18232421875001],[-58.08232421874999,-32.893652343750006],[-58.12958984375,-32.75722656250001],[-58.16220703124999,-32.566503906250006],[-58.201171875,-32.4716796875],[-58.123046875,-32.321875],[-58.11972656249999,-32.24892578125001],[-58.164794921875,-32.18486328125],[-58.177001953125,-32.11904296875001],[-58.15634765624999,-32.0515625],[-58.160400390625,-31.98652343750001],[-58.18901367187499,-31.92421875],[-58.16748046875,-31.87265625],[-58.04233398437499,-31.76923828125001],[-58.006982421874994,-31.68496093750001],[-58.053857421874994,-31.494921875],[-58.0333984375,-31.416601562500006],[-57.89335937499999,-31.1953125],[-57.868408203125,-31.10439453125001],[-57.88632812499999,-30.93740234375001],[-57.81059570312499,-30.85859375000001]]]},"properties":{"name":"Uruguay","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-155.58134765624996,19.012011718750017],[-155.88129882812495,19.07050781250001],[-156.04868164062498,19.749951171874983],[-155.82031249999997,20.01416015624997],[-155.83164062499998,20.27583007812501],[-155.198779296875,19.99438476562503],[-154.80419921875,19.524462890625045],[-155.58134765624996,19.012011718750017]]],[[[-156.84960937499997,20.772656249999955],[-156.97338867187497,20.757519531249983],[-157.0505859375,20.912451171875034],[-156.88056640624995,20.904833984375074],[-156.84960937499997,20.772656249999955]]],[[[-156.48681640624994,20.93256835937504],[-156.27753906250004,20.951269531250034],[-155.98984374999998,20.75712890624999],[-156.40878906249998,20.60517578125004],[-156.480078125,20.80122070312501],[-156.69775390625003,20.949072265625034],[-156.58540039062495,21.034326171874994],[-156.48681640624994,20.93256835937504]]],[[[-157.21362304687497,21.215380859375017],[-156.71215820312506,21.155078125000074],[-156.85986328125,21.05634765625004],[-157.29033203124996,21.112597656250017],[-157.21362304687497,21.215380859375017]]],[[[-157.79936523437502,21.456640625000034],[-157.63540039062502,21.30761718749997],[-158.11035156249994,21.318603515625],[-158.27314453125,21.585253906250045],[-157.9625,21.701367187499983],[-157.79936523437502,21.456640625000034]]],[[[-159.37275390625,21.93237304687497],[-159.60883789062495,21.909521484375034],[-159.78916015625003,22.041796875000074],[-159.57919921874998,22.22314453124997],[-159.35205078124997,22.219580078125034],[-159.37275390625,21.93237304687497]]],[[[-81.04418945312503,24.716796875000057],[-81.137353515625,24.710498046875017],[-80.93046875,24.75947265625004],[-81.04418945312503,24.716796875000057]]],[[[-80.3818359375,25.142285156249955],[-80.58056640624997,24.954248046875023],[-80.25708007812497,25.34760742187504],[-80.3818359375,25.142285156249955]]],[[[-97.17070312499996,26.159375],[-97.40209960937494,26.820507812499983],[-97.38598632812494,27.19648437500004],[-97.17070312499996,26.159375]]],[[[-80.18676757812497,27.278417968750034],[-80.17050781250003,27.20478515625004],[-80.43691406249994,27.850537109374955],[-80.18676757812497,27.278417968750034]]],[[[-91.793701171875,29.50073242187497],[-92.00664062499996,29.61030273437501],[-91.875244140625,29.640966796875034],[-91.793701171875,29.50073242187497]]],[[[-84.90791015624998,29.642626953125017],[-85.11674804687499,29.63281249999997],[-84.737158203125,29.732421875],[-84.90791015624998,29.642626953125017]]],[[[-89.22397460937498,30.084082031249977],[-89.34199218749995,30.062841796875006],[-89.18466796874995,30.168652343749983],[-89.22397460937498,30.084082031249977]]],[[[-118.34794921875002,33.3857421875],[-118.29746093750003,33.312109375],[-118.44628906249997,33.317089843749955],[-118.56943359375002,33.46416015624999],[-118.34794921875002,33.3857421875]]],[[[-120.04355468749995,33.918847656249994],[-120.25190429687494,34.01386718749998],[-120.07182617187493,34.026513671874966],[-120.04355468749995,33.918847656249994]]],[[[-119.88237304687497,34.07968749999998],[-119.54926757812497,34.02817382812506],[-119.80957031249997,33.9677734375],[-119.88237304687497,34.07968749999998]]],[[[-75.54414062499995,35.240087890625034],[-75.69008789062502,35.221582031249994],[-75.53637695312497,35.27861328124999],[-75.50351562500003,35.769140625],[-75.46474609374994,35.448632812499966],[-75.54414062499995,35.240087890625034]]],[[[-74.13320312500002,39.680761718750034],[-74.25048828125,39.529394531250006],[-74.10673828124996,39.74643554687498],[-74.13320312500002,39.680761718750034]]],[[[-72.50976562500003,40.98603515625001],[-72.58085937499996,40.92133789062498],[-71.90322265625,41.06069335937505],[-73.19428710937495,40.654199218749994],[-74.01489257812497,40.581201171874966],[-73.87924804687498,40.79165039062502],[-73.573828125,40.91962890624998],[-72.62509765624998,40.99184570312505],[-72.27412109374998,41.15302734375001],[-72.50976562500003,40.98603515625001]]],[[[-69.9779296875,41.26557617187504],[-70.23305664062502,41.28632812500001],[-70.04121093750001,41.3974609375],[-69.9779296875,41.26557617187504]]],[[[-70.50991210937502,41.376318359375034],[-70.82919921874995,41.35898437500006],[-70.61601562499996,41.45722656250001],[-70.50991210937502,41.376318359375034]]],[[[-71.24140625000001,41.49194335937497],[-71.34624023437496,41.469384765624994],[-71.23203124999995,41.654296875],[-71.24140625000001,41.49194335937497]]],[[[-68.18725585937497,44.33247070312501],[-68.41171875000003,44.294335937499966],[-68.29941406249998,44.456494140624955],[-68.18725585937497,44.33247070312501]]],[[[-122.394140625,47.39526367187503],[-122.50991210937497,47.358007812500006],[-122.486474609375,47.48876953125],[-122.394140625,47.39526367187503]]],[[[-122.57275390624999,48.15664062499999],[-122.38315429687499,47.923193359375034],[-122.74150390624999,48.22529296875004],[-122.62861328125,48.38422851562498],[-122.54243164062503,48.29399414062499],[-122.69702148437499,48.228662109374994],[-122.57275390624999,48.15664062499999]]],[[[-94.80346679687497,49.0029296875],[-94.71279296874997,48.863427734374994],[-94.62089843749999,48.74262695312501],[-93.85161132812496,48.607275390625034],[-93.70771484374995,48.52543945312499],[-93.37788085937498,48.61655273437498],[-93.25795898437497,48.62885742187501],[-92.83671875,48.567773437499994],[-92.50058593749995,48.43535156250002],[-92.41459960937493,48.276611328125],[-92.3484375,48.276611328125],[-92.00517578125002,48.301855468750006],[-91.38720703124997,48.05854492187498],[-91.04345703125003,48.19370117187498],[-90.84033203125003,48.20053710937506],[-90.79731445312495,48.13105468750001],[-89.4556640625,47.996240234374994],[-88.37817382812497,48.30307617187498],[-87.74389648437497,48.06054687500003],[-87.20800781249997,47.848486328125006],[-86.67216796874996,47.636425781249955],[-85.65224609375,47.21997070312503],[-85.07006835937497,46.97993164062498],[-84.87597656249994,46.89990234375003],[-84.66577148437503,46.54326171875002],[-84.44047851562496,46.49814453125006],[-84.12319335937497,46.50292968749997],[-83.97778320312503,46.08491210937498],[-83.61596679687503,46.116845703124994],[-83.46948242187503,45.99467773437499],[-83.59267578125,45.81713867187506],[-82.91933593749994,45.51796875000002],[-82.55107421874996,45.34736328125001],[-82.48505859374993,45.08374023437503],[-82.137841796875,43.570898437500034],[-82.19038085937495,43.47407226562501],[-82.54531249999997,42.62470703124998],[-83.10952148437497,42.25068359375001],[-83.141943359375,41.97587890624996],[-82.69003906249995,41.675195312499994],[-82.43906249999998,41.67485351562502],[-81.97416992187496,41.88872070312499],[-81.50732421874997,42.10346679687504],[-81.02822265624997,42.247167968750006],[-80.24755859375,42.36601562499996],[-79.17373046875,42.74853515625],[-78.91508789062496,42.90913085937504],[-78.98076171874993,42.98061523437502],[-79.02617187499996,43.01733398437506],[-79.066064453125,43.10610351562502],[-79.171875,43.466552734375],[-79.00249023437502,43.52714843749999],[-78.845556640625,43.58334960937498],[-78.72041015625001,43.62495117187501],[-78.45825195312497,43.63149414062502],[-77.596533203125,43.62861328124998],[-76.819970703125,43.62880859375002],[-76.18579101562503,44.24223632812502],[-75.81933593749997,44.468017578125],[-75.40126953124997,44.77226562499999],[-74.99614257812496,44.970117187499966],[-74.76245117187494,44.99907226562502],[-74.663232421875,45.00390625000003],[-71.51752929687495,45.00756835937497],[-71.327294921875,45.29008789062496],[-70.86503906249999,45.27070312500001],[-70.296240234375,45.90610351562506],[-70.00771484375002,46.70893554687501],[-69.24287109374998,47.46298828124998],[-69.0501953125,47.426611328125034],[-68.93720703124998,47.21123046875002],[-68.23549804687502,47.34594726562503],[-67.806787109375,47.08281249999999],[-67.80224609374994,45.7275390625],[-67.43266601562496,45.603125],[-67.366943359375,45.17377929687498],[-67.12485351562498,45.16943359375],[-66.98701171874995,44.82768554687502],[-67.191259765625,44.67558593750002],[-67.83906249999998,44.576269531250034],[-68.056640625,44.38432617187502],[-68.15205078124998,44.50200195312499],[-68.45058593749997,44.50761718749999],[-68.53251953124996,44.25864257812498],[-68.81191406249994,44.33935546875],[-68.76269531249994,44.57075195312498],[-69.22607421875003,43.98647460937505],[-69.52075195312503,43.89736328125002],[-69.55668945312496,43.982763671875006],[-69.62392578125,43.88061523437497],[-69.65288085937493,43.99389648437506],[-69.808349609375,43.772314453125034],[-69.965234375,43.855078125],[-70.17880859374998,43.76635742187506],[-70.73310546875001,43.07001953125004],[-70.82905273437493,42.82534179687502],[-70.61293945312497,42.623242187499955],[-71.04619140624993,42.331103515625045],[-70.73828125,42.228857421875006],[-70.42666015625002,41.75727539062501],[-70.00141601562498,41.82617187500003],[-70.24106445312495,42.09121093750002],[-70.10893554687496,42.07832031249998],[-69.97788085937498,41.961279296875006],[-69.94863281249997,41.67714843750005],[-70.65712890625,41.53422851562496],[-70.70112304687498,41.71484375],[-71.1685546875,41.489404296874994],[-71.14873046874996,41.74570312499998],[-71.27109375,41.68125],[-71.39013671875003,41.79531250000005],[-71.52285156249997,41.378955078125045],[-72.92470703125002,41.28515625000003],[-73.98710937499999,40.751367187499994],[-73.87197265625,41.05517578124997],[-73.96992187499995,41.24970703125001],[-73.92719726562495,40.914257812499955],[-74.26420898437496,40.52861328124999],[-73.972265625,40.40034179687498],[-74.079931640625,39.78813476562496],[-74.06459960937497,39.99311523437498],[-74.79448242187499,39.00190429687501],[-74.95429687499995,38.949951171875],[-74.89702148437502,39.14545898437504],[-75.52421874999999,39.49018554687501],[-75.421875,39.78969726562502],[-75.07416992187495,39.98349609375006],[-75.40063476562503,39.83159179687502],[-75.58759765625001,39.64077148437505],[-75.3921875,39.09277343750006],[-75.08867187499999,38.777539062499955],[-75.18710937499995,38.59111328124999],[-75.03876953124993,38.426367187500006],[-75.934375,37.15190429687496],[-75.97504882812498,37.3984375],[-75.65927734374995,37.953955078125034],[-75.850830078125,37.971582031249994],[-75.85869140624999,38.36206054687503],[-76.05122070312495,38.27954101562503],[-76.2646484375,38.436425781249994],[-76.26416015625,38.599951171875006],[-76.016943359375,38.62509765624998],[-76.21298828124998,38.75830078125003],[-76.34116210937498,38.70966796874998],[-76.16816406249998,38.85273437499998],[-76.32958984375,38.95278320312505],[-76.13520507812493,39.082128906250006],[-76.23569335937498,39.19160156250001],[-76.153125,39.315039062500034],[-75.87597656249997,39.3759765625],[-76.003125,39.41083984375001],[-75.87294921874997,39.510888671874966],[-75.95893554687498,39.58505859374998],[-76.2763671875,39.32275390625],[-76.330810546875,39.40390625],[-76.42089843749997,39.225],[-76.57041015624995,39.26933593749996],[-76.42758789062498,39.12602539062499],[-76.55854492187493,39.065234375000045],[-76.39409179687502,38.368994140625034],[-76.67734374999998,38.611962890624966],[-76.66855468749998,38.5375],[-76.34116210937498,38.08701171875006],[-76.86811523437495,38.39028320312502],[-76.88974609375,38.292089843750006],[-77.00117187499995,38.44526367187504],[-77.23251953125,38.40771484375003],[-77.03037109374995,38.88925781249998],[-77.26040039062502,38.6],[-77.27324218749996,38.35175781249998],[-77.04677734375002,38.356689453125],[-76.26425781250003,37.89355468749997],[-76.34414062499997,37.675683593749994],[-76.49248046874999,37.682226562500006],[-77.11108398437497,38.165673828124994],[-76.54946289062494,37.66914062500001],[-76.30556640625,37.57148437500001],[-76.26347656249996,37.35703125],[-76.40097656249998,37.386132812499994],[-76.45390624999993,37.27353515625006],[-76.75771484375002,37.50541992187496],[-76.28330078125,37.05268554687501],[-76.40087890624997,36.991308593750034],[-76.63090820312493,37.22172851562499],[-77.25087890624994,37.329199218750034],[-76.671875,37.172949218750006],[-76.48784179687502,36.89702148437499],[-75.99941406249997,36.91264648437499],[-75.53417968749997,35.81909179687506],[-75.94648437499995,36.65908203125002],[-75.99277343749995,36.47377929687502],[-75.82006835937494,36.11284179687502],[-76.14785156250002,36.279296875],[-76.15,36.14575195312497],[-76.27060546874998,36.18989257812501],[-76.22739257812498,36.11601562499996],[-76.559375,36.015332031249955],[-76.733642578125,36.229150390624994],[-76.726220703125,35.957617187500034],[-76.06977539062501,35.970312500000034],[-76.08359374999998,35.69052734375006],[-75.85390625,35.96015625000001],[-75.75883789062499,35.84326171875],[-75.77392578124997,35.64697265624997],[-76.17382812499997,35.354150390624994],[-76.489501953125,35.397021484375045],[-76.57719726562502,35.53232421874998],[-76.74140624999998,35.431494140625034],[-77.03999023437495,35.527392578125045],[-76.51293945312497,35.270410156249994],[-76.77915039062503,34.990332031250034],[-77.07026367187501,35.154638671875034],[-76.97495117187503,35.025195312500045],[-76.74497070312498,34.94096679687502],[-76.45673828124998,34.989355468750034],[-76.36220703125,34.9365234375],[-76.43979492187498,34.84291992187502],[-77.29624023437503,34.602929687499994],[-77.41225585937497,34.730810546875034],[-77.37978515625,34.526611328125],[-77.750732421875,34.28496093749996],[-77.92783203125,33.93974609374999],[-77.95327148437494,34.16899414062496],[-78.01333007812502,33.91181640624998],[-78.40585937499995,33.91757812499998],[-78.84145507812497,33.72407226562501],[-79.19379882812498,33.24414062500003],[-79.22646484375,33.40488281249998],[-79.27602539062497,33.135400390624966],[-79.80498046874999,32.78740234374996],[-79.93310546874997,32.81005859375006],[-79.94072265625002,32.667138671874966],[-80.36284179687496,32.500732421875],[-80.6341796875,32.51171875000003],[-80.474267578125,32.42275390625002],[-80.579345703125,32.28730468750004],[-80.80253906249999,32.44804687500002],[-80.69423828124997,32.21572265625002],[-81.11328124999997,31.87861328125001],[-81.06611328124995,31.787988281250023],[-81.259375,31.538916015624977],[-81.17543945312494,31.531298828125017],[-81.38095703124998,31.353271484375],[-81.28847656249997,31.263916015625],[-81.441748046875,31.19970703124997],[-81.5162109375,30.801806640625017],[-81.24951171875003,29.793798828125006],[-80.52412109374995,28.48608398437503],[-80.5849609375,28.271582031250034],[-80.456884765625,27.90068359374996],[-80.61000976562494,28.177587890624977],[-80.60693359375003,28.522900390624983],[-80.693505859375,28.34497070312497],[-80.68847656250003,28.578515625000023],[-80.83818359374999,28.757666015625034],[-80.74863281250003,28.381005859375023],[-80.050048828125,26.807714843750063],[-80.1263671875,25.83349609375],[-80.48466796874999,25.229833984375034],[-81.11049804687494,25.138037109374977],[-81.13603515624999,25.309667968750034],[-80.94042968750003,25.264208984375017],[-81.11333007812499,25.367236328125045],[-81.36494140625001,25.83105468750003],[-81.715478515625,25.98315429687503],[-81.95893554687495,26.489941406249983],[-81.82866210937496,26.68706054687499],[-82.03959960937496,26.552050781250017],[-82.01328125,26.96157226562505],[-82.24287109374998,26.848876953125],[-82.44135742187501,27.059667968750034],[-82.71459960937497,27.499609375000063],[-82.40576171874994,27.862890624999977],[-82.67519531249994,27.963769531250023],[-82.61098632812502,27.77724609375005],[-82.74287109374995,27.709375],[-82.84350585937494,27.845996093750017],[-82.65146484375,28.8875],[-83.69438476562502,29.92597656250001],[-84.04423828124996,30.10380859374999],[-84.30966796874995,30.064746093750045],[-84.38281250000003,29.90737304687505],[-85.31894531249995,29.680224609375045],[-85.413818359375,29.76757812499997],[-85.413818359375,29.842480468749955],[-85.31489257812493,29.758105468750017],[-85.35361328125,29.875732421875],[-85.67578125,30.121923828125063],[-85.60351562500003,30.286767578124966],[-85.75581054687495,30.1669921875],[-86.454443359375,30.39912109375004],[-86.12382812499999,30.40581054687499],[-86.25737304687502,30.493017578124977],[-87.201171875,30.339257812499994],[-86.98579101562498,30.43085937500001],[-86.99755859375,30.5703125],[-87.17060546874998,30.538769531249983],[-87.28105468750002,30.339257812499994],[-87.47578124999998,30.294287109375006],[-87.44829101562499,30.394140625],[-87.62226562499998,30.264746093750006],[-88.00595703124998,30.230908203124955],[-87.79028320312503,30.291796875000017],[-88.011328125,30.694189453125006],[-88.13544921874998,30.366601562499994],[-88.90522460937495,30.415136718750006],[-89.32055664062503,30.3453125],[-89.58847656249998,30.165966796874955],[-90.12597656249997,30.369091796874955],[-90.33198242187493,30.277587890625057],[-90.41303710937501,30.140332031249983],[-90.17534179687499,30.02910156249996],[-89.73745117187497,30.171972656250034],[-89.66503906249994,30.117041015625034],[-89.81518554687497,30.007275390624955],[-89.631689453125,29.90380859375003],[-89.400732421875,30.04604492187505],[-89.35444335937501,29.82021484375005],[-89.72089843749995,29.619287109374966],[-89.01572265625,29.202880859375057],[-89.15551757812497,29.01660156250003],[-89.23608398437494,29.081103515625017],[-89.37612304687497,28.981347656250023],[-89.44316406249996,29.194140625000045],[-90.15908203124997,29.537158203125017],[-90.05278320312499,29.336816406249966],[-90.21279296875,29.104931640624983],[-90.37919921874996,29.29511718750001],[-90.75102539062496,29.13085937500003],[-91.29013671875,29.288964843749994],[-91.15078124999994,29.317919921875045],[-91.24882812499993,29.56420898437503],[-91.51420898437499,29.55537109375001],[-91.8931640625,29.836035156249977],[-92.135498046875,29.699462890625057],[-92.08403320312499,29.59282226562499],[-92.26083984374995,29.55683593750004],[-93.17568359375,29.778955078124994],[-93.82646484374999,29.725146484375045],[-93.84145507812502,29.97973632812503],[-93.89047851562495,29.689355468750023],[-94.759619140625,29.384277343750057],[-94.52626953125,29.547949218750006],[-94.77827148437498,29.54785156249997],[-94.74194335937497,29.75],[-95.0228515625,29.70234375000001],[-94.88828125000003,29.37055664062501],[-95.27348632812499,28.96386718750003],[-96.23452148437502,28.488964843749983],[-96.01103515624996,28.631933593749977],[-96.44873046874997,28.594482421875],[-96.64003906249994,28.708789062500017],[-96.42109374999993,28.457324218750045],[-96.67636718749998,28.34130859375003],[-96.77353515624998,28.421630859375057],[-96.839501953125,28.194384765625017],[-97.156494140625,28.144335937500045],[-97.141259765625,28.060742187499983],[-97.034326171875,28.093847656250063],[-97.07309570312498,27.98608398437503],[-97.43149414062498,27.83720703124999],[-97.28872070312494,27.670605468749983],[-97.43911132812502,27.328271484374966],[-97.76845703124997,27.45751953125],[-97.69238281250003,27.287158203125017],[-97.48510742187497,27.237402343750006],[-97.55468749999994,26.96733398437496],[-97.43505859375,26.48583984375003],[-97.14624023437494,25.961474609375045],[-97.37563476562497,25.871826171875],[-99.10776367187498,26.446923828124994],[-99.45654296874999,27.05668945312496],[-99.50532226562497,27.54833984375003],[-100.29604492187495,28.32768554687499],[-100.75458984375001,29.182519531249994],[-101.44038085937503,29.77685546875],[-102.26894531249998,29.871191406250034],[-102.61494140624994,29.75234375],[-102.8919921875,29.216406250000034],[-103.16831054687498,28.998193359374994],[-104.110595703125,29.386132812499994],[-104.50400390624995,29.677685546874955],[-104.97880859374996,30.645947265624955],[-106.14804687499995,31.450927734375],[-106.44541015624996,31.768408203125006],[-108.21181640625002,31.779345703125017],[-108.21445312499993,31.329443359375034],[-111.0419921875,31.32421875000003],[-114.83593749999994,32.50830078125003],[-114.72475585937495,32.71533203125003],[-117.12827148437495,32.533349609374994],[-117.46743164062495,33.295507812500006],[-118.08051757812497,33.72216796874997],[-118.41044921874996,33.74394531249996],[-118.506201171875,34.01738281249999],[-119.14375,34.11201171874998],[-119.60605468749999,34.41801757812499],[-120.48120117187503,34.47163085937498],[-120.64467773437502,34.57998046875002],[-120.65908203124994,35.122412109375034],[-120.85737304687501,35.209667968749955],[-120.899609375,35.42509765624999],[-121.28383789062494,35.67631835937499],[-121.87739257812498,36.33105468749997],[-121.80742187499995,36.851220703124994],[-122.394921875,37.20751953125003],[-122.49921875000001,37.542626953124994],[-122.44560546875002,37.797998046874966],[-122.07050781249998,37.47827148437503],[-122.38544921875001,37.960595703124966],[-122.31425781249999,38.00732421874997],[-121.52534179687503,38.05590820312503],[-122.39335937499995,38.14482421875002],[-122.52133789062499,37.82641601562497],[-122.93198242187498,38.05546875000002],[-122.998779296875,37.98862304687498],[-122.90815429687501,38.19658203124999],[-123.701123046875,38.90727539062502],[-123.83291015624994,39.775488281250034],[-124.35654296875003,40.37109374999997],[-124.07192382812497,41.45952148437502],[-124.53964843750003,42.812890624999966],[-124.14873046874997,43.691748046875034],[-123.92934570312495,45.57695312499996],[-123.989306640625,46.21938476562502],[-123.22060546874998,46.153613281250045],[-123.46484375,46.27109374999998],[-124.07275390624996,46.279443359374994],[-124.04433593750002,46.605078125],[-123.946142578125,46.43256835937501],[-123.88916015625003,46.660009765625006],[-124.11254882812497,46.862695312499994],[-123.84287109375002,46.963183593750045],[-124.11171875,47.03520507812496],[-124.1392578125,46.95468749999998],[-124.376025390625,47.658642578124955],[-124.66308593749996,47.97412109375003],[-124.7099609375,48.38037109375],[-123.97578125,48.16845703125],[-122.97387695312499,48.07329101562496],[-122.77861328125,48.13759765625002],[-122.65664062500002,47.88115234374999],[-122.77841796874996,47.738427734374966],[-122.82138671875,47.79316406250001],[-123.1390625,47.386083984375034],[-122.92216796874993,47.40766601562498],[-123.066796875,47.39965820312506],[-123.04863281249995,47.479345703125034],[-122.53281250000002,47.919726562500045],[-122.67548828124995,47.612353515625045],[-122.57788085937496,47.29316406250001],[-122.76777343750001,47.21835937500006],[-122.82846679687503,47.336572265624994],[-123.02758789062501,47.13891601562503],[-122.70195312500002,47.11088867187502],[-122.35380859374996,47.37158203125],[-122.40180664062497,47.78427734374998],[-122.24199218750002,48.01074218750003],[-122.5169921875,48.15966796874997],[-122.40854492187502,48.29389648437498],[-122.66899414062496,48.465234374999966],[-122.49677734374995,48.50556640625001],[-122.51274414062502,48.66943359375],[-122.56201171875001,48.777978515624994],[-122.68593749999995,48.794287109375034],[-122.72246093750002,48.85302734375003],[-122.78876953125003,48.993017578125034],[-121.40722656249994,48.993017578125034],[-119.70170898437495,48.993017578125034],[-119.27534179687494,48.99306640625005],[-118.84892578124993,48.99306640625005],[-117.99619140625002,48.99306640625005],[-116.71704101562501,48.99306640625005],[-110.74765625,48.99306640625005],[-104.77832031249997,48.993115234374955],[-98.80898437499995,48.99316406249997],[-97.52983398437493,48.99316406249997],[-96.67705078124993,48.99316406249997],[-96.25068359374993,48.99316406249997],[-95.39790039062493,48.99316406249997],[-95.16206054687493,48.991748046875045],[-95.15527343749997,49.36967773437502],[-94.85434570312495,49.304589843749994],[-94.86040039062493,49.258593750000045],[-94.80346679687497,49.0029296875]]],[[[-176.28671874999998,51.79199218750006],[-176.34965820312502,51.733300781249994],[-176.41372070312502,51.840576171875],[-176.28671874999998,51.79199218750006]]],[[[-177.87905273437502,51.64970703125002],[-178.05888671875,51.67260742187497],[-177.98637695312493,51.76425781249998],[-178.16826171874996,51.90302734375001],[-177.644482421875,51.826269531250006],[-177.87905273437502,51.64970703125002]]],[[[-177.14819335937497,51.71674804687498],[-177.67021484375002,51.701074218749994],[-177.11005859375,51.92875976562502],[-177.14819335937497,51.71674804687498]]],[[[-176.593310546875,51.86669921875],[-176.45234374999995,51.735693359375034],[-176.96162109374998,51.60366210937505],[-176.69833984374998,51.986035156249955],[-176.593310546875,51.86669921875]]],[[[179.72773437500015,51.905419921874966],[179.50390625000003,51.97958984374998],[179.6271484375001,52.03041992187502],[179.72773437500015,51.905419921874966]]],[[[177.4154296875,51.88281249999997],[177.25029296875013,51.902929687500006],[177.6696289062501,52.10302734375],[177.4154296875,51.88281249999997]]],[[[-173.5533203125,52.13627929687502],[-173.02290039062504,52.07915039062502],[-173.83579101562498,52.048193359375006],[-173.99248046874993,52.12333984374996],[-173.5533203125,52.13627929687502]]],[[[-172.464794921875,52.27226562500002],[-172.61982421874998,52.27285156250005],[-172.47041015625,52.38803710937506],[-172.31362304687497,52.32958984375006],[-172.464794921875,52.27226562500002]]],[[[-174.67739257812502,52.035009765625006],[-175.29555664062502,52.022167968749955],[-174.30615234375,52.216162109375034],[-174.43554687499997,52.317236328125034],[-174.168896484375,52.42016601562503],[-174.04560546875,52.36723632812499],[-174.12065429687493,52.13520507812498],[-174.67739257812502,52.035009765625006]]],[[[173.72275390625018,52.35957031250004],[173.40234375000009,52.40478515625],[173.77607421875004,52.49511718750003],[173.72275390625018,52.35957031250004]]],[[[172.81181640625002,53.01298828125002],[173.43603515625003,52.85205078125],[172.93515625000012,52.752099609374966],[172.49482421875004,52.93789062499999],[172.81181640625002,53.01298828125002]]],[[[-167.96435546875003,53.345117187499994],[-169.088916015625,52.83203125],[-168.68984375000002,53.227246093749955],[-168.38041992187496,53.28344726562506],[-168.28769531249998,53.500146484374966],[-167.82807617187495,53.50795898437505],[-167.96435546875003,53.345117187499994]]],[[[-166.61533203124998,53.90092773437499],[-166.37231445312494,53.99897460937498],[-166.230859375,53.93261718750006],[-166.54560546875,53.726464843749966],[-166.354541015625,53.67353515625004],[-166.85097656249997,53.45288085937503],[-167.78085937500003,53.30024414062501],[-167.13608398437503,53.526464843750006],[-167.01572265625003,53.69838867187502],[-166.80898437500002,53.64614257812505],[-166.741259765625,53.71293945312496],[-167.10561523437497,53.813378906249994],[-167.03808593749997,53.9421875],[-166.67329101562498,54.00595703124998],[-166.61533203124998,53.90092773437499]]],[[[-165.841552734375,54.070654296875006],[-166.05664062500003,54.054345703124994],[-166.08774414062498,54.16914062500001],[-165.89287109375,54.20698242187498],[-165.69287109375,54.09990234375002],[-165.841552734375,54.070654296875006]]],[[[-165.56113281249998,54.13671874999997],[-165.55063476562498,54.28452148437498],[-165.40786132812502,54.19682617187496],[-165.56113281249998,54.13671874999997]]],[[[-162.29814453124993,54.847021484375006],[-162.43388671875,54.931542968749994],[-162.26459960937504,54.983496093750006],[-162.29814453124993,54.847021484375006]]],[[[-163.476025390625,54.98071289062497],[-163.37895507812496,54.81552734374998],[-163.083251953125,54.66899414062496],[-163.35810546874995,54.73569335937506],[-164.82343749999998,54.41909179687505],[-164.887646484375,54.60781250000002],[-164.47861328124998,54.906835937500006],[-163.80712890624997,55.04907226562503],[-163.476025390625,54.98071289062497]]],[[[-159.51513671875,55.15185546875003],[-159.617724609375,55.05732421875004],[-159.54506835937497,55.22597656250002],[-159.51513671875,55.15185546875003]]],[[[-131.33974609375002,55.079833984375],[-131.32954101562498,54.887744140625045],[-131.592236328125,55.02568359374999],[-131.5654296875,55.26411132812498],[-131.33974609375002,55.079833984375]]],[[[-159.87299804687495,55.128759765625034],[-160.22705078124997,54.92270507812506],[-160.17207031249995,55.123046875],[-159.88735351562497,55.27299804687502],[-159.87299804687495,55.128759765625034]]],[[[-132.86225585937504,54.894433593749966],[-132.61723632812493,54.892431640625006],[-132.70581054687497,54.684179687500034],[-133.42905273437498,55.30380859374998],[-133.097412109375,55.213720703125006],[-132.86225585937504,54.894433593749966]]],[[[-160.329296875,55.337695312500045],[-160.34331054687493,55.25878906250006],[-160.51748046875,55.33383789062506],[-160.329296875,55.337695312500045]]],[[[-160.68491210937498,55.314794921875006],[-160.552783203125,55.38076171875002],[-160.48754882812503,55.18486328124999],[-160.79506835937497,55.14521484375001],[-160.72392578124993,55.404638671875006],[-160.68491210937498,55.314794921875006]]],[[[-133.30507812500002,55.54375],[-133.6501953125,55.26928710937506],[-133.73710937500002,55.49692382812498],[-133.30507812500002,55.54375]]],[[[-155.56601562500003,55.82119140625005],[-155.73735351562493,55.82978515625001],[-155.59394531250004,55.92431640625],[-155.56601562500003,55.82119140625005]]],[[[-130.97915039062502,55.489160156249994],[-131.187890625,55.206298828125],[-131.44755859374996,55.40878906250006],[-131.7625,55.16582031250002],[-131.84609374999997,55.41625976562497],[-131.62495117187504,55.831689453124966],[-131.26923828125004,55.95537109375002],[-130.997802734375,55.727636718750006],[-130.97915039062502,55.489160156249994]]],[[[-133.56611328125,56.33920898437498],[-133.202978515625,56.31982421875003],[-133.096630859375,56.09003906250001],[-132.59760742187504,55.89501953125],[-132.17270507812498,55.48061523437502],[-132.51127929687493,55.59394531250001],[-132.63129882812495,55.47319335937502],[-132.41787109375002,55.48291015625006],[-132.20668945312497,55.22441406249996],[-131.97641601562498,55.208593750000034],[-132.06474609375002,54.713134765625],[-133.11855468750002,55.32763671875003],[-132.95888671875002,55.39555664062502],[-133.0333984375,55.589697265625034],[-133.68017578124994,55.78515625],[-133.24150390624993,55.920800781249994],[-133.371240234375,56.035888671875],[-133.74252929687498,55.96484375],[-133.530859375,56.145654296874966],[-133.56611328125,56.33920898437498]]],[[[-132.77988281249998,56.24726562499998],[-133.03500976562498,56.34091796875006],[-132.90205078124998,56.45375976562505],[-132.62910156249995,56.411914062500045],[-132.77988281249998,56.24726562499998]]],[[[-132.11235351562493,56.109375],[-132.13295898437497,55.94326171875005],[-132.28730468749995,55.92939453124998],[-132.65991210937503,56.07817382812499],[-132.379833984375,56.49877929687497],[-132.06689453125,56.24423828124998],[-132.11235351562493,56.109375]]],[[[-154.208642578125,56.51489257812497],[-154.32221679687504,56.570605468750045],[-154.11040039062496,56.602929687499966],[-154.208642578125,56.51489257812497]]],[[[-169.755224609375,56.63505859375002],[-169.47431640624998,56.59404296875002],[-169.6326171875,56.545703125000045],[-169.755224609375,56.63505859375002]]],[[[-132.746875,56.525683593750045],[-132.94804687500002,56.56723632812498],[-132.842529296875,56.79477539062506],[-132.56796875000003,56.57583007812505],[-132.746875,56.525683593750045]]],[[[-133.98959960937503,56.84497070312497],[-133.73837890625,56.65043945312496],[-133.94970703125,56.12773437499996],[-134.18959960937502,56.07695312500002],[-134.084375,56.456347656250045],[-134.37368164062502,56.838671875000045],[-134.14326171874998,56.93232421875001],[-133.98959960937503,56.84497070312497]]],[[[-133.36621093750006,57.003515625000034],[-132.99624023437497,56.93041992187497],[-132.95917968749998,56.67705078124996],[-133.03491210937494,56.62075195312505],[-133.32895507812498,56.83007812499997],[-133.158154296875,56.495166015625045],[-133.4841796875,56.45175781249998],[-133.979443359375,57.009570312500045],[-133.36621093750006,57.003515625000034]]],[[[-153.007080078125,57.12485351562498],[-153.37460937499998,57.05190429687505],[-153.285205078125,57.18505859375],[-152.90839843750004,57.152441406250006],[-153.007080078125,57.12485351562498]]],[[[-134.96977539062496,57.351416015625034],[-134.62070312499998,56.71831054687502],[-134.68188476562503,56.216162109375034],[-134.98056640625003,56.518945312499994],[-134.88344726562497,56.679052734375034],[-135.33061523437505,56.821875],[-135.19960937499997,57.02734375],[-135.45493164062503,57.24941406250005],[-135.81230468750002,57.00952148437503],[-135.82275390625,57.280419921874966],[-135.448681640625,57.534375],[-134.96977539062496,57.351416015625034]]],[[[-152.89804687499998,57.82392578125004],[-152.42875976562493,57.82568359375003],[-152.48261718749998,57.70332031249998],[-152.21621093749997,57.577001953125006],[-152.41220703125003,57.454785156249955],[-152.94077148437498,57.49809570312499],[-152.67905273437503,57.345117187499994],[-153.274365234375,57.22636718749996],[-153.732568359375,57.052343750000034],[-153.643310546875,56.960742187500045],[-154.02734375,56.77797851562502],[-153.793212890625,56.98950195312503],[-154.24375,57.143017578124955],[-154.33896484374998,56.9208984375],[-154.67319335937498,57.44609375],[-154.11616210937498,57.651220703125006],[-153.6876953125,57.30512695312504],[-153.841552734375,57.86284179687496],[-153.48793945312497,57.73095703125],[-153.21748046875004,57.79575195312506],[-153.16044921875,57.97197265624999],[-152.85039062499993,57.896777343750045],[-152.89804687499998,57.82392578125004]]],[[[-135.73037109375002,58.244238281250034],[-135.61323242187507,57.99184570312505],[-135.346630859375,58.12412109374998],[-134.9546875,58.01533203125004],[-134.97065429687495,57.817236328125006],[-135.33847656250003,57.768652343750034],[-134.97885742187503,57.724365234375],[-134.93149414062498,57.48115234375001],[-135.564208984375,57.66640625],[-135.691943359375,57.41992187500006],[-135.91079101562502,57.44658203124999],[-136.568603515625,57.97216796875003],[-136.32197265625,58.21889648437502],[-136.14375,58.098486328125006],[-136.09438476562502,58.198144531249966],[-135.73037109375002,58.244238281250034]]],[[[-134.68027343749998,58.16166992187499],[-134.24008789062498,58.143994140624955],[-133.82275390624997,57.62866210937503],[-134.29233398437498,58.044726562500074],[-133.91113281250003,57.3525390625],[-134.51601562499997,57.042578125],[-134.48676757812495,57.48203125],[-134.92348632812497,58.354638671874966],[-134.68027343749998,58.16166992187499]]],[[[-152.416943359375,58.360205078125034],[-151.974365234375,58.30986328124999],[-152.068896484375,58.17792968750001],[-152.26835937499993,58.25170898437506],[-152.30922851562502,58.133886718750034],[-152.5982421875,58.16259765625],[-152.92841796875004,57.99370117187499],[-153.38134765625003,58.08720703125002],[-152.976123046875,58.29702148437505],[-152.771875,58.278564453125],[-152.84111328125002,58.41640625000002],[-152.416943359375,58.360205078125034]]],[[[-152.486083984375,58.485009765624966],[-152.63662109375002,58.54169921874998],[-152.3955078125,58.619384765625],[-152.486083984375,58.485009765624966]]],[[[-160.918994140625,58.57709960937498],[-161.13149414062502,58.668212890625],[-160.71513671875005,58.79521484375002],[-160.918994140625,58.57709960937498]]],[[[-148.02177734375,60.06533203125005],[-148.271875,60.05327148437499],[-148.07958984375003,60.151660156250045],[-148.02177734375,60.06533203125005]]],[[[-147.735888671875,59.81323242187503],[-147.76806640625,59.94375],[-147.180859375,60.358251953125034],[-147.01987304687498,60.33222656249998],[-147.735888671875,59.81323242187503]]],[[[-166.13544921875,60.38354492187503],[-165.72968750000004,60.31420898437503],[-165.591796875,59.913134765625045],[-166.14873046874996,59.764111328124955],[-167.13886718749998,60.00854492187503],[-167.43642578125002,60.20664062500006],[-166.836328125,60.21699218750004],[-166.47568359374998,60.382763671874955],[-166.13544921875,60.38354492187503]]],[[[-146.3939453125,60.44965820312501],[-146.10224609374998,60.41118164062499],[-146.61831054687497,60.27368164062503],[-146.70253906249997,60.40854492187498],[-146.3939453125,60.44965820312501]]],[[[-147.658251953125,60.45048828124999],[-147.787841796875,60.17792968749998],[-147.89145507812498,60.299414062500034],[-147.658251953125,60.45048828124999]]],[[[-172.74223632812496,60.45737304687498],[-172.23208007812494,60.299121093750074],[-172.63574218750003,60.328857421875],[-173.04765625000002,60.56831054687501],[-172.74223632812496,60.45737304687498]]],[[[-171.46303710937494,63.640039062499994],[-171.03486328125,63.58549804687499],[-170.29936523437502,63.68061523437501],[-169.55454101562498,63.373486328124955],[-168.71601562500004,63.310595703125045],[-168.76132812500003,63.21376953125002],[-169.364697265625,63.17114257812506],[-169.67636718750003,62.95610351562502],[-169.81860351562494,63.122363281250045],[-170.84838867187494,63.44438476562502],[-171.63183593749997,63.351220703124966],[-171.74638671874993,63.703076171874955],[-171.46303710937494,63.640039062499994]]],[[[-141.00214843750004,68.77416992187506],[-141.00214843750004,67.89755859374998],[-141.00214843750004,66.43652343750006],[-141.00214843750004,65.55991210937498],[-141.00214843750004,64.09887695312506],[-141.00214843750004,63.22226562499998],[-141.00214843750004,61.761279296875045],[-141.00214843750004,60.884667968749994],[-141.00214843750004,60.30024414062504],[-140.76274414062505,60.259130859375006],[-140.525439453125,60.218359375000034],[-140.45283203125004,60.29970703125002],[-139.97329101562497,60.183154296875074],[-139.67631835937505,60.32832031249998],[-139.23476562499997,60.339746093749994],[-139.07924804687497,60.34370117187501],[-139.07924804687497,60.279443359374966],[-139.136962890625,60.17270507812498],[-139.18515624999998,60.083593750000034],[-138.86875,59.94575195312501],[-138.317626953125,59.611132812500074],[-137.59331054687493,59.22626953124998],[-137.52089843750002,58.91538085937498],[-137.43857421875003,58.903125],[-137.2775390625,58.988183593749994],[-137.126220703125,59.04096679687498],[-136.81328125000002,59.150048828124994],[-136.57875976562502,59.15224609375002],[-136.46635742187493,59.459082031250006],[-136.27797851562502,59.48032226562506],[-136.321826171875,59.604833984375034],[-135.70258789062504,59.72875976562506],[-135.36787109374998,59.743310546874994],[-135.051025390625,59.57866210937502],[-134.94375,59.28828125000001],[-134.67724609374997,59.19926757812499],[-134.39306640625,59.009179687499994],[-134.32963867187505,58.93969726562506],[-134.21850585937503,58.849902343750045],[-133.54638671874997,58.50346679687499],[-133.27529296875,58.22285156250004],[-133.00141601562495,57.948974609375],[-132.55048828125,57.499902343749994],[-132.44248046874998,57.40673828125003],[-132.30166015624997,57.27631835937501],[-132.232177734375,57.19853515624999],[-132.27939453124998,57.14536132812498],[-132.33798828124998,57.07944335937506],[-132.15703125,57.048193359375006],[-132.03154296875,57.02656250000004],[-132.062890625,56.95336914062503],[-132.104296875,56.856787109375006],[-131.86616210937495,56.792822265625006],[-131.82426757812496,56.589990234374994],[-131.471875,56.55673828125006],[-130.649072265625,56.26367187500003],[-130.47709960937496,56.230566406250034],[-130.413134765625,56.12250976562498],[-130.09785156249995,56.10927734375002],[-130.01406249999997,55.950537109375006],[-130.2140625,55.02587890625003],[-130.57534179687497,54.769677734374966],[-130.849609375,54.80761718750006],[-131.04785156249997,55.157666015624955],[-130.74819335937502,55.31801757812502],[-131.127685546875,55.96015625000001],[-131.032763671875,56.08808593749998],[-131.78417968749997,55.876562500000034],[-131.98339843749994,55.535009765625006],[-132.15541992187502,55.59956054687501],[-132.20751953124997,55.75341796875],[-131.84384765625003,56.16010742187498],[-131.55136718749998,56.206787109375],[-131.88789062500004,56.24165039062498],[-132.18203125000002,56.42065429687506],[-132.82460937500002,57.05581054687505],[-133.465869140625,57.17216796875002],[-133.64873046874993,57.64228515624998],[-133.11704101562498,57.56621093750002],[-133.535205078125,57.83295898437501],[-133.1943359375,57.87768554687506],[-133.559375,57.924462890624994],[-133.72231445312502,57.84423828125],[-134.03110351562498,58.072167968749966],[-133.87675781249996,58.51816406249998],[-134.20883789062503,58.232958984375045],[-134.77612304687506,58.45385742187503],[-135.36367187500002,59.41943359375],[-135.50234375000002,59.202294921874994],[-135.090234375,58.245849609375],[-135.57177734374994,58.41206054687504],[-135.89755859374998,58.40019531250002],[-136.04311523437497,58.82163085937498],[-135.82636718750004,58.89794921874997],[-136.0166015625,58.87397460937498],[-136.150048828125,59.04809570312503],[-136.22583007812497,58.765478515625006],[-136.98901367187503,59.03447265624999],[-137.05903320312498,58.87373046875001],[-136.613916015625,58.809277343749955],[-136.48374023437503,58.61767578125],[-136.224609375,58.602246093749955],[-136.06147460937495,58.45273437500006],[-136.607421875,58.24399414062498],[-137.54399414062502,58.58120117187502],[-138.51489257812503,59.16591796875005],[-139.77329101562498,59.52729492187504],[-139.51303710937498,59.698095703125006],[-139.5123046875,59.95356445312501],[-139.28671874999998,59.610937500000034],[-139.22080078125003,59.819873046875045],[-138.9880859375,59.83500976562502],[-139.43144531249996,60.012255859375074],[-140.41982421874997,59.71074218750002],[-141.40830078125,59.90278320312498],[-141.408740234375,60.11767578125006],[-141.67016601562497,59.969873046874966],[-142.94565429687503,60.09697265625002],[-144.14721679687494,60.01640625000002],[-144.185498046875,60.150732421875034],[-144.901318359375,60.335156249999955],[-144.69111328125,60.66909179687502],[-145.248291015625,60.38012695312506],[-145.898876953125,60.47817382812505],[-145.67490234374998,60.65112304687503],[-146.57045898437497,60.72915039062502],[-146.39199218749997,60.810839843750045],[-146.63842773437497,60.89731445312498],[-146.59912109374994,61.05351562500002],[-146.284912109375,61.11264648437498],[-147.89111328125,60.889892578125],[-148.00512695312494,60.96855468750002],[-147.75185546874997,61.218945312499955],[-148.34189453125,61.060400390625006],[-148.34443359374998,60.853564453125045],[-148.55615234374994,60.82700195312506],[-148.25673828124997,60.67529296874997],[-148.64013671875,60.48945312500004],[-148.11918945312502,60.57514648437498],[-147.96411132812494,60.48486328124997],[-148.430712890625,59.98911132812498],[-149.2666015625,59.99829101562497],[-149.395263671875,60.10576171875002],[-149.59804687500002,59.77045898437501],[-149.7138671875,59.91958007812502],[-149.80126953124994,59.737939453124966],[-150.00532226562507,59.78442382812503],[-150.19804687499996,59.56655273437505],[-150.60737304687504,59.56337890625002],[-150.934521484375,59.249121093750034],[-151.18276367187502,59.30078124999997],[-151.73818359375002,59.18852539062502],[-151.94951171875,59.26508789062498],[-151.88461914062503,59.386328125],[-151.39960937499995,59.51630859375001],[-151.04648437499998,59.771826171875034],[-151.45009765624997,59.65039062499997],[-151.85322265625,59.78208007812498],[-151.39599609375006,60.27446289062502],[-151.35644531249997,60.72294921874999],[-150.44125976562503,61.02358398437505],[-149.07509765624997,60.87641601562498],[-150.05327148437496,61.17109374999998],[-149.433544921875,61.50078125000002],[-149.97568359374998,61.27934570312502],[-150.61225585937495,61.301123046875006],[-151.59350585937494,60.979638671874966],[-152.54091796874997,60.265429687500045],[-153.025,60.29565429687497],[-152.660107421875,59.99721679687502],[-153.21123046875002,59.84272460937498],[-153.09360351562503,59.70913085937505],[-153.65253906250004,59.64702148437499],[-154.17832031250003,59.155566406250074],[-153.41826171875,58.9599609375],[-153.43759765625003,58.754833984374955],[-154.289013671875,58.30434570312502],[-154.247021484375,58.15942382812497],[-155.006884765625,58.01606445312501],[-155.77797851562497,57.56821289062498],[-156.43588867187498,57.359960937500006],[-156.62900390624998,57.00996093750001],[-158.41440429687498,56.435839843750045],[-158.5521484375,56.31269531249998],[-158.27563476562497,56.19624023437498],[-158.5046875,56.062109375],[-158.59116210937503,56.18452148437498],[-158.78984375000002,55.98691406250006],[-159.52324218749993,55.81000976562498],[-159.65966796875003,55.625927734374955],[-159.77138671874997,55.84111328125002],[-160.49931640625002,55.53730468750004],[-161.38193359374998,55.371289062499955],[-161.44379882812495,55.513281250000034],[-161.202099609375,55.54355468750006],[-161.51694335937503,55.61840820312503],[-162.073974609375,55.13930664062505],[-162.38637695312497,55.05234375],[-162.63037109375003,55.24667968749998],[-162.67436523437505,54.99658203125],[-162.86503906249996,54.954541015624955],[-163.11962890624997,55.06469726562503],[-163.131103515625,54.916552734375045],[-163.33530273437503,54.83916015624999],[-163.27880859374997,55.12182617187503],[-162.906591796875,55.19555664062503],[-161.69731445312502,55.9072265625],[-161.215625,56.02143554687498],[-160.8986328125,55.99365234375],[-161.00537109375,55.88715820312498],[-160.80283203125003,55.754443359375045],[-160.70634765625002,55.870458984375034],[-160.29169921875,55.80507812500005],[-160.53906250000006,56.00629882812501],[-160.30205078125,56.31411132812502],[-158.91801757812502,56.882177734375006],[-158.675146484375,56.79487304687498],[-158.66079101562502,57.03940429687498],[-158.32094726562497,57.29790039062499],[-157.84575195312496,57.52807617187497],[-157.4619140625,57.506201171875034],[-157.697216796875,57.679443359375],[-157.610888671875,58.050830078125074],[-157.19370117187498,58.19418945312506],[-157.48837890624998,58.25371093750002],[-157.52363281249998,58.421337890624955],[-156.97465820312496,58.736328125],[-156.80888671875005,59.13427734375],[-157.14204101562504,58.87763671875001],[-158.19091796875003,58.6142578125],[-158.50317382812494,58.85034179687497],[-158.42563476562498,58.99931640625002],[-158.080517578125,58.97744140625002],[-158.422802734375,59.08984375],[-158.67827148437502,58.92939453124998],[-158.80947265625002,58.973876953125],[-158.78862304687493,58.440966796875045],[-158.95068359375,58.404541015625],[-159.67026367187498,58.9111328125],[-159.92021484375,58.819873046875074],[-160.36313476562498,59.05117187500002],[-161.246826171875,58.799462890624994],[-161.36132812499994,58.66953124999998],[-162.144921875,58.64423828124998],[-161.724365234375,58.794287109375006],[-161.64438476562498,59.109667968750045],[-161.9810546875,59.14614257812502],[-161.82871093749998,59.588623046875],[-162.421337890625,60.28398437500002],[-161.96201171875003,60.695361328125045],[-162.68496093749997,60.268945312499966],[-162.57075195312495,59.98974609375],[-163.68037109374998,59.80151367187503],[-164.14282226562497,59.89677734374999],[-165.02651367187497,60.500634765624994],[-165.35380859375002,60.54121093750001],[-164.80517578125,60.89204101562498],[-164.31850585937497,60.77128906249999],[-164.37236328125002,60.59184570312502],[-163.999560546875,60.76606445312498],[-163.72998046874997,60.589990234374994],[-163.420947265625,60.757421875],[-163.90654296874996,60.85380859375002],[-163.58691406249994,60.902978515624994],[-163.74902343750003,60.9697265625],[-163.99462890624997,60.86469726562501],[-165.11484375,60.93281250000004],[-164.86899414062503,61.11176757812498],[-165.27978515624994,61.169628906249955],[-165.27363281250004,61.27485351562498],[-165.56586914062498,61.10234375000002],[-165.86396484375004,61.33569335937503],[-165.84531249999998,61.536230468750034],[-166.152734375,61.545947265625074],[-166.16811523437502,61.65083007812501],[-165.80893554687503,61.69609375000002],[-166.07880859375,61.803125],[-165.61279296875003,61.86928710937502],[-165.707275390625,62.10043945312506],[-165.19453125,62.47353515625002],[-164.75786132812493,62.496728515624966],[-164.589453125,62.709375],[-164.79267578125,62.623193359374966],[-164.79965820312503,62.918066406250006],[-164.384228515625,63.03046874999998],[-164.40903320312503,63.21503906250001],[-163.94287109375,63.247216796874994],[-163.61630859374998,63.125146484374994],[-163.73784179687496,63.016406250000045],[-163.504345703125,63.105859374999966],[-163.28784179687494,63.046435546875045],[-162.621484375,63.26582031249998],[-162.28281250000003,63.529199218749994],[-161.97397460937498,63.45292968749999],[-161.09970703125003,63.557910156250045],[-160.778564453125,63.818945312500034],[-160.987548828125,64.25126953125002],[-161.49072265625003,64.43378906249998],[-160.93193359374996,64.5791015625],[-160.855908203125,64.755615234375],[-161.13017578125005,64.92543945312505],[-161.759375,64.816259765625],[-162.80703124999997,64.37421875000001],[-163.20390625,64.65200195312502],[-163.14433593750002,64.423828125],[-163.71308593749998,64.588232421875],[-164.978759765625,64.45366210937502],[-166.1427734375,64.58276367187503],[-166.48139648437498,64.72807617187507],[-166.415234375,64.926513671875],[-166.92841796875,65.15708007812498],[-166.15703125,65.28583984375001],[-167.40400390625,65.42211914062497],[-168.08837890624997,65.65776367187502],[-166.39873046875002,66.14443359375005],[-165.62993164062496,66.131201171875],[-165.77617187500002,66.31904296875001],[-164.46049804687502,66.58842773437499],[-163.63823242187502,66.57465820312504],[-163.89394531249997,66.57587890625001],[-164.03374023437493,66.21552734374995],[-163.69536132812502,66.08383789062503],[-161.93369140625003,66.04287109374997],[-161.45541992187503,66.28139648437497],[-161.03427734375003,66.18881835937503],[-161.12031249999995,66.334326171875],[-161.91689453124997,66.41181640624998],[-162.54365234375004,66.80512695312501],[-162.36162109375,66.94731445312502],[-161.591015625,66.45952148437502],[-160.23168945312503,66.420263671875],[-160.360888671875,66.6125],[-160.864013671875,66.67084960937501],[-161.39804687499998,66.55185546875],[-161.85668945312497,66.70034179687497],[-161.719921875,67.02055664062502],[-163.5318359375,67.10258789062502],[-164.1251953125,67.60673828125007],[-166.786279296875,68.35961914062497],[-166.38051757812502,68.425146484375],[-166.20908203125,68.88535156250003],[-165.04394531249994,68.882470703125],[-163.867919921875,69.03666992187505],[-161.88095703125003,70.33173828125001],[-162.073876953125,70.16196289062498],[-160.9962890625,70.30458984375],[-160.11713867187495,70.59121093750002],[-159.86567382812498,70.27885742187499],[-159.81499023437496,70.49707031250003],[-159.38676757812493,70.52451171875003],[-160.081591796875,70.63486328125003],[-159.680908203125,70.786767578125],[-159.31450195312496,70.87851562500003],[-159.251171875,70.7484375],[-157.909375,70.860107421875],[-156.47021484374994,71.40766601562501],[-156.469970703125,71.29155273437507],[-155.57944335937503,71.12109374999997],[-156.14658203125,70.92783203125003],[-155.97353515625002,70.84199218749995],[-155.16684570312498,71.09921875000006],[-154.19521484375002,70.80112304687498],[-153.23291015625,70.93256835937504],[-152.49121093749994,70.88095703125],[-152.23291015625,70.81035156249999],[-152.39921875,70.62045898437503],[-151.76904296875,70.56015625],[-151.94467773437498,70.45209960937501],[-149.26943359374997,70.50078124999999],[-147.70537109375,70.21723632812495],[-145.82314453124997,70.16005859375002],[-145.19736328125003,70.00869140625002],[-143.218310546875,70.11625976562499],[-142.70786132812498,70.03378906249998],[-141.40791015625,69.65336914062502],[-141.00214843750004,69.65078125000002],[-141.00214843750004,68.77416992187506]]]]},"properties":{"name":"United States","childNum":76}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[71.20615234375006,39.892578125],[71.15625,39.88344726562502],[71.06425781250002,39.88491210937505],[71.01171874999997,39.895117187500006],[71.04365234375004,39.97631835937503],[71.04482421875005,39.992529296875034],[70.96064453125004,40.087988281250034],[71.00546875,40.15229492187498],[71.0241210937501,40.14916992187497],[71.08037109375007,40.07988281249999],[71.2287109375001,40.04814453124999],[71.20615234375006,39.892578125]]],[[[70.94677734374997,42.24868164062505],[70.97900390625003,42.26655273437504],[71.03603515625,42.28466796875],[71.12998046875006,42.25],[71.21269531250002,42.20644531250005],[71.23232421875005,42.18627929687503],[71.22851562499997,42.16289062499996],[70.18095703125007,41.571435546874994],[70.734375,41.400537109374994],[70.86044921875006,41.22490234375002],[71.11074218750005,41.152636718750045],[71.29882812500003,41.152490234374994],[71.39306640625003,41.123388671875034],[71.40839843750004,41.13603515625002],[71.42089843750003,41.341894531250034],[71.60625,41.367431640625],[71.66494140625,41.54121093749998],[71.70068359374997,41.454003906249966],[71.75771484375005,41.42802734375002],[71.79248046875003,41.41313476562499],[71.85800781250006,41.311376953125034],[71.8786132812501,41.195019531249955],[71.95849609375003,41.18706054687502],[72.05244140625004,41.16474609375001],[72.1154296875001,41.18657226562502],[72.1642578125001,41.173730468749966],[72.18095703125002,41.11845703124999],[72.18730468750002,41.02592773437499],[72.2130859375001,41.014257812500006],[72.36406250000002,41.04345703125],[72.65830078125,40.86992187499999],[73.13212890625002,40.82851562499999],[72.6041015625,40.52543945312499],[72.40205078125004,40.578076171874955],[72.3892578125,40.427392578124994],[72.13125,40.438623046874966],[71.69248046875,40.15234375],[71.30468749999997,40.28691406249996],[70.990625,40.2548828125],[70.95800781250003,40.238867187500034],[70.653125,40.201171875],[70.37158203125003,40.38413085937506],[70.75107421875006,40.721777343750006],[70.40195312500006,41.03510742187498],[69.71289062500003,40.65698242187503],[69.35722656250002,40.76738281249996],[69.20625,40.566552734374994],[69.27490234374997,40.19809570312498],[68.63066406250007,40.16708984374998],[68.9720703125,40.08994140624998],[68.80468750000003,40.05034179687499],[68.86875,39.90747070312503],[68.63896484375007,39.8388671875],[68.46328125,39.53671874999998],[67.71904296875007,39.62138671875002],[67.426171875,39.46557617187497],[67.3576171875001,39.216699218749994],[67.64833984375005,39.13105468750004],[67.69443359375006,38.99462890625003],[68.13251953125004,38.927636718749966],[68.08720703125002,38.47353515625002],[68.3502929687501,38.211035156250006],[67.81435546875005,37.48701171875004],[67.7980468750001,37.244970703125006],[67.75898437500004,37.172216796875034],[67.75292968749997,37.199804687500034],[67.7,37.227246093749955],[67.60742187499997,37.22250976562506],[67.5172851562501,37.26665039062499],[67.44169921875007,37.25800781250001],[67.3197265625,37.209570312500006],[67.1955078125001,37.23520507812498],[67.06884765624997,37.334814453125006],[66.82773437500006,37.37128906249998],[66.52226562500007,37.34848632812506],[66.51064453125,37.45869140625004],[66.51132812500006,37.59916992187496],[66.52558593750004,37.785742187500034],[66.60625,37.98671875000005],[65.97119140624997,38.244238281250006],[65.612890625,38.23857421875002],[64.3099609375,38.97729492187497],[63.76367187500003,39.16054687499999],[62.48320312500002,39.97563476562496],[61.90283203124997,41.09370117187501],[61.496972656249994,41.276074218749955],[61.2423828125001,41.18920898437503],[60.454980468749994,41.221630859374955],[60.089648437500074,41.39941406250003],[60.07558593750005,41.759667968749966],[60.20078125000006,41.803125],[59.94179687499999,41.97353515625002],[59.98515625000002,42.21171875],[59.35429687500002,42.32329101562496],[58.5890625000001,42.778466796874966],[58.477148437500006,42.66284179687503],[58.15156250000004,42.628076171874966],[58.474414062500074,42.29936523437496],[58.02890625,42.48764648437506],[57.814257812500074,42.18984375000005],[57.290625,42.123779296875],[56.96406250000004,41.856542968750006],[57.11884765625004,41.35029296874998],[57.01796875,41.26347656249996],[55.97744140625005,41.32221679687504],[55.97568359375006,44.99492187499996],[58.555273437500006,45.55537109375001],[61.007910156250006,44.39379882812497],[61.99023437500003,43.492138671874955],[63.20703125000003,43.62797851562502],[64.44316406250007,43.55117187499999],[64.9054687500001,43.714697265625006],[65.49619140625,43.310546875],[65.80302734375002,42.87695312500006],[66.1002929687501,42.99082031249998],[66.00957031250007,42.00488281250003],[66.49863281250006,41.99487304687503],[66.70966796875004,41.17915039062501],[67.9357421875001,41.19658203125002],[68.11308593750007,41.02861328124999],[68.04765625000007,40.80927734374998],[68.29189453125,40.656103515625034],[68.57265625,40.62265624999998],[68.58408203125,40.876269531250045],[69.15361328125002,41.42524414062498],[70.94677734374997,42.24868164062505]]]]},"properties":{"name":"Uzbekistan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[-61.17451171875001,13.158105468749966],[-61.268457031249966,13.287695312499991],[-61.13896484374996,13.358740234374991],[-61.17451171875001,13.158105468749966]]]},"properties":{"name":"St. Vin. and Gren.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-60.99790039062498,8.867333984374966],[-61.069189453125034,8.947314453125003],[-60.91582031249996,9.070312500000014],[-60.86142578124998,8.949609375000037],[-60.99790039062498,8.867333984374966]]],[[[-60.821191406249966,9.138378906250026],[-60.94140625000003,9.105566406250006],[-60.73583984374997,9.203320312500026],[-60.821191406249966,9.138378906250026]]],[[[-63.84936523437494,11.131005859374994],[-63.917626953124994,10.887548828125048],[-64.40234375,10.981591796875023],[-64.21367187500002,11.086132812499997],[-64.0283203125,11.00185546874998],[-63.84936523437494,11.131005859374994]]],[[[-60.742138671874926,5.202050781250037],[-60.71196289062499,5.191552734375023],[-60.671972656250034,5.164355468749989],[-60.603857421875006,4.94936523437498],[-61.00283203125002,4.535253906249991],[-61.28007812500002,4.516894531249974],[-61.82084960937496,4.197021484375],[-62.153125,4.098388671874986],[-62.41064453124994,4.156738281249972],[-62.71210937499998,4.01791992187502],[-62.85698242187502,3.593457031249969],[-63.33867187500002,3.943896484375045],[-64.02148437500003,3.929101562500051],[-64.19248046874995,4.126855468750009],[-64.57636718750001,4.139892578125],[-64.788671875,4.276025390625023],[-64.66899414062496,4.01181640625002],[-64.22109375000002,3.587402343749972],[-64.04658203124998,2.502392578124997],[-63.389257812500006,2.411914062500045],[-63.43251953124994,2.155566406250045],[-64.00849609374995,1.931591796874969],[-64.20502929687493,1.52949218750004],[-65.10375976562497,1.108105468749983],[-65.47338867187497,0.691259765624977],[-65.55605468750002,0.687988281250014],[-65.52299804687493,0.843408203124966],[-65.68144531249999,0.983447265624989],[-66.06005859375003,0.78535156250004],[-66.34711914062498,0.7671875],[-66.87602539062499,1.223046875000037],[-67.21083984375,2.390136718750043],[-67.61870117187496,2.793603515624994],[-67.85908203124998,2.793603515624994],[-67.3111328125,3.41586914062502],[-67.66162109375,3.864257812499986],[-67.85527343750002,4.506884765624989],[-67.82490234374995,5.270458984375026],[-67.47387695312503,5.929980468750003],[-67.48198242187499,6.18027343750002],[-67.85917968749999,6.289892578124963],[-68.47177734375,6.156542968749974],[-69.42714843749997,6.123974609374997],[-70.12919921874999,6.95361328125],[-70.73715820312503,7.090039062499997],[-71.12861328124993,6.98671875],[-72.00664062499993,7.032617187500023],[-72.20771484374995,7.37026367187498],[-72.47197265624996,7.524267578124991],[-72.39033203124995,8.287060546874969],[-72.66542968749994,8.62758789062498],[-72.79638671874997,9.10898437499999],[-73.05839843749999,9.259570312500031],[-73.36621093749997,9.194140625000017],[-73.00654296874998,9.789160156250006],[-72.86933593750001,10.49125976562496],[-72.690087890625,10.835839843749994],[-72.24848632812501,11.196435546875009],[-71.95810546875,11.66640625],[-71.31972656249997,11.861914062500048],[-71.95693359375002,11.569921874999977],[-71.835107421875,11.190332031250009],[-71.6416015625,11.013525390625048],[-71.73090820312498,10.994677734375017],[-71.59433593749995,10.657373046875051],[-72.11284179687499,9.815576171874966],[-71.61953124999994,9.047949218749991],[-71.24140625000001,9.160449218750003],[-71.08583984375002,9.348242187499977],[-71.05268554687501,9.705810546874986],[-71.49423828125,10.533203124999972],[-71.46953124999993,10.964160156250017],[-70.23251953124998,11.372998046874997],[-70.09711914062493,11.519775390624972],[-69.80478515624998,11.47421875000002],[-69.81733398437495,11.672070312499997],[-70.19257812499993,11.62460937500002],[-70.28652343749997,11.886035156249989],[-70.20278320312497,12.098388671874986],[-70.00395507812496,12.177880859375023],[-69.63159179687494,11.479931640625026],[-68.827978515625,11.431738281249977],[-68.39863281249995,11.160986328124977],[-68.29628906249997,10.689355468749994],[-68.13994140624999,10.492724609374989],[-66.24721679687497,10.632226562499994],[-65.85175781249995,10.257763671874997],[-65.12910156249998,10.070068359375043],[-64.85048828125,10.098095703124969],[-64.188330078125,10.457812499999989],[-63.73188476562501,10.503417968750043],[-64.24750976562498,10.54257812500002],[-64.298193359375,10.635156249999966],[-61.879492187500006,10.741015625000031],[-62.379980468750006,10.546875],[-62.91357421875,10.531494140624986],[-62.68583984374996,10.289794921875043],[-62.740576171875006,10.056152343750043],[-62.55034179687499,10.200439453125043],[-62.320410156250034,9.783056640625006],[-62.22114257812498,9.882568359375028],[-62.15336914062493,9.821777343749986],[-62.15532226562499,9.979248046875014],[-62.077099609374926,9.97504882812504],[-61.73593749999998,9.631201171874977],[-61.76591796874996,9.813818359374963],[-61.58886718749994,9.894531249999986],[-60.79248046874997,9.360742187500037],[-61.02314453124998,9.15458984374996],[-61.24726562499998,8.600341796875014],[-61.61870117187499,8.59746093749996],[-61.30400390624999,8.410400390625043],[-60.800976562499926,8.592138671875034],[-60.16748046875,8.616992187500031],[-60.01752929687501,8.549316406250014],[-59.83164062499998,8.305957031250003],[-59.84907226562498,8.248681640624966],[-59.96484375000003,8.191601562499969],[-59.99072265624997,8.16201171874998],[-60.032421874999926,8.053564453125006],[-60.51362304687501,7.813183593749969],[-60.71865234374994,7.535937499999974],[-60.606542968750006,7.320849609375031],[-60.63330078124997,7.211083984374966],[-60.58320312499998,7.156201171874969],[-60.523193359375,7.143701171875009],[-60.464941406250034,7.166552734375045],[-60.39238281249999,7.164550781249986],[-60.34506835937495,7.15],[-60.32548828124996,7.133984374999983],[-60.32207031249996,7.092041015625043],[-60.35209960937496,7.002880859374997],[-60.39501953125,6.945361328125003],[-60.717919921874966,6.768310546875],[-61.14560546874998,6.694531249999983],[-61.20361328124997,6.588378906250028],[-61.181591796874926,6.513378906250026],[-61.15102539062502,6.446533203124986],[-61.15229492187501,6.385107421875006],[-61.12871093749999,6.214306640625026],[-61.15947265624996,6.174414062499977],[-61.22495117187498,6.129199218750003],[-61.303125,6.049511718750026],[-61.39082031250001,5.938769531250017],[-61.376806640625006,5.906982421875028],[-61.167187499999926,5.674218750000037],[-60.95400390625002,5.437402343750023],[-60.742138671874926,5.202050781250037]]]]},"properties":{"name":"Venezuela","childNum":4}},{"geometry":{"type":"Polygon","coordinates":[[[-64.765625,17.794335937499994],[-64.58046874999994,17.750195312499983],[-64.88911132812495,17.701708984375045],[-64.765625,17.794335937499994]]]},"properties":{"name":"U.S. Virgin Is.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[104.06396484375003,10.390820312500011],[104.01845703125,10.029199218749966],[103.84951171875005,10.371093749999986],[104.06396484375003,10.390820312500011]]],[[[107.52128906250007,20.926611328124977],[107.39921875000007,20.903466796874966],[107.55126953125003,21.034033203125006],[107.52128906250007,20.926611328124977]]],[[[107.60273437500004,21.21679687500003],[107.40351562500004,21.093652343749994],[107.47626953125004,21.268945312499994],[107.60273437500004,21.21679687500003]]],[[[107.97265624999997,21.507958984375023],[107.40996093750002,21.284814453125023],[107.35429687500007,21.055175781250057],[107.1647460937501,20.94873046875003],[106.68339843750007,21.000292968750074],[106.75341796875003,20.73505859375004],[106.55078124999997,20.52656250000001],[106.57285156250012,20.392187499999977],[105.98408203125004,19.939062500000034],[105.62177734375004,18.96630859375003],[105.88828125000006,18.502490234375045],[106.49902343749997,17.946435546874994],[106.47890625000005,17.719580078125063],[106.3705078125,17.746875],[107.83378906250002,16.322460937499983],[108.02939453125012,16.331103515625074],[108.82128906249997,15.377929687500028],[109.30332031250012,13.856445312500043],[109.271875,13.279345703124974],[109.42392578125006,12.955957031249994],[109.44492187500006,12.599609375000057],[109.33554687500012,12.751904296874997],[109.21894531250004,12.64580078124996],[109.30468750000003,12.391162109375045],[109.20683593750007,12.415380859375006],[109.1986328125,11.724853515625014],[109.03964843750012,11.592675781249994],[108.98671875,11.336376953124997],[108.09492187500004,10.897265624999989],[108.0013671875,10.720361328125009],[107.26152343750007,10.39838867187504],[107.00664062500002,10.66054687499998],[106.94746093750004,10.400341796874997],[106.72734375000007,10.535644531250028],[106.605859375,10.46494140625002],[106.74121093750003,10.444384765625003],[106.75742187500006,10.295800781250023],[106.46406250000004,10.298291015624997],[106.78525390625012,10.116455078124986],[106.59560546875005,9.859863281250028],[106.1364257812501,10.221679687500014],[106.56435546875005,9.715625],[106.48408203125004,9.559423828125006],[105.83095703125005,10.000732421875028],[106.15859375,9.59414062499998],[106.16835937500005,9.396728515625],[105.50097656249997,9.093212890624983],[105.11435546875006,8.629199218750031],[104.77041015625,8.59765625],[104.89628906250007,8.746630859374974],[104.81855468750004,8.801855468750034],[104.84521484375003,9.606152343750026],[105.08447265625003,9.99570312499999],[104.8019531250001,10.202734374999977],[104.66347656250005,10.169921875000043],[104.42636718750006,10.411230468749991],[104.85058593749997,10.534472656249974],[105.04638671874997,10.701660156250014],[105.04570312500002,10.911376953125014],[105.3146484375001,10.845166015625026],[105.40576171875003,10.95161132812504],[105.75507812500004,10.989990234375043],[105.85332031250007,10.86357421874996],[106.16396484375005,10.794921875],[106.16093750000002,11.037109375000057],[105.85605468750006,11.294287109375048],[105.85146484375005,11.635009765625],[106.0060546875001,11.758007812500011],[106.39921875000007,11.687011718750028],[106.41386718750002,11.9484375],[106.70009765625,11.979296874999974],[107.21210937500004,12.30400390624996],[107.39335937500002,12.260498046874972],[107.50644531250006,12.364550781250031],[107.47539062500002,13.030371093749963],[107.60546874999997,13.437792968750017],[107.3314453125,14.126611328125009],[107.51943359375005,14.705078125],[107.51376953125012,14.817382812500057],[107.52451171875012,14.871826171875043],[107.50468750000007,14.915917968749966],[107.48037109375,14.979882812500037],[107.55527343750006,15.057031250000023],[107.58964843750002,15.118457031250017],[107.63369140625005,15.18984375],[107.653125,15.255224609374991],[107.62167968750006,15.309863281250017],[107.56425781250002,15.391601562499972],[107.45957031250012,15.4658203125],[107.33876953125,15.560498046875011],[107.27939453125006,15.618701171875045],[107.16591796875005,15.802490234375028],[107.1888671875,15.838623046875],[107.36064453125002,15.921728515624977],[107.3919921875,15.951660156250028],[107.39638671875,16.04301757812499],[106.93066406249997,16.353125],[106.8927734375001,16.396533203125074],[106.85107421875003,16.515625],[106.83242187500005,16.526269531250023],[106.79160156250006,16.490332031250006],[106.73955078125007,16.452539062500023],[106.6564453125001,16.49262695312501],[106.54619140625002,16.650732421874977],[106.53369140625003,16.821044921875057],[106.52597656250006,16.876611328124994],[106.50224609375002,16.95410156249997],[106.26953125000003,17.21679687500003],[106.00625,17.415283203125057],[105.69140625000003,17.737841796875045],[105.58847656250012,17.983691406250045],[105.51855468749997,18.077441406250045],[105.45820312500004,18.15429687499997],[105.11455078125002,18.40527343750003],[105.08701171875006,18.496240234374994],[105.14541015625,18.616796875000063],[105.14648437500003,18.650976562500006],[103.89160156250003,19.304980468750017],[103.89638671875,19.339990234375023],[103.93203125,19.366064453125006],[104.0275390625001,19.42045898437499],[104.062890625,19.48256835937505],[104.05156250000007,19.564160156249955],[104.01347656250007,19.64648437500003],[104.03203125000002,19.675146484375006],[104.06279296875007,19.678417968749983],[104.25986328125006,19.685498046874983],[104.5462890625,19.61054687500001],[104.58789062500003,19.61875],[104.74316406250003,19.754736328124977],[104.80175781249997,19.83613281250004],[104.81513671875004,19.90400390625001],[104.9279296875001,20.01811523437499],[104.92919921875003,20.082812500000017],[104.88867187500003,20.169091796875023],[104.84785156250004,20.202441406250045],[104.69873046875003,20.20532226562503],[104.67695312500004,20.224707031249977],[104.66191406250007,20.28901367187501],[104.65644531250004,20.32851562499999],[104.6188476562501,20.37451171875003],[104.49619140625006,20.413671875],[104.39218750000012,20.424755859374955],[104.36777343750012,20.44140624999997],[104.40781250000012,20.48574218750005],[104.47861328125006,20.529589843750017],[104.53271484374997,20.55488281250001],[104.58320312500004,20.646679687499955],[104.34960937499997,20.821093750000074],[104.19531249999997,20.913964843749966],[104.10136718750002,20.94550781250001],[103.63505859375007,20.697070312500017],[103.46357421875004,20.779833984375017],[103.21074218750002,20.840625],[103.10449218749997,20.891650390625045],[102.88378906250003,21.202587890624983],[102.85117187500006,21.26591796874999],[102.94960937500005,21.681347656249983],[102.84521484374997,21.73476562500005],[102.81591796874997,21.807373046875],[102.7982421875,21.797949218750034],[102.77109375000006,21.709667968749983],[102.73857421875002,21.67792968750001],[102.66201171875005,21.67602539062497],[102.58251953125003,21.90429687500003],[102.12744140624997,22.379199218750045],[102.1759765625001,22.414648437500006],[102.2370117187501,22.466015624999983],[102.40644531250004,22.70800781249997],[102.47089843750004,22.75092773437501],[102.98193359374997,22.4482421875],[103.32666015625003,22.769775390625057],[103.49296875000007,22.587988281250034],[103.62021484375006,22.782031250000045],[103.94150390625006,22.540087890625045],[104.14306640624997,22.800146484375006],[104.37177734375004,22.704052734374983],[104.68730468750002,22.822216796874983],[104.86474609375003,23.136376953125023],[105.27539062500003,23.34521484375003],[105.8429687500001,22.922802734374955],[106.14843749999997,22.970068359375006],[106.2790039062501,22.857470703125045],[106.54179687500007,22.908349609375023],[106.78027343749997,22.778906250000034],[106.55039062500006,22.501367187499994],[106.66357421875003,21.97890625000005],[106.97099609375002,21.923925781250034],[107.35117187500012,21.60888671874997],[107.75927734374997,21.655029296875057],[107.97265624999997,21.507958984375023]]]]},"properties":{"name":"Vietnam","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[169.49130859375006,-19.54013671875002],[169.34726562500006,-19.623535156249957],[169.2174804687501,-19.476367187500003],[169.24746093750005,-19.3447265625],[169.49130859375006,-19.54013671875002]]],[[[169.334375,-18.940234375000017],[168.98691406250006,-18.87128906250001],[169.01582031250004,-18.64375],[169.14384765625002,-18.63105468750001],[169.334375,-18.940234375000017]]],[[[168.44580078124997,-17.54218750000004],[168.58496093750003,-17.695898437500006],[168.52460937500004,-17.798046875000026],[168.15820312500003,-17.710546874999963],[168.2731445312501,-17.552246093749957],[168.44580078124997,-17.54218750000004]]],[[[168.44677734375003,-16.778808593749957],[168.18144531250002,-16.804003906250017],[168.13535156250006,-16.636914062499997],[168.44677734375003,-16.778808593749957]]],[[[168.29667968750007,-16.33652343749999],[167.92900390625002,-16.22871093749997],[168.16386718750002,-16.081640625000034],[168.29667968750007,-16.33652343749999]]],[[[167.4125,-16.095898437499997],[167.83662109375004,-16.449707031249957],[167.44931640625012,-16.554980468750003],[167.34921875000006,-16.15449218750004],[167.15146484375006,-16.080468749999966],[167.19951171875002,-15.885058593750031],[167.33574218750007,-15.916699218749997],[167.4125,-16.095898437499997]]],[[[167.9113281250001,-15.435937500000023],[167.67421875,-15.4515625],[168.00253906250012,-15.283203124999986],[167.9113281250001,-15.435937500000023]]],[[[166.74580078125004,-14.826855468750011],[166.81015625000012,-15.15742187500004],[167.0755859375,-14.935644531249977],[167.20078125000012,-15.443066406249969],[167.0939453125001,-15.580859374999974],[166.75830078125003,-15.631152343750003],[166.63105468750004,-15.406054687499974],[166.56738281250003,-14.641796874999969],[166.74580078125004,-14.826855468750011]]],[[[167.58486328125,-14.260937500000011],[167.43027343750012,-14.294921875],[167.41074218750006,-14.19746093750004],[167.50644531250012,-14.142187499999977],[167.58486328125,-14.260937500000011]]],[[[167.48886718750006,-13.907226562499972],[167.3917968750001,-13.788378906250017],[167.48105468750006,-13.709472656250014],[167.48886718750006,-13.907226562499972]]]]},"properties":{"name":"Vanuatu","childNum":10}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-171.4541015625,-14.04648437500002],[-171.9119140625,-14.001660156250026],[-172.04589843750003,-13.857128906249983],[-171.60390624999997,-13.879199218750045],[-171.4541015625,-14.04648437500002]]],[[[-172.33349609375,-13.46523437499999],[-172.17685546874998,-13.68466796875002],[-172.224951171875,-13.804296874999963],[-172.535693359375,-13.791699218749983],[-172.77851562499998,-13.516796875000011],[-172.33349609375,-13.46523437499999]]]]},"properties":{"name":"Samoa","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[53.76318359374997,12.636816406249991],[54.18740234375005,12.664013671875026],[54.511132812499994,12.552783203125017],[54.12949218750006,12.360644531250045],[53.71884765625006,12.318994140624994],[53.31582031250005,12.533154296875011],[53.53496093750002,12.715771484374997],[53.76318359374997,12.636816406249991]]],[[[42.75585937500003,13.70429687500004],[42.689746093750074,13.673632812500017],[42.7941406250001,13.766113281250028],[42.75585937500003,13.70429687500004]]],[[[42.787402343750074,13.971484375000031],[42.69404296875004,14.007910156249991],[42.76210937500005,14.067480468750048],[42.787402343750074,13.971484375000031]]],[[[53.08564453125004,16.648388671874955],[52.327734375,16.293554687500063],[52.17402343750004,15.956835937500017],[52.2174804687501,15.655517578125],[51.3224609375001,15.22626953125004],[49.34990234375002,14.637792968749977],[48.66835937499999,14.050146484374977],[47.9899414062501,14.048095703125],[47.40771484374997,13.661621093750057],[46.78886718750002,13.465576171874986],[45.65732421875006,13.338720703124991],[45.03867187500006,12.815869140624969],[44.617773437500006,12.817236328124977],[44.00585937499997,12.607666015625],[43.634375,12.744482421874991],[43.487597656250074,12.69882812500002],[43.23193359375003,13.267089843750057],[43.2824218750001,13.692529296875037],[43.08906250000004,14.010986328125],[42.93642578125005,14.938574218749963],[42.85566406250004,15.132958984375037],[42.65781250000006,15.232812500000051],[42.79902343750004,15.326269531249991],[42.71718750000005,15.654638671875006],[42.83964843750002,16.032031250000074],[42.79931640624997,16.37177734375001],[43.16503906249997,16.689404296874955],[43.19091796875003,17.359375],[43.41796875000003,17.516259765625023],[43.91699218749997,17.32470703124997],[45.14804687500006,17.427441406249955],[45.5353515625001,17.30205078124999],[46.72763671875006,17.26557617187501],[46.97568359375006,16.953466796875034],[47.14355468749997,16.946679687499966],[47.44179687499999,17.111865234375045],[47.57958984374997,17.448339843750034],[48.17216796875002,18.156933593749983],[49.04199218750003,18.58178710937503],[51.977636718750006,18.996142578125074],[53.08564453125004,16.648388671874955]]]]},"properties":{"name":"Yemen","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[37.85693359375003,-46.94423828124998],[37.5900390625001,-46.90800781250006],[37.78955078124997,-46.8375],[37.85693359375003,-46.94423828124998]]],[[[31.799609375000017,-23.8921875],[31.98583984374997,-24.460644531249983],[31.921679687500017,-25.96875],[31.335156250000097,-25.755566406249997],[31.207324218750074,-25.843359375000034],[31.08808593750004,-25.980664062500026],[30.803320312500006,-26.41347656250001],[30.806738281250006,-26.78525390624999],[30.88330078124997,-26.792382812500023],[30.938085937500006,-26.91582031250003],[31.06337890625005,-27.1123046875],[31.274023437500063,-27.23837890625002],[31.469531250000017,-27.29550781250002],[31.74257812500005,-27.309960937500037],[31.95839843750005,-27.305859375],[31.946093750000017,-27.173632812499974],[31.96718750000005,-26.96064453125001],[31.994726562500006,-26.817480468749977],[32.024804687499994,-26.81113281250002],[32.112890625,-26.83945312500002],[32.19960937499999,-26.833496093749957],[32.35351562499997,-26.861621093750003],[32.7765625000001,-26.850976562499966],[32.88613281250005,-26.849316406249983],[32.53476562500006,-28.19970703125003],[32.285742187500006,-28.62148437499998],[31.335156250000097,-29.378125],[29.97119140625003,-31.322070312500017],[28.449414062500068,-32.62460937499999],[27.077441406250074,-33.52119140625004],[26.429492187500045,-33.75957031250002],[25.80585937500001,-33.737109374999974],[25.574218750000057,-34.03535156249998],[25.00292968750003,-33.97363281250003],[24.8271484375,-34.16894531250003],[24.595507812500074,-34.17451171875],[23.697851562500063,-33.99277343750002],[23.268164062500006,-34.08115234374999],[22.553808593750063,-34.01005859374999],[22.24550781250005,-34.06914062500003],[21.788964843750023,-34.37265624999996],[20.529882812500034,-34.4630859375],[20.020605468750006,-34.785742187500006],[19.298242187500023,-34.61503906249996],[19.330761718750068,-34.49238281250001],[19.098339843750068,-34.350097656249986],[18.831347656250017,-34.36406249999999],[18.75214843750004,-34.08261718750002],[18.50039062499999,-34.10927734375004],[18.46162109375001,-34.346875],[18.35205078124997,-34.1884765625],[18.43300781250005,-33.71728515625003],[17.851074218750057,-32.82744140625002],[17.96523437500005,-32.70859374999996],[18.125,-32.74912109374996],[18.325292968750034,-32.50498046874996],[18.21083984375008,-31.74248046874996],[17.34707031250005,-30.44482421875],[16.95,-29.40341796875002],[16.739453124999983,-29.009375],[16.447558593750045,-28.61757812499998],[16.755761718750023,-28.45214843750003],[16.7875,-28.39472656249997],[16.81015625,-28.264550781249994],[16.841210937500023,-28.21894531250004],[16.875292968750045,-28.12792968749997],[16.93330078125004,-28.06962890624999],[17.05625,-28.03105468750003],[17.1884765625,-28.13251953125001],[17.358691406250017,-28.269433593750023],[17.44794921875001,-28.698144531249966],[18.310839843750017,-28.88623046875],[19.16171875,-28.93876953124996],[19.245800781250068,-28.90166015625003],[19.31269531250004,-28.733300781250023],[19.539843750000017,-28.574609375000023],[19.98046875,-28.45126953125002],[19.98046875,-28.310351562500003],[19.98046875,-24.77675781249998],[20.430664062500057,-25.14707031250002],[20.79316406250001,-25.915625],[20.641406250000017,-26.7421875],[20.739843749999977,-26.84882812499997],[21.694726562500023,-26.840917968749963],[21.738085937500045,-26.806835937500026],[21.788281250000068,-26.710058593750034],[22.01093750000004,-26.635839843750006],[22.090917968749977,-26.580175781250034],[22.217578125000045,-26.38886718749997],[22.47089843750004,-26.219042968750003],[22.548632812500074,-26.178417968749997],[22.59765625000003,-26.13271484375001],[22.878808593750023,-25.457910156250023],[23.148730468750017,-25.288671875],[23.389257812500006,-25.291406250000023],[23.89375,-25.600878906250017],[23.96953124999999,-25.62607421874999],[24.192968750000034,-25.632910156249963],[24.33056640625,-25.742871093749983],[25.21337890625,-25.75625],[25.518164062500006,-25.66279296875001],[25.91210937499997,-24.747460937499966],[26.031835937500034,-24.70244140625003],[26.130859375000057,-24.671484375000034],[26.39716796875004,-24.61357421874996],[26.451757812500063,-24.582714843749983],[26.835058593750063,-24.240820312499963],[27.085546875000034,-23.577929687500003],[27.7685546875,-23.14892578125],[27.812597656250006,-23.108007812500006],[28.210156249999983,-22.693652343749974],[28.83984375000003,-22.480859374999966],[28.94580078125003,-22.39511718749999],[29.013476562500045,-22.27841796875002],[29.129882812500057,-22.21328125],[29.364843750000063,-22.19394531250005],[29.37744140625003,-22.19277343749998],[29.66308593749997,-22.146289062500017],[29.90234375000003,-22.184179687500006],[30.19042968750003,-22.291113281250034],[30.460156250000097,-22.329003906250023],[30.71162109375004,-22.297851562499986],[31.07343750000004,-22.30781249999997],[31.19726562499997,-22.344921874999983],[31.287890625000074,-22.402050781249983],[31.54560546875004,-23.48232421874998],[31.799609375000017,-23.8921875]],[[27.19355468750001,-29.94130859375001],[27.364062500000017,-30.27919921875001],[27.753125,-30.6],[28.05683593750001,-30.63105468750001],[28.128710937500017,-30.52509765625001],[28.39208984375003,-30.14755859375002],[28.646875,-30.1265625],[29.09804687500005,-29.919042968750006],[29.142187500000063,-29.70097656249999],[29.293554687500006,-29.56689453125003],[29.348828125000097,-29.441992187499977],[29.38671874999997,-29.319726562500023],[29.301367187500006,-29.08984375],[28.625781250000017,-28.581738281250054],[28.583398437499994,-28.59414062499999],[28.471875,-28.615820312499977],[28.23261718750004,-28.701269531249977],[28.084375,-28.779980468750026],[27.95986328125008,-28.87333984375003],[27.73554687500004,-28.940039062500034],[27.294531250000063,-29.519335937500017],[27.056933593750074,-29.62558593749999],[27.19355468750001,-29.94130859375001]]]]},"properties":{"name":"South Africa","childNum":2}},{"geometry":{"type":"Polygon","coordinates":[[[33.148046875,-9.603515625],[33.25,-9.759570312500003],[33.35097656250002,-9.862207031250009],[33.33710937500001,-9.954003906250009],[33.3115234375,-10.037988281250009],[33.52890625,-10.234667968750003],[33.53759765625,-10.3515625],[33.5537109375,-10.391308593750011],[33.66152343750002,-10.553125],[33.29277343750002,-10.85234375],[33.37978515625002,-11.157910156250011],[33.26835937500002,-11.40390625],[33.23271484375002,-11.417675781250011],[33.22636718750002,-11.534863281250011],[33.30390625000001,-11.690820312500009],[33.25234375000002,-12.112597656250003],[33.34013671875002,-12.308300781250011],[33.512304687500006,-12.347753906250006],[32.975195312500006,-12.701367187500011],[32.96757812500002,-13.225],[32.67041015625,-13.590429687500006],[32.797460937500006,-13.6884765625],[32.98125,-14.009375],[33.148046875,-13.94091796875],[33.201757812500006,-14.013378906250011],[30.231835937500023,-14.990332031250006],[30.39609375,-15.64306640625],[29.4873046875,-15.69677734375],[28.9130859375,-15.98779296875],[28.760546875000017,-16.53212890625001],[27.932226562500006,-16.89619140625001],[27.020800781250017,-17.95839843750001],[26.779882812500006,-18.04150390625],[26.333398437500023,-17.929296875],[25.995898437500017,-17.969824218750006],[25.2587890625,-17.793554687500006],[25.001757812500017,-17.56855468750001],[24.73291015625,-17.51777343750001],[24.27490234375,-17.481054687500006],[23.380664062500017,-17.640625],[22.193945312500006,-16.628125],[21.979785156250017,-15.95556640625],[21.979394531250023,-14.440527343750006],[21.979296875000017,-14.11962890625],[21.979101562500006,-13.798730468750009],[21.978906250000023,-13.0009765625],[22.209570312500006,-13.0009765625],[23.843164062500023,-13.0009765625],[23.962988281250006,-12.988476562500011],[23.882421875,-12.799023437500011],[23.886523437500017,-12.743261718750006],[23.909375,-12.636132812500009],[23.98388671875,-11.725],[23.96650390625001,-10.871777343750011],[24.36572265625,-11.1298828125],[24.3779296875,-11.417089843750006],[25.28876953125001,-11.21240234375],[25.349414062500017,-11.623046875],[26.025976562500006,-11.89013671875],[26.824023437500017,-11.965234375],[27.1591796875,-11.579199218750006],[27.573828125,-12.22705078125],[28.412890625000017,-12.51806640625],[28.550878906250006,-12.836132812500011],[28.730078125,-12.925488281250011],[29.014257812500006,-13.368847656250011],[29.20185546875001,-13.398339843750009],[29.55419921875,-13.248925781250009],[29.775195312500017,-13.438085937500006],[29.79511718750001,-12.155468750000011],[29.508203125000023,-12.228222656250011],[29.48554687500001,-12.41845703125],[29.064355468750023,-12.348828125000011],[28.482519531250006,-11.812109375],[28.383398437500006,-11.566699218750003],[28.6455078125,-10.550195312500009],[28.60419921875001,-9.678808593750006],[28.400683593750017,-9.224804687500011],[28.869531250000023,-8.785839843750011],[28.89814453125001,-8.485449218750006],[30.75117187500001,-8.193652343750003],[30.830664062500006,-8.385546875],[30.891992187500023,-8.473730468750006],[30.968359375,-8.550976562500011],[31.07636718750001,-8.611914062500006],[31.3505859375,-8.60703125],[31.44921875,-8.65390625],[31.53486328125001,-8.71328125],[31.55625,-8.80546875],[31.673632812500017,-8.908789062500006],[31.91865234375001,-8.9421875],[31.921875,-9.019433593750009],[31.94257812500001,-9.054003906250003],[32.75664062500002,-9.322265625],[32.919921875,-9.407421875000011],[32.99599609375002,-9.622851562500003],[33.148046875,-9.603515625]]]},"properties":{"name":"Zambia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[31.287890625000017,-22.40205078125001],[31.07343750000001,-22.30781250000001],[30.71162109375001,-22.2978515625],[30.46015625000001,-22.32900390625001],[30.1904296875,-22.291113281250006],[29.90234375,-22.184179687500006],[29.6630859375,-22.146289062500003],[29.37744140625,-22.19277343750001],[29.36484375,-22.193945312500006],[29.315234375000017,-22.15771484375],[29.237207031250023,-22.07949218750001],[29.042382812500023,-22.018359375],[29.02558593750001,-21.796875],[28.014062500000023,-21.55419921875],[27.66943359375,-21.064257812500003],[27.679296875,-20.503027343750006],[27.28076171875,-20.47871093750001],[27.17822265625,-20.10097656250001],[26.168066406250006,-19.53828125000001],[25.939355468750023,-18.93867187500001],[25.242285156250006,-17.969042968750003],[25.2587890625,-17.793554687500006],[25.995898437500017,-17.969824218750006],[26.333398437500023,-17.929296875],[26.779882812500006,-18.04150390625],[27.020800781250017,-17.95839843750001],[27.932226562500006,-16.89619140625001],[28.760546875000017,-16.53212890625001],[28.9130859375,-15.98779296875],[29.4873046875,-15.69677734375],[30.39609375,-15.64306640625],[30.437792968750017,-15.995312500000011],[31.236230468750023,-16.02363281250001],[31.939843750000023,-16.428808593750006],[32.94804687500002,-16.71230468750001],[32.87626953125002,-16.88359375],[32.99306640625002,-18.35957031250001],[32.69970703125,-18.94091796875],[32.84980468750001,-19.10439453125001],[32.77763671875002,-19.388769531250006],[32.992773437500006,-19.98486328125],[32.49238281250001,-20.659765625],[32.353613281250006,-21.136523437500003],[32.429785156250006,-21.29707031250001],[31.429492187500017,-22.298828125],[31.287890625000017,-22.40205078125001]]]},"properties":{"name":"Zimbabwe","childNum":1}},{"geometry":{"type":"Polygon","coordinates":[[[74.00809389139292,33.25375789331485],[73.19660141888893,33.898124784580936],[73.13410859949555,34.82510160558277],[72.31128647748268,35.77290936638241],[73.08203125000107,36.43949943991182],[73.08961802927895,36.86435907947333],[73.116796875,36.868554687499994],[74.03886718750002,36.825732421874996],[74.54140625000002,37.02216796875],[74.69218750000002,37.0357421875],[74.8892578125,36.952441406249996],[74.94912109375002,36.968359375],[75.05390625000001,36.987158203125],[75.14521484375001,36.9732421875],[75.3466796875,36.913476562499994],[75.37685546875002,36.883691406249994],[75.42421875000002,36.738232421875],[75.46025390625002,36.725048828125],[75.57373046875,36.759326171874996],[75.66718750000001,36.741992187499996],[75.77216796875001,36.694921875],[75.84023437500002,36.649707031249996],[75.88496093750001,36.600732421874994],[75.93300781250002,36.52158203125],[75.95185546875001,36.45810546875],[75.97441406250002,36.382421875],[75.91230468750001,36.048974609374994],[76.07089843750003,35.9830078125],[76.14785156250002,35.829003906249994],[76.17783203125003,35.810546875],[76.25166015625001,35.8109375],[76.3857421875,35.837158203125],[76.50205078125003,35.878222656249996],[76.55126953125,35.887060546875],[76.5634765625,35.772998046874996],[76.6318359375,35.729394531249994],[76.7275390625,35.678662109375],[76.76689453124999,35.66171875],[76.81279296874999,35.571826171874996],[76.88222656250002,35.4357421875],[76.927734375,35.346630859375],[77.04863281249999,35.109912109374996],[77.00087890625002,34.991992187499996],[76.78291015625001,34.900195312499996],[76.75751953125001,34.877832031249994],[76.7490234375,34.847558593749994],[76.6962890625,34.786914062499996],[76.59443359375001,34.73583984375],[76.45673828125001,34.756103515625],[76.17246093750003,34.667724609375],[76.041015625,34.669921875],[75.93828125000002,34.612548828125],[75.86210937500002,34.56025390625],[75.70917968750001,34.503076171874994],[74.300390625,34.765380859375],[74.17197265625,34.7208984375],[74.05585937500001,34.6806640625],[73.96123046875002,34.653466796874994],[73.79453125,34.378222656249996],[73.80996093750002,34.325341796874994],[73.92460937500002,34.287841796875],[73.97236328125001,34.236621093749996],[73.9794921875,34.191308593749994],[73.90390625,34.1080078125],[73.94990234375001,34.018798828125],[74.24648437500002,33.990185546875],[73.97646484375002,33.7212890625],[74.15,33.506982421874994],[74.00809389139292,33.25375789331485]]]},"properties":{"name":"","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[78.49194250885338,32.53122786149202],[78.10154031239509,32.87658365066666],[77.71342088235082,32.6917648744551],[77.06655516561037,33.301666835953235],[76.62299010270264,33.32014871357439],[76.32728006076415,32.87658365066666],[75.73585997688717,32.78417426256088],[75.62496871116024,32.28516356678968],[75.32221348233018,32.28516356678968],[74.98730468749997,32.46220703124996],[74.78886718750013,32.4578125],[74.6857421875001,32.493798828124994],[74.66328125000004,32.75766601562495],[74.63242187499995,32.770898437500136],[74.58828125000011,32.7532226562501],[74.35458984375012,32.76870117187505],[74.30546875000007,32.81044921875002],[74.30361328125005,32.991796875000034],[73.98984375000006,33.22119140625006],[74.15,33.506982421874994],[73.97646484375016,33.72128906249998],[74.24648437500011,33.99018554687504],[73.9499023437501,34.018798828125],[73.90390625000012,34.10800781250006],[73.97949218750009,34.191308593749966],[73.97236328125004,34.23662109374996],[73.92460937500007,34.287841796875114],[73.80996093750016,34.32534179687511],[73.79453125000006,34.378222656250045],[73.96123046875007,34.653466796874994],[74.05585937500015,34.68066406250003],[74.17197265624995,34.72089843750004],[74.30039062500006,34.76538085937506],[75.70917968750004,34.50307617187508],[75.86210937500002,34.56025390625001],[75.93828125000019,34.612548828125],[76.04101562500014,34.66992187499997],[76.17246093750006,34.66772460937506],[76.4567382812501,34.756103515625114],[76.5944335937501,34.73583984375006],[76.69628906249997,34.78691406249999],[76.74902343750014,34.84755859375008],[76.7575195312501,34.87783203125005],[76.7829101562501,34.90019531249999],[77.00087890625011,34.99199218750002],[77.03066406250011,35.06235351562498],[77.04863281250007,35.109912109375074],[77.42343749999995,35.30258789062506],[77.57158203125002,35.37875976562495],[77.69697265625015,35.443261718750136],[77.79941406250006,35.49589843750002],[78.0426757812501,35.4797851562501],[78.07578125000006,35.13491210937502],[78.15849609375002,34.94648437499998],[78.32695312500007,34.60639648437498],[78.86484375000006,34.39033203125001],[78.93642578125,34.35195312500002],[78.97060546875011,34.22822265625004],[78.72666015625006,34.013378906249955],[78.78378906250006,33.80878906250004],[78.86503906250002,33.43110351562501],[78.94843750000004,33.346533203125006],[79.1125,33.22626953125001],[79.13515625000005,33.17192382812496],[79.10283203125007,33.05253906249996],[79.14550781250003,33.00146484375006],[79.16992187500003,32.497216796874994],[78.91894531249997,32.3582031250001],[78.75351562500012,32.49926757812506],[78.73671875,32.55839843750002],[78.49194250885338,32.53122786149202]]]]},"properties":{"name":"","childNum":1}}]}');var xe=Object.defineProperty,ke=Object.getOwnPropertySymbols,Ce=Object.prototype.hasOwnProperty,$e=Object.prototype.propertyIsEnumerable,Se=(e,t,n)=>t in e?xe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ee=(e,t)=>{for(var n in t||(t={}))Ce.call(t,n)&&Se(e,n,t[n]);if(ke)for(var n of ke(t))$e.call(t,n)&&Se(e,n,t[n]);return e};function Oe({areaStyleColors:n,dataLoaded:o,hasData:i,highlight:r,type:s,option:a,series:l,onChange:c,zoomStart:u,zoomEnd:h,title:d,seriesConfig:p=[],noDataComponent:g=null,zoomColors:m,style:f}){const[y,v]=(0,e.useState)(null),b=(0,e.useRef)(null),w=()=>{y&&y.resize()},x=(0,e.useMemo)((()=>g?g():t().createElement(be,{theme:"info"},"No data to display")),[g]),k={defaultOpts:(0,pe.fromJS)({title:{show:!0,text:d,left:0},color:[],toolbox:{right:"0",orient:"horizontal",itemSize:15,showTitle:!0,feature:null},dataZoom:[{show:!0,start:0,end:100,orient:"horizontal",dataBackground:{lineStyle:{color:(null==m?void 0:m.lineStyle)||"#368493"},areaStyle:{color:(null==m?void 0:m.areaStyle)||"#368493"}},handleStyle:{color:(null==m?void 0:m.handleStyle)||"#368493"},textStyle:{color:(null==m?void 0:m.textStyle)||"#368493"},borderColor:"transparent",fillerColor:(null==m?void 0:m.fillerColor)||"rgba(54, 132, 147, 0.1)"}],legend:{show:!1},tooltip:{trigger:"axis",axisPointer:{type:"cross"}},grid:{left:"1%",right:"1%",bottom:"50px",top:"40px",containLabel:!0},xAxis:{boundaryGap:!1,type:"category",splitLine:{show:!0,lineStyle:{type:"dotted",color:"#F0F0F0"}},axisLine:{show:!1},axisTick:{show:!1},data:[]},yAxis:{min:"dataMin",boundaryGap:!0,axisPointer:{show:!0},splitLine:{lineStyle:{type:"dotted",color:"#F0F0F0"},show:!0},axisLabel:{show:!0},axisLine:{show:!0},axisTick:{show:!1},type:"value"},textStyle:{color:"#5a5a68"},series:[],animationEasing:"elasticOut"}),seriesDefault:(0,pe.fromJS)({data:[],type:"line",areaStyle:{opacity:1,color:n?new de.graphic.LinearGradient(0,0,1,1,n.map(((e,t)=>({offset:t,color:e})))):[]},smooth:!1,symbolSize:7,name:""})},C={defaultOpts:(0,pe.fromJS)({tooltip:{trigger:"axis",formatter:"{b}: {c} ({d}%)"},legend:{orient:"horizontal",x:"left",y:"top",data:[]},color:[],series:[]}),seriesDefault:(0,pe.fromJS)({type:"pie",center:["50%","55%"],radius:["50%","75%"],avoidLabelOverlap:!1,animationType:"scale",animationEasing:"elasticOut",labelLine:{normal:{show:!0,smooth:.2,length:6,length2:6}},data:[]})},$={defaultOpts:(0,pe.fromJS)({series:[]}),seriesDefault:(0,pe.fromJS)({type:"map",data:[]})};(0,e.useEffect)((()=>(window.addEventListener("resize",w),()=>{window.removeEventListener("resize",w)})),[y]),(0,e.useEffect)((()=>{if(null==b?void 0:b.current)return v(de.init(b.current)),()=>{y&&y.dispose()}}),[b.current]);const S=e=>{c&&c(e)};(0,e.useEffect)((()=>{let e;return y&&(e=ge(S,500),y.on("dataZoom",e),y.on("restore",e),y.on("click",e),y.on("mousemove",(e=>{e.data&&y.getZr().setCursorStyle("pointer")}))),()=>{y&&(y.off("dataZoom",e),y.off("restore",e),y.off("click",e))}}),[y,c]);const E=me(y),O=me(a),T=me(s),A=me(l);(0,e.useEffect)((()=>{var e,t,n,o,i,r;!y||(null==(t=null==(e=(0,pe.fromJS)(E))?void 0:e.equals)?void 0:t.call(e,(0,pe.fromJS)(y)))&&(null==(o=null==(n=(0,pe.fromJS)(O))?void 0:n.equals)?void 0:o.call(n,(0,pe.fromJS)(a)))&&T===s&&(null==(r=(i=(0,pe.fromJS)(A)).equals)?void 0:r.call(i,(0,pe.fromJS)(l)))||(y.clear(),y.setOption(((e,t,n)=>{let o={};switch(e){case"pie":o=C.defaultOpts.mergeDeep((0,pe.fromJS)(t)).toJS(),n.forEach((e=>{o.series.push(C.seriesDefault.mergeDeep((0,pe.fromJS)(e)).toJS())}));break;case"geo":o=$.defaultOpts.mergeDeep((0,pe.fromJS)(t)).toJS(),n.forEach((e=>{o.series.push($.seriesDefault.mergeDeep((0,pe.fromJS)(e)).toJS())}));break;default:o=k.defaultOpts.mergeDeep((0,pe.fromJS)(t)).toJS(),Array.isArray(t.yAxis)&&(o.yAxis=t.yAxis),n.forEach(((e,t)=>{const n=Ee(Ee(Ee({},k.seriesDefault.toJS()),p[t]),e);o.series.push(n)}))}return o})(s,a,l)),y.dispatchAction({type:"takeGlobalCursor",key:"dataZoomSelect",dataZoomSelectActive:!0}))}),[y,a,l,s]),(0,e.useEffect)((()=>{y&&r&&(y.dispatchAction({type:"highlight",seriesIndex:r.seriesIndex,dataIndex:r.dataIndex}),y.dispatchAction({type:"showTip",seriesIndex:r.seriesIndex,dataIndex:r.dataIndex}))}),[r]);const _=me(u),L=me(h);(0,e.useEffect)((()=>{!y||-1===u||-1===h||_===u&&L===h||y.dispatchAction({type:"dataZoom",startValue:u,endValue:h})}),[u,h]);const M=()=>!o||!1!==i&&!0!==i||i;return t().createElement("div",{className:"tyk-chart__wrapper"},o?null:t().createElement(ye,null),t().createElement("div",{className:(()=>{const e=["tyk-chart"];return o||e.push("tyk-chart--loading-chart"),M()||e.push("tyk-chart--no-data"),e.join(" ")})(),style:(()=>{const e=f||{};return e.height||(e.height="300px"),e.width||(e.width="100%"),e})(),"data-type":s,ref:b}),M()?null:x)}de.registerMap("world",we),Oe.propTypes={areaStyleColors:r().instanceOf(Array),dataLoaded:r().bool,hasData:r().bool,highlight:r().oneOfType([r().number,r().string,r().instanceOf(Array)]),noDataComponent:r().func,zoomStart:r().number,zoomEnd:r().number,zoomColors:r().instanceOf(Object),option:r().instanceOf(Object),onChange:r().func,style:r().instanceOf(Object),type:r().string,title:r().string,series:r().instanceOf(Array),seriesConfig:r().instanceOf(Object)};const Te=(0,e.memo)(Oe);var Ae=n(745);const _e=(t,n)=>{const o=(0,e.useRef)();(0,e.useEffect)((()=>{o.current=t}),[t]),(0,e.useEffect)((()=>{if(null!==n){const e=setTimeout((function(){o.current()}),n);return()=>clearTimeout(e)}return()=>{}}),[n])};var Le=Object.defineProperty,Me=Object.getOwnPropertySymbols,Re=Object.prototype.hasOwnProperty,Ne=Object.prototype.propertyIsEnumerable,Ie=(e,t,n)=>t in e?Le(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Pe(e){const{children:n,options:o,onClose:i,index:r}=e,s=((e,t)=>{for(var n in t||(t={}))Re.call(t,n)&&Ie(e,n,t[n]);if(Me)for(var n of Me(t))Ne.call(t,n)&&Ie(e,n,t[n]);return e})({theme:"success",delay:3e3},o),a=e=>{i(e),clearTimeout(void 0)};return _e((()=>a(r)),s.delay),t().createElement(be,{className:"tyk-toast__message",theme:s.theme,onClose:()=>a(r)},n)}Pe.propTypes={children:r().oneOfType([r().element,r().node,r().string]),options:r().instanceOf(Object),onClose:r().func,index:r().number};const De=Pe;var Fe=Object.defineProperty,Be=Object.defineProperties,We=Object.getOwnPropertyDescriptors,He=Object.getOwnPropertySymbols,je=Object.prototype.hasOwnProperty,ze=Object.prototype.propertyIsEnumerable,Ve=(e,t,n)=>t in e?Fe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ue=(e,t)=>{for(var n in t||(t={}))je.call(t,n)&&Ve(e,n,t[n]);if(He)for(var n of He(t))ze.call(t,n)&&Ve(e,n,t[n]);return e};function Ge(n){const[o,i]=(0,e.useState)({}),{notify:r}=n,s=(e,t)=>{const n=Math.floor(1e6*Math.random());i((o=>{return i=Ue({},o),Be(i,We({[n]:{message:e,options:t}}));var i}))};(0,e.useEffect)((()=>{r(s)}),[o]);const a=e=>{delete Ue({},o)[e],i((t=>{const n=Ue({},t);return delete n[e],n}))};return t().createElement("div",{className:"tyk-toast__container"},Object.keys(o).map((e=>o[e]?t().createElement(De,{options:o[e].options,onClose:a.bind(null,e),index:e,key:e},o[e].message):null)))}Ge.propTypes={notify:r().func};const Ke=Ge;var qe=Object.defineProperty,Ye=Object.defineProperties,Je=Object.getOwnPropertyDescriptors,Xe=Object.getOwnPropertySymbols,Qe=Object.prototype.hasOwnProperty,Ze=Object.prototype.propertyIsEnumerable,et=(e,t,n)=>t in e?qe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,tt=(e,t)=>{for(var n in t||(t={}))Qe.call(t,n)&&et(e,n,t[n]);if(Xe)for(var n of Xe(t))Ze.call(t,n)&&et(e,n,t[n]);return e},nt=(e,t)=>Ye(e,Je(t));const ot=new class{constructor(){var e;et(this,"symbol"!=typeof(e="bindNotify")?e+"":e,(e=>{this.createNotification=e}));const n=document.createElement("div");n.className="tyk-toast",document.body.appendChild(n),(0,Ae.s)(n).render(t().createElement(Ke,{notify:this.bindNotify}))}notify(e,t){this.createNotification&&this.createNotification(e,t)}danger(e,t){this.notify(e,nt(tt({},t),{theme:"danger"}))}success(e,t){this.notify(e,nt(tt({},t),{theme:"success"}))}warning(e,t){this.notify(e,nt(tt({},t),{theme:"warning"}))}info(e,t){this.notify(e,nt(tt({},t),{theme:"info"}))}};var it=Object.defineProperty,rt=Object.getOwnPropertySymbols,st=Object.prototype.hasOwnProperty,at=Object.prototype.propertyIsEnumerable,lt=(e,t,n)=>t in e?it(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function ct(n){const{display:o,copy:i,children:r,onCopy:s,message:a="copied"}=n,l=(0,e.createRef)(),c=(0,e.useCallback)((()=>{if(s&&s(),!window.navigator.clipboard)return l.current.select(),document.execCommand("copy"),void ot.success(a);window.navigator.clipboard.writeText(i),ot.success(a)}),[s,l]);return t().createElement(t().Fragment,null,t().createElement(n.element,((e,t)=>{for(var n in t||(t={}))st.call(t,n)&<(e,n,t[n]);if(rt)for(var n of rt(t))at.call(t,n)&<(e,n,t[n]);return e})({onClick:c,onKeyUp:c},n),r||o),window.navigator.clipboard?null:t().createElement("textarea",{ref:l,className:"tyk-copy-to-clipboard",name:"copy",value:i},i))}ct.propTypes={message:r().string,onCopy:r().func,copy:r().string.isRequired,display:r().string,children:r().oneOfType([r().element,r().string,r().object,r().node])};const ut=ct;var ht=n(137),dt=n.n(ht);function pt({children:e}){return t().createElement("div",{className:"tyk-modal__footer"},e)}pt.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const gt=pt;function mt({children:e}){return t().createElement("div",{className:"tyk-modal__body"},e)}mt.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const ft=mt;var yt=Object.defineProperty,vt=Object.getOwnPropertySymbols,bt=Object.prototype.hasOwnProperty,wt=Object.prototype.propertyIsEnumerable,xt=(e,t,n)=>t in e?yt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function kt(e){var n=e,{children:o,theme:i="none",disableCloseCommands:r=!1,opened:s=!1,onClose:a=(()=>{}),size:l="md",className:c="",showBackdrop:u=!0}=n,h=((e,t)=>{var n={};for(var o in e)bt.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&vt)for(var o of vt(e))t.indexOf(o)<0&&wt.call(e,o)&&(n[o]=e[o]);return n})(n,["children","theme","disableCloseCommands","opened","onClose","size","className","showBackdrop"]);const d=["tyk-modal",`tyk-modal--theme-${i}`,s&&"opened"].concat(c.split(" ")).filter(Boolean).join(" "),p=["tyk-modal__backdrop",s&&"opened"].filter(Boolean).join(" "),m={success:"check",warning:"warning",danger:"delete"}[i];return t().createElement(t().Fragment,null,dt().createPortal(t().createElement(x.CSSTransition,{in:s,timeout:100,classNames:"appear"},t().createElement("div",((e,t)=>{for(var n in t||(t={}))bt.call(t,n)&&xt(e,n,t[n]);if(vt)for(var n of vt(t))wt.call(t,n)&&xt(e,n,t[n]);return e})({className:d},h),t().createElement("div",{className:`tyk-modal__dialog tyk-modal--${l}`},t().createElement("div",{className:"tyk-modal__content"},"none"!==i&&t().createElement("div",{className:"tyk-modal__theme-header"},t().createElement(g,{family:"tykon",type:m})),o)))),document.querySelector("body")),u&&dt().createPortal(t().createElement(x.CSSTransition,{in:s,timeout:100,classNames:"fade"},t().createElement("button",{className:p,onClick:()=>!r&&a(),onKeyDown:()=>{},type:"button","aria-label":"Close"})),document.querySelector("body")))}kt.Body=ft,kt.Footer=gt,kt.Header=({children:e})=>(console.warn("%cModal.Header%c is deprecated.","font-weight: bold",""),t().createElement("div",{className:"tyk-modal__header"},e)),kt.Header.propTypes={children:r().element},kt.Title=({children:e})=>(console.warn("%cModal.Title%c is deprecated.","font-weight: bold",""),t().createElement("h4",{className:"tyk-modal__title"},e)),kt.Title.propTypes={children:r().element},kt.propTypes={children:r().oneOfType([r().element,r().node,r().string]),className:r().string,theme:r().string,disableCloseCommands:r().bool,opened:r().bool,onClose:r().func,size:r().string,showBackdrop:r().bool};const Ct=kt;function $t(n){const{children:o,title:i,description:r,confirmBtnText:s="Confirm",cancelBtnText:a="Cancel"}=n,[l,c]=(0,e.useState)(!1),[u,h]=(0,e.useState)(null),[d,p]=(0,e.useState)(null),g=()=>{c(!1),h(null),p(null)},m=()=>{d&&d(),g()};return t().createElement(t().Fragment,null,o(((e,t,n)=>(...o)=>{n&&n(...o),c(!0),h((()=>()=>e(...o))),t&&p((()=>()=>t(...o)))})),t().createElement(Ct,{opened:l,onClose:m},t().createElement(Ct.Body,null,t().createElement("h4",null,i),r),t().createElement(Ct.Footer,null,t().createElement(U,{onClick:m,theme:"default"},a),t().createElement(U,{onClick:()=>{u(),g()},theme:"success"},s))))}$t.propTypes={confirmBtnText:r().string,cancelBtnText:r().string,title:r().string,description:r().string,children:r().oneOfType([r().element,r().string,r().object,r().node,r().func])};const St=$t;function Et({children:n,className:o,showShadow:i}){const r=(0,e.useRef)(null),s=(0,e.useCallback)((()=>{const e=r.current;e&&(window.scrollY?e.classList.add("tyk-fixed-wrapper--scrolled"):e.classList.remove("tyk-fixed-wrapper--scrolled"))}),[r.current]),a=(0,e.useCallback)(ge(s,100),[s]);return(0,e.useEffect)((()=>(i&&window.addEventListener("scroll",a),()=>{window.removeEventListener("scroll",a)})),[a,i]),t().createElement("div",{className:`tyk-fixed-wrapper ${o}`,ref:r},n)}Et.propTypes={children:r().oneOfType([r().element,r().node,r().string]),className:r().string,showShadow:r().bool},Et.defaultProps={className:""};const Ot=Et;function Tt({children:n,hasMore:o,initialLoad:i,loadMore:r,pageNumber:s,refChild:a}){const[l,c]=(0,e.useState)(!1),u=(0,e.useRef)(null),h=C(a);(0,e.useEffect)((()=>{i&&"function"==typeof r&&(c(!1),r(s))}),[i]);const d=(0,e.useCallback)((()=>{if(!u.current)return!1;const{clientHeight:e,scrollTop:t}=u.current;return o&&(e+Math.round(t)===h.height||e>=h.height)}),[u,h.height]),p=(0,e.useCallback)((()=>{o&&"function"==typeof r?(r(s+1),c(!0)):c(!1)}),[o,s]),g=me(s),m=(0,e.useCallback)(ge((()=>{d()&&g<=s&&p()}),200),[p,d]);(0,e.useEffect)((()=>{var e;return null==(e=u.current)||e.addEventListener("scroll",m),()=>{var e;return null==(e=u.current)?void 0:e.removeEventListener("scroll",m)}}),[u,m]),(0,e.useEffect)((()=>{g>0&&0===s&&(u.current.scrollTop=0)}),[u,s]);const f=me(h);return(0,e.useEffect)((()=>{h&&f&&h.height!==f.height&&!0===l&&c(!1)}),[l,h.height]),(0,e.useEffect)((()=>{a&&h.heightt in e?_t(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function It({element:n,size:o="auto",forceDisplay:i="auto",displayAxis:r="auto",preferredPosition:s,offset:a=0,className:l,children:c,infiniteScrollerConfig:u},h){const d=(0,e.useRef)(null),p=h||d,g=(0,e.useRef)(null),m=(0,e.useRef)(null);return(0,e.useEffect)((()=>{window.requestAnimationFrame((function e(){(function(){var e;const t="auto"!==i?i:function(){const e=n.current,t=p.current;if(!t)return(null!=s?s:"vertical"===r)?"bottom":"right";const{left:o,top:i}=e.getBoundingClientRect(),a=i,l=window.innerHeight-i-e.offsetHeight,c=o,u=window.innerWidth-o-e.offsetWidth,h=a>t.scrollHeight,d=l>t.scrollHeight,g=c>t.offsetWidth,m=u>t.offsetWidth,f=o+e.offsetWidth/2-t.offsetWidth/2>0,y=i+e.offsetHeight/2-t.scrollHeight/2>0;return"vertical"===r||"auto"===r&&(h||d)&&f?function({preferredPosition:e,hasTopSpace:t,hasBottomSpace:n,topSpace:o,bottomSpace:i}){return"top"===e&&t?"top":"bottom"===e&&n||n||i>o?"bottom":"top"}({preferredPosition:s,hasTopSpace:h,hasBottomSpace:d,topSpace:a,bottomSpace:l}):"horizontal"===r?function({preferredPosition:e,hasLeftSpace:t,hasRightSpace:n,leftSpace:o,rightSpace:i}){return"left"===e&&t?"left":"right"===e&&n||n||i>o?"right":"left"}({preferredPosition:s,hasLeftSpace:g,hasRightSpace:m,leftSpace:c,rightSpace:u}):function({preferredPosition:e,hasTopSpace:t,hasBottomSpace:n,hasLeftSpace:o,hasRightSpace:i,positionedHorizontallyFitsInViewport:r,positionedVerticallyFitsInViewport:s}){return t&&s?"top":n&&s?"bottom":i&&r?"right":o&&r?"left":null!=e?e:"bottom"}({preferredPosition:s,hasTopSpace:h,hasBottomSpace:d,hasLeftSpace:g,hasRightSpace:m,positionedHorizontallyFitsInViewport:y,positionedVerticallyFitsInViewport:f})}(),l=n.current,c=p.current;if(!l||!c)return;const u=l.getBoundingClientRect(),{left:h,top:d}=null!=(e=m.current)?e:{left:0,top:0};if("top"===t&&Object.assign(c.style,function({container:e,targetPosition:t,target:n,size:o,offset:i,vpLeft:r,vpTop:s}){const a={},l={auto:t.left+n.offsetWidth/2-e.offsetWidth/2,matchElement:t.left,matchStart:t.left,matchEnd:t.right-e.offsetWidth}[o],c=t.top-e.offsetHeight-i;return a.left=`${l+r}px`,a.top=`${c+s}px`,"matchElement"===o?a.width=`${n.offsetWidth}px`:"matchEnd"===o?a.maxWidth=t.right-5+"px":"function"==typeof o&&(a.width=`${o(n.offsetWidth)}px`),a.maxHeight=t.top-i+"px",a}({container:c,targetPosition:u,target:l,size:o,offset:a,vpLeft:h,vpTop:d})),"bottom"===t&&Object.assign(c.style,function({targetPosition:e,target:t,container:n,size:o,offset:i,vpLeft:r,vpTop:s}){const a={},l={auto:e.left+t.offsetWidth/2-n.offsetWidth/2,matchElement:e.left,matchStart:e.left,matchEnd:e.right-n.offsetWidth}[o],c=e.bottom+i;return a.left=`${l+r}px`,a.top=`${c+s}px`,"matchElement"===o?a.width=`${t.offsetWidth}px`:"matchEnd"===o?a.maxWidth=e.right-5+"px":"function"==typeof o&&(a.width=`${o(t.offsetWidth)}px`),a.maxHeight=window.innerHeight-e.bottom-i+"px",a}({container:c,targetPosition:u,target:l,size:o,offset:a,vpLeft:h,vpTop:d})),"left"===t&&Object.assign(c.style,function({targetPosition:e,target:t,container:n,size:o,offset:i}){const r={},s=e.left-n.offsetWidth-i,a={auto:e.top+t.offsetHeight/2-n.offsetHeight/2,matchElement:e.top,matchStart:e.top,matchEnd:e.bottom-n.offsetHeight}[o];return r.left=`${s}px`,r.top=`${a}px`,"matchElement"===o?r.height=`${t.offsetHeight}px`:"function"==typeof o&&(r.height=`${o(t.offsetHeight)}px`),r.maxWidth=e.left-i+"px",r}({targetPosition:u,target:l,container:c,size:o,offset:a})),"right"===t&&Object.assign(c.style,function({targetPosition:e,target:t,container:n,size:o,offset:i,vpLeft:r,vpTop:s}){const a={},l=e.left+t.offsetWidth+i,c={auto:e.top+t.offsetHeight/2-n.offsetHeight/2,matchElement:e.top,matchStart:e.top,matchEnd:e.bottom-n.offsetHeight}[o];return a.left="auto"===o?`${l+r}px`:`${l}px`,a.top="auto"===o?`${c+s}px`:`${c}px`,"matchElement"===o?a.height=`${t.offsetHeight}px`:"function"==typeof o&&(a.height=`${o(t.offsetHeight)}px`),a.maxWidth=window.innerWidth-e.left-t.offsetWidth-i+"px",a}({targetPosition:u,target:l,container:c,size:o,offset:a,vpLeft:h,vpTop:d})),null===m.current)if("matchEnd"===o)m.current={left:0,top:0};else{const e=Number(c.style.left.replace("px","")),t=Number(c.style.top.replace("px",""));m.current={left:e<0?5-e:0,top:t<0?5-t:0}}})(),window.requestAnimationFrame(e)}))}),[]),(0,ht.createPortal)(t().createElement("div",{className:`floating-container ${l||""}`,ref:p},t().createElement(At,((e,t)=>{for(var n in t||(t={}))Mt.call(t,n)&&Nt(e,n,t[n]);if(Lt)for(var n of Lt(t))Rt.call(t,n)&&Nt(e,n,t[n]);return e})({refChild:g},u),t().createElement("div",{className:"floating-container__content-wrapper",ref:g},c))),document.querySelector("body"))}It.propTypes={element:r().instanceOf(Object),className:r().string,size:r().oneOfType([r().oneOf(["auto","matchElement","matchStart","matchEnd"]),r().func]),offset:r().number,forceDisplay:r().oneOf(["auto","top","bottom","left","right"]),displayAxis:r().oneOf(["auto","vertical","horizontal"]),preferredPosition:r().oneOf(["top","bottom","left","right"]),infiniteScrollerConfig:r().instanceOf(Object)};const Pt=(0,e.forwardRef)(It);function Dt({children:e}){return t().createElement("div",{className:"tyk-info-note"},t().createElement(be,{theme:"info"},e))}Dt.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const Ft=Dt;function Bt(e){const{className:n,children:o,selected:i}=e;return t().createElement("li",{className:`${n} ${i?"tyk-list__item--selected":""}`},o)}Bt.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,selected:r().bool},Bt.defaultProps={className:""};const Wt=Bt;function Ht(e){const{className:n,children:o,label:i,labelwidth:r,theme:s,style:a}=e;return t().createElement("div",{className:"tyk-list__wrapper "+(r?"tyk-list--with-inline-label":"")},void 0!==i?t().createElement("label",{style:{flexBasis:r||"auto"}},i):null,t().createElement("ul",{className:(()=>{let e=["tyk-list"];return s&&e.push(`tyk-list--${s}`),n&&(e=e.concat(n.split(" "))),e.join(" ")})(),style:(()=>{const e=structuredClone(a);return r&&(e.flexBasis=`calc(100% - ${r} - 20px)`),e})()},o))}Ht.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,label:r().string,labelwidth:r().string,theme:r().string,style:r().instanceOf(Object)},Ht.defaultProps={theme:"default",style:{}},Ht.Item=Wt;const jt=Ht;function zt({align:e="center",children:n,left:o,right:i,title:r,pre:s,subtitle:a,withTabs:l}){const c=a?t().createElement("p",{className:"font-family-medium"},a):null;return t().createElement("section",{className:"tyk-nav-bar "+(l?"tyk-nav-bar__with-tabs":"")},t().createElement("div",{className:`tyk-nav-bar__wrapper tyk-nav-bar--align-${e}`},s&&t().createElement("div",{className:"tyk-nav-bar__pre"},s),r?t().createElement("div",null,t().createElement("h1",null,r),c):c,t().createElement("div",{className:"tyk-nav-bar__container"},o&&t().createElement("div",{className:"tyk-nav-bar__left"},o),i&&t().createElement("div",{className:"tyk-nav-bar__right"},i))),n)}zt.propTypes={align:r().string,children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),title:r().string,subtitle:r().string,pre:r().oneOfType([r().element,r().node]),left:r().oneOfType([r().element,r().node]),right:r().oneOfType([r().element,r().node]),withTabs:r().bool};const Vt=zt;function Ut({children:e}){return t().createElement("li",{className:"tyk-navigation-item"},e)}Ut.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string])};const Gt=Ut;function Kt({children:e}){return t().createElement("ul",{className:"tyk-navigation"},e)}Kt.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string])},Kt.Item=Gt;const qt=Kt,Yt=(0,e.createContext)();var Jt=Object.defineProperty,Xt=Object.defineProperties,Qt=Object.getOwnPropertyDescriptors,Zt=Object.getOwnPropertySymbols,en=Object.prototype.hasOwnProperty,tn=Object.prototype.propertyIsEnumerable,nn=(e,t,n)=>t in e?Jt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,on=(e,t)=>{for(var n in t||(t={}))en.call(t,n)&&nn(e,n,t[n]);if(Zt)for(var n of Zt(t))tn.call(t,n)&&nn(e,n,t[n]);return e},rn=(e,t)=>Xt(e,Qt(t));function sn(n){var o=n,{children:i,noPadding:r,className:s}=o,a=((e,t)=>{var n={};for(var o in e)en.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Zt)for(var o of Zt(e))t.indexOf(o)<0&&tn.call(e,o)&&(n[o]=e[o]);return n})(o,["children","noPadding","className"]);const l=(0,e.useCallback)((()=>["tyk-panel__body",s,r&&"no-padding"].filter(Boolean).join(" ")),[s,r]);return t().createElement(Yt.Consumer,null,(e=>e.collapsable?t().createElement(R,rn(on({},a),{collapsed:e.collapsed,className:l()}),i):t().createElement("div",rn(on({},a),{className:l()}),i)))}sn.propTypes={children:r().oneOfType([r().element,r().node,r().string]),noPadding:r().bool,className:r().string};const an=sn;function ln(e){const{children:n}=e;return t().createElement("div",{className:"tyk-panel__footer"},n)}ln.propTypes={children:r().oneOfType([r().element,r().node,r().string])};const cn=ln;class un extends e.Component{getCssClasses(e){const{className:t}=this.props;let n=["tyk-panel__header"];return e.collapsable&&n.push("collapsable"),t&&(n=n.concat(t.split(" "))),n.join(" ")}render(){const{children:e}=this.props;return t().createElement(Yt.Consumer,null,(n=>{const o="blank"===n.theme?"h3":"div",i=n.collapsed?"chevron-down":"chevron-up";return t().createElement(o,{className:this.getCssClasses(n),onClick:n.collapsable?n.onToggle:void 0},e,n.collapsable?t().createElement("div",{className:`collapsable__arrow-${n.collapsibleIconPosition}`},t().createElement(g,{type:i})):null)}))}}un.propTypes={children:r().oneOfType([r().element,r().node,r().string]).isRequired,className:r().string};const hn=un;function dn(n){const{children:o,className:i,collapsed:r,collapsable:s,theme:a,onToggleCollapse:l,collapsibleIconPosition:c="right"}=n,[u,h]=(0,e.useState)(r||!1);(0,e.useEffect)((()=>{r!==u&&h(r)}),[r]);const d=(0,e.useCallback)((()=>{h(!u),l&&l(!u)}),[u,l]),p=(0,e.useMemo)((()=>({collapsable:s,collapsed:u,onToggle:d,theme:a,collapsibleIconPosition:c})),[s,u,c,a,d]);return t().createElement("div",{className:(()=>{let e=["tyk-panel"];const t=`tyk-panel--${a||"default"}`,n=`tyk-panel__icon-collapse--${c}`;return e.push(t),e.push(n),i&&(e=e.concat(i.split(" "))),u&&e.push("tyk-panel--collapsed"),e.join(" ")})()},t().createElement(Yt.Provider,{value:p},"function"==typeof o?o({toggleCollapse:d}):o))}dn.propTypes={children:r().oneOfType([r().func,r().element,r().node,r().string]),className:r().string,collapsable:r().bool,collapsibleIconPosition:r().string,collapsed:r().bool,theme:r().string,onToggleCollapse:r().func},dn.Body=an,dn.Footer=cn,dn.Header=hn;const pn=dn;function gn(e){const{children:n,className:o,theme:i}=e;return t().createElement("div",{className:(()=>{let e=["tyk-pill",...i.split(" ").map((e=>`tyk-pill--${e}`))];return o&&(e=e.concat(o)),e.join(" ")})()},n)}gn.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,theme:r().string},gn.defaultProps={theme:"default"};const mn=gn;var fn,yn,vn,bn,wn,xn,kn,Cn,$n=(e,t,n)=>{if(!t.has(e))throw TypeError("Cannot "+n)},Sn=(e,t,n)=>($n(e,t,"read from private field"),n?n.call(e):t.get(e)),En=(e,t,n)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,n)},On=(e,t,n,o)=>($n(e,t,"write to private field"),o?o.call(e,n):t.set(e,n),n);class Tn{constructor(){En(this,fn,null),En(this,yn,null),En(this,vn,null),En(this,bn,null),En(this,wn,[]),En(this,xn,[]),En(this,kn,[]),En(this,Cn,!1)}on(e,t){let n=null;"onHeightChange"===e?n=Sn(this,wn):"onDragStart"===e?n=Sn(this,xn):"onDragEnd"===e&&(n=Sn(this,kn)),n&&this.addListener(n,t)}off(e,t){let n=null;"onHeightChange"===e?n=Sn(this,wn):"onDragStart"===e?n=Sn(this,xn):"onDragEnd"===e&&(n=Sn(this,kn)),n&&this.removeListener(n,t)}setRefs(e,t,n){(Sn(this,yn)||Sn(this,vn)||Sn(this,bn))&&this.unbindEvents(),On(this,bn,e),On(this,yn,t),On(this,vn,n),On(this,fn,null),this.bindEvents()}bindEvents(){this.ensureRefs("bindEvents"),Sn(this,vn).addEventListener("mousedown",this.onMouseDown.bind(this)),document.addEventListener("mousemove",this.onMouseMove.bind(this)),document.addEventListener("mouseup",this.onMouseUp.bind(this))}getHeight(){return this.ensureRefs("getHeight"),Sn(this,yn).getBoundingClientRect().height}onMouseDown(e){this.ensureRefs("onMouseDown"),On(this,fn,{mouseDown:!0,initialRect:Sn(this,yn).getBoundingClientRect(),initialEvent:e})}onMouseMove(e){if(this.ensureRefs("onMouseMove"),!Sn(this,fn))return;if(!this.isPrimaryMouseButtonDown(e))return void this.onMouseUp();Sn(this,Cn)||(On(this,Cn,!0),this.onDragStart.bind(this)());const t=Sn(this,fn).initialEvent.y-e.y,n=Math.ceil(Sn(this,fn).initialRect.height+t);this.setHeight(`${n}px`,"mousemove")}notifyListeners(e,t){e&&Array.isArray(e)&&e.length&&e.forEach((e=>{"function"==typeof e&&e(t)}))}addListener(e,t){e&&Array.isArray(e)&&"function"==typeof t&&e.push(t)}removeListener(e,t){if(e&&Array.isArray(e)&&"function"==typeof t&&e.length){const n=e.indexOf(t);n>-1&&e.splice(n,1)}}onDragEnd(){Sn(this,Cn)&&this.notifyListeners(Sn(this,kn),this.getHeight())}onDragStart(){this.notifyListeners(Sn(this,xn),this.getHeight())}isPrimaryMouseButtonDown(e){return 1===(void 0!==e.buttons?e.buttons:e.which)}onMouseUp(){On(this,fn,null),this.onDragEnd.bind(this)(),On(this,Cn,!1)}setHeight(e){let t=e;this.ensureRefs("setHeight"),"number"==typeof t&&(t+="px"),Sn(this,yn).style.height=t,this.notifyListeners(Sn(this,wn),this.getHeight())}ensureRefs(e){if(!Sn(this,yn)||!Sn(this,vn)||!Sn(this,bn))throw new Error(`${e}: Wrapper, panel, and gutter elements are required. Use setRefs method first.`)}isHidden(){return this.ensureRefs("isHidden"),"hidden"===Sn(this,bn).style.visibility}hide(){this.ensureRefs("hide"),Sn(this,bn).style.visibility="hidden"}show(){this.ensureRefs("show"),Sn(this,bn).style.visibility="visible"}unbindEvents(){On(this,wn,[]),On(this,xn,[]),On(this,kn,[]),Sn(this,vn).removeEventListener("mousedown",this.onMouseDown.bind(this)),document.removeEventListener("mousemove",this.onMouseMove.bind(this)),document.removeEventListener("mouseup",this.onMouseUp.bind(this))}deinit(){this.unbindEvents()}}function An({children:e}){return t().createElement(t().Fragment,null,e)}function _n({children:e}){return t().createElement(t().Fragment,null,e)}fn=new WeakMap,yn=new WeakMap,vn=new WeakMap,bn=new WeakMap,wn=new WeakMap,xn=new WeakMap,kn=new WeakMap,Cn=new WeakMap,An.propTypes={children:r().instanceOf({})},_n.propTypes={children:r().instanceOf({})};const Ln=(...e)=>e.map((e=>(e||"").trim())).filter(Boolean).join(" ");function Mn({children:n,height:o,onHeightChange:i=null,onDragStart:r=null,onDragEnd:s=null,style:a=null,parentSelector:l=null,contentStyle:c,contentClassName:u,gutterClassName:h,wrapperClassName:d},p){const g=(0,e.useRef)(null),m=(0,e.useRef)(null),f=(0,e.useRef)(null),y=(0,e.useRef)(new Tn).current;(0,e.useEffect)((()=>{if(g.current&&m.current&&f.current&&y)return y.setRefs(f.current,g.current,m.current),y.on("onHeightChange",i),y.on("onDragStart",r),y.on("onDragEnd",s),y.setHeight(o,"initialize"),()=>{y.unbindEvents()}}),[]),(0,e.useImperativeHandle)(p,(()=>{const e=e=>e.bind(y);return{getHeight:e(y.getHeight),setHeight:e(y.setHeight),hide:e(y.hide),show:e(y.show),isHidden:e(y.isHidden),deinit:e(y.deinit),on:e(y.on),off:e(y.off)}}),[]);let v=null,b=null;const w=[];t().Children.forEach(n,(e=>{e&&t().isValidElement(e)&&(e.type===An?v=e:e.type===_n?b=e:w.push(e))}));const x=t().createElement("div",{className:Ln("tyk-ui-reveal-wrapper",d||"cem"),ref:f,style:a},t().createElement("div",{className:"tyk-ui-reveal-wrapper__hole"}),t().createElement("div",{ref:m,className:Ln("tyk-ui-reveal-wrapper__gutter",h)},t().createElement("div",{className:"tyk-ui-reveal-wrapper__gutter__headerleft"},v),t().createElement("div",{className:"tyk-ui-reveal-wrapper__gutter__logo"}," "),t().createElement("div",{className:"tyk-ui-reveal-wrapper__gutter__headerright"},b)),t().createElement("div",{ref:g,className:Ln("tyk-ui-reveal-wrapper__panel",u),style:c},w));if(l)return(0,ht.createPortal)(x,document.querySelector(l))}Mn.propTypes={children:r().instanceOf({}),height:r().string,onHeightChange:r().func,onDragStart:r().func,onDragEnd:r().func,parentSelector:r().string,style:r().instanceOf({}),contentStyle:r().instanceOf({}),contentClassName:r().string,gutterClassName:r().string,wrapperClassName:r().string};const Rn=(0,e.forwardRef)(Mn);Rn.HeaderLeft=An,Rn.HeaderRight=_n;const Nn=Rn,In=(0,e.createContext)(),Pn=(0,e.createContext)();var Dn=Object.defineProperty,Fn=Object.getOwnPropertySymbols,Bn=Object.prototype.hasOwnProperty,Wn=Object.prototype.propertyIsEnumerable,Hn=(e,t,n)=>t in e?Dn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,jn=(e,t)=>{for(var n in t||(t={}))Bn.call(t,n)&&Hn(e,n,t[n]);if(Fn)for(var n of Fn(t))Wn.call(t,n)&&Hn(e,n,t[n]);return e};function zn(n){const{addTab:o,hideTab:i,updateTab:r,showTab:s,children:a,selectedPath:l,tabData:c,tabsId:u,tabExists:h,path:d,rendered:p,hideTabContent:g,tabs:m}=n;(0,e.useEffect)((()=>{const e=jn({},c);h(d)||o(e,d)}),[c,d]);const f=me(c);(0,e.useEffect)((()=>{if(h(d)&&(null==c?void 0:c.title)&&((null==f?void 0:f.title)!==(null==c?void 0:c.title)||(null==f?void 0:f.selected)!==c.selected)){const e=jn({},c);r(e,d)}}),[c,d,f,m]),(0,e.useEffect)((()=>(s(d),()=>i(d))),[]);const y=(0,e.useMemo)((()=>!!Object.keys(m).length&&!g&&!1!==m[c.id].show&&(p?l&&l.indexOf(c.id)>-1:h(d))),[g,p,l,c,m]),v=(0,e.useMemo)((()=>({path:d,tabsId:u})),[d,u]);return y?t().createElement("div",{key:c.id,className:"tyk-tab__content",style:{display:l&&l.indexOf(c.id)>-1?"block":"none"}},t().createElement(Pn.Provider,{value:v},a)):null}zn.propTypes={addTab:r().func,updateTab:r().func,hideTab:r().func,showTab:r().func,children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),path:r().instanceOf(Array),hideTabContent:r().bool,rendered:r().bool,selectedPath:r().instanceOf(Array),tabExists:r().func,tabsId:r().string,tabData:r().instanceOf(Object),tabs:r().instanceOf(Object)};const Vn=zn;function Un(n){const{id:o}=n,i=(0,e.useContext)(In),r=(0,e.useContext)(Pn),{tabExists:s,selectedPath:a,addTab:l,updateTab:c,hideTab:u,showTab:h,rendered:d,hideTabContent:p,tabs:g}=i,{children:m}=n,[f,y]=(0,e.useState)("");return(0,e.useEffect)((()=>{let e;e=r&&f&&r.tabsId===i.id?r.path.concat([o]):[o],y(e)}),[r]),f?t().createElement(Vn,{addTab:l,updateTab:c,hideTab:u,showTab:h,tabExists:s,tabData:n,path:f,tabsId:i.id,selectedPath:a,rendered:d,hideTabContent:p,tabs:g},m):null}Un.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),id:r().string},Un.defaultProps={};const Gn=Un;var Kn=Object.defineProperty,qn=Object.getOwnPropertySymbols,Yn=Object.prototype.hasOwnProperty,Jn=Object.prototype.propertyIsEnumerable,Xn=(e,t,n)=>t in e?Kn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Qn=(e,t)=>{for(var n in t||(t={}))Yn.call(t,n)&&Xn(e,n,t[n]);if(qn)for(var n of qn(t))Jn.call(t,n)&&Xn(e,n,t[n]);return e};function Zn(n){const{children:o,className:i,id:r,onTabChange:s,type:a,hideTabContent:l}=n,[c,u]=(0,e.useState)({}),[h,d]=(0,e.useState)([]),[p,m]=(0,e.useState)(!1),[f,y]=(0,e.useState)(null);(0,e.useEffect)((()=>{d(f)}),[f]);const v=(e,t)=>{const n=e.slice(0);let o=!0;t.collapsible&&(n.push(Object.keys(t.tabs)[0]),o=!1),u((t=>{let n=Qn({},t);return n=((e,t)=>{let n=Qn({},e);const o=t.slice(0);for(;o.length>1;)n=n[o.shift()];const i=o.shift();return void 0===n[i].collapsed?n[i].collapsed=!0:n[i].collapsed=!n[i].collapsed,n})(n,e),n})),d(n),m(o),s&&s(t)},b=e=>{const t=[];return h&&h.indexOf(e)>-1&&t.push("active"),t.join(" ")},w=(e,n)=>e?t().createElement("ul",null,Object.keys(e).map(((o,i)=>{const r=n?n.concat([e[o].id]):[e[o].id],s=e[o].collapsed?"chevron-up":"chevron-down";return!1===e[o].show?null:t().createElement("li",{className:b(e[o].id),key:e[o].id},t().createElement("button",{type:"button",onClick:v.bind(null,r,e[o]),onKeyDown:v.bind(null,r,e[o]),tabIndex:i},e[o].title,e[o].collapsible?t().createElement(g,{className:"collapsable-arrow",type:s}):null),e[o].collapsible?t().createElement(R,{collapsed:e[o].collapsed},w(e[o].tabs,r)):w(e[o].tabs,r))}))):null,x=(e,t)=>{u((n=>((e,t,n)=>{let o=Qn({},e);const i=Qn({},n),r=t.slice(0);for(;r.length>1;)o=o[r.shift()],o||(o={});return i.tempPath=r,o[r.shift()]=i,o})(Qn({},n),t,e))),e.selected&&y(t)},k=(e,t)=>{u((t=>{const n=Qn({},t);return n[e.id]=e,n})),e.selected&&v(t,e)},C=e=>{u((t=>{const n=Qn({},t);return n[e].show=!1,n}))},$=e=>{u((t=>{const n=Qn({},t);return n[e].show=!0,n}))},S=e=>{let t=Qn({},c);const n=e.slice(0);for(;n.length>1;)t=t[n.shift()];const o=n.shift();return Boolean(null==t?void 0:t[o])},E=(0,e.useMemo)((()=>({id:r,addTab:x,hideTab:C,updateTab:k,showTab:$,tabExists:S,selectedPath:h,rendered:p,hideTabContent:l,tabs:c})),[r,x,C,k,$,S,h,p,l,c]);return t().createElement("div",{className:(()=>{let e=["tyk-tabs"];return e.push(`tyk-tabs--${a||"default"}`),i&&(e=e.concat(i.split(" "))),e.join(" ")})()},w(c),t().createElement(In.Provider,{value:E},"function"==typeof o?o({hideTab:C,showTab:$}):o))}Zn.propTypes={className:r().string,children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),hideTabContent:r().bool,id:r().string,onTabChange:r().func,type:r().string},Zn.Tab=Gn;const eo=Zn;var to=Object.defineProperty,no=Object.getOwnPropertySymbols,oo=Object.prototype.hasOwnProperty,io=Object.prototype.propertyIsEnumerable,ro=(e,t,n)=>t in e?to(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,so=(e,t)=>{for(var n in t||(t={}))oo.call(t,n)&&ro(e,n,t[n]);if(no)for(var n of no(t))io.call(t,n)&&ro(e,n,t[n]);return e};function ao(n){var o=n,{render:i,className:r,children:s,position:a="auto",style:l,icon:c=!1,closable:u,isOpened:h=!1,additionalClickParents:d=[]}=o,p=((e,t)=>{var n={};for(var o in e)oo.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&no)for(var o of no(e))t.indexOf(o)<0&&io.call(e,o)&&(n[o]=e[o]);return n})(o,["render","className","children","position","style","icon","closable","isOpened","additionalClickParents"]);const[m,f]=(0,e.useState)(!1),y=(0,e.useRef)(null),v=(0,e.useRef)(null),b=u?{onClick:()=>f(!0)}:{onMouseEnter:()=>f(!0),onMouseLeave:()=>f(!1),onFocus:()=>f(!0),onBlur:()=>f(!1)},w=(0,e.useCallback)((e=>{[...d,v.current].some((t=>{var n;return null==(n=null==t?void 0:t.contains)?void 0:n.call(t,e.target)}))||f(!1)}),[d]);(0,e.useEffect)((()=>(document.addEventListener("click",w,!0),()=>document.removeEventListener("click",w,!0))),[w]),(0,e.useEffect)((()=>{f(h)}),[h]);const x=["tyk-tooltip",r].filter(Boolean).join(" ");return t().createElement("div",so(so({className:"tyk-tooltip__wrapper",style:so({display:"inline-block"},l),ref:y},b),p),s,m&&t().createElement(Pt,{element:y,forceDisplay:a,preferredPosition:"top",offset:20},t().createElement("div",{className:x,ref:v},c&&(!0===c?t().createElement(g,{family:"tykon",type:"help"}):c),t().createElement("div",{className:"tyk-tooltip__content"},i),u&&t().createElement(g,{family:"tykon",type:"x",onClick:e=>{e.stopPropagation(),f(!1)}}))))}ao.propTypes={children:r().node.isRequired,style:r().instanceOf(Object),position:r().string,render:r().oneOfType([r().node,r().string]),className:r().string,icon:r().oneOfType([r().bool,r().node]),closable:r().bool,isOpened:r().bool,additionalClickParents:r().instanceOf(Array)};const lo=ao;function co({text:e,limit:n,position:o}){return e.length>n?t().createElement(lo,{render:e,position:o},e.substring(0,n),"..."):e}co.propTypes={text:r().string,limit:r().number,position:r().string};const uo=co;function ho(n){const{value:o=0,totalNrOfPages:i,onChange:r}=n,[s,a]=(0,e.useState)(o),l=(0,e.useMemo)((()=>function(e,t){let n;const o=[];for(n=0;n<=e;n+=1)i=n,r=t,((s=e)<10||r<5&&i<5||r>s-5&&i>s-5||i>=r-2&&i<=r+2||[0,1,s-1,s].includes(i))&&(n>o.at(-1)&&o.push(`...-${n}`),o.push(n+1));var i,r,s;return o}(i,s)),[s,i]);function c(e){a(e),r&&r(e)}return i?t().createElement("ul",{className:"tyk-pagination"},s>0&&i>5&&t().createElement("li",null,t().createElement("button",{onClick:()=>c(s-1),type:"button"},"Previous")),l.map((e=>t().createElement("li",{key:e,className:s===e-1?"active":""},String(e).startsWith("...")?t().createElement("span",null,"..."):t().createElement("button",{onClick:()=>c(e-1),type:"button"},e)))),s5&&t().createElement("li",null,t().createElement("button",{onClick:()=>c(s+1),type:"button"},"Next"))):null}ho.propTypes={value:r().number,totalNrOfPages:r().number,onChange:r().func};const po=ho,go=(0,e.createContext)();function mo({column:n}){const{sortable:o}=n,[i,r]=(0,e.useState)((null==o?void 0:o.default)||"ASC"),{state:s,sendMessage:a}=(0,e.useContext)(go);return t().createElement("th",{key:n.id,onClick:o?()=>{a("sort",{column:n,sortOrder:i}),r("ASC"===i?"DESC":"ASC")}:null,className:s.maxHeight?"fixed-header":""},n.name,n.sortable&&t().createElement("span",{className:"header-sort"},t().createElement(g,{family:"tykon",type:"arrowsort"})))}mo.propTypes={column:r().instanceOf(Object)};var fo=Object.defineProperty,yo=Object.defineProperties,vo=Object.getOwnPropertyDescriptors,bo=Object.getOwnPropertySymbols,wo=Object.prototype.hasOwnProperty,xo=Object.prototype.propertyIsEnumerable,ko=(e,t,n)=>t in e?fo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Co=(e,t)=>{for(var n in t||(t={}))wo.call(t,n)&&ko(e,n,t[n]);if(bo)for(var n of bo(t))xo.call(t,n)&&ko(e,n,t[n]);return e},$o=(e,t)=>yo(e,vo(t));function So({allRowsSelected:n}){const{state:o,sendMessage:i}=(0,e.useContext)(go),{columns:r,selectable:s}=o,a=()=>{var e;const r=s.type;return t().createElement("th",{className:o.maxHeight?"fixed-header":""},(null==s?void 0:s.allowSelectAll)?t().createElement("div",{className:null==s?void 0:s.style},t().createElement(r,$o(Co({},s.values),{value:n,onChange:e=>{var t,n;const o="input"===(null==(t=null==e?void 0:e.target)?void 0:t.tagName.toLowerCase())&&"checkbox"===(null==(n=null==e?void 0:e.target)?void 0:n.type.toLowerCase());i("header.selectAll.change",o?e.target.checked:Boolean(e))}}),null==(e=s.values)?void 0:e.value)):s.name||"Select")};return t().createElement("thead",null,t().createElement("tr",null,"LEFT"===(null==s?void 0:s.position)&&a(),r.map((e=>t().createElement(mo,{key:e.id,column:e}))),"RIGHT"===(null==s?void 0:s.position)&&a()))}So.propTypes={allRowsSelected:r().bool};var Eo=Object.defineProperty,Oo=Object.defineProperties,To=Object.getOwnPropertyDescriptors,Ao=Object.getOwnPropertySymbols,_o=Object.prototype.hasOwnProperty,Lo=Object.prototype.propertyIsEnumerable,Mo=(e,t,n)=>t in e?Eo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ro=(e,t)=>{for(var n in t||(t={}))_o.call(t,n)&&Mo(e,n,t[n]);if(Ao)for(var n of Ao(t))Lo.call(t,n)&&Mo(e,n,t[n]);return e};class No extends e.Component{getCssClasses(){const{inline:e,disabled:t,readOnly:n,theme:o="",wrapperClassName:i=""}=this.props,r=[i];return r.push("tyk-checkbox"),e&&r.push("tyk-checkbox--inline"),o.trim()&&r.push(...o.split(" ").map((e=>`tyk-checkbox--theme-${e}`))),(t||n)&&r.push("tyk-checkbox--is-disabled"),r.join(" ")}displayError(){const{error:e}=this.props;return e?t().createElement("p",{className:"tyk-form-control__error-message"},e):null}displayNote(){const{note:e}=this.props;return e?t().createElement("p",{className:"tyk-form-control__help-block"},e):null}render(){const e=this.props,{input:n,value:o,label:i}=e,r=((e,t)=>{var n={};for(var o in e)_o.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ao)for(var o of Ao(e))t.indexOf(o)<0&&Lo.call(e,o)&&(n[o]=e[o]);return n})(e,["input","value","label"]);return t().createElement("div",{className:this.getCssClasses()},t().createElement("div",{className:"tyk-form-control__wrapper"},t().createElement("label",null,t().createElement("input",(s=Ro(Ro({checked:n?n.value:o},n),r),Oo(s,To({type:"checkbox"})))),i),this.displayNote(),this.displayError()));var s}}No.propTypes={disabled:r().bool,readOnly:r().bool,inline:r().bool,theme:r().string,error:r().oneOfType([r().string,r().bool]),note:r().string,input:r().instanceOf(Object),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),name:r().string,value:r().oneOfType([r().string,r().bool]),checked:r().oneOfType([r().string,r().bool]),onChange:r().func,wrapperClassName:r().string};const Io=No;var Po=Object.defineProperty,Do=Object.getOwnPropertySymbols,Fo=Object.prototype.hasOwnProperty,Bo=Object.prototype.propertyIsEnumerable,Wo=(e,t,n)=>t in e?Po(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ho=(e,t)=>{for(var n in t||(t={}))Fo.call(t,n)&&Wo(e,n,t[n]);if(Do)for(var n of Do(t))Bo.call(t,n)&&Wo(e,n,t[n]);return e};function jo({col:e,row:n}){var o,i,r,s,a;if(!n.values[e.id])return t().createElement("td",null);if("string"===e.type)return t().createElement("td",Ho({className:(null==(o=n.values[e.id].styling)?void 0:o.className)||null},null==(i=n.values[e.id])?void 0:i.events),null==(r=n.values[e.id])?void 0:r.value);const l=e.type;return t().createElement("td",Ho({className:(null==(s=n.values[e.id].styling)?void 0:s.className)||null},null==(a=n.values[e.id])?void 0:a.events),t().createElement(l,Ho({},n.values[e.id].props),n.values[e.id].children?n.values[e.id].children:null))}function zo({row:n,index:o}){var i,r;const{state:s,sendMessage:a}=(0,e.useContext)(go),{columns:l,selectable:c}=s,u=(0,e.useCallback)((()=>t().createElement("td",null,t().createElement(Io,{value:n.selected,onChange:e=>a("row.selected",{index:o,selected:e.target.checked})}))),[n.selected,o]);return t().createElement("tr",{onClick:null==(i=n.events)?void 0:i.onClick,className:null==(r=n.styling)?void 0:r.className},c&&"LEFT"===c.position&&u(),l.map((e=>t().createElement(jo,{key:e.id,col:e,row:n,index:o}))),c&&"RIGHT"===c.position&&u())}function Vo(){const{state:n}=(0,e.useContext)(go),{rows:o}=n;return t().createElement("tbody",null,o.map(((e,n)=>t().createElement(zo,{key:n,row:e,index:n}))))}jo.propTypes={col:r().instanceOf(Object),row:r().instanceOf(Object),index:r().number},zo.propTypes={row:r().instanceOf(Object),index:r().number};var Uo=Object.defineProperty,Go=Object.defineProperties,Ko=Object.getOwnPropertyDescriptors,qo=Object.getOwnPropertySymbols,Yo=Object.prototype.hasOwnProperty,Jo=Object.prototype.propertyIsEnumerable,Xo=(e,t,n)=>t in e?Uo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Qo=(e,t)=>{for(var n in t||(t={}))Yo.call(t,n)&&Xo(e,n,t[n]);if(qo)for(var n of qo(t))Jo.call(t,n)&&Xo(e,n,t[n]);return e},Zo=(e,t)=>Go(e,Ko(t));function ei({value:n,onChange:o,noDataMessage:i,loading:r,infiniteScrolling:s}){var a;const[l,c]=(0,e.useState)(null),[u,h]=(0,e.useState)("api"),d=(0,e.useRef)(null),p=(0,e.useCallback)(((e,t)=>{c((n=>Zo(Qo({},n),{sort:{order:t,col:e}})))}),[]),g=(0,e.useCallback)((e=>{c((t=>Zo(Qo({},t),{rows:t.rows.map((t=>Zo(Qo({},t),{selected:e})))})))}),[]),m=(0,e.useCallback)((({index:e,selected:t})=>{c((n=>Zo(Qo({},n),{rows:[...n.rows.slice(0,e),Zo(Qo({},n.rows[e]),{selected:t}),...n.rows.slice(e+1)]})))}),[]),f=(0,e.useCallback)((e=>{c((t=>Zo(Qo({},t),{pagination:Zo(Qo({},t.pagination),{current:e+1})})))}),[]),y={getState:()=>l,setState:e=>c(e)},v=(0,e.useCallback)(((e,t)=>{h(e),"sort"===e&&p(t.column.id,t.sortOrder),"header.selectAll.change"===e&&g(t),"row.selected"===e&&m(t),"pagination.change"===e&&f(t)}),[p,g,m,f]),b=(0,e.useMemo)((()=>({state:l,sendMessage:v})),[l,v]);if((0,e.useEffect)((()=>c(n)),[n]),(0,e.useEffect)((()=>{o&&o(u,l,y),h("api")}),[l]),!l)return t().createElement(ye,{position:"absolute"});if(l.rows<=0)return t().createElement(be,{theme:"info"},i||"No Data Available");const w=()=>t().createElement("table",{className:"tyk-table",ref:d},t().createElement(So,{allRowsSelected:l.rows.every((({selected:e})=>e))}),t().createElement(Vo,null));return t().createElement(go.Provider,{value:b},t().createElement("div",{className:`scrollable ${(null==(a=l.styling)?void 0:a.className)||""}`,style:{height:l.maxHeight?l.maxHeight:"auto",position:"relative"}},r&&t().createElement(ye,{position:"absolute",withbackground:!0}),s&&l.pagination?t().createElement(At,{refChild:d,hasMore:l.pagination.totalPages>l.pagination.current,loadMore:e=>v("pagination.change",e),pageNumber:l.pagination.current-1,initialLoad:!1},w()):w()),l.pagination&&!s&&t().createElement("div",{className:"new-table-pagination"},t().createElement(po,{value:l.pagination.current-1,nrItemsOnPage:l.pagination.perPage-1,totalNrOfPages:l.pagination.totalPages-1,onChange:e=>v("pagination.change",e)})))}ei.propTypes={value:r().shape({columns:r().arrayOf(r().shape({id:r().string.isRequired,name:r().string,type:r().oneOfType([r().string,r().element,r().func]),sortable:r().oneOfType([r().bool,r().shape({default:r().string})])})),rows:r().arrayOf(r().shape({})),selectable:r().shape({}),pagination:r().shape({}),maxHeight:r().string,styling:r().shape({className:r().string})}).isRequired,onChange:r().func,noDataMessage:r().string,loading:r().bool,infiniteScrolling:r().bool},ei.defaultProps={loading:!1,infiniteScrolling:!1,noDataMessage:"No Data Available",onChange:null};const ti=ei;var ni=Object.defineProperty,oi=Object.getOwnPropertySymbols,ii=Object.prototype.hasOwnProperty,ri=Object.prototype.propertyIsEnumerable,si=(e,t,n)=>t in e?ni(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function ai(e){var n=e,{children:o,align:i,className:r,offset:s,size:a}=n,l=((e,t)=>{var n={};for(var o in e)ii.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&oi)for(var o of oi(e))t.indexOf(o)<0&&ri.call(e,o)&&(n[o]=e[o]);return n})(n,["children","align","className","offset","size"]);const c=["tyk-col",r,i&&`tyk-col--align-${i}`,...a.split(" ").map((e=>`tyk-col--${e}`)),...(s?s.split(" "):[]).map((e=>`tyk-col--offset-${e}`))].filter(Boolean).join(" ");return t().createElement("div",((e,t)=>{for(var n in t||(t={}))ii.call(t,n)&&si(e,n,t[n]);if(oi)for(var n of oi(t))ri.call(t,n)&&si(e,n,t[n]);return e})({className:c},l),o)}ai.propTypes={align:r().string,className:r().string,size:r().string.isRequired,offset:r().string,children:r().oneOfType([r().element,r().string,r().object,r().node])};const li=ai;var ci=Object.defineProperty,ui=Object.defineProperties,hi=Object.getOwnPropertyDescriptors,di=Object.getOwnPropertySymbols,pi=Object.prototype.hasOwnProperty,gi=Object.prototype.propertyIsEnumerable,mi=(e,t,n)=>t in e?ci(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function fi(e){var n=e,{className:o,nogutters:i,children:r}=n,s=((e,t)=>{var n={};for(var o in e)pi.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&di)for(var o of di(e))t.indexOf(o)<0&&gi.call(e,o)&&(n[o]=e[o]);return n})(n,["className","nogutters","children"]);const a=["tyk-row",o,i&&"no-gutters",i&&"tyk-row--gutterless"].filter(Boolean).join(" ");return t().createElement("div",(l=((e,t)=>{for(var n in t||(t={}))pi.call(t,n)&&mi(e,n,t[n]);if(di)for(var n of di(t))gi.call(t,n)&&mi(e,n,t[n]);return e})({},s),ui(l,hi({className:a}))),r);var l}fi.propTypes={children:r().oneOfType([r().element,r().node]),className:r().string,nogutters:r().bool};const yi=fi,vi=(0,e.createContext)();function bi(n){const{customdropdownitem:o,children:i,eventKey:r,href:s,target:a,title:l,onClick:c}=n,u=(0,e.useCallback)(((e,t)=>{e.onSelectItem(r,t),c&&c(r)}),[]);return t().createElement(vi.Consumer,null,(c=>t().createElement("li",{onClick:()=>u(c,n),onKeyUp:()=>{}},o?(0,e.cloneElement)(o,{}):t().createElement("a",{href:s,target:a},r&&c.selectedItem===r&&c.showCheckmark?t().createElement(g,{type:"check"}):null,t().createElement("span",null,l||i)))))}bi.propTypes={children:r().oneOfType([r().element,r().node,r().string]),customdropdownitem:r().oneOfType([r().arrayOf(r().node),r().node,r().element]),eventKey:r().string,href:r().string,target:r().string,onClick:r().func,title:r().string};const wi=bi;var xi=Object.defineProperty,ki=Object.getOwnPropertySymbols,Ci=Object.prototype.hasOwnProperty,$i=Object.prototype.propertyIsEnumerable,Si=(e,t,n)=>t in e?xi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Ei extends e.Component{static isElemInRightView(e,t){const n=window.innerWidth;return e.getBoundingClientRect().left+t<=n}static isElemInBottomView(e,t){const n=window.innerHeight,o=e.getBoundingClientRect(),i=e.clientHeight;return o.top+i+t<=n}constructor(t){super(t);const{selectedItem:n,open:o}=this.props;this.state={opened:o,selectedItem:n||null},this.dropdownRef=(0,e.createRef)(),this.dropdownListRef=(0,e.createRef)(),this.dropdownButtonRef=(0,e.createRef)(),this.onSelectItem=this.onSelectItem.bind(this),this.toggleDropdown=this.toggleDropdown.bind(this),this.handleClickOutside=this.handleClickOutside.bind(this)}componentDidMount(){document.addEventListener("mousedown",this.handleClickOutside),this.dropdownListRef.current&&this.getStyles()}componentDidUpdate(e){const{open:t}=this.props,{opened:n}=this.state;this.dropdownListRef.current&&this.getStyles(),e.open||!0!==t||n||this.toggleDropdown(),e.open&&!1===t&&n&&this.closeDropdown()}componentWillUnmount(){document.removeEventListener("mousedown",this.handleClickOutside)}handleClickOutside(e){this.dropdownListRef.current&&!this.dropdownListRef.current.contains(e.target)&&this.dropdownRef.current&&!this.dropdownRef.current.contains(e.target)&&this.closeDropdown()}onSelectItem(e,t){const{closeOnSelect:n,onSelect:o}=this.props,i={selectedItem:e,selectedItemProps:t};n&&(i.opened=!1),this.setState(i),o&&"function"==typeof o&&o(e)}getStyles(){const{display:e,position:t,offset:n}=this.props,o=this.dropdownListRef.current;if(n)return o.style.top=`${n.top}`,void(o.style.left=`${n.left}`);const i=Math.max(document.documentElement.scrollTop,document.body.scrollTop,window.scrollY),r=this.dropdownRef.current,s=r.clientHeight,a=o?o.clientHeight:0,l=o?o.clientWidth:0,c=r.getBoundingClientRect(),{left:u,top:h}=c;let d=0,p=u;d=Ei.isElemInBottomView(r,a)?h+i+s:h+i-a-5,Ei.isElemInRightView(r,l)||(p=u+r.clientWidth-l),"relative"!==t&&(o.style.top=`${d}px`,"block"!==e&&(o.style.left=`${p}px`)),"block"!==e&&(o.style.minWidth=`${this.dropdownButtonRef.current.clientWidth}px`)}getWrapperCssClasses(){const{btnGroup:e,btnGroupSize:t,className:n,btnTheme:o,wrapperClassName:i=""}=this.props;let r=[i,"tyk-dropdown"];return r.push(`theme-${o||"default"}`),n&&(r=r.concat(n.split(" "))),e&&(r.push("tyk-button-group"),r.push(t?`tyk-button-group--${t}`:"tyk-button-group--md")),r.join(" ")}getCssClasses(){const{opened:e}=this.state,{hasCustomContent:t,display:n,listclassnames:o,position:i,maxHeight:r}=this.props;let s=["tyk-dropdown-menu","tyk-dropdown"];return r&&s.push("tyk-dropdown--scrollable"),e&&s.push("opened"),o&&(s=s.concat(o.split(" "))),n&&s.push("tyk-dropdown--block"),t&&s.push("tyk-dropdown--custom"),"relative"===i&&s.push("tyk-dropdown--relative"),s.join(" ")}getBtnTitle(){const{btnTitle:e,stopButtonTextChange:t}=this.props,{selectedItemProps:n}=this.state;return!t&&(null==n?void 0:n.title)?n.title:e}closeDropdown(){const{onClose:e}=this.props;this.setState({opened:!1},(()=>{e&&e()}))}toggleDropdown(){const{opened:e}=this.state;e?this.closeDropdown():this.setState({opened:!0})}render(){const{appendTo:e,btnClassName:n,btnSize:o,customBtnTitle:i,hasCustomContent:r,btnTheme:s,children:a,label:l,showDropdownIcon:c,showTriggerButton:u,showCheckmark:h,disabled:d=!1,maxHeight:p}=this.props,{selectedItem:g,opened:m}=this.state,f=r?"div":"ul";return t().createElement("div",{className:this.getWrapperCssClasses(),ref:this.dropdownRef},l?t().createElement("label",{className:"font-family-medium"},l):null,u?t().createElement(U,{className:`tyk-dropdown__trigger ${m?"tyk-dropdown__trigger--opened ":" "} ${n}`,theme:s||"default",onClick:this.toggleDropdown,iconType:c?"chevron-down":null,iconPosition:"right",size:o||"md",type:"button",disabled:d,ref:this.dropdownButtonRef},i||this.getBtnTitle()):null,m?dt().createPortal(t().createElement(vi.Provider,{value:{onSelectItem:this.onSelectItem,selectedItem:g,showCheckmark:h}},m?t().createElement(f,((e,t)=>{for(var n in t||(t={}))Ci.call(t,n)&&Si(e,n,t[n]);if(ki)for(var n of ki(t))$i.call(t,n)&&Si(e,n,t[n]);return e})({className:this.getCssClasses(),ref:this.dropdownListRef},p&&{style:{maxHeight:p}}),"function"==typeof a?a({closeDropdown:this.closeDropdown.bind(this)}):a):null),document.querySelector(e||"body")):null)}}Ei.propTypes={appendTo:r().string,children:r().oneOfType([r().element,r().node,r().string,r().func]),closeOnSelect:r().bool,btnClassName:r().string,btnSize:r().string,btnGroupSize:r().string,btnTheme:r().string,btnTitle:r().oneOfType([r().node,r().element,r().string]),customBtnTitle:r().oneOfType([r().node,r().element,r().string]),btnGroup:r().bool,className:r().string,display:r().string,disabled:r().bool,hasCustomContent:r().bool,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),listclassnames:r().string,onClose:r().func,onSelect:r().func,open:r().bool,offset:r().instanceOf(Object),position:r().string,selectedItem:r().string,showDropdownIcon:r().bool,stopButtonTextChange:r().bool,showTriggerButton:r().bool,showCheckmark:r().bool,maxHeight:r().string,wrapperClassName:r().string},Ei.defaultProps={closeOnSelect:!1,showDropdownIcon:!0,showTriggerButton:!0,showCheckmark:!0,open:!1},Ei.Item=wi;const Oi=Ei;var Ti=Object.defineProperty,Ai=Object.getOwnPropertySymbols,_i=Object.prototype.hasOwnProperty,Li=Object.prototype.propertyIsEnumerable,Mi=(e,t,n)=>t in e?Ti(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Ri({title:e,theme:n="primary",splitTrigger:o,toggle:i,onTriggerClick:r,value:s},a){return o?t().createElement(K,{ref:a},t().createElement(U,((e,t)=>{for(var n in t||(t={}))_i.call(t,n)&&Mi(e,n,t[n]);if(Ai)for(var n of Ai(t))Li.call(t,n)&&Mi(e,n,t[n]);return e})({theme:n},r&&{onClick:()=>r(s)}),e),t().createElement(U,{className:"dropdown__trigger",iconType:"arrowdown",iconFamily:"tykon",iconPosition:"right",theme:n,onClick:i,iconOnly:!0})):t().createElement(U,{className:"dropdown__trigger",iconType:"arrowdown",iconFamily:"tykon",iconPosition:"right",theme:n,ref:a,onClick:i},e)}Ri.propTypes={title:r().string,theme:r().string,splitTrigger:r().bool,toggle:r().func,dropdownRef:r().shape({current:r().instanceOf(Element)}).isRequired,onTriggerClick:r().func,value:r().oneOfType([r().string,r().number])};const Ni=(0,e.forwardRef)(Ri);var Ii=Object.defineProperty,Pi=Object.getOwnPropertySymbols,Di=Object.prototype.hasOwnProperty,Fi=Object.prototype.propertyIsEnumerable,Bi=(e,t,n)=>t in e?Ii(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Wi=(e,t)=>{for(var n in t||(t={}))Di.call(t,n)&&Bi(e,n,t[n]);if(Pi)for(var n of Pi(t))Fi.call(t,n)&&Bi(e,n,t[n]);return e};function Hi({children:e,element:n,maxWidth:o},i){return t().createElement(Pt,{element:n,ref:i,className:"dropdown__menu",position:"bottom",alignment:"auto",offset:5,arrow:!0},t().createElement(jt,{style:Wi({},o&&{maxWidth:o}),theme:"primary"},e))}Hi.propTypes={element:r().shape({current:r().instanceOf(Element)}),children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),maxWidth:r().string};const ji=(0,e.forwardRef)(Hi),zi=(0,e.createContext)();var Vi=Object.defineProperty,Ui=Object.getOwnPropertySymbols,Gi=Object.prototype.hasOwnProperty,Ki=Object.prototype.propertyIsEnumerable,qi=(e,t,n)=>t in e?Vi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Yi=(e,t)=>{for(var n in t||(t={}))Gi.call(t,n)&&qi(e,n,t[n]);if(Ui)for(var n of Ui(t))Ki.call(t,n)&&qi(e,n,t[n]);return e};function Ji({children:n,value:o}){const{onChange:i,value:r}=(0,e.useContext)(zi);return t().createElement(jt.Item,Yi({},o===r&&{selected:!0}),t().createElement("a",Yi({},i&&{onClick:()=>i(o)}),n))}Ji.propTypes={children:r().node,value:r().any};const Xi=Ji;function Qi({children:n,title:o,theme:i,splitTrigger:r,onChange:s,value:a,setSelectedValueAsTitle:l,maxWidth:c,onTriggerClick:u}){const{isOpen:h,toggle:d,dropdownRef:p,dropdownListRef:g}=(({splitTrigger:t})=>{const[n,o]=(0,e.useState)(!1),i=(0,e.useRef)(null),r=(0,e.useRef)(null),s=(0,e.useCallback)((e=>{const s=t?i.current.querySelector(".dropdown__trigger"):i.current;!n||s.contains(e.target)||r.current.contains(e.target)||o(!1)}),[n]);return(0,e.useEffect)((()=>(document.addEventListener("mousedown",s),()=>{document.removeEventListener("mousedown",s)})),[s]),{isOpen:n,toggle:()=>o(!n),dropdownRef:i,dropdownListRef:r}})({splitTrigger:r}),m=(0,e.useMemo)((()=>({onChange:s,value:a})),[s,a]);return t().createElement(zi.Provider,{value:m},t().createElement(Ni,{title:l?a:o,onTriggerClick:u,theme:i,splitTrigger:r,toggle:d,ref:p,value:a}),h&&t().createElement(ji,{element:p,ref:g,maxWidth:c},n))}Qi.propTypes={title:r().string,theme:r().string,children:r().node,splitTrigger:r().bool,onChange:r().func,value:r().oneOfType([r().string,r().number]),setSelectedValueAsTitle:r().bool,maxWidth:r().string,onTriggerClick:r().func},Qi.Item=Xi;const Zi=Qi;var er=n(239),tr=n.n(er);const nr=require("react-ace");var or=n.n(nr);n(395),n(576),n(7),n(549),n(252),n(202),n(711),n(604),n(134),n(203);const ir=n.p+"ee385296b124aae4e5d9.js";var rr=Object.defineProperty,sr=Object.defineProperties,ar=Object.getOwnPropertyDescriptors,lr=Object.getOwnPropertySymbols,cr=Object.prototype.hasOwnProperty,ur=Object.prototype.propertyIsEnumerable,hr=(e,t,n)=>t in e?rr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,dr=(e,t)=>{for(var n in t||(t={}))cr.call(t,n)&&hr(e,n,t[n]);if(lr)for(var n of lr(t))ur.call(t,n)&&hr(e,n,t[n]);return e};function pr(n){const{disabled:o,readOnly:i,disableValidation:r,id:s,error:a,label:l,labelwidth:c,note:u,onBlur:h,onChange:d,theme:p,value:g,setOptions:m,wrapperClassName:f}=n,y=["tyk-form-group",f,...p?p.split(" ").map((e=>`tyk-form-group--${e}`)):[],c&&"tyk-form-group--label-has-width",a&&"has-error"].filter(Boolean).join(" "),v=dr(dr({},m),r&&{useWorker:!1}),b=(0,e.useCallback)((()=>a&&"true"!==a&&"false"!==a?t().createElement("p",{className:"tyk-form-control__error-message"},a):null),[a]),w=(0,e.useCallback)((()=>c?{flexBasis:c}:{}),[c]),x=(0,e.useCallback)((()=>c?{flexBasis:`calc(100% - ${c} - 20px)`}:{}),[c]),k=(0,e.useCallback)((e=>{d&&d(e)}),[d]),C=(0,e.useCallback)((()=>{h&&h(g)}),[h,g]);return t().createElement("div",{className:y},l?t().createElement("label",{htmlFor:s,style:w()},l):null,t().createElement("div",{className:"tyk-form-control__wrapper",style:x()},t().createElement(or(),($=dr({className:"tyk-form-control"},n),sr($,ar({onChange:k,onBlur:C,theme:"github",editorProps:{$blockScrolling:!0},readOnly:i||o,onLoad:e=>{e.container.style.resize="both",document.addEventListener("mouseup",(()=>e.resize()))},setOptions:v})))),u?t().createElement("p",{className:"tyk-form-control__help-block"},u):null,b()));var $}tr().config.setModuleUrl("ace/mode/json_worker",ir),pr.propTypes={disabled:r().bool,readOnly:r().bool,disableValidation:r().bool,id:r().string,error:r().oneOfType([r().string,r().bool]),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,mode:r().string,name:r().string,note:r().string,onBlur:r().func,onChange:r().func,theme:r().string,value:r().string,setOptions:r().instanceOf(Object),wrapperClassName:r().string};const gr=pr;var mr=Object.defineProperty,fr=Object.defineProperties,yr=Object.getOwnPropertyDescriptors,vr=Object.getOwnPropertySymbols,br=Object.prototype.hasOwnProperty,wr=Object.prototype.propertyIsEnumerable,xr=(e,t,n)=>t in e?mr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,kr=(e,t)=>{for(var n in t||(t={}))br.call(t,n)&&xr(e,n,t[n]);if(vr)for(var n of vr(t))wr.call(t,n)&&xr(e,n,t[n]);return e};const Cr=(e,t,n)=>n||(e||t?[]:null);class $r extends e.Component{static closeList(){return{cursor:-1,opened:!1}}static openList(){return{opened:!0}}static filterByName(e,t){return e.name.toLowerCase().indexOf(t)>-1}constructor(t){super(t);const{multiple:n,tags:o,value:i}=t;this.state={cursor:-1,opened:!1,width:50,initialValue:i,stateSelectedValues:Cr(n,o,i),searchText:"",tags:o},this.comboboxRef=(0,e.createRef)(),this.valuesListRef=(0,e.createRef)(),this.inputRef=(0,e.createRef)(),this.textRef=(0,e.createRef)(),this.focusInput=this.focusInput.bind(this),this.onKeyUp=this.onKeyUp.bind(this),$r.openList=$r.openList.bind(this),this.handleClickOutside=this.handleClickOutside.bind(this),this.handleItemsNavigation=this.handleItemsNavigation.bind(this),this.handleComboboxDropdownClick=this.handleComboboxDropdownClick.bind(this),this.handleListItemClick=this.handleListItemClick.bind(this),this.handlePillRemoveClick=this.handlePillRemoveClick.bind(this),this.manageSelectedTags=this.manageSelectedTags.bind(this)}componentDidMount(){const{tags:e}=this.props;e&&this.setInputWidth(),this.bindEvents()}componentWillUnmount(){this.unBindEvents()}static getDerivedStateFromProps(e,t){return JSON.stringify(e.value)!==JSON.stringify(t.initialValue)||e.tags!==t.tags?{initialValue:e.value,stateSelectedValues:Cr(e.multiple,e.tags,e.value),tags:e.tags}:null}handleItemsNavigation(e){const{tags:t}=this.props;if(-1===["ArrowDown","ArrowUp"].indexOf(e.key))return;const{cursor:n}=this.state,o=this.filterValues();let i;if(e.preventDefault(),"ArrowDown"===e.key&&(-1===n||n===o.length-1?i=0:n0?n-1:o.length-1),this.valuesListRef.current&&i>4){const e=38*(i-4);this.valuesListRef.current.scrollTop=t?e:60+e}else this.valuesListRef.current&&(this.valuesListRef.current.scrollTop=0);this.setState((e=>{return t=kr({},e),fr(t,yr({opened:!0,cursor:i}));var t}))}handleListItemClick(e){if(this.props.values[e].disabled)return;const{multiple:t,tags:n}=this.props,o=n?"manageSelectedTags":"manageSelectedValues",i=kr(kr({},this.state),this[o](e));this.setState((e=>(t||n||(i.opened=!1),kr(kr({},e),i))))}handlePillRemoveClick(e){const{disabled:t}=this.props;if(t)return;const n=this.removeSelectedValue(e);this.setState((e=>kr(kr({},e),n)))}handleClickOutside(e){this.valuesListRef.current&&!this.valuesListRef.current.contains(e.target)&&this.comboboxRef.current&&!this.comboboxRef.current.contains(e.target)&&this.setState((e=>kr(kr({},e),$r.closeList())))}handleComboboxDropdownClick(){const{disabled:e}=this.props;e||this.setState((e=>kr(kr({},e),$r.openList())))}onKeyUp(e){const{tags:t,allowCustomValues:n}=this.props,{cursor:o,opened:i}=this.state,r=this.filterValues();let s=this.getSearchText();if(t&&"Escape"!==e.key&&(s=kr(kr({},s),this.setInputWidth())),"Enter"===e.key){const e=t?"manageSelectedTags":"manageSelectedValues";s=kr(kr({},s),this[e](o))}n&&" "!==e.key&&t&&(s=kr(kr({},s),this.manageSelectedTags())),!i&&this.inputRef.current.value&&(null==r?void 0:r.length)&&"Escape"!==e.key&&(s=kr(kr({},s),$r.openList())),"Escape"===e.key&&i&&(s=kr(kr({},s),$r.closeList())),i&&r&&!r.length&&(s=kr(kr({},s),$r.closeList())),this.setState((e=>kr(kr({},e),s)))}getLabelStyles(){const{labelwidth:e}=this.props,t={};return e&&(t.flexBasis=e),t}getNonLabelWidth(){const{labelwidth:e}=this.props,t={};return e&&(t.flexBasis=`calc(100% - ${e} - 20px)`),t}setInputWidth(){return{width:50+this.textRef.current.offsetWidth}}getSelectedIndex(e){const{stateSelectedValues:t}=this.state;let n=-1;return Array.isArray(t)?t.forEach(((t,o)=>{t.id===e.id&&(n=o)})):t&&t.id===e.id&&(n=0),n}getSearchText(){return{searchText:this.inputRef.current.value}}getListItemCssClasses(e,t){const n=[],{cursor:o}=this.state;return o===t&&n.push("active"),e.disabled&&n.push("disabled"),n.join(" ")}getComboboxListCssClass(){const{opened:e}=this.state,{tags:t,theme:n}=this.props,o=n?n.split(" "):[],i=["tyk-combobox__list"];return e&&i.push("tyk-combobox__list--opened"),t&&i.push("tyk-combobox__list--has-tags"),o.length&&o.forEach((e=>{i.push(`tyk-form-group--${e}`)})),i.join(" ")}getCssClasses(){const{error:e,disabled:t,theme:n,labelwidth:o}=this.props,i=["tyk-form-group","tyk-combobox"],r=n?n.split(" "):[];return e&&i.push("has-error"),o&&i.push("tyk-form-group--label-has-width"),r.length&&r.forEach((e=>{i.push(`tyk-form-group--${e}`)})),t&&i.push("disabled"),i.join(" ")}getInputError(){const{error:e}=this.props;return e&&"true"!==e&&"false"!==e?t().createElement("p",{className:"tyk-form-control__error-message"},e):null}getStyles(){const{scrollTop:e}=document.documentElement,t=this.comboboxRef.current,n=t.offsetHeight,o=t.offsetWidth,i=t.getBoundingClientRect(),{left:r}=i;let s=0;return s=i.top+e+n,{top:s-1+"px",left:`${r}px`,width:`${o}px`}}getComboboxDisplayData(){const{stateSelectedValues:e}=this.state,{multiple:t,placeholder:n,values:o}=this.props;return e?e&&Array.isArray(e)&&!e.length?n:!e||Array.isArray(e)||e.id?Array.isArray(e)&&t?e.reduce(((t,n,o)=>t+n.name+(o!==e.length-1?", ":"")),""):!(null==o?void 0:o.length)||Array.isArray(e)||e.name?e.name:o.filter((t=>t.id===e.id))[0].name:n:n}manageSelectedTags(e){const{max:t,allowCustomValues:n}=this.props,{stateSelectedValues:o}=this.state,i=this.filterValues(),r={id:this.inputRef.current.value,name:this.inputRef.current.value};if(!1===n&&-1===e)return null;const s=i[e]||r,a=this.getSelectedIndex(s);let l={};if(this.inputRef.current.value="",a>-1&&this.isInInitialValues(s))l=this.removeSelectedValue(a);else if(-1===a){if(t&&o.length>=t)return l;l=this.addSelectedValue(s)}return l}manageSelectedValues(e){const{stateSelectedValues:t}=this.state,{multiple:n,onChange:o,max:i}=this.props,r=this.filterValues(),s=r[e];let a;const l=this.getSelectedIndex(s);if(s&&n)if(l>-1)a=this.removeSelectedValue(l);else{if(i&&t.length>=i)return a;a=this.addSelectedValue(r[e])}else a={stateSelectedValues:-1===l?s:{id:null}},null==o||o(-1===l?s:null);return a}removeSelectedValue(e){const{stateSelectedValues:t}=this.state,{onChange:n}=this.props,o=JSON.parse(JSON.stringify(t));return o.splice(e,1),n&&"function"==typeof n&&n(o.length?o:null),{stateSelectedValues:o,searchText:""}}addSelectedValue(e){const{stateSelectedValues:t}=this.state,{onChange:n}=this.props,o=JSON.parse(JSON.stringify(t));return o.push(e),n&&"function"==typeof n&&n(o.length?o:null),{stateSelectedValues:o,searchText:""}}isInInitialValues(e){const{values:t}=this.props;let n=!1;return t.forEach((t=>{e.id===t.id&&(n=!0)})),n}filterValues(){const{values:e,searchItem:t}=this.props;return this.inputRef.current?e.filter((e=>t?t(e,this.inputRef.current.value.toLowerCase()):$r.filterByName(e,this.inputRef.current.value.toLowerCase()))):e}bindEvents(){document.addEventListener("mousedown",this.handleClickOutside)}unBindEvents(){document.removeEventListener("mousedown",this.handleClickOutside)}reset(){const{multiple:e,tags:t,value:n}=this.props;this.setState({stateSelectedValues:Cr(e,t,n)})}focusInput(){this.inputRef.current&&this.inputRef.current.focus()}renderInput(e){const{disabled:n,tags:o,max:i,placeholder:r}=this.props,{width:s,searchText:a,stateSelectedValues:l}=this.state;return t().createElement("ul",{className:"tyk-form-control"+(o?" tyk-form-control--with-tags":""),onClick:this.focusInput,onKeyDown:()=>{},ref:this.comboboxRef},o?t().createElement(t().Fragment,null,(l||[]).map(((e,n)=>t().createElement("li",{className:"pill",key:e.id},t().createElement("button",{type:"button",onClick:this.handlePillRemoveClick.bind(this,n),"aria-label":"remove"},t().createElement(g,{type:"times"})),t().createElement("span",null,e.name)))),t().createElement("li",{className:"tyk-combobox__search-box",style:{width:(null==l?void 0:l.length)?"auto":"100%"}},(void 0===i||(null==l?void 0:l.length){"Enter"===e.key&&e.preventDefault(),this.handleItemsNavigation(e)},onKeyUp:this.onKeyUp,placeholder:(null==l?void 0:l.length)?"":r,ref:this.inputRef,style:{width:(null==l?void 0:l.length)?`${s}px`:"100%"}}),t().createElement("span",{ref:this.textRef,style:{visbility:"hidden",position:"absolute",top:"-9999px"}},a)),e.length>0&&t().createElement(U,{className:"tyk-combobox--with-tags__button-down",iconType:"arrow-down",iconOnly:!0,onClick:this.handleComboboxDropdownClick}))):t().createElement("li",{className:"tyk-combobox__placeholder",onClick:this.handleComboboxDropdownClick,onKeyDown:()=>{}},this.getComboboxDisplayData(),t().createElement(g,{family:"tykon",type:"arrowdown"})))}renderDropdown(e){const{tags:n}=this.props,{opened:o}=this.state;return t().createElement("ul",{className:this.getComboboxListCssClass(),ref:this.valuesListRef,style:this.getStyles()},n?null:t().createElement("li",{className:"combobox-search__container"},t().createElement("input",{autoFocus:o,className:"tyk-form-control",onKeyUp:this.onKeyUp,onKeyDown:this.handleItemsNavigation,key:"searchInput",ref:this.inputRef})),e.map(((e,n)=>t().createElement("li",{className:this.getListItemCssClasses(e,n),onClick:this.handleListItemClick.bind(this,n),onKeyDown:()=>{},key:e.id},this.getSelectedIndex(e)>-1?t().createElement(g,{type:"check"}):null,t().createElement("span",null," ",e.name)))))}render(){const{CustomListComponent:e,id:n,label:o,note:i}=this.props,{opened:r}=this.state,s=this.filterValues();return t().createElement(t().Fragment,null,t().createElement("div",{className:this.getCssClasses()},o?t().createElement("label",{htmlFor:n,style:this.getLabelStyles()},o):null,t().createElement("div",{className:"tyk-form-control__wrapper",style:this.getNonLabelWidth()},this.renderInput(s),i?t().createElement("p",{className:"tyk-form-control__help-block"},i):null,this.getInputError())),e?t().createElement(e,{ref:this.valuesListRef,className:this.getComboboxListCssClass(),getListItemCssClasses:this.getListItemCssClasses.bind(this),getSelectedIndex:this.getSelectedIndex.bind(this),filteredValues:s,handleListItemClick:this.handleListItemClick.bind(this)}):r&&s.length?dt().createPortal(this.renderDropdown(s),document.querySelector("body")):null)}}$r.propTypes={allowCustomValues:r().bool,CustomListComponent:r().elementType,searchItem:r().func,disabled:r().bool,error:r().string,id:r().string,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,multiple:r().bool,max:r().number,note:r().oneOfType([r().node,r().element,r().string]),onChange:r().func,placeholder:r().string,tags:r().bool,theme:r().string,value:r().oneOfType([r().string,r().instanceOf(Object),r().instanceOf(Array)]),values:r().instanceOf(Array)},$r.defaultProps={allowCustomValues:!0};const Sr=$r;function Er(n){const{value:o,max:i,tags:r,tagSeparators:s,addTagOnBlur:a,placeholder:l,disabled:c,renderValue:u,valueOverflow:h,focus:d,onMessage:p,readOnly:m}=n,f=(0,e.useRef)(null),y=(0,e.useRef)(null),[v,b]=(0,e.useState)(""),[w,x]=(0,e.useState)("70px");function k(e){if(s.some((t=>e.slice(-1)===t)))return;const t=y.current;t.innerHTML=e,x(`${Math.max(t.clientWidth,60)+10}px`),b(e),p("tag.input.change",e)}function C(){p("text-value.click")}function $(e,n=!1){if(m)return e||"-";const o=["tyk-combobox2__text-value",`overflow-${h}`,n&&"is-placeholder"].filter(Boolean).join(" ");return t().createElement("span",{className:o,title:"single"===h?e:void 0,role:"none",tabIndex:c?"-1":"0",onClick:C,onKeyDown:C},e)}function S(e){return u(e,{tags:r,tagSeparators:s,placeholder:l,disabled:c,renderValue:u,sendMessage:p})}return(0,e.useEffect)((()=>{d&&f.current&&f.current.focus()}),[d]),m?t().createElement("div",{className:"tyk-form-control--readonly"},$(o.map((e=>e.name)).join(", "))):r?t().createElement(t().Fragment,null,o.map((function(e){return u?S(e):t().createElement(mn,{key:e.id,theme:"combobox"},t().createElement("button",{type:"button",onClick:t=>{t.stopPropagation(),p("tag.remove",e.id)},"aria-label":"remove"},t().createElement(g,{type:"times"})),t().createElement("span",{title:e.name},e.name))})),o.lengthk(e.target.value),onKeyDown:e=>{"Enter"===e.key&&e.preventDefault(),function(e,t){if(r){if(""!==t||"Backspace"!==e||!o.length)return"Enter"===e?(p("tag.input.enter",t),void k("")):void("ArrowUp"!==e?"ArrowDown"!==e?"Escape"!==e?s.includes(e)&&(p("tag.add",t),k("")):p("tag.input.escape"):p("tag.input.arrowDown"):p("tag.input.arrowUp"));p("tag.remove",o[o.length-1].id)}}(e.key,e.target.value)},onFocus:()=>p("tag.input.focus"),onBlur:e=>{p("tag.input.blur",e.target.value),a&&k("")}}),t().createElement("span",{ref:y,style:{visbility:"hidden",position:"absolute",top:"-9999px"}}))):u?0===o.length?$(l,!0):o.map(S):0===o.length?$(l,!0):$(o.map((e=>e.name)).join(", "))}Er.propTypes={value:r().instanceOf(Array),max:r().number,tags:r().instanceOf(Array),tagSeparators:r().instanceOf(Array),addTagOnBlur:r().bool,placeholder:r().string,disabled:r().bool,renderValue:r().func,valueOverflow:r().string,focus:r().bool,onMessage:r().func,readOnly:r().bool};const Or=Er;function Tr(n){const{listRef:o,tags:i,values:r,searchValue:s,activeItem:a,onMessage:l,renderListItem:c,selectAll:u,showSearch:h}=n;return(0,e.useEffect)((()=>{if(!o.current)return;const e=o.current.querySelector(".active");e&&e.scrollIntoView({block:"end"})}),[a]),t().createElement(t().Fragment,null,!i&&h&&t().createElement("div",{className:"tyk-combobox2__combobox-search"},t().createElement("input",{autoFocus:!0,className:"tyk-form-control",value:s,onChange:e=>l("search.change",e.target.value),onKeyDown:e=>{"Escape"===e.key&&l("search.escape"),"ArrowUp"===e.key&&l("search.arrowUp"),"ArrowDown"===e.key&&l("search.arrowDown"),"Enter"===e.key&&l("search.enter")}})),r.length>0&&t().createElement("ul",{ref:o,className:"tyk-combobox2__combobox-list"},Boolean(u)&&function(){var e,n,o;const i=r.every((e=>e.selected)),s=r.every((e=>!e.selected)),a=null!=(e=null==u?void 0:u.label)?e:"Select All",c=null!=(n=null==u?void 0:u.mode)?n:"select",h=null!=(o=null==u?void 0:u.show)?o:"always",d=null==u?void 0:u.render;return"always"!==h&&("select"===c?i:s)?null:d?d({label:a,mode:c,show:h,isAllSelected:i,isNoneSelected:s},l):t().createElement("li",{onClick:()=>l("value.select-all","select"===c?!i:s),onKeyDown:()=>{}},("select"===c?i:s)&&t().createElement(g,{type:"check"}),a)}(),r.map((function(e){return c?c(e,{tags:i,searchValue:s,sendMessage:l,activeItem:a}):t().createElement("li",{key:e.id,title:e.name,className:[e.disabled&&"disabled",a&&e.id===a.id&&"active"].filter(Boolean).join(" "),onClick:()=>!e.disabled&&l("value.select",{item:e}),onKeyDown:()=>{}},e.selected&&t().createElement(g,{type:"check"}),t().createElement("span",{className:"item-name"},e.name))}))))}Tr.propTypes={listRef:r().instanceOf(Object),tags:r().bool,values:r().instanceOf(Array),searchValue:r().string,activeItem:r().instanceOf(Object),onMessage:r().func,renderListItem:r().func,selectAll:r().oneOfType([r().bool,r().shape({label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),mode:r().oneOf(["select","unselect"]),show:r().oneOf(["always","notSameState"]),render:r().func})]),showSearch:r().bool};const Ar=Tr;var _r=Object.defineProperty,Lr=Object.defineProperties,Mr=Object.getOwnPropertyDescriptors,Rr=Object.getOwnPropertySymbols,Nr=Object.prototype.hasOwnProperty,Ir=Object.prototype.propertyIsEnumerable,Pr=(e,t,n)=>t in e?_r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Dr=(e,t)=>{for(var n in t||(t={}))Nr.call(t,n)&&Pr(e,n,t[n]);if(Rr)for(var n of Rr(t))Ir.call(t,n)&&Pr(e,n,t[n]);return e},Fr=(e,t)=>Lr(e,Mr(t));function Br(n){var o=n,{value:i,values:r=[],valueOverflow:s="single",label:a="",labelwidth:l,tags:c=!1,tagSeparators:u=[" ","Enter"],addTagOnBlur:h=!1,max:d,multiple:p=!1,placeholder:m="",theme:f,note:y="",error:v="",disabled:b=!1,readOnly:w=!1,allowCustomValues:x=!0,searchItem:k,renderValue:C,renderListItem:$,renderList:S,CustomListComponent:E,onBeforeChange:O=(()=>!0),onChange:T=(()=>{}),floatingContainerConfig:A,expandMode:_,infiniteScrollerConfig:L,displayDropdownTrigger:M=!0,selectAll:R,closeOnSelect:N,showSearch:I=!1,required:P=!1,validateOnChange:D=(()=>{}),wrapperClassName:F=""}=o,B=((e,t)=>{var n={};for(var o in e)Nr.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Rr)for(var o of Rr(e))t.indexOf(o)<0&&Ir.call(e,o)&&(n[o]=e[o]);return n})(o,["value","values","valueOverflow","label","labelwidth","tags","tagSeparators","addTagOnBlur","max","multiple","placeholder","theme","note","error","disabled","readOnly","allowCustomValues","searchItem","renderValue","renderListItem","renderList","CustomListComponent","onBeforeChange","onChange","floatingContainerConfig","expandMode","infiniteScrollerConfig","displayDropdownTrigger","selectAll","closeOnSelect","showSearch","required","validateOnChange","wrapperClassName"]);const W=(0,e.useMemo)((()=>p?1/0:d||(c?1/0:1)),[p,d,c]),H=E?(e,{sendMessage:n})=>t().createElement(E,{filteredValues:e,handleListItemClick:t=>n("value.select",{item:e[t]})}):S,j=(0,e.useRef)(null),z=(0,e.useRef)(null),V=(0,e.useRef)(null),U=(0,e.useRef)(null),[G,K]=(0,e.useState)(jr(i,r)),[q,Y]=(0,e.useState)(r.map((e=>Hr(e)))),[J,X]=(0,e.useState)(""),[Q,Z]=(0,e.useState)(null),[ee,te]=(0,e.useState)(!1),[ne,oe]=(0,e.useState)(!1),[ie,re]=(0,e.useState)("");function se(){return(f?f.split(" "):[]).map((e=>`tyk-form-group--${e}`))}function ae(){const e=k||((e,t)=>{var n,o;return null==(o=null==(n=null==e?void 0:e.name)?void 0:n.toLowerCase())?void 0:o.includes(t)});return q.filter((t=>e(t,J.toLowerCase())))}function le(){te(!0)}function ce(){te(!1),c||ue(""),Z(null)}function ue(e){X(e),Q&&ae().every((e=>e.id!==Q.id))&&Z(null),e&&!ee&&le()}function he(e,t){const n=D(e,t);return re(n),void 0===n}function de(e){K(e),T(1!==W||c?e:e[0]||null)}function pe(e){if(!e)return;if(G.length>=W)return;if(G.some((({name:t})=>t===e)))return;const t=q.findIndex((t=>t.name===e));let n,o,i=[...G];-1===t?x&&(n={id:e,name:e},i=[...G,n]):(o=[...q.slice(0,t),Fr(Dr({},q[t]),{selected:!0}),...q.slice(t+1)],n=q[t],i=[...G,q[t]]),he(i,n)&&O(G,i)&&(o&&Y(o),de(i))}function ge({id:e}){const t=q.find((t=>t.id===e)),n=q.findIndex((t=>t.id===e));let o=G,i=q;t.selected?P&&1===W||(o=G.filter((e=>e.id!==t.id)),i=q.with(n,Fr(Dr({},t),{selected:!1}))):G.lengthFr(Dr({},e),{selected:e.id===t.id})))),he(o,t)&&O(G,o)&&(de(o),Y(i)),(1===W||N)&&ce()}function me(e){if(q.length>W)return;const t=e?[...q]:[];O(G,t)&&(de(t),Y(q.map((t=>Fr(Dr({},t),{selected:e})))),N&&ce())}function fe(){const e=ae().filter((e=>!e.disabled));if(0===e.length)return;if(null===Q||1===e.length)return void Z(e[e.length-1]);const t=e.findIndex((e=>e.id===Q.id));Z(e[t>0?t-1:e.length-1])}function ye(){const e=ae().filter((e=>!e.disabled));if(0===e.length)return;if(null===Q||1===e.length)return void Z(e[0]);const t=e.findIndex((e=>e.id===Q.id));Z(e[tt.id===e)),n=G.filter((t=>t.id!==e));O(G,n)&&(-1!==t&&Y([...q.slice(0,t),Fr(Dr({},q[t]),{selected:!1}),...q.slice(t+1)]),de(n))}(t),"input.change"===e&&ue(t),"input.enter"===e&&(Q?ge(Q):u.includes("Enter")&&(pe(t),ue(""))),"input.arrowUp"===e&&(le(),fe()),"input.arrowDown"===e&&(le(),ye()),"input.escape"===e&&ce(),"input.blur"===e&&h&&(pe(t),ue("")),"input.focus"===e&&le()}const xe=(0,e.useCallback)(((e,t)=>{e.startsWith("tag.")&&we(e.slice(4),t),"value.select"===e&&ge(t.item),"value.select-all"===e&&me(t),"text-value.click"===e&&le(),"search.change"===e&&ue(t),"search.escape"===e&&ce(),"search.arrowUp"===e&&fe(),"search.arrowDown"===e&&ye(),"search.enter"===e&&Q&&ge(Q)}),[we,ge,me,le,ue,ce,fe,ye]),ke=(0,e.useCallback)((()=>_?t().createElement(g,{type:ne?"compress-arrows-alt":"expand-arrows-alt"}):t().createElement(g,{family:"tykon",type:"arrowdown"})),[_,ne]);(0,e.useEffect)((()=>(window.addEventListener("click",be,!0),()=>window.removeEventListener("click",be,!0))),[]),(0,e.useEffect)((()=>{if(r.length){const e=r.map((e=>Fr(Dr({},Hr(e)),{selected:G.some((t=>t.id===e.id))})));Y(e),K((t=>t.map((t=>e.find((e=>e.id===t.id))||t))))}else q.length&&Y([])}),[r]),(0,e.useEffect)((()=>{const e=jr(i,q);K(e),Y((t=>t.map((t=>Fr(Dr({},Hr(t)),{selected:e.some((e=>e.id===t.id))})))))}),[i]),(0,e.useEffect)((()=>{if(!_)return()=>{};const e=z.current.querySelector(".tyk-combobox2__current-values"),t=()=>{e.scrollTop=e.scrollHeight},n=new MutationObserver(t),o=new ResizeObserver(t);return n.observe(e,{attributes:!0,childList:!0,subtree:!0}),o.observe(e),()=>{n.disconnect(),o.disconnect()}}));const Ce=ae(),$e=["tyk-combobox2__current-values",_&&"expand-mode","tyk-combobox2__current-values--"+(ne?"expanded":"collapsed")].join(" ");return t().createElement("div",Fr(Dr({ref:j,tabIndex:b?"-1":"0",onClickCapture:function(e){if(!b)return;if(!_)return void e.stopPropagation();const t=j.current.querySelector(".tyk-combobox2__values-container-trigger");t&&(t===e.target||t.contains(e.target)||e.stopPropagation())}},B),{className:[F,"tyk-form-group","tyk-combobox2",...se(),(v||ie)&&"has-error",l&&"tyk-form-group--label-has-width",b&&"disabled",_&&"is-expand-mode"].filter(Boolean).join(" ")}),a&&t().createElement("label",{style:{flexBasis:l||"auto"}},a),!w&&t().createElement("div",{className:"tyk-form-control__wrapper",style:{flexBasis:`calc(100% - ${l} - 20px)`}},t().createElement("div",{className:"tyk-form-control",ref:z},t().createElement("div",{className:$e,onClick:le,role:"none"},t().createElement(Or,{value:G,max:W,tags:c,tagSeparators:u,addTagOnBlur:h,allowCustomValues:x,placeholder:m,disabled:b,valueOverflow:s,renderValue:C,focus:ee,onMessage:xe,readOnly:w})),M&&t().createElement("div",{className:"tyk-combobox2__values-container-trigger"+(ne?" tyk-combobox2__values-container-trigger--expanded":""),role:"button",tabIndex:b?-1:0,onClick:ve,onKeyDown:ve},ke())),ee&&(!c||Ce.length>0)&&t().createElement(Pt,Fr(Dr({element:z,size:"matchElement",className:`tyk-combobox2__combobox-dropdown tyk-form-group ${se().join(" ")}`,ref:V,displayAxis:"vertical"},A),{infiniteScrollerConfig:L}),H?H(Ce,{tags:c,searchValue:J,activeItem:Q,listRef:U,sendMessage:xe}):t().createElement(Ar,{listRef:U,showSearch:I,values:Ce,tags:c,searchValue:J,activeItem:Q,onMessage:xe,renderListItem:$,selectAll:R})),y&&t().createElement("p",{className:"tyk-form-control__help-block"},y),(v&&"true"!==v&&"false"!==v||Boolean(ie))&&t().createElement("p",{className:"tyk-form-control__error-message"},v||ie)),w&&t().createElement("div",null,t().createElement(Or,{value:G,tags:c,renderValue:C,readOnly:w})))}Br.propTypes={allowCustomValues:r().bool,CustomListComponent:r().elementType,searchItem:r().func,renderValue:r().func,renderListItem:r().func,renderList:r().func,disabled:r().bool,readOnly:r().bool,error:r().string,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,max:r().number,multiple:r().bool,note:r().oneOfType([r().node,r().element,r().string]),onBeforeChange:r().func,onChange:r().func,placeholder:r().string,tags:r().bool,tagSeparators:r().arrayOf(r().string),addTagOnBlur:r().bool,theme:r().string,value:r().oneOfType([r().string,r().instanceOf(Array),r().instanceOf(Object)]),values:r().instanceOf(Array),floatingContainerConfig:r().instanceOf(Object),valueOverflow:r().oneOf(["single","multiple"]),expandMode:r().bool,infiniteScrollerConfig:r().instanceOf(Object),displayDropdownTrigger:r().bool,selectAll:r().oneOfType([r().bool,r().shape({label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),mode:r().oneOf(["select","unselect"]),show:r().oneOf(["always","notSameState"]),render:r().func})]),closeOnSelect:r().bool,showSearch:r().bool,required:r().bool,validateOnChange:r().func,wrapperClassName:r().string};const Wr=Br;function Hr(e,t){let n=e;if("string"==typeof e?n={id:e,name:e}:e.hasOwnProperty("name")||(n=Fr(Dr({},e),{name:e.id})),!t)return n;const o=t.find((e=>e.id===n.id));return o?Dr(Dr({},n),o):n}function jr(e,t){return e?Array.isArray(e)?e.map((e=>Hr(e,t))):[Hr(e,t)]:[]}const zr=require("flatpickr");var Vr=n.n(zr),Ur=Object.defineProperty,Gr=Object.defineProperties,Kr=Object.getOwnPropertyDescriptors,qr=Object.getOwnPropertySymbols,Yr=Object.prototype.hasOwnProperty,Jr=Object.prototype.propertyIsEnumerable,Xr=(e,t,n)=>t in e?Ur(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Qr({children:n,disabled:o,readOnly:i=!1,error:r,id:s,label:a,labelwidth:l,note:c,onClose:u,onChange:h,onOpen:d,theme:p,config:m={},value:f,wrapperClassName:y=""}){const[v,b]=(0,e.useState)(null),w=(0,e.useRef)(null),x=me(f),k=(0,e.useCallback)(((e,t)=>{if(!e)return!0;if(!Array.isArray(t))return e.getTime()!==t.getTime();let n=t;return e&&t.length&&e.length?(n=t.filter(((t,n)=>t.getTime()!==e[n].getTime())),n.length>0):t.length>0}),[]),C=(0,e.useCallback)((e=>{const t="range"===m.mode?e:e[0]||null;h&&("range"===m.mode?2===t.length&&k(x,t)&&h(t):h(t))}),[x,h,k]);(0,e.useEffect)((()=>{if(w.current&&!v){const t=Vr()(w.current,(e=((e,t)=>{for(var n in t||(t={}))Yr.call(t,n)&&Xr(e,n,t[n]);if(qr)for(var n of qr(t))Jr.call(t,n)&&Xr(e,n,t[n]);return e})({},m),Gr(e,Kr({defaultDate:f,onChange:C,onClose:u,onOpen:d}))));b(t)}var e;return()=>{v&&v.destroy()}}),[v]),(0,e.useEffect)((()=>{if(v){let e=f;"string"==typeof f?e=new Date(f):Array.isArray(f)&&(e=f.map((e=>new Date(e)))),k(x,e)&&(v.set("onChange",C),"range"===m.mode?e&&2===e.length&&v.setDate(e,!0):v.setDate(e,!0))}}),[x,f,v]);const $=["tyk-form-group","tyk-form-group--addon-right",y,...p?p.split(" ").map((e=>`tyk-form-group--${e}`)):[],l&&"tyk-form-group--label-has-width",r&&"has-error"].filter(Boolean).join(" "),S=(0,e.useCallback)((()=>{v&&v.open()}),[v]);return t().createElement(t().Fragment,null,(null==n?void 0:n.length)?n({openCalendar:S,ref:w}):t().createElement("div",{className:$},a?t().createElement("label",{htmlFor:s,style:l?{flexBasis:l}:{}},a):null,!i&&t().createElement("div",{className:"tyk-form-control__wrapper flatpickr",style:l?{flexBasis:`calc(100% - ${l} - 20px)`}:{}},t().createElement("div",{className:"tyk-input-group"},(()=>{let e={},n={};return(null==m?void 0:m.inline)&&(e={height:0,padding:0,width:0,visibility:"hidden"},n={display:"none"}),t().createElement(t().Fragment,null,t().createElement("input",{disabled:o,className:"tyk-form-control","data-input":!0,type:"date",ref:w,style:e}),t().createElement("div",{className:"tyk-input-group__addon",onClick:S,role:"button",onKeyUp:()=>{},tabIndex:0,style:n,"aria-label":"show calendar"},t().createElement(g,{type:"calendar"})))})()),c?t().createElement("p",{className:"tyk-form-control__help-block"},c):null,r&&"true"!==r&&"false"!==r?t().createElement("p",{className:"tyk-form-control__error-message"},r):null)),t().createElement("div",{className:"tyk-form-control--readonly"},i&&!f&&"-",i&&f&&Vr().formatDate(f,m.dateFormat||"d/m/Y")))}Qr.propTypes={config:r().instanceOf(Object),children:r().oneOfType([r().element,r().node,r().string,r().func]),disabled:r().bool,readOnly:r().bool,id:r().string,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,note:r().string,onChange:r().oneOfType([r().func,r().instanceOf(Array)]),onClose:r().oneOfType([r().func,r().instanceOf(Array)]),onOpen:r().oneOfType([r().func,r().instanceOf(Array)]),theme:r().string,error:r().string,value:r().oneOfType([r().instanceOf(Array),r().instanceOf(Object),r().string]),wrapperClassName:r().string};const Zr=Qr;function es(e){return es="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},es(e)}function ts(e,t){if(t.length1?"s":"")+" required, but only "+t.length+" present")}function ns(e){return ts(1,arguments),e instanceof Date||"object"===es(e)&&"[object Date]"===Object.prototype.toString.call(e)}function os(e){ts(1,arguments);var t=Object.prototype.toString.call(e);return e instanceof Date||"object"===es(e)&&"[object Date]"===t?new Date(e.getTime()):"number"==typeof e||"[object Number]"===t?new Date(e):("string"!=typeof e&&"[object String]"!==t||"undefined"==typeof console||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn((new Error).stack)),new Date(NaN))}function is(e){if(null===e||!0===e||!1===e)return NaN;var t=Number(e);return isNaN(t)?t:t<0?Math.ceil(t):Math.floor(t)}function rs(e){ts(1,arguments);var t=os(e),n=t.getUTCDay(),o=(n<1?7:0)+n-1;return t.setUTCDate(t.getUTCDate()-o),t.setUTCHours(0,0,0,0),t}function ss(e){ts(1,arguments);var t=os(e),n=t.getUTCFullYear(),o=new Date(0);o.setUTCFullYear(n+1,0,4),o.setUTCHours(0,0,0,0);var i=rs(o),r=new Date(0);r.setUTCFullYear(n,0,4),r.setUTCHours(0,0,0,0);var s=rs(r);return t.getTime()>=i.getTime()?n+1:t.getTime()>=s.getTime()?n:n-1}var as={};function ls(){return as}function cs(e,t){var n,o,i,r,s,a,l,c;ts(1,arguments);var u=ls(),h=is(null!==(n=null!==(o=null!==(i=null!==(r=null==t?void 0:t.weekStartsOn)&&void 0!==r?r:null==t||null===(s=t.locale)||void 0===s||null===(a=s.options)||void 0===a?void 0:a.weekStartsOn)&&void 0!==i?i:u.weekStartsOn)&&void 0!==o?o:null===(l=u.locale)||void 0===l||null===(c=l.options)||void 0===c?void 0:c.weekStartsOn)&&void 0!==n?n:0);if(!(h>=0&&h<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var d=os(e),p=d.getUTCDay(),g=(p=1&&p<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var g=new Date(0);g.setUTCFullYear(h+1,0,p),g.setUTCHours(0,0,0,0);var m=cs(g,t),f=new Date(0);f.setUTCFullYear(h,0,p),f.setUTCHours(0,0,0,0);var y=cs(f,t);return u.getTime()>=m.getTime()?h+1:u.getTime()>=y.getTime()?h:h-1}function hs(e,t){for(var n=e<0?"-":"",o=Math.abs(e).toString();o.length0?n:1-n;return hs("yy"===t?o%100:o,t.length)},ps=function(e,t){var n=e.getUTCMonth();return"M"===t?String(n+1):hs(n+1,2)},gs=function(e,t){return hs(e.getUTCDate(),t.length)},ms=function(e,t){return hs(e.getUTCHours()%12||12,t.length)},fs=function(e,t){return hs(e.getUTCHours(),t.length)},ys=function(e,t){return hs(e.getUTCMinutes(),t.length)},vs=function(e,t){return hs(e.getUTCSeconds(),t.length)},bs=function(e,t){var n=t.length,o=e.getUTCMilliseconds();return hs(Math.floor(o*Math.pow(10,n-3)),t.length)};var ws={G:function(e,t,n){var o=e.getUTCFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(o,{width:"abbreviated"});case"GGGGG":return n.era(o,{width:"narrow"});default:return n.era(o,{width:"wide"})}},y:function(e,t,n){if("yo"===t){var o=e.getUTCFullYear(),i=o>0?o:1-o;return n.ordinalNumber(i,{unit:"year"})}return ds(e,t)},Y:function(e,t,n,o){var i=us(e,o),r=i>0?i:1-i;return"YY"===t?hs(r%100,2):"Yo"===t?n.ordinalNumber(r,{unit:"year"}):hs(r,t.length)},R:function(e,t){return hs(ss(e),t.length)},u:function(e,t){return hs(e.getUTCFullYear(),t.length)},Q:function(e,t,n){var o=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"Q":return String(o);case"QQ":return hs(o,2);case"Qo":return n.ordinalNumber(o,{unit:"quarter"});case"QQQ":return n.quarter(o,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(o,{width:"narrow",context:"formatting"});default:return n.quarter(o,{width:"wide",context:"formatting"})}},q:function(e,t,n){var o=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"q":return String(o);case"qq":return hs(o,2);case"qo":return n.ordinalNumber(o,{unit:"quarter"});case"qqq":return n.quarter(o,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(o,{width:"narrow",context:"standalone"});default:return n.quarter(o,{width:"wide",context:"standalone"})}},M:function(e,t,n){var o=e.getUTCMonth();switch(t){case"M":case"MM":return ps(e,t);case"Mo":return n.ordinalNumber(o+1,{unit:"month"});case"MMM":return n.month(o,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(o,{width:"narrow",context:"formatting"});default:return n.month(o,{width:"wide",context:"formatting"})}},L:function(e,t,n){var o=e.getUTCMonth();switch(t){case"L":return String(o+1);case"LL":return hs(o+1,2);case"Lo":return n.ordinalNumber(o+1,{unit:"month"});case"LLL":return n.month(o,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(o,{width:"narrow",context:"standalone"});default:return n.month(o,{width:"wide",context:"standalone"})}},w:function(e,t,n,o){var i=function(e,t){ts(1,arguments);var n=os(e),o=cs(n,t).getTime()-function(e,t){var n,o,i,r,s,a,l,c;ts(1,arguments);var u=ls(),h=is(null!==(n=null!==(o=null!==(i=null!==(r=null==t?void 0:t.firstWeekContainsDate)&&void 0!==r?r:null==t||null===(s=t.locale)||void 0===s||null===(a=s.options)||void 0===a?void 0:a.firstWeekContainsDate)&&void 0!==i?i:u.firstWeekContainsDate)&&void 0!==o?o:null===(l=u.locale)||void 0===l||null===(c=l.options)||void 0===c?void 0:c.firstWeekContainsDate)&&void 0!==n?n:1),d=us(e,t),p=new Date(0);return p.setUTCFullYear(d,0,h),p.setUTCHours(0,0,0,0),cs(p,t)}(n,t).getTime();return Math.round(o/6048e5)+1}(e,o);return"wo"===t?n.ordinalNumber(i,{unit:"week"}):hs(i,t.length)},I:function(e,t,n){var o=function(e){ts(1,arguments);var t=os(e),n=rs(t).getTime()-function(e){ts(1,arguments);var t=ss(e),n=new Date(0);return n.setUTCFullYear(t,0,4),n.setUTCHours(0,0,0,0),rs(n)}(t).getTime();return Math.round(n/6048e5)+1}(e);return"Io"===t?n.ordinalNumber(o,{unit:"week"}):hs(o,t.length)},d:function(e,t,n){return"do"===t?n.ordinalNumber(e.getUTCDate(),{unit:"date"}):gs(e,t)},D:function(e,t,n){var o=function(e){ts(1,arguments);var t=os(e),n=t.getTime();t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0);var o=n-t.getTime();return Math.floor(o/864e5)+1}(e);return"Do"===t?n.ordinalNumber(o,{unit:"dayOfYear"}):hs(o,t.length)},E:function(e,t,n){var o=e.getUTCDay();switch(t){case"E":case"EE":case"EEE":return n.day(o,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(o,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(o,{width:"short",context:"formatting"});default:return n.day(o,{width:"wide",context:"formatting"})}},e:function(e,t,n,o){var i=e.getUTCDay(),r=(i-o.weekStartsOn+8)%7||7;switch(t){case"e":return String(r);case"ee":return hs(r,2);case"eo":return n.ordinalNumber(r,{unit:"day"});case"eee":return n.day(i,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(i,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(i,{width:"short",context:"formatting"});default:return n.day(i,{width:"wide",context:"formatting"})}},c:function(e,t,n,o){var i=e.getUTCDay(),r=(i-o.weekStartsOn+8)%7||7;switch(t){case"c":return String(r);case"cc":return hs(r,t.length);case"co":return n.ordinalNumber(r,{unit:"day"});case"ccc":return n.day(i,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(i,{width:"narrow",context:"standalone"});case"cccccc":return n.day(i,{width:"short",context:"standalone"});default:return n.day(i,{width:"wide",context:"standalone"})}},i:function(e,t,n){var o=e.getUTCDay(),i=0===o?7:o;switch(t){case"i":return String(i);case"ii":return hs(i,t.length);case"io":return n.ordinalNumber(i,{unit:"day"});case"iii":return n.day(o,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(o,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(o,{width:"short",context:"formatting"});default:return n.day(o,{width:"wide",context:"formatting"})}},a:function(e,t,n){var o=e.getUTCHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(o,{width:"narrow",context:"formatting"});default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},b:function(e,t,n){var o,i=e.getUTCHours();switch(o=12===i?"noon":0===i?"midnight":i/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(o,{width:"narrow",context:"formatting"});default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},B:function(e,t,n){var o,i=e.getUTCHours();switch(o=i>=17?"evening":i>=12?"afternoon":i>=4?"morning":"night",t){case"B":case"BB":case"BBB":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(o,{width:"narrow",context:"formatting"});default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},h:function(e,t,n){if("ho"===t){var o=e.getUTCHours()%12;return 0===o&&(o=12),n.ordinalNumber(o,{unit:"hour"})}return ms(e,t)},H:function(e,t,n){return"Ho"===t?n.ordinalNumber(e.getUTCHours(),{unit:"hour"}):fs(e,t)},K:function(e,t,n){var o=e.getUTCHours()%12;return"Ko"===t?n.ordinalNumber(o,{unit:"hour"}):hs(o,t.length)},k:function(e,t,n){var o=e.getUTCHours();return 0===o&&(o=24),"ko"===t?n.ordinalNumber(o,{unit:"hour"}):hs(o,t.length)},m:function(e,t,n){return"mo"===t?n.ordinalNumber(e.getUTCMinutes(),{unit:"minute"}):ys(e,t)},s:function(e,t,n){return"so"===t?n.ordinalNumber(e.getUTCSeconds(),{unit:"second"}):vs(e,t)},S:function(e,t){return bs(e,t)},X:function(e,t,n,o){var i=(o._originalDate||e).getTimezoneOffset();if(0===i)return"Z";switch(t){case"X":return ks(i);case"XXXX":case"XX":return Cs(i);default:return Cs(i,":")}},x:function(e,t,n,o){var i=(o._originalDate||e).getTimezoneOffset();switch(t){case"x":return ks(i);case"xxxx":case"xx":return Cs(i);default:return Cs(i,":")}},O:function(e,t,n,o){var i=(o._originalDate||e).getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+xs(i,":");default:return"GMT"+Cs(i,":")}},z:function(e,t,n,o){var i=(o._originalDate||e).getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+xs(i,":");default:return"GMT"+Cs(i,":")}},t:function(e,t,n,o){var i=o._originalDate||e;return hs(Math.floor(i.getTime()/1e3),t.length)},T:function(e,t,n,o){return hs((o._originalDate||e).getTime(),t.length)}};function xs(e,t){var n=e>0?"-":"+",o=Math.abs(e),i=Math.floor(o/60),r=o%60;if(0===r)return n+String(i);var s=t||"";return n+String(i)+s+hs(r,2)}function ks(e,t){return e%60==0?(e>0?"-":"+")+hs(Math.abs(e)/60,2):Cs(e,t)}function Cs(e,t){var n=t||"",o=e>0?"-":"+",i=Math.abs(e);return o+hs(Math.floor(i/60),2)+n+hs(i%60,2)}const $s=ws;var Ss=function(e,t){switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}},Es=function(e,t){switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}},Os={p:Es,P:function(e,t){var n,o=e.match(/(P+)(p+)?/)||[],i=o[1],r=o[2];if(!r)return Ss(e,t);switch(i){case"P":n=t.dateTime({width:"short"});break;case"PP":n=t.dateTime({width:"medium"});break;case"PPP":n=t.dateTime({width:"long"});break;default:n=t.dateTime({width:"full"})}return n.replace("{{date}}",Ss(i,t)).replace("{{time}}",Es(r,t))}};const Ts=Os;var As=["D","DD"],_s=["YY","YYYY"];function Ls(e,t,n){if("YYYY"===e)throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(t,"`) for formatting years to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("YY"===e)throw new RangeError("Use `yy` instead of `YY` (in `".concat(t,"`) for formatting years to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("D"===e)throw new RangeError("Use `d` instead of `D` (in `".concat(t,"`) for formatting days of the month to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("DD"===e)throw new RangeError("Use `dd` instead of `DD` (in `".concat(t,"`) for formatting days of the month to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"))}var Ms={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function Rs(e){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}var Ns,Is={date:Rs({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:Rs({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:Rs({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},Ps={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function Ds(e){return function(t,n){var o;if("formatting"===(null!=n&&n.context?String(n.context):"standalone")&&e.formattingValues){var i=e.defaultFormattingWidth||e.defaultWidth,r=null!=n&&n.width?String(n.width):i;o=e.formattingValues[r]||e.formattingValues[i]}else{var s=e.defaultWidth,a=null!=n&&n.width?String(n.width):e.defaultWidth;o=e.values[a]||e.values[s]}return o[e.argumentCallback?e.argumentCallback(t):t]}}function Fs(e){return function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=n.width,i=o&&e.matchPatterns[o]||e.matchPatterns[e.defaultMatchWidth],r=t.match(i);if(!r)return null;var s,a=r[0],l=o&&e.parsePatterns[o]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(l)?function(e,t){for(var n=0;n0?"in "+o:o+" ago":o},formatLong:Is,formatRelative:function(e,t,n,o){return Ps[e]},localize:{ordinalNumber:function(e,t){var n=Number(e),o=n%100;if(o>20||o<10)switch(o%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:Ds({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:Ds({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:function(e){return e-1}}),month:Ds({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:Ds({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:Ds({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(Ns={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:function(e){return parseInt(e,10)}},function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.match(Ns.matchPattern);if(!n)return null;var o=n[0],i=e.match(Ns.parsePattern);if(!i)return null;var r=Ns.valueCallback?Ns.valueCallback(i[0]):i[0];return{value:r=t.valueCallback?t.valueCallback(r):r,rest:e.slice(o.length)}}),era:Fs({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:Fs({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(e){return e+1}}),month:Fs({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:Fs({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:Fs({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}};var Ws=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Hs=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,js=/^'([^]*?)'?$/,zs=/''/g,Vs=/[a-zA-Z]/;function Us(e,t,n){var o,i,r,s,a,l,c,u,h,d,p,g,m,f,y,v,b,w;ts(2,arguments);var x=String(t),k=ls(),C=null!==(o=null!==(i=null==n?void 0:n.locale)&&void 0!==i?i:k.locale)&&void 0!==o?o:Bs,$=is(null!==(r=null!==(s=null!==(a=null!==(l=null==n?void 0:n.firstWeekContainsDate)&&void 0!==l?l:null==n||null===(c=n.locale)||void 0===c||null===(u=c.options)||void 0===u?void 0:u.firstWeekContainsDate)&&void 0!==a?a:k.firstWeekContainsDate)&&void 0!==s?s:null===(h=k.locale)||void 0===h||null===(d=h.options)||void 0===d?void 0:d.firstWeekContainsDate)&&void 0!==r?r:1);if(!($>=1&&$<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var S=is(null!==(p=null!==(g=null!==(m=null!==(f=null==n?void 0:n.weekStartsOn)&&void 0!==f?f:null==n||null===(y=n.locale)||void 0===y||null===(v=y.options)||void 0===v?void 0:v.weekStartsOn)&&void 0!==m?m:k.weekStartsOn)&&void 0!==g?g:null===(b=k.locale)||void 0===b||null===(w=b.options)||void 0===w?void 0:w.weekStartsOn)&&void 0!==p?p:0);if(!(S>=0&&S<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!C.localize)throw new RangeError("locale must contain localize property");if(!C.formatLong)throw new RangeError("locale must contain formatLong property");var E=os(e);if(!function(e){if(ts(1,arguments),!ns(e)&&"number"!=typeof e)return!1;var t=os(e);return!isNaN(Number(t))}(E))throw new RangeError("Invalid time value");var O=function(e){var t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),e.getTime()-t.getTime()}(E),T=function(e,t){return ts(2,arguments),function(e,t){ts(2,arguments);var n=os(e).getTime(),o=is(t);return new Date(n+o)}(e,-is(t))}(E,O),A={firstWeekContainsDate:$,weekStartsOn:S,locale:C,_originalDate:E};return x.match(Hs).map((function(e){var t=e[0];return"p"===t||"P"===t?(0,Ts[t])(e,C.formatLong):e})).join("").match(Ws).map((function(o){if("''"===o)return"'";var i,r,s=o[0];if("'"===s)return(r=(i=o).match(js))?r[1].replace(zs,"'"):i;var a,l=$s[s];if(l)return null!=n&&n.useAdditionalWeekYearTokens||(a=o,-1===_s.indexOf(a))||Ls(o,t,String(e)),null!=n&&n.useAdditionalDayOfYearTokens||!function(e){return-1!==As.indexOf(e)}(o)||Ls(o,t,String(e)),l(T,o,C.localize,A);if(s.match(Vs))throw new RangeError("Format string contains an unescaped latin alphabet character `"+s+"`");return o})).join("")}var Gs=n(590),Ks=n.n(Gs),qs=Object.defineProperty,Ys=Object.defineProperties,Js=Object.getOwnPropertyDescriptors,Xs=Object.getOwnPropertySymbols,Qs=Object.prototype.hasOwnProperty,Zs=Object.prototype.propertyIsEnumerable,ea=(e,t,n)=>t in e?qs(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ta=(e,t)=>{for(var n in t||(t={}))Qs.call(t,n)&&ea(e,n,t[n]);if(Xs)for(var n of Xs(t))Zs.call(t,n)&&ea(e,n,t[n]);return e};class na extends e.Component{static getMainFormValue(e){const t=new Array(e.length);return e.forEach(((e,n)=>{t[n]=e.props.value||void 0})),t}constructor(t){super(t);const{components:n}=t;this.submitButtonRef=(0,e.createRef)(),this.handleOnChange=this.handleOnChange.bind(this),this.submitForm=this.submitForm.bind(this),this.state={components:n,errors:{},mainError:null,mainFormValue:na.getMainFormValue(n),refs:[]}}componentDidMount(){const{addValueOnFieldChange:e,getMainFormButtonWidth:t}=this.props;this.createRefs(),t&&t(e?0:this.submitButtonRef.current.clientWidth)}static getDerivedStateFromProps(e,t){const n={},{components:o}=e,{components:i}=t;return Ks()(o,i)||Ks()(na.getMainFormValue(o),na.getMainFormValue(i))||(n.mainFormValue=na.getMainFormValue(o),n.components=o),n}handleOnChange(e,t,n){const{addValueOnFieldChange:o}=this.props;let i=this.state;i=ta(ta({},i),this.validateValue(n,e.props)),i.errors[e.props.name]||(i.mainFormValue[t]=n,e.props.onChange&&e.props.onChange(n)),this.setState((e=>ta(ta({},e),i)),(()=>{o&&this.submitForm()}))}getFormCssClasses(){const{noLabels:e}=this.props,t=["tyk-editable-list__form"];return e&&t.push("no-labels"),t.join(" ")}getButtonClassName(){const{buttonStyle:e,displayType:t}=this.props,n=[];return e&&n.push(e),t&&n.push(t),n.join(" ")}getComponentsError(e){const{error:t,errors:n,mainError:o}=this.state;return t||o?n[e.props.name]="true":t||o||"true"!==n[e.props.name]||delete n[e.props.name],n[e.props.name]?n[e.props.name].toString():void 0}createRefs(){const{components:t}=this.props,n=[];t.forEach((()=>{n.push((0,e.createRef)())})),this.setState({refs:n})}validateValue(e,t){const{mainError:n,errors:o}=this.state,{error:i,errorPersist:r}=this.props,s=t.validate?Object.keys(t.validate):[],a={errors:i||n?{}:ta({},o)};let l=!0;if(r)return a;for(const n of s)if((0,t.validate[n])(e)){a.errors[t.name]=t.validationmessages[n],l=!1;break}return l&&delete a.errors[t.name],a.mainError=null,a}hasMainFormErrors(e){const{components:t,errorPersist:n}=this.props,{mainFormValue:o}=this.state,i={errors:ta({},e)};return(!n||-1!==o.indexOf(void 0))&&(Object.keys(i.errors).length>0||(t.forEach(((e,t)=>{i.errors=ta(ta({},i.errors),this.validateValue(o[t],e.props).errors)})),Object.keys(i.errors).length>0))}resetForm(){const{refs:e}=this.state,{components:t}=this.props;e.forEach((e=>{var t;(null==(t=e.current)?void 0:t.reset)&&e.current.reset()})),this.setState({errors:{},mainError:null,mainFormValue:na.getMainFormValue(t)})}showMainError(e){this.setState({mainError:e})}submitForm(){const{errors:e,mainFormValue:t}=this.state,{errorPersist:n,onSubmit:o,validate:i,validationmessage:r}=this.props;n&&(o(t),this.resetForm()),0===Object.keys(e).length&&o&&"function"==typeof o&&(i&&i(t)?this.showMainError(r):(o(t),this.resetForm()))}render(){const{addValueOnFieldChange:e,components:n,buttonName:o,disabled:i,displayType:r,error:s}=this.props,{mainError:a,refs:l,errors:c}=this.state;return t().createElement("div",null,t().createElement("div",{className:this.getFormCssClasses()},t().createElement(yi,null,n.map(((e,n)=>{const o=e.name;console.log("ComponentName",o);const s=e.props,{onChange:a,value:c}=s,u=((e,t)=>{var n={};for(var o in e)Qs.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Xs)for(var o of Xs(e))t.indexOf(o)<0&&Zs.call(e,o)&&(n[o]=e[o]);return n})(s,["onChange","value"]);return t().createElement(li,{size:`md-${e.size||"12"} lg-${e.size||"12"}`,key:e.props.name},t().createElement(o,(h=ta({disabled:i||e.props.disabled,onChange:this.handleOnChange.bind(this,e,n)},u),d={label:"inline"===r?"":e.props.label,error:this.getComponentsError(e),ref:l[n],value:c},Ys(h,Js(d)))));var h,d}))),e?null:t().createElement("span",{className:this.getButtonClassName(),ref:this.submitButtonRef},t().createElement(U,{disabled:this.hasMainFormErrors(c),className:"tyk-editable-list__submit-btn",onClick:this.submitForm,theme:"default",type:"button",size:"inline"===r?"sm":"md"},o||"ADD"))),s||a?t().createElement("div",{className:"tyk-editable-list-main-error"},t().createElement("p",{className:"error-message"},s||a)):null)}}na.propTypes={addValueOnFieldChange:r().bool,noLabels:r().bool,buttonName:r().string,buttonStyle:r().string,components:r().instanceOf(Array),displayType:r().string,disabled:r().bool,getMainFormButtonWidth:r().func,error:r().string,errorPersist:r().bool,onSubmit:r().func,validate:r().func,validationmessage:r().string};const oa=na;var ia=Object.defineProperty,ra=Object.getOwnPropertySymbols,sa=Object.prototype.hasOwnProperty,aa=Object.prototype.propertyIsEnumerable,la=(e,t,n)=>t in e?ia(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ca=(e,t)=>{for(var n in t||(t={}))sa.call(t,n)&&la(e,n,t[n]);if(ra)for(var n of ra(t))aa.call(t,n)&&la(e,n,t[n]);return e};class ua extends e.Component{static getItemListValue(e){let t=null;return"string"==typeof e&&(t=e),"[object Object]"===Object.prototype.toString.call(e)&&(t=e.name),ns(e)&&(t=Us(e,"dd/MM/yyyy")),t}static getListItemCssClass(e){const t=[];return"inline"===e&&t.push("tyk-editable-list-item--inline"),t.join(" ")}constructor(t){super(t);const{value:n}=this.props;this.state={initialValue:n||"",value:n||[],buttonWidth:0},this.startIndex=1,this.handleFormSubmit=this.handleFormSubmit.bind(this),this.getMainFormButtonWidth=this.getMainFormButtonWidth.bind(this),this.dropdownListItemRef=(0,e.createRef)()}static getDerivedStateFromProps(e,t){const n={};return e.value&&JSON.stringify(e.value)!==JSON.stringify(t.initialValue)&&(n.value=e.value||[],n.initialValue=e.value||""),n.value?n:null}handleFormSubmit(e){const t=this.addValues(e);this.setState((e=>ca(ca({},e),t)),(()=>{this.triggerOnChange(t.value.length-1,null,e)}))}handleItemUpdate(e,t){let n;this.setState((o=>{const i=ca({},o);return n=(0,pe.fromJS)(i.value[e].value).toJS(),i.value[e].value=t,i.value[e].editMode=!1,i}),(()=>{this.triggerOnChange(e,n,t)}))}handleChildrenOnChange(e,t){let n;this.setState((o=>{const i=ca({},o);return n=(0,pe.fromJS)(i.value[e].children).toJS(),i.value[e].children=t,i}),(()=>{this.triggerOnChange(e,n,t)}))}getListItemsCssClass(e){const{config:t}=this.props,n=["tyk-editable-list-items"];return n.push(t.displayType||"table"),"inline"===e&&n.push("tyk-editable-list-items--inline"),n.join(" ")}getFormInputKey(){return this.startIndex+=1,this.startIndex}getListItemText(e){const{config:n}=this.props;let o=null;switch(n.displayType){case"list":case"inline":o=e.value.reduce(((t,n,o)=>{const i=ua.getItemListValue(n);let r=", ";return o===e.value.length-1&&(r=""),t+i+r}),"");break;default:o=t().createElement(yi,null,n.components.map(((n,o)=>t().createElement(li,{key:this.getFormInputKey(),size:`md-${n.size} lg-${n.size}`},ua.getItemListValue(e.value[o])))))}return o}getMainFormButtonWidth(e){this.setState({buttonWidth:e})}setItemEditMode(e){const t=this.closeListItems();this.setState((n=>{const o=ca({},n);return o.value=t,o.value[e].editMode=!o.value[e].editMode,o}))}isInList(e,t){const{value:n}=this.state;let o=!1;return n.forEach(((n,i)=>{JSON.stringify(n.value)===JSON.stringify(t)&&(o=!(e>=0&&i===e))})),o}addValues(e){const{value:t}=this.state,{config:n}=this.props,o={editMode:!1,value:e},i={value:t.slice(0)};return n.children&&(o.children=[]),i.value.push(o),i}removeListItem(e){let t;this.setState((n=>{const o=n.value.slice(0);return t=o.splice(e,1),{value:o}}),(()=>{this.triggerOnChange(e,t,null)}))}closeListItems(){const{value:e}=this.state;return e.map((e=>{const t=ca({},e);return t.editMode?(t.editMode=!1,t):t}))}triggerOnChange(e,t,n){const{onChange:o}=this.props,{value:i}=this.state;o&&"function"==typeof o&&o(i.length?i:null,e,t,n)}genListItem(e,n){var o;const{config:i,disabled:r}=this.props,{buttonWidth:s,value:a}=this.state,l=(0,pe.fromJS)(i.components).toJS();return e.value.forEach(((e,t)=>{l[t].props.value=e})),t().createElement("li",{key:n,className:ua.getListItemCssClass(i.displayType),ref:this.dropdownListItemRef},t().createElement("div",{className:`tyk-editable-list-item__text ${i.displayType||"table"}${e.editMode?" edit-mode-wrapper":""}`},e.editMode?t().createElement(t().Fragment,null,t().createElement(oa,{buttonName:"Update",noLabels:i.noLabels,disabled:r,displayType:i.displayType,components:l,onSubmit:this.handleItemUpdate.bind(this,n),validate:this.isInList.bind(this,n),validationmessage:"This value is already in the list"}),t().createElement("button",{type:"button",className:"tyk-editable-list-action__button on-edit",onClick:this.removeListItem.bind(this,n),"aria-label":"remove"},t().createElement(g,{type:"trash"}))):t().createElement(t().Fragment,null,this.getListItemText(e,n),t().createElement("div",{className:"tyk-editable-list-item__controls",style:{display:"block",width:"inline"===i.displayType?"auto":`${s+60}px`}},t().createElement("button",{disabled:r,type:"button",className:"tyk-editable-list-action__button",onClick:this.setItemEditMode.bind(this,n),"aria-label":"edit"},t().createElement(g,{type:"edit"})),t().createElement("button",{disabled:r,type:"button",className:"tyk-editable-list-action__button",onClick:this.removeListItem.bind(this,n),"aria-label":"remove"},t().createElement(g,{type:"trash"}))))),i.children?t().createElement(ua,{disabled:r,onChange:this.handleChildrenOnChange.bind(this,n),config:i.children.config,value:(null==(o=a[n])?void 0:o.children)||[]}):null)}genList(){const{config:e}=this.props,{buttonWidth:n,value:o}=this.state;return o&&0!==o.length?t().createElement(t().Fragment,null,"table"!==e.displayType&&e.displayType?null:t().createElement("div",{className:"tyk-editable-list__header",style:{paddingRight:`${n+60}px`}},t().createElement(yi,null,e.components.map(((e,n)=>t().createElement(li,{key:e.props.label||n,size:`md-${e.size||12} lg-${e.size||12}`},e.props.label))))),t().createElement("ul",{className:this.getListItemsCssClass(e.displayType)},o.map(((e,t)=>this.genListItem(e,t))))):null}render(){const{addValueOnFieldChange:e,config:n,error:o,disabled:i,label:r}=this.props,s=document.querySelector(n.appendTo)||document.querySelector("body");return t().createElement("div",{className:"tyk-editable-list"},r?t().createElement("label",null,r):null,t().createElement(oa,{addValueOnFieldChange:e,components:n.components,buttonName:n.formButtonTitle,buttonStyle:n.formButtonStyle,disabled:i,error:o,errorPersist:!!o,noLabels:n.noLabels,onSubmit:this.handleFormSubmit,validate:this.isInList.bind(this,-1),validationmessage:"This value is already in the list",getMainFormButtonWidth:this.getMainFormButtonWidth}),n.appendTo?dt().createPortal(this.genList(),s):this.genList())}}ua.propTypes={addValueOnFieldChange:r().bool,disabled:r().bool,error:r().string,config:r().instanceOf(Object),onChange:r().func,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),value:r().oneOfType([r().instanceOf(Array),r().instanceOf(Object)])};const ha=ua;function da({label:e,addButtonName:n,onAddRow:o,disabled:i,readOnly:r}){return t().createElement("div",{className:"editable-list__header"},e?t().createElement("label",null,e):null,!i&&!r&&t().createElement(U,{theme:"primary rounded-corners",onClick:o},n||"Add"))}da.propTypes={disabled:r().bool,readOnly:r().bool,onAddRow:r().func,addButtonName:r().string,label:r().oneOfType([r().string,r().element,r().node])};const pa=da;function ga({fields:e,readOnly:n}){return t().createElement("li",{className:"editable-list__item editable-list__item-header"},e.map((e=>{var n,o;return t().createElement("div",{key:(null==(n=null==e?void 0:e.props)?void 0:n.label)||JSON.stringify(e),className:`editable-list__item-cell editable-list__item--size-${(null==e?void 0:e.size)||12}`},null==(o=null==e?void 0:e.props)?void 0:o.label)})),t().createElement("div",{className:`editable-list__item-cell editable-list__item-action ${n&&"editable-list__item-action--read-only"}`},"Delete"))}ga.propTypes={fields:r().instanceOf(Array),readOnly:r().bool};const ma=ga;var fa=Object.defineProperty,ya=Object.defineProperties,va=Object.getOwnPropertyDescriptors,ba=Object.getOwnPropertySymbols,wa=Object.prototype.hasOwnProperty,xa=Object.prototype.propertyIsEnumerable,ka=(e,t,n)=>t in e?fa(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Ca({fields:e,disabled:n,readOnly:o,errors:i,components:r,onChange:s,onDelete:a,value:l,rowIndex:c}){return t().createElement("li",{className:"editable-list__item"},r.map(((r,a)=>{var u,h,d;const p=e[a],g="function"==typeof p?p(c,a):p;return t().createElement("div",{key:`${c}-${a}`,className:`editable-list__item-cell editable-list__item--size-${(null==(u=e[a])?void 0:u.size)||12}`},t().createElement(r,(m=((e,t)=>{for(var n in t||(t={}))wa.call(t,n)&&ka(e,n,t[n]);if(ba)for(var n of ba(t))xa.call(t,n)&&ka(e,n,t[n]);return e})({},null==g?void 0:g.props),f={label:"",value:l[a],onChange:s.bind(null,a),error:null==i?void 0:i[a],disabled:n||(null==(h=null==g?void 0:g.props)?void 0:h.disabled),readOnly:o||(null==(d=null==g?void 0:g.props)?void 0:d.readOnly)},ya(m,va(f)))));var m,f})),t().createElement("div",{className:`editable-list__item-cell editable-list__item-action ${o&&"editable-list__item-action--read-only"}`},t().createElement(U,{iconOnly:!0,iconType:"trash-alt",theme:"primary-link",onClick:a,disabled:o||n})))}Ca.propTypes={disabled:r().bool,readOnly:r().bool,rowIndex:r().oneOfType([r().string,r().number]),fields:r().instanceOf(Array),errors:r().instanceOf(Array),components:r().instanceOf(Array),value:r().instanceOf(Array),onChange:r().func,onDelete:r().func};const $a=Ca;var Sa=Object.defineProperty,Ea=Object.defineProperties,Oa=Object.getOwnPropertyDescriptors,Ta=Object.getOwnPropertySymbols,Aa=Object.prototype.hasOwnProperty,_a=Object.prototype.propertyIsEnumerable,La=(e,t,n)=>t in e?Sa(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;let Ma=1;function Ra({addButtonName:n,disabled:o,readOnly:i,fields:r,label:s,error:a,value:l=[],onChange:c=(()=>{}),hideOnEmpty:u=!0,wrapperClassName:h=""}){const[d,p]=(0,e.useState)(null),g=(e,t,n,o)=>{var i;const s=l?[...l]:[];if(l){const o=[...s[e]];o[t]=n,s[e]=o,s[e].id=l[e].id}else s[e]=[...new Array(r.length)],s[e][t]=n;if((null==(i=null==d?void 0:d[e])?void 0:i[t])&&o){const n=[...d],o=[...n[e]];o[t]=null,n[e]=o,p(n)}c(s)},m=(0,e.useMemo)((()=>r.map((n=>{const o="function"==typeof n?n():n;return i=(null==o?void 0:o.component)||null,n=>{var o=n,{onChange:r,validate:s,error:a}=o,l=((e,t)=>{var n={};for(var o in e)Aa.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ta)for(var o of Ta(e))t.indexOf(o)<0&&_a.call(e,o)&&(n[o]=e[o]);return n})(o,["onChange","validate","error"]);const[c,u]=(0,e.useState)(null),h=(0,e.useCallback)((e=>{const t=(null==e?void 0:e.target)?["radio","checkbox"].includes(e.target.type)?e.target.checked:null==e?void 0:e.target.value:e;let n=!0;if(s&&"function"==typeof s){const e=s(t);n=!e,u(e)}r(t,n)}),[s,r]);return t().createElement(i,(d=((e,t)=>{for(var n in t||(t={}))Aa.call(t,n)&&La(e,n,t[n]);if(Ta)for(var n of Ta(t))_a.call(t,n)&&La(e,n,t[n]);return e})({},l),Ea(d,Oa({onChange:h,error:c||a}))));var d};var i}))),[]),f=e=>{if(!l)return;const t=[...l];t.splice(e,1),c(t)};return t().createElement("div",{className:`editable-list__wrapper tyk-form-group tyk-form-group--default ${a?"has-error":""} ${h}`},t().createElement(pa,{disabled:o,readOnly:i,label:s,addButtonName:n,onAddRow:()=>{const e=((e,t)=>{var n;return null==(n=t||[[void 0,void 0]])?void 0:n.map((t=>null==t?void 0:t.map(((t,n)=>{var o,i;return null==(i=(o=e[n].props).validate)?void 0:i.call(o,t)}))))})(r,l);if((e=>{var t;return Boolean(null==(t=null==e?void 0:e.flat())?void 0:t.filter(Boolean).length)})(e))return void p(e);const t=[...new Array(r.length)];t.id="row-"+Ma++,c([...l,t])}}),(null==l?void 0:l.length)||!u?t().createElement("ul",{className:"editable-list__list"},(l||[[]]).map(((e,n)=>t().createElement($a,{key:e.id||n,rowIndex:n,disabled:o,readOnly:i,fields:r,onChange:g.bind(null,n),onDelete:f.bind(null,n),value:e,errors:null==d?void 0:d[n],components:m}))),t().createElement(ma,{fields:r,readOnly:i})):null,a&&"true"!==a&&"false"!==a?t().createElement("p",{className:"tyk-form-control__error-message"},a):null)}Ra.propTypes={disabled:r().bool,readOnly:r().bool,addButtonName:r().string,label:r().oneOfType([r().string,r().element,r().node]),fields:r().instanceOf(Array),onChange:r().func,value:r().oneOfType([r().instanceOf(Object),r().instanceOf(Array)]),error:r().string,hideOnEmpty:r().bool,wrapperClassName:r().string};const Na=Ra;var Ia=Object.defineProperty,Pa=Object.defineProperties,Da=Object.getOwnPropertyDescriptors,Fa=Object.getOwnPropertySymbols,Ba=Object.prototype.hasOwnProperty,Wa=Object.prototype.propertyIsEnumerable,Ha=(e,t,n)=>t in e?Ia(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function ja(n){var o=n,{error:i,theme:r,labelwidth:s,wrapperClassName:a="",id:l,label:c,note:u,accept:h,value:d,onChange:p}=o,m=((e,t)=>{var n={};for(var o in e)Ba.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Fa)for(var o of Fa(e))t.indexOf(o)<0&&Wa.call(e,o)&&(n[o]=e[o]);return n})(o,["error","theme","labelwidth","wrapperClassName","id","label","note","accept","value","onChange"]);const f=(0,e.useRef)();return t().createElement("div",{className:function(){const e=[a,"tyk-form-group"],t=r?r.split(" "):[];return t.length&&t.forEach((t=>{e.push(`tyk-form-group--${t}`)})),s&&e.push("tyk-form-group--label-has-width"),i&&e.push("has-error"),e.join(" ")}()},c?t().createElement("label",{htmlFor:l,style:function(){const e={};return s&&(e.flexBasis=s),e}()},c):null,t().createElement("div",{className:"tyk-form-control__wrapper"},t().createElement("div",{className:"tyk-file-input__wrapper",style:function(){const e={};return s&&(e.flexBasis=`calc(100% - ${s} - 20px)`),e}()},t().createElement("input",(y=((e,t)=>{for(var n in t||(t={}))Ba.call(t,n)&&Ha(e,n,t[n]);if(Fa)for(var n of Fa(t))Wa.call(t,n)&&Ha(e,n,t[n]);return e})({accept:h,className:"tyk-form-control"},m),Pa(y,Da({onChange:function(e){p(e.target.files)},ref:f,type:"file"})))),f.current&&f.current.files.length>0?t().createElement("button",{onClick:function(){f.current.value="",p("")},type:"button","aria-label":"clear value"},t().createElement(g,{type:"times"})):null),u?t().createElement("p",{className:"tyk-form-control__help-block"},u):null),i&&"true"!==i&&"false"!==i?t().createElement("p",{className:"tyk-form-control__error-message"},i):null);var y}ja.propTypes={accept:r().string,disabled:r().bool,id:r().string,error:r().oneOfType([r().string,r().bool]),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,name:r().string,note:r().string,onChange:r().func,placeholder:r().string,theme:r().string,value:r().instanceOf(Object),wrapperClassName:r().string};const za=ja;var Va=Object.defineProperty,Ua=Object.defineProperties,Ga=Object.getOwnPropertyDescriptors,Ka=Object.getOwnPropertySymbols,qa=Object.prototype.hasOwnProperty,Ya=Object.prototype.propertyIsEnumerable,Ja=(e,t,n)=>t in e?Va(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Xa extends e.Component{static getAddon(e){return t().createElement("div",{className:"tyk-input-group__addon"},e)}constructor(e){super(e);const{value:t}=this.props;this.state={initValue:t,stateValue:t},this.handleOnChange=this.handleOnChange.bind(this)}componentDidUpdate(e){const{isfield:t,value:n,onChange:o}=this.props;t||e.value===n||this.setState({stateValue:n},(()=>{o&&o(n)}))}handleOnChange(e){const{onChange:t,isfield:n}=this.props,o=e.target.value;n?t(o):this.setState({stateValue:o},(()=>{t&&t(o)}))}getLabelStyles(){const{labelwidth:e}=this.props,t={};return e&&(t.flexBasis=e),t}getNonLabelWidth(){const{labelwidth:e}=this.props,t={};return e&&(t.flexBasis=`calc(100% - ${e} - 20px)`),t}getInputError(){const{error:e}=this.props;return e&&"true"!==e&&"false"!==e?t().createElement("p",{className:"tyk-form-control__error-message"},e):null}getCssClasses(){const{error:e,theme:t,labelwidth:n,inputgroupaddonleft:o,inputgroupaddonright:i}=this.props,r=["tyk-form-group"],s=t?t.split(" "):[];return s.length&&s.forEach((e=>{r.push(`tyk-form-group--${e}`)})),o&&r.push("tyk-form-group--addon-left"),i&&r.push("tyk-form-group--addon-right"),n&&r.push("tyk-form-group--label-has-width"),e&&r.push("has-error"),r.join(" ")}getInputGroupAddon(){const{inputgroupaddonleft:e,inputgroupaddonright:n}=this.props;return t().createElement("div",{className:"tyk-input-group"},e?Xa.getAddon(e):null,this.getInputComponent(),n?Xa.getAddon(n):null)}getInputComponent(){const e=this.props,{isfield:n,onChange:o,value:i}=e,r=((e,t)=>{var n={};for(var o in e)qa.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ka)for(var o of Ka(e))t.indexOf(o)<0&&Ya.call(e,o)&&(n[o]=e[o]);return n})(e,["isfield","onChange","value"]),{stateValue:s}=this.state;return t().createElement("input",(a=((e,t)=>{for(var n in t||(t={}))qa.call(t,n)&&Ja(e,n,t[n]);if(Ka)for(var n of Ka(t))Ya.call(t,n)&&Ja(e,n,t[n]);return e})({autoComplete:"off",className:"tyk-form-control"},r),l={onChange:this.handleOnChange,value:n?i:s},Ua(a,Ga(l))));var a,l}reset(){const{initValue:e}=this.state;this.setState({stateValue:e})}render(){const{label:e,id:n,inputgroupaddonleft:o,inputgroupaddonright:i,note:r,readOnly:s,value:a}=this.props;return t().createElement("div",{className:this.getCssClasses()},e?t().createElement("label",{htmlFor:n,style:this.getLabelStyles()},e):null,!s&&t().createElement("div",{className:"tyk-form-control__wrapper",style:this.getNonLabelWidth()},o||i?this.getInputGroupAddon():this.getInputComponent(),r?t().createElement("p",{className:"tyk-form-control__help-block"},r):null,this.getInputError()),s&&t().createElement("div",{className:"tyk-form-control--readonly"},a||"-"))}}Xa.propTypes={disabled:r().bool,readOnly:r().bool,id:r().string,isfield:r().bool,error:r().oneOfType([r().string,r().bool]),inputgroupaddonleft:r().oneOfType([r().element,r().node,r().string]),inputgroupaddonright:r().oneOfType([r().element,r().node,r().string]),label:r().oneOfType([r().string,r().element,r().node]),labelwidth:r().string,name:r().string,note:r().string,onChange:r().func,placeholder:r().string,theme:r().string,value:r().oneOfType([r().number,r().string])};const Qa=Xa;var Za=Object.defineProperty,el=Object.defineProperties,tl=Object.getOwnPropertyDescriptors,nl=Object.getOwnPropertySymbols,ol=Object.prototype.hasOwnProperty,il=Object.prototype.propertyIsEnumerable,rl=(e,t,n)=>t in e?Za(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,sl=(e,t)=>{for(var n in t||(t={}))ol.call(t,n)&&rl(e,n,t[n]);if(nl)for(var n of nl(t))il.call(t,n)&&rl(e,n,t[n]);return e};function al(n,o){var i=n,{error:r,onChange:s,readOnly:a,id:l,inputgroupaddonleft:c,inputgroupaddonright:u,label:h,labelwidth:d,note:p,theme:g,value:m,wrapperClassName:f=""}=i,y=((e,t)=>{var n={};for(var o in e)ol.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&nl)for(var o of nl(e))t.indexOf(o)<0&&il.call(e,o)&&(n[o]=e[o]);return n})(i,["error","onChange","readOnly","id","inputgroupaddonleft","inputgroupaddonright","label","labelwidth","note","theme","value","wrapperClassName"]);const v=(0,e.useRef)();(0,e.useImperativeHandle)(o,(()=>({focus:()=>{v.current.focus()}})));const b=e=>t().createElement("div",{className:"tyk-input-group__addon"},e),w=e=>{s(e,e.target.value)},x=()=>{return t().createElement("input",(e=sl({autoComplete:"off",className:"tyk-form-control"},y),el(e,tl({onChange:w,value:m,ref:v}))));var e};return t().createElement("div",{className:(()=>{const e=[f,"tyk-form-group"],t=g?g.split(" "):[];return t.length&&t.forEach((t=>{e.push(`tyk-form-group--${t}`)})),c&&e.push("tyk-form-group--addon-left"),u&&e.push("tyk-form-group--addon-right"),d&&e.push("tyk-form-group--label-has-width"),r&&e.push("has-error"),e.join(" ")})()},h?t().createElement("label",{htmlFor:l,style:sl({},d&&{flexBasis:d})},h):null,!a&&t().createElement("div",{className:"tyk-form-control__wrapper",style:sl({},d&&{flexBasis:`calc(100% - ${d} - 20px)`})},c||u?t().createElement("div",{className:"tyk-input-group"},c?b(c):null,x(),u?b(u):null):x(),p?t().createElement("p",{className:"tyk-form-control__help-block"},p):null,r&&"true"!==r&&"false"!==r?t().createElement("p",{className:"tyk-form-control__error-message"},r):null),a&&t().createElement("div",{className:"tyk-form-control--readonly"},m||"-"))}al.propTypes={disabled:r().bool,readOnly:r().bool,id:r().string,error:r().oneOfType([r().string,r().bool]),inputgroupaddonleft:r().oneOfType([r().element,r().node,r().string]),inputgroupaddonright:r().oneOfType([r().element,r().node,r().string]),label:r().oneOfType([r().string,r().element,r().node]),labelwidth:r().string,name:r().string,note:r().string,onChange:r().func,placeholder:r().string,theme:r().string,value:r().oneOfType([r().number,r().string]),wrapperClassName:r().string};const ll=(0,e.forwardRef)(al),cl=(0,e.createContext)();function ul({item:n,itemType:o,searchValue:i,onChange:r}){const s=(0,e.useCallback)((e=>(null==e?void 0:e.length)>0?e.some((e=>{var t;return null==(t=n[e])?void 0:t.includes(i)})):JSON.stringify(n).includes(i)),[n,i]),a=(0,e.useCallback)((()=>{r(n)}),[r,n]);return t().createElement(cl.Consumer,null,(e=>s(e.fieldsToSearchOn)?t().createElement("li",null,t().createElement("div",null,t().createElement("span",{className:"tyk-multiselect-item__name"},e.itemDisplayTemplate?e.itemDisplayTemplate(n):JSON.stringify(n)),t().createElement("span",{className:"tyk-multiselect-item__controls"},t().createElement(U,{iconType:"normal"===o?"plus":"minus",iconOnly:!0,onClick:a,disabled:e.disabled||e.maxSelections&&e.maxSelections===e.nrSelectedItems&&"normal"===o}),t().createElement(U,{iconType:e.opened[n.id]?"chevron-up":"chevron-down",iconOnly:!0,onClick:()=>e.onGetItemDetails(n)}))),n.details?t().createElement(R,{collapsed:!e.opened[n.id],className:"tyk-multiselect-item__details"},((e,t)=>e.detailsDisplayTemplate?e.detailsDisplayTemplate(t):JSON.stringify(t.details))(e,n)):((e,n)=>{const{opened:o}=e;return o[n.id]?t().createElement(ye,{position:"relative"}):null})(e,n)):null))}ul.propTypes={item:r().instanceOf(Object),itemType:r().string,searchValue:r().string,onChange:r().func};const hl=ul;function dl({inputPlaceholder:n,noItemsMessage:o,items:i,onCustomSearch:r,onChange:s,customSearch:a,panelType:l,serverLoad:c,itemsPageNumber:u,itemsNrPages:h,loadMoreItems:d}){const[p,m]=(0,e.useState)(""),f=(0,e.useRef)(0),y=(0,e.useRef)(),v=(0,e.useCallback)((e=>{r?r(e):m(e)}),[r]),b=(0,e.useCallback)((e=>{let t=structuredClone(i);t=t.filter((t=>e.id!==t.id)),s(t,e)}),[i]);function w(){return t().createElement("ul",{className:"tyk-multiselect__list"+(c?"":" tyk-multiselect__list--scroll"),ref:y},i.map((e=>t().createElement(hl,{itemType:l,key:(f.current+=1,f.current),onChange:b,searchValue:a?"":p,item:e}))))}return t().createElement("div",{className:"tyk-multiselect__panel"},t().createElement(Qa,{inputgroupaddonleft:t().createElement(g,{type:"search"}),name:"search",onChange:v,placeholder:n,value:p}),i.length?c?t().createElement(At,{refChild:y,hasMore:h>u,loadMore:d,pageNumber:u},w()):w():t().createElement(be,{theme:"info"},o))}dl.propTypes={customSearch:r().bool,onCustomSearch:r().func,panelType:r().string,onChange:r().func,items:r().instanceOf(Array),itemsPageNumber:r().number,itemsNrPages:r().number,inputPlaceholder:r().string,loadMoreItems:r().func,noItemsMessage:r().string,serverLoad:r().bool};const pl=dl;var gl=Object.defineProperty,ml=Object.defineProperties,fl=Object.getOwnPropertyDescriptors,yl=Object.getOwnPropertySymbols,vl=Object.prototype.hasOwnProperty,bl=Object.prototype.propertyIsEnumerable,wl=(e,t,n)=>t in e?gl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const xl=(e,t)=>t.filter((t=>!e.find((e=>e.id===t.id))));function kl({customSearch:n,entityNamePlural:o,disabled:i,error:r,getItemDetails:s,itemDisplayTemplate:a,detailsDisplayTemplate:l,fieldsToSearchOn:c,items:u,itemsPageNumber:h,itemsNrPages:d,loadMoreItems:p,maxSelections:g,note:m,value:f,onChange:y,wrapperClassName:v=""}){const[b,w]=(0,e.useState)({}),x=(0,e.useCallback)((e=>{w((t=>{return n=((e,t)=>{for(var n in t||(t={}))vl.call(t,n)&&wl(e,n,t[n]);if(yl)for(var n of yl(t))bl.call(t,n)&&wl(e,n,t[n]);return e})({},t),o={[e.id]:!t[e.id]},ml(n,fl(o));var n,o})),s&&s(e)}),[s]),k=(0,e.useCallback)((()=>[v,"tyk-multiselect",r&&"has-error"].filter(Boolean).join(" ")),[v,r]),C=(0,e.useCallback)(((e,t)=>{const n=structuredClone(f);n.unshift(t),y(n,t,"added")}),[f]),$=(0,e.useCallback)(((e,t)=>{y(e,t,"removed")}),[u]),S=(0,e.useMemo)((()=>({disabled:i,itemDisplayTemplate:a,detailsDisplayTemplate:l,fieldsToSearchOn:c,maxSelections:g,nrSelectedItems:f.length,onGetItemDetails:x,opened:b})),[i,a,l,c,g,f,x,b]);return t().createElement(t().Fragment,null,t().createElement("div",{className:k()},t().createElement(cl.Provider,{value:S},t().createElement("div",{className:"tyk-multiselect__header"},t().createElement("div",null,f.length," ","Selected"," ",o),t().createElement("div",null,"Select from existing",o)),t().createElement("div",{className:"tyk-multiselect__panel-wrapper"},t().createElement(pl,{inputPlaceholder:`Search through selected ${o}`,noItemsMessage:`Selected ${o} will show here`,items:f,onChange:$,panelType:"selected"}),t().createElement(pl,{inputPlaceholder:`Search existing ${o}`,noItemsMessage:`No ${o} to display`,entityNamePlural:o,customSearch:!!n,onCustomSearch:n,items:xl(f,u),onChange:C,serverLoad:!!p,loadMoreItems:p,itemsPageNumber:h,itemsNrPages:d,panelType:"normal"})))),t().createElement("div",null,m?t().createElement("p",{className:"tyk-form-control__help-block"},m):null),r&&"true"!==r&&"false"!==r?t().createElement("p",{className:"tyk-form-control__error-message"},r):null)}kl.propTypes={customSearch:r().func,disabled:r().bool,error:r().string,entityNamePlural:r().string,items:r().instanceOf(Array),itemDisplayTemplate:r().func,detailsDisplayTemplate:r().func,fieldsToSearchOn:r().instanceOf(Array),onChange:r().func,getItemDetails:r().func,itemsPageNumber:r().number,itemsNrPages:r().number,loadMoreItems:r().func,note:r().string,maxSelections:r().number,value:r().instanceOf(Array),wrapperClassName:r().string};const Cl=kl;var $l=Object.defineProperty,Sl=Object.defineProperties,El=Object.getOwnPropertyDescriptors,Ol=Object.getOwnPropertySymbols,Tl=Object.prototype.hasOwnProperty,Al=Object.prototype.propertyIsEnumerable,_l=(e,t,n)=>t in e?$l(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ll=(e,t)=>{for(var n in t||(t={}))Tl.call(t,n)&&_l(e,n,t[n]);if(Ol)for(var n of Ol(t))Al.call(t,n)&&_l(e,n,t[n]);return e};function Ml(e){var n=e,{label:o,input:i,note:r,inline:s,nospace:a,theme:l="",disabled:c,readOnly:u,wrapperClassName:h=""}=n,d=((e,t)=>{var n={};for(var o in e)Tl.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ol)for(var o of Ol(e))t.indexOf(o)<0&&Al.call(e,o)&&(n[o]=e[o]);return n})(n,["label","input","note","inline","nospace","theme","disabled","readOnly","wrapperClassName"]);const p=[s?"tyk-radio--inline":"tyk-radio",h,a&&"no-margin",...l?l.split(" ").filter(Boolean).map((e=>`tyk-radio--theme-${e}`)):[],(u||c)&&"tyk-radio--is-disabled"].filter(Boolean).join(" ");return t().createElement("div",{className:p},t().createElement("label",null,t().createElement("input",(g=Ll(Ll({},i),d),Sl(g,El({type:"radio",disabled:u||c})))),o),r&&t().createElement("p",{className:"tyk-form-control__help-block"},r));var g}Ml.propTypes={disabled:r().bool,readOnly:r().bool,inline:r().bool,theme:r().string,input:r().instanceOf(Object),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),name:r().string,nospace:r().bool,value:r().string,note:r().oneOfType([r().string,r().element,r().node]),wrapperClassName:r().string};const Rl=Ml;var Nl=Object.defineProperty,Il=Object.defineProperties,Pl=Object.getOwnPropertyDescriptors,Dl=Object.getOwnPropertySymbols,Fl=Object.prototype.hasOwnProperty,Bl=Object.prototype.propertyIsEnumerable,Wl=(e,t,n)=>t in e?Nl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Hl(n){const o=n,{value:i,onChange:r,onBlur:s,isfield:a,label:l,labelwidth:c,id:u,note:h,readOnly:d,options:p,error:g,theme:m,wrapperClassName:f=""}=o,y=((e,t)=>{var n={};for(var o in e)Fl.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Dl)for(var o of Dl(e))t.indexOf(o)<0&&Bl.call(e,o)&&(n[o]=e[o]);return n})(o,["value","onChange","onBlur","isfield","label","labelwidth","id","note","readOnly","options","error","theme","wrapperClassName"]),[v,b]=(0,e.useState)(i);(0,e.useEffect)((()=>{a||v===i||(b(i),r&&r(i))}),[v,i]);const w=(0,e.useCallback)((e=>{const t=p.find((t=>t.id===e.target.value));a||b(t),r(t.id?t:null)}),[p,a,r]),x=(0,e.useCallback)((()=>{s&&s(i)}),[s]),k=(0,e.useCallback)((()=>g&&"true"!==g&&"false"!==g?t().createElement("p",{className:"tyk-form-control__error-message"},g):null),[g]),C=(0,e.useCallback)((()=>["tyk-form-group",f,...m?m.split(" ").map((e=>`tyk-form-group--${e}`)):[],c&&"tyk-form-group--label-has-width",g&&"has-error"].filter(Boolean).join(" ")),[f,m,c,g]),$=(0,e.useCallback)((()=>c?{flexBasis:c}:{}),[c]),S=(0,e.useCallback)((()=>c?{flexBasis:`calc(100% - ${c} - 20px)`}:{}),[c]),E=(0,e.useCallback)((()=>{const e=a&&i?i:v;return t().createElement("select",(n=((e,t)=>{for(var n in t||(t={}))Fl.call(t,n)&&Wl(e,n,t[n]);if(Dl)for(var n of Dl(t))Bl.call(t,n)&&Wl(e,n,t[n]);return e})({className:"tyk-form-control tyk-select"},y),o={onChange:w,onBlur:x,value:e?e.id:""},Il(n,Pl(o))),p.map((e=>t().createElement("option",{key:e.id,value:e.id},e.name))));var n,o}),[a,i,v,w,x,p,y]);return t().createElement("div",{className:C()},l?t().createElement("label",{htmlFor:u,style:$()},l):null,!d&&t().createElement("div",{className:"tyk-form-control__wrapper",style:S()},E(),h?t().createElement("p",{className:"tyk-form-control__help-block"},h):null,k()),d&&t().createElement("div",{className:"tyk-form-control--readonly"},i||"-"))}Hl.propTypes={disabled:r().bool,readOnly:r().bool,id:r().string,isfield:r().bool,error:r().oneOfType([r().string,r().bool]),options:r().instanceOf(Array),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,name:r().string,note:r().string,onBlur:r().func,onChange:r().func,placeholder:r().string,theme:r().string,value:r().oneOfType([r().string,r().object]),wrapperClassName:r().string};const jl=Hl;var zl=Object.defineProperty,Vl=Object.defineProperties,Ul=Object.getOwnPropertyDescriptors,Gl=Object.getOwnPropertySymbols,Kl=Object.prototype.hasOwnProperty,ql=Object.prototype.propertyIsEnumerable,Yl=(e,t,n)=>t in e?zl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Jl(e){const{checkboxalticon:n,items:o,itemTemplate:i,value:r,noItemsMessage:s="No items in the list",onChange:a,theme:l,primaryKey:c,wrapperClassName:u=""}=e,h=e=>{const t=structuredClone(r),n=t.findIndex((t=>JSON.stringify(t)===JSON.stringify(Array.isArray(t)?e.target.value.split(","):e.target.value)));if(e.target.checked&&-1===n){const n=e.target.value.split(","),o=n.length>1?n:e.target.value;t.push(o)}else!e.target.checked&&n>-1&&t.splice(n,1);a&&a(t)},d=e=>{const t=[];return n&&t.push("tyk-selectable-list__item--with-icon"),e&&t.push("tyk-selectable-list__item--active"),t.join(" ")};return t().createElement(jt,(p=((e,t)=>{for(var n in t||(t={}))Kl.call(t,n)&&Yl(e,n,t[n]);if(Gl)for(var n of Gl(t))ql.call(t,n)&&Yl(e,n,t[n]);return e})({},e),Vl(p,Ul({theme:l||"default",className:`tyk-selectable-list ${u}`}))),o.length?o.map(((e,o)=>{return t().createElement(jt.Item,{key:o,className:d(r.includes(e[c]))},t().createElement("label",null,t().createElement("div",{className:"tyk-selectable-list__item"},i?i(e):e.name),t().createElement("input",{type:"checkbox",checked:(s=r,a=e[c],Boolean(s.find((e=>JSON.stringify(a)===JSON.stringify(e))))),onChange:h.bind(e),value:e[c]}),n?t().createElement(g,{type:n}):null));var s,a})):t().createElement("li",{className:"tyk-selectable-list__no-items-message"},t().createElement(be,{theme:"info"},s)));var p}Jl.propTypes={items:r().instanceOf(Array),itemTemplate:r().oneOfType([r().node,r().element,r().string,r().func]),value:r().instanceOf(Array),onChange:r().func,primaryKey:r().string,noItemsMessage:r().string,checkboxalticon:r().oneOfType([r().node,r().element,r().string]),theme:r().string,wrapperClassName:r().string},Jl.defaultProps={items:[],primaryKey:"id",value:[]};const Xl=Jl;var Ql=Object.defineProperty,Zl=Object.getOwnPropertySymbols,ec=Object.prototype.hasOwnProperty,tc=Object.prototype.propertyIsEnumerable,nc=(e,t,n)=>t in e?Ql(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,oc=(e,t)=>{for(var n in t||(t={}))ec.call(t,n)&&nc(e,n,t[n]);if(Zl)for(var n of Zl(t))tc.call(t,n)&&nc(e,n,t[n]);return e};function ic(e){var n=e,{id:o,input:i,label:r,note:s,error:a,theme:l,labelwidth:c,value:u,readOnly:h,wrapperClassName:d}=n,p=((e,t)=>{var n={};for(var o in e)ec.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Zl)for(var o of Zl(e))t.indexOf(o)<0&&tc.call(e,o)&&(n[o]=e[o]);return n})(n,["id","input","label","note","error","theme","labelwidth","value","readOnly","wrapperClassName"]);const g=["tyk-form-group",d,...l?l.split(" ").map((e=>`tyk-form-group--${e}`)):[],c&&"tyk-form-group--label-has-width",a&&"has-error"].filter(Boolean).join(" ");return t().createElement("div",{className:g},r?t().createElement("label",{htmlFor:o,style:c?{flexBasis:c}:{}},r):null,!h&&t().createElement("div",{className:"tyk-form-control__wrapper",style:c?{flexBasis:`calc(100% - ${c} - 20px)`}:{}},t().createElement("textarea",oc(oc({className:"tyk-form-control"},p),i),u),s?t().createElement("p",{className:"tyk-form-control__help-block"},s):null,a&&"true"!==a&&"false"!==a?t().createElement("p",{className:"tyk-form-control__error-message"},a):null),h&&t().createElement("div",{className:"tyk-form-control--readonly"},u||"-"))}ic.propTypes={disabled:r().bool,readOnly:r().bool,input:r().instanceOf(Object),error:r().string,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,name:r().string,note:r().string,onChange:r().func,id:r().string,theme:r().string,value:r().string,wrapperClassName:r().string};const rc=ic,sc=(0,e.createContext)();class ac extends e.Component{static getNotchCssClasses(e){return["tyk-toggle__item-notch",`tyk-toggle__item-notch--${e.type}`].join(" ")}constructor(t){super(t),this.itemRef=(0,e.createRef)()}componentDidMount(){const{context:e,value:t}=this.props;e.value===t&&e.saveSelectedRef(this.itemRef)}componentDidUpdate(e){const{context:t,value:n}=this.props;e.context.value!==t.value&&t.value===n&&t.saveSelectedRef(this.itemRef)}onChange(e){const{context:t,value:n}=this.props,{disabled:o,readOnly:i}=t;o||i||t.onItemSelected("single"===t.type?!t.value:n,e)}render(){const{context:e,label:n,name:o,value:i}=this.props;return t().createElement("li",{className:"tyk-toggle__item "+(!e.value||"single"!==e.type&&e.value!==i?"":"tyk-toggle__item--active"),ref:this.itemRef},t().createElement("label",null,t().createElement("input",{type:"single"===e.type?"checkbox":"radio",name:o,checked:e.value===i,onChange:this.onChange.bind(this),value:i}),n?t().createElement("span",null,n):t().createElement("span",{className:"empty-toggle"}," "),"single"===e.type?t().createElement("span",{className:ac.getNotchCssClasses(e)}):null))}}ac.propTypes={context:r().instanceOf(Object),label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),name:r().string,value:r().string};const lc=ac;var cc=Object.defineProperty,uc=Object.defineProperties,hc=Object.getOwnPropertyDescriptors,dc=Object.getOwnPropertySymbols,pc=Object.prototype.hasOwnProperty,gc=Object.prototype.propertyIsEnumerable,mc=(e,t,n)=>t in e?cc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function fc(e,n){var o=e,{children:i}=o,r=((e,t)=>{var n={};for(var o in e)pc.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&dc)for(var o of dc(e))t.indexOf(o)<0&&gc.call(e,o)&&(n[o]=e[o]);return n})(o,["children"]);return t().createElement(sc.Consumer,null,(e=>{return t().createElement(lc,(o=((e,t)=>{for(var n in t||(t={}))pc.call(t,n)&&mc(e,n,t[n]);if(dc)for(var n of dc(t))gc.call(t,n)&&mc(e,n,t[n]);return e})({},r),uc(o,hc({context:e,ref:n}))),i);var o}))}fc.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string])};const yc=(0,e.forwardRef)(fc);function vc({className:n,disabled:o,readOnly:i,size:r,theme:s,direction:a,onDark:l,wrapperClassName:c="",onChange:u,labelwidth:h,label:d,separated:p,children:g,type:m,value:f,error:y}){const[v,b]=(0,e.useState)(null),w=(0,e.useRef)(),x=(0,e.useRef)(),k=[c,n,"tyk-toggle",`tyk-toggle--disabled-${i||o}`,`tyk-toggle--${r||"md"}`,`tyk-toggle--${s}`,`tyk-toggle--${a}`,l&&"tyk-toggle--on-dark"].filter(Boolean).join(" "),C=(0,e.useCallback)(((e,t)=>{u&&u(e,t)}),[u]),$=(0,e.useCallback)((()=>h?{flexBasis:h}:{}),[h]),S=(0,e.useCallback)((()=>{if(!v||p)return{};const e=v.current.offsetWidth;return{left:v.current.getBoundingClientRect().left-x.current.getBoundingClientRect().left+4+"px",width:e-8+"px"}}),[v,p]),E=(0,e.useMemo)((()=>({disabled:o,readOnly:i,onItemSelected:C,saveSelectedRef:b,separated:p,type:m,value:f})),[o,i,C,p,m,f]);return t().createElement(t().Fragment,null,t().createElement("div",{className:k,ref:x},t().createElement(sc.Provider,{value:E},d?t().createElement("label",{className:"tyk-toggle__label",style:$()},d):null,t().createElement("ul",{className:`tyk-toggle__list tyk-toggle__list--${m} ${y&&"tyk-toggle__list--has-error"} tyk-toggle__list--${p?"separated":"not-separated"}`},g,"multiple"!==m||p?null:t().createElement("li",{className:"tyk-toggle__notch",ref:w,style:S()})))),y&&t().createElement("p",{className:"tyk-form-control__error-message"},y))}vc.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),className:r().string,disabled:r().bool,readOnly:r().bool,error:r().string,onChange:r().func,label:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().func,r().string]),labelwidth:r().string,theme:r().string,type:r().string,size:r().string,separated:r().bool,direction:r().string,value:r().oneOfType([r().bool,r().string]),onDark:r().bool,wrapperClassName:r().string},vc.defaultProps={separated:!1,theme:"primary",type:"single",direction:"row"},vc.Item=yc;const bc=vc,wc={FORM_DEBOUNCE:200};function xc(e,t){wc[e]=t}const kc=wc;var Cc=Object.defineProperty,$c=Object.defineProperties,Sc=Object.getOwnPropertyDescriptors,Ec=Object.getOwnPropertySymbols,Oc=Object.prototype.hasOwnProperty,Tc=Object.prototype.propertyIsEnumerable,Ac=(e,t,n)=>t in e?Cc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,_c=(e,t)=>{for(var n in t||(t={}))Oc.call(t,n)&&Ac(e,n,t[n]);if(Ec)for(var n of Ec(t))Tc.call(t,n)&&Ac(e,n,t[n]);return e},Lc=(e,t)=>$c(e,Sc(t));function Mc(e,t){return t.split(/[\][.]/).filter(Boolean).reduce(((e,t)=>e?e[t]:e),e)}const Rc=(n,o)=>i=>{var r,s=i,{field:a,form:l}=s,c=((e,t)=>{var n={};for(var o in e)Oc.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ec)for(var o of Ec(e))t.indexOf(o)<0&&Tc.call(e,o)&&(n[o]=e[o]);return n})(s,["field","form"]);const u="number"==typeof kc.FORM_DEBOUNCE?kc.FORM_DEBOUNCE:200,[h,d]=(0,e.useState)(a.value),p=_c({getOnChangeProps:()=>({}),hasIsFieldProp:!1},o),g=(0,e.useCallback)((()=>{const e=e=>e();return!1===c.debounce||!1===kc.FORM_DEBOUNCE&&!c.debounce?e:function(e,t){let n;return(...o)=>{clearTimeout(n),n=setTimeout(e,t,...o)}}(e,"number"==typeof c.debounce?c.debounce:u)})(),[]),m=e=>{const t=(null==(n=e)?void 0:n.target)?"INPUT"!==n.target.nodeName||"checkbox"!==n.target.type&&"radio"!==n.target.type?n.target.value:n.target.checked:n;var n;const o=p.getOnChangeProps(t,a,l,c),i=o.value||c.value||t;g((()=>{"function"==typeof c.onChange&&c.onChange(i),a.onChange({target:_c({name:a.name,value:i},o)})})),d(i)},f=(Mc(l.touched,a.name)||Boolean(l.submitCount))&&Mc(l.errors,a.name),y="string"==typeof f?f:"";(0,e.useEffect)((()=>{d(a.value)}),[a.value]),(null==(r=l.status)?void 0:r.disabled)&&(c.disabled=!0);const v=_c({},c);return delete v.debounce,Object.hasOwn(v,"className")&&void 0===v.className&&delete v.className,Object.hasOwn(v,"children")&&void 0===v.children&&delete v.children,t().createElement(n,Lc(_c(_c(Lc(_c({},a),{error:y}),p.hasIsFieldProp?{isfield:!0}:{}),v),{checked:"string"==typeof c.value?a.value===c.value:a.value,onChange:m,value:h,input:{value:h,onChange:m}}))},Nc=Rc(Io,{getOnChangeProps:e=>({checked:e})}),Ic=Rc(gr),Pc=Rc(Sr),Dc=Rc(Wr),Fc=Rc(Zr),Bc=Rc(ha,{getOnChangeProps:e=>({value:e||[]})}),Wc=Rc(Na),Hc=Rc(za),jc=Rc(Qa,{hasIsFieldProp:!0}),zc=Rc(ll),Vc=Rc(Cl),Uc=Rc(Rl,{getOnChangeProps:(e,t,n,o)=>({checked:e===o.value,value:o.value})}),Gc=Rc(jl,{hasIsFieldProp:!0}),Kc=Rc(Xl),qc=Rc(rc),Yc=Rc(bc);var Jc=Object.defineProperty,Xc=Object.defineProperties,Qc=Object.getOwnPropertyDescriptors,Zc=Object.getOwnPropertySymbols,eu=Object.prototype.hasOwnProperty,tu=Object.prototype.propertyIsEnumerable,nu=(e,t,n)=>t in e?Jc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ou=(e,t)=>{for(var n in t||(t={}))eu.call(t,n)&&nu(e,n,t[n]);if(Zc)for(var n of Zc(t))tu.call(t,n)&&nu(e,n,t[n]);return e};class iu extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.prop,{onChange:n}=t;n((0,pe.fromJS)(e))}getInputError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=this.props,{input:n}=e,o=((e,t)=>{var n={};for(var o in e)eu.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Zc)for(var o of Zc(e))t.indexOf(o)<0&&tu.call(e,o)&&(n[o]=e[o]);return n})(e,["input"]);return t().createElement(gr,(i=ou(ou({},n),o),r={error:this.getInputError()},Xc(i,Qc(r))));var i,r}}iu.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const ru=iu;var su=Object.defineProperty,au=Object.defineProperties,lu=Object.getOwnPropertyDescriptors,cu=Object.getOwnPropertySymbols,uu=Object.prototype.hasOwnProperty,hu=Object.prototype.propertyIsEnumerable,du=(e,t,n)=>t in e?su(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class pu extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props,{onChange:n}=t;n((0,pe.fromJS)(e))}getComboboxError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=((e,t)=>{var n={};for(var o in e)uu.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&cu)for(var o of cu(e))t.indexOf(o)<0&&hu.call(e,o)&&(n[o]=e[o]);return n})(this.props,[]);return t().createElement(Sr,(n=((e,t)=>{for(var n in t||(t={}))uu.call(t,n)&&du(e,n,t[n]);if(cu)for(var n of cu(t))hu.call(t,n)&&du(e,n,t[n]);return e})({},e),o={onChange:this.handleOnChange,value:e.input.value?e.input.value.toJS():e.input.value,error:this.getComboboxError()},au(n,lu(o))));var n,o}}pu.propTypes={meta:r().instanceOf(Object),input:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const gu=pu;var mu=Object.defineProperty,fu=Object.defineProperties,yu=Object.getOwnPropertyDescriptors,vu=Object.getOwnPropertySymbols,bu=Object.prototype.hasOwnProperty,wu=Object.prototype.propertyIsEnumerable,xu=(e,t,n)=>t in e?mu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class ku extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props,{onChange:n}=t;n((0,pe.fromJS)(e))}render(){const e=this.props,{children:n,input:o}=e,i=((e,t)=>{var n={};for(var o in e)bu.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&vu)for(var o of vu(e))t.indexOf(o)<0&&wu.call(e,o)&&(n[o]=e[o]);return n})(e,["children","input"]);return t().createElement(Oi,(r=((e,t)=>{for(var n in t||(t={}))bu.call(t,n)&&xu(e,n,t[n]);if(vu)for(var n of vu(t))wu.call(t,n)&&xu(e,n,t[n]);return e})({},i),s={onSelect:this.handleOnChange,selectedItem:o.value},fu(r,yu(s))),n);var r,s}}ku.propTypes={children:r().oneOfType([r().arrayOf(r().node),r().node,r().element,r().string]),input:r().instanceOf(Object)};const Cu=ku;var $u=Object.defineProperty,Su=Object.defineProperties,Eu=Object.getOwnPropertyDescriptors,Ou=Object.getOwnPropertySymbols,Tu=Object.prototype.hasOwnProperty,Au=Object.prototype.propertyIsEnumerable,_u=(e,t,n)=>t in e?$u(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Lu=(e,t)=>{for(var n in t||(t={}))Tu.call(t,n)&&_u(e,n,t[n]);if(Ou)for(var n of Ou(t))Au.call(t,n)&&_u(e,n,t[n]);return e};function Mu(e){const n=e,{input:o}=n,i=((e,t)=>{var n={};for(var o in e)Tu.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Ou)for(var o of Ou(e))t.indexOf(o)<0&&Au.call(e,o)&&(n[o]=e[o]);return n})(n,["input"]);return t().createElement(po,(r=Lu(Lu({},o),i),s={onChange:o.onChange,value:o.value?o.value:0},Su(r,Eu(s))));var r,s}Mu.propTypes={input:r().instanceOf(Object)};const Ru=Mu;var Nu=Object.defineProperty,Iu=Object.defineProperties,Pu=Object.getOwnPropertyDescriptors,Du=Object.getOwnPropertySymbols,Fu=Object.prototype.hasOwnProperty,Bu=Object.prototype.propertyIsEnumerable,Wu=(e,t,n)=>t in e?Nu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Hu(e){const{input:n,meta:o,validationmessages:i}=e;return t().createElement(Wr,(r=((e,t)=>{for(var n in t||(t={}))Fu.call(t,n)&&Wu(e,n,t[n]);if(Du)for(var n of Du(t))Bu.call(t,n)&&Wu(e,n,t[n]);return e})({},e),s={onChange:e=>{const{onChange:t}=n;t((0,pe.fromJS)(e))},value:n.value?n.value.toJS():n.value,error:(()=>{const{touched:e,error:t,warning:n}=o;let r=null;return e&&t&&i[t]?r=i[t]:e&&n&&(r="warning"),r})()},Iu(r,Pu(s))));var r,s}Hu.propTypes={meta:r().instanceOf(Object),input:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const ju=Hu;var zu=Object.defineProperty,Vu=Object.defineProperties,Uu=Object.getOwnPropertyDescriptors,Gu=Object.getOwnPropertySymbols,Ku=Object.prototype.hasOwnProperty,qu=Object.prototype.propertyIsEnumerable,Yu=(e,t,n)=>t in e?zu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Ju(e){const n=e,{input:o,meta:i,validationmessages:r}=n,s=((e,t)=>{var n={};for(var o in e)Ku.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Gu)for(var o of Gu(e))t.indexOf(o)<0&&qu.call(e,o)&&(n[o]=e[o]);return n})(n,["input","meta","validationmessages"]);return t().createElement(Zr,(a=((e,t)=>{for(var n in t||(t={}))Ku.call(t,n)&&Yu(e,n,t[n]);if(Gu)for(var n of Gu(t))qu.call(t,n)&&Yu(e,n,t[n]);return e})({},s),l={onChange:e=>{const{onChange:t}=o;t((0,pe.fromJS)(e))},value:o.value?o.value.toJS():o.value,error:(()=>{const{touched:e,error:t}=i;let n=null;return e&&t&&r[t]&&(n=r[t]),n})()},Vu(a,Uu(l))));var a,l}Ju.propTypes={meta:r().instanceOf(Object),input:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const Xu=Ju;var Qu=Object.defineProperty,Zu=Object.defineProperties,eh=Object.getOwnPropertyDescriptors,th=Object.getOwnPropertySymbols,nh=Object.prototype.hasOwnProperty,oh=Object.prototype.propertyIsEnumerable,ih=(e,t,n)=>t in e?Qu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class rh extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props,{onChange:n}=t;n((0,pe.fromJS)(e))}getEditableListError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o}=e;let i=null;return n&&o&&t[o]&&(i=t[o]),i}render(){const e=((e,t)=>{var n={};for(var o in e)nh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&th)for(var o of th(e))t.indexOf(o)<0&&oh.call(e,o)&&(n[o]=e[o]);return n})(this.props,[]);return t().createElement(ha,(n=((e,t)=>{for(var n in t||(t={}))nh.call(t,n)&&ih(e,n,t[n]);if(th)for(var n of th(t))oh.call(t,n)&&ih(e,n,t[n]);return e})({},e),o={onChange:this.handleOnChange,value:e.input.value?e.input.value.toJS():null,error:this.getEditableListError()},Zu(n,eh(o))));var n,o}}rh.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const sh=rh;var ah=Object.defineProperty,lh=Object.defineProperties,ch=Object.getOwnPropertyDescriptors,uh=Object.getOwnPropertySymbols,hh=Object.prototype.hasOwnProperty,dh=Object.prototype.propertyIsEnumerable,ph=(e,t,n)=>t in e?ah(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,gh=(e,t)=>{for(var n in t||(t={}))hh.call(t,n)&&ph(e,n,t[n]);if(uh)for(var n of uh(t))dh.call(t,n)&&ph(e,n,t[n]);return e};class mh extends e.Component{getInputError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=this.props,{input:n}=e,o=((e,t)=>{var n={};for(var o in e)hh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&uh)for(var o of uh(e))t.indexOf(o)<0&&dh.call(e,o)&&(n[o]=e[o]);return n})(e,["input"]);return t().createElement(za,(i=gh(gh({},n),o),r={error:this.getInputError()},lh(i,ch(r))));var i,r}}mh.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const fh=mh;var yh=Object.defineProperty,vh=Object.defineProperties,bh=Object.getOwnPropertyDescriptors,wh=Object.getOwnPropertySymbols,xh=Object.prototype.hasOwnProperty,kh=Object.prototype.propertyIsEnumerable,Ch=(e,t,n)=>t in e?yh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,$h=(e,t)=>{for(var n in t||(t={}))xh.call(t,n)&&Ch(e,n,t[n]);if(wh)for(var n of wh(t))kh.call(t,n)&&Ch(e,n,t[n]);return e};class Sh extends e.Component{getInputError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=this.props,{input:n}=e,o=((e,t)=>{var n={};for(var o in e)xh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&wh)for(var o of wh(e))t.indexOf(o)<0&&kh.call(e,o)&&(n[o]=e[o]);return n})(e,["input"]);return t().createElement(Qa,(i=$h($h({},n),o),r={isfield:!0,error:this.getInputError()},vh(i,bh(r))));var i,r}}Sh.propTypes={meta:r().instanceOf(Object),input:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const Eh=Sh;var Oh=Object.defineProperty,Th=Object.defineProperties,Ah=Object.getOwnPropertyDescriptors,_h=Object.getOwnPropertySymbols,Lh=Object.prototype.hasOwnProperty,Mh=Object.prototype.propertyIsEnumerable,Rh=(e,t,n)=>t in e?Oh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Nh extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props,{onChange:n}=t;n((0,pe.fromJS)(e))}getMultiselectError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=((e,t)=>{var n={};for(var o in e)Lh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&_h)for(var o of _h(e))t.indexOf(o)<0&&Mh.call(e,o)&&(n[o]=e[o]);return n})(this.props,[]);return t().createElement(Cl,(n=((e,t)=>{for(var n in t||(t={}))Lh.call(t,n)&&Rh(e,n,t[n]);if(_h)for(var n of _h(t))Mh.call(t,n)&&Rh(e,n,t[n]);return e})({},e),o={onChange:this.handleOnChange,value:e.input.value?e.input.value.toJS():e.input.value,error:this.getMultiselectError()},Th(n,Ah(o))));var n,o}}Nh.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const Ih=Nh;var Ph=Object.defineProperty,Dh=Object.defineProperties,Fh=Object.getOwnPropertyDescriptors,Bh=Object.getOwnPropertySymbols,Wh=Object.prototype.hasOwnProperty,Hh=Object.prototype.propertyIsEnumerable,jh=(e,t,n)=>t in e?Ph(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,zh=(e,t)=>{for(var n in t||(t={}))Wh.call(t,n)&&jh(e,n,t[n]);if(Bh)for(var n of Bh(t))Hh.call(t,n)&&jh(e,n,t[n]);return e};class Vh extends e.Component{constructor(e){super(e),this.handleEvent=this.handleEvent.bind(this)}handleEvent(e){const{input:t}=this.props,{onChange:n,value:o}=t;n((0,pe.fromJS)(void 0!==e?e:o))}getSelectError(){const{meta:e,validationmessages:t}=this.props,{touched:n,error:o,warning:i}=e;let r=null;return n&&o&&t[o]?r=t[o]:n&&i&&(r="warning"),r}render(){const e=this.props,{input:n}=e,o=((e,t)=>{var n={};for(var o in e)Wh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Bh)for(var o of Bh(e))t.indexOf(o)<0&&Hh.call(e,o)&&(n[o]=e[o]);return n})(e,["input"]);return t().createElement(jl,(i=zh(zh({},n),o),r={isfield:!0,error:this.getSelectError(),onChange:this.handleEvent,onBlur:this.handleEvent,value:n.value?n.value.toJS():n.value},Dh(i,Fh(r))));var i,r}}Vh.propTypes={input:r().instanceOf(Object),meta:r().instanceOf(Object),validationmessages:r().instanceOf(Object)};const Uh=Vh;var Gh=Object.defineProperty,Kh=Object.defineProperties,qh=Object.getOwnPropertyDescriptors,Yh=Object.getOwnPropertySymbols,Jh=Object.prototype.hasOwnProperty,Xh=Object.prototype.propertyIsEnumerable,Qh=(e,t,n)=>t in e?Gh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Zh extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props;t.onChange((0,pe.fromJS)(e))}render(){const e=this.props,{children:n}=e,o=((e,t)=>{var n={};for(var o in e)Jh.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&Yh)for(var o of Yh(e))t.indexOf(o)<0&&Xh.call(e,o)&&(n[o]=e[o]);return n})(e,["children"]);return t().createElement(Xl,(i=((e,t)=>{for(var n in t||(t={}))Jh.call(t,n)&&Qh(e,n,t[n]);if(Yh)for(var n of Yh(t))Xh.call(t,n)&&Qh(e,n,t[n]);return e})({},o),r={onChange:this.handleOnChange,value:o.input.value?o.input.value.toJS():[]},Kh(i,qh(r))));var i,r}}Zh.propTypes={children:r().oneOfType([r().node]),onChange:r().func,input:r().instanceOf(Object)};const ed=Zh;var td=Object.defineProperty,nd=Object.defineProperties,od=Object.getOwnPropertyDescriptors,id=Object.getOwnPropertySymbols,rd=Object.prototype.hasOwnProperty,sd=Object.prototype.propertyIsEnumerable,ad=(e,t,n)=>t in e?td(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class ld extends e.Component{constructor(e){super(e),this.handleOnChange=this.handleOnChange.bind(this)}handleOnChange(e){const{input:t}=this.props;t.onChange((0,pe.fromJS)(e))}render(){const e=this.props,{children:n}=e,o=((e,t)=>{var n={};for(var o in e)rd.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&id)for(var o of id(e))t.indexOf(o)<0&&sd.call(e,o)&&(n[o]=e[o]);return n})(e,["children"]);return t().createElement(bc,(i=((e,t)=>{for(var n in t||(t={}))rd.call(t,n)&&ad(e,n,t[n]);if(id)for(var n of id(t))sd.call(t,n)&&ad(e,n,t[n]);return e})({},o),r={onChange:this.handleOnChange,value:o.input.value},nd(i,od(r))),n);var i,r}}ld.propTypes={children:r().oneOfType([r().node]),onChange:r().func,input:r().instanceOf(Object)};const cd=ld;function ud(t,n,...o){const i=(0,e.useRef)();(0,e.useEffect)((()=>{i.current=t}),[t]),(0,e.useEffect)((()=>{if(null!=n){const e=setInterval((function(){i.current(...o)}),n);return()=>clearInterval(e)}}),[n])}})(),module.exports=o})(); //# sourceMappingURL=tyk-ui.js.map \ No newline at end of file diff --git a/lib/tyk-ui.js.map b/lib/tyk-ui.js.map index 364342bc..e6b407cf 100644 --- a/lib/tyk-ui.js.map +++ b/lib/tyk-ui.js.map @@ -1 +1 @@ -{"version":3,"file":"tyk-ui.js","mappings":"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G,IAAK,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,IAAK,GAAI,IAAK,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,KAAM,GAAI,EAAG,GAAI,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,KAAM,GAAI,MAAO,GAAI,KAAM,GAAI,GAAI,EAAG,IAAK,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAA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O,CAAC,eAAgB,uBAAwB,4BAChDH,MAAO,kEACR,CACCG,MAAOqyD,EACPxyD,MAAO80D,GACR,CACC30D,MAAO,uBACPH,MAAO,aACPpkB,KAAM,YACP,CACCukB,MAAO,eACPH,MAAO,KACPpkB,KAAM,SACP,CACCukB,MAAO,mBACPH,MAAO,yEACPpkB,KAAM,SACP,CACCukB,MAAO,uBACPH,MAAO,UACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,SACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,UACR,CACCG,MAAO,UACPH,MAAO,WAGf7mC,SAAU,CAAC,CACHgnC,MAAO,OACPH,MAAO,QACR,CACCG,MAAO,CACH,eAAgB,uBAAwB,uBAAwB,OAChE,mBAAoB,OACpB,eAAgB,OAAQ,uBAAwB,OAAQ,gBAE5DH,MAAO,IAAM80D,EAAe,UAAYA,EAAe,6DACvDl5E,KAAM,sBACP,CACCukB,MAAO,uBACPH,MAAO,cACR,CACCG,MAAO,mBACPH,MAAO,gwDACR,CACCG,MAAO,uBACPH,MAAO,+lBACR,CACCG,MAAO,mBACPH,MAAO,y2DACR,CACCG,MAAO,aACPH,MAAO80D,GACR,CACC90D,MAAO,GACPG,MAAO,QACPvkB,KAAM,aAGd,MAAS,CACL04E,EAAyBE,aAAa,aACtCS,EAAS,SACT,CACI90D,MAAO,gBACPH,MAAO,MACPpkB,KAAM,SACP,CACCukB,MAAO,OACPH,MAAO,UACPpkB,KAAM,SACP,CACCukB,MAAO,QACPH,MAAO,GACPpkB,KAAM,aAGd,MAAS,CACL,CACIukB,MAAO,0BACPH,MAAO,6CACR,CACCG,MAAO,gBACPH,MAAO,cACPpkB,KAAM,YACP,CACCukB,MAAO,UACPH,MAAO,iDACR,CACCG,MAAO,2BACPH,MAAO,iDACR,CACCG,MAAO,8BACPH,MAAO,MACR,CACCG,MAAO,2BACPH,MAAO,QACPpkB,KAAM,yBACP,CACCukB,MAAO,QACPH,MAAO,IACPpkB,KAAM,YACP,CACC8jB,aAAc,kBAGtB,sBAAyB,CACrB,CACIS,MAAO,oCACPH,MAAO,6CACR,CACCG,MAAO,2BACPH,MAAO,IACPpkB,KAAM,SACP,CACCukB,MAAO,2BACPH,MAAO,KACR,CACCG,MAAO,QACPH,MAAO,IACPpkB,KAAM,YACP,CACC8jB,aAAc,kCAGtB,kBAAqB,CACjB,CACIS,MAAO,SACPH,MAAO,SACP11C,KAAM,CACF,CACI61C,MAAO,SACPH,MAAO,MACPpkB,KAAM,OACP,CACC/kB,QAAS,aAGlB,CACCspC,MAAO,SACPH,MAAO,SACP11C,KAAM,CACF,CACI61C,MAAO,SACPH,MAAO,MACPpkB,KAAM,OACP,CACC/kB,QAAS,cAGlB,CACCspC,MAAO,oBACPH,MAAO,+BACR,CACCG,MAAO,mBACPH,MAAO,gDACR,CACCG,MAAO,mBACPH,MAAO,gDACR,CACCG,MAAO,uBACPH,MAAO,IACPpkB,KAAM,sBACP,CACCukB,MAAO,OACPH,MAAO,QACR,CACCG,MAAO,uBACPH,MAAO,KACR,CACCG,MAAO,QACPH,MAAO,GACPpkB,KAAM,aAGd,mBAAsB,CAClBq5E,EAAS,sBACT,CACI90D,MAAO,qBACPH,MAAO80D,GACR,CACC30D,MAAO,uBACPH,MAAO,KACR,CACCG,MAAO,OACPH,MAAO,QACR,CACCG,MAAO,uBACPH,MAAO,KACR,CACCG,MAAO,QACPH,MAAO,GACPpkB,KAAM,aAGd,SAAY,CACR,CACIukB,MAAO,2BACPH,MAAOg1D,GACR,CACC70D,MAAO,SACPH,MAAO,QACP0B,gBAAgB,GACjB,CACCvB,MAAO,SACPH,MAAO,MACPpkB,KAAM,YACP,CACC8jB,aAAc,WAGtB,QAAW,CACP,CACIS,MAAO,2BACPH,MAAOg1D,GACR,CACC70D,MAAO,SACPH,MAAO,QACP0B,gBAAgB,GACjB,CACCvB,MAAO,SACPH,MAAO,MACPpkB,KAAM,YACP,CACC8jB,aAAc,YAIrB1qC,GAAYA,EAAQkgG,QACrB3sG,KAAKu5C,OAAOqzD,SAASvzD,QAAQ,CACzB5B,MAAO,OAAQM,QAAS,SAAU30C,EAAK+9B,EAAOqX,GAE1C,GADAx4C,KAAKqzB,KAAc,KAAPjwB,EAAapD,KAAK05C,UAAY,GAC/B,KAAPt2C,GAAco1C,EAAMj4C,OACpBi4C,EAAMa,QAAQ,QAASlY,QAEtB,GAAW,KAAP/9B,GAAco1C,EAAMj4C,SACzBi4C,EAAMrqB,QACNnuB,KAAKqzB,KAAOmlB,EAAMrqB,SACkB,GAAhCnuB,KAAKqzB,KAAKlxB,QAAQ,YAAgD,GAA7BnC,KAAKqzB,KAAKlxB,QAAQ,QACvD,MAAO,kBAEf,MAAc,KAAPiB,EAAa,eAAiB,cACzC,EACAs2C,UAAW,SACZ,CACC9B,MAAO,qBACPH,MAAO,IACP11C,KAAM,CAAC,CACC61C,MAAO,2BACPH,MAAOg1D,GACR,CACC70D,MAAO,oBACPH,MAAO,MACP11C,KAAM,SACP,CACC61C,MAAO,mBACPH,MAAO,IACPpkB,KAAM,OACP,CACC8jB,aAAc,kBAEvB,CACCS,MAAO,CAAC,qBAAsB,QAC9BH,MAAO,IAAM80D,EAAe,mBAC7B,CACC30D,MAAO,eACPH,MAAO,oBACPpkB,KAAM,sBACP,CACCukB,MAAO,oBACPH,MAAO,4CAEXz3C,KAAKu5C,OAA2B,mBAAEF,QAAQ,CACtCzB,MAAO,mBACPH,MAAO,IACPpkB,KAAM,qBACP,CACCukB,MAAO,mBACPH,MAAO,WAEXz3C,KAAKu5C,OAAiB,SAAEF,QAAQ,CAC5BzB,MAAO,mBACPH,MAAO,uLAER,CACCG,MAAO,oBACPH,MAAO,qDAENhrC,GAA0B,GAAfA,EAAQogG,KACpBC,EAAIrrG,KAAKzB,OAEjBA,KAAK45C,WAAWmyD,EAA0B,OAAQ,CAACA,EAAyBG,WAAW,cACvFlsG,KAAKo6C,gBACT,EAEA,SAAS0yD,IACL,IAAIC,EAAWR,EAAa7pG,QAAQ,MAAO,UACvCsqG,EAAS,CACTj1D,QAAS,SAAU30C,EAAK+9B,EAAOqX,GAC3B,IAAItwC,EAA0B,KAAjB9E,EAAId,OAAO,GAAY,EAAI,EAiBxC,OAhBc,GAAV4F,GACIi5B,GAASnhC,KAAK05C,UACdlB,EAAMa,QAAQr5C,KAAKqzB,KAAMrzB,KAAK05C,UAAW,GAEzClB,EAAMa,QAAQr5C,KAAKqzB,MACvBmlB,EAAM,MAES,GAAVtwC,GACDi5B,GAASnhC,KAAK05C,YACdlB,EAAM,OACDA,EAAM,IAAMA,EAAM,GAAK,KACxBA,EAAMrqB,QACNqqB,EAAMrqB,UAIX,CAAC,CACApa,KAAM,yBAAqC,GAAV7L,EAAc,GAAK,QAAU,eAC9D5E,MAAOF,EAAIb,MAAM,EAAG2F,IACrB,CACC6L,KAAM,wBACNzQ,MAAOF,EAAI+qC,OAAOjmC,IAE9B,EACAuvC,MAAO,MAAQs1D,EACf15E,KAAM,gBACNqmB,UAAW,OAEf15C,KAAKu5C,OAAOj+B,MAAM+9B,QAAQ2zD,GAC1B,IAAIC,EAAY,CACZx1D,MAAO,IACPG,MAAO,oBACP71C,KAAM,SAEV/B,KAAKu5C,OAAOszD,IAAM,CACdI,EACAD,EACA,CAAE1+F,QAAS,aACX,CAAE6oC,aAAc,WAEpBn3C,KAAKu5C,OAAO2zD,cAAgB,CAAC,CACrBt1D,MAAO,qCACPH,MAAO,MACPM,QAAS,SAAUz0C,EAAO01C,EAAcR,GAWpC,OAVIQ,GAAgBR,EAAM,IACtBA,EAAMrqB,QACU,GAAhB7qB,EAAM/C,SACFi4C,EAAM,IAAMx4C,KAAK05C,WACjBlB,EAAM,OACLA,EAAM,IAAMA,EAAM,GAAK,IACxBA,EAAM5wC,OAAO,EAAG,IAGxB5H,KAAKqzB,KAAOmlB,EAAM,IAAM,QACjB,CAAC,CAAEzkC,KAAM/T,KAAK43C,MAAOt0C,MAAOA,GACvC,EACAo2C,UAAW,OAEfuzD,EACAP,EAAS,iBACT,CACI90D,MAAO,kCACPH,MAAOs1D,GACR,CACCn1D,MAAO,wCACPH,MAAO,KACR,CACCG,MAAO,0BACPH,MAAO,QACR,CACCG,MAAO,6BACPH,MAAO,IACP+C,UAAW,aACXz4C,KAAM,CACF,CAAE61C,MAAO,6BAA8BH,MAAO,IAAKpkB,KAAM,OACzD,CAAE/kB,QAAS,aACX,CAAE6oC,aAAc,gCAErB,CACCS,MAAO,6BACPH,MAAO,IACP+C,UAAW,cACXz4C,KAAM,CACF,CAAE61C,MAAO,6BAA8BH,MAAO,IAAKpkB,KAAM,OACzD,CAAE/kB,QAAS,aACX,CAAE6oC,aAAc,gCAGxB61D,GAEJhtG,KAAKu5C,OAAO4zD,UAAY,CAAC,CACjBv1D,MAAO,yCACPH,MAAO,+DAEnB,CACA,SAASi1D,EAASr5E,GACd,MAAO,CACH,CACIukB,MAAO,UACPH,MAAO,OACPpkB,KAAM,CACF04E,EAAyBC,aACzB,CAAEp0D,MAAO,UAAWH,MAAO,SAAUpkB,KAAMA,GAAQ,OACnD,CAAE8jB,aAAc,UAAWI,iBAAiB,KAEjD,CACCK,MAAO,UACPH,MAAO,SACPpkB,KAAM,CACF04E,EAAyBC,aACzB,CAAEp0D,MAAO,UAAWH,MAAO,MAAOpkB,KAAMA,GAAQ,OAChD,CAAE8jB,aAAc,UAAWI,iBAAiB,KAI5D,CAzHA/hC,EAAI7C,SAAS65F,EAA0BlzD,GA0HvC32C,EAAQ6pG,yBAA2BA,CAEnC,IAEAxpG,IAAI9C,OAAO,kCAAkC,CAAC,UAAU,UAAU,SAAS,cAAc,SAAS4B,EAASa,EAASxC,GAAQ,aAC5H,IAAI8a,EAAQnZ,EAAQ,YAAYmZ,MAC5BmvF,EAAuB,WAAc,GACzC,WACIpqG,KAAK0iD,aAAe,SAAUr5C,EAAMs5C,GAChC,QAAK,QAAQl3C,KAAKpC,IAEX,SAASoC,KAAKk3C,EACzB,EACA3iD,KAAK4iD,YAAc,SAAU31C,EAAKsO,GAC9B,IACI5Q,EADOsC,EAAIyb,QAAQnN,GACN5Q,MAAM,YACvB,IAAKA,EACD,OAAO,EACX,IAAI6Q,EAAS7Q,EAAM,GAAGpK,OAClBk+C,EAAexxC,EAAIyxC,oBAAoB,CAAEnjC,IAAKA,EAAKC,OAAQA,IAC/D,IAAKijC,GAAgBA,EAAaljC,KAAOA,EACrC,OAAO,EACX,IAAIsyB,EAAS7tC,KAAK4+C,WAAW3xC,EAAIyb,QAAQ+1B,EAAaljC,MACtDtO,EAAIvK,QAAQ,IAAIuY,EAAMM,EAAK,EAAGA,EAAKC,EAAS,GAAIqyB,EACpD,EACA7tC,KAAK4+C,WAAa,SAAUv1C,GACxB,OAAOA,EAAKsB,MAAM,QAAQ,EAC9B,CACH,GAAElJ,KAAK2oG,EAAqB7oG,WAC7BoB,EAAQynG,qBAAuBA,CAE/B,IAEApnG,IAAI9C,OAAO,0BAA0B,CAAC,UAAU,UAAU,SAAS,cAAc,YAAY,+BAA+B,SAAS4B,EAASa,EAASxC,GAAQ,aAC/J,IAAIqV,EAAM1T,EAAQ,iBACdmZ,EAAQnZ,EAAQ,eAAemZ,MAC/B+vF,EAAelpG,EAAQ,eAAeuiG,SACtCA,EAAW1hG,EAAQ0hG,SAAW,SAAU4G,GACpCA,IACAjrG,KAAKskG,mBAAqB,IAAIp7F,OAAOlJ,KAAKskG,mBAAmBz/F,OAAOnC,QAAQ,YAAa,IAAMuoG,EAAa3vF,QAC5Gtb,KAAKukG,kBAAoB,IAAIr7F,OAAOlJ,KAAKukG,kBAAkB1/F,OAAOnC,QAAQ,YAAa,IAAMuoG,EAAa9kG,MAElH,EACAqP,EAAI7C,SAAS0xF,EAAU2G,GACvB,WACIhrG,KAAKskG,mBAAqB,mCAC1BtkG,KAAKukG,kBAAoB,uCACzBvkG,KAAKkrG,yBAA2B,uBAChClrG,KAAKmrG,yBAA2B,2BAChCnrG,KAAKorG,cAAgB,4BACrBprG,KAAKqrG,mBAAqBrrG,KAAK0zD,cAC/B1zD,KAAK0zD,cAAgB,SAAUn2C,EAASqlD,EAAWrnD,GAC/C,IAAIlS,EAAOkU,EAAQmL,QAAQnN,GAC3B,GAAIvb,KAAKkrG,yBAAyBz/F,KAAKpC,KAC9BrJ,KAAKorG,cAAc3/F,KAAKpC,KAAUrJ,KAAKmrG,yBAAyB1/F,KAAKpC,GACtE,MAAO,GAEf,IAAIorD,EAAKz0D,KAAKqrG,mBAAmB9tF,EAASqlD,EAAWrnD,GACrD,OAAKk5C,GAAMz0D,KAAKorG,cAAc3/F,KAAKpC,GACxB,QACJorD,CACX,EACAz0D,KAAK2zD,mBAAqB,SAAUp2C,EAASqlD,EAAWrnD,EAAK+vF,GACzD,IAoBI3gG,EApBAtB,EAAOkU,EAAQmL,QAAQnN,GAC3B,GAAIvb,KAAKorG,cAAc3/F,KAAKpC,GACxB,OAAOrJ,KAAKurG,sBAAsBhuF,EAASlU,EAAMkS,GAErD,GADI5Q,EAAQtB,EAAKsB,MAAM3K,KAAKskG,oBACjB,CACP,IAAI3iG,EAAIgJ,EAAM/F,MACd,GAAI+F,EAAM,GACN,OAAO3K,KAAK0kG,oBAAoBnnF,EAAS5S,EAAM,GAAI4Q,EAAK5Z,GAC5D,IAAI+Z,EAAQ6B,EAAQi2C,oBAAoBj4C,EAAK5Z,EAAIgJ,EAAM,GAAGpK,OAAQ,GAQlE,OAPImb,IAAUA,EAAMgB,gBACZ4uF,EACA5vF,EAAQ1b,KAAKwrG,gBAAgBjuF,EAAShC,GAEpB,OAAbqnD,IACLlnD,EAAQ,OAETA,CACX,CACA,MAAkB,cAAdknD,IAEAj4D,EAAQtB,EAAKsB,MAAM3K,KAAKukG,qBAEpB5iG,EAAIgJ,EAAM/F,MAAQ+F,EAAM,GAAGpK,OAC3BoK,EAAM,GACC3K,KAAK2kG,oBAAoBpnF,EAAS5S,EAAM,GAAI4Q,EAAK5Z,GACrD4b,EAAQi2C,oBAAoBj4C,EAAK5Z,GAAI,SAPhD,CASJ,EACA3B,KAAKwrG,gBAAkB,SAAUjuF,EAAShC,GAQtC,IAPA,IAAIlS,EAAOkU,EAAQmL,QAAQnN,GACvBkwF,EAAcpiG,EAAKorC,OAAO,MAC1Bv5B,EAAWK,EACXJ,EAAc9R,EAAK9I,OAEnB6a,EADJG,GAAY,EAERsmD,EAAStkD,EAAQwc,cACZxe,EAAMsmD,GAAQ,CAEnB,IAAIh0B,GADJxkC,EAAOkU,EAAQmL,QAAQnN,IACLk5B,OAAO,MACzB,IAAgB,IAAZ5G,EAAJ,CAEA,GAAI49D,EAAc59D,EACd,MACJ,IAAI69D,EAAW1rG,KAAK2zD,mBAAmBp2C,EAAS,MAAOhC,GACvD,GAAImwF,EAAU,CACV,GAAIA,EAASpwF,MAAMC,KAAOL,EACtB,MAEC,GAAIwwF,EAAShvF,cACdnB,EAAMmwF,EAASvlG,IAAIoV,SAElB,GAAIkwF,GAAe59D,EACpB,KAER,CACAzyB,EAASG,CAfG,CAgBhB,CACA,OAAO,IAAIN,EAAMC,EAAUC,EAAaC,EAAQmC,EAAQmL,QAAQtN,GAAQ7a,OAC5E,EACAP,KAAKurG,sBAAwB,SAAUhuF,EAASlU,EAAMkS,GAMlD,IALA,IAAIJ,EAAc9R,EAAKorC,OAAO,QAC1BotB,EAAStkD,EAAQwc,YACjB7e,EAAWK,EACX5C,EAAK,uCACL86C,EAAQ,IACHl4C,EAAMsmD,GAAQ,CACnBx4D,EAAOkU,EAAQmL,QAAQnN,GACvB,IAAIT,EAAInC,EAAGzO,KAAKb,GAChB,GAAKyR,IAEDA,EAAE,GACF24C,IAEAA,KACCA,GACD,KACR,CAEA,GADal4C,EACAL,EACT,OAAO,IAAID,EAAMC,EAAUC,EAFlBI,EAEuClS,EAAK9I,OAE7D,CACH,EAAEkB,KAAK4iG,EAAS9iG,UAEjB,IAEAyB,IAAI9C,OAAO,sBAAsB,CAAC,UAAU,UAAU,SAAS,cAAc,gBAAgB,sCAAsC,kCAAkC,2BAA2B,4BAA4B,4BAA4B,SAAS4B,EAASa,EAASxC,GAAQ,aAC3R,IAAIqV,EAAM1T,EAAQ,cACdg1D,EAAWh1D,EAAQ,UAAUu+C,KAC7BmsD,EAA2B1qG,EAAQ,gCAAgC0qG,yBACnEpC,EAAuBtoG,EAAQ,4BAA4BsoG,qBAC3D9O,EAAex5F,EAAQ,2BAA2Bw5F,aAClDx9C,EAAkBh8C,EAAQ,sBAAsBg8C,gBAChD6tD,EAAiB7pG,EAAQ,oBAAoBuiG,SAC7ChkD,EAAO,WACPrgD,KAAK65C,eAAiB2yD,EACtBxsG,KAAK4rG,SAAW,IAAIxB,EACpBpqG,KAAKujD,WAAa,IAAIzF,EACtB99C,KAAKk8D,aAAe,IAAIyvC,CAC5B,EACAn2F,EAAI7C,SAAS0tC,EAAMyW,GACnB,WACI92D,KAAKi/C,iBAAmB,KACxBj/C,KAAK2gD,aAAe,CAAErlC,MAAO,KAAMnV,IAAK,MACxCnG,KAAKg/C,QAAU,CAAE,IAAK,IAAK,IAAK,IAAK,IAAK,KAC1Ch/C,KAAK6/C,iBAAmB,CACpB,IAAK,MAET7/C,KAAKwiD,kBAAoB,SAAUrhB,EAAO93B,EAAMo5C,GAC5C,IAAI5U,EAAS7tC,KAAK4+C,WAAWv1C,GACzBgjG,EAAgBrsG,KAAKugD,eAAezH,cAAczvC,EAAM83B,GACxDoX,EAAS8zD,EAAc9zD,OACvB60D,EAAWf,EAAclrE,MAC7B,GAAIoX,EAAOh4C,QAA4C,WAAlCg4C,EAAOA,EAAOh4C,OAAS,GAAGwT,KAC3C,OAAO85B,EAEX,GAAa,SAAT1M,GAA6B,YAATA,GAChBx2B,EAAQtB,EAAKsB,MAAM,sCAEnBkjC,GAAU4U,QAGb,GAAa,aAATthB,EAAsB,CAC3B,GAAgB,SAAZisE,GAAmC,YAAZA,EACvB,MAAO,GAEX,IAAIziG,KAAQtB,EAAKsB,MAAM,kBAEfA,EAAM,KACNkjC,GAAU,KAEdA,GAAU,KAElB,CACA,OAAOA,CACX,EACA7tC,KAAK0iD,aAAe,SAAUvhB,EAAO93B,EAAMs5C,GACvC,OAAO3iD,KAAK4rG,SAASlpD,aAAar5C,EAAMs5C,EAC5C,EACA3iD,KAAK4iD,YAAc,SAAUzhB,EAAOl0B,EAAKsO,GACrCvb,KAAK4rG,SAAShpD,YAAY31C,EAAKsO,EACnC,EACAvb,KAAK6iD,aAAe,SAAUtlC,GAC1B,IAAIg+E,EAAS,IAAID,EAAa,CAAC,OAAQ,6BAA8B,oBAQrE,OAPAC,EAAOsB,iBAAiBt/E,EAAQgzB,eAChCgrD,EAAOrnF,GAAG,YAAY,SAAUm5F,GAC5B9vF,EAAQq7C,eAAey0C,EAAQh4F,KACnC,IACAkmF,EAAOrnF,GAAG,aAAa,WACnBqJ,EAAQ09C,kBACZ,IACOsgC,CACX,EACAv7F,KAAKuX,IAAM,sBACXvX,KAAK8rG,cAAgB,yBACxB,EAAErqG,KAAK4+C,EAAK9+C,WACboB,EAAQ09C,KAAOA,CAEf,IACoBr9C,IAAIlB,QAAQ,CAAC,wBAAwB,SAASgZ,GACqB3a,IAC3DA,EAAOwC,QAAUmY,EAEzB,8BCl3BpB9X,IAAI9C,OAAO,gCAAgC,CAAC,UAAU,UAAU,SAAS,cAAc,kCAAkC,SAAS4B,EAASa,EAASxC,GAAQ,aAC5J,IAAIqV,EAAM1T,EAAQ,cACdw3C,EAAqBx3C,EAAQ,0BAA0Bw3C,mBACvDg0D,EAAqB,WACrBttG,KAAKu5C,OAAS,CACV,MAAS,CACL,CACI3B,MAAO,WACPH,MAAO,+CACR,CACCG,MAAO,SACPH,MAAO,IACPpkB,KAAM,UACP,CACCukB,MAAO,mBACPH,MAAO,wBACR,CACCG,MAAO,mBACPH,MAAO,mDACR,CACCG,MAAO,4BACPH,MAAO,qBACR,CACCG,MAAO,OACPH,MAAO,sCACR,CACCG,MAAO,UACPH,MAAO,aACR,CACCG,MAAO,gBACPH,MAAO,SACPpkB,KAAM,WACP,CACCukB,MAAO,eACPH,MAAO,SACR,CACCG,MAAO,eACPH,MAAO,WACR,CACCG,MAAO,uBACPH,MAAO,OACR,CACCG,MAAO,OACPH,MAAO,SAGf,OAAU,CACN,CACIG,MAAO,2BACPH,MAAO,sDACR,CACCG,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAGtB,QAAW,CACP,CACIS,MAAO,cACPH,MAAO,SACPpkB,KAAM,SACP,CACC8jB,aAAc,YAI9B,EACA3hC,EAAI7C,SAAS26F,EAAoBh0D,GACjC32C,EAAQ2qG,mBAAqBA,CAE7B,IAEAtqG,IAAI9C,OAAO,kCAAkC,CAAC,UAAU,UAAU,SAAS,cAAc,SAAS4B,EAASa,EAASxC,GAAQ,aAC5H,IAAI8a,EAAQnZ,EAAQ,YAAYmZ,MAC5BmvF,EAAuB,WAAc,GACzC,WACIpqG,KAAK0iD,aAAe,SAAUr5C,EAAMs5C,GAChC,QAAK,QAAQl3C,KAAKpC,IAEX,SAASoC,KAAKk3C,EACzB,EACA3iD,KAAK4iD,YAAc,SAAU31C,EAAKsO,GAC9B,IACI5Q,EADOsC,EAAIyb,QAAQnN,GACN5Q,MAAM,YACvB,IAAKA,EACD,OAAO,EACX,IAAI6Q,EAAS7Q,EAAM,GAAGpK,OAClBk+C,EAAexxC,EAAIyxC,oBAAoB,CAAEnjC,IAAKA,EAAKC,OAAQA,IAC/D,IAAKijC,GAAgBA,EAAaljC,KAAOA,EACrC,OAAO,EACX,IAAIsyB,EAAS7tC,KAAK4+C,WAAW3xC,EAAIyb,QAAQ+1B,EAAaljC,MACtDtO,EAAIvK,QAAQ,IAAIuY,EAAMM,EAAK,EAAGA,EAAKC,EAAS,GAAIqyB,EACpD,EACA7tC,KAAK4+C,WAAa,SAAUv1C,GACxB,OAAOA,EAAKsB,MAAM,QAAQ,EAC9B,CACH,GAAElJ,KAAK2oG,EAAqB7oG,WAC7BoB,EAAQynG,qBAAuBA,CAE/B,IAEApnG,IAAI9C,OAAO,0BAA0B,CAAC,UAAU,UAAU,SAAS,cAAc,YAAY,+BAA+B,SAAS4B,EAASa,EAASxC,GAAQ,aAC/J,IAAIqV,EAAM1T,EAAQ,iBACdmZ,EAAQnZ,EAAQ,eAAemZ,MAC/B+vF,EAAelpG,EAAQ,eAAeuiG,SACtCA,EAAW1hG,EAAQ0hG,SAAW,SAAU4G,GACpCA,IACAjrG,KAAKskG,mBAAqB,IAAIp7F,OAAOlJ,KAAKskG,mBAAmBz/F,OAAOnC,QAAQ,YAAa,IAAMuoG,EAAa3vF,QAC5Gtb,KAAKukG,kBAAoB,IAAIr7F,OAAOlJ,KAAKukG,kBAAkB1/F,OAAOnC,QAAQ,YAAa,IAAMuoG,EAAa9kG,MAElH,EACAqP,EAAI7C,SAAS0xF,EAAU2G,GACvB,WACIhrG,KAAKskG,mBAAqB,mCAC1BtkG,KAAKukG,kBAAoB,uCACzBvkG,KAAKkrG,yBAA2B,uBAChClrG,KAAKmrG,yBAA2B,2BAChCnrG,KAAKorG,cAAgB,4BACrBprG,KAAKqrG,mBAAqBrrG,KAAK0zD,cAC/B1zD,KAAK0zD,cAAgB,SAAUn2C,EAASqlD,EAAWrnD,GAC/C,IAAIlS,EAAOkU,EAAQmL,QAAQnN,GAC3B,GAAIvb,KAAKkrG,yBAAyBz/F,KAAKpC,KAC9BrJ,KAAKorG,cAAc3/F,KAAKpC,KAAUrJ,KAAKmrG,yBAAyB1/F,KAAKpC,GACtE,MAAO,GAEf,IAAIorD,EAAKz0D,KAAKqrG,mBAAmB9tF,EAASqlD,EAAWrnD,GACrD,OAAKk5C,GAAMz0D,KAAKorG,cAAc3/F,KAAKpC,GACxB,QACJorD,CACX,EACAz0D,KAAK2zD,mBAAqB,SAAUp2C,EAASqlD,EAAWrnD,EAAK+vF,GACzD,IAoBI3gG,EApBAtB,EAAOkU,EAAQmL,QAAQnN,GAC3B,GAAIvb,KAAKorG,cAAc3/F,KAAKpC,GACxB,OAAOrJ,KAAKurG,sBAAsBhuF,EAASlU,EAAMkS,GAErD,GADI5Q,EAAQtB,EAAKsB,MAAM3K,KAAKskG,oBACjB,CACP,IAAI3iG,EAAIgJ,EAAM/F,MACd,GAAI+F,EAAM,GACN,OAAO3K,KAAK0kG,oBAAoBnnF,EAAS5S,EAAM,GAAI4Q,EAAK5Z,GAC5D,IAAI+Z,EAAQ6B,EAAQi2C,oBAAoBj4C,EAAK5Z,EAAIgJ,EAAM,GAAGpK,OAAQ,GAQlE,OAPImb,IAAUA,EAAMgB,gBACZ4uF,EACA5vF,EAAQ1b,KAAKwrG,gBAAgBjuF,EAAShC,GAEpB,OAAbqnD,IACLlnD,EAAQ,OAETA,CACX,CACA,MAAkB,cAAdknD,IAEAj4D,EAAQtB,EAAKsB,MAAM3K,KAAKukG,qBAEpB5iG,EAAIgJ,EAAM/F,MAAQ+F,EAAM,GAAGpK,OAC3BoK,EAAM,GACC3K,KAAK2kG,oBAAoBpnF,EAAS5S,EAAM,GAAI4Q,EAAK5Z,GACrD4b,EAAQi2C,oBAAoBj4C,EAAK5Z,GAAI,SAPhD,CASJ,EACA3B,KAAKwrG,gBAAkB,SAAUjuF,EAAShC,GAQtC,IAPA,IAAIlS,EAAOkU,EAAQmL,QAAQnN,GACvBkwF,EAAcpiG,EAAKorC,OAAO,MAC1Bv5B,EAAWK,EACXJ,EAAc9R,EAAK9I,OAEnB6a,EADJG,GAAY,EAERsmD,EAAStkD,EAAQwc,cACZxe,EAAMsmD,GAAQ,CAEnB,IAAIh0B,GADJxkC,EAAOkU,EAAQmL,QAAQnN,IACLk5B,OAAO,MACzB,IAAgB,IAAZ5G,EAAJ,CAEA,GAAI49D,EAAc59D,EACd,MACJ,IAAI69D,EAAW1rG,KAAK2zD,mBAAmBp2C,EAAS,MAAOhC,GACvD,GAAImwF,EAAU,CACV,GAAIA,EAASpwF,MAAMC,KAAOL,EACtB,MAEC,GAAIwwF,EAAShvF,cACdnB,EAAMmwF,EAASvlG,IAAIoV,SAElB,GAAIkwF,GAAe59D,EACpB,KAER,CACAzyB,EAASG,CAfG,CAgBhB,CACA,OAAO,IAAIN,EAAMC,EAAUC,EAAaC,EAAQmC,EAAQmL,QAAQtN,GAAQ7a,OAC5E,EACAP,KAAKurG,sBAAwB,SAAUhuF,EAASlU,EAAMkS,GAMlD,IALA,IAAIJ,EAAc9R,EAAKorC,OAAO,QAC1BotB,EAAStkD,EAAQwc,YACjB7e,EAAWK,EACX5C,EAAK,uCACL86C,EAAQ,IACHl4C,EAAMsmD,GAAQ,CACnBx4D,EAAOkU,EAAQmL,QAAQnN,GACvB,IAAIT,EAAInC,EAAGzO,KAAKb,GAChB,GAAKyR,IAEDA,EAAE,GACF24C,IAEAA,KACCA,GACD,KACR,CAEA,GADal4C,EACAL,EACT,OAAO,IAAID,EAAMC,EAAUC,EAFlBI,EAEuClS,EAAK9I,OAE7D,CACH,EAAEkB,KAAK4iG,EAAS9iG,UAEjB,IAEAyB,IAAI9C,OAAO,gBAAgB,CAAC,UAAU,UAAU,SAAS,cAAc,gBAAgB,gCAAgC,kCAAkC,0BAA0B,6BAA6B,SAAS4B,EAASa,EAASxC,GAAQ,aACnP,IAAIqV,EAAM1T,EAAQ,cACdg1D,EAAWh1D,EAAQ,UAAUu+C,KAC7BxG,EAAiB/3C,EAAQ,0BAA0BwrG,mBACnDlD,EAAuBtoG,EAAQ,4BAA4BsoG,qBAC3DuB,EAAiB7pG,EAAQ,oBAAoBuiG,SAC7C/I,EAAex5F,EAAQ,2BAA2Bw5F,aAClDj7C,EAAO,WACPrgD,KAAK65C,eAAiBA,EACtB75C,KAAK4rG,SAAW,IAAIxB,EACpBpqG,KAAKujD,WAAavjD,KAAKsgD,kBACvBtgD,KAAKk8D,aAAe,IAAIyvC,CAC5B,EACAn2F,EAAI7C,SAAS0tC,EAAMyW,GACnB,WACI92D,KAAKi/C,iBAAmB,KACxBj/C,KAAK2gD,aAAe,CAAErlC,MAAO,KAAMnV,IAAK,MACxCnG,KAAKwiD,kBAAoB,SAAUrhB,EAAO93B,EAAMo5C,GAC5C,IAAI5U,EAAS7tC,KAAK4+C,WAAWv1C,GAO7B,MANa,SAAT83B,GACY93B,EAAKsB,MAAM,qBAEnBkjC,GAAU4U,GAGX5U,CACX,EACA7tC,KAAK0iD,aAAe,SAAUvhB,EAAO93B,EAAMs5C,GACvC,OAAO3iD,KAAK4rG,SAASlpD,aAAar5C,EAAMs5C,EAC5C,EACA3iD,KAAK4iD,YAAc,SAAUzhB,EAAOl0B,EAAKsO,GACrCvb,KAAK4rG,SAAShpD,YAAY31C,EAAKsO,EACnC,EACAvb,KAAK6iD,aAAe,SAAUtlC,GAC1B,IAAIg+E,EAAS,IAAID,EAAa,CAAC,OAAQ,uBAAwB,cAQ/D,OAPAC,EAAOsB,iBAAiBt/E,EAAQgzB,eAChCgrD,EAAOrnF,GAAG,YAAY,SAAU/K,GAC5BoU,EAAQq7C,eAAezvD,EAAEkM,KAC7B,IACAkmF,EAAOrnF,GAAG,aAAa,WACnBqJ,EAAQ09C,kBACZ,IACOsgC,CACX,EACAv7F,KAAKuX,IAAM,eACd,EAAE9V,KAAK4+C,EAAK9+C,WACboB,EAAQ09C,KAAOA,CAEf,IACoBr9C,IAAIlB,QAAQ,CAAC,kBAAkB,SAASgZ,GAC2B3a,IAC3DA,EAAOwC,QAAUmY,EAEzB,8BChRpB9X,IAAI9C,OAAO,uCAAuC,CAAC,UAAU,UAAU,SAAS,cAAc,kCAAkC,SAAS4B,EAASa,EAASxC,GAAQ,aACnK,IAAIqV,EAAM1T,EAAQ,cACdw3C,EAAqBx3C,EAAQ,0BAA0Bw3C,mBACvDyyD,EAA2B,WAC3B/rG,KAAKu5C,OAAS,CACV,MAAS,CACL,CACI3B,MAAO,kBACPH,MAAO,kBACRs0D,EAAyBC,aAAc,CACtC70D,aAAc,cACdI,iBAAiB,IAIjC,EACA/hC,EAAI7C,SAASo5F,EAA0BzyD,GACvCyyD,EAAyBC,WAAa,SAAU1wF,GAC5C,MAAO,CACHs8B,MAAO,+BACPH,MAAO,gCAEf,EACAs0D,EAAyBE,aAAe,SAAU3wF,GAC9C,MAAO,CACHs8B,MAAO,cACPH,MAAO,gBACPpkB,KAAM/X,EAEd,EACAywF,EAAyBG,WAAa,SAAU5wF,GAC5C,MAAO,CACHs8B,MAAO,cACPH,MAAO,SACPpkB,KAAM/X,EAEd,EACA3Y,EAAQopG,yBAA2BA,CAEnC,IAEA/oG,IAAI9C,OAAO,+BAA+B,CAAC,UAAU,UAAU,SAAS,cAAc,eAAe,uCAAuC,kCAAkC,SAAS4B,EAASa,EAASxC,GAAQ,IAAIqV,EAAM1T,EAAQ,cAC/N0V,EAAO1V,EAAQ,eACfiqG,EAA2BjqG,EAAQ,iCAAiCiqG,yBACpEzyD,EAAqBx3C,EAAQ,0BAA0Bw3C,mBACvDi0D,EAAoB,WACpB,IAAIxyD,EAAWvjC,EAAKlQ,WAAW,4RAKbjF,MAAM,MACpBmrG,EAAmBh2F,EAAKlQ,WAAW,2DAA6DjF,MAAM,MACtGorG,EAAWj2F,EAAKlQ,WAAW,gHAGwBjF,MAAM,MACzDkqG,EAAe,4BACnBvsG,KAAKu5C,OAAS,CACV,MAAS,CACL,CACI3B,MAAO,UACPH,MAAO,aAEXs0D,EAAyBE,aAAa,aACtC,CACIr0D,MAAO,UACPH,MAAO,SACPpkB,KAAM,WACP,CACCukB,MAAO,gBACPH,MAAO,gFACR,CACCG,MAAO,SACPH,MAAO,sCACR,CACCG,MAAO,SACPH,MAAO,sCACR,CACCG,MAAO,mBACPH,MAAO,wBACR,CACCG,MAAO,mBACPH,MAAO,mDACR,CACCG,MAAO,4BACPH,MAAO,qBACR,CACCG,MAAO,CACH,eACA,OACA,wBAEJH,MAAO,oBAAsB80D,EAAe,KAC7C,CACC30D,MAAO,SAAUt0C,GACb,MAAa,QAATA,EACO,oBACO,YAATA,EACE,eACFy3C,EAAS5iC,eAAe7U,IAAUmqG,EAASt1F,eAAe7U,GACxD,UACFkqG,EAAiBr1F,eAAe7U,GAC9B,oBACF,yBAAyBmI,KAAKnI,GAC5B,yBAEA,YACf,EACAm0C,MAAO80D,GACR,CACC30D,MAAO,mBACPH,MAAO,gKACR,CACCG,MAAO,uBACPH,MAAO,uBACR,CACCG,MAAO,eACPH,MAAO,UACR,CACCG,MAAO,eACPH,MAAO,YACR,CACCG,MAAO,OACPH,MAAO,SAGf,QAAW,CACP,CACIG,MAAO,UACPH,MAAO,SACPpkB,KAAM,SACP,CACC8jB,aAAc,aAI1Bn3C,KAAK45C,WAAWmyD,EAA0B,OAAQ,CAACA,EAAyBG,WAAW,UAC3F,EACA12F,EAAI7C,SAAS46F,EAAmBj0D,GAChC32C,EAAQ4qG,kBAAoBA,CAE5B,IAEAvqG,IAAI9C,OAAO,kCAAkC,CAAC,UAAU,UAAU,SAAS,cAAc,SAAS4B,EAASa,EAASxC,GAAQ,aAC5H,IAAI8a,EAAQnZ,EAAQ,YAAYmZ,MAC5BmvF,EAAuB,WAAc,GACzC,WACIpqG,KAAK0iD,aAAe,SAAUr5C,EAAMs5C,GAChC,QAAK,QAAQl3C,KAAKpC,IAEX,SAASoC,KAAKk3C,EACzB,EACA3iD,KAAK4iD,YAAc,SAAU31C,EAAKsO,GAC9B,IACI5Q,EADOsC,EAAIyb,QAAQnN,GACN5Q,MAAM,YACvB,IAAKA,EACD,OAAO,EACX,IAAI6Q,EAAS7Q,EAAM,GAAGpK,OAClBk+C,EAAexxC,EAAIyxC,oBAAoB,CAAEnjC,IAAKA,EAAKC,OAAQA,IAC/D,IAAKijC,GAAgBA,EAAaljC,KAAOA,EACrC,OAAO,EACX,IAAIsyB,EAAS7tC,KAAK4+C,WAAW3xC,EAAIyb,QAAQ+1B,EAAaljC,MACtDtO,EAAIvK,QAAQ,IAAIuY,EAAMM,EAAK,EAAGA,EAAKC,EAAS,GAAIqyB,EACpD,EACA7tC,KAAK4+C,WAAa,SAAUv1C,GACxB,OAAOA,EAAKsB,MAAM,QAAQ,EAC9B,CACH,GAAElJ,KAAK2oG,EAAqB7oG,WAC7BoB,EAAQynG,qBAAuBA,CAE/B,IAEApnG,IAAI9C,OAAO,0BAA0B,CAAC,UAAU,UAAU,SAAS,cAAc,YAAY,+BAA+B,SAAS4B,EAASa,EAASxC,GAAQ,aAC/J,IAAIqV,EAAM1T,EAAQ,iBACdmZ,EAAQnZ,EAAQ,eAAemZ,MAC/B+vF,EAAelpG,EAAQ,eAAeuiG,SACtCA,EAAW1hG,EAAQ0hG,SAAW,SAAU4G,GACpCA,IACAjrG,KAAKskG,mBAAqB,IAAIp7F,OAAOlJ,KAAKskG,mBAAmBz/F,OAAOnC,QAAQ,YAAa,IAAMuoG,EAAa3vF,QAC5Gtb,KAAKukG,kBAAoB,IAAIr7F,OAAOlJ,KAAKukG,kBAAkB1/F,OAAOnC,QAAQ,YAAa,IAAMuoG,EAAa9kG,MAElH,EACAqP,EAAI7C,SAAS0xF,EAAU2G,GACvB,WACIhrG,KAAKskG,mBAAqB,mCAC1BtkG,KAAKukG,kBAAoB,uCACzBvkG,KAAKkrG,yBAA2B,uBAChClrG,KAAKmrG,yBAA2B,2BAChCnrG,KAAKorG,cAAgB,4BACrBprG,KAAKqrG,mBAAqBrrG,KAAK0zD,cAC/B1zD,KAAK0zD,cAAgB,SAAUn2C,EAASqlD,EAAWrnD,GAC/C,IAAIlS,EAAOkU,EAAQmL,QAAQnN,GAC3B,GAAIvb,KAAKkrG,yBAAyBz/F,KAAKpC,KAC9BrJ,KAAKorG,cAAc3/F,KAAKpC,KAAUrJ,KAAKmrG,yBAAyB1/F,KAAKpC,GACtE,MAAO,GAEf,IAAIorD,EAAKz0D,KAAKqrG,mBAAmB9tF,EAASqlD,EAAWrnD,GACrD,OAAKk5C,GAAMz0D,KAAKorG,cAAc3/F,KAAKpC,GACxB,QACJorD,CACX,EACAz0D,KAAK2zD,mBAAqB,SAAUp2C,EAASqlD,EAAWrnD,EAAK+vF,GACzD,IAoBI3gG,EApBAtB,EAAOkU,EAAQmL,QAAQnN,GAC3B,GAAIvb,KAAKorG,cAAc3/F,KAAKpC,GACxB,OAAOrJ,KAAKurG,sBAAsBhuF,EAASlU,EAAMkS,GAErD,GADI5Q,EAAQtB,EAAKsB,MAAM3K,KAAKskG,oBACjB,CACP,IAAI3iG,EAAIgJ,EAAM/F,MACd,GAAI+F,EAAM,GACN,OAAO3K,KAAK0kG,oBAAoBnnF,EAAS5S,EAAM,GAAI4Q,EAAK5Z,GAC5D,IAAI+Z,EAAQ6B,EAAQi2C,oBAAoBj4C,EAAK5Z,EAAIgJ,EAAM,GAAGpK,OAAQ,GAQlE,OAPImb,IAAUA,EAAMgB,gBACZ4uF,EACA5vF,EAAQ1b,KAAKwrG,gBAAgBjuF,EAAShC,GAEpB,OAAbqnD,IACLlnD,EAAQ,OAETA,CACX,CACA,MAAkB,cAAdknD,IAEAj4D,EAAQtB,EAAKsB,MAAM3K,KAAKukG,qBAEpB5iG,EAAIgJ,EAAM/F,MAAQ+F,EAAM,GAAGpK,OAC3BoK,EAAM,GACC3K,KAAK2kG,oBAAoBpnF,EAAS5S,EAAM,GAAI4Q,EAAK5Z,GACrD4b,EAAQi2C,oBAAoBj4C,EAAK5Z,GAAI,SAPhD,CASJ,EACA3B,KAAKwrG,gBAAkB,SAAUjuF,EAAShC,GAQtC,IAPA,IAAIlS,EAAOkU,EAAQmL,QAAQnN,GACvBkwF,EAAcpiG,EAAKorC,OAAO,MAC1Bv5B,EAAWK,EACXJ,EAAc9R,EAAK9I,OAEnB6a,EADJG,GAAY,EAERsmD,EAAStkD,EAAQwc,cACZxe,EAAMsmD,GAAQ,CAEnB,IAAIh0B,GADJxkC,EAAOkU,EAAQmL,QAAQnN,IACLk5B,OAAO,MACzB,IAAgB,IAAZ5G,EAAJ,CAEA,GAAI49D,EAAc59D,EACd,MACJ,IAAI69D,EAAW1rG,KAAK2zD,mBAAmBp2C,EAAS,MAAOhC,GACvD,GAAImwF,EAAU,CACV,GAAIA,EAASpwF,MAAMC,KAAOL,EACtB,MAEC,GAAIwwF,EAAShvF,cACdnB,EAAMmwF,EAASvlG,IAAIoV,SAElB,GAAIkwF,GAAe59D,EACpB,KAER,CACAzyB,EAASG,CAfG,CAgBhB,CACA,OAAO,IAAIN,EAAMC,EAAUC,EAAaC,EAAQmC,EAAQmL,QAAQtN,GAAQ7a,OAC5E,EACAP,KAAKurG,sBAAwB,SAAUhuF,EAASlU,EAAMkS,GAMlD,IALA,IAAIJ,EAAc9R,EAAKorC,OAAO,QAC1BotB,EAAStkD,EAAQwc,YACjB7e,EAAWK,EACX5C,EAAK,uCACL86C,EAAQ,IACHl4C,EAAMsmD,GAAQ,CACnBx4D,EAAOkU,EAAQmL,QAAQnN,GACvB,IAAIT,EAAInC,EAAGzO,KAAKb,GAChB,GAAKyR,IAEDA,EAAE,GACF24C,IAEAA,KACCA,GACD,KACR,CAEA,GADal4C,EACAL,EACT,OAAO,IAAID,EAAMC,EAAUC,EAFlBI,EAEuClS,EAAK9I,OAE7D,CACH,EAAEkB,KAAK4iG,EAAS9iG,UAEjB,IAEAyB,IAAI9C,OAAO,eAAe,CAAC,UAAU,UAAU,SAAS,cAAc,gBAAgB,+BAA+B,kCAAkC,4BAA4B,SAAS4B,EAASa,EAASxC,GAAQ,aACtN,IAAIqV,EAAM1T,EAAQ,cACdg1D,EAAWh1D,EAAQ,UAAUu+C,KAC7BktD,EAAoBzrG,EAAQ,yBAAyByrG,kBACrDnD,EAAuBtoG,EAAQ,4BAA4BsoG,qBAC3DuB,EAAiB7pG,EAAQ,oBAAoBuiG,SACjD,SAAShkD,IACLrgD,KAAK65C,eAAiB0zD,EACtBvtG,KAAK4rG,SAAW,IAAIxB,EACpBpqG,KAAKujD,WAAavjD,KAAKsgD,kBACvBtgD,KAAKk8D,aAAe,IAAIyvC,CAC5B,CACAn2F,EAAI7C,SAAS0tC,EAAMyW,GACnB,WACI92D,KAAKi/C,iBAAmB,KACxBj/C,KAAK2gD,aAAe,CAAErlC,MAAO,KAAMnV,IAAK,MACxCnG,KAAKwiD,kBAAoB,SAAUrhB,EAAO93B,EAAMo5C,GAC5C,IAAI5U,EAAS7tC,KAAK4+C,WAAWv1C,GAEzBkvC,EADgBv4C,KAAKugD,eAAezH,cAAczvC,EAAM83B,GACjCoX,OAC3B,OAAIA,EAAOh4C,QAA4C,WAAlCg4C,EAAOA,EAAOh4C,OAAS,GAAGwT,MAGlC,SAATotB,GACY93B,EAAKsB,MAAM,qBAEnBkjC,GAAU4U,GALP5U,CASf,EACA7tC,KAAK0iD,aAAe,SAAUvhB,EAAO93B,EAAMs5C,GACvC,OAAO3iD,KAAK4rG,SAASlpD,aAAar5C,EAAMs5C,EAC5C,EACA3iD,KAAK4iD,YAAc,SAAUzhB,EAAOl0B,EAAKsO,GACrCvb,KAAK4rG,SAAShpD,YAAY31C,EAAKsO,EACnC,EACAvb,KAAKuX,IAAM,cACd,EAAE9V,KAAK4+C,EAAK9+C,WACboB,EAAQ09C,KAAOA,CAEf,IACoBr9C,IAAIlB,QAAQ,CAAC,iBAAiB,SAASgZ,GAC4B3a,IAC3DA,EAAOwC,QAAUmY,EAEzB,4BC/UpB9X,IAAI9C,OAAO,kCAAkC,CAAC,UAAU,UAAU,SAAS,cAAc,kCAAkC,SAAS4B,EAASa,EAASxC,GAGtJ,aACA,IAAIqV,EAAM1T,EAAQ,cACdw3C,EAAqBx3C,EAAQ,0BAA0Bw3C,mBACvDo0D,EAAuB,WACvB,IAaIzD,EAAgBjqG,KAAK46C,oBAAoB,CACzC,qBAAsB,WACtB,mBAXmB,kiBAYnB,oBAAqB,WACrB,oBAdmB,oDAenB,QAlBW,4LAmBZ,cACC+yD,EAAS,QACTC,EAAY,OACZC,EAAe,OACfC,EAAkB,wBAKlBC,EAAU,oFAGVC,EAAU,WACVC,EAAa,SAAWD,EAAX,oBAAgDA,EAAU,QAEvEE,EAAc,YADaD,EAAa,IAAMD,EAChC,uBAA8BC,EAAa,IACzDE,EAAe,kFACnBnuG,KAAKu5C,OAAS,CACV,MAAS,CAAC,CACF3B,MAAO,UACPH,MAAO,QACR,CACCG,MAAO,SACPH,MAAOk2D,EAAS,OAChBt6E,KAAM,aACP,CACCukB,MAAO,SACPH,MAAOk2D,EAAS,SAChBt6E,KAAM,YACP,CACCukB,MAAO,SACPH,MAAOk2D,EAAS,OAChBt6E,KAAM,YACP,CACCukB,MAAO,SACPH,MAAOk2D,EAAS,SAChBt6E,KAAM,WACP,CACCukB,MAAO,SACPH,MAAOm2D,EAAY,OACnBv6E,KAAM,gBACP,CACCukB,MAAO,SACPH,MAAOm2D,EAAY,SACnBv6E,KAAM,eACP,CACCukB,MAAO,SACPH,MAAOm2D,EAAY,OACnBv6E,KAAM,eACP,CACCukB,MAAO,SACPH,MAAOm2D,EAAY,SACnBv6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,OACtBx6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,SACtBx6E,KAAM,aACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,OACtBx6E,KAAM,aACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,SACtBx6E,KAAM,YACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,OACzBz6E,KAAM,eACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,SACzBz6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,OACzBz6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,SACzBz6E,KAAM,aACP,CACCukB,MAAO,mBACPH,MAAO,4EACR,CACCG,MAAO,cACPH,MAAO,2EACR,CACCG,MAAO,eACPH,MAAO,eACR,CACCG,MAAO,eACPH,MAAO,eACR,CACCG,MAAO,CAAC,UAAW,OAAQ,wBAC3BH,MAAO,2DACR,CACCG,MAAO,OACPH,MAAO,QACR,CACCnpC,QAAS,cAEjB,UAAa,CAAC,CACNspC,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,SAAY,CAAC,CACLS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,SAAY,CAAC,CACLS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,QACPpkB,KAAM,YACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,QAAW,CAAC,CACJS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,QACPpkB,KAAM,WACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,aAAgB,CAAC,CACTS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,YAAe,CAAC,CACRS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,YAAe,CAAC,CACRS,MAAO,SACPH,MAAO,QACPpkB,KAAM,eACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO,SACPH,MAAO,QACPpkB,KAAM,cACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,UAAa,CAAC,CACNS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,UAAa,CAAC,CACNS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,QACPpkB,KAAM,aACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,SAAY,CAAC,CACLS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,YAAe,CAAC,CACRS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO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","sources":["webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/ace.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/ext-beautify.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/ext-searchbox.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-css.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-golang.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-javascript.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-json.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-jsx.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-python.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-xml.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/theme-github.js","webpack://@tyk-technologies/tyk-ui/./node_modules/react-dom/client.js","webpack://@tyk-technologies/tyk-ui/./node_modules/react-fast-compare/index.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react-dom\"","webpack://@tyk-technologies/tyk-ui/webpack/bootstrap","webpack://@tyk-technologies/tyk-ui/webpack/runtime/amd define","webpack://@tyk-technologies/tyk-ui/webpack/runtime/compat get default export","webpack://@tyk-technologies/tyk-ui/webpack/runtime/define property getters","webpack://@tyk-technologies/tyk-ui/webpack/runtime/hasOwnProperty shorthand","webpack://@tyk-technologies/tyk-ui/webpack/runtime/make namespace object","webpack://@tyk-technologies/tyk-ui/webpack/runtime/node module decorator","webpack://@tyk-technologies/tyk-ui/webpack/runtime/publicPath","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react\"","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"prop-types\"","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Icon/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemTrigger.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItem.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemHeader.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react-transition-group\"","webpack://@tyk-technologies/tyk-ui/./src/hooks/useComponentSize/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/useEventListener/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Collapsible/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemContent.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Button/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/ButtonGroup/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardHeader.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardBody.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardFooter.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardTitle.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardTitleGroup.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardSubTitle.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardSummary.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardTitleIcon.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/index.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"echarts\"","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"immutable\"","webpack://@tyk-technologies/tyk-ui/./src/utils/debounce/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/usePrevious/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Loader/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Message/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Chart/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/useTimeout/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Toast/js/ToastMessage.js","webpack://@tyk-technologies/tyk-ui/./src/components/Toast/js/ToastContainer.js","webpack://@tyk-technologies/tyk-ui/./src/components/Toast/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/CopyToClipboard/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Modal/js/ModalFooter.js","webpack://@tyk-technologies/tyk-ui/./src/components/Modal/js/ModalBody.js","webpack://@tyk-technologies/tyk-ui/./src/components/Modal/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Confirm/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/FixedWrapper/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/InfiniteScroller/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/FloatingContainer/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/InfoNote/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/List/js/ListItem.js","webpack://@tyk-technologies/tyk-ui/./src/components/List/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/NavBar/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Navigation/js/NavigationItem.js","webpack://@tyk-technologies/tyk-ui/./src/components/Navigation/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/panel-context.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/js/PanelBody.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/js/PanelFooter.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/js/PanelHeader.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Pill/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/RevealPanel/js/RevealPanelService.js","webpack://@tyk-technologies/tyk-ui/./src/components/RevealPanel/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/tabs-context.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/js/TabContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/js/TabContent.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/js/Tab.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tooltip/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/TextEllipsis/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Pagination/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/tableContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/header-cell.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/header.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Checkbox/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/cell.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/row.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/body.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/index.js","webpack://@tyk-technologies/tyk-ui/./src/layout/Column/index.js","webpack://@tyk-technologies/tyk-ui/./src/layout/Row/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown/dropdown-context.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown/js/DropdownItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/DropdownTrigger.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/DropdownListWrapper.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/useDrodpownContext.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/DropdowItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/useDropdown.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react-ace\"","webpack://@tyk-technologies/tyk-ui/./src/form/components/CodeEditor/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox2/js/Value.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox2/js/List.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox2/index.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"flatpickr\"","webpack://@tyk-technologies/tyk-ui/./src/form/components/DatePicker/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/isDate/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/toDate/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/toInteger/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/defaultOptions/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/format/formatters/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/format/longFormatters/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/protectedTokens/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/defaultLocale/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/format/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/isValid/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/subMilliseconds/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/addMilliseconds/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList/js/EditableListForm.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/Header.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/ListHeader.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/FieldsList.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/with-validation.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/validate-values.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/FileInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Input/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Input2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/js/MultiselectContext.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/js/MultiselectItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/js/MultiselectPanel.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Radio/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Select/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/SelectableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Textarea/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/js/ToggleContext.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/js/ToggleItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/js/ToggleItemWrapper.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/index.js","webpack://@tyk-technologies/tyk-ui/./src/utils/config/config.js","webpack://@tyk-technologies/tyk-ui/./src/utils/formik/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCheckbox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCodeEditor/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCombobox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCombobox2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikDatePicker/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikEditableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikEditableList2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikFileInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikInput2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikMultiselect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikRadio/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikSelect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikSelectableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikTextarea/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikToggle/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldCodeEditor/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldCombobox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldDropdown/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldPagination/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldCombobox2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldDatePicker/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldEditableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldFileInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldMultiselect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldSelect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldSelectableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldToggle/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/useInterval/index.js"],"sourcesContent":["/* ***** BEGIN LICENSE BLOCK *****\n * Distributed under the BSD license:\n *\n * Copyright (c) 2010, Ajax.org B.V.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n * * Neither the name of Ajax.org B.V. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * ***** END LICENSE BLOCK ***** */\n\n/**\n * Define a module along with a payload\n * @param module a name for the payload\n * @param payload a function to call with (require, exports, module) params\n */\n\n(function() {\n\nvar ACE_NAMESPACE = \"ace\";\n\nvar global = (function() { return this; })();\nif (!global && typeof window != \"undefined\") global = window; // strict mode\n\n\nif (!ACE_NAMESPACE && typeof requirejs !== \"undefined\")\n return;\n\n\nvar define = function(module, deps, payload) {\n if (typeof module !== \"string\") {\n if (define.original)\n define.original.apply(this, arguments);\n else {\n console.error(\"dropping module because define wasn\\'t a string.\");\n console.trace();\n }\n return;\n }\n if (arguments.length == 2)\n payload = deps;\n if (!define.modules[module]) {\n define.payloads[module] = payload;\n define.modules[module] = null;\n }\n};\n\ndefine.modules = {};\ndefine.payloads = {};\n\n/**\n * Get at functionality define()ed using the function above\n */\nvar _require = function(parentId, module, callback) {\n if (typeof module === \"string\") {\n var payload = lookup(parentId, module);\n if (payload != undefined) {\n callback && callback();\n return payload;\n }\n } else if (Object.prototype.toString.call(module) === \"[object Array]\") {\n var params = [];\n for (var i = 0, l = module.length; i < l; ++i) {\n var dep = lookup(parentId, module[i]);\n if (dep == undefined && require.original)\n return;\n params.push(dep);\n }\n return callback && callback.apply(null, params) || true;\n }\n};\n\nvar require = function(module, callback) {\n var packagedModule = _require(\"\", module, callback);\n if (packagedModule == undefined && require.original)\n return require.original.apply(this, arguments);\n return packagedModule;\n};\n\nvar normalizeModule = function(parentId, moduleName) {\n // normalize plugin requires\n if (moduleName.indexOf(\"!\") !== -1) {\n var chunks = moduleName.split(\"!\");\n return normalizeModule(parentId, chunks[0]) + \"!\" + normalizeModule(parentId, chunks[1]);\n }\n // normalize relative requires\n if (moduleName.charAt(0) == \".\") {\n var base = parentId.split(\"/\").slice(0, -1).join(\"/\");\n moduleName = base + \"/\" + moduleName;\n\n while(moduleName.indexOf(\".\") !== -1 && previous != moduleName) {\n var previous = moduleName;\n moduleName = moduleName.replace(/\\/\\.\\//, \"/\").replace(/[^\\/]+\\/\\.\\.\\//, \"\");\n }\n }\n return moduleName;\n};\n\n/**\n * Internal function to lookup moduleNames and resolve them by calling the\n * definition function if needed.\n */\nvar lookup = function(parentId, moduleName) {\n moduleName = normalizeModule(parentId, moduleName);\n\n var module = define.modules[moduleName];\n if (!module) {\n module = define.payloads[moduleName];\n if (typeof module === 'function') {\n var exports = {};\n var mod = {\n id: moduleName,\n uri: '',\n exports: exports,\n packaged: true\n };\n\n var req = function(module, callback) {\n return _require(moduleName, module, callback);\n };\n\n var returnValue = module(req, exports, mod);\n exports = returnValue || mod.exports;\n define.modules[moduleName] = exports;\n delete define.payloads[moduleName];\n }\n module = define.modules[moduleName] = exports || module;\n }\n return module;\n};\n\nfunction exportAce(ns) {\n var root = global;\n if (ns) {\n if (!global[ns])\n global[ns] = {};\n root = global[ns];\n }\n\n if (!root.define || !root.define.packaged) {\n define.original = root.define;\n root.define = define;\n root.define.packaged = true;\n }\n\n if (!root.require || !root.require.packaged) {\n require.original = root.require;\n root.require = require;\n root.require.packaged = true;\n }\n}\n\nexportAce(ACE_NAMESPACE);\n\n})();\n\nace.define(\"ace/lib/es6-shim\",[\"require\",\"exports\",\"module\"], function(require, exports, module){function defineProp(obj, name, val) {\n Object.defineProperty(obj, name, {\n value: val,\n enumerable: false,\n writable: true,\n configurable: true\n });\n}\nif (!String.prototype.startsWith) {\n defineProp(String.prototype, \"startsWith\", function (searchString, position) {\n position = position || 0;\n return this.lastIndexOf(searchString, position) === position;\n });\n}\nif (!String.prototype.endsWith) {\n defineProp(String.prototype, \"endsWith\", function (searchString, position) {\n var subjectString = this;\n if (position === undefined || position > subjectString.length) {\n position = subjectString.length;\n }\n position -= searchString.length;\n var lastIndex = subjectString.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n });\n}\nif (!String.prototype.repeat) {\n defineProp(String.prototype, \"repeat\", function (count) {\n var result = \"\";\n var string = this;\n while (count > 0) {\n if (count & 1)\n result += string;\n if ((count >>= 1))\n string += string;\n }\n return result;\n });\n}\nif (!String.prototype.includes) {\n defineProp(String.prototype, \"includes\", function (str, position) {\n return this.indexOf(str, position) != -1;\n });\n}\nif (!Object.assign) {\n Object.assign = function (target) {\n if (target === undefined || target === null) {\n throw new TypeError(\"Cannot convert undefined or null to object\");\n }\n var output = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n if (source !== undefined && source !== null) {\n Object.keys(source).forEach(function (key) {\n output[key] = source[key];\n });\n }\n }\n return output;\n };\n}\nif (!Object.values) {\n Object.values = function (o) {\n return Object.keys(o).map(function (k) {\n return o[k];\n });\n };\n}\nif (!Array.prototype.find) {\n defineProp(Array.prototype, \"find\", function (predicate) {\n var len = this.length;\n var thisArg = arguments[1];\n for (var k = 0; k < len; k++) {\n var kValue = this[k];\n if (predicate.call(thisArg, kValue, k, this)) {\n return kValue;\n }\n }\n });\n}\nif (!Array.prototype.findIndex) {\n defineProp(Array.prototype, \"findIndex\", function (predicate) {\n var len = this.length;\n var thisArg = arguments[1];\n for (var k = 0; k < len; k++) {\n var kValue = this[k];\n if (predicate.call(thisArg, kValue, k, this)) {\n return k;\n }\n }\n });\n}\nif (!Array.prototype.includes) {\n defineProp(Array.prototype, \"includes\", function (item, position) {\n return this.indexOf(item, position) != -1;\n });\n}\nif (!Array.prototype.fill) {\n defineProp(Array.prototype, \"fill\", function (value) {\n var O = this;\n var len = O.length >>> 0;\n var start = arguments[1];\n var relativeStart = start >> 0;\n var k = relativeStart < 0\n ? Math.max(len + relativeStart, 0)\n : Math.min(relativeStart, len);\n var end = arguments[2];\n var relativeEnd = end === undefined ? len : end >> 0;\n var final = relativeEnd < 0\n ? Math.max(len + relativeEnd, 0)\n : Math.min(relativeEnd, len);\n while (k < final) {\n O[k] = value;\n k++;\n }\n return O;\n });\n}\nif (!Array.of) {\n defineProp(Array, \"of\", function () {\n return Array.prototype.slice.call(arguments);\n });\n}\n\n});\n\nace.define(\"ace/lib/fixoldbrowsers\",[\"require\",\"exports\",\"module\",\"ace/lib/es6-shim\"], function(require, exports, module){// vim:set ts=4 sts=4 sw=4 st:\n\"use strict\";\nrequire(\"./es6-shim\");\n\n});\n\nace.define(\"ace/lib/deep_copy\",[\"require\",\"exports\",\"module\"], function(require, exports, module){exports.deepCopy = function deepCopy(obj) {\n if (typeof obj !== \"object\" || !obj)\n return obj;\n var copy;\n if (Array.isArray(obj)) {\n copy = [];\n for (var key = 0; key < obj.length; key++) {\n copy[key] = deepCopy(obj[key]);\n }\n return copy;\n }\n if (Object.prototype.toString.call(obj) !== \"[object Object]\")\n return obj;\n copy = {};\n for (var key in obj)\n copy[key] = deepCopy(obj[key]);\n return copy;\n};\n\n});\n\nace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\",\"ace/lib/deep_copy\"], function(require, exports, module){\"use strict\";\nexports.last = function (a) {\n return a[a.length - 1];\n};\nexports.stringReverse = function (string) {\n return string.split(\"\").reverse().join(\"\");\n};\nexports.stringRepeat = function (string, count) {\n var result = '';\n while (count > 0) {\n if (count & 1)\n result += string;\n if (count >>= 1)\n string += string;\n }\n return result;\n};\nvar trimBeginRegexp = /^\\s\\s*/;\nvar trimEndRegexp = /\\s\\s*$/;\nexports.stringTrimLeft = function (string) {\n return string.replace(trimBeginRegexp, '');\n};\nexports.stringTrimRight = function (string) {\n return string.replace(trimEndRegexp, '');\n};\nexports.copyObject = function (obj) {\n var copy = {};\n for (var key in obj) {\n copy[key] = obj[key];\n }\n return copy;\n};\nexports.copyArray = function (array) {\n var copy = [];\n for (var i = 0, l = array.length; i < l; i++) {\n if (array[i] && typeof array[i] == \"object\")\n copy[i] = this.copyObject(array[i]);\n else\n copy[i] = array[i];\n }\n return copy;\n};\nexports.deepCopy = require(\"./deep_copy\").deepCopy;\nexports.arrayToMap = function (arr) {\n var map = {};\n for (var i = 0; i < arr.length; i++) {\n map[arr[i]] = 1;\n }\n return map;\n};\nexports.createMap = function (props) {\n var map = Object.create(null);\n for (var i in props) {\n map[i] = props[i];\n }\n return map;\n};\nexports.arrayRemove = function (array, value) {\n for (var i = 0; i <= array.length; i++) {\n if (value === array[i]) {\n array.splice(i, 1);\n }\n }\n};\nexports.escapeRegExp = function (str) {\n return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g, '\\\\$1');\n};\nexports.escapeHTML = function (str) {\n return (\"\" + str).replace(/&/g, \"&\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(/ 0xffff ? 2 : 1;\n};\n\n});\n\nace.define(\"ace/lib/useragent\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nexports.OS = {\n LINUX: \"LINUX\",\n MAC: \"MAC\",\n WINDOWS: \"WINDOWS\"\n};\nexports.getOS = function () {\n if (exports.isMac) {\n return exports.OS.MAC;\n }\n else if (exports.isLinux) {\n return exports.OS.LINUX;\n }\n else {\n return exports.OS.WINDOWS;\n }\n};\nvar _navigator = typeof navigator == \"object\" ? navigator : {};\nvar os = (/mac|win|linux/i.exec(_navigator.platform) || [\"other\"])[0].toLowerCase();\nvar ua = _navigator.userAgent || \"\";\nvar appName = _navigator.appName || \"\";\nexports.isWin = (os == \"win\");\nexports.isMac = (os == \"mac\");\nexports.isLinux = (os == \"linux\");\nexports.isIE =\n (appName == \"Microsoft Internet Explorer\" || appName.indexOf(\"MSAppHost\") >= 0)\n ? parseFloat((ua.match(/(?:MSIE |Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/) || [])[1])\n : parseFloat((ua.match(/(?:Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/) || [])[1]); // for ie\nexports.isOldIE = exports.isIE && exports.isIE < 9;\nexports.isGecko = exports.isMozilla = ua.match(/ Gecko\\/\\d+/);\nexports.isOpera = typeof opera == \"object\" && Object.prototype.toString.call(window.opera) == \"[object Opera]\";\nexports.isWebKit = parseFloat(ua.split(\"WebKit/\")[1]) || undefined;\nexports.isChrome = parseFloat(ua.split(\" Chrome/\")[1]) || undefined;\nexports.isSafari = parseFloat(ua.split(\" Safari/\")[1]) && !exports.isChrome || undefined;\nexports.isEdge = parseFloat(ua.split(\" Edge/\")[1]) || undefined;\nexports.isAIR = ua.indexOf(\"AdobeAIR\") >= 0;\nexports.isAndroid = ua.indexOf(\"Android\") >= 0;\nexports.isChromeOS = ua.indexOf(\" CrOS \") >= 0;\nexports.isIOS = /iPad|iPhone|iPod/.test(ua) && !window.MSStream;\nif (exports.isIOS)\n exports.isMac = true;\nexports.isMobile = exports.isIOS || exports.isAndroid;\n\n});\n\nace.define(\"ace/lib/dom\",[\"require\",\"exports\",\"module\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar useragent = require(\"./useragent\");\nvar XHTML_NS = \"http://www.w3.org/1999/xhtml\";\nexports.buildDom = function buildDom(arr, parent, refs) {\n if (typeof arr == \"string\" && arr) {\n var txt = document.createTextNode(arr);\n if (parent)\n parent.appendChild(txt);\n return txt;\n }\n if (!Array.isArray(arr)) {\n if (arr && arr.appendChild && parent)\n parent.appendChild(arr);\n return arr;\n }\n if (typeof arr[0] != \"string\" || !arr[0]) {\n var els = [];\n for (var i = 0; i < arr.length; i++) {\n var ch = buildDom(arr[i], parent, refs);\n ch && els.push(ch);\n }\n return els;\n }\n var el = document.createElement(arr[0]);\n var options = arr[1];\n var childIndex = 1;\n if (options && typeof options == \"object\" && !Array.isArray(options))\n childIndex = 2;\n for (var i = childIndex; i < arr.length; i++)\n buildDom(arr[i], el, refs);\n if (childIndex == 2) {\n Object.keys(options).forEach(function (n) {\n var val = options[n];\n if (n === \"class\") {\n el.className = Array.isArray(val) ? val.join(\" \") : val;\n }\n else if (typeof val == \"function\" || n == \"value\" || n[0] == \"$\") {\n el[n] = val;\n }\n else if (n === \"ref\") {\n if (refs)\n refs[val] = el;\n }\n else if (n === \"style\") {\n if (typeof val == \"string\")\n el.style.cssText = val;\n }\n else if (val != null) {\n el.setAttribute(n, val);\n }\n });\n }\n if (parent)\n parent.appendChild(el);\n return el;\n};\nexports.getDocumentHead = function (doc) {\n if (!doc)\n doc = document;\n return doc.head || doc.getElementsByTagName(\"head\")[0] || doc.documentElement;\n};\nexports.createElement = function (tag, ns) {\n return document.createElementNS ?\n document.createElementNS(ns || XHTML_NS, tag) :\n document.createElement(tag);\n};\nexports.removeChildren = function (element) {\n element.innerHTML = \"\";\n};\nexports.createTextNode = function (textContent, element) {\n var doc = element ? element.ownerDocument : document;\n return doc.createTextNode(textContent);\n};\nexports.createFragment = function (element) {\n var doc = element ? element.ownerDocument : document;\n return doc.createDocumentFragment();\n};\nexports.hasCssClass = function (el, name) {\n var classes = (el.className + \"\").split(/\\s+/g);\n return classes.indexOf(name) !== -1;\n};\nexports.addCssClass = function (el, name) {\n if (!exports.hasCssClass(el, name)) {\n el.className += \" \" + name;\n }\n};\nexports.removeCssClass = function (el, name) {\n var classes = el.className.split(/\\s+/g);\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n classes.splice(index, 1);\n }\n el.className = classes.join(\" \");\n};\nexports.toggleCssClass = function (el, name) {\n var classes = el.className.split(/\\s+/g), add = true;\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n add = false;\n classes.splice(index, 1);\n }\n if (add)\n classes.push(name);\n el.className = classes.join(\" \");\n return add;\n};\nexports.setCssClass = function (node, className, include) {\n if (include) {\n exports.addCssClass(node, className);\n }\n else {\n exports.removeCssClass(node, className);\n }\n};\nexports.hasCssString = function (id, doc) {\n var index = 0, sheets;\n doc = doc || document;\n if ((sheets = doc.querySelectorAll(\"style\"))) {\n while (index < sheets.length) {\n if (sheets[index++].id === id) {\n return true;\n }\n }\n }\n};\nexports.removeElementById = function (id, doc) {\n doc = doc || document;\n if (doc.getElementById(id)) {\n doc.getElementById(id).remove();\n }\n};\nvar strictCSP;\nvar cssCache = [];\nexports.useStrictCSP = function (value) {\n strictCSP = value;\n if (value == false)\n insertPendingStyles();\n else if (!cssCache)\n cssCache = [];\n};\nfunction insertPendingStyles() {\n var cache = cssCache;\n cssCache = null;\n cache && cache.forEach(function (item) {\n importCssString(item[0], item[1]);\n });\n}\nfunction importCssString(cssText, id, target) {\n if (typeof document == \"undefined\")\n return;\n if (cssCache) {\n if (target) {\n insertPendingStyles();\n }\n else if (target === false) {\n return cssCache.push([cssText, id]);\n }\n }\n if (strictCSP)\n return;\n var container = target;\n if (!target || !target.getRootNode) {\n container = document;\n }\n else {\n container = target.getRootNode();\n if (!container || container == target)\n container = document;\n }\n var doc = container.ownerDocument || container;\n if (id && exports.hasCssString(id, container))\n return null;\n if (id)\n cssText += \"\\n/*# sourceURL=ace/css/\" + id + \" */\";\n var style = exports.createElement(\"style\");\n style.appendChild(doc.createTextNode(cssText));\n if (id)\n style.id = id;\n if (container == doc)\n container = exports.getDocumentHead(doc);\n container.insertBefore(style, container.firstChild);\n}\nexports.importCssString = importCssString;\nexports.importCssStylsheet = function (uri, doc) {\n exports.buildDom([\"link\", { rel: \"stylesheet\", href: uri }], exports.getDocumentHead(doc));\n};\nexports.scrollbarWidth = function (doc) {\n var inner = exports.createElement(\"ace_inner\");\n inner.style.width = \"100%\";\n inner.style.minWidth = \"0px\";\n inner.style.height = \"200px\";\n inner.style.display = \"block\";\n var outer = exports.createElement(\"ace_outer\");\n var style = outer.style;\n style.position = \"absolute\";\n style.left = \"-10000px\";\n style.overflow = \"hidden\";\n style.width = \"200px\";\n style.minWidth = \"0px\";\n style.height = \"150px\";\n style.display = \"block\";\n outer.appendChild(inner);\n var body = (doc && doc.documentElement) || (document && document.documentElement);\n if (!body)\n return 0;\n body.appendChild(outer);\n var noScrollbar = inner.offsetWidth;\n style.overflow = \"scroll\";\n var withScrollbar = inner.offsetWidth;\n if (noScrollbar === withScrollbar) {\n withScrollbar = outer.clientWidth;\n }\n body.removeChild(outer);\n return noScrollbar - withScrollbar;\n};\nexports.computedStyle = function (element, style) {\n return window.getComputedStyle(element, \"\") || {};\n};\nexports.setStyle = function (styles, property, value) {\n if (styles[property] !== value) {\n styles[property] = value;\n }\n};\nexports.HAS_CSS_ANIMATION = false;\nexports.HAS_CSS_TRANSFORMS = false;\nexports.HI_DPI = useragent.isWin\n ? typeof window !== \"undefined\" && window.devicePixelRatio >= 1.5\n : true;\nif (useragent.isChromeOS)\n exports.HI_DPI = false;\nif (typeof document !== \"undefined\") {\n var div = document.createElement(\"div\");\n if (exports.HI_DPI && div.style.transform !== undefined)\n exports.HAS_CSS_TRANSFORMS = true;\n if (!useragent.isEdge && typeof div.style.animationName !== \"undefined\")\n exports.HAS_CSS_ANIMATION = true;\n div = null;\n}\nif (exports.HAS_CSS_TRANSFORMS) {\n exports.translate = function (element, tx, ty) {\n element.style.transform = \"translate(\" + Math.round(tx) + \"px, \" + Math.round(ty) + \"px)\";\n };\n}\nelse {\n exports.translate = function (element, tx, ty) {\n element.style.top = Math.round(ty) + \"px\";\n element.style.left = Math.round(tx) + \"px\";\n };\n}\n\n});\n\nace.define(\"ace/lib/net\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){/*\n * based on code from:\n *\n * @license RequireJS text 0.25.0 Copyright (c) 2010-2011, The Dojo Foundation All Rights Reserved.\n * Available via the MIT or new BSD license.\n * see: http://github.com/jrburke/requirejs for details\n */\n\"use strict\";\nvar dom = require(\"./dom\");\nexports.get = function (url, callback) {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, true);\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n callback(xhr.responseText);\n }\n };\n xhr.send(null);\n};\nexports.loadScript = function (path, callback) {\n var head = dom.getDocumentHead();\n var s = document.createElement('script');\n s.src = path;\n head.appendChild(s);\n s.onload = s.onreadystatechange = function (_, isAbort) {\n if (isAbort || !s.readyState || s.readyState == \"loaded\" || s.readyState == \"complete\") {\n s = s.onload = s.onreadystatechange = null;\n if (!isAbort)\n callback();\n }\n };\n};\nexports.qualifyURL = function (url) {\n var a = document.createElement('a');\n a.href = url;\n return a.href;\n};\n\n});\n\nace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nexports.inherits = function (ctor, superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n};\nexports.mixin = function (obj, mixin) {\n for (var key in mixin) {\n obj[key] = mixin[key];\n }\n return obj;\n};\nexports.implement = function (proto, mixin) {\n exports.mixin(proto, mixin);\n};\n\n});\n\nace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar EventEmitter = {};\nvar stopPropagation = function () { this.propagationStopped = true; };\nvar preventDefault = function () { this.defaultPrevented = true; };\nEventEmitter._emit =\n EventEmitter._dispatchEvent = function (eventName, e) {\n this._eventRegistry || (this._eventRegistry = {});\n this._defaultHandlers || (this._defaultHandlers = {});\n var listeners = this._eventRegistry[eventName] || [];\n var defaultHandler = this._defaultHandlers[eventName];\n if (!listeners.length && !defaultHandler)\n return;\n if (typeof e != \"object\" || !e)\n e = {};\n if (!e.type)\n e.type = eventName;\n if (!e.stopPropagation)\n e.stopPropagation = stopPropagation;\n if (!e.preventDefault)\n e.preventDefault = preventDefault;\n listeners = listeners.slice();\n for (var i = 0; i < listeners.length; i++) {\n listeners[i](e, this);\n if (e.propagationStopped)\n break;\n }\n if (defaultHandler && !e.defaultPrevented)\n return defaultHandler(e, this);\n };\nEventEmitter._signal = function (eventName, e) {\n var listeners = (this._eventRegistry || {})[eventName];\n if (!listeners)\n return;\n listeners = listeners.slice();\n for (var i = 0; i < listeners.length; i++)\n listeners[i](e, this);\n};\nEventEmitter.once = function (eventName, callback) {\n var _self = this;\n this.on(eventName, function newCallback() {\n _self.off(eventName, newCallback);\n callback.apply(null, arguments);\n });\n if (!callback) {\n return new Promise(function (resolve) {\n callback = resolve;\n });\n }\n};\nEventEmitter.setDefaultHandler = function (eventName, callback) {\n var handlers = this._defaultHandlers;\n if (!handlers)\n handlers = this._defaultHandlers = { _disabled_: {} };\n if (handlers[eventName]) {\n var old = handlers[eventName];\n var disabled = handlers._disabled_[eventName];\n if (!disabled)\n handlers._disabled_[eventName] = disabled = [];\n disabled.push(old);\n var i = disabled.indexOf(callback);\n if (i != -1)\n disabled.splice(i, 1);\n }\n handlers[eventName] = callback;\n};\nEventEmitter.removeDefaultHandler = function (eventName, callback) {\n var handlers = this._defaultHandlers;\n if (!handlers)\n return;\n var disabled = handlers._disabled_[eventName];\n if (handlers[eventName] == callback) {\n if (disabled)\n this.setDefaultHandler(eventName, disabled.pop());\n }\n else if (disabled) {\n var i = disabled.indexOf(callback);\n if (i != -1)\n disabled.splice(i, 1);\n }\n};\nEventEmitter.on =\n EventEmitter.addEventListener = function (eventName, callback, capturing) {\n this._eventRegistry = this._eventRegistry || {};\n var listeners = this._eventRegistry[eventName];\n if (!listeners)\n listeners = this._eventRegistry[eventName] = [];\n if (listeners.indexOf(callback) == -1)\n listeners[capturing ? \"unshift\" : \"push\"](callback);\n return callback;\n };\nEventEmitter.off =\n EventEmitter.removeListener =\n EventEmitter.removeEventListener = function (eventName, callback) {\n this._eventRegistry = this._eventRegistry || {};\n var listeners = this._eventRegistry[eventName];\n if (!listeners)\n return;\n var index = listeners.indexOf(callback);\n if (index !== -1)\n listeners.splice(index, 1);\n };\nEventEmitter.removeAllListeners = function (eventName) {\n if (!eventName)\n this._eventRegistry = this._defaultHandlers = undefined;\n if (this._eventRegistry)\n this._eventRegistry[eventName] = undefined;\n if (this._defaultHandlers)\n this._defaultHandlers[eventName] = undefined;\n};\nexports.EventEmitter = EventEmitter;\n\n});\n\nace.define(\"ace/lib/report_error\",[\"require\",\"exports\",\"module\"], function(require, exports, module){exports.reportError = function reportError(msg, data) {\n var e = new Error(msg);\n e.data = data;\n if (typeof console == \"object\" && console.error)\n console.error(e);\n setTimeout(function () { throw e; });\n};\n\n});\n\nace.define(\"ace/lib/app_config\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\",\"ace/lib/report_error\"], function(require, exports, module){\"no use strict\";\nvar oop = require(\"./oop\");\nvar EventEmitter = require(\"./event_emitter\").EventEmitter;\nvar reportError = require(\"./report_error\").reportError;\nvar optionsProvider = {\n setOptions: function (optList) {\n Object.keys(optList).forEach(function (key) {\n this.setOption(key, optList[key]);\n }, this);\n },\n getOptions: function (optionNames) {\n var result = {};\n if (!optionNames) {\n var options = this.$options;\n optionNames = Object.keys(options).filter(function (key) {\n return !options[key].hidden;\n });\n }\n else if (!Array.isArray(optionNames)) {\n result = optionNames;\n optionNames = Object.keys(result);\n }\n optionNames.forEach(function (key) {\n result[key] = this.getOption(key);\n }, this);\n return result;\n },\n setOption: function (name, value) {\n if (this[\"$\" + name] === value)\n return;\n var opt = this.$options[name];\n if (!opt) {\n return warn('misspelled option \"' + name + '\"');\n }\n if (opt.forwardTo)\n return this[opt.forwardTo] && this[opt.forwardTo].setOption(name, value);\n if (!opt.handlesSet)\n this[\"$\" + name] = value;\n if (opt && opt.set)\n opt.set.call(this, value);\n },\n getOption: function (name) {\n var opt = this.$options[name];\n if (!opt) {\n return warn('misspelled option \"' + name + '\"');\n }\n if (opt.forwardTo)\n return this[opt.forwardTo] && this[opt.forwardTo].getOption(name);\n return opt && opt.get ? opt.get.call(this) : this[\"$\" + name];\n }\n};\nfunction warn(message) {\n if (typeof console != \"undefined\" && console.warn)\n console.warn.apply(console, arguments);\n}\nvar messages;\nvar AppConfig = /** @class */ (function () {\n function AppConfig() {\n this.$defaultOptions = {};\n }\n AppConfig.prototype.defineOptions = function (obj, path, options) {\n if (!obj.$options)\n this.$defaultOptions[path] = obj.$options = {};\n Object.keys(options).forEach(function (key) {\n var opt = options[key];\n if (typeof opt == \"string\")\n opt = { forwardTo: opt };\n opt.name || (opt.name = key);\n obj.$options[opt.name] = opt;\n if (\"initialValue\" in opt)\n obj[\"$\" + opt.name] = opt.initialValue;\n });\n oop.implement(obj, optionsProvider);\n return this;\n };\n AppConfig.prototype.resetOptions = function (obj) {\n Object.keys(obj.$options).forEach(function (key) {\n var opt = obj.$options[key];\n if (\"value\" in opt)\n obj.setOption(key, opt.value);\n });\n };\n AppConfig.prototype.setDefaultValue = function (path, name, value) {\n if (!path) {\n for (path in this.$defaultOptions)\n if (this.$defaultOptions[path][name])\n break;\n if (!this.$defaultOptions[path][name])\n return false;\n }\n var opts = this.$defaultOptions[path] || (this.$defaultOptions[path] = {});\n if (opts[name]) {\n if (opts.forwardTo)\n this.setDefaultValue(opts.forwardTo, name, value);\n else\n opts[name].value = value;\n }\n };\n AppConfig.prototype.setDefaultValues = function (path, optionHash) {\n Object.keys(optionHash).forEach(function (key) {\n this.setDefaultValue(path, key, optionHash[key]);\n }, this);\n };\n AppConfig.prototype.setMessages = function (value) {\n messages = value;\n };\n AppConfig.prototype.nls = function (string, params) {\n if (messages && !messages[string]) {\n warn(\"No message found for '\" + string + \"' in the provided messages, falling back to default English message.\");\n }\n var translated = messages && messages[string] || string;\n if (params) {\n translated = translated.replace(/\\$(\\$|[\\d]+)/g, function (_, name) {\n if (name == \"$\")\n return \"$\";\n return params[name];\n });\n }\n return translated;\n };\n return AppConfig;\n}());\nAppConfig.prototype.warn = warn;\nAppConfig.prototype.reportError = reportError;\noop.implement(AppConfig.prototype, EventEmitter);\nexports.AppConfig = AppConfig;\n\n});\n\nace.define(\"ace/theme/textmate-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){module.exports = \".ace-tm .ace_gutter {\\n background: #f0f0f0;\\n color: #333;\\n}\\n\\n.ace-tm .ace_print-margin {\\n width: 1px;\\n background: #e8e8e8;\\n}\\n\\n.ace-tm .ace_fold {\\n background-color: #6B72E6;\\n}\\n\\n.ace-tm {\\n background-color: #FFFFFF;\\n color: black;\\n}\\n\\n.ace-tm .ace_cursor {\\n color: black;\\n}\\n \\n.ace-tm .ace_invisible {\\n color: rgb(191, 191, 191);\\n}\\n\\n.ace-tm .ace_storage,\\n.ace-tm .ace_keyword {\\n color: blue;\\n}\\n\\n.ace-tm .ace_constant {\\n color: rgb(197, 6, 11);\\n}\\n\\n.ace-tm .ace_constant.ace_buildin {\\n color: rgb(88, 72, 246);\\n}\\n\\n.ace-tm .ace_constant.ace_language {\\n color: rgb(88, 92, 246);\\n}\\n\\n.ace-tm .ace_constant.ace_library {\\n color: rgb(6, 150, 14);\\n}\\n\\n.ace-tm .ace_invalid {\\n background-color: rgba(255, 0, 0, 0.1);\\n color: red;\\n}\\n\\n.ace-tm .ace_support.ace_function {\\n color: rgb(60, 76, 114);\\n}\\n\\n.ace-tm .ace_support.ace_constant {\\n color: rgb(6, 150, 14);\\n}\\n\\n.ace-tm .ace_support.ace_type,\\n.ace-tm .ace_support.ace_class {\\n color: rgb(109, 121, 222);\\n}\\n\\n.ace-tm .ace_keyword.ace_operator {\\n color: rgb(104, 118, 135);\\n}\\n\\n.ace-tm .ace_string {\\n color: rgb(3, 106, 7);\\n}\\n\\n.ace-tm .ace_comment {\\n color: rgb(76, 136, 107);\\n}\\n\\n.ace-tm .ace_comment.ace_doc {\\n color: rgb(0, 102, 255);\\n}\\n\\n.ace-tm .ace_comment.ace_doc.ace_tag {\\n color: rgb(128, 159, 191);\\n}\\n\\n.ace-tm .ace_constant.ace_numeric {\\n color: rgb(0, 0, 205);\\n}\\n\\n.ace-tm .ace_variable {\\n color: rgb(49, 132, 149);\\n}\\n\\n.ace-tm .ace_xml-pe {\\n color: rgb(104, 104, 91);\\n}\\n\\n.ace-tm .ace_entity.ace_name.ace_function {\\n color: #0000A2;\\n}\\n\\n\\n.ace-tm .ace_heading {\\n color: rgb(12, 7, 255);\\n}\\n\\n.ace-tm .ace_list {\\n color:rgb(185, 6, 144);\\n}\\n\\n.ace-tm .ace_meta.ace_tag {\\n color:rgb(0, 22, 142);\\n}\\n\\n.ace-tm .ace_string.ace_regex {\\n color: rgb(255, 0, 0)\\n}\\n\\n.ace-tm .ace_marker-layer .ace_selection {\\n background: rgb(181, 213, 255);\\n}\\n.ace-tm.ace_multiselect .ace_selection.ace_start {\\n box-shadow: 0 0 3px 0px white;\\n}\\n.ace-tm .ace_marker-layer .ace_step {\\n background: rgb(252, 255, 0);\\n}\\n\\n.ace-tm .ace_marker-layer .ace_stack {\\n background: rgb(164, 229, 101);\\n}\\n\\n.ace-tm .ace_marker-layer .ace_bracket {\\n margin: -1px 0 0 -1px;\\n border: 1px solid rgb(192, 192, 192);\\n}\\n\\n.ace-tm .ace_marker-layer .ace_active-line {\\n background: rgba(0, 0, 0, 0.07);\\n}\\n\\n.ace-tm .ace_gutter-active-line {\\n background-color : #dcdcdc;\\n}\\n\\n.ace-tm .ace_marker-layer .ace_selected-word {\\n background: rgb(250, 250, 255);\\n border: 1px solid rgb(200, 200, 250);\\n}\\n\\n.ace-tm .ace_indent-guide {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\n}\\n\\n.ace-tm .ace_indent-guide-active {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC\\\") right repeat-y;\\n}\\n\";\n\n});\n\nace.define(\"ace/theme/textmate\",[\"require\",\"exports\",\"module\",\"ace/theme/textmate-css\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nexports.isDark = false;\nexports.cssClass = \"ace-tm\";\nexports.cssText = require(\"./textmate-css\");\nexports.$id = \"ace/theme/textmate\";\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass, false);\n\n});\n\nace.define(\"ace/config\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/net\",\"ace/lib/dom\",\"ace/lib/app_config\",\"ace/theme/textmate\"], function(require, exports, module){\"no use strict\";\nvar lang = require(\"./lib/lang\");\nvar net = require(\"./lib/net\");\nvar dom = require(\"./lib/dom\");\nvar AppConfig = require(\"./lib/app_config\").AppConfig;\nmodule.exports = exports = new AppConfig();\nvar options = {\n packaged: false,\n workerPath: null,\n modePath: null,\n themePath: null,\n basePath: \"\",\n suffix: \".js\",\n $moduleUrls: {},\n loadWorkerFromBlob: true,\n sharedPopups: false,\n useStrictCSP: null\n};\nexports.get = function (key) {\n if (!options.hasOwnProperty(key))\n throw new Error(\"Unknown config key: \" + key);\n return options[key];\n};\nexports.set = function (key, value) {\n if (options.hasOwnProperty(key))\n options[key] = value;\n else if (this.setDefaultValue(\"\", key, value) == false)\n throw new Error(\"Unknown config key: \" + key);\n if (key == \"useStrictCSP\")\n dom.useStrictCSP(value);\n};\nexports.all = function () {\n return lang.copyObject(options);\n};\nexports.$modes = {};\nexports.moduleUrl = function (name, component) {\n if (options.$moduleUrls[name])\n return options.$moduleUrls[name];\n var parts = name.split(\"/\");\n component = component || parts[parts.length - 2] || \"\";\n var sep = component == \"snippets\" ? \"/\" : \"-\";\n var base = parts[parts.length - 1];\n if (component == \"worker\" && sep == \"-\") {\n var re = new RegExp(\"^\" + component + \"[\\\\-_]|[\\\\-_]\" + component + \"$\", \"g\");\n base = base.replace(re, \"\");\n }\n if ((!base || base == component) && parts.length > 1)\n base = parts[parts.length - 2];\n var path = options[component + \"Path\"];\n if (path == null) {\n path = options.basePath;\n }\n else if (sep == \"/\") {\n component = sep = \"\";\n }\n if (path && path.slice(-1) != \"/\")\n path += \"/\";\n return path + component + sep + base + this.get(\"suffix\");\n};\nexports.setModuleUrl = function (name, subst) {\n return options.$moduleUrls[name] = subst;\n};\nvar loader = function (moduleName, cb) {\n if (moduleName === \"ace/theme/textmate\" || moduleName === \"./theme/textmate\")\n return cb(null, require(\"./theme/textmate\"));\n if (customLoader)\n return customLoader(moduleName, cb);\n console.error(\"loader is not configured\");\n};\nvar customLoader;\nexports.setLoader = function (cb) {\n customLoader = cb;\n};\nexports.dynamicModules = Object.create(null);\nexports.$loading = {};\nexports.$loaded = {};\nexports.loadModule = function (moduleName, onLoad) {\n var loadedModule, moduleType;\n if (Array.isArray(moduleName)) {\n moduleType = moduleName[0];\n moduleName = moduleName[1];\n }\n var load = function (module) {\n if (module && !exports.$loading[moduleName])\n return onLoad && onLoad(module);\n if (!exports.$loading[moduleName])\n exports.$loading[moduleName] = [];\n exports.$loading[moduleName].push(onLoad);\n if (exports.$loading[moduleName].length > 1)\n return;\n var afterLoad = function () {\n loader(moduleName, function (err, module) {\n if (module)\n exports.$loaded[moduleName] = module;\n exports._emit(\"load.module\", { name: moduleName, module: module });\n var listeners = exports.$loading[moduleName];\n exports.$loading[moduleName] = null;\n listeners.forEach(function (onLoad) {\n onLoad && onLoad(module);\n });\n });\n };\n if (!exports.get(\"packaged\"))\n return afterLoad();\n net.loadScript(exports.moduleUrl(moduleName, moduleType), afterLoad);\n reportErrorIfPathIsNotConfigured();\n };\n if (exports.dynamicModules[moduleName]) {\n exports.dynamicModules[moduleName]().then(function (module) {\n if (module.default) {\n load(module.default);\n }\n else {\n load(module);\n }\n });\n }\n else {\n try {\n loadedModule = this.$require(moduleName);\n }\n catch (e) { }\n load(loadedModule || exports.$loaded[moduleName]);\n }\n};\nexports.$require = function (moduleName) {\n if (typeof module.require == \"function\") {\n var req = \"require\";\n return module[req](moduleName);\n }\n};\nexports.setModuleLoader = function (moduleName, onLoad) {\n exports.dynamicModules[moduleName] = onLoad;\n};\nvar reportErrorIfPathIsNotConfigured = function () {\n if (!options.basePath && !options.workerPath\n && !options.modePath && !options.themePath\n && !Object.keys(options.$moduleUrls).length) {\n console.error(\"Unable to infer path to ace from script src,\", \"use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes\", \"or with webpack use ace/webpack-resolver\");\n reportErrorIfPathIsNotConfigured = function () { };\n }\n};\nexports.version = \"1.32.0\";\n\n});\n\nace.define(\"ace/loader_build\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/config\"], function(require, exports, module) {\n\"use strict\";\n\nrequire(\"./lib/fixoldbrowsers\");\nvar config = require(\"./config\");\nconfig.setLoader(function(moduleName, cb) {\n require([moduleName], function(module) {\n cb(null, module);\n });\n});\n\nvar global = (function() {\n return this || typeof window != \"undefined\" && window;\n})();\n\nmodule.exports = function(ace) {\n config.init = init;\n config.$require = require;\n ace.require = require;\n\n if (typeof define === \"function\")\n ace.define = define;\n};\ninit(true);function init(packaged) {\n\n if (!global || !global.document)\n return;\n \n config.set(\"packaged\", packaged || require.packaged || module.packaged || (global.define && define.packaged));\n\n var scriptOptions = {};\n var scriptUrl = \"\";\n var currentScript = (document.currentScript || document._currentScript ); // native or polyfill\n var currentDocument = currentScript && currentScript.ownerDocument || document;\n \n if (currentScript && currentScript.src) {\n scriptUrl = currentScript.src.split(/[?#]/)[0].split(\"/\").slice(0, -1).join(\"/\") || \"\";\n }\n \n var scripts = currentDocument.getElementsByTagName(\"script\");\n for (var i=0; i [\" + this.end.row + \"/\" + this.end.column + \"]\");\n };\n Range.prototype.contains = function (row, column) {\n return this.compare(row, column) == 0;\n };\n Range.prototype.compareRange = function (range) {\n var cmp, end = range.end, start = range.start;\n cmp = this.compare(end.row, end.column);\n if (cmp == 1) {\n cmp = this.compare(start.row, start.column);\n if (cmp == 1) {\n return 2;\n }\n else if (cmp == 0) {\n return 1;\n }\n else {\n return 0;\n }\n }\n else if (cmp == -1) {\n return -2;\n }\n else {\n cmp = this.compare(start.row, start.column);\n if (cmp == -1) {\n return -1;\n }\n else if (cmp == 1) {\n return 42;\n }\n else {\n return 0;\n }\n }\n };\n Range.prototype.comparePoint = function (p) {\n return this.compare(p.row, p.column);\n };\n Range.prototype.containsRange = function (range) {\n return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;\n };\n Range.prototype.intersects = function (range) {\n var cmp = this.compareRange(range);\n return (cmp == -1 || cmp == 0 || cmp == 1);\n };\n Range.prototype.isEnd = function (row, column) {\n return this.end.row == row && this.end.column == column;\n };\n Range.prototype.isStart = function (row, column) {\n return this.start.row == row && this.start.column == column;\n };\n Range.prototype.setStart = function (row, column) {\n if (typeof row == \"object\") {\n this.start.column = row.column;\n this.start.row = row.row;\n }\n else {\n this.start.row = row;\n this.start.column = column;\n }\n };\n Range.prototype.setEnd = function (row, column) {\n if (typeof row == \"object\") {\n this.end.column = row.column;\n this.end.row = row.row;\n }\n else {\n this.end.row = row;\n this.end.column = column;\n }\n };\n Range.prototype.inside = function (row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column) || this.isStart(row, column)) {\n return false;\n }\n else {\n return true;\n }\n }\n return false;\n };\n Range.prototype.insideStart = function (row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column)) {\n return false;\n }\n else {\n return true;\n }\n }\n return false;\n };\n Range.prototype.insideEnd = function (row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isStart(row, column)) {\n return false;\n }\n else {\n return true;\n }\n }\n return false;\n };\n Range.prototype.compare = function (row, column) {\n if (!this.isMultiLine()) {\n if (row === this.start.row) {\n return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);\n }\n }\n if (row < this.start.row)\n return -1;\n if (row > this.end.row)\n return 1;\n if (this.start.row === row)\n return column >= this.start.column ? 0 : -1;\n if (this.end.row === row)\n return column <= this.end.column ? 0 : 1;\n return 0;\n };\n Range.prototype.compareStart = function (row, column) {\n if (this.start.row == row && this.start.column == column) {\n return -1;\n }\n else {\n return this.compare(row, column);\n }\n };\n Range.prototype.compareEnd = function (row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n }\n else {\n return this.compare(row, column);\n }\n };\n Range.prototype.compareInside = function (row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n }\n else if (this.start.row == row && this.start.column == column) {\n return -1;\n }\n else {\n return this.compare(row, column);\n }\n };\n Range.prototype.clipRows = function (firstRow, lastRow) {\n if (this.end.row > lastRow)\n var end = { row: lastRow + 1, column: 0 };\n else if (this.end.row < firstRow)\n var end = { row: firstRow, column: 0 };\n if (this.start.row > lastRow)\n var start = { row: lastRow + 1, column: 0 };\n else if (this.start.row < firstRow)\n var start = { row: firstRow, column: 0 };\n return Range.fromPoints(start || this.start, end || this.end);\n };\n Range.prototype.extend = function (row, column) {\n var cmp = this.compare(row, column);\n if (cmp == 0)\n return this;\n else if (cmp == -1)\n var start = { row: row, column: column };\n else\n var end = { row: row, column: column };\n return Range.fromPoints(start || this.start, end || this.end);\n };\n Range.prototype.isEmpty = function () {\n return (this.start.row === this.end.row && this.start.column === this.end.column);\n };\n Range.prototype.isMultiLine = function () {\n return (this.start.row !== this.end.row);\n };\n Range.prototype.clone = function () {\n return Range.fromPoints(this.start, this.end);\n };\n Range.prototype.collapseRows = function () {\n if (this.end.column == 0)\n return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row - 1), 0);\n else\n return new Range(this.start.row, 0, this.end.row, 0);\n };\n Range.prototype.toScreenRange = function (session) {\n var screenPosStart = session.documentToScreenPosition(this.start);\n var screenPosEnd = session.documentToScreenPosition(this.end);\n return new Range(screenPosStart.row, screenPosStart.column, screenPosEnd.row, screenPosEnd.column);\n };\n Range.prototype.moveBy = function (row, column) {\n this.start.row += row;\n this.start.column += column;\n this.end.row += row;\n this.end.column += column;\n };\n return Range;\n}());\nRange.fromPoints = function (start, end) {\n return new Range(start.row, start.column, end.row, end.column);\n};\nRange.comparePoints = comparePoints;\nRange.comparePoints = function (p1, p2) {\n return p1.row - p2.row || p1.column - p2.column;\n};\nexports.Range = Range;\n\n});\n\nace.define(\"ace/lib/keys\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\"], function(require, exports, module){/*! @license\n==========================================================================\nSproutCore -- JavaScript Application Framework\ncopyright 2006-2009, Sprout Systems Inc., Apple Inc. and contributors.\n\nPermission is hereby granted, free of charge, to any person obtaining a\ncopy of this software and associated documentation files (the \"Software\"),\nto deal in the Software without restriction, including without limitation\nthe rights to use, copy, modify, merge, publish, distribute, sublicense,\nand/or sell copies of the Software, and to permit persons to whom the\nSoftware is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\nDEALINGS IN THE SOFTWARE.\n\nSproutCore and the SproutCore logo are trademarks of Sprout Systems, Inc.\n\nFor more information about SproutCore, visit http://www.sproutcore.com\n\n\n==========================================================================\n@license */\n\"use strict\";\nvar oop = require(\"./oop\");\nvar Keys = (function () {\n var ret = {\n MODIFIER_KEYS: {\n 16: 'Shift', 17: 'Ctrl', 18: 'Alt', 224: 'Meta',\n 91: 'MetaLeft', 92: 'MetaRight', 93: 'ContextMenu'\n },\n KEY_MODS: {\n \"ctrl\": 1, \"alt\": 2, \"option\": 2, \"shift\": 4,\n \"super\": 8, \"meta\": 8, \"command\": 8, \"cmd\": 8,\n \"control\": 1\n },\n FUNCTION_KEYS: {\n 8: \"Backspace\",\n 9: \"Tab\",\n 13: \"Return\",\n 19: \"Pause\",\n 27: \"Esc\",\n 32: \"Space\",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"Left\",\n 38: \"Up\",\n 39: \"Right\",\n 40: \"Down\",\n 44: \"Print\",\n 45: \"Insert\",\n 46: \"Delete\",\n 96: \"Numpad0\",\n 97: \"Numpad1\",\n 98: \"Numpad2\",\n 99: \"Numpad3\",\n 100: \"Numpad4\",\n 101: \"Numpad5\",\n 102: \"Numpad6\",\n 103: \"Numpad7\",\n 104: \"Numpad8\",\n 105: \"Numpad9\",\n '-13': \"NumpadEnter\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"Numlock\",\n 145: \"Scrolllock\"\n },\n PRINTABLE_KEYS: {\n 32: ' ', 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5',\n 54: '6', 55: '7', 56: '8', 57: '9', 59: ';', 61: '=', 65: 'a',\n 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h',\n 73: 'i', 74: 'j', 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o',\n 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't', 85: 'u', 86: 'v',\n 87: 'w', 88: 'x', 89: 'y', 90: 'z', 107: '+', 109: '-', 110: '.',\n 186: ';', 187: '=', 188: ',', 189: '-', 190: '.', 191: '/', 192: '`',\n 219: '[', 220: '\\\\', 221: ']', 222: \"'\", 111: '/', 106: '*'\n }\n };\n ret.PRINTABLE_KEYS[173] = '-';\n var name, i;\n for (i in ret.FUNCTION_KEYS) {\n name = ret.FUNCTION_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n for (i in ret.PRINTABLE_KEYS) {\n name = ret.PRINTABLE_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n oop.mixin(ret, ret.MODIFIER_KEYS);\n oop.mixin(ret, ret.PRINTABLE_KEYS);\n oop.mixin(ret, ret.FUNCTION_KEYS);\n ret.enter = ret[\"return\"];\n ret.escape = ret.esc;\n ret.del = ret[\"delete\"];\n (function () {\n var mods = [\"cmd\", \"ctrl\", \"alt\", \"shift\"];\n for (var i = Math.pow(2, mods.length); i--;) {\n ret.KEY_MODS[i] = mods.filter(function (x) {\n return i & ret.KEY_MODS[x];\n }).join(\"-\") + \"-\";\n }\n })();\n ret.KEY_MODS[0] = \"\";\n ret.KEY_MODS[-1] = \"input-\";\n return ret;\n})();\noop.mixin(exports, Keys);\nexports.default = exports;\nexports.keyCodeToString = function (keyCode) {\n var keyString = Keys[keyCode];\n if (typeof keyString != \"string\")\n keyString = String.fromCharCode(keyCode);\n return keyString.toLowerCase();\n};\n\n});\n\nace.define(\"ace/lib/event\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar keys = require(\"./keys\");\nvar useragent = require(\"./useragent\");\nvar pressedKeys = null;\nvar ts = 0;\nvar activeListenerOptions;\nfunction detectListenerOptionsSupport() {\n activeListenerOptions = false;\n try {\n document.createComment(\"\").addEventListener(\"test\", function () { }, {\n get passive() {\n activeListenerOptions = { passive: false };\n }\n });\n }\n catch (e) { }\n}\nfunction getListenerOptions() {\n if (activeListenerOptions == undefined)\n detectListenerOptionsSupport();\n return activeListenerOptions;\n}\nfunction EventListener(elem, type, callback) {\n this.elem = elem;\n this.type = type;\n this.callback = callback;\n}\nEventListener.prototype.destroy = function () {\n removeListener(this.elem, this.type, this.callback);\n this.elem = this.type = this.callback = undefined;\n};\nvar addListener = exports.addListener = function (elem, type, callback, destroyer) {\n elem.addEventListener(type, callback, getListenerOptions());\n if (destroyer)\n destroyer.$toDestroy.push(new EventListener(elem, type, callback));\n};\nvar removeListener = exports.removeListener = function (elem, type, callback) {\n elem.removeEventListener(type, callback, getListenerOptions());\n};\nexports.stopEvent = function (e) {\n exports.stopPropagation(e);\n exports.preventDefault(e);\n return false;\n};\nexports.stopPropagation = function (e) {\n if (e.stopPropagation)\n e.stopPropagation();\n};\nexports.preventDefault = function (e) {\n if (e.preventDefault)\n e.preventDefault();\n};\nexports.getButton = function (e) {\n if (e.type == \"dblclick\")\n return 0;\n if (e.type == \"contextmenu\" || (useragent.isMac && (e.ctrlKey && !e.altKey && !e.shiftKey)))\n return 2;\n return e.button;\n};\nexports.capture = function (el, eventHandler, releaseCaptureHandler) {\n var ownerDocument = el && el.ownerDocument || document;\n function onMouseUp(e) {\n eventHandler && eventHandler(e);\n releaseCaptureHandler && releaseCaptureHandler(e);\n removeListener(ownerDocument, \"mousemove\", eventHandler);\n removeListener(ownerDocument, \"mouseup\", onMouseUp);\n removeListener(ownerDocument, \"dragstart\", onMouseUp);\n }\n addListener(ownerDocument, \"mousemove\", eventHandler);\n addListener(ownerDocument, \"mouseup\", onMouseUp);\n addListener(ownerDocument, \"dragstart\", onMouseUp);\n return onMouseUp;\n};\nexports.addMouseWheelListener = function (el, callback, destroyer) {\n addListener(el, \"wheel\", function (e) {\n var factor = 0.15;\n var deltaX = e.deltaX || 0;\n var deltaY = e.deltaY || 0;\n switch (e.deltaMode) {\n case e.DOM_DELTA_PIXEL:\n e.wheelX = deltaX * factor;\n e.wheelY = deltaY * factor;\n break;\n case e.DOM_DELTA_LINE:\n var linePixels = 15;\n e.wheelX = deltaX * linePixels;\n e.wheelY = deltaY * linePixels;\n break;\n case e.DOM_DELTA_PAGE:\n var pagePixels = 150;\n e.wheelX = deltaX * pagePixels;\n e.wheelY = deltaY * pagePixels;\n break;\n }\n callback(e);\n }, destroyer);\n};\nexports.addMultiMouseDownListener = function (elements, timeouts, eventHandler, callbackName, destroyer) {\n var clicks = 0;\n var startX, startY, timer;\n var eventNames = {\n 2: \"dblclick\",\n 3: \"tripleclick\",\n 4: \"quadclick\"\n };\n function onMousedown(e) {\n if (exports.getButton(e) !== 0) {\n clicks = 0;\n }\n else if (e.detail > 1) {\n clicks++;\n if (clicks > 4)\n clicks = 1;\n }\n else {\n clicks = 1;\n }\n if (useragent.isIE) {\n var isNewClick = Math.abs(e.clientX - startX) > 5 || Math.abs(e.clientY - startY) > 5;\n if (!timer || isNewClick)\n clicks = 1;\n if (timer)\n clearTimeout(timer);\n timer = setTimeout(function () { timer = null; }, timeouts[clicks - 1] || 600);\n if (clicks == 1) {\n startX = e.clientX;\n startY = e.clientY;\n }\n }\n e._clicks = clicks;\n eventHandler[callbackName](\"mousedown\", e);\n if (clicks > 4)\n clicks = 0;\n else if (clicks > 1)\n return eventHandler[callbackName](eventNames[clicks], e);\n }\n if (!Array.isArray(elements))\n elements = [elements];\n elements.forEach(function (el) {\n addListener(el, \"mousedown\", onMousedown, destroyer);\n });\n};\nvar getModifierHash = function (e) {\n return 0 | (e.ctrlKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.metaKey ? 8 : 0);\n};\nexports.getModifierString = function (e) {\n return keys.KEY_MODS[getModifierHash(e)];\n};\nfunction normalizeCommandKeys(callback, e, keyCode) {\n var hashId = getModifierHash(e);\n if (!useragent.isMac && pressedKeys) {\n if (e.getModifierState && (e.getModifierState(\"OS\") || e.getModifierState(\"Win\")))\n hashId |= 8;\n if (pressedKeys.altGr) {\n if ((3 & hashId) != 3)\n pressedKeys.altGr = 0;\n else\n return;\n }\n if (keyCode === 18 || keyCode === 17) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (keyCode === 17 && location === 1) {\n if (pressedKeys[keyCode] == 1)\n ts = e.timeStamp;\n }\n else if (keyCode === 18 && hashId === 3 && location === 2) {\n var dt = e.timeStamp - ts;\n if (dt < 50)\n pressedKeys.altGr = true;\n }\n }\n }\n if (keyCode in keys.MODIFIER_KEYS) {\n keyCode = -1;\n }\n if (!hashId && keyCode === 13) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (location === 3) {\n callback(e, hashId, -keyCode);\n if (e.defaultPrevented)\n return;\n }\n }\n if (useragent.isChromeOS && hashId & 8) {\n callback(e, hashId, keyCode);\n if (e.defaultPrevented)\n return;\n else\n hashId &= ~8;\n }\n if (!hashId && !(keyCode in keys.FUNCTION_KEYS) && !(keyCode in keys.PRINTABLE_KEYS)) {\n return false;\n }\n return callback(e, hashId, keyCode);\n}\nexports.addCommandKeyListener = function (el, callback, destroyer) {\n if (useragent.isOldGecko || (useragent.isOpera && !(\"KeyboardEvent\" in window))) {\n var lastKeyDownKeyCode = null;\n addListener(el, \"keydown\", function (e) {\n lastKeyDownKeyCode = e.keyCode;\n }, destroyer);\n addListener(el, \"keypress\", function (e) {\n return normalizeCommandKeys(callback, e, lastKeyDownKeyCode);\n }, destroyer);\n }\n else {\n var lastDefaultPrevented = null;\n addListener(el, \"keydown\", function (e) {\n pressedKeys[e.keyCode] = (pressedKeys[e.keyCode] || 0) + 1;\n var result = normalizeCommandKeys(callback, e, e.keyCode);\n lastDefaultPrevented = e.defaultPrevented;\n return result;\n }, destroyer);\n addListener(el, \"keypress\", function (e) {\n if (lastDefaultPrevented && (e.ctrlKey || e.altKey || e.shiftKey || e.metaKey)) {\n exports.stopEvent(e);\n lastDefaultPrevented = null;\n }\n }, destroyer);\n addListener(el, \"keyup\", function (e) {\n pressedKeys[e.keyCode] = null;\n }, destroyer);\n if (!pressedKeys) {\n resetPressedKeys();\n addListener(window, \"focus\", resetPressedKeys);\n }\n }\n};\nfunction resetPressedKeys() {\n pressedKeys = Object.create(null);\n}\nif (typeof window == \"object\" && window.postMessage && !useragent.isOldIE) {\n var postMessageId = 1;\n exports.nextTick = function (callback, win) {\n win = win || window;\n var messageName = \"zero-timeout-message-\" + (postMessageId++);\n var listener = function (e) {\n if (e.data == messageName) {\n exports.stopPropagation(e);\n removeListener(win, \"message\", listener);\n callback();\n }\n };\n addListener(win, \"message\", listener);\n win.postMessage(messageName, \"*\");\n };\n}\nexports.$idleBlocked = false;\nexports.onIdle = function (cb, timeout) {\n return setTimeout(function handler() {\n if (!exports.$idleBlocked) {\n cb();\n }\n else {\n setTimeout(handler, 100);\n }\n }, timeout);\n};\nexports.$idleBlockId = null;\nexports.blockIdle = function (delay) {\n if (exports.$idleBlockId)\n clearTimeout(exports.$idleBlockId);\n exports.$idleBlocked = true;\n exports.$idleBlockId = setTimeout(function () {\n exports.$idleBlocked = false;\n }, delay || 100);\n};\nexports.nextFrame = typeof window == \"object\" && (window.requestAnimationFrame\n || window.mozRequestAnimationFrame\n || window.webkitRequestAnimationFrame\n || window.msRequestAnimationFrame\n || window.oRequestAnimationFrame);\nif (exports.nextFrame)\n exports.nextFrame = exports.nextFrame.bind(window);\nelse\n exports.nextFrame = function (callback) {\n setTimeout(callback, 17);\n };\n\n});\n\nace.define(\"ace/clipboard\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar $cancelT;\nmodule.exports = {\n lineMode: false,\n pasteCancelled: function () {\n if ($cancelT && $cancelT > Date.now() - 50)\n return true;\n return $cancelT = false;\n },\n cancel: function () {\n $cancelT = Date.now();\n }\n};\n\n});\n\nace.define(\"ace/keyboard/textinput\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/config\",\"ace/lib/useragent\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/clipboard\",\"ace/lib/keys\"], function(require, exports, module){\"use strict\";\nvar event = require(\"../lib/event\");\nvar nls = require(\"../config\").nls;\nvar useragent = require(\"../lib/useragent\");\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar clipboard = require(\"../clipboard\");\nvar BROKEN_SETDATA = useragent.isChrome < 18;\nvar USE_IE_MIME_TYPE = useragent.isIE;\nvar HAS_FOCUS_ARGS = useragent.isChrome > 63;\nvar MAX_LINE_LENGTH = 400;\nvar KEYS = require(\"../lib/keys\");\nvar MODS = KEYS.KEY_MODS;\nvar isIOS = useragent.isIOS;\nvar valueResetRegex = isIOS ? /\\s/ : /\\n/;\nvar isMobile = useragent.isMobile;\nvar TextInput = function (parentNode, host) {\n var text = dom.createElement(\"textarea\");\n text.className = \"ace_text-input\";\n text.setAttribute(\"wrap\", \"off\");\n text.setAttribute(\"autocorrect\", \"off\");\n text.setAttribute(\"autocapitalize\", \"off\");\n text.setAttribute(\"spellcheck\", false);\n text.style.opacity = \"0\";\n parentNode.insertBefore(text, parentNode.firstChild);\n var copied = false;\n var pasted = false;\n var inComposition = false;\n var sendingText = false;\n var tempStyle = '';\n if (!isMobile)\n text.style.fontSize = \"1px\";\n var commandMode = false;\n var ignoreFocusEvents = false;\n var lastValue = \"\";\n var lastSelectionStart = 0;\n var lastSelectionEnd = 0;\n var lastRestoreEnd = 0;\n var rowStart = Number.MAX_SAFE_INTEGER;\n var rowEnd = Number.MIN_SAFE_INTEGER;\n var numberOfExtraLines = 0;\n try {\n var isFocused = document.activeElement === text;\n }\n catch (e) { }\n this.setNumberOfExtraLines = function (number) {\n rowStart = Number.MAX_SAFE_INTEGER;\n rowEnd = Number.MIN_SAFE_INTEGER;\n if (number < 0) {\n numberOfExtraLines = 0;\n return;\n }\n numberOfExtraLines = number;\n };\n this.setAriaOptions = function (options) {\n if (options.activeDescendant) {\n text.setAttribute(\"aria-haspopup\", \"true\");\n text.setAttribute(\"aria-autocomplete\", options.inline ? \"both\" : \"list\");\n text.setAttribute(\"aria-activedescendant\", options.activeDescendant);\n }\n else {\n text.setAttribute(\"aria-haspopup\", \"false\");\n text.setAttribute(\"aria-autocomplete\", \"both\");\n text.removeAttribute(\"aria-activedescendant\");\n }\n if (options.role) {\n text.setAttribute(\"role\", options.role);\n }\n if (options.setLabel) {\n text.setAttribute(\"aria-roledescription\", nls(\"editor\"));\n if (host.session) {\n var row = host.session.selection.cursor.row;\n text.setAttribute(\"aria-label\", nls(\"Cursor at row $0\", [row + 1]));\n }\n }\n };\n this.setAriaOptions({ role: \"textbox\" });\n event.addListener(text, \"blur\", function (e) {\n if (ignoreFocusEvents)\n return;\n host.onBlur(e);\n isFocused = false;\n }, host);\n event.addListener(text, \"focus\", function (e) {\n if (ignoreFocusEvents)\n return;\n isFocused = true;\n if (useragent.isEdge) {\n try {\n if (!document.hasFocus())\n return;\n }\n catch (e) { }\n }\n host.onFocus(e);\n if (useragent.isEdge)\n setTimeout(resetSelection);\n else\n resetSelection();\n }, host);\n this.$focusScroll = false;\n this.focus = function () {\n this.setAriaOptions({\n setLabel: host.renderer.enableKeyboardAccessibility\n });\n if (tempStyle || HAS_FOCUS_ARGS || this.$focusScroll == \"browser\")\n return text.focus({ preventScroll: true });\n var top = text.style.top;\n text.style.position = \"fixed\";\n text.style.top = \"0px\";\n try {\n var isTransformed = text.getBoundingClientRect().top != 0;\n }\n catch (e) {\n return;\n }\n var ancestors = [];\n if (isTransformed) {\n var t = text.parentElement;\n while (t && t.nodeType == 1) {\n ancestors.push(t);\n t.setAttribute(\"ace_nocontext\", true);\n if (!t.parentElement && t.getRootNode)\n t = t.getRootNode().host;\n else\n t = t.parentElement;\n }\n }\n text.focus({ preventScroll: true });\n if (isTransformed) {\n ancestors.forEach(function (p) {\n p.removeAttribute(\"ace_nocontext\");\n });\n }\n setTimeout(function () {\n text.style.position = \"\";\n if (text.style.top == \"0px\")\n text.style.top = top;\n }, 0);\n };\n this.blur = function () {\n text.blur();\n };\n this.isFocused = function () {\n return isFocused;\n };\n host.on(\"beforeEndOperation\", function () {\n var curOp = host.curOp;\n var commandName = curOp && curOp.command && curOp.command.name;\n if (commandName == \"insertstring\")\n return;\n var isUserAction = commandName && (curOp.docChanged || curOp.selectionChanged);\n if (inComposition && isUserAction) {\n lastValue = text.value = \"\";\n onCompositionEnd();\n }\n resetSelection();\n });\n var positionToSelection = function (row, column) {\n var selection = column;\n for (var i = 1; i <= row - rowStart && i < 2 * numberOfExtraLines + 1; i++) {\n selection += host.session.getLine(row - i).length + 1;\n }\n return selection;\n };\n var resetSelection = isIOS\n ? function (value) {\n if (!isFocused || (copied && !value) || sendingText)\n return;\n if (!value)\n value = \"\";\n var newValue = \"\\n ab\" + value + \"cde fg\\n\";\n if (newValue != text.value)\n text.value = lastValue = newValue;\n var selectionStart = 4;\n var selectionEnd = 4 + (value.length || (host.selection.isEmpty() ? 0 : 1));\n if (lastSelectionStart != selectionStart || lastSelectionEnd != selectionEnd) {\n text.setSelectionRange(selectionStart, selectionEnd);\n }\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n }\n : function () {\n if (inComposition || sendingText)\n return;\n if (!isFocused && !afterContextMenu)\n return;\n inComposition = true;\n var selectionStart = 0;\n var selectionEnd = 0;\n var line = \"\";\n if (host.session) {\n var selection = host.selection;\n var range = selection.getRange();\n var row = selection.cursor.row;\n if (row === rowEnd + 1) {\n rowStart = rowEnd + 1;\n rowEnd = rowStart + 2 * numberOfExtraLines;\n }\n else if (row === rowStart - 1) {\n rowEnd = rowStart - 1;\n rowStart = rowEnd - 2 * numberOfExtraLines;\n }\n else if (row < rowStart - 1 || row > rowEnd + 1) {\n rowStart = row > numberOfExtraLines ? row - numberOfExtraLines : 0;\n rowEnd = row > numberOfExtraLines ? row + numberOfExtraLines : 2 * numberOfExtraLines;\n }\n var lines = [];\n for (var i = rowStart; i <= rowEnd; i++) {\n lines.push(host.session.getLine(i));\n }\n line = lines.join('\\n');\n selectionStart = positionToSelection(range.start.row, range.start.column);\n selectionEnd = positionToSelection(range.end.row, range.end.column);\n if (range.start.row < rowStart) {\n var prevLine = host.session.getLine(rowStart - 1);\n selectionStart = range.start.row < rowStart - 1 ? 0 : selectionStart;\n selectionEnd += prevLine.length + 1;\n line = prevLine + \"\\n\" + line;\n }\n else if (range.end.row > rowEnd) {\n var nextLine = host.session.getLine(rowEnd + 1);\n selectionEnd = range.end.row > rowEnd + 1 ? nextLine.length : range.end.column;\n selectionEnd += line.length + 1;\n line = line + \"\\n\" + nextLine;\n }\n else if (isMobile && row > 0) {\n line = \"\\n\" + line;\n selectionEnd += 1;\n selectionStart += 1;\n }\n if (line.length > MAX_LINE_LENGTH) {\n if (selectionStart < MAX_LINE_LENGTH && selectionEnd < MAX_LINE_LENGTH) {\n line = line.slice(0, MAX_LINE_LENGTH);\n }\n else {\n line = \"\\n\";\n if (selectionStart == selectionEnd) {\n selectionStart = selectionEnd = 0;\n }\n else {\n selectionStart = 0;\n selectionEnd = 1;\n }\n }\n }\n var newValue = line + \"\\n\\n\";\n if (newValue != lastValue) {\n text.value = lastValue = newValue;\n lastSelectionStart = lastSelectionEnd = newValue.length;\n }\n }\n if (afterContextMenu) {\n lastSelectionStart = text.selectionStart;\n lastSelectionEnd = text.selectionEnd;\n }\n if (lastSelectionEnd != selectionEnd\n || lastSelectionStart != selectionStart\n || text.selectionEnd != lastSelectionEnd // on ie edge selectionEnd changes silently after the initialization\n ) {\n try {\n text.setSelectionRange(selectionStart, selectionEnd);\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n }\n catch (e) { }\n }\n inComposition = false;\n };\n this.resetSelection = resetSelection;\n if (isFocused)\n host.onFocus();\n var isAllSelected = function (text) {\n return text.selectionStart === 0 && text.selectionEnd >= lastValue.length\n && text.value === lastValue && lastValue\n && text.selectionEnd !== lastSelectionEnd;\n };\n var onSelect = function (e) {\n if (inComposition)\n return;\n if (copied) {\n copied = false;\n }\n else if (isAllSelected(text)) {\n host.selectAll();\n resetSelection();\n }\n else if (isMobile && text.selectionStart != lastSelectionStart) {\n resetSelection();\n }\n };\n var inputHandler = null;\n this.setInputHandler = function (cb) { inputHandler = cb; };\n this.getInputHandler = function () { return inputHandler; };\n var afterContextMenu = false;\n var sendText = function (value, fromInput) {\n if (afterContextMenu)\n afterContextMenu = false;\n if (pasted) {\n resetSelection();\n if (value)\n host.onPaste(value);\n pasted = false;\n return \"\";\n }\n else {\n var selectionStart = text.selectionStart;\n var selectionEnd = text.selectionEnd;\n var extendLeft = lastSelectionStart;\n var extendRight = lastValue.length - lastSelectionEnd;\n var inserted = value;\n var restoreStart = value.length - selectionStart;\n var restoreEnd = value.length - selectionEnd;\n var i = 0;\n while (extendLeft > 0 && lastValue[i] == value[i]) {\n i++;\n extendLeft--;\n }\n inserted = inserted.slice(i);\n i = 1;\n while (extendRight > 0 && lastValue.length - i > lastSelectionStart - 1 && lastValue[lastValue.length - i] == value[value.length - i]) {\n i++;\n extendRight--;\n }\n restoreStart -= i - 1;\n restoreEnd -= i - 1;\n var endIndex = inserted.length - i + 1;\n if (endIndex < 0) {\n extendLeft = -endIndex;\n endIndex = 0;\n }\n inserted = inserted.slice(0, endIndex);\n if (!fromInput && !inserted && !restoreStart && !extendLeft && !extendRight && !restoreEnd)\n return \"\";\n sendingText = true;\n var shouldReset = false;\n if (useragent.isAndroid && inserted == \". \") {\n inserted = \" \";\n shouldReset = true;\n }\n if (inserted && !extendLeft && !extendRight && !restoreStart && !restoreEnd || commandMode) {\n host.onTextInput(inserted);\n }\n else {\n host.onTextInput(inserted, {\n extendLeft: extendLeft,\n extendRight: extendRight,\n restoreStart: restoreStart,\n restoreEnd: restoreEnd\n });\n }\n sendingText = false;\n lastValue = value;\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n lastRestoreEnd = restoreEnd;\n return shouldReset ? \"\\n\" : inserted;\n }\n };\n var onInput = function (e) {\n if (inComposition)\n return onCompositionUpdate();\n if (e && e.inputType) {\n if (e.inputType == \"historyUndo\")\n return host.execCommand(\"undo\");\n if (e.inputType == \"historyRedo\")\n return host.execCommand(\"redo\");\n }\n var data = text.value;\n var inserted = sendText(data, true);\n if (data.length > MAX_LINE_LENGTH + 100\n || valueResetRegex.test(inserted)\n || isMobile && lastSelectionStart < 1 && lastSelectionStart == lastSelectionEnd) {\n resetSelection();\n }\n };\n var handleClipboardData = function (e, data, forceIEMime) {\n var clipboardData = e.clipboardData || window.clipboardData;\n if (!clipboardData || BROKEN_SETDATA)\n return;\n var mime = USE_IE_MIME_TYPE || forceIEMime ? \"Text\" : \"text/plain\";\n try {\n if (data) {\n return clipboardData.setData(mime, data) !== false;\n }\n else {\n return clipboardData.getData(mime);\n }\n }\n catch (e) {\n if (!forceIEMime)\n return handleClipboardData(e, data, true);\n }\n };\n var doCopy = function (e, isCut) {\n var data = host.getCopyText();\n if (!data)\n return event.preventDefault(e);\n if (handleClipboardData(e, data)) {\n if (isIOS) {\n resetSelection(data);\n copied = data;\n setTimeout(function () {\n copied = false;\n }, 10);\n }\n isCut ? host.onCut() : host.onCopy();\n event.preventDefault(e);\n }\n else {\n copied = true;\n text.value = data;\n text.select();\n setTimeout(function () {\n copied = false;\n resetSelection();\n isCut ? host.onCut() : host.onCopy();\n });\n }\n };\n var onCut = function (e) {\n doCopy(e, true);\n };\n var onCopy = function (e) {\n doCopy(e, false);\n };\n var onPaste = function (e) {\n var data = handleClipboardData(e);\n if (clipboard.pasteCancelled())\n return;\n if (typeof data == \"string\") {\n if (data)\n host.onPaste(data, e);\n if (useragent.isIE)\n setTimeout(resetSelection);\n event.preventDefault(e);\n }\n else {\n text.value = \"\";\n pasted = true;\n }\n };\n event.addCommandKeyListener(text, host.onCommandKey.bind(host), host);\n event.addListener(text, \"select\", onSelect, host);\n event.addListener(text, \"input\", onInput, host);\n event.addListener(text, \"cut\", onCut, host);\n event.addListener(text, \"copy\", onCopy, host);\n event.addListener(text, \"paste\", onPaste, host);\n if (!('oncut' in text) || !('oncopy' in text) || !('onpaste' in text)) {\n event.addListener(parentNode, \"keydown\", function (e) {\n if ((useragent.isMac && !e.metaKey) || !e.ctrlKey)\n return;\n switch (e.keyCode) {\n case 67:\n onCopy(e);\n break;\n case 86:\n onPaste(e);\n break;\n case 88:\n onCut(e);\n break;\n }\n }, host);\n }\n var onCompositionStart = function (e) {\n if (inComposition || !host.onCompositionStart || host.$readOnly)\n return;\n inComposition = {};\n if (commandMode)\n return;\n if (e.data)\n inComposition.useTextareaForIME = false;\n setTimeout(onCompositionUpdate, 0);\n host._signal(\"compositionStart\");\n host.on(\"mousedown\", cancelComposition);\n var range = host.getSelectionRange();\n range.end.row = range.start.row;\n range.end.column = range.start.column;\n inComposition.markerRange = range;\n inComposition.selectionStart = lastSelectionStart;\n host.onCompositionStart(inComposition);\n if (inComposition.useTextareaForIME) {\n lastValue = text.value = \"\";\n lastSelectionStart = 0;\n lastSelectionEnd = 0;\n }\n else {\n if (text.msGetInputContext)\n inComposition.context = text.msGetInputContext();\n if (text.getInputContext)\n inComposition.context = text.getInputContext();\n }\n };\n var onCompositionUpdate = function () {\n if (!inComposition || !host.onCompositionUpdate || host.$readOnly)\n return;\n if (commandMode)\n return cancelComposition();\n if (inComposition.useTextareaForIME) {\n host.onCompositionUpdate(text.value);\n }\n else {\n var data = text.value;\n sendText(data);\n if (inComposition.markerRange) {\n if (inComposition.context) {\n inComposition.markerRange.start.column = inComposition.selectionStart\n = inComposition.context.compositionStartOffset;\n }\n inComposition.markerRange.end.column = inComposition.markerRange.start.column\n + lastSelectionEnd - inComposition.selectionStart + lastRestoreEnd;\n }\n }\n };\n var onCompositionEnd = function (e) {\n if (!host.onCompositionEnd || host.$readOnly)\n return;\n inComposition = false;\n host.onCompositionEnd();\n host.off(\"mousedown\", cancelComposition);\n if (e)\n onInput();\n };\n function cancelComposition() {\n ignoreFocusEvents = true;\n text.blur();\n text.focus();\n ignoreFocusEvents = false;\n }\n var syncComposition = lang.delayedCall(onCompositionUpdate, 50).schedule.bind(null, null);\n function onKeyup(e) {\n if (e.keyCode == 27 && text.value.length < text.selectionStart) {\n if (!inComposition)\n lastValue = text.value;\n lastSelectionStart = lastSelectionEnd = -1;\n resetSelection();\n }\n syncComposition();\n }\n event.addListener(text, \"compositionstart\", onCompositionStart, host);\n event.addListener(text, \"compositionupdate\", onCompositionUpdate, host);\n event.addListener(text, \"keyup\", onKeyup, host);\n event.addListener(text, \"keydown\", syncComposition, host);\n event.addListener(text, \"compositionend\", onCompositionEnd, host);\n this.getElement = function () {\n return text;\n };\n this.setCommandMode = function (value) {\n commandMode = value;\n text.readOnly = false;\n };\n this.setReadOnly = function (readOnly) {\n if (!commandMode)\n text.readOnly = readOnly;\n };\n this.setCopyWithEmptySelection = function (value) {\n };\n this.onContextMenu = function (e) {\n afterContextMenu = true;\n resetSelection();\n host._emit(\"nativecontextmenu\", { target: host, domEvent: e });\n this.moveToMouse(e, true);\n };\n this.moveToMouse = function (e, bringToFront) {\n if (!tempStyle)\n tempStyle = text.style.cssText;\n text.style.cssText = (bringToFront ? \"z-index:100000;\" : \"\")\n + (useragent.isIE ? \"opacity:0.1;\" : \"\")\n + \"text-indent: -\" + (lastSelectionStart + lastSelectionEnd) * host.renderer.characterWidth * 0.5 + \"px;\";\n var rect = host.container.getBoundingClientRect();\n var style = dom.computedStyle(host.container);\n var top = rect.top + (parseInt(style.borderTopWidth) || 0);\n var left = rect.left + (parseInt(rect.borderLeftWidth) || 0);\n var maxTop = rect.bottom - top - text.clientHeight - 2;\n var move = function (e) {\n dom.translate(text, e.clientX - left - 2, Math.min(e.clientY - top - 2, maxTop));\n };\n move(e);\n if (e.type != \"mousedown\")\n return;\n host.renderer.$isMousePressed = true;\n clearTimeout(closeTimeout);\n if (useragent.isWin)\n event.capture(host.container, move, onContextMenuClose);\n };\n this.onContextMenuClose = onContextMenuClose;\n var closeTimeout;\n function onContextMenuClose() {\n clearTimeout(closeTimeout);\n closeTimeout = setTimeout(function () {\n if (tempStyle) {\n text.style.cssText = tempStyle;\n tempStyle = '';\n }\n host.renderer.$isMousePressed = false;\n if (host.renderer.$keepTextAreaAtCursor)\n host.renderer.$moveTextAreaToCursor();\n }, 0);\n }\n var onContextMenu = function (e) {\n host.textInput.onContextMenu(e);\n onContextMenuClose();\n };\n event.addListener(text, \"mouseup\", onContextMenu, host);\n event.addListener(text, \"mousedown\", function (e) {\n e.preventDefault();\n onContextMenuClose();\n }, host);\n event.addListener(host.renderer.scroller, \"contextmenu\", onContextMenu, host);\n event.addListener(text, \"contextmenu\", onContextMenu, host);\n if (isIOS)\n addIosSelectionHandler(parentNode, host, text);\n function addIosSelectionHandler(parentNode, host, text) {\n var typingResetTimeout = null;\n var typing = false;\n text.addEventListener(\"keydown\", function (e) {\n if (typingResetTimeout)\n clearTimeout(typingResetTimeout);\n typing = true;\n }, true);\n text.addEventListener(\"keyup\", function (e) {\n typingResetTimeout = setTimeout(function () {\n typing = false;\n }, 100);\n }, true);\n var detectArrowKeys = function (e) {\n if (document.activeElement !== text)\n return;\n if (typing || inComposition || host.$mouseHandler.isMousePressed)\n return;\n if (copied) {\n return;\n }\n var selectionStart = text.selectionStart;\n var selectionEnd = text.selectionEnd;\n var key = null;\n var modifier = 0;\n if (selectionStart == 0) {\n key = KEYS.up;\n }\n else if (selectionStart == 1) {\n key = KEYS.home;\n }\n else if (selectionEnd > lastSelectionEnd && lastValue[selectionEnd] == \"\\n\") {\n key = KEYS.end;\n }\n else if (selectionStart < lastSelectionStart && lastValue[selectionStart - 1] == \" \") {\n key = KEYS.left;\n modifier = MODS.option;\n }\n else if (selectionStart < lastSelectionStart\n || (selectionStart == lastSelectionStart\n && lastSelectionEnd != lastSelectionStart\n && selectionStart == selectionEnd)) {\n key = KEYS.left;\n }\n else if (selectionEnd > lastSelectionEnd && lastValue.slice(0, selectionEnd).split(\"\\n\").length > 2) {\n key = KEYS.down;\n }\n else if (selectionEnd > lastSelectionEnd && lastValue[selectionEnd - 1] == \" \") {\n key = KEYS.right;\n modifier = MODS.option;\n }\n else if (selectionEnd > lastSelectionEnd\n || (selectionEnd == lastSelectionEnd\n && lastSelectionEnd != lastSelectionStart\n && selectionStart == selectionEnd)) {\n key = KEYS.right;\n }\n if (selectionStart !== selectionEnd)\n modifier |= MODS.shift;\n if (key) {\n var result = host.onCommandKey({}, modifier, key);\n if (!result && host.commands) {\n key = KEYS.keyCodeToString(key);\n var command = host.commands.findKeyCommand(modifier, key);\n if (command)\n host.execCommand(command);\n }\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n resetSelection(\"\");\n }\n };\n document.addEventListener(\"selectionchange\", detectArrowKeys);\n host.on(\"destroy\", function () {\n document.removeEventListener(\"selectionchange\", detectArrowKeys);\n });\n }\n this.destroy = function () {\n if (text.parentElement)\n text.parentElement.removeChild(text);\n };\n};\nexports.TextInput = TextInput;\nexports.$setUserAgentForTests = function (_isMobile, _isIOS) {\n isMobile = _isMobile;\n isIOS = _isIOS;\n};\n\n});\n\nace.define(\"ace/mouse/default_handlers\",[\"require\",\"exports\",\"module\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar useragent = require(\"../lib/useragent\");\nvar DRAG_OFFSET = 0; // pixels\nvar SCROLL_COOLDOWN_T = 550; // milliseconds\nvar DefaultHandlers = /** @class */ (function () {\n function DefaultHandlers(mouseHandler) {\n mouseHandler.$clickSelection = null;\n var editor = mouseHandler.editor;\n editor.setDefaultHandler(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n editor.setDefaultHandler(\"dblclick\", this.onDoubleClick.bind(mouseHandler));\n editor.setDefaultHandler(\"tripleclick\", this.onTripleClick.bind(mouseHandler));\n editor.setDefaultHandler(\"quadclick\", this.onQuadClick.bind(mouseHandler));\n editor.setDefaultHandler(\"mousewheel\", this.onMouseWheel.bind(mouseHandler));\n var exports = [\"select\", \"startSelect\", \"selectEnd\", \"selectAllEnd\", \"selectByWordsEnd\",\n \"selectByLinesEnd\", \"dragWait\", \"dragWaitEnd\", \"focusWait\"];\n exports.forEach(function (x) {\n mouseHandler[x] = this[x];\n }, this);\n mouseHandler.selectByLines = this.extendSelectionBy.bind(mouseHandler, \"getLineRange\");\n mouseHandler.selectByWords = this.extendSelectionBy.bind(mouseHandler, \"getWordRange\");\n }\n DefaultHandlers.prototype.onMouseDown = function (ev) {\n var inSelection = ev.inSelection();\n var pos = ev.getDocumentPosition();\n this.mousedownEvent = ev;\n var editor = this.editor;\n var button = ev.getButton();\n if (button !== 0) {\n var selectionRange = editor.getSelectionRange();\n var selectionEmpty = selectionRange.isEmpty();\n if (selectionEmpty || button == 1)\n editor.selection.moveToPosition(pos);\n if (button == 2) {\n editor.textInput.onContextMenu(ev.domEvent);\n if (!useragent.isMozilla)\n ev.preventDefault();\n }\n return;\n }\n this.mousedownEvent.time = Date.now();\n if (inSelection && !editor.isFocused()) {\n editor.focus();\n if (this.$focusTimeout && !this.$clickSelection && !editor.inMultiSelectMode) {\n this.setState(\"focusWait\");\n this.captureMouse(ev);\n return;\n }\n }\n this.captureMouse(ev);\n this.startSelect(pos, ev.domEvent._clicks > 1);\n return ev.preventDefault();\n };\n DefaultHandlers.prototype.startSelect = function (pos, waitForClickSelection) {\n pos = pos || this.editor.renderer.screenToTextCoordinates(this.x, this.y);\n var editor = this.editor;\n if (!this.mousedownEvent)\n return;\n if (this.mousedownEvent.getShiftKey())\n editor.selection.selectToPosition(pos);\n else if (!waitForClickSelection)\n editor.selection.moveToPosition(pos);\n if (!waitForClickSelection)\n this.select();\n editor.setStyle(\"ace_selecting\");\n this.setState(\"select\");\n };\n DefaultHandlers.prototype.select = function () {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n if (this.$clickSelection) {\n var cmp = this.$clickSelection.comparePoint(cursor);\n if (cmp == -1) {\n anchor = this.$clickSelection.end;\n }\n else if (cmp == 1) {\n anchor = this.$clickSelection.start;\n }\n else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n };\n DefaultHandlers.prototype.extendSelectionBy = function (unitName) {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n var range = editor.selection[unitName](cursor.row, cursor.column);\n if (this.$clickSelection) {\n var cmpStart = this.$clickSelection.comparePoint(range.start);\n var cmpEnd = this.$clickSelection.comparePoint(range.end);\n if (cmpStart == -1 && cmpEnd <= 0) {\n anchor = this.$clickSelection.end;\n if (range.end.row != cursor.row || range.end.column != cursor.column)\n cursor = range.start;\n }\n else if (cmpEnd == 1 && cmpStart >= 0) {\n anchor = this.$clickSelection.start;\n if (range.start.row != cursor.row || range.start.column != cursor.column)\n cursor = range.end;\n }\n else if (cmpStart == -1 && cmpEnd == 1) {\n cursor = range.end;\n anchor = range.start;\n }\n else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n };\n DefaultHandlers.prototype.selectByLinesEnd = function () {\n this.$clickSelection = null;\n this.editor.unsetStyle(\"ace_selecting\");\n };\n DefaultHandlers.prototype.focusWait = function () {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n var time = Date.now();\n if (distance > DRAG_OFFSET || time - this.mousedownEvent.time > this.$focusTimeout)\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n };\n DefaultHandlers.prototype.onDoubleClick = function (ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n var session = editor.session;\n var range = session.getBracketRange(pos);\n if (range) {\n if (range.isEmpty()) {\n range.start.column--;\n range.end.column++;\n }\n this.setState(\"select\");\n }\n else {\n range = editor.selection.getWordRange(pos.row, pos.column);\n this.setState(\"selectByWords\");\n }\n this.$clickSelection = range;\n this.select();\n };\n DefaultHandlers.prototype.onTripleClick = function (ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n this.setState(\"selectByLines\");\n var range = editor.getSelectionRange();\n if (range.isMultiLine() && range.contains(pos.row, pos.column)) {\n this.$clickSelection = editor.selection.getLineRange(range.start.row);\n this.$clickSelection.end = editor.selection.getLineRange(range.end.row).end;\n }\n else {\n this.$clickSelection = editor.selection.getLineRange(pos.row);\n }\n this.select();\n };\n DefaultHandlers.prototype.onQuadClick = function (ev) {\n var editor = this.editor;\n editor.selectAll();\n this.$clickSelection = editor.getSelectionRange();\n this.setState(\"selectAll\");\n };\n DefaultHandlers.prototype.onMouseWheel = function (ev) {\n if (ev.getAccelKey())\n return;\n if (ev.getShiftKey() && ev.wheelY && !ev.wheelX) {\n ev.wheelX = ev.wheelY;\n ev.wheelY = 0;\n }\n var editor = this.editor;\n if (!this.$lastScroll)\n this.$lastScroll = { t: 0, vx: 0, vy: 0, allowed: 0 };\n var prevScroll = this.$lastScroll;\n var t = ev.domEvent.timeStamp;\n var dt = t - prevScroll.t;\n var vx = dt ? ev.wheelX / dt : prevScroll.vx;\n var vy = dt ? ev.wheelY / dt : prevScroll.vy;\n if (dt < SCROLL_COOLDOWN_T) {\n vx = (vx + prevScroll.vx) / 2;\n vy = (vy + prevScroll.vy) / 2;\n }\n var direction = Math.abs(vx / vy);\n var canScroll = false;\n if (direction >= 1 && editor.renderer.isScrollableBy(ev.wheelX * ev.speed, 0))\n canScroll = true;\n if (direction <= 1 && editor.renderer.isScrollableBy(0, ev.wheelY * ev.speed))\n canScroll = true;\n if (canScroll) {\n prevScroll.allowed = t;\n }\n else if (t - prevScroll.allowed < SCROLL_COOLDOWN_T) {\n var isSlower = Math.abs(vx) <= 1.5 * Math.abs(prevScroll.vx)\n && Math.abs(vy) <= 1.5 * Math.abs(prevScroll.vy);\n if (isSlower) {\n canScroll = true;\n prevScroll.allowed = t;\n }\n else {\n prevScroll.allowed = 0;\n }\n }\n prevScroll.t = t;\n prevScroll.vx = vx;\n prevScroll.vy = vy;\n if (canScroll) {\n editor.renderer.scrollBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed);\n return ev.stop();\n }\n };\n return DefaultHandlers;\n}());\nDefaultHandlers.prototype.selectEnd = DefaultHandlers.prototype.selectByLinesEnd;\nDefaultHandlers.prototype.selectAllEnd = DefaultHandlers.prototype.selectByLinesEnd;\nDefaultHandlers.prototype.selectByWordsEnd = DefaultHandlers.prototype.selectByLinesEnd;\nexports.DefaultHandlers = DefaultHandlers;\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\nfunction calcRangeOrientation(range, cursor) {\n if (range.start.row == range.end.row)\n var cmp = 2 * cursor.column - range.start.column - range.end.column;\n else if (range.start.row == range.end.row - 1 && !range.start.column && !range.end.column)\n var cmp = cursor.column - 4;\n else\n var cmp = 2 * cursor.row - range.start.row - range.end.row;\n if (cmp < 0)\n return { cursor: range.start, anchor: range.end };\n else\n return { cursor: range.end, anchor: range.start };\n}\n\n});\n\nace.define(\"ace/tooltip\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar dom = require(\"./lib/dom\");\nvar event = require(\"./lib/event\");\nvar Range = require(\"./range\").Range;\nvar CLASSNAME = \"ace_tooltip\";\nvar Tooltip = /** @class */ (function () {\n function Tooltip(parentNode) {\n this.isOpen = false;\n this.$element = null;\n this.$parentNode = parentNode;\n }\n Tooltip.prototype.$init = function () {\n this.$element = dom.createElement(\"div\");\n this.$element.className = CLASSNAME;\n this.$element.style.display = \"none\";\n this.$parentNode.appendChild(this.$element);\n return this.$element;\n };\n Tooltip.prototype.getElement = function () {\n return this.$element || this.$init();\n };\n Tooltip.prototype.setText = function (text) {\n this.getElement().textContent = text;\n };\n Tooltip.prototype.setHtml = function (html) {\n this.getElement().innerHTML = html;\n };\n Tooltip.prototype.setPosition = function (x, y) {\n this.getElement().style.left = x + \"px\";\n this.getElement().style.top = y + \"px\";\n };\n Tooltip.prototype.setClassName = function (className) {\n dom.addCssClass(this.getElement(), className);\n };\n Tooltip.prototype.setTheme = function (theme) {\n this.$element.className = CLASSNAME + \" \" +\n (theme.isDark ? \"ace_dark \" : \"\") + (theme.cssClass || \"\");\n };\n Tooltip.prototype.show = function (text, x, y) {\n if (text != null)\n this.setText(text);\n if (x != null && y != null)\n this.setPosition(x, y);\n if (!this.isOpen) {\n this.getElement().style.display = \"block\";\n this.isOpen = true;\n }\n };\n Tooltip.prototype.hide = function () {\n if (this.isOpen) {\n this.getElement().style.display = \"none\";\n this.getElement().className = CLASSNAME;\n this.isOpen = false;\n }\n };\n Tooltip.prototype.getHeight = function () {\n return this.getElement().offsetHeight;\n };\n Tooltip.prototype.getWidth = function () {\n return this.getElement().offsetWidth;\n };\n Tooltip.prototype.destroy = function () {\n this.isOpen = false;\n if (this.$element && this.$element.parentNode) {\n this.$element.parentNode.removeChild(this.$element);\n }\n };\n return Tooltip;\n}());\nvar PopupManager = /** @class */ (function () {\n function PopupManager() {\n this.popups = [];\n }\n PopupManager.prototype.addPopup = function (popup) {\n this.popups.push(popup);\n this.updatePopups();\n };\n PopupManager.prototype.removePopup = function (popup) {\n var index = this.popups.indexOf(popup);\n if (index !== -1) {\n this.popups.splice(index, 1);\n this.updatePopups();\n }\n };\n PopupManager.prototype.updatePopups = function () {\n var e_1, _a, e_2, _b;\n this.popups.sort(function (a, b) { return b.priority - a.priority; });\n var visiblepopups = [];\n try {\n for (var _c = __values(this.popups), _d = _c.next(); !_d.done; _d = _c.next()) {\n var popup = _d.value;\n var shouldDisplay = true;\n try {\n for (var visiblepopups_1 = (e_2 = void 0, __values(visiblepopups)), visiblepopups_1_1 = visiblepopups_1.next(); !visiblepopups_1_1.done; visiblepopups_1_1 = visiblepopups_1.next()) {\n var visiblePopup = visiblepopups_1_1.value;\n if (this.doPopupsOverlap(visiblePopup, popup)) {\n shouldDisplay = false;\n break;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (visiblepopups_1_1 && !visiblepopups_1_1.done && (_b = visiblepopups_1.return)) _b.call(visiblepopups_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n if (shouldDisplay) {\n visiblepopups.push(popup);\n }\n else {\n popup.hide();\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n PopupManager.prototype.doPopupsOverlap = function (popupA, popupB) {\n var rectA = popupA.getElement().getBoundingClientRect();\n var rectB = popupB.getElement().getBoundingClientRect();\n return (rectA.left < rectB.right && rectA.right > rectB.left && rectA.top < rectB.bottom && rectA.bottom\n > rectB.top);\n };\n return PopupManager;\n}());\nvar popupManager = new PopupManager();\nexports.popupManager = popupManager;\nexports.Tooltip = Tooltip;\nvar HoverTooltip = /** @class */ (function (_super) {\n __extends(HoverTooltip, _super);\n function HoverTooltip(parentNode) {\n if (parentNode === void 0) { parentNode = document.body; }\n var _this = _super.call(this, parentNode) || this;\n _this.timeout = undefined;\n _this.lastT = 0;\n _this.idleTime = 350;\n _this.lastEvent = undefined;\n _this.onMouseOut = _this.onMouseOut.bind(_this);\n _this.onMouseMove = _this.onMouseMove.bind(_this);\n _this.waitForHover = _this.waitForHover.bind(_this);\n _this.hide = _this.hide.bind(_this);\n var el = _this.getElement();\n el.style.whiteSpace = \"pre-wrap\";\n el.style.pointerEvents = \"auto\";\n el.addEventListener(\"mouseout\", _this.onMouseOut);\n el.tabIndex = -1;\n el.addEventListener(\"blur\", function () {\n if (!el.contains(document.activeElement))\n this.hide();\n }.bind(_this));\n el.addEventListener(\"wheel\", event.stopPropagation);\n return _this;\n }\n HoverTooltip.prototype.addToEditor = function (editor) {\n editor.on(\"mousemove\", this.onMouseMove);\n editor.on(\"mousedown\", this.hide);\n editor.renderer.getMouseEventTarget().addEventListener(\"mouseout\", this.onMouseOut, true);\n };\n HoverTooltip.prototype.removeFromEditor = function (editor) {\n editor.off(\"mousemove\", this.onMouseMove);\n editor.off(\"mousedown\", this.hide);\n editor.renderer.getMouseEventTarget().removeEventListener(\"mouseout\", this.onMouseOut, true);\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n };\n HoverTooltip.prototype.onMouseMove = function (e, editor) {\n this.lastEvent = e;\n this.lastT = Date.now();\n var isMousePressed = editor.$mouseHandler.isMousePressed;\n if (this.isOpen) {\n var pos = this.lastEvent && this.lastEvent.getDocumentPosition();\n if (!this.range\n || !this.range.contains(pos.row, pos.column)\n || isMousePressed\n || this.isOutsideOfText(this.lastEvent)) {\n this.hide();\n }\n }\n if (this.timeout || isMousePressed)\n return;\n this.lastEvent = e;\n this.timeout = setTimeout(this.waitForHover, this.idleTime);\n };\n HoverTooltip.prototype.waitForHover = function () {\n if (this.timeout)\n clearTimeout(this.timeout);\n var dt = Date.now() - this.lastT;\n if (this.idleTime - dt > 10) {\n this.timeout = setTimeout(this.waitForHover, this.idleTime - dt);\n return;\n }\n this.timeout = null;\n if (this.lastEvent && !this.isOutsideOfText(this.lastEvent)) {\n this.$gatherData(this.lastEvent, this.lastEvent.editor);\n }\n };\n HoverTooltip.prototype.isOutsideOfText = function (e) {\n var editor = e.editor;\n var docPos = e.getDocumentPosition();\n var line = editor.session.getLine(docPos.row);\n if (docPos.column == line.length) {\n var screenPos = editor.renderer.pixelToScreenCoordinates(e.clientX, e.clientY);\n var clippedPos = editor.session.documentToScreenPosition(docPos.row, docPos.column);\n if (clippedPos.column != screenPos.column\n || clippedPos.row != screenPos.row) {\n return true;\n }\n }\n return false;\n };\n HoverTooltip.prototype.setDataProvider = function (value) {\n this.$gatherData = value;\n };\n HoverTooltip.prototype.showForRange = function (editor, range, domNode, startingEvent) {\n var MARGIN = 10;\n if (startingEvent && startingEvent != this.lastEvent)\n return;\n if (this.isOpen && document.activeElement == this.getElement())\n return;\n var renderer = editor.renderer;\n if (!this.isOpen) {\n popupManager.addPopup(this);\n this.$registerCloseEvents();\n this.setTheme(renderer.theme);\n }\n this.isOpen = true;\n this.addMarker(range, editor.session);\n this.range = Range.fromPoints(range.start, range.end);\n var position = renderer.textToScreenCoordinates(range.start.row, range.start.column);\n var rect = renderer.scroller.getBoundingClientRect();\n if (position.pageX < rect.left)\n position.pageX = rect.left;\n var element = this.getElement();\n element.innerHTML = \"\";\n element.appendChild(domNode);\n element.style.maxHeight = \"\";\n element.style.display = \"block\";\n var labelHeight = element.clientHeight;\n var labelWidth = element.clientWidth;\n var spaceBelow = window.innerHeight - position.pageY - renderer.lineHeight;\n var isAbove = true;\n if (position.pageY - labelHeight < 0 && position.pageY < spaceBelow) {\n isAbove = false;\n }\n element.style.maxHeight = (isAbove ? position.pageY : spaceBelow) - MARGIN + \"px\";\n element.style.top = isAbove ? \"\" : position.pageY + renderer.lineHeight + \"px\";\n element.style.bottom = isAbove ? window.innerHeight - position.pageY + \"px\" : \"\";\n element.style.left = Math.min(position.pageX, window.innerWidth - labelWidth - MARGIN) + \"px\";\n };\n HoverTooltip.prototype.addMarker = function (range, session) {\n if (this.marker) {\n this.$markerSession.removeMarker(this.marker);\n }\n this.$markerSession = session;\n this.marker = session && session.addMarker(range, \"ace_highlight-marker\", \"text\");\n };\n HoverTooltip.prototype.hide = function (e) {\n if (!e && document.activeElement == this.getElement())\n return;\n if (e && e.target && (e.type != \"keydown\" || e.ctrlKey || e.metaKey) && this.$element.contains(e.target))\n return;\n this.lastEvent = null;\n if (this.timeout)\n clearTimeout(this.timeout);\n this.timeout = null;\n this.addMarker(null);\n if (this.isOpen) {\n this.$removeCloseEvents();\n this.getElement().style.display = \"none\";\n this.isOpen = false;\n popupManager.removePopup(this);\n }\n };\n HoverTooltip.prototype.$registerCloseEvents = function () {\n window.addEventListener(\"keydown\", this.hide, true);\n window.addEventListener(\"wheel\", this.hide, true);\n window.addEventListener(\"mousedown\", this.hide, true);\n };\n HoverTooltip.prototype.$removeCloseEvents = function () {\n window.removeEventListener(\"keydown\", this.hide, true);\n window.removeEventListener(\"wheel\", this.hide, true);\n window.removeEventListener(\"mousedown\", this.hide, true);\n };\n HoverTooltip.prototype.onMouseOut = function (e) {\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n this.lastEvent = null;\n if (!this.isOpen)\n return;\n if (!e.relatedTarget || this.getElement().contains(e.relatedTarget))\n return;\n if (e && e.currentTarget.contains(e.relatedTarget))\n return;\n if (!e.relatedTarget.classList.contains(\"ace_content\"))\n this.hide();\n };\n return HoverTooltip;\n}(Tooltip));\nexports.HoverTooltip = HoverTooltip;\n\n});\n\nace.define(\"ace/mouse/default_gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/tooltip\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar dom = require(\"../lib/dom\");\nvar event = require(\"../lib/event\");\nvar Tooltip = require(\"../tooltip\").Tooltip;\nvar nls = require(\"../config\").nls;\nfunction GutterHandler(mouseHandler) {\n var editor = mouseHandler.editor;\n var gutter = editor.renderer.$gutterLayer;\n var tooltip = new GutterTooltip(editor);\n mouseHandler.editor.setDefaultHandler(\"guttermousedown\", function (e) {\n if (!editor.isFocused() || e.getButton() != 0)\n return;\n var gutterRegion = gutter.getRegion(e);\n if (gutterRegion == \"foldWidgets\")\n return;\n var row = e.getDocumentPosition().row;\n var selection = editor.session.selection;\n if (e.getShiftKey())\n selection.selectTo(row, 0);\n else {\n if (e.domEvent.detail == 2) {\n editor.selectAll();\n return e.preventDefault();\n }\n mouseHandler.$clickSelection = editor.selection.getLineRange(row);\n }\n mouseHandler.setState(\"selectByLines\");\n mouseHandler.captureMouse(e);\n return e.preventDefault();\n });\n var tooltipTimeout, mouseEvent;\n function showTooltip() {\n var row = mouseEvent.getDocumentPosition().row;\n var maxRow = editor.session.getLength();\n if (row == maxRow) {\n var screenRow = editor.renderer.pixelToScreenCoordinates(0, mouseEvent.y).row;\n var pos = mouseEvent.$pos;\n if (screenRow > editor.session.documentToScreenRow(pos.row, pos.column))\n return hideTooltip();\n }\n tooltip.showTooltip(row);\n if (!tooltip.isOpen)\n return;\n editor.on(\"mousewheel\", hideTooltip);\n if (mouseHandler.$tooltipFollowsMouse) {\n moveTooltip(mouseEvent);\n }\n else {\n var gutterRow = mouseEvent.getGutterRow();\n var gutterCell = gutter.$lines.get(gutterRow);\n if (gutterCell) {\n var gutterElement = gutterCell.element.querySelector(\".ace_gutter_annotation\");\n var rect = gutterElement.getBoundingClientRect();\n var style = tooltip.getElement().style;\n style.left = rect.right + \"px\";\n style.top = rect.bottom + \"px\";\n }\n else {\n moveTooltip(mouseEvent);\n }\n }\n }\n function hideTooltip() {\n if (tooltipTimeout)\n tooltipTimeout = clearTimeout(tooltipTimeout);\n if (tooltip.isOpen) {\n tooltip.hideTooltip();\n editor.off(\"mousewheel\", hideTooltip);\n }\n }\n function moveTooltip(e) {\n tooltip.setPosition(e.x, e.y);\n }\n mouseHandler.editor.setDefaultHandler(\"guttermousemove\", function (e) {\n var target = e.domEvent.target || e.domEvent.srcElement;\n if (dom.hasCssClass(target, \"ace_fold-widget\"))\n return hideTooltip();\n if (tooltip.isOpen && mouseHandler.$tooltipFollowsMouse)\n moveTooltip(e);\n mouseEvent = e;\n if (tooltipTimeout)\n return;\n tooltipTimeout = setTimeout(function () {\n tooltipTimeout = null;\n if (mouseEvent && !mouseHandler.isMousePressed)\n showTooltip();\n else\n hideTooltip();\n }, 50);\n });\n event.addListener(editor.renderer.$gutter, \"mouseout\", function (e) {\n mouseEvent = null;\n if (!tooltip.isOpen || tooltipTimeout)\n return;\n tooltipTimeout = setTimeout(function () {\n tooltipTimeout = null;\n hideTooltip();\n }, 50);\n }, editor);\n editor.on(\"changeSession\", hideTooltip);\n editor.on(\"input\", hideTooltip);\n}\nexports.GutterHandler = GutterHandler;\nvar GutterTooltip = /** @class */ (function (_super) {\n __extends(GutterTooltip, _super);\n function GutterTooltip(editor) {\n var _this = _super.call(this, editor.container) || this;\n _this.editor = editor;\n return _this;\n }\n GutterTooltip.prototype.setPosition = function (x, y) {\n var windowWidth = window.innerWidth || document.documentElement.clientWidth;\n var windowHeight = window.innerHeight || document.documentElement.clientHeight;\n var width = this.getWidth();\n var height = this.getHeight();\n x += 15;\n y += 15;\n if (x + width > windowWidth) {\n x -= (x + width) - windowWidth;\n }\n if (y + height > windowHeight) {\n y -= 20 + height;\n }\n Tooltip.prototype.setPosition.call(this, x, y);\n };\n Object.defineProperty(GutterTooltip, \"annotationLabels\", {\n get: function () {\n return {\n error: { singular: nls(\"error\"), plural: nls(\"errors\") },\n warning: { singular: nls(\"warning\"), plural: nls(\"warnings\") },\n info: { singular: nls(\"information message\"), plural: nls(\"information messages\") }\n };\n },\n enumerable: false,\n configurable: true\n });\n GutterTooltip.prototype.showTooltip = function (row) {\n var gutter = this.editor.renderer.$gutterLayer;\n var annotationsInRow = gutter.$annotations[row];\n var annotation;\n if (annotationsInRow)\n annotation = { text: Array.from(annotationsInRow.text), type: Array.from(annotationsInRow.type) };\n else\n annotation = { text: [], type: [] };\n var fold = gutter.session.getFoldLine(row);\n if (fold && gutter.$showFoldedAnnotations) {\n var annotationsInFold = { error: [], warning: [], info: [] };\n var mostSevereAnnotationInFoldType;\n for (var i = row + 1; i <= fold.end.row; i++) {\n if (!gutter.$annotations[i])\n continue;\n for (var j = 0; j < gutter.$annotations[i].text.length; j++) {\n var annotationType = gutter.$annotations[i].type[j];\n annotationsInFold[annotationType].push(gutter.$annotations[i].text[j]);\n if (annotationType === \"error\") {\n mostSevereAnnotationInFoldType = \"error_fold\";\n continue;\n }\n if (annotationType === \"warning\") {\n mostSevereAnnotationInFoldType = \"warning_fold\";\n continue;\n }\n }\n }\n if (mostSevereAnnotationInFoldType === \"error_fold\" || mostSevereAnnotationInFoldType === \"warning_fold\") {\n var summaryFoldedAnnotations = \"\".concat(GutterTooltip.annotationsToSummaryString(annotationsInFold), \" in folded code.\");\n annotation.text.push(summaryFoldedAnnotations);\n annotation.type.push(mostSevereAnnotationInFoldType);\n }\n }\n if (annotation.text.length === 0)\n return this.hide();\n var annotationMessages = { error: [], warning: [], info: [] };\n var iconClassName = gutter.$useSvgGutterIcons ? \"ace_icon_svg\" : \"ace_icon\";\n for (var i = 0; i < annotation.text.length; i++) {\n var line = \" \").concat(annotation.text[i]);\n annotationMessages[annotation.type[i].replace(\"_fold\", \"\")].push(line);\n }\n var tooltipContent = [].concat(annotationMessages.error, annotationMessages.warning, annotationMessages.info).join(\"
    \");\n this.setHtml(tooltipContent);\n this.$element.setAttribute(\"aria-live\", \"polite\");\n if (!this.isOpen) {\n this.setTheme(this.editor.renderer.theme);\n this.setClassName(\"ace_gutter-tooltip\");\n }\n this.show();\n this.editor._signal(\"showGutterTooltip\", this);\n };\n GutterTooltip.prototype.hideTooltip = function () {\n this.$element.removeAttribute(\"aria-live\");\n this.hide();\n this.editor._signal(\"hideGutterTooltip\", this);\n };\n GutterTooltip.annotationsToSummaryString = function (annotations) {\n var e_1, _a;\n var summary = [];\n var annotationTypes = ['error', 'warning', 'info'];\n try {\n for (var annotationTypes_1 = __values(annotationTypes), annotationTypes_1_1 = annotationTypes_1.next(); !annotationTypes_1_1.done; annotationTypes_1_1 = annotationTypes_1.next()) {\n var annotationType = annotationTypes_1_1.value;\n if (!annotations[annotationType].length)\n continue;\n var label = annotations[annotationType].length === 1 ? GutterTooltip.annotationLabels[annotationType].singular : GutterTooltip.annotationLabels[annotationType].plural;\n summary.push(\"\".concat(annotations[annotationType].length, \" \").concat(label));\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (annotationTypes_1_1 && !annotationTypes_1_1.done && (_a = annotationTypes_1.return)) _a.call(annotationTypes_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return summary.join(\", \");\n };\n return GutterTooltip;\n}(Tooltip));\nexports.GutterTooltip = GutterTooltip;\n\n});\n\nace.define(\"ace/mouse/mouse_event\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar MouseEvent = /** @class */ (function () {\n function MouseEvent(domEvent, editor) {\n this.domEvent = domEvent;\n this.editor = editor;\n this.x = this.clientX = domEvent.clientX;\n this.y = this.clientY = domEvent.clientY;\n this.$pos = null;\n this.$inSelection = null;\n this.propagationStopped = false;\n this.defaultPrevented = false;\n }\n MouseEvent.prototype.stopPropagation = function () {\n event.stopPropagation(this.domEvent);\n this.propagationStopped = true;\n };\n MouseEvent.prototype.preventDefault = function () {\n event.preventDefault(this.domEvent);\n this.defaultPrevented = true;\n };\n MouseEvent.prototype.stop = function () {\n this.stopPropagation();\n this.preventDefault();\n };\n MouseEvent.prototype.getDocumentPosition = function () {\n if (this.$pos)\n return this.$pos;\n this.$pos = this.editor.renderer.screenToTextCoordinates(this.clientX, this.clientY);\n return this.$pos;\n };\n MouseEvent.prototype.getGutterRow = function () {\n var documentRow = this.getDocumentPosition().row;\n var screenRow = this.editor.session.documentToScreenRow(documentRow, 0);\n var screenTopRow = this.editor.session.documentToScreenRow(this.editor.renderer.$gutterLayer.$lines.get(0).row, 0);\n return screenRow - screenTopRow;\n };\n MouseEvent.prototype.inSelection = function () {\n if (this.$inSelection !== null)\n return this.$inSelection;\n var editor = this.editor;\n var selectionRange = editor.getSelectionRange();\n if (selectionRange.isEmpty())\n this.$inSelection = false;\n else {\n var pos = this.getDocumentPosition();\n this.$inSelection = selectionRange.contains(pos.row, pos.column);\n }\n return this.$inSelection;\n };\n MouseEvent.prototype.getButton = function () {\n return event.getButton(this.domEvent);\n };\n MouseEvent.prototype.getShiftKey = function () {\n return this.domEvent.shiftKey;\n };\n MouseEvent.prototype.getAccelKey = function () {\n return useragent.isMac ? this.domEvent.metaKey : this.domEvent.ctrlKey;\n };\n return MouseEvent;\n}());\nexports.MouseEvent = MouseEvent;\n\n});\n\nace.define(\"ace/mouse/dragdrop_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar AUTOSCROLL_DELAY = 200;\nvar SCROLL_CURSOR_DELAY = 200;\nvar SCROLL_CURSOR_HYSTERESIS = 5;\nfunction DragdropHandler(mouseHandler) {\n var editor = mouseHandler.editor;\n var dragImage = dom.createElement(\"div\");\n dragImage.style.cssText = \"top:-100px;position:absolute;z-index:2147483647;opacity:0.5\";\n dragImage.textContent = \"\\xa0\";\n var exports = [\"dragWait\", \"dragWaitEnd\", \"startDrag\", \"dragReadyEnd\", \"onMouseDrag\"];\n exports.forEach(function (x) {\n mouseHandler[x] = this[x];\n }, this);\n editor.on(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n var mouseTarget = editor.container;\n var dragSelectionMarker, x, y;\n var timerId, range;\n var dragCursor, counter = 0;\n var dragOperation;\n var isInternal;\n var autoScrollStartTime;\n var cursorMovedTime;\n var cursorPointOnCaretMoved;\n this.onDragStart = function (e) {\n if (this.cancelDrag || !mouseTarget.draggable) {\n var self = this;\n setTimeout(function () {\n self.startSelect();\n self.captureMouse(e);\n }, 0);\n return e.preventDefault();\n }\n range = editor.getSelectionRange();\n var dataTransfer = e.dataTransfer;\n dataTransfer.effectAllowed = editor.getReadOnly() ? \"copy\" : \"copyMove\";\n editor.container.appendChild(dragImage);\n dataTransfer.setDragImage && dataTransfer.setDragImage(dragImage, 0, 0);\n setTimeout(function () {\n editor.container.removeChild(dragImage);\n });\n dataTransfer.clearData();\n dataTransfer.setData(\"Text\", editor.session.getTextRange());\n isInternal = true;\n this.setState(\"drag\");\n };\n this.onDragEnd = function (e) {\n mouseTarget.draggable = false;\n isInternal = false;\n this.setState(null);\n if (!editor.getReadOnly()) {\n var dropEffect = e.dataTransfer.dropEffect;\n if (!dragOperation && dropEffect == \"move\")\n editor.session.remove(editor.getSelectionRange());\n editor.$resetCursorStyle();\n }\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n };\n this.onDragEnter = function (e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker)\n addDragMarker();\n counter++;\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n this.onDragOver = function (e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker) {\n addDragMarker();\n counter++;\n }\n if (onMouseMoveTimer !== null)\n onMouseMoveTimer = null;\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n this.onDragLeave = function (e) {\n counter--;\n if (counter <= 0 && dragSelectionMarker) {\n clearDragMarker();\n dragOperation = null;\n return event.preventDefault(e);\n }\n };\n this.onDrop = function (e) {\n if (!dragCursor)\n return;\n var dataTransfer = e.dataTransfer;\n if (isInternal) {\n switch (dragOperation) {\n case \"move\":\n if (range.contains(dragCursor.row, dragCursor.column)) {\n range = {\n start: dragCursor,\n end: dragCursor\n };\n }\n else {\n range = editor.moveText(range, dragCursor);\n }\n break;\n case \"copy\":\n range = editor.moveText(range, dragCursor, true);\n break;\n }\n }\n else {\n var dropData = dataTransfer.getData('Text');\n range = {\n start: dragCursor,\n end: editor.session.insert(dragCursor, dropData)\n };\n editor.focus();\n dragOperation = null;\n }\n clearDragMarker();\n return event.preventDefault(e);\n };\n event.addListener(mouseTarget, \"dragstart\", this.onDragStart.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragend\", this.onDragEnd.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragenter\", this.onDragEnter.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragover\", this.onDragOver.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragleave\", this.onDragLeave.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"drop\", this.onDrop.bind(mouseHandler), editor);\n function scrollCursorIntoView(cursor, prevCursor) {\n var now = Date.now();\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n var hMovement = !prevCursor || cursor.column != prevCursor.column;\n if (!cursorMovedTime || vMovement || hMovement) {\n editor.moveCursorToPosition(cursor);\n cursorMovedTime = now;\n cursorPointOnCaretMoved = { x: x, y: y };\n }\n else {\n var distance = calcDistance(cursorPointOnCaretMoved.x, cursorPointOnCaretMoved.y, x, y);\n if (distance > SCROLL_CURSOR_HYSTERESIS) {\n cursorMovedTime = null;\n }\n else if (now - cursorMovedTime >= SCROLL_CURSOR_DELAY) {\n editor.renderer.scrollCursorIntoView();\n cursorMovedTime = null;\n }\n }\n }\n function autoScroll(cursor, prevCursor) {\n var now = Date.now();\n var lineHeight = editor.renderer.layerConfig.lineHeight;\n var characterWidth = editor.renderer.layerConfig.characterWidth;\n var editorRect = editor.renderer.scroller.getBoundingClientRect();\n var offsets = {\n x: {\n left: x - editorRect.left,\n right: editorRect.right - x\n },\n y: {\n top: y - editorRect.top,\n bottom: editorRect.bottom - y\n }\n };\n var nearestXOffset = Math.min(offsets.x.left, offsets.x.right);\n var nearestYOffset = Math.min(offsets.y.top, offsets.y.bottom);\n var scrollCursor = { row: cursor.row, column: cursor.column };\n if (nearestXOffset / characterWidth <= 2) {\n scrollCursor.column += (offsets.x.left < offsets.x.right ? -3 : +2);\n }\n if (nearestYOffset / lineHeight <= 1) {\n scrollCursor.row += (offsets.y.top < offsets.y.bottom ? -1 : +1);\n }\n var vScroll = cursor.row != scrollCursor.row;\n var hScroll = cursor.column != scrollCursor.column;\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n if (vScroll || (hScroll && !vMovement)) {\n if (!autoScrollStartTime)\n autoScrollStartTime = now;\n else if (now - autoScrollStartTime >= AUTOSCROLL_DELAY)\n editor.renderer.scrollCursorIntoView(scrollCursor);\n }\n else {\n autoScrollStartTime = null;\n }\n }\n function onDragInterval() {\n var prevCursor = dragCursor;\n dragCursor = editor.renderer.screenToTextCoordinates(x, y);\n scrollCursorIntoView(dragCursor, prevCursor);\n autoScroll(dragCursor, prevCursor);\n }\n function addDragMarker() {\n range = editor.selection.toOrientedRange();\n dragSelectionMarker = editor.session.addMarker(range, \"ace_selection\", editor.getSelectionStyle());\n editor.clearSelection();\n if (editor.isFocused())\n editor.renderer.$cursorLayer.setBlinking(false);\n clearInterval(timerId);\n onDragInterval();\n timerId = setInterval(onDragInterval, 20);\n counter = 0;\n event.addListener(document, \"mousemove\", onMouseMove);\n }\n function clearDragMarker() {\n clearInterval(timerId);\n editor.session.removeMarker(dragSelectionMarker);\n dragSelectionMarker = null;\n editor.selection.fromOrientedRange(range);\n if (editor.isFocused() && !isInternal)\n editor.$resetCursorStyle();\n range = null;\n dragCursor = null;\n counter = 0;\n autoScrollStartTime = null;\n cursorMovedTime = null;\n event.removeListener(document, \"mousemove\", onMouseMove);\n }\n var onMouseMoveTimer = null;\n function onMouseMove() {\n if (onMouseMoveTimer == null) {\n onMouseMoveTimer = setTimeout(function () {\n if (onMouseMoveTimer != null && dragSelectionMarker)\n clearDragMarker();\n }, 20);\n }\n }\n function canAccept(dataTransfer) {\n var types = dataTransfer.types;\n return !types || Array.prototype.some.call(types, function (type) {\n return type == 'text/plain' || type == 'Text';\n });\n }\n function getDropEffect(e) {\n var copyAllowed = ['copy', 'copymove', 'all', 'uninitialized'];\n var moveAllowed = ['move', 'copymove', 'linkmove', 'all', 'uninitialized'];\n var copyModifierState = useragent.isMac ? e.altKey : e.ctrlKey;\n var effectAllowed = \"uninitialized\";\n try {\n effectAllowed = e.dataTransfer.effectAllowed.toLowerCase();\n }\n catch (e) { }\n var dropEffect = \"none\";\n if (copyModifierState && copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n else if (moveAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"move\";\n else if (copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n return dropEffect;\n }\n}\n(function () {\n this.dragWait = function () {\n var interval = Date.now() - this.mousedownEvent.time;\n if (interval > this.editor.getDragDelay())\n this.startDrag();\n };\n this.dragWaitEnd = function () {\n var target = this.editor.container;\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n this.selectEnd();\n };\n this.dragReadyEnd = function (e) {\n this.editor.$resetCursorStyle();\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n this.dragWaitEnd();\n };\n this.startDrag = function () {\n this.cancelDrag = false;\n var editor = this.editor;\n var target = editor.container;\n target.draggable = true;\n editor.renderer.$cursorLayer.setBlinking(false);\n editor.setStyle(\"ace_dragging\");\n var cursorStyle = useragent.isWin ? \"default\" : \"move\";\n editor.renderer.setCursorStyle(cursorStyle);\n this.setState(\"dragReady\");\n };\n this.onMouseDrag = function (e) {\n var target = this.editor.container;\n if (useragent.isIE && this.state == \"dragReady\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 3)\n target.dragDrop();\n }\n if (this.state === \"dragWait\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 0) {\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n }\n }\n };\n this.onMouseDown = function (e) {\n if (!this.$dragEnabled)\n return;\n this.mousedownEvent = e;\n var editor = this.editor;\n var inSelection = e.inSelection();\n var button = e.getButton();\n var clickCount = e.domEvent.detail || 1;\n if (clickCount === 1 && button === 0 && inSelection) {\n if (e.editor.inMultiSelectMode && (e.getAccelKey() || e.getShiftKey()))\n return;\n this.mousedownEvent.time = Date.now();\n var eventTarget = e.domEvent.target || e.domEvent.srcElement;\n if (\"unselectable\" in eventTarget)\n eventTarget.unselectable = \"on\";\n if (editor.getDragDelay()) {\n if (useragent.isWebKit) {\n this.cancelDrag = true;\n var mouseTarget = editor.container;\n mouseTarget.draggable = true;\n }\n this.setState(\"dragWait\");\n }\n else {\n this.startDrag();\n }\n this.captureMouse(e, this.onMouseDrag.bind(this));\n e.defaultPrevented = true;\n }\n };\n}).call(DragdropHandler.prototype);\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\nexports.DragdropHandler = DragdropHandler;\n\n});\n\nace.define(\"ace/mouse/touch_handler\",[\"require\",\"exports\",\"module\",\"ace/mouse/mouse_event\",\"ace/lib/event\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar MouseEvent = require(\"./mouse_event\").MouseEvent;\nvar event = require(\"../lib/event\");\nvar dom = require(\"../lib/dom\");\nexports.addTouchListeners = function (el, editor) {\n var mode = \"scroll\";\n var startX;\n var startY;\n var touchStartT;\n var lastT;\n var longTouchTimer;\n var animationTimer;\n var animationSteps = 0;\n var pos;\n var clickCount = 0;\n var vX = 0;\n var vY = 0;\n var pressed;\n var contextMenu;\n function createContextMenu() {\n var clipboard = window.navigator && window.navigator.clipboard;\n var isOpen = false;\n var updateMenu = function () {\n var selected = editor.getCopyText();\n var hasUndo = editor.session.getUndoManager().hasUndo();\n contextMenu.replaceChild(dom.buildDom(isOpen ? [\"span\",\n !selected && [\"span\", { class: \"ace_mobile-button\", action: \"selectall\" }, \"Select All\"],\n selected && [\"span\", { class: \"ace_mobile-button\", action: \"copy\" }, \"Copy\"],\n selected && [\"span\", { class: \"ace_mobile-button\", action: \"cut\" }, \"Cut\"],\n clipboard && [\"span\", { class: \"ace_mobile-button\", action: \"paste\" }, \"Paste\"],\n hasUndo && [\"span\", { class: \"ace_mobile-button\", action: \"undo\" }, \"Undo\"],\n [\"span\", { class: \"ace_mobile-button\", action: \"find\" }, \"Find\"],\n [\"span\", { class: \"ace_mobile-button\", action: \"openCommandPalette\" }, \"Palette\"]\n ] : [\"span\"]), contextMenu.firstChild);\n };\n var handleClick = function (e) {\n var action = e.target.getAttribute(\"action\");\n if (action == \"more\" || !isOpen) {\n isOpen = !isOpen;\n return updateMenu();\n }\n if (action == \"paste\") {\n clipboard.readText().then(function (text) {\n editor.execCommand(action, text);\n });\n }\n else if (action) {\n if (action == \"cut\" || action == \"copy\") {\n if (clipboard)\n clipboard.writeText(editor.getCopyText());\n else\n document.execCommand(\"copy\");\n }\n editor.execCommand(action);\n }\n contextMenu.firstChild.style.display = \"none\";\n isOpen = false;\n if (action != \"openCommandPalette\")\n editor.focus();\n };\n contextMenu = dom.buildDom([\"div\",\n {\n class: \"ace_mobile-menu\",\n ontouchstart: function (e) {\n mode = \"menu\";\n e.stopPropagation();\n e.preventDefault();\n editor.textInput.focus();\n },\n ontouchend: function (e) {\n e.stopPropagation();\n e.preventDefault();\n handleClick(e);\n },\n onclick: handleClick\n },\n [\"span\"],\n [\"span\", { class: \"ace_mobile-button\", action: \"more\" }, \"...\"]\n ], editor.container);\n }\n function showContextMenu() {\n if (!contextMenu)\n createContextMenu();\n var cursor = editor.selection.cursor;\n var pagePos = editor.renderer.textToScreenCoordinates(cursor.row, cursor.column);\n var leftOffset = editor.renderer.textToScreenCoordinates(0, 0).pageX;\n var scrollLeft = editor.renderer.scrollLeft;\n var rect = editor.container.getBoundingClientRect();\n contextMenu.style.top = pagePos.pageY - rect.top - 3 + \"px\";\n if (pagePos.pageX - rect.left < rect.width - 70) {\n contextMenu.style.left = \"\";\n contextMenu.style.right = \"10px\";\n }\n else {\n contextMenu.style.right = \"\";\n contextMenu.style.left = leftOffset + scrollLeft - rect.left + \"px\";\n }\n contextMenu.style.display = \"\";\n contextMenu.firstChild.style.display = \"none\";\n editor.on(\"input\", hideContextMenu);\n }\n function hideContextMenu(e) {\n if (contextMenu)\n contextMenu.style.display = \"none\";\n editor.off(\"input\", hideContextMenu);\n }\n function handleLongTap() {\n longTouchTimer = null;\n clearTimeout(longTouchTimer);\n var range = editor.selection.getRange();\n var inSelection = range.contains(pos.row, pos.column);\n if (range.isEmpty() || !inSelection) {\n editor.selection.moveToPosition(pos);\n editor.selection.selectWord();\n }\n mode = \"wait\";\n showContextMenu();\n }\n function switchToSelectionMode() {\n longTouchTimer = null;\n clearTimeout(longTouchTimer);\n editor.selection.moveToPosition(pos);\n var range = clickCount >= 2\n ? editor.selection.getLineRange(pos.row)\n : editor.session.getBracketRange(pos);\n if (range && !range.isEmpty()) {\n editor.selection.setRange(range);\n }\n else {\n editor.selection.selectWord();\n }\n mode = \"wait\";\n }\n event.addListener(el, \"contextmenu\", function (e) {\n if (!pressed)\n return;\n var textarea = editor.textInput.getElement();\n textarea.focus();\n }, editor);\n event.addListener(el, \"touchstart\", function (e) {\n var touches = e.touches;\n if (longTouchTimer || touches.length > 1) {\n clearTimeout(longTouchTimer);\n longTouchTimer = null;\n touchStartT = -1;\n mode = \"zoom\";\n return;\n }\n pressed = editor.$mouseHandler.isMousePressed = true;\n var h = editor.renderer.layerConfig.lineHeight;\n var w = editor.renderer.layerConfig.lineHeight;\n var t = e.timeStamp;\n lastT = t;\n var touchObj = touches[0];\n var x = touchObj.clientX;\n var y = touchObj.clientY;\n if (Math.abs(startX - x) + Math.abs(startY - y) > h)\n touchStartT = -1;\n startX = e.clientX = x;\n startY = e.clientY = y;\n vX = vY = 0;\n var ev = new MouseEvent(e, editor);\n pos = ev.getDocumentPosition();\n if (t - touchStartT < 500 && touches.length == 1 && !animationSteps) {\n clickCount++;\n e.preventDefault();\n e.button = 0;\n switchToSelectionMode();\n }\n else {\n clickCount = 0;\n var cursor = editor.selection.cursor;\n var anchor = editor.selection.isEmpty() ? cursor : editor.selection.anchor;\n var cursorPos = editor.renderer.$cursorLayer.getPixelPosition(cursor, true);\n var anchorPos = editor.renderer.$cursorLayer.getPixelPosition(anchor, true);\n var rect = editor.renderer.scroller.getBoundingClientRect();\n var offsetTop = editor.renderer.layerConfig.offset;\n var offsetLeft = editor.renderer.scrollLeft;\n var weightedDistance = function (x, y) {\n x = x / w;\n y = y / h - 0.75;\n return x * x + y * y;\n };\n if (e.clientX < rect.left) {\n mode = \"zoom\";\n return;\n }\n var diff1 = weightedDistance(e.clientX - rect.left - cursorPos.left + offsetLeft, e.clientY - rect.top - cursorPos.top + offsetTop);\n var diff2 = weightedDistance(e.clientX - rect.left - anchorPos.left + offsetLeft, e.clientY - rect.top - anchorPos.top + offsetTop);\n if (diff1 < 3.5 && diff2 < 3.5)\n mode = diff1 > diff2 ? \"cursor\" : \"anchor\";\n if (diff2 < 3.5)\n mode = \"anchor\";\n else if (diff1 < 3.5)\n mode = \"cursor\";\n else\n mode = \"scroll\";\n longTouchTimer = setTimeout(handleLongTap, 450);\n }\n touchStartT = t;\n }, editor);\n event.addListener(el, \"touchend\", function (e) {\n pressed = editor.$mouseHandler.isMousePressed = false;\n if (animationTimer)\n clearInterval(animationTimer);\n if (mode == \"zoom\") {\n mode = \"\";\n animationSteps = 0;\n }\n else if (longTouchTimer) {\n editor.selection.moveToPosition(pos);\n animationSteps = 0;\n showContextMenu();\n }\n else if (mode == \"scroll\") {\n animate();\n hideContextMenu();\n }\n else {\n showContextMenu();\n }\n clearTimeout(longTouchTimer);\n longTouchTimer = null;\n }, editor);\n event.addListener(el, \"touchmove\", function (e) {\n if (longTouchTimer) {\n clearTimeout(longTouchTimer);\n longTouchTimer = null;\n }\n var touches = e.touches;\n if (touches.length > 1 || mode == \"zoom\")\n return;\n var touchObj = touches[0];\n var wheelX = startX - touchObj.clientX;\n var wheelY = startY - touchObj.clientY;\n if (mode == \"wait\") {\n if (wheelX * wheelX + wheelY * wheelY > 4)\n mode = \"cursor\";\n else\n return e.preventDefault();\n }\n startX = touchObj.clientX;\n startY = touchObj.clientY;\n e.clientX = touchObj.clientX;\n e.clientY = touchObj.clientY;\n var t = e.timeStamp;\n var dt = t - lastT;\n lastT = t;\n if (mode == \"scroll\") {\n var mouseEvent = new MouseEvent(e, editor);\n mouseEvent.speed = 1;\n mouseEvent.wheelX = wheelX;\n mouseEvent.wheelY = wheelY;\n if (10 * Math.abs(wheelX) < Math.abs(wheelY))\n wheelX = 0;\n if (10 * Math.abs(wheelY) < Math.abs(wheelX))\n wheelY = 0;\n if (dt != 0) {\n vX = wheelX / dt;\n vY = wheelY / dt;\n }\n editor._emit(\"mousewheel\", mouseEvent);\n if (!mouseEvent.propagationStopped) {\n vX = vY = 0;\n }\n }\n else {\n var ev = new MouseEvent(e, editor);\n var pos = ev.getDocumentPosition();\n if (mode == \"cursor\")\n editor.selection.moveCursorToPosition(pos);\n else if (mode == \"anchor\")\n editor.selection.setSelectionAnchor(pos.row, pos.column);\n editor.renderer.scrollCursorIntoView(pos);\n e.preventDefault();\n }\n }, editor);\n function animate() {\n animationSteps += 60;\n animationTimer = setInterval(function () {\n if (animationSteps-- <= 0) {\n clearInterval(animationTimer);\n animationTimer = null;\n }\n if (Math.abs(vX) < 0.01)\n vX = 0;\n if (Math.abs(vY) < 0.01)\n vY = 0;\n if (animationSteps < 20)\n vX = 0.9 * vX;\n if (animationSteps < 20)\n vY = 0.9 * vY;\n var oldScrollTop = editor.session.getScrollTop();\n editor.renderer.scrollBy(10 * vX, 10 * vY);\n if (oldScrollTop == editor.session.getScrollTop())\n animationSteps = 0;\n }, 10);\n }\n};\n\n});\n\nace.define(\"ace/mouse/mouse_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/mouse/default_handlers\",\"ace/mouse/default_gutter_handler\",\"ace/mouse/mouse_event\",\"ace/mouse/dragdrop_handler\",\"ace/mouse/touch_handler\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar DefaultHandlers = require(\"./default_handlers\").DefaultHandlers;\nvar DefaultGutterHandler = require(\"./default_gutter_handler\").GutterHandler;\nvar MouseEvent = require(\"./mouse_event\").MouseEvent;\nvar DragdropHandler = require(\"./dragdrop_handler\").DragdropHandler;\nvar addTouchListeners = require(\"./touch_handler\").addTouchListeners;\nvar config = require(\"../config\");\nvar MouseHandler = /** @class */ (function () {\n function MouseHandler(editor) {\n var _self = this;\n this.editor = editor;\n new DefaultHandlers(this);\n new DefaultGutterHandler(this);\n new DragdropHandler(this);\n var focusEditor = function (e) {\n var windowBlurred = !document.hasFocus || !document.hasFocus()\n || !editor.isFocused() && document.activeElement == (editor.textInput && editor.textInput.getElement());\n if (windowBlurred)\n window.focus();\n editor.focus();\n setTimeout(function () {\n if (!editor.isFocused())\n editor.focus();\n });\n };\n var mouseTarget = editor.renderer.getMouseEventTarget();\n event.addListener(mouseTarget, \"click\", this.onMouseEvent.bind(this, \"click\"), editor);\n event.addListener(mouseTarget, \"mousemove\", this.onMouseMove.bind(this, \"mousemove\"), editor);\n event.addMultiMouseDownListener([\n mouseTarget,\n editor.renderer.scrollBarV && editor.renderer.scrollBarV.inner,\n editor.renderer.scrollBarH && editor.renderer.scrollBarH.inner,\n editor.textInput && editor.textInput.getElement()\n ].filter(Boolean), [400, 300, 250], this, \"onMouseEvent\", editor);\n event.addMouseWheelListener(editor.container, this.onMouseWheel.bind(this, \"mousewheel\"), editor);\n addTouchListeners(editor.container, editor);\n var gutterEl = editor.renderer.$gutter;\n event.addListener(gutterEl, \"mousedown\", this.onMouseEvent.bind(this, \"guttermousedown\"), editor);\n event.addListener(gutterEl, \"click\", this.onMouseEvent.bind(this, \"gutterclick\"), editor);\n event.addListener(gutterEl, \"dblclick\", this.onMouseEvent.bind(this, \"gutterdblclick\"), editor);\n event.addListener(gutterEl, \"mousemove\", this.onMouseEvent.bind(this, \"guttermousemove\"), editor);\n event.addListener(mouseTarget, \"mousedown\", focusEditor, editor);\n event.addListener(gutterEl, \"mousedown\", focusEditor, editor);\n if (useragent.isIE && editor.renderer.scrollBarV) {\n event.addListener(editor.renderer.scrollBarV.element, \"mousedown\", focusEditor, editor);\n event.addListener(editor.renderer.scrollBarH.element, \"mousedown\", focusEditor, editor);\n }\n editor.on(\"mousemove\", function (e) {\n if (_self.state || _self.$dragDelay || !_self.$dragEnabled)\n return;\n var character = editor.renderer.screenToTextCoordinates(e.x, e.y);\n var range = editor.session.selection.getRange();\n var renderer = editor.renderer;\n if (!range.isEmpty() && range.insideStart(character.row, character.column)) {\n renderer.setCursorStyle(\"default\");\n }\n else {\n renderer.setCursorStyle(\"\");\n }\n }, editor);\n }\n MouseHandler.prototype.onMouseEvent = function (name, e) {\n if (!this.editor.session)\n return;\n this.editor._emit(name, new MouseEvent(e, this.editor));\n };\n MouseHandler.prototype.onMouseMove = function (name, e) {\n var listeners = this.editor._eventRegistry && this.editor._eventRegistry.mousemove;\n if (!listeners || !listeners.length)\n return;\n this.editor._emit(name, new MouseEvent(e, this.editor));\n };\n MouseHandler.prototype.onMouseWheel = function (name, e) {\n var mouseEvent = new MouseEvent(e, this.editor);\n mouseEvent.speed = this.$scrollSpeed * 2;\n mouseEvent.wheelX = e.wheelX;\n mouseEvent.wheelY = e.wheelY;\n this.editor._emit(name, mouseEvent);\n };\n MouseHandler.prototype.setState = function (state) {\n this.state = state;\n };\n MouseHandler.prototype.captureMouse = function (ev, mouseMoveHandler) {\n this.x = ev.x;\n this.y = ev.y;\n this.isMousePressed = true;\n var editor = this.editor;\n var renderer = this.editor.renderer;\n renderer.$isMousePressed = true;\n var self = this;\n var onMouseMove = function (e) {\n if (!e)\n return;\n if (useragent.isWebKit && !e.which && self.releaseMouse)\n return self.releaseMouse();\n self.x = e.clientX;\n self.y = e.clientY;\n mouseMoveHandler && mouseMoveHandler(e);\n self.mouseEvent = new MouseEvent(e, self.editor);\n self.$mouseMoved = true;\n };\n var onCaptureEnd = function (e) {\n editor.off(\"beforeEndOperation\", onOperationEnd);\n clearInterval(timerId);\n if (editor.session)\n onCaptureInterval();\n self[self.state + \"End\"] && self[self.state + \"End\"](e);\n self.state = \"\";\n self.isMousePressed = renderer.$isMousePressed = false;\n if (renderer.$keepTextAreaAtCursor)\n renderer.$moveTextAreaToCursor();\n self.$onCaptureMouseMove = self.releaseMouse = null;\n e && self.onMouseEvent(\"mouseup\", e);\n editor.endOperation();\n };\n var onCaptureInterval = function () {\n self[self.state] && self[self.state]();\n self.$mouseMoved = false;\n };\n if (useragent.isOldIE && ev.domEvent.type == \"dblclick\") {\n return setTimeout(function () { onCaptureEnd(ev); });\n }\n var onOperationEnd = function (e) {\n if (!self.releaseMouse)\n return;\n if (editor.curOp.command.name && editor.curOp.selectionChanged) {\n self[self.state + \"End\"] && self[self.state + \"End\"]();\n self.state = \"\";\n self.releaseMouse();\n }\n };\n editor.on(\"beforeEndOperation\", onOperationEnd);\n editor.startOperation({ command: { name: \"mouse\" } });\n self.$onCaptureMouseMove = onMouseMove;\n self.releaseMouse = event.capture(this.editor.container, onMouseMove, onCaptureEnd);\n var timerId = setInterval(onCaptureInterval, 20);\n };\n MouseHandler.prototype.cancelContextMenu = function () {\n var stop = function (e) {\n if (e && e.domEvent && e.domEvent.type != \"contextmenu\")\n return;\n this.editor.off(\"nativecontextmenu\", stop);\n if (e && e.domEvent)\n event.stopEvent(e.domEvent);\n }.bind(this);\n setTimeout(stop, 10);\n this.editor.on(\"nativecontextmenu\", stop);\n };\n MouseHandler.prototype.destroy = function () {\n if (this.releaseMouse)\n this.releaseMouse();\n };\n return MouseHandler;\n}());\nMouseHandler.prototype.releaseMouse = null;\nconfig.defineOptions(MouseHandler.prototype, \"mouseHandler\", {\n scrollSpeed: { initialValue: 2 },\n dragDelay: { initialValue: (useragent.isMac ? 150 : 0) },\n dragEnabled: { initialValue: true },\n focusTimeout: { initialValue: 0 },\n tooltipFollowsMouse: { initialValue: true }\n});\nexports.MouseHandler = MouseHandler;\n\n});\n\nace.define(\"ace/mouse/fold_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar FoldHandler = /** @class */ (function () {\n function FoldHandler(editor) {\n editor.on(\"click\", function (e) {\n var position = e.getDocumentPosition();\n var session = editor.session;\n var fold = session.getFoldAt(position.row, position.column, 1);\n if (fold) {\n if (e.getAccelKey())\n session.removeFold(fold);\n else\n session.expandFold(fold);\n e.stop();\n }\n var target = e.domEvent && e.domEvent.target;\n if (target && dom.hasCssClass(target, \"ace_inline_button\")) {\n if (dom.hasCssClass(target, \"ace_toggle_wrap\")) {\n session.setOption(\"wrap\", !session.getUseWrapMode());\n editor.renderer.scrollCursorIntoView();\n }\n }\n });\n editor.on(\"gutterclick\", function (e) {\n var gutterRegion = editor.renderer.$gutterLayer.getRegion(e);\n if (gutterRegion == \"foldWidgets\") {\n var row = e.getDocumentPosition().row;\n var session = editor.session;\n if (session.foldWidgets && session.foldWidgets[row])\n editor.session.onFoldWidgetClick(row, e);\n if (!editor.isFocused())\n editor.focus();\n e.stop();\n }\n });\n editor.on(\"gutterdblclick\", function (e) {\n var gutterRegion = editor.renderer.$gutterLayer.getRegion(e);\n if (gutterRegion == \"foldWidgets\") {\n var row = e.getDocumentPosition().row;\n var session = editor.session;\n var data = session.getParentFoldRangeData(row, true);\n var range = data.range || data.firstRange;\n if (range) {\n row = range.start.row;\n var fold = session.getFoldAt(row, session.getLine(row).length, 1);\n if (fold) {\n session.removeFold(fold);\n }\n else {\n session.addFold(\"...\", range);\n editor.renderer.scrollCursorIntoView({ row: range.start.row, column: 0 });\n }\n }\n e.stop();\n }\n });\n }\n return FoldHandler;\n}());\nexports.FoldHandler = FoldHandler;\n\n});\n\nace.define(\"ace/keyboard/keybinding\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/event\"], function(require, exports, module){\"use strict\";\nvar keyUtil = require(\"../lib/keys\");\nvar event = require(\"../lib/event\");\nvar KeyBinding = /** @class */ (function () {\n function KeyBinding(editor) {\n this.$editor = editor;\n this.$data = { editor: editor };\n this.$handlers = [];\n this.setDefaultHandler(editor.commands);\n }\n KeyBinding.prototype.setDefaultHandler = function (kb) {\n this.removeKeyboardHandler(this.$defaultHandler);\n this.$defaultHandler = kb;\n this.addKeyboardHandler(kb, 0);\n };\n KeyBinding.prototype.setKeyboardHandler = function (kb) {\n var h = this.$handlers;\n if (h[h.length - 1] == kb)\n return;\n while (h[h.length - 1] && h[h.length - 1] != this.$defaultHandler)\n this.removeKeyboardHandler(h[h.length - 1]);\n this.addKeyboardHandler(kb, 1);\n };\n KeyBinding.prototype.addKeyboardHandler = function (kb, pos) {\n if (!kb)\n return;\n if (typeof kb == \"function\" && !kb.handleKeyboard)\n kb.handleKeyboard = kb;\n var i = this.$handlers.indexOf(kb);\n if (i != -1)\n this.$handlers.splice(i, 1);\n if (pos == undefined)\n this.$handlers.push(kb);\n else\n this.$handlers.splice(pos, 0, kb);\n if (i == -1 && kb.attach)\n kb.attach(this.$editor);\n };\n KeyBinding.prototype.removeKeyboardHandler = function (kb) {\n var i = this.$handlers.indexOf(kb);\n if (i == -1)\n return false;\n this.$handlers.splice(i, 1);\n kb.detach && kb.detach(this.$editor);\n return true;\n };\n KeyBinding.prototype.getKeyboardHandler = function () {\n return this.$handlers[this.$handlers.length - 1];\n };\n KeyBinding.prototype.getStatusText = function () {\n var data = this.$data;\n var editor = data.editor;\n return this.$handlers.map(function (h) {\n return h.getStatusText && h.getStatusText(editor, data) || \"\";\n }).filter(Boolean).join(\" \");\n };\n KeyBinding.prototype.$callKeyboardHandlers = function (hashId, keyString, keyCode, e) {\n var toExecute;\n var success = false;\n var commands = this.$editor.commands;\n for (var i = this.$handlers.length; i--;) {\n toExecute = this.$handlers[i].handleKeyboard(this.$data, hashId, keyString, keyCode, e);\n if (!toExecute || !toExecute.command)\n continue;\n if (toExecute.command == \"null\") {\n success = true;\n }\n else {\n success = commands.exec(toExecute.command, this.$editor, toExecute.args, e);\n }\n if (success && e && hashId != -1 &&\n toExecute.passEvent != true && toExecute.command.passEvent != true) {\n event.stopEvent(e);\n }\n if (success)\n break;\n }\n if (!success && hashId == -1) {\n toExecute = { command: \"insertstring\" };\n success = commands.exec(\"insertstring\", this.$editor, keyString);\n }\n if (success && this.$editor._signal)\n this.$editor._signal(\"keyboardActivity\", toExecute);\n return success;\n };\n KeyBinding.prototype.onCommandKey = function (e, hashId, keyCode) {\n var keyString = keyUtil.keyCodeToString(keyCode);\n return this.$callKeyboardHandlers(hashId, keyString, keyCode, e);\n };\n KeyBinding.prototype.onTextInput = function (text) {\n return this.$callKeyboardHandlers(-1, text);\n };\n return KeyBinding;\n}());\nexports.KeyBinding = KeyBinding;\n\n});\n\nace.define(\"ace/lib/bidiutil\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar ArabicAlefBetIntervalsBegine = ['\\u0621', '\\u0641'];\nvar ArabicAlefBetIntervalsEnd = ['\\u063A', '\\u064a'];\nvar dir = 0, hiLevel = 0;\nvar lastArabic = false, hasUBAT_AL = false, hasUBAT_B = false, hasUBAT_S = false, hasBlockSep = false, hasSegSep = false;\nvar impTab_LTR = [ [0, 3, 0, 1, 0, 0, 0], [0, 3, 0, 1, 2, 2, 0], [0, 3, 0, 0x11, 2, 0, 1], [0, 3, 5, 5, 4, 1, 0], [0, 3, 0x15, 0x15, 4, 0, 1], [0, 3, 5, 5, 4, 2, 0]\n];\nvar impTab_RTL = [ [2, 0, 1, 1, 0, 1, 0], [2, 0, 1, 1, 0, 2, 0], [2, 0, 2, 1, 3, 2, 0], [2, 0, 2, 0x21, 3, 1, 1]\n];\nvar LTR = 0, RTL = 1;\nvar L = 0;\nvar R = 1;\nvar EN = 2;\nvar AN = 3;\nvar ON = 4;\nvar B = 5;\nvar S = 6;\nvar AL = 7;\nvar WS = 8;\nvar CS = 9;\nvar ES = 10;\nvar ET = 11;\nvar NSM = 12;\nvar LRE = 13;\nvar RLE = 14;\nvar PDF = 15;\nvar LRO = 16;\nvar RLO = 17;\nvar BN = 18;\nvar UnicodeTBL00 = [\n BN, BN, BN, BN, BN, BN, BN, BN, BN, S, B, S, WS, B, BN, BN,\n BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, B, B, B, S,\n WS, ON, ON, ET, ET, ET, ON, ON, ON, ON, ON, ES, CS, ES, CS, CS,\n EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, CS, ON, ON, ON, ON, ON,\n ON, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L,\n L, L, L, L, L, L, L, L, L, L, L, ON, ON, ON, ON, ON,\n ON, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L,\n L, L, L, L, L, L, L, L, L, L, L, ON, ON, ON, ON, BN,\n BN, BN, BN, BN, BN, B, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN,\n BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN,\n CS, ON, ET, ET, ET, ET, ON, ON, ON, ON, L, ON, ON, BN, ON, ON,\n ET, ET, EN, EN, ON, L, ON, ON, ON, EN, L, ON, ON, ON, ON, ON\n];\nvar UnicodeTBL20 = [\n WS, WS, WS, WS, WS, WS, WS, WS, WS, WS, WS, BN, BN, BN, L, R,\n ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,\n ON, ON, ON, ON, ON, ON, ON, ON, WS, B, LRE, RLE, PDF, LRO, RLO, CS,\n ET, ET, ET, ET, ET, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,\n ON, ON, ON, ON, CS, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,\n ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, WS\n];\nfunction _computeLevels(chars, levels, len, charTypes) {\n var impTab = dir ? impTab_RTL : impTab_LTR, prevState = null, newClass = null, newLevel = null, newState = 0, action = null, cond = null, condPos = -1, i = null, ix = null, classes = [];\n if (!charTypes) {\n for (i = 0, charTypes = []; i < len; i++) {\n charTypes[i] = _getCharacterType(chars[i]);\n }\n }\n hiLevel = dir;\n lastArabic = false;\n hasUBAT_AL = false;\n hasUBAT_B = false;\n hasUBAT_S = false;\n for (ix = 0; ix < len; ix++) {\n prevState = newState;\n classes[ix] = newClass = _getCharClass(chars, charTypes, classes, ix);\n newState = impTab[prevState][newClass];\n action = newState & 0xF0;\n newState &= 0x0F;\n levels[ix] = newLevel = impTab[newState][5];\n if (action > 0) {\n if (action == 0x10) {\n for (i = condPos; i < ix; i++) {\n levels[i] = 1;\n }\n condPos = -1;\n }\n else {\n condPos = -1;\n }\n }\n cond = impTab[newState][6];\n if (cond) {\n if (condPos == -1) {\n condPos = ix;\n }\n }\n else {\n if (condPos > -1) {\n for (i = condPos; i < ix; i++) {\n levels[i] = newLevel;\n }\n condPos = -1;\n }\n }\n if (charTypes[ix] == B) {\n levels[ix] = 0;\n }\n hiLevel |= newLevel;\n }\n if (hasUBAT_S) {\n for (i = 0; i < len; i++) {\n if (charTypes[i] == S) {\n levels[i] = dir;\n for (var j = i - 1; j >= 0; j--) {\n if (charTypes[j] == WS) {\n levels[j] = dir;\n }\n else {\n break;\n }\n }\n }\n }\n }\n}\nfunction _invertLevel(lev, levels, _array) {\n if (hiLevel < lev) {\n return;\n }\n if (lev == 1 && dir == RTL && !hasUBAT_B) {\n _array.reverse();\n return;\n }\n var len = _array.length, start = 0, end, lo, hi, tmp;\n while (start < len) {\n if (levels[start] >= lev) {\n end = start + 1;\n while (end < len && levels[end] >= lev) {\n end++;\n }\n for (lo = start, hi = end - 1; lo < hi; lo++, hi--) {\n tmp = _array[lo];\n _array[lo] = _array[hi];\n _array[hi] = tmp;\n }\n start = end;\n }\n start++;\n }\n}\nfunction _getCharClass(chars, types, classes, ix) {\n var cType = types[ix], wType, nType, len, i;\n switch (cType) {\n case L:\n case R:\n lastArabic = false;\n case ON:\n case AN:\n return cType;\n case EN:\n return lastArabic ? AN : EN;\n case AL:\n lastArabic = true;\n hasUBAT_AL = true;\n return R;\n case WS:\n return ON;\n case CS:\n if (ix < 1 || (ix + 1) >= types.length ||\n ((wType = classes[ix - 1]) != EN && wType != AN) ||\n ((nType = types[ix + 1]) != EN && nType != AN)) {\n return ON;\n }\n if (lastArabic) {\n nType = AN;\n }\n return nType == wType ? nType : ON;\n case ES:\n wType = ix > 0 ? classes[ix - 1] : B;\n if (wType == EN && (ix + 1) < types.length && types[ix + 1] == EN) {\n return EN;\n }\n return ON;\n case ET:\n if (ix > 0 && classes[ix - 1] == EN) {\n return EN;\n }\n if (lastArabic) {\n return ON;\n }\n i = ix + 1;\n len = types.length;\n while (i < len && types[i] == ET) {\n i++;\n }\n if (i < len && types[i] == EN) {\n return EN;\n }\n return ON;\n case NSM:\n len = types.length;\n i = ix + 1;\n while (i < len && types[i] == NSM) {\n i++;\n }\n if (i < len) {\n var c = chars[ix], rtlCandidate = (c >= 0x0591 && c <= 0x08FF) || c == 0xFB1E;\n wType = types[i];\n if (rtlCandidate && (wType == R || wType == AL)) {\n return R;\n }\n }\n if (ix < 1 || (wType = types[ix - 1]) == B) {\n return ON;\n }\n return classes[ix - 1];\n case B:\n lastArabic = false;\n hasUBAT_B = true;\n return dir;\n case S:\n hasUBAT_S = true;\n return ON;\n case LRE:\n case RLE:\n case LRO:\n case RLO:\n case PDF:\n lastArabic = false;\n case BN:\n return ON;\n }\n}\nfunction _getCharacterType(ch) {\n var uc = ch.charCodeAt(0), hi = uc >> 8;\n if (hi == 0) {\n return ((uc > 0x00BF) ? L : UnicodeTBL00[uc]);\n }\n else if (hi == 5) {\n return (/[\\u0591-\\u05f4]/.test(ch) ? R : L);\n }\n else if (hi == 6) {\n if (/[\\u0610-\\u061a\\u064b-\\u065f\\u06d6-\\u06e4\\u06e7-\\u06ed]/.test(ch))\n return NSM;\n else if (/[\\u0660-\\u0669\\u066b-\\u066c]/.test(ch))\n return AN;\n else if (uc == 0x066A)\n return ET;\n else if (/[\\u06f0-\\u06f9]/.test(ch))\n return EN;\n else\n return AL;\n }\n else if (hi == 0x20 && uc <= 0x205F) {\n return UnicodeTBL20[uc & 0xFF];\n }\n else if (hi == 0xFE) {\n return (uc >= 0xFE70 ? AL : ON);\n }\n return ON;\n}\nfunction _isArabicDiacritics(ch) {\n return (ch >= '\\u064b' && ch <= '\\u0655');\n}\nexports.L = L;\nexports.R = R;\nexports.EN = EN;\nexports.ON_R = 3;\nexports.AN = 4;\nexports.R_H = 5;\nexports.B = 6;\nexports.RLE = 7;\nexports.DOT = \"\\xB7\";\nexports.doBidiReorder = function (text, textCharTypes, isRtl) {\n if (text.length < 2)\n return {};\n var chars = text.split(\"\"), logicalFromVisual = new Array(chars.length), bidiLevels = new Array(chars.length), levels = [];\n dir = isRtl ? RTL : LTR;\n _computeLevels(chars, levels, chars.length, textCharTypes);\n for (var i = 0; i < logicalFromVisual.length; logicalFromVisual[i] = i, i++)\n ;\n _invertLevel(2, levels, logicalFromVisual);\n _invertLevel(1, levels, logicalFromVisual);\n for (var i = 0; i < logicalFromVisual.length - 1; i++) { //fix levels to reflect character width\n if (textCharTypes[i] === AN) {\n levels[i] = exports.AN;\n }\n else if (levels[i] === R && ((textCharTypes[i] > AL && textCharTypes[i] < LRE)\n || textCharTypes[i] === ON || textCharTypes[i] === BN)) {\n levels[i] = exports.ON_R;\n }\n else if ((i > 0 && chars[i - 1] === '\\u0644') && /\\u0622|\\u0623|\\u0625|\\u0627/.test(chars[i])) {\n levels[i - 1] = levels[i] = exports.R_H;\n i++;\n }\n }\n if (chars[chars.length - 1] === exports.DOT)\n levels[chars.length - 1] = exports.B;\n if (chars[0] === '\\u202B')\n levels[0] = exports.RLE;\n for (var i = 0; i < logicalFromVisual.length; i++) {\n bidiLevels[i] = levels[logicalFromVisual[i]];\n }\n return { 'logicalFromVisual': logicalFromVisual, 'bidiLevels': bidiLevels };\n};\nexports.hasBidiCharacters = function (text, textCharTypes) {\n var ret = false;\n for (var i = 0; i < text.length; i++) {\n textCharTypes[i] = _getCharacterType(text.charAt(i));\n if (!ret && (textCharTypes[i] == R || textCharTypes[i] == AL || textCharTypes[i] == AN))\n ret = true;\n }\n return ret;\n};\nexports.getVisualFromLogicalIdx = function (logIdx, rowMap) {\n for (var i = 0; i < rowMap.logicalFromVisual.length; i++) {\n if (rowMap.logicalFromVisual[i] == logIdx)\n return i;\n }\n return 0;\n};\n\n});\n\nace.define(\"ace/bidihandler\",[\"require\",\"exports\",\"module\",\"ace/lib/bidiutil\",\"ace/lib/lang\"], function(require, exports, module){\"use strict\";\nvar bidiUtil = require(\"./lib/bidiutil\");\nvar lang = require(\"./lib/lang\");\nvar bidiRE = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac\\u202B]/;\nvar BidiHandler = /** @class */ (function () {\n function BidiHandler(session) {\n this.session = session;\n this.bidiMap = {};\n this.currentRow = null;\n this.bidiUtil = bidiUtil;\n this.charWidths = [];\n this.EOL = \"\\xAC\";\n this.showInvisibles = true;\n this.isRtlDir = false;\n this.$isRtl = false;\n this.line = \"\";\n this.wrapIndent = 0;\n this.EOF = \"\\xB6\";\n this.RLE = \"\\u202B\";\n this.contentWidth = 0;\n this.fontMetrics = null;\n this.rtlLineOffset = 0;\n this.wrapOffset = 0;\n this.isMoveLeftOperation = false;\n this.seenBidi = bidiRE.test(session.getValue());\n }\n BidiHandler.prototype.isBidiRow = function (screenRow, docRow, splitIndex) {\n if (!this.seenBidi)\n return false;\n if (screenRow !== this.currentRow) {\n this.currentRow = screenRow;\n this.updateRowLine(docRow, splitIndex);\n this.updateBidiMap();\n }\n return this.bidiMap.bidiLevels;\n };\n BidiHandler.prototype.onChange = function (delta) {\n if (!this.seenBidi) {\n if (delta.action == \"insert\" && bidiRE.test(delta.lines.join(\"\\n\"))) {\n this.seenBidi = true;\n this.currentRow = null;\n }\n }\n else {\n this.currentRow = null;\n }\n };\n BidiHandler.prototype.getDocumentRow = function () {\n var docRow = 0;\n var rowCache = this.session.$screenRowCache;\n if (rowCache.length) {\n var index = this.session.$getRowCacheIndex(rowCache, this.currentRow);\n if (index >= 0)\n docRow = this.session.$docRowCache[index];\n }\n return docRow;\n };\n BidiHandler.prototype.getSplitIndex = function () {\n var splitIndex = 0;\n var rowCache = this.session.$screenRowCache;\n if (rowCache.length) {\n var currentIndex, prevIndex = this.session.$getRowCacheIndex(rowCache, this.currentRow);\n while (this.currentRow - splitIndex > 0) {\n currentIndex = this.session.$getRowCacheIndex(rowCache, this.currentRow - splitIndex - 1);\n if (currentIndex !== prevIndex)\n break;\n prevIndex = currentIndex;\n splitIndex++;\n }\n }\n else {\n splitIndex = this.currentRow;\n }\n return splitIndex;\n };\n BidiHandler.prototype.updateRowLine = function (docRow, splitIndex) {\n if (docRow === undefined)\n docRow = this.getDocumentRow();\n var isLastRow = (docRow === this.session.getLength() - 1), endOfLine = isLastRow ? this.EOF : this.EOL;\n this.wrapIndent = 0;\n this.line = this.session.getLine(docRow);\n this.isRtlDir = this.$isRtl || this.line.charAt(0) === this.RLE;\n if (this.session.$useWrapMode) {\n var splits = this.session.$wrapData[docRow];\n if (splits) {\n if (splitIndex === undefined)\n splitIndex = this.getSplitIndex();\n if (splitIndex > 0 && splits.length) {\n this.wrapIndent = splits.indent;\n this.wrapOffset = this.wrapIndent * this.charWidths[bidiUtil.L];\n this.line = (splitIndex < splits.length) ?\n this.line.substring(splits[splitIndex - 1], splits[splitIndex]) :\n this.line.substring(splits[splits.length - 1]);\n }\n else {\n this.line = this.line.substring(0, splits[splitIndex]);\n }\n if (splitIndex == splits.length) {\n this.line += (this.showInvisibles) ? endOfLine : bidiUtil.DOT;\n }\n }\n }\n else {\n this.line += this.showInvisibles ? endOfLine : bidiUtil.DOT;\n }\n var session = this.session, shift = 0, size;\n this.line = this.line.replace(/\\t|[\\u1100-\\u2029, \\u202F-\\uFFE6]/g, function (ch, i) {\n if (ch === '\\t' || session.isFullWidth(ch.charCodeAt(0))) {\n size = (ch === '\\t') ? session.getScreenTabSize(i + shift) : 2;\n shift += size - 1;\n return lang.stringRepeat(bidiUtil.DOT, size);\n }\n return ch;\n });\n if (this.isRtlDir) {\n this.fontMetrics.$main.textContent = (this.line.charAt(this.line.length - 1) == bidiUtil.DOT) ? this.line.substr(0, this.line.length - 1) : this.line;\n this.rtlLineOffset = this.contentWidth - this.fontMetrics.$main.getBoundingClientRect().width;\n }\n };\n BidiHandler.prototype.updateBidiMap = function () {\n var textCharTypes = [];\n if (bidiUtil.hasBidiCharacters(this.line, textCharTypes) || this.isRtlDir) {\n this.bidiMap = bidiUtil.doBidiReorder(this.line, textCharTypes, this.isRtlDir);\n }\n else {\n this.bidiMap = {};\n }\n };\n BidiHandler.prototype.markAsDirty = function () {\n this.currentRow = null;\n };\n BidiHandler.prototype.updateCharacterWidths = function (fontMetrics) {\n if (this.characterWidth === fontMetrics.$characterSize.width)\n return;\n this.fontMetrics = fontMetrics;\n var characterWidth = this.characterWidth = fontMetrics.$characterSize.width;\n var bidiCharWidth = fontMetrics.$measureCharWidth(\"\\u05d4\");\n this.charWidths[bidiUtil.L] = this.charWidths[bidiUtil.EN] = this.charWidths[bidiUtil.ON_R] = characterWidth;\n this.charWidths[bidiUtil.R] = this.charWidths[bidiUtil.AN] = bidiCharWidth;\n this.charWidths[bidiUtil.R_H] = bidiCharWidth * 0.45;\n this.charWidths[bidiUtil.B] = this.charWidths[bidiUtil.RLE] = 0;\n this.currentRow = null;\n };\n BidiHandler.prototype.setShowInvisibles = function (showInvisibles) {\n this.showInvisibles = showInvisibles;\n this.currentRow = null;\n };\n BidiHandler.prototype.setEolChar = function (eolChar) {\n this.EOL = eolChar;\n };\n BidiHandler.prototype.setContentWidth = function (width) {\n this.contentWidth = width;\n };\n BidiHandler.prototype.isRtlLine = function (row) {\n if (this.$isRtl)\n return true;\n if (row != undefined)\n return (this.session.getLine(row).charAt(0) == this.RLE);\n else\n return this.isRtlDir;\n };\n BidiHandler.prototype.setRtlDirection = function (editor, isRtlDir) {\n var cursor = editor.getCursorPosition();\n for (var row = editor.selection.getSelectionAnchor().row; row <= cursor.row; row++) {\n if (!isRtlDir && editor.session.getLine(row).charAt(0) === editor.session.$bidiHandler.RLE)\n editor.session.doc.removeInLine(row, 0, 1);\n else if (isRtlDir && editor.session.getLine(row).charAt(0) !== editor.session.$bidiHandler.RLE)\n editor.session.doc.insert({ column: 0, row: row }, editor.session.$bidiHandler.RLE);\n }\n };\n BidiHandler.prototype.getPosLeft = function (col) {\n col -= this.wrapIndent;\n var leftBoundary = (this.line.charAt(0) === this.RLE) ? 1 : 0;\n var logicalIdx = (col > leftBoundary) ? (this.session.getOverwrite() ? col : col - 1) : leftBoundary;\n var visualIdx = bidiUtil.getVisualFromLogicalIdx(logicalIdx, this.bidiMap), levels = this.bidiMap.bidiLevels, left = 0;\n if (!this.session.getOverwrite() && col <= leftBoundary && levels[visualIdx] % 2 !== 0)\n visualIdx++;\n for (var i = 0; i < visualIdx; i++) {\n left += this.charWidths[levels[i]];\n }\n if (!this.session.getOverwrite() && (col > leftBoundary) && (levels[visualIdx] % 2 === 0))\n left += this.charWidths[levels[visualIdx]];\n if (this.wrapIndent)\n left += this.isRtlDir ? (-1 * this.wrapOffset) : this.wrapOffset;\n if (this.isRtlDir)\n left += this.rtlLineOffset;\n return left;\n };\n BidiHandler.prototype.getSelections = function (startCol, endCol) {\n var map = this.bidiMap, levels = map.bidiLevels, level, selections = [], offset = 0, selColMin = Math.min(startCol, endCol) - this.wrapIndent, selColMax = Math.max(startCol, endCol) - this.wrapIndent, isSelected = false, isSelectedPrev = false, selectionStart = 0;\n if (this.wrapIndent)\n offset += this.isRtlDir ? (-1 * this.wrapOffset) : this.wrapOffset;\n for (var logIdx, visIdx = 0; visIdx < levels.length; visIdx++) {\n logIdx = map.logicalFromVisual[visIdx];\n level = levels[visIdx];\n isSelected = (logIdx >= selColMin) && (logIdx < selColMax);\n if (isSelected && !isSelectedPrev) {\n selectionStart = offset;\n }\n else if (!isSelected && isSelectedPrev) {\n selections.push({ left: selectionStart, width: offset - selectionStart });\n }\n offset += this.charWidths[level];\n isSelectedPrev = isSelected;\n }\n if (isSelected && (visIdx === levels.length)) {\n selections.push({ left: selectionStart, width: offset - selectionStart });\n }\n if (this.isRtlDir) {\n for (var i = 0; i < selections.length; i++) {\n selections[i].left += this.rtlLineOffset;\n }\n }\n return selections;\n };\n BidiHandler.prototype.offsetToCol = function (posX) {\n if (this.isRtlDir)\n posX -= this.rtlLineOffset;\n var logicalIdx = 0, posX = Math.max(posX, 0), offset = 0, visualIdx = 0, levels = this.bidiMap.bidiLevels, charWidth = this.charWidths[levels[visualIdx]];\n if (this.wrapIndent)\n posX -= this.isRtlDir ? (-1 * this.wrapOffset) : this.wrapOffset;\n while (posX > offset + charWidth / 2) {\n offset += charWidth;\n if (visualIdx === levels.length - 1) {\n charWidth = 0;\n break;\n }\n charWidth = this.charWidths[levels[++visualIdx]];\n }\n if (visualIdx > 0 && (levels[visualIdx - 1] % 2 !== 0) && (levels[visualIdx] % 2 === 0)) {\n if (posX < offset)\n visualIdx--;\n logicalIdx = this.bidiMap.logicalFromVisual[visualIdx];\n }\n else if (visualIdx > 0 && (levels[visualIdx - 1] % 2 === 0) && (levels[visualIdx] % 2 !== 0)) {\n logicalIdx = 1 + ((posX > offset) ? this.bidiMap.logicalFromVisual[visualIdx]\n : this.bidiMap.logicalFromVisual[visualIdx - 1]);\n }\n else if ((this.isRtlDir && visualIdx === levels.length - 1 && charWidth === 0 && (levels[visualIdx - 1] % 2 === 0))\n || (!this.isRtlDir && visualIdx === 0 && (levels[visualIdx] % 2 !== 0))) {\n logicalIdx = 1 + this.bidiMap.logicalFromVisual[visualIdx];\n }\n else {\n if (visualIdx > 0 && (levels[visualIdx - 1] % 2 !== 0) && charWidth !== 0)\n visualIdx--;\n logicalIdx = this.bidiMap.logicalFromVisual[visualIdx];\n }\n if (logicalIdx === 0 && this.isRtlDir)\n logicalIdx++;\n return (logicalIdx + this.wrapIndent);\n };\n return BidiHandler;\n}());\nexports.BidiHandler = BidiHandler;\n\n});\n\nace.define(\"ace/selection\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar lang = require(\"./lib/lang\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Range = require(\"./range\").Range;\nvar Selection = /** @class */ (function () {\n function Selection(session) {\n this.session = session;\n this.doc = session.getDocument();\n this.clearSelection();\n this.cursor = this.lead = this.doc.createAnchor(0, 0);\n this.anchor = this.doc.createAnchor(0, 0);\n this.$silent = false;\n var self = this;\n this.cursor.on(\"change\", function (e) {\n self.$cursorChanged = true;\n if (!self.$silent)\n self._emit(\"changeCursor\");\n if (!self.$isEmpty && !self.$silent)\n self._emit(\"changeSelection\");\n if (!self.$keepDesiredColumnOnChange && e.old.column != e.value.column)\n self.$desiredColumn = null;\n });\n this.anchor.on(\"change\", function () {\n self.$anchorChanged = true;\n if (!self.$isEmpty && !self.$silent)\n self._emit(\"changeSelection\");\n });\n }\n Selection.prototype.isEmpty = function () {\n return this.$isEmpty || (this.anchor.row == this.lead.row &&\n this.anchor.column == this.lead.column);\n };\n Selection.prototype.isMultiLine = function () {\n return !this.$isEmpty && this.anchor.row != this.cursor.row;\n };\n Selection.prototype.getCursor = function () {\n return this.lead.getPosition();\n };\n Selection.prototype.setAnchor = function (row, column) {\n this.$isEmpty = false;\n this.anchor.setPosition(row, column);\n };\n Selection.prototype.getAnchor = function () {\n if (this.$isEmpty)\n return this.getSelectionLead();\n return this.anchor.getPosition();\n };\n Selection.prototype.getSelectionLead = function () {\n return this.lead.getPosition();\n };\n Selection.prototype.isBackwards = function () {\n var anchor = this.anchor;\n var lead = this.lead;\n return (anchor.row > lead.row || (anchor.row == lead.row && anchor.column > lead.column));\n };\n Selection.prototype.getRange = function () {\n var anchor = this.anchor;\n var lead = this.lead;\n if (this.$isEmpty)\n return Range.fromPoints(lead, lead);\n return this.isBackwards()\n ? Range.fromPoints(lead, anchor)\n : Range.fromPoints(anchor, lead);\n };\n Selection.prototype.clearSelection = function () {\n if (!this.$isEmpty) {\n this.$isEmpty = true;\n this._emit(\"changeSelection\");\n }\n };\n Selection.prototype.selectAll = function () {\n this.$setSelection(0, 0, Number.MAX_VALUE, Number.MAX_VALUE);\n };\n Selection.prototype.setRange = function (range, reverse) {\n var start = reverse ? range.end : range.start;\n var end = reverse ? range.start : range.end;\n this.$setSelection(start.row, start.column, end.row, end.column);\n };\n Selection.prototype.$setSelection = function (anchorRow, anchorColumn, cursorRow, cursorColumn) {\n if (this.$silent)\n return;\n var wasEmpty = this.$isEmpty;\n var wasMultiselect = this.inMultiSelectMode;\n this.$silent = true;\n this.$cursorChanged = this.$anchorChanged = false;\n this.anchor.setPosition(anchorRow, anchorColumn);\n this.cursor.setPosition(cursorRow, cursorColumn);\n this.$isEmpty = !Range.comparePoints(this.anchor, this.cursor);\n this.$silent = false;\n if (this.$cursorChanged)\n this._emit(\"changeCursor\");\n if (this.$cursorChanged || this.$anchorChanged || wasEmpty != this.$isEmpty || wasMultiselect)\n this._emit(\"changeSelection\");\n };\n Selection.prototype.$moveSelection = function (mover) {\n var lead = this.lead;\n if (this.$isEmpty)\n this.setSelectionAnchor(lead.row, lead.column);\n mover.call(this);\n };\n Selection.prototype.selectTo = function (row, column) {\n this.$moveSelection(function () {\n this.moveCursorTo(row, column);\n });\n };\n Selection.prototype.selectToPosition = function (pos) {\n this.$moveSelection(function () {\n this.moveCursorToPosition(pos);\n });\n };\n Selection.prototype.moveTo = function (row, column) {\n this.clearSelection();\n this.moveCursorTo(row, column);\n };\n Selection.prototype.moveToPosition = function (pos) {\n this.clearSelection();\n this.moveCursorToPosition(pos);\n };\n Selection.prototype.selectUp = function () {\n this.$moveSelection(this.moveCursorUp);\n };\n Selection.prototype.selectDown = function () {\n this.$moveSelection(this.moveCursorDown);\n };\n Selection.prototype.selectRight = function () {\n this.$moveSelection(this.moveCursorRight);\n };\n Selection.prototype.selectLeft = function () {\n this.$moveSelection(this.moveCursorLeft);\n };\n Selection.prototype.selectLineStart = function () {\n this.$moveSelection(this.moveCursorLineStart);\n };\n Selection.prototype.selectLineEnd = function () {\n this.$moveSelection(this.moveCursorLineEnd);\n };\n Selection.prototype.selectFileEnd = function () {\n this.$moveSelection(this.moveCursorFileEnd);\n };\n Selection.prototype.selectFileStart = function () {\n this.$moveSelection(this.moveCursorFileStart);\n };\n Selection.prototype.selectWordRight = function () {\n this.$moveSelection(this.moveCursorWordRight);\n };\n Selection.prototype.selectWordLeft = function () {\n this.$moveSelection(this.moveCursorWordLeft);\n };\n Selection.prototype.getWordRange = function (row, column) {\n if (typeof column == \"undefined\") {\n var cursor = row || this.lead;\n row = cursor.row;\n column = cursor.column;\n }\n return this.session.getWordRange(row, column);\n };\n Selection.prototype.selectWord = function () {\n this.setSelectionRange(this.getWordRange());\n };\n Selection.prototype.selectAWord = function () {\n var cursor = this.getCursor();\n var range = this.session.getAWordRange(cursor.row, cursor.column);\n this.setSelectionRange(range);\n };\n Selection.prototype.getLineRange = function (row, excludeLastChar) {\n var rowStart = typeof row == \"number\" ? row : this.lead.row;\n var rowEnd;\n var foldLine = this.session.getFoldLine(rowStart);\n if (foldLine) {\n rowStart = foldLine.start.row;\n rowEnd = foldLine.end.row;\n }\n else {\n rowEnd = rowStart;\n }\n if (excludeLastChar === true)\n return new Range(rowStart, 0, rowEnd, this.session.getLine(rowEnd).length);\n else\n return new Range(rowStart, 0, rowEnd + 1, 0);\n };\n Selection.prototype.selectLine = function () {\n this.setSelectionRange(this.getLineRange());\n };\n Selection.prototype.moveCursorUp = function () {\n this.moveCursorBy(-1, 0);\n };\n Selection.prototype.moveCursorDown = function () {\n this.moveCursorBy(1, 0);\n };\n Selection.prototype.wouldMoveIntoSoftTab = function (cursor, tabSize, direction) {\n var start = cursor.column;\n var end = cursor.column + tabSize;\n if (direction < 0) {\n start = cursor.column - tabSize;\n end = cursor.column;\n }\n return this.session.isTabStop(cursor) && this.doc.getLine(cursor.row).slice(start, end).split(\" \").length - 1 == tabSize;\n };\n Selection.prototype.moveCursorLeft = function () {\n var cursor = this.lead.getPosition(), fold;\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n }\n else if (cursor.column === 0) {\n if (cursor.row > 0) {\n this.moveCursorTo(cursor.row - 1, this.doc.getLine(cursor.row - 1).length);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n if (this.wouldMoveIntoSoftTab(cursor, tabSize, -1) && !this.session.getNavigateWithinSoftTabs()) {\n this.moveCursorBy(0, -tabSize);\n }\n else {\n this.moveCursorBy(0, -1);\n }\n }\n };\n Selection.prototype.moveCursorRight = function () {\n var cursor = this.lead.getPosition(), fold;\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, 1)) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n }\n else if (this.lead.column == this.doc.getLine(this.lead.row).length) {\n if (this.lead.row < this.doc.getLength() - 1) {\n this.moveCursorTo(this.lead.row + 1, 0);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n var cursor = this.lead;\n if (this.wouldMoveIntoSoftTab(cursor, tabSize, 1) && !this.session.getNavigateWithinSoftTabs()) {\n this.moveCursorBy(0, tabSize);\n }\n else {\n this.moveCursorBy(0, 1);\n }\n }\n };\n Selection.prototype.moveCursorLineStart = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var screenRow = this.session.documentToScreenRow(row, column);\n var firstColumnPosition = this.session.screenToDocumentPosition(screenRow, 0);\n var beforeCursor = this.session.getDisplayLine(row, null, firstColumnPosition.row, firstColumnPosition.column);\n var leadingSpace = beforeCursor.match(/^\\s*/);\n if (leadingSpace[0].length != column && !this.session.$useEmacsStyleLineStart)\n firstColumnPosition.column += leadingSpace[0].length;\n this.moveCursorToPosition(firstColumnPosition);\n };\n Selection.prototype.moveCursorLineEnd = function () {\n var lead = this.lead;\n var lineEnd = this.session.getDocumentLastRowColumnPosition(lead.row, lead.column);\n if (this.lead.column == lineEnd.column) {\n var line = this.session.getLine(lineEnd.row);\n if (lineEnd.column == line.length) {\n var textEnd = line.search(/\\s+$/);\n if (textEnd > 0)\n lineEnd.column = textEnd;\n }\n }\n this.moveCursorTo(lineEnd.row, lineEnd.column);\n };\n Selection.prototype.moveCursorFileEnd = function () {\n var row = this.doc.getLength() - 1;\n var column = this.doc.getLine(row).length;\n this.moveCursorTo(row, column);\n };\n Selection.prototype.moveCursorFileStart = function () {\n this.moveCursorTo(0, 0);\n };\n Selection.prototype.moveCursorLongWordRight = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n return;\n }\n if (this.session.nonTokenRe.exec(rightOfCursor)) {\n column += this.session.nonTokenRe.lastIndex;\n this.session.nonTokenRe.lastIndex = 0;\n rightOfCursor = line.substring(column);\n }\n if (column >= line.length) {\n this.moveCursorTo(row, line.length);\n this.moveCursorRight();\n if (row < this.doc.getLength() - 1)\n this.moveCursorWordRight();\n return;\n }\n if (this.session.tokenRe.exec(rightOfCursor)) {\n column += this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n this.moveCursorTo(row, column);\n };\n Selection.prototype.moveCursorLongWordLeft = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n return;\n }\n var str = this.session.getFoldStringAt(row, column, -1);\n if (str == null) {\n str = this.doc.getLine(row).substring(0, column);\n }\n var leftOfCursor = lang.stringReverse(str);\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n if (this.session.nonTokenRe.exec(leftOfCursor)) {\n column -= this.session.nonTokenRe.lastIndex;\n leftOfCursor = leftOfCursor.slice(this.session.nonTokenRe.lastIndex);\n this.session.nonTokenRe.lastIndex = 0;\n }\n if (column <= 0) {\n this.moveCursorTo(row, 0);\n this.moveCursorLeft();\n if (row > 0)\n this.moveCursorWordLeft();\n return;\n }\n if (this.session.tokenRe.exec(leftOfCursor)) {\n column -= this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n this.moveCursorTo(row, column);\n };\n Selection.prototype.$shortWordEndIndex = function (rightOfCursor) {\n var index = 0, ch;\n var whitespaceRe = /\\s/;\n var tokenRe = this.session.tokenRe;\n tokenRe.lastIndex = 0;\n if (this.session.tokenRe.exec(rightOfCursor)) {\n index = this.session.tokenRe.lastIndex;\n }\n else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index++;\n if (index < 1) {\n tokenRe.lastIndex = 0;\n while ((ch = rightOfCursor[index]) && !tokenRe.test(ch)) {\n tokenRe.lastIndex = 0;\n index++;\n if (whitespaceRe.test(ch)) {\n if (index > 2) {\n index--;\n break;\n }\n else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index++;\n if (index > 2)\n break;\n }\n }\n }\n }\n }\n tokenRe.lastIndex = 0;\n return index;\n };\n Selection.prototype.moveCursorShortWordRight = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold)\n return this.moveCursorTo(fold.end.row, fold.end.column);\n if (column == line.length) {\n var l = this.doc.getLength();\n do {\n row++;\n rightOfCursor = this.doc.getLine(row);\n } while (row < l && /^\\s*$/.test(rightOfCursor));\n if (!/^\\s+/.test(rightOfCursor))\n rightOfCursor = \"\";\n column = 0;\n }\n var index = this.$shortWordEndIndex(rightOfCursor);\n this.moveCursorTo(row, column + index);\n };\n Selection.prototype.moveCursorShortWordLeft = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1))\n return this.moveCursorTo(fold.start.row, fold.start.column);\n var line = this.session.getLine(row).substring(0, column);\n if (column === 0) {\n do {\n row--;\n line = this.doc.getLine(row);\n } while (row > 0 && /^\\s*$/.test(line));\n column = line.length;\n if (!/\\s+$/.test(line))\n line = \"\";\n }\n var leftOfCursor = lang.stringReverse(line);\n var index = this.$shortWordEndIndex(leftOfCursor);\n return this.moveCursorTo(row, column - index);\n };\n Selection.prototype.moveCursorWordRight = function () {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordRight();\n else\n this.moveCursorShortWordRight();\n };\n Selection.prototype.moveCursorWordLeft = function () {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordLeft();\n else\n this.moveCursorShortWordLeft();\n };\n Selection.prototype.moveCursorBy = function (rows, chars) {\n var screenPos = this.session.documentToScreenPosition(this.lead.row, this.lead.column);\n var offsetX;\n if (chars === 0) {\n if (rows !== 0) {\n if (this.session.$bidiHandler.isBidiRow(screenPos.row, this.lead.row)) {\n offsetX = this.session.$bidiHandler.getPosLeft(screenPos.column);\n screenPos.column = Math.round(offsetX / this.session.$bidiHandler.charWidths[0]);\n }\n else {\n offsetX = screenPos.column * this.session.$bidiHandler.charWidths[0];\n }\n }\n if (this.$desiredColumn)\n screenPos.column = this.$desiredColumn;\n else\n this.$desiredColumn = screenPos.column;\n }\n if (rows != 0 && this.session.lineWidgets && this.session.lineWidgets[this.lead.row]) {\n var widget = this.session.lineWidgets[this.lead.row];\n if (rows < 0)\n rows -= widget.rowsAbove || 0;\n else if (rows > 0)\n rows += widget.rowCount - (widget.rowsAbove || 0);\n }\n var docPos = this.session.screenToDocumentPosition(screenPos.row + rows, screenPos.column, offsetX);\n if (rows !== 0 && chars === 0 && docPos.row === this.lead.row && docPos.column === this.lead.column) {\n }\n this.moveCursorTo(docPos.row, docPos.column + chars, chars === 0);\n };\n Selection.prototype.moveCursorToPosition = function (position) {\n this.moveCursorTo(position.row, position.column);\n };\n Selection.prototype.moveCursorTo = function (row, column, keepDesiredColumn) {\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n row = fold.start.row;\n column = fold.start.column;\n }\n this.$keepDesiredColumnOnChange = true;\n var line = this.session.getLine(row);\n if (/[\\uDC00-\\uDFFF]/.test(line.charAt(column)) && line.charAt(column - 1)) {\n if (this.lead.row == row && this.lead.column == column + 1)\n column = column - 1;\n else\n column = column + 1;\n }\n this.lead.setPosition(row, column);\n this.$keepDesiredColumnOnChange = false;\n if (!keepDesiredColumn)\n this.$desiredColumn = null;\n };\n Selection.prototype.moveCursorToScreen = function (row, column, keepDesiredColumn) {\n var pos = this.session.screenToDocumentPosition(row, column);\n this.moveCursorTo(pos.row, pos.column, keepDesiredColumn);\n };\n Selection.prototype.detach = function () {\n this.lead.detach();\n this.anchor.detach();\n };\n Selection.prototype.fromOrientedRange = function (range) {\n this.setSelectionRange(range, range.cursor == range.start);\n this.$desiredColumn = range.desiredColumn || this.$desiredColumn;\n };\n Selection.prototype.toOrientedRange = function (range) {\n var r = this.getRange();\n if (range) {\n range.start.column = r.start.column;\n range.start.row = r.start.row;\n range.end.column = r.end.column;\n range.end.row = r.end.row;\n }\n else {\n range = r;\n }\n range.cursor = this.isBackwards() ? range.start : range.end;\n range.desiredColumn = this.$desiredColumn;\n return range;\n };\n Selection.prototype.getRangeOfMovements = function (func) {\n var start = this.getCursor();\n try {\n func(this);\n var end = this.getCursor();\n return Range.fromPoints(start, end);\n }\n catch (e) {\n return Range.fromPoints(start, start);\n }\n finally {\n this.moveCursorToPosition(start);\n }\n };\n Selection.prototype.toJSON = function () {\n if (this.rangeCount) {\n var data = this.ranges.map(function (r) {\n var r1 = r.clone();\n r1.isBackwards = r.cursor == r.start;\n return r1;\n });\n }\n else {\n var data = this.getRange();\n data.isBackwards = this.isBackwards();\n }\n return data;\n };\n Selection.prototype.fromJSON = function (data) {\n if (data.start == undefined) {\n if (this.rangeList && data.length > 1) {\n this.toSingleRange(data[0]);\n for (var i = data.length; i--;) {\n var r = Range.fromPoints(data[i].start, data[i].end);\n if (data[i].isBackwards)\n r.cursor = r.start;\n this.addRange(r, true);\n }\n return;\n }\n else {\n data = data[0];\n }\n }\n if (this.rangeList)\n this.toSingleRange(data);\n this.setSelectionRange(data, data.isBackwards);\n };\n Selection.prototype.isEqual = function (data) {\n if ((data.length || this.rangeCount) && data.length != this.rangeCount)\n return false;\n if (!data.length || !this.ranges)\n return this.getRange().isEqual(data);\n for (var i = this.ranges.length; i--;) {\n if (!this.ranges[i].isEqual(data[i]))\n return false;\n }\n return true;\n };\n return Selection;\n}());\nSelection.prototype.setSelectionAnchor = Selection.prototype.setAnchor;\nSelection.prototype.getSelectionAnchor = Selection.prototype.getAnchor;\nSelection.prototype.setSelectionRange = Selection.prototype.setRange;\noop.implement(Selection.prototype, EventEmitter);\nexports.Selection = Selection;\n\n});\n\nace.define(\"ace/tokenizer\",[\"require\",\"exports\",\"module\",\"ace/lib/report_error\"], function(require, exports, module){\"use strict\";\nvar reportError = require(\"./lib/report_error\").reportError;\nvar MAX_TOKEN_COUNT = 2000;\nvar Tokenizer = /** @class */ (function () {\n function Tokenizer(rules) {\n this.states = rules;\n this.regExps = {};\n this.matchMappings = {};\n for (var key in this.states) {\n var state = this.states[key];\n var ruleRegExps = [];\n var matchTotal = 0;\n var mapping = this.matchMappings[key] = { defaultToken: \"text\" };\n var flag = \"g\";\n var splitterRurles = [];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.defaultToken)\n mapping.defaultToken = rule.defaultToken;\n if (rule.caseInsensitive && flag.indexOf(\"i\") === -1)\n flag += \"i\";\n if (rule.unicode && flag.indexOf(\"u\") === -1)\n flag += \"u\";\n if (rule.regex == null)\n continue;\n if (rule.regex instanceof RegExp)\n rule.regex = rule.regex.toString().slice(1, -1);\n var adjustedregex = rule.regex;\n var matchcount = new RegExp(\"(?:(\" + adjustedregex + \")|(.))\").exec(\"a\").length - 2;\n if (Array.isArray(rule.token)) {\n if (rule.token.length == 1 || matchcount == 1) {\n rule.token = rule.token[0];\n }\n else if (matchcount - 1 != rule.token.length) {\n this.reportError(\"number of classes and regexp groups doesn't match\", {\n rule: rule,\n groupCount: matchcount - 1\n });\n rule.token = rule.token[0];\n }\n else {\n rule.tokenArray = rule.token;\n rule.token = null;\n rule.onMatch = this.$arrayTokens;\n }\n }\n else if (typeof rule.token == \"function\" && !rule.onMatch) {\n if (matchcount > 1)\n rule.onMatch = this.$applyToken;\n else\n rule.onMatch = rule.token;\n }\n if (matchcount > 1) {\n if (/\\\\\\d/.test(rule.regex)) {\n adjustedregex = rule.regex.replace(/\\\\([0-9]+)/g, function (match, digit) {\n return \"\\\\\" + (parseInt(digit, 10) + matchTotal + 1);\n });\n }\n else {\n matchcount = 1;\n adjustedregex = this.removeCapturingGroups(rule.regex);\n }\n if (!rule.splitRegex && typeof rule.token != \"string\")\n splitterRurles.push(rule); // flag will be known only at the very end\n }\n mapping[matchTotal] = i;\n matchTotal += matchcount;\n ruleRegExps.push(adjustedregex);\n if (!rule.onMatch)\n rule.onMatch = null;\n }\n if (!ruleRegExps.length) {\n mapping[0] = 0;\n ruleRegExps.push(\"$\");\n }\n splitterRurles.forEach(function (rule) {\n rule.splitRegex = this.createSplitterRegexp(rule.regex, flag);\n }, this);\n this.regExps[key] = new RegExp(\"(\" + ruleRegExps.join(\")|(\") + \")|($)\", flag);\n }\n }\n Tokenizer.prototype.$setMaxTokenCount = function (m) {\n MAX_TOKEN_COUNT = m | 0;\n };\n Tokenizer.prototype.$applyToken = function (str) {\n var values = this.splitRegex.exec(str).slice(1);\n var types = this.token.apply(this, values);\n if (typeof types === \"string\")\n return [{ type: types, value: str }];\n var tokens = [];\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i]\n };\n }\n return tokens;\n };\n Tokenizer.prototype.$arrayTokens = function (str) {\n if (!str)\n return [];\n var values = this.splitRegex.exec(str);\n if (!values)\n return \"text\";\n var tokens = [];\n var types = this.tokenArray;\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i + 1])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i + 1]\n };\n }\n return tokens;\n };\n Tokenizer.prototype.removeCapturingGroups = function (src) {\n var r = src.replace(/\\\\.|\\[(?:\\\\.|[^\\\\\\]])*|\\(\\?[:=!<]|(\\()/g, function (x, y) { return y ? \"(?:\" : x; });\n return r;\n };\n Tokenizer.prototype.createSplitterRegexp = function (src, flag) {\n if (src.indexOf(\"(?=\") != -1) {\n var stack = 0;\n var inChClass = false;\n var lastCapture = {};\n src.replace(/(\\\\.)|(\\((?:\\?[=!])?)|(\\))|([\\[\\]])/g, function (m, esc, parenOpen, parenClose, square, index) {\n if (inChClass) {\n inChClass = square != \"]\";\n }\n else if (square) {\n inChClass = true;\n }\n else if (parenClose) {\n if (stack == lastCapture.stack) {\n lastCapture.end = index + 1;\n lastCapture.stack = -1;\n }\n stack--;\n }\n else if (parenOpen) {\n stack++;\n if (parenOpen.length != 1) {\n lastCapture.stack = stack;\n lastCapture.start = index;\n }\n }\n return m;\n });\n if (lastCapture.end != null && /^\\)*$/.test(src.substr(lastCapture.end)))\n src = src.substring(0, lastCapture.start) + src.substr(lastCapture.end);\n }\n if (src.charAt(0) != \"^\")\n src = \"^\" + src;\n if (src.charAt(src.length - 1) != \"$\")\n src += \"$\";\n return new RegExp(src, (flag || \"\").replace(\"g\", \"\"));\n };\n Tokenizer.prototype.getLineTokens = function (line, startState) {\n if (startState && typeof startState != \"string\") {\n var stack = startState.slice(0);\n startState = stack[0];\n if (startState === \"#tmp\") {\n stack.shift();\n startState = stack.shift();\n }\n }\n else\n var stack = [];\n var currentState = startState || \"start\";\n var state = this.states[currentState];\n if (!state) {\n currentState = \"start\";\n state = this.states[currentState];\n }\n var mapping = this.matchMappings[currentState];\n var re = this.regExps[currentState];\n re.lastIndex = 0;\n var match, tokens = [];\n var lastIndex = 0;\n var matchAttempts = 0;\n var token = { type: null, value: \"\" };\n while (match = re.exec(line)) {\n var type = mapping.defaultToken;\n var rule = null;\n var value = match[0];\n var index = re.lastIndex;\n if (index - value.length > lastIndex) {\n var skipped = line.substring(lastIndex, index - value.length);\n if (token.type == type) {\n token.value += skipped;\n }\n else {\n if (token.type)\n tokens.push(token);\n token = { type: type, value: skipped };\n }\n }\n for (var i = 0; i < match.length - 2; i++) {\n if (match[i + 1] === undefined)\n continue;\n rule = state[mapping[i]];\n if (rule.onMatch)\n type = rule.onMatch(value, currentState, stack, line);\n else\n type = rule.token;\n if (rule.next) {\n if (typeof rule.next == \"string\") {\n currentState = rule.next;\n }\n else {\n currentState = rule.next(currentState, stack);\n }\n state = this.states[currentState];\n if (!state) {\n this.reportError(\"state doesn't exist\", currentState);\n currentState = \"start\";\n state = this.states[currentState];\n }\n mapping = this.matchMappings[currentState];\n lastIndex = index;\n re = this.regExps[currentState];\n re.lastIndex = index;\n }\n if (rule.consumeLineEnd)\n lastIndex = index;\n break;\n }\n if (value) {\n if (typeof type === \"string\") {\n if ((!rule || rule.merge !== false) && token.type === type) {\n token.value += value;\n }\n else {\n if (token.type)\n tokens.push(token);\n token = { type: type, value: value };\n }\n }\n else if (type) {\n if (token.type)\n tokens.push(token);\n token = { type: null, value: \"\" };\n for (var i = 0; i < type.length; i++)\n tokens.push(type[i]);\n }\n }\n if (lastIndex == line.length)\n break;\n lastIndex = index;\n if (matchAttempts++ > MAX_TOKEN_COUNT) {\n if (matchAttempts > 2 * line.length) {\n this.reportError(\"infinite loop with in ace tokenizer\", {\n startState: startState,\n line: line\n });\n }\n while (lastIndex < line.length) {\n if (token.type)\n tokens.push(token);\n token = {\n value: line.substring(lastIndex, lastIndex += 500),\n type: \"overflow\"\n };\n }\n currentState = \"start\";\n stack = [];\n break;\n }\n }\n if (token.type)\n tokens.push(token);\n if (stack.length > 1) {\n if (stack[0] !== currentState)\n stack.unshift(\"#tmp\", currentState);\n }\n return {\n tokens: tokens,\n state: stack.length ? stack : currentState\n };\n };\n return Tokenizer;\n}());\nTokenizer.prototype.reportError = reportError;\nexports.Tokenizer = Tokenizer;\n\n});\n\nace.define(\"ace/mode/text_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/deep_copy\"], function(require, exports, module){\"use strict\";\nvar deepCopy = require(\"../lib/deep_copy\").deepCopy;\nvar TextHighlightRules = function () {\n this.$rules = {\n \"start\": [{\n token: \"empty_line\",\n regex: '^$'\n }, {\n defaultToken: \"text\"\n }]\n };\n};\n(function () {\n this.addRules = function (rules, prefix) {\n if (!prefix) {\n for (var key in rules)\n this.$rules[key] = rules[key];\n return;\n }\n for (var key in rules) {\n var state = rules[key];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.next || rule.onMatch) {\n if (typeof rule.next == \"string\") {\n if (rule.next.indexOf(prefix) !== 0)\n rule.next = prefix + rule.next;\n }\n if (rule.nextState && rule.nextState.indexOf(prefix) !== 0)\n rule.nextState = prefix + rule.nextState;\n }\n }\n this.$rules[prefix + key] = state;\n }\n };\n this.getRules = function () {\n return this.$rules;\n };\n this.embedRules = function (HighlightRules, prefix, escapeRules, states, append) {\n var embedRules = typeof HighlightRules == \"function\"\n ? new HighlightRules().getRules()\n : HighlightRules;\n if (states) {\n for (var i = 0; i < states.length; i++)\n states[i] = prefix + states[i];\n }\n else {\n states = [];\n for (var key in embedRules)\n states.push(prefix + key);\n }\n this.addRules(embedRules, prefix);\n if (escapeRules) {\n var addRules = Array.prototype[append ? \"push\" : \"unshift\"];\n for (var i = 0; i < states.length; i++)\n addRules.apply(this.$rules[states[i]], deepCopy(escapeRules));\n }\n if (!this.$embeds)\n this.$embeds = [];\n this.$embeds.push(prefix);\n };\n this.getEmbeds = function () {\n return this.$embeds;\n };\n var pushState = function (currentState, stack) {\n if (currentState != \"start\" || stack.length)\n stack.unshift(this.nextState, currentState);\n return this.nextState;\n };\n var popState = function (currentState, stack) {\n stack.shift();\n return stack.shift() || \"start\";\n };\n this.normalizeRules = function () {\n var id = 0;\n var rules = this.$rules;\n function processState(key) {\n var state = rules[key];\n state.processed = true;\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n var toInsert = null;\n if (Array.isArray(rule)) {\n toInsert = rule;\n rule = {};\n }\n if (!rule.regex && rule.start) {\n rule.regex = rule.start;\n if (!rule.next)\n rule.next = [];\n rule.next.push({\n defaultToken: rule.token\n }, {\n token: rule.token + \".end\",\n regex: rule.end || rule.start,\n next: \"pop\"\n });\n rule.token = rule.token + \".start\";\n rule.push = true;\n }\n var next = rule.next || rule.push;\n if (next && Array.isArray(next)) {\n var stateName = rule.stateName;\n if (!stateName) {\n stateName = rule.token;\n if (typeof stateName != \"string\")\n stateName = stateName[0] || \"\";\n if (rules[stateName])\n stateName += id++;\n }\n rules[stateName] = next;\n rule.next = stateName;\n processState(stateName);\n }\n else if (next == \"pop\") {\n rule.next = popState;\n }\n if (rule.push) {\n rule.nextState = rule.next || rule.push;\n rule.next = pushState;\n delete rule.push;\n }\n if (rule.rules) {\n for (var r in rule.rules) {\n if (rules[r]) {\n if (rules[r].push)\n rules[r].push.apply(rules[r], rule.rules[r]);\n }\n else {\n rules[r] = rule.rules[r];\n }\n }\n }\n var includeName = typeof rule == \"string\" ? rule : rule.include;\n if (includeName) {\n if (includeName === \"$self\")\n includeName = \"start\";\n if (Array.isArray(includeName))\n toInsert = includeName.map(function (x) { return rules[x]; });\n else\n toInsert = rules[includeName];\n }\n if (toInsert) {\n var args = [i, 1].concat(toInsert);\n if (rule.noEscape)\n args = args.filter(function (x) { return !x.next; });\n state.splice.apply(state, args);\n i--;\n }\n if (rule.keywordMap) {\n rule.token = this.createKeywordMapper(rule.keywordMap, rule.defaultToken || \"text\", rule.caseInsensitive);\n delete rule.defaultToken;\n }\n }\n }\n Object.keys(rules).forEach(processState, this);\n };\n this.createKeywordMapper = function (map, defaultToken, ignoreCase, splitChar) {\n var keywords = Object.create(null);\n this.$keywordList = [];\n Object.keys(map).forEach(function (className) {\n var a = map[className];\n var list = a.split(splitChar || \"|\");\n for (var i = list.length; i--;) {\n var word = list[i];\n this.$keywordList.push(word);\n if (ignoreCase)\n word = word.toLowerCase();\n keywords[word] = className;\n }\n }, this);\n map = null;\n return ignoreCase\n ? function (value) { return keywords[value.toLowerCase()] || defaultToken; }\n : function (value) { return keywords[value] || defaultToken; };\n };\n this.getKeywords = function () {\n return this.$keywords;\n };\n}).call(TextHighlightRules.prototype);\nexports.TextHighlightRules = TextHighlightRules;\n\n});\n\nace.define(\"ace/mode/behaviour\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar Behaviour = function () {\n this.$behaviours = {};\n};\n(function () {\n this.add = function (name, action, callback) {\n switch (undefined) {\n case this.$behaviours:\n this.$behaviours = {};\n case this.$behaviours[name]:\n this.$behaviours[name] = {};\n }\n this.$behaviours[name][action] = callback;\n };\n this.addBehaviours = function (behaviours) {\n for (var key in behaviours) {\n for (var action in behaviours[key]) {\n this.add(key, action, behaviours[key][action]);\n }\n }\n };\n this.remove = function (name) {\n if (this.$behaviours && this.$behaviours[name]) {\n delete this.$behaviours[name];\n }\n };\n this.inherit = function (mode, filter) {\n if (typeof mode === \"function\") {\n var behaviours = new mode().getBehaviours(filter);\n }\n else {\n var behaviours = mode.getBehaviours(filter);\n }\n this.addBehaviours(behaviours);\n };\n this.getBehaviours = function (filter) {\n if (!filter) {\n return this.$behaviours;\n }\n else {\n var ret = {};\n for (var i = 0; i < filter.length; i++) {\n if (this.$behaviours[filter[i]]) {\n ret[filter[i]] = this.$behaviours[filter[i]];\n }\n }\n return ret;\n }\n };\n}).call(Behaviour.prototype);\nexports.Behaviour = Behaviour;\n\n});\n\nace.define(\"ace/token_iterator\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"./range\").Range;\nvar TokenIterator = /** @class */ (function () {\n function TokenIterator(session, initialRow, initialColumn) {\n this.$session = session;\n this.$row = initialRow;\n this.$rowTokens = session.getTokens(initialRow);\n var token = session.getTokenAt(initialRow, initialColumn);\n this.$tokenIndex = token ? token.index : -1;\n }\n TokenIterator.prototype.stepBackward = function () {\n this.$tokenIndex -= 1;\n while (this.$tokenIndex < 0) {\n this.$row -= 1;\n if (this.$row < 0) {\n this.$row = 0;\n return null;\n }\n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = this.$rowTokens.length - 1;\n }\n return this.$rowTokens[this.$tokenIndex];\n };\n TokenIterator.prototype.stepForward = function () {\n this.$tokenIndex += 1;\n var rowCount;\n while (this.$tokenIndex >= this.$rowTokens.length) {\n this.$row += 1;\n if (!rowCount)\n rowCount = this.$session.getLength();\n if (this.$row >= rowCount) {\n this.$row = rowCount - 1;\n return null;\n }\n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = 0;\n }\n return this.$rowTokens[this.$tokenIndex];\n };\n TokenIterator.prototype.getCurrentToken = function () {\n return this.$rowTokens[this.$tokenIndex];\n };\n TokenIterator.prototype.getCurrentTokenRow = function () {\n return this.$row;\n };\n TokenIterator.prototype.getCurrentTokenColumn = function () {\n var rowTokens = this.$rowTokens;\n var tokenIndex = this.$tokenIndex;\n var column = rowTokens[tokenIndex].start;\n if (column !== undefined)\n return column;\n column = 0;\n while (tokenIndex > 0) {\n tokenIndex -= 1;\n column += rowTokens[tokenIndex].value.length;\n }\n return column;\n };\n TokenIterator.prototype.getCurrentTokenPosition = function () {\n return { row: this.$row, column: this.getCurrentTokenColumn() };\n };\n TokenIterator.prototype.getCurrentTokenRange = function () {\n var token = this.$rowTokens[this.$tokenIndex];\n var column = this.getCurrentTokenColumn();\n return new Range(this.$row, column, this.$row, column + token.value.length);\n };\n return TokenIterator;\n}());\nexports.TokenIterator = TokenIterator;\n\n});\n\nace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\nvar SAFE_INSERT_IN_TOKENS = [\"text\", \"paren.rparen\", \"rparen\", \"paren\", \"punctuation.operator\"];\nvar SAFE_INSERT_BEFORE_TOKENS = [\"text\", \"paren.rparen\", \"rparen\", \"paren\", \"punctuation.operator\", \"comment\"];\nvar context;\nvar contextCache = {};\nvar defaultQuotes = { '\"': '\"', \"'\": \"'\" };\nvar initContext = function (editor) {\n var id = -1;\n if (editor.multiSelect) {\n id = editor.selection.index;\n if (contextCache.rangeCount != editor.multiSelect.rangeCount)\n contextCache = { rangeCount: editor.multiSelect.rangeCount };\n }\n if (contextCache[id])\n return context = contextCache[id];\n context = contextCache[id] = {\n autoInsertedBrackets: 0,\n autoInsertedRow: -1,\n autoInsertedLineEnd: \"\",\n maybeInsertedBrackets: 0,\n maybeInsertedRow: -1,\n maybeInsertedLineStart: \"\",\n maybeInsertedLineEnd: \"\"\n };\n};\nvar getWrapped = function (selection, selected, opening, closing) {\n var rowDiff = selection.end.row - selection.start.row;\n return {\n text: opening + selected + closing,\n selection: [\n 0,\n selection.start.column + 1,\n rowDiff,\n selection.end.column + (rowDiff ? 0 : 1)\n ]\n };\n};\nvar CstyleBehaviour = function (options) {\n options = options || {};\n this.add(\"braces\", \"insertion\", function (state, action, editor, session, text) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (text == '{') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && selected !== \"{\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '{', '}');\n }\n else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n if (/[\\]\\}\\)]/.test(line[cursor.column]) || editor.inMultiSelectMode || options.braces) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"}\");\n return {\n text: '{}',\n selection: [1, 1]\n };\n }\n else {\n CstyleBehaviour.recordMaybeInsert(editor, session, \"{\");\n return {\n text: '{',\n selection: [1, 1]\n };\n }\n }\n }\n else if (text == '}') {\n initContext(editor);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == '}') {\n var matching = session.$findOpeningBracket('}', { column: cursor.column + 1, row: cursor.row });\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n else if (text == \"\\n\" || text == \"\\r\\n\") {\n initContext(editor);\n var closing = \"\";\n if (CstyleBehaviour.isMaybeInsertedClosing(cursor, line)) {\n closing = lang.stringRepeat(\"}\", context.maybeInsertedBrackets);\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === '}') {\n var openBracePos = session.findMatchingBracket({ row: cursor.row, column: cursor.column + 1 }, '}');\n if (!openBracePos)\n return null;\n var next_indent = this.$getIndent(session.getLine(openBracePos.row));\n }\n else if (closing) {\n var next_indent = this.$getIndent(line);\n }\n else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n return;\n }\n var indent = next_indent + session.getTabString();\n return {\n text: '\\n' + indent + '\\n' + next_indent + closing,\n selection: [1, indent.length, 1, indent.length]\n };\n }\n else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n });\n this.add(\"braces\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '{') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.end.column, range.end.column + 1);\n if (rightChar == '}') {\n range.end.column++;\n return range;\n }\n else {\n context.maybeInsertedBrackets--;\n }\n }\n });\n this.add(\"parens\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '(') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '(', ')');\n }\n else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \")\");\n return {\n text: '()',\n selection: [1, 1]\n };\n }\n }\n else if (text == ')') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ')') {\n var matching = session.$findOpeningBracket(')', { column: cursor.column + 1, row: cursor.row });\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n this.add(\"parens\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '(') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ')') {\n range.end.column++;\n return range;\n }\n }\n });\n this.add(\"brackets\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '[') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '[', ']');\n }\n else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"]\");\n return {\n text: '[]',\n selection: [1, 1]\n };\n }\n }\n else if (text == ']') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ']') {\n var matching = session.$findOpeningBracket(']', { column: cursor.column + 1, row: cursor.row });\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n this.add(\"brackets\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '[') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ']') {\n range.end.column++;\n return range;\n }\n }\n });\n this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n var quotes = session.$mode.$quotes || defaultQuotes;\n if (text.length == 1 && quotes[text]) {\n if (this.lineCommentStart && this.lineCommentStart.indexOf(text) != -1)\n return;\n initContext(editor);\n var quote = text;\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && (selected.length != 1 || !quotes[selected]) && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, quote, quote);\n }\n else if (!selected) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var leftChar = line.substring(cursor.column - 1, cursor.column);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n var token = session.getTokenAt(cursor.row, cursor.column);\n var rightToken = session.getTokenAt(cursor.row, cursor.column + 1);\n if (leftChar == \"\\\\\" && token && /escape/.test(token.type))\n return null;\n var stringBefore = token && /string|escape/.test(token.type);\n var stringAfter = !rightToken || /string|escape/.test(rightToken.type);\n var pair;\n if (rightChar == quote) {\n pair = stringBefore !== stringAfter;\n if (pair && /string\\.end/.test(rightToken.type))\n pair = false;\n }\n else {\n if (stringBefore && !stringAfter)\n return null; // wrap string with different quote\n if (stringBefore && stringAfter)\n return null; // do not pair quotes inside strings\n var wordRe = session.$mode.tokenRe;\n wordRe.lastIndex = 0;\n var isWordBefore = wordRe.test(leftChar);\n wordRe.lastIndex = 0;\n var isWordAfter = wordRe.test(rightChar);\n var pairQuotesAfter = session.$mode.$pairQuotesAfter;\n var shouldPairQuotes = pairQuotesAfter && pairQuotesAfter[quote] && pairQuotesAfter[quote].test(leftChar);\n if ((!shouldPairQuotes && isWordBefore) || isWordAfter)\n return null; // before or after alphanumeric\n if (rightChar && !/[\\s;,.})\\]\\\\]/.test(rightChar))\n return null; // there is rightChar and it isn't closing\n var charBefore = line[cursor.column - 2];\n if (leftChar == quote && (charBefore == quote || wordRe.test(charBefore)))\n return null;\n pair = true;\n }\n return {\n text: pair ? quote + quote : \"\",\n selection: [1, 1]\n };\n }\n }\n });\n this.add(\"string_dquotes\", \"deletion\", function (state, action, editor, session, range) {\n var quotes = session.$mode.$quotes || defaultQuotes;\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && quotes.hasOwnProperty(selected)) {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n if (options.closeDocComment !== false) {\n this.add(\"doc comment end\", \"insertion\", function (state, action, editor, session, text) {\n if (state === \"doc-start\" && (text === \"\\n\" || text === \"\\r\\n\") && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var nextLine = session.doc.getLine(cursor.row + 1);\n var indent = this.$getIndent(line);\n if (/\\s*\\*/.test(nextLine)) {\n if (/^\\s*\\*/.test(line)) {\n return {\n text: text + indent + \"* \",\n selection: [1, 3 + indent.length, 1, 3 + indent.length]\n };\n }\n else {\n return {\n text: text + indent + \" * \",\n selection: [1, 3 + indent.length, 1, 3 + indent.length]\n };\n }\n }\n if (/\\/\\*\\*/.test(line.substring(0, cursor.column))) {\n return {\n text: text + indent + \" * \" + text + \" \" + indent + \"*/\",\n selection: [1, 4 + indent.length, 1, 4 + indent.length]\n };\n }\n }\n });\n }\n};\nCstyleBehaviour.isSaneInsertion = function (editor, session) {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n if (!this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS)) {\n if (/[)}\\]]/.test(editor.session.getLine(cursor.row)[cursor.column]))\n return true;\n var iterator2 = new TokenIterator(session, cursor.row, cursor.column + 1);\n if (!this.$matchTokenType(iterator2.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS))\n return false;\n }\n iterator.stepForward();\n return iterator.getCurrentTokenRow() !== cursor.row ||\n this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_BEFORE_TOKENS);\n};\nCstyleBehaviour.$matchTokenType = function (token, types) {\n return types.indexOf(token.type || token) > -1;\n};\nCstyleBehaviour.recordAutoInsert = function (editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isAutoInsertedClosing(cursor, line, context.autoInsertedLineEnd[0]))\n context.autoInsertedBrackets = 0;\n context.autoInsertedRow = cursor.row;\n context.autoInsertedLineEnd = bracket + line.substr(cursor.column);\n context.autoInsertedBrackets++;\n};\nCstyleBehaviour.recordMaybeInsert = function (editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isMaybeInsertedClosing(cursor, line))\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = cursor.row;\n context.maybeInsertedLineStart = line.substr(0, cursor.column) + bracket;\n context.maybeInsertedLineEnd = line.substr(cursor.column);\n context.maybeInsertedBrackets++;\n};\nCstyleBehaviour.isAutoInsertedClosing = function (cursor, line, bracket) {\n return context.autoInsertedBrackets > 0 &&\n cursor.row === context.autoInsertedRow &&\n bracket === context.autoInsertedLineEnd[0] &&\n line.substr(cursor.column) === context.autoInsertedLineEnd;\n};\nCstyleBehaviour.isMaybeInsertedClosing = function (cursor, line) {\n return context.maybeInsertedBrackets > 0 &&\n cursor.row === context.maybeInsertedRow &&\n line.substr(cursor.column) === context.maybeInsertedLineEnd &&\n line.substr(0, cursor.column) == context.maybeInsertedLineStart;\n};\nCstyleBehaviour.popAutoInsertedClosing = function () {\n context.autoInsertedLineEnd = context.autoInsertedLineEnd.substr(1);\n context.autoInsertedBrackets--;\n};\nCstyleBehaviour.clearMaybeInsertedClosing = function () {\n if (context) {\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = -1;\n }\n};\noop.inherits(CstyleBehaviour, Behaviour);\nexports.CstyleBehaviour = CstyleBehaviour;\n\n});\n\nace.define(\"ace/unicode\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar wordChars = [48, 9, 8, 25, 5, 0, 2, 25, 48, 0, 11, 0, 5, 0, 6, 22, 2, 30, 2, 457, 5, 11, 15, 4, 8, 0, 2, 0, 18, 116, 2, 1, 3, 3, 9, 0, 2, 2, 2, 0, 2, 19, 2, 82, 2, 138, 2, 4, 3, 155, 12, 37, 3, 0, 8, 38, 10, 44, 2, 0, 2, 1, 2, 1, 2, 0, 9, 26, 6, 2, 30, 10, 7, 61, 2, 9, 5, 101, 2, 7, 3, 9, 2, 18, 3, 0, 17, 58, 3, 100, 15, 53, 5, 0, 6, 45, 211, 57, 3, 18, 2, 5, 3, 11, 3, 9, 2, 1, 7, 6, 2, 2, 2, 7, 3, 1, 3, 21, 2, 6, 2, 0, 4, 3, 3, 8, 3, 1, 3, 3, 9, 0, 5, 1, 2, 4, 3, 11, 16, 2, 2, 5, 5, 1, 3, 21, 2, 6, 2, 1, 2, 1, 2, 1, 3, 0, 2, 4, 5, 1, 3, 2, 4, 0, 8, 3, 2, 0, 8, 15, 12, 2, 2, 8, 2, 2, 2, 21, 2, 6, 2, 1, 2, 4, 3, 9, 2, 2, 2, 2, 3, 0, 16, 3, 3, 9, 18, 2, 2, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 3, 8, 3, 1, 3, 2, 9, 1, 5, 1, 2, 4, 3, 9, 2, 0, 17, 1, 2, 5, 4, 2, 2, 3, 4, 1, 2, 0, 2, 1, 4, 1, 4, 2, 4, 11, 5, 4, 4, 2, 2, 3, 3, 0, 7, 0, 15, 9, 18, 2, 2, 7, 2, 2, 2, 22, 2, 9, 2, 4, 4, 7, 2, 2, 2, 3, 8, 1, 2, 1, 7, 3, 3, 9, 19, 1, 2, 7, 2, 2, 2, 22, 2, 9, 2, 4, 3, 8, 2, 2, 2, 3, 8, 1, 8, 0, 2, 3, 3, 9, 19, 1, 2, 7, 2, 2, 2, 22, 2, 15, 4, 7, 2, 2, 2, 3, 10, 0, 9, 3, 3, 9, 11, 5, 3, 1, 2, 17, 4, 23, 2, 8, 2, 0, 3, 6, 4, 0, 5, 5, 2, 0, 2, 7, 19, 1, 14, 57, 6, 14, 2, 9, 40, 1, 2, 0, 3, 1, 2, 0, 3, 0, 7, 3, 2, 6, 2, 2, 2, 0, 2, 0, 3, 1, 2, 12, 2, 2, 3, 4, 2, 0, 2, 5, 3, 9, 3, 1, 35, 0, 24, 1, 7, 9, 12, 0, 2, 0, 2, 0, 5, 9, 2, 35, 5, 19, 2, 5, 5, 7, 2, 35, 10, 0, 58, 73, 7, 77, 3, 37, 11, 42, 2, 0, 4, 328, 2, 3, 3, 6, 2, 0, 2, 3, 3, 40, 2, 3, 3, 32, 2, 3, 3, 6, 2, 0, 2, 3, 3, 14, 2, 56, 2, 3, 3, 66, 5, 0, 33, 15, 17, 84, 13, 619, 3, 16, 2, 25, 6, 74, 22, 12, 2, 6, 12, 20, 12, 19, 13, 12, 2, 2, 2, 1, 13, 51, 3, 29, 4, 0, 5, 1, 3, 9, 34, 2, 3, 9, 7, 87, 9, 42, 6, 69, 11, 28, 4, 11, 5, 11, 11, 39, 3, 4, 12, 43, 5, 25, 7, 10, 38, 27, 5, 62, 2, 28, 3, 10, 7, 9, 14, 0, 89, 75, 5, 9, 18, 8, 13, 42, 4, 11, 71, 55, 9, 9, 4, 48, 83, 2, 2, 30, 14, 230, 23, 280, 3, 5, 3, 37, 3, 5, 3, 7, 2, 0, 2, 0, 2, 0, 2, 30, 3, 52, 2, 6, 2, 0, 4, 2, 2, 6, 4, 3, 3, 5, 5, 12, 6, 2, 2, 6, 67, 1, 20, 0, 29, 0, 14, 0, 17, 4, 60, 12, 5, 0, 4, 11, 18, 0, 5, 0, 3, 9, 2, 0, 4, 4, 7, 0, 2, 0, 2, 0, 2, 3, 2, 10, 3, 3, 6, 4, 5, 0, 53, 1, 2684, 46, 2, 46, 2, 132, 7, 6, 15, 37, 11, 53, 10, 0, 17, 22, 10, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 31, 48, 0, 470, 1, 36, 5, 2, 4, 6, 1, 5, 85, 3, 1, 3, 2, 2, 89, 2, 3, 6, 40, 4, 93, 18, 23, 57, 15, 513, 6581, 75, 20939, 53, 1164, 68, 45, 3, 268, 4, 27, 21, 31, 3, 13, 13, 1, 2, 24, 9, 69, 11, 1, 38, 8, 3, 102, 3, 1, 111, 44, 25, 51, 13, 68, 12, 9, 7, 23, 4, 0, 5, 45, 3, 35, 13, 28, 4, 64, 15, 10, 39, 54, 10, 13, 3, 9, 7, 22, 4, 1, 5, 66, 25, 2, 227, 42, 2, 1, 3, 9, 7, 11171, 13, 22, 5, 48, 8453, 301, 3, 61, 3, 105, 39, 6, 13, 4, 6, 11, 2, 12, 2, 4, 2, 0, 2, 1, 2, 1, 2, 107, 34, 362, 19, 63, 3, 53, 41, 11, 5, 15, 17, 6, 13, 1, 25, 2, 33, 4, 2, 134, 20, 9, 8, 25, 5, 0, 2, 25, 12, 88, 4, 5, 3, 5, 3, 5, 3, 2];\nvar code = 0;\nvar str = [];\nfor (var i = 0; i < wordChars.length; i += 2) {\n str.push(code += wordChars[i]);\n if (wordChars[i + 1])\n str.push(45, code += wordChars[i + 1]);\n}\nexports.wordChars = String.fromCharCode.apply(null, str);\n\n});\n\nace.define(\"ace/mode/text\",[\"require\",\"exports\",\"module\",\"ace/config\",\"ace/tokenizer\",\"ace/mode/text_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/unicode\",\"ace/lib/lang\",\"ace/token_iterator\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar config = require(\"../config\");\nvar Tokenizer = require(\"../tokenizer\").Tokenizer;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar unicode = require(\"../unicode\");\nvar lang = require(\"../lib/lang\");\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nvar Range = require(\"../range\").Range;\nvar Mode = function () {\n this.HighlightRules = TextHighlightRules;\n};\n(function () {\n this.$defaultBehaviour = new CstyleBehaviour();\n this.tokenRe = new RegExp(\"^[\" + unicode.wordChars + \"\\\\$_]+\", \"g\");\n this.nonTokenRe = new RegExp(\"^(?:[^\" + unicode.wordChars + \"\\\\$_]|\\\\s])+\", \"g\");\n this.getTokenizer = function () {\n if (!this.$tokenizer) {\n this.$highlightRules = this.$highlightRules || new this.HighlightRules(this.$highlightRuleConfig);\n this.$tokenizer = new Tokenizer(this.$highlightRules.getRules());\n }\n return this.$tokenizer;\n };\n this.lineCommentStart = \"\";\n this.blockComment = \"\";\n this.toggleCommentLines = function (state, session, startRow, endRow) {\n var doc = session.doc;\n var ignoreBlankLines = true;\n var shouldRemove = true;\n var minIndent = Infinity;\n var tabSize = session.getTabSize();\n var insertAtTabStop = false;\n if (!this.lineCommentStart) {\n if (!this.blockComment)\n return false;\n var lineCommentStart = this.blockComment.start;\n var lineCommentEnd = this.blockComment.end;\n var regexpStart = new RegExp(\"^(\\\\s*)(?:\" + lang.escapeRegExp(lineCommentStart) + \")\");\n var regexpEnd = new RegExp(\"(?:\" + lang.escapeRegExp(lineCommentEnd) + \")\\\\s*$\");\n var comment = function (line, i) {\n if (testRemove(line, i))\n return;\n if (!ignoreBlankLines || /\\S/.test(line)) {\n doc.insertInLine({ row: i, column: line.length }, lineCommentEnd);\n doc.insertInLine({ row: i, column: minIndent }, lineCommentStart);\n }\n };\n var uncomment = function (line, i) {\n var m;\n if (m = line.match(regexpEnd))\n doc.removeInLine(i, line.length - m[0].length, line.length);\n if (m = line.match(regexpStart))\n doc.removeInLine(i, m[1].length, m[0].length);\n };\n var testRemove = function (line, row) {\n if (regexpStart.test(line))\n return true;\n var tokens = session.getTokens(row);\n for (var i = 0; i < tokens.length; i++) {\n if (tokens[i].type === \"comment\")\n return true;\n }\n };\n }\n else {\n if (Array.isArray(this.lineCommentStart)) {\n var regexpStart = this.lineCommentStart.map(lang.escapeRegExp).join(\"|\");\n var lineCommentStart = this.lineCommentStart[0];\n }\n else {\n var regexpStart = lang.escapeRegExp(this.lineCommentStart);\n var lineCommentStart = this.lineCommentStart;\n }\n regexpStart = new RegExp(\"^(\\\\s*)(?:\" + regexpStart + \") ?\");\n insertAtTabStop = session.getUseSoftTabs();\n var uncomment = function (line, i) {\n var m = line.match(regexpStart);\n if (!m)\n return;\n var start = m[1].length, end = m[0].length;\n if (!shouldInsertSpace(line, start, end) && m[0][end - 1] == \" \")\n end--;\n doc.removeInLine(i, start, end);\n };\n var commentWithSpace = lineCommentStart + \" \";\n var comment = function (line, i) {\n if (!ignoreBlankLines || /\\S/.test(line)) {\n if (shouldInsertSpace(line, minIndent, minIndent))\n doc.insertInLine({ row: i, column: minIndent }, commentWithSpace);\n else\n doc.insertInLine({ row: i, column: minIndent }, lineCommentStart);\n }\n };\n var testRemove = function (line, i) {\n return regexpStart.test(line);\n };\n var shouldInsertSpace = function (line, before, after) {\n var spaces = 0;\n while (before-- && line.charAt(before) == \" \")\n spaces++;\n if (spaces % tabSize != 0)\n return false;\n var spaces = 0;\n while (line.charAt(after++) == \" \")\n spaces++;\n if (tabSize > 2)\n return spaces % tabSize != tabSize - 1;\n else\n return spaces % tabSize == 0;\n };\n }\n function iter(fun) {\n for (var i = startRow; i <= endRow; i++)\n fun(doc.getLine(i), i);\n }\n var minEmptyLength = Infinity;\n iter(function (line, i) {\n var indent = line.search(/\\S/);\n if (indent !== -1) {\n if (indent < minIndent)\n minIndent = indent;\n if (shouldRemove && !testRemove(line, i))\n shouldRemove = false;\n }\n else if (minEmptyLength > line.length) {\n minEmptyLength = line.length;\n }\n });\n if (minIndent == Infinity) {\n minIndent = minEmptyLength;\n ignoreBlankLines = false;\n shouldRemove = false;\n }\n if (insertAtTabStop && minIndent % tabSize != 0)\n minIndent = Math.floor(minIndent / tabSize) * tabSize;\n iter(shouldRemove ? uncomment : comment);\n };\n this.toggleBlockComment = function (state, session, range, cursor) {\n var comment = this.blockComment;\n if (!comment)\n return;\n if (!comment.start && comment[0])\n comment = comment[0];\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n var sel = session.selection;\n var initialRange = session.selection.toOrientedRange();\n var startRow, colDiff;\n if (token && /comment/.test(token.type)) {\n var startRange, endRange;\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.start);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n startRange = new Range(row, column, row, column + comment.start.length);\n break;\n }\n token = iterator.stepBackward();\n }\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.end);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n endRange = new Range(row, column, row, column + comment.end.length);\n break;\n }\n token = iterator.stepForward();\n }\n if (endRange)\n session.remove(endRange);\n if (startRange) {\n session.remove(startRange);\n startRow = startRange.start.row;\n colDiff = -comment.start.length;\n }\n }\n else {\n colDiff = comment.start.length;\n startRow = range.start.row;\n session.insert(range.end, comment.end);\n session.insert(range.start, comment.start);\n }\n if (initialRange.start.row == startRow)\n initialRange.start.column += colDiff;\n if (initialRange.end.row == startRow)\n initialRange.end.column += colDiff;\n session.selection.fromOrientedRange(initialRange);\n };\n this.getNextLineIndent = function (state, line, tab) {\n return this.$getIndent(line);\n };\n this.checkOutdent = function (state, line, input) {\n return false;\n };\n this.autoOutdent = function (state, doc, row) {\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n this.createWorker = function (session) {\n return null;\n };\n this.createModeDelegates = function (mapping) {\n this.$embeds = [];\n this.$modes = {};\n for (var i in mapping) {\n if (mapping[i]) {\n var Mode = mapping[i];\n var id = Mode.prototype.$id;\n var mode = config.$modes[id];\n if (!mode)\n config.$modes[id] = mode = new Mode();\n if (!config.$modes[i])\n config.$modes[i] = mode;\n this.$embeds.push(i);\n this.$modes[i] = mode;\n }\n }\n var delegations = [\"toggleBlockComment\", \"toggleCommentLines\", \"getNextLineIndent\",\n \"checkOutdent\", \"autoOutdent\", \"transformAction\", \"getCompletions\"];\n for (var i = 0; i < delegations.length; i++) {\n (function (scope) {\n var functionName = delegations[i];\n var defaultHandler = scope[functionName];\n scope[delegations[i]] = function () {\n return this.$delegator(functionName, arguments, defaultHandler);\n };\n }(this));\n }\n };\n this.$delegator = function (method, args, defaultHandler) {\n var state = args[0] || \"start\";\n if (typeof state != \"string\") {\n if (Array.isArray(state[2])) {\n var language = state[2][state[2].length - 1];\n var mode = this.$modes[language];\n if (mode)\n return mode[method].apply(mode, [state[1]].concat([].slice.call(args, 1)));\n }\n state = state[0] || \"start\";\n }\n for (var i = 0; i < this.$embeds.length; i++) {\n if (!this.$modes[this.$embeds[i]])\n continue;\n var split = state.split(this.$embeds[i]);\n if (!split[0] && split[1]) {\n args[0] = split[1];\n var mode = this.$modes[this.$embeds[i]];\n return mode[method].apply(mode, args);\n }\n }\n var ret = defaultHandler.apply(this, args);\n return defaultHandler ? ret : undefined;\n };\n this.transformAction = function (state, action, editor, session, param) {\n if (this.$behaviour) {\n var behaviours = this.$behaviour.getBehaviours();\n for (var key in behaviours) {\n if (behaviours[key][action]) {\n var ret = behaviours[key][action].apply(this, arguments);\n if (ret) {\n return ret;\n }\n }\n }\n }\n };\n this.getKeywords = function (append) {\n if (!this.completionKeywords) {\n var rules = this.$tokenizer.rules;\n var completionKeywords = [];\n for (var rule in rules) {\n var ruleItr = rules[rule];\n for (var r = 0, l = ruleItr.length; r < l; r++) {\n if (typeof ruleItr[r].token === \"string\") {\n if (/keyword|support|storage/.test(ruleItr[r].token))\n completionKeywords.push(ruleItr[r].regex);\n }\n else if (typeof ruleItr[r].token === \"object\") {\n for (var a = 0, aLength = ruleItr[r].token.length; a < aLength; a++) {\n if (/keyword|support|storage/.test(ruleItr[r].token[a])) {\n var rule = ruleItr[r].regex.match(/\\(.+?\\)/g)[a];\n completionKeywords.push(rule.substr(1, rule.length - 2));\n }\n }\n }\n }\n }\n this.completionKeywords = completionKeywords;\n }\n if (!append)\n return this.$keywordList;\n return completionKeywords.concat(this.$keywordList || []);\n };\n this.$createKeywordList = function () {\n if (!this.$highlightRules)\n this.getTokenizer();\n return this.$keywordList = this.$highlightRules.$keywordList || [];\n };\n this.getCompletions = function (state, session, pos, prefix) {\n var keywords = this.$keywordList || this.$createKeywordList();\n return keywords.map(function (word) {\n return {\n name: word,\n value: word,\n score: 0,\n meta: \"keyword\"\n };\n });\n };\n this.$id = \"ace/mode/text\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n});\n\nace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nfunction throwDeltaError(delta, errorText) {\n console.log(\"Invalid Delta:\", delta);\n throw \"Invalid Delta: \" + errorText;\n}\nfunction positionInDocument(docLines, position) {\n return position.row >= 0 && position.row < docLines.length &&\n position.column >= 0 && position.column <= docLines[position.row].length;\n}\nfunction validateDelta(docLines, delta) {\n if (delta.action != \"insert\" && delta.action != \"remove\")\n throwDeltaError(delta, \"delta.action must be 'insert' or 'remove'\");\n if (!(delta.lines instanceof Array))\n throwDeltaError(delta, \"delta.lines must be an Array\");\n if (!delta.start || !delta.end)\n throwDeltaError(delta, \"delta.start/end must be an present\");\n var start = delta.start;\n if (!positionInDocument(docLines, delta.start))\n throwDeltaError(delta, \"delta.start must be contained in document\");\n var end = delta.end;\n if (delta.action == \"remove\" && !positionInDocument(docLines, end))\n throwDeltaError(delta, \"delta.end must contained in document for 'remove' actions\");\n var numRangeRows = end.row - start.row;\n var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0));\n if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars)\n throwDeltaError(delta, \"delta.range must match delta lines\");\n}\nexports.applyDelta = function (docLines, delta, doNotValidate) {\n var row = delta.start.row;\n var startColumn = delta.start.column;\n var line = docLines[row] || \"\";\n switch (delta.action) {\n case \"insert\":\n var lines = delta.lines;\n if (lines.length === 1) {\n docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn);\n }\n else {\n var args = [row, 1].concat(delta.lines);\n docLines.splice.apply(docLines, args);\n docLines[row] = line.substring(0, startColumn) + docLines[row];\n docLines[row + delta.lines.length - 1] += line.substring(startColumn);\n }\n break;\n case \"remove\":\n var endColumn = delta.end.column;\n var endRow = delta.end.row;\n if (row === endRow) {\n docLines[row] = line.substring(0, startColumn) + line.substring(endColumn);\n }\n else {\n docLines.splice(row, endRow - row + 1, line.substring(0, startColumn) + docLines[endRow].substring(endColumn));\n }\n break;\n }\n};\n\n});\n\nace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Anchor = /** @class */ (function () {\n function Anchor(doc, row, column) {\n this.$onChange = this.onChange.bind(this);\n this.attach(doc);\n if (typeof column == \"undefined\")\n this.setPosition(row.row, row.column);\n else\n this.setPosition(row, column);\n }\n Anchor.prototype.getPosition = function () {\n return this.$clipPositionToDocument(this.row, this.column);\n };\n Anchor.prototype.getDocument = function () {\n return this.document;\n };\n Anchor.prototype.onChange = function (delta) {\n if (delta.start.row == delta.end.row && delta.start.row != this.row)\n return;\n if (delta.start.row > this.row)\n return;\n var point = $getTransformedPoint(delta, { row: this.row, column: this.column }, this.$insertRight);\n this.setPosition(point.row, point.column, true);\n };\n Anchor.prototype.setPosition = function (row, column, noClip) {\n var pos;\n if (noClip) {\n pos = {\n row: row,\n column: column\n };\n }\n else {\n pos = this.$clipPositionToDocument(row, column);\n }\n if (this.row == pos.row && this.column == pos.column)\n return;\n var old = {\n row: this.row,\n column: this.column\n };\n this.row = pos.row;\n this.column = pos.column;\n this._signal(\"change\", {\n old: old,\n value: pos\n });\n };\n Anchor.prototype.detach = function () {\n this.document.off(\"change\", this.$onChange);\n };\n Anchor.prototype.attach = function (doc) {\n this.document = doc || this.document;\n this.document.on(\"change\", this.$onChange);\n };\n Anchor.prototype.$clipPositionToDocument = function (row, column) {\n var pos = {};\n if (row >= this.document.getLength()) {\n pos.row = Math.max(0, this.document.getLength() - 1);\n pos.column = this.document.getLine(pos.row).length;\n }\n else if (row < 0) {\n pos.row = 0;\n pos.column = 0;\n }\n else {\n pos.row = row;\n pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));\n }\n if (column < 0)\n pos.column = 0;\n return pos;\n };\n return Anchor;\n}());\nAnchor.prototype.$insertRight = false;\noop.implement(Anchor.prototype, EventEmitter);\nfunction $pointsInOrder(point1, point2, equalPointsInOrder) {\n var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column;\n return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter);\n}\nfunction $getTransformedPoint(delta, point, moveIfEqual) {\n var deltaIsInsert = delta.action == \"insert\";\n var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row - delta.start.row);\n var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column);\n var deltaStart = delta.start;\n var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range.\n if ($pointsInOrder(point, deltaStart, moveIfEqual)) {\n return {\n row: point.row,\n column: point.column\n };\n }\n if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) {\n return {\n row: point.row + deltaRowShift,\n column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0)\n };\n }\n return {\n row: deltaStart.row,\n column: deltaStart.column\n };\n}\nexports.Anchor = Anchor;\n\n});\n\nace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar applyDelta = require(\"./apply_delta\").applyDelta;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Range = require(\"./range\").Range;\nvar Anchor = require(\"./anchor\").Anchor;\nvar Document = /** @class */ (function () {\n function Document(textOrLines) {\n this.$lines = [\"\"];\n if (textOrLines.length === 0) {\n this.$lines = [\"\"];\n }\n else if (Array.isArray(textOrLines)) {\n this.insertMergedLines({ row: 0, column: 0 }, textOrLines);\n }\n else {\n this.insert({ row: 0, column: 0 }, textOrLines);\n }\n }\n Document.prototype.setValue = function (text) {\n var len = this.getLength() - 1;\n this.remove(new Range(0, 0, len, this.getLine(len).length));\n this.insert({ row: 0, column: 0 }, text || \"\");\n };\n Document.prototype.getValue = function () {\n return this.getAllLines().join(this.getNewLineCharacter());\n };\n Document.prototype.createAnchor = function (row, column) {\n return new Anchor(this, row, column);\n };\n Document.prototype.$detectNewLine = function (text) {\n var match = text.match(/^.*?(\\r\\n|\\r|\\n)/m);\n this.$autoNewLine = match ? match[1] : \"\\n\";\n this._signal(\"changeNewLineMode\");\n };\n Document.prototype.getNewLineCharacter = function () {\n switch (this.$newLineMode) {\n case \"windows\":\n return \"\\r\\n\";\n case \"unix\":\n return \"\\n\";\n default:\n return this.$autoNewLine || \"\\n\";\n }\n };\n Document.prototype.setNewLineMode = function (newLineMode) {\n if (this.$newLineMode === newLineMode)\n return;\n this.$newLineMode = newLineMode;\n this._signal(\"changeNewLineMode\");\n };\n Document.prototype.getNewLineMode = function () {\n return this.$newLineMode;\n };\n Document.prototype.isNewLine = function (text) {\n return (text == \"\\r\\n\" || text == \"\\r\" || text == \"\\n\");\n };\n Document.prototype.getLine = function (row) {\n return this.$lines[row] || \"\";\n };\n Document.prototype.getLines = function (firstRow, lastRow) {\n return this.$lines.slice(firstRow, lastRow + 1);\n };\n Document.prototype.getAllLines = function () {\n return this.getLines(0, this.getLength());\n };\n Document.prototype.getLength = function () {\n return this.$lines.length;\n };\n Document.prototype.getTextRange = function (range) {\n return this.getLinesForRange(range).join(this.getNewLineCharacter());\n };\n Document.prototype.getLinesForRange = function (range) {\n var lines;\n if (range.start.row === range.end.row) {\n lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)];\n }\n else {\n lines = this.getLines(range.start.row, range.end.row);\n lines[0] = (lines[0] || \"\").substring(range.start.column);\n var l = lines.length - 1;\n if (range.end.row - range.start.row == l)\n lines[l] = lines[l].substring(0, range.end.column);\n }\n return lines;\n };\n Document.prototype.insertLines = function (row, lines) {\n console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\");\n return this.insertFullLines(row, lines);\n };\n Document.prototype.removeLines = function (firstRow, lastRow) {\n console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\");\n return this.removeFullLines(firstRow, lastRow);\n };\n Document.prototype.insertNewLine = function (position) {\n console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\");\n return this.insertMergedLines(position, [\"\", \"\"]);\n };\n Document.prototype.insert = function (position, text) {\n if (this.getLength() <= 1)\n this.$detectNewLine(text);\n return this.insertMergedLines(position, this.$split(text));\n };\n Document.prototype.insertInLine = function (position, text) {\n var start = this.clippedPos(position.row, position.column);\n var end = this.pos(position.row, position.column + text.length);\n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: [text]\n }, true);\n return this.clonePos(end);\n };\n Document.prototype.clippedPos = function (row, column) {\n var length = this.getLength();\n if (row === undefined) {\n row = length;\n }\n else if (row < 0) {\n row = 0;\n }\n else if (row >= length) {\n row = length - 1;\n column = undefined;\n }\n var line = this.getLine(row);\n if (column == undefined)\n column = line.length;\n column = Math.min(Math.max(column, 0), line.length);\n return { row: row, column: column };\n };\n Document.prototype.clonePos = function (pos) {\n return { row: pos.row, column: pos.column };\n };\n Document.prototype.pos = function (row, column) {\n return { row: row, column: column };\n };\n Document.prototype.$clipPosition = function (position) {\n var length = this.getLength();\n if (position.row >= length) {\n position.row = Math.max(0, length - 1);\n position.column = this.getLine(length - 1).length;\n }\n else {\n position.row = Math.max(0, position.row);\n position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length);\n }\n return position;\n };\n Document.prototype.insertFullLines = function (row, lines) {\n row = Math.min(Math.max(row, 0), this.getLength());\n var column = 0;\n if (row < this.getLength()) {\n lines = lines.concat([\"\"]);\n column = 0;\n }\n else {\n lines = [\"\"].concat(lines);\n row--;\n column = this.$lines[row].length;\n }\n this.insertMergedLines({ row: row, column: column }, lines);\n };\n Document.prototype.insertMergedLines = function (position, lines) {\n var start = this.clippedPos(position.row, position.column);\n var end = {\n row: start.row + lines.length - 1,\n column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length\n };\n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: lines\n });\n return this.clonePos(end);\n };\n Document.prototype.remove = function (range) {\n var start = this.clippedPos(range.start.row, range.start.column);\n var end = this.clippedPos(range.end.row, range.end.column);\n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({ start: start, end: end })\n });\n return this.clonePos(start);\n };\n Document.prototype.removeInLine = function (row, startColumn, endColumn) {\n var start = this.clippedPos(row, startColumn);\n var end = this.clippedPos(row, endColumn);\n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({ start: start, end: end })\n }, true);\n return this.clonePos(start);\n };\n Document.prototype.removeFullLines = function (firstRow, lastRow) {\n firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1);\n lastRow = Math.min(Math.max(0, lastRow), this.getLength() - 1);\n var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0;\n var deleteLastNewLine = lastRow < this.getLength() - 1;\n var startRow = (deleteFirstNewLine ? firstRow - 1 : firstRow);\n var startCol = (deleteFirstNewLine ? this.getLine(startRow).length : 0);\n var endRow = (deleteLastNewLine ? lastRow + 1 : lastRow);\n var endCol = (deleteLastNewLine ? 0 : this.getLine(endRow).length);\n var range = new Range(startRow, startCol, endRow, endCol);\n var deletedLines = this.$lines.slice(firstRow, lastRow + 1);\n this.applyDelta({\n start: range.start,\n end: range.end,\n action: \"remove\",\n lines: this.getLinesForRange(range)\n });\n return deletedLines;\n };\n Document.prototype.removeNewLine = function (row) {\n if (row < this.getLength() - 1 && row >= 0) {\n this.applyDelta({\n start: this.pos(row, this.getLine(row).length),\n end: this.pos(row + 1, 0),\n action: \"remove\",\n lines: [\"\", \"\"]\n });\n }\n };\n Document.prototype.replace = function (range, text) {\n if (!(range instanceof Range))\n range = Range.fromPoints(range.start, range.end);\n if (text.length === 0 && range.isEmpty())\n return range.start;\n if (text == this.getTextRange(range))\n return range.end;\n this.remove(range);\n var end;\n if (text) {\n end = this.insert(range.start, text);\n }\n else {\n end = range.start;\n }\n return end;\n };\n Document.prototype.applyDeltas = function (deltas) {\n for (var i = 0; i < deltas.length; i++) {\n this.applyDelta(deltas[i]);\n }\n };\n Document.prototype.revertDeltas = function (deltas) {\n for (var i = deltas.length - 1; i >= 0; i--) {\n this.revertDelta(deltas[i]);\n }\n };\n Document.prototype.applyDelta = function (delta, doNotValidate) {\n var isInsert = delta.action == \"insert\";\n if (isInsert ? delta.lines.length <= 1 && !delta.lines[0]\n : !Range.comparePoints(delta.start, delta.end)) {\n return;\n }\n if (isInsert && delta.lines.length > 20000) {\n this.$splitAndapplyLargeDelta(delta, 20000);\n }\n else {\n applyDelta(this.$lines, delta, doNotValidate);\n this._signal(\"change\", delta);\n }\n };\n Document.prototype.$safeApplyDelta = function (delta) {\n var docLength = this.$lines.length;\n if (delta.action == \"remove\" && delta.start.row < docLength && delta.end.row < docLength\n || delta.action == \"insert\" && delta.start.row <= docLength) {\n this.applyDelta(delta);\n }\n };\n Document.prototype.$splitAndapplyLargeDelta = function (delta, MAX) {\n var lines = delta.lines;\n var l = lines.length - MAX + 1;\n var row = delta.start.row;\n var column = delta.start.column;\n for (var from = 0, to = 0; from < l; from = to) {\n to += MAX - 1;\n var chunk = lines.slice(from, to);\n chunk.push(\"\");\n this.applyDelta({\n start: this.pos(row + from, column),\n end: this.pos(row + to, column = 0),\n action: delta.action,\n lines: chunk\n }, true);\n }\n delta.lines = lines.slice(from);\n delta.start.row = row + from;\n delta.start.column = column;\n this.applyDelta(delta, true);\n };\n Document.prototype.revertDelta = function (delta) {\n this.$safeApplyDelta({\n start: this.clonePos(delta.start),\n end: this.clonePos(delta.end),\n action: (delta.action == \"insert\" ? \"remove\" : \"insert\"),\n lines: delta.lines.slice()\n });\n };\n Document.prototype.indexToPosition = function (index, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n for (var i = startRow || 0, l = lines.length; i < l; i++) {\n index -= lines[i].length + newlineLength;\n if (index < 0)\n return { row: i, column: index + lines[i].length + newlineLength };\n }\n return { row: l - 1, column: index + lines[l - 1].length + newlineLength };\n };\n Document.prototype.positionToIndex = function (pos, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n var index = 0;\n var row = Math.min(pos.row, lines.length);\n for (var i = startRow || 0; i < row; ++i)\n index += lines[i].length + newlineLength;\n return index + pos.column;\n };\n Document.prototype.$split = function (text) {\n return text.split(/\\r\\n|\\r|\\n/);\n };\n return Document;\n}());\nDocument.prototype.$autoNewLine = \"\";\nDocument.prototype.$newLineMode = \"auto\";\noop.implement(Document.prototype, EventEmitter);\nexports.Document = Document;\n\n});\n\nace.define(\"ace/background_tokenizer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar BackgroundTokenizer = /** @class */ (function () {\n function BackgroundTokenizer(tokenizer, editor) {\n this.running = false;\n this.lines = [];\n this.states = [];\n this.currentLine = 0;\n this.tokenizer = tokenizer;\n var self = this;\n this.$worker = function () {\n if (!self.running) {\n return;\n }\n var workerStart = new Date();\n var currentLine = self.currentLine;\n var endLine = -1;\n var doc = self.doc;\n var startLine = currentLine;\n while (self.lines[currentLine])\n currentLine++;\n var len = doc.getLength();\n var processedLines = 0;\n self.running = false;\n while (currentLine < len) {\n self.$tokenizeRow(currentLine);\n endLine = currentLine;\n do {\n currentLine++;\n } while (self.lines[currentLine]);\n processedLines++;\n if ((processedLines % 5 === 0) && (new Date() - workerStart) > 20) {\n self.running = setTimeout(self.$worker, 20);\n break;\n }\n }\n self.currentLine = currentLine;\n if (endLine == -1)\n endLine = currentLine;\n if (startLine <= endLine)\n self.fireUpdateEvent(startLine, endLine);\n };\n }\n BackgroundTokenizer.prototype.setTokenizer = function (tokenizer) {\n this.tokenizer = tokenizer;\n this.lines = [];\n this.states = [];\n this.start(0);\n };\n BackgroundTokenizer.prototype.setDocument = function (doc) {\n this.doc = doc;\n this.lines = [];\n this.states = [];\n this.stop();\n };\n BackgroundTokenizer.prototype.fireUpdateEvent = function (firstRow, lastRow) {\n var data = {\n first: firstRow,\n last: lastRow\n };\n this._signal(\"update\", { data: data });\n };\n BackgroundTokenizer.prototype.start = function (startRow) {\n this.currentLine = Math.min(startRow || 0, this.currentLine, this.doc.getLength());\n this.lines.splice(this.currentLine, this.lines.length);\n this.states.splice(this.currentLine, this.states.length);\n this.stop();\n this.running = setTimeout(this.$worker, 700);\n };\n BackgroundTokenizer.prototype.scheduleStart = function () {\n if (!this.running)\n this.running = setTimeout(this.$worker, 700);\n };\n BackgroundTokenizer.prototype.$updateOnChange = function (delta) {\n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n if (len === 0) {\n this.lines[startRow] = null;\n }\n else if (delta.action == \"remove\") {\n this.lines.splice(startRow, len + 1, null);\n this.states.splice(startRow, len + 1, null);\n }\n else {\n var args = Array(len + 1);\n args.unshift(startRow, 1);\n this.lines.splice.apply(this.lines, args);\n this.states.splice.apply(this.states, args);\n }\n this.currentLine = Math.min(startRow, this.currentLine, this.doc.getLength());\n this.stop();\n };\n BackgroundTokenizer.prototype.stop = function () {\n if (this.running)\n clearTimeout(this.running);\n this.running = false;\n };\n BackgroundTokenizer.prototype.getTokens = function (row) {\n return this.lines[row] || this.$tokenizeRow(row);\n };\n BackgroundTokenizer.prototype.getState = function (row) {\n if (this.currentLine == row)\n this.$tokenizeRow(row);\n return this.states[row] || \"start\";\n };\n BackgroundTokenizer.prototype.$tokenizeRow = function (row) {\n var line = this.doc.getLine(row);\n var state = this.states[row - 1];\n var data = this.tokenizer.getLineTokens(line, state, row);\n if (this.states[row] + \"\" !== data.state + \"\") {\n this.states[row] = data.state;\n this.lines[row + 1] = null;\n if (this.currentLine > row + 1)\n this.currentLine = row + 1;\n }\n else if (this.currentLine == row) {\n this.currentLine = row + 1;\n }\n return this.lines[row] = data.tokens;\n };\n BackgroundTokenizer.prototype.cleanup = function () {\n this.running = false;\n this.lines = [];\n this.states = [];\n this.currentLine = 0;\n this.removeAllListeners();\n };\n return BackgroundTokenizer;\n}());\noop.implement(BackgroundTokenizer.prototype, EventEmitter);\nexports.BackgroundTokenizer = BackgroundTokenizer;\n\n});\n\nace.define(\"ace/search_highlight\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar lang = require(\"./lib/lang\");\nvar Range = require(\"./range\").Range;\nvar SearchHighlight = /** @class */ (function () {\n function SearchHighlight(regExp, clazz, type) {\n if (type === void 0) { type = \"text\"; }\n this.setRegexp(regExp);\n this.clazz = clazz;\n this.type = type;\n }\n SearchHighlight.prototype.setRegexp = function (regExp) {\n if (this.regExp + \"\" == regExp + \"\")\n return;\n this.regExp = regExp;\n this.cache = [];\n };\n SearchHighlight.prototype.update = function (html, markerLayer, session, config) {\n if (!this.regExp)\n return;\n var start = config.firstRow, end = config.lastRow;\n var renderedMarkerRanges = {};\n for (var i = start; i <= end; i++) {\n var ranges = this.cache[i];\n if (ranges == null) {\n ranges = lang.getMatchOffsets(session.getLine(i), this.regExp);\n if (ranges.length > this.MAX_RANGES)\n ranges = ranges.slice(0, this.MAX_RANGES);\n ranges = ranges.map(function (match) {\n return new Range(i, match.offset, i, match.offset + match.length);\n });\n this.cache[i] = ranges.length ? ranges : \"\";\n }\n for (var j = ranges.length; j--;) {\n var rangeToAddMarkerTo = ranges[j].toScreenRange(session);\n var rangeAsString = rangeToAddMarkerTo.toString();\n if (renderedMarkerRanges[rangeAsString])\n continue;\n renderedMarkerRanges[rangeAsString] = true;\n markerLayer.drawSingleLineMarker(html, rangeToAddMarkerTo, this.clazz, config);\n }\n }\n };\n return SearchHighlight;\n}());\nSearchHighlight.prototype.MAX_RANGES = 500;\nexports.SearchHighlight = SearchHighlight;\n\n});\n\nace.define(\"ace/undomanager\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar UndoManager = /** @class */ (function () {\n function UndoManager() {\n this.$maxRev = 0;\n this.$fromUndo = false;\n this.$undoDepth = Infinity;\n this.reset();\n }\n UndoManager.prototype.addSession = function (session) {\n this.$session = session;\n };\n UndoManager.prototype.add = function (delta, allowMerge, session) {\n if (this.$fromUndo)\n return;\n if (delta == this.$lastDelta)\n return;\n if (!this.$keepRedoStack)\n this.$redoStack.length = 0;\n if (allowMerge === false || !this.lastDeltas) {\n this.lastDeltas = [];\n var undoStackLength = this.$undoStack.length;\n if (undoStackLength > this.$undoDepth - 1) {\n this.$undoStack.splice(0, undoStackLength - this.$undoDepth + 1);\n }\n this.$undoStack.push(this.lastDeltas);\n delta.id = this.$rev = ++this.$maxRev;\n }\n if (delta.action == \"remove\" || delta.action == \"insert\")\n this.$lastDelta = delta;\n this.lastDeltas.push(delta);\n };\n UndoManager.prototype.addSelection = function (selection, rev) {\n this.selections.push({\n value: selection,\n rev: rev || this.$rev\n });\n };\n UndoManager.prototype.startNewGroup = function () {\n this.lastDeltas = null;\n return this.$rev;\n };\n UndoManager.prototype.markIgnored = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n var stack = this.$undoStack;\n for (var i = stack.length; i--;) {\n var delta = stack[i][0];\n if (delta.id <= from)\n break;\n if (delta.id < to)\n delta.ignore = true;\n }\n this.lastDeltas = null;\n };\n UndoManager.prototype.getSelection = function (rev, after) {\n var stack = this.selections;\n for (var i = stack.length; i--;) {\n var selection = stack[i];\n if (selection.rev < rev) {\n if (after)\n selection = stack[i + 1];\n return selection;\n }\n }\n };\n UndoManager.prototype.getRevision = function () {\n return this.$rev;\n };\n UndoManager.prototype.getDeltas = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n var stack = this.$undoStack;\n var end = null, start = 0;\n for (var i = stack.length; i--;) {\n var delta = stack[i][0];\n if (delta.id < to && !end)\n end = i + 1;\n if (delta.id <= from) {\n start = i + 1;\n break;\n }\n }\n return stack.slice(start, end);\n };\n UndoManager.prototype.getChangedRanges = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n };\n UndoManager.prototype.getChangedLines = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n };\n UndoManager.prototype.undo = function (session, dontSelect) {\n this.lastDeltas = null;\n var stack = this.$undoStack;\n if (!rearrangeUndoStack(stack, stack.length))\n return;\n if (!session)\n session = this.$session;\n if (this.$redoStackBaseRev !== this.$rev && this.$redoStack.length)\n this.$redoStack = [];\n this.$fromUndo = true;\n var deltaSet = stack.pop();\n var undoSelectionRange = null;\n if (deltaSet) {\n undoSelectionRange = session.undoChanges(deltaSet, dontSelect);\n this.$redoStack.push(deltaSet);\n this.$syncRev();\n }\n this.$fromUndo = false;\n return undoSelectionRange;\n };\n UndoManager.prototype.redo = function (session, dontSelect) {\n this.lastDeltas = null;\n if (!session)\n session = this.$session;\n this.$fromUndo = true;\n if (this.$redoStackBaseRev != this.$rev) {\n var diff = this.getDeltas(this.$redoStackBaseRev, this.$rev + 1);\n rebaseRedoStack(this.$redoStack, diff);\n this.$redoStackBaseRev = this.$rev;\n this.$redoStack.forEach(function (x) {\n x[0].id = ++this.$maxRev;\n }, this);\n }\n var deltaSet = this.$redoStack.pop();\n var redoSelectionRange = null;\n if (deltaSet) {\n redoSelectionRange = session.redoChanges(deltaSet, dontSelect);\n this.$undoStack.push(deltaSet);\n this.$syncRev();\n }\n this.$fromUndo = false;\n return redoSelectionRange;\n };\n UndoManager.prototype.$syncRev = function () {\n var stack = this.$undoStack;\n var nextDelta = stack[stack.length - 1];\n var id = nextDelta && nextDelta[0].id || 0;\n this.$redoStackBaseRev = id;\n this.$rev = id;\n };\n UndoManager.prototype.reset = function () {\n this.lastDeltas = null;\n this.$lastDelta = null;\n this.$undoStack = [];\n this.$redoStack = [];\n this.$rev = 0;\n this.mark = 0;\n this.$redoStackBaseRev = this.$rev;\n this.selections = [];\n };\n UndoManager.prototype.canUndo = function () {\n return this.$undoStack.length > 0;\n };\n UndoManager.prototype.canRedo = function () {\n return this.$redoStack.length > 0;\n };\n UndoManager.prototype.bookmark = function (rev) {\n if (rev == undefined)\n rev = this.$rev;\n this.mark = rev;\n };\n UndoManager.prototype.isAtBookmark = function () {\n return this.$rev === this.mark;\n };\n UndoManager.prototype.toJSON = function () {\n return {\n $redoStack: this.$redoStack,\n $undoStack: this.$undoStack\n };\n };\n UndoManager.prototype.fromJSON = function (json) {\n this.reset();\n this.$undoStack = json.$undoStack;\n this.$redoStack = json.$redoStack;\n };\n UndoManager.prototype.$prettyPrint = function (delta) {\n if (delta)\n return stringifyDelta(delta);\n return stringifyDelta(this.$undoStack) + \"\\n---\\n\" + stringifyDelta(this.$redoStack);\n };\n return UndoManager;\n}());\nUndoManager.prototype.hasUndo = UndoManager.prototype.canUndo;\nUndoManager.prototype.hasRedo = UndoManager.prototype.canRedo;\nUndoManager.prototype.isClean = UndoManager.prototype.isAtBookmark;\nUndoManager.prototype.markClean = UndoManager.prototype.bookmark;\nfunction rearrangeUndoStack(stack, pos) {\n for (var i = pos; i--;) {\n var deltaSet = stack[i];\n if (deltaSet && !deltaSet[0].ignore) {\n while (i < pos - 1) {\n var swapped = swapGroups(stack[i], stack[i + 1]);\n stack[i] = swapped[0];\n stack[i + 1] = swapped[1];\n i++;\n }\n return true;\n }\n }\n}\nvar Range = require(\"./range\").Range;\nvar cmp = Range.comparePoints;\nvar comparePoints = Range.comparePoints;\nfunction $updateMarkers(delta) {\n var isInsert = delta.action == \"insert\";\n var start = delta.start;\n var end = delta.end;\n var rowShift = (end.row - start.row) * (isInsert ? 1 : -1);\n var colShift = (end.column - start.column) * (isInsert ? 1 : -1);\n if (isInsert)\n end = start;\n for (var i in this.marks) {\n var point = this.marks[i];\n var cmp = comparePoints(point, start);\n if (cmp < 0) {\n continue; // delta starts after the range\n }\n if (cmp === 0) {\n if (isInsert) {\n if (point.bias == 1) {\n cmp = 1;\n }\n else {\n point.bias == -1;\n continue;\n }\n }\n }\n var cmp2 = isInsert ? cmp : comparePoints(point, end);\n if (cmp2 > 0) {\n point.row += rowShift;\n point.column += point.row == end.row ? colShift : 0;\n continue;\n }\n if (!isInsert && cmp2 <= 0) {\n point.row = start.row;\n point.column = start.column;\n if (cmp2 === 0)\n point.bias = 1;\n }\n }\n}\nfunction clonePos(pos) {\n return { row: pos.row, column: pos.column };\n}\nfunction cloneDelta(d) {\n return {\n start: clonePos(d.start),\n end: clonePos(d.end),\n action: d.action,\n lines: d.lines.slice()\n };\n}\nfunction stringifyDelta(d) {\n d = d || this;\n if (Array.isArray(d)) {\n return d.map(stringifyDelta).join(\"\\n\");\n }\n var type = \"\";\n if (d.action) {\n type = d.action == \"insert\" ? \"+\" : \"-\";\n type += \"[\" + d.lines + \"]\";\n }\n else if (d.value) {\n if (Array.isArray(d.value)) {\n type = d.value.map(stringifyRange).join(\"\\n\");\n }\n else {\n type = stringifyRange(d.value);\n }\n }\n if (d.start) {\n type += stringifyRange(d);\n }\n if (d.id || d.rev) {\n type += \"\\t(\" + (d.id || d.rev) + \")\";\n }\n return type;\n}\nfunction stringifyRange(r) {\n return r.start.row + \":\" + r.start.column\n + \"=>\" + r.end.row + \":\" + r.end.column;\n}\nfunction swap(d1, d2) {\n var i1 = d1.action == \"insert\";\n var i2 = d2.action == \"insert\";\n if (i1 && i2) {\n if (cmp(d2.start, d1.end) >= 0) {\n shift(d2, d1, -1);\n }\n else if (cmp(d2.start, d1.start) <= 0) {\n shift(d1, d2, +1);\n }\n else {\n return null;\n }\n }\n else if (i1 && !i2) {\n if (cmp(d2.start, d1.end) >= 0) {\n shift(d2, d1, -1);\n }\n else if (cmp(d2.end, d1.start) <= 0) {\n shift(d1, d2, -1);\n }\n else {\n return null;\n }\n }\n else if (!i1 && i2) {\n if (cmp(d2.start, d1.start) >= 0) {\n shift(d2, d1, +1);\n }\n else if (cmp(d2.start, d1.start) <= 0) {\n shift(d1, d2, +1);\n }\n else {\n return null;\n }\n }\n else if (!i1 && !i2) {\n if (cmp(d2.start, d1.start) >= 0) {\n shift(d2, d1, +1);\n }\n else if (cmp(d2.end, d1.start) <= 0) {\n shift(d1, d2, -1);\n }\n else {\n return null;\n }\n }\n return [d2, d1];\n}\nfunction swapGroups(ds1, ds2) {\n for (var i = ds1.length; i--;) {\n for (var j = 0; j < ds2.length; j++) {\n if (!swap(ds1[i], ds2[j])) {\n while (i < ds1.length) {\n while (j--) {\n swap(ds2[j], ds1[i]);\n }\n j = ds2.length;\n i++;\n }\n return [ds1, ds2];\n }\n }\n }\n ds1.selectionBefore = ds2.selectionBefore =\n ds1.selectionAfter = ds2.selectionAfter = null;\n return [ds2, ds1];\n}\nfunction xform(d1, c1) {\n var i1 = d1.action == \"insert\";\n var i2 = c1.action == \"insert\";\n if (i1 && i2) {\n if (cmp(d1.start, c1.start) < 0) {\n shift(c1, d1, 1);\n }\n else {\n shift(d1, c1, 1);\n }\n }\n else if (i1 && !i2) {\n if (cmp(d1.start, c1.end) >= 0) {\n shift(d1, c1, -1);\n }\n else if (cmp(d1.start, c1.start) <= 0) {\n shift(c1, d1, +1);\n }\n else {\n shift(d1, Range.fromPoints(c1.start, d1.start), -1);\n shift(c1, d1, +1);\n }\n }\n else if (!i1 && i2) {\n if (cmp(c1.start, d1.end) >= 0) {\n shift(c1, d1, -1);\n }\n else if (cmp(c1.start, d1.start) <= 0) {\n shift(d1, c1, +1);\n }\n else {\n shift(c1, Range.fromPoints(d1.start, c1.start), -1);\n shift(d1, c1, +1);\n }\n }\n else if (!i1 && !i2) {\n if (cmp(c1.start, d1.end) >= 0) {\n shift(c1, d1, -1);\n }\n else if (cmp(c1.end, d1.start) <= 0) {\n shift(d1, c1, -1);\n }\n else {\n var before, after;\n if (cmp(d1.start, c1.start) < 0) {\n before = d1;\n d1 = splitDelta(d1, c1.start);\n }\n if (cmp(d1.end, c1.end) > 0) {\n after = splitDelta(d1, c1.end);\n }\n shiftPos(c1.end, d1.start, d1.end, -1);\n if (after && !before) {\n d1.lines = after.lines;\n d1.start = after.start;\n d1.end = after.end;\n after = d1;\n }\n return [c1, before, after].filter(Boolean);\n }\n }\n return [c1, d1];\n}\nfunction shift(d1, d2, dir) {\n shiftPos(d1.start, d2.start, d2.end, dir);\n shiftPos(d1.end, d2.start, d2.end, dir);\n}\nfunction shiftPos(pos, start, end, dir) {\n if (pos.row == (dir == 1 ? start : end).row) {\n pos.column += dir * (end.column - start.column);\n }\n pos.row += dir * (end.row - start.row);\n}\nfunction splitDelta(c, pos) {\n var lines = c.lines;\n var end = c.end;\n c.end = clonePos(pos);\n var rowsBefore = c.end.row - c.start.row;\n var otherLines = lines.splice(rowsBefore, lines.length);\n var col = rowsBefore ? pos.column : pos.column - c.start.column;\n lines.push(otherLines[0].substring(0, col));\n otherLines[0] = otherLines[0].substr(col);\n var rest = {\n start: clonePos(pos),\n end: end,\n lines: otherLines,\n action: c.action\n };\n return rest;\n}\nfunction moveDeltasByOne(redoStack, d) {\n d = cloneDelta(d);\n for (var j = redoStack.length; j--;) {\n var deltaSet = redoStack[j];\n for (var i = 0; i < deltaSet.length; i++) {\n var x = deltaSet[i];\n var xformed = xform(x, d);\n d = xformed[0];\n if (xformed.length != 2) {\n if (xformed[2]) {\n deltaSet.splice(i + 1, 1, xformed[1], xformed[2]);\n i++;\n }\n else if (!xformed[1]) {\n deltaSet.splice(i, 1);\n i--;\n }\n }\n }\n if (!deltaSet.length) {\n redoStack.splice(j, 1);\n }\n }\n return redoStack;\n}\nfunction rebaseRedoStack(redoStack, deltaSets) {\n for (var i = 0; i < deltaSets.length; i++) {\n var deltas = deltaSets[i];\n for (var j = 0; j < deltas.length; j++) {\n moveDeltasByOne(redoStack, deltas[j]);\n }\n }\n}\nexports.UndoManager = UndoManager;\n\n});\n\nace.define(\"ace/edit_session/fold_line\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar FoldLine = /** @class */ (function () {\n function FoldLine(foldData, folds) {\n this.foldData = foldData;\n if (Array.isArray(folds)) {\n this.folds = folds;\n }\n else {\n folds = this.folds = [folds];\n }\n var last = folds[folds.length - 1];\n this.range = new Range(folds[0].start.row, folds[0].start.column, last.end.row, last.end.column);\n this.start = this.range.start;\n this.end = this.range.end;\n this.folds.forEach(function (fold) {\n fold.setFoldLine(this);\n }, this);\n }\n FoldLine.prototype.shiftRow = function (shift) {\n this.start.row += shift;\n this.end.row += shift;\n this.folds.forEach(function (fold) {\n fold.start.row += shift;\n fold.end.row += shift;\n });\n };\n FoldLine.prototype.addFold = function (fold) {\n if (fold.sameRow) {\n if (fold.start.row < this.startRow || fold.endRow > this.endRow) {\n throw new Error(\"Can't add a fold to this FoldLine as it has no connection\");\n }\n this.folds.push(fold);\n this.folds.sort(function (a, b) {\n return -a.range.compareEnd(b.start.row, b.start.column);\n });\n if (this.range.compareEnd(fold.start.row, fold.start.column) > 0) {\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n }\n else if (this.range.compareStart(fold.end.row, fold.end.column) < 0) {\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n }\n }\n else if (fold.start.row == this.end.row) {\n this.folds.push(fold);\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n }\n else if (fold.end.row == this.start.row) {\n this.folds.unshift(fold);\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n }\n else {\n throw new Error(\"Trying to add fold to FoldRow that doesn't have a matching row\");\n }\n fold.foldLine = this;\n };\n FoldLine.prototype.containsRow = function (row) {\n return row >= this.start.row && row <= this.end.row;\n };\n FoldLine.prototype.walk = function (callback, endRow, endColumn) {\n var lastEnd = 0, folds = this.folds, fold, cmp, stop, isNewRow = true;\n if (endRow == null) {\n endRow = this.end.row;\n endColumn = this.end.column;\n }\n for (var i = 0; i < folds.length; i++) {\n fold = folds[i];\n cmp = fold.range.compareStart(endRow, endColumn);\n if (cmp == -1) {\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n return;\n }\n stop = callback(null, fold.start.row, fold.start.column, lastEnd, isNewRow);\n stop = !stop && callback(fold.placeholder, fold.start.row, fold.start.column, lastEnd);\n if (stop || cmp === 0) {\n return;\n }\n isNewRow = !fold.sameRow;\n lastEnd = fold.end.column;\n }\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n };\n FoldLine.prototype.getNextFoldTo = function (row, column) {\n var fold, cmp;\n for (var i = 0; i < this.folds.length; i++) {\n fold = this.folds[i];\n cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n return {\n fold: fold,\n kind: \"after\"\n };\n }\n else if (cmp === 0) {\n return {\n fold: fold,\n kind: \"inside\"\n };\n }\n }\n return null;\n };\n FoldLine.prototype.addRemoveChars = function (row, column, len) {\n var ret = this.getNextFoldTo(row, column), fold, folds;\n if (ret) {\n fold = ret.fold;\n if (ret.kind == \"inside\"\n && fold.start.column != column\n && fold.start.row != row) {\n window.console && window.console.log(row, column, fold);\n }\n else if (fold.start.row == row) {\n folds = this.folds;\n var i = folds.indexOf(fold);\n if (i === 0) {\n this.start.column += len;\n }\n for (i; i < folds.length; i++) {\n fold = folds[i];\n fold.start.column += len;\n if (!fold.sameRow) {\n return;\n }\n fold.end.column += len;\n }\n this.end.column += len;\n }\n }\n };\n FoldLine.prototype.split = function (row, column) {\n var pos = this.getNextFoldTo(row, column);\n if (!pos || pos.kind == \"inside\")\n return null;\n var fold = pos.fold;\n var folds = this.folds;\n var foldData = this.foldData;\n var i = folds.indexOf(fold);\n var foldBefore = folds[i - 1];\n this.end.row = foldBefore.end.row;\n this.end.column = foldBefore.end.column;\n folds = folds.splice(i, folds.length - i);\n var newFoldLine = new FoldLine(foldData, folds);\n foldData.splice(foldData.indexOf(this) + 1, 0, newFoldLine);\n return newFoldLine;\n };\n FoldLine.prototype.merge = function (foldLineNext) {\n var folds = foldLineNext.folds;\n for (var i = 0; i < folds.length; i++) {\n this.addFold(folds[i]);\n }\n var foldData = this.foldData;\n foldData.splice(foldData.indexOf(foldLineNext), 1);\n };\n FoldLine.prototype.toString = function () {\n var ret = [this.range.toString() + \": [\"];\n this.folds.forEach(function (fold) {\n ret.push(\" \" + fold.toString());\n });\n ret.push(\"]\");\n return ret.join(\"\\n\");\n };\n FoldLine.prototype.idxToPosition = function (idx) {\n var lastFoldEndColumn = 0;\n for (var i = 0; i < this.folds.length; i++) {\n var fold = this.folds[i];\n idx -= fold.start.column - lastFoldEndColumn;\n if (idx < 0) {\n return {\n row: fold.start.row,\n column: fold.start.column + idx\n };\n }\n idx -= fold.placeholder.length;\n if (idx < 0) {\n return fold.start;\n }\n lastFoldEndColumn = fold.end.column;\n }\n return {\n row: this.end.row,\n column: this.end.column + idx\n };\n };\n return FoldLine;\n}());\nexports.FoldLine = FoldLine;\n\n});\n\nace.define(\"ace/range_list\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"./range\").Range;\nvar comparePoints = Range.comparePoints;\nvar RangeList = /** @class */ (function () {\n function RangeList() {\n this.ranges = [];\n this.$bias = 1;\n }\n RangeList.prototype.pointIndex = function (pos, excludeEdges, startIndex) {\n var list = this.ranges;\n for (var i = startIndex || 0; i < list.length; i++) {\n var range = list[i];\n var cmpEnd = comparePoints(pos, range.end);\n if (cmpEnd > 0)\n continue;\n var cmpStart = comparePoints(pos, range.start);\n if (cmpEnd === 0)\n return excludeEdges && cmpStart !== 0 ? -i - 2 : i;\n if (cmpStart > 0 || (cmpStart === 0 && !excludeEdges))\n return i;\n return -i - 1;\n }\n return -i - 1;\n };\n RangeList.prototype.add = function (range) {\n var excludeEdges = !range.isEmpty();\n var startIndex = this.pointIndex(range.start, excludeEdges);\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n var endIndex = this.pointIndex(range.end, excludeEdges, startIndex);\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n else\n endIndex++;\n return this.ranges.splice(startIndex, endIndex - startIndex, range);\n };\n RangeList.prototype.addList = function (list) {\n var removed = [];\n for (var i = list.length; i--;) {\n removed.push.apply(removed, this.add(list[i]));\n }\n return removed;\n };\n RangeList.prototype.substractPoint = function (pos) {\n var i = this.pointIndex(pos);\n if (i >= 0)\n return this.ranges.splice(i, 1);\n };\n RangeList.prototype.merge = function () {\n var removed = [];\n var list = this.ranges;\n list = list.sort(function (a, b) {\n return comparePoints(a.start, b.start);\n });\n var next = list[0], range;\n for (var i = 1; i < list.length; i++) {\n range = next;\n next = list[i];\n var cmp = comparePoints(range.end, next.start);\n if (cmp < 0)\n continue;\n if (cmp == 0 && !range.isEmpty() && !next.isEmpty())\n continue;\n if (comparePoints(range.end, next.end) < 0) {\n range.end.row = next.end.row;\n range.end.column = next.end.column;\n }\n list.splice(i, 1);\n removed.push(next);\n next = range;\n i--;\n }\n this.ranges = list;\n return removed;\n };\n RangeList.prototype.contains = function (row, column) {\n return this.pointIndex({ row: row, column: column }) >= 0;\n };\n RangeList.prototype.containsPoint = function (pos) {\n return this.pointIndex(pos) >= 0;\n };\n RangeList.prototype.rangeAtPoint = function (pos) {\n var i = this.pointIndex(pos);\n if (i >= 0)\n return this.ranges[i];\n };\n RangeList.prototype.clipRows = function (startRow, endRow) {\n var list = this.ranges;\n if (list[0].start.row > endRow || list[list.length - 1].start.row < startRow)\n return [];\n var startIndex = this.pointIndex({ row: startRow, column: 0 });\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n var endIndex = this.pointIndex({ row: endRow, column: 0 }, startIndex);\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n var clipped = [];\n for (var i = startIndex; i < endIndex; i++) {\n clipped.push(list[i]);\n }\n return clipped;\n };\n RangeList.prototype.removeAll = function () {\n return this.ranges.splice(0, this.ranges.length);\n };\n RangeList.prototype.attach = function (session) {\n if (this.session)\n this.detach();\n this.session = session;\n this.onChange = this.$onChange.bind(this);\n this.session.on('change', this.onChange);\n };\n RangeList.prototype.detach = function () {\n if (!this.session)\n return;\n this.session.removeListener('change', this.onChange);\n this.session = null;\n };\n RangeList.prototype.$onChange = function (delta) {\n var start = delta.start;\n var end = delta.end;\n var startRow = start.row;\n var endRow = end.row;\n var ranges = this.ranges;\n for (var i = 0, n = ranges.length; i < n; i++) {\n var r = ranges[i];\n if (r.end.row >= startRow)\n break;\n }\n if (delta.action == \"insert\") {\n var lineDif = endRow - startRow;\n var colDiff = -start.column + end.column;\n for (; i < n; i++) {\n var r = ranges[i];\n if (r.start.row > startRow)\n break;\n if (r.start.row == startRow && r.start.column >= start.column) {\n if (r.start.column == start.column && this.$bias <= 0) {\n }\n else {\n r.start.column += colDiff;\n r.start.row += lineDif;\n }\n }\n if (r.end.row == startRow && r.end.column >= start.column) {\n if (r.end.column == start.column && this.$bias < 0) {\n continue;\n }\n if (r.end.column == start.column && colDiff > 0 && i < n - 1) {\n if (r.end.column > r.start.column && r.end.column == ranges[i + 1].start.column)\n r.end.column -= colDiff;\n }\n r.end.column += colDiff;\n r.end.row += lineDif;\n }\n }\n }\n else {\n var lineDif = startRow - endRow;\n var colDiff = start.column - end.column;\n for (; i < n; i++) {\n var r = ranges[i];\n if (r.start.row > endRow)\n break;\n if (r.end.row < endRow\n && (startRow < r.end.row\n || startRow == r.end.row && start.column < r.end.column)) {\n r.end.row = startRow;\n r.end.column = start.column;\n }\n else if (r.end.row == endRow) {\n if (r.end.column <= end.column) {\n if (lineDif || r.end.column > start.column) {\n r.end.column = start.column;\n r.end.row = start.row;\n }\n }\n else {\n r.end.column += colDiff;\n r.end.row += lineDif;\n }\n }\n else if (r.end.row > endRow) {\n r.end.row += lineDif;\n }\n if (r.start.row < endRow\n && (startRow < r.start.row\n || startRow == r.start.row && start.column < r.start.column)) {\n r.start.row = startRow;\n r.start.column = start.column;\n }\n else if (r.start.row == endRow) {\n if (r.start.column <= end.column) {\n if (lineDif || r.start.column > start.column) {\n r.start.column = start.column;\n r.start.row = start.row;\n }\n }\n else {\n r.start.column += colDiff;\n r.start.row += lineDif;\n }\n }\n else if (r.start.row > endRow) {\n r.start.row += lineDif;\n }\n }\n }\n if (lineDif != 0 && i < n) {\n for (; i < n; i++) {\n var r = ranges[i];\n r.start.row += lineDif;\n r.end.row += lineDif;\n }\n }\n };\n return RangeList;\n}());\nRangeList.prototype.comparePoints = comparePoints;\nexports.RangeList = RangeList;\n\n});\n\nace.define(\"ace/edit_session/fold\",[\"require\",\"exports\",\"module\",\"ace/range_list\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar RangeList = require(\"../range_list\").RangeList;\nvar Fold = /** @class */ (function (_super) {\n __extends(Fold, _super);\n function Fold(range, placeholder) {\n var _this = _super.call(this) || this;\n _this.foldLine = null;\n _this.placeholder = placeholder;\n _this.range = range;\n _this.start = range.start;\n _this.end = range.end;\n _this.sameRow = range.start.row == range.end.row;\n _this.subFolds = _this.ranges = [];\n return _this;\n }\n Fold.prototype.toString = function () {\n return '\"' + this.placeholder + '\" ' + this.range.toString();\n };\n Fold.prototype.setFoldLine = function (foldLine) {\n this.foldLine = foldLine;\n this.subFolds.forEach(function (fold) {\n fold.setFoldLine(foldLine);\n });\n };\n Fold.prototype.clone = function () {\n var range = this.range.clone();\n var fold = new Fold(range, this.placeholder);\n this.subFolds.forEach(function (subFold) {\n fold.subFolds.push(subFold.clone());\n });\n fold.collapseChildren = this.collapseChildren;\n return fold;\n };\n Fold.prototype.addSubFold = function (fold) {\n if (this.range.isEqual(fold))\n return;\n consumeRange(fold, this.start);\n var row = fold.start.row, column = fold.start.column;\n for (var i = 0, cmp = -1; i < this.subFolds.length; i++) {\n cmp = this.subFolds[i].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n var afterStart = this.subFolds[i];\n var firstConsumed = 0;\n if (cmp == 0) {\n if (afterStart.range.containsRange(fold))\n return afterStart.addSubFold(fold);\n else\n firstConsumed = 1;\n }\n var row = fold.range.end.row, column = fold.range.end.column;\n for (var j = i, cmp = -1; j < this.subFolds.length; j++) {\n cmp = this.subFolds[j].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n if (cmp == 0)\n j++;\n var consumedFolds = this.subFolds.splice(i, j - i, fold);\n var last = cmp == 0 ? consumedFolds.length - 1 : consumedFolds.length;\n for (var k = firstConsumed; k < last; k++) {\n fold.addSubFold(consumedFolds[k]);\n }\n fold.setFoldLine(this.foldLine);\n return fold;\n };\n Fold.prototype.restoreRange = function (range) {\n return restoreRange(range, this.start);\n };\n return Fold;\n}(RangeList));\nfunction consumePoint(point, anchor) {\n point.row -= anchor.row;\n if (point.row == 0)\n point.column -= anchor.column;\n}\nfunction consumeRange(range, anchor) {\n consumePoint(range.start, anchor);\n consumePoint(range.end, anchor);\n}\nfunction restorePoint(point, anchor) {\n if (point.row == 0)\n point.column += anchor.column;\n point.row += anchor.row;\n}\nfunction restoreRange(range, anchor) {\n restorePoint(range.start, anchor);\n restorePoint(range.end, anchor);\n}\nexports.Fold = Fold;\n\n});\n\nace.define(\"ace/edit_session/folding\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/edit_session/fold_line\",\"ace/edit_session/fold\",\"ace/token_iterator\",\"ace/mouse/mouse_event\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar FoldLine = require(\"./fold_line\").FoldLine;\nvar Fold = require(\"./fold\").Fold;\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nvar MouseEvent = require(\"../mouse/mouse_event\").MouseEvent;\nfunction Folding() {\n this.getFoldAt = function (row, column, side) {\n var foldLine = this.getFoldLine(row);\n if (!foldLine)\n return null;\n var folds = foldLine.folds;\n for (var i = 0; i < folds.length; i++) {\n var range = folds[i].range;\n if (range.contains(row, column)) {\n if (side == 1 && range.isEnd(row, column) && !range.isEmpty()) {\n continue;\n }\n else if (side == -1 && range.isStart(row, column) && !range.isEmpty()) {\n continue;\n }\n return folds[i];\n }\n }\n };\n this.getFoldsInRange = function (range) {\n var start = range.start;\n var end = range.end;\n var foldLines = this.$foldData;\n var foundFolds = [];\n start.column += 1;\n end.column -= 1;\n for (var i = 0; i < foldLines.length; i++) {\n var cmp = foldLines[i].range.compareRange(range);\n if (cmp == 2) {\n continue;\n }\n else if (cmp == -2) {\n break;\n }\n var folds = foldLines[i].folds;\n for (var j = 0; j < folds.length; j++) {\n var fold = folds[j];\n cmp = fold.range.compareRange(range);\n if (cmp == -2) {\n break;\n }\n else if (cmp == 2) {\n continue;\n }\n else \n if (cmp == 42) {\n break;\n }\n foundFolds.push(fold);\n }\n }\n start.column -= 1;\n end.column += 1;\n return foundFolds;\n };\n this.getFoldsInRangeList = function (ranges) {\n if (Array.isArray(ranges)) {\n var folds = [];\n ranges.forEach(function (range) {\n folds = folds.concat(this.getFoldsInRange(range));\n }, this);\n }\n else {\n var folds = this.getFoldsInRange(ranges);\n }\n return folds;\n };\n this.getAllFolds = function () {\n var folds = [];\n var foldLines = this.$foldData;\n for (var i = 0; i < foldLines.length; i++)\n for (var j = 0; j < foldLines[i].folds.length; j++)\n folds.push(foldLines[i].folds[j]);\n return folds;\n };\n this.getFoldStringAt = function (row, column, trim, foldLine) {\n foldLine = foldLine || this.getFoldLine(row);\n if (!foldLine)\n return null;\n var lastFold = {\n end: { column: 0 }\n };\n var str, fold;\n for (var i = 0; i < foldLine.folds.length; i++) {\n fold = foldLine.folds[i];\n var cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n str = this\n .getLine(fold.start.row)\n .substring(lastFold.end.column, fold.start.column);\n break;\n }\n else if (cmp === 0) {\n return null;\n }\n lastFold = fold;\n }\n if (!str)\n str = this.getLine(fold.start.row).substring(lastFold.end.column);\n if (trim == -1)\n return str.substring(0, column - lastFold.end.column);\n else if (trim == 1)\n return str.substring(column - lastFold.end.column);\n else\n return str;\n };\n this.getFoldLine = function (docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.start.row <= docRow && foldLine.end.row >= docRow) {\n return foldLine;\n }\n else if (foldLine.end.row > docRow) {\n return null;\n }\n }\n return null;\n };\n this.getNextFoldLine = function (docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.end.row >= docRow) {\n return foldLine;\n }\n }\n return null;\n };\n this.getFoldedRowCount = function (first, last) {\n var foldData = this.$foldData, rowCount = last - first + 1;\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i], end = foldLine.end.row, start = foldLine.start.row;\n if (end >= last) {\n if (start < last) {\n if (start >= first)\n rowCount -= last - start;\n else\n rowCount = 0; // in one fold\n }\n break;\n }\n else if (end >= first) {\n if (start >= first) // fold inside range\n rowCount -= end - start;\n else\n rowCount -= end - first + 1;\n }\n }\n return rowCount;\n };\n this.$addFoldLine = function (foldLine) {\n this.$foldData.push(foldLine);\n this.$foldData.sort(function (a, b) {\n return a.start.row - b.start.row;\n });\n return foldLine;\n };\n this.addFold = function (placeholder, range) {\n var foldData = this.$foldData;\n var added = false;\n var fold;\n if (placeholder instanceof Fold)\n fold = placeholder;\n else {\n fold = new Fold(range, placeholder);\n fold.collapseChildren = range.collapseChildren;\n }\n this.$clipRangeToDocument(fold.range);\n var startRow = fold.start.row;\n var startColumn = fold.start.column;\n var endRow = fold.end.row;\n var endColumn = fold.end.column;\n var startFold = this.getFoldAt(startRow, startColumn, 1);\n var endFold = this.getFoldAt(endRow, endColumn, -1);\n if (startFold && endFold == startFold)\n return startFold.addSubFold(fold);\n if (startFold && !startFold.range.isStart(startRow, startColumn))\n this.removeFold(startFold);\n if (endFold && !endFold.range.isEnd(endRow, endColumn))\n this.removeFold(endFold);\n var folds = this.getFoldsInRange(fold.range);\n if (folds.length > 0) {\n this.removeFolds(folds);\n if (!fold.collapseChildren) {\n folds.forEach(function (subFold) {\n fold.addSubFold(subFold);\n });\n }\n }\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (endRow == foldLine.start.row) {\n foldLine.addFold(fold);\n added = true;\n break;\n }\n else if (startRow == foldLine.end.row) {\n foldLine.addFold(fold);\n added = true;\n if (!fold.sameRow) {\n var foldLineNext = foldData[i + 1];\n if (foldLineNext && foldLineNext.start.row == endRow) {\n foldLine.merge(foldLineNext);\n break;\n }\n }\n break;\n }\n else if (endRow <= foldLine.start.row) {\n break;\n }\n }\n if (!added)\n foldLine = this.$addFoldLine(new FoldLine(this.$foldData, fold));\n if (this.$useWrapMode)\n this.$updateWrapData(foldLine.start.row, foldLine.start.row);\n else\n this.$updateRowLengthCache(foldLine.start.row, foldLine.start.row);\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"add\" });\n return fold;\n };\n this.addFolds = function (folds) {\n folds.forEach(function (fold) {\n this.addFold(fold);\n }, this);\n };\n this.removeFold = function (fold) {\n var foldLine = fold.foldLine;\n var startRow = foldLine.start.row;\n var endRow = foldLine.end.row;\n var foldLines = this.$foldData;\n var folds = foldLine.folds;\n if (folds.length == 1) {\n foldLines.splice(foldLines.indexOf(foldLine), 1);\n }\n else \n if (foldLine.range.isEnd(fold.end.row, fold.end.column)) {\n folds.pop();\n foldLine.end.row = folds[folds.length - 1].end.row;\n foldLine.end.column = folds[folds.length - 1].end.column;\n }\n else \n if (foldLine.range.isStart(fold.start.row, fold.start.column)) {\n folds.shift();\n foldLine.start.row = folds[0].start.row;\n foldLine.start.column = folds[0].start.column;\n }\n else \n if (fold.sameRow) {\n folds.splice(folds.indexOf(fold), 1);\n }\n else \n {\n var newFoldLine = foldLine.split(fold.start.row, fold.start.column);\n folds = newFoldLine.folds;\n folds.shift();\n newFoldLine.start.row = folds[0].start.row;\n newFoldLine.start.column = folds[0].start.column;\n }\n if (!this.$updating) {\n if (this.$useWrapMode)\n this.$updateWrapData(startRow, endRow);\n else\n this.$updateRowLengthCache(startRow, endRow);\n }\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"remove\" });\n };\n this.removeFolds = function (folds) {\n var cloneFolds = [];\n for (var i = 0; i < folds.length; i++) {\n cloneFolds.push(folds[i]);\n }\n cloneFolds.forEach(function (fold) {\n this.removeFold(fold);\n }, this);\n this.$modified = true;\n };\n this.expandFold = function (fold) {\n this.removeFold(fold);\n fold.subFolds.forEach(function (subFold) {\n fold.restoreRange(subFold);\n this.addFold(subFold);\n }, this);\n if (fold.collapseChildren > 0) {\n this.foldAll(fold.start.row + 1, fold.end.row, fold.collapseChildren - 1);\n }\n fold.subFolds = [];\n };\n this.expandFolds = function (folds) {\n folds.forEach(function (fold) {\n this.expandFold(fold);\n }, this);\n };\n this.unfold = function (location, expandInner) {\n var range, folds;\n if (location == null) {\n range = new Range(0, 0, this.getLength(), 0);\n if (expandInner == null)\n expandInner = true;\n }\n else if (typeof location == \"number\") {\n range = new Range(location, 0, location, this.getLine(location).length);\n }\n else if (\"row\" in location) {\n range = Range.fromPoints(location, location);\n }\n else if (Array.isArray(location)) {\n folds = [];\n location.forEach(function (range) {\n folds = folds.concat(this.unfold(range));\n }, this);\n return folds;\n }\n else {\n range = location;\n }\n folds = this.getFoldsInRangeList(range);\n var outermostFolds = folds;\n while (folds.length == 1\n && Range.comparePoints(folds[0].start, range.start) < 0\n && Range.comparePoints(folds[0].end, range.end) > 0) {\n this.expandFolds(folds);\n folds = this.getFoldsInRangeList(range);\n }\n if (expandInner != false) {\n this.removeFolds(folds);\n }\n else {\n this.expandFolds(folds);\n }\n if (outermostFolds.length)\n return outermostFolds;\n };\n this.isRowFolded = function (docRow, startFoldRow) {\n return !!this.getFoldLine(docRow, startFoldRow);\n };\n this.getRowFoldEnd = function (docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.end.row : docRow;\n };\n this.getRowFoldStart = function (docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.start.row : docRow;\n };\n this.getFoldDisplayLine = function (foldLine, endRow, endColumn, startRow, startColumn) {\n if (startRow == null)\n startRow = foldLine.start.row;\n if (startColumn == null)\n startColumn = 0;\n if (endRow == null)\n endRow = foldLine.end.row;\n if (endColumn == null)\n endColumn = this.getLine(endRow).length;\n var doc = this.doc;\n var textLine = \"\";\n foldLine.walk(function (placeholder, row, column, lastColumn) {\n if (row < startRow)\n return;\n if (row == startRow) {\n if (column < startColumn)\n return;\n lastColumn = Math.max(startColumn, lastColumn);\n }\n if (placeholder != null) {\n textLine += placeholder;\n }\n else {\n textLine += doc.getLine(row).substring(lastColumn, column);\n }\n }, endRow, endColumn);\n return textLine;\n };\n this.getDisplayLine = function (row, endColumn, startRow, startColumn) {\n var foldLine = this.getFoldLine(row);\n if (!foldLine) {\n var line;\n line = this.doc.getLine(row);\n return line.substring(startColumn || 0, endColumn || line.length);\n }\n else {\n return this.getFoldDisplayLine(foldLine, row, endColumn, startRow, startColumn);\n }\n };\n this.$cloneFoldData = function () {\n var fd = [];\n fd = this.$foldData.map(function (foldLine) {\n var folds = foldLine.folds.map(function (fold) {\n return fold.clone();\n });\n return new FoldLine(fd, folds);\n });\n return fd;\n };\n this.toggleFold = function (tryToUnfold) {\n var selection = this.selection;\n var range = selection.getRange();\n var fold;\n var bracketPos;\n if (range.isEmpty()) {\n var cursor = range.start;\n fold = this.getFoldAt(cursor.row, cursor.column);\n if (fold) {\n this.expandFold(fold);\n return;\n }\n else if (bracketPos = this.findMatchingBracket(cursor)) {\n if (range.comparePoint(bracketPos) == 1) {\n range.end = bracketPos;\n }\n else {\n range.start = bracketPos;\n range.start.column++;\n range.end.column--;\n }\n }\n else if (bracketPos = this.findMatchingBracket({ row: cursor.row, column: cursor.column + 1 })) {\n if (range.comparePoint(bracketPos) == 1)\n range.end = bracketPos;\n else\n range.start = bracketPos;\n range.start.column++;\n }\n else {\n range = this.getCommentFoldRange(cursor.row, cursor.column) || range;\n }\n }\n else {\n var folds = this.getFoldsInRange(range);\n if (tryToUnfold && folds.length) {\n this.expandFolds(folds);\n return;\n }\n else if (folds.length == 1) {\n fold = folds[0];\n }\n }\n if (!fold)\n fold = this.getFoldAt(range.start.row, range.start.column);\n if (fold && fold.range.toString() == range.toString()) {\n this.expandFold(fold);\n return;\n }\n var placeholder = \"...\";\n if (!range.isMultiLine()) {\n placeholder = this.getTextRange(range);\n if (placeholder.length < 4)\n return;\n placeholder = placeholder.trim().substring(0, 2) + \"..\";\n }\n this.addFold(placeholder, range);\n };\n this.getCommentFoldRange = function (row, column, dir) {\n var iterator = new TokenIterator(this, row, column);\n var token = iterator.getCurrentToken();\n var type = token && token.type;\n if (token && /^comment|string/.test(type)) {\n type = type.match(/comment|string/)[0];\n if (type == \"comment\")\n type += \"|doc-start|\\\\.doc\";\n var re = new RegExp(type);\n var range = new Range();\n if (dir != 1) {\n do {\n token = iterator.stepBackward();\n } while (token && re.test(token.type) && !/^comment.end/.test(token.type));\n token = iterator.stepForward();\n }\n range.start.row = iterator.getCurrentTokenRow();\n range.start.column = iterator.getCurrentTokenColumn() + (/^comment.start/.test(token.type) ? token.value.length : 2);\n iterator = new TokenIterator(this, row, column);\n if (dir != -1) {\n var lastRow = -1;\n do {\n token = iterator.stepForward();\n if (lastRow == -1) {\n var state = this.getState(iterator.$row);\n if (!re.test(state))\n lastRow = iterator.$row;\n }\n else if (iterator.$row > lastRow) {\n break;\n }\n } while (token && re.test(token.type) && !/^comment.start/.test(token.type));\n token = iterator.stepBackward();\n }\n else\n token = iterator.getCurrentToken();\n range.end.row = iterator.getCurrentTokenRow();\n range.end.column = iterator.getCurrentTokenColumn();\n if (!/^comment.end/.test(token.type)) {\n range.end.column += token.value.length - 2;\n }\n return range;\n }\n };\n this.foldAll = function (startRow, endRow, depth, test) {\n if (depth == undefined)\n depth = 100000; // JSON.stringify doesn't hanle Infinity\n var foldWidgets = this.foldWidgets;\n if (!foldWidgets)\n return; // mode doesn't support folding\n endRow = endRow || this.getLength();\n startRow = startRow || 0;\n for (var row = startRow; row < endRow; row++) {\n if (foldWidgets[row] == null)\n foldWidgets[row] = this.getFoldWidget(row);\n if (foldWidgets[row] != \"start\")\n continue;\n if (test && !test(row))\n continue;\n var range = this.getFoldWidgetRange(row);\n if (range && range.isMultiLine()\n && range.end.row <= endRow\n && range.start.row >= startRow) {\n row = range.end.row;\n range.collapseChildren = depth;\n this.addFold(\"...\", range);\n }\n }\n };\n this.foldToLevel = function (level) {\n this.foldAll();\n while (level-- > 0)\n this.unfold(null, false);\n };\n this.foldAllComments = function () {\n var session = this;\n this.foldAll(null, null, null, function (row) {\n var tokens = session.getTokens(row);\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (token.type == \"text\" && /^\\s+$/.test(token.value))\n continue;\n if (/comment/.test(token.type))\n return true;\n return false;\n }\n });\n };\n this.$foldStyles = {\n \"manual\": 1,\n \"markbegin\": 1,\n \"markbeginend\": 1\n };\n this.$foldStyle = \"markbegin\";\n this.setFoldStyle = function (style) {\n if (!this.$foldStyles[style])\n throw new Error(\"invalid fold style: \" + style + \"[\" + Object.keys(this.$foldStyles).join(\", \") + \"]\");\n if (this.$foldStyle == style)\n return;\n this.$foldStyle = style;\n if (style == \"manual\")\n this.unfold();\n var mode = this.$foldMode;\n this.$setFolding(null);\n this.$setFolding(mode);\n };\n this.$setFolding = function (foldMode) {\n if (this.$foldMode == foldMode)\n return;\n this.$foldMode = foldMode;\n this.off('change', this.$updateFoldWidgets);\n this.off('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n this._signal(\"changeAnnotation\");\n if (!foldMode || this.$foldStyle == \"manual\") {\n this.foldWidgets = null;\n return;\n }\n this.foldWidgets = [];\n this.getFoldWidget = foldMode.getFoldWidget.bind(foldMode, this, this.$foldStyle);\n this.getFoldWidgetRange = foldMode.getFoldWidgetRange.bind(foldMode, this, this.$foldStyle);\n this.$updateFoldWidgets = this.updateFoldWidgets.bind(this);\n this.$tokenizerUpdateFoldWidgets = this.tokenizerUpdateFoldWidgets.bind(this);\n this.on('change', this.$updateFoldWidgets);\n this.on('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n };\n this.getParentFoldRangeData = function (row, ignoreCurrent) {\n var fw = this.foldWidgets;\n if (!fw || (ignoreCurrent && fw[row]))\n return {};\n var i = row - 1, firstRange;\n while (i >= 0) {\n var c = fw[i];\n if (c == null)\n c = fw[i] = this.getFoldWidget(i);\n if (c == \"start\") {\n var range = this.getFoldWidgetRange(i);\n if (!firstRange)\n firstRange = range;\n if (range && range.end.row >= row)\n break;\n }\n i--;\n }\n return {\n range: i !== -1 && range,\n firstRange: firstRange\n };\n };\n this.onFoldWidgetClick = function (row, e) {\n if (e instanceof MouseEvent)\n e = e.domEvent;\n var options = {\n children: e.shiftKey,\n all: e.ctrlKey || e.metaKey,\n siblings: e.altKey\n };\n var range = this.$toggleFoldWidget(row, options);\n if (!range) {\n var el = (e.target || e.srcElement);\n if (el && /ace_fold-widget/.test(el.className))\n el.className += \" ace_invalid\";\n }\n };\n this.$toggleFoldWidget = function (row, options) {\n if (!this.getFoldWidget)\n return;\n var type = this.getFoldWidget(row);\n var line = this.getLine(row);\n var dir = type === \"end\" ? -1 : 1;\n var fold = this.getFoldAt(row, dir === -1 ? 0 : line.length, dir);\n if (fold) {\n if (options.children || options.all)\n this.removeFold(fold);\n else\n this.expandFold(fold);\n return fold;\n }\n var range = this.getFoldWidgetRange(row, true);\n if (range && !range.isMultiLine()) {\n fold = this.getFoldAt(range.start.row, range.start.column, 1);\n if (fold && range.isEqual(fold.range)) {\n this.removeFold(fold);\n return fold;\n }\n }\n if (options.siblings) {\n var data = this.getParentFoldRangeData(row);\n if (data.range) {\n var startRow = data.range.start.row + 1;\n var endRow = data.range.end.row;\n }\n this.foldAll(startRow, endRow, options.all ? 10000 : 0);\n }\n else if (options.children) {\n endRow = range ? range.end.row : this.getLength();\n this.foldAll(row + 1, endRow, options.all ? 10000 : 0);\n }\n else if (range) {\n if (options.all)\n range.collapseChildren = 10000;\n this.addFold(\"...\", range);\n }\n return range;\n };\n this.toggleFoldWidget = function (toggleParent) {\n var row = this.selection.getCursor().row;\n row = this.getRowFoldStart(row);\n var range = this.$toggleFoldWidget(row, {});\n if (range)\n return;\n var data = this.getParentFoldRangeData(row, true);\n range = data.range || data.firstRange;\n if (range) {\n row = range.start.row;\n var fold = this.getFoldAt(row, this.getLine(row).length, 1);\n if (fold) {\n this.removeFold(fold);\n }\n else {\n this.addFold(\"...\", range);\n }\n }\n };\n this.updateFoldWidgets = function (delta) {\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n if (len === 0) {\n this.foldWidgets[firstRow] = null;\n }\n else if (delta.action == 'remove') {\n this.foldWidgets.splice(firstRow, len + 1, null);\n }\n else {\n var args = Array(len + 1);\n args.unshift(firstRow, 1);\n this.foldWidgets.splice.apply(this.foldWidgets, args);\n }\n };\n this.tokenizerUpdateFoldWidgets = function (e) {\n var rows = e.data;\n if (rows.first != rows.last) {\n if (this.foldWidgets.length > rows.first)\n this.foldWidgets.splice(rows.first, this.foldWidgets.length);\n }\n };\n}\nexports.Folding = Folding;\n\n});\n\nace.define(\"ace/edit_session/bracket_match\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nvar Range = require(\"../range\").Range;\nfunction BracketMatch() {\n this.findMatchingBracket = function (position, chr) {\n if (position.column == 0)\n return null;\n var charBeforeCursor = chr || this.getLine(position.row).charAt(position.column - 1);\n if (charBeforeCursor == \"\")\n return null;\n var match = charBeforeCursor.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match)\n return null;\n if (match[1])\n return this.$findClosingBracket(match[1], position);\n else\n return this.$findOpeningBracket(match[2], position);\n };\n this.getBracketRange = function (pos) {\n var line = this.getLine(pos.row);\n var before = true, range;\n var chr = line.charAt(pos.column - 1);\n var match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match) {\n chr = line.charAt(pos.column);\n pos = { row: pos.row, column: pos.column + 1 };\n match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n before = false;\n }\n if (!match)\n return null;\n if (match[1]) {\n var bracketPos = this.$findClosingBracket(match[1], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(pos, bracketPos);\n if (!before) {\n range.end.column++;\n range.start.column--;\n }\n range.cursor = range.end;\n }\n else {\n var bracketPos = this.$findOpeningBracket(match[2], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(bracketPos, pos);\n if (!before) {\n range.start.column++;\n range.end.column--;\n }\n range.cursor = range.start;\n }\n return range;\n };\n this.getMatchingBracketRanges = function (pos, isBackwards) {\n var line = this.getLine(pos.row);\n var bracketsRegExp = /([\\(\\[\\{])|([\\)\\]\\}])/;\n var chr = !isBackwards && line.charAt(pos.column - 1);\n var match = chr && chr.match(bracketsRegExp);\n if (!match) {\n chr = (isBackwards === undefined || isBackwards) && line.charAt(pos.column);\n pos = {\n row: pos.row,\n column: pos.column + 1\n };\n match = chr && chr.match(bracketsRegExp);\n }\n if (!match)\n return null;\n var startRange = new Range(pos.row, pos.column - 1, pos.row, pos.column);\n var bracketPos = match[1] ? this.$findClosingBracket(match[1], pos)\n : this.$findOpeningBracket(match[2], pos);\n if (!bracketPos)\n return [startRange];\n var endRange = new Range(bracketPos.row, bracketPos.column, bracketPos.row, bracketPos.column + 1);\n return [startRange, endRange];\n };\n this.$brackets = {\n \")\": \"(\",\n \"(\": \")\",\n \"]\": \"[\",\n \"[\": \"]\",\n \"{\": \"}\",\n \"}\": \"{\",\n \"<\": \">\",\n \">\": \"<\"\n };\n this.$findOpeningBracket = function (bracket, position, typeRe) {\n var openBracket = this.$brackets[bracket];\n var depth = 1;\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n if (!typeRe) {\n typeRe = new RegExp(\"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"rparen\", \".paren\")\n .replace(/\\b(?:end)\\b/, \"(?:start|begin|end)\")\n .replace(/-close\\b/, \"-(close|open)\")\n + \")+\");\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn() - 2;\n var value = token.value;\n while (true) {\n while (valueIndex >= 0) {\n var chr = value.charAt(valueIndex);\n if (chr == openBracket) {\n depth -= 1;\n if (depth == 0) {\n return { row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn() };\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex -= 1;\n }\n do {\n token = iterator.stepBackward();\n } while (token && !typeRe.test(token.type));\n if (token == null)\n break;\n value = token.value;\n valueIndex = value.length - 1;\n }\n return null;\n };\n this.$findClosingBracket = function (bracket, position, typeRe) {\n var closingBracket = this.$brackets[bracket];\n var depth = 1;\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n if (!typeRe) {\n typeRe = new RegExp(\"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"lparen\", \".paren\")\n .replace(/\\b(?:start|begin)\\b/, \"(?:start|begin|end)\")\n .replace(/-open\\b/, \"-(close|open)\")\n + \")+\");\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn();\n while (true) {\n var value = token.value;\n var valueLength = value.length;\n while (valueIndex < valueLength) {\n var chr = value.charAt(valueIndex);\n if (chr == closingBracket) {\n depth -= 1;\n if (depth == 0) {\n return { row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn() };\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex += 1;\n }\n do {\n token = iterator.stepForward();\n } while (token && !typeRe.test(token.type));\n if (token == null)\n break;\n valueIndex = 0;\n }\n return null;\n };\n this.getMatchingTags = function (pos) {\n var iterator = new TokenIterator(this, pos.row, pos.column);\n var token = this.$findTagName(iterator);\n if (!token)\n return;\n var prevToken = iterator.stepBackward();\n if (prevToken.value === '<') {\n return this.$findClosingTag(iterator, token);\n }\n else {\n return this.$findOpeningTag(iterator, token);\n }\n };\n this.$findTagName = function (iterator) {\n var token = iterator.getCurrentToken();\n var found = false;\n var backward = false;\n if (token && token.type.indexOf('tag-name') === -1) {\n do {\n if (backward)\n token = iterator.stepBackward();\n else\n token = iterator.stepForward();\n if (token) {\n if (token.value === \"/>\") {\n backward = true;\n }\n else if (token.type.indexOf('tag-name') !== -1) {\n found = true;\n }\n }\n } while (token && !found);\n }\n return token;\n };\n this.$findClosingTag = function (iterator, token) {\n var prevToken;\n var currentTag = token.value;\n var tag = token.value;\n var depth = 0;\n var openTagStart = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1);\n token = iterator.stepForward();\n var openTagName = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + token.value.length);\n var foundOpenTagEnd = false;\n do {\n prevToken = token;\n token = iterator.stepForward();\n if (token) {\n if (token.value === '>' && !foundOpenTagEnd) {\n var openTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for `>`\n foundOpenTagEnd = true;\n }\n if (token.type.indexOf('tag-name') !== -1) {\n currentTag = token.value;\n if (tag === currentTag) {\n if (prevToken.value === '<') {\n depth++;\n }\n else if (prevToken.value === '') {\n var closeTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for >\n }\n else {\n return;\n }\n }\n }\n }\n }\n else if (tag === currentTag && token.value === '/>') { // self-closing tag\n depth--;\n if (depth < 0) { //found self-closing tag end\n var closeTagStart = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 2);\n var closeTagName = closeTagStart;\n var closeTagEnd = closeTagName;\n var openTagEnd = new Range(openTagName.end.row, openTagName.end.column, openTagName.end.row, openTagName.end.column + 1);\n }\n }\n }\n } while (token && depth >= 0);\n if (openTagStart && openTagEnd && closeTagStart && closeTagEnd && openTagName && closeTagName) {\n return {\n openTag: new Range(openTagStart.start.row, openTagStart.start.column, openTagEnd.end.row, openTagEnd.end.column),\n closeTag: new Range(closeTagStart.start.row, closeTagStart.start.column, closeTagEnd.end.row, closeTagEnd.end.column),\n openTagName: openTagName,\n closeTagName: closeTagName\n };\n }\n };\n this.$findOpeningTag = function (iterator, token) {\n var prevToken = iterator.getCurrentToken();\n var tag = token.value;\n var depth = 0;\n var startRow = iterator.getCurrentTokenRow();\n var startColumn = iterator.getCurrentTokenColumn();\n var endColumn = startColumn + 2;\n var closeTagStart = new Range(startRow, startColumn, startRow, endColumn); //Range for \")\n return;\n var closeTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for >\n iterator.stepBackward();\n iterator.stepBackward();\n do {\n token = prevToken;\n startRow = iterator.getCurrentTokenRow();\n startColumn = iterator.getCurrentTokenColumn();\n endColumn = startColumn + token.value.length;\n prevToken = iterator.stepBackward();\n if (token) {\n if (token.type.indexOf('tag-name') !== -1) {\n if (tag === token.value) {\n if (prevToken.value === '<') {\n depth++;\n if (depth > 0) { //found opening tag\n var openTagName = new Range(startRow, startColumn, startRow, endColumn);\n var openTagStart = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for <\n do {\n token = iterator.stepForward();\n } while (token && token.value !== '>');\n var openTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for >\n }\n }\n else if (prevToken.value === '') { // self-closing tag\n var stepCount = 0;\n var tmpToken = prevToken;\n while (tmpToken) {\n if (tmpToken.type.indexOf('tag-name') !== -1 && tmpToken.value === tag) {\n depth--;\n break;\n }\n else if (tmpToken.value === '<') {\n break;\n }\n tmpToken = iterator.stepBackward();\n stepCount++;\n }\n for (var i = 0; i < stepCount; i++) {\n iterator.stepForward();\n }\n }\n }\n } while (prevToken && depth <= 0);\n if (openTagStart && openTagEnd && closeTagStart && closeTagEnd && openTagName && closeTagName) {\n return {\n openTag: new Range(openTagStart.start.row, openTagStart.start.column, openTagEnd.end.row, openTagEnd.end.column),\n closeTag: new Range(closeTagStart.start.row, closeTagStart.start.column, closeTagEnd.end.row, closeTagEnd.end.column),\n openTagName: openTagName,\n closeTagName: closeTagName\n };\n }\n };\n}\nexports.BracketMatch = BracketMatch;\n\n});\n\nace.define(\"ace/edit_session\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/bidihandler\",\"ace/config\",\"ace/lib/event_emitter\",\"ace/selection\",\"ace/mode/text\",\"ace/range\",\"ace/document\",\"ace/background_tokenizer\",\"ace/search_highlight\",\"ace/undomanager\",\"ace/edit_session/folding\",\"ace/edit_session/bracket_match\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar lang = require(\"./lib/lang\");\nvar BidiHandler = require(\"./bidihandler\").BidiHandler;\nvar config = require(\"./config\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Selection = require(\"./selection\").Selection;\nvar TextMode = require(\"./mode/text\").Mode;\nvar Range = require(\"./range\").Range;\nvar Document = require(\"./document\").Document;\nvar BackgroundTokenizer = require(\"./background_tokenizer\").BackgroundTokenizer;\nvar SearchHighlight = require(\"./search_highlight\").SearchHighlight;\nvar UndoManager = require(\"./undomanager\").UndoManager;\nvar EditSession = /** @class */ (function () {\n function EditSession(text, mode) {\n this.$breakpoints = [];\n this.$decorations = [];\n this.$frontMarkers = {};\n this.$backMarkers = {};\n this.$markerId = 1;\n this.$undoSelect = true;\n this.$foldData = [];\n this.id = \"session\" + (++EditSession.$uid);\n this.$foldData.toString = function () {\n return this.join(\"\\n\");\n };\n this.bgTokenizer = new BackgroundTokenizer((new TextMode()).getTokenizer(), this);\n var _self = this;\n this.bgTokenizer.on(\"update\", function (e) {\n _self._signal(\"tokenizerUpdate\", e);\n });\n this.on(\"changeFold\", this.onChangeFold.bind(this));\n this.$onChange = this.onChange.bind(this);\n if (typeof text != \"object\" || !text.getLine)\n text = new Document(text);\n this.setDocument(text);\n this.selection = new Selection(this);\n this.$bidiHandler = new BidiHandler(this);\n config.resetOptions(this);\n this.setMode(mode);\n config._signal(\"session\", this);\n this.destroyed = false;\n }\n EditSession.prototype.setDocument = function (doc) {\n if (this.doc)\n this.doc.off(\"change\", this.$onChange);\n this.doc = doc;\n doc.on(\"change\", this.$onChange, true);\n this.bgTokenizer.setDocument(this.getDocument());\n this.resetCaches();\n };\n EditSession.prototype.getDocument = function () {\n return this.doc;\n };\n EditSession.prototype.$resetRowCache = function (docRow) {\n if (!docRow) {\n this.$docRowCache = [];\n this.$screenRowCache = [];\n return;\n }\n var l = this.$docRowCache.length;\n var i = this.$getRowCacheIndex(this.$docRowCache, docRow) + 1;\n if (l > i) {\n this.$docRowCache.splice(i, l);\n this.$screenRowCache.splice(i, l);\n }\n };\n EditSession.prototype.$getRowCacheIndex = function (cacheArray, val) {\n var low = 0;\n var hi = cacheArray.length - 1;\n while (low <= hi) {\n var mid = (low + hi) >> 1;\n var c = cacheArray[mid];\n if (val > c)\n low = mid + 1;\n else if (val < c)\n hi = mid - 1;\n else\n return mid;\n }\n return low - 1;\n };\n EditSession.prototype.resetCaches = function () {\n this.$modified = true;\n this.$wrapData = [];\n this.$rowLengthCache = [];\n this.$resetRowCache(0);\n if (!this.destroyed)\n this.bgTokenizer.start(0);\n };\n EditSession.prototype.onChangeFold = function (e) {\n var fold = e.data;\n this.$resetRowCache(fold.start.row);\n };\n EditSession.prototype.onChange = function (delta) {\n this.$modified = true;\n this.$bidiHandler.onChange(delta);\n this.$resetRowCache(delta.start.row);\n var removedFolds = this.$updateInternalDataOnChange(delta);\n if (!this.$fromUndo && this.$undoManager) {\n if (removedFolds && removedFolds.length) {\n this.$undoManager.add({\n action: \"removeFolds\",\n folds: removedFolds\n }, this.mergeUndoDeltas);\n this.mergeUndoDeltas = true;\n }\n this.$undoManager.add(delta, this.mergeUndoDeltas);\n this.mergeUndoDeltas = true;\n this.$informUndoManager.schedule();\n }\n this.bgTokenizer.$updateOnChange(delta);\n this._signal(\"change\", delta);\n };\n EditSession.prototype.setValue = function (text) {\n this.doc.setValue(text);\n this.selection.moveTo(0, 0);\n this.$resetRowCache(0);\n this.setUndoManager(this.$undoManager);\n this.getUndoManager().reset();\n };\n EditSession.fromJSON = function (session) {\n session = JSON.parse(session);\n var undoManager = new UndoManager();\n undoManager.$undoStack = session.history.undo;\n undoManager.$redoStack = session.history.redo;\n undoManager.mark = session.history.mark;\n undoManager.$rev = session.history.rev;\n var editSession = new EditSession(session.value);\n session.folds.forEach(function (fold) {\n editSession.addFold(\"...\", Range.fromPoints(fold.start, fold.end));\n });\n editSession.setAnnotations(session.annotations);\n editSession.setBreakpoints(session.breakpoints);\n editSession.setMode(session.mode);\n editSession.setScrollLeft(session.scrollLeft);\n editSession.setScrollTop(session.scrollTop);\n editSession.setUndoManager(undoManager);\n editSession.selection.fromJSON(session.selection);\n return editSession;\n };\n EditSession.prototype.toJSON = function () {\n return {\n annotations: this.$annotations,\n breakpoints: this.$breakpoints,\n folds: this.getAllFolds().map(function (fold) {\n return fold.range;\n }),\n history: this.getUndoManager(),\n mode: this.$mode.$id,\n scrollLeft: this.$scrollLeft,\n scrollTop: this.$scrollTop,\n selection: this.selection.toJSON(),\n value: this.doc.getValue()\n };\n };\n EditSession.prototype.toString = function () {\n return this.doc.getValue();\n };\n EditSession.prototype.getSelection = function () {\n return this.selection;\n };\n EditSession.prototype.getState = function (row) {\n return this.bgTokenizer.getState(row);\n };\n EditSession.prototype.getTokens = function (row) {\n return this.bgTokenizer.getTokens(row);\n };\n EditSession.prototype.getTokenAt = function (row, column) {\n var tokens = this.bgTokenizer.getTokens(row);\n var token, c = 0;\n if (column == null) {\n var i = tokens.length - 1;\n c = this.getLine(row).length;\n }\n else {\n for (var i = 0; i < tokens.length; i++) {\n c += tokens[i].value.length;\n if (c >= column)\n break;\n }\n }\n token = tokens[i];\n if (!token)\n return null;\n token.index = i;\n token.start = c - token.value.length;\n return token;\n };\n EditSession.prototype.setUndoManager = function (undoManager) {\n this.$undoManager = undoManager;\n if (this.$informUndoManager)\n this.$informUndoManager.cancel();\n if (undoManager) {\n var self = this;\n undoManager.addSession(this);\n this.$syncInformUndoManager = function () {\n self.$informUndoManager.cancel();\n self.mergeUndoDeltas = false;\n };\n this.$informUndoManager = lang.delayedCall(this.$syncInformUndoManager);\n }\n else {\n this.$syncInformUndoManager = function () { };\n }\n };\n EditSession.prototype.markUndoGroup = function () {\n if (this.$syncInformUndoManager)\n this.$syncInformUndoManager();\n };\n EditSession.prototype.getUndoManager = function () {\n return this.$undoManager || this.$defaultUndoManager;\n };\n EditSession.prototype.getTabString = function () {\n if (this.getUseSoftTabs()) {\n return lang.stringRepeat(\" \", this.getTabSize());\n }\n else {\n return \"\\t\";\n }\n };\n EditSession.prototype.setUseSoftTabs = function (val) {\n this.setOption(\"useSoftTabs\", val);\n };\n EditSession.prototype.getUseSoftTabs = function () {\n return this.$useSoftTabs && !this.$mode.$indentWithTabs;\n };\n EditSession.prototype.setTabSize = function (tabSize) {\n this.setOption(\"tabSize\", tabSize);\n };\n EditSession.prototype.getTabSize = function () {\n return this.$tabSize;\n };\n EditSession.prototype.isTabStop = function (position) {\n return this.$useSoftTabs && (position.column % this.$tabSize === 0);\n };\n EditSession.prototype.setNavigateWithinSoftTabs = function (navigateWithinSoftTabs) {\n this.setOption(\"navigateWithinSoftTabs\", navigateWithinSoftTabs);\n };\n EditSession.prototype.getNavigateWithinSoftTabs = function () {\n return this.$navigateWithinSoftTabs;\n };\n EditSession.prototype.setOverwrite = function (overwrite) {\n this.setOption(\"overwrite\", overwrite);\n };\n EditSession.prototype.getOverwrite = function () {\n return this.$overwrite;\n };\n EditSession.prototype.toggleOverwrite = function () {\n this.setOverwrite(!this.$overwrite);\n };\n EditSession.prototype.addGutterDecoration = function (row, className) {\n if (!this.$decorations[row])\n this.$decorations[row] = \"\";\n this.$decorations[row] += \" \" + className;\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.removeGutterDecoration = function (row, className) {\n this.$decorations[row] = (this.$decorations[row] || \"\").replace(\" \" + className, \"\");\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.getBreakpoints = function () {\n return this.$breakpoints;\n };\n EditSession.prototype.setBreakpoints = function (rows) {\n this.$breakpoints = [];\n for (var i = 0; i < rows.length; i++) {\n this.$breakpoints[rows[i]] = \"ace_breakpoint\";\n }\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.clearBreakpoints = function () {\n this.$breakpoints = [];\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.setBreakpoint = function (row, className) {\n if (className === undefined)\n className = \"ace_breakpoint\";\n if (className)\n this.$breakpoints[row] = className;\n else\n delete this.$breakpoints[row];\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.clearBreakpoint = function (row) {\n delete this.$breakpoints[row];\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.addMarker = function (range, clazz, type, inFront) {\n var id = this.$markerId++;\n var marker = {\n range: range,\n type: type || \"line\",\n renderer: typeof type == \"function\" ? type : null,\n clazz: clazz,\n inFront: !!inFront,\n id: id\n };\n if (inFront) {\n this.$frontMarkers[id] = marker;\n this._signal(\"changeFrontMarker\");\n }\n else {\n this.$backMarkers[id] = marker;\n this._signal(\"changeBackMarker\");\n }\n return id;\n };\n EditSession.prototype.addDynamicMarker = function (marker, inFront) {\n if (!marker.update)\n return;\n var id = this.$markerId++;\n marker.id = id;\n marker.inFront = !!inFront;\n if (inFront) {\n this.$frontMarkers[id] = marker;\n this._signal(\"changeFrontMarker\");\n }\n else {\n this.$backMarkers[id] = marker;\n this._signal(\"changeBackMarker\");\n }\n return marker;\n };\n EditSession.prototype.removeMarker = function (markerId) {\n var marker = this.$frontMarkers[markerId] || this.$backMarkers[markerId];\n if (!marker)\n return;\n var markers = marker.inFront ? this.$frontMarkers : this.$backMarkers;\n delete (markers[markerId]);\n this._signal(marker.inFront ? \"changeFrontMarker\" : \"changeBackMarker\");\n };\n EditSession.prototype.getMarkers = function (inFront) {\n return inFront ? this.$frontMarkers : this.$backMarkers;\n };\n EditSession.prototype.highlight = function (re) {\n if (!this.$searchHighlight) {\n var highlight = new SearchHighlight(null, \"ace_selected-word\", \"text\");\n this.$searchHighlight = this.addDynamicMarker(highlight);\n }\n this.$searchHighlight.setRegexp(re);\n };\n EditSession.prototype.highlightLines = function (startRow, endRow, clazz, inFront) {\n if (typeof endRow != \"number\") {\n clazz = endRow;\n endRow = startRow;\n }\n if (!clazz)\n clazz = \"ace_step\";\n var range = new Range(startRow, 0, endRow, Infinity);\n range.id = this.addMarker(range, clazz, \"fullLine\", inFront);\n return range;\n };\n EditSession.prototype.setAnnotations = function (annotations) {\n this.$annotations = annotations;\n this._signal(\"changeAnnotation\", {});\n };\n EditSession.prototype.getAnnotations = function () {\n return this.$annotations || [];\n };\n EditSession.prototype.clearAnnotations = function () {\n this.setAnnotations([]);\n };\n EditSession.prototype.$detectNewLine = function (text) {\n var match = text.match(/^.*?(\\r?\\n)/m);\n if (match) {\n this.$autoNewLine = match[1];\n }\n else {\n this.$autoNewLine = \"\\n\";\n }\n };\n EditSession.prototype.getWordRange = function (row, column) {\n var line = this.getLine(row);\n var inToken = false;\n if (column > 0)\n inToken = !!line.charAt(column - 1).match(this.tokenRe);\n if (!inToken)\n inToken = !!line.charAt(column).match(this.tokenRe);\n if (inToken)\n var re = this.tokenRe;\n else if (/^\\s+$/.test(line.slice(column - 1, column + 1)))\n var re = /\\s/;\n else\n var re = this.nonTokenRe;\n var start = column;\n if (start > 0) {\n do {\n start--;\n } while (start >= 0 && line.charAt(start).match(re));\n start++;\n }\n var end = column;\n while (end < line.length && line.charAt(end).match(re)) {\n end++;\n }\n return new Range(row, start, row, end);\n };\n EditSession.prototype.getAWordRange = function (row, column) {\n var wordRange = this.getWordRange(row, column);\n var line = this.getLine(wordRange.end.row);\n while (line.charAt(wordRange.end.column).match(/[ \\t]/)) {\n wordRange.end.column += 1;\n }\n return wordRange;\n };\n EditSession.prototype.setNewLineMode = function (newLineMode) {\n this.doc.setNewLineMode(newLineMode);\n };\n EditSession.prototype.getNewLineMode = function () {\n return this.doc.getNewLineMode();\n };\n EditSession.prototype.setUseWorker = function (useWorker) { this.setOption(\"useWorker\", useWorker); };\n EditSession.prototype.getUseWorker = function () { return this.$useWorker; };\n EditSession.prototype.onReloadTokenizer = function (e) {\n var rows = e.data;\n this.bgTokenizer.start(rows.first);\n this._signal(\"tokenizerUpdate\", e);\n };\n EditSession.prototype.setMode = function (mode, cb) {\n if (mode && typeof mode === \"object\") {\n if (mode.getTokenizer)\n return this.$onChangeMode(mode);\n var options = mode;\n var path = options.path;\n }\n else {\n path = mode || \"ace/mode/text\";\n }\n if (!this.$modes[\"ace/mode/text\"])\n this.$modes[\"ace/mode/text\"] = new TextMode();\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n cb && cb();\n return;\n }\n this.$modeId = path;\n config.loadModule([\"mode\", path], function (m) {\n if (this.$modeId !== path)\n return cb && cb();\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n }\n else if (m && m.Mode) {\n m = new m.Mode(options);\n if (!options) {\n this.$modes[path] = m;\n m.$id = path;\n }\n this.$onChangeMode(m);\n }\n cb && cb();\n }.bind(this));\n if (!this.$mode)\n this.$onChangeMode(this.$modes[\"ace/mode/text\"], true);\n };\n EditSession.prototype.$onChangeMode = function (mode, $isPlaceholder) {\n if (!$isPlaceholder)\n this.$modeId = mode.$id;\n if (this.$mode === mode)\n return;\n var oldMode = this.$mode;\n this.$mode = mode;\n this.$stopWorker();\n if (this.$useWorker)\n this.$startWorker();\n var tokenizer = mode.getTokenizer();\n if (tokenizer.on !== undefined) {\n var onReloadTokenizer = this.onReloadTokenizer.bind(this);\n tokenizer.on(\"update\", onReloadTokenizer);\n }\n this.bgTokenizer.setTokenizer(tokenizer);\n this.bgTokenizer.setDocument(this.getDocument());\n this.tokenRe = mode.tokenRe;\n this.nonTokenRe = mode.nonTokenRe;\n if (!$isPlaceholder) {\n if (mode.attachToSession)\n mode.attachToSession(this);\n this.$options.wrapMethod.set.call(this, this.$wrapMethod);\n this.$setFolding(mode.foldingRules);\n this.bgTokenizer.start(0);\n this._emit(\"changeMode\", { oldMode: oldMode, mode: mode });\n }\n };\n EditSession.prototype.$stopWorker = function () {\n if (this.$worker) {\n this.$worker.terminate();\n this.$worker = null;\n }\n };\n EditSession.prototype.$startWorker = function () {\n try {\n this.$worker = this.$mode.createWorker(this);\n }\n catch (e) {\n config.warn(\"Could not load worker\", e);\n this.$worker = null;\n }\n };\n EditSession.prototype.getMode = function () {\n return this.$mode;\n };\n EditSession.prototype.setScrollTop = function (scrollTop) {\n if (this.$scrollTop === scrollTop || isNaN(scrollTop))\n return;\n this.$scrollTop = scrollTop;\n this._signal(\"changeScrollTop\", scrollTop);\n };\n EditSession.prototype.getScrollTop = function () {\n return this.$scrollTop;\n };\n EditSession.prototype.setScrollLeft = function (scrollLeft) {\n if (this.$scrollLeft === scrollLeft || isNaN(scrollLeft))\n return;\n this.$scrollLeft = scrollLeft;\n this._signal(\"changeScrollLeft\", scrollLeft);\n };\n EditSession.prototype.getScrollLeft = function () {\n return this.$scrollLeft;\n };\n EditSession.prototype.getScreenWidth = function () {\n this.$computeWidth();\n if (this.lineWidgets)\n return Math.max(this.getLineWidgetMaxWidth(), this.screenWidth);\n return this.screenWidth;\n };\n EditSession.prototype.getLineWidgetMaxWidth = function () {\n if (this.lineWidgetsWidth != null)\n return this.lineWidgetsWidth;\n var width = 0;\n this.lineWidgets.forEach(function (w) {\n if (w && w.screenWidth > width)\n width = w.screenWidth;\n });\n return this.lineWidgetWidth = width;\n };\n EditSession.prototype.$computeWidth = function (force) {\n if (this.$modified || force) {\n this.$modified = false;\n if (this.$useWrapMode)\n return this.screenWidth = this.$wrapLimit;\n var lines = this.doc.getAllLines();\n var cache = this.$rowLengthCache;\n var longestScreenLine = 0;\n var foldIndex = 0;\n var foldLine = this.$foldData[foldIndex];\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n var len = lines.length;\n for (var i = 0; i < len; i++) {\n if (i > foldStart) {\n i = foldLine.end.row + 1;\n if (i >= len)\n break;\n foldLine = this.$foldData[foldIndex++];\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (cache[i] == null)\n cache[i] = this.$getStringScreenWidth(lines[i])[0];\n if (cache[i] > longestScreenLine)\n longestScreenLine = cache[i];\n }\n this.screenWidth = longestScreenLine;\n }\n };\n EditSession.prototype.getLine = function (row) {\n return this.doc.getLine(row);\n };\n EditSession.prototype.getLines = function (firstRow, lastRow) {\n return this.doc.getLines(firstRow, lastRow);\n };\n EditSession.prototype.getLength = function () {\n return this.doc.getLength();\n };\n EditSession.prototype.getTextRange = function (range) {\n return this.doc.getTextRange(range || this.selection.getRange());\n };\n EditSession.prototype.insert = function (position, text) {\n return this.doc.insert(position, text);\n };\n EditSession.prototype.remove = function (range) {\n return this.doc.remove(range);\n };\n EditSession.prototype.removeFullLines = function (firstRow, lastRow) {\n return this.doc.removeFullLines(firstRow, lastRow);\n };\n EditSession.prototype.undoChanges = function (deltas, dontSelect) {\n if (!deltas.length)\n return;\n this.$fromUndo = true;\n for (var i = deltas.length - 1; i != -1; i--) {\n var delta = deltas[i];\n if (delta.action == \"insert\" || delta.action == \"remove\") {\n this.doc.revertDelta(delta);\n }\n else if (delta.folds) {\n this.addFolds(delta.folds);\n }\n }\n if (!dontSelect && this.$undoSelect) {\n if (deltas.selectionBefore)\n this.selection.fromJSON(deltas.selectionBefore);\n else\n this.selection.setRange(this.$getUndoSelection(deltas, true));\n }\n this.$fromUndo = false;\n };\n EditSession.prototype.redoChanges = function (deltas, dontSelect) {\n if (!deltas.length)\n return;\n this.$fromUndo = true;\n for (var i = 0; i < deltas.length; i++) {\n var delta = deltas[i];\n if (delta.action == \"insert\" || delta.action == \"remove\") {\n this.doc.$safeApplyDelta(delta);\n }\n }\n if (!dontSelect && this.$undoSelect) {\n if (deltas.selectionAfter)\n this.selection.fromJSON(deltas.selectionAfter);\n else\n this.selection.setRange(this.$getUndoSelection(deltas, false));\n }\n this.$fromUndo = false;\n };\n EditSession.prototype.setUndoSelect = function (enable) {\n this.$undoSelect = enable;\n };\n EditSession.prototype.$getUndoSelection = function (deltas, isUndo) {\n function isInsert(delta) {\n return isUndo ? delta.action !== \"insert\" : delta.action === \"insert\";\n }\n var range, point;\n for (var i = 0; i < deltas.length; i++) {\n var delta = deltas[i];\n if (!delta.start)\n continue; // skip folds\n if (!range) {\n if (isInsert(delta)) {\n range = Range.fromPoints(delta.start, delta.end);\n }\n else {\n range = Range.fromPoints(delta.start, delta.start);\n }\n continue;\n }\n if (isInsert(delta)) {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range.setStart(point);\n }\n point = delta.end;\n if (range.compare(point.row, point.column) == 1) {\n range.setEnd(point);\n }\n }\n else {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range = Range.fromPoints(delta.start, delta.start);\n }\n }\n }\n return range;\n };\n EditSession.prototype.replace = function (range, text) {\n return this.doc.replace(range, text);\n };\n EditSession.prototype.moveText = function (fromRange, toPosition, copy) {\n var text = this.getTextRange(fromRange);\n var folds = this.getFoldsInRange(fromRange);\n var toRange = Range.fromPoints(toPosition, toPosition);\n if (!copy) {\n this.remove(fromRange);\n var rowDiff = fromRange.start.row - fromRange.end.row;\n var collDiff = rowDiff ? -fromRange.end.column : fromRange.start.column - fromRange.end.column;\n if (collDiff) {\n if (toRange.start.row == fromRange.end.row && toRange.start.column > fromRange.end.column)\n toRange.start.column += collDiff;\n if (toRange.end.row == fromRange.end.row && toRange.end.column > fromRange.end.column)\n toRange.end.column += collDiff;\n }\n if (rowDiff && toRange.start.row >= fromRange.end.row) {\n toRange.start.row += rowDiff;\n toRange.end.row += rowDiff;\n }\n }\n toRange.end = this.insert(toRange.start, text);\n if (folds.length) {\n var oldStart = fromRange.start;\n var newStart = toRange.start;\n var rowDiff = newStart.row - oldStart.row;\n var collDiff = newStart.column - oldStart.column;\n this.addFolds(folds.map(function (x) {\n x = x.clone();\n if (x.start.row == oldStart.row)\n x.start.column += collDiff;\n if (x.end.row == oldStart.row)\n x.end.column += collDiff;\n x.start.row += rowDiff;\n x.end.row += rowDiff;\n return x;\n }));\n }\n return toRange;\n };\n EditSession.prototype.indentRows = function (startRow, endRow, indentString) {\n indentString = indentString.replace(/\\t/g, this.getTabString());\n for (var row = startRow; row <= endRow; row++)\n this.doc.insertInLine({ row: row, column: 0 }, indentString);\n };\n EditSession.prototype.outdentRows = function (range) {\n var rowRange = range.collapseRows();\n var deleteRange = new Range(0, 0, 0, 0);\n var size = this.getTabSize();\n for (var i = rowRange.start.row; i <= rowRange.end.row; ++i) {\n var line = this.getLine(i);\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n for (var j = 0; j < size; ++j)\n if (line.charAt(j) != ' ')\n break;\n if (j < size && line.charAt(j) == '\\t') {\n deleteRange.start.column = j;\n deleteRange.end.column = j + 1;\n }\n else {\n deleteRange.start.column = 0;\n deleteRange.end.column = j;\n }\n this.remove(deleteRange);\n }\n };\n EditSession.prototype.$moveLines = function (firstRow, lastRow, dir) {\n firstRow = this.getRowFoldStart(firstRow);\n lastRow = this.getRowFoldEnd(lastRow);\n if (dir < 0) {\n var row = this.getRowFoldStart(firstRow + dir);\n if (row < 0)\n return 0;\n var diff = row - firstRow;\n }\n else if (dir > 0) {\n var row = this.getRowFoldEnd(lastRow + dir);\n if (row > this.doc.getLength() - 1)\n return 0;\n var diff = row - lastRow;\n }\n else {\n firstRow = this.$clipRowToDocument(firstRow);\n lastRow = this.$clipRowToDocument(lastRow);\n var diff = lastRow - firstRow + 1;\n }\n var range = new Range(firstRow, 0, lastRow, Number.MAX_VALUE);\n var folds = this.getFoldsInRange(range).map(function (x) {\n x = x.clone();\n x.start.row += diff;\n x.end.row += diff;\n return x;\n });\n var lines = dir == 0\n ? this.doc.getLines(firstRow, lastRow)\n : this.doc.removeFullLines(firstRow, lastRow);\n this.doc.insertFullLines(firstRow + diff, lines);\n folds.length && this.addFolds(folds);\n return diff;\n };\n EditSession.prototype.moveLinesUp = function (firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, -1);\n };\n EditSession.prototype.moveLinesDown = function (firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 1);\n };\n EditSession.prototype.duplicateLines = function (firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 0);\n };\n EditSession.prototype.$clipRowToDocument = function (row) {\n return Math.max(0, Math.min(row, this.doc.getLength() - 1));\n };\n EditSession.prototype.$clipColumnToRow = function (row, column) {\n if (column < 0)\n return 0;\n return Math.min(this.doc.getLine(row).length, column);\n };\n EditSession.prototype.$clipPositionToDocument = function (row, column) {\n column = Math.max(0, column);\n if (row < 0) {\n row = 0;\n column = 0;\n }\n else {\n var len = this.doc.getLength();\n if (row >= len) {\n row = len - 1;\n column = this.doc.getLine(len - 1).length;\n }\n else {\n column = Math.min(this.doc.getLine(row).length, column);\n }\n }\n return {\n row: row,\n column: column\n };\n };\n EditSession.prototype.$clipRangeToDocument = function (range) {\n if (range.start.row < 0) {\n range.start.row = 0;\n range.start.column = 0;\n }\n else {\n range.start.column = this.$clipColumnToRow(range.start.row, range.start.column);\n }\n var len = this.doc.getLength() - 1;\n if (range.end.row > len) {\n range.end.row = len;\n range.end.column = this.doc.getLine(len).length;\n }\n else {\n range.end.column = this.$clipColumnToRow(range.end.row, range.end.column);\n }\n return range;\n };\n EditSession.prototype.setUseWrapMode = function (useWrapMode) {\n if (useWrapMode != this.$useWrapMode) {\n this.$useWrapMode = useWrapMode;\n this.$modified = true;\n this.$resetRowCache(0);\n if (useWrapMode) {\n var len = this.getLength();\n this.$wrapData = Array(len);\n this.$updateWrapData(0, len - 1);\n }\n this._signal(\"changeWrapMode\");\n }\n };\n EditSession.prototype.getUseWrapMode = function () {\n return this.$useWrapMode;\n };\n EditSession.prototype.setWrapLimitRange = function (min, max) {\n if (this.$wrapLimitRange.min !== min || this.$wrapLimitRange.max !== max) {\n this.$wrapLimitRange = { min: min, max: max };\n this.$modified = true;\n this.$bidiHandler.markAsDirty();\n if (this.$useWrapMode)\n this._signal(\"changeWrapMode\");\n }\n };\n EditSession.prototype.adjustWrapLimit = function (desiredLimit, $printMargin) {\n var limits = this.$wrapLimitRange;\n if (limits.max < 0)\n limits = { min: $printMargin, max: $printMargin };\n var wrapLimit = this.$constrainWrapLimit(desiredLimit, limits.min, limits.max);\n if (wrapLimit != this.$wrapLimit && wrapLimit > 1) {\n this.$wrapLimit = wrapLimit;\n this.$modified = true;\n if (this.$useWrapMode) {\n this.$updateWrapData(0, this.getLength() - 1);\n this.$resetRowCache(0);\n this._signal(\"changeWrapLimit\");\n }\n return true;\n }\n return false;\n };\n EditSession.prototype.$constrainWrapLimit = function (wrapLimit, min, max) {\n if (min)\n wrapLimit = Math.max(min, wrapLimit);\n if (max)\n wrapLimit = Math.min(max, wrapLimit);\n return wrapLimit;\n };\n EditSession.prototype.getWrapLimit = function () {\n return this.$wrapLimit;\n };\n EditSession.prototype.setWrapLimit = function (limit) {\n this.setWrapLimitRange(limit, limit);\n };\n EditSession.prototype.getWrapLimitRange = function () {\n return {\n min: this.$wrapLimitRange.min,\n max: this.$wrapLimitRange.max\n };\n };\n EditSession.prototype.$updateInternalDataOnChange = function (delta) {\n var useWrapMode = this.$useWrapMode;\n var action = delta.action;\n var start = delta.start;\n var end = delta.end;\n var firstRow = start.row;\n var lastRow = end.row;\n var len = lastRow - firstRow;\n var removedFolds = null;\n this.$updating = true;\n if (len != 0) {\n if (action === \"remove\") {\n this[useWrapMode ? \"$wrapData\" : \"$rowLengthCache\"].splice(firstRow, len);\n var foldLines = this.$foldData;\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n var foldLine = this.getFoldLine(end.row);\n var idx = 0;\n if (foldLine) {\n foldLine.addRemoveChars(end.row, end.column, start.column - end.column);\n foldLine.shiftRow(-len);\n var foldLineBefore = this.getFoldLine(firstRow);\n if (foldLineBefore && foldLineBefore !== foldLine) {\n foldLineBefore.merge(foldLine);\n foldLine = foldLineBefore;\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= end.row) {\n foldLine.shiftRow(-len);\n }\n }\n lastRow = firstRow;\n }\n else {\n var args = Array(len);\n args.unshift(firstRow, 0);\n var arr = useWrapMode ? this.$wrapData : this.$rowLengthCache;\n arr.splice.apply(arr, args);\n var foldLines = this.$foldData;\n var foldLine = this.getFoldLine(firstRow);\n var idx = 0;\n if (foldLine) {\n var cmp = foldLine.range.compareInside(start.row, start.column);\n if (cmp == 0) {\n foldLine = foldLine.split(start.row, start.column);\n if (foldLine) {\n foldLine.shiftRow(len);\n foldLine.addRemoveChars(lastRow, 0, end.column - start.column);\n }\n }\n else \n if (cmp == -1) {\n foldLine.addRemoveChars(firstRow, 0, end.column - start.column);\n foldLine.shiftRow(len);\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= firstRow) {\n foldLine.shiftRow(len);\n }\n }\n }\n }\n else {\n len = Math.abs(delta.start.column - delta.end.column);\n if (action === \"remove\") {\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n len = -len;\n }\n var foldLine = this.getFoldLine(firstRow);\n if (foldLine) {\n foldLine.addRemoveChars(firstRow, start.column, len);\n }\n }\n if (useWrapMode && this.$wrapData.length != this.doc.getLength()) {\n console.error(\"doc.getLength() and $wrapData.length have to be the same!\");\n }\n this.$updating = false;\n if (useWrapMode)\n this.$updateWrapData(firstRow, lastRow);\n else\n this.$updateRowLengthCache(firstRow, lastRow);\n return removedFolds;\n };\n EditSession.prototype.$updateRowLengthCache = function (firstRow, lastRow, b) {\n this.$rowLengthCache[firstRow] = null;\n this.$rowLengthCache[lastRow] = null;\n };\n EditSession.prototype.$updateWrapData = function (firstRow, lastRow) {\n var lines = this.doc.getAllLines();\n var tabSize = this.getTabSize();\n var wrapData = this.$wrapData;\n var wrapLimit = this.$wrapLimit;\n var tokens;\n var foldLine;\n var row = firstRow;\n lastRow = Math.min(lastRow, lines.length - 1);\n while (row <= lastRow) {\n foldLine = this.getFoldLine(row, foldLine);\n if (!foldLine) {\n tokens = this.$getDisplayTokens(lines[row]);\n wrapData[row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row++;\n }\n else {\n tokens = [];\n foldLine.walk(function (placeholder, row, column, lastColumn) {\n var walkTokens;\n if (placeholder != null) {\n walkTokens = this.$getDisplayTokens(placeholder, tokens.length);\n walkTokens[0] = PLACEHOLDER_START;\n for (var i = 1; i < walkTokens.length; i++) {\n walkTokens[i] = PLACEHOLDER_BODY;\n }\n }\n else {\n walkTokens = this.$getDisplayTokens(lines[row].substring(lastColumn, column), tokens.length);\n }\n tokens = tokens.concat(walkTokens);\n }.bind(this), foldLine.end.row, lines[foldLine.end.row].length + 1);\n wrapData[foldLine.start.row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row = foldLine.end.row + 1;\n }\n }\n };\n EditSession.prototype.$computeWrapSplits = function (tokens, wrapLimit, tabSize) {\n if (tokens.length == 0) {\n return [];\n }\n var splits = [];\n var displayLength = tokens.length;\n var lastSplit = 0, lastDocSplit = 0;\n var isCode = this.$wrapAsCode;\n var indentedSoftWrap = this.$indentedSoftWrap;\n var maxIndent = wrapLimit <= Math.max(2 * tabSize, 8)\n || indentedSoftWrap === false ? 0 : Math.floor(wrapLimit / 2);\n function getWrapIndent() {\n var indentation = 0;\n if (maxIndent === 0)\n return indentation;\n if (indentedSoftWrap) {\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (token == SPACE)\n indentation += 1;\n else if (token == TAB)\n indentation += tabSize;\n else if (token == TAB_SPACE)\n continue;\n else\n break;\n }\n }\n if (isCode && indentedSoftWrap !== false)\n indentation += tabSize;\n return Math.min(indentation, maxIndent);\n }\n function addSplit(screenPos) {\n var len = screenPos - lastSplit;\n for (var i = lastSplit; i < screenPos; i++) {\n var ch = tokens[i];\n if (ch === 12 || ch === 2)\n len -= 1;\n }\n if (!splits.length) {\n indent = getWrapIndent();\n splits.indent = indent;\n }\n lastDocSplit += len;\n splits.push(lastDocSplit);\n lastSplit = screenPos;\n }\n var indent = 0;\n while (displayLength - lastSplit > wrapLimit - indent) {\n var split = lastSplit + wrapLimit - indent;\n if (tokens[split - 1] >= SPACE && tokens[split] >= SPACE) {\n addSplit(split);\n continue;\n }\n if (tokens[split] == PLACEHOLDER_START || tokens[split] == PLACEHOLDER_BODY) {\n for (split; split != lastSplit - 1; split--) {\n if (tokens[split] == PLACEHOLDER_START) {\n break;\n }\n }\n if (split > lastSplit) {\n addSplit(split);\n continue;\n }\n split = lastSplit + wrapLimit;\n for (split; split < tokens.length; split++) {\n if (tokens[split] != PLACEHOLDER_BODY) {\n break;\n }\n }\n if (split == tokens.length) {\n break; // Breaks the while-loop.\n }\n addSplit(split);\n continue;\n }\n var minSplit = Math.max(split - (wrapLimit - (wrapLimit >> 2)), lastSplit - 1);\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split--;\n }\n if (isCode) {\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split--;\n }\n while (split > minSplit && tokens[split] == PUNCTUATION) {\n split--;\n }\n }\n else {\n while (split > minSplit && tokens[split] < SPACE) {\n split--;\n }\n }\n if (split > minSplit) {\n addSplit(++split);\n continue;\n }\n split = lastSplit + wrapLimit;\n if (tokens[split] == CHAR_EXT)\n split--;\n addSplit(split - indent);\n }\n return splits;\n };\n EditSession.prototype.$getDisplayTokens = function (str, offset) {\n var arr = [];\n var tabSize;\n offset = offset || 0;\n for (var i = 0; i < str.length; i++) {\n var c = str.charCodeAt(i);\n if (c == 9) {\n tabSize = this.getScreenTabSize(arr.length + offset);\n arr.push(TAB);\n for (var n = 1; n < tabSize; n++) {\n arr.push(TAB_SPACE);\n }\n }\n else if (c == 32) {\n arr.push(SPACE);\n }\n else if ((c > 39 && c < 48) || (c > 57 && c < 64)) {\n arr.push(PUNCTUATION);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n arr.push(CHAR, CHAR_EXT);\n }\n else {\n arr.push(CHAR);\n }\n }\n return arr;\n };\n EditSession.prototype.$getStringScreenWidth = function (str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn == 0)\n return [0, 0];\n if (maxScreenColumn == null)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charCodeAt(column);\n if (c == 9) {\n screenColumn += this.getScreenTabSize(screenColumn);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n screenColumn += 2;\n }\n else {\n screenColumn += 1;\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n return [screenColumn, column];\n };\n EditSession.prototype.getRowLength = function (row) {\n var h = 1;\n if (this.lineWidgets)\n h += this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n if (!this.$useWrapMode || !this.$wrapData[row])\n return h;\n else\n return this.$wrapData[row].length + h;\n };\n EditSession.prototype.getRowLineCount = function (row) {\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1;\n }\n else {\n return this.$wrapData[row].length + 1;\n }\n };\n EditSession.prototype.getRowWrapIndent = function (screenRow) {\n if (this.$useWrapMode) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n var splits = this.$wrapData[pos.row];\n return splits.length && splits[0] < pos.column ? splits.indent : 0;\n }\n else {\n return 0;\n }\n };\n EditSession.prototype.getScreenLastRowColumn = function (screenRow) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n return this.documentToScreenColumn(pos.row, pos.column);\n };\n EditSession.prototype.getDocumentLastRowColumn = function (docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.getScreenLastRowColumn(screenRow);\n };\n EditSession.prototype.getDocumentLastRowColumnPosition = function (docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.screenToDocumentPosition(screenRow, Number.MAX_VALUE / 10);\n };\n EditSession.prototype.getRowSplitData = function (row) {\n if (!this.$useWrapMode) {\n return undefined;\n }\n else {\n return this.$wrapData[row];\n }\n };\n EditSession.prototype.getScreenTabSize = function (screenColumn) {\n return this.$tabSize - (screenColumn % this.$tabSize | 0);\n };\n EditSession.prototype.screenToDocumentRow = function (screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).row;\n };\n EditSession.prototype.screenToDocumentColumn = function (screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).column;\n };\n EditSession.prototype.screenToDocumentPosition = function (screenRow, screenColumn, offsetX) {\n if (screenRow < 0)\n return { row: 0, column: 0 };\n var line;\n var docRow = 0;\n var docColumn = 0;\n var column;\n var row = 0;\n var rowLength = 0;\n var rowCache = this.$screenRowCache;\n var i = this.$getRowCacheIndex(rowCache, screenRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var docRow = this.$docRowCache[i];\n var doCache = screenRow > rowCache[l - 1];\n }\n else {\n var doCache = !l;\n }\n var maxRow = this.getLength() - 1;\n var foldLine = this.getNextFoldLine(docRow);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (row <= screenRow) {\n rowLength = this.getRowLength(docRow);\n if (row + rowLength > screenRow || docRow >= maxRow) {\n break;\n }\n else {\n row += rowLength;\n docRow++;\n if (docRow > foldStart) {\n docRow = foldLine.end.row + 1;\n foldLine = this.getNextFoldLine(docRow, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n }\n if (doCache) {\n this.$docRowCache.push(docRow);\n this.$screenRowCache.push(row);\n }\n }\n if (foldLine && foldLine.start.row <= docRow) {\n line = this.getFoldDisplayLine(foldLine);\n docRow = foldLine.start.row;\n }\n else if (row + rowLength <= screenRow || docRow > maxRow) {\n return {\n row: maxRow,\n column: this.getLine(maxRow).length\n };\n }\n else {\n line = this.getLine(docRow);\n foldLine = null;\n }\n var wrapIndent = 0, splitIndex = Math.floor(screenRow - row);\n if (this.$useWrapMode) {\n var splits = this.$wrapData[docRow];\n if (splits) {\n column = splits[splitIndex];\n if (splitIndex > 0 && splits.length) {\n wrapIndent = splits.indent;\n docColumn = splits[splitIndex - 1] || splits[splits.length - 1];\n line = line.substring(docColumn);\n }\n }\n }\n if (offsetX !== undefined && this.$bidiHandler.isBidiRow(row + splitIndex, docRow, splitIndex))\n screenColumn = this.$bidiHandler.offsetToCol(offsetX);\n docColumn += this.$getStringScreenWidth(line, screenColumn - wrapIndent)[1];\n if (this.$useWrapMode && docColumn >= column)\n docColumn = column - 1;\n if (foldLine)\n return foldLine.idxToPosition(docColumn);\n return { row: docRow, column: docColumn };\n };\n EditSession.prototype.documentToScreenPosition = function (docRow, docColumn) {\n if (typeof docColumn === \"undefined\")\n var pos = this.$clipPositionToDocument(docRow.row, docRow.column);\n else\n pos = this.$clipPositionToDocument(docRow, docColumn);\n docRow = pos.row;\n docColumn = pos.column;\n var screenRow = 0;\n var foldStartRow = null;\n var fold = null;\n fold = this.getFoldAt(docRow, docColumn, 1);\n if (fold) {\n docRow = fold.start.row;\n docColumn = fold.start.column;\n }\n var rowEnd, row = 0;\n var rowCache = this.$docRowCache;\n var i = this.$getRowCacheIndex(rowCache, docRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var screenRow = this.$screenRowCache[i];\n var doCache = docRow > rowCache[l - 1];\n }\n else {\n var doCache = !l;\n }\n var foldLine = this.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (row < docRow) {\n if (row >= foldStart) {\n rowEnd = foldLine.end.row + 1;\n if (rowEnd > docRow)\n break;\n foldLine = this.getNextFoldLine(rowEnd, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n else {\n rowEnd = row + 1;\n }\n screenRow += this.getRowLength(row);\n row = rowEnd;\n if (doCache) {\n this.$docRowCache.push(row);\n this.$screenRowCache.push(screenRow);\n }\n }\n var textLine = \"\";\n if (foldLine && row >= foldStart) {\n textLine = this.getFoldDisplayLine(foldLine, docRow, docColumn);\n foldStartRow = foldLine.start.row;\n }\n else {\n textLine = this.getLine(docRow).substring(0, docColumn);\n foldStartRow = docRow;\n }\n var wrapIndent = 0;\n if (this.$useWrapMode) {\n var wrapRow = this.$wrapData[foldStartRow];\n if (wrapRow) {\n var screenRowOffset = 0;\n while (textLine.length >= wrapRow[screenRowOffset]) {\n screenRow++;\n screenRowOffset++;\n }\n textLine = textLine.substring(wrapRow[screenRowOffset - 1] || 0, textLine.length);\n wrapIndent = screenRowOffset > 0 ? wrapRow.indent : 0;\n }\n }\n if (this.lineWidgets && this.lineWidgets[row] && this.lineWidgets[row].rowsAbove)\n screenRow += this.lineWidgets[row].rowsAbove;\n return {\n row: screenRow,\n column: wrapIndent + this.$getStringScreenWidth(textLine)[0]\n };\n };\n EditSession.prototype.documentToScreenColumn = function (row, docColumn) {\n return this.documentToScreenPosition(row, docColumn).column;\n };\n EditSession.prototype.documentToScreenRow = function (docRow, docColumn) {\n return this.documentToScreenPosition(docRow, docColumn).row;\n };\n EditSession.prototype.getScreenLength = function () {\n var screenRows = 0;\n var fold = null;\n if (!this.$useWrapMode) {\n screenRows = this.getLength();\n var foldData = this.$foldData;\n for (var i = 0; i < foldData.length; i++) {\n fold = foldData[i];\n screenRows -= fold.end.row - fold.start.row;\n }\n }\n else {\n var lastRow = this.$wrapData.length;\n var row = 0, i = 0;\n var fold = this.$foldData[i++];\n var foldStart = fold ? fold.start.row : Infinity;\n while (row < lastRow) {\n var splits = this.$wrapData[row];\n screenRows += splits ? splits.length + 1 : 1;\n row++;\n if (row > foldStart) {\n row = fold.end.row + 1;\n fold = this.$foldData[i++];\n foldStart = fold ? fold.start.row : Infinity;\n }\n }\n }\n if (this.lineWidgets)\n screenRows += this.$getWidgetScreenLength();\n return screenRows;\n };\n EditSession.prototype.$setFontMetrics = function (fm) {\n if (!this.$enableVarChar)\n return;\n this.$getStringScreenWidth = function (str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn === 0)\n return [0, 0];\n if (!maxScreenColumn)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charAt(column);\n if (c === \"\\t\") {\n screenColumn += this.getScreenTabSize(screenColumn);\n }\n else {\n screenColumn += fm.getCharacterWidth(c);\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n return [screenColumn, column];\n };\n };\n EditSession.prototype.destroy = function () {\n if (!this.destroyed) {\n this.bgTokenizer.setDocument(null);\n this.bgTokenizer.cleanup();\n this.destroyed = true;\n }\n this.$stopWorker();\n this.removeAllListeners();\n if (this.doc) {\n this.doc.off(\"change\", this.$onChange);\n }\n this.selection.detach();\n };\n return EditSession;\n}());\nEditSession.$uid = 0;\nEditSession.prototype.$modes = config.$modes;\nEditSession.prototype.getValue = EditSession.prototype.toString;\nEditSession.prototype.$defaultUndoManager = {\n undo: function () { },\n redo: function () { },\n hasUndo: function () { },\n hasRedo: function () { },\n reset: function () { },\n add: function () { },\n addSelection: function () { },\n startNewGroup: function () { },\n addSession: function () { }\n};\nEditSession.prototype.$overwrite = false;\nEditSession.prototype.$mode = null;\nEditSession.prototype.$modeId = null;\nEditSession.prototype.$scrollTop = 0;\nEditSession.prototype.$scrollLeft = 0;\nEditSession.prototype.$wrapLimit = 80;\nEditSession.prototype.$useWrapMode = false;\nEditSession.prototype.$wrapLimitRange = {\n min: null,\n max: null\n};\nEditSession.prototype.lineWidgets = null;\nEditSession.prototype.isFullWidth = isFullWidth;\noop.implement(EditSession.prototype, EventEmitter);\nvar CHAR = 1, CHAR_EXT = 2, PLACEHOLDER_START = 3, PLACEHOLDER_BODY = 4, PUNCTUATION = 9, SPACE = 10, TAB = 11, TAB_SPACE = 12;\nfunction isFullWidth(c) {\n if (c < 0x1100)\n return false;\n return c >= 0x1100 && c <= 0x115F ||\n c >= 0x11A3 && c <= 0x11A7 ||\n c >= 0x11FA && c <= 0x11FF ||\n c >= 0x2329 && c <= 0x232A ||\n c >= 0x2E80 && c <= 0x2E99 ||\n c >= 0x2E9B && c <= 0x2EF3 ||\n c >= 0x2F00 && c <= 0x2FD5 ||\n c >= 0x2FF0 && c <= 0x2FFB ||\n c >= 0x3000 && c <= 0x303E ||\n c >= 0x3041 && c <= 0x3096 ||\n c >= 0x3099 && c <= 0x30FF ||\n c >= 0x3105 && c <= 0x312D ||\n c >= 0x3131 && c <= 0x318E ||\n c >= 0x3190 && c <= 0x31BA ||\n c >= 0x31C0 && c <= 0x31E3 ||\n c >= 0x31F0 && c <= 0x321E ||\n c >= 0x3220 && c <= 0x3247 ||\n c >= 0x3250 && c <= 0x32FE ||\n c >= 0x3300 && c <= 0x4DBF ||\n c >= 0x4E00 && c <= 0xA48C ||\n c >= 0xA490 && c <= 0xA4C6 ||\n c >= 0xA960 && c <= 0xA97C ||\n c >= 0xAC00 && c <= 0xD7A3 ||\n c >= 0xD7B0 && c <= 0xD7C6 ||\n c >= 0xD7CB && c <= 0xD7FB ||\n c >= 0xF900 && c <= 0xFAFF ||\n c >= 0xFE10 && c <= 0xFE19 ||\n c >= 0xFE30 && c <= 0xFE52 ||\n c >= 0xFE54 && c <= 0xFE66 ||\n c >= 0xFE68 && c <= 0xFE6B ||\n c >= 0xFF01 && c <= 0xFF60 ||\n c >= 0xFFE0 && c <= 0xFFE6;\n}\nrequire(\"./edit_session/folding\").Folding.call(EditSession.prototype);\nrequire(\"./edit_session/bracket_match\").BracketMatch.call(EditSession.prototype);\nconfig.defineOptions(EditSession.prototype, \"session\", {\n wrap: {\n set: function (value) {\n if (!value || value == \"off\")\n value = false;\n else if (value == \"free\")\n value = true;\n else if (value == \"printMargin\")\n value = -1;\n else if (typeof value == \"string\")\n value = parseInt(value, 10) || false;\n if (this.$wrap == value)\n return;\n this.$wrap = value;\n if (!value) {\n this.setUseWrapMode(false);\n }\n else {\n var col = typeof value == \"number\" ? value : null;\n this.setWrapLimitRange(col, col);\n this.setUseWrapMode(true);\n }\n },\n get: function () {\n if (this.getUseWrapMode()) {\n if (this.$wrap == -1)\n return \"printMargin\";\n if (!this.getWrapLimitRange().min)\n return \"free\";\n return this.$wrap;\n }\n return \"off\";\n },\n handlesSet: true\n },\n wrapMethod: {\n set: function (val) {\n val = val == \"auto\"\n ? this.$mode.type != \"text\"\n : val != \"text\";\n if (val != this.$wrapAsCode) {\n this.$wrapAsCode = val;\n if (this.$useWrapMode) {\n this.$useWrapMode = false;\n this.setUseWrapMode(true);\n }\n }\n },\n initialValue: \"auto\"\n },\n indentedSoftWrap: {\n set: function () {\n if (this.$useWrapMode) {\n this.$useWrapMode = false;\n this.setUseWrapMode(true);\n }\n },\n initialValue: true\n },\n firstLineNumber: {\n set: function () { this._signal(\"changeBreakpoint\"); },\n initialValue: 1\n },\n useWorker: {\n set: function (useWorker) {\n this.$useWorker = useWorker;\n this.$stopWorker();\n if (useWorker)\n this.$startWorker();\n },\n initialValue: true\n },\n useSoftTabs: { initialValue: true },\n tabSize: {\n set: function (tabSize) {\n tabSize = parseInt(tabSize);\n if (tabSize > 0 && this.$tabSize !== tabSize) {\n this.$modified = true;\n this.$rowLengthCache = [];\n this.$tabSize = tabSize;\n this._signal(\"changeTabSize\");\n }\n },\n initialValue: 4,\n handlesSet: true\n },\n navigateWithinSoftTabs: { initialValue: false },\n foldStyle: {\n set: function (val) { this.setFoldStyle(val); },\n handlesSet: true\n },\n overwrite: {\n set: function (val) { this._signal(\"changeOverwrite\"); },\n initialValue: false\n },\n newLineMode: {\n set: function (val) { this.doc.setNewLineMode(val); },\n get: function () { return this.doc.getNewLineMode(); },\n handlesSet: true\n },\n mode: {\n set: function (val) { this.setMode(val); },\n get: function () { return this.$modeId; },\n handlesSet: true\n }\n});\nexports.EditSession = EditSession;\n\n});\n\nace.define(\"ace/search\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar lang = require(\"./lib/lang\");\nvar oop = require(\"./lib/oop\");\nvar Range = require(\"./range\").Range;\nvar Search = /** @class */ (function () {\n function Search() {\n this.$options = {};\n }\n Search.prototype.set = function (options) {\n oop.mixin(this.$options, options);\n return this;\n };\n Search.prototype.getOptions = function () {\n return lang.copyObject(this.$options);\n };\n Search.prototype.setOptions = function (options) {\n this.$options = options;\n };\n Search.prototype.find = function (session) {\n var options = this.$options;\n var iterator = this.$matchIterator(session, options);\n if (!iterator)\n return false;\n var firstRange = null;\n iterator.forEach(function (sr, sc, er, ec) {\n firstRange = new Range(sr, sc, er, ec);\n if (sc == ec && options.start && options.start.start\n && options.skipCurrent != false && firstRange.isEqual(options.start)) {\n firstRange = null;\n return false;\n }\n return true;\n });\n return firstRange;\n };\n Search.prototype.findAll = function (session) {\n var options = this.$options;\n if (!options.needle)\n return [];\n this.$assembleRegExp(options);\n var range = options.range;\n var lines = range\n ? session.getLines(range.start.row, range.end.row)\n : session.doc.getAllLines();\n var ranges = [];\n var re = options.re;\n if (options.$isMultiLine) {\n var len = re.length;\n var maxRow = lines.length - len;\n var prevRange;\n outer: for (var row = re.offset || 0; row <= maxRow; row++) {\n for (var j = 0; j < len; j++)\n if (lines[row + j].search(re[j]) == -1)\n continue outer;\n var startLine = lines[row];\n var line = lines[row + len - 1];\n var startIndex = startLine.length - startLine.match(re[0])[0].length;\n var endIndex = line.match(re[len - 1])[0].length;\n if (prevRange && prevRange.end.row === row &&\n prevRange.end.column > startIndex) {\n continue;\n }\n ranges.push(prevRange = new Range(row, startIndex, row + len - 1, endIndex));\n if (len > 2)\n row = row + len - 2;\n }\n }\n else {\n for (var i = 0; i < lines.length; i++) {\n var matches = lang.getMatchOffsets(lines[i], re);\n for (var j = 0; j < matches.length; j++) {\n var match = matches[j];\n ranges.push(new Range(i, match.offset, i, match.offset + match.length));\n }\n }\n }\n if (range) {\n var startColumn = range.start.column;\n var endColumn = range.end.column;\n var i = 0, j = ranges.length - 1;\n while (i < j && ranges[i].start.column < startColumn && ranges[i].start.row == 0)\n i++;\n var endRow = range.end.row - range.start.row;\n while (i < j && ranges[j].end.column > endColumn && ranges[j].end.row == endRow)\n j--;\n ranges = ranges.slice(i, j + 1);\n for (i = 0, j = ranges.length; i < j; i++) {\n ranges[i].start.row += range.start.row;\n ranges[i].end.row += range.start.row;\n }\n }\n return ranges;\n };\n Search.prototype.replace = function (input, replacement) {\n var options = this.$options;\n var re = this.$assembleRegExp(options);\n if (options.$isMultiLine)\n return replacement;\n if (!re)\n return;\n var match = re.exec(input);\n if (!match || match[0].length != input.length)\n return null;\n replacement = input.replace(re, replacement);\n if (options.preserveCase) {\n replacement = replacement.split(\"\");\n for (var i = Math.min(input.length, input.length); i--;) {\n var ch = input[i];\n if (ch && ch.toLowerCase() != ch)\n replacement[i] = replacement[i].toUpperCase();\n else\n replacement[i] = replacement[i].toLowerCase();\n }\n replacement = replacement.join(\"\");\n }\n return replacement;\n };\n Search.prototype.$assembleRegExp = function (options, $disableFakeMultiline) {\n if (options.needle instanceof RegExp)\n return options.re = options.needle;\n var needle = options.needle;\n if (!options.needle)\n return options.re = false;\n if (!options.regExp)\n needle = lang.escapeRegExp(needle);\n var modifier = options.caseSensitive ? \"gm\" : \"gmi\";\n try {\n new RegExp(needle, \"u\");\n options.$supportsUnicodeFlag = true;\n modifier += \"u\";\n }\n catch (e) {\n options.$supportsUnicodeFlag = false; //left for backward compatibility with previous versions for cases like /ab\\{2}/gu\n }\n if (options.wholeWord)\n needle = addWordBoundary(needle, options);\n options.$isMultiLine = !$disableFakeMultiline && /[\\n\\r]/.test(needle);\n if (options.$isMultiLine)\n return options.re = this.$assembleMultilineRegExp(needle, modifier);\n try {\n var re = new RegExp(needle, modifier);\n }\n catch (e) {\n re = false;\n }\n return options.re = re;\n };\n Search.prototype.$assembleMultilineRegExp = function (needle, modifier) {\n var parts = needle.replace(/\\r\\n|\\r|\\n/g, \"$\\n^\").split(\"\\n\");\n var re = [];\n for (var i = 0; i < parts.length; i++)\n try {\n re.push(new RegExp(parts[i], modifier));\n }\n catch (e) {\n return false;\n }\n return re;\n };\n Search.prototype.$matchIterator = function (session, options) {\n var re = this.$assembleRegExp(options);\n if (!re)\n return false;\n var backwards = options.backwards == true;\n var skipCurrent = options.skipCurrent != false;\n var supportsUnicodeFlag = re.unicode;\n var range = options.range;\n var start = options.start;\n if (!start)\n start = range ? range[backwards ? \"end\" : \"start\"] : session.selection.getRange();\n if (start.start)\n start = start[skipCurrent != backwards ? \"end\" : \"start\"];\n var firstRow = range ? range.start.row : 0;\n var lastRow = range ? range.end.row : session.getLength() - 1;\n if (backwards) {\n var forEach = function (callback) {\n var row = start.row;\n if (forEachInLine(row, start.column, callback))\n return;\n for (row--; row >= firstRow; row--)\n if (forEachInLine(row, Number.MAX_VALUE, callback))\n return;\n if (options.wrap == false)\n return;\n for (row = lastRow, firstRow = start.row; row >= firstRow; row--)\n if (forEachInLine(row, Number.MAX_VALUE, callback))\n return;\n };\n }\n else {\n var forEach = function (callback) {\n var row = start.row;\n if (forEachInLine(row, start.column, callback))\n return;\n for (row = row + 1; row <= lastRow; row++)\n if (forEachInLine(row, 0, callback))\n return;\n if (options.wrap == false)\n return;\n for (row = firstRow, lastRow = start.row; row <= lastRow; row++)\n if (forEachInLine(row, 0, callback))\n return;\n };\n }\n if (options.$isMultiLine) {\n var len = re.length;\n var forEachInLine = function (row, offset, callback) {\n var startRow = backwards ? row - len + 1 : row;\n if (startRow < 0 || startRow + len > session.getLength())\n return;\n var line = session.getLine(startRow);\n var startIndex = line.search(re[0]);\n if (!backwards && startIndex < offset || startIndex === -1)\n return;\n for (var i = 1; i < len; i++) {\n line = session.getLine(startRow + i);\n if (line.search(re[i]) == -1)\n return;\n }\n var endIndex = line.match(re[len - 1])[0].length;\n if (backwards && endIndex > offset)\n return;\n if (callback(startRow, startIndex, startRow + len - 1, endIndex))\n return true;\n };\n }\n else if (backwards) {\n var forEachInLine = function (row, endIndex, callback) {\n var line = session.getLine(row);\n var matches = [];\n var m, last = 0;\n re.lastIndex = 0;\n while ((m = re.exec(line))) {\n var length = m[0].length;\n last = m.index;\n if (!length) {\n if (last >= line.length)\n break;\n re.lastIndex = last += lang.skipEmptyMatch(line, last, supportsUnicodeFlag);\n }\n if (m.index + length > endIndex)\n break;\n matches.push(m.index, length);\n }\n for (var i = matches.length - 1; i >= 0; i -= 2) {\n var column = matches[i - 1];\n var length = matches[i];\n if (callback(row, column, row, column + length))\n return true;\n }\n };\n }\n else {\n var forEachInLine = function (row, startIndex, callback) {\n var line = session.getLine(row);\n var last;\n var m;\n re.lastIndex = startIndex;\n while ((m = re.exec(line))) {\n var length = m[0].length;\n last = m.index;\n if (callback(row, last, row, last + length))\n return true;\n if (!length) {\n re.lastIndex = last += lang.skipEmptyMatch(line, last, supportsUnicodeFlag);\n if (last >= line.length)\n return false;\n }\n }\n };\n }\n return { forEach: forEach };\n };\n return Search;\n}());\nfunction addWordBoundary(needle, options) {\n var supportsLookbehind = lang.supportsLookbehind();\n function wordBoundary(c, firstChar) {\n if (firstChar === void 0) { firstChar = true; }\n var wordRegExp = supportsLookbehind && options.$supportsUnicodeFlag ? new RegExp(\"[\\\\p{L}\\\\p{N}_]\", \"u\") : new RegExp(\"\\\\w\");\n if (wordRegExp.test(c) || options.regExp) {\n if (supportsLookbehind && options.$supportsUnicodeFlag) {\n if (firstChar)\n return \"(?<=^|[^\\\\p{L}\\\\p{N}_])\";\n return \"(?=[^\\\\p{L}\\\\p{N}_]|$)\";\n }\n return \"\\\\b\";\n }\n return \"\";\n }\n var needleArray = Array.from(needle);\n var firstChar = needleArray[0];\n var lastChar = needleArray[needleArray.length - 1];\n return wordBoundary(firstChar) + needle + wordBoundary(lastChar, false);\n}\nexports.Search = Search;\n\n});\n\nace.define(\"ace/keyboard/hash_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar keyUtil = require(\"../lib/keys\");\nvar useragent = require(\"../lib/useragent\");\nvar KEY_MODS = keyUtil.KEY_MODS;\nvar MultiHashHandler = /** @class */ (function () {\n function MultiHashHandler(config, platform) {\n this.$init(config, platform, false);\n }\n MultiHashHandler.prototype.$init = function (config, platform, $singleCommand) {\n this.platform = platform || (useragent.isMac ? \"mac\" : \"win\");\n this.commands = {};\n this.commandKeyBinding = {};\n this.addCommands(config);\n this.$singleCommand = $singleCommand;\n };\n MultiHashHandler.prototype.addCommand = function (command) {\n if (this.commands[command.name])\n this.removeCommand(command);\n this.commands[command.name] = command;\n if (command.bindKey)\n this._buildKeyHash(command);\n };\n MultiHashHandler.prototype.removeCommand = function (command, keepCommand) {\n var name = command && (typeof command === 'string' ? command : command.name);\n command = this.commands[name];\n if (!keepCommand)\n delete this.commands[name];\n var ckb = this.commandKeyBinding;\n for (var keyId in ckb) {\n var cmdGroup = ckb[keyId];\n if (cmdGroup == command) {\n delete ckb[keyId];\n }\n else if (Array.isArray(cmdGroup)) {\n var i = cmdGroup.indexOf(command);\n if (i != -1) {\n cmdGroup.splice(i, 1);\n if (cmdGroup.length == 1)\n ckb[keyId] = cmdGroup[0];\n }\n }\n }\n };\n MultiHashHandler.prototype.bindKey = function (key, command, position) {\n if (typeof key == \"object\" && key) {\n if (position == undefined)\n position = key.position;\n key = key[this.platform];\n }\n if (!key)\n return;\n if (typeof command == \"function\")\n return this.addCommand({ exec: command, bindKey: key, name: command.name || key });\n key.split(\"|\").forEach(function (keyPart) {\n var chain = \"\";\n if (keyPart.indexOf(\" \") != -1) {\n var parts = keyPart.split(/\\s+/);\n keyPart = parts.pop();\n parts.forEach(function (keyPart) {\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n chain += (chain ? \" \" : \"\") + id;\n this._addCommandToBinding(chain, \"chainKeys\");\n }, this);\n chain += \" \";\n }\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n this._addCommandToBinding(chain + id, command, position);\n }, this);\n };\n MultiHashHandler.prototype._addCommandToBinding = function (keyId, command, position) {\n var ckb = this.commandKeyBinding, i;\n if (!command) {\n delete ckb[keyId];\n }\n else if (!ckb[keyId] || this.$singleCommand) {\n ckb[keyId] = command;\n }\n else {\n if (!Array.isArray(ckb[keyId])) {\n ckb[keyId] = [ckb[keyId]];\n }\n else if ((i = ckb[keyId].indexOf(command)) != -1) {\n ckb[keyId].splice(i, 1);\n }\n if (typeof position != \"number\") {\n position = getPosition(command);\n }\n var commands = ckb[keyId];\n for (i = 0; i < commands.length; i++) {\n var other = commands[i];\n var otherPos = getPosition(other);\n if (otherPos > position)\n break;\n }\n commands.splice(i, 0, command);\n }\n };\n MultiHashHandler.prototype.addCommands = function (commands) {\n commands && Object.keys(commands).forEach(function (name) {\n var command = commands[name];\n if (!command)\n return;\n if (typeof command === \"string\")\n return this.bindKey(command, name);\n if (typeof command === \"function\")\n command = { exec: command };\n if (typeof command !== \"object\")\n return;\n if (!command.name)\n command.name = name;\n this.addCommand(command);\n }, this);\n };\n MultiHashHandler.prototype.removeCommands = function (commands) {\n Object.keys(commands).forEach(function (name) {\n this.removeCommand(commands[name]);\n }, this);\n };\n MultiHashHandler.prototype.bindKeys = function (keyList) {\n Object.keys(keyList).forEach(function (key) {\n this.bindKey(key, keyList[key]);\n }, this);\n };\n MultiHashHandler.prototype._buildKeyHash = function (command) {\n this.bindKey(command.bindKey, command);\n };\n MultiHashHandler.prototype.parseKeys = function (keys) {\n var parts = keys.toLowerCase().split(/[\\-\\+]([\\-\\+])?/).filter(function (x) { return x; });\n var key = parts.pop();\n var keyCode = keyUtil[key];\n if (keyUtil.FUNCTION_KEYS[keyCode])\n key = keyUtil.FUNCTION_KEYS[keyCode].toLowerCase();\n else if (!parts.length)\n return { key: key, hashId: -1 };\n else if (parts.length == 1 && parts[0] == \"shift\")\n return { key: key.toUpperCase(), hashId: -1 };\n var hashId = 0;\n for (var i = parts.length; i--;) {\n var modifier = keyUtil.KEY_MODS[parts[i]];\n if (modifier == null) {\n if (typeof console != \"undefined\")\n console.error(\"invalid modifier \" + parts[i] + \" in \" + keys);\n return false;\n }\n hashId |= modifier;\n }\n return { key: key, hashId: hashId };\n };\n MultiHashHandler.prototype.findKeyCommand = function (hashId, keyString) {\n var key = KEY_MODS[hashId] + keyString;\n return this.commandKeyBinding[key];\n };\n MultiHashHandler.prototype.handleKeyboard = function (data, hashId, keyString, keyCode) {\n if (keyCode < 0)\n return;\n var key = KEY_MODS[hashId] + keyString;\n var command = this.commandKeyBinding[key];\n if (data.$keyChain) {\n data.$keyChain += \" \" + key;\n command = this.commandKeyBinding[data.$keyChain] || command;\n }\n if (command) {\n if (command == \"chainKeys\" || command[command.length - 1] == \"chainKeys\") {\n data.$keyChain = data.$keyChain || key;\n return { command: \"null\" };\n }\n }\n if (data.$keyChain) {\n if ((!hashId || hashId == 4) && keyString.length == 1)\n data.$keyChain = data.$keyChain.slice(0, -key.length - 1); // wait for input\n else if (hashId == -1 || keyCode > 0)\n data.$keyChain = \"\"; // reset keyChain\n }\n return { command: command };\n };\n MultiHashHandler.prototype.getStatusText = function (editor, data) {\n return data.$keyChain || \"\";\n };\n return MultiHashHandler;\n}());\nfunction getPosition(command) {\n return typeof command == \"object\" && command.bindKey\n && command.bindKey.position\n || (command.isDefault ? -100 : 0);\n}\nvar HashHandler = /** @class */ (function (_super) {\n __extends(HashHandler, _super);\n function HashHandler(config, platform) {\n var _this = _super.call(this, config, platform) || this;\n _this.$singleCommand = true;\n return _this;\n }\n return HashHandler;\n}(MultiHashHandler));\nHashHandler.call = function (thisArg, config, platform) {\n MultiHashHandler.prototype.$init.call(thisArg, config, platform, true);\n};\nMultiHashHandler.call = function (thisArg, config, platform) {\n MultiHashHandler.prototype.$init.call(thisArg, config, platform, false);\n};\nexports.HashHandler = HashHandler;\nexports.MultiHashHandler = MultiHashHandler;\n\n});\n\nace.define(\"ace/commands/command_manager\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/keyboard/hash_handler\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar oop = require(\"../lib/oop\");\nvar MultiHashHandler = require(\"../keyboard/hash_handler\").MultiHashHandler;\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar CommandManager = /** @class */ (function (_super) {\n __extends(CommandManager, _super);\n function CommandManager(platform, commands) {\n var _this = _super.call(this, commands, platform) || this;\n _this.byName = _this.commands;\n _this.setDefaultHandler(\"exec\", function (e) {\n if (!e.args) {\n return e.command.exec(e.editor, {}, e.event, true);\n }\n return e.command.exec(e.editor, e.args, e.event, false);\n });\n return _this;\n }\n CommandManager.prototype.exec = function (command, editor, args) {\n if (Array.isArray(command)) {\n for (var i = command.length; i--;) {\n if (this.exec(command[i], editor, args))\n return true;\n }\n return false;\n }\n if (typeof command === \"string\")\n command = this.commands[command];\n if (!command)\n return false;\n if (editor && editor.$readOnly && !command.readOnly)\n return false;\n if (this.$checkCommandState != false && command.isAvailable && !command.isAvailable(editor))\n return false;\n var e = { editor: editor, command: command, args: args };\n e.returnValue = this._emit(\"exec\", e);\n this._signal(\"afterExec\", e);\n return e.returnValue === false ? false : true;\n };\n CommandManager.prototype.toggleRecording = function (editor) {\n if (this.$inReplay)\n return;\n editor && editor._emit(\"changeStatus\");\n if (this.recording) {\n this.macro.pop();\n this.off(\"exec\", this.$addCommandToMacro);\n if (!this.macro.length)\n this.macro = this.oldMacro;\n return this.recording = false;\n }\n if (!this.$addCommandToMacro) {\n this.$addCommandToMacro = function (e) {\n this.macro.push([e.command, e.args]);\n }.bind(this);\n }\n this.oldMacro = this.macro;\n this.macro = [];\n this.on(\"exec\", this.$addCommandToMacro);\n return this.recording = true;\n };\n CommandManager.prototype.replay = function (editor) {\n if (this.$inReplay || !this.macro)\n return;\n if (this.recording)\n return this.toggleRecording(editor);\n try {\n this.$inReplay = true;\n this.macro.forEach(function (x) {\n if (typeof x == \"string\")\n this.exec(x, editor);\n else\n this.exec(x[0], editor, x[1]);\n }, this);\n }\n finally {\n this.$inReplay = false;\n }\n };\n CommandManager.prototype.trimMacro = function (m) {\n return m.map(function (x) {\n if (typeof x[0] != \"string\")\n x[0] = x[0].name;\n if (!x[1])\n x = x[0];\n return x;\n });\n };\n return CommandManager;\n}(MultiHashHandler));\noop.implement(CommandManager.prototype, EventEmitter);\nexports.CommandManager = CommandManager;\n\n});\n\nace.define(\"ace/commands/default_commands\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/config\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar lang = require(\"../lib/lang\");\nvar config = require(\"../config\");\nvar Range = require(\"../range\").Range;\nfunction bindKey(win, mac) {\n return { win: win, mac: mac };\n}\nexports.commands = [{\n name: \"showSettingsMenu\",\n description: \"Show settings menu\",\n bindKey: bindKey(\"Ctrl-,\", \"Command-,\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/settings_menu\", function (module) {\n module.init(editor);\n editor.showSettingsMenu();\n });\n },\n readOnly: true\n }, {\n name: \"goToNextError\",\n description: \"Go to next error\",\n bindKey: bindKey(\"Alt-E\", \"F4\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/error_marker\", function (module) {\n module.showErrorMarker(editor, 1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"goToPreviousError\",\n description: \"Go to previous error\",\n bindKey: bindKey(\"Alt-Shift-E\", \"Shift-F4\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/error_marker\", function (module) {\n module.showErrorMarker(editor, -1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"selectall\",\n description: \"Select all\",\n bindKey: bindKey(\"Ctrl-A\", \"Command-A\"),\n exec: function (editor) { editor.selectAll(); },\n readOnly: true\n }, {\n name: \"centerselection\",\n description: \"Center selection\",\n bindKey: bindKey(null, \"Ctrl-L\"),\n exec: function (editor) { editor.centerSelection(); },\n readOnly: true\n }, {\n name: \"gotoline\",\n description: \"Go to line...\",\n bindKey: bindKey(\"Ctrl-L\", \"Command-L\"),\n exec: function (editor, line) {\n if (typeof line === \"number\" && !isNaN(line))\n editor.gotoLine(line);\n editor.prompt({ $type: \"gotoLine\" });\n },\n readOnly: true\n }, {\n name: \"fold\",\n bindKey: bindKey(\"Alt-L|Ctrl-F1\", \"Command-Alt-L|Command-F1\"),\n exec: function (editor) { editor.session.toggleFold(false); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"unfold\",\n bindKey: bindKey(\"Alt-Shift-L|Ctrl-Shift-F1\", \"Command-Alt-Shift-L|Command-Shift-F1\"),\n exec: function (editor) { editor.session.toggleFold(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"toggleFoldWidget\",\n description: \"Toggle fold widget\",\n bindKey: bindKey(\"F2\", \"F2\"),\n exec: function (editor) { editor.session.toggleFoldWidget(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"toggleParentFoldWidget\",\n description: \"Toggle parent fold widget\",\n bindKey: bindKey(\"Alt-F2\", \"Alt-F2\"),\n exec: function (editor) { editor.session.toggleFoldWidget(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"foldall\",\n description: \"Fold all\",\n bindKey: bindKey(null, \"Ctrl-Command-Option-0\"),\n exec: function (editor) { editor.session.foldAll(); },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"foldAllComments\",\n description: \"Fold all comments\",\n bindKey: bindKey(null, \"Ctrl-Command-Option-0\"),\n exec: function (editor) { editor.session.foldAllComments(); },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"foldOther\",\n description: \"Fold other\",\n bindKey: bindKey(\"Alt-0\", \"Command-Option-0\"),\n exec: function (editor) {\n editor.session.foldAll();\n editor.session.unfold(editor.selection.getAllRanges());\n },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"unfoldall\",\n description: \"Unfold all\",\n bindKey: bindKey(\"Alt-Shift-0\", \"Command-Option-Shift-0\"),\n exec: function (editor) { editor.session.unfold(); },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"findnext\",\n description: \"Find next\",\n bindKey: bindKey(\"Ctrl-K\", \"Command-G\"),\n exec: function (editor) { editor.findNext(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"findprevious\",\n description: \"Find previous\",\n bindKey: bindKey(\"Ctrl-Shift-K\", \"Command-Shift-G\"),\n exec: function (editor) { editor.findPrevious(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"selectOrFindNext\",\n description: \"Select or find next\",\n bindKey: bindKey(\"Alt-K\", \"Ctrl-G\"),\n exec: function (editor) {\n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findNext();\n },\n readOnly: true\n }, {\n name: \"selectOrFindPrevious\",\n description: \"Select or find previous\",\n bindKey: bindKey(\"Alt-Shift-K\", \"Ctrl-Shift-G\"),\n exec: function (editor) {\n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findPrevious();\n },\n readOnly: true\n }, {\n name: \"find\",\n description: \"Find\",\n bindKey: bindKey(\"Ctrl-F\", \"Command-F\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/searchbox\", function (e) { e.Search(editor); });\n },\n readOnly: true\n }, {\n name: \"overwrite\",\n description: \"Overwrite\",\n bindKey: \"Insert\",\n exec: function (editor) { editor.toggleOverwrite(); },\n readOnly: true\n }, {\n name: \"selecttostart\",\n description: \"Select to start\",\n bindKey: bindKey(\"Ctrl-Shift-Home\", \"Command-Shift-Home|Command-Shift-Up\"),\n exec: function (editor) { editor.getSelection().selectFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"gotostart\",\n description: \"Go to start\",\n bindKey: bindKey(\"Ctrl-Home\", \"Command-Home|Command-Up\"),\n exec: function (editor) { editor.navigateFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"selectup\",\n description: \"Select up\",\n bindKey: bindKey(\"Shift-Up\", \"Shift-Up|Ctrl-Shift-P\"),\n exec: function (editor) { editor.getSelection().selectUp(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"golineup\",\n description: \"Go line up\",\n bindKey: bindKey(\"Up\", \"Up|Ctrl-P\"),\n exec: function (editor, args) { editor.navigateUp(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selecttoend\",\n description: \"Select to end\",\n bindKey: bindKey(\"Ctrl-Shift-End\", \"Command-Shift-End|Command-Shift-Down\"),\n exec: function (editor) { editor.getSelection().selectFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"gotoend\",\n description: \"Go to end\",\n bindKey: bindKey(\"Ctrl-End\", \"Command-End|Command-Down\"),\n exec: function (editor) { editor.navigateFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"selectdown\",\n description: \"Select down\",\n bindKey: bindKey(\"Shift-Down\", \"Shift-Down|Ctrl-Shift-N\"),\n exec: function (editor) { editor.getSelection().selectDown(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"golinedown\",\n description: \"Go line down\",\n bindKey: bindKey(\"Down\", \"Down|Ctrl-N\"),\n exec: function (editor, args) { editor.navigateDown(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectwordleft\",\n description: \"Select word left\",\n bindKey: bindKey(\"Ctrl-Shift-Left\", \"Option-Shift-Left\"),\n exec: function (editor) { editor.getSelection().selectWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotowordleft\",\n description: \"Go to word left\",\n bindKey: bindKey(\"Ctrl-Left\", \"Option-Left\"),\n exec: function (editor) { editor.navigateWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selecttolinestart\",\n description: \"Select to line start\",\n bindKey: bindKey(\"Alt-Shift-Left\", \"Command-Shift-Left|Ctrl-Shift-A\"),\n exec: function (editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotolinestart\",\n description: \"Go to line start\",\n bindKey: bindKey(\"Alt-Left|Home\", \"Command-Left|Home|Ctrl-A\"),\n exec: function (editor) { editor.navigateLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectleft\",\n description: \"Select left\",\n bindKey: bindKey(\"Shift-Left\", \"Shift-Left|Ctrl-Shift-B\"),\n exec: function (editor) { editor.getSelection().selectLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotoleft\",\n description: \"Go to left\",\n bindKey: bindKey(\"Left\", \"Left|Ctrl-B\"),\n exec: function (editor, args) { editor.navigateLeft(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectwordright\",\n description: \"Select word right\",\n bindKey: bindKey(\"Ctrl-Shift-Right\", \"Option-Shift-Right\"),\n exec: function (editor) { editor.getSelection().selectWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotowordright\",\n description: \"Go to word right\",\n bindKey: bindKey(\"Ctrl-Right\", \"Option-Right\"),\n exec: function (editor) { editor.navigateWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selecttolineend\",\n description: \"Select to line end\",\n bindKey: bindKey(\"Alt-Shift-Right\", \"Command-Shift-Right|Shift-End|Ctrl-Shift-E\"),\n exec: function (editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotolineend\",\n description: \"Go to line end\",\n bindKey: bindKey(\"Alt-Right|End\", \"Command-Right|End|Ctrl-E\"),\n exec: function (editor) { editor.navigateLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectright\",\n description: \"Select right\",\n bindKey: bindKey(\"Shift-Right\", \"Shift-Right\"),\n exec: function (editor) { editor.getSelection().selectRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotoright\",\n description: \"Go to right\",\n bindKey: bindKey(\"Right\", \"Right|Ctrl-F\"),\n exec: function (editor, args) { editor.navigateRight(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectpagedown\",\n description: \"Select page down\",\n bindKey: \"Shift-PageDown\",\n exec: function (editor) { editor.selectPageDown(); },\n readOnly: true\n }, {\n name: \"pagedown\",\n description: \"Page down\",\n bindKey: bindKey(null, \"Option-PageDown\"),\n exec: function (editor) { editor.scrollPageDown(); },\n readOnly: true\n }, {\n name: \"gotopagedown\",\n description: \"Go to page down\",\n bindKey: bindKey(\"PageDown\", \"PageDown|Ctrl-V\"),\n exec: function (editor) { editor.gotoPageDown(); },\n readOnly: true\n }, {\n name: \"selectpageup\",\n description: \"Select page up\",\n bindKey: \"Shift-PageUp\",\n exec: function (editor) { editor.selectPageUp(); },\n readOnly: true\n }, {\n name: \"pageup\",\n description: \"Page up\",\n bindKey: bindKey(null, \"Option-PageUp\"),\n exec: function (editor) { editor.scrollPageUp(); },\n readOnly: true\n }, {\n name: \"gotopageup\",\n description: \"Go to page up\",\n bindKey: \"PageUp\",\n exec: function (editor) { editor.gotoPageUp(); },\n readOnly: true\n }, {\n name: \"scrollup\",\n description: \"Scroll up\",\n bindKey: bindKey(\"Ctrl-Up\", null),\n exec: function (e) { e.renderer.scrollBy(0, -2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n }, {\n name: \"scrolldown\",\n description: \"Scroll down\",\n bindKey: bindKey(\"Ctrl-Down\", null),\n exec: function (e) { e.renderer.scrollBy(0, 2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n }, {\n name: \"selectlinestart\",\n description: \"Select line start\",\n bindKey: \"Shift-Home\",\n exec: function (editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectlineend\",\n description: \"Select line end\",\n bindKey: \"Shift-End\",\n exec: function (editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"togglerecording\",\n description: \"Toggle recording\",\n bindKey: bindKey(\"Ctrl-Alt-E\", \"Command-Option-E\"),\n exec: function (editor) { editor.commands.toggleRecording(editor); },\n readOnly: true\n }, {\n name: \"replaymacro\",\n description: \"Replay macro\",\n bindKey: bindKey(\"Ctrl-Shift-E\", \"Command-Shift-E\"),\n exec: function (editor) { editor.commands.replay(editor); },\n readOnly: true\n }, {\n name: \"jumptomatching\",\n description: \"Jump to matching\",\n bindKey: bindKey(\"Ctrl-\\\\|Ctrl-P\", \"Command-\\\\\"),\n exec: function (editor) { editor.jumpToMatching(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"selecttomatching\",\n description: \"Select to matching\",\n bindKey: bindKey(\"Ctrl-Shift-\\\\|Ctrl-Shift-P\", \"Command-Shift-\\\\\"),\n exec: function (editor) { editor.jumpToMatching(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"expandToMatching\",\n description: \"Expand to matching\",\n bindKey: bindKey(\"Ctrl-Shift-M\", \"Ctrl-Shift-M\"),\n exec: function (editor) { editor.jumpToMatching(true, true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"passKeysToBrowser\",\n description: \"Pass keys to browser\",\n bindKey: bindKey(null, null),\n exec: function () { },\n passEvent: true,\n readOnly: true\n }, {\n name: \"copy\",\n description: \"Copy\",\n exec: function (editor) {\n },\n readOnly: true\n },\n {\n name: \"cut\",\n description: \"Cut\",\n exec: function (editor) {\n var cutLine = editor.$copyWithEmptySelection && editor.selection.isEmpty();\n var range = cutLine ? editor.selection.getLineRange() : editor.selection.getRange();\n editor._emit(\"cut\", range);\n if (!range.isEmpty())\n editor.session.remove(range);\n editor.clearSelection();\n },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"paste\",\n description: \"Paste\",\n exec: function (editor, args) {\n editor.$handlePaste(args);\n },\n scrollIntoView: \"cursor\"\n }, {\n name: \"removeline\",\n description: \"Remove line\",\n bindKey: bindKey(\"Ctrl-D\", \"Command-D\"),\n exec: function (editor) { editor.removeLines(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEachLine\"\n }, {\n name: \"duplicateSelection\",\n description: \"Duplicate selection\",\n bindKey: bindKey(\"Ctrl-Shift-D\", \"Command-Shift-D\"),\n exec: function (editor) { editor.duplicateSelection(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"sortlines\",\n description: \"Sort lines\",\n bindKey: bindKey(\"Ctrl-Alt-S\", \"Command-Alt-S\"),\n exec: function (editor) { editor.sortLines(); },\n scrollIntoView: \"selection\",\n multiSelectAction: \"forEachLine\"\n }, {\n name: \"togglecomment\",\n description: \"Toggle comment\",\n bindKey: bindKey(\"Ctrl-/\", \"Command-/\"),\n exec: function (editor) { editor.toggleCommentLines(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"toggleBlockComment\",\n description: \"Toggle block comment\",\n bindKey: bindKey(\"Ctrl-Shift-/\", \"Command-Shift-/\"),\n exec: function (editor) { editor.toggleBlockComment(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"modifyNumberUp\",\n description: \"Modify number up\",\n bindKey: bindKey(\"Ctrl-Shift-Up\", \"Alt-Shift-Up\"),\n exec: function (editor) { editor.modifyNumber(1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"modifyNumberDown\",\n description: \"Modify number down\",\n bindKey: bindKey(\"Ctrl-Shift-Down\", \"Alt-Shift-Down\"),\n exec: function (editor) { editor.modifyNumber(-1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"replace\",\n description: \"Replace\",\n bindKey: bindKey(\"Ctrl-H\", \"Command-Option-F\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/searchbox\", function (e) { e.Search(editor, true); });\n }\n }, {\n name: \"undo\",\n description: \"Undo\",\n bindKey: bindKey(\"Ctrl-Z\", \"Command-Z\"),\n exec: function (editor) { editor.undo(); }\n }, {\n name: \"redo\",\n description: \"Redo\",\n bindKey: bindKey(\"Ctrl-Shift-Z|Ctrl-Y\", \"Command-Shift-Z|Command-Y\"),\n exec: function (editor) { editor.redo(); }\n }, {\n name: \"copylinesup\",\n description: \"Copy lines up\",\n bindKey: bindKey(\"Alt-Shift-Up\", \"Command-Option-Up\"),\n exec: function (editor) { editor.copyLinesUp(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"movelinesup\",\n description: \"Move lines up\",\n bindKey: bindKey(\"Alt-Up\", \"Option-Up\"),\n exec: function (editor) { editor.moveLinesUp(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"copylinesdown\",\n description: \"Copy lines down\",\n bindKey: bindKey(\"Alt-Shift-Down\", \"Command-Option-Down\"),\n exec: function (editor) { editor.copyLinesDown(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"movelinesdown\",\n description: \"Move lines down\",\n bindKey: bindKey(\"Alt-Down\", \"Option-Down\"),\n exec: function (editor) { editor.moveLinesDown(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"del\",\n description: \"Delete\",\n bindKey: bindKey(\"Delete\", \"Delete|Ctrl-D|Shift-Delete\"),\n exec: function (editor) { editor.remove(\"right\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"backspace\",\n description: \"Backspace\",\n bindKey: bindKey(\"Shift-Backspace|Backspace\", \"Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H\"),\n exec: function (editor) { editor.remove(\"left\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"cut_or_delete\",\n description: \"Cut or delete\",\n bindKey: bindKey(\"Shift-Delete\", null),\n exec: function (editor) {\n if (editor.selection.isEmpty()) {\n editor.remove(\"left\");\n }\n else {\n return false;\n }\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolinestart\",\n description: \"Remove to line start\",\n bindKey: bindKey(\"Alt-Backspace\", \"Command-Backspace\"),\n exec: function (editor) { editor.removeToLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolineend\",\n description: \"Remove to line end\",\n bindKey: bindKey(\"Alt-Delete\", \"Ctrl-K|Command-Delete\"),\n exec: function (editor) { editor.removeToLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolinestarthard\",\n description: \"Remove to line start hard\",\n bindKey: bindKey(\"Ctrl-Shift-Backspace\", null),\n exec: function (editor) {\n var range = editor.selection.getRange();\n range.start.column = 0;\n editor.session.remove(range);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolineendhard\",\n description: \"Remove to line end hard\",\n bindKey: bindKey(\"Ctrl-Shift-Delete\", null),\n exec: function (editor) {\n var range = editor.selection.getRange();\n range.end.column = Number.MAX_VALUE;\n editor.session.remove(range);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removewordleft\",\n description: \"Remove word left\",\n bindKey: bindKey(\"Ctrl-Backspace\", \"Alt-Backspace|Ctrl-Alt-Backspace\"),\n exec: function (editor) { editor.removeWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removewordright\",\n description: \"Remove word right\",\n bindKey: bindKey(\"Ctrl-Delete\", \"Alt-Delete\"),\n exec: function (editor) { editor.removeWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"outdent\",\n description: \"Outdent\",\n bindKey: bindKey(\"Shift-Tab\", \"Shift-Tab\"),\n exec: function (editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"indent\",\n description: \"Indent\",\n bindKey: bindKey(\"Tab\", \"Tab\"),\n exec: function (editor) { editor.indent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"blockoutdent\",\n description: \"Block outdent\",\n bindKey: bindKey(\"Ctrl-[\", \"Ctrl-[\"),\n exec: function (editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"blockindent\",\n description: \"Block indent\",\n bindKey: bindKey(\"Ctrl-]\", \"Ctrl-]\"),\n exec: function (editor) { editor.blockIndent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"insertstring\",\n description: \"Insert string\",\n exec: function (editor, str) { editor.insert(str); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"inserttext\",\n description: \"Insert text\",\n exec: function (editor, args) {\n editor.insert(lang.stringRepeat(args.text || \"\", args.times || 1));\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"splitline\",\n description: \"Split line\",\n bindKey: bindKey(null, \"Ctrl-O\"),\n exec: function (editor) { editor.splitLine(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"transposeletters\",\n description: \"Transpose letters\",\n bindKey: bindKey(\"Alt-Shift-X\", \"Ctrl-T\"),\n exec: function (editor) { editor.transposeLetters(); },\n multiSelectAction: function (editor) { editor.transposeSelections(1); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"touppercase\",\n description: \"To uppercase\",\n bindKey: bindKey(\"Ctrl-U\", \"Ctrl-U\"),\n exec: function (editor) { editor.toUpperCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"tolowercase\",\n description: \"To lowercase\",\n bindKey: bindKey(\"Ctrl-Shift-U\", \"Ctrl-Shift-U\"),\n exec: function (editor) { editor.toLowerCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"autoindent\",\n description: \"Auto Indent\",\n bindKey: bindKey(null, null),\n exec: function (editor) { editor.autoIndent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"animate\"\n }, {\n name: \"expandtoline\",\n description: \"Expand to line\",\n bindKey: bindKey(\"Ctrl-Shift-L\", \"Command-Shift-L\"),\n exec: function (editor) {\n var range = editor.selection.getRange();\n range.start.column = range.end.column = 0;\n range.end.row++;\n editor.selection.setRange(range, false);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"openlink\",\n bindKey: bindKey(\"Ctrl+F3\", \"F3\"),\n exec: function (editor) { editor.openLink(); }\n }, {\n name: \"joinlines\",\n description: \"Join lines\",\n bindKey: bindKey(null, null),\n exec: function (editor) {\n var isBackwards = editor.selection.isBackwards();\n var selectionStart = isBackwards ? editor.selection.getSelectionLead() : editor.selection.getSelectionAnchor();\n var selectionEnd = isBackwards ? editor.selection.getSelectionAnchor() : editor.selection.getSelectionLead();\n var firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length;\n var selectedText = editor.session.doc.getTextRange(editor.selection.getRange());\n var selectedCount = selectedText.replace(/\\n\\s*/, \" \").length;\n var insertLine = editor.session.doc.getLine(selectionStart.row);\n for (var i = selectionStart.row + 1; i <= selectionEnd.row + 1; i++) {\n var curLine = lang.stringTrimLeft(lang.stringTrimRight(editor.session.doc.getLine(i)));\n if (curLine.length !== 0) {\n curLine = \" \" + curLine;\n }\n insertLine += curLine;\n }\n if (selectionEnd.row + 1 < (editor.session.doc.getLength() - 1)) {\n insertLine += editor.session.doc.getNewLineCharacter();\n }\n editor.clearSelection();\n editor.session.doc.replace(new Range(selectionStart.row, 0, selectionEnd.row + 2, 0), insertLine);\n if (selectedCount > 0) {\n editor.selection.moveCursorTo(selectionStart.row, selectionStart.column);\n editor.selection.selectTo(selectionStart.row, selectionStart.column + selectedCount);\n }\n else {\n firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length > firstLineEndCol ? (firstLineEndCol + 1) : firstLineEndCol;\n editor.selection.moveCursorTo(selectionStart.row, firstLineEndCol);\n }\n },\n multiSelectAction: \"forEach\",\n readOnly: true\n }, {\n name: \"invertSelection\",\n description: \"Invert selection\",\n bindKey: bindKey(null, null),\n exec: function (editor) {\n var endRow = editor.session.doc.getLength() - 1;\n var endCol = editor.session.doc.getLine(endRow).length;\n var ranges = editor.selection.rangeList.ranges;\n var newRanges = [];\n if (ranges.length < 1) {\n ranges = [editor.selection.getRange()];\n }\n for (var i = 0; i < ranges.length; i++) {\n if (i == (ranges.length - 1)) {\n if (!(ranges[i].end.row === endRow && ranges[i].end.column === endCol)) {\n newRanges.push(new Range(ranges[i].end.row, ranges[i].end.column, endRow, endCol));\n }\n }\n if (i === 0) {\n if (!(ranges[i].start.row === 0 && ranges[i].start.column === 0)) {\n newRanges.push(new Range(0, 0, ranges[i].start.row, ranges[i].start.column));\n }\n }\n else {\n newRanges.push(new Range(ranges[i - 1].end.row, ranges[i - 1].end.column, ranges[i].start.row, ranges[i].start.column));\n }\n }\n editor.exitMultiSelectMode();\n editor.clearSelection();\n for (var i = 0; i < newRanges.length; i++) {\n editor.selection.addRange(newRanges[i], false);\n }\n },\n readOnly: true,\n scrollIntoView: \"none\"\n }, {\n name: \"addLineAfter\",\n description: \"Add new line after the current line\",\n exec: function (editor) {\n editor.selection.clearSelection();\n editor.navigateLineEnd();\n editor.insert(\"\\n\");\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"addLineBefore\",\n description: \"Add new line before the current line\",\n exec: function (editor) {\n editor.selection.clearSelection();\n var cursor = editor.getCursorPosition();\n editor.selection.moveTo(cursor.row - 1, Number.MAX_VALUE);\n editor.insert(\"\\n\");\n if (cursor.row === 0)\n editor.navigateUp();\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"openCommandPallete\",\n exec: function (editor) {\n console.warn(\"This is an obsolete command. Please use `openCommandPalette` instead.\");\n editor.prompt({ $type: \"commands\" });\n },\n readOnly: true\n }, {\n name: \"openCommandPalette\",\n description: \"Open command palette\",\n bindKey: bindKey(\"F1\", \"F1\"),\n exec: function (editor) {\n editor.prompt({ $type: \"commands\" });\n },\n readOnly: true\n }, {\n name: \"modeSelect\",\n description: \"Change language mode...\",\n bindKey: bindKey(null, null),\n exec: function (editor) {\n editor.prompt({ $type: \"modes\" });\n },\n readOnly: true\n }];\nfor (var i = 1; i < 9; i++) {\n exports.commands.push({\n name: \"foldToLevel\" + i,\n description: \"Fold To Level \" + i,\n level: i,\n exec: function (editor) { editor.session.foldToLevel(this.level); },\n scrollIntoView: \"center\",\n readOnly: true\n });\n}\n\n});\n\nace.define(\"ace/line_widgets\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"./lib/dom\");\nvar LineWidgets = /** @class */ (function () {\n function LineWidgets(session) {\n this.session = session;\n this.session.widgetManager = this;\n this.session.getRowLength = this.getRowLength;\n this.session.$getWidgetScreenLength = this.$getWidgetScreenLength;\n this.updateOnChange = this.updateOnChange.bind(this);\n this.renderWidgets = this.renderWidgets.bind(this);\n this.measureWidgets = this.measureWidgets.bind(this);\n this.session._changedWidgets = [];\n this.$onChangeEditor = this.$onChangeEditor.bind(this);\n this.session.on(\"change\", this.updateOnChange);\n this.session.on(\"changeFold\", this.updateOnFold);\n this.session.on(\"changeEditor\", this.$onChangeEditor);\n }\n LineWidgets.prototype.getRowLength = function (row) {\n var h;\n if (this.lineWidgets)\n h = this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n else\n h = 0;\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1 + h;\n }\n else {\n return this.$wrapData[row].length + 1 + h;\n }\n };\n LineWidgets.prototype.$getWidgetScreenLength = function () {\n var screenRows = 0;\n this.lineWidgets.forEach(function (w) {\n if (w && w.rowCount && !w.hidden)\n screenRows += w.rowCount;\n });\n return screenRows;\n };\n LineWidgets.prototype.$onChangeEditor = function (e) {\n this.attach(e.editor);\n };\n LineWidgets.prototype.attach = function (editor) {\n if (editor && editor.widgetManager && editor.widgetManager != this)\n editor.widgetManager.detach();\n if (this.editor == editor)\n return;\n this.detach();\n this.editor = editor;\n if (editor) {\n editor.widgetManager = this;\n editor.renderer.on(\"beforeRender\", this.measureWidgets);\n editor.renderer.on(\"afterRender\", this.renderWidgets);\n }\n };\n LineWidgets.prototype.detach = function (e) {\n var editor = this.editor;\n if (!editor)\n return;\n this.editor = null;\n editor.widgetManager = null;\n editor.renderer.off(\"beforeRender\", this.measureWidgets);\n editor.renderer.off(\"afterRender\", this.renderWidgets);\n var lineWidgets = this.session.lineWidgets;\n lineWidgets && lineWidgets.forEach(function (w) {\n if (w && w.el && w.el.parentNode) {\n w._inDocument = false;\n w.el.parentNode.removeChild(w.el);\n }\n });\n };\n LineWidgets.prototype.updateOnFold = function (e, session) {\n var lineWidgets = session.lineWidgets;\n if (!lineWidgets || !e.action)\n return;\n var fold = e.data;\n var start = fold.start.row;\n var end = fold.end.row;\n var hide = e.action == \"add\";\n for (var i = start + 1; i < end; i++) {\n if (lineWidgets[i])\n lineWidgets[i].hidden = hide;\n }\n if (lineWidgets[end]) {\n if (hide) {\n if (!lineWidgets[start])\n lineWidgets[start] = lineWidgets[end];\n else\n lineWidgets[end].hidden = hide;\n }\n else {\n if (lineWidgets[start] == lineWidgets[end])\n lineWidgets[start] = undefined;\n lineWidgets[end].hidden = hide;\n }\n }\n };\n LineWidgets.prototype.updateOnChange = function (delta) {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n if (len === 0) {\n }\n else if (delta.action == \"remove\") {\n var removed = lineWidgets.splice(startRow + 1, len);\n if (!lineWidgets[startRow] && removed[removed.length - 1]) {\n lineWidgets[startRow] = removed.pop();\n }\n removed.forEach(function (w) {\n w && this.removeLineWidget(w);\n }, this);\n this.$updateRows();\n }\n else {\n var args = new Array(len);\n if (lineWidgets[startRow] && lineWidgets[startRow].column != null) {\n if (delta.start.column > lineWidgets[startRow].column)\n startRow++;\n }\n args.unshift(startRow, 0);\n lineWidgets.splice.apply(lineWidgets, args);\n this.$updateRows();\n }\n };\n LineWidgets.prototype.$updateRows = function () {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var noWidgets = true;\n lineWidgets.forEach(function (w, i) {\n if (w) {\n noWidgets = false;\n w.row = i;\n while (w.$oldWidget) {\n w.$oldWidget.row = i;\n w = w.$oldWidget;\n }\n }\n });\n if (noWidgets)\n this.session.lineWidgets = null;\n };\n LineWidgets.prototype.$registerLineWidget = function (w) {\n if (!this.session.lineWidgets)\n this.session.lineWidgets = new Array(this.session.getLength());\n var old = this.session.lineWidgets[w.row];\n if (old) {\n w.$oldWidget = old;\n if (old.el && old.el.parentNode) {\n old.el.parentNode.removeChild(old.el);\n old._inDocument = false;\n }\n }\n this.session.lineWidgets[w.row] = w;\n return w;\n };\n LineWidgets.prototype.addLineWidget = function (w) {\n this.$registerLineWidget(w);\n w.session = this.session;\n if (!this.editor)\n return w;\n var renderer = this.editor.renderer;\n if (w.html && !w.el) {\n w.el = dom.createElement(\"div\");\n w.el.innerHTML = w.html;\n }\n if (w.text && !w.el) {\n w.el = dom.createElement(\"div\");\n w.el.textContent = w.text;\n }\n if (w.el) {\n dom.addCssClass(w.el, \"ace_lineWidgetContainer\");\n if (w.className) {\n dom.addCssClass(w.el, w.className);\n }\n w.el.style.position = \"absolute\";\n w.el.style.zIndex = 5;\n renderer.container.appendChild(w.el);\n w._inDocument = true;\n if (!w.coverGutter) {\n w.el.style.zIndex = 3;\n }\n if (w.pixelHeight == null) {\n w.pixelHeight = w.el.offsetHeight;\n }\n }\n if (w.rowCount == null) {\n w.rowCount = w.pixelHeight / renderer.layerConfig.lineHeight;\n }\n var fold = this.session.getFoldAt(w.row, 0);\n w.$fold = fold;\n if (fold) {\n var lineWidgets = this.session.lineWidgets;\n if (w.row == fold.end.row && !lineWidgets[fold.start.row])\n lineWidgets[fold.start.row] = w;\n else\n w.hidden = true;\n }\n this.session._emit(\"changeFold\", { data: { start: { row: w.row } } });\n this.$updateRows();\n this.renderWidgets(null, renderer);\n this.onWidgetChanged(w);\n return w;\n };\n LineWidgets.prototype.removeLineWidget = function (w) {\n w._inDocument = false;\n w.session = null;\n if (w.el && w.el.parentNode)\n w.el.parentNode.removeChild(w.el);\n if (w.editor && w.editor.destroy)\n try {\n w.editor.destroy();\n }\n catch (e) { }\n if (this.session.lineWidgets) {\n var w1 = this.session.lineWidgets[w.row];\n if (w1 == w) {\n this.session.lineWidgets[w.row] = w.$oldWidget;\n if (w.$oldWidget)\n this.onWidgetChanged(w.$oldWidget);\n }\n else {\n while (w1) {\n if (w1.$oldWidget == w) {\n w1.$oldWidget = w.$oldWidget;\n break;\n }\n w1 = w1.$oldWidget;\n }\n }\n }\n this.session._emit(\"changeFold\", { data: { start: { row: w.row } } });\n this.$updateRows();\n };\n LineWidgets.prototype.getWidgetsAtRow = function (row) {\n var lineWidgets = this.session.lineWidgets;\n var w = lineWidgets && lineWidgets[row];\n var list = [];\n while (w) {\n list.push(w);\n w = w.$oldWidget;\n }\n return list;\n };\n LineWidgets.prototype.onWidgetChanged = function (w) {\n this.session._changedWidgets.push(w);\n this.editor && this.editor.renderer.updateFull();\n };\n LineWidgets.prototype.measureWidgets = function (e, renderer) {\n var changedWidgets = this.session._changedWidgets;\n var config = renderer.layerConfig;\n if (!changedWidgets || !changedWidgets.length)\n return;\n var min = Infinity;\n for (var i = 0; i < changedWidgets.length; i++) {\n var w = changedWidgets[i];\n if (!w || !w.el)\n continue;\n if (w.session != this.session)\n continue;\n if (!w._inDocument) {\n if (this.session.lineWidgets[w.row] != w)\n continue;\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n w.h = w.el.offsetHeight;\n if (!w.fixedWidth) {\n w.w = w.el.offsetWidth;\n w.screenWidth = Math.ceil(w.w / config.characterWidth);\n }\n var rowCount = w.h / config.lineHeight;\n if (w.coverLine) {\n rowCount -= this.session.getRowLineCount(w.row);\n if (rowCount < 0)\n rowCount = 0;\n }\n if (w.rowCount != rowCount) {\n w.rowCount = rowCount;\n if (w.row < min)\n min = w.row;\n }\n }\n if (min != Infinity) {\n this.session._emit(\"changeFold\", { data: { start: { row: min } } });\n this.session.lineWidgetWidth = null;\n }\n this.session._changedWidgets = [];\n };\n LineWidgets.prototype.renderWidgets = function (e, renderer) {\n var config = renderer.layerConfig;\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var first = Math.min(this.firstRow, config.firstRow);\n var last = Math.max(this.lastRow, config.lastRow, lineWidgets.length);\n while (first > 0 && !lineWidgets[first])\n first--;\n this.firstRow = config.firstRow;\n this.lastRow = config.lastRow;\n renderer.$cursorLayer.config = config;\n for (var i = first; i <= last; i++) {\n var w = lineWidgets[i];\n if (!w || !w.el)\n continue;\n if (w.hidden) {\n w.el.style.top = -100 - (w.pixelHeight || 0) + \"px\";\n continue;\n }\n if (!w._inDocument) {\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n var top = renderer.$cursorLayer.getPixelPosition({ row: i, column: 0 }, true).top;\n if (!w.coverLine)\n top += config.lineHeight * this.session.getRowLineCount(w.row);\n w.el.style.top = top - config.offset + \"px\";\n var left = w.coverGutter ? 0 : renderer.gutterWidth;\n if (!w.fixedWidth)\n left -= renderer.scrollLeft;\n w.el.style.left = left + \"px\";\n if (w.fullWidth && w.screenWidth) {\n w.el.style.minWidth = config.width + 2 * config.padding + \"px\";\n }\n if (w.fixedWidth) {\n w.el.style.right = renderer.scrollBar.getWidth() + \"px\";\n }\n else {\n w.el.style.right = \"\";\n }\n }\n };\n return LineWidgets;\n}());\nexports.LineWidgets = LineWidgets;\n\n});\n\nace.define(\"ace/keyboard/gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/mouse/default_gutter_handler\"], function(require, exports, module){\"use strict\";\nvar keys = require('../lib/keys');\nvar GutterTooltip = require(\"../mouse/default_gutter_handler\").GutterTooltip;\nvar GutterKeyboardHandler = /** @class */ (function () {\n function GutterKeyboardHandler(editor) {\n this.editor = editor;\n this.gutterLayer = editor.renderer.$gutterLayer;\n this.element = editor.renderer.$gutter;\n this.lines = editor.renderer.$gutterLayer.$lines;\n this.activeRowIndex = null;\n this.activeLane = null;\n this.annotationTooltip = new GutterTooltip(this.editor);\n }\n GutterKeyboardHandler.prototype.addListener = function () {\n this.element.addEventListener(\"keydown\", this.$onGutterKeyDown.bind(this));\n this.element.addEventListener(\"focusout\", this.$blurGutter.bind(this));\n this.editor.on(\"mousewheel\", this.$blurGutter.bind(this));\n };\n GutterKeyboardHandler.prototype.removeListener = function () {\n this.element.removeEventListener(\"keydown\", this.$onGutterKeyDown.bind(this));\n this.element.removeEventListener(\"focusout\", this.$blurGutter.bind(this));\n this.editor.off(\"mousewheel\", this.$blurGutter.bind(this));\n };\n GutterKeyboardHandler.prototype.$onGutterKeyDown = function (e) {\n if (this.annotationTooltip.isOpen) {\n e.preventDefault();\n if (e.keyCode === keys[\"escape\"])\n this.annotationTooltip.hideTooltip();\n return;\n }\n if (e.target === this.element) {\n if (e.keyCode != keys[\"enter\"]) {\n return;\n }\n e.preventDefault();\n var row = this.editor.getCursorPosition().row;\n if (!this.editor.isRowVisible(row))\n this.editor.scrollToLine(row, true, true);\n setTimeout(function () {\n var index = this.$rowToRowIndex(this.gutterLayer.$cursorCell.row);\n var nearestFoldIndex = this.$findNearestFoldWidget(index);\n var nearestAnnotationIndex = this.$findNearestAnnotation(index);\n if (nearestFoldIndex === null && nearestAnnotationIndex === null)\n return;\n if (nearestFoldIndex === null && nearestAnnotationIndex !== null) {\n this.activeRowIndex = nearestAnnotationIndex;\n this.activeLane = \"annotation\";\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n if (nearestFoldIndex !== null && nearestAnnotationIndex === null) {\n this.activeRowIndex = nearestFoldIndex;\n this.activeLane = \"fold\";\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n if (Math.abs(nearestAnnotationIndex - index) < Math.abs(nearestFoldIndex - index)) {\n this.activeRowIndex = nearestAnnotationIndex;\n this.activeLane = \"annotation\";\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n else {\n this.activeRowIndex = nearestFoldIndex;\n this.activeLane = \"fold\";\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n }.bind(this), 10);\n return;\n }\n this.$handleGutterKeyboardInteraction(e);\n setTimeout(function () {\n this.editor._signal(\"gutterkeydown\", new GutterKeyboardEvent(e, this));\n }.bind(this), 10);\n };\n GutterKeyboardHandler.prototype.$handleGutterKeyboardInteraction = function (e) {\n if (e.keyCode === keys[\"tab\"]) {\n e.preventDefault();\n return;\n }\n if (e.keyCode === keys[\"escape\"]) {\n e.preventDefault();\n this.$blurGutter();\n this.element.focus();\n this.lane = null;\n return;\n }\n if (e.keyCode === keys[\"up\"]) {\n e.preventDefault();\n switch (this.activeLane) {\n case \"fold\":\n this.$moveFoldWidgetUp();\n break;\n case \"annotation\":\n this.$moveAnnotationUp();\n break;\n }\n return;\n }\n if (e.keyCode === keys[\"down\"]) {\n e.preventDefault();\n switch (this.activeLane) {\n case \"fold\":\n this.$moveFoldWidgetDown();\n break;\n case \"annotation\":\n this.$moveAnnotationDown();\n break;\n }\n return;\n }\n if (e.keyCode === keys[\"left\"]) {\n e.preventDefault();\n this.$switchLane(\"annotation\");\n return;\n }\n if (e.keyCode === keys[\"right\"]) {\n e.preventDefault();\n this.$switchLane(\"fold\");\n return;\n }\n if (e.keyCode === keys[\"enter\"] || e.keyCode === keys[\"space\"]) {\n e.preventDefault();\n switch (this.activeLane) {\n case \"fold\":\n if (this.gutterLayer.session.foldWidgets[this.$rowIndexToRow(this.activeRowIndex)] === 'start') {\n var rowFoldingWidget = this.$rowIndexToRow(this.activeRowIndex);\n this.editor.session.onFoldWidgetClick(this.$rowIndexToRow(this.activeRowIndex), e);\n setTimeout(function () {\n if (this.$rowIndexToRow(this.activeRowIndex) !== rowFoldingWidget) {\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = this.$rowToRowIndex(rowFoldingWidget);\n this.$focusFoldWidget(this.activeRowIndex);\n }\n }.bind(this), 10);\n break;\n }\n else if (this.gutterLayer.session.foldWidgets[this.$rowIndexToRow(this.activeRowIndex)] === 'end') {\n break;\n }\n return;\n case \"annotation\":\n var gutterElement = this.lines.cells[this.activeRowIndex].element.childNodes[2];\n var rect = gutterElement.getBoundingClientRect();\n var style = this.annotationTooltip.getElement().style;\n style.left = rect.right + \"px\";\n style.top = rect.bottom + \"px\";\n this.annotationTooltip.showTooltip(this.$rowIndexToRow(this.activeRowIndex));\n break;\n }\n return;\n }\n };\n GutterKeyboardHandler.prototype.$blurGutter = function () {\n if (this.activeRowIndex !== null) {\n switch (this.activeLane) {\n case \"fold\":\n this.$blurFoldWidget(this.activeRowIndex);\n break;\n case \"annotation\":\n this.$blurAnnotation(this.activeRowIndex);\n break;\n }\n }\n if (this.annotationTooltip.isOpen)\n this.annotationTooltip.hideTooltip();\n return;\n };\n GutterKeyboardHandler.prototype.$isFoldWidgetVisible = function (index) {\n var isRowFullyVisible = this.editor.isRowFullyVisible(this.$rowIndexToRow(index));\n var isIconVisible = this.$getFoldWidget(index).style.display !== \"none\";\n return isRowFullyVisible && isIconVisible;\n };\n GutterKeyboardHandler.prototype.$isAnnotationVisible = function (index) {\n var isRowFullyVisible = this.editor.isRowFullyVisible(this.$rowIndexToRow(index));\n var isIconVisible = this.$getAnnotation(index).style.display !== \"none\";\n return isRowFullyVisible && isIconVisible;\n };\n GutterKeyboardHandler.prototype.$getFoldWidget = function (index) {\n var cell = this.lines.get(index);\n var element = cell.element;\n return element.childNodes[1];\n };\n GutterKeyboardHandler.prototype.$getAnnotation = function (index) {\n var cell = this.lines.get(index);\n var element = cell.element;\n return element.childNodes[2];\n };\n GutterKeyboardHandler.prototype.$findNearestFoldWidget = function (index) {\n if (this.$isFoldWidgetVisible(index))\n return index;\n var i = 0;\n while (index - i > 0 || index + i < this.lines.getLength() - 1) {\n i++;\n if (index - i >= 0 && this.$isFoldWidgetVisible(index - i))\n return index - i;\n if (index + i <= this.lines.getLength() - 1 && this.$isFoldWidgetVisible(index + i))\n return index + i;\n }\n return null;\n };\n GutterKeyboardHandler.prototype.$findNearestAnnotation = function (index) {\n if (this.$isAnnotationVisible(index))\n return index;\n var i = 0;\n while (index - i > 0 || index + i < this.lines.getLength() - 1) {\n i++;\n if (index - i >= 0 && this.$isAnnotationVisible(index - i))\n return index - i;\n if (index + i <= this.lines.getLength() - 1 && this.$isAnnotationVisible(index + i))\n return index + i;\n }\n return null;\n };\n GutterKeyboardHandler.prototype.$focusFoldWidget = function (index) {\n if (index == null)\n return;\n var foldWidget = this.$getFoldWidget(index);\n foldWidget.classList.add(this.editor.renderer.keyboardFocusClassName);\n foldWidget.focus();\n };\n GutterKeyboardHandler.prototype.$focusAnnotation = function (index) {\n if (index == null)\n return;\n var annotation = this.$getAnnotation(index);\n annotation.classList.add(this.editor.renderer.keyboardFocusClassName);\n annotation.focus();\n };\n GutterKeyboardHandler.prototype.$blurFoldWidget = function (index) {\n var foldWidget = this.$getFoldWidget(index);\n foldWidget.classList.remove(this.editor.renderer.keyboardFocusClassName);\n foldWidget.blur();\n };\n GutterKeyboardHandler.prototype.$blurAnnotation = function (index) {\n var annotation = this.$getAnnotation(index);\n annotation.classList.remove(this.editor.renderer.keyboardFocusClassName);\n annotation.blur();\n };\n GutterKeyboardHandler.prototype.$moveFoldWidgetUp = function () {\n var index = this.activeRowIndex;\n while (index > 0) {\n index--;\n if (this.$isFoldWidgetVisible(index)) {\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$moveFoldWidgetDown = function () {\n var index = this.activeRowIndex;\n while (index < this.lines.getLength() - 1) {\n index++;\n if (this.$isFoldWidgetVisible(index)) {\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$moveAnnotationUp = function () {\n var index = this.activeRowIndex;\n while (index > 0) {\n index--;\n if (this.$isAnnotationVisible(index)) {\n this.$blurAnnotation(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$moveAnnotationDown = function () {\n var index = this.activeRowIndex;\n while (index < this.lines.getLength() - 1) {\n index++;\n if (this.$isAnnotationVisible(index)) {\n this.$blurAnnotation(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$switchLane = function (desinationLane) {\n switch (desinationLane) {\n case \"annotation\":\n if (this.activeLane === \"annotation\") {\n break;\n }\n var annotationIndex = this.$findNearestAnnotation(this.activeRowIndex);\n if (annotationIndex == null) {\n break;\n }\n this.activeLane = \"annotation\";\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = annotationIndex;\n this.$focusAnnotation(this.activeRowIndex);\n break;\n case \"fold\":\n if (this.activeLane === \"fold\") {\n break;\n }\n var foldWidgetIndex = this.$findNearestFoldWidget(this.activeRowIndex);\n if (foldWidgetIndex == null) {\n break;\n }\n this.activeLane = \"fold\";\n this.$blurAnnotation(this.activeRowIndex);\n this.activeRowIndex = foldWidgetIndex;\n this.$focusFoldWidget(this.activeRowIndex);\n break;\n }\n return;\n };\n GutterKeyboardHandler.prototype.$rowIndexToRow = function (index) {\n var cell = this.lines.get(index);\n if (cell)\n return cell.row;\n return null;\n };\n GutterKeyboardHandler.prototype.$rowToRowIndex = function (row) {\n for (var i = 0; i < this.lines.getLength(); i++) {\n var cell = this.lines.get(i);\n if (cell.row == row)\n return i;\n }\n return null;\n };\n return GutterKeyboardHandler;\n}());\nexports.GutterKeyboardHandler = GutterKeyboardHandler;\nvar GutterKeyboardEvent = /** @class */ (function () {\n function GutterKeyboardEvent(domEvent, gutterKeyboardHandler) {\n this.gutterKeyboardHandler = gutterKeyboardHandler;\n this.domEvent = domEvent;\n }\n GutterKeyboardEvent.prototype.getKey = function () {\n return keys.keyCodeToString(this.domEvent.keyCode);\n };\n GutterKeyboardEvent.prototype.getRow = function () {\n return this.gutterKeyboardHandler.$rowIndexToRow(this.gutterKeyboardHandler.activeRowIndex);\n };\n GutterKeyboardEvent.prototype.isInAnnotationLane = function () {\n return this.gutterKeyboardHandler.activeLane === \"annotation\";\n };\n GutterKeyboardEvent.prototype.isInFoldLane = function () {\n return this.gutterKeyboardHandler.activeLane === \"fold\";\n };\n return GutterKeyboardEvent;\n}());\nexports.GutterKeyboardEvent = GutterKeyboardEvent;\n\n});\n\nace.define(\"ace/editor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/keyboard/textinput\",\"ace/mouse/mouse_handler\",\"ace/mouse/fold_handler\",\"ace/keyboard/keybinding\",\"ace/edit_session\",\"ace/search\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/commands/command_manager\",\"ace/commands/default_commands\",\"ace/config\",\"ace/token_iterator\",\"ace/line_widgets\",\"ace/keyboard/gutter_handler\",\"ace/config\",\"ace/clipboard\",\"ace/lib/keys\"], function(require, exports, module){\"use strict\";\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar lang = require(\"./lib/lang\");\nvar useragent = require(\"./lib/useragent\");\nvar TextInput = require(\"./keyboard/textinput\").TextInput;\nvar MouseHandler = require(\"./mouse/mouse_handler\").MouseHandler;\nvar FoldHandler = require(\"./mouse/fold_handler\").FoldHandler;\nvar KeyBinding = require(\"./keyboard/keybinding\").KeyBinding;\nvar EditSession = require(\"./edit_session\").EditSession;\nvar Search = require(\"./search\").Search;\nvar Range = require(\"./range\").Range;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar CommandManager = require(\"./commands/command_manager\").CommandManager;\nvar defaultCommands = require(\"./commands/default_commands\").commands;\nvar config = require(\"./config\");\nvar TokenIterator = require(\"./token_iterator\").TokenIterator;\nvar LineWidgets = require(\"./line_widgets\").LineWidgets;\nvar GutterKeyboardHandler = require(\"./keyboard/gutter_handler\").GutterKeyboardHandler;\nvar nls = require(\"./config\").nls;\nvar clipboard = require(\"./clipboard\");\nvar keys = require('./lib/keys');\nvar Editor = /** @class */ (function () {\n function Editor(renderer, session, options) {\n this.$toDestroy = [];\n var container = renderer.getContainerElement();\n this.container = container;\n this.renderer = renderer;\n this.id = \"editor\" + (++Editor.$uid);\n this.commands = new CommandManager(useragent.isMac ? \"mac\" : \"win\", defaultCommands);\n if (typeof document == \"object\") {\n this.textInput = new TextInput(renderer.getTextAreaContainer(), this);\n this.renderer.textarea = this.textInput.getElement();\n this.$mouseHandler = new MouseHandler(this);\n new FoldHandler(this);\n }\n this.keyBinding = new KeyBinding(this);\n this.$search = new Search().set({\n wrap: true\n });\n this.$historyTracker = this.$historyTracker.bind(this);\n this.commands.on(\"exec\", this.$historyTracker);\n this.$initOperationListeners();\n this._$emitInputEvent = lang.delayedCall(function () {\n this._signal(\"input\", {});\n if (this.session && !this.session.destroyed)\n this.session.bgTokenizer.scheduleStart();\n }.bind(this));\n this.on(\"change\", function (_, _self) {\n _self._$emitInputEvent.schedule(31);\n });\n this.setSession(session || options && options.session || new EditSession(\"\"));\n config.resetOptions(this);\n if (options)\n this.setOptions(options);\n config._signal(\"editor\", this);\n }\n Editor.prototype.$initOperationListeners = function () {\n this.commands.on(\"exec\", this.startOperation.bind(this), true);\n this.commands.on(\"afterExec\", this.endOperation.bind(this), true);\n this.$opResetTimer = lang.delayedCall(this.endOperation.bind(this, true));\n this.on(\"change\", function () {\n if (!this.curOp) {\n this.startOperation();\n this.curOp.selectionBefore = this.$lastSel;\n }\n this.curOp.docChanged = true;\n }.bind(this), true);\n this.on(\"changeSelection\", function () {\n if (!this.curOp) {\n this.startOperation();\n this.curOp.selectionBefore = this.$lastSel;\n }\n this.curOp.selectionChanged = true;\n }.bind(this), true);\n };\n Editor.prototype.startOperation = function (commandEvent) {\n if (this.curOp) {\n if (!commandEvent || this.curOp.command)\n return;\n this.prevOp = this.curOp;\n }\n if (!commandEvent) {\n this.previousCommand = null;\n commandEvent = {};\n }\n this.$opResetTimer.schedule();\n this.curOp = this.session.curOp = {\n command: commandEvent.command || {},\n args: commandEvent.args,\n scrollTop: this.renderer.scrollTop\n };\n this.curOp.selectionBefore = this.selection.toJSON();\n };\n Editor.prototype.endOperation = function (e) {\n if (this.curOp && this.session) {\n if (e && e.returnValue === false || !this.session)\n return (this.curOp = null);\n if (e == true && this.curOp.command && this.curOp.command.name == \"mouse\")\n return;\n this._signal(\"beforeEndOperation\");\n if (!this.curOp)\n return;\n var command = this.curOp.command;\n var scrollIntoView = command && command.scrollIntoView;\n if (scrollIntoView) {\n switch (scrollIntoView) {\n case \"center-animate\":\n scrollIntoView = \"animate\";\n case \"center\":\n this.renderer.scrollCursorIntoView(null, 0.5);\n break;\n case \"animate\":\n case \"cursor\":\n this.renderer.scrollCursorIntoView();\n break;\n case \"selectionPart\":\n var range = this.selection.getRange();\n var config = this.renderer.layerConfig;\n if (range.start.row >= config.lastRow || range.end.row <= config.firstRow) {\n this.renderer.scrollSelectionIntoView(this.selection.anchor, this.selection.lead);\n }\n break;\n default:\n break;\n }\n if (scrollIntoView == \"animate\")\n this.renderer.animateScrolling(this.curOp.scrollTop);\n }\n var sel = this.selection.toJSON();\n this.curOp.selectionAfter = sel;\n this.$lastSel = this.selection.toJSON();\n this.session.getUndoManager().addSelection(sel);\n this.prevOp = this.curOp;\n this.curOp = null;\n }\n };\n Editor.prototype.$historyTracker = function (e) {\n if (!this.$mergeUndoDeltas)\n return;\n var prev = this.prevOp;\n var mergeableCommands = this.$mergeableCommands;\n var shouldMerge = prev.command && (e.command.name == prev.command.name);\n if (e.command.name == \"insertstring\") {\n var text = e.args;\n if (this.mergeNextCommand === undefined)\n this.mergeNextCommand = true;\n shouldMerge = shouldMerge\n && this.mergeNextCommand // previous command allows to coalesce with\n && (!/\\s/.test(text) || /\\s/.test(prev.args)); // previous insertion was of same type\n this.mergeNextCommand = true;\n }\n else {\n shouldMerge = shouldMerge\n && mergeableCommands.indexOf(e.command.name) !== -1; // the command is mergeable\n }\n if (this.$mergeUndoDeltas != \"always\"\n && Date.now() - this.sequenceStartTime > 2000) {\n shouldMerge = false; // the sequence is too long\n }\n if (shouldMerge)\n this.session.mergeUndoDeltas = true;\n else if (mergeableCommands.indexOf(e.command.name) !== -1)\n this.sequenceStartTime = Date.now();\n };\n Editor.prototype.setKeyboardHandler = function (keyboardHandler, cb) {\n if (keyboardHandler && typeof keyboardHandler === \"string\" && keyboardHandler != \"ace\") {\n this.$keybindingId = keyboardHandler;\n var _self = this;\n config.loadModule([\"keybinding\", keyboardHandler], function (module) {\n if (_self.$keybindingId == keyboardHandler)\n _self.keyBinding.setKeyboardHandler(module && module.handler);\n cb && cb();\n });\n }\n else {\n this.$keybindingId = null;\n this.keyBinding.setKeyboardHandler(keyboardHandler);\n cb && cb();\n }\n };\n Editor.prototype.getKeyboardHandler = function () {\n return this.keyBinding.getKeyboardHandler();\n };\n Editor.prototype.setSession = function (session) {\n if (this.session == session)\n return;\n if (this.curOp)\n this.endOperation();\n this.curOp = {};\n var oldSession = this.session;\n if (oldSession) {\n this.session.off(\"change\", this.$onDocumentChange);\n this.session.off(\"changeMode\", this.$onChangeMode);\n this.session.off(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n this.session.off(\"changeTabSize\", this.$onChangeTabSize);\n this.session.off(\"changeWrapLimit\", this.$onChangeWrapLimit);\n this.session.off(\"changeWrapMode\", this.$onChangeWrapMode);\n this.session.off(\"changeFold\", this.$onChangeFold);\n this.session.off(\"changeFrontMarker\", this.$onChangeFrontMarker);\n this.session.off(\"changeBackMarker\", this.$onChangeBackMarker);\n this.session.off(\"changeBreakpoint\", this.$onChangeBreakpoint);\n this.session.off(\"changeAnnotation\", this.$onChangeAnnotation);\n this.session.off(\"changeOverwrite\", this.$onCursorChange);\n this.session.off(\"changeScrollTop\", this.$onScrollTopChange);\n this.session.off(\"changeScrollLeft\", this.$onScrollLeftChange);\n var selection = this.session.getSelection();\n selection.off(\"changeCursor\", this.$onCursorChange);\n selection.off(\"changeSelection\", this.$onSelectionChange);\n }\n this.session = session;\n if (session) {\n this.$onDocumentChange = this.onDocumentChange.bind(this);\n session.on(\"change\", this.$onDocumentChange);\n this.renderer.setSession(session);\n this.$onChangeMode = this.onChangeMode.bind(this);\n session.on(\"changeMode\", this.$onChangeMode);\n this.$onTokenizerUpdate = this.onTokenizerUpdate.bind(this);\n session.on(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n this.$onChangeTabSize = this.renderer.onChangeTabSize.bind(this.renderer);\n session.on(\"changeTabSize\", this.$onChangeTabSize);\n this.$onChangeWrapLimit = this.onChangeWrapLimit.bind(this);\n session.on(\"changeWrapLimit\", this.$onChangeWrapLimit);\n this.$onChangeWrapMode = this.onChangeWrapMode.bind(this);\n session.on(\"changeWrapMode\", this.$onChangeWrapMode);\n this.$onChangeFold = this.onChangeFold.bind(this);\n session.on(\"changeFold\", this.$onChangeFold);\n this.$onChangeFrontMarker = this.onChangeFrontMarker.bind(this);\n this.session.on(\"changeFrontMarker\", this.$onChangeFrontMarker);\n this.$onChangeBackMarker = this.onChangeBackMarker.bind(this);\n this.session.on(\"changeBackMarker\", this.$onChangeBackMarker);\n this.$onChangeBreakpoint = this.onChangeBreakpoint.bind(this);\n this.session.on(\"changeBreakpoint\", this.$onChangeBreakpoint);\n this.$onChangeAnnotation = this.onChangeAnnotation.bind(this);\n this.session.on(\"changeAnnotation\", this.$onChangeAnnotation);\n this.$onCursorChange = this.onCursorChange.bind(this);\n this.session.on(\"changeOverwrite\", this.$onCursorChange);\n this.$onScrollTopChange = this.onScrollTopChange.bind(this);\n this.session.on(\"changeScrollTop\", this.$onScrollTopChange);\n this.$onScrollLeftChange = this.onScrollLeftChange.bind(this);\n this.session.on(\"changeScrollLeft\", this.$onScrollLeftChange);\n this.selection = session.getSelection();\n this.selection.on(\"changeCursor\", this.$onCursorChange);\n this.$onSelectionChange = this.onSelectionChange.bind(this);\n this.selection.on(\"changeSelection\", this.$onSelectionChange);\n this.onChangeMode();\n this.onCursorChange();\n this.onScrollTopChange();\n this.onScrollLeftChange();\n this.onSelectionChange();\n this.onChangeFrontMarker();\n this.onChangeBackMarker();\n this.onChangeBreakpoint();\n this.onChangeAnnotation();\n this.session.getUseWrapMode() && this.renderer.adjustWrapLimit();\n this.renderer.updateFull();\n }\n else {\n this.selection = null;\n this.renderer.setSession(session);\n }\n this._signal(\"changeSession\", {\n session: session,\n oldSession: oldSession\n });\n this.curOp = null;\n oldSession && oldSession._signal(\"changeEditor\", { oldEditor: this });\n session && session._signal(\"changeEditor\", { editor: this });\n if (session && !session.destroyed)\n session.bgTokenizer.scheduleStart();\n };\n Editor.prototype.getSession = function () {\n return this.session;\n };\n Editor.prototype.setValue = function (val, cursorPos) {\n this.session.doc.setValue(val);\n if (!cursorPos)\n this.selectAll();\n else if (cursorPos == 1)\n this.navigateFileEnd();\n else if (cursorPos == -1)\n this.navigateFileStart();\n return val;\n };\n Editor.prototype.getValue = function () {\n return this.session.getValue();\n };\n Editor.prototype.getSelection = function () {\n return this.selection;\n };\n Editor.prototype.resize = function (force) {\n this.renderer.onResize(force);\n };\n Editor.prototype.setTheme = function (theme, cb) {\n this.renderer.setTheme(theme, cb);\n };\n Editor.prototype.getTheme = function () {\n return this.renderer.getTheme();\n };\n Editor.prototype.setStyle = function (style) {\n this.renderer.setStyle(style);\n };\n Editor.prototype.unsetStyle = function (style) {\n this.renderer.unsetStyle(style);\n };\n Editor.prototype.getFontSize = function () {\n return this.getOption(\"fontSize\") ||\n dom.computedStyle(this.container).fontSize;\n };\n Editor.prototype.setFontSize = function (size) {\n this.setOption(\"fontSize\", size);\n };\n Editor.prototype.$highlightBrackets = function () {\n if (this.$highlightPending) {\n return;\n }\n var self = this;\n this.$highlightPending = true;\n setTimeout(function () {\n self.$highlightPending = false;\n var session = self.session;\n if (!session || session.destroyed)\n return;\n if (session.$bracketHighlight) {\n session.$bracketHighlight.markerIds.forEach(function (id) {\n session.removeMarker(id);\n });\n session.$bracketHighlight = null;\n }\n var pos = self.getCursorPosition();\n var handler = self.getKeyboardHandler();\n var isBackwards = handler && handler.$getDirectionForHighlight && handler.$getDirectionForHighlight(self);\n var ranges = session.getMatchingBracketRanges(pos, isBackwards);\n if (!ranges) {\n var iterator = new TokenIterator(session, pos.row, pos.column);\n var token = iterator.getCurrentToken();\n if (token && /\\b(?:tag-open|tag-name)/.test(token.type)) {\n var tagNamesRanges = session.getMatchingTags(pos);\n if (tagNamesRanges)\n ranges = [tagNamesRanges.openTagName, tagNamesRanges.closeTagName];\n }\n }\n if (!ranges && session.$mode.getMatching)\n ranges = session.$mode.getMatching(self.session);\n if (!ranges) {\n if (self.getHighlightIndentGuides())\n self.renderer.$textLayer.$highlightIndentGuide();\n return;\n }\n var markerType = \"ace_bracket\";\n if (!Array.isArray(ranges)) {\n ranges = [ranges];\n }\n else if (ranges.length == 1) {\n markerType = \"ace_error_bracket\";\n }\n if (ranges.length == 2) {\n if (Range.comparePoints(ranges[0].end, ranges[1].start) == 0)\n ranges = [Range.fromPoints(ranges[0].start, ranges[1].end)];\n else if (Range.comparePoints(ranges[0].start, ranges[1].end) == 0)\n ranges = [Range.fromPoints(ranges[1].start, ranges[0].end)];\n }\n session.$bracketHighlight = {\n ranges: ranges,\n markerIds: ranges.map(function (range) {\n return session.addMarker(range, markerType, \"text\");\n })\n };\n if (self.getHighlightIndentGuides())\n self.renderer.$textLayer.$highlightIndentGuide();\n }, 50);\n };\n Editor.prototype.focus = function () {\n this.textInput.focus();\n };\n Editor.prototype.isFocused = function () {\n return this.textInput.isFocused();\n };\n Editor.prototype.blur = function () {\n this.textInput.blur();\n };\n Editor.prototype.onFocus = function (e) {\n if (this.$isFocused)\n return;\n this.$isFocused = true;\n this.renderer.showCursor();\n this.renderer.visualizeFocus();\n this._emit(\"focus\", e);\n };\n Editor.prototype.onBlur = function (e) {\n if (!this.$isFocused)\n return;\n this.$isFocused = false;\n this.renderer.hideCursor();\n this.renderer.visualizeBlur();\n this._emit(\"blur\", e);\n };\n Editor.prototype.$cursorChange = function () {\n this.renderer.updateCursor();\n this.$highlightBrackets();\n this.$updateHighlightActiveLine();\n };\n Editor.prototype.onDocumentChange = function (delta) {\n var wrap = this.session.$useWrapMode;\n var lastRow = (delta.start.row == delta.end.row ? delta.end.row : Infinity);\n this.renderer.updateLines(delta.start.row, lastRow, wrap);\n this._signal(\"change\", delta);\n this.$cursorChange();\n };\n Editor.prototype.onTokenizerUpdate = function (e) {\n var rows = e.data;\n this.renderer.updateLines(rows.first, rows.last);\n };\n Editor.prototype.onScrollTopChange = function () {\n this.renderer.scrollToY(this.session.getScrollTop());\n };\n Editor.prototype.onScrollLeftChange = function () {\n this.renderer.scrollToX(this.session.getScrollLeft());\n };\n Editor.prototype.onCursorChange = function () {\n this.$cursorChange();\n this._signal(\"changeSelection\");\n };\n Editor.prototype.$updateHighlightActiveLine = function () {\n var session = this.getSession();\n var highlight;\n if (this.$highlightActiveLine) {\n if (this.$selectionStyle != \"line\" || !this.selection.isMultiLine())\n highlight = this.getCursorPosition();\n if (this.renderer.theme && this.renderer.theme.$selectionColorConflict && !this.selection.isEmpty())\n highlight = false;\n if (this.renderer.$maxLines && this.session.getLength() === 1 && !(this.renderer.$minLines > 1))\n highlight = false;\n }\n if (session.$highlightLineMarker && !highlight) {\n session.removeMarker(session.$highlightLineMarker.id);\n session.$highlightLineMarker = null;\n }\n else if (!session.$highlightLineMarker && highlight) {\n var range = new Range(highlight.row, highlight.column, highlight.row, Infinity);\n range.id = session.addMarker(range, \"ace_active-line\", \"screenLine\");\n session.$highlightLineMarker = range;\n }\n else if (highlight) {\n session.$highlightLineMarker.start.row = highlight.row;\n session.$highlightLineMarker.end.row = highlight.row;\n session.$highlightLineMarker.start.column = highlight.column;\n session._signal(\"changeBackMarker\");\n }\n };\n Editor.prototype.onSelectionChange = function (e) {\n var session = this.session;\n if (session.$selectionMarker) {\n session.removeMarker(session.$selectionMarker);\n }\n session.$selectionMarker = null;\n if (!this.selection.isEmpty()) {\n var range = this.selection.getRange();\n var style = this.getSelectionStyle();\n session.$selectionMarker = session.addMarker(range, \"ace_selection\", style);\n }\n else {\n this.$updateHighlightActiveLine();\n }\n var re = this.$highlightSelectedWord && this.$getSelectionHighLightRegexp();\n this.session.highlight(re);\n this._signal(\"changeSelection\");\n };\n Editor.prototype.$getSelectionHighLightRegexp = function () {\n var session = this.session;\n var selection = this.getSelectionRange();\n if (selection.isEmpty() || selection.isMultiLine())\n return;\n var startColumn = selection.start.column;\n var endColumn = selection.end.column;\n var line = session.getLine(selection.start.row);\n var needle = line.substring(startColumn, endColumn);\n if (needle.length > 5000 || !/[\\w\\d]/.test(needle))\n return;\n var re = this.$search.$assembleRegExp({\n wholeWord: true,\n caseSensitive: true,\n needle: needle\n });\n var wordWithBoundary = line.substring(startColumn - 1, endColumn + 1);\n if (!re.test(wordWithBoundary))\n return;\n return re;\n };\n Editor.prototype.onChangeFrontMarker = function () {\n this.renderer.updateFrontMarkers();\n };\n Editor.prototype.onChangeBackMarker = function () {\n this.renderer.updateBackMarkers();\n };\n Editor.prototype.onChangeBreakpoint = function () {\n this.renderer.updateBreakpoints();\n };\n Editor.prototype.onChangeAnnotation = function () {\n this.renderer.setAnnotations(this.session.getAnnotations());\n };\n Editor.prototype.onChangeMode = function (e) {\n this.renderer.updateText();\n this._emit(\"changeMode\", e);\n };\n Editor.prototype.onChangeWrapLimit = function () {\n this.renderer.updateFull();\n };\n Editor.prototype.onChangeWrapMode = function () {\n this.renderer.onResize(true);\n };\n Editor.prototype.onChangeFold = function () {\n this.$updateHighlightActiveLine();\n this.renderer.updateFull();\n };\n Editor.prototype.getSelectedText = function () {\n return this.session.getTextRange(this.getSelectionRange());\n };\n Editor.prototype.getCopyText = function () {\n var text = this.getSelectedText();\n var nl = this.session.doc.getNewLineCharacter();\n var copyLine = false;\n if (!text && this.$copyWithEmptySelection) {\n copyLine = true;\n var ranges = this.selection.getAllRanges();\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n if (i && ranges[i - 1].start.row == range.start.row)\n continue;\n text += this.session.getLine(range.start.row) + nl;\n }\n }\n var e = { text: text };\n this._signal(\"copy\", e);\n clipboard.lineMode = copyLine ? e.text : false;\n return e.text;\n };\n Editor.prototype.onCopy = function () {\n this.commands.exec(\"copy\", this);\n };\n Editor.prototype.onCut = function () {\n this.commands.exec(\"cut\", this);\n };\n Editor.prototype.onPaste = function (text, event) {\n var e = { text: text, event: event };\n this.commands.exec(\"paste\", this, e);\n };\n Editor.prototype.$handlePaste = function (e) {\n if (typeof e == \"string\")\n e = { text: e };\n this._signal(\"paste\", e);\n var text = e.text;\n var lineMode = text === clipboard.lineMode;\n var session = this.session;\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode) {\n if (lineMode)\n session.insert({ row: this.selection.lead.row, column: 0 }, text);\n else\n this.insert(text);\n }\n else if (lineMode) {\n this.selection.rangeList.ranges.forEach(function (range) {\n session.insert({ row: range.start.row, column: 0 }, text);\n });\n }\n else {\n var lines = text.split(/\\r\\n|\\r|\\n/);\n var ranges = this.selection.rangeList.ranges;\n var isFullLine = lines.length == 2 && (!lines[0] || !lines[1]);\n if (lines.length != ranges.length || isFullLine)\n return this.commands.exec(\"insertstring\", this, text);\n for (var i = ranges.length; i--;) {\n var range = ranges[i];\n if (!range.isEmpty())\n session.remove(range);\n session.insert(range.start, lines[i]);\n }\n }\n };\n Editor.prototype.execCommand = function (command, args) {\n return this.commands.exec(command, this, args);\n };\n Editor.prototype.insert = function (text, pasted) {\n var session = this.session;\n var mode = session.getMode();\n var cursor = this.getCursorPosition();\n if (this.getBehavioursEnabled() && !pasted) {\n var transform = mode.transformAction(session.getState(cursor.row), 'insertion', this, session, text);\n if (transform) {\n if (text !== transform.text) {\n if (!this.inVirtualSelectionMode) {\n this.session.mergeUndoDeltas = false;\n this.mergeNextCommand = false;\n }\n }\n text = transform.text;\n }\n }\n if (text == \"\\t\")\n text = this.session.getTabString();\n if (!this.selection.isEmpty()) {\n var range = this.getSelectionRange();\n cursor = this.session.remove(range);\n this.clearSelection();\n }\n else if (this.session.getOverwrite() && text.indexOf(\"\\n\") == -1) {\n var range = new Range.fromPoints(cursor, cursor);\n range.end.column += text.length;\n this.session.remove(range);\n }\n if (text == \"\\n\" || text == \"\\r\\n\") {\n var line = session.getLine(cursor.row);\n if (cursor.column > line.search(/\\S|$/)) {\n var d = line.substr(cursor.column).search(/\\S|$/);\n session.doc.removeInLine(cursor.row, cursor.column, cursor.column + d);\n }\n }\n this.clearSelection();\n var start = cursor.column;\n var lineState = session.getState(cursor.row);\n var line = session.getLine(cursor.row);\n var shouldOutdent = mode.checkOutdent(lineState, line, text);\n session.insert(cursor, text);\n if (transform && transform.selection) {\n if (transform.selection.length == 2) { // Transform relative to the current column\n this.selection.setSelectionRange(new Range(cursor.row, start + transform.selection[0], cursor.row, start + transform.selection[1]));\n }\n else { // Transform relative to the current row.\n this.selection.setSelectionRange(new Range(cursor.row + transform.selection[0], transform.selection[1], cursor.row + transform.selection[2], transform.selection[3]));\n }\n }\n if (this.$enableAutoIndent) {\n if (session.getDocument().isNewLine(text)) {\n var lineIndent = mode.getNextLineIndent(lineState, line.slice(0, cursor.column), session.getTabString());\n session.insert({ row: cursor.row + 1, column: 0 }, lineIndent);\n }\n if (shouldOutdent)\n mode.autoOutdent(lineState, session, cursor.row);\n }\n };\n Editor.prototype.autoIndent = function () {\n var session = this.session;\n var mode = session.getMode();\n var startRow, endRow;\n if (this.selection.isEmpty()) {\n startRow = 0;\n endRow = session.doc.getLength() - 1;\n }\n else {\n var selectedRange = this.getSelectionRange();\n startRow = selectedRange.start.row;\n endRow = selectedRange.end.row;\n }\n var prevLineState = \"\";\n var prevLine = \"\";\n var lineIndent = \"\";\n var line, currIndent, range;\n var tab = session.getTabString();\n for (var row = startRow; row <= endRow; row++) {\n if (row > 0) {\n prevLineState = session.getState(row - 1);\n prevLine = session.getLine(row - 1);\n lineIndent = mode.getNextLineIndent(prevLineState, prevLine, tab);\n }\n line = session.getLine(row);\n currIndent = mode.$getIndent(line);\n if (lineIndent !== currIndent) {\n if (currIndent.length > 0) {\n range = new Range(row, 0, row, currIndent.length);\n session.remove(range);\n }\n if (lineIndent.length > 0) {\n session.insert({ row: row, column: 0 }, lineIndent);\n }\n }\n mode.autoOutdent(prevLineState, session, row);\n }\n };\n Editor.prototype.onTextInput = function (text, composition) {\n if (!composition)\n return this.keyBinding.onTextInput(text);\n this.startOperation({ command: { name: \"insertstring\" } });\n var applyComposition = this.applyComposition.bind(this, text, composition);\n if (this.selection.rangeCount)\n this.forEachSelection(applyComposition);\n else\n applyComposition();\n this.endOperation();\n };\n Editor.prototype.applyComposition = function (text, composition) {\n if (composition.extendLeft || composition.extendRight) {\n var r = this.selection.getRange();\n r.start.column -= composition.extendLeft;\n r.end.column += composition.extendRight;\n if (r.start.column < 0) {\n r.start.row--;\n r.start.column += this.session.getLine(r.start.row).length + 1;\n }\n this.selection.setRange(r);\n if (!text && !r.isEmpty())\n this.remove();\n }\n if (text || !this.selection.isEmpty())\n this.insert(text, true);\n if (composition.restoreStart || composition.restoreEnd) {\n var r = this.selection.getRange();\n r.start.column -= composition.restoreStart;\n r.end.column -= composition.restoreEnd;\n this.selection.setRange(r);\n }\n };\n Editor.prototype.onCommandKey = function (e, hashId, keyCode) {\n return this.keyBinding.onCommandKey(e, hashId, keyCode);\n };\n Editor.prototype.setOverwrite = function (overwrite) {\n this.session.setOverwrite(overwrite);\n };\n Editor.prototype.getOverwrite = function () {\n return this.session.getOverwrite();\n };\n Editor.prototype.toggleOverwrite = function () {\n this.session.toggleOverwrite();\n };\n Editor.prototype.setScrollSpeed = function (speed) {\n this.setOption(\"scrollSpeed\", speed);\n };\n Editor.prototype.getScrollSpeed = function () {\n return this.getOption(\"scrollSpeed\");\n };\n Editor.prototype.setDragDelay = function (dragDelay) {\n this.setOption(\"dragDelay\", dragDelay);\n };\n Editor.prototype.getDragDelay = function () {\n return this.getOption(\"dragDelay\");\n };\n Editor.prototype.setSelectionStyle = function (val) {\n this.setOption(\"selectionStyle\", val);\n };\n Editor.prototype.getSelectionStyle = function () {\n return this.getOption(\"selectionStyle\");\n };\n Editor.prototype.setHighlightActiveLine = function (shouldHighlight) {\n this.setOption(\"highlightActiveLine\", shouldHighlight);\n };\n Editor.prototype.getHighlightActiveLine = function () {\n return this.getOption(\"highlightActiveLine\");\n };\n Editor.prototype.setHighlightGutterLine = function (shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n Editor.prototype.getHighlightGutterLine = function () {\n return this.getOption(\"highlightGutterLine\");\n };\n Editor.prototype.setHighlightSelectedWord = function (shouldHighlight) {\n this.setOption(\"highlightSelectedWord\", shouldHighlight);\n };\n Editor.prototype.getHighlightSelectedWord = function () {\n return this.$highlightSelectedWord;\n };\n Editor.prototype.setAnimatedScroll = function (shouldAnimate) {\n this.renderer.setAnimatedScroll(shouldAnimate);\n };\n Editor.prototype.getAnimatedScroll = function () {\n return this.renderer.getAnimatedScroll();\n };\n Editor.prototype.setShowInvisibles = function (showInvisibles) {\n this.renderer.setShowInvisibles(showInvisibles);\n };\n Editor.prototype.getShowInvisibles = function () {\n return this.renderer.getShowInvisibles();\n };\n Editor.prototype.setDisplayIndentGuides = function (display) {\n this.renderer.setDisplayIndentGuides(display);\n };\n Editor.prototype.getDisplayIndentGuides = function () {\n return this.renderer.getDisplayIndentGuides();\n };\n Editor.prototype.setHighlightIndentGuides = function (highlight) {\n this.renderer.setHighlightIndentGuides(highlight);\n };\n Editor.prototype.getHighlightIndentGuides = function () {\n return this.renderer.getHighlightIndentGuides();\n };\n Editor.prototype.setShowPrintMargin = function (showPrintMargin) {\n this.renderer.setShowPrintMargin(showPrintMargin);\n };\n Editor.prototype.getShowPrintMargin = function () {\n return this.renderer.getShowPrintMargin();\n };\n Editor.prototype.setPrintMarginColumn = function (showPrintMargin) {\n this.renderer.setPrintMarginColumn(showPrintMargin);\n };\n Editor.prototype.getPrintMarginColumn = function () {\n return this.renderer.getPrintMarginColumn();\n };\n Editor.prototype.setReadOnly = function (readOnly) {\n this.setOption(\"readOnly\", readOnly);\n };\n Editor.prototype.getReadOnly = function () {\n return this.getOption(\"readOnly\");\n };\n Editor.prototype.setBehavioursEnabled = function (enabled) {\n this.setOption(\"behavioursEnabled\", enabled);\n };\n Editor.prototype.getBehavioursEnabled = function () {\n return this.getOption(\"behavioursEnabled\");\n };\n Editor.prototype.setWrapBehavioursEnabled = function (enabled) {\n this.setOption(\"wrapBehavioursEnabled\", enabled);\n };\n Editor.prototype.getWrapBehavioursEnabled = function () {\n return this.getOption(\"wrapBehavioursEnabled\");\n };\n Editor.prototype.setShowFoldWidgets = function (show) {\n this.setOption(\"showFoldWidgets\", show);\n };\n Editor.prototype.getShowFoldWidgets = function () {\n return this.getOption(\"showFoldWidgets\");\n };\n Editor.prototype.setFadeFoldWidgets = function (fade) {\n this.setOption(\"fadeFoldWidgets\", fade);\n };\n Editor.prototype.getFadeFoldWidgets = function () {\n return this.getOption(\"fadeFoldWidgets\");\n };\n Editor.prototype.remove = function (dir) {\n if (this.selection.isEmpty()) {\n if (dir == \"left\")\n this.selection.selectLeft();\n else\n this.selection.selectRight();\n }\n var range = this.getSelectionRange();\n if (this.getBehavioursEnabled()) {\n var session = this.session;\n var state = session.getState(range.start.row);\n var new_range = session.getMode().transformAction(state, 'deletion', this, session, range);\n if (range.end.column === 0) {\n var text = session.getTextRange(range);\n if (text[text.length - 1] == \"\\n\") {\n var line = session.getLine(range.end.row);\n if (/^\\s+$/.test(line)) {\n range.end.column = line.length;\n }\n }\n }\n if (new_range)\n range = new_range;\n }\n this.session.remove(range);\n this.clearSelection();\n };\n Editor.prototype.removeWordRight = function () {\n if (this.selection.isEmpty())\n this.selection.selectWordRight();\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n Editor.prototype.removeWordLeft = function () {\n if (this.selection.isEmpty())\n this.selection.selectWordLeft();\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n Editor.prototype.removeToLineStart = function () {\n if (this.selection.isEmpty())\n this.selection.selectLineStart();\n if (this.selection.isEmpty())\n this.selection.selectLeft();\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n Editor.prototype.removeToLineEnd = function () {\n if (this.selection.isEmpty())\n this.selection.selectLineEnd();\n var range = this.getSelectionRange();\n if (range.start.column == range.end.column && range.start.row == range.end.row) {\n range.end.column = 0;\n range.end.row++;\n }\n this.session.remove(range);\n this.clearSelection();\n };\n Editor.prototype.splitLine = function () {\n if (!this.selection.isEmpty()) {\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n }\n var cursor = this.getCursorPosition();\n this.insert(\"\\n\");\n this.moveCursorToPosition(cursor);\n };\n Editor.prototype.setGhostText = function (text, position) {\n if (!this.session.widgetManager) {\n this.session.widgetManager = new LineWidgets(this.session);\n this.session.widgetManager.attach(this);\n }\n this.renderer.setGhostText(text, position);\n };\n Editor.prototype.removeGhostText = function () {\n if (!this.session.widgetManager)\n return;\n this.renderer.removeGhostText();\n };\n Editor.prototype.transposeLetters = function () {\n if (!this.selection.isEmpty()) {\n return;\n }\n var cursor = this.getCursorPosition();\n var column = cursor.column;\n if (column === 0)\n return;\n var line = this.session.getLine(cursor.row);\n var swap, range;\n if (column < line.length) {\n swap = line.charAt(column) + line.charAt(column - 1);\n range = new Range(cursor.row, column - 1, cursor.row, column + 1);\n }\n else {\n swap = line.charAt(column - 1) + line.charAt(column - 2);\n range = new Range(cursor.row, column - 2, cursor.row, column);\n }\n this.session.replace(range, swap);\n this.session.selection.moveToPosition(range.end);\n };\n Editor.prototype.toLowerCase = function () {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toLowerCase());\n this.selection.setSelectionRange(originalRange);\n };\n Editor.prototype.toUpperCase = function () {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toUpperCase());\n this.selection.setSelectionRange(originalRange);\n };\n Editor.prototype.indent = function () {\n var session = this.session;\n var range = this.getSelectionRange();\n if (range.start.row < range.end.row) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n }\n else if (range.start.column < range.end.column) {\n var text = session.getTextRange(range);\n if (!/^\\s+$/.test(text)) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n }\n }\n var line = session.getLine(range.start.row);\n var position = range.start;\n var size = session.getTabSize();\n var column = session.documentToScreenColumn(position.row, position.column);\n if (this.session.getUseSoftTabs()) {\n var count = (size - column % size);\n var indentString = lang.stringRepeat(\" \", count);\n }\n else {\n var count = column % size;\n while (line[range.start.column - 1] == \" \" && count) {\n range.start.column--;\n count--;\n }\n this.selection.setSelectionRange(range);\n indentString = \"\\t\";\n }\n return this.insert(indentString);\n };\n Editor.prototype.blockIndent = function () {\n var rows = this.$getSelectedRows();\n this.session.indentRows(rows.first, rows.last, \"\\t\");\n };\n Editor.prototype.blockOutdent = function () {\n var selection = this.session.getSelection();\n this.session.outdentRows(selection.getRange());\n };\n Editor.prototype.sortLines = function () {\n var rows = this.$getSelectedRows();\n var session = this.session;\n var lines = [];\n for (var i = rows.first; i <= rows.last; i++)\n lines.push(session.getLine(i));\n lines.sort(function (a, b) {\n if (a.toLowerCase() < b.toLowerCase())\n return -1;\n if (a.toLowerCase() > b.toLowerCase())\n return 1;\n return 0;\n });\n var deleteRange = new Range(0, 0, 0, 0);\n for (var i = rows.first; i <= rows.last; i++) {\n var line = session.getLine(i);\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n deleteRange.end.column = line.length;\n session.replace(deleteRange, lines[i - rows.first]);\n }\n };\n Editor.prototype.toggleCommentLines = function () {\n var state = this.session.getState(this.getCursorPosition().row);\n var rows = this.$getSelectedRows();\n this.session.getMode().toggleCommentLines(state, this.session, rows.first, rows.last);\n };\n Editor.prototype.toggleBlockComment = function () {\n var cursor = this.getCursorPosition();\n var state = this.session.getState(cursor.row);\n var range = this.getSelectionRange();\n this.session.getMode().toggleBlockComment(state, this.session, range, cursor);\n };\n Editor.prototype.getNumberAt = function (row, column) {\n var _numberRx = /[\\-]?[0-9]+(?:\\.[0-9]+)?/g;\n _numberRx.lastIndex = 0;\n var s = this.session.getLine(row);\n while (_numberRx.lastIndex < column) {\n var m = _numberRx.exec(s);\n if (m.index <= column && m.index + m[0].length >= column) {\n var number = {\n value: m[0],\n start: m.index,\n end: m.index + m[0].length\n };\n return number;\n }\n }\n return null;\n };\n Editor.prototype.modifyNumber = function (amount) {\n var row = this.selection.getCursor().row;\n var column = this.selection.getCursor().column;\n var charRange = new Range(row, column - 1, row, column);\n var c = this.session.getTextRange(charRange);\n if (!isNaN(parseFloat(c)) && isFinite(c)) {\n var nr = this.getNumberAt(row, column);\n if (nr) {\n var fp = nr.value.indexOf(\".\") >= 0 ? nr.start + nr.value.indexOf(\".\") + 1 : nr.end;\n var decimals = nr.start + nr.value.length - fp;\n var t = parseFloat(nr.value);\n t *= Math.pow(10, decimals);\n if (fp !== nr.end && column < fp) {\n amount *= Math.pow(10, nr.end - column - 1);\n }\n else {\n amount *= Math.pow(10, nr.end - column);\n }\n t += amount;\n t /= Math.pow(10, decimals);\n var nnr = t.toFixed(decimals);\n var replaceRange = new Range(row, nr.start, row, nr.end);\n this.session.replace(replaceRange, nnr);\n this.moveCursorTo(row, Math.max(nr.start + 1, column + nnr.length - nr.value.length));\n }\n }\n else {\n this.toggleWord();\n }\n };\n Editor.prototype.toggleWord = function () {\n var row = this.selection.getCursor().row;\n var column = this.selection.getCursor().column;\n this.selection.selectWord();\n var currentState = this.getSelectedText();\n var currWordStart = this.selection.getWordRange().start.column;\n var wordParts = currentState.replace(/([a-z]+|[A-Z]+)(?=[A-Z_]|$)/g, '$1 ').split(/\\s/);\n var delta = column - currWordStart - 1;\n if (delta < 0)\n delta = 0;\n var curLength = 0, itLength = 0;\n var that = this;\n if (currentState.match(/[A-Za-z0-9_]+/)) {\n wordParts.forEach(function (item, i) {\n itLength = curLength + item.length;\n if (delta >= curLength && delta <= itLength) {\n currentState = item;\n that.selection.clearSelection();\n that.moveCursorTo(row, curLength + currWordStart);\n that.selection.selectTo(row, itLength + currWordStart);\n }\n curLength = itLength;\n });\n }\n var wordPairs = this.$toggleWordPairs;\n var reg;\n for (var i = 0; i < wordPairs.length; i++) {\n var item = wordPairs[i];\n for (var j = 0; j <= 1; j++) {\n var negate = +!j;\n var firstCondition = currentState.match(new RegExp('^\\\\s?_?(' + lang.escapeRegExp(item[j]) + ')\\\\s?$', 'i'));\n if (firstCondition) {\n var secondCondition = currentState.match(new RegExp('([_]|^|\\\\s)(' + lang.escapeRegExp(firstCondition[1]) + ')($|\\\\s)', 'g'));\n if (secondCondition) {\n reg = currentState.replace(new RegExp(lang.escapeRegExp(item[j]), 'i'), function (result) {\n var res = item[negate];\n if (result.toUpperCase() == result) {\n res = res.toUpperCase();\n }\n else if (result.charAt(0).toUpperCase() == result.charAt(0)) {\n res = res.substr(0, 0) + item[negate].charAt(0).toUpperCase() + res.substr(1);\n }\n return res;\n });\n this.insert(reg);\n reg = \"\";\n }\n }\n }\n }\n };\n Editor.prototype.findLinkAt = function (row, column) {\n var e_1, _a;\n var line = this.session.getLine(row);\n var wordParts = line.split(/((?:https?|ftp):\\/\\/[\\S]+)/);\n var columnPosition = column;\n if (columnPosition < 0)\n columnPosition = 0;\n var previousPosition = 0, currentPosition = 0, match;\n try {\n for (var wordParts_1 = __values(wordParts), wordParts_1_1 = wordParts_1.next(); !wordParts_1_1.done; wordParts_1_1 = wordParts_1.next()) {\n var item = wordParts_1_1.value;\n currentPosition = previousPosition + item.length;\n if (columnPosition >= previousPosition && columnPosition <= currentPosition) {\n if (item.match(/((?:https?|ftp):\\/\\/[\\S]+)/)) {\n match = item.replace(/[\\s:.,'\";}\\]]+$/, \"\");\n break;\n }\n }\n previousPosition = currentPosition;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (wordParts_1_1 && !wordParts_1_1.done && (_a = wordParts_1.return)) _a.call(wordParts_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return match;\n };\n Editor.prototype.openLink = function () {\n var cursor = this.selection.getCursor();\n var url = this.findLinkAt(cursor.row, cursor.column);\n if (url)\n window.open(url, '_blank');\n return url != null;\n };\n Editor.prototype.removeLines = function () {\n var rows = this.$getSelectedRows();\n this.session.removeFullLines(rows.first, rows.last);\n this.clearSelection();\n };\n Editor.prototype.duplicateSelection = function () {\n var sel = this.selection;\n var doc = this.session;\n var range = sel.getRange();\n var reverse = sel.isBackwards();\n if (range.isEmpty()) {\n var row = range.start.row;\n doc.duplicateLines(row, row);\n }\n else {\n var point = reverse ? range.start : range.end;\n var endPoint = doc.insert(point, doc.getTextRange(range), false);\n range.start = point;\n range.end = endPoint;\n sel.setSelectionRange(range, reverse);\n }\n };\n Editor.prototype.moveLinesDown = function () {\n this.$moveLines(1, false);\n };\n Editor.prototype.moveLinesUp = function () {\n this.$moveLines(-1, false);\n };\n Editor.prototype.moveText = function (range, toPosition, copy) {\n return this.session.moveText(range, toPosition, copy);\n };\n Editor.prototype.copyLinesUp = function () {\n this.$moveLines(-1, true);\n };\n Editor.prototype.copyLinesDown = function () {\n this.$moveLines(1, true);\n };\n Editor.prototype.$moveLines = function (dir, copy) {\n var rows, moved;\n var selection = this.selection;\n if (!selection.inMultiSelectMode || this.inVirtualSelectionMode) {\n var range = selection.toOrientedRange();\n rows = this.$getSelectedRows(range);\n moved = this.session.$moveLines(rows.first, rows.last, copy ? 0 : dir);\n if (copy && dir == -1)\n moved = 0;\n range.moveBy(moved, 0);\n selection.fromOrientedRange(range);\n }\n else {\n var ranges = selection.rangeList.ranges;\n selection.rangeList.detach(this.session);\n this.inVirtualSelectionMode = true;\n var diff = 0;\n var totalDiff = 0;\n var l = ranges.length;\n for (var i = 0; i < l; i++) {\n var rangeIndex = i;\n ranges[i].moveBy(diff, 0);\n rows = this.$getSelectedRows(ranges[i]);\n var first = rows.first;\n var last = rows.last;\n while (++i < l) {\n if (totalDiff)\n ranges[i].moveBy(totalDiff, 0);\n var subRows = this.$getSelectedRows(ranges[i]);\n if (copy && subRows.first != last)\n break;\n else if (!copy && subRows.first > last + 1)\n break;\n last = subRows.last;\n }\n i--;\n diff = this.session.$moveLines(first, last, copy ? 0 : dir);\n if (copy && dir == -1)\n rangeIndex = i + 1;\n while (rangeIndex <= i) {\n ranges[rangeIndex].moveBy(diff, 0);\n rangeIndex++;\n }\n if (!copy)\n diff = 0;\n totalDiff += diff;\n }\n selection.fromOrientedRange(selection.ranges[0]);\n selection.rangeList.attach(this.session);\n this.inVirtualSelectionMode = false;\n }\n };\n Editor.prototype.$getSelectedRows = function (range) {\n range = (range || this.getSelectionRange()).collapseRows();\n return {\n first: this.session.getRowFoldStart(range.start.row),\n last: this.session.getRowFoldEnd(range.end.row)\n };\n };\n Editor.prototype.onCompositionStart = function (compositionState) {\n this.renderer.showComposition(compositionState);\n };\n Editor.prototype.onCompositionUpdate = function (text) {\n this.renderer.setCompositionText(text);\n };\n Editor.prototype.onCompositionEnd = function () {\n this.renderer.hideComposition();\n };\n Editor.prototype.getFirstVisibleRow = function () {\n return this.renderer.getFirstVisibleRow();\n };\n Editor.prototype.getLastVisibleRow = function () {\n return this.renderer.getLastVisibleRow();\n };\n Editor.prototype.isRowVisible = function (row) {\n return (row >= this.getFirstVisibleRow() && row <= this.getLastVisibleRow());\n };\n Editor.prototype.isRowFullyVisible = function (row) {\n return (row >= this.renderer.getFirstFullyVisibleRow() && row <= this.renderer.getLastFullyVisibleRow());\n };\n Editor.prototype.$getVisibleRowCount = function () {\n return this.renderer.getScrollBottomRow() - this.renderer.getScrollTopRow() + 1;\n };\n Editor.prototype.$moveByPage = function (dir, select) {\n var renderer = this.renderer;\n var config = this.renderer.layerConfig;\n var rows = dir * Math.floor(config.height / config.lineHeight);\n if (select === true) {\n this.selection.$moveSelection(function () {\n this.moveCursorBy(rows, 0);\n });\n }\n else if (select === false) {\n this.selection.moveCursorBy(rows, 0);\n this.selection.clearSelection();\n }\n var scrollTop = renderer.scrollTop;\n renderer.scrollBy(0, rows * config.lineHeight);\n if (select != null)\n renderer.scrollCursorIntoView(null, 0.5);\n renderer.animateScrolling(scrollTop);\n };\n Editor.prototype.selectPageDown = function () {\n this.$moveByPage(1, true);\n };\n Editor.prototype.selectPageUp = function () {\n this.$moveByPage(-1, true);\n };\n Editor.prototype.gotoPageDown = function () {\n this.$moveByPage(1, false);\n };\n Editor.prototype.gotoPageUp = function () {\n this.$moveByPage(-1, false);\n };\n Editor.prototype.scrollPageDown = function () {\n this.$moveByPage(1);\n };\n Editor.prototype.scrollPageUp = function () {\n this.$moveByPage(-1);\n };\n Editor.prototype.scrollToRow = function (row) {\n this.renderer.scrollToRow(row);\n };\n Editor.prototype.scrollToLine = function (line, center, animate, callback) {\n this.renderer.scrollToLine(line, center, animate, callback);\n };\n Editor.prototype.centerSelection = function () {\n var range = this.getSelectionRange();\n var pos = {\n row: Math.floor(range.start.row + (range.end.row - range.start.row) / 2),\n column: Math.floor(range.start.column + (range.end.column - range.start.column) / 2)\n };\n this.renderer.alignCursor(pos, 0.5);\n };\n Editor.prototype.getCursorPosition = function () {\n return this.selection.getCursor();\n };\n Editor.prototype.getCursorPositionScreen = function () {\n return this.session.documentToScreenPosition(this.getCursorPosition());\n };\n Editor.prototype.getSelectionRange = function () {\n return this.selection.getRange();\n };\n Editor.prototype.selectAll = function () {\n this.selection.selectAll();\n };\n Editor.prototype.clearSelection = function () {\n this.selection.clearSelection();\n };\n Editor.prototype.moveCursorTo = function (row, column) {\n this.selection.moveCursorTo(row, column);\n };\n Editor.prototype.moveCursorToPosition = function (pos) {\n this.selection.moveCursorToPosition(pos);\n };\n Editor.prototype.jumpToMatching = function (select, expand) {\n var cursor = this.getCursorPosition();\n var iterator = new TokenIterator(this.session, cursor.row, cursor.column);\n var prevToken = iterator.getCurrentToken();\n var tokenCount = 0;\n if (prevToken && prevToken.type.indexOf('tag-name') !== -1) {\n prevToken = iterator.stepBackward();\n }\n var token = prevToken || iterator.stepForward();\n if (!token)\n return;\n var matchType;\n var found = false;\n var depth = {};\n var i = cursor.column - token.start;\n var bracketType;\n var brackets = {\n \")\": \"(\",\n \"(\": \"(\",\n \"]\": \"[\",\n \"[\": \"[\",\n \"{\": \"{\",\n \"}\": \"{\"\n };\n do {\n if (token.value.match(/[{}()\\[\\]]/g)) {\n for (; i < token.value.length && !found; i++) {\n if (!brackets[token.value[i]]) {\n continue;\n }\n bracketType = brackets[token.value[i]] + '.' + token.type.replace(\"rparen\", \"lparen\");\n if (isNaN(depth[bracketType])) {\n depth[bracketType] = 0;\n }\n switch (token.value[i]) {\n case '(':\n case '[':\n case '{':\n depth[bracketType]++;\n break;\n case ')':\n case ']':\n case '}':\n depth[bracketType]--;\n if (depth[bracketType] === -1) {\n matchType = 'bracket';\n found = true;\n }\n break;\n }\n }\n }\n else if (token.type.indexOf('tag-name') !== -1) {\n if (isNaN(depth[token.value])) {\n depth[token.value] = 0;\n }\n if (prevToken.value === '<' && tokenCount > 1) {\n depth[token.value]++;\n }\n else if (prevToken.value === '= 0; --i) {\n if (this.$tryReplace(ranges[i], replacement)) {\n replaced++;\n }\n }\n this.selection.setSelectionRange(selection);\n return replaced;\n };\n Editor.prototype.$tryReplace = function (range, replacement) {\n var input = this.session.getTextRange(range);\n replacement = this.$search.replace(input, replacement);\n if (replacement !== null) {\n range.end = this.session.replace(range, replacement);\n return range;\n }\n else {\n return null;\n }\n };\n Editor.prototype.getLastSearchOptions = function () {\n return this.$search.getOptions();\n };\n Editor.prototype.find = function (needle, options, animate) {\n if (!options)\n options = {};\n if (typeof needle == \"string\" || needle instanceof RegExp)\n options.needle = needle;\n else if (typeof needle == \"object\")\n oop.mixin(options, needle);\n var range = this.selection.getRange();\n if (options.needle == null) {\n needle = this.session.getTextRange(range)\n || this.$search.$options.needle;\n if (!needle) {\n range = this.session.getWordRange(range.start.row, range.start.column);\n needle = this.session.getTextRange(range);\n }\n this.$search.set({ needle: needle });\n }\n this.$search.set(options);\n if (!options.start)\n this.$search.set({ start: range });\n var newRange = this.$search.find(this.session);\n if (options.preventScroll)\n return newRange;\n if (newRange) {\n this.revealRange(newRange, animate);\n return newRange;\n }\n if (options.backwards)\n range.start = range.end;\n else\n range.end = range.start;\n this.selection.setRange(range);\n };\n Editor.prototype.findNext = function (options, animate) {\n this.find({ skipCurrent: true, backwards: false }, options, animate);\n };\n Editor.prototype.findPrevious = function (options, animate) {\n this.find(options, { skipCurrent: true, backwards: true }, animate);\n };\n Editor.prototype.revealRange = function (range, animate) {\n this.session.unfold(range);\n this.selection.setSelectionRange(range);\n var scrollTop = this.renderer.scrollTop;\n this.renderer.scrollSelectionIntoView(range.start, range.end, 0.5);\n if (animate !== false)\n this.renderer.animateScrolling(scrollTop);\n };\n Editor.prototype.undo = function () {\n this.session.getUndoManager().undo(this.session);\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n Editor.prototype.redo = function () {\n this.session.getUndoManager().redo(this.session);\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n Editor.prototype.destroy = function () {\n if (this.$toDestroy) {\n this.$toDestroy.forEach(function (el) {\n el.destroy();\n });\n this.$toDestroy = null;\n }\n if (this.$mouseHandler)\n this.$mouseHandler.destroy();\n this.renderer.destroy();\n this._signal(\"destroy\", this);\n if (this.session)\n this.session.destroy();\n if (this._$emitInputEvent)\n this._$emitInputEvent.cancel();\n this.removeAllListeners();\n };\n Editor.prototype.setAutoScrollEditorIntoView = function (enable) {\n if (!enable)\n return;\n var rect;\n var self = this;\n var shouldScroll = false;\n if (!this.$scrollAnchor)\n this.$scrollAnchor = document.createElement(\"div\");\n var scrollAnchor = this.$scrollAnchor;\n scrollAnchor.style.cssText = \"position:absolute\";\n this.container.insertBefore(scrollAnchor, this.container.firstChild);\n var onChangeSelection = this.on(\"changeSelection\", function () {\n shouldScroll = true;\n });\n var onBeforeRender = this.renderer.on(\"beforeRender\", function () {\n if (shouldScroll)\n rect = self.renderer.container.getBoundingClientRect();\n });\n var onAfterRender = this.renderer.on(\"afterRender\", function () {\n if (shouldScroll && rect && (self.isFocused()\n || self.searchBox && self.searchBox.isFocused())) {\n var renderer = self.renderer;\n var pos = renderer.$cursorLayer.$pixelPos;\n var config = renderer.layerConfig;\n var top = pos.top - config.offset;\n if (pos.top >= 0 && top + rect.top < 0) {\n shouldScroll = true;\n }\n else if (pos.top < config.height &&\n pos.top + rect.top + config.lineHeight > window.innerHeight) {\n shouldScroll = false;\n }\n else {\n shouldScroll = null;\n }\n if (shouldScroll != null) {\n scrollAnchor.style.top = top + \"px\";\n scrollAnchor.style.left = pos.left + \"px\";\n scrollAnchor.style.height = config.lineHeight + \"px\";\n scrollAnchor.scrollIntoView(shouldScroll);\n }\n shouldScroll = rect = null;\n }\n });\n this.setAutoScrollEditorIntoView = function (enable) {\n if (enable)\n return;\n delete this.setAutoScrollEditorIntoView;\n this.off(\"changeSelection\", onChangeSelection);\n this.renderer.off(\"afterRender\", onAfterRender);\n this.renderer.off(\"beforeRender\", onBeforeRender);\n };\n };\n Editor.prototype.$resetCursorStyle = function () {\n var style = this.$cursorStyle || \"ace\";\n var cursorLayer = this.renderer.$cursorLayer;\n if (!cursorLayer)\n return;\n cursorLayer.setSmoothBlinking(/smooth/.test(style));\n cursorLayer.isBlinking = !this.$readOnly && style != \"wide\";\n dom.setCssClass(cursorLayer.element, \"ace_slim-cursors\", /slim/.test(style));\n };\n Editor.prototype.prompt = function (message, options, callback) {\n var editor = this;\n config.loadModule(\"ace/ext/prompt\", function (module) {\n module.prompt(editor, message, options, callback);\n });\n };\n return Editor;\n}());\nEditor.$uid = 0;\nEditor.prototype.curOp = null;\nEditor.prototype.prevOp = {};\nEditor.prototype.$mergeableCommands = [\"backspace\", \"del\", \"insertstring\"];\nEditor.prototype.$toggleWordPairs = [\n [\"first\", \"last\"],\n [\"true\", \"false\"],\n [\"yes\", \"no\"],\n [\"width\", \"height\"],\n [\"top\", \"bottom\"],\n [\"right\", \"left\"],\n [\"on\", \"off\"],\n [\"x\", \"y\"],\n [\"get\", \"set\"],\n [\"max\", \"min\"],\n [\"horizontal\", \"vertical\"],\n [\"show\", \"hide\"],\n [\"add\", \"remove\"],\n [\"up\", \"down\"],\n [\"before\", \"after\"],\n [\"even\", \"odd\"],\n [\"in\", \"out\"],\n [\"inside\", \"outside\"],\n [\"next\", \"previous\"],\n [\"increase\", \"decrease\"],\n [\"attach\", \"detach\"],\n [\"&&\", \"||\"],\n [\"==\", \"!=\"]\n];\noop.implement(Editor.prototype, EventEmitter);\nconfig.defineOptions(Editor.prototype, \"editor\", {\n selectionStyle: {\n set: function (style) {\n this.onSelectionChange();\n this._signal(\"changeSelectionStyle\", { data: style });\n },\n initialValue: \"line\"\n },\n highlightActiveLine: {\n set: function () { this.$updateHighlightActiveLine(); },\n initialValue: true\n },\n highlightSelectedWord: {\n set: function (shouldHighlight) { this.$onSelectionChange(); },\n initialValue: true\n },\n readOnly: {\n set: function (readOnly) {\n this.textInput.setReadOnly(readOnly);\n this.$resetCursorStyle();\n },\n initialValue: false\n },\n copyWithEmptySelection: {\n set: function (value) {\n this.textInput.setCopyWithEmptySelection(value);\n },\n initialValue: false\n },\n cursorStyle: {\n set: function (val) { this.$resetCursorStyle(); },\n values: [\"ace\", \"slim\", \"smooth\", \"wide\"],\n initialValue: \"ace\"\n },\n mergeUndoDeltas: {\n values: [false, true, \"always\"],\n initialValue: true\n },\n behavioursEnabled: { initialValue: true },\n wrapBehavioursEnabled: { initialValue: true },\n enableAutoIndent: { initialValue: true },\n autoScrollEditorIntoView: {\n set: function (val) { this.setAutoScrollEditorIntoView(val); }\n },\n keyboardHandler: {\n set: function (val) { this.setKeyboardHandler(val); },\n get: function () { return this.$keybindingId; },\n handlesSet: true\n },\n value: {\n set: function (val) { this.session.setValue(val); },\n get: function () { return this.getValue(); },\n handlesSet: true,\n hidden: true\n },\n session: {\n set: function (val) { this.setSession(val); },\n get: function () { return this.session; },\n handlesSet: true,\n hidden: true\n },\n showLineNumbers: {\n set: function (show) {\n this.renderer.$gutterLayer.setShowLineNumbers(show);\n this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER);\n if (show && this.$relativeLineNumbers)\n relativeNumberRenderer.attach(this);\n else\n relativeNumberRenderer.detach(this);\n },\n initialValue: true\n },\n relativeLineNumbers: {\n set: function (value) {\n if (this.$showLineNumbers && value)\n relativeNumberRenderer.attach(this);\n else\n relativeNumberRenderer.detach(this);\n }\n },\n placeholder: {\n set: function (message) {\n if (!this.$updatePlaceholder) {\n this.$updatePlaceholder = function () {\n var hasValue = this.session && (this.renderer.$composition ||\n this.session.getLength() > 1 || this.session.getLine(0).length > 0);\n if (hasValue && this.renderer.placeholderNode) {\n this.renderer.off(\"afterRender\", this.$updatePlaceholder);\n dom.removeCssClass(this.container, \"ace_hasPlaceholder\");\n this.renderer.placeholderNode.remove();\n this.renderer.placeholderNode = null;\n }\n else if (!hasValue && !this.renderer.placeholderNode) {\n this.renderer.on(\"afterRender\", this.$updatePlaceholder);\n dom.addCssClass(this.container, \"ace_hasPlaceholder\");\n var el = dom.createElement(\"div\");\n el.className = \"ace_placeholder\";\n el.textContent = this.$placeholder || \"\";\n this.renderer.placeholderNode = el;\n this.renderer.content.appendChild(this.renderer.placeholderNode);\n }\n else if (!hasValue && this.renderer.placeholderNode) {\n this.renderer.placeholderNode.textContent = this.$placeholder || \"\";\n }\n }.bind(this);\n this.on(\"input\", this.$updatePlaceholder);\n }\n this.$updatePlaceholder();\n }\n },\n enableKeyboardAccessibility: {\n set: function (value) {\n var blurCommand = {\n name: \"blurTextInput\",\n description: \"Set focus to the editor content div to allow tabbing through the page\",\n bindKey: \"Esc\",\n exec: function (editor) {\n editor.blur();\n editor.renderer.scroller.focus();\n },\n readOnly: true\n };\n var focusOnEnterKeyup = function (e) {\n if (e.target == this.renderer.scroller && e.keyCode === keys['enter']) {\n e.preventDefault();\n var row = this.getCursorPosition().row;\n if (!this.isRowVisible(row))\n this.scrollToLine(row, true, true);\n this.focus();\n }\n };\n var gutterKeyboardHandler;\n if (value) {\n this.renderer.enableKeyboardAccessibility = true;\n this.renderer.keyboardFocusClassName = \"ace_keyboard-focus\";\n this.textInput.getElement().setAttribute(\"tabindex\", -1);\n this.textInput.setNumberOfExtraLines(useragent.isWin ? 3 : 0);\n this.renderer.scroller.setAttribute(\"tabindex\", 0);\n this.renderer.scroller.setAttribute(\"role\", \"group\");\n this.renderer.scroller.setAttribute(\"aria-roledescription\", nls(\"editor\"));\n this.renderer.scroller.classList.add(this.renderer.keyboardFocusClassName);\n this.renderer.scroller.setAttribute(\"aria-label\", nls(\"Editor content, press Enter to start editing, press Escape to exit\"));\n this.renderer.scroller.addEventListener(\"keyup\", focusOnEnterKeyup.bind(this));\n this.commands.addCommand(blurCommand);\n this.renderer.$gutter.setAttribute(\"tabindex\", 0);\n this.renderer.$gutter.setAttribute(\"aria-hidden\", false);\n this.renderer.$gutter.setAttribute(\"role\", \"group\");\n this.renderer.$gutter.setAttribute(\"aria-roledescription\", nls(\"editor\"));\n this.renderer.$gutter.setAttribute(\"aria-label\", nls(\"Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit\"));\n this.renderer.$gutter.classList.add(this.renderer.keyboardFocusClassName);\n this.renderer.content.setAttribute(\"aria-hidden\", true);\n if (!gutterKeyboardHandler)\n gutterKeyboardHandler = new GutterKeyboardHandler(this);\n gutterKeyboardHandler.addListener();\n }\n else {\n this.renderer.enableKeyboardAccessibility = false;\n this.textInput.getElement().setAttribute(\"tabindex\", 0);\n this.textInput.setNumberOfExtraLines(0);\n this.renderer.scroller.setAttribute(\"tabindex\", -1);\n this.renderer.scroller.removeAttribute(\"role\");\n this.renderer.scroller.removeAttribute(\"aria-roledescription\");\n this.renderer.scroller.classList.remove(this.renderer.keyboardFocusClassName);\n this.renderer.scroller.removeAttribute(\"aria-label\");\n this.renderer.scroller.removeEventListener(\"keyup\", focusOnEnterKeyup.bind(this));\n this.commands.removeCommand(blurCommand);\n this.renderer.content.removeAttribute(\"aria-hidden\");\n this.renderer.$gutter.setAttribute(\"tabindex\", -1);\n this.renderer.$gutter.setAttribute(\"aria-hidden\", true);\n this.renderer.$gutter.removeAttribute(\"role\");\n this.renderer.$gutter.removeAttribute(\"aria-roledescription\");\n this.renderer.$gutter.removeAttribute(\"aria-label\");\n this.renderer.$gutter.classList.remove(this.renderer.keyboardFocusClassName);\n if (gutterKeyboardHandler)\n gutterKeyboardHandler.removeListener();\n }\n },\n initialValue: false\n },\n customScrollbar: \"renderer\",\n hScrollBarAlwaysVisible: \"renderer\",\n vScrollBarAlwaysVisible: \"renderer\",\n highlightGutterLine: \"renderer\",\n animatedScroll: \"renderer\",\n showInvisibles: \"renderer\",\n showPrintMargin: \"renderer\",\n printMarginColumn: \"renderer\",\n printMargin: \"renderer\",\n fadeFoldWidgets: \"renderer\",\n showFoldWidgets: \"renderer\",\n displayIndentGuides: \"renderer\",\n highlightIndentGuides: \"renderer\",\n showGutter: \"renderer\",\n fontSize: \"renderer\",\n fontFamily: \"renderer\",\n maxLines: \"renderer\",\n minLines: \"renderer\",\n scrollPastEnd: \"renderer\",\n fixedWidthGutter: \"renderer\",\n theme: \"renderer\",\n hasCssTransforms: \"renderer\",\n maxPixelHeight: \"renderer\",\n useTextareaForIME: \"renderer\",\n useResizeObserver: \"renderer\",\n useSvgGutterIcons: \"renderer\",\n showFoldedAnnotations: \"renderer\",\n scrollSpeed: \"$mouseHandler\",\n dragDelay: \"$mouseHandler\",\n dragEnabled: \"$mouseHandler\",\n focusTimeout: \"$mouseHandler\",\n tooltipFollowsMouse: \"$mouseHandler\",\n firstLineNumber: \"session\",\n overwrite: \"session\",\n newLineMode: \"session\",\n useWorker: \"session\",\n useSoftTabs: \"session\",\n navigateWithinSoftTabs: \"session\",\n tabSize: \"session\",\n wrap: \"session\",\n indentedSoftWrap: \"session\",\n foldStyle: \"session\",\n mode: \"session\"\n});\nvar relativeNumberRenderer = {\n getText: function (session, row) {\n return (Math.abs(session.selection.lead.row - row) || (row + 1 + (row < 9 ? \"\\xb7\" : \"\"))) + \"\";\n },\n getWidth: function (session, lastLineNumber, config) {\n return Math.max(lastLineNumber.toString().length, (config.lastRow + 1).toString().length, 2) * config.characterWidth;\n },\n update: function (e, editor) {\n editor.renderer.$loop.schedule(editor.renderer.CHANGE_GUTTER);\n },\n attach: function (editor) {\n editor.renderer.$gutterLayer.$renderer = this;\n editor.on(\"changeSelection\", this.update);\n this.update(null, editor);\n },\n detach: function (editor) {\n if (editor.renderer.$gutterLayer.$renderer == this)\n editor.renderer.$gutterLayer.$renderer = null;\n editor.off(\"changeSelection\", this.update);\n this.update(null, editor);\n }\n};\nexports.Editor = Editor;\n\n});\n\nace.define(\"ace/layer/lines\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar Lines = /** @class */ (function () {\n function Lines(element, canvasHeight) {\n this.element = element;\n this.canvasHeight = canvasHeight || 500000;\n this.element.style.height = (this.canvasHeight * 2) + \"px\";\n this.cells = [];\n this.cellCache = [];\n this.$offsetCoefficient = 0;\n }\n Lines.prototype.moveContainer = function (config) {\n dom.translate(this.element, 0, -((config.firstRowScreen * config.lineHeight) % this.canvasHeight) - config.offset * this.$offsetCoefficient);\n };\n Lines.prototype.pageChanged = function (oldConfig, newConfig) {\n return (Math.floor((oldConfig.firstRowScreen * oldConfig.lineHeight) / this.canvasHeight) !==\n Math.floor((newConfig.firstRowScreen * newConfig.lineHeight) / this.canvasHeight));\n };\n Lines.prototype.computeLineTop = function (row, config, session) {\n var screenTop = config.firstRowScreen * config.lineHeight;\n var screenPage = Math.floor(screenTop / this.canvasHeight);\n var lineTop = session.documentToScreenRow(row, 0) * config.lineHeight;\n return lineTop - (screenPage * this.canvasHeight);\n };\n Lines.prototype.computeLineHeight = function (row, config, session) {\n return config.lineHeight * session.getRowLineCount(row);\n };\n Lines.prototype.getLength = function () {\n return this.cells.length;\n };\n Lines.prototype.get = function (index) {\n return this.cells[index];\n };\n Lines.prototype.shift = function () {\n this.$cacheCell(this.cells.shift());\n };\n Lines.prototype.pop = function () {\n this.$cacheCell(this.cells.pop());\n };\n Lines.prototype.push = function (cell) {\n if (Array.isArray(cell)) {\n this.cells.push.apply(this.cells, cell);\n var fragment = dom.createFragment(this.element);\n for (var i = 0; i < cell.length; i++) {\n fragment.appendChild(cell[i].element);\n }\n this.element.appendChild(fragment);\n }\n else {\n this.cells.push(cell);\n this.element.appendChild(cell.element);\n }\n };\n Lines.prototype.unshift = function (cell) {\n if (Array.isArray(cell)) {\n this.cells.unshift.apply(this.cells, cell);\n var fragment = dom.createFragment(this.element);\n for (var i = 0; i < cell.length; i++) {\n fragment.appendChild(cell[i].element);\n }\n if (this.element.firstChild)\n this.element.insertBefore(fragment, this.element.firstChild);\n else\n this.element.appendChild(fragment);\n }\n else {\n this.cells.unshift(cell);\n this.element.insertAdjacentElement(\"afterbegin\", cell.element);\n }\n };\n Lines.prototype.last = function () {\n if (this.cells.length)\n return this.cells[this.cells.length - 1];\n else\n return null;\n };\n Lines.prototype.$cacheCell = function (cell) {\n if (!cell)\n return;\n cell.element.remove();\n this.cellCache.push(cell);\n };\n Lines.prototype.createCell = function (row, config, session, initElement) {\n var cell = this.cellCache.pop();\n if (!cell) {\n var element = dom.createElement(\"div\");\n if (initElement)\n initElement(element);\n this.element.appendChild(element);\n cell = {\n element: element,\n text: \"\",\n row: row\n };\n }\n cell.row = row;\n return cell;\n };\n return Lines;\n}());\nexports.Lines = Lines;\n\n});\n\nace.define(\"ace/layer/gutter\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/layer/lines\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar Lines = require(\"./lines\").Lines;\nvar nls = require(\"../config\").nls;\nvar Gutter = /** @class */ (function () {\n function Gutter(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_gutter-layer\";\n parentEl.appendChild(this.element);\n this.setShowFoldWidgets(this.$showFoldWidgets);\n this.gutterWidth = 0;\n this.$annotations = [];\n this.$updateAnnotations = this.$updateAnnotations.bind(this);\n this.$lines = new Lines(this.element);\n this.$lines.$offsetCoefficient = 1;\n }\n Gutter.prototype.setSession = function (session) {\n if (this.session)\n this.session.off(\"change\", this.$updateAnnotations);\n this.session = session;\n if (session)\n session.on(\"change\", this.$updateAnnotations);\n };\n Gutter.prototype.addGutterDecoration = function (row, className) {\n if (window.console)\n console.warn && console.warn(\"deprecated use session.addGutterDecoration\");\n this.session.addGutterDecoration(row, className);\n };\n Gutter.prototype.removeGutterDecoration = function (row, className) {\n if (window.console)\n console.warn && console.warn(\"deprecated use session.removeGutterDecoration\");\n this.session.removeGutterDecoration(row, className);\n };\n Gutter.prototype.setAnnotations = function (annotations) {\n this.$annotations = [];\n for (var i = 0; i < annotations.length; i++) {\n var annotation = annotations[i];\n var row = annotation.row;\n var rowInfo = this.$annotations[row];\n if (!rowInfo)\n rowInfo = this.$annotations[row] = { text: [], type: [] };\n var annoText = annotation.text;\n var annoType = annotation.type;\n annoText = annoText ? lang.escapeHTML(annoText) : annotation.html || \"\";\n if (rowInfo.text.indexOf(annoText) === -1) {\n rowInfo.text.push(annoText);\n rowInfo.type.push(annoType);\n }\n var className = annotation.className;\n if (className)\n rowInfo.className = className;\n else if (annoType == \"error\")\n rowInfo.className = \" ace_error\";\n else if (annoType == \"warning\" && rowInfo.className != \" ace_error\")\n rowInfo.className = \" ace_warning\";\n else if (annoType == \"info\" && (!rowInfo.className))\n rowInfo.className = \" ace_info\";\n }\n };\n Gutter.prototype.$updateAnnotations = function (delta) {\n if (!this.$annotations.length)\n return;\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n if (len === 0) {\n }\n else if (delta.action == 'remove') {\n this.$annotations.splice(firstRow, len + 1, null);\n }\n else {\n var args = new Array(len + 1);\n args.unshift(firstRow, 1);\n this.$annotations.splice.apply(this.$annotations, args);\n }\n };\n Gutter.prototype.update = function (config) {\n this.config = config;\n var session = this.session;\n var firstRow = config.firstRow;\n var lastRow = Math.min(config.lastRow + config.gutterOffset, // needed to compensate for hor scollbar\n session.getLength() - 1);\n this.oldLastRow = lastRow;\n this.config = config;\n this.$lines.moveContainer(config);\n this.$updateCursorRow();\n var fold = session.getNextFoldLine(firstRow);\n var foldStart = fold ? fold.start.row : Infinity;\n var cell = null;\n var index = -1;\n var row = firstRow;\n while (true) {\n if (row > foldStart) {\n row = fold.end.row + 1;\n fold = session.getNextFoldLine(row, fold);\n foldStart = fold ? fold.start.row : Infinity;\n }\n if (row > lastRow) {\n while (this.$lines.getLength() > index + 1)\n this.$lines.pop();\n break;\n }\n cell = this.$lines.get(++index);\n if (cell) {\n cell.row = row;\n }\n else {\n cell = this.$lines.createCell(row, config, this.session, onCreateCell);\n this.$lines.push(cell);\n }\n this.$renderCell(cell, config, fold, row);\n row++;\n }\n this._signal(\"afterRender\");\n this.$updateGutterWidth(config);\n };\n Gutter.prototype.$updateGutterWidth = function (config) {\n var session = this.session;\n var gutterRenderer = session.gutterRenderer || this.$renderer;\n var firstLineNumber = session.$firstLineNumber;\n var lastLineText = this.$lines.last() ? this.$lines.last().text : \"\";\n if (this.$fixedWidth || session.$useWrapMode)\n lastLineText = session.getLength() + firstLineNumber - 1;\n var gutterWidth = gutterRenderer\n ? gutterRenderer.getWidth(session, lastLineText, config)\n : lastLineText.toString().length * config.characterWidth;\n var padding = this.$padding || this.$computePadding();\n gutterWidth += padding.left + padding.right;\n if (gutterWidth !== this.gutterWidth && !isNaN(gutterWidth)) {\n this.gutterWidth = gutterWidth;\n this.element.parentNode.style.width =\n this.element.style.width = Math.ceil(this.gutterWidth) + \"px\";\n this._signal(\"changeGutterWidth\", gutterWidth);\n }\n };\n Gutter.prototype.$updateCursorRow = function () {\n if (!this.$highlightGutterLine)\n return;\n var position = this.session.selection.getCursor();\n if (this.$cursorRow === position.row)\n return;\n this.$cursorRow = position.row;\n };\n Gutter.prototype.updateLineHighlight = function () {\n if (!this.$highlightGutterLine)\n return;\n var row = this.session.selection.cursor.row;\n this.$cursorRow = row;\n if (this.$cursorCell && this.$cursorCell.row == row)\n return;\n if (this.$cursorCell)\n this.$cursorCell.element.className = this.$cursorCell.element.className.replace(\"ace_gutter-active-line \", \"\");\n var cells = this.$lines.cells;\n this.$cursorCell = null;\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n if (cell.row >= this.$cursorRow) {\n if (cell.row > this.$cursorRow) {\n var fold = this.session.getFoldLine(this.$cursorRow);\n if (i > 0 && fold && fold.start.row == cells[i - 1].row)\n cell = cells[i - 1];\n else\n break;\n }\n cell.element.className = \"ace_gutter-active-line \" + cell.element.className;\n this.$cursorCell = cell;\n break;\n }\n }\n };\n Gutter.prototype.scrollLines = function (config) {\n var oldConfig = this.config;\n this.config = config;\n this.$updateCursorRow();\n if (this.$lines.pageChanged(oldConfig, config))\n return this.update(config);\n this.$lines.moveContainer(config);\n var lastRow = Math.min(config.lastRow + config.gutterOffset, // needed to compensate for hor scollbar\n this.session.getLength() - 1);\n var oldLastRow = this.oldLastRow;\n this.oldLastRow = lastRow;\n if (!oldConfig || oldLastRow < config.firstRow)\n return this.update(config);\n if (lastRow < oldConfig.firstRow)\n return this.update(config);\n if (oldConfig.firstRow < config.firstRow)\n for (var row = this.session.getFoldedRowCount(oldConfig.firstRow, config.firstRow - 1); row > 0; row--)\n this.$lines.shift();\n if (oldLastRow > lastRow)\n for (var row = this.session.getFoldedRowCount(lastRow + 1, oldLastRow); row > 0; row--)\n this.$lines.pop();\n if (config.firstRow < oldConfig.firstRow) {\n this.$lines.unshift(this.$renderLines(config, config.firstRow, oldConfig.firstRow - 1));\n }\n if (lastRow > oldLastRow) {\n this.$lines.push(this.$renderLines(config, oldLastRow + 1, lastRow));\n }\n this.updateLineHighlight();\n this._signal(\"afterRender\");\n this.$updateGutterWidth(config);\n };\n Gutter.prototype.$renderLines = function (config, firstRow, lastRow) {\n var fragment = [];\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row + 1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > lastRow)\n break;\n var cell = this.$lines.createCell(row, config, this.session, onCreateCell);\n this.$renderCell(cell, config, foldLine, row);\n fragment.push(cell);\n row++;\n }\n return fragment;\n };\n Gutter.prototype.$renderCell = function (cell, config, fold, row) {\n var element = cell.element;\n var session = this.session;\n var textNode = element.childNodes[0];\n var foldWidget = element.childNodes[1];\n var annotationNode = element.childNodes[2];\n var annotationIconNode = annotationNode.firstChild;\n var firstLineNumber = session.$firstLineNumber;\n var breakpoints = session.$breakpoints;\n var decorations = session.$decorations;\n var gutterRenderer = session.gutterRenderer || this.$renderer;\n var foldWidgets = this.$showFoldWidgets && session.foldWidgets;\n var foldStart = fold ? fold.start.row : Number.MAX_VALUE;\n var lineHeight = config.lineHeight + \"px\";\n var className = this.$useSvgGutterIcons ? \"ace_gutter-cell_svg-icons \" : \"ace_gutter-cell \";\n var iconClassName = this.$useSvgGutterIcons ? \"ace_icon_svg\" : \"ace_icon\";\n var rowText = (gutterRenderer\n ? gutterRenderer.getText(session, row)\n : row + firstLineNumber).toString();\n if (this.$highlightGutterLine) {\n if (row == this.$cursorRow || (fold && row < this.$cursorRow && row >= foldStart && this.$cursorRow <= fold.end.row)) {\n className += \"ace_gutter-active-line \";\n if (this.$cursorCell != cell) {\n if (this.$cursorCell)\n this.$cursorCell.element.className = this.$cursorCell.element.className.replace(\"ace_gutter-active-line \", \"\");\n this.$cursorCell = cell;\n }\n }\n }\n if (breakpoints[row])\n className += breakpoints[row];\n if (decorations[row])\n className += decorations[row];\n if (this.$annotations[row] && row !== foldStart)\n className += this.$annotations[row].className;\n if (foldWidgets) {\n var c = foldWidgets[row];\n if (c == null)\n c = foldWidgets[row] = session.getFoldWidget(row);\n }\n if (c) {\n var foldClass = \"ace_fold-widget ace_\" + c;\n var isClosedFold = c == \"start\" && row == foldStart && row < fold.end.row;\n if (isClosedFold) {\n foldClass += \" ace_closed\";\n var foldAnnotationClass = '';\n var annotationInFold = false;\n for (var i = row + 1; i <= fold.end.row; i++) {\n if (!this.$annotations[i])\n continue;\n if (this.$annotations[i].className === \" ace_error\") {\n annotationInFold = true;\n foldAnnotationClass = \" ace_error_fold\";\n break;\n }\n if (this.$annotations[i].className === \" ace_warning\") {\n annotationInFold = true;\n foldAnnotationClass = \" ace_warning_fold\";\n continue;\n }\n }\n className += foldAnnotationClass;\n }\n else\n foldClass += \" ace_open\";\n if (foldWidget.className != foldClass)\n foldWidget.className = foldClass;\n dom.setStyle(foldWidget.style, \"height\", lineHeight);\n dom.setStyle(foldWidget.style, \"display\", \"inline-block\");\n foldWidget.setAttribute(\"role\", \"button\");\n foldWidget.setAttribute(\"tabindex\", \"-1\");\n var foldRange = session.getFoldWidgetRange(row);\n if (foldRange)\n foldWidget.setAttribute(\"aria-label\", nls(\"Toggle code folding, rows $0 through $1\", [foldRange.start.row + 1, foldRange.end.row + 1]));\n else {\n if (fold)\n foldWidget.setAttribute(\"aria-label\", nls(\"Toggle code folding, rows $0 through $1\", [fold.start.row + 1, fold.end.row + 1]));\n else\n foldWidget.setAttribute(\"aria-label\", nls(\"Toggle code folding, row $0\", [row + 1]));\n }\n if (isClosedFold) {\n foldWidget.setAttribute(\"aria-expanded\", \"false\");\n foldWidget.setAttribute(\"title\", nls(\"Unfold code\"));\n }\n else {\n foldWidget.setAttribute(\"aria-expanded\", \"true\");\n foldWidget.setAttribute(\"title\", nls(\"Fold code\"));\n }\n }\n else {\n if (foldWidget) {\n dom.setStyle(foldWidget.style, \"display\", \"none\");\n foldWidget.setAttribute(\"tabindex\", \"0\");\n foldWidget.removeAttribute(\"role\");\n foldWidget.removeAttribute(\"aria-label\");\n }\n }\n if (annotationInFold && this.$showFoldedAnnotations) {\n annotationNode.className = \"ace_gutter_annotation\";\n annotationIconNode.className = iconClassName;\n annotationIconNode.className += foldAnnotationClass;\n dom.setStyle(annotationIconNode.style, \"height\", lineHeight);\n dom.setStyle(annotationNode.style, \"display\", \"block\");\n dom.setStyle(annotationNode.style, \"height\", lineHeight);\n annotationNode.setAttribute(\"aria-label\", nls(\"Read annotations row $0\", [rowText]));\n annotationNode.setAttribute(\"tabindex\", \"-1\");\n annotationNode.setAttribute(\"role\", \"button\");\n }\n else if (this.$annotations[row]) {\n annotationNode.className = \"ace_gutter_annotation\";\n annotationIconNode.className = iconClassName;\n if (this.$useSvgGutterIcons)\n annotationIconNode.className += this.$annotations[row].className;\n else\n element.classList.add(this.$annotations[row].className.replace(\" \", \"\"));\n dom.setStyle(annotationIconNode.style, \"height\", lineHeight);\n dom.setStyle(annotationNode.style, \"display\", \"block\");\n dom.setStyle(annotationNode.style, \"height\", lineHeight);\n annotationNode.setAttribute(\"aria-label\", nls(\"Read annotations row $0\", [rowText]));\n annotationNode.setAttribute(\"tabindex\", \"-1\");\n annotationNode.setAttribute(\"role\", \"button\");\n }\n else {\n dom.setStyle(annotationNode.style, \"display\", \"none\");\n annotationNode.removeAttribute(\"aria-label\");\n annotationNode.removeAttribute(\"role\");\n annotationNode.setAttribute(\"tabindex\", \"0\");\n }\n if (rowText !== textNode.data) {\n textNode.data = rowText;\n }\n if (element.className != className)\n element.className = className;\n dom.setStyle(cell.element.style, \"height\", this.$lines.computeLineHeight(row, config, session) + \"px\");\n dom.setStyle(cell.element.style, \"top\", this.$lines.computeLineTop(row, config, session) + \"px\");\n cell.text = rowText;\n if (annotationNode.style.display === \"none\" && foldWidget.style.display === \"none\")\n cell.element.setAttribute(\"aria-hidden\", true);\n else\n cell.element.setAttribute(\"aria-hidden\", false);\n return cell;\n };\n Gutter.prototype.setHighlightGutterLine = function (highlightGutterLine) {\n this.$highlightGutterLine = highlightGutterLine;\n };\n Gutter.prototype.setShowLineNumbers = function (show) {\n this.$renderer = !show && {\n getWidth: function () { return 0; },\n getText: function () { return \"\"; }\n };\n };\n Gutter.prototype.getShowLineNumbers = function () {\n return this.$showLineNumbers;\n };\n Gutter.prototype.setShowFoldWidgets = function (show) {\n if (show)\n dom.addCssClass(this.element, \"ace_folding-enabled\");\n else\n dom.removeCssClass(this.element, \"ace_folding-enabled\");\n this.$showFoldWidgets = show;\n this.$padding = null;\n };\n Gutter.prototype.getShowFoldWidgets = function () {\n return this.$showFoldWidgets;\n };\n Gutter.prototype.$computePadding = function () {\n if (!this.element.firstChild)\n return { left: 0, right: 0 };\n var style = dom.computedStyle(this.element.firstChild);\n this.$padding = {};\n this.$padding.left = (parseInt(style.borderLeftWidth) || 0)\n + (parseInt(style.paddingLeft) || 0) + 1;\n this.$padding.right = (parseInt(style.borderRightWidth) || 0)\n + (parseInt(style.paddingRight) || 0);\n return this.$padding;\n };\n Gutter.prototype.getRegion = function (point) {\n var padding = this.$padding || this.$computePadding();\n var rect = this.element.getBoundingClientRect();\n if (point.x < padding.left + rect.left)\n return \"markers\";\n if (this.$showFoldWidgets && point.x > rect.right - padding.right)\n return \"foldWidgets\";\n };\n return Gutter;\n}());\nGutter.prototype.$fixedWidth = false;\nGutter.prototype.$highlightGutterLine = true;\nGutter.prototype.$renderer = \"\";\nGutter.prototype.$showLineNumbers = true;\nGutter.prototype.$showFoldWidgets = true;\noop.implement(Gutter.prototype, EventEmitter);\nfunction onCreateCell(element) {\n var textNode = document.createTextNode('');\n element.appendChild(textNode);\n var foldWidget = dom.createElement(\"span\");\n element.appendChild(foldWidget);\n var annotationNode = dom.createElement(\"span\");\n element.appendChild(annotationNode);\n var annotationIconNode = dom.createElement(\"span\");\n annotationNode.appendChild(annotationIconNode);\n return element;\n}\nexports.Gutter = Gutter;\n\n});\n\nace.define(\"ace/layer/marker\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar dom = require(\"../lib/dom\");\nvar Marker = /** @class */ (function () {\n function Marker(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_marker-layer\";\n parentEl.appendChild(this.element);\n }\n Marker.prototype.setPadding = function (padding) {\n this.$padding = padding;\n };\n Marker.prototype.setSession = function (session) {\n this.session = session;\n };\n Marker.prototype.setMarkers = function (markers) {\n this.markers = markers;\n };\n Marker.prototype.elt = function (className, css) {\n var x = this.i != -1 && this.element.childNodes[this.i];\n if (!x) {\n x = document.createElement(\"div\");\n this.element.appendChild(x);\n this.i = -1;\n }\n else {\n this.i++;\n }\n x.style.cssText = css;\n x.className = className;\n };\n Marker.prototype.update = function (config) {\n if (!config)\n return;\n this.config = config;\n this.i = 0;\n var html;\n for (var key in this.markers) {\n var marker = this.markers[key];\n if (!marker.range) {\n marker.update(html, this, this.session, config);\n continue;\n }\n var range = marker.range.clipRows(config.firstRow, config.lastRow);\n if (range.isEmpty())\n continue;\n range = range.toScreenRange(this.session);\n if (marker.renderer) {\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + range.start.column * config.characterWidth;\n marker.renderer(html, range, left, top, config);\n }\n else if (marker.type == \"fullLine\") {\n this.drawFullLineMarker(html, range, marker.clazz, config);\n }\n else if (marker.type == \"screenLine\") {\n this.drawScreenLineMarker(html, range, marker.clazz, config);\n }\n else if (range.isMultiLine()) {\n if (marker.type == \"text\")\n this.drawTextMarker(html, range, marker.clazz, config);\n else\n this.drawMultiLineMarker(html, range, marker.clazz, config);\n }\n else {\n this.drawSingleLineMarker(html, range, marker.clazz + \" ace_start\" + \" ace_br15\", config);\n }\n }\n if (this.i != -1) {\n while (this.i < this.element.childElementCount)\n this.element.removeChild(this.element.lastChild);\n }\n };\n Marker.prototype.$getTop = function (row, layerConfig) {\n return (row - layerConfig.firstRowScreen) * layerConfig.lineHeight;\n };\n Marker.prototype.drawTextMarker = function (stringBuilder, range, clazz, layerConfig, extraStyle) {\n var session = this.session;\n var start = range.start.row;\n var end = range.end.row;\n var row = start;\n var prev = 0;\n var curr = 0;\n var next = session.getScreenLastRowColumn(row);\n var lineRange = new Range(row, range.start.column, row, curr);\n for (; row <= end; row++) {\n lineRange.start.row = lineRange.end.row = row;\n lineRange.start.column = row == start ? range.start.column : session.getRowWrapIndent(row);\n lineRange.end.column = next;\n prev = curr;\n curr = next;\n next = row + 1 < end ? session.getScreenLastRowColumn(row + 1) : row == end ? 0 : range.end.column;\n this.drawSingleLineMarker(stringBuilder, lineRange, clazz + (row == start ? \" ace_start\" : \"\") + \" ace_br\"\n + getBorderClass(row == start || row == start + 1 && range.start.column, prev < curr, curr > next, row == end), layerConfig, row == end ? 0 : 1, extraStyle);\n }\n };\n Marker.prototype.drawMultiLineMarker = function (stringBuilder, range, clazz, config, extraStyle) {\n var padding = this.$padding;\n var height = config.lineHeight;\n var top = this.$getTop(range.start.row, config);\n var left = padding + range.start.column * config.characterWidth;\n extraStyle = extraStyle || \"\";\n if (this.session.$bidiHandler.isBidiRow(range.start.row)) {\n var range1 = range.clone();\n range1.end.row = range1.start.row;\n range1.end.column = this.session.getLine(range1.start.row).length;\n this.drawBidiSingleLineMarker(stringBuilder, range1, clazz + \" ace_br1 ace_start\", config, null, extraStyle);\n }\n else {\n this.elt(clazz + \" ace_br1 ace_start\", \"height:\" + height + \"px;\" + \"right:0;\" + \"top:\" + top + \"px;left:\" + left + \"px;\" + (extraStyle || \"\"));\n }\n if (this.session.$bidiHandler.isBidiRow(range.end.row)) {\n var range1 = range.clone();\n range1.start.row = range1.end.row;\n range1.start.column = 0;\n this.drawBidiSingleLineMarker(stringBuilder, range1, clazz + \" ace_br12\", config, null, extraStyle);\n }\n else {\n top = this.$getTop(range.end.row, config);\n var width = range.end.column * config.characterWidth;\n this.elt(clazz + \" ace_br12\", \"height:\" + height + \"px;\" +\n \"width:\" + width + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + padding + \"px;\" + (extraStyle || \"\"));\n }\n height = (range.end.row - range.start.row - 1) * config.lineHeight;\n if (height <= 0)\n return;\n top = this.$getTop(range.start.row + 1, config);\n var radiusClass = (range.start.column ? 1 : 0) | (range.end.column ? 0 : 8);\n this.elt(clazz + (radiusClass ? \" ace_br\" + radiusClass : \"\"), \"height:\" + height + \"px;\" +\n \"right:0;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + padding + \"px;\" + (extraStyle || \"\"));\n };\n Marker.prototype.drawSingleLineMarker = function (stringBuilder, range, clazz, config, extraLength, extraStyle) {\n if (this.session.$bidiHandler.isBidiRow(range.start.row))\n return this.drawBidiSingleLineMarker(stringBuilder, range, clazz, config, extraLength, extraStyle);\n var height = config.lineHeight;\n var width = (range.end.column + (extraLength || 0) - range.start.column) * config.characterWidth;\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + range.start.column * config.characterWidth;\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"width:\" + width + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + left + \"px;\" + (extraStyle || \"\"));\n };\n Marker.prototype.drawBidiSingleLineMarker = function (stringBuilder, range, clazz, config, extraLength, extraStyle) {\n var height = config.lineHeight, top = this.$getTop(range.start.row, config), padding = this.$padding;\n var selections = this.session.$bidiHandler.getSelections(range.start.column, range.end.column);\n selections.forEach(function (selection) {\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"width:\" + (selection.width + (extraLength || 0)) + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + (padding + selection.left) + \"px;\" + (extraStyle || \"\"));\n }, this);\n };\n Marker.prototype.drawFullLineMarker = function (stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n if (range.start.row != range.end.row)\n height += this.$getTop(range.end.row, config) - top;\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:0;right:0;\" + (extraStyle || \"\"));\n };\n Marker.prototype.drawScreenLineMarker = function (stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:0;right:0;\" + (extraStyle || \"\"));\n };\n return Marker;\n}());\nMarker.prototype.$padding = 0;\nfunction getBorderClass(tl, tr, br, bl) {\n return (tl ? 1 : 0) | (tr ? 2 : 0) | (br ? 4 : 0) | (bl ? 8 : 0);\n}\nexports.Marker = Marker;\n\n});\n\nace.define(\"ace/layer/text_util\",[\"require\",\"exports\",\"module\"], function(require, exports, module){// Tokens for which Ace just uses a simple TextNode and does not add any special className.\nvar textTokens = new Set([\"text\", \"rparen\", \"lparen\"]);\nexports.isTextToken = function (tokenType) {\n return textTokens.has(tokenType);\n};\n\n});\n\nace.define(\"ace/layer/text\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/layer/lines\",\"ace/lib/event_emitter\",\"ace/config\",\"ace/layer/text_util\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar Lines = require(\"./lines\").Lines;\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar nls = require(\"../config\").nls;\nvar isTextToken = require(\"./text_util\").isTextToken;\nvar Text = /** @class */ (function () {\n function Text(parentEl) {\n this.dom = dom;\n this.element = this.dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_text-layer\";\n parentEl.appendChild(this.element);\n this.$updateEolChar = this.$updateEolChar.bind(this);\n this.$lines = new Lines(this.element);\n }\n Text.prototype.$updateEolChar = function () {\n var doc = this.session.doc;\n var unixMode = doc.getNewLineCharacter() == \"\\n\" && doc.getNewLineMode() != \"windows\";\n var EOL_CHAR = unixMode ? this.EOL_CHAR_LF : this.EOL_CHAR_CRLF;\n if (this.EOL_CHAR != EOL_CHAR) {\n this.EOL_CHAR = EOL_CHAR;\n return true;\n }\n };\n Text.prototype.setPadding = function (padding) {\n this.$padding = padding;\n this.element.style.margin = \"0 \" + padding + \"px\";\n };\n Text.prototype.getLineHeight = function () {\n return this.$fontMetrics.$characterSize.height || 0;\n };\n Text.prototype.getCharacterWidth = function () {\n return this.$fontMetrics.$characterSize.width || 0;\n };\n Text.prototype.$setFontMetrics = function (measure) {\n this.$fontMetrics = measure;\n this.$fontMetrics.on(\"changeCharacterSize\", function (e) {\n this._signal(\"changeCharacterSize\", e);\n }.bind(this));\n this.$pollSizeChanges();\n };\n Text.prototype.checkForSizeChanges = function () {\n this.$fontMetrics.checkForSizeChanges();\n };\n Text.prototype.$pollSizeChanges = function () {\n return this.$pollSizeChangesTimer = this.$fontMetrics.$pollSizeChanges();\n };\n Text.prototype.setSession = function (session) {\n this.session = session;\n if (session)\n this.$computeTabString();\n };\n Text.prototype.setShowInvisibles = function (showInvisibles) {\n if (this.showInvisibles == showInvisibles)\n return false;\n this.showInvisibles = showInvisibles;\n if (typeof showInvisibles == \"string\") {\n this.showSpaces = /tab/i.test(showInvisibles);\n this.showTabs = /space/i.test(showInvisibles);\n this.showEOL = /eol/i.test(showInvisibles);\n }\n else {\n this.showSpaces = this.showTabs = this.showEOL = showInvisibles;\n }\n this.$computeTabString();\n return true;\n };\n Text.prototype.setDisplayIndentGuides = function (display) {\n if (this.displayIndentGuides == display)\n return false;\n this.displayIndentGuides = display;\n this.$computeTabString();\n return true;\n };\n Text.prototype.setHighlightIndentGuides = function (highlight) {\n if (this.$highlightIndentGuides === highlight)\n return false;\n this.$highlightIndentGuides = highlight;\n return highlight;\n };\n Text.prototype.$computeTabString = function () {\n var tabSize = this.session.getTabSize();\n this.tabSize = tabSize;\n var tabStr = this.$tabStrings = [0];\n for (var i = 1; i < tabSize + 1; i++) {\n if (this.showTabs) {\n var span = this.dom.createElement(\"span\");\n span.className = \"ace_invisible ace_invisible_tab\";\n span.textContent = lang.stringRepeat(this.TAB_CHAR, i);\n tabStr.push(span);\n }\n else {\n tabStr.push(this.dom.createTextNode(lang.stringRepeat(\" \", i), this.element));\n }\n }\n if (this.displayIndentGuides) {\n this.$indentGuideRe = /\\s\\S| \\t|\\t |\\s$/;\n var className = \"ace_indent-guide\";\n var spaceClass = this.showSpaces ? \" ace_invisible ace_invisible_space\" : \"\";\n var spaceContent = this.showSpaces\n ? lang.stringRepeat(this.SPACE_CHAR, this.tabSize)\n : lang.stringRepeat(\" \", this.tabSize);\n var tabClass = this.showTabs ? \" ace_invisible ace_invisible_tab\" : \"\";\n var tabContent = this.showTabs\n ? lang.stringRepeat(this.TAB_CHAR, this.tabSize)\n : spaceContent;\n var span = this.dom.createElement(\"span\");\n span.className = className + spaceClass;\n span.textContent = spaceContent;\n this.$tabStrings[\" \"] = span;\n var span = this.dom.createElement(\"span\");\n span.className = className + tabClass;\n span.textContent = tabContent;\n this.$tabStrings[\"\\t\"] = span;\n }\n };\n Text.prototype.updateLines = function (config, firstRow, lastRow) {\n if (this.config.lastRow != config.lastRow ||\n this.config.firstRow != config.firstRow) {\n return this.update(config);\n }\n this.config = config;\n var first = Math.max(firstRow, config.firstRow);\n var last = Math.min(lastRow, config.lastRow);\n var lineElements = this.element.childNodes;\n var lineElementsIdx = 0;\n for (var row = config.firstRow; row < first; row++) {\n var foldLine = this.session.getFoldLine(row);\n if (foldLine) {\n if (foldLine.containsRow(first)) {\n first = foldLine.start.row;\n break;\n }\n else {\n row = foldLine.end.row;\n }\n }\n lineElementsIdx++;\n }\n var heightChanged = false;\n var row = first;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row + 1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > last)\n break;\n var lineElement = lineElements[lineElementsIdx++];\n if (lineElement) {\n this.dom.removeChildren(lineElement);\n this.$renderLine(lineElement, row, row == foldStart ? foldLine : false);\n if (heightChanged)\n lineElement.style.top = this.$lines.computeLineTop(row, config, this.session) + \"px\";\n var height = (config.lineHeight * this.session.getRowLength(row)) + \"px\";\n if (lineElement.style.height != height) {\n heightChanged = true;\n lineElement.style.height = height;\n }\n }\n row++;\n }\n if (heightChanged) {\n while (lineElementsIdx < this.$lines.cells.length) {\n var cell = this.$lines.cells[lineElementsIdx++];\n cell.element.style.top = this.$lines.computeLineTop(cell.row, config, this.session) + \"px\";\n }\n }\n };\n Text.prototype.scrollLines = function (config) {\n var oldConfig = this.config;\n this.config = config;\n if (this.$lines.pageChanged(oldConfig, config))\n return this.update(config);\n this.$lines.moveContainer(config);\n var lastRow = config.lastRow;\n var oldLastRow = oldConfig ? oldConfig.lastRow : -1;\n if (!oldConfig || oldLastRow < config.firstRow)\n return this.update(config);\n if (lastRow < oldConfig.firstRow)\n return this.update(config);\n if (!oldConfig || oldConfig.lastRow < config.firstRow)\n return this.update(config);\n if (config.lastRow < oldConfig.firstRow)\n return this.update(config);\n if (oldConfig.firstRow < config.firstRow)\n for (var row = this.session.getFoldedRowCount(oldConfig.firstRow, config.firstRow - 1); row > 0; row--)\n this.$lines.shift();\n if (oldConfig.lastRow > config.lastRow)\n for (var row = this.session.getFoldedRowCount(config.lastRow + 1, oldConfig.lastRow); row > 0; row--)\n this.$lines.pop();\n if (config.firstRow < oldConfig.firstRow) {\n this.$lines.unshift(this.$renderLinesFragment(config, config.firstRow, oldConfig.firstRow - 1));\n }\n if (config.lastRow > oldConfig.lastRow) {\n this.$lines.push(this.$renderLinesFragment(config, oldConfig.lastRow + 1, config.lastRow));\n }\n this.$highlightIndentGuide();\n };\n Text.prototype.$renderLinesFragment = function (config, firstRow, lastRow) {\n var fragment = [];\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row + 1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > lastRow)\n break;\n var line = this.$lines.createCell(row, config, this.session);\n var lineEl = line.element;\n this.dom.removeChildren(lineEl);\n dom.setStyle(lineEl.style, \"height\", this.$lines.computeLineHeight(row, config, this.session) + \"px\");\n dom.setStyle(lineEl.style, \"top\", this.$lines.computeLineTop(row, config, this.session) + \"px\");\n this.$renderLine(lineEl, row, row == foldStart ? foldLine : false);\n if (this.$useLineGroups()) {\n lineEl.className = \"ace_line_group\";\n }\n else {\n lineEl.className = \"ace_line\";\n }\n fragment.push(line);\n row++;\n }\n return fragment;\n };\n Text.prototype.update = function (config) {\n this.$lines.moveContainer(config);\n this.config = config;\n var firstRow = config.firstRow;\n var lastRow = config.lastRow;\n var lines = this.$lines;\n while (lines.getLength())\n lines.pop();\n lines.push(this.$renderLinesFragment(config, firstRow, lastRow));\n };\n Text.prototype.$renderToken = function (parent, screenColumn, token, value) {\n var self = this;\n var re = /(\\t)|( +)|([\\x00-\\x1f\\x80-\\xa0\\xad\\u1680\\u180E\\u2000-\\u200f\\u2028\\u2029\\u202F\\u205F\\uFEFF\\uFFF9-\\uFFFC\\u2066\\u2067\\u2068\\u202A\\u202B\\u202D\\u202E\\u202C\\u2069]+)|(\\u3000)|([\\u1100-\\u115F\\u11A3-\\u11A7\\u11FA-\\u11FF\\u2329-\\u232A\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3001-\\u303E\\u3041-\\u3096\\u3099-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u3190-\\u31BA\\u31C0-\\u31E3\\u31F0-\\u321E\\u3220-\\u3247\\u3250-\\u32FE\\u3300-\\u4DBF\\u4E00-\\uA48C\\uA490-\\uA4C6\\uA960-\\uA97C\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFAFF\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE66\\uFE68-\\uFE6B\\uFF01-\\uFF60\\uFFE0-\\uFFE6]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF])/g;\n var valueFragment = this.dom.createFragment(this.element);\n var m;\n var i = 0;\n while (m = re.exec(value)) {\n var tab = m[1];\n var simpleSpace = m[2];\n var controlCharacter = m[3];\n var cjkSpace = m[4];\n var cjk = m[5];\n if (!self.showSpaces && simpleSpace)\n continue;\n var before = i != m.index ? value.slice(i, m.index) : \"\";\n i = m.index + m[0].length;\n if (before) {\n valueFragment.appendChild(this.dom.createTextNode(before, this.element));\n }\n if (tab) {\n var tabSize = self.session.getScreenTabSize(screenColumn + m.index);\n valueFragment.appendChild(self.$tabStrings[tabSize].cloneNode(true));\n screenColumn += tabSize - 1;\n }\n else if (simpleSpace) {\n if (self.showSpaces) {\n var span = this.dom.createElement(\"span\");\n span.className = \"ace_invisible ace_invisible_space\";\n span.textContent = lang.stringRepeat(self.SPACE_CHAR, simpleSpace.length);\n valueFragment.appendChild(span);\n }\n else {\n valueFragment.appendChild(this.dom.createTextNode(simpleSpace, this.element));\n }\n }\n else if (controlCharacter) {\n var span = this.dom.createElement(\"span\");\n span.className = \"ace_invisible ace_invisible_space ace_invalid\";\n span.textContent = lang.stringRepeat(self.SPACE_CHAR, controlCharacter.length);\n valueFragment.appendChild(span);\n }\n else if (cjkSpace) {\n screenColumn += 1;\n var span = this.dom.createElement(\"span\");\n span.style.width = (self.config.characterWidth * 2) + \"px\";\n span.className = self.showSpaces ? \"ace_cjk ace_invisible ace_invisible_space\" : \"ace_cjk\";\n span.textContent = self.showSpaces ? self.SPACE_CHAR : cjkSpace;\n valueFragment.appendChild(span);\n }\n else if (cjk) {\n screenColumn += 1;\n var span = this.dom.createElement(\"span\");\n span.style.width = (self.config.characterWidth * 2) + \"px\";\n span.className = \"ace_cjk\";\n span.textContent = cjk;\n valueFragment.appendChild(span);\n }\n }\n valueFragment.appendChild(this.dom.createTextNode(i ? value.slice(i) : value, this.element));\n if (!isTextToken(token.type)) {\n var classes = \"ace_\" + token.type.replace(/\\./g, \" ace_\");\n var span = this.dom.createElement(\"span\");\n if (token.type == \"fold\") {\n span.style.width = (token.value.length * this.config.characterWidth) + \"px\";\n span.setAttribute(\"title\", nls(\"Unfold code\"));\n }\n span.className = classes;\n span.appendChild(valueFragment);\n parent.appendChild(span);\n }\n else {\n parent.appendChild(valueFragment);\n }\n return screenColumn + value.length;\n };\n Text.prototype.renderIndentGuide = function (parent, value, max) {\n var cols = value.search(this.$indentGuideRe);\n if (cols <= 0 || cols >= max)\n return value;\n if (value[0] == \" \") {\n cols -= cols % this.tabSize;\n var count = cols / this.tabSize;\n for (var i = 0; i < count; i++) {\n parent.appendChild(this.$tabStrings[\" \"].cloneNode(true));\n }\n this.$highlightIndentGuide();\n return value.substr(cols);\n }\n else if (value[0] == \"\\t\") {\n for (var i = 0; i < cols; i++) {\n parent.appendChild(this.$tabStrings[\"\\t\"].cloneNode(true));\n }\n this.$highlightIndentGuide();\n return value.substr(cols);\n }\n this.$highlightIndentGuide();\n return value;\n };\n Text.prototype.$highlightIndentGuide = function () {\n if (!this.$highlightIndentGuides || !this.displayIndentGuides)\n return;\n this.$highlightIndentGuideMarker = {\n indentLevel: undefined,\n start: undefined,\n end: undefined,\n dir: undefined\n };\n var lines = this.session.doc.$lines;\n if (!lines)\n return;\n var cursor = this.session.selection.getCursor();\n var initialIndent = /^\\s*/.exec(this.session.doc.getLine(cursor.row))[0].length;\n var elementIndentLevel = Math.floor(initialIndent / this.tabSize);\n this.$highlightIndentGuideMarker = {\n indentLevel: elementIndentLevel,\n start: cursor.row\n };\n var bracketHighlight = this.session.$bracketHighlight;\n if (bracketHighlight) {\n var ranges = this.session.$bracketHighlight.ranges;\n for (var i = 0; i < ranges.length; i++) {\n if (cursor.row !== ranges[i].start.row) {\n this.$highlightIndentGuideMarker.end = ranges[i].start.row;\n if (cursor.row > ranges[i].start.row) {\n this.$highlightIndentGuideMarker.dir = -1;\n }\n else {\n this.$highlightIndentGuideMarker.dir = 1;\n }\n break;\n }\n }\n }\n if (!this.$highlightIndentGuideMarker.end) {\n if (lines[cursor.row] !== '' && cursor.column === lines[cursor.row].length) {\n this.$highlightIndentGuideMarker.dir = 1;\n for (var i = cursor.row + 1; i < lines.length; i++) {\n var line = lines[i];\n var currentIndent = /^\\s*/.exec(line)[0].length;\n if (line !== '') {\n this.$highlightIndentGuideMarker.end = i;\n if (currentIndent <= initialIndent)\n break;\n }\n }\n }\n }\n this.$renderHighlightIndentGuide();\n };\n Text.prototype.$clearActiveIndentGuide = function () {\n var cells = this.$lines.cells;\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n var childNodes = cell.element.childNodes;\n if (childNodes.length > 0) {\n for (var j = 0; j < childNodes.length; j++) {\n if (childNodes[j].classList && childNodes[j].classList.contains(\"ace_indent-guide-active\")) {\n childNodes[j].classList.remove(\"ace_indent-guide-active\");\n break;\n }\n }\n }\n }\n };\n Text.prototype.$setIndentGuideActive = function (cell, indentLevel) {\n var line = this.session.doc.getLine(cell.row);\n if (line !== \"\") {\n var childNodes = cell.element.childNodes;\n if (childNodes) {\n var node = childNodes[indentLevel - 1];\n if (node && node.classList && node.classList.contains(\"ace_indent-guide\"))\n node.classList.add(\"ace_indent-guide-active\");\n }\n }\n };\n Text.prototype.$renderHighlightIndentGuide = function () {\n if (!this.$lines)\n return;\n var cells = this.$lines.cells;\n this.$clearActiveIndentGuide();\n var indentLevel = this.$highlightIndentGuideMarker.indentLevel;\n if (indentLevel !== 0) {\n if (this.$highlightIndentGuideMarker.dir === 1) {\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n if (this.$highlightIndentGuideMarker.end && cell.row >= this.$highlightIndentGuideMarker.start\n + 1) {\n if (cell.row >= this.$highlightIndentGuideMarker.end)\n break;\n this.$setIndentGuideActive(cell, indentLevel);\n }\n }\n }\n else {\n for (var i = cells.length - 1; i >= 0; i--) {\n var cell = cells[i];\n if (this.$highlightIndentGuideMarker.end && cell.row < this.$highlightIndentGuideMarker.start) {\n if (cell.row <= this.$highlightIndentGuideMarker.end)\n break;\n this.$setIndentGuideActive(cell, indentLevel);\n }\n }\n }\n }\n };\n Text.prototype.$createLineElement = function (parent) {\n var lineEl = this.dom.createElement(\"div\");\n lineEl.className = \"ace_line\";\n lineEl.style.height = this.config.lineHeight + \"px\";\n return lineEl;\n };\n Text.prototype.$renderWrappedLine = function (parent, tokens, splits) {\n var chars = 0;\n var split = 0;\n var splitChars = splits[0];\n var screenColumn = 0;\n var lineEl = this.$createLineElement();\n parent.appendChild(lineEl);\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n var value = token.value;\n if (i == 0 && this.displayIndentGuides) {\n chars = value.length;\n value = this.renderIndentGuide(lineEl, value, splitChars);\n if (!value)\n continue;\n chars -= value.length;\n }\n if (chars + value.length < splitChars) {\n screenColumn = this.$renderToken(lineEl, screenColumn, token, value);\n chars += value.length;\n }\n else {\n while (chars + value.length >= splitChars) {\n screenColumn = this.$renderToken(lineEl, screenColumn, token, value.substring(0, splitChars - chars));\n value = value.substring(splitChars - chars);\n chars = splitChars;\n lineEl = this.$createLineElement();\n parent.appendChild(lineEl);\n lineEl.appendChild(this.dom.createTextNode(lang.stringRepeat(\"\\xa0\", splits.indent), this.element));\n split++;\n screenColumn = 0;\n splitChars = splits[split] || Number.MAX_VALUE;\n }\n if (value.length != 0) {\n chars += value.length;\n screenColumn = this.$renderToken(lineEl, screenColumn, token, value);\n }\n }\n }\n if (splits[splits.length - 1] > this.MAX_LINE_LENGTH)\n this.$renderOverflowMessage(lineEl, screenColumn, null, \"\", true);\n };\n Text.prototype.$renderSimpleLine = function (parent, tokens) {\n var screenColumn = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n var value = token.value;\n if (i == 0 && this.displayIndentGuides) {\n value = this.renderIndentGuide(parent, value);\n if (!value)\n continue;\n }\n if (screenColumn + value.length > this.MAX_LINE_LENGTH)\n return this.$renderOverflowMessage(parent, screenColumn, token, value);\n screenColumn = this.$renderToken(parent, screenColumn, token, value);\n }\n };\n Text.prototype.$renderOverflowMessage = function (parent, screenColumn, token, value, hide) {\n token && this.$renderToken(parent, screenColumn, token, value.slice(0, this.MAX_LINE_LENGTH - screenColumn));\n var overflowEl = this.dom.createElement(\"span\");\n overflowEl.className = \"ace_inline_button ace_keyword ace_toggle_wrap\";\n overflowEl.textContent = hide ? \"\" : \"\";\n parent.appendChild(overflowEl);\n };\n Text.prototype.$renderLine = function (parent, row, foldLine) {\n if (!foldLine && foldLine != false)\n foldLine = this.session.getFoldLine(row);\n if (foldLine)\n var tokens = this.$getFoldLineTokens(row, foldLine);\n else\n var tokens = this.session.getTokens(row);\n var lastLineEl = parent;\n if (tokens.length) {\n var splits = this.session.getRowSplitData(row);\n if (splits && splits.length) {\n this.$renderWrappedLine(parent, tokens, splits);\n var lastLineEl = parent.lastChild;\n }\n else {\n var lastLineEl = parent;\n if (this.$useLineGroups()) {\n lastLineEl = this.$createLineElement();\n parent.appendChild(lastLineEl);\n }\n this.$renderSimpleLine(lastLineEl, tokens);\n }\n }\n else if (this.$useLineGroups()) {\n lastLineEl = this.$createLineElement();\n parent.appendChild(lastLineEl);\n }\n if (this.showEOL && lastLineEl) {\n if (foldLine)\n row = foldLine.end.row;\n var invisibleEl = this.dom.createElement(\"span\");\n invisibleEl.className = \"ace_invisible ace_invisible_eol\";\n invisibleEl.textContent = row == this.session.getLength() - 1 ? this.EOF_CHAR : this.EOL_CHAR;\n lastLineEl.appendChild(invisibleEl);\n }\n };\n Text.prototype.$getFoldLineTokens = function (row, foldLine) {\n var session = this.session;\n var renderTokens = [];\n function addTokens(tokens, from, to) {\n var idx = 0, col = 0;\n while ((col + tokens[idx].value.length) < from) {\n col += tokens[idx].value.length;\n idx++;\n if (idx == tokens.length)\n return;\n }\n if (col != from) {\n var value = tokens[idx].value.substring(from - col);\n if (value.length > (to - from))\n value = value.substring(0, to - from);\n renderTokens.push({\n type: tokens[idx].type,\n value: value\n });\n col = from + value.length;\n idx += 1;\n }\n while (col < to && idx < tokens.length) {\n var value = tokens[idx].value;\n if (value.length + col > to) {\n renderTokens.push({\n type: tokens[idx].type,\n value: value.substring(0, to - col)\n });\n }\n else\n renderTokens.push(tokens[idx]);\n col += value.length;\n idx += 1;\n }\n }\n var tokens = session.getTokens(row);\n foldLine.walk(function (placeholder, row, column, lastColumn, isNewRow) {\n if (placeholder != null) {\n renderTokens.push({\n type: \"fold\",\n value: placeholder\n });\n }\n else {\n if (isNewRow)\n tokens = session.getTokens(row);\n if (tokens.length)\n addTokens(tokens, lastColumn, column);\n }\n }, foldLine.end.row, this.session.getLine(foldLine.end.row).length);\n return renderTokens;\n };\n Text.prototype.$useLineGroups = function () {\n return this.session.getUseWrapMode();\n };\n return Text;\n}());\nText.prototype.EOF_CHAR = \"\\xB6\";\nText.prototype.EOL_CHAR_LF = \"\\xAC\";\nText.prototype.EOL_CHAR_CRLF = \"\\xa4\";\nText.prototype.EOL_CHAR = Text.prototype.EOL_CHAR_LF;\nText.prototype.TAB_CHAR = \"\\u2014\"; //\"\\u21E5\";\nText.prototype.SPACE_CHAR = \"\\xB7\";\nText.prototype.$padding = 0;\nText.prototype.MAX_LINE_LENGTH = 10000;\nText.prototype.showInvisibles = false;\nText.prototype.showSpaces = false;\nText.prototype.showTabs = false;\nText.prototype.showEOL = false;\nText.prototype.displayIndentGuides = true;\nText.prototype.$highlightIndentGuides = true;\nText.prototype.$tabStrings = [];\nText.prototype.destroy = {};\nText.prototype.onChangeTabSize = Text.prototype.$computeTabString;\noop.implement(Text.prototype, EventEmitter);\nexports.Text = Text;\n\n});\n\nace.define(\"ace/layer/cursor\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar Cursor = /** @class */ (function () {\n function Cursor(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_cursor-layer\";\n parentEl.appendChild(this.element);\n this.isVisible = false;\n this.isBlinking = true;\n this.blinkInterval = 1000;\n this.smoothBlinking = false;\n this.cursors = [];\n this.cursor = this.addCursor();\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.$updateCursors = this.$updateOpacity.bind(this);\n }\n Cursor.prototype.$updateOpacity = function (val) {\n var cursors = this.cursors;\n for (var i = cursors.length; i--;)\n dom.setStyle(cursors[i].style, \"opacity\", val ? \"\" : \"0\");\n };\n Cursor.prototype.$startCssAnimation = function () {\n var cursors = this.cursors;\n for (var i = cursors.length; i--;)\n cursors[i].style.animationDuration = this.blinkInterval + \"ms\";\n this.$isAnimating = true;\n setTimeout(function () {\n if (this.$isAnimating) {\n dom.addCssClass(this.element, \"ace_animate-blinking\");\n }\n }.bind(this));\n };\n Cursor.prototype.$stopCssAnimation = function () {\n this.$isAnimating = false;\n dom.removeCssClass(this.element, \"ace_animate-blinking\");\n };\n Cursor.prototype.setPadding = function (padding) {\n this.$padding = padding;\n };\n Cursor.prototype.setSession = function (session) {\n this.session = session;\n };\n Cursor.prototype.setBlinking = function (blinking) {\n if (blinking != this.isBlinking) {\n this.isBlinking = blinking;\n this.restartTimer();\n }\n };\n Cursor.prototype.setBlinkInterval = function (blinkInterval) {\n if (blinkInterval != this.blinkInterval) {\n this.blinkInterval = blinkInterval;\n this.restartTimer();\n }\n };\n Cursor.prototype.setSmoothBlinking = function (smoothBlinking) {\n if (smoothBlinking != this.smoothBlinking) {\n this.smoothBlinking = smoothBlinking;\n dom.setCssClass(this.element, \"ace_smooth-blinking\", smoothBlinking);\n this.$updateCursors(true);\n this.restartTimer();\n }\n };\n Cursor.prototype.addCursor = function () {\n var el = dom.createElement(\"div\");\n el.className = \"ace_cursor\";\n this.element.appendChild(el);\n this.cursors.push(el);\n return el;\n };\n Cursor.prototype.removeCursor = function () {\n if (this.cursors.length > 1) {\n var el = this.cursors.pop();\n el.parentNode.removeChild(el);\n return el;\n }\n };\n Cursor.prototype.hideCursor = function () {\n this.isVisible = false;\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n Cursor.prototype.showCursor = function () {\n this.isVisible = true;\n dom.removeCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n Cursor.prototype.restartTimer = function () {\n var update = this.$updateCursors;\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n this.$stopCssAnimation();\n if (this.smoothBlinking) {\n this.$isSmoothBlinking = false;\n dom.removeCssClass(this.element, \"ace_smooth-blinking\");\n }\n update(true);\n if (!this.isBlinking || !this.blinkInterval || !this.isVisible) {\n this.$stopCssAnimation();\n return;\n }\n if (this.smoothBlinking) {\n this.$isSmoothBlinking = true;\n setTimeout(function () {\n if (this.$isSmoothBlinking) {\n dom.addCssClass(this.element, \"ace_smooth-blinking\");\n }\n }.bind(this));\n }\n if (dom.HAS_CSS_ANIMATION) {\n this.$startCssAnimation();\n }\n else {\n var blink = function () {\n this.timeoutId = setTimeout(function () {\n update(false);\n }, 0.6 * this.blinkInterval);\n }.bind(this);\n this.intervalId = setInterval(function () {\n update(true);\n blink();\n }, this.blinkInterval);\n blink();\n }\n };\n Cursor.prototype.getPixelPosition = function (position, onScreen) {\n if (!this.config || !this.session)\n return { left: 0, top: 0 };\n if (!position)\n position = this.session.selection.getCursor();\n var pos = this.session.documentToScreenPosition(position);\n var cursorLeft = this.$padding + (this.session.$bidiHandler.isBidiRow(pos.row, position.row)\n ? this.session.$bidiHandler.getPosLeft(pos.column)\n : pos.column * this.config.characterWidth);\n var cursorTop = (pos.row - (onScreen ? this.config.firstRowScreen : 0)) *\n this.config.lineHeight;\n return { left: cursorLeft, top: cursorTop };\n };\n Cursor.prototype.isCursorInView = function (pixelPos, config) {\n return pixelPos.top >= 0 && pixelPos.top < config.maxHeight;\n };\n Cursor.prototype.update = function (config) {\n this.config = config;\n var selections = this.session.$selectionMarkers;\n var i = 0, cursorIndex = 0;\n if (selections === undefined || selections.length === 0) {\n selections = [{ cursor: null }];\n }\n for (var i = 0, n = selections.length; i < n; i++) {\n var pixelPos = this.getPixelPosition(selections[i].cursor, true);\n if ((pixelPos.top > config.height + config.offset ||\n pixelPos.top < 0) && i > 1) {\n continue;\n }\n var element = this.cursors[cursorIndex++] || this.addCursor();\n var style = element.style;\n if (!this.drawCursor) {\n if (!this.isCursorInView(pixelPos, config)) {\n dom.setStyle(style, \"display\", \"none\");\n }\n else {\n dom.setStyle(style, \"display\", \"block\");\n dom.translate(element, pixelPos.left, pixelPos.top);\n dom.setStyle(style, \"width\", Math.round(config.characterWidth) + \"px\");\n dom.setStyle(style, \"height\", config.lineHeight + \"px\");\n }\n }\n else {\n this.drawCursor(element, pixelPos, config, selections[i], this.session);\n }\n }\n while (this.cursors.length > cursorIndex)\n this.removeCursor();\n var overwrite = this.session.getOverwrite();\n this.$setOverwrite(overwrite);\n this.$pixelPos = pixelPos;\n this.restartTimer();\n };\n Cursor.prototype.$setOverwrite = function (overwrite) {\n if (overwrite != this.overwrite) {\n this.overwrite = overwrite;\n if (overwrite)\n dom.addCssClass(this.element, \"ace_overwrite-cursors\");\n else\n dom.removeCssClass(this.element, \"ace_overwrite-cursors\");\n }\n };\n Cursor.prototype.destroy = function () {\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n };\n return Cursor;\n}());\nCursor.prototype.$padding = 0;\nCursor.prototype.drawCursor = null;\nexports.Cursor = Cursor;\n\n});\n\nace.define(\"ace/scrollbar\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar event = require(\"./lib/event\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar MAX_SCROLL_H = 0x8000;\nvar Scrollbar = /** @class */ (function () {\n function Scrollbar(parent, classSuffix) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_scrollbar ace_scrollbar\" + classSuffix;\n this.inner = dom.createElement(\"div\");\n this.inner.className = \"ace_scrollbar-inner\";\n this.inner.textContent = \"\\xa0\";\n this.element.appendChild(this.inner);\n parent.appendChild(this.element);\n this.setVisible(false);\n this.skipEvent = false;\n event.addListener(this.element, \"scroll\", this.onScroll.bind(this));\n event.addListener(this.element, \"mousedown\", event.preventDefault);\n }\n Scrollbar.prototype.setVisible = function (isVisible) {\n this.element.style.display = isVisible ? \"\" : \"none\";\n this.isVisible = isVisible;\n this.coeff = 1;\n };\n return Scrollbar;\n}());\noop.implement(Scrollbar.prototype, EventEmitter);\nvar VScrollBar = /** @class */ (function (_super) {\n __extends(VScrollBar, _super);\n function VScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-v') || this;\n _this.scrollTop = 0;\n _this.scrollHeight = 0;\n renderer.$scrollbarWidth =\n _this.width = dom.scrollbarWidth(parent.ownerDocument);\n _this.inner.style.width =\n _this.element.style.width = (_this.width || 15) + 5 + \"px\";\n _this.$minWidth = 0;\n return _this;\n }\n VScrollBar.prototype.onScroll = function () {\n if (!this.skipEvent) {\n this.scrollTop = this.element.scrollTop;\n if (this.coeff != 1) {\n var h = this.element.clientHeight / this.scrollHeight;\n this.scrollTop = this.scrollTop * (1 - h) / (this.coeff - h);\n }\n this._emit(\"scroll\", { data: this.scrollTop });\n }\n this.skipEvent = false;\n };\n VScrollBar.prototype.getWidth = function () {\n return Math.max(this.isVisible ? this.width : 0, this.$minWidth || 0);\n };\n VScrollBar.prototype.setHeight = function (height) {\n this.element.style.height = height + \"px\";\n };\n VScrollBar.prototype.setScrollHeight = function (height) {\n this.scrollHeight = height;\n if (height > MAX_SCROLL_H) {\n this.coeff = MAX_SCROLL_H / height;\n height = MAX_SCROLL_H;\n }\n else if (this.coeff != 1) {\n this.coeff = 1;\n }\n this.inner.style.height = height + \"px\";\n };\n VScrollBar.prototype.setScrollTop = function (scrollTop) {\n if (this.scrollTop != scrollTop) {\n this.skipEvent = true;\n this.scrollTop = scrollTop;\n this.element.scrollTop = scrollTop * this.coeff;\n }\n };\n return VScrollBar;\n}(Scrollbar));\nVScrollBar.prototype.setInnerHeight = VScrollBar.prototype.setScrollHeight;\nvar HScrollBar = /** @class */ (function (_super) {\n __extends(HScrollBar, _super);\n function HScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-h') || this;\n _this.scrollLeft = 0;\n _this.height = renderer.$scrollbarWidth;\n _this.inner.style.height =\n _this.element.style.height = (_this.height || 15) + 5 + \"px\";\n return _this;\n }\n HScrollBar.prototype.onScroll = function () {\n if (!this.skipEvent) {\n this.scrollLeft = this.element.scrollLeft;\n this._emit(\"scroll\", { data: this.scrollLeft });\n }\n this.skipEvent = false;\n };\n HScrollBar.prototype.getHeight = function () {\n return this.isVisible ? this.height : 0;\n };\n HScrollBar.prototype.setWidth = function (width) {\n this.element.style.width = width + \"px\";\n };\n HScrollBar.prototype.setInnerWidth = function (width) {\n this.inner.style.width = width + \"px\";\n };\n HScrollBar.prototype.setScrollWidth = function (width) {\n this.inner.style.width = width + \"px\";\n };\n HScrollBar.prototype.setScrollLeft = function (scrollLeft) {\n if (this.scrollLeft != scrollLeft) {\n this.skipEvent = true;\n this.scrollLeft = this.element.scrollLeft = scrollLeft;\n }\n };\n return HScrollBar;\n}(Scrollbar));\nexports.ScrollBar = VScrollBar; // backward compatibility\nexports.ScrollBarV = VScrollBar; // backward compatibility\nexports.ScrollBarH = HScrollBar; // backward compatibility\nexports.VScrollBar = VScrollBar;\nexports.HScrollBar = HScrollBar;\n\n});\n\nace.define(\"ace/scrollbar_custom\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar event = require(\"./lib/event\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\ndom.importCssString(\".ace_editor>.ace_sb-v div, .ace_editor>.ace_sb-h div{\\n position: absolute;\\n background: rgba(128, 128, 128, 0.6);\\n -moz-box-sizing: border-box;\\n box-sizing: border-box;\\n border: 1px solid #bbb;\\n border-radius: 2px;\\n z-index: 8;\\n}\\n.ace_editor>.ace_sb-v, .ace_editor>.ace_sb-h {\\n position: absolute;\\n z-index: 6;\\n background: none;\\n overflow: hidden!important;\\n}\\n.ace_editor>.ace_sb-v {\\n z-index: 6;\\n right: 0;\\n top: 0;\\n width: 12px;\\n}\\n.ace_editor>.ace_sb-v div {\\n z-index: 8;\\n right: 0;\\n width: 100%;\\n}\\n.ace_editor>.ace_sb-h {\\n bottom: 0;\\n left: 0;\\n height: 12px;\\n}\\n.ace_editor>.ace_sb-h div {\\n bottom: 0;\\n height: 100%;\\n}\\n.ace_editor>.ace_sb_grabbed {\\n z-index: 8;\\n background: #000;\\n}\", \"ace_scrollbar.css\", false);\nvar ScrollBar = /** @class */ (function () {\n function ScrollBar(parent, classSuffix) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_sb\" + classSuffix;\n this.inner = dom.createElement(\"div\");\n this.inner.className = \"\";\n this.element.appendChild(this.inner);\n this.VScrollWidth = 12;\n this.HScrollHeight = 12;\n parent.appendChild(this.element);\n this.setVisible(false);\n this.skipEvent = false;\n event.addMultiMouseDownListener(this.element, [500, 300, 300], this, \"onMouseDown\");\n }\n ScrollBar.prototype.setVisible = function (isVisible) {\n this.element.style.display = isVisible ? \"\" : \"none\";\n this.isVisible = isVisible;\n this.coeff = 1;\n };\n return ScrollBar;\n}());\noop.implement(ScrollBar.prototype, EventEmitter);\nvar VScrollBar = /** @class */ (function (_super) {\n __extends(VScrollBar, _super);\n function VScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-v') || this;\n _this.scrollTop = 0;\n _this.scrollHeight = 0;\n _this.parent = parent;\n _this.width = _this.VScrollWidth;\n _this.renderer = renderer;\n _this.inner.style.width = _this.element.style.width = (_this.width || 15) + \"px\";\n _this.$minWidth = 0;\n return _this;\n }\n VScrollBar.prototype.onMouseDown = function (eType, e) {\n if (eType !== \"mousedown\")\n return;\n if (event.getButton(e) !== 0 || e.detail === 2) {\n return;\n }\n if (e.target === this.inner) {\n var self = this;\n var mousePageY = e.clientY;\n var onMouseMove = function (e) {\n mousePageY = e.clientY;\n };\n var onMouseUp = function () {\n clearInterval(timerId);\n };\n var startY = e.clientY;\n var startTop = this.thumbTop;\n var onScrollInterval = function () {\n if (mousePageY === undefined)\n return;\n var scrollTop = self.scrollTopFromThumbTop(startTop + mousePageY - startY);\n if (scrollTop === self.scrollTop)\n return;\n self._emit(\"scroll\", { data: scrollTop });\n };\n event.capture(this.inner, onMouseMove, onMouseUp);\n var timerId = setInterval(onScrollInterval, 20);\n return event.preventDefault(e);\n }\n var top = e.clientY - this.element.getBoundingClientRect().top - this.thumbHeight / 2;\n this._emit(\"scroll\", { data: this.scrollTopFromThumbTop(top) });\n return event.preventDefault(e);\n };\n VScrollBar.prototype.getHeight = function () {\n return this.height;\n };\n VScrollBar.prototype.scrollTopFromThumbTop = function (thumbTop) {\n var scrollTop = thumbTop * (this.pageHeight - this.viewHeight) / (this.slideHeight - this.thumbHeight);\n scrollTop = scrollTop >> 0;\n if (scrollTop < 0) {\n scrollTop = 0;\n }\n else if (scrollTop > this.pageHeight - this.viewHeight) {\n scrollTop = this.pageHeight - this.viewHeight;\n }\n return scrollTop;\n };\n VScrollBar.prototype.getWidth = function () {\n return Math.max(this.isVisible ? this.width : 0, this.$minWidth || 0);\n };\n VScrollBar.prototype.setHeight = function (height) {\n this.height = Math.max(0, height);\n this.slideHeight = this.height;\n this.viewHeight = this.height;\n this.setScrollHeight(this.pageHeight, true);\n };\n VScrollBar.prototype.setScrollHeight = function (height, force) {\n if (this.pageHeight === height && !force)\n return;\n this.pageHeight = height;\n this.thumbHeight = this.slideHeight * this.viewHeight / this.pageHeight;\n if (this.thumbHeight > this.slideHeight)\n this.thumbHeight = this.slideHeight;\n if (this.thumbHeight < 15)\n this.thumbHeight = 15;\n this.inner.style.height = this.thumbHeight + \"px\";\n if (this.scrollTop > (this.pageHeight - this.viewHeight)) {\n this.scrollTop = (this.pageHeight - this.viewHeight);\n if (this.scrollTop < 0)\n this.scrollTop = 0;\n this._emit(\"scroll\", { data: this.scrollTop });\n }\n };\n VScrollBar.prototype.setScrollTop = function (scrollTop) {\n this.scrollTop = scrollTop;\n if (scrollTop < 0)\n scrollTop = 0;\n this.thumbTop = scrollTop * (this.slideHeight - this.thumbHeight) / (this.pageHeight - this.viewHeight);\n this.inner.style.top = this.thumbTop + \"px\";\n };\n return VScrollBar;\n}(ScrollBar));\nVScrollBar.prototype.setInnerHeight = VScrollBar.prototype.setScrollHeight;\nvar HScrollBar = /** @class */ (function (_super) {\n __extends(HScrollBar, _super);\n function HScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-h') || this;\n _this.scrollLeft = 0;\n _this.scrollWidth = 0;\n _this.height = _this.HScrollHeight;\n _this.inner.style.height = _this.element.style.height = (_this.height || 12) + \"px\";\n _this.renderer = renderer;\n return _this;\n }\n HScrollBar.prototype.onMouseDown = function (eType, e) {\n if (eType !== \"mousedown\")\n return;\n if (event.getButton(e) !== 0 || e.detail === 2) {\n return;\n }\n if (e.target === this.inner) {\n var self = this;\n var mousePageX = e.clientX;\n var onMouseMove = function (e) {\n mousePageX = e.clientX;\n };\n var onMouseUp = function () {\n clearInterval(timerId);\n };\n var startX = e.clientX;\n var startLeft = this.thumbLeft;\n var onScrollInterval = function () {\n if (mousePageX === undefined)\n return;\n var scrollLeft = self.scrollLeftFromThumbLeft(startLeft + mousePageX - startX);\n if (scrollLeft === self.scrollLeft)\n return;\n self._emit(\"scroll\", { data: scrollLeft });\n };\n event.capture(this.inner, onMouseMove, onMouseUp);\n var timerId = setInterval(onScrollInterval, 20);\n return event.preventDefault(e);\n }\n var left = e.clientX - this.element.getBoundingClientRect().left - this.thumbWidth / 2;\n this._emit(\"scroll\", { data: this.scrollLeftFromThumbLeft(left) });\n return event.preventDefault(e);\n };\n HScrollBar.prototype.getHeight = function () {\n return this.isVisible ? this.height : 0;\n };\n HScrollBar.prototype.scrollLeftFromThumbLeft = function (thumbLeft) {\n var scrollLeft = thumbLeft * (this.pageWidth - this.viewWidth) / (this.slideWidth - this.thumbWidth);\n scrollLeft = scrollLeft >> 0;\n if (scrollLeft < 0) {\n scrollLeft = 0;\n }\n else if (scrollLeft > this.pageWidth - this.viewWidth) {\n scrollLeft = this.pageWidth - this.viewWidth;\n }\n return scrollLeft;\n };\n HScrollBar.prototype.setWidth = function (width) {\n this.width = Math.max(0, width);\n this.element.style.width = this.width + \"px\";\n this.slideWidth = this.width;\n this.viewWidth = this.width;\n this.setScrollWidth(this.pageWidth, true);\n };\n HScrollBar.prototype.setScrollWidth = function (width, force) {\n if (this.pageWidth === width && !force)\n return;\n this.pageWidth = width;\n this.thumbWidth = this.slideWidth * this.viewWidth / this.pageWidth;\n if (this.thumbWidth > this.slideWidth)\n this.thumbWidth = this.slideWidth;\n if (this.thumbWidth < 15)\n this.thumbWidth = 15;\n this.inner.style.width = this.thumbWidth + \"px\";\n if (this.scrollLeft > (this.pageWidth - this.viewWidth)) {\n this.scrollLeft = (this.pageWidth - this.viewWidth);\n if (this.scrollLeft < 0)\n this.scrollLeft = 0;\n this._emit(\"scroll\", { data: this.scrollLeft });\n }\n };\n HScrollBar.prototype.setScrollLeft = function (scrollLeft) {\n this.scrollLeft = scrollLeft;\n if (scrollLeft < 0)\n scrollLeft = 0;\n this.thumbLeft = scrollLeft * (this.slideWidth - this.thumbWidth) / (this.pageWidth - this.viewWidth);\n this.inner.style.left = (this.thumbLeft) + \"px\";\n };\n return HScrollBar;\n}(ScrollBar));\nHScrollBar.prototype.setInnerWidth = HScrollBar.prototype.setScrollWidth;\nexports.ScrollBar = VScrollBar; // backward compatibility\nexports.ScrollBarV = VScrollBar; // backward compatibility\nexports.ScrollBarH = HScrollBar; // backward compatibility\nexports.VScrollBar = VScrollBar;\nexports.HScrollBar = HScrollBar;\n\n});\n\nace.define(\"ace/renderloop\",[\"require\",\"exports\",\"module\",\"ace/lib/event\"], function(require, exports, module){\"use strict\";\nvar event = require(\"./lib/event\");\nvar RenderLoop = /** @class */ (function () {\n function RenderLoop(onRender, win) {\n this.onRender = onRender;\n this.pending = false;\n this.changes = 0;\n this.$recursionLimit = 2;\n this.window = win || window;\n var _self = this;\n this._flush = function (ts) {\n _self.pending = false;\n var changes = _self.changes;\n if (changes) {\n event.blockIdle(100);\n _self.changes = 0;\n _self.onRender(changes);\n }\n if (_self.changes) {\n if (_self.$recursionLimit-- < 0)\n return;\n _self.schedule();\n }\n else {\n _self.$recursionLimit = 2;\n }\n };\n }\n RenderLoop.prototype.schedule = function (change) {\n this.changes = this.changes | change;\n if (this.changes && !this.pending) {\n event.nextFrame(this._flush);\n this.pending = true;\n }\n };\n RenderLoop.prototype.clear = function (change) {\n var changes = this.changes;\n this.changes = 0;\n return changes;\n };\n return RenderLoop;\n}());\nexports.RenderLoop = RenderLoop;\n\n});\n\nace.define(\"ace/layer/font_metrics\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar CHAR_COUNT = 512;\nvar USE_OBSERVER = typeof ResizeObserver == \"function\";\nvar L = 200;\nvar FontMetrics = /** @class */ (function () {\n function FontMetrics(parentEl) {\n this.el = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.el.style, true);\n this.$main = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$main.style);\n this.$measureNode = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$measureNode.style);\n this.el.appendChild(this.$main);\n this.el.appendChild(this.$measureNode);\n parentEl.appendChild(this.el);\n this.$measureNode.textContent = lang.stringRepeat(\"X\", CHAR_COUNT);\n this.$characterSize = { width: 0, height: 0 };\n if (USE_OBSERVER)\n this.$addObserver();\n else\n this.checkForSizeChanges();\n }\n FontMetrics.prototype.$setMeasureNodeStyles = function (style, isRoot) {\n style.width = style.height = \"auto\";\n style.left = style.top = \"0px\";\n style.visibility = \"hidden\";\n style.position = \"absolute\";\n style.whiteSpace = \"pre\";\n if (useragent.isIE < 8) {\n style[\"font-family\"] = \"inherit\";\n }\n else {\n style.font = \"inherit\";\n }\n style.overflow = isRoot ? \"hidden\" : \"visible\";\n };\n FontMetrics.prototype.checkForSizeChanges = function (size) {\n if (size === undefined)\n size = this.$measureSizes();\n if (size && (this.$characterSize.width !== size.width || this.$characterSize.height !== size.height)) {\n this.$measureNode.style.fontWeight = \"bold\";\n var boldSize = this.$measureSizes();\n this.$measureNode.style.fontWeight = \"\";\n this.$characterSize = size;\n this.charSizes = Object.create(null);\n this.allowBoldFonts = boldSize && boldSize.width === size.width && boldSize.height === size.height;\n this._emit(\"changeCharacterSize\", { data: size });\n }\n };\n FontMetrics.prototype.$addObserver = function () {\n var self = this;\n this.$observer = new window.ResizeObserver(function (e) {\n self.checkForSizeChanges();\n });\n this.$observer.observe(this.$measureNode);\n };\n FontMetrics.prototype.$pollSizeChanges = function () {\n if (this.$pollSizeChangesTimer || this.$observer)\n return this.$pollSizeChangesTimer;\n var self = this;\n return this.$pollSizeChangesTimer = event.onIdle(function cb() {\n self.checkForSizeChanges();\n event.onIdle(cb, 500);\n }, 500);\n };\n FontMetrics.prototype.setPolling = function (val) {\n if (val) {\n this.$pollSizeChanges();\n }\n else if (this.$pollSizeChangesTimer) {\n clearInterval(this.$pollSizeChangesTimer);\n this.$pollSizeChangesTimer = 0;\n }\n };\n FontMetrics.prototype.$measureSizes = function (node) {\n var size = {\n height: (node || this.$measureNode).clientHeight,\n width: (node || this.$measureNode).clientWidth / CHAR_COUNT\n };\n if (size.width === 0 || size.height === 0)\n return null;\n return size;\n };\n FontMetrics.prototype.$measureCharWidth = function (ch) {\n this.$main.textContent = lang.stringRepeat(ch, CHAR_COUNT);\n var rect = this.$main.getBoundingClientRect();\n return rect.width / CHAR_COUNT;\n };\n FontMetrics.prototype.getCharacterWidth = function (ch) {\n var w = this.charSizes[ch];\n if (w === undefined) {\n w = this.charSizes[ch] = this.$measureCharWidth(ch) / this.$characterSize.width;\n }\n return w;\n };\n FontMetrics.prototype.destroy = function () {\n clearInterval(this.$pollSizeChangesTimer);\n if (this.$observer)\n this.$observer.disconnect();\n if (this.el && this.el.parentNode)\n this.el.parentNode.removeChild(this.el);\n };\n FontMetrics.prototype.$getZoom = function (element) {\n if (!element || !element.parentElement)\n return 1;\n return (window.getComputedStyle(element).zoom || 1) * this.$getZoom(element.parentElement);\n };\n FontMetrics.prototype.$initTransformMeasureNodes = function () {\n var t = function (t, l) {\n return [\"div\", {\n style: \"position: absolute;top:\" + t + \"px;left:\" + l + \"px;\"\n }];\n };\n this.els = dom.buildDom([t(0, 0), t(L, 0), t(0, L), t(L, L)], this.el);\n };\n FontMetrics.prototype.transformCoordinates = function (clientPos, elPos) {\n if (clientPos) {\n var zoom = this.$getZoom(this.el);\n clientPos = mul(1 / zoom, clientPos);\n }\n function solve(l1, l2, r) {\n var det = l1[1] * l2[0] - l1[0] * l2[1];\n return [\n (-l2[1] * r[0] + l2[0] * r[1]) / det,\n (+l1[1] * r[0] - l1[0] * r[1]) / det\n ];\n }\n function sub(a, b) { return [a[0] - b[0], a[1] - b[1]]; }\n function add(a, b) { return [a[0] + b[0], a[1] + b[1]]; }\n function mul(a, b) { return [a * b[0], a * b[1]]; }\n if (!this.els)\n this.$initTransformMeasureNodes();\n function p(el) {\n var r = el.getBoundingClientRect();\n return [r.left, r.top];\n }\n var a = p(this.els[0]);\n var b = p(this.els[1]);\n var c = p(this.els[2]);\n var d = p(this.els[3]);\n var h = solve(sub(d, b), sub(d, c), sub(add(b, c), add(d, a)));\n var m1 = mul(1 + h[0], sub(b, a));\n var m2 = mul(1 + h[1], sub(c, a));\n if (elPos) {\n var x = elPos;\n var k = h[0] * x[0] / L + h[1] * x[1] / L + 1;\n var ut = add(mul(x[0], m1), mul(x[1], m2));\n return add(mul(1 / k / L, ut), a);\n }\n var u = sub(clientPos, a);\n var f = solve(sub(m1, mul(h[0], u)), sub(m2, mul(h[1], u)), u);\n return mul(L, f);\n };\n return FontMetrics;\n}());\nFontMetrics.prototype.$characterSize = { width: 0, height: 0 };\noop.implement(FontMetrics.prototype, EventEmitter);\nexports.FontMetrics = FontMetrics;\n\n});\n\nace.define(\"ace/css/editor-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){/*\nstyles = []\nfor (var i = 1; i < 16; i++) {\n styles.push(\".ace_br\" + i + \"{\" + (\n [\"top-left\", \"top-right\", \"bottom-right\", \"bottom-left\"]\n ).map(function(x, j) {\n return i & (1< .ace_line, .ace_text-layer > .ace_line_group {\\n contain: style size layout;\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n}\\n\\n.ace_hidpi .ace_text-layer,\\n.ace_hidpi .ace_gutter-layer,\\n.ace_hidpi .ace_content,\\n.ace_hidpi .ace_gutter {\\n contain: strict;\\n}\\n.ace_hidpi .ace_text-layer > .ace_line, \\n.ace_hidpi .ace_text-layer > .ace_line_group {\\n contain: strict;\\n}\\n\\n.ace_cjk {\\n display: inline-block;\\n text-align: center;\\n}\\n\\n.ace_cursor-layer {\\n z-index: 4;\\n}\\n\\n.ace_cursor {\\n z-index: 4;\\n position: absolute;\\n box-sizing: border-box;\\n border-left: 2px solid;\\n /* workaround for smooth cursor repaintng whole screen in chrome */\\n transform: translatez(0);\\n}\\n\\n.ace_multiselect .ace_cursor {\\n border-left-width: 1px;\\n}\\n\\n.ace_slim-cursors .ace_cursor {\\n border-left-width: 1px;\\n}\\n\\n.ace_overwrite-cursors .ace_cursor {\\n border-left-width: 0;\\n border-bottom: 1px solid;\\n}\\n\\n.ace_hidden-cursors .ace_cursor {\\n opacity: 0.2;\\n}\\n\\n.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor {\\n opacity: 0;\\n}\\n\\n.ace_smooth-blinking .ace_cursor {\\n transition: opacity 0.18s;\\n}\\n\\n.ace_animate-blinking .ace_cursor {\\n animation-duration: 1000ms;\\n animation-timing-function: step-end;\\n animation-name: blink-ace-animate;\\n animation-iteration-count: infinite;\\n}\\n\\n.ace_animate-blinking.ace_smooth-blinking .ace_cursor {\\n animation-duration: 1000ms;\\n animation-timing-function: ease-in-out;\\n animation-name: blink-ace-animate-smooth;\\n}\\n \\n@keyframes blink-ace-animate {\\n from, to { opacity: 1; }\\n 60% { opacity: 0; }\\n}\\n\\n@keyframes blink-ace-animate-smooth {\\n from, to { opacity: 1; }\\n 45% { opacity: 1; }\\n 60% { opacity: 0; }\\n 85% { opacity: 0; }\\n}\\n\\n.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\\n position: absolute;\\n z-index: 3;\\n}\\n\\n.ace_marker-layer .ace_selection {\\n position: absolute;\\n z-index: 5;\\n}\\n\\n.ace_marker-layer .ace_bracket {\\n position: absolute;\\n z-index: 6;\\n}\\n\\n.ace_marker-layer .ace_error_bracket {\\n position: absolute;\\n border-bottom: 1px solid #DE5555;\\n border-radius: 0;\\n}\\n\\n.ace_marker-layer .ace_active-line {\\n position: absolute;\\n z-index: 2;\\n}\\n\\n.ace_marker-layer .ace_selected-word {\\n position: absolute;\\n z-index: 4;\\n box-sizing: border-box;\\n}\\n\\n.ace_line .ace_fold {\\n box-sizing: border-box;\\n\\n display: inline-block;\\n height: 11px;\\n margin-top: -2px;\\n vertical-align: middle;\\n\\n background-image:\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=\\\");\\n background-repeat: no-repeat, repeat-x;\\n background-position: center center, top left;\\n color: transparent;\\n\\n border: 1px solid black;\\n border-radius: 2px;\\n\\n cursor: pointer;\\n pointer-events: auto;\\n}\\n\\n.ace_dark .ace_fold {\\n}\\n\\n.ace_fold:hover{\\n background-image:\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC\\\");\\n}\\n\\n.ace_tooltip {\\n background-color: #f5f5f5;\\n border: 1px solid gray;\\n border-radius: 1px;\\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\\n color: black;\\n max-width: 100%;\\n padding: 3px 4px;\\n position: fixed;\\n z-index: 999999;\\n box-sizing: border-box;\\n cursor: default;\\n white-space: pre-wrap;\\n word-wrap: break-word;\\n line-height: normal;\\n font-style: normal;\\n font-weight: normal;\\n letter-spacing: normal;\\n pointer-events: none;\\n overflow: auto;\\n max-width: min(60em, 66vw);\\n}\\n.ace_tooltip pre {\\n white-space: pre-wrap;\\n}\\n\\n.ace_tooltip.ace_dark {\\n background-color: #636363;\\n color: #fff;\\n}\\n\\n.ace_tooltip:focus {\\n outline: 1px solid #5E9ED6;\\n}\\n\\n.ace_icon {\\n display: inline-block;\\n width: 18px;\\n vertical-align: top;\\n}\\n\\n.ace_icon_svg {\\n display: inline-block;\\n width: 12px;\\n vertical-align: top;\\n -webkit-mask-repeat: no-repeat;\\n -webkit-mask-size: 12px;\\n -webkit-mask-position: center;\\n}\\n\\n.ace_folding-enabled > .ace_gutter-cell, .ace_folding-enabled > .ace_gutter-cell_svg-icons {\\n padding-right: 13px;\\n}\\n\\n.ace_fold-widget {\\n box-sizing: border-box;\\n\\n margin: 0 -12px 0 1px;\\n display: none;\\n width: 11px;\\n vertical-align: top;\\n\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==\\\");\\n background-repeat: no-repeat;\\n background-position: center;\\n\\n border-radius: 3px;\\n \\n border: 1px solid transparent;\\n cursor: pointer;\\n}\\n\\n.ace_folding-enabled .ace_fold-widget {\\n display: inline-block; \\n}\\n\\n.ace_fold-widget.ace_end {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==\\\");\\n}\\n\\n.ace_fold-widget.ace_closed {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==\\\");\\n}\\n\\n.ace_fold-widget:hover {\\n border: 1px solid rgba(0, 0, 0, 0.3);\\n background-color: rgba(255, 255, 255, 0.2);\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\\n}\\n\\n.ace_fold-widget:active {\\n border: 1px solid rgba(0, 0, 0, 0.4);\\n background-color: rgba(0, 0, 0, 0.05);\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\\n}\\n/**\\n * Dark version for fold widgets\\n */\\n.ace_dark .ace_fold-widget {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC\\\");\\n}\\n.ace_dark .ace_fold-widget.ace_end {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==\\\");\\n}\\n.ace_dark .ace_fold-widget.ace_closed {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==\\\");\\n}\\n.ace_dark .ace_fold-widget:hover {\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.ace_dark .ace_fold-widget:active {\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\n}\\n\\n.ace_inline_button {\\n border: 1px solid lightgray;\\n display: inline-block;\\n margin: -1px 8px;\\n padding: 0 5px;\\n pointer-events: auto;\\n cursor: pointer;\\n}\\n.ace_inline_button:hover {\\n border-color: gray;\\n background: rgba(200,200,200,0.2);\\n display: inline-block;\\n pointer-events: auto;\\n}\\n\\n.ace_fold-widget.ace_invalid {\\n background-color: #FFB4B4;\\n border-color: #DE5555;\\n}\\n\\n.ace_fade-fold-widgets .ace_fold-widget {\\n transition: opacity 0.4s ease 0.05s;\\n opacity: 0;\\n}\\n\\n.ace_fade-fold-widgets:hover .ace_fold-widget {\\n transition: opacity 0.05s ease 0.05s;\\n opacity:1;\\n}\\n\\n.ace_underline {\\n text-decoration: underline;\\n}\\n\\n.ace_bold {\\n font-weight: bold;\\n}\\n\\n.ace_nobold .ace_bold {\\n font-weight: normal;\\n}\\n\\n.ace_italic {\\n font-style: italic;\\n}\\n\\n\\n.ace_error-marker {\\n background-color: rgba(255, 0, 0,0.2);\\n position: absolute;\\n z-index: 9;\\n}\\n\\n.ace_highlight-marker {\\n background-color: rgba(255, 255, 0,0.2);\\n position: absolute;\\n z-index: 8;\\n}\\n\\n.ace_mobile-menu {\\n position: absolute;\\n line-height: 1.5;\\n border-radius: 4px;\\n -ms-user-select: none;\\n -moz-user-select: none;\\n -webkit-user-select: none;\\n user-select: none;\\n background: white;\\n box-shadow: 1px 3px 2px grey;\\n border: 1px solid #dcdcdc;\\n color: black;\\n}\\n.ace_dark > .ace_mobile-menu {\\n background: #333;\\n color: #ccc;\\n box-shadow: 1px 3px 2px grey;\\n border: 1px solid #444;\\n\\n}\\n.ace_mobile-button {\\n padding: 2px;\\n cursor: pointer;\\n overflow: hidden;\\n}\\n.ace_mobile-button:hover {\\n background-color: #eee;\\n opacity:1;\\n}\\n.ace_mobile-button:active {\\n background-color: #ddd;\\n}\\n\\n.ace_placeholder {\\n font-family: arial;\\n transform: scale(0.9);\\n transform-origin: left;\\n white-space: pre;\\n opacity: 0.7;\\n margin: 0 10px;\\n}\\n\\n.ace_ghost_text {\\n opacity: 0.5;\\n font-style: italic;\\n white-space: pre;\\n}\\n\\n.ace_screenreader-only {\\n position:absolute;\\n left:-10000px;\\n top:auto;\\n width:1px;\\n height:1px;\\n overflow:hidden;\\n}\";\n\n});\n\nace.define(\"ace/layer/decorators\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar oop = require(\"../lib/oop\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar Decorator = /** @class */ (function () {\n function Decorator(parent, renderer) {\n this.canvas = dom.createElement(\"canvas\");\n this.renderer = renderer;\n this.pixelRatio = 1;\n this.maxHeight = renderer.layerConfig.maxHeight;\n this.lineHeight = renderer.layerConfig.lineHeight;\n this.canvasHeight = parent.parent.scrollHeight;\n this.heightRatio = this.canvasHeight / this.maxHeight;\n this.canvasWidth = parent.width;\n this.minDecorationHeight = (2 * this.pixelRatio) | 0;\n this.halfMinDecorationHeight = (this.minDecorationHeight / 2) | 0;\n this.canvas.width = this.canvasWidth;\n this.canvas.height = this.canvasHeight;\n this.canvas.style.top = 0 + \"px\";\n this.canvas.style.right = 0 + \"px\";\n this.canvas.style.zIndex = 7 + \"px\";\n this.canvas.style.position = \"absolute\";\n this.colors = {};\n this.colors.dark = {\n \"error\": \"rgba(255, 18, 18, 1)\",\n \"warning\": \"rgba(18, 136, 18, 1)\",\n \"info\": \"rgba(18, 18, 136, 1)\"\n };\n this.colors.light = {\n \"error\": \"rgb(255,51,51)\",\n \"warning\": \"rgb(32,133,72)\",\n \"info\": \"rgb(35,68,138)\"\n };\n parent.element.appendChild(this.canvas);\n }\n Decorator.prototype.$updateDecorators = function (config) {\n var colors = (this.renderer.theme.isDark === true) ? this.colors.dark : this.colors.light;\n if (config) {\n this.maxHeight = config.maxHeight;\n this.lineHeight = config.lineHeight;\n this.canvasHeight = config.height;\n var allLineHeight = (config.lastRow + 1) * this.lineHeight;\n if (allLineHeight < this.canvasHeight) {\n this.heightRatio = 1;\n }\n else {\n this.heightRatio = this.canvasHeight / this.maxHeight;\n }\n }\n var ctx = this.canvas.getContext(\"2d\");\n function compare(a, b) {\n if (a.priority < b.priority)\n return -1;\n if (a.priority > b.priority)\n return 1;\n return 0;\n }\n var annotations = this.renderer.session.$annotations;\n ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n if (annotations) {\n var priorities = {\n \"info\": 1,\n \"warning\": 2,\n \"error\": 3\n };\n annotations.forEach(function (item) {\n item.priority = priorities[item.type] || null;\n });\n annotations = annotations.sort(compare);\n var foldData = this.renderer.session.$foldData;\n for (var i = 0; i < annotations.length; i++) {\n var row = annotations[i].row;\n var compensateFold = this.compensateFoldRows(row, foldData);\n var currentY = Math.round((row - compensateFold) * this.lineHeight * this.heightRatio);\n var y1 = Math.round(((row - compensateFold) * this.lineHeight * this.heightRatio));\n var y2 = Math.round((((row - compensateFold) * this.lineHeight + this.lineHeight) * this.heightRatio));\n var height = y2 - y1;\n if (height < this.minDecorationHeight) {\n var yCenter = ((y1 + y2) / 2) | 0;\n if (yCenter < this.halfMinDecorationHeight) {\n yCenter = this.halfMinDecorationHeight;\n }\n else if (yCenter + this.halfMinDecorationHeight > this.canvasHeight) {\n yCenter = this.canvasHeight - this.halfMinDecorationHeight;\n }\n y1 = Math.round(yCenter - this.halfMinDecorationHeight);\n y2 = Math.round(yCenter + this.halfMinDecorationHeight);\n }\n ctx.fillStyle = colors[annotations[i].type] || null;\n ctx.fillRect(0, currentY, this.canvasWidth, y2 - y1);\n }\n }\n var cursor = this.renderer.session.selection.getCursor();\n if (cursor) {\n var compensateFold = this.compensateFoldRows(cursor.row, foldData);\n var currentY = Math.round((cursor.row - compensateFold) * this.lineHeight * this.heightRatio);\n ctx.fillStyle = \"rgba(0, 0, 0, 0.5)\";\n ctx.fillRect(0, currentY, this.canvasWidth, 2);\n }\n };\n Decorator.prototype.compensateFoldRows = function (row, foldData) {\n var compensateFold = 0;\n if (foldData && foldData.length > 0) {\n for (var j = 0; j < foldData.length; j++) {\n if (row > foldData[j].start.row && row < foldData[j].end.row) {\n compensateFold += row - foldData[j].start.row;\n }\n else if (row >= foldData[j].end.row) {\n compensateFold += foldData[j].end.row - foldData[j].start.row;\n }\n }\n }\n return compensateFold;\n };\n return Decorator;\n}());\noop.implement(Decorator.prototype, EventEmitter);\nexports.Decorator = Decorator;\n\n});\n\nace.define(\"ace/virtual_renderer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/config\",\"ace/layer/gutter\",\"ace/layer/marker\",\"ace/layer/text\",\"ace/layer/cursor\",\"ace/scrollbar\",\"ace/scrollbar\",\"ace/scrollbar_custom\",\"ace/scrollbar_custom\",\"ace/renderloop\",\"ace/layer/font_metrics\",\"ace/lib/event_emitter\",\"ace/css/editor-css\",\"ace/layer/decorators\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar lang = require(\"./lib/lang\");\nvar config = require(\"./config\");\nvar GutterLayer = require(\"./layer/gutter\").Gutter;\nvar MarkerLayer = require(\"./layer/marker\").Marker;\nvar TextLayer = require(\"./layer/text\").Text;\nvar CursorLayer = require(\"./layer/cursor\").Cursor;\nvar HScrollBar = require(\"./scrollbar\").HScrollBar;\nvar VScrollBar = require(\"./scrollbar\").VScrollBar;\nvar HScrollBarCustom = require(\"./scrollbar_custom\").HScrollBar;\nvar VScrollBarCustom = require(\"./scrollbar_custom\").VScrollBar;\nvar RenderLoop = require(\"./renderloop\").RenderLoop;\nvar FontMetrics = require(\"./layer/font_metrics\").FontMetrics;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar editorCss = require(\"./css/editor-css\");\nvar Decorator = require(\"./layer/decorators\").Decorator;\nvar useragent = require(\"./lib/useragent\");\ndom.importCssString(editorCss, \"ace_editor.css\", false);\nvar VirtualRenderer = /** @class */ (function () {\n function VirtualRenderer(container, theme) {\n var _self = this;\n this.container = container || dom.createElement(\"div\");\n dom.addCssClass(this.container, \"ace_editor\");\n if (dom.HI_DPI)\n dom.addCssClass(this.container, \"ace_hidpi\");\n this.setTheme(theme);\n if (config.get(\"useStrictCSP\") == null)\n config.set(\"useStrictCSP\", false);\n this.$gutter = dom.createElement(\"div\");\n this.$gutter.className = \"ace_gutter\";\n this.container.appendChild(this.$gutter);\n this.$gutter.setAttribute(\"aria-hidden\", true);\n this.scroller = dom.createElement(\"div\");\n this.scroller.className = \"ace_scroller\";\n this.container.appendChild(this.scroller);\n this.content = dom.createElement(\"div\");\n this.content.className = \"ace_content\";\n this.scroller.appendChild(this.content);\n this.$gutterLayer = new GutterLayer(this.$gutter);\n this.$gutterLayer.on(\"changeGutterWidth\", this.onGutterResize.bind(this));\n this.$markerBack = new MarkerLayer(this.content);\n var textLayer = this.$textLayer = new TextLayer(this.content);\n this.canvas = textLayer.element;\n this.$markerFront = new MarkerLayer(this.content);\n this.$cursorLayer = new CursorLayer(this.content);\n this.$horizScroll = false;\n this.$vScroll = false;\n this.scrollBar =\n this.scrollBarV = new VScrollBar(this.container, this);\n this.scrollBarH = new HScrollBar(this.container, this);\n this.scrollBarV.on(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.on(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n this.scrollTop = 0;\n this.scrollLeft = 0;\n this.cursorPos = {\n row: 0,\n column: 0\n };\n this.$fontMetrics = new FontMetrics(this.container);\n this.$textLayer.$setFontMetrics(this.$fontMetrics);\n this.$textLayer.on(\"changeCharacterSize\", function (e) {\n _self.updateCharacterSize();\n _self.onResize(true, _self.gutterWidth, _self.$size.width, _self.$size.height);\n _self._signal(\"changeCharacterSize\", e);\n });\n this.$size = {\n width: 0,\n height: 0,\n scrollerHeight: 0,\n scrollerWidth: 0,\n $dirty: true\n };\n this.layerConfig = {\n width: 1,\n padding: 0,\n firstRow: 0,\n firstRowScreen: 0,\n lastRow: 0,\n lineHeight: 0,\n characterWidth: 0,\n minHeight: 1,\n maxHeight: 1,\n offset: 0,\n height: 1,\n gutterOffset: 1\n };\n this.scrollMargin = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n v: 0,\n h: 0\n };\n this.margin = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n v: 0,\n h: 0\n };\n this.$keepTextAreaAtCursor = !useragent.isIOS;\n this.$loop = new RenderLoop(this.$renderChanges.bind(this), this.container.ownerDocument.defaultView);\n this.$loop.schedule(this.CHANGE_FULL);\n this.updateCharacterSize();\n this.setPadding(4);\n this.$addResizeObserver();\n config.resetOptions(this);\n config._signal(\"renderer\", this);\n }\n VirtualRenderer.prototype.updateCharacterSize = function () {\n if (this.$textLayer.allowBoldFonts != this.$allowBoldFonts) {\n this.$allowBoldFonts = this.$textLayer.allowBoldFonts;\n this.setStyle(\"ace_nobold\", !this.$allowBoldFonts);\n }\n this.layerConfig.characterWidth =\n this.characterWidth = this.$textLayer.getCharacterWidth();\n this.layerConfig.lineHeight =\n this.lineHeight = this.$textLayer.getLineHeight();\n this.$updatePrintMargin();\n dom.setStyle(this.scroller.style, \"line-height\", this.lineHeight + \"px\");\n };\n VirtualRenderer.prototype.setSession = function (session) {\n if (this.session)\n this.session.doc.off(\"changeNewLineMode\", this.onChangeNewLineMode);\n this.session = session;\n if (session && this.scrollMargin.top && session.getScrollTop() <= 0)\n session.setScrollTop(-this.scrollMargin.top);\n this.$cursorLayer.setSession(session);\n this.$markerBack.setSession(session);\n this.$markerFront.setSession(session);\n this.$gutterLayer.setSession(session);\n this.$textLayer.setSession(session);\n if (!session)\n return;\n this.$loop.schedule(this.CHANGE_FULL);\n this.session.$setFontMetrics(this.$fontMetrics);\n this.scrollBarH.scrollLeft = this.scrollBarV.scrollTop = null;\n this.onChangeNewLineMode = this.onChangeNewLineMode.bind(this);\n this.onChangeNewLineMode();\n this.session.doc.on(\"changeNewLineMode\", this.onChangeNewLineMode);\n };\n VirtualRenderer.prototype.updateLines = function (firstRow, lastRow, force) {\n if (lastRow === undefined)\n lastRow = Infinity;\n if (!this.$changedLines) {\n this.$changedLines = {\n firstRow: firstRow,\n lastRow: lastRow\n };\n }\n else {\n if (this.$changedLines.firstRow > firstRow)\n this.$changedLines.firstRow = firstRow;\n if (this.$changedLines.lastRow < lastRow)\n this.$changedLines.lastRow = lastRow;\n }\n if (this.$changedLines.lastRow < this.layerConfig.firstRow) {\n if (force)\n this.$changedLines.lastRow = this.layerConfig.lastRow;\n else\n return;\n }\n if (this.$changedLines.firstRow > this.layerConfig.lastRow)\n return;\n this.$loop.schedule(this.CHANGE_LINES);\n };\n VirtualRenderer.prototype.onChangeNewLineMode = function () {\n this.$loop.schedule(this.CHANGE_TEXT);\n this.$textLayer.$updateEolChar();\n this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR);\n };\n VirtualRenderer.prototype.onChangeTabSize = function () {\n this.$loop.schedule(this.CHANGE_TEXT | this.CHANGE_MARKER);\n this.$textLayer.onChangeTabSize();\n };\n VirtualRenderer.prototype.updateText = function () {\n this.$loop.schedule(this.CHANGE_TEXT);\n };\n VirtualRenderer.prototype.updateFull = function (force) {\n if (force)\n this.$renderChanges(this.CHANGE_FULL, true);\n else\n this.$loop.schedule(this.CHANGE_FULL);\n };\n VirtualRenderer.prototype.updateFontSize = function () {\n this.$textLayer.checkForSizeChanges();\n };\n VirtualRenderer.prototype.$updateSizeAsync = function () {\n if (this.$loop.pending)\n this.$size.$dirty = true;\n else\n this.onResize();\n };\n VirtualRenderer.prototype.onResize = function (force, gutterWidth, width, height) {\n if (this.resizing > 2)\n return;\n else if (this.resizing > 0)\n this.resizing++;\n else\n this.resizing = force ? 1 : 0;\n var el = this.container;\n if (!height)\n height = el.clientHeight || el.scrollHeight;\n if (!width)\n width = el.clientWidth || el.scrollWidth;\n var changes = this.$updateCachedSize(force, gutterWidth, width, height);\n if (this.$resizeTimer)\n this.$resizeTimer.cancel();\n if (!this.$size.scrollerHeight || (!width && !height))\n return this.resizing = 0;\n if (force)\n this.$gutterLayer.$padding = null;\n if (force)\n this.$renderChanges(changes | this.$changes, true);\n else\n this.$loop.schedule(changes | this.$changes);\n if (this.resizing)\n this.resizing = 0;\n this.scrollBarH.scrollLeft = this.scrollBarV.scrollTop = null;\n if (this.$customScrollbar) {\n this.$updateCustomScrollbar(true);\n }\n };\n VirtualRenderer.prototype.$updateCachedSize = function (force, gutterWidth, width, height) {\n height -= (this.$extraHeight || 0);\n var changes = 0;\n var size = this.$size;\n var oldSize = {\n width: size.width,\n height: size.height,\n scrollerHeight: size.scrollerHeight,\n scrollerWidth: size.scrollerWidth\n };\n if (height && (force || size.height != height)) {\n size.height = height;\n changes |= this.CHANGE_SIZE;\n size.scrollerHeight = size.height;\n if (this.$horizScroll)\n size.scrollerHeight -= this.scrollBarH.getHeight();\n this.scrollBarV.setHeight(size.scrollerHeight);\n this.scrollBarV.element.style.bottom = this.scrollBarH.getHeight() + \"px\";\n changes = changes | this.CHANGE_SCROLL;\n }\n if (width && (force || size.width != width)) {\n changes |= this.CHANGE_SIZE;\n size.width = width;\n if (gutterWidth == null)\n gutterWidth = this.$showGutter ? this.$gutter.offsetWidth : 0;\n this.gutterWidth = gutterWidth;\n dom.setStyle(this.scrollBarH.element.style, \"left\", gutterWidth + \"px\");\n dom.setStyle(this.scroller.style, \"left\", gutterWidth + this.margin.left + \"px\");\n size.scrollerWidth = Math.max(0, width - gutterWidth - this.scrollBarV.getWidth() - this.margin.h);\n dom.setStyle(this.$gutter.style, \"left\", this.margin.left + \"px\");\n var right = this.scrollBarV.getWidth() + \"px\";\n dom.setStyle(this.scrollBarH.element.style, \"right\", right);\n dom.setStyle(this.scroller.style, \"right\", right);\n dom.setStyle(this.scroller.style, \"bottom\", this.scrollBarH.getHeight());\n this.scrollBarH.setWidth(size.scrollerWidth);\n if (this.session && this.session.getUseWrapMode() && this.adjustWrapLimit() || force) {\n changes |= this.CHANGE_FULL;\n }\n }\n size.$dirty = !width || !height;\n if (changes)\n this._signal(\"resize\", oldSize);\n return changes;\n };\n VirtualRenderer.prototype.onGutterResize = function (width) {\n var gutterWidth = this.$showGutter ? width : 0;\n if (gutterWidth != this.gutterWidth)\n this.$changes |= this.$updateCachedSize(true, gutterWidth, this.$size.width, this.$size.height);\n if (this.session.getUseWrapMode() && this.adjustWrapLimit()) {\n this.$loop.schedule(this.CHANGE_FULL);\n }\n else if (this.$size.$dirty) {\n this.$loop.schedule(this.CHANGE_FULL);\n }\n else {\n this.$computeLayerConfig();\n }\n };\n VirtualRenderer.prototype.adjustWrapLimit = function () {\n var availableWidth = this.$size.scrollerWidth - this.$padding * 2;\n var limit = Math.floor(availableWidth / this.characterWidth);\n return this.session.adjustWrapLimit(limit, this.$showPrintMargin && this.$printMarginColumn);\n };\n VirtualRenderer.prototype.setAnimatedScroll = function (shouldAnimate) {\n this.setOption(\"animatedScroll\", shouldAnimate);\n };\n VirtualRenderer.prototype.getAnimatedScroll = function () {\n return this.$animatedScroll;\n };\n VirtualRenderer.prototype.setShowInvisibles = function (showInvisibles) {\n this.setOption(\"showInvisibles\", showInvisibles);\n this.session.$bidiHandler.setShowInvisibles(showInvisibles);\n };\n VirtualRenderer.prototype.getShowInvisibles = function () {\n return this.getOption(\"showInvisibles\");\n };\n VirtualRenderer.prototype.getDisplayIndentGuides = function () {\n return this.getOption(\"displayIndentGuides\");\n };\n VirtualRenderer.prototype.setDisplayIndentGuides = function (display) {\n this.setOption(\"displayIndentGuides\", display);\n };\n VirtualRenderer.prototype.getHighlightIndentGuides = function () {\n return this.getOption(\"highlightIndentGuides\");\n };\n VirtualRenderer.prototype.setHighlightIndentGuides = function (highlight) {\n this.setOption(\"highlightIndentGuides\", highlight);\n };\n VirtualRenderer.prototype.setShowPrintMargin = function (showPrintMargin) {\n this.setOption(\"showPrintMargin\", showPrintMargin);\n };\n VirtualRenderer.prototype.getShowPrintMargin = function () {\n return this.getOption(\"showPrintMargin\");\n };\n VirtualRenderer.prototype.setPrintMarginColumn = function (showPrintMargin) {\n this.setOption(\"printMarginColumn\", showPrintMargin);\n };\n VirtualRenderer.prototype.getPrintMarginColumn = function () {\n return this.getOption(\"printMarginColumn\");\n };\n VirtualRenderer.prototype.getShowGutter = function () {\n return this.getOption(\"showGutter\");\n };\n VirtualRenderer.prototype.setShowGutter = function (show) {\n return this.setOption(\"showGutter\", show);\n };\n VirtualRenderer.prototype.getFadeFoldWidgets = function () {\n return this.getOption(\"fadeFoldWidgets\");\n };\n VirtualRenderer.prototype.setFadeFoldWidgets = function (show) {\n this.setOption(\"fadeFoldWidgets\", show);\n };\n VirtualRenderer.prototype.setHighlightGutterLine = function (shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n VirtualRenderer.prototype.getHighlightGutterLine = function () {\n return this.getOption(\"highlightGutterLine\");\n };\n VirtualRenderer.prototype.$updatePrintMargin = function () {\n if (!this.$showPrintMargin && !this.$printMarginEl)\n return;\n if (!this.$printMarginEl) {\n var containerEl = dom.createElement(\"div\");\n containerEl.className = \"ace_layer ace_print-margin-layer\";\n this.$printMarginEl = dom.createElement(\"div\");\n this.$printMarginEl.className = \"ace_print-margin\";\n containerEl.appendChild(this.$printMarginEl);\n this.content.insertBefore(containerEl, this.content.firstChild);\n }\n var style = this.$printMarginEl.style;\n style.left = Math.round(this.characterWidth * this.$printMarginColumn + this.$padding) + \"px\";\n style.visibility = this.$showPrintMargin ? \"visible\" : \"hidden\";\n if (this.session && this.session.$wrap == -1)\n this.adjustWrapLimit();\n };\n VirtualRenderer.prototype.getContainerElement = function () {\n return this.container;\n };\n VirtualRenderer.prototype.getMouseEventTarget = function () {\n return this.scroller;\n };\n VirtualRenderer.prototype.getTextAreaContainer = function () {\n return this.container;\n };\n VirtualRenderer.prototype.$moveTextAreaToCursor = function () {\n if (this.$isMousePressed)\n return;\n var style = this.textarea.style;\n var composition = this.$composition;\n if (!this.$keepTextAreaAtCursor && !composition) {\n dom.translate(this.textarea, -100, 0);\n return;\n }\n var pixelPos = this.$cursorLayer.$pixelPos;\n if (!pixelPos)\n return;\n if (composition && composition.markerRange)\n pixelPos = this.$cursorLayer.getPixelPosition(composition.markerRange.start, true);\n var config = this.layerConfig;\n var posTop = pixelPos.top;\n var posLeft = pixelPos.left;\n posTop -= config.offset;\n var h = composition && composition.useTextareaForIME || useragent.isMobile ? this.lineHeight : 1;\n if (posTop < 0 || posTop > config.height - h) {\n dom.translate(this.textarea, 0, 0);\n return;\n }\n var w = 1;\n var maxTop = this.$size.height - h;\n if (!composition) {\n posTop += this.lineHeight;\n }\n else {\n if (composition.useTextareaForIME) {\n var val = this.textarea.value;\n w = this.characterWidth * (this.session.$getStringScreenWidth(val)[0]);\n }\n else {\n posTop += this.lineHeight + 2;\n }\n }\n posLeft -= this.scrollLeft;\n if (posLeft > this.$size.scrollerWidth - w)\n posLeft = this.$size.scrollerWidth - w;\n posLeft += this.gutterWidth + this.margin.left;\n dom.setStyle(style, \"height\", h + \"px\");\n dom.setStyle(style, \"width\", w + \"px\");\n dom.translate(this.textarea, Math.min(posLeft, this.$size.scrollerWidth - w), Math.min(posTop, maxTop));\n };\n VirtualRenderer.prototype.getFirstVisibleRow = function () {\n return this.layerConfig.firstRow;\n };\n VirtualRenderer.prototype.getFirstFullyVisibleRow = function () {\n return this.layerConfig.firstRow + (this.layerConfig.offset === 0 ? 0 : 1);\n };\n VirtualRenderer.prototype.getLastFullyVisibleRow = function () {\n var config = this.layerConfig;\n var lastRow = config.lastRow;\n var top = this.session.documentToScreenRow(lastRow, 0) * config.lineHeight;\n if (top - this.session.getScrollTop() > config.height - config.lineHeight)\n return lastRow - 1;\n return lastRow;\n };\n VirtualRenderer.prototype.getLastVisibleRow = function () {\n return this.layerConfig.lastRow;\n };\n VirtualRenderer.prototype.setPadding = function (padding) {\n this.$padding = padding;\n this.$textLayer.setPadding(padding);\n this.$cursorLayer.setPadding(padding);\n this.$markerFront.setPadding(padding);\n this.$markerBack.setPadding(padding);\n this.$loop.schedule(this.CHANGE_FULL);\n this.$updatePrintMargin();\n };\n VirtualRenderer.prototype.setScrollMargin = function (top, bottom, left, right) {\n var sm = this.scrollMargin;\n sm.top = top | 0;\n sm.bottom = bottom | 0;\n sm.right = right | 0;\n sm.left = left | 0;\n sm.v = sm.top + sm.bottom;\n sm.h = sm.left + sm.right;\n if (sm.top && this.scrollTop <= 0 && this.session)\n this.session.setScrollTop(-sm.top);\n this.updateFull();\n };\n VirtualRenderer.prototype.setMargin = function (top, bottom, left, right) {\n var sm = this.margin;\n sm.top = top | 0;\n sm.bottom = bottom | 0;\n sm.right = right | 0;\n sm.left = left | 0;\n sm.v = sm.top + sm.bottom;\n sm.h = sm.left + sm.right;\n this.$updateCachedSize(true, this.gutterWidth, this.$size.width, this.$size.height);\n this.updateFull();\n };\n VirtualRenderer.prototype.getHScrollBarAlwaysVisible = function () {\n return this.$hScrollBarAlwaysVisible;\n };\n VirtualRenderer.prototype.setHScrollBarAlwaysVisible = function (alwaysVisible) {\n this.setOption(\"hScrollBarAlwaysVisible\", alwaysVisible);\n };\n VirtualRenderer.prototype.getVScrollBarAlwaysVisible = function () {\n return this.$vScrollBarAlwaysVisible;\n };\n VirtualRenderer.prototype.setVScrollBarAlwaysVisible = function (alwaysVisible) {\n this.setOption(\"vScrollBarAlwaysVisible\", alwaysVisible);\n };\n VirtualRenderer.prototype.$updateScrollBarV = function () {\n var scrollHeight = this.layerConfig.maxHeight;\n var scrollerHeight = this.$size.scrollerHeight;\n if (!this.$maxLines && this.$scrollPastEnd) {\n scrollHeight -= (scrollerHeight - this.lineHeight) * this.$scrollPastEnd;\n if (this.scrollTop > scrollHeight - scrollerHeight) {\n scrollHeight = this.scrollTop + scrollerHeight;\n this.scrollBarV.scrollTop = null;\n }\n }\n this.scrollBarV.setScrollHeight(scrollHeight + this.scrollMargin.v);\n this.scrollBarV.setScrollTop(this.scrollTop + this.scrollMargin.top);\n };\n VirtualRenderer.prototype.$updateScrollBarH = function () {\n this.scrollBarH.setScrollWidth(this.layerConfig.width + 2 * this.$padding + this.scrollMargin.h);\n this.scrollBarH.setScrollLeft(this.scrollLeft + this.scrollMargin.left);\n };\n VirtualRenderer.prototype.freeze = function () {\n this.$frozen = true;\n };\n VirtualRenderer.prototype.unfreeze = function () {\n this.$frozen = false;\n };\n VirtualRenderer.prototype.$renderChanges = function (changes, force) {\n if (this.$changes) {\n changes |= this.$changes;\n this.$changes = 0;\n }\n if ((!this.session || !this.container.offsetWidth || this.$frozen) || (!changes && !force)) {\n this.$changes |= changes;\n return;\n }\n if (this.$size.$dirty) {\n this.$changes |= changes;\n return this.onResize(true);\n }\n if (!this.lineHeight) {\n this.$textLayer.checkForSizeChanges();\n }\n this._signal(\"beforeRender\", changes);\n if (this.session && this.session.$bidiHandler)\n this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);\n var config = this.layerConfig;\n if (changes & this.CHANGE_FULL ||\n changes & this.CHANGE_SIZE ||\n changes & this.CHANGE_TEXT ||\n changes & this.CHANGE_LINES ||\n changes & this.CHANGE_SCROLL ||\n changes & this.CHANGE_H_SCROLL) {\n changes |= this.$computeLayerConfig() | this.$loop.clear();\n if (config.firstRow != this.layerConfig.firstRow && config.firstRowScreen == this.layerConfig.firstRowScreen) {\n var st = this.scrollTop + (config.firstRow - Math.max(this.layerConfig.firstRow, 0)) * this.lineHeight;\n if (st > 0) {\n this.scrollTop = st;\n changes = changes | this.CHANGE_SCROLL;\n changes |= this.$computeLayerConfig() | this.$loop.clear();\n }\n }\n config = this.layerConfig;\n this.$updateScrollBarV();\n if (changes & this.CHANGE_H_SCROLL)\n this.$updateScrollBarH();\n dom.translate(this.content, -this.scrollLeft, -config.offset);\n var width = config.width + 2 * this.$padding + \"px\";\n var height = config.minHeight + \"px\";\n dom.setStyle(this.content.style, \"width\", width);\n dom.setStyle(this.content.style, \"height\", height);\n }\n if (changes & this.CHANGE_H_SCROLL) {\n dom.translate(this.content, -this.scrollLeft, -config.offset);\n this.scroller.className = this.scrollLeft <= 0 ? \"ace_scroller \" : \"ace_scroller ace_scroll-left \";\n if (this.enableKeyboardAccessibility)\n this.scroller.className += this.keyboardFocusClassName;\n }\n if (changes & this.CHANGE_FULL) {\n this.$changedLines = null;\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this._signal(\"afterRender\", changes);\n return;\n }\n if (changes & this.CHANGE_SCROLL) {\n this.$changedLines = null;\n if (changes & this.CHANGE_TEXT || changes & this.CHANGE_LINES)\n this.$textLayer.update(config);\n else\n this.$textLayer.scrollLines(config);\n if (this.$showGutter) {\n if (changes & this.CHANGE_GUTTER || changes & this.CHANGE_LINES)\n this.$gutterLayer.update(config);\n else\n this.$gutterLayer.scrollLines(config);\n }\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this._signal(\"afterRender\", changes);\n return;\n }\n if (changes & this.CHANGE_TEXT) {\n this.$changedLines = null;\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n else if (changes & this.CHANGE_LINES) {\n if (this.$updateLines() || (changes & this.CHANGE_GUTTER) && this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n else if (changes & this.CHANGE_TEXT || changes & this.CHANGE_GUTTER) {\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n else if (changes & this.CHANGE_CURSOR) {\n if (this.$highlightGutterLine)\n this.$gutterLayer.updateLineHighlight(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n if (changes & this.CHANGE_CURSOR) {\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n }\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_FRONT)) {\n this.$markerFront.update(config);\n }\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_BACK)) {\n this.$markerBack.update(config);\n }\n this._signal(\"afterRender\", changes);\n };\n VirtualRenderer.prototype.$autosize = function () {\n var height = this.session.getScreenLength() * this.lineHeight;\n var maxHeight = this.$maxLines * this.lineHeight;\n var desiredHeight = Math.min(maxHeight, Math.max((this.$minLines || 1) * this.lineHeight, height)) + this.scrollMargin.v + (this.$extraHeight || 0);\n if (this.$horizScroll)\n desiredHeight += this.scrollBarH.getHeight();\n if (this.$maxPixelHeight && desiredHeight > this.$maxPixelHeight)\n desiredHeight = this.$maxPixelHeight;\n var hideScrollbars = desiredHeight <= 2 * this.lineHeight;\n var vScroll = !hideScrollbars && height > maxHeight;\n if (desiredHeight != this.desiredHeight ||\n this.$size.height != this.desiredHeight || vScroll != this.$vScroll) {\n if (vScroll != this.$vScroll) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n var w = this.container.clientWidth;\n this.container.style.height = desiredHeight + \"px\";\n this.$updateCachedSize(true, this.$gutterWidth, w, desiredHeight);\n this.desiredHeight = desiredHeight;\n this._signal(\"autosize\");\n }\n };\n VirtualRenderer.prototype.$computeLayerConfig = function () {\n var session = this.session;\n var size = this.$size;\n var hideScrollbars = size.height <= 2 * this.lineHeight;\n var screenLines = this.session.getScreenLength();\n var maxHeight = screenLines * this.lineHeight;\n var longestLine = this.$getLongestLine();\n var horizScroll = !hideScrollbars && (this.$hScrollBarAlwaysVisible ||\n size.scrollerWidth - longestLine - 2 * this.$padding < 0);\n var hScrollChanged = this.$horizScroll !== horizScroll;\n if (hScrollChanged) {\n this.$horizScroll = horizScroll;\n this.scrollBarH.setVisible(horizScroll);\n }\n var vScrollBefore = this.$vScroll; // autosize can change vscroll value in which case we need to update longestLine\n if (this.$maxLines && this.lineHeight > 1)\n this.$autosize();\n var minHeight = size.scrollerHeight + this.lineHeight;\n var scrollPastEnd = !this.$maxLines && this.$scrollPastEnd\n ? (size.scrollerHeight - this.lineHeight) * this.$scrollPastEnd\n : 0;\n maxHeight += scrollPastEnd;\n var sm = this.scrollMargin;\n this.session.setScrollTop(Math.max(-sm.top, Math.min(this.scrollTop, maxHeight - size.scrollerHeight + sm.bottom)));\n this.session.setScrollLeft(Math.max(-sm.left, Math.min(this.scrollLeft, longestLine + 2 * this.$padding - size.scrollerWidth + sm.right)));\n var vScroll = !hideScrollbars && (this.$vScrollBarAlwaysVisible ||\n size.scrollerHeight - maxHeight + scrollPastEnd < 0 || this.scrollTop > sm.top);\n var vScrollChanged = vScrollBefore !== vScroll;\n if (vScrollChanged) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n var offset = this.scrollTop % this.lineHeight;\n var lineCount = Math.ceil(minHeight / this.lineHeight) - 1;\n var firstRow = Math.max(0, Math.round((this.scrollTop - offset) / this.lineHeight));\n var lastRow = firstRow + lineCount;\n var firstRowScreen, firstRowHeight;\n var lineHeight = this.lineHeight;\n firstRow = session.screenToDocumentRow(firstRow, 0);\n var foldLine = session.getFoldLine(firstRow);\n if (foldLine) {\n firstRow = foldLine.start.row;\n }\n firstRowScreen = session.documentToScreenRow(firstRow, 0);\n firstRowHeight = session.getRowLength(firstRow) * lineHeight;\n lastRow = Math.min(session.screenToDocumentRow(lastRow, 0), session.getLength() - 1);\n minHeight = size.scrollerHeight + session.getRowLength(lastRow) * lineHeight +\n firstRowHeight;\n offset = this.scrollTop - firstRowScreen * lineHeight;\n var changes = 0;\n if (this.layerConfig.width != longestLine || hScrollChanged)\n changes = this.CHANGE_H_SCROLL;\n if (hScrollChanged || vScrollChanged) {\n changes |= this.$updateCachedSize(true, this.gutterWidth, size.width, size.height);\n this._signal(\"scrollbarVisibilityChanged\");\n if (vScrollChanged)\n longestLine = this.$getLongestLine();\n }\n this.layerConfig = {\n width: longestLine,\n padding: this.$padding,\n firstRow: firstRow,\n firstRowScreen: firstRowScreen,\n lastRow: lastRow,\n lineHeight: lineHeight,\n characterWidth: this.characterWidth,\n minHeight: minHeight,\n maxHeight: maxHeight,\n offset: offset,\n gutterOffset: lineHeight ? Math.max(0, Math.ceil((offset + size.height - size.scrollerHeight) / lineHeight)) : 0,\n height: this.$size.scrollerHeight\n };\n if (this.session.$bidiHandler)\n this.session.$bidiHandler.setContentWidth(longestLine - this.$padding);\n return changes;\n };\n VirtualRenderer.prototype.$updateLines = function () {\n if (!this.$changedLines)\n return;\n var firstRow = this.$changedLines.firstRow;\n var lastRow = this.$changedLines.lastRow;\n this.$changedLines = null;\n var layerConfig = this.layerConfig;\n if (firstRow > layerConfig.lastRow + 1) {\n return;\n }\n if (lastRow < layerConfig.firstRow) {\n return;\n }\n if (lastRow === Infinity) {\n if (this.$showGutter)\n this.$gutterLayer.update(layerConfig);\n this.$textLayer.update(layerConfig);\n return;\n }\n this.$textLayer.updateLines(layerConfig, firstRow, lastRow);\n return true;\n };\n VirtualRenderer.prototype.$getLongestLine = function () {\n var charCount = this.session.getScreenWidth();\n if (this.showInvisibles && !this.session.$useWrapMode)\n charCount += 1;\n if (this.$textLayer && charCount > this.$textLayer.MAX_LINE_LENGTH)\n charCount = this.$textLayer.MAX_LINE_LENGTH + 30;\n return Math.max(this.$size.scrollerWidth - 2 * this.$padding, Math.round(charCount * this.characterWidth));\n };\n VirtualRenderer.prototype.updateFrontMarkers = function () {\n this.$markerFront.setMarkers(this.session.getMarkers(true));\n this.$loop.schedule(this.CHANGE_MARKER_FRONT);\n };\n VirtualRenderer.prototype.updateBackMarkers = function () {\n this.$markerBack.setMarkers(this.session.getMarkers());\n this.$loop.schedule(this.CHANGE_MARKER_BACK);\n };\n VirtualRenderer.prototype.addGutterDecoration = function (row, className) {\n this.$gutterLayer.addGutterDecoration(row, className);\n };\n VirtualRenderer.prototype.removeGutterDecoration = function (row, className) {\n this.$gutterLayer.removeGutterDecoration(row, className);\n };\n VirtualRenderer.prototype.updateBreakpoints = function (rows) {\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n VirtualRenderer.prototype.setAnnotations = function (annotations) {\n this.$gutterLayer.setAnnotations(annotations);\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n VirtualRenderer.prototype.updateCursor = function () {\n this.$loop.schedule(this.CHANGE_CURSOR);\n };\n VirtualRenderer.prototype.hideCursor = function () {\n this.$cursorLayer.hideCursor();\n };\n VirtualRenderer.prototype.showCursor = function () {\n this.$cursorLayer.showCursor();\n };\n VirtualRenderer.prototype.scrollSelectionIntoView = function (anchor, lead, offset) {\n this.scrollCursorIntoView(anchor, offset);\n this.scrollCursorIntoView(lead, offset);\n };\n VirtualRenderer.prototype.scrollCursorIntoView = function (cursor, offset, $viewMargin) {\n if (this.$size.scrollerHeight === 0)\n return;\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n var newLeft = pos.left;\n var newTop = pos.top;\n var topMargin = $viewMargin && $viewMargin.top || 0;\n var bottomMargin = $viewMargin && $viewMargin.bottom || 0;\n if (this.$scrollAnimation) {\n this.$stopAnimation = true;\n }\n var currentTop = this.$scrollAnimation ? this.session.getScrollTop() : this.scrollTop;\n if (currentTop + topMargin > newTop) {\n if (offset && currentTop + topMargin > newTop + this.lineHeight)\n newTop -= offset * this.$size.scrollerHeight;\n if (newTop === 0)\n newTop = -this.scrollMargin.top;\n this.session.setScrollTop(newTop);\n }\n else if (currentTop + this.$size.scrollerHeight - bottomMargin < newTop + this.lineHeight) {\n if (offset && currentTop + this.$size.scrollerHeight - bottomMargin < newTop - this.lineHeight)\n newTop += offset * this.$size.scrollerHeight;\n this.session.setScrollTop(newTop + this.lineHeight + bottomMargin - this.$size.scrollerHeight);\n }\n var currentLeft = this.scrollLeft;\n var twoCharsWidth = 2 * this.layerConfig.characterWidth;\n if (newLeft - twoCharsWidth < currentLeft) {\n newLeft -= twoCharsWidth;\n if (newLeft < this.$padding + twoCharsWidth) {\n newLeft = -this.scrollMargin.left;\n }\n this.session.setScrollLeft(newLeft);\n }\n else {\n newLeft += twoCharsWidth;\n if (currentLeft + this.$size.scrollerWidth < newLeft + this.characterWidth) {\n this.session.setScrollLeft(Math.round(newLeft + this.characterWidth - this.$size.scrollerWidth));\n }\n else if (currentLeft <= this.$padding && newLeft - currentLeft < this.characterWidth) {\n this.session.setScrollLeft(0);\n }\n }\n };\n VirtualRenderer.prototype.getScrollTop = function () {\n return this.session.getScrollTop();\n };\n VirtualRenderer.prototype.getScrollLeft = function () {\n return this.session.getScrollLeft();\n };\n VirtualRenderer.prototype.getScrollTopRow = function () {\n return this.scrollTop / this.lineHeight;\n };\n VirtualRenderer.prototype.getScrollBottomRow = function () {\n return Math.max(0, Math.floor((this.scrollTop + this.$size.scrollerHeight) / this.lineHeight) - 1);\n };\n VirtualRenderer.prototype.scrollToRow = function (row) {\n this.session.setScrollTop(row * this.lineHeight);\n };\n VirtualRenderer.prototype.alignCursor = function (cursor, alignment) {\n if (typeof cursor == \"number\")\n cursor = { row: cursor, column: 0 };\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n var h = this.$size.scrollerHeight - this.lineHeight;\n var offset = pos.top - h * (alignment || 0);\n this.session.setScrollTop(offset);\n return offset;\n };\n VirtualRenderer.prototype.$calcSteps = function (fromValue, toValue) {\n var i = 0;\n var l = this.STEPS;\n var steps = [];\n var func = function (t, x_min, dx) {\n return dx * (Math.pow(t - 1, 3) + 1) + x_min;\n };\n for (i = 0; i < l; ++i)\n steps.push(func(i / this.STEPS, fromValue, toValue - fromValue));\n return steps;\n };\n VirtualRenderer.prototype.scrollToLine = function (line, center, animate, callback) {\n var pos = this.$cursorLayer.getPixelPosition({ row: line, column: 0 });\n var offset = pos.top;\n if (center)\n offset -= this.$size.scrollerHeight / 2;\n var initialScroll = this.scrollTop;\n this.session.setScrollTop(offset);\n if (animate !== false)\n this.animateScrolling(initialScroll, callback);\n };\n VirtualRenderer.prototype.animateScrolling = function (fromValue, callback) {\n var toValue = this.scrollTop;\n if (!this.$animatedScroll)\n return;\n var _self = this;\n if (fromValue == toValue)\n return;\n if (this.$scrollAnimation) {\n var oldSteps = this.$scrollAnimation.steps;\n if (oldSteps.length) {\n fromValue = oldSteps[0];\n if (fromValue == toValue)\n return;\n }\n }\n var steps = _self.$calcSteps(fromValue, toValue);\n this.$scrollAnimation = { from: fromValue, to: toValue, steps: steps };\n clearInterval(this.$timer);\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n function endAnimation() {\n _self.$timer = clearInterval(_self.$timer);\n _self.$scrollAnimation = null;\n _self.$stopAnimation = false;\n callback && callback();\n }\n this.$timer = setInterval(function () {\n if (_self.$stopAnimation) {\n endAnimation();\n return;\n }\n if (!_self.session)\n return clearInterval(_self.$timer);\n if (steps.length) {\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n }\n else if (toValue != null) {\n _self.session.$scrollTop = -1;\n _self.session.setScrollTop(toValue);\n toValue = null;\n }\n else {\n endAnimation();\n }\n }, 10);\n };\n VirtualRenderer.prototype.scrollToY = function (scrollTop) {\n if (this.scrollTop !== scrollTop) {\n this.$loop.schedule(this.CHANGE_SCROLL);\n this.scrollTop = scrollTop;\n }\n };\n VirtualRenderer.prototype.scrollToX = function (scrollLeft) {\n if (this.scrollLeft !== scrollLeft)\n this.scrollLeft = scrollLeft;\n this.$loop.schedule(this.CHANGE_H_SCROLL);\n };\n VirtualRenderer.prototype.scrollTo = function (x, y) {\n this.session.setScrollTop(y);\n this.session.setScrollLeft(x);\n };\n VirtualRenderer.prototype.scrollBy = function (deltaX, deltaY) {\n deltaY && this.session.setScrollTop(this.session.getScrollTop() + deltaY);\n deltaX && this.session.setScrollLeft(this.session.getScrollLeft() + deltaX);\n };\n VirtualRenderer.prototype.isScrollableBy = function (deltaX, deltaY) {\n if (deltaY < 0 && this.session.getScrollTop() >= 1 - this.scrollMargin.top)\n return true;\n if (deltaY > 0 && this.session.getScrollTop() + this.$size.scrollerHeight\n - this.layerConfig.maxHeight < -1 + this.scrollMargin.bottom)\n return true;\n if (deltaX < 0 && this.session.getScrollLeft() >= 1 - this.scrollMargin.left)\n return true;\n if (deltaX > 0 && this.session.getScrollLeft() + this.$size.scrollerWidth\n - this.layerConfig.width < -1 + this.scrollMargin.right)\n return true;\n };\n VirtualRenderer.prototype.pixelToScreenCoordinates = function (x, y) {\n var canvasPos;\n if (this.$hasCssTransforms) {\n canvasPos = { top: 0, left: 0 };\n var p = this.$fontMetrics.transformCoordinates([x, y]);\n x = p[1] - this.gutterWidth - this.margin.left;\n y = p[0];\n }\n else {\n canvasPos = this.scroller.getBoundingClientRect();\n }\n var offsetX = x + this.scrollLeft - canvasPos.left - this.$padding;\n var offset = offsetX / this.characterWidth;\n var row = Math.floor((y + this.scrollTop - canvasPos.top) / this.lineHeight);\n var col = this.$blockCursor ? Math.floor(offset) : Math.round(offset);\n return { row: row, column: col, side: offset - col > 0 ? 1 : -1, offsetX: offsetX };\n };\n VirtualRenderer.prototype.screenToTextCoordinates = function (x, y) {\n var canvasPos;\n if (this.$hasCssTransforms) {\n canvasPos = { top: 0, left: 0 };\n var p = this.$fontMetrics.transformCoordinates([x, y]);\n x = p[1] - this.gutterWidth - this.margin.left;\n y = p[0];\n }\n else {\n canvasPos = this.scroller.getBoundingClientRect();\n }\n var offsetX = x + this.scrollLeft - canvasPos.left - this.$padding;\n var offset = offsetX / this.characterWidth;\n var col = this.$blockCursor ? Math.floor(offset) : Math.round(offset);\n var row = Math.floor((y + this.scrollTop - canvasPos.top) / this.lineHeight);\n return this.session.screenToDocumentPosition(row, Math.max(col, 0), offsetX);\n };\n VirtualRenderer.prototype.textToScreenCoordinates = function (row, column) {\n var canvasPos = this.scroller.getBoundingClientRect();\n var pos = this.session.documentToScreenPosition(row, column);\n var x = this.$padding + (this.session.$bidiHandler.isBidiRow(pos.row, row)\n ? this.session.$bidiHandler.getPosLeft(pos.column)\n : Math.round(pos.column * this.characterWidth));\n var y = pos.row * this.lineHeight;\n return {\n pageX: canvasPos.left + x - this.scrollLeft,\n pageY: canvasPos.top + y - this.scrollTop\n };\n };\n VirtualRenderer.prototype.visualizeFocus = function () {\n dom.addCssClass(this.container, \"ace_focus\");\n };\n VirtualRenderer.prototype.visualizeBlur = function () {\n dom.removeCssClass(this.container, \"ace_focus\");\n };\n VirtualRenderer.prototype.showComposition = function (composition) {\n this.$composition = composition;\n if (!composition.cssText) {\n composition.cssText = this.textarea.style.cssText;\n }\n if (composition.useTextareaForIME == undefined)\n composition.useTextareaForIME = this.$useTextareaForIME;\n if (this.$useTextareaForIME) {\n dom.addCssClass(this.textarea, \"ace_composition\");\n this.textarea.style.cssText = \"\";\n this.$moveTextAreaToCursor();\n this.$cursorLayer.element.style.display = \"none\";\n }\n else {\n composition.markerId = this.session.addMarker(composition.markerRange, \"ace_composition_marker\", \"text\");\n }\n };\n VirtualRenderer.prototype.setCompositionText = function (text) {\n var cursor = this.session.selection.cursor;\n this.addToken(text, \"composition_placeholder\", cursor.row, cursor.column);\n this.$moveTextAreaToCursor();\n };\n VirtualRenderer.prototype.hideComposition = function () {\n if (!this.$composition)\n return;\n if (this.$composition.markerId)\n this.session.removeMarker(this.$composition.markerId);\n dom.removeCssClass(this.textarea, \"ace_composition\");\n this.textarea.style.cssText = this.$composition.cssText;\n var cursor = this.session.selection.cursor;\n this.removeExtraToken(cursor.row, cursor.column);\n this.$composition = null;\n this.$cursorLayer.element.style.display = \"\";\n };\n VirtualRenderer.prototype.setGhostText = function (text, position) {\n var cursor = this.session.selection.cursor;\n var insertPosition = position || { row: cursor.row, column: cursor.column };\n this.removeGhostText();\n var textLines = text.split(\"\\n\");\n this.addToken(textLines[0], \"ghost_text\", insertPosition.row, insertPosition.column);\n this.$ghostText = {\n text: text,\n position: {\n row: insertPosition.row,\n column: insertPosition.column\n }\n };\n if (textLines.length > 1) {\n this.$ghostTextWidget = {\n text: textLines.slice(1).join(\"\\n\"),\n row: insertPosition.row,\n column: insertPosition.column,\n className: \"ace_ghost_text\"\n };\n this.session.widgetManager.addLineWidget(this.$ghostTextWidget);\n var pixelPosition = this.$cursorLayer.getPixelPosition(insertPosition, true);\n var el = this.container;\n var height = el.getBoundingClientRect().height;\n var ghostTextHeight = textLines.length * this.lineHeight;\n var fitsY = ghostTextHeight < height - pixelPosition.top;\n if (fitsY)\n return;\n if (ghostTextHeight < height) {\n this.scrollBy(0, (textLines.length - 1) * this.lineHeight);\n }\n else {\n this.scrollBy(0, pixelPosition.top);\n }\n }\n };\n VirtualRenderer.prototype.removeGhostText = function () {\n if (!this.$ghostText)\n return;\n var position = this.$ghostText.position;\n this.removeExtraToken(position.row, position.column);\n if (this.$ghostTextWidget) {\n this.session.widgetManager.removeLineWidget(this.$ghostTextWidget);\n this.$ghostTextWidget = null;\n }\n this.$ghostText = null;\n };\n VirtualRenderer.prototype.addToken = function (text, type, row, column) {\n var session = this.session;\n session.bgTokenizer.lines[row] = null;\n var newToken = { type: type, value: text };\n var tokens = session.getTokens(row);\n if (column == null || !tokens.length) {\n tokens.push(newToken);\n }\n else {\n var l = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n l += token.value.length;\n if (column <= l) {\n var diff = token.value.length - (l - column);\n var before = token.value.slice(0, diff);\n var after = token.value.slice(diff);\n tokens.splice(i, 1, { type: token.type, value: before }, newToken, { type: token.type, value: after });\n break;\n }\n }\n }\n this.updateLines(row, row);\n };\n VirtualRenderer.prototype.removeExtraToken = function (row, column) {\n this.session.bgTokenizer.lines[row] = null;\n this.updateLines(row, row);\n };\n VirtualRenderer.prototype.setTheme = function (theme, cb) {\n var _self = this;\n this.$themeId = theme;\n _self._dispatchEvent('themeChange', { theme: theme });\n if (!theme || typeof theme == \"string\") {\n var moduleName = theme || this.$options.theme.initialValue;\n config.loadModule([\"theme\", moduleName], afterLoad);\n }\n else {\n afterLoad(theme);\n }\n function afterLoad(module) {\n if (_self.$themeId != theme)\n return cb && cb();\n if (!module || !module.cssClass)\n throw new Error(\"couldn't load module \" + theme + \" or it didn't call define\");\n if (module.$id)\n _self.$themeId = module.$id;\n dom.importCssString(module.cssText, module.cssClass, _self.container);\n if (_self.theme)\n dom.removeCssClass(_self.container, _self.theme.cssClass);\n var padding = \"padding\" in module ? module.padding\n : \"padding\" in (_self.theme || {}) ? 4 : _self.$padding;\n if (_self.$padding && padding != _self.$padding)\n _self.setPadding(padding);\n _self.$theme = module.cssClass;\n _self.theme = module;\n dom.addCssClass(_self.container, module.cssClass);\n dom.setCssClass(_self.container, \"ace_dark\", module.isDark);\n if (_self.$size) {\n _self.$size.width = 0;\n _self.$updateSizeAsync();\n }\n _self._dispatchEvent('themeLoaded', { theme: module });\n cb && cb();\n }\n };\n VirtualRenderer.prototype.getTheme = function () {\n return this.$themeId;\n };\n VirtualRenderer.prototype.setStyle = function (style, include) {\n dom.setCssClass(this.container, style, include !== false);\n };\n VirtualRenderer.prototype.unsetStyle = function (style) {\n dom.removeCssClass(this.container, style);\n };\n VirtualRenderer.prototype.setCursorStyle = function (style) {\n dom.setStyle(this.scroller.style, \"cursor\", style);\n };\n VirtualRenderer.prototype.setMouseCursor = function (cursorStyle) {\n dom.setStyle(this.scroller.style, \"cursor\", cursorStyle);\n };\n VirtualRenderer.prototype.attachToShadowRoot = function () {\n dom.importCssString(editorCss, \"ace_editor.css\", this.container);\n };\n VirtualRenderer.prototype.destroy = function () {\n this.freeze();\n this.$fontMetrics.destroy();\n this.$cursorLayer.destroy();\n this.removeAllListeners();\n this.container.textContent = \"\";\n this.setOption(\"useResizeObserver\", false);\n };\n VirtualRenderer.prototype.$updateCustomScrollbar = function (val) {\n var _self = this;\n this.$horizScroll = this.$vScroll = null;\n this.scrollBarV.element.remove();\n this.scrollBarH.element.remove();\n if (this.$scrollDecorator) {\n delete this.$scrollDecorator;\n }\n if (val === true) {\n this.scrollBarV = new VScrollBarCustom(this.container, this);\n this.scrollBarH = new HScrollBarCustom(this.container, this);\n this.scrollBarV.setHeight(this.$size.scrollerHeight);\n this.scrollBarH.setWidth(this.$size.scrollerWidth);\n this.scrollBarV.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n this.$scrollDecorator = new Decorator(this.scrollBarV, this);\n this.$scrollDecorator.$updateDecorators();\n }\n else {\n this.scrollBarV = new VScrollBar(this.container, this);\n this.scrollBarH = new HScrollBar(this.container, this);\n this.scrollBarV.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n }\n };\n VirtualRenderer.prototype.$addResizeObserver = function () {\n if (!window.ResizeObserver || this.$resizeObserver)\n return;\n var self = this;\n this.$resizeTimer = lang.delayedCall(function () {\n if (!self.destroyed)\n self.onResize();\n }, 50);\n this.$resizeObserver = new window.ResizeObserver(function (e) {\n var w = e[0].contentRect.width;\n var h = e[0].contentRect.height;\n if (Math.abs(self.$size.width - w) > 1\n || Math.abs(self.$size.height - h) > 1) {\n self.$resizeTimer.delay();\n }\n else {\n self.$resizeTimer.cancel();\n }\n });\n this.$resizeObserver.observe(this.container);\n };\n return VirtualRenderer;\n}());\nVirtualRenderer.prototype.CHANGE_CURSOR = 1;\nVirtualRenderer.prototype.CHANGE_MARKER = 2;\nVirtualRenderer.prototype.CHANGE_GUTTER = 4;\nVirtualRenderer.prototype.CHANGE_SCROLL = 8;\nVirtualRenderer.prototype.CHANGE_LINES = 16;\nVirtualRenderer.prototype.CHANGE_TEXT = 32;\nVirtualRenderer.prototype.CHANGE_SIZE = 64;\nVirtualRenderer.prototype.CHANGE_MARKER_BACK = 128;\nVirtualRenderer.prototype.CHANGE_MARKER_FRONT = 256;\nVirtualRenderer.prototype.CHANGE_FULL = 512;\nVirtualRenderer.prototype.CHANGE_H_SCROLL = 1024;\nVirtualRenderer.prototype.$changes = 0;\nVirtualRenderer.prototype.$padding = null;\nVirtualRenderer.prototype.$frozen = false;\nVirtualRenderer.prototype.STEPS = 8;\noop.implement(VirtualRenderer.prototype, EventEmitter);\nconfig.defineOptions(VirtualRenderer.prototype, \"renderer\", {\n useResizeObserver: {\n set: function (value) {\n if (!value && this.$resizeObserver) {\n this.$resizeObserver.disconnect();\n this.$resizeTimer.cancel();\n this.$resizeTimer = this.$resizeObserver = null;\n }\n else if (value && !this.$resizeObserver) {\n this.$addResizeObserver();\n }\n }\n },\n animatedScroll: { initialValue: false },\n showInvisibles: {\n set: function (value) {\n if (this.$textLayer.setShowInvisibles(value))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: false\n },\n showPrintMargin: {\n set: function () { this.$updatePrintMargin(); },\n initialValue: true\n },\n printMarginColumn: {\n set: function () { this.$updatePrintMargin(); },\n initialValue: 80\n },\n printMargin: {\n set: function (val) {\n if (typeof val == \"number\")\n this.$printMarginColumn = val;\n this.$showPrintMargin = !!val;\n this.$updatePrintMargin();\n },\n get: function () {\n return this.$showPrintMargin && this.$printMarginColumn;\n }\n },\n showGutter: {\n set: function (show) {\n this.$gutter.style.display = show ? \"block\" : \"none\";\n this.$loop.schedule(this.CHANGE_FULL);\n this.onGutterResize();\n },\n initialValue: true\n },\n useSvgGutterIcons: {\n set: function (value) {\n this.$gutterLayer.$useSvgGutterIcons = value;\n },\n initialValue: false\n },\n showFoldedAnnotations: {\n set: function (value) {\n this.$gutterLayer.$showFoldedAnnotations = value;\n },\n initialValue: false\n },\n fadeFoldWidgets: {\n set: function (show) {\n dom.setCssClass(this.$gutter, \"ace_fade-fold-widgets\", show);\n },\n initialValue: false\n },\n showFoldWidgets: {\n set: function (show) {\n this.$gutterLayer.setShowFoldWidgets(show);\n this.$loop.schedule(this.CHANGE_GUTTER);\n },\n initialValue: true\n },\n displayIndentGuides: {\n set: function (show) {\n if (this.$textLayer.setDisplayIndentGuides(show))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: true\n },\n highlightIndentGuides: {\n set: function (show) {\n if (this.$textLayer.setHighlightIndentGuides(show) == true) {\n this.$textLayer.$highlightIndentGuide();\n }\n else {\n this.$textLayer.$clearActiveIndentGuide(this.$textLayer.$lines.cells);\n }\n },\n initialValue: true\n },\n highlightGutterLine: {\n set: function (shouldHighlight) {\n this.$gutterLayer.setHighlightGutterLine(shouldHighlight);\n this.$loop.schedule(this.CHANGE_GUTTER);\n },\n initialValue: true\n },\n hScrollBarAlwaysVisible: {\n set: function (val) {\n if (!this.$hScrollBarAlwaysVisible || !this.$horizScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n vScrollBarAlwaysVisible: {\n set: function (val) {\n if (!this.$vScrollBarAlwaysVisible || !this.$vScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n fontSize: {\n set: function (size) {\n if (typeof size == \"number\")\n size = size + \"px\";\n this.container.style.fontSize = size;\n this.updateFontSize();\n },\n initialValue: 12\n },\n fontFamily: {\n set: function (name) {\n this.container.style.fontFamily = name;\n this.updateFontSize();\n }\n },\n maxLines: {\n set: function (val) {\n this.updateFull();\n }\n },\n minLines: {\n set: function (val) {\n if (!(this.$minLines < 0x1ffffffffffff))\n this.$minLines = 0;\n this.updateFull();\n }\n },\n maxPixelHeight: {\n set: function (val) {\n this.updateFull();\n },\n initialValue: 0\n },\n scrollPastEnd: {\n set: function (val) {\n val = +val || 0;\n if (this.$scrollPastEnd == val)\n return;\n this.$scrollPastEnd = val;\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: 0,\n handlesSet: true\n },\n fixedWidthGutter: {\n set: function (val) {\n this.$gutterLayer.$fixedWidth = !!val;\n this.$loop.schedule(this.CHANGE_GUTTER);\n }\n },\n customScrollbar: {\n set: function (val) {\n this.$updateCustomScrollbar(val);\n },\n initialValue: false\n },\n theme: {\n set: function (val) { this.setTheme(val); },\n get: function () { return this.$themeId || this.theme; },\n initialValue: \"./theme/textmate\",\n handlesSet: true\n },\n hasCssTransforms: {},\n useTextareaForIME: {\n initialValue: !useragent.isMobile && !useragent.isIE\n }\n});\nexports.VirtualRenderer = VirtualRenderer;\n\n});\n\nace.define(\"ace/worker/worker_client\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/net\",\"ace/lib/event_emitter\",\"ace/config\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar net = require(\"../lib/net\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar config = require(\"../config\");\n\nfunction $workerBlob(workerUrl) {\n var script = \"importScripts('\" + net.qualifyURL(workerUrl) + \"');\";\n try {\n return new Blob([script], {\"type\": \"application/javascript\"});\n } catch (e) { // Backwards-compatibility\n var BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;\n var blobBuilder = new BlobBuilder();\n blobBuilder.append(script);\n return blobBuilder.getBlob(\"application/javascript\");\n }\n}\n\nfunction createWorker(workerUrl) {\n if (typeof Worker == \"undefined\")\n return { postMessage: function() {}, terminate: function() {} };\n if (config.get(\"loadWorkerFromBlob\")) {\n var blob = $workerBlob(workerUrl);\n var URL = window.URL || window.webkitURL;\n var blobURL = URL.createObjectURL(blob);\n return new Worker(blobURL);\n }\n return new Worker(workerUrl);\n}\n\nvar WorkerClient = function(worker) {\n if (!worker.postMessage)\n worker = this.$createWorkerFromOldConfig.apply(this, arguments);\n\n this.$worker = worker;\n this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this);\n this.changeListener = this.changeListener.bind(this);\n this.onMessage = this.onMessage.bind(this);\n\n this.callbackId = 1;\n this.callbacks = {};\n\n this.$worker.onmessage = this.onMessage;\n};\n\n(function(){\n\n oop.implement(this, EventEmitter);\n\n this.$createWorkerFromOldConfig = function(topLevelNamespaces, mod, classname, workerUrl, importScripts) {\n if (require.nameToUrl && !require.toUrl)\n require.toUrl = require.nameToUrl;\n\n if (config.get(\"packaged\") || !require.toUrl) {\n workerUrl = workerUrl || config.moduleUrl(mod, \"worker\");\n } else {\n var normalizePath = this.$normalizePath;\n workerUrl = workerUrl || normalizePath(require.toUrl(\"ace/worker/worker.js\", null, \"_\"));\n\n var tlns = {};\n topLevelNamespaces.forEach(function(ns) {\n tlns[ns] = normalizePath(require.toUrl(ns, null, \"_\").replace(/(\\.js)?(\\?.*)?$/, \"\"));\n });\n }\n\n this.$worker = createWorker(workerUrl);\n if (importScripts) {\n this.send(\"importScripts\", importScripts);\n }\n this.$worker.postMessage({\n init : true,\n tlns : tlns,\n module : mod,\n classname : classname\n });\n return this.$worker;\n };\n\n this.onMessage = function(e) {\n var msg = e.data;\n switch (msg.type) {\n case \"event\":\n this._signal(msg.name, {data: msg.data});\n break;\n case \"call\":\n var callback = this.callbacks[msg.id];\n if (callback) {\n callback(msg.data);\n delete this.callbacks[msg.id];\n }\n break;\n case \"error\":\n this.reportError(msg.data);\n break;\n case \"log\":\n window.console && console.log && console.log.apply(console, msg.data);\n break;\n }\n };\n \n this.reportError = function(err) {\n window.console && console.error && console.error(err);\n };\n\n this.$normalizePath = function(path) {\n return net.qualifyURL(path);\n };\n\n this.terminate = function() {\n this._signal(\"terminate\", {});\n this.deltaQueue = null;\n this.$worker.terminate();\n this.$worker.onerror = function(e) {\n e.preventDefault();\n };\n this.$worker = null;\n if (this.$doc)\n this.$doc.off(\"change\", this.changeListener);\n this.$doc = null;\n };\n\n this.send = function(cmd, args) {\n this.$worker.postMessage({command: cmd, args: args});\n };\n\n this.call = function(cmd, args, callback) {\n if (callback) {\n var id = this.callbackId++;\n this.callbacks[id] = callback;\n args.push(id);\n }\n this.send(cmd, args);\n };\n\n this.emit = function(event, data) {\n try {\n if (data.data && data.data.err)\n data.data.err = {message: data.data.err.message, stack: data.data.err.stack, code: data.data.err.code};\n this.$worker && this.$worker.postMessage({event: event, data: {data: data.data}});\n }\n catch(ex) {\n console.error(ex.stack);\n }\n };\n\n this.attachToDocument = function(doc) {\n if (this.$doc)\n this.terminate();\n\n this.$doc = doc;\n this.call(\"setValue\", [doc.getValue()]);\n doc.on(\"change\", this.changeListener, true);\n };\n\n this.changeListener = function(delta) {\n if (!this.deltaQueue) {\n this.deltaQueue = [];\n setTimeout(this.$sendDeltaQueue, 0);\n }\n if (delta.action == \"insert\")\n this.deltaQueue.push(delta.start, delta.lines);\n else\n this.deltaQueue.push(delta.start, delta.end);\n };\n\n this.$sendDeltaQueue = function() {\n var q = this.deltaQueue;\n if (!q) return;\n this.deltaQueue = null;\n if (q.length > 50 && q.length > this.$doc.getLength() >> 1) {\n this.call(\"setValue\", [this.$doc.getValue()]);\n } else\n this.emit(\"change\", {data: q});\n };\n\n}).call(WorkerClient.prototype);\n\n\nvar UIWorkerClient = function(topLevelNamespaces, mod, classname) {\n var main = null;\n var emitSync = false;\n var sender = Object.create(EventEmitter);\n\n var messageBuffer = [];\n var workerClient = new WorkerClient({\n messageBuffer: messageBuffer,\n terminate: function() {},\n postMessage: function(e) {\n messageBuffer.push(e);\n if (!main) return;\n if (emitSync)\n setTimeout(processNext);\n else\n processNext();\n }\n });\n\n workerClient.setEmitSync = function(val) { emitSync = val; };\n\n var processNext = function() {\n var msg = messageBuffer.shift();\n if (msg.command)\n main[msg.command].apply(main, msg.args);\n else if (msg.event)\n sender._signal(msg.event, msg.data);\n };\n\n sender.postMessage = function(msg) {\n workerClient.onMessage({data: msg});\n };\n sender.callback = function(data, callbackId) {\n this.postMessage({type: \"call\", id: callbackId, data: data});\n };\n sender.emit = function(name, data) {\n this.postMessage({type: \"event\", name: name, data: data});\n };\n\n config.loadModule([\"worker\", mod], function(Main) {\n main = new Main[classname](sender);\n while (messageBuffer.length)\n processNext();\n });\n\n return workerClient;\n};\n\nexports.UIWorkerClient = UIWorkerClient;\nexports.WorkerClient = WorkerClient;\nexports.createWorker = createWorker;\n\n\n});\n\nace.define(\"ace/placeholder\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/lib/oop\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"./range\").Range;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar oop = require(\"./lib/oop\");\nvar PlaceHolder = /** @class */ (function () {\n function PlaceHolder(session, length, pos, others, mainClass, othersClass) {\n var _self = this;\n this.length = length;\n this.session = session;\n this.doc = session.getDocument();\n this.mainClass = mainClass;\n this.othersClass = othersClass;\n this.$onUpdate = this.onUpdate.bind(this);\n this.doc.on(\"change\", this.$onUpdate, true);\n this.$others = others;\n this.$onCursorChange = function () {\n setTimeout(function () {\n _self.onCursorChange();\n });\n };\n this.$pos = pos;\n var undoStack = session.getUndoManager().$undoStack || session.getUndoManager().$undostack || { length: -1 };\n this.$undoStackDepth = undoStack.length;\n this.setup();\n session.selection.on(\"changeCursor\", this.$onCursorChange);\n }\n PlaceHolder.prototype.setup = function () {\n var _self = this;\n var doc = this.doc;\n var session = this.session;\n this.selectionBefore = session.selection.toJSON();\n if (session.selection.inMultiSelectMode)\n session.selection.toSingleRange();\n this.pos = doc.createAnchor(this.$pos.row, this.$pos.column);\n var pos = this.pos;\n pos.$insertRight = true;\n pos.detach();\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column + this.length), this.mainClass, null, false);\n this.others = [];\n this.$others.forEach(function (other) {\n var anchor = doc.createAnchor(other.row, other.column);\n anchor.$insertRight = true;\n anchor.detach();\n _self.others.push(anchor);\n });\n session.setUndoSelect(false);\n };\n PlaceHolder.prototype.showOtherMarkers = function () {\n if (this.othersActive)\n return;\n var session = this.session;\n var _self = this;\n this.othersActive = true;\n this.others.forEach(function (anchor) {\n anchor.markerId = session.addMarker(new Range(anchor.row, anchor.column, anchor.row, anchor.column + _self.length), _self.othersClass, null, false);\n });\n };\n PlaceHolder.prototype.hideOtherMarkers = function () {\n if (!this.othersActive)\n return;\n this.othersActive = false;\n for (var i = 0; i < this.others.length; i++) {\n this.session.removeMarker(this.others[i].markerId);\n }\n };\n PlaceHolder.prototype.onUpdate = function (delta) {\n if (this.$updating)\n return this.updateAnchors(delta);\n var range = delta;\n if (range.start.row !== range.end.row)\n return;\n if (range.start.row !== this.pos.row)\n return;\n this.$updating = true;\n var lengthDiff = delta.action === \"insert\" ? range.end.column - range.start.column : range.start.column - range.end.column;\n var inMainRange = range.start.column >= this.pos.column && range.start.column <= this.pos.column + this.length + 1;\n var distanceFromStart = range.start.column - this.pos.column;\n this.updateAnchors(delta);\n if (inMainRange)\n this.length += lengthDiff;\n if (inMainRange && !this.session.$fromUndo) {\n if (delta.action === 'insert') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = { row: otherPos.row, column: otherPos.column + distanceFromStart };\n this.doc.insertMergedLines(newPos, delta.lines);\n }\n }\n else if (delta.action === 'remove') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = { row: otherPos.row, column: otherPos.column + distanceFromStart };\n this.doc.remove(new Range(newPos.row, newPos.column, newPos.row, newPos.column - lengthDiff));\n }\n }\n }\n this.$updating = false;\n this.updateMarkers();\n };\n PlaceHolder.prototype.updateAnchors = function (delta) {\n this.pos.onChange(delta);\n for (var i = this.others.length; i--;)\n this.others[i].onChange(delta);\n this.updateMarkers();\n };\n PlaceHolder.prototype.updateMarkers = function () {\n if (this.$updating)\n return;\n var _self = this;\n var session = this.session;\n var updateMarker = function (pos, className) {\n session.removeMarker(pos.markerId);\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column + _self.length), className, null, false);\n };\n updateMarker(this.pos, this.mainClass);\n for (var i = this.others.length; i--;)\n updateMarker(this.others[i], this.othersClass);\n };\n PlaceHolder.prototype.onCursorChange = function (event) {\n if (this.$updating || !this.session)\n return;\n var pos = this.session.selection.getCursor();\n if (pos.row === this.pos.row && pos.column >= this.pos.column && pos.column <= this.pos.column + this.length) {\n this.showOtherMarkers();\n this._emit(\"cursorEnter\", event);\n }\n else {\n this.hideOtherMarkers();\n this._emit(\"cursorLeave\", event);\n }\n };\n PlaceHolder.prototype.detach = function () {\n this.session.removeMarker(this.pos && this.pos.markerId);\n this.hideOtherMarkers();\n this.doc.off(\"change\", this.$onUpdate);\n this.session.selection.off(\"changeCursor\", this.$onCursorChange);\n this.session.setUndoSelect(true);\n this.session = null;\n };\n PlaceHolder.prototype.cancel = function () {\n if (this.$undoStackDepth === -1)\n return;\n var undoManager = this.session.getUndoManager();\n var undosRequired = (undoManager.$undoStack || undoManager.$undostack).length - this.$undoStackDepth;\n for (var i = 0; i < undosRequired; i++) {\n undoManager.undo(this.session, true);\n }\n if (this.selectionBefore)\n this.session.selection.fromJSON(this.selectionBefore);\n };\n return PlaceHolder;\n}());\noop.implement(PlaceHolder.prototype, EventEmitter);\nexports.PlaceHolder = PlaceHolder;\n\n});\n\nace.define(\"ace/mouse/multi_select_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(require, exports, module){var event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\nfunction onMouseDown(e) {\n var ev = e.domEvent;\n var alt = ev.altKey;\n var shift = ev.shiftKey;\n var ctrl = ev.ctrlKey;\n var accel = e.getAccelKey();\n var button = e.getButton();\n if (ctrl && useragent.isMac)\n button = ev.button;\n if (e.editor.inMultiSelectMode && button == 2) {\n e.editor.textInput.onContextMenu(e.domEvent);\n return;\n }\n if (!ctrl && !alt && !accel) {\n if (button === 0 && e.editor.inMultiSelectMode)\n e.editor.exitMultiSelectMode();\n return;\n }\n if (button !== 0)\n return;\n var editor = e.editor;\n var selection = editor.selection;\n var isMultiSelect = editor.inMultiSelectMode;\n var pos = e.getDocumentPosition();\n var cursor = selection.getCursor();\n var inSelection = e.inSelection() || (selection.isEmpty() && isSamePoint(pos, cursor));\n var mouseX = e.x, mouseY = e.y;\n var onMouseSelection = function (e) {\n mouseX = e.clientX;\n mouseY = e.clientY;\n };\n var session = editor.session;\n var screenAnchor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var screenCursor = screenAnchor;\n var selectionMode;\n if (editor.$mouseHandler.$enableJumpToDef) {\n if (ctrl && alt || accel && alt)\n selectionMode = shift ? \"block\" : \"add\";\n else if (alt && editor.$blockSelectEnabled)\n selectionMode = \"block\";\n }\n else {\n if (accel && !alt) {\n selectionMode = \"add\";\n if (!isMultiSelect && shift)\n return;\n }\n else if (alt && editor.$blockSelectEnabled) {\n selectionMode = \"block\";\n }\n }\n if (selectionMode && useragent.isMac && ev.ctrlKey) {\n editor.$mouseHandler.cancelContextMenu();\n }\n if (selectionMode == \"add\") {\n if (!isMultiSelect && inSelection)\n return; // dragging\n if (!isMultiSelect) {\n var range = selection.toOrientedRange();\n editor.addSelectionMarker(range);\n }\n var oldRange = selection.rangeList.rangeAtPoint(pos);\n editor.inVirtualSelectionMode = true;\n if (shift) {\n oldRange = null;\n range = selection.ranges[0] || range;\n editor.removeSelectionMarker(range);\n }\n editor.once(\"mouseup\", function () {\n var tmpSel = selection.toOrientedRange();\n if (oldRange && tmpSel.isEmpty() && isSamePoint(oldRange.cursor, tmpSel.cursor))\n selection.substractPoint(tmpSel.cursor);\n else {\n if (shift) {\n selection.substractPoint(range.cursor);\n }\n else if (range) {\n editor.removeSelectionMarker(range);\n selection.addRange(range);\n }\n selection.addRange(tmpSel);\n }\n editor.inVirtualSelectionMode = false;\n });\n }\n else if (selectionMode == \"block\") {\n e.stop();\n editor.inVirtualSelectionMode = true;\n var initialRange;\n var rectSel = [];\n var blockSelect = function () {\n var newCursor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var cursor = session.screenToDocumentPosition(newCursor.row, newCursor.column, newCursor.offsetX);\n if (isSamePoint(screenCursor, newCursor) && isSamePoint(cursor, selection.lead))\n return;\n screenCursor = newCursor;\n editor.selection.moveToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n editor.removeSelectionMarkers(rectSel);\n rectSel = selection.rectangularRangeBlock(screenCursor, screenAnchor);\n if (editor.$mouseHandler.$clickSelection && rectSel.length == 1 && rectSel[0].isEmpty())\n rectSel[0] = editor.$mouseHandler.$clickSelection.clone();\n rectSel.forEach(editor.addSelectionMarker, editor);\n editor.updateSelectionMarkers();\n };\n if (isMultiSelect && !accel) {\n selection.toSingleRange();\n }\n else if (!isMultiSelect && accel) {\n initialRange = selection.toOrientedRange();\n editor.addSelectionMarker(initialRange);\n }\n if (shift)\n screenAnchor = session.documentToScreenPosition(selection.lead);\n else\n selection.moveToPosition(pos);\n screenCursor = { row: -1, column: -1 };\n var onMouseSelectionEnd = function (e) {\n blockSelect();\n clearInterval(timerId);\n editor.removeSelectionMarkers(rectSel);\n if (!rectSel.length)\n rectSel = [selection.toOrientedRange()];\n if (initialRange) {\n editor.removeSelectionMarker(initialRange);\n selection.toSingleRange(initialRange);\n }\n for (var i = 0; i < rectSel.length; i++)\n selection.addRange(rectSel[i]);\n editor.inVirtualSelectionMode = false;\n editor.$mouseHandler.$clickSelection = null;\n };\n var onSelectionInterval = blockSelect;\n event.capture(editor.container, onMouseSelection, onMouseSelectionEnd);\n var timerId = setInterval(function () { onSelectionInterval(); }, 20);\n return e.preventDefault();\n }\n}\nexports.onMouseDown = onMouseDown;\n\n});\n\nace.define(\"ace/commands/multi_select_commands\",[\"require\",\"exports\",\"module\",\"ace/keyboard/hash_handler\"], function(require, exports, module){// commands to enter multiselect mode\nexports.defaultCommands = [{\n name: \"addCursorAbove\",\n description: \"Add cursor above\",\n exec: function (editor) { editor.selectMoreLines(-1); },\n bindKey: { win: \"Ctrl-Alt-Up\", mac: \"Ctrl-Alt-Up\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"addCursorBelow\",\n description: \"Add cursor below\",\n exec: function (editor) { editor.selectMoreLines(1); },\n bindKey: { win: \"Ctrl-Alt-Down\", mac: \"Ctrl-Alt-Down\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"addCursorAboveSkipCurrent\",\n description: \"Add cursor above (skip current)\",\n exec: function (editor) { editor.selectMoreLines(-1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Up\", mac: \"Ctrl-Alt-Shift-Up\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"addCursorBelowSkipCurrent\",\n description: \"Add cursor below (skip current)\",\n exec: function (editor) { editor.selectMoreLines(1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Down\", mac: \"Ctrl-Alt-Shift-Down\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectMoreBefore\",\n description: \"Select more before\",\n exec: function (editor) { editor.selectMore(-1); },\n bindKey: { win: \"Ctrl-Alt-Left\", mac: \"Ctrl-Alt-Left\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectMoreAfter\",\n description: \"Select more after\",\n exec: function (editor) { editor.selectMore(1); },\n bindKey: { win: \"Ctrl-Alt-Right\", mac: \"Ctrl-Alt-Right\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectNextBefore\",\n description: \"Select next before\",\n exec: function (editor) { editor.selectMore(-1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Left\", mac: \"Ctrl-Alt-Shift-Left\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectNextAfter\",\n description: \"Select next after\",\n exec: function (editor) { editor.selectMore(1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Right\", mac: \"Ctrl-Alt-Shift-Right\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"toggleSplitSelectionIntoLines\",\n description: \"Split selection into lines\",\n exec: function (editor) {\n if (editor.multiSelect.rangeCount > 1)\n editor.multiSelect.joinSelections();\n else\n editor.multiSelect.splitIntoLines();\n },\n bindKey: { win: \"Ctrl-Alt-L\", mac: \"Ctrl-Alt-L\" },\n readOnly: true\n }, {\n name: \"splitSelectionIntoLines\",\n description: \"Split into lines\",\n exec: function (editor) { editor.multiSelect.splitIntoLines(); },\n readOnly: true\n }, {\n name: \"alignCursors\",\n description: \"Align cursors\",\n exec: function (editor) { editor.alignCursors(); },\n bindKey: { win: \"Ctrl-Alt-A\", mac: \"Ctrl-Alt-A\" },\n scrollIntoView: \"cursor\"\n }, {\n name: \"findAll\",\n description: \"Find all\",\n exec: function (editor) { editor.findAll(); },\n bindKey: { win: \"Ctrl-Alt-K\", mac: \"Ctrl-Alt-G\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }];\nexports.multiSelectCommands = [{\n name: \"singleSelection\",\n description: \"Single selection\",\n bindKey: \"esc\",\n exec: function (editor) { editor.exitMultiSelectMode(); },\n scrollIntoView: \"cursor\",\n readOnly: true,\n isAvailable: function (editor) { return editor && editor.inMultiSelectMode; }\n }];\nvar HashHandler = require(\"../keyboard/hash_handler\").HashHandler;\nexports.keyboardHandler = new HashHandler(exports.multiSelectCommands);\n\n});\n\nace.define(\"ace/multi_select\",[\"require\",\"exports\",\"module\",\"ace/range_list\",\"ace/range\",\"ace/selection\",\"ace/mouse/multi_select_handler\",\"ace/lib/event\",\"ace/lib/lang\",\"ace/commands/multi_select_commands\",\"ace/search\",\"ace/edit_session\",\"ace/editor\",\"ace/config\"], function(require, exports, module){var RangeList = require(\"./range_list\").RangeList;\nvar Range = require(\"./range\").Range;\nvar Selection = require(\"./selection\").Selection;\nvar onMouseDown = require(\"./mouse/multi_select_handler\").onMouseDown;\nvar event = require(\"./lib/event\");\nvar lang = require(\"./lib/lang\");\nvar commands = require(\"./commands/multi_select_commands\");\nexports.commands = commands.defaultCommands.concat(commands.multiSelectCommands);\nvar Search = require(\"./search\").Search;\nvar search = new Search();\nfunction find(session, needle, dir) {\n search.$options.wrap = true;\n search.$options.needle = needle;\n search.$options.backwards = dir == -1;\n return search.find(session);\n}\nvar EditSession = require(\"./edit_session\").EditSession;\n(function () {\n this.getSelectionMarkers = function () {\n return this.$selectionMarkers;\n };\n}).call(EditSession.prototype);\n(function () {\n this.ranges = null;\n this.rangeList = null;\n this.addRange = function (range, $blockChangeEvents) {\n if (!range)\n return;\n if (!this.inMultiSelectMode && this.rangeCount === 0) {\n var oldRange = this.toOrientedRange();\n this.rangeList.add(oldRange);\n this.rangeList.add(range);\n if (this.rangeList.ranges.length != 2) {\n this.rangeList.removeAll();\n return $blockChangeEvents || this.fromOrientedRange(range);\n }\n this.rangeList.removeAll();\n this.rangeList.add(oldRange);\n this.$onAddRange(oldRange);\n }\n if (!range.cursor)\n range.cursor = range.end;\n var removed = this.rangeList.add(range);\n this.$onAddRange(range);\n if (removed.length)\n this.$onRemoveRange(removed);\n if (this.rangeCount > 1 && !this.inMultiSelectMode) {\n this._signal(\"multiSelect\");\n this.inMultiSelectMode = true;\n this.session.$undoSelect = false;\n this.rangeList.attach(this.session);\n }\n return $blockChangeEvents || this.fromOrientedRange(range);\n };\n this.toSingleRange = function (range) {\n range = range || this.ranges[0];\n var removed = this.rangeList.removeAll();\n if (removed.length)\n this.$onRemoveRange(removed);\n range && this.fromOrientedRange(range);\n };\n this.substractPoint = function (pos) {\n var removed = this.rangeList.substractPoint(pos);\n if (removed) {\n this.$onRemoveRange(removed);\n return removed[0];\n }\n };\n this.mergeOverlappingRanges = function () {\n var removed = this.rangeList.merge();\n if (removed.length)\n this.$onRemoveRange(removed);\n };\n this.$onAddRange = function (range) {\n this.rangeCount = this.rangeList.ranges.length;\n this.ranges.unshift(range);\n this._signal(\"addRange\", { range: range });\n };\n this.$onRemoveRange = function (removed) {\n this.rangeCount = this.rangeList.ranges.length;\n if (this.rangeCount == 1 && this.inMultiSelectMode) {\n var lastRange = this.rangeList.ranges.pop();\n removed.push(lastRange);\n this.rangeCount = 0;\n }\n for (var i = removed.length; i--;) {\n var index = this.ranges.indexOf(removed[i]);\n this.ranges.splice(index, 1);\n }\n this._signal(\"removeRange\", { ranges: removed });\n if (this.rangeCount === 0 && this.inMultiSelectMode) {\n this.inMultiSelectMode = false;\n this._signal(\"singleSelect\");\n this.session.$undoSelect = true;\n this.rangeList.detach(this.session);\n }\n lastRange = lastRange || this.ranges[0];\n if (lastRange && !lastRange.isEqual(this.getRange()))\n this.fromOrientedRange(lastRange);\n };\n this.$initRangeList = function () {\n if (this.rangeList)\n return;\n this.rangeList = new RangeList();\n this.ranges = [];\n this.rangeCount = 0;\n };\n this.getAllRanges = function () {\n return this.rangeCount ? this.rangeList.ranges.concat() : [this.getRange()];\n };\n this.splitIntoLines = function () {\n var ranges = this.ranges.length ? this.ranges : [this.getRange()];\n var newRanges = [];\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n var row = range.start.row;\n var endRow = range.end.row;\n if (row === endRow) {\n newRanges.push(range.clone());\n }\n else {\n newRanges.push(new Range(row, range.start.column, row, this.session.getLine(row).length));\n while (++row < endRow)\n newRanges.push(this.getLineRange(row, true));\n newRanges.push(new Range(endRow, 0, endRow, range.end.column));\n }\n if (i == 0 && !this.isBackwards())\n newRanges = newRanges.reverse();\n }\n this.toSingleRange();\n for (var i = newRanges.length; i--;)\n this.addRange(newRanges[i]);\n };\n this.joinSelections = function () {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n };\n this.toggleBlockSelection = function () {\n if (this.rangeCount > 1) {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n }\n else {\n var cursor = this.session.documentToScreenPosition(this.cursor);\n var anchor = this.session.documentToScreenPosition(this.anchor);\n var rectSel = this.rectangularRangeBlock(cursor, anchor);\n rectSel.forEach(this.addRange, this);\n }\n };\n this.rectangularRangeBlock = function (screenCursor, screenAnchor, includeEmptyLines) {\n var rectSel = [];\n var xBackwards = screenCursor.column < screenAnchor.column;\n if (xBackwards) {\n var startColumn = screenCursor.column;\n var endColumn = screenAnchor.column;\n var startOffsetX = screenCursor.offsetX;\n var endOffsetX = screenAnchor.offsetX;\n }\n else {\n var startColumn = screenAnchor.column;\n var endColumn = screenCursor.column;\n var startOffsetX = screenAnchor.offsetX;\n var endOffsetX = screenCursor.offsetX;\n }\n var yBackwards = screenCursor.row < screenAnchor.row;\n if (yBackwards) {\n var startRow = screenCursor.row;\n var endRow = screenAnchor.row;\n }\n else {\n var startRow = screenAnchor.row;\n var endRow = screenCursor.row;\n }\n if (startColumn < 0)\n startColumn = 0;\n if (startRow < 0)\n startRow = 0;\n if (startRow == endRow)\n includeEmptyLines = true;\n var docEnd;\n for (var row = startRow; row <= endRow; row++) {\n var range = Range.fromPoints(this.session.screenToDocumentPosition(row, startColumn, startOffsetX), this.session.screenToDocumentPosition(row, endColumn, endOffsetX));\n if (range.isEmpty()) {\n if (docEnd && isSamePoint(range.end, docEnd))\n break;\n docEnd = range.end;\n }\n range.cursor = xBackwards ? range.start : range.end;\n rectSel.push(range);\n }\n if (yBackwards)\n rectSel.reverse();\n if (!includeEmptyLines) {\n var end = rectSel.length - 1;\n while (rectSel[end].isEmpty() && end > 0)\n end--;\n if (end > 0) {\n var start = 0;\n while (rectSel[start].isEmpty())\n start++;\n }\n for (var i = end; i >= start; i--) {\n if (rectSel[i].isEmpty())\n rectSel.splice(i, 1);\n }\n }\n return rectSel;\n };\n}).call(Selection.prototype);\nvar Editor = require(\"./editor\").Editor;\n(function () {\n this.updateSelectionMarkers = function () {\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.addSelectionMarker = function (orientedRange) {\n if (!orientedRange.cursor)\n orientedRange.cursor = orientedRange.end;\n var style = this.getSelectionStyle();\n orientedRange.marker = this.session.addMarker(orientedRange, \"ace_selection\", style);\n this.session.$selectionMarkers.push(orientedRange);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n return orientedRange;\n };\n this.removeSelectionMarker = function (range) {\n if (!range.marker)\n return;\n this.session.removeMarker(range.marker);\n var index = this.session.$selectionMarkers.indexOf(range);\n if (index != -1)\n this.session.$selectionMarkers.splice(index, 1);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n };\n this.removeSelectionMarkers = function (ranges) {\n var markerList = this.session.$selectionMarkers;\n for (var i = ranges.length; i--;) {\n var range = ranges[i];\n if (!range.marker)\n continue;\n this.session.removeMarker(range.marker);\n var index = markerList.indexOf(range);\n if (index != -1)\n markerList.splice(index, 1);\n }\n this.session.selectionMarkerCount = markerList.length;\n };\n this.$onAddRange = function (e) {\n this.addSelectionMarker(e.range);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.$onRemoveRange = function (e) {\n this.removeSelectionMarkers(e.ranges);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.$onMultiSelect = function (e) {\n if (this.inMultiSelectMode)\n return;\n this.inMultiSelectMode = true;\n this.setStyle(\"ace_multiselect\");\n this.keyBinding.addKeyboardHandler(commands.keyboardHandler);\n this.commands.setDefaultHandler(\"exec\", this.$onMultiSelectExec);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.$onSingleSelect = function (e) {\n if (this.session.multiSelect.inVirtualMode)\n return;\n this.inMultiSelectMode = false;\n this.unsetStyle(\"ace_multiselect\");\n this.keyBinding.removeKeyboardHandler(commands.keyboardHandler);\n this.commands.removeDefaultHandler(\"exec\", this.$onMultiSelectExec);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n this._emit(\"changeSelection\");\n };\n this.$onMultiSelectExec = function (e) {\n var command = e.command;\n var editor = e.editor;\n if (!editor.multiSelect)\n return;\n if (!command.multiSelectAction) {\n var result = command.exec(editor, e.args || {});\n editor.multiSelect.addRange(editor.multiSelect.toOrientedRange());\n editor.multiSelect.mergeOverlappingRanges();\n }\n else if (command.multiSelectAction == \"forEach\") {\n result = editor.forEachSelection(command, e.args);\n }\n else if (command.multiSelectAction == \"forEachLine\") {\n result = editor.forEachSelection(command, e.args, true);\n }\n else if (command.multiSelectAction == \"single\") {\n editor.exitMultiSelectMode();\n result = command.exec(editor, e.args || {});\n }\n else {\n result = command.multiSelectAction(editor, e.args || {});\n }\n return result;\n };\n this.forEachSelection = function (cmd, args, options) {\n if (this.inVirtualSelectionMode)\n return;\n var keepOrder = options && options.keepOrder;\n var $byLines = options == true || options && options.$byLines;\n var session = this.session;\n var selection = this.selection;\n var rangeList = selection.rangeList;\n var ranges = (keepOrder ? selection : rangeList).ranges;\n var result;\n if (!ranges.length)\n return cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n var reg = selection._eventRegistry;\n selection._eventRegistry = {};\n var tmpSel = new Selection(session);\n this.inVirtualSelectionMode = true;\n for (var i = ranges.length; i--;) {\n if ($byLines) {\n while (i > 0 && ranges[i].start.row == ranges[i - 1].end.row)\n i--;\n }\n tmpSel.fromOrientedRange(ranges[i]);\n tmpSel.index = i;\n this.selection = session.selection = tmpSel;\n var cmdResult = cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n if (!result && cmdResult !== undefined)\n result = cmdResult;\n tmpSel.toOrientedRange(ranges[i]);\n }\n tmpSel.detach();\n this.selection = session.selection = selection;\n this.inVirtualSelectionMode = false;\n selection._eventRegistry = reg;\n selection.mergeOverlappingRanges();\n if (selection.ranges[0])\n selection.fromOrientedRange(selection.ranges[0]);\n var anim = this.renderer.$scrollAnimation;\n this.onCursorChange();\n this.onSelectionChange();\n if (anim && anim.from == anim.to)\n this.renderer.animateScrolling(anim.from);\n return result;\n };\n this.exitMultiSelectMode = function () {\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode)\n return;\n this.multiSelect.toSingleRange();\n };\n this.getSelectedText = function () {\n var text = \"\";\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var ranges = this.multiSelect.rangeList.ranges;\n var buf = [];\n for (var i = 0; i < ranges.length; i++) {\n buf.push(this.session.getTextRange(ranges[i]));\n }\n var nl = this.session.getDocument().getNewLineCharacter();\n text = buf.join(nl);\n if (text.length == (buf.length - 1) * nl.length)\n text = \"\";\n }\n else if (!this.selection.isEmpty()) {\n text = this.session.getTextRange(this.getSelectionRange());\n }\n return text;\n };\n this.$checkMultiselectChange = function (e, anchor) {\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var range = this.multiSelect.ranges[0];\n if (this.multiSelect.isEmpty() && anchor == this.multiSelect.anchor)\n return;\n var pos = anchor == this.multiSelect.anchor\n ? range.cursor == range.start ? range.end : range.start\n : range.cursor;\n if (pos.row != anchor.row\n || this.session.$clipPositionToDocument(pos.row, pos.column).column != anchor.column)\n this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange());\n else\n this.multiSelect.mergeOverlappingRanges();\n }\n };\n this.findAll = function (needle, options, additive) {\n options = options || {};\n options.needle = needle || options.needle;\n if (options.needle == undefined) {\n var range = this.selection.isEmpty()\n ? this.selection.getWordRange()\n : this.selection.getRange();\n options.needle = this.session.getTextRange(range);\n }\n this.$search.set(options);\n var ranges = this.$search.findAll(this.session);\n if (!ranges.length)\n return 0;\n var selection = this.multiSelect;\n if (!additive)\n selection.toSingleRange(ranges[0]);\n for (var i = ranges.length; i--;)\n selection.addRange(ranges[i], true);\n if (range && selection.rangeList.rangeAtPoint(range.start))\n selection.addRange(range, true);\n return ranges.length;\n };\n this.selectMoreLines = function (dir, skip) {\n var range = this.selection.toOrientedRange();\n var isBackwards = range.cursor == range.end;\n var screenLead = this.session.documentToScreenPosition(range.cursor);\n if (this.selection.$desiredColumn)\n screenLead.column = this.selection.$desiredColumn;\n var lead = this.session.screenToDocumentPosition(screenLead.row + dir, screenLead.column);\n if (!range.isEmpty()) {\n var screenAnchor = this.session.documentToScreenPosition(isBackwards ? range.end : range.start);\n var anchor = this.session.screenToDocumentPosition(screenAnchor.row + dir, screenAnchor.column);\n }\n else {\n var anchor = lead;\n }\n if (isBackwards) {\n var newRange = Range.fromPoints(lead, anchor);\n newRange.cursor = newRange.start;\n }\n else {\n var newRange = Range.fromPoints(anchor, lead);\n newRange.cursor = newRange.end;\n }\n newRange.desiredColumn = screenLead.column;\n if (!this.selection.inMultiSelectMode) {\n this.selection.addRange(range);\n }\n else {\n if (skip)\n var toRemove = range.cursor;\n }\n this.selection.addRange(newRange);\n if (toRemove)\n this.selection.substractPoint(toRemove);\n };\n this.transposeSelections = function (dir) {\n var session = this.session;\n var sel = session.multiSelect;\n var all = sel.ranges;\n for (var i = all.length; i--;) {\n var range = all[i];\n if (range.isEmpty()) {\n var tmp = session.getWordRange(range.start.row, range.start.column);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n range.end.row = tmp.end.row;\n range.end.column = tmp.end.column;\n }\n }\n sel.mergeOverlappingRanges();\n var words = [];\n for (var i = all.length; i--;) {\n var range = all[i];\n words.unshift(session.getTextRange(range));\n }\n if (dir < 0)\n words.unshift(words.pop());\n else\n words.push(words.shift());\n for (var i = all.length; i--;) {\n var range = all[i];\n var tmp = range.clone();\n session.replace(range, words[i]);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n }\n sel.fromOrientedRange(sel.ranges[0]);\n };\n this.selectMore = function (dir, skip, stopAtFirst) {\n var session = this.session;\n var sel = session.multiSelect;\n var range = sel.toOrientedRange();\n if (range.isEmpty()) {\n range = session.getWordRange(range.start.row, range.start.column);\n range.cursor = dir == -1 ? range.start : range.end;\n this.multiSelect.addRange(range);\n if (stopAtFirst)\n return;\n }\n var needle = session.getTextRange(range);\n var newRange = find(session, needle, dir);\n if (newRange) {\n newRange.cursor = dir == -1 ? newRange.start : newRange.end;\n this.session.unfold(newRange);\n this.multiSelect.addRange(newRange);\n this.renderer.scrollCursorIntoView(null, 0.5);\n }\n if (skip)\n this.multiSelect.substractPoint(range.cursor);\n };\n this.alignCursors = function () {\n var session = this.session;\n var sel = session.multiSelect;\n var ranges = sel.ranges;\n var row = -1;\n var sameRowRanges = ranges.filter(function (r) {\n if (r.cursor.row == row)\n return true;\n row = r.cursor.row;\n });\n if (!ranges.length || sameRowRanges.length == ranges.length - 1) {\n var range = this.selection.getRange();\n var fr = range.start.row, lr = range.end.row;\n var guessRange = fr == lr;\n if (guessRange) {\n var max = this.session.getLength();\n var line;\n do {\n line = this.session.getLine(lr);\n } while (/[=:]/.test(line) && ++lr < max);\n do {\n line = this.session.getLine(fr);\n } while (/[=:]/.test(line) && --fr > 0);\n if (fr < 0)\n fr = 0;\n if (lr >= max)\n lr = max - 1;\n }\n var lines = this.session.removeFullLines(fr, lr);\n lines = this.$reAlignText(lines, guessRange);\n this.session.insert({ row: fr, column: 0 }, lines.join(\"\\n\") + \"\\n\");\n if (!guessRange) {\n range.start.column = 0;\n range.end.column = lines[lines.length - 1].length;\n }\n this.selection.setRange(range);\n }\n else {\n sameRowRanges.forEach(function (r) {\n sel.substractPoint(r.cursor);\n });\n var maxCol = 0;\n var minSpace = Infinity;\n var spaceOffsets = ranges.map(function (r) {\n var p = r.cursor;\n var line = session.getLine(p.row);\n var spaceOffset = line.substr(p.column).search(/\\S/g);\n if (spaceOffset == -1)\n spaceOffset = 0;\n if (p.column > maxCol)\n maxCol = p.column;\n if (spaceOffset < minSpace)\n minSpace = spaceOffset;\n return spaceOffset;\n });\n ranges.forEach(function (r, i) {\n var p = r.cursor;\n var l = maxCol - p.column;\n var d = spaceOffsets[i] - minSpace;\n if (l > d)\n session.insert(p, lang.stringRepeat(\" \", l - d));\n else\n session.remove(new Range(p.row, p.column, p.row, p.column - l + d));\n r.start.column = r.end.column = maxCol;\n r.start.row = r.end.row = p.row;\n r.cursor = r.end;\n });\n sel.fromOrientedRange(ranges[0]);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n }\n };\n this.$reAlignText = function (lines, forceLeft) {\n var isLeftAligned = true, isRightAligned = true;\n var startW, textW, endW;\n return lines.map(function (line) {\n var m = line.match(/(\\s*)(.*?)(\\s*)([=:].*)/);\n if (!m)\n return [line];\n if (startW == null) {\n startW = m[1].length;\n textW = m[2].length;\n endW = m[3].length;\n return m;\n }\n if (startW + textW + endW != m[1].length + m[2].length + m[3].length)\n isRightAligned = false;\n if (startW != m[1].length)\n isLeftAligned = false;\n if (startW > m[1].length)\n startW = m[1].length;\n if (textW < m[2].length)\n textW = m[2].length;\n if (endW > m[3].length)\n endW = m[3].length;\n return m;\n }).map(forceLeft ? alignLeft :\n isLeftAligned ? isRightAligned ? alignRight : alignLeft : unAlign);\n function spaces(n) {\n return lang.stringRepeat(\" \", n);\n }\n function alignLeft(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(textW - m[2].length + endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function alignRight(m) {\n return !m[2] ? m[0] : spaces(startW + textW - m[2].length) + m[2]\n + spaces(endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function unAlign(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n };\n}).call(Editor.prototype);\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\nexports.onSessionChange = function (e) {\n var session = e.session;\n if (session && !session.multiSelect) {\n session.$selectionMarkers = [];\n session.selection.$initRangeList();\n session.multiSelect = session.selection;\n }\n this.multiSelect = session && session.multiSelect;\n var oldSession = e.oldSession;\n if (oldSession) {\n oldSession.multiSelect.off(\"addRange\", this.$onAddRange);\n oldSession.multiSelect.off(\"removeRange\", this.$onRemoveRange);\n oldSession.multiSelect.off(\"multiSelect\", this.$onMultiSelect);\n oldSession.multiSelect.off(\"singleSelect\", this.$onSingleSelect);\n oldSession.multiSelect.lead.off(\"change\", this.$checkMultiselectChange);\n oldSession.multiSelect.anchor.off(\"change\", this.$checkMultiselectChange);\n }\n if (session) {\n session.multiSelect.on(\"addRange\", this.$onAddRange);\n session.multiSelect.on(\"removeRange\", this.$onRemoveRange);\n session.multiSelect.on(\"multiSelect\", this.$onMultiSelect);\n session.multiSelect.on(\"singleSelect\", this.$onSingleSelect);\n session.multiSelect.lead.on(\"change\", this.$checkMultiselectChange);\n session.multiSelect.anchor.on(\"change\", this.$checkMultiselectChange);\n }\n if (session && this.inMultiSelectMode != session.selection.inMultiSelectMode) {\n if (session.selection.inMultiSelectMode)\n this.$onMultiSelect();\n else\n this.$onSingleSelect();\n }\n};\nfunction MultiSelect(editor) {\n if (editor.$multiselectOnSessionChange)\n return;\n editor.$onAddRange = editor.$onAddRange.bind(editor);\n editor.$onRemoveRange = editor.$onRemoveRange.bind(editor);\n editor.$onMultiSelect = editor.$onMultiSelect.bind(editor);\n editor.$onSingleSelect = editor.$onSingleSelect.bind(editor);\n editor.$multiselectOnSessionChange = exports.onSessionChange.bind(editor);\n editor.$checkMultiselectChange = editor.$checkMultiselectChange.bind(editor);\n editor.$multiselectOnSessionChange(editor);\n editor.on(\"changeSession\", editor.$multiselectOnSessionChange);\n editor.on(\"mousedown\", onMouseDown);\n editor.commands.addCommands(commands.defaultCommands);\n addAltCursorListeners(editor);\n}\nfunction addAltCursorListeners(editor) {\n if (!editor.textInput)\n return;\n var el = editor.textInput.getElement();\n var altCursor = false;\n event.addListener(el, \"keydown\", function (e) {\n var altDown = e.keyCode == 18 && !(e.ctrlKey || e.shiftKey || e.metaKey);\n if (editor.$blockSelectEnabled && altDown) {\n if (!altCursor) {\n editor.renderer.setMouseCursor(\"crosshair\");\n altCursor = true;\n }\n }\n else if (altCursor) {\n reset();\n }\n }, editor);\n event.addListener(el, \"keyup\", reset, editor);\n event.addListener(el, \"blur\", reset, editor);\n function reset(e) {\n if (altCursor) {\n editor.renderer.setMouseCursor(\"\");\n altCursor = false;\n }\n }\n}\nexports.MultiSelect = MultiSelect;\nrequire(\"./config\").defineOptions(Editor.prototype, \"editor\", {\n enableMultiselect: {\n set: function (val) {\n MultiSelect(this);\n if (val) {\n this.on(\"mousedown\", onMouseDown);\n }\n else {\n this.off(\"mousedown\", onMouseDown);\n }\n },\n value: true\n },\n enableBlockSelect: {\n set: function (val) {\n this.$blockSelectEnabled = val;\n },\n value: true\n }\n});\n\n});\n\nace.define(\"ace/mode/folding/fold_mode\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../../range\").Range;\nvar FoldMode = exports.FoldMode = function () { };\n(function () {\n this.foldingStartMarker = null;\n this.foldingStopMarker = null;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.foldingStartMarker.test(line))\n return \"start\";\n if (foldStyle == \"markbeginend\"\n && this.foldingStopMarker\n && this.foldingStopMarker.test(line))\n return \"end\";\n return \"\";\n };\n this.getFoldWidgetRange = function (session, foldStyle, row) {\n return null;\n };\n this.indentationBlock = function (session, row, column) {\n var re = /\\S/;\n var line = session.getLine(row);\n var startLevel = line.search(re);\n if (startLevel == -1)\n return;\n var startColumn = column || line.length;\n var maxRow = session.getLength();\n var startRow = row;\n var endRow = row;\n while (++row < maxRow) {\n var level = session.getLine(row).search(re);\n if (level == -1)\n continue;\n if (level <= startLevel) {\n var token = session.getTokenAt(row, 0);\n if (!token || token.type !== \"string\")\n break;\n }\n endRow = row;\n }\n if (endRow > startRow) {\n var endColumn = session.getLine(endRow).length;\n return new Range(startRow, startColumn, endRow, endColumn);\n }\n };\n this.openingBracketBlock = function (session, bracket, row, column, typeRe) {\n var start = { row: row, column: column + 1 };\n var end = session.$findClosingBracket(bracket, start, typeRe);\n if (!end)\n return;\n var fw = session.foldWidgets[end.row];\n if (fw == null)\n fw = session.getFoldWidget(end.row);\n if (fw == \"start\" && end.row > start.row) {\n end.row--;\n end.column = session.getLine(end.row).length;\n }\n return Range.fromPoints(start, end);\n };\n this.closingBracketBlock = function (session, bracket, row, column, typeRe) {\n var end = { row: row, column: column };\n var start = session.$findOpeningBracket(bracket, end);\n if (!start)\n return;\n start.column++;\n end.column--;\n return Range.fromPoints(start, end);\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/ext/error_marker\",[\"require\",\"exports\",\"module\",\"ace/line_widgets\",\"ace/lib/dom\",\"ace/range\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar LineWidgets = require(\"../line_widgets\").LineWidgets;\nvar dom = require(\"../lib/dom\");\nvar Range = require(\"../range\").Range;\nvar nls = require(\"../config\").nls;\nfunction binarySearch(array, needle, comparator) {\n var first = 0;\n var last = array.length - 1;\n while (first <= last) {\n var mid = (first + last) >> 1;\n var c = comparator(needle, array[mid]);\n if (c > 0)\n first = mid + 1;\n else if (c < 0)\n last = mid - 1;\n else\n return mid;\n }\n return -(first + 1);\n}\nfunction findAnnotations(session, row, dir) {\n var annotations = session.getAnnotations().sort(Range.comparePoints);\n if (!annotations.length)\n return;\n var i = binarySearch(annotations, { row: row, column: -1 }, Range.comparePoints);\n if (i < 0)\n i = -i - 1;\n if (i >= annotations.length)\n i = dir > 0 ? 0 : annotations.length - 1;\n else if (i === 0 && dir < 0)\n i = annotations.length - 1;\n var annotation = annotations[i];\n if (!annotation || !dir)\n return;\n if (annotation.row === row) {\n do {\n annotation = annotations[i += dir];\n } while (annotation && annotation.row === row);\n if (!annotation)\n return annotations.slice();\n }\n var matched = [];\n row = annotation.row;\n do {\n matched[dir < 0 ? \"unshift\" : \"push\"](annotation);\n annotation = annotations[i += dir];\n } while (annotation && annotation.row == row);\n return matched.length && matched;\n}\nexports.showErrorMarker = function (editor, dir) {\n var session = editor.session;\n if (!session.widgetManager) {\n session.widgetManager = new LineWidgets(session);\n session.widgetManager.attach(editor);\n }\n var pos = editor.getCursorPosition();\n var row = pos.row;\n var oldWidget = session.widgetManager.getWidgetsAtRow(row).filter(function (w) {\n return w.type == \"errorMarker\";\n })[0];\n if (oldWidget) {\n oldWidget.destroy();\n }\n else {\n row -= dir;\n }\n var annotations = findAnnotations(session, row, dir);\n var gutterAnno;\n if (annotations) {\n var annotation = annotations[0];\n pos.column = (annotation.pos && typeof annotation.column != \"number\"\n ? annotation.pos.sc\n : annotation.column) || 0;\n pos.row = annotation.row;\n gutterAnno = editor.renderer.$gutterLayer.$annotations[pos.row];\n }\n else if (oldWidget) {\n return;\n }\n else {\n gutterAnno = {\n text: [nls(\"Looks good!\")],\n className: \"ace_ok\"\n };\n }\n editor.session.unfold(pos.row);\n editor.selection.moveToPosition(pos);\n var w = {\n row: pos.row,\n fixedWidth: true,\n coverGutter: true,\n el: dom.createElement(\"div\"),\n type: \"errorMarker\"\n };\n var el = w.el.appendChild(dom.createElement(\"div\"));\n var arrow = w.el.appendChild(dom.createElement(\"div\"));\n arrow.className = \"error_widget_arrow \" + gutterAnno.className;\n var left = editor.renderer.$cursorLayer\n .getPixelPosition(pos).left;\n arrow.style.left = left + editor.renderer.gutterWidth - 5 + \"px\";\n w.el.className = \"error_widget_wrapper\";\n el.className = \"error_widget \" + gutterAnno.className;\n el.innerHTML = gutterAnno.text.join(\"
    \");\n el.appendChild(dom.createElement(\"div\"));\n var kb = function (_, hashId, keyString) {\n if (hashId === 0 && (keyString === \"esc\" || keyString === \"return\")) {\n w.destroy();\n return { command: \"null\" };\n }\n };\n w.destroy = function () {\n if (editor.$mouseHandler.isMousePressed)\n return;\n editor.keyBinding.removeKeyboardHandler(kb);\n session.widgetManager.removeLineWidget(w);\n editor.off(\"changeSelection\", w.destroy);\n editor.off(\"changeSession\", w.destroy);\n editor.off(\"mouseup\", w.destroy);\n editor.off(\"change\", w.destroy);\n };\n editor.keyBinding.addKeyboardHandler(kb);\n editor.on(\"changeSelection\", w.destroy);\n editor.on(\"changeSession\", w.destroy);\n editor.on(\"mouseup\", w.destroy);\n editor.on(\"change\", w.destroy);\n editor.session.widgetManager.addLineWidget(w);\n w.el.onmousedown = editor.focus.bind(editor);\n editor.renderer.scrollCursorIntoView(null, 0.5, { bottom: w.el.offsetHeight });\n};\ndom.importCssString(\"\\n .error_widget_wrapper {\\n background: inherit;\\n color: inherit;\\n border:none\\n }\\n .error_widget {\\n border-top: solid 2px;\\n border-bottom: solid 2px;\\n margin: 5px 0;\\n padding: 10px 40px;\\n white-space: pre-wrap;\\n }\\n .error_widget.ace_error, .error_widget_arrow.ace_error{\\n border-color: #ff5a5a\\n }\\n .error_widget.ace_warning, .error_widget_arrow.ace_warning{\\n border-color: #F1D817\\n }\\n .error_widget.ace_info, .error_widget_arrow.ace_info{\\n border-color: #5a5a5a\\n }\\n .error_widget.ace_ok, .error_widget_arrow.ace_ok{\\n border-color: #5aaa5a\\n }\\n .error_widget_arrow {\\n position: absolute;\\n border: solid 5px;\\n border-top-color: transparent!important;\\n border-right-color: transparent!important;\\n border-left-color: transparent!important;\\n top: -5px;\\n }\\n\", \"error_marker.css\", false);\n\n});\n\nace.define(\"ace/ace\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/range\",\"ace/editor\",\"ace/edit_session\",\"ace/undomanager\",\"ace/virtual_renderer\",\"ace/worker/worker_client\",\"ace/keyboard/hash_handler\",\"ace/placeholder\",\"ace/multi_select\",\"ace/mode/folding/fold_mode\",\"ace/theme/textmate\",\"ace/ext/error_marker\",\"ace/config\",\"ace/loader_build\"], function(require, exports, module){/**\n * The main class required to set up an Ace instance in the browser.\n *\n * @class Ace\n **/\n\"use strict\";\nrequire(\"./loader_build\")(exports)\nvar dom = require(\"./lib/dom\");\nvar Range = require(\"./range\").Range;\nvar Editor = require(\"./editor\").Editor;\nvar EditSession = require(\"./edit_session\").EditSession;\nvar UndoManager = require(\"./undomanager\").UndoManager;\nvar Renderer = require(\"./virtual_renderer\").VirtualRenderer;\nrequire(\"./worker/worker_client\");\nrequire(\"./keyboard/hash_handler\");\nrequire(\"./placeholder\");\nrequire(\"./multi_select\");\nrequire(\"./mode/folding/fold_mode\");\nrequire(\"./theme/textmate\");\nrequire(\"./ext/error_marker\");\nexports.config = require(\"./config\");\nexports.edit = function (el, options) {\n if (typeof el == \"string\") {\n var _id = el;\n el = document.getElementById(_id);\n if (!el)\n throw new Error(\"ace.edit can't find div #\" + _id);\n }\n if (el && el.env && el.env.editor instanceof Editor)\n return el.env.editor;\n var value = \"\";\n if (el && /input|textarea/i.test(el.tagName)) {\n var oldNode = el;\n value = oldNode.value;\n el = dom.createElement(\"pre\");\n oldNode.parentNode.replaceChild(el, oldNode);\n }\n else if (el) {\n value = el.textContent;\n el.innerHTML = \"\";\n }\n var doc = exports.createEditSession(value);\n var editor = new Editor(new Renderer(el), doc, options);\n var env = {\n document: doc,\n editor: editor,\n onResize: editor.resize.bind(editor, null)\n };\n if (oldNode)\n env.textarea = oldNode;\n editor.on(\"destroy\", function () {\n env.editor.container.env = null; // prevent memory leak on old ie\n });\n editor.container.env = editor.env = env;\n return editor;\n};\nexports.createEditSession = function (text, mode) {\n var doc = new EditSession(text, mode);\n doc.setUndoManager(new UndoManager());\n return doc;\n};\nexports.Range = Range;\nexports.Editor = Editor;\nexports.EditSession = EditSession;\nexports.UndoManager = UndoManager;\nexports.VirtualRenderer = Renderer;\nexports.version = exports.config.version;\n\n}); (function() {\n ace.require([\"ace/ace\"], function(a) {\n if (a) {\n a.config.init(true);\n a.define = ace.define;\n }\n var global = (function () {\n return this;\n })();\n if (!global && typeof window != \"undefined\") global = window; // can happen in strict mode\n if (!global && typeof self != \"undefined\") global = self; // can happen in webworker\n \n if (!global.ace)\n global.ace = a;\n for (var key in a) if (a.hasOwnProperty(key))\n global.ace[key] = a[key];\n global.ace[\"default\"] = global.ace;\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = global.ace;\n }\n });\n })();\n ","ace.define(\"ace/ext/beautify\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"], function(require, exports, module){// [WIP]\n\"use strict\";\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nfunction is(token, type) {\n return token.type.lastIndexOf(type + \".xml\") > -1;\n}\nexports.singletonTags = [\"area\", \"base\", \"br\", \"col\", \"command\", \"embed\", \"hr\", \"html\", \"img\", \"input\", \"keygen\", \"link\", \"meta\", \"param\", \"source\", \"track\", \"wbr\"];\nexports.blockTags = [\"article\", \"aside\", \"blockquote\", \"body\", \"div\", \"dl\", \"fieldset\", \"footer\", \"form\", \"head\", \"header\", \"html\", \"nav\", \"ol\", \"p\", \"script\", \"section\", \"style\", \"table\", \"tbody\", \"tfoot\", \"thead\", \"ul\"];\nexports.formatOptions = {\n lineBreaksAfterCommasInCurlyBlock: true\n};\nexports.beautify = function (session) {\n var iterator = new TokenIterator(session, 0, 0);\n var token = iterator.getCurrentToken();\n var tabString = session.getTabString();\n var singletonTags = exports.singletonTags;\n var blockTags = exports.blockTags;\n var formatOptions = exports.formatOptions || {};\n var nextToken;\n var breakBefore = false;\n var spaceBefore = false;\n var spaceAfter = false;\n var code = \"\";\n var value = \"\";\n var tagName = \"\";\n var depth = 0;\n var lastDepth = 0;\n var lastIndent = 0;\n var indent = 0;\n var unindent = 0;\n var roundDepth = 0;\n var curlyDepth = 0;\n var row;\n var curRow = 0;\n var rowsToAdd = 0;\n var rowTokens = [];\n var abort = false;\n var i;\n var indentNextLine = false;\n var inTag = false;\n var inCSS = false;\n var inBlock = false;\n var levels = { 0: 0 };\n var parents = [];\n var caseBody = false;\n var trimNext = function () {\n if (nextToken && nextToken.value && nextToken.type !== 'string.regexp')\n nextToken.value = nextToken.value.replace(/^\\s*/, \"\");\n };\n var trimLine = function () {\n var end = code.length - 1;\n while (true) {\n if (end == 0)\n break;\n if (code[end] !== \" \")\n break;\n end = end - 1;\n }\n code = code.slice(0, end + 1);\n };\n var trimCode = function () {\n code = code.trimRight();\n breakBefore = false;\n };\n while (token !== null) {\n curRow = iterator.getCurrentTokenRow();\n rowTokens = iterator.$rowTokens;\n nextToken = iterator.stepForward();\n if (typeof token !== \"undefined\") {\n value = token.value;\n unindent = 0;\n inCSS = (tagName === \"style\" || session.$modeId === \"ace/mode/css\");\n if (is(token, \"tag-open\")) {\n inTag = true;\n if (nextToken)\n inBlock = (blockTags.indexOf(nextToken.value) !== -1);\n if (value === \" 0; rowsToAdd--)\n code += \"\\n\";\n breakBefore = true;\n if (!is(token, \"comment\") && !token.type.match(/^(comment|string)$/))\n value = value.trimLeft();\n }\n if (value) {\n if (token.type === \"keyword\" && value.match(/^(if|else|elseif|for|foreach|while|switch)$/)) {\n parents[depth] = value;\n trimNext();\n spaceAfter = true;\n if (value.match(/^(else|elseif)$/)) {\n if (code.match(/\\}[\\s]*$/)) {\n trimCode();\n spaceBefore = true;\n }\n }\n }\n else if (token.type === \"paren.lparen\") {\n trimNext();\n if (value.substr(-1) === \"{\") {\n spaceAfter = true;\n indentNextLine = false;\n if (!inTag)\n rowsToAdd = 1;\n }\n if (value.substr(0, 1) === \"{\") {\n spaceBefore = true;\n if (code.substr(-1) !== '[' && code.trimRight().substr(-1) === '[') {\n trimCode();\n spaceBefore = false;\n }\n else if (code.trimRight().substr(-1) === ')') {\n trimCode();\n }\n else {\n trimLine();\n }\n }\n }\n else if (token.type === \"paren.rparen\") {\n unindent = 1;\n if (value.substr(0, 1) === \"}\") {\n if (parents[depth - 1] === 'case')\n unindent++;\n if (code.trimRight().substr(-1) === '{') {\n trimCode();\n }\n else {\n spaceBefore = true;\n if (inCSS)\n rowsToAdd += 2;\n }\n }\n if (value.substr(0, 1) === \"]\") {\n if (code.substr(-1) !== '}' && code.trimRight().substr(-1) === '}') {\n spaceBefore = false;\n indent++;\n trimCode();\n }\n }\n if (value.substr(0, 1) === \")\") {\n if (code.substr(-1) !== '(' && code.trimRight().substr(-1) === '(') {\n spaceBefore = false;\n indent++;\n trimCode();\n }\n }\n trimLine();\n }\n else if ((token.type === \"keyword.operator\" || token.type === \"keyword\") && value.match(/^(=|==|===|!=|!==|&&|\\|\\||and|or|xor|\\+=|.=|>|>=|<|<=|=>)$/)) {\n trimCode();\n trimNext();\n spaceBefore = true;\n spaceAfter = true;\n }\n else if (token.type === \"punctuation.operator\" && value === ';') {\n trimCode();\n trimNext();\n spaceAfter = true;\n if (inCSS)\n rowsToAdd++;\n }\n else if (token.type === \"punctuation.operator\" && value.match(/^(:|,)$/)) {\n trimCode();\n trimNext();\n if (value.match(/^(,)$/) && curlyDepth > 0 && roundDepth === 0 && formatOptions.lineBreaksAfterCommasInCurlyBlock) {\n rowsToAdd++;\n }\n else {\n spaceAfter = true;\n breakBefore = false;\n }\n }\n else if (token.type === \"support.php_tag\" && value === \"?>\" && !breakBefore) {\n trimCode();\n spaceBefore = true;\n }\n else if (is(token, \"attribute-name\") && code.substr(-1).match(/^\\s$/)) {\n spaceBefore = true;\n }\n else if (is(token, \"attribute-equals\")) {\n trimLine();\n trimNext();\n }\n else if (is(token, \"tag-close\")) {\n trimLine();\n if (value === \"/>\")\n spaceBefore = true;\n }\n else if (token.type === \"keyword\" && value.match(/^(case|default)$/)) {\n if (caseBody)\n unindent = 1;\n }\n if (breakBefore && !(token.type.match(/^(comment)$/) && !value.substr(0, 1).match(/^[/#]$/)) && !(token.type.match(/^(string)$/) && !value.substr(0, 1).match(/^['\"@]$/))) {\n indent = lastIndent;\n if (depth > lastDepth) {\n indent++;\n for (i = depth; i > lastDepth; i--)\n levels[i] = indent;\n }\n else if (depth < lastDepth)\n indent = levels[depth];\n lastDepth = depth;\n lastIndent = indent;\n if (unindent)\n indent -= unindent;\n if (indentNextLine && !roundDepth) {\n indent++;\n indentNextLine = false;\n }\n for (i = 0; i < indent; i++)\n code += tabString;\n }\n if (token.type === \"keyword\" && value.match(/^(case|default)$/)) {\n if (caseBody === false) {\n parents[depth] = value;\n depth++;\n caseBody = true;\n }\n }\n else if (token.type === \"keyword\" && value.match(/^(break)$/)) {\n if (parents[depth - 1] && parents[depth - 1].match(/^(case|default)$/)) {\n depth--;\n caseBody = false;\n }\n }\n if (token.type === \"paren.lparen\") {\n roundDepth += (value.match(/\\(/g) || []).length;\n curlyDepth += (value.match(/\\{/g) || []).length;\n depth += value.length;\n }\n if (token.type === \"keyword\" && value.match(/^(if|else|elseif|for|while)$/)) {\n indentNextLine = true;\n roundDepth = 0;\n }\n else if (!roundDepth && value.trim() && token.type !== \"comment\")\n indentNextLine = false;\n if (token.type === \"paren.rparen\") {\n roundDepth -= (value.match(/\\)/g) || []).length;\n curlyDepth -= (value.match(/\\}/g) || []).length;\n for (i = 0; i < value.length; i++) {\n depth--;\n if (value.substr(i, 1) === '}' && parents[depth] === 'case') {\n depth--;\n }\n }\n }\n if (token.type == \"text\")\n value = value.replace(/\\s+$/, \" \");\n if (spaceBefore && !breakBefore) {\n trimLine();\n if (code.substr(-1) !== \"\\n\")\n code += \" \";\n }\n code += value;\n if (spaceAfter)\n code += \" \";\n breakBefore = false;\n spaceBefore = false;\n spaceAfter = false;\n if ((is(token, \"tag-close\") && (inBlock || blockTags.indexOf(tagName) !== -1)) || (is(token, \"doctype\") && value === \">\")) {\n if (inBlock && nextToken && nextToken.value === \"\") {\n depth--;\n }\n }\n if (is(token, \"tag-name\")) {\n tagName = value;\n }\n row = curRow;\n }\n }\n token = nextToken;\n }\n code = code.trim();\n session.doc.setValue(code);\n};\nexports.commands = [{\n name: \"beautify\",\n description: \"Format selection (Beautify)\",\n exec: function (editor) {\n exports.beautify(editor.session);\n },\n bindKey: \"Ctrl-Shift-B\"\n }];\n\n}); (function() {\n ace.require([\"ace/ext/beautify\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/ext/searchbox-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){module.exports = \"\\n\\n/* ------------------------------------------------------------------------------------------\\n * Editor Search Form\\n * --------------------------------------------------------------------------------------- */\\n.ace_search {\\n background-color: #ddd;\\n color: #666;\\n border: 1px solid #cbcbcb;\\n border-top: 0 none;\\n overflow: hidden;\\n margin: 0;\\n padding: 4px 6px 0 4px;\\n position: absolute;\\n top: 0;\\n z-index: 99;\\n white-space: normal;\\n}\\n.ace_search.left {\\n border-left: 0 none;\\n border-radius: 0px 0px 5px 0px;\\n left: 0;\\n}\\n.ace_search.right {\\n border-radius: 0px 0px 0px 5px;\\n border-right: 0 none;\\n right: 0;\\n}\\n\\n.ace_search_form, .ace_replace_form {\\n margin: 0 20px 4px 0;\\n overflow: hidden;\\n line-height: 1.9;\\n}\\n.ace_replace_form {\\n margin-right: 0;\\n}\\n.ace_search_form.ace_nomatch {\\n outline: 1px solid red;\\n}\\n\\n.ace_search_field {\\n border-radius: 3px 0 0 3px;\\n background-color: white;\\n color: black;\\n border: 1px solid #cbcbcb;\\n border-right: 0 none;\\n outline: 0;\\n padding: 0;\\n font-size: inherit;\\n margin: 0;\\n line-height: inherit;\\n padding: 0 6px;\\n min-width: 17em;\\n vertical-align: top;\\n min-height: 1.8em;\\n box-sizing: content-box;\\n}\\n.ace_searchbtn {\\n border: 1px solid #cbcbcb;\\n line-height: inherit;\\n display: inline-block;\\n padding: 0 6px;\\n background: #fff;\\n border-right: 0 none;\\n border-left: 1px solid #dcdcdc;\\n cursor: pointer;\\n margin: 0;\\n position: relative;\\n color: #666;\\n}\\n.ace_searchbtn:last-child {\\n border-radius: 0 3px 3px 0;\\n border-right: 1px solid #cbcbcb;\\n}\\n.ace_searchbtn:disabled {\\n background: none;\\n cursor: default;\\n}\\n.ace_searchbtn:hover {\\n background-color: #eef1f6;\\n}\\n.ace_searchbtn.prev, .ace_searchbtn.next {\\n padding: 0px 0.7em\\n}\\n.ace_searchbtn.prev:after, .ace_searchbtn.next:after {\\n content: \\\"\\\";\\n border: solid 2px #888;\\n width: 0.5em;\\n height: 0.5em;\\n border-width: 2px 0 0 2px;\\n display:inline-block;\\n transform: rotate(-45deg);\\n}\\n.ace_searchbtn.next:after {\\n border-width: 0 2px 2px 0 ;\\n}\\n.ace_searchbtn_close {\\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\\n border-radius: 50%;\\n border: 0 none;\\n color: #656565;\\n cursor: pointer;\\n font: 16px/16px Arial;\\n padding: 0;\\n height: 14px;\\n width: 14px;\\n top: 9px;\\n right: 7px;\\n position: absolute;\\n}\\n.ace_searchbtn_close:hover {\\n background-color: #656565;\\n background-position: 50% 100%;\\n color: white;\\n}\\n\\n.ace_button {\\n margin-left: 2px;\\n cursor: pointer;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -o-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n overflow: hidden;\\n opacity: 0.7;\\n border: 1px solid rgba(100,100,100,0.23);\\n padding: 1px;\\n box-sizing: border-box!important;\\n color: black;\\n}\\n\\n.ace_button:hover {\\n background-color: #eee;\\n opacity:1;\\n}\\n.ace_button:active {\\n background-color: #ddd;\\n}\\n\\n.ace_button.checked {\\n border-color: #3399ff;\\n opacity:1;\\n}\\n\\n.ace_search_options{\\n margin-bottom: 3px;\\n text-align: right;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -o-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n clear: both;\\n}\\n\\n.ace_search_counter {\\n float: left;\\n font-family: arial;\\n padding: 0 8px;\\n}\";\n\n});\n\nace.define(\"ace/ext/searchbox\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/event\",\"ace/ext/searchbox-css\",\"ace/keyboard/hash_handler\",\"ace/lib/keys\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar event = require(\"../lib/event\");\nvar searchboxCss = require(\"./searchbox-css\");\nvar HashHandler = require(\"../keyboard/hash_handler\").HashHandler;\nvar keyUtil = require(\"../lib/keys\");\nvar nls = require(\"../config\").nls;\nvar MAX_COUNT = 999;\ndom.importCssString(searchboxCss, \"ace_searchbox\", false);\nvar SearchBox = /** @class */ (function () {\n function SearchBox(editor, range, showReplaceForm) {\n var div = dom.createElement(\"div\");\n dom.buildDom([\"div\", { class: \"ace_search right\" },\n [\"span\", { action: \"hide\", class: \"ace_searchbtn_close\" }],\n [\"div\", { class: \"ace_search_form\" },\n [\"input\", { class: \"ace_search_field\", placeholder: nls(\"Search for\"), spellcheck: \"false\" }],\n [\"span\", { action: \"findPrev\", class: \"ace_searchbtn prev\" }, \"\\u200b\"],\n [\"span\", { action: \"findNext\", class: \"ace_searchbtn next\" }, \"\\u200b\"],\n [\"span\", { action: \"findAll\", class: \"ace_searchbtn\", title: \"Alt-Enter\" }, nls(\"All\")]\n ],\n [\"div\", { class: \"ace_replace_form\" },\n [\"input\", { class: \"ace_search_field\", placeholder: nls(\"Replace with\"), spellcheck: \"false\" }],\n [\"span\", { action: \"replaceAndFindNext\", class: \"ace_searchbtn\" }, nls(\"Replace\")],\n [\"span\", { action: \"replaceAll\", class: \"ace_searchbtn\" }, nls(\"All\")]\n ],\n [\"div\", { class: \"ace_search_options\" },\n [\"span\", { action: \"toggleReplace\", class: \"ace_button\", title: nls(\"Toggle Replace mode\"),\n style: \"float:left;margin-top:-2px;padding:0 5px;\" }, \"+\"],\n [\"span\", { class: \"ace_search_counter\" }],\n [\"span\", { action: \"toggleRegexpMode\", class: \"ace_button\", title: nls(\"RegExp Search\") }, \".*\"],\n [\"span\", { action: \"toggleCaseSensitive\", class: \"ace_button\", title: nls(\"CaseSensitive Search\") }, \"Aa\"],\n [\"span\", { action: \"toggleWholeWords\", class: \"ace_button\", title: nls(\"Whole Word Search\") }, \"\\\\b\"],\n [\"span\", { action: \"searchInSelection\", class: \"ace_button\", title: nls(\"Search In Selection\") }, \"S\"]\n ]\n ], div);\n this.element = div.firstChild;\n this.setSession = this.setSession.bind(this);\n this.$init();\n this.setEditor(editor);\n dom.importCssString(searchboxCss, \"ace_searchbox\", editor.container);\n }\n SearchBox.prototype.setEditor = function (editor) {\n editor.searchBox = this;\n editor.renderer.scroller.appendChild(this.element);\n this.editor = editor;\n };\n SearchBox.prototype.setSession = function (e) {\n this.searchRange = null;\n this.$syncOptions(true);\n };\n SearchBox.prototype.$initElements = function (sb) {\n this.searchBox = sb.querySelector(\".ace_search_form\");\n this.replaceBox = sb.querySelector(\".ace_replace_form\");\n this.searchOption = sb.querySelector(\"[action=searchInSelection]\");\n this.replaceOption = sb.querySelector(\"[action=toggleReplace]\");\n this.regExpOption = sb.querySelector(\"[action=toggleRegexpMode]\");\n this.caseSensitiveOption = sb.querySelector(\"[action=toggleCaseSensitive]\");\n this.wholeWordOption = sb.querySelector(\"[action=toggleWholeWords]\");\n this.searchInput = this.searchBox.querySelector(\".ace_search_field\");\n this.replaceInput = this.replaceBox.querySelector(\".ace_search_field\");\n this.searchCounter = sb.querySelector(\".ace_search_counter\");\n };\n SearchBox.prototype.$init = function () {\n var sb = this.element;\n this.$initElements(sb);\n var _this = this;\n event.addListener(sb, \"mousedown\", function (e) {\n setTimeout(function () {\n _this.activeInput.focus();\n }, 0);\n event.stopPropagation(e);\n });\n event.addListener(sb, \"click\", function (e) {\n var t = e.target || e.srcElement;\n var action = t.getAttribute(\"action\");\n if (action && _this[action])\n _this[action]();\n else if (_this.$searchBarKb.commands[action])\n _this.$searchBarKb.commands[action].exec(_this);\n event.stopPropagation(e);\n });\n event.addCommandKeyListener(sb, function (e, hashId, keyCode) {\n var keyString = keyUtil.keyCodeToString(keyCode);\n var command = _this.$searchBarKb.findKeyCommand(hashId, keyString);\n if (command && command.exec) {\n command.exec(_this);\n event.stopEvent(e);\n }\n });\n this.$onChange = lang.delayedCall(function () {\n _this.find(false, false);\n });\n event.addListener(this.searchInput, \"input\", function () {\n _this.$onChange.schedule(20);\n });\n event.addListener(this.searchInput, \"focus\", function () {\n _this.activeInput = _this.searchInput;\n _this.searchInput.value && _this.highlight();\n });\n event.addListener(this.replaceInput, \"focus\", function () {\n _this.activeInput = _this.replaceInput;\n _this.searchInput.value && _this.highlight();\n });\n };\n SearchBox.prototype.setSearchRange = function (range) {\n this.searchRange = range;\n if (range) {\n this.searchRangeMarker = this.editor.session.addMarker(range, \"ace_active-line\");\n }\n else if (this.searchRangeMarker) {\n this.editor.session.removeMarker(this.searchRangeMarker);\n this.searchRangeMarker = null;\n }\n };\n SearchBox.prototype.$syncOptions = function (preventScroll) {\n dom.setCssClass(this.replaceOption, \"checked\", this.searchRange);\n dom.setCssClass(this.searchOption, \"checked\", this.searchOption.checked);\n this.replaceOption.textContent = this.replaceOption.checked ? \"-\" : \"+\";\n dom.setCssClass(this.regExpOption, \"checked\", this.regExpOption.checked);\n dom.setCssClass(this.wholeWordOption, \"checked\", this.wholeWordOption.checked);\n dom.setCssClass(this.caseSensitiveOption, \"checked\", this.caseSensitiveOption.checked);\n var readOnly = this.editor.getReadOnly();\n this.replaceOption.style.display = readOnly ? \"none\" : \"\";\n this.replaceBox.style.display = this.replaceOption.checked && !readOnly ? \"\" : \"none\";\n this.find(false, false, preventScroll);\n };\n SearchBox.prototype.highlight = function (re) {\n this.editor.session.highlight(re || this.editor.$search.$options.re);\n this.editor.renderer.updateBackMarkers();\n };\n SearchBox.prototype.find = function (skipCurrent, backwards, preventScroll) {\n var range = this.editor.find(this.searchInput.value, {\n skipCurrent: skipCurrent,\n backwards: backwards,\n wrap: true,\n regExp: this.regExpOption.checked,\n caseSensitive: this.caseSensitiveOption.checked,\n wholeWord: this.wholeWordOption.checked,\n preventScroll: preventScroll,\n range: this.searchRange\n });\n var noMatch = !range && this.searchInput.value;\n dom.setCssClass(this.searchBox, \"ace_nomatch\", noMatch);\n this.editor._emit(\"findSearchBox\", { match: !noMatch });\n this.highlight();\n this.updateCounter();\n };\n SearchBox.prototype.updateCounter = function () {\n var editor = this.editor;\n var regex = editor.$search.$options.re;\n var supportsUnicodeFlag = regex.unicode;\n var all = 0;\n var before = 0;\n if (regex) {\n var value = this.searchRange\n ? editor.session.getTextRange(this.searchRange)\n : editor.getValue();\n var offset = editor.session.doc.positionToIndex(editor.selection.anchor);\n if (this.searchRange)\n offset -= editor.session.doc.positionToIndex(this.searchRange.start);\n var last = regex.lastIndex = 0;\n var m;\n while ((m = regex.exec(value))) {\n all++;\n last = m.index;\n if (last <= offset)\n before++;\n if (all > MAX_COUNT)\n break;\n if (!m[0]) {\n regex.lastIndex = last += lang.skipEmptyMatch(value, last, supportsUnicodeFlag);\n if (last >= value.length)\n break;\n }\n }\n }\n this.searchCounter.textContent = nls(\"$0 of $1\", [before, (all > MAX_COUNT ? MAX_COUNT + \"+\" : all)]);\n };\n SearchBox.prototype.findNext = function () {\n this.find(true, false);\n };\n SearchBox.prototype.findPrev = function () {\n this.find(true, true);\n };\n SearchBox.prototype.findAll = function () {\n var range = this.editor.findAll(this.searchInput.value, {\n regExp: this.regExpOption.checked,\n caseSensitive: this.caseSensitiveOption.checked,\n wholeWord: this.wholeWordOption.checked\n });\n var noMatch = !range && this.searchInput.value;\n dom.setCssClass(this.searchBox, \"ace_nomatch\", noMatch);\n this.editor._emit(\"findSearchBox\", { match: !noMatch });\n this.highlight();\n this.hide();\n };\n SearchBox.prototype.replace = function () {\n if (!this.editor.getReadOnly())\n this.editor.replace(this.replaceInput.value);\n };\n SearchBox.prototype.replaceAndFindNext = function () {\n if (!this.editor.getReadOnly()) {\n this.editor.replace(this.replaceInput.value);\n this.findNext();\n }\n };\n SearchBox.prototype.replaceAll = function () {\n if (!this.editor.getReadOnly())\n this.editor.replaceAll(this.replaceInput.value);\n };\n SearchBox.prototype.hide = function () {\n this.active = false;\n this.setSearchRange(null);\n this.editor.off(\"changeSession\", this.setSession);\n this.element.style.display = \"none\";\n this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb);\n this.editor.focus();\n };\n SearchBox.prototype.show = function (value, isReplace) {\n this.active = true;\n this.editor.on(\"changeSession\", this.setSession);\n this.element.style.display = \"\";\n this.replaceOption.checked = isReplace;\n if (value)\n this.searchInput.value = value;\n this.searchInput.focus();\n this.searchInput.select();\n this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb);\n this.$syncOptions(true);\n };\n SearchBox.prototype.isFocused = function () {\n var el = document.activeElement;\n return el == this.searchInput || el == this.replaceInput;\n };\n return SearchBox;\n}());\nvar $searchBarKb = new HashHandler();\n$searchBarKb.bindKeys({\n \"Ctrl-f|Command-f\": function (sb) {\n var isReplace = sb.isReplace = !sb.isReplace;\n sb.replaceBox.style.display = isReplace ? \"\" : \"none\";\n sb.replaceOption.checked = false;\n sb.$syncOptions();\n sb.searchInput.focus();\n },\n \"Ctrl-H|Command-Option-F\": function (sb) {\n if (sb.editor.getReadOnly())\n return;\n sb.replaceOption.checked = true;\n sb.$syncOptions();\n sb.replaceInput.focus();\n },\n \"Ctrl-G|Command-G\": function (sb) {\n sb.findNext();\n },\n \"Ctrl-Shift-G|Command-Shift-G\": function (sb) {\n sb.findPrev();\n },\n \"esc\": function (sb) {\n setTimeout(function () { sb.hide(); });\n },\n \"Return\": function (sb) {\n if (sb.activeInput == sb.replaceInput)\n sb.replace();\n sb.findNext();\n },\n \"Shift-Return\": function (sb) {\n if (sb.activeInput == sb.replaceInput)\n sb.replace();\n sb.findPrev();\n },\n \"Alt-Return\": function (sb) {\n if (sb.activeInput == sb.replaceInput)\n sb.replaceAll();\n sb.findAll();\n },\n \"Tab\": function (sb) {\n (sb.activeInput == sb.replaceInput ? sb.searchInput : sb.replaceInput).focus();\n }\n});\n$searchBarKb.addCommands([{\n name: \"toggleRegexpMode\",\n bindKey: { win: \"Alt-R|Alt-/\", mac: \"Ctrl-Alt-R|Ctrl-Alt-/\" },\n exec: function (sb) {\n sb.regExpOption.checked = !sb.regExpOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"toggleCaseSensitive\",\n bindKey: { win: \"Alt-C|Alt-I\", mac: \"Ctrl-Alt-R|Ctrl-Alt-I\" },\n exec: function (sb) {\n sb.caseSensitiveOption.checked = !sb.caseSensitiveOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"toggleWholeWords\",\n bindKey: { win: \"Alt-B|Alt-W\", mac: \"Ctrl-Alt-B|Ctrl-Alt-W\" },\n exec: function (sb) {\n sb.wholeWordOption.checked = !sb.wholeWordOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"toggleReplace\",\n exec: function (sb) {\n sb.replaceOption.checked = !sb.replaceOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"searchInSelection\",\n exec: function (sb) {\n sb.searchOption.checked = !sb.searchRange;\n sb.setSearchRange(sb.searchOption.checked && sb.editor.getSelectionRange());\n sb.$syncOptions();\n }\n }]);\nvar $closeSearchBarKb = new HashHandler([{\n bindKey: \"Esc\",\n name: \"closeSearchBar\",\n exec: function (editor) {\n editor.searchBox.hide();\n }\n }]);\nSearchBox.prototype.$searchBarKb = $searchBarKb;\nSearchBox.prototype.$closeSearchBarKb = $closeSearchBarKb;\nexports.SearchBox = SearchBox;\nexports.Search = function (editor, isReplace) {\n var sb = editor.searchBox || new SearchBox(editor);\n sb.show(editor.session.getTextRange(), isReplace);\n};\n\n}); (function() {\n ace.require([\"ace/ext/searchbox\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar supportType = exports.supportType = \"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\";\nvar supportFunction = exports.supportFunction = \"rgb|rgba|url|attr|counter|counters\";\nvar supportConstant = exports.supportConstant = \"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|flex-end|flex-start|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom\";\nvar supportConstantColor = exports.supportConstantColor = \"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen\";\nvar supportConstantFonts = exports.supportConstantFonts = \"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\";\nvar numRe = exports.numRe = \"\\\\-?(?:(?:[0-9]+(?:\\\\.[0-9]+)?)|(?:\\\\.[0-9]+))\";\nvar pseudoElements = exports.pseudoElements = \"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\";\nvar pseudoClasses = exports.pseudoClasses = \"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\";\nvar CssHighlightRules = function () {\n var keywordMapper = this.createKeywordMapper({\n \"support.function\": supportFunction,\n \"support.constant\": supportConstant,\n \"support.type\": supportType,\n \"support.constant.color\": supportConstantColor,\n \"support.constant.fonts\": supportConstantFonts\n }, \"text\", true);\n this.$rules = {\n \"start\": [{\n include: [\"strings\", \"url\", \"comments\"]\n }, {\n token: \"paren.lparen\",\n regex: \"\\\\{\",\n next: \"ruleset\"\n }, {\n token: \"paren.rparen\",\n regex: \"\\\\}\"\n }, {\n token: \"string\",\n regex: \"@(?!viewport)\",\n next: \"media\"\n }, {\n token: \"keyword\",\n regex: \"#[a-z0-9-_]+\"\n }, {\n token: \"keyword\",\n regex: \"%\"\n }, {\n token: \"variable\",\n regex: \"\\\\.[a-z0-9-_]+\"\n }, {\n token: \"string\",\n regex: \":[a-z0-9-_]+\"\n }, {\n token: \"constant.numeric\",\n regex: numRe\n }, {\n token: \"constant\",\n regex: \"[a-z0-9-_]+\"\n }, {\n caseInsensitive: true\n }],\n \"media\": [{\n include: [\"strings\", \"url\", \"comments\"]\n }, {\n token: \"paren.lparen\",\n regex: \"\\\\{\",\n next: \"start\"\n }, {\n token: \"paren.rparen\",\n regex: \"\\\\}\",\n next: \"start\"\n }, {\n token: \"string\",\n regex: \";\",\n next: \"start\"\n }, {\n token: \"keyword\",\n regex: \"(?:media|supports|document|charset|import|namespace|media|supports|document\"\n + \"|page|font|keyframes|viewport|counter-style|font-feature-values\"\n + \"|swash|ornaments|annotation|stylistic|styleset|character-variant)\"\n }],\n \"comments\": [{\n token: \"comment\",\n regex: \"\\\\/\\\\*\",\n push: [{\n token: \"comment\",\n regex: \"\\\\*\\\\/\",\n next: \"pop\"\n }, {\n defaultToken: \"comment\"\n }]\n }],\n \"ruleset\": [{\n regex: \"-(webkit|ms|moz|o)-\",\n token: \"text\"\n }, {\n token: \"punctuation.operator\",\n regex: \"[:;]\"\n }, {\n token: \"paren.rparen\",\n regex: \"\\\\}\",\n next: \"start\"\n }, {\n include: [\"strings\", \"url\", \"comments\"]\n }, {\n token: [\"constant.numeric\", \"keyword\"],\n regex: \"(\" + numRe + \")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)\"\n }, {\n token: \"constant.numeric\",\n regex: numRe\n }, {\n token: \"constant.numeric\",\n regex: \"#[a-f0-9]{6}\"\n }, {\n token: \"constant.numeric\",\n regex: \"#[a-f0-9]{3}\"\n }, {\n token: [\"punctuation\", \"entity.other.attribute-name.pseudo-element.css\"],\n regex: pseudoElements\n }, {\n token: [\"punctuation\", \"entity.other.attribute-name.pseudo-class.css\"],\n regex: pseudoClasses\n }, {\n include: \"url\"\n }, {\n token: keywordMapper,\n regex: \"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"\n }, {\n caseInsensitive: true\n }],\n url: [{\n token: \"support.function\",\n regex: \"(?:url(:?-prefix)?|domain|regexp)\\\\(\",\n push: [{\n token: \"support.function\",\n regex: \"\\\\)\",\n next: \"pop\"\n }, {\n defaultToken: \"string\"\n }]\n }],\n strings: [{\n token: \"string.start\",\n regex: \"'\",\n push: [{\n token: \"string.end\",\n regex: \"'|$\",\n next: \"pop\"\n }, {\n include: \"escapes\"\n }, {\n token: \"constant.language.escape\",\n regex: /\\\\$/,\n consumeLineEnd: true\n }, {\n defaultToken: \"string\"\n }]\n }, {\n token: \"string.start\",\n regex: '\"',\n push: [{\n token: \"string.end\",\n regex: '\"|$',\n next: \"pop\"\n }, {\n include: \"escapes\"\n }, {\n token: \"constant.language.escape\",\n regex: /\\\\$/,\n consumeLineEnd: true\n }, {\n defaultToken: \"string\"\n }]\n }],\n escapes: [{\n token: \"constant.language.escape\",\n regex: /\\\\([a-fA-F\\d]{1,6}|[^a-fA-F\\d])/\n }]\n };\n this.normalizeRules();\n};\noop.inherits(CssHighlightRules, TextHighlightRules);\nexports.CssHighlightRules = CssHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar propertyMap = {\n \"background\": { \"#$0\": 1 },\n \"background-color\": { \"#$0\": 1, \"transparent\": 1, \"fixed\": 1 },\n \"background-image\": { \"url('/$0')\": 1 },\n \"background-repeat\": { \"repeat\": 1, \"repeat-x\": 1, \"repeat-y\": 1, \"no-repeat\": 1, \"inherit\": 1 },\n \"background-position\": { \"bottom\": 2, \"center\": 2, \"left\": 2, \"right\": 2, \"top\": 2, \"inherit\": 2 },\n \"background-attachment\": { \"scroll\": 1, \"fixed\": 1 },\n \"background-size\": { \"cover\": 1, \"contain\": 1 },\n \"background-clip\": { \"border-box\": 1, \"padding-box\": 1, \"content-box\": 1 },\n \"background-origin\": { \"border-box\": 1, \"padding-box\": 1, \"content-box\": 1 },\n \"border\": { \"solid $0\": 1, \"dashed $0\": 1, \"dotted $0\": 1, \"#$0\": 1 },\n \"border-color\": { \"#$0\": 1 },\n \"border-style\": { \"solid\": 2, \"dashed\": 2, \"dotted\": 2, \"double\": 2, \"groove\": 2, \"hidden\": 2, \"inherit\": 2, \"inset\": 2, \"none\": 2, \"outset\": 2, \"ridged\": 2 },\n \"border-collapse\": { \"collapse\": 1, \"separate\": 1 },\n \"bottom\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"clear\": { \"left\": 1, \"right\": 1, \"both\": 1, \"none\": 1 },\n \"color\": { \"#$0\": 1, \"rgb(#$00,0,0)\": 1 },\n \"cursor\": { \"default\": 1, \"pointer\": 1, \"move\": 1, \"text\": 1, \"wait\": 1, \"help\": 1, \"progress\": 1, \"n-resize\": 1, \"ne-resize\": 1, \"e-resize\": 1, \"se-resize\": 1, \"s-resize\": 1, \"sw-resize\": 1, \"w-resize\": 1, \"nw-resize\": 1 },\n \"display\": { \"none\": 1, \"block\": 1, \"inline\": 1, \"inline-block\": 1, \"table-cell\": 1 },\n \"empty-cells\": { \"show\": 1, \"hide\": 1 },\n \"float\": { \"left\": 1, \"right\": 1, \"none\": 1 },\n \"font-family\": { \"Arial\": 2, \"Comic Sans MS\": 2, \"Consolas\": 2, \"Courier New\": 2, \"Courier\": 2, \"Georgia\": 2, \"Monospace\": 2, \"Sans-Serif\": 2, \"Segoe UI\": 2, \"Tahoma\": 2, \"Times New Roman\": 2, \"Trebuchet MS\": 2, \"Verdana\": 1 },\n \"font-size\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"font-weight\": { \"bold\": 1, \"normal\": 1 },\n \"font-style\": { \"italic\": 1, \"normal\": 1 },\n \"font-variant\": { \"normal\": 1, \"small-caps\": 1 },\n \"height\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"left\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"letter-spacing\": { \"normal\": 1 },\n \"line-height\": { \"normal\": 1 },\n \"list-style-type\": { \"none\": 1, \"disc\": 1, \"circle\": 1, \"square\": 1, \"decimal\": 1, \"decimal-leading-zero\": 1, \"lower-roman\": 1, \"upper-roman\": 1, \"lower-greek\": 1, \"lower-latin\": 1, \"upper-latin\": 1, \"georgian\": 1, \"lower-alpha\": 1, \"upper-alpha\": 1 },\n \"margin\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-right\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-left\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-top\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-bottom\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"max-height\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"max-width\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"min-height\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"min-width\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"overflow\": { \"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1 },\n \"overflow-x\": { \"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1 },\n \"overflow-y\": { \"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1 },\n \"padding\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-top\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-right\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-bottom\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-left\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"page-break-after\": { \"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1 },\n \"page-break-before\": { \"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1 },\n \"position\": { \"absolute\": 1, \"relative\": 1, \"fixed\": 1, \"static\": 1 },\n \"right\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"table-layout\": { \"fixed\": 1, \"auto\": 1 },\n \"text-decoration\": { \"none\": 1, \"underline\": 1, \"line-through\": 1, \"blink\": 1 },\n \"text-align\": { \"left\": 1, \"right\": 1, \"center\": 1, \"justify\": 1 },\n \"text-transform\": { \"capitalize\": 1, \"uppercase\": 1, \"lowercase\": 1, \"none\": 1 },\n \"top\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"vertical-align\": { \"top\": 1, \"bottom\": 1 },\n \"visibility\": { \"hidden\": 1, \"visible\": 1 },\n \"white-space\": { \"nowrap\": 1, \"normal\": 1, \"pre\": 1, \"pre-line\": 1, \"pre-wrap\": 1 },\n \"width\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"word-spacing\": { \"normal\": 1 },\n \"filter\": { \"alpha(opacity=$0100)\": 1 },\n \"text-shadow\": { \"$02px 2px 2px #777\": 1 },\n \"text-overflow\": { \"ellipsis-word\": 1, \"clip\": 1, \"ellipsis\": 1 },\n \"-moz-border-radius\": 1,\n \"-moz-border-radius-topright\": 1,\n \"-moz-border-radius-bottomright\": 1,\n \"-moz-border-radius-topleft\": 1,\n \"-moz-border-radius-bottomleft\": 1,\n \"-webkit-border-radius\": 1,\n \"-webkit-border-top-right-radius\": 1,\n \"-webkit-border-top-left-radius\": 1,\n \"-webkit-border-bottom-right-radius\": 1,\n \"-webkit-border-bottom-left-radius\": 1,\n \"-moz-box-shadow\": 1,\n \"-webkit-box-shadow\": 1,\n \"transform\": { \"rotate($00deg)\": 1, \"skew($00deg)\": 1 },\n \"-moz-transform\": { \"rotate($00deg)\": 1, \"skew($00deg)\": 1 },\n \"-webkit-transform\": { \"rotate($00deg)\": 1, \"skew($00deg)\": 1 }\n};\nvar CssCompletions = function () {\n};\n(function () {\n this.completionsDefined = false;\n this.defineCompletions = function () {\n if (document) {\n var style = document.createElement('c').style;\n for (var i in style) {\n if (typeof style[i] !== 'string')\n continue;\n var name = i.replace(/[A-Z]/g, function (x) {\n return '-' + x.toLowerCase();\n });\n if (!propertyMap.hasOwnProperty(name))\n propertyMap[name] = 1;\n }\n }\n this.completionsDefined = true;\n };\n this.getCompletions = function (state, session, pos, prefix) {\n if (!this.completionsDefined) {\n this.defineCompletions();\n }\n if (state === 'ruleset' || session.$mode.$id == \"ace/mode/scss\") {\n var line = session.getLine(pos.row).substr(0, pos.column);\n var inParens = /\\([^)]*$/.test(line);\n if (inParens) {\n line = line.substr(line.lastIndexOf('(') + 1);\n }\n if (/:[^;]+$/.test(line)) {\n /([\\w\\-]+):[^:]*$/.test(line);\n return this.getPropertyValueCompletions(state, session, pos, prefix);\n }\n else {\n return this.getPropertyCompletions(state, session, pos, prefix, inParens);\n }\n }\n return [];\n };\n this.getPropertyCompletions = function (state, session, pos, prefix, skipSemicolon) {\n skipSemicolon = skipSemicolon || false;\n var properties = Object.keys(propertyMap);\n return properties.map(function (property) {\n return {\n caption: property,\n snippet: property + ': $0' + (skipSemicolon ? '' : ';'),\n meta: \"property\",\n score: 1000000\n };\n });\n };\n this.getPropertyValueCompletions = function (state, session, pos, prefix) {\n var line = session.getLine(pos.row).substr(0, pos.column);\n var property = (/([\\w\\-]+):[^:]*$/.exec(line) || {})[1];\n if (!property)\n return [];\n var values = [];\n if (property in propertyMap && typeof propertyMap[property] === \"object\") {\n values = Object.keys(propertyMap[property]);\n }\n return values.map(function (value) {\n return {\n caption: value,\n snippet: value,\n meta: \"property value\",\n score: 1000000\n };\n });\n };\n}).call(CssCompletions.prototype);\nexports.CssCompletions = CssCompletions;\n\n});\n\nace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar CstyleBehaviour = require(\"./cstyle\").CstyleBehaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar CssBehaviour = function () {\n this.inherit(CstyleBehaviour);\n this.add(\"colon\", \"insertion\", function (state, action, editor, session, text) {\n if (text === ':' && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (token && token.value.match(/\\s+/)) {\n token = iterator.stepBackward();\n }\n if (token && token.type === 'support.type') {\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === ':') {\n return {\n text: '',\n selection: [1, 1]\n };\n }\n if (/^(\\s+[^;]|\\s*$)/.test(line.substring(cursor.column))) {\n return {\n text: ':;',\n selection: [1, 1]\n };\n }\n }\n }\n });\n this.add(\"colon\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected === ':') {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (token && token.value.match(/\\s+/)) {\n token = iterator.stepBackward();\n }\n if (token && token.type === 'support.type') {\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.end.column, range.end.column + 1);\n if (rightChar === ';') {\n range.end.column++;\n return range;\n }\n }\n }\n });\n this.add(\"semicolon\", \"insertion\", function (state, action, editor, session, text) {\n if (text === ';' && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === ';') {\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n });\n this.add(\"!important\", \"insertion\", function (state, action, editor, session, text) {\n if (text === '!' && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (/^\\s*(;|}|$)/.test(line.substring(cursor.column))) {\n return {\n text: '!important',\n selection: [10, 10]\n };\n }\n }\n });\n};\noop.inherits(CssBehaviour, CstyleBehaviour);\nexports.CssBehaviour = CssBehaviour;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CssCompletions = require(\"./css_completions\").CssCompletions;\nvar CssBehaviour = require(\"./behaviour/css\").CssBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar Mode = function () {\n this.HighlightRules = CssHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CssBehaviour();\n this.$completer = new CssCompletions();\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.foldingRules = \"cStyle\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokens = this.getTokenizer().getLineTokens(line, state).tokens;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n var match = line.match(/^.*\\{\\s*$/);\n if (match) {\n indent += tab;\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.getCompletions = function (state, session, pos, prefix) {\n return this.$completer.getCompletions(state, session, pos, prefix);\n };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/css_worker\", \"Worker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"annotate\", function (e) {\n session.setAnnotations(e.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/css\";\n this.snippetFileId = \"ace/snippets/css\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/css\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar DocCommentHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: \"comment.doc.tag\",\n regex: \"@\\\\w+(?=\\\\s|$)\"\n }, DocCommentHighlightRules.getTagRule(), {\n defaultToken: \"comment.doc\",\n caseInsensitive: true\n }\n ]\n };\n};\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\nDocCommentHighlightRules.getTagRule = function (start) {\n return {\n token: \"comment.doc.tag.storage.type\",\n regex: \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n};\nDocCommentHighlightRules.getStartRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\/\\\\*(?=\\\\*)\",\n next: start\n };\n};\nDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\*\\\\/\",\n next: start\n };\n};\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/golang_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar GolangHighlightRules = function () {\n var keywords = (\"else|break|case|return|goto|if|const|select|\" +\n \"continue|struct|default|switch|for|range|\" +\n \"func|import|package|chan|defer|fallthrough|go|interface|map|range|\" +\n \"select|type|var\");\n var builtinTypes = (\"string|uint8|uint16|uint32|uint64|int8|int16|int32|int64|float32|\" +\n \"float64|complex64|complex128|byte|rune|uint|int|uintptr|bool|error\");\n var builtinFunctions = (\"new|close|cap|copy|panic|panicln|print|println|len|make|delete|real|recover|imag|append\");\n var builtinConstants = (\"nil|true|false|iota\");\n var keywordMapper = this.createKeywordMapper({\n \"keyword\": keywords,\n \"constant.language\": builtinConstants,\n \"support.function\": builtinFunctions,\n \"support.type\": builtinTypes\n }, \"\");\n var stringEscapeRe = \"\\\\\\\\(?:[0-7]{3}|x\\\\h{2}|u{4}|U\\\\h{6}|[abfnrtv'\\\"\\\\\\\\])\".replace(/\\\\h/g, \"[a-fA-F\\\\d]\");\n this.$rules = {\n \"start\": [\n {\n token: \"comment\",\n regex: \"\\\\/\\\\/.*$\"\n },\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n {\n token: \"comment.start\",\n regex: \"\\\\/\\\\*\",\n next: \"comment\"\n }, {\n token: \"string\",\n regex: /\"(?:[^\"\\\\]|\\\\.)*?\"/\n }, {\n token: \"string\",\n regex: '`',\n next: \"bqstring\"\n }, {\n token: \"constant.numeric\",\n regex: \"'(?:[^\\\\'\\uD800-\\uDBFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|\" + stringEscapeRe.replace('\"', '') + \")'\"\n }, {\n token: \"constant.numeric\",\n regex: \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token: [\"keyword\", \"text\", \"entity.name.function\"],\n regex: \"(func)(\\\\s+)([a-zA-Z_$][a-zA-Z0-9_$]*)\\\\b\"\n }, {\n token: function (val) {\n if (val[val.length - 1] == \"(\") {\n return [{\n type: keywordMapper(val.slice(0, -1)) || \"support.function\",\n value: val.slice(0, -1)\n }, {\n type: \"paren.lparen\",\n value: val.slice(-1)\n }];\n }\n return keywordMapper(val) || \"identifier\";\n },\n regex: \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\\\\(?\"\n }, {\n token: \"keyword.operator\",\n regex: \"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=\"\n }, {\n token: \"punctuation.operator\",\n regex: \"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"\n }, {\n token: \"paren.lparen\",\n regex: \"[[({]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\])}]\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }\n ],\n \"comment\": [\n {\n token: \"comment.end\",\n regex: \"\\\\*\\\\/\",\n next: \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ],\n \"bqstring\": [\n {\n token: \"string\",\n regex: '`',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }\n ]\n };\n this.embedRules(DocCommentHighlightRules, \"doc-\", [DocCommentHighlightRules.getEndRule(\"start\")]);\n};\noop.inherits(GolangHighlightRules, TextHighlightRules);\nexports.GolangHighlightRules = GolangHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/golang\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/golang_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar GolangHighlightRules = require(\"./golang_highlight_rules\").GolangHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar Mode = function () {\n this.HighlightRules = GolangHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.foldingRules = new CStyleFoldMode();\n this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n var endState = tokenizedLine.state;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n }; //end getNextLineIndent\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.$id = \"ace/mode/golang\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/golang\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/jsdoc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar JsDocCommentHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: [\"comment.doc.tag\", \"comment.doc.text\", \"lparen.doc\"],\n regex: \"(@(?:param|member|typedef|property|namespace|var|const|callback))(\\\\s*)({)\",\n push: [\n {\n token: \"lparen.doc\",\n regex: \"{\",\n push: [\n {\n include: \"doc-syntax\"\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }\n ]\n }, {\n token: [\"rparen.doc\", \"text.doc\", \"variable.parameter.doc\", \"lparen.doc\", \"variable.parameter.doc\", \"rparen.doc\"],\n regex: /(})(\\s*)(?:([\\w=:\\/\\.]+)|(?:(\\[)([\\w=:\\/\\.]+)(\\])))/,\n next: \"pop\"\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }, {\n include: \"doc-syntax\"\n }, {\n defaultToken: \"text.doc\"\n }\n ]\n }, {\n token: [\"comment.doc.tag\", \"text.doc\", \"lparen.doc\"],\n regex: \"(@(?:returns?|yields|type|this|suppress|public|protected|private|package|modifies|\"\n + \"implements|external|exception|throws|enum|define|extends))(\\\\s*)({)\",\n push: [\n {\n token: \"lparen.doc\",\n regex: \"{\",\n push: [\n {\n include: \"doc-syntax\"\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }\n ]\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }, {\n include: \"doc-syntax\"\n }, {\n defaultToken: \"text.doc\"\n }\n ]\n }, {\n token: [\"comment.doc.tag\", \"text.doc\", \"variable.parameter.doc\"],\n regex: \"(@(?:alias|memberof|instance|module|name|lends|namespace|external|this|template|\"\n + \"requires|param|implements|function|extends|typedef|mixes|constructor|var|\"\n + \"memberof\\\\!|event|listens|exports|class|constructs|interface|emits|fires|\"\n + \"throws|const|callback|borrows|augments))(\\\\s+)(\\\\w[\\\\w#\\.:\\/~\\\"\\\\-]*)?\"\n }, {\n token: [\"comment.doc.tag\", \"text.doc\", \"variable.parameter.doc\"],\n regex: \"(@method)(\\\\s+)(\\\\w[\\\\w\\.\\\\(\\\\)]*)\"\n }, {\n token: \"comment.doc.tag\",\n regex: \"@access\\\\s+(?:private|public|protected)\"\n }, {\n token: \"comment.doc.tag\",\n regex: \"@kind\\\\s+(?:class|constant|event|external|file|function|member|mixin|module|namespace|typedef)\"\n }, {\n token: \"comment.doc.tag\",\n regex: \"@\\\\w+(?=\\\\s|$)\"\n },\n JsDocCommentHighlightRules.getTagRule(),\n {\n defaultToken: \"comment.doc\",\n caseInsensitive: true\n }\n ],\n \"doc-syntax\": [{\n token: \"operator.doc\",\n regex: /[|:]/\n }, {\n token: \"paren.doc\",\n regex: /[\\[\\]]/\n }]\n };\n this.normalizeRules();\n};\noop.inherits(JsDocCommentHighlightRules, TextHighlightRules);\nJsDocCommentHighlightRules.getTagRule = function (start) {\n return {\n token: \"comment.doc.tag.storage.type\",\n regex: \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n};\nJsDocCommentHighlightRules.getStartRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\/\\\\*(?=\\\\*)\",\n next: start\n };\n};\nJsDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\*\\\\/\",\n next: start\n };\n};\nexports.JsDocCommentHighlightRules = JsDocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/jsdoc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./jsdoc_comment_highlight_rules\").JsDocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\nvar JavaScriptHighlightRules = function (options) {\n var keywordMapper = this.createKeywordMapper({\n \"variable.language\": \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Symbol|\" + // Constructors\n \"Namespace|QName|XML|XMLList|\" + // E4X\n \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\" +\n \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\" +\n \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\" + // Errors\n \"SyntaxError|TypeError|URIError|\" +\n \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n \"isNaN|parseFloat|parseInt|\" +\n \"JSON|Math|\" + // Other\n \"this|arguments|prototype|window|document\",\n \"keyword\": \"const|yield|import|get|set|async|await|\" +\n \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static|constructor\",\n \"storage.type\": \"const|let|var|function\",\n \"constant.language\": \"null|Infinity|NaN|undefined\",\n \"support.function\": \"alert\",\n \"constant.language.boolean\": \"true|false\"\n }, \"identifier\");\n var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n \"u[0-9a-fA-F]{4}|\" + // unicode\n \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n \"[0-2][0-7]{0,2}|\" + // oct\n \"3[0-7][0-7]?|\" + // oct\n \"[4-7][0-7]?|\" + //oct\n \".)\";\n this.$rules = {\n \"no_regex\": [\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n comments(\"no_regex\"),\n {\n token: \"string\",\n regex: \"'(?=.)\",\n next: \"qstring\"\n }, {\n token: \"string\",\n regex: '\"(?=.)',\n next: \"qqstring\"\n }, {\n token: \"constant.numeric\",\n regex: /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/\n }, {\n token: \"constant.numeric\",\n regex: /(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"support.function\",\n \"punctuation.operator\", \"entity.name.function\", \"text\", \"keyword.operator\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)\",\n next: \"function_arguments\"\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\",\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex: \"(function\\\\*?)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"entity.name.function\", \"text\", \"punctuation.operator\",\n \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex: \"(:)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: \"keyword\",\n regex: \"from(?=\\\\s*('|\\\"))\"\n }, {\n token: \"keyword\",\n regex: \"(?:\" + kwBeforeRe + \")\\\\b\",\n next: \"start\"\n }, {\n token: \"support.constant\",\n regex: /that\\b/\n }, {\n token: [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n regex: /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n }, {\n token: keywordMapper,\n regex: identifierRe\n }, {\n token: \"punctuation.operator\",\n regex: /[.](?![.])/,\n next: \"property\"\n }, {\n token: \"storage.type\",\n regex: /=>/,\n next: \"start\"\n }, {\n token: \"keyword.operator\",\n regex: /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n next: \"start\"\n }, {\n token: \"punctuation.operator\",\n regex: /[?:,;.]/,\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: /[\\[({]/,\n next: \"start\"\n }, {\n token: \"paren.rparen\",\n regex: /[\\])}]/\n }, {\n token: \"comment\",\n regex: /^#!.*$/\n }\n ],\n property: [{\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\",\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: \"punctuation.operator\",\n regex: /[.](?![.])/\n }, {\n token: \"support.function\",\n regex: /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|lter|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward|rEach)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n }, {\n token: \"support.function.dom\",\n regex: /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n }, {\n token: \"support.constant\",\n regex: /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n }, {\n token: \"identifier\",\n regex: identifierRe\n }, {\n regex: \"\",\n token: \"empty\",\n next: \"no_regex\"\n }\n ],\n \"start\": [\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n comments(\"start\"),\n {\n token: \"string.regexp\",\n regex: \"\\\\/\",\n next: \"regex\"\n }, {\n token: \"text\",\n regex: \"\\\\s+|^$\",\n next: \"start\"\n }, {\n token: \"empty\",\n regex: \"\",\n next: \"no_regex\"\n }\n ],\n \"regex\": [\n {\n token: \"regexp.keyword.operator\",\n regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n }, {\n token: \"string.regexp\",\n regex: \"/[sxngimy]*\",\n next: \"no_regex\"\n }, {\n token: \"invalid\",\n regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n }, {\n token: \"constant.language.escape\",\n regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n }, {\n token: \"constant.language.delimiter\",\n regex: /\\|/\n }, {\n token: \"constant.language.escape\",\n regex: /\\[\\^?/,\n next: \"regex_character_class\"\n }, {\n token: \"empty\",\n regex: \"$\",\n next: \"no_regex\"\n }, {\n defaultToken: \"string.regexp\"\n }\n ],\n \"regex_character_class\": [\n {\n token: \"regexp.charclass.keyword.operator\",\n regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n }, {\n token: \"constant.language.escape\",\n regex: \"]\",\n next: \"regex\"\n }, {\n token: \"constant.language.escape\",\n regex: \"-\"\n }, {\n token: \"empty\",\n regex: \"$\",\n next: \"no_regex\"\n }, {\n defaultToken: \"string.regexp.charachterclass\"\n }\n ],\n \"default_parameter\": [\n {\n token: \"string\",\n regex: \"'(?=.)\",\n push: [\n {\n token: \"string\",\n regex: \"'|$\",\n next: \"pop\"\n }, {\n include: \"qstring\"\n }\n ]\n }, {\n token: \"string\",\n regex: '\"(?=.)',\n push: [\n {\n token: \"string\",\n regex: '\"|$',\n next: \"pop\"\n }, {\n include: \"qqstring\"\n }\n ]\n }, {\n token: \"constant.language\",\n regex: \"null|Infinity|NaN|undefined\"\n }, {\n token: \"constant.numeric\",\n regex: /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/\n }, {\n token: \"constant.numeric\",\n regex: /(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/\n }, {\n token: \"punctuation.operator\",\n regex: \",\",\n next: \"function_arguments\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n token: \"punctuation.operator\",\n regex: \"$\"\n }, {\n token: \"empty\",\n regex: \"\",\n next: \"no_regex\"\n }\n ],\n \"function_arguments\": [\n comments(\"function_arguments\"),\n {\n token: \"variable.parameter\",\n regex: identifierRe\n }, {\n token: \"punctuation.operator\",\n regex: \",\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n token: \"punctuation.operator\",\n regex: \"$\"\n }, {\n token: \"empty\",\n regex: \"\",\n next: \"no_regex\"\n }\n ],\n \"qqstring\": [\n {\n token: \"constant.language.escape\",\n regex: escapedRe\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n consumeLineEnd: true\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"no_regex\"\n }, {\n defaultToken: \"string\"\n }\n ],\n \"qstring\": [\n {\n token: \"constant.language.escape\",\n regex: escapedRe\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n consumeLineEnd: true\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"no_regex\"\n }, {\n defaultToken: \"string\"\n }\n ]\n };\n if (!options || !options.noES6) {\n this.$rules.no_regex.unshift({\n regex: \"[{}]\", onMatch: function (val, state, stack) {\n this.next = val == \"{\" ? this.nextState : \"\";\n if (val == \"{\" && stack.length) {\n stack.unshift(\"start\", state);\n }\n else if (val == \"}\" && stack.length) {\n stack.shift();\n this.next = stack.shift();\n if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n return \"paren.quasi.end\";\n }\n return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n },\n nextState: \"start\"\n }, {\n token: \"string.quasi.start\",\n regex: /`/,\n push: [{\n token: \"constant.language.escape\",\n regex: escapedRe\n }, {\n token: \"paren.quasi.start\",\n regex: /\\${/,\n push: \"start\"\n }, {\n token: \"string.quasi.end\",\n regex: /`/,\n next: \"pop\"\n }, {\n defaultToken: \"string.quasi\"\n }]\n }, {\n token: [\"variable.parameter\", \"text\"],\n regex: \"(\" + identifierRe + \")(\\\\s*)(?=\\\\=>)\"\n }, {\n token: \"paren.lparen\",\n regex: \"(\\\\()(?=.+\\\\s*=>)\",\n next: \"function_arguments\"\n }, {\n token: \"variable.language\",\n regex: \"(?:(?:(?:Weak)?(?:Set|Map))|Promise)\\\\b\"\n });\n this.$rules[\"function_arguments\"].unshift({\n token: \"keyword.operator\",\n regex: \"=\",\n next: \"default_parameter\"\n }, {\n token: \"keyword.operator\",\n regex: \"\\\\.{3}\"\n });\n this.$rules[\"property\"].unshift({\n token: \"support.function\",\n regex: \"(findIndex|repeat|startsWith|endsWith|includes|isSafeInteger|trunc|cbrt|log2|log10|sign|then|catch|\"\n + \"finally|resolve|reject|race|any|all|allSettled|keys|entries|isInteger)\\\\b(?=\\\\()\"\n }, {\n token: \"constant.language\",\n regex: \"(?:MAX_SAFE_INTEGER|MIN_SAFE_INTEGER|EPSILON)\\\\b\"\n });\n if (!options || options.jsx != false)\n JSX.call(this);\n }\n this.embedRules(DocCommentHighlightRules, \"doc-\", [DocCommentHighlightRules.getEndRule(\"no_regex\")]);\n this.normalizeRules();\n};\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\nfunction JSX() {\n var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n var jsxTag = {\n onMatch: function (val, state, stack) {\n var offset = val.charAt(1) == \"/\" ? 2 : 1;\n if (offset == 1) {\n if (state != this.nextState)\n stack.unshift(this.next, this.nextState, 0);\n else\n stack.unshift(this.next);\n stack[2]++;\n }\n else if (offset == 2) {\n if (state == this.nextState) {\n stack[1]--;\n if (!stack[1] || stack[1] < 0) {\n stack.shift();\n stack.shift();\n }\n }\n }\n return [{\n type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n value: val.slice(0, offset)\n }, {\n type: \"meta.tag.tag-name.xml\",\n value: val.substr(offset)\n }];\n },\n regex: \"\",\n onMatch: function (value, currentState, stack) {\n if (currentState == stack[0])\n stack.shift();\n if (value.length == 2) {\n if (stack[0] == this.nextState)\n stack[1]--;\n if (!stack[1] || stack[1] < 0) {\n stack.splice(0, 2);\n }\n }\n this.next = stack[0] || \"start\";\n return [{ type: this.token, value: value }];\n },\n nextState: \"jsx\"\n },\n jsxJsRule,\n comments(\"jsxAttributes\"),\n {\n token: \"entity.other.attribute-name.xml\",\n regex: tagRegex\n }, {\n token: \"keyword.operator.attribute-equals.xml\",\n regex: \"=\"\n }, {\n token: \"text.tag-whitespace.xml\",\n regex: \"\\\\s+\"\n }, {\n token: \"string.attribute-value.xml\",\n regex: \"'\",\n stateName: \"jsx_attr_q\",\n push: [\n { token: \"string.attribute-value.xml\", regex: \"'\", next: \"pop\" },\n { include: \"reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n }, {\n token: \"string.attribute-value.xml\",\n regex: '\"',\n stateName: \"jsx_attr_qq\",\n push: [\n { token: \"string.attribute-value.xml\", regex: '\"', next: \"pop\" },\n { include: \"reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n },\n jsxTag\n ];\n this.$rules.reference = [{\n token: \"constant.language.escape.reference.xml\",\n regex: \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }];\n}\nfunction comments(next) {\n return [\n {\n token: \"comment\",\n regex: /\\/\\*/,\n next: [\n DocCommentHighlightRules.getTagRule(),\n { token: \"comment\", regex: \"\\\\*\\\\/\", next: next || \"pop\" },\n { defaultToken: \"comment\", caseInsensitive: true }\n ]\n }, {\n token: \"comment\",\n regex: \"\\\\/\\\\/\",\n next: [\n DocCommentHighlightRules.getTagRule(),\n { token: \"comment\", regex: \"$|^\", next: next || \"pop\" },\n { defaultToken: \"comment\", caseInsensitive: true }\n ]\n }\n ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar Mode = function () {\n this.HighlightRules = JavaScriptHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CstyleBehaviour();\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.$quotes = { '\"': '\"', \"'\": \"'\", \"`\": \"`\" };\n this.$pairQuotesAfter = {\n \"`\": /\\w/\n };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n var endState = tokenizedLine.state;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\" || state == \"no_regex\") {\n var match = line.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n else if (state == \"doc-start\") {\n if (endState == \"start\" || endState == \"no_regex\") {\n return \"\";\n }\n var match = line.match(/^\\s*(\\/?)\\*/);\n if (match) {\n if (match[1]) {\n indent += \" \";\n }\n indent += \"* \";\n }\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/javascript_worker\", \"JavaScriptWorker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"annotate\", function (results) {\n session.setAnnotations(results.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/javascript\";\n this.snippetFileId = \"ace/snippets/javascript\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/javascript\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/json_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar JsonHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: \"variable\",\n regex: '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]\\\\s*(?=:)'\n }, {\n token: \"string\",\n regex: '\"',\n next: \"string\"\n }, {\n token: \"constant.numeric\",\n regex: \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token: \"constant.language.boolean\",\n regex: \"(?:true|false)\\\\b\"\n }, {\n token: \"text\",\n regex: \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n }, {\n token: \"comment\",\n regex: \"\\\\/\\\\/.*$\"\n }, {\n token: \"comment.start\",\n regex: \"\\\\/\\\\*\",\n next: \"comment\"\n }, {\n token: \"paren.lparen\",\n regex: \"[[({]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\])}]\"\n }, {\n token: \"punctuation.operator\",\n regex: /[,]/\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }\n ],\n \"string\": [\n {\n token: \"constant.language.escape\",\n regex: /\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[\"\\\\\\/bfnrt])/\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }\n ],\n \"comment\": [\n {\n token: \"comment.end\",\n regex: \"\\\\*\\\\/\",\n next: \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ]\n };\n};\noop.inherits(JsonHighlightRules, TextHighlightRules);\nexports.JsonHighlightRules = JsonHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/json\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/json_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\",\"ace/worker/worker_client\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar HighlightRules = require(\"./json_highlight_rules\").JsonHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar Mode = function () {\n this.HighlightRules = HighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = this.$defaultBehaviour;\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/json_worker\", \"JsonWorker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"annotate\", function (e) {\n session.setAnnotations(e.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/json\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/json\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar DocCommentHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: \"comment.doc.tag\",\n regex: \"@\\\\w+(?=\\\\s|$)\"\n }, DocCommentHighlightRules.getTagRule(), {\n defaultToken: \"comment.doc\",\n caseInsensitive: true\n }\n ]\n };\n};\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\nDocCommentHighlightRules.getTagRule = function (start) {\n return {\n token: \"comment.doc.tag.storage.type\",\n regex: \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n};\nDocCommentHighlightRules.getStartRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\/\\\\*(?=\\\\*)\",\n next: start\n };\n};\nDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\*\\\\/\",\n next: start\n };\n};\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/jsx_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar JsxHighlightRules = function () {\n var keywords = lang.arrayToMap((\"break|do|instanceof|typeof|case|else|new|var|catch|finally|return|void|continue|for|switch|default|while|function|this|\" +\n \"if|throw|\" +\n \"delete|in|try|\" +\n \"class|extends|super|import|from|into|implements|interface|static|mixin|override|abstract|final|\" +\n \"number|int|string|boolean|variant|\" +\n \"log|assert\").split(\"|\"));\n var buildinConstants = lang.arrayToMap((\"null|true|false|NaN|Infinity|__FILE__|__LINE__|undefined\").split(\"|\"));\n var reserved = lang.arrayToMap((\"debugger|with|\" +\n \"const|export|\" +\n \"let|private|public|yield|protected|\" +\n \"extern|native|as|operator|__fake__|__readonly__\").split(\"|\"));\n var identifierRe = \"[a-zA-Z_][a-zA-Z0-9_]*\\\\b\";\n this.$rules = {\n \"start\": [\n {\n token: \"comment\",\n regex: \"\\\\/\\\\/.*$\"\n },\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n {\n token: \"comment\",\n regex: \"\\\\/\\\\*\",\n next: \"comment\"\n }, {\n token: \"string.regexp\",\n regex: \"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"\n }, {\n token: \"string\",\n regex: '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n }, {\n token: \"string\",\n regex: \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n }, {\n token: \"constant.numeric\",\n regex: \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token: \"constant.language.boolean\",\n regex: \"(?:true|false)\\\\b\"\n }, {\n token: [\n \"storage.type\",\n \"text\",\n \"entity.name.function\"\n ],\n regex: \"(function)(\\\\s+)(\" + identifierRe + \")\"\n }, {\n token: function (value) {\n if (value == \"this\")\n return \"variable.language\";\n else if (value == \"function\")\n return \"storage.type\";\n else if (keywords.hasOwnProperty(value) || reserved.hasOwnProperty(value))\n return \"keyword\";\n else if (buildinConstants.hasOwnProperty(value))\n return \"constant.language\";\n else if (/^_?[A-Z][a-zA-Z0-9_]*$/.test(value))\n return \"language.support.class\";\n else\n return \"identifier\";\n },\n regex: identifierRe\n }, {\n token: \"keyword.operator\",\n regex: \"!|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"\n }, {\n token: \"punctuation.operator\",\n regex: \"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"\n }, {\n token: \"paren.lparen\",\n regex: \"[[({<]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\])}>]\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }\n ],\n \"comment\": [\n {\n token: \"comment\",\n regex: \"\\\\*\\\\/\",\n next: \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ]\n };\n this.embedRules(DocCommentHighlightRules, \"doc-\", [DocCommentHighlightRules.getEndRule(\"start\")]);\n};\noop.inherits(JsxHighlightRules, TextHighlightRules);\nexports.JsxHighlightRules = JsxHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/jsx\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/jsx_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JsxHighlightRules = require(\"./jsx_highlight_rules\").JsxHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nfunction Mode() {\n this.HighlightRules = JsxHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = this.$defaultBehaviour;\n this.foldingRules = new CStyleFoldMode();\n}\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.$id = \"ace/mode/jsx\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/jsx\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/python_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){/*\n * TODO: python delimiters\n */\n\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar PythonHighlightRules = function () {\n var keywords = (\"and|as|assert|break|class|continue|def|del|elif|else|except|exec|\" +\n \"finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|\" +\n \"raise|return|try|while|with|yield|async|await|nonlocal\");\n var builtinConstants = (\"True|False|None|NotImplemented|Ellipsis|__debug__\");\n var builtinFunctions = (\"abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|\" +\n \"eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|\" +\n \"binfile|bin|iter|property|tuple|bool|filter|len|range|type|bytearray|\" +\n \"float|list|raw_input|unichr|callable|format|locals|reduce|unicode|\" +\n \"chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|\" +\n \"cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|\" +\n \"__import__|complex|hash|min|apply|delattr|help|next|setattr|set|\" +\n \"buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern|\" +\n \"ascii|breakpoint|bytes\");\n var keywordMapper = this.createKeywordMapper({\n \"invalid.deprecated\": \"debugger\",\n \"support.function\": builtinFunctions,\n \"variable.language\": \"self|cls\",\n \"constant.language\": builtinConstants,\n \"keyword\": keywords\n }, \"identifier\");\n var strPre = \"[uU]?\";\n var strRawPre = \"[rR]\";\n var strFormatPre = \"[fF]\";\n var strRawFormatPre = \"(?:[rR][fF]|[fF][rR])\";\n var decimalInteger = \"(?:(?:[1-9]\\\\d*)|(?:0))\";\n var octInteger = \"(?:0[oO]?[0-7]+)\";\n var hexInteger = \"(?:0[xX][\\\\dA-Fa-f]+)\";\n var binInteger = \"(?:0[bB][01]+)\";\n var integer = \"(?:\" + decimalInteger + \"|\" + octInteger + \"|\" + hexInteger + \"|\" + binInteger + \")\";\n var exponent = \"(?:[eE][+-]?\\\\d+)\";\n var fraction = \"(?:\\\\.\\\\d+)\";\n var intPart = \"(?:\\\\d+)\";\n var pointFloat = \"(?:(?:\" + intPart + \"?\" + fraction + \")|(?:\" + intPart + \"\\\\.))\";\n var exponentFloat = \"(?:(?:\" + pointFloat + \"|\" + intPart + \")\" + exponent + \")\";\n var floatNumber = \"(?:\" + exponentFloat + \"|\" + pointFloat + \")\";\n var stringEscape = \"\\\\\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\\\\\abfnrtv'\\\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})\";\n this.$rules = {\n \"start\": [{\n token: \"comment\",\n regex: \"#.*$\"\n }, {\n token: \"string\",\n regex: strPre + '\"{3}',\n next: \"qqstring3\"\n }, {\n token: \"string\",\n regex: strPre + '\"(?=.)',\n next: \"qqstring\"\n }, {\n token: \"string\",\n regex: strPre + \"'{3}\",\n next: \"qstring3\"\n }, {\n token: \"string\",\n regex: strPre + \"'(?=.)\",\n next: \"qstring\"\n }, {\n token: \"string\",\n regex: strRawPre + '\"{3}',\n next: \"rawqqstring3\"\n }, {\n token: \"string\",\n regex: strRawPre + '\"(?=.)',\n next: \"rawqqstring\"\n }, {\n token: \"string\",\n regex: strRawPre + \"'{3}\",\n next: \"rawqstring3\"\n }, {\n token: \"string\",\n regex: strRawPre + \"'(?=.)\",\n next: \"rawqstring\"\n }, {\n token: \"string\",\n regex: strFormatPre + '\"{3}',\n next: \"fqqstring3\"\n }, {\n token: \"string\",\n regex: strFormatPre + '\"(?=.)',\n next: \"fqqstring\"\n }, {\n token: \"string\",\n regex: strFormatPre + \"'{3}\",\n next: \"fqstring3\"\n }, {\n token: \"string\",\n regex: strFormatPre + \"'(?=.)\",\n next: \"fqstring\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + '\"{3}',\n next: \"rfqqstring3\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + '\"(?=.)',\n next: \"rfqqstring\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + \"'{3}\",\n next: \"rfqstring3\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + \"'(?=.)\",\n next: \"rfqstring\"\n }, {\n token: \"keyword.operator\",\n regex: \"\\\\+|\\\\-|\\\\*|\\\\*\\\\*|\\\\/|\\\\/\\\\/|%|@|<<|>>|&|\\\\||\\\\^|~|<|>|<=|=>|==|!=|<>|=\"\n }, {\n token: \"punctuation\",\n regex: \",|:|;|\\\\->|\\\\+=|\\\\-=|\\\\*=|\\\\/=|\\\\/\\\\/=|%=|@=|&=|\\\\|=|^=|>>=|<<=|\\\\*\\\\*=\"\n }, {\n token: \"paren.lparen\",\n regex: \"[\\\\[\\\\(\\\\{]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\]\\\\)\\\\}]\"\n }, {\n token: [\"keyword\", \"text\", \"entity.name.function\"],\n regex: \"(def|class)(\\\\s+)([\\\\u00BF-\\\\u1FFF\\\\u2C00-\\\\uD7FF\\\\w]+)\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n include: \"constants\"\n }],\n \"qqstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"qstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"qqstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"qqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"qstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"qstring\"\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqqstring3\": [{\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqstring3\": [{\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqqstring\": [{\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"rawqqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqstring\": [{\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"rawqstring\"\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqqstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqqstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"fqqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqqstring3\": [{\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqstring3\": [{\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqqstring\": [{\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"rfqqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqstring\": [{\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqstringParRules\": [{\n token: \"paren.lparen\",\n regex: \"[\\\\[\\\\(]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\]\\\\)]\"\n }, {\n token: \"string\",\n regex: \"\\\\s+\"\n }, {\n token: \"string\",\n regex: \"'[^']*'\"\n }, {\n token: \"string\",\n regex: '\"[^\"]*\"'\n }, {\n token: \"function.support\",\n regex: \"(!s|!r|!a)\"\n }, {\n include: \"constants\"\n }, {\n token: 'paren.rparen',\n regex: \"}\",\n next: 'pop'\n }, {\n token: 'paren.lparen',\n regex: \"{\",\n push: \"fqstringParRules\"\n }],\n \"constants\": [{\n token: \"constant.numeric\",\n regex: \"(?:\" + floatNumber + \"|\\\\d+)[jJ]\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: floatNumber\n }, {\n token: \"constant.numeric\",\n regex: integer + \"[lL]\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: integer + \"\\\\b\"\n }, {\n token: [\"punctuation\", \"function.support\"],\n regex: \"(\\\\.)([a-zA-Z_]+)\\\\b\"\n }, {\n token: keywordMapper,\n regex: \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n }]\n };\n this.normalizeRules();\n};\noop.inherits(PythonHighlightRules, TextHighlightRules);\nexports.PythonHighlightRules = PythonHighlightRules;\n\n});\n\nace.define(\"ace/mode/folding/pythonic\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (markers) {\n this.foldingStartMarker = new RegExp(\"([\\\\[{])(?:\\\\s*)$|(\" + markers + \")(?:\\\\s*)(?:#.*)?$\");\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.getFoldWidgetRange = function (session, foldStyle, row) {\n var line = session.getLine(row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, match.index);\n if (match[2])\n return this.indentationBlock(session, row, match.index + match[2].length);\n return this.indentationBlock(session, row);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/python\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/python_highlight_rules\",\"ace/mode/folding/pythonic\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar PythonHighlightRules = require(\"./python_highlight_rules\").PythonHighlightRules;\nvar PythonFoldMode = require(\"./folding/pythonic\").FoldMode;\nvar Range = require(\"../range\").Range;\nvar Mode = function () {\n this.HighlightRules = PythonHighlightRules;\n this.foldingRules = new PythonFoldMode(\"\\\\:\");\n this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"#\";\n this.$pairQuotesAfter = {\n \"'\": /[ruf]/i,\n '\"': /[ruf]/i\n };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[:]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n };\n var outdents = {\n \"pass\": 1,\n \"return\": 1,\n \"raise\": 1,\n \"break\": 1,\n \"continue\": 1\n };\n this.checkOutdent = function (state, line, input) {\n if (input !== \"\\r\\n\" && input !== \"\\r\" && input !== \"\\n\")\n return false;\n var tokens = this.getTokenizer().getLineTokens(line.trim(), state).tokens;\n if (!tokens)\n return false;\n do {\n var last = tokens.pop();\n } while (last && (last.type == \"comment\" || (last.type == \"text\" && last.value.match(/^\\s+$/))));\n if (!last)\n return false;\n return (last.type == \"keyword\" && outdents[last.value]);\n };\n this.autoOutdent = function (state, doc, row) {\n row += 1;\n var indent = this.$getIndent(doc.getLine(row));\n var tab = doc.getTabString();\n if (indent.slice(-tab.length) == tab)\n doc.remove(new Range(row, indent.length - tab.length, row, indent.length));\n };\n this.$id = \"ace/mode/python\";\n this.snippetFileId = \"ace/snippets/python\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/python\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar XmlHighlightRules = function (normalize) {\n var tagRegex = \"[_:a-zA-Z\\xc0-\\uffff][-_:.a-zA-Z0-9\\xc0-\\uffff]*\";\n this.$rules = {\n start: [\n { token: \"string.cdata.xml\", regex: \"<\\\\!\\\\[CDATA\\\\[\", next: \"cdata\" },\n {\n token: [\"punctuation.instruction.xml\", \"keyword.instruction.xml\"],\n regex: \"(<\\\\?)(\" + tagRegex + \")\", next: \"processing_instruction\"\n },\n { token: \"comment.start.xml\", regex: \"<\\\\!--\", next: \"comment\" },\n {\n token: [\"xml-pe.doctype.xml\", \"xml-pe.doctype.xml\"],\n regex: \"(<\\\\!)(DOCTYPE)(?=[\\\\s])\", next: \"doctype\", caseInsensitive: true\n },\n { include: \"tag\" },\n { token: \"text.end-tag-open.xml\", regex: \"\",\n next: \"start\"\n }],\n doctype: [\n { include: \"whitespace\" },\n { include: \"string\" },\n { token: \"xml-pe.doctype.xml\", regex: \">\", next: \"start\" },\n { token: \"xml-pe.xml\", regex: \"[-_a-zA-Z0-9:]+\" },\n { token: \"punctuation.int-subset\", regex: \"\\\\[\", push: \"int_subset\" }\n ],\n int_subset: [{\n token: \"text.xml\",\n regex: \"\\\\s+\"\n }, {\n token: \"punctuation.int-subset.xml\",\n regex: \"]\",\n next: \"pop\"\n }, {\n token: [\"punctuation.markup-decl.xml\", \"keyword.markup-decl.xml\"],\n regex: \"(<\\\\!)(\" + tagRegex + \")\",\n push: [{\n token: \"text\",\n regex: \"\\\\s+\"\n },\n {\n token: \"punctuation.markup-decl.xml\",\n regex: \">\",\n next: \"pop\"\n },\n { include: \"string\" }]\n }],\n cdata: [\n { token: \"string.cdata.xml\", regex: \"\\\\]\\\\]>\", next: \"start\" },\n { token: \"text.xml\", regex: \"\\\\s+\" },\n { token: \"text.xml\", regex: \"(?:[^\\\\]]|\\\\](?!\\\\]>))+\" }\n ],\n comment: [\n { token: \"comment.end.xml\", regex: \"-->\", next: \"start\" },\n { defaultToken: \"comment.xml\" }\n ],\n reference: [{\n token: \"constant.language.escape.reference.xml\",\n regex: \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }],\n attr_reference: [{\n token: \"constant.language.escape.reference.attribute-value.xml\",\n regex: \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }],\n tag: [{\n token: [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.tag-name.xml\"],\n regex: \"(?:(<)|(\", next: \"start\" }\n ]\n }],\n tag_whitespace: [\n { token: \"text.tag-whitespace.xml\", regex: \"\\\\s+\" }\n ],\n whitespace: [\n { token: \"text.whitespace.xml\", regex: \"\\\\s+\" }\n ],\n string: [{\n token: \"string.xml\",\n regex: \"'\",\n push: [\n { token: \"string.xml\", regex: \"'\", next: \"pop\" },\n { defaultToken: \"string.xml\" }\n ]\n }, {\n token: \"string.xml\",\n regex: '\"',\n push: [\n { token: \"string.xml\", regex: '\"', next: \"pop\" },\n { defaultToken: \"string.xml\" }\n ]\n }],\n attributes: [{\n token: \"entity.other.attribute-name.xml\",\n regex: tagRegex\n }, {\n token: \"keyword.operator.attribute-equals.xml\",\n regex: \"=\"\n }, {\n include: \"tag_whitespace\"\n }, {\n include: \"attribute_value\"\n }],\n attribute_value: [{\n token: \"string.attribute-value.xml\",\n regex: \"'\",\n push: [\n { token: \"string.attribute-value.xml\", regex: \"'\", next: \"pop\" },\n { include: \"attr_reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n }, {\n token: \"string.attribute-value.xml\",\n regex: '\"',\n push: [\n { token: \"string.attribute-value.xml\", regex: '\"', next: \"pop\" },\n { include: \"attr_reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n }]\n };\n if (this.constructor === XmlHighlightRules)\n this.normalizeRules();\n};\n(function () {\n this.embedTagRules = function (HighlightRules, prefix, tag) {\n this.$rules.tag.unshift({\n token: [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n regex: \"(<)(\" + tag + \"(?=\\\\s|>|$))\",\n next: [\n { include: \"attributes\" },\n { token: \"meta.tag.punctuation.tag-close.xml\", regex: \"/?>\", next: prefix + \"start\" }\n ]\n });\n this.$rules[tag + \"-end\"] = [\n { include: \"attributes\" },\n { token: \"meta.tag.punctuation.tag-close.xml\", regex: \"/?>\", next: \"start\",\n onMatch: function (value, currentState, stack) {\n stack.splice(0);\n return this.token;\n } }\n ];\n this.embedRules(HighlightRules, prefix, [{\n token: [\"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n regex: \"(|$))\",\n next: tag + \"-end\"\n }, {\n token: \"string.cdata.xml\",\n regex: \"<\\\\!\\\\[CDATA\\\\[\"\n }, {\n token: \"string.cdata.xml\",\n regex: \"\\\\]\\\\]>\"\n }]);\n };\n}).call(TextHighlightRules.prototype);\noop.inherits(XmlHighlightRules, TextHighlightRules);\nexports.XmlHighlightRules = XmlHighlightRules;\n\n});\n\nace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\nfunction is(token, type) {\n return token && token.type.lastIndexOf(type + \".xml\") > -1;\n}\nvar XmlBehaviour = function () {\n this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '\"' || text == \"'\") {\n var quote = text;\n var selected = session.doc.getTextRange(editor.getSelectionRange());\n if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n return {\n text: quote + selected + quote,\n selection: false\n };\n }\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (rightChar == quote && (is(token, \"attribute-value\") || is(token, \"string\"))) {\n return {\n text: \"\",\n selection: [1, 1]\n };\n }\n if (!token)\n token = iterator.stepBackward();\n if (!token)\n return;\n while (is(token, \"tag-whitespace\") || is(token, \"whitespace\")) {\n token = iterator.stepBackward();\n }\n var rightSpace = !rightChar || rightChar.match(/\\s/);\n if (is(token, \"attribute-equals\") && (rightSpace || rightChar == '>') || (is(token, \"decl-attribute-equals\") && (rightSpace || rightChar == '?'))) {\n return {\n text: quote + quote,\n selection: [1, 1]\n };\n }\n }\n });\n this.add(\"string_dquotes\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n this.add(\"autoclosing\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '>') {\n var position = editor.getSelectionRange().start;\n var iterator = new TokenIterator(session, position.row, position.column);\n var token = iterator.getCurrentToken() || iterator.stepBackward();\n if (!token || !(is(token, \"tag-name\") || is(token, \"tag-whitespace\") || is(token, \"attribute-name\") || is(token, \"attribute-equals\") || is(token, \"attribute-value\")))\n return;\n if (is(token, \"reference.attribute-value\"))\n return;\n if (is(token, \"attribute-value\")) {\n var tokenEndColumn = iterator.getCurrentTokenColumn() + token.value.length;\n if (position.column < tokenEndColumn)\n return;\n if (position.column == tokenEndColumn) {\n var nextToken = iterator.stepForward();\n if (nextToken && is(nextToken, \"attribute-value\"))\n return;\n iterator.stepBackward();\n }\n }\n if (/^\\s*>/.test(session.getLine(position.row).slice(position.column)))\n return;\n while (!is(token, \"tag-name\")) {\n token = iterator.stepBackward();\n if (token.value == \"<\") {\n token = iterator.stepForward();\n break;\n }\n }\n var tokenRow = iterator.getCurrentTokenRow();\n var tokenColumn = iterator.getCurrentTokenColumn();\n if (is(iterator.stepBackward(), \"end-tag-open\"))\n return;\n var element = token.value;\n if (tokenRow == position.row)\n element = element.substring(0, position.column - tokenColumn);\n if (this.voidElements.hasOwnProperty(element.toLowerCase()))\n return;\n return {\n text: \">\" + \"\",\n selection: [1, 1]\n };\n }\n });\n this.add(\"autoindent\", \"insertion\", function (state, action, editor, session, text) {\n if (text == \"\\n\") {\n var cursor = editor.getCursorPosition();\n var line = session.getLine(cursor.row);\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (token && token.type.indexOf(\"tag-close\") !== -1) {\n if (token.value == \"/>\")\n return;\n while (token && token.type.indexOf(\"tag-name\") === -1) {\n token = iterator.stepBackward();\n }\n if (!token) {\n return;\n }\n var tag = token.value;\n var row = iterator.getCurrentTokenRow();\n token = iterator.stepBackward();\n if (!token || token.type.indexOf(\"end-tag\") !== -1) {\n return;\n }\n if (this.voidElements && !this.voidElements[tag]) {\n var nextToken = session.getTokenAt(cursor.row, cursor.column + 1);\n var line = session.getLine(row);\n var nextIndent = this.$getIndent(line);\n var indent = nextIndent + session.getTabString();\n if (nextToken && nextToken.value === \" -1;\n}\n(function () {\n this.getFoldWidget = function (session, foldStyle, row) {\n var tag = this._getFirstTagInLine(session, row);\n if (!tag)\n return this.getCommentFoldWidget(session, row);\n if (tag.closing || (!tag.tagName && tag.selfClosing))\n return foldStyle === \"markbeginend\" ? \"end\" : \"\";\n if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase()))\n return \"\";\n if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column))\n return \"\";\n return \"start\";\n };\n this.getCommentFoldWidget = function (session, row) {\n if (/comment/.test(session.getState(row)) && /';\n break;\n }\n }\n return tag;\n }\n else if (is(token, \"tag-close\")) {\n tag.selfClosing = token.value == '/>';\n return tag;\n }\n tag.start.column += token.value.length;\n }\n return null;\n };\n this._findEndTagInLine = function (session, row, tagName, startColumn) {\n var tokens = session.getTokens(row);\n var column = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n column += token.value.length;\n if (column < startColumn)\n continue;\n if (is(token, \"end-tag-open\")) {\n token = tokens[i + 1];\n if (token && token.value == tagName)\n return true;\n }\n }\n return false;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row) {\n var tags = session.getMatchingTags({ row: row, column: 0 });\n if (tags) {\n return new Range(tags.openTag.end.row, tags.openTag.end.column, tags.closeTag.start.row, tags.closeTag.start.column);\n }\n else {\n return this.getCommentFoldWidget(session, row)\n && session.getCommentFoldRange(row, session.getLine(row).length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/xml_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/xml\",\"ace/worker/worker_client\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextMode = require(\"./text\").Mode;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\nvar XmlBehaviour = require(\"./behaviour/xml\").XmlBehaviour;\nvar XmlFoldMode = require(\"./folding/xml\").FoldMode;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar Mode = function () {\n this.HighlightRules = XmlHighlightRules;\n this.$behaviour = new XmlBehaviour();\n this.foldingRules = new XmlFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.voidElements = lang.arrayToMap([]);\n this.blockComment = { start: \"\" };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/xml_worker\", \"Worker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"error\", function (e) {\n session.setAnnotations(e.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/xml\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/xml\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/theme/github-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){module.exports = \"/* CSS style content from github's default pygments highlighter template.\\n Cursor and selection styles from textmate.css. */\\n.ace-github .ace_gutter {\\n background: #e8e8e8;\\n color: #AAA;\\n}\\n\\n.ace-github {\\n background: #fff;\\n color: #000;\\n}\\n\\n.ace-github .ace_keyword {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_string {\\n color: #D14;\\n}\\n\\n.ace-github .ace_variable.ace_class {\\n color: teal;\\n}\\n\\n.ace-github .ace_constant.ace_numeric {\\n color: #099;\\n}\\n\\n.ace-github .ace_constant.ace_buildin {\\n color: #0086B3;\\n}\\n\\n.ace-github .ace_support.ace_function {\\n color: #0086B3;\\n}\\n\\n.ace-github .ace_comment {\\n color: #998;\\n font-style: italic;\\n}\\n\\n.ace-github .ace_variable.ace_language {\\n color: #0086B3;\\n}\\n\\n.ace-github .ace_paren {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_boolean {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_string.ace_regexp {\\n color: #009926;\\n font-weight: normal;\\n}\\n\\n.ace-github .ace_variable.ace_instance {\\n color: teal;\\n}\\n\\n.ace-github .ace_constant.ace_language {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_cursor {\\n color: black;\\n}\\n\\n.ace-github.ace_focus .ace_marker-layer .ace_active-line {\\n background: rgb(255, 255, 204);\\n}\\n.ace-github .ace_marker-layer .ace_active-line {\\n background: rgb(245, 245, 245);\\n}\\n\\n.ace-github .ace_marker-layer .ace_selection {\\n background: rgb(181, 213, 255);\\n}\\n\\n.ace-github.ace_multiselect .ace_selection.ace_start {\\n box-shadow: 0 0 3px 0px white;\\n}\\n/* bold keywords cause cursor issues for some fonts */\\n/* this disables bold style for editor and keeps for static highlighter */\\n.ace-github.ace_nobold .ace_line > span {\\n font-weight: normal !important;\\n}\\n\\n.ace-github .ace_marker-layer .ace_step {\\n background: rgb(252, 255, 0);\\n}\\n\\n.ace-github .ace_marker-layer .ace_stack {\\n background: rgb(164, 229, 101);\\n}\\n\\n.ace-github .ace_marker-layer .ace_bracket {\\n margin: -1px 0 0 -1px;\\n border: 1px solid rgb(192, 192, 192);\\n}\\n\\n.ace-github .ace_gutter-active-line {\\n background-color : rgba(0, 0, 0, 0.07);\\n}\\n\\n.ace-github .ace_marker-layer .ace_selected-word {\\n background: rgb(250, 250, 255);\\n border: 1px solid rgb(200, 200, 250);\\n}\\n\\n.ace-github .ace_invisible {\\n color: #BFBFBF\\n}\\n\\n.ace-github .ace_print-margin {\\n width: 1px;\\n background: #e8e8e8;\\n}\\n\\n.ace-github .ace_indent-guide {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\n}\\n\\n.ace-github .ace_indent-guide-active {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC\\\") right repeat-y;\\n}\\n\";\n\n});\n\nace.define(\"ace/theme/github\",[\"require\",\"exports\",\"module\",\"ace/theme/github-css\",\"ace/lib/dom\"], function(require, exports, module){exports.isDark = false;\nexports.cssClass = \"ace-github\";\nexports.cssText = require(\"./github-css\");\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass, false);\n\n}); (function() {\n ace.require([\"ace/theme/github\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","module.exports = require(\"react-dom\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"\";","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"prop-types\");","import { createContext } from 'react';\n\nconst AccordionContext = createContext();\n\nexport default AccordionContext;\n","import { createContext } from 'react';\n\nconst AccordionItemContext = createContext();\n\nexport default AccordionItemContext;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Icon({\n className,\n family,\n type,\n ...rest\n}) {\n function getCSSClasses() {\n const fontFamily = family || 'fa';\n\n return [\n 'tyk-icon',\n fontFamily,\n `${fontFamily}-${type}`,\n className,\n ].filter(Boolean).join(' ');\n }\n\n return ;\n}\n\nIcon.propTypes = {\n className: PropTypes.string,\n family: PropTypes.string,\n type: PropTypes.string.isRequired,\n};\n\nexport default Icon;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../Icon';\nimport AccordionItemContext from './AccordionItemContext';\n\nfunction ItemTrigger({ wrap }) {\n const { collapsed, disabled, toggleChange } = useContext(AccordionItemContext);\n\n const iconType = collapsed ? 'chevron-down' : 'chevron-up';\n const classes = [\n 'tyk-accordion__trigger',\n disabled && 'tyk-accordion__trigger--disabled',\n ].filter(Boolean).join(' ');\n const trigger = (\n \n \n \n );\n\n return wrap\n ?
    {trigger}
    \n : trigger;\n}\n\nItemTrigger.propTypes = {\n wrap: PropTypes.bool,\n};\n\nexport default ItemTrigger;\n","import React, {\n useMemo, useState, useContext, forwardRef,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport AccordionContext from './AccordionContext';\nimport AccordionItemContext from './AccordionItemContext';\nimport ItemTrigger from './AccordionItemTrigger';\n\nfunction AccordionItem({\n collapsed: collapsedProp,\n children,\n className,\n disabled,\n}, ref) {\n const { arrow } = useContext(AccordionContext);\n const [collapsed, setCollapsed] = useState(collapsedProp);\n\n const toggleChange = () => {\n if (disabled) {\n return;\n }\n\n setCollapsed(!collapsed);\n };\n\n const classes = useMemo(() => [\n 'tyk-accordion__item',\n arrow.expandToContent\n ? `tyk-accordion__item--trigger-position-${arrow.position}`\n : 'tyk-accordion__item--trigger-in-header',\n className,\n collapsed === false && 'tyk-accordion__item--active',\n ].filter(Boolean).join(' '), [arrow, className, collapsed]);\n\n const contextValue = useMemo(() => ({\n collapsed,\n disabled,\n toggleChange,\n }), [collapsed, disabled, toggleChange]);\n\n return (\n
    \n \n {arrow.expandToContent && (\n \n )}\n {children}\n \n
    \n );\n}\n\nAccordionItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n collapsed: PropTypes.bool,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n};\n\nAccordionItem.defaultProps = {\n collapsed: false,\n};\n\nexport default forwardRef(AccordionItem);\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../Icon';\nimport AccordionContext from './AccordionContext';\nimport AccordionItemContext from './AccordionItemContext';\nimport ItemTrigger from './AccordionItemTrigger';\n\nfunction AccordionItemHeader({ className, children }) {\n const { collapsed, disabled, toggleChange } = useContext(AccordionItemContext);\n const { usearrowastrigger, arrow } = useContext(AccordionContext);\n const iconType = collapsed ? 'chevron-down' : 'chevron-up';\n const classes = [\n 'tyk-accordion__item-header',\n usearrowastrigger && 'tyk-accordion__arrow-trigger',\n className,\n ].filter(Boolean).join(' ');\n\n return (\n
    \n {\n !usearrowastrigger\n ? (\n \n {children}\n \n \n )\n : (\n <>\n {!arrow.expandToContent && arrow.position === 'left' && (\n \n )}\n
    {children}
    \n {!arrow.expandToContent && arrow.position === 'right' && (\n \n )}\n \n )\n }\n
    \n );\n}\n\nAccordionItemHeader.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n};\n\nexport default AccordionItemHeader;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-transition-group\");","import { useCallback, useState, useLayoutEffect } from 'react';\n\nconst getSize = (el) => {\n if (!el) {\n return {\n width: 0,\n height: 0,\n };\n }\n\n return {\n width: el.offsetWidth,\n height: el.offsetHeight,\n };\n};\n\nconst useComponentSize = (ref) => {\n const [componentSize, setComponentSize] = useState(getSize(ref ? ref.current : {}));\n const handleResize = useCallback(() => {\n if (ref.current) {\n setComponentSize(getSize(ref.current));\n }\n }, [ref]);\n\n useLayoutEffect(() => {\n handleResize();\n\n let resizeObserver = new ResizeObserver(() => {\n handleResize();\n });\n resizeObserver.observe(ref.current);\n\n return () => {\n resizeObserver.disconnect(ref.current);\n resizeObserver = null;\n };\n }, [ref.current]);\n\n return componentSize;\n};\n\n/** @component */\nexport default useComponentSize;\n","import { useEffect, useRef } from 'react';\n\nconst useEventListener = (eventName, handler, element) => {\n const savedHandler = useRef();\n useEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n\n useEffect(() => {\n const isSupported = element?.addEventListener;\n if (!isSupported) {\n // eslint-disable-next-line consistent-return\n return;\n }\n\n const eventListener = (event) => savedHandler.current(event);\n element.addEventListener(eventName, eventListener);\n\n // eslint-disable-next-line consistent-return\n return () => {\n element.removeEventListener(eventName, eventListener);\n };\n }, [eventName, element]);\n};\n\n/** @component */\nexport default useEventListener;\n","import React, {\n useRef, useState, useCallback, useEffect,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { CSSTransition } from 'react-transition-group';\nimport { useEventListener, useComponentSize } from '../../hooks';\n\n/**\n * Collapsible is a component that helps you to collapse/expand any type of content\n */\nfunction Collapsible({\n className,\n collapsed,\n children,\n ...rest\n}) {\n const contentContainer = useRef(null);\n const collapseWrapper = useRef(null);\n const refContainerSize = useComponentSize(contentContainer);\n const [contentContainerStyle, setContentContainerStyle] = useState({\n // eslint-disable-next-line\n height: (collapsed) ? 0 : 'auto',\n });\n\n const setHeight = (height) => {\n setContentContainerStyle({\n height: `${height}px`,\n });\n };\n\n const getHeight = () => (contentContainer.current ? contentContainer.current.clientHeight : 0);\n\n const onEnter = () => {\n setHeight(getHeight());\n };\n\n const onExit = () => {\n setHeight(0);\n };\n\n useEffect(() => {\n if (!collapsed\n && refContainerSize?.height\n && contentContainerStyle.height !== refContainerSize?.height\n ) {\n setHeight(refContainerSize.height);\n }\n }, [refContainerSize.height]);\n\n const onWindowResize = useCallback(() => {\n if (!collapsed && contentContainer.current) {\n setHeight(getHeight());\n collapseWrapper.current.style.height = `${getHeight()}px`;\n }\n }, [collapsed, contentContainer.current]);\n\n useEventListener('resize', onWindowResize, window);\n\n return (\n \n \n \n { children }\n \n \n \n );\n}\n\nCollapsible.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n /** Describes if the content of Collapsible should be hidden or not */\n collapsed: PropTypes.bool,\n /** CSS classes that can be passed to the Collapsible element */\n className: PropTypes.string,\n};\n\nexport default Collapsible;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Collapsible from '../../Collapsible';\nimport AccordionItemContext from './AccordionItemContext';\n\nfunction AccordionItemContent({ children, className }) {\n const { collapsed } = useContext(AccordionItemContext);\n\n const classes = [\n 'tyk-accordion__item-content',\n className,\n ].filter(Boolean).join(' ');\n\n return (\n
    \n \n { children }\n \n
    \n );\n}\n\nAccordionItemContent.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n};\n\nexport default AccordionItemContent;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport AccordionItem from './js/AccordionItem';\nimport AccordionItemHeader from './js/AccordionItemHeader';\nimport AccordionItemContent from './js/AccordionItemContent';\nimport AccordionContext from './js/AccordionContext';\n\nfunction Accordion({\n className,\n children,\n usearrowastrigger,\n arrow = { position: 'right', expandToContent: false },\n}) {\n const classes = [\n 'tyk-accordion',\n className,\n ].filter(Boolean).join(' ');\n\n const contextValue = useMemo(() => ({\n usearrowastrigger,\n arrow,\n }), [usearrowastrigger, arrow]);\n\n return (\n
    \n \n {children}\n \n
    \n );\n}\n\nAccordion.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n usearrowastrigger: PropTypes.bool,\n arrow: PropTypes.shape({\n position: PropTypes.oneOf(['left', 'right']),\n expandToContent: PropTypes.bool,\n }),\n};\n\nAccordion.defaultProps = {\n usearrowastrigger: false,\n};\n\n// For Readme.md : Start\nAccordion.Item = AccordionItem;\nAccordion.Item.Header = AccordionItemHeader;\nAccordion.Item.Content = AccordionItemContent;\n// For Readme.md : End\n\nexport default Accordion;\n","import React, { cloneElement, forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../Icon';\n\n/**\n * Button component.\n */\nfunction Button(props, ref) {\n const {\n customButton,\n children,\n iconType,\n iconFamily,\n iconPosition,\n iconOnly,\n id,\n className,\n disabled,\n display,\n href,\n onClick,\n noStyle,\n size,\n theme,\n type,\n ...rest\n } = props;\n\n const getCssClasses = () => {\n const cssClasses = ['tyk-button'].concat(className ? className.split(' ') : []);\n const sizeClass = (size) ? `tyk-button--${size}` : 'tyk-button--md';\n const disabledClass = (disabled) ? 'disabled' : '';\n const displayClass = display || '';\n const themeClass = theme ? `tyk-button--${theme}` : '';\n const iconOnlyClass = iconOnly ? 'tyk-button--icon-only' : '';\n const noStyleClass = noStyle ? 'tyk-button--no-style' : '';\n\n cssClasses.push(iconOnlyClass);\n cssClasses.push(themeClass);\n cssClasses.push(sizeClass);\n cssClasses.push(disabledClass);\n cssClasses.push(displayClass);\n cssClasses.push(noStyleClass);\n\n if (iconType) {\n cssClasses.push(`icon-${iconPosition || 'left'}`);\n }\n\n return cssClasses.join(' ');\n };\n\n const getButtonIcon = (position) => {\n const iPos = iconPosition || 'left';\n\n return (\n (iconType && iPos === position)\n ? \n : null\n );\n };\n\n const getButtonType = () => {\n let buttonType;\n\n if (customButton) {\n return (\n <>\n { cloneElement(customButton, {\n className: getCssClasses(),\n disabled,\n })}\n \n );\n }\n\n if (href) {\n buttonType = (\n \n { getButtonIcon('left') }\n { children }\n { getButtonIcon('right') }\n \n );\n } else {\n buttonType = (\n // eslint-disable-next-line react/button-has-type\n \n { getButtonIcon('left') }\n { children && {children} }\n { getButtonIcon('right') }\n \n );\n }\n\n return buttonType;\n };\n\n return (\n getButtonType()\n );\n}\n\nButton.propTypes = {\n /**\n * Content of a button. Can be a DOM element or a React component\n */\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n customButton: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n ]),\n className: PropTypes.string,\n /**\n * Display type: inline/block. Default is inline\n */\n display: PropTypes.string,\n /**\n * Sets the button disabled state\n */\n disabled: PropTypes.bool,\n /**\n * Having this property set the button will become a link\n */\n id: PropTypes.string,\n href: PropTypes.string,\n iconPosition: PropTypes.string, // left or right\n iconFamily: PropTypes.string,\n iconOnly: PropTypes.bool,\n iconType: PropTypes.string,\n noStyle: PropTypes.bool,\n /**\n * Callback function, called when the button si clicked\n */\n onClick: PropTypes.func,\n /**\n * Describes the appearence of the button (ex: primary, danger, primary-outline etc.)\n */\n theme: PropTypes.string,\n /**\n * Type of the button (ex: button, submit etc.)\n */\n type: PropTypes.string,\n /**\n * Describes the size of the button (sm, md, lg). Default one is md\n */\n size: PropTypes.string,\n};\n\nButton.defaultProps = {\n theme: '',\n type: 'button',\n};\n\nexport default forwardRef(Button);\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ButtonGroup({ className, children, label }, ref) {\n return (\n
    \n {Boolean(label) && }\n
    {children}
    \n
    \n );\n}\n\nButtonGroup.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n};\n\nexport default forwardRef(ButtonGroup);\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardHeader({\n right = null,\n children,\n}) {\n return (\n
    \n {children &&
    {children}
    }\n {right &&
    {right}
    }\n
    \n );\n}\n\nCardHeader.propTypes = {\n right: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardHeader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardBody({\n align = 'top',\n children,\n}) {\n return (\n
    \n
    \n {children}\n
    \n
    \n );\n}\n\nCardBody.propTypes = {\n align: PropTypes.oneOf(['top', 'center', 'bottom']),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardBody;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardFooter({ children }) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardFooter.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardFooter;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardTitle({\n maxLines = 1, // accepted values: 1, 2\n children,\n}) {\n return (\n

    \n {children}\n

    \n );\n}\n\nCardTitle.propTypes = {\n maxLines: PropTypes.number,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardTitle;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardTitleGroup({\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardTitleGroup.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardTitleGroup;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardSubTitle({\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardSubTitle.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardSubTitle;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardSummary({\n maxLines = 2, // accepted values: 1, 2, 3, 4, 5\n children,\n}) {\n return (\n

    \n {children}\n

    \n );\n}\n\nCardSummary.propTypes = {\n maxLines: PropTypes.number,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardSummary;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardTitleIcon({\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardTitleIcon.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardTitleIcon;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport CardHeader from './CardHeader';\nimport CardBody from './CardBody';\nimport CardFooter from './CardFooter';\nimport CardTitle from './CardTitle';\nimport CardTitleGroup from './CardTitleGroup';\nimport CardSubTitle from './CardSubTitle';\nimport CardSummary from './CardSummary';\nimport CardTitleIcon from './CardTitleIcon';\n\nfunction Card({\n className = '',\n height = 'auto',\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCard.propTypes = {\n className: PropTypes.string,\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nCard.Header = CardHeader;\nCard.Body = CardBody;\nCard.Footer = CardFooter;\nCard.Title = CardTitle;\nCard.TitleGroup = CardTitleGroup;\nCard.Icon = CardTitleIcon;\nCard.SubTitle = CardSubTitle;\nCard.Summary = CardSummary;\n\nexport default Card;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"echarts\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"immutable\");","export default (func, wait, immediate) => {\n let timeout;\n return function debouncer(...args) {\n const context = this;\n const later = () => {\n timeout = null;\n if (!immediate) {\n func.apply(context, args);\n }\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) {\n func.apply(context, args);\n }\n };\n};\n","import { useEffect, useRef } from 'react';\n\nconst usePrevious = (value) => {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n};\n\n/** @component */\nexport default usePrevious;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Loader({ className, position = 'relative', withbackground = false }) {\n const classes = [\n 'loading',\n position,\n className,\n ].filter(Boolean).join(' ');\n\n const loader = (\n
    \n
    \n
    \n
    \n
    \n
    \n );\n\n return withbackground\n ?
    {loader}
    \n : loader;\n}\n\nLoader.propTypes = {\n /** add a class to loader */\n className: PropTypes.string,\n /** position of loader (absolute / relative) */\n position: PropTypes.string,\n /** defines weather loader should be renders with or without background */\n withbackground: PropTypes.bool,\n};\n\nexport default Loader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../Icon';\n\n/**\n * The Message component is used to highlight important content to the users.\n *\n * If the content you are displaying needs immediate attention or is a feedback,\n * consider using `toast` instead\n */\nfunction Message({\n children, theme, onClose, noMargin, className,\n}) {\n function getCssClasses() {\n return [\n 'tyk-message',\n `tyk-message--${theme || 'info'}`,\n noMargin && 'no-margin',\n className,\n ].filter(Boolean).join(' ');\n }\n\n const iconType = theme === 'success' ? 'check' : 'warning';\n\n return (\n
    \n \n
    \n { children }\n
    \n {onClose && (\n \n )}\n
    \n );\n}\n\nMessage.propTypes = {\n /** Set theme for message (eg. default, success, danger, etc) */\n theme: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n /** add a class to loader */\n className: PropTypes.string,\n /** Removes margins by adding `no-margin` class */\n noMargin: PropTypes.bool,\n /** Callback for clicking on the \"x\" */\n onClose: PropTypes.func,\n};\n\nexport default Message;\n","import React, {\n useState, useEffect, useMemo, useRef, memo,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport * as echarts from 'echarts';\nimport { fromJS } from 'immutable';\n\nimport debounce from '../../utils/debounce';\nimport { usePrevious } from '../../hooks';\nimport Loader from '../Loader';\nimport Message from '../Message';\nimport worldMap from './maps/world.json';\n\necharts.registerMap('world', worldMap);\n\nfunction Chart({\n areaStyleColors,\n dataLoaded,\n hasData,\n highlight,\n type,\n option,\n series,\n onChange,\n zoomStart,\n zoomEnd,\n title,\n seriesConfig = [],\n noDataComponent: noDataComponentProp = null,\n zoomColors,\n style,\n}) {\n const [tykChartInstance, setTykChartInstance] = useState(null);\n const chartWrapperRef = useRef(null);\n const onResize = () => {\n if (tykChartInstance) {\n tykChartInstance.resize();\n }\n };\n\n const noDataComponent = useMemo(\n () => (noDataComponentProp\n ? noDataComponentProp()\n : (\n \n No data to display\n \n )),\n [noDataComponentProp],\n );\n\n const lineBarChart = {\n defaultOpts: fromJS({\n title: {\n show: true,\n text: title,\n left: 0,\n },\n color: [],\n toolbox: {\n right: '0',\n orient: 'horizontal',\n itemSize: 15,\n showTitle: true,\n feature: null,\n },\n dataZoom: [{\n show: true,\n start: 0,\n end: 100,\n orient: 'horizontal',\n dataBackground: {\n lineStyle: {\n color: zoomColors?.lineStyle || '#368493',\n },\n areaStyle: {\n color: zoomColors?.areaStyle || '#368493',\n },\n },\n handleStyle: {\n color: zoomColors?.handleStyle || '#368493',\n },\n textStyle: {\n color: zoomColors?.textStyle || '#368493',\n },\n borderColor: 'transparent',\n fillerColor: zoomColors?.fillerColor || 'rgba(54, 132, 147, 0.1)',\n }],\n legend: {\n show: false,\n // data: [],\n // right: '1%',\n },\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n type: 'cross',\n },\n },\n grid: {\n left: '1%',\n right: '1%',\n bottom: '50px',\n top: '40px',\n containLabel: true,\n },\n xAxis: {\n boundaryGap: false,\n type: 'category',\n splitLine: {\n show: true,\n lineStyle: {\n type: 'dotted',\n color: '#F0F0F0',\n },\n },\n axisLine: {\n show: false,\n },\n axisTick: {\n show: false,\n },\n data: [],\n },\n yAxis: {\n min: 'dataMin',\n boundaryGap: true,\n axisPointer: {\n show: true,\n },\n splitLine: {\n lineStyle: {\n type: 'dotted',\n color: '#F0F0F0',\n },\n show: true,\n },\n axisLabel: {\n show: true,\n },\n axisLine: {\n show: true,\n },\n axisTick: {\n show: false,\n },\n type: 'value',\n },\n textStyle: {\n color: '#5a5a68',\n },\n series: [],\n animationEasing: 'elasticOut',\n }),\n seriesDefault: fromJS({\n data: [],\n type: 'line',\n areaStyle: {\n opacity: 1,\n color: areaStyleColors\n ? new echarts.graphic.LinearGradient(\n 0,\n 0,\n 1,\n 1,\n areaStyleColors.map((color, index) => ({\n offset: index,\n color,\n })),\n )\n : [],\n },\n smooth: false,\n symbolSize: 7,\n name: '',\n }),\n };\n\n const pieChart = {\n defaultOpts: fromJS({\n tooltip: {\n trigger: 'axis',\n formatter: '{b}: {c} ({d}%)',\n },\n legend: {\n orient: 'horizontal',\n x: 'left',\n y: 'top',\n data: [],\n },\n color: [],\n series: [],\n }),\n seriesDefault: fromJS({\n type: 'pie',\n center: [\n '50%',\n '55%',\n ],\n radius: [\n '50%',\n '75%',\n ],\n avoidLabelOverlap: false,\n animationType: 'scale',\n animationEasing: 'elasticOut',\n labelLine: {\n normal: {\n show: true,\n smooth: 0.2,\n length: 6,\n length2: 6,\n },\n },\n data: [],\n }),\n };\n\n const geoChart = {\n defaultOpts: fromJS({\n series: [],\n }),\n seriesDefault: fromJS({\n type: 'map',\n data: [],\n }),\n };\n\n const buildChartOptions = (selectedType, selectedOptions, selectedSeries) => {\n let finalOpts = {};\n switch (selectedType) {\n case 'pie': {\n finalOpts = pieChart.defaultOpts.mergeDeep(fromJS(selectedOptions)).toJS();\n\n selectedSeries.forEach((entry) => {\n finalOpts.series.push(pieChart.seriesDefault.mergeDeep(fromJS(entry)).toJS());\n });\n\n break;\n }\n\n case 'geo': {\n finalOpts = geoChart.defaultOpts.mergeDeep(fromJS(selectedOptions)).toJS();\n\n selectedSeries.forEach((entry) => {\n finalOpts.series.push(geoChart.seriesDefault.mergeDeep(fromJS(entry)).toJS());\n });\n\n break;\n }\n\n default: {\n finalOpts = lineBarChart.defaultOpts.mergeDeep(fromJS(selectedOptions)).toJS();\n if (Array.isArray(selectedOptions.yAxis)) {\n finalOpts.yAxis = selectedOptions.yAxis;\n }\n\n selectedSeries.forEach((entry, index) => {\n const seriesData = {\n ...lineBarChart.seriesDefault.toJS(),\n ...seriesConfig[index],\n ...entry,\n };\n finalOpts.series.push(seriesData);\n });\n break;\n }\n }\n return finalOpts;\n };\n\n useEffect(() => {\n window.addEventListener('resize', onResize);\n\n return () => {\n window.removeEventListener('resize', onResize);\n };\n }, [tykChartInstance]);\n\n useEffect(() => {\n if (!chartWrapperRef?.current) return;\n\n setTykChartInstance(echarts.init(chartWrapperRef.current));\n\n // eslint-disable-next-line consistent-return\n return () => {\n if (tykChartInstance) {\n tykChartInstance.dispose();\n }\n };\n }, [chartWrapperRef.current]);\n\n const eventCallBack = (e) => {\n if (onChange) {\n onChange(e);\n }\n };\n\n useEffect(() => {\n let debouncedMethod;\n if (tykChartInstance) {\n debouncedMethod = debounce(eventCallBack, 500);\n tykChartInstance.on('dataZoom', debouncedMethod);\n tykChartInstance.on('restore', debouncedMethod);\n tykChartInstance.on('click', debouncedMethod);\n\n tykChartInstance.on('mousemove', (params) => {\n if (params.data) {\n tykChartInstance.getZr().setCursorStyle('pointer');\n }\n });\n }\n\n return () => {\n if (tykChartInstance) {\n tykChartInstance.off('dataZoom', debouncedMethod);\n tykChartInstance.off('restore', debouncedMethod);\n tykChartInstance.off('click', debouncedMethod);\n }\n };\n }, [tykChartInstance, onChange]);\n\n const prevInstance = usePrevious(tykChartInstance);\n const prevOption = usePrevious(option);\n const prevType = usePrevious(type);\n const prevSeries = usePrevious(series);\n useEffect(() => {\n if (\n tykChartInstance\n && (\n !fromJS(prevInstance)?.equals?.(fromJS(tykChartInstance))\n || !fromJS(prevOption)?.equals?.(fromJS(option))\n || (prevType !== type)\n || !fromJS(prevSeries).equals?.(fromJS(series))\n )\n ) {\n tykChartInstance.clear();\n tykChartInstance.setOption(buildChartOptions(type, option, series));\n tykChartInstance.dispatchAction({\n type: 'takeGlobalCursor',\n key: 'dataZoomSelect',\n dataZoomSelectActive: true,\n });\n }\n }, [tykChartInstance, option, series, type]);\n\n useEffect(() => {\n if (tykChartInstance && highlight) {\n tykChartInstance.dispatchAction({\n type: 'highlight',\n seriesIndex: highlight.seriesIndex,\n dataIndex: highlight.dataIndex,\n });\n tykChartInstance.dispatchAction({\n type: 'showTip',\n seriesIndex: highlight.seriesIndex,\n dataIndex: highlight.dataIndex,\n });\n }\n }, [highlight]);\n\n const prevZoomStart = usePrevious(zoomStart);\n const prevZoomEnd = usePrevious(zoomEnd);\n useEffect(() => {\n if (\n tykChartInstance\n && zoomStart !== -1\n && zoomEnd !== -1\n && (\n prevZoomStart !== zoomStart\n || prevZoomEnd !== zoomEnd\n )\n ) {\n tykChartInstance.dispatchAction({\n type: 'dataZoom',\n startValue: zoomStart,\n endValue: zoomEnd,\n });\n }\n }, [zoomStart, zoomEnd]);\n\n const getStyle = () => {\n const tempStyle = style || {};\n\n if (!tempStyle.height) {\n tempStyle.height = '300px';\n }\n if (!tempStyle.width) {\n tempStyle.width = '100%';\n }\n return tempStyle;\n };\n\n const chartHasData = () => (\n (dataLoaded && (hasData === false || hasData === true)) ? hasData : true\n );\n\n const getCssClasses = () => {\n const cssClasses = ['tyk-chart'];\n\n if (!dataLoaded) {\n cssClasses.push('tyk-chart--loading-chart');\n }\n\n if (!chartHasData()) {\n cssClasses.push('tyk-chart--no-data');\n }\n\n return cssClasses.join(' ');\n };\n\n return (\n
    \n {\n !dataLoaded\n ? \n : null\n }\n \n {\n chartHasData()\n ? null\n : noDataComponent\n }\n
    \n );\n}\n\nChart.propTypes = {\n areaStyleColors: PropTypes.instanceOf(Array),\n dataLoaded: PropTypes.bool,\n hasData: PropTypes.bool,\n highlight: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n PropTypes.instanceOf(Array),\n ]),\n noDataComponent: PropTypes.func,\n zoomStart: PropTypes.number,\n zoomEnd: PropTypes.number,\n zoomColors: PropTypes.instanceOf(Object),\n option: PropTypes.instanceOf(Object),\n onChange: PropTypes.func,\n style: PropTypes.instanceOf(Object),\n type: PropTypes.string,\n title: PropTypes.string,\n series: PropTypes.instanceOf(Array),\n seriesConfig: PropTypes.instanceOf(Object),\n};\n\nexport default memo(Chart);\n","import { useEffect, useRef } from 'react';\n\nconst useTimeout = (callback, delay) => {\n const savedCallback = useRef();\n\n useEffect(\n () => {\n savedCallback.current = callback;\n },\n [callback],\n );\n\n useEffect(\n () => {\n function tick() {\n savedCallback.current();\n }\n if (delay !== null) {\n const id = setTimeout(tick, delay);\n return () => clearTimeout(id);\n }\n\n return () => {};\n },\n [delay],\n );\n};\n\n/** @component */\nexport default useTimeout;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Message from '../../Message';\nimport { useTimeout } from '../../../hooks';\n\nfunction ToastMessage(props) {\n const {\n children,\n options,\n onClose,\n index,\n } = props;\n const opts = {\n theme: 'success',\n delay: 3000,\n ...options,\n };\n let timer;\n\n const handleClose = (itemIndex) => {\n onClose(itemIndex);\n clearTimeout(timer);\n };\n\n useTimeout(() => handleClose(index), opts.delay);\n\n return (\n handleClose(index)}\n >\n {children}\n \n );\n}\n\nToastMessage.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n options: PropTypes.instanceOf(Object),\n onClose: PropTypes.func,\n index: PropTypes.number,\n};\n\nexport default ToastMessage;\n","import React, {\n useEffect, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport ToastMessage from './ToastMessage';\n\nfunction ToastContainer(props) {\n const [messages, setMessages] = useState({});\n const {\n notify,\n } = props;\n\n const updateNotifications = (message, options) => {\n const msgID = Math.floor(Math.random() * 1000000);\n\n setMessages((prevMessages) => ({\n ...prevMessages,\n [msgID]: {\n message,\n options,\n },\n }));\n };\n\n useEffect(() => {\n notify(updateNotifications);\n }, [messages]);\n\n const onMessageClosed = (index) => {\n const tempMessages = { ...messages };\n delete tempMessages[index];\n setMessages((prevMessages) => {\n const newMessages = { ...prevMessages };\n delete newMessages[index];\n return newMessages;\n });\n };\n\n return (\n
    \n {\n Object.keys(messages).map((msgID) => (\n messages[msgID]\n ? (\n \n {messages[msgID].message}\n \n )\n : null\n ))\n }\n
    \n );\n}\n\nToastContainer.propTypes = {\n notify: PropTypes.func,\n};\n\nexport default ToastContainer;\n","import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport ToastContainer from './js/ToastContainer';\n\n/**\n * Toast is a service that displays dialogs\n * on the bottom right part of the screen.\n *\n * The dialogs can have one of the Tyk UI themes, so that\n * it would match it's purpose (i.e success message, error message)\n *\n */\nclass ToastCreator {\n constructor() {\n const el = document.createElement('div');\n el.className = 'tyk-toast';\n document.body.appendChild(el);\n const root = createRoot(el);\n root.render();\n }\n\n bindNotify = (fn) => {\n this.createNotification = fn;\n };\n\n notify(message, options) {\n if (this.createNotification) {\n this.createNotification(message, options);\n }\n }\n\n danger(message, options) {\n this.notify(message, { ...options, theme: 'danger' });\n }\n\n success(message, options) {\n this.notify(message, { ...options, theme: 'success' });\n }\n\n warning(message, options) {\n this.notify(message, { ...options, theme: 'warning' });\n }\n\n info(message, options) {\n this.notify(message, { ...options, theme: 'info' });\n }\n}\n\nconst toast = new ToastCreator();\n\nexport default toast;\n","import React, { createRef, useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport toast from '../Toast';\n\n/**\n * - CopyToClipboard is used to copy string for a user.\n * - Can be used normally with a text or a custom components (Eg. Button, Icon, etc)\n */\n\nfunction CopyToClipboard(props) {\n const {\n display, copy, children, onCopy, message = 'copied',\n } = props;\n const txtRef = createRef();\n const handleClick = useCallback(() => {\n if (onCopy) {\n onCopy();\n }\n\n if (!window.navigator.clipboard) {\n txtRef.current.select();\n document.execCommand('copy');\n toast.success(message);\n return;\n }\n window.navigator.clipboard.writeText(copy);\n toast.success(message);\n }, [onCopy, txtRef]);\n\n return (\n <>\n \n {children || display}\n \n {!window.navigator.clipboard ? (\n \n ) : null}\n \n );\n}\n\nCopyToClipboard.propTypes = {\n /** Message to be displayed after text is copied */\n message: PropTypes.string,\n /** Callback function executed after text is copied */\n onCopy: PropTypes.func,\n /** Text to be copied */\n copy: PropTypes.string.isRequired,\n /** Text to be displayed */\n display: PropTypes.string,\n /** Children of custom element if you are using any custom element */\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n PropTypes.object,\n PropTypes.node,\n ]),\n};\n\nexport default CopyToClipboard;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ModalFooter({ children }) {\n return (\n
    \n { children }\n
    \n );\n}\n\nModalFooter.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default ModalFooter;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ModalBody({ children }) {\n return (\n
    \n { children }\n
    \n );\n}\n\nModalBody.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default ModalBody;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { CSSTransition } from 'react-transition-group';\n\nimport Icon from '../Icon';\nimport ModalFooter from './js/ModalFooter';\nimport ModalBody from './js/ModalBody';\n\n/**\n * Modals add dialogs confirmation boxes, notifications, or completely custom content\n * - only one Modal can be opened at a time\n * - are unmounted when Modal is closed\n */\nfunction Modal({\n children,\n theme = 'none',\n disableCloseCommands = false,\n opened = false,\n onClose = () => {},\n size = 'md',\n className = '',\n showBackdrop = true,\n ...restProps\n}) {\n const modalClasses = [\n 'tyk-modal',\n `tyk-modal--theme-${theme}`,\n opened && 'opened',\n ].concat(className.split(' ')).filter(Boolean).join(' ');\n\n const backdropClasses = [\n 'tyk-modal__backdrop',\n opened && 'opened',\n ].filter(Boolean).join(' ');\n\n const themeIcon = {\n success: 'check',\n warning: 'warning',\n danger: 'delete',\n }[theme];\n\n return (\n <>\n {\n ReactDOM.createPortal(\n \n
    \n
    \n
    \n {theme !== 'none' && (\n
    \n \n
    \n )}\n { children }\n
    \n
    \n
    \n ,\n document.querySelector('body'),\n )\n }\n {showBackdrop && ReactDOM.createPortal(\n \n !disableCloseCommands && onClose()}\n onKeyDown={() => {}}\n type=\"button\"\n aria-label=\"Close\"\n />\n ,\n document.querySelector('body'),\n )}\n \n );\n}\n\nModal.Body = ModalBody;\nModal.Footer = ModalFooter;\n/* eslint-disable-next-line */\nModal.Header = ({ children }) => {\n console.warn('%cModal.Header%c is deprecated.', 'font-weight: bold', '');\n return (\n
    \n { children }\n
    \n );\n};\nModal.Header.propTypes = {\n children: PropTypes.element,\n};\n/* eslint-disable-next-line */\nModal.Title = ({ children }) => {\n console.warn('%cModal.Title%c is deprecated.', 'font-weight: bold', '');\n return (\n

    \n { children }\n

    \n );\n};\nModal.Title.propTypes = {\n children: PropTypes.element,\n};\n\nModal.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n /** one of \"success\", \"warning\", \"danger\", \"none\"; default is \"none\" */\n theme: PropTypes.string,\n /** If set on true, the Modal won't close when clicking on the overlay or by pressing ESC key */\n disableCloseCommands: PropTypes.bool,\n /** If true the Modal will be by default opened */\n opened: PropTypes.bool,\n /** Callback method when the Modal is closed */\n onClose: PropTypes.func,\n /** Width of the Moda: md or lg */\n size: PropTypes.string,\n showBackdrop: PropTypes.bool,\n};\n\nexport default Modal;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '../Button';\nimport Modal from '../Modal';\n\n/**\n * Confirm component can be used to open a dialog () before a specific action\n */\nfunction Confirm(props) {\n const {\n children,\n title,\n description,\n confirmBtnText = 'Confirm',\n cancelBtnText = 'Cancel',\n } = props;\n const [open, setOpen] = useState(false);\n const [callback, setCallback] = useState(null);\n const [cancelCallback, setCancelCallback] = useState(null);\n\n const show = (callbackFunc, cancelCallbackFunc, beforeCallback) => (...args) => {\n if (beforeCallback) {\n beforeCallback(...args);\n }\n setOpen(true);\n setCallback(() => () => callbackFunc(...args));\n if (cancelCallbackFunc) {\n setCancelCallback(() => () => cancelCallbackFunc(...args));\n }\n };\n\n const hide = () => {\n setOpen(false);\n setCallback(null);\n setCancelCallback(null);\n };\n\n const cancel = () => {\n if (cancelCallback) {\n cancelCallback();\n }\n hide();\n };\n\n const confirm = () => {\n callback();\n hide();\n };\n\n return (\n <>\n {children(show)}\n \n \n

    {title}

    \n {description}\n
    \n \n \n {cancelBtnText}\n \n \n {confirmBtnText}\n \n \n
    \n \n );\n}\n\nConfirm.propTypes = {\n /** Sets the text for primary / confirmation button on opened modal */\n confirmBtnText: PropTypes.string,\n /** Sets the text for danger / abort button on opened modal */\n cancelBtnText: PropTypes.string,\n /** Sets the title for the opened modal */\n title: PropTypes.string,\n /** Sets the description for the opened modal */\n description: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n PropTypes.object,\n PropTypes.node,\n PropTypes.func,\n ]),\n};\n\nexport default Confirm;\n","import React, { useCallback, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport debounce from '../../utils/debounce';\n\n/**\n * FixedWrapper component, keeps all its children in a fix position on the page,\n * even if the scroll position changes\n * i.e: The top navigation bar of a page sits within FixedWrapper component\n */\nfunction FixedWrapper({ children, className, showShadow }) {\n const fixedWrapperRef = useRef(null);\n\n const attachShadow = useCallback(() => {\n const element = fixedWrapperRef.current;\n\n if (!element) {\n return;\n }\n\n if (window.scrollY) {\n element.classList.add('tyk-fixed-wrapper--scrolled');\n } else {\n element.classList.remove('tyk-fixed-wrapper--scrolled');\n }\n }, [fixedWrapperRef.current]);\n\n const debouncedAttachShadow = useCallback(debounce(attachShadow, 100), [attachShadow]);\n\n useEffect(() => {\n if (showShadow) {\n window.addEventListener('scroll', debouncedAttachShadow);\n }\n\n return () => {\n window.removeEventListener('scroll', debouncedAttachShadow);\n };\n }, [debouncedAttachShadow, showShadow]);\n\n return (\n
    \n { children }\n
    \n );\n}\n\nFixedWrapper.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n /** Css classes that can be passed to the FixedWraper element */\n className: PropTypes.string,\n /** If true, bottom shadow on the FixedWrapper component\n * is being displayed when scroll happens\n */\n showShadow: PropTypes.bool,\n};\n\nFixedWrapper.defaultProps = {\n className: '',\n};\n\nexport default FixedWrapper;\n","import React, {\n useEffect, useState, useRef, useCallback,\n} from 'react';\nimport { PropTypes } from 'prop-types';\n\nimport debounce from '../../utils/debounce';\nimport { usePrevious, useComponentSize } from '../../hooks';\nimport Loader from '../Loader';\n\nfunction InfiniteScroller({\n children,\n hasMore,\n initialLoad,\n loadMore,\n pageNumber,\n refChild,\n}) {\n const [showLoader, setShowLoader] = useState(false);\n const containerRef = useRef(null);\n const refChildSize = useComponentSize(refChild);\n\n useEffect(() => {\n if (initialLoad && typeof loadMore === 'function') {\n setShowLoader(false);\n loadMore(pageNumber);\n }\n }, [initialLoad]);\n\n const shouldLoad = useCallback(() => {\n if (!containerRef.current) return false;\n const { clientHeight, scrollTop } = containerRef.current;\n\n return (\n hasMore\n && (\n (clientHeight + Math.round(scrollTop) === refChildSize.height)\n || (clientHeight >= refChildSize.height)\n )\n );\n }, [containerRef, refChildSize.height]);\n\n const loadMoreData = useCallback(() => {\n if (hasMore && typeof loadMore === 'function') {\n loadMore(pageNumber + 1);\n setShowLoader(true);\n } else {\n setShowLoader(false);\n }\n }, [hasMore, pageNumber]);\n\n const prevPageNumber = usePrevious(pageNumber);\n const scrollHandler = useCallback(debounce(() => {\n if (shouldLoad() && prevPageNumber <= pageNumber) {\n loadMoreData();\n }\n }, 200), [loadMoreData, shouldLoad]);\n\n useEffect(() => {\n containerRef.current?.addEventListener('scroll', scrollHandler);\n return () => containerRef.current?.removeEventListener('scroll', scrollHandler);\n }, [containerRef, scrollHandler]);\n\n // if content resets (page number resets) scroll to top\n useEffect(() => {\n if (prevPageNumber > 0 && pageNumber === 0) {\n containerRef.current.scrollTop = 0;\n }\n }, [containerRef, pageNumber]);\n\n const prevRefChildSize = usePrevious(refChildSize);\n useEffect(() => {\n if (\n refChildSize && prevRefChildSize\n && refChildSize.height !== prevRefChildSize.height\n && showLoader === true\n ) {\n setShowLoader(false);\n }\n }, [showLoader, refChildSize.height]);\n\n useEffect(() => {\n if (\n refChild && refChildSize.height < containerRef.current.clientHeight\n && refChildSize.height\n && hasMore\n ) {\n loadMoreData();\n }\n }, [containerRef, refChildSize, refChild, hasMore]);\n\n return (\n
    \n \n { children }\n
    \n {showLoader && (\n \n )}\n
    \n );\n}\n\nInfiniteScroller.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n hasMore: PropTypes.bool,\n initialLoad: PropTypes.bool,\n pageNumber: PropTypes.number,\n loadMore: PropTypes.func,\n refChild: PropTypes.instanceOf(Object),\n};\n\nInfiniteScroller.defaultProps = {\n hasMore: true,\n};\n\nexport default InfiniteScroller;\n","import React, {\n useEffect, useRef, forwardRef,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport PropTypes from 'prop-types';\nimport InfiniteScroller from '../InfiniteScroller';\n\nconst VIEWPORT_INITIAL_PADDING = 5;\n\n/**\n * It displays a container relative to another element.\n * Meant to be used for dropdowns, tooltips, and other similar components.\n */\nfunction FloatingContainer({\n element,\n size = 'auto',\n forceDisplay = 'auto',\n displayAxis = 'auto',\n preferredPosition,\n offset = 0,\n className,\n children,\n infiniteScrollerConfig,\n}, ref) {\n const localRef = useRef(null);\n const floatingContainerRef = ref || localRef;\n const contentWrapperRef = useRef(null);\n // offset calculated on first render to make sure the floating container is inside the viewport\n const viewportOffset = useRef(null);\n\n function determineDisplay() {\n const target = element.current;\n const container = floatingContainerRef.current;\n if (!container) return preferredPosition ?? displayAxis === 'vertical' ? 'bottom' : 'right';\n\n const { left, top } = target.getBoundingClientRect();\n const topSpace = top;\n const bottomSpace = window.innerHeight - top - target.offsetHeight;\n const leftSpace = left;\n const rightSpace = window.innerWidth - left - target.offsetWidth;\n const hasTopSpace = topSpace > container.scrollHeight;\n const hasBottomSpace = bottomSpace > container.scrollHeight;\n const hasLeftSpace = leftSpace > container.offsetWidth;\n const hasRightSpace = rightSpace > container.offsetWidth;\n const positionedVerticallyFitsInViewport = left + target.offsetWidth / 2 - container.offsetWidth / 2 > 0; // eslint-disable-line max-len\n const positionedHorizontallyFitsInViewport = top + target.offsetHeight / 2 - container.scrollHeight / 2 > 0; // eslint-disable-line max-len\n\n if (\n displayAxis === 'vertical'\n || (\n displayAxis === 'auto'\n && (hasTopSpace || hasBottomSpace)\n && positionedVerticallyFitsInViewport\n )\n ) {\n return getDisplayForVertical({\n preferredPosition, hasTopSpace, hasBottomSpace, topSpace, bottomSpace,\n });\n }\n\n if (displayAxis === 'horizontal') {\n return getDisplayForHorizontal({\n preferredPosition, hasLeftSpace, hasRightSpace, leftSpace, rightSpace,\n });\n }\n\n return getDisplayWhereItFits({\n preferredPosition,\n hasTopSpace,\n hasBottomSpace,\n hasLeftSpace,\n hasRightSpace,\n positionedHorizontallyFitsInViewport,\n positionedVerticallyFitsInViewport,\n });\n }\n\n function adjustPosition() {\n const display = forceDisplay !== 'auto' ? forceDisplay : determineDisplay();\n const target = element.current;\n const container = floatingContainerRef.current;\n\n if (!target || !container) return;\n\n const targetPosition = target.getBoundingClientRect();\n const { left: vpLeft, top: vpTop } = viewportOffset.current ?? { left: 0, top: 0 };\n\n if (display === 'top') {\n Object.assign(container.style, getStylesForTop({\n container, targetPosition, target, size, offset, vpLeft, vpTop,\n }));\n }\n\n if (display === 'bottom') {\n Object.assign(container.style, getStylesForBottom({\n container, targetPosition, target, size, offset, vpLeft, vpTop,\n }));\n }\n\n if (display === 'left') {\n Object.assign(container.style, getStylesForLeft({\n targetPosition, target, container, size, offset,\n }));\n }\n\n if (display === 'right') {\n Object.assign(container.style, getStylesForRight({\n targetPosition, target, container, size, offset, vpLeft, vpTop,\n }));\n }\n\n if (viewportOffset.current !== null) return;\n\n if (size === 'matchEnd') {\n viewportOffset.current = { left: 0, top: 0 };\n } else {\n const left = Number(container.style.left.replace('px', ''));\n const top = Number(container.style.top.replace('px', ''));\n viewportOffset.current = {\n left: left < 0 ? VIEWPORT_INITIAL_PADDING - left : 0,\n top: top < 0 ? VIEWPORT_INITIAL_PADDING - top : 0,\n };\n }\n }\n\n useEffect(() => {\n window.requestAnimationFrame(function schedulePositionUpdate() {\n adjustPosition();\n window.requestAnimationFrame(schedulePositionUpdate);\n });\n }, []);\n\n return createPortal(\n \n \n \n {children}\n
    \n \n
    ,\n document.querySelector('body'),\n );\n}\n\nFloatingContainer.propTypes = {\n /** A DOM element that the floating container will be displayed relative to. */\n element: PropTypes.instanceOf(Object),\n className: PropTypes.string,\n /** The size of the container.\n * If `auto` the size will be determined by its contents.\n * If `matchElement` it will take the width or the height of the element depending\n * on the `displayAxis` prop.\n * It can also be a function that returns a number representing the width\n * or the height in pixels.\n */\n size: PropTypes.oneOfType([\n PropTypes.oneOf(['auto', 'matchElement', 'matchStart', 'matchEnd']),\n PropTypes.func,\n ]),\n /**\n * The distance between the element and the floating container.\n * It can be positive or negative.\n */\n offset: PropTypes.number,\n /**\n * If `auto` the component will try to determine where to display the container relative to the\n * element (top, bottom, left, right).\n * It can also be one of top, bottom, left, right, to force the floating container to always be\n * displayed in that position.\n */\n forceDisplay: PropTypes.oneOf(['auto', 'top', 'bottom', 'left', 'right']),\n /**\n * It can be `auto`, `vertical` or `horizontal`. It specifies the axis where\n * it will be displayed when `forceDisplay` is `auto`.\n */\n displayAxis: PropTypes.oneOf(['auto', 'vertical', 'horizontal']),\n /**\n * If there is space on both sides of the axis preffer this side.\n */\n preferredPosition: PropTypes.oneOf(['top', 'bottom', 'left', 'right']),\n /**\n * Configuration object that will be passed to the infinite scroller component.\n */\n infiniteScrollerConfig: PropTypes.instanceOf(Object),\n};\n\nexport default forwardRef(FloatingContainer);\n\nfunction getDisplayForVertical({\n preferredPosition, hasTopSpace, hasBottomSpace, topSpace, bottomSpace,\n}) {\n if (preferredPosition === 'top' && hasTopSpace) return 'top';\n if (preferredPosition === 'bottom' && hasBottomSpace) return 'bottom';\n return hasBottomSpace || bottomSpace > topSpace ? 'bottom' : 'top';\n}\n\nfunction getDisplayForHorizontal({\n preferredPosition, hasLeftSpace, hasRightSpace, leftSpace, rightSpace,\n}) {\n if (preferredPosition === 'left' && hasLeftSpace) return 'left';\n if (preferredPosition === 'right' && hasRightSpace) return 'right';\n return hasRightSpace || rightSpace > leftSpace ? 'right' : 'left';\n}\n\nfunction getDisplayWhereItFits({\n preferredPosition, hasTopSpace, hasBottomSpace, hasLeftSpace, hasRightSpace,\n positionedHorizontallyFitsInViewport, positionedVerticallyFitsInViewport,\n}) {\n if (hasTopSpace && positionedVerticallyFitsInViewport) return 'top';\n if (hasBottomSpace && positionedVerticallyFitsInViewport) return 'bottom';\n if (hasRightSpace && positionedHorizontallyFitsInViewport) return 'right';\n if (hasLeftSpace && positionedHorizontallyFitsInViewport) return 'left';\n return preferredPosition ?? 'bottom';\n}\n\nfunction getStylesForTop({\n container, targetPosition, target, size, offset, vpLeft, vpTop,\n}) {\n const style = {};\n const leftPos = {\n auto: targetPosition.left + target.offsetWidth / 2 - container.offsetWidth / 2,\n matchElement: targetPosition.left,\n matchStart: targetPosition.left,\n matchEnd: targetPosition.right - container.offsetWidth,\n }[size];\n const topPos = targetPosition.top - container.offsetHeight - offset;\n style.left = `${leftPos + vpLeft}px`;\n style.top = `${topPos + vpTop}px`;\n\n if (size === 'matchElement') {\n style.width = `${target.offsetWidth}px`;\n } else if (size === 'matchEnd') {\n style.maxWidth = `${targetPosition.right - VIEWPORT_INITIAL_PADDING}px`;\n } else if (typeof size === 'function') {\n style.width = `${size(target.offsetWidth)}px`;\n }\n style.maxHeight = `${targetPosition.top - offset}px`;\n return style;\n}\n\nfunction getStylesForBottom({\n targetPosition, target, container, size, offset, vpLeft, vpTop,\n}) {\n const style = {};\n const leftPos = {\n auto: targetPosition.left + target.offsetWidth / 2 - container.offsetWidth / 2,\n matchElement: targetPosition.left,\n matchStart: targetPosition.left,\n matchEnd: targetPosition.right - container.offsetWidth,\n }[size];\n const topPos = targetPosition.bottom + offset;\n style.left = `${leftPos + vpLeft}px`;\n style.top = `${topPos + vpTop}px`;\n\n if (size === 'matchElement') {\n style.width = `${target.offsetWidth}px`;\n } else if (size === 'matchEnd') {\n style.maxWidth = `${targetPosition.right - VIEWPORT_INITIAL_PADDING}px`;\n } else if (typeof size === 'function') {\n style.width = `${size(target.offsetWidth)}px`;\n }\n style.maxHeight = `${window.innerHeight - targetPosition.bottom - offset}px`;\n return style;\n}\n\nfunction getStylesForLeft({\n targetPosition, target, container, size, offset,\n}) {\n const style = {};\n const leftPos = targetPosition.left - container.offsetWidth - offset;\n const topPos = {\n auto: targetPosition.top + target.offsetHeight / 2 - container.offsetHeight / 2,\n matchElement: targetPosition.top,\n matchStart: targetPosition.top,\n matchEnd: targetPosition.bottom - container.offsetHeight,\n }[size];\n style.left = `${leftPos}px`;\n style.top = `${topPos}px`;\n\n if (size === 'matchElement') {\n style.height = `${target.offsetHeight}px`;\n } else if (typeof size === 'function') {\n style.height = `${size(target.offsetHeight)}px`;\n }\n style.maxWidth = `${targetPosition.left - offset}px`;\n return style;\n}\n\nfunction getStylesForRight({\n targetPosition, target, container, size, offset, vpLeft, vpTop,\n}) {\n const style = {};\n const leftPos = targetPosition.left + target.offsetWidth + offset;\n const topPos = {\n auto: targetPosition.top + target.offsetHeight / 2 - container.offsetHeight / 2,\n matchElement: targetPosition.top,\n matchStart: targetPosition.top,\n matchEnd: targetPosition.bottom - container.offsetHeight,\n }[size];\n style.left = size === 'auto' ? `${leftPos + vpLeft}px` : `${leftPos}px`;\n style.top = size === 'auto' ? `${topPos + vpTop}px` : `${topPos}px`;\n\n if (size === 'matchElement') {\n style.height = `${target.offsetHeight}px`;\n } else if (typeof size === 'function') {\n style.height = `${size(target.offsetHeight)}px`;\n }\n style.maxWidth = `${window.innerWidth - targetPosition.left - target.offsetWidth - offset}px`;\n return style;\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Message from '../Message';\n\nfunction InfoNote({ children }) {\n return (\n
    \n \n { children }\n \n
    \n );\n}\n\nInfoNote.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default InfoNote;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ListItem(props) {\n const {\n className,\n children,\n selected,\n } = props;\n\n return (\n
  • \n {children}\n
  • \n );\n}\n\nListItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n selected: PropTypes.bool,\n};\n\nListItem.defaultProps = {\n className: '',\n};\n\nexport default ListItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ListItem from './js/ListItem';\n\nfunction List(props) {\n const {\n className,\n children,\n label,\n labelwidth,\n theme,\n style,\n } = props;\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-list'];\n\n if (theme) {\n cssClasses.push(`tyk-list--${theme}`);\n }\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n return cssClasses.join(' ');\n };\n\n const getListStyle = () => {\n const styleCopy = structuredClone(style);\n if (labelwidth) {\n styleCopy.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styleCopy;\n };\n\n return (\n
    \n {\n label !== undefined\n ? (\n \n )\n : null\n }\n
      \n {children}\n
    \n
    \n );\n}\n\nList.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n label: PropTypes.string,\n labelwidth: PropTypes.string,\n theme: PropTypes.string,\n style: PropTypes.instanceOf(Object),\n};\n\nList.defaultProps = {\n theme: 'default',\n style: {},\n};\n\nList.Item = ListItem;\n\nexport default List;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction NavBar({\n align = 'center',\n children,\n left,\n right,\n title,\n pre,\n subtitle,\n withTabs,\n}) {\n const subtitleContent = subtitle ?

    { subtitle }

    : null;\n return (\n
    \n
    \n {pre && (\n
    {pre}
    \n )}\n {\n title\n ? (\n
    \n

    { title }

    \n { subtitleContent }\n
    \n )\n : subtitleContent\n }\n
    \n {left && (\n
    { left }
    \n )}\n {right && (\n
    { right }
    \n )}\n
    \n
    \n { children }\n
    \n );\n}\n\nNavBar.propTypes = {\n align: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n title: PropTypes.string,\n subtitle: PropTypes.string,\n pre: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n left: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n right: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n withTabs: PropTypes.bool,\n};\n\nexport default NavBar;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction NavigationItem({ children }) {\n return (\n
  • \n {children}\n
  • \n );\n}\n\nNavigationItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n};\n\nexport default NavigationItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport NavigationItem from './js/NavigationItem';\n\nfunction Navigation({ children }) {\n return (\n
      \n {children}\n
    \n );\n}\n\nNavigation.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n};\n\nNavigation.Item = NavigationItem;\n\nexport default Navigation;\n","import { createContext } from 'react';\n\nexport const PortalContext = createContext();\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Collapsible from '../../Collapsible';\nimport { PortalContext } from '../panel-context';\n\nfunction PanelBody({\n children,\n noPadding,\n className,\n ...rest\n}) {\n const getCssClasses = useCallback(\n () => [\n 'tyk-panel__body',\n className,\n noPadding && 'no-padding',\n ].filter(Boolean).join(' '),\n [className, noPadding],\n );\n\n return (\n \n {\n (portalContext) => (\n portalContext.collapsable\n ? (\n \n { children }\n \n )\n : (\n \n { children }\n
    \n )\n )\n }\n \n );\n}\n\nPanelBody.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n noPadding: PropTypes.bool,\n className: PropTypes.string,\n};\n\nexport default PanelBody;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction PanelFooter(props) {\n const { children } = props;\n return (\n
    \n { children }\n
    \n );\n}\n\nPanelFooter.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default PanelFooter;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../Icon';\nimport { PortalContext } from '../panel-context';\n\nclass PanelHeader extends Component {\n getCssClasses(props) {\n const { className } = this.props;\n let cssClasses = ['tyk-panel__header'];\n\n if (props.collapsable) {\n cssClasses.push('collapsable');\n }\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n return cssClasses.join(' ');\n }\n\n render() {\n const {\n children,\n } = this.props;\n\n return (\n \n {\n (portalContext) => {\n const HeaderTag = portalContext.theme === 'blank' ? 'h3' : 'div';\n const iconType = portalContext.collapsed ? 'chevron-down' : 'chevron-up';\n\n return (\n \n { children }\n {\n portalContext.collapsable\n ?
    \n : null\n }\n \n );\n }\n }\n
    \n );\n }\n}\n\nPanelHeader.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]).isRequired,\n className: PropTypes.string,\n};\n\nexport default PanelHeader;\n","import React, {\n useCallback, useEffect, useMemo, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport PanelBody from './js/PanelBody';\nimport PanelFooter from './js/PanelFooter';\nimport PanelHeader from './js/PanelHeader';\n\nimport { PortalContext } from './panel-context';\n\nfunction Panel(props) {\n const {\n children,\n className,\n collapsed,\n collapsable,\n theme,\n onToggleCollapse,\n collapsibleIconPosition = 'right',\n } = props;\n const [collapsedState, setCollapsedState] = useState(collapsed || false);\n\n useEffect(() => {\n if (collapsed !== collapsedState) {\n setCollapsedState(collapsed);\n }\n }, [collapsed]);\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-panel'];\n const panelTheme = `tyk-panel--${theme || 'default'}`;\n const collapsbleIconPosition = `tyk-panel__icon-collapse--${collapsibleIconPosition}`;\n\n cssClasses.push(panelTheme);\n cssClasses.push(collapsbleIconPosition);\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n if (collapsedState) {\n cssClasses.push('tyk-panel--collapsed');\n }\n\n return cssClasses.join(' ');\n };\n\n const handleToggle = useCallback(() => {\n setCollapsedState(!collapsedState);\n\n if (onToggleCollapse) {\n onToggleCollapse(!collapsedState);\n }\n }, [collapsedState, onToggleCollapse]);\n\n const context = useMemo(() => ({\n collapsable,\n collapsed: collapsedState,\n onToggle: handleToggle,\n theme,\n collapsibleIconPosition,\n }), [collapsable, collapsedState, collapsibleIconPosition, theme, handleToggle]);\n\n return (\n
    \n \n {\n (typeof children === 'function')\n ? children({\n toggleCollapse: handleToggle,\n })\n : children\n }\n \n
    \n );\n}\n\nPanel.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n collapsable: PropTypes.bool,\n collapsibleIconPosition: PropTypes.string,\n collapsed: PropTypes.bool,\n theme: PropTypes.string,\n onToggleCollapse: PropTypes.func,\n};\n\nPanel.Body = PanelBody;\nPanel.Footer = PanelFooter;\nPanel.Header = PanelHeader;\n\nexport default Panel;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * Pill\n */\nfunction Pill(props) {\n const {\n children,\n className,\n theme,\n } = props;\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-pill', ...theme.split(' ').map((t) => `tyk-pill--${t}`)];\n\n if (className) {\n cssClasses = cssClasses.concat(className);\n }\n\n return cssClasses.join(' ');\n };\n\n return (\n
    \n {children}\n
    \n );\n}\n\nPill.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n /** Css classes that can be passed to the Pill element */\n className: PropTypes.string,\n /** Theme that can be applied to a Pill */\n theme: PropTypes.string,\n};\n\nPill.defaultProps = {\n theme: 'default',\n};\n\nexport default Pill;\n","import { useRef } from 'react';\n\n/**\n * RevealPanelService is a class that manages the resizing of a panel element.\n * It provides methods to set the panel's height, hide and show it, and attach\n * event listeners for resizing.\n */\nclass RevealPanelService {\n #state = null; // Private state for mouse interactions.\n\n #panel = null; // The panel element to be resized.\n\n #gutter = null; // The gutter element used for resizing.\n\n #wrapper = null; // The wrapper element that contains the panel and gutter.\n\n #onHeightChangeCallbacks = []; // Callback function to be executed when the panel is resized.\n\n #onDragStartCallbacks = []; // Callback function to be executed when the panel is resized.\n\n #onDragEndCallbacks = []; // Callback function to be executed when the panel is resized.\n\n #dragStarted = false;\n\n /**\n * Sets a callback function to be executed when the panel is resized.\n * @param {function} callback - The callback function to be called on panel resize.\n */\n on(eventName, listener) {\n let list = null;\n if (eventName === 'onHeightChange') {\n list = this.#onHeightChangeCallbacks;\n } else if (eventName === 'onDragStart') {\n list = this.#onDragStartCallbacks;\n } else if (eventName === 'onDragEnd') {\n list = this.#onDragEndCallbacks;\n }\n\n if (list) {\n this.addListener(list, listener);\n }\n }\n\n off(eventName, listener) {\n let list = null;\n if (eventName === 'onHeightChange') {\n list = this.#onHeightChangeCallbacks;\n } else if (eventName === 'onDragStart') {\n list = this.#onDragStartCallbacks;\n } else if (eventName === 'onDragEnd') {\n list = this.#onDragEndCallbacks;\n }\n\n if (list) {\n this.removeListener(list, listener);\n }\n }\n\n /**\n * Sets the panel, gutter, and wrapper elements to be controlled by this class.\n * @param {HTMLElement} wrapper - The wrapper element containing the panel and gutter.\n * @param {HTMLElement} panel - The panel element to be resized.\n * @param {HTMLElement} gutter - The gutter element used for resizing.\n */\n setRefs(wrapper, panel, gutter) {\n if (this.#panel || this.#gutter || this.#wrapper) {\n this.unbindEvents();\n }\n this.#wrapper = wrapper;\n this.#panel = panel;\n this.#gutter = gutter;\n this.#state = null;\n this.bindEvents();\n }\n\n /**\n * Attaches event listeners for panel resizing.\n */\n bindEvents() {\n this.ensureRefs('bindEvents');\n this.#gutter.addEventListener('mousedown', this.onMouseDown.bind(this));\n document.addEventListener('mousemove', this.onMouseMove.bind(this));\n document.addEventListener('mouseup', this.onMouseUp.bind(this));\n }\n\n /**\n * Gets the current height of the panel.\n * @returns {number} - The height of the panel in pixels.\n */\n getHeight() {\n this.ensureRefs('getHeight');\n const size = this.#panel.getBoundingClientRect();\n return size.height;\n }\n\n /**\n * Handles the mouse down event, initiating the resizing process.\n * @param {MouseEvent} e - The mouse event object.\n */\n onMouseDown(e) {\n this.ensureRefs('onMouseDown');\n this.#state = {\n mouseDown: true,\n initialRect: this.#panel.getBoundingClientRect(),\n initialEvent: e,\n };\n }\n\n /**\n * Handles the mouse move event, adjusting the panel's height during resizing.\n * @param {MouseEvent} e - The mouse event object.\n */\n onMouseMove(e) {\n this.ensureRefs('onMouseMove');\n\n if (!this.#state) {\n return;\n }\n\n const isButtonDown = this.isPrimaryMouseButtonDown(e);\n if (!isButtonDown) {\n this.onMouseUp();\n return;\n }\n\n if (!this.#dragStarted) {\n this.#dragStarted = true;\n this.onDragStart.bind(this)();\n }\n\n const newY = this.#state.initialEvent.y - e.y;\n const finalHeight = Math.ceil(this.#state.initialRect.height + newY);\n this.setHeight(`${finalHeight}px`, 'mousemove');\n }\n\n // eslint-disable-next-line class-methods-use-this\n notifyListeners(list, value) {\n if (list && Array.isArray(list) && list.length) {\n list.forEach((fn) => {\n if (typeof fn === 'function') {\n fn(value);\n }\n });\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n addListener(list, listener) {\n if (list && Array.isArray(list) && typeof listener === 'function') {\n list.push(listener);\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n removeListener(list, listener) {\n if (list && Array.isArray(list) && typeof listener === 'function' && list.length) {\n const index = list.indexOf(listener);\n\n if (index > -1) {\n list.splice(index, 1);\n }\n }\n }\n\n onDragEnd() {\n if (this.#dragStarted) {\n this.notifyListeners(this.#onDragEndCallbacks, this.getHeight());\n }\n }\n\n onDragStart() {\n this.notifyListeners(this.#onDragStartCallbacks, this.getHeight());\n }\n\n // eslint-disable-next-line class-methods-use-this\n isPrimaryMouseButtonDown(e) {\n const flags = e.buttons !== undefined ? e.buttons : e.which;\n // eslint-disable-next-line no-bitwise\n const isDown = flags === 1;\n return isDown;\n }\n\n /**\n * Resets the state after the mouse up event, ending the resizing process.\n */\n onMouseUp() {\n this.#state = null;\n this.onDragEnd.bind(this)();\n this.#dragStarted = false;\n }\n\n /**\n * Sets the height of the panel.\n * @param {string} height - The new height value as a CSS string (e.g., \"100px\").\n */\n setHeight(height) {\n let heightVal = height;\n this.ensureRefs('setHeight');\n\n if (typeof heightVal === 'number') {\n heightVal += 'px';\n }\n\n this.#panel.style.height = heightVal;\n\n this.notifyListeners(this.#onHeightChangeCallbacks, this.getHeight());\n }\n\n /**\n * Ensures that the required elements (wrapper, panel, and gutter) are set.\n * Throws an error if they are missing.\n */\n ensureRefs(reason) {\n if (!this.#panel || !this.#gutter || !this.#wrapper) {\n throw new Error(\n `${reason}: Wrapper, panel, and gutter elements are required. Use setRefs method first.`,\n );\n }\n }\n\n /**\n * Checks if the panel is hidden.\n * @returns {boolean} - True if the panel is hidden; false otherwise.\n */\n isHidden() {\n this.ensureRefs('isHidden');\n return this.#wrapper.style.visibility === 'hidden';\n }\n\n /**\n * Hides the panel by setting its visibility to \"hidden\".\n */\n hide() {\n this.ensureRefs('hide');\n this.#wrapper.style.visibility = 'hidden';\n }\n\n /**\n * Shows the panel by setting its visibility to \"visible\".\n */\n show() {\n this.ensureRefs('show');\n this.#wrapper.style.visibility = 'visible';\n }\n\n /**\n * Unbinds the event listeners added for resizing.\n */\n unbindEvents() {\n this.#onHeightChangeCallbacks = [];\n this.#onDragStartCallbacks = [];\n this.#onDragEndCallbacks = [];\n this.#gutter.removeEventListener('mousedown', this.onMouseDown.bind(this));\n document.removeEventListener('mousemove', this.onMouseMove.bind(this));\n document.removeEventListener('mouseup', this.onMouseUp.bind(this));\n }\n\n deinit() {\n this.unbindEvents();\n }\n}\n\nexport const useRevealPanelService = () => {\n const revealPanelServiceRef = useRef(new RevealPanelService());\n return revealPanelServiceRef.current;\n};\n","import React, {\n useEffect,\n useRef,\n useImperativeHandle,\n forwardRef,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { createPortal } from 'react-dom';\nimport { useRevealPanelService } from './js/RevealPanelService';\n\nfunction RevealPanelHeaderLeft({ children }) {\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return <>{children};\n}\n\nRevealPanelHeaderLeft.propTypes = {\n children: PropTypes.instanceOf({}),\n};\n\nfunction RevealPanelHeaderRight({ children }) {\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return <>{children};\n}\n\nRevealPanelHeaderRight.propTypes = {\n children: PropTypes.instanceOf({}),\n};\n\nconst mergeClasses = (...classNames) => classNames.map((it) => (it || '').trim()).filter(Boolean).join(' ');\n\nfunction RevealPanel({\n children,\n height,\n onHeightChange = null,\n onDragStart = null,\n onDragEnd = null,\n style = null,\n parentSelector = null,\n contentStyle,\n contentClassName,\n gutterClassName,\n wrapperClassName,\n// eslint-disable-next-line consistent-return\n}, ref) {\n const panelRef = useRef(null);\n const gutterRef = useRef(null);\n const wrapperRef = useRef(null);\n\n const panelService = useRevealPanelService();\n\n useEffect(() => {\n if (!panelRef.current || !gutterRef.current || !wrapperRef.current) {\n return;\n }\n\n if (!panelService) {\n return;\n }\n\n panelService.setRefs(wrapperRef.current, panelRef.current, gutterRef.current);\n panelService.on('onHeightChange', onHeightChange);\n panelService.on('onDragStart', onDragStart);\n panelService.on('onDragEnd', onDragEnd);\n panelService.setHeight(height, 'initialize');\n\n // eslint-disable-next-line consistent-return\n return () => {\n panelService.unbindEvents();\n };\n }, []);\n\n useImperativeHandle(\n ref,\n () => {\n // bind this context\n const bind = (func) => func.bind(panelService);\n\n return {\n getHeight: bind(panelService.getHeight),\n setHeight: bind(panelService.setHeight),\n hide: bind(panelService.hide),\n show: bind(panelService.show),\n isHidden: bind(panelService.isHidden),\n deinit: bind(panelService.deinit),\n on: bind(panelService.on),\n off: bind(panelService.off),\n };\n },\n [],\n );\n\n let headerLeft = null;\n let headerRight = null;\n const contents = [];\n\n React.Children.forEach(children, (child) => {\n if (child && React.isValidElement(child)) {\n if (child.type === RevealPanelHeaderLeft) {\n headerLeft = child;\n } else if (child.type === RevealPanelHeaderRight) {\n headerRight = child;\n } else {\n contents.push(child);\n }\n }\n });\n\n const element = (\n
    \n
    \n
    \n\n
    {headerLeft}
    \n
    \n
    {headerRight}
    \n\n
    \n
    \n {contents}\n
    \n
    \n );\n\n if (parentSelector) {\n return createPortal(element, document.querySelector(parentSelector));\n }\n}\n\nRevealPanel.propTypes = {\n children: PropTypes.instanceOf({}),\n height: PropTypes.string,\n onHeightChange: PropTypes.func,\n onDragStart: PropTypes.func,\n onDragEnd: PropTypes.func,\n parentSelector: PropTypes.string,\n style: PropTypes.instanceOf({}),\n contentStyle: PropTypes.instanceOf({}),\n contentClassName: PropTypes.string,\n gutterClassName: PropTypes.string,\n wrapperClassName: PropTypes.string,\n};\nconst TempRevealPanel = forwardRef(RevealPanel);\nTempRevealPanel.HeaderLeft = RevealPanelHeaderLeft;\nTempRevealPanel.HeaderRight = RevealPanelHeaderRight;\n\nexport default TempRevealPanel;\n","import { createContext } from 'react';\n\nexport const TabsContext = createContext();\n","import { createContext } from 'react';\n\nexport default createContext();\n","import React, { useEffect, useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport TabContext from './TabContext';\nimport { usePrevious } from '../../../hooks';\n\nfunction TabContent(props) {\n const {\n addTab,\n hideTab,\n updateTab,\n showTab,\n children,\n selectedPath,\n tabData,\n tabsId,\n tabExists,\n path,\n rendered,\n hideTabContent,\n tabs,\n } = props;\n\n useEffect(() => {\n const tempTabData = { ...tabData };\n\n if (!tabExists(path)) {\n addTab(tempTabData, path);\n }\n }, [tabData, path]);\n\n const prevTabData = usePrevious(tabData);\n useEffect(() => {\n if (\n tabExists(path) && tabData?.title\n && (prevTabData?.title !== tabData?.title || prevTabData?.selected !== tabData.selected)\n ) {\n const tempTabData = { ...tabData };\n updateTab(tempTabData, path);\n }\n }, [tabData, path, prevTabData, tabs]);\n\n useEffect(() => {\n showTab(path);\n return () => hideTab(path);\n }, []);\n\n const shouldRender = useMemo(() => {\n if (!Object.keys(tabs).length) {\n return false;\n }\n\n if (hideTabContent || tabs[tabData.id].show === false) {\n return false;\n }\n\n if (!rendered) {\n return tabExists(path);\n }\n return selectedPath && selectedPath.indexOf(tabData.id) > -1;\n }, [hideTabContent, rendered, selectedPath, tabData, tabs]);\n\n const context = useMemo(() => ({ path, tabsId }), [path, tabsId]);\n\n if (!shouldRender) return null;\n return (\n
    -1 ? 'block' : 'none' }}>\n \n {children}\n \n
    \n );\n}\n\nTabContent.propTypes = {\n addTab: PropTypes.func,\n updateTab: PropTypes.func,\n hideTab: PropTypes.func,\n showTab: PropTypes.func,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n path: PropTypes.instanceOf(Array),\n hideTabContent: PropTypes.bool,\n rendered: PropTypes.bool,\n selectedPath: PropTypes.instanceOf(Array),\n tabExists: PropTypes.func,\n tabsId: PropTypes.string,\n tabData: PropTypes.instanceOf(Object),\n tabs: PropTypes.instanceOf(Object),\n};\n\nexport default TabContent;\n","import React, {\n useContext, useEffect, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { TabsContext } from '../tabs-context';\nimport TabContext from './TabContext';\nimport TabContent from './TabContent';\n\nfunction Tab(props) {\n const { id } = props;\n const tabsContext = useContext(TabsContext);\n const tabContext = useContext(TabContext);\n const {\n tabExists,\n selectedPath,\n addTab,\n updateTab,\n hideTab,\n showTab,\n rendered,\n hideTabContent,\n tabs,\n } = tabsContext;\n const {\n children,\n } = props;\n const [path, setPath] = useState('');\n\n useEffect(() => {\n let tempPath;\n if (tabContext && path) {\n if (tabContext.tabsId === tabsContext.id) {\n tempPath = tabContext.path.concat([id]);\n } else {\n tempPath = [id];\n }\n } else {\n tempPath = [id];\n }\n setPath(tempPath);\n }, [tabContext]);\n\n if (!path) {\n return null;\n }\n\n return (\n \n {children}\n \n );\n}\n\nTab.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n id: PropTypes.string,\n};\n\nTab.defaultProps = {};\n\nexport default Tab;\n","import React, {\n useEffect, useMemo, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport Tab from './js/Tab';\n\nimport Collapsible from '../Collapsible';\nimport Icon from '../Icon';\nimport { TabsContext } from './tabs-context';\n\nfunction Tabs(props) {\n const {\n children,\n className,\n id,\n onTabChange,\n type,\n hideTabContent,\n } = props;\n const [tabs, setTabs] = useState({});\n const [selectedPath, setSelectedPath] = useState([]);\n const [rendered, setRendered] = useState(false);\n const [initialPath, setInitialPath] = useState(null);\n\n useEffect(() => {\n setSelectedPath(initialPath);\n }, [initialPath]);\n\n const updateTabsList = (tabsState, path, tabData) => {\n let tempTabsState = { ...tabsState };\n const tempTabData = { ...tabData };\n const tempPath = path.slice(0);\n\n while (tempPath.length > 1) {\n tempTabsState = tempTabsState[tempPath.shift()];\n\n if (!tempTabsState) {\n tempTabsState = {};\n }\n }\n\n tempTabData.tempPath = tempPath;\n tempTabsState[tempPath.shift()] = tempTabData;\n\n return tempTabsState;\n };\n\n const toggleTab = (tabsState, path) => {\n let tempTabsState = { ...tabsState };\n const tempPath = path.slice(0);\n\n while (tempPath.length > 1) {\n tempTabsState = tempTabsState[tempPath.shift()];\n }\n\n const key = tempPath.shift();\n if (tempTabsState[key].collapsed === undefined) {\n tempTabsState[key].collapsed = true;\n } else {\n tempTabsState[key].collapsed = !tempTabsState[key].collapsed;\n }\n\n return tempTabsState;\n };\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-tabs'];\n\n cssClasses.push(`tyk-tabs--${type || 'default'}`);\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n return cssClasses.join(' ');\n };\n\n const setCurrentSelectedPath = (path, tabData) => {\n const tempPath = path.slice(0);\n let tempRendered = true;\n\n if (tabData.collapsible) {\n tempPath.push(Object.keys(tabData.tabs)[0]);\n tempRendered = false;\n }\n\n setTabs((prevTabs) => {\n let tempTabs = { ...prevTabs };\n\n tempTabs = toggleTab(tempTabs, path);\n\n return tempTabs;\n });\n setSelectedPath(tempPath);\n setRendered(tempRendered);\n\n if (onTabChange) {\n onTabChange(tabData);\n }\n };\n\n const getTabCssClass = (tabId) => {\n const cssClasses = [];\n\n if (selectedPath && selectedPath.indexOf(tabId) > -1) {\n cssClasses.push('active');\n }\n\n return cssClasses.join(' ');\n };\n\n const genTabs = (currentTabs, path) => {\n if (!currentTabs) {\n return null;\n }\n\n return (\n
      \n {\n Object.keys(currentTabs).map((tabId, index) => {\n const tempPath = path ? path.concat([currentTabs[tabId].id]) : [currentTabs[tabId].id];\n const iconType = currentTabs[tabId].collapsed ? 'chevron-up' : 'chevron-down';\n\n if (currentTabs[tabId].show === false) {\n return null;\n }\n\n return (\n
    • \n \n { currentTabs[tabId].title }\n {\n currentTabs[tabId].collapsible\n ? \n : null\n }\n \n {\n currentTabs[tabId].collapsible\n ? (\n \n {genTabs(currentTabs[tabId].tabs, tempPath)}\n \n )\n : genTabs(currentTabs[tabId].tabs, tempPath)\n }\n
    • \n );\n })\n }\n
    \n );\n };\n\n const addTab = (tabData, path) => {\n setTabs((prevTabs) => updateTabsList({ ...prevTabs }, path, tabData));\n\n if (tabData.selected) {\n setInitialPath(path);\n }\n };\n\n const updateTab = (tabData, path) => {\n setTabs((prevTabs) => {\n const tempTabs = { ...prevTabs };\n tempTabs[tabData.id] = tabData;\n return tempTabs;\n });\n\n if (tabData.selected) {\n setCurrentSelectedPath(path, tabData);\n }\n };\n\n const hideTab = (path) => {\n setTabs((prevTabs) => {\n const tempTabs = { ...prevTabs };\n tempTabs[path].show = false;\n\n return tempTabs;\n });\n };\n\n const showTab = (path) => {\n setTabs((prevTabs) => {\n const tempTabs = { ...prevTabs };\n\n tempTabs[path].show = true;\n\n return tempTabs;\n });\n };\n\n const tabExists = (path) => {\n let tempTabs = { ...tabs };\n const tempPath = path.slice(0);\n while (tempPath.length > 1) {\n tempTabs = tempTabs[tempPath.shift()];\n }\n\n const key = tempPath.shift();\n\n return Boolean(tempTabs?.[key]);\n };\n\n const context = useMemo(() => ({\n id,\n addTab,\n hideTab,\n updateTab,\n showTab,\n tabExists,\n selectedPath,\n rendered,\n hideTabContent,\n tabs,\n }), [\n id,\n addTab,\n hideTab,\n updateTab,\n showTab,\n tabExists,\n selectedPath,\n rendered,\n hideTabContent,\n tabs,\n ]);\n\n return (\n
    \n {genTabs(tabs)}\n \n {\n (typeof children === 'function')\n ? children({\n hideTab,\n showTab,\n })\n : children\n }\n \n
    \n );\n}\n\nTabs.propTypes = {\n className: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n hideTabContent: PropTypes.bool,\n id: PropTypes.string,\n onTabChange: PropTypes.func,\n type: PropTypes.string,\n};\n\nTabs.Tab = Tab;\n\nexport default Tabs;\n","import React, {\n useCallback, useEffect, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport FloatingContainer from '../FloatingContainer';\nimport Icon from '../Icon';\n\nfunction Tooltip({\n render,\n className,\n children,\n position = 'auto',\n style,\n icon = false,\n closable,\n isOpened = false,\n additionalClickParents = [],\n ...props\n}) {\n const [isActive, setIsActive] = useState(false);\n const wrapperRef = useRef(null);\n const tooltipRef = useRef(null);\n const activeEvents = closable\n ? {\n onClick: () => setIsActive(true),\n }\n : {\n onMouseEnter: () => setIsActive(true),\n onMouseLeave: () => setIsActive(false),\n onFocus: () => setIsActive(true),\n onBlur: () => setIsActive(false),\n };\n\n const handleDocumentClick = useCallback((e) => {\n if ([...additionalClickParents, tooltipRef.current].some((p) => p?.contains?.(e.target))) {\n return;\n }\n setIsActive(false);\n }, [additionalClickParents]);\n\n useEffect(() => {\n document.addEventListener('click', handleDocumentClick, true);\n return () => document.removeEventListener('click', handleDocumentClick, true);\n }, [handleDocumentClick]);\n\n useEffect(() => {\n setIsActive(isOpened);\n }, [isOpened]);\n\n const classes = ['tyk-tooltip', className].filter(Boolean).join(' ');\n return (\n \n {children}\n {isActive && (\n \n
    \n {icon && (\n icon === true ? (\n \n ) : (\n icon\n )\n )}\n
    \n {render}\n
    \n {closable && (\n {\n e.stopPropagation();\n setIsActive(false);\n }}\n />\n )}\n
    \n \n )}\n
    \n );\n}\n\nTooltip.propTypes = {\n children: PropTypes.node.isRequired,\n /** custom styles to apply on hovered element */\n style: PropTypes.instanceOf(Object),\n /** describes where the tooltip should be displayed in relation\n * whith the hovered element: top, bottom, left, right\n */\n position: PropTypes.string,\n /** content of the tooltip, can be a string or a React node element */\n render: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.string,\n ]),\n /** additional tooltip classes */\n className: PropTypes.string,\n /** if `true` displays the \"question mark\" icon;\n * optionally you can pass a different icon\n */\n icon: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.node,\n ]),\n /** if `true` the tooltip is activated on click and an \"x\" is displayed to close it;\n * if `false` the tooltip is activated on hover and it closes when no longer hovering\n */\n closable: PropTypes.bool,\n /** handles the `isActive` state of the tooltip from outside */\n isOpened: PropTypes.bool,\n /** Additional dom elements to check if the document click was inside of them.\n * Useful when you want to open the tooltip after an interaction\n * with an element not inside the tooltip root.\n */\n additionalClickParents: PropTypes.instanceOf(Array),\n};\n\nexport default Tooltip;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Tooltip from '../Tooltip';\n/**\n * TextEllipsis component helps you to hide a part of a text,\n * but displaying it when it's being hovered.\n * The entire text is displayed with the help of Tooltip component\n */\n\nfunction TextEllipsis({ text, limit, position }) {\n return (\n text.length > limit\n ? (\n \n {text.substring(0, limit)}\n ...\n \n )\n : text\n );\n}\n\nTextEllipsis.propTypes = {\n /** Text to be shrinked by TextEllipsis */\n text: PropTypes.string,\n /** Number of characters that TextEllipsis would leave visible */\n limit: PropTypes.number,\n /** tooltip position */\n position: PropTypes.string,\n};\n\nexport default TextEllipsis;\n","import React, { useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction shouldShowPage(currentNr, pageNr, totalNrOfPages) {\n const basePageNr = 5;\n const minimumNrOfPages = 10;\n\n if (totalNrOfPages < minimumNrOfPages) {\n return true;\n }\n\n if (\n pageNr < basePageNr\n && currentNr < basePageNr\n ) {\n return true;\n }\n\n if (\n pageNr > totalNrOfPages - basePageNr\n && currentNr > totalNrOfPages - basePageNr\n ) {\n return true;\n }\n\n if (\n currentNr >= pageNr - 2\n && currentNr <= pageNr + 2\n ) {\n return true;\n }\n\n return [0, 1, totalNrOfPages - 1, totalNrOfPages].includes(currentNr);\n}\n\nfunction getPagesArr(nrOfPages, selectedPage) {\n let i;\n const pagesArr = [];\n\n for (i = 0; i <= nrOfPages; i += 1) {\n if (shouldShowPage(i, selectedPage, nrOfPages)) {\n if (i > pagesArr.at(-1)) {\n pagesArr.push(`...-${i}`);\n }\n pagesArr.push(i + 1);\n }\n }\n\n return pagesArr;\n}\n\nfunction Pagination(props) {\n const {\n value = 0,\n totalNrOfPages,\n onChange,\n } = props;\n\n const [selectedPage, setSelectedPage] = useState(value);\n\n const pagesArray = useMemo(\n () => getPagesArr(totalNrOfPages, selectedPage),\n [selectedPage, totalNrOfPages],\n );\n\n function goToPage(pageNr) {\n setSelectedPage(pageNr);\n if (onChange) onChange(pageNr);\n }\n\n return (\n totalNrOfPages\n ? (\n
      \n {selectedPage > 0 && totalNrOfPages > 5 && (\n
    • \n \n
    • \n )}\n {\n pagesArray.map((pageNr) => (\n
    • \n {\n String(pageNr).startsWith('...')\n ? ...\n : \n }\n
    • \n ))\n }\n {selectedPage < totalNrOfPages && totalNrOfPages > 5 && (\n
    • \n \n
    • \n )}\n
    \n )\n : null\n );\n}\n\nPagination.propTypes = {\n value: PropTypes.number,\n totalNrOfPages: PropTypes.number,\n onChange: PropTypes.func,\n};\n\nexport default Pagination;\n","import { createContext } from 'react';\n\nexport const tableContext = createContext();\n","import React, { useState, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { tableContext } from '../tableContext';\nimport Icon from '../../Icon';\n\nexport function HeaderCell({ column }) {\n const { sortable } = column;\n const [sortOrder, setSortOrder] = useState(sortable?.default || 'ASC');\n const { state, sendMessage } = useContext(tableContext);\n return (\n {\n sendMessage('sort', { column, sortOrder });\n setSortOrder(sortOrder === 'ASC' ? 'DESC' : 'ASC');\n } : null}\n className={state.maxHeight ? 'fixed-header' : ''}\n >\n {column.name}\n {column.sortable && (\n \n \n \n )}\n \n );\n}\n\nHeaderCell.propTypes = {\n column: PropTypes.instanceOf(Object),\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { HeaderCell } from './header-cell';\nimport { tableContext } from '../tableContext';\n\nexport function Header({ allRowsSelected }) {\n const { state, sendMessage } = useContext(tableContext);\n const { columns, selectable } = state;\n\n const generateHeaders = () => columns.map((column) => (\n \n ));\n\n const generateSelectable = () => {\n const Component = selectable.type;\n return (\n \n {selectable?.allowSelectAll ? (\n
    \n {\n const isCheckbox = v?.target?.tagName.toLowerCase() === 'input' && v?.target?.type.toLowerCase() === 'checkbox';\n sendMessage('header.selectAll.change', isCheckbox ? v.target.checked : Boolean(v));\n }}\n >\n {selectable.values?.value}\n \n
    \n ) : (\n selectable.name || 'Select'\n )}\n \n );\n };\n\n return (\n \n \n {selectable?.position === 'LEFT' && generateSelectable()}\n {generateHeaders()}\n {selectable?.position === 'RIGHT' && generateSelectable()}\n \n \n );\n}\n\nHeader.propTypes = {\n allRowsSelected: PropTypes.bool,\n};\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * - Checkboxes are used when a user needs to select one or more values from a series of options.\n * - They can be also be used as a binary toggle but consider radio instead.\n * - Can be used with Formik respectively (FormikCheckbox)\n */\nclass Checkbox extends Component {\n getCssClasses() {\n const {\n inline, disabled, readOnly, theme = '', wrapperClassName = '',\n } = this.props;\n\n const cssClasses = [wrapperClassName];\n\n cssClasses.push('tyk-checkbox');\n\n if (inline) {\n cssClasses.push('tyk-checkbox--inline');\n }\n\n if (theme.trim()) {\n cssClasses.push(...theme.split(' ').map((t) => `tyk-checkbox--theme-${t}`));\n }\n\n if (disabled || readOnly) {\n cssClasses.push('tyk-checkbox--is-disabled');\n }\n\n return cssClasses.join(' ');\n }\n\n displayError() {\n const { error } = this.props;\n if (!error) return null;\n\n return (\n

    \n {error}\n

    \n );\n }\n\n displayNote() {\n const { note } = this.props;\n if (!note) return null;\n\n return (\n

    \n {note}\n

    \n );\n }\n\n render() {\n const {\n input, value, label, ...rest\n } = this.props;\n return (\n \n
    \n \n {this.displayNote()}\n {this.displayError()}\n
    \n \n );\n }\n}\n\nCheckbox.propTypes = {\n /** Disable a checkbox */\n disabled: PropTypes.bool,\n /** Readonly prop behaves the same as disable on checkboxes */\n readOnly: PropTypes.bool,\n /** Align checkbox with in same line with other elements */\n inline: PropTypes.bool,\n /** Set a theme for checkbox */\n theme: PropTypes.string,\n /** Set an error state for checkbox if boolean will show just icon without message */\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n /** Adds additional information under the checkbox element */\n note: PropTypes.string,\n input: PropTypes.instanceOf(Object),\n /** Adds a label to checkbox */\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n /** Set a name for checkbox */\n name: PropTypes.string,\n /** Set initial value for checkbox */\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n /** Make checkbox checked by default */\n checked: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n /** Callback function executed on change of checkbox */\n onChange: PropTypes.func,\n /** CSS classes added to the wrapper of the component */\n wrapperClassName: PropTypes.string,\n};\n\nexport default Checkbox;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nexport function Cell({ col, row }) {\n if (!row.values[col.id]) {\n return ; // eslint-disable-line jsx-a11y/control-has-associated-label\n }\n\n if (col.type === 'string') {\n return (\n \n {row.values[col.id]?.value}\n \n );\n }\n const Component = col.type;\n return (\n \n \n {row.values[col.id].children ? row.values[col.id].children : null}\n
    \n \n );\n}\n\nCell.propTypes = {\n col: PropTypes.instanceOf(Object),\n row: PropTypes.instanceOf(Object),\n index: PropTypes.number,\n};\n","import React, { useCallback, useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport Checkbox from '../../../form/components/Checkbox';\nimport { Cell } from './cell';\nimport { tableContext } from '../tableContext';\n\nexport function Row({ row, index }) {\n const { state, sendMessage } = useContext(tableContext);\n const { columns, selectable } = state;\n\n const SelectableCheckbox = useCallback(() => (\n // eslint-disable-next-line jsx-a11y/control-has-associated-label\n \n sendMessage('row.selected', { index, selected: v.target.checked })}\n />\n \n ), [row.selected, index]);\n\n return (\n \n {selectable && selectable.position === 'LEFT' && SelectableCheckbox()}\n {columns.map((col) => (\n \n ))}\n {selectable && selectable.position === 'RIGHT' && SelectableCheckbox()}\n \n );\n}\n\nRow.propTypes = {\n row: PropTypes.instanceOf(Object),\n index: PropTypes.number,\n};\n","import React, { useContext } from 'react';\nimport { tableContext } from '../tableContext';\nimport { Row } from './row';\n\nexport function Body() {\n const { state } = useContext(tableContext);\n const { rows } = state;\n\n return (\n \n {\n // eslint-disable-next-line react/no-array-index-key\n rows.map((row, i) => )\n }\n \n );\n}\n","import React, {\n useCallback, useEffect, useMemo, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport Message from '../Message';\nimport Pagination from '../../form/components/Pagination';\nimport Loader from '../Loader';\nimport InfiniteScroller from '../InfiniteScroller';\nimport { Header } from './js/header';\nimport { Body } from './js/body';\nimport { tableContext } from './tableContext';\n\n/**\n * This is tyk's table component used to render a data in a tabular view.\n * See the example configuration object below to understand how to hydrate the table component\n */\n\nfunction Table({\n value, onChange, noDataMessage, loading, infiniteScrolling,\n}) {\n const [state, setState] = useState(null);\n const [onChangeMsg, setOnChangeMsg] = useState('api');\n const itemsListRef = useRef(null);\n const sortRows = useCallback((col, sortOrder) => {\n setState((prevState) => ({\n ...prevState,\n sort: {\n order: sortOrder,\n col,\n },\n }));\n }, []);\n\n const selectAllRows = useCallback((selected) => {\n setState((prevState) => ({\n ...prevState,\n rows: prevState.rows.map((row) => ({ ...row, selected })),\n }));\n }, []);\n\n const selectRow = useCallback(({ index, selected }) => {\n setState((prevState) => ({\n ...prevState,\n rows: [\n ...prevState.rows.slice(0, index),\n { ...prevState.rows[index], selected },\n ...prevState.rows.slice(index + 1),\n ],\n }));\n }, []);\n\n const setPagination = useCallback((data) => {\n setState((prevState) => ({\n ...prevState,\n pagination: {\n ...prevState.pagination,\n current: data + 1,\n },\n }));\n }, []);\n\n const api = {\n getState: () => state,\n setState: (newState) => setState(newState),\n };\n\n const sendMessage = useCallback((message, data) => {\n setOnChangeMsg(message);\n if (message === 'sort') {\n sortRows(data.column.id, data.sortOrder);\n }\n\n if (message === 'header.selectAll.change') {\n selectAllRows(data);\n }\n\n if (message === 'row.selected') {\n selectRow(data);\n }\n\n if (message === 'pagination.change') {\n setPagination(data);\n }\n }, [sortRows, selectAllRows, selectRow, setPagination]);\n\n const context = useMemo(() => ({ state, sendMessage }), [state, sendMessage]);\n\n useEffect(() => setState(value), [value]);\n useEffect(() => {\n if (onChange) {\n onChange(onChangeMsg, state, api);\n }\n setOnChangeMsg('api');\n }, [state]);\n\n if (!state) {\n return ;\n }\n\n if (state.rows <= 0) {\n return {noDataMessage || 'No Data Available'};\n }\n\n const getTable = () => (\n \n
    selected)} />\n \n
    \n );\n\n return (\n \n
    \n {\n loading && \n }\n {\n infiniteScrolling && state.pagination\n ? (\n state.pagination.current}\n loadMore={(num) => sendMessage('pagination.change', num)}\n pageNumber={state.pagination.current - 1}\n initialLoad={false}\n >\n { getTable() }\n \n )\n : getTable()\n }\n
    \n {state.pagination && !infiniteScrolling && (\n
    \n sendMessage('pagination.change', num)}\n />\n
    \n )}\n
    \n );\n}\n\nTable.propTypes = {\n /** Configuration object used to render the component */\n value: PropTypes.shape({\n /** Configuration for table columns */\n columns: PropTypes.arrayOf(PropTypes.shape({\n /** Unique id of the column */\n id: PropTypes.string.isRequired,\n /** Name of the column */\n name: PropTypes.string,\n /** Type of column, String by default */\n type: PropTypes.oneOfType([\n /** Just renders cell data of type strings */\n PropTypes.string,\n /** Render cell of elements (eg. Input / Button) */\n PropTypes.element,\n /** Render a custom function/component */\n PropTypes.func,\n ]),\n sortable: PropTypes.oneOfType([\n /** Make Column sortable */\n PropTypes.bool,\n /** Configure sorting behaviour */\n PropTypes.shape({\n /** Set default sorting direction ASC / DESC */\n default: PropTypes.string,\n }),\n ]),\n })),\n /** Configuration for table rows */\n rows: PropTypes.arrayOf(PropTypes.shape({})),\n /** Configuration to make table rows selectable */\n selectable: PropTypes.shape({}),\n /** Renders pagination for table if the object is missing / empty no pagination is rendered. */\n pagination: PropTypes.shape({}),\n /** Sets maximum height for table container. */\n maxHeight: PropTypes.string,\n /** Styling for the table container. */\n styling: PropTypes.shape({\n /** It's recommended to add styles to a class and pass the class in this object */\n className: PropTypes.string,\n }),\n }).isRequired,\n /** Callback executed with message and value when there are changes on table */\n onChange: PropTypes.func,\n /** Renders a component with the given message when `config.rows` is empty */\n noDataMessage: PropTypes.string,\n /** Show placeholder loader */\n loading: PropTypes.bool,\n /** Adds infinite scroller on page and calls `onChange` with `pagination.change` message */\n infiniteScrolling: PropTypes.bool,\n};\n\nTable.defaultProps = {\n loading: false,\n infiniteScrolling: false,\n noDataMessage: 'No Data Available',\n onChange: null,\n};\n\nexport default Table;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Column({\n children,\n align,\n className,\n offset,\n size,\n ...rest\n}) {\n const classes = [\n 'tyk-col',\n className,\n align && `tyk-col--align-${align}`,\n ...size.split(' ').map((cSize) => `tyk-col--${cSize}`),\n ...(offset ? offset.split(' ') : []).map((cOffset) => `tyk-col--offset-${cOffset}`),\n ].filter(Boolean).join(' ');\n\n return (\n
    \n { children }\n
    \n );\n}\n\nColumn.propTypes = {\n /**\n * This property describes how the column element will be aligned vertically\n * within a Row: bottom, center, top\n */\n align: PropTypes.string,\n /** Css classes that can be passed to the column element */\n className: PropTypes.string,\n /**\n * Specifies the size of the column within a Row (values must be between 1 - 12)\n */\n size: PropTypes.string.isRequired,\n /**\n * Specifies the left gap a column can have within a Row (values must be between 1 - 12)\n */\n offset: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n PropTypes.object,\n PropTypes.node,\n ]),\n};\n\nexport default Column;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/** Row component which must be always present as a wrapper for Columns */\nfunction Row({\n className,\n nogutters,\n children,\n ...rest\n}) {\n const classes = [\n 'tyk-row',\n className,\n nogutters && 'no-gutters',\n nogutters && 'tyk-row--gutterless',\n ].filter(Boolean).join(' ');\n\n return (\n
    \n { children }\n
    \n );\n}\n\nRow.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n /** Css classes that can be passed to the Row element */\n className: PropTypes.string,\n /** Removes all the spaces between column */\n nogutters: PropTypes.bool,\n};\n\nexport default Row;\n","import { createContext } from 'react';\n\nexport const DropdownContext = createContext();\n","import React, { cloneElement, useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { DropdownContext } from '../dropdown-context';\nimport Icon from '../../../../components/Icon';\n\nfunction DropdownItem(props) {\n const {\n customdropdownitem,\n children,\n eventKey,\n href,\n target,\n title,\n onClick,\n } = props;\n const dropdownItemCLick = useCallback((dropdownContext, itemProps) => {\n dropdownContext.onSelectItem(eventKey, itemProps);\n\n if (onClick) onClick(eventKey);\n }, []);\n\n return (\n \n {\n (dropdownContext) => (\n dropdownItemCLick(dropdownContext, props)}\n onKeyUp={() => {}}\n >\n {\n customdropdownitem\n ? cloneElement(customdropdownitem, {})\n : (\n \n {\n eventKey\n && dropdownContext.selectedItem === eventKey\n && dropdownContext.showCheckmark\n ? \n : null\n }\n \n {title || children}\n \n \n )\n }\n \n )\n }\n \n );\n}\n\nDropdownItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n customdropdownitem: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n ]),\n eventKey: PropTypes.string,\n href: PropTypes.string,\n target: PropTypes.string,\n onClick: PropTypes.func,\n title: PropTypes.string,\n};\n\nexport default DropdownItem;\n","import React, {\n Component, createRef,\n} from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport DropdownItem from './js/DropdownItem';\nimport Button from '../../../components/Button';\nimport { DropdownContext } from './dropdown-context';\n\nclass Dropdown extends Component {\n static isElemInRightView(el, dropdownWidth) {\n const windowWidth = window.innerWidth;\n const offset = el.getBoundingClientRect();\n const elemRight = offset.left + dropdownWidth;\n\n return elemRight <= windowWidth;\n }\n\n static isElemInBottomView(el, dropdownHeight) {\n const windowHeight = window.innerHeight;\n const offset = el.getBoundingClientRect();\n const elHeight = el.clientHeight;\n const elemBottom = offset.top + elHeight + dropdownHeight;\n\n return elemBottom <= windowHeight;\n }\n\n constructor(props) {\n super(props);\n\n const {\n selectedItem,\n open,\n } = this.props;\n\n this.state = {\n opened: open,\n selectedItem: selectedItem || null,\n };\n\n this.dropdownRef = createRef();\n this.dropdownListRef = createRef();\n this.dropdownButtonRef = createRef();\n this.onSelectItem = this.onSelectItem.bind(this);\n this.toggleDropdown = this.toggleDropdown.bind(this);\n this.handleClickOutside = this.handleClickOutside.bind(this);\n }\n\n componentDidMount() {\n document.addEventListener('mousedown', this.handleClickOutside);\n\n if (this.dropdownListRef.current) {\n this.getStyles();\n }\n }\n\n componentDidUpdate(prevProps) {\n const {\n open,\n } = this.props;\n const {\n opened,\n } = this.state;\n\n if (this.dropdownListRef.current) {\n this.getStyles();\n }\n\n if (\n !prevProps.open\n && open === true\n && !opened\n ) {\n this.toggleDropdown();\n }\n\n if (\n prevProps.open\n && open === false\n && opened\n ) {\n this.closeDropdown();\n }\n }\n\n componentWillUnmount() {\n document.removeEventListener('mousedown', this.handleClickOutside);\n }\n\n handleClickOutside(event) {\n if (\n this.dropdownListRef.current && !this.dropdownListRef.current.contains(event.target)\n && this.dropdownRef.current && !this.dropdownRef.current.contains(event.target)\n ) {\n this.closeDropdown();\n }\n }\n\n onSelectItem(itemId, itemProps) {\n const { closeOnSelect, onSelect } = this.props;\n const changes = {\n selectedItem: itemId,\n selectedItemProps: itemProps,\n };\n\n if (closeOnSelect) {\n changes.opened = false;\n }\n\n this.setState(changes);\n\n if (onSelect && typeof onSelect === 'function') {\n onSelect(itemId);\n }\n }\n\n getStyles() {\n const {\n display,\n position,\n offset,\n } = this.props;\n\n const dropdownEl = this.dropdownListRef.current;\n\n if (offset) {\n dropdownEl.style.top = `${offset.top}`;\n dropdownEl.style.left = `${offset.left}`;\n return;\n }\n\n const scrollTop = Math.max(\n document.documentElement.scrollTop,\n document.body.scrollTop,\n window.scrollY,\n );\n const el = this.dropdownRef.current;\n const elHeight = el.clientHeight;\n const dropdownHeight = dropdownEl ? dropdownEl.clientHeight : 0;\n const dropdownWidth = dropdownEl ? dropdownEl.clientWidth : 0;\n const offsetPosition = el.getBoundingClientRect();\n const { left, top } = offsetPosition;\n let customTop = 0;\n let customLeft = left;\n\n // calculate top position, depending on the element position on the page\n if (Dropdown.isElemInBottomView(el, dropdownHeight)) {\n customTop = top + scrollTop + elHeight;\n } else {\n customTop = top + scrollTop - dropdownHeight - 5;\n }\n\n if (!Dropdown.isElemInRightView(el, dropdownWidth)) {\n customLeft = left + el.clientWidth - dropdownWidth;\n }\n\n if (position !== 'relative') {\n dropdownEl.style.top = `${customTop}px`;\n if (display !== 'block') {\n dropdownEl.style.left = `${customLeft}px`;\n }\n }\n if (display !== 'block') {\n dropdownEl.style.minWidth = `${this.dropdownButtonRef.current.clientWidth}px`;\n }\n }\n\n getWrapperCssClasses() {\n const {\n btnGroup,\n btnGroupSize,\n className,\n btnTheme,\n wrapperClassName = '',\n } = this.props;\n let cssClasses = [wrapperClassName, 'tyk-dropdown'];\n\n cssClasses.push(`theme-${btnTheme || 'default'}`);\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n if (btnGroup) {\n cssClasses.push('tyk-button-group');\n cssClasses.push(btnGroupSize ? `tyk-button-group--${btnGroupSize}` : 'tyk-button-group--md');\n }\n\n return cssClasses.join(' ');\n }\n\n getCssClasses() {\n const {\n opened,\n } = this.state;\n const {\n hasCustomContent,\n display,\n listclassnames,\n position,\n maxHeight,\n } = this.props;\n let cssClasses = ['tyk-dropdown-menu', 'tyk-dropdown'];\n\n if (maxHeight) {\n cssClasses.push('tyk-dropdown--scrollable');\n }\n\n if (opened) {\n cssClasses.push('opened');\n }\n\n if (listclassnames) {\n cssClasses = cssClasses.concat(listclassnames.split(' '));\n }\n\n if (display) {\n cssClasses.push('tyk-dropdown--block');\n }\n\n if (hasCustomContent) {\n cssClasses.push('tyk-dropdown--custom');\n }\n\n if (position === 'relative') {\n cssClasses.push('tyk-dropdown--relative');\n }\n\n return cssClasses.join(' ');\n }\n\n getBtnTitle() {\n const { btnTitle, stopButtonTextChange } = this.props;\n const { selectedItemProps } = this.state;\n\n if (!stopButtonTextChange && selectedItemProps?.title) {\n return selectedItemProps.title;\n }\n\n return btnTitle;\n }\n\n closeDropdown() {\n const { onClose } = this.props;\n\n this.setState({\n opened: false,\n }, () => {\n if (onClose) {\n onClose();\n }\n });\n }\n\n toggleDropdown() {\n const {\n opened,\n } = this.state;\n if (opened) {\n this.closeDropdown();\n\n return;\n }\n\n this.setState({\n opened: true,\n });\n }\n\n render() {\n const {\n appendTo,\n btnClassName,\n btnSize,\n customBtnTitle,\n hasCustomContent,\n btnTheme,\n children,\n label,\n showDropdownIcon,\n showTriggerButton,\n showCheckmark,\n disabled = false,\n maxHeight,\n } = this.props;\n const {\n selectedItem,\n opened,\n } = this.state;\n const DropdownWrapperTag = hasCustomContent ? 'div' : 'ul';\n return (\n \n {\n label\n ? (\n \n )\n : null\n }\n {\n showTriggerButton\n ? (\n \n { customBtnTitle || this.getBtnTitle() }\n \n )\n : null\n }\n {\n opened\n ? ReactDOM.createPortal(\n \n {\n opened\n ? (\n \n {\n (typeof children === 'function')\n ? children({\n closeDropdown: this.closeDropdown.bind(this),\n })\n : children\n }\n \n )\n : null\n }\n ,\n document.querySelector(appendTo || 'body'),\n )\n : null\n }\n \n );\n }\n}\n\nDropdown.propTypes = {\n appendTo: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n PropTypes.func,\n ]),\n closeOnSelect: PropTypes.bool,\n btnClassName: PropTypes.string,\n btnSize: PropTypes.string,\n btnGroupSize: PropTypes.string,\n btnTheme: PropTypes.string,\n btnTitle: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n customBtnTitle: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n btnGroup: PropTypes.bool,\n className: PropTypes.string,\n display: PropTypes.string,\n disabled: PropTypes.bool,\n hasCustomContent: PropTypes.bool,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n listclassnames: PropTypes.string,\n onClose: PropTypes.func,\n onSelect: PropTypes.func,\n open: PropTypes.bool,\n offset: PropTypes.instanceOf(Object),\n position: PropTypes.string,\n selectedItem: PropTypes.string,\n showDropdownIcon: PropTypes.bool,\n stopButtonTextChange: PropTypes.bool,\n showTriggerButton: PropTypes.bool,\n showCheckmark: PropTypes.bool,\n maxHeight: PropTypes.string,\n wrapperClassName: PropTypes.string,\n};\n\nDropdown.defaultProps = {\n closeOnSelect: false,\n showDropdownIcon: true,\n showTriggerButton: true,\n showCheckmark: true,\n open: false,\n};\n\nDropdown.Item = DropdownItem;\n\nexport default Dropdown;\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '../../../components/Button';\nimport ButtonGroup from '../../../components/ButtonGroup';\n\nfunction DropdownTrigger({\n title,\n theme = 'primary',\n splitTrigger,\n toggle,\n onTriggerClick,\n value,\n}, ref) {\n return (\n !splitTrigger ? (\n \n {title}\n \n ) : (\n \n onTriggerClick(value) }}\n >\n {title}\n \n \n \n )\n );\n}\n\nDropdownTrigger.propTypes = {\n title: PropTypes.string,\n theme: PropTypes.string,\n splitTrigger: PropTypes.bool,\n toggle: PropTypes.func,\n dropdownRef: PropTypes.shape({\n current: PropTypes.instanceOf(Element),\n }).isRequired,\n onTriggerClick: PropTypes.func,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n};\n\nexport default forwardRef(DropdownTrigger);\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport FloatingContainer from '../../../components/FloatingContainer';\nimport List from '../../../components/List';\n\nfunction DropdownListWrapper({\n children,\n element,\n maxWidth,\n}, ref) {\n return (\n \n \n { children }\n \n \n );\n}\n\nDropdownListWrapper.propTypes = {\n element: PropTypes.shape({\n current: PropTypes.instanceOf(Element),\n }),\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n maxWidth: PropTypes.string,\n};\n\nexport default forwardRef(DropdownListWrapper);\n","import { createContext, useContext } from 'react';\n\nexport const DropdownContext = createContext();\n\nfunction useDropdowContext() {\n return useContext(DropdownContext);\n}\n\nexport default useDropdowContext;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport List from '../../../components/List';\nimport useDropdowContext from './useDrodpownContext';\n\nfunction DropdownItem({\n children,\n value,\n}) {\n const { onChange, value: dropdownValue } = useDropdowContext();\n return (\n \n onChange(value) }}\n >\n { children }\n \n \n );\n}\n\nDropdownItem.propTypes = {\n children: PropTypes.node,\n // eslint-disable-next-line\n value: PropTypes.any,\n};\n\nexport default DropdownItem;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport useDropdown from './useDropdown';\nimport DropdownTrigger from './DropdownTrigger';\nimport DropdownListWrapper from './DropdownListWrapper';\nimport DropdownItem from './DropdowItem';\nimport { DropdownContext } from './useDrodpownContext';\n\nfunction Dropdown2({\n children,\n title,\n theme,\n splitTrigger,\n onChange,\n value,\n setSelectedValueAsTitle,\n maxWidth,\n onTriggerClick,\n}) {\n const {\n isOpen,\n toggle,\n dropdownRef,\n dropdownListRef,\n } = useDropdown({\n splitTrigger,\n });\n\n const contextValue = useMemo(() => ({\n onChange,\n value,\n }), [onChange, value]);\n\n return (\n \n \n {isOpen && (\n \n { children }\n \n )}\n \n );\n}\n\nDropdown2.propTypes = {\n /** Title of the dropdown. It is being displayed in the Drodpown trigger */\n title: PropTypes.string,\n /** Theme of the dropdown trigger */\n theme: PropTypes.string,\n children: PropTypes.node,\n /** If true, the dropdown trigger will be split into two buttons.\n * one with the dropdown title and one for the arrow */\n splitTrigger: PropTypes.bool,\n /** Callback function called when a dropdown item is selected */\n onChange: PropTypes.func,\n /** Value of the selected dropdown item */\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n /** If true, the selected value will be displayed in the dropdown trigger */\n setSelectedValueAsTitle: PropTypes.bool,\n /** sets the maximum width of the dropdown list menu */\n maxWidth: PropTypes.string,\n /** this function is being called when splitTrigger is true,\n * and receives as parameter the current value of the dropdown */\n onTriggerClick: PropTypes.func,\n};\n\nDropdown2.Item = DropdownItem;\n\nexport default Dropdown2;\n","import {\n useState, useRef, useCallback, useEffect,\n} from 'react';\n\nconst useDropdown = ({\n splitTrigger,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const dropdownRef = useRef(null);\n const dropdownListRef = useRef(null);\n\n const toggle = () => setIsOpen(!isOpen);\n\n const handleOutsideClick = useCallback((e) => {\n const triggerElement = !splitTrigger\n ? dropdownRef.current\n : dropdownRef.current.querySelector('.dropdown__trigger');\n if (\n isOpen\n && !triggerElement.contains(e.target)\n && !dropdownListRef.current.contains(e.target)\n ) {\n setIsOpen(false);\n }\n }, [isOpen]);\n\n useEffect(() => {\n document.addEventListener('mousedown', handleOutsideClick);\n return () => {\n document.removeEventListener('mousedown', handleOutsideClick);\n };\n }, [handleOutsideClick]);\n\n return {\n isOpen,\n toggle,\n dropdownRef,\n dropdownListRef,\n };\n};\n\nexport default useDropdown;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-ace\");","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport ace from 'ace-builds/src-noconflict/ace';\nimport AceEditor from 'react-ace';\nimport 'ace-builds/src-noconflict/mode-javascript';\nimport 'ace-builds/src-noconflict/mode-golang';\nimport 'ace-builds/src-noconflict/mode-python';\nimport 'ace-builds/src-noconflict/mode-css';\nimport 'ace-builds/src-noconflict/mode-json';\nimport 'ace-builds/src-noconflict/mode-xml';\nimport 'ace-builds/src-noconflict/mode-jsx';\nimport 'ace-builds/src-noconflict/ext-searchbox';\nimport 'ace-builds/src-noconflict/ext-beautify';\nimport 'ace-builds/src-noconflict/theme-github';\nimport jsonWorker from 'ace-builds/src-noconflict/worker-json';\n\nace.config.setModuleUrl('ace/mode/json_worker', jsonWorker);\n\nfunction CodeEditor(props) {\n const {\n disabled,\n readOnly,\n disableValidation,\n id,\n error,\n label,\n labelwidth,\n note,\n onBlur,\n onChange,\n theme,\n value,\n setOptions,\n wrapperClassName,\n } = props;\n const classes = [\n 'tyk-form-group',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' ');\n\n const finalSetOptions = {\n ...setOptions,\n ...disableValidation && { useWorker: false },\n };\n\n const getCodeEditorError = useCallback(() => (\n error && error !== 'true' && error !== 'false'\n ? (\n

    \n {error}\n

    \n )\n : null\n ), [error]);\n\n const getLabelStyles = useCallback(() => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n }, [labelwidth]);\n\n const getNonLabelWidth = useCallback(() => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n }, [labelwidth]);\n\n const handleOnChange = useCallback((newValue) => {\n if (onChange) onChange(newValue);\n }, [onChange]);\n\n const handleOnBlur = useCallback(() => {\n if (onBlur) onBlur(value);\n }, [onBlur, value]);\n\n return (\n
    \n {\n label\n ? \n : null\n }\n
    \n {\n // eslint-disable-next-line\n editorInstance.container.style.resize = 'both';\n // mouseup = css resize end\n document.addEventListener('mouseup', () => (\n editorInstance.resize()\n ));\n }}\n setOptions={finalSetOptions}\n />\n {\n note\n ?

    { note }

    \n : null\n }\n { getCodeEditorError() }\n
    \n
    \n );\n}\n\nCodeEditor.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n disableValidation: PropTypes.bool,\n id: PropTypes.string,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n mode: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n theme: PropTypes.string,\n value: PropTypes.string,\n setOptions: PropTypes.instanceOf(Object),\n wrapperClassName: PropTypes.string,\n};\n\nexport default CodeEditor;\n","import React, { Component, createRef } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../../components/Icon';\nimport Button from '../../../components/Button';\n\nconst getStateSelectedValues = (multiple, tags, value) => {\n if (!value) {\n return (multiple || tags) ? [] : null;\n }\n\n return value;\n};\n\nclass Combobox extends Component {\n static closeList() {\n return {\n cursor: -1,\n opened: false,\n };\n }\n\n static openList() {\n return {\n opened: true,\n };\n }\n\n static filterByName(itemValue, inputValue) {\n return itemValue.name.toLowerCase().indexOf(inputValue) > -1;\n }\n\n constructor(props) {\n super(props);\n const {\n multiple,\n tags,\n value,\n } = props;\n\n this.state = {\n cursor: -1,\n opened: false,\n width: 50,\n initialValue: value,\n stateSelectedValues: getStateSelectedValues(multiple, tags, value),\n searchText: '',\n tags,\n };\n\n this.comboboxRef = createRef();\n this.valuesListRef = createRef();\n this.inputRef = createRef();\n this.textRef = createRef();\n\n this.focusInput = this.focusInput.bind(this);\n this.onKeyUp = this.onKeyUp.bind(this);\n Combobox.openList = Combobox.openList.bind(this);\n this.handleClickOutside = this.handleClickOutside.bind(this);\n this.handleItemsNavigation = this.handleItemsNavigation.bind(this);\n this.handleComboboxDropdownClick = this.handleComboboxDropdownClick.bind(this);\n this.handleListItemClick = this.handleListItemClick.bind(this);\n this.handlePillRemoveClick = this.handlePillRemoveClick.bind(this);\n this.manageSelectedTags = this.manageSelectedTags.bind(this);\n }\n\n componentDidMount() {\n const { tags } = this.props;\n\n if (tags) {\n this.setInputWidth();\n }\n\n this.bindEvents();\n }\n\n componentWillUnmount() {\n this.unBindEvents();\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n if (\n JSON.stringify(nextProps.value) !== JSON.stringify(prevState.initialValue)\n || nextProps.tags !== prevState.tags\n ) {\n return {\n initialValue: nextProps.value,\n stateSelectedValues: getStateSelectedValues(\n nextProps.multiple,\n nextProps.tags,\n nextProps.value,\n ),\n tags: nextProps.tags,\n };\n }\n\n return null;\n }\n\n handleItemsNavigation(e) {\n const { tags } = this.props;\n if (['ArrowDown', 'ArrowUp'].indexOf(e.key) === -1) {\n return;\n }\n\n const { cursor } = this.state;\n const filteredValues = this.filterValues();\n let cursorNext;\n\n e.preventDefault();\n\n if (e.key === 'ArrowDown') {\n if (cursor === -1 || cursor === filteredValues.length - 1) {\n cursorNext = 0;\n } else if (cursor < filteredValues.length - 1) {\n cursorNext = cursor + 1;\n }\n }\n\n if (e.key === 'ArrowUp') {\n if (cursor > 0) {\n cursorNext = cursor - 1;\n } else {\n cursorNext = filteredValues.length - 1;\n }\n }\n\n if (this.valuesListRef.current && cursorNext > 4) {\n const scrollTop = (cursorNext - 4) * 38;\n\n this.valuesListRef.current.scrollTop = (!tags) ? 60 + scrollTop : scrollTop;\n } else if (this.valuesListRef.current) {\n this.valuesListRef.current.scrollTop = 0;\n }\n\n this.setState((previousState) => ({\n ...previousState,\n opened: true,\n cursor: cursorNext,\n }));\n }\n\n handleListItemClick(index) {\n // eslint-disable-next-line react/destructuring-assignment\n const clickedValue = this.props.values[index];\n if (clickedValue.disabled) return;\n\n const { multiple, tags } = this.props;\n\n const methodName = (tags) ? 'manageSelectedTags' : 'manageSelectedValues';\n const tempState = { ...this.state, ...this[methodName](index) };\n\n this.setState((previousState) => {\n if (!multiple && !tags) {\n tempState.opened = false;\n }\n\n return { ...previousState, ...tempState };\n });\n }\n\n handlePillRemoveClick(index) {\n const { disabled } = this.props;\n\n if (disabled) {\n return;\n }\n\n const tempState = this.removeSelectedValue(index);\n\n this.setState((previousState) => ({ ...previousState, ...tempState }));\n }\n\n handleClickOutside(event) {\n if (\n this.valuesListRef.current && !this.valuesListRef.current.contains(event.target)\n && this.comboboxRef.current && !this.comboboxRef.current.contains(event.target)\n ) {\n this.setState((previousState) => ({ ...previousState, ...Combobox.closeList() }));\n }\n }\n\n handleComboboxDropdownClick() {\n const { disabled } = this.props;\n\n if (disabled) {\n return;\n }\n\n this.setState((previousState) => ({ ...previousState, ...Combobox.openList() }));\n }\n\n onKeyUp(e) {\n const { tags, allowCustomValues } = this.props;\n const { cursor, opened } = this.state;\n const filteredValues = this.filterValues();\n let tempState = this.getSearchText();\n\n if (tags && e.key !== 'Escape') {\n tempState = { ...tempState, ...this.setInputWidth() };\n }\n\n if (e.key === 'Enter') {\n const methodName = (tags) ? 'manageSelectedTags' : 'manageSelectedValues';\n tempState = { ...tempState, ...this[methodName](cursor) };\n }\n\n if (allowCustomValues && e.key !== ' ' && tags) {\n tempState = { ...tempState, ...this.manageSelectedTags() };\n }\n\n if (\n !opened\n && this.inputRef.current.value\n && filteredValues?.length\n && e.key !== 'Escape'\n ) {\n tempState = { ...tempState, ...Combobox.openList() };\n }\n\n if (e.key === 'Escape' && opened) {\n tempState = { ...tempState, ...Combobox.closeList() };\n }\n\n if (opened && filteredValues && !filteredValues.length) {\n tempState = { ...tempState, ...Combobox.closeList() };\n }\n\n this.setState((previousState) => ({ ...previousState, ...tempState }));\n }\n\n getLabelStyles() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = labelwidth;\n }\n\n return styles;\n }\n\n getNonLabelWidth() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styles;\n }\n\n setInputWidth() {\n return {\n width: 50 + this.textRef.current.offsetWidth,\n };\n }\n\n getSelectedIndex(value) {\n const { stateSelectedValues } = this.state;\n let position = -1;\n\n if (Array.isArray(stateSelectedValues)) {\n stateSelectedValues.forEach((item, index) => {\n if (item.id === value.id) {\n position = index;\n }\n });\n } else if (stateSelectedValues) {\n if (stateSelectedValues.id === value.id) {\n position = 0;\n }\n }\n\n return position;\n }\n\n getSearchText() {\n return {\n searchText: this.inputRef.current.value,\n };\n }\n\n getListItemCssClasses(value, index) {\n const cssClasses = [];\n const {\n cursor,\n } = this.state;\n\n if (cursor === index) {\n cssClasses.push('active');\n }\n\n if (value.disabled) {\n cssClasses.push('disabled');\n }\n\n return cssClasses.join(' ');\n }\n\n getComboboxListCssClass() {\n const { opened } = this.state;\n const { tags, theme } = this.props;\n const themes = theme ? theme.split(' ') : [];\n\n const cssClasses = ['tyk-combobox__list'];\n\n if (opened) {\n cssClasses.push('tyk-combobox__list--opened');\n }\n\n if (tags) {\n cssClasses.push('tyk-combobox__list--has-tags');\n }\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n return cssClasses.join(' ');\n }\n\n getCssClasses() {\n const {\n error, disabled, theme, labelwidth,\n } = this.props;\n const cssClasses = ['tyk-form-group', 'tyk-combobox'];\n const themes = theme ? theme.split(' ') : [];\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (disabled) {\n cssClasses.push('disabled');\n }\n\n return cssClasses.join(' ');\n }\n\n getInputError() {\n const { error } = this.props;\n\n return (error && error !== 'true' && error !== 'false')\n ? (\n \n { error }\n

    \n )\n : null;\n }\n\n getStyles() {\n const { scrollTop } = document.documentElement;\n const el = this.comboboxRef.current;\n const elHeight = el.offsetHeight;\n const elWidth = el.offsetWidth;\n\n const offset = el.getBoundingClientRect();\n const { left } = offset;\n let top = 0;\n\n top = offset.top + scrollTop + elHeight;\n\n return {\n top: `${top - 1}px`,\n left: `${left}px`,\n width: `${elWidth}px`,\n };\n }\n\n getComboboxDisplayData() {\n const { stateSelectedValues } = this.state;\n const { multiple, placeholder, values } = this.props;\n\n if (!stateSelectedValues) {\n return placeholder;\n }\n\n if (stateSelectedValues && Array.isArray(stateSelectedValues) && !stateSelectedValues.length) {\n return placeholder;\n }\n\n if (stateSelectedValues && !Array.isArray(stateSelectedValues) && !stateSelectedValues.id) {\n return placeholder;\n }\n\n if (Array.isArray(stateSelectedValues) && multiple) {\n return stateSelectedValues.reduce((prevValue, value, index) => prevValue + value.name + ((index !== stateSelectedValues.length - 1) ? ', ' : ''), '');\n }\n\n if (\n values?.length\n && !Array.isArray(stateSelectedValues) && !stateSelectedValues.name\n ) {\n return values.filter((value) => value.id === stateSelectedValues.id)[0].name;\n }\n\n return stateSelectedValues.name;\n }\n\n manageSelectedTags(index) {\n const { max, allowCustomValues } = this.props;\n const { stateSelectedValues } = this.state;\n const filteredValues = this.filterValues();\n const value = { id: this.inputRef.current.value, name: this.inputRef.current.value };\n\n if (allowCustomValues === false && index === -1) {\n return null;\n }\n\n const tempValue = filteredValues[index] || value;\n const selectedIndex = this.getSelectedIndex(tempValue);\n let selectedValues = {};\n\n this.inputRef.current.value = '';\n\n if (selectedIndex > -1 && this.isInInitialValues(tempValue)) {\n selectedValues = this.removeSelectedValue(selectedIndex);\n } else if (selectedIndex === -1) {\n if (max && stateSelectedValues.length >= max) {\n return selectedValues;\n }\n selectedValues = this.addSelectedValue(tempValue);\n }\n\n return selectedValues;\n }\n\n // eslint-disable-next-line react/no-unused-class-component-methods\n manageSelectedValues(index) {\n const { stateSelectedValues } = this.state;\n const { multiple, onChange, max } = this.props;\n const filteredValues = this.filterValues();\n const tempSelectedValues = filteredValues[index];\n let selectedValues;\n const selectedIndex = this.getSelectedIndex(tempSelectedValues);\n\n if (tempSelectedValues && multiple) {\n if (selectedIndex > -1) {\n selectedValues = this.removeSelectedValue(selectedIndex);\n } else {\n if (max && stateSelectedValues.length >= max) {\n return selectedValues;\n }\n selectedValues = this.addSelectedValue(filteredValues[index]);\n }\n } else {\n selectedValues = {\n stateSelectedValues: (selectedIndex === -1) ? tempSelectedValues : { id: null },\n };\n\n onChange?.((selectedIndex === -1) ? tempSelectedValues : null);\n }\n\n return selectedValues;\n }\n\n removeSelectedValue(index) {\n const { stateSelectedValues } = this.state;\n const { onChange } = this.props;\n const tempStateSelectedValues = JSON.parse(JSON.stringify(stateSelectedValues));\n\n tempStateSelectedValues.splice(index, 1);\n\n if (onChange && typeof onChange === 'function') {\n onChange(tempStateSelectedValues.length ? tempStateSelectedValues : null);\n }\n\n return {\n stateSelectedValues: tempStateSelectedValues,\n searchText: '',\n };\n }\n\n addSelectedValue(value) {\n const { stateSelectedValues } = this.state;\n const { onChange } = this.props;\n const tempStateSelectedValues = JSON.parse(JSON.stringify(stateSelectedValues));\n\n tempStateSelectedValues.push(value);\n\n if (onChange && typeof onChange === 'function') {\n onChange(tempStateSelectedValues.length ? tempStateSelectedValues : null);\n }\n\n return {\n stateSelectedValues: tempStateSelectedValues,\n searchText: '',\n };\n }\n\n isInInitialValues(value) {\n const { values } = this.props;\n let ok = false;\n\n values.forEach((item) => {\n if (value.id === item.id) {\n ok = true;\n }\n });\n\n return ok;\n }\n\n filterValues() {\n const { values, searchItem } = this.props;\n\n if (!this.inputRef.current) {\n return values;\n }\n\n const arr = values\n .filter(\n (value) => (searchItem\n ? searchItem(value, this.inputRef.current.value.toLowerCase())\n : Combobox.filterByName(value, this.inputRef.current.value.toLowerCase())),\n );\n\n return arr;\n }\n\n bindEvents() {\n document.addEventListener('mousedown', this.handleClickOutside);\n }\n\n unBindEvents() {\n document.removeEventListener('mousedown', this.handleClickOutside);\n }\n\n // eslint-disable-next-line react/no-unused-class-component-methods\n reset() {\n const { multiple, tags, value } = this.props;\n\n this.setState({\n stateSelectedValues: getStateSelectedValues(multiple, tags, value),\n });\n }\n\n focusInput() {\n if (this.inputRef.current) {\n this.inputRef.current.focus();\n }\n }\n\n renderInput(filteredValues) {\n const {\n disabled,\n tags,\n max,\n placeholder,\n } = this.props;\n const {\n width, searchText, stateSelectedValues,\n } = this.state;\n\n return (\n {}}\n ref={this.comboboxRef}\n >\n {\n tags\n ? (\n <>\n {\n (stateSelectedValues || []).map((value, index) => (\n
  • \n \n \n \n { value.name }\n
  • \n ))\n }\n \n {(max === undefined || stateSelectedValues?.length < max) && (\n <>\n {\n if (e.key === 'Enter') {\n e.preventDefault();\n }\n this.handleItemsNavigation(e);\n }}\n onKeyUp={this.onKeyUp}\n placeholder={(!stateSelectedValues?.length) ? placeholder : ''}\n ref={this.inputRef}\n style={{\n width: (!stateSelectedValues?.length) ? '100%' : `${width}px`,\n }}\n />\n \n { searchText }\n \n \n )}\n {filteredValues.length > 0 && (\n \n )}\n \n \n )\n : (\n {}}\n >\n { this.getComboboxDisplayData() }\n \n \n )\n }\n \n );\n }\n\n renderDropdown(filteredValues) {\n const { tags } = this.props;\n const { opened } = this.state;\n return (\n \n {\n !tags\n ? (\n
  • \n \n
  • \n )\n : null\n }\n {\n filteredValues\n .map((value, index) => (\n {}}\n key={value.id}\n >\n {\n (this.getSelectedIndex(value) > -1)\n ? \n : null\n }\n \n {' '}\n { value.name }\n \n \n ))\n }\n \n );\n }\n\n render() {\n const {\n CustomListComponent,\n id,\n label,\n note,\n } = this.props;\n const { opened } = this.state;\n\n const filteredValues = this.filterValues();\n\n return (\n <>\n
    \n {\n label\n ? \n : null\n }\n \n {this.renderInput(filteredValues)}\n {\n note\n ?

    { note }

    \n : null\n }\n { this.getInputError() }\n
    \n \n {\n // eslint-disable-next-line no-nested-ternary\n !CustomListComponent\n ? opened && filteredValues.length\n ? ReactDOM.createPortal(\n this.renderDropdown(filteredValues),\n document.querySelector('body'),\n )\n : null\n : (\n \n )\n }\n \n );\n }\n}\n\nCombobox.propTypes = {\n allowCustomValues: PropTypes.bool,\n CustomListComponent: PropTypes.elementType,\n searchItem: PropTypes.func,\n disabled: PropTypes.bool,\n error: PropTypes.string,\n id: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n multiple: PropTypes.bool,\n max: PropTypes.number,\n note: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n tags: PropTypes.bool,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.instanceOf(Object),\n PropTypes.instanceOf(Array),\n ]),\n values: PropTypes.instanceOf(Array),\n};\n\nCombobox.defaultProps = {\n allowCustomValues: true,\n};\n\nexport default Combobox;\n","import React, { useState, useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Icon from '../../../../components/Icon';\nimport Pill from '../../../../components/Pill';\n\nfunction Value(props) {\n const {\n value,\n max,\n tags,\n tagSeparators,\n addTagOnBlur,\n placeholder,\n disabled,\n renderValue,\n valueOverflow,\n focus,\n onMessage: sendMessage,\n readOnly,\n } = props;\n const INPUT_MIN_WIDTH = 60;\n const inputRef = useRef(null);\n const dummyElementRef = useRef(null);\n const [inputValue, setInputValue] = useState('');\n const [inputWidth, setInputWidth] = useState(`${INPUT_MIN_WIDTH + 10}px`);\n\n function entryFieldOnChange(val) {\n if (tagSeparators.some((ts) => val.slice(-1) === ts)) return;\n const dummy = dummyElementRef.current;\n dummy.innerHTML = val;\n setInputWidth(`${Math.max(dummy.clientWidth, INPUT_MIN_WIDTH) + 10}px`);\n setInputValue(val);\n sendMessage('tag.input.change', val);\n }\n\n function entryFieldOnKeyDown(key, val) {\n if (!tags) return;\n if (val === '' && key === 'Backspace' && value.length) {\n sendMessage('tag.remove', value[value.length - 1].id);\n return;\n }\n if (key === 'Enter') {\n sendMessage('tag.input.enter', val);\n entryFieldOnChange('');\n return;\n }\n if (key === 'ArrowUp') {\n sendMessage('tag.input.arrowUp');\n return;\n }\n if (key === 'ArrowDown') {\n sendMessage('tag.input.arrowDown');\n return;\n }\n if (key === 'Escape') {\n sendMessage('tag.input.escape');\n return;\n }\n if (tagSeparators.includes(key)) {\n sendMessage('tag.add', val);\n entryFieldOnChange('');\n }\n }\n\n function triggerAction() {\n sendMessage('text-value.click');\n }\n\n function textValue(val, isPlaceholder = false) {\n if (readOnly) return val || '-';\n\n const classes = [\n 'tyk-combobox2__text-value',\n `overflow-${valueOverflow}`,\n isPlaceholder && 'is-placeholder',\n ].filter(Boolean).join(' ');\n return (\n \n {val}\n \n );\n }\n\n function renderCustomValue(v) {\n const config = {\n tags,\n tagSeparators,\n placeholder,\n disabled,\n renderValue,\n sendMessage,\n };\n return renderValue(v, config);\n }\n\n function renderTag(v) {\n if (renderValue) return renderCustomValue(v);\n\n return (\n \n {\n e.stopPropagation();\n sendMessage('tag.remove', v.id);\n }}\n aria-label=\"remove\"\n >\n \n \n { v.name }\n \n );\n }\n\n function getTags() {\n return (\n <>\n {value.map(renderTag)}\n {value.length < max && (\n <>\n entryFieldOnChange(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Enter') e.preventDefault();\n entryFieldOnKeyDown(e.key, e.target.value);\n }}\n onFocus={() => sendMessage('tag.input.focus')}\n onBlur={(e) => {\n sendMessage('tag.input.blur', e.target.value);\n if (addTagOnBlur) entryFieldOnChange('');\n }}\n />\n \n \n )}\n \n );\n }\n\n useEffect(() => {\n if (focus && inputRef.current) inputRef.current.focus();\n }, [focus]);\n\n if (readOnly) {\n return
    {textValue(value.map((v) => v.name).join(', '))}
    ;\n }\n\n if (tags) return getTags();\n if (renderValue) {\n return value.length === 0 ? textValue(placeholder, true) : value.map(renderCustomValue);\n }\n return value.length === 0\n ? textValue(placeholder, true)\n : textValue(value.map((v) => v.name).join(', '));\n}\n\nValue.propTypes = {\n value: PropTypes.instanceOf(Array),\n max: PropTypes.number,\n tags: PropTypes.instanceOf(Array),\n tagSeparators: PropTypes.instanceOf(Array),\n addTagOnBlur: PropTypes.bool,\n placeholder: PropTypes.string,\n disabled: PropTypes.bool,\n renderValue: PropTypes.func,\n valueOverflow: PropTypes.string,\n focus: PropTypes.bool,\n onMessage: PropTypes.func,\n readOnly: PropTypes.bool,\n};\n\nexport default Value;\n","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Icon from '../../../../components/Icon';\n\nfunction List(props) {\n const {\n listRef,\n tags,\n values,\n searchValue,\n activeItem,\n onMessage: sendMessage,\n renderListItem,\n selectAll,\n showSearch,\n } = props;\n\n useEffect(() => {\n if (!listRef.current) return;\n const activeElement = listRef.current.querySelector('.active');\n if (activeElement) activeElement.scrollIntoView({ block: 'end' });\n }, [activeItem]);\n\n function renderItem(item) {\n if (renderListItem) {\n return renderListItem(item, {\n tags, searchValue, sendMessage, activeItem,\n });\n }\n\n return (\n !item.disabled && sendMessage('value.select', { item })}\n onKeyDown={() => {}}\n >\n {item.selected && }\n {item.name}\n \n );\n }\n\n function renderSelectAllOption() {\n const isAllSelected = values.every((v) => v.selected);\n const isNoneSelected = values.every((v) => !v.selected);\n const label = selectAll?.label ?? 'Select All';\n const mode = selectAll?.mode ?? 'select';\n const show = selectAll?.show ?? 'always';\n const render = selectAll?.render;\n\n const shouldRenderOption = show === 'always' || (mode === 'select' ? !isAllSelected : !isNoneSelected);\n if (!shouldRenderOption) return null;\n\n if (render) {\n return render({\n label,\n mode,\n show,\n isAllSelected,\n isNoneSelected,\n }, sendMessage);\n }\n return (\n sendMessage('value.select-all', mode === 'select' ? !isAllSelected : isNoneSelected)}\n onKeyDown={() => {}}\n >\n {(mode === 'select' ? isAllSelected : isNoneSelected) && }\n {label}\n \n );\n }\n\n return (\n <>\n {!tags && showSearch && (\n
    \n sendMessage('search.change', e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Escape') sendMessage('search.escape');\n if (e.key === 'ArrowUp') sendMessage('search.arrowUp');\n if (e.key === 'ArrowDown') sendMessage('search.arrowDown');\n if (e.key === 'Enter') sendMessage('search.enter');\n }}\n />\n
    \n )}\n {values.length > 0 && (\n
      \n {Boolean(selectAll) && (\n renderSelectAllOption()\n )}\n {values.map(renderItem)}\n
    \n )}\n \n );\n}\n\nList.propTypes = {\n listRef: PropTypes.instanceOf(Object),\n tags: PropTypes.bool,\n values: PropTypes.instanceOf(Array),\n searchValue: PropTypes.string,\n activeItem: PropTypes.instanceOf(Object),\n onMessage: PropTypes.func,\n renderListItem: PropTypes.func,\n selectAll: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n mode: PropTypes.oneOf(['select', 'unselect']),\n show: PropTypes.oneOf(['always', 'notSameState']),\n render: PropTypes.func,\n }),\n ]),\n showSearch: PropTypes.bool,\n};\n\nexport default List;\n","import React, {\n useCallback, useEffect, useMemo, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../../components/Icon';\nimport FloatingContainer from '../../../components/FloatingContainer';\n\nimport Value from './js/Value';\nimport List from './js/List';\n\n/**\n * Dropdown-like component that can display selected values as regular text,\n * tags, or in a custom way.\n * You can select values from a list or type in new ones.\n */\nfunction Combobox2({\n value: propValue,\n values: propValues = [],\n valueOverflow = 'single',\n label = '',\n labelwidth,\n tags = false,\n tagSeparators = [' ', 'Enter'],\n addTagOnBlur = false,\n max: maxProp,\n multiple = false,\n placeholder = '',\n theme,\n note = '',\n error = '',\n disabled = false,\n readOnly = false,\n allowCustomValues = true,\n searchItem: matchItemFn,\n renderValue,\n renderListItem,\n renderList: renderListProp,\n CustomListComponent,\n onBeforeChange = () => true,\n onChange = () => {},\n floatingContainerConfig,\n expandMode,\n infiniteScrollerConfig,\n displayDropdownTrigger = true,\n selectAll,\n closeOnSelect,\n showSearch = false,\n required = false,\n validateOnChange = () => {},\n wrapperClassName = '',\n ...restProps\n}) {\n const max = useMemo(\n () => (multiple ? Infinity : maxProp || (tags ? Infinity : 1)),\n [multiple, maxProp, tags],\n );\n const renderList = CustomListComponent\n ? (values, { sendMessage }) => (\n sendMessage('value.select', { item: values[index] })}\n />\n )\n : renderListProp;\n\n const rootRef = useRef(null);\n const comboboxControlRef = useRef(null);\n const dropdownRef = useRef(null);\n const listRef = useRef(null);\n\n const [value, setValue] = useState(getValueFromProp(propValue, propValues));\n const [values, setValues] = useState(propValues.map((v) => normalizeValue(v)));\n const [searchValue, setSearchValue] = useState('');\n const [activeItem, setActiveItem] = useState(null);\n const [isOpened, setIsOpened] = useState(false);\n const [valuesExpanded, setValuesExpanded] = useState(false);\n const [localValidationError, setLocalValidationError] = useState('');\n\n function getThemeClasses() {\n const themes = theme ? theme.split(' ') : [];\n return themes.map((iTheme) => `tyk-form-group--${iTheme}`);\n }\n\n function getCssClasses() {\n return [\n wrapperClassName,\n 'tyk-form-group',\n 'tyk-combobox2',\n ...getThemeClasses(),\n (error || localValidationError) && 'has-error',\n labelwidth && 'tyk-form-group--label-has-width',\n disabled && 'disabled',\n expandMode && 'is-expand-mode',\n ].filter(Boolean).join(' ');\n }\n\n function getFilteredValues() {\n const defaultFn = (v, s) => v?.name?.toLowerCase()?.includes(s);\n const fn = matchItemFn || defaultFn;\n const filteredValues = values.filter((v) => fn(v, searchValue.toLowerCase()));\n return filteredValues;\n }\n\n function openDropdown() {\n setIsOpened(true);\n }\n\n function closeDropdown() {\n setIsOpened(false);\n if (!tags) updateSearchValue('');\n setActiveItem(null);\n }\n\n function updateSearchValue(newSearchValue) {\n setSearchValue(newSearchValue);\n if (activeItem && getFilteredValues().every((fv) => fv.id !== activeItem.id)) {\n setActiveItem(null);\n }\n if (newSearchValue && !isOpened) openDropdown();\n }\n\n function isValidValue(newValues, lastValue) {\n const localError = validateOnChange(newValues, lastValue);\n setLocalValidationError(localError);\n return localError === undefined;\n }\n\n function updateValue(newValues) {\n setValue(newValues);\n onChange(max === 1 && !tags ? (newValues[0] || null) : newValues);\n }\n\n function addTag(val) {\n if (!val) return;\n if (value.length >= max) return;\n if (value.some(({ name }) => name === val)) return;\n\n const listValueIndex = values.findIndex((lv) => lv.name === val);\n let newValue;\n let finalValue = [...value];\n let selectedValues;\n\n if (listValueIndex === -1) {\n if (allowCustomValues) {\n newValue = { id: val, name: val };\n finalValue = [...value, newValue];\n }\n } else {\n selectedValues = [\n ...values.slice(0, listValueIndex),\n { ...values[listValueIndex], selected: true },\n ...values.slice(listValueIndex + 1),\n ];\n newValue = values[listValueIndex];\n finalValue = [...value, values[listValueIndex]];\n }\n\n if (isValidValue(finalValue, newValue) && onBeforeChange(value, finalValue)) {\n if (selectedValues) {\n setValues(selectedValues);\n }\n updateValue(finalValue);\n }\n }\n\n function removeTag(id) {\n if (required && max === 1) return;\n\n const listValueIndex = values.findIndex((lv) => lv.id === id);\n const newValue = value.filter((v) => v.id !== id);\n\n if (!onBeforeChange(value, newValue)) return;\n\n if (listValueIndex !== -1) {\n setValues([\n ...values.slice(0, listValueIndex),\n { ...values[listValueIndex], selected: false },\n ...values.slice(listValueIndex + 1),\n ]);\n }\n updateValue(newValue);\n }\n\n function selectValue({ id }) {\n const val = values.find((v) => v.id === id);\n const valIndex = values.findIndex((v) => v.id === id);\n let finalValue = value;\n let selectedValues = values;\n\n if (val.selected) {\n if (!required || max !== 1) {\n finalValue = value.filter((v) => v.id !== val.id);\n selectedValues = values.with(valIndex, { ...val, selected: false });\n }\n } else if (value.length < max) {\n finalValue = [...value, val];\n selectedValues = values.with(valIndex, { ...val, selected: true });\n } else if (max === 1) {\n finalValue = [val];\n selectedValues = values.map((v) => ({ ...v, selected: v.id === val.id }));\n }\n\n if (isValidValue(finalValue, val) && onBeforeChange(value, finalValue)) {\n updateValue(finalValue);\n setValues(selectedValues);\n }\n\n if (max === 1 || closeOnSelect) {\n closeDropdown();\n }\n }\n\n function selectAllValues(selected) {\n if (values.length > max) return;\n const newValue = selected ? [...values] : [];\n\n if (!onBeforeChange(value, newValue)) return;\n\n updateValue(newValue);\n setValues(values.map((v) => ({ ...v, selected })));\n if (closeOnSelect) closeDropdown();\n }\n\n function moveUpActiveItem() {\n const visibleItems = getFilteredValues().filter((v) => !v.disabled);\n if (visibleItems.length === 0) return;\n if (activeItem === null || visibleItems.length === 1) {\n setActiveItem(visibleItems[visibleItems.length - 1]);\n return;\n }\n const activeIndex = visibleItems.findIndex((v) => v.id === activeItem.id);\n setActiveItem(visibleItems[activeIndex > 0 ? activeIndex - 1 : visibleItems.length - 1]);\n }\n\n function moveDownActiveItem() {\n const visibleItems = getFilteredValues().filter((v) => !v.disabled);\n if (visibleItems.length === 0) return;\n if (activeItem === null || visibleItems.length === 1) {\n setActiveItem(visibleItems[0]);\n return;\n }\n const activeIndex = visibleItems.findIndex((v) => v.id === activeItem.id);\n setActiveItem(visibleItems[activeIndex < visibleItems.length - 1 ? activeIndex + 1 : 0]);\n }\n\n function executeTriggerAction() {\n if (expandMode) {\n setValuesExpanded(!valuesExpanded);\n } else {\n openDropdown();\n }\n }\n\n function handleDocumentClick(e) {\n const isClickInside = rootRef.current?.contains(e.target)\n || dropdownRef.current?.contains(e.target);\n if (!isClickInside) {\n closeDropdown();\n }\n }\n\n function onClickCapture(e) {\n if (!disabled) return;\n if (!expandMode) {\n e.stopPropagation();\n return;\n }\n\n const triggerElement = rootRef.current.querySelector('.tyk-combobox2__values-container-trigger');\n if (!triggerElement) return;\n\n const isClickOnTrigger = triggerElement === e.target || triggerElement.contains(e.target);\n if (!isClickOnTrigger) e.stopPropagation();\n }\n\n function onTagMessage(message, data) {\n if (message === 'add') {\n addTag(data);\n updateSearchValue('');\n }\n\n if (message === 'remove') removeTag(data);\n\n if (message === 'input.change') updateSearchValue(data);\n\n if (message === 'input.enter') {\n if (activeItem) {\n selectValue(activeItem);\n } else if (tagSeparators.includes('Enter')) {\n addTag(data);\n updateSearchValue('');\n }\n }\n\n if (message === 'input.arrowUp') {\n openDropdown();\n moveUpActiveItem();\n }\n\n if (message === 'input.arrowDown') {\n openDropdown();\n moveDownActiveItem();\n }\n\n if (message === 'input.escape') closeDropdown();\n\n if (message === 'input.blur' && addTagOnBlur) {\n addTag(data);\n updateSearchValue('');\n }\n\n if (message === 'input.focus') {\n openDropdown();\n }\n }\n\n const onMessage = useCallback((message, data) => {\n if (message.startsWith('tag.')) onTagMessage(message.slice(4), data);\n\n if (message === 'value.select') selectValue(data.item);\n\n if (message === 'value.select-all') selectAllValues(data);\n\n if (message === 'text-value.click') openDropdown();\n\n if (message === 'search.change') updateSearchValue(data);\n\n if (message === 'search.escape') closeDropdown();\n\n if (message === 'search.arrowUp') moveUpActiveItem();\n\n if (message === 'search.arrowDown') moveDownActiveItem();\n\n if (message === 'search.enter') {\n if (activeItem) selectValue(activeItem);\n }\n }, [\n onTagMessage,\n selectValue,\n selectAllValues,\n openDropdown,\n updateSearchValue,\n closeDropdown,\n moveUpActiveItem,\n moveDownActiveItem,\n ]);\n\n const renderIcon = useCallback(\n () => (expandMode\n ? \n : \n ),\n [expandMode, valuesExpanded],\n );\n\n useEffect(() => {\n window.addEventListener('click', handleDocumentClick, true);\n return () => window.removeEventListener('click', handleDocumentClick, true);\n }, []);\n\n useEffect(() => {\n if (propValues.length) {\n const newValues = propValues.map((v) => ({\n ...normalizeValue(v),\n selected: value.some((sv) => sv.id === v.id),\n }));\n setValues(newValues);\n setValue((val) => val.map((v) => newValues.find((nv) => nv.id === v.id) || v));\n } else if (values.length) {\n setValues([]);\n }\n }, [propValues]);\n\n useEffect(() => {\n const newValue = getValueFromProp(propValue, values);\n setValue(newValue);\n setValues((vals) => vals.map((v) => ({\n ...normalizeValue(v),\n selected: newValue.some((nv) => nv.id === v.id),\n })));\n }, [propValue]);\n\n useEffect(() => {\n if (!expandMode) return () => {};\n\n const valuesElement = comboboxControlRef.current.querySelector('.tyk-combobox2__current-values');\n const updateScroll = () => {\n valuesElement.scrollTop = valuesElement.scrollHeight;\n };\n /* eslint-disable-next-line no-undef */\n const mobserver = new MutationObserver(updateScroll);\n const robserver = new ResizeObserver(updateScroll);\n\n mobserver.observe(valuesElement, { attributes: true, childList: true, subtree: true });\n robserver.observe(valuesElement);\n\n return () => {\n mobserver.disconnect();\n robserver.disconnect();\n };\n });\n\n const filteredValues = getFilteredValues();\n const currentValuesClasses = [\n 'tyk-combobox2__current-values',\n expandMode && 'expand-mode',\n `tyk-combobox2__current-values--${valuesExpanded ? 'expanded' : 'collapsed'}`,\n ].join(' ');\n\n return (\n \n {label && (\n \n )}\n {!readOnly && (\n \n
    \n \n \n
    \n {displayDropdownTrigger && (\n \n {renderIcon()}\n \n )}\n \n {isOpened && (!tags || filteredValues.length > 0) && (\n \n {renderList ? (\n renderList(filteredValues, {\n tags,\n searchValue,\n activeItem,\n listRef,\n sendMessage: onMessage,\n })\n ) : (\n \n )}\n \n )}\n {note && (\n

    {note}

    \n )}\n {((error && error !== 'true' && error !== 'false') || Boolean(localValidationError)) && (\n

    {error || localValidationError}

    \n )}\n \n )}\n {readOnly && (\n
    \n \n
    \n )}\n \n );\n}\n\nCombobox2.propTypes = {\n /** If `true` it allows entering values that are not in the list. */\n allowCustomValues: PropTypes.bool,\n /** Alias for `renderList`\n * used for backwards compatibility with the old Combobox component. */\n CustomListComponent: PropTypes.elementType,\n /** A function used for filtering elements displayed in the list when typing in. */\n searchItem: PropTypes.func,\n /** A custom component that will be used to display a value. */\n renderValue: PropTypes.func,\n /** A custom component that will be used to display an item in the dropdown list. */\n renderListItem: PropTypes.func,\n /** A custom component that will be used to display the entire content of the dropdown. */\n renderList: PropTypes.func,\n disabled: PropTypes.bool,\n /** hides the UI form element and displayes just the value as text */\n readOnly: PropTypes.bool,\n error: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n /** The maximum number of values that can be selected/added. */\n max: PropTypes.number,\n /** Shorthand for max=Infinity */\n multiple: PropTypes.bool,\n note: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n /**\n * Callback called before changing the value of the component.\n * The value change will succeed only if the callback's return value is truthy.\n * The callback is called with two arguments: 1) the previous value, 2) the next value */\n onBeforeChange: PropTypes.func,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n /** Enables the display of values as `Pill` components that can be\n * removed without opening the dropdown. */\n tags: PropTypes.bool,\n /** A list of characters that will trigger the creation of a tag when typed. */\n tagSeparators: PropTypes.arrayOf(PropTypes.string),\n /** If set to true a tag will be created whenever the component loses focus\n * and there is something typed in. */\n addTagOnBlur: PropTypes.bool,\n theme: PropTypes.string,\n /** The value of the component. It can be a string, an array,\n * or an object with an `id` property. */\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.instanceOf(Array),\n PropTypes.instanceOf(Object),\n ]),\n /** An array of selectable values. */\n values: PropTypes.instanceOf(Array),\n /** Config object passed to the internal floating container component. */\n floatingContainerConfig: PropTypes.instanceOf(Object),\n /** If set to `single` it will display the values on a single line\n * with an ellipsis at the end. */\n valueOverflow: PropTypes.oneOf(['single', 'multiple']),\n /**\n * If set to `true` whenever the user clicks on the dropdown trigger\n * the selected values container\n * will expand to show all selected values instead of opening the dropdown.\n */\n expandMode: PropTypes.bool,\n /** Config object passed to the internal infinite scroller component. */\n infiniteScrollerConfig: PropTypes.instanceOf(Object),\n /** Toggles the display of the dropdown trigger. */\n displayDropdownTrigger: PropTypes.bool,\n /**\n * If a boolean it will toggle the select all functionality from the dropdown.\n * It can also be an object with the shape `{ label, show, mode, render }`.\n * label - A string displayed as the select all option\n * show - It can be one of `['always', 'notSameState']`.\n * `always` means the option will always be displayed.\n * `notSameState` means it will be displayed only if the list items are\n * not all with the same state (depending on the `mode` value)\n * mode - It can be one of `['select', 'unselect']` and makes sense only\n * when the `show` property is `notSameState`\n * `select` means the select all option will only be displayed if not all\n * items are selected\n * `unselect` means the option will be displayed if no items are selected\n */\n selectAll: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n mode: PropTypes.oneOf(['select', 'unselect']),\n show: PropTypes.oneOf(['always', 'notSameState']),\n render: PropTypes.func,\n }),\n ]),\n /** It `true` the dropdown will close after selecting a value. */\n closeOnSelect: PropTypes.bool,\n /** Toggles the display of the search input from the dropdown. */\n showSearch: PropTypes.bool,\n /** If it is required and can only select one value once you have something\n * selected you will not be able to deselect */\n required: PropTypes.bool,\n /** Validates newly added value before adding it to the selected values.\n * Returns an error string in case of error otherwise it returns undefined\n */\n validateOnChange: PropTypes.func,\n wrapperClassName: PropTypes.string,\n};\n\nexport default Combobox2;\n\nfunction normalizeValue(value, values) {\n let v = value;\n if (typeof value === 'string') v = { id: value, name: value };\n else if (!value.hasOwnProperty('name')) v = { ...value, name: value.id }; // eslint-disable-line no-prototype-builtins\n if (!values) return v;\n const existingVal = values.find((ev) => ev.id === v.id);\n return existingVal ? { ...v, ...existingVal } : v;\n}\n\nfunction getValueFromProp(value, values) {\n if (!value) return [];\n if (Array.isArray(value)) return value.map((v) => normalizeValue(v, values));\n return [normalizeValue(value, values)];\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"flatpickr\");","import React, {\n useEffect, useState, useRef, useCallback,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport flatpickr from 'flatpickr';\n\nimport Icon from '../../../components/Icon';\nimport { usePrevious } from '../../../hooks';\n\nfunction DatePicker({\n children,\n disabled,\n readOnly = false,\n error,\n id,\n label,\n labelwidth,\n note,\n onClose,\n onChange,\n onOpen,\n theme,\n config = {},\n value,\n wrapperClassName = '',\n}) {\n const [pickerInstance, setPickerInstance] = useState(null);\n const dateRef = useRef(null);\n\n const prevValue = usePrevious(value);\n\n const hasValueChanged = useCallback((prevDate, currentDate) => {\n if (!prevDate) return true;\n if (!Array.isArray(currentDate)) return prevDate.getTime() !== currentDate.getTime();\n\n let diffDates = currentDate;\n\n if (prevDate && currentDate.length && prevDate.length) {\n diffDates = currentDate.filter((date, index) => date.getTime() !== prevDate[index].getTime());\n\n return diffDates.length > 0;\n }\n\n return currentDate.length > 0;\n }, []);\n\n const onDateChange = useCallback((dateValue) => {\n const finalValue = config.mode === 'range' ? dateValue : dateValue[0] || null;\n\n if (!onChange) return;\n\n if (config.mode === 'range') {\n if (finalValue.length === 2 && hasValueChanged(prevValue, finalValue)) {\n onChange(finalValue);\n }\n } else {\n onChange(finalValue);\n }\n }, [prevValue, onChange, hasValueChanged]);\n\n useEffect(() => {\n if (dateRef.current && !pickerInstance) {\n const instance = flatpickr(dateRef.current, {\n ...config, defaultDate: value, onChange: onDateChange, onClose, onOpen,\n });\n setPickerInstance(instance);\n }\n\n return () => {\n if (pickerInstance) {\n pickerInstance.destroy();\n }\n };\n }, [pickerInstance]);\n\n useEffect(() => {\n if (pickerInstance) {\n let tempValue = value;\n\n if (typeof value === 'string') {\n tempValue = new Date(value);\n } else if (Array.isArray(value)) {\n tempValue = value.map((date) => new Date(date));\n }\n\n if (hasValueChanged(prevValue, tempValue)) {\n pickerInstance.set('onChange', onDateChange);\n if (config.mode === 'range') {\n if (tempValue && tempValue.length === 2) {\n pickerInstance.setDate(tempValue, true);\n }\n } else {\n pickerInstance.setDate(tempValue, true);\n }\n }\n }\n }, [prevValue, value, pickerInstance]);\n\n const classes = [\n 'tyk-form-group',\n 'tyk-form-group--addon-right',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' ');\n\n const getLabelStyles = () => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n };\n\n const getNonLabelWidth = () => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n };\n\n const openCalendar = useCallback(() => {\n if (!pickerInstance) return;\n\n pickerInstance.open();\n }, [pickerInstance]);\n\n const getInputError = () => (\n (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null\n );\n\n const getInputField = () => {\n let inputStyle = {};\n let addonStyle = {};\n\n if (config?.inline) {\n inputStyle = {\n height: 0,\n padding: 0,\n width: 0,\n visibility: 'hidden',\n };\n\n addonStyle = {\n display: 'none',\n };\n }\n return (\n <>\n \n {}}\n tabIndex={0}\n style={addonStyle}\n aria-label=\"show calendar\"\n >\n \n \n \n );\n };\n\n return (\n <>\n {\n children?.length\n ? children({ openCalendar, ref: dateRef })\n : (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n
    \n {getInputField()}\n
    \n {\n note\n ?

    { note }

    \n : null\n }\n { getInputError() }\n
    \n )}\n \n )\n }\n
    \n {readOnly && !value && '-'}\n {readOnly && value && flatpickr.formatDate(value, config.dateFormat || 'd/m/Y')}\n
    \n \n );\n}\n\nDatePicker.propTypes = {\n config: PropTypes.instanceOf(Object),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n PropTypes.func,\n ]),\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.instanceOf(Array),\n ]),\n onClose: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.instanceOf(Array),\n ]),\n onOpen: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.instanceOf(Array),\n ]),\n theme: PropTypes.string,\n error: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.instanceOf(Array),\n PropTypes.instanceOf(Object),\n PropTypes.string,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default DatePicker;\n","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\");\n // eslint-disable-next-line no-console\n console.warn(new Error().stack);\n }\n return new Date(NaN);\n }\n}","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n var number = Number(dirtyNumber);\n if (isNaN(number)) {\n return number;\n }\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","var defaultOptions = {};\nexport function getDefaultOptions() {\n return defaultOptions;\n}\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function getUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, options);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n case 'aaa':\n return dayPeriodEnumValue;\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = getUTCISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = getUTCWeek(date, options);\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n return lightFormatters.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n if (timezoneOffset === 0) {\n return 'Z';\n }\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, dirtyDelimiter);\n}\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\nexport default formatters;","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = getUTCWeekYear(dirtyDate, options);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, options);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","var dateLongFormatter = function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n};\nvar timeLongFormatter = function timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n};\nvar dateTimeLongFormatter = function dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n var dateTimeFormat;\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n};\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n }\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n return result;\n};\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n if (!matchResult) {\n return null;\n }\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n return undefined;\n}\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import defaultLocale from \"../../locale/en-US/index.js\";\nexport default defaultLocale;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n case 2:\n return number + 'nd';\n case 3:\n return number + 'rd';\n }\n }\n return number + 'th';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","import isValid from \"../isValid/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n var originalDate = toDate(dirtyDate);\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n var firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n var formatter = formatters[firstCharacter];\n if (formatter) {\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n return substring;\n }).join('');\n return result;\n}\nfunction cleanEscapedString(input) {\n var matched = input.match(escapedStringRegExp);\n if (!matched) {\n return input;\n }\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","import addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import React, { Component, createRef } from 'react';\nimport isEqual from 'react-fast-compare';\nimport PropTypes from 'prop-types';\n\nimport Column from '../../../../layout/Column';\nimport Row from '../../../../layout/Row';\nimport Button from '../../../../components/Button';\n\nclass EditableListForm extends Component {\n static getMainFormValue(components) {\n const mainFormValue = new Array(components.length);\n\n components.forEach((component, index) => {\n mainFormValue[index] = component.props.value || undefined;\n });\n\n return mainFormValue;\n }\n\n constructor(props) {\n super(props);\n const {\n components,\n } = props;\n\n this.submitButtonRef = createRef();\n this.handleOnChange = this.handleOnChange.bind(this);\n this.submitForm = this.submitForm.bind(this);\n\n this.state = {\n components,\n errors: {},\n mainError: null,\n mainFormValue: EditableListForm.getMainFormValue(components),\n refs: [],\n };\n }\n\n componentDidMount() {\n const {\n addValueOnFieldChange,\n getMainFormButtonWidth,\n } = this.props;\n this.createRefs();\n\n if (getMainFormButtonWidth) {\n getMainFormButtonWidth(\n !addValueOnFieldChange\n ? this.submitButtonRef.current.clientWidth\n : 0,\n );\n }\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const state = {};\n const {\n components: propsComponents,\n } = nextProps;\n\n const {\n components: stateComponents,\n } = prevState;\n if (\n !isEqual(propsComponents, stateComponents)\n && !isEqual(\n EditableListForm.getMainFormValue(propsComponents),\n EditableListForm.getMainFormValue(stateComponents),\n )\n ) {\n state.mainFormValue = EditableListForm.getMainFormValue(propsComponents);\n state.components = propsComponents;\n }\n\n return state;\n }\n\n handleOnChange(component, index, value) {\n const { addValueOnFieldChange } = this.props;\n let tempState = this.state;\n\n tempState = { ...tempState, ...this.validateValue(value, component.props) };\n\n if (!tempState.errors[component.props.name]) {\n tempState.mainFormValue[index] = value;\n\n if (component.props.onChange) {\n component.props.onChange(value);\n }\n }\n\n this.setState((previousState) => ({ ...previousState, ...tempState }), () => {\n if (addValueOnFieldChange) {\n this.submitForm();\n }\n });\n }\n\n getFormCssClasses() {\n const { noLabels } = this.props;\n const cssClasses = ['tyk-editable-list__form'];\n\n if (noLabels) {\n cssClasses.push('no-labels');\n }\n\n return cssClasses.join(' ');\n }\n\n getButtonClassName() {\n const { buttonStyle, displayType } = this.props;\n const cssClasses = [];\n\n if (buttonStyle) {\n cssClasses.push(buttonStyle);\n }\n\n if (displayType) {\n cssClasses.push(displayType);\n }\n\n return cssClasses.join(' ');\n }\n\n getComponentsError(component) {\n const {\n error,\n errors,\n mainError,\n } = this.state;\n\n if (error || mainError) {\n errors[component.props.name] = 'true';\n } else if (!(error || mainError) && errors[component.props.name] === 'true') {\n delete errors[component.props.name];\n }\n\n return errors[component.props.name] ? errors[component.props.name].toString() : undefined;\n }\n\n createRefs() {\n const { components } = this.props;\n const refs = [];\n\n components.forEach(() => {\n refs.push(createRef());\n });\n\n this.setState({\n refs,\n });\n }\n\n validateValue(value, props) {\n const { mainError, errors } = this.state;\n const { error, errorPersist } = this.props;\n\n const validatorsNames = props.validate ? Object.keys(props.validate) : [];\n // if there is a general form error don't take field errors into consideration\n const tempState = {\n errors: (error || mainError) ? {} : { ...errors },\n };\n let ok = true;\n\n // if the error should stay after changing fields values don't take actions\n if (errorPersist) {\n return tempState;\n }\n\n // validate each field from the form\n for (const validatorName of validatorsNames) {\n const validator = props.validate[validatorName];\n if (validator(value)) {\n tempState.errors[props.name] = props.validationmessages[validatorName];\n ok = false;\n break;\n }\n }\n\n // if the field is ok delete its error\n if (ok) {\n delete tempState.errors[props.name];\n }\n\n tempState.mainError = null;\n\n return tempState;\n }\n\n hasMainFormErrors(errors) {\n const { components, errorPersist } = this.props;\n const { mainFormValue } = this.state;\n const tempState = {\n errors: { ...errors },\n };\n\n if (errorPersist && mainFormValue.indexOf(undefined) === -1) {\n return false;\n }\n\n if (Object.keys(tempState.errors).length > 0) {\n return true;\n }\n\n components.forEach((component, index) => {\n tempState.errors = {\n ...tempState.errors,\n ...this.validateValue(mainFormValue[index], component.props).errors,\n };\n });\n\n return Object.keys(tempState.errors).length > 0;\n }\n\n resetForm() {\n const { refs } = this.state;\n const {\n components,\n } = this.props;\n\n refs.forEach((ref) => {\n if (ref.current?.reset) {\n ref.current.reset();\n }\n });\n\n this.setState({\n errors: {},\n mainError: null,\n mainFormValue: EditableListForm.getMainFormValue(components),\n });\n }\n\n showMainError(error) {\n this.setState({\n mainError: error,\n });\n }\n\n submitForm() {\n const { errors, mainFormValue } = this.state;\n const {\n errorPersist, onSubmit, validate, validationmessage,\n } = this.props;\n\n if (errorPersist) {\n onSubmit(mainFormValue);\n this.resetForm();\n }\n\n if (\n Object.keys(errors).length === 0\n && (onSubmit && typeof onSubmit === 'function')\n ) {\n if (validate) {\n if (validate(mainFormValue)) {\n this.showMainError(validationmessage);\n } else {\n onSubmit(mainFormValue);\n this.resetForm();\n }\n } else {\n onSubmit(mainFormValue);\n this.resetForm();\n }\n }\n }\n\n render() {\n const {\n addValueOnFieldChange, components, buttonName, disabled, displayType, error,\n } = this.props;\n const {\n mainError, refs, errors,\n } = this.state;\n\n return (\n
    \n
    \n \n {\n components.map((component, index) => {\n const ComponentName = component.name;\n console.log('ComponentName', ComponentName);\n const {\n onChange, value, ...rest\n } = component.props;\n\n return (\n \n \n \n );\n })\n }\n \n {\n !addValueOnFieldChange\n ? (\n \n \n { buttonName || 'ADD' }\n \n \n )\n : null\n }\n
    \n {\n error || mainError\n ? (\n
    \n

    \n { error || mainError }\n

    \n
    \n )\n : null\n }\n
    \n );\n }\n}\n\nEditableListForm.propTypes = {\n addValueOnFieldChange: PropTypes.bool,\n noLabels: PropTypes.bool,\n buttonName: PropTypes.string,\n buttonStyle: PropTypes.string,\n components: PropTypes.instanceOf(Array),\n displayType: PropTypes.string,\n disabled: PropTypes.bool,\n getMainFormButtonWidth: PropTypes.func,\n error: PropTypes.string,\n errorPersist: PropTypes.bool,\n onSubmit: PropTypes.func,\n validate: PropTypes.func,\n validationmessage: PropTypes.string,\n};\n\nexport default EditableListForm;\n","import React, { Component, createRef } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport format from 'date-fns/format';\nimport isDate from 'date-fns/isDate';\n\nimport EditableListForm from './js/EditableListForm';\nimport Column from '../../../layout/Column';\nimport Icon from '../../../components/Icon';\nimport Row from '../../../layout/Row';\n\nclass EditableList extends Component {\n static getItemListValue(itemValue) {\n let tempValue = null;\n\n if (typeof itemValue === 'string') {\n tempValue = itemValue;\n }\n\n if (Object.prototype.toString.call(itemValue) === '[object Object]') {\n tempValue = itemValue.name;\n }\n\n if (isDate(itemValue)) {\n tempValue = format(itemValue, 'dd/MM/yyyy');\n }\n\n return tempValue;\n }\n\n static getListItemCssClass(displayType) {\n const cssClasses = [];\n\n if (displayType === 'inline') {\n cssClasses.push('tyk-editable-list-item--inline');\n }\n\n return cssClasses.join(' ');\n }\n\n constructor(props) {\n super(props);\n const {\n value,\n } = this.props;\n\n this.state = {\n initialValue: value || '',\n value: value || [],\n buttonWidth: 0,\n };\n\n this.startIndex = 1;\n\n this.handleFormSubmit = this.handleFormSubmit.bind(this);\n this.getMainFormButtonWidth = this.getMainFormButtonWidth.bind(this);\n this.dropdownListItemRef = createRef();\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const state = {};\n\n if (\n nextProps.value && JSON.stringify(nextProps.value)\n !== JSON.stringify(prevState.initialValue)\n ) {\n state.value = nextProps.value || [];\n state.initialValue = nextProps.value || '';\n }\n\n return state.value ? state : null;\n }\n\n handleFormSubmit(value) {\n const tempState = this.addValues(value);\n this.setState((previousState) => ({ ...previousState, ...tempState }), () => {\n this.triggerOnChange(tempState.value.length - 1, null, value);\n });\n }\n\n handleItemUpdate(index, value) {\n let prevValue;\n this.setState((previousState) => {\n const tempState = { ...previousState };\n prevValue = fromJS(tempState.value[index].value).toJS();\n tempState.value[index].value = value;\n tempState.value[index].editMode = false;\n\n return tempState;\n }, () => {\n this.triggerOnChange(index, prevValue, value);\n });\n }\n\n handleChildrenOnChange(index, value) {\n let prevValue;\n this.setState((previousState) => {\n const tempState = { ...previousState };\n prevValue = fromJS(tempState.value[index].children).toJS();\n tempState.value[index].children = value;\n\n return tempState;\n }, () => {\n this.triggerOnChange(index, prevValue, value);\n });\n }\n\n getListItemsCssClass(displayType) {\n const { config } = this.props;\n const cssClasses = ['tyk-editable-list-items'];\n\n cssClasses.push(config.displayType || 'table');\n\n if (displayType === 'inline') {\n cssClasses.push('tyk-editable-list-items--inline');\n }\n\n return cssClasses.join(' ');\n }\n\n getFormInputKey() {\n this.startIndex += 1;\n return this.startIndex;\n }\n\n // generate list item value's based on the display types\n // table, inline, list\n getListItemText(itemData) {\n const { config } = this.props;\n let value = null;\n\n switch (config.displayType) {\n case 'list':\n case 'inline': {\n const itemText = itemData.value.reduce((prevValue, itemValue, index) => {\n const tempValue = EditableList.getItemListValue(itemValue);\n let separator = ', ';\n\n if (index === itemData.value.length - 1) {\n separator = '';\n }\n\n return prevValue + tempValue + separator;\n }, '');\n\n value = itemText;\n\n break;\n }\n default:\n value = (\n \n {\n config.components.map((component, index) => (\n \n { EditableList.getItemListValue(itemData.value[index]) }\n \n ))\n }\n \n );\n\n break;\n }\n\n return value;\n }\n\n getMainFormButtonWidth(value) {\n this.setState({\n buttonWidth: value,\n });\n }\n\n setItemEditMode(index) {\n const newValues = this.closeListItems();\n\n this.setState((previousState) => {\n const tempState = { ...previousState };\n tempState.value = newValues;\n tempState.value[index].editMode = !tempState.value[index].editMode;\n\n return tempState;\n });\n }\n\n isInList(index, itemValue) {\n const { value } = this.state;\n let ok = false;\n\n value.forEach((item, itemIndex) => {\n if (JSON.stringify(item.value) === JSON.stringify(itemValue)) {\n if (index >= 0 && itemIndex === index) {\n ok = false;\n } else {\n ok = true;\n }\n }\n });\n\n return ok;\n }\n\n addValues(newValue) {\n const { value } = this.state;\n const { config } = this.props;\n const itemValue = {\n editMode: false,\n value: newValue,\n };\n const tempState = {\n value: value.slice(0),\n };\n\n if (config.children) {\n itemValue.children = [];\n }\n\n tempState.value.push(itemValue);\n\n return tempState;\n }\n\n removeListItem(index) {\n let removedItem;\n this.setState((previousState) => {\n const valueArr = previousState.value.slice(0);\n removedItem = valueArr.splice(index, 1);\n\n return {\n value: valueArr,\n };\n }, () => {\n this.triggerOnChange(index, removedItem, null);\n });\n }\n\n closeListItems() {\n const { value } = this.state;\n\n const newValues = value.map((itemValue) => {\n const tempItemValue = { ...itemValue };\n\n if (tempItemValue.editMode) {\n tempItemValue.editMode = false;\n return tempItemValue;\n }\n\n return tempItemValue;\n });\n\n return newValues;\n }\n\n triggerOnChange(index, prevValue, nextValue) {\n const { onChange } = this.props;\n const { value } = this.state;\n\n if (onChange && typeof onChange === 'function') {\n onChange(((value.length) ? value : null), index, prevValue, nextValue);\n }\n }\n\n genListItem(itemData, index) {\n const { config, disabled } = this.props;\n const { buttonWidth, value } = this.state;\n\n const clonedComponents = fromJS(config.components).toJS();\n\n itemData.value.forEach((itemValue, itemIndex) => {\n clonedComponents[itemIndex].props.value = itemValue;\n });\n\n return (\n \n \n {\n !itemData.editMode\n ? (\n <>\n { this.getListItemText(itemData, index) }\n \n \n \n \n \n \n \n \n \n )\n : (\n <>\n \n \n \n \n \n )\n }\n \n {\n config.children\n ? (\n \n )\n : null\n }\n \n );\n }\n\n genList() {\n const { config } = this.props;\n const { buttonWidth, value } = this.state;\n\n if (!value || value.length === 0) {\n return null;\n }\n\n return (\n <>\n {\n config.displayType === 'table' || !config.displayType\n ? (\n \n \n {\n config.components.map((component, index) => (\n \n { component.props.label }\n \n ))\n }\n \n \n )\n : null\n }\n
      \n {\n value.map((itemData, index) => this.genListItem(itemData, index))\n }\n
    \n \n );\n }\n\n render() {\n const {\n addValueOnFieldChange, config, error, disabled, label,\n } = this.props;\n const appendToElement = document.querySelector(config.appendTo) || document.querySelector('body');\n\n return (\n
    \n {\n label\n ? \n : null\n }\n \n {\n config.appendTo\n ? ReactDOM.createPortal(\n this.genList(),\n appendToElement,\n )\n : this.genList()\n }\n
    \n );\n }\n}\n\nEditableList.propTypes = {\n addValueOnFieldChange: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.string,\n config: PropTypes.instanceOf(Object),\n onChange: PropTypes.func,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n value: PropTypes.oneOfType([\n PropTypes.instanceOf(Array),\n PropTypes.instanceOf(Object),\n ]),\n};\n\nexport default EditableList;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '../../../components/Button';\n\nfunction Header({\n label, addButtonName, onAddRow, disabled, readOnly,\n}) {\n return (\n
    \n {\n label\n ? \n : null\n }\n {!disabled && !readOnly && (\n \n {addButtonName || 'Add'}\n \n )}\n
    \n );\n}\n\nHeader.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n onAddRow: PropTypes.func,\n addButtonName: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n};\n\nexport default Header;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ListHeader({\n fields,\n readOnly,\n}) {\n return (\n
  • \n {\n fields.map((field) => (\n \n {field?.props?.label}\n \n ))\n }\n
    Delete
    \n
  • \n );\n}\n\nListHeader.propTypes = {\n fields: PropTypes.instanceOf(Array),\n readOnly: PropTypes.bool,\n};\n\nexport default ListHeader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Button from '../../../components/Button';\n\nfunction FieldsList({\n fields,\n disabled,\n readOnly,\n errors,\n components,\n onChange,\n onDelete,\n value,\n rowIndex,\n}) {\n return (\n
  • \n {\n components.map((Component, index) => {\n const field = fields[index];\n const tempField = typeof field === 'function' ? field(rowIndex, index) : field;\n return (\n \n \n \n );\n })\n }\n
    \n \n
    \n
  • \n );\n}\n\nFieldsList.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n rowIndex: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n fields: PropTypes.instanceOf(Array),\n errors: PropTypes.instanceOf(Array),\n components: PropTypes.instanceOf(Array),\n value: PropTypes.instanceOf(Array),\n onChange: PropTypes.func,\n onDelete: PropTypes.func,\n};\n\nexport default FieldsList;\n","import React, { useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Header from './Header';\nimport ListHeader from './ListHeader';\nimport FieldsList from './FieldsList';\nimport validateValues from './validate-values';\nimport withValidation from './with-validation';\n\nlet id = 1;\n/* eslint-disable-next-line */\nconst getUID = prefix => `${prefix}-${id++}`;\n\n/**\n * Editable list is a component, that lists rows of form elements (can have n elements on a row),\n * and stores the values of all the rows in an Array list\n */\nfunction EditableList2({\n addButtonName,\n disabled,\n readOnly,\n fields,\n label,\n error,\n value = [],\n onChange = () => {},\n hideOnEmpty = true,\n wrapperClassName = '',\n}) {\n const [internalErrors, setInternalErrors] = useState(null);\n\n const updateRowValue = (rowIndex, fieldIndex, componentValue, isValid) => {\n const tempValueArr = !value ? [] : [...value];\n\n if (!value) {\n tempValueArr[rowIndex] = [...new Array(fields.length)];\n tempValueArr[rowIndex][fieldIndex] = componentValue;\n } else {\n const tempValue = [...tempValueArr[rowIndex]];\n tempValue[fieldIndex] = componentValue;\n tempValueArr[rowIndex] = tempValue;\n tempValueArr[rowIndex].id = value[rowIndex].id;\n }\n\n if (internalErrors?.[rowIndex]?.[fieldIndex] && isValid) {\n const tempErrors = [...internalErrors];\n const tempFieldError = [...tempErrors[rowIndex]];\n tempFieldError[fieldIndex] = null;\n tempErrors[rowIndex] = tempFieldError;\n setInternalErrors(tempErrors);\n }\n onChange(tempValueArr);\n };\n\n const hasErrors = (errors) => Boolean(errors?.flat()?.filter(Boolean).length);\n\n const Components = useMemo(\n () => fields.map((field) => {\n const tempField = typeof field === 'function' ? field() : field;\n\n return withValidation(tempField?.component || null);\n }),\n [],\n );\n\n const onAddRow = () => {\n const errors = validateValues(fields, value);\n\n if (hasErrors(errors)) {\n setInternalErrors(errors);\n return;\n }\n\n const newValue = [...new Array(fields.length)];\n newValue.id = getUID('row');\n\n onChange([\n ...value,\n newValue,\n ]);\n };\n\n const deleteRow = (index) => {\n if (!value) {\n return;\n }\n const tempValue = [...value];\n tempValue.splice(index, 1);\n onChange(tempValue);\n };\n\n return (\n
    \n \n {value?.length || !hideOnEmpty ? (\n
      \n {(value || [[]]).map((v, i) => (\n \n ))}\n \n
    \n ) : null}\n {error && error !== 'true' && error !== 'false' ? (\n

    {error}

    \n ) : null}\n
    \n );\n}\n\nEditableList2.propTypes = {\n /** Sets Editable list in edit mode.\n * If enabled all fields are disabled, the add button is hidden and delete button is disabled\n * */\n disabled: PropTypes.bool,\n /** Sets Editable list in read only mode.\n * If enabled all fields are displaying just the value,\n * the add button is hidden and delete button is disabled\n */\n readOnly: PropTypes.bool,\n /** Name of the Add button. By default has 'Add value' */\n addButtonName: PropTypes.string,\n /** Label of Editable list, is displayed above the list and inline with the Add button */\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n /** Array of form elements that you want the list to have\n * Each field is an object points to the Form element component that you want to use,\n * the props you want to apply on it,\n * and the size (as in width, it's like columns system, between 1 and 12)\n * Example:\n * ...\n * fields={[\n {\n component: Input2,\n styles: {\n width: \"200px\",\n },\n size: 4,\n props: {\n name: 'input',\n label: 'Claim name',\n theme: 'default rounded-corners',\n placeholder: 'Enter claim name',\n validate: formikRequired('This field is required')\n }\n },\n {\n component: Combobox2,\n size: 8,\n props: comboboxProps\n }\n ]}\n */\n fields: PropTypes.instanceOf(Array),\n /** onChange function is called everytime the value of editable list changes */\n onChange: PropTypes.func,\n /** value of editable list, wich is an Array (List of row values)\n * of Arrays (List of column values,\n * each column will have the value format depending on the component type)\n */\n value: PropTypes.oneOfType([\n PropTypes.instanceOf(Object),\n PropTypes.instanceOf(Array),\n ]),\n error: PropTypes.string,\n hideOnEmpty: PropTypes.bool,\n wrapperClassName: PropTypes.string,\n};\n\nexport default EditableList2;\n","import React, { useCallback, useState } from 'react';\n\n// eslint-disable-next-line react/function-component-definition\nconst withValidation = (Component) => ({\n onChange, // eslint-disable-line react/prop-types\n validate, // eslint-disable-line react/prop-types\n error, // eslint-disable-line react/prop-types\n ...rest\n}) => {\n const [internalError, setInternalError] = useState(null);\n const onFieldChange = useCallback((event) => {\n /* eslint-disable-next-line */\n const value = event?.target\n ? ['radio', 'checkbox'].includes(event.target.type)\n ? event.target.checked\n : event?.target.value\n : event;\n\n let isValid = true;\n if (validate && typeof validate === 'function') {\n const errorMsg = validate(value);\n isValid = !errorMsg;\n setInternalError(errorMsg);\n }\n\n onChange(value, isValid);\n }, [validate, onChange]);\n\n return ;\n};\n\nexport default withValidation;\n","const validateValues = (fields, rowValues) => (rowValues || [[undefined, undefined]])?.map(\n (colValue) => colValue?.map(\n (value, index) => fields[index].props.validate?.(value),\n ),\n);\n\nexport default validateValues;\n","import React, { useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../../components/Icon';\n\nfunction FileInput({\n error,\n theme,\n labelwidth,\n wrapperClassName = '',\n id,\n label,\n note,\n accept,\n value,\n onChange,\n ...rest\n}) {\n const fileInputRef = useRef();\n\n function handleOnChange(e) {\n onChange(e.target.files);\n }\n\n function getCssClasses() {\n const cssClasses = [wrapperClassName, 'tyk-form-group'];\n const themes = theme ? theme.split(' ') : [];\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n return cssClasses.join(' ');\n }\n\n function getLabelStyles() {\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = labelwidth;\n }\n\n return styles;\n }\n\n function getNonLabelWidth() {\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styles;\n }\n\n function getFileInputError() {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }\n\n function getFileInputComponent() {\n return (\n \n \n {\n fileInputRef.current && fileInputRef.current.files.length > 0\n ? (\n \n \n \n )\n : null\n }\n \n );\n }\n\n function clearValue() {\n fileInputRef.current.value = '';\n onChange('');\n }\n\n return (\n
    \n {\n label\n ? \n : null\n }\n
    \n { getFileInputComponent() }\n {\n note\n ?

    { note }

    \n : null\n }\n
    \n { getFileInputError() }\n
    \n );\n}\n\nFileInput.propTypes = {\n accept: PropTypes.string,\n disabled: PropTypes.bool,\n id: PropTypes.string,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.instanceOf(Object),\n wrapperClassName: PropTypes.string,\n};\n\nexport default FileInput;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nclass Input extends Component {\n static getAddon(content) {\n return (\n
    \n { content }\n
    \n );\n }\n\n constructor(props) {\n super(props);\n const {\n value,\n } = this.props;\n\n this.state = {\n initValue: value,\n stateValue: value,\n };\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n componentDidUpdate(prevProps) {\n const {\n isfield,\n value,\n onChange,\n } = this.props;\n\n if (!isfield && prevProps.value !== value) {\n /* eslint-disable react/no-did-update-set-state */\n this.setState({\n stateValue: value,\n }, () => {\n if (onChange) {\n onChange(value);\n }\n });\n }\n }\n\n handleOnChange(e) {\n const { onChange, isfield } = this.props;\n const inputValue = e.target.value;\n\n if (!isfield) {\n this.setState({\n stateValue: inputValue,\n }, () => {\n if (onChange) {\n onChange(inputValue);\n }\n });\n } else {\n onChange(inputValue);\n }\n }\n\n getLabelStyles() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = labelwidth;\n }\n\n return styles;\n }\n\n getNonLabelWidth() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styles;\n }\n\n getInputError() {\n const { error } = this.props;\n\n return (error && error !== 'true' && error !== 'false')\n ? (\n \n { error }\n

    \n )\n : null;\n }\n\n getCssClasses() {\n const {\n error,\n theme,\n labelwidth,\n inputgroupaddonleft,\n inputgroupaddonright,\n } = this.props;\n const cssClasses = ['tyk-form-group'];\n const themes = theme ? theme.split(' ') : [];\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (inputgroupaddonleft) {\n cssClasses.push('tyk-form-group--addon-left');\n }\n\n if (inputgroupaddonright) {\n cssClasses.push('tyk-form-group--addon-right');\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n return cssClasses.join(' ');\n }\n\n getInputGroupAddon() {\n const {\n inputgroupaddonleft,\n inputgroupaddonright,\n } = this.props;\n\n return (\n
    \n {\n inputgroupaddonleft\n ? Input.getAddon(inputgroupaddonleft)\n : null\n }\n { this.getInputComponent() }\n {\n inputgroupaddonright\n ? Input.getAddon(inputgroupaddonright)\n : null\n }\n
    \n );\n }\n\n getInputComponent() {\n const {\n isfield, onChange, value, ...rest\n } = this.props;\n const { stateValue } = this.state;\n return (\n \n );\n }\n\n // eslint-disable-next-line react/no-unused-class-component-methods\n reset() {\n const { initValue } = this.state;\n\n this.setState({\n stateValue: initValue,\n });\n }\n\n render() {\n const {\n label,\n id,\n inputgroupaddonleft,\n inputgroupaddonright,\n note,\n readOnly,\n value,\n } = this.props;\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n {\n inputgroupaddonleft || inputgroupaddonright\n ? this.getInputGroupAddon()\n : this.getInputComponent()\n }\n {\n note\n ?

    { note }

    \n : null\n }\n { this.getInputError() }\n
    \n )}\n {\n readOnly &&
    {value || '-'}
    \n }\n \n );\n }\n}\n\nInput.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n isfield: PropTypes.bool,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n inputgroupaddonleft: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n inputgroupaddonright: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n};\n\nexport default Input;\n","import React, { useImperativeHandle, useRef, forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Input2({\n error,\n onChange,\n readOnly,\n id,\n inputgroupaddonleft,\n inputgroupaddonright,\n label,\n labelwidth,\n note,\n theme,\n value,\n wrapperClassName = '',\n ...rest\n}, ref) {\n const inputRef = useRef();\n\n useImperativeHandle(ref, () => ({\n focus: () => {\n inputRef.current.focus();\n },\n }));\n\n const getAddon = (content) => (\n
    \n { content }\n
    \n );\n\n const getLabelStyles = () => ({\n ...labelwidth && {\n flexBasis: labelwidth,\n },\n });\n\n const getNonLabelWidth = () => ({\n ...labelwidth && {\n flexBasis: `calc(100% - ${labelwidth} - 20px)`,\n },\n });\n\n const getInputError = () => (\n (error && error !== 'true' && error !== 'false')\n ? (\n \n { error }\n

    \n )\n : null\n );\n\n const getCssClasses = () => {\n const cssClasses = [wrapperClassName, 'tyk-form-group'];\n const themes = theme ? theme.split(' ') : [];\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (inputgroupaddonleft) {\n cssClasses.push('tyk-form-group--addon-left');\n }\n\n if (inputgroupaddonright) {\n cssClasses.push('tyk-form-group--addon-right');\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n return cssClasses.join(' ');\n };\n\n const handleOnChange = (e) => {\n onChange(e, e.target.value);\n };\n\n const getInputElement = () => (\n \n );\n\n const getInputGroupAddon = () => (\n
    \n {\n inputgroupaddonleft\n ? getAddon(inputgroupaddonleft)\n : null\n }\n { getInputElement() }\n {\n inputgroupaddonright\n ? getAddon(inputgroupaddonright)\n : null\n }\n
    \n );\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n {\n inputgroupaddonleft || inputgroupaddonright\n ? getInputGroupAddon()\n : getInputElement()\n }\n {\n note\n ?

    { note }

    \n : null\n }\n { getInputError() }\n
    \n )}\n {\n readOnly && (\n
    \n {value || '-'}\n
    \n )\n }\n \n );\n}\n\nInput2.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n inputgroupaddonleft: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n inputgroupaddonright: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default forwardRef(Input2);\n","import { createContext } from 'react';\n\nconst MultiselectContext = createContext();\n\nexport default MultiselectContext;\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport MultiselectContext from './MultiselectContext';\nimport Button from '../../../../components/Button';\nimport Collapsible from '../../../../components/Collapsible';\nimport Loader from '../../../../components/Loader';\n\nconst getItemContent = (context, item) => (\n context.detailsDisplayTemplate\n ? context.detailsDisplayTemplate(item)\n : JSON.stringify(item.details)\n);\n\nconst getItemLoader = (context, item) => {\n const { opened } = context;\n\n return opened[item.id]\n ? \n : null;\n};\n\nfunction MultiselectItem({\n item,\n itemType,\n searchValue,\n onChange,\n}) {\n const isInSearchValue = useCallback((fieldsToSearchOn) => {\n if (fieldsToSearchOn?.length > 0) {\n return fieldsToSearchOn.some((key) => item[key]?.includes(searchValue));\n }\n\n return JSON.stringify(item).includes(searchValue);\n }, [item, searchValue]);\n\n const onAddRemove = useCallback(() => {\n onChange(item);\n }, [onChange, item]);\n\n return (\n \n {\n (context) => (\n isInSearchValue(context.fieldsToSearchOn)\n ? (\n
  • \n
    \n \n {\n context.itemDisplayTemplate\n ? context.itemDisplayTemplate(item)\n : JSON.stringify(item)\n }\n \n \n \n context.onGetItemDetails(item)}\n />\n \n
    \n {\n item.details\n ? (\n \n {getItemContent(context, item)}\n \n )\n : getItemLoader(context, item)\n }\n
  • \n )\n : null\n )\n }\n
    \n );\n}\n\nMultiselectItem.propTypes = {\n item: PropTypes.instanceOf(Object),\n itemType: PropTypes.string,\n searchValue: PropTypes.string,\n onChange: PropTypes.func,\n};\n\nexport default MultiselectItem;\n","import React, { useCallback, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Input from '../../Input';\nimport Icon from '../../../../components/Icon';\nimport Message from '../../../../components/Message';\nimport InfiniteScroller from '../../../../components/InfiniteScroller';\nimport MultiselectItem from './MultiselectItem';\n\nfunction MultiselectPanel({\n inputPlaceholder,\n noItemsMessage,\n items,\n onCustomSearch,\n onChange,\n customSearch,\n panelType,\n serverLoad,\n itemsPageNumber,\n itemsNrPages,\n loadMoreItems,\n}) {\n const [searchValue, setSearchValue] = useState('');\n const itemIndex = useRef(0);\n const itemsListRef = useRef();\n\n function getItemIndex() {\n itemIndex.current += 1;\n\n return itemIndex.current;\n }\n\n function getItemsList() {\n return (\n serverLoad\n ? (\n itemsPageNumber}\n loadMore={loadMoreItems}\n pageNumber={itemsPageNumber}\n >\n { renderListItems() }\n \n )\n : renderListItems()\n );\n }\n\n const searchOnChange = useCallback((value) => {\n if (onCustomSearch) {\n onCustomSearch(value);\n } else {\n setSearchValue(value);\n }\n }, [onCustomSearch]);\n\n const itemChanged = useCallback((item) => {\n let cloneItems = structuredClone(items);\n cloneItems = cloneItems.filter((clonedItem) => item.id !== clonedItem.id);\n\n onChange(cloneItems, item);\n }, [items]);\n\n function renderListItems() {\n return (\n \n {\n items.map((item) => (\n \n ))\n }\n \n );\n }\n\n return (\n
    \n \n }\n name=\"search\"\n onChange={searchOnChange}\n placeholder={inputPlaceholder}\n value={searchValue}\n />\n {\n items.length\n ? getItemsList()\n : (\n \n { noItemsMessage }\n \n )\n }\n
    \n );\n}\n\nMultiselectPanel.propTypes = {\n customSearch: PropTypes.bool,\n onCustomSearch: PropTypes.func,\n panelType: PropTypes.string,\n onChange: PropTypes.func,\n items: PropTypes.instanceOf(Array),\n itemsPageNumber: PropTypes.number,\n itemsNrPages: PropTypes.number,\n inputPlaceholder: PropTypes.string,\n loadMoreItems: PropTypes.func,\n noItemsMessage: PropTypes.string,\n serverLoad: PropTypes.bool,\n};\n\nexport default MultiselectPanel;\n","import React, { useCallback, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport MultiselectPanel from './js/MultiselectPanel';\nimport MultiselectContext from './js/MultiselectContext';\n\nconst diffObjects = (value, items) => items.filter((item) => !value.find((v) => v.id === item.id));\n\nfunction Multiselect({\n customSearch,\n entityNamePlural,\n disabled,\n error,\n getItemDetails,\n itemDisplayTemplate,\n detailsDisplayTemplate,\n fieldsToSearchOn,\n items,\n itemsPageNumber,\n itemsNrPages,\n loadMoreItems,\n maxSelections,\n note,\n value,\n onChange,\n wrapperClassName = '',\n}) {\n const [opened, setOpened] = useState({});\n\n const onGetItemDetails = useCallback((item) => {\n setOpened((prevOpened) => ({ ...prevOpened, [item.id]: !prevOpened[item.id] }));\n\n if (getItemDetails) getItemDetails(item);\n }, [getItemDetails]);\n\n function getMultiselectError() {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }\n\n const getCssClasses = useCallback(\n () => [\n wrapperClassName,\n 'tyk-multiselect',\n error && 'has-error',\n ]\n .filter(Boolean)\n .join(' '),\n [wrapperClassName, error],\n );\n\n const itemsChange = useCallback((allItems, item) => {\n const valueClone = structuredClone(value);\n\n valueClone.unshift(item);\n\n onChange(valueClone, item, 'added');\n }, [value]);\n\n const valueChange = useCallback((newValue, item) => {\n onChange(newValue, item, 'removed');\n }, [items]);\n\n const providerValue = useMemo(() => ({\n disabled,\n itemDisplayTemplate,\n detailsDisplayTemplate,\n fieldsToSearchOn,\n maxSelections,\n nrSelectedItems: value.length,\n onGetItemDetails,\n opened,\n }), [\n disabled,\n itemDisplayTemplate,\n detailsDisplayTemplate,\n fieldsToSearchOn,\n maxSelections,\n value,\n onGetItemDetails,\n opened,\n ]);\n\n return (\n <>\n
    \n \n
    \n
    \n { value.length }\n {' '}\n Selected\n {' '}\n { entityNamePlural }\n
    \n
    \n Select from existing\n { entityNamePlural }\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n {\n note\n ?

    { note }

    \n : null\n }\n
    \n { getMultiselectError() }\n \n );\n}\n\nMultiselect.propTypes = {\n customSearch: PropTypes.func,\n disabled: PropTypes.bool,\n error: PropTypes.string,\n entityNamePlural: PropTypes.string,\n items: PropTypes.instanceOf(Array),\n itemDisplayTemplate: PropTypes.func,\n detailsDisplayTemplate: PropTypes.func,\n fieldsToSearchOn: PropTypes.instanceOf(Array),\n onChange: PropTypes.func,\n getItemDetails: PropTypes.func,\n itemsPageNumber: PropTypes.number,\n itemsNrPages: PropTypes.number,\n loadMoreItems: PropTypes.func,\n note: PropTypes.string,\n maxSelections: PropTypes.number,\n value: PropTypes.instanceOf(Array),\n wrapperClassName: PropTypes.string,\n};\n\nexport default Multiselect;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * Radio can be used when a user needs to select at most one value from a multiple options.\n */\nfunction Radio({\n label,\n input,\n note,\n inline,\n nospace,\n theme = '',\n disabled,\n readOnly,\n wrapperClassName = '',\n ...rest\n}) {\n const cssClasses = [\n inline ? 'tyk-radio--inline' : 'tyk-radio',\n wrapperClassName,\n nospace && 'no-margin',\n ...(theme ? theme.split(' ').filter(Boolean).map((t) => `tyk-radio--theme-${t}`) : []),\n (readOnly || disabled) && 'tyk-radio--is-disabled',\n ].filter(Boolean).join(' ');\n\n return (\n
    \n \n {note && (\n

    {note}

    \n )}\n
    \n );\n}\n\nRadio.propTypes = {\n /** Used to disable the element */\n disabled: PropTypes.bool,\n /** Readonly prop behaves the same as disabled on radio elements */\n readOnly: PropTypes.bool,\n /** Align radio in the same line with other elements */\n inline: PropTypes.bool,\n /** Set a theme for radio */\n theme: PropTypes.string,\n input: PropTypes.instanceOf(Object),\n /** Adds label to the radio input */\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n /** Set name for the radio input */\n name: PropTypes.string,\n /** If set to true removes margin by adding `no-margin` class */\n nospace: PropTypes.bool,\n /** Set initial value for the radio input */\n value: PropTypes.string,\n /** Add note at the bottom of the radio input */\n note: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default Radio;\n","import React, { useCallback, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Select(props) {\n const {\n value,\n onChange,\n onBlur,\n isfield,\n label,\n labelwidth,\n id,\n note,\n readOnly,\n options,\n error,\n theme,\n wrapperClassName = '',\n ...rest\n } = props;\n const [stateValue, setStateValue] = useState(value);\n\n useEffect(() => {\n if (!isfield && stateValue !== value) {\n setStateValue(value);\n if (onChange) onChange(value);\n }\n }, [stateValue, value]);\n\n const handleOnChange = useCallback((e) => {\n const selectedValue = options.find((option) => option.id === e.target.value);\n\n if (!isfield) {\n setStateValue(selectedValue);\n }\n onChange(selectedValue.id ? selectedValue : null);\n }, [options, isfield, onChange]);\n\n const handleOnBlur = useCallback(() => {\n if (onBlur) {\n onBlur(value);\n }\n }, [onBlur]);\n\n // eslint-disable-next-line arrow-body-style\n const getSelectError = useCallback(() => {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }, [error]);\n\n const getCssClasses = useCallback(\n () => [\n 'tyk-form-group',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' '),\n [wrapperClassName, theme, labelwidth, error],\n );\n\n const getLabelStyles = useCallback(() => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n }, [labelwidth]);\n\n const getNonLabelWidth = useCallback(() => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n }, [labelwidth]);\n\n const getSelectComponent = useCallback(() => {\n const selectValue = isfield && value ? value : stateValue;\n\n return (\n \n {\n options.map((option) => (\n \n ))\n }\n \n );\n }, [isfield, value, stateValue, handleOnChange, handleOnBlur, options, rest]);\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n { getSelectComponent() }\n {\n note\n ?

    { note }

    \n : null\n }\n { getSelectError() }\n
    \n )}\n {readOnly &&
    {value || '-'}
    }\n \n );\n}\n\nSelect.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n isfield: PropTypes.bool,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n options: PropTypes.instanceOf(Array),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default Select;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Message from '../../../components/Message';\nimport List from '../../../components/List';\nimport Icon from '../../../components/Icon';\n\nfunction SelectableList(props) {\n const {\n checkboxalticon,\n items,\n itemTemplate,\n value,\n noItemsMessage = 'No items in the list',\n onChange,\n theme,\n primaryKey,\n wrapperClassName = '',\n } = props;\n\n const handleOnSelect = (event) => {\n const newSelectedItems = structuredClone(value);\n const elemPosition = newSelectedItems.findIndex(\n (id) => JSON.stringify(id) === JSON.stringify(\n Array.isArray(id)\n ? event.target.value.split(',')\n : event.target.value,\n ),\n );\n\n if (event.target.checked && elemPosition === -1) {\n const tempValue = event.target.value.split(',');\n const finalValue = tempValue.length > 1 ? tempValue : event.target.value;\n\n newSelectedItems.push(finalValue);\n } else if (!event.target.checked && elemPosition > -1) {\n newSelectedItems.splice(elemPosition, 1);\n }\n\n if (onChange) {\n onChange(newSelectedItems);\n }\n };\n\n const getListItemCssClassName = (isActive) => {\n const cssClasses = [];\n\n if (checkboxalticon) {\n cssClasses.push('tyk-selectable-list__item--with-icon');\n }\n\n if (isActive) {\n cssClasses.push('tyk-selectable-list__item--active');\n }\n\n return cssClasses.join(' ');\n };\n\n const isChecked = (inputValue, itemValue) => Boolean(\n inputValue.find((tvalue) => JSON.stringify(itemValue) === JSON.stringify(tvalue)),\n );\n\n return (\n \n {\n !items.length\n ? (\n
  • \n \n {noItemsMessage}\n \n
  • \n )\n : items.map((item, index) => (\n \n \n \n ))\n }\n
    \n );\n}\n\nSelectableList.propTypes = {\n items: PropTypes.instanceOf(Array),\n itemTemplate: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n PropTypes.func,\n ]),\n value: PropTypes.instanceOf(Array),\n onChange: PropTypes.func,\n primaryKey: PropTypes.string,\n noItemsMessage: PropTypes.string,\n checkboxalticon: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n theme: PropTypes.string,\n wrapperClassName: PropTypes.string,\n};\n\nSelectableList.defaultProps = {\n items: [],\n primaryKey: 'id',\n value: [],\n};\n\nexport default SelectableList;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Textarea({\n id,\n input,\n label,\n note,\n error,\n theme,\n labelwidth,\n value,\n readOnly,\n wrapperClassName,\n ...rest\n}) {\n const classes = [\n 'tyk-form-group',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' ');\n\n const getLabelStyles = () => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n };\n\n const getNonLabelWidth = () => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n };\n\n function getTextareaError() {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n \n { value }\n \n {\n note\n ?

    { note }

    \n : null\n }\n {getTextareaError()}\n
    \n )}\n {readOnly &&
    {value || '-'}
    }\n \n );\n}\n\nTextarea.propTypes = {\n /** Disable the component */\n disabled: PropTypes.bool,\n /** Displays only the text value of the component, or \"-\" if no value is set */\n readOnly: PropTypes.bool,\n input: PropTypes.instanceOf(Object),\n /** Set an error message for the component and the component is rendered in the error state */\n error: PropTypes.string,\n /** Adds a label to the component */\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n /** Sets the width of the label */\n labelwidth: PropTypes.string,\n /** Set a name for the component */\n name: PropTypes.string,\n /** Adds additional information under the component */\n note: PropTypes.string,\n /** Callback function executed on value change */\n onChange: PropTypes.func,\n id: PropTypes.string,\n /** Set a theme for the component */\n theme: PropTypes.string,\n /** Set the value of the component */\n value: PropTypes.string,\n /** CSS classes added to the wrapper of the component */\n wrapperClassName: PropTypes.string,\n};\n\nexport default Textarea;\n","import { createContext } from 'react';\n\nconst ToggleContext = createContext();\n\nexport default ToggleContext;\n","import React, { Component, createRef } from 'react';\nimport PropTypes from 'prop-types';\n\nclass ToggleItem extends Component {\n static getNotchCssClasses(context) {\n return ['tyk-toggle__item-notch', `tyk-toggle__item-notch--${context.type}`].join(' ');\n }\n\n constructor(props) {\n super(props);\n\n this.itemRef = createRef();\n }\n\n componentDidMount() {\n const { context, value } = this.props;\n\n if (context.value === value) {\n context.saveSelectedRef(this.itemRef);\n }\n }\n\n componentDidUpdate(prevProps) {\n const { context, value } = this.props;\n\n if (prevProps.context.value !== context.value && context.value === value) {\n context.saveSelectedRef(this.itemRef);\n }\n }\n\n onChange(event) {\n const { context, value } = this.props;\n const { disabled, readOnly } = context;\n\n if (disabled || readOnly) {\n return;\n }\n\n context.onItemSelected(context.type === 'single' ? !context.value : value, event);\n }\n\n render() {\n const {\n context, label, name, value,\n } = this.props;\n return (\n
  • \n \n
  • \n );\n }\n}\n\nToggleItem.propTypes = {\n context: PropTypes.instanceOf(Object),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n name: PropTypes.string,\n value: PropTypes.string,\n};\n\nexport default ToggleItem;\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport ToggleContext from './ToggleContext';\nimport ToggleItem from './ToggleItem';\n\nfunction ToggleItemWrapper({ children, ...rest }, ref) {\n return (\n \n {(context) => (\n \n {children}\n \n )}\n \n );\n}\n\nToggleItemWrapper.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n};\n\nexport default forwardRef(ToggleItemWrapper);\n","import React, {\n useCallback, useMemo, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport ToggleContext from './js/ToggleContext';\nimport ToggleItemWrapper from './js/ToggleItemWrapper';\n\nfunction Toggle({\n className,\n disabled,\n readOnly,\n size,\n theme,\n direction,\n onDark,\n wrapperClassName = '',\n onChange,\n labelwidth,\n label,\n separated,\n children,\n type,\n value,\n error,\n}) {\n const [selectedRef, setSelectedRef] = useState(null);\n const notchRef = useRef();\n const toggleRef = useRef();\n\n const classes = [\n wrapperClassName,\n className,\n 'tyk-toggle',\n `tyk-toggle--disabled-${readOnly || disabled}`,\n `tyk-toggle--${size || 'md'}`,\n `tyk-toggle--${theme}`,\n `tyk-toggle--${direction}`,\n onDark && 'tyk-toggle--on-dark',\n ].filter(Boolean).join(' ');\n\n const onItemSelected = useCallback((itemValue, event) => {\n if (!onChange) return;\n onChange(itemValue, event);\n }, [onChange]);\n\n const getLabelStyles = useCallback(() => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n }, [labelwidth]);\n\n const positionNotch = useCallback(() => {\n if (!selectedRef || separated) {\n return {};\n }\n\n const selectedWidth = selectedRef.current.offsetWidth;\n const selectedOffset = selectedRef.current.getBoundingClientRect().left;\n const toggleOffset = toggleRef.current.getBoundingClientRect().left;\n const left = selectedOffset - toggleOffset;\n\n return {\n left: `${left + 4}px`,\n width: `${selectedWidth - 8}px`,\n };\n }, [selectedRef, separated]);\n\n const contextValue = useMemo(() => ({\n disabled,\n readOnly,\n onItemSelected,\n saveSelectedRef: setSelectedRef,\n separated,\n type,\n value,\n }), [disabled, readOnly, onItemSelected, separated, type, value]);\n\n return (\n <>\n
    \n \n {\n label\n ? \n : null\n }\n
      \n { children }\n {\n type === 'multiple' && !separated\n ?
    • \n : null\n }\n
    \n \n
    \n {\n error && (\n

    \n { error }\n

    \n )\n }\n \n );\n}\n\nToggle.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n error: PropTypes.string,\n onChange: PropTypes.func,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n theme: PropTypes.string,\n type: PropTypes.string, // single || multiple\n size: PropTypes.string,\n separated: PropTypes.bool,\n direction: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.string,\n ]),\n onDark: PropTypes.bool,\n wrapperClassName: PropTypes.string,\n};\n\nToggle.defaultProps = {\n separated: false,\n theme: 'primary',\n type: 'single',\n direction: 'row',\n};\n\nToggle.Item = ToggleItemWrapper;\n\nexport default Toggle;\n","const config = {\n FORM_DEBOUNCE: 200,\n};\n\nexport function setConfig(key, val) {\n config[key] = val;\n}\n\nexport default config;\n","import React, { useCallback, useEffect, useState } from 'react';\n\nimport config from '../config/config';\n\nfunction getValueFromPath(obj, path) {\n // turn 'aaa.qqq[2].bbb[5][3].mmm' into ['aaa', 'qqq', '2', 'bbb', '5', '3', 'mmm']\n const indexes = path.split(/[\\][.]/).filter(Boolean);\n return indexes.reduce((acc, v) => (acc ? acc[v] : acc), obj);\n}\n\nfunction debounce(f, limit) {\n let timeoutId;\n return (...args) => {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(f, limit, ...args);\n };\n}\n\n/* eslint-disable react/prop-types, react/function-component-definition */\n/**\n * A wrapper function that \"prepares\" a tyk-ui form component to be used with the formik library.\n * It handles things like setting the value of the component, change events, error state,\n * and also has a default debounce time for when the change event is triggered.\n */\nconst wrapper = (Component, options) => ({ field, form, ...properties }) => {\n const DEFAULT_DEBOUNCE_TIME_MS = typeof config.FORM_DEBOUNCE === 'number' ? config.FORM_DEBOUNCE : 200;\n const [myValue, setMyValue] = useState(field.value);\n const opts = {\n getOnChangeProps: () => ({}),\n hasIsFieldProp: false,\n ...options,\n };\n\n const executeDebounced = useCallback((() => {\n const fn = (f) => f();\n if (\n properties.debounce === false\n || (config.FORM_DEBOUNCE === false && !properties.debounce)\n ) {\n return fn;\n }\n const timeout = typeof properties.debounce === 'number'\n ? properties.debounce\n : DEFAULT_DEBOUNCE_TIME_MS;\n return debounce(fn, timeout);\n })(), []);\n\n const getValue = (v) => {\n if (v?.target) {\n if (v.target.nodeName === 'INPUT' && (v.target.type === 'checkbox' || v.target.type === 'radio')) {\n return v.target.checked;\n }\n return v.target.value;\n }\n return v;\n };\n\n const onChange = (valueOrEvent) => {\n const value = getValue(valueOrEvent);\n const onChangeProps = opts.getOnChangeProps(value, field, form, properties);\n\n const newValue = onChangeProps.value || properties.value || value;\n executeDebounced(() => {\n if (typeof properties.onChange === 'function') {\n properties.onChange(newValue);\n }\n field.onChange({ target: { name: field.name, value: newValue, ...onChangeProps } });\n });\n setMyValue(newValue);\n };\n\n const formError = (getValueFromPath(form.touched, field.name) || Boolean(form.submitCount))\n && getValueFromPath(form.errors, field.name);\n const error = typeof formError === 'string' ? formError : '';\n\n useEffect(() => {\n setMyValue(field.value);\n }, [field.value]);\n\n // eslint-disable-next-line no-param-reassign\n if (form.status?.disabled) properties.disabled = true;\n\n const componentProps = { ...properties };\n delete componentProps.debounce;\n\n if (Object.hasOwn(componentProps, 'className') && componentProps.className === undefined) delete componentProps.className;\n if (Object.hasOwn(componentProps, 'children') && componentProps.children === undefined) delete componentProps.children;\n\n return (\n \n );\n};\n\nexport default wrapper;\n","import wrapper from '../../../utils/formik';\nimport Checkbox from '../../components/Checkbox';\n\nexport default wrapper(Checkbox, {\n getOnChangeProps: (value) => ({\n checked: value,\n }),\n});\n","import wrapper from '../../../utils/formik';\nimport CodeEditor from '../../components/CodeEditor';\n\nexport default wrapper(CodeEditor);\n","import wrapper from '../../../utils/formik';\nimport Combobox from '../../components/Combobox';\n\nexport default wrapper(Combobox);\n","import wrapper from '../../../utils/formik';\nimport Combobox2 from '../../components/Combobox2';\n\nexport default wrapper(Combobox2);\n","import wrapper from '../../../utils/formik';\nimport DatePicker from '../../components/DatePicker';\n\nexport default wrapper(DatePicker);\n","import wrapper from '../../../utils/formik';\nimport EditableList from '../../components/EditableList';\n\nexport default wrapper(EditableList, {\n getOnChangeProps: (value) => ({ value: value || [] }),\n});\n","import wrapper from '../../../utils/formik';\nimport EditableList2 from '../../components/EditableList2';\n\nexport default wrapper(EditableList2);\n","import wrapper from '../../../utils/formik';\nimport FileInput from '../../components/FileInput';\n\nexport default wrapper(FileInput);\n","import wrapper from '../../../utils/formik';\nimport Input from '../../components/Input';\n\nexport default wrapper(Input, { hasIsFieldProp: true });\n","import wrapper from '../../../utils/formik';\nimport Input2 from '../../components/Input2';\n\nexport default wrapper(Input2);\n","import wrapper from '../../../utils/formik';\nimport MultiSelect from '../../components/Multiselect';\n\nexport default wrapper(MultiSelect);\n","import wrapper from '../../../utils/formik';\nimport Radio from '../../components/Radio';\n\nexport default wrapper(Radio, {\n getOnChangeProps: (value, field, form, properties) => ({\n checked: value === properties.value,\n value: properties.value,\n }),\n});\n","import wrapper from '../../../utils/formik';\nimport Select from '../../components/Select';\n\nexport default wrapper(Select, { hasIsFieldProp: true });\n","import wrapper from '../../../utils/formik';\nimport SelectableList from '../../components/SelectableList';\n\nexport default wrapper(SelectableList);\n","import wrapper from '../../../utils/formik';\nimport Textarea from '../../components/Textarea';\n\nexport default wrapper(Textarea);\n","import wrapper from '../../../utils/formik';\nimport Toggle from '../../components/Toggle';\n\nexport default wrapper(Toggle);\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport CodeEditor from '../../components/CodeEditor';\n\nclass FieldCodeEditor extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.prop;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getInputError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldCodeEditor.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldCodeEditor;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Combobox from '../../components/Combobox';\n\nclass FieldCombobox extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getComboboxError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldCombobox.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldCombobox;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Dropdown from '../../components/Dropdown';\n\nclass FieldDropdown extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n render() {\n const {\n children,\n input,\n ...rest\n } = this.props;\n\n return (\n \n {children}\n \n );\n }\n}\n\nFieldDropdown.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldDropdown;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Pagination from '../../components/Pagination';\n\nfunction FieldPagination(props) {\n const { input, ...rest } = props;\n\n return (\n \n );\n}\n\nFieldPagination.propTypes = {\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldPagination;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Combobox2 from '../../components/Combobox2';\n\nfunction FieldCombobox2(props) {\n const { input, meta, validationmessages } = props;\n\n const getComboboxError = () => {\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n return message;\n };\n\n const handleOnChange = (value) => {\n const { onChange } = input;\n onChange(fromJS(value));\n };\n\n return (\n \n );\n}\n\nFieldCombobox2.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldCombobox2;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport DatePicker from '../../components/DatePicker';\n\nfunction FormDatePicker(props) {\n const {\n input,\n meta,\n validationmessages,\n ...rest\n } = props;\n\n const getDatePickerError = () => {\n const { touched, error } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n }\n\n return message;\n };\n\n const handleOnChange = (value) => {\n const { onChange } = input;\n\n onChange(fromJS(value));\n };\n\n return (\n \n );\n}\n\nFormDatePicker.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FormDatePicker;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport EditableList from '../../components/EditableList';\n\nclass FieldEditableList extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getEditableListError() {\n const { meta, validationmessages } = this.props;\n const { touched, error } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n }\n\n return message;\n }\n\n render() {\n const { ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldEditableList.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldEditableList;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport FileInput from '../../components/FileInput';\n\nclass FieldFileInput extends Component {\n getInputError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldFileInput.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldFileInput;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Input from '../../components/Input';\n\nclass FieldInput extends Component {\n getInputError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldInput.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldInput;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Multiselect from '../../components/Multiselect';\n\nclass FieldMultiselect extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getMultiselectError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldMultiselect.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldMultiselect;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Select from '../../components/Select';\n\nclass FieldSelect extends Component {\n constructor(props) {\n super(props);\n\n this.handleEvent = this.handleEvent.bind(this);\n }\n\n handleEvent(selectValue) {\n const { input } = this.props;\n const { onChange, value } = input;\n\n onChange(fromJS(selectValue !== undefined ? selectValue : value));\n }\n\n getSelectError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldSelect.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldSelect;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport SelectableList from '../../components/SelectableList';\n\nclass FieldSelectableList extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n\n input.onChange(fromJS(value));\n }\n\n render() {\n const { children, ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldSelectableList.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.node,\n ]),\n onChange: PropTypes.func,\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldSelectableList;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Toggle from '../../components/Toggle';\n\nclass FieldToggle extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n\n input.onChange(fromJS(value));\n }\n\n render() {\n const { children, ...props } = this.props;\n\n return (\n \n {children}\n \n );\n }\n}\n\nFieldToggle.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.node,\n ]),\n onChange: PropTypes.func,\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldToggle;\n","import { useEffect, useRef } from 'react';\n\n/** @component */\nexport default function useInterval(callback, delay, ...args) {\n const savedCallback = useRef();\n\n useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n // eslint-disable-next-line consistent-return\n useEffect(() => {\n function tick() {\n savedCallback.current(...args);\n }\n if (delay !== null && delay !== undefined) {\n const id = setInterval(tick, delay);\n return () => clearInterval(id);\n }\n }, [delay]);\n}\n"],"names":["global","this","window","define","module","deps","payload","arguments","length","modules","payloads","original","apply","console","error","trace","ns","root","_require","parentId","callback","lookup","undefined","Object","prototype","toString","call","params","i","l","dep","require","push","packagedModule","normalizeModule","moduleName","indexOf","chunks","split","charAt","slice","join","previous","replace","exports","mod","id","uri","packaged","ace","defineProp","obj","name","val","defineProperty","value","enumerable","writable","configurable","String","startsWith","searchString","position","lastIndexOf","endsWith","subjectString","lastIndex","repeat","count","result","string","includes","str","assign","target","TypeError","output","index","source","keys","forEach","key","values","o","map","k","Array","find","predicate","len","thisArg","kValue","findIndex","item","fill","O","relativeStart","Math","max","min","end","relativeEnd","final","of","deepCopy","copy","isArray","last","a","stringReverse","reverse","stringRepeat","trimBeginRegexp","trimEndRegexp","stringTrimLeft","stringTrimRight","copyObject","copyArray","array","arrayToMap","arr","createMap","props","create","arrayRemove","splice","escapeRegExp","escapeHTML","getMatchOffsets","regExp","matches","offset","deferredCall","fcn","timer","deferred","timeout","cancel","setTimeout","schedule","clearTimeout","isPending","delayedCall","defaultTimeout","_self","delay","supportsLookbehind","RegExp","e","skipEmptyMatch","line","supportsUnicodeFlag","codePointAt","OS","LINUX","MAC","WINDOWS","getOS","isMac","isLinux","_navigator","navigator","os","exec","platform","toLowerCase","ua","userAgent","appName","isWin","isIE","parseFloat","match","isOldIE","isGecko","isMozilla","isOpera","opera","isWebKit","isChrome","isSafari","isEdge","isAIR","isAndroid","isChromeOS","isIOS","test","MSStream","isMobile","strictCSP","useragent","buildDom","parent","refs","txt","document","createTextNode","appendChild","els","ch","el","createElement","options","childIndex","n","className","style","cssText","setAttribute","getDocumentHead","doc","head","getElementsByTagName","documentElement","tag","createElementNS","removeChildren","element","innerHTML","textContent","ownerDocument","createFragment","createDocumentFragment","hasCssClass","addCssClass","removeCssClass","classes","toggleCssClass","add","setCssClass","node","include","hasCssString","sheets","querySelectorAll","removeElementById","getElementById","remove","cssCache","insertPendingStyles","cache","importCssString","container","getRootNode","insertBefore","firstChild","useStrictCSP","importCssStylsheet","rel","href","scrollbarWidth","inner","width","minWidth","height","display","outer","left","overflow","body","noScrollbar","offsetWidth","withScrollbar","clientWidth","removeChild","computedStyle","getComputedStyle","setStyle","styles","property","HAS_CSS_ANIMATION","HAS_CSS_TRANSFORMS","HI_DPI","devicePixelRatio","div","transform","animationName","translate","tx","ty","round","top","dom","get","url","xhr","XMLHttpRequest","open","onreadystatechange","readyState","responseText","send","loadScript","path","s","src","onload","_","isAbort","qualifyURL","inherits","ctor","superCtor","super_","constructor","mixin","implement","proto","EventEmitter","stopPropagation","propagationStopped","preventDefault","defaultPrevented","_emit","_dispatchEvent","eventName","_eventRegistry","_defaultHandlers","listeners","defaultHandler","type","_signal","once","on","newCallback","off","Promise","resolve","setDefaultHandler","handlers","_disabled_","old","disabled","removeDefaultHandler","pop","addEventListener","capturing","removeListener","removeEventListener","removeAllListeners","reportError","msg","data","Error","messages","oop","optionsProvider","setOptions","optList","setOption","getOptions","optionNames","$options","filter","hidden","getOption","opt","warn","forwardTo","handlesSet","set","message","AppConfig","$defaultOptions","defineOptions","initialValue","resetOptions","setDefaultValue","opts","setDefaultValues","optionHash","setMessages","nls","translated","isDark","cssClass","$id","lang","net","customLoader","workerPath","modePath","themePath","basePath","suffix","$moduleUrls","loadWorkerFromBlob","sharedPopups","hasOwnProperty","all","$modes","moduleUrl","component","parts","sep","base","re","setModuleUrl","subst","setLoader","cb","dynamicModules","$loading","$loaded","loadModule","onLoad","loadedModule","moduleType","load","afterLoad","loader","err","reportErrorIfPathIsNotConfigured","then","default","$require","setModuleLoader","version","config","init","scriptOptions","scriptUrl","currentScript","_currentScript","currentDocument","scripts","script","getAttribute","attributes","j","attr","m","m1","toUpperCase","Range","startRow","startColumn","endRow","endColumn","start","row","column","isEqual","range","contains","compare","compareRange","cmp","comparePoint","p","containsRange","intersects","isEnd","isStart","setStart","setEnd","inside","insideStart","insideEnd","isMultiLine","compareStart","compareEnd","compareInside","clipRows","firstRow","lastRow","fromPoints","extend","isEmpty","clone","collapseRows","toScreenRange","session","screenPosStart","documentToScreenPosition","screenPosEnd","moveBy","comparePoints","p1","p2","Keys","ret","MODIFIER_KEYS","KEY_MODS","FUNCTION_KEYS","PRINTABLE_KEYS","parseInt","enter","escape","esc","del","mods","pow","x","keyCodeToString","keyCode","keyString","fromCharCode","activeListenerOptions","pressedKeys","ts","getListenerOptions","createComment","passive","detectListenerOptionsSupport","EventListener","elem","destroy","addListener","destroyer","$toDestroy","stopEvent","getButton","ctrlKey","altKey","shiftKey","button","capture","eventHandler","releaseCaptureHandler","onMouseUp","addMouseWheelListener","deltaX","deltaY","deltaMode","DOM_DELTA_PIXEL","wheelX","wheelY","DOM_DELTA_LINE","DOM_DELTA_PAGE","addMultiMouseDownListener","elements","timeouts","callbackName","startX","startY","clicks","eventNames","onMousedown","detail","isNewClick","abs","clientX","clientY","_clicks","getModifierHash","metaKey","normalizeCommandKeys","hashId","getModifierState","altGr","location","keyLocation","timeStamp","resetPressedKeys","getModifierString","addCommandKeyListener","isOldGecko","lastKeyDownKeyCode","lastDefaultPrevented","postMessage","postMessageId","nextTick","win","messageName","listener","$idleBlocked","onIdle","handler","$idleBlockId","blockIdle","nextFrame","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","bind","$cancelT","lineMode","pasteCancelled","Date","now","event","clipboard","BROKEN_SETDATA","USE_IE_MIME_TYPE","HAS_FOCUS_ARGS","MAX_LINE_LENGTH","KEYS","MODS","valueResetRegex","TextInput","parentNode","host","text","opacity","copied","pasted","inComposition","sendingText","tempStyle","fontSize","commandMode","ignoreFocusEvents","lastValue","lastSelectionStart","lastSelectionEnd","lastRestoreEnd","rowStart","Number","MAX_SAFE_INTEGER","rowEnd","MIN_SAFE_INTEGER","numberOfExtraLines","isFocused","activeElement","setNumberOfExtraLines","number","setAriaOptions","activeDescendant","inline","removeAttribute","role","setLabel","selection","cursor","onBlur","hasFocus","onFocus","resetSelection","$focusScroll","focus","renderer","enableKeyboardAccessibility","preventScroll","isTransformed","getBoundingClientRect","ancestors","t","parentElement","nodeType","blur","curOp","commandName","command","isUserAction","docChanged","selectionChanged","onCompositionEnd","positionToSelection","getLine","newValue","selectionEnd","setSelectionRange","afterContextMenu","selectionStart","getRange","lines","prevLine","nextLine","inputHandler","setInputHandler","getInputHandler","sendText","fromInput","onPaste","extendLeft","extendRight","inserted","restoreStart","restoreEnd","endIndex","shouldReset","onTextInput","onInput","onCompositionUpdate","inputType","execCommand","handleClipboardData","forceIEMime","clipboardData","mime","setData","getData","doCopy","isCut","getCopyText","onCut","onCopy","select","onCommandKey","isAllSelected","selectAll","$readOnly","cancelComposition","useTextareaForIME","markerRange","context","compositionStartOffset","closeTimeout","syncComposition","onContextMenuClose","$isMousePressed","$keepTextAreaAtCursor","$moveTextAreaToCursor","onCompositionStart","getSelectionRange","msGetInputContext","getInputContext","getElement","setCommandMode","readOnly","setReadOnly","setCopyWithEmptySelection","onContextMenu","domEvent","moveToMouse","bringToFront","characterWidth","rect","borderTopWidth","borderLeftWidth","maxTop","bottom","clientHeight","move","textInput","scroller","typingResetTimeout","typing","detectArrowKeys","$mouseHandler","isMousePressed","modifier","up","home","option","down","right","shift","commands","findKeyCommand","addIosSelectionHandler","$setUserAgentForTests","_isMobile","_isIOS","DefaultHandlers","mouseHandler","$clickSelection","editor","onMouseDown","onDoubleClick","onTripleClick","onQuadClick","onMouseWheel","selectByLines","extendSelectionBy","selectByWords","ev","inSelection","pos","getDocumentPosition","mousedownEvent","moveToPosition","time","$focusTimeout","inMultiSelectMode","captureMouse","startSelect","setState","waitForClickSelection","screenToTextCoordinates","y","getShiftKey","selectToPosition","anchor","orientedRange","calcRangeOrientation","setSelectionAnchor","scrollCursorIntoView","unitName","cmpStart","cmpEnd","selectByLinesEnd","unsetStyle","focusWait","ax","ay","bx","by","distance","sqrt","getBracketRange","getWordRange","getLineRange","getAccelKey","$lastScroll","vx","vy","allowed","prevScroll","dt","direction","canScroll","isScrollableBy","speed","scrollBy","stop","selectEnd","selectAllEnd","selectByWordsEnd","extendStatics","__extends","d","b","setPrototypeOf","__proto__","__","__values","Symbol","iterator","next","done","CLASSNAME","Tooltip","isOpen","$element","$parentNode","$init","setText","setHtml","html","setPosition","setClassName","setTheme","theme","show","hide","getHeight","offsetHeight","getWidth","popupManager","PopupManager","popups","addPopup","popup","updatePopups","removePopup","e_1","_a","e_2","_b","sort","priority","visiblepopups","_c","_d","shouldDisplay","visiblepopups_1","visiblepopups_1_1","visiblePopup","doPopupsOverlap","e_2_1","return","e_1_1","popupA","popupB","rectA","rectB","HoverTooltip","_super","_this","lastT","idleTime","lastEvent","onMouseOut","onMouseMove","waitForHover","whiteSpace","pointerEvents","tabIndex","addToEditor","getMouseEventTarget","removeFromEditor","isOutsideOfText","$gatherData","docPos","screenPos","pixelToScreenCoordinates","clippedPos","setDataProvider","showForRange","domNode","startingEvent","$registerCloseEvents","addMarker","textToScreenCoordinates","pageX","maxHeight","labelHeight","labelWidth","spaceBelow","innerHeight","pageY","lineHeight","isAbove","innerWidth","marker","$markerSession","removeMarker","$removeCloseEvents","relatedTarget","currentTarget","classList","GutterHandler","tooltipTimeout","mouseEvent","gutter","$gutterLayer","tooltip","GutterTooltip","hideTooltip","moveTooltip","getRegion","selectTo","srcElement","$tooltipFollowsMouse","getLength","screenRow","$pos","documentToScreenRow","showTooltip","gutterRow","getGutterRow","gutterCell","$lines","querySelector","$gutter","windowWidth","windowHeight","singular","plural","warning","info","annotation","annotationsInRow","$annotations","from","fold","getFoldLine","$showFoldedAnnotations","mostSevereAnnotationInFoldType","annotationsInFold","annotationType","summaryFoldedAnnotations","concat","annotationsToSummaryString","annotationMessages","iconClassName","$useSvgGutterIcons","annotationLabels","tooltipContent","annotations","summary","annotationTypes_1","annotationTypes_1_1","label","MouseEvent","$inSelection","documentRow","selectionRange","DragdropHandler","dragImage","dragSelectionMarker","timerId","dragCursor","dragOperation","isInternal","autoScrollStartTime","cursorMovedTime","cursorPointOnCaretMoved","mouseTarget","counter","onDragInterval","prevCursor","vMovement","hMovement","moveCursorToPosition","calcDistance","layerConfig","editorRect","offsets","nearestXOffset","nearestYOffset","scrollCursor","vScroll","hScroll","autoScroll","addDragMarker","toOrientedRange","getSelectionStyle","clearSelection","$cursorLayer","setBlinking","clearInterval","setInterval","clearDragMarker","fromOrientedRange","$resetCursorStyle","onDragStart","cancelDrag","draggable","self","dataTransfer","effectAllowed","getReadOnly","setDragImage","clearData","getTextRange","onDragEnd","dropEffect","setCursorStyle","onDragEnter","canAccept","getDropEffect","onDragOver","onMouseMoveTimer","onDragLeave","onDrop","moveText","dropData","insert","types","some","copyAllowed","copyModifierState","dragWait","getDragDelay","startDrag","dragWaitEnd","dragReadyEnd","cursorStyle","onMouseDrag","state","dragDrop","$dragEnabled","eventTarget","unselectable","addTouchListeners","touchStartT","longTouchTimer","animationTimer","pressed","contextMenu","mode","animationSteps","clickCount","vX","vY","showContextMenu","handleClick","selected","hasUndo","action","getUndoManager","replaceChild","class","readText","writeText","ontouchstart","ontouchend","onclick","pagePos","leftOffset","scrollLeft","hideContextMenu","handleLongTap","selectWord","touches","h","w","touchObj","setRange","switchToSelectionMode","cursorPos","getPixelPosition","anchorPos","offsetTop","offsetLeft","weightedDistance","diff1","diff2","oldScrollTop","getScrollTop","DefaultGutterHandler","MouseHandler","focusEditor","onMouseEvent","scrollBarV","scrollBarH","Boolean","gutterEl","$dragDelay","character","mousemove","$scrollSpeed","mouseMoveHandler","which","releaseMouse","$mouseMoved","onCaptureEnd","onOperationEnd","onCaptureInterval","$onCaptureMouseMove","endOperation","startOperation","cancelContextMenu","scrollSpeed","dragDelay","dragEnabled","focusTimeout","tooltipFollowsMouse","FoldHandler","getFoldAt","removeFold","expandFold","getUseWrapMode","foldWidgets","onFoldWidgetClick","getParentFoldRangeData","firstRange","addFold","keyUtil","KeyBinding","$editor","$data","$handlers","kb","removeKeyboardHandler","$defaultHandler","addKeyboardHandler","setKeyboardHandler","handleKeyboard","attach","detach","getKeyboardHandler","getStatusText","$callKeyboardHandlers","toExecute","success","args","passEvent","dir","hiLevel","lastArabic","hasUBAT_B","hasUBAT_S","impTab_LTR","impTab_RTL","ET","BN","UnicodeTBL00","UnicodeTBL20","_invertLevel","lev","levels","_array","lo","hi","tmp","_getCharClass","chars","ix","wType","nType","cType","c","rtlCandidate","_getCharacterType","uc","charCodeAt","L","R","EN","ON_R","AN","R_H","B","RLE","DOT","doBidiReorder","textCharTypes","isRtl","logicalFromVisual","bidiLevels","charTypes","impTab","prevState","newClass","newLevel","newState","condPos","_computeLevels","hasBidiCharacters","getVisualFromLogicalIdx","logIdx","rowMap","bidiUtil","bidiRE","BidiHandler","bidiMap","currentRow","charWidths","EOL","showInvisibles","isRtlDir","$isRtl","wrapIndent","EOF","contentWidth","fontMetrics","rtlLineOffset","wrapOffset","isMoveLeftOperation","seenBidi","getValue","isBidiRow","docRow","splitIndex","updateRowLine","updateBidiMap","onChange","delta","getDocumentRow","rowCache","$screenRowCache","$getRowCacheIndex","$docRowCache","getSplitIndex","currentIndex","prevIndex","endOfLine","$useWrapMode","splits","$wrapData","indent","substring","size","isFullWidth","getScreenTabSize","$main","substr","markAsDirty","updateCharacterWidths","$characterSize","bidiCharWidth","$measureCharWidth","setShowInvisibles","setEolChar","eolChar","setContentWidth","isRtlLine","setRtlDirection","getCursorPosition","getSelectionAnchor","$bidiHandler","removeInLine","getPosLeft","col","leftBoundary","logicalIdx","getOverwrite","visualIdx","getSelections","startCol","endCol","level","selections","selColMin","selColMax","isSelected","isSelectedPrev","visIdx","offsetToCol","posX","charWidth","Selection","getDocument","lead","createAnchor","$silent","$cursorChanged","$isEmpty","$keepDesiredColumnOnChange","$desiredColumn","$anchorChanged","getCursor","getPosition","setAnchor","getAnchor","getSelectionLead","isBackwards","$setSelection","MAX_VALUE","anchorRow","anchorColumn","cursorRow","cursorColumn","wasEmpty","wasMultiselect","$moveSelection","mover","moveCursorTo","moveTo","selectUp","moveCursorUp","selectDown","moveCursorDown","selectRight","moveCursorRight","selectLeft","moveCursorLeft","selectLineStart","moveCursorLineStart","selectLineEnd","moveCursorLineEnd","selectFileEnd","moveCursorFileEnd","selectFileStart","moveCursorFileStart","selectWordRight","moveCursorWordRight","selectWordLeft","moveCursorWordLeft","selectAWord","getAWordRange","excludeLastChar","foldLine","selectLine","moveCursorBy","wouldMoveIntoSoftTab","tabSize","isTabStop","getTabSize","getNavigateWithinSoftTabs","firstColumnPosition","screenToDocumentPosition","leadingSpace","getDisplayLine","$useEmacsStyleLineStart","lineEnd","getDocumentLastRowColumnPosition","textEnd","search","moveCursorLongWordRight","rightOfCursor","nonTokenRe","tokenRe","moveCursorLongWordLeft","getFoldStringAt","leftOfCursor","$shortWordEndIndex","whitespaceRe","moveCursorShortWordRight","moveCursorShortWordLeft","$selectLongWords","rows","offsetX","lineWidgets","widget","rowsAbove","rowCount","keepDesiredColumn","moveCursorToScreen","desiredColumn","r","getRangeOfMovements","func","toJSON","rangeCount","ranges","r1","fromJSON","rangeList","toSingleRange","addRange","MAX_TOKEN_COUNT","Tokenizer","rules","states","regExps","matchMappings","ruleRegExps","matchTotal","mapping","defaultToken","flag","splitterRurles","rule","caseInsensitive","unicode","regex","adjustedregex","matchcount","token","groupCount","tokenArray","onMatch","$arrayTokens","$applyToken","digit","removeCapturingGroups","splitRegex","createSplitterRegexp","$setMaxTokenCount","tokens","stack","inChClass","lastCapture","parenOpen","parenClose","square","getLineTokens","startState","currentState","matchAttempts","skipped","consumeLineEnd","merge","unshift","TextHighlightRules","$rules","addRules","prefix","nextState","getRules","embedRules","HighlightRules","escapeRules","append","$embeds","getEmbeds","pushState","popState","normalizeRules","processState","processed","toInsert","stateName","includeName","noEscape","keywordMap","createKeywordMapper","ignoreCase","splitChar","keywords","$keywordList","list","word","getKeywords","$keywords","Behaviour","$behaviours","addBehaviours","behaviours","inherit","getBehaviours","TokenIterator","initialRow","initialColumn","$session","$row","$rowTokens","getTokens","getTokenAt","$tokenIndex","stepBackward","stepForward","getCurrentToken","getCurrentTokenRow","getCurrentTokenColumn","rowTokens","tokenIndex","getCurrentTokenPosition","getCurrentTokenRange","SAFE_INSERT_IN_TOKENS","SAFE_INSERT_BEFORE_TOKENS","contextCache","defaultQuotes","initContext","multiSelect","autoInsertedBrackets","autoInsertedRow","autoInsertedLineEnd","maybeInsertedBrackets","maybeInsertedRow","maybeInsertedLineStart","maybeInsertedLineEnd","getWrapped","opening","closing","rowDiff","CstyleBehaviour","getWrapBehavioursEnabled","isSaneInsertion","braces","recordAutoInsert","recordMaybeInsert","$findOpeningBracket","isAutoInsertedClosing","popAutoInsertedClosing","isMaybeInsertedClosing","clearMaybeInsertedClosing","openBracePos","findMatchingBracket","next_indent","$getIndent","getTabString","quotes","$mode","$quotes","lineCommentStart","quote","leftChar","rightChar","rightToken","pair","stringBefore","stringAfter","wordRe","isWordBefore","isWordAfter","pairQuotesAfter","$pairQuotesAfter","charBefore","closeDocComment","$matchTokenType","iterator2","bracket","wordChars","code","Mode","$defaultBehaviour","getTokenizer","$tokenizer","$highlightRules","$highlightRuleConfig","blockComment","toggleCommentLines","ignoreBlankLines","shouldRemove","minIndent","Infinity","insertAtTabStop","regexpStart","getUseSoftTabs","uncomment","shouldInsertSpace","commentWithSpace","comment","insertInLine","testRemove","before","after","spaces","lineCommentEnd","regexpEnd","iter","fun","minEmptyLength","floor","toggleBlockComment","colDiff","initialRange","startRange","endRange","getNextLineIndent","tab","checkOutdent","input","autoOutdent","createWorker","createModeDelegates","delegations","scope","functionName","$delegator","method","language","transformAction","param","$behaviour","completionKeywords","ruleItr","aLength","$createKeywordList","getCompletions","score","meta","applyDelta","docLines","doNotValidate","Anchor","$onChange","$clipPositionToDocument","point","moveIfEqual","deltaIsInsert","deltaRowShift","deltaColShift","deltaStart","deltaEnd","$pointsInOrder","$getTransformedPoint","$insertRight","noClip","point1","point2","equalPointsInOrder","bColIsAfter","Document","textOrLines","insertMergedLines","setValue","getAllLines","getNewLineCharacter","$detectNewLine","$autoNewLine","$newLineMode","setNewLineMode","newLineMode","getNewLineMode","isNewLine","getLines","getLinesForRange","insertLines","insertFullLines","removeLines","removeFullLines","insertNewLine","$split","clonePos","$clipPosition","deleteFirstNewLine","deleteLastNewLine","deletedLines","removeNewLine","applyDeltas","deltas","revertDeltas","revertDelta","isInsert","$splitAndapplyLargeDelta","$safeApplyDelta","docLength","MAX","to","chunk","indexToPosition","newlineLength","positionToIndex","BackgroundTokenizer","tokenizer","running","currentLine","$worker","workerStart","endLine","startLine","processedLines","$tokenizeRow","fireUpdateEvent","setTokenizer","setDocument","first","scheduleStart","$updateOnChange","getState","cleanup","SearchHighlight","clazz","setRegexp","update","markerLayer","renderedMarkerRanges","MAX_RANGES","rangeToAddMarkerTo","rangeAsString","drawSingleLineMarker","UndoManager","$maxRev","$fromUndo","$undoDepth","reset","addSession","allowMerge","$lastDelta","$keepRedoStack","$redoStack","lastDeltas","undoStackLength","$undoStack","$rev","addSelection","rev","startNewGroup","markIgnored","ignore","getSelection","getRevision","getDeltas","getChangedRanges","getChangedLines","undo","dontSelect","deltaSet","swapped","swapGroups","rearrangeUndoStack","$redoStackBaseRev","undoSelectionRange","undoChanges","$syncRev","redo","diff","redoStack","deltaSets","moveDeltasByOne","rebaseRedoStack","redoSelectionRange","redoChanges","nextDelta","mark","canUndo","canRedo","bookmark","isAtBookmark","json","$prettyPrint","stringifyDelta","hasRedo","isClean","markClean","stringifyRange","swap","d1","d2","i1","i2","ds1","ds2","selectionBefore","selectionAfter","xform","c1","splitDelta","shiftPos","rowsBefore","otherLines","cloneDelta","xformed","FoldLine","foldData","folds","setFoldLine","shiftRow","sameRow","containsRow","walk","lastEnd","isNewRow","placeholder","getNextFoldTo","kind","addRemoveChars","log","foldBefore","newFoldLine","foldLineNext","idxToPosition","idx","lastFoldEndColumn","RangeList","$bias","pointIndex","excludeEdges","startIndex","addList","removed","substractPoint","containsPoint","rangeAtPoint","clipped","removeAll","lineDif","Fold","subFolds","subFold","collapseChildren","addSubFold","consumePoint","afterStart","firstConsumed","consumedFolds","restoreRange","restorePoint","Folding","side","getFoldsInRange","foldLines","$foldData","foundFolds","getFoldsInRangeList","getAllFolds","trim","lastFold","startFoldLine","getNextFoldLine","getFoldedRowCount","$addFoldLine","added","$clipRangeToDocument","startFold","endFold","removeFolds","$updateWrapData","$updateRowLengthCache","$modified","addFolds","$updating","cloneFolds","foldAll","expandFolds","unfold","expandInner","outermostFolds","isRowFolded","startFoldRow","getRowFoldEnd","getRowFoldStart","getFoldDisplayLine","textLine","lastColumn","$cloneFoldData","fd","toggleFold","tryToUnfold","bracketPos","getCommentFoldRange","depth","getFoldWidget","getFoldWidgetRange","foldToLevel","foldAllComments","$foldStyles","$foldStyle","setFoldStyle","$foldMode","$setFolding","foldMode","$updateFoldWidgets","$tokenizerUpdateFoldWidgets","updateFoldWidgets","tokenizerUpdateFoldWidgets","ignoreCurrent","fw","children","siblings","$toggleFoldWidget","toggleFoldWidget","toggleParent","BracketMatch","chr","charBeforeCursor","$findClosingBracket","getMatchingBracketRanges","bracketsRegExp","$brackets","typeRe","openBracket","valueIndex","closingBracket","valueLength","getMatchingTags","$findTagName","$findClosingTag","$findOpeningTag","found","backward","prevToken","currentTag","openTagStart","openTagName","foundOpenTagEnd","openTagEnd","closeTagStart","closeTagName","closeTagEnd","openTag","closeTag","stepCount","tmpToken","TextMode","EditSession","$breakpoints","$decorations","$frontMarkers","$backMarkers","$markerId","$undoSelect","$uid","bgTokenizer","onChangeFold","setMode","destroyed","resetCaches","$resetRowCache","cacheArray","low","mid","$rowLengthCache","removedFolds","$updateInternalDataOnChange","$undoManager","mergeUndoDeltas","$informUndoManager","setUndoManager","JSON","parse","undoManager","history","editSession","setAnnotations","setBreakpoints","breakpoints","setScrollLeft","setScrollTop","scrollTop","$scrollLeft","$scrollTop","$syncInformUndoManager","markUndoGroup","$defaultUndoManager","setUseSoftTabs","$useSoftTabs","$indentWithTabs","setTabSize","$tabSize","setNavigateWithinSoftTabs","navigateWithinSoftTabs","$navigateWithinSoftTabs","setOverwrite","overwrite","$overwrite","toggleOverwrite","addGutterDecoration","removeGutterDecoration","getBreakpoints","clearBreakpoints","setBreakpoint","clearBreakpoint","inFront","addDynamicMarker","markerId","getMarkers","highlight","$searchHighlight","highlightLines","getAnnotations","clearAnnotations","inToken","wordRange","setUseWorker","useWorker","getUseWorker","$useWorker","onReloadTokenizer","$onChangeMode","$modeId","$isPlaceholder","oldMode","$stopWorker","$startWorker","attachToSession","wrapMethod","$wrapMethod","foldingRules","terminate","getMode","isNaN","getScrollLeft","getScreenWidth","$computeWidth","getLineWidgetMaxWidth","screenWidth","lineWidgetsWidth","lineWidgetWidth","force","$wrapLimit","longestScreenLine","foldIndex","foldStart","$getStringScreenWidth","$getUndoSelection","setUndoSelect","enable","isUndo","fromRange","toPosition","toRange","collDiff","oldStart","newStart","indentRows","indentString","outdentRows","rowRange","deleteRange","$moveLines","$clipRowToDocument","moveLinesUp","moveLinesDown","duplicateLines","$clipColumnToRow","setUseWrapMode","useWrapMode","setWrapLimitRange","$wrapLimitRange","adjustWrapLimit","desiredLimit","$printMargin","limits","wrapLimit","$constrainWrapLimit","getWrapLimit","setWrapLimit","limit","getWrapLimitRange","foldLineBefore","wrapData","walkTokens","$getDisplayTokens","PLACEHOLDER_START","PLACEHOLDER_BODY","$computeWrapSplits","displayLength","lastSplit","lastDocSplit","isCode","$wrapAsCode","indentedSoftWrap","$indentedSoftWrap","maxIndent","addSplit","indentation","SPACE","TAB","TAB_SPACE","getWrapIndent","minSplit","PUNCTUATION","CHAR_EXT","CHAR","maxScreenColumn","screenColumn","getRowLength","getRowLineCount","getRowWrapIndent","getScreenLastRowColumn","documentToScreenColumn","getDocumentLastRowColumn","docColumn","getRowSplitData","screenToDocumentRow","screenToDocumentColumn","rowLength","doCache","maxRow","foldStartRow","wrapRow","screenRowOffset","getScreenLength","screenRows","$getWidgetScreenLength","$setFontMetrics","fm","$enableVarChar","getCharacterWidth","wrap","$wrap","firstLineNumber","useSoftTabs","foldStyle","Search","$matchIterator","sr","sc","er","ec","skipCurrent","findAll","needle","$assembleRegExp","$isMultiLine","prevRange","replacement","preserveCase","$disableFakeMultiline","caseSensitive","$supportsUnicodeFlag","wholeWord","wordBoundary","firstChar","needleArray","lastChar","addWordBoundary","$assembleMultilineRegExp","backwards","forEachInLine","MultiHashHandler","$singleCommand","commandKeyBinding","addCommands","addCommand","removeCommand","bindKey","_buildKeyHash","keepCommand","ckb","keyId","cmdGroup","keyPart","chain","binding","parseKeys","_addCommandToBinding","removeCommands","bindKeys","keyList","$keyChain","isDefault","HashHandler","CommandManager","byName","$checkCommandState","isAvailable","returnValue","toggleRecording","$inReplay","recording","macro","$addCommandToMacro","oldMacro","replay","trimMacro","mac","description","showSettingsMenu","showErrorMarker","scrollIntoView","centerSelection","gotoLine","prompt","$type","multiSelectAction","getAllRanges","findNext","findPrevious","aceCommandGroup","navigateFileStart","navigateUp","times","navigateFileEnd","navigateDown","navigateWordLeft","navigateLineStart","navigateLeft","navigateWordRight","navigateLineEnd","navigateRight","selectPageDown","scrollPageDown","gotoPageDown","selectPageUp","scrollPageUp","gotoPageUp","jumpToMatching","$copyWithEmptySelection","$handlePaste","duplicateSelection","sortLines","modifyNumber","copyLinesUp","copyLinesDown","removeToLineStart","removeToLineEnd","removeWordLeft","removeWordRight","blockOutdent","blockIndent","splitLine","transposeLetters","transposeSelections","autoIndent","openLink","firstLineEndCol","selectedCount","insertLine","curLine","newRanges","exitMultiSelectMode","LineWidgets","widgetManager","updateOnChange","renderWidgets","measureWidgets","_changedWidgets","$onChangeEditor","updateOnFold","_inDocument","removeLineWidget","$updateRows","noWidgets","$oldWidget","$registerLineWidget","addLineWidget","zIndex","coverGutter","pixelHeight","$fold","onWidgetChanged","w1","getWidgetsAtRow","updateFull","changedWidgets","fixedWidth","ceil","coverLine","gutterWidth","fullWidth","padding","scrollBar","GutterKeyboardHandler","gutterLayer","activeRowIndex","activeLane","annotationTooltip","$onGutterKeyDown","$blurGutter","isRowVisible","scrollToLine","$rowToRowIndex","$cursorCell","nearestFoldIndex","$findNearestFoldWidget","nearestAnnotationIndex","$findNearestAnnotation","$focusAnnotation","$focusFoldWidget","$handleGutterKeyboardInteraction","GutterKeyboardEvent","lane","$switchLane","$rowIndexToRow","rowFoldingWidget","$blurFoldWidget","cells","childNodes","$moveFoldWidgetDown","$moveAnnotationDown","$moveFoldWidgetUp","$moveAnnotationUp","$blurAnnotation","$isFoldWidgetVisible","isRowFullyVisible","isIconVisible","$getFoldWidget","$isAnnotationVisible","$getAnnotation","foldWidget","keyboardFocusClassName","desinationLane","annotationIndex","foldWidgetIndex","cell","gutterKeyboardHandler","getKey","getRow","isInAnnotationLane","isInFoldLane","defaultCommands","Editor","getContainerElement","getTextAreaContainer","textarea","keyBinding","$search","$historyTracker","$initOperationListeners","_$emitInputEvent","setSession","$opResetTimer","$lastSel","commandEvent","prevOp","previousCommand","scrollSelectionIntoView","animateScrolling","sel","$mergeUndoDeltas","prev","mergeableCommands","$mergeableCommands","shouldMerge","mergeNextCommand","sequenceStartTime","keyboardHandler","$keybindingId","oldSession","$onDocumentChange","$onTokenizerUpdate","$onChangeTabSize","$onChangeWrapLimit","$onChangeWrapMode","$onChangeFold","$onChangeFrontMarker","$onChangeBackMarker","$onChangeBreakpoint","$onChangeAnnotation","$onCursorChange","$onScrollTopChange","$onScrollLeftChange","$onSelectionChange","onDocumentChange","onChangeMode","onTokenizerUpdate","onChangeTabSize","onChangeWrapLimit","onChangeWrapMode","onChangeFrontMarker","onChangeBackMarker","onChangeBreakpoint","onChangeAnnotation","onCursorChange","onScrollTopChange","onScrollLeftChange","onSelectionChange","oldEditor","getSession","resize","onResize","getTheme","getFontSize","setFontSize","$highlightBrackets","$highlightPending","$bracketHighlight","markerIds","$getDirectionForHighlight","tagNamesRanges","getMatching","markerType","getHighlightIndentGuides","$textLayer","$highlightIndentGuide","$isFocused","showCursor","visualizeFocus","hideCursor","visualizeBlur","$cursorChange","updateCursor","$updateHighlightActiveLine","updateLines","scrollToY","scrollToX","$highlightActiveLine","$selectionStyle","$selectionColorConflict","$maxLines","$minLines","$highlightLineMarker","$selectionMarker","$highlightSelectedWord","$getSelectionHighLightRegexp","wordWithBoundary","updateFrontMarkers","updateBackMarkers","updateBreakpoints","updateText","getSelectedText","nl","copyLine","inVirtualSelectionMode","isFullLine","getBehavioursEnabled","lineState","shouldOutdent","$enableAutoIndent","lineIndent","selectedRange","currIndent","prevLineState","composition","applyComposition","forEachSelection","setScrollSpeed","getScrollSpeed","setDragDelay","setSelectionStyle","setHighlightActiveLine","shouldHighlight","getHighlightActiveLine","setHighlightGutterLine","getHighlightGutterLine","setHighlightSelectedWord","getHighlightSelectedWord","setAnimatedScroll","shouldAnimate","getAnimatedScroll","getShowInvisibles","setDisplayIndentGuides","getDisplayIndentGuides","setHighlightIndentGuides","setShowPrintMargin","showPrintMargin","getShowPrintMargin","setPrintMarginColumn","getPrintMarginColumn","setBehavioursEnabled","enabled","setWrapBehavioursEnabled","setShowFoldWidgets","getShowFoldWidgets","setFadeFoldWidgets","fade","getFadeFoldWidgets","new_range","setGhostText","removeGhostText","originalRange","$getSelectedRows","getNumberAt","_numberRx","amount","charRange","isFinite","nr","fp","decimals","nnr","toFixed","replaceRange","toggleWord","currWordStart","wordParts","curLength","itLength","that","reg","wordPairs","$toggleWordPairs","negate","firstCondition","res","findLinkAt","columnPosition","previousPosition","currentPosition","wordParts_1","wordParts_1_1","endPoint","moved","totalDiff","rangeIndex","subRows","compositionState","showComposition","setCompositionText","hideComposition","getFirstVisibleRow","getLastVisibleRow","getFirstFullyVisibleRow","getLastFullyVisibleRow","$getVisibleRowCount","getScrollBottomRow","getScrollTopRow","$moveByPage","scrollToRow","center","animate","alignCursor","getCursorPositionScreen","expand","tokenCount","matchType","bracketType","brackets","tagsRanges","lineNumber","navigateTo","replaced","$tryReplace","replaceAll","getLastSearchOptions","newRange","revealRange","setAutoScrollEditorIntoView","shouldScroll","$scrollAnchor","scrollAnchor","onChangeSelection","onBeforeRender","onAfterRender","searchBox","$pixelPos","$cursorStyle","cursorLayer","setSmoothBlinking","isBlinking","selectionStyle","highlightActiveLine","highlightSelectedWord","copyWithEmptySelection","behavioursEnabled","wrapBehavioursEnabled","enableAutoIndent","autoScrollEditorIntoView","showLineNumbers","setShowLineNumbers","$loop","CHANGE_GUTTER","$relativeLineNumbers","relativeNumberRenderer","relativeLineNumbers","$showLineNumbers","$updatePlaceholder","hasValue","$composition","placeholderNode","$placeholder","content","blurCommand","focusOnEnterKeyup","customScrollbar","hScrollBarAlwaysVisible","vScrollBarAlwaysVisible","highlightGutterLine","animatedScroll","printMarginColumn","printMargin","fadeFoldWidgets","showFoldWidgets","displayIndentGuides","highlightIndentGuides","showGutter","fontFamily","maxLines","minLines","scrollPastEnd","fixedWidthGutter","hasCssTransforms","maxPixelHeight","useResizeObserver","useSvgGutterIcons","showFoldedAnnotations","getText","lastLineNumber","$renderer","Lines","canvasHeight","cellCache","$offsetCoefficient","moveContainer","firstRowScreen","pageChanged","oldConfig","newConfig","computeLineTop","screenTop","screenPage","computeLineHeight","$cacheCell","fragment","insertAdjacentElement","createCell","initElement","Gutter","parentEl","$showFoldWidgets","$updateAnnotations","rowInfo","annoText","annoType","gutterOffset","oldLastRow","$updateCursorRow","onCreateCell","$renderCell","$updateGutterWidth","gutterRenderer","$firstLineNumber","lastLineText","$fixedWidth","$padding","$computePadding","$highlightGutterLine","$cursorRow","updateLineHighlight","scrollLines","$renderLines","textNode","annotationNode","annotationIconNode","decorations","rowText","foldClass","isClosedFold","foldAnnotationClass","annotationInFold","foldRange","getShowLineNumbers","paddingLeft","borderRightWidth","paddingRight","Marker","setPadding","setMarkers","markers","elt","css","$getTop","drawFullLineMarker","drawScreenLineMarker","drawTextMarker","drawMultiLineMarker","childElementCount","lastChild","stringBuilder","extraStyle","curr","lineRange","range1","drawBidiSingleLineMarker","radiusClass","extraLength","textTokens","Set","isTextToken","tokenType","has","Text","$updateEolChar","EOL_CHAR","EOL_CHAR_LF","EOL_CHAR_CRLF","margin","getLineHeight","$fontMetrics","measure","$pollSizeChanges","checkForSizeChanges","$pollSizeChangesTimer","$computeTabString","showSpaces","showTabs","showEOL","$highlightIndentGuides","tabStr","$tabStrings","span","TAB_CHAR","$indentGuideRe","spaceClass","spaceContent","SPACE_CHAR","tabClass","tabContent","lineElements","lineElementsIdx","heightChanged","lineElement","$renderLine","$renderLinesFragment","lineEl","$useLineGroups","$renderToken","valueFragment","simpleSpace","controlCharacter","cjkSpace","cjk","cloneNode","renderIndentGuide","cols","$highlightIndentGuideMarker","indentLevel","initialIndent","elementIndentLevel","currentIndent","$renderHighlightIndentGuide","$clearActiveIndentGuide","$setIndentGuideActive","$createLineElement","$renderWrappedLine","splitChars","$renderOverflowMessage","$renderSimpleLine","overflowEl","$getFoldLineTokens","lastLineEl","invisibleEl","EOF_CHAR","renderTokens","addTokens","Cursor","isVisible","blinkInterval","smoothBlinking","cursors","addCursor","$updateCursors","$updateOpacity","$startCssAnimation","animationDuration","$isAnimating","$stopCssAnimation","blinking","restartTimer","setBlinkInterval","removeCursor","intervalId","timeoutId","$isSmoothBlinking","blink","onScreen","isCursorInView","pixelPos","$selectionMarkers","cursorIndex","drawCursor","$setOverwrite","MAX_SCROLL_H","Scrollbar","classSuffix","setVisible","skipEvent","onScroll","coeff","VScrollBar","scrollHeight","$scrollbarWidth","$minWidth","setHeight","setScrollHeight","setInnerHeight","HScrollBar","setWidth","setInnerWidth","setScrollWidth","ScrollBar","ScrollBarV","ScrollBarH","VScrollWidth","HScrollHeight","eType","mousePageY","startTop","thumbTop","scrollTopFromThumbTop","thumbHeight","pageHeight","viewHeight","slideHeight","scrollWidth","mousePageX","startLeft","thumbLeft","scrollLeftFromThumbLeft","thumbWidth","pageWidth","viewWidth","slideWidth","RenderLoop","onRender","pending","changes","$recursionLimit","_flush","change","clear","CHAR_COUNT","USE_OBSERVER","ResizeObserver","FontMetrics","$setMeasureNodeStyles","$measureNode","$addObserver","isRoot","visibility","font","$measureSizes","fontWeight","boldSize","charSizes","allowBoldFonts","$observer","observe","setPolling","disconnect","$getZoom","zoom","$initTransformMeasureNodes","transformCoordinates","clientPos","elPos","solve","l1","l2","det","sub","mul","m2","ut","u","f","Decorator","canvas","pixelRatio","heightRatio","canvasWidth","minDecorationHeight","halfMinDecorationHeight","colors","dark","light","$updateDecorators","ctx","getContext","clearRect","priorities","compensateFold","compensateFoldRows","currentY","y1","y2","yCenter","fillStyle","fillRect","GutterLayer","MarkerLayer","TextLayer","CursorLayer","HScrollBarCustom","VScrollBarCustom","editorCss","VirtualRenderer","onGutterResize","$markerBack","textLayer","$markerFront","$horizScroll","$vScroll","$scrollAnimation","scrollMargin","updateCharacterSize","$size","scrollerHeight","scrollerWidth","$dirty","minHeight","v","$renderChanges","defaultView","CHANGE_FULL","$addResizeObserver","$allowBoldFonts","$updatePrintMargin","onChangeNewLineMode","$changedLines","CHANGE_LINES","CHANGE_TEXT","CHANGE_MARKER","updateFontSize","$updateSizeAsync","resizing","$updateCachedSize","$resizeTimer","$changes","$customScrollbar","$updateCustomScrollbar","$extraHeight","oldSize","CHANGE_SIZE","CHANGE_SCROLL","$showGutter","$computeLayerConfig","availableWidth","$showPrintMargin","$printMarginColumn","$animatedScroll","getShowGutter","setShowGutter","$printMarginEl","containerEl","posTop","posLeft","setScrollMargin","sm","setMargin","getHScrollBarAlwaysVisible","$hScrollBarAlwaysVisible","setHScrollBarAlwaysVisible","alwaysVisible","getVScrollBarAlwaysVisible","$vScrollBarAlwaysVisible","setVScrollBarAlwaysVisible","$updateScrollBarV","$scrollPastEnd","$updateScrollBarH","freeze","$frozen","unfreeze","CHANGE_H_SCROLL","st","$scrollDecorator","$updateLines","CHANGE_CURSOR","CHANGE_MARKER_FRONT","CHANGE_MARKER_BACK","$autosize","desiredHeight","$maxPixelHeight","$gutterWidth","hideScrollbars","longestLine","$getLongestLine","horizScroll","hScrollChanged","vScrollBefore","vScrollChanged","firstRowHeight","lineCount","charCount","$viewMargin","newLeft","newTop","topMargin","bottomMargin","$stopAnimation","currentTop","currentLeft","twoCharsWidth","alignment","$calcSteps","fromValue","toValue","x_min","STEPS","steps","initialScroll","oldSteps","$timer","endAnimation","scrollTo","canvasPos","$hasCssTransforms","$blockCursor","$useTextareaForIME","addToken","removeExtraToken","insertPosition","textLines","$ghostText","$ghostTextWidget","pixelPosition","ghostTextHeight","newToken","$themeId","$theme","setMouseCursor","attachToShadowRoot","$resizeObserver","contentRect","workerUrl","Worker","blob","Blob","blobBuilder","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","getBlob","$workerBlob","blobURL","URL","webkitURL","createObjectURL","WorkerClient","worker","$createWorkerFromOldConfig","$sendDeltaQueue","changeListener","onMessage","callbackId","callbacks","onmessage","topLevelNamespaces","classname","importScripts","nameToUrl","toUrl","normalizePath","$normalizePath","tlns","deltaQueue","onerror","$doc","cmd","emit","ex","attachToDocument","q","UIWorkerClient","main","emitSync","sender","messageBuffer","workerClient","processNext","setEmitSync","Main","PlaceHolder","others","mainClass","othersClass","$onUpdate","onUpdate","$others","undoStack","$undostack","$undoStackDepth","setup","other","showOtherMarkers","othersActive","hideOtherMarkers","updateAnchors","lengthDiff","inMainRange","distanceFromStart","newPos","otherPos","updateMarkers","updateMarker","undosRequired","isSamePoint","alt","ctrl","accel","selectionMode","isMultiSelect","mouseX","mouseY","screenAnchor","screenCursor","$enableJumpToDef","$blockSelectEnabled","addSelectionMarker","oldRange","removeSelectionMarker","tmpSel","rectSel","blockSelect","newCursor","removeSelectionMarkers","rectangularRangeBlock","updateSelectionMarkers","onSelectionInterval","selectMoreLines","selectMore","joinSelections","splitIntoLines","alignCursors","multiSelectCommands","getSelectionMarkers","$blockChangeEvents","$onAddRange","$onRemoveRange","mergeOverlappingRanges","lastRange","$initRangeList","toggleBlockSelection","includeEmptyLines","xBackwards","startOffsetX","endOffsetX","docEnd","yBackwards","MultiSelect","$multiselectOnSessionChange","$onMultiSelect","$onSingleSelect","onSessionChange","$checkMultiselectChange","altCursor","altDown","addAltCursorListeners","selectionMarkerCount","markerList","$onMultiSelectExec","inVirtualMode","keepOrder","$byLines","cmdResult","anim","buf","additive","skip","screenLead","toRemove","words","stopAtFirst","sameRowRanges","maxCol","minSpace","spaceOffsets","spaceOffset","fr","lr","guessRange","$reAlignText","forceLeft","startW","textW","endW","isLeftAligned","isRightAligned","alignLeft","enableMultiselect","enableBlockSelect","FoldMode","foldingStartMarker","foldingStopMarker","indentationBlock","startLevel","openingBracketBlock","closingBracketBlock","oldWidget","gutterAnno","comparator","binarySearch","matched","findAnnotations","arrow","onmousedown","Renderer","edit","_id","env","tagName","oldNode","createEditSession","is","singletonTags","blockTags","formatOptions","lineBreaksAfterCommasInCurlyBlock","beautify","nextToken","tabString","breakBefore","spaceBefore","spaceAfter","lastDepth","lastIndent","unindent","roundDepth","curlyDepth","curRow","rowsToAdd","indentNextLine","inTag","inCSS","inBlock","parents","caseBody","trimNext","trimLine","trimCode","trimRight","trimLeft","searchboxCss","SearchBox","showReplaceForm","spellcheck","title","setEditor","searchRange","$syncOptions","$initElements","sb","replaceBox","searchOption","replaceOption","regExpOption","caseSensitiveOption","wholeWordOption","searchInput","replaceInput","searchCounter","activeInput","$searchBarKb","setSearchRange","searchRangeMarker","checked","noMatch","updateCounter","MAX_COUNT","findPrev","replaceAndFindNext","active","$closeSearchBarKb","isReplace","supportType","supportFunction","supportConstant","supportConstantColor","supportConstantFonts","numRe","pseudoElements","pseudoClasses","CssHighlightRules","keywordMapper","strings","escapes","MatchingBraceOutdent","propertyMap","CssCompletions","completionsDefined","defineCompletions","inParens","getPropertyValueCompletions","getPropertyCompletions","skipSemicolon","caption","snippet","CssBehaviour","BaseFoldMode","commentRegex","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","forceMultiline","getCommentRegionBlock","getSectionRange","startIndent","subRange","CStyleFoldMode","$outdent","$completer","snippetFileId","DocCommentHighlightRules","getTagRule","getStartRule","getEndRule","GolangHighlightRules","stringEscapeRe","tokenizedLine","JsDocCommentHighlightRules","identifierRe","JavaScriptHighlightRules","escapedRe","comments","noES6","no_regex","jsx","JSX","tagRegex","jsxTag","jsxJsRule","jsxAttributes","reference","endState","results","JsonHighlightRules","JsxHighlightRules","buildinConstants","reserved","PythonHighlightRules","strPre","strRawPre","strFormatPre","strRawFormatPre","integer","intPart","pointFloat","floatNumber","stringEscape","PythonFoldMode","outdents","XmlHighlightRules","normalize","processing_instruction","doctype","int_subset","cdata","attr_reference","tag_whitespace","whitespace","attribute_value","embedTagRules","XmlBehaviour","rightSpace","tokenEndColumn","tokenRow","tokenColumn","voidElements","nextIndent","optionalEndTags","Tag","selfClosing","_getFirstTagInLine","_findEndTagInLine","getCommentFoldWidget","tags","XmlFoldMode","createRoot","hydrateRoot","hasElementType","Element","hasMap","Map","hasSet","hasArrayBuffer","ArrayBuffer","isView","equal","it","entries","flags","valueOf","$$typeof","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","amdD","getter","__esModule","definition","prop","toStringTag","nmd","paths","createContext","Icon","family","rest","getCSSClasses","propTypes","isRequired","ItemTrigger","collapsed","toggleChange","useContext","iconType","trigger","onClick","AccordionItem","collapsedProp","ref","setCollapsed","useState","useMemo","expandToContent","contextValue","Provider","defaultProps","forwardRef","AccordionItemHeader","usearrowastrigger","getSize","componentSize","setComponentSize","current","handleResize","useCallback","useLayoutEffect","resizeObserver","savedHandler","useRef","useEffect","eventListener","Collapsible","contentContainer","collapseWrapper","refContainerSize","contentContainerStyle","setContentContainerStyle","onWindowResize","CSSTransition","onEnter","onExit","in","classNames","AccordionItemContent","Accordion","Item","Header","Content","Button","customButton","iconFamily","iconPosition","iconOnly","noStyle","getCssClasses","cssClasses","sizeClass","disabledClass","displayClass","themeClass","iconOnlyClass","noStyleClass","getButtonIcon","buttonType","cloneElement","getButtonType","ButtonGroup","CardHeader","CardBody","align","CardFooter","CardTitle","CardTitleGroup","CardSubTitle","CardSummary","CardTitleIcon","Card","Body","Footer","Title","TitleGroup","SubTitle","Summary","wait","immediate","callNow","Loader","withbackground","Message","onClose","noMargin","Chart","areaStyleColors","dataLoaded","hasData","series","zoomStart","zoomEnd","seriesConfig","noDataComponent","noDataComponentProp","zoomColors","tykChartInstance","setTykChartInstance","chartWrapperRef","lineBarChart","defaultOpts","fromJS","color","toolbox","orient","itemSize","showTitle","feature","dataZoom","dataBackground","lineStyle","areaStyle","handleStyle","textStyle","borderColor","fillerColor","legend","axisPointer","grid","containLabel","xAxis","boundaryGap","axisLine","axisTick","yAxis","axisLabel","animationEasing","seriesDefault","LinearGradient","smooth","symbolSize","pieChart","formatter","radius","avoidLabelOverlap","animationType","labelLine","normal","length2","geoChart","dispose","eventCallBack","debouncedMethod","debounce","getZr","prevInstance","prevOption","prevType","prevSeries","equals","selectedType","selectedOptions","selectedSeries","finalOpts","mergeDeep","toJS","entry","seriesData","buildChartOptions","dispatchAction","dataZoomSelectActive","seriesIndex","dataIndex","prevZoomStart","prevZoomEnd","startValue","endValue","chartHasData","getStyle","memo","savedCallback","ToastMessage","handleClose","itemIndex","ToastContainer","notify","updateNotifications","msgID","random","prevMessages","onMessageClosed","newMessages","fn","createNotification","render","bindNotify","danger","CopyToClipboard","txtRef","createRef","onKeyUp","ModalFooter","ModalBody","Modal","disableCloseCommands","opened","showBackdrop","restProps","modalClasses","backdropClasses","themeIcon","onKeyDown","Confirm","confirmBtnText","cancelBtnText","setOpen","setCallback","cancelCallback","setCancelCallback","callbackFunc","cancelCallbackFunc","beforeCallback","FixedWrapper","showShadow","fixedWrapperRef","attachShadow","scrollY","debouncedAttachShadow","InfiniteScroller","hasMore","initialLoad","loadMore","pageNumber","refChild","showLoader","setShowLoader","containerRef","refChildSize","shouldLoad","loadMoreData","prevPageNumber","scrollHandler","prevRefChildSize","PropTypes","oneOfType","arrayOf","bool","instanceOf","FloatingContainer","forceDisplay","displayAxis","preferredPosition","infiniteScrollerConfig","localRef","floatingContainerRef","contentWrapperRef","viewportOffset","schedulePositionUpdate","topSpace","bottomSpace","leftSpace","hasTopSpace","hasBottomSpace","hasLeftSpace","hasRightSpace","positionedVerticallyFitsInViewport","positionedHorizontallyFitsInViewport","getDisplayForVertical","getDisplayForHorizontal","getDisplayWhereItFits","determineDisplay","targetPosition","vpLeft","vpTop","leftPos","auto","matchElement","matchStart","matchEnd","topPos","maxWidth","getStylesForTop","getStylesForBottom","getStylesForLeft","getStylesForRight","adjustPosition","createPortal","InfoNote","ListItem","List","labelwidth","flexBasis","styleCopy","structuredClone","getListStyle","NavBar","pre","subtitle","withTabs","subtitleContent","NavigationItem","Navigation","PortalContext","PanelBody","noPadding","Consumer","portalContext","collapsable","PanelFooter","PanelHeader","Component","HeaderTag","onToggle","collapsibleIconPosition","Panel","onToggleCollapse","collapsedState","setCollapsedState","handleToggle","panelTheme","collapsbleIconPosition","toggleCollapse","Pill","RevealPanelService","setRefs","wrapper","panel","unbindEvents","bindEvents","ensureRefs","mouseDown","initialRect","initialEvent","isPrimaryMouseButtonDown","newY","finalHeight","notifyListeners","buttons","heightVal","reason","isHidden","deinit","RevealPanelHeaderLeft","RevealPanelHeaderRight","mergeClasses","RevealPanel","onHeightChange","parentSelector","contentStyle","contentClassName","gutterClassName","wrapperClassName","panelRef","gutterRef","wrapperRef","panelService","useImperativeHandle","headerLeft","headerRight","contents","child","TempRevealPanel","HeaderLeft","HeaderRight","TabsContext","TabContent","addTab","hideTab","updateTab","showTab","selectedPath","tabData","tabsId","tabExists","rendered","hideTabContent","tabs","tempTabData","prevTabData","shouldRender","TabContext","Tab","tabsContext","tabContext","setPath","tempPath","Tabs","onTabChange","setTabs","setSelectedPath","setRendered","initialPath","setInitialPath","setCurrentSelectedPath","tempRendered","collapsible","prevTabs","tempTabs","tabsState","tempTabsState","toggleTab","getTabCssClass","tabId","genTabs","currentTabs","updateTabsList","icon","closable","isOpened","additionalClickParents","isActive","setIsActive","tooltipRef","activeEvents","onMouseEnter","onMouseLeave","handleDocumentClick","TextEllipsis","Pagination","totalNrOfPages","selectedPage","setSelectedPage","pagesArray","nrOfPages","pagesArr","currentNr","pageNr","at","getPagesArr","goToPage","tableContext","HeaderCell","sortable","sortOrder","setSortOrder","sendMessage","allRowsSelected","columns","selectable","generateSelectable","allowSelectAll","isCheckbox","Checkbox","displayError","displayNote","note","Cell","styling","events","Row","SelectableCheckbox","Table","noDataMessage","loading","infiniteScrolling","onChangeMsg","setOnChangeMsg","itemsListRef","sortRows","order","selectAllRows","selectRow","setPagination","pagination","api","getTable","every","totalPages","num","nrItemsOnPage","perPage","Column","cSize","cOffset","nogutters","DropdownContext","DropdownItem","customdropdownitem","eventKey","dropdownItemCLick","dropdownContext","itemProps","onSelectItem","selectedItem","showCheckmark","Dropdown","isElemInRightView","dropdownWidth","isElemInBottomView","dropdownHeight","elHeight","super","dropdownRef","dropdownListRef","dropdownButtonRef","toggleDropdown","handleClickOutside","componentDidMount","getStyles","componentDidUpdate","prevProps","closeDropdown","componentWillUnmount","itemId","closeOnSelect","onSelect","selectedItemProps","dropdownEl","offsetPosition","customTop","customLeft","getWrapperCssClasses","btnGroup","btnGroupSize","btnTheme","hasCustomContent","listclassnames","getBtnTitle","btnTitle","stopButtonTextChange","appendTo","btnClassName","btnSize","customBtnTitle","showDropdownIcon","showTriggerButton","DropdownWrapperTag","DropdownTrigger","splitTrigger","toggle","onTriggerClick","DropdownListWrapper","dropdownValue","Dropdown2","setSelectedValueAsTitle","setIsOpen","handleOutsideClick","triggerElement","CodeEditor","disableValidation","finalSetOptions","getCodeEditorError","getLabelStyles","getNonLabelWidth","handleOnChange","handleOnBlur","htmlFor","editorProps","$blockScrolling","editorInstance","getStateSelectedValues","multiple","Combobox","closeList","openList","filterByName","itemValue","inputValue","stateSelectedValues","searchText","comboboxRef","valuesListRef","inputRef","textRef","focusInput","handleItemsNavigation","handleComboboxDropdownClick","handleListItemClick","handlePillRemoveClick","manageSelectedTags","setInputWidth","unBindEvents","getDerivedStateFromProps","nextProps","stringify","filteredValues","filterValues","cursorNext","previousState","methodName","tempState","removeSelectedValue","allowCustomValues","getSearchText","getSelectedIndex","getListItemCssClasses","getComboboxListCssClass","themes","iTheme","getInputError","elWidth","getComboboxDisplayData","reduce","prevValue","tempValue","selectedIndex","selectedValues","isInInitialValues","addSelectedValue","manageSelectedValues","tempSelectedValues","tempStateSelectedValues","ok","searchItem","renderInput","visbility","renderDropdown","autoFocus","CustomListComponent","Value","tagSeparators","addTagOnBlur","renderValue","valueOverflow","dummyElementRef","setInputValue","inputWidth","entryFieldOnChange","dummy","triggerAction","textValue","isPlaceholder","renderCustomValue","entryFieldOnKeyDown","listRef","searchValue","activeItem","renderListItem","showSearch","block","isNoneSelected","renderSelectAllOption","Combobox2","propValue","propValues","maxProp","matchItemFn","renderList","renderListProp","onBeforeChange","floatingContainerConfig","expandMode","displayDropdownTrigger","required","validateOnChange","rootRef","comboboxControlRef","getValueFromProp","setValues","normalizeValue","setSearchValue","setActiveItem","setIsOpened","valuesExpanded","setValuesExpanded","localValidationError","setLocalValidationError","getThemeClasses","getFilteredValues","openDropdown","updateSearchValue","newSearchValue","fv","isValidValue","newValues","localError","updateValue","addTag","listValueIndex","lv","finalValue","selectValue","valIndex","with","selectAllValues","moveUpActiveItem","visibleItems","activeIndex","moveDownActiveItem","executeTriggerAction","onTagMessage","removeTag","renderIcon","sv","nv","vals","valuesElement","updateScroll","mobserver","MutationObserver","robserver","childList","subtree","currentValuesClasses","onClickCapture","existingVal","DatePicker","onOpen","pickerInstance","setPickerInstance","dateRef","hasValueChanged","prevDate","currentDate","getTime","diffDates","date","onDateChange","dateValue","instance","defaultDate","setDate","openCalendar","inputStyle","addonStyle","getInputField","dateFormat","_typeof","requiredArgs","isDate","toDate","argument","argStr","NaN","toInteger","dirtyNumber","startOfUTCISOWeek","dirtyDate","day","getUTCDay","setUTCDate","getUTCDate","setUTCHours","getUTCISOWeekYear","year","getUTCFullYear","fourthOfJanuaryOfNextYear","setUTCFullYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","defaultOptions","getDefaultOptions","startOfUTCWeek","_ref","_ref2","_ref3","_options$weekStartsOn","_options$locale","_options$locale$optio","_defaultOptions$local","_defaultOptions$local2","weekStartsOn","locale","RangeError","getUTCWeekYear","_options$firstWeekCon","firstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","addLeadingZeros","targetLength","sign","signedYear","month","getUTCMonth","getUTCHours","getUTCMinutes","getUTCSeconds","numberOfDigits","milliseconds","getUTCMilliseconds","G","localize","era","ordinalNumber","unit","lightFormatters","Y","signedWeekYear","weekYear","Q","quarter","M","week","firstWeek","startOfUTCWeekYear","getUTCWeek","I","isoWeek","fourthOfJanuary","startOfUTCISOWeekYear","getUTCISOWeek","D","dayOfYear","timestamp","setUTCMonth","difference","getUTCDayOfYear","E","dayOfWeek","localDayOfWeek","isoDayOfWeek","dayPeriodEnumValue","dayPeriod","hours","H","K","S","X","_localize","timezoneOffset","_originalDate","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","z","originalDate","T","dirtyDelimiter","absOffset","minutes","delimiter","dateLongFormatter","pattern","formatLong","timeLongFormatter","longFormatters","P","dateTimeFormat","matchResult","datePattern","timePattern","dateTime","protectedDayOfYearTokens","protectedWeekYearTokens","throwProtectedError","format","formatDistanceLocale","lessThanXSeconds","one","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","defaultWidth","formats","full","long","medium","short","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","buildLocalizeFn","dirtyIndex","valuesArray","formattingValues","defaultFormattingWidth","_defaultWidth","_width","argumentCallback","buildMatchFn","matchPattern","matchPatterns","defaultMatchWidth","matchedString","parsePatterns","defaultParseWidth","object","findKey","valueCallback","formatDistance","tokenValue","addSuffix","comparison","formatRelative","_date","_baseDate","_options","rem100","narrow","abbreviated","wide","am","pm","midnight","noon","morning","afternoon","evening","night","parsePattern","parseResult","any","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyFormatStr","_ref4","_options$locale2","_options$locale2$opti","_ref5","_ref6","_ref7","_options$locale3","_options$locale3$opti","_defaultOptions$local3","_defaultOptions$local4","formatStr","defaultLocale","isValid","utcDate","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","getTimezoneOffsetInMilliseconds","dirtyAmount","addMilliseconds","subMilliseconds","formatterOptions","firstCharacter","longFormatter","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","isProtectedDayOfYearToken","EditableListForm","getMainFormValue","components","mainFormValue","submitButtonRef","submitForm","errors","mainError","addValueOnFieldChange","getMainFormButtonWidth","createRefs","propsComponents","stateComponents","validateValue","getFormCssClasses","noLabels","getButtonClassName","buttonStyle","displayType","getComponentsError","errorPersist","validatorsNames","validate","validatorName","validator","validationmessages","hasMainFormErrors","resetForm","showMainError","onSubmit","validationmessage","buttonName","ComponentName","EditableList","getItemListValue","getListItemCssClass","buttonWidth","handleFormSubmit","dropdownListItemRef","addValues","triggerOnChange","handleItemUpdate","editMode","handleChildrenOnChange","getListItemsCssClass","getFormInputKey","getListItemText","itemData","separator","setItemEditMode","closeListItems","isInList","removeListItem","removedItem","valueArr","tempItemValue","nextValue","genListItem","clonedComponents","genList","appendToElement","formButtonTitle","formButtonStyle","addButtonName","onAddRow","ListHeader","fields","field","FieldsList","onDelete","rowIndex","tempField","EditableList2","hideOnEmpty","internalErrors","setInternalErrors","updateRowValue","fieldIndex","componentValue","tempValueArr","tempErrors","tempFieldError","Components","internalError","setInternalError","onFieldChange","errorMsg","deleteRow","rowValues","colValue","flat","hasErrors","FileInput","accept","fileInputRef","files","Input","getAddon","initValue","stateValue","isfield","inputgroupaddonleft","inputgroupaddonright","getInputGroupAddon","getInputComponent","autoComplete","Input2","getInputElement","MultiselectItem","itemType","isInSearchValue","fieldsToSearchOn","onAddRemove","itemDisplayTemplate","maxSelections","nrSelectedItems","onGetItemDetails","details","detailsDisplayTemplate","getItemContent","getItemLoader","MultiselectPanel","inputPlaceholder","noItemsMessage","items","onCustomSearch","customSearch","panelType","serverLoad","itemsPageNumber","itemsNrPages","loadMoreItems","searchOnChange","itemChanged","cloneItems","clonedItem","renderListItems","diffObjects","Multiselect","entityNamePlural","getItemDetails","setOpened","prevOpened","itemsChange","allItems","valueClone","valueChange","providerValue","Radio","nospace","Select","setStateValue","selectedValue","getSelectError","getSelectComponent","SelectableList","checkboxalticon","itemTemplate","primaryKey","handleOnSelect","newSelectedItems","elemPosition","getListItemCssClassName","tvalue","Textarea","ToggleItem","getNotchCssClasses","itemRef","saveSelectedRef","onItemSelected","ToggleItemWrapper","Toggle","onDark","separated","selectedRef","setSelectedRef","notchRef","toggleRef","positionNotch","selectedWidth","FORM_DEBOUNCE","setConfig","getValueFromPath","acc","form","properties","DEFAULT_DEBOUNCE_TIME_MS","myValue","setMyValue","getOnChangeProps","hasIsFieldProp","executeDebounced","valueOrEvent","nodeName","onChangeProps","formError","touched","submitCount","status","componentProps","hasOwn","FieldCodeEditor","FieldCombobox","getComboboxError","FieldDropdown","FieldPagination","FieldCombobox2","FormDatePicker","getDatePickerError","FieldEditableList","getEditableListError","FieldFileInput","FieldInput","FieldMultiselect","getMultiselectError","FieldSelect","handleEvent","FieldSelectableList","FieldToggle","useInterval"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"tyk-ui.js","mappings":"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G,IAAK,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,IAAK,GAAI,IAAK,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,KAAM,GAAI,EAAG,GAAI,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,KAAM,GAAI,MAAO,GAAI,KAAM,GAAI,GAAI,EAAG,IAAK,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAA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O,CAAC,eAAgB,uBAAwB,4BAChDH,MAAO,kEACR,CACCG,MAAOqyD,EACPxyD,MAAO80D,GACR,CACC30D,MAAO,uBACPH,MAAO,aACPpkB,KAAM,YACP,CACCukB,MAAO,eACPH,MAAO,KACPpkB,KAAM,SACP,CACCukB,MAAO,mBACPH,MAAO,yEACPpkB,KAAM,SACP,CACCukB,MAAO,uBACPH,MAAO,UACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,SACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,UACR,CACCG,MAAO,UACPH,MAAO,WAGf7mC,SAAU,CAAC,CACHgnC,MAAO,OACPH,MAAO,QACR,CACCG,MAAO,CACH,eAAgB,uBAAwB,uBAAwB,OAChE,mBAAoB,OACpB,eAAgB,OAAQ,uBAAwB,OAAQ,gBAE5DH,MAAO,IAAM80D,EAAe,UAAYA,EAAe,6DACvDl5E,KAAM,sBACP,CACCukB,MAAO,uBACPH,MAAO,cACR,CACCG,MAAO,mBACPH,MAAO,gwDACR,CACCG,MAAO,uBACPH,MAAO,+lBACR,CACCG,MAAO,mBACPH,MAAO,y2DACR,CACCG,MAAO,aACPH,MAAO80D,GACR,CACC90D,MAAO,GACPG,MAAO,QACPvkB,KAAM,aAGd,MAAS,CACL04E,EAAyBE,aAAa,aACtCS,EAAS,SACT,CACI90D,MAAO,gBACPH,MAAO,MACPpkB,KAAM,SACP,CACCukB,MAAO,OACPH,MAAO,UACPpkB,KAAM,SACP,CACCukB,MAAO,QACPH,MAAO,GACPpkB,KAAM,aAGd,MAAS,CACL,CACIukB,MAAO,0BACPH,MAAO,6CACR,CACCG,MAAO,gBACPH,MAAO,cACPpkB,KAAM,YACP,CACCukB,MAAO,UACPH,MAAO,iDACR,CACCG,MAAO,2BACPH,MAAO,iDACR,CACCG,MAAO,8BACPH,MAAO,MACR,CACCG,MAAO,2BACPH,MAAO,QACPpkB,KAAM,yBACP,CACCukB,MAAO,QACPH,MAAO,IACPpkB,KAAM,YACP,CACC8jB,aAAc,kBAGtB,sBAAyB,CACrB,CACIS,MAAO,oCACPH,MAAO,6CACR,CACCG,MAAO,2BACPH,MAAO,IACPpkB,KAAM,SACP,CACCukB,MAAO,2BACPH,MAAO,KACR,CACCG,MAAO,QACPH,MAAO,IACPpkB,KAAM,YACP,CACC8jB,aAAc,kCAGtB,kBAAqB,CACjB,CACIS,MAAO,SACPH,MAAO,SACP11C,KAAM,CACF,CACI61C,MAAO,SACPH,MAAO,MACPpkB,KAAM,OACP,CACC/kB,QAAS,aAGlB,CACCspC,MAAO,SACPH,MAAO,SACP11C,KAAM,CACF,CACI61C,MAAO,SACPH,MAAO,MACPpkB,KAAM,OACP,CACC/kB,QAAS,cAGlB,CACCspC,MAAO,oBACPH,MAAO,+BACR,CACCG,MAAO,mBACPH,MAAO,gDACR,CACCG,MAAO,mBACPH,MAAO,gDACR,CACCG,MAAO,uBACPH,MAAO,IACPpkB,KAAM,sBACP,CACCukB,MAAO,OACPH,MAAO,QACR,CACCG,MAAO,uBACPH,MAAO,KACR,CACCG,MAAO,QACPH,MAAO,GACPpkB,KAAM,aAGd,mBAAsB,CAClBq5E,EAAS,sBACT,CACI90D,MAAO,qBACPH,MAAO80D,GACR,CACC30D,MAAO,uBACPH,MAAO,KACR,CACCG,MAAO,OACPH,MAAO,QACR,CACCG,MAAO,uBACPH,MAAO,KACR,CACCG,MAAO,QACPH,MAAO,GACPpkB,KAAM,aAGd,SAAY,CACR,CACIukB,MAAO,2BACPH,MAAOg1D,GACR,CACC70D,MAAO,SACPH,MAAO,QACP0B,gBAAgB,GACjB,CACCvB,MAAO,SACPH,MAAO,MACPpkB,KAAM,YACP,CACC8jB,aAAc,WAGtB,QAAW,CACP,CACIS,MAAO,2BACPH,MAAOg1D,GACR,CACC70D,MAAO,SACPH,MAAO,QACP0B,gBAAgB,GACjB,CACCvB,MAAO,SACPH,MAAO,MACPpkB,KAAM,YACP,CACC8jB,aAAc,YAIrB1qC,GAAYA,EAAQkgG,QACrB3sG,KAAKu5C,OAAOqzD,SAASvzD,QAAQ,CACzB5B,MAAO,OAAQM,QAAS,SAAU30C,EAAK+9B,EAAOqX,GAE1C,GADAx4C,KAAKqzB,KAAc,KAAPjwB,EAAapD,KAAK0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E,KAAM,eACP,CACCukB,MAAO,SACPH,MAAOm2D,EAAY,SACnBv6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,OACtBx6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,SACtBx6E,KAAM,aACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,OACtBx6E,KAAM,aACP,CACCukB,MAAO,SACPH,MAAOo2D,EAAe,SACtBx6E,KAAM,YACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,OACzBz6E,KAAM,eACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,SACzBz6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,OACzBz6E,KAAM,cACP,CACCukB,MAAO,SACPH,MAAOq2D,EAAkB,SACzBz6E,KAAM,aACP,CACCukB,MAAO,mBACPH,MAAO,4EACR,CACCG,MAAO,cACPH,MAAO,2EACR,CACCG,MAAO,eACPH,MAAO,eACR,CACCG,MAAO,eACPH,MAAO,eACR,CACCG,MAAO,CAAC,UAAW,OAAQ,wBAC3BH,MAAO,2DACR,CACCG,MAAO,OACPH,MAAO,QACR,CACCnpC,QAAS,cAEjB,UAAa,CAAC,CACNspC,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,SAAY,CAAC,CACLS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,SAAY,CAAC,CACLS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,QACPpkB,KAAM,YACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,QAAW,CAAC,CACJS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,QACPpkB,KAAM,WACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,aAAgB,CAAC,CACTS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,YAAe,CAAC,CACRS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,YAAe,CAAC,CACRS,MAAO,SACPH,MAAO,QACPpkB,KAAM,eACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO,SACPH,MAAO,QACPpkB,KAAM,cACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACC8jB,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,UAAa,CAAC,CACNS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,UAAa,CAAC,CACNS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,QACPpkB,KAAM,aACP,CACCukB,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,SAAY,CAAC,CACLS,MAAO,2BACPH,MAAO02D,GACR,CACCv2D,MAAO,SACPH,MAAO,MACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,YAAe,CAAC,CACRS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO,SACPH,MAAO,OACPpkB,KAAM,SACP,CACCukB,MAAO,eACPH,MAAO,IACP11C,KAAM,oBACP,CACCo1C,aAAc,WAEtB,WAAc,CAAC,CACPS,MAAO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","sources":["webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/ace.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/ext-beautify.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/ext-searchbox.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-css.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-golang.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-javascript.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-json.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-jsx.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-python.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/mode-xml.js","webpack://@tyk-technologies/tyk-ui/./node_modules/ace-builds/src-noconflict/theme-github.js","webpack://@tyk-technologies/tyk-ui/./node_modules/react-dom/client.js","webpack://@tyk-technologies/tyk-ui/./node_modules/react-fast-compare/index.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react-dom\"","webpack://@tyk-technologies/tyk-ui/webpack/bootstrap","webpack://@tyk-technologies/tyk-ui/webpack/runtime/amd define","webpack://@tyk-technologies/tyk-ui/webpack/runtime/compat get default export","webpack://@tyk-technologies/tyk-ui/webpack/runtime/define property getters","webpack://@tyk-technologies/tyk-ui/webpack/runtime/hasOwnProperty shorthand","webpack://@tyk-technologies/tyk-ui/webpack/runtime/make namespace object","webpack://@tyk-technologies/tyk-ui/webpack/runtime/node module decorator","webpack://@tyk-technologies/tyk-ui/webpack/runtime/publicPath","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react\"","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"prop-types\"","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Icon/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemTrigger.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItem.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemHeader.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react-transition-group\"","webpack://@tyk-technologies/tyk-ui/./src/hooks/useComponentSize/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/useEventListener/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Collapsible/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/js/AccordionItemContent.js","webpack://@tyk-technologies/tyk-ui/./src/components/Accordion/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Button/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/ButtonGroup/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardHeader.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardBody.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardFooter.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardTitle.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardTitleGroup.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardSubTitle.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardSummary.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/CardTitleIcon.js","webpack://@tyk-technologies/tyk-ui/./src/components/Card/index.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"echarts\"","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"immutable\"","webpack://@tyk-technologies/tyk-ui/./src/utils/debounce/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/usePrevious/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Loader/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Message/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Chart/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/useTimeout/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Toast/js/ToastMessage.js","webpack://@tyk-technologies/tyk-ui/./src/components/Toast/js/ToastContainer.js","webpack://@tyk-technologies/tyk-ui/./src/components/Toast/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/CopyToClipboard/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Modal/js/ModalFooter.js","webpack://@tyk-technologies/tyk-ui/./src/components/Modal/js/ModalBody.js","webpack://@tyk-technologies/tyk-ui/./src/components/Modal/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Confirm/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/FixedWrapper/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/InfiniteScroller/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/FloatingContainer/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/InfoNote/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/List/js/ListItem.js","webpack://@tyk-technologies/tyk-ui/./src/components/List/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/NavBar/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Navigation/js/NavigationItem.js","webpack://@tyk-technologies/tyk-ui/./src/components/Navigation/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/panel-context.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/js/PanelBody.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/js/PanelFooter.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/js/PanelHeader.js","webpack://@tyk-technologies/tyk-ui/./src/components/Panel/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Pill/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/RevealPanel/js/RevealPanelService.js","webpack://@tyk-technologies/tyk-ui/./src/components/RevealPanel/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/tabs-context.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/js/TabContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/js/TabContent.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/js/Tab.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tabs/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Tooltip/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/TextEllipsis/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Pagination/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/tableContext.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/header-cell.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/header.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Checkbox/index.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/cell.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/row.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/js/body.js","webpack://@tyk-technologies/tyk-ui/./src/components/Table/index.js","webpack://@tyk-technologies/tyk-ui/./src/layout/Column/index.js","webpack://@tyk-technologies/tyk-ui/./src/layout/Row/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown/dropdown-context.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown/js/DropdownItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/DropdownTrigger.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/DropdownListWrapper.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/useDrodpownContext.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/DropdowItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Dropdown2/useDropdown.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"react-ace\"","webpack://@tyk-technologies/tyk-ui/./src/form/components/CodeEditor/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox2/js/Value.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox2/js/List.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Combobox2/index.js","webpack://@tyk-technologies/tyk-ui/external commonjs2 \"flatpickr\"","webpack://@tyk-technologies/tyk-ui/./src/form/components/DatePicker/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/isDate/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/toDate/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/toInteger/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/defaultOptions/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/format/formatters/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/format/longFormatters/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/protectedTokens/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/defaultLocale/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/format/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/isValid/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/subMilliseconds/index.js","webpack://@tyk-technologies/tyk-ui/./node_modules/date-fns/esm/addMilliseconds/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList/js/EditableListForm.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/Header.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/ListHeader.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/FieldsList.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/with-validation.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/EditableList2/validate-values.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/FileInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Input/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Input2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/js/MultiselectContext.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/js/MultiselectItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/js/MultiselectPanel.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Multiselect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Radio/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Select/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/SelectableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Textarea/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/js/ToggleContext.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/js/ToggleItem.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/js/ToggleItemWrapper.js","webpack://@tyk-technologies/tyk-ui/./src/form/components/Toggle/index.js","webpack://@tyk-technologies/tyk-ui/./src/utils/config/config.js","webpack://@tyk-technologies/tyk-ui/./src/utils/formik/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCheckbox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCodeEditor/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCombobox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikCombobox2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikDatePicker/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikEditableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikEditableList2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikFileInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikInput2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikMultiselect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikRadio/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikSelect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikSelectableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikTextarea/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/formik/FormikToggle/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldCodeEditor/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldCombobox/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldDropdown/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldPagination/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldCombobox2/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldDatePicker/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldEditableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldFileInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldInput/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldMultiselect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldSelect/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldSelectableList/index.js","webpack://@tyk-technologies/tyk-ui/./src/form/redux-form/FieldToggle/index.js","webpack://@tyk-technologies/tyk-ui/./src/hooks/useInterval/index.js"],"sourcesContent":["/* ***** BEGIN LICENSE BLOCK *****\n * Distributed under the BSD license:\n *\n * Copyright (c) 2010, Ajax.org B.V.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n * * Neither the name of Ajax.org B.V. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * ***** END LICENSE BLOCK ***** */\n\n/**\n * Define a module along with a payload\n * @param module a name for the payload\n * @param payload a function to call with (require, exports, module) params\n */\n\n(function() {\n\nvar ACE_NAMESPACE = \"ace\";\n\nvar global = (function() { return this; })();\nif (!global && typeof window != \"undefined\") global = window; // strict mode\n\n\nif (!ACE_NAMESPACE && typeof requirejs !== \"undefined\")\n return;\n\n\nvar define = function(module, deps, payload) {\n if (typeof module !== \"string\") {\n if (define.original)\n define.original.apply(this, arguments);\n else {\n console.error(\"dropping module because define wasn\\'t a string.\");\n console.trace();\n }\n return;\n }\n if (arguments.length == 2)\n payload = deps;\n if (!define.modules[module]) {\n define.payloads[module] = payload;\n define.modules[module] = null;\n }\n};\n\ndefine.modules = {};\ndefine.payloads = {};\n\n/**\n * Get at functionality define()ed using the function above\n */\nvar _require = function(parentId, module, callback) {\n if (typeof module === \"string\") {\n var payload = lookup(parentId, module);\n if (payload != undefined) {\n callback && callback();\n return payload;\n }\n } else if (Object.prototype.toString.call(module) === \"[object Array]\") {\n var params = [];\n for (var i = 0, l = module.length; i < l; ++i) {\n var dep = lookup(parentId, module[i]);\n if (dep == undefined && require.original)\n return;\n params.push(dep);\n }\n return callback && callback.apply(null, params) || true;\n }\n};\n\nvar require = function(module, callback) {\n var packagedModule = _require(\"\", module, callback);\n if (packagedModule == undefined && require.original)\n return require.original.apply(this, arguments);\n return packagedModule;\n};\n\nvar normalizeModule = function(parentId, moduleName) {\n // normalize plugin requires\n if (moduleName.indexOf(\"!\") !== -1) {\n var chunks = moduleName.split(\"!\");\n return normalizeModule(parentId, chunks[0]) + \"!\" + normalizeModule(parentId, chunks[1]);\n }\n // normalize relative requires\n if (moduleName.charAt(0) == \".\") {\n var base = parentId.split(\"/\").slice(0, -1).join(\"/\");\n moduleName = base + \"/\" + moduleName;\n\n while(moduleName.indexOf(\".\") !== -1 && previous != moduleName) {\n var previous = moduleName;\n moduleName = moduleName.replace(/\\/\\.\\//, \"/\").replace(/[^\\/]+\\/\\.\\.\\//, \"\");\n }\n }\n return moduleName;\n};\n\n/**\n * Internal function to lookup moduleNames and resolve them by calling the\n * definition function if needed.\n */\nvar lookup = function(parentId, moduleName) {\n moduleName = normalizeModule(parentId, moduleName);\n\n var module = define.modules[moduleName];\n if (!module) {\n module = define.payloads[moduleName];\n if (typeof module === 'function') {\n var exports = {};\n var mod = {\n id: moduleName,\n uri: '',\n exports: exports,\n packaged: true\n };\n\n var req = function(module, callback) {\n return _require(moduleName, module, callback);\n };\n\n var returnValue = module(req, exports, mod);\n exports = returnValue || mod.exports;\n define.modules[moduleName] = exports;\n delete define.payloads[moduleName];\n }\n module = define.modules[moduleName] = exports || module;\n }\n return module;\n};\n\nfunction exportAce(ns) {\n var root = global;\n if (ns) {\n if (!global[ns])\n global[ns] = {};\n root = global[ns];\n }\n\n if (!root.define || !root.define.packaged) {\n define.original = root.define;\n root.define = define;\n root.define.packaged = true;\n }\n\n if (!root.require || !root.require.packaged) {\n require.original = root.require;\n root.require = require;\n root.require.packaged = true;\n }\n}\n\nexportAce(ACE_NAMESPACE);\n\n})();\n\nace.define(\"ace/lib/es6-shim\",[\"require\",\"exports\",\"module\"], function(require, exports, module){function defineProp(obj, name, val) {\n Object.defineProperty(obj, name, {\n value: val,\n enumerable: false,\n writable: true,\n configurable: true\n });\n}\nif (!String.prototype.startsWith) {\n defineProp(String.prototype, \"startsWith\", function (searchString, position) {\n position = position || 0;\n return this.lastIndexOf(searchString, position) === position;\n });\n}\nif (!String.prototype.endsWith) {\n defineProp(String.prototype, \"endsWith\", function (searchString, position) {\n var subjectString = this;\n if (position === undefined || position > subjectString.length) {\n position = subjectString.length;\n }\n position -= searchString.length;\n var lastIndex = subjectString.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n });\n}\nif (!String.prototype.repeat) {\n defineProp(String.prototype, \"repeat\", function (count) {\n var result = \"\";\n var string = this;\n while (count > 0) {\n if (count & 1)\n result += string;\n if ((count >>= 1))\n string += string;\n }\n return result;\n });\n}\nif (!String.prototype.includes) {\n defineProp(String.prototype, \"includes\", function (str, position) {\n return this.indexOf(str, position) != -1;\n });\n}\nif (!Object.assign) {\n Object.assign = function (target) {\n if (target === undefined || target === null) {\n throw new TypeError(\"Cannot convert undefined or null to object\");\n }\n var output = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n if (source !== undefined && source !== null) {\n Object.keys(source).forEach(function (key) {\n output[key] = source[key];\n });\n }\n }\n return output;\n };\n}\nif (!Object.values) {\n Object.values = function (o) {\n return Object.keys(o).map(function (k) {\n return o[k];\n });\n };\n}\nif (!Array.prototype.find) {\n defineProp(Array.prototype, \"find\", function (predicate) {\n var len = this.length;\n var thisArg = arguments[1];\n for (var k = 0; k < len; k++) {\n var kValue = this[k];\n if (predicate.call(thisArg, kValue, k, this)) {\n return kValue;\n }\n }\n });\n}\nif (!Array.prototype.findIndex) {\n defineProp(Array.prototype, \"findIndex\", function (predicate) {\n var len = this.length;\n var thisArg = arguments[1];\n for (var k = 0; k < len; k++) {\n var kValue = this[k];\n if (predicate.call(thisArg, kValue, k, this)) {\n return k;\n }\n }\n });\n}\nif (!Array.prototype.includes) {\n defineProp(Array.prototype, \"includes\", function (item, position) {\n return this.indexOf(item, position) != -1;\n });\n}\nif (!Array.prototype.fill) {\n defineProp(Array.prototype, \"fill\", function (value) {\n var O = this;\n var len = O.length >>> 0;\n var start = arguments[1];\n var relativeStart = start >> 0;\n var k = relativeStart < 0\n ? Math.max(len + relativeStart, 0)\n : Math.min(relativeStart, len);\n var end = arguments[2];\n var relativeEnd = end === undefined ? len : end >> 0;\n var final = relativeEnd < 0\n ? Math.max(len + relativeEnd, 0)\n : Math.min(relativeEnd, len);\n while (k < final) {\n O[k] = value;\n k++;\n }\n return O;\n });\n}\nif (!Array.of) {\n defineProp(Array, \"of\", function () {\n return Array.prototype.slice.call(arguments);\n });\n}\n\n});\n\nace.define(\"ace/lib/fixoldbrowsers\",[\"require\",\"exports\",\"module\",\"ace/lib/es6-shim\"], function(require, exports, module){// vim:set ts=4 sts=4 sw=4 st:\n\"use strict\";\nrequire(\"./es6-shim\");\n\n});\n\nace.define(\"ace/lib/deep_copy\",[\"require\",\"exports\",\"module\"], function(require, exports, module){exports.deepCopy = function deepCopy(obj) {\n if (typeof obj !== \"object\" || !obj)\n return obj;\n var copy;\n if (Array.isArray(obj)) {\n copy = [];\n for (var key = 0; key < obj.length; key++) {\n copy[key] = deepCopy(obj[key]);\n }\n return copy;\n }\n if (Object.prototype.toString.call(obj) !== \"[object Object]\")\n return obj;\n copy = {};\n for (var key in obj)\n copy[key] = deepCopy(obj[key]);\n return copy;\n};\n\n});\n\nace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\",\"ace/lib/deep_copy\"], function(require, exports, module){\"use strict\";\nexports.last = function (a) {\n return a[a.length - 1];\n};\nexports.stringReverse = function (string) {\n return string.split(\"\").reverse().join(\"\");\n};\nexports.stringRepeat = function (string, count) {\n var result = '';\n while (count > 0) {\n if (count & 1)\n result += string;\n if (count >>= 1)\n string += string;\n }\n return result;\n};\nvar trimBeginRegexp = /^\\s\\s*/;\nvar trimEndRegexp = /\\s\\s*$/;\nexports.stringTrimLeft = function (string) {\n return string.replace(trimBeginRegexp, '');\n};\nexports.stringTrimRight = function (string) {\n return string.replace(trimEndRegexp, '');\n};\nexports.copyObject = function (obj) {\n var copy = {};\n for (var key in obj) {\n copy[key] = obj[key];\n }\n return copy;\n};\nexports.copyArray = function (array) {\n var copy = [];\n for (var i = 0, l = array.length; i < l; i++) {\n if (array[i] && typeof array[i] == \"object\")\n copy[i] = this.copyObject(array[i]);\n else\n copy[i] = array[i];\n }\n return copy;\n};\nexports.deepCopy = require(\"./deep_copy\").deepCopy;\nexports.arrayToMap = function (arr) {\n var map = {};\n for (var i = 0; i < arr.length; i++) {\n map[arr[i]] = 1;\n }\n return map;\n};\nexports.createMap = function (props) {\n var map = Object.create(null);\n for (var i in props) {\n map[i] = props[i];\n }\n return map;\n};\nexports.arrayRemove = function (array, value) {\n for (var i = 0; i <= array.length; i++) {\n if (value === array[i]) {\n array.splice(i, 1);\n }\n }\n};\nexports.escapeRegExp = function (str) {\n return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g, '\\\\$1');\n};\nexports.escapeHTML = function (str) {\n return (\"\" + str).replace(/&/g, \"&\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(/ 0xffff ? 2 : 1;\n};\n\n});\n\nace.define(\"ace/lib/useragent\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nexports.OS = {\n LINUX: \"LINUX\",\n MAC: \"MAC\",\n WINDOWS: \"WINDOWS\"\n};\nexports.getOS = function () {\n if (exports.isMac) {\n return exports.OS.MAC;\n }\n else if (exports.isLinux) {\n return exports.OS.LINUX;\n }\n else {\n return exports.OS.WINDOWS;\n }\n};\nvar _navigator = typeof navigator == \"object\" ? navigator : {};\nvar os = (/mac|win|linux/i.exec(_navigator.platform) || [\"other\"])[0].toLowerCase();\nvar ua = _navigator.userAgent || \"\";\nvar appName = _navigator.appName || \"\";\nexports.isWin = (os == \"win\");\nexports.isMac = (os == \"mac\");\nexports.isLinux = (os == \"linux\");\nexports.isIE =\n (appName == \"Microsoft Internet Explorer\" || appName.indexOf(\"MSAppHost\") >= 0)\n ? parseFloat((ua.match(/(?:MSIE |Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/) || [])[1])\n : parseFloat((ua.match(/(?:Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/) || [])[1]); // for ie\nexports.isOldIE = exports.isIE && exports.isIE < 9;\nexports.isGecko = exports.isMozilla = ua.match(/ Gecko\\/\\d+/);\nexports.isOpera = typeof opera == \"object\" && Object.prototype.toString.call(window.opera) == \"[object Opera]\";\nexports.isWebKit = parseFloat(ua.split(\"WebKit/\")[1]) || undefined;\nexports.isChrome = parseFloat(ua.split(\" Chrome/\")[1]) || undefined;\nexports.isSafari = parseFloat(ua.split(\" Safari/\")[1]) && !exports.isChrome || undefined;\nexports.isEdge = parseFloat(ua.split(\" Edge/\")[1]) || undefined;\nexports.isAIR = ua.indexOf(\"AdobeAIR\") >= 0;\nexports.isAndroid = ua.indexOf(\"Android\") >= 0;\nexports.isChromeOS = ua.indexOf(\" CrOS \") >= 0;\nexports.isIOS = /iPad|iPhone|iPod/.test(ua) && !window.MSStream;\nif (exports.isIOS)\n exports.isMac = true;\nexports.isMobile = exports.isIOS || exports.isAndroid;\n\n});\n\nace.define(\"ace/lib/dom\",[\"require\",\"exports\",\"module\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar useragent = require(\"./useragent\");\nvar XHTML_NS = \"http://www.w3.org/1999/xhtml\";\nexports.buildDom = function buildDom(arr, parent, refs) {\n if (typeof arr == \"string\" && arr) {\n var txt = document.createTextNode(arr);\n if (parent)\n parent.appendChild(txt);\n return txt;\n }\n if (!Array.isArray(arr)) {\n if (arr && arr.appendChild && parent)\n parent.appendChild(arr);\n return arr;\n }\n if (typeof arr[0] != \"string\" || !arr[0]) {\n var els = [];\n for (var i = 0; i < arr.length; i++) {\n var ch = buildDom(arr[i], parent, refs);\n ch && els.push(ch);\n }\n return els;\n }\n var el = document.createElement(arr[0]);\n var options = arr[1];\n var childIndex = 1;\n if (options && typeof options == \"object\" && !Array.isArray(options))\n childIndex = 2;\n for (var i = childIndex; i < arr.length; i++)\n buildDom(arr[i], el, refs);\n if (childIndex == 2) {\n Object.keys(options).forEach(function (n) {\n var val = options[n];\n if (n === \"class\") {\n el.className = Array.isArray(val) ? val.join(\" \") : val;\n }\n else if (typeof val == \"function\" || n == \"value\" || n[0] == \"$\") {\n el[n] = val;\n }\n else if (n === \"ref\") {\n if (refs)\n refs[val] = el;\n }\n else if (n === \"style\") {\n if (typeof val == \"string\")\n el.style.cssText = val;\n }\n else if (val != null) {\n el.setAttribute(n, val);\n }\n });\n }\n if (parent)\n parent.appendChild(el);\n return el;\n};\nexports.getDocumentHead = function (doc) {\n if (!doc)\n doc = document;\n return doc.head || doc.getElementsByTagName(\"head\")[0] || doc.documentElement;\n};\nexports.createElement = function (tag, ns) {\n return document.createElementNS ?\n document.createElementNS(ns || XHTML_NS, tag) :\n document.createElement(tag);\n};\nexports.removeChildren = function (element) {\n element.innerHTML = \"\";\n};\nexports.createTextNode = function (textContent, element) {\n var doc = element ? element.ownerDocument : document;\n return doc.createTextNode(textContent);\n};\nexports.createFragment = function (element) {\n var doc = element ? element.ownerDocument : document;\n return doc.createDocumentFragment();\n};\nexports.hasCssClass = function (el, name) {\n var classes = (el.className + \"\").split(/\\s+/g);\n return classes.indexOf(name) !== -1;\n};\nexports.addCssClass = function (el, name) {\n if (!exports.hasCssClass(el, name)) {\n el.className += \" \" + name;\n }\n};\nexports.removeCssClass = function (el, name) {\n var classes = el.className.split(/\\s+/g);\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n classes.splice(index, 1);\n }\n el.className = classes.join(\" \");\n};\nexports.toggleCssClass = function (el, name) {\n var classes = el.className.split(/\\s+/g), add = true;\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n add = false;\n classes.splice(index, 1);\n }\n if (add)\n classes.push(name);\n el.className = classes.join(\" \");\n return add;\n};\nexports.setCssClass = function (node, className, include) {\n if (include) {\n exports.addCssClass(node, className);\n }\n else {\n exports.removeCssClass(node, className);\n }\n};\nexports.hasCssString = function (id, doc) {\n var index = 0, sheets;\n doc = doc || document;\n if ((sheets = doc.querySelectorAll(\"style\"))) {\n while (index < sheets.length) {\n if (sheets[index++].id === id) {\n return true;\n }\n }\n }\n};\nexports.removeElementById = function (id, doc) {\n doc = doc || document;\n if (doc.getElementById(id)) {\n doc.getElementById(id).remove();\n }\n};\nvar strictCSP;\nvar cssCache = [];\nexports.useStrictCSP = function (value) {\n strictCSP = value;\n if (value == false)\n insertPendingStyles();\n else if (!cssCache)\n cssCache = [];\n};\nfunction insertPendingStyles() {\n var cache = cssCache;\n cssCache = null;\n cache && cache.forEach(function (item) {\n importCssString(item[0], item[1]);\n });\n}\nfunction importCssString(cssText, id, target) {\n if (typeof document == \"undefined\")\n return;\n if (cssCache) {\n if (target) {\n insertPendingStyles();\n }\n else if (target === false) {\n return cssCache.push([cssText, id]);\n }\n }\n if (strictCSP)\n return;\n var container = target;\n if (!target || !target.getRootNode) {\n container = document;\n }\n else {\n container = target.getRootNode();\n if (!container || container == target)\n container = document;\n }\n var doc = container.ownerDocument || container;\n if (id && exports.hasCssString(id, container))\n return null;\n if (id)\n cssText += \"\\n/*# sourceURL=ace/css/\" + id + \" */\";\n var style = exports.createElement(\"style\");\n style.appendChild(doc.createTextNode(cssText));\n if (id)\n style.id = id;\n if (container == doc)\n container = exports.getDocumentHead(doc);\n container.insertBefore(style, container.firstChild);\n}\nexports.importCssString = importCssString;\nexports.importCssStylsheet = function (uri, doc) {\n exports.buildDom([\"link\", { rel: \"stylesheet\", href: uri }], exports.getDocumentHead(doc));\n};\nexports.scrollbarWidth = function (doc) {\n var inner = exports.createElement(\"ace_inner\");\n inner.style.width = \"100%\";\n inner.style.minWidth = \"0px\";\n inner.style.height = \"200px\";\n inner.style.display = \"block\";\n var outer = exports.createElement(\"ace_outer\");\n var style = outer.style;\n style.position = \"absolute\";\n style.left = \"-10000px\";\n style.overflow = \"hidden\";\n style.width = \"200px\";\n style.minWidth = \"0px\";\n style.height = \"150px\";\n style.display = \"block\";\n outer.appendChild(inner);\n var body = (doc && doc.documentElement) || (document && document.documentElement);\n if (!body)\n return 0;\n body.appendChild(outer);\n var noScrollbar = inner.offsetWidth;\n style.overflow = \"scroll\";\n var withScrollbar = inner.offsetWidth;\n if (noScrollbar === withScrollbar) {\n withScrollbar = outer.clientWidth;\n }\n body.removeChild(outer);\n return noScrollbar - withScrollbar;\n};\nexports.computedStyle = function (element, style) {\n return window.getComputedStyle(element, \"\") || {};\n};\nexports.setStyle = function (styles, property, value) {\n if (styles[property] !== value) {\n styles[property] = value;\n }\n};\nexports.HAS_CSS_ANIMATION = false;\nexports.HAS_CSS_TRANSFORMS = false;\nexports.HI_DPI = useragent.isWin\n ? typeof window !== \"undefined\" && window.devicePixelRatio >= 1.5\n : true;\nif (useragent.isChromeOS)\n exports.HI_DPI = false;\nif (typeof document !== \"undefined\") {\n var div = document.createElement(\"div\");\n if (exports.HI_DPI && div.style.transform !== undefined)\n exports.HAS_CSS_TRANSFORMS = true;\n if (!useragent.isEdge && typeof div.style.animationName !== \"undefined\")\n exports.HAS_CSS_ANIMATION = true;\n div = null;\n}\nif (exports.HAS_CSS_TRANSFORMS) {\n exports.translate = function (element, tx, ty) {\n element.style.transform = \"translate(\" + Math.round(tx) + \"px, \" + Math.round(ty) + \"px)\";\n };\n}\nelse {\n exports.translate = function (element, tx, ty) {\n element.style.top = Math.round(ty) + \"px\";\n element.style.left = Math.round(tx) + \"px\";\n };\n}\n\n});\n\nace.define(\"ace/lib/net\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){/*\n * based on code from:\n *\n * @license RequireJS text 0.25.0 Copyright (c) 2010-2011, The Dojo Foundation All Rights Reserved.\n * Available via the MIT or new BSD license.\n * see: http://github.com/jrburke/requirejs for details\n */\n\"use strict\";\nvar dom = require(\"./dom\");\nexports.get = function (url, callback) {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, true);\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n callback(xhr.responseText);\n }\n };\n xhr.send(null);\n};\nexports.loadScript = function (path, callback) {\n var head = dom.getDocumentHead();\n var s = document.createElement('script');\n s.src = path;\n head.appendChild(s);\n s.onload = s.onreadystatechange = function (_, isAbort) {\n if (isAbort || !s.readyState || s.readyState == \"loaded\" || s.readyState == \"complete\") {\n s = s.onload = s.onreadystatechange = null;\n if (!isAbort)\n callback();\n }\n };\n};\nexports.qualifyURL = function (url) {\n var a = document.createElement('a');\n a.href = url;\n return a.href;\n};\n\n});\n\nace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nexports.inherits = function (ctor, superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n};\nexports.mixin = function (obj, mixin) {\n for (var key in mixin) {\n obj[key] = mixin[key];\n }\n return obj;\n};\nexports.implement = function (proto, mixin) {\n exports.mixin(proto, mixin);\n};\n\n});\n\nace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar EventEmitter = {};\nvar stopPropagation = function () { this.propagationStopped = true; };\nvar preventDefault = function () { this.defaultPrevented = true; };\nEventEmitter._emit =\n EventEmitter._dispatchEvent = function (eventName, e) {\n this._eventRegistry || (this._eventRegistry = {});\n this._defaultHandlers || (this._defaultHandlers = {});\n var listeners = this._eventRegistry[eventName] || [];\n var defaultHandler = this._defaultHandlers[eventName];\n if (!listeners.length && !defaultHandler)\n return;\n if (typeof e != \"object\" || !e)\n e = {};\n if (!e.type)\n e.type = eventName;\n if (!e.stopPropagation)\n e.stopPropagation = stopPropagation;\n if (!e.preventDefault)\n e.preventDefault = preventDefault;\n listeners = listeners.slice();\n for (var i = 0; i < listeners.length; i++) {\n listeners[i](e, this);\n if (e.propagationStopped)\n break;\n }\n if (defaultHandler && !e.defaultPrevented)\n return defaultHandler(e, this);\n };\nEventEmitter._signal = function (eventName, e) {\n var listeners = (this._eventRegistry || {})[eventName];\n if (!listeners)\n return;\n listeners = listeners.slice();\n for (var i = 0; i < listeners.length; i++)\n listeners[i](e, this);\n};\nEventEmitter.once = function (eventName, callback) {\n var _self = this;\n this.on(eventName, function newCallback() {\n _self.off(eventName, newCallback);\n callback.apply(null, arguments);\n });\n if (!callback) {\n return new Promise(function (resolve) {\n callback = resolve;\n });\n }\n};\nEventEmitter.setDefaultHandler = function (eventName, callback) {\n var handlers = this._defaultHandlers;\n if (!handlers)\n handlers = this._defaultHandlers = { _disabled_: {} };\n if (handlers[eventName]) {\n var old = handlers[eventName];\n var disabled = handlers._disabled_[eventName];\n if (!disabled)\n handlers._disabled_[eventName] = disabled = [];\n disabled.push(old);\n var i = disabled.indexOf(callback);\n if (i != -1)\n disabled.splice(i, 1);\n }\n handlers[eventName] = callback;\n};\nEventEmitter.removeDefaultHandler = function (eventName, callback) {\n var handlers = this._defaultHandlers;\n if (!handlers)\n return;\n var disabled = handlers._disabled_[eventName];\n if (handlers[eventName] == callback) {\n if (disabled)\n this.setDefaultHandler(eventName, disabled.pop());\n }\n else if (disabled) {\n var i = disabled.indexOf(callback);\n if (i != -1)\n disabled.splice(i, 1);\n }\n};\nEventEmitter.on =\n EventEmitter.addEventListener = function (eventName, callback, capturing) {\n this._eventRegistry = this._eventRegistry || {};\n var listeners = this._eventRegistry[eventName];\n if (!listeners)\n listeners = this._eventRegistry[eventName] = [];\n if (listeners.indexOf(callback) == -1)\n listeners[capturing ? \"unshift\" : \"push\"](callback);\n return callback;\n };\nEventEmitter.off =\n EventEmitter.removeListener =\n EventEmitter.removeEventListener = function (eventName, callback) {\n this._eventRegistry = this._eventRegistry || {};\n var listeners = this._eventRegistry[eventName];\n if (!listeners)\n return;\n var index = listeners.indexOf(callback);\n if (index !== -1)\n listeners.splice(index, 1);\n };\nEventEmitter.removeAllListeners = function (eventName) {\n if (!eventName)\n this._eventRegistry = this._defaultHandlers = undefined;\n if (this._eventRegistry)\n this._eventRegistry[eventName] = undefined;\n if (this._defaultHandlers)\n this._defaultHandlers[eventName] = undefined;\n};\nexports.EventEmitter = EventEmitter;\n\n});\n\nace.define(\"ace/lib/report_error\",[\"require\",\"exports\",\"module\"], function(require, exports, module){exports.reportError = function reportError(msg, data) {\n var e = new Error(msg);\n e.data = data;\n if (typeof console == \"object\" && console.error)\n console.error(e);\n setTimeout(function () { throw e; });\n};\n\n});\n\nace.define(\"ace/lib/app_config\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\",\"ace/lib/report_error\"], function(require, exports, module){\"no use strict\";\nvar oop = require(\"./oop\");\nvar EventEmitter = require(\"./event_emitter\").EventEmitter;\nvar reportError = require(\"./report_error\").reportError;\nvar optionsProvider = {\n setOptions: function (optList) {\n Object.keys(optList).forEach(function (key) {\n this.setOption(key, optList[key]);\n }, this);\n },\n getOptions: function (optionNames) {\n var result = {};\n if (!optionNames) {\n var options = this.$options;\n optionNames = Object.keys(options).filter(function (key) {\n return !options[key].hidden;\n });\n }\n else if (!Array.isArray(optionNames)) {\n result = optionNames;\n optionNames = Object.keys(result);\n }\n optionNames.forEach(function (key) {\n result[key] = this.getOption(key);\n }, this);\n return result;\n },\n setOption: function (name, value) {\n if (this[\"$\" + name] === value)\n return;\n var opt = this.$options[name];\n if (!opt) {\n return warn('misspelled option \"' + name + '\"');\n }\n if (opt.forwardTo)\n return this[opt.forwardTo] && this[opt.forwardTo].setOption(name, value);\n if (!opt.handlesSet)\n this[\"$\" + name] = value;\n if (opt && opt.set)\n opt.set.call(this, value);\n },\n getOption: function (name) {\n var opt = this.$options[name];\n if (!opt) {\n return warn('misspelled option \"' + name + '\"');\n }\n if (opt.forwardTo)\n return this[opt.forwardTo] && this[opt.forwardTo].getOption(name);\n return opt && opt.get ? opt.get.call(this) : this[\"$\" + name];\n }\n};\nfunction warn(message) {\n if (typeof console != \"undefined\" && console.warn)\n console.warn.apply(console, arguments);\n}\nvar messages;\nvar AppConfig = /** @class */ (function () {\n function AppConfig() {\n this.$defaultOptions = {};\n }\n AppConfig.prototype.defineOptions = function (obj, path, options) {\n if (!obj.$options)\n this.$defaultOptions[path] = obj.$options = {};\n Object.keys(options).forEach(function (key) {\n var opt = options[key];\n if (typeof opt == \"string\")\n opt = { forwardTo: opt };\n opt.name || (opt.name = key);\n obj.$options[opt.name] = opt;\n if (\"initialValue\" in opt)\n obj[\"$\" + opt.name] = opt.initialValue;\n });\n oop.implement(obj, optionsProvider);\n return this;\n };\n AppConfig.prototype.resetOptions = function (obj) {\n Object.keys(obj.$options).forEach(function (key) {\n var opt = obj.$options[key];\n if (\"value\" in opt)\n obj.setOption(key, opt.value);\n });\n };\n AppConfig.prototype.setDefaultValue = function (path, name, value) {\n if (!path) {\n for (path in this.$defaultOptions)\n if (this.$defaultOptions[path][name])\n break;\n if (!this.$defaultOptions[path][name])\n return false;\n }\n var opts = this.$defaultOptions[path] || (this.$defaultOptions[path] = {});\n if (opts[name]) {\n if (opts.forwardTo)\n this.setDefaultValue(opts.forwardTo, name, value);\n else\n opts[name].value = value;\n }\n };\n AppConfig.prototype.setDefaultValues = function (path, optionHash) {\n Object.keys(optionHash).forEach(function (key) {\n this.setDefaultValue(path, key, optionHash[key]);\n }, this);\n };\n AppConfig.prototype.setMessages = function (value) {\n messages = value;\n };\n AppConfig.prototype.nls = function (string, params) {\n if (messages && !messages[string]) {\n warn(\"No message found for '\" + string + \"' in the provided messages, falling back to default English message.\");\n }\n var translated = messages && messages[string] || string;\n if (params) {\n translated = translated.replace(/\\$(\\$|[\\d]+)/g, function (_, name) {\n if (name == \"$\")\n return \"$\";\n return params[name];\n });\n }\n return translated;\n };\n return AppConfig;\n}());\nAppConfig.prototype.warn = warn;\nAppConfig.prototype.reportError = reportError;\noop.implement(AppConfig.prototype, EventEmitter);\nexports.AppConfig = AppConfig;\n\n});\n\nace.define(\"ace/theme/textmate-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){module.exports = \".ace-tm .ace_gutter {\\n background: #f0f0f0;\\n color: #333;\\n}\\n\\n.ace-tm .ace_print-margin {\\n width: 1px;\\n background: #e8e8e8;\\n}\\n\\n.ace-tm .ace_fold {\\n background-color: #6B72E6;\\n}\\n\\n.ace-tm {\\n background-color: #FFFFFF;\\n color: black;\\n}\\n\\n.ace-tm .ace_cursor {\\n color: black;\\n}\\n \\n.ace-tm .ace_invisible {\\n color: rgb(191, 191, 191);\\n}\\n\\n.ace-tm .ace_storage,\\n.ace-tm .ace_keyword {\\n color: blue;\\n}\\n\\n.ace-tm .ace_constant {\\n color: rgb(197, 6, 11);\\n}\\n\\n.ace-tm .ace_constant.ace_buildin {\\n color: rgb(88, 72, 246);\\n}\\n\\n.ace-tm .ace_constant.ace_language {\\n color: rgb(88, 92, 246);\\n}\\n\\n.ace-tm .ace_constant.ace_library {\\n color: rgb(6, 150, 14);\\n}\\n\\n.ace-tm .ace_invalid {\\n background-color: rgba(255, 0, 0, 0.1);\\n color: red;\\n}\\n\\n.ace-tm .ace_support.ace_function {\\n color: rgb(60, 76, 114);\\n}\\n\\n.ace-tm .ace_support.ace_constant {\\n color: rgb(6, 150, 14);\\n}\\n\\n.ace-tm .ace_support.ace_type,\\n.ace-tm .ace_support.ace_class {\\n color: rgb(109, 121, 222);\\n}\\n\\n.ace-tm .ace_keyword.ace_operator {\\n color: rgb(104, 118, 135);\\n}\\n\\n.ace-tm .ace_string {\\n color: rgb(3, 106, 7);\\n}\\n\\n.ace-tm .ace_comment {\\n color: rgb(76, 136, 107);\\n}\\n\\n.ace-tm .ace_comment.ace_doc {\\n color: rgb(0, 102, 255);\\n}\\n\\n.ace-tm .ace_comment.ace_doc.ace_tag {\\n color: rgb(128, 159, 191);\\n}\\n\\n.ace-tm .ace_constant.ace_numeric {\\n color: rgb(0, 0, 205);\\n}\\n\\n.ace-tm .ace_variable {\\n color: rgb(49, 132, 149);\\n}\\n\\n.ace-tm .ace_xml-pe {\\n color: rgb(104, 104, 91);\\n}\\n\\n.ace-tm .ace_entity.ace_name.ace_function {\\n color: #0000A2;\\n}\\n\\n\\n.ace-tm .ace_heading {\\n color: rgb(12, 7, 255);\\n}\\n\\n.ace-tm .ace_list {\\n color:rgb(185, 6, 144);\\n}\\n\\n.ace-tm .ace_meta.ace_tag {\\n color:rgb(0, 22, 142);\\n}\\n\\n.ace-tm .ace_string.ace_regex {\\n color: rgb(255, 0, 0)\\n}\\n\\n.ace-tm .ace_marker-layer .ace_selection {\\n background: rgb(181, 213, 255);\\n}\\n.ace-tm.ace_multiselect .ace_selection.ace_start {\\n box-shadow: 0 0 3px 0px white;\\n}\\n.ace-tm .ace_marker-layer .ace_step {\\n background: rgb(252, 255, 0);\\n}\\n\\n.ace-tm .ace_marker-layer .ace_stack {\\n background: rgb(164, 229, 101);\\n}\\n\\n.ace-tm .ace_marker-layer .ace_bracket {\\n margin: -1px 0 0 -1px;\\n border: 1px solid rgb(192, 192, 192);\\n}\\n\\n.ace-tm .ace_marker-layer .ace_active-line {\\n background: rgba(0, 0, 0, 0.07);\\n}\\n\\n.ace-tm .ace_gutter-active-line {\\n background-color : #dcdcdc;\\n}\\n\\n.ace-tm .ace_marker-layer .ace_selected-word {\\n background: rgb(250, 250, 255);\\n border: 1px solid rgb(200, 200, 250);\\n}\\n\\n.ace-tm .ace_indent-guide {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\n}\\n\\n.ace-tm .ace_indent-guide-active {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC\\\") right repeat-y;\\n}\\n\";\n\n});\n\nace.define(\"ace/theme/textmate\",[\"require\",\"exports\",\"module\",\"ace/theme/textmate-css\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nexports.isDark = false;\nexports.cssClass = \"ace-tm\";\nexports.cssText = require(\"./textmate-css\");\nexports.$id = \"ace/theme/textmate\";\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass, false);\n\n});\n\nace.define(\"ace/config\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/net\",\"ace/lib/dom\",\"ace/lib/app_config\",\"ace/theme/textmate\"], function(require, exports, module){\"no use strict\";\nvar lang = require(\"./lib/lang\");\nvar net = require(\"./lib/net\");\nvar dom = require(\"./lib/dom\");\nvar AppConfig = require(\"./lib/app_config\").AppConfig;\nmodule.exports = exports = new AppConfig();\nvar options = {\n packaged: false,\n workerPath: null,\n modePath: null,\n themePath: null,\n basePath: \"\",\n suffix: \".js\",\n $moduleUrls: {},\n loadWorkerFromBlob: true,\n sharedPopups: false,\n useStrictCSP: null\n};\nexports.get = function (key) {\n if (!options.hasOwnProperty(key))\n throw new Error(\"Unknown config key: \" + key);\n return options[key];\n};\nexports.set = function (key, value) {\n if (options.hasOwnProperty(key))\n options[key] = value;\n else if (this.setDefaultValue(\"\", key, value) == false)\n throw new Error(\"Unknown config key: \" + key);\n if (key == \"useStrictCSP\")\n dom.useStrictCSP(value);\n};\nexports.all = function () {\n return lang.copyObject(options);\n};\nexports.$modes = {};\nexports.moduleUrl = function (name, component) {\n if (options.$moduleUrls[name])\n return options.$moduleUrls[name];\n var parts = name.split(\"/\");\n component = component || parts[parts.length - 2] || \"\";\n var sep = component == \"snippets\" ? \"/\" : \"-\";\n var base = parts[parts.length - 1];\n if (component == \"worker\" && sep == \"-\") {\n var re = new RegExp(\"^\" + component + \"[\\\\-_]|[\\\\-_]\" + component + \"$\", \"g\");\n base = base.replace(re, \"\");\n }\n if ((!base || base == component) && parts.length > 1)\n base = parts[parts.length - 2];\n var path = options[component + \"Path\"];\n if (path == null) {\n path = options.basePath;\n }\n else if (sep == \"/\") {\n component = sep = \"\";\n }\n if (path && path.slice(-1) != \"/\")\n path += \"/\";\n return path + component + sep + base + this.get(\"suffix\");\n};\nexports.setModuleUrl = function (name, subst) {\n return options.$moduleUrls[name] = subst;\n};\nvar loader = function (moduleName, cb) {\n if (moduleName === \"ace/theme/textmate\" || moduleName === \"./theme/textmate\")\n return cb(null, require(\"./theme/textmate\"));\n if (customLoader)\n return customLoader(moduleName, cb);\n console.error(\"loader is not configured\");\n};\nvar customLoader;\nexports.setLoader = function (cb) {\n customLoader = cb;\n};\nexports.dynamicModules = Object.create(null);\nexports.$loading = {};\nexports.$loaded = {};\nexports.loadModule = function (moduleName, onLoad) {\n var loadedModule, moduleType;\n if (Array.isArray(moduleName)) {\n moduleType = moduleName[0];\n moduleName = moduleName[1];\n }\n var load = function (module) {\n if (module && !exports.$loading[moduleName])\n return onLoad && onLoad(module);\n if (!exports.$loading[moduleName])\n exports.$loading[moduleName] = [];\n exports.$loading[moduleName].push(onLoad);\n if (exports.$loading[moduleName].length > 1)\n return;\n var afterLoad = function () {\n loader(moduleName, function (err, module) {\n if (module)\n exports.$loaded[moduleName] = module;\n exports._emit(\"load.module\", { name: moduleName, module: module });\n var listeners = exports.$loading[moduleName];\n exports.$loading[moduleName] = null;\n listeners.forEach(function (onLoad) {\n onLoad && onLoad(module);\n });\n });\n };\n if (!exports.get(\"packaged\"))\n return afterLoad();\n net.loadScript(exports.moduleUrl(moduleName, moduleType), afterLoad);\n reportErrorIfPathIsNotConfigured();\n };\n if (exports.dynamicModules[moduleName]) {\n exports.dynamicModules[moduleName]().then(function (module) {\n if (module.default) {\n load(module.default);\n }\n else {\n load(module);\n }\n });\n }\n else {\n try {\n loadedModule = this.$require(moduleName);\n }\n catch (e) { }\n load(loadedModule || exports.$loaded[moduleName]);\n }\n};\nexports.$require = function (moduleName) {\n if (typeof module.require == \"function\") {\n var req = \"require\";\n return module[req](moduleName);\n }\n};\nexports.setModuleLoader = function (moduleName, onLoad) {\n exports.dynamicModules[moduleName] = onLoad;\n};\nvar reportErrorIfPathIsNotConfigured = function () {\n if (!options.basePath && !options.workerPath\n && !options.modePath && !options.themePath\n && !Object.keys(options.$moduleUrls).length) {\n console.error(\"Unable to infer path to ace from script src,\", \"use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes\", \"or with webpack use ace/webpack-resolver\");\n reportErrorIfPathIsNotConfigured = function () { };\n }\n};\nexports.version = \"1.32.0\";\n\n});\n\nace.define(\"ace/loader_build\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/config\"], function(require, exports, module) {\n\"use strict\";\n\nrequire(\"./lib/fixoldbrowsers\");\nvar config = require(\"./config\");\nconfig.setLoader(function(moduleName, cb) {\n require([moduleName], function(module) {\n cb(null, module);\n });\n});\n\nvar global = (function() {\n return this || typeof window != \"undefined\" && window;\n})();\n\nmodule.exports = function(ace) {\n config.init = init;\n config.$require = require;\n ace.require = require;\n\n if (typeof define === \"function\")\n ace.define = define;\n};\ninit(true);function init(packaged) {\n\n if (!global || !global.document)\n return;\n \n config.set(\"packaged\", packaged || require.packaged || module.packaged || (global.define && define.packaged));\n\n var scriptOptions = {};\n var scriptUrl = \"\";\n var currentScript = (document.currentScript || document._currentScript ); // native or polyfill\n var currentDocument = currentScript && currentScript.ownerDocument || document;\n \n if (currentScript && currentScript.src) {\n scriptUrl = currentScript.src.split(/[?#]/)[0].split(\"/\").slice(0, -1).join(\"/\") || \"\";\n }\n \n var scripts = currentDocument.getElementsByTagName(\"script\");\n for (var i=0; i [\" + this.end.row + \"/\" + this.end.column + \"]\");\n };\n Range.prototype.contains = function (row, column) {\n return this.compare(row, column) == 0;\n };\n Range.prototype.compareRange = function (range) {\n var cmp, end = range.end, start = range.start;\n cmp = this.compare(end.row, end.column);\n if (cmp == 1) {\n cmp = this.compare(start.row, start.column);\n if (cmp == 1) {\n return 2;\n }\n else if (cmp == 0) {\n return 1;\n }\n else {\n return 0;\n }\n }\n else if (cmp == -1) {\n return -2;\n }\n else {\n cmp = this.compare(start.row, start.column);\n if (cmp == -1) {\n return -1;\n }\n else if (cmp == 1) {\n return 42;\n }\n else {\n return 0;\n }\n }\n };\n Range.prototype.comparePoint = function (p) {\n return this.compare(p.row, p.column);\n };\n Range.prototype.containsRange = function (range) {\n return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;\n };\n Range.prototype.intersects = function (range) {\n var cmp = this.compareRange(range);\n return (cmp == -1 || cmp == 0 || cmp == 1);\n };\n Range.prototype.isEnd = function (row, column) {\n return this.end.row == row && this.end.column == column;\n };\n Range.prototype.isStart = function (row, column) {\n return this.start.row == row && this.start.column == column;\n };\n Range.prototype.setStart = function (row, column) {\n if (typeof row == \"object\") {\n this.start.column = row.column;\n this.start.row = row.row;\n }\n else {\n this.start.row = row;\n this.start.column = column;\n }\n };\n Range.prototype.setEnd = function (row, column) {\n if (typeof row == \"object\") {\n this.end.column = row.column;\n this.end.row = row.row;\n }\n else {\n this.end.row = row;\n this.end.column = column;\n }\n };\n Range.prototype.inside = function (row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column) || this.isStart(row, column)) {\n return false;\n }\n else {\n return true;\n }\n }\n return false;\n };\n Range.prototype.insideStart = function (row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column)) {\n return false;\n }\n else {\n return true;\n }\n }\n return false;\n };\n Range.prototype.insideEnd = function (row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isStart(row, column)) {\n return false;\n }\n else {\n return true;\n }\n }\n return false;\n };\n Range.prototype.compare = function (row, column) {\n if (!this.isMultiLine()) {\n if (row === this.start.row) {\n return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);\n }\n }\n if (row < this.start.row)\n return -1;\n if (row > this.end.row)\n return 1;\n if (this.start.row === row)\n return column >= this.start.column ? 0 : -1;\n if (this.end.row === row)\n return column <= this.end.column ? 0 : 1;\n return 0;\n };\n Range.prototype.compareStart = function (row, column) {\n if (this.start.row == row && this.start.column == column) {\n return -1;\n }\n else {\n return this.compare(row, column);\n }\n };\n Range.prototype.compareEnd = function (row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n }\n else {\n return this.compare(row, column);\n }\n };\n Range.prototype.compareInside = function (row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n }\n else if (this.start.row == row && this.start.column == column) {\n return -1;\n }\n else {\n return this.compare(row, column);\n }\n };\n Range.prototype.clipRows = function (firstRow, lastRow) {\n if (this.end.row > lastRow)\n var end = { row: lastRow + 1, column: 0 };\n else if (this.end.row < firstRow)\n var end = { row: firstRow, column: 0 };\n if (this.start.row > lastRow)\n var start = { row: lastRow + 1, column: 0 };\n else if (this.start.row < firstRow)\n var start = { row: firstRow, column: 0 };\n return Range.fromPoints(start || this.start, end || this.end);\n };\n Range.prototype.extend = function (row, column) {\n var cmp = this.compare(row, column);\n if (cmp == 0)\n return this;\n else if (cmp == -1)\n var start = { row: row, column: column };\n else\n var end = { row: row, column: column };\n return Range.fromPoints(start || this.start, end || this.end);\n };\n Range.prototype.isEmpty = function () {\n return (this.start.row === this.end.row && this.start.column === this.end.column);\n };\n Range.prototype.isMultiLine = function () {\n return (this.start.row !== this.end.row);\n };\n Range.prototype.clone = function () {\n return Range.fromPoints(this.start, this.end);\n };\n Range.prototype.collapseRows = function () {\n if (this.end.column == 0)\n return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row - 1), 0);\n else\n return new Range(this.start.row, 0, this.end.row, 0);\n };\n Range.prototype.toScreenRange = function (session) {\n var screenPosStart = session.documentToScreenPosition(this.start);\n var screenPosEnd = session.documentToScreenPosition(this.end);\n return new Range(screenPosStart.row, screenPosStart.column, screenPosEnd.row, screenPosEnd.column);\n };\n Range.prototype.moveBy = function (row, column) {\n this.start.row += row;\n this.start.column += column;\n this.end.row += row;\n this.end.column += column;\n };\n return Range;\n}());\nRange.fromPoints = function (start, end) {\n return new Range(start.row, start.column, end.row, end.column);\n};\nRange.comparePoints = comparePoints;\nRange.comparePoints = function (p1, p2) {\n return p1.row - p2.row || p1.column - p2.column;\n};\nexports.Range = Range;\n\n});\n\nace.define(\"ace/lib/keys\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\"], function(require, exports, module){/*! @license\n==========================================================================\nSproutCore -- JavaScript Application Framework\ncopyright 2006-2009, Sprout Systems Inc., Apple Inc. and contributors.\n\nPermission is hereby granted, free of charge, to any person obtaining a\ncopy of this software and associated documentation files (the \"Software\"),\nto deal in the Software without restriction, including without limitation\nthe rights to use, copy, modify, merge, publish, distribute, sublicense,\nand/or sell copies of the Software, and to permit persons to whom the\nSoftware is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\nDEALINGS IN THE SOFTWARE.\n\nSproutCore and the SproutCore logo are trademarks of Sprout Systems, Inc.\n\nFor more information about SproutCore, visit http://www.sproutcore.com\n\n\n==========================================================================\n@license */\n\"use strict\";\nvar oop = require(\"./oop\");\nvar Keys = (function () {\n var ret = {\n MODIFIER_KEYS: {\n 16: 'Shift', 17: 'Ctrl', 18: 'Alt', 224: 'Meta',\n 91: 'MetaLeft', 92: 'MetaRight', 93: 'ContextMenu'\n },\n KEY_MODS: {\n \"ctrl\": 1, \"alt\": 2, \"option\": 2, \"shift\": 4,\n \"super\": 8, \"meta\": 8, \"command\": 8, \"cmd\": 8,\n \"control\": 1\n },\n FUNCTION_KEYS: {\n 8: \"Backspace\",\n 9: \"Tab\",\n 13: \"Return\",\n 19: \"Pause\",\n 27: \"Esc\",\n 32: \"Space\",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"Left\",\n 38: \"Up\",\n 39: \"Right\",\n 40: \"Down\",\n 44: \"Print\",\n 45: \"Insert\",\n 46: \"Delete\",\n 96: \"Numpad0\",\n 97: \"Numpad1\",\n 98: \"Numpad2\",\n 99: \"Numpad3\",\n 100: \"Numpad4\",\n 101: \"Numpad5\",\n 102: \"Numpad6\",\n 103: \"Numpad7\",\n 104: \"Numpad8\",\n 105: \"Numpad9\",\n '-13': \"NumpadEnter\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"Numlock\",\n 145: \"Scrolllock\"\n },\n PRINTABLE_KEYS: {\n 32: ' ', 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5',\n 54: '6', 55: '7', 56: '8', 57: '9', 59: ';', 61: '=', 65: 'a',\n 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h',\n 73: 'i', 74: 'j', 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o',\n 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't', 85: 'u', 86: 'v',\n 87: 'w', 88: 'x', 89: 'y', 90: 'z', 107: '+', 109: '-', 110: '.',\n 186: ';', 187: '=', 188: ',', 189: '-', 190: '.', 191: '/', 192: '`',\n 219: '[', 220: '\\\\', 221: ']', 222: \"'\", 111: '/', 106: '*'\n }\n };\n ret.PRINTABLE_KEYS[173] = '-';\n var name, i;\n for (i in ret.FUNCTION_KEYS) {\n name = ret.FUNCTION_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n for (i in ret.PRINTABLE_KEYS) {\n name = ret.PRINTABLE_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n oop.mixin(ret, ret.MODIFIER_KEYS);\n oop.mixin(ret, ret.PRINTABLE_KEYS);\n oop.mixin(ret, ret.FUNCTION_KEYS);\n ret.enter = ret[\"return\"];\n ret.escape = ret.esc;\n ret.del = ret[\"delete\"];\n (function () {\n var mods = [\"cmd\", \"ctrl\", \"alt\", \"shift\"];\n for (var i = Math.pow(2, mods.length); i--;) {\n ret.KEY_MODS[i] = mods.filter(function (x) {\n return i & ret.KEY_MODS[x];\n }).join(\"-\") + \"-\";\n }\n })();\n ret.KEY_MODS[0] = \"\";\n ret.KEY_MODS[-1] = \"input-\";\n return ret;\n})();\noop.mixin(exports, Keys);\nexports.default = exports;\nexports.keyCodeToString = function (keyCode) {\n var keyString = Keys[keyCode];\n if (typeof keyString != \"string\")\n keyString = String.fromCharCode(keyCode);\n return keyString.toLowerCase();\n};\n\n});\n\nace.define(\"ace/lib/event\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar keys = require(\"./keys\");\nvar useragent = require(\"./useragent\");\nvar pressedKeys = null;\nvar ts = 0;\nvar activeListenerOptions;\nfunction detectListenerOptionsSupport() {\n activeListenerOptions = false;\n try {\n document.createComment(\"\").addEventListener(\"test\", function () { }, {\n get passive() {\n activeListenerOptions = { passive: false };\n }\n });\n }\n catch (e) { }\n}\nfunction getListenerOptions() {\n if (activeListenerOptions == undefined)\n detectListenerOptionsSupport();\n return activeListenerOptions;\n}\nfunction EventListener(elem, type, callback) {\n this.elem = elem;\n this.type = type;\n this.callback = callback;\n}\nEventListener.prototype.destroy = function () {\n removeListener(this.elem, this.type, this.callback);\n this.elem = this.type = this.callback = undefined;\n};\nvar addListener = exports.addListener = function (elem, type, callback, destroyer) {\n elem.addEventListener(type, callback, getListenerOptions());\n if (destroyer)\n destroyer.$toDestroy.push(new EventListener(elem, type, callback));\n};\nvar removeListener = exports.removeListener = function (elem, type, callback) {\n elem.removeEventListener(type, callback, getListenerOptions());\n};\nexports.stopEvent = function (e) {\n exports.stopPropagation(e);\n exports.preventDefault(e);\n return false;\n};\nexports.stopPropagation = function (e) {\n if (e.stopPropagation)\n e.stopPropagation();\n};\nexports.preventDefault = function (e) {\n if (e.preventDefault)\n e.preventDefault();\n};\nexports.getButton = function (e) {\n if (e.type == \"dblclick\")\n return 0;\n if (e.type == \"contextmenu\" || (useragent.isMac && (e.ctrlKey && !e.altKey && !e.shiftKey)))\n return 2;\n return e.button;\n};\nexports.capture = function (el, eventHandler, releaseCaptureHandler) {\n var ownerDocument = el && el.ownerDocument || document;\n function onMouseUp(e) {\n eventHandler && eventHandler(e);\n releaseCaptureHandler && releaseCaptureHandler(e);\n removeListener(ownerDocument, \"mousemove\", eventHandler);\n removeListener(ownerDocument, \"mouseup\", onMouseUp);\n removeListener(ownerDocument, \"dragstart\", onMouseUp);\n }\n addListener(ownerDocument, \"mousemove\", eventHandler);\n addListener(ownerDocument, \"mouseup\", onMouseUp);\n addListener(ownerDocument, \"dragstart\", onMouseUp);\n return onMouseUp;\n};\nexports.addMouseWheelListener = function (el, callback, destroyer) {\n addListener(el, \"wheel\", function (e) {\n var factor = 0.15;\n var deltaX = e.deltaX || 0;\n var deltaY = e.deltaY || 0;\n switch (e.deltaMode) {\n case e.DOM_DELTA_PIXEL:\n e.wheelX = deltaX * factor;\n e.wheelY = deltaY * factor;\n break;\n case e.DOM_DELTA_LINE:\n var linePixels = 15;\n e.wheelX = deltaX * linePixels;\n e.wheelY = deltaY * linePixels;\n break;\n case e.DOM_DELTA_PAGE:\n var pagePixels = 150;\n e.wheelX = deltaX * pagePixels;\n e.wheelY = deltaY * pagePixels;\n break;\n }\n callback(e);\n }, destroyer);\n};\nexports.addMultiMouseDownListener = function (elements, timeouts, eventHandler, callbackName, destroyer) {\n var clicks = 0;\n var startX, startY, timer;\n var eventNames = {\n 2: \"dblclick\",\n 3: \"tripleclick\",\n 4: \"quadclick\"\n };\n function onMousedown(e) {\n if (exports.getButton(e) !== 0) {\n clicks = 0;\n }\n else if (e.detail > 1) {\n clicks++;\n if (clicks > 4)\n clicks = 1;\n }\n else {\n clicks = 1;\n }\n if (useragent.isIE) {\n var isNewClick = Math.abs(e.clientX - startX) > 5 || Math.abs(e.clientY - startY) > 5;\n if (!timer || isNewClick)\n clicks = 1;\n if (timer)\n clearTimeout(timer);\n timer = setTimeout(function () { timer = null; }, timeouts[clicks - 1] || 600);\n if (clicks == 1) {\n startX = e.clientX;\n startY = e.clientY;\n }\n }\n e._clicks = clicks;\n eventHandler[callbackName](\"mousedown\", e);\n if (clicks > 4)\n clicks = 0;\n else if (clicks > 1)\n return eventHandler[callbackName](eventNames[clicks], e);\n }\n if (!Array.isArray(elements))\n elements = [elements];\n elements.forEach(function (el) {\n addListener(el, \"mousedown\", onMousedown, destroyer);\n });\n};\nvar getModifierHash = function (e) {\n return 0 | (e.ctrlKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.metaKey ? 8 : 0);\n};\nexports.getModifierString = function (e) {\n return keys.KEY_MODS[getModifierHash(e)];\n};\nfunction normalizeCommandKeys(callback, e, keyCode) {\n var hashId = getModifierHash(e);\n if (!useragent.isMac && pressedKeys) {\n if (e.getModifierState && (e.getModifierState(\"OS\") || e.getModifierState(\"Win\")))\n hashId |= 8;\n if (pressedKeys.altGr) {\n if ((3 & hashId) != 3)\n pressedKeys.altGr = 0;\n else\n return;\n }\n if (keyCode === 18 || keyCode === 17) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (keyCode === 17 && location === 1) {\n if (pressedKeys[keyCode] == 1)\n ts = e.timeStamp;\n }\n else if (keyCode === 18 && hashId === 3 && location === 2) {\n var dt = e.timeStamp - ts;\n if (dt < 50)\n pressedKeys.altGr = true;\n }\n }\n }\n if (keyCode in keys.MODIFIER_KEYS) {\n keyCode = -1;\n }\n if (!hashId && keyCode === 13) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (location === 3) {\n callback(e, hashId, -keyCode);\n if (e.defaultPrevented)\n return;\n }\n }\n if (useragent.isChromeOS && hashId & 8) {\n callback(e, hashId, keyCode);\n if (e.defaultPrevented)\n return;\n else\n hashId &= ~8;\n }\n if (!hashId && !(keyCode in keys.FUNCTION_KEYS) && !(keyCode in keys.PRINTABLE_KEYS)) {\n return false;\n }\n return callback(e, hashId, keyCode);\n}\nexports.addCommandKeyListener = function (el, callback, destroyer) {\n if (useragent.isOldGecko || (useragent.isOpera && !(\"KeyboardEvent\" in window))) {\n var lastKeyDownKeyCode = null;\n addListener(el, \"keydown\", function (e) {\n lastKeyDownKeyCode = e.keyCode;\n }, destroyer);\n addListener(el, \"keypress\", function (e) {\n return normalizeCommandKeys(callback, e, lastKeyDownKeyCode);\n }, destroyer);\n }\n else {\n var lastDefaultPrevented = null;\n addListener(el, \"keydown\", function (e) {\n pressedKeys[e.keyCode] = (pressedKeys[e.keyCode] || 0) + 1;\n var result = normalizeCommandKeys(callback, e, e.keyCode);\n lastDefaultPrevented = e.defaultPrevented;\n return result;\n }, destroyer);\n addListener(el, \"keypress\", function (e) {\n if (lastDefaultPrevented && (e.ctrlKey || e.altKey || e.shiftKey || e.metaKey)) {\n exports.stopEvent(e);\n lastDefaultPrevented = null;\n }\n }, destroyer);\n addListener(el, \"keyup\", function (e) {\n pressedKeys[e.keyCode] = null;\n }, destroyer);\n if (!pressedKeys) {\n resetPressedKeys();\n addListener(window, \"focus\", resetPressedKeys);\n }\n }\n};\nfunction resetPressedKeys() {\n pressedKeys = Object.create(null);\n}\nif (typeof window == \"object\" && window.postMessage && !useragent.isOldIE) {\n var postMessageId = 1;\n exports.nextTick = function (callback, win) {\n win = win || window;\n var messageName = \"zero-timeout-message-\" + (postMessageId++);\n var listener = function (e) {\n if (e.data == messageName) {\n exports.stopPropagation(e);\n removeListener(win, \"message\", listener);\n callback();\n }\n };\n addListener(win, \"message\", listener);\n win.postMessage(messageName, \"*\");\n };\n}\nexports.$idleBlocked = false;\nexports.onIdle = function (cb, timeout) {\n return setTimeout(function handler() {\n if (!exports.$idleBlocked) {\n cb();\n }\n else {\n setTimeout(handler, 100);\n }\n }, timeout);\n};\nexports.$idleBlockId = null;\nexports.blockIdle = function (delay) {\n if (exports.$idleBlockId)\n clearTimeout(exports.$idleBlockId);\n exports.$idleBlocked = true;\n exports.$idleBlockId = setTimeout(function () {\n exports.$idleBlocked = false;\n }, delay || 100);\n};\nexports.nextFrame = typeof window == \"object\" && (window.requestAnimationFrame\n || window.mozRequestAnimationFrame\n || window.webkitRequestAnimationFrame\n || window.msRequestAnimationFrame\n || window.oRequestAnimationFrame);\nif (exports.nextFrame)\n exports.nextFrame = exports.nextFrame.bind(window);\nelse\n exports.nextFrame = function (callback) {\n setTimeout(callback, 17);\n };\n\n});\n\nace.define(\"ace/clipboard\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar $cancelT;\nmodule.exports = {\n lineMode: false,\n pasteCancelled: function () {\n if ($cancelT && $cancelT > Date.now() - 50)\n return true;\n return $cancelT = false;\n },\n cancel: function () {\n $cancelT = Date.now();\n }\n};\n\n});\n\nace.define(\"ace/keyboard/textinput\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/config\",\"ace/lib/useragent\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/clipboard\",\"ace/lib/keys\"], function(require, exports, module){\"use strict\";\nvar event = require(\"../lib/event\");\nvar nls = require(\"../config\").nls;\nvar useragent = require(\"../lib/useragent\");\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar clipboard = require(\"../clipboard\");\nvar BROKEN_SETDATA = useragent.isChrome < 18;\nvar USE_IE_MIME_TYPE = useragent.isIE;\nvar HAS_FOCUS_ARGS = useragent.isChrome > 63;\nvar MAX_LINE_LENGTH = 400;\nvar KEYS = require(\"../lib/keys\");\nvar MODS = KEYS.KEY_MODS;\nvar isIOS = useragent.isIOS;\nvar valueResetRegex = isIOS ? /\\s/ : /\\n/;\nvar isMobile = useragent.isMobile;\nvar TextInput = function (parentNode, host) {\n var text = dom.createElement(\"textarea\");\n text.className = \"ace_text-input\";\n text.setAttribute(\"wrap\", \"off\");\n text.setAttribute(\"autocorrect\", \"off\");\n text.setAttribute(\"autocapitalize\", \"off\");\n text.setAttribute(\"spellcheck\", false);\n text.style.opacity = \"0\";\n parentNode.insertBefore(text, parentNode.firstChild);\n var copied = false;\n var pasted = false;\n var inComposition = false;\n var sendingText = false;\n var tempStyle = '';\n if (!isMobile)\n text.style.fontSize = \"1px\";\n var commandMode = false;\n var ignoreFocusEvents = false;\n var lastValue = \"\";\n var lastSelectionStart = 0;\n var lastSelectionEnd = 0;\n var lastRestoreEnd = 0;\n var rowStart = Number.MAX_SAFE_INTEGER;\n var rowEnd = Number.MIN_SAFE_INTEGER;\n var numberOfExtraLines = 0;\n try {\n var isFocused = document.activeElement === text;\n }\n catch (e) { }\n this.setNumberOfExtraLines = function (number) {\n rowStart = Number.MAX_SAFE_INTEGER;\n rowEnd = Number.MIN_SAFE_INTEGER;\n if (number < 0) {\n numberOfExtraLines = 0;\n return;\n }\n numberOfExtraLines = number;\n };\n this.setAriaOptions = function (options) {\n if (options.activeDescendant) {\n text.setAttribute(\"aria-haspopup\", \"true\");\n text.setAttribute(\"aria-autocomplete\", options.inline ? \"both\" : \"list\");\n text.setAttribute(\"aria-activedescendant\", options.activeDescendant);\n }\n else {\n text.setAttribute(\"aria-haspopup\", \"false\");\n text.setAttribute(\"aria-autocomplete\", \"both\");\n text.removeAttribute(\"aria-activedescendant\");\n }\n if (options.role) {\n text.setAttribute(\"role\", options.role);\n }\n if (options.setLabel) {\n text.setAttribute(\"aria-roledescription\", nls(\"editor\"));\n if (host.session) {\n var row = host.session.selection.cursor.row;\n text.setAttribute(\"aria-label\", nls(\"Cursor at row $0\", [row + 1]));\n }\n }\n };\n this.setAriaOptions({ role: \"textbox\" });\n event.addListener(text, \"blur\", function (e) {\n if (ignoreFocusEvents)\n return;\n host.onBlur(e);\n isFocused = false;\n }, host);\n event.addListener(text, \"focus\", function (e) {\n if (ignoreFocusEvents)\n return;\n isFocused = true;\n if (useragent.isEdge) {\n try {\n if (!document.hasFocus())\n return;\n }\n catch (e) { }\n }\n host.onFocus(e);\n if (useragent.isEdge)\n setTimeout(resetSelection);\n else\n resetSelection();\n }, host);\n this.$focusScroll = false;\n this.focus = function () {\n this.setAriaOptions({\n setLabel: host.renderer.enableKeyboardAccessibility\n });\n if (tempStyle || HAS_FOCUS_ARGS || this.$focusScroll == \"browser\")\n return text.focus({ preventScroll: true });\n var top = text.style.top;\n text.style.position = \"fixed\";\n text.style.top = \"0px\";\n try {\n var isTransformed = text.getBoundingClientRect().top != 0;\n }\n catch (e) {\n return;\n }\n var ancestors = [];\n if (isTransformed) {\n var t = text.parentElement;\n while (t && t.nodeType == 1) {\n ancestors.push(t);\n t.setAttribute(\"ace_nocontext\", true);\n if (!t.parentElement && t.getRootNode)\n t = t.getRootNode().host;\n else\n t = t.parentElement;\n }\n }\n text.focus({ preventScroll: true });\n if (isTransformed) {\n ancestors.forEach(function (p) {\n p.removeAttribute(\"ace_nocontext\");\n });\n }\n setTimeout(function () {\n text.style.position = \"\";\n if (text.style.top == \"0px\")\n text.style.top = top;\n }, 0);\n };\n this.blur = function () {\n text.blur();\n };\n this.isFocused = function () {\n return isFocused;\n };\n host.on(\"beforeEndOperation\", function () {\n var curOp = host.curOp;\n var commandName = curOp && curOp.command && curOp.command.name;\n if (commandName == \"insertstring\")\n return;\n var isUserAction = commandName && (curOp.docChanged || curOp.selectionChanged);\n if (inComposition && isUserAction) {\n lastValue = text.value = \"\";\n onCompositionEnd();\n }\n resetSelection();\n });\n var positionToSelection = function (row, column) {\n var selection = column;\n for (var i = 1; i <= row - rowStart && i < 2 * numberOfExtraLines + 1; i++) {\n selection += host.session.getLine(row - i).length + 1;\n }\n return selection;\n };\n var resetSelection = isIOS\n ? function (value) {\n if (!isFocused || (copied && !value) || sendingText)\n return;\n if (!value)\n value = \"\";\n var newValue = \"\\n ab\" + value + \"cde fg\\n\";\n if (newValue != text.value)\n text.value = lastValue = newValue;\n var selectionStart = 4;\n var selectionEnd = 4 + (value.length || (host.selection.isEmpty() ? 0 : 1));\n if (lastSelectionStart != selectionStart || lastSelectionEnd != selectionEnd) {\n text.setSelectionRange(selectionStart, selectionEnd);\n }\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n }\n : function () {\n if (inComposition || sendingText)\n return;\n if (!isFocused && !afterContextMenu)\n return;\n inComposition = true;\n var selectionStart = 0;\n var selectionEnd = 0;\n var line = \"\";\n if (host.session) {\n var selection = host.selection;\n var range = selection.getRange();\n var row = selection.cursor.row;\n if (row === rowEnd + 1) {\n rowStart = rowEnd + 1;\n rowEnd = rowStart + 2 * numberOfExtraLines;\n }\n else if (row === rowStart - 1) {\n rowEnd = rowStart - 1;\n rowStart = rowEnd - 2 * numberOfExtraLines;\n }\n else if (row < rowStart - 1 || row > rowEnd + 1) {\n rowStart = row > numberOfExtraLines ? row - numberOfExtraLines : 0;\n rowEnd = row > numberOfExtraLines ? row + numberOfExtraLines : 2 * numberOfExtraLines;\n }\n var lines = [];\n for (var i = rowStart; i <= rowEnd; i++) {\n lines.push(host.session.getLine(i));\n }\n line = lines.join('\\n');\n selectionStart = positionToSelection(range.start.row, range.start.column);\n selectionEnd = positionToSelection(range.end.row, range.end.column);\n if (range.start.row < rowStart) {\n var prevLine = host.session.getLine(rowStart - 1);\n selectionStart = range.start.row < rowStart - 1 ? 0 : selectionStart;\n selectionEnd += prevLine.length + 1;\n line = prevLine + \"\\n\" + line;\n }\n else if (range.end.row > rowEnd) {\n var nextLine = host.session.getLine(rowEnd + 1);\n selectionEnd = range.end.row > rowEnd + 1 ? nextLine.length : range.end.column;\n selectionEnd += line.length + 1;\n line = line + \"\\n\" + nextLine;\n }\n else if (isMobile && row > 0) {\n line = \"\\n\" + line;\n selectionEnd += 1;\n selectionStart += 1;\n }\n if (line.length > MAX_LINE_LENGTH) {\n if (selectionStart < MAX_LINE_LENGTH && selectionEnd < MAX_LINE_LENGTH) {\n line = line.slice(0, MAX_LINE_LENGTH);\n }\n else {\n line = \"\\n\";\n if (selectionStart == selectionEnd) {\n selectionStart = selectionEnd = 0;\n }\n else {\n selectionStart = 0;\n selectionEnd = 1;\n }\n }\n }\n var newValue = line + \"\\n\\n\";\n if (newValue != lastValue) {\n text.value = lastValue = newValue;\n lastSelectionStart = lastSelectionEnd = newValue.length;\n }\n }\n if (afterContextMenu) {\n lastSelectionStart = text.selectionStart;\n lastSelectionEnd = text.selectionEnd;\n }\n if (lastSelectionEnd != selectionEnd\n || lastSelectionStart != selectionStart\n || text.selectionEnd != lastSelectionEnd // on ie edge selectionEnd changes silently after the initialization\n ) {\n try {\n text.setSelectionRange(selectionStart, selectionEnd);\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n }\n catch (e) { }\n }\n inComposition = false;\n };\n this.resetSelection = resetSelection;\n if (isFocused)\n host.onFocus();\n var isAllSelected = function (text) {\n return text.selectionStart === 0 && text.selectionEnd >= lastValue.length\n && text.value === lastValue && lastValue\n && text.selectionEnd !== lastSelectionEnd;\n };\n var onSelect = function (e) {\n if (inComposition)\n return;\n if (copied) {\n copied = false;\n }\n else if (isAllSelected(text)) {\n host.selectAll();\n resetSelection();\n }\n else if (isMobile && text.selectionStart != lastSelectionStart) {\n resetSelection();\n }\n };\n var inputHandler = null;\n this.setInputHandler = function (cb) { inputHandler = cb; };\n this.getInputHandler = function () { return inputHandler; };\n var afterContextMenu = false;\n var sendText = function (value, fromInput) {\n if (afterContextMenu)\n afterContextMenu = false;\n if (pasted) {\n resetSelection();\n if (value)\n host.onPaste(value);\n pasted = false;\n return \"\";\n }\n else {\n var selectionStart = text.selectionStart;\n var selectionEnd = text.selectionEnd;\n var extendLeft = lastSelectionStart;\n var extendRight = lastValue.length - lastSelectionEnd;\n var inserted = value;\n var restoreStart = value.length - selectionStart;\n var restoreEnd = value.length - selectionEnd;\n var i = 0;\n while (extendLeft > 0 && lastValue[i] == value[i]) {\n i++;\n extendLeft--;\n }\n inserted = inserted.slice(i);\n i = 1;\n while (extendRight > 0 && lastValue.length - i > lastSelectionStart - 1 && lastValue[lastValue.length - i] == value[value.length - i]) {\n i++;\n extendRight--;\n }\n restoreStart -= i - 1;\n restoreEnd -= i - 1;\n var endIndex = inserted.length - i + 1;\n if (endIndex < 0) {\n extendLeft = -endIndex;\n endIndex = 0;\n }\n inserted = inserted.slice(0, endIndex);\n if (!fromInput && !inserted && !restoreStart && !extendLeft && !extendRight && !restoreEnd)\n return \"\";\n sendingText = true;\n var shouldReset = false;\n if (useragent.isAndroid && inserted == \". \") {\n inserted = \" \";\n shouldReset = true;\n }\n if (inserted && !extendLeft && !extendRight && !restoreStart && !restoreEnd || commandMode) {\n host.onTextInput(inserted);\n }\n else {\n host.onTextInput(inserted, {\n extendLeft: extendLeft,\n extendRight: extendRight,\n restoreStart: restoreStart,\n restoreEnd: restoreEnd\n });\n }\n sendingText = false;\n lastValue = value;\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n lastRestoreEnd = restoreEnd;\n return shouldReset ? \"\\n\" : inserted;\n }\n };\n var onInput = function (e) {\n if (inComposition)\n return onCompositionUpdate();\n if (e && e.inputType) {\n if (e.inputType == \"historyUndo\")\n return host.execCommand(\"undo\");\n if (e.inputType == \"historyRedo\")\n return host.execCommand(\"redo\");\n }\n var data = text.value;\n var inserted = sendText(data, true);\n if (data.length > MAX_LINE_LENGTH + 100\n || valueResetRegex.test(inserted)\n || isMobile && lastSelectionStart < 1 && lastSelectionStart == lastSelectionEnd) {\n resetSelection();\n }\n };\n var handleClipboardData = function (e, data, forceIEMime) {\n var clipboardData = e.clipboardData || window.clipboardData;\n if (!clipboardData || BROKEN_SETDATA)\n return;\n var mime = USE_IE_MIME_TYPE || forceIEMime ? \"Text\" : \"text/plain\";\n try {\n if (data) {\n return clipboardData.setData(mime, data) !== false;\n }\n else {\n return clipboardData.getData(mime);\n }\n }\n catch (e) {\n if (!forceIEMime)\n return handleClipboardData(e, data, true);\n }\n };\n var doCopy = function (e, isCut) {\n var data = host.getCopyText();\n if (!data)\n return event.preventDefault(e);\n if (handleClipboardData(e, data)) {\n if (isIOS) {\n resetSelection(data);\n copied = data;\n setTimeout(function () {\n copied = false;\n }, 10);\n }\n isCut ? host.onCut() : host.onCopy();\n event.preventDefault(e);\n }\n else {\n copied = true;\n text.value = data;\n text.select();\n setTimeout(function () {\n copied = false;\n resetSelection();\n isCut ? host.onCut() : host.onCopy();\n });\n }\n };\n var onCut = function (e) {\n doCopy(e, true);\n };\n var onCopy = function (e) {\n doCopy(e, false);\n };\n var onPaste = function (e) {\n var data = handleClipboardData(e);\n if (clipboard.pasteCancelled())\n return;\n if (typeof data == \"string\") {\n if (data)\n host.onPaste(data, e);\n if (useragent.isIE)\n setTimeout(resetSelection);\n event.preventDefault(e);\n }\n else {\n text.value = \"\";\n pasted = true;\n }\n };\n event.addCommandKeyListener(text, host.onCommandKey.bind(host), host);\n event.addListener(text, \"select\", onSelect, host);\n event.addListener(text, \"input\", onInput, host);\n event.addListener(text, \"cut\", onCut, host);\n event.addListener(text, \"copy\", onCopy, host);\n event.addListener(text, \"paste\", onPaste, host);\n if (!('oncut' in text) || !('oncopy' in text) || !('onpaste' in text)) {\n event.addListener(parentNode, \"keydown\", function (e) {\n if ((useragent.isMac && !e.metaKey) || !e.ctrlKey)\n return;\n switch (e.keyCode) {\n case 67:\n onCopy(e);\n break;\n case 86:\n onPaste(e);\n break;\n case 88:\n onCut(e);\n break;\n }\n }, host);\n }\n var onCompositionStart = function (e) {\n if (inComposition || !host.onCompositionStart || host.$readOnly)\n return;\n inComposition = {};\n if (commandMode)\n return;\n if (e.data)\n inComposition.useTextareaForIME = false;\n setTimeout(onCompositionUpdate, 0);\n host._signal(\"compositionStart\");\n host.on(\"mousedown\", cancelComposition);\n var range = host.getSelectionRange();\n range.end.row = range.start.row;\n range.end.column = range.start.column;\n inComposition.markerRange = range;\n inComposition.selectionStart = lastSelectionStart;\n host.onCompositionStart(inComposition);\n if (inComposition.useTextareaForIME) {\n lastValue = text.value = \"\";\n lastSelectionStart = 0;\n lastSelectionEnd = 0;\n }\n else {\n if (text.msGetInputContext)\n inComposition.context = text.msGetInputContext();\n if (text.getInputContext)\n inComposition.context = text.getInputContext();\n }\n };\n var onCompositionUpdate = function () {\n if (!inComposition || !host.onCompositionUpdate || host.$readOnly)\n return;\n if (commandMode)\n return cancelComposition();\n if (inComposition.useTextareaForIME) {\n host.onCompositionUpdate(text.value);\n }\n else {\n var data = text.value;\n sendText(data);\n if (inComposition.markerRange) {\n if (inComposition.context) {\n inComposition.markerRange.start.column = inComposition.selectionStart\n = inComposition.context.compositionStartOffset;\n }\n inComposition.markerRange.end.column = inComposition.markerRange.start.column\n + lastSelectionEnd - inComposition.selectionStart + lastRestoreEnd;\n }\n }\n };\n var onCompositionEnd = function (e) {\n if (!host.onCompositionEnd || host.$readOnly)\n return;\n inComposition = false;\n host.onCompositionEnd();\n host.off(\"mousedown\", cancelComposition);\n if (e)\n onInput();\n };\n function cancelComposition() {\n ignoreFocusEvents = true;\n text.blur();\n text.focus();\n ignoreFocusEvents = false;\n }\n var syncComposition = lang.delayedCall(onCompositionUpdate, 50).schedule.bind(null, null);\n function onKeyup(e) {\n if (e.keyCode == 27 && text.value.length < text.selectionStart) {\n if (!inComposition)\n lastValue = text.value;\n lastSelectionStart = lastSelectionEnd = -1;\n resetSelection();\n }\n syncComposition();\n }\n event.addListener(text, \"compositionstart\", onCompositionStart, host);\n event.addListener(text, \"compositionupdate\", onCompositionUpdate, host);\n event.addListener(text, \"keyup\", onKeyup, host);\n event.addListener(text, \"keydown\", syncComposition, host);\n event.addListener(text, \"compositionend\", onCompositionEnd, host);\n this.getElement = function () {\n return text;\n };\n this.setCommandMode = function (value) {\n commandMode = value;\n text.readOnly = false;\n };\n this.setReadOnly = function (readOnly) {\n if (!commandMode)\n text.readOnly = readOnly;\n };\n this.setCopyWithEmptySelection = function (value) {\n };\n this.onContextMenu = function (e) {\n afterContextMenu = true;\n resetSelection();\n host._emit(\"nativecontextmenu\", { target: host, domEvent: e });\n this.moveToMouse(e, true);\n };\n this.moveToMouse = function (e, bringToFront) {\n if (!tempStyle)\n tempStyle = text.style.cssText;\n text.style.cssText = (bringToFront ? \"z-index:100000;\" : \"\")\n + (useragent.isIE ? \"opacity:0.1;\" : \"\")\n + \"text-indent: -\" + (lastSelectionStart + lastSelectionEnd) * host.renderer.characterWidth * 0.5 + \"px;\";\n var rect = host.container.getBoundingClientRect();\n var style = dom.computedStyle(host.container);\n var top = rect.top + (parseInt(style.borderTopWidth) || 0);\n var left = rect.left + (parseInt(rect.borderLeftWidth) || 0);\n var maxTop = rect.bottom - top - text.clientHeight - 2;\n var move = function (e) {\n dom.translate(text, e.clientX - left - 2, Math.min(e.clientY - top - 2, maxTop));\n };\n move(e);\n if (e.type != \"mousedown\")\n return;\n host.renderer.$isMousePressed = true;\n clearTimeout(closeTimeout);\n if (useragent.isWin)\n event.capture(host.container, move, onContextMenuClose);\n };\n this.onContextMenuClose = onContextMenuClose;\n var closeTimeout;\n function onContextMenuClose() {\n clearTimeout(closeTimeout);\n closeTimeout = setTimeout(function () {\n if (tempStyle) {\n text.style.cssText = tempStyle;\n tempStyle = '';\n }\n host.renderer.$isMousePressed = false;\n if (host.renderer.$keepTextAreaAtCursor)\n host.renderer.$moveTextAreaToCursor();\n }, 0);\n }\n var onContextMenu = function (e) {\n host.textInput.onContextMenu(e);\n onContextMenuClose();\n };\n event.addListener(text, \"mouseup\", onContextMenu, host);\n event.addListener(text, \"mousedown\", function (e) {\n e.preventDefault();\n onContextMenuClose();\n }, host);\n event.addListener(host.renderer.scroller, \"contextmenu\", onContextMenu, host);\n event.addListener(text, \"contextmenu\", onContextMenu, host);\n if (isIOS)\n addIosSelectionHandler(parentNode, host, text);\n function addIosSelectionHandler(parentNode, host, text) {\n var typingResetTimeout = null;\n var typing = false;\n text.addEventListener(\"keydown\", function (e) {\n if (typingResetTimeout)\n clearTimeout(typingResetTimeout);\n typing = true;\n }, true);\n text.addEventListener(\"keyup\", function (e) {\n typingResetTimeout = setTimeout(function () {\n typing = false;\n }, 100);\n }, true);\n var detectArrowKeys = function (e) {\n if (document.activeElement !== text)\n return;\n if (typing || inComposition || host.$mouseHandler.isMousePressed)\n return;\n if (copied) {\n return;\n }\n var selectionStart = text.selectionStart;\n var selectionEnd = text.selectionEnd;\n var key = null;\n var modifier = 0;\n if (selectionStart == 0) {\n key = KEYS.up;\n }\n else if (selectionStart == 1) {\n key = KEYS.home;\n }\n else if (selectionEnd > lastSelectionEnd && lastValue[selectionEnd] == \"\\n\") {\n key = KEYS.end;\n }\n else if (selectionStart < lastSelectionStart && lastValue[selectionStart - 1] == \" \") {\n key = KEYS.left;\n modifier = MODS.option;\n }\n else if (selectionStart < lastSelectionStart\n || (selectionStart == lastSelectionStart\n && lastSelectionEnd != lastSelectionStart\n && selectionStart == selectionEnd)) {\n key = KEYS.left;\n }\n else if (selectionEnd > lastSelectionEnd && lastValue.slice(0, selectionEnd).split(\"\\n\").length > 2) {\n key = KEYS.down;\n }\n else if (selectionEnd > lastSelectionEnd && lastValue[selectionEnd - 1] == \" \") {\n key = KEYS.right;\n modifier = MODS.option;\n }\n else if (selectionEnd > lastSelectionEnd\n || (selectionEnd == lastSelectionEnd\n && lastSelectionEnd != lastSelectionStart\n && selectionStart == selectionEnd)) {\n key = KEYS.right;\n }\n if (selectionStart !== selectionEnd)\n modifier |= MODS.shift;\n if (key) {\n var result = host.onCommandKey({}, modifier, key);\n if (!result && host.commands) {\n key = KEYS.keyCodeToString(key);\n var command = host.commands.findKeyCommand(modifier, key);\n if (command)\n host.execCommand(command);\n }\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n resetSelection(\"\");\n }\n };\n document.addEventListener(\"selectionchange\", detectArrowKeys);\n host.on(\"destroy\", function () {\n document.removeEventListener(\"selectionchange\", detectArrowKeys);\n });\n }\n this.destroy = function () {\n if (text.parentElement)\n text.parentElement.removeChild(text);\n };\n};\nexports.TextInput = TextInput;\nexports.$setUserAgentForTests = function (_isMobile, _isIOS) {\n isMobile = _isMobile;\n isIOS = _isIOS;\n};\n\n});\n\nace.define(\"ace/mouse/default_handlers\",[\"require\",\"exports\",\"module\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar useragent = require(\"../lib/useragent\");\nvar DRAG_OFFSET = 0; // pixels\nvar SCROLL_COOLDOWN_T = 550; // milliseconds\nvar DefaultHandlers = /** @class */ (function () {\n function DefaultHandlers(mouseHandler) {\n mouseHandler.$clickSelection = null;\n var editor = mouseHandler.editor;\n editor.setDefaultHandler(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n editor.setDefaultHandler(\"dblclick\", this.onDoubleClick.bind(mouseHandler));\n editor.setDefaultHandler(\"tripleclick\", this.onTripleClick.bind(mouseHandler));\n editor.setDefaultHandler(\"quadclick\", this.onQuadClick.bind(mouseHandler));\n editor.setDefaultHandler(\"mousewheel\", this.onMouseWheel.bind(mouseHandler));\n var exports = [\"select\", \"startSelect\", \"selectEnd\", \"selectAllEnd\", \"selectByWordsEnd\",\n \"selectByLinesEnd\", \"dragWait\", \"dragWaitEnd\", \"focusWait\"];\n exports.forEach(function (x) {\n mouseHandler[x] = this[x];\n }, this);\n mouseHandler.selectByLines = this.extendSelectionBy.bind(mouseHandler, \"getLineRange\");\n mouseHandler.selectByWords = this.extendSelectionBy.bind(mouseHandler, \"getWordRange\");\n }\n DefaultHandlers.prototype.onMouseDown = function (ev) {\n var inSelection = ev.inSelection();\n var pos = ev.getDocumentPosition();\n this.mousedownEvent = ev;\n var editor = this.editor;\n var button = ev.getButton();\n if (button !== 0) {\n var selectionRange = editor.getSelectionRange();\n var selectionEmpty = selectionRange.isEmpty();\n if (selectionEmpty || button == 1)\n editor.selection.moveToPosition(pos);\n if (button == 2) {\n editor.textInput.onContextMenu(ev.domEvent);\n if (!useragent.isMozilla)\n ev.preventDefault();\n }\n return;\n }\n this.mousedownEvent.time = Date.now();\n if (inSelection && !editor.isFocused()) {\n editor.focus();\n if (this.$focusTimeout && !this.$clickSelection && !editor.inMultiSelectMode) {\n this.setState(\"focusWait\");\n this.captureMouse(ev);\n return;\n }\n }\n this.captureMouse(ev);\n this.startSelect(pos, ev.domEvent._clicks > 1);\n return ev.preventDefault();\n };\n DefaultHandlers.prototype.startSelect = function (pos, waitForClickSelection) {\n pos = pos || this.editor.renderer.screenToTextCoordinates(this.x, this.y);\n var editor = this.editor;\n if (!this.mousedownEvent)\n return;\n if (this.mousedownEvent.getShiftKey())\n editor.selection.selectToPosition(pos);\n else if (!waitForClickSelection)\n editor.selection.moveToPosition(pos);\n if (!waitForClickSelection)\n this.select();\n editor.setStyle(\"ace_selecting\");\n this.setState(\"select\");\n };\n DefaultHandlers.prototype.select = function () {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n if (this.$clickSelection) {\n var cmp = this.$clickSelection.comparePoint(cursor);\n if (cmp == -1) {\n anchor = this.$clickSelection.end;\n }\n else if (cmp == 1) {\n anchor = this.$clickSelection.start;\n }\n else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n };\n DefaultHandlers.prototype.extendSelectionBy = function (unitName) {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n var range = editor.selection[unitName](cursor.row, cursor.column);\n if (this.$clickSelection) {\n var cmpStart = this.$clickSelection.comparePoint(range.start);\n var cmpEnd = this.$clickSelection.comparePoint(range.end);\n if (cmpStart == -1 && cmpEnd <= 0) {\n anchor = this.$clickSelection.end;\n if (range.end.row != cursor.row || range.end.column != cursor.column)\n cursor = range.start;\n }\n else if (cmpEnd == 1 && cmpStart >= 0) {\n anchor = this.$clickSelection.start;\n if (range.start.row != cursor.row || range.start.column != cursor.column)\n cursor = range.end;\n }\n else if (cmpStart == -1 && cmpEnd == 1) {\n cursor = range.end;\n anchor = range.start;\n }\n else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n };\n DefaultHandlers.prototype.selectByLinesEnd = function () {\n this.$clickSelection = null;\n this.editor.unsetStyle(\"ace_selecting\");\n };\n DefaultHandlers.prototype.focusWait = function () {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n var time = Date.now();\n if (distance > DRAG_OFFSET || time - this.mousedownEvent.time > this.$focusTimeout)\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n };\n DefaultHandlers.prototype.onDoubleClick = function (ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n var session = editor.session;\n var range = session.getBracketRange(pos);\n if (range) {\n if (range.isEmpty()) {\n range.start.column--;\n range.end.column++;\n }\n this.setState(\"select\");\n }\n else {\n range = editor.selection.getWordRange(pos.row, pos.column);\n this.setState(\"selectByWords\");\n }\n this.$clickSelection = range;\n this.select();\n };\n DefaultHandlers.prototype.onTripleClick = function (ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n this.setState(\"selectByLines\");\n var range = editor.getSelectionRange();\n if (range.isMultiLine() && range.contains(pos.row, pos.column)) {\n this.$clickSelection = editor.selection.getLineRange(range.start.row);\n this.$clickSelection.end = editor.selection.getLineRange(range.end.row).end;\n }\n else {\n this.$clickSelection = editor.selection.getLineRange(pos.row);\n }\n this.select();\n };\n DefaultHandlers.prototype.onQuadClick = function (ev) {\n var editor = this.editor;\n editor.selectAll();\n this.$clickSelection = editor.getSelectionRange();\n this.setState(\"selectAll\");\n };\n DefaultHandlers.prototype.onMouseWheel = function (ev) {\n if (ev.getAccelKey())\n return;\n if (ev.getShiftKey() && ev.wheelY && !ev.wheelX) {\n ev.wheelX = ev.wheelY;\n ev.wheelY = 0;\n }\n var editor = this.editor;\n if (!this.$lastScroll)\n this.$lastScroll = { t: 0, vx: 0, vy: 0, allowed: 0 };\n var prevScroll = this.$lastScroll;\n var t = ev.domEvent.timeStamp;\n var dt = t - prevScroll.t;\n var vx = dt ? ev.wheelX / dt : prevScroll.vx;\n var vy = dt ? ev.wheelY / dt : prevScroll.vy;\n if (dt < SCROLL_COOLDOWN_T) {\n vx = (vx + prevScroll.vx) / 2;\n vy = (vy + prevScroll.vy) / 2;\n }\n var direction = Math.abs(vx / vy);\n var canScroll = false;\n if (direction >= 1 && editor.renderer.isScrollableBy(ev.wheelX * ev.speed, 0))\n canScroll = true;\n if (direction <= 1 && editor.renderer.isScrollableBy(0, ev.wheelY * ev.speed))\n canScroll = true;\n if (canScroll) {\n prevScroll.allowed = t;\n }\n else if (t - prevScroll.allowed < SCROLL_COOLDOWN_T) {\n var isSlower = Math.abs(vx) <= 1.5 * Math.abs(prevScroll.vx)\n && Math.abs(vy) <= 1.5 * Math.abs(prevScroll.vy);\n if (isSlower) {\n canScroll = true;\n prevScroll.allowed = t;\n }\n else {\n prevScroll.allowed = 0;\n }\n }\n prevScroll.t = t;\n prevScroll.vx = vx;\n prevScroll.vy = vy;\n if (canScroll) {\n editor.renderer.scrollBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed);\n return ev.stop();\n }\n };\n return DefaultHandlers;\n}());\nDefaultHandlers.prototype.selectEnd = DefaultHandlers.prototype.selectByLinesEnd;\nDefaultHandlers.prototype.selectAllEnd = DefaultHandlers.prototype.selectByLinesEnd;\nDefaultHandlers.prototype.selectByWordsEnd = DefaultHandlers.prototype.selectByLinesEnd;\nexports.DefaultHandlers = DefaultHandlers;\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\nfunction calcRangeOrientation(range, cursor) {\n if (range.start.row == range.end.row)\n var cmp = 2 * cursor.column - range.start.column - range.end.column;\n else if (range.start.row == range.end.row - 1 && !range.start.column && !range.end.column)\n var cmp = cursor.column - 4;\n else\n var cmp = 2 * cursor.row - range.start.row - range.end.row;\n if (cmp < 0)\n return { cursor: range.start, anchor: range.end };\n else\n return { cursor: range.end, anchor: range.start };\n}\n\n});\n\nace.define(\"ace/tooltip\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar dom = require(\"./lib/dom\");\nvar event = require(\"./lib/event\");\nvar Range = require(\"./range\").Range;\nvar CLASSNAME = \"ace_tooltip\";\nvar Tooltip = /** @class */ (function () {\n function Tooltip(parentNode) {\n this.isOpen = false;\n this.$element = null;\n this.$parentNode = parentNode;\n }\n Tooltip.prototype.$init = function () {\n this.$element = dom.createElement(\"div\");\n this.$element.className = CLASSNAME;\n this.$element.style.display = \"none\";\n this.$parentNode.appendChild(this.$element);\n return this.$element;\n };\n Tooltip.prototype.getElement = function () {\n return this.$element || this.$init();\n };\n Tooltip.prototype.setText = function (text) {\n this.getElement().textContent = text;\n };\n Tooltip.prototype.setHtml = function (html) {\n this.getElement().innerHTML = html;\n };\n Tooltip.prototype.setPosition = function (x, y) {\n this.getElement().style.left = x + \"px\";\n this.getElement().style.top = y + \"px\";\n };\n Tooltip.prototype.setClassName = function (className) {\n dom.addCssClass(this.getElement(), className);\n };\n Tooltip.prototype.setTheme = function (theme) {\n this.$element.className = CLASSNAME + \" \" +\n (theme.isDark ? \"ace_dark \" : \"\") + (theme.cssClass || \"\");\n };\n Tooltip.prototype.show = function (text, x, y) {\n if (text != null)\n this.setText(text);\n if (x != null && y != null)\n this.setPosition(x, y);\n if (!this.isOpen) {\n this.getElement().style.display = \"block\";\n this.isOpen = true;\n }\n };\n Tooltip.prototype.hide = function () {\n if (this.isOpen) {\n this.getElement().style.display = \"none\";\n this.getElement().className = CLASSNAME;\n this.isOpen = false;\n }\n };\n Tooltip.prototype.getHeight = function () {\n return this.getElement().offsetHeight;\n };\n Tooltip.prototype.getWidth = function () {\n return this.getElement().offsetWidth;\n };\n Tooltip.prototype.destroy = function () {\n this.isOpen = false;\n if (this.$element && this.$element.parentNode) {\n this.$element.parentNode.removeChild(this.$element);\n }\n };\n return Tooltip;\n}());\nvar PopupManager = /** @class */ (function () {\n function PopupManager() {\n this.popups = [];\n }\n PopupManager.prototype.addPopup = function (popup) {\n this.popups.push(popup);\n this.updatePopups();\n };\n PopupManager.prototype.removePopup = function (popup) {\n var index = this.popups.indexOf(popup);\n if (index !== -1) {\n this.popups.splice(index, 1);\n this.updatePopups();\n }\n };\n PopupManager.prototype.updatePopups = function () {\n var e_1, _a, e_2, _b;\n this.popups.sort(function (a, b) { return b.priority - a.priority; });\n var visiblepopups = [];\n try {\n for (var _c = __values(this.popups), _d = _c.next(); !_d.done; _d = _c.next()) {\n var popup = _d.value;\n var shouldDisplay = true;\n try {\n for (var visiblepopups_1 = (e_2 = void 0, __values(visiblepopups)), visiblepopups_1_1 = visiblepopups_1.next(); !visiblepopups_1_1.done; visiblepopups_1_1 = visiblepopups_1.next()) {\n var visiblePopup = visiblepopups_1_1.value;\n if (this.doPopupsOverlap(visiblePopup, popup)) {\n shouldDisplay = false;\n break;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (visiblepopups_1_1 && !visiblepopups_1_1.done && (_b = visiblepopups_1.return)) _b.call(visiblepopups_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n if (shouldDisplay) {\n visiblepopups.push(popup);\n }\n else {\n popup.hide();\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n PopupManager.prototype.doPopupsOverlap = function (popupA, popupB) {\n var rectA = popupA.getElement().getBoundingClientRect();\n var rectB = popupB.getElement().getBoundingClientRect();\n return (rectA.left < rectB.right && rectA.right > rectB.left && rectA.top < rectB.bottom && rectA.bottom\n > rectB.top);\n };\n return PopupManager;\n}());\nvar popupManager = new PopupManager();\nexports.popupManager = popupManager;\nexports.Tooltip = Tooltip;\nvar HoverTooltip = /** @class */ (function (_super) {\n __extends(HoverTooltip, _super);\n function HoverTooltip(parentNode) {\n if (parentNode === void 0) { parentNode = document.body; }\n var _this = _super.call(this, parentNode) || this;\n _this.timeout = undefined;\n _this.lastT = 0;\n _this.idleTime = 350;\n _this.lastEvent = undefined;\n _this.onMouseOut = _this.onMouseOut.bind(_this);\n _this.onMouseMove = _this.onMouseMove.bind(_this);\n _this.waitForHover = _this.waitForHover.bind(_this);\n _this.hide = _this.hide.bind(_this);\n var el = _this.getElement();\n el.style.whiteSpace = \"pre-wrap\";\n el.style.pointerEvents = \"auto\";\n el.addEventListener(\"mouseout\", _this.onMouseOut);\n el.tabIndex = -1;\n el.addEventListener(\"blur\", function () {\n if (!el.contains(document.activeElement))\n this.hide();\n }.bind(_this));\n el.addEventListener(\"wheel\", event.stopPropagation);\n return _this;\n }\n HoverTooltip.prototype.addToEditor = function (editor) {\n editor.on(\"mousemove\", this.onMouseMove);\n editor.on(\"mousedown\", this.hide);\n editor.renderer.getMouseEventTarget().addEventListener(\"mouseout\", this.onMouseOut, true);\n };\n HoverTooltip.prototype.removeFromEditor = function (editor) {\n editor.off(\"mousemove\", this.onMouseMove);\n editor.off(\"mousedown\", this.hide);\n editor.renderer.getMouseEventTarget().removeEventListener(\"mouseout\", this.onMouseOut, true);\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n };\n HoverTooltip.prototype.onMouseMove = function (e, editor) {\n this.lastEvent = e;\n this.lastT = Date.now();\n var isMousePressed = editor.$mouseHandler.isMousePressed;\n if (this.isOpen) {\n var pos = this.lastEvent && this.lastEvent.getDocumentPosition();\n if (!this.range\n || !this.range.contains(pos.row, pos.column)\n || isMousePressed\n || this.isOutsideOfText(this.lastEvent)) {\n this.hide();\n }\n }\n if (this.timeout || isMousePressed)\n return;\n this.lastEvent = e;\n this.timeout = setTimeout(this.waitForHover, this.idleTime);\n };\n HoverTooltip.prototype.waitForHover = function () {\n if (this.timeout)\n clearTimeout(this.timeout);\n var dt = Date.now() - this.lastT;\n if (this.idleTime - dt > 10) {\n this.timeout = setTimeout(this.waitForHover, this.idleTime - dt);\n return;\n }\n this.timeout = null;\n if (this.lastEvent && !this.isOutsideOfText(this.lastEvent)) {\n this.$gatherData(this.lastEvent, this.lastEvent.editor);\n }\n };\n HoverTooltip.prototype.isOutsideOfText = function (e) {\n var editor = e.editor;\n var docPos = e.getDocumentPosition();\n var line = editor.session.getLine(docPos.row);\n if (docPos.column == line.length) {\n var screenPos = editor.renderer.pixelToScreenCoordinates(e.clientX, e.clientY);\n var clippedPos = editor.session.documentToScreenPosition(docPos.row, docPos.column);\n if (clippedPos.column != screenPos.column\n || clippedPos.row != screenPos.row) {\n return true;\n }\n }\n return false;\n };\n HoverTooltip.prototype.setDataProvider = function (value) {\n this.$gatherData = value;\n };\n HoverTooltip.prototype.showForRange = function (editor, range, domNode, startingEvent) {\n var MARGIN = 10;\n if (startingEvent && startingEvent != this.lastEvent)\n return;\n if (this.isOpen && document.activeElement == this.getElement())\n return;\n var renderer = editor.renderer;\n if (!this.isOpen) {\n popupManager.addPopup(this);\n this.$registerCloseEvents();\n this.setTheme(renderer.theme);\n }\n this.isOpen = true;\n this.addMarker(range, editor.session);\n this.range = Range.fromPoints(range.start, range.end);\n var position = renderer.textToScreenCoordinates(range.start.row, range.start.column);\n var rect = renderer.scroller.getBoundingClientRect();\n if (position.pageX < rect.left)\n position.pageX = rect.left;\n var element = this.getElement();\n element.innerHTML = \"\";\n element.appendChild(domNode);\n element.style.maxHeight = \"\";\n element.style.display = \"block\";\n var labelHeight = element.clientHeight;\n var labelWidth = element.clientWidth;\n var spaceBelow = window.innerHeight - position.pageY - renderer.lineHeight;\n var isAbove = true;\n if (position.pageY - labelHeight < 0 && position.pageY < spaceBelow) {\n isAbove = false;\n }\n element.style.maxHeight = (isAbove ? position.pageY : spaceBelow) - MARGIN + \"px\";\n element.style.top = isAbove ? \"\" : position.pageY + renderer.lineHeight + \"px\";\n element.style.bottom = isAbove ? window.innerHeight - position.pageY + \"px\" : \"\";\n element.style.left = Math.min(position.pageX, window.innerWidth - labelWidth - MARGIN) + \"px\";\n };\n HoverTooltip.prototype.addMarker = function (range, session) {\n if (this.marker) {\n this.$markerSession.removeMarker(this.marker);\n }\n this.$markerSession = session;\n this.marker = session && session.addMarker(range, \"ace_highlight-marker\", \"text\");\n };\n HoverTooltip.prototype.hide = function (e) {\n if (!e && document.activeElement == this.getElement())\n return;\n if (e && e.target && (e.type != \"keydown\" || e.ctrlKey || e.metaKey) && this.$element.contains(e.target))\n return;\n this.lastEvent = null;\n if (this.timeout)\n clearTimeout(this.timeout);\n this.timeout = null;\n this.addMarker(null);\n if (this.isOpen) {\n this.$removeCloseEvents();\n this.getElement().style.display = \"none\";\n this.isOpen = false;\n popupManager.removePopup(this);\n }\n };\n HoverTooltip.prototype.$registerCloseEvents = function () {\n window.addEventListener(\"keydown\", this.hide, true);\n window.addEventListener(\"wheel\", this.hide, true);\n window.addEventListener(\"mousedown\", this.hide, true);\n };\n HoverTooltip.prototype.$removeCloseEvents = function () {\n window.removeEventListener(\"keydown\", this.hide, true);\n window.removeEventListener(\"wheel\", this.hide, true);\n window.removeEventListener(\"mousedown\", this.hide, true);\n };\n HoverTooltip.prototype.onMouseOut = function (e) {\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n this.lastEvent = null;\n if (!this.isOpen)\n return;\n if (!e.relatedTarget || this.getElement().contains(e.relatedTarget))\n return;\n if (e && e.currentTarget.contains(e.relatedTarget))\n return;\n if (!e.relatedTarget.classList.contains(\"ace_content\"))\n this.hide();\n };\n return HoverTooltip;\n}(Tooltip));\nexports.HoverTooltip = HoverTooltip;\n\n});\n\nace.define(\"ace/mouse/default_gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/tooltip\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar dom = require(\"../lib/dom\");\nvar event = require(\"../lib/event\");\nvar Tooltip = require(\"../tooltip\").Tooltip;\nvar nls = require(\"../config\").nls;\nfunction GutterHandler(mouseHandler) {\n var editor = mouseHandler.editor;\n var gutter = editor.renderer.$gutterLayer;\n var tooltip = new GutterTooltip(editor);\n mouseHandler.editor.setDefaultHandler(\"guttermousedown\", function (e) {\n if (!editor.isFocused() || e.getButton() != 0)\n return;\n var gutterRegion = gutter.getRegion(e);\n if (gutterRegion == \"foldWidgets\")\n return;\n var row = e.getDocumentPosition().row;\n var selection = editor.session.selection;\n if (e.getShiftKey())\n selection.selectTo(row, 0);\n else {\n if (e.domEvent.detail == 2) {\n editor.selectAll();\n return e.preventDefault();\n }\n mouseHandler.$clickSelection = editor.selection.getLineRange(row);\n }\n mouseHandler.setState(\"selectByLines\");\n mouseHandler.captureMouse(e);\n return e.preventDefault();\n });\n var tooltipTimeout, mouseEvent;\n function showTooltip() {\n var row = mouseEvent.getDocumentPosition().row;\n var maxRow = editor.session.getLength();\n if (row == maxRow) {\n var screenRow = editor.renderer.pixelToScreenCoordinates(0, mouseEvent.y).row;\n var pos = mouseEvent.$pos;\n if (screenRow > editor.session.documentToScreenRow(pos.row, pos.column))\n return hideTooltip();\n }\n tooltip.showTooltip(row);\n if (!tooltip.isOpen)\n return;\n editor.on(\"mousewheel\", hideTooltip);\n if (mouseHandler.$tooltipFollowsMouse) {\n moveTooltip(mouseEvent);\n }\n else {\n var gutterRow = mouseEvent.getGutterRow();\n var gutterCell = gutter.$lines.get(gutterRow);\n if (gutterCell) {\n var gutterElement = gutterCell.element.querySelector(\".ace_gutter_annotation\");\n var rect = gutterElement.getBoundingClientRect();\n var style = tooltip.getElement().style;\n style.left = rect.right + \"px\";\n style.top = rect.bottom + \"px\";\n }\n else {\n moveTooltip(mouseEvent);\n }\n }\n }\n function hideTooltip() {\n if (tooltipTimeout)\n tooltipTimeout = clearTimeout(tooltipTimeout);\n if (tooltip.isOpen) {\n tooltip.hideTooltip();\n editor.off(\"mousewheel\", hideTooltip);\n }\n }\n function moveTooltip(e) {\n tooltip.setPosition(e.x, e.y);\n }\n mouseHandler.editor.setDefaultHandler(\"guttermousemove\", function (e) {\n var target = e.domEvent.target || e.domEvent.srcElement;\n if (dom.hasCssClass(target, \"ace_fold-widget\"))\n return hideTooltip();\n if (tooltip.isOpen && mouseHandler.$tooltipFollowsMouse)\n moveTooltip(e);\n mouseEvent = e;\n if (tooltipTimeout)\n return;\n tooltipTimeout = setTimeout(function () {\n tooltipTimeout = null;\n if (mouseEvent && !mouseHandler.isMousePressed)\n showTooltip();\n else\n hideTooltip();\n }, 50);\n });\n event.addListener(editor.renderer.$gutter, \"mouseout\", function (e) {\n mouseEvent = null;\n if (!tooltip.isOpen || tooltipTimeout)\n return;\n tooltipTimeout = setTimeout(function () {\n tooltipTimeout = null;\n hideTooltip();\n }, 50);\n }, editor);\n editor.on(\"changeSession\", hideTooltip);\n editor.on(\"input\", hideTooltip);\n}\nexports.GutterHandler = GutterHandler;\nvar GutterTooltip = /** @class */ (function (_super) {\n __extends(GutterTooltip, _super);\n function GutterTooltip(editor) {\n var _this = _super.call(this, editor.container) || this;\n _this.editor = editor;\n return _this;\n }\n GutterTooltip.prototype.setPosition = function (x, y) {\n var windowWidth = window.innerWidth || document.documentElement.clientWidth;\n var windowHeight = window.innerHeight || document.documentElement.clientHeight;\n var width = this.getWidth();\n var height = this.getHeight();\n x += 15;\n y += 15;\n if (x + width > windowWidth) {\n x -= (x + width) - windowWidth;\n }\n if (y + height > windowHeight) {\n y -= 20 + height;\n }\n Tooltip.prototype.setPosition.call(this, x, y);\n };\n Object.defineProperty(GutterTooltip, \"annotationLabels\", {\n get: function () {\n return {\n error: { singular: nls(\"error\"), plural: nls(\"errors\") },\n warning: { singular: nls(\"warning\"), plural: nls(\"warnings\") },\n info: { singular: nls(\"information message\"), plural: nls(\"information messages\") }\n };\n },\n enumerable: false,\n configurable: true\n });\n GutterTooltip.prototype.showTooltip = function (row) {\n var gutter = this.editor.renderer.$gutterLayer;\n var annotationsInRow = gutter.$annotations[row];\n var annotation;\n if (annotationsInRow)\n annotation = { text: Array.from(annotationsInRow.text), type: Array.from(annotationsInRow.type) };\n else\n annotation = { text: [], type: [] };\n var fold = gutter.session.getFoldLine(row);\n if (fold && gutter.$showFoldedAnnotations) {\n var annotationsInFold = { error: [], warning: [], info: [] };\n var mostSevereAnnotationInFoldType;\n for (var i = row + 1; i <= fold.end.row; i++) {\n if (!gutter.$annotations[i])\n continue;\n for (var j = 0; j < gutter.$annotations[i].text.length; j++) {\n var annotationType = gutter.$annotations[i].type[j];\n annotationsInFold[annotationType].push(gutter.$annotations[i].text[j]);\n if (annotationType === \"error\") {\n mostSevereAnnotationInFoldType = \"error_fold\";\n continue;\n }\n if (annotationType === \"warning\") {\n mostSevereAnnotationInFoldType = \"warning_fold\";\n continue;\n }\n }\n }\n if (mostSevereAnnotationInFoldType === \"error_fold\" || mostSevereAnnotationInFoldType === \"warning_fold\") {\n var summaryFoldedAnnotations = \"\".concat(GutterTooltip.annotationsToSummaryString(annotationsInFold), \" in folded code.\");\n annotation.text.push(summaryFoldedAnnotations);\n annotation.type.push(mostSevereAnnotationInFoldType);\n }\n }\n if (annotation.text.length === 0)\n return this.hide();\n var annotationMessages = { error: [], warning: [], info: [] };\n var iconClassName = gutter.$useSvgGutterIcons ? \"ace_icon_svg\" : \"ace_icon\";\n for (var i = 0; i < annotation.text.length; i++) {\n var line = \" \").concat(annotation.text[i]);\n annotationMessages[annotation.type[i].replace(\"_fold\", \"\")].push(line);\n }\n var tooltipContent = [].concat(annotationMessages.error, annotationMessages.warning, annotationMessages.info).join(\"
    \");\n this.setHtml(tooltipContent);\n this.$element.setAttribute(\"aria-live\", \"polite\");\n if (!this.isOpen) {\n this.setTheme(this.editor.renderer.theme);\n this.setClassName(\"ace_gutter-tooltip\");\n }\n this.show();\n this.editor._signal(\"showGutterTooltip\", this);\n };\n GutterTooltip.prototype.hideTooltip = function () {\n this.$element.removeAttribute(\"aria-live\");\n this.hide();\n this.editor._signal(\"hideGutterTooltip\", this);\n };\n GutterTooltip.annotationsToSummaryString = function (annotations) {\n var e_1, _a;\n var summary = [];\n var annotationTypes = ['error', 'warning', 'info'];\n try {\n for (var annotationTypes_1 = __values(annotationTypes), annotationTypes_1_1 = annotationTypes_1.next(); !annotationTypes_1_1.done; annotationTypes_1_1 = annotationTypes_1.next()) {\n var annotationType = annotationTypes_1_1.value;\n if (!annotations[annotationType].length)\n continue;\n var label = annotations[annotationType].length === 1 ? GutterTooltip.annotationLabels[annotationType].singular : GutterTooltip.annotationLabels[annotationType].plural;\n summary.push(\"\".concat(annotations[annotationType].length, \" \").concat(label));\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (annotationTypes_1_1 && !annotationTypes_1_1.done && (_a = annotationTypes_1.return)) _a.call(annotationTypes_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return summary.join(\", \");\n };\n return GutterTooltip;\n}(Tooltip));\nexports.GutterTooltip = GutterTooltip;\n\n});\n\nace.define(\"ace/mouse/mouse_event\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar MouseEvent = /** @class */ (function () {\n function MouseEvent(domEvent, editor) {\n this.domEvent = domEvent;\n this.editor = editor;\n this.x = this.clientX = domEvent.clientX;\n this.y = this.clientY = domEvent.clientY;\n this.$pos = null;\n this.$inSelection = null;\n this.propagationStopped = false;\n this.defaultPrevented = false;\n }\n MouseEvent.prototype.stopPropagation = function () {\n event.stopPropagation(this.domEvent);\n this.propagationStopped = true;\n };\n MouseEvent.prototype.preventDefault = function () {\n event.preventDefault(this.domEvent);\n this.defaultPrevented = true;\n };\n MouseEvent.prototype.stop = function () {\n this.stopPropagation();\n this.preventDefault();\n };\n MouseEvent.prototype.getDocumentPosition = function () {\n if (this.$pos)\n return this.$pos;\n this.$pos = this.editor.renderer.screenToTextCoordinates(this.clientX, this.clientY);\n return this.$pos;\n };\n MouseEvent.prototype.getGutterRow = function () {\n var documentRow = this.getDocumentPosition().row;\n var screenRow = this.editor.session.documentToScreenRow(documentRow, 0);\n var screenTopRow = this.editor.session.documentToScreenRow(this.editor.renderer.$gutterLayer.$lines.get(0).row, 0);\n return screenRow - screenTopRow;\n };\n MouseEvent.prototype.inSelection = function () {\n if (this.$inSelection !== null)\n return this.$inSelection;\n var editor = this.editor;\n var selectionRange = editor.getSelectionRange();\n if (selectionRange.isEmpty())\n this.$inSelection = false;\n else {\n var pos = this.getDocumentPosition();\n this.$inSelection = selectionRange.contains(pos.row, pos.column);\n }\n return this.$inSelection;\n };\n MouseEvent.prototype.getButton = function () {\n return event.getButton(this.domEvent);\n };\n MouseEvent.prototype.getShiftKey = function () {\n return this.domEvent.shiftKey;\n };\n MouseEvent.prototype.getAccelKey = function () {\n return useragent.isMac ? this.domEvent.metaKey : this.domEvent.ctrlKey;\n };\n return MouseEvent;\n}());\nexports.MouseEvent = MouseEvent;\n\n});\n\nace.define(\"ace/mouse/dragdrop_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar AUTOSCROLL_DELAY = 200;\nvar SCROLL_CURSOR_DELAY = 200;\nvar SCROLL_CURSOR_HYSTERESIS = 5;\nfunction DragdropHandler(mouseHandler) {\n var editor = mouseHandler.editor;\n var dragImage = dom.createElement(\"div\");\n dragImage.style.cssText = \"top:-100px;position:absolute;z-index:2147483647;opacity:0.5\";\n dragImage.textContent = \"\\xa0\";\n var exports = [\"dragWait\", \"dragWaitEnd\", \"startDrag\", \"dragReadyEnd\", \"onMouseDrag\"];\n exports.forEach(function (x) {\n mouseHandler[x] = this[x];\n }, this);\n editor.on(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n var mouseTarget = editor.container;\n var dragSelectionMarker, x, y;\n var timerId, range;\n var dragCursor, counter = 0;\n var dragOperation;\n var isInternal;\n var autoScrollStartTime;\n var cursorMovedTime;\n var cursorPointOnCaretMoved;\n this.onDragStart = function (e) {\n if (this.cancelDrag || !mouseTarget.draggable) {\n var self = this;\n setTimeout(function () {\n self.startSelect();\n self.captureMouse(e);\n }, 0);\n return e.preventDefault();\n }\n range = editor.getSelectionRange();\n var dataTransfer = e.dataTransfer;\n dataTransfer.effectAllowed = editor.getReadOnly() ? \"copy\" : \"copyMove\";\n editor.container.appendChild(dragImage);\n dataTransfer.setDragImage && dataTransfer.setDragImage(dragImage, 0, 0);\n setTimeout(function () {\n editor.container.removeChild(dragImage);\n });\n dataTransfer.clearData();\n dataTransfer.setData(\"Text\", editor.session.getTextRange());\n isInternal = true;\n this.setState(\"drag\");\n };\n this.onDragEnd = function (e) {\n mouseTarget.draggable = false;\n isInternal = false;\n this.setState(null);\n if (!editor.getReadOnly()) {\n var dropEffect = e.dataTransfer.dropEffect;\n if (!dragOperation && dropEffect == \"move\")\n editor.session.remove(editor.getSelectionRange());\n editor.$resetCursorStyle();\n }\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n };\n this.onDragEnter = function (e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker)\n addDragMarker();\n counter++;\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n this.onDragOver = function (e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker) {\n addDragMarker();\n counter++;\n }\n if (onMouseMoveTimer !== null)\n onMouseMoveTimer = null;\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n this.onDragLeave = function (e) {\n counter--;\n if (counter <= 0 && dragSelectionMarker) {\n clearDragMarker();\n dragOperation = null;\n return event.preventDefault(e);\n }\n };\n this.onDrop = function (e) {\n if (!dragCursor)\n return;\n var dataTransfer = e.dataTransfer;\n if (isInternal) {\n switch (dragOperation) {\n case \"move\":\n if (range.contains(dragCursor.row, dragCursor.column)) {\n range = {\n start: dragCursor,\n end: dragCursor\n };\n }\n else {\n range = editor.moveText(range, dragCursor);\n }\n break;\n case \"copy\":\n range = editor.moveText(range, dragCursor, true);\n break;\n }\n }\n else {\n var dropData = dataTransfer.getData('Text');\n range = {\n start: dragCursor,\n end: editor.session.insert(dragCursor, dropData)\n };\n editor.focus();\n dragOperation = null;\n }\n clearDragMarker();\n return event.preventDefault(e);\n };\n event.addListener(mouseTarget, \"dragstart\", this.onDragStart.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragend\", this.onDragEnd.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragenter\", this.onDragEnter.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragover\", this.onDragOver.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragleave\", this.onDragLeave.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"drop\", this.onDrop.bind(mouseHandler), editor);\n function scrollCursorIntoView(cursor, prevCursor) {\n var now = Date.now();\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n var hMovement = !prevCursor || cursor.column != prevCursor.column;\n if (!cursorMovedTime || vMovement || hMovement) {\n editor.moveCursorToPosition(cursor);\n cursorMovedTime = now;\n cursorPointOnCaretMoved = { x: x, y: y };\n }\n else {\n var distance = calcDistance(cursorPointOnCaretMoved.x, cursorPointOnCaretMoved.y, x, y);\n if (distance > SCROLL_CURSOR_HYSTERESIS) {\n cursorMovedTime = null;\n }\n else if (now - cursorMovedTime >= SCROLL_CURSOR_DELAY) {\n editor.renderer.scrollCursorIntoView();\n cursorMovedTime = null;\n }\n }\n }\n function autoScroll(cursor, prevCursor) {\n var now = Date.now();\n var lineHeight = editor.renderer.layerConfig.lineHeight;\n var characterWidth = editor.renderer.layerConfig.characterWidth;\n var editorRect = editor.renderer.scroller.getBoundingClientRect();\n var offsets = {\n x: {\n left: x - editorRect.left,\n right: editorRect.right - x\n },\n y: {\n top: y - editorRect.top,\n bottom: editorRect.bottom - y\n }\n };\n var nearestXOffset = Math.min(offsets.x.left, offsets.x.right);\n var nearestYOffset = Math.min(offsets.y.top, offsets.y.bottom);\n var scrollCursor = { row: cursor.row, column: cursor.column };\n if (nearestXOffset / characterWidth <= 2) {\n scrollCursor.column += (offsets.x.left < offsets.x.right ? -3 : +2);\n }\n if (nearestYOffset / lineHeight <= 1) {\n scrollCursor.row += (offsets.y.top < offsets.y.bottom ? -1 : +1);\n }\n var vScroll = cursor.row != scrollCursor.row;\n var hScroll = cursor.column != scrollCursor.column;\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n if (vScroll || (hScroll && !vMovement)) {\n if (!autoScrollStartTime)\n autoScrollStartTime = now;\n else if (now - autoScrollStartTime >= AUTOSCROLL_DELAY)\n editor.renderer.scrollCursorIntoView(scrollCursor);\n }\n else {\n autoScrollStartTime = null;\n }\n }\n function onDragInterval() {\n var prevCursor = dragCursor;\n dragCursor = editor.renderer.screenToTextCoordinates(x, y);\n scrollCursorIntoView(dragCursor, prevCursor);\n autoScroll(dragCursor, prevCursor);\n }\n function addDragMarker() {\n range = editor.selection.toOrientedRange();\n dragSelectionMarker = editor.session.addMarker(range, \"ace_selection\", editor.getSelectionStyle());\n editor.clearSelection();\n if (editor.isFocused())\n editor.renderer.$cursorLayer.setBlinking(false);\n clearInterval(timerId);\n onDragInterval();\n timerId = setInterval(onDragInterval, 20);\n counter = 0;\n event.addListener(document, \"mousemove\", onMouseMove);\n }\n function clearDragMarker() {\n clearInterval(timerId);\n editor.session.removeMarker(dragSelectionMarker);\n dragSelectionMarker = null;\n editor.selection.fromOrientedRange(range);\n if (editor.isFocused() && !isInternal)\n editor.$resetCursorStyle();\n range = null;\n dragCursor = null;\n counter = 0;\n autoScrollStartTime = null;\n cursorMovedTime = null;\n event.removeListener(document, \"mousemove\", onMouseMove);\n }\n var onMouseMoveTimer = null;\n function onMouseMove() {\n if (onMouseMoveTimer == null) {\n onMouseMoveTimer = setTimeout(function () {\n if (onMouseMoveTimer != null && dragSelectionMarker)\n clearDragMarker();\n }, 20);\n }\n }\n function canAccept(dataTransfer) {\n var types = dataTransfer.types;\n return !types || Array.prototype.some.call(types, function (type) {\n return type == 'text/plain' || type == 'Text';\n });\n }\n function getDropEffect(e) {\n var copyAllowed = ['copy', 'copymove', 'all', 'uninitialized'];\n var moveAllowed = ['move', 'copymove', 'linkmove', 'all', 'uninitialized'];\n var copyModifierState = useragent.isMac ? e.altKey : e.ctrlKey;\n var effectAllowed = \"uninitialized\";\n try {\n effectAllowed = e.dataTransfer.effectAllowed.toLowerCase();\n }\n catch (e) { }\n var dropEffect = \"none\";\n if (copyModifierState && copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n else if (moveAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"move\";\n else if (copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n return dropEffect;\n }\n}\n(function () {\n this.dragWait = function () {\n var interval = Date.now() - this.mousedownEvent.time;\n if (interval > this.editor.getDragDelay())\n this.startDrag();\n };\n this.dragWaitEnd = function () {\n var target = this.editor.container;\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n this.selectEnd();\n };\n this.dragReadyEnd = function (e) {\n this.editor.$resetCursorStyle();\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n this.dragWaitEnd();\n };\n this.startDrag = function () {\n this.cancelDrag = false;\n var editor = this.editor;\n var target = editor.container;\n target.draggable = true;\n editor.renderer.$cursorLayer.setBlinking(false);\n editor.setStyle(\"ace_dragging\");\n var cursorStyle = useragent.isWin ? \"default\" : \"move\";\n editor.renderer.setCursorStyle(cursorStyle);\n this.setState(\"dragReady\");\n };\n this.onMouseDrag = function (e) {\n var target = this.editor.container;\n if (useragent.isIE && this.state == \"dragReady\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 3)\n target.dragDrop();\n }\n if (this.state === \"dragWait\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 0) {\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n }\n }\n };\n this.onMouseDown = function (e) {\n if (!this.$dragEnabled)\n return;\n this.mousedownEvent = e;\n var editor = this.editor;\n var inSelection = e.inSelection();\n var button = e.getButton();\n var clickCount = e.domEvent.detail || 1;\n if (clickCount === 1 && button === 0 && inSelection) {\n if (e.editor.inMultiSelectMode && (e.getAccelKey() || e.getShiftKey()))\n return;\n this.mousedownEvent.time = Date.now();\n var eventTarget = e.domEvent.target || e.domEvent.srcElement;\n if (\"unselectable\" in eventTarget)\n eventTarget.unselectable = \"on\";\n if (editor.getDragDelay()) {\n if (useragent.isWebKit) {\n this.cancelDrag = true;\n var mouseTarget = editor.container;\n mouseTarget.draggable = true;\n }\n this.setState(\"dragWait\");\n }\n else {\n this.startDrag();\n }\n this.captureMouse(e, this.onMouseDrag.bind(this));\n e.defaultPrevented = true;\n }\n };\n}).call(DragdropHandler.prototype);\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\nexports.DragdropHandler = DragdropHandler;\n\n});\n\nace.define(\"ace/mouse/touch_handler\",[\"require\",\"exports\",\"module\",\"ace/mouse/mouse_event\",\"ace/lib/event\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar MouseEvent = require(\"./mouse_event\").MouseEvent;\nvar event = require(\"../lib/event\");\nvar dom = require(\"../lib/dom\");\nexports.addTouchListeners = function (el, editor) {\n var mode = \"scroll\";\n var startX;\n var startY;\n var touchStartT;\n var lastT;\n var longTouchTimer;\n var animationTimer;\n var animationSteps = 0;\n var pos;\n var clickCount = 0;\n var vX = 0;\n var vY = 0;\n var pressed;\n var contextMenu;\n function createContextMenu() {\n var clipboard = window.navigator && window.navigator.clipboard;\n var isOpen = false;\n var updateMenu = function () {\n var selected = editor.getCopyText();\n var hasUndo = editor.session.getUndoManager().hasUndo();\n contextMenu.replaceChild(dom.buildDom(isOpen ? [\"span\",\n !selected && [\"span\", { class: \"ace_mobile-button\", action: \"selectall\" }, \"Select All\"],\n selected && [\"span\", { class: \"ace_mobile-button\", action: \"copy\" }, \"Copy\"],\n selected && [\"span\", { class: \"ace_mobile-button\", action: \"cut\" }, \"Cut\"],\n clipboard && [\"span\", { class: \"ace_mobile-button\", action: \"paste\" }, \"Paste\"],\n hasUndo && [\"span\", { class: \"ace_mobile-button\", action: \"undo\" }, \"Undo\"],\n [\"span\", { class: \"ace_mobile-button\", action: \"find\" }, \"Find\"],\n [\"span\", { class: \"ace_mobile-button\", action: \"openCommandPalette\" }, \"Palette\"]\n ] : [\"span\"]), contextMenu.firstChild);\n };\n var handleClick = function (e) {\n var action = e.target.getAttribute(\"action\");\n if (action == \"more\" || !isOpen) {\n isOpen = !isOpen;\n return updateMenu();\n }\n if (action == \"paste\") {\n clipboard.readText().then(function (text) {\n editor.execCommand(action, text);\n });\n }\n else if (action) {\n if (action == \"cut\" || action == \"copy\") {\n if (clipboard)\n clipboard.writeText(editor.getCopyText());\n else\n document.execCommand(\"copy\");\n }\n editor.execCommand(action);\n }\n contextMenu.firstChild.style.display = \"none\";\n isOpen = false;\n if (action != \"openCommandPalette\")\n editor.focus();\n };\n contextMenu = dom.buildDom([\"div\",\n {\n class: \"ace_mobile-menu\",\n ontouchstart: function (e) {\n mode = \"menu\";\n e.stopPropagation();\n e.preventDefault();\n editor.textInput.focus();\n },\n ontouchend: function (e) {\n e.stopPropagation();\n e.preventDefault();\n handleClick(e);\n },\n onclick: handleClick\n },\n [\"span\"],\n [\"span\", { class: \"ace_mobile-button\", action: \"more\" }, \"...\"]\n ], editor.container);\n }\n function showContextMenu() {\n if (!contextMenu)\n createContextMenu();\n var cursor = editor.selection.cursor;\n var pagePos = editor.renderer.textToScreenCoordinates(cursor.row, cursor.column);\n var leftOffset = editor.renderer.textToScreenCoordinates(0, 0).pageX;\n var scrollLeft = editor.renderer.scrollLeft;\n var rect = editor.container.getBoundingClientRect();\n contextMenu.style.top = pagePos.pageY - rect.top - 3 + \"px\";\n if (pagePos.pageX - rect.left < rect.width - 70) {\n contextMenu.style.left = \"\";\n contextMenu.style.right = \"10px\";\n }\n else {\n contextMenu.style.right = \"\";\n contextMenu.style.left = leftOffset + scrollLeft - rect.left + \"px\";\n }\n contextMenu.style.display = \"\";\n contextMenu.firstChild.style.display = \"none\";\n editor.on(\"input\", hideContextMenu);\n }\n function hideContextMenu(e) {\n if (contextMenu)\n contextMenu.style.display = \"none\";\n editor.off(\"input\", hideContextMenu);\n }\n function handleLongTap() {\n longTouchTimer = null;\n clearTimeout(longTouchTimer);\n var range = editor.selection.getRange();\n var inSelection = range.contains(pos.row, pos.column);\n if (range.isEmpty() || !inSelection) {\n editor.selection.moveToPosition(pos);\n editor.selection.selectWord();\n }\n mode = \"wait\";\n showContextMenu();\n }\n function switchToSelectionMode() {\n longTouchTimer = null;\n clearTimeout(longTouchTimer);\n editor.selection.moveToPosition(pos);\n var range = clickCount >= 2\n ? editor.selection.getLineRange(pos.row)\n : editor.session.getBracketRange(pos);\n if (range && !range.isEmpty()) {\n editor.selection.setRange(range);\n }\n else {\n editor.selection.selectWord();\n }\n mode = \"wait\";\n }\n event.addListener(el, \"contextmenu\", function (e) {\n if (!pressed)\n return;\n var textarea = editor.textInput.getElement();\n textarea.focus();\n }, editor);\n event.addListener(el, \"touchstart\", function (e) {\n var touches = e.touches;\n if (longTouchTimer || touches.length > 1) {\n clearTimeout(longTouchTimer);\n longTouchTimer = null;\n touchStartT = -1;\n mode = \"zoom\";\n return;\n }\n pressed = editor.$mouseHandler.isMousePressed = true;\n var h = editor.renderer.layerConfig.lineHeight;\n var w = editor.renderer.layerConfig.lineHeight;\n var t = e.timeStamp;\n lastT = t;\n var touchObj = touches[0];\n var x = touchObj.clientX;\n var y = touchObj.clientY;\n if (Math.abs(startX - x) + Math.abs(startY - y) > h)\n touchStartT = -1;\n startX = e.clientX = x;\n startY = e.clientY = y;\n vX = vY = 0;\n var ev = new MouseEvent(e, editor);\n pos = ev.getDocumentPosition();\n if (t - touchStartT < 500 && touches.length == 1 && !animationSteps) {\n clickCount++;\n e.preventDefault();\n e.button = 0;\n switchToSelectionMode();\n }\n else {\n clickCount = 0;\n var cursor = editor.selection.cursor;\n var anchor = editor.selection.isEmpty() ? cursor : editor.selection.anchor;\n var cursorPos = editor.renderer.$cursorLayer.getPixelPosition(cursor, true);\n var anchorPos = editor.renderer.$cursorLayer.getPixelPosition(anchor, true);\n var rect = editor.renderer.scroller.getBoundingClientRect();\n var offsetTop = editor.renderer.layerConfig.offset;\n var offsetLeft = editor.renderer.scrollLeft;\n var weightedDistance = function (x, y) {\n x = x / w;\n y = y / h - 0.75;\n return x * x + y * y;\n };\n if (e.clientX < rect.left) {\n mode = \"zoom\";\n return;\n }\n var diff1 = weightedDistance(e.clientX - rect.left - cursorPos.left + offsetLeft, e.clientY - rect.top - cursorPos.top + offsetTop);\n var diff2 = weightedDistance(e.clientX - rect.left - anchorPos.left + offsetLeft, e.clientY - rect.top - anchorPos.top + offsetTop);\n if (diff1 < 3.5 && diff2 < 3.5)\n mode = diff1 > diff2 ? \"cursor\" : \"anchor\";\n if (diff2 < 3.5)\n mode = \"anchor\";\n else if (diff1 < 3.5)\n mode = \"cursor\";\n else\n mode = \"scroll\";\n longTouchTimer = setTimeout(handleLongTap, 450);\n }\n touchStartT = t;\n }, editor);\n event.addListener(el, \"touchend\", function (e) {\n pressed = editor.$mouseHandler.isMousePressed = false;\n if (animationTimer)\n clearInterval(animationTimer);\n if (mode == \"zoom\") {\n mode = \"\";\n animationSteps = 0;\n }\n else if (longTouchTimer) {\n editor.selection.moveToPosition(pos);\n animationSteps = 0;\n showContextMenu();\n }\n else if (mode == \"scroll\") {\n animate();\n hideContextMenu();\n }\n else {\n showContextMenu();\n }\n clearTimeout(longTouchTimer);\n longTouchTimer = null;\n }, editor);\n event.addListener(el, \"touchmove\", function (e) {\n if (longTouchTimer) {\n clearTimeout(longTouchTimer);\n longTouchTimer = null;\n }\n var touches = e.touches;\n if (touches.length > 1 || mode == \"zoom\")\n return;\n var touchObj = touches[0];\n var wheelX = startX - touchObj.clientX;\n var wheelY = startY - touchObj.clientY;\n if (mode == \"wait\") {\n if (wheelX * wheelX + wheelY * wheelY > 4)\n mode = \"cursor\";\n else\n return e.preventDefault();\n }\n startX = touchObj.clientX;\n startY = touchObj.clientY;\n e.clientX = touchObj.clientX;\n e.clientY = touchObj.clientY;\n var t = e.timeStamp;\n var dt = t - lastT;\n lastT = t;\n if (mode == \"scroll\") {\n var mouseEvent = new MouseEvent(e, editor);\n mouseEvent.speed = 1;\n mouseEvent.wheelX = wheelX;\n mouseEvent.wheelY = wheelY;\n if (10 * Math.abs(wheelX) < Math.abs(wheelY))\n wheelX = 0;\n if (10 * Math.abs(wheelY) < Math.abs(wheelX))\n wheelY = 0;\n if (dt != 0) {\n vX = wheelX / dt;\n vY = wheelY / dt;\n }\n editor._emit(\"mousewheel\", mouseEvent);\n if (!mouseEvent.propagationStopped) {\n vX = vY = 0;\n }\n }\n else {\n var ev = new MouseEvent(e, editor);\n var pos = ev.getDocumentPosition();\n if (mode == \"cursor\")\n editor.selection.moveCursorToPosition(pos);\n else if (mode == \"anchor\")\n editor.selection.setSelectionAnchor(pos.row, pos.column);\n editor.renderer.scrollCursorIntoView(pos);\n e.preventDefault();\n }\n }, editor);\n function animate() {\n animationSteps += 60;\n animationTimer = setInterval(function () {\n if (animationSteps-- <= 0) {\n clearInterval(animationTimer);\n animationTimer = null;\n }\n if (Math.abs(vX) < 0.01)\n vX = 0;\n if (Math.abs(vY) < 0.01)\n vY = 0;\n if (animationSteps < 20)\n vX = 0.9 * vX;\n if (animationSteps < 20)\n vY = 0.9 * vY;\n var oldScrollTop = editor.session.getScrollTop();\n editor.renderer.scrollBy(10 * vX, 10 * vY);\n if (oldScrollTop == editor.session.getScrollTop())\n animationSteps = 0;\n }, 10);\n }\n};\n\n});\n\nace.define(\"ace/mouse/mouse_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/mouse/default_handlers\",\"ace/mouse/default_gutter_handler\",\"ace/mouse/mouse_event\",\"ace/mouse/dragdrop_handler\",\"ace/mouse/touch_handler\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar DefaultHandlers = require(\"./default_handlers\").DefaultHandlers;\nvar DefaultGutterHandler = require(\"./default_gutter_handler\").GutterHandler;\nvar MouseEvent = require(\"./mouse_event\").MouseEvent;\nvar DragdropHandler = require(\"./dragdrop_handler\").DragdropHandler;\nvar addTouchListeners = require(\"./touch_handler\").addTouchListeners;\nvar config = require(\"../config\");\nvar MouseHandler = /** @class */ (function () {\n function MouseHandler(editor) {\n var _self = this;\n this.editor = editor;\n new DefaultHandlers(this);\n new DefaultGutterHandler(this);\n new DragdropHandler(this);\n var focusEditor = function (e) {\n var windowBlurred = !document.hasFocus || !document.hasFocus()\n || !editor.isFocused() && document.activeElement == (editor.textInput && editor.textInput.getElement());\n if (windowBlurred)\n window.focus();\n editor.focus();\n setTimeout(function () {\n if (!editor.isFocused())\n editor.focus();\n });\n };\n var mouseTarget = editor.renderer.getMouseEventTarget();\n event.addListener(mouseTarget, \"click\", this.onMouseEvent.bind(this, \"click\"), editor);\n event.addListener(mouseTarget, \"mousemove\", this.onMouseMove.bind(this, \"mousemove\"), editor);\n event.addMultiMouseDownListener([\n mouseTarget,\n editor.renderer.scrollBarV && editor.renderer.scrollBarV.inner,\n editor.renderer.scrollBarH && editor.renderer.scrollBarH.inner,\n editor.textInput && editor.textInput.getElement()\n ].filter(Boolean), [400, 300, 250], this, \"onMouseEvent\", editor);\n event.addMouseWheelListener(editor.container, this.onMouseWheel.bind(this, \"mousewheel\"), editor);\n addTouchListeners(editor.container, editor);\n var gutterEl = editor.renderer.$gutter;\n event.addListener(gutterEl, \"mousedown\", this.onMouseEvent.bind(this, \"guttermousedown\"), editor);\n event.addListener(gutterEl, \"click\", this.onMouseEvent.bind(this, \"gutterclick\"), editor);\n event.addListener(gutterEl, \"dblclick\", this.onMouseEvent.bind(this, \"gutterdblclick\"), editor);\n event.addListener(gutterEl, \"mousemove\", this.onMouseEvent.bind(this, \"guttermousemove\"), editor);\n event.addListener(mouseTarget, \"mousedown\", focusEditor, editor);\n event.addListener(gutterEl, \"mousedown\", focusEditor, editor);\n if (useragent.isIE && editor.renderer.scrollBarV) {\n event.addListener(editor.renderer.scrollBarV.element, \"mousedown\", focusEditor, editor);\n event.addListener(editor.renderer.scrollBarH.element, \"mousedown\", focusEditor, editor);\n }\n editor.on(\"mousemove\", function (e) {\n if (_self.state || _self.$dragDelay || !_self.$dragEnabled)\n return;\n var character = editor.renderer.screenToTextCoordinates(e.x, e.y);\n var range = editor.session.selection.getRange();\n var renderer = editor.renderer;\n if (!range.isEmpty() && range.insideStart(character.row, character.column)) {\n renderer.setCursorStyle(\"default\");\n }\n else {\n renderer.setCursorStyle(\"\");\n }\n }, editor);\n }\n MouseHandler.prototype.onMouseEvent = function (name, e) {\n if (!this.editor.session)\n return;\n this.editor._emit(name, new MouseEvent(e, this.editor));\n };\n MouseHandler.prototype.onMouseMove = function (name, e) {\n var listeners = this.editor._eventRegistry && this.editor._eventRegistry.mousemove;\n if (!listeners || !listeners.length)\n return;\n this.editor._emit(name, new MouseEvent(e, this.editor));\n };\n MouseHandler.prototype.onMouseWheel = function (name, e) {\n var mouseEvent = new MouseEvent(e, this.editor);\n mouseEvent.speed = this.$scrollSpeed * 2;\n mouseEvent.wheelX = e.wheelX;\n mouseEvent.wheelY = e.wheelY;\n this.editor._emit(name, mouseEvent);\n };\n MouseHandler.prototype.setState = function (state) {\n this.state = state;\n };\n MouseHandler.prototype.captureMouse = function (ev, mouseMoveHandler) {\n this.x = ev.x;\n this.y = ev.y;\n this.isMousePressed = true;\n var editor = this.editor;\n var renderer = this.editor.renderer;\n renderer.$isMousePressed = true;\n var self = this;\n var onMouseMove = function (e) {\n if (!e)\n return;\n if (useragent.isWebKit && !e.which && self.releaseMouse)\n return self.releaseMouse();\n self.x = e.clientX;\n self.y = e.clientY;\n mouseMoveHandler && mouseMoveHandler(e);\n self.mouseEvent = new MouseEvent(e, self.editor);\n self.$mouseMoved = true;\n };\n var onCaptureEnd = function (e) {\n editor.off(\"beforeEndOperation\", onOperationEnd);\n clearInterval(timerId);\n if (editor.session)\n onCaptureInterval();\n self[self.state + \"End\"] && self[self.state + \"End\"](e);\n self.state = \"\";\n self.isMousePressed = renderer.$isMousePressed = false;\n if (renderer.$keepTextAreaAtCursor)\n renderer.$moveTextAreaToCursor();\n self.$onCaptureMouseMove = self.releaseMouse = null;\n e && self.onMouseEvent(\"mouseup\", e);\n editor.endOperation();\n };\n var onCaptureInterval = function () {\n self[self.state] && self[self.state]();\n self.$mouseMoved = false;\n };\n if (useragent.isOldIE && ev.domEvent.type == \"dblclick\") {\n return setTimeout(function () { onCaptureEnd(ev); });\n }\n var onOperationEnd = function (e) {\n if (!self.releaseMouse)\n return;\n if (editor.curOp.command.name && editor.curOp.selectionChanged) {\n self[self.state + \"End\"] && self[self.state + \"End\"]();\n self.state = \"\";\n self.releaseMouse();\n }\n };\n editor.on(\"beforeEndOperation\", onOperationEnd);\n editor.startOperation({ command: { name: \"mouse\" } });\n self.$onCaptureMouseMove = onMouseMove;\n self.releaseMouse = event.capture(this.editor.container, onMouseMove, onCaptureEnd);\n var timerId = setInterval(onCaptureInterval, 20);\n };\n MouseHandler.prototype.cancelContextMenu = function () {\n var stop = function (e) {\n if (e && e.domEvent && e.domEvent.type != \"contextmenu\")\n return;\n this.editor.off(\"nativecontextmenu\", stop);\n if (e && e.domEvent)\n event.stopEvent(e.domEvent);\n }.bind(this);\n setTimeout(stop, 10);\n this.editor.on(\"nativecontextmenu\", stop);\n };\n MouseHandler.prototype.destroy = function () {\n if (this.releaseMouse)\n this.releaseMouse();\n };\n return MouseHandler;\n}());\nMouseHandler.prototype.releaseMouse = null;\nconfig.defineOptions(MouseHandler.prototype, \"mouseHandler\", {\n scrollSpeed: { initialValue: 2 },\n dragDelay: { initialValue: (useragent.isMac ? 150 : 0) },\n dragEnabled: { initialValue: true },\n focusTimeout: { initialValue: 0 },\n tooltipFollowsMouse: { initialValue: true }\n});\nexports.MouseHandler = MouseHandler;\n\n});\n\nace.define(\"ace/mouse/fold_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar FoldHandler = /** @class */ (function () {\n function FoldHandler(editor) {\n editor.on(\"click\", function (e) {\n var position = e.getDocumentPosition();\n var session = editor.session;\n var fold = session.getFoldAt(position.row, position.column, 1);\n if (fold) {\n if (e.getAccelKey())\n session.removeFold(fold);\n else\n session.expandFold(fold);\n e.stop();\n }\n var target = e.domEvent && e.domEvent.target;\n if (target && dom.hasCssClass(target, \"ace_inline_button\")) {\n if (dom.hasCssClass(target, \"ace_toggle_wrap\")) {\n session.setOption(\"wrap\", !session.getUseWrapMode());\n editor.renderer.scrollCursorIntoView();\n }\n }\n });\n editor.on(\"gutterclick\", function (e) {\n var gutterRegion = editor.renderer.$gutterLayer.getRegion(e);\n if (gutterRegion == \"foldWidgets\") {\n var row = e.getDocumentPosition().row;\n var session = editor.session;\n if (session.foldWidgets && session.foldWidgets[row])\n editor.session.onFoldWidgetClick(row, e);\n if (!editor.isFocused())\n editor.focus();\n e.stop();\n }\n });\n editor.on(\"gutterdblclick\", function (e) {\n var gutterRegion = editor.renderer.$gutterLayer.getRegion(e);\n if (gutterRegion == \"foldWidgets\") {\n var row = e.getDocumentPosition().row;\n var session = editor.session;\n var data = session.getParentFoldRangeData(row, true);\n var range = data.range || data.firstRange;\n if (range) {\n row = range.start.row;\n var fold = session.getFoldAt(row, session.getLine(row).length, 1);\n if (fold) {\n session.removeFold(fold);\n }\n else {\n session.addFold(\"...\", range);\n editor.renderer.scrollCursorIntoView({ row: range.start.row, column: 0 });\n }\n }\n e.stop();\n }\n });\n }\n return FoldHandler;\n}());\nexports.FoldHandler = FoldHandler;\n\n});\n\nace.define(\"ace/keyboard/keybinding\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/event\"], function(require, exports, module){\"use strict\";\nvar keyUtil = require(\"../lib/keys\");\nvar event = require(\"../lib/event\");\nvar KeyBinding = /** @class */ (function () {\n function KeyBinding(editor) {\n this.$editor = editor;\n this.$data = { editor: editor };\n this.$handlers = [];\n this.setDefaultHandler(editor.commands);\n }\n KeyBinding.prototype.setDefaultHandler = function (kb) {\n this.removeKeyboardHandler(this.$defaultHandler);\n this.$defaultHandler = kb;\n this.addKeyboardHandler(kb, 0);\n };\n KeyBinding.prototype.setKeyboardHandler = function (kb) {\n var h = this.$handlers;\n if (h[h.length - 1] == kb)\n return;\n while (h[h.length - 1] && h[h.length - 1] != this.$defaultHandler)\n this.removeKeyboardHandler(h[h.length - 1]);\n this.addKeyboardHandler(kb, 1);\n };\n KeyBinding.prototype.addKeyboardHandler = function (kb, pos) {\n if (!kb)\n return;\n if (typeof kb == \"function\" && !kb.handleKeyboard)\n kb.handleKeyboard = kb;\n var i = this.$handlers.indexOf(kb);\n if (i != -1)\n this.$handlers.splice(i, 1);\n if (pos == undefined)\n this.$handlers.push(kb);\n else\n this.$handlers.splice(pos, 0, kb);\n if (i == -1 && kb.attach)\n kb.attach(this.$editor);\n };\n KeyBinding.prototype.removeKeyboardHandler = function (kb) {\n var i = this.$handlers.indexOf(kb);\n if (i == -1)\n return false;\n this.$handlers.splice(i, 1);\n kb.detach && kb.detach(this.$editor);\n return true;\n };\n KeyBinding.prototype.getKeyboardHandler = function () {\n return this.$handlers[this.$handlers.length - 1];\n };\n KeyBinding.prototype.getStatusText = function () {\n var data = this.$data;\n var editor = data.editor;\n return this.$handlers.map(function (h) {\n return h.getStatusText && h.getStatusText(editor, data) || \"\";\n }).filter(Boolean).join(\" \");\n };\n KeyBinding.prototype.$callKeyboardHandlers = function (hashId, keyString, keyCode, e) {\n var toExecute;\n var success = false;\n var commands = this.$editor.commands;\n for (var i = this.$handlers.length; i--;) {\n toExecute = this.$handlers[i].handleKeyboard(this.$data, hashId, keyString, keyCode, e);\n if (!toExecute || !toExecute.command)\n continue;\n if (toExecute.command == \"null\") {\n success = true;\n }\n else {\n success = commands.exec(toExecute.command, this.$editor, toExecute.args, e);\n }\n if (success && e && hashId != -1 &&\n toExecute.passEvent != true && toExecute.command.passEvent != true) {\n event.stopEvent(e);\n }\n if (success)\n break;\n }\n if (!success && hashId == -1) {\n toExecute = { command: \"insertstring\" };\n success = commands.exec(\"insertstring\", this.$editor, keyString);\n }\n if (success && this.$editor._signal)\n this.$editor._signal(\"keyboardActivity\", toExecute);\n return success;\n };\n KeyBinding.prototype.onCommandKey = function (e, hashId, keyCode) {\n var keyString = keyUtil.keyCodeToString(keyCode);\n return this.$callKeyboardHandlers(hashId, keyString, keyCode, e);\n };\n KeyBinding.prototype.onTextInput = function (text) {\n return this.$callKeyboardHandlers(-1, text);\n };\n return KeyBinding;\n}());\nexports.KeyBinding = KeyBinding;\n\n});\n\nace.define(\"ace/lib/bidiutil\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar ArabicAlefBetIntervalsBegine = ['\\u0621', '\\u0641'];\nvar ArabicAlefBetIntervalsEnd = ['\\u063A', '\\u064a'];\nvar dir = 0, hiLevel = 0;\nvar lastArabic = false, hasUBAT_AL = false, hasUBAT_B = false, hasUBAT_S = false, hasBlockSep = false, hasSegSep = false;\nvar impTab_LTR = [ [0, 3, 0, 1, 0, 0, 0], [0, 3, 0, 1, 2, 2, 0], [0, 3, 0, 0x11, 2, 0, 1], [0, 3, 5, 5, 4, 1, 0], [0, 3, 0x15, 0x15, 4, 0, 1], [0, 3, 5, 5, 4, 2, 0]\n];\nvar impTab_RTL = [ [2, 0, 1, 1, 0, 1, 0], [2, 0, 1, 1, 0, 2, 0], [2, 0, 2, 1, 3, 2, 0], [2, 0, 2, 0x21, 3, 1, 1]\n];\nvar LTR = 0, RTL = 1;\nvar L = 0;\nvar R = 1;\nvar EN = 2;\nvar AN = 3;\nvar ON = 4;\nvar B = 5;\nvar S = 6;\nvar AL = 7;\nvar WS = 8;\nvar CS = 9;\nvar ES = 10;\nvar ET = 11;\nvar NSM = 12;\nvar LRE = 13;\nvar RLE = 14;\nvar PDF = 15;\nvar LRO = 16;\nvar RLO = 17;\nvar BN = 18;\nvar UnicodeTBL00 = [\n BN, BN, BN, BN, BN, BN, BN, BN, BN, S, B, S, WS, B, BN, BN,\n BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, B, B, B, S,\n WS, ON, ON, ET, ET, ET, ON, ON, ON, ON, ON, ES, CS, ES, CS, CS,\n EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, CS, ON, ON, ON, ON, ON,\n ON, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L,\n L, L, L, L, L, L, L, L, L, L, L, ON, ON, ON, ON, ON,\n ON, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L,\n L, L, L, L, L, L, L, L, L, L, L, ON, ON, ON, ON, BN,\n BN, BN, BN, BN, BN, B, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN,\n BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN,\n CS, ON, ET, ET, ET, ET, ON, ON, ON, ON, L, ON, ON, BN, ON, ON,\n ET, ET, EN, EN, ON, L, ON, ON, ON, EN, L, ON, ON, ON, ON, ON\n];\nvar UnicodeTBL20 = [\n WS, WS, WS, WS, WS, WS, WS, WS, WS, WS, WS, BN, BN, BN, L, R,\n ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,\n ON, ON, ON, ON, ON, ON, ON, ON, WS, B, LRE, RLE, PDF, LRO, RLO, CS,\n ET, ET, ET, ET, ET, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,\n ON, ON, ON, ON, CS, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,\n ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, WS\n];\nfunction _computeLevels(chars, levels, len, charTypes) {\n var impTab = dir ? impTab_RTL : impTab_LTR, prevState = null, newClass = null, newLevel = null, newState = 0, action = null, cond = null, condPos = -1, i = null, ix = null, classes = [];\n if (!charTypes) {\n for (i = 0, charTypes = []; i < len; i++) {\n charTypes[i] = _getCharacterType(chars[i]);\n }\n }\n hiLevel = dir;\n lastArabic = false;\n hasUBAT_AL = false;\n hasUBAT_B = false;\n hasUBAT_S = false;\n for (ix = 0; ix < len; ix++) {\n prevState = newState;\n classes[ix] = newClass = _getCharClass(chars, charTypes, classes, ix);\n newState = impTab[prevState][newClass];\n action = newState & 0xF0;\n newState &= 0x0F;\n levels[ix] = newLevel = impTab[newState][5];\n if (action > 0) {\n if (action == 0x10) {\n for (i = condPos; i < ix; i++) {\n levels[i] = 1;\n }\n condPos = -1;\n }\n else {\n condPos = -1;\n }\n }\n cond = impTab[newState][6];\n if (cond) {\n if (condPos == -1) {\n condPos = ix;\n }\n }\n else {\n if (condPos > -1) {\n for (i = condPos; i < ix; i++) {\n levels[i] = newLevel;\n }\n condPos = -1;\n }\n }\n if (charTypes[ix] == B) {\n levels[ix] = 0;\n }\n hiLevel |= newLevel;\n }\n if (hasUBAT_S) {\n for (i = 0; i < len; i++) {\n if (charTypes[i] == S) {\n levels[i] = dir;\n for (var j = i - 1; j >= 0; j--) {\n if (charTypes[j] == WS) {\n levels[j] = dir;\n }\n else {\n break;\n }\n }\n }\n }\n }\n}\nfunction _invertLevel(lev, levels, _array) {\n if (hiLevel < lev) {\n return;\n }\n if (lev == 1 && dir == RTL && !hasUBAT_B) {\n _array.reverse();\n return;\n }\n var len = _array.length, start = 0, end, lo, hi, tmp;\n while (start < len) {\n if (levels[start] >= lev) {\n end = start + 1;\n while (end < len && levels[end] >= lev) {\n end++;\n }\n for (lo = start, hi = end - 1; lo < hi; lo++, hi--) {\n tmp = _array[lo];\n _array[lo] = _array[hi];\n _array[hi] = tmp;\n }\n start = end;\n }\n start++;\n }\n}\nfunction _getCharClass(chars, types, classes, ix) {\n var cType = types[ix], wType, nType, len, i;\n switch (cType) {\n case L:\n case R:\n lastArabic = false;\n case ON:\n case AN:\n return cType;\n case EN:\n return lastArabic ? AN : EN;\n case AL:\n lastArabic = true;\n hasUBAT_AL = true;\n return R;\n case WS:\n return ON;\n case CS:\n if (ix < 1 || (ix + 1) >= types.length ||\n ((wType = classes[ix - 1]) != EN && wType != AN) ||\n ((nType = types[ix + 1]) != EN && nType != AN)) {\n return ON;\n }\n if (lastArabic) {\n nType = AN;\n }\n return nType == wType ? nType : ON;\n case ES:\n wType = ix > 0 ? classes[ix - 1] : B;\n if (wType == EN && (ix + 1) < types.length && types[ix + 1] == EN) {\n return EN;\n }\n return ON;\n case ET:\n if (ix > 0 && classes[ix - 1] == EN) {\n return EN;\n }\n if (lastArabic) {\n return ON;\n }\n i = ix + 1;\n len = types.length;\n while (i < len && types[i] == ET) {\n i++;\n }\n if (i < len && types[i] == EN) {\n return EN;\n }\n return ON;\n case NSM:\n len = types.length;\n i = ix + 1;\n while (i < len && types[i] == NSM) {\n i++;\n }\n if (i < len) {\n var c = chars[ix], rtlCandidate = (c >= 0x0591 && c <= 0x08FF) || c == 0xFB1E;\n wType = types[i];\n if (rtlCandidate && (wType == R || wType == AL)) {\n return R;\n }\n }\n if (ix < 1 || (wType = types[ix - 1]) == B) {\n return ON;\n }\n return classes[ix - 1];\n case B:\n lastArabic = false;\n hasUBAT_B = true;\n return dir;\n case S:\n hasUBAT_S = true;\n return ON;\n case LRE:\n case RLE:\n case LRO:\n case RLO:\n case PDF:\n lastArabic = false;\n case BN:\n return ON;\n }\n}\nfunction _getCharacterType(ch) {\n var uc = ch.charCodeAt(0), hi = uc >> 8;\n if (hi == 0) {\n return ((uc > 0x00BF) ? L : UnicodeTBL00[uc]);\n }\n else if (hi == 5) {\n return (/[\\u0591-\\u05f4]/.test(ch) ? R : L);\n }\n else if (hi == 6) {\n if (/[\\u0610-\\u061a\\u064b-\\u065f\\u06d6-\\u06e4\\u06e7-\\u06ed]/.test(ch))\n return NSM;\n else if (/[\\u0660-\\u0669\\u066b-\\u066c]/.test(ch))\n return AN;\n else if (uc == 0x066A)\n return ET;\n else if (/[\\u06f0-\\u06f9]/.test(ch))\n return EN;\n else\n return AL;\n }\n else if (hi == 0x20 && uc <= 0x205F) {\n return UnicodeTBL20[uc & 0xFF];\n }\n else if (hi == 0xFE) {\n return (uc >= 0xFE70 ? AL : ON);\n }\n return ON;\n}\nfunction _isArabicDiacritics(ch) {\n return (ch >= '\\u064b' && ch <= '\\u0655');\n}\nexports.L = L;\nexports.R = R;\nexports.EN = EN;\nexports.ON_R = 3;\nexports.AN = 4;\nexports.R_H = 5;\nexports.B = 6;\nexports.RLE = 7;\nexports.DOT = \"\\xB7\";\nexports.doBidiReorder = function (text, textCharTypes, isRtl) {\n if (text.length < 2)\n return {};\n var chars = text.split(\"\"), logicalFromVisual = new Array(chars.length), bidiLevels = new Array(chars.length), levels = [];\n dir = isRtl ? RTL : LTR;\n _computeLevels(chars, levels, chars.length, textCharTypes);\n for (var i = 0; i < logicalFromVisual.length; logicalFromVisual[i] = i, i++)\n ;\n _invertLevel(2, levels, logicalFromVisual);\n _invertLevel(1, levels, logicalFromVisual);\n for (var i = 0; i < logicalFromVisual.length - 1; i++) { //fix levels to reflect character width\n if (textCharTypes[i] === AN) {\n levels[i] = exports.AN;\n }\n else if (levels[i] === R && ((textCharTypes[i] > AL && textCharTypes[i] < LRE)\n || textCharTypes[i] === ON || textCharTypes[i] === BN)) {\n levels[i] = exports.ON_R;\n }\n else if ((i > 0 && chars[i - 1] === '\\u0644') && /\\u0622|\\u0623|\\u0625|\\u0627/.test(chars[i])) {\n levels[i - 1] = levels[i] = exports.R_H;\n i++;\n }\n }\n if (chars[chars.length - 1] === exports.DOT)\n levels[chars.length - 1] = exports.B;\n if (chars[0] === '\\u202B')\n levels[0] = exports.RLE;\n for (var i = 0; i < logicalFromVisual.length; i++) {\n bidiLevels[i] = levels[logicalFromVisual[i]];\n }\n return { 'logicalFromVisual': logicalFromVisual, 'bidiLevels': bidiLevels };\n};\nexports.hasBidiCharacters = function (text, textCharTypes) {\n var ret = false;\n for (var i = 0; i < text.length; i++) {\n textCharTypes[i] = _getCharacterType(text.charAt(i));\n if (!ret && (textCharTypes[i] == R || textCharTypes[i] == AL || textCharTypes[i] == AN))\n ret = true;\n }\n return ret;\n};\nexports.getVisualFromLogicalIdx = function (logIdx, rowMap) {\n for (var i = 0; i < rowMap.logicalFromVisual.length; i++) {\n if (rowMap.logicalFromVisual[i] == logIdx)\n return i;\n }\n return 0;\n};\n\n});\n\nace.define(\"ace/bidihandler\",[\"require\",\"exports\",\"module\",\"ace/lib/bidiutil\",\"ace/lib/lang\"], function(require, exports, module){\"use strict\";\nvar bidiUtil = require(\"./lib/bidiutil\");\nvar lang = require(\"./lib/lang\");\nvar bidiRE = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac\\u202B]/;\nvar BidiHandler = /** @class */ (function () {\n function BidiHandler(session) {\n this.session = session;\n this.bidiMap = {};\n this.currentRow = null;\n this.bidiUtil = bidiUtil;\n this.charWidths = [];\n this.EOL = \"\\xAC\";\n this.showInvisibles = true;\n this.isRtlDir = false;\n this.$isRtl = false;\n this.line = \"\";\n this.wrapIndent = 0;\n this.EOF = \"\\xB6\";\n this.RLE = \"\\u202B\";\n this.contentWidth = 0;\n this.fontMetrics = null;\n this.rtlLineOffset = 0;\n this.wrapOffset = 0;\n this.isMoveLeftOperation = false;\n this.seenBidi = bidiRE.test(session.getValue());\n }\n BidiHandler.prototype.isBidiRow = function (screenRow, docRow, splitIndex) {\n if (!this.seenBidi)\n return false;\n if (screenRow !== this.currentRow) {\n this.currentRow = screenRow;\n this.updateRowLine(docRow, splitIndex);\n this.updateBidiMap();\n }\n return this.bidiMap.bidiLevels;\n };\n BidiHandler.prototype.onChange = function (delta) {\n if (!this.seenBidi) {\n if (delta.action == \"insert\" && bidiRE.test(delta.lines.join(\"\\n\"))) {\n this.seenBidi = true;\n this.currentRow = null;\n }\n }\n else {\n this.currentRow = null;\n }\n };\n BidiHandler.prototype.getDocumentRow = function () {\n var docRow = 0;\n var rowCache = this.session.$screenRowCache;\n if (rowCache.length) {\n var index = this.session.$getRowCacheIndex(rowCache, this.currentRow);\n if (index >= 0)\n docRow = this.session.$docRowCache[index];\n }\n return docRow;\n };\n BidiHandler.prototype.getSplitIndex = function () {\n var splitIndex = 0;\n var rowCache = this.session.$screenRowCache;\n if (rowCache.length) {\n var currentIndex, prevIndex = this.session.$getRowCacheIndex(rowCache, this.currentRow);\n while (this.currentRow - splitIndex > 0) {\n currentIndex = this.session.$getRowCacheIndex(rowCache, this.currentRow - splitIndex - 1);\n if (currentIndex !== prevIndex)\n break;\n prevIndex = currentIndex;\n splitIndex++;\n }\n }\n else {\n splitIndex = this.currentRow;\n }\n return splitIndex;\n };\n BidiHandler.prototype.updateRowLine = function (docRow, splitIndex) {\n if (docRow === undefined)\n docRow = this.getDocumentRow();\n var isLastRow = (docRow === this.session.getLength() - 1), endOfLine = isLastRow ? this.EOF : this.EOL;\n this.wrapIndent = 0;\n this.line = this.session.getLine(docRow);\n this.isRtlDir = this.$isRtl || this.line.charAt(0) === this.RLE;\n if (this.session.$useWrapMode) {\n var splits = this.session.$wrapData[docRow];\n if (splits) {\n if (splitIndex === undefined)\n splitIndex = this.getSplitIndex();\n if (splitIndex > 0 && splits.length) {\n this.wrapIndent = splits.indent;\n this.wrapOffset = this.wrapIndent * this.charWidths[bidiUtil.L];\n this.line = (splitIndex < splits.length) ?\n this.line.substring(splits[splitIndex - 1], splits[splitIndex]) :\n this.line.substring(splits[splits.length - 1]);\n }\n else {\n this.line = this.line.substring(0, splits[splitIndex]);\n }\n if (splitIndex == splits.length) {\n this.line += (this.showInvisibles) ? endOfLine : bidiUtil.DOT;\n }\n }\n }\n else {\n this.line += this.showInvisibles ? endOfLine : bidiUtil.DOT;\n }\n var session = this.session, shift = 0, size;\n this.line = this.line.replace(/\\t|[\\u1100-\\u2029, \\u202F-\\uFFE6]/g, function (ch, i) {\n if (ch === '\\t' || session.isFullWidth(ch.charCodeAt(0))) {\n size = (ch === '\\t') ? session.getScreenTabSize(i + shift) : 2;\n shift += size - 1;\n return lang.stringRepeat(bidiUtil.DOT, size);\n }\n return ch;\n });\n if (this.isRtlDir) {\n this.fontMetrics.$main.textContent = (this.line.charAt(this.line.length - 1) == bidiUtil.DOT) ? this.line.substr(0, this.line.length - 1) : this.line;\n this.rtlLineOffset = this.contentWidth - this.fontMetrics.$main.getBoundingClientRect().width;\n }\n };\n BidiHandler.prototype.updateBidiMap = function () {\n var textCharTypes = [];\n if (bidiUtil.hasBidiCharacters(this.line, textCharTypes) || this.isRtlDir) {\n this.bidiMap = bidiUtil.doBidiReorder(this.line, textCharTypes, this.isRtlDir);\n }\n else {\n this.bidiMap = {};\n }\n };\n BidiHandler.prototype.markAsDirty = function () {\n this.currentRow = null;\n };\n BidiHandler.prototype.updateCharacterWidths = function (fontMetrics) {\n if (this.characterWidth === fontMetrics.$characterSize.width)\n return;\n this.fontMetrics = fontMetrics;\n var characterWidth = this.characterWidth = fontMetrics.$characterSize.width;\n var bidiCharWidth = fontMetrics.$measureCharWidth(\"\\u05d4\");\n this.charWidths[bidiUtil.L] = this.charWidths[bidiUtil.EN] = this.charWidths[bidiUtil.ON_R] = characterWidth;\n this.charWidths[bidiUtil.R] = this.charWidths[bidiUtil.AN] = bidiCharWidth;\n this.charWidths[bidiUtil.R_H] = bidiCharWidth * 0.45;\n this.charWidths[bidiUtil.B] = this.charWidths[bidiUtil.RLE] = 0;\n this.currentRow = null;\n };\n BidiHandler.prototype.setShowInvisibles = function (showInvisibles) {\n this.showInvisibles = showInvisibles;\n this.currentRow = null;\n };\n BidiHandler.prototype.setEolChar = function (eolChar) {\n this.EOL = eolChar;\n };\n BidiHandler.prototype.setContentWidth = function (width) {\n this.contentWidth = width;\n };\n BidiHandler.prototype.isRtlLine = function (row) {\n if (this.$isRtl)\n return true;\n if (row != undefined)\n return (this.session.getLine(row).charAt(0) == this.RLE);\n else\n return this.isRtlDir;\n };\n BidiHandler.prototype.setRtlDirection = function (editor, isRtlDir) {\n var cursor = editor.getCursorPosition();\n for (var row = editor.selection.getSelectionAnchor().row; row <= cursor.row; row++) {\n if (!isRtlDir && editor.session.getLine(row).charAt(0) === editor.session.$bidiHandler.RLE)\n editor.session.doc.removeInLine(row, 0, 1);\n else if (isRtlDir && editor.session.getLine(row).charAt(0) !== editor.session.$bidiHandler.RLE)\n editor.session.doc.insert({ column: 0, row: row }, editor.session.$bidiHandler.RLE);\n }\n };\n BidiHandler.prototype.getPosLeft = function (col) {\n col -= this.wrapIndent;\n var leftBoundary = (this.line.charAt(0) === this.RLE) ? 1 : 0;\n var logicalIdx = (col > leftBoundary) ? (this.session.getOverwrite() ? col : col - 1) : leftBoundary;\n var visualIdx = bidiUtil.getVisualFromLogicalIdx(logicalIdx, this.bidiMap), levels = this.bidiMap.bidiLevels, left = 0;\n if (!this.session.getOverwrite() && col <= leftBoundary && levels[visualIdx] % 2 !== 0)\n visualIdx++;\n for (var i = 0; i < visualIdx; i++) {\n left += this.charWidths[levels[i]];\n }\n if (!this.session.getOverwrite() && (col > leftBoundary) && (levels[visualIdx] % 2 === 0))\n left += this.charWidths[levels[visualIdx]];\n if (this.wrapIndent)\n left += this.isRtlDir ? (-1 * this.wrapOffset) : this.wrapOffset;\n if (this.isRtlDir)\n left += this.rtlLineOffset;\n return left;\n };\n BidiHandler.prototype.getSelections = function (startCol, endCol) {\n var map = this.bidiMap, levels = map.bidiLevels, level, selections = [], offset = 0, selColMin = Math.min(startCol, endCol) - this.wrapIndent, selColMax = Math.max(startCol, endCol) - this.wrapIndent, isSelected = false, isSelectedPrev = false, selectionStart = 0;\n if (this.wrapIndent)\n offset += this.isRtlDir ? (-1 * this.wrapOffset) : this.wrapOffset;\n for (var logIdx, visIdx = 0; visIdx < levels.length; visIdx++) {\n logIdx = map.logicalFromVisual[visIdx];\n level = levels[visIdx];\n isSelected = (logIdx >= selColMin) && (logIdx < selColMax);\n if (isSelected && !isSelectedPrev) {\n selectionStart = offset;\n }\n else if (!isSelected && isSelectedPrev) {\n selections.push({ left: selectionStart, width: offset - selectionStart });\n }\n offset += this.charWidths[level];\n isSelectedPrev = isSelected;\n }\n if (isSelected && (visIdx === levels.length)) {\n selections.push({ left: selectionStart, width: offset - selectionStart });\n }\n if (this.isRtlDir) {\n for (var i = 0; i < selections.length; i++) {\n selections[i].left += this.rtlLineOffset;\n }\n }\n return selections;\n };\n BidiHandler.prototype.offsetToCol = function (posX) {\n if (this.isRtlDir)\n posX -= this.rtlLineOffset;\n var logicalIdx = 0, posX = Math.max(posX, 0), offset = 0, visualIdx = 0, levels = this.bidiMap.bidiLevels, charWidth = this.charWidths[levels[visualIdx]];\n if (this.wrapIndent)\n posX -= this.isRtlDir ? (-1 * this.wrapOffset) : this.wrapOffset;\n while (posX > offset + charWidth / 2) {\n offset += charWidth;\n if (visualIdx === levels.length - 1) {\n charWidth = 0;\n break;\n }\n charWidth = this.charWidths[levels[++visualIdx]];\n }\n if (visualIdx > 0 && (levels[visualIdx - 1] % 2 !== 0) && (levels[visualIdx] % 2 === 0)) {\n if (posX < offset)\n visualIdx--;\n logicalIdx = this.bidiMap.logicalFromVisual[visualIdx];\n }\n else if (visualIdx > 0 && (levels[visualIdx - 1] % 2 === 0) && (levels[visualIdx] % 2 !== 0)) {\n logicalIdx = 1 + ((posX > offset) ? this.bidiMap.logicalFromVisual[visualIdx]\n : this.bidiMap.logicalFromVisual[visualIdx - 1]);\n }\n else if ((this.isRtlDir && visualIdx === levels.length - 1 && charWidth === 0 && (levels[visualIdx - 1] % 2 === 0))\n || (!this.isRtlDir && visualIdx === 0 && (levels[visualIdx] % 2 !== 0))) {\n logicalIdx = 1 + this.bidiMap.logicalFromVisual[visualIdx];\n }\n else {\n if (visualIdx > 0 && (levels[visualIdx - 1] % 2 !== 0) && charWidth !== 0)\n visualIdx--;\n logicalIdx = this.bidiMap.logicalFromVisual[visualIdx];\n }\n if (logicalIdx === 0 && this.isRtlDir)\n logicalIdx++;\n return (logicalIdx + this.wrapIndent);\n };\n return BidiHandler;\n}());\nexports.BidiHandler = BidiHandler;\n\n});\n\nace.define(\"ace/selection\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar lang = require(\"./lib/lang\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Range = require(\"./range\").Range;\nvar Selection = /** @class */ (function () {\n function Selection(session) {\n this.session = session;\n this.doc = session.getDocument();\n this.clearSelection();\n this.cursor = this.lead = this.doc.createAnchor(0, 0);\n this.anchor = this.doc.createAnchor(0, 0);\n this.$silent = false;\n var self = this;\n this.cursor.on(\"change\", function (e) {\n self.$cursorChanged = true;\n if (!self.$silent)\n self._emit(\"changeCursor\");\n if (!self.$isEmpty && !self.$silent)\n self._emit(\"changeSelection\");\n if (!self.$keepDesiredColumnOnChange && e.old.column != e.value.column)\n self.$desiredColumn = null;\n });\n this.anchor.on(\"change\", function () {\n self.$anchorChanged = true;\n if (!self.$isEmpty && !self.$silent)\n self._emit(\"changeSelection\");\n });\n }\n Selection.prototype.isEmpty = function () {\n return this.$isEmpty || (this.anchor.row == this.lead.row &&\n this.anchor.column == this.lead.column);\n };\n Selection.prototype.isMultiLine = function () {\n return !this.$isEmpty && this.anchor.row != this.cursor.row;\n };\n Selection.prototype.getCursor = function () {\n return this.lead.getPosition();\n };\n Selection.prototype.setAnchor = function (row, column) {\n this.$isEmpty = false;\n this.anchor.setPosition(row, column);\n };\n Selection.prototype.getAnchor = function () {\n if (this.$isEmpty)\n return this.getSelectionLead();\n return this.anchor.getPosition();\n };\n Selection.prototype.getSelectionLead = function () {\n return this.lead.getPosition();\n };\n Selection.prototype.isBackwards = function () {\n var anchor = this.anchor;\n var lead = this.lead;\n return (anchor.row > lead.row || (anchor.row == lead.row && anchor.column > lead.column));\n };\n Selection.prototype.getRange = function () {\n var anchor = this.anchor;\n var lead = this.lead;\n if (this.$isEmpty)\n return Range.fromPoints(lead, lead);\n return this.isBackwards()\n ? Range.fromPoints(lead, anchor)\n : Range.fromPoints(anchor, lead);\n };\n Selection.prototype.clearSelection = function () {\n if (!this.$isEmpty) {\n this.$isEmpty = true;\n this._emit(\"changeSelection\");\n }\n };\n Selection.prototype.selectAll = function () {\n this.$setSelection(0, 0, Number.MAX_VALUE, Number.MAX_VALUE);\n };\n Selection.prototype.setRange = function (range, reverse) {\n var start = reverse ? range.end : range.start;\n var end = reverse ? range.start : range.end;\n this.$setSelection(start.row, start.column, end.row, end.column);\n };\n Selection.prototype.$setSelection = function (anchorRow, anchorColumn, cursorRow, cursorColumn) {\n if (this.$silent)\n return;\n var wasEmpty = this.$isEmpty;\n var wasMultiselect = this.inMultiSelectMode;\n this.$silent = true;\n this.$cursorChanged = this.$anchorChanged = false;\n this.anchor.setPosition(anchorRow, anchorColumn);\n this.cursor.setPosition(cursorRow, cursorColumn);\n this.$isEmpty = !Range.comparePoints(this.anchor, this.cursor);\n this.$silent = false;\n if (this.$cursorChanged)\n this._emit(\"changeCursor\");\n if (this.$cursorChanged || this.$anchorChanged || wasEmpty != this.$isEmpty || wasMultiselect)\n this._emit(\"changeSelection\");\n };\n Selection.prototype.$moveSelection = function (mover) {\n var lead = this.lead;\n if (this.$isEmpty)\n this.setSelectionAnchor(lead.row, lead.column);\n mover.call(this);\n };\n Selection.prototype.selectTo = function (row, column) {\n this.$moveSelection(function () {\n this.moveCursorTo(row, column);\n });\n };\n Selection.prototype.selectToPosition = function (pos) {\n this.$moveSelection(function () {\n this.moveCursorToPosition(pos);\n });\n };\n Selection.prototype.moveTo = function (row, column) {\n this.clearSelection();\n this.moveCursorTo(row, column);\n };\n Selection.prototype.moveToPosition = function (pos) {\n this.clearSelection();\n this.moveCursorToPosition(pos);\n };\n Selection.prototype.selectUp = function () {\n this.$moveSelection(this.moveCursorUp);\n };\n Selection.prototype.selectDown = function () {\n this.$moveSelection(this.moveCursorDown);\n };\n Selection.prototype.selectRight = function () {\n this.$moveSelection(this.moveCursorRight);\n };\n Selection.prototype.selectLeft = function () {\n this.$moveSelection(this.moveCursorLeft);\n };\n Selection.prototype.selectLineStart = function () {\n this.$moveSelection(this.moveCursorLineStart);\n };\n Selection.prototype.selectLineEnd = function () {\n this.$moveSelection(this.moveCursorLineEnd);\n };\n Selection.prototype.selectFileEnd = function () {\n this.$moveSelection(this.moveCursorFileEnd);\n };\n Selection.prototype.selectFileStart = function () {\n this.$moveSelection(this.moveCursorFileStart);\n };\n Selection.prototype.selectWordRight = function () {\n this.$moveSelection(this.moveCursorWordRight);\n };\n Selection.prototype.selectWordLeft = function () {\n this.$moveSelection(this.moveCursorWordLeft);\n };\n Selection.prototype.getWordRange = function (row, column) {\n if (typeof column == \"undefined\") {\n var cursor = row || this.lead;\n row = cursor.row;\n column = cursor.column;\n }\n return this.session.getWordRange(row, column);\n };\n Selection.prototype.selectWord = function () {\n this.setSelectionRange(this.getWordRange());\n };\n Selection.prototype.selectAWord = function () {\n var cursor = this.getCursor();\n var range = this.session.getAWordRange(cursor.row, cursor.column);\n this.setSelectionRange(range);\n };\n Selection.prototype.getLineRange = function (row, excludeLastChar) {\n var rowStart = typeof row == \"number\" ? row : this.lead.row;\n var rowEnd;\n var foldLine = this.session.getFoldLine(rowStart);\n if (foldLine) {\n rowStart = foldLine.start.row;\n rowEnd = foldLine.end.row;\n }\n else {\n rowEnd = rowStart;\n }\n if (excludeLastChar === true)\n return new Range(rowStart, 0, rowEnd, this.session.getLine(rowEnd).length);\n else\n return new Range(rowStart, 0, rowEnd + 1, 0);\n };\n Selection.prototype.selectLine = function () {\n this.setSelectionRange(this.getLineRange());\n };\n Selection.prototype.moveCursorUp = function () {\n this.moveCursorBy(-1, 0);\n };\n Selection.prototype.moveCursorDown = function () {\n this.moveCursorBy(1, 0);\n };\n Selection.prototype.wouldMoveIntoSoftTab = function (cursor, tabSize, direction) {\n var start = cursor.column;\n var end = cursor.column + tabSize;\n if (direction < 0) {\n start = cursor.column - tabSize;\n end = cursor.column;\n }\n return this.session.isTabStop(cursor) && this.doc.getLine(cursor.row).slice(start, end).split(\" \").length - 1 == tabSize;\n };\n Selection.prototype.moveCursorLeft = function () {\n var cursor = this.lead.getPosition(), fold;\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n }\n else if (cursor.column === 0) {\n if (cursor.row > 0) {\n this.moveCursorTo(cursor.row - 1, this.doc.getLine(cursor.row - 1).length);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n if (this.wouldMoveIntoSoftTab(cursor, tabSize, -1) && !this.session.getNavigateWithinSoftTabs()) {\n this.moveCursorBy(0, -tabSize);\n }\n else {\n this.moveCursorBy(0, -1);\n }\n }\n };\n Selection.prototype.moveCursorRight = function () {\n var cursor = this.lead.getPosition(), fold;\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, 1)) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n }\n else if (this.lead.column == this.doc.getLine(this.lead.row).length) {\n if (this.lead.row < this.doc.getLength() - 1) {\n this.moveCursorTo(this.lead.row + 1, 0);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n var cursor = this.lead;\n if (this.wouldMoveIntoSoftTab(cursor, tabSize, 1) && !this.session.getNavigateWithinSoftTabs()) {\n this.moveCursorBy(0, tabSize);\n }\n else {\n this.moveCursorBy(0, 1);\n }\n }\n };\n Selection.prototype.moveCursorLineStart = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var screenRow = this.session.documentToScreenRow(row, column);\n var firstColumnPosition = this.session.screenToDocumentPosition(screenRow, 0);\n var beforeCursor = this.session.getDisplayLine(row, null, firstColumnPosition.row, firstColumnPosition.column);\n var leadingSpace = beforeCursor.match(/^\\s*/);\n if (leadingSpace[0].length != column && !this.session.$useEmacsStyleLineStart)\n firstColumnPosition.column += leadingSpace[0].length;\n this.moveCursorToPosition(firstColumnPosition);\n };\n Selection.prototype.moveCursorLineEnd = function () {\n var lead = this.lead;\n var lineEnd = this.session.getDocumentLastRowColumnPosition(lead.row, lead.column);\n if (this.lead.column == lineEnd.column) {\n var line = this.session.getLine(lineEnd.row);\n if (lineEnd.column == line.length) {\n var textEnd = line.search(/\\s+$/);\n if (textEnd > 0)\n lineEnd.column = textEnd;\n }\n }\n this.moveCursorTo(lineEnd.row, lineEnd.column);\n };\n Selection.prototype.moveCursorFileEnd = function () {\n var row = this.doc.getLength() - 1;\n var column = this.doc.getLine(row).length;\n this.moveCursorTo(row, column);\n };\n Selection.prototype.moveCursorFileStart = function () {\n this.moveCursorTo(0, 0);\n };\n Selection.prototype.moveCursorLongWordRight = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n return;\n }\n if (this.session.nonTokenRe.exec(rightOfCursor)) {\n column += this.session.nonTokenRe.lastIndex;\n this.session.nonTokenRe.lastIndex = 0;\n rightOfCursor = line.substring(column);\n }\n if (column >= line.length) {\n this.moveCursorTo(row, line.length);\n this.moveCursorRight();\n if (row < this.doc.getLength() - 1)\n this.moveCursorWordRight();\n return;\n }\n if (this.session.tokenRe.exec(rightOfCursor)) {\n column += this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n this.moveCursorTo(row, column);\n };\n Selection.prototype.moveCursorLongWordLeft = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n return;\n }\n var str = this.session.getFoldStringAt(row, column, -1);\n if (str == null) {\n str = this.doc.getLine(row).substring(0, column);\n }\n var leftOfCursor = lang.stringReverse(str);\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n if (this.session.nonTokenRe.exec(leftOfCursor)) {\n column -= this.session.nonTokenRe.lastIndex;\n leftOfCursor = leftOfCursor.slice(this.session.nonTokenRe.lastIndex);\n this.session.nonTokenRe.lastIndex = 0;\n }\n if (column <= 0) {\n this.moveCursorTo(row, 0);\n this.moveCursorLeft();\n if (row > 0)\n this.moveCursorWordLeft();\n return;\n }\n if (this.session.tokenRe.exec(leftOfCursor)) {\n column -= this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n this.moveCursorTo(row, column);\n };\n Selection.prototype.$shortWordEndIndex = function (rightOfCursor) {\n var index = 0, ch;\n var whitespaceRe = /\\s/;\n var tokenRe = this.session.tokenRe;\n tokenRe.lastIndex = 0;\n if (this.session.tokenRe.exec(rightOfCursor)) {\n index = this.session.tokenRe.lastIndex;\n }\n else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index++;\n if (index < 1) {\n tokenRe.lastIndex = 0;\n while ((ch = rightOfCursor[index]) && !tokenRe.test(ch)) {\n tokenRe.lastIndex = 0;\n index++;\n if (whitespaceRe.test(ch)) {\n if (index > 2) {\n index--;\n break;\n }\n else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index++;\n if (index > 2)\n break;\n }\n }\n }\n }\n }\n tokenRe.lastIndex = 0;\n return index;\n };\n Selection.prototype.moveCursorShortWordRight = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold)\n return this.moveCursorTo(fold.end.row, fold.end.column);\n if (column == line.length) {\n var l = this.doc.getLength();\n do {\n row++;\n rightOfCursor = this.doc.getLine(row);\n } while (row < l && /^\\s*$/.test(rightOfCursor));\n if (!/^\\s+/.test(rightOfCursor))\n rightOfCursor = \"\";\n column = 0;\n }\n var index = this.$shortWordEndIndex(rightOfCursor);\n this.moveCursorTo(row, column + index);\n };\n Selection.prototype.moveCursorShortWordLeft = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1))\n return this.moveCursorTo(fold.start.row, fold.start.column);\n var line = this.session.getLine(row).substring(0, column);\n if (column === 0) {\n do {\n row--;\n line = this.doc.getLine(row);\n } while (row > 0 && /^\\s*$/.test(line));\n column = line.length;\n if (!/\\s+$/.test(line))\n line = \"\";\n }\n var leftOfCursor = lang.stringReverse(line);\n var index = this.$shortWordEndIndex(leftOfCursor);\n return this.moveCursorTo(row, column - index);\n };\n Selection.prototype.moveCursorWordRight = function () {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordRight();\n else\n this.moveCursorShortWordRight();\n };\n Selection.prototype.moveCursorWordLeft = function () {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordLeft();\n else\n this.moveCursorShortWordLeft();\n };\n Selection.prototype.moveCursorBy = function (rows, chars) {\n var screenPos = this.session.documentToScreenPosition(this.lead.row, this.lead.column);\n var offsetX;\n if (chars === 0) {\n if (rows !== 0) {\n if (this.session.$bidiHandler.isBidiRow(screenPos.row, this.lead.row)) {\n offsetX = this.session.$bidiHandler.getPosLeft(screenPos.column);\n screenPos.column = Math.round(offsetX / this.session.$bidiHandler.charWidths[0]);\n }\n else {\n offsetX = screenPos.column * this.session.$bidiHandler.charWidths[0];\n }\n }\n if (this.$desiredColumn)\n screenPos.column = this.$desiredColumn;\n else\n this.$desiredColumn = screenPos.column;\n }\n if (rows != 0 && this.session.lineWidgets && this.session.lineWidgets[this.lead.row]) {\n var widget = this.session.lineWidgets[this.lead.row];\n if (rows < 0)\n rows -= widget.rowsAbove || 0;\n else if (rows > 0)\n rows += widget.rowCount - (widget.rowsAbove || 0);\n }\n var docPos = this.session.screenToDocumentPosition(screenPos.row + rows, screenPos.column, offsetX);\n if (rows !== 0 && chars === 0 && docPos.row === this.lead.row && docPos.column === this.lead.column) {\n }\n this.moveCursorTo(docPos.row, docPos.column + chars, chars === 0);\n };\n Selection.prototype.moveCursorToPosition = function (position) {\n this.moveCursorTo(position.row, position.column);\n };\n Selection.prototype.moveCursorTo = function (row, column, keepDesiredColumn) {\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n row = fold.start.row;\n column = fold.start.column;\n }\n this.$keepDesiredColumnOnChange = true;\n var line = this.session.getLine(row);\n if (/[\\uDC00-\\uDFFF]/.test(line.charAt(column)) && line.charAt(column - 1)) {\n if (this.lead.row == row && this.lead.column == column + 1)\n column = column - 1;\n else\n column = column + 1;\n }\n this.lead.setPosition(row, column);\n this.$keepDesiredColumnOnChange = false;\n if (!keepDesiredColumn)\n this.$desiredColumn = null;\n };\n Selection.prototype.moveCursorToScreen = function (row, column, keepDesiredColumn) {\n var pos = this.session.screenToDocumentPosition(row, column);\n this.moveCursorTo(pos.row, pos.column, keepDesiredColumn);\n };\n Selection.prototype.detach = function () {\n this.lead.detach();\n this.anchor.detach();\n };\n Selection.prototype.fromOrientedRange = function (range) {\n this.setSelectionRange(range, range.cursor == range.start);\n this.$desiredColumn = range.desiredColumn || this.$desiredColumn;\n };\n Selection.prototype.toOrientedRange = function (range) {\n var r = this.getRange();\n if (range) {\n range.start.column = r.start.column;\n range.start.row = r.start.row;\n range.end.column = r.end.column;\n range.end.row = r.end.row;\n }\n else {\n range = r;\n }\n range.cursor = this.isBackwards() ? range.start : range.end;\n range.desiredColumn = this.$desiredColumn;\n return range;\n };\n Selection.prototype.getRangeOfMovements = function (func) {\n var start = this.getCursor();\n try {\n func(this);\n var end = this.getCursor();\n return Range.fromPoints(start, end);\n }\n catch (e) {\n return Range.fromPoints(start, start);\n }\n finally {\n this.moveCursorToPosition(start);\n }\n };\n Selection.prototype.toJSON = function () {\n if (this.rangeCount) {\n var data = this.ranges.map(function (r) {\n var r1 = r.clone();\n r1.isBackwards = r.cursor == r.start;\n return r1;\n });\n }\n else {\n var data = this.getRange();\n data.isBackwards = this.isBackwards();\n }\n return data;\n };\n Selection.prototype.fromJSON = function (data) {\n if (data.start == undefined) {\n if (this.rangeList && data.length > 1) {\n this.toSingleRange(data[0]);\n for (var i = data.length; i--;) {\n var r = Range.fromPoints(data[i].start, data[i].end);\n if (data[i].isBackwards)\n r.cursor = r.start;\n this.addRange(r, true);\n }\n return;\n }\n else {\n data = data[0];\n }\n }\n if (this.rangeList)\n this.toSingleRange(data);\n this.setSelectionRange(data, data.isBackwards);\n };\n Selection.prototype.isEqual = function (data) {\n if ((data.length || this.rangeCount) && data.length != this.rangeCount)\n return false;\n if (!data.length || !this.ranges)\n return this.getRange().isEqual(data);\n for (var i = this.ranges.length; i--;) {\n if (!this.ranges[i].isEqual(data[i]))\n return false;\n }\n return true;\n };\n return Selection;\n}());\nSelection.prototype.setSelectionAnchor = Selection.prototype.setAnchor;\nSelection.prototype.getSelectionAnchor = Selection.prototype.getAnchor;\nSelection.prototype.setSelectionRange = Selection.prototype.setRange;\noop.implement(Selection.prototype, EventEmitter);\nexports.Selection = Selection;\n\n});\n\nace.define(\"ace/tokenizer\",[\"require\",\"exports\",\"module\",\"ace/lib/report_error\"], function(require, exports, module){\"use strict\";\nvar reportError = require(\"./lib/report_error\").reportError;\nvar MAX_TOKEN_COUNT = 2000;\nvar Tokenizer = /** @class */ (function () {\n function Tokenizer(rules) {\n this.states = rules;\n this.regExps = {};\n this.matchMappings = {};\n for (var key in this.states) {\n var state = this.states[key];\n var ruleRegExps = [];\n var matchTotal = 0;\n var mapping = this.matchMappings[key] = { defaultToken: \"text\" };\n var flag = \"g\";\n var splitterRurles = [];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.defaultToken)\n mapping.defaultToken = rule.defaultToken;\n if (rule.caseInsensitive && flag.indexOf(\"i\") === -1)\n flag += \"i\";\n if (rule.unicode && flag.indexOf(\"u\") === -1)\n flag += \"u\";\n if (rule.regex == null)\n continue;\n if (rule.regex instanceof RegExp)\n rule.regex = rule.regex.toString().slice(1, -1);\n var adjustedregex = rule.regex;\n var matchcount = new RegExp(\"(?:(\" + adjustedregex + \")|(.))\").exec(\"a\").length - 2;\n if (Array.isArray(rule.token)) {\n if (rule.token.length == 1 || matchcount == 1) {\n rule.token = rule.token[0];\n }\n else if (matchcount - 1 != rule.token.length) {\n this.reportError(\"number of classes and regexp groups doesn't match\", {\n rule: rule,\n groupCount: matchcount - 1\n });\n rule.token = rule.token[0];\n }\n else {\n rule.tokenArray = rule.token;\n rule.token = null;\n rule.onMatch = this.$arrayTokens;\n }\n }\n else if (typeof rule.token == \"function\" && !rule.onMatch) {\n if (matchcount > 1)\n rule.onMatch = this.$applyToken;\n else\n rule.onMatch = rule.token;\n }\n if (matchcount > 1) {\n if (/\\\\\\d/.test(rule.regex)) {\n adjustedregex = rule.regex.replace(/\\\\([0-9]+)/g, function (match, digit) {\n return \"\\\\\" + (parseInt(digit, 10) + matchTotal + 1);\n });\n }\n else {\n matchcount = 1;\n adjustedregex = this.removeCapturingGroups(rule.regex);\n }\n if (!rule.splitRegex && typeof rule.token != \"string\")\n splitterRurles.push(rule); // flag will be known only at the very end\n }\n mapping[matchTotal] = i;\n matchTotal += matchcount;\n ruleRegExps.push(adjustedregex);\n if (!rule.onMatch)\n rule.onMatch = null;\n }\n if (!ruleRegExps.length) {\n mapping[0] = 0;\n ruleRegExps.push(\"$\");\n }\n splitterRurles.forEach(function (rule) {\n rule.splitRegex = this.createSplitterRegexp(rule.regex, flag);\n }, this);\n this.regExps[key] = new RegExp(\"(\" + ruleRegExps.join(\")|(\") + \")|($)\", flag);\n }\n }\n Tokenizer.prototype.$setMaxTokenCount = function (m) {\n MAX_TOKEN_COUNT = m | 0;\n };\n Tokenizer.prototype.$applyToken = function (str) {\n var values = this.splitRegex.exec(str).slice(1);\n var types = this.token.apply(this, values);\n if (typeof types === \"string\")\n return [{ type: types, value: str }];\n var tokens = [];\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i]\n };\n }\n return tokens;\n };\n Tokenizer.prototype.$arrayTokens = function (str) {\n if (!str)\n return [];\n var values = this.splitRegex.exec(str);\n if (!values)\n return \"text\";\n var tokens = [];\n var types = this.tokenArray;\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i + 1])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i + 1]\n };\n }\n return tokens;\n };\n Tokenizer.prototype.removeCapturingGroups = function (src) {\n var r = src.replace(/\\\\.|\\[(?:\\\\.|[^\\\\\\]])*|\\(\\?[:=!<]|(\\()/g, function (x, y) { return y ? \"(?:\" : x; });\n return r;\n };\n Tokenizer.prototype.createSplitterRegexp = function (src, flag) {\n if (src.indexOf(\"(?=\") != -1) {\n var stack = 0;\n var inChClass = false;\n var lastCapture = {};\n src.replace(/(\\\\.)|(\\((?:\\?[=!])?)|(\\))|([\\[\\]])/g, function (m, esc, parenOpen, parenClose, square, index) {\n if (inChClass) {\n inChClass = square != \"]\";\n }\n else if (square) {\n inChClass = true;\n }\n else if (parenClose) {\n if (stack == lastCapture.stack) {\n lastCapture.end = index + 1;\n lastCapture.stack = -1;\n }\n stack--;\n }\n else if (parenOpen) {\n stack++;\n if (parenOpen.length != 1) {\n lastCapture.stack = stack;\n lastCapture.start = index;\n }\n }\n return m;\n });\n if (lastCapture.end != null && /^\\)*$/.test(src.substr(lastCapture.end)))\n src = src.substring(0, lastCapture.start) + src.substr(lastCapture.end);\n }\n if (src.charAt(0) != \"^\")\n src = \"^\" + src;\n if (src.charAt(src.length - 1) != \"$\")\n src += \"$\";\n return new RegExp(src, (flag || \"\").replace(\"g\", \"\"));\n };\n Tokenizer.prototype.getLineTokens = function (line, startState) {\n if (startState && typeof startState != \"string\") {\n var stack = startState.slice(0);\n startState = stack[0];\n if (startState === \"#tmp\") {\n stack.shift();\n startState = stack.shift();\n }\n }\n else\n var stack = [];\n var currentState = startState || \"start\";\n var state = this.states[currentState];\n if (!state) {\n currentState = \"start\";\n state = this.states[currentState];\n }\n var mapping = this.matchMappings[currentState];\n var re = this.regExps[currentState];\n re.lastIndex = 0;\n var match, tokens = [];\n var lastIndex = 0;\n var matchAttempts = 0;\n var token = { type: null, value: \"\" };\n while (match = re.exec(line)) {\n var type = mapping.defaultToken;\n var rule = null;\n var value = match[0];\n var index = re.lastIndex;\n if (index - value.length > lastIndex) {\n var skipped = line.substring(lastIndex, index - value.length);\n if (token.type == type) {\n token.value += skipped;\n }\n else {\n if (token.type)\n tokens.push(token);\n token = { type: type, value: skipped };\n }\n }\n for (var i = 0; i < match.length - 2; i++) {\n if (match[i + 1] === undefined)\n continue;\n rule = state[mapping[i]];\n if (rule.onMatch)\n type = rule.onMatch(value, currentState, stack, line);\n else\n type = rule.token;\n if (rule.next) {\n if (typeof rule.next == \"string\") {\n currentState = rule.next;\n }\n else {\n currentState = rule.next(currentState, stack);\n }\n state = this.states[currentState];\n if (!state) {\n this.reportError(\"state doesn't exist\", currentState);\n currentState = \"start\";\n state = this.states[currentState];\n }\n mapping = this.matchMappings[currentState];\n lastIndex = index;\n re = this.regExps[currentState];\n re.lastIndex = index;\n }\n if (rule.consumeLineEnd)\n lastIndex = index;\n break;\n }\n if (value) {\n if (typeof type === \"string\") {\n if ((!rule || rule.merge !== false) && token.type === type) {\n token.value += value;\n }\n else {\n if (token.type)\n tokens.push(token);\n token = { type: type, value: value };\n }\n }\n else if (type) {\n if (token.type)\n tokens.push(token);\n token = { type: null, value: \"\" };\n for (var i = 0; i < type.length; i++)\n tokens.push(type[i]);\n }\n }\n if (lastIndex == line.length)\n break;\n lastIndex = index;\n if (matchAttempts++ > MAX_TOKEN_COUNT) {\n if (matchAttempts > 2 * line.length) {\n this.reportError(\"infinite loop with in ace tokenizer\", {\n startState: startState,\n line: line\n });\n }\n while (lastIndex < line.length) {\n if (token.type)\n tokens.push(token);\n token = {\n value: line.substring(lastIndex, lastIndex += 500),\n type: \"overflow\"\n };\n }\n currentState = \"start\";\n stack = [];\n break;\n }\n }\n if (token.type)\n tokens.push(token);\n if (stack.length > 1) {\n if (stack[0] !== currentState)\n stack.unshift(\"#tmp\", currentState);\n }\n return {\n tokens: tokens,\n state: stack.length ? stack : currentState\n };\n };\n return Tokenizer;\n}());\nTokenizer.prototype.reportError = reportError;\nexports.Tokenizer = Tokenizer;\n\n});\n\nace.define(\"ace/mode/text_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/deep_copy\"], function(require, exports, module){\"use strict\";\nvar deepCopy = require(\"../lib/deep_copy\").deepCopy;\nvar TextHighlightRules = function () {\n this.$rules = {\n \"start\": [{\n token: \"empty_line\",\n regex: '^$'\n }, {\n defaultToken: \"text\"\n }]\n };\n};\n(function () {\n this.addRules = function (rules, prefix) {\n if (!prefix) {\n for (var key in rules)\n this.$rules[key] = rules[key];\n return;\n }\n for (var key in rules) {\n var state = rules[key];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.next || rule.onMatch) {\n if (typeof rule.next == \"string\") {\n if (rule.next.indexOf(prefix) !== 0)\n rule.next = prefix + rule.next;\n }\n if (rule.nextState && rule.nextState.indexOf(prefix) !== 0)\n rule.nextState = prefix + rule.nextState;\n }\n }\n this.$rules[prefix + key] = state;\n }\n };\n this.getRules = function () {\n return this.$rules;\n };\n this.embedRules = function (HighlightRules, prefix, escapeRules, states, append) {\n var embedRules = typeof HighlightRules == \"function\"\n ? new HighlightRules().getRules()\n : HighlightRules;\n if (states) {\n for (var i = 0; i < states.length; i++)\n states[i] = prefix + states[i];\n }\n else {\n states = [];\n for (var key in embedRules)\n states.push(prefix + key);\n }\n this.addRules(embedRules, prefix);\n if (escapeRules) {\n var addRules = Array.prototype[append ? \"push\" : \"unshift\"];\n for (var i = 0; i < states.length; i++)\n addRules.apply(this.$rules[states[i]], deepCopy(escapeRules));\n }\n if (!this.$embeds)\n this.$embeds = [];\n this.$embeds.push(prefix);\n };\n this.getEmbeds = function () {\n return this.$embeds;\n };\n var pushState = function (currentState, stack) {\n if (currentState != \"start\" || stack.length)\n stack.unshift(this.nextState, currentState);\n return this.nextState;\n };\n var popState = function (currentState, stack) {\n stack.shift();\n return stack.shift() || \"start\";\n };\n this.normalizeRules = function () {\n var id = 0;\n var rules = this.$rules;\n function processState(key) {\n var state = rules[key];\n state.processed = true;\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n var toInsert = null;\n if (Array.isArray(rule)) {\n toInsert = rule;\n rule = {};\n }\n if (!rule.regex && rule.start) {\n rule.regex = rule.start;\n if (!rule.next)\n rule.next = [];\n rule.next.push({\n defaultToken: rule.token\n }, {\n token: rule.token + \".end\",\n regex: rule.end || rule.start,\n next: \"pop\"\n });\n rule.token = rule.token + \".start\";\n rule.push = true;\n }\n var next = rule.next || rule.push;\n if (next && Array.isArray(next)) {\n var stateName = rule.stateName;\n if (!stateName) {\n stateName = rule.token;\n if (typeof stateName != \"string\")\n stateName = stateName[0] || \"\";\n if (rules[stateName])\n stateName += id++;\n }\n rules[stateName] = next;\n rule.next = stateName;\n processState(stateName);\n }\n else if (next == \"pop\") {\n rule.next = popState;\n }\n if (rule.push) {\n rule.nextState = rule.next || rule.push;\n rule.next = pushState;\n delete rule.push;\n }\n if (rule.rules) {\n for (var r in rule.rules) {\n if (rules[r]) {\n if (rules[r].push)\n rules[r].push.apply(rules[r], rule.rules[r]);\n }\n else {\n rules[r] = rule.rules[r];\n }\n }\n }\n var includeName = typeof rule == \"string\" ? rule : rule.include;\n if (includeName) {\n if (includeName === \"$self\")\n includeName = \"start\";\n if (Array.isArray(includeName))\n toInsert = includeName.map(function (x) { return rules[x]; });\n else\n toInsert = rules[includeName];\n }\n if (toInsert) {\n var args = [i, 1].concat(toInsert);\n if (rule.noEscape)\n args = args.filter(function (x) { return !x.next; });\n state.splice.apply(state, args);\n i--;\n }\n if (rule.keywordMap) {\n rule.token = this.createKeywordMapper(rule.keywordMap, rule.defaultToken || \"text\", rule.caseInsensitive);\n delete rule.defaultToken;\n }\n }\n }\n Object.keys(rules).forEach(processState, this);\n };\n this.createKeywordMapper = function (map, defaultToken, ignoreCase, splitChar) {\n var keywords = Object.create(null);\n this.$keywordList = [];\n Object.keys(map).forEach(function (className) {\n var a = map[className];\n var list = a.split(splitChar || \"|\");\n for (var i = list.length; i--;) {\n var word = list[i];\n this.$keywordList.push(word);\n if (ignoreCase)\n word = word.toLowerCase();\n keywords[word] = className;\n }\n }, this);\n map = null;\n return ignoreCase\n ? function (value) { return keywords[value.toLowerCase()] || defaultToken; }\n : function (value) { return keywords[value] || defaultToken; };\n };\n this.getKeywords = function () {\n return this.$keywords;\n };\n}).call(TextHighlightRules.prototype);\nexports.TextHighlightRules = TextHighlightRules;\n\n});\n\nace.define(\"ace/mode/behaviour\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar Behaviour = function () {\n this.$behaviours = {};\n};\n(function () {\n this.add = function (name, action, callback) {\n switch (undefined) {\n case this.$behaviours:\n this.$behaviours = {};\n case this.$behaviours[name]:\n this.$behaviours[name] = {};\n }\n this.$behaviours[name][action] = callback;\n };\n this.addBehaviours = function (behaviours) {\n for (var key in behaviours) {\n for (var action in behaviours[key]) {\n this.add(key, action, behaviours[key][action]);\n }\n }\n };\n this.remove = function (name) {\n if (this.$behaviours && this.$behaviours[name]) {\n delete this.$behaviours[name];\n }\n };\n this.inherit = function (mode, filter) {\n if (typeof mode === \"function\") {\n var behaviours = new mode().getBehaviours(filter);\n }\n else {\n var behaviours = mode.getBehaviours(filter);\n }\n this.addBehaviours(behaviours);\n };\n this.getBehaviours = function (filter) {\n if (!filter) {\n return this.$behaviours;\n }\n else {\n var ret = {};\n for (var i = 0; i < filter.length; i++) {\n if (this.$behaviours[filter[i]]) {\n ret[filter[i]] = this.$behaviours[filter[i]];\n }\n }\n return ret;\n }\n };\n}).call(Behaviour.prototype);\nexports.Behaviour = Behaviour;\n\n});\n\nace.define(\"ace/token_iterator\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"./range\").Range;\nvar TokenIterator = /** @class */ (function () {\n function TokenIterator(session, initialRow, initialColumn) {\n this.$session = session;\n this.$row = initialRow;\n this.$rowTokens = session.getTokens(initialRow);\n var token = session.getTokenAt(initialRow, initialColumn);\n this.$tokenIndex = token ? token.index : -1;\n }\n TokenIterator.prototype.stepBackward = function () {\n this.$tokenIndex -= 1;\n while (this.$tokenIndex < 0) {\n this.$row -= 1;\n if (this.$row < 0) {\n this.$row = 0;\n return null;\n }\n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = this.$rowTokens.length - 1;\n }\n return this.$rowTokens[this.$tokenIndex];\n };\n TokenIterator.prototype.stepForward = function () {\n this.$tokenIndex += 1;\n var rowCount;\n while (this.$tokenIndex >= this.$rowTokens.length) {\n this.$row += 1;\n if (!rowCount)\n rowCount = this.$session.getLength();\n if (this.$row >= rowCount) {\n this.$row = rowCount - 1;\n return null;\n }\n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = 0;\n }\n return this.$rowTokens[this.$tokenIndex];\n };\n TokenIterator.prototype.getCurrentToken = function () {\n return this.$rowTokens[this.$tokenIndex];\n };\n TokenIterator.prototype.getCurrentTokenRow = function () {\n return this.$row;\n };\n TokenIterator.prototype.getCurrentTokenColumn = function () {\n var rowTokens = this.$rowTokens;\n var tokenIndex = this.$tokenIndex;\n var column = rowTokens[tokenIndex].start;\n if (column !== undefined)\n return column;\n column = 0;\n while (tokenIndex > 0) {\n tokenIndex -= 1;\n column += rowTokens[tokenIndex].value.length;\n }\n return column;\n };\n TokenIterator.prototype.getCurrentTokenPosition = function () {\n return { row: this.$row, column: this.getCurrentTokenColumn() };\n };\n TokenIterator.prototype.getCurrentTokenRange = function () {\n var token = this.$rowTokens[this.$tokenIndex];\n var column = this.getCurrentTokenColumn();\n return new Range(this.$row, column, this.$row, column + token.value.length);\n };\n return TokenIterator;\n}());\nexports.TokenIterator = TokenIterator;\n\n});\n\nace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\nvar SAFE_INSERT_IN_TOKENS = [\"text\", \"paren.rparen\", \"rparen\", \"paren\", \"punctuation.operator\"];\nvar SAFE_INSERT_BEFORE_TOKENS = [\"text\", \"paren.rparen\", \"rparen\", \"paren\", \"punctuation.operator\", \"comment\"];\nvar context;\nvar contextCache = {};\nvar defaultQuotes = { '\"': '\"', \"'\": \"'\" };\nvar initContext = function (editor) {\n var id = -1;\n if (editor.multiSelect) {\n id = editor.selection.index;\n if (contextCache.rangeCount != editor.multiSelect.rangeCount)\n contextCache = { rangeCount: editor.multiSelect.rangeCount };\n }\n if (contextCache[id])\n return context = contextCache[id];\n context = contextCache[id] = {\n autoInsertedBrackets: 0,\n autoInsertedRow: -1,\n autoInsertedLineEnd: \"\",\n maybeInsertedBrackets: 0,\n maybeInsertedRow: -1,\n maybeInsertedLineStart: \"\",\n maybeInsertedLineEnd: \"\"\n };\n};\nvar getWrapped = function (selection, selected, opening, closing) {\n var rowDiff = selection.end.row - selection.start.row;\n return {\n text: opening + selected + closing,\n selection: [\n 0,\n selection.start.column + 1,\n rowDiff,\n selection.end.column + (rowDiff ? 0 : 1)\n ]\n };\n};\nvar CstyleBehaviour = function (options) {\n options = options || {};\n this.add(\"braces\", \"insertion\", function (state, action, editor, session, text) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (text == '{') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && selected !== \"{\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '{', '}');\n }\n else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n if (/[\\]\\}\\)]/.test(line[cursor.column]) || editor.inMultiSelectMode || options.braces) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"}\");\n return {\n text: '{}',\n selection: [1, 1]\n };\n }\n else {\n CstyleBehaviour.recordMaybeInsert(editor, session, \"{\");\n return {\n text: '{',\n selection: [1, 1]\n };\n }\n }\n }\n else if (text == '}') {\n initContext(editor);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == '}') {\n var matching = session.$findOpeningBracket('}', { column: cursor.column + 1, row: cursor.row });\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n else if (text == \"\\n\" || text == \"\\r\\n\") {\n initContext(editor);\n var closing = \"\";\n if (CstyleBehaviour.isMaybeInsertedClosing(cursor, line)) {\n closing = lang.stringRepeat(\"}\", context.maybeInsertedBrackets);\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === '}') {\n var openBracePos = session.findMatchingBracket({ row: cursor.row, column: cursor.column + 1 }, '}');\n if (!openBracePos)\n return null;\n var next_indent = this.$getIndent(session.getLine(openBracePos.row));\n }\n else if (closing) {\n var next_indent = this.$getIndent(line);\n }\n else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n return;\n }\n var indent = next_indent + session.getTabString();\n return {\n text: '\\n' + indent + '\\n' + next_indent + closing,\n selection: [1, indent.length, 1, indent.length]\n };\n }\n else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n });\n this.add(\"braces\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '{') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.end.column, range.end.column + 1);\n if (rightChar == '}') {\n range.end.column++;\n return range;\n }\n else {\n context.maybeInsertedBrackets--;\n }\n }\n });\n this.add(\"parens\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '(') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '(', ')');\n }\n else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \")\");\n return {\n text: '()',\n selection: [1, 1]\n };\n }\n }\n else if (text == ')') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ')') {\n var matching = session.$findOpeningBracket(')', { column: cursor.column + 1, row: cursor.row });\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n this.add(\"parens\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '(') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ')') {\n range.end.column++;\n return range;\n }\n }\n });\n this.add(\"brackets\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '[') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '[', ']');\n }\n else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"]\");\n return {\n text: '[]',\n selection: [1, 1]\n };\n }\n }\n else if (text == ']') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ']') {\n var matching = session.$findOpeningBracket(']', { column: cursor.column + 1, row: cursor.row });\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n this.add(\"brackets\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '[') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ']') {\n range.end.column++;\n return range;\n }\n }\n });\n this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n var quotes = session.$mode.$quotes || defaultQuotes;\n if (text.length == 1 && quotes[text]) {\n if (this.lineCommentStart && this.lineCommentStart.indexOf(text) != -1)\n return;\n initContext(editor);\n var quote = text;\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && (selected.length != 1 || !quotes[selected]) && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, quote, quote);\n }\n else if (!selected) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var leftChar = line.substring(cursor.column - 1, cursor.column);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n var token = session.getTokenAt(cursor.row, cursor.column);\n var rightToken = session.getTokenAt(cursor.row, cursor.column + 1);\n if (leftChar == \"\\\\\" && token && /escape/.test(token.type))\n return null;\n var stringBefore = token && /string|escape/.test(token.type);\n var stringAfter = !rightToken || /string|escape/.test(rightToken.type);\n var pair;\n if (rightChar == quote) {\n pair = stringBefore !== stringAfter;\n if (pair && /string\\.end/.test(rightToken.type))\n pair = false;\n }\n else {\n if (stringBefore && !stringAfter)\n return null; // wrap string with different quote\n if (stringBefore && stringAfter)\n return null; // do not pair quotes inside strings\n var wordRe = session.$mode.tokenRe;\n wordRe.lastIndex = 0;\n var isWordBefore = wordRe.test(leftChar);\n wordRe.lastIndex = 0;\n var isWordAfter = wordRe.test(rightChar);\n var pairQuotesAfter = session.$mode.$pairQuotesAfter;\n var shouldPairQuotes = pairQuotesAfter && pairQuotesAfter[quote] && pairQuotesAfter[quote].test(leftChar);\n if ((!shouldPairQuotes && isWordBefore) || isWordAfter)\n return null; // before or after alphanumeric\n if (rightChar && !/[\\s;,.})\\]\\\\]/.test(rightChar))\n return null; // there is rightChar and it isn't closing\n var charBefore = line[cursor.column - 2];\n if (leftChar == quote && (charBefore == quote || wordRe.test(charBefore)))\n return null;\n pair = true;\n }\n return {\n text: pair ? quote + quote : \"\",\n selection: [1, 1]\n };\n }\n }\n });\n this.add(\"string_dquotes\", \"deletion\", function (state, action, editor, session, range) {\n var quotes = session.$mode.$quotes || defaultQuotes;\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && quotes.hasOwnProperty(selected)) {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n if (options.closeDocComment !== false) {\n this.add(\"doc comment end\", \"insertion\", function (state, action, editor, session, text) {\n if (state === \"doc-start\" && (text === \"\\n\" || text === \"\\r\\n\") && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var nextLine = session.doc.getLine(cursor.row + 1);\n var indent = this.$getIndent(line);\n if (/\\s*\\*/.test(nextLine)) {\n if (/^\\s*\\*/.test(line)) {\n return {\n text: text + indent + \"* \",\n selection: [1, 3 + indent.length, 1, 3 + indent.length]\n };\n }\n else {\n return {\n text: text + indent + \" * \",\n selection: [1, 3 + indent.length, 1, 3 + indent.length]\n };\n }\n }\n if (/\\/\\*\\*/.test(line.substring(0, cursor.column))) {\n return {\n text: text + indent + \" * \" + text + \" \" + indent + \"*/\",\n selection: [1, 4 + indent.length, 1, 4 + indent.length]\n };\n }\n }\n });\n }\n};\nCstyleBehaviour.isSaneInsertion = function (editor, session) {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n if (!this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS)) {\n if (/[)}\\]]/.test(editor.session.getLine(cursor.row)[cursor.column]))\n return true;\n var iterator2 = new TokenIterator(session, cursor.row, cursor.column + 1);\n if (!this.$matchTokenType(iterator2.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS))\n return false;\n }\n iterator.stepForward();\n return iterator.getCurrentTokenRow() !== cursor.row ||\n this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_BEFORE_TOKENS);\n};\nCstyleBehaviour.$matchTokenType = function (token, types) {\n return types.indexOf(token.type || token) > -1;\n};\nCstyleBehaviour.recordAutoInsert = function (editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isAutoInsertedClosing(cursor, line, context.autoInsertedLineEnd[0]))\n context.autoInsertedBrackets = 0;\n context.autoInsertedRow = cursor.row;\n context.autoInsertedLineEnd = bracket + line.substr(cursor.column);\n context.autoInsertedBrackets++;\n};\nCstyleBehaviour.recordMaybeInsert = function (editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isMaybeInsertedClosing(cursor, line))\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = cursor.row;\n context.maybeInsertedLineStart = line.substr(0, cursor.column) + bracket;\n context.maybeInsertedLineEnd = line.substr(cursor.column);\n context.maybeInsertedBrackets++;\n};\nCstyleBehaviour.isAutoInsertedClosing = function (cursor, line, bracket) {\n return context.autoInsertedBrackets > 0 &&\n cursor.row === context.autoInsertedRow &&\n bracket === context.autoInsertedLineEnd[0] &&\n line.substr(cursor.column) === context.autoInsertedLineEnd;\n};\nCstyleBehaviour.isMaybeInsertedClosing = function (cursor, line) {\n return context.maybeInsertedBrackets > 0 &&\n cursor.row === context.maybeInsertedRow &&\n line.substr(cursor.column) === context.maybeInsertedLineEnd &&\n line.substr(0, cursor.column) == context.maybeInsertedLineStart;\n};\nCstyleBehaviour.popAutoInsertedClosing = function () {\n context.autoInsertedLineEnd = context.autoInsertedLineEnd.substr(1);\n context.autoInsertedBrackets--;\n};\nCstyleBehaviour.clearMaybeInsertedClosing = function () {\n if (context) {\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = -1;\n }\n};\noop.inherits(CstyleBehaviour, Behaviour);\nexports.CstyleBehaviour = CstyleBehaviour;\n\n});\n\nace.define(\"ace/unicode\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar wordChars = [48, 9, 8, 25, 5, 0, 2, 25, 48, 0, 11, 0, 5, 0, 6, 22, 2, 30, 2, 457, 5, 11, 15, 4, 8, 0, 2, 0, 18, 116, 2, 1, 3, 3, 9, 0, 2, 2, 2, 0, 2, 19, 2, 82, 2, 138, 2, 4, 3, 155, 12, 37, 3, 0, 8, 38, 10, 44, 2, 0, 2, 1, 2, 1, 2, 0, 9, 26, 6, 2, 30, 10, 7, 61, 2, 9, 5, 101, 2, 7, 3, 9, 2, 18, 3, 0, 17, 58, 3, 100, 15, 53, 5, 0, 6, 45, 211, 57, 3, 18, 2, 5, 3, 11, 3, 9, 2, 1, 7, 6, 2, 2, 2, 7, 3, 1, 3, 21, 2, 6, 2, 0, 4, 3, 3, 8, 3, 1, 3, 3, 9, 0, 5, 1, 2, 4, 3, 11, 16, 2, 2, 5, 5, 1, 3, 21, 2, 6, 2, 1, 2, 1, 2, 1, 3, 0, 2, 4, 5, 1, 3, 2, 4, 0, 8, 3, 2, 0, 8, 15, 12, 2, 2, 8, 2, 2, 2, 21, 2, 6, 2, 1, 2, 4, 3, 9, 2, 2, 2, 2, 3, 0, 16, 3, 3, 9, 18, 2, 2, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 3, 8, 3, 1, 3, 2, 9, 1, 5, 1, 2, 4, 3, 9, 2, 0, 17, 1, 2, 5, 4, 2, 2, 3, 4, 1, 2, 0, 2, 1, 4, 1, 4, 2, 4, 11, 5, 4, 4, 2, 2, 3, 3, 0, 7, 0, 15, 9, 18, 2, 2, 7, 2, 2, 2, 22, 2, 9, 2, 4, 4, 7, 2, 2, 2, 3, 8, 1, 2, 1, 7, 3, 3, 9, 19, 1, 2, 7, 2, 2, 2, 22, 2, 9, 2, 4, 3, 8, 2, 2, 2, 3, 8, 1, 8, 0, 2, 3, 3, 9, 19, 1, 2, 7, 2, 2, 2, 22, 2, 15, 4, 7, 2, 2, 2, 3, 10, 0, 9, 3, 3, 9, 11, 5, 3, 1, 2, 17, 4, 23, 2, 8, 2, 0, 3, 6, 4, 0, 5, 5, 2, 0, 2, 7, 19, 1, 14, 57, 6, 14, 2, 9, 40, 1, 2, 0, 3, 1, 2, 0, 3, 0, 7, 3, 2, 6, 2, 2, 2, 0, 2, 0, 3, 1, 2, 12, 2, 2, 3, 4, 2, 0, 2, 5, 3, 9, 3, 1, 35, 0, 24, 1, 7, 9, 12, 0, 2, 0, 2, 0, 5, 9, 2, 35, 5, 19, 2, 5, 5, 7, 2, 35, 10, 0, 58, 73, 7, 77, 3, 37, 11, 42, 2, 0, 4, 328, 2, 3, 3, 6, 2, 0, 2, 3, 3, 40, 2, 3, 3, 32, 2, 3, 3, 6, 2, 0, 2, 3, 3, 14, 2, 56, 2, 3, 3, 66, 5, 0, 33, 15, 17, 84, 13, 619, 3, 16, 2, 25, 6, 74, 22, 12, 2, 6, 12, 20, 12, 19, 13, 12, 2, 2, 2, 1, 13, 51, 3, 29, 4, 0, 5, 1, 3, 9, 34, 2, 3, 9, 7, 87, 9, 42, 6, 69, 11, 28, 4, 11, 5, 11, 11, 39, 3, 4, 12, 43, 5, 25, 7, 10, 38, 27, 5, 62, 2, 28, 3, 10, 7, 9, 14, 0, 89, 75, 5, 9, 18, 8, 13, 42, 4, 11, 71, 55, 9, 9, 4, 48, 83, 2, 2, 30, 14, 230, 23, 280, 3, 5, 3, 37, 3, 5, 3, 7, 2, 0, 2, 0, 2, 0, 2, 30, 3, 52, 2, 6, 2, 0, 4, 2, 2, 6, 4, 3, 3, 5, 5, 12, 6, 2, 2, 6, 67, 1, 20, 0, 29, 0, 14, 0, 17, 4, 60, 12, 5, 0, 4, 11, 18, 0, 5, 0, 3, 9, 2, 0, 4, 4, 7, 0, 2, 0, 2, 0, 2, 3, 2, 10, 3, 3, 6, 4, 5, 0, 53, 1, 2684, 46, 2, 46, 2, 132, 7, 6, 15, 37, 11, 53, 10, 0, 17, 22, 10, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 31, 48, 0, 470, 1, 36, 5, 2, 4, 6, 1, 5, 85, 3, 1, 3, 2, 2, 89, 2, 3, 6, 40, 4, 93, 18, 23, 57, 15, 513, 6581, 75, 20939, 53, 1164, 68, 45, 3, 268, 4, 27, 21, 31, 3, 13, 13, 1, 2, 24, 9, 69, 11, 1, 38, 8, 3, 102, 3, 1, 111, 44, 25, 51, 13, 68, 12, 9, 7, 23, 4, 0, 5, 45, 3, 35, 13, 28, 4, 64, 15, 10, 39, 54, 10, 13, 3, 9, 7, 22, 4, 1, 5, 66, 25, 2, 227, 42, 2, 1, 3, 9, 7, 11171, 13, 22, 5, 48, 8453, 301, 3, 61, 3, 105, 39, 6, 13, 4, 6, 11, 2, 12, 2, 4, 2, 0, 2, 1, 2, 1, 2, 107, 34, 362, 19, 63, 3, 53, 41, 11, 5, 15, 17, 6, 13, 1, 25, 2, 33, 4, 2, 134, 20, 9, 8, 25, 5, 0, 2, 25, 12, 88, 4, 5, 3, 5, 3, 5, 3, 2];\nvar code = 0;\nvar str = [];\nfor (var i = 0; i < wordChars.length; i += 2) {\n str.push(code += wordChars[i]);\n if (wordChars[i + 1])\n str.push(45, code += wordChars[i + 1]);\n}\nexports.wordChars = String.fromCharCode.apply(null, str);\n\n});\n\nace.define(\"ace/mode/text\",[\"require\",\"exports\",\"module\",\"ace/config\",\"ace/tokenizer\",\"ace/mode/text_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/unicode\",\"ace/lib/lang\",\"ace/token_iterator\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar config = require(\"../config\");\nvar Tokenizer = require(\"../tokenizer\").Tokenizer;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar unicode = require(\"../unicode\");\nvar lang = require(\"../lib/lang\");\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nvar Range = require(\"../range\").Range;\nvar Mode = function () {\n this.HighlightRules = TextHighlightRules;\n};\n(function () {\n this.$defaultBehaviour = new CstyleBehaviour();\n this.tokenRe = new RegExp(\"^[\" + unicode.wordChars + \"\\\\$_]+\", \"g\");\n this.nonTokenRe = new RegExp(\"^(?:[^\" + unicode.wordChars + \"\\\\$_]|\\\\s])+\", \"g\");\n this.getTokenizer = function () {\n if (!this.$tokenizer) {\n this.$highlightRules = this.$highlightRules || new this.HighlightRules(this.$highlightRuleConfig);\n this.$tokenizer = new Tokenizer(this.$highlightRules.getRules());\n }\n return this.$tokenizer;\n };\n this.lineCommentStart = \"\";\n this.blockComment = \"\";\n this.toggleCommentLines = function (state, session, startRow, endRow) {\n var doc = session.doc;\n var ignoreBlankLines = true;\n var shouldRemove = true;\n var minIndent = Infinity;\n var tabSize = session.getTabSize();\n var insertAtTabStop = false;\n if (!this.lineCommentStart) {\n if (!this.blockComment)\n return false;\n var lineCommentStart = this.blockComment.start;\n var lineCommentEnd = this.blockComment.end;\n var regexpStart = new RegExp(\"^(\\\\s*)(?:\" + lang.escapeRegExp(lineCommentStart) + \")\");\n var regexpEnd = new RegExp(\"(?:\" + lang.escapeRegExp(lineCommentEnd) + \")\\\\s*$\");\n var comment = function (line, i) {\n if (testRemove(line, i))\n return;\n if (!ignoreBlankLines || /\\S/.test(line)) {\n doc.insertInLine({ row: i, column: line.length }, lineCommentEnd);\n doc.insertInLine({ row: i, column: minIndent }, lineCommentStart);\n }\n };\n var uncomment = function (line, i) {\n var m;\n if (m = line.match(regexpEnd))\n doc.removeInLine(i, line.length - m[0].length, line.length);\n if (m = line.match(regexpStart))\n doc.removeInLine(i, m[1].length, m[0].length);\n };\n var testRemove = function (line, row) {\n if (regexpStart.test(line))\n return true;\n var tokens = session.getTokens(row);\n for (var i = 0; i < tokens.length; i++) {\n if (tokens[i].type === \"comment\")\n return true;\n }\n };\n }\n else {\n if (Array.isArray(this.lineCommentStart)) {\n var regexpStart = this.lineCommentStart.map(lang.escapeRegExp).join(\"|\");\n var lineCommentStart = this.lineCommentStart[0];\n }\n else {\n var regexpStart = lang.escapeRegExp(this.lineCommentStart);\n var lineCommentStart = this.lineCommentStart;\n }\n regexpStart = new RegExp(\"^(\\\\s*)(?:\" + regexpStart + \") ?\");\n insertAtTabStop = session.getUseSoftTabs();\n var uncomment = function (line, i) {\n var m = line.match(regexpStart);\n if (!m)\n return;\n var start = m[1].length, end = m[0].length;\n if (!shouldInsertSpace(line, start, end) && m[0][end - 1] == \" \")\n end--;\n doc.removeInLine(i, start, end);\n };\n var commentWithSpace = lineCommentStart + \" \";\n var comment = function (line, i) {\n if (!ignoreBlankLines || /\\S/.test(line)) {\n if (shouldInsertSpace(line, minIndent, minIndent))\n doc.insertInLine({ row: i, column: minIndent }, commentWithSpace);\n else\n doc.insertInLine({ row: i, column: minIndent }, lineCommentStart);\n }\n };\n var testRemove = function (line, i) {\n return regexpStart.test(line);\n };\n var shouldInsertSpace = function (line, before, after) {\n var spaces = 0;\n while (before-- && line.charAt(before) == \" \")\n spaces++;\n if (spaces % tabSize != 0)\n return false;\n var spaces = 0;\n while (line.charAt(after++) == \" \")\n spaces++;\n if (tabSize > 2)\n return spaces % tabSize != tabSize - 1;\n else\n return spaces % tabSize == 0;\n };\n }\n function iter(fun) {\n for (var i = startRow; i <= endRow; i++)\n fun(doc.getLine(i), i);\n }\n var minEmptyLength = Infinity;\n iter(function (line, i) {\n var indent = line.search(/\\S/);\n if (indent !== -1) {\n if (indent < minIndent)\n minIndent = indent;\n if (shouldRemove && !testRemove(line, i))\n shouldRemove = false;\n }\n else if (minEmptyLength > line.length) {\n minEmptyLength = line.length;\n }\n });\n if (minIndent == Infinity) {\n minIndent = minEmptyLength;\n ignoreBlankLines = false;\n shouldRemove = false;\n }\n if (insertAtTabStop && minIndent % tabSize != 0)\n minIndent = Math.floor(minIndent / tabSize) * tabSize;\n iter(shouldRemove ? uncomment : comment);\n };\n this.toggleBlockComment = function (state, session, range, cursor) {\n var comment = this.blockComment;\n if (!comment)\n return;\n if (!comment.start && comment[0])\n comment = comment[0];\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n var sel = session.selection;\n var initialRange = session.selection.toOrientedRange();\n var startRow, colDiff;\n if (token && /comment/.test(token.type)) {\n var startRange, endRange;\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.start);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n startRange = new Range(row, column, row, column + comment.start.length);\n break;\n }\n token = iterator.stepBackward();\n }\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.end);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n endRange = new Range(row, column, row, column + comment.end.length);\n break;\n }\n token = iterator.stepForward();\n }\n if (endRange)\n session.remove(endRange);\n if (startRange) {\n session.remove(startRange);\n startRow = startRange.start.row;\n colDiff = -comment.start.length;\n }\n }\n else {\n colDiff = comment.start.length;\n startRow = range.start.row;\n session.insert(range.end, comment.end);\n session.insert(range.start, comment.start);\n }\n if (initialRange.start.row == startRow)\n initialRange.start.column += colDiff;\n if (initialRange.end.row == startRow)\n initialRange.end.column += colDiff;\n session.selection.fromOrientedRange(initialRange);\n };\n this.getNextLineIndent = function (state, line, tab) {\n return this.$getIndent(line);\n };\n this.checkOutdent = function (state, line, input) {\n return false;\n };\n this.autoOutdent = function (state, doc, row) {\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n this.createWorker = function (session) {\n return null;\n };\n this.createModeDelegates = function (mapping) {\n this.$embeds = [];\n this.$modes = {};\n for (var i in mapping) {\n if (mapping[i]) {\n var Mode = mapping[i];\n var id = Mode.prototype.$id;\n var mode = config.$modes[id];\n if (!mode)\n config.$modes[id] = mode = new Mode();\n if (!config.$modes[i])\n config.$modes[i] = mode;\n this.$embeds.push(i);\n this.$modes[i] = mode;\n }\n }\n var delegations = [\"toggleBlockComment\", \"toggleCommentLines\", \"getNextLineIndent\",\n \"checkOutdent\", \"autoOutdent\", \"transformAction\", \"getCompletions\"];\n for (var i = 0; i < delegations.length; i++) {\n (function (scope) {\n var functionName = delegations[i];\n var defaultHandler = scope[functionName];\n scope[delegations[i]] = function () {\n return this.$delegator(functionName, arguments, defaultHandler);\n };\n }(this));\n }\n };\n this.$delegator = function (method, args, defaultHandler) {\n var state = args[0] || \"start\";\n if (typeof state != \"string\") {\n if (Array.isArray(state[2])) {\n var language = state[2][state[2].length - 1];\n var mode = this.$modes[language];\n if (mode)\n return mode[method].apply(mode, [state[1]].concat([].slice.call(args, 1)));\n }\n state = state[0] || \"start\";\n }\n for (var i = 0; i < this.$embeds.length; i++) {\n if (!this.$modes[this.$embeds[i]])\n continue;\n var split = state.split(this.$embeds[i]);\n if (!split[0] && split[1]) {\n args[0] = split[1];\n var mode = this.$modes[this.$embeds[i]];\n return mode[method].apply(mode, args);\n }\n }\n var ret = defaultHandler.apply(this, args);\n return defaultHandler ? ret : undefined;\n };\n this.transformAction = function (state, action, editor, session, param) {\n if (this.$behaviour) {\n var behaviours = this.$behaviour.getBehaviours();\n for (var key in behaviours) {\n if (behaviours[key][action]) {\n var ret = behaviours[key][action].apply(this, arguments);\n if (ret) {\n return ret;\n }\n }\n }\n }\n };\n this.getKeywords = function (append) {\n if (!this.completionKeywords) {\n var rules = this.$tokenizer.rules;\n var completionKeywords = [];\n for (var rule in rules) {\n var ruleItr = rules[rule];\n for (var r = 0, l = ruleItr.length; r < l; r++) {\n if (typeof ruleItr[r].token === \"string\") {\n if (/keyword|support|storage/.test(ruleItr[r].token))\n completionKeywords.push(ruleItr[r].regex);\n }\n else if (typeof ruleItr[r].token === \"object\") {\n for (var a = 0, aLength = ruleItr[r].token.length; a < aLength; a++) {\n if (/keyword|support|storage/.test(ruleItr[r].token[a])) {\n var rule = ruleItr[r].regex.match(/\\(.+?\\)/g)[a];\n completionKeywords.push(rule.substr(1, rule.length - 2));\n }\n }\n }\n }\n }\n this.completionKeywords = completionKeywords;\n }\n if (!append)\n return this.$keywordList;\n return completionKeywords.concat(this.$keywordList || []);\n };\n this.$createKeywordList = function () {\n if (!this.$highlightRules)\n this.getTokenizer();\n return this.$keywordList = this.$highlightRules.$keywordList || [];\n };\n this.getCompletions = function (state, session, pos, prefix) {\n var keywords = this.$keywordList || this.$createKeywordList();\n return keywords.map(function (word) {\n return {\n name: word,\n value: word,\n score: 0,\n meta: \"keyword\"\n };\n });\n };\n this.$id = \"ace/mode/text\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n});\n\nace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nfunction throwDeltaError(delta, errorText) {\n console.log(\"Invalid Delta:\", delta);\n throw \"Invalid Delta: \" + errorText;\n}\nfunction positionInDocument(docLines, position) {\n return position.row >= 0 && position.row < docLines.length &&\n position.column >= 0 && position.column <= docLines[position.row].length;\n}\nfunction validateDelta(docLines, delta) {\n if (delta.action != \"insert\" && delta.action != \"remove\")\n throwDeltaError(delta, \"delta.action must be 'insert' or 'remove'\");\n if (!(delta.lines instanceof Array))\n throwDeltaError(delta, \"delta.lines must be an Array\");\n if (!delta.start || !delta.end)\n throwDeltaError(delta, \"delta.start/end must be an present\");\n var start = delta.start;\n if (!positionInDocument(docLines, delta.start))\n throwDeltaError(delta, \"delta.start must be contained in document\");\n var end = delta.end;\n if (delta.action == \"remove\" && !positionInDocument(docLines, end))\n throwDeltaError(delta, \"delta.end must contained in document for 'remove' actions\");\n var numRangeRows = end.row - start.row;\n var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0));\n if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars)\n throwDeltaError(delta, \"delta.range must match delta lines\");\n}\nexports.applyDelta = function (docLines, delta, doNotValidate) {\n var row = delta.start.row;\n var startColumn = delta.start.column;\n var line = docLines[row] || \"\";\n switch (delta.action) {\n case \"insert\":\n var lines = delta.lines;\n if (lines.length === 1) {\n docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn);\n }\n else {\n var args = [row, 1].concat(delta.lines);\n docLines.splice.apply(docLines, args);\n docLines[row] = line.substring(0, startColumn) + docLines[row];\n docLines[row + delta.lines.length - 1] += line.substring(startColumn);\n }\n break;\n case \"remove\":\n var endColumn = delta.end.column;\n var endRow = delta.end.row;\n if (row === endRow) {\n docLines[row] = line.substring(0, startColumn) + line.substring(endColumn);\n }\n else {\n docLines.splice(row, endRow - row + 1, line.substring(0, startColumn) + docLines[endRow].substring(endColumn));\n }\n break;\n }\n};\n\n});\n\nace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Anchor = /** @class */ (function () {\n function Anchor(doc, row, column) {\n this.$onChange = this.onChange.bind(this);\n this.attach(doc);\n if (typeof column == \"undefined\")\n this.setPosition(row.row, row.column);\n else\n this.setPosition(row, column);\n }\n Anchor.prototype.getPosition = function () {\n return this.$clipPositionToDocument(this.row, this.column);\n };\n Anchor.prototype.getDocument = function () {\n return this.document;\n };\n Anchor.prototype.onChange = function (delta) {\n if (delta.start.row == delta.end.row && delta.start.row != this.row)\n return;\n if (delta.start.row > this.row)\n return;\n var point = $getTransformedPoint(delta, { row: this.row, column: this.column }, this.$insertRight);\n this.setPosition(point.row, point.column, true);\n };\n Anchor.prototype.setPosition = function (row, column, noClip) {\n var pos;\n if (noClip) {\n pos = {\n row: row,\n column: column\n };\n }\n else {\n pos = this.$clipPositionToDocument(row, column);\n }\n if (this.row == pos.row && this.column == pos.column)\n return;\n var old = {\n row: this.row,\n column: this.column\n };\n this.row = pos.row;\n this.column = pos.column;\n this._signal(\"change\", {\n old: old,\n value: pos\n });\n };\n Anchor.prototype.detach = function () {\n this.document.off(\"change\", this.$onChange);\n };\n Anchor.prototype.attach = function (doc) {\n this.document = doc || this.document;\n this.document.on(\"change\", this.$onChange);\n };\n Anchor.prototype.$clipPositionToDocument = function (row, column) {\n var pos = {};\n if (row >= this.document.getLength()) {\n pos.row = Math.max(0, this.document.getLength() - 1);\n pos.column = this.document.getLine(pos.row).length;\n }\n else if (row < 0) {\n pos.row = 0;\n pos.column = 0;\n }\n else {\n pos.row = row;\n pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));\n }\n if (column < 0)\n pos.column = 0;\n return pos;\n };\n return Anchor;\n}());\nAnchor.prototype.$insertRight = false;\noop.implement(Anchor.prototype, EventEmitter);\nfunction $pointsInOrder(point1, point2, equalPointsInOrder) {\n var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column;\n return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter);\n}\nfunction $getTransformedPoint(delta, point, moveIfEqual) {\n var deltaIsInsert = delta.action == \"insert\";\n var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row - delta.start.row);\n var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column);\n var deltaStart = delta.start;\n var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range.\n if ($pointsInOrder(point, deltaStart, moveIfEqual)) {\n return {\n row: point.row,\n column: point.column\n };\n }\n if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) {\n return {\n row: point.row + deltaRowShift,\n column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0)\n };\n }\n return {\n row: deltaStart.row,\n column: deltaStart.column\n };\n}\nexports.Anchor = Anchor;\n\n});\n\nace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar applyDelta = require(\"./apply_delta\").applyDelta;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Range = require(\"./range\").Range;\nvar Anchor = require(\"./anchor\").Anchor;\nvar Document = /** @class */ (function () {\n function Document(textOrLines) {\n this.$lines = [\"\"];\n if (textOrLines.length === 0) {\n this.$lines = [\"\"];\n }\n else if (Array.isArray(textOrLines)) {\n this.insertMergedLines({ row: 0, column: 0 }, textOrLines);\n }\n else {\n this.insert({ row: 0, column: 0 }, textOrLines);\n }\n }\n Document.prototype.setValue = function (text) {\n var len = this.getLength() - 1;\n this.remove(new Range(0, 0, len, this.getLine(len).length));\n this.insert({ row: 0, column: 0 }, text || \"\");\n };\n Document.prototype.getValue = function () {\n return this.getAllLines().join(this.getNewLineCharacter());\n };\n Document.prototype.createAnchor = function (row, column) {\n return new Anchor(this, row, column);\n };\n Document.prototype.$detectNewLine = function (text) {\n var match = text.match(/^.*?(\\r\\n|\\r|\\n)/m);\n this.$autoNewLine = match ? match[1] : \"\\n\";\n this._signal(\"changeNewLineMode\");\n };\n Document.prototype.getNewLineCharacter = function () {\n switch (this.$newLineMode) {\n case \"windows\":\n return \"\\r\\n\";\n case \"unix\":\n return \"\\n\";\n default:\n return this.$autoNewLine || \"\\n\";\n }\n };\n Document.prototype.setNewLineMode = function (newLineMode) {\n if (this.$newLineMode === newLineMode)\n return;\n this.$newLineMode = newLineMode;\n this._signal(\"changeNewLineMode\");\n };\n Document.prototype.getNewLineMode = function () {\n return this.$newLineMode;\n };\n Document.prototype.isNewLine = function (text) {\n return (text == \"\\r\\n\" || text == \"\\r\" || text == \"\\n\");\n };\n Document.prototype.getLine = function (row) {\n return this.$lines[row] || \"\";\n };\n Document.prototype.getLines = function (firstRow, lastRow) {\n return this.$lines.slice(firstRow, lastRow + 1);\n };\n Document.prototype.getAllLines = function () {\n return this.getLines(0, this.getLength());\n };\n Document.prototype.getLength = function () {\n return this.$lines.length;\n };\n Document.prototype.getTextRange = function (range) {\n return this.getLinesForRange(range).join(this.getNewLineCharacter());\n };\n Document.prototype.getLinesForRange = function (range) {\n var lines;\n if (range.start.row === range.end.row) {\n lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)];\n }\n else {\n lines = this.getLines(range.start.row, range.end.row);\n lines[0] = (lines[0] || \"\").substring(range.start.column);\n var l = lines.length - 1;\n if (range.end.row - range.start.row == l)\n lines[l] = lines[l].substring(0, range.end.column);\n }\n return lines;\n };\n Document.prototype.insertLines = function (row, lines) {\n console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\");\n return this.insertFullLines(row, lines);\n };\n Document.prototype.removeLines = function (firstRow, lastRow) {\n console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\");\n return this.removeFullLines(firstRow, lastRow);\n };\n Document.prototype.insertNewLine = function (position) {\n console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\");\n return this.insertMergedLines(position, [\"\", \"\"]);\n };\n Document.prototype.insert = function (position, text) {\n if (this.getLength() <= 1)\n this.$detectNewLine(text);\n return this.insertMergedLines(position, this.$split(text));\n };\n Document.prototype.insertInLine = function (position, text) {\n var start = this.clippedPos(position.row, position.column);\n var end = this.pos(position.row, position.column + text.length);\n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: [text]\n }, true);\n return this.clonePos(end);\n };\n Document.prototype.clippedPos = function (row, column) {\n var length = this.getLength();\n if (row === undefined) {\n row = length;\n }\n else if (row < 0) {\n row = 0;\n }\n else if (row >= length) {\n row = length - 1;\n column = undefined;\n }\n var line = this.getLine(row);\n if (column == undefined)\n column = line.length;\n column = Math.min(Math.max(column, 0), line.length);\n return { row: row, column: column };\n };\n Document.prototype.clonePos = function (pos) {\n return { row: pos.row, column: pos.column };\n };\n Document.prototype.pos = function (row, column) {\n return { row: row, column: column };\n };\n Document.prototype.$clipPosition = function (position) {\n var length = this.getLength();\n if (position.row >= length) {\n position.row = Math.max(0, length - 1);\n position.column = this.getLine(length - 1).length;\n }\n else {\n position.row = Math.max(0, position.row);\n position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length);\n }\n return position;\n };\n Document.prototype.insertFullLines = function (row, lines) {\n row = Math.min(Math.max(row, 0), this.getLength());\n var column = 0;\n if (row < this.getLength()) {\n lines = lines.concat([\"\"]);\n column = 0;\n }\n else {\n lines = [\"\"].concat(lines);\n row--;\n column = this.$lines[row].length;\n }\n this.insertMergedLines({ row: row, column: column }, lines);\n };\n Document.prototype.insertMergedLines = function (position, lines) {\n var start = this.clippedPos(position.row, position.column);\n var end = {\n row: start.row + lines.length - 1,\n column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length\n };\n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: lines\n });\n return this.clonePos(end);\n };\n Document.prototype.remove = function (range) {\n var start = this.clippedPos(range.start.row, range.start.column);\n var end = this.clippedPos(range.end.row, range.end.column);\n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({ start: start, end: end })\n });\n return this.clonePos(start);\n };\n Document.prototype.removeInLine = function (row, startColumn, endColumn) {\n var start = this.clippedPos(row, startColumn);\n var end = this.clippedPos(row, endColumn);\n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({ start: start, end: end })\n }, true);\n return this.clonePos(start);\n };\n Document.prototype.removeFullLines = function (firstRow, lastRow) {\n firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1);\n lastRow = Math.min(Math.max(0, lastRow), this.getLength() - 1);\n var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0;\n var deleteLastNewLine = lastRow < this.getLength() - 1;\n var startRow = (deleteFirstNewLine ? firstRow - 1 : firstRow);\n var startCol = (deleteFirstNewLine ? this.getLine(startRow).length : 0);\n var endRow = (deleteLastNewLine ? lastRow + 1 : lastRow);\n var endCol = (deleteLastNewLine ? 0 : this.getLine(endRow).length);\n var range = new Range(startRow, startCol, endRow, endCol);\n var deletedLines = this.$lines.slice(firstRow, lastRow + 1);\n this.applyDelta({\n start: range.start,\n end: range.end,\n action: \"remove\",\n lines: this.getLinesForRange(range)\n });\n return deletedLines;\n };\n Document.prototype.removeNewLine = function (row) {\n if (row < this.getLength() - 1 && row >= 0) {\n this.applyDelta({\n start: this.pos(row, this.getLine(row).length),\n end: this.pos(row + 1, 0),\n action: \"remove\",\n lines: [\"\", \"\"]\n });\n }\n };\n Document.prototype.replace = function (range, text) {\n if (!(range instanceof Range))\n range = Range.fromPoints(range.start, range.end);\n if (text.length === 0 && range.isEmpty())\n return range.start;\n if (text == this.getTextRange(range))\n return range.end;\n this.remove(range);\n var end;\n if (text) {\n end = this.insert(range.start, text);\n }\n else {\n end = range.start;\n }\n return end;\n };\n Document.prototype.applyDeltas = function (deltas) {\n for (var i = 0; i < deltas.length; i++) {\n this.applyDelta(deltas[i]);\n }\n };\n Document.prototype.revertDeltas = function (deltas) {\n for (var i = deltas.length - 1; i >= 0; i--) {\n this.revertDelta(deltas[i]);\n }\n };\n Document.prototype.applyDelta = function (delta, doNotValidate) {\n var isInsert = delta.action == \"insert\";\n if (isInsert ? delta.lines.length <= 1 && !delta.lines[0]\n : !Range.comparePoints(delta.start, delta.end)) {\n return;\n }\n if (isInsert && delta.lines.length > 20000) {\n this.$splitAndapplyLargeDelta(delta, 20000);\n }\n else {\n applyDelta(this.$lines, delta, doNotValidate);\n this._signal(\"change\", delta);\n }\n };\n Document.prototype.$safeApplyDelta = function (delta) {\n var docLength = this.$lines.length;\n if (delta.action == \"remove\" && delta.start.row < docLength && delta.end.row < docLength\n || delta.action == \"insert\" && delta.start.row <= docLength) {\n this.applyDelta(delta);\n }\n };\n Document.prototype.$splitAndapplyLargeDelta = function (delta, MAX) {\n var lines = delta.lines;\n var l = lines.length - MAX + 1;\n var row = delta.start.row;\n var column = delta.start.column;\n for (var from = 0, to = 0; from < l; from = to) {\n to += MAX - 1;\n var chunk = lines.slice(from, to);\n chunk.push(\"\");\n this.applyDelta({\n start: this.pos(row + from, column),\n end: this.pos(row + to, column = 0),\n action: delta.action,\n lines: chunk\n }, true);\n }\n delta.lines = lines.slice(from);\n delta.start.row = row + from;\n delta.start.column = column;\n this.applyDelta(delta, true);\n };\n Document.prototype.revertDelta = function (delta) {\n this.$safeApplyDelta({\n start: this.clonePos(delta.start),\n end: this.clonePos(delta.end),\n action: (delta.action == \"insert\" ? \"remove\" : \"insert\"),\n lines: delta.lines.slice()\n });\n };\n Document.prototype.indexToPosition = function (index, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n for (var i = startRow || 0, l = lines.length; i < l; i++) {\n index -= lines[i].length + newlineLength;\n if (index < 0)\n return { row: i, column: index + lines[i].length + newlineLength };\n }\n return { row: l - 1, column: index + lines[l - 1].length + newlineLength };\n };\n Document.prototype.positionToIndex = function (pos, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n var index = 0;\n var row = Math.min(pos.row, lines.length);\n for (var i = startRow || 0; i < row; ++i)\n index += lines[i].length + newlineLength;\n return index + pos.column;\n };\n Document.prototype.$split = function (text) {\n return text.split(/\\r\\n|\\r|\\n/);\n };\n return Document;\n}());\nDocument.prototype.$autoNewLine = \"\";\nDocument.prototype.$newLineMode = \"auto\";\noop.implement(Document.prototype, EventEmitter);\nexports.Document = Document;\n\n});\n\nace.define(\"ace/background_tokenizer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar BackgroundTokenizer = /** @class */ (function () {\n function BackgroundTokenizer(tokenizer, editor) {\n this.running = false;\n this.lines = [];\n this.states = [];\n this.currentLine = 0;\n this.tokenizer = tokenizer;\n var self = this;\n this.$worker = function () {\n if (!self.running) {\n return;\n }\n var workerStart = new Date();\n var currentLine = self.currentLine;\n var endLine = -1;\n var doc = self.doc;\n var startLine = currentLine;\n while (self.lines[currentLine])\n currentLine++;\n var len = doc.getLength();\n var processedLines = 0;\n self.running = false;\n while (currentLine < len) {\n self.$tokenizeRow(currentLine);\n endLine = currentLine;\n do {\n currentLine++;\n } while (self.lines[currentLine]);\n processedLines++;\n if ((processedLines % 5 === 0) && (new Date() - workerStart) > 20) {\n self.running = setTimeout(self.$worker, 20);\n break;\n }\n }\n self.currentLine = currentLine;\n if (endLine == -1)\n endLine = currentLine;\n if (startLine <= endLine)\n self.fireUpdateEvent(startLine, endLine);\n };\n }\n BackgroundTokenizer.prototype.setTokenizer = function (tokenizer) {\n this.tokenizer = tokenizer;\n this.lines = [];\n this.states = [];\n this.start(0);\n };\n BackgroundTokenizer.prototype.setDocument = function (doc) {\n this.doc = doc;\n this.lines = [];\n this.states = [];\n this.stop();\n };\n BackgroundTokenizer.prototype.fireUpdateEvent = function (firstRow, lastRow) {\n var data = {\n first: firstRow,\n last: lastRow\n };\n this._signal(\"update\", { data: data });\n };\n BackgroundTokenizer.prototype.start = function (startRow) {\n this.currentLine = Math.min(startRow || 0, this.currentLine, this.doc.getLength());\n this.lines.splice(this.currentLine, this.lines.length);\n this.states.splice(this.currentLine, this.states.length);\n this.stop();\n this.running = setTimeout(this.$worker, 700);\n };\n BackgroundTokenizer.prototype.scheduleStart = function () {\n if (!this.running)\n this.running = setTimeout(this.$worker, 700);\n };\n BackgroundTokenizer.prototype.$updateOnChange = function (delta) {\n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n if (len === 0) {\n this.lines[startRow] = null;\n }\n else if (delta.action == \"remove\") {\n this.lines.splice(startRow, len + 1, null);\n this.states.splice(startRow, len + 1, null);\n }\n else {\n var args = Array(len + 1);\n args.unshift(startRow, 1);\n this.lines.splice.apply(this.lines, args);\n this.states.splice.apply(this.states, args);\n }\n this.currentLine = Math.min(startRow, this.currentLine, this.doc.getLength());\n this.stop();\n };\n BackgroundTokenizer.prototype.stop = function () {\n if (this.running)\n clearTimeout(this.running);\n this.running = false;\n };\n BackgroundTokenizer.prototype.getTokens = function (row) {\n return this.lines[row] || this.$tokenizeRow(row);\n };\n BackgroundTokenizer.prototype.getState = function (row) {\n if (this.currentLine == row)\n this.$tokenizeRow(row);\n return this.states[row] || \"start\";\n };\n BackgroundTokenizer.prototype.$tokenizeRow = function (row) {\n var line = this.doc.getLine(row);\n var state = this.states[row - 1];\n var data = this.tokenizer.getLineTokens(line, state, row);\n if (this.states[row] + \"\" !== data.state + \"\") {\n this.states[row] = data.state;\n this.lines[row + 1] = null;\n if (this.currentLine > row + 1)\n this.currentLine = row + 1;\n }\n else if (this.currentLine == row) {\n this.currentLine = row + 1;\n }\n return this.lines[row] = data.tokens;\n };\n BackgroundTokenizer.prototype.cleanup = function () {\n this.running = false;\n this.lines = [];\n this.states = [];\n this.currentLine = 0;\n this.removeAllListeners();\n };\n return BackgroundTokenizer;\n}());\noop.implement(BackgroundTokenizer.prototype, EventEmitter);\nexports.BackgroundTokenizer = BackgroundTokenizer;\n\n});\n\nace.define(\"ace/search_highlight\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar lang = require(\"./lib/lang\");\nvar Range = require(\"./range\").Range;\nvar SearchHighlight = /** @class */ (function () {\n function SearchHighlight(regExp, clazz, type) {\n if (type === void 0) { type = \"text\"; }\n this.setRegexp(regExp);\n this.clazz = clazz;\n this.type = type;\n }\n SearchHighlight.prototype.setRegexp = function (regExp) {\n if (this.regExp + \"\" == regExp + \"\")\n return;\n this.regExp = regExp;\n this.cache = [];\n };\n SearchHighlight.prototype.update = function (html, markerLayer, session, config) {\n if (!this.regExp)\n return;\n var start = config.firstRow, end = config.lastRow;\n var renderedMarkerRanges = {};\n for (var i = start; i <= end; i++) {\n var ranges = this.cache[i];\n if (ranges == null) {\n ranges = lang.getMatchOffsets(session.getLine(i), this.regExp);\n if (ranges.length > this.MAX_RANGES)\n ranges = ranges.slice(0, this.MAX_RANGES);\n ranges = ranges.map(function (match) {\n return new Range(i, match.offset, i, match.offset + match.length);\n });\n this.cache[i] = ranges.length ? ranges : \"\";\n }\n for (var j = ranges.length; j--;) {\n var rangeToAddMarkerTo = ranges[j].toScreenRange(session);\n var rangeAsString = rangeToAddMarkerTo.toString();\n if (renderedMarkerRanges[rangeAsString])\n continue;\n renderedMarkerRanges[rangeAsString] = true;\n markerLayer.drawSingleLineMarker(html, rangeToAddMarkerTo, this.clazz, config);\n }\n }\n };\n return SearchHighlight;\n}());\nSearchHighlight.prototype.MAX_RANGES = 500;\nexports.SearchHighlight = SearchHighlight;\n\n});\n\nace.define(\"ace/undomanager\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar UndoManager = /** @class */ (function () {\n function UndoManager() {\n this.$maxRev = 0;\n this.$fromUndo = false;\n this.$undoDepth = Infinity;\n this.reset();\n }\n UndoManager.prototype.addSession = function (session) {\n this.$session = session;\n };\n UndoManager.prototype.add = function (delta, allowMerge, session) {\n if (this.$fromUndo)\n return;\n if (delta == this.$lastDelta)\n return;\n if (!this.$keepRedoStack)\n this.$redoStack.length = 0;\n if (allowMerge === false || !this.lastDeltas) {\n this.lastDeltas = [];\n var undoStackLength = this.$undoStack.length;\n if (undoStackLength > this.$undoDepth - 1) {\n this.$undoStack.splice(0, undoStackLength - this.$undoDepth + 1);\n }\n this.$undoStack.push(this.lastDeltas);\n delta.id = this.$rev = ++this.$maxRev;\n }\n if (delta.action == \"remove\" || delta.action == \"insert\")\n this.$lastDelta = delta;\n this.lastDeltas.push(delta);\n };\n UndoManager.prototype.addSelection = function (selection, rev) {\n this.selections.push({\n value: selection,\n rev: rev || this.$rev\n });\n };\n UndoManager.prototype.startNewGroup = function () {\n this.lastDeltas = null;\n return this.$rev;\n };\n UndoManager.prototype.markIgnored = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n var stack = this.$undoStack;\n for (var i = stack.length; i--;) {\n var delta = stack[i][0];\n if (delta.id <= from)\n break;\n if (delta.id < to)\n delta.ignore = true;\n }\n this.lastDeltas = null;\n };\n UndoManager.prototype.getSelection = function (rev, after) {\n var stack = this.selections;\n for (var i = stack.length; i--;) {\n var selection = stack[i];\n if (selection.rev < rev) {\n if (after)\n selection = stack[i + 1];\n return selection;\n }\n }\n };\n UndoManager.prototype.getRevision = function () {\n return this.$rev;\n };\n UndoManager.prototype.getDeltas = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n var stack = this.$undoStack;\n var end = null, start = 0;\n for (var i = stack.length; i--;) {\n var delta = stack[i][0];\n if (delta.id < to && !end)\n end = i + 1;\n if (delta.id <= from) {\n start = i + 1;\n break;\n }\n }\n return stack.slice(start, end);\n };\n UndoManager.prototype.getChangedRanges = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n };\n UndoManager.prototype.getChangedLines = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n };\n UndoManager.prototype.undo = function (session, dontSelect) {\n this.lastDeltas = null;\n var stack = this.$undoStack;\n if (!rearrangeUndoStack(stack, stack.length))\n return;\n if (!session)\n session = this.$session;\n if (this.$redoStackBaseRev !== this.$rev && this.$redoStack.length)\n this.$redoStack = [];\n this.$fromUndo = true;\n var deltaSet = stack.pop();\n var undoSelectionRange = null;\n if (deltaSet) {\n undoSelectionRange = session.undoChanges(deltaSet, dontSelect);\n this.$redoStack.push(deltaSet);\n this.$syncRev();\n }\n this.$fromUndo = false;\n return undoSelectionRange;\n };\n UndoManager.prototype.redo = function (session, dontSelect) {\n this.lastDeltas = null;\n if (!session)\n session = this.$session;\n this.$fromUndo = true;\n if (this.$redoStackBaseRev != this.$rev) {\n var diff = this.getDeltas(this.$redoStackBaseRev, this.$rev + 1);\n rebaseRedoStack(this.$redoStack, diff);\n this.$redoStackBaseRev = this.$rev;\n this.$redoStack.forEach(function (x) {\n x[0].id = ++this.$maxRev;\n }, this);\n }\n var deltaSet = this.$redoStack.pop();\n var redoSelectionRange = null;\n if (deltaSet) {\n redoSelectionRange = session.redoChanges(deltaSet, dontSelect);\n this.$undoStack.push(deltaSet);\n this.$syncRev();\n }\n this.$fromUndo = false;\n return redoSelectionRange;\n };\n UndoManager.prototype.$syncRev = function () {\n var stack = this.$undoStack;\n var nextDelta = stack[stack.length - 1];\n var id = nextDelta && nextDelta[0].id || 0;\n this.$redoStackBaseRev = id;\n this.$rev = id;\n };\n UndoManager.prototype.reset = function () {\n this.lastDeltas = null;\n this.$lastDelta = null;\n this.$undoStack = [];\n this.$redoStack = [];\n this.$rev = 0;\n this.mark = 0;\n this.$redoStackBaseRev = this.$rev;\n this.selections = [];\n };\n UndoManager.prototype.canUndo = function () {\n return this.$undoStack.length > 0;\n };\n UndoManager.prototype.canRedo = function () {\n return this.$redoStack.length > 0;\n };\n UndoManager.prototype.bookmark = function (rev) {\n if (rev == undefined)\n rev = this.$rev;\n this.mark = rev;\n };\n UndoManager.prototype.isAtBookmark = function () {\n return this.$rev === this.mark;\n };\n UndoManager.prototype.toJSON = function () {\n return {\n $redoStack: this.$redoStack,\n $undoStack: this.$undoStack\n };\n };\n UndoManager.prototype.fromJSON = function (json) {\n this.reset();\n this.$undoStack = json.$undoStack;\n this.$redoStack = json.$redoStack;\n };\n UndoManager.prototype.$prettyPrint = function (delta) {\n if (delta)\n return stringifyDelta(delta);\n return stringifyDelta(this.$undoStack) + \"\\n---\\n\" + stringifyDelta(this.$redoStack);\n };\n return UndoManager;\n}());\nUndoManager.prototype.hasUndo = UndoManager.prototype.canUndo;\nUndoManager.prototype.hasRedo = UndoManager.prototype.canRedo;\nUndoManager.prototype.isClean = UndoManager.prototype.isAtBookmark;\nUndoManager.prototype.markClean = UndoManager.prototype.bookmark;\nfunction rearrangeUndoStack(stack, pos) {\n for (var i = pos; i--;) {\n var deltaSet = stack[i];\n if (deltaSet && !deltaSet[0].ignore) {\n while (i < pos - 1) {\n var swapped = swapGroups(stack[i], stack[i + 1]);\n stack[i] = swapped[0];\n stack[i + 1] = swapped[1];\n i++;\n }\n return true;\n }\n }\n}\nvar Range = require(\"./range\").Range;\nvar cmp = Range.comparePoints;\nvar comparePoints = Range.comparePoints;\nfunction $updateMarkers(delta) {\n var isInsert = delta.action == \"insert\";\n var start = delta.start;\n var end = delta.end;\n var rowShift = (end.row - start.row) * (isInsert ? 1 : -1);\n var colShift = (end.column - start.column) * (isInsert ? 1 : -1);\n if (isInsert)\n end = start;\n for (var i in this.marks) {\n var point = this.marks[i];\n var cmp = comparePoints(point, start);\n if (cmp < 0) {\n continue; // delta starts after the range\n }\n if (cmp === 0) {\n if (isInsert) {\n if (point.bias == 1) {\n cmp = 1;\n }\n else {\n point.bias == -1;\n continue;\n }\n }\n }\n var cmp2 = isInsert ? cmp : comparePoints(point, end);\n if (cmp2 > 0) {\n point.row += rowShift;\n point.column += point.row == end.row ? colShift : 0;\n continue;\n }\n if (!isInsert && cmp2 <= 0) {\n point.row = start.row;\n point.column = start.column;\n if (cmp2 === 0)\n point.bias = 1;\n }\n }\n}\nfunction clonePos(pos) {\n return { row: pos.row, column: pos.column };\n}\nfunction cloneDelta(d) {\n return {\n start: clonePos(d.start),\n end: clonePos(d.end),\n action: d.action,\n lines: d.lines.slice()\n };\n}\nfunction stringifyDelta(d) {\n d = d || this;\n if (Array.isArray(d)) {\n return d.map(stringifyDelta).join(\"\\n\");\n }\n var type = \"\";\n if (d.action) {\n type = d.action == \"insert\" ? \"+\" : \"-\";\n type += \"[\" + d.lines + \"]\";\n }\n else if (d.value) {\n if (Array.isArray(d.value)) {\n type = d.value.map(stringifyRange).join(\"\\n\");\n }\n else {\n type = stringifyRange(d.value);\n }\n }\n if (d.start) {\n type += stringifyRange(d);\n }\n if (d.id || d.rev) {\n type += \"\\t(\" + (d.id || d.rev) + \")\";\n }\n return type;\n}\nfunction stringifyRange(r) {\n return r.start.row + \":\" + r.start.column\n + \"=>\" + r.end.row + \":\" + r.end.column;\n}\nfunction swap(d1, d2) {\n var i1 = d1.action == \"insert\";\n var i2 = d2.action == \"insert\";\n if (i1 && i2) {\n if (cmp(d2.start, d1.end) >= 0) {\n shift(d2, d1, -1);\n }\n else if (cmp(d2.start, d1.start) <= 0) {\n shift(d1, d2, +1);\n }\n else {\n return null;\n }\n }\n else if (i1 && !i2) {\n if (cmp(d2.start, d1.end) >= 0) {\n shift(d2, d1, -1);\n }\n else if (cmp(d2.end, d1.start) <= 0) {\n shift(d1, d2, -1);\n }\n else {\n return null;\n }\n }\n else if (!i1 && i2) {\n if (cmp(d2.start, d1.start) >= 0) {\n shift(d2, d1, +1);\n }\n else if (cmp(d2.start, d1.start) <= 0) {\n shift(d1, d2, +1);\n }\n else {\n return null;\n }\n }\n else if (!i1 && !i2) {\n if (cmp(d2.start, d1.start) >= 0) {\n shift(d2, d1, +1);\n }\n else if (cmp(d2.end, d1.start) <= 0) {\n shift(d1, d2, -1);\n }\n else {\n return null;\n }\n }\n return [d2, d1];\n}\nfunction swapGroups(ds1, ds2) {\n for (var i = ds1.length; i--;) {\n for (var j = 0; j < ds2.length; j++) {\n if (!swap(ds1[i], ds2[j])) {\n while (i < ds1.length) {\n while (j--) {\n swap(ds2[j], ds1[i]);\n }\n j = ds2.length;\n i++;\n }\n return [ds1, ds2];\n }\n }\n }\n ds1.selectionBefore = ds2.selectionBefore =\n ds1.selectionAfter = ds2.selectionAfter = null;\n return [ds2, ds1];\n}\nfunction xform(d1, c1) {\n var i1 = d1.action == \"insert\";\n var i2 = c1.action == \"insert\";\n if (i1 && i2) {\n if (cmp(d1.start, c1.start) < 0) {\n shift(c1, d1, 1);\n }\n else {\n shift(d1, c1, 1);\n }\n }\n else if (i1 && !i2) {\n if (cmp(d1.start, c1.end) >= 0) {\n shift(d1, c1, -1);\n }\n else if (cmp(d1.start, c1.start) <= 0) {\n shift(c1, d1, +1);\n }\n else {\n shift(d1, Range.fromPoints(c1.start, d1.start), -1);\n shift(c1, d1, +1);\n }\n }\n else if (!i1 && i2) {\n if (cmp(c1.start, d1.end) >= 0) {\n shift(c1, d1, -1);\n }\n else if (cmp(c1.start, d1.start) <= 0) {\n shift(d1, c1, +1);\n }\n else {\n shift(c1, Range.fromPoints(d1.start, c1.start), -1);\n shift(d1, c1, +1);\n }\n }\n else if (!i1 && !i2) {\n if (cmp(c1.start, d1.end) >= 0) {\n shift(c1, d1, -1);\n }\n else if (cmp(c1.end, d1.start) <= 0) {\n shift(d1, c1, -1);\n }\n else {\n var before, after;\n if (cmp(d1.start, c1.start) < 0) {\n before = d1;\n d1 = splitDelta(d1, c1.start);\n }\n if (cmp(d1.end, c1.end) > 0) {\n after = splitDelta(d1, c1.end);\n }\n shiftPos(c1.end, d1.start, d1.end, -1);\n if (after && !before) {\n d1.lines = after.lines;\n d1.start = after.start;\n d1.end = after.end;\n after = d1;\n }\n return [c1, before, after].filter(Boolean);\n }\n }\n return [c1, d1];\n}\nfunction shift(d1, d2, dir) {\n shiftPos(d1.start, d2.start, d2.end, dir);\n shiftPos(d1.end, d2.start, d2.end, dir);\n}\nfunction shiftPos(pos, start, end, dir) {\n if (pos.row == (dir == 1 ? start : end).row) {\n pos.column += dir * (end.column - start.column);\n }\n pos.row += dir * (end.row - start.row);\n}\nfunction splitDelta(c, pos) {\n var lines = c.lines;\n var end = c.end;\n c.end = clonePos(pos);\n var rowsBefore = c.end.row - c.start.row;\n var otherLines = lines.splice(rowsBefore, lines.length);\n var col = rowsBefore ? pos.column : pos.column - c.start.column;\n lines.push(otherLines[0].substring(0, col));\n otherLines[0] = otherLines[0].substr(col);\n var rest = {\n start: clonePos(pos),\n end: end,\n lines: otherLines,\n action: c.action\n };\n return rest;\n}\nfunction moveDeltasByOne(redoStack, d) {\n d = cloneDelta(d);\n for (var j = redoStack.length; j--;) {\n var deltaSet = redoStack[j];\n for (var i = 0; i < deltaSet.length; i++) {\n var x = deltaSet[i];\n var xformed = xform(x, d);\n d = xformed[0];\n if (xformed.length != 2) {\n if (xformed[2]) {\n deltaSet.splice(i + 1, 1, xformed[1], xformed[2]);\n i++;\n }\n else if (!xformed[1]) {\n deltaSet.splice(i, 1);\n i--;\n }\n }\n }\n if (!deltaSet.length) {\n redoStack.splice(j, 1);\n }\n }\n return redoStack;\n}\nfunction rebaseRedoStack(redoStack, deltaSets) {\n for (var i = 0; i < deltaSets.length; i++) {\n var deltas = deltaSets[i];\n for (var j = 0; j < deltas.length; j++) {\n moveDeltasByOne(redoStack, deltas[j]);\n }\n }\n}\nexports.UndoManager = UndoManager;\n\n});\n\nace.define(\"ace/edit_session/fold_line\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar FoldLine = /** @class */ (function () {\n function FoldLine(foldData, folds) {\n this.foldData = foldData;\n if (Array.isArray(folds)) {\n this.folds = folds;\n }\n else {\n folds = this.folds = [folds];\n }\n var last = folds[folds.length - 1];\n this.range = new Range(folds[0].start.row, folds[0].start.column, last.end.row, last.end.column);\n this.start = this.range.start;\n this.end = this.range.end;\n this.folds.forEach(function (fold) {\n fold.setFoldLine(this);\n }, this);\n }\n FoldLine.prototype.shiftRow = function (shift) {\n this.start.row += shift;\n this.end.row += shift;\n this.folds.forEach(function (fold) {\n fold.start.row += shift;\n fold.end.row += shift;\n });\n };\n FoldLine.prototype.addFold = function (fold) {\n if (fold.sameRow) {\n if (fold.start.row < this.startRow || fold.endRow > this.endRow) {\n throw new Error(\"Can't add a fold to this FoldLine as it has no connection\");\n }\n this.folds.push(fold);\n this.folds.sort(function (a, b) {\n return -a.range.compareEnd(b.start.row, b.start.column);\n });\n if (this.range.compareEnd(fold.start.row, fold.start.column) > 0) {\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n }\n else if (this.range.compareStart(fold.end.row, fold.end.column) < 0) {\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n }\n }\n else if (fold.start.row == this.end.row) {\n this.folds.push(fold);\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n }\n else if (fold.end.row == this.start.row) {\n this.folds.unshift(fold);\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n }\n else {\n throw new Error(\"Trying to add fold to FoldRow that doesn't have a matching row\");\n }\n fold.foldLine = this;\n };\n FoldLine.prototype.containsRow = function (row) {\n return row >= this.start.row && row <= this.end.row;\n };\n FoldLine.prototype.walk = function (callback, endRow, endColumn) {\n var lastEnd = 0, folds = this.folds, fold, cmp, stop, isNewRow = true;\n if (endRow == null) {\n endRow = this.end.row;\n endColumn = this.end.column;\n }\n for (var i = 0; i < folds.length; i++) {\n fold = folds[i];\n cmp = fold.range.compareStart(endRow, endColumn);\n if (cmp == -1) {\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n return;\n }\n stop = callback(null, fold.start.row, fold.start.column, lastEnd, isNewRow);\n stop = !stop && callback(fold.placeholder, fold.start.row, fold.start.column, lastEnd);\n if (stop || cmp === 0) {\n return;\n }\n isNewRow = !fold.sameRow;\n lastEnd = fold.end.column;\n }\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n };\n FoldLine.prototype.getNextFoldTo = function (row, column) {\n var fold, cmp;\n for (var i = 0; i < this.folds.length; i++) {\n fold = this.folds[i];\n cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n return {\n fold: fold,\n kind: \"after\"\n };\n }\n else if (cmp === 0) {\n return {\n fold: fold,\n kind: \"inside\"\n };\n }\n }\n return null;\n };\n FoldLine.prototype.addRemoveChars = function (row, column, len) {\n var ret = this.getNextFoldTo(row, column), fold, folds;\n if (ret) {\n fold = ret.fold;\n if (ret.kind == \"inside\"\n && fold.start.column != column\n && fold.start.row != row) {\n window.console && window.console.log(row, column, fold);\n }\n else if (fold.start.row == row) {\n folds = this.folds;\n var i = folds.indexOf(fold);\n if (i === 0) {\n this.start.column += len;\n }\n for (i; i < folds.length; i++) {\n fold = folds[i];\n fold.start.column += len;\n if (!fold.sameRow) {\n return;\n }\n fold.end.column += len;\n }\n this.end.column += len;\n }\n }\n };\n FoldLine.prototype.split = function (row, column) {\n var pos = this.getNextFoldTo(row, column);\n if (!pos || pos.kind == \"inside\")\n return null;\n var fold = pos.fold;\n var folds = this.folds;\n var foldData = this.foldData;\n var i = folds.indexOf(fold);\n var foldBefore = folds[i - 1];\n this.end.row = foldBefore.end.row;\n this.end.column = foldBefore.end.column;\n folds = folds.splice(i, folds.length - i);\n var newFoldLine = new FoldLine(foldData, folds);\n foldData.splice(foldData.indexOf(this) + 1, 0, newFoldLine);\n return newFoldLine;\n };\n FoldLine.prototype.merge = function (foldLineNext) {\n var folds = foldLineNext.folds;\n for (var i = 0; i < folds.length; i++) {\n this.addFold(folds[i]);\n }\n var foldData = this.foldData;\n foldData.splice(foldData.indexOf(foldLineNext), 1);\n };\n FoldLine.prototype.toString = function () {\n var ret = [this.range.toString() + \": [\"];\n this.folds.forEach(function (fold) {\n ret.push(\" \" + fold.toString());\n });\n ret.push(\"]\");\n return ret.join(\"\\n\");\n };\n FoldLine.prototype.idxToPosition = function (idx) {\n var lastFoldEndColumn = 0;\n for (var i = 0; i < this.folds.length; i++) {\n var fold = this.folds[i];\n idx -= fold.start.column - lastFoldEndColumn;\n if (idx < 0) {\n return {\n row: fold.start.row,\n column: fold.start.column + idx\n };\n }\n idx -= fold.placeholder.length;\n if (idx < 0) {\n return fold.start;\n }\n lastFoldEndColumn = fold.end.column;\n }\n return {\n row: this.end.row,\n column: this.end.column + idx\n };\n };\n return FoldLine;\n}());\nexports.FoldLine = FoldLine;\n\n});\n\nace.define(\"ace/range_list\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"./range\").Range;\nvar comparePoints = Range.comparePoints;\nvar RangeList = /** @class */ (function () {\n function RangeList() {\n this.ranges = [];\n this.$bias = 1;\n }\n RangeList.prototype.pointIndex = function (pos, excludeEdges, startIndex) {\n var list = this.ranges;\n for (var i = startIndex || 0; i < list.length; i++) {\n var range = list[i];\n var cmpEnd = comparePoints(pos, range.end);\n if (cmpEnd > 0)\n continue;\n var cmpStart = comparePoints(pos, range.start);\n if (cmpEnd === 0)\n return excludeEdges && cmpStart !== 0 ? -i - 2 : i;\n if (cmpStart > 0 || (cmpStart === 0 && !excludeEdges))\n return i;\n return -i - 1;\n }\n return -i - 1;\n };\n RangeList.prototype.add = function (range) {\n var excludeEdges = !range.isEmpty();\n var startIndex = this.pointIndex(range.start, excludeEdges);\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n var endIndex = this.pointIndex(range.end, excludeEdges, startIndex);\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n else\n endIndex++;\n return this.ranges.splice(startIndex, endIndex - startIndex, range);\n };\n RangeList.prototype.addList = function (list) {\n var removed = [];\n for (var i = list.length; i--;) {\n removed.push.apply(removed, this.add(list[i]));\n }\n return removed;\n };\n RangeList.prototype.substractPoint = function (pos) {\n var i = this.pointIndex(pos);\n if (i >= 0)\n return this.ranges.splice(i, 1);\n };\n RangeList.prototype.merge = function () {\n var removed = [];\n var list = this.ranges;\n list = list.sort(function (a, b) {\n return comparePoints(a.start, b.start);\n });\n var next = list[0], range;\n for (var i = 1; i < list.length; i++) {\n range = next;\n next = list[i];\n var cmp = comparePoints(range.end, next.start);\n if (cmp < 0)\n continue;\n if (cmp == 0 && !range.isEmpty() && !next.isEmpty())\n continue;\n if (comparePoints(range.end, next.end) < 0) {\n range.end.row = next.end.row;\n range.end.column = next.end.column;\n }\n list.splice(i, 1);\n removed.push(next);\n next = range;\n i--;\n }\n this.ranges = list;\n return removed;\n };\n RangeList.prototype.contains = function (row, column) {\n return this.pointIndex({ row: row, column: column }) >= 0;\n };\n RangeList.prototype.containsPoint = function (pos) {\n return this.pointIndex(pos) >= 0;\n };\n RangeList.prototype.rangeAtPoint = function (pos) {\n var i = this.pointIndex(pos);\n if (i >= 0)\n return this.ranges[i];\n };\n RangeList.prototype.clipRows = function (startRow, endRow) {\n var list = this.ranges;\n if (list[0].start.row > endRow || list[list.length - 1].start.row < startRow)\n return [];\n var startIndex = this.pointIndex({ row: startRow, column: 0 });\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n var endIndex = this.pointIndex({ row: endRow, column: 0 }, startIndex);\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n var clipped = [];\n for (var i = startIndex; i < endIndex; i++) {\n clipped.push(list[i]);\n }\n return clipped;\n };\n RangeList.prototype.removeAll = function () {\n return this.ranges.splice(0, this.ranges.length);\n };\n RangeList.prototype.attach = function (session) {\n if (this.session)\n this.detach();\n this.session = session;\n this.onChange = this.$onChange.bind(this);\n this.session.on('change', this.onChange);\n };\n RangeList.prototype.detach = function () {\n if (!this.session)\n return;\n this.session.removeListener('change', this.onChange);\n this.session = null;\n };\n RangeList.prototype.$onChange = function (delta) {\n var start = delta.start;\n var end = delta.end;\n var startRow = start.row;\n var endRow = end.row;\n var ranges = this.ranges;\n for (var i = 0, n = ranges.length; i < n; i++) {\n var r = ranges[i];\n if (r.end.row >= startRow)\n break;\n }\n if (delta.action == \"insert\") {\n var lineDif = endRow - startRow;\n var colDiff = -start.column + end.column;\n for (; i < n; i++) {\n var r = ranges[i];\n if (r.start.row > startRow)\n break;\n if (r.start.row == startRow && r.start.column >= start.column) {\n if (r.start.column == start.column && this.$bias <= 0) {\n }\n else {\n r.start.column += colDiff;\n r.start.row += lineDif;\n }\n }\n if (r.end.row == startRow && r.end.column >= start.column) {\n if (r.end.column == start.column && this.$bias < 0) {\n continue;\n }\n if (r.end.column == start.column && colDiff > 0 && i < n - 1) {\n if (r.end.column > r.start.column && r.end.column == ranges[i + 1].start.column)\n r.end.column -= colDiff;\n }\n r.end.column += colDiff;\n r.end.row += lineDif;\n }\n }\n }\n else {\n var lineDif = startRow - endRow;\n var colDiff = start.column - end.column;\n for (; i < n; i++) {\n var r = ranges[i];\n if (r.start.row > endRow)\n break;\n if (r.end.row < endRow\n && (startRow < r.end.row\n || startRow == r.end.row && start.column < r.end.column)) {\n r.end.row = startRow;\n r.end.column = start.column;\n }\n else if (r.end.row == endRow) {\n if (r.end.column <= end.column) {\n if (lineDif || r.end.column > start.column) {\n r.end.column = start.column;\n r.end.row = start.row;\n }\n }\n else {\n r.end.column += colDiff;\n r.end.row += lineDif;\n }\n }\n else if (r.end.row > endRow) {\n r.end.row += lineDif;\n }\n if (r.start.row < endRow\n && (startRow < r.start.row\n || startRow == r.start.row && start.column < r.start.column)) {\n r.start.row = startRow;\n r.start.column = start.column;\n }\n else if (r.start.row == endRow) {\n if (r.start.column <= end.column) {\n if (lineDif || r.start.column > start.column) {\n r.start.column = start.column;\n r.start.row = start.row;\n }\n }\n else {\n r.start.column += colDiff;\n r.start.row += lineDif;\n }\n }\n else if (r.start.row > endRow) {\n r.start.row += lineDif;\n }\n }\n }\n if (lineDif != 0 && i < n) {\n for (; i < n; i++) {\n var r = ranges[i];\n r.start.row += lineDif;\n r.end.row += lineDif;\n }\n }\n };\n return RangeList;\n}());\nRangeList.prototype.comparePoints = comparePoints;\nexports.RangeList = RangeList;\n\n});\n\nace.define(\"ace/edit_session/fold\",[\"require\",\"exports\",\"module\",\"ace/range_list\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar RangeList = require(\"../range_list\").RangeList;\nvar Fold = /** @class */ (function (_super) {\n __extends(Fold, _super);\n function Fold(range, placeholder) {\n var _this = _super.call(this) || this;\n _this.foldLine = null;\n _this.placeholder = placeholder;\n _this.range = range;\n _this.start = range.start;\n _this.end = range.end;\n _this.sameRow = range.start.row == range.end.row;\n _this.subFolds = _this.ranges = [];\n return _this;\n }\n Fold.prototype.toString = function () {\n return '\"' + this.placeholder + '\" ' + this.range.toString();\n };\n Fold.prototype.setFoldLine = function (foldLine) {\n this.foldLine = foldLine;\n this.subFolds.forEach(function (fold) {\n fold.setFoldLine(foldLine);\n });\n };\n Fold.prototype.clone = function () {\n var range = this.range.clone();\n var fold = new Fold(range, this.placeholder);\n this.subFolds.forEach(function (subFold) {\n fold.subFolds.push(subFold.clone());\n });\n fold.collapseChildren = this.collapseChildren;\n return fold;\n };\n Fold.prototype.addSubFold = function (fold) {\n if (this.range.isEqual(fold))\n return;\n consumeRange(fold, this.start);\n var row = fold.start.row, column = fold.start.column;\n for (var i = 0, cmp = -1; i < this.subFolds.length; i++) {\n cmp = this.subFolds[i].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n var afterStart = this.subFolds[i];\n var firstConsumed = 0;\n if (cmp == 0) {\n if (afterStart.range.containsRange(fold))\n return afterStart.addSubFold(fold);\n else\n firstConsumed = 1;\n }\n var row = fold.range.end.row, column = fold.range.end.column;\n for (var j = i, cmp = -1; j < this.subFolds.length; j++) {\n cmp = this.subFolds[j].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n if (cmp == 0)\n j++;\n var consumedFolds = this.subFolds.splice(i, j - i, fold);\n var last = cmp == 0 ? consumedFolds.length - 1 : consumedFolds.length;\n for (var k = firstConsumed; k < last; k++) {\n fold.addSubFold(consumedFolds[k]);\n }\n fold.setFoldLine(this.foldLine);\n return fold;\n };\n Fold.prototype.restoreRange = function (range) {\n return restoreRange(range, this.start);\n };\n return Fold;\n}(RangeList));\nfunction consumePoint(point, anchor) {\n point.row -= anchor.row;\n if (point.row == 0)\n point.column -= anchor.column;\n}\nfunction consumeRange(range, anchor) {\n consumePoint(range.start, anchor);\n consumePoint(range.end, anchor);\n}\nfunction restorePoint(point, anchor) {\n if (point.row == 0)\n point.column += anchor.column;\n point.row += anchor.row;\n}\nfunction restoreRange(range, anchor) {\n restorePoint(range.start, anchor);\n restorePoint(range.end, anchor);\n}\nexports.Fold = Fold;\n\n});\n\nace.define(\"ace/edit_session/folding\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/edit_session/fold_line\",\"ace/edit_session/fold\",\"ace/token_iterator\",\"ace/mouse/mouse_event\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar FoldLine = require(\"./fold_line\").FoldLine;\nvar Fold = require(\"./fold\").Fold;\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nvar MouseEvent = require(\"../mouse/mouse_event\").MouseEvent;\nfunction Folding() {\n this.getFoldAt = function (row, column, side) {\n var foldLine = this.getFoldLine(row);\n if (!foldLine)\n return null;\n var folds = foldLine.folds;\n for (var i = 0; i < folds.length; i++) {\n var range = folds[i].range;\n if (range.contains(row, column)) {\n if (side == 1 && range.isEnd(row, column) && !range.isEmpty()) {\n continue;\n }\n else if (side == -1 && range.isStart(row, column) && !range.isEmpty()) {\n continue;\n }\n return folds[i];\n }\n }\n };\n this.getFoldsInRange = function (range) {\n var start = range.start;\n var end = range.end;\n var foldLines = this.$foldData;\n var foundFolds = [];\n start.column += 1;\n end.column -= 1;\n for (var i = 0; i < foldLines.length; i++) {\n var cmp = foldLines[i].range.compareRange(range);\n if (cmp == 2) {\n continue;\n }\n else if (cmp == -2) {\n break;\n }\n var folds = foldLines[i].folds;\n for (var j = 0; j < folds.length; j++) {\n var fold = folds[j];\n cmp = fold.range.compareRange(range);\n if (cmp == -2) {\n break;\n }\n else if (cmp == 2) {\n continue;\n }\n else \n if (cmp == 42) {\n break;\n }\n foundFolds.push(fold);\n }\n }\n start.column -= 1;\n end.column += 1;\n return foundFolds;\n };\n this.getFoldsInRangeList = function (ranges) {\n if (Array.isArray(ranges)) {\n var folds = [];\n ranges.forEach(function (range) {\n folds = folds.concat(this.getFoldsInRange(range));\n }, this);\n }\n else {\n var folds = this.getFoldsInRange(ranges);\n }\n return folds;\n };\n this.getAllFolds = function () {\n var folds = [];\n var foldLines = this.$foldData;\n for (var i = 0; i < foldLines.length; i++)\n for (var j = 0; j < foldLines[i].folds.length; j++)\n folds.push(foldLines[i].folds[j]);\n return folds;\n };\n this.getFoldStringAt = function (row, column, trim, foldLine) {\n foldLine = foldLine || this.getFoldLine(row);\n if (!foldLine)\n return null;\n var lastFold = {\n end: { column: 0 }\n };\n var str, fold;\n for (var i = 0; i < foldLine.folds.length; i++) {\n fold = foldLine.folds[i];\n var cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n str = this\n .getLine(fold.start.row)\n .substring(lastFold.end.column, fold.start.column);\n break;\n }\n else if (cmp === 0) {\n return null;\n }\n lastFold = fold;\n }\n if (!str)\n str = this.getLine(fold.start.row).substring(lastFold.end.column);\n if (trim == -1)\n return str.substring(0, column - lastFold.end.column);\n else if (trim == 1)\n return str.substring(column - lastFold.end.column);\n else\n return str;\n };\n this.getFoldLine = function (docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.start.row <= docRow && foldLine.end.row >= docRow) {\n return foldLine;\n }\n else if (foldLine.end.row > docRow) {\n return null;\n }\n }\n return null;\n };\n this.getNextFoldLine = function (docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.end.row >= docRow) {\n return foldLine;\n }\n }\n return null;\n };\n this.getFoldedRowCount = function (first, last) {\n var foldData = this.$foldData, rowCount = last - first + 1;\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i], end = foldLine.end.row, start = foldLine.start.row;\n if (end >= last) {\n if (start < last) {\n if (start >= first)\n rowCount -= last - start;\n else\n rowCount = 0; // in one fold\n }\n break;\n }\n else if (end >= first) {\n if (start >= first) // fold inside range\n rowCount -= end - start;\n else\n rowCount -= end - first + 1;\n }\n }\n return rowCount;\n };\n this.$addFoldLine = function (foldLine) {\n this.$foldData.push(foldLine);\n this.$foldData.sort(function (a, b) {\n return a.start.row - b.start.row;\n });\n return foldLine;\n };\n this.addFold = function (placeholder, range) {\n var foldData = this.$foldData;\n var added = false;\n var fold;\n if (placeholder instanceof Fold)\n fold = placeholder;\n else {\n fold = new Fold(range, placeholder);\n fold.collapseChildren = range.collapseChildren;\n }\n this.$clipRangeToDocument(fold.range);\n var startRow = fold.start.row;\n var startColumn = fold.start.column;\n var endRow = fold.end.row;\n var endColumn = fold.end.column;\n var startFold = this.getFoldAt(startRow, startColumn, 1);\n var endFold = this.getFoldAt(endRow, endColumn, -1);\n if (startFold && endFold == startFold)\n return startFold.addSubFold(fold);\n if (startFold && !startFold.range.isStart(startRow, startColumn))\n this.removeFold(startFold);\n if (endFold && !endFold.range.isEnd(endRow, endColumn))\n this.removeFold(endFold);\n var folds = this.getFoldsInRange(fold.range);\n if (folds.length > 0) {\n this.removeFolds(folds);\n if (!fold.collapseChildren) {\n folds.forEach(function (subFold) {\n fold.addSubFold(subFold);\n });\n }\n }\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (endRow == foldLine.start.row) {\n foldLine.addFold(fold);\n added = true;\n break;\n }\n else if (startRow == foldLine.end.row) {\n foldLine.addFold(fold);\n added = true;\n if (!fold.sameRow) {\n var foldLineNext = foldData[i + 1];\n if (foldLineNext && foldLineNext.start.row == endRow) {\n foldLine.merge(foldLineNext);\n break;\n }\n }\n break;\n }\n else if (endRow <= foldLine.start.row) {\n break;\n }\n }\n if (!added)\n foldLine = this.$addFoldLine(new FoldLine(this.$foldData, fold));\n if (this.$useWrapMode)\n this.$updateWrapData(foldLine.start.row, foldLine.start.row);\n else\n this.$updateRowLengthCache(foldLine.start.row, foldLine.start.row);\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"add\" });\n return fold;\n };\n this.addFolds = function (folds) {\n folds.forEach(function (fold) {\n this.addFold(fold);\n }, this);\n };\n this.removeFold = function (fold) {\n var foldLine = fold.foldLine;\n var startRow = foldLine.start.row;\n var endRow = foldLine.end.row;\n var foldLines = this.$foldData;\n var folds = foldLine.folds;\n if (folds.length == 1) {\n foldLines.splice(foldLines.indexOf(foldLine), 1);\n }\n else \n if (foldLine.range.isEnd(fold.end.row, fold.end.column)) {\n folds.pop();\n foldLine.end.row = folds[folds.length - 1].end.row;\n foldLine.end.column = folds[folds.length - 1].end.column;\n }\n else \n if (foldLine.range.isStart(fold.start.row, fold.start.column)) {\n folds.shift();\n foldLine.start.row = folds[0].start.row;\n foldLine.start.column = folds[0].start.column;\n }\n else \n if (fold.sameRow) {\n folds.splice(folds.indexOf(fold), 1);\n }\n else \n {\n var newFoldLine = foldLine.split(fold.start.row, fold.start.column);\n folds = newFoldLine.folds;\n folds.shift();\n newFoldLine.start.row = folds[0].start.row;\n newFoldLine.start.column = folds[0].start.column;\n }\n if (!this.$updating) {\n if (this.$useWrapMode)\n this.$updateWrapData(startRow, endRow);\n else\n this.$updateRowLengthCache(startRow, endRow);\n }\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"remove\" });\n };\n this.removeFolds = function (folds) {\n var cloneFolds = [];\n for (var i = 0; i < folds.length; i++) {\n cloneFolds.push(folds[i]);\n }\n cloneFolds.forEach(function (fold) {\n this.removeFold(fold);\n }, this);\n this.$modified = true;\n };\n this.expandFold = function (fold) {\n this.removeFold(fold);\n fold.subFolds.forEach(function (subFold) {\n fold.restoreRange(subFold);\n this.addFold(subFold);\n }, this);\n if (fold.collapseChildren > 0) {\n this.foldAll(fold.start.row + 1, fold.end.row, fold.collapseChildren - 1);\n }\n fold.subFolds = [];\n };\n this.expandFolds = function (folds) {\n folds.forEach(function (fold) {\n this.expandFold(fold);\n }, this);\n };\n this.unfold = function (location, expandInner) {\n var range, folds;\n if (location == null) {\n range = new Range(0, 0, this.getLength(), 0);\n if (expandInner == null)\n expandInner = true;\n }\n else if (typeof location == \"number\") {\n range = new Range(location, 0, location, this.getLine(location).length);\n }\n else if (\"row\" in location) {\n range = Range.fromPoints(location, location);\n }\n else if (Array.isArray(location)) {\n folds = [];\n location.forEach(function (range) {\n folds = folds.concat(this.unfold(range));\n }, this);\n return folds;\n }\n else {\n range = location;\n }\n folds = this.getFoldsInRangeList(range);\n var outermostFolds = folds;\n while (folds.length == 1\n && Range.comparePoints(folds[0].start, range.start) < 0\n && Range.comparePoints(folds[0].end, range.end) > 0) {\n this.expandFolds(folds);\n folds = this.getFoldsInRangeList(range);\n }\n if (expandInner != false) {\n this.removeFolds(folds);\n }\n else {\n this.expandFolds(folds);\n }\n if (outermostFolds.length)\n return outermostFolds;\n };\n this.isRowFolded = function (docRow, startFoldRow) {\n return !!this.getFoldLine(docRow, startFoldRow);\n };\n this.getRowFoldEnd = function (docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.end.row : docRow;\n };\n this.getRowFoldStart = function (docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.start.row : docRow;\n };\n this.getFoldDisplayLine = function (foldLine, endRow, endColumn, startRow, startColumn) {\n if (startRow == null)\n startRow = foldLine.start.row;\n if (startColumn == null)\n startColumn = 0;\n if (endRow == null)\n endRow = foldLine.end.row;\n if (endColumn == null)\n endColumn = this.getLine(endRow).length;\n var doc = this.doc;\n var textLine = \"\";\n foldLine.walk(function (placeholder, row, column, lastColumn) {\n if (row < startRow)\n return;\n if (row == startRow) {\n if (column < startColumn)\n return;\n lastColumn = Math.max(startColumn, lastColumn);\n }\n if (placeholder != null) {\n textLine += placeholder;\n }\n else {\n textLine += doc.getLine(row).substring(lastColumn, column);\n }\n }, endRow, endColumn);\n return textLine;\n };\n this.getDisplayLine = function (row, endColumn, startRow, startColumn) {\n var foldLine = this.getFoldLine(row);\n if (!foldLine) {\n var line;\n line = this.doc.getLine(row);\n return line.substring(startColumn || 0, endColumn || line.length);\n }\n else {\n return this.getFoldDisplayLine(foldLine, row, endColumn, startRow, startColumn);\n }\n };\n this.$cloneFoldData = function () {\n var fd = [];\n fd = this.$foldData.map(function (foldLine) {\n var folds = foldLine.folds.map(function (fold) {\n return fold.clone();\n });\n return new FoldLine(fd, folds);\n });\n return fd;\n };\n this.toggleFold = function (tryToUnfold) {\n var selection = this.selection;\n var range = selection.getRange();\n var fold;\n var bracketPos;\n if (range.isEmpty()) {\n var cursor = range.start;\n fold = this.getFoldAt(cursor.row, cursor.column);\n if (fold) {\n this.expandFold(fold);\n return;\n }\n else if (bracketPos = this.findMatchingBracket(cursor)) {\n if (range.comparePoint(bracketPos) == 1) {\n range.end = bracketPos;\n }\n else {\n range.start = bracketPos;\n range.start.column++;\n range.end.column--;\n }\n }\n else if (bracketPos = this.findMatchingBracket({ row: cursor.row, column: cursor.column + 1 })) {\n if (range.comparePoint(bracketPos) == 1)\n range.end = bracketPos;\n else\n range.start = bracketPos;\n range.start.column++;\n }\n else {\n range = this.getCommentFoldRange(cursor.row, cursor.column) || range;\n }\n }\n else {\n var folds = this.getFoldsInRange(range);\n if (tryToUnfold && folds.length) {\n this.expandFolds(folds);\n return;\n }\n else if (folds.length == 1) {\n fold = folds[0];\n }\n }\n if (!fold)\n fold = this.getFoldAt(range.start.row, range.start.column);\n if (fold && fold.range.toString() == range.toString()) {\n this.expandFold(fold);\n return;\n }\n var placeholder = \"...\";\n if (!range.isMultiLine()) {\n placeholder = this.getTextRange(range);\n if (placeholder.length < 4)\n return;\n placeholder = placeholder.trim().substring(0, 2) + \"..\";\n }\n this.addFold(placeholder, range);\n };\n this.getCommentFoldRange = function (row, column, dir) {\n var iterator = new TokenIterator(this, row, column);\n var token = iterator.getCurrentToken();\n var type = token && token.type;\n if (token && /^comment|string/.test(type)) {\n type = type.match(/comment|string/)[0];\n if (type == \"comment\")\n type += \"|doc-start|\\\\.doc\";\n var re = new RegExp(type);\n var range = new Range();\n if (dir != 1) {\n do {\n token = iterator.stepBackward();\n } while (token && re.test(token.type) && !/^comment.end/.test(token.type));\n token = iterator.stepForward();\n }\n range.start.row = iterator.getCurrentTokenRow();\n range.start.column = iterator.getCurrentTokenColumn() + (/^comment.start/.test(token.type) ? token.value.length : 2);\n iterator = new TokenIterator(this, row, column);\n if (dir != -1) {\n var lastRow = -1;\n do {\n token = iterator.stepForward();\n if (lastRow == -1) {\n var state = this.getState(iterator.$row);\n if (!re.test(state))\n lastRow = iterator.$row;\n }\n else if (iterator.$row > lastRow) {\n break;\n }\n } while (token && re.test(token.type) && !/^comment.start/.test(token.type));\n token = iterator.stepBackward();\n }\n else\n token = iterator.getCurrentToken();\n range.end.row = iterator.getCurrentTokenRow();\n range.end.column = iterator.getCurrentTokenColumn();\n if (!/^comment.end/.test(token.type)) {\n range.end.column += token.value.length - 2;\n }\n return range;\n }\n };\n this.foldAll = function (startRow, endRow, depth, test) {\n if (depth == undefined)\n depth = 100000; // JSON.stringify doesn't hanle Infinity\n var foldWidgets = this.foldWidgets;\n if (!foldWidgets)\n return; // mode doesn't support folding\n endRow = endRow || this.getLength();\n startRow = startRow || 0;\n for (var row = startRow; row < endRow; row++) {\n if (foldWidgets[row] == null)\n foldWidgets[row] = this.getFoldWidget(row);\n if (foldWidgets[row] != \"start\")\n continue;\n if (test && !test(row))\n continue;\n var range = this.getFoldWidgetRange(row);\n if (range && range.isMultiLine()\n && range.end.row <= endRow\n && range.start.row >= startRow) {\n row = range.end.row;\n range.collapseChildren = depth;\n this.addFold(\"...\", range);\n }\n }\n };\n this.foldToLevel = function (level) {\n this.foldAll();\n while (level-- > 0)\n this.unfold(null, false);\n };\n this.foldAllComments = function () {\n var session = this;\n this.foldAll(null, null, null, function (row) {\n var tokens = session.getTokens(row);\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (token.type == \"text\" && /^\\s+$/.test(token.value))\n continue;\n if (/comment/.test(token.type))\n return true;\n return false;\n }\n });\n };\n this.$foldStyles = {\n \"manual\": 1,\n \"markbegin\": 1,\n \"markbeginend\": 1\n };\n this.$foldStyle = \"markbegin\";\n this.setFoldStyle = function (style) {\n if (!this.$foldStyles[style])\n throw new Error(\"invalid fold style: \" + style + \"[\" + Object.keys(this.$foldStyles).join(\", \") + \"]\");\n if (this.$foldStyle == style)\n return;\n this.$foldStyle = style;\n if (style == \"manual\")\n this.unfold();\n var mode = this.$foldMode;\n this.$setFolding(null);\n this.$setFolding(mode);\n };\n this.$setFolding = function (foldMode) {\n if (this.$foldMode == foldMode)\n return;\n this.$foldMode = foldMode;\n this.off('change', this.$updateFoldWidgets);\n this.off('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n this._signal(\"changeAnnotation\");\n if (!foldMode || this.$foldStyle == \"manual\") {\n this.foldWidgets = null;\n return;\n }\n this.foldWidgets = [];\n this.getFoldWidget = foldMode.getFoldWidget.bind(foldMode, this, this.$foldStyle);\n this.getFoldWidgetRange = foldMode.getFoldWidgetRange.bind(foldMode, this, this.$foldStyle);\n this.$updateFoldWidgets = this.updateFoldWidgets.bind(this);\n this.$tokenizerUpdateFoldWidgets = this.tokenizerUpdateFoldWidgets.bind(this);\n this.on('change', this.$updateFoldWidgets);\n this.on('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n };\n this.getParentFoldRangeData = function (row, ignoreCurrent) {\n var fw = this.foldWidgets;\n if (!fw || (ignoreCurrent && fw[row]))\n return {};\n var i = row - 1, firstRange;\n while (i >= 0) {\n var c = fw[i];\n if (c == null)\n c = fw[i] = this.getFoldWidget(i);\n if (c == \"start\") {\n var range = this.getFoldWidgetRange(i);\n if (!firstRange)\n firstRange = range;\n if (range && range.end.row >= row)\n break;\n }\n i--;\n }\n return {\n range: i !== -1 && range,\n firstRange: firstRange\n };\n };\n this.onFoldWidgetClick = function (row, e) {\n if (e instanceof MouseEvent)\n e = e.domEvent;\n var options = {\n children: e.shiftKey,\n all: e.ctrlKey || e.metaKey,\n siblings: e.altKey\n };\n var range = this.$toggleFoldWidget(row, options);\n if (!range) {\n var el = (e.target || e.srcElement);\n if (el && /ace_fold-widget/.test(el.className))\n el.className += \" ace_invalid\";\n }\n };\n this.$toggleFoldWidget = function (row, options) {\n if (!this.getFoldWidget)\n return;\n var type = this.getFoldWidget(row);\n var line = this.getLine(row);\n var dir = type === \"end\" ? -1 : 1;\n var fold = this.getFoldAt(row, dir === -1 ? 0 : line.length, dir);\n if (fold) {\n if (options.children || options.all)\n this.removeFold(fold);\n else\n this.expandFold(fold);\n return fold;\n }\n var range = this.getFoldWidgetRange(row, true);\n if (range && !range.isMultiLine()) {\n fold = this.getFoldAt(range.start.row, range.start.column, 1);\n if (fold && range.isEqual(fold.range)) {\n this.removeFold(fold);\n return fold;\n }\n }\n if (options.siblings) {\n var data = this.getParentFoldRangeData(row);\n if (data.range) {\n var startRow = data.range.start.row + 1;\n var endRow = data.range.end.row;\n }\n this.foldAll(startRow, endRow, options.all ? 10000 : 0);\n }\n else if (options.children) {\n endRow = range ? range.end.row : this.getLength();\n this.foldAll(row + 1, endRow, options.all ? 10000 : 0);\n }\n else if (range) {\n if (options.all)\n range.collapseChildren = 10000;\n this.addFold(\"...\", range);\n }\n return range;\n };\n this.toggleFoldWidget = function (toggleParent) {\n var row = this.selection.getCursor().row;\n row = this.getRowFoldStart(row);\n var range = this.$toggleFoldWidget(row, {});\n if (range)\n return;\n var data = this.getParentFoldRangeData(row, true);\n range = data.range || data.firstRange;\n if (range) {\n row = range.start.row;\n var fold = this.getFoldAt(row, this.getLine(row).length, 1);\n if (fold) {\n this.removeFold(fold);\n }\n else {\n this.addFold(\"...\", range);\n }\n }\n };\n this.updateFoldWidgets = function (delta) {\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n if (len === 0) {\n this.foldWidgets[firstRow] = null;\n }\n else if (delta.action == 'remove') {\n this.foldWidgets.splice(firstRow, len + 1, null);\n }\n else {\n var args = Array(len + 1);\n args.unshift(firstRow, 1);\n this.foldWidgets.splice.apply(this.foldWidgets, args);\n }\n };\n this.tokenizerUpdateFoldWidgets = function (e) {\n var rows = e.data;\n if (rows.first != rows.last) {\n if (this.foldWidgets.length > rows.first)\n this.foldWidgets.splice(rows.first, this.foldWidgets.length);\n }\n };\n}\nexports.Folding = Folding;\n\n});\n\nace.define(\"ace/edit_session/bracket_match\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nvar Range = require(\"../range\").Range;\nfunction BracketMatch() {\n this.findMatchingBracket = function (position, chr) {\n if (position.column == 0)\n return null;\n var charBeforeCursor = chr || this.getLine(position.row).charAt(position.column - 1);\n if (charBeforeCursor == \"\")\n return null;\n var match = charBeforeCursor.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match)\n return null;\n if (match[1])\n return this.$findClosingBracket(match[1], position);\n else\n return this.$findOpeningBracket(match[2], position);\n };\n this.getBracketRange = function (pos) {\n var line = this.getLine(pos.row);\n var before = true, range;\n var chr = line.charAt(pos.column - 1);\n var match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match) {\n chr = line.charAt(pos.column);\n pos = { row: pos.row, column: pos.column + 1 };\n match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n before = false;\n }\n if (!match)\n return null;\n if (match[1]) {\n var bracketPos = this.$findClosingBracket(match[1], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(pos, bracketPos);\n if (!before) {\n range.end.column++;\n range.start.column--;\n }\n range.cursor = range.end;\n }\n else {\n var bracketPos = this.$findOpeningBracket(match[2], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(bracketPos, pos);\n if (!before) {\n range.start.column++;\n range.end.column--;\n }\n range.cursor = range.start;\n }\n return range;\n };\n this.getMatchingBracketRanges = function (pos, isBackwards) {\n var line = this.getLine(pos.row);\n var bracketsRegExp = /([\\(\\[\\{])|([\\)\\]\\}])/;\n var chr = !isBackwards && line.charAt(pos.column - 1);\n var match = chr && chr.match(bracketsRegExp);\n if (!match) {\n chr = (isBackwards === undefined || isBackwards) && line.charAt(pos.column);\n pos = {\n row: pos.row,\n column: pos.column + 1\n };\n match = chr && chr.match(bracketsRegExp);\n }\n if (!match)\n return null;\n var startRange = new Range(pos.row, pos.column - 1, pos.row, pos.column);\n var bracketPos = match[1] ? this.$findClosingBracket(match[1], pos)\n : this.$findOpeningBracket(match[2], pos);\n if (!bracketPos)\n return [startRange];\n var endRange = new Range(bracketPos.row, bracketPos.column, bracketPos.row, bracketPos.column + 1);\n return [startRange, endRange];\n };\n this.$brackets = {\n \")\": \"(\",\n \"(\": \")\",\n \"]\": \"[\",\n \"[\": \"]\",\n \"{\": \"}\",\n \"}\": \"{\",\n \"<\": \">\",\n \">\": \"<\"\n };\n this.$findOpeningBracket = function (bracket, position, typeRe) {\n var openBracket = this.$brackets[bracket];\n var depth = 1;\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n if (!typeRe) {\n typeRe = new RegExp(\"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"rparen\", \".paren\")\n .replace(/\\b(?:end)\\b/, \"(?:start|begin|end)\")\n .replace(/-close\\b/, \"-(close|open)\")\n + \")+\");\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn() - 2;\n var value = token.value;\n while (true) {\n while (valueIndex >= 0) {\n var chr = value.charAt(valueIndex);\n if (chr == openBracket) {\n depth -= 1;\n if (depth == 0) {\n return { row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn() };\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex -= 1;\n }\n do {\n token = iterator.stepBackward();\n } while (token && !typeRe.test(token.type));\n if (token == null)\n break;\n value = token.value;\n valueIndex = value.length - 1;\n }\n return null;\n };\n this.$findClosingBracket = function (bracket, position, typeRe) {\n var closingBracket = this.$brackets[bracket];\n var depth = 1;\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n if (!typeRe) {\n typeRe = new RegExp(\"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"lparen\", \".paren\")\n .replace(/\\b(?:start|begin)\\b/, \"(?:start|begin|end)\")\n .replace(/-open\\b/, \"-(close|open)\")\n + \")+\");\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn();\n while (true) {\n var value = token.value;\n var valueLength = value.length;\n while (valueIndex < valueLength) {\n var chr = value.charAt(valueIndex);\n if (chr == closingBracket) {\n depth -= 1;\n if (depth == 0) {\n return { row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn() };\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex += 1;\n }\n do {\n token = iterator.stepForward();\n } while (token && !typeRe.test(token.type));\n if (token == null)\n break;\n valueIndex = 0;\n }\n return null;\n };\n this.getMatchingTags = function (pos) {\n var iterator = new TokenIterator(this, pos.row, pos.column);\n var token = this.$findTagName(iterator);\n if (!token)\n return;\n var prevToken = iterator.stepBackward();\n if (prevToken.value === '<') {\n return this.$findClosingTag(iterator, token);\n }\n else {\n return this.$findOpeningTag(iterator, token);\n }\n };\n this.$findTagName = function (iterator) {\n var token = iterator.getCurrentToken();\n var found = false;\n var backward = false;\n if (token && token.type.indexOf('tag-name') === -1) {\n do {\n if (backward)\n token = iterator.stepBackward();\n else\n token = iterator.stepForward();\n if (token) {\n if (token.value === \"/>\") {\n backward = true;\n }\n else if (token.type.indexOf('tag-name') !== -1) {\n found = true;\n }\n }\n } while (token && !found);\n }\n return token;\n };\n this.$findClosingTag = function (iterator, token) {\n var prevToken;\n var currentTag = token.value;\n var tag = token.value;\n var depth = 0;\n var openTagStart = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1);\n token = iterator.stepForward();\n var openTagName = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + token.value.length);\n var foundOpenTagEnd = false;\n do {\n prevToken = token;\n token = iterator.stepForward();\n if (token) {\n if (token.value === '>' && !foundOpenTagEnd) {\n var openTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for `>`\n foundOpenTagEnd = true;\n }\n if (token.type.indexOf('tag-name') !== -1) {\n currentTag = token.value;\n if (tag === currentTag) {\n if (prevToken.value === '<') {\n depth++;\n }\n else if (prevToken.value === '') {\n var closeTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for >\n }\n else {\n return;\n }\n }\n }\n }\n }\n else if (tag === currentTag && token.value === '/>') { // self-closing tag\n depth--;\n if (depth < 0) { //found self-closing tag end\n var closeTagStart = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 2);\n var closeTagName = closeTagStart;\n var closeTagEnd = closeTagName;\n var openTagEnd = new Range(openTagName.end.row, openTagName.end.column, openTagName.end.row, openTagName.end.column + 1);\n }\n }\n }\n } while (token && depth >= 0);\n if (openTagStart && openTagEnd && closeTagStart && closeTagEnd && openTagName && closeTagName) {\n return {\n openTag: new Range(openTagStart.start.row, openTagStart.start.column, openTagEnd.end.row, openTagEnd.end.column),\n closeTag: new Range(closeTagStart.start.row, closeTagStart.start.column, closeTagEnd.end.row, closeTagEnd.end.column),\n openTagName: openTagName,\n closeTagName: closeTagName\n };\n }\n };\n this.$findOpeningTag = function (iterator, token) {\n var prevToken = iterator.getCurrentToken();\n var tag = token.value;\n var depth = 0;\n var startRow = iterator.getCurrentTokenRow();\n var startColumn = iterator.getCurrentTokenColumn();\n var endColumn = startColumn + 2;\n var closeTagStart = new Range(startRow, startColumn, startRow, endColumn); //Range for \")\n return;\n var closeTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for >\n iterator.stepBackward();\n iterator.stepBackward();\n do {\n token = prevToken;\n startRow = iterator.getCurrentTokenRow();\n startColumn = iterator.getCurrentTokenColumn();\n endColumn = startColumn + token.value.length;\n prevToken = iterator.stepBackward();\n if (token) {\n if (token.type.indexOf('tag-name') !== -1) {\n if (tag === token.value) {\n if (prevToken.value === '<') {\n depth++;\n if (depth > 0) { //found opening tag\n var openTagName = new Range(startRow, startColumn, startRow, endColumn);\n var openTagStart = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for <\n do {\n token = iterator.stepForward();\n } while (token && token.value !== '>');\n var openTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for >\n }\n }\n else if (prevToken.value === '') { // self-closing tag\n var stepCount = 0;\n var tmpToken = prevToken;\n while (tmpToken) {\n if (tmpToken.type.indexOf('tag-name') !== -1 && tmpToken.value === tag) {\n depth--;\n break;\n }\n else if (tmpToken.value === '<') {\n break;\n }\n tmpToken = iterator.stepBackward();\n stepCount++;\n }\n for (var i = 0; i < stepCount; i++) {\n iterator.stepForward();\n }\n }\n }\n } while (prevToken && depth <= 0);\n if (openTagStart && openTagEnd && closeTagStart && closeTagEnd && openTagName && closeTagName) {\n return {\n openTag: new Range(openTagStart.start.row, openTagStart.start.column, openTagEnd.end.row, openTagEnd.end.column),\n closeTag: new Range(closeTagStart.start.row, closeTagStart.start.column, closeTagEnd.end.row, closeTagEnd.end.column),\n openTagName: openTagName,\n closeTagName: closeTagName\n };\n }\n };\n}\nexports.BracketMatch = BracketMatch;\n\n});\n\nace.define(\"ace/edit_session\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/bidihandler\",\"ace/config\",\"ace/lib/event_emitter\",\"ace/selection\",\"ace/mode/text\",\"ace/range\",\"ace/document\",\"ace/background_tokenizer\",\"ace/search_highlight\",\"ace/undomanager\",\"ace/edit_session/folding\",\"ace/edit_session/bracket_match\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar lang = require(\"./lib/lang\");\nvar BidiHandler = require(\"./bidihandler\").BidiHandler;\nvar config = require(\"./config\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Selection = require(\"./selection\").Selection;\nvar TextMode = require(\"./mode/text\").Mode;\nvar Range = require(\"./range\").Range;\nvar Document = require(\"./document\").Document;\nvar BackgroundTokenizer = require(\"./background_tokenizer\").BackgroundTokenizer;\nvar SearchHighlight = require(\"./search_highlight\").SearchHighlight;\nvar UndoManager = require(\"./undomanager\").UndoManager;\nvar EditSession = /** @class */ (function () {\n function EditSession(text, mode) {\n this.$breakpoints = [];\n this.$decorations = [];\n this.$frontMarkers = {};\n this.$backMarkers = {};\n this.$markerId = 1;\n this.$undoSelect = true;\n this.$foldData = [];\n this.id = \"session\" + (++EditSession.$uid);\n this.$foldData.toString = function () {\n return this.join(\"\\n\");\n };\n this.bgTokenizer = new BackgroundTokenizer((new TextMode()).getTokenizer(), this);\n var _self = this;\n this.bgTokenizer.on(\"update\", function (e) {\n _self._signal(\"tokenizerUpdate\", e);\n });\n this.on(\"changeFold\", this.onChangeFold.bind(this));\n this.$onChange = this.onChange.bind(this);\n if (typeof text != \"object\" || !text.getLine)\n text = new Document(text);\n this.setDocument(text);\n this.selection = new Selection(this);\n this.$bidiHandler = new BidiHandler(this);\n config.resetOptions(this);\n this.setMode(mode);\n config._signal(\"session\", this);\n this.destroyed = false;\n }\n EditSession.prototype.setDocument = function (doc) {\n if (this.doc)\n this.doc.off(\"change\", this.$onChange);\n this.doc = doc;\n doc.on(\"change\", this.$onChange, true);\n this.bgTokenizer.setDocument(this.getDocument());\n this.resetCaches();\n };\n EditSession.prototype.getDocument = function () {\n return this.doc;\n };\n EditSession.prototype.$resetRowCache = function (docRow) {\n if (!docRow) {\n this.$docRowCache = [];\n this.$screenRowCache = [];\n return;\n }\n var l = this.$docRowCache.length;\n var i = this.$getRowCacheIndex(this.$docRowCache, docRow) + 1;\n if (l > i) {\n this.$docRowCache.splice(i, l);\n this.$screenRowCache.splice(i, l);\n }\n };\n EditSession.prototype.$getRowCacheIndex = function (cacheArray, val) {\n var low = 0;\n var hi = cacheArray.length - 1;\n while (low <= hi) {\n var mid = (low + hi) >> 1;\n var c = cacheArray[mid];\n if (val > c)\n low = mid + 1;\n else if (val < c)\n hi = mid - 1;\n else\n return mid;\n }\n return low - 1;\n };\n EditSession.prototype.resetCaches = function () {\n this.$modified = true;\n this.$wrapData = [];\n this.$rowLengthCache = [];\n this.$resetRowCache(0);\n if (!this.destroyed)\n this.bgTokenizer.start(0);\n };\n EditSession.prototype.onChangeFold = function (e) {\n var fold = e.data;\n this.$resetRowCache(fold.start.row);\n };\n EditSession.prototype.onChange = function (delta) {\n this.$modified = true;\n this.$bidiHandler.onChange(delta);\n this.$resetRowCache(delta.start.row);\n var removedFolds = this.$updateInternalDataOnChange(delta);\n if (!this.$fromUndo && this.$undoManager) {\n if (removedFolds && removedFolds.length) {\n this.$undoManager.add({\n action: \"removeFolds\",\n folds: removedFolds\n }, this.mergeUndoDeltas);\n this.mergeUndoDeltas = true;\n }\n this.$undoManager.add(delta, this.mergeUndoDeltas);\n this.mergeUndoDeltas = true;\n this.$informUndoManager.schedule();\n }\n this.bgTokenizer.$updateOnChange(delta);\n this._signal(\"change\", delta);\n };\n EditSession.prototype.setValue = function (text) {\n this.doc.setValue(text);\n this.selection.moveTo(0, 0);\n this.$resetRowCache(0);\n this.setUndoManager(this.$undoManager);\n this.getUndoManager().reset();\n };\n EditSession.fromJSON = function (session) {\n session = JSON.parse(session);\n var undoManager = new UndoManager();\n undoManager.$undoStack = session.history.undo;\n undoManager.$redoStack = session.history.redo;\n undoManager.mark = session.history.mark;\n undoManager.$rev = session.history.rev;\n var editSession = new EditSession(session.value);\n session.folds.forEach(function (fold) {\n editSession.addFold(\"...\", Range.fromPoints(fold.start, fold.end));\n });\n editSession.setAnnotations(session.annotations);\n editSession.setBreakpoints(session.breakpoints);\n editSession.setMode(session.mode);\n editSession.setScrollLeft(session.scrollLeft);\n editSession.setScrollTop(session.scrollTop);\n editSession.setUndoManager(undoManager);\n editSession.selection.fromJSON(session.selection);\n return editSession;\n };\n EditSession.prototype.toJSON = function () {\n return {\n annotations: this.$annotations,\n breakpoints: this.$breakpoints,\n folds: this.getAllFolds().map(function (fold) {\n return fold.range;\n }),\n history: this.getUndoManager(),\n mode: this.$mode.$id,\n scrollLeft: this.$scrollLeft,\n scrollTop: this.$scrollTop,\n selection: this.selection.toJSON(),\n value: this.doc.getValue()\n };\n };\n EditSession.prototype.toString = function () {\n return this.doc.getValue();\n };\n EditSession.prototype.getSelection = function () {\n return this.selection;\n };\n EditSession.prototype.getState = function (row) {\n return this.bgTokenizer.getState(row);\n };\n EditSession.prototype.getTokens = function (row) {\n return this.bgTokenizer.getTokens(row);\n };\n EditSession.prototype.getTokenAt = function (row, column) {\n var tokens = this.bgTokenizer.getTokens(row);\n var token, c = 0;\n if (column == null) {\n var i = tokens.length - 1;\n c = this.getLine(row).length;\n }\n else {\n for (var i = 0; i < tokens.length; i++) {\n c += tokens[i].value.length;\n if (c >= column)\n break;\n }\n }\n token = tokens[i];\n if (!token)\n return null;\n token.index = i;\n token.start = c - token.value.length;\n return token;\n };\n EditSession.prototype.setUndoManager = function (undoManager) {\n this.$undoManager = undoManager;\n if (this.$informUndoManager)\n this.$informUndoManager.cancel();\n if (undoManager) {\n var self = this;\n undoManager.addSession(this);\n this.$syncInformUndoManager = function () {\n self.$informUndoManager.cancel();\n self.mergeUndoDeltas = false;\n };\n this.$informUndoManager = lang.delayedCall(this.$syncInformUndoManager);\n }\n else {\n this.$syncInformUndoManager = function () { };\n }\n };\n EditSession.prototype.markUndoGroup = function () {\n if (this.$syncInformUndoManager)\n this.$syncInformUndoManager();\n };\n EditSession.prototype.getUndoManager = function () {\n return this.$undoManager || this.$defaultUndoManager;\n };\n EditSession.prototype.getTabString = function () {\n if (this.getUseSoftTabs()) {\n return lang.stringRepeat(\" \", this.getTabSize());\n }\n else {\n return \"\\t\";\n }\n };\n EditSession.prototype.setUseSoftTabs = function (val) {\n this.setOption(\"useSoftTabs\", val);\n };\n EditSession.prototype.getUseSoftTabs = function () {\n return this.$useSoftTabs && !this.$mode.$indentWithTabs;\n };\n EditSession.prototype.setTabSize = function (tabSize) {\n this.setOption(\"tabSize\", tabSize);\n };\n EditSession.prototype.getTabSize = function () {\n return this.$tabSize;\n };\n EditSession.prototype.isTabStop = function (position) {\n return this.$useSoftTabs && (position.column % this.$tabSize === 0);\n };\n EditSession.prototype.setNavigateWithinSoftTabs = function (navigateWithinSoftTabs) {\n this.setOption(\"navigateWithinSoftTabs\", navigateWithinSoftTabs);\n };\n EditSession.prototype.getNavigateWithinSoftTabs = function () {\n return this.$navigateWithinSoftTabs;\n };\n EditSession.prototype.setOverwrite = function (overwrite) {\n this.setOption(\"overwrite\", overwrite);\n };\n EditSession.prototype.getOverwrite = function () {\n return this.$overwrite;\n };\n EditSession.prototype.toggleOverwrite = function () {\n this.setOverwrite(!this.$overwrite);\n };\n EditSession.prototype.addGutterDecoration = function (row, className) {\n if (!this.$decorations[row])\n this.$decorations[row] = \"\";\n this.$decorations[row] += \" \" + className;\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.removeGutterDecoration = function (row, className) {\n this.$decorations[row] = (this.$decorations[row] || \"\").replace(\" \" + className, \"\");\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.getBreakpoints = function () {\n return this.$breakpoints;\n };\n EditSession.prototype.setBreakpoints = function (rows) {\n this.$breakpoints = [];\n for (var i = 0; i < rows.length; i++) {\n this.$breakpoints[rows[i]] = \"ace_breakpoint\";\n }\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.clearBreakpoints = function () {\n this.$breakpoints = [];\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.setBreakpoint = function (row, className) {\n if (className === undefined)\n className = \"ace_breakpoint\";\n if (className)\n this.$breakpoints[row] = className;\n else\n delete this.$breakpoints[row];\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.clearBreakpoint = function (row) {\n delete this.$breakpoints[row];\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.addMarker = function (range, clazz, type, inFront) {\n var id = this.$markerId++;\n var marker = {\n range: range,\n type: type || \"line\",\n renderer: typeof type == \"function\" ? type : null,\n clazz: clazz,\n inFront: !!inFront,\n id: id\n };\n if (inFront) {\n this.$frontMarkers[id] = marker;\n this._signal(\"changeFrontMarker\");\n }\n else {\n this.$backMarkers[id] = marker;\n this._signal(\"changeBackMarker\");\n }\n return id;\n };\n EditSession.prototype.addDynamicMarker = function (marker, inFront) {\n if (!marker.update)\n return;\n var id = this.$markerId++;\n marker.id = id;\n marker.inFront = !!inFront;\n if (inFront) {\n this.$frontMarkers[id] = marker;\n this._signal(\"changeFrontMarker\");\n }\n else {\n this.$backMarkers[id] = marker;\n this._signal(\"changeBackMarker\");\n }\n return marker;\n };\n EditSession.prototype.removeMarker = function (markerId) {\n var marker = this.$frontMarkers[markerId] || this.$backMarkers[markerId];\n if (!marker)\n return;\n var markers = marker.inFront ? this.$frontMarkers : this.$backMarkers;\n delete (markers[markerId]);\n this._signal(marker.inFront ? \"changeFrontMarker\" : \"changeBackMarker\");\n };\n EditSession.prototype.getMarkers = function (inFront) {\n return inFront ? this.$frontMarkers : this.$backMarkers;\n };\n EditSession.prototype.highlight = function (re) {\n if (!this.$searchHighlight) {\n var highlight = new SearchHighlight(null, \"ace_selected-word\", \"text\");\n this.$searchHighlight = this.addDynamicMarker(highlight);\n }\n this.$searchHighlight.setRegexp(re);\n };\n EditSession.prototype.highlightLines = function (startRow, endRow, clazz, inFront) {\n if (typeof endRow != \"number\") {\n clazz = endRow;\n endRow = startRow;\n }\n if (!clazz)\n clazz = \"ace_step\";\n var range = new Range(startRow, 0, endRow, Infinity);\n range.id = this.addMarker(range, clazz, \"fullLine\", inFront);\n return range;\n };\n EditSession.prototype.setAnnotations = function (annotations) {\n this.$annotations = annotations;\n this._signal(\"changeAnnotation\", {});\n };\n EditSession.prototype.getAnnotations = function () {\n return this.$annotations || [];\n };\n EditSession.prototype.clearAnnotations = function () {\n this.setAnnotations([]);\n };\n EditSession.prototype.$detectNewLine = function (text) {\n var match = text.match(/^.*?(\\r?\\n)/m);\n if (match) {\n this.$autoNewLine = match[1];\n }\n else {\n this.$autoNewLine = \"\\n\";\n }\n };\n EditSession.prototype.getWordRange = function (row, column) {\n var line = this.getLine(row);\n var inToken = false;\n if (column > 0)\n inToken = !!line.charAt(column - 1).match(this.tokenRe);\n if (!inToken)\n inToken = !!line.charAt(column).match(this.tokenRe);\n if (inToken)\n var re = this.tokenRe;\n else if (/^\\s+$/.test(line.slice(column - 1, column + 1)))\n var re = /\\s/;\n else\n var re = this.nonTokenRe;\n var start = column;\n if (start > 0) {\n do {\n start--;\n } while (start >= 0 && line.charAt(start).match(re));\n start++;\n }\n var end = column;\n while (end < line.length && line.charAt(end).match(re)) {\n end++;\n }\n return new Range(row, start, row, end);\n };\n EditSession.prototype.getAWordRange = function (row, column) {\n var wordRange = this.getWordRange(row, column);\n var line = this.getLine(wordRange.end.row);\n while (line.charAt(wordRange.end.column).match(/[ \\t]/)) {\n wordRange.end.column += 1;\n }\n return wordRange;\n };\n EditSession.prototype.setNewLineMode = function (newLineMode) {\n this.doc.setNewLineMode(newLineMode);\n };\n EditSession.prototype.getNewLineMode = function () {\n return this.doc.getNewLineMode();\n };\n EditSession.prototype.setUseWorker = function (useWorker) { this.setOption(\"useWorker\", useWorker); };\n EditSession.prototype.getUseWorker = function () { return this.$useWorker; };\n EditSession.prototype.onReloadTokenizer = function (e) {\n var rows = e.data;\n this.bgTokenizer.start(rows.first);\n this._signal(\"tokenizerUpdate\", e);\n };\n EditSession.prototype.setMode = function (mode, cb) {\n if (mode && typeof mode === \"object\") {\n if (mode.getTokenizer)\n return this.$onChangeMode(mode);\n var options = mode;\n var path = options.path;\n }\n else {\n path = mode || \"ace/mode/text\";\n }\n if (!this.$modes[\"ace/mode/text\"])\n this.$modes[\"ace/mode/text\"] = new TextMode();\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n cb && cb();\n return;\n }\n this.$modeId = path;\n config.loadModule([\"mode\", path], function (m) {\n if (this.$modeId !== path)\n return cb && cb();\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n }\n else if (m && m.Mode) {\n m = new m.Mode(options);\n if (!options) {\n this.$modes[path] = m;\n m.$id = path;\n }\n this.$onChangeMode(m);\n }\n cb && cb();\n }.bind(this));\n if (!this.$mode)\n this.$onChangeMode(this.$modes[\"ace/mode/text\"], true);\n };\n EditSession.prototype.$onChangeMode = function (mode, $isPlaceholder) {\n if (!$isPlaceholder)\n this.$modeId = mode.$id;\n if (this.$mode === mode)\n return;\n var oldMode = this.$mode;\n this.$mode = mode;\n this.$stopWorker();\n if (this.$useWorker)\n this.$startWorker();\n var tokenizer = mode.getTokenizer();\n if (tokenizer.on !== undefined) {\n var onReloadTokenizer = this.onReloadTokenizer.bind(this);\n tokenizer.on(\"update\", onReloadTokenizer);\n }\n this.bgTokenizer.setTokenizer(tokenizer);\n this.bgTokenizer.setDocument(this.getDocument());\n this.tokenRe = mode.tokenRe;\n this.nonTokenRe = mode.nonTokenRe;\n if (!$isPlaceholder) {\n if (mode.attachToSession)\n mode.attachToSession(this);\n this.$options.wrapMethod.set.call(this, this.$wrapMethod);\n this.$setFolding(mode.foldingRules);\n this.bgTokenizer.start(0);\n this._emit(\"changeMode\", { oldMode: oldMode, mode: mode });\n }\n };\n EditSession.prototype.$stopWorker = function () {\n if (this.$worker) {\n this.$worker.terminate();\n this.$worker = null;\n }\n };\n EditSession.prototype.$startWorker = function () {\n try {\n this.$worker = this.$mode.createWorker(this);\n }\n catch (e) {\n config.warn(\"Could not load worker\", e);\n this.$worker = null;\n }\n };\n EditSession.prototype.getMode = function () {\n return this.$mode;\n };\n EditSession.prototype.setScrollTop = function (scrollTop) {\n if (this.$scrollTop === scrollTop || isNaN(scrollTop))\n return;\n this.$scrollTop = scrollTop;\n this._signal(\"changeScrollTop\", scrollTop);\n };\n EditSession.prototype.getScrollTop = function () {\n return this.$scrollTop;\n };\n EditSession.prototype.setScrollLeft = function (scrollLeft) {\n if (this.$scrollLeft === scrollLeft || isNaN(scrollLeft))\n return;\n this.$scrollLeft = scrollLeft;\n this._signal(\"changeScrollLeft\", scrollLeft);\n };\n EditSession.prototype.getScrollLeft = function () {\n return this.$scrollLeft;\n };\n EditSession.prototype.getScreenWidth = function () {\n this.$computeWidth();\n if (this.lineWidgets)\n return Math.max(this.getLineWidgetMaxWidth(), this.screenWidth);\n return this.screenWidth;\n };\n EditSession.prototype.getLineWidgetMaxWidth = function () {\n if (this.lineWidgetsWidth != null)\n return this.lineWidgetsWidth;\n var width = 0;\n this.lineWidgets.forEach(function (w) {\n if (w && w.screenWidth > width)\n width = w.screenWidth;\n });\n return this.lineWidgetWidth = width;\n };\n EditSession.prototype.$computeWidth = function (force) {\n if (this.$modified || force) {\n this.$modified = false;\n if (this.$useWrapMode)\n return this.screenWidth = this.$wrapLimit;\n var lines = this.doc.getAllLines();\n var cache = this.$rowLengthCache;\n var longestScreenLine = 0;\n var foldIndex = 0;\n var foldLine = this.$foldData[foldIndex];\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n var len = lines.length;\n for (var i = 0; i < len; i++) {\n if (i > foldStart) {\n i = foldLine.end.row + 1;\n if (i >= len)\n break;\n foldLine = this.$foldData[foldIndex++];\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (cache[i] == null)\n cache[i] = this.$getStringScreenWidth(lines[i])[0];\n if (cache[i] > longestScreenLine)\n longestScreenLine = cache[i];\n }\n this.screenWidth = longestScreenLine;\n }\n };\n EditSession.prototype.getLine = function (row) {\n return this.doc.getLine(row);\n };\n EditSession.prototype.getLines = function (firstRow, lastRow) {\n return this.doc.getLines(firstRow, lastRow);\n };\n EditSession.prototype.getLength = function () {\n return this.doc.getLength();\n };\n EditSession.prototype.getTextRange = function (range) {\n return this.doc.getTextRange(range || this.selection.getRange());\n };\n EditSession.prototype.insert = function (position, text) {\n return this.doc.insert(position, text);\n };\n EditSession.prototype.remove = function (range) {\n return this.doc.remove(range);\n };\n EditSession.prototype.removeFullLines = function (firstRow, lastRow) {\n return this.doc.removeFullLines(firstRow, lastRow);\n };\n EditSession.prototype.undoChanges = function (deltas, dontSelect) {\n if (!deltas.length)\n return;\n this.$fromUndo = true;\n for (var i = deltas.length - 1; i != -1; i--) {\n var delta = deltas[i];\n if (delta.action == \"insert\" || delta.action == \"remove\") {\n this.doc.revertDelta(delta);\n }\n else if (delta.folds) {\n this.addFolds(delta.folds);\n }\n }\n if (!dontSelect && this.$undoSelect) {\n if (deltas.selectionBefore)\n this.selection.fromJSON(deltas.selectionBefore);\n else\n this.selection.setRange(this.$getUndoSelection(deltas, true));\n }\n this.$fromUndo = false;\n };\n EditSession.prototype.redoChanges = function (deltas, dontSelect) {\n if (!deltas.length)\n return;\n this.$fromUndo = true;\n for (var i = 0; i < deltas.length; i++) {\n var delta = deltas[i];\n if (delta.action == \"insert\" || delta.action == \"remove\") {\n this.doc.$safeApplyDelta(delta);\n }\n }\n if (!dontSelect && this.$undoSelect) {\n if (deltas.selectionAfter)\n this.selection.fromJSON(deltas.selectionAfter);\n else\n this.selection.setRange(this.$getUndoSelection(deltas, false));\n }\n this.$fromUndo = false;\n };\n EditSession.prototype.setUndoSelect = function (enable) {\n this.$undoSelect = enable;\n };\n EditSession.prototype.$getUndoSelection = function (deltas, isUndo) {\n function isInsert(delta) {\n return isUndo ? delta.action !== \"insert\" : delta.action === \"insert\";\n }\n var range, point;\n for (var i = 0; i < deltas.length; i++) {\n var delta = deltas[i];\n if (!delta.start)\n continue; // skip folds\n if (!range) {\n if (isInsert(delta)) {\n range = Range.fromPoints(delta.start, delta.end);\n }\n else {\n range = Range.fromPoints(delta.start, delta.start);\n }\n continue;\n }\n if (isInsert(delta)) {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range.setStart(point);\n }\n point = delta.end;\n if (range.compare(point.row, point.column) == 1) {\n range.setEnd(point);\n }\n }\n else {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range = Range.fromPoints(delta.start, delta.start);\n }\n }\n }\n return range;\n };\n EditSession.prototype.replace = function (range, text) {\n return this.doc.replace(range, text);\n };\n EditSession.prototype.moveText = function (fromRange, toPosition, copy) {\n var text = this.getTextRange(fromRange);\n var folds = this.getFoldsInRange(fromRange);\n var toRange = Range.fromPoints(toPosition, toPosition);\n if (!copy) {\n this.remove(fromRange);\n var rowDiff = fromRange.start.row - fromRange.end.row;\n var collDiff = rowDiff ? -fromRange.end.column : fromRange.start.column - fromRange.end.column;\n if (collDiff) {\n if (toRange.start.row == fromRange.end.row && toRange.start.column > fromRange.end.column)\n toRange.start.column += collDiff;\n if (toRange.end.row == fromRange.end.row && toRange.end.column > fromRange.end.column)\n toRange.end.column += collDiff;\n }\n if (rowDiff && toRange.start.row >= fromRange.end.row) {\n toRange.start.row += rowDiff;\n toRange.end.row += rowDiff;\n }\n }\n toRange.end = this.insert(toRange.start, text);\n if (folds.length) {\n var oldStart = fromRange.start;\n var newStart = toRange.start;\n var rowDiff = newStart.row - oldStart.row;\n var collDiff = newStart.column - oldStart.column;\n this.addFolds(folds.map(function (x) {\n x = x.clone();\n if (x.start.row == oldStart.row)\n x.start.column += collDiff;\n if (x.end.row == oldStart.row)\n x.end.column += collDiff;\n x.start.row += rowDiff;\n x.end.row += rowDiff;\n return x;\n }));\n }\n return toRange;\n };\n EditSession.prototype.indentRows = function (startRow, endRow, indentString) {\n indentString = indentString.replace(/\\t/g, this.getTabString());\n for (var row = startRow; row <= endRow; row++)\n this.doc.insertInLine({ row: row, column: 0 }, indentString);\n };\n EditSession.prototype.outdentRows = function (range) {\n var rowRange = range.collapseRows();\n var deleteRange = new Range(0, 0, 0, 0);\n var size = this.getTabSize();\n for (var i = rowRange.start.row; i <= rowRange.end.row; ++i) {\n var line = this.getLine(i);\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n for (var j = 0; j < size; ++j)\n if (line.charAt(j) != ' ')\n break;\n if (j < size && line.charAt(j) == '\\t') {\n deleteRange.start.column = j;\n deleteRange.end.column = j + 1;\n }\n else {\n deleteRange.start.column = 0;\n deleteRange.end.column = j;\n }\n this.remove(deleteRange);\n }\n };\n EditSession.prototype.$moveLines = function (firstRow, lastRow, dir) {\n firstRow = this.getRowFoldStart(firstRow);\n lastRow = this.getRowFoldEnd(lastRow);\n if (dir < 0) {\n var row = this.getRowFoldStart(firstRow + dir);\n if (row < 0)\n return 0;\n var diff = row - firstRow;\n }\n else if (dir > 0) {\n var row = this.getRowFoldEnd(lastRow + dir);\n if (row > this.doc.getLength() - 1)\n return 0;\n var diff = row - lastRow;\n }\n else {\n firstRow = this.$clipRowToDocument(firstRow);\n lastRow = this.$clipRowToDocument(lastRow);\n var diff = lastRow - firstRow + 1;\n }\n var range = new Range(firstRow, 0, lastRow, Number.MAX_VALUE);\n var folds = this.getFoldsInRange(range).map(function (x) {\n x = x.clone();\n x.start.row += diff;\n x.end.row += diff;\n return x;\n });\n var lines = dir == 0\n ? this.doc.getLines(firstRow, lastRow)\n : this.doc.removeFullLines(firstRow, lastRow);\n this.doc.insertFullLines(firstRow + diff, lines);\n folds.length && this.addFolds(folds);\n return diff;\n };\n EditSession.prototype.moveLinesUp = function (firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, -1);\n };\n EditSession.prototype.moveLinesDown = function (firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 1);\n };\n EditSession.prototype.duplicateLines = function (firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 0);\n };\n EditSession.prototype.$clipRowToDocument = function (row) {\n return Math.max(0, Math.min(row, this.doc.getLength() - 1));\n };\n EditSession.prototype.$clipColumnToRow = function (row, column) {\n if (column < 0)\n return 0;\n return Math.min(this.doc.getLine(row).length, column);\n };\n EditSession.prototype.$clipPositionToDocument = function (row, column) {\n column = Math.max(0, column);\n if (row < 0) {\n row = 0;\n column = 0;\n }\n else {\n var len = this.doc.getLength();\n if (row >= len) {\n row = len - 1;\n column = this.doc.getLine(len - 1).length;\n }\n else {\n column = Math.min(this.doc.getLine(row).length, column);\n }\n }\n return {\n row: row,\n column: column\n };\n };\n EditSession.prototype.$clipRangeToDocument = function (range) {\n if (range.start.row < 0) {\n range.start.row = 0;\n range.start.column = 0;\n }\n else {\n range.start.column = this.$clipColumnToRow(range.start.row, range.start.column);\n }\n var len = this.doc.getLength() - 1;\n if (range.end.row > len) {\n range.end.row = len;\n range.end.column = this.doc.getLine(len).length;\n }\n else {\n range.end.column = this.$clipColumnToRow(range.end.row, range.end.column);\n }\n return range;\n };\n EditSession.prototype.setUseWrapMode = function (useWrapMode) {\n if (useWrapMode != this.$useWrapMode) {\n this.$useWrapMode = useWrapMode;\n this.$modified = true;\n this.$resetRowCache(0);\n if (useWrapMode) {\n var len = this.getLength();\n this.$wrapData = Array(len);\n this.$updateWrapData(0, len - 1);\n }\n this._signal(\"changeWrapMode\");\n }\n };\n EditSession.prototype.getUseWrapMode = function () {\n return this.$useWrapMode;\n };\n EditSession.prototype.setWrapLimitRange = function (min, max) {\n if (this.$wrapLimitRange.min !== min || this.$wrapLimitRange.max !== max) {\n this.$wrapLimitRange = { min: min, max: max };\n this.$modified = true;\n this.$bidiHandler.markAsDirty();\n if (this.$useWrapMode)\n this._signal(\"changeWrapMode\");\n }\n };\n EditSession.prototype.adjustWrapLimit = function (desiredLimit, $printMargin) {\n var limits = this.$wrapLimitRange;\n if (limits.max < 0)\n limits = { min: $printMargin, max: $printMargin };\n var wrapLimit = this.$constrainWrapLimit(desiredLimit, limits.min, limits.max);\n if (wrapLimit != this.$wrapLimit && wrapLimit > 1) {\n this.$wrapLimit = wrapLimit;\n this.$modified = true;\n if (this.$useWrapMode) {\n this.$updateWrapData(0, this.getLength() - 1);\n this.$resetRowCache(0);\n this._signal(\"changeWrapLimit\");\n }\n return true;\n }\n return false;\n };\n EditSession.prototype.$constrainWrapLimit = function (wrapLimit, min, max) {\n if (min)\n wrapLimit = Math.max(min, wrapLimit);\n if (max)\n wrapLimit = Math.min(max, wrapLimit);\n return wrapLimit;\n };\n EditSession.prototype.getWrapLimit = function () {\n return this.$wrapLimit;\n };\n EditSession.prototype.setWrapLimit = function (limit) {\n this.setWrapLimitRange(limit, limit);\n };\n EditSession.prototype.getWrapLimitRange = function () {\n return {\n min: this.$wrapLimitRange.min,\n max: this.$wrapLimitRange.max\n };\n };\n EditSession.prototype.$updateInternalDataOnChange = function (delta) {\n var useWrapMode = this.$useWrapMode;\n var action = delta.action;\n var start = delta.start;\n var end = delta.end;\n var firstRow = start.row;\n var lastRow = end.row;\n var len = lastRow - firstRow;\n var removedFolds = null;\n this.$updating = true;\n if (len != 0) {\n if (action === \"remove\") {\n this[useWrapMode ? \"$wrapData\" : \"$rowLengthCache\"].splice(firstRow, len);\n var foldLines = this.$foldData;\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n var foldLine = this.getFoldLine(end.row);\n var idx = 0;\n if (foldLine) {\n foldLine.addRemoveChars(end.row, end.column, start.column - end.column);\n foldLine.shiftRow(-len);\n var foldLineBefore = this.getFoldLine(firstRow);\n if (foldLineBefore && foldLineBefore !== foldLine) {\n foldLineBefore.merge(foldLine);\n foldLine = foldLineBefore;\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= end.row) {\n foldLine.shiftRow(-len);\n }\n }\n lastRow = firstRow;\n }\n else {\n var args = Array(len);\n args.unshift(firstRow, 0);\n var arr = useWrapMode ? this.$wrapData : this.$rowLengthCache;\n arr.splice.apply(arr, args);\n var foldLines = this.$foldData;\n var foldLine = this.getFoldLine(firstRow);\n var idx = 0;\n if (foldLine) {\n var cmp = foldLine.range.compareInside(start.row, start.column);\n if (cmp == 0) {\n foldLine = foldLine.split(start.row, start.column);\n if (foldLine) {\n foldLine.shiftRow(len);\n foldLine.addRemoveChars(lastRow, 0, end.column - start.column);\n }\n }\n else \n if (cmp == -1) {\n foldLine.addRemoveChars(firstRow, 0, end.column - start.column);\n foldLine.shiftRow(len);\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= firstRow) {\n foldLine.shiftRow(len);\n }\n }\n }\n }\n else {\n len = Math.abs(delta.start.column - delta.end.column);\n if (action === \"remove\") {\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n len = -len;\n }\n var foldLine = this.getFoldLine(firstRow);\n if (foldLine) {\n foldLine.addRemoveChars(firstRow, start.column, len);\n }\n }\n if (useWrapMode && this.$wrapData.length != this.doc.getLength()) {\n console.error(\"doc.getLength() and $wrapData.length have to be the same!\");\n }\n this.$updating = false;\n if (useWrapMode)\n this.$updateWrapData(firstRow, lastRow);\n else\n this.$updateRowLengthCache(firstRow, lastRow);\n return removedFolds;\n };\n EditSession.prototype.$updateRowLengthCache = function (firstRow, lastRow, b) {\n this.$rowLengthCache[firstRow] = null;\n this.$rowLengthCache[lastRow] = null;\n };\n EditSession.prototype.$updateWrapData = function (firstRow, lastRow) {\n var lines = this.doc.getAllLines();\n var tabSize = this.getTabSize();\n var wrapData = this.$wrapData;\n var wrapLimit = this.$wrapLimit;\n var tokens;\n var foldLine;\n var row = firstRow;\n lastRow = Math.min(lastRow, lines.length - 1);\n while (row <= lastRow) {\n foldLine = this.getFoldLine(row, foldLine);\n if (!foldLine) {\n tokens = this.$getDisplayTokens(lines[row]);\n wrapData[row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row++;\n }\n else {\n tokens = [];\n foldLine.walk(function (placeholder, row, column, lastColumn) {\n var walkTokens;\n if (placeholder != null) {\n walkTokens = this.$getDisplayTokens(placeholder, tokens.length);\n walkTokens[0] = PLACEHOLDER_START;\n for (var i = 1; i < walkTokens.length; i++) {\n walkTokens[i] = PLACEHOLDER_BODY;\n }\n }\n else {\n walkTokens = this.$getDisplayTokens(lines[row].substring(lastColumn, column), tokens.length);\n }\n tokens = tokens.concat(walkTokens);\n }.bind(this), foldLine.end.row, lines[foldLine.end.row].length + 1);\n wrapData[foldLine.start.row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row = foldLine.end.row + 1;\n }\n }\n };\n EditSession.prototype.$computeWrapSplits = function (tokens, wrapLimit, tabSize) {\n if (tokens.length == 0) {\n return [];\n }\n var splits = [];\n var displayLength = tokens.length;\n var lastSplit = 0, lastDocSplit = 0;\n var isCode = this.$wrapAsCode;\n var indentedSoftWrap = this.$indentedSoftWrap;\n var maxIndent = wrapLimit <= Math.max(2 * tabSize, 8)\n || indentedSoftWrap === false ? 0 : Math.floor(wrapLimit / 2);\n function getWrapIndent() {\n var indentation = 0;\n if (maxIndent === 0)\n return indentation;\n if (indentedSoftWrap) {\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (token == SPACE)\n indentation += 1;\n else if (token == TAB)\n indentation += tabSize;\n else if (token == TAB_SPACE)\n continue;\n else\n break;\n }\n }\n if (isCode && indentedSoftWrap !== false)\n indentation += tabSize;\n return Math.min(indentation, maxIndent);\n }\n function addSplit(screenPos) {\n var len = screenPos - lastSplit;\n for (var i = lastSplit; i < screenPos; i++) {\n var ch = tokens[i];\n if (ch === 12 || ch === 2)\n len -= 1;\n }\n if (!splits.length) {\n indent = getWrapIndent();\n splits.indent = indent;\n }\n lastDocSplit += len;\n splits.push(lastDocSplit);\n lastSplit = screenPos;\n }\n var indent = 0;\n while (displayLength - lastSplit > wrapLimit - indent) {\n var split = lastSplit + wrapLimit - indent;\n if (tokens[split - 1] >= SPACE && tokens[split] >= SPACE) {\n addSplit(split);\n continue;\n }\n if (tokens[split] == PLACEHOLDER_START || tokens[split] == PLACEHOLDER_BODY) {\n for (split; split != lastSplit - 1; split--) {\n if (tokens[split] == PLACEHOLDER_START) {\n break;\n }\n }\n if (split > lastSplit) {\n addSplit(split);\n continue;\n }\n split = lastSplit + wrapLimit;\n for (split; split < tokens.length; split++) {\n if (tokens[split] != PLACEHOLDER_BODY) {\n break;\n }\n }\n if (split == tokens.length) {\n break; // Breaks the while-loop.\n }\n addSplit(split);\n continue;\n }\n var minSplit = Math.max(split - (wrapLimit - (wrapLimit >> 2)), lastSplit - 1);\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split--;\n }\n if (isCode) {\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split--;\n }\n while (split > minSplit && tokens[split] == PUNCTUATION) {\n split--;\n }\n }\n else {\n while (split > minSplit && tokens[split] < SPACE) {\n split--;\n }\n }\n if (split > minSplit) {\n addSplit(++split);\n continue;\n }\n split = lastSplit + wrapLimit;\n if (tokens[split] == CHAR_EXT)\n split--;\n addSplit(split - indent);\n }\n return splits;\n };\n EditSession.prototype.$getDisplayTokens = function (str, offset) {\n var arr = [];\n var tabSize;\n offset = offset || 0;\n for (var i = 0; i < str.length; i++) {\n var c = str.charCodeAt(i);\n if (c == 9) {\n tabSize = this.getScreenTabSize(arr.length + offset);\n arr.push(TAB);\n for (var n = 1; n < tabSize; n++) {\n arr.push(TAB_SPACE);\n }\n }\n else if (c == 32) {\n arr.push(SPACE);\n }\n else if ((c > 39 && c < 48) || (c > 57 && c < 64)) {\n arr.push(PUNCTUATION);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n arr.push(CHAR, CHAR_EXT);\n }\n else {\n arr.push(CHAR);\n }\n }\n return arr;\n };\n EditSession.prototype.$getStringScreenWidth = function (str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn == 0)\n return [0, 0];\n if (maxScreenColumn == null)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charCodeAt(column);\n if (c == 9) {\n screenColumn += this.getScreenTabSize(screenColumn);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n screenColumn += 2;\n }\n else {\n screenColumn += 1;\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n return [screenColumn, column];\n };\n EditSession.prototype.getRowLength = function (row) {\n var h = 1;\n if (this.lineWidgets)\n h += this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n if (!this.$useWrapMode || !this.$wrapData[row])\n return h;\n else\n return this.$wrapData[row].length + h;\n };\n EditSession.prototype.getRowLineCount = function (row) {\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1;\n }\n else {\n return this.$wrapData[row].length + 1;\n }\n };\n EditSession.prototype.getRowWrapIndent = function (screenRow) {\n if (this.$useWrapMode) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n var splits = this.$wrapData[pos.row];\n return splits.length && splits[0] < pos.column ? splits.indent : 0;\n }\n else {\n return 0;\n }\n };\n EditSession.prototype.getScreenLastRowColumn = function (screenRow) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n return this.documentToScreenColumn(pos.row, pos.column);\n };\n EditSession.prototype.getDocumentLastRowColumn = function (docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.getScreenLastRowColumn(screenRow);\n };\n EditSession.prototype.getDocumentLastRowColumnPosition = function (docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.screenToDocumentPosition(screenRow, Number.MAX_VALUE / 10);\n };\n EditSession.prototype.getRowSplitData = function (row) {\n if (!this.$useWrapMode) {\n return undefined;\n }\n else {\n return this.$wrapData[row];\n }\n };\n EditSession.prototype.getScreenTabSize = function (screenColumn) {\n return this.$tabSize - (screenColumn % this.$tabSize | 0);\n };\n EditSession.prototype.screenToDocumentRow = function (screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).row;\n };\n EditSession.prototype.screenToDocumentColumn = function (screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).column;\n };\n EditSession.prototype.screenToDocumentPosition = function (screenRow, screenColumn, offsetX) {\n if (screenRow < 0)\n return { row: 0, column: 0 };\n var line;\n var docRow = 0;\n var docColumn = 0;\n var column;\n var row = 0;\n var rowLength = 0;\n var rowCache = this.$screenRowCache;\n var i = this.$getRowCacheIndex(rowCache, screenRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var docRow = this.$docRowCache[i];\n var doCache = screenRow > rowCache[l - 1];\n }\n else {\n var doCache = !l;\n }\n var maxRow = this.getLength() - 1;\n var foldLine = this.getNextFoldLine(docRow);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (row <= screenRow) {\n rowLength = this.getRowLength(docRow);\n if (row + rowLength > screenRow || docRow >= maxRow) {\n break;\n }\n else {\n row += rowLength;\n docRow++;\n if (docRow > foldStart) {\n docRow = foldLine.end.row + 1;\n foldLine = this.getNextFoldLine(docRow, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n }\n if (doCache) {\n this.$docRowCache.push(docRow);\n this.$screenRowCache.push(row);\n }\n }\n if (foldLine && foldLine.start.row <= docRow) {\n line = this.getFoldDisplayLine(foldLine);\n docRow = foldLine.start.row;\n }\n else if (row + rowLength <= screenRow || docRow > maxRow) {\n return {\n row: maxRow,\n column: this.getLine(maxRow).length\n };\n }\n else {\n line = this.getLine(docRow);\n foldLine = null;\n }\n var wrapIndent = 0, splitIndex = Math.floor(screenRow - row);\n if (this.$useWrapMode) {\n var splits = this.$wrapData[docRow];\n if (splits) {\n column = splits[splitIndex];\n if (splitIndex > 0 && splits.length) {\n wrapIndent = splits.indent;\n docColumn = splits[splitIndex - 1] || splits[splits.length - 1];\n line = line.substring(docColumn);\n }\n }\n }\n if (offsetX !== undefined && this.$bidiHandler.isBidiRow(row + splitIndex, docRow, splitIndex))\n screenColumn = this.$bidiHandler.offsetToCol(offsetX);\n docColumn += this.$getStringScreenWidth(line, screenColumn - wrapIndent)[1];\n if (this.$useWrapMode && docColumn >= column)\n docColumn = column - 1;\n if (foldLine)\n return foldLine.idxToPosition(docColumn);\n return { row: docRow, column: docColumn };\n };\n EditSession.prototype.documentToScreenPosition = function (docRow, docColumn) {\n if (typeof docColumn === \"undefined\")\n var pos = this.$clipPositionToDocument(docRow.row, docRow.column);\n else\n pos = this.$clipPositionToDocument(docRow, docColumn);\n docRow = pos.row;\n docColumn = pos.column;\n var screenRow = 0;\n var foldStartRow = null;\n var fold = null;\n fold = this.getFoldAt(docRow, docColumn, 1);\n if (fold) {\n docRow = fold.start.row;\n docColumn = fold.start.column;\n }\n var rowEnd, row = 0;\n var rowCache = this.$docRowCache;\n var i = this.$getRowCacheIndex(rowCache, docRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var screenRow = this.$screenRowCache[i];\n var doCache = docRow > rowCache[l - 1];\n }\n else {\n var doCache = !l;\n }\n var foldLine = this.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (row < docRow) {\n if (row >= foldStart) {\n rowEnd = foldLine.end.row + 1;\n if (rowEnd > docRow)\n break;\n foldLine = this.getNextFoldLine(rowEnd, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n else {\n rowEnd = row + 1;\n }\n screenRow += this.getRowLength(row);\n row = rowEnd;\n if (doCache) {\n this.$docRowCache.push(row);\n this.$screenRowCache.push(screenRow);\n }\n }\n var textLine = \"\";\n if (foldLine && row >= foldStart) {\n textLine = this.getFoldDisplayLine(foldLine, docRow, docColumn);\n foldStartRow = foldLine.start.row;\n }\n else {\n textLine = this.getLine(docRow).substring(0, docColumn);\n foldStartRow = docRow;\n }\n var wrapIndent = 0;\n if (this.$useWrapMode) {\n var wrapRow = this.$wrapData[foldStartRow];\n if (wrapRow) {\n var screenRowOffset = 0;\n while (textLine.length >= wrapRow[screenRowOffset]) {\n screenRow++;\n screenRowOffset++;\n }\n textLine = textLine.substring(wrapRow[screenRowOffset - 1] || 0, textLine.length);\n wrapIndent = screenRowOffset > 0 ? wrapRow.indent : 0;\n }\n }\n if (this.lineWidgets && this.lineWidgets[row] && this.lineWidgets[row].rowsAbove)\n screenRow += this.lineWidgets[row].rowsAbove;\n return {\n row: screenRow,\n column: wrapIndent + this.$getStringScreenWidth(textLine)[0]\n };\n };\n EditSession.prototype.documentToScreenColumn = function (row, docColumn) {\n return this.documentToScreenPosition(row, docColumn).column;\n };\n EditSession.prototype.documentToScreenRow = function (docRow, docColumn) {\n return this.documentToScreenPosition(docRow, docColumn).row;\n };\n EditSession.prototype.getScreenLength = function () {\n var screenRows = 0;\n var fold = null;\n if (!this.$useWrapMode) {\n screenRows = this.getLength();\n var foldData = this.$foldData;\n for (var i = 0; i < foldData.length; i++) {\n fold = foldData[i];\n screenRows -= fold.end.row - fold.start.row;\n }\n }\n else {\n var lastRow = this.$wrapData.length;\n var row = 0, i = 0;\n var fold = this.$foldData[i++];\n var foldStart = fold ? fold.start.row : Infinity;\n while (row < lastRow) {\n var splits = this.$wrapData[row];\n screenRows += splits ? splits.length + 1 : 1;\n row++;\n if (row > foldStart) {\n row = fold.end.row + 1;\n fold = this.$foldData[i++];\n foldStart = fold ? fold.start.row : Infinity;\n }\n }\n }\n if (this.lineWidgets)\n screenRows += this.$getWidgetScreenLength();\n return screenRows;\n };\n EditSession.prototype.$setFontMetrics = function (fm) {\n if (!this.$enableVarChar)\n return;\n this.$getStringScreenWidth = function (str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn === 0)\n return [0, 0];\n if (!maxScreenColumn)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charAt(column);\n if (c === \"\\t\") {\n screenColumn += this.getScreenTabSize(screenColumn);\n }\n else {\n screenColumn += fm.getCharacterWidth(c);\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n return [screenColumn, column];\n };\n };\n EditSession.prototype.destroy = function () {\n if (!this.destroyed) {\n this.bgTokenizer.setDocument(null);\n this.bgTokenizer.cleanup();\n this.destroyed = true;\n }\n this.$stopWorker();\n this.removeAllListeners();\n if (this.doc) {\n this.doc.off(\"change\", this.$onChange);\n }\n this.selection.detach();\n };\n return EditSession;\n}());\nEditSession.$uid = 0;\nEditSession.prototype.$modes = config.$modes;\nEditSession.prototype.getValue = EditSession.prototype.toString;\nEditSession.prototype.$defaultUndoManager = {\n undo: function () { },\n redo: function () { },\n hasUndo: function () { },\n hasRedo: function () { },\n reset: function () { },\n add: function () { },\n addSelection: function () { },\n startNewGroup: function () { },\n addSession: function () { }\n};\nEditSession.prototype.$overwrite = false;\nEditSession.prototype.$mode = null;\nEditSession.prototype.$modeId = null;\nEditSession.prototype.$scrollTop = 0;\nEditSession.prototype.$scrollLeft = 0;\nEditSession.prototype.$wrapLimit = 80;\nEditSession.prototype.$useWrapMode = false;\nEditSession.prototype.$wrapLimitRange = {\n min: null,\n max: null\n};\nEditSession.prototype.lineWidgets = null;\nEditSession.prototype.isFullWidth = isFullWidth;\noop.implement(EditSession.prototype, EventEmitter);\nvar CHAR = 1, CHAR_EXT = 2, PLACEHOLDER_START = 3, PLACEHOLDER_BODY = 4, PUNCTUATION = 9, SPACE = 10, TAB = 11, TAB_SPACE = 12;\nfunction isFullWidth(c) {\n if (c < 0x1100)\n return false;\n return c >= 0x1100 && c <= 0x115F ||\n c >= 0x11A3 && c <= 0x11A7 ||\n c >= 0x11FA && c <= 0x11FF ||\n c >= 0x2329 && c <= 0x232A ||\n c >= 0x2E80 && c <= 0x2E99 ||\n c >= 0x2E9B && c <= 0x2EF3 ||\n c >= 0x2F00 && c <= 0x2FD5 ||\n c >= 0x2FF0 && c <= 0x2FFB ||\n c >= 0x3000 && c <= 0x303E ||\n c >= 0x3041 && c <= 0x3096 ||\n c >= 0x3099 && c <= 0x30FF ||\n c >= 0x3105 && c <= 0x312D ||\n c >= 0x3131 && c <= 0x318E ||\n c >= 0x3190 && c <= 0x31BA ||\n c >= 0x31C0 && c <= 0x31E3 ||\n c >= 0x31F0 && c <= 0x321E ||\n c >= 0x3220 && c <= 0x3247 ||\n c >= 0x3250 && c <= 0x32FE ||\n c >= 0x3300 && c <= 0x4DBF ||\n c >= 0x4E00 && c <= 0xA48C ||\n c >= 0xA490 && c <= 0xA4C6 ||\n c >= 0xA960 && c <= 0xA97C ||\n c >= 0xAC00 && c <= 0xD7A3 ||\n c >= 0xD7B0 && c <= 0xD7C6 ||\n c >= 0xD7CB && c <= 0xD7FB ||\n c >= 0xF900 && c <= 0xFAFF ||\n c >= 0xFE10 && c <= 0xFE19 ||\n c >= 0xFE30 && c <= 0xFE52 ||\n c >= 0xFE54 && c <= 0xFE66 ||\n c >= 0xFE68 && c <= 0xFE6B ||\n c >= 0xFF01 && c <= 0xFF60 ||\n c >= 0xFFE0 && c <= 0xFFE6;\n}\nrequire(\"./edit_session/folding\").Folding.call(EditSession.prototype);\nrequire(\"./edit_session/bracket_match\").BracketMatch.call(EditSession.prototype);\nconfig.defineOptions(EditSession.prototype, \"session\", {\n wrap: {\n set: function (value) {\n if (!value || value == \"off\")\n value = false;\n else if (value == \"free\")\n value = true;\n else if (value == \"printMargin\")\n value = -1;\n else if (typeof value == \"string\")\n value = parseInt(value, 10) || false;\n if (this.$wrap == value)\n return;\n this.$wrap = value;\n if (!value) {\n this.setUseWrapMode(false);\n }\n else {\n var col = typeof value == \"number\" ? value : null;\n this.setWrapLimitRange(col, col);\n this.setUseWrapMode(true);\n }\n },\n get: function () {\n if (this.getUseWrapMode()) {\n if (this.$wrap == -1)\n return \"printMargin\";\n if (!this.getWrapLimitRange().min)\n return \"free\";\n return this.$wrap;\n }\n return \"off\";\n },\n handlesSet: true\n },\n wrapMethod: {\n set: function (val) {\n val = val == \"auto\"\n ? this.$mode.type != \"text\"\n : val != \"text\";\n if (val != this.$wrapAsCode) {\n this.$wrapAsCode = val;\n if (this.$useWrapMode) {\n this.$useWrapMode = false;\n this.setUseWrapMode(true);\n }\n }\n },\n initialValue: \"auto\"\n },\n indentedSoftWrap: {\n set: function () {\n if (this.$useWrapMode) {\n this.$useWrapMode = false;\n this.setUseWrapMode(true);\n }\n },\n initialValue: true\n },\n firstLineNumber: {\n set: function () { this._signal(\"changeBreakpoint\"); },\n initialValue: 1\n },\n useWorker: {\n set: function (useWorker) {\n this.$useWorker = useWorker;\n this.$stopWorker();\n if (useWorker)\n this.$startWorker();\n },\n initialValue: true\n },\n useSoftTabs: { initialValue: true },\n tabSize: {\n set: function (tabSize) {\n tabSize = parseInt(tabSize);\n if (tabSize > 0 && this.$tabSize !== tabSize) {\n this.$modified = true;\n this.$rowLengthCache = [];\n this.$tabSize = tabSize;\n this._signal(\"changeTabSize\");\n }\n },\n initialValue: 4,\n handlesSet: true\n },\n navigateWithinSoftTabs: { initialValue: false },\n foldStyle: {\n set: function (val) { this.setFoldStyle(val); },\n handlesSet: true\n },\n overwrite: {\n set: function (val) { this._signal(\"changeOverwrite\"); },\n initialValue: false\n },\n newLineMode: {\n set: function (val) { this.doc.setNewLineMode(val); },\n get: function () { return this.doc.getNewLineMode(); },\n handlesSet: true\n },\n mode: {\n set: function (val) { this.setMode(val); },\n get: function () { return this.$modeId; },\n handlesSet: true\n }\n});\nexports.EditSession = EditSession;\n\n});\n\nace.define(\"ace/search\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar lang = require(\"./lib/lang\");\nvar oop = require(\"./lib/oop\");\nvar Range = require(\"./range\").Range;\nvar Search = /** @class */ (function () {\n function Search() {\n this.$options = {};\n }\n Search.prototype.set = function (options) {\n oop.mixin(this.$options, options);\n return this;\n };\n Search.prototype.getOptions = function () {\n return lang.copyObject(this.$options);\n };\n Search.prototype.setOptions = function (options) {\n this.$options = options;\n };\n Search.prototype.find = function (session) {\n var options = this.$options;\n var iterator = this.$matchIterator(session, options);\n if (!iterator)\n return false;\n var firstRange = null;\n iterator.forEach(function (sr, sc, er, ec) {\n firstRange = new Range(sr, sc, er, ec);\n if (sc == ec && options.start && options.start.start\n && options.skipCurrent != false && firstRange.isEqual(options.start)) {\n firstRange = null;\n return false;\n }\n return true;\n });\n return firstRange;\n };\n Search.prototype.findAll = function (session) {\n var options = this.$options;\n if (!options.needle)\n return [];\n this.$assembleRegExp(options);\n var range = options.range;\n var lines = range\n ? session.getLines(range.start.row, range.end.row)\n : session.doc.getAllLines();\n var ranges = [];\n var re = options.re;\n if (options.$isMultiLine) {\n var len = re.length;\n var maxRow = lines.length - len;\n var prevRange;\n outer: for (var row = re.offset || 0; row <= maxRow; row++) {\n for (var j = 0; j < len; j++)\n if (lines[row + j].search(re[j]) == -1)\n continue outer;\n var startLine = lines[row];\n var line = lines[row + len - 1];\n var startIndex = startLine.length - startLine.match(re[0])[0].length;\n var endIndex = line.match(re[len - 1])[0].length;\n if (prevRange && prevRange.end.row === row &&\n prevRange.end.column > startIndex) {\n continue;\n }\n ranges.push(prevRange = new Range(row, startIndex, row + len - 1, endIndex));\n if (len > 2)\n row = row + len - 2;\n }\n }\n else {\n for (var i = 0; i < lines.length; i++) {\n var matches = lang.getMatchOffsets(lines[i], re);\n for (var j = 0; j < matches.length; j++) {\n var match = matches[j];\n ranges.push(new Range(i, match.offset, i, match.offset + match.length));\n }\n }\n }\n if (range) {\n var startColumn = range.start.column;\n var endColumn = range.end.column;\n var i = 0, j = ranges.length - 1;\n while (i < j && ranges[i].start.column < startColumn && ranges[i].start.row == 0)\n i++;\n var endRow = range.end.row - range.start.row;\n while (i < j && ranges[j].end.column > endColumn && ranges[j].end.row == endRow)\n j--;\n ranges = ranges.slice(i, j + 1);\n for (i = 0, j = ranges.length; i < j; i++) {\n ranges[i].start.row += range.start.row;\n ranges[i].end.row += range.start.row;\n }\n }\n return ranges;\n };\n Search.prototype.replace = function (input, replacement) {\n var options = this.$options;\n var re = this.$assembleRegExp(options);\n if (options.$isMultiLine)\n return replacement;\n if (!re)\n return;\n var match = re.exec(input);\n if (!match || match[0].length != input.length)\n return null;\n replacement = input.replace(re, replacement);\n if (options.preserveCase) {\n replacement = replacement.split(\"\");\n for (var i = Math.min(input.length, input.length); i--;) {\n var ch = input[i];\n if (ch && ch.toLowerCase() != ch)\n replacement[i] = replacement[i].toUpperCase();\n else\n replacement[i] = replacement[i].toLowerCase();\n }\n replacement = replacement.join(\"\");\n }\n return replacement;\n };\n Search.prototype.$assembleRegExp = function (options, $disableFakeMultiline) {\n if (options.needle instanceof RegExp)\n return options.re = options.needle;\n var needle = options.needle;\n if (!options.needle)\n return options.re = false;\n if (!options.regExp)\n needle = lang.escapeRegExp(needle);\n var modifier = options.caseSensitive ? \"gm\" : \"gmi\";\n try {\n new RegExp(needle, \"u\");\n options.$supportsUnicodeFlag = true;\n modifier += \"u\";\n }\n catch (e) {\n options.$supportsUnicodeFlag = false; //left for backward compatibility with previous versions for cases like /ab\\{2}/gu\n }\n if (options.wholeWord)\n needle = addWordBoundary(needle, options);\n options.$isMultiLine = !$disableFakeMultiline && /[\\n\\r]/.test(needle);\n if (options.$isMultiLine)\n return options.re = this.$assembleMultilineRegExp(needle, modifier);\n try {\n var re = new RegExp(needle, modifier);\n }\n catch (e) {\n re = false;\n }\n return options.re = re;\n };\n Search.prototype.$assembleMultilineRegExp = function (needle, modifier) {\n var parts = needle.replace(/\\r\\n|\\r|\\n/g, \"$\\n^\").split(\"\\n\");\n var re = [];\n for (var i = 0; i < parts.length; i++)\n try {\n re.push(new RegExp(parts[i], modifier));\n }\n catch (e) {\n return false;\n }\n return re;\n };\n Search.prototype.$matchIterator = function (session, options) {\n var re = this.$assembleRegExp(options);\n if (!re)\n return false;\n var backwards = options.backwards == true;\n var skipCurrent = options.skipCurrent != false;\n var supportsUnicodeFlag = re.unicode;\n var range = options.range;\n var start = options.start;\n if (!start)\n start = range ? range[backwards ? \"end\" : \"start\"] : session.selection.getRange();\n if (start.start)\n start = start[skipCurrent != backwards ? \"end\" : \"start\"];\n var firstRow = range ? range.start.row : 0;\n var lastRow = range ? range.end.row : session.getLength() - 1;\n if (backwards) {\n var forEach = function (callback) {\n var row = start.row;\n if (forEachInLine(row, start.column, callback))\n return;\n for (row--; row >= firstRow; row--)\n if (forEachInLine(row, Number.MAX_VALUE, callback))\n return;\n if (options.wrap == false)\n return;\n for (row = lastRow, firstRow = start.row; row >= firstRow; row--)\n if (forEachInLine(row, Number.MAX_VALUE, callback))\n return;\n };\n }\n else {\n var forEach = function (callback) {\n var row = start.row;\n if (forEachInLine(row, start.column, callback))\n return;\n for (row = row + 1; row <= lastRow; row++)\n if (forEachInLine(row, 0, callback))\n return;\n if (options.wrap == false)\n return;\n for (row = firstRow, lastRow = start.row; row <= lastRow; row++)\n if (forEachInLine(row, 0, callback))\n return;\n };\n }\n if (options.$isMultiLine) {\n var len = re.length;\n var forEachInLine = function (row, offset, callback) {\n var startRow = backwards ? row - len + 1 : row;\n if (startRow < 0 || startRow + len > session.getLength())\n return;\n var line = session.getLine(startRow);\n var startIndex = line.search(re[0]);\n if (!backwards && startIndex < offset || startIndex === -1)\n return;\n for (var i = 1; i < len; i++) {\n line = session.getLine(startRow + i);\n if (line.search(re[i]) == -1)\n return;\n }\n var endIndex = line.match(re[len - 1])[0].length;\n if (backwards && endIndex > offset)\n return;\n if (callback(startRow, startIndex, startRow + len - 1, endIndex))\n return true;\n };\n }\n else if (backwards) {\n var forEachInLine = function (row, endIndex, callback) {\n var line = session.getLine(row);\n var matches = [];\n var m, last = 0;\n re.lastIndex = 0;\n while ((m = re.exec(line))) {\n var length = m[0].length;\n last = m.index;\n if (!length) {\n if (last >= line.length)\n break;\n re.lastIndex = last += lang.skipEmptyMatch(line, last, supportsUnicodeFlag);\n }\n if (m.index + length > endIndex)\n break;\n matches.push(m.index, length);\n }\n for (var i = matches.length - 1; i >= 0; i -= 2) {\n var column = matches[i - 1];\n var length = matches[i];\n if (callback(row, column, row, column + length))\n return true;\n }\n };\n }\n else {\n var forEachInLine = function (row, startIndex, callback) {\n var line = session.getLine(row);\n var last;\n var m;\n re.lastIndex = startIndex;\n while ((m = re.exec(line))) {\n var length = m[0].length;\n last = m.index;\n if (callback(row, last, row, last + length))\n return true;\n if (!length) {\n re.lastIndex = last += lang.skipEmptyMatch(line, last, supportsUnicodeFlag);\n if (last >= line.length)\n return false;\n }\n }\n };\n }\n return { forEach: forEach };\n };\n return Search;\n}());\nfunction addWordBoundary(needle, options) {\n var supportsLookbehind = lang.supportsLookbehind();\n function wordBoundary(c, firstChar) {\n if (firstChar === void 0) { firstChar = true; }\n var wordRegExp = supportsLookbehind && options.$supportsUnicodeFlag ? new RegExp(\"[\\\\p{L}\\\\p{N}_]\", \"u\") : new RegExp(\"\\\\w\");\n if (wordRegExp.test(c) || options.regExp) {\n if (supportsLookbehind && options.$supportsUnicodeFlag) {\n if (firstChar)\n return \"(?<=^|[^\\\\p{L}\\\\p{N}_])\";\n return \"(?=[^\\\\p{L}\\\\p{N}_]|$)\";\n }\n return \"\\\\b\";\n }\n return \"\";\n }\n var needleArray = Array.from(needle);\n var firstChar = needleArray[0];\n var lastChar = needleArray[needleArray.length - 1];\n return wordBoundary(firstChar) + needle + wordBoundary(lastChar, false);\n}\nexports.Search = Search;\n\n});\n\nace.define(\"ace/keyboard/hash_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar keyUtil = require(\"../lib/keys\");\nvar useragent = require(\"../lib/useragent\");\nvar KEY_MODS = keyUtil.KEY_MODS;\nvar MultiHashHandler = /** @class */ (function () {\n function MultiHashHandler(config, platform) {\n this.$init(config, platform, false);\n }\n MultiHashHandler.prototype.$init = function (config, platform, $singleCommand) {\n this.platform = platform || (useragent.isMac ? \"mac\" : \"win\");\n this.commands = {};\n this.commandKeyBinding = {};\n this.addCommands(config);\n this.$singleCommand = $singleCommand;\n };\n MultiHashHandler.prototype.addCommand = function (command) {\n if (this.commands[command.name])\n this.removeCommand(command);\n this.commands[command.name] = command;\n if (command.bindKey)\n this._buildKeyHash(command);\n };\n MultiHashHandler.prototype.removeCommand = function (command, keepCommand) {\n var name = command && (typeof command === 'string' ? command : command.name);\n command = this.commands[name];\n if (!keepCommand)\n delete this.commands[name];\n var ckb = this.commandKeyBinding;\n for (var keyId in ckb) {\n var cmdGroup = ckb[keyId];\n if (cmdGroup == command) {\n delete ckb[keyId];\n }\n else if (Array.isArray(cmdGroup)) {\n var i = cmdGroup.indexOf(command);\n if (i != -1) {\n cmdGroup.splice(i, 1);\n if (cmdGroup.length == 1)\n ckb[keyId] = cmdGroup[0];\n }\n }\n }\n };\n MultiHashHandler.prototype.bindKey = function (key, command, position) {\n if (typeof key == \"object\" && key) {\n if (position == undefined)\n position = key.position;\n key = key[this.platform];\n }\n if (!key)\n return;\n if (typeof command == \"function\")\n return this.addCommand({ exec: command, bindKey: key, name: command.name || key });\n key.split(\"|\").forEach(function (keyPart) {\n var chain = \"\";\n if (keyPart.indexOf(\" \") != -1) {\n var parts = keyPart.split(/\\s+/);\n keyPart = parts.pop();\n parts.forEach(function (keyPart) {\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n chain += (chain ? \" \" : \"\") + id;\n this._addCommandToBinding(chain, \"chainKeys\");\n }, this);\n chain += \" \";\n }\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n this._addCommandToBinding(chain + id, command, position);\n }, this);\n };\n MultiHashHandler.prototype._addCommandToBinding = function (keyId, command, position) {\n var ckb = this.commandKeyBinding, i;\n if (!command) {\n delete ckb[keyId];\n }\n else if (!ckb[keyId] || this.$singleCommand) {\n ckb[keyId] = command;\n }\n else {\n if (!Array.isArray(ckb[keyId])) {\n ckb[keyId] = [ckb[keyId]];\n }\n else if ((i = ckb[keyId].indexOf(command)) != -1) {\n ckb[keyId].splice(i, 1);\n }\n if (typeof position != \"number\") {\n position = getPosition(command);\n }\n var commands = ckb[keyId];\n for (i = 0; i < commands.length; i++) {\n var other = commands[i];\n var otherPos = getPosition(other);\n if (otherPos > position)\n break;\n }\n commands.splice(i, 0, command);\n }\n };\n MultiHashHandler.prototype.addCommands = function (commands) {\n commands && Object.keys(commands).forEach(function (name) {\n var command = commands[name];\n if (!command)\n return;\n if (typeof command === \"string\")\n return this.bindKey(command, name);\n if (typeof command === \"function\")\n command = { exec: command };\n if (typeof command !== \"object\")\n return;\n if (!command.name)\n command.name = name;\n this.addCommand(command);\n }, this);\n };\n MultiHashHandler.prototype.removeCommands = function (commands) {\n Object.keys(commands).forEach(function (name) {\n this.removeCommand(commands[name]);\n }, this);\n };\n MultiHashHandler.prototype.bindKeys = function (keyList) {\n Object.keys(keyList).forEach(function (key) {\n this.bindKey(key, keyList[key]);\n }, this);\n };\n MultiHashHandler.prototype._buildKeyHash = function (command) {\n this.bindKey(command.bindKey, command);\n };\n MultiHashHandler.prototype.parseKeys = function (keys) {\n var parts = keys.toLowerCase().split(/[\\-\\+]([\\-\\+])?/).filter(function (x) { return x; });\n var key = parts.pop();\n var keyCode = keyUtil[key];\n if (keyUtil.FUNCTION_KEYS[keyCode])\n key = keyUtil.FUNCTION_KEYS[keyCode].toLowerCase();\n else if (!parts.length)\n return { key: key, hashId: -1 };\n else if (parts.length == 1 && parts[0] == \"shift\")\n return { key: key.toUpperCase(), hashId: -1 };\n var hashId = 0;\n for (var i = parts.length; i--;) {\n var modifier = keyUtil.KEY_MODS[parts[i]];\n if (modifier == null) {\n if (typeof console != \"undefined\")\n console.error(\"invalid modifier \" + parts[i] + \" in \" + keys);\n return false;\n }\n hashId |= modifier;\n }\n return { key: key, hashId: hashId };\n };\n MultiHashHandler.prototype.findKeyCommand = function (hashId, keyString) {\n var key = KEY_MODS[hashId] + keyString;\n return this.commandKeyBinding[key];\n };\n MultiHashHandler.prototype.handleKeyboard = function (data, hashId, keyString, keyCode) {\n if (keyCode < 0)\n return;\n var key = KEY_MODS[hashId] + keyString;\n var command = this.commandKeyBinding[key];\n if (data.$keyChain) {\n data.$keyChain += \" \" + key;\n command = this.commandKeyBinding[data.$keyChain] || command;\n }\n if (command) {\n if (command == \"chainKeys\" || command[command.length - 1] == \"chainKeys\") {\n data.$keyChain = data.$keyChain || key;\n return { command: \"null\" };\n }\n }\n if (data.$keyChain) {\n if ((!hashId || hashId == 4) && keyString.length == 1)\n data.$keyChain = data.$keyChain.slice(0, -key.length - 1); // wait for input\n else if (hashId == -1 || keyCode > 0)\n data.$keyChain = \"\"; // reset keyChain\n }\n return { command: command };\n };\n MultiHashHandler.prototype.getStatusText = function (editor, data) {\n return data.$keyChain || \"\";\n };\n return MultiHashHandler;\n}());\nfunction getPosition(command) {\n return typeof command == \"object\" && command.bindKey\n && command.bindKey.position\n || (command.isDefault ? -100 : 0);\n}\nvar HashHandler = /** @class */ (function (_super) {\n __extends(HashHandler, _super);\n function HashHandler(config, platform) {\n var _this = _super.call(this, config, platform) || this;\n _this.$singleCommand = true;\n return _this;\n }\n return HashHandler;\n}(MultiHashHandler));\nHashHandler.call = function (thisArg, config, platform) {\n MultiHashHandler.prototype.$init.call(thisArg, config, platform, true);\n};\nMultiHashHandler.call = function (thisArg, config, platform) {\n MultiHashHandler.prototype.$init.call(thisArg, config, platform, false);\n};\nexports.HashHandler = HashHandler;\nexports.MultiHashHandler = MultiHashHandler;\n\n});\n\nace.define(\"ace/commands/command_manager\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/keyboard/hash_handler\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar oop = require(\"../lib/oop\");\nvar MultiHashHandler = require(\"../keyboard/hash_handler\").MultiHashHandler;\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar CommandManager = /** @class */ (function (_super) {\n __extends(CommandManager, _super);\n function CommandManager(platform, commands) {\n var _this = _super.call(this, commands, platform) || this;\n _this.byName = _this.commands;\n _this.setDefaultHandler(\"exec\", function (e) {\n if (!e.args) {\n return e.command.exec(e.editor, {}, e.event, true);\n }\n return e.command.exec(e.editor, e.args, e.event, false);\n });\n return _this;\n }\n CommandManager.prototype.exec = function (command, editor, args) {\n if (Array.isArray(command)) {\n for (var i = command.length; i--;) {\n if (this.exec(command[i], editor, args))\n return true;\n }\n return false;\n }\n if (typeof command === \"string\")\n command = this.commands[command];\n if (!command)\n return false;\n if (editor && editor.$readOnly && !command.readOnly)\n return false;\n if (this.$checkCommandState != false && command.isAvailable && !command.isAvailable(editor))\n return false;\n var e = { editor: editor, command: command, args: args };\n e.returnValue = this._emit(\"exec\", e);\n this._signal(\"afterExec\", e);\n return e.returnValue === false ? false : true;\n };\n CommandManager.prototype.toggleRecording = function (editor) {\n if (this.$inReplay)\n return;\n editor && editor._emit(\"changeStatus\");\n if (this.recording) {\n this.macro.pop();\n this.off(\"exec\", this.$addCommandToMacro);\n if (!this.macro.length)\n this.macro = this.oldMacro;\n return this.recording = false;\n }\n if (!this.$addCommandToMacro) {\n this.$addCommandToMacro = function (e) {\n this.macro.push([e.command, e.args]);\n }.bind(this);\n }\n this.oldMacro = this.macro;\n this.macro = [];\n this.on(\"exec\", this.$addCommandToMacro);\n return this.recording = true;\n };\n CommandManager.prototype.replay = function (editor) {\n if (this.$inReplay || !this.macro)\n return;\n if (this.recording)\n return this.toggleRecording(editor);\n try {\n this.$inReplay = true;\n this.macro.forEach(function (x) {\n if (typeof x == \"string\")\n this.exec(x, editor);\n else\n this.exec(x[0], editor, x[1]);\n }, this);\n }\n finally {\n this.$inReplay = false;\n }\n };\n CommandManager.prototype.trimMacro = function (m) {\n return m.map(function (x) {\n if (typeof x[0] != \"string\")\n x[0] = x[0].name;\n if (!x[1])\n x = x[0];\n return x;\n });\n };\n return CommandManager;\n}(MultiHashHandler));\noop.implement(CommandManager.prototype, EventEmitter);\nexports.CommandManager = CommandManager;\n\n});\n\nace.define(\"ace/commands/default_commands\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/config\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar lang = require(\"../lib/lang\");\nvar config = require(\"../config\");\nvar Range = require(\"../range\").Range;\nfunction bindKey(win, mac) {\n return { win: win, mac: mac };\n}\nexports.commands = [{\n name: \"showSettingsMenu\",\n description: \"Show settings menu\",\n bindKey: bindKey(\"Ctrl-,\", \"Command-,\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/settings_menu\", function (module) {\n module.init(editor);\n editor.showSettingsMenu();\n });\n },\n readOnly: true\n }, {\n name: \"goToNextError\",\n description: \"Go to next error\",\n bindKey: bindKey(\"Alt-E\", \"F4\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/error_marker\", function (module) {\n module.showErrorMarker(editor, 1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"goToPreviousError\",\n description: \"Go to previous error\",\n bindKey: bindKey(\"Alt-Shift-E\", \"Shift-F4\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/error_marker\", function (module) {\n module.showErrorMarker(editor, -1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"selectall\",\n description: \"Select all\",\n bindKey: bindKey(\"Ctrl-A\", \"Command-A\"),\n exec: function (editor) { editor.selectAll(); },\n readOnly: true\n }, {\n name: \"centerselection\",\n description: \"Center selection\",\n bindKey: bindKey(null, \"Ctrl-L\"),\n exec: function (editor) { editor.centerSelection(); },\n readOnly: true\n }, {\n name: \"gotoline\",\n description: \"Go to line...\",\n bindKey: bindKey(\"Ctrl-L\", \"Command-L\"),\n exec: function (editor, line) {\n if (typeof line === \"number\" && !isNaN(line))\n editor.gotoLine(line);\n editor.prompt({ $type: \"gotoLine\" });\n },\n readOnly: true\n }, {\n name: \"fold\",\n bindKey: bindKey(\"Alt-L|Ctrl-F1\", \"Command-Alt-L|Command-F1\"),\n exec: function (editor) { editor.session.toggleFold(false); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"unfold\",\n bindKey: bindKey(\"Alt-Shift-L|Ctrl-Shift-F1\", \"Command-Alt-Shift-L|Command-Shift-F1\"),\n exec: function (editor) { editor.session.toggleFold(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"toggleFoldWidget\",\n description: \"Toggle fold widget\",\n bindKey: bindKey(\"F2\", \"F2\"),\n exec: function (editor) { editor.session.toggleFoldWidget(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"toggleParentFoldWidget\",\n description: \"Toggle parent fold widget\",\n bindKey: bindKey(\"Alt-F2\", \"Alt-F2\"),\n exec: function (editor) { editor.session.toggleFoldWidget(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"foldall\",\n description: \"Fold all\",\n bindKey: bindKey(null, \"Ctrl-Command-Option-0\"),\n exec: function (editor) { editor.session.foldAll(); },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"foldAllComments\",\n description: \"Fold all comments\",\n bindKey: bindKey(null, \"Ctrl-Command-Option-0\"),\n exec: function (editor) { editor.session.foldAllComments(); },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"foldOther\",\n description: \"Fold other\",\n bindKey: bindKey(\"Alt-0\", \"Command-Option-0\"),\n exec: function (editor) {\n editor.session.foldAll();\n editor.session.unfold(editor.selection.getAllRanges());\n },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"unfoldall\",\n description: \"Unfold all\",\n bindKey: bindKey(\"Alt-Shift-0\", \"Command-Option-Shift-0\"),\n exec: function (editor) { editor.session.unfold(); },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"findnext\",\n description: \"Find next\",\n bindKey: bindKey(\"Ctrl-K\", \"Command-G\"),\n exec: function (editor) { editor.findNext(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"findprevious\",\n description: \"Find previous\",\n bindKey: bindKey(\"Ctrl-Shift-K\", \"Command-Shift-G\"),\n exec: function (editor) { editor.findPrevious(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"selectOrFindNext\",\n description: \"Select or find next\",\n bindKey: bindKey(\"Alt-K\", \"Ctrl-G\"),\n exec: function (editor) {\n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findNext();\n },\n readOnly: true\n }, {\n name: \"selectOrFindPrevious\",\n description: \"Select or find previous\",\n bindKey: bindKey(\"Alt-Shift-K\", \"Ctrl-Shift-G\"),\n exec: function (editor) {\n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findPrevious();\n },\n readOnly: true\n }, {\n name: \"find\",\n description: \"Find\",\n bindKey: bindKey(\"Ctrl-F\", \"Command-F\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/searchbox\", function (e) { e.Search(editor); });\n },\n readOnly: true\n }, {\n name: \"overwrite\",\n description: \"Overwrite\",\n bindKey: \"Insert\",\n exec: function (editor) { editor.toggleOverwrite(); },\n readOnly: true\n }, {\n name: \"selecttostart\",\n description: \"Select to start\",\n bindKey: bindKey(\"Ctrl-Shift-Home\", \"Command-Shift-Home|Command-Shift-Up\"),\n exec: function (editor) { editor.getSelection().selectFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"gotostart\",\n description: \"Go to start\",\n bindKey: bindKey(\"Ctrl-Home\", \"Command-Home|Command-Up\"),\n exec: function (editor) { editor.navigateFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"selectup\",\n description: \"Select up\",\n bindKey: bindKey(\"Shift-Up\", \"Shift-Up|Ctrl-Shift-P\"),\n exec: function (editor) { editor.getSelection().selectUp(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"golineup\",\n description: \"Go line up\",\n bindKey: bindKey(\"Up\", \"Up|Ctrl-P\"),\n exec: function (editor, args) { editor.navigateUp(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selecttoend\",\n description: \"Select to end\",\n bindKey: bindKey(\"Ctrl-Shift-End\", \"Command-Shift-End|Command-Shift-Down\"),\n exec: function (editor) { editor.getSelection().selectFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"gotoend\",\n description: \"Go to end\",\n bindKey: bindKey(\"Ctrl-End\", \"Command-End|Command-Down\"),\n exec: function (editor) { editor.navigateFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"selectdown\",\n description: \"Select down\",\n bindKey: bindKey(\"Shift-Down\", \"Shift-Down|Ctrl-Shift-N\"),\n exec: function (editor) { editor.getSelection().selectDown(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"golinedown\",\n description: \"Go line down\",\n bindKey: bindKey(\"Down\", \"Down|Ctrl-N\"),\n exec: function (editor, args) { editor.navigateDown(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectwordleft\",\n description: \"Select word left\",\n bindKey: bindKey(\"Ctrl-Shift-Left\", \"Option-Shift-Left\"),\n exec: function (editor) { editor.getSelection().selectWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotowordleft\",\n description: \"Go to word left\",\n bindKey: bindKey(\"Ctrl-Left\", \"Option-Left\"),\n exec: function (editor) { editor.navigateWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selecttolinestart\",\n description: \"Select to line start\",\n bindKey: bindKey(\"Alt-Shift-Left\", \"Command-Shift-Left|Ctrl-Shift-A\"),\n exec: function (editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotolinestart\",\n description: \"Go to line start\",\n bindKey: bindKey(\"Alt-Left|Home\", \"Command-Left|Home|Ctrl-A\"),\n exec: function (editor) { editor.navigateLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectleft\",\n description: \"Select left\",\n bindKey: bindKey(\"Shift-Left\", \"Shift-Left|Ctrl-Shift-B\"),\n exec: function (editor) { editor.getSelection().selectLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotoleft\",\n description: \"Go to left\",\n bindKey: bindKey(\"Left\", \"Left|Ctrl-B\"),\n exec: function (editor, args) { editor.navigateLeft(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectwordright\",\n description: \"Select word right\",\n bindKey: bindKey(\"Ctrl-Shift-Right\", \"Option-Shift-Right\"),\n exec: function (editor) { editor.getSelection().selectWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotowordright\",\n description: \"Go to word right\",\n bindKey: bindKey(\"Ctrl-Right\", \"Option-Right\"),\n exec: function (editor) { editor.navigateWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selecttolineend\",\n description: \"Select to line end\",\n bindKey: bindKey(\"Alt-Shift-Right\", \"Command-Shift-Right|Shift-End|Ctrl-Shift-E\"),\n exec: function (editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotolineend\",\n description: \"Go to line end\",\n bindKey: bindKey(\"Alt-Right|End\", \"Command-Right|End|Ctrl-E\"),\n exec: function (editor) { editor.navigateLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectright\",\n description: \"Select right\",\n bindKey: bindKey(\"Shift-Right\", \"Shift-Right\"),\n exec: function (editor) { editor.getSelection().selectRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotoright\",\n description: \"Go to right\",\n bindKey: bindKey(\"Right\", \"Right|Ctrl-F\"),\n exec: function (editor, args) { editor.navigateRight(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectpagedown\",\n description: \"Select page down\",\n bindKey: \"Shift-PageDown\",\n exec: function (editor) { editor.selectPageDown(); },\n readOnly: true\n }, {\n name: \"pagedown\",\n description: \"Page down\",\n bindKey: bindKey(null, \"Option-PageDown\"),\n exec: function (editor) { editor.scrollPageDown(); },\n readOnly: true\n }, {\n name: \"gotopagedown\",\n description: \"Go to page down\",\n bindKey: bindKey(\"PageDown\", \"PageDown|Ctrl-V\"),\n exec: function (editor) { editor.gotoPageDown(); },\n readOnly: true\n }, {\n name: \"selectpageup\",\n description: \"Select page up\",\n bindKey: \"Shift-PageUp\",\n exec: function (editor) { editor.selectPageUp(); },\n readOnly: true\n }, {\n name: \"pageup\",\n description: \"Page up\",\n bindKey: bindKey(null, \"Option-PageUp\"),\n exec: function (editor) { editor.scrollPageUp(); },\n readOnly: true\n }, {\n name: \"gotopageup\",\n description: \"Go to page up\",\n bindKey: \"PageUp\",\n exec: function (editor) { editor.gotoPageUp(); },\n readOnly: true\n }, {\n name: \"scrollup\",\n description: \"Scroll up\",\n bindKey: bindKey(\"Ctrl-Up\", null),\n exec: function (e) { e.renderer.scrollBy(0, -2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n }, {\n name: \"scrolldown\",\n description: \"Scroll down\",\n bindKey: bindKey(\"Ctrl-Down\", null),\n exec: function (e) { e.renderer.scrollBy(0, 2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n }, {\n name: \"selectlinestart\",\n description: \"Select line start\",\n bindKey: \"Shift-Home\",\n exec: function (editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectlineend\",\n description: \"Select line end\",\n bindKey: \"Shift-End\",\n exec: function (editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"togglerecording\",\n description: \"Toggle recording\",\n bindKey: bindKey(\"Ctrl-Alt-E\", \"Command-Option-E\"),\n exec: function (editor) { editor.commands.toggleRecording(editor); },\n readOnly: true\n }, {\n name: \"replaymacro\",\n description: \"Replay macro\",\n bindKey: bindKey(\"Ctrl-Shift-E\", \"Command-Shift-E\"),\n exec: function (editor) { editor.commands.replay(editor); },\n readOnly: true\n }, {\n name: \"jumptomatching\",\n description: \"Jump to matching\",\n bindKey: bindKey(\"Ctrl-\\\\|Ctrl-P\", \"Command-\\\\\"),\n exec: function (editor) { editor.jumpToMatching(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"selecttomatching\",\n description: \"Select to matching\",\n bindKey: bindKey(\"Ctrl-Shift-\\\\|Ctrl-Shift-P\", \"Command-Shift-\\\\\"),\n exec: function (editor) { editor.jumpToMatching(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"expandToMatching\",\n description: \"Expand to matching\",\n bindKey: bindKey(\"Ctrl-Shift-M\", \"Ctrl-Shift-M\"),\n exec: function (editor) { editor.jumpToMatching(true, true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"passKeysToBrowser\",\n description: \"Pass keys to browser\",\n bindKey: bindKey(null, null),\n exec: function () { },\n passEvent: true,\n readOnly: true\n }, {\n name: \"copy\",\n description: \"Copy\",\n exec: function (editor) {\n },\n readOnly: true\n },\n {\n name: \"cut\",\n description: \"Cut\",\n exec: function (editor) {\n var cutLine = editor.$copyWithEmptySelection && editor.selection.isEmpty();\n var range = cutLine ? editor.selection.getLineRange() : editor.selection.getRange();\n editor._emit(\"cut\", range);\n if (!range.isEmpty())\n editor.session.remove(range);\n editor.clearSelection();\n },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"paste\",\n description: \"Paste\",\n exec: function (editor, args) {\n editor.$handlePaste(args);\n },\n scrollIntoView: \"cursor\"\n }, {\n name: \"removeline\",\n description: \"Remove line\",\n bindKey: bindKey(\"Ctrl-D\", \"Command-D\"),\n exec: function (editor) { editor.removeLines(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEachLine\"\n }, {\n name: \"duplicateSelection\",\n description: \"Duplicate selection\",\n bindKey: bindKey(\"Ctrl-Shift-D\", \"Command-Shift-D\"),\n exec: function (editor) { editor.duplicateSelection(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"sortlines\",\n description: \"Sort lines\",\n bindKey: bindKey(\"Ctrl-Alt-S\", \"Command-Alt-S\"),\n exec: function (editor) { editor.sortLines(); },\n scrollIntoView: \"selection\",\n multiSelectAction: \"forEachLine\"\n }, {\n name: \"togglecomment\",\n description: \"Toggle comment\",\n bindKey: bindKey(\"Ctrl-/\", \"Command-/\"),\n exec: function (editor) { editor.toggleCommentLines(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"toggleBlockComment\",\n description: \"Toggle block comment\",\n bindKey: bindKey(\"Ctrl-Shift-/\", \"Command-Shift-/\"),\n exec: function (editor) { editor.toggleBlockComment(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"modifyNumberUp\",\n description: \"Modify number up\",\n bindKey: bindKey(\"Ctrl-Shift-Up\", \"Alt-Shift-Up\"),\n exec: function (editor) { editor.modifyNumber(1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"modifyNumberDown\",\n description: \"Modify number down\",\n bindKey: bindKey(\"Ctrl-Shift-Down\", \"Alt-Shift-Down\"),\n exec: function (editor) { editor.modifyNumber(-1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"replace\",\n description: \"Replace\",\n bindKey: bindKey(\"Ctrl-H\", \"Command-Option-F\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/searchbox\", function (e) { e.Search(editor, true); });\n }\n }, {\n name: \"undo\",\n description: \"Undo\",\n bindKey: bindKey(\"Ctrl-Z\", \"Command-Z\"),\n exec: function (editor) { editor.undo(); }\n }, {\n name: \"redo\",\n description: \"Redo\",\n bindKey: bindKey(\"Ctrl-Shift-Z|Ctrl-Y\", \"Command-Shift-Z|Command-Y\"),\n exec: function (editor) { editor.redo(); }\n }, {\n name: \"copylinesup\",\n description: \"Copy lines up\",\n bindKey: bindKey(\"Alt-Shift-Up\", \"Command-Option-Up\"),\n exec: function (editor) { editor.copyLinesUp(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"movelinesup\",\n description: \"Move lines up\",\n bindKey: bindKey(\"Alt-Up\", \"Option-Up\"),\n exec: function (editor) { editor.moveLinesUp(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"copylinesdown\",\n description: \"Copy lines down\",\n bindKey: bindKey(\"Alt-Shift-Down\", \"Command-Option-Down\"),\n exec: function (editor) { editor.copyLinesDown(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"movelinesdown\",\n description: \"Move lines down\",\n bindKey: bindKey(\"Alt-Down\", \"Option-Down\"),\n exec: function (editor) { editor.moveLinesDown(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"del\",\n description: \"Delete\",\n bindKey: bindKey(\"Delete\", \"Delete|Ctrl-D|Shift-Delete\"),\n exec: function (editor) { editor.remove(\"right\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"backspace\",\n description: \"Backspace\",\n bindKey: bindKey(\"Shift-Backspace|Backspace\", \"Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H\"),\n exec: function (editor) { editor.remove(\"left\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"cut_or_delete\",\n description: \"Cut or delete\",\n bindKey: bindKey(\"Shift-Delete\", null),\n exec: function (editor) {\n if (editor.selection.isEmpty()) {\n editor.remove(\"left\");\n }\n else {\n return false;\n }\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolinestart\",\n description: \"Remove to line start\",\n bindKey: bindKey(\"Alt-Backspace\", \"Command-Backspace\"),\n exec: function (editor) { editor.removeToLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolineend\",\n description: \"Remove to line end\",\n bindKey: bindKey(\"Alt-Delete\", \"Ctrl-K|Command-Delete\"),\n exec: function (editor) { editor.removeToLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolinestarthard\",\n description: \"Remove to line start hard\",\n bindKey: bindKey(\"Ctrl-Shift-Backspace\", null),\n exec: function (editor) {\n var range = editor.selection.getRange();\n range.start.column = 0;\n editor.session.remove(range);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolineendhard\",\n description: \"Remove to line end hard\",\n bindKey: bindKey(\"Ctrl-Shift-Delete\", null),\n exec: function (editor) {\n var range = editor.selection.getRange();\n range.end.column = Number.MAX_VALUE;\n editor.session.remove(range);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removewordleft\",\n description: \"Remove word left\",\n bindKey: bindKey(\"Ctrl-Backspace\", \"Alt-Backspace|Ctrl-Alt-Backspace\"),\n exec: function (editor) { editor.removeWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removewordright\",\n description: \"Remove word right\",\n bindKey: bindKey(\"Ctrl-Delete\", \"Alt-Delete\"),\n exec: function (editor) { editor.removeWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"outdent\",\n description: \"Outdent\",\n bindKey: bindKey(\"Shift-Tab\", \"Shift-Tab\"),\n exec: function (editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"indent\",\n description: \"Indent\",\n bindKey: bindKey(\"Tab\", \"Tab\"),\n exec: function (editor) { editor.indent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"blockoutdent\",\n description: \"Block outdent\",\n bindKey: bindKey(\"Ctrl-[\", \"Ctrl-[\"),\n exec: function (editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"blockindent\",\n description: \"Block indent\",\n bindKey: bindKey(\"Ctrl-]\", \"Ctrl-]\"),\n exec: function (editor) { editor.blockIndent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"insertstring\",\n description: \"Insert string\",\n exec: function (editor, str) { editor.insert(str); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"inserttext\",\n description: \"Insert text\",\n exec: function (editor, args) {\n editor.insert(lang.stringRepeat(args.text || \"\", args.times || 1));\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"splitline\",\n description: \"Split line\",\n bindKey: bindKey(null, \"Ctrl-O\"),\n exec: function (editor) { editor.splitLine(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"transposeletters\",\n description: \"Transpose letters\",\n bindKey: bindKey(\"Alt-Shift-X\", \"Ctrl-T\"),\n exec: function (editor) { editor.transposeLetters(); },\n multiSelectAction: function (editor) { editor.transposeSelections(1); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"touppercase\",\n description: \"To uppercase\",\n bindKey: bindKey(\"Ctrl-U\", \"Ctrl-U\"),\n exec: function (editor) { editor.toUpperCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"tolowercase\",\n description: \"To lowercase\",\n bindKey: bindKey(\"Ctrl-Shift-U\", \"Ctrl-Shift-U\"),\n exec: function (editor) { editor.toLowerCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"autoindent\",\n description: \"Auto Indent\",\n bindKey: bindKey(null, null),\n exec: function (editor) { editor.autoIndent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"animate\"\n }, {\n name: \"expandtoline\",\n description: \"Expand to line\",\n bindKey: bindKey(\"Ctrl-Shift-L\", \"Command-Shift-L\"),\n exec: function (editor) {\n var range = editor.selection.getRange();\n range.start.column = range.end.column = 0;\n range.end.row++;\n editor.selection.setRange(range, false);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"openlink\",\n bindKey: bindKey(\"Ctrl+F3\", \"F3\"),\n exec: function (editor) { editor.openLink(); }\n }, {\n name: \"joinlines\",\n description: \"Join lines\",\n bindKey: bindKey(null, null),\n exec: function (editor) {\n var isBackwards = editor.selection.isBackwards();\n var selectionStart = isBackwards ? editor.selection.getSelectionLead() : editor.selection.getSelectionAnchor();\n var selectionEnd = isBackwards ? editor.selection.getSelectionAnchor() : editor.selection.getSelectionLead();\n var firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length;\n var selectedText = editor.session.doc.getTextRange(editor.selection.getRange());\n var selectedCount = selectedText.replace(/\\n\\s*/, \" \").length;\n var insertLine = editor.session.doc.getLine(selectionStart.row);\n for (var i = selectionStart.row + 1; i <= selectionEnd.row + 1; i++) {\n var curLine = lang.stringTrimLeft(lang.stringTrimRight(editor.session.doc.getLine(i)));\n if (curLine.length !== 0) {\n curLine = \" \" + curLine;\n }\n insertLine += curLine;\n }\n if (selectionEnd.row + 1 < (editor.session.doc.getLength() - 1)) {\n insertLine += editor.session.doc.getNewLineCharacter();\n }\n editor.clearSelection();\n editor.session.doc.replace(new Range(selectionStart.row, 0, selectionEnd.row + 2, 0), insertLine);\n if (selectedCount > 0) {\n editor.selection.moveCursorTo(selectionStart.row, selectionStart.column);\n editor.selection.selectTo(selectionStart.row, selectionStart.column + selectedCount);\n }\n else {\n firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length > firstLineEndCol ? (firstLineEndCol + 1) : firstLineEndCol;\n editor.selection.moveCursorTo(selectionStart.row, firstLineEndCol);\n }\n },\n multiSelectAction: \"forEach\",\n readOnly: true\n }, {\n name: \"invertSelection\",\n description: \"Invert selection\",\n bindKey: bindKey(null, null),\n exec: function (editor) {\n var endRow = editor.session.doc.getLength() - 1;\n var endCol = editor.session.doc.getLine(endRow).length;\n var ranges = editor.selection.rangeList.ranges;\n var newRanges = [];\n if (ranges.length < 1) {\n ranges = [editor.selection.getRange()];\n }\n for (var i = 0; i < ranges.length; i++) {\n if (i == (ranges.length - 1)) {\n if (!(ranges[i].end.row === endRow && ranges[i].end.column === endCol)) {\n newRanges.push(new Range(ranges[i].end.row, ranges[i].end.column, endRow, endCol));\n }\n }\n if (i === 0) {\n if (!(ranges[i].start.row === 0 && ranges[i].start.column === 0)) {\n newRanges.push(new Range(0, 0, ranges[i].start.row, ranges[i].start.column));\n }\n }\n else {\n newRanges.push(new Range(ranges[i - 1].end.row, ranges[i - 1].end.column, ranges[i].start.row, ranges[i].start.column));\n }\n }\n editor.exitMultiSelectMode();\n editor.clearSelection();\n for (var i = 0; i < newRanges.length; i++) {\n editor.selection.addRange(newRanges[i], false);\n }\n },\n readOnly: true,\n scrollIntoView: \"none\"\n }, {\n name: \"addLineAfter\",\n description: \"Add new line after the current line\",\n exec: function (editor) {\n editor.selection.clearSelection();\n editor.navigateLineEnd();\n editor.insert(\"\\n\");\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"addLineBefore\",\n description: \"Add new line before the current line\",\n exec: function (editor) {\n editor.selection.clearSelection();\n var cursor = editor.getCursorPosition();\n editor.selection.moveTo(cursor.row - 1, Number.MAX_VALUE);\n editor.insert(\"\\n\");\n if (cursor.row === 0)\n editor.navigateUp();\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"openCommandPallete\",\n exec: function (editor) {\n console.warn(\"This is an obsolete command. Please use `openCommandPalette` instead.\");\n editor.prompt({ $type: \"commands\" });\n },\n readOnly: true\n }, {\n name: \"openCommandPalette\",\n description: \"Open command palette\",\n bindKey: bindKey(\"F1\", \"F1\"),\n exec: function (editor) {\n editor.prompt({ $type: \"commands\" });\n },\n readOnly: true\n }, {\n name: \"modeSelect\",\n description: \"Change language mode...\",\n bindKey: bindKey(null, null),\n exec: function (editor) {\n editor.prompt({ $type: \"modes\" });\n },\n readOnly: true\n }];\nfor (var i = 1; i < 9; i++) {\n exports.commands.push({\n name: \"foldToLevel\" + i,\n description: \"Fold To Level \" + i,\n level: i,\n exec: function (editor) { editor.session.foldToLevel(this.level); },\n scrollIntoView: \"center\",\n readOnly: true\n });\n}\n\n});\n\nace.define(\"ace/line_widgets\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"./lib/dom\");\nvar LineWidgets = /** @class */ (function () {\n function LineWidgets(session) {\n this.session = session;\n this.session.widgetManager = this;\n this.session.getRowLength = this.getRowLength;\n this.session.$getWidgetScreenLength = this.$getWidgetScreenLength;\n this.updateOnChange = this.updateOnChange.bind(this);\n this.renderWidgets = this.renderWidgets.bind(this);\n this.measureWidgets = this.measureWidgets.bind(this);\n this.session._changedWidgets = [];\n this.$onChangeEditor = this.$onChangeEditor.bind(this);\n this.session.on(\"change\", this.updateOnChange);\n this.session.on(\"changeFold\", this.updateOnFold);\n this.session.on(\"changeEditor\", this.$onChangeEditor);\n }\n LineWidgets.prototype.getRowLength = function (row) {\n var h;\n if (this.lineWidgets)\n h = this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n else\n h = 0;\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1 + h;\n }\n else {\n return this.$wrapData[row].length + 1 + h;\n }\n };\n LineWidgets.prototype.$getWidgetScreenLength = function () {\n var screenRows = 0;\n this.lineWidgets.forEach(function (w) {\n if (w && w.rowCount && !w.hidden)\n screenRows += w.rowCount;\n });\n return screenRows;\n };\n LineWidgets.prototype.$onChangeEditor = function (e) {\n this.attach(e.editor);\n };\n LineWidgets.prototype.attach = function (editor) {\n if (editor && editor.widgetManager && editor.widgetManager != this)\n editor.widgetManager.detach();\n if (this.editor == editor)\n return;\n this.detach();\n this.editor = editor;\n if (editor) {\n editor.widgetManager = this;\n editor.renderer.on(\"beforeRender\", this.measureWidgets);\n editor.renderer.on(\"afterRender\", this.renderWidgets);\n }\n };\n LineWidgets.prototype.detach = function (e) {\n var editor = this.editor;\n if (!editor)\n return;\n this.editor = null;\n editor.widgetManager = null;\n editor.renderer.off(\"beforeRender\", this.measureWidgets);\n editor.renderer.off(\"afterRender\", this.renderWidgets);\n var lineWidgets = this.session.lineWidgets;\n lineWidgets && lineWidgets.forEach(function (w) {\n if (w && w.el && w.el.parentNode) {\n w._inDocument = false;\n w.el.parentNode.removeChild(w.el);\n }\n });\n };\n LineWidgets.prototype.updateOnFold = function (e, session) {\n var lineWidgets = session.lineWidgets;\n if (!lineWidgets || !e.action)\n return;\n var fold = e.data;\n var start = fold.start.row;\n var end = fold.end.row;\n var hide = e.action == \"add\";\n for (var i = start + 1; i < end; i++) {\n if (lineWidgets[i])\n lineWidgets[i].hidden = hide;\n }\n if (lineWidgets[end]) {\n if (hide) {\n if (!lineWidgets[start])\n lineWidgets[start] = lineWidgets[end];\n else\n lineWidgets[end].hidden = hide;\n }\n else {\n if (lineWidgets[start] == lineWidgets[end])\n lineWidgets[start] = undefined;\n lineWidgets[end].hidden = hide;\n }\n }\n };\n LineWidgets.prototype.updateOnChange = function (delta) {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n if (len === 0) {\n }\n else if (delta.action == \"remove\") {\n var removed = lineWidgets.splice(startRow + 1, len);\n if (!lineWidgets[startRow] && removed[removed.length - 1]) {\n lineWidgets[startRow] = removed.pop();\n }\n removed.forEach(function (w) {\n w && this.removeLineWidget(w);\n }, this);\n this.$updateRows();\n }\n else {\n var args = new Array(len);\n if (lineWidgets[startRow] && lineWidgets[startRow].column != null) {\n if (delta.start.column > lineWidgets[startRow].column)\n startRow++;\n }\n args.unshift(startRow, 0);\n lineWidgets.splice.apply(lineWidgets, args);\n this.$updateRows();\n }\n };\n LineWidgets.prototype.$updateRows = function () {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var noWidgets = true;\n lineWidgets.forEach(function (w, i) {\n if (w) {\n noWidgets = false;\n w.row = i;\n while (w.$oldWidget) {\n w.$oldWidget.row = i;\n w = w.$oldWidget;\n }\n }\n });\n if (noWidgets)\n this.session.lineWidgets = null;\n };\n LineWidgets.prototype.$registerLineWidget = function (w) {\n if (!this.session.lineWidgets)\n this.session.lineWidgets = new Array(this.session.getLength());\n var old = this.session.lineWidgets[w.row];\n if (old) {\n w.$oldWidget = old;\n if (old.el && old.el.parentNode) {\n old.el.parentNode.removeChild(old.el);\n old._inDocument = false;\n }\n }\n this.session.lineWidgets[w.row] = w;\n return w;\n };\n LineWidgets.prototype.addLineWidget = function (w) {\n this.$registerLineWidget(w);\n w.session = this.session;\n if (!this.editor)\n return w;\n var renderer = this.editor.renderer;\n if (w.html && !w.el) {\n w.el = dom.createElement(\"div\");\n w.el.innerHTML = w.html;\n }\n if (w.text && !w.el) {\n w.el = dom.createElement(\"div\");\n w.el.textContent = w.text;\n }\n if (w.el) {\n dom.addCssClass(w.el, \"ace_lineWidgetContainer\");\n if (w.className) {\n dom.addCssClass(w.el, w.className);\n }\n w.el.style.position = \"absolute\";\n w.el.style.zIndex = 5;\n renderer.container.appendChild(w.el);\n w._inDocument = true;\n if (!w.coverGutter) {\n w.el.style.zIndex = 3;\n }\n if (w.pixelHeight == null) {\n w.pixelHeight = w.el.offsetHeight;\n }\n }\n if (w.rowCount == null) {\n w.rowCount = w.pixelHeight / renderer.layerConfig.lineHeight;\n }\n var fold = this.session.getFoldAt(w.row, 0);\n w.$fold = fold;\n if (fold) {\n var lineWidgets = this.session.lineWidgets;\n if (w.row == fold.end.row && !lineWidgets[fold.start.row])\n lineWidgets[fold.start.row] = w;\n else\n w.hidden = true;\n }\n this.session._emit(\"changeFold\", { data: { start: { row: w.row } } });\n this.$updateRows();\n this.renderWidgets(null, renderer);\n this.onWidgetChanged(w);\n return w;\n };\n LineWidgets.prototype.removeLineWidget = function (w) {\n w._inDocument = false;\n w.session = null;\n if (w.el && w.el.parentNode)\n w.el.parentNode.removeChild(w.el);\n if (w.editor && w.editor.destroy)\n try {\n w.editor.destroy();\n }\n catch (e) { }\n if (this.session.lineWidgets) {\n var w1 = this.session.lineWidgets[w.row];\n if (w1 == w) {\n this.session.lineWidgets[w.row] = w.$oldWidget;\n if (w.$oldWidget)\n this.onWidgetChanged(w.$oldWidget);\n }\n else {\n while (w1) {\n if (w1.$oldWidget == w) {\n w1.$oldWidget = w.$oldWidget;\n break;\n }\n w1 = w1.$oldWidget;\n }\n }\n }\n this.session._emit(\"changeFold\", { data: { start: { row: w.row } } });\n this.$updateRows();\n };\n LineWidgets.prototype.getWidgetsAtRow = function (row) {\n var lineWidgets = this.session.lineWidgets;\n var w = lineWidgets && lineWidgets[row];\n var list = [];\n while (w) {\n list.push(w);\n w = w.$oldWidget;\n }\n return list;\n };\n LineWidgets.prototype.onWidgetChanged = function (w) {\n this.session._changedWidgets.push(w);\n this.editor && this.editor.renderer.updateFull();\n };\n LineWidgets.prototype.measureWidgets = function (e, renderer) {\n var changedWidgets = this.session._changedWidgets;\n var config = renderer.layerConfig;\n if (!changedWidgets || !changedWidgets.length)\n return;\n var min = Infinity;\n for (var i = 0; i < changedWidgets.length; i++) {\n var w = changedWidgets[i];\n if (!w || !w.el)\n continue;\n if (w.session != this.session)\n continue;\n if (!w._inDocument) {\n if (this.session.lineWidgets[w.row] != w)\n continue;\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n w.h = w.el.offsetHeight;\n if (!w.fixedWidth) {\n w.w = w.el.offsetWidth;\n w.screenWidth = Math.ceil(w.w / config.characterWidth);\n }\n var rowCount = w.h / config.lineHeight;\n if (w.coverLine) {\n rowCount -= this.session.getRowLineCount(w.row);\n if (rowCount < 0)\n rowCount = 0;\n }\n if (w.rowCount != rowCount) {\n w.rowCount = rowCount;\n if (w.row < min)\n min = w.row;\n }\n }\n if (min != Infinity) {\n this.session._emit(\"changeFold\", { data: { start: { row: min } } });\n this.session.lineWidgetWidth = null;\n }\n this.session._changedWidgets = [];\n };\n LineWidgets.prototype.renderWidgets = function (e, renderer) {\n var config = renderer.layerConfig;\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var first = Math.min(this.firstRow, config.firstRow);\n var last = Math.max(this.lastRow, config.lastRow, lineWidgets.length);\n while (first > 0 && !lineWidgets[first])\n first--;\n this.firstRow = config.firstRow;\n this.lastRow = config.lastRow;\n renderer.$cursorLayer.config = config;\n for (var i = first; i <= last; i++) {\n var w = lineWidgets[i];\n if (!w || !w.el)\n continue;\n if (w.hidden) {\n w.el.style.top = -100 - (w.pixelHeight || 0) + \"px\";\n continue;\n }\n if (!w._inDocument) {\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n var top = renderer.$cursorLayer.getPixelPosition({ row: i, column: 0 }, true).top;\n if (!w.coverLine)\n top += config.lineHeight * this.session.getRowLineCount(w.row);\n w.el.style.top = top - config.offset + \"px\";\n var left = w.coverGutter ? 0 : renderer.gutterWidth;\n if (!w.fixedWidth)\n left -= renderer.scrollLeft;\n w.el.style.left = left + \"px\";\n if (w.fullWidth && w.screenWidth) {\n w.el.style.minWidth = config.width + 2 * config.padding + \"px\";\n }\n if (w.fixedWidth) {\n w.el.style.right = renderer.scrollBar.getWidth() + \"px\";\n }\n else {\n w.el.style.right = \"\";\n }\n }\n };\n return LineWidgets;\n}());\nexports.LineWidgets = LineWidgets;\n\n});\n\nace.define(\"ace/keyboard/gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/mouse/default_gutter_handler\"], function(require, exports, module){\"use strict\";\nvar keys = require('../lib/keys');\nvar GutterTooltip = require(\"../mouse/default_gutter_handler\").GutterTooltip;\nvar GutterKeyboardHandler = /** @class */ (function () {\n function GutterKeyboardHandler(editor) {\n this.editor = editor;\n this.gutterLayer = editor.renderer.$gutterLayer;\n this.element = editor.renderer.$gutter;\n this.lines = editor.renderer.$gutterLayer.$lines;\n this.activeRowIndex = null;\n this.activeLane = null;\n this.annotationTooltip = new GutterTooltip(this.editor);\n }\n GutterKeyboardHandler.prototype.addListener = function () {\n this.element.addEventListener(\"keydown\", this.$onGutterKeyDown.bind(this));\n this.element.addEventListener(\"focusout\", this.$blurGutter.bind(this));\n this.editor.on(\"mousewheel\", this.$blurGutter.bind(this));\n };\n GutterKeyboardHandler.prototype.removeListener = function () {\n this.element.removeEventListener(\"keydown\", this.$onGutterKeyDown.bind(this));\n this.element.removeEventListener(\"focusout\", this.$blurGutter.bind(this));\n this.editor.off(\"mousewheel\", this.$blurGutter.bind(this));\n };\n GutterKeyboardHandler.prototype.$onGutterKeyDown = function (e) {\n if (this.annotationTooltip.isOpen) {\n e.preventDefault();\n if (e.keyCode === keys[\"escape\"])\n this.annotationTooltip.hideTooltip();\n return;\n }\n if (e.target === this.element) {\n if (e.keyCode != keys[\"enter\"]) {\n return;\n }\n e.preventDefault();\n var row = this.editor.getCursorPosition().row;\n if (!this.editor.isRowVisible(row))\n this.editor.scrollToLine(row, true, true);\n setTimeout(function () {\n var index = this.$rowToRowIndex(this.gutterLayer.$cursorCell.row);\n var nearestFoldIndex = this.$findNearestFoldWidget(index);\n var nearestAnnotationIndex = this.$findNearestAnnotation(index);\n if (nearestFoldIndex === null && nearestAnnotationIndex === null)\n return;\n if (nearestFoldIndex === null && nearestAnnotationIndex !== null) {\n this.activeRowIndex = nearestAnnotationIndex;\n this.activeLane = \"annotation\";\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n if (nearestFoldIndex !== null && nearestAnnotationIndex === null) {\n this.activeRowIndex = nearestFoldIndex;\n this.activeLane = \"fold\";\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n if (Math.abs(nearestAnnotationIndex - index) < Math.abs(nearestFoldIndex - index)) {\n this.activeRowIndex = nearestAnnotationIndex;\n this.activeLane = \"annotation\";\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n else {\n this.activeRowIndex = nearestFoldIndex;\n this.activeLane = \"fold\";\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n }.bind(this), 10);\n return;\n }\n this.$handleGutterKeyboardInteraction(e);\n setTimeout(function () {\n this.editor._signal(\"gutterkeydown\", new GutterKeyboardEvent(e, this));\n }.bind(this), 10);\n };\n GutterKeyboardHandler.prototype.$handleGutterKeyboardInteraction = function (e) {\n if (e.keyCode === keys[\"tab\"]) {\n e.preventDefault();\n return;\n }\n if (e.keyCode === keys[\"escape\"]) {\n e.preventDefault();\n this.$blurGutter();\n this.element.focus();\n this.lane = null;\n return;\n }\n if (e.keyCode === keys[\"up\"]) {\n e.preventDefault();\n switch (this.activeLane) {\n case \"fold\":\n this.$moveFoldWidgetUp();\n break;\n case \"annotation\":\n this.$moveAnnotationUp();\n break;\n }\n return;\n }\n if (e.keyCode === keys[\"down\"]) {\n e.preventDefault();\n switch (this.activeLane) {\n case \"fold\":\n this.$moveFoldWidgetDown();\n break;\n case \"annotation\":\n this.$moveAnnotationDown();\n break;\n }\n return;\n }\n if (e.keyCode === keys[\"left\"]) {\n e.preventDefault();\n this.$switchLane(\"annotation\");\n return;\n }\n if (e.keyCode === keys[\"right\"]) {\n e.preventDefault();\n this.$switchLane(\"fold\");\n return;\n }\n if (e.keyCode === keys[\"enter\"] || e.keyCode === keys[\"space\"]) {\n e.preventDefault();\n switch (this.activeLane) {\n case \"fold\":\n if (this.gutterLayer.session.foldWidgets[this.$rowIndexToRow(this.activeRowIndex)] === 'start') {\n var rowFoldingWidget = this.$rowIndexToRow(this.activeRowIndex);\n this.editor.session.onFoldWidgetClick(this.$rowIndexToRow(this.activeRowIndex), e);\n setTimeout(function () {\n if (this.$rowIndexToRow(this.activeRowIndex) !== rowFoldingWidget) {\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = this.$rowToRowIndex(rowFoldingWidget);\n this.$focusFoldWidget(this.activeRowIndex);\n }\n }.bind(this), 10);\n break;\n }\n else if (this.gutterLayer.session.foldWidgets[this.$rowIndexToRow(this.activeRowIndex)] === 'end') {\n break;\n }\n return;\n case \"annotation\":\n var gutterElement = this.lines.cells[this.activeRowIndex].element.childNodes[2];\n var rect = gutterElement.getBoundingClientRect();\n var style = this.annotationTooltip.getElement().style;\n style.left = rect.right + \"px\";\n style.top = rect.bottom + \"px\";\n this.annotationTooltip.showTooltip(this.$rowIndexToRow(this.activeRowIndex));\n break;\n }\n return;\n }\n };\n GutterKeyboardHandler.prototype.$blurGutter = function () {\n if (this.activeRowIndex !== null) {\n switch (this.activeLane) {\n case \"fold\":\n this.$blurFoldWidget(this.activeRowIndex);\n break;\n case \"annotation\":\n this.$blurAnnotation(this.activeRowIndex);\n break;\n }\n }\n if (this.annotationTooltip.isOpen)\n this.annotationTooltip.hideTooltip();\n return;\n };\n GutterKeyboardHandler.prototype.$isFoldWidgetVisible = function (index) {\n var isRowFullyVisible = this.editor.isRowFullyVisible(this.$rowIndexToRow(index));\n var isIconVisible = this.$getFoldWidget(index).style.display !== \"none\";\n return isRowFullyVisible && isIconVisible;\n };\n GutterKeyboardHandler.prototype.$isAnnotationVisible = function (index) {\n var isRowFullyVisible = this.editor.isRowFullyVisible(this.$rowIndexToRow(index));\n var isIconVisible = this.$getAnnotation(index).style.display !== \"none\";\n return isRowFullyVisible && isIconVisible;\n };\n GutterKeyboardHandler.prototype.$getFoldWidget = function (index) {\n var cell = this.lines.get(index);\n var element = cell.element;\n return element.childNodes[1];\n };\n GutterKeyboardHandler.prototype.$getAnnotation = function (index) {\n var cell = this.lines.get(index);\n var element = cell.element;\n return element.childNodes[2];\n };\n GutterKeyboardHandler.prototype.$findNearestFoldWidget = function (index) {\n if (this.$isFoldWidgetVisible(index))\n return index;\n var i = 0;\n while (index - i > 0 || index + i < this.lines.getLength() - 1) {\n i++;\n if (index - i >= 0 && this.$isFoldWidgetVisible(index - i))\n return index - i;\n if (index + i <= this.lines.getLength() - 1 && this.$isFoldWidgetVisible(index + i))\n return index + i;\n }\n return null;\n };\n GutterKeyboardHandler.prototype.$findNearestAnnotation = function (index) {\n if (this.$isAnnotationVisible(index))\n return index;\n var i = 0;\n while (index - i > 0 || index + i < this.lines.getLength() - 1) {\n i++;\n if (index - i >= 0 && this.$isAnnotationVisible(index - i))\n return index - i;\n if (index + i <= this.lines.getLength() - 1 && this.$isAnnotationVisible(index + i))\n return index + i;\n }\n return null;\n };\n GutterKeyboardHandler.prototype.$focusFoldWidget = function (index) {\n if (index == null)\n return;\n var foldWidget = this.$getFoldWidget(index);\n foldWidget.classList.add(this.editor.renderer.keyboardFocusClassName);\n foldWidget.focus();\n };\n GutterKeyboardHandler.prototype.$focusAnnotation = function (index) {\n if (index == null)\n return;\n var annotation = this.$getAnnotation(index);\n annotation.classList.add(this.editor.renderer.keyboardFocusClassName);\n annotation.focus();\n };\n GutterKeyboardHandler.prototype.$blurFoldWidget = function (index) {\n var foldWidget = this.$getFoldWidget(index);\n foldWidget.classList.remove(this.editor.renderer.keyboardFocusClassName);\n foldWidget.blur();\n };\n GutterKeyboardHandler.prototype.$blurAnnotation = function (index) {\n var annotation = this.$getAnnotation(index);\n annotation.classList.remove(this.editor.renderer.keyboardFocusClassName);\n annotation.blur();\n };\n GutterKeyboardHandler.prototype.$moveFoldWidgetUp = function () {\n var index = this.activeRowIndex;\n while (index > 0) {\n index--;\n if (this.$isFoldWidgetVisible(index)) {\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$moveFoldWidgetDown = function () {\n var index = this.activeRowIndex;\n while (index < this.lines.getLength() - 1) {\n index++;\n if (this.$isFoldWidgetVisible(index)) {\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$moveAnnotationUp = function () {\n var index = this.activeRowIndex;\n while (index > 0) {\n index--;\n if (this.$isAnnotationVisible(index)) {\n this.$blurAnnotation(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$moveAnnotationDown = function () {\n var index = this.activeRowIndex;\n while (index < this.lines.getLength() - 1) {\n index++;\n if (this.$isAnnotationVisible(index)) {\n this.$blurAnnotation(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$switchLane = function (desinationLane) {\n switch (desinationLane) {\n case \"annotation\":\n if (this.activeLane === \"annotation\") {\n break;\n }\n var annotationIndex = this.$findNearestAnnotation(this.activeRowIndex);\n if (annotationIndex == null) {\n break;\n }\n this.activeLane = \"annotation\";\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = annotationIndex;\n this.$focusAnnotation(this.activeRowIndex);\n break;\n case \"fold\":\n if (this.activeLane === \"fold\") {\n break;\n }\n var foldWidgetIndex = this.$findNearestFoldWidget(this.activeRowIndex);\n if (foldWidgetIndex == null) {\n break;\n }\n this.activeLane = \"fold\";\n this.$blurAnnotation(this.activeRowIndex);\n this.activeRowIndex = foldWidgetIndex;\n this.$focusFoldWidget(this.activeRowIndex);\n break;\n }\n return;\n };\n GutterKeyboardHandler.prototype.$rowIndexToRow = function (index) {\n var cell = this.lines.get(index);\n if (cell)\n return cell.row;\n return null;\n };\n GutterKeyboardHandler.prototype.$rowToRowIndex = function (row) {\n for (var i = 0; i < this.lines.getLength(); i++) {\n var cell = this.lines.get(i);\n if (cell.row == row)\n return i;\n }\n return null;\n };\n return GutterKeyboardHandler;\n}());\nexports.GutterKeyboardHandler = GutterKeyboardHandler;\nvar GutterKeyboardEvent = /** @class */ (function () {\n function GutterKeyboardEvent(domEvent, gutterKeyboardHandler) {\n this.gutterKeyboardHandler = gutterKeyboardHandler;\n this.domEvent = domEvent;\n }\n GutterKeyboardEvent.prototype.getKey = function () {\n return keys.keyCodeToString(this.domEvent.keyCode);\n };\n GutterKeyboardEvent.prototype.getRow = function () {\n return this.gutterKeyboardHandler.$rowIndexToRow(this.gutterKeyboardHandler.activeRowIndex);\n };\n GutterKeyboardEvent.prototype.isInAnnotationLane = function () {\n return this.gutterKeyboardHandler.activeLane === \"annotation\";\n };\n GutterKeyboardEvent.prototype.isInFoldLane = function () {\n return this.gutterKeyboardHandler.activeLane === \"fold\";\n };\n return GutterKeyboardEvent;\n}());\nexports.GutterKeyboardEvent = GutterKeyboardEvent;\n\n});\n\nace.define(\"ace/editor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/keyboard/textinput\",\"ace/mouse/mouse_handler\",\"ace/mouse/fold_handler\",\"ace/keyboard/keybinding\",\"ace/edit_session\",\"ace/search\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/commands/command_manager\",\"ace/commands/default_commands\",\"ace/config\",\"ace/token_iterator\",\"ace/line_widgets\",\"ace/keyboard/gutter_handler\",\"ace/config\",\"ace/clipboard\",\"ace/lib/keys\"], function(require, exports, module){\"use strict\";\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar lang = require(\"./lib/lang\");\nvar useragent = require(\"./lib/useragent\");\nvar TextInput = require(\"./keyboard/textinput\").TextInput;\nvar MouseHandler = require(\"./mouse/mouse_handler\").MouseHandler;\nvar FoldHandler = require(\"./mouse/fold_handler\").FoldHandler;\nvar KeyBinding = require(\"./keyboard/keybinding\").KeyBinding;\nvar EditSession = require(\"./edit_session\").EditSession;\nvar Search = require(\"./search\").Search;\nvar Range = require(\"./range\").Range;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar CommandManager = require(\"./commands/command_manager\").CommandManager;\nvar defaultCommands = require(\"./commands/default_commands\").commands;\nvar config = require(\"./config\");\nvar TokenIterator = require(\"./token_iterator\").TokenIterator;\nvar LineWidgets = require(\"./line_widgets\").LineWidgets;\nvar GutterKeyboardHandler = require(\"./keyboard/gutter_handler\").GutterKeyboardHandler;\nvar nls = require(\"./config\").nls;\nvar clipboard = require(\"./clipboard\");\nvar keys = require('./lib/keys');\nvar Editor = /** @class */ (function () {\n function Editor(renderer, session, options) {\n this.$toDestroy = [];\n var container = renderer.getContainerElement();\n this.container = container;\n this.renderer = renderer;\n this.id = \"editor\" + (++Editor.$uid);\n this.commands = new CommandManager(useragent.isMac ? \"mac\" : \"win\", defaultCommands);\n if (typeof document == \"object\") {\n this.textInput = new TextInput(renderer.getTextAreaContainer(), this);\n this.renderer.textarea = this.textInput.getElement();\n this.$mouseHandler = new MouseHandler(this);\n new FoldHandler(this);\n }\n this.keyBinding = new KeyBinding(this);\n this.$search = new Search().set({\n wrap: true\n });\n this.$historyTracker = this.$historyTracker.bind(this);\n this.commands.on(\"exec\", this.$historyTracker);\n this.$initOperationListeners();\n this._$emitInputEvent = lang.delayedCall(function () {\n this._signal(\"input\", {});\n if (this.session && !this.session.destroyed)\n this.session.bgTokenizer.scheduleStart();\n }.bind(this));\n this.on(\"change\", function (_, _self) {\n _self._$emitInputEvent.schedule(31);\n });\n this.setSession(session || options && options.session || new EditSession(\"\"));\n config.resetOptions(this);\n if (options)\n this.setOptions(options);\n config._signal(\"editor\", this);\n }\n Editor.prototype.$initOperationListeners = function () {\n this.commands.on(\"exec\", this.startOperation.bind(this), true);\n this.commands.on(\"afterExec\", this.endOperation.bind(this), true);\n this.$opResetTimer = lang.delayedCall(this.endOperation.bind(this, true));\n this.on(\"change\", function () {\n if (!this.curOp) {\n this.startOperation();\n this.curOp.selectionBefore = this.$lastSel;\n }\n this.curOp.docChanged = true;\n }.bind(this), true);\n this.on(\"changeSelection\", function () {\n if (!this.curOp) {\n this.startOperation();\n this.curOp.selectionBefore = this.$lastSel;\n }\n this.curOp.selectionChanged = true;\n }.bind(this), true);\n };\n Editor.prototype.startOperation = function (commandEvent) {\n if (this.curOp) {\n if (!commandEvent || this.curOp.command)\n return;\n this.prevOp = this.curOp;\n }\n if (!commandEvent) {\n this.previousCommand = null;\n commandEvent = {};\n }\n this.$opResetTimer.schedule();\n this.curOp = this.session.curOp = {\n command: commandEvent.command || {},\n args: commandEvent.args,\n scrollTop: this.renderer.scrollTop\n };\n this.curOp.selectionBefore = this.selection.toJSON();\n };\n Editor.prototype.endOperation = function (e) {\n if (this.curOp && this.session) {\n if (e && e.returnValue === false || !this.session)\n return (this.curOp = null);\n if (e == true && this.curOp.command && this.curOp.command.name == \"mouse\")\n return;\n this._signal(\"beforeEndOperation\");\n if (!this.curOp)\n return;\n var command = this.curOp.command;\n var scrollIntoView = command && command.scrollIntoView;\n if (scrollIntoView) {\n switch (scrollIntoView) {\n case \"center-animate\":\n scrollIntoView = \"animate\";\n case \"center\":\n this.renderer.scrollCursorIntoView(null, 0.5);\n break;\n case \"animate\":\n case \"cursor\":\n this.renderer.scrollCursorIntoView();\n break;\n case \"selectionPart\":\n var range = this.selection.getRange();\n var config = this.renderer.layerConfig;\n if (range.start.row >= config.lastRow || range.end.row <= config.firstRow) {\n this.renderer.scrollSelectionIntoView(this.selection.anchor, this.selection.lead);\n }\n break;\n default:\n break;\n }\n if (scrollIntoView == \"animate\")\n this.renderer.animateScrolling(this.curOp.scrollTop);\n }\n var sel = this.selection.toJSON();\n this.curOp.selectionAfter = sel;\n this.$lastSel = this.selection.toJSON();\n this.session.getUndoManager().addSelection(sel);\n this.prevOp = this.curOp;\n this.curOp = null;\n }\n };\n Editor.prototype.$historyTracker = function (e) {\n if (!this.$mergeUndoDeltas)\n return;\n var prev = this.prevOp;\n var mergeableCommands = this.$mergeableCommands;\n var shouldMerge = prev.command && (e.command.name == prev.command.name);\n if (e.command.name == \"insertstring\") {\n var text = e.args;\n if (this.mergeNextCommand === undefined)\n this.mergeNextCommand = true;\n shouldMerge = shouldMerge\n && this.mergeNextCommand // previous command allows to coalesce with\n && (!/\\s/.test(text) || /\\s/.test(prev.args)); // previous insertion was of same type\n this.mergeNextCommand = true;\n }\n else {\n shouldMerge = shouldMerge\n && mergeableCommands.indexOf(e.command.name) !== -1; // the command is mergeable\n }\n if (this.$mergeUndoDeltas != \"always\"\n && Date.now() - this.sequenceStartTime > 2000) {\n shouldMerge = false; // the sequence is too long\n }\n if (shouldMerge)\n this.session.mergeUndoDeltas = true;\n else if (mergeableCommands.indexOf(e.command.name) !== -1)\n this.sequenceStartTime = Date.now();\n };\n Editor.prototype.setKeyboardHandler = function (keyboardHandler, cb) {\n if (keyboardHandler && typeof keyboardHandler === \"string\" && keyboardHandler != \"ace\") {\n this.$keybindingId = keyboardHandler;\n var _self = this;\n config.loadModule([\"keybinding\", keyboardHandler], function (module) {\n if (_self.$keybindingId == keyboardHandler)\n _self.keyBinding.setKeyboardHandler(module && module.handler);\n cb && cb();\n });\n }\n else {\n this.$keybindingId = null;\n this.keyBinding.setKeyboardHandler(keyboardHandler);\n cb && cb();\n }\n };\n Editor.prototype.getKeyboardHandler = function () {\n return this.keyBinding.getKeyboardHandler();\n };\n Editor.prototype.setSession = function (session) {\n if (this.session == session)\n return;\n if (this.curOp)\n this.endOperation();\n this.curOp = {};\n var oldSession = this.session;\n if (oldSession) {\n this.session.off(\"change\", this.$onDocumentChange);\n this.session.off(\"changeMode\", this.$onChangeMode);\n this.session.off(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n this.session.off(\"changeTabSize\", this.$onChangeTabSize);\n this.session.off(\"changeWrapLimit\", this.$onChangeWrapLimit);\n this.session.off(\"changeWrapMode\", this.$onChangeWrapMode);\n this.session.off(\"changeFold\", this.$onChangeFold);\n this.session.off(\"changeFrontMarker\", this.$onChangeFrontMarker);\n this.session.off(\"changeBackMarker\", this.$onChangeBackMarker);\n this.session.off(\"changeBreakpoint\", this.$onChangeBreakpoint);\n this.session.off(\"changeAnnotation\", this.$onChangeAnnotation);\n this.session.off(\"changeOverwrite\", this.$onCursorChange);\n this.session.off(\"changeScrollTop\", this.$onScrollTopChange);\n this.session.off(\"changeScrollLeft\", this.$onScrollLeftChange);\n var selection = this.session.getSelection();\n selection.off(\"changeCursor\", this.$onCursorChange);\n selection.off(\"changeSelection\", this.$onSelectionChange);\n }\n this.session = session;\n if (session) {\n this.$onDocumentChange = this.onDocumentChange.bind(this);\n session.on(\"change\", this.$onDocumentChange);\n this.renderer.setSession(session);\n this.$onChangeMode = this.onChangeMode.bind(this);\n session.on(\"changeMode\", this.$onChangeMode);\n this.$onTokenizerUpdate = this.onTokenizerUpdate.bind(this);\n session.on(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n this.$onChangeTabSize = this.renderer.onChangeTabSize.bind(this.renderer);\n session.on(\"changeTabSize\", this.$onChangeTabSize);\n this.$onChangeWrapLimit = this.onChangeWrapLimit.bind(this);\n session.on(\"changeWrapLimit\", this.$onChangeWrapLimit);\n this.$onChangeWrapMode = this.onChangeWrapMode.bind(this);\n session.on(\"changeWrapMode\", this.$onChangeWrapMode);\n this.$onChangeFold = this.onChangeFold.bind(this);\n session.on(\"changeFold\", this.$onChangeFold);\n this.$onChangeFrontMarker = this.onChangeFrontMarker.bind(this);\n this.session.on(\"changeFrontMarker\", this.$onChangeFrontMarker);\n this.$onChangeBackMarker = this.onChangeBackMarker.bind(this);\n this.session.on(\"changeBackMarker\", this.$onChangeBackMarker);\n this.$onChangeBreakpoint = this.onChangeBreakpoint.bind(this);\n this.session.on(\"changeBreakpoint\", this.$onChangeBreakpoint);\n this.$onChangeAnnotation = this.onChangeAnnotation.bind(this);\n this.session.on(\"changeAnnotation\", this.$onChangeAnnotation);\n this.$onCursorChange = this.onCursorChange.bind(this);\n this.session.on(\"changeOverwrite\", this.$onCursorChange);\n this.$onScrollTopChange = this.onScrollTopChange.bind(this);\n this.session.on(\"changeScrollTop\", this.$onScrollTopChange);\n this.$onScrollLeftChange = this.onScrollLeftChange.bind(this);\n this.session.on(\"changeScrollLeft\", this.$onScrollLeftChange);\n this.selection = session.getSelection();\n this.selection.on(\"changeCursor\", this.$onCursorChange);\n this.$onSelectionChange = this.onSelectionChange.bind(this);\n this.selection.on(\"changeSelection\", this.$onSelectionChange);\n this.onChangeMode();\n this.onCursorChange();\n this.onScrollTopChange();\n this.onScrollLeftChange();\n this.onSelectionChange();\n this.onChangeFrontMarker();\n this.onChangeBackMarker();\n this.onChangeBreakpoint();\n this.onChangeAnnotation();\n this.session.getUseWrapMode() && this.renderer.adjustWrapLimit();\n this.renderer.updateFull();\n }\n else {\n this.selection = null;\n this.renderer.setSession(session);\n }\n this._signal(\"changeSession\", {\n session: session,\n oldSession: oldSession\n });\n this.curOp = null;\n oldSession && oldSession._signal(\"changeEditor\", { oldEditor: this });\n session && session._signal(\"changeEditor\", { editor: this });\n if (session && !session.destroyed)\n session.bgTokenizer.scheduleStart();\n };\n Editor.prototype.getSession = function () {\n return this.session;\n };\n Editor.prototype.setValue = function (val, cursorPos) {\n this.session.doc.setValue(val);\n if (!cursorPos)\n this.selectAll();\n else if (cursorPos == 1)\n this.navigateFileEnd();\n else if (cursorPos == -1)\n this.navigateFileStart();\n return val;\n };\n Editor.prototype.getValue = function () {\n return this.session.getValue();\n };\n Editor.prototype.getSelection = function () {\n return this.selection;\n };\n Editor.prototype.resize = function (force) {\n this.renderer.onResize(force);\n };\n Editor.prototype.setTheme = function (theme, cb) {\n this.renderer.setTheme(theme, cb);\n };\n Editor.prototype.getTheme = function () {\n return this.renderer.getTheme();\n };\n Editor.prototype.setStyle = function (style) {\n this.renderer.setStyle(style);\n };\n Editor.prototype.unsetStyle = function (style) {\n this.renderer.unsetStyle(style);\n };\n Editor.prototype.getFontSize = function () {\n return this.getOption(\"fontSize\") ||\n dom.computedStyle(this.container).fontSize;\n };\n Editor.prototype.setFontSize = function (size) {\n this.setOption(\"fontSize\", size);\n };\n Editor.prototype.$highlightBrackets = function () {\n if (this.$highlightPending) {\n return;\n }\n var self = this;\n this.$highlightPending = true;\n setTimeout(function () {\n self.$highlightPending = false;\n var session = self.session;\n if (!session || session.destroyed)\n return;\n if (session.$bracketHighlight) {\n session.$bracketHighlight.markerIds.forEach(function (id) {\n session.removeMarker(id);\n });\n session.$bracketHighlight = null;\n }\n var pos = self.getCursorPosition();\n var handler = self.getKeyboardHandler();\n var isBackwards = handler && handler.$getDirectionForHighlight && handler.$getDirectionForHighlight(self);\n var ranges = session.getMatchingBracketRanges(pos, isBackwards);\n if (!ranges) {\n var iterator = new TokenIterator(session, pos.row, pos.column);\n var token = iterator.getCurrentToken();\n if (token && /\\b(?:tag-open|tag-name)/.test(token.type)) {\n var tagNamesRanges = session.getMatchingTags(pos);\n if (tagNamesRanges)\n ranges = [tagNamesRanges.openTagName, tagNamesRanges.closeTagName];\n }\n }\n if (!ranges && session.$mode.getMatching)\n ranges = session.$mode.getMatching(self.session);\n if (!ranges) {\n if (self.getHighlightIndentGuides())\n self.renderer.$textLayer.$highlightIndentGuide();\n return;\n }\n var markerType = \"ace_bracket\";\n if (!Array.isArray(ranges)) {\n ranges = [ranges];\n }\n else if (ranges.length == 1) {\n markerType = \"ace_error_bracket\";\n }\n if (ranges.length == 2) {\n if (Range.comparePoints(ranges[0].end, ranges[1].start) == 0)\n ranges = [Range.fromPoints(ranges[0].start, ranges[1].end)];\n else if (Range.comparePoints(ranges[0].start, ranges[1].end) == 0)\n ranges = [Range.fromPoints(ranges[1].start, ranges[0].end)];\n }\n session.$bracketHighlight = {\n ranges: ranges,\n markerIds: ranges.map(function (range) {\n return session.addMarker(range, markerType, \"text\");\n })\n };\n if (self.getHighlightIndentGuides())\n self.renderer.$textLayer.$highlightIndentGuide();\n }, 50);\n };\n Editor.prototype.focus = function () {\n this.textInput.focus();\n };\n Editor.prototype.isFocused = function () {\n return this.textInput.isFocused();\n };\n Editor.prototype.blur = function () {\n this.textInput.blur();\n };\n Editor.prototype.onFocus = function (e) {\n if (this.$isFocused)\n return;\n this.$isFocused = true;\n this.renderer.showCursor();\n this.renderer.visualizeFocus();\n this._emit(\"focus\", e);\n };\n Editor.prototype.onBlur = function (e) {\n if (!this.$isFocused)\n return;\n this.$isFocused = false;\n this.renderer.hideCursor();\n this.renderer.visualizeBlur();\n this._emit(\"blur\", e);\n };\n Editor.prototype.$cursorChange = function () {\n this.renderer.updateCursor();\n this.$highlightBrackets();\n this.$updateHighlightActiveLine();\n };\n Editor.prototype.onDocumentChange = function (delta) {\n var wrap = this.session.$useWrapMode;\n var lastRow = (delta.start.row == delta.end.row ? delta.end.row : Infinity);\n this.renderer.updateLines(delta.start.row, lastRow, wrap);\n this._signal(\"change\", delta);\n this.$cursorChange();\n };\n Editor.prototype.onTokenizerUpdate = function (e) {\n var rows = e.data;\n this.renderer.updateLines(rows.first, rows.last);\n };\n Editor.prototype.onScrollTopChange = function () {\n this.renderer.scrollToY(this.session.getScrollTop());\n };\n Editor.prototype.onScrollLeftChange = function () {\n this.renderer.scrollToX(this.session.getScrollLeft());\n };\n Editor.prototype.onCursorChange = function () {\n this.$cursorChange();\n this._signal(\"changeSelection\");\n };\n Editor.prototype.$updateHighlightActiveLine = function () {\n var session = this.getSession();\n var highlight;\n if (this.$highlightActiveLine) {\n if (this.$selectionStyle != \"line\" || !this.selection.isMultiLine())\n highlight = this.getCursorPosition();\n if (this.renderer.theme && this.renderer.theme.$selectionColorConflict && !this.selection.isEmpty())\n highlight = false;\n if (this.renderer.$maxLines && this.session.getLength() === 1 && !(this.renderer.$minLines > 1))\n highlight = false;\n }\n if (session.$highlightLineMarker && !highlight) {\n session.removeMarker(session.$highlightLineMarker.id);\n session.$highlightLineMarker = null;\n }\n else if (!session.$highlightLineMarker && highlight) {\n var range = new Range(highlight.row, highlight.column, highlight.row, Infinity);\n range.id = session.addMarker(range, \"ace_active-line\", \"screenLine\");\n session.$highlightLineMarker = range;\n }\n else if (highlight) {\n session.$highlightLineMarker.start.row = highlight.row;\n session.$highlightLineMarker.end.row = highlight.row;\n session.$highlightLineMarker.start.column = highlight.column;\n session._signal(\"changeBackMarker\");\n }\n };\n Editor.prototype.onSelectionChange = function (e) {\n var session = this.session;\n if (session.$selectionMarker) {\n session.removeMarker(session.$selectionMarker);\n }\n session.$selectionMarker = null;\n if (!this.selection.isEmpty()) {\n var range = this.selection.getRange();\n var style = this.getSelectionStyle();\n session.$selectionMarker = session.addMarker(range, \"ace_selection\", style);\n }\n else {\n this.$updateHighlightActiveLine();\n }\n var re = this.$highlightSelectedWord && this.$getSelectionHighLightRegexp();\n this.session.highlight(re);\n this._signal(\"changeSelection\");\n };\n Editor.prototype.$getSelectionHighLightRegexp = function () {\n var session = this.session;\n var selection = this.getSelectionRange();\n if (selection.isEmpty() || selection.isMultiLine())\n return;\n var startColumn = selection.start.column;\n var endColumn = selection.end.column;\n var line = session.getLine(selection.start.row);\n var needle = line.substring(startColumn, endColumn);\n if (needle.length > 5000 || !/[\\w\\d]/.test(needle))\n return;\n var re = this.$search.$assembleRegExp({\n wholeWord: true,\n caseSensitive: true,\n needle: needle\n });\n var wordWithBoundary = line.substring(startColumn - 1, endColumn + 1);\n if (!re.test(wordWithBoundary))\n return;\n return re;\n };\n Editor.prototype.onChangeFrontMarker = function () {\n this.renderer.updateFrontMarkers();\n };\n Editor.prototype.onChangeBackMarker = function () {\n this.renderer.updateBackMarkers();\n };\n Editor.prototype.onChangeBreakpoint = function () {\n this.renderer.updateBreakpoints();\n };\n Editor.prototype.onChangeAnnotation = function () {\n this.renderer.setAnnotations(this.session.getAnnotations());\n };\n Editor.prototype.onChangeMode = function (e) {\n this.renderer.updateText();\n this._emit(\"changeMode\", e);\n };\n Editor.prototype.onChangeWrapLimit = function () {\n this.renderer.updateFull();\n };\n Editor.prototype.onChangeWrapMode = function () {\n this.renderer.onResize(true);\n };\n Editor.prototype.onChangeFold = function () {\n this.$updateHighlightActiveLine();\n this.renderer.updateFull();\n };\n Editor.prototype.getSelectedText = function () {\n return this.session.getTextRange(this.getSelectionRange());\n };\n Editor.prototype.getCopyText = function () {\n var text = this.getSelectedText();\n var nl = this.session.doc.getNewLineCharacter();\n var copyLine = false;\n if (!text && this.$copyWithEmptySelection) {\n copyLine = true;\n var ranges = this.selection.getAllRanges();\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n if (i && ranges[i - 1].start.row == range.start.row)\n continue;\n text += this.session.getLine(range.start.row) + nl;\n }\n }\n var e = { text: text };\n this._signal(\"copy\", e);\n clipboard.lineMode = copyLine ? e.text : false;\n return e.text;\n };\n Editor.prototype.onCopy = function () {\n this.commands.exec(\"copy\", this);\n };\n Editor.prototype.onCut = function () {\n this.commands.exec(\"cut\", this);\n };\n Editor.prototype.onPaste = function (text, event) {\n var e = { text: text, event: event };\n this.commands.exec(\"paste\", this, e);\n };\n Editor.prototype.$handlePaste = function (e) {\n if (typeof e == \"string\")\n e = { text: e };\n this._signal(\"paste\", e);\n var text = e.text;\n var lineMode = text === clipboard.lineMode;\n var session = this.session;\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode) {\n if (lineMode)\n session.insert({ row: this.selection.lead.row, column: 0 }, text);\n else\n this.insert(text);\n }\n else if (lineMode) {\n this.selection.rangeList.ranges.forEach(function (range) {\n session.insert({ row: range.start.row, column: 0 }, text);\n });\n }\n else {\n var lines = text.split(/\\r\\n|\\r|\\n/);\n var ranges = this.selection.rangeList.ranges;\n var isFullLine = lines.length == 2 && (!lines[0] || !lines[1]);\n if (lines.length != ranges.length || isFullLine)\n return this.commands.exec(\"insertstring\", this, text);\n for (var i = ranges.length; i--;) {\n var range = ranges[i];\n if (!range.isEmpty())\n session.remove(range);\n session.insert(range.start, lines[i]);\n }\n }\n };\n Editor.prototype.execCommand = function (command, args) {\n return this.commands.exec(command, this, args);\n };\n Editor.prototype.insert = function (text, pasted) {\n var session = this.session;\n var mode = session.getMode();\n var cursor = this.getCursorPosition();\n if (this.getBehavioursEnabled() && !pasted) {\n var transform = mode.transformAction(session.getState(cursor.row), 'insertion', this, session, text);\n if (transform) {\n if (text !== transform.text) {\n if (!this.inVirtualSelectionMode) {\n this.session.mergeUndoDeltas = false;\n this.mergeNextCommand = false;\n }\n }\n text = transform.text;\n }\n }\n if (text == \"\\t\")\n text = this.session.getTabString();\n if (!this.selection.isEmpty()) {\n var range = this.getSelectionRange();\n cursor = this.session.remove(range);\n this.clearSelection();\n }\n else if (this.session.getOverwrite() && text.indexOf(\"\\n\") == -1) {\n var range = new Range.fromPoints(cursor, cursor);\n range.end.column += text.length;\n this.session.remove(range);\n }\n if (text == \"\\n\" || text == \"\\r\\n\") {\n var line = session.getLine(cursor.row);\n if (cursor.column > line.search(/\\S|$/)) {\n var d = line.substr(cursor.column).search(/\\S|$/);\n session.doc.removeInLine(cursor.row, cursor.column, cursor.column + d);\n }\n }\n this.clearSelection();\n var start = cursor.column;\n var lineState = session.getState(cursor.row);\n var line = session.getLine(cursor.row);\n var shouldOutdent = mode.checkOutdent(lineState, line, text);\n session.insert(cursor, text);\n if (transform && transform.selection) {\n if (transform.selection.length == 2) { // Transform relative to the current column\n this.selection.setSelectionRange(new Range(cursor.row, start + transform.selection[0], cursor.row, start + transform.selection[1]));\n }\n else { // Transform relative to the current row.\n this.selection.setSelectionRange(new Range(cursor.row + transform.selection[0], transform.selection[1], cursor.row + transform.selection[2], transform.selection[3]));\n }\n }\n if (this.$enableAutoIndent) {\n if (session.getDocument().isNewLine(text)) {\n var lineIndent = mode.getNextLineIndent(lineState, line.slice(0, cursor.column), session.getTabString());\n session.insert({ row: cursor.row + 1, column: 0 }, lineIndent);\n }\n if (shouldOutdent)\n mode.autoOutdent(lineState, session, cursor.row);\n }\n };\n Editor.prototype.autoIndent = function () {\n var session = this.session;\n var mode = session.getMode();\n var startRow, endRow;\n if (this.selection.isEmpty()) {\n startRow = 0;\n endRow = session.doc.getLength() - 1;\n }\n else {\n var selectedRange = this.getSelectionRange();\n startRow = selectedRange.start.row;\n endRow = selectedRange.end.row;\n }\n var prevLineState = \"\";\n var prevLine = \"\";\n var lineIndent = \"\";\n var line, currIndent, range;\n var tab = session.getTabString();\n for (var row = startRow; row <= endRow; row++) {\n if (row > 0) {\n prevLineState = session.getState(row - 1);\n prevLine = session.getLine(row - 1);\n lineIndent = mode.getNextLineIndent(prevLineState, prevLine, tab);\n }\n line = session.getLine(row);\n currIndent = mode.$getIndent(line);\n if (lineIndent !== currIndent) {\n if (currIndent.length > 0) {\n range = new Range(row, 0, row, currIndent.length);\n session.remove(range);\n }\n if (lineIndent.length > 0) {\n session.insert({ row: row, column: 0 }, lineIndent);\n }\n }\n mode.autoOutdent(prevLineState, session, row);\n }\n };\n Editor.prototype.onTextInput = function (text, composition) {\n if (!composition)\n return this.keyBinding.onTextInput(text);\n this.startOperation({ command: { name: \"insertstring\" } });\n var applyComposition = this.applyComposition.bind(this, text, composition);\n if (this.selection.rangeCount)\n this.forEachSelection(applyComposition);\n else\n applyComposition();\n this.endOperation();\n };\n Editor.prototype.applyComposition = function (text, composition) {\n if (composition.extendLeft || composition.extendRight) {\n var r = this.selection.getRange();\n r.start.column -= composition.extendLeft;\n r.end.column += composition.extendRight;\n if (r.start.column < 0) {\n r.start.row--;\n r.start.column += this.session.getLine(r.start.row).length + 1;\n }\n this.selection.setRange(r);\n if (!text && !r.isEmpty())\n this.remove();\n }\n if (text || !this.selection.isEmpty())\n this.insert(text, true);\n if (composition.restoreStart || composition.restoreEnd) {\n var r = this.selection.getRange();\n r.start.column -= composition.restoreStart;\n r.end.column -= composition.restoreEnd;\n this.selection.setRange(r);\n }\n };\n Editor.prototype.onCommandKey = function (e, hashId, keyCode) {\n return this.keyBinding.onCommandKey(e, hashId, keyCode);\n };\n Editor.prototype.setOverwrite = function (overwrite) {\n this.session.setOverwrite(overwrite);\n };\n Editor.prototype.getOverwrite = function () {\n return this.session.getOverwrite();\n };\n Editor.prototype.toggleOverwrite = function () {\n this.session.toggleOverwrite();\n };\n Editor.prototype.setScrollSpeed = function (speed) {\n this.setOption(\"scrollSpeed\", speed);\n };\n Editor.prototype.getScrollSpeed = function () {\n return this.getOption(\"scrollSpeed\");\n };\n Editor.prototype.setDragDelay = function (dragDelay) {\n this.setOption(\"dragDelay\", dragDelay);\n };\n Editor.prototype.getDragDelay = function () {\n return this.getOption(\"dragDelay\");\n };\n Editor.prototype.setSelectionStyle = function (val) {\n this.setOption(\"selectionStyle\", val);\n };\n Editor.prototype.getSelectionStyle = function () {\n return this.getOption(\"selectionStyle\");\n };\n Editor.prototype.setHighlightActiveLine = function (shouldHighlight) {\n this.setOption(\"highlightActiveLine\", shouldHighlight);\n };\n Editor.prototype.getHighlightActiveLine = function () {\n return this.getOption(\"highlightActiveLine\");\n };\n Editor.prototype.setHighlightGutterLine = function (shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n Editor.prototype.getHighlightGutterLine = function () {\n return this.getOption(\"highlightGutterLine\");\n };\n Editor.prototype.setHighlightSelectedWord = function (shouldHighlight) {\n this.setOption(\"highlightSelectedWord\", shouldHighlight);\n };\n Editor.prototype.getHighlightSelectedWord = function () {\n return this.$highlightSelectedWord;\n };\n Editor.prototype.setAnimatedScroll = function (shouldAnimate) {\n this.renderer.setAnimatedScroll(shouldAnimate);\n };\n Editor.prototype.getAnimatedScroll = function () {\n return this.renderer.getAnimatedScroll();\n };\n Editor.prototype.setShowInvisibles = function (showInvisibles) {\n this.renderer.setShowInvisibles(showInvisibles);\n };\n Editor.prototype.getShowInvisibles = function () {\n return this.renderer.getShowInvisibles();\n };\n Editor.prototype.setDisplayIndentGuides = function (display) {\n this.renderer.setDisplayIndentGuides(display);\n };\n Editor.prototype.getDisplayIndentGuides = function () {\n return this.renderer.getDisplayIndentGuides();\n };\n Editor.prototype.setHighlightIndentGuides = function (highlight) {\n this.renderer.setHighlightIndentGuides(highlight);\n };\n Editor.prototype.getHighlightIndentGuides = function () {\n return this.renderer.getHighlightIndentGuides();\n };\n Editor.prototype.setShowPrintMargin = function (showPrintMargin) {\n this.renderer.setShowPrintMargin(showPrintMargin);\n };\n Editor.prototype.getShowPrintMargin = function () {\n return this.renderer.getShowPrintMargin();\n };\n Editor.prototype.setPrintMarginColumn = function (showPrintMargin) {\n this.renderer.setPrintMarginColumn(showPrintMargin);\n };\n Editor.prototype.getPrintMarginColumn = function () {\n return this.renderer.getPrintMarginColumn();\n };\n Editor.prototype.setReadOnly = function (readOnly) {\n this.setOption(\"readOnly\", readOnly);\n };\n Editor.prototype.getReadOnly = function () {\n return this.getOption(\"readOnly\");\n };\n Editor.prototype.setBehavioursEnabled = function (enabled) {\n this.setOption(\"behavioursEnabled\", enabled);\n };\n Editor.prototype.getBehavioursEnabled = function () {\n return this.getOption(\"behavioursEnabled\");\n };\n Editor.prototype.setWrapBehavioursEnabled = function (enabled) {\n this.setOption(\"wrapBehavioursEnabled\", enabled);\n };\n Editor.prototype.getWrapBehavioursEnabled = function () {\n return this.getOption(\"wrapBehavioursEnabled\");\n };\n Editor.prototype.setShowFoldWidgets = function (show) {\n this.setOption(\"showFoldWidgets\", show);\n };\n Editor.prototype.getShowFoldWidgets = function () {\n return this.getOption(\"showFoldWidgets\");\n };\n Editor.prototype.setFadeFoldWidgets = function (fade) {\n this.setOption(\"fadeFoldWidgets\", fade);\n };\n Editor.prototype.getFadeFoldWidgets = function () {\n return this.getOption(\"fadeFoldWidgets\");\n };\n Editor.prototype.remove = function (dir) {\n if (this.selection.isEmpty()) {\n if (dir == \"left\")\n this.selection.selectLeft();\n else\n this.selection.selectRight();\n }\n var range = this.getSelectionRange();\n if (this.getBehavioursEnabled()) {\n var session = this.session;\n var state = session.getState(range.start.row);\n var new_range = session.getMode().transformAction(state, 'deletion', this, session, range);\n if (range.end.column === 0) {\n var text = session.getTextRange(range);\n if (text[text.length - 1] == \"\\n\") {\n var line = session.getLine(range.end.row);\n if (/^\\s+$/.test(line)) {\n range.end.column = line.length;\n }\n }\n }\n if (new_range)\n range = new_range;\n }\n this.session.remove(range);\n this.clearSelection();\n };\n Editor.prototype.removeWordRight = function () {\n if (this.selection.isEmpty())\n this.selection.selectWordRight();\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n Editor.prototype.removeWordLeft = function () {\n if (this.selection.isEmpty())\n this.selection.selectWordLeft();\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n Editor.prototype.removeToLineStart = function () {\n if (this.selection.isEmpty())\n this.selection.selectLineStart();\n if (this.selection.isEmpty())\n this.selection.selectLeft();\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n Editor.prototype.removeToLineEnd = function () {\n if (this.selection.isEmpty())\n this.selection.selectLineEnd();\n var range = this.getSelectionRange();\n if (range.start.column == range.end.column && range.start.row == range.end.row) {\n range.end.column = 0;\n range.end.row++;\n }\n this.session.remove(range);\n this.clearSelection();\n };\n Editor.prototype.splitLine = function () {\n if (!this.selection.isEmpty()) {\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n }\n var cursor = this.getCursorPosition();\n this.insert(\"\\n\");\n this.moveCursorToPosition(cursor);\n };\n Editor.prototype.setGhostText = function (text, position) {\n if (!this.session.widgetManager) {\n this.session.widgetManager = new LineWidgets(this.session);\n this.session.widgetManager.attach(this);\n }\n this.renderer.setGhostText(text, position);\n };\n Editor.prototype.removeGhostText = function () {\n if (!this.session.widgetManager)\n return;\n this.renderer.removeGhostText();\n };\n Editor.prototype.transposeLetters = function () {\n if (!this.selection.isEmpty()) {\n return;\n }\n var cursor = this.getCursorPosition();\n var column = cursor.column;\n if (column === 0)\n return;\n var line = this.session.getLine(cursor.row);\n var swap, range;\n if (column < line.length) {\n swap = line.charAt(column) + line.charAt(column - 1);\n range = new Range(cursor.row, column - 1, cursor.row, column + 1);\n }\n else {\n swap = line.charAt(column - 1) + line.charAt(column - 2);\n range = new Range(cursor.row, column - 2, cursor.row, column);\n }\n this.session.replace(range, swap);\n this.session.selection.moveToPosition(range.end);\n };\n Editor.prototype.toLowerCase = function () {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toLowerCase());\n this.selection.setSelectionRange(originalRange);\n };\n Editor.prototype.toUpperCase = function () {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toUpperCase());\n this.selection.setSelectionRange(originalRange);\n };\n Editor.prototype.indent = function () {\n var session = this.session;\n var range = this.getSelectionRange();\n if (range.start.row < range.end.row) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n }\n else if (range.start.column < range.end.column) {\n var text = session.getTextRange(range);\n if (!/^\\s+$/.test(text)) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n }\n }\n var line = session.getLine(range.start.row);\n var position = range.start;\n var size = session.getTabSize();\n var column = session.documentToScreenColumn(position.row, position.column);\n if (this.session.getUseSoftTabs()) {\n var count = (size - column % size);\n var indentString = lang.stringRepeat(\" \", count);\n }\n else {\n var count = column % size;\n while (line[range.start.column - 1] == \" \" && count) {\n range.start.column--;\n count--;\n }\n this.selection.setSelectionRange(range);\n indentString = \"\\t\";\n }\n return this.insert(indentString);\n };\n Editor.prototype.blockIndent = function () {\n var rows = this.$getSelectedRows();\n this.session.indentRows(rows.first, rows.last, \"\\t\");\n };\n Editor.prototype.blockOutdent = function () {\n var selection = this.session.getSelection();\n this.session.outdentRows(selection.getRange());\n };\n Editor.prototype.sortLines = function () {\n var rows = this.$getSelectedRows();\n var session = this.session;\n var lines = [];\n for (var i = rows.first; i <= rows.last; i++)\n lines.push(session.getLine(i));\n lines.sort(function (a, b) {\n if (a.toLowerCase() < b.toLowerCase())\n return -1;\n if (a.toLowerCase() > b.toLowerCase())\n return 1;\n return 0;\n });\n var deleteRange = new Range(0, 0, 0, 0);\n for (var i = rows.first; i <= rows.last; i++) {\n var line = session.getLine(i);\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n deleteRange.end.column = line.length;\n session.replace(deleteRange, lines[i - rows.first]);\n }\n };\n Editor.prototype.toggleCommentLines = function () {\n var state = this.session.getState(this.getCursorPosition().row);\n var rows = this.$getSelectedRows();\n this.session.getMode().toggleCommentLines(state, this.session, rows.first, rows.last);\n };\n Editor.prototype.toggleBlockComment = function () {\n var cursor = this.getCursorPosition();\n var state = this.session.getState(cursor.row);\n var range = this.getSelectionRange();\n this.session.getMode().toggleBlockComment(state, this.session, range, cursor);\n };\n Editor.prototype.getNumberAt = function (row, column) {\n var _numberRx = /[\\-]?[0-9]+(?:\\.[0-9]+)?/g;\n _numberRx.lastIndex = 0;\n var s = this.session.getLine(row);\n while (_numberRx.lastIndex < column) {\n var m = _numberRx.exec(s);\n if (m.index <= column && m.index + m[0].length >= column) {\n var number = {\n value: m[0],\n start: m.index,\n end: m.index + m[0].length\n };\n return number;\n }\n }\n return null;\n };\n Editor.prototype.modifyNumber = function (amount) {\n var row = this.selection.getCursor().row;\n var column = this.selection.getCursor().column;\n var charRange = new Range(row, column - 1, row, column);\n var c = this.session.getTextRange(charRange);\n if (!isNaN(parseFloat(c)) && isFinite(c)) {\n var nr = this.getNumberAt(row, column);\n if (nr) {\n var fp = nr.value.indexOf(\".\") >= 0 ? nr.start + nr.value.indexOf(\".\") + 1 : nr.end;\n var decimals = nr.start + nr.value.length - fp;\n var t = parseFloat(nr.value);\n t *= Math.pow(10, decimals);\n if (fp !== nr.end && column < fp) {\n amount *= Math.pow(10, nr.end - column - 1);\n }\n else {\n amount *= Math.pow(10, nr.end - column);\n }\n t += amount;\n t /= Math.pow(10, decimals);\n var nnr = t.toFixed(decimals);\n var replaceRange = new Range(row, nr.start, row, nr.end);\n this.session.replace(replaceRange, nnr);\n this.moveCursorTo(row, Math.max(nr.start + 1, column + nnr.length - nr.value.length));\n }\n }\n else {\n this.toggleWord();\n }\n };\n Editor.prototype.toggleWord = function () {\n var row = this.selection.getCursor().row;\n var column = this.selection.getCursor().column;\n this.selection.selectWord();\n var currentState = this.getSelectedText();\n var currWordStart = this.selection.getWordRange().start.column;\n var wordParts = currentState.replace(/([a-z]+|[A-Z]+)(?=[A-Z_]|$)/g, '$1 ').split(/\\s/);\n var delta = column - currWordStart - 1;\n if (delta < 0)\n delta = 0;\n var curLength = 0, itLength = 0;\n var that = this;\n if (currentState.match(/[A-Za-z0-9_]+/)) {\n wordParts.forEach(function (item, i) {\n itLength = curLength + item.length;\n if (delta >= curLength && delta <= itLength) {\n currentState = item;\n that.selection.clearSelection();\n that.moveCursorTo(row, curLength + currWordStart);\n that.selection.selectTo(row, itLength + currWordStart);\n }\n curLength = itLength;\n });\n }\n var wordPairs = this.$toggleWordPairs;\n var reg;\n for (var i = 0; i < wordPairs.length; i++) {\n var item = wordPairs[i];\n for (var j = 0; j <= 1; j++) {\n var negate = +!j;\n var firstCondition = currentState.match(new RegExp('^\\\\s?_?(' + lang.escapeRegExp(item[j]) + ')\\\\s?$', 'i'));\n if (firstCondition) {\n var secondCondition = currentState.match(new RegExp('([_]|^|\\\\s)(' + lang.escapeRegExp(firstCondition[1]) + ')($|\\\\s)', 'g'));\n if (secondCondition) {\n reg = currentState.replace(new RegExp(lang.escapeRegExp(item[j]), 'i'), function (result) {\n var res = item[negate];\n if (result.toUpperCase() == result) {\n res = res.toUpperCase();\n }\n else if (result.charAt(0).toUpperCase() == result.charAt(0)) {\n res = res.substr(0, 0) + item[negate].charAt(0).toUpperCase() + res.substr(1);\n }\n return res;\n });\n this.insert(reg);\n reg = \"\";\n }\n }\n }\n }\n };\n Editor.prototype.findLinkAt = function (row, column) {\n var e_1, _a;\n var line = this.session.getLine(row);\n var wordParts = line.split(/((?:https?|ftp):\\/\\/[\\S]+)/);\n var columnPosition = column;\n if (columnPosition < 0)\n columnPosition = 0;\n var previousPosition = 0, currentPosition = 0, match;\n try {\n for (var wordParts_1 = __values(wordParts), wordParts_1_1 = wordParts_1.next(); !wordParts_1_1.done; wordParts_1_1 = wordParts_1.next()) {\n var item = wordParts_1_1.value;\n currentPosition = previousPosition + item.length;\n if (columnPosition >= previousPosition && columnPosition <= currentPosition) {\n if (item.match(/((?:https?|ftp):\\/\\/[\\S]+)/)) {\n match = item.replace(/[\\s:.,'\";}\\]]+$/, \"\");\n break;\n }\n }\n previousPosition = currentPosition;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (wordParts_1_1 && !wordParts_1_1.done && (_a = wordParts_1.return)) _a.call(wordParts_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return match;\n };\n Editor.prototype.openLink = function () {\n var cursor = this.selection.getCursor();\n var url = this.findLinkAt(cursor.row, cursor.column);\n if (url)\n window.open(url, '_blank');\n return url != null;\n };\n Editor.prototype.removeLines = function () {\n var rows = this.$getSelectedRows();\n this.session.removeFullLines(rows.first, rows.last);\n this.clearSelection();\n };\n Editor.prototype.duplicateSelection = function () {\n var sel = this.selection;\n var doc = this.session;\n var range = sel.getRange();\n var reverse = sel.isBackwards();\n if (range.isEmpty()) {\n var row = range.start.row;\n doc.duplicateLines(row, row);\n }\n else {\n var point = reverse ? range.start : range.end;\n var endPoint = doc.insert(point, doc.getTextRange(range), false);\n range.start = point;\n range.end = endPoint;\n sel.setSelectionRange(range, reverse);\n }\n };\n Editor.prototype.moveLinesDown = function () {\n this.$moveLines(1, false);\n };\n Editor.prototype.moveLinesUp = function () {\n this.$moveLines(-1, false);\n };\n Editor.prototype.moveText = function (range, toPosition, copy) {\n return this.session.moveText(range, toPosition, copy);\n };\n Editor.prototype.copyLinesUp = function () {\n this.$moveLines(-1, true);\n };\n Editor.prototype.copyLinesDown = function () {\n this.$moveLines(1, true);\n };\n Editor.prototype.$moveLines = function (dir, copy) {\n var rows, moved;\n var selection = this.selection;\n if (!selection.inMultiSelectMode || this.inVirtualSelectionMode) {\n var range = selection.toOrientedRange();\n rows = this.$getSelectedRows(range);\n moved = this.session.$moveLines(rows.first, rows.last, copy ? 0 : dir);\n if (copy && dir == -1)\n moved = 0;\n range.moveBy(moved, 0);\n selection.fromOrientedRange(range);\n }\n else {\n var ranges = selection.rangeList.ranges;\n selection.rangeList.detach(this.session);\n this.inVirtualSelectionMode = true;\n var diff = 0;\n var totalDiff = 0;\n var l = ranges.length;\n for (var i = 0; i < l; i++) {\n var rangeIndex = i;\n ranges[i].moveBy(diff, 0);\n rows = this.$getSelectedRows(ranges[i]);\n var first = rows.first;\n var last = rows.last;\n while (++i < l) {\n if (totalDiff)\n ranges[i].moveBy(totalDiff, 0);\n var subRows = this.$getSelectedRows(ranges[i]);\n if (copy && subRows.first != last)\n break;\n else if (!copy && subRows.first > last + 1)\n break;\n last = subRows.last;\n }\n i--;\n diff = this.session.$moveLines(first, last, copy ? 0 : dir);\n if (copy && dir == -1)\n rangeIndex = i + 1;\n while (rangeIndex <= i) {\n ranges[rangeIndex].moveBy(diff, 0);\n rangeIndex++;\n }\n if (!copy)\n diff = 0;\n totalDiff += diff;\n }\n selection.fromOrientedRange(selection.ranges[0]);\n selection.rangeList.attach(this.session);\n this.inVirtualSelectionMode = false;\n }\n };\n Editor.prototype.$getSelectedRows = function (range) {\n range = (range || this.getSelectionRange()).collapseRows();\n return {\n first: this.session.getRowFoldStart(range.start.row),\n last: this.session.getRowFoldEnd(range.end.row)\n };\n };\n Editor.prototype.onCompositionStart = function (compositionState) {\n this.renderer.showComposition(compositionState);\n };\n Editor.prototype.onCompositionUpdate = function (text) {\n this.renderer.setCompositionText(text);\n };\n Editor.prototype.onCompositionEnd = function () {\n this.renderer.hideComposition();\n };\n Editor.prototype.getFirstVisibleRow = function () {\n return this.renderer.getFirstVisibleRow();\n };\n Editor.prototype.getLastVisibleRow = function () {\n return this.renderer.getLastVisibleRow();\n };\n Editor.prototype.isRowVisible = function (row) {\n return (row >= this.getFirstVisibleRow() && row <= this.getLastVisibleRow());\n };\n Editor.prototype.isRowFullyVisible = function (row) {\n return (row >= this.renderer.getFirstFullyVisibleRow() && row <= this.renderer.getLastFullyVisibleRow());\n };\n Editor.prototype.$getVisibleRowCount = function () {\n return this.renderer.getScrollBottomRow() - this.renderer.getScrollTopRow() + 1;\n };\n Editor.prototype.$moveByPage = function (dir, select) {\n var renderer = this.renderer;\n var config = this.renderer.layerConfig;\n var rows = dir * Math.floor(config.height / config.lineHeight);\n if (select === true) {\n this.selection.$moveSelection(function () {\n this.moveCursorBy(rows, 0);\n });\n }\n else if (select === false) {\n this.selection.moveCursorBy(rows, 0);\n this.selection.clearSelection();\n }\n var scrollTop = renderer.scrollTop;\n renderer.scrollBy(0, rows * config.lineHeight);\n if (select != null)\n renderer.scrollCursorIntoView(null, 0.5);\n renderer.animateScrolling(scrollTop);\n };\n Editor.prototype.selectPageDown = function () {\n this.$moveByPage(1, true);\n };\n Editor.prototype.selectPageUp = function () {\n this.$moveByPage(-1, true);\n };\n Editor.prototype.gotoPageDown = function () {\n this.$moveByPage(1, false);\n };\n Editor.prototype.gotoPageUp = function () {\n this.$moveByPage(-1, false);\n };\n Editor.prototype.scrollPageDown = function () {\n this.$moveByPage(1);\n };\n Editor.prototype.scrollPageUp = function () {\n this.$moveByPage(-1);\n };\n Editor.prototype.scrollToRow = function (row) {\n this.renderer.scrollToRow(row);\n };\n Editor.prototype.scrollToLine = function (line, center, animate, callback) {\n this.renderer.scrollToLine(line, center, animate, callback);\n };\n Editor.prototype.centerSelection = function () {\n var range = this.getSelectionRange();\n var pos = {\n row: Math.floor(range.start.row + (range.end.row - range.start.row) / 2),\n column: Math.floor(range.start.column + (range.end.column - range.start.column) / 2)\n };\n this.renderer.alignCursor(pos, 0.5);\n };\n Editor.prototype.getCursorPosition = function () {\n return this.selection.getCursor();\n };\n Editor.prototype.getCursorPositionScreen = function () {\n return this.session.documentToScreenPosition(this.getCursorPosition());\n };\n Editor.prototype.getSelectionRange = function () {\n return this.selection.getRange();\n };\n Editor.prototype.selectAll = function () {\n this.selection.selectAll();\n };\n Editor.prototype.clearSelection = function () {\n this.selection.clearSelection();\n };\n Editor.prototype.moveCursorTo = function (row, column) {\n this.selection.moveCursorTo(row, column);\n };\n Editor.prototype.moveCursorToPosition = function (pos) {\n this.selection.moveCursorToPosition(pos);\n };\n Editor.prototype.jumpToMatching = function (select, expand) {\n var cursor = this.getCursorPosition();\n var iterator = new TokenIterator(this.session, cursor.row, cursor.column);\n var prevToken = iterator.getCurrentToken();\n var tokenCount = 0;\n if (prevToken && prevToken.type.indexOf('tag-name') !== -1) {\n prevToken = iterator.stepBackward();\n }\n var token = prevToken || iterator.stepForward();\n if (!token)\n return;\n var matchType;\n var found = false;\n var depth = {};\n var i = cursor.column - token.start;\n var bracketType;\n var brackets = {\n \")\": \"(\",\n \"(\": \"(\",\n \"]\": \"[\",\n \"[\": \"[\",\n \"{\": \"{\",\n \"}\": \"{\"\n };\n do {\n if (token.value.match(/[{}()\\[\\]]/g)) {\n for (; i < token.value.length && !found; i++) {\n if (!brackets[token.value[i]]) {\n continue;\n }\n bracketType = brackets[token.value[i]] + '.' + token.type.replace(\"rparen\", \"lparen\");\n if (isNaN(depth[bracketType])) {\n depth[bracketType] = 0;\n }\n switch (token.value[i]) {\n case '(':\n case '[':\n case '{':\n depth[bracketType]++;\n break;\n case ')':\n case ']':\n case '}':\n depth[bracketType]--;\n if (depth[bracketType] === -1) {\n matchType = 'bracket';\n found = true;\n }\n break;\n }\n }\n }\n else if (token.type.indexOf('tag-name') !== -1) {\n if (isNaN(depth[token.value])) {\n depth[token.value] = 0;\n }\n if (prevToken.value === '<' && tokenCount > 1) {\n depth[token.value]++;\n }\n else if (prevToken.value === '= 0; --i) {\n if (this.$tryReplace(ranges[i], replacement)) {\n replaced++;\n }\n }\n this.selection.setSelectionRange(selection);\n return replaced;\n };\n Editor.prototype.$tryReplace = function (range, replacement) {\n var input = this.session.getTextRange(range);\n replacement = this.$search.replace(input, replacement);\n if (replacement !== null) {\n range.end = this.session.replace(range, replacement);\n return range;\n }\n else {\n return null;\n }\n };\n Editor.prototype.getLastSearchOptions = function () {\n return this.$search.getOptions();\n };\n Editor.prototype.find = function (needle, options, animate) {\n if (!options)\n options = {};\n if (typeof needle == \"string\" || needle instanceof RegExp)\n options.needle = needle;\n else if (typeof needle == \"object\")\n oop.mixin(options, needle);\n var range = this.selection.getRange();\n if (options.needle == null) {\n needle = this.session.getTextRange(range)\n || this.$search.$options.needle;\n if (!needle) {\n range = this.session.getWordRange(range.start.row, range.start.column);\n needle = this.session.getTextRange(range);\n }\n this.$search.set({ needle: needle });\n }\n this.$search.set(options);\n if (!options.start)\n this.$search.set({ start: range });\n var newRange = this.$search.find(this.session);\n if (options.preventScroll)\n return newRange;\n if (newRange) {\n this.revealRange(newRange, animate);\n return newRange;\n }\n if (options.backwards)\n range.start = range.end;\n else\n range.end = range.start;\n this.selection.setRange(range);\n };\n Editor.prototype.findNext = function (options, animate) {\n this.find({ skipCurrent: true, backwards: false }, options, animate);\n };\n Editor.prototype.findPrevious = function (options, animate) {\n this.find(options, { skipCurrent: true, backwards: true }, animate);\n };\n Editor.prototype.revealRange = function (range, animate) {\n this.session.unfold(range);\n this.selection.setSelectionRange(range);\n var scrollTop = this.renderer.scrollTop;\n this.renderer.scrollSelectionIntoView(range.start, range.end, 0.5);\n if (animate !== false)\n this.renderer.animateScrolling(scrollTop);\n };\n Editor.prototype.undo = function () {\n this.session.getUndoManager().undo(this.session);\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n Editor.prototype.redo = function () {\n this.session.getUndoManager().redo(this.session);\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n Editor.prototype.destroy = function () {\n if (this.$toDestroy) {\n this.$toDestroy.forEach(function (el) {\n el.destroy();\n });\n this.$toDestroy = null;\n }\n if (this.$mouseHandler)\n this.$mouseHandler.destroy();\n this.renderer.destroy();\n this._signal(\"destroy\", this);\n if (this.session)\n this.session.destroy();\n if (this._$emitInputEvent)\n this._$emitInputEvent.cancel();\n this.removeAllListeners();\n };\n Editor.prototype.setAutoScrollEditorIntoView = function (enable) {\n if (!enable)\n return;\n var rect;\n var self = this;\n var shouldScroll = false;\n if (!this.$scrollAnchor)\n this.$scrollAnchor = document.createElement(\"div\");\n var scrollAnchor = this.$scrollAnchor;\n scrollAnchor.style.cssText = \"position:absolute\";\n this.container.insertBefore(scrollAnchor, this.container.firstChild);\n var onChangeSelection = this.on(\"changeSelection\", function () {\n shouldScroll = true;\n });\n var onBeforeRender = this.renderer.on(\"beforeRender\", function () {\n if (shouldScroll)\n rect = self.renderer.container.getBoundingClientRect();\n });\n var onAfterRender = this.renderer.on(\"afterRender\", function () {\n if (shouldScroll && rect && (self.isFocused()\n || self.searchBox && self.searchBox.isFocused())) {\n var renderer = self.renderer;\n var pos = renderer.$cursorLayer.$pixelPos;\n var config = renderer.layerConfig;\n var top = pos.top - config.offset;\n if (pos.top >= 0 && top + rect.top < 0) {\n shouldScroll = true;\n }\n else if (pos.top < config.height &&\n pos.top + rect.top + config.lineHeight > window.innerHeight) {\n shouldScroll = false;\n }\n else {\n shouldScroll = null;\n }\n if (shouldScroll != null) {\n scrollAnchor.style.top = top + \"px\";\n scrollAnchor.style.left = pos.left + \"px\";\n scrollAnchor.style.height = config.lineHeight + \"px\";\n scrollAnchor.scrollIntoView(shouldScroll);\n }\n shouldScroll = rect = null;\n }\n });\n this.setAutoScrollEditorIntoView = function (enable) {\n if (enable)\n return;\n delete this.setAutoScrollEditorIntoView;\n this.off(\"changeSelection\", onChangeSelection);\n this.renderer.off(\"afterRender\", onAfterRender);\n this.renderer.off(\"beforeRender\", onBeforeRender);\n };\n };\n Editor.prototype.$resetCursorStyle = function () {\n var style = this.$cursorStyle || \"ace\";\n var cursorLayer = this.renderer.$cursorLayer;\n if (!cursorLayer)\n return;\n cursorLayer.setSmoothBlinking(/smooth/.test(style));\n cursorLayer.isBlinking = !this.$readOnly && style != \"wide\";\n dom.setCssClass(cursorLayer.element, \"ace_slim-cursors\", /slim/.test(style));\n };\n Editor.prototype.prompt = function (message, options, callback) {\n var editor = this;\n config.loadModule(\"ace/ext/prompt\", function (module) {\n module.prompt(editor, message, options, callback);\n });\n };\n return Editor;\n}());\nEditor.$uid = 0;\nEditor.prototype.curOp = null;\nEditor.prototype.prevOp = {};\nEditor.prototype.$mergeableCommands = [\"backspace\", \"del\", \"insertstring\"];\nEditor.prototype.$toggleWordPairs = [\n [\"first\", \"last\"],\n [\"true\", \"false\"],\n [\"yes\", \"no\"],\n [\"width\", \"height\"],\n [\"top\", \"bottom\"],\n [\"right\", \"left\"],\n [\"on\", \"off\"],\n [\"x\", \"y\"],\n [\"get\", \"set\"],\n [\"max\", \"min\"],\n [\"horizontal\", \"vertical\"],\n [\"show\", \"hide\"],\n [\"add\", \"remove\"],\n [\"up\", \"down\"],\n [\"before\", \"after\"],\n [\"even\", \"odd\"],\n [\"in\", \"out\"],\n [\"inside\", \"outside\"],\n [\"next\", \"previous\"],\n [\"increase\", \"decrease\"],\n [\"attach\", \"detach\"],\n [\"&&\", \"||\"],\n [\"==\", \"!=\"]\n];\noop.implement(Editor.prototype, EventEmitter);\nconfig.defineOptions(Editor.prototype, \"editor\", {\n selectionStyle: {\n set: function (style) {\n this.onSelectionChange();\n this._signal(\"changeSelectionStyle\", { data: style });\n },\n initialValue: \"line\"\n },\n highlightActiveLine: {\n set: function () { this.$updateHighlightActiveLine(); },\n initialValue: true\n },\n highlightSelectedWord: {\n set: function (shouldHighlight) { this.$onSelectionChange(); },\n initialValue: true\n },\n readOnly: {\n set: function (readOnly) {\n this.textInput.setReadOnly(readOnly);\n this.$resetCursorStyle();\n },\n initialValue: false\n },\n copyWithEmptySelection: {\n set: function (value) {\n this.textInput.setCopyWithEmptySelection(value);\n },\n initialValue: false\n },\n cursorStyle: {\n set: function (val) { this.$resetCursorStyle(); },\n values: [\"ace\", \"slim\", \"smooth\", \"wide\"],\n initialValue: \"ace\"\n },\n mergeUndoDeltas: {\n values: [false, true, \"always\"],\n initialValue: true\n },\n behavioursEnabled: { initialValue: true },\n wrapBehavioursEnabled: { initialValue: true },\n enableAutoIndent: { initialValue: true },\n autoScrollEditorIntoView: {\n set: function (val) { this.setAutoScrollEditorIntoView(val); }\n },\n keyboardHandler: {\n set: function (val) { this.setKeyboardHandler(val); },\n get: function () { return this.$keybindingId; },\n handlesSet: true\n },\n value: {\n set: function (val) { this.session.setValue(val); },\n get: function () { return this.getValue(); },\n handlesSet: true,\n hidden: true\n },\n session: {\n set: function (val) { this.setSession(val); },\n get: function () { return this.session; },\n handlesSet: true,\n hidden: true\n },\n showLineNumbers: {\n set: function (show) {\n this.renderer.$gutterLayer.setShowLineNumbers(show);\n this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER);\n if (show && this.$relativeLineNumbers)\n relativeNumberRenderer.attach(this);\n else\n relativeNumberRenderer.detach(this);\n },\n initialValue: true\n },\n relativeLineNumbers: {\n set: function (value) {\n if (this.$showLineNumbers && value)\n relativeNumberRenderer.attach(this);\n else\n relativeNumberRenderer.detach(this);\n }\n },\n placeholder: {\n set: function (message) {\n if (!this.$updatePlaceholder) {\n this.$updatePlaceholder = function () {\n var hasValue = this.session && (this.renderer.$composition ||\n this.session.getLength() > 1 || this.session.getLine(0).length > 0);\n if (hasValue && this.renderer.placeholderNode) {\n this.renderer.off(\"afterRender\", this.$updatePlaceholder);\n dom.removeCssClass(this.container, \"ace_hasPlaceholder\");\n this.renderer.placeholderNode.remove();\n this.renderer.placeholderNode = null;\n }\n else if (!hasValue && !this.renderer.placeholderNode) {\n this.renderer.on(\"afterRender\", this.$updatePlaceholder);\n dom.addCssClass(this.container, \"ace_hasPlaceholder\");\n var el = dom.createElement(\"div\");\n el.className = \"ace_placeholder\";\n el.textContent = this.$placeholder || \"\";\n this.renderer.placeholderNode = el;\n this.renderer.content.appendChild(this.renderer.placeholderNode);\n }\n else if (!hasValue && this.renderer.placeholderNode) {\n this.renderer.placeholderNode.textContent = this.$placeholder || \"\";\n }\n }.bind(this);\n this.on(\"input\", this.$updatePlaceholder);\n }\n this.$updatePlaceholder();\n }\n },\n enableKeyboardAccessibility: {\n set: function (value) {\n var blurCommand = {\n name: \"blurTextInput\",\n description: \"Set focus to the editor content div to allow tabbing through the page\",\n bindKey: \"Esc\",\n exec: function (editor) {\n editor.blur();\n editor.renderer.scroller.focus();\n },\n readOnly: true\n };\n var focusOnEnterKeyup = function (e) {\n if (e.target == this.renderer.scroller && e.keyCode === keys['enter']) {\n e.preventDefault();\n var row = this.getCursorPosition().row;\n if (!this.isRowVisible(row))\n this.scrollToLine(row, true, true);\n this.focus();\n }\n };\n var gutterKeyboardHandler;\n if (value) {\n this.renderer.enableKeyboardAccessibility = true;\n this.renderer.keyboardFocusClassName = \"ace_keyboard-focus\";\n this.textInput.getElement().setAttribute(\"tabindex\", -1);\n this.textInput.setNumberOfExtraLines(useragent.isWin ? 3 : 0);\n this.renderer.scroller.setAttribute(\"tabindex\", 0);\n this.renderer.scroller.setAttribute(\"role\", \"group\");\n this.renderer.scroller.setAttribute(\"aria-roledescription\", nls(\"editor\"));\n this.renderer.scroller.classList.add(this.renderer.keyboardFocusClassName);\n this.renderer.scroller.setAttribute(\"aria-label\", nls(\"Editor content, press Enter to start editing, press Escape to exit\"));\n this.renderer.scroller.addEventListener(\"keyup\", focusOnEnterKeyup.bind(this));\n this.commands.addCommand(blurCommand);\n this.renderer.$gutter.setAttribute(\"tabindex\", 0);\n this.renderer.$gutter.setAttribute(\"aria-hidden\", false);\n this.renderer.$gutter.setAttribute(\"role\", \"group\");\n this.renderer.$gutter.setAttribute(\"aria-roledescription\", nls(\"editor\"));\n this.renderer.$gutter.setAttribute(\"aria-label\", nls(\"Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit\"));\n this.renderer.$gutter.classList.add(this.renderer.keyboardFocusClassName);\n this.renderer.content.setAttribute(\"aria-hidden\", true);\n if (!gutterKeyboardHandler)\n gutterKeyboardHandler = new GutterKeyboardHandler(this);\n gutterKeyboardHandler.addListener();\n }\n else {\n this.renderer.enableKeyboardAccessibility = false;\n this.textInput.getElement().setAttribute(\"tabindex\", 0);\n this.textInput.setNumberOfExtraLines(0);\n this.renderer.scroller.setAttribute(\"tabindex\", -1);\n this.renderer.scroller.removeAttribute(\"role\");\n this.renderer.scroller.removeAttribute(\"aria-roledescription\");\n this.renderer.scroller.classList.remove(this.renderer.keyboardFocusClassName);\n this.renderer.scroller.removeAttribute(\"aria-label\");\n this.renderer.scroller.removeEventListener(\"keyup\", focusOnEnterKeyup.bind(this));\n this.commands.removeCommand(blurCommand);\n this.renderer.content.removeAttribute(\"aria-hidden\");\n this.renderer.$gutter.setAttribute(\"tabindex\", -1);\n this.renderer.$gutter.setAttribute(\"aria-hidden\", true);\n this.renderer.$gutter.removeAttribute(\"role\");\n this.renderer.$gutter.removeAttribute(\"aria-roledescription\");\n this.renderer.$gutter.removeAttribute(\"aria-label\");\n this.renderer.$gutter.classList.remove(this.renderer.keyboardFocusClassName);\n if (gutterKeyboardHandler)\n gutterKeyboardHandler.removeListener();\n }\n },\n initialValue: false\n },\n customScrollbar: \"renderer\",\n hScrollBarAlwaysVisible: \"renderer\",\n vScrollBarAlwaysVisible: \"renderer\",\n highlightGutterLine: \"renderer\",\n animatedScroll: \"renderer\",\n showInvisibles: \"renderer\",\n showPrintMargin: \"renderer\",\n printMarginColumn: \"renderer\",\n printMargin: \"renderer\",\n fadeFoldWidgets: \"renderer\",\n showFoldWidgets: \"renderer\",\n displayIndentGuides: \"renderer\",\n highlightIndentGuides: \"renderer\",\n showGutter: \"renderer\",\n fontSize: \"renderer\",\n fontFamily: \"renderer\",\n maxLines: \"renderer\",\n minLines: \"renderer\",\n scrollPastEnd: \"renderer\",\n fixedWidthGutter: \"renderer\",\n theme: \"renderer\",\n hasCssTransforms: \"renderer\",\n maxPixelHeight: \"renderer\",\n useTextareaForIME: \"renderer\",\n useResizeObserver: \"renderer\",\n useSvgGutterIcons: \"renderer\",\n showFoldedAnnotations: \"renderer\",\n scrollSpeed: \"$mouseHandler\",\n dragDelay: \"$mouseHandler\",\n dragEnabled: \"$mouseHandler\",\n focusTimeout: \"$mouseHandler\",\n tooltipFollowsMouse: \"$mouseHandler\",\n firstLineNumber: \"session\",\n overwrite: \"session\",\n newLineMode: \"session\",\n useWorker: \"session\",\n useSoftTabs: \"session\",\n navigateWithinSoftTabs: \"session\",\n tabSize: \"session\",\n wrap: \"session\",\n indentedSoftWrap: \"session\",\n foldStyle: \"session\",\n mode: \"session\"\n});\nvar relativeNumberRenderer = {\n getText: function (session, row) {\n return (Math.abs(session.selection.lead.row - row) || (row + 1 + (row < 9 ? \"\\xb7\" : \"\"))) + \"\";\n },\n getWidth: function (session, lastLineNumber, config) {\n return Math.max(lastLineNumber.toString().length, (config.lastRow + 1).toString().length, 2) * config.characterWidth;\n },\n update: function (e, editor) {\n editor.renderer.$loop.schedule(editor.renderer.CHANGE_GUTTER);\n },\n attach: function (editor) {\n editor.renderer.$gutterLayer.$renderer = this;\n editor.on(\"changeSelection\", this.update);\n this.update(null, editor);\n },\n detach: function (editor) {\n if (editor.renderer.$gutterLayer.$renderer == this)\n editor.renderer.$gutterLayer.$renderer = null;\n editor.off(\"changeSelection\", this.update);\n this.update(null, editor);\n }\n};\nexports.Editor = Editor;\n\n});\n\nace.define(\"ace/layer/lines\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar Lines = /** @class */ (function () {\n function Lines(element, canvasHeight) {\n this.element = element;\n this.canvasHeight = canvasHeight || 500000;\n this.element.style.height = (this.canvasHeight * 2) + \"px\";\n this.cells = [];\n this.cellCache = [];\n this.$offsetCoefficient = 0;\n }\n Lines.prototype.moveContainer = function (config) {\n dom.translate(this.element, 0, -((config.firstRowScreen * config.lineHeight) % this.canvasHeight) - config.offset * this.$offsetCoefficient);\n };\n Lines.prototype.pageChanged = function (oldConfig, newConfig) {\n return (Math.floor((oldConfig.firstRowScreen * oldConfig.lineHeight) / this.canvasHeight) !==\n Math.floor((newConfig.firstRowScreen * newConfig.lineHeight) / this.canvasHeight));\n };\n Lines.prototype.computeLineTop = function (row, config, session) {\n var screenTop = config.firstRowScreen * config.lineHeight;\n var screenPage = Math.floor(screenTop / this.canvasHeight);\n var lineTop = session.documentToScreenRow(row, 0) * config.lineHeight;\n return lineTop - (screenPage * this.canvasHeight);\n };\n Lines.prototype.computeLineHeight = function (row, config, session) {\n return config.lineHeight * session.getRowLineCount(row);\n };\n Lines.prototype.getLength = function () {\n return this.cells.length;\n };\n Lines.prototype.get = function (index) {\n return this.cells[index];\n };\n Lines.prototype.shift = function () {\n this.$cacheCell(this.cells.shift());\n };\n Lines.prototype.pop = function () {\n this.$cacheCell(this.cells.pop());\n };\n Lines.prototype.push = function (cell) {\n if (Array.isArray(cell)) {\n this.cells.push.apply(this.cells, cell);\n var fragment = dom.createFragment(this.element);\n for (var i = 0; i < cell.length; i++) {\n fragment.appendChild(cell[i].element);\n }\n this.element.appendChild(fragment);\n }\n else {\n this.cells.push(cell);\n this.element.appendChild(cell.element);\n }\n };\n Lines.prototype.unshift = function (cell) {\n if (Array.isArray(cell)) {\n this.cells.unshift.apply(this.cells, cell);\n var fragment = dom.createFragment(this.element);\n for (var i = 0; i < cell.length; i++) {\n fragment.appendChild(cell[i].element);\n }\n if (this.element.firstChild)\n this.element.insertBefore(fragment, this.element.firstChild);\n else\n this.element.appendChild(fragment);\n }\n else {\n this.cells.unshift(cell);\n this.element.insertAdjacentElement(\"afterbegin\", cell.element);\n }\n };\n Lines.prototype.last = function () {\n if (this.cells.length)\n return this.cells[this.cells.length - 1];\n else\n return null;\n };\n Lines.prototype.$cacheCell = function (cell) {\n if (!cell)\n return;\n cell.element.remove();\n this.cellCache.push(cell);\n };\n Lines.prototype.createCell = function (row, config, session, initElement) {\n var cell = this.cellCache.pop();\n if (!cell) {\n var element = dom.createElement(\"div\");\n if (initElement)\n initElement(element);\n this.element.appendChild(element);\n cell = {\n element: element,\n text: \"\",\n row: row\n };\n }\n cell.row = row;\n return cell;\n };\n return Lines;\n}());\nexports.Lines = Lines;\n\n});\n\nace.define(\"ace/layer/gutter\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/layer/lines\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar Lines = require(\"./lines\").Lines;\nvar nls = require(\"../config\").nls;\nvar Gutter = /** @class */ (function () {\n function Gutter(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_gutter-layer\";\n parentEl.appendChild(this.element);\n this.setShowFoldWidgets(this.$showFoldWidgets);\n this.gutterWidth = 0;\n this.$annotations = [];\n this.$updateAnnotations = this.$updateAnnotations.bind(this);\n this.$lines = new Lines(this.element);\n this.$lines.$offsetCoefficient = 1;\n }\n Gutter.prototype.setSession = function (session) {\n if (this.session)\n this.session.off(\"change\", this.$updateAnnotations);\n this.session = session;\n if (session)\n session.on(\"change\", this.$updateAnnotations);\n };\n Gutter.prototype.addGutterDecoration = function (row, className) {\n if (window.console)\n console.warn && console.warn(\"deprecated use session.addGutterDecoration\");\n this.session.addGutterDecoration(row, className);\n };\n Gutter.prototype.removeGutterDecoration = function (row, className) {\n if (window.console)\n console.warn && console.warn(\"deprecated use session.removeGutterDecoration\");\n this.session.removeGutterDecoration(row, className);\n };\n Gutter.prototype.setAnnotations = function (annotations) {\n this.$annotations = [];\n for (var i = 0; i < annotations.length; i++) {\n var annotation = annotations[i];\n var row = annotation.row;\n var rowInfo = this.$annotations[row];\n if (!rowInfo)\n rowInfo = this.$annotations[row] = { text: [], type: [] };\n var annoText = annotation.text;\n var annoType = annotation.type;\n annoText = annoText ? lang.escapeHTML(annoText) : annotation.html || \"\";\n if (rowInfo.text.indexOf(annoText) === -1) {\n rowInfo.text.push(annoText);\n rowInfo.type.push(annoType);\n }\n var className = annotation.className;\n if (className)\n rowInfo.className = className;\n else if (annoType == \"error\")\n rowInfo.className = \" ace_error\";\n else if (annoType == \"warning\" && rowInfo.className != \" ace_error\")\n rowInfo.className = \" ace_warning\";\n else if (annoType == \"info\" && (!rowInfo.className))\n rowInfo.className = \" ace_info\";\n }\n };\n Gutter.prototype.$updateAnnotations = function (delta) {\n if (!this.$annotations.length)\n return;\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n if (len === 0) {\n }\n else if (delta.action == 'remove') {\n this.$annotations.splice(firstRow, len + 1, null);\n }\n else {\n var args = new Array(len + 1);\n args.unshift(firstRow, 1);\n this.$annotations.splice.apply(this.$annotations, args);\n }\n };\n Gutter.prototype.update = function (config) {\n this.config = config;\n var session = this.session;\n var firstRow = config.firstRow;\n var lastRow = Math.min(config.lastRow + config.gutterOffset, // needed to compensate for hor scollbar\n session.getLength() - 1);\n this.oldLastRow = lastRow;\n this.config = config;\n this.$lines.moveContainer(config);\n this.$updateCursorRow();\n var fold = session.getNextFoldLine(firstRow);\n var foldStart = fold ? fold.start.row : Infinity;\n var cell = null;\n var index = -1;\n var row = firstRow;\n while (true) {\n if (row > foldStart) {\n row = fold.end.row + 1;\n fold = session.getNextFoldLine(row, fold);\n foldStart = fold ? fold.start.row : Infinity;\n }\n if (row > lastRow) {\n while (this.$lines.getLength() > index + 1)\n this.$lines.pop();\n break;\n }\n cell = this.$lines.get(++index);\n if (cell) {\n cell.row = row;\n }\n else {\n cell = this.$lines.createCell(row, config, this.session, onCreateCell);\n this.$lines.push(cell);\n }\n this.$renderCell(cell, config, fold, row);\n row++;\n }\n this._signal(\"afterRender\");\n this.$updateGutterWidth(config);\n };\n Gutter.prototype.$updateGutterWidth = function (config) {\n var session = this.session;\n var gutterRenderer = session.gutterRenderer || this.$renderer;\n var firstLineNumber = session.$firstLineNumber;\n var lastLineText = this.$lines.last() ? this.$lines.last().text : \"\";\n if (this.$fixedWidth || session.$useWrapMode)\n lastLineText = session.getLength() + firstLineNumber - 1;\n var gutterWidth = gutterRenderer\n ? gutterRenderer.getWidth(session, lastLineText, config)\n : lastLineText.toString().length * config.characterWidth;\n var padding = this.$padding || this.$computePadding();\n gutterWidth += padding.left + padding.right;\n if (gutterWidth !== this.gutterWidth && !isNaN(gutterWidth)) {\n this.gutterWidth = gutterWidth;\n this.element.parentNode.style.width =\n this.element.style.width = Math.ceil(this.gutterWidth) + \"px\";\n this._signal(\"changeGutterWidth\", gutterWidth);\n }\n };\n Gutter.prototype.$updateCursorRow = function () {\n if (!this.$highlightGutterLine)\n return;\n var position = this.session.selection.getCursor();\n if (this.$cursorRow === position.row)\n return;\n this.$cursorRow = position.row;\n };\n Gutter.prototype.updateLineHighlight = function () {\n if (!this.$highlightGutterLine)\n return;\n var row = this.session.selection.cursor.row;\n this.$cursorRow = row;\n if (this.$cursorCell && this.$cursorCell.row == row)\n return;\n if (this.$cursorCell)\n this.$cursorCell.element.className = this.$cursorCell.element.className.replace(\"ace_gutter-active-line \", \"\");\n var cells = this.$lines.cells;\n this.$cursorCell = null;\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n if (cell.row >= this.$cursorRow) {\n if (cell.row > this.$cursorRow) {\n var fold = this.session.getFoldLine(this.$cursorRow);\n if (i > 0 && fold && fold.start.row == cells[i - 1].row)\n cell = cells[i - 1];\n else\n break;\n }\n cell.element.className = \"ace_gutter-active-line \" + cell.element.className;\n this.$cursorCell = cell;\n break;\n }\n }\n };\n Gutter.prototype.scrollLines = function (config) {\n var oldConfig = this.config;\n this.config = config;\n this.$updateCursorRow();\n if (this.$lines.pageChanged(oldConfig, config))\n return this.update(config);\n this.$lines.moveContainer(config);\n var lastRow = Math.min(config.lastRow + config.gutterOffset, // needed to compensate for hor scollbar\n this.session.getLength() - 1);\n var oldLastRow = this.oldLastRow;\n this.oldLastRow = lastRow;\n if (!oldConfig || oldLastRow < config.firstRow)\n return this.update(config);\n if (lastRow < oldConfig.firstRow)\n return this.update(config);\n if (oldConfig.firstRow < config.firstRow)\n for (var row = this.session.getFoldedRowCount(oldConfig.firstRow, config.firstRow - 1); row > 0; row--)\n this.$lines.shift();\n if (oldLastRow > lastRow)\n for (var row = this.session.getFoldedRowCount(lastRow + 1, oldLastRow); row > 0; row--)\n this.$lines.pop();\n if (config.firstRow < oldConfig.firstRow) {\n this.$lines.unshift(this.$renderLines(config, config.firstRow, oldConfig.firstRow - 1));\n }\n if (lastRow > oldLastRow) {\n this.$lines.push(this.$renderLines(config, oldLastRow + 1, lastRow));\n }\n this.updateLineHighlight();\n this._signal(\"afterRender\");\n this.$updateGutterWidth(config);\n };\n Gutter.prototype.$renderLines = function (config, firstRow, lastRow) {\n var fragment = [];\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row + 1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > lastRow)\n break;\n var cell = this.$lines.createCell(row, config, this.session, onCreateCell);\n this.$renderCell(cell, config, foldLine, row);\n fragment.push(cell);\n row++;\n }\n return fragment;\n };\n Gutter.prototype.$renderCell = function (cell, config, fold, row) {\n var element = cell.element;\n var session = this.session;\n var textNode = element.childNodes[0];\n var foldWidget = element.childNodes[1];\n var annotationNode = element.childNodes[2];\n var annotationIconNode = annotationNode.firstChild;\n var firstLineNumber = session.$firstLineNumber;\n var breakpoints = session.$breakpoints;\n var decorations = session.$decorations;\n var gutterRenderer = session.gutterRenderer || this.$renderer;\n var foldWidgets = this.$showFoldWidgets && session.foldWidgets;\n var foldStart = fold ? fold.start.row : Number.MAX_VALUE;\n var lineHeight = config.lineHeight + \"px\";\n var className = this.$useSvgGutterIcons ? \"ace_gutter-cell_svg-icons \" : \"ace_gutter-cell \";\n var iconClassName = this.$useSvgGutterIcons ? \"ace_icon_svg\" : \"ace_icon\";\n var rowText = (gutterRenderer\n ? gutterRenderer.getText(session, row)\n : row + firstLineNumber).toString();\n if (this.$highlightGutterLine) {\n if (row == this.$cursorRow || (fold && row < this.$cursorRow && row >= foldStart && this.$cursorRow <= fold.end.row)) {\n className += \"ace_gutter-active-line \";\n if (this.$cursorCell != cell) {\n if (this.$cursorCell)\n this.$cursorCell.element.className = this.$cursorCell.element.className.replace(\"ace_gutter-active-line \", \"\");\n this.$cursorCell = cell;\n }\n }\n }\n if (breakpoints[row])\n className += breakpoints[row];\n if (decorations[row])\n className += decorations[row];\n if (this.$annotations[row] && row !== foldStart)\n className += this.$annotations[row].className;\n if (foldWidgets) {\n var c = foldWidgets[row];\n if (c == null)\n c = foldWidgets[row] = session.getFoldWidget(row);\n }\n if (c) {\n var foldClass = \"ace_fold-widget ace_\" + c;\n var isClosedFold = c == \"start\" && row == foldStart && row < fold.end.row;\n if (isClosedFold) {\n foldClass += \" ace_closed\";\n var foldAnnotationClass = '';\n var annotationInFold = false;\n for (var i = row + 1; i <= fold.end.row; i++) {\n if (!this.$annotations[i])\n continue;\n if (this.$annotations[i].className === \" ace_error\") {\n annotationInFold = true;\n foldAnnotationClass = \" ace_error_fold\";\n break;\n }\n if (this.$annotations[i].className === \" ace_warning\") {\n annotationInFold = true;\n foldAnnotationClass = \" ace_warning_fold\";\n continue;\n }\n }\n className += foldAnnotationClass;\n }\n else\n foldClass += \" ace_open\";\n if (foldWidget.className != foldClass)\n foldWidget.className = foldClass;\n dom.setStyle(foldWidget.style, \"height\", lineHeight);\n dom.setStyle(foldWidget.style, \"display\", \"inline-block\");\n foldWidget.setAttribute(\"role\", \"button\");\n foldWidget.setAttribute(\"tabindex\", \"-1\");\n var foldRange = session.getFoldWidgetRange(row);\n if (foldRange)\n foldWidget.setAttribute(\"aria-label\", nls(\"Toggle code folding, rows $0 through $1\", [foldRange.start.row + 1, foldRange.end.row + 1]));\n else {\n if (fold)\n foldWidget.setAttribute(\"aria-label\", nls(\"Toggle code folding, rows $0 through $1\", [fold.start.row + 1, fold.end.row + 1]));\n else\n foldWidget.setAttribute(\"aria-label\", nls(\"Toggle code folding, row $0\", [row + 1]));\n }\n if (isClosedFold) {\n foldWidget.setAttribute(\"aria-expanded\", \"false\");\n foldWidget.setAttribute(\"title\", nls(\"Unfold code\"));\n }\n else {\n foldWidget.setAttribute(\"aria-expanded\", \"true\");\n foldWidget.setAttribute(\"title\", nls(\"Fold code\"));\n }\n }\n else {\n if (foldWidget) {\n dom.setStyle(foldWidget.style, \"display\", \"none\");\n foldWidget.setAttribute(\"tabindex\", \"0\");\n foldWidget.removeAttribute(\"role\");\n foldWidget.removeAttribute(\"aria-label\");\n }\n }\n if (annotationInFold && this.$showFoldedAnnotations) {\n annotationNode.className = \"ace_gutter_annotation\";\n annotationIconNode.className = iconClassName;\n annotationIconNode.className += foldAnnotationClass;\n dom.setStyle(annotationIconNode.style, \"height\", lineHeight);\n dom.setStyle(annotationNode.style, \"display\", \"block\");\n dom.setStyle(annotationNode.style, \"height\", lineHeight);\n annotationNode.setAttribute(\"aria-label\", nls(\"Read annotations row $0\", [rowText]));\n annotationNode.setAttribute(\"tabindex\", \"-1\");\n annotationNode.setAttribute(\"role\", \"button\");\n }\n else if (this.$annotations[row]) {\n annotationNode.className = \"ace_gutter_annotation\";\n annotationIconNode.className = iconClassName;\n if (this.$useSvgGutterIcons)\n annotationIconNode.className += this.$annotations[row].className;\n else\n element.classList.add(this.$annotations[row].className.replace(\" \", \"\"));\n dom.setStyle(annotationIconNode.style, \"height\", lineHeight);\n dom.setStyle(annotationNode.style, \"display\", \"block\");\n dom.setStyle(annotationNode.style, \"height\", lineHeight);\n annotationNode.setAttribute(\"aria-label\", nls(\"Read annotations row $0\", [rowText]));\n annotationNode.setAttribute(\"tabindex\", \"-1\");\n annotationNode.setAttribute(\"role\", \"button\");\n }\n else {\n dom.setStyle(annotationNode.style, \"display\", \"none\");\n annotationNode.removeAttribute(\"aria-label\");\n annotationNode.removeAttribute(\"role\");\n annotationNode.setAttribute(\"tabindex\", \"0\");\n }\n if (rowText !== textNode.data) {\n textNode.data = rowText;\n }\n if (element.className != className)\n element.className = className;\n dom.setStyle(cell.element.style, \"height\", this.$lines.computeLineHeight(row, config, session) + \"px\");\n dom.setStyle(cell.element.style, \"top\", this.$lines.computeLineTop(row, config, session) + \"px\");\n cell.text = rowText;\n if (annotationNode.style.display === \"none\" && foldWidget.style.display === \"none\")\n cell.element.setAttribute(\"aria-hidden\", true);\n else\n cell.element.setAttribute(\"aria-hidden\", false);\n return cell;\n };\n Gutter.prototype.setHighlightGutterLine = function (highlightGutterLine) {\n this.$highlightGutterLine = highlightGutterLine;\n };\n Gutter.prototype.setShowLineNumbers = function (show) {\n this.$renderer = !show && {\n getWidth: function () { return 0; },\n getText: function () { return \"\"; }\n };\n };\n Gutter.prototype.getShowLineNumbers = function () {\n return this.$showLineNumbers;\n };\n Gutter.prototype.setShowFoldWidgets = function (show) {\n if (show)\n dom.addCssClass(this.element, \"ace_folding-enabled\");\n else\n dom.removeCssClass(this.element, \"ace_folding-enabled\");\n this.$showFoldWidgets = show;\n this.$padding = null;\n };\n Gutter.prototype.getShowFoldWidgets = function () {\n return this.$showFoldWidgets;\n };\n Gutter.prototype.$computePadding = function () {\n if (!this.element.firstChild)\n return { left: 0, right: 0 };\n var style = dom.computedStyle(this.element.firstChild);\n this.$padding = {};\n this.$padding.left = (parseInt(style.borderLeftWidth) || 0)\n + (parseInt(style.paddingLeft) || 0) + 1;\n this.$padding.right = (parseInt(style.borderRightWidth) || 0)\n + (parseInt(style.paddingRight) || 0);\n return this.$padding;\n };\n Gutter.prototype.getRegion = function (point) {\n var padding = this.$padding || this.$computePadding();\n var rect = this.element.getBoundingClientRect();\n if (point.x < padding.left + rect.left)\n return \"markers\";\n if (this.$showFoldWidgets && point.x > rect.right - padding.right)\n return \"foldWidgets\";\n };\n return Gutter;\n}());\nGutter.prototype.$fixedWidth = false;\nGutter.prototype.$highlightGutterLine = true;\nGutter.prototype.$renderer = \"\";\nGutter.prototype.$showLineNumbers = true;\nGutter.prototype.$showFoldWidgets = true;\noop.implement(Gutter.prototype, EventEmitter);\nfunction onCreateCell(element) {\n var textNode = document.createTextNode('');\n element.appendChild(textNode);\n var foldWidget = dom.createElement(\"span\");\n element.appendChild(foldWidget);\n var annotationNode = dom.createElement(\"span\");\n element.appendChild(annotationNode);\n var annotationIconNode = dom.createElement(\"span\");\n annotationNode.appendChild(annotationIconNode);\n return element;\n}\nexports.Gutter = Gutter;\n\n});\n\nace.define(\"ace/layer/marker\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar dom = require(\"../lib/dom\");\nvar Marker = /** @class */ (function () {\n function Marker(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_marker-layer\";\n parentEl.appendChild(this.element);\n }\n Marker.prototype.setPadding = function (padding) {\n this.$padding = padding;\n };\n Marker.prototype.setSession = function (session) {\n this.session = session;\n };\n Marker.prototype.setMarkers = function (markers) {\n this.markers = markers;\n };\n Marker.prototype.elt = function (className, css) {\n var x = this.i != -1 && this.element.childNodes[this.i];\n if (!x) {\n x = document.createElement(\"div\");\n this.element.appendChild(x);\n this.i = -1;\n }\n else {\n this.i++;\n }\n x.style.cssText = css;\n x.className = className;\n };\n Marker.prototype.update = function (config) {\n if (!config)\n return;\n this.config = config;\n this.i = 0;\n var html;\n for (var key in this.markers) {\n var marker = this.markers[key];\n if (!marker.range) {\n marker.update(html, this, this.session, config);\n continue;\n }\n var range = marker.range.clipRows(config.firstRow, config.lastRow);\n if (range.isEmpty())\n continue;\n range = range.toScreenRange(this.session);\n if (marker.renderer) {\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + range.start.column * config.characterWidth;\n marker.renderer(html, range, left, top, config);\n }\n else if (marker.type == \"fullLine\") {\n this.drawFullLineMarker(html, range, marker.clazz, config);\n }\n else if (marker.type == \"screenLine\") {\n this.drawScreenLineMarker(html, range, marker.clazz, config);\n }\n else if (range.isMultiLine()) {\n if (marker.type == \"text\")\n this.drawTextMarker(html, range, marker.clazz, config);\n else\n this.drawMultiLineMarker(html, range, marker.clazz, config);\n }\n else {\n this.drawSingleLineMarker(html, range, marker.clazz + \" ace_start\" + \" ace_br15\", config);\n }\n }\n if (this.i != -1) {\n while (this.i < this.element.childElementCount)\n this.element.removeChild(this.element.lastChild);\n }\n };\n Marker.prototype.$getTop = function (row, layerConfig) {\n return (row - layerConfig.firstRowScreen) * layerConfig.lineHeight;\n };\n Marker.prototype.drawTextMarker = function (stringBuilder, range, clazz, layerConfig, extraStyle) {\n var session = this.session;\n var start = range.start.row;\n var end = range.end.row;\n var row = start;\n var prev = 0;\n var curr = 0;\n var next = session.getScreenLastRowColumn(row);\n var lineRange = new Range(row, range.start.column, row, curr);\n for (; row <= end; row++) {\n lineRange.start.row = lineRange.end.row = row;\n lineRange.start.column = row == start ? range.start.column : session.getRowWrapIndent(row);\n lineRange.end.column = next;\n prev = curr;\n curr = next;\n next = row + 1 < end ? session.getScreenLastRowColumn(row + 1) : row == end ? 0 : range.end.column;\n this.drawSingleLineMarker(stringBuilder, lineRange, clazz + (row == start ? \" ace_start\" : \"\") + \" ace_br\"\n + getBorderClass(row == start || row == start + 1 && range.start.column, prev < curr, curr > next, row == end), layerConfig, row == end ? 0 : 1, extraStyle);\n }\n };\n Marker.prototype.drawMultiLineMarker = function (stringBuilder, range, clazz, config, extraStyle) {\n var padding = this.$padding;\n var height = config.lineHeight;\n var top = this.$getTop(range.start.row, config);\n var left = padding + range.start.column * config.characterWidth;\n extraStyle = extraStyle || \"\";\n if (this.session.$bidiHandler.isBidiRow(range.start.row)) {\n var range1 = range.clone();\n range1.end.row = range1.start.row;\n range1.end.column = this.session.getLine(range1.start.row).length;\n this.drawBidiSingleLineMarker(stringBuilder, range1, clazz + \" ace_br1 ace_start\", config, null, extraStyle);\n }\n else {\n this.elt(clazz + \" ace_br1 ace_start\", \"height:\" + height + \"px;\" + \"right:0;\" + \"top:\" + top + \"px;left:\" + left + \"px;\" + (extraStyle || \"\"));\n }\n if (this.session.$bidiHandler.isBidiRow(range.end.row)) {\n var range1 = range.clone();\n range1.start.row = range1.end.row;\n range1.start.column = 0;\n this.drawBidiSingleLineMarker(stringBuilder, range1, clazz + \" ace_br12\", config, null, extraStyle);\n }\n else {\n top = this.$getTop(range.end.row, config);\n var width = range.end.column * config.characterWidth;\n this.elt(clazz + \" ace_br12\", \"height:\" + height + \"px;\" +\n \"width:\" + width + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + padding + \"px;\" + (extraStyle || \"\"));\n }\n height = (range.end.row - range.start.row - 1) * config.lineHeight;\n if (height <= 0)\n return;\n top = this.$getTop(range.start.row + 1, config);\n var radiusClass = (range.start.column ? 1 : 0) | (range.end.column ? 0 : 8);\n this.elt(clazz + (radiusClass ? \" ace_br\" + radiusClass : \"\"), \"height:\" + height + \"px;\" +\n \"right:0;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + padding + \"px;\" + (extraStyle || \"\"));\n };\n Marker.prototype.drawSingleLineMarker = function (stringBuilder, range, clazz, config, extraLength, extraStyle) {\n if (this.session.$bidiHandler.isBidiRow(range.start.row))\n return this.drawBidiSingleLineMarker(stringBuilder, range, clazz, config, extraLength, extraStyle);\n var height = config.lineHeight;\n var width = (range.end.column + (extraLength || 0) - range.start.column) * config.characterWidth;\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + range.start.column * config.characterWidth;\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"width:\" + width + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + left + \"px;\" + (extraStyle || \"\"));\n };\n Marker.prototype.drawBidiSingleLineMarker = function (stringBuilder, range, clazz, config, extraLength, extraStyle) {\n var height = config.lineHeight, top = this.$getTop(range.start.row, config), padding = this.$padding;\n var selections = this.session.$bidiHandler.getSelections(range.start.column, range.end.column);\n selections.forEach(function (selection) {\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"width:\" + (selection.width + (extraLength || 0)) + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + (padding + selection.left) + \"px;\" + (extraStyle || \"\"));\n }, this);\n };\n Marker.prototype.drawFullLineMarker = function (stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n if (range.start.row != range.end.row)\n height += this.$getTop(range.end.row, config) - top;\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:0;right:0;\" + (extraStyle || \"\"));\n };\n Marker.prototype.drawScreenLineMarker = function (stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:0;right:0;\" + (extraStyle || \"\"));\n };\n return Marker;\n}());\nMarker.prototype.$padding = 0;\nfunction getBorderClass(tl, tr, br, bl) {\n return (tl ? 1 : 0) | (tr ? 2 : 0) | (br ? 4 : 0) | (bl ? 8 : 0);\n}\nexports.Marker = Marker;\n\n});\n\nace.define(\"ace/layer/text_util\",[\"require\",\"exports\",\"module\"], function(require, exports, module){// Tokens for which Ace just uses a simple TextNode and does not add any special className.\nvar textTokens = new Set([\"text\", \"rparen\", \"lparen\"]);\nexports.isTextToken = function (tokenType) {\n return textTokens.has(tokenType);\n};\n\n});\n\nace.define(\"ace/layer/text\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/layer/lines\",\"ace/lib/event_emitter\",\"ace/config\",\"ace/layer/text_util\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar Lines = require(\"./lines\").Lines;\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar nls = require(\"../config\").nls;\nvar isTextToken = require(\"./text_util\").isTextToken;\nvar Text = /** @class */ (function () {\n function Text(parentEl) {\n this.dom = dom;\n this.element = this.dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_text-layer\";\n parentEl.appendChild(this.element);\n this.$updateEolChar = this.$updateEolChar.bind(this);\n this.$lines = new Lines(this.element);\n }\n Text.prototype.$updateEolChar = function () {\n var doc = this.session.doc;\n var unixMode = doc.getNewLineCharacter() == \"\\n\" && doc.getNewLineMode() != \"windows\";\n var EOL_CHAR = unixMode ? this.EOL_CHAR_LF : this.EOL_CHAR_CRLF;\n if (this.EOL_CHAR != EOL_CHAR) {\n this.EOL_CHAR = EOL_CHAR;\n return true;\n }\n };\n Text.prototype.setPadding = function (padding) {\n this.$padding = padding;\n this.element.style.margin = \"0 \" + padding + \"px\";\n };\n Text.prototype.getLineHeight = function () {\n return this.$fontMetrics.$characterSize.height || 0;\n };\n Text.prototype.getCharacterWidth = function () {\n return this.$fontMetrics.$characterSize.width || 0;\n };\n Text.prototype.$setFontMetrics = function (measure) {\n this.$fontMetrics = measure;\n this.$fontMetrics.on(\"changeCharacterSize\", function (e) {\n this._signal(\"changeCharacterSize\", e);\n }.bind(this));\n this.$pollSizeChanges();\n };\n Text.prototype.checkForSizeChanges = function () {\n this.$fontMetrics.checkForSizeChanges();\n };\n Text.prototype.$pollSizeChanges = function () {\n return this.$pollSizeChangesTimer = this.$fontMetrics.$pollSizeChanges();\n };\n Text.prototype.setSession = function (session) {\n this.session = session;\n if (session)\n this.$computeTabString();\n };\n Text.prototype.setShowInvisibles = function (showInvisibles) {\n if (this.showInvisibles == showInvisibles)\n return false;\n this.showInvisibles = showInvisibles;\n if (typeof showInvisibles == \"string\") {\n this.showSpaces = /tab/i.test(showInvisibles);\n this.showTabs = /space/i.test(showInvisibles);\n this.showEOL = /eol/i.test(showInvisibles);\n }\n else {\n this.showSpaces = this.showTabs = this.showEOL = showInvisibles;\n }\n this.$computeTabString();\n return true;\n };\n Text.prototype.setDisplayIndentGuides = function (display) {\n if (this.displayIndentGuides == display)\n return false;\n this.displayIndentGuides = display;\n this.$computeTabString();\n return true;\n };\n Text.prototype.setHighlightIndentGuides = function (highlight) {\n if (this.$highlightIndentGuides === highlight)\n return false;\n this.$highlightIndentGuides = highlight;\n return highlight;\n };\n Text.prototype.$computeTabString = function () {\n var tabSize = this.session.getTabSize();\n this.tabSize = tabSize;\n var tabStr = this.$tabStrings = [0];\n for (var i = 1; i < tabSize + 1; i++) {\n if (this.showTabs) {\n var span = this.dom.createElement(\"span\");\n span.className = \"ace_invisible ace_invisible_tab\";\n span.textContent = lang.stringRepeat(this.TAB_CHAR, i);\n tabStr.push(span);\n }\n else {\n tabStr.push(this.dom.createTextNode(lang.stringRepeat(\" \", i), this.element));\n }\n }\n if (this.displayIndentGuides) {\n this.$indentGuideRe = /\\s\\S| \\t|\\t |\\s$/;\n var className = \"ace_indent-guide\";\n var spaceClass = this.showSpaces ? \" ace_invisible ace_invisible_space\" : \"\";\n var spaceContent = this.showSpaces\n ? lang.stringRepeat(this.SPACE_CHAR, this.tabSize)\n : lang.stringRepeat(\" \", this.tabSize);\n var tabClass = this.showTabs ? \" ace_invisible ace_invisible_tab\" : \"\";\n var tabContent = this.showTabs\n ? lang.stringRepeat(this.TAB_CHAR, this.tabSize)\n : spaceContent;\n var span = this.dom.createElement(\"span\");\n span.className = className + spaceClass;\n span.textContent = spaceContent;\n this.$tabStrings[\" \"] = span;\n var span = this.dom.createElement(\"span\");\n span.className = className + tabClass;\n span.textContent = tabContent;\n this.$tabStrings[\"\\t\"] = span;\n }\n };\n Text.prototype.updateLines = function (config, firstRow, lastRow) {\n if (this.config.lastRow != config.lastRow ||\n this.config.firstRow != config.firstRow) {\n return this.update(config);\n }\n this.config = config;\n var first = Math.max(firstRow, config.firstRow);\n var last = Math.min(lastRow, config.lastRow);\n var lineElements = this.element.childNodes;\n var lineElementsIdx = 0;\n for (var row = config.firstRow; row < first; row++) {\n var foldLine = this.session.getFoldLine(row);\n if (foldLine) {\n if (foldLine.containsRow(first)) {\n first = foldLine.start.row;\n break;\n }\n else {\n row = foldLine.end.row;\n }\n }\n lineElementsIdx++;\n }\n var heightChanged = false;\n var row = first;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row + 1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > last)\n break;\n var lineElement = lineElements[lineElementsIdx++];\n if (lineElement) {\n this.dom.removeChildren(lineElement);\n this.$renderLine(lineElement, row, row == foldStart ? foldLine : false);\n if (heightChanged)\n lineElement.style.top = this.$lines.computeLineTop(row, config, this.session) + \"px\";\n var height = (config.lineHeight * this.session.getRowLength(row)) + \"px\";\n if (lineElement.style.height != height) {\n heightChanged = true;\n lineElement.style.height = height;\n }\n }\n row++;\n }\n if (heightChanged) {\n while (lineElementsIdx < this.$lines.cells.length) {\n var cell = this.$lines.cells[lineElementsIdx++];\n cell.element.style.top = this.$lines.computeLineTop(cell.row, config, this.session) + \"px\";\n }\n }\n };\n Text.prototype.scrollLines = function (config) {\n var oldConfig = this.config;\n this.config = config;\n if (this.$lines.pageChanged(oldConfig, config))\n return this.update(config);\n this.$lines.moveContainer(config);\n var lastRow = config.lastRow;\n var oldLastRow = oldConfig ? oldConfig.lastRow : -1;\n if (!oldConfig || oldLastRow < config.firstRow)\n return this.update(config);\n if (lastRow < oldConfig.firstRow)\n return this.update(config);\n if (!oldConfig || oldConfig.lastRow < config.firstRow)\n return this.update(config);\n if (config.lastRow < oldConfig.firstRow)\n return this.update(config);\n if (oldConfig.firstRow < config.firstRow)\n for (var row = this.session.getFoldedRowCount(oldConfig.firstRow, config.firstRow - 1); row > 0; row--)\n this.$lines.shift();\n if (oldConfig.lastRow > config.lastRow)\n for (var row = this.session.getFoldedRowCount(config.lastRow + 1, oldConfig.lastRow); row > 0; row--)\n this.$lines.pop();\n if (config.firstRow < oldConfig.firstRow) {\n this.$lines.unshift(this.$renderLinesFragment(config, config.firstRow, oldConfig.firstRow - 1));\n }\n if (config.lastRow > oldConfig.lastRow) {\n this.$lines.push(this.$renderLinesFragment(config, oldConfig.lastRow + 1, config.lastRow));\n }\n this.$highlightIndentGuide();\n };\n Text.prototype.$renderLinesFragment = function (config, firstRow, lastRow) {\n var fragment = [];\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row + 1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > lastRow)\n break;\n var line = this.$lines.createCell(row, config, this.session);\n var lineEl = line.element;\n this.dom.removeChildren(lineEl);\n dom.setStyle(lineEl.style, \"height\", this.$lines.computeLineHeight(row, config, this.session) + \"px\");\n dom.setStyle(lineEl.style, \"top\", this.$lines.computeLineTop(row, config, this.session) + \"px\");\n this.$renderLine(lineEl, row, row == foldStart ? foldLine : false);\n if (this.$useLineGroups()) {\n lineEl.className = \"ace_line_group\";\n }\n else {\n lineEl.className = \"ace_line\";\n }\n fragment.push(line);\n row++;\n }\n return fragment;\n };\n Text.prototype.update = function (config) {\n this.$lines.moveContainer(config);\n this.config = config;\n var firstRow = config.firstRow;\n var lastRow = config.lastRow;\n var lines = this.$lines;\n while (lines.getLength())\n lines.pop();\n lines.push(this.$renderLinesFragment(config, firstRow, lastRow));\n };\n Text.prototype.$renderToken = function (parent, screenColumn, token, value) {\n var self = this;\n var re = /(\\t)|( +)|([\\x00-\\x1f\\x80-\\xa0\\xad\\u1680\\u180E\\u2000-\\u200f\\u2028\\u2029\\u202F\\u205F\\uFEFF\\uFFF9-\\uFFFC\\u2066\\u2067\\u2068\\u202A\\u202B\\u202D\\u202E\\u202C\\u2069]+)|(\\u3000)|([\\u1100-\\u115F\\u11A3-\\u11A7\\u11FA-\\u11FF\\u2329-\\u232A\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3001-\\u303E\\u3041-\\u3096\\u3099-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u3190-\\u31BA\\u31C0-\\u31E3\\u31F0-\\u321E\\u3220-\\u3247\\u3250-\\u32FE\\u3300-\\u4DBF\\u4E00-\\uA48C\\uA490-\\uA4C6\\uA960-\\uA97C\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFAFF\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE66\\uFE68-\\uFE6B\\uFF01-\\uFF60\\uFFE0-\\uFFE6]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF])/g;\n var valueFragment = this.dom.createFragment(this.element);\n var m;\n var i = 0;\n while (m = re.exec(value)) {\n var tab = m[1];\n var simpleSpace = m[2];\n var controlCharacter = m[3];\n var cjkSpace = m[4];\n var cjk = m[5];\n if (!self.showSpaces && simpleSpace)\n continue;\n var before = i != m.index ? value.slice(i, m.index) : \"\";\n i = m.index + m[0].length;\n if (before) {\n valueFragment.appendChild(this.dom.createTextNode(before, this.element));\n }\n if (tab) {\n var tabSize = self.session.getScreenTabSize(screenColumn + m.index);\n valueFragment.appendChild(self.$tabStrings[tabSize].cloneNode(true));\n screenColumn += tabSize - 1;\n }\n else if (simpleSpace) {\n if (self.showSpaces) {\n var span = this.dom.createElement(\"span\");\n span.className = \"ace_invisible ace_invisible_space\";\n span.textContent = lang.stringRepeat(self.SPACE_CHAR, simpleSpace.length);\n valueFragment.appendChild(span);\n }\n else {\n valueFragment.appendChild(this.dom.createTextNode(simpleSpace, this.element));\n }\n }\n else if (controlCharacter) {\n var span = this.dom.createElement(\"span\");\n span.className = \"ace_invisible ace_invisible_space ace_invalid\";\n span.textContent = lang.stringRepeat(self.SPACE_CHAR, controlCharacter.length);\n valueFragment.appendChild(span);\n }\n else if (cjkSpace) {\n screenColumn += 1;\n var span = this.dom.createElement(\"span\");\n span.style.width = (self.config.characterWidth * 2) + \"px\";\n span.className = self.showSpaces ? \"ace_cjk ace_invisible ace_invisible_space\" : \"ace_cjk\";\n span.textContent = self.showSpaces ? self.SPACE_CHAR : cjkSpace;\n valueFragment.appendChild(span);\n }\n else if (cjk) {\n screenColumn += 1;\n var span = this.dom.createElement(\"span\");\n span.style.width = (self.config.characterWidth * 2) + \"px\";\n span.className = \"ace_cjk\";\n span.textContent = cjk;\n valueFragment.appendChild(span);\n }\n }\n valueFragment.appendChild(this.dom.createTextNode(i ? value.slice(i) : value, this.element));\n if (!isTextToken(token.type)) {\n var classes = \"ace_\" + token.type.replace(/\\./g, \" ace_\");\n var span = this.dom.createElement(\"span\");\n if (token.type == \"fold\") {\n span.style.width = (token.value.length * this.config.characterWidth) + \"px\";\n span.setAttribute(\"title\", nls(\"Unfold code\"));\n }\n span.className = classes;\n span.appendChild(valueFragment);\n parent.appendChild(span);\n }\n else {\n parent.appendChild(valueFragment);\n }\n return screenColumn + value.length;\n };\n Text.prototype.renderIndentGuide = function (parent, value, max) {\n var cols = value.search(this.$indentGuideRe);\n if (cols <= 0 || cols >= max)\n return value;\n if (value[0] == \" \") {\n cols -= cols % this.tabSize;\n var count = cols / this.tabSize;\n for (var i = 0; i < count; i++) {\n parent.appendChild(this.$tabStrings[\" \"].cloneNode(true));\n }\n this.$highlightIndentGuide();\n return value.substr(cols);\n }\n else if (value[0] == \"\\t\") {\n for (var i = 0; i < cols; i++) {\n parent.appendChild(this.$tabStrings[\"\\t\"].cloneNode(true));\n }\n this.$highlightIndentGuide();\n return value.substr(cols);\n }\n this.$highlightIndentGuide();\n return value;\n };\n Text.prototype.$highlightIndentGuide = function () {\n if (!this.$highlightIndentGuides || !this.displayIndentGuides)\n return;\n this.$highlightIndentGuideMarker = {\n indentLevel: undefined,\n start: undefined,\n end: undefined,\n dir: undefined\n };\n var lines = this.session.doc.$lines;\n if (!lines)\n return;\n var cursor = this.session.selection.getCursor();\n var initialIndent = /^\\s*/.exec(this.session.doc.getLine(cursor.row))[0].length;\n var elementIndentLevel = Math.floor(initialIndent / this.tabSize);\n this.$highlightIndentGuideMarker = {\n indentLevel: elementIndentLevel,\n start: cursor.row\n };\n var bracketHighlight = this.session.$bracketHighlight;\n if (bracketHighlight) {\n var ranges = this.session.$bracketHighlight.ranges;\n for (var i = 0; i < ranges.length; i++) {\n if (cursor.row !== ranges[i].start.row) {\n this.$highlightIndentGuideMarker.end = ranges[i].start.row;\n if (cursor.row > ranges[i].start.row) {\n this.$highlightIndentGuideMarker.dir = -1;\n }\n else {\n this.$highlightIndentGuideMarker.dir = 1;\n }\n break;\n }\n }\n }\n if (!this.$highlightIndentGuideMarker.end) {\n if (lines[cursor.row] !== '' && cursor.column === lines[cursor.row].length) {\n this.$highlightIndentGuideMarker.dir = 1;\n for (var i = cursor.row + 1; i < lines.length; i++) {\n var line = lines[i];\n var currentIndent = /^\\s*/.exec(line)[0].length;\n if (line !== '') {\n this.$highlightIndentGuideMarker.end = i;\n if (currentIndent <= initialIndent)\n break;\n }\n }\n }\n }\n this.$renderHighlightIndentGuide();\n };\n Text.prototype.$clearActiveIndentGuide = function () {\n var cells = this.$lines.cells;\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n var childNodes = cell.element.childNodes;\n if (childNodes.length > 0) {\n for (var j = 0; j < childNodes.length; j++) {\n if (childNodes[j].classList && childNodes[j].classList.contains(\"ace_indent-guide-active\")) {\n childNodes[j].classList.remove(\"ace_indent-guide-active\");\n break;\n }\n }\n }\n }\n };\n Text.prototype.$setIndentGuideActive = function (cell, indentLevel) {\n var line = this.session.doc.getLine(cell.row);\n if (line !== \"\") {\n var childNodes = cell.element.childNodes;\n if (childNodes) {\n var node = childNodes[indentLevel - 1];\n if (node && node.classList && node.classList.contains(\"ace_indent-guide\"))\n node.classList.add(\"ace_indent-guide-active\");\n }\n }\n };\n Text.prototype.$renderHighlightIndentGuide = function () {\n if (!this.$lines)\n return;\n var cells = this.$lines.cells;\n this.$clearActiveIndentGuide();\n var indentLevel = this.$highlightIndentGuideMarker.indentLevel;\n if (indentLevel !== 0) {\n if (this.$highlightIndentGuideMarker.dir === 1) {\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n if (this.$highlightIndentGuideMarker.end && cell.row >= this.$highlightIndentGuideMarker.start\n + 1) {\n if (cell.row >= this.$highlightIndentGuideMarker.end)\n break;\n this.$setIndentGuideActive(cell, indentLevel);\n }\n }\n }\n else {\n for (var i = cells.length - 1; i >= 0; i--) {\n var cell = cells[i];\n if (this.$highlightIndentGuideMarker.end && cell.row < this.$highlightIndentGuideMarker.start) {\n if (cell.row <= this.$highlightIndentGuideMarker.end)\n break;\n this.$setIndentGuideActive(cell, indentLevel);\n }\n }\n }\n }\n };\n Text.prototype.$createLineElement = function (parent) {\n var lineEl = this.dom.createElement(\"div\");\n lineEl.className = \"ace_line\";\n lineEl.style.height = this.config.lineHeight + \"px\";\n return lineEl;\n };\n Text.prototype.$renderWrappedLine = function (parent, tokens, splits) {\n var chars = 0;\n var split = 0;\n var splitChars = splits[0];\n var screenColumn = 0;\n var lineEl = this.$createLineElement();\n parent.appendChild(lineEl);\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n var value = token.value;\n if (i == 0 && this.displayIndentGuides) {\n chars = value.length;\n value = this.renderIndentGuide(lineEl, value, splitChars);\n if (!value)\n continue;\n chars -= value.length;\n }\n if (chars + value.length < splitChars) {\n screenColumn = this.$renderToken(lineEl, screenColumn, token, value);\n chars += value.length;\n }\n else {\n while (chars + value.length >= splitChars) {\n screenColumn = this.$renderToken(lineEl, screenColumn, token, value.substring(0, splitChars - chars));\n value = value.substring(splitChars - chars);\n chars = splitChars;\n lineEl = this.$createLineElement();\n parent.appendChild(lineEl);\n lineEl.appendChild(this.dom.createTextNode(lang.stringRepeat(\"\\xa0\", splits.indent), this.element));\n split++;\n screenColumn = 0;\n splitChars = splits[split] || Number.MAX_VALUE;\n }\n if (value.length != 0) {\n chars += value.length;\n screenColumn = this.$renderToken(lineEl, screenColumn, token, value);\n }\n }\n }\n if (splits[splits.length - 1] > this.MAX_LINE_LENGTH)\n this.$renderOverflowMessage(lineEl, screenColumn, null, \"\", true);\n };\n Text.prototype.$renderSimpleLine = function (parent, tokens) {\n var screenColumn = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n var value = token.value;\n if (i == 0 && this.displayIndentGuides) {\n value = this.renderIndentGuide(parent, value);\n if (!value)\n continue;\n }\n if (screenColumn + value.length > this.MAX_LINE_LENGTH)\n return this.$renderOverflowMessage(parent, screenColumn, token, value);\n screenColumn = this.$renderToken(parent, screenColumn, token, value);\n }\n };\n Text.prototype.$renderOverflowMessage = function (parent, screenColumn, token, value, hide) {\n token && this.$renderToken(parent, screenColumn, token, value.slice(0, this.MAX_LINE_LENGTH - screenColumn));\n var overflowEl = this.dom.createElement(\"span\");\n overflowEl.className = \"ace_inline_button ace_keyword ace_toggle_wrap\";\n overflowEl.textContent = hide ? \"\" : \"\";\n parent.appendChild(overflowEl);\n };\n Text.prototype.$renderLine = function (parent, row, foldLine) {\n if (!foldLine && foldLine != false)\n foldLine = this.session.getFoldLine(row);\n if (foldLine)\n var tokens = this.$getFoldLineTokens(row, foldLine);\n else\n var tokens = this.session.getTokens(row);\n var lastLineEl = parent;\n if (tokens.length) {\n var splits = this.session.getRowSplitData(row);\n if (splits && splits.length) {\n this.$renderWrappedLine(parent, tokens, splits);\n var lastLineEl = parent.lastChild;\n }\n else {\n var lastLineEl = parent;\n if (this.$useLineGroups()) {\n lastLineEl = this.$createLineElement();\n parent.appendChild(lastLineEl);\n }\n this.$renderSimpleLine(lastLineEl, tokens);\n }\n }\n else if (this.$useLineGroups()) {\n lastLineEl = this.$createLineElement();\n parent.appendChild(lastLineEl);\n }\n if (this.showEOL && lastLineEl) {\n if (foldLine)\n row = foldLine.end.row;\n var invisibleEl = this.dom.createElement(\"span\");\n invisibleEl.className = \"ace_invisible ace_invisible_eol\";\n invisibleEl.textContent = row == this.session.getLength() - 1 ? this.EOF_CHAR : this.EOL_CHAR;\n lastLineEl.appendChild(invisibleEl);\n }\n };\n Text.prototype.$getFoldLineTokens = function (row, foldLine) {\n var session = this.session;\n var renderTokens = [];\n function addTokens(tokens, from, to) {\n var idx = 0, col = 0;\n while ((col + tokens[idx].value.length) < from) {\n col += tokens[idx].value.length;\n idx++;\n if (idx == tokens.length)\n return;\n }\n if (col != from) {\n var value = tokens[idx].value.substring(from - col);\n if (value.length > (to - from))\n value = value.substring(0, to - from);\n renderTokens.push({\n type: tokens[idx].type,\n value: value\n });\n col = from + value.length;\n idx += 1;\n }\n while (col < to && idx < tokens.length) {\n var value = tokens[idx].value;\n if (value.length + col > to) {\n renderTokens.push({\n type: tokens[idx].type,\n value: value.substring(0, to - col)\n });\n }\n else\n renderTokens.push(tokens[idx]);\n col += value.length;\n idx += 1;\n }\n }\n var tokens = session.getTokens(row);\n foldLine.walk(function (placeholder, row, column, lastColumn, isNewRow) {\n if (placeholder != null) {\n renderTokens.push({\n type: \"fold\",\n value: placeholder\n });\n }\n else {\n if (isNewRow)\n tokens = session.getTokens(row);\n if (tokens.length)\n addTokens(tokens, lastColumn, column);\n }\n }, foldLine.end.row, this.session.getLine(foldLine.end.row).length);\n return renderTokens;\n };\n Text.prototype.$useLineGroups = function () {\n return this.session.getUseWrapMode();\n };\n return Text;\n}());\nText.prototype.EOF_CHAR = \"\\xB6\";\nText.prototype.EOL_CHAR_LF = \"\\xAC\";\nText.prototype.EOL_CHAR_CRLF = \"\\xa4\";\nText.prototype.EOL_CHAR = Text.prototype.EOL_CHAR_LF;\nText.prototype.TAB_CHAR = \"\\u2014\"; //\"\\u21E5\";\nText.prototype.SPACE_CHAR = \"\\xB7\";\nText.prototype.$padding = 0;\nText.prototype.MAX_LINE_LENGTH = 10000;\nText.prototype.showInvisibles = false;\nText.prototype.showSpaces = false;\nText.prototype.showTabs = false;\nText.prototype.showEOL = false;\nText.prototype.displayIndentGuides = true;\nText.prototype.$highlightIndentGuides = true;\nText.prototype.$tabStrings = [];\nText.prototype.destroy = {};\nText.prototype.onChangeTabSize = Text.prototype.$computeTabString;\noop.implement(Text.prototype, EventEmitter);\nexports.Text = Text;\n\n});\n\nace.define(\"ace/layer/cursor\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar Cursor = /** @class */ (function () {\n function Cursor(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_cursor-layer\";\n parentEl.appendChild(this.element);\n this.isVisible = false;\n this.isBlinking = true;\n this.blinkInterval = 1000;\n this.smoothBlinking = false;\n this.cursors = [];\n this.cursor = this.addCursor();\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.$updateCursors = this.$updateOpacity.bind(this);\n }\n Cursor.prototype.$updateOpacity = function (val) {\n var cursors = this.cursors;\n for (var i = cursors.length; i--;)\n dom.setStyle(cursors[i].style, \"opacity\", val ? \"\" : \"0\");\n };\n Cursor.prototype.$startCssAnimation = function () {\n var cursors = this.cursors;\n for (var i = cursors.length; i--;)\n cursors[i].style.animationDuration = this.blinkInterval + \"ms\";\n this.$isAnimating = true;\n setTimeout(function () {\n if (this.$isAnimating) {\n dom.addCssClass(this.element, \"ace_animate-blinking\");\n }\n }.bind(this));\n };\n Cursor.prototype.$stopCssAnimation = function () {\n this.$isAnimating = false;\n dom.removeCssClass(this.element, \"ace_animate-blinking\");\n };\n Cursor.prototype.setPadding = function (padding) {\n this.$padding = padding;\n };\n Cursor.prototype.setSession = function (session) {\n this.session = session;\n };\n Cursor.prototype.setBlinking = function (blinking) {\n if (blinking != this.isBlinking) {\n this.isBlinking = blinking;\n this.restartTimer();\n }\n };\n Cursor.prototype.setBlinkInterval = function (blinkInterval) {\n if (blinkInterval != this.blinkInterval) {\n this.blinkInterval = blinkInterval;\n this.restartTimer();\n }\n };\n Cursor.prototype.setSmoothBlinking = function (smoothBlinking) {\n if (smoothBlinking != this.smoothBlinking) {\n this.smoothBlinking = smoothBlinking;\n dom.setCssClass(this.element, \"ace_smooth-blinking\", smoothBlinking);\n this.$updateCursors(true);\n this.restartTimer();\n }\n };\n Cursor.prototype.addCursor = function () {\n var el = dom.createElement(\"div\");\n el.className = \"ace_cursor\";\n this.element.appendChild(el);\n this.cursors.push(el);\n return el;\n };\n Cursor.prototype.removeCursor = function () {\n if (this.cursors.length > 1) {\n var el = this.cursors.pop();\n el.parentNode.removeChild(el);\n return el;\n }\n };\n Cursor.prototype.hideCursor = function () {\n this.isVisible = false;\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n Cursor.prototype.showCursor = function () {\n this.isVisible = true;\n dom.removeCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n Cursor.prototype.restartTimer = function () {\n var update = this.$updateCursors;\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n this.$stopCssAnimation();\n if (this.smoothBlinking) {\n this.$isSmoothBlinking = false;\n dom.removeCssClass(this.element, \"ace_smooth-blinking\");\n }\n update(true);\n if (!this.isBlinking || !this.blinkInterval || !this.isVisible) {\n this.$stopCssAnimation();\n return;\n }\n if (this.smoothBlinking) {\n this.$isSmoothBlinking = true;\n setTimeout(function () {\n if (this.$isSmoothBlinking) {\n dom.addCssClass(this.element, \"ace_smooth-blinking\");\n }\n }.bind(this));\n }\n if (dom.HAS_CSS_ANIMATION) {\n this.$startCssAnimation();\n }\n else {\n var blink = function () {\n this.timeoutId = setTimeout(function () {\n update(false);\n }, 0.6 * this.blinkInterval);\n }.bind(this);\n this.intervalId = setInterval(function () {\n update(true);\n blink();\n }, this.blinkInterval);\n blink();\n }\n };\n Cursor.prototype.getPixelPosition = function (position, onScreen) {\n if (!this.config || !this.session)\n return { left: 0, top: 0 };\n if (!position)\n position = this.session.selection.getCursor();\n var pos = this.session.documentToScreenPosition(position);\n var cursorLeft = this.$padding + (this.session.$bidiHandler.isBidiRow(pos.row, position.row)\n ? this.session.$bidiHandler.getPosLeft(pos.column)\n : pos.column * this.config.characterWidth);\n var cursorTop = (pos.row - (onScreen ? this.config.firstRowScreen : 0)) *\n this.config.lineHeight;\n return { left: cursorLeft, top: cursorTop };\n };\n Cursor.prototype.isCursorInView = function (pixelPos, config) {\n return pixelPos.top >= 0 && pixelPos.top < config.maxHeight;\n };\n Cursor.prototype.update = function (config) {\n this.config = config;\n var selections = this.session.$selectionMarkers;\n var i = 0, cursorIndex = 0;\n if (selections === undefined || selections.length === 0) {\n selections = [{ cursor: null }];\n }\n for (var i = 0, n = selections.length; i < n; i++) {\n var pixelPos = this.getPixelPosition(selections[i].cursor, true);\n if ((pixelPos.top > config.height + config.offset ||\n pixelPos.top < 0) && i > 1) {\n continue;\n }\n var element = this.cursors[cursorIndex++] || this.addCursor();\n var style = element.style;\n if (!this.drawCursor) {\n if (!this.isCursorInView(pixelPos, config)) {\n dom.setStyle(style, \"display\", \"none\");\n }\n else {\n dom.setStyle(style, \"display\", \"block\");\n dom.translate(element, pixelPos.left, pixelPos.top);\n dom.setStyle(style, \"width\", Math.round(config.characterWidth) + \"px\");\n dom.setStyle(style, \"height\", config.lineHeight + \"px\");\n }\n }\n else {\n this.drawCursor(element, pixelPos, config, selections[i], this.session);\n }\n }\n while (this.cursors.length > cursorIndex)\n this.removeCursor();\n var overwrite = this.session.getOverwrite();\n this.$setOverwrite(overwrite);\n this.$pixelPos = pixelPos;\n this.restartTimer();\n };\n Cursor.prototype.$setOverwrite = function (overwrite) {\n if (overwrite != this.overwrite) {\n this.overwrite = overwrite;\n if (overwrite)\n dom.addCssClass(this.element, \"ace_overwrite-cursors\");\n else\n dom.removeCssClass(this.element, \"ace_overwrite-cursors\");\n }\n };\n Cursor.prototype.destroy = function () {\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n };\n return Cursor;\n}());\nCursor.prototype.$padding = 0;\nCursor.prototype.drawCursor = null;\nexports.Cursor = Cursor;\n\n});\n\nace.define(\"ace/scrollbar\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar event = require(\"./lib/event\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar MAX_SCROLL_H = 0x8000;\nvar Scrollbar = /** @class */ (function () {\n function Scrollbar(parent, classSuffix) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_scrollbar ace_scrollbar\" + classSuffix;\n this.inner = dom.createElement(\"div\");\n this.inner.className = \"ace_scrollbar-inner\";\n this.inner.textContent = \"\\xa0\";\n this.element.appendChild(this.inner);\n parent.appendChild(this.element);\n this.setVisible(false);\n this.skipEvent = false;\n event.addListener(this.element, \"scroll\", this.onScroll.bind(this));\n event.addListener(this.element, \"mousedown\", event.preventDefault);\n }\n Scrollbar.prototype.setVisible = function (isVisible) {\n this.element.style.display = isVisible ? \"\" : \"none\";\n this.isVisible = isVisible;\n this.coeff = 1;\n };\n return Scrollbar;\n}());\noop.implement(Scrollbar.prototype, EventEmitter);\nvar VScrollBar = /** @class */ (function (_super) {\n __extends(VScrollBar, _super);\n function VScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-v') || this;\n _this.scrollTop = 0;\n _this.scrollHeight = 0;\n renderer.$scrollbarWidth =\n _this.width = dom.scrollbarWidth(parent.ownerDocument);\n _this.inner.style.width =\n _this.element.style.width = (_this.width || 15) + 5 + \"px\";\n _this.$minWidth = 0;\n return _this;\n }\n VScrollBar.prototype.onScroll = function () {\n if (!this.skipEvent) {\n this.scrollTop = this.element.scrollTop;\n if (this.coeff != 1) {\n var h = this.element.clientHeight / this.scrollHeight;\n this.scrollTop = this.scrollTop * (1 - h) / (this.coeff - h);\n }\n this._emit(\"scroll\", { data: this.scrollTop });\n }\n this.skipEvent = false;\n };\n VScrollBar.prototype.getWidth = function () {\n return Math.max(this.isVisible ? this.width : 0, this.$minWidth || 0);\n };\n VScrollBar.prototype.setHeight = function (height) {\n this.element.style.height = height + \"px\";\n };\n VScrollBar.prototype.setScrollHeight = function (height) {\n this.scrollHeight = height;\n if (height > MAX_SCROLL_H) {\n this.coeff = MAX_SCROLL_H / height;\n height = MAX_SCROLL_H;\n }\n else if (this.coeff != 1) {\n this.coeff = 1;\n }\n this.inner.style.height = height + \"px\";\n };\n VScrollBar.prototype.setScrollTop = function (scrollTop) {\n if (this.scrollTop != scrollTop) {\n this.skipEvent = true;\n this.scrollTop = scrollTop;\n this.element.scrollTop = scrollTop * this.coeff;\n }\n };\n return VScrollBar;\n}(Scrollbar));\nVScrollBar.prototype.setInnerHeight = VScrollBar.prototype.setScrollHeight;\nvar HScrollBar = /** @class */ (function (_super) {\n __extends(HScrollBar, _super);\n function HScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-h') || this;\n _this.scrollLeft = 0;\n _this.height = renderer.$scrollbarWidth;\n _this.inner.style.height =\n _this.element.style.height = (_this.height || 15) + 5 + \"px\";\n return _this;\n }\n HScrollBar.prototype.onScroll = function () {\n if (!this.skipEvent) {\n this.scrollLeft = this.element.scrollLeft;\n this._emit(\"scroll\", { data: this.scrollLeft });\n }\n this.skipEvent = false;\n };\n HScrollBar.prototype.getHeight = function () {\n return this.isVisible ? this.height : 0;\n };\n HScrollBar.prototype.setWidth = function (width) {\n this.element.style.width = width + \"px\";\n };\n HScrollBar.prototype.setInnerWidth = function (width) {\n this.inner.style.width = width + \"px\";\n };\n HScrollBar.prototype.setScrollWidth = function (width) {\n this.inner.style.width = width + \"px\";\n };\n HScrollBar.prototype.setScrollLeft = function (scrollLeft) {\n if (this.scrollLeft != scrollLeft) {\n this.skipEvent = true;\n this.scrollLeft = this.element.scrollLeft = scrollLeft;\n }\n };\n return HScrollBar;\n}(Scrollbar));\nexports.ScrollBar = VScrollBar; // backward compatibility\nexports.ScrollBarV = VScrollBar; // backward compatibility\nexports.ScrollBarH = HScrollBar; // backward compatibility\nexports.VScrollBar = VScrollBar;\nexports.HScrollBar = HScrollBar;\n\n});\n\nace.define(\"ace/scrollbar_custom\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar event = require(\"./lib/event\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\ndom.importCssString(\".ace_editor>.ace_sb-v div, .ace_editor>.ace_sb-h div{\\n position: absolute;\\n background: rgba(128, 128, 128, 0.6);\\n -moz-box-sizing: border-box;\\n box-sizing: border-box;\\n border: 1px solid #bbb;\\n border-radius: 2px;\\n z-index: 8;\\n}\\n.ace_editor>.ace_sb-v, .ace_editor>.ace_sb-h {\\n position: absolute;\\n z-index: 6;\\n background: none;\\n overflow: hidden!important;\\n}\\n.ace_editor>.ace_sb-v {\\n z-index: 6;\\n right: 0;\\n top: 0;\\n width: 12px;\\n}\\n.ace_editor>.ace_sb-v div {\\n z-index: 8;\\n right: 0;\\n width: 100%;\\n}\\n.ace_editor>.ace_sb-h {\\n bottom: 0;\\n left: 0;\\n height: 12px;\\n}\\n.ace_editor>.ace_sb-h div {\\n bottom: 0;\\n height: 100%;\\n}\\n.ace_editor>.ace_sb_grabbed {\\n z-index: 8;\\n background: #000;\\n}\", \"ace_scrollbar.css\", false);\nvar ScrollBar = /** @class */ (function () {\n function ScrollBar(parent, classSuffix) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_sb\" + classSuffix;\n this.inner = dom.createElement(\"div\");\n this.inner.className = \"\";\n this.element.appendChild(this.inner);\n this.VScrollWidth = 12;\n this.HScrollHeight = 12;\n parent.appendChild(this.element);\n this.setVisible(false);\n this.skipEvent = false;\n event.addMultiMouseDownListener(this.element, [500, 300, 300], this, \"onMouseDown\");\n }\n ScrollBar.prototype.setVisible = function (isVisible) {\n this.element.style.display = isVisible ? \"\" : \"none\";\n this.isVisible = isVisible;\n this.coeff = 1;\n };\n return ScrollBar;\n}());\noop.implement(ScrollBar.prototype, EventEmitter);\nvar VScrollBar = /** @class */ (function (_super) {\n __extends(VScrollBar, _super);\n function VScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-v') || this;\n _this.scrollTop = 0;\n _this.scrollHeight = 0;\n _this.parent = parent;\n _this.width = _this.VScrollWidth;\n _this.renderer = renderer;\n _this.inner.style.width = _this.element.style.width = (_this.width || 15) + \"px\";\n _this.$minWidth = 0;\n return _this;\n }\n VScrollBar.prototype.onMouseDown = function (eType, e) {\n if (eType !== \"mousedown\")\n return;\n if (event.getButton(e) !== 0 || e.detail === 2) {\n return;\n }\n if (e.target === this.inner) {\n var self = this;\n var mousePageY = e.clientY;\n var onMouseMove = function (e) {\n mousePageY = e.clientY;\n };\n var onMouseUp = function () {\n clearInterval(timerId);\n };\n var startY = e.clientY;\n var startTop = this.thumbTop;\n var onScrollInterval = function () {\n if (mousePageY === undefined)\n return;\n var scrollTop = self.scrollTopFromThumbTop(startTop + mousePageY - startY);\n if (scrollTop === self.scrollTop)\n return;\n self._emit(\"scroll\", { data: scrollTop });\n };\n event.capture(this.inner, onMouseMove, onMouseUp);\n var timerId = setInterval(onScrollInterval, 20);\n return event.preventDefault(e);\n }\n var top = e.clientY - this.element.getBoundingClientRect().top - this.thumbHeight / 2;\n this._emit(\"scroll\", { data: this.scrollTopFromThumbTop(top) });\n return event.preventDefault(e);\n };\n VScrollBar.prototype.getHeight = function () {\n return this.height;\n };\n VScrollBar.prototype.scrollTopFromThumbTop = function (thumbTop) {\n var scrollTop = thumbTop * (this.pageHeight - this.viewHeight) / (this.slideHeight - this.thumbHeight);\n scrollTop = scrollTop >> 0;\n if (scrollTop < 0) {\n scrollTop = 0;\n }\n else if (scrollTop > this.pageHeight - this.viewHeight) {\n scrollTop = this.pageHeight - this.viewHeight;\n }\n return scrollTop;\n };\n VScrollBar.prototype.getWidth = function () {\n return Math.max(this.isVisible ? this.width : 0, this.$minWidth || 0);\n };\n VScrollBar.prototype.setHeight = function (height) {\n this.height = Math.max(0, height);\n this.slideHeight = this.height;\n this.viewHeight = this.height;\n this.setScrollHeight(this.pageHeight, true);\n };\n VScrollBar.prototype.setScrollHeight = function (height, force) {\n if (this.pageHeight === height && !force)\n return;\n this.pageHeight = height;\n this.thumbHeight = this.slideHeight * this.viewHeight / this.pageHeight;\n if (this.thumbHeight > this.slideHeight)\n this.thumbHeight = this.slideHeight;\n if (this.thumbHeight < 15)\n this.thumbHeight = 15;\n this.inner.style.height = this.thumbHeight + \"px\";\n if (this.scrollTop > (this.pageHeight - this.viewHeight)) {\n this.scrollTop = (this.pageHeight - this.viewHeight);\n if (this.scrollTop < 0)\n this.scrollTop = 0;\n this._emit(\"scroll\", { data: this.scrollTop });\n }\n };\n VScrollBar.prototype.setScrollTop = function (scrollTop) {\n this.scrollTop = scrollTop;\n if (scrollTop < 0)\n scrollTop = 0;\n this.thumbTop = scrollTop * (this.slideHeight - this.thumbHeight) / (this.pageHeight - this.viewHeight);\n this.inner.style.top = this.thumbTop + \"px\";\n };\n return VScrollBar;\n}(ScrollBar));\nVScrollBar.prototype.setInnerHeight = VScrollBar.prototype.setScrollHeight;\nvar HScrollBar = /** @class */ (function (_super) {\n __extends(HScrollBar, _super);\n function HScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-h') || this;\n _this.scrollLeft = 0;\n _this.scrollWidth = 0;\n _this.height = _this.HScrollHeight;\n _this.inner.style.height = _this.element.style.height = (_this.height || 12) + \"px\";\n _this.renderer = renderer;\n return _this;\n }\n HScrollBar.prototype.onMouseDown = function (eType, e) {\n if (eType !== \"mousedown\")\n return;\n if (event.getButton(e) !== 0 || e.detail === 2) {\n return;\n }\n if (e.target === this.inner) {\n var self = this;\n var mousePageX = e.clientX;\n var onMouseMove = function (e) {\n mousePageX = e.clientX;\n };\n var onMouseUp = function () {\n clearInterval(timerId);\n };\n var startX = e.clientX;\n var startLeft = this.thumbLeft;\n var onScrollInterval = function () {\n if (mousePageX === undefined)\n return;\n var scrollLeft = self.scrollLeftFromThumbLeft(startLeft + mousePageX - startX);\n if (scrollLeft === self.scrollLeft)\n return;\n self._emit(\"scroll\", { data: scrollLeft });\n };\n event.capture(this.inner, onMouseMove, onMouseUp);\n var timerId = setInterval(onScrollInterval, 20);\n return event.preventDefault(e);\n }\n var left = e.clientX - this.element.getBoundingClientRect().left - this.thumbWidth / 2;\n this._emit(\"scroll\", { data: this.scrollLeftFromThumbLeft(left) });\n return event.preventDefault(e);\n };\n HScrollBar.prototype.getHeight = function () {\n return this.isVisible ? this.height : 0;\n };\n HScrollBar.prototype.scrollLeftFromThumbLeft = function (thumbLeft) {\n var scrollLeft = thumbLeft * (this.pageWidth - this.viewWidth) / (this.slideWidth - this.thumbWidth);\n scrollLeft = scrollLeft >> 0;\n if (scrollLeft < 0) {\n scrollLeft = 0;\n }\n else if (scrollLeft > this.pageWidth - this.viewWidth) {\n scrollLeft = this.pageWidth - this.viewWidth;\n }\n return scrollLeft;\n };\n HScrollBar.prototype.setWidth = function (width) {\n this.width = Math.max(0, width);\n this.element.style.width = this.width + \"px\";\n this.slideWidth = this.width;\n this.viewWidth = this.width;\n this.setScrollWidth(this.pageWidth, true);\n };\n HScrollBar.prototype.setScrollWidth = function (width, force) {\n if (this.pageWidth === width && !force)\n return;\n this.pageWidth = width;\n this.thumbWidth = this.slideWidth * this.viewWidth / this.pageWidth;\n if (this.thumbWidth > this.slideWidth)\n this.thumbWidth = this.slideWidth;\n if (this.thumbWidth < 15)\n this.thumbWidth = 15;\n this.inner.style.width = this.thumbWidth + \"px\";\n if (this.scrollLeft > (this.pageWidth - this.viewWidth)) {\n this.scrollLeft = (this.pageWidth - this.viewWidth);\n if (this.scrollLeft < 0)\n this.scrollLeft = 0;\n this._emit(\"scroll\", { data: this.scrollLeft });\n }\n };\n HScrollBar.prototype.setScrollLeft = function (scrollLeft) {\n this.scrollLeft = scrollLeft;\n if (scrollLeft < 0)\n scrollLeft = 0;\n this.thumbLeft = scrollLeft * (this.slideWidth - this.thumbWidth) / (this.pageWidth - this.viewWidth);\n this.inner.style.left = (this.thumbLeft) + \"px\";\n };\n return HScrollBar;\n}(ScrollBar));\nHScrollBar.prototype.setInnerWidth = HScrollBar.prototype.setScrollWidth;\nexports.ScrollBar = VScrollBar; // backward compatibility\nexports.ScrollBarV = VScrollBar; // backward compatibility\nexports.ScrollBarH = HScrollBar; // backward compatibility\nexports.VScrollBar = VScrollBar;\nexports.HScrollBar = HScrollBar;\n\n});\n\nace.define(\"ace/renderloop\",[\"require\",\"exports\",\"module\",\"ace/lib/event\"], function(require, exports, module){\"use strict\";\nvar event = require(\"./lib/event\");\nvar RenderLoop = /** @class */ (function () {\n function RenderLoop(onRender, win) {\n this.onRender = onRender;\n this.pending = false;\n this.changes = 0;\n this.$recursionLimit = 2;\n this.window = win || window;\n var _self = this;\n this._flush = function (ts) {\n _self.pending = false;\n var changes = _self.changes;\n if (changes) {\n event.blockIdle(100);\n _self.changes = 0;\n _self.onRender(changes);\n }\n if (_self.changes) {\n if (_self.$recursionLimit-- < 0)\n return;\n _self.schedule();\n }\n else {\n _self.$recursionLimit = 2;\n }\n };\n }\n RenderLoop.prototype.schedule = function (change) {\n this.changes = this.changes | change;\n if (this.changes && !this.pending) {\n event.nextFrame(this._flush);\n this.pending = true;\n }\n };\n RenderLoop.prototype.clear = function (change) {\n var changes = this.changes;\n this.changes = 0;\n return changes;\n };\n return RenderLoop;\n}());\nexports.RenderLoop = RenderLoop;\n\n});\n\nace.define(\"ace/layer/font_metrics\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar CHAR_COUNT = 512;\nvar USE_OBSERVER = typeof ResizeObserver == \"function\";\nvar L = 200;\nvar FontMetrics = /** @class */ (function () {\n function FontMetrics(parentEl) {\n this.el = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.el.style, true);\n this.$main = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$main.style);\n this.$measureNode = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$measureNode.style);\n this.el.appendChild(this.$main);\n this.el.appendChild(this.$measureNode);\n parentEl.appendChild(this.el);\n this.$measureNode.textContent = lang.stringRepeat(\"X\", CHAR_COUNT);\n this.$characterSize = { width: 0, height: 0 };\n if (USE_OBSERVER)\n this.$addObserver();\n else\n this.checkForSizeChanges();\n }\n FontMetrics.prototype.$setMeasureNodeStyles = function (style, isRoot) {\n style.width = style.height = \"auto\";\n style.left = style.top = \"0px\";\n style.visibility = \"hidden\";\n style.position = \"absolute\";\n style.whiteSpace = \"pre\";\n if (useragent.isIE < 8) {\n style[\"font-family\"] = \"inherit\";\n }\n else {\n style.font = \"inherit\";\n }\n style.overflow = isRoot ? \"hidden\" : \"visible\";\n };\n FontMetrics.prototype.checkForSizeChanges = function (size) {\n if (size === undefined)\n size = this.$measureSizes();\n if (size && (this.$characterSize.width !== size.width || this.$characterSize.height !== size.height)) {\n this.$measureNode.style.fontWeight = \"bold\";\n var boldSize = this.$measureSizes();\n this.$measureNode.style.fontWeight = \"\";\n this.$characterSize = size;\n this.charSizes = Object.create(null);\n this.allowBoldFonts = boldSize && boldSize.width === size.width && boldSize.height === size.height;\n this._emit(\"changeCharacterSize\", { data: size });\n }\n };\n FontMetrics.prototype.$addObserver = function () {\n var self = this;\n this.$observer = new window.ResizeObserver(function (e) {\n self.checkForSizeChanges();\n });\n this.$observer.observe(this.$measureNode);\n };\n FontMetrics.prototype.$pollSizeChanges = function () {\n if (this.$pollSizeChangesTimer || this.$observer)\n return this.$pollSizeChangesTimer;\n var self = this;\n return this.$pollSizeChangesTimer = event.onIdle(function cb() {\n self.checkForSizeChanges();\n event.onIdle(cb, 500);\n }, 500);\n };\n FontMetrics.prototype.setPolling = function (val) {\n if (val) {\n this.$pollSizeChanges();\n }\n else if (this.$pollSizeChangesTimer) {\n clearInterval(this.$pollSizeChangesTimer);\n this.$pollSizeChangesTimer = 0;\n }\n };\n FontMetrics.prototype.$measureSizes = function (node) {\n var size = {\n height: (node || this.$measureNode).clientHeight,\n width: (node || this.$measureNode).clientWidth / CHAR_COUNT\n };\n if (size.width === 0 || size.height === 0)\n return null;\n return size;\n };\n FontMetrics.prototype.$measureCharWidth = function (ch) {\n this.$main.textContent = lang.stringRepeat(ch, CHAR_COUNT);\n var rect = this.$main.getBoundingClientRect();\n return rect.width / CHAR_COUNT;\n };\n FontMetrics.prototype.getCharacterWidth = function (ch) {\n var w = this.charSizes[ch];\n if (w === undefined) {\n w = this.charSizes[ch] = this.$measureCharWidth(ch) / this.$characterSize.width;\n }\n return w;\n };\n FontMetrics.prototype.destroy = function () {\n clearInterval(this.$pollSizeChangesTimer);\n if (this.$observer)\n this.$observer.disconnect();\n if (this.el && this.el.parentNode)\n this.el.parentNode.removeChild(this.el);\n };\n FontMetrics.prototype.$getZoom = function (element) {\n if (!element || !element.parentElement)\n return 1;\n return (window.getComputedStyle(element).zoom || 1) * this.$getZoom(element.parentElement);\n };\n FontMetrics.prototype.$initTransformMeasureNodes = function () {\n var t = function (t, l) {\n return [\"div\", {\n style: \"position: absolute;top:\" + t + \"px;left:\" + l + \"px;\"\n }];\n };\n this.els = dom.buildDom([t(0, 0), t(L, 0), t(0, L), t(L, L)], this.el);\n };\n FontMetrics.prototype.transformCoordinates = function (clientPos, elPos) {\n if (clientPos) {\n var zoom = this.$getZoom(this.el);\n clientPos = mul(1 / zoom, clientPos);\n }\n function solve(l1, l2, r) {\n var det = l1[1] * l2[0] - l1[0] * l2[1];\n return [\n (-l2[1] * r[0] + l2[0] * r[1]) / det,\n (+l1[1] * r[0] - l1[0] * r[1]) / det\n ];\n }\n function sub(a, b) { return [a[0] - b[0], a[1] - b[1]]; }\n function add(a, b) { return [a[0] + b[0], a[1] + b[1]]; }\n function mul(a, b) { return [a * b[0], a * b[1]]; }\n if (!this.els)\n this.$initTransformMeasureNodes();\n function p(el) {\n var r = el.getBoundingClientRect();\n return [r.left, r.top];\n }\n var a = p(this.els[0]);\n var b = p(this.els[1]);\n var c = p(this.els[2]);\n var d = p(this.els[3]);\n var h = solve(sub(d, b), sub(d, c), sub(add(b, c), add(d, a)));\n var m1 = mul(1 + h[0], sub(b, a));\n var m2 = mul(1 + h[1], sub(c, a));\n if (elPos) {\n var x = elPos;\n var k = h[0] * x[0] / L + h[1] * x[1] / L + 1;\n var ut = add(mul(x[0], m1), mul(x[1], m2));\n return add(mul(1 / k / L, ut), a);\n }\n var u = sub(clientPos, a);\n var f = solve(sub(m1, mul(h[0], u)), sub(m2, mul(h[1], u)), u);\n return mul(L, f);\n };\n return FontMetrics;\n}());\nFontMetrics.prototype.$characterSize = { width: 0, height: 0 };\noop.implement(FontMetrics.prototype, EventEmitter);\nexports.FontMetrics = FontMetrics;\n\n});\n\nace.define(\"ace/css/editor-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){/*\nstyles = []\nfor (var i = 1; i < 16; i++) {\n styles.push(\".ace_br\" + i + \"{\" + (\n [\"top-left\", \"top-right\", \"bottom-right\", \"bottom-left\"]\n ).map(function(x, j) {\n return i & (1< .ace_line, .ace_text-layer > .ace_line_group {\\n contain: style size layout;\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n}\\n\\n.ace_hidpi .ace_text-layer,\\n.ace_hidpi .ace_gutter-layer,\\n.ace_hidpi .ace_content,\\n.ace_hidpi .ace_gutter {\\n contain: strict;\\n}\\n.ace_hidpi .ace_text-layer > .ace_line, \\n.ace_hidpi .ace_text-layer > .ace_line_group {\\n contain: strict;\\n}\\n\\n.ace_cjk {\\n display: inline-block;\\n text-align: center;\\n}\\n\\n.ace_cursor-layer {\\n z-index: 4;\\n}\\n\\n.ace_cursor {\\n z-index: 4;\\n position: absolute;\\n box-sizing: border-box;\\n border-left: 2px solid;\\n /* workaround for smooth cursor repaintng whole screen in chrome */\\n transform: translatez(0);\\n}\\n\\n.ace_multiselect .ace_cursor {\\n border-left-width: 1px;\\n}\\n\\n.ace_slim-cursors .ace_cursor {\\n border-left-width: 1px;\\n}\\n\\n.ace_overwrite-cursors .ace_cursor {\\n border-left-width: 0;\\n border-bottom: 1px solid;\\n}\\n\\n.ace_hidden-cursors .ace_cursor {\\n opacity: 0.2;\\n}\\n\\n.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor {\\n opacity: 0;\\n}\\n\\n.ace_smooth-blinking .ace_cursor {\\n transition: opacity 0.18s;\\n}\\n\\n.ace_animate-blinking .ace_cursor {\\n animation-duration: 1000ms;\\n animation-timing-function: step-end;\\n animation-name: blink-ace-animate;\\n animation-iteration-count: infinite;\\n}\\n\\n.ace_animate-blinking.ace_smooth-blinking .ace_cursor {\\n animation-duration: 1000ms;\\n animation-timing-function: ease-in-out;\\n animation-name: blink-ace-animate-smooth;\\n}\\n \\n@keyframes blink-ace-animate {\\n from, to { opacity: 1; }\\n 60% { opacity: 0; }\\n}\\n\\n@keyframes blink-ace-animate-smooth {\\n from, to { opacity: 1; }\\n 45% { opacity: 1; }\\n 60% { opacity: 0; }\\n 85% { opacity: 0; }\\n}\\n\\n.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\\n position: absolute;\\n z-index: 3;\\n}\\n\\n.ace_marker-layer .ace_selection {\\n position: absolute;\\n z-index: 5;\\n}\\n\\n.ace_marker-layer .ace_bracket {\\n position: absolute;\\n z-index: 6;\\n}\\n\\n.ace_marker-layer .ace_error_bracket {\\n position: absolute;\\n border-bottom: 1px solid #DE5555;\\n border-radius: 0;\\n}\\n\\n.ace_marker-layer .ace_active-line {\\n position: absolute;\\n z-index: 2;\\n}\\n\\n.ace_marker-layer .ace_selected-word {\\n position: absolute;\\n z-index: 4;\\n box-sizing: border-box;\\n}\\n\\n.ace_line .ace_fold {\\n box-sizing: border-box;\\n\\n display: inline-block;\\n height: 11px;\\n margin-top: -2px;\\n vertical-align: middle;\\n\\n background-image:\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=\\\");\\n background-repeat: no-repeat, repeat-x;\\n background-position: center center, top left;\\n color: transparent;\\n\\n border: 1px solid black;\\n border-radius: 2px;\\n\\n cursor: pointer;\\n pointer-events: auto;\\n}\\n\\n.ace_dark .ace_fold {\\n}\\n\\n.ace_fold:hover{\\n background-image:\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC\\\");\\n}\\n\\n.ace_tooltip {\\n background-color: #f5f5f5;\\n border: 1px solid gray;\\n border-radius: 1px;\\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\\n color: black;\\n max-width: 100%;\\n padding: 3px 4px;\\n position: fixed;\\n z-index: 999999;\\n box-sizing: border-box;\\n cursor: default;\\n white-space: pre-wrap;\\n word-wrap: break-word;\\n line-height: normal;\\n font-style: normal;\\n font-weight: normal;\\n letter-spacing: normal;\\n pointer-events: none;\\n overflow: auto;\\n max-width: min(60em, 66vw);\\n}\\n.ace_tooltip pre {\\n white-space: pre-wrap;\\n}\\n\\n.ace_tooltip.ace_dark {\\n background-color: #636363;\\n color: #fff;\\n}\\n\\n.ace_tooltip:focus {\\n outline: 1px solid #5E9ED6;\\n}\\n\\n.ace_icon {\\n display: inline-block;\\n width: 18px;\\n vertical-align: top;\\n}\\n\\n.ace_icon_svg {\\n display: inline-block;\\n width: 12px;\\n vertical-align: top;\\n -webkit-mask-repeat: no-repeat;\\n -webkit-mask-size: 12px;\\n -webkit-mask-position: center;\\n}\\n\\n.ace_folding-enabled > .ace_gutter-cell, .ace_folding-enabled > .ace_gutter-cell_svg-icons {\\n padding-right: 13px;\\n}\\n\\n.ace_fold-widget {\\n box-sizing: border-box;\\n\\n margin: 0 -12px 0 1px;\\n display: none;\\n width: 11px;\\n vertical-align: top;\\n\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==\\\");\\n background-repeat: no-repeat;\\n background-position: center;\\n\\n border-radius: 3px;\\n \\n border: 1px solid transparent;\\n cursor: pointer;\\n}\\n\\n.ace_folding-enabled .ace_fold-widget {\\n display: inline-block; \\n}\\n\\n.ace_fold-widget.ace_end {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==\\\");\\n}\\n\\n.ace_fold-widget.ace_closed {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==\\\");\\n}\\n\\n.ace_fold-widget:hover {\\n border: 1px solid rgba(0, 0, 0, 0.3);\\n background-color: rgba(255, 255, 255, 0.2);\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\\n}\\n\\n.ace_fold-widget:active {\\n border: 1px solid rgba(0, 0, 0, 0.4);\\n background-color: rgba(0, 0, 0, 0.05);\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\\n}\\n/**\\n * Dark version for fold widgets\\n */\\n.ace_dark .ace_fold-widget {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC\\\");\\n}\\n.ace_dark .ace_fold-widget.ace_end {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==\\\");\\n}\\n.ace_dark .ace_fold-widget.ace_closed {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==\\\");\\n}\\n.ace_dark .ace_fold-widget:hover {\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.ace_dark .ace_fold-widget:active {\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\n}\\n\\n.ace_inline_button {\\n border: 1px solid lightgray;\\n display: inline-block;\\n margin: -1px 8px;\\n padding: 0 5px;\\n pointer-events: auto;\\n cursor: pointer;\\n}\\n.ace_inline_button:hover {\\n border-color: gray;\\n background: rgba(200,200,200,0.2);\\n display: inline-block;\\n pointer-events: auto;\\n}\\n\\n.ace_fold-widget.ace_invalid {\\n background-color: #FFB4B4;\\n border-color: #DE5555;\\n}\\n\\n.ace_fade-fold-widgets .ace_fold-widget {\\n transition: opacity 0.4s ease 0.05s;\\n opacity: 0;\\n}\\n\\n.ace_fade-fold-widgets:hover .ace_fold-widget {\\n transition: opacity 0.05s ease 0.05s;\\n opacity:1;\\n}\\n\\n.ace_underline {\\n text-decoration: underline;\\n}\\n\\n.ace_bold {\\n font-weight: bold;\\n}\\n\\n.ace_nobold .ace_bold {\\n font-weight: normal;\\n}\\n\\n.ace_italic {\\n font-style: italic;\\n}\\n\\n\\n.ace_error-marker {\\n background-color: rgba(255, 0, 0,0.2);\\n position: absolute;\\n z-index: 9;\\n}\\n\\n.ace_highlight-marker {\\n background-color: rgba(255, 255, 0,0.2);\\n position: absolute;\\n z-index: 8;\\n}\\n\\n.ace_mobile-menu {\\n position: absolute;\\n line-height: 1.5;\\n border-radius: 4px;\\n -ms-user-select: none;\\n -moz-user-select: none;\\n -webkit-user-select: none;\\n user-select: none;\\n background: white;\\n box-shadow: 1px 3px 2px grey;\\n border: 1px solid #dcdcdc;\\n color: black;\\n}\\n.ace_dark > .ace_mobile-menu {\\n background: #333;\\n color: #ccc;\\n box-shadow: 1px 3px 2px grey;\\n border: 1px solid #444;\\n\\n}\\n.ace_mobile-button {\\n padding: 2px;\\n cursor: pointer;\\n overflow: hidden;\\n}\\n.ace_mobile-button:hover {\\n background-color: #eee;\\n opacity:1;\\n}\\n.ace_mobile-button:active {\\n background-color: #ddd;\\n}\\n\\n.ace_placeholder {\\n font-family: arial;\\n transform: scale(0.9);\\n transform-origin: left;\\n white-space: pre;\\n opacity: 0.7;\\n margin: 0 10px;\\n}\\n\\n.ace_ghost_text {\\n opacity: 0.5;\\n font-style: italic;\\n white-space: pre;\\n}\\n\\n.ace_screenreader-only {\\n position:absolute;\\n left:-10000px;\\n top:auto;\\n width:1px;\\n height:1px;\\n overflow:hidden;\\n}\";\n\n});\n\nace.define(\"ace/layer/decorators\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar oop = require(\"../lib/oop\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar Decorator = /** @class */ (function () {\n function Decorator(parent, renderer) {\n this.canvas = dom.createElement(\"canvas\");\n this.renderer = renderer;\n this.pixelRatio = 1;\n this.maxHeight = renderer.layerConfig.maxHeight;\n this.lineHeight = renderer.layerConfig.lineHeight;\n this.canvasHeight = parent.parent.scrollHeight;\n this.heightRatio = this.canvasHeight / this.maxHeight;\n this.canvasWidth = parent.width;\n this.minDecorationHeight = (2 * this.pixelRatio) | 0;\n this.halfMinDecorationHeight = (this.minDecorationHeight / 2) | 0;\n this.canvas.width = this.canvasWidth;\n this.canvas.height = this.canvasHeight;\n this.canvas.style.top = 0 + \"px\";\n this.canvas.style.right = 0 + \"px\";\n this.canvas.style.zIndex = 7 + \"px\";\n this.canvas.style.position = \"absolute\";\n this.colors = {};\n this.colors.dark = {\n \"error\": \"rgba(255, 18, 18, 1)\",\n \"warning\": \"rgba(18, 136, 18, 1)\",\n \"info\": \"rgba(18, 18, 136, 1)\"\n };\n this.colors.light = {\n \"error\": \"rgb(255,51,51)\",\n \"warning\": \"rgb(32,133,72)\",\n \"info\": \"rgb(35,68,138)\"\n };\n parent.element.appendChild(this.canvas);\n }\n Decorator.prototype.$updateDecorators = function (config) {\n var colors = (this.renderer.theme.isDark === true) ? this.colors.dark : this.colors.light;\n if (config) {\n this.maxHeight = config.maxHeight;\n this.lineHeight = config.lineHeight;\n this.canvasHeight = config.height;\n var allLineHeight = (config.lastRow + 1) * this.lineHeight;\n if (allLineHeight < this.canvasHeight) {\n this.heightRatio = 1;\n }\n else {\n this.heightRatio = this.canvasHeight / this.maxHeight;\n }\n }\n var ctx = this.canvas.getContext(\"2d\");\n function compare(a, b) {\n if (a.priority < b.priority)\n return -1;\n if (a.priority > b.priority)\n return 1;\n return 0;\n }\n var annotations = this.renderer.session.$annotations;\n ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n if (annotations) {\n var priorities = {\n \"info\": 1,\n \"warning\": 2,\n \"error\": 3\n };\n annotations.forEach(function (item) {\n item.priority = priorities[item.type] || null;\n });\n annotations = annotations.sort(compare);\n var foldData = this.renderer.session.$foldData;\n for (var i = 0; i < annotations.length; i++) {\n var row = annotations[i].row;\n var compensateFold = this.compensateFoldRows(row, foldData);\n var currentY = Math.round((row - compensateFold) * this.lineHeight * this.heightRatio);\n var y1 = Math.round(((row - compensateFold) * this.lineHeight * this.heightRatio));\n var y2 = Math.round((((row - compensateFold) * this.lineHeight + this.lineHeight) * this.heightRatio));\n var height = y2 - y1;\n if (height < this.minDecorationHeight) {\n var yCenter = ((y1 + y2) / 2) | 0;\n if (yCenter < this.halfMinDecorationHeight) {\n yCenter = this.halfMinDecorationHeight;\n }\n else if (yCenter + this.halfMinDecorationHeight > this.canvasHeight) {\n yCenter = this.canvasHeight - this.halfMinDecorationHeight;\n }\n y1 = Math.round(yCenter - this.halfMinDecorationHeight);\n y2 = Math.round(yCenter + this.halfMinDecorationHeight);\n }\n ctx.fillStyle = colors[annotations[i].type] || null;\n ctx.fillRect(0, currentY, this.canvasWidth, y2 - y1);\n }\n }\n var cursor = this.renderer.session.selection.getCursor();\n if (cursor) {\n var compensateFold = this.compensateFoldRows(cursor.row, foldData);\n var currentY = Math.round((cursor.row - compensateFold) * this.lineHeight * this.heightRatio);\n ctx.fillStyle = \"rgba(0, 0, 0, 0.5)\";\n ctx.fillRect(0, currentY, this.canvasWidth, 2);\n }\n };\n Decorator.prototype.compensateFoldRows = function (row, foldData) {\n var compensateFold = 0;\n if (foldData && foldData.length > 0) {\n for (var j = 0; j < foldData.length; j++) {\n if (row > foldData[j].start.row && row < foldData[j].end.row) {\n compensateFold += row - foldData[j].start.row;\n }\n else if (row >= foldData[j].end.row) {\n compensateFold += foldData[j].end.row - foldData[j].start.row;\n }\n }\n }\n return compensateFold;\n };\n return Decorator;\n}());\noop.implement(Decorator.prototype, EventEmitter);\nexports.Decorator = Decorator;\n\n});\n\nace.define(\"ace/virtual_renderer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/config\",\"ace/layer/gutter\",\"ace/layer/marker\",\"ace/layer/text\",\"ace/layer/cursor\",\"ace/scrollbar\",\"ace/scrollbar\",\"ace/scrollbar_custom\",\"ace/scrollbar_custom\",\"ace/renderloop\",\"ace/layer/font_metrics\",\"ace/lib/event_emitter\",\"ace/css/editor-css\",\"ace/layer/decorators\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar lang = require(\"./lib/lang\");\nvar config = require(\"./config\");\nvar GutterLayer = require(\"./layer/gutter\").Gutter;\nvar MarkerLayer = require(\"./layer/marker\").Marker;\nvar TextLayer = require(\"./layer/text\").Text;\nvar CursorLayer = require(\"./layer/cursor\").Cursor;\nvar HScrollBar = require(\"./scrollbar\").HScrollBar;\nvar VScrollBar = require(\"./scrollbar\").VScrollBar;\nvar HScrollBarCustom = require(\"./scrollbar_custom\").HScrollBar;\nvar VScrollBarCustom = require(\"./scrollbar_custom\").VScrollBar;\nvar RenderLoop = require(\"./renderloop\").RenderLoop;\nvar FontMetrics = require(\"./layer/font_metrics\").FontMetrics;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar editorCss = require(\"./css/editor-css\");\nvar Decorator = require(\"./layer/decorators\").Decorator;\nvar useragent = require(\"./lib/useragent\");\ndom.importCssString(editorCss, \"ace_editor.css\", false);\nvar VirtualRenderer = /** @class */ (function () {\n function VirtualRenderer(container, theme) {\n var _self = this;\n this.container = container || dom.createElement(\"div\");\n dom.addCssClass(this.container, \"ace_editor\");\n if (dom.HI_DPI)\n dom.addCssClass(this.container, \"ace_hidpi\");\n this.setTheme(theme);\n if (config.get(\"useStrictCSP\") == null)\n config.set(\"useStrictCSP\", false);\n this.$gutter = dom.createElement(\"div\");\n this.$gutter.className = \"ace_gutter\";\n this.container.appendChild(this.$gutter);\n this.$gutter.setAttribute(\"aria-hidden\", true);\n this.scroller = dom.createElement(\"div\");\n this.scroller.className = \"ace_scroller\";\n this.container.appendChild(this.scroller);\n this.content = dom.createElement(\"div\");\n this.content.className = \"ace_content\";\n this.scroller.appendChild(this.content);\n this.$gutterLayer = new GutterLayer(this.$gutter);\n this.$gutterLayer.on(\"changeGutterWidth\", this.onGutterResize.bind(this));\n this.$markerBack = new MarkerLayer(this.content);\n var textLayer = this.$textLayer = new TextLayer(this.content);\n this.canvas = textLayer.element;\n this.$markerFront = new MarkerLayer(this.content);\n this.$cursorLayer = new CursorLayer(this.content);\n this.$horizScroll = false;\n this.$vScroll = false;\n this.scrollBar =\n this.scrollBarV = new VScrollBar(this.container, this);\n this.scrollBarH = new HScrollBar(this.container, this);\n this.scrollBarV.on(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.on(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n this.scrollTop = 0;\n this.scrollLeft = 0;\n this.cursorPos = {\n row: 0,\n column: 0\n };\n this.$fontMetrics = new FontMetrics(this.container);\n this.$textLayer.$setFontMetrics(this.$fontMetrics);\n this.$textLayer.on(\"changeCharacterSize\", function (e) {\n _self.updateCharacterSize();\n _self.onResize(true, _self.gutterWidth, _self.$size.width, _self.$size.height);\n _self._signal(\"changeCharacterSize\", e);\n });\n this.$size = {\n width: 0,\n height: 0,\n scrollerHeight: 0,\n scrollerWidth: 0,\n $dirty: true\n };\n this.layerConfig = {\n width: 1,\n padding: 0,\n firstRow: 0,\n firstRowScreen: 0,\n lastRow: 0,\n lineHeight: 0,\n characterWidth: 0,\n minHeight: 1,\n maxHeight: 1,\n offset: 0,\n height: 1,\n gutterOffset: 1\n };\n this.scrollMargin = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n v: 0,\n h: 0\n };\n this.margin = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n v: 0,\n h: 0\n };\n this.$keepTextAreaAtCursor = !useragent.isIOS;\n this.$loop = new RenderLoop(this.$renderChanges.bind(this), this.container.ownerDocument.defaultView);\n this.$loop.schedule(this.CHANGE_FULL);\n this.updateCharacterSize();\n this.setPadding(4);\n this.$addResizeObserver();\n config.resetOptions(this);\n config._signal(\"renderer\", this);\n }\n VirtualRenderer.prototype.updateCharacterSize = function () {\n if (this.$textLayer.allowBoldFonts != this.$allowBoldFonts) {\n this.$allowBoldFonts = this.$textLayer.allowBoldFonts;\n this.setStyle(\"ace_nobold\", !this.$allowBoldFonts);\n }\n this.layerConfig.characterWidth =\n this.characterWidth = this.$textLayer.getCharacterWidth();\n this.layerConfig.lineHeight =\n this.lineHeight = this.$textLayer.getLineHeight();\n this.$updatePrintMargin();\n dom.setStyle(this.scroller.style, \"line-height\", this.lineHeight + \"px\");\n };\n VirtualRenderer.prototype.setSession = function (session) {\n if (this.session)\n this.session.doc.off(\"changeNewLineMode\", this.onChangeNewLineMode);\n this.session = session;\n if (session && this.scrollMargin.top && session.getScrollTop() <= 0)\n session.setScrollTop(-this.scrollMargin.top);\n this.$cursorLayer.setSession(session);\n this.$markerBack.setSession(session);\n this.$markerFront.setSession(session);\n this.$gutterLayer.setSession(session);\n this.$textLayer.setSession(session);\n if (!session)\n return;\n this.$loop.schedule(this.CHANGE_FULL);\n this.session.$setFontMetrics(this.$fontMetrics);\n this.scrollBarH.scrollLeft = this.scrollBarV.scrollTop = null;\n this.onChangeNewLineMode = this.onChangeNewLineMode.bind(this);\n this.onChangeNewLineMode();\n this.session.doc.on(\"changeNewLineMode\", this.onChangeNewLineMode);\n };\n VirtualRenderer.prototype.updateLines = function (firstRow, lastRow, force) {\n if (lastRow === undefined)\n lastRow = Infinity;\n if (!this.$changedLines) {\n this.$changedLines = {\n firstRow: firstRow,\n lastRow: lastRow\n };\n }\n else {\n if (this.$changedLines.firstRow > firstRow)\n this.$changedLines.firstRow = firstRow;\n if (this.$changedLines.lastRow < lastRow)\n this.$changedLines.lastRow = lastRow;\n }\n if (this.$changedLines.lastRow < this.layerConfig.firstRow) {\n if (force)\n this.$changedLines.lastRow = this.layerConfig.lastRow;\n else\n return;\n }\n if (this.$changedLines.firstRow > this.layerConfig.lastRow)\n return;\n this.$loop.schedule(this.CHANGE_LINES);\n };\n VirtualRenderer.prototype.onChangeNewLineMode = function () {\n this.$loop.schedule(this.CHANGE_TEXT);\n this.$textLayer.$updateEolChar();\n this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR);\n };\n VirtualRenderer.prototype.onChangeTabSize = function () {\n this.$loop.schedule(this.CHANGE_TEXT | this.CHANGE_MARKER);\n this.$textLayer.onChangeTabSize();\n };\n VirtualRenderer.prototype.updateText = function () {\n this.$loop.schedule(this.CHANGE_TEXT);\n };\n VirtualRenderer.prototype.updateFull = function (force) {\n if (force)\n this.$renderChanges(this.CHANGE_FULL, true);\n else\n this.$loop.schedule(this.CHANGE_FULL);\n };\n VirtualRenderer.prototype.updateFontSize = function () {\n this.$textLayer.checkForSizeChanges();\n };\n VirtualRenderer.prototype.$updateSizeAsync = function () {\n if (this.$loop.pending)\n this.$size.$dirty = true;\n else\n this.onResize();\n };\n VirtualRenderer.prototype.onResize = function (force, gutterWidth, width, height) {\n if (this.resizing > 2)\n return;\n else if (this.resizing > 0)\n this.resizing++;\n else\n this.resizing = force ? 1 : 0;\n var el = this.container;\n if (!height)\n height = el.clientHeight || el.scrollHeight;\n if (!width)\n width = el.clientWidth || el.scrollWidth;\n var changes = this.$updateCachedSize(force, gutterWidth, width, height);\n if (this.$resizeTimer)\n this.$resizeTimer.cancel();\n if (!this.$size.scrollerHeight || (!width && !height))\n return this.resizing = 0;\n if (force)\n this.$gutterLayer.$padding = null;\n if (force)\n this.$renderChanges(changes | this.$changes, true);\n else\n this.$loop.schedule(changes | this.$changes);\n if (this.resizing)\n this.resizing = 0;\n this.scrollBarH.scrollLeft = this.scrollBarV.scrollTop = null;\n if (this.$customScrollbar) {\n this.$updateCustomScrollbar(true);\n }\n };\n VirtualRenderer.prototype.$updateCachedSize = function (force, gutterWidth, width, height) {\n height -= (this.$extraHeight || 0);\n var changes = 0;\n var size = this.$size;\n var oldSize = {\n width: size.width,\n height: size.height,\n scrollerHeight: size.scrollerHeight,\n scrollerWidth: size.scrollerWidth\n };\n if (height && (force || size.height != height)) {\n size.height = height;\n changes |= this.CHANGE_SIZE;\n size.scrollerHeight = size.height;\n if (this.$horizScroll)\n size.scrollerHeight -= this.scrollBarH.getHeight();\n this.scrollBarV.setHeight(size.scrollerHeight);\n this.scrollBarV.element.style.bottom = this.scrollBarH.getHeight() + \"px\";\n changes = changes | this.CHANGE_SCROLL;\n }\n if (width && (force || size.width != width)) {\n changes |= this.CHANGE_SIZE;\n size.width = width;\n if (gutterWidth == null)\n gutterWidth = this.$showGutter ? this.$gutter.offsetWidth : 0;\n this.gutterWidth = gutterWidth;\n dom.setStyle(this.scrollBarH.element.style, \"left\", gutterWidth + \"px\");\n dom.setStyle(this.scroller.style, \"left\", gutterWidth + this.margin.left + \"px\");\n size.scrollerWidth = Math.max(0, width - gutterWidth - this.scrollBarV.getWidth() - this.margin.h);\n dom.setStyle(this.$gutter.style, \"left\", this.margin.left + \"px\");\n var right = this.scrollBarV.getWidth() + \"px\";\n dom.setStyle(this.scrollBarH.element.style, \"right\", right);\n dom.setStyle(this.scroller.style, \"right\", right);\n dom.setStyle(this.scroller.style, \"bottom\", this.scrollBarH.getHeight());\n this.scrollBarH.setWidth(size.scrollerWidth);\n if (this.session && this.session.getUseWrapMode() && this.adjustWrapLimit() || force) {\n changes |= this.CHANGE_FULL;\n }\n }\n size.$dirty = !width || !height;\n if (changes)\n this._signal(\"resize\", oldSize);\n return changes;\n };\n VirtualRenderer.prototype.onGutterResize = function (width) {\n var gutterWidth = this.$showGutter ? width : 0;\n if (gutterWidth != this.gutterWidth)\n this.$changes |= this.$updateCachedSize(true, gutterWidth, this.$size.width, this.$size.height);\n if (this.session.getUseWrapMode() && this.adjustWrapLimit()) {\n this.$loop.schedule(this.CHANGE_FULL);\n }\n else if (this.$size.$dirty) {\n this.$loop.schedule(this.CHANGE_FULL);\n }\n else {\n this.$computeLayerConfig();\n }\n };\n VirtualRenderer.prototype.adjustWrapLimit = function () {\n var availableWidth = this.$size.scrollerWidth - this.$padding * 2;\n var limit = Math.floor(availableWidth / this.characterWidth);\n return this.session.adjustWrapLimit(limit, this.$showPrintMargin && this.$printMarginColumn);\n };\n VirtualRenderer.prototype.setAnimatedScroll = function (shouldAnimate) {\n this.setOption(\"animatedScroll\", shouldAnimate);\n };\n VirtualRenderer.prototype.getAnimatedScroll = function () {\n return this.$animatedScroll;\n };\n VirtualRenderer.prototype.setShowInvisibles = function (showInvisibles) {\n this.setOption(\"showInvisibles\", showInvisibles);\n this.session.$bidiHandler.setShowInvisibles(showInvisibles);\n };\n VirtualRenderer.prototype.getShowInvisibles = function () {\n return this.getOption(\"showInvisibles\");\n };\n VirtualRenderer.prototype.getDisplayIndentGuides = function () {\n return this.getOption(\"displayIndentGuides\");\n };\n VirtualRenderer.prototype.setDisplayIndentGuides = function (display) {\n this.setOption(\"displayIndentGuides\", display);\n };\n VirtualRenderer.prototype.getHighlightIndentGuides = function () {\n return this.getOption(\"highlightIndentGuides\");\n };\n VirtualRenderer.prototype.setHighlightIndentGuides = function (highlight) {\n this.setOption(\"highlightIndentGuides\", highlight);\n };\n VirtualRenderer.prototype.setShowPrintMargin = function (showPrintMargin) {\n this.setOption(\"showPrintMargin\", showPrintMargin);\n };\n VirtualRenderer.prototype.getShowPrintMargin = function () {\n return this.getOption(\"showPrintMargin\");\n };\n VirtualRenderer.prototype.setPrintMarginColumn = function (showPrintMargin) {\n this.setOption(\"printMarginColumn\", showPrintMargin);\n };\n VirtualRenderer.prototype.getPrintMarginColumn = function () {\n return this.getOption(\"printMarginColumn\");\n };\n VirtualRenderer.prototype.getShowGutter = function () {\n return this.getOption(\"showGutter\");\n };\n VirtualRenderer.prototype.setShowGutter = function (show) {\n return this.setOption(\"showGutter\", show);\n };\n VirtualRenderer.prototype.getFadeFoldWidgets = function () {\n return this.getOption(\"fadeFoldWidgets\");\n };\n VirtualRenderer.prototype.setFadeFoldWidgets = function (show) {\n this.setOption(\"fadeFoldWidgets\", show);\n };\n VirtualRenderer.prototype.setHighlightGutterLine = function (shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n VirtualRenderer.prototype.getHighlightGutterLine = function () {\n return this.getOption(\"highlightGutterLine\");\n };\n VirtualRenderer.prototype.$updatePrintMargin = function () {\n if (!this.$showPrintMargin && !this.$printMarginEl)\n return;\n if (!this.$printMarginEl) {\n var containerEl = dom.createElement(\"div\");\n containerEl.className = \"ace_layer ace_print-margin-layer\";\n this.$printMarginEl = dom.createElement(\"div\");\n this.$printMarginEl.className = \"ace_print-margin\";\n containerEl.appendChild(this.$printMarginEl);\n this.content.insertBefore(containerEl, this.content.firstChild);\n }\n var style = this.$printMarginEl.style;\n style.left = Math.round(this.characterWidth * this.$printMarginColumn + this.$padding) + \"px\";\n style.visibility = this.$showPrintMargin ? \"visible\" : \"hidden\";\n if (this.session && this.session.$wrap == -1)\n this.adjustWrapLimit();\n };\n VirtualRenderer.prototype.getContainerElement = function () {\n return this.container;\n };\n VirtualRenderer.prototype.getMouseEventTarget = function () {\n return this.scroller;\n };\n VirtualRenderer.prototype.getTextAreaContainer = function () {\n return this.container;\n };\n VirtualRenderer.prototype.$moveTextAreaToCursor = function () {\n if (this.$isMousePressed)\n return;\n var style = this.textarea.style;\n var composition = this.$composition;\n if (!this.$keepTextAreaAtCursor && !composition) {\n dom.translate(this.textarea, -100, 0);\n return;\n }\n var pixelPos = this.$cursorLayer.$pixelPos;\n if (!pixelPos)\n return;\n if (composition && composition.markerRange)\n pixelPos = this.$cursorLayer.getPixelPosition(composition.markerRange.start, true);\n var config = this.layerConfig;\n var posTop = pixelPos.top;\n var posLeft = pixelPos.left;\n posTop -= config.offset;\n var h = composition && composition.useTextareaForIME || useragent.isMobile ? this.lineHeight : 1;\n if (posTop < 0 || posTop > config.height - h) {\n dom.translate(this.textarea, 0, 0);\n return;\n }\n var w = 1;\n var maxTop = this.$size.height - h;\n if (!composition) {\n posTop += this.lineHeight;\n }\n else {\n if (composition.useTextareaForIME) {\n var val = this.textarea.value;\n w = this.characterWidth * (this.session.$getStringScreenWidth(val)[0]);\n }\n else {\n posTop += this.lineHeight + 2;\n }\n }\n posLeft -= this.scrollLeft;\n if (posLeft > this.$size.scrollerWidth - w)\n posLeft = this.$size.scrollerWidth - w;\n posLeft += this.gutterWidth + this.margin.left;\n dom.setStyle(style, \"height\", h + \"px\");\n dom.setStyle(style, \"width\", w + \"px\");\n dom.translate(this.textarea, Math.min(posLeft, this.$size.scrollerWidth - w), Math.min(posTop, maxTop));\n };\n VirtualRenderer.prototype.getFirstVisibleRow = function () {\n return this.layerConfig.firstRow;\n };\n VirtualRenderer.prototype.getFirstFullyVisibleRow = function () {\n return this.layerConfig.firstRow + (this.layerConfig.offset === 0 ? 0 : 1);\n };\n VirtualRenderer.prototype.getLastFullyVisibleRow = function () {\n var config = this.layerConfig;\n var lastRow = config.lastRow;\n var top = this.session.documentToScreenRow(lastRow, 0) * config.lineHeight;\n if (top - this.session.getScrollTop() > config.height - config.lineHeight)\n return lastRow - 1;\n return lastRow;\n };\n VirtualRenderer.prototype.getLastVisibleRow = function () {\n return this.layerConfig.lastRow;\n };\n VirtualRenderer.prototype.setPadding = function (padding) {\n this.$padding = padding;\n this.$textLayer.setPadding(padding);\n this.$cursorLayer.setPadding(padding);\n this.$markerFront.setPadding(padding);\n this.$markerBack.setPadding(padding);\n this.$loop.schedule(this.CHANGE_FULL);\n this.$updatePrintMargin();\n };\n VirtualRenderer.prototype.setScrollMargin = function (top, bottom, left, right) {\n var sm = this.scrollMargin;\n sm.top = top | 0;\n sm.bottom = bottom | 0;\n sm.right = right | 0;\n sm.left = left | 0;\n sm.v = sm.top + sm.bottom;\n sm.h = sm.left + sm.right;\n if (sm.top && this.scrollTop <= 0 && this.session)\n this.session.setScrollTop(-sm.top);\n this.updateFull();\n };\n VirtualRenderer.prototype.setMargin = function (top, bottom, left, right) {\n var sm = this.margin;\n sm.top = top | 0;\n sm.bottom = bottom | 0;\n sm.right = right | 0;\n sm.left = left | 0;\n sm.v = sm.top + sm.bottom;\n sm.h = sm.left + sm.right;\n this.$updateCachedSize(true, this.gutterWidth, this.$size.width, this.$size.height);\n this.updateFull();\n };\n VirtualRenderer.prototype.getHScrollBarAlwaysVisible = function () {\n return this.$hScrollBarAlwaysVisible;\n };\n VirtualRenderer.prototype.setHScrollBarAlwaysVisible = function (alwaysVisible) {\n this.setOption(\"hScrollBarAlwaysVisible\", alwaysVisible);\n };\n VirtualRenderer.prototype.getVScrollBarAlwaysVisible = function () {\n return this.$vScrollBarAlwaysVisible;\n };\n VirtualRenderer.prototype.setVScrollBarAlwaysVisible = function (alwaysVisible) {\n this.setOption(\"vScrollBarAlwaysVisible\", alwaysVisible);\n };\n VirtualRenderer.prototype.$updateScrollBarV = function () {\n var scrollHeight = this.layerConfig.maxHeight;\n var scrollerHeight = this.$size.scrollerHeight;\n if (!this.$maxLines && this.$scrollPastEnd) {\n scrollHeight -= (scrollerHeight - this.lineHeight) * this.$scrollPastEnd;\n if (this.scrollTop > scrollHeight - scrollerHeight) {\n scrollHeight = this.scrollTop + scrollerHeight;\n this.scrollBarV.scrollTop = null;\n }\n }\n this.scrollBarV.setScrollHeight(scrollHeight + this.scrollMargin.v);\n this.scrollBarV.setScrollTop(this.scrollTop + this.scrollMargin.top);\n };\n VirtualRenderer.prototype.$updateScrollBarH = function () {\n this.scrollBarH.setScrollWidth(this.layerConfig.width + 2 * this.$padding + this.scrollMargin.h);\n this.scrollBarH.setScrollLeft(this.scrollLeft + this.scrollMargin.left);\n };\n VirtualRenderer.prototype.freeze = function () {\n this.$frozen = true;\n };\n VirtualRenderer.prototype.unfreeze = function () {\n this.$frozen = false;\n };\n VirtualRenderer.prototype.$renderChanges = function (changes, force) {\n if (this.$changes) {\n changes |= this.$changes;\n this.$changes = 0;\n }\n if ((!this.session || !this.container.offsetWidth || this.$frozen) || (!changes && !force)) {\n this.$changes |= changes;\n return;\n }\n if (this.$size.$dirty) {\n this.$changes |= changes;\n return this.onResize(true);\n }\n if (!this.lineHeight) {\n this.$textLayer.checkForSizeChanges();\n }\n this._signal(\"beforeRender\", changes);\n if (this.session && this.session.$bidiHandler)\n this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);\n var config = this.layerConfig;\n if (changes & this.CHANGE_FULL ||\n changes & this.CHANGE_SIZE ||\n changes & this.CHANGE_TEXT ||\n changes & this.CHANGE_LINES ||\n changes & this.CHANGE_SCROLL ||\n changes & this.CHANGE_H_SCROLL) {\n changes |= this.$computeLayerConfig() | this.$loop.clear();\n if (config.firstRow != this.layerConfig.firstRow && config.firstRowScreen == this.layerConfig.firstRowScreen) {\n var st = this.scrollTop + (config.firstRow - Math.max(this.layerConfig.firstRow, 0)) * this.lineHeight;\n if (st > 0) {\n this.scrollTop = st;\n changes = changes | this.CHANGE_SCROLL;\n changes |= this.$computeLayerConfig() | this.$loop.clear();\n }\n }\n config = this.layerConfig;\n this.$updateScrollBarV();\n if (changes & this.CHANGE_H_SCROLL)\n this.$updateScrollBarH();\n dom.translate(this.content, -this.scrollLeft, -config.offset);\n var width = config.width + 2 * this.$padding + \"px\";\n var height = config.minHeight + \"px\";\n dom.setStyle(this.content.style, \"width\", width);\n dom.setStyle(this.content.style, \"height\", height);\n }\n if (changes & this.CHANGE_H_SCROLL) {\n dom.translate(this.content, -this.scrollLeft, -config.offset);\n this.scroller.className = this.scrollLeft <= 0 ? \"ace_scroller \" : \"ace_scroller ace_scroll-left \";\n if (this.enableKeyboardAccessibility)\n this.scroller.className += this.keyboardFocusClassName;\n }\n if (changes & this.CHANGE_FULL) {\n this.$changedLines = null;\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this._signal(\"afterRender\", changes);\n return;\n }\n if (changes & this.CHANGE_SCROLL) {\n this.$changedLines = null;\n if (changes & this.CHANGE_TEXT || changes & this.CHANGE_LINES)\n this.$textLayer.update(config);\n else\n this.$textLayer.scrollLines(config);\n if (this.$showGutter) {\n if (changes & this.CHANGE_GUTTER || changes & this.CHANGE_LINES)\n this.$gutterLayer.update(config);\n else\n this.$gutterLayer.scrollLines(config);\n }\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this._signal(\"afterRender\", changes);\n return;\n }\n if (changes & this.CHANGE_TEXT) {\n this.$changedLines = null;\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n else if (changes & this.CHANGE_LINES) {\n if (this.$updateLines() || (changes & this.CHANGE_GUTTER) && this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n else if (changes & this.CHANGE_TEXT || changes & this.CHANGE_GUTTER) {\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n else if (changes & this.CHANGE_CURSOR) {\n if (this.$highlightGutterLine)\n this.$gutterLayer.updateLineHighlight(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n if (changes & this.CHANGE_CURSOR) {\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n }\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_FRONT)) {\n this.$markerFront.update(config);\n }\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_BACK)) {\n this.$markerBack.update(config);\n }\n this._signal(\"afterRender\", changes);\n };\n VirtualRenderer.prototype.$autosize = function () {\n var height = this.session.getScreenLength() * this.lineHeight;\n var maxHeight = this.$maxLines * this.lineHeight;\n var desiredHeight = Math.min(maxHeight, Math.max((this.$minLines || 1) * this.lineHeight, height)) + this.scrollMargin.v + (this.$extraHeight || 0);\n if (this.$horizScroll)\n desiredHeight += this.scrollBarH.getHeight();\n if (this.$maxPixelHeight && desiredHeight > this.$maxPixelHeight)\n desiredHeight = this.$maxPixelHeight;\n var hideScrollbars = desiredHeight <= 2 * this.lineHeight;\n var vScroll = !hideScrollbars && height > maxHeight;\n if (desiredHeight != this.desiredHeight ||\n this.$size.height != this.desiredHeight || vScroll != this.$vScroll) {\n if (vScroll != this.$vScroll) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n var w = this.container.clientWidth;\n this.container.style.height = desiredHeight + \"px\";\n this.$updateCachedSize(true, this.$gutterWidth, w, desiredHeight);\n this.desiredHeight = desiredHeight;\n this._signal(\"autosize\");\n }\n };\n VirtualRenderer.prototype.$computeLayerConfig = function () {\n var session = this.session;\n var size = this.$size;\n var hideScrollbars = size.height <= 2 * this.lineHeight;\n var screenLines = this.session.getScreenLength();\n var maxHeight = screenLines * this.lineHeight;\n var longestLine = this.$getLongestLine();\n var horizScroll = !hideScrollbars && (this.$hScrollBarAlwaysVisible ||\n size.scrollerWidth - longestLine - 2 * this.$padding < 0);\n var hScrollChanged = this.$horizScroll !== horizScroll;\n if (hScrollChanged) {\n this.$horizScroll = horizScroll;\n this.scrollBarH.setVisible(horizScroll);\n }\n var vScrollBefore = this.$vScroll; // autosize can change vscroll value in which case we need to update longestLine\n if (this.$maxLines && this.lineHeight > 1)\n this.$autosize();\n var minHeight = size.scrollerHeight + this.lineHeight;\n var scrollPastEnd = !this.$maxLines && this.$scrollPastEnd\n ? (size.scrollerHeight - this.lineHeight) * this.$scrollPastEnd\n : 0;\n maxHeight += scrollPastEnd;\n var sm = this.scrollMargin;\n this.session.setScrollTop(Math.max(-sm.top, Math.min(this.scrollTop, maxHeight - size.scrollerHeight + sm.bottom)));\n this.session.setScrollLeft(Math.max(-sm.left, Math.min(this.scrollLeft, longestLine + 2 * this.$padding - size.scrollerWidth + sm.right)));\n var vScroll = !hideScrollbars && (this.$vScrollBarAlwaysVisible ||\n size.scrollerHeight - maxHeight + scrollPastEnd < 0 || this.scrollTop > sm.top);\n var vScrollChanged = vScrollBefore !== vScroll;\n if (vScrollChanged) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n var offset = this.scrollTop % this.lineHeight;\n var lineCount = Math.ceil(minHeight / this.lineHeight) - 1;\n var firstRow = Math.max(0, Math.round((this.scrollTop - offset) / this.lineHeight));\n var lastRow = firstRow + lineCount;\n var firstRowScreen, firstRowHeight;\n var lineHeight = this.lineHeight;\n firstRow = session.screenToDocumentRow(firstRow, 0);\n var foldLine = session.getFoldLine(firstRow);\n if (foldLine) {\n firstRow = foldLine.start.row;\n }\n firstRowScreen = session.documentToScreenRow(firstRow, 0);\n firstRowHeight = session.getRowLength(firstRow) * lineHeight;\n lastRow = Math.min(session.screenToDocumentRow(lastRow, 0), session.getLength() - 1);\n minHeight = size.scrollerHeight + session.getRowLength(lastRow) * lineHeight +\n firstRowHeight;\n offset = this.scrollTop - firstRowScreen * lineHeight;\n var changes = 0;\n if (this.layerConfig.width != longestLine || hScrollChanged)\n changes = this.CHANGE_H_SCROLL;\n if (hScrollChanged || vScrollChanged) {\n changes |= this.$updateCachedSize(true, this.gutterWidth, size.width, size.height);\n this._signal(\"scrollbarVisibilityChanged\");\n if (vScrollChanged)\n longestLine = this.$getLongestLine();\n }\n this.layerConfig = {\n width: longestLine,\n padding: this.$padding,\n firstRow: firstRow,\n firstRowScreen: firstRowScreen,\n lastRow: lastRow,\n lineHeight: lineHeight,\n characterWidth: this.characterWidth,\n minHeight: minHeight,\n maxHeight: maxHeight,\n offset: offset,\n gutterOffset: lineHeight ? Math.max(0, Math.ceil((offset + size.height - size.scrollerHeight) / lineHeight)) : 0,\n height: this.$size.scrollerHeight\n };\n if (this.session.$bidiHandler)\n this.session.$bidiHandler.setContentWidth(longestLine - this.$padding);\n return changes;\n };\n VirtualRenderer.prototype.$updateLines = function () {\n if (!this.$changedLines)\n return;\n var firstRow = this.$changedLines.firstRow;\n var lastRow = this.$changedLines.lastRow;\n this.$changedLines = null;\n var layerConfig = this.layerConfig;\n if (firstRow > layerConfig.lastRow + 1) {\n return;\n }\n if (lastRow < layerConfig.firstRow) {\n return;\n }\n if (lastRow === Infinity) {\n if (this.$showGutter)\n this.$gutterLayer.update(layerConfig);\n this.$textLayer.update(layerConfig);\n return;\n }\n this.$textLayer.updateLines(layerConfig, firstRow, lastRow);\n return true;\n };\n VirtualRenderer.prototype.$getLongestLine = function () {\n var charCount = this.session.getScreenWidth();\n if (this.showInvisibles && !this.session.$useWrapMode)\n charCount += 1;\n if (this.$textLayer && charCount > this.$textLayer.MAX_LINE_LENGTH)\n charCount = this.$textLayer.MAX_LINE_LENGTH + 30;\n return Math.max(this.$size.scrollerWidth - 2 * this.$padding, Math.round(charCount * this.characterWidth));\n };\n VirtualRenderer.prototype.updateFrontMarkers = function () {\n this.$markerFront.setMarkers(this.session.getMarkers(true));\n this.$loop.schedule(this.CHANGE_MARKER_FRONT);\n };\n VirtualRenderer.prototype.updateBackMarkers = function () {\n this.$markerBack.setMarkers(this.session.getMarkers());\n this.$loop.schedule(this.CHANGE_MARKER_BACK);\n };\n VirtualRenderer.prototype.addGutterDecoration = function (row, className) {\n this.$gutterLayer.addGutterDecoration(row, className);\n };\n VirtualRenderer.prototype.removeGutterDecoration = function (row, className) {\n this.$gutterLayer.removeGutterDecoration(row, className);\n };\n VirtualRenderer.prototype.updateBreakpoints = function (rows) {\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n VirtualRenderer.prototype.setAnnotations = function (annotations) {\n this.$gutterLayer.setAnnotations(annotations);\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n VirtualRenderer.prototype.updateCursor = function () {\n this.$loop.schedule(this.CHANGE_CURSOR);\n };\n VirtualRenderer.prototype.hideCursor = function () {\n this.$cursorLayer.hideCursor();\n };\n VirtualRenderer.prototype.showCursor = function () {\n this.$cursorLayer.showCursor();\n };\n VirtualRenderer.prototype.scrollSelectionIntoView = function (anchor, lead, offset) {\n this.scrollCursorIntoView(anchor, offset);\n this.scrollCursorIntoView(lead, offset);\n };\n VirtualRenderer.prototype.scrollCursorIntoView = function (cursor, offset, $viewMargin) {\n if (this.$size.scrollerHeight === 0)\n return;\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n var newLeft = pos.left;\n var newTop = pos.top;\n var topMargin = $viewMargin && $viewMargin.top || 0;\n var bottomMargin = $viewMargin && $viewMargin.bottom || 0;\n if (this.$scrollAnimation) {\n this.$stopAnimation = true;\n }\n var currentTop = this.$scrollAnimation ? this.session.getScrollTop() : this.scrollTop;\n if (currentTop + topMargin > newTop) {\n if (offset && currentTop + topMargin > newTop + this.lineHeight)\n newTop -= offset * this.$size.scrollerHeight;\n if (newTop === 0)\n newTop = -this.scrollMargin.top;\n this.session.setScrollTop(newTop);\n }\n else if (currentTop + this.$size.scrollerHeight - bottomMargin < newTop + this.lineHeight) {\n if (offset && currentTop + this.$size.scrollerHeight - bottomMargin < newTop - this.lineHeight)\n newTop += offset * this.$size.scrollerHeight;\n this.session.setScrollTop(newTop + this.lineHeight + bottomMargin - this.$size.scrollerHeight);\n }\n var currentLeft = this.scrollLeft;\n var twoCharsWidth = 2 * this.layerConfig.characterWidth;\n if (newLeft - twoCharsWidth < currentLeft) {\n newLeft -= twoCharsWidth;\n if (newLeft < this.$padding + twoCharsWidth) {\n newLeft = -this.scrollMargin.left;\n }\n this.session.setScrollLeft(newLeft);\n }\n else {\n newLeft += twoCharsWidth;\n if (currentLeft + this.$size.scrollerWidth < newLeft + this.characterWidth) {\n this.session.setScrollLeft(Math.round(newLeft + this.characterWidth - this.$size.scrollerWidth));\n }\n else if (currentLeft <= this.$padding && newLeft - currentLeft < this.characterWidth) {\n this.session.setScrollLeft(0);\n }\n }\n };\n VirtualRenderer.prototype.getScrollTop = function () {\n return this.session.getScrollTop();\n };\n VirtualRenderer.prototype.getScrollLeft = function () {\n return this.session.getScrollLeft();\n };\n VirtualRenderer.prototype.getScrollTopRow = function () {\n return this.scrollTop / this.lineHeight;\n };\n VirtualRenderer.prototype.getScrollBottomRow = function () {\n return Math.max(0, Math.floor((this.scrollTop + this.$size.scrollerHeight) / this.lineHeight) - 1);\n };\n VirtualRenderer.prototype.scrollToRow = function (row) {\n this.session.setScrollTop(row * this.lineHeight);\n };\n VirtualRenderer.prototype.alignCursor = function (cursor, alignment) {\n if (typeof cursor == \"number\")\n cursor = { row: cursor, column: 0 };\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n var h = this.$size.scrollerHeight - this.lineHeight;\n var offset = pos.top - h * (alignment || 0);\n this.session.setScrollTop(offset);\n return offset;\n };\n VirtualRenderer.prototype.$calcSteps = function (fromValue, toValue) {\n var i = 0;\n var l = this.STEPS;\n var steps = [];\n var func = function (t, x_min, dx) {\n return dx * (Math.pow(t - 1, 3) + 1) + x_min;\n };\n for (i = 0; i < l; ++i)\n steps.push(func(i / this.STEPS, fromValue, toValue - fromValue));\n return steps;\n };\n VirtualRenderer.prototype.scrollToLine = function (line, center, animate, callback) {\n var pos = this.$cursorLayer.getPixelPosition({ row: line, column: 0 });\n var offset = pos.top;\n if (center)\n offset -= this.$size.scrollerHeight / 2;\n var initialScroll = this.scrollTop;\n this.session.setScrollTop(offset);\n if (animate !== false)\n this.animateScrolling(initialScroll, callback);\n };\n VirtualRenderer.prototype.animateScrolling = function (fromValue, callback) {\n var toValue = this.scrollTop;\n if (!this.$animatedScroll)\n return;\n var _self = this;\n if (fromValue == toValue)\n return;\n if (this.$scrollAnimation) {\n var oldSteps = this.$scrollAnimation.steps;\n if (oldSteps.length) {\n fromValue = oldSteps[0];\n if (fromValue == toValue)\n return;\n }\n }\n var steps = _self.$calcSteps(fromValue, toValue);\n this.$scrollAnimation = { from: fromValue, to: toValue, steps: steps };\n clearInterval(this.$timer);\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n function endAnimation() {\n _self.$timer = clearInterval(_self.$timer);\n _self.$scrollAnimation = null;\n _self.$stopAnimation = false;\n callback && callback();\n }\n this.$timer = setInterval(function () {\n if (_self.$stopAnimation) {\n endAnimation();\n return;\n }\n if (!_self.session)\n return clearInterval(_self.$timer);\n if (steps.length) {\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n }\n else if (toValue != null) {\n _self.session.$scrollTop = -1;\n _self.session.setScrollTop(toValue);\n toValue = null;\n }\n else {\n endAnimation();\n }\n }, 10);\n };\n VirtualRenderer.prototype.scrollToY = function (scrollTop) {\n if (this.scrollTop !== scrollTop) {\n this.$loop.schedule(this.CHANGE_SCROLL);\n this.scrollTop = scrollTop;\n }\n };\n VirtualRenderer.prototype.scrollToX = function (scrollLeft) {\n if (this.scrollLeft !== scrollLeft)\n this.scrollLeft = scrollLeft;\n this.$loop.schedule(this.CHANGE_H_SCROLL);\n };\n VirtualRenderer.prototype.scrollTo = function (x, y) {\n this.session.setScrollTop(y);\n this.session.setScrollLeft(x);\n };\n VirtualRenderer.prototype.scrollBy = function (deltaX, deltaY) {\n deltaY && this.session.setScrollTop(this.session.getScrollTop() + deltaY);\n deltaX && this.session.setScrollLeft(this.session.getScrollLeft() + deltaX);\n };\n VirtualRenderer.prototype.isScrollableBy = function (deltaX, deltaY) {\n if (deltaY < 0 && this.session.getScrollTop() >= 1 - this.scrollMargin.top)\n return true;\n if (deltaY > 0 && this.session.getScrollTop() + this.$size.scrollerHeight\n - this.layerConfig.maxHeight < -1 + this.scrollMargin.bottom)\n return true;\n if (deltaX < 0 && this.session.getScrollLeft() >= 1 - this.scrollMargin.left)\n return true;\n if (deltaX > 0 && this.session.getScrollLeft() + this.$size.scrollerWidth\n - this.layerConfig.width < -1 + this.scrollMargin.right)\n return true;\n };\n VirtualRenderer.prototype.pixelToScreenCoordinates = function (x, y) {\n var canvasPos;\n if (this.$hasCssTransforms) {\n canvasPos = { top: 0, left: 0 };\n var p = this.$fontMetrics.transformCoordinates([x, y]);\n x = p[1] - this.gutterWidth - this.margin.left;\n y = p[0];\n }\n else {\n canvasPos = this.scroller.getBoundingClientRect();\n }\n var offsetX = x + this.scrollLeft - canvasPos.left - this.$padding;\n var offset = offsetX / this.characterWidth;\n var row = Math.floor((y + this.scrollTop - canvasPos.top) / this.lineHeight);\n var col = this.$blockCursor ? Math.floor(offset) : Math.round(offset);\n return { row: row, column: col, side: offset - col > 0 ? 1 : -1, offsetX: offsetX };\n };\n VirtualRenderer.prototype.screenToTextCoordinates = function (x, y) {\n var canvasPos;\n if (this.$hasCssTransforms) {\n canvasPos = { top: 0, left: 0 };\n var p = this.$fontMetrics.transformCoordinates([x, y]);\n x = p[1] - this.gutterWidth - this.margin.left;\n y = p[0];\n }\n else {\n canvasPos = this.scroller.getBoundingClientRect();\n }\n var offsetX = x + this.scrollLeft - canvasPos.left - this.$padding;\n var offset = offsetX / this.characterWidth;\n var col = this.$blockCursor ? Math.floor(offset) : Math.round(offset);\n var row = Math.floor((y + this.scrollTop - canvasPos.top) / this.lineHeight);\n return this.session.screenToDocumentPosition(row, Math.max(col, 0), offsetX);\n };\n VirtualRenderer.prototype.textToScreenCoordinates = function (row, column) {\n var canvasPos = this.scroller.getBoundingClientRect();\n var pos = this.session.documentToScreenPosition(row, column);\n var x = this.$padding + (this.session.$bidiHandler.isBidiRow(pos.row, row)\n ? this.session.$bidiHandler.getPosLeft(pos.column)\n : Math.round(pos.column * this.characterWidth));\n var y = pos.row * this.lineHeight;\n return {\n pageX: canvasPos.left + x - this.scrollLeft,\n pageY: canvasPos.top + y - this.scrollTop\n };\n };\n VirtualRenderer.prototype.visualizeFocus = function () {\n dom.addCssClass(this.container, \"ace_focus\");\n };\n VirtualRenderer.prototype.visualizeBlur = function () {\n dom.removeCssClass(this.container, \"ace_focus\");\n };\n VirtualRenderer.prototype.showComposition = function (composition) {\n this.$composition = composition;\n if (!composition.cssText) {\n composition.cssText = this.textarea.style.cssText;\n }\n if (composition.useTextareaForIME == undefined)\n composition.useTextareaForIME = this.$useTextareaForIME;\n if (this.$useTextareaForIME) {\n dom.addCssClass(this.textarea, \"ace_composition\");\n this.textarea.style.cssText = \"\";\n this.$moveTextAreaToCursor();\n this.$cursorLayer.element.style.display = \"none\";\n }\n else {\n composition.markerId = this.session.addMarker(composition.markerRange, \"ace_composition_marker\", \"text\");\n }\n };\n VirtualRenderer.prototype.setCompositionText = function (text) {\n var cursor = this.session.selection.cursor;\n this.addToken(text, \"composition_placeholder\", cursor.row, cursor.column);\n this.$moveTextAreaToCursor();\n };\n VirtualRenderer.prototype.hideComposition = function () {\n if (!this.$composition)\n return;\n if (this.$composition.markerId)\n this.session.removeMarker(this.$composition.markerId);\n dom.removeCssClass(this.textarea, \"ace_composition\");\n this.textarea.style.cssText = this.$composition.cssText;\n var cursor = this.session.selection.cursor;\n this.removeExtraToken(cursor.row, cursor.column);\n this.$composition = null;\n this.$cursorLayer.element.style.display = \"\";\n };\n VirtualRenderer.prototype.setGhostText = function (text, position) {\n var cursor = this.session.selection.cursor;\n var insertPosition = position || { row: cursor.row, column: cursor.column };\n this.removeGhostText();\n var textLines = text.split(\"\\n\");\n this.addToken(textLines[0], \"ghost_text\", insertPosition.row, insertPosition.column);\n this.$ghostText = {\n text: text,\n position: {\n row: insertPosition.row,\n column: insertPosition.column\n }\n };\n if (textLines.length > 1) {\n this.$ghostTextWidget = {\n text: textLines.slice(1).join(\"\\n\"),\n row: insertPosition.row,\n column: insertPosition.column,\n className: \"ace_ghost_text\"\n };\n this.session.widgetManager.addLineWidget(this.$ghostTextWidget);\n var pixelPosition = this.$cursorLayer.getPixelPosition(insertPosition, true);\n var el = this.container;\n var height = el.getBoundingClientRect().height;\n var ghostTextHeight = textLines.length * this.lineHeight;\n var fitsY = ghostTextHeight < height - pixelPosition.top;\n if (fitsY)\n return;\n if (ghostTextHeight < height) {\n this.scrollBy(0, (textLines.length - 1) * this.lineHeight);\n }\n else {\n this.scrollBy(0, pixelPosition.top);\n }\n }\n };\n VirtualRenderer.prototype.removeGhostText = function () {\n if (!this.$ghostText)\n return;\n var position = this.$ghostText.position;\n this.removeExtraToken(position.row, position.column);\n if (this.$ghostTextWidget) {\n this.session.widgetManager.removeLineWidget(this.$ghostTextWidget);\n this.$ghostTextWidget = null;\n }\n this.$ghostText = null;\n };\n VirtualRenderer.prototype.addToken = function (text, type, row, column) {\n var session = this.session;\n session.bgTokenizer.lines[row] = null;\n var newToken = { type: type, value: text };\n var tokens = session.getTokens(row);\n if (column == null || !tokens.length) {\n tokens.push(newToken);\n }\n else {\n var l = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n l += token.value.length;\n if (column <= l) {\n var diff = token.value.length - (l - column);\n var before = token.value.slice(0, diff);\n var after = token.value.slice(diff);\n tokens.splice(i, 1, { type: token.type, value: before }, newToken, { type: token.type, value: after });\n break;\n }\n }\n }\n this.updateLines(row, row);\n };\n VirtualRenderer.prototype.removeExtraToken = function (row, column) {\n this.session.bgTokenizer.lines[row] = null;\n this.updateLines(row, row);\n };\n VirtualRenderer.prototype.setTheme = function (theme, cb) {\n var _self = this;\n this.$themeId = theme;\n _self._dispatchEvent('themeChange', { theme: theme });\n if (!theme || typeof theme == \"string\") {\n var moduleName = theme || this.$options.theme.initialValue;\n config.loadModule([\"theme\", moduleName], afterLoad);\n }\n else {\n afterLoad(theme);\n }\n function afterLoad(module) {\n if (_self.$themeId != theme)\n return cb && cb();\n if (!module || !module.cssClass)\n throw new Error(\"couldn't load module \" + theme + \" or it didn't call define\");\n if (module.$id)\n _self.$themeId = module.$id;\n dom.importCssString(module.cssText, module.cssClass, _self.container);\n if (_self.theme)\n dom.removeCssClass(_self.container, _self.theme.cssClass);\n var padding = \"padding\" in module ? module.padding\n : \"padding\" in (_self.theme || {}) ? 4 : _self.$padding;\n if (_self.$padding && padding != _self.$padding)\n _self.setPadding(padding);\n _self.$theme = module.cssClass;\n _self.theme = module;\n dom.addCssClass(_self.container, module.cssClass);\n dom.setCssClass(_self.container, \"ace_dark\", module.isDark);\n if (_self.$size) {\n _self.$size.width = 0;\n _self.$updateSizeAsync();\n }\n _self._dispatchEvent('themeLoaded', { theme: module });\n cb && cb();\n }\n };\n VirtualRenderer.prototype.getTheme = function () {\n return this.$themeId;\n };\n VirtualRenderer.prototype.setStyle = function (style, include) {\n dom.setCssClass(this.container, style, include !== false);\n };\n VirtualRenderer.prototype.unsetStyle = function (style) {\n dom.removeCssClass(this.container, style);\n };\n VirtualRenderer.prototype.setCursorStyle = function (style) {\n dom.setStyle(this.scroller.style, \"cursor\", style);\n };\n VirtualRenderer.prototype.setMouseCursor = function (cursorStyle) {\n dom.setStyle(this.scroller.style, \"cursor\", cursorStyle);\n };\n VirtualRenderer.prototype.attachToShadowRoot = function () {\n dom.importCssString(editorCss, \"ace_editor.css\", this.container);\n };\n VirtualRenderer.prototype.destroy = function () {\n this.freeze();\n this.$fontMetrics.destroy();\n this.$cursorLayer.destroy();\n this.removeAllListeners();\n this.container.textContent = \"\";\n this.setOption(\"useResizeObserver\", false);\n };\n VirtualRenderer.prototype.$updateCustomScrollbar = function (val) {\n var _self = this;\n this.$horizScroll = this.$vScroll = null;\n this.scrollBarV.element.remove();\n this.scrollBarH.element.remove();\n if (this.$scrollDecorator) {\n delete this.$scrollDecorator;\n }\n if (val === true) {\n this.scrollBarV = new VScrollBarCustom(this.container, this);\n this.scrollBarH = new HScrollBarCustom(this.container, this);\n this.scrollBarV.setHeight(this.$size.scrollerHeight);\n this.scrollBarH.setWidth(this.$size.scrollerWidth);\n this.scrollBarV.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n this.$scrollDecorator = new Decorator(this.scrollBarV, this);\n this.$scrollDecorator.$updateDecorators();\n }\n else {\n this.scrollBarV = new VScrollBar(this.container, this);\n this.scrollBarH = new HScrollBar(this.container, this);\n this.scrollBarV.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n }\n };\n VirtualRenderer.prototype.$addResizeObserver = function () {\n if (!window.ResizeObserver || this.$resizeObserver)\n return;\n var self = this;\n this.$resizeTimer = lang.delayedCall(function () {\n if (!self.destroyed)\n self.onResize();\n }, 50);\n this.$resizeObserver = new window.ResizeObserver(function (e) {\n var w = e[0].contentRect.width;\n var h = e[0].contentRect.height;\n if (Math.abs(self.$size.width - w) > 1\n || Math.abs(self.$size.height - h) > 1) {\n self.$resizeTimer.delay();\n }\n else {\n self.$resizeTimer.cancel();\n }\n });\n this.$resizeObserver.observe(this.container);\n };\n return VirtualRenderer;\n}());\nVirtualRenderer.prototype.CHANGE_CURSOR = 1;\nVirtualRenderer.prototype.CHANGE_MARKER = 2;\nVirtualRenderer.prototype.CHANGE_GUTTER = 4;\nVirtualRenderer.prototype.CHANGE_SCROLL = 8;\nVirtualRenderer.prototype.CHANGE_LINES = 16;\nVirtualRenderer.prototype.CHANGE_TEXT = 32;\nVirtualRenderer.prototype.CHANGE_SIZE = 64;\nVirtualRenderer.prototype.CHANGE_MARKER_BACK = 128;\nVirtualRenderer.prototype.CHANGE_MARKER_FRONT = 256;\nVirtualRenderer.prototype.CHANGE_FULL = 512;\nVirtualRenderer.prototype.CHANGE_H_SCROLL = 1024;\nVirtualRenderer.prototype.$changes = 0;\nVirtualRenderer.prototype.$padding = null;\nVirtualRenderer.prototype.$frozen = false;\nVirtualRenderer.prototype.STEPS = 8;\noop.implement(VirtualRenderer.prototype, EventEmitter);\nconfig.defineOptions(VirtualRenderer.prototype, \"renderer\", {\n useResizeObserver: {\n set: function (value) {\n if (!value && this.$resizeObserver) {\n this.$resizeObserver.disconnect();\n this.$resizeTimer.cancel();\n this.$resizeTimer = this.$resizeObserver = null;\n }\n else if (value && !this.$resizeObserver) {\n this.$addResizeObserver();\n }\n }\n },\n animatedScroll: { initialValue: false },\n showInvisibles: {\n set: function (value) {\n if (this.$textLayer.setShowInvisibles(value))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: false\n },\n showPrintMargin: {\n set: function () { this.$updatePrintMargin(); },\n initialValue: true\n },\n printMarginColumn: {\n set: function () { this.$updatePrintMargin(); },\n initialValue: 80\n },\n printMargin: {\n set: function (val) {\n if (typeof val == \"number\")\n this.$printMarginColumn = val;\n this.$showPrintMargin = !!val;\n this.$updatePrintMargin();\n },\n get: function () {\n return this.$showPrintMargin && this.$printMarginColumn;\n }\n },\n showGutter: {\n set: function (show) {\n this.$gutter.style.display = show ? \"block\" : \"none\";\n this.$loop.schedule(this.CHANGE_FULL);\n this.onGutterResize();\n },\n initialValue: true\n },\n useSvgGutterIcons: {\n set: function (value) {\n this.$gutterLayer.$useSvgGutterIcons = value;\n },\n initialValue: false\n },\n showFoldedAnnotations: {\n set: function (value) {\n this.$gutterLayer.$showFoldedAnnotations = value;\n },\n initialValue: false\n },\n fadeFoldWidgets: {\n set: function (show) {\n dom.setCssClass(this.$gutter, \"ace_fade-fold-widgets\", show);\n },\n initialValue: false\n },\n showFoldWidgets: {\n set: function (show) {\n this.$gutterLayer.setShowFoldWidgets(show);\n this.$loop.schedule(this.CHANGE_GUTTER);\n },\n initialValue: true\n },\n displayIndentGuides: {\n set: function (show) {\n if (this.$textLayer.setDisplayIndentGuides(show))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: true\n },\n highlightIndentGuides: {\n set: function (show) {\n if (this.$textLayer.setHighlightIndentGuides(show) == true) {\n this.$textLayer.$highlightIndentGuide();\n }\n else {\n this.$textLayer.$clearActiveIndentGuide(this.$textLayer.$lines.cells);\n }\n },\n initialValue: true\n },\n highlightGutterLine: {\n set: function (shouldHighlight) {\n this.$gutterLayer.setHighlightGutterLine(shouldHighlight);\n this.$loop.schedule(this.CHANGE_GUTTER);\n },\n initialValue: true\n },\n hScrollBarAlwaysVisible: {\n set: function (val) {\n if (!this.$hScrollBarAlwaysVisible || !this.$horizScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n vScrollBarAlwaysVisible: {\n set: function (val) {\n if (!this.$vScrollBarAlwaysVisible || !this.$vScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n fontSize: {\n set: function (size) {\n if (typeof size == \"number\")\n size = size + \"px\";\n this.container.style.fontSize = size;\n this.updateFontSize();\n },\n initialValue: 12\n },\n fontFamily: {\n set: function (name) {\n this.container.style.fontFamily = name;\n this.updateFontSize();\n }\n },\n maxLines: {\n set: function (val) {\n this.updateFull();\n }\n },\n minLines: {\n set: function (val) {\n if (!(this.$minLines < 0x1ffffffffffff))\n this.$minLines = 0;\n this.updateFull();\n }\n },\n maxPixelHeight: {\n set: function (val) {\n this.updateFull();\n },\n initialValue: 0\n },\n scrollPastEnd: {\n set: function (val) {\n val = +val || 0;\n if (this.$scrollPastEnd == val)\n return;\n this.$scrollPastEnd = val;\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: 0,\n handlesSet: true\n },\n fixedWidthGutter: {\n set: function (val) {\n this.$gutterLayer.$fixedWidth = !!val;\n this.$loop.schedule(this.CHANGE_GUTTER);\n }\n },\n customScrollbar: {\n set: function (val) {\n this.$updateCustomScrollbar(val);\n },\n initialValue: false\n },\n theme: {\n set: function (val) { this.setTheme(val); },\n get: function () { return this.$themeId || this.theme; },\n initialValue: \"./theme/textmate\",\n handlesSet: true\n },\n hasCssTransforms: {},\n useTextareaForIME: {\n initialValue: !useragent.isMobile && !useragent.isIE\n }\n});\nexports.VirtualRenderer = VirtualRenderer;\n\n});\n\nace.define(\"ace/worker/worker_client\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/net\",\"ace/lib/event_emitter\",\"ace/config\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar net = require(\"../lib/net\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar config = require(\"../config\");\n\nfunction $workerBlob(workerUrl) {\n var script = \"importScripts('\" + net.qualifyURL(workerUrl) + \"');\";\n try {\n return new Blob([script], {\"type\": \"application/javascript\"});\n } catch (e) { // Backwards-compatibility\n var BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;\n var blobBuilder = new BlobBuilder();\n blobBuilder.append(script);\n return blobBuilder.getBlob(\"application/javascript\");\n }\n}\n\nfunction createWorker(workerUrl) {\n if (typeof Worker == \"undefined\")\n return { postMessage: function() {}, terminate: function() {} };\n if (config.get(\"loadWorkerFromBlob\")) {\n var blob = $workerBlob(workerUrl);\n var URL = window.URL || window.webkitURL;\n var blobURL = URL.createObjectURL(blob);\n return new Worker(blobURL);\n }\n return new Worker(workerUrl);\n}\n\nvar WorkerClient = function(worker) {\n if (!worker.postMessage)\n worker = this.$createWorkerFromOldConfig.apply(this, arguments);\n\n this.$worker = worker;\n this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this);\n this.changeListener = this.changeListener.bind(this);\n this.onMessage = this.onMessage.bind(this);\n\n this.callbackId = 1;\n this.callbacks = {};\n\n this.$worker.onmessage = this.onMessage;\n};\n\n(function(){\n\n oop.implement(this, EventEmitter);\n\n this.$createWorkerFromOldConfig = function(topLevelNamespaces, mod, classname, workerUrl, importScripts) {\n if (require.nameToUrl && !require.toUrl)\n require.toUrl = require.nameToUrl;\n\n if (config.get(\"packaged\") || !require.toUrl) {\n workerUrl = workerUrl || config.moduleUrl(mod, \"worker\");\n } else {\n var normalizePath = this.$normalizePath;\n workerUrl = workerUrl || normalizePath(require.toUrl(\"ace/worker/worker.js\", null, \"_\"));\n\n var tlns = {};\n topLevelNamespaces.forEach(function(ns) {\n tlns[ns] = normalizePath(require.toUrl(ns, null, \"_\").replace(/(\\.js)?(\\?.*)?$/, \"\"));\n });\n }\n\n this.$worker = createWorker(workerUrl);\n if (importScripts) {\n this.send(\"importScripts\", importScripts);\n }\n this.$worker.postMessage({\n init : true,\n tlns : tlns,\n module : mod,\n classname : classname\n });\n return this.$worker;\n };\n\n this.onMessage = function(e) {\n var msg = e.data;\n switch (msg.type) {\n case \"event\":\n this._signal(msg.name, {data: msg.data});\n break;\n case \"call\":\n var callback = this.callbacks[msg.id];\n if (callback) {\n callback(msg.data);\n delete this.callbacks[msg.id];\n }\n break;\n case \"error\":\n this.reportError(msg.data);\n break;\n case \"log\":\n window.console && console.log && console.log.apply(console, msg.data);\n break;\n }\n };\n \n this.reportError = function(err) {\n window.console && console.error && console.error(err);\n };\n\n this.$normalizePath = function(path) {\n return net.qualifyURL(path);\n };\n\n this.terminate = function() {\n this._signal(\"terminate\", {});\n this.deltaQueue = null;\n this.$worker.terminate();\n this.$worker.onerror = function(e) {\n e.preventDefault();\n };\n this.$worker = null;\n if (this.$doc)\n this.$doc.off(\"change\", this.changeListener);\n this.$doc = null;\n };\n\n this.send = function(cmd, args) {\n this.$worker.postMessage({command: cmd, args: args});\n };\n\n this.call = function(cmd, args, callback) {\n if (callback) {\n var id = this.callbackId++;\n this.callbacks[id] = callback;\n args.push(id);\n }\n this.send(cmd, args);\n };\n\n this.emit = function(event, data) {\n try {\n if (data.data && data.data.err)\n data.data.err = {message: data.data.err.message, stack: data.data.err.stack, code: data.data.err.code};\n this.$worker && this.$worker.postMessage({event: event, data: {data: data.data}});\n }\n catch(ex) {\n console.error(ex.stack);\n }\n };\n\n this.attachToDocument = function(doc) {\n if (this.$doc)\n this.terminate();\n\n this.$doc = doc;\n this.call(\"setValue\", [doc.getValue()]);\n doc.on(\"change\", this.changeListener, true);\n };\n\n this.changeListener = function(delta) {\n if (!this.deltaQueue) {\n this.deltaQueue = [];\n setTimeout(this.$sendDeltaQueue, 0);\n }\n if (delta.action == \"insert\")\n this.deltaQueue.push(delta.start, delta.lines);\n else\n this.deltaQueue.push(delta.start, delta.end);\n };\n\n this.$sendDeltaQueue = function() {\n var q = this.deltaQueue;\n if (!q) return;\n this.deltaQueue = null;\n if (q.length > 50 && q.length > this.$doc.getLength() >> 1) {\n this.call(\"setValue\", [this.$doc.getValue()]);\n } else\n this.emit(\"change\", {data: q});\n };\n\n}).call(WorkerClient.prototype);\n\n\nvar UIWorkerClient = function(topLevelNamespaces, mod, classname) {\n var main = null;\n var emitSync = false;\n var sender = Object.create(EventEmitter);\n\n var messageBuffer = [];\n var workerClient = new WorkerClient({\n messageBuffer: messageBuffer,\n terminate: function() {},\n postMessage: function(e) {\n messageBuffer.push(e);\n if (!main) return;\n if (emitSync)\n setTimeout(processNext);\n else\n processNext();\n }\n });\n\n workerClient.setEmitSync = function(val) { emitSync = val; };\n\n var processNext = function() {\n var msg = messageBuffer.shift();\n if (msg.command)\n main[msg.command].apply(main, msg.args);\n else if (msg.event)\n sender._signal(msg.event, msg.data);\n };\n\n sender.postMessage = function(msg) {\n workerClient.onMessage({data: msg});\n };\n sender.callback = function(data, callbackId) {\n this.postMessage({type: \"call\", id: callbackId, data: data});\n };\n sender.emit = function(name, data) {\n this.postMessage({type: \"event\", name: name, data: data});\n };\n\n config.loadModule([\"worker\", mod], function(Main) {\n main = new Main[classname](sender);\n while (messageBuffer.length)\n processNext();\n });\n\n return workerClient;\n};\n\nexports.UIWorkerClient = UIWorkerClient;\nexports.WorkerClient = WorkerClient;\nexports.createWorker = createWorker;\n\n\n});\n\nace.define(\"ace/placeholder\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/lib/oop\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"./range\").Range;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar oop = require(\"./lib/oop\");\nvar PlaceHolder = /** @class */ (function () {\n function PlaceHolder(session, length, pos, others, mainClass, othersClass) {\n var _self = this;\n this.length = length;\n this.session = session;\n this.doc = session.getDocument();\n this.mainClass = mainClass;\n this.othersClass = othersClass;\n this.$onUpdate = this.onUpdate.bind(this);\n this.doc.on(\"change\", this.$onUpdate, true);\n this.$others = others;\n this.$onCursorChange = function () {\n setTimeout(function () {\n _self.onCursorChange();\n });\n };\n this.$pos = pos;\n var undoStack = session.getUndoManager().$undoStack || session.getUndoManager().$undostack || { length: -1 };\n this.$undoStackDepth = undoStack.length;\n this.setup();\n session.selection.on(\"changeCursor\", this.$onCursorChange);\n }\n PlaceHolder.prototype.setup = function () {\n var _self = this;\n var doc = this.doc;\n var session = this.session;\n this.selectionBefore = session.selection.toJSON();\n if (session.selection.inMultiSelectMode)\n session.selection.toSingleRange();\n this.pos = doc.createAnchor(this.$pos.row, this.$pos.column);\n var pos = this.pos;\n pos.$insertRight = true;\n pos.detach();\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column + this.length), this.mainClass, null, false);\n this.others = [];\n this.$others.forEach(function (other) {\n var anchor = doc.createAnchor(other.row, other.column);\n anchor.$insertRight = true;\n anchor.detach();\n _self.others.push(anchor);\n });\n session.setUndoSelect(false);\n };\n PlaceHolder.prototype.showOtherMarkers = function () {\n if (this.othersActive)\n return;\n var session = this.session;\n var _self = this;\n this.othersActive = true;\n this.others.forEach(function (anchor) {\n anchor.markerId = session.addMarker(new Range(anchor.row, anchor.column, anchor.row, anchor.column + _self.length), _self.othersClass, null, false);\n });\n };\n PlaceHolder.prototype.hideOtherMarkers = function () {\n if (!this.othersActive)\n return;\n this.othersActive = false;\n for (var i = 0; i < this.others.length; i++) {\n this.session.removeMarker(this.others[i].markerId);\n }\n };\n PlaceHolder.prototype.onUpdate = function (delta) {\n if (this.$updating)\n return this.updateAnchors(delta);\n var range = delta;\n if (range.start.row !== range.end.row)\n return;\n if (range.start.row !== this.pos.row)\n return;\n this.$updating = true;\n var lengthDiff = delta.action === \"insert\" ? range.end.column - range.start.column : range.start.column - range.end.column;\n var inMainRange = range.start.column >= this.pos.column && range.start.column <= this.pos.column + this.length + 1;\n var distanceFromStart = range.start.column - this.pos.column;\n this.updateAnchors(delta);\n if (inMainRange)\n this.length += lengthDiff;\n if (inMainRange && !this.session.$fromUndo) {\n if (delta.action === 'insert') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = { row: otherPos.row, column: otherPos.column + distanceFromStart };\n this.doc.insertMergedLines(newPos, delta.lines);\n }\n }\n else if (delta.action === 'remove') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = { row: otherPos.row, column: otherPos.column + distanceFromStart };\n this.doc.remove(new Range(newPos.row, newPos.column, newPos.row, newPos.column - lengthDiff));\n }\n }\n }\n this.$updating = false;\n this.updateMarkers();\n };\n PlaceHolder.prototype.updateAnchors = function (delta) {\n this.pos.onChange(delta);\n for (var i = this.others.length; i--;)\n this.others[i].onChange(delta);\n this.updateMarkers();\n };\n PlaceHolder.prototype.updateMarkers = function () {\n if (this.$updating)\n return;\n var _self = this;\n var session = this.session;\n var updateMarker = function (pos, className) {\n session.removeMarker(pos.markerId);\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column + _self.length), className, null, false);\n };\n updateMarker(this.pos, this.mainClass);\n for (var i = this.others.length; i--;)\n updateMarker(this.others[i], this.othersClass);\n };\n PlaceHolder.prototype.onCursorChange = function (event) {\n if (this.$updating || !this.session)\n return;\n var pos = this.session.selection.getCursor();\n if (pos.row === this.pos.row && pos.column >= this.pos.column && pos.column <= this.pos.column + this.length) {\n this.showOtherMarkers();\n this._emit(\"cursorEnter\", event);\n }\n else {\n this.hideOtherMarkers();\n this._emit(\"cursorLeave\", event);\n }\n };\n PlaceHolder.prototype.detach = function () {\n this.session.removeMarker(this.pos && this.pos.markerId);\n this.hideOtherMarkers();\n this.doc.off(\"change\", this.$onUpdate);\n this.session.selection.off(\"changeCursor\", this.$onCursorChange);\n this.session.setUndoSelect(true);\n this.session = null;\n };\n PlaceHolder.prototype.cancel = function () {\n if (this.$undoStackDepth === -1)\n return;\n var undoManager = this.session.getUndoManager();\n var undosRequired = (undoManager.$undoStack || undoManager.$undostack).length - this.$undoStackDepth;\n for (var i = 0; i < undosRequired; i++) {\n undoManager.undo(this.session, true);\n }\n if (this.selectionBefore)\n this.session.selection.fromJSON(this.selectionBefore);\n };\n return PlaceHolder;\n}());\noop.implement(PlaceHolder.prototype, EventEmitter);\nexports.PlaceHolder = PlaceHolder;\n\n});\n\nace.define(\"ace/mouse/multi_select_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(require, exports, module){var event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\nfunction onMouseDown(e) {\n var ev = e.domEvent;\n var alt = ev.altKey;\n var shift = ev.shiftKey;\n var ctrl = ev.ctrlKey;\n var accel = e.getAccelKey();\n var button = e.getButton();\n if (ctrl && useragent.isMac)\n button = ev.button;\n if (e.editor.inMultiSelectMode && button == 2) {\n e.editor.textInput.onContextMenu(e.domEvent);\n return;\n }\n if (!ctrl && !alt && !accel) {\n if (button === 0 && e.editor.inMultiSelectMode)\n e.editor.exitMultiSelectMode();\n return;\n }\n if (button !== 0)\n return;\n var editor = e.editor;\n var selection = editor.selection;\n var isMultiSelect = editor.inMultiSelectMode;\n var pos = e.getDocumentPosition();\n var cursor = selection.getCursor();\n var inSelection = e.inSelection() || (selection.isEmpty() && isSamePoint(pos, cursor));\n var mouseX = e.x, mouseY = e.y;\n var onMouseSelection = function (e) {\n mouseX = e.clientX;\n mouseY = e.clientY;\n };\n var session = editor.session;\n var screenAnchor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var screenCursor = screenAnchor;\n var selectionMode;\n if (editor.$mouseHandler.$enableJumpToDef) {\n if (ctrl && alt || accel && alt)\n selectionMode = shift ? \"block\" : \"add\";\n else if (alt && editor.$blockSelectEnabled)\n selectionMode = \"block\";\n }\n else {\n if (accel && !alt) {\n selectionMode = \"add\";\n if (!isMultiSelect && shift)\n return;\n }\n else if (alt && editor.$blockSelectEnabled) {\n selectionMode = \"block\";\n }\n }\n if (selectionMode && useragent.isMac && ev.ctrlKey) {\n editor.$mouseHandler.cancelContextMenu();\n }\n if (selectionMode == \"add\") {\n if (!isMultiSelect && inSelection)\n return; // dragging\n if (!isMultiSelect) {\n var range = selection.toOrientedRange();\n editor.addSelectionMarker(range);\n }\n var oldRange = selection.rangeList.rangeAtPoint(pos);\n editor.inVirtualSelectionMode = true;\n if (shift) {\n oldRange = null;\n range = selection.ranges[0] || range;\n editor.removeSelectionMarker(range);\n }\n editor.once(\"mouseup\", function () {\n var tmpSel = selection.toOrientedRange();\n if (oldRange && tmpSel.isEmpty() && isSamePoint(oldRange.cursor, tmpSel.cursor))\n selection.substractPoint(tmpSel.cursor);\n else {\n if (shift) {\n selection.substractPoint(range.cursor);\n }\n else if (range) {\n editor.removeSelectionMarker(range);\n selection.addRange(range);\n }\n selection.addRange(tmpSel);\n }\n editor.inVirtualSelectionMode = false;\n });\n }\n else if (selectionMode == \"block\") {\n e.stop();\n editor.inVirtualSelectionMode = true;\n var initialRange;\n var rectSel = [];\n var blockSelect = function () {\n var newCursor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var cursor = session.screenToDocumentPosition(newCursor.row, newCursor.column, newCursor.offsetX);\n if (isSamePoint(screenCursor, newCursor) && isSamePoint(cursor, selection.lead))\n return;\n screenCursor = newCursor;\n editor.selection.moveToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n editor.removeSelectionMarkers(rectSel);\n rectSel = selection.rectangularRangeBlock(screenCursor, screenAnchor);\n if (editor.$mouseHandler.$clickSelection && rectSel.length == 1 && rectSel[0].isEmpty())\n rectSel[0] = editor.$mouseHandler.$clickSelection.clone();\n rectSel.forEach(editor.addSelectionMarker, editor);\n editor.updateSelectionMarkers();\n };\n if (isMultiSelect && !accel) {\n selection.toSingleRange();\n }\n else if (!isMultiSelect && accel) {\n initialRange = selection.toOrientedRange();\n editor.addSelectionMarker(initialRange);\n }\n if (shift)\n screenAnchor = session.documentToScreenPosition(selection.lead);\n else\n selection.moveToPosition(pos);\n screenCursor = { row: -1, column: -1 };\n var onMouseSelectionEnd = function (e) {\n blockSelect();\n clearInterval(timerId);\n editor.removeSelectionMarkers(rectSel);\n if (!rectSel.length)\n rectSel = [selection.toOrientedRange()];\n if (initialRange) {\n editor.removeSelectionMarker(initialRange);\n selection.toSingleRange(initialRange);\n }\n for (var i = 0; i < rectSel.length; i++)\n selection.addRange(rectSel[i]);\n editor.inVirtualSelectionMode = false;\n editor.$mouseHandler.$clickSelection = null;\n };\n var onSelectionInterval = blockSelect;\n event.capture(editor.container, onMouseSelection, onMouseSelectionEnd);\n var timerId = setInterval(function () { onSelectionInterval(); }, 20);\n return e.preventDefault();\n }\n}\nexports.onMouseDown = onMouseDown;\n\n});\n\nace.define(\"ace/commands/multi_select_commands\",[\"require\",\"exports\",\"module\",\"ace/keyboard/hash_handler\"], function(require, exports, module){// commands to enter multiselect mode\nexports.defaultCommands = [{\n name: \"addCursorAbove\",\n description: \"Add cursor above\",\n exec: function (editor) { editor.selectMoreLines(-1); },\n bindKey: { win: \"Ctrl-Alt-Up\", mac: \"Ctrl-Alt-Up\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"addCursorBelow\",\n description: \"Add cursor below\",\n exec: function (editor) { editor.selectMoreLines(1); },\n bindKey: { win: \"Ctrl-Alt-Down\", mac: \"Ctrl-Alt-Down\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"addCursorAboveSkipCurrent\",\n description: \"Add cursor above (skip current)\",\n exec: function (editor) { editor.selectMoreLines(-1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Up\", mac: \"Ctrl-Alt-Shift-Up\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"addCursorBelowSkipCurrent\",\n description: \"Add cursor below (skip current)\",\n exec: function (editor) { editor.selectMoreLines(1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Down\", mac: \"Ctrl-Alt-Shift-Down\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectMoreBefore\",\n description: \"Select more before\",\n exec: function (editor) { editor.selectMore(-1); },\n bindKey: { win: \"Ctrl-Alt-Left\", mac: \"Ctrl-Alt-Left\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectMoreAfter\",\n description: \"Select more after\",\n exec: function (editor) { editor.selectMore(1); },\n bindKey: { win: \"Ctrl-Alt-Right\", mac: \"Ctrl-Alt-Right\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectNextBefore\",\n description: \"Select next before\",\n exec: function (editor) { editor.selectMore(-1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Left\", mac: \"Ctrl-Alt-Shift-Left\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectNextAfter\",\n description: \"Select next after\",\n exec: function (editor) { editor.selectMore(1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Right\", mac: \"Ctrl-Alt-Shift-Right\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"toggleSplitSelectionIntoLines\",\n description: \"Split selection into lines\",\n exec: function (editor) {\n if (editor.multiSelect.rangeCount > 1)\n editor.multiSelect.joinSelections();\n else\n editor.multiSelect.splitIntoLines();\n },\n bindKey: { win: \"Ctrl-Alt-L\", mac: \"Ctrl-Alt-L\" },\n readOnly: true\n }, {\n name: \"splitSelectionIntoLines\",\n description: \"Split into lines\",\n exec: function (editor) { editor.multiSelect.splitIntoLines(); },\n readOnly: true\n }, {\n name: \"alignCursors\",\n description: \"Align cursors\",\n exec: function (editor) { editor.alignCursors(); },\n bindKey: { win: \"Ctrl-Alt-A\", mac: \"Ctrl-Alt-A\" },\n scrollIntoView: \"cursor\"\n }, {\n name: \"findAll\",\n description: \"Find all\",\n exec: function (editor) { editor.findAll(); },\n bindKey: { win: \"Ctrl-Alt-K\", mac: \"Ctrl-Alt-G\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }];\nexports.multiSelectCommands = [{\n name: \"singleSelection\",\n description: \"Single selection\",\n bindKey: \"esc\",\n exec: function (editor) { editor.exitMultiSelectMode(); },\n scrollIntoView: \"cursor\",\n readOnly: true,\n isAvailable: function (editor) { return editor && editor.inMultiSelectMode; }\n }];\nvar HashHandler = require(\"../keyboard/hash_handler\").HashHandler;\nexports.keyboardHandler = new HashHandler(exports.multiSelectCommands);\n\n});\n\nace.define(\"ace/multi_select\",[\"require\",\"exports\",\"module\",\"ace/range_list\",\"ace/range\",\"ace/selection\",\"ace/mouse/multi_select_handler\",\"ace/lib/event\",\"ace/lib/lang\",\"ace/commands/multi_select_commands\",\"ace/search\",\"ace/edit_session\",\"ace/editor\",\"ace/config\"], function(require, exports, module){var RangeList = require(\"./range_list\").RangeList;\nvar Range = require(\"./range\").Range;\nvar Selection = require(\"./selection\").Selection;\nvar onMouseDown = require(\"./mouse/multi_select_handler\").onMouseDown;\nvar event = require(\"./lib/event\");\nvar lang = require(\"./lib/lang\");\nvar commands = require(\"./commands/multi_select_commands\");\nexports.commands = commands.defaultCommands.concat(commands.multiSelectCommands);\nvar Search = require(\"./search\").Search;\nvar search = new Search();\nfunction find(session, needle, dir) {\n search.$options.wrap = true;\n search.$options.needle = needle;\n search.$options.backwards = dir == -1;\n return search.find(session);\n}\nvar EditSession = require(\"./edit_session\").EditSession;\n(function () {\n this.getSelectionMarkers = function () {\n return this.$selectionMarkers;\n };\n}).call(EditSession.prototype);\n(function () {\n this.ranges = null;\n this.rangeList = null;\n this.addRange = function (range, $blockChangeEvents) {\n if (!range)\n return;\n if (!this.inMultiSelectMode && this.rangeCount === 0) {\n var oldRange = this.toOrientedRange();\n this.rangeList.add(oldRange);\n this.rangeList.add(range);\n if (this.rangeList.ranges.length != 2) {\n this.rangeList.removeAll();\n return $blockChangeEvents || this.fromOrientedRange(range);\n }\n this.rangeList.removeAll();\n this.rangeList.add(oldRange);\n this.$onAddRange(oldRange);\n }\n if (!range.cursor)\n range.cursor = range.end;\n var removed = this.rangeList.add(range);\n this.$onAddRange(range);\n if (removed.length)\n this.$onRemoveRange(removed);\n if (this.rangeCount > 1 && !this.inMultiSelectMode) {\n this._signal(\"multiSelect\");\n this.inMultiSelectMode = true;\n this.session.$undoSelect = false;\n this.rangeList.attach(this.session);\n }\n return $blockChangeEvents || this.fromOrientedRange(range);\n };\n this.toSingleRange = function (range) {\n range = range || this.ranges[0];\n var removed = this.rangeList.removeAll();\n if (removed.length)\n this.$onRemoveRange(removed);\n range && this.fromOrientedRange(range);\n };\n this.substractPoint = function (pos) {\n var removed = this.rangeList.substractPoint(pos);\n if (removed) {\n this.$onRemoveRange(removed);\n return removed[0];\n }\n };\n this.mergeOverlappingRanges = function () {\n var removed = this.rangeList.merge();\n if (removed.length)\n this.$onRemoveRange(removed);\n };\n this.$onAddRange = function (range) {\n this.rangeCount = this.rangeList.ranges.length;\n this.ranges.unshift(range);\n this._signal(\"addRange\", { range: range });\n };\n this.$onRemoveRange = function (removed) {\n this.rangeCount = this.rangeList.ranges.length;\n if (this.rangeCount == 1 && this.inMultiSelectMode) {\n var lastRange = this.rangeList.ranges.pop();\n removed.push(lastRange);\n this.rangeCount = 0;\n }\n for (var i = removed.length; i--;) {\n var index = this.ranges.indexOf(removed[i]);\n this.ranges.splice(index, 1);\n }\n this._signal(\"removeRange\", { ranges: removed });\n if (this.rangeCount === 0 && this.inMultiSelectMode) {\n this.inMultiSelectMode = false;\n this._signal(\"singleSelect\");\n this.session.$undoSelect = true;\n this.rangeList.detach(this.session);\n }\n lastRange = lastRange || this.ranges[0];\n if (lastRange && !lastRange.isEqual(this.getRange()))\n this.fromOrientedRange(lastRange);\n };\n this.$initRangeList = function () {\n if (this.rangeList)\n return;\n this.rangeList = new RangeList();\n this.ranges = [];\n this.rangeCount = 0;\n };\n this.getAllRanges = function () {\n return this.rangeCount ? this.rangeList.ranges.concat() : [this.getRange()];\n };\n this.splitIntoLines = function () {\n var ranges = this.ranges.length ? this.ranges : [this.getRange()];\n var newRanges = [];\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n var row = range.start.row;\n var endRow = range.end.row;\n if (row === endRow) {\n newRanges.push(range.clone());\n }\n else {\n newRanges.push(new Range(row, range.start.column, row, this.session.getLine(row).length));\n while (++row < endRow)\n newRanges.push(this.getLineRange(row, true));\n newRanges.push(new Range(endRow, 0, endRow, range.end.column));\n }\n if (i == 0 && !this.isBackwards())\n newRanges = newRanges.reverse();\n }\n this.toSingleRange();\n for (var i = newRanges.length; i--;)\n this.addRange(newRanges[i]);\n };\n this.joinSelections = function () {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n };\n this.toggleBlockSelection = function () {\n if (this.rangeCount > 1) {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n }\n else {\n var cursor = this.session.documentToScreenPosition(this.cursor);\n var anchor = this.session.documentToScreenPosition(this.anchor);\n var rectSel = this.rectangularRangeBlock(cursor, anchor);\n rectSel.forEach(this.addRange, this);\n }\n };\n this.rectangularRangeBlock = function (screenCursor, screenAnchor, includeEmptyLines) {\n var rectSel = [];\n var xBackwards = screenCursor.column < screenAnchor.column;\n if (xBackwards) {\n var startColumn = screenCursor.column;\n var endColumn = screenAnchor.column;\n var startOffsetX = screenCursor.offsetX;\n var endOffsetX = screenAnchor.offsetX;\n }\n else {\n var startColumn = screenAnchor.column;\n var endColumn = screenCursor.column;\n var startOffsetX = screenAnchor.offsetX;\n var endOffsetX = screenCursor.offsetX;\n }\n var yBackwards = screenCursor.row < screenAnchor.row;\n if (yBackwards) {\n var startRow = screenCursor.row;\n var endRow = screenAnchor.row;\n }\n else {\n var startRow = screenAnchor.row;\n var endRow = screenCursor.row;\n }\n if (startColumn < 0)\n startColumn = 0;\n if (startRow < 0)\n startRow = 0;\n if (startRow == endRow)\n includeEmptyLines = true;\n var docEnd;\n for (var row = startRow; row <= endRow; row++) {\n var range = Range.fromPoints(this.session.screenToDocumentPosition(row, startColumn, startOffsetX), this.session.screenToDocumentPosition(row, endColumn, endOffsetX));\n if (range.isEmpty()) {\n if (docEnd && isSamePoint(range.end, docEnd))\n break;\n docEnd = range.end;\n }\n range.cursor = xBackwards ? range.start : range.end;\n rectSel.push(range);\n }\n if (yBackwards)\n rectSel.reverse();\n if (!includeEmptyLines) {\n var end = rectSel.length - 1;\n while (rectSel[end].isEmpty() && end > 0)\n end--;\n if (end > 0) {\n var start = 0;\n while (rectSel[start].isEmpty())\n start++;\n }\n for (var i = end; i >= start; i--) {\n if (rectSel[i].isEmpty())\n rectSel.splice(i, 1);\n }\n }\n return rectSel;\n };\n}).call(Selection.prototype);\nvar Editor = require(\"./editor\").Editor;\n(function () {\n this.updateSelectionMarkers = function () {\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.addSelectionMarker = function (orientedRange) {\n if (!orientedRange.cursor)\n orientedRange.cursor = orientedRange.end;\n var style = this.getSelectionStyle();\n orientedRange.marker = this.session.addMarker(orientedRange, \"ace_selection\", style);\n this.session.$selectionMarkers.push(orientedRange);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n return orientedRange;\n };\n this.removeSelectionMarker = function (range) {\n if (!range.marker)\n return;\n this.session.removeMarker(range.marker);\n var index = this.session.$selectionMarkers.indexOf(range);\n if (index != -1)\n this.session.$selectionMarkers.splice(index, 1);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n };\n this.removeSelectionMarkers = function (ranges) {\n var markerList = this.session.$selectionMarkers;\n for (var i = ranges.length; i--;) {\n var range = ranges[i];\n if (!range.marker)\n continue;\n this.session.removeMarker(range.marker);\n var index = markerList.indexOf(range);\n if (index != -1)\n markerList.splice(index, 1);\n }\n this.session.selectionMarkerCount = markerList.length;\n };\n this.$onAddRange = function (e) {\n this.addSelectionMarker(e.range);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.$onRemoveRange = function (e) {\n this.removeSelectionMarkers(e.ranges);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.$onMultiSelect = function (e) {\n if (this.inMultiSelectMode)\n return;\n this.inMultiSelectMode = true;\n this.setStyle(\"ace_multiselect\");\n this.keyBinding.addKeyboardHandler(commands.keyboardHandler);\n this.commands.setDefaultHandler(\"exec\", this.$onMultiSelectExec);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.$onSingleSelect = function (e) {\n if (this.session.multiSelect.inVirtualMode)\n return;\n this.inMultiSelectMode = false;\n this.unsetStyle(\"ace_multiselect\");\n this.keyBinding.removeKeyboardHandler(commands.keyboardHandler);\n this.commands.removeDefaultHandler(\"exec\", this.$onMultiSelectExec);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n this._emit(\"changeSelection\");\n };\n this.$onMultiSelectExec = function (e) {\n var command = e.command;\n var editor = e.editor;\n if (!editor.multiSelect)\n return;\n if (!command.multiSelectAction) {\n var result = command.exec(editor, e.args || {});\n editor.multiSelect.addRange(editor.multiSelect.toOrientedRange());\n editor.multiSelect.mergeOverlappingRanges();\n }\n else if (command.multiSelectAction == \"forEach\") {\n result = editor.forEachSelection(command, e.args);\n }\n else if (command.multiSelectAction == \"forEachLine\") {\n result = editor.forEachSelection(command, e.args, true);\n }\n else if (command.multiSelectAction == \"single\") {\n editor.exitMultiSelectMode();\n result = command.exec(editor, e.args || {});\n }\n else {\n result = command.multiSelectAction(editor, e.args || {});\n }\n return result;\n };\n this.forEachSelection = function (cmd, args, options) {\n if (this.inVirtualSelectionMode)\n return;\n var keepOrder = options && options.keepOrder;\n var $byLines = options == true || options && options.$byLines;\n var session = this.session;\n var selection = this.selection;\n var rangeList = selection.rangeList;\n var ranges = (keepOrder ? selection : rangeList).ranges;\n var result;\n if (!ranges.length)\n return cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n var reg = selection._eventRegistry;\n selection._eventRegistry = {};\n var tmpSel = new Selection(session);\n this.inVirtualSelectionMode = true;\n for (var i = ranges.length; i--;) {\n if ($byLines) {\n while (i > 0 && ranges[i].start.row == ranges[i - 1].end.row)\n i--;\n }\n tmpSel.fromOrientedRange(ranges[i]);\n tmpSel.index = i;\n this.selection = session.selection = tmpSel;\n var cmdResult = cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n if (!result && cmdResult !== undefined)\n result = cmdResult;\n tmpSel.toOrientedRange(ranges[i]);\n }\n tmpSel.detach();\n this.selection = session.selection = selection;\n this.inVirtualSelectionMode = false;\n selection._eventRegistry = reg;\n selection.mergeOverlappingRanges();\n if (selection.ranges[0])\n selection.fromOrientedRange(selection.ranges[0]);\n var anim = this.renderer.$scrollAnimation;\n this.onCursorChange();\n this.onSelectionChange();\n if (anim && anim.from == anim.to)\n this.renderer.animateScrolling(anim.from);\n return result;\n };\n this.exitMultiSelectMode = function () {\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode)\n return;\n this.multiSelect.toSingleRange();\n };\n this.getSelectedText = function () {\n var text = \"\";\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var ranges = this.multiSelect.rangeList.ranges;\n var buf = [];\n for (var i = 0; i < ranges.length; i++) {\n buf.push(this.session.getTextRange(ranges[i]));\n }\n var nl = this.session.getDocument().getNewLineCharacter();\n text = buf.join(nl);\n if (text.length == (buf.length - 1) * nl.length)\n text = \"\";\n }\n else if (!this.selection.isEmpty()) {\n text = this.session.getTextRange(this.getSelectionRange());\n }\n return text;\n };\n this.$checkMultiselectChange = function (e, anchor) {\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var range = this.multiSelect.ranges[0];\n if (this.multiSelect.isEmpty() && anchor == this.multiSelect.anchor)\n return;\n var pos = anchor == this.multiSelect.anchor\n ? range.cursor == range.start ? range.end : range.start\n : range.cursor;\n if (pos.row != anchor.row\n || this.session.$clipPositionToDocument(pos.row, pos.column).column != anchor.column)\n this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange());\n else\n this.multiSelect.mergeOverlappingRanges();\n }\n };\n this.findAll = function (needle, options, additive) {\n options = options || {};\n options.needle = needle || options.needle;\n if (options.needle == undefined) {\n var range = this.selection.isEmpty()\n ? this.selection.getWordRange()\n : this.selection.getRange();\n options.needle = this.session.getTextRange(range);\n }\n this.$search.set(options);\n var ranges = this.$search.findAll(this.session);\n if (!ranges.length)\n return 0;\n var selection = this.multiSelect;\n if (!additive)\n selection.toSingleRange(ranges[0]);\n for (var i = ranges.length; i--;)\n selection.addRange(ranges[i], true);\n if (range && selection.rangeList.rangeAtPoint(range.start))\n selection.addRange(range, true);\n return ranges.length;\n };\n this.selectMoreLines = function (dir, skip) {\n var range = this.selection.toOrientedRange();\n var isBackwards = range.cursor == range.end;\n var screenLead = this.session.documentToScreenPosition(range.cursor);\n if (this.selection.$desiredColumn)\n screenLead.column = this.selection.$desiredColumn;\n var lead = this.session.screenToDocumentPosition(screenLead.row + dir, screenLead.column);\n if (!range.isEmpty()) {\n var screenAnchor = this.session.documentToScreenPosition(isBackwards ? range.end : range.start);\n var anchor = this.session.screenToDocumentPosition(screenAnchor.row + dir, screenAnchor.column);\n }\n else {\n var anchor = lead;\n }\n if (isBackwards) {\n var newRange = Range.fromPoints(lead, anchor);\n newRange.cursor = newRange.start;\n }\n else {\n var newRange = Range.fromPoints(anchor, lead);\n newRange.cursor = newRange.end;\n }\n newRange.desiredColumn = screenLead.column;\n if (!this.selection.inMultiSelectMode) {\n this.selection.addRange(range);\n }\n else {\n if (skip)\n var toRemove = range.cursor;\n }\n this.selection.addRange(newRange);\n if (toRemove)\n this.selection.substractPoint(toRemove);\n };\n this.transposeSelections = function (dir) {\n var session = this.session;\n var sel = session.multiSelect;\n var all = sel.ranges;\n for (var i = all.length; i--;) {\n var range = all[i];\n if (range.isEmpty()) {\n var tmp = session.getWordRange(range.start.row, range.start.column);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n range.end.row = tmp.end.row;\n range.end.column = tmp.end.column;\n }\n }\n sel.mergeOverlappingRanges();\n var words = [];\n for (var i = all.length; i--;) {\n var range = all[i];\n words.unshift(session.getTextRange(range));\n }\n if (dir < 0)\n words.unshift(words.pop());\n else\n words.push(words.shift());\n for (var i = all.length; i--;) {\n var range = all[i];\n var tmp = range.clone();\n session.replace(range, words[i]);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n }\n sel.fromOrientedRange(sel.ranges[0]);\n };\n this.selectMore = function (dir, skip, stopAtFirst) {\n var session = this.session;\n var sel = session.multiSelect;\n var range = sel.toOrientedRange();\n if (range.isEmpty()) {\n range = session.getWordRange(range.start.row, range.start.column);\n range.cursor = dir == -1 ? range.start : range.end;\n this.multiSelect.addRange(range);\n if (stopAtFirst)\n return;\n }\n var needle = session.getTextRange(range);\n var newRange = find(session, needle, dir);\n if (newRange) {\n newRange.cursor = dir == -1 ? newRange.start : newRange.end;\n this.session.unfold(newRange);\n this.multiSelect.addRange(newRange);\n this.renderer.scrollCursorIntoView(null, 0.5);\n }\n if (skip)\n this.multiSelect.substractPoint(range.cursor);\n };\n this.alignCursors = function () {\n var session = this.session;\n var sel = session.multiSelect;\n var ranges = sel.ranges;\n var row = -1;\n var sameRowRanges = ranges.filter(function (r) {\n if (r.cursor.row == row)\n return true;\n row = r.cursor.row;\n });\n if (!ranges.length || sameRowRanges.length == ranges.length - 1) {\n var range = this.selection.getRange();\n var fr = range.start.row, lr = range.end.row;\n var guessRange = fr == lr;\n if (guessRange) {\n var max = this.session.getLength();\n var line;\n do {\n line = this.session.getLine(lr);\n } while (/[=:]/.test(line) && ++lr < max);\n do {\n line = this.session.getLine(fr);\n } while (/[=:]/.test(line) && --fr > 0);\n if (fr < 0)\n fr = 0;\n if (lr >= max)\n lr = max - 1;\n }\n var lines = this.session.removeFullLines(fr, lr);\n lines = this.$reAlignText(lines, guessRange);\n this.session.insert({ row: fr, column: 0 }, lines.join(\"\\n\") + \"\\n\");\n if (!guessRange) {\n range.start.column = 0;\n range.end.column = lines[lines.length - 1].length;\n }\n this.selection.setRange(range);\n }\n else {\n sameRowRanges.forEach(function (r) {\n sel.substractPoint(r.cursor);\n });\n var maxCol = 0;\n var minSpace = Infinity;\n var spaceOffsets = ranges.map(function (r) {\n var p = r.cursor;\n var line = session.getLine(p.row);\n var spaceOffset = line.substr(p.column).search(/\\S/g);\n if (spaceOffset == -1)\n spaceOffset = 0;\n if (p.column > maxCol)\n maxCol = p.column;\n if (spaceOffset < minSpace)\n minSpace = spaceOffset;\n return spaceOffset;\n });\n ranges.forEach(function (r, i) {\n var p = r.cursor;\n var l = maxCol - p.column;\n var d = spaceOffsets[i] - minSpace;\n if (l > d)\n session.insert(p, lang.stringRepeat(\" \", l - d));\n else\n session.remove(new Range(p.row, p.column, p.row, p.column - l + d));\n r.start.column = r.end.column = maxCol;\n r.start.row = r.end.row = p.row;\n r.cursor = r.end;\n });\n sel.fromOrientedRange(ranges[0]);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n }\n };\n this.$reAlignText = function (lines, forceLeft) {\n var isLeftAligned = true, isRightAligned = true;\n var startW, textW, endW;\n return lines.map(function (line) {\n var m = line.match(/(\\s*)(.*?)(\\s*)([=:].*)/);\n if (!m)\n return [line];\n if (startW == null) {\n startW = m[1].length;\n textW = m[2].length;\n endW = m[3].length;\n return m;\n }\n if (startW + textW + endW != m[1].length + m[2].length + m[3].length)\n isRightAligned = false;\n if (startW != m[1].length)\n isLeftAligned = false;\n if (startW > m[1].length)\n startW = m[1].length;\n if (textW < m[2].length)\n textW = m[2].length;\n if (endW > m[3].length)\n endW = m[3].length;\n return m;\n }).map(forceLeft ? alignLeft :\n isLeftAligned ? isRightAligned ? alignRight : alignLeft : unAlign);\n function spaces(n) {\n return lang.stringRepeat(\" \", n);\n }\n function alignLeft(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(textW - m[2].length + endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function alignRight(m) {\n return !m[2] ? m[0] : spaces(startW + textW - m[2].length) + m[2]\n + spaces(endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function unAlign(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n };\n}).call(Editor.prototype);\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\nexports.onSessionChange = function (e) {\n var session = e.session;\n if (session && !session.multiSelect) {\n session.$selectionMarkers = [];\n session.selection.$initRangeList();\n session.multiSelect = session.selection;\n }\n this.multiSelect = session && session.multiSelect;\n var oldSession = e.oldSession;\n if (oldSession) {\n oldSession.multiSelect.off(\"addRange\", this.$onAddRange);\n oldSession.multiSelect.off(\"removeRange\", this.$onRemoveRange);\n oldSession.multiSelect.off(\"multiSelect\", this.$onMultiSelect);\n oldSession.multiSelect.off(\"singleSelect\", this.$onSingleSelect);\n oldSession.multiSelect.lead.off(\"change\", this.$checkMultiselectChange);\n oldSession.multiSelect.anchor.off(\"change\", this.$checkMultiselectChange);\n }\n if (session) {\n session.multiSelect.on(\"addRange\", this.$onAddRange);\n session.multiSelect.on(\"removeRange\", this.$onRemoveRange);\n session.multiSelect.on(\"multiSelect\", this.$onMultiSelect);\n session.multiSelect.on(\"singleSelect\", this.$onSingleSelect);\n session.multiSelect.lead.on(\"change\", this.$checkMultiselectChange);\n session.multiSelect.anchor.on(\"change\", this.$checkMultiselectChange);\n }\n if (session && this.inMultiSelectMode != session.selection.inMultiSelectMode) {\n if (session.selection.inMultiSelectMode)\n this.$onMultiSelect();\n else\n this.$onSingleSelect();\n }\n};\nfunction MultiSelect(editor) {\n if (editor.$multiselectOnSessionChange)\n return;\n editor.$onAddRange = editor.$onAddRange.bind(editor);\n editor.$onRemoveRange = editor.$onRemoveRange.bind(editor);\n editor.$onMultiSelect = editor.$onMultiSelect.bind(editor);\n editor.$onSingleSelect = editor.$onSingleSelect.bind(editor);\n editor.$multiselectOnSessionChange = exports.onSessionChange.bind(editor);\n editor.$checkMultiselectChange = editor.$checkMultiselectChange.bind(editor);\n editor.$multiselectOnSessionChange(editor);\n editor.on(\"changeSession\", editor.$multiselectOnSessionChange);\n editor.on(\"mousedown\", onMouseDown);\n editor.commands.addCommands(commands.defaultCommands);\n addAltCursorListeners(editor);\n}\nfunction addAltCursorListeners(editor) {\n if (!editor.textInput)\n return;\n var el = editor.textInput.getElement();\n var altCursor = false;\n event.addListener(el, \"keydown\", function (e) {\n var altDown = e.keyCode == 18 && !(e.ctrlKey || e.shiftKey || e.metaKey);\n if (editor.$blockSelectEnabled && altDown) {\n if (!altCursor) {\n editor.renderer.setMouseCursor(\"crosshair\");\n altCursor = true;\n }\n }\n else if (altCursor) {\n reset();\n }\n }, editor);\n event.addListener(el, \"keyup\", reset, editor);\n event.addListener(el, \"blur\", reset, editor);\n function reset(e) {\n if (altCursor) {\n editor.renderer.setMouseCursor(\"\");\n altCursor = false;\n }\n }\n}\nexports.MultiSelect = MultiSelect;\nrequire(\"./config\").defineOptions(Editor.prototype, \"editor\", {\n enableMultiselect: {\n set: function (val) {\n MultiSelect(this);\n if (val) {\n this.on(\"mousedown\", onMouseDown);\n }\n else {\n this.off(\"mousedown\", onMouseDown);\n }\n },\n value: true\n },\n enableBlockSelect: {\n set: function (val) {\n this.$blockSelectEnabled = val;\n },\n value: true\n }\n});\n\n});\n\nace.define(\"ace/mode/folding/fold_mode\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../../range\").Range;\nvar FoldMode = exports.FoldMode = function () { };\n(function () {\n this.foldingStartMarker = null;\n this.foldingStopMarker = null;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.foldingStartMarker.test(line))\n return \"start\";\n if (foldStyle == \"markbeginend\"\n && this.foldingStopMarker\n && this.foldingStopMarker.test(line))\n return \"end\";\n return \"\";\n };\n this.getFoldWidgetRange = function (session, foldStyle, row) {\n return null;\n };\n this.indentationBlock = function (session, row, column) {\n var re = /\\S/;\n var line = session.getLine(row);\n var startLevel = line.search(re);\n if (startLevel == -1)\n return;\n var startColumn = column || line.length;\n var maxRow = session.getLength();\n var startRow = row;\n var endRow = row;\n while (++row < maxRow) {\n var level = session.getLine(row).search(re);\n if (level == -1)\n continue;\n if (level <= startLevel) {\n var token = session.getTokenAt(row, 0);\n if (!token || token.type !== \"string\")\n break;\n }\n endRow = row;\n }\n if (endRow > startRow) {\n var endColumn = session.getLine(endRow).length;\n return new Range(startRow, startColumn, endRow, endColumn);\n }\n };\n this.openingBracketBlock = function (session, bracket, row, column, typeRe) {\n var start = { row: row, column: column + 1 };\n var end = session.$findClosingBracket(bracket, start, typeRe);\n if (!end)\n return;\n var fw = session.foldWidgets[end.row];\n if (fw == null)\n fw = session.getFoldWidget(end.row);\n if (fw == \"start\" && end.row > start.row) {\n end.row--;\n end.column = session.getLine(end.row).length;\n }\n return Range.fromPoints(start, end);\n };\n this.closingBracketBlock = function (session, bracket, row, column, typeRe) {\n var end = { row: row, column: column };\n var start = session.$findOpeningBracket(bracket, end);\n if (!start)\n return;\n start.column++;\n end.column--;\n return Range.fromPoints(start, end);\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/ext/error_marker\",[\"require\",\"exports\",\"module\",\"ace/line_widgets\",\"ace/lib/dom\",\"ace/range\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar LineWidgets = require(\"../line_widgets\").LineWidgets;\nvar dom = require(\"../lib/dom\");\nvar Range = require(\"../range\").Range;\nvar nls = require(\"../config\").nls;\nfunction binarySearch(array, needle, comparator) {\n var first = 0;\n var last = array.length - 1;\n while (first <= last) {\n var mid = (first + last) >> 1;\n var c = comparator(needle, array[mid]);\n if (c > 0)\n first = mid + 1;\n else if (c < 0)\n last = mid - 1;\n else\n return mid;\n }\n return -(first + 1);\n}\nfunction findAnnotations(session, row, dir) {\n var annotations = session.getAnnotations().sort(Range.comparePoints);\n if (!annotations.length)\n return;\n var i = binarySearch(annotations, { row: row, column: -1 }, Range.comparePoints);\n if (i < 0)\n i = -i - 1;\n if (i >= annotations.length)\n i = dir > 0 ? 0 : annotations.length - 1;\n else if (i === 0 && dir < 0)\n i = annotations.length - 1;\n var annotation = annotations[i];\n if (!annotation || !dir)\n return;\n if (annotation.row === row) {\n do {\n annotation = annotations[i += dir];\n } while (annotation && annotation.row === row);\n if (!annotation)\n return annotations.slice();\n }\n var matched = [];\n row = annotation.row;\n do {\n matched[dir < 0 ? \"unshift\" : \"push\"](annotation);\n annotation = annotations[i += dir];\n } while (annotation && annotation.row == row);\n return matched.length && matched;\n}\nexports.showErrorMarker = function (editor, dir) {\n var session = editor.session;\n if (!session.widgetManager) {\n session.widgetManager = new LineWidgets(session);\n session.widgetManager.attach(editor);\n }\n var pos = editor.getCursorPosition();\n var row = pos.row;\n var oldWidget = session.widgetManager.getWidgetsAtRow(row).filter(function (w) {\n return w.type == \"errorMarker\";\n })[0];\n if (oldWidget) {\n oldWidget.destroy();\n }\n else {\n row -= dir;\n }\n var annotations = findAnnotations(session, row, dir);\n var gutterAnno;\n if (annotations) {\n var annotation = annotations[0];\n pos.column = (annotation.pos && typeof annotation.column != \"number\"\n ? annotation.pos.sc\n : annotation.column) || 0;\n pos.row = annotation.row;\n gutterAnno = editor.renderer.$gutterLayer.$annotations[pos.row];\n }\n else if (oldWidget) {\n return;\n }\n else {\n gutterAnno = {\n text: [nls(\"Looks good!\")],\n className: \"ace_ok\"\n };\n }\n editor.session.unfold(pos.row);\n editor.selection.moveToPosition(pos);\n var w = {\n row: pos.row,\n fixedWidth: true,\n coverGutter: true,\n el: dom.createElement(\"div\"),\n type: \"errorMarker\"\n };\n var el = w.el.appendChild(dom.createElement(\"div\"));\n var arrow = w.el.appendChild(dom.createElement(\"div\"));\n arrow.className = \"error_widget_arrow \" + gutterAnno.className;\n var left = editor.renderer.$cursorLayer\n .getPixelPosition(pos).left;\n arrow.style.left = left + editor.renderer.gutterWidth - 5 + \"px\";\n w.el.className = \"error_widget_wrapper\";\n el.className = \"error_widget \" + gutterAnno.className;\n el.innerHTML = gutterAnno.text.join(\"
    \");\n el.appendChild(dom.createElement(\"div\"));\n var kb = function (_, hashId, keyString) {\n if (hashId === 0 && (keyString === \"esc\" || keyString === \"return\")) {\n w.destroy();\n return { command: \"null\" };\n }\n };\n w.destroy = function () {\n if (editor.$mouseHandler.isMousePressed)\n return;\n editor.keyBinding.removeKeyboardHandler(kb);\n session.widgetManager.removeLineWidget(w);\n editor.off(\"changeSelection\", w.destroy);\n editor.off(\"changeSession\", w.destroy);\n editor.off(\"mouseup\", w.destroy);\n editor.off(\"change\", w.destroy);\n };\n editor.keyBinding.addKeyboardHandler(kb);\n editor.on(\"changeSelection\", w.destroy);\n editor.on(\"changeSession\", w.destroy);\n editor.on(\"mouseup\", w.destroy);\n editor.on(\"change\", w.destroy);\n editor.session.widgetManager.addLineWidget(w);\n w.el.onmousedown = editor.focus.bind(editor);\n editor.renderer.scrollCursorIntoView(null, 0.5, { bottom: w.el.offsetHeight });\n};\ndom.importCssString(\"\\n .error_widget_wrapper {\\n background: inherit;\\n color: inherit;\\n border:none\\n }\\n .error_widget {\\n border-top: solid 2px;\\n border-bottom: solid 2px;\\n margin: 5px 0;\\n padding: 10px 40px;\\n white-space: pre-wrap;\\n }\\n .error_widget.ace_error, .error_widget_arrow.ace_error{\\n border-color: #ff5a5a\\n }\\n .error_widget.ace_warning, .error_widget_arrow.ace_warning{\\n border-color: #F1D817\\n }\\n .error_widget.ace_info, .error_widget_arrow.ace_info{\\n border-color: #5a5a5a\\n }\\n .error_widget.ace_ok, .error_widget_arrow.ace_ok{\\n border-color: #5aaa5a\\n }\\n .error_widget_arrow {\\n position: absolute;\\n border: solid 5px;\\n border-top-color: transparent!important;\\n border-right-color: transparent!important;\\n border-left-color: transparent!important;\\n top: -5px;\\n }\\n\", \"error_marker.css\", false);\n\n});\n\nace.define(\"ace/ace\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/range\",\"ace/editor\",\"ace/edit_session\",\"ace/undomanager\",\"ace/virtual_renderer\",\"ace/worker/worker_client\",\"ace/keyboard/hash_handler\",\"ace/placeholder\",\"ace/multi_select\",\"ace/mode/folding/fold_mode\",\"ace/theme/textmate\",\"ace/ext/error_marker\",\"ace/config\",\"ace/loader_build\"], function(require, exports, module){/**\n * The main class required to set up an Ace instance in the browser.\n *\n * @class Ace\n **/\n\"use strict\";\nrequire(\"./loader_build\")(exports)\nvar dom = require(\"./lib/dom\");\nvar Range = require(\"./range\").Range;\nvar Editor = require(\"./editor\").Editor;\nvar EditSession = require(\"./edit_session\").EditSession;\nvar UndoManager = require(\"./undomanager\").UndoManager;\nvar Renderer = require(\"./virtual_renderer\").VirtualRenderer;\nrequire(\"./worker/worker_client\");\nrequire(\"./keyboard/hash_handler\");\nrequire(\"./placeholder\");\nrequire(\"./multi_select\");\nrequire(\"./mode/folding/fold_mode\");\nrequire(\"./theme/textmate\");\nrequire(\"./ext/error_marker\");\nexports.config = require(\"./config\");\nexports.edit = function (el, options) {\n if (typeof el == \"string\") {\n var _id = el;\n el = document.getElementById(_id);\n if (!el)\n throw new Error(\"ace.edit can't find div #\" + _id);\n }\n if (el && el.env && el.env.editor instanceof Editor)\n return el.env.editor;\n var value = \"\";\n if (el && /input|textarea/i.test(el.tagName)) {\n var oldNode = el;\n value = oldNode.value;\n el = dom.createElement(\"pre\");\n oldNode.parentNode.replaceChild(el, oldNode);\n }\n else if (el) {\n value = el.textContent;\n el.innerHTML = \"\";\n }\n var doc = exports.createEditSession(value);\n var editor = new Editor(new Renderer(el), doc, options);\n var env = {\n document: doc,\n editor: editor,\n onResize: editor.resize.bind(editor, null)\n };\n if (oldNode)\n env.textarea = oldNode;\n editor.on(\"destroy\", function () {\n env.editor.container.env = null; // prevent memory leak on old ie\n });\n editor.container.env = editor.env = env;\n return editor;\n};\nexports.createEditSession = function (text, mode) {\n var doc = new EditSession(text, mode);\n doc.setUndoManager(new UndoManager());\n return doc;\n};\nexports.Range = Range;\nexports.Editor = Editor;\nexports.EditSession = EditSession;\nexports.UndoManager = UndoManager;\nexports.VirtualRenderer = Renderer;\nexports.version = exports.config.version;\n\n}); (function() {\n ace.require([\"ace/ace\"], function(a) {\n if (a) {\n a.config.init(true);\n a.define = ace.define;\n }\n var global = (function () {\n return this;\n })();\n if (!global && typeof window != \"undefined\") global = window; // can happen in strict mode\n if (!global && typeof self != \"undefined\") global = self; // can happen in webworker\n \n if (!global.ace)\n global.ace = a;\n for (var key in a) if (a.hasOwnProperty(key))\n global.ace[key] = a[key];\n global.ace[\"default\"] = global.ace;\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = global.ace;\n }\n });\n })();\n ","ace.define(\"ace/ext/beautify\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"], function(require, exports, module){// [WIP]\n\"use strict\";\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nfunction is(token, type) {\n return token.type.lastIndexOf(type + \".xml\") > -1;\n}\nexports.singletonTags = [\"area\", \"base\", \"br\", \"col\", \"command\", \"embed\", \"hr\", \"html\", \"img\", \"input\", \"keygen\", \"link\", \"meta\", \"param\", \"source\", \"track\", \"wbr\"];\nexports.blockTags = [\"article\", \"aside\", \"blockquote\", \"body\", \"div\", \"dl\", \"fieldset\", \"footer\", \"form\", \"head\", \"header\", \"html\", \"nav\", \"ol\", \"p\", \"script\", \"section\", \"style\", \"table\", \"tbody\", \"tfoot\", \"thead\", \"ul\"];\nexports.formatOptions = {\n lineBreaksAfterCommasInCurlyBlock: true\n};\nexports.beautify = function (session) {\n var iterator = new TokenIterator(session, 0, 0);\n var token = iterator.getCurrentToken();\n var tabString = session.getTabString();\n var singletonTags = exports.singletonTags;\n var blockTags = exports.blockTags;\n var formatOptions = exports.formatOptions || {};\n var nextToken;\n var breakBefore = false;\n var spaceBefore = false;\n var spaceAfter = false;\n var code = \"\";\n var value = \"\";\n var tagName = \"\";\n var depth = 0;\n var lastDepth = 0;\n var lastIndent = 0;\n var indent = 0;\n var unindent = 0;\n var roundDepth = 0;\n var curlyDepth = 0;\n var row;\n var curRow = 0;\n var rowsToAdd = 0;\n var rowTokens = [];\n var abort = false;\n var i;\n var indentNextLine = false;\n var inTag = false;\n var inCSS = false;\n var inBlock = false;\n var levels = { 0: 0 };\n var parents = [];\n var caseBody = false;\n var trimNext = function () {\n if (nextToken && nextToken.value && nextToken.type !== 'string.regexp')\n nextToken.value = nextToken.value.replace(/^\\s*/, \"\");\n };\n var trimLine = function () {\n var end = code.length - 1;\n while (true) {\n if (end == 0)\n break;\n if (code[end] !== \" \")\n break;\n end = end - 1;\n }\n code = code.slice(0, end + 1);\n };\n var trimCode = function () {\n code = code.trimRight();\n breakBefore = false;\n };\n while (token !== null) {\n curRow = iterator.getCurrentTokenRow();\n rowTokens = iterator.$rowTokens;\n nextToken = iterator.stepForward();\n if (typeof token !== \"undefined\") {\n value = token.value;\n unindent = 0;\n inCSS = (tagName === \"style\" || session.$modeId === \"ace/mode/css\");\n if (is(token, \"tag-open\")) {\n inTag = true;\n if (nextToken)\n inBlock = (blockTags.indexOf(nextToken.value) !== -1);\n if (value === \" 0; rowsToAdd--)\n code += \"\\n\";\n breakBefore = true;\n if (!is(token, \"comment\") && !token.type.match(/^(comment|string)$/))\n value = value.trimLeft();\n }\n if (value) {\n if (token.type === \"keyword\" && value.match(/^(if|else|elseif|for|foreach|while|switch)$/)) {\n parents[depth] = value;\n trimNext();\n spaceAfter = true;\n if (value.match(/^(else|elseif)$/)) {\n if (code.match(/\\}[\\s]*$/)) {\n trimCode();\n spaceBefore = true;\n }\n }\n }\n else if (token.type === \"paren.lparen\") {\n trimNext();\n if (value.substr(-1) === \"{\") {\n spaceAfter = true;\n indentNextLine = false;\n if (!inTag)\n rowsToAdd = 1;\n }\n if (value.substr(0, 1) === \"{\") {\n spaceBefore = true;\n if (code.substr(-1) !== '[' && code.trimRight().substr(-1) === '[') {\n trimCode();\n spaceBefore = false;\n }\n else if (code.trimRight().substr(-1) === ')') {\n trimCode();\n }\n else {\n trimLine();\n }\n }\n }\n else if (token.type === \"paren.rparen\") {\n unindent = 1;\n if (value.substr(0, 1) === \"}\") {\n if (parents[depth - 1] === 'case')\n unindent++;\n if (code.trimRight().substr(-1) === '{') {\n trimCode();\n }\n else {\n spaceBefore = true;\n if (inCSS)\n rowsToAdd += 2;\n }\n }\n if (value.substr(0, 1) === \"]\") {\n if (code.substr(-1) !== '}' && code.trimRight().substr(-1) === '}') {\n spaceBefore = false;\n indent++;\n trimCode();\n }\n }\n if (value.substr(0, 1) === \")\") {\n if (code.substr(-1) !== '(' && code.trimRight().substr(-1) === '(') {\n spaceBefore = false;\n indent++;\n trimCode();\n }\n }\n trimLine();\n }\n else if ((token.type === \"keyword.operator\" || token.type === \"keyword\") && value.match(/^(=|==|===|!=|!==|&&|\\|\\||and|or|xor|\\+=|.=|>|>=|<|<=|=>)$/)) {\n trimCode();\n trimNext();\n spaceBefore = true;\n spaceAfter = true;\n }\n else if (token.type === \"punctuation.operator\" && value === ';') {\n trimCode();\n trimNext();\n spaceAfter = true;\n if (inCSS)\n rowsToAdd++;\n }\n else if (token.type === \"punctuation.operator\" && value.match(/^(:|,)$/)) {\n trimCode();\n trimNext();\n if (value.match(/^(,)$/) && curlyDepth > 0 && roundDepth === 0 && formatOptions.lineBreaksAfterCommasInCurlyBlock) {\n rowsToAdd++;\n }\n else {\n spaceAfter = true;\n breakBefore = false;\n }\n }\n else if (token.type === \"support.php_tag\" && value === \"?>\" && !breakBefore) {\n trimCode();\n spaceBefore = true;\n }\n else if (is(token, \"attribute-name\") && code.substr(-1).match(/^\\s$/)) {\n spaceBefore = true;\n }\n else if (is(token, \"attribute-equals\")) {\n trimLine();\n trimNext();\n }\n else if (is(token, \"tag-close\")) {\n trimLine();\n if (value === \"/>\")\n spaceBefore = true;\n }\n else if (token.type === \"keyword\" && value.match(/^(case|default)$/)) {\n if (caseBody)\n unindent = 1;\n }\n if (breakBefore && !(token.type.match(/^(comment)$/) && !value.substr(0, 1).match(/^[/#]$/)) && !(token.type.match(/^(string)$/) && !value.substr(0, 1).match(/^['\"@]$/))) {\n indent = lastIndent;\n if (depth > lastDepth) {\n indent++;\n for (i = depth; i > lastDepth; i--)\n levels[i] = indent;\n }\n else if (depth < lastDepth)\n indent = levels[depth];\n lastDepth = depth;\n lastIndent = indent;\n if (unindent)\n indent -= unindent;\n if (indentNextLine && !roundDepth) {\n indent++;\n indentNextLine = false;\n }\n for (i = 0; i < indent; i++)\n code += tabString;\n }\n if (token.type === \"keyword\" && value.match(/^(case|default)$/)) {\n if (caseBody === false) {\n parents[depth] = value;\n depth++;\n caseBody = true;\n }\n }\n else if (token.type === \"keyword\" && value.match(/^(break)$/)) {\n if (parents[depth - 1] && parents[depth - 1].match(/^(case|default)$/)) {\n depth--;\n caseBody = false;\n }\n }\n if (token.type === \"paren.lparen\") {\n roundDepth += (value.match(/\\(/g) || []).length;\n curlyDepth += (value.match(/\\{/g) || []).length;\n depth += value.length;\n }\n if (token.type === \"keyword\" && value.match(/^(if|else|elseif|for|while)$/)) {\n indentNextLine = true;\n roundDepth = 0;\n }\n else if (!roundDepth && value.trim() && token.type !== \"comment\")\n indentNextLine = false;\n if (token.type === \"paren.rparen\") {\n roundDepth -= (value.match(/\\)/g) || []).length;\n curlyDepth -= (value.match(/\\}/g) || []).length;\n for (i = 0; i < value.length; i++) {\n depth--;\n if (value.substr(i, 1) === '}' && parents[depth] === 'case') {\n depth--;\n }\n }\n }\n if (token.type == \"text\")\n value = value.replace(/\\s+$/, \" \");\n if (spaceBefore && !breakBefore) {\n trimLine();\n if (code.substr(-1) !== \"\\n\")\n code += \" \";\n }\n code += value;\n if (spaceAfter)\n code += \" \";\n breakBefore = false;\n spaceBefore = false;\n spaceAfter = false;\n if ((is(token, \"tag-close\") && (inBlock || blockTags.indexOf(tagName) !== -1)) || (is(token, \"doctype\") && value === \">\")) {\n if (inBlock && nextToken && nextToken.value === \"\") {\n depth--;\n }\n }\n if (is(token, \"tag-name\")) {\n tagName = value;\n }\n row = curRow;\n }\n }\n token = nextToken;\n }\n code = code.trim();\n session.doc.setValue(code);\n};\nexports.commands = [{\n name: \"beautify\",\n description: \"Format selection (Beautify)\",\n exec: function (editor) {\n exports.beautify(editor.session);\n },\n bindKey: \"Ctrl-Shift-B\"\n }];\n\n}); (function() {\n ace.require([\"ace/ext/beautify\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/ext/searchbox-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){module.exports = \"\\n\\n/* ------------------------------------------------------------------------------------------\\n * Editor Search Form\\n * --------------------------------------------------------------------------------------- */\\n.ace_search {\\n background-color: #ddd;\\n color: #666;\\n border: 1px solid #cbcbcb;\\n border-top: 0 none;\\n overflow: hidden;\\n margin: 0;\\n padding: 4px 6px 0 4px;\\n position: absolute;\\n top: 0;\\n z-index: 99;\\n white-space: normal;\\n}\\n.ace_search.left {\\n border-left: 0 none;\\n border-radius: 0px 0px 5px 0px;\\n left: 0;\\n}\\n.ace_search.right {\\n border-radius: 0px 0px 0px 5px;\\n border-right: 0 none;\\n right: 0;\\n}\\n\\n.ace_search_form, .ace_replace_form {\\n margin: 0 20px 4px 0;\\n overflow: hidden;\\n line-height: 1.9;\\n}\\n.ace_replace_form {\\n margin-right: 0;\\n}\\n.ace_search_form.ace_nomatch {\\n outline: 1px solid red;\\n}\\n\\n.ace_search_field {\\n border-radius: 3px 0 0 3px;\\n background-color: white;\\n color: black;\\n border: 1px solid #cbcbcb;\\n border-right: 0 none;\\n outline: 0;\\n padding: 0;\\n font-size: inherit;\\n margin: 0;\\n line-height: inherit;\\n padding: 0 6px;\\n min-width: 17em;\\n vertical-align: top;\\n min-height: 1.8em;\\n box-sizing: content-box;\\n}\\n.ace_searchbtn {\\n border: 1px solid #cbcbcb;\\n line-height: inherit;\\n display: inline-block;\\n padding: 0 6px;\\n background: #fff;\\n border-right: 0 none;\\n border-left: 1px solid #dcdcdc;\\n cursor: pointer;\\n margin: 0;\\n position: relative;\\n color: #666;\\n}\\n.ace_searchbtn:last-child {\\n border-radius: 0 3px 3px 0;\\n border-right: 1px solid #cbcbcb;\\n}\\n.ace_searchbtn:disabled {\\n background: none;\\n cursor: default;\\n}\\n.ace_searchbtn:hover {\\n background-color: #eef1f6;\\n}\\n.ace_searchbtn.prev, .ace_searchbtn.next {\\n padding: 0px 0.7em\\n}\\n.ace_searchbtn.prev:after, .ace_searchbtn.next:after {\\n content: \\\"\\\";\\n border: solid 2px #888;\\n width: 0.5em;\\n height: 0.5em;\\n border-width: 2px 0 0 2px;\\n display:inline-block;\\n transform: rotate(-45deg);\\n}\\n.ace_searchbtn.next:after {\\n border-width: 0 2px 2px 0 ;\\n}\\n.ace_searchbtn_close {\\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\\n border-radius: 50%;\\n border: 0 none;\\n color: #656565;\\n cursor: pointer;\\n font: 16px/16px Arial;\\n padding: 0;\\n height: 14px;\\n width: 14px;\\n top: 9px;\\n right: 7px;\\n position: absolute;\\n}\\n.ace_searchbtn_close:hover {\\n background-color: #656565;\\n background-position: 50% 100%;\\n color: white;\\n}\\n\\n.ace_button {\\n margin-left: 2px;\\n cursor: pointer;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -o-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n overflow: hidden;\\n opacity: 0.7;\\n border: 1px solid rgba(100,100,100,0.23);\\n padding: 1px;\\n box-sizing: border-box!important;\\n color: black;\\n}\\n\\n.ace_button:hover {\\n background-color: #eee;\\n opacity:1;\\n}\\n.ace_button:active {\\n background-color: #ddd;\\n}\\n\\n.ace_button.checked {\\n border-color: #3399ff;\\n opacity:1;\\n}\\n\\n.ace_search_options{\\n margin-bottom: 3px;\\n text-align: right;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -o-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n clear: both;\\n}\\n\\n.ace_search_counter {\\n float: left;\\n font-family: arial;\\n padding: 0 8px;\\n}\";\n\n});\n\nace.define(\"ace/ext/searchbox\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/event\",\"ace/ext/searchbox-css\",\"ace/keyboard/hash_handler\",\"ace/lib/keys\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar event = require(\"../lib/event\");\nvar searchboxCss = require(\"./searchbox-css\");\nvar HashHandler = require(\"../keyboard/hash_handler\").HashHandler;\nvar keyUtil = require(\"../lib/keys\");\nvar nls = require(\"../config\").nls;\nvar MAX_COUNT = 999;\ndom.importCssString(searchboxCss, \"ace_searchbox\", false);\nvar SearchBox = /** @class */ (function () {\n function SearchBox(editor, range, showReplaceForm) {\n var div = dom.createElement(\"div\");\n dom.buildDom([\"div\", { class: \"ace_search right\" },\n [\"span\", { action: \"hide\", class: \"ace_searchbtn_close\" }],\n [\"div\", { class: \"ace_search_form\" },\n [\"input\", { class: \"ace_search_field\", placeholder: nls(\"Search for\"), spellcheck: \"false\" }],\n [\"span\", { action: \"findPrev\", class: \"ace_searchbtn prev\" }, \"\\u200b\"],\n [\"span\", { action: \"findNext\", class: \"ace_searchbtn next\" }, \"\\u200b\"],\n [\"span\", { action: \"findAll\", class: \"ace_searchbtn\", title: \"Alt-Enter\" }, nls(\"All\")]\n ],\n [\"div\", { class: \"ace_replace_form\" },\n [\"input\", { class: \"ace_search_field\", placeholder: nls(\"Replace with\"), spellcheck: \"false\" }],\n [\"span\", { action: \"replaceAndFindNext\", class: \"ace_searchbtn\" }, nls(\"Replace\")],\n [\"span\", { action: \"replaceAll\", class: \"ace_searchbtn\" }, nls(\"All\")]\n ],\n [\"div\", { class: \"ace_search_options\" },\n [\"span\", { action: \"toggleReplace\", class: \"ace_button\", title: nls(\"Toggle Replace mode\"),\n style: \"float:left;margin-top:-2px;padding:0 5px;\" }, \"+\"],\n [\"span\", { class: \"ace_search_counter\" }],\n [\"span\", { action: \"toggleRegexpMode\", class: \"ace_button\", title: nls(\"RegExp Search\") }, \".*\"],\n [\"span\", { action: \"toggleCaseSensitive\", class: \"ace_button\", title: nls(\"CaseSensitive Search\") }, \"Aa\"],\n [\"span\", { action: \"toggleWholeWords\", class: \"ace_button\", title: nls(\"Whole Word Search\") }, \"\\\\b\"],\n [\"span\", { action: \"searchInSelection\", class: \"ace_button\", title: nls(\"Search In Selection\") }, \"S\"]\n ]\n ], div);\n this.element = div.firstChild;\n this.setSession = this.setSession.bind(this);\n this.$init();\n this.setEditor(editor);\n dom.importCssString(searchboxCss, \"ace_searchbox\", editor.container);\n }\n SearchBox.prototype.setEditor = function (editor) {\n editor.searchBox = this;\n editor.renderer.scroller.appendChild(this.element);\n this.editor = editor;\n };\n SearchBox.prototype.setSession = function (e) {\n this.searchRange = null;\n this.$syncOptions(true);\n };\n SearchBox.prototype.$initElements = function (sb) {\n this.searchBox = sb.querySelector(\".ace_search_form\");\n this.replaceBox = sb.querySelector(\".ace_replace_form\");\n this.searchOption = sb.querySelector(\"[action=searchInSelection]\");\n this.replaceOption = sb.querySelector(\"[action=toggleReplace]\");\n this.regExpOption = sb.querySelector(\"[action=toggleRegexpMode]\");\n this.caseSensitiveOption = sb.querySelector(\"[action=toggleCaseSensitive]\");\n this.wholeWordOption = sb.querySelector(\"[action=toggleWholeWords]\");\n this.searchInput = this.searchBox.querySelector(\".ace_search_field\");\n this.replaceInput = this.replaceBox.querySelector(\".ace_search_field\");\n this.searchCounter = sb.querySelector(\".ace_search_counter\");\n };\n SearchBox.prototype.$init = function () {\n var sb = this.element;\n this.$initElements(sb);\n var _this = this;\n event.addListener(sb, \"mousedown\", function (e) {\n setTimeout(function () {\n _this.activeInput.focus();\n }, 0);\n event.stopPropagation(e);\n });\n event.addListener(sb, \"click\", function (e) {\n var t = e.target || e.srcElement;\n var action = t.getAttribute(\"action\");\n if (action && _this[action])\n _this[action]();\n else if (_this.$searchBarKb.commands[action])\n _this.$searchBarKb.commands[action].exec(_this);\n event.stopPropagation(e);\n });\n event.addCommandKeyListener(sb, function (e, hashId, keyCode) {\n var keyString = keyUtil.keyCodeToString(keyCode);\n var command = _this.$searchBarKb.findKeyCommand(hashId, keyString);\n if (command && command.exec) {\n command.exec(_this);\n event.stopEvent(e);\n }\n });\n this.$onChange = lang.delayedCall(function () {\n _this.find(false, false);\n });\n event.addListener(this.searchInput, \"input\", function () {\n _this.$onChange.schedule(20);\n });\n event.addListener(this.searchInput, \"focus\", function () {\n _this.activeInput = _this.searchInput;\n _this.searchInput.value && _this.highlight();\n });\n event.addListener(this.replaceInput, \"focus\", function () {\n _this.activeInput = _this.replaceInput;\n _this.searchInput.value && _this.highlight();\n });\n };\n SearchBox.prototype.setSearchRange = function (range) {\n this.searchRange = range;\n if (range) {\n this.searchRangeMarker = this.editor.session.addMarker(range, \"ace_active-line\");\n }\n else if (this.searchRangeMarker) {\n this.editor.session.removeMarker(this.searchRangeMarker);\n this.searchRangeMarker = null;\n }\n };\n SearchBox.prototype.$syncOptions = function (preventScroll) {\n dom.setCssClass(this.replaceOption, \"checked\", this.searchRange);\n dom.setCssClass(this.searchOption, \"checked\", this.searchOption.checked);\n this.replaceOption.textContent = this.replaceOption.checked ? \"-\" : \"+\";\n dom.setCssClass(this.regExpOption, \"checked\", this.regExpOption.checked);\n dom.setCssClass(this.wholeWordOption, \"checked\", this.wholeWordOption.checked);\n dom.setCssClass(this.caseSensitiveOption, \"checked\", this.caseSensitiveOption.checked);\n var readOnly = this.editor.getReadOnly();\n this.replaceOption.style.display = readOnly ? \"none\" : \"\";\n this.replaceBox.style.display = this.replaceOption.checked && !readOnly ? \"\" : \"none\";\n this.find(false, false, preventScroll);\n };\n SearchBox.prototype.highlight = function (re) {\n this.editor.session.highlight(re || this.editor.$search.$options.re);\n this.editor.renderer.updateBackMarkers();\n };\n SearchBox.prototype.find = function (skipCurrent, backwards, preventScroll) {\n var range = this.editor.find(this.searchInput.value, {\n skipCurrent: skipCurrent,\n backwards: backwards,\n wrap: true,\n regExp: this.regExpOption.checked,\n caseSensitive: this.caseSensitiveOption.checked,\n wholeWord: this.wholeWordOption.checked,\n preventScroll: preventScroll,\n range: this.searchRange\n });\n var noMatch = !range && this.searchInput.value;\n dom.setCssClass(this.searchBox, \"ace_nomatch\", noMatch);\n this.editor._emit(\"findSearchBox\", { match: !noMatch });\n this.highlight();\n this.updateCounter();\n };\n SearchBox.prototype.updateCounter = function () {\n var editor = this.editor;\n var regex = editor.$search.$options.re;\n var supportsUnicodeFlag = regex.unicode;\n var all = 0;\n var before = 0;\n if (regex) {\n var value = this.searchRange\n ? editor.session.getTextRange(this.searchRange)\n : editor.getValue();\n var offset = editor.session.doc.positionToIndex(editor.selection.anchor);\n if (this.searchRange)\n offset -= editor.session.doc.positionToIndex(this.searchRange.start);\n var last = regex.lastIndex = 0;\n var m;\n while ((m = regex.exec(value))) {\n all++;\n last = m.index;\n if (last <= offset)\n before++;\n if (all > MAX_COUNT)\n break;\n if (!m[0]) {\n regex.lastIndex = last += lang.skipEmptyMatch(value, last, supportsUnicodeFlag);\n if (last >= value.length)\n break;\n }\n }\n }\n this.searchCounter.textContent = nls(\"$0 of $1\", [before, (all > MAX_COUNT ? MAX_COUNT + \"+\" : all)]);\n };\n SearchBox.prototype.findNext = function () {\n this.find(true, false);\n };\n SearchBox.prototype.findPrev = function () {\n this.find(true, true);\n };\n SearchBox.prototype.findAll = function () {\n var range = this.editor.findAll(this.searchInput.value, {\n regExp: this.regExpOption.checked,\n caseSensitive: this.caseSensitiveOption.checked,\n wholeWord: this.wholeWordOption.checked\n });\n var noMatch = !range && this.searchInput.value;\n dom.setCssClass(this.searchBox, \"ace_nomatch\", noMatch);\n this.editor._emit(\"findSearchBox\", { match: !noMatch });\n this.highlight();\n this.hide();\n };\n SearchBox.prototype.replace = function () {\n if (!this.editor.getReadOnly())\n this.editor.replace(this.replaceInput.value);\n };\n SearchBox.prototype.replaceAndFindNext = function () {\n if (!this.editor.getReadOnly()) {\n this.editor.replace(this.replaceInput.value);\n this.findNext();\n }\n };\n SearchBox.prototype.replaceAll = function () {\n if (!this.editor.getReadOnly())\n this.editor.replaceAll(this.replaceInput.value);\n };\n SearchBox.prototype.hide = function () {\n this.active = false;\n this.setSearchRange(null);\n this.editor.off(\"changeSession\", this.setSession);\n this.element.style.display = \"none\";\n this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb);\n this.editor.focus();\n };\n SearchBox.prototype.show = function (value, isReplace) {\n this.active = true;\n this.editor.on(\"changeSession\", this.setSession);\n this.element.style.display = \"\";\n this.replaceOption.checked = isReplace;\n if (value)\n this.searchInput.value = value;\n this.searchInput.focus();\n this.searchInput.select();\n this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb);\n this.$syncOptions(true);\n };\n SearchBox.prototype.isFocused = function () {\n var el = document.activeElement;\n return el == this.searchInput || el == this.replaceInput;\n };\n return SearchBox;\n}());\nvar $searchBarKb = new HashHandler();\n$searchBarKb.bindKeys({\n \"Ctrl-f|Command-f\": function (sb) {\n var isReplace = sb.isReplace = !sb.isReplace;\n sb.replaceBox.style.display = isReplace ? \"\" : \"none\";\n sb.replaceOption.checked = false;\n sb.$syncOptions();\n sb.searchInput.focus();\n },\n \"Ctrl-H|Command-Option-F\": function (sb) {\n if (sb.editor.getReadOnly())\n return;\n sb.replaceOption.checked = true;\n sb.$syncOptions();\n sb.replaceInput.focus();\n },\n \"Ctrl-G|Command-G\": function (sb) {\n sb.findNext();\n },\n \"Ctrl-Shift-G|Command-Shift-G\": function (sb) {\n sb.findPrev();\n },\n \"esc\": function (sb) {\n setTimeout(function () { sb.hide(); });\n },\n \"Return\": function (sb) {\n if (sb.activeInput == sb.replaceInput)\n sb.replace();\n sb.findNext();\n },\n \"Shift-Return\": function (sb) {\n if (sb.activeInput == sb.replaceInput)\n sb.replace();\n sb.findPrev();\n },\n \"Alt-Return\": function (sb) {\n if (sb.activeInput == sb.replaceInput)\n sb.replaceAll();\n sb.findAll();\n },\n \"Tab\": function (sb) {\n (sb.activeInput == sb.replaceInput ? sb.searchInput : sb.replaceInput).focus();\n }\n});\n$searchBarKb.addCommands([{\n name: \"toggleRegexpMode\",\n bindKey: { win: \"Alt-R|Alt-/\", mac: \"Ctrl-Alt-R|Ctrl-Alt-/\" },\n exec: function (sb) {\n sb.regExpOption.checked = !sb.regExpOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"toggleCaseSensitive\",\n bindKey: { win: \"Alt-C|Alt-I\", mac: \"Ctrl-Alt-R|Ctrl-Alt-I\" },\n exec: function (sb) {\n sb.caseSensitiveOption.checked = !sb.caseSensitiveOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"toggleWholeWords\",\n bindKey: { win: \"Alt-B|Alt-W\", mac: \"Ctrl-Alt-B|Ctrl-Alt-W\" },\n exec: function (sb) {\n sb.wholeWordOption.checked = !sb.wholeWordOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"toggleReplace\",\n exec: function (sb) {\n sb.replaceOption.checked = !sb.replaceOption.checked;\n sb.$syncOptions();\n }\n }, {\n name: \"searchInSelection\",\n exec: function (sb) {\n sb.searchOption.checked = !sb.searchRange;\n sb.setSearchRange(sb.searchOption.checked && sb.editor.getSelectionRange());\n sb.$syncOptions();\n }\n }]);\nvar $closeSearchBarKb = new HashHandler([{\n bindKey: \"Esc\",\n name: \"closeSearchBar\",\n exec: function (editor) {\n editor.searchBox.hide();\n }\n }]);\nSearchBox.prototype.$searchBarKb = $searchBarKb;\nSearchBox.prototype.$closeSearchBarKb = $closeSearchBarKb;\nexports.SearchBox = SearchBox;\nexports.Search = function (editor, isReplace) {\n var sb = editor.searchBox || new SearchBox(editor);\n sb.show(editor.session.getTextRange(), isReplace);\n};\n\n}); (function() {\n ace.require([\"ace/ext/searchbox\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar supportType = exports.supportType = \"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\";\nvar supportFunction = exports.supportFunction = \"rgb|rgba|url|attr|counter|counters\";\nvar supportConstant = exports.supportConstant = \"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|flex-end|flex-start|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom\";\nvar supportConstantColor = exports.supportConstantColor = \"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen\";\nvar supportConstantFonts = exports.supportConstantFonts = \"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\";\nvar numRe = exports.numRe = \"\\\\-?(?:(?:[0-9]+(?:\\\\.[0-9]+)?)|(?:\\\\.[0-9]+))\";\nvar pseudoElements = exports.pseudoElements = \"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\";\nvar pseudoClasses = exports.pseudoClasses = \"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\";\nvar CssHighlightRules = function () {\n var keywordMapper = this.createKeywordMapper({\n \"support.function\": supportFunction,\n \"support.constant\": supportConstant,\n \"support.type\": supportType,\n \"support.constant.color\": supportConstantColor,\n \"support.constant.fonts\": supportConstantFonts\n }, \"text\", true);\n this.$rules = {\n \"start\": [{\n include: [\"strings\", \"url\", \"comments\"]\n }, {\n token: \"paren.lparen\",\n regex: \"\\\\{\",\n next: \"ruleset\"\n }, {\n token: \"paren.rparen\",\n regex: \"\\\\}\"\n }, {\n token: \"string\",\n regex: \"@(?!viewport)\",\n next: \"media\"\n }, {\n token: \"keyword\",\n regex: \"#[a-z0-9-_]+\"\n }, {\n token: \"keyword\",\n regex: \"%\"\n }, {\n token: \"variable\",\n regex: \"\\\\.[a-z0-9-_]+\"\n }, {\n token: \"string\",\n regex: \":[a-z0-9-_]+\"\n }, {\n token: \"constant.numeric\",\n regex: numRe\n }, {\n token: \"constant\",\n regex: \"[a-z0-9-_]+\"\n }, {\n caseInsensitive: true\n }],\n \"media\": [{\n include: [\"strings\", \"url\", \"comments\"]\n }, {\n token: \"paren.lparen\",\n regex: \"\\\\{\",\n next: \"start\"\n }, {\n token: \"paren.rparen\",\n regex: \"\\\\}\",\n next: \"start\"\n }, {\n token: \"string\",\n regex: \";\",\n next: \"start\"\n }, {\n token: \"keyword\",\n regex: \"(?:media|supports|document|charset|import|namespace|media|supports|document\"\n + \"|page|font|keyframes|viewport|counter-style|font-feature-values\"\n + \"|swash|ornaments|annotation|stylistic|styleset|character-variant)\"\n }],\n \"comments\": [{\n token: \"comment\",\n regex: \"\\\\/\\\\*\",\n push: [{\n token: \"comment\",\n regex: \"\\\\*\\\\/\",\n next: \"pop\"\n }, {\n defaultToken: \"comment\"\n }]\n }],\n \"ruleset\": [{\n regex: \"-(webkit|ms|moz|o)-\",\n token: \"text\"\n }, {\n token: \"punctuation.operator\",\n regex: \"[:;]\"\n }, {\n token: \"paren.rparen\",\n regex: \"\\\\}\",\n next: \"start\"\n }, {\n include: [\"strings\", \"url\", \"comments\"]\n }, {\n token: [\"constant.numeric\", \"keyword\"],\n regex: \"(\" + numRe + \")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)\"\n }, {\n token: \"constant.numeric\",\n regex: numRe\n }, {\n token: \"constant.numeric\",\n regex: \"#[a-f0-9]{6}\"\n }, {\n token: \"constant.numeric\",\n regex: \"#[a-f0-9]{3}\"\n }, {\n token: [\"punctuation\", \"entity.other.attribute-name.pseudo-element.css\"],\n regex: pseudoElements\n }, {\n token: [\"punctuation\", \"entity.other.attribute-name.pseudo-class.css\"],\n regex: pseudoClasses\n }, {\n include: \"url\"\n }, {\n token: keywordMapper,\n regex: \"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"\n }, {\n caseInsensitive: true\n }],\n url: [{\n token: \"support.function\",\n regex: \"(?:url(:?-prefix)?|domain|regexp)\\\\(\",\n push: [{\n token: \"support.function\",\n regex: \"\\\\)\",\n next: \"pop\"\n }, {\n defaultToken: \"string\"\n }]\n }],\n strings: [{\n token: \"string.start\",\n regex: \"'\",\n push: [{\n token: \"string.end\",\n regex: \"'|$\",\n next: \"pop\"\n }, {\n include: \"escapes\"\n }, {\n token: \"constant.language.escape\",\n regex: /\\\\$/,\n consumeLineEnd: true\n }, {\n defaultToken: \"string\"\n }]\n }, {\n token: \"string.start\",\n regex: '\"',\n push: [{\n token: \"string.end\",\n regex: '\"|$',\n next: \"pop\"\n }, {\n include: \"escapes\"\n }, {\n token: \"constant.language.escape\",\n regex: /\\\\$/,\n consumeLineEnd: true\n }, {\n defaultToken: \"string\"\n }]\n }],\n escapes: [{\n token: \"constant.language.escape\",\n regex: /\\\\([a-fA-F\\d]{1,6}|[^a-fA-F\\d])/\n }]\n };\n this.normalizeRules();\n};\noop.inherits(CssHighlightRules, TextHighlightRules);\nexports.CssHighlightRules = CssHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar propertyMap = {\n \"background\": { \"#$0\": 1 },\n \"background-color\": { \"#$0\": 1, \"transparent\": 1, \"fixed\": 1 },\n \"background-image\": { \"url('/$0')\": 1 },\n \"background-repeat\": { \"repeat\": 1, \"repeat-x\": 1, \"repeat-y\": 1, \"no-repeat\": 1, \"inherit\": 1 },\n \"background-position\": { \"bottom\": 2, \"center\": 2, \"left\": 2, \"right\": 2, \"top\": 2, \"inherit\": 2 },\n \"background-attachment\": { \"scroll\": 1, \"fixed\": 1 },\n \"background-size\": { \"cover\": 1, \"contain\": 1 },\n \"background-clip\": { \"border-box\": 1, \"padding-box\": 1, \"content-box\": 1 },\n \"background-origin\": { \"border-box\": 1, \"padding-box\": 1, \"content-box\": 1 },\n \"border\": { \"solid $0\": 1, \"dashed $0\": 1, \"dotted $0\": 1, \"#$0\": 1 },\n \"border-color\": { \"#$0\": 1 },\n \"border-style\": { \"solid\": 2, \"dashed\": 2, \"dotted\": 2, \"double\": 2, \"groove\": 2, \"hidden\": 2, \"inherit\": 2, \"inset\": 2, \"none\": 2, \"outset\": 2, \"ridged\": 2 },\n \"border-collapse\": { \"collapse\": 1, \"separate\": 1 },\n \"bottom\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"clear\": { \"left\": 1, \"right\": 1, \"both\": 1, \"none\": 1 },\n \"color\": { \"#$0\": 1, \"rgb(#$00,0,0)\": 1 },\n \"cursor\": { \"default\": 1, \"pointer\": 1, \"move\": 1, \"text\": 1, \"wait\": 1, \"help\": 1, \"progress\": 1, \"n-resize\": 1, \"ne-resize\": 1, \"e-resize\": 1, \"se-resize\": 1, \"s-resize\": 1, \"sw-resize\": 1, \"w-resize\": 1, \"nw-resize\": 1 },\n \"display\": { \"none\": 1, \"block\": 1, \"inline\": 1, \"inline-block\": 1, \"table-cell\": 1 },\n \"empty-cells\": { \"show\": 1, \"hide\": 1 },\n \"float\": { \"left\": 1, \"right\": 1, \"none\": 1 },\n \"font-family\": { \"Arial\": 2, \"Comic Sans MS\": 2, \"Consolas\": 2, \"Courier New\": 2, \"Courier\": 2, \"Georgia\": 2, \"Monospace\": 2, \"Sans-Serif\": 2, \"Segoe UI\": 2, \"Tahoma\": 2, \"Times New Roman\": 2, \"Trebuchet MS\": 2, \"Verdana\": 1 },\n \"font-size\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"font-weight\": { \"bold\": 1, \"normal\": 1 },\n \"font-style\": { \"italic\": 1, \"normal\": 1 },\n \"font-variant\": { \"normal\": 1, \"small-caps\": 1 },\n \"height\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"left\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"letter-spacing\": { \"normal\": 1 },\n \"line-height\": { \"normal\": 1 },\n \"list-style-type\": { \"none\": 1, \"disc\": 1, \"circle\": 1, \"square\": 1, \"decimal\": 1, \"decimal-leading-zero\": 1, \"lower-roman\": 1, \"upper-roman\": 1, \"lower-greek\": 1, \"lower-latin\": 1, \"upper-latin\": 1, \"georgian\": 1, \"lower-alpha\": 1, \"upper-alpha\": 1 },\n \"margin\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-right\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-left\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-top\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"margin-bottom\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"max-height\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"max-width\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"min-height\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"min-width\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"overflow\": { \"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1 },\n \"overflow-x\": { \"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1 },\n \"overflow-y\": { \"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1 },\n \"padding\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-top\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-right\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-bottom\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"padding-left\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"page-break-after\": { \"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1 },\n \"page-break-before\": { \"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1 },\n \"position\": { \"absolute\": 1, \"relative\": 1, \"fixed\": 1, \"static\": 1 },\n \"right\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"table-layout\": { \"fixed\": 1, \"auto\": 1 },\n \"text-decoration\": { \"none\": 1, \"underline\": 1, \"line-through\": 1, \"blink\": 1 },\n \"text-align\": { \"left\": 1, \"right\": 1, \"center\": 1, \"justify\": 1 },\n \"text-transform\": { \"capitalize\": 1, \"uppercase\": 1, \"lowercase\": 1, \"none\": 1 },\n \"top\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"vertical-align\": { \"top\": 1, \"bottom\": 1 },\n \"visibility\": { \"hidden\": 1, \"visible\": 1 },\n \"white-space\": { \"nowrap\": 1, \"normal\": 1, \"pre\": 1, \"pre-line\": 1, \"pre-wrap\": 1 },\n \"width\": { \"px\": 1, \"em\": 1, \"%\": 1 },\n \"word-spacing\": { \"normal\": 1 },\n \"filter\": { \"alpha(opacity=$0100)\": 1 },\n \"text-shadow\": { \"$02px 2px 2px #777\": 1 },\n \"text-overflow\": { \"ellipsis-word\": 1, \"clip\": 1, \"ellipsis\": 1 },\n \"-moz-border-radius\": 1,\n \"-moz-border-radius-topright\": 1,\n \"-moz-border-radius-bottomright\": 1,\n \"-moz-border-radius-topleft\": 1,\n \"-moz-border-radius-bottomleft\": 1,\n \"-webkit-border-radius\": 1,\n \"-webkit-border-top-right-radius\": 1,\n \"-webkit-border-top-left-radius\": 1,\n \"-webkit-border-bottom-right-radius\": 1,\n \"-webkit-border-bottom-left-radius\": 1,\n \"-moz-box-shadow\": 1,\n \"-webkit-box-shadow\": 1,\n \"transform\": { \"rotate($00deg)\": 1, \"skew($00deg)\": 1 },\n \"-moz-transform\": { \"rotate($00deg)\": 1, \"skew($00deg)\": 1 },\n \"-webkit-transform\": { \"rotate($00deg)\": 1, \"skew($00deg)\": 1 }\n};\nvar CssCompletions = function () {\n};\n(function () {\n this.completionsDefined = false;\n this.defineCompletions = function () {\n if (document) {\n var style = document.createElement('c').style;\n for (var i in style) {\n if (typeof style[i] !== 'string')\n continue;\n var name = i.replace(/[A-Z]/g, function (x) {\n return '-' + x.toLowerCase();\n });\n if (!propertyMap.hasOwnProperty(name))\n propertyMap[name] = 1;\n }\n }\n this.completionsDefined = true;\n };\n this.getCompletions = function (state, session, pos, prefix) {\n if (!this.completionsDefined) {\n this.defineCompletions();\n }\n if (state === 'ruleset' || session.$mode.$id == \"ace/mode/scss\") {\n var line = session.getLine(pos.row).substr(0, pos.column);\n var inParens = /\\([^)]*$/.test(line);\n if (inParens) {\n line = line.substr(line.lastIndexOf('(') + 1);\n }\n if (/:[^;]+$/.test(line)) {\n /([\\w\\-]+):[^:]*$/.test(line);\n return this.getPropertyValueCompletions(state, session, pos, prefix);\n }\n else {\n return this.getPropertyCompletions(state, session, pos, prefix, inParens);\n }\n }\n return [];\n };\n this.getPropertyCompletions = function (state, session, pos, prefix, skipSemicolon) {\n skipSemicolon = skipSemicolon || false;\n var properties = Object.keys(propertyMap);\n return properties.map(function (property) {\n return {\n caption: property,\n snippet: property + ': $0' + (skipSemicolon ? '' : ';'),\n meta: \"property\",\n score: 1000000\n };\n });\n };\n this.getPropertyValueCompletions = function (state, session, pos, prefix) {\n var line = session.getLine(pos.row).substr(0, pos.column);\n var property = (/([\\w\\-]+):[^:]*$/.exec(line) || {})[1];\n if (!property)\n return [];\n var values = [];\n if (property in propertyMap && typeof propertyMap[property] === \"object\") {\n values = Object.keys(propertyMap[property]);\n }\n return values.map(function (value) {\n return {\n caption: value,\n snippet: value,\n meta: \"property value\",\n score: 1000000\n };\n });\n };\n}).call(CssCompletions.prototype);\nexports.CssCompletions = CssCompletions;\n\n});\n\nace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar CstyleBehaviour = require(\"./cstyle\").CstyleBehaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar CssBehaviour = function () {\n this.inherit(CstyleBehaviour);\n this.add(\"colon\", \"insertion\", function (state, action, editor, session, text) {\n if (text === ':' && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (token && token.value.match(/\\s+/)) {\n token = iterator.stepBackward();\n }\n if (token && token.type === 'support.type') {\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === ':') {\n return {\n text: '',\n selection: [1, 1]\n };\n }\n if (/^(\\s+[^;]|\\s*$)/.test(line.substring(cursor.column))) {\n return {\n text: ':;',\n selection: [1, 1]\n };\n }\n }\n }\n });\n this.add(\"colon\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected === ':') {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (token && token.value.match(/\\s+/)) {\n token = iterator.stepBackward();\n }\n if (token && token.type === 'support.type') {\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.end.column, range.end.column + 1);\n if (rightChar === ';') {\n range.end.column++;\n return range;\n }\n }\n }\n });\n this.add(\"semicolon\", \"insertion\", function (state, action, editor, session, text) {\n if (text === ';' && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === ';') {\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n });\n this.add(\"!important\", \"insertion\", function (state, action, editor, session, text) {\n if (text === '!' && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (/^\\s*(;|}|$)/.test(line.substring(cursor.column))) {\n return {\n text: '!important',\n selection: [10, 10]\n };\n }\n }\n });\n};\noop.inherits(CssBehaviour, CstyleBehaviour);\nexports.CssBehaviour = CssBehaviour;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CssCompletions = require(\"./css_completions\").CssCompletions;\nvar CssBehaviour = require(\"./behaviour/css\").CssBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar Mode = function () {\n this.HighlightRules = CssHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CssBehaviour();\n this.$completer = new CssCompletions();\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.foldingRules = \"cStyle\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokens = this.getTokenizer().getLineTokens(line, state).tokens;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n var match = line.match(/^.*\\{\\s*$/);\n if (match) {\n indent += tab;\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.getCompletions = function (state, session, pos, prefix) {\n return this.$completer.getCompletions(state, session, pos, prefix);\n };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/css_worker\", \"Worker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"annotate\", function (e) {\n session.setAnnotations(e.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/css\";\n this.snippetFileId = \"ace/snippets/css\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/css\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar DocCommentHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: \"comment.doc.tag\",\n regex: \"@\\\\w+(?=\\\\s|$)\"\n }, DocCommentHighlightRules.getTagRule(), {\n defaultToken: \"comment.doc\",\n caseInsensitive: true\n }\n ]\n };\n};\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\nDocCommentHighlightRules.getTagRule = function (start) {\n return {\n token: \"comment.doc.tag.storage.type\",\n regex: \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n};\nDocCommentHighlightRules.getStartRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\/\\\\*(?=\\\\*)\",\n next: start\n };\n};\nDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\*\\\\/\",\n next: start\n };\n};\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/golang_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar GolangHighlightRules = function () {\n var keywords = (\"else|break|case|return|goto|if|const|select|\" +\n \"continue|struct|default|switch|for|range|\" +\n \"func|import|package|chan|defer|fallthrough|go|interface|map|range|\" +\n \"select|type|var\");\n var builtinTypes = (\"string|uint8|uint16|uint32|uint64|int8|int16|int32|int64|float32|\" +\n \"float64|complex64|complex128|byte|rune|uint|int|uintptr|bool|error\");\n var builtinFunctions = (\"new|close|cap|copy|panic|panicln|print|println|len|make|delete|real|recover|imag|append\");\n var builtinConstants = (\"nil|true|false|iota\");\n var keywordMapper = this.createKeywordMapper({\n \"keyword\": keywords,\n \"constant.language\": builtinConstants,\n \"support.function\": builtinFunctions,\n \"support.type\": builtinTypes\n }, \"\");\n var stringEscapeRe = \"\\\\\\\\(?:[0-7]{3}|x\\\\h{2}|u{4}|U\\\\h{6}|[abfnrtv'\\\"\\\\\\\\])\".replace(/\\\\h/g, \"[a-fA-F\\\\d]\");\n this.$rules = {\n \"start\": [\n {\n token: \"comment\",\n regex: \"\\\\/\\\\/.*$\"\n },\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n {\n token: \"comment.start\",\n regex: \"\\\\/\\\\*\",\n next: \"comment\"\n }, {\n token: \"string\",\n regex: /\"(?:[^\"\\\\]|\\\\.)*?\"/\n }, {\n token: \"string\",\n regex: '`',\n next: \"bqstring\"\n }, {\n token: \"constant.numeric\",\n regex: \"'(?:[^\\\\'\\uD800-\\uDBFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|\" + stringEscapeRe.replace('\"', '') + \")'\"\n }, {\n token: \"constant.numeric\",\n regex: \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token: [\"keyword\", \"text\", \"entity.name.function\"],\n regex: \"(func)(\\\\s+)([a-zA-Z_$][a-zA-Z0-9_$]*)\\\\b\"\n }, {\n token: function (val) {\n if (val[val.length - 1] == \"(\") {\n return [{\n type: keywordMapper(val.slice(0, -1)) || \"support.function\",\n value: val.slice(0, -1)\n }, {\n type: \"paren.lparen\",\n value: val.slice(-1)\n }];\n }\n return keywordMapper(val) || \"identifier\";\n },\n regex: \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\\\\(?\"\n }, {\n token: \"keyword.operator\",\n regex: \"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=\"\n }, {\n token: \"punctuation.operator\",\n regex: \"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"\n }, {\n token: \"paren.lparen\",\n regex: \"[[({]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\])}]\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }\n ],\n \"comment\": [\n {\n token: \"comment.end\",\n regex: \"\\\\*\\\\/\",\n next: \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ],\n \"bqstring\": [\n {\n token: \"string\",\n regex: '`',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }\n ]\n };\n this.embedRules(DocCommentHighlightRules, \"doc-\", [DocCommentHighlightRules.getEndRule(\"start\")]);\n};\noop.inherits(GolangHighlightRules, TextHighlightRules);\nexports.GolangHighlightRules = GolangHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/golang\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/golang_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar GolangHighlightRules = require(\"./golang_highlight_rules\").GolangHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar Mode = function () {\n this.HighlightRules = GolangHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.foldingRules = new CStyleFoldMode();\n this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n var endState = tokenizedLine.state;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n }; //end getNextLineIndent\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.$id = \"ace/mode/golang\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/golang\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/jsdoc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar JsDocCommentHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: [\"comment.doc.tag\", \"comment.doc.text\", \"lparen.doc\"],\n regex: \"(@(?:param|member|typedef|property|namespace|var|const|callback))(\\\\s*)({)\",\n push: [\n {\n token: \"lparen.doc\",\n regex: \"{\",\n push: [\n {\n include: \"doc-syntax\"\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }\n ]\n }, {\n token: [\"rparen.doc\", \"text.doc\", \"variable.parameter.doc\", \"lparen.doc\", \"variable.parameter.doc\", \"rparen.doc\"],\n regex: /(})(\\s*)(?:([\\w=:\\/\\.]+)|(?:(\\[)([\\w=:\\/\\.]+)(\\])))/,\n next: \"pop\"\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }, {\n include: \"doc-syntax\"\n }, {\n defaultToken: \"text.doc\"\n }\n ]\n }, {\n token: [\"comment.doc.tag\", \"text.doc\", \"lparen.doc\"],\n regex: \"(@(?:returns?|yields|type|this|suppress|public|protected|private|package|modifies|\"\n + \"implements|external|exception|throws|enum|define|extends))(\\\\s*)({)\",\n push: [\n {\n token: \"lparen.doc\",\n regex: \"{\",\n push: [\n {\n include: \"doc-syntax\"\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }\n ]\n }, {\n token: \"rparen.doc\",\n regex: \"}|(?=$)\",\n next: \"pop\"\n }, {\n include: \"doc-syntax\"\n }, {\n defaultToken: \"text.doc\"\n }\n ]\n }, {\n token: [\"comment.doc.tag\", \"text.doc\", \"variable.parameter.doc\"],\n regex: \"(@(?:alias|memberof|instance|module|name|lends|namespace|external|this|template|\"\n + \"requires|param|implements|function|extends|typedef|mixes|constructor|var|\"\n + \"memberof\\\\!|event|listens|exports|class|constructs|interface|emits|fires|\"\n + \"throws|const|callback|borrows|augments))(\\\\s+)(\\\\w[\\\\w#\\.:\\/~\\\"\\\\-]*)?\"\n }, {\n token: [\"comment.doc.tag\", \"text.doc\", \"variable.parameter.doc\"],\n regex: \"(@method)(\\\\s+)(\\\\w[\\\\w\\.\\\\(\\\\)]*)\"\n }, {\n token: \"comment.doc.tag\",\n regex: \"@access\\\\s+(?:private|public|protected)\"\n }, {\n token: \"comment.doc.tag\",\n regex: \"@kind\\\\s+(?:class|constant|event|external|file|function|member|mixin|module|namespace|typedef)\"\n }, {\n token: \"comment.doc.tag\",\n regex: \"@\\\\w+(?=\\\\s|$)\"\n },\n JsDocCommentHighlightRules.getTagRule(),\n {\n defaultToken: \"comment.doc\",\n caseInsensitive: true\n }\n ],\n \"doc-syntax\": [{\n token: \"operator.doc\",\n regex: /[|:]/\n }, {\n token: \"paren.doc\",\n regex: /[\\[\\]]/\n }]\n };\n this.normalizeRules();\n};\noop.inherits(JsDocCommentHighlightRules, TextHighlightRules);\nJsDocCommentHighlightRules.getTagRule = function (start) {\n return {\n token: \"comment.doc.tag.storage.type\",\n regex: \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n};\nJsDocCommentHighlightRules.getStartRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\/\\\\*(?=\\\\*)\",\n next: start\n };\n};\nJsDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\*\\\\/\",\n next: start\n };\n};\nexports.JsDocCommentHighlightRules = JsDocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/jsdoc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./jsdoc_comment_highlight_rules\").JsDocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\nvar JavaScriptHighlightRules = function (options) {\n var keywordMapper = this.createKeywordMapper({\n \"variable.language\": \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Symbol|\" + // Constructors\n \"Namespace|QName|XML|XMLList|\" + // E4X\n \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\" +\n \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\" +\n \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\" + // Errors\n \"SyntaxError|TypeError|URIError|\" +\n \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n \"isNaN|parseFloat|parseInt|\" +\n \"JSON|Math|\" + // Other\n \"this|arguments|prototype|window|document\",\n \"keyword\": \"const|yield|import|get|set|async|await|\" +\n \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static|constructor\",\n \"storage.type\": \"const|let|var|function\",\n \"constant.language\": \"null|Infinity|NaN|undefined\",\n \"support.function\": \"alert\",\n \"constant.language.boolean\": \"true|false\"\n }, \"identifier\");\n var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n \"u[0-9a-fA-F]{4}|\" + // unicode\n \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n \"[0-2][0-7]{0,2}|\" + // oct\n \"3[0-7][0-7]?|\" + // oct\n \"[4-7][0-7]?|\" + //oct\n \".)\";\n this.$rules = {\n \"no_regex\": [\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n comments(\"no_regex\"),\n {\n token: \"string\",\n regex: \"'(?=.)\",\n next: \"qstring\"\n }, {\n token: \"string\",\n regex: '\"(?=.)',\n next: \"qqstring\"\n }, {\n token: \"constant.numeric\",\n regex: /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/\n }, {\n token: \"constant.numeric\",\n regex: /(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"support.function\",\n \"punctuation.operator\", \"entity.name.function\", \"text\", \"keyword.operator\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)\",\n next: \"function_arguments\"\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\",\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex: \"(function\\\\*?)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"entity.name.function\", \"text\", \"punctuation.operator\",\n \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: [\n \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex: \"(:)(\\\\s*)(function\\\\*?)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: \"keyword\",\n regex: \"from(?=\\\\s*('|\\\"))\"\n }, {\n token: \"keyword\",\n regex: \"(?:\" + kwBeforeRe + \")\\\\b\",\n next: \"start\"\n }, {\n token: \"support.constant\",\n regex: /that\\b/\n }, {\n token: [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n regex: /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n }, {\n token: keywordMapper,\n regex: identifierRe\n }, {\n token: \"punctuation.operator\",\n regex: /[.](?![.])/,\n next: \"property\"\n }, {\n token: \"storage.type\",\n regex: /=>/,\n next: \"start\"\n }, {\n token: \"keyword.operator\",\n regex: /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n next: \"start\"\n }, {\n token: \"punctuation.operator\",\n regex: /[?:,;.]/,\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: /[\\[({]/,\n next: \"start\"\n }, {\n token: \"paren.rparen\",\n regex: /[\\])}]/\n }, {\n token: \"comment\",\n regex: /^#!.*$/\n }\n ],\n property: [{\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n token: [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\",\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex: \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe + \")(\\\\s*)(=)(\\\\s*)(function\\\\*?)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token: \"punctuation.operator\",\n regex: /[.](?![.])/\n }, {\n token: \"support.function\",\n regex: /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|lter|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward|rEach)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n }, {\n token: \"support.function.dom\",\n regex: /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n }, {\n token: \"support.constant\",\n regex: /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n }, {\n token: \"identifier\",\n regex: identifierRe\n }, {\n regex: \"\",\n token: \"empty\",\n next: \"no_regex\"\n }\n ],\n \"start\": [\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n comments(\"start\"),\n {\n token: \"string.regexp\",\n regex: \"\\\\/\",\n next: \"regex\"\n }, {\n token: \"text\",\n regex: \"\\\\s+|^$\",\n next: \"start\"\n }, {\n token: \"empty\",\n regex: \"\",\n next: \"no_regex\"\n }\n ],\n \"regex\": [\n {\n token: \"regexp.keyword.operator\",\n regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n }, {\n token: \"string.regexp\",\n regex: \"/[sxngimy]*\",\n next: \"no_regex\"\n }, {\n token: \"invalid\",\n regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n }, {\n token: \"constant.language.escape\",\n regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n }, {\n token: \"constant.language.delimiter\",\n regex: /\\|/\n }, {\n token: \"constant.language.escape\",\n regex: /\\[\\^?/,\n next: \"regex_character_class\"\n }, {\n token: \"empty\",\n regex: \"$\",\n next: \"no_regex\"\n }, {\n defaultToken: \"string.regexp\"\n }\n ],\n \"regex_character_class\": [\n {\n token: \"regexp.charclass.keyword.operator\",\n regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n }, {\n token: \"constant.language.escape\",\n regex: \"]\",\n next: \"regex\"\n }, {\n token: \"constant.language.escape\",\n regex: \"-\"\n }, {\n token: \"empty\",\n regex: \"$\",\n next: \"no_regex\"\n }, {\n defaultToken: \"string.regexp.charachterclass\"\n }\n ],\n \"default_parameter\": [\n {\n token: \"string\",\n regex: \"'(?=.)\",\n push: [\n {\n token: \"string\",\n regex: \"'|$\",\n next: \"pop\"\n }, {\n include: \"qstring\"\n }\n ]\n }, {\n token: \"string\",\n regex: '\"(?=.)',\n push: [\n {\n token: \"string\",\n regex: '\"|$',\n next: \"pop\"\n }, {\n include: \"qqstring\"\n }\n ]\n }, {\n token: \"constant.language\",\n regex: \"null|Infinity|NaN|undefined\"\n }, {\n token: \"constant.numeric\",\n regex: /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/\n }, {\n token: \"constant.numeric\",\n regex: /(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/\n }, {\n token: \"punctuation.operator\",\n regex: \",\",\n next: \"function_arguments\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n token: \"punctuation.operator\",\n regex: \"$\"\n }, {\n token: \"empty\",\n regex: \"\",\n next: \"no_regex\"\n }\n ],\n \"function_arguments\": [\n comments(\"function_arguments\"),\n {\n token: \"variable.parameter\",\n regex: identifierRe\n }, {\n token: \"punctuation.operator\",\n regex: \",\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n token: \"punctuation.operator\",\n regex: \"$\"\n }, {\n token: \"empty\",\n regex: \"\",\n next: \"no_regex\"\n }\n ],\n \"qqstring\": [\n {\n token: \"constant.language.escape\",\n regex: escapedRe\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n consumeLineEnd: true\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"no_regex\"\n }, {\n defaultToken: \"string\"\n }\n ],\n \"qstring\": [\n {\n token: \"constant.language.escape\",\n regex: escapedRe\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n consumeLineEnd: true\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"no_regex\"\n }, {\n defaultToken: \"string\"\n }\n ]\n };\n if (!options || !options.noES6) {\n this.$rules.no_regex.unshift({\n regex: \"[{}]\", onMatch: function (val, state, stack) {\n this.next = val == \"{\" ? this.nextState : \"\";\n if (val == \"{\" && stack.length) {\n stack.unshift(\"start\", state);\n }\n else if (val == \"}\" && stack.length) {\n stack.shift();\n this.next = stack.shift();\n if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n return \"paren.quasi.end\";\n }\n return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n },\n nextState: \"start\"\n }, {\n token: \"string.quasi.start\",\n regex: /`/,\n push: [{\n token: \"constant.language.escape\",\n regex: escapedRe\n }, {\n token: \"paren.quasi.start\",\n regex: /\\${/,\n push: \"start\"\n }, {\n token: \"string.quasi.end\",\n regex: /`/,\n next: \"pop\"\n }, {\n defaultToken: \"string.quasi\"\n }]\n }, {\n token: [\"variable.parameter\", \"text\"],\n regex: \"(\" + identifierRe + \")(\\\\s*)(?=\\\\=>)\"\n }, {\n token: \"paren.lparen\",\n regex: \"(\\\\()(?=.+\\\\s*=>)\",\n next: \"function_arguments\"\n }, {\n token: \"variable.language\",\n regex: \"(?:(?:(?:Weak)?(?:Set|Map))|Promise)\\\\b\"\n });\n this.$rules[\"function_arguments\"].unshift({\n token: \"keyword.operator\",\n regex: \"=\",\n next: \"default_parameter\"\n }, {\n token: \"keyword.operator\",\n regex: \"\\\\.{3}\"\n });\n this.$rules[\"property\"].unshift({\n token: \"support.function\",\n regex: \"(findIndex|repeat|startsWith|endsWith|includes|isSafeInteger|trunc|cbrt|log2|log10|sign|then|catch|\"\n + \"finally|resolve|reject|race|any|all|allSettled|keys|entries|isInteger)\\\\b(?=\\\\()\"\n }, {\n token: \"constant.language\",\n regex: \"(?:MAX_SAFE_INTEGER|MIN_SAFE_INTEGER|EPSILON)\\\\b\"\n });\n if (!options || options.jsx != false)\n JSX.call(this);\n }\n this.embedRules(DocCommentHighlightRules, \"doc-\", [DocCommentHighlightRules.getEndRule(\"no_regex\")]);\n this.normalizeRules();\n};\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\nfunction JSX() {\n var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n var jsxTag = {\n onMatch: function (val, state, stack) {\n var offset = val.charAt(1) == \"/\" ? 2 : 1;\n if (offset == 1) {\n if (state != this.nextState)\n stack.unshift(this.next, this.nextState, 0);\n else\n stack.unshift(this.next);\n stack[2]++;\n }\n else if (offset == 2) {\n if (state == this.nextState) {\n stack[1]--;\n if (!stack[1] || stack[1] < 0) {\n stack.shift();\n stack.shift();\n }\n }\n }\n return [{\n type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n value: val.slice(0, offset)\n }, {\n type: \"meta.tag.tag-name.xml\",\n value: val.substr(offset)\n }];\n },\n regex: \"\",\n onMatch: function (value, currentState, stack) {\n if (currentState == stack[0])\n stack.shift();\n if (value.length == 2) {\n if (stack[0] == this.nextState)\n stack[1]--;\n if (!stack[1] || stack[1] < 0) {\n stack.splice(0, 2);\n }\n }\n this.next = stack[0] || \"start\";\n return [{ type: this.token, value: value }];\n },\n nextState: \"jsx\"\n },\n jsxJsRule,\n comments(\"jsxAttributes\"),\n {\n token: \"entity.other.attribute-name.xml\",\n regex: tagRegex\n }, {\n token: \"keyword.operator.attribute-equals.xml\",\n regex: \"=\"\n }, {\n token: \"text.tag-whitespace.xml\",\n regex: \"\\\\s+\"\n }, {\n token: \"string.attribute-value.xml\",\n regex: \"'\",\n stateName: \"jsx_attr_q\",\n push: [\n { token: \"string.attribute-value.xml\", regex: \"'\", next: \"pop\" },\n { include: \"reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n }, {\n token: \"string.attribute-value.xml\",\n regex: '\"',\n stateName: \"jsx_attr_qq\",\n push: [\n { token: \"string.attribute-value.xml\", regex: '\"', next: \"pop\" },\n { include: \"reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n },\n jsxTag\n ];\n this.$rules.reference = [{\n token: \"constant.language.escape.reference.xml\",\n regex: \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }];\n}\nfunction comments(next) {\n return [\n {\n token: \"comment\",\n regex: /\\/\\*/,\n next: [\n DocCommentHighlightRules.getTagRule(),\n { token: \"comment\", regex: \"\\\\*\\\\/\", next: next || \"pop\" },\n { defaultToken: \"comment\", caseInsensitive: true }\n ]\n }, {\n token: \"comment\",\n regex: \"\\\\/\\\\/\",\n next: [\n DocCommentHighlightRules.getTagRule(),\n { token: \"comment\", regex: \"$|^\", next: next || \"pop\" },\n { defaultToken: \"comment\", caseInsensitive: true }\n ]\n }\n ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar Mode = function () {\n this.HighlightRules = JavaScriptHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CstyleBehaviour();\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.$quotes = { '\"': '\"', \"'\": \"'\", \"`\": \"`\" };\n this.$pairQuotesAfter = {\n \"`\": /\\w/\n };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n var endState = tokenizedLine.state;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\" || state == \"no_regex\") {\n var match = line.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n else if (state == \"doc-start\") {\n if (endState == \"start\" || endState == \"no_regex\") {\n return \"\";\n }\n var match = line.match(/^\\s*(\\/?)\\*/);\n if (match) {\n if (match[1]) {\n indent += \" \";\n }\n indent += \"* \";\n }\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/javascript_worker\", \"JavaScriptWorker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"annotate\", function (results) {\n session.setAnnotations(results.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/javascript\";\n this.snippetFileId = \"ace/snippets/javascript\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/javascript\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/json_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar JsonHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: \"variable\",\n regex: '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]\\\\s*(?=:)'\n }, {\n token: \"string\",\n regex: '\"',\n next: \"string\"\n }, {\n token: \"constant.numeric\",\n regex: \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token: \"constant.language.boolean\",\n regex: \"(?:true|false)\\\\b\"\n }, {\n token: \"text\",\n regex: \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n }, {\n token: \"comment\",\n regex: \"\\\\/\\\\/.*$\"\n }, {\n token: \"comment.start\",\n regex: \"\\\\/\\\\*\",\n next: \"comment\"\n }, {\n token: \"paren.lparen\",\n regex: \"[[({]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\])}]\"\n }, {\n token: \"punctuation.operator\",\n regex: /[,]/\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }\n ],\n \"string\": [\n {\n token: \"constant.language.escape\",\n regex: /\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[\"\\\\\\/bfnrt])/\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }\n ],\n \"comment\": [\n {\n token: \"comment.end\",\n regex: \"\\\\*\\\\/\",\n next: \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ]\n };\n};\noop.inherits(JsonHighlightRules, TextHighlightRules);\nexports.JsonHighlightRules = JsonHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/json\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/json_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\",\"ace/worker/worker_client\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar HighlightRules = require(\"./json_highlight_rules\").JsonHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar Mode = function () {\n this.HighlightRules = HighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = this.$defaultBehaviour;\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/json_worker\", \"JsonWorker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"annotate\", function (e) {\n session.setAnnotations(e.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/json\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/json\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar DocCommentHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: \"comment.doc.tag\",\n regex: \"@\\\\w+(?=\\\\s|$)\"\n }, DocCommentHighlightRules.getTagRule(), {\n defaultToken: \"comment.doc\",\n caseInsensitive: true\n }\n ]\n };\n};\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\nDocCommentHighlightRules.getTagRule = function (start) {\n return {\n token: \"comment.doc.tag.storage.type\",\n regex: \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n};\nDocCommentHighlightRules.getStartRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\/\\\\*(?=\\\\*)\",\n next: start\n };\n};\nDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\*\\\\/\",\n next: start\n };\n};\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/jsx_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar JsxHighlightRules = function () {\n var keywords = lang.arrayToMap((\"break|do|instanceof|typeof|case|else|new|var|catch|finally|return|void|continue|for|switch|default|while|function|this|\" +\n \"if|throw|\" +\n \"delete|in|try|\" +\n \"class|extends|super|import|from|into|implements|interface|static|mixin|override|abstract|final|\" +\n \"number|int|string|boolean|variant|\" +\n \"log|assert\").split(\"|\"));\n var buildinConstants = lang.arrayToMap((\"null|true|false|NaN|Infinity|__FILE__|__LINE__|undefined\").split(\"|\"));\n var reserved = lang.arrayToMap((\"debugger|with|\" +\n \"const|export|\" +\n \"let|private|public|yield|protected|\" +\n \"extern|native|as|operator|__fake__|__readonly__\").split(\"|\"));\n var identifierRe = \"[a-zA-Z_][a-zA-Z0-9_]*\\\\b\";\n this.$rules = {\n \"start\": [\n {\n token: \"comment\",\n regex: \"\\\\/\\\\/.*$\"\n },\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n {\n token: \"comment\",\n regex: \"\\\\/\\\\*\",\n next: \"comment\"\n }, {\n token: \"string.regexp\",\n regex: \"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"\n }, {\n token: \"string\",\n regex: '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n }, {\n token: \"string\",\n regex: \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n }, {\n token: \"constant.numeric\",\n regex: \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token: \"constant.language.boolean\",\n regex: \"(?:true|false)\\\\b\"\n }, {\n token: [\n \"storage.type\",\n \"text\",\n \"entity.name.function\"\n ],\n regex: \"(function)(\\\\s+)(\" + identifierRe + \")\"\n }, {\n token: function (value) {\n if (value == \"this\")\n return \"variable.language\";\n else if (value == \"function\")\n return \"storage.type\";\n else if (keywords.hasOwnProperty(value) || reserved.hasOwnProperty(value))\n return \"keyword\";\n else if (buildinConstants.hasOwnProperty(value))\n return \"constant.language\";\n else if (/^_?[A-Z][a-zA-Z0-9_]*$/.test(value))\n return \"language.support.class\";\n else\n return \"identifier\";\n },\n regex: identifierRe\n }, {\n token: \"keyword.operator\",\n regex: \"!|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"\n }, {\n token: \"punctuation.operator\",\n regex: \"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"\n }, {\n token: \"paren.lparen\",\n regex: \"[[({<]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\])}>]\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }\n ],\n \"comment\": [\n {\n token: \"comment\",\n regex: \"\\\\*\\\\/\",\n next: \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ]\n };\n this.embedRules(DocCommentHighlightRules, \"doc-\", [DocCommentHighlightRules.getEndRule(\"start\")]);\n};\noop.inherits(JsxHighlightRules, TextHighlightRules);\nexports.JsxHighlightRules = JsxHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/jsx\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/jsx_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JsxHighlightRules = require(\"./jsx_highlight_rules\").JsxHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nfunction Mode() {\n this.HighlightRules = JsxHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = this.$defaultBehaviour;\n this.foldingRules = new CStyleFoldMode();\n}\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.$id = \"ace/mode/jsx\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/jsx\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/python_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){/*\n * TODO: python delimiters\n */\n\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar PythonHighlightRules = function () {\n var keywords = (\"and|as|assert|break|class|continue|def|del|elif|else|except|exec|\" +\n \"finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|\" +\n \"raise|return|try|while|with|yield|async|await|nonlocal\");\n var builtinConstants = (\"True|False|None|NotImplemented|Ellipsis|__debug__\");\n var builtinFunctions = (\"abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|\" +\n \"eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|\" +\n \"binfile|bin|iter|property|tuple|bool|filter|len|range|type|bytearray|\" +\n \"float|list|raw_input|unichr|callable|format|locals|reduce|unicode|\" +\n \"chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|\" +\n \"cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|\" +\n \"__import__|complex|hash|min|apply|delattr|help|next|setattr|set|\" +\n \"buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern|\" +\n \"ascii|breakpoint|bytes\");\n var keywordMapper = this.createKeywordMapper({\n \"invalid.deprecated\": \"debugger\",\n \"support.function\": builtinFunctions,\n \"variable.language\": \"self|cls\",\n \"constant.language\": builtinConstants,\n \"keyword\": keywords\n }, \"identifier\");\n var strPre = \"[uU]?\";\n var strRawPre = \"[rR]\";\n var strFormatPre = \"[fF]\";\n var strRawFormatPre = \"(?:[rR][fF]|[fF][rR])\";\n var decimalInteger = \"(?:(?:[1-9]\\\\d*)|(?:0))\";\n var octInteger = \"(?:0[oO]?[0-7]+)\";\n var hexInteger = \"(?:0[xX][\\\\dA-Fa-f]+)\";\n var binInteger = \"(?:0[bB][01]+)\";\n var integer = \"(?:\" + decimalInteger + \"|\" + octInteger + \"|\" + hexInteger + \"|\" + binInteger + \")\";\n var exponent = \"(?:[eE][+-]?\\\\d+)\";\n var fraction = \"(?:\\\\.\\\\d+)\";\n var intPart = \"(?:\\\\d+)\";\n var pointFloat = \"(?:(?:\" + intPart + \"?\" + fraction + \")|(?:\" + intPart + \"\\\\.))\";\n var exponentFloat = \"(?:(?:\" + pointFloat + \"|\" + intPart + \")\" + exponent + \")\";\n var floatNumber = \"(?:\" + exponentFloat + \"|\" + pointFloat + \")\";\n var stringEscape = \"\\\\\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\\\\\abfnrtv'\\\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})\";\n this.$rules = {\n \"start\": [{\n token: \"comment\",\n regex: \"#.*$\"\n }, {\n token: \"string\",\n regex: strPre + '\"{3}',\n next: \"qqstring3\"\n }, {\n token: \"string\",\n regex: strPre + '\"(?=.)',\n next: \"qqstring\"\n }, {\n token: \"string\",\n regex: strPre + \"'{3}\",\n next: \"qstring3\"\n }, {\n token: \"string\",\n regex: strPre + \"'(?=.)\",\n next: \"qstring\"\n }, {\n token: \"string\",\n regex: strRawPre + '\"{3}',\n next: \"rawqqstring3\"\n }, {\n token: \"string\",\n regex: strRawPre + '\"(?=.)',\n next: \"rawqqstring\"\n }, {\n token: \"string\",\n regex: strRawPre + \"'{3}\",\n next: \"rawqstring3\"\n }, {\n token: \"string\",\n regex: strRawPre + \"'(?=.)\",\n next: \"rawqstring\"\n }, {\n token: \"string\",\n regex: strFormatPre + '\"{3}',\n next: \"fqqstring3\"\n }, {\n token: \"string\",\n regex: strFormatPre + '\"(?=.)',\n next: \"fqqstring\"\n }, {\n token: \"string\",\n regex: strFormatPre + \"'{3}\",\n next: \"fqstring3\"\n }, {\n token: \"string\",\n regex: strFormatPre + \"'(?=.)\",\n next: \"fqstring\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + '\"{3}',\n next: \"rfqqstring3\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + '\"(?=.)',\n next: \"rfqqstring\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + \"'{3}\",\n next: \"rfqstring3\"\n }, {\n token: \"string\",\n regex: strRawFormatPre + \"'(?=.)\",\n next: \"rfqstring\"\n }, {\n token: \"keyword.operator\",\n regex: \"\\\\+|\\\\-|\\\\*|\\\\*\\\\*|\\\\/|\\\\/\\\\/|%|@|<<|>>|&|\\\\||\\\\^|~|<|>|<=|=>|==|!=|<>|=\"\n }, {\n token: \"punctuation\",\n regex: \",|:|;|\\\\->|\\\\+=|\\\\-=|\\\\*=|\\\\/=|\\\\/\\\\/=|%=|@=|&=|\\\\|=|^=|>>=|<<=|\\\\*\\\\*=\"\n }, {\n token: \"paren.lparen\",\n regex: \"[\\\\[\\\\(\\\\{]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\]\\\\)\\\\}]\"\n }, {\n token: [\"keyword\", \"text\", \"entity.name.function\"],\n regex: \"(def|class)(\\\\s+)([\\\\u00BF-\\\\u1FFF\\\\u2C00-\\\\uD7FF\\\\w]+)\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }, {\n include: \"constants\"\n }],\n \"qqstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"qstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"qqstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"qqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"qstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"qstring\"\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqqstring3\": [{\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqstring3\": [{\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqqstring\": [{\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"rawqqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"rawqstring\": [{\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"rawqstring\"\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqqstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqstring3\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqqstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"fqqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqstring\": [{\n token: \"constant.language.escape\",\n regex: stringEscape\n }, {\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqqstring3\": [{\n token: \"string\",\n regex: '\"{3}',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqstring3\": [{\n token: \"string\",\n regex: \"'{3}\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqqstring\": [{\n token: \"string\",\n regex: \"\\\\\\\\$\",\n next: \"rfqqstring\"\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"rfqstring\": [{\n token: \"string\",\n regex: \"'|$\",\n next: \"start\"\n }, {\n token: \"paren.lparen\",\n regex: \"{\",\n push: \"fqstringParRules\"\n }, {\n defaultToken: \"string\"\n }],\n \"fqstringParRules\": [{\n token: \"paren.lparen\",\n regex: \"[\\\\[\\\\(]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\]\\\\)]\"\n }, {\n token: \"string\",\n regex: \"\\\\s+\"\n }, {\n token: \"string\",\n regex: \"'[^']*'\"\n }, {\n token: \"string\",\n regex: '\"[^\"]*\"'\n }, {\n token: \"function.support\",\n regex: \"(!s|!r|!a)\"\n }, {\n include: \"constants\"\n }, {\n token: 'paren.rparen',\n regex: \"}\",\n next: 'pop'\n }, {\n token: 'paren.lparen',\n regex: \"{\",\n push: \"fqstringParRules\"\n }],\n \"constants\": [{\n token: \"constant.numeric\",\n regex: \"(?:\" + floatNumber + \"|\\\\d+)[jJ]\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: floatNumber\n }, {\n token: \"constant.numeric\",\n regex: integer + \"[lL]\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: integer + \"\\\\b\"\n }, {\n token: [\"punctuation\", \"function.support\"],\n regex: \"(\\\\.)([a-zA-Z_]+)\\\\b\"\n }, {\n token: keywordMapper,\n regex: \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n }]\n };\n this.normalizeRules();\n};\noop.inherits(PythonHighlightRules, TextHighlightRules);\nexports.PythonHighlightRules = PythonHighlightRules;\n\n});\n\nace.define(\"ace/mode/folding/pythonic\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (markers) {\n this.foldingStartMarker = new RegExp(\"([\\\\[{])(?:\\\\s*)$|(\" + markers + \")(?:\\\\s*)(?:#.*)?$\");\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.getFoldWidgetRange = function (session, foldStyle, row) {\n var line = session.getLine(row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, match.index);\n if (match[2])\n return this.indentationBlock(session, row, match.index + match[2].length);\n return this.indentationBlock(session, row);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/python\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/python_highlight_rules\",\"ace/mode/folding/pythonic\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar PythonHighlightRules = require(\"./python_highlight_rules\").PythonHighlightRules;\nvar PythonFoldMode = require(\"./folding/pythonic\").FoldMode;\nvar Range = require(\"../range\").Range;\nvar Mode = function () {\n this.HighlightRules = PythonHighlightRules;\n this.foldingRules = new PythonFoldMode(\"\\\\:\");\n this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"#\";\n this.$pairQuotesAfter = {\n \"'\": /[ruf]/i,\n '\"': /[ruf]/i\n };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[:]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n };\n var outdents = {\n \"pass\": 1,\n \"return\": 1,\n \"raise\": 1,\n \"break\": 1,\n \"continue\": 1\n };\n this.checkOutdent = function (state, line, input) {\n if (input !== \"\\r\\n\" && input !== \"\\r\" && input !== \"\\n\")\n return false;\n var tokens = this.getTokenizer().getLineTokens(line.trim(), state).tokens;\n if (!tokens)\n return false;\n do {\n var last = tokens.pop();\n } while (last && (last.type == \"comment\" || (last.type == \"text\" && last.value.match(/^\\s+$/))));\n if (!last)\n return false;\n return (last.type == \"keyword\" && outdents[last.value]);\n };\n this.autoOutdent = function (state, doc, row) {\n row += 1;\n var indent = this.$getIndent(doc.getLine(row));\n var tab = doc.getTabString();\n if (indent.slice(-tab.length) == tab)\n doc.remove(new Range(row, indent.length - tab.length, row, indent.length));\n };\n this.$id = \"ace/mode/python\";\n this.snippetFileId = \"ace/snippets/python\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/python\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar XmlHighlightRules = function (normalize) {\n var tagRegex = \"[_:a-zA-Z\\xc0-\\uffff][-_:.a-zA-Z0-9\\xc0-\\uffff]*\";\n this.$rules = {\n start: [\n { token: \"string.cdata.xml\", regex: \"<\\\\!\\\\[CDATA\\\\[\", next: \"cdata\" },\n {\n token: [\"punctuation.instruction.xml\", \"keyword.instruction.xml\"],\n regex: \"(<\\\\?)(\" + tagRegex + \")\", next: \"processing_instruction\"\n },\n { token: \"comment.start.xml\", regex: \"<\\\\!--\", next: \"comment\" },\n {\n token: [\"xml-pe.doctype.xml\", \"xml-pe.doctype.xml\"],\n regex: \"(<\\\\!)(DOCTYPE)(?=[\\\\s])\", next: \"doctype\", caseInsensitive: true\n },\n { include: \"tag\" },\n { token: \"text.end-tag-open.xml\", regex: \"\",\n next: \"start\"\n }],\n doctype: [\n { include: \"whitespace\" },\n { include: \"string\" },\n { token: \"xml-pe.doctype.xml\", regex: \">\", next: \"start\" },\n { token: \"xml-pe.xml\", regex: \"[-_a-zA-Z0-9:]+\" },\n { token: \"punctuation.int-subset\", regex: \"\\\\[\", push: \"int_subset\" }\n ],\n int_subset: [{\n token: \"text.xml\",\n regex: \"\\\\s+\"\n }, {\n token: \"punctuation.int-subset.xml\",\n regex: \"]\",\n next: \"pop\"\n }, {\n token: [\"punctuation.markup-decl.xml\", \"keyword.markup-decl.xml\"],\n regex: \"(<\\\\!)(\" + tagRegex + \")\",\n push: [{\n token: \"text\",\n regex: \"\\\\s+\"\n },\n {\n token: \"punctuation.markup-decl.xml\",\n regex: \">\",\n next: \"pop\"\n },\n { include: \"string\" }]\n }],\n cdata: [\n { token: \"string.cdata.xml\", regex: \"\\\\]\\\\]>\", next: \"start\" },\n { token: \"text.xml\", regex: \"\\\\s+\" },\n { token: \"text.xml\", regex: \"(?:[^\\\\]]|\\\\](?!\\\\]>))+\" }\n ],\n comment: [\n { token: \"comment.end.xml\", regex: \"-->\", next: \"start\" },\n { defaultToken: \"comment.xml\" }\n ],\n reference: [{\n token: \"constant.language.escape.reference.xml\",\n regex: \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }],\n attr_reference: [{\n token: \"constant.language.escape.reference.attribute-value.xml\",\n regex: \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }],\n tag: [{\n token: [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.tag-name.xml\"],\n regex: \"(?:(<)|(\", next: \"start\" }\n ]\n }],\n tag_whitespace: [\n { token: \"text.tag-whitespace.xml\", regex: \"\\\\s+\" }\n ],\n whitespace: [\n { token: \"text.whitespace.xml\", regex: \"\\\\s+\" }\n ],\n string: [{\n token: \"string.xml\",\n regex: \"'\",\n push: [\n { token: \"string.xml\", regex: \"'\", next: \"pop\" },\n { defaultToken: \"string.xml\" }\n ]\n }, {\n token: \"string.xml\",\n regex: '\"',\n push: [\n { token: \"string.xml\", regex: '\"', next: \"pop\" },\n { defaultToken: \"string.xml\" }\n ]\n }],\n attributes: [{\n token: \"entity.other.attribute-name.xml\",\n regex: tagRegex\n }, {\n token: \"keyword.operator.attribute-equals.xml\",\n regex: \"=\"\n }, {\n include: \"tag_whitespace\"\n }, {\n include: \"attribute_value\"\n }],\n attribute_value: [{\n token: \"string.attribute-value.xml\",\n regex: \"'\",\n push: [\n { token: \"string.attribute-value.xml\", regex: \"'\", next: \"pop\" },\n { include: \"attr_reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n }, {\n token: \"string.attribute-value.xml\",\n regex: '\"',\n push: [\n { token: \"string.attribute-value.xml\", regex: '\"', next: \"pop\" },\n { include: \"attr_reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n }]\n };\n if (this.constructor === XmlHighlightRules)\n this.normalizeRules();\n};\n(function () {\n this.embedTagRules = function (HighlightRules, prefix, tag) {\n this.$rules.tag.unshift({\n token: [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n regex: \"(<)(\" + tag + \"(?=\\\\s|>|$))\",\n next: [\n { include: \"attributes\" },\n { token: \"meta.tag.punctuation.tag-close.xml\", regex: \"/?>\", next: prefix + \"start\" }\n ]\n });\n this.$rules[tag + \"-end\"] = [\n { include: \"attributes\" },\n { token: \"meta.tag.punctuation.tag-close.xml\", regex: \"/?>\", next: \"start\",\n onMatch: function (value, currentState, stack) {\n stack.splice(0);\n return this.token;\n } }\n ];\n this.embedRules(HighlightRules, prefix, [{\n token: [\"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n regex: \"(|$))\",\n next: tag + \"-end\"\n }, {\n token: \"string.cdata.xml\",\n regex: \"<\\\\!\\\\[CDATA\\\\[\"\n }, {\n token: \"string.cdata.xml\",\n regex: \"\\\\]\\\\]>\"\n }]);\n };\n}).call(TextHighlightRules.prototype);\noop.inherits(XmlHighlightRules, TextHighlightRules);\nexports.XmlHighlightRules = XmlHighlightRules;\n\n});\n\nace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\nfunction is(token, type) {\n return token && token.type.lastIndexOf(type + \".xml\") > -1;\n}\nvar XmlBehaviour = function () {\n this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '\"' || text == \"'\") {\n var quote = text;\n var selected = session.doc.getTextRange(editor.getSelectionRange());\n if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n return {\n text: quote + selected + quote,\n selection: false\n };\n }\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (rightChar == quote && (is(token, \"attribute-value\") || is(token, \"string\"))) {\n return {\n text: \"\",\n selection: [1, 1]\n };\n }\n if (!token)\n token = iterator.stepBackward();\n if (!token)\n return;\n while (is(token, \"tag-whitespace\") || is(token, \"whitespace\")) {\n token = iterator.stepBackward();\n }\n var rightSpace = !rightChar || rightChar.match(/\\s/);\n if (is(token, \"attribute-equals\") && (rightSpace || rightChar == '>') || (is(token, \"decl-attribute-equals\") && (rightSpace || rightChar == '?'))) {\n return {\n text: quote + quote,\n selection: [1, 1]\n };\n }\n }\n });\n this.add(\"string_dquotes\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n this.add(\"autoclosing\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '>') {\n var position = editor.getSelectionRange().start;\n var iterator = new TokenIterator(session, position.row, position.column);\n var token = iterator.getCurrentToken() || iterator.stepBackward();\n if (!token || !(is(token, \"tag-name\") || is(token, \"tag-whitespace\") || is(token, \"attribute-name\") || is(token, \"attribute-equals\") || is(token, \"attribute-value\")))\n return;\n if (is(token, \"reference.attribute-value\"))\n return;\n if (is(token, \"attribute-value\")) {\n var tokenEndColumn = iterator.getCurrentTokenColumn() + token.value.length;\n if (position.column < tokenEndColumn)\n return;\n if (position.column == tokenEndColumn) {\n var nextToken = iterator.stepForward();\n if (nextToken && is(nextToken, \"attribute-value\"))\n return;\n iterator.stepBackward();\n }\n }\n if (/^\\s*>/.test(session.getLine(position.row).slice(position.column)))\n return;\n while (!is(token, \"tag-name\")) {\n token = iterator.stepBackward();\n if (token.value == \"<\") {\n token = iterator.stepForward();\n break;\n }\n }\n var tokenRow = iterator.getCurrentTokenRow();\n var tokenColumn = iterator.getCurrentTokenColumn();\n if (is(iterator.stepBackward(), \"end-tag-open\"))\n return;\n var element = token.value;\n if (tokenRow == position.row)\n element = element.substring(0, position.column - tokenColumn);\n if (this.voidElements.hasOwnProperty(element.toLowerCase()))\n return;\n return {\n text: \">\" + \"\",\n selection: [1, 1]\n };\n }\n });\n this.add(\"autoindent\", \"insertion\", function (state, action, editor, session, text) {\n if (text == \"\\n\") {\n var cursor = editor.getCursorPosition();\n var line = session.getLine(cursor.row);\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (token && token.type.indexOf(\"tag-close\") !== -1) {\n if (token.value == \"/>\")\n return;\n while (token && token.type.indexOf(\"tag-name\") === -1) {\n token = iterator.stepBackward();\n }\n if (!token) {\n return;\n }\n var tag = token.value;\n var row = iterator.getCurrentTokenRow();\n token = iterator.stepBackward();\n if (!token || token.type.indexOf(\"end-tag\") !== -1) {\n return;\n }\n if (this.voidElements && !this.voidElements[tag]) {\n var nextToken = session.getTokenAt(cursor.row, cursor.column + 1);\n var line = session.getLine(row);\n var nextIndent = this.$getIndent(line);\n var indent = nextIndent + session.getTabString();\n if (nextToken && nextToken.value === \" -1;\n}\n(function () {\n this.getFoldWidget = function (session, foldStyle, row) {\n var tag = this._getFirstTagInLine(session, row);\n if (!tag)\n return this.getCommentFoldWidget(session, row);\n if (tag.closing || (!tag.tagName && tag.selfClosing))\n return foldStyle === \"markbeginend\" ? \"end\" : \"\";\n if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase()))\n return \"\";\n if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column))\n return \"\";\n return \"start\";\n };\n this.getCommentFoldWidget = function (session, row) {\n if (/comment/.test(session.getState(row)) && /';\n break;\n }\n }\n return tag;\n }\n else if (is(token, \"tag-close\")) {\n tag.selfClosing = token.value == '/>';\n return tag;\n }\n tag.start.column += token.value.length;\n }\n return null;\n };\n this._findEndTagInLine = function (session, row, tagName, startColumn) {\n var tokens = session.getTokens(row);\n var column = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n column += token.value.length;\n if (column < startColumn)\n continue;\n if (is(token, \"end-tag-open\")) {\n token = tokens[i + 1];\n if (token && token.value == tagName)\n return true;\n }\n }\n return false;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row) {\n var tags = session.getMatchingTags({ row: row, column: 0 });\n if (tags) {\n return new Range(tags.openTag.end.row, tags.openTag.end.column, tags.closeTag.start.row, tags.closeTag.start.column);\n }\n else {\n return this.getCommentFoldWidget(session, row)\n && session.getCommentFoldRange(row, session.getLine(row).length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/xml_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/xml\",\"ace/worker/worker_client\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextMode = require(\"./text\").Mode;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\nvar XmlBehaviour = require(\"./behaviour/xml\").XmlBehaviour;\nvar XmlFoldMode = require(\"./folding/xml\").FoldMode;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar Mode = function () {\n this.HighlightRules = XmlHighlightRules;\n this.$behaviour = new XmlBehaviour();\n this.foldingRules = new XmlFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.voidElements = lang.arrayToMap([]);\n this.blockComment = { start: \"\" };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/xml_worker\", \"Worker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"error\", function (e) {\n session.setAnnotations(e.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/xml\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/xml\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/theme/github-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){module.exports = \"/* CSS style content from github's default pygments highlighter template.\\n Cursor and selection styles from textmate.css. */\\n.ace-github .ace_gutter {\\n background: #e8e8e8;\\n color: #AAA;\\n}\\n\\n.ace-github {\\n background: #fff;\\n color: #000;\\n}\\n\\n.ace-github .ace_keyword {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_string {\\n color: #D14;\\n}\\n\\n.ace-github .ace_variable.ace_class {\\n color: teal;\\n}\\n\\n.ace-github .ace_constant.ace_numeric {\\n color: #099;\\n}\\n\\n.ace-github .ace_constant.ace_buildin {\\n color: #0086B3;\\n}\\n\\n.ace-github .ace_support.ace_function {\\n color: #0086B3;\\n}\\n\\n.ace-github .ace_comment {\\n color: #998;\\n font-style: italic;\\n}\\n\\n.ace-github .ace_variable.ace_language {\\n color: #0086B3;\\n}\\n\\n.ace-github .ace_paren {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_boolean {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_string.ace_regexp {\\n color: #009926;\\n font-weight: normal;\\n}\\n\\n.ace-github .ace_variable.ace_instance {\\n color: teal;\\n}\\n\\n.ace-github .ace_constant.ace_language {\\n font-weight: bold;\\n}\\n\\n.ace-github .ace_cursor {\\n color: black;\\n}\\n\\n.ace-github.ace_focus .ace_marker-layer .ace_active-line {\\n background: rgb(255, 255, 204);\\n}\\n.ace-github .ace_marker-layer .ace_active-line {\\n background: rgb(245, 245, 245);\\n}\\n\\n.ace-github .ace_marker-layer .ace_selection {\\n background: rgb(181, 213, 255);\\n}\\n\\n.ace-github.ace_multiselect .ace_selection.ace_start {\\n box-shadow: 0 0 3px 0px white;\\n}\\n/* bold keywords cause cursor issues for some fonts */\\n/* this disables bold style for editor and keeps for static highlighter */\\n.ace-github.ace_nobold .ace_line > span {\\n font-weight: normal !important;\\n}\\n\\n.ace-github .ace_marker-layer .ace_step {\\n background: rgb(252, 255, 0);\\n}\\n\\n.ace-github .ace_marker-layer .ace_stack {\\n background: rgb(164, 229, 101);\\n}\\n\\n.ace-github .ace_marker-layer .ace_bracket {\\n margin: -1px 0 0 -1px;\\n border: 1px solid rgb(192, 192, 192);\\n}\\n\\n.ace-github .ace_gutter-active-line {\\n background-color : rgba(0, 0, 0, 0.07);\\n}\\n\\n.ace-github .ace_marker-layer .ace_selected-word {\\n background: rgb(250, 250, 255);\\n border: 1px solid rgb(200, 200, 250);\\n}\\n\\n.ace-github .ace_invisible {\\n color: #BFBFBF\\n}\\n\\n.ace-github .ace_print-margin {\\n width: 1px;\\n background: #e8e8e8;\\n}\\n\\n.ace-github .ace_indent-guide {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\n}\\n\\n.ace-github .ace_indent-guide-active {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC\\\") right repeat-y;\\n}\\n\";\n\n});\n\nace.define(\"ace/theme/github\",[\"require\",\"exports\",\"module\",\"ace/theme/github-css\",\"ace/lib/dom\"], function(require, exports, module){exports.isDark = false;\nexports.cssClass = \"ace-github\";\nexports.cssText = require(\"./github-css\");\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass, false);\n\n}); (function() {\n ace.require([\"ace/theme/github\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","module.exports = require(\"react-dom\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"\";","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"prop-types\");","import { createContext } from 'react';\n\nconst AccordionContext = createContext();\n\nexport default AccordionContext;\n","import { createContext } from 'react';\n\nconst AccordionItemContext = createContext();\n\nexport default AccordionItemContext;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Icon({\n className,\n family,\n type,\n weight,\n ...rest\n}) {\n function getCSSClasses() {\n const fontFamily = family || 'fa';\n const fontWeight = fontFamily === 'fa' ? `fa-${weight || 'light'}` : '';\n\n return [\n 'tyk-icon',\n fontFamily !== 'fa' && fontFamily,\n `${fontFamily}-${type}`,\n fontWeight,\n className,\n ].filter(Boolean).join(' ');\n }\n\n return ;\n}\n\nIcon.propTypes = {\n className: PropTypes.string,\n family: PropTypes.string,\n type: PropTypes.string.isRequired,\n};\n\nexport default Icon;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../Icon';\nimport AccordionItemContext from './AccordionItemContext';\n\nfunction ItemTrigger({ wrap }) {\n const { collapsed, disabled, toggleChange } = useContext(AccordionItemContext);\n\n const iconType = collapsed ? 'chevron-down' : 'chevron-up';\n const classes = [\n 'tyk-accordion__trigger',\n disabled && 'tyk-accordion__trigger--disabled',\n ].filter(Boolean).join(' ');\n const trigger = (\n \n \n \n );\n\n return wrap\n ?
    {trigger}
    \n : trigger;\n}\n\nItemTrigger.propTypes = {\n wrap: PropTypes.bool,\n};\n\nexport default ItemTrigger;\n","import React, {\n useMemo, useState, useContext, forwardRef,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport AccordionContext from './AccordionContext';\nimport AccordionItemContext from './AccordionItemContext';\nimport ItemTrigger from './AccordionItemTrigger';\n\nfunction AccordionItem({\n collapsed: collapsedProp,\n children,\n className,\n disabled,\n}, ref) {\n const { arrow } = useContext(AccordionContext);\n const [collapsed, setCollapsed] = useState(collapsedProp);\n\n const toggleChange = () => {\n if (disabled) {\n return;\n }\n\n setCollapsed(!collapsed);\n };\n\n const classes = useMemo(() => [\n 'tyk-accordion__item',\n arrow.expandToContent\n ? `tyk-accordion__item--trigger-position-${arrow.position}`\n : 'tyk-accordion__item--trigger-in-header',\n className,\n collapsed === false && 'tyk-accordion__item--active',\n ].filter(Boolean).join(' '), [arrow, className, collapsed]);\n\n const contextValue = useMemo(() => ({\n collapsed,\n disabled,\n toggleChange,\n }), [collapsed, disabled, toggleChange]);\n\n return (\n
    \n \n {arrow.expandToContent && (\n \n )}\n {children}\n \n
    \n );\n}\n\nAccordionItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n collapsed: PropTypes.bool,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n};\n\nAccordionItem.defaultProps = {\n collapsed: false,\n};\n\nexport default forwardRef(AccordionItem);\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../Icon';\nimport AccordionContext from './AccordionContext';\nimport AccordionItemContext from './AccordionItemContext';\nimport ItemTrigger from './AccordionItemTrigger';\n\nfunction AccordionItemHeader({ className, children }) {\n const { collapsed, disabled, toggleChange } = useContext(AccordionItemContext);\n const { usearrowastrigger, arrow } = useContext(AccordionContext);\n const iconType = collapsed ? 'chevron-down' : 'chevron-up';\n const classes = [\n 'tyk-accordion__item-header',\n usearrowastrigger && 'tyk-accordion__arrow-trigger',\n className,\n ].filter(Boolean).join(' ');\n\n return (\n
    \n {\n !usearrowastrigger\n ? (\n \n {children}\n \n \n )\n : (\n <>\n {!arrow.expandToContent && arrow.position === 'left' && (\n \n )}\n
    {children}
    \n {!arrow.expandToContent && arrow.position === 'right' && (\n \n )}\n \n )\n }\n
    \n );\n}\n\nAccordionItemHeader.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n};\n\nexport default AccordionItemHeader;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-transition-group\");","import { useCallback, useState, useLayoutEffect } from 'react';\n\nconst getSize = (el) => {\n if (!el) {\n return {\n width: 0,\n height: 0,\n };\n }\n\n return {\n width: el.offsetWidth,\n height: el.offsetHeight,\n };\n};\n\nconst useComponentSize = (ref) => {\n const [componentSize, setComponentSize] = useState(getSize(ref ? ref.current : {}));\n const handleResize = useCallback(() => {\n if (ref.current) {\n setComponentSize(getSize(ref.current));\n }\n }, [ref]);\n\n useLayoutEffect(() => {\n handleResize();\n\n let resizeObserver = new ResizeObserver(() => {\n handleResize();\n });\n resizeObserver.observe(ref.current);\n\n return () => {\n resizeObserver.disconnect(ref.current);\n resizeObserver = null;\n };\n }, [ref.current]);\n\n return componentSize;\n};\n\n/** @component */\nexport default useComponentSize;\n","import { useEffect, useRef } from 'react';\n\nconst useEventListener = (eventName, handler, element) => {\n const savedHandler = useRef();\n useEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n\n useEffect(() => {\n const isSupported = element?.addEventListener;\n if (!isSupported) {\n // eslint-disable-next-line consistent-return\n return;\n }\n\n const eventListener = (event) => savedHandler.current(event);\n element.addEventListener(eventName, eventListener);\n\n // eslint-disable-next-line consistent-return\n return () => {\n element.removeEventListener(eventName, eventListener);\n };\n }, [eventName, element]);\n};\n\n/** @component */\nexport default useEventListener;\n","import React, {\n useRef, useState, useCallback, useEffect,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { CSSTransition } from 'react-transition-group';\nimport { useEventListener, useComponentSize } from '../../hooks';\n\n/**\n * Collapsible is a component that helps you to collapse/expand any type of content\n */\nfunction Collapsible({\n className,\n collapsed,\n children,\n ...rest\n}) {\n const contentContainer = useRef(null);\n const collapseWrapper = useRef(null);\n const refContainerSize = useComponentSize(contentContainer);\n const [contentContainerStyle, setContentContainerStyle] = useState({\n // eslint-disable-next-line\n height: (collapsed) ? 0 : 'auto',\n });\n\n const setHeight = (height) => {\n setContentContainerStyle({\n height: `${height}px`,\n });\n };\n\n const getHeight = () => (contentContainer.current ? contentContainer.current.clientHeight : 0);\n\n const onEnter = () => {\n setHeight(getHeight());\n };\n\n const onExit = () => {\n setHeight(0);\n };\n\n useEffect(() => {\n if (!collapsed\n && refContainerSize?.height\n && contentContainerStyle.height !== refContainerSize?.height\n ) {\n setHeight(refContainerSize.height);\n }\n }, [refContainerSize.height]);\n\n const onWindowResize = useCallback(() => {\n if (!collapsed && contentContainer.current) {\n setHeight(getHeight());\n collapseWrapper.current.style.height = `${getHeight()}px`;\n }\n }, [collapsed, contentContainer.current]);\n\n useEventListener('resize', onWindowResize, window);\n\n return (\n \n \n \n { children }\n \n \n \n );\n}\n\nCollapsible.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n /** Describes if the content of Collapsible should be hidden or not */\n collapsed: PropTypes.bool,\n /** CSS classes that can be passed to the Collapsible element */\n className: PropTypes.string,\n};\n\nexport default Collapsible;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Collapsible from '../../Collapsible';\nimport AccordionItemContext from './AccordionItemContext';\n\nfunction AccordionItemContent({ children, className }) {\n const { collapsed } = useContext(AccordionItemContext);\n\n const classes = [\n 'tyk-accordion__item-content',\n className,\n ].filter(Boolean).join(' ');\n\n return (\n
    \n \n { children }\n \n
    \n );\n}\n\nAccordionItemContent.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n};\n\nexport default AccordionItemContent;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport AccordionItem from './js/AccordionItem';\nimport AccordionItemHeader from './js/AccordionItemHeader';\nimport AccordionItemContent from './js/AccordionItemContent';\nimport AccordionContext from './js/AccordionContext';\n\nfunction Accordion({\n className,\n children,\n usearrowastrigger,\n arrow = { position: 'right', expandToContent: false },\n}) {\n const classes = [\n 'tyk-accordion',\n className,\n ].filter(Boolean).join(' ');\n\n const contextValue = useMemo(() => ({\n usearrowastrigger,\n arrow,\n }), [usearrowastrigger, arrow]);\n\n return (\n
    \n \n {children}\n \n
    \n );\n}\n\nAccordion.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n usearrowastrigger: PropTypes.bool,\n arrow: PropTypes.shape({\n position: PropTypes.oneOf(['left', 'right']),\n expandToContent: PropTypes.bool,\n }),\n};\n\nAccordion.defaultProps = {\n usearrowastrigger: false,\n};\n\n// For Readme.md : Start\nAccordion.Item = AccordionItem;\nAccordion.Item.Header = AccordionItemHeader;\nAccordion.Item.Content = AccordionItemContent;\n// For Readme.md : End\n\nexport default Accordion;\n","import React, { cloneElement, forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../Icon';\n\n/**\n * Button component.\n */\nfunction Button(props, ref) {\n const {\n customButton,\n children,\n iconType,\n iconFamily,\n iconPosition,\n iconOnly,\n id,\n className,\n disabled,\n display,\n href,\n onClick,\n noStyle,\n size,\n theme,\n type,\n ...rest\n } = props;\n\n const getCssClasses = () => {\n const cssClasses = ['tyk-button'].concat(className ? className.split(' ') : []);\n const sizeClass = (size) ? `tyk-button--${size}` : 'tyk-button--md';\n const disabledClass = (disabled) ? 'disabled' : '';\n const displayClass = display || '';\n const themeClass = theme ? `tyk-button--${theme}` : '';\n const iconOnlyClass = iconOnly ? 'tyk-button--icon-only' : '';\n const noStyleClass = noStyle ? 'tyk-button--no-style' : '';\n\n cssClasses.push(iconOnlyClass);\n cssClasses.push(themeClass);\n cssClasses.push(sizeClass);\n cssClasses.push(disabledClass);\n cssClasses.push(displayClass);\n cssClasses.push(noStyleClass);\n\n if (iconType) {\n cssClasses.push(`icon-${iconPosition || 'left'}`);\n }\n\n return cssClasses.join(' ');\n };\n\n const getButtonIcon = (position) => {\n const iPos = iconPosition || 'left';\n\n return (\n (iconType && iPos === position)\n ? \n : null\n );\n };\n\n const getButtonType = () => {\n let buttonType;\n\n if (customButton) {\n return (\n <>\n { cloneElement(customButton, {\n className: getCssClasses(),\n disabled,\n })}\n \n );\n }\n\n if (href) {\n buttonType = (\n \n { getButtonIcon('left') }\n { children }\n { getButtonIcon('right') }\n \n );\n } else {\n buttonType = (\n // eslint-disable-next-line react/button-has-type\n \n { getButtonIcon('left') }\n { children && {children} }\n { getButtonIcon('right') }\n \n );\n }\n\n return buttonType;\n };\n\n return (\n getButtonType()\n );\n}\n\nButton.propTypes = {\n /**\n * Content of a button. Can be a DOM element or a React component\n */\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n customButton: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n ]),\n className: PropTypes.string,\n /**\n * Display type: inline/block. Default is inline\n */\n display: PropTypes.string,\n /**\n * Sets the button disabled state\n */\n disabled: PropTypes.bool,\n /**\n * Having this property set the button will become a link\n */\n id: PropTypes.string,\n href: PropTypes.string,\n iconPosition: PropTypes.string, // left or right\n iconFamily: PropTypes.string,\n iconOnly: PropTypes.bool,\n iconType: PropTypes.string,\n noStyle: PropTypes.bool,\n /**\n * Callback function, called when the button si clicked\n */\n onClick: PropTypes.func,\n /**\n * Describes the appearence of the button (ex: primary, danger, primary-outline etc.)\n */\n theme: PropTypes.string,\n /**\n * Type of the button (ex: button, submit etc.)\n */\n type: PropTypes.string,\n /**\n * Describes the size of the button (sm, md, lg). Default one is md\n */\n size: PropTypes.string,\n};\n\nButton.defaultProps = {\n theme: '',\n type: 'button',\n};\n\nexport default forwardRef(Button);\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ButtonGroup({ className, children, label }, ref) {\n return (\n
    \n {Boolean(label) && }\n
    {children}
    \n
    \n );\n}\n\nButtonGroup.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n};\n\nexport default forwardRef(ButtonGroup);\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardHeader({\n right = null,\n children,\n}) {\n return (\n
    \n {children &&
    {children}
    }\n {right &&
    {right}
    }\n
    \n );\n}\n\nCardHeader.propTypes = {\n right: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardHeader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardBody({\n align = 'top',\n children,\n}) {\n return (\n
    \n
    \n {children}\n
    \n
    \n );\n}\n\nCardBody.propTypes = {\n align: PropTypes.oneOf(['top', 'center', 'bottom']),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardBody;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardFooter({ children }) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardFooter.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardFooter;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardTitle({\n maxLines = 1, // accepted values: 1, 2\n children,\n}) {\n return (\n

    \n {children}\n

    \n );\n}\n\nCardTitle.propTypes = {\n maxLines: PropTypes.number,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardTitle;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardTitleGroup({\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardTitleGroup.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardTitleGroup;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardSubTitle({\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardSubTitle.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardSubTitle;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardSummary({\n maxLines = 2, // accepted values: 1, 2, 3, 4, 5\n children,\n}) {\n return (\n

    \n {children}\n

    \n );\n}\n\nCardSummary.propTypes = {\n maxLines: PropTypes.number,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardSummary;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CardTitleIcon({\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCardTitleIcon.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default CardTitleIcon;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport CardHeader from './CardHeader';\nimport CardBody from './CardBody';\nimport CardFooter from './CardFooter';\nimport CardTitle from './CardTitle';\nimport CardTitleGroup from './CardTitleGroup';\nimport CardSubTitle from './CardSubTitle';\nimport CardSummary from './CardSummary';\nimport CardTitleIcon from './CardTitleIcon';\n\nfunction Card({\n className = '',\n height = 'auto',\n children,\n}) {\n return (\n
    \n {children}\n
    \n );\n}\n\nCard.propTypes = {\n className: PropTypes.string,\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nCard.Header = CardHeader;\nCard.Body = CardBody;\nCard.Footer = CardFooter;\nCard.Title = CardTitle;\nCard.TitleGroup = CardTitleGroup;\nCard.Icon = CardTitleIcon;\nCard.SubTitle = CardSubTitle;\nCard.Summary = CardSummary;\n\nexport default Card;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"echarts\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"immutable\");","export default (func, wait, immediate) => {\n let timeout;\n return function debouncer(...args) {\n const context = this;\n const later = () => {\n timeout = null;\n if (!immediate) {\n func.apply(context, args);\n }\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) {\n func.apply(context, args);\n }\n };\n};\n","import { useEffect, useRef } from 'react';\n\nconst usePrevious = (value) => {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n};\n\n/** @component */\nexport default usePrevious;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Loader({ className, position = 'relative', withbackground = false }) {\n const classes = [\n 'loading',\n position,\n className,\n ].filter(Boolean).join(' ');\n\n const loader = (\n
    \n
    \n
    \n
    \n
    \n
    \n );\n\n return withbackground\n ?
    {loader}
    \n : loader;\n}\n\nLoader.propTypes = {\n /** add a class to loader */\n className: PropTypes.string,\n /** position of loader (absolute / relative) */\n position: PropTypes.string,\n /** defines weather loader should be renders with or without background */\n withbackground: PropTypes.bool,\n};\n\nexport default Loader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../Icon';\n\n/**\n * The Message component is used to highlight important content to the users.\n *\n * If the content you are displaying needs immediate attention or is a feedback,\n * consider using `toast` instead\n */\nfunction Message({\n children, theme, onClose, noMargin, className,\n}) {\n function getCssClasses() {\n return [\n 'tyk-message',\n `tyk-message--${theme || 'info'}`,\n noMargin && 'no-margin',\n className,\n ].filter(Boolean).join(' ');\n }\n\n const iconType = theme === 'success' ? 'check' : 'warning';\n\n return (\n
    \n \n
    \n { children }\n
    \n {onClose && (\n \n )}\n
    \n );\n}\n\nMessage.propTypes = {\n /** Set theme for message (eg. default, success, danger, etc) */\n theme: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n /** add a class to loader */\n className: PropTypes.string,\n /** Removes margins by adding `no-margin` class */\n noMargin: PropTypes.bool,\n /** Callback for clicking on the \"x\" */\n onClose: PropTypes.func,\n};\n\nexport default Message;\n","import React, {\n useState, useEffect, useMemo, useRef, memo,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport * as echarts from 'echarts';\nimport { fromJS } from 'immutable';\n\nimport debounce from '../../utils/debounce';\nimport { usePrevious } from '../../hooks';\nimport Loader from '../Loader';\nimport Message from '../Message';\nimport worldMap from './maps/world.json';\n\necharts.registerMap('world', worldMap);\n\nfunction Chart({\n areaStyleColors,\n dataLoaded,\n hasData,\n highlight,\n type,\n option,\n series,\n onChange,\n zoomStart,\n zoomEnd,\n title,\n seriesConfig = [],\n noDataComponent: noDataComponentProp = null,\n zoomColors,\n style,\n}) {\n const [tykChartInstance, setTykChartInstance] = useState(null);\n const chartWrapperRef = useRef(null);\n const onResize = () => {\n if (tykChartInstance) {\n tykChartInstance.resize();\n }\n };\n\n const noDataComponent = useMemo(\n () => (noDataComponentProp\n ? noDataComponentProp()\n : (\n \n No data to display\n \n )),\n [noDataComponentProp],\n );\n\n const lineBarChart = {\n defaultOpts: fromJS({\n title: {\n show: true,\n text: title,\n left: 0,\n },\n color: [],\n toolbox: {\n right: '0',\n orient: 'horizontal',\n itemSize: 15,\n showTitle: true,\n feature: null,\n },\n dataZoom: [{\n show: true,\n start: 0,\n end: 100,\n orient: 'horizontal',\n dataBackground: {\n lineStyle: {\n color: zoomColors?.lineStyle || '#368493',\n },\n areaStyle: {\n color: zoomColors?.areaStyle || '#368493',\n },\n },\n handleStyle: {\n color: zoomColors?.handleStyle || '#368493',\n },\n textStyle: {\n color: zoomColors?.textStyle || '#368493',\n },\n borderColor: 'transparent',\n fillerColor: zoomColors?.fillerColor || 'rgba(54, 132, 147, 0.1)',\n }],\n legend: {\n show: false,\n // data: [],\n // right: '1%',\n },\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n type: 'cross',\n },\n },\n grid: {\n left: '1%',\n right: '1%',\n bottom: '50px',\n top: '40px',\n containLabel: true,\n },\n xAxis: {\n boundaryGap: false,\n type: 'category',\n splitLine: {\n show: true,\n lineStyle: {\n type: 'dotted',\n color: '#F0F0F0',\n },\n },\n axisLine: {\n show: false,\n },\n axisTick: {\n show: false,\n },\n data: [],\n },\n yAxis: {\n min: 'dataMin',\n boundaryGap: true,\n axisPointer: {\n show: true,\n },\n splitLine: {\n lineStyle: {\n type: 'dotted',\n color: '#F0F0F0',\n },\n show: true,\n },\n axisLabel: {\n show: true,\n },\n axisLine: {\n show: true,\n },\n axisTick: {\n show: false,\n },\n type: 'value',\n },\n textStyle: {\n color: '#5a5a68',\n },\n series: [],\n animationEasing: 'elasticOut',\n }),\n seriesDefault: fromJS({\n data: [],\n type: 'line',\n areaStyle: {\n opacity: 1,\n color: areaStyleColors\n ? new echarts.graphic.LinearGradient(\n 0,\n 0,\n 1,\n 1,\n areaStyleColors.map((color, index) => ({\n offset: index,\n color,\n })),\n )\n : [],\n },\n smooth: false,\n symbolSize: 7,\n name: '',\n }),\n };\n\n const pieChart = {\n defaultOpts: fromJS({\n tooltip: {\n trigger: 'axis',\n formatter: '{b}: {c} ({d}%)',\n },\n legend: {\n orient: 'horizontal',\n x: 'left',\n y: 'top',\n data: [],\n },\n color: [],\n series: [],\n }),\n seriesDefault: fromJS({\n type: 'pie',\n center: [\n '50%',\n '55%',\n ],\n radius: [\n '50%',\n '75%',\n ],\n avoidLabelOverlap: false,\n animationType: 'scale',\n animationEasing: 'elasticOut',\n labelLine: {\n normal: {\n show: true,\n smooth: 0.2,\n length: 6,\n length2: 6,\n },\n },\n data: [],\n }),\n };\n\n const geoChart = {\n defaultOpts: fromJS({\n series: [],\n }),\n seriesDefault: fromJS({\n type: 'map',\n data: [],\n }),\n };\n\n const buildChartOptions = (selectedType, selectedOptions, selectedSeries) => {\n let finalOpts = {};\n switch (selectedType) {\n case 'pie': {\n finalOpts = pieChart.defaultOpts.mergeDeep(fromJS(selectedOptions)).toJS();\n\n selectedSeries.forEach((entry) => {\n finalOpts.series.push(pieChart.seriesDefault.mergeDeep(fromJS(entry)).toJS());\n });\n\n break;\n }\n\n case 'geo': {\n finalOpts = geoChart.defaultOpts.mergeDeep(fromJS(selectedOptions)).toJS();\n\n selectedSeries.forEach((entry) => {\n finalOpts.series.push(geoChart.seriesDefault.mergeDeep(fromJS(entry)).toJS());\n });\n\n break;\n }\n\n default: {\n finalOpts = lineBarChart.defaultOpts.mergeDeep(fromJS(selectedOptions)).toJS();\n if (Array.isArray(selectedOptions.yAxis)) {\n finalOpts.yAxis = selectedOptions.yAxis;\n }\n\n selectedSeries.forEach((entry, index) => {\n const seriesData = {\n ...lineBarChart.seriesDefault.toJS(),\n ...seriesConfig[index],\n ...entry,\n };\n finalOpts.series.push(seriesData);\n });\n break;\n }\n }\n return finalOpts;\n };\n\n useEffect(() => {\n window.addEventListener('resize', onResize);\n\n return () => {\n window.removeEventListener('resize', onResize);\n };\n }, [tykChartInstance]);\n\n useEffect(() => {\n if (!chartWrapperRef?.current) return;\n\n setTykChartInstance(echarts.init(chartWrapperRef.current));\n\n // eslint-disable-next-line consistent-return\n return () => {\n if (tykChartInstance) {\n tykChartInstance.dispose();\n }\n };\n }, [chartWrapperRef.current]);\n\n const eventCallBack = (e) => {\n if (onChange) {\n onChange(e);\n }\n };\n\n useEffect(() => {\n let debouncedMethod;\n if (tykChartInstance) {\n debouncedMethod = debounce(eventCallBack, 500);\n tykChartInstance.on('dataZoom', debouncedMethod);\n tykChartInstance.on('restore', debouncedMethod);\n tykChartInstance.on('click', debouncedMethod);\n\n tykChartInstance.on('mousemove', (params) => {\n if (params.data) {\n tykChartInstance.getZr().setCursorStyle('pointer');\n }\n });\n }\n\n return () => {\n if (tykChartInstance) {\n tykChartInstance.off('dataZoom', debouncedMethod);\n tykChartInstance.off('restore', debouncedMethod);\n tykChartInstance.off('click', debouncedMethod);\n }\n };\n }, [tykChartInstance, onChange]);\n\n const prevInstance = usePrevious(tykChartInstance);\n const prevOption = usePrevious(option);\n const prevType = usePrevious(type);\n const prevSeries = usePrevious(series);\n useEffect(() => {\n if (\n tykChartInstance\n && (\n !fromJS(prevInstance)?.equals?.(fromJS(tykChartInstance))\n || !fromJS(prevOption)?.equals?.(fromJS(option))\n || (prevType !== type)\n || !fromJS(prevSeries).equals?.(fromJS(series))\n )\n ) {\n tykChartInstance.clear();\n tykChartInstance.setOption(buildChartOptions(type, option, series));\n tykChartInstance.dispatchAction({\n type: 'takeGlobalCursor',\n key: 'dataZoomSelect',\n dataZoomSelectActive: true,\n });\n }\n }, [tykChartInstance, option, series, type]);\n\n useEffect(() => {\n if (tykChartInstance && highlight) {\n tykChartInstance.dispatchAction({\n type: 'highlight',\n seriesIndex: highlight.seriesIndex,\n dataIndex: highlight.dataIndex,\n });\n tykChartInstance.dispatchAction({\n type: 'showTip',\n seriesIndex: highlight.seriesIndex,\n dataIndex: highlight.dataIndex,\n });\n }\n }, [highlight]);\n\n const prevZoomStart = usePrevious(zoomStart);\n const prevZoomEnd = usePrevious(zoomEnd);\n useEffect(() => {\n if (\n tykChartInstance\n && zoomStart !== -1\n && zoomEnd !== -1\n && (\n prevZoomStart !== zoomStart\n || prevZoomEnd !== zoomEnd\n )\n ) {\n tykChartInstance.dispatchAction({\n type: 'dataZoom',\n startValue: zoomStart,\n endValue: zoomEnd,\n });\n }\n }, [zoomStart, zoomEnd]);\n\n const getStyle = () => {\n const tempStyle = style || {};\n\n if (!tempStyle.height) {\n tempStyle.height = '300px';\n }\n if (!tempStyle.width) {\n tempStyle.width = '100%';\n }\n return tempStyle;\n };\n\n const chartHasData = () => (\n (dataLoaded && (hasData === false || hasData === true)) ? hasData : true\n );\n\n const getCssClasses = () => {\n const cssClasses = ['tyk-chart'];\n\n if (!dataLoaded) {\n cssClasses.push('tyk-chart--loading-chart');\n }\n\n if (!chartHasData()) {\n cssClasses.push('tyk-chart--no-data');\n }\n\n return cssClasses.join(' ');\n };\n\n return (\n
    \n {\n !dataLoaded\n ? \n : null\n }\n \n {\n chartHasData()\n ? null\n : noDataComponent\n }\n
    \n );\n}\n\nChart.propTypes = {\n areaStyleColors: PropTypes.instanceOf(Array),\n dataLoaded: PropTypes.bool,\n hasData: PropTypes.bool,\n highlight: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n PropTypes.instanceOf(Array),\n ]),\n noDataComponent: PropTypes.func,\n zoomStart: PropTypes.number,\n zoomEnd: PropTypes.number,\n zoomColors: PropTypes.instanceOf(Object),\n option: PropTypes.instanceOf(Object),\n onChange: PropTypes.func,\n style: PropTypes.instanceOf(Object),\n type: PropTypes.string,\n title: PropTypes.string,\n series: PropTypes.instanceOf(Array),\n seriesConfig: PropTypes.instanceOf(Object),\n};\n\nexport default memo(Chart);\n","import { useEffect, useRef } from 'react';\n\nconst useTimeout = (callback, delay) => {\n const savedCallback = useRef();\n\n useEffect(\n () => {\n savedCallback.current = callback;\n },\n [callback],\n );\n\n useEffect(\n () => {\n function tick() {\n savedCallback.current();\n }\n if (delay !== null) {\n const id = setTimeout(tick, delay);\n return () => clearTimeout(id);\n }\n\n return () => {};\n },\n [delay],\n );\n};\n\n/** @component */\nexport default useTimeout;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Message from '../../Message';\nimport { useTimeout } from '../../../hooks';\n\nfunction ToastMessage(props) {\n const {\n children,\n options,\n onClose,\n index,\n } = props;\n const opts = {\n theme: 'success',\n delay: 3000,\n ...options,\n };\n let timer;\n\n const handleClose = (itemIndex) => {\n onClose(itemIndex);\n clearTimeout(timer);\n };\n\n useTimeout(() => handleClose(index), opts.delay);\n\n return (\n handleClose(index)}\n >\n {children}\n \n );\n}\n\nToastMessage.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n options: PropTypes.instanceOf(Object),\n onClose: PropTypes.func,\n index: PropTypes.number,\n};\n\nexport default ToastMessage;\n","import React, {\n useEffect, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport ToastMessage from './ToastMessage';\n\nfunction ToastContainer(props) {\n const [messages, setMessages] = useState({});\n const {\n notify,\n } = props;\n\n const updateNotifications = (message, options) => {\n const msgID = Math.floor(Math.random() * 1000000);\n\n setMessages((prevMessages) => ({\n ...prevMessages,\n [msgID]: {\n message,\n options,\n },\n }));\n };\n\n useEffect(() => {\n notify(updateNotifications);\n }, [messages]);\n\n const onMessageClosed = (index) => {\n const tempMessages = { ...messages };\n delete tempMessages[index];\n setMessages((prevMessages) => {\n const newMessages = { ...prevMessages };\n delete newMessages[index];\n return newMessages;\n });\n };\n\n return (\n
    \n {\n Object.keys(messages).map((msgID) => (\n messages[msgID]\n ? (\n \n {messages[msgID].message}\n \n )\n : null\n ))\n }\n
    \n );\n}\n\nToastContainer.propTypes = {\n notify: PropTypes.func,\n};\n\nexport default ToastContainer;\n","import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport ToastContainer from './js/ToastContainer';\n\n/**\n * Toast is a service that displays dialogs\n * on the bottom right part of the screen.\n *\n * The dialogs can have one of the Tyk UI themes, so that\n * it would match it's purpose (i.e success message, error message)\n *\n */\nclass ToastCreator {\n constructor() {\n const el = document.createElement('div');\n el.className = 'tyk-toast';\n document.body.appendChild(el);\n const root = createRoot(el);\n root.render();\n }\n\n bindNotify = (fn) => {\n this.createNotification = fn;\n };\n\n notify(message, options) {\n if (this.createNotification) {\n this.createNotification(message, options);\n }\n }\n\n danger(message, options) {\n this.notify(message, { ...options, theme: 'danger' });\n }\n\n success(message, options) {\n this.notify(message, { ...options, theme: 'success' });\n }\n\n warning(message, options) {\n this.notify(message, { ...options, theme: 'warning' });\n }\n\n info(message, options) {\n this.notify(message, { ...options, theme: 'info' });\n }\n}\n\nconst toast = new ToastCreator();\n\nexport default toast;\n","import React, { createRef, useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport toast from '../Toast';\n\n/**\n * - CopyToClipboard is used to copy string for a user.\n * - Can be used normally with a text or a custom components (Eg. Button, Icon, etc)\n */\n\nfunction CopyToClipboard(props) {\n const {\n display, copy, children, onCopy, message = 'copied',\n } = props;\n const txtRef = createRef();\n const handleClick = useCallback(() => {\n if (onCopy) {\n onCopy();\n }\n\n if (!window.navigator.clipboard) {\n txtRef.current.select();\n document.execCommand('copy');\n toast.success(message);\n return;\n }\n window.navigator.clipboard.writeText(copy);\n toast.success(message);\n }, [onCopy, txtRef]);\n\n return (\n <>\n \n {children || display}\n \n {!window.navigator.clipboard ? (\n \n ) : null}\n \n );\n}\n\nCopyToClipboard.propTypes = {\n /** Message to be displayed after text is copied */\n message: PropTypes.string,\n /** Callback function executed after text is copied */\n onCopy: PropTypes.func,\n /** Text to be copied */\n copy: PropTypes.string.isRequired,\n /** Text to be displayed */\n display: PropTypes.string,\n /** Children of custom element if you are using any custom element */\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n PropTypes.object,\n PropTypes.node,\n ]),\n};\n\nexport default CopyToClipboard;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ModalFooter({ children }) {\n return (\n
    \n { children }\n
    \n );\n}\n\nModalFooter.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default ModalFooter;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ModalBody({ children }) {\n return (\n
    \n { children }\n
    \n );\n}\n\nModalBody.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default ModalBody;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { CSSTransition } from 'react-transition-group';\n\nimport Icon from '../Icon';\nimport ModalFooter from './js/ModalFooter';\nimport ModalBody from './js/ModalBody';\n\n/**\n * Modals add dialogs confirmation boxes, notifications, or completely custom content\n * - only one Modal can be opened at a time\n * - are unmounted when Modal is closed\n */\nfunction Modal({\n children,\n theme = 'none',\n disableCloseCommands = false,\n opened = false,\n onClose = () => {},\n size = 'md',\n className = '',\n showBackdrop = true,\n ...restProps\n}) {\n const modalClasses = [\n 'tyk-modal',\n `tyk-modal--theme-${theme}`,\n opened && 'opened',\n ].concat(className.split(' ')).filter(Boolean).join(' ');\n\n const backdropClasses = [\n 'tyk-modal__backdrop',\n opened && 'opened',\n ].filter(Boolean).join(' ');\n\n const themeIcon = {\n success: 'check',\n warning: 'warning',\n danger: 'delete',\n }[theme];\n\n return (\n <>\n {\n ReactDOM.createPortal(\n \n
    \n
    \n
    \n {theme !== 'none' && (\n
    \n \n
    \n )}\n { children }\n
    \n
    \n
    \n ,\n document.querySelector('body'),\n )\n }\n {showBackdrop && ReactDOM.createPortal(\n \n !disableCloseCommands && onClose()}\n onKeyDown={() => {}}\n type=\"button\"\n aria-label=\"Close\"\n />\n ,\n document.querySelector('body'),\n )}\n \n );\n}\n\nModal.Body = ModalBody;\nModal.Footer = ModalFooter;\n/* eslint-disable-next-line */\nModal.Header = ({ children }) => {\n console.warn('%cModal.Header%c is deprecated.', 'font-weight: bold', '');\n return (\n
    \n { children }\n
    \n );\n};\nModal.Header.propTypes = {\n children: PropTypes.element,\n};\n/* eslint-disable-next-line */\nModal.Title = ({ children }) => {\n console.warn('%cModal.Title%c is deprecated.', 'font-weight: bold', '');\n return (\n

    \n { children }\n

    \n );\n};\nModal.Title.propTypes = {\n children: PropTypes.element,\n};\n\nModal.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n /** one of \"success\", \"warning\", \"danger\", \"none\"; default is \"none\" */\n theme: PropTypes.string,\n /** If set on true, the Modal won't close when clicking on the overlay or by pressing ESC key */\n disableCloseCommands: PropTypes.bool,\n /** If true the Modal will be by default opened */\n opened: PropTypes.bool,\n /** Callback method when the Modal is closed */\n onClose: PropTypes.func,\n /** Width of the Moda: md or lg */\n size: PropTypes.string,\n showBackdrop: PropTypes.bool,\n};\n\nexport default Modal;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '../Button';\nimport Modal from '../Modal';\n\n/**\n * Confirm component can be used to open a dialog () before a specific action\n */\nfunction Confirm(props) {\n const {\n children,\n title,\n description,\n confirmBtnText = 'Confirm',\n cancelBtnText = 'Cancel',\n } = props;\n const [open, setOpen] = useState(false);\n const [callback, setCallback] = useState(null);\n const [cancelCallback, setCancelCallback] = useState(null);\n\n const show = (callbackFunc, cancelCallbackFunc, beforeCallback) => (...args) => {\n if (beforeCallback) {\n beforeCallback(...args);\n }\n setOpen(true);\n setCallback(() => () => callbackFunc(...args));\n if (cancelCallbackFunc) {\n setCancelCallback(() => () => cancelCallbackFunc(...args));\n }\n };\n\n const hide = () => {\n setOpen(false);\n setCallback(null);\n setCancelCallback(null);\n };\n\n const cancel = () => {\n if (cancelCallback) {\n cancelCallback();\n }\n hide();\n };\n\n const confirm = () => {\n callback();\n hide();\n };\n\n return (\n <>\n {children(show)}\n \n \n

    {title}

    \n {description}\n
    \n \n \n {cancelBtnText}\n \n \n {confirmBtnText}\n \n \n
    \n \n );\n}\n\nConfirm.propTypes = {\n /** Sets the text for primary / confirmation button on opened modal */\n confirmBtnText: PropTypes.string,\n /** Sets the text for danger / abort button on opened modal */\n cancelBtnText: PropTypes.string,\n /** Sets the title for the opened modal */\n title: PropTypes.string,\n /** Sets the description for the opened modal */\n description: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n PropTypes.object,\n PropTypes.node,\n PropTypes.func,\n ]),\n};\n\nexport default Confirm;\n","import React, { useCallback, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport debounce from '../../utils/debounce';\n\n/**\n * FixedWrapper component, keeps all its children in a fix position on the page,\n * even if the scroll position changes\n * i.e: The top navigation bar of a page sits within FixedWrapper component\n */\nfunction FixedWrapper({ children, className, showShadow }) {\n const fixedWrapperRef = useRef(null);\n\n const attachShadow = useCallback(() => {\n const element = fixedWrapperRef.current;\n\n if (!element) {\n return;\n }\n\n if (window.scrollY) {\n element.classList.add('tyk-fixed-wrapper--scrolled');\n } else {\n element.classList.remove('tyk-fixed-wrapper--scrolled');\n }\n }, [fixedWrapperRef.current]);\n\n const debouncedAttachShadow = useCallback(debounce(attachShadow, 100), [attachShadow]);\n\n useEffect(() => {\n if (showShadow) {\n window.addEventListener('scroll', debouncedAttachShadow);\n }\n\n return () => {\n window.removeEventListener('scroll', debouncedAttachShadow);\n };\n }, [debouncedAttachShadow, showShadow]);\n\n return (\n
    \n { children }\n
    \n );\n}\n\nFixedWrapper.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n /** Css classes that can be passed to the FixedWraper element */\n className: PropTypes.string,\n /** If true, bottom shadow on the FixedWrapper component\n * is being displayed when scroll happens\n */\n showShadow: PropTypes.bool,\n};\n\nFixedWrapper.defaultProps = {\n className: '',\n};\n\nexport default FixedWrapper;\n","import React, {\n useEffect, useState, useRef, useCallback,\n} from 'react';\nimport { PropTypes } from 'prop-types';\n\nimport debounce from '../../utils/debounce';\nimport { usePrevious, useComponentSize } from '../../hooks';\nimport Loader from '../Loader';\n\nfunction InfiniteScroller({\n children,\n hasMore,\n initialLoad,\n loadMore,\n pageNumber,\n refChild,\n}) {\n const [showLoader, setShowLoader] = useState(false);\n const containerRef = useRef(null);\n const refChildSize = useComponentSize(refChild);\n\n useEffect(() => {\n if (initialLoad && typeof loadMore === 'function') {\n setShowLoader(false);\n loadMore(pageNumber);\n }\n }, [initialLoad]);\n\n const shouldLoad = useCallback(() => {\n if (!containerRef.current) return false;\n const { clientHeight, scrollTop } = containerRef.current;\n\n return (\n hasMore\n && (\n (clientHeight + Math.round(scrollTop) === refChildSize.height)\n || (clientHeight >= refChildSize.height)\n )\n );\n }, [containerRef, refChildSize.height]);\n\n const loadMoreData = useCallback(() => {\n if (hasMore && typeof loadMore === 'function') {\n loadMore(pageNumber + 1);\n setShowLoader(true);\n } else {\n setShowLoader(false);\n }\n }, [hasMore, pageNumber]);\n\n const prevPageNumber = usePrevious(pageNumber);\n const scrollHandler = useCallback(debounce(() => {\n if (shouldLoad() && prevPageNumber <= pageNumber) {\n loadMoreData();\n }\n }, 200), [loadMoreData, shouldLoad]);\n\n useEffect(() => {\n containerRef.current?.addEventListener('scroll', scrollHandler);\n return () => containerRef.current?.removeEventListener('scroll', scrollHandler);\n }, [containerRef, scrollHandler]);\n\n // if content resets (page number resets) scroll to top\n useEffect(() => {\n if (prevPageNumber > 0 && pageNumber === 0) {\n containerRef.current.scrollTop = 0;\n }\n }, [containerRef, pageNumber]);\n\n const prevRefChildSize = usePrevious(refChildSize);\n useEffect(() => {\n if (\n refChildSize && prevRefChildSize\n && refChildSize.height !== prevRefChildSize.height\n && showLoader === true\n ) {\n setShowLoader(false);\n }\n }, [showLoader, refChildSize.height]);\n\n useEffect(() => {\n if (\n refChild && refChildSize.height < containerRef.current.clientHeight\n && refChildSize.height\n && hasMore\n ) {\n loadMoreData();\n }\n }, [containerRef, refChildSize, refChild, hasMore]);\n\n return (\n
    \n \n { children }\n
    \n {showLoader && (\n \n )}\n
    \n );\n}\n\nInfiniteScroller.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n hasMore: PropTypes.bool,\n initialLoad: PropTypes.bool,\n pageNumber: PropTypes.number,\n loadMore: PropTypes.func,\n refChild: PropTypes.instanceOf(Object),\n};\n\nInfiniteScroller.defaultProps = {\n hasMore: true,\n};\n\nexport default InfiniteScroller;\n","import React, {\n useEffect, useRef, forwardRef,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport PropTypes from 'prop-types';\nimport InfiniteScroller from '../InfiniteScroller';\n\nconst VIEWPORT_INITIAL_PADDING = 5;\n\n/**\n * It displays a container relative to another element.\n * Meant to be used for dropdowns, tooltips, and other similar components.\n */\nfunction FloatingContainer({\n element,\n size = 'auto',\n forceDisplay = 'auto',\n displayAxis = 'auto',\n preferredPosition,\n offset = 0,\n className,\n children,\n infiniteScrollerConfig,\n}, ref) {\n const localRef = useRef(null);\n const floatingContainerRef = ref || localRef;\n const contentWrapperRef = useRef(null);\n // offset calculated on first render to make sure the floating container is inside the viewport\n const viewportOffset = useRef(null);\n\n function determineDisplay() {\n const target = element.current;\n const container = floatingContainerRef.current;\n if (!container) return preferredPosition ?? displayAxis === 'vertical' ? 'bottom' : 'right';\n\n const { left, top } = target.getBoundingClientRect();\n const topSpace = top;\n const bottomSpace = window.innerHeight - top - target.offsetHeight;\n const leftSpace = left;\n const rightSpace = window.innerWidth - left - target.offsetWidth;\n const hasTopSpace = topSpace > container.scrollHeight;\n const hasBottomSpace = bottomSpace > container.scrollHeight;\n const hasLeftSpace = leftSpace > container.offsetWidth;\n const hasRightSpace = rightSpace > container.offsetWidth;\n const positionedVerticallyFitsInViewport = left + target.offsetWidth / 2 - container.offsetWidth / 2 > 0; // eslint-disable-line max-len\n const positionedHorizontallyFitsInViewport = top + target.offsetHeight / 2 - container.scrollHeight / 2 > 0; // eslint-disable-line max-len\n\n if (\n displayAxis === 'vertical'\n || (\n displayAxis === 'auto'\n && (hasTopSpace || hasBottomSpace)\n && positionedVerticallyFitsInViewport\n )\n ) {\n return getDisplayForVertical({\n preferredPosition, hasTopSpace, hasBottomSpace, topSpace, bottomSpace,\n });\n }\n\n if (displayAxis === 'horizontal') {\n return getDisplayForHorizontal({\n preferredPosition, hasLeftSpace, hasRightSpace, leftSpace, rightSpace,\n });\n }\n\n return getDisplayWhereItFits({\n preferredPosition,\n hasTopSpace,\n hasBottomSpace,\n hasLeftSpace,\n hasRightSpace,\n positionedHorizontallyFitsInViewport,\n positionedVerticallyFitsInViewport,\n });\n }\n\n function adjustPosition() {\n const display = forceDisplay !== 'auto' ? forceDisplay : determineDisplay();\n const target = element.current;\n const container = floatingContainerRef.current;\n\n if (!target || !container) return;\n\n const targetPosition = target.getBoundingClientRect();\n const { left: vpLeft, top: vpTop } = viewportOffset.current ?? { left: 0, top: 0 };\n\n if (display === 'top') {\n Object.assign(container.style, getStylesForTop({\n container, targetPosition, target, size, offset, vpLeft, vpTop,\n }));\n }\n\n if (display === 'bottom') {\n Object.assign(container.style, getStylesForBottom({\n container, targetPosition, target, size, offset, vpLeft, vpTop,\n }));\n }\n\n if (display === 'left') {\n Object.assign(container.style, getStylesForLeft({\n targetPosition, target, container, size, offset,\n }));\n }\n\n if (display === 'right') {\n Object.assign(container.style, getStylesForRight({\n targetPosition, target, container, size, offset, vpLeft, vpTop,\n }));\n }\n\n if (viewportOffset.current !== null) return;\n\n if (size === 'matchEnd') {\n viewportOffset.current = { left: 0, top: 0 };\n } else {\n const left = Number(container.style.left.replace('px', ''));\n const top = Number(container.style.top.replace('px', ''));\n viewportOffset.current = {\n left: left < 0 ? VIEWPORT_INITIAL_PADDING - left : 0,\n top: top < 0 ? VIEWPORT_INITIAL_PADDING - top : 0,\n };\n }\n }\n\n useEffect(() => {\n window.requestAnimationFrame(function schedulePositionUpdate() {\n adjustPosition();\n window.requestAnimationFrame(schedulePositionUpdate);\n });\n }, []);\n\n return createPortal(\n \n \n \n {children}\n
    \n \n
    ,\n document.querySelector('body'),\n );\n}\n\nFloatingContainer.propTypes = {\n /** A DOM element that the floating container will be displayed relative to. */\n element: PropTypes.instanceOf(Object),\n className: PropTypes.string,\n /** The size of the container.\n * If `auto` the size will be determined by its contents.\n * If `matchElement` it will take the width or the height of the element depending\n * on the `displayAxis` prop.\n * It can also be a function that returns a number representing the width\n * or the height in pixels.\n */\n size: PropTypes.oneOfType([\n PropTypes.oneOf(['auto', 'matchElement', 'matchStart', 'matchEnd']),\n PropTypes.func,\n ]),\n /**\n * The distance between the element and the floating container.\n * It can be positive or negative.\n */\n offset: PropTypes.number,\n /**\n * If `auto` the component will try to determine where to display the container relative to the\n * element (top, bottom, left, right).\n * It can also be one of top, bottom, left, right, to force the floating container to always be\n * displayed in that position.\n */\n forceDisplay: PropTypes.oneOf(['auto', 'top', 'bottom', 'left', 'right']),\n /**\n * It can be `auto`, `vertical` or `horizontal`. It specifies the axis where\n * it will be displayed when `forceDisplay` is `auto`.\n */\n displayAxis: PropTypes.oneOf(['auto', 'vertical', 'horizontal']),\n /**\n * If there is space on both sides of the axis preffer this side.\n */\n preferredPosition: PropTypes.oneOf(['top', 'bottom', 'left', 'right']),\n /**\n * Configuration object that will be passed to the infinite scroller component.\n */\n infiniteScrollerConfig: PropTypes.instanceOf(Object),\n};\n\nexport default forwardRef(FloatingContainer);\n\nfunction getDisplayForVertical({\n preferredPosition, hasTopSpace, hasBottomSpace, topSpace, bottomSpace,\n}) {\n if (preferredPosition === 'top' && hasTopSpace) return 'top';\n if (preferredPosition === 'bottom' && hasBottomSpace) return 'bottom';\n return hasBottomSpace || bottomSpace > topSpace ? 'bottom' : 'top';\n}\n\nfunction getDisplayForHorizontal({\n preferredPosition, hasLeftSpace, hasRightSpace, leftSpace, rightSpace,\n}) {\n if (preferredPosition === 'left' && hasLeftSpace) return 'left';\n if (preferredPosition === 'right' && hasRightSpace) return 'right';\n return hasRightSpace || rightSpace > leftSpace ? 'right' : 'left';\n}\n\nfunction getDisplayWhereItFits({\n preferredPosition, hasTopSpace, hasBottomSpace, hasLeftSpace, hasRightSpace,\n positionedHorizontallyFitsInViewport, positionedVerticallyFitsInViewport,\n}) {\n if (hasTopSpace && positionedVerticallyFitsInViewport) return 'top';\n if (hasBottomSpace && positionedVerticallyFitsInViewport) return 'bottom';\n if (hasRightSpace && positionedHorizontallyFitsInViewport) return 'right';\n if (hasLeftSpace && positionedHorizontallyFitsInViewport) return 'left';\n return preferredPosition ?? 'bottom';\n}\n\nfunction getStylesForTop({\n container, targetPosition, target, size, offset, vpLeft, vpTop,\n}) {\n const style = {};\n const leftPos = {\n auto: targetPosition.left + target.offsetWidth / 2 - container.offsetWidth / 2,\n matchElement: targetPosition.left,\n matchStart: targetPosition.left,\n matchEnd: targetPosition.right - container.offsetWidth,\n }[size];\n const topPos = targetPosition.top - container.offsetHeight - offset;\n style.left = `${leftPos + vpLeft}px`;\n style.top = `${topPos + vpTop}px`;\n\n if (size === 'matchElement') {\n style.width = `${target.offsetWidth}px`;\n } else if (size === 'matchEnd') {\n style.maxWidth = `${targetPosition.right - VIEWPORT_INITIAL_PADDING}px`;\n } else if (typeof size === 'function') {\n style.width = `${size(target.offsetWidth)}px`;\n }\n style.maxHeight = `${targetPosition.top - offset}px`;\n return style;\n}\n\nfunction getStylesForBottom({\n targetPosition, target, container, size, offset, vpLeft, vpTop,\n}) {\n const style = {};\n const leftPos = {\n auto: targetPosition.left + target.offsetWidth / 2 - container.offsetWidth / 2,\n matchElement: targetPosition.left,\n matchStart: targetPosition.left,\n matchEnd: targetPosition.right - container.offsetWidth,\n }[size];\n const topPos = targetPosition.bottom + offset;\n style.left = `${leftPos + vpLeft}px`;\n style.top = `${topPos + vpTop}px`;\n\n if (size === 'matchElement') {\n style.width = `${target.offsetWidth}px`;\n } else if (size === 'matchEnd') {\n style.maxWidth = `${targetPosition.right - VIEWPORT_INITIAL_PADDING}px`;\n } else if (typeof size === 'function') {\n style.width = `${size(target.offsetWidth)}px`;\n }\n style.maxHeight = `${window.innerHeight - targetPosition.bottom - offset}px`;\n return style;\n}\n\nfunction getStylesForLeft({\n targetPosition, target, container, size, offset,\n}) {\n const style = {};\n const leftPos = targetPosition.left - container.offsetWidth - offset;\n const topPos = {\n auto: targetPosition.top + target.offsetHeight / 2 - container.offsetHeight / 2,\n matchElement: targetPosition.top,\n matchStart: targetPosition.top,\n matchEnd: targetPosition.bottom - container.offsetHeight,\n }[size];\n style.left = `${leftPos}px`;\n style.top = `${topPos}px`;\n\n if (size === 'matchElement') {\n style.height = `${target.offsetHeight}px`;\n } else if (typeof size === 'function') {\n style.height = `${size(target.offsetHeight)}px`;\n }\n style.maxWidth = `${targetPosition.left - offset}px`;\n return style;\n}\n\nfunction getStylesForRight({\n targetPosition, target, container, size, offset, vpLeft, vpTop,\n}) {\n const style = {};\n const leftPos = targetPosition.left + target.offsetWidth + offset;\n const topPos = {\n auto: targetPosition.top + target.offsetHeight / 2 - container.offsetHeight / 2,\n matchElement: targetPosition.top,\n matchStart: targetPosition.top,\n matchEnd: targetPosition.bottom - container.offsetHeight,\n }[size];\n style.left = size === 'auto' ? `${leftPos + vpLeft}px` : `${leftPos}px`;\n style.top = size === 'auto' ? `${topPos + vpTop}px` : `${topPos}px`;\n\n if (size === 'matchElement') {\n style.height = `${target.offsetHeight}px`;\n } else if (typeof size === 'function') {\n style.height = `${size(target.offsetHeight)}px`;\n }\n style.maxWidth = `${window.innerWidth - targetPosition.left - target.offsetWidth - offset}px`;\n return style;\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Message from '../Message';\n\nfunction InfoNote({ children }) {\n return (\n
    \n \n { children }\n \n
    \n );\n}\n\nInfoNote.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default InfoNote;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ListItem(props) {\n const {\n className,\n children,\n selected,\n } = props;\n\n return (\n
  • \n {children}\n
  • \n );\n}\n\nListItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n selected: PropTypes.bool,\n};\n\nListItem.defaultProps = {\n className: '',\n};\n\nexport default ListItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ListItem from './js/ListItem';\n\nfunction List(props) {\n const {\n className,\n children,\n label,\n labelwidth,\n theme,\n style,\n } = props;\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-list'];\n\n if (theme) {\n cssClasses.push(`tyk-list--${theme}`);\n }\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n return cssClasses.join(' ');\n };\n\n const getListStyle = () => {\n const styleCopy = structuredClone(style);\n if (labelwidth) {\n styleCopy.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styleCopy;\n };\n\n return (\n
    \n {\n label !== undefined\n ? (\n \n )\n : null\n }\n
      \n {children}\n
    \n
    \n );\n}\n\nList.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n label: PropTypes.string,\n labelwidth: PropTypes.string,\n theme: PropTypes.string,\n style: PropTypes.instanceOf(Object),\n};\n\nList.defaultProps = {\n theme: 'default',\n style: {},\n};\n\nList.Item = ListItem;\n\nexport default List;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction NavBar({\n align = 'center',\n children,\n left,\n right,\n title,\n pre,\n subtitle,\n withTabs,\n}) {\n const subtitleContent = subtitle ?

    { subtitle }

    : null;\n return (\n
    \n
    \n {pre && (\n
    {pre}
    \n )}\n {\n title\n ? (\n
    \n

    { title }

    \n { subtitleContent }\n
    \n )\n : subtitleContent\n }\n
    \n {left && (\n
    { left }
    \n )}\n {right && (\n
    { right }
    \n )}\n
    \n
    \n { children }\n
    \n );\n}\n\nNavBar.propTypes = {\n align: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n title: PropTypes.string,\n subtitle: PropTypes.string,\n pre: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n left: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n right: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n withTabs: PropTypes.bool,\n};\n\nexport default NavBar;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction NavigationItem({ children }) {\n return (\n
  • \n {children}\n
  • \n );\n}\n\nNavigationItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n};\n\nexport default NavigationItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport NavigationItem from './js/NavigationItem';\n\nfunction Navigation({ children }) {\n return (\n
      \n {children}\n
    \n );\n}\n\nNavigation.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n};\n\nNavigation.Item = NavigationItem;\n\nexport default Navigation;\n","import { createContext } from 'react';\n\nexport const PortalContext = createContext();\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Collapsible from '../../Collapsible';\nimport { PortalContext } from '../panel-context';\n\nfunction PanelBody({\n children,\n noPadding,\n className,\n ...rest\n}) {\n const getCssClasses = useCallback(\n () => [\n 'tyk-panel__body',\n className,\n noPadding && 'no-padding',\n ].filter(Boolean).join(' '),\n [className, noPadding],\n );\n\n return (\n \n {\n (portalContext) => (\n portalContext.collapsable\n ? (\n \n { children }\n \n )\n : (\n \n { children }\n
    \n )\n )\n }\n \n );\n}\n\nPanelBody.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n noPadding: PropTypes.bool,\n className: PropTypes.string,\n};\n\nexport default PanelBody;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction PanelFooter(props) {\n const { children } = props;\n return (\n
    \n { children }\n
    \n );\n}\n\nPanelFooter.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n};\n\nexport default PanelFooter;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../Icon';\nimport { PortalContext } from '../panel-context';\n\nclass PanelHeader extends Component {\n getCssClasses(props) {\n const { className } = this.props;\n let cssClasses = ['tyk-panel__header'];\n\n if (props.collapsable) {\n cssClasses.push('collapsable');\n }\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n return cssClasses.join(' ');\n }\n\n render() {\n const {\n children,\n } = this.props;\n\n return (\n \n {\n (portalContext) => {\n const HeaderTag = portalContext.theme === 'blank' ? 'h3' : 'div';\n const iconType = portalContext.collapsed ? 'chevron-down' : 'chevron-up';\n\n return (\n \n { children }\n {\n portalContext.collapsable\n ?
    \n : null\n }\n \n );\n }\n }\n
    \n );\n }\n}\n\nPanelHeader.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]).isRequired,\n className: PropTypes.string,\n};\n\nexport default PanelHeader;\n","import React, {\n useCallback, useEffect, useMemo, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport PanelBody from './js/PanelBody';\nimport PanelFooter from './js/PanelFooter';\nimport PanelHeader from './js/PanelHeader';\n\nimport { PortalContext } from './panel-context';\n\nfunction Panel(props) {\n const {\n children,\n className,\n collapsed,\n collapsable,\n theme,\n onToggleCollapse,\n collapsibleIconPosition = 'right',\n } = props;\n const [collapsedState, setCollapsedState] = useState(collapsed || false);\n\n useEffect(() => {\n if (collapsed !== collapsedState) {\n setCollapsedState(collapsed);\n }\n }, [collapsed]);\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-panel'];\n const panelTheme = `tyk-panel--${theme || 'default'}`;\n const collapsbleIconPosition = `tyk-panel__icon-collapse--${collapsibleIconPosition}`;\n\n cssClasses.push(panelTheme);\n cssClasses.push(collapsbleIconPosition);\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n if (collapsedState) {\n cssClasses.push('tyk-panel--collapsed');\n }\n\n return cssClasses.join(' ');\n };\n\n const handleToggle = useCallback(() => {\n setCollapsedState(!collapsedState);\n\n if (onToggleCollapse) {\n onToggleCollapse(!collapsedState);\n }\n }, [collapsedState, onToggleCollapse]);\n\n const context = useMemo(() => ({\n collapsable,\n collapsed: collapsedState,\n onToggle: handleToggle,\n theme,\n collapsibleIconPosition,\n }), [collapsable, collapsedState, collapsibleIconPosition, theme, handleToggle]);\n\n return (\n
    \n \n {\n (typeof children === 'function')\n ? children({\n toggleCollapse: handleToggle,\n })\n : children\n }\n \n
    \n );\n}\n\nPanel.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n collapsable: PropTypes.bool,\n collapsibleIconPosition: PropTypes.string,\n collapsed: PropTypes.bool,\n theme: PropTypes.string,\n onToggleCollapse: PropTypes.func,\n};\n\nPanel.Body = PanelBody;\nPanel.Footer = PanelFooter;\nPanel.Header = PanelHeader;\n\nexport default Panel;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * Pill\n */\nfunction Pill(props) {\n const {\n children,\n className,\n theme,\n } = props;\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-pill', ...theme.split(' ').map((t) => `tyk-pill--${t}`)];\n\n if (className) {\n cssClasses = cssClasses.concat(className);\n }\n\n return cssClasses.join(' ');\n };\n\n return (\n
    \n {children}\n
    \n );\n}\n\nPill.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n /** Css classes that can be passed to the Pill element */\n className: PropTypes.string,\n /** Theme that can be applied to a Pill */\n theme: PropTypes.string,\n};\n\nPill.defaultProps = {\n theme: 'default',\n};\n\nexport default Pill;\n","import { useRef } from 'react';\n\n/**\n * RevealPanelService is a class that manages the resizing of a panel element.\n * It provides methods to set the panel's height, hide and show it, and attach\n * event listeners for resizing.\n */\nclass RevealPanelService {\n #state = null; // Private state for mouse interactions.\n\n #panel = null; // The panel element to be resized.\n\n #gutter = null; // The gutter element used for resizing.\n\n #wrapper = null; // The wrapper element that contains the panel and gutter.\n\n #onHeightChangeCallbacks = []; // Callback function to be executed when the panel is resized.\n\n #onDragStartCallbacks = []; // Callback function to be executed when the panel is resized.\n\n #onDragEndCallbacks = []; // Callback function to be executed when the panel is resized.\n\n #dragStarted = false;\n\n /**\n * Sets a callback function to be executed when the panel is resized.\n * @param {function} callback - The callback function to be called on panel resize.\n */\n on(eventName, listener) {\n let list = null;\n if (eventName === 'onHeightChange') {\n list = this.#onHeightChangeCallbacks;\n } else if (eventName === 'onDragStart') {\n list = this.#onDragStartCallbacks;\n } else if (eventName === 'onDragEnd') {\n list = this.#onDragEndCallbacks;\n }\n\n if (list) {\n this.addListener(list, listener);\n }\n }\n\n off(eventName, listener) {\n let list = null;\n if (eventName === 'onHeightChange') {\n list = this.#onHeightChangeCallbacks;\n } else if (eventName === 'onDragStart') {\n list = this.#onDragStartCallbacks;\n } else if (eventName === 'onDragEnd') {\n list = this.#onDragEndCallbacks;\n }\n\n if (list) {\n this.removeListener(list, listener);\n }\n }\n\n /**\n * Sets the panel, gutter, and wrapper elements to be controlled by this class.\n * @param {HTMLElement} wrapper - The wrapper element containing the panel and gutter.\n * @param {HTMLElement} panel - The panel element to be resized.\n * @param {HTMLElement} gutter - The gutter element used for resizing.\n */\n setRefs(wrapper, panel, gutter) {\n if (this.#panel || this.#gutter || this.#wrapper) {\n this.unbindEvents();\n }\n this.#wrapper = wrapper;\n this.#panel = panel;\n this.#gutter = gutter;\n this.#state = null;\n this.bindEvents();\n }\n\n /**\n * Attaches event listeners for panel resizing.\n */\n bindEvents() {\n this.ensureRefs('bindEvents');\n this.#gutter.addEventListener('mousedown', this.onMouseDown.bind(this));\n document.addEventListener('mousemove', this.onMouseMove.bind(this));\n document.addEventListener('mouseup', this.onMouseUp.bind(this));\n }\n\n /**\n * Gets the current height of the panel.\n * @returns {number} - The height of the panel in pixels.\n */\n getHeight() {\n this.ensureRefs('getHeight');\n const size = this.#panel.getBoundingClientRect();\n return size.height;\n }\n\n /**\n * Handles the mouse down event, initiating the resizing process.\n * @param {MouseEvent} e - The mouse event object.\n */\n onMouseDown(e) {\n this.ensureRefs('onMouseDown');\n this.#state = {\n mouseDown: true,\n initialRect: this.#panel.getBoundingClientRect(),\n initialEvent: e,\n };\n }\n\n /**\n * Handles the mouse move event, adjusting the panel's height during resizing.\n * @param {MouseEvent} e - The mouse event object.\n */\n onMouseMove(e) {\n this.ensureRefs('onMouseMove');\n\n if (!this.#state) {\n return;\n }\n\n const isButtonDown = this.isPrimaryMouseButtonDown(e);\n if (!isButtonDown) {\n this.onMouseUp();\n return;\n }\n\n if (!this.#dragStarted) {\n this.#dragStarted = true;\n this.onDragStart.bind(this)();\n }\n\n const newY = this.#state.initialEvent.y - e.y;\n const finalHeight = Math.ceil(this.#state.initialRect.height + newY);\n this.setHeight(`${finalHeight}px`, 'mousemove');\n }\n\n // eslint-disable-next-line class-methods-use-this\n notifyListeners(list, value) {\n if (list && Array.isArray(list) && list.length) {\n list.forEach((fn) => {\n if (typeof fn === 'function') {\n fn(value);\n }\n });\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n addListener(list, listener) {\n if (list && Array.isArray(list) && typeof listener === 'function') {\n list.push(listener);\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n removeListener(list, listener) {\n if (list && Array.isArray(list) && typeof listener === 'function' && list.length) {\n const index = list.indexOf(listener);\n\n if (index > -1) {\n list.splice(index, 1);\n }\n }\n }\n\n onDragEnd() {\n if (this.#dragStarted) {\n this.notifyListeners(this.#onDragEndCallbacks, this.getHeight());\n }\n }\n\n onDragStart() {\n this.notifyListeners(this.#onDragStartCallbacks, this.getHeight());\n }\n\n // eslint-disable-next-line class-methods-use-this\n isPrimaryMouseButtonDown(e) {\n const flags = e.buttons !== undefined ? e.buttons : e.which;\n // eslint-disable-next-line no-bitwise\n const isDown = flags === 1;\n return isDown;\n }\n\n /**\n * Resets the state after the mouse up event, ending the resizing process.\n */\n onMouseUp() {\n this.#state = null;\n this.onDragEnd.bind(this)();\n this.#dragStarted = false;\n }\n\n /**\n * Sets the height of the panel.\n * @param {string} height - The new height value as a CSS string (e.g., \"100px\").\n */\n setHeight(height) {\n let heightVal = height;\n this.ensureRefs('setHeight');\n\n if (typeof heightVal === 'number') {\n heightVal += 'px';\n }\n\n this.#panel.style.height = heightVal;\n\n this.notifyListeners(this.#onHeightChangeCallbacks, this.getHeight());\n }\n\n /**\n * Ensures that the required elements (wrapper, panel, and gutter) are set.\n * Throws an error if they are missing.\n */\n ensureRefs(reason) {\n if (!this.#panel || !this.#gutter || !this.#wrapper) {\n throw new Error(\n `${reason}: Wrapper, panel, and gutter elements are required. Use setRefs method first.`,\n );\n }\n }\n\n /**\n * Checks if the panel is hidden.\n * @returns {boolean} - True if the panel is hidden; false otherwise.\n */\n isHidden() {\n this.ensureRefs('isHidden');\n return this.#wrapper.style.visibility === 'hidden';\n }\n\n /**\n * Hides the panel by setting its visibility to \"hidden\".\n */\n hide() {\n this.ensureRefs('hide');\n this.#wrapper.style.visibility = 'hidden';\n }\n\n /**\n * Shows the panel by setting its visibility to \"visible\".\n */\n show() {\n this.ensureRefs('show');\n this.#wrapper.style.visibility = 'visible';\n }\n\n /**\n * Unbinds the event listeners added for resizing.\n */\n unbindEvents() {\n this.#onHeightChangeCallbacks = [];\n this.#onDragStartCallbacks = [];\n this.#onDragEndCallbacks = [];\n this.#gutter.removeEventListener('mousedown', this.onMouseDown.bind(this));\n document.removeEventListener('mousemove', this.onMouseMove.bind(this));\n document.removeEventListener('mouseup', this.onMouseUp.bind(this));\n }\n\n deinit() {\n this.unbindEvents();\n }\n}\n\nexport const useRevealPanelService = () => {\n const revealPanelServiceRef = useRef(new RevealPanelService());\n return revealPanelServiceRef.current;\n};\n","import React, {\n useEffect,\n useRef,\n useImperativeHandle,\n forwardRef,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { createPortal } from 'react-dom';\nimport { useRevealPanelService } from './js/RevealPanelService';\n\nfunction RevealPanelHeaderLeft({ children }) {\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return <>{children};\n}\n\nRevealPanelHeaderLeft.propTypes = {\n children: PropTypes.instanceOf({}),\n};\n\nfunction RevealPanelHeaderRight({ children }) {\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return <>{children};\n}\n\nRevealPanelHeaderRight.propTypes = {\n children: PropTypes.instanceOf({}),\n};\n\nconst mergeClasses = (...classNames) => classNames.map((it) => (it || '').trim()).filter(Boolean).join(' ');\n\nfunction RevealPanel({\n children,\n height,\n onHeightChange = null,\n onDragStart = null,\n onDragEnd = null,\n style = null,\n parentSelector = null,\n contentStyle,\n contentClassName,\n gutterClassName,\n wrapperClassName,\n// eslint-disable-next-line consistent-return\n}, ref) {\n const panelRef = useRef(null);\n const gutterRef = useRef(null);\n const wrapperRef = useRef(null);\n\n const panelService = useRevealPanelService();\n\n useEffect(() => {\n if (!panelRef.current || !gutterRef.current || !wrapperRef.current) {\n return;\n }\n\n if (!panelService) {\n return;\n }\n\n panelService.setRefs(wrapperRef.current, panelRef.current, gutterRef.current);\n panelService.on('onHeightChange', onHeightChange);\n panelService.on('onDragStart', onDragStart);\n panelService.on('onDragEnd', onDragEnd);\n panelService.setHeight(height, 'initialize');\n\n // eslint-disable-next-line consistent-return\n return () => {\n panelService.unbindEvents();\n };\n }, []);\n\n useImperativeHandle(\n ref,\n () => {\n // bind this context\n const bind = (func) => func.bind(panelService);\n\n return {\n getHeight: bind(panelService.getHeight),\n setHeight: bind(panelService.setHeight),\n hide: bind(panelService.hide),\n show: bind(panelService.show),\n isHidden: bind(panelService.isHidden),\n deinit: bind(panelService.deinit),\n on: bind(panelService.on),\n off: bind(panelService.off),\n };\n },\n [],\n );\n\n let headerLeft = null;\n let headerRight = null;\n const contents = [];\n\n React.Children.forEach(children, (child) => {\n if (child && React.isValidElement(child)) {\n if (child.type === RevealPanelHeaderLeft) {\n headerLeft = child;\n } else if (child.type === RevealPanelHeaderRight) {\n headerRight = child;\n } else {\n contents.push(child);\n }\n }\n });\n\n const element = (\n
    \n
    \n
    \n\n
    {headerLeft}
    \n
    \n
    {headerRight}
    \n\n
    \n
    \n {contents}\n
    \n
    \n );\n\n if (parentSelector) {\n return createPortal(element, document.querySelector(parentSelector));\n }\n}\n\nRevealPanel.propTypes = {\n children: PropTypes.instanceOf({}),\n height: PropTypes.string,\n onHeightChange: PropTypes.func,\n onDragStart: PropTypes.func,\n onDragEnd: PropTypes.func,\n parentSelector: PropTypes.string,\n style: PropTypes.instanceOf({}),\n contentStyle: PropTypes.instanceOf({}),\n contentClassName: PropTypes.string,\n gutterClassName: PropTypes.string,\n wrapperClassName: PropTypes.string,\n};\nconst TempRevealPanel = forwardRef(RevealPanel);\nTempRevealPanel.HeaderLeft = RevealPanelHeaderLeft;\nTempRevealPanel.HeaderRight = RevealPanelHeaderRight;\n\nexport default TempRevealPanel;\n","import { createContext } from 'react';\n\nexport const TabsContext = createContext();\n","import { createContext } from 'react';\n\nexport default createContext();\n","import React, { useEffect, useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport TabContext from './TabContext';\nimport { usePrevious } from '../../../hooks';\n\nfunction TabContent(props) {\n const {\n addTab,\n hideTab,\n updateTab,\n showTab,\n children,\n selectedPath,\n tabData,\n tabsId,\n tabExists,\n path,\n rendered,\n hideTabContent,\n tabs,\n } = props;\n\n useEffect(() => {\n const tempTabData = { ...tabData };\n\n if (!tabExists(path)) {\n addTab(tempTabData, path);\n }\n }, [tabData, path]);\n\n const prevTabData = usePrevious(tabData);\n useEffect(() => {\n if (\n tabExists(path) && tabData?.title\n && (prevTabData?.title !== tabData?.title || prevTabData?.selected !== tabData.selected)\n ) {\n const tempTabData = { ...tabData };\n updateTab(tempTabData, path);\n }\n }, [tabData, path, prevTabData, tabs]);\n\n useEffect(() => {\n showTab(path);\n return () => hideTab(path);\n }, []);\n\n const shouldRender = useMemo(() => {\n if (!Object.keys(tabs).length) {\n return false;\n }\n\n if (hideTabContent || tabs[tabData.id].show === false) {\n return false;\n }\n\n if (!rendered) {\n return tabExists(path);\n }\n return selectedPath && selectedPath.indexOf(tabData.id) > -1;\n }, [hideTabContent, rendered, selectedPath, tabData, tabs]);\n\n const context = useMemo(() => ({ path, tabsId }), [path, tabsId]);\n\n if (!shouldRender) return null;\n return (\n
    -1 ? 'block' : 'none' }}>\n \n {children}\n \n
    \n );\n}\n\nTabContent.propTypes = {\n addTab: PropTypes.func,\n updateTab: PropTypes.func,\n hideTab: PropTypes.func,\n showTab: PropTypes.func,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n path: PropTypes.instanceOf(Array),\n hideTabContent: PropTypes.bool,\n rendered: PropTypes.bool,\n selectedPath: PropTypes.instanceOf(Array),\n tabExists: PropTypes.func,\n tabsId: PropTypes.string,\n tabData: PropTypes.instanceOf(Object),\n tabs: PropTypes.instanceOf(Object),\n};\n\nexport default TabContent;\n","import React, {\n useContext, useEffect, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { TabsContext } from '../tabs-context';\nimport TabContext from './TabContext';\nimport TabContent from './TabContent';\n\nfunction Tab(props) {\n const { id } = props;\n const tabsContext = useContext(TabsContext);\n const tabContext = useContext(TabContext);\n const {\n tabExists,\n selectedPath,\n addTab,\n updateTab,\n hideTab,\n showTab,\n rendered,\n hideTabContent,\n tabs,\n } = tabsContext;\n const {\n children,\n } = props;\n const [path, setPath] = useState('');\n\n useEffect(() => {\n let tempPath;\n if (tabContext && path) {\n if (tabContext.tabsId === tabsContext.id) {\n tempPath = tabContext.path.concat([id]);\n } else {\n tempPath = [id];\n }\n } else {\n tempPath = [id];\n }\n setPath(tempPath);\n }, [tabContext]);\n\n if (!path) {\n return null;\n }\n\n return (\n \n {children}\n \n );\n}\n\nTab.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n id: PropTypes.string,\n};\n\nTab.defaultProps = {};\n\nexport default Tab;\n","import React, {\n useEffect, useMemo, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport Tab from './js/Tab';\n\nimport Collapsible from '../Collapsible';\nimport Icon from '../Icon';\nimport { TabsContext } from './tabs-context';\n\nfunction Tabs(props) {\n const {\n children,\n className,\n id,\n onTabChange,\n type,\n hideTabContent,\n } = props;\n const [tabs, setTabs] = useState({});\n const [selectedPath, setSelectedPath] = useState([]);\n const [rendered, setRendered] = useState(false);\n const [initialPath, setInitialPath] = useState(null);\n\n useEffect(() => {\n setSelectedPath(initialPath);\n }, [initialPath]);\n\n const updateTabsList = (tabsState, path, tabData) => {\n let tempTabsState = { ...tabsState };\n const tempTabData = { ...tabData };\n const tempPath = path.slice(0);\n\n while (tempPath.length > 1) {\n tempTabsState = tempTabsState[tempPath.shift()];\n\n if (!tempTabsState) {\n tempTabsState = {};\n }\n }\n\n tempTabData.tempPath = tempPath;\n tempTabsState[tempPath.shift()] = tempTabData;\n\n return tempTabsState;\n };\n\n const toggleTab = (tabsState, path) => {\n let tempTabsState = { ...tabsState };\n const tempPath = path.slice(0);\n\n while (tempPath.length > 1) {\n tempTabsState = tempTabsState[tempPath.shift()];\n }\n\n const key = tempPath.shift();\n if (tempTabsState[key].collapsed === undefined) {\n tempTabsState[key].collapsed = true;\n } else {\n tempTabsState[key].collapsed = !tempTabsState[key].collapsed;\n }\n\n return tempTabsState;\n };\n\n const getCssClasses = () => {\n let cssClasses = ['tyk-tabs'];\n\n cssClasses.push(`tyk-tabs--${type || 'default'}`);\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n return cssClasses.join(' ');\n };\n\n const setCurrentSelectedPath = (path, tabData) => {\n const tempPath = path.slice(0);\n let tempRendered = true;\n\n if (tabData.collapsible) {\n tempPath.push(Object.keys(tabData.tabs)[0]);\n tempRendered = false;\n }\n\n setTabs((prevTabs) => {\n let tempTabs = { ...prevTabs };\n\n tempTabs = toggleTab(tempTabs, path);\n\n return tempTabs;\n });\n setSelectedPath(tempPath);\n setRendered(tempRendered);\n\n if (onTabChange) {\n onTabChange(tabData);\n }\n };\n\n const getTabCssClass = (tabId) => {\n const cssClasses = [];\n\n if (selectedPath && selectedPath.indexOf(tabId) > -1) {\n cssClasses.push('active');\n }\n\n return cssClasses.join(' ');\n };\n\n const genTabs = (currentTabs, path) => {\n if (!currentTabs) {\n return null;\n }\n\n return (\n
      \n {\n Object.keys(currentTabs).map((tabId, index) => {\n const tempPath = path ? path.concat([currentTabs[tabId].id]) : [currentTabs[tabId].id];\n const iconType = currentTabs[tabId].collapsed ? 'chevron-up' : 'chevron-down';\n\n if (currentTabs[tabId].show === false) {\n return null;\n }\n\n return (\n
    • \n \n { currentTabs[tabId].title }\n {\n currentTabs[tabId].collapsible\n ? \n : null\n }\n \n {\n currentTabs[tabId].collapsible\n ? (\n \n {genTabs(currentTabs[tabId].tabs, tempPath)}\n \n )\n : genTabs(currentTabs[tabId].tabs, tempPath)\n }\n
    • \n );\n })\n }\n
    \n );\n };\n\n const addTab = (tabData, path) => {\n setTabs((prevTabs) => updateTabsList({ ...prevTabs }, path, tabData));\n\n if (tabData.selected) {\n setInitialPath(path);\n }\n };\n\n const updateTab = (tabData, path) => {\n setTabs((prevTabs) => {\n const tempTabs = { ...prevTabs };\n tempTabs[tabData.id] = tabData;\n return tempTabs;\n });\n\n if (tabData.selected) {\n setCurrentSelectedPath(path, tabData);\n }\n };\n\n const hideTab = (path) => {\n setTabs((prevTabs) => {\n const tempTabs = { ...prevTabs };\n tempTabs[path].show = false;\n\n return tempTabs;\n });\n };\n\n const showTab = (path) => {\n setTabs((prevTabs) => {\n const tempTabs = { ...prevTabs };\n\n tempTabs[path].show = true;\n\n return tempTabs;\n });\n };\n\n const tabExists = (path) => {\n let tempTabs = { ...tabs };\n const tempPath = path.slice(0);\n while (tempPath.length > 1) {\n tempTabs = tempTabs[tempPath.shift()];\n }\n\n const key = tempPath.shift();\n\n return Boolean(tempTabs?.[key]);\n };\n\n const context = useMemo(() => ({\n id,\n addTab,\n hideTab,\n updateTab,\n showTab,\n tabExists,\n selectedPath,\n rendered,\n hideTabContent,\n tabs,\n }), [\n id,\n addTab,\n hideTab,\n updateTab,\n showTab,\n tabExists,\n selectedPath,\n rendered,\n hideTabContent,\n tabs,\n ]);\n\n return (\n
    \n {genTabs(tabs)}\n \n {\n (typeof children === 'function')\n ? children({\n hideTab,\n showTab,\n })\n : children\n }\n \n
    \n );\n}\n\nTabs.propTypes = {\n className: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n hideTabContent: PropTypes.bool,\n id: PropTypes.string,\n onTabChange: PropTypes.func,\n type: PropTypes.string,\n};\n\nTabs.Tab = Tab;\n\nexport default Tabs;\n","import React, {\n useCallback, useEffect, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport FloatingContainer from '../FloatingContainer';\nimport Icon from '../Icon';\n\nfunction Tooltip({\n render,\n className,\n children,\n position = 'auto',\n style,\n icon = false,\n closable,\n isOpened = false,\n additionalClickParents = [],\n ...props\n}) {\n const [isActive, setIsActive] = useState(false);\n const wrapperRef = useRef(null);\n const tooltipRef = useRef(null);\n const activeEvents = closable\n ? {\n onClick: () => setIsActive(true),\n }\n : {\n onMouseEnter: () => setIsActive(true),\n onMouseLeave: () => setIsActive(false),\n onFocus: () => setIsActive(true),\n onBlur: () => setIsActive(false),\n };\n\n const handleDocumentClick = useCallback((e) => {\n if ([...additionalClickParents, tooltipRef.current].some((p) => p?.contains?.(e.target))) {\n return;\n }\n setIsActive(false);\n }, [additionalClickParents]);\n\n useEffect(() => {\n document.addEventListener('click', handleDocumentClick, true);\n return () => document.removeEventListener('click', handleDocumentClick, true);\n }, [handleDocumentClick]);\n\n useEffect(() => {\n setIsActive(isOpened);\n }, [isOpened]);\n\n const classes = ['tyk-tooltip', className].filter(Boolean).join(' ');\n return (\n \n {children}\n {isActive && (\n \n
    \n {icon && (\n icon === true ? (\n \n ) : (\n icon\n )\n )}\n
    \n {render}\n
    \n {closable && (\n {\n e.stopPropagation();\n setIsActive(false);\n }}\n />\n )}\n
    \n \n )}\n
    \n );\n}\n\nTooltip.propTypes = {\n children: PropTypes.node.isRequired,\n /** custom styles to apply on hovered element */\n style: PropTypes.instanceOf(Object),\n /** describes where the tooltip should be displayed in relation\n * whith the hovered element: top, bottom, left, right\n */\n position: PropTypes.string,\n /** content of the tooltip, can be a string or a React node element */\n render: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.string,\n ]),\n /** additional tooltip classes */\n className: PropTypes.string,\n /** if `true` displays the \"question mark\" icon;\n * optionally you can pass a different icon\n */\n icon: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.node,\n ]),\n /** if `true` the tooltip is activated on click and an \"x\" is displayed to close it;\n * if `false` the tooltip is activated on hover and it closes when no longer hovering\n */\n closable: PropTypes.bool,\n /** handles the `isActive` state of the tooltip from outside */\n isOpened: PropTypes.bool,\n /** Additional dom elements to check if the document click was inside of them.\n * Useful when you want to open the tooltip after an interaction\n * with an element not inside the tooltip root.\n */\n additionalClickParents: PropTypes.instanceOf(Array),\n};\n\nexport default Tooltip;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Tooltip from '../Tooltip';\n/**\n * TextEllipsis component helps you to hide a part of a text,\n * but displaying it when it's being hovered.\n * The entire text is displayed with the help of Tooltip component\n */\n\nfunction TextEllipsis({ text, limit, position }) {\n return (\n text.length > limit\n ? (\n \n {text.substring(0, limit)}\n ...\n \n )\n : text\n );\n}\n\nTextEllipsis.propTypes = {\n /** Text to be shrinked by TextEllipsis */\n text: PropTypes.string,\n /** Number of characters that TextEllipsis would leave visible */\n limit: PropTypes.number,\n /** tooltip position */\n position: PropTypes.string,\n};\n\nexport default TextEllipsis;\n","import React, { useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction shouldShowPage(currentNr, pageNr, totalNrOfPages) {\n const basePageNr = 5;\n const minimumNrOfPages = 10;\n\n if (totalNrOfPages < minimumNrOfPages) {\n return true;\n }\n\n if (\n pageNr < basePageNr\n && currentNr < basePageNr\n ) {\n return true;\n }\n\n if (\n pageNr > totalNrOfPages - basePageNr\n && currentNr > totalNrOfPages - basePageNr\n ) {\n return true;\n }\n\n if (\n currentNr >= pageNr - 2\n && currentNr <= pageNr + 2\n ) {\n return true;\n }\n\n return [0, 1, totalNrOfPages - 1, totalNrOfPages].includes(currentNr);\n}\n\nfunction getPagesArr(nrOfPages, selectedPage) {\n let i;\n const pagesArr = [];\n\n for (i = 0; i <= nrOfPages; i += 1) {\n if (shouldShowPage(i, selectedPage, nrOfPages)) {\n if (i > pagesArr.at(-1)) {\n pagesArr.push(`...-${i}`);\n }\n pagesArr.push(i + 1);\n }\n }\n\n return pagesArr;\n}\n\nfunction Pagination(props) {\n const {\n value = 0,\n totalNrOfPages,\n onChange,\n } = props;\n\n const [selectedPage, setSelectedPage] = useState(value);\n\n const pagesArray = useMemo(\n () => getPagesArr(totalNrOfPages, selectedPage),\n [selectedPage, totalNrOfPages],\n );\n\n function goToPage(pageNr) {\n setSelectedPage(pageNr);\n if (onChange) onChange(pageNr);\n }\n\n return (\n totalNrOfPages\n ? (\n
      \n {selectedPage > 0 && totalNrOfPages > 5 && (\n
    • \n \n
    • \n )}\n {\n pagesArray.map((pageNr) => (\n
    • \n {\n String(pageNr).startsWith('...')\n ? ...\n : \n }\n
    • \n ))\n }\n {selectedPage < totalNrOfPages && totalNrOfPages > 5 && (\n
    • \n \n
    • \n )}\n
    \n )\n : null\n );\n}\n\nPagination.propTypes = {\n value: PropTypes.number,\n totalNrOfPages: PropTypes.number,\n onChange: PropTypes.func,\n};\n\nexport default Pagination;\n","import { createContext } from 'react';\n\nexport const tableContext = createContext();\n","import React, { useState, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { tableContext } from '../tableContext';\nimport Icon from '../../Icon';\n\nexport function HeaderCell({ column }) {\n const { sortable } = column;\n const [sortOrder, setSortOrder] = useState(sortable?.default || 'ASC');\n const { state, sendMessage } = useContext(tableContext);\n return (\n {\n sendMessage('sort', { column, sortOrder });\n setSortOrder(sortOrder === 'ASC' ? 'DESC' : 'ASC');\n } : null}\n className={state.maxHeight ? 'fixed-header' : ''}\n >\n {column.name}\n {column.sortable && (\n \n \n \n )}\n \n );\n}\n\nHeaderCell.propTypes = {\n column: PropTypes.instanceOf(Object),\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { HeaderCell } from './header-cell';\nimport { tableContext } from '../tableContext';\n\nexport function Header({ allRowsSelected }) {\n const { state, sendMessage } = useContext(tableContext);\n const { columns, selectable } = state;\n\n const generateHeaders = () => columns.map((column) => (\n \n ));\n\n const generateSelectable = () => {\n const Component = selectable.type;\n return (\n \n {selectable?.allowSelectAll ? (\n
    \n {\n const isCheckbox = v?.target?.tagName.toLowerCase() === 'input' && v?.target?.type.toLowerCase() === 'checkbox';\n sendMessage('header.selectAll.change', isCheckbox ? v.target.checked : Boolean(v));\n }}\n >\n {selectable.values?.value}\n \n
    \n ) : (\n selectable.name || 'Select'\n )}\n \n );\n };\n\n return (\n \n \n {selectable?.position === 'LEFT' && generateSelectable()}\n {generateHeaders()}\n {selectable?.position === 'RIGHT' && generateSelectable()}\n \n \n );\n}\n\nHeader.propTypes = {\n allRowsSelected: PropTypes.bool,\n};\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * - Checkboxes are used when a user needs to select one or more values from a series of options.\n * - They can be also be used as a binary toggle but consider radio instead.\n * - Can be used with Formik respectively (FormikCheckbox)\n */\nclass Checkbox extends Component {\n getCssClasses() {\n const {\n inline, disabled, readOnly, theme = '', wrapperClassName = '',\n } = this.props;\n\n const cssClasses = [wrapperClassName];\n\n cssClasses.push('tyk-checkbox');\n\n if (inline) {\n cssClasses.push('tyk-checkbox--inline');\n }\n\n if (theme.trim()) {\n cssClasses.push(...theme.split(' ').map((t) => `tyk-checkbox--theme-${t}`));\n }\n\n if (disabled || readOnly) {\n cssClasses.push('tyk-checkbox--is-disabled');\n }\n\n return cssClasses.join(' ');\n }\n\n displayError() {\n const { error } = this.props;\n if (!error) return null;\n\n return (\n

    \n {error}\n

    \n );\n }\n\n displayNote() {\n const { note } = this.props;\n if (!note) return null;\n\n return (\n

    \n {note}\n

    \n );\n }\n\n render() {\n const {\n input, value, label, ...rest\n } = this.props;\n return (\n \n
    \n \n {this.displayNote()}\n {this.displayError()}\n
    \n \n );\n }\n}\n\nCheckbox.propTypes = {\n /** Disable a checkbox */\n disabled: PropTypes.bool,\n /** Readonly prop behaves the same as disable on checkboxes */\n readOnly: PropTypes.bool,\n /** Align checkbox with in same line with other elements */\n inline: PropTypes.bool,\n /** Set a theme for checkbox */\n theme: PropTypes.string,\n /** Set an error state for checkbox if boolean will show just icon without message */\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n /** Adds additional information under the checkbox element */\n note: PropTypes.string,\n input: PropTypes.instanceOf(Object),\n /** Adds a label to checkbox */\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n /** Set a name for checkbox */\n name: PropTypes.string,\n /** Set initial value for checkbox */\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n /** Make checkbox checked by default */\n checked: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n /** Callback function executed on change of checkbox */\n onChange: PropTypes.func,\n /** CSS classes added to the wrapper of the component */\n wrapperClassName: PropTypes.string,\n};\n\nexport default Checkbox;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nexport function Cell({ col, row }) {\n if (!row.values[col.id]) {\n return ; // eslint-disable-line jsx-a11y/control-has-associated-label\n }\n\n if (col.type === 'string') {\n return (\n \n {row.values[col.id]?.value}\n \n );\n }\n const Component = col.type;\n return (\n \n \n {row.values[col.id].children ? row.values[col.id].children : null}\n
    \n \n );\n}\n\nCell.propTypes = {\n col: PropTypes.instanceOf(Object),\n row: PropTypes.instanceOf(Object),\n index: PropTypes.number,\n};\n","import React, { useCallback, useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport Checkbox from '../../../form/components/Checkbox';\nimport { Cell } from './cell';\nimport { tableContext } from '../tableContext';\n\nexport function Row({ row, index }) {\n const { state, sendMessage } = useContext(tableContext);\n const { columns, selectable } = state;\n\n const SelectableCheckbox = useCallback(() => (\n // eslint-disable-next-line jsx-a11y/control-has-associated-label\n \n sendMessage('row.selected', { index, selected: v.target.checked })}\n />\n \n ), [row.selected, index]);\n\n return (\n \n {selectable && selectable.position === 'LEFT' && SelectableCheckbox()}\n {columns.map((col) => (\n \n ))}\n {selectable && selectable.position === 'RIGHT' && SelectableCheckbox()}\n \n );\n}\n\nRow.propTypes = {\n row: PropTypes.instanceOf(Object),\n index: PropTypes.number,\n};\n","import React, { useContext } from 'react';\nimport { tableContext } from '../tableContext';\nimport { Row } from './row';\n\nexport function Body() {\n const { state } = useContext(tableContext);\n const { rows } = state;\n\n return (\n \n {\n // eslint-disable-next-line react/no-array-index-key\n rows.map((row, i) => )\n }\n \n );\n}\n","import React, {\n useCallback, useEffect, useMemo, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport Message from '../Message';\nimport Pagination from '../../form/components/Pagination';\nimport Loader from '../Loader';\nimport InfiniteScroller from '../InfiniteScroller';\nimport { Header } from './js/header';\nimport { Body } from './js/body';\nimport { tableContext } from './tableContext';\n\n/**\n * This is tyk's table component used to render a data in a tabular view.\n * See the example configuration object below to understand how to hydrate the table component\n */\n\nfunction Table({\n value, onChange, noDataMessage, loading, infiniteScrolling,\n}) {\n const [state, setState] = useState(null);\n const [onChangeMsg, setOnChangeMsg] = useState('api');\n const itemsListRef = useRef(null);\n const sortRows = useCallback((col, sortOrder) => {\n setState((prevState) => ({\n ...prevState,\n sort: {\n order: sortOrder,\n col,\n },\n }));\n }, []);\n\n const selectAllRows = useCallback((selected) => {\n setState((prevState) => ({\n ...prevState,\n rows: prevState.rows.map((row) => ({ ...row, selected })),\n }));\n }, []);\n\n const selectRow = useCallback(({ index, selected }) => {\n setState((prevState) => ({\n ...prevState,\n rows: [\n ...prevState.rows.slice(0, index),\n { ...prevState.rows[index], selected },\n ...prevState.rows.slice(index + 1),\n ],\n }));\n }, []);\n\n const setPagination = useCallback((data) => {\n setState((prevState) => ({\n ...prevState,\n pagination: {\n ...prevState.pagination,\n current: data + 1,\n },\n }));\n }, []);\n\n const api = {\n getState: () => state,\n setState: (newState) => setState(newState),\n };\n\n const sendMessage = useCallback((message, data) => {\n setOnChangeMsg(message);\n if (message === 'sort') {\n sortRows(data.column.id, data.sortOrder);\n }\n\n if (message === 'header.selectAll.change') {\n selectAllRows(data);\n }\n\n if (message === 'row.selected') {\n selectRow(data);\n }\n\n if (message === 'pagination.change') {\n setPagination(data);\n }\n }, [sortRows, selectAllRows, selectRow, setPagination]);\n\n const context = useMemo(() => ({ state, sendMessage }), [state, sendMessage]);\n\n useEffect(() => setState(value), [value]);\n useEffect(() => {\n if (onChange) {\n onChange(onChangeMsg, state, api);\n }\n setOnChangeMsg('api');\n }, [state]);\n\n if (!state) {\n return ;\n }\n\n if (state.rows <= 0) {\n return {noDataMessage || 'No Data Available'};\n }\n\n const getTable = () => (\n \n
    selected)} />\n \n
    \n );\n\n return (\n \n
    \n {\n loading && \n }\n {\n infiniteScrolling && state.pagination\n ? (\n state.pagination.current}\n loadMore={(num) => sendMessage('pagination.change', num)}\n pageNumber={state.pagination.current - 1}\n initialLoad={false}\n >\n { getTable() }\n \n )\n : getTable()\n }\n
    \n {state.pagination && !infiniteScrolling && (\n
    \n sendMessage('pagination.change', num)}\n />\n
    \n )}\n
    \n );\n}\n\nTable.propTypes = {\n /** Configuration object used to render the component */\n value: PropTypes.shape({\n /** Configuration for table columns */\n columns: PropTypes.arrayOf(PropTypes.shape({\n /** Unique id of the column */\n id: PropTypes.string.isRequired,\n /** Name of the column */\n name: PropTypes.string,\n /** Type of column, String by default */\n type: PropTypes.oneOfType([\n /** Just renders cell data of type strings */\n PropTypes.string,\n /** Render cell of elements (eg. Input / Button) */\n PropTypes.element,\n /** Render a custom function/component */\n PropTypes.func,\n ]),\n sortable: PropTypes.oneOfType([\n /** Make Column sortable */\n PropTypes.bool,\n /** Configure sorting behaviour */\n PropTypes.shape({\n /** Set default sorting direction ASC / DESC */\n default: PropTypes.string,\n }),\n ]),\n })),\n /** Configuration for table rows */\n rows: PropTypes.arrayOf(PropTypes.shape({})),\n /** Configuration to make table rows selectable */\n selectable: PropTypes.shape({}),\n /** Renders pagination for table if the object is missing / empty no pagination is rendered. */\n pagination: PropTypes.shape({}),\n /** Sets maximum height for table container. */\n maxHeight: PropTypes.string,\n /** Styling for the table container. */\n styling: PropTypes.shape({\n /** It's recommended to add styles to a class and pass the class in this object */\n className: PropTypes.string,\n }),\n }).isRequired,\n /** Callback executed with message and value when there are changes on table */\n onChange: PropTypes.func,\n /** Renders a component with the given message when `config.rows` is empty */\n noDataMessage: PropTypes.string,\n /** Show placeholder loader */\n loading: PropTypes.bool,\n /** Adds infinite scroller on page and calls `onChange` with `pagination.change` message */\n infiniteScrolling: PropTypes.bool,\n};\n\nTable.defaultProps = {\n loading: false,\n infiniteScrolling: false,\n noDataMessage: 'No Data Available',\n onChange: null,\n};\n\nexport default Table;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Column({\n children,\n align,\n className,\n offset,\n size,\n ...rest\n}) {\n const classes = [\n 'tyk-col',\n className,\n align && `tyk-col--align-${align}`,\n ...size.split(' ').map((cSize) => `tyk-col--${cSize}`),\n ...(offset ? offset.split(' ') : []).map((cOffset) => `tyk-col--offset-${cOffset}`),\n ].filter(Boolean).join(' ');\n\n return (\n
    \n { children }\n
    \n );\n}\n\nColumn.propTypes = {\n /**\n * This property describes how the column element will be aligned vertically\n * within a Row: bottom, center, top\n */\n align: PropTypes.string,\n /** Css classes that can be passed to the column element */\n className: PropTypes.string,\n /**\n * Specifies the size of the column within a Row (values must be between 1 - 12)\n */\n size: PropTypes.string.isRequired,\n /**\n * Specifies the left gap a column can have within a Row (values must be between 1 - 12)\n */\n offset: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n PropTypes.object,\n PropTypes.node,\n ]),\n};\n\nexport default Column;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/** Row component which must be always present as a wrapper for Columns */\nfunction Row({\n className,\n nogutters,\n children,\n ...rest\n}) {\n const classes = [\n 'tyk-row',\n className,\n nogutters && 'no-gutters',\n nogutters && 'tyk-row--gutterless',\n ].filter(Boolean).join(' ');\n\n return (\n
    \n { children }\n
    \n );\n}\n\nRow.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n ]),\n /** Css classes that can be passed to the Row element */\n className: PropTypes.string,\n /** Removes all the spaces between column */\n nogutters: PropTypes.bool,\n};\n\nexport default Row;\n","import { createContext } from 'react';\n\nexport const DropdownContext = createContext();\n","import React, { cloneElement, useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { DropdownContext } from '../dropdown-context';\nimport Icon from '../../../../components/Icon';\n\nfunction DropdownItem(props) {\n const {\n customdropdownitem,\n children,\n eventKey,\n href,\n target,\n title,\n onClick,\n } = props;\n const dropdownItemCLick = useCallback((dropdownContext, itemProps) => {\n dropdownContext.onSelectItem(eventKey, itemProps);\n\n if (onClick) onClick(eventKey);\n }, []);\n\n return (\n \n {\n (dropdownContext) => (\n dropdownItemCLick(dropdownContext, props)}\n onKeyUp={() => {}}\n >\n {\n customdropdownitem\n ? cloneElement(customdropdownitem, {})\n : (\n \n {\n eventKey\n && dropdownContext.selectedItem === eventKey\n && dropdownContext.showCheckmark\n ? \n : null\n }\n \n {title || children}\n \n \n )\n }\n \n )\n }\n \n );\n}\n\nDropdownItem.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n customdropdownitem: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n ]),\n eventKey: PropTypes.string,\n href: PropTypes.string,\n target: PropTypes.string,\n onClick: PropTypes.func,\n title: PropTypes.string,\n};\n\nexport default DropdownItem;\n","import React, {\n Component, createRef,\n} from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport DropdownItem from './js/DropdownItem';\nimport Button from '../../../components/Button';\nimport { DropdownContext } from './dropdown-context';\n\nclass Dropdown extends Component {\n static isElemInRightView(el, dropdownWidth) {\n const windowWidth = window.innerWidth;\n const offset = el.getBoundingClientRect();\n const elemRight = offset.left + dropdownWidth;\n\n return elemRight <= windowWidth;\n }\n\n static isElemInBottomView(el, dropdownHeight) {\n const windowHeight = window.innerHeight;\n const offset = el.getBoundingClientRect();\n const elHeight = el.clientHeight;\n const elemBottom = offset.top + elHeight + dropdownHeight;\n\n return elemBottom <= windowHeight;\n }\n\n constructor(props) {\n super(props);\n\n const {\n selectedItem,\n open,\n } = this.props;\n\n this.state = {\n opened: open,\n selectedItem: selectedItem || null,\n };\n\n this.dropdownRef = createRef();\n this.dropdownListRef = createRef();\n this.dropdownButtonRef = createRef();\n this.onSelectItem = this.onSelectItem.bind(this);\n this.toggleDropdown = this.toggleDropdown.bind(this);\n this.handleClickOutside = this.handleClickOutside.bind(this);\n }\n\n componentDidMount() {\n document.addEventListener('mousedown', this.handleClickOutside);\n\n if (this.dropdownListRef.current) {\n this.getStyles();\n }\n }\n\n componentDidUpdate(prevProps) {\n const {\n open,\n } = this.props;\n const {\n opened,\n } = this.state;\n\n if (this.dropdownListRef.current) {\n this.getStyles();\n }\n\n if (\n !prevProps.open\n && open === true\n && !opened\n ) {\n this.toggleDropdown();\n }\n\n if (\n prevProps.open\n && open === false\n && opened\n ) {\n this.closeDropdown();\n }\n }\n\n componentWillUnmount() {\n document.removeEventListener('mousedown', this.handleClickOutside);\n }\n\n handleClickOutside(event) {\n if (\n this.dropdownListRef.current && !this.dropdownListRef.current.contains(event.target)\n && this.dropdownRef.current && !this.dropdownRef.current.contains(event.target)\n ) {\n this.closeDropdown();\n }\n }\n\n onSelectItem(itemId, itemProps) {\n const { closeOnSelect, onSelect } = this.props;\n const changes = {\n selectedItem: itemId,\n selectedItemProps: itemProps,\n };\n\n if (closeOnSelect) {\n changes.opened = false;\n }\n\n this.setState(changes);\n\n if (onSelect && typeof onSelect === 'function') {\n onSelect(itemId);\n }\n }\n\n getStyles() {\n const {\n display,\n position,\n offset,\n } = this.props;\n\n const dropdownEl = this.dropdownListRef.current;\n\n if (offset) {\n dropdownEl.style.top = `${offset.top}`;\n dropdownEl.style.left = `${offset.left}`;\n return;\n }\n\n const scrollTop = Math.max(\n document.documentElement.scrollTop,\n document.body.scrollTop,\n window.scrollY,\n );\n const el = this.dropdownRef.current;\n const elHeight = el.clientHeight;\n const dropdownHeight = dropdownEl ? dropdownEl.clientHeight : 0;\n const dropdownWidth = dropdownEl ? dropdownEl.clientWidth : 0;\n const offsetPosition = el.getBoundingClientRect();\n const { left, top } = offsetPosition;\n let customTop = 0;\n let customLeft = left;\n\n // calculate top position, depending on the element position on the page\n if (Dropdown.isElemInBottomView(el, dropdownHeight)) {\n customTop = top + scrollTop + elHeight;\n } else {\n customTop = top + scrollTop - dropdownHeight - 5;\n }\n\n if (!Dropdown.isElemInRightView(el, dropdownWidth)) {\n customLeft = left + el.clientWidth - dropdownWidth;\n }\n\n if (position !== 'relative') {\n dropdownEl.style.top = `${customTop}px`;\n if (display !== 'block') {\n dropdownEl.style.left = `${customLeft}px`;\n }\n }\n if (display !== 'block') {\n dropdownEl.style.minWidth = `${this.dropdownButtonRef.current.clientWidth}px`;\n }\n }\n\n getWrapperCssClasses() {\n const {\n btnGroup,\n btnGroupSize,\n className,\n btnTheme,\n wrapperClassName = '',\n } = this.props;\n let cssClasses = [wrapperClassName, 'tyk-dropdown'];\n\n cssClasses.push(`theme-${btnTheme || 'default'}`);\n\n if (className) {\n cssClasses = cssClasses.concat(className.split(' '));\n }\n\n if (btnGroup) {\n cssClasses.push('tyk-button-group');\n cssClasses.push(btnGroupSize ? `tyk-button-group--${btnGroupSize}` : 'tyk-button-group--md');\n }\n\n return cssClasses.join(' ');\n }\n\n getCssClasses() {\n const {\n opened,\n } = this.state;\n const {\n hasCustomContent,\n display,\n listclassnames,\n position,\n maxHeight,\n } = this.props;\n let cssClasses = ['tyk-dropdown-menu', 'tyk-dropdown'];\n\n if (maxHeight) {\n cssClasses.push('tyk-dropdown--scrollable');\n }\n\n if (opened) {\n cssClasses.push('opened');\n }\n\n if (listclassnames) {\n cssClasses = cssClasses.concat(listclassnames.split(' '));\n }\n\n if (display) {\n cssClasses.push('tyk-dropdown--block');\n }\n\n if (hasCustomContent) {\n cssClasses.push('tyk-dropdown--custom');\n }\n\n if (position === 'relative') {\n cssClasses.push('tyk-dropdown--relative');\n }\n\n return cssClasses.join(' ');\n }\n\n getBtnTitle() {\n const { btnTitle, stopButtonTextChange } = this.props;\n const { selectedItemProps } = this.state;\n\n if (!stopButtonTextChange && selectedItemProps?.title) {\n return selectedItemProps.title;\n }\n\n return btnTitle;\n }\n\n closeDropdown() {\n const { onClose } = this.props;\n\n this.setState({\n opened: false,\n }, () => {\n if (onClose) {\n onClose();\n }\n });\n }\n\n toggleDropdown() {\n const {\n opened,\n } = this.state;\n if (opened) {\n this.closeDropdown();\n\n return;\n }\n\n this.setState({\n opened: true,\n });\n }\n\n render() {\n const {\n appendTo,\n btnClassName,\n btnSize,\n customBtnTitle,\n hasCustomContent,\n btnTheme,\n children,\n label,\n showDropdownIcon,\n showTriggerButton,\n showCheckmark,\n disabled = false,\n maxHeight,\n } = this.props;\n const {\n selectedItem,\n opened,\n } = this.state;\n const DropdownWrapperTag = hasCustomContent ? 'div' : 'ul';\n return (\n \n {\n label\n ? (\n \n )\n : null\n }\n {\n showTriggerButton\n ? (\n \n { customBtnTitle || this.getBtnTitle() }\n \n )\n : null\n }\n {\n opened\n ? ReactDOM.createPortal(\n \n {\n opened\n ? (\n \n {\n (typeof children === 'function')\n ? children({\n closeDropdown: this.closeDropdown.bind(this),\n })\n : children\n }\n \n )\n : null\n }\n ,\n document.querySelector(appendTo || 'body'),\n )\n : null\n }\n \n );\n }\n}\n\nDropdown.propTypes = {\n appendTo: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n PropTypes.func,\n ]),\n closeOnSelect: PropTypes.bool,\n btnClassName: PropTypes.string,\n btnSize: PropTypes.string,\n btnGroupSize: PropTypes.string,\n btnTheme: PropTypes.string,\n btnTitle: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n customBtnTitle: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n btnGroup: PropTypes.bool,\n className: PropTypes.string,\n display: PropTypes.string,\n disabled: PropTypes.bool,\n hasCustomContent: PropTypes.bool,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n listclassnames: PropTypes.string,\n onClose: PropTypes.func,\n onSelect: PropTypes.func,\n open: PropTypes.bool,\n offset: PropTypes.instanceOf(Object),\n position: PropTypes.string,\n selectedItem: PropTypes.string,\n showDropdownIcon: PropTypes.bool,\n stopButtonTextChange: PropTypes.bool,\n showTriggerButton: PropTypes.bool,\n showCheckmark: PropTypes.bool,\n maxHeight: PropTypes.string,\n wrapperClassName: PropTypes.string,\n};\n\nDropdown.defaultProps = {\n closeOnSelect: false,\n showDropdownIcon: true,\n showTriggerButton: true,\n showCheckmark: true,\n open: false,\n};\n\nDropdown.Item = DropdownItem;\n\nexport default Dropdown;\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '../../../components/Button';\nimport ButtonGroup from '../../../components/ButtonGroup';\n\nfunction DropdownTrigger({\n title,\n theme = 'primary',\n splitTrigger,\n toggle,\n onTriggerClick,\n value,\n}, ref) {\n return (\n !splitTrigger ? (\n \n {title}\n \n ) : (\n \n onTriggerClick(value) }}\n >\n {title}\n \n \n \n )\n );\n}\n\nDropdownTrigger.propTypes = {\n title: PropTypes.string,\n theme: PropTypes.string,\n splitTrigger: PropTypes.bool,\n toggle: PropTypes.func,\n dropdownRef: PropTypes.shape({\n current: PropTypes.instanceOf(Element),\n }).isRequired,\n onTriggerClick: PropTypes.func,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n};\n\nexport default forwardRef(DropdownTrigger);\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport FloatingContainer from '../../../components/FloatingContainer';\nimport List from '../../../components/List';\n\nfunction DropdownListWrapper({\n children,\n element,\n maxWidth,\n}, ref) {\n return (\n \n \n { children }\n \n \n );\n}\n\nDropdownListWrapper.propTypes = {\n element: PropTypes.shape({\n current: PropTypes.instanceOf(Element),\n }),\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n maxWidth: PropTypes.string,\n};\n\nexport default forwardRef(DropdownListWrapper);\n","import { createContext, useContext } from 'react';\n\nexport const DropdownContext = createContext();\n\nfunction useDropdowContext() {\n return useContext(DropdownContext);\n}\n\nexport default useDropdowContext;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport List from '../../../components/List';\nimport useDropdowContext from './useDrodpownContext';\n\nfunction DropdownItem({\n children,\n value,\n}) {\n const { onChange, value: dropdownValue } = useDropdowContext();\n return (\n \n onChange(value) }}\n >\n { children }\n \n \n );\n}\n\nDropdownItem.propTypes = {\n children: PropTypes.node,\n // eslint-disable-next-line\n value: PropTypes.any,\n};\n\nexport default DropdownItem;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport useDropdown from './useDropdown';\nimport DropdownTrigger from './DropdownTrigger';\nimport DropdownListWrapper from './DropdownListWrapper';\nimport DropdownItem from './DropdowItem';\nimport { DropdownContext } from './useDrodpownContext';\n\nfunction Dropdown2({\n children,\n title,\n theme,\n splitTrigger,\n onChange,\n value,\n setSelectedValueAsTitle,\n maxWidth,\n onTriggerClick,\n}) {\n const {\n isOpen,\n toggle,\n dropdownRef,\n dropdownListRef,\n } = useDropdown({\n splitTrigger,\n });\n\n const contextValue = useMemo(() => ({\n onChange,\n value,\n }), [onChange, value]);\n\n return (\n \n \n {isOpen && (\n \n { children }\n \n )}\n \n );\n}\n\nDropdown2.propTypes = {\n /** Title of the dropdown. It is being displayed in the Drodpown trigger */\n title: PropTypes.string,\n /** Theme of the dropdown trigger */\n theme: PropTypes.string,\n children: PropTypes.node,\n /** If true, the dropdown trigger will be split into two buttons.\n * one with the dropdown title and one for the arrow */\n splitTrigger: PropTypes.bool,\n /** Callback function called when a dropdown item is selected */\n onChange: PropTypes.func,\n /** Value of the selected dropdown item */\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n /** If true, the selected value will be displayed in the dropdown trigger */\n setSelectedValueAsTitle: PropTypes.bool,\n /** sets the maximum width of the dropdown list menu */\n maxWidth: PropTypes.string,\n /** this function is being called when splitTrigger is true,\n * and receives as parameter the current value of the dropdown */\n onTriggerClick: PropTypes.func,\n};\n\nDropdown2.Item = DropdownItem;\n\nexport default Dropdown2;\n","import {\n useState, useRef, useCallback, useEffect,\n} from 'react';\n\nconst useDropdown = ({\n splitTrigger,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const dropdownRef = useRef(null);\n const dropdownListRef = useRef(null);\n\n const toggle = () => setIsOpen(!isOpen);\n\n const handleOutsideClick = useCallback((e) => {\n const triggerElement = !splitTrigger\n ? dropdownRef.current\n : dropdownRef.current.querySelector('.dropdown__trigger');\n if (\n isOpen\n && !triggerElement.contains(e.target)\n && !dropdownListRef.current.contains(e.target)\n ) {\n setIsOpen(false);\n }\n }, [isOpen]);\n\n useEffect(() => {\n document.addEventListener('mousedown', handleOutsideClick);\n return () => {\n document.removeEventListener('mousedown', handleOutsideClick);\n };\n }, [handleOutsideClick]);\n\n return {\n isOpen,\n toggle,\n dropdownRef,\n dropdownListRef,\n };\n};\n\nexport default useDropdown;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-ace\");","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport ace from 'ace-builds/src-noconflict/ace';\nimport AceEditor from 'react-ace';\nimport 'ace-builds/src-noconflict/mode-javascript';\nimport 'ace-builds/src-noconflict/mode-golang';\nimport 'ace-builds/src-noconflict/mode-python';\nimport 'ace-builds/src-noconflict/mode-css';\nimport 'ace-builds/src-noconflict/mode-json';\nimport 'ace-builds/src-noconflict/mode-xml';\nimport 'ace-builds/src-noconflict/mode-jsx';\nimport 'ace-builds/src-noconflict/ext-searchbox';\nimport 'ace-builds/src-noconflict/ext-beautify';\nimport 'ace-builds/src-noconflict/theme-github';\nimport jsonWorker from 'ace-builds/src-noconflict/worker-json';\n\nace.config.setModuleUrl('ace/mode/json_worker', jsonWorker);\n\nfunction CodeEditor(props) {\n const {\n disabled,\n readOnly,\n disableValidation,\n id,\n error,\n label,\n labelwidth,\n note,\n onBlur,\n onChange,\n theme,\n value,\n setOptions,\n wrapperClassName,\n } = props;\n const classes = [\n 'tyk-form-group',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' ');\n\n const finalSetOptions = {\n ...setOptions,\n ...disableValidation && { useWorker: false },\n };\n\n const getCodeEditorError = useCallback(() => (\n error && error !== 'true' && error !== 'false'\n ? (\n

    \n {error}\n

    \n )\n : null\n ), [error]);\n\n const getLabelStyles = useCallback(() => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n }, [labelwidth]);\n\n const getNonLabelWidth = useCallback(() => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n }, [labelwidth]);\n\n const handleOnChange = useCallback((newValue) => {\n if (onChange) onChange(newValue);\n }, [onChange]);\n\n const handleOnBlur = useCallback(() => {\n if (onBlur) onBlur(value);\n }, [onBlur, value]);\n\n return (\n
    \n {\n label\n ? \n : null\n }\n
    \n {\n // eslint-disable-next-line\n editorInstance.container.style.resize = 'both';\n // mouseup = css resize end\n document.addEventListener('mouseup', () => (\n editorInstance.resize()\n ));\n }}\n setOptions={finalSetOptions}\n />\n {\n note\n ?

    { note }

    \n : null\n }\n { getCodeEditorError() }\n
    \n
    \n );\n}\n\nCodeEditor.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n disableValidation: PropTypes.bool,\n id: PropTypes.string,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n mode: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n theme: PropTypes.string,\n value: PropTypes.string,\n setOptions: PropTypes.instanceOf(Object),\n wrapperClassName: PropTypes.string,\n};\n\nexport default CodeEditor;\n","import React, { Component, createRef } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../../components/Icon';\nimport Button from '../../../components/Button';\n\nconst getStateSelectedValues = (multiple, tags, value) => {\n if (!value) {\n return (multiple || tags) ? [] : null;\n }\n\n return value;\n};\n\nclass Combobox extends Component {\n static closeList() {\n return {\n cursor: -1,\n opened: false,\n };\n }\n\n static openList() {\n return {\n opened: true,\n };\n }\n\n static filterByName(itemValue, inputValue) {\n return itemValue.name.toLowerCase().indexOf(inputValue) > -1;\n }\n\n constructor(props) {\n super(props);\n const {\n multiple,\n tags,\n value,\n } = props;\n\n this.state = {\n cursor: -1,\n opened: false,\n width: 50,\n initialValue: value,\n stateSelectedValues: getStateSelectedValues(multiple, tags, value),\n searchText: '',\n tags,\n };\n\n this.comboboxRef = createRef();\n this.valuesListRef = createRef();\n this.inputRef = createRef();\n this.textRef = createRef();\n\n this.focusInput = this.focusInput.bind(this);\n this.onKeyUp = this.onKeyUp.bind(this);\n Combobox.openList = Combobox.openList.bind(this);\n this.handleClickOutside = this.handleClickOutside.bind(this);\n this.handleItemsNavigation = this.handleItemsNavigation.bind(this);\n this.handleComboboxDropdownClick = this.handleComboboxDropdownClick.bind(this);\n this.handleListItemClick = this.handleListItemClick.bind(this);\n this.handlePillRemoveClick = this.handlePillRemoveClick.bind(this);\n this.manageSelectedTags = this.manageSelectedTags.bind(this);\n }\n\n componentDidMount() {\n const { tags } = this.props;\n\n if (tags) {\n this.setInputWidth();\n }\n\n this.bindEvents();\n }\n\n componentWillUnmount() {\n this.unBindEvents();\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n if (\n JSON.stringify(nextProps.value) !== JSON.stringify(prevState.initialValue)\n || nextProps.tags !== prevState.tags\n ) {\n return {\n initialValue: nextProps.value,\n stateSelectedValues: getStateSelectedValues(\n nextProps.multiple,\n nextProps.tags,\n nextProps.value,\n ),\n tags: nextProps.tags,\n };\n }\n\n return null;\n }\n\n handleItemsNavigation(e) {\n const { tags } = this.props;\n if (['ArrowDown', 'ArrowUp'].indexOf(e.key) === -1) {\n return;\n }\n\n const { cursor } = this.state;\n const filteredValues = this.filterValues();\n let cursorNext;\n\n e.preventDefault();\n\n if (e.key === 'ArrowDown') {\n if (cursor === -1 || cursor === filteredValues.length - 1) {\n cursorNext = 0;\n } else if (cursor < filteredValues.length - 1) {\n cursorNext = cursor + 1;\n }\n }\n\n if (e.key === 'ArrowUp') {\n if (cursor > 0) {\n cursorNext = cursor - 1;\n } else {\n cursorNext = filteredValues.length - 1;\n }\n }\n\n if (this.valuesListRef.current && cursorNext > 4) {\n const scrollTop = (cursorNext - 4) * 38;\n\n this.valuesListRef.current.scrollTop = (!tags) ? 60 + scrollTop : scrollTop;\n } else if (this.valuesListRef.current) {\n this.valuesListRef.current.scrollTop = 0;\n }\n\n this.setState((previousState) => ({\n ...previousState,\n opened: true,\n cursor: cursorNext,\n }));\n }\n\n handleListItemClick(index) {\n // eslint-disable-next-line react/destructuring-assignment\n const clickedValue = this.props.values[index];\n if (clickedValue.disabled) return;\n\n const { multiple, tags } = this.props;\n\n const methodName = (tags) ? 'manageSelectedTags' : 'manageSelectedValues';\n const tempState = { ...this.state, ...this[methodName](index) };\n\n this.setState((previousState) => {\n if (!multiple && !tags) {\n tempState.opened = false;\n }\n\n return { ...previousState, ...tempState };\n });\n }\n\n handlePillRemoveClick(index) {\n const { disabled } = this.props;\n\n if (disabled) {\n return;\n }\n\n const tempState = this.removeSelectedValue(index);\n\n this.setState((previousState) => ({ ...previousState, ...tempState }));\n }\n\n handleClickOutside(event) {\n if (\n this.valuesListRef.current && !this.valuesListRef.current.contains(event.target)\n && this.comboboxRef.current && !this.comboboxRef.current.contains(event.target)\n ) {\n this.setState((previousState) => ({ ...previousState, ...Combobox.closeList() }));\n }\n }\n\n handleComboboxDropdownClick() {\n const { disabled } = this.props;\n\n if (disabled) {\n return;\n }\n\n this.setState((previousState) => ({ ...previousState, ...Combobox.openList() }));\n }\n\n onKeyUp(e) {\n const { tags, allowCustomValues } = this.props;\n const { cursor, opened } = this.state;\n const filteredValues = this.filterValues();\n let tempState = this.getSearchText();\n\n if (tags && e.key !== 'Escape') {\n tempState = { ...tempState, ...this.setInputWidth() };\n }\n\n if (e.key === 'Enter') {\n const methodName = (tags) ? 'manageSelectedTags' : 'manageSelectedValues';\n tempState = { ...tempState, ...this[methodName](cursor) };\n }\n\n if (allowCustomValues && e.key !== ' ' && tags) {\n tempState = { ...tempState, ...this.manageSelectedTags() };\n }\n\n if (\n !opened\n && this.inputRef.current.value\n && filteredValues?.length\n && e.key !== 'Escape'\n ) {\n tempState = { ...tempState, ...Combobox.openList() };\n }\n\n if (e.key === 'Escape' && opened) {\n tempState = { ...tempState, ...Combobox.closeList() };\n }\n\n if (opened && filteredValues && !filteredValues.length) {\n tempState = { ...tempState, ...Combobox.closeList() };\n }\n\n this.setState((previousState) => ({ ...previousState, ...tempState }));\n }\n\n getLabelStyles() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = labelwidth;\n }\n\n return styles;\n }\n\n getNonLabelWidth() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styles;\n }\n\n setInputWidth() {\n return {\n width: 50 + this.textRef.current.offsetWidth,\n };\n }\n\n getSelectedIndex(value) {\n const { stateSelectedValues } = this.state;\n let position = -1;\n\n if (Array.isArray(stateSelectedValues)) {\n stateSelectedValues.forEach((item, index) => {\n if (item.id === value.id) {\n position = index;\n }\n });\n } else if (stateSelectedValues) {\n if (stateSelectedValues.id === value.id) {\n position = 0;\n }\n }\n\n return position;\n }\n\n getSearchText() {\n return {\n searchText: this.inputRef.current.value,\n };\n }\n\n getListItemCssClasses(value, index) {\n const cssClasses = [];\n const {\n cursor,\n } = this.state;\n\n if (cursor === index) {\n cssClasses.push('active');\n }\n\n if (value.disabled) {\n cssClasses.push('disabled');\n }\n\n return cssClasses.join(' ');\n }\n\n getComboboxListCssClass() {\n const { opened } = this.state;\n const { tags, theme } = this.props;\n const themes = theme ? theme.split(' ') : [];\n\n const cssClasses = ['tyk-combobox__list'];\n\n if (opened) {\n cssClasses.push('tyk-combobox__list--opened');\n }\n\n if (tags) {\n cssClasses.push('tyk-combobox__list--has-tags');\n }\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n return cssClasses.join(' ');\n }\n\n getCssClasses() {\n const {\n error, disabled, theme, labelwidth,\n } = this.props;\n const cssClasses = ['tyk-form-group', 'tyk-combobox'];\n const themes = theme ? theme.split(' ') : [];\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (disabled) {\n cssClasses.push('disabled');\n }\n\n return cssClasses.join(' ');\n }\n\n getInputError() {\n const { error } = this.props;\n\n return (error && error !== 'true' && error !== 'false')\n ? (\n \n { error }\n

    \n )\n : null;\n }\n\n getStyles() {\n const { scrollTop } = document.documentElement;\n const el = this.comboboxRef.current;\n const elHeight = el.offsetHeight;\n const elWidth = el.offsetWidth;\n\n const offset = el.getBoundingClientRect();\n const { left } = offset;\n let top = 0;\n\n top = offset.top + scrollTop + elHeight;\n\n return {\n top: `${top - 1}px`,\n left: `${left}px`,\n width: `${elWidth}px`,\n };\n }\n\n getComboboxDisplayData() {\n const { stateSelectedValues } = this.state;\n const { multiple, placeholder, values } = this.props;\n\n if (!stateSelectedValues) {\n return placeholder;\n }\n\n if (stateSelectedValues && Array.isArray(stateSelectedValues) && !stateSelectedValues.length) {\n return placeholder;\n }\n\n if (stateSelectedValues && !Array.isArray(stateSelectedValues) && !stateSelectedValues.id) {\n return placeholder;\n }\n\n if (Array.isArray(stateSelectedValues) && multiple) {\n return stateSelectedValues.reduce((prevValue, value, index) => prevValue + value.name + ((index !== stateSelectedValues.length - 1) ? ', ' : ''), '');\n }\n\n if (\n values?.length\n && !Array.isArray(stateSelectedValues) && !stateSelectedValues.name\n ) {\n return values.filter((value) => value.id === stateSelectedValues.id)[0].name;\n }\n\n return stateSelectedValues.name;\n }\n\n manageSelectedTags(index) {\n const { max, allowCustomValues } = this.props;\n const { stateSelectedValues } = this.state;\n const filteredValues = this.filterValues();\n const value = { id: this.inputRef.current.value, name: this.inputRef.current.value };\n\n if (allowCustomValues === false && index === -1) {\n return null;\n }\n\n const tempValue = filteredValues[index] || value;\n const selectedIndex = this.getSelectedIndex(tempValue);\n let selectedValues = {};\n\n this.inputRef.current.value = '';\n\n if (selectedIndex > -1 && this.isInInitialValues(tempValue)) {\n selectedValues = this.removeSelectedValue(selectedIndex);\n } else if (selectedIndex === -1) {\n if (max && stateSelectedValues.length >= max) {\n return selectedValues;\n }\n selectedValues = this.addSelectedValue(tempValue);\n }\n\n return selectedValues;\n }\n\n // eslint-disable-next-line react/no-unused-class-component-methods\n manageSelectedValues(index) {\n const { stateSelectedValues } = this.state;\n const { multiple, onChange, max } = this.props;\n const filteredValues = this.filterValues();\n const tempSelectedValues = filteredValues[index];\n let selectedValues;\n const selectedIndex = this.getSelectedIndex(tempSelectedValues);\n\n if (tempSelectedValues && multiple) {\n if (selectedIndex > -1) {\n selectedValues = this.removeSelectedValue(selectedIndex);\n } else {\n if (max && stateSelectedValues.length >= max) {\n return selectedValues;\n }\n selectedValues = this.addSelectedValue(filteredValues[index]);\n }\n } else {\n selectedValues = {\n stateSelectedValues: (selectedIndex === -1) ? tempSelectedValues : { id: null },\n };\n\n onChange?.((selectedIndex === -1) ? tempSelectedValues : null);\n }\n\n return selectedValues;\n }\n\n removeSelectedValue(index) {\n const { stateSelectedValues } = this.state;\n const { onChange } = this.props;\n const tempStateSelectedValues = JSON.parse(JSON.stringify(stateSelectedValues));\n\n tempStateSelectedValues.splice(index, 1);\n\n if (onChange && typeof onChange === 'function') {\n onChange(tempStateSelectedValues.length ? tempStateSelectedValues : null);\n }\n\n return {\n stateSelectedValues: tempStateSelectedValues,\n searchText: '',\n };\n }\n\n addSelectedValue(value) {\n const { stateSelectedValues } = this.state;\n const { onChange } = this.props;\n const tempStateSelectedValues = JSON.parse(JSON.stringify(stateSelectedValues));\n\n tempStateSelectedValues.push(value);\n\n if (onChange && typeof onChange === 'function') {\n onChange(tempStateSelectedValues.length ? tempStateSelectedValues : null);\n }\n\n return {\n stateSelectedValues: tempStateSelectedValues,\n searchText: '',\n };\n }\n\n isInInitialValues(value) {\n const { values } = this.props;\n let ok = false;\n\n values.forEach((item) => {\n if (value.id === item.id) {\n ok = true;\n }\n });\n\n return ok;\n }\n\n filterValues() {\n const { values, searchItem } = this.props;\n\n if (!this.inputRef.current) {\n return values;\n }\n\n const arr = values\n .filter(\n (value) => (searchItem\n ? searchItem(value, this.inputRef.current.value.toLowerCase())\n : Combobox.filterByName(value, this.inputRef.current.value.toLowerCase())),\n );\n\n return arr;\n }\n\n bindEvents() {\n document.addEventListener('mousedown', this.handleClickOutside);\n }\n\n unBindEvents() {\n document.removeEventListener('mousedown', this.handleClickOutside);\n }\n\n // eslint-disable-next-line react/no-unused-class-component-methods\n reset() {\n const { multiple, tags, value } = this.props;\n\n this.setState({\n stateSelectedValues: getStateSelectedValues(multiple, tags, value),\n });\n }\n\n focusInput() {\n if (this.inputRef.current) {\n this.inputRef.current.focus();\n }\n }\n\n renderInput(filteredValues) {\n const {\n disabled,\n tags,\n max,\n placeholder,\n } = this.props;\n const {\n width, searchText, stateSelectedValues,\n } = this.state;\n\n return (\n {}}\n ref={this.comboboxRef}\n >\n {\n tags\n ? (\n <>\n {\n (stateSelectedValues || []).map((value, index) => (\n
  • \n \n \n \n { value.name }\n
  • \n ))\n }\n \n {(max === undefined || stateSelectedValues?.length < max) && (\n <>\n {\n if (e.key === 'Enter') {\n e.preventDefault();\n }\n this.handleItemsNavigation(e);\n }}\n onKeyUp={this.onKeyUp}\n placeholder={(!stateSelectedValues?.length) ? placeholder : ''}\n ref={this.inputRef}\n style={{\n width: (!stateSelectedValues?.length) ? '100%' : `${width}px`,\n }}\n />\n \n { searchText }\n \n \n )}\n {filteredValues.length > 0 && (\n \n )}\n \n \n )\n : (\n {}}\n >\n { this.getComboboxDisplayData() }\n \n \n )\n }\n \n );\n }\n\n renderDropdown(filteredValues) {\n const { tags } = this.props;\n const { opened } = this.state;\n return (\n \n {\n !tags\n ? (\n
  • \n \n
  • \n )\n : null\n }\n {\n filteredValues\n .map((value, index) => (\n {}}\n key={value.id}\n >\n {\n (this.getSelectedIndex(value) > -1)\n ? \n : null\n }\n \n {' '}\n { value.name }\n \n \n ))\n }\n \n );\n }\n\n render() {\n const {\n CustomListComponent,\n id,\n label,\n note,\n } = this.props;\n const { opened } = this.state;\n\n const filteredValues = this.filterValues();\n\n return (\n <>\n
    \n {\n label\n ? \n : null\n }\n \n {this.renderInput(filteredValues)}\n {\n note\n ?

    { note }

    \n : null\n }\n { this.getInputError() }\n
    \n \n {\n // eslint-disable-next-line no-nested-ternary\n !CustomListComponent\n ? opened && filteredValues.length\n ? ReactDOM.createPortal(\n this.renderDropdown(filteredValues),\n document.querySelector('body'),\n )\n : null\n : (\n \n )\n }\n \n );\n }\n}\n\nCombobox.propTypes = {\n allowCustomValues: PropTypes.bool,\n CustomListComponent: PropTypes.elementType,\n searchItem: PropTypes.func,\n disabled: PropTypes.bool,\n error: PropTypes.string,\n id: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n multiple: PropTypes.bool,\n max: PropTypes.number,\n note: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n tags: PropTypes.bool,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.instanceOf(Object),\n PropTypes.instanceOf(Array),\n ]),\n values: PropTypes.instanceOf(Array),\n};\n\nCombobox.defaultProps = {\n allowCustomValues: true,\n};\n\nexport default Combobox;\n","import React, { useState, useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Icon from '../../../../components/Icon';\nimport Pill from '../../../../components/Pill';\n\nfunction Value(props) {\n const {\n value,\n max,\n tags,\n tagSeparators,\n addTagOnBlur,\n placeholder,\n disabled,\n renderValue,\n valueOverflow,\n focus,\n onMessage: sendMessage,\n readOnly,\n } = props;\n const INPUT_MIN_WIDTH = 60;\n const inputRef = useRef(null);\n const dummyElementRef = useRef(null);\n const [inputValue, setInputValue] = useState('');\n const [inputWidth, setInputWidth] = useState(`${INPUT_MIN_WIDTH + 10}px`);\n\n function entryFieldOnChange(val) {\n if (tagSeparators.some((ts) => val.slice(-1) === ts)) return;\n const dummy = dummyElementRef.current;\n dummy.innerHTML = val;\n setInputWidth(`${Math.max(dummy.clientWidth, INPUT_MIN_WIDTH) + 10}px`);\n setInputValue(val);\n sendMessage('tag.input.change', val);\n }\n\n function entryFieldOnKeyDown(key, val) {\n if (!tags) return;\n if (val === '' && key === 'Backspace' && value.length) {\n sendMessage('tag.remove', value[value.length - 1].id);\n return;\n }\n if (key === 'Enter') {\n sendMessage('tag.input.enter', val);\n entryFieldOnChange('');\n return;\n }\n if (key === 'ArrowUp') {\n sendMessage('tag.input.arrowUp');\n return;\n }\n if (key === 'ArrowDown') {\n sendMessage('tag.input.arrowDown');\n return;\n }\n if (key === 'Escape') {\n sendMessage('tag.input.escape');\n return;\n }\n if (tagSeparators.includes(key)) {\n sendMessage('tag.add', val);\n entryFieldOnChange('');\n }\n }\n\n function triggerAction() {\n sendMessage('text-value.click');\n }\n\n function textValue(val, isPlaceholder = false) {\n if (readOnly) return val || '-';\n\n const classes = [\n 'tyk-combobox2__text-value',\n `overflow-${valueOverflow}`,\n isPlaceholder && 'is-placeholder',\n ].filter(Boolean).join(' ');\n return (\n \n {val}\n \n );\n }\n\n function renderCustomValue(v) {\n const config = {\n tags,\n tagSeparators,\n placeholder,\n disabled,\n renderValue,\n sendMessage,\n };\n return renderValue(v, config);\n }\n\n function renderTag(v) {\n if (renderValue) return renderCustomValue(v);\n\n return (\n \n {\n e.stopPropagation();\n sendMessage('tag.remove', v.id);\n }}\n aria-label=\"remove\"\n >\n \n \n { v.name }\n \n );\n }\n\n function getTags() {\n return (\n <>\n {value.map(renderTag)}\n {value.length < max && (\n <>\n entryFieldOnChange(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Enter') e.preventDefault();\n entryFieldOnKeyDown(e.key, e.target.value);\n }}\n onFocus={() => sendMessage('tag.input.focus')}\n onBlur={(e) => {\n sendMessage('tag.input.blur', e.target.value);\n if (addTagOnBlur) entryFieldOnChange('');\n }}\n />\n \n \n )}\n \n );\n }\n\n useEffect(() => {\n if (focus && inputRef.current) inputRef.current.focus();\n }, [focus]);\n\n if (readOnly) {\n return
    {textValue(value.map((v) => v.name).join(', '))}
    ;\n }\n\n if (tags) return getTags();\n if (renderValue) {\n return value.length === 0 ? textValue(placeholder, true) : value.map(renderCustomValue);\n }\n return value.length === 0\n ? textValue(placeholder, true)\n : textValue(value.map((v) => v.name).join(', '));\n}\n\nValue.propTypes = {\n value: PropTypes.instanceOf(Array),\n max: PropTypes.number,\n tags: PropTypes.instanceOf(Array),\n tagSeparators: PropTypes.instanceOf(Array),\n addTagOnBlur: PropTypes.bool,\n placeholder: PropTypes.string,\n disabled: PropTypes.bool,\n renderValue: PropTypes.func,\n valueOverflow: PropTypes.string,\n focus: PropTypes.bool,\n onMessage: PropTypes.func,\n readOnly: PropTypes.bool,\n};\n\nexport default Value;\n","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Icon from '../../../../components/Icon';\n\nfunction List(props) {\n const {\n listRef,\n tags,\n values,\n searchValue,\n activeItem,\n onMessage: sendMessage,\n renderListItem,\n selectAll,\n showSearch,\n } = props;\n\n useEffect(() => {\n if (!listRef.current) return;\n const activeElement = listRef.current.querySelector('.active');\n if (activeElement) activeElement.scrollIntoView({ block: 'end' });\n }, [activeItem]);\n\n function renderItem(item) {\n if (renderListItem) {\n return renderListItem(item, {\n tags, searchValue, sendMessage, activeItem,\n });\n }\n\n return (\n !item.disabled && sendMessage('value.select', { item })}\n onKeyDown={() => {}}\n >\n {item.selected && }\n {item.name}\n \n );\n }\n\n function renderSelectAllOption() {\n const isAllSelected = values.every((v) => v.selected);\n const isNoneSelected = values.every((v) => !v.selected);\n const label = selectAll?.label ?? 'Select All';\n const mode = selectAll?.mode ?? 'select';\n const show = selectAll?.show ?? 'always';\n const render = selectAll?.render;\n\n const shouldRenderOption = show === 'always' || (mode === 'select' ? !isAllSelected : !isNoneSelected);\n if (!shouldRenderOption) return null;\n\n if (render) {\n return render({\n label,\n mode,\n show,\n isAllSelected,\n isNoneSelected,\n }, sendMessage);\n }\n return (\n sendMessage('value.select-all', mode === 'select' ? !isAllSelected : isNoneSelected)}\n onKeyDown={() => {}}\n >\n {(mode === 'select' ? isAllSelected : isNoneSelected) && }\n {label}\n \n );\n }\n\n return (\n <>\n {!tags && showSearch && (\n
    \n sendMessage('search.change', e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Escape') sendMessage('search.escape');\n if (e.key === 'ArrowUp') sendMessage('search.arrowUp');\n if (e.key === 'ArrowDown') sendMessage('search.arrowDown');\n if (e.key === 'Enter') sendMessage('search.enter');\n }}\n />\n
    \n )}\n {values.length > 0 && (\n
      \n {Boolean(selectAll) && (\n renderSelectAllOption()\n )}\n {values.map(renderItem)}\n
    \n )}\n \n );\n}\n\nList.propTypes = {\n listRef: PropTypes.instanceOf(Object),\n tags: PropTypes.bool,\n values: PropTypes.instanceOf(Array),\n searchValue: PropTypes.string,\n activeItem: PropTypes.instanceOf(Object),\n onMessage: PropTypes.func,\n renderListItem: PropTypes.func,\n selectAll: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n mode: PropTypes.oneOf(['select', 'unselect']),\n show: PropTypes.oneOf(['always', 'notSameState']),\n render: PropTypes.func,\n }),\n ]),\n showSearch: PropTypes.bool,\n};\n\nexport default List;\n","import React, {\n useCallback, useEffect, useMemo, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../../components/Icon';\nimport FloatingContainer from '../../../components/FloatingContainer';\n\nimport Value from './js/Value';\nimport List from './js/List';\n\n/**\n * Dropdown-like component that can display selected values as regular text,\n * tags, or in a custom way.\n * You can select values from a list or type in new ones.\n */\nfunction Combobox2({\n value: propValue,\n values: propValues = [],\n valueOverflow = 'single',\n label = '',\n labelwidth,\n tags = false,\n tagSeparators = [' ', 'Enter'],\n addTagOnBlur = false,\n max: maxProp,\n multiple = false,\n placeholder = '',\n theme,\n note = '',\n error = '',\n disabled = false,\n readOnly = false,\n allowCustomValues = true,\n searchItem: matchItemFn,\n renderValue,\n renderListItem,\n renderList: renderListProp,\n CustomListComponent,\n onBeforeChange = () => true,\n onChange = () => {},\n floatingContainerConfig,\n expandMode,\n infiniteScrollerConfig,\n displayDropdownTrigger = true,\n selectAll,\n closeOnSelect,\n showSearch = false,\n required = false,\n validateOnChange = () => {},\n wrapperClassName = '',\n ...restProps\n}) {\n const max = useMemo(\n () => (multiple ? Infinity : maxProp || (tags ? Infinity : 1)),\n [multiple, maxProp, tags],\n );\n const renderList = CustomListComponent\n ? (values, { sendMessage }) => (\n sendMessage('value.select', { item: values[index] })}\n />\n )\n : renderListProp;\n\n const rootRef = useRef(null);\n const comboboxControlRef = useRef(null);\n const dropdownRef = useRef(null);\n const listRef = useRef(null);\n\n const [value, setValue] = useState(getValueFromProp(propValue, propValues));\n const [values, setValues] = useState(propValues.map((v) => normalizeValue(v)));\n const [searchValue, setSearchValue] = useState('');\n const [activeItem, setActiveItem] = useState(null);\n const [isOpened, setIsOpened] = useState(false);\n const [valuesExpanded, setValuesExpanded] = useState(false);\n const [localValidationError, setLocalValidationError] = useState('');\n\n function getThemeClasses() {\n const themes = theme ? theme.split(' ') : [];\n return themes.map((iTheme) => `tyk-form-group--${iTheme}`);\n }\n\n function getCssClasses() {\n return [\n wrapperClassName,\n 'tyk-form-group',\n 'tyk-combobox2',\n ...getThemeClasses(),\n (error || localValidationError) && 'has-error',\n labelwidth && 'tyk-form-group--label-has-width',\n disabled && 'disabled',\n expandMode && 'is-expand-mode',\n ].filter(Boolean).join(' ');\n }\n\n function getFilteredValues() {\n const defaultFn = (v, s) => v?.name?.toLowerCase()?.includes(s);\n const fn = matchItemFn || defaultFn;\n const filteredValues = values.filter((v) => fn(v, searchValue.toLowerCase()));\n return filteredValues;\n }\n\n function openDropdown() {\n setIsOpened(true);\n }\n\n function closeDropdown() {\n setIsOpened(false);\n if (!tags) updateSearchValue('');\n setActiveItem(null);\n }\n\n function updateSearchValue(newSearchValue) {\n setSearchValue(newSearchValue);\n if (activeItem && getFilteredValues().every((fv) => fv.id !== activeItem.id)) {\n setActiveItem(null);\n }\n if (newSearchValue && !isOpened) openDropdown();\n }\n\n function isValidValue(newValues, lastValue) {\n const localError = validateOnChange(newValues, lastValue);\n setLocalValidationError(localError);\n return localError === undefined;\n }\n\n function updateValue(newValues) {\n setValue(newValues);\n onChange(max === 1 && !tags ? (newValues[0] || null) : newValues);\n }\n\n function addTag(val) {\n if (!val) return;\n if (value.length >= max) return;\n if (value.some(({ name }) => name === val)) return;\n\n const listValueIndex = values.findIndex((lv) => lv.name === val);\n let newValue;\n let finalValue = [...value];\n let selectedValues;\n\n if (listValueIndex === -1) {\n if (allowCustomValues) {\n newValue = { id: val, name: val };\n finalValue = [...value, newValue];\n }\n } else {\n selectedValues = [\n ...values.slice(0, listValueIndex),\n { ...values[listValueIndex], selected: true },\n ...values.slice(listValueIndex + 1),\n ];\n newValue = values[listValueIndex];\n finalValue = [...value, values[listValueIndex]];\n }\n\n if (isValidValue(finalValue, newValue) && onBeforeChange(value, finalValue)) {\n if (selectedValues) {\n setValues(selectedValues);\n }\n updateValue(finalValue);\n }\n }\n\n function removeTag(id) {\n if (required && max === 1) return;\n\n const listValueIndex = values.findIndex((lv) => lv.id === id);\n const newValue = value.filter((v) => v.id !== id);\n\n if (!onBeforeChange(value, newValue)) return;\n\n if (listValueIndex !== -1) {\n setValues([\n ...values.slice(0, listValueIndex),\n { ...values[listValueIndex], selected: false },\n ...values.slice(listValueIndex + 1),\n ]);\n }\n updateValue(newValue);\n }\n\n function selectValue({ id }) {\n const val = values.find((v) => v.id === id);\n const valIndex = values.findIndex((v) => v.id === id);\n let finalValue = value;\n let selectedValues = values;\n\n if (val.selected) {\n if (!required || max !== 1) {\n finalValue = value.filter((v) => v.id !== val.id);\n selectedValues = values.with(valIndex, { ...val, selected: false });\n }\n } else if (value.length < max) {\n finalValue = [...value, val];\n selectedValues = values.with(valIndex, { ...val, selected: true });\n } else if (max === 1) {\n finalValue = [val];\n selectedValues = values.map((v) => ({ ...v, selected: v.id === val.id }));\n }\n\n if (isValidValue(finalValue, val) && onBeforeChange(value, finalValue)) {\n updateValue(finalValue);\n setValues(selectedValues);\n }\n\n if (max === 1 || closeOnSelect) {\n closeDropdown();\n }\n }\n\n function selectAllValues(selected) {\n if (values.length > max) return;\n const newValue = selected ? [...values] : [];\n\n if (!onBeforeChange(value, newValue)) return;\n\n updateValue(newValue);\n setValues(values.map((v) => ({ ...v, selected })));\n if (closeOnSelect) closeDropdown();\n }\n\n function moveUpActiveItem() {\n const visibleItems = getFilteredValues().filter((v) => !v.disabled);\n if (visibleItems.length === 0) return;\n if (activeItem === null || visibleItems.length === 1) {\n setActiveItem(visibleItems[visibleItems.length - 1]);\n return;\n }\n const activeIndex = visibleItems.findIndex((v) => v.id === activeItem.id);\n setActiveItem(visibleItems[activeIndex > 0 ? activeIndex - 1 : visibleItems.length - 1]);\n }\n\n function moveDownActiveItem() {\n const visibleItems = getFilteredValues().filter((v) => !v.disabled);\n if (visibleItems.length === 0) return;\n if (activeItem === null || visibleItems.length === 1) {\n setActiveItem(visibleItems[0]);\n return;\n }\n const activeIndex = visibleItems.findIndex((v) => v.id === activeItem.id);\n setActiveItem(visibleItems[activeIndex < visibleItems.length - 1 ? activeIndex + 1 : 0]);\n }\n\n function executeTriggerAction() {\n if (expandMode) {\n setValuesExpanded(!valuesExpanded);\n } else {\n openDropdown();\n }\n }\n\n function handleDocumentClick(e) {\n const isClickInside = rootRef.current?.contains(e.target)\n || dropdownRef.current?.contains(e.target);\n if (!isClickInside) {\n closeDropdown();\n }\n }\n\n function onClickCapture(e) {\n if (!disabled) return;\n if (!expandMode) {\n e.stopPropagation();\n return;\n }\n\n const triggerElement = rootRef.current.querySelector('.tyk-combobox2__values-container-trigger');\n if (!triggerElement) return;\n\n const isClickOnTrigger = triggerElement === e.target || triggerElement.contains(e.target);\n if (!isClickOnTrigger) e.stopPropagation();\n }\n\n function onTagMessage(message, data) {\n if (message === 'add') {\n addTag(data);\n updateSearchValue('');\n }\n\n if (message === 'remove') removeTag(data);\n\n if (message === 'input.change') updateSearchValue(data);\n\n if (message === 'input.enter') {\n if (activeItem) {\n selectValue(activeItem);\n } else if (tagSeparators.includes('Enter')) {\n addTag(data);\n updateSearchValue('');\n }\n }\n\n if (message === 'input.arrowUp') {\n openDropdown();\n moveUpActiveItem();\n }\n\n if (message === 'input.arrowDown') {\n openDropdown();\n moveDownActiveItem();\n }\n\n if (message === 'input.escape') closeDropdown();\n\n if (message === 'input.blur' && addTagOnBlur) {\n addTag(data);\n updateSearchValue('');\n }\n\n if (message === 'input.focus') {\n openDropdown();\n }\n }\n\n const onMessage = useCallback((message, data) => {\n if (message.startsWith('tag.')) onTagMessage(message.slice(4), data);\n\n if (message === 'value.select') selectValue(data.item);\n\n if (message === 'value.select-all') selectAllValues(data);\n\n if (message === 'text-value.click') openDropdown();\n\n if (message === 'search.change') updateSearchValue(data);\n\n if (message === 'search.escape') closeDropdown();\n\n if (message === 'search.arrowUp') moveUpActiveItem();\n\n if (message === 'search.arrowDown') moveDownActiveItem();\n\n if (message === 'search.enter') {\n if (activeItem) selectValue(activeItem);\n }\n }, [\n onTagMessage,\n selectValue,\n selectAllValues,\n openDropdown,\n updateSearchValue,\n closeDropdown,\n moveUpActiveItem,\n moveDownActiveItem,\n ]);\n\n const renderIcon = useCallback(\n () => (expandMode\n ? \n : \n ),\n [expandMode, valuesExpanded],\n );\n\n useEffect(() => {\n window.addEventListener('click', handleDocumentClick, true);\n return () => window.removeEventListener('click', handleDocumentClick, true);\n }, []);\n\n useEffect(() => {\n if (propValues.length) {\n const newValues = propValues.map((v) => ({\n ...normalizeValue(v),\n selected: value.some((sv) => sv.id === v.id),\n }));\n setValues(newValues);\n setValue((val) => val.map((v) => newValues.find((nv) => nv.id === v.id) || v));\n } else if (values.length) {\n setValues([]);\n }\n }, [propValues]);\n\n useEffect(() => {\n const newValue = getValueFromProp(propValue, values);\n setValue(newValue);\n setValues((vals) => vals.map((v) => ({\n ...normalizeValue(v),\n selected: newValue.some((nv) => nv.id === v.id),\n })));\n }, [propValue]);\n\n useEffect(() => {\n if (!expandMode) return () => {};\n\n const valuesElement = comboboxControlRef.current.querySelector('.tyk-combobox2__current-values');\n const updateScroll = () => {\n valuesElement.scrollTop = valuesElement.scrollHeight;\n };\n /* eslint-disable-next-line no-undef */\n const mobserver = new MutationObserver(updateScroll);\n const robserver = new ResizeObserver(updateScroll);\n\n mobserver.observe(valuesElement, { attributes: true, childList: true, subtree: true });\n robserver.observe(valuesElement);\n\n return () => {\n mobserver.disconnect();\n robserver.disconnect();\n };\n });\n\n const filteredValues = getFilteredValues();\n const currentValuesClasses = [\n 'tyk-combobox2__current-values',\n expandMode && 'expand-mode',\n `tyk-combobox2__current-values--${valuesExpanded ? 'expanded' : 'collapsed'}`,\n ].join(' ');\n\n return (\n \n {label && (\n \n )}\n {!readOnly && (\n \n
    \n \n \n
    \n {displayDropdownTrigger && (\n \n {renderIcon()}\n \n )}\n \n {isOpened && (!tags || filteredValues.length > 0) && (\n \n {renderList ? (\n renderList(filteredValues, {\n tags,\n searchValue,\n activeItem,\n listRef,\n sendMessage: onMessage,\n })\n ) : (\n \n )}\n \n )}\n {note && (\n

    {note}

    \n )}\n {((error && error !== 'true' && error !== 'false') || Boolean(localValidationError)) && (\n

    {error || localValidationError}

    \n )}\n \n )}\n {readOnly && (\n
    \n \n
    \n )}\n \n );\n}\n\nCombobox2.propTypes = {\n /** If `true` it allows entering values that are not in the list. */\n allowCustomValues: PropTypes.bool,\n /** Alias for `renderList`\n * used for backwards compatibility with the old Combobox component. */\n CustomListComponent: PropTypes.elementType,\n /** A function used for filtering elements displayed in the list when typing in. */\n searchItem: PropTypes.func,\n /** A custom component that will be used to display a value. */\n renderValue: PropTypes.func,\n /** A custom component that will be used to display an item in the dropdown list. */\n renderListItem: PropTypes.func,\n /** A custom component that will be used to display the entire content of the dropdown. */\n renderList: PropTypes.func,\n disabled: PropTypes.bool,\n /** hides the UI form element and displayes just the value as text */\n readOnly: PropTypes.bool,\n error: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n /** The maximum number of values that can be selected/added. */\n max: PropTypes.number,\n /** Shorthand for max=Infinity */\n multiple: PropTypes.bool,\n note: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n /**\n * Callback called before changing the value of the component.\n * The value change will succeed only if the callback's return value is truthy.\n * The callback is called with two arguments: 1) the previous value, 2) the next value */\n onBeforeChange: PropTypes.func,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n /** Enables the display of values as `Pill` components that can be\n * removed without opening the dropdown. */\n tags: PropTypes.bool,\n /** A list of characters that will trigger the creation of a tag when typed. */\n tagSeparators: PropTypes.arrayOf(PropTypes.string),\n /** If set to true a tag will be created whenever the component loses focus\n * and there is something typed in. */\n addTagOnBlur: PropTypes.bool,\n theme: PropTypes.string,\n /** The value of the component. It can be a string, an array,\n * or an object with an `id` property. */\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.instanceOf(Array),\n PropTypes.instanceOf(Object),\n ]),\n /** An array of selectable values. */\n values: PropTypes.instanceOf(Array),\n /** Config object passed to the internal floating container component. */\n floatingContainerConfig: PropTypes.instanceOf(Object),\n /** If set to `single` it will display the values on a single line\n * with an ellipsis at the end. */\n valueOverflow: PropTypes.oneOf(['single', 'multiple']),\n /**\n * If set to `true` whenever the user clicks on the dropdown trigger\n * the selected values container\n * will expand to show all selected values instead of opening the dropdown.\n */\n expandMode: PropTypes.bool,\n /** Config object passed to the internal infinite scroller component. */\n infiniteScrollerConfig: PropTypes.instanceOf(Object),\n /** Toggles the display of the dropdown trigger. */\n displayDropdownTrigger: PropTypes.bool,\n /**\n * If a boolean it will toggle the select all functionality from the dropdown.\n * It can also be an object with the shape `{ label, show, mode, render }`.\n * label - A string displayed as the select all option\n * show - It can be one of `['always', 'notSameState']`.\n * `always` means the option will always be displayed.\n * `notSameState` means it will be displayed only if the list items are\n * not all with the same state (depending on the `mode` value)\n * mode - It can be one of `['select', 'unselect']` and makes sense only\n * when the `show` property is `notSameState`\n * `select` means the select all option will only be displayed if not all\n * items are selected\n * `unselect` means the option will be displayed if no items are selected\n */\n selectAll: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n mode: PropTypes.oneOf(['select', 'unselect']),\n show: PropTypes.oneOf(['always', 'notSameState']),\n render: PropTypes.func,\n }),\n ]),\n /** It `true` the dropdown will close after selecting a value. */\n closeOnSelect: PropTypes.bool,\n /** Toggles the display of the search input from the dropdown. */\n showSearch: PropTypes.bool,\n /** If it is required and can only select one value once you have something\n * selected you will not be able to deselect */\n required: PropTypes.bool,\n /** Validates newly added value before adding it to the selected values.\n * Returns an error string in case of error otherwise it returns undefined\n */\n validateOnChange: PropTypes.func,\n wrapperClassName: PropTypes.string,\n};\n\nexport default Combobox2;\n\nfunction normalizeValue(value, values) {\n let v = value;\n if (typeof value === 'string') v = { id: value, name: value };\n else if (!value.hasOwnProperty('name')) v = { ...value, name: value.id }; // eslint-disable-line no-prototype-builtins\n if (!values) return v;\n const existingVal = values.find((ev) => ev.id === v.id);\n return existingVal ? { ...v, ...existingVal } : v;\n}\n\nfunction getValueFromProp(value, values) {\n if (!value) return [];\n if (Array.isArray(value)) return value.map((v) => normalizeValue(v, values));\n return [normalizeValue(value, values)];\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"flatpickr\");","import React, {\n useEffect, useState, useRef, useCallback,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport flatpickr from 'flatpickr';\n\nimport Icon from '../../../components/Icon';\nimport { usePrevious } from '../../../hooks';\n\nfunction DatePicker({\n children,\n disabled,\n readOnly = false,\n error,\n id,\n label,\n labelwidth,\n note,\n onClose,\n onChange,\n onOpen,\n theme,\n config = {},\n value,\n wrapperClassName = '',\n}) {\n const [pickerInstance, setPickerInstance] = useState(null);\n const dateRef = useRef(null);\n\n const prevValue = usePrevious(value);\n\n const hasValueChanged = useCallback((prevDate, currentDate) => {\n if (!prevDate) return true;\n if (!Array.isArray(currentDate)) return prevDate.getTime() !== currentDate.getTime();\n\n let diffDates = currentDate;\n\n if (prevDate && currentDate.length && prevDate.length) {\n diffDates = currentDate.filter((date, index) => date.getTime() !== prevDate[index].getTime());\n\n return diffDates.length > 0;\n }\n\n return currentDate.length > 0;\n }, []);\n\n const onDateChange = useCallback((dateValue) => {\n const finalValue = config.mode === 'range' ? dateValue : dateValue[0] || null;\n\n if (!onChange) return;\n\n if (config.mode === 'range') {\n if (finalValue.length === 2 && hasValueChanged(prevValue, finalValue)) {\n onChange(finalValue);\n }\n } else {\n onChange(finalValue);\n }\n }, [prevValue, onChange, hasValueChanged]);\n\n useEffect(() => {\n if (dateRef.current && !pickerInstance) {\n const instance = flatpickr(dateRef.current, {\n ...config, defaultDate: value, onChange: onDateChange, onClose, onOpen,\n });\n setPickerInstance(instance);\n }\n\n return () => {\n if (pickerInstance) {\n pickerInstance.destroy();\n }\n };\n }, [pickerInstance]);\n\n useEffect(() => {\n if (pickerInstance) {\n let tempValue = value;\n\n if (typeof value === 'string') {\n tempValue = new Date(value);\n } else if (Array.isArray(value)) {\n tempValue = value.map((date) => new Date(date));\n }\n\n if (hasValueChanged(prevValue, tempValue)) {\n pickerInstance.set('onChange', onDateChange);\n if (config.mode === 'range') {\n if (tempValue && tempValue.length === 2) {\n pickerInstance.setDate(tempValue, true);\n }\n } else {\n pickerInstance.setDate(tempValue, true);\n }\n }\n }\n }, [prevValue, value, pickerInstance]);\n\n const classes = [\n 'tyk-form-group',\n 'tyk-form-group--addon-right',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' ');\n\n const getLabelStyles = () => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n };\n\n const getNonLabelWidth = () => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n };\n\n const openCalendar = useCallback(() => {\n if (!pickerInstance) return;\n\n pickerInstance.open();\n }, [pickerInstance]);\n\n const getInputError = () => (\n (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null\n );\n\n const getInputField = () => {\n let inputStyle = {};\n let addonStyle = {};\n\n if (config?.inline) {\n inputStyle = {\n height: 0,\n padding: 0,\n width: 0,\n visibility: 'hidden',\n };\n\n addonStyle = {\n display: 'none',\n };\n }\n return (\n <>\n \n {}}\n tabIndex={0}\n style={addonStyle}\n aria-label=\"show calendar\"\n >\n \n \n \n );\n };\n\n return (\n <>\n {\n children?.length\n ? children({ openCalendar, ref: dateRef })\n : (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n
    \n {getInputField()}\n
    \n {\n note\n ?

    { note }

    \n : null\n }\n { getInputError() }\n
    \n )}\n \n )\n }\n
    \n {readOnly && !value && '-'}\n {readOnly && value && flatpickr.formatDate(value, config.dateFormat || 'd/m/Y')}\n
    \n \n );\n}\n\nDatePicker.propTypes = {\n config: PropTypes.instanceOf(Object),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n PropTypes.func,\n ]),\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.instanceOf(Array),\n ]),\n onClose: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.instanceOf(Array),\n ]),\n onOpen: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.instanceOf(Array),\n ]),\n theme: PropTypes.string,\n error: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.instanceOf(Array),\n PropTypes.instanceOf(Object),\n PropTypes.string,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default DatePicker;\n","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\");\n // eslint-disable-next-line no-console\n console.warn(new Error().stack);\n }\n return new Date(NaN);\n }\n}","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n var number = Number(dirtyNumber);\n if (isNaN(number)) {\n return number;\n }\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","var defaultOptions = {};\nexport function getDefaultOptions() {\n return defaultOptions;\n}\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function getUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, options);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n case 'aaa':\n return dayPeriodEnumValue;\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = getUTCISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = getUTCWeek(date, options);\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n return lightFormatters.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n if (timezoneOffset === 0) {\n return 'Z';\n }\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, dirtyDelimiter);\n}\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\nexport default formatters;","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = getUTCWeekYear(dirtyDate, options);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, options);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","var dateLongFormatter = function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n};\nvar timeLongFormatter = function timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n};\nvar dateTimeLongFormatter = function dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n var dateTimeFormat;\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n};\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n }\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n return result;\n};\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n if (!matchResult) {\n return null;\n }\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n return undefined;\n}\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import defaultLocale from \"../../locale/en-US/index.js\";\nexport default defaultLocale;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n case 2:\n return number + 'nd';\n case 3:\n return number + 'rd';\n }\n }\n return number + 'th';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","import isValid from \"../isValid/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n var originalDate = toDate(dirtyDate);\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n var firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n var formatter = formatters[firstCharacter];\n if (formatter) {\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n return substring;\n }).join('');\n return result;\n}\nfunction cleanEscapedString(input) {\n var matched = input.match(escapedStringRegExp);\n if (!matched) {\n return input;\n }\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","import addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import React, { Component, createRef } from 'react';\nimport isEqual from 'react-fast-compare';\nimport PropTypes from 'prop-types';\n\nimport Column from '../../../../layout/Column';\nimport Row from '../../../../layout/Row';\nimport Button from '../../../../components/Button';\n\nclass EditableListForm extends Component {\n static getMainFormValue(components) {\n const mainFormValue = new Array(components.length);\n\n components.forEach((component, index) => {\n mainFormValue[index] = component.props.value || undefined;\n });\n\n return mainFormValue;\n }\n\n constructor(props) {\n super(props);\n const {\n components,\n } = props;\n\n this.submitButtonRef = createRef();\n this.handleOnChange = this.handleOnChange.bind(this);\n this.submitForm = this.submitForm.bind(this);\n\n this.state = {\n components,\n errors: {},\n mainError: null,\n mainFormValue: EditableListForm.getMainFormValue(components),\n refs: [],\n };\n }\n\n componentDidMount() {\n const {\n addValueOnFieldChange,\n getMainFormButtonWidth,\n } = this.props;\n this.createRefs();\n\n if (getMainFormButtonWidth) {\n getMainFormButtonWidth(\n !addValueOnFieldChange\n ? this.submitButtonRef.current.clientWidth\n : 0,\n );\n }\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const state = {};\n const {\n components: propsComponents,\n } = nextProps;\n\n const {\n components: stateComponents,\n } = prevState;\n if (\n !isEqual(propsComponents, stateComponents)\n && !isEqual(\n EditableListForm.getMainFormValue(propsComponents),\n EditableListForm.getMainFormValue(stateComponents),\n )\n ) {\n state.mainFormValue = EditableListForm.getMainFormValue(propsComponents);\n state.components = propsComponents;\n }\n\n return state;\n }\n\n handleOnChange(component, index, value) {\n const { addValueOnFieldChange } = this.props;\n let tempState = this.state;\n\n tempState = { ...tempState, ...this.validateValue(value, component.props) };\n\n if (!tempState.errors[component.props.name]) {\n tempState.mainFormValue[index] = value;\n\n if (component.props.onChange) {\n component.props.onChange(value);\n }\n }\n\n this.setState((previousState) => ({ ...previousState, ...tempState }), () => {\n if (addValueOnFieldChange) {\n this.submitForm();\n }\n });\n }\n\n getFormCssClasses() {\n const { noLabels } = this.props;\n const cssClasses = ['tyk-editable-list__form'];\n\n if (noLabels) {\n cssClasses.push('no-labels');\n }\n\n return cssClasses.join(' ');\n }\n\n getButtonClassName() {\n const { buttonStyle, displayType } = this.props;\n const cssClasses = [];\n\n if (buttonStyle) {\n cssClasses.push(buttonStyle);\n }\n\n if (displayType) {\n cssClasses.push(displayType);\n }\n\n return cssClasses.join(' ');\n }\n\n getComponentsError(component) {\n const {\n error,\n errors,\n mainError,\n } = this.state;\n\n if (error || mainError) {\n errors[component.props.name] = 'true';\n } else if (!(error || mainError) && errors[component.props.name] === 'true') {\n delete errors[component.props.name];\n }\n\n return errors[component.props.name] ? errors[component.props.name].toString() : undefined;\n }\n\n createRefs() {\n const { components } = this.props;\n const refs = [];\n\n components.forEach(() => {\n refs.push(createRef());\n });\n\n this.setState({\n refs,\n });\n }\n\n validateValue(value, props) {\n const { mainError, errors } = this.state;\n const { error, errorPersist } = this.props;\n\n const validatorsNames = props.validate ? Object.keys(props.validate) : [];\n // if there is a general form error don't take field errors into consideration\n const tempState = {\n errors: (error || mainError) ? {} : { ...errors },\n };\n let ok = true;\n\n // if the error should stay after changing fields values don't take actions\n if (errorPersist) {\n return tempState;\n }\n\n // validate each field from the form\n for (const validatorName of validatorsNames) {\n const validator = props.validate[validatorName];\n if (validator(value)) {\n tempState.errors[props.name] = props.validationmessages[validatorName];\n ok = false;\n break;\n }\n }\n\n // if the field is ok delete its error\n if (ok) {\n delete tempState.errors[props.name];\n }\n\n tempState.mainError = null;\n\n return tempState;\n }\n\n hasMainFormErrors(errors) {\n const { components, errorPersist } = this.props;\n const { mainFormValue } = this.state;\n const tempState = {\n errors: { ...errors },\n };\n\n if (errorPersist && mainFormValue.indexOf(undefined) === -1) {\n return false;\n }\n\n if (Object.keys(tempState.errors).length > 0) {\n return true;\n }\n\n components.forEach((component, index) => {\n tempState.errors = {\n ...tempState.errors,\n ...this.validateValue(mainFormValue[index], component.props).errors,\n };\n });\n\n return Object.keys(tempState.errors).length > 0;\n }\n\n resetForm() {\n const { refs } = this.state;\n const {\n components,\n } = this.props;\n\n refs.forEach((ref) => {\n if (ref.current?.reset) {\n ref.current.reset();\n }\n });\n\n this.setState({\n errors: {},\n mainError: null,\n mainFormValue: EditableListForm.getMainFormValue(components),\n });\n }\n\n showMainError(error) {\n this.setState({\n mainError: error,\n });\n }\n\n submitForm() {\n const { errors, mainFormValue } = this.state;\n const {\n errorPersist, onSubmit, validate, validationmessage,\n } = this.props;\n\n if (errorPersist) {\n onSubmit(mainFormValue);\n this.resetForm();\n }\n\n if (\n Object.keys(errors).length === 0\n && (onSubmit && typeof onSubmit === 'function')\n ) {\n if (validate) {\n if (validate(mainFormValue)) {\n this.showMainError(validationmessage);\n } else {\n onSubmit(mainFormValue);\n this.resetForm();\n }\n } else {\n onSubmit(mainFormValue);\n this.resetForm();\n }\n }\n }\n\n render() {\n const {\n addValueOnFieldChange, components, buttonName, disabled, displayType, error,\n } = this.props;\n const {\n mainError, refs, errors,\n } = this.state;\n\n return (\n
    \n
    \n \n {\n components.map((component, index) => {\n const ComponentName = component.name;\n console.log('ComponentName', ComponentName);\n const {\n onChange, value, ...rest\n } = component.props;\n\n return (\n \n \n \n );\n })\n }\n \n {\n !addValueOnFieldChange\n ? (\n \n \n { buttonName || 'ADD' }\n \n \n )\n : null\n }\n
    \n {\n error || mainError\n ? (\n
    \n

    \n { error || mainError }\n

    \n
    \n )\n : null\n }\n
    \n );\n }\n}\n\nEditableListForm.propTypes = {\n addValueOnFieldChange: PropTypes.bool,\n noLabels: PropTypes.bool,\n buttonName: PropTypes.string,\n buttonStyle: PropTypes.string,\n components: PropTypes.instanceOf(Array),\n displayType: PropTypes.string,\n disabled: PropTypes.bool,\n getMainFormButtonWidth: PropTypes.func,\n error: PropTypes.string,\n errorPersist: PropTypes.bool,\n onSubmit: PropTypes.func,\n validate: PropTypes.func,\n validationmessage: PropTypes.string,\n};\n\nexport default EditableListForm;\n","import React, { Component, createRef } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport format from 'date-fns/format';\nimport isDate from 'date-fns/isDate';\n\nimport EditableListForm from './js/EditableListForm';\nimport Column from '../../../layout/Column';\nimport Icon from '../../../components/Icon';\nimport Row from '../../../layout/Row';\n\nclass EditableList extends Component {\n static getItemListValue(itemValue) {\n let tempValue = null;\n\n if (typeof itemValue === 'string') {\n tempValue = itemValue;\n }\n\n if (Object.prototype.toString.call(itemValue) === '[object Object]') {\n tempValue = itemValue.name;\n }\n\n if (isDate(itemValue)) {\n tempValue = format(itemValue, 'dd/MM/yyyy');\n }\n\n return tempValue;\n }\n\n static getListItemCssClass(displayType) {\n const cssClasses = [];\n\n if (displayType === 'inline') {\n cssClasses.push('tyk-editable-list-item--inline');\n }\n\n return cssClasses.join(' ');\n }\n\n constructor(props) {\n super(props);\n const {\n value,\n } = this.props;\n\n this.state = {\n initialValue: value || '',\n value: value || [],\n buttonWidth: 0,\n };\n\n this.startIndex = 1;\n\n this.handleFormSubmit = this.handleFormSubmit.bind(this);\n this.getMainFormButtonWidth = this.getMainFormButtonWidth.bind(this);\n this.dropdownListItemRef = createRef();\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const state = {};\n\n if (\n nextProps.value && JSON.stringify(nextProps.value)\n !== JSON.stringify(prevState.initialValue)\n ) {\n state.value = nextProps.value || [];\n state.initialValue = nextProps.value || '';\n }\n\n return state.value ? state : null;\n }\n\n handleFormSubmit(value) {\n const tempState = this.addValues(value);\n this.setState((previousState) => ({ ...previousState, ...tempState }), () => {\n this.triggerOnChange(tempState.value.length - 1, null, value);\n });\n }\n\n handleItemUpdate(index, value) {\n let prevValue;\n this.setState((previousState) => {\n const tempState = { ...previousState };\n prevValue = fromJS(tempState.value[index].value).toJS();\n tempState.value[index].value = value;\n tempState.value[index].editMode = false;\n\n return tempState;\n }, () => {\n this.triggerOnChange(index, prevValue, value);\n });\n }\n\n handleChildrenOnChange(index, value) {\n let prevValue;\n this.setState((previousState) => {\n const tempState = { ...previousState };\n prevValue = fromJS(tempState.value[index].children).toJS();\n tempState.value[index].children = value;\n\n return tempState;\n }, () => {\n this.triggerOnChange(index, prevValue, value);\n });\n }\n\n getListItemsCssClass(displayType) {\n const { config } = this.props;\n const cssClasses = ['tyk-editable-list-items'];\n\n cssClasses.push(config.displayType || 'table');\n\n if (displayType === 'inline') {\n cssClasses.push('tyk-editable-list-items--inline');\n }\n\n return cssClasses.join(' ');\n }\n\n getFormInputKey() {\n this.startIndex += 1;\n return this.startIndex;\n }\n\n // generate list item value's based on the display types\n // table, inline, list\n getListItemText(itemData) {\n const { config } = this.props;\n let value = null;\n\n switch (config.displayType) {\n case 'list':\n case 'inline': {\n const itemText = itemData.value.reduce((prevValue, itemValue, index) => {\n const tempValue = EditableList.getItemListValue(itemValue);\n let separator = ', ';\n\n if (index === itemData.value.length - 1) {\n separator = '';\n }\n\n return prevValue + tempValue + separator;\n }, '');\n\n value = itemText;\n\n break;\n }\n default:\n value = (\n \n {\n config.components.map((component, index) => (\n \n { EditableList.getItemListValue(itemData.value[index]) }\n \n ))\n }\n \n );\n\n break;\n }\n\n return value;\n }\n\n getMainFormButtonWidth(value) {\n this.setState({\n buttonWidth: value,\n });\n }\n\n setItemEditMode(index) {\n const newValues = this.closeListItems();\n\n this.setState((previousState) => {\n const tempState = { ...previousState };\n tempState.value = newValues;\n tempState.value[index].editMode = !tempState.value[index].editMode;\n\n return tempState;\n });\n }\n\n isInList(index, itemValue) {\n const { value } = this.state;\n let ok = false;\n\n value.forEach((item, itemIndex) => {\n if (JSON.stringify(item.value) === JSON.stringify(itemValue)) {\n if (index >= 0 && itemIndex === index) {\n ok = false;\n } else {\n ok = true;\n }\n }\n });\n\n return ok;\n }\n\n addValues(newValue) {\n const { value } = this.state;\n const { config } = this.props;\n const itemValue = {\n editMode: false,\n value: newValue,\n };\n const tempState = {\n value: value.slice(0),\n };\n\n if (config.children) {\n itemValue.children = [];\n }\n\n tempState.value.push(itemValue);\n\n return tempState;\n }\n\n removeListItem(index) {\n let removedItem;\n this.setState((previousState) => {\n const valueArr = previousState.value.slice(0);\n removedItem = valueArr.splice(index, 1);\n\n return {\n value: valueArr,\n };\n }, () => {\n this.triggerOnChange(index, removedItem, null);\n });\n }\n\n closeListItems() {\n const { value } = this.state;\n\n const newValues = value.map((itemValue) => {\n const tempItemValue = { ...itemValue };\n\n if (tempItemValue.editMode) {\n tempItemValue.editMode = false;\n return tempItemValue;\n }\n\n return tempItemValue;\n });\n\n return newValues;\n }\n\n triggerOnChange(index, prevValue, nextValue) {\n const { onChange } = this.props;\n const { value } = this.state;\n\n if (onChange && typeof onChange === 'function') {\n onChange(((value.length) ? value : null), index, prevValue, nextValue);\n }\n }\n\n genListItem(itemData, index) {\n const { config, disabled } = this.props;\n const { buttonWidth, value } = this.state;\n\n const clonedComponents = fromJS(config.components).toJS();\n\n itemData.value.forEach((itemValue, itemIndex) => {\n clonedComponents[itemIndex].props.value = itemValue;\n });\n\n return (\n \n \n {\n !itemData.editMode\n ? (\n <>\n { this.getListItemText(itemData, index) }\n \n \n \n \n \n \n \n \n \n )\n : (\n <>\n \n \n \n \n \n )\n }\n \n {\n config.children\n ? (\n \n )\n : null\n }\n \n );\n }\n\n genList() {\n const { config } = this.props;\n const { buttonWidth, value } = this.state;\n\n if (!value || value.length === 0) {\n return null;\n }\n\n return (\n <>\n {\n config.displayType === 'table' || !config.displayType\n ? (\n \n \n {\n config.components.map((component, index) => (\n \n { component.props.label }\n \n ))\n }\n \n \n )\n : null\n }\n
      \n {\n value.map((itemData, index) => this.genListItem(itemData, index))\n }\n
    \n \n );\n }\n\n render() {\n const {\n addValueOnFieldChange, config, error, disabled, label,\n } = this.props;\n const appendToElement = document.querySelector(config.appendTo) || document.querySelector('body');\n\n return (\n
    \n {\n label\n ? \n : null\n }\n \n {\n config.appendTo\n ? ReactDOM.createPortal(\n this.genList(),\n appendToElement,\n )\n : this.genList()\n }\n
    \n );\n }\n}\n\nEditableList.propTypes = {\n addValueOnFieldChange: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.string,\n config: PropTypes.instanceOf(Object),\n onChange: PropTypes.func,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n value: PropTypes.oneOfType([\n PropTypes.instanceOf(Array),\n PropTypes.instanceOf(Object),\n ]),\n};\n\nexport default EditableList;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '../../../components/Button';\n\nfunction Header({\n label, addButtonName, onAddRow, disabled, readOnly,\n}) {\n return (\n
    \n {\n label\n ? \n : null\n }\n {!disabled && !readOnly && (\n \n {addButtonName || 'Add'}\n \n )}\n
    \n );\n}\n\nHeader.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n onAddRow: PropTypes.func,\n addButtonName: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n};\n\nexport default Header;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ListHeader({\n fields,\n readOnly,\n}) {\n return (\n
  • \n {\n fields.map((field) => (\n \n {field?.props?.label}\n \n ))\n }\n
    Delete
    \n
  • \n );\n}\n\nListHeader.propTypes = {\n fields: PropTypes.instanceOf(Array),\n readOnly: PropTypes.bool,\n};\n\nexport default ListHeader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Button from '../../../components/Button';\n\nfunction FieldsList({\n fields,\n disabled,\n readOnly,\n errors,\n components,\n onChange,\n onDelete,\n value,\n rowIndex,\n}) {\n return (\n
  • \n {\n components.map((Component, index) => {\n const field = fields[index];\n const tempField = typeof field === 'function' ? field(rowIndex, index) : field;\n return (\n \n \n \n );\n })\n }\n
    \n \n
    \n
  • \n );\n}\n\nFieldsList.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n rowIndex: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n fields: PropTypes.instanceOf(Array),\n errors: PropTypes.instanceOf(Array),\n components: PropTypes.instanceOf(Array),\n value: PropTypes.instanceOf(Array),\n onChange: PropTypes.func,\n onDelete: PropTypes.func,\n};\n\nexport default FieldsList;\n","import React, { useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Header from './Header';\nimport ListHeader from './ListHeader';\nimport FieldsList from './FieldsList';\nimport validateValues from './validate-values';\nimport withValidation from './with-validation';\n\nlet id = 1;\n/* eslint-disable-next-line */\nconst getUID = prefix => `${prefix}-${id++}`;\n\n/**\n * Editable list is a component, that lists rows of form elements (can have n elements on a row),\n * and stores the values of all the rows in an Array list\n */\nfunction EditableList2({\n addButtonName,\n disabled,\n readOnly,\n fields,\n label,\n error,\n value = [],\n onChange = () => {},\n hideOnEmpty = true,\n wrapperClassName = '',\n}) {\n const [internalErrors, setInternalErrors] = useState(null);\n\n const updateRowValue = (rowIndex, fieldIndex, componentValue, isValid) => {\n const tempValueArr = !value ? [] : [...value];\n\n if (!value) {\n tempValueArr[rowIndex] = [...new Array(fields.length)];\n tempValueArr[rowIndex][fieldIndex] = componentValue;\n } else {\n const tempValue = [...tempValueArr[rowIndex]];\n tempValue[fieldIndex] = componentValue;\n tempValueArr[rowIndex] = tempValue;\n tempValueArr[rowIndex].id = value[rowIndex].id;\n }\n\n if (internalErrors?.[rowIndex]?.[fieldIndex] && isValid) {\n const tempErrors = [...internalErrors];\n const tempFieldError = [...tempErrors[rowIndex]];\n tempFieldError[fieldIndex] = null;\n tempErrors[rowIndex] = tempFieldError;\n setInternalErrors(tempErrors);\n }\n onChange(tempValueArr);\n };\n\n const hasErrors = (errors) => Boolean(errors?.flat()?.filter(Boolean).length);\n\n const Components = useMemo(\n () => fields.map((field) => {\n const tempField = typeof field === 'function' ? field() : field;\n\n return withValidation(tempField?.component || null);\n }),\n [],\n );\n\n const onAddRow = () => {\n const errors = validateValues(fields, value);\n\n if (hasErrors(errors)) {\n setInternalErrors(errors);\n return;\n }\n\n const newValue = [...new Array(fields.length)];\n newValue.id = getUID('row');\n\n onChange([\n ...value,\n newValue,\n ]);\n };\n\n const deleteRow = (index) => {\n if (!value) {\n return;\n }\n const tempValue = [...value];\n tempValue.splice(index, 1);\n onChange(tempValue);\n };\n\n return (\n
    \n \n {value?.length || !hideOnEmpty ? (\n
      \n {(value || [[]]).map((v, i) => (\n \n ))}\n \n
    \n ) : null}\n {error && error !== 'true' && error !== 'false' ? (\n

    {error}

    \n ) : null}\n
    \n );\n}\n\nEditableList2.propTypes = {\n /** Sets Editable list in edit mode.\n * If enabled all fields are disabled, the add button is hidden and delete button is disabled\n * */\n disabled: PropTypes.bool,\n /** Sets Editable list in read only mode.\n * If enabled all fields are displaying just the value,\n * the add button is hidden and delete button is disabled\n */\n readOnly: PropTypes.bool,\n /** Name of the Add button. By default has 'Add value' */\n addButtonName: PropTypes.string,\n /** Label of Editable list, is displayed above the list and inline with the Add button */\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n /** Array of form elements that you want the list to have\n * Each field is an object points to the Form element component that you want to use,\n * the props you want to apply on it,\n * and the size (as in width, it's like columns system, between 1 and 12)\n * Example:\n * ...\n * fields={[\n {\n component: Input2,\n styles: {\n width: \"200px\",\n },\n size: 4,\n props: {\n name: 'input',\n label: 'Claim name',\n theme: 'default rounded-corners',\n placeholder: 'Enter claim name',\n validate: formikRequired('This field is required')\n }\n },\n {\n component: Combobox2,\n size: 8,\n props: comboboxProps\n }\n ]}\n */\n fields: PropTypes.instanceOf(Array),\n /** onChange function is called everytime the value of editable list changes */\n onChange: PropTypes.func,\n /** value of editable list, wich is an Array (List of row values)\n * of Arrays (List of column values,\n * each column will have the value format depending on the component type)\n */\n value: PropTypes.oneOfType([\n PropTypes.instanceOf(Object),\n PropTypes.instanceOf(Array),\n ]),\n error: PropTypes.string,\n hideOnEmpty: PropTypes.bool,\n wrapperClassName: PropTypes.string,\n};\n\nexport default EditableList2;\n","import React, { useCallback, useState } from 'react';\n\n// eslint-disable-next-line react/function-component-definition\nconst withValidation = (Component) => ({\n onChange, // eslint-disable-line react/prop-types\n validate, // eslint-disable-line react/prop-types\n error, // eslint-disable-line react/prop-types\n ...rest\n}) => {\n const [internalError, setInternalError] = useState(null);\n const onFieldChange = useCallback((event) => {\n /* eslint-disable-next-line */\n const value = event?.target\n ? ['radio', 'checkbox'].includes(event.target.type)\n ? event.target.checked\n : event?.target.value\n : event;\n\n let isValid = true;\n if (validate && typeof validate === 'function') {\n const errorMsg = validate(value);\n isValid = !errorMsg;\n setInternalError(errorMsg);\n }\n\n onChange(value, isValid);\n }, [validate, onChange]);\n\n return ;\n};\n\nexport default withValidation;\n","const validateValues = (fields, rowValues) => (rowValues || [[undefined, undefined]])?.map(\n (colValue) => colValue?.map(\n (value, index) => fields[index].props.validate?.(value),\n ),\n);\n\nexport default validateValues;\n","import React, { useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../../../components/Icon';\n\nfunction FileInput({\n error,\n theme,\n labelwidth,\n wrapperClassName = '',\n id,\n label,\n note,\n accept,\n value,\n onChange,\n ...rest\n}) {\n const fileInputRef = useRef();\n\n function handleOnChange(e) {\n onChange(e.target.files);\n }\n\n function getCssClasses() {\n const cssClasses = [wrapperClassName, 'tyk-form-group'];\n const themes = theme ? theme.split(' ') : [];\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n return cssClasses.join(' ');\n }\n\n function getLabelStyles() {\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = labelwidth;\n }\n\n return styles;\n }\n\n function getNonLabelWidth() {\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styles;\n }\n\n function getFileInputError() {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }\n\n function getFileInputComponent() {\n return (\n \n \n {\n fileInputRef.current && fileInputRef.current.files.length > 0\n ? (\n \n \n \n )\n : null\n }\n \n );\n }\n\n function clearValue() {\n fileInputRef.current.value = '';\n onChange('');\n }\n\n return (\n
    \n {\n label\n ? \n : null\n }\n
    \n { getFileInputComponent() }\n {\n note\n ?

    { note }

    \n : null\n }\n
    \n { getFileInputError() }\n
    \n );\n}\n\nFileInput.propTypes = {\n accept: PropTypes.string,\n disabled: PropTypes.bool,\n id: PropTypes.string,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.instanceOf(Object),\n wrapperClassName: PropTypes.string,\n};\n\nexport default FileInput;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nclass Input extends Component {\n static getAddon(content) {\n return (\n
    \n { content }\n
    \n );\n }\n\n constructor(props) {\n super(props);\n const {\n value,\n } = this.props;\n\n this.state = {\n initValue: value,\n stateValue: value,\n };\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n componentDidUpdate(prevProps) {\n const {\n isfield,\n value,\n onChange,\n } = this.props;\n\n if (!isfield && prevProps.value !== value) {\n /* eslint-disable react/no-did-update-set-state */\n this.setState({\n stateValue: value,\n }, () => {\n if (onChange) {\n onChange(value);\n }\n });\n }\n }\n\n handleOnChange(e) {\n const { onChange, isfield } = this.props;\n const inputValue = e.target.value;\n\n if (!isfield) {\n this.setState({\n stateValue: inputValue,\n }, () => {\n if (onChange) {\n onChange(inputValue);\n }\n });\n } else {\n onChange(inputValue);\n }\n }\n\n getLabelStyles() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = labelwidth;\n }\n\n return styles;\n }\n\n getNonLabelWidth() {\n const { labelwidth } = this.props;\n const styles = {};\n\n if (labelwidth) {\n styles.flexBasis = `calc(100% - ${labelwidth} - 20px)`;\n }\n\n return styles;\n }\n\n getInputError() {\n const { error } = this.props;\n\n return (error && error !== 'true' && error !== 'false')\n ? (\n \n { error }\n

    \n )\n : null;\n }\n\n getCssClasses() {\n const {\n error,\n theme,\n labelwidth,\n inputgroupaddonleft,\n inputgroupaddonright,\n } = this.props;\n const cssClasses = ['tyk-form-group'];\n const themes = theme ? theme.split(' ') : [];\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (inputgroupaddonleft) {\n cssClasses.push('tyk-form-group--addon-left');\n }\n\n if (inputgroupaddonright) {\n cssClasses.push('tyk-form-group--addon-right');\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n return cssClasses.join(' ');\n }\n\n getInputGroupAddon() {\n const {\n inputgroupaddonleft,\n inputgroupaddonright,\n } = this.props;\n\n return (\n
    \n {\n inputgroupaddonleft\n ? Input.getAddon(inputgroupaddonleft)\n : null\n }\n { this.getInputComponent() }\n {\n inputgroupaddonright\n ? Input.getAddon(inputgroupaddonright)\n : null\n }\n
    \n );\n }\n\n getInputComponent() {\n const {\n isfield, onChange, value, ...rest\n } = this.props;\n const { stateValue } = this.state;\n return (\n \n );\n }\n\n // eslint-disable-next-line react/no-unused-class-component-methods\n reset() {\n const { initValue } = this.state;\n\n this.setState({\n stateValue: initValue,\n });\n }\n\n render() {\n const {\n label,\n id,\n inputgroupaddonleft,\n inputgroupaddonright,\n note,\n readOnly,\n value,\n } = this.props;\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n {\n inputgroupaddonleft || inputgroupaddonright\n ? this.getInputGroupAddon()\n : this.getInputComponent()\n }\n {\n note\n ?

    { note }

    \n : null\n }\n { this.getInputError() }\n
    \n )}\n {\n readOnly &&
    {value || '-'}
    \n }\n \n );\n }\n}\n\nInput.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n isfield: PropTypes.bool,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n inputgroupaddonleft: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n inputgroupaddonright: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n};\n\nexport default Input;\n","import React, { useImperativeHandle, useRef, forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Input2({\n error,\n onChange,\n readOnly,\n id,\n inputgroupaddonleft,\n inputgroupaddonright,\n label,\n labelwidth,\n note,\n theme,\n value,\n wrapperClassName = '',\n ...rest\n}, ref) {\n const inputRef = useRef();\n\n useImperativeHandle(ref, () => ({\n focus: () => {\n inputRef.current.focus();\n },\n }));\n\n const getAddon = (content) => (\n
    \n { content }\n
    \n );\n\n const getLabelStyles = () => ({\n ...labelwidth && {\n flexBasis: labelwidth,\n },\n });\n\n const getNonLabelWidth = () => ({\n ...labelwidth && {\n flexBasis: `calc(100% - ${labelwidth} - 20px)`,\n },\n });\n\n const getInputError = () => (\n (error && error !== 'true' && error !== 'false')\n ? (\n \n { error }\n

    \n )\n : null\n );\n\n const getCssClasses = () => {\n const cssClasses = [wrapperClassName, 'tyk-form-group'];\n const themes = theme ? theme.split(' ') : [];\n\n if (themes.length) {\n themes.forEach((iTheme) => {\n cssClasses.push(`tyk-form-group--${iTheme}`);\n });\n }\n\n if (inputgroupaddonleft) {\n cssClasses.push('tyk-form-group--addon-left');\n }\n\n if (inputgroupaddonright) {\n cssClasses.push('tyk-form-group--addon-right');\n }\n\n if (labelwidth) {\n cssClasses.push('tyk-form-group--label-has-width');\n }\n\n if (error) {\n cssClasses.push('has-error');\n }\n\n return cssClasses.join(' ');\n };\n\n const handleOnChange = (e) => {\n onChange(e, e.target.value);\n };\n\n const getInputElement = () => (\n \n );\n\n const getInputGroupAddon = () => (\n
    \n {\n inputgroupaddonleft\n ? getAddon(inputgroupaddonleft)\n : null\n }\n { getInputElement() }\n {\n inputgroupaddonright\n ? getAddon(inputgroupaddonright)\n : null\n }\n
    \n );\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n {\n inputgroupaddonleft || inputgroupaddonright\n ? getInputGroupAddon()\n : getInputElement()\n }\n {\n note\n ?

    { note }

    \n : null\n }\n { getInputError() }\n
    \n )}\n {\n readOnly && (\n
    \n {value || '-'}\n
    \n )\n }\n \n );\n}\n\nInput2.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n inputgroupaddonleft: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n inputgroupaddonright: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.string,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default forwardRef(Input2);\n","import { createContext } from 'react';\n\nconst MultiselectContext = createContext();\n\nexport default MultiselectContext;\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport MultiselectContext from './MultiselectContext';\nimport Button from '../../../../components/Button';\nimport Collapsible from '../../../../components/Collapsible';\nimport Loader from '../../../../components/Loader';\n\nconst getItemContent = (context, item) => (\n context.detailsDisplayTemplate\n ? context.detailsDisplayTemplate(item)\n : JSON.stringify(item.details)\n);\n\nconst getItemLoader = (context, item) => {\n const { opened } = context;\n\n return opened[item.id]\n ? \n : null;\n};\n\nfunction MultiselectItem({\n item,\n itemType,\n searchValue,\n onChange,\n}) {\n const isInSearchValue = useCallback((fieldsToSearchOn) => {\n if (fieldsToSearchOn?.length > 0) {\n return fieldsToSearchOn.some((key) => item[key]?.includes(searchValue));\n }\n\n return JSON.stringify(item).includes(searchValue);\n }, [item, searchValue]);\n\n const onAddRemove = useCallback(() => {\n onChange(item);\n }, [onChange, item]);\n\n return (\n \n {\n (context) => (\n isInSearchValue(context.fieldsToSearchOn)\n ? (\n
  • \n
    \n \n {\n context.itemDisplayTemplate\n ? context.itemDisplayTemplate(item)\n : JSON.stringify(item)\n }\n \n \n \n context.onGetItemDetails(item)}\n />\n \n
    \n {\n item.details\n ? (\n \n {getItemContent(context, item)}\n \n )\n : getItemLoader(context, item)\n }\n
  • \n )\n : null\n )\n }\n
    \n );\n}\n\nMultiselectItem.propTypes = {\n item: PropTypes.instanceOf(Object),\n itemType: PropTypes.string,\n searchValue: PropTypes.string,\n onChange: PropTypes.func,\n};\n\nexport default MultiselectItem;\n","import React, { useCallback, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Input from '../../Input';\nimport Icon from '../../../../components/Icon';\nimport Message from '../../../../components/Message';\nimport InfiniteScroller from '../../../../components/InfiniteScroller';\nimport MultiselectItem from './MultiselectItem';\n\nfunction MultiselectPanel({\n inputPlaceholder,\n noItemsMessage,\n items,\n onCustomSearch,\n onChange,\n customSearch,\n panelType,\n serverLoad,\n itemsPageNumber,\n itemsNrPages,\n loadMoreItems,\n}) {\n const [searchValue, setSearchValue] = useState('');\n const itemIndex = useRef(0);\n const itemsListRef = useRef();\n\n function getItemIndex() {\n itemIndex.current += 1;\n\n return itemIndex.current;\n }\n\n function getItemsList() {\n return (\n serverLoad\n ? (\n itemsPageNumber}\n loadMore={loadMoreItems}\n pageNumber={itemsPageNumber}\n >\n { renderListItems() }\n \n )\n : renderListItems()\n );\n }\n\n const searchOnChange = useCallback((value) => {\n if (onCustomSearch) {\n onCustomSearch(value);\n } else {\n setSearchValue(value);\n }\n }, [onCustomSearch]);\n\n const itemChanged = useCallback((item) => {\n let cloneItems = structuredClone(items);\n cloneItems = cloneItems.filter((clonedItem) => item.id !== clonedItem.id);\n\n onChange(cloneItems, item);\n }, [items]);\n\n function renderListItems() {\n return (\n \n {\n items.map((item) => (\n \n ))\n }\n \n );\n }\n\n return (\n
    \n \n }\n name=\"search\"\n onChange={searchOnChange}\n placeholder={inputPlaceholder}\n value={searchValue}\n />\n {\n items.length\n ? getItemsList()\n : (\n \n { noItemsMessage }\n \n )\n }\n
    \n );\n}\n\nMultiselectPanel.propTypes = {\n customSearch: PropTypes.bool,\n onCustomSearch: PropTypes.func,\n panelType: PropTypes.string,\n onChange: PropTypes.func,\n items: PropTypes.instanceOf(Array),\n itemsPageNumber: PropTypes.number,\n itemsNrPages: PropTypes.number,\n inputPlaceholder: PropTypes.string,\n loadMoreItems: PropTypes.func,\n noItemsMessage: PropTypes.string,\n serverLoad: PropTypes.bool,\n};\n\nexport default MultiselectPanel;\n","import React, { useCallback, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport MultiselectPanel from './js/MultiselectPanel';\nimport MultiselectContext from './js/MultiselectContext';\n\nconst diffObjects = (value, items) => items.filter((item) => !value.find((v) => v.id === item.id));\n\nfunction Multiselect({\n customSearch,\n entityNamePlural,\n disabled,\n error,\n getItemDetails,\n itemDisplayTemplate,\n detailsDisplayTemplate,\n fieldsToSearchOn,\n items,\n itemsPageNumber,\n itemsNrPages,\n loadMoreItems,\n maxSelections,\n note,\n value,\n onChange,\n wrapperClassName = '',\n}) {\n const [opened, setOpened] = useState({});\n\n const onGetItemDetails = useCallback((item) => {\n setOpened((prevOpened) => ({ ...prevOpened, [item.id]: !prevOpened[item.id] }));\n\n if (getItemDetails) getItemDetails(item);\n }, [getItemDetails]);\n\n function getMultiselectError() {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }\n\n const getCssClasses = useCallback(\n () => [\n wrapperClassName,\n 'tyk-multiselect',\n error && 'has-error',\n ]\n .filter(Boolean)\n .join(' '),\n [wrapperClassName, error],\n );\n\n const itemsChange = useCallback((allItems, item) => {\n const valueClone = structuredClone(value);\n\n valueClone.unshift(item);\n\n onChange(valueClone, item, 'added');\n }, [value]);\n\n const valueChange = useCallback((newValue, item) => {\n onChange(newValue, item, 'removed');\n }, [items]);\n\n const providerValue = useMemo(() => ({\n disabled,\n itemDisplayTemplate,\n detailsDisplayTemplate,\n fieldsToSearchOn,\n maxSelections,\n nrSelectedItems: value.length,\n onGetItemDetails,\n opened,\n }), [\n disabled,\n itemDisplayTemplate,\n detailsDisplayTemplate,\n fieldsToSearchOn,\n maxSelections,\n value,\n onGetItemDetails,\n opened,\n ]);\n\n return (\n <>\n
    \n \n
    \n
    \n { value.length }\n {' '}\n Selected\n {' '}\n { entityNamePlural }\n
    \n
    \n Select from existing\n { entityNamePlural }\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n {\n note\n ?

    { note }

    \n : null\n }\n
    \n { getMultiselectError() }\n \n );\n}\n\nMultiselect.propTypes = {\n customSearch: PropTypes.func,\n disabled: PropTypes.bool,\n error: PropTypes.string,\n entityNamePlural: PropTypes.string,\n items: PropTypes.instanceOf(Array),\n itemDisplayTemplate: PropTypes.func,\n detailsDisplayTemplate: PropTypes.func,\n fieldsToSearchOn: PropTypes.instanceOf(Array),\n onChange: PropTypes.func,\n getItemDetails: PropTypes.func,\n itemsPageNumber: PropTypes.number,\n itemsNrPages: PropTypes.number,\n loadMoreItems: PropTypes.func,\n note: PropTypes.string,\n maxSelections: PropTypes.number,\n value: PropTypes.instanceOf(Array),\n wrapperClassName: PropTypes.string,\n};\n\nexport default Multiselect;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * Radio can be used when a user needs to select at most one value from a multiple options.\n */\nfunction Radio({\n label,\n input,\n note,\n inline,\n nospace,\n theme = '',\n disabled,\n readOnly,\n wrapperClassName = '',\n ...rest\n}) {\n const cssClasses = [\n inline ? 'tyk-radio--inline' : 'tyk-radio',\n wrapperClassName,\n nospace && 'no-margin',\n ...(theme ? theme.split(' ').filter(Boolean).map((t) => `tyk-radio--theme-${t}`) : []),\n (readOnly || disabled) && 'tyk-radio--is-disabled',\n ].filter(Boolean).join(' ');\n\n return (\n
    \n \n {note && (\n

    {note}

    \n )}\n
    \n );\n}\n\nRadio.propTypes = {\n /** Used to disable the element */\n disabled: PropTypes.bool,\n /** Readonly prop behaves the same as disabled on radio elements */\n readOnly: PropTypes.bool,\n /** Align radio in the same line with other elements */\n inline: PropTypes.bool,\n /** Set a theme for radio */\n theme: PropTypes.string,\n input: PropTypes.instanceOf(Object),\n /** Adds label to the radio input */\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n /** Set name for the radio input */\n name: PropTypes.string,\n /** If set to true removes margin by adding `no-margin` class */\n nospace: PropTypes.bool,\n /** Set initial value for the radio input */\n value: PropTypes.string,\n /** Add note at the bottom of the radio input */\n note: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default Radio;\n","import React, { useCallback, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Select(props) {\n const {\n value,\n onChange,\n onBlur,\n isfield,\n label,\n labelwidth,\n id,\n note,\n readOnly,\n options,\n error,\n theme,\n wrapperClassName = '',\n ...rest\n } = props;\n const [stateValue, setStateValue] = useState(value);\n\n useEffect(() => {\n if (!isfield && stateValue !== value) {\n setStateValue(value);\n if (onChange) onChange(value);\n }\n }, [stateValue, value]);\n\n const handleOnChange = useCallback((e) => {\n const selectedValue = options.find((option) => option.id === e.target.value);\n\n if (!isfield) {\n setStateValue(selectedValue);\n }\n onChange(selectedValue.id ? selectedValue : null);\n }, [options, isfield, onChange]);\n\n const handleOnBlur = useCallback(() => {\n if (onBlur) {\n onBlur(value);\n }\n }, [onBlur]);\n\n // eslint-disable-next-line arrow-body-style\n const getSelectError = useCallback(() => {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }, [error]);\n\n const getCssClasses = useCallback(\n () => [\n 'tyk-form-group',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' '),\n [wrapperClassName, theme, labelwidth, error],\n );\n\n const getLabelStyles = useCallback(() => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n }, [labelwidth]);\n\n const getNonLabelWidth = useCallback(() => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n }, [labelwidth]);\n\n const getSelectComponent = useCallback(() => {\n const selectValue = isfield && value ? value : stateValue;\n\n return (\n \n {\n options.map((option) => (\n \n ))\n }\n \n );\n }, [isfield, value, stateValue, handleOnChange, handleOnBlur, options, rest]);\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n { getSelectComponent() }\n {\n note\n ?

    { note }

    \n : null\n }\n { getSelectError() }\n
    \n )}\n {readOnly &&
    {value || '-'}
    }\n \n );\n}\n\nSelect.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n isfield: PropTypes.bool,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n options: PropTypes.instanceOf(Array),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n name: PropTypes.string,\n note: PropTypes.string,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n theme: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n ]),\n wrapperClassName: PropTypes.string,\n};\n\nexport default Select;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Message from '../../../components/Message';\nimport List from '../../../components/List';\nimport Icon from '../../../components/Icon';\n\nfunction SelectableList(props) {\n const {\n checkboxalticon,\n items,\n itemTemplate,\n value,\n noItemsMessage = 'No items in the list',\n onChange,\n theme,\n primaryKey,\n wrapperClassName = '',\n } = props;\n\n const handleOnSelect = (event) => {\n const newSelectedItems = structuredClone(value);\n const elemPosition = newSelectedItems.findIndex(\n (id) => JSON.stringify(id) === JSON.stringify(\n Array.isArray(id)\n ? event.target.value.split(',')\n : event.target.value,\n ),\n );\n\n if (event.target.checked && elemPosition === -1) {\n const tempValue = event.target.value.split(',');\n const finalValue = tempValue.length > 1 ? tempValue : event.target.value;\n\n newSelectedItems.push(finalValue);\n } else if (!event.target.checked && elemPosition > -1) {\n newSelectedItems.splice(elemPosition, 1);\n }\n\n if (onChange) {\n onChange(newSelectedItems);\n }\n };\n\n const getListItemCssClassName = (isActive) => {\n const cssClasses = [];\n\n if (checkboxalticon) {\n cssClasses.push('tyk-selectable-list__item--with-icon');\n }\n\n if (isActive) {\n cssClasses.push('tyk-selectable-list__item--active');\n }\n\n return cssClasses.join(' ');\n };\n\n const isChecked = (inputValue, itemValue) => Boolean(\n inputValue.find((tvalue) => JSON.stringify(itemValue) === JSON.stringify(tvalue)),\n );\n\n return (\n \n {\n !items.length\n ? (\n
  • \n \n {noItemsMessage}\n \n
  • \n )\n : items.map((item, index) => (\n \n \n \n ))\n }\n
    \n );\n}\n\nSelectableList.propTypes = {\n items: PropTypes.instanceOf(Array),\n itemTemplate: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n PropTypes.func,\n ]),\n value: PropTypes.instanceOf(Array),\n onChange: PropTypes.func,\n primaryKey: PropTypes.string,\n noItemsMessage: PropTypes.string,\n checkboxalticon: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n theme: PropTypes.string,\n wrapperClassName: PropTypes.string,\n};\n\nSelectableList.defaultProps = {\n items: [],\n primaryKey: 'id',\n value: [],\n};\n\nexport default SelectableList;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Textarea({\n id,\n input,\n label,\n note,\n error,\n theme,\n labelwidth,\n value,\n readOnly,\n wrapperClassName,\n ...rest\n}) {\n const classes = [\n 'tyk-form-group',\n wrapperClassName,\n ...(theme ? theme.split(' ').map((t) => `tyk-form-group--${t}`) : []),\n labelwidth && 'tyk-form-group--label-has-width',\n error && 'has-error',\n ].filter(Boolean).join(' ');\n\n const getLabelStyles = () => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n };\n\n const getNonLabelWidth = () => {\n if (labelwidth) return { flexBasis: `calc(100% - ${labelwidth} - 20px)` };\n return {};\n };\n\n function getTextareaError() {\n return (error && error !== 'true' && error !== 'false')\n ? (\n

    \n { error }\n

    \n )\n : null;\n }\n\n return (\n
    \n {\n label\n ? \n : null\n }\n {!readOnly && (\n \n \n { value }\n \n {\n note\n ?

    { note }

    \n : null\n }\n {getTextareaError()}\n
    \n )}\n {readOnly &&
    {value || '-'}
    }\n \n );\n}\n\nTextarea.propTypes = {\n /** Disable the component */\n disabled: PropTypes.bool,\n /** Displays only the text value of the component, or \"-\" if no value is set */\n readOnly: PropTypes.bool,\n input: PropTypes.instanceOf(Object),\n /** Set an error message for the component and the component is rendered in the error state */\n error: PropTypes.string,\n /** Adds a label to the component */\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n /** Sets the width of the label */\n labelwidth: PropTypes.string,\n /** Set a name for the component */\n name: PropTypes.string,\n /** Adds additional information under the component */\n note: PropTypes.string,\n /** Callback function executed on value change */\n onChange: PropTypes.func,\n id: PropTypes.string,\n /** Set a theme for the component */\n theme: PropTypes.string,\n /** Set the value of the component */\n value: PropTypes.string,\n /** CSS classes added to the wrapper of the component */\n wrapperClassName: PropTypes.string,\n};\n\nexport default Textarea;\n","import { createContext } from 'react';\n\nconst ToggleContext = createContext();\n\nexport default ToggleContext;\n","import React, { Component, createRef } from 'react';\nimport PropTypes from 'prop-types';\n\nclass ToggleItem extends Component {\n static getNotchCssClasses(context) {\n return ['tyk-toggle__item-notch', `tyk-toggle__item-notch--${context.type}`].join(' ');\n }\n\n constructor(props) {\n super(props);\n\n this.itemRef = createRef();\n }\n\n componentDidMount() {\n const { context, value } = this.props;\n\n if (context.value === value) {\n context.saveSelectedRef(this.itemRef);\n }\n }\n\n componentDidUpdate(prevProps) {\n const { context, value } = this.props;\n\n if (prevProps.context.value !== context.value && context.value === value) {\n context.saveSelectedRef(this.itemRef);\n }\n }\n\n onChange(event) {\n const { context, value } = this.props;\n const { disabled, readOnly } = context;\n\n if (disabled || readOnly) {\n return;\n }\n\n context.onItemSelected(context.type === 'single' ? !context.value : value, event);\n }\n\n render() {\n const {\n context, label, name, value,\n } = this.props;\n return (\n
  • \n \n
  • \n );\n }\n}\n\nToggleItem.propTypes = {\n context: PropTypes.instanceOf(Object),\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n name: PropTypes.string,\n value: PropTypes.string,\n};\n\nexport default ToggleItem;\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport ToggleContext from './ToggleContext';\nimport ToggleItem from './ToggleItem';\n\nfunction ToggleItemWrapper({ children, ...rest }, ref) {\n return (\n \n {(context) => (\n \n {children}\n \n )}\n \n );\n}\n\nToggleItemWrapper.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n};\n\nexport default forwardRef(ToggleItemWrapper);\n","import React, {\n useCallback, useMemo, useRef, useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport ToggleContext from './js/ToggleContext';\nimport ToggleItemWrapper from './js/ToggleItemWrapper';\n\nfunction Toggle({\n className,\n disabled,\n readOnly,\n size,\n theme,\n direction,\n onDark,\n wrapperClassName = '',\n onChange,\n labelwidth,\n label,\n separated,\n children,\n type,\n value,\n error,\n}) {\n const [selectedRef, setSelectedRef] = useState(null);\n const notchRef = useRef();\n const toggleRef = useRef();\n\n const classes = [\n wrapperClassName,\n className,\n 'tyk-toggle',\n `tyk-toggle--disabled-${readOnly || disabled}`,\n `tyk-toggle--${size || 'md'}`,\n `tyk-toggle--${theme}`,\n `tyk-toggle--${direction}`,\n onDark && 'tyk-toggle--on-dark',\n ].filter(Boolean).join(' ');\n\n const onItemSelected = useCallback((itemValue, event) => {\n if (!onChange) return;\n onChange(itemValue, event);\n }, [onChange]);\n\n const getLabelStyles = useCallback(() => {\n if (labelwidth) return { flexBasis: labelwidth };\n return {};\n }, [labelwidth]);\n\n const positionNotch = useCallback(() => {\n if (!selectedRef || separated) {\n return {};\n }\n\n const selectedWidth = selectedRef.current.offsetWidth;\n const selectedOffset = selectedRef.current.getBoundingClientRect().left;\n const toggleOffset = toggleRef.current.getBoundingClientRect().left;\n const left = selectedOffset - toggleOffset;\n\n return {\n left: `${left + 4}px`,\n width: `${selectedWidth - 8}px`,\n };\n }, [selectedRef, separated]);\n\n const contextValue = useMemo(() => ({\n disabled,\n readOnly,\n onItemSelected,\n saveSelectedRef: setSelectedRef,\n separated,\n type,\n value,\n }), [disabled, readOnly, onItemSelected, separated, type, value]);\n\n return (\n <>\n
    \n \n {\n label\n ? \n : null\n }\n
      \n { children }\n {\n type === 'multiple' && !separated\n ?
    • \n : null\n }\n
    \n \n
    \n {\n error && (\n

    \n { error }\n

    \n )\n }\n \n );\n}\n\nToggle.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n className: PropTypes.string,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n error: PropTypes.string,\n onChange: PropTypes.func,\n label: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.func,\n PropTypes.string,\n ]),\n labelwidth: PropTypes.string,\n theme: PropTypes.string,\n type: PropTypes.string, // single || multiple\n size: PropTypes.string,\n separated: PropTypes.bool,\n direction: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.string,\n ]),\n onDark: PropTypes.bool,\n wrapperClassName: PropTypes.string,\n};\n\nToggle.defaultProps = {\n separated: false,\n theme: 'primary',\n type: 'single',\n direction: 'row',\n};\n\nToggle.Item = ToggleItemWrapper;\n\nexport default Toggle;\n","const config = {\n FORM_DEBOUNCE: 200,\n};\n\nexport function setConfig(key, val) {\n config[key] = val;\n}\n\nexport default config;\n","import React, { useCallback, useEffect, useState } from 'react';\n\nimport config from '../config/config';\n\nfunction getValueFromPath(obj, path) {\n // turn 'aaa.qqq[2].bbb[5][3].mmm' into ['aaa', 'qqq', '2', 'bbb', '5', '3', 'mmm']\n const indexes = path.split(/[\\][.]/).filter(Boolean);\n return indexes.reduce((acc, v) => (acc ? acc[v] : acc), obj);\n}\n\nfunction debounce(f, limit) {\n let timeoutId;\n return (...args) => {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(f, limit, ...args);\n };\n}\n\n/* eslint-disable react/prop-types, react/function-component-definition */\n/**\n * A wrapper function that \"prepares\" a tyk-ui form component to be used with the formik library.\n * It handles things like setting the value of the component, change events, error state,\n * and also has a default debounce time for when the change event is triggered.\n */\nconst wrapper = (Component, options) => ({ field, form, ...properties }) => {\n const DEFAULT_DEBOUNCE_TIME_MS = typeof config.FORM_DEBOUNCE === 'number' ? config.FORM_DEBOUNCE : 200;\n const [myValue, setMyValue] = useState(field.value);\n const opts = {\n getOnChangeProps: () => ({}),\n hasIsFieldProp: false,\n ...options,\n };\n\n const executeDebounced = useCallback((() => {\n const fn = (f) => f();\n if (\n properties.debounce === false\n || (config.FORM_DEBOUNCE === false && !properties.debounce)\n ) {\n return fn;\n }\n const timeout = typeof properties.debounce === 'number'\n ? properties.debounce\n : DEFAULT_DEBOUNCE_TIME_MS;\n return debounce(fn, timeout);\n })(), []);\n\n const getValue = (v) => {\n if (v?.target) {\n if (v.target.nodeName === 'INPUT' && (v.target.type === 'checkbox' || v.target.type === 'radio')) {\n return v.target.checked;\n }\n return v.target.value;\n }\n return v;\n };\n\n const onChange = (valueOrEvent) => {\n const value = getValue(valueOrEvent);\n const onChangeProps = opts.getOnChangeProps(value, field, form, properties);\n\n const newValue = onChangeProps.value || properties.value || value;\n executeDebounced(() => {\n if (typeof properties.onChange === 'function') {\n properties.onChange(newValue);\n }\n field.onChange({ target: { name: field.name, value: newValue, ...onChangeProps } });\n });\n setMyValue(newValue);\n };\n\n const formError = (getValueFromPath(form.touched, field.name) || Boolean(form.submitCount))\n && getValueFromPath(form.errors, field.name);\n const error = typeof formError === 'string' ? formError : '';\n\n useEffect(() => {\n setMyValue(field.value);\n }, [field.value]);\n\n // eslint-disable-next-line no-param-reassign\n if (form.status?.disabled) properties.disabled = true;\n\n const componentProps = { ...properties };\n delete componentProps.debounce;\n\n if (Object.hasOwn(componentProps, 'className') && componentProps.className === undefined) delete componentProps.className;\n if (Object.hasOwn(componentProps, 'children') && componentProps.children === undefined) delete componentProps.children;\n\n return (\n \n );\n};\n\nexport default wrapper;\n","import wrapper from '../../../utils/formik';\nimport Checkbox from '../../components/Checkbox';\n\nexport default wrapper(Checkbox, {\n getOnChangeProps: (value) => ({\n checked: value,\n }),\n});\n","import wrapper from '../../../utils/formik';\nimport CodeEditor from '../../components/CodeEditor';\n\nexport default wrapper(CodeEditor);\n","import wrapper from '../../../utils/formik';\nimport Combobox from '../../components/Combobox';\n\nexport default wrapper(Combobox);\n","import wrapper from '../../../utils/formik';\nimport Combobox2 from '../../components/Combobox2';\n\nexport default wrapper(Combobox2);\n","import wrapper from '../../../utils/formik';\nimport DatePicker from '../../components/DatePicker';\n\nexport default wrapper(DatePicker);\n","import wrapper from '../../../utils/formik';\nimport EditableList from '../../components/EditableList';\n\nexport default wrapper(EditableList, {\n getOnChangeProps: (value) => ({ value: value || [] }),\n});\n","import wrapper from '../../../utils/formik';\nimport EditableList2 from '../../components/EditableList2';\n\nexport default wrapper(EditableList2);\n","import wrapper from '../../../utils/formik';\nimport FileInput from '../../components/FileInput';\n\nexport default wrapper(FileInput);\n","import wrapper from '../../../utils/formik';\nimport Input from '../../components/Input';\n\nexport default wrapper(Input, { hasIsFieldProp: true });\n","import wrapper from '../../../utils/formik';\nimport Input2 from '../../components/Input2';\n\nexport default wrapper(Input2);\n","import wrapper from '../../../utils/formik';\nimport MultiSelect from '../../components/Multiselect';\n\nexport default wrapper(MultiSelect);\n","import wrapper from '../../../utils/formik';\nimport Radio from '../../components/Radio';\n\nexport default wrapper(Radio, {\n getOnChangeProps: (value, field, form, properties) => ({\n checked: value === properties.value,\n value: properties.value,\n }),\n});\n","import wrapper from '../../../utils/formik';\nimport Select from '../../components/Select';\n\nexport default wrapper(Select, { hasIsFieldProp: true });\n","import wrapper from '../../../utils/formik';\nimport SelectableList from '../../components/SelectableList';\n\nexport default wrapper(SelectableList);\n","import wrapper from '../../../utils/formik';\nimport Textarea from '../../components/Textarea';\n\nexport default wrapper(Textarea);\n","import wrapper from '../../../utils/formik';\nimport Toggle from '../../components/Toggle';\n\nexport default wrapper(Toggle);\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport CodeEditor from '../../components/CodeEditor';\n\nclass FieldCodeEditor extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.prop;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getInputError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldCodeEditor.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldCodeEditor;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Combobox from '../../components/Combobox';\n\nclass FieldCombobox extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getComboboxError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldCombobox.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldCombobox;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Dropdown from '../../components/Dropdown';\n\nclass FieldDropdown extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n render() {\n const {\n children,\n input,\n ...rest\n } = this.props;\n\n return (\n \n {children}\n \n );\n }\n}\n\nFieldDropdown.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.element,\n PropTypes.string,\n ]),\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldDropdown;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Pagination from '../../components/Pagination';\n\nfunction FieldPagination(props) {\n const { input, ...rest } = props;\n\n return (\n \n );\n}\n\nFieldPagination.propTypes = {\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldPagination;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Combobox2 from '../../components/Combobox2';\n\nfunction FieldCombobox2(props) {\n const { input, meta, validationmessages } = props;\n\n const getComboboxError = () => {\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n return message;\n };\n\n const handleOnChange = (value) => {\n const { onChange } = input;\n onChange(fromJS(value));\n };\n\n return (\n \n );\n}\n\nFieldCombobox2.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldCombobox2;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport DatePicker from '../../components/DatePicker';\n\nfunction FormDatePicker(props) {\n const {\n input,\n meta,\n validationmessages,\n ...rest\n } = props;\n\n const getDatePickerError = () => {\n const { touched, error } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n }\n\n return message;\n };\n\n const handleOnChange = (value) => {\n const { onChange } = input;\n\n onChange(fromJS(value));\n };\n\n return (\n \n );\n}\n\nFormDatePicker.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FormDatePicker;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport EditableList from '../../components/EditableList';\n\nclass FieldEditableList extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getEditableListError() {\n const { meta, validationmessages } = this.props;\n const { touched, error } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n }\n\n return message;\n }\n\n render() {\n const { ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldEditableList.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldEditableList;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport FileInput from '../../components/FileInput';\n\nclass FieldFileInput extends Component {\n getInputError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldFileInput.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldFileInput;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Input from '../../components/Input';\n\nclass FieldInput extends Component {\n getInputError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldInput.propTypes = {\n meta: PropTypes.instanceOf(Object),\n input: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldInput;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Multiselect from '../../components/Multiselect';\n\nclass FieldMultiselect extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n const { onChange } = input;\n\n onChange(fromJS(value));\n }\n\n getMultiselectError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldMultiselect.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldMultiselect;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Select from '../../components/Select';\n\nclass FieldSelect extends Component {\n constructor(props) {\n super(props);\n\n this.handleEvent = this.handleEvent.bind(this);\n }\n\n handleEvent(selectValue) {\n const { input } = this.props;\n const { onChange, value } = input;\n\n onChange(fromJS(selectValue !== undefined ? selectValue : value));\n }\n\n getSelectError() {\n const { meta, validationmessages } = this.props;\n const { touched, error, warning } = meta;\n let message = null;\n\n if (touched && error && validationmessages[error]) {\n message = validationmessages[error];\n } else if (touched && warning) {\n message = 'warning';\n }\n\n return message;\n }\n\n render() {\n const { input, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldSelect.propTypes = {\n input: PropTypes.instanceOf(Object),\n meta: PropTypes.instanceOf(Object),\n validationmessages: PropTypes.instanceOf(Object),\n};\n\nexport default FieldSelect;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport SelectableList from '../../components/SelectableList';\n\nclass FieldSelectableList extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n\n input.onChange(fromJS(value));\n }\n\n render() {\n const { children, ...props } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldSelectableList.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.node,\n ]),\n onChange: PropTypes.func,\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldSelectableList;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromJS } from 'immutable';\n\nimport Toggle from '../../components/Toggle';\n\nclass FieldToggle extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChange = this.handleOnChange.bind(this);\n }\n\n handleOnChange(value) {\n const { input } = this.props;\n\n input.onChange(fromJS(value));\n }\n\n render() {\n const { children, ...props } = this.props;\n\n return (\n \n {children}\n \n );\n }\n}\n\nFieldToggle.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.node,\n ]),\n onChange: PropTypes.func,\n input: PropTypes.instanceOf(Object),\n};\n\nexport default FieldToggle;\n","import { useEffect, useRef } from 'react';\n\n/** @component */\nexport default function useInterval(callback, delay, ...args) {\n const savedCallback = useRef();\n\n useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n // eslint-disable-next-line consistent-return\n useEffect(() => {\n function tick() {\n savedCallback.current(...args);\n }\n if (delay !== null && delay !== undefined) {\n const id = setInterval(tick, delay);\n return () => clearInterval(id);\n }\n }, [delay]);\n}\n"],"names":["global","this","window","define","module","deps","payload","arguments","length","modules","payloads","original","apply","console","error","trace","ns","root","_require","parentId","callback","lookup","undefined","Object","prototype","toString","call","params","i","l","dep","require","push","packagedModule","normalizeModule","moduleName","indexOf","chunks","split","charAt","slice","join","previous","replace","exports","mod","id","uri","packaged","ace","defineProp","obj","name","val","defineProperty","value","enumerable","writable","configurable","String","startsWith","searchString","position","lastIndexOf","endsWith","subjectString","lastIndex","repeat","count","result","string","includes","str","assign","target","TypeError","output","index","source","keys","forEach","key","values","o","map","k","Array","find","predicate","len","thisArg","kValue","findIndex","item","fill","O","relativeStart","Math","max","min","end","relativeEnd","final","of","deepCopy","copy","isArray","last","a","stringReverse","reverse","stringRepeat","trimBeginRegexp","trimEndRegexp","stringTrimLeft","stringTrimRight","copyObject","copyArray","array","arrayToMap","arr","createMap","props","create","arrayRemove","splice","escapeRegExp","escapeHTML","getMatchOffsets","regExp","matches","offset","deferredCall","fcn","timer","deferred","timeout","cancel","setTimeout","schedule","clearTimeout","isPending","delayedCall","defaultTimeout","_self","delay","supportsLookbehind","RegExp","e","skipEmptyMatch","line","supportsUnicodeFlag","codePointAt","OS","LINUX","MAC","WINDOWS","getOS","isMac","isLinux","_navigator","navigator","os","exec","platform","toLowerCase","ua","userAgent","appName","isWin","isIE","parseFloat","match","isOldIE","isGecko","isMozilla","isOpera","opera","isWebKit","isChrome","isSafari","isEdge","isAIR","isAndroid","isChromeOS","isIOS","test","MSStream","isMobile","strictCSP","useragent","buildDom","parent","refs","txt","document","createTextNode","appendChild","els","ch","el","createElement","options","childIndex","n","className","style","cssText","setAttribute","getDocumentHead","doc","head","getElementsByTagName","documentElement","tag","createElementNS","removeChildren","element","innerHTML","textContent","ownerDocument","createFragment","createDocumentFragment","hasCssClass","addCssClass","removeCssClass","classes","toggleCssClass","add","setCssClass","node","include","hasCssString","sheets","querySelectorAll","removeElementById","getElementById","remove","cssCache","insertPendingStyles","cache","importCssString","container","getRootNode","insertBefore","firstChild","useStrictCSP","importCssStylsheet","rel","href","scrollbarWidth","inner","width","minWidth","height","display","outer","left","overflow","body","noScrollbar","offsetWidth","withScrollbar","clientWidth","removeChild","computedStyle","getComputedStyle","setStyle","styles","property","HAS_CSS_ANIMATION","HAS_CSS_TRANSFORMS","HI_DPI","devicePixelRatio","div","transform","animationName","translate","tx","ty","round","top","dom","get","url","xhr","XMLHttpRequest","open","onreadystatechange","readyState","responseText","send","loadScript","path","s","src","onload","_","isAbort","qualifyURL","inherits","ctor","superCtor","super_","constructor","mixin","implement","proto","EventEmitter","stopPropagation","propagationStopped","preventDefault","defaultPrevented","_emit","_dispatchEvent","eventName","_eventRegistry","_defaultHandlers","listeners","defaultHandler","type","_signal","once","on","newCallback","off","Promise","resolve","setDefaultHandler","handlers","_disabled_","old","disabled","removeDefaultHandler","pop","addEventListener","capturing","removeListener","removeEventListener","removeAllListeners","reportError","msg","data","Error","messages","oop","optionsProvider","setOptions","optList","setOption","getOptions","optionNames","$options","filter","hidden","getOption","opt","warn","forwardTo","handlesSet","set","message","AppConfig","$defaultOptions","defineOptions","initialValue","resetOptions","setDefaultValue","opts","setDefaultValues","optionHash","setMessages","nls","translated","isDark","cssClass","$id","lang","net","customLoader","workerPath","modePath","themePath","basePath","suffix","$moduleUrls","loadWorkerFromBlob","sharedPopups","hasOwnProperty","all","$modes","moduleUrl","component","parts","sep","base","re","setModuleUrl","subst","setLoader","cb","dynamicModules","$loading","$loaded","loadModule","onLoad","loadedModule","moduleType","load","afterLoad","loader","err","reportErrorIfPathIsNotConfigured","then","default","$require","setModuleLoader","version","config","init","scriptOptions","scriptUrl","currentScript","_currentScript","currentDocument","scripts","script","getAttribute","attributes","j","attr","m","m1","toUpperCase","Range","startRow","startColumn","endRow","endColumn","start","row","column","isEqual","range","contains","compare","compareRange","cmp","comparePoint","p","containsRange","intersects","isEnd","isStart","setStart","setEnd","inside","insideStart","insideEnd","isMultiLine","compareStart","compareEnd","compareInside","clipRows","firstRow","lastRow","fromPoints","extend","isEmpty","clone","collapseRows","toScreenRange","session","screenPosStart","documentToScreenPosition","screenPosEnd","moveBy","comparePoints","p1","p2","Keys","ret","MODIFIER_KEYS","KEY_MODS","FUNCTION_KEYS","PRINTABLE_KEYS","parseInt","enter","escape","esc","del","mods","pow","x","keyCodeToString","keyCode","keyString","fromCharCode","activeListenerOptions","pressedKeys","ts","getListenerOptions","createComment","passive","detectListenerOptionsSupport","EventListener","elem","destroy","addListener","destroyer","$toDestroy","stopEvent","getButton","ctrlKey","altKey","shiftKey","button","capture","eventHandler","releaseCaptureHandler","onMouseUp","addMouseWheelListener","deltaX","deltaY","deltaMode","DOM_DELTA_PIXEL","wheelX","wheelY","DOM_DELTA_LINE","DOM_DELTA_PAGE","addMultiMouseDownListener","elements","timeouts","callbackName","startX","startY","clicks","eventNames","onMousedown","detail","isNewClick","abs","clientX","clientY","_clicks","getModifierHash","metaKey","normalizeCommandKeys","hashId","getModifierState","altGr","location","keyLocation","timeStamp","resetPressedKeys","getModifierString","addCommandKeyListener","isOldGecko","lastKeyDownKeyCode","lastDefaultPrevented","postMessage","postMessageId","nextTick","win","messageName","listener","$idleBlocked","onIdle","handler","$idleBlockId","blockIdle","nextFrame","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","bind","$cancelT","lineMode","pasteCancelled","Date","now","event","clipboard","BROKEN_SETDATA","USE_IE_MIME_TYPE","HAS_FOCUS_ARGS","MAX_LINE_LENGTH","KEYS","MODS","valueResetRegex","TextInput","parentNode","host","text","opacity","copied","pasted","inComposition","sendingText","tempStyle","fontSize","commandMode","ignoreFocusEvents","lastValue","lastSelectionStart","lastSelectionEnd","lastRestoreEnd","rowStart","Number","MAX_SAFE_INTEGER","rowEnd","MIN_SAFE_INTEGER","numberOfExtraLines","isFocused","activeElement","setNumberOfExtraLines","number","setAriaOptions","activeDescendant","inline","removeAttribute","role","setLabel","selection","cursor","onBlur","hasFocus","onFocus","resetSelection","$focusScroll","focus","renderer","enableKeyboardAccessibility","preventScroll","isTransformed","getBoundingClientRect","ancestors","t","parentElement","nodeType","blur","curOp","commandName","command","isUserAction","docChanged","selectionChanged","onCompositionEnd","positionToSelection","getLine","newValue","selectionEnd","setSelectionRange","afterContextMenu","selectionStart","getRange","lines","prevLine","nextLine","inputHandler","setInputHandler","getInputHandler","sendText","fromInput","onPaste","extendLeft","extendRight","inserted","restoreStart","restoreEnd","endIndex","shouldReset","onTextInput","onInput","onCompositionUpdate","inputType","execCommand","handleClipboardData","forceIEMime","clipboardData","mime","setData","getData","doCopy","isCut","getCopyText","onCut","onCopy","select","onCommandKey","isAllSelected","selectAll","$readOnly","cancelComposition","useTextareaForIME","markerRange","context","compositionStartOffset","closeTimeout","syncComposition","onContextMenuClose","$isMousePressed","$keepTextAreaAtCursor","$moveTextAreaToCursor","onCompositionStart","getSelectionRange","msGetInputContext","getInputContext","getElement","setCommandMode","readOnly","setReadOnly","setCopyWithEmptySelection","onContextMenu","domEvent","moveToMouse","bringToFront","characterWidth","rect","borderTopWidth","borderLeftWidth","maxTop","bottom","clientHeight","move","textInput","scroller","typingResetTimeout","typing","detectArrowKeys","$mouseHandler","isMousePressed","modifier","up","home","option","down","right","shift","commands","findKeyCommand","addIosSelectionHandler","$setUserAgentForTests","_isMobile","_isIOS","DefaultHandlers","mouseHandler","$clickSelection","editor","onMouseDown","onDoubleClick","onTripleClick","onQuadClick","onMouseWheel","selectByLines","extendSelectionBy","selectByWords","ev","inSelection","pos","getDocumentPosition","mousedownEvent","moveToPosition","time","$focusTimeout","inMultiSelectMode","captureMouse","startSelect","setState","waitForClickSelection","screenToTextCoordinates","y","getShiftKey","selectToPosition","anchor","orientedRange","calcRangeOrientation","setSelectionAnchor","scrollCursorIntoView","unitName","cmpStart","cmpEnd","selectByLinesEnd","unsetStyle","focusWait","ax","ay","bx","by","distance","sqrt","getBracketRange","getWordRange","getLineRange","getAccelKey","$lastScroll","vx","vy","allowed","prevScroll","dt","direction","canScroll","isScrollableBy","speed","scrollBy","stop","selectEnd","selectAllEnd","selectByWordsEnd","extendStatics","__extends","d","b","setPrototypeOf","__proto__","__","__values","Symbol","iterator","next","done","CLASSNAME","Tooltip","isOpen","$element","$parentNode","$init","setText","setHtml","html","setPosition","setClassName","setTheme","theme","show","hide","getHeight","offsetHeight","getWidth","popupManager","PopupManager","popups","addPopup","popup","updatePopups","removePopup","e_1","_a","e_2","_b","sort","priority","visiblepopups","_c","_d","shouldDisplay","visiblepopups_1","visiblepopups_1_1","visiblePopup","doPopupsOverlap","e_2_1","return","e_1_1","popupA","popupB","rectA","rectB","HoverTooltip","_super","_this","lastT","idleTime","lastEvent","onMouseOut","onMouseMove","waitForHover","whiteSpace","pointerEvents","tabIndex","addToEditor","getMouseEventTarget","removeFromEditor","isOutsideOfText","$gatherData","docPos","screenPos","pixelToScreenCoordinates","clippedPos","setDataProvider","showForRange","domNode","startingEvent","$registerCloseEvents","addMarker","textToScreenCoordinates","pageX","maxHeight","labelHeight","labelWidth","spaceBelow","innerHeight","pageY","lineHeight","isAbove","innerWidth","marker","$markerSession","removeMarker","$removeCloseEvents","relatedTarget","currentTarget","classList","GutterHandler","tooltipTimeout","mouseEvent","gutter","$gutterLayer","tooltip","GutterTooltip","hideTooltip","moveTooltip","getRegion","selectTo","srcElement","$tooltipFollowsMouse","getLength","screenRow","$pos","documentToScreenRow","showTooltip","gutterRow","getGutterRow","gutterCell","$lines","querySelector","$gutter","windowWidth","windowHeight","singular","plural","warning","info","annotation","annotationsInRow","$annotations","from","fold","getFoldLine","$showFoldedAnnotations","mostSevereAnnotationInFoldType","annotationsInFold","annotationType","summaryFoldedAnnotations","concat","annotationsToSummaryString","annotationMessages","iconClassName","$useSvgGutterIcons","annotationLabels","tooltipContent","annotations","summary","annotationTypes_1","annotationTypes_1_1","label","MouseEvent","$inSelection","documentRow","selectionRange","DragdropHandler","dragImage","dragSelectionMarker","timerId","dragCursor","dragOperation","isInternal","autoScrollStartTime","cursorMovedTime","cursorPointOnCaretMoved","mouseTarget","counter","onDragInterval","prevCursor","vMovement","hMovement","moveCursorToPosition","calcDistance","layerConfig","editorRect","offsets","nearestXOffset","nearestYOffset","scrollCursor","vScroll","hScroll","autoScroll","addDragMarker","toOrientedRange","getSelectionStyle","clearSelection","$cursorLayer","setBlinking","clearInterval","setInterval","clearDragMarker","fromOrientedRange","$resetCursorStyle","onDragStart","cancelDrag","draggable","self","dataTransfer","effectAllowed","getReadOnly","setDragImage","clearData","getTextRange","onDragEnd","dropEffect","setCursorStyle","onDragEnter","canAccept","getDropEffect","onDragOver","onMouseMoveTimer","onDragLeave","onDrop","moveText","dropData","insert","types","some","copyAllowed","copyModifierState","dragWait","getDragDelay","startDrag","dragWaitEnd","dragReadyEnd","cursorStyle","onMouseDrag","state","dragDrop","$dragEnabled","eventTarget","unselectable","addTouchListeners","touchStartT","longTouchTimer","animationTimer","pressed","contextMenu","mode","animationSteps","clickCount","vX","vY","showContextMenu","handleClick","selected","hasUndo","action","getUndoManager","replaceChild","class","readText","writeText","ontouchstart","ontouchend","onclick","pagePos","leftOffset","scrollLeft","hideContextMenu","handleLongTap","selectWord","touches","h","w","touchObj","setRange","switchToSelectionMode","cursorPos","getPixelPosition","anchorPos","offsetTop","offsetLeft","weightedDistance","diff1","diff2","oldScrollTop","getScrollTop","DefaultGutterHandler","MouseHandler","focusEditor","onMouseEvent","scrollBarV","scrollBarH","Boolean","gutterEl","$dragDelay","character","mousemove","$scrollSpeed","mouseMoveHandler","which","releaseMouse","$mouseMoved","onCaptureEnd","onOperationEnd","onCaptureInterval","$onCaptureMouseMove","endOperation","startOperation","cancelContextMenu","scrollSpeed","dragDelay","dragEnabled","focusTimeout","tooltipFollowsMouse","FoldHandler","getFoldAt","removeFold","expandFold","getUseWrapMode","foldWidgets","onFoldWidgetClick","getParentFoldRangeData","firstRange","addFold","keyUtil","KeyBinding","$editor","$data","$handlers","kb","removeKeyboardHandler","$defaultHandler","addKeyboardHandler","setKeyboardHandler","handleKeyboard","attach","detach","getKeyboardHandler","getStatusText","$callKeyboardHandlers","toExecute","success","args","passEvent","dir","hiLevel","lastArabic","hasUBAT_B","hasUBAT_S","impTab_LTR","impTab_RTL","ET","BN","UnicodeTBL00","UnicodeTBL20","_invertLevel","lev","levels","_array","lo","hi","tmp","_getCharClass","chars","ix","wType","nType","cType","c","rtlCandidate","_getCharacterType","uc","charCodeAt","L","R","EN","ON_R","AN","R_H","B","RLE","DOT","doBidiReorder","textCharTypes","isRtl","logicalFromVisual","bidiLevels","charTypes","impTab","prevState","newClass","newLevel","newState","condPos","_computeLevels","hasBidiCharacters","getVisualFromLogicalIdx","logIdx","rowMap","bidiUtil","bidiRE","BidiHandler","bidiMap","currentRow","charWidths","EOL","showInvisibles","isRtlDir","$isRtl","wrapIndent","EOF","contentWidth","fontMetrics","rtlLineOffset","wrapOffset","isMoveLeftOperation","seenBidi","getValue","isBidiRow","docRow","splitIndex","updateRowLine","updateBidiMap","onChange","delta","getDocumentRow","rowCache","$screenRowCache","$getRowCacheIndex","$docRowCache","getSplitIndex","currentIndex","prevIndex","endOfLine","$useWrapMode","splits","$wrapData","indent","substring","size","isFullWidth","getScreenTabSize","$main","substr","markAsDirty","updateCharacterWidths","$characterSize","bidiCharWidth","$measureCharWidth","setShowInvisibles","setEolChar","eolChar","setContentWidth","isRtlLine","setRtlDirection","getCursorPosition","getSelectionAnchor","$bidiHandler","removeInLine","getPosLeft","col","leftBoundary","logicalIdx","getOverwrite","visualIdx","getSelections","startCol","endCol","level","selections","selColMin","selColMax","isSelected","isSelectedPrev","visIdx","offsetToCol","posX","charWidth","Selection","getDocument","lead","createAnchor","$silent","$cursorChanged","$isEmpty","$keepDesiredColumnOnChange","$desiredColumn","$anchorChanged","getCursor","getPosition","setAnchor","getAnchor","getSelectionLead","isBackwards","$setSelection","MAX_VALUE","anchorRow","anchorColumn","cursorRow","cursorColumn","wasEmpty","wasMultiselect","$moveSelection","mover","moveCursorTo","moveTo","selectUp","moveCursorUp","selectDown","moveCursorDown","selectRight","moveCursorRight","selectLeft","moveCursorLeft","selectLineStart","moveCursorLineStart","selectLineEnd","moveCursorLineEnd","selectFileEnd","moveCursorFileEnd","selectFileStart","moveCursorFileStart","selectWordRight","moveCursorWordRight","selectWordLeft","moveCursorWordLeft","selectAWord","getAWordRange","excludeLastChar","foldLine","selectLine","moveCursorBy","wouldMoveIntoSoftTab","tabSize","isTabStop","getTabSize","getNavigateWithinSoftTabs","firstColumnPosition","screenToDocumentPosition","leadingSpace","getDisplayLine","$useEmacsStyleLineStart","lineEnd","getDocumentLastRowColumnPosition","textEnd","search","moveCursorLongWordRight","rightOfCursor","nonTokenRe","tokenRe","moveCursorLongWordLeft","getFoldStringAt","leftOfCursor","$shortWordEndIndex","whitespaceRe","moveCursorShortWordRight","moveCursorShortWordLeft","$selectLongWords","rows","offsetX","lineWidgets","widget","rowsAbove","rowCount","keepDesiredColumn","moveCursorToScreen","desiredColumn","r","getRangeOfMovements","func","toJSON","rangeCount","ranges","r1","fromJSON","rangeList","toSingleRange","addRange","MAX_TOKEN_COUNT","Tokenizer","rules","states","regExps","matchMappings","ruleRegExps","matchTotal","mapping","defaultToken","flag","splitterRurles","rule","caseInsensitive","unicode","regex","adjustedregex","matchcount","token","groupCount","tokenArray","onMatch","$arrayTokens","$applyToken","digit","removeCapturingGroups","splitRegex","createSplitterRegexp","$setMaxTokenCount","tokens","stack","inChClass","lastCapture","parenOpen","parenClose","square","getLineTokens","startState","currentState","matchAttempts","skipped","consumeLineEnd","merge","unshift","TextHighlightRules","$rules","addRules","prefix","nextState","getRules","embedRules","HighlightRules","escapeRules","append","$embeds","getEmbeds","pushState","popState","normalizeRules","processState","processed","toInsert","stateName","includeName","noEscape","keywordMap","createKeywordMapper","ignoreCase","splitChar","keywords","$keywordList","list","word","getKeywords","$keywords","Behaviour","$behaviours","addBehaviours","behaviours","inherit","getBehaviours","TokenIterator","initialRow","initialColumn","$session","$row","$rowTokens","getTokens","getTokenAt","$tokenIndex","stepBackward","stepForward","getCurrentToken","getCurrentTokenRow","getCurrentTokenColumn","rowTokens","tokenIndex","getCurrentTokenPosition","getCurrentTokenRange","SAFE_INSERT_IN_TOKENS","SAFE_INSERT_BEFORE_TOKENS","contextCache","defaultQuotes","initContext","multiSelect","autoInsertedBrackets","autoInsertedRow","autoInsertedLineEnd","maybeInsertedBrackets","maybeInsertedRow","maybeInsertedLineStart","maybeInsertedLineEnd","getWrapped","opening","closing","rowDiff","CstyleBehaviour","getWrapBehavioursEnabled","isSaneInsertion","braces","recordAutoInsert","recordMaybeInsert","$findOpeningBracket","isAutoInsertedClosing","popAutoInsertedClosing","isMaybeInsertedClosing","clearMaybeInsertedClosing","openBracePos","findMatchingBracket","next_indent","$getIndent","getTabString","quotes","$mode","$quotes","lineCommentStart","quote","leftChar","rightChar","rightToken","pair","stringBefore","stringAfter","wordRe","isWordBefore","isWordAfter","pairQuotesAfter","$pairQuotesAfter","charBefore","closeDocComment","$matchTokenType","iterator2","bracket","wordChars","code","Mode","$defaultBehaviour","getTokenizer","$tokenizer","$highlightRules","$highlightRuleConfig","blockComment","toggleCommentLines","ignoreBlankLines","shouldRemove","minIndent","Infinity","insertAtTabStop","regexpStart","getUseSoftTabs","uncomment","shouldInsertSpace","commentWithSpace","comment","insertInLine","testRemove","before","after","spaces","lineCommentEnd","regexpEnd","iter","fun","minEmptyLength","floor","toggleBlockComment","colDiff","initialRange","startRange","endRange","getNextLineIndent","tab","checkOutdent","input","autoOutdent","createWorker","createModeDelegates","delegations","scope","functionName","$delegator","method","language","transformAction","param","$behaviour","completionKeywords","ruleItr","aLength","$createKeywordList","getCompletions","score","meta","applyDelta","docLines","doNotValidate","Anchor","$onChange","$clipPositionToDocument","point","moveIfEqual","deltaIsInsert","deltaRowShift","deltaColShift","deltaStart","deltaEnd","$pointsInOrder","$getTransformedPoint","$insertRight","noClip","point1","point2","equalPointsInOrder","bColIsAfter","Document","textOrLines","insertMergedLines","setValue","getAllLines","getNewLineCharacter","$detectNewLine","$autoNewLine","$newLineMode","setNewLineMode","newLineMode","getNewLineMode","isNewLine","getLines","getLinesForRange","insertLines","insertFullLines","removeLines","removeFullLines","insertNewLine","$split","clonePos","$clipPosition","deleteFirstNewLine","deleteLastNewLine","deletedLines","removeNewLine","applyDeltas","deltas","revertDeltas","revertDelta","isInsert","$splitAndapplyLargeDelta","$safeApplyDelta","docLength","MAX","to","chunk","indexToPosition","newlineLength","positionToIndex","BackgroundTokenizer","tokenizer","running","currentLine","$worker","workerStart","endLine","startLine","processedLines","$tokenizeRow","fireUpdateEvent","setTokenizer","setDocument","first","scheduleStart","$updateOnChange","getState","cleanup","SearchHighlight","clazz","setRegexp","update","markerLayer","renderedMarkerRanges","MAX_RANGES","rangeToAddMarkerTo","rangeAsString","drawSingleLineMarker","UndoManager","$maxRev","$fromUndo","$undoDepth","reset","addSession","allowMerge","$lastDelta","$keepRedoStack","$redoStack","lastDeltas","undoStackLength","$undoStack","$rev","addSelection","rev","startNewGroup","markIgnored","ignore","getSelection","getRevision","getDeltas","getChangedRanges","getChangedLines","undo","dontSelect","deltaSet","swapped","swapGroups","rearrangeUndoStack","$redoStackBaseRev","undoSelectionRange","undoChanges","$syncRev","redo","diff","redoStack","deltaSets","moveDeltasByOne","rebaseRedoStack","redoSelectionRange","redoChanges","nextDelta","mark","canUndo","canRedo","bookmark","isAtBookmark","json","$prettyPrint","stringifyDelta","hasRedo","isClean","markClean","stringifyRange","swap","d1","d2","i1","i2","ds1","ds2","selectionBefore","selectionAfter","xform","c1","splitDelta","shiftPos","rowsBefore","otherLines","cloneDelta","xformed","FoldLine","foldData","folds","setFoldLine","shiftRow","sameRow","containsRow","walk","lastEnd","isNewRow","placeholder","getNextFoldTo","kind","addRemoveChars","log","foldBefore","newFoldLine","foldLineNext","idxToPosition","idx","lastFoldEndColumn","RangeList","$bias","pointIndex","excludeEdges","startIndex","addList","removed","substractPoint","containsPoint","rangeAtPoint","clipped","removeAll","lineDif","Fold","subFolds","subFold","collapseChildren","addSubFold","consumePoint","afterStart","firstConsumed","consumedFolds","restoreRange","restorePoint","Folding","side","getFoldsInRange","foldLines","$foldData","foundFolds","getFoldsInRangeList","getAllFolds","trim","lastFold","startFoldLine","getNextFoldLine","getFoldedRowCount","$addFoldLine","added","$clipRangeToDocument","startFold","endFold","removeFolds","$updateWrapData","$updateRowLengthCache","$modified","addFolds","$updating","cloneFolds","foldAll","expandFolds","unfold","expandInner","outermostFolds","isRowFolded","startFoldRow","getRowFoldEnd","getRowFoldStart","getFoldDisplayLine","textLine","lastColumn","$cloneFoldData","fd","toggleFold","tryToUnfold","bracketPos","getCommentFoldRange","depth","getFoldWidget","getFoldWidgetRange","foldToLevel","foldAllComments","$foldStyles","$foldStyle","setFoldStyle","$foldMode","$setFolding","foldMode","$updateFoldWidgets","$tokenizerUpdateFoldWidgets","updateFoldWidgets","tokenizerUpdateFoldWidgets","ignoreCurrent","fw","children","siblings","$toggleFoldWidget","toggleFoldWidget","toggleParent","BracketMatch","chr","charBeforeCursor","$findClosingBracket","getMatchingBracketRanges","bracketsRegExp","$brackets","typeRe","openBracket","valueIndex","closingBracket","valueLength","getMatchingTags","$findTagName","$findClosingTag","$findOpeningTag","found","backward","prevToken","currentTag","openTagStart","openTagName","foundOpenTagEnd","openTagEnd","closeTagStart","closeTagName","closeTagEnd","openTag","closeTag","stepCount","tmpToken","TextMode","EditSession","$breakpoints","$decorations","$frontMarkers","$backMarkers","$markerId","$undoSelect","$uid","bgTokenizer","onChangeFold","setMode","destroyed","resetCaches","$resetRowCache","cacheArray","low","mid","$rowLengthCache","removedFolds","$updateInternalDataOnChange","$undoManager","mergeUndoDeltas","$informUndoManager","setUndoManager","JSON","parse","undoManager","history","editSession","setAnnotations","setBreakpoints","breakpoints","setScrollLeft","setScrollTop","scrollTop","$scrollLeft","$scrollTop","$syncInformUndoManager","markUndoGroup","$defaultUndoManager","setUseSoftTabs","$useSoftTabs","$indentWithTabs","setTabSize","$tabSize","setNavigateWithinSoftTabs","navigateWithinSoftTabs","$navigateWithinSoftTabs","setOverwrite","overwrite","$overwrite","toggleOverwrite","addGutterDecoration","removeGutterDecoration","getBreakpoints","clearBreakpoints","setBreakpoint","clearBreakpoint","inFront","addDynamicMarker","markerId","getMarkers","highlight","$searchHighlight","highlightLines","getAnnotations","clearAnnotations","inToken","wordRange","setUseWorker","useWorker","getUseWorker","$useWorker","onReloadTokenizer","$onChangeMode","$modeId","$isPlaceholder","oldMode","$stopWorker","$startWorker","attachToSession","wrapMethod","$wrapMethod","foldingRules","terminate","getMode","isNaN","getScrollLeft","getScreenWidth","$computeWidth","getLineWidgetMaxWidth","screenWidth","lineWidgetsWidth","lineWidgetWidth","force","$wrapLimit","longestScreenLine","foldIndex","foldStart","$getStringScreenWidth","$getUndoSelection","setUndoSelect","enable","isUndo","fromRange","toPosition","toRange","collDiff","oldStart","newStart","indentRows","indentString","outdentRows","rowRange","deleteRange","$moveLines","$clipRowToDocument","moveLinesUp","moveLinesDown","duplicateLines","$clipColumnToRow","setUseWrapMode","useWrapMode","setWrapLimitRange","$wrapLimitRange","adjustWrapLimit","desiredLimit","$printMargin","limits","wrapLimit","$constrainWrapLimit","getWrapLimit","setWrapLimit","limit","getWrapLimitRange","foldLineBefore","wrapData","walkTokens","$getDisplayTokens","PLACEHOLDER_START","PLACEHOLDER_BODY","$computeWrapSplits","displayLength","lastSplit","lastDocSplit","isCode","$wrapAsCode","indentedSoftWrap","$indentedSoftWrap","maxIndent","addSplit","indentation","SPACE","TAB","TAB_SPACE","getWrapIndent","minSplit","PUNCTUATION","CHAR_EXT","CHAR","maxScreenColumn","screenColumn","getRowLength","getRowLineCount","getRowWrapIndent","getScreenLastRowColumn","documentToScreenColumn","getDocumentLastRowColumn","docColumn","getRowSplitData","screenToDocumentRow","screenToDocumentColumn","rowLength","doCache","maxRow","foldStartRow","wrapRow","screenRowOffset","getScreenLength","screenRows","$getWidgetScreenLength","$setFontMetrics","fm","$enableVarChar","getCharacterWidth","wrap","$wrap","firstLineNumber","useSoftTabs","foldStyle","Search","$matchIterator","sr","sc","er","ec","skipCurrent","findAll","needle","$assembleRegExp","$isMultiLine","prevRange","replacement","preserveCase","$disableFakeMultiline","caseSensitive","$supportsUnicodeFlag","wholeWord","wordBoundary","firstChar","needleArray","lastChar","addWordBoundary","$assembleMultilineRegExp","backwards","forEachInLine","MultiHashHandler","$singleCommand","commandKeyBinding","addCommands","addCommand","removeCommand","bindKey","_buildKeyHash","keepCommand","ckb","keyId","cmdGroup","keyPart","chain","binding","parseKeys","_addCommandToBinding","removeCommands","bindKeys","keyList","$keyChain","isDefault","HashHandler","CommandManager","byName","$checkCommandState","isAvailable","returnValue","toggleRecording","$inReplay","recording","macro","$addCommandToMacro","oldMacro","replay","trimMacro","mac","description","showSettingsMenu","showErrorMarker","scrollIntoView","centerSelection","gotoLine","prompt","$type","multiSelectAction","getAllRanges","findNext","findPrevious","aceCommandGroup","navigateFileStart","navigateUp","times","navigateFileEnd","navigateDown","navigateWordLeft","navigateLineStart","navigateLeft","navigateWordRight","navigateLineEnd","navigateRight","selectPageDown","scrollPageDown","gotoPageDown","selectPageUp","scrollPageUp","gotoPageUp","jumpToMatching","$copyWithEmptySelection","$handlePaste","duplicateSelection","sortLines","modifyNumber","copyLinesUp","copyLinesDown","removeToLineStart","removeToLineEnd","removeWordLeft","removeWordRight","blockOutdent","blockIndent","splitLine","transposeLetters","transposeSelections","autoIndent","openLink","firstLineEndCol","selectedCount","insertLine","curLine","newRanges","exitMultiSelectMode","LineWidgets","widgetManager","updateOnChange","renderWidgets","measureWidgets","_changedWidgets","$onChangeEditor","updateOnFold","_inDocument","removeLineWidget","$updateRows","noWidgets","$oldWidget","$registerLineWidget","addLineWidget","zIndex","coverGutter","pixelHeight","$fold","onWidgetChanged","w1","getWidgetsAtRow","updateFull","changedWidgets","fixedWidth","ceil","coverLine","gutterWidth","fullWidth","padding","scrollBar","GutterKeyboardHandler","gutterLayer","activeRowIndex","activeLane","annotationTooltip","$onGutterKeyDown","$blurGutter","isRowVisible","scrollToLine","$rowToRowIndex","$cursorCell","nearestFoldIndex","$findNearestFoldWidget","nearestAnnotationIndex","$findNearestAnnotation","$focusAnnotation","$focusFoldWidget","$handleGutterKeyboardInteraction","GutterKeyboardEvent","lane","$switchLane","$rowIndexToRow","rowFoldingWidget","$blurFoldWidget","cells","childNodes","$moveFoldWidgetDown","$moveAnnotationDown","$moveFoldWidgetUp","$moveAnnotationUp","$blurAnnotation","$isFoldWidgetVisible","isRowFullyVisible","isIconVisible","$getFoldWidget","$isAnnotationVisible","$getAnnotation","foldWidget","keyboardFocusClassName","desinationLane","annotationIndex","foldWidgetIndex","cell","gutterKeyboardHandler","getKey","getRow","isInAnnotationLane","isInFoldLane","defaultCommands","Editor","getContainerElement","getTextAreaContainer","textarea","keyBinding","$search","$historyTracker","$initOperationListeners","_$emitInputEvent","setSession","$opResetTimer","$lastSel","commandEvent","prevOp","previousCommand","scrollSelectionIntoView","animateScrolling","sel","$mergeUndoDeltas","prev","mergeableCommands","$mergeableCommands","shouldMerge","mergeNextCommand","sequenceStartTime","keyboardHandler","$keybindingId","oldSession","$onDocumentChange","$onTokenizerUpdate","$onChangeTabSize","$onChangeWrapLimit","$onChangeWrapMode","$onChangeFold","$onChangeFrontMarker","$onChangeBackMarker","$onChangeBreakpoint","$onChangeAnnotation","$onCursorChange","$onScrollTopChange","$onScrollLeftChange","$onSelectionChange","onDocumentChange","onChangeMode","onTokenizerUpdate","onChangeTabSize","onChangeWrapLimit","onChangeWrapMode","onChangeFrontMarker","onChangeBackMarker","onChangeBreakpoint","onChangeAnnotation","onCursorChange","onScrollTopChange","onScrollLeftChange","onSelectionChange","oldEditor","getSession","resize","onResize","getTheme","getFontSize","setFontSize","$highlightBrackets","$highlightPending","$bracketHighlight","markerIds","$getDirectionForHighlight","tagNamesRanges","getMatching","markerType","getHighlightIndentGuides","$textLayer","$highlightIndentGuide","$isFocused","showCursor","visualizeFocus","hideCursor","visualizeBlur","$cursorChange","updateCursor","$updateHighlightActiveLine","updateLines","scrollToY","scrollToX","$highlightActiveLine","$selectionStyle","$selectionColorConflict","$maxLines","$minLines","$highlightLineMarker","$selectionMarker","$highlightSelectedWord","$getSelectionHighLightRegexp","wordWithBoundary","updateFrontMarkers","updateBackMarkers","updateBreakpoints","updateText","getSelectedText","nl","copyLine","inVirtualSelectionMode","isFullLine","getBehavioursEnabled","lineState","shouldOutdent","$enableAutoIndent","lineIndent","selectedRange","currIndent","prevLineState","composition","applyComposition","forEachSelection","setScrollSpeed","getScrollSpeed","setDragDelay","setSelectionStyle","setHighlightActiveLine","shouldHighlight","getHighlightActiveLine","setHighlightGutterLine","getHighlightGutterLine","setHighlightSelectedWord","getHighlightSelectedWord","setAnimatedScroll","shouldAnimate","getAnimatedScroll","getShowInvisibles","setDisplayIndentGuides","getDisplayIndentGuides","setHighlightIndentGuides","setShowPrintMargin","showPrintMargin","getShowPrintMargin","setPrintMarginColumn","getPrintMarginColumn","setBehavioursEnabled","enabled","setWrapBehavioursEnabled","setShowFoldWidgets","getShowFoldWidgets","setFadeFoldWidgets","fade","getFadeFoldWidgets","new_range","setGhostText","removeGhostText","originalRange","$getSelectedRows","getNumberAt","_numberRx","amount","charRange","isFinite","nr","fp","decimals","nnr","toFixed","replaceRange","toggleWord","currWordStart","wordParts","curLength","itLength","that","reg","wordPairs","$toggleWordPairs","negate","firstCondition","res","findLinkAt","columnPosition","previousPosition","currentPosition","wordParts_1","wordParts_1_1","endPoint","moved","totalDiff","rangeIndex","subRows","compositionState","showComposition","setCompositionText","hideComposition","getFirstVisibleRow","getLastVisibleRow","getFirstFullyVisibleRow","getLastFullyVisibleRow","$getVisibleRowCount","getScrollBottomRow","getScrollTopRow","$moveByPage","scrollToRow","center","animate","alignCursor","getCursorPositionScreen","expand","tokenCount","matchType","bracketType","brackets","tagsRanges","lineNumber","navigateTo","replaced","$tryReplace","replaceAll","getLastSearchOptions","newRange","revealRange","setAutoScrollEditorIntoView","shouldScroll","$scrollAnchor","scrollAnchor","onChangeSelection","onBeforeRender","onAfterRender","searchBox","$pixelPos","$cursorStyle","cursorLayer","setSmoothBlinking","isBlinking","selectionStyle","highlightActiveLine","highlightSelectedWord","copyWithEmptySelection","behavioursEnabled","wrapBehavioursEnabled","enableAutoIndent","autoScrollEditorIntoView","showLineNumbers","setShowLineNumbers","$loop","CHANGE_GUTTER","$relativeLineNumbers","relativeNumberRenderer","relativeLineNumbers","$showLineNumbers","$updatePlaceholder","hasValue","$composition","placeholderNode","$placeholder","content","blurCommand","focusOnEnterKeyup","customScrollbar","hScrollBarAlwaysVisible","vScrollBarAlwaysVisible","highlightGutterLine","animatedScroll","printMarginColumn","printMargin","fadeFoldWidgets","showFoldWidgets","displayIndentGuides","highlightIndentGuides","showGutter","fontFamily","maxLines","minLines","scrollPastEnd","fixedWidthGutter","hasCssTransforms","maxPixelHeight","useResizeObserver","useSvgGutterIcons","showFoldedAnnotations","getText","lastLineNumber","$renderer","Lines","canvasHeight","cellCache","$offsetCoefficient","moveContainer","firstRowScreen","pageChanged","oldConfig","newConfig","computeLineTop","screenTop","screenPage","computeLineHeight","$cacheCell","fragment","insertAdjacentElement","createCell","initElement","Gutter","parentEl","$showFoldWidgets","$updateAnnotations","rowInfo","annoText","annoType","gutterOffset","oldLastRow","$updateCursorRow","onCreateCell","$renderCell","$updateGutterWidth","gutterRenderer","$firstLineNumber","lastLineText","$fixedWidth","$padding","$computePadding","$highlightGutterLine","$cursorRow","updateLineHighlight","scrollLines","$renderLines","textNode","annotationNode","annotationIconNode","decorations","rowText","foldClass","isClosedFold","foldAnnotationClass","annotationInFold","foldRange","getShowLineNumbers","paddingLeft","borderRightWidth","paddingRight","Marker","setPadding","setMarkers","markers","elt","css","$getTop","drawFullLineMarker","drawScreenLineMarker","drawTextMarker","drawMultiLineMarker","childElementCount","lastChild","stringBuilder","extraStyle","curr","lineRange","range1","drawBidiSingleLineMarker","radiusClass","extraLength","textTokens","Set","isTextToken","tokenType","has","Text","$updateEolChar","EOL_CHAR","EOL_CHAR_LF","EOL_CHAR_CRLF","margin","getLineHeight","$fontMetrics","measure","$pollSizeChanges","checkForSizeChanges","$pollSizeChangesTimer","$computeTabString","showSpaces","showTabs","showEOL","$highlightIndentGuides","tabStr","$tabStrings","span","TAB_CHAR","$indentGuideRe","spaceClass","spaceContent","SPACE_CHAR","tabClass","tabContent","lineElements","lineElementsIdx","heightChanged","lineElement","$renderLine","$renderLinesFragment","lineEl","$useLineGroups","$renderToken","valueFragment","simpleSpace","controlCharacter","cjkSpace","cjk","cloneNode","renderIndentGuide","cols","$highlightIndentGuideMarker","indentLevel","initialIndent","elementIndentLevel","currentIndent","$renderHighlightIndentGuide","$clearActiveIndentGuide","$setIndentGuideActive","$createLineElement","$renderWrappedLine","splitChars","$renderOverflowMessage","$renderSimpleLine","overflowEl","$getFoldLineTokens","lastLineEl","invisibleEl","EOF_CHAR","renderTokens","addTokens","Cursor","isVisible","blinkInterval","smoothBlinking","cursors","addCursor","$updateCursors","$updateOpacity","$startCssAnimation","animationDuration","$isAnimating","$stopCssAnimation","blinking","restartTimer","setBlinkInterval","removeCursor","intervalId","timeoutId","$isSmoothBlinking","blink","onScreen","isCursorInView","pixelPos","$selectionMarkers","cursorIndex","drawCursor","$setOverwrite","MAX_SCROLL_H","Scrollbar","classSuffix","setVisible","skipEvent","onScroll","coeff","VScrollBar","scrollHeight","$scrollbarWidth","$minWidth","setHeight","setScrollHeight","setInnerHeight","HScrollBar","setWidth","setInnerWidth","setScrollWidth","ScrollBar","ScrollBarV","ScrollBarH","VScrollWidth","HScrollHeight","eType","mousePageY","startTop","thumbTop","scrollTopFromThumbTop","thumbHeight","pageHeight","viewHeight","slideHeight","scrollWidth","mousePageX","startLeft","thumbLeft","scrollLeftFromThumbLeft","thumbWidth","pageWidth","viewWidth","slideWidth","RenderLoop","onRender","pending","changes","$recursionLimit","_flush","change","clear","CHAR_COUNT","USE_OBSERVER","ResizeObserver","FontMetrics","$setMeasureNodeStyles","$measureNode","$addObserver","isRoot","visibility","font","$measureSizes","fontWeight","boldSize","charSizes","allowBoldFonts","$observer","observe","setPolling","disconnect","$getZoom","zoom","$initTransformMeasureNodes","transformCoordinates","clientPos","elPos","solve","l1","l2","det","sub","mul","m2","ut","u","f","Decorator","canvas","pixelRatio","heightRatio","canvasWidth","minDecorationHeight","halfMinDecorationHeight","colors","dark","light","$updateDecorators","ctx","getContext","clearRect","priorities","compensateFold","compensateFoldRows","currentY","y1","y2","yCenter","fillStyle","fillRect","GutterLayer","MarkerLayer","TextLayer","CursorLayer","HScrollBarCustom","VScrollBarCustom","editorCss","VirtualRenderer","onGutterResize","$markerBack","textLayer","$markerFront","$horizScroll","$vScroll","$scrollAnimation","scrollMargin","updateCharacterSize","$size","scrollerHeight","scrollerWidth","$dirty","minHeight","v","$renderChanges","defaultView","CHANGE_FULL","$addResizeObserver","$allowBoldFonts","$updatePrintMargin","onChangeNewLineMode","$changedLines","CHANGE_LINES","CHANGE_TEXT","CHANGE_MARKER","updateFontSize","$updateSizeAsync","resizing","$updateCachedSize","$resizeTimer","$changes","$customScrollbar","$updateCustomScrollbar","$extraHeight","oldSize","CHANGE_SIZE","CHANGE_SCROLL","$showGutter","$computeLayerConfig","availableWidth","$showPrintMargin","$printMarginColumn","$animatedScroll","getShowGutter","setShowGutter","$printMarginEl","containerEl","posTop","posLeft","setScrollMargin","sm","setMargin","getHScrollBarAlwaysVisible","$hScrollBarAlwaysVisible","setHScrollBarAlwaysVisible","alwaysVisible","getVScrollBarAlwaysVisible","$vScrollBarAlwaysVisible","setVScrollBarAlwaysVisible","$updateScrollBarV","$scrollPastEnd","$updateScrollBarH","freeze","$frozen","unfreeze","CHANGE_H_SCROLL","st","$scrollDecorator","$updateLines","CHANGE_CURSOR","CHANGE_MARKER_FRONT","CHANGE_MARKER_BACK","$autosize","desiredHeight","$maxPixelHeight","$gutterWidth","hideScrollbars","longestLine","$getLongestLine","horizScroll","hScrollChanged","vScrollBefore","vScrollChanged","firstRowHeight","lineCount","charCount","$viewMargin","newLeft","newTop","topMargin","bottomMargin","$stopAnimation","currentTop","currentLeft","twoCharsWidth","alignment","$calcSteps","fromValue","toValue","x_min","STEPS","steps","initialScroll","oldSteps","$timer","endAnimation","scrollTo","canvasPos","$hasCssTransforms","$blockCursor","$useTextareaForIME","addToken","removeExtraToken","insertPosition","textLines","$ghostText","$ghostTextWidget","pixelPosition","ghostTextHeight","newToken","$themeId","$theme","setMouseCursor","attachToShadowRoot","$resizeObserver","contentRect","workerUrl","Worker","blob","Blob","blobBuilder","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","getBlob","$workerBlob","blobURL","URL","webkitURL","createObjectURL","WorkerClient","worker","$createWorkerFromOldConfig","$sendDeltaQueue","changeListener","onMessage","callbackId","callbacks","onmessage","topLevelNamespaces","classname","importScripts","nameToUrl","toUrl","normalizePath","$normalizePath","tlns","deltaQueue","onerror","$doc","cmd","emit","ex","attachToDocument","q","UIWorkerClient","main","emitSync","sender","messageBuffer","workerClient","processNext","setEmitSync","Main","PlaceHolder","others","mainClass","othersClass","$onUpdate","onUpdate","$others","undoStack","$undostack","$undoStackDepth","setup","other","showOtherMarkers","othersActive","hideOtherMarkers","updateAnchors","lengthDiff","inMainRange","distanceFromStart","newPos","otherPos","updateMarkers","updateMarker","undosRequired","isSamePoint","alt","ctrl","accel","selectionMode","isMultiSelect","mouseX","mouseY","screenAnchor","screenCursor","$enableJumpToDef","$blockSelectEnabled","addSelectionMarker","oldRange","removeSelectionMarker","tmpSel","rectSel","blockSelect","newCursor","removeSelectionMarkers","rectangularRangeBlock","updateSelectionMarkers","onSelectionInterval","selectMoreLines","selectMore","joinSelections","splitIntoLines","alignCursors","multiSelectCommands","getSelectionMarkers","$blockChangeEvents","$onAddRange","$onRemoveRange","mergeOverlappingRanges","lastRange","$initRangeList","toggleBlockSelection","includeEmptyLines","xBackwards","startOffsetX","endOffsetX","docEnd","yBackwards","MultiSelect","$multiselectOnSessionChange","$onMultiSelect","$onSingleSelect","onSessionChange","$checkMultiselectChange","altCursor","altDown","addAltCursorListeners","selectionMarkerCount","markerList","$onMultiSelectExec","inVirtualMode","keepOrder","$byLines","cmdResult","anim","buf","additive","skip","screenLead","toRemove","words","stopAtFirst","sameRowRanges","maxCol","minSpace","spaceOffsets","spaceOffset","fr","lr","guessRange","$reAlignText","forceLeft","startW","textW","endW","isLeftAligned","isRightAligned","alignLeft","enableMultiselect","enableBlockSelect","FoldMode","foldingStartMarker","foldingStopMarker","indentationBlock","startLevel","openingBracketBlock","closingBracketBlock","oldWidget","gutterAnno","comparator","binarySearch","matched","findAnnotations","arrow","onmousedown","Renderer","edit","_id","env","tagName","oldNode","createEditSession","is","singletonTags","blockTags","formatOptions","lineBreaksAfterCommasInCurlyBlock","beautify","nextToken","tabString","breakBefore","spaceBefore","spaceAfter","lastDepth","lastIndent","unindent","roundDepth","curlyDepth","curRow","rowsToAdd","indentNextLine","inTag","inCSS","inBlock","parents","caseBody","trimNext","trimLine","trimCode","trimRight","trimLeft","searchboxCss","SearchBox","showReplaceForm","spellcheck","title","setEditor","searchRange","$syncOptions","$initElements","sb","replaceBox","searchOption","replaceOption","regExpOption","caseSensitiveOption","wholeWordOption","searchInput","replaceInput","searchCounter","activeInput","$searchBarKb","setSearchRange","searchRangeMarker","checked","noMatch","updateCounter","MAX_COUNT","findPrev","replaceAndFindNext","active","$closeSearchBarKb","isReplace","supportType","supportFunction","supportConstant","supportConstantColor","supportConstantFonts","numRe","pseudoElements","pseudoClasses","CssHighlightRules","keywordMapper","strings","escapes","MatchingBraceOutdent","propertyMap","CssCompletions","completionsDefined","defineCompletions","inParens","getPropertyValueCompletions","getPropertyCompletions","skipSemicolon","caption","snippet","CssBehaviour","BaseFoldMode","commentRegex","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","forceMultiline","getCommentRegionBlock","getSectionRange","startIndent","subRange","CStyleFoldMode","$outdent","$completer","snippetFileId","DocCommentHighlightRules","getTagRule","getStartRule","getEndRule","GolangHighlightRules","stringEscapeRe","tokenizedLine","JsDocCommentHighlightRules","identifierRe","JavaScriptHighlightRules","escapedRe","comments","noES6","no_regex","jsx","JSX","tagRegex","jsxTag","jsxJsRule","jsxAttributes","reference","endState","results","JsonHighlightRules","JsxHighlightRules","buildinConstants","reserved","PythonHighlightRules","strPre","strRawPre","strFormatPre","strRawFormatPre","integer","intPart","pointFloat","floatNumber","stringEscape","PythonFoldMode","outdents","XmlHighlightRules","normalize","processing_instruction","doctype","int_subset","cdata","attr_reference","tag_whitespace","whitespace","attribute_value","embedTagRules","XmlBehaviour","rightSpace","tokenEndColumn","tokenRow","tokenColumn","voidElements","nextIndent","optionalEndTags","Tag","selfClosing","_getFirstTagInLine","_findEndTagInLine","getCommentFoldWidget","tags","XmlFoldMode","createRoot","hydrateRoot","hasElementType","Element","hasMap","Map","hasSet","hasArrayBuffer","ArrayBuffer","isView","equal","it","entries","flags","valueOf","$$typeof","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","amdD","getter","__esModule","definition","prop","toStringTag","nmd","paths","createContext","Icon","family","weight","rest","getCSSClasses","propTypes","isRequired","ItemTrigger","collapsed","toggleChange","useContext","iconType","trigger","onClick","AccordionItem","collapsedProp","ref","setCollapsed","useState","useMemo","expandToContent","contextValue","Provider","defaultProps","forwardRef","AccordionItemHeader","usearrowastrigger","getSize","componentSize","setComponentSize","current","handleResize","useCallback","useLayoutEffect","resizeObserver","savedHandler","useRef","useEffect","eventListener","Collapsible","contentContainer","collapseWrapper","refContainerSize","contentContainerStyle","setContentContainerStyle","onWindowResize","CSSTransition","onEnter","onExit","in","classNames","AccordionItemContent","Accordion","Item","Header","Content","Button","customButton","iconFamily","iconPosition","iconOnly","noStyle","getCssClasses","cssClasses","sizeClass","disabledClass","displayClass","themeClass","iconOnlyClass","noStyleClass","getButtonIcon","buttonType","cloneElement","getButtonType","ButtonGroup","CardHeader","CardBody","align","CardFooter","CardTitle","CardTitleGroup","CardSubTitle","CardSummary","CardTitleIcon","Card","Body","Footer","Title","TitleGroup","SubTitle","Summary","wait","immediate","callNow","Loader","withbackground","Message","onClose","noMargin","Chart","areaStyleColors","dataLoaded","hasData","series","zoomStart","zoomEnd","seriesConfig","noDataComponent","noDataComponentProp","zoomColors","tykChartInstance","setTykChartInstance","chartWrapperRef","lineBarChart","defaultOpts","fromJS","color","toolbox","orient","itemSize","showTitle","feature","dataZoom","dataBackground","lineStyle","areaStyle","handleStyle","textStyle","borderColor","fillerColor","legend","axisPointer","grid","containLabel","xAxis","boundaryGap","axisLine","axisTick","yAxis","axisLabel","animationEasing","seriesDefault","LinearGradient","smooth","symbolSize","pieChart","formatter","radius","avoidLabelOverlap","animationType","labelLine","normal","length2","geoChart","dispose","eventCallBack","debouncedMethod","debounce","getZr","prevInstance","prevOption","prevType","prevSeries","equals","selectedType","selectedOptions","selectedSeries","finalOpts","mergeDeep","toJS","entry","seriesData","buildChartOptions","dispatchAction","dataZoomSelectActive","seriesIndex","dataIndex","prevZoomStart","prevZoomEnd","startValue","endValue","chartHasData","getStyle","memo","savedCallback","ToastMessage","handleClose","itemIndex","ToastContainer","notify","updateNotifications","msgID","random","prevMessages","onMessageClosed","newMessages","fn","createNotification","render","bindNotify","danger","CopyToClipboard","txtRef","createRef","onKeyUp","ModalFooter","ModalBody","Modal","disableCloseCommands","opened","showBackdrop","restProps","modalClasses","backdropClasses","themeIcon","onKeyDown","Confirm","confirmBtnText","cancelBtnText","setOpen","setCallback","cancelCallback","setCancelCallback","callbackFunc","cancelCallbackFunc","beforeCallback","FixedWrapper","showShadow","fixedWrapperRef","attachShadow","scrollY","debouncedAttachShadow","InfiniteScroller","hasMore","initialLoad","loadMore","pageNumber","refChild","showLoader","setShowLoader","containerRef","refChildSize","shouldLoad","loadMoreData","prevPageNumber","scrollHandler","prevRefChildSize","PropTypes","oneOfType","arrayOf","bool","instanceOf","FloatingContainer","forceDisplay","displayAxis","preferredPosition","infiniteScrollerConfig","localRef","floatingContainerRef","contentWrapperRef","viewportOffset","schedulePositionUpdate","topSpace","bottomSpace","leftSpace","hasTopSpace","hasBottomSpace","hasLeftSpace","hasRightSpace","positionedVerticallyFitsInViewport","positionedHorizontallyFitsInViewport","getDisplayForVertical","getDisplayForHorizontal","getDisplayWhereItFits","determineDisplay","targetPosition","vpLeft","vpTop","leftPos","auto","matchElement","matchStart","matchEnd","topPos","maxWidth","getStylesForTop","getStylesForBottom","getStylesForLeft","getStylesForRight","adjustPosition","createPortal","InfoNote","ListItem","List","labelwidth","flexBasis","styleCopy","structuredClone","getListStyle","NavBar","pre","subtitle","withTabs","subtitleContent","NavigationItem","Navigation","PortalContext","PanelBody","noPadding","Consumer","portalContext","collapsable","PanelFooter","PanelHeader","Component","HeaderTag","onToggle","collapsibleIconPosition","Panel","onToggleCollapse","collapsedState","setCollapsedState","handleToggle","panelTheme","collapsbleIconPosition","toggleCollapse","Pill","RevealPanelService","setRefs","wrapper","panel","unbindEvents","bindEvents","ensureRefs","mouseDown","initialRect","initialEvent","isPrimaryMouseButtonDown","newY","finalHeight","notifyListeners","buttons","heightVal","reason","isHidden","deinit","RevealPanelHeaderLeft","RevealPanelHeaderRight","mergeClasses","RevealPanel","onHeightChange","parentSelector","contentStyle","contentClassName","gutterClassName","wrapperClassName","panelRef","gutterRef","wrapperRef","panelService","useImperativeHandle","headerLeft","headerRight","contents","child","TempRevealPanel","HeaderLeft","HeaderRight","TabsContext","TabContent","addTab","hideTab","updateTab","showTab","selectedPath","tabData","tabsId","tabExists","rendered","hideTabContent","tabs","tempTabData","prevTabData","shouldRender","TabContext","Tab","tabsContext","tabContext","setPath","tempPath","Tabs","onTabChange","setTabs","setSelectedPath","setRendered","initialPath","setInitialPath","setCurrentSelectedPath","tempRendered","collapsible","prevTabs","tempTabs","tabsState","tempTabsState","toggleTab","getTabCssClass","tabId","genTabs","currentTabs","updateTabsList","icon","closable","isOpened","additionalClickParents","isActive","setIsActive","tooltipRef","activeEvents","onMouseEnter","onMouseLeave","handleDocumentClick","TextEllipsis","Pagination","totalNrOfPages","selectedPage","setSelectedPage","pagesArray","nrOfPages","pagesArr","currentNr","pageNr","at","getPagesArr","goToPage","tableContext","HeaderCell","sortable","sortOrder","setSortOrder","sendMessage","allRowsSelected","columns","selectable","generateSelectable","allowSelectAll","isCheckbox","Checkbox","displayError","displayNote","note","Cell","styling","events","Row","SelectableCheckbox","Table","noDataMessage","loading","infiniteScrolling","onChangeMsg","setOnChangeMsg","itemsListRef","sortRows","order","selectAllRows","selectRow","setPagination","pagination","api","getTable","every","totalPages","num","nrItemsOnPage","perPage","Column","cSize","cOffset","nogutters","DropdownContext","DropdownItem","customdropdownitem","eventKey","dropdownItemCLick","dropdownContext","itemProps","onSelectItem","selectedItem","showCheckmark","Dropdown","isElemInRightView","dropdownWidth","isElemInBottomView","dropdownHeight","elHeight","super","dropdownRef","dropdownListRef","dropdownButtonRef","toggleDropdown","handleClickOutside","componentDidMount","getStyles","componentDidUpdate","prevProps","closeDropdown","componentWillUnmount","itemId","closeOnSelect","onSelect","selectedItemProps","dropdownEl","offsetPosition","customTop","customLeft","getWrapperCssClasses","btnGroup","btnGroupSize","btnTheme","hasCustomContent","listclassnames","getBtnTitle","btnTitle","stopButtonTextChange","appendTo","btnClassName","btnSize","customBtnTitle","showDropdownIcon","showTriggerButton","DropdownWrapperTag","DropdownTrigger","splitTrigger","toggle","onTriggerClick","DropdownListWrapper","dropdownValue","Dropdown2","setSelectedValueAsTitle","setIsOpen","handleOutsideClick","triggerElement","CodeEditor","disableValidation","finalSetOptions","getCodeEditorError","getLabelStyles","getNonLabelWidth","handleOnChange","handleOnBlur","htmlFor","editorProps","$blockScrolling","editorInstance","getStateSelectedValues","multiple","Combobox","closeList","openList","filterByName","itemValue","inputValue","stateSelectedValues","searchText","comboboxRef","valuesListRef","inputRef","textRef","focusInput","handleItemsNavigation","handleComboboxDropdownClick","handleListItemClick","handlePillRemoveClick","manageSelectedTags","setInputWidth","unBindEvents","getDerivedStateFromProps","nextProps","stringify","filteredValues","filterValues","cursorNext","previousState","methodName","tempState","removeSelectedValue","allowCustomValues","getSearchText","getSelectedIndex","getListItemCssClasses","getComboboxListCssClass","themes","iTheme","getInputError","elWidth","getComboboxDisplayData","reduce","prevValue","tempValue","selectedIndex","selectedValues","isInInitialValues","addSelectedValue","manageSelectedValues","tempSelectedValues","tempStateSelectedValues","ok","searchItem","renderInput","visbility","renderDropdown","autoFocus","CustomListComponent","Value","tagSeparators","addTagOnBlur","renderValue","valueOverflow","dummyElementRef","setInputValue","inputWidth","entryFieldOnChange","dummy","triggerAction","textValue","isPlaceholder","renderCustomValue","entryFieldOnKeyDown","listRef","searchValue","activeItem","renderListItem","showSearch","block","isNoneSelected","renderSelectAllOption","Combobox2","propValue","propValues","maxProp","matchItemFn","renderList","renderListProp","onBeforeChange","floatingContainerConfig","expandMode","displayDropdownTrigger","required","validateOnChange","rootRef","comboboxControlRef","getValueFromProp","setValues","normalizeValue","setSearchValue","setActiveItem","setIsOpened","valuesExpanded","setValuesExpanded","localValidationError","setLocalValidationError","getThemeClasses","getFilteredValues","openDropdown","updateSearchValue","newSearchValue","fv","isValidValue","newValues","localError","updateValue","addTag","listValueIndex","lv","finalValue","selectValue","valIndex","with","selectAllValues","moveUpActiveItem","visibleItems","activeIndex","moveDownActiveItem","executeTriggerAction","onTagMessage","removeTag","renderIcon","sv","nv","vals","valuesElement","updateScroll","mobserver","MutationObserver","robserver","childList","subtree","currentValuesClasses","onClickCapture","existingVal","DatePicker","onOpen","pickerInstance","setPickerInstance","dateRef","hasValueChanged","prevDate","currentDate","getTime","diffDates","date","onDateChange","dateValue","instance","defaultDate","setDate","openCalendar","inputStyle","addonStyle","getInputField","dateFormat","_typeof","requiredArgs","isDate","toDate","argument","argStr","NaN","toInteger","dirtyNumber","startOfUTCISOWeek","dirtyDate","day","getUTCDay","setUTCDate","getUTCDate","setUTCHours","getUTCISOWeekYear","year","getUTCFullYear","fourthOfJanuaryOfNextYear","setUTCFullYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","defaultOptions","getDefaultOptions","startOfUTCWeek","_ref","_ref2","_ref3","_options$weekStartsOn","_options$locale","_options$locale$optio","_defaultOptions$local","_defaultOptions$local2","weekStartsOn","locale","RangeError","getUTCWeekYear","_options$firstWeekCon","firstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","addLeadingZeros","targetLength","sign","signedYear","month","getUTCMonth","getUTCHours","getUTCMinutes","getUTCSeconds","numberOfDigits","milliseconds","getUTCMilliseconds","G","localize","era","ordinalNumber","unit","lightFormatters","Y","signedWeekYear","weekYear","Q","quarter","M","week","firstWeek","startOfUTCWeekYear","getUTCWeek","I","isoWeek","fourthOfJanuary","startOfUTCISOWeekYear","getUTCISOWeek","D","dayOfYear","timestamp","setUTCMonth","difference","getUTCDayOfYear","E","dayOfWeek","localDayOfWeek","isoDayOfWeek","dayPeriodEnumValue","dayPeriod","hours","H","K","S","X","_localize","timezoneOffset","_originalDate","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","z","originalDate","T","dirtyDelimiter","absOffset","minutes","delimiter","dateLongFormatter","pattern","formatLong","timeLongFormatter","longFormatters","P","dateTimeFormat","matchResult","datePattern","timePattern","dateTime","protectedDayOfYearTokens","protectedWeekYearTokens","throwProtectedError","format","formatDistanceLocale","lessThanXSeconds","one","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","defaultWidth","formats","full","long","medium","short","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","buildLocalizeFn","dirtyIndex","valuesArray","formattingValues","defaultFormattingWidth","_defaultWidth","_width","argumentCallback","buildMatchFn","matchPattern","matchPatterns","defaultMatchWidth","matchedString","parsePatterns","defaultParseWidth","object","findKey","valueCallback","formatDistance","tokenValue","addSuffix","comparison","formatRelative","_date","_baseDate","_options","rem100","narrow","abbreviated","wide","am","pm","midnight","noon","morning","afternoon","evening","night","parsePattern","parseResult","any","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyFormatStr","_ref4","_options$locale2","_options$locale2$opti","_ref5","_ref6","_ref7","_options$locale3","_options$locale3$opti","_defaultOptions$local3","_defaultOptions$local4","formatStr","defaultLocale","isValid","utcDate","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","getTimezoneOffsetInMilliseconds","dirtyAmount","addMilliseconds","subMilliseconds","formatterOptions","firstCharacter","longFormatter","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","isProtectedDayOfYearToken","EditableListForm","getMainFormValue","components","mainFormValue","submitButtonRef","submitForm","errors","mainError","addValueOnFieldChange","getMainFormButtonWidth","createRefs","propsComponents","stateComponents","validateValue","getFormCssClasses","noLabels","getButtonClassName","buttonStyle","displayType","getComponentsError","errorPersist","validatorsNames","validate","validatorName","validator","validationmessages","hasMainFormErrors","resetForm","showMainError","onSubmit","validationmessage","buttonName","ComponentName","EditableList","getItemListValue","getListItemCssClass","buttonWidth","handleFormSubmit","dropdownListItemRef","addValues","triggerOnChange","handleItemUpdate","editMode","handleChildrenOnChange","getListItemsCssClass","getFormInputKey","getListItemText","itemData","separator","setItemEditMode","closeListItems","isInList","removeListItem","removedItem","valueArr","tempItemValue","nextValue","genListItem","clonedComponents","genList","appendToElement","formButtonTitle","formButtonStyle","addButtonName","onAddRow","ListHeader","fields","field","FieldsList","onDelete","rowIndex","tempField","EditableList2","hideOnEmpty","internalErrors","setInternalErrors","updateRowValue","fieldIndex","componentValue","tempValueArr","tempErrors","tempFieldError","Components","internalError","setInternalError","onFieldChange","errorMsg","deleteRow","rowValues","colValue","flat","hasErrors","FileInput","accept","fileInputRef","files","Input","getAddon","initValue","stateValue","isfield","inputgroupaddonleft","inputgroupaddonright","getInputGroupAddon","getInputComponent","autoComplete","Input2","getInputElement","MultiselectItem","itemType","isInSearchValue","fieldsToSearchOn","onAddRemove","itemDisplayTemplate","maxSelections","nrSelectedItems","onGetItemDetails","details","detailsDisplayTemplate","getItemContent","getItemLoader","MultiselectPanel","inputPlaceholder","noItemsMessage","items","onCustomSearch","customSearch","panelType","serverLoad","itemsPageNumber","itemsNrPages","loadMoreItems","searchOnChange","itemChanged","cloneItems","clonedItem","renderListItems","diffObjects","Multiselect","entityNamePlural","getItemDetails","setOpened","prevOpened","itemsChange","allItems","valueClone","valueChange","providerValue","Radio","nospace","Select","setStateValue","selectedValue","getSelectError","getSelectComponent","SelectableList","checkboxalticon","itemTemplate","primaryKey","handleOnSelect","newSelectedItems","elemPosition","getListItemCssClassName","tvalue","Textarea","ToggleItem","getNotchCssClasses","itemRef","saveSelectedRef","onItemSelected","ToggleItemWrapper","Toggle","onDark","separated","selectedRef","setSelectedRef","notchRef","toggleRef","positionNotch","selectedWidth","FORM_DEBOUNCE","setConfig","getValueFromPath","acc","form","properties","DEFAULT_DEBOUNCE_TIME_MS","myValue","setMyValue","getOnChangeProps","hasIsFieldProp","executeDebounced","valueOrEvent","nodeName","onChangeProps","formError","touched","submitCount","status","componentProps","hasOwn","FieldCodeEditor","FieldCombobox","getComboboxError","FieldDropdown","FieldPagination","FieldCombobox2","FormDatePicker","getDatePickerError","FieldEditableList","getEditableListError","FieldFileInput","FieldInput","FieldMultiselect","getMultiselectError","FieldSelect","handleEvent","FieldSelectableList","FieldToggle","useInterval"],"sourceRoot":""} \ No newline at end of file diff --git a/package.json b/package.json index 6ea4076f..a6d64763 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@tyk-technologies/tyk-ui", - "version": "4.0.0", + "version": "4.1.0", "description": "Tyk UI - ui reusable components", "main": "src/index.js", "scripts": { diff --git a/src/common/css/fontawesome.css b/src/common/css/fontawesome.css deleted file mode 100644 index 4cb0a2bb..00000000 --- a/src/common/css/fontawesome.css +++ /dev/null @@ -1,4016 +0,0 @@ -/*! - * Font Awesome Free 5.5.0 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - */ -.fa, -.fas, -.far, -.fal, -.fab { - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - display: inline-block; - font-style: normal; - font-variant: normal; - text-rendering: auto; - line-height: 1; } - -.fa-lg { - font-size: 1.33333em; - line-height: 0.75em; - vertical-align: -.0667em; } - -.fa-xs { - font-size: .75em; } - -.fa-sm { - font-size: .875em; } - -.fa-1x { - font-size: 1em; } - -.fa-2x { - font-size: 2em; } - -.fa-3x { - font-size: 3em; } - -.fa-4x { - font-size: 4em; } - -.fa-5x { - font-size: 5em; } - -.fa-6x { - font-size: 6em; } - -.fa-7x { - font-size: 7em; } - -.fa-8x { - font-size: 8em; } - -.fa-9x { - font-size: 9em; } - -.fa-10x { - font-size: 10em; } - -.fa-fw { - text-align: center; - width: 1.25em; } - -.fa-ul { - list-style-type: none; - margin-left: 2.5em; - padding-left: 0; } - .fa-ul > li { - position: relative; } - -.fa-li { - left: -2em; - position: absolute; - text-align: center; - width: 2em; - line-height: inherit; } - -.fa-border { - border: solid 0.08em #eee; - border-radius: .1em; - padding: .2em .25em .15em; } - -.fa-pull-left { - float: left; } - -.fa-pull-right { - float: right; } - -.fa.fa-pull-left, -.fas.fa-pull-left, -.far.fa-pull-left, -.fal.fa-pull-left, -.fab.fa-pull-left { - margin-right: .3em; } - -.fa.fa-pull-right, -.fas.fa-pull-right, -.far.fa-pull-right, -.fal.fa-pull-right, -.fab.fa-pull-right { - margin-left: .3em; } - -.fa-spin { - -webkit-animation: fa-spin 2s infinite linear; - animation: fa-spin 2s infinite linear; } - -.fa-pulse { - -webkit-animation: fa-spin 1s infinite steps(8); - animation: fa-spin 1s infinite steps(8); } - -@-webkit-keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); } - 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); } } - -@keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); } - 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); } } - -.fa-rotate-90 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; - -webkit-transform: rotate(90deg); - transform: rotate(90deg); } - -.fa-rotate-180 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; - -webkit-transform: rotate(180deg); - transform: rotate(180deg); } - -.fa-rotate-270 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; - -webkit-transform: rotate(270deg); - transform: rotate(270deg); } - -.fa-flip-horizontal { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; - -webkit-transform: scale(-1, 1); - transform: scale(-1, 1); } - -.fa-flip-vertical { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; - -webkit-transform: scale(1, -1); - transform: scale(1, -1); } - -.fa-flip-horizontal.fa-flip-vertical { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; - -webkit-transform: scale(-1, -1); - transform: scale(-1, -1); } - -:root .fa-rotate-90, -:root .fa-rotate-180, -:root .fa-rotate-270, -:root .fa-flip-horizontal, -:root .fa-flip-vertical { - -webkit-filter: none; - filter: none; } - -.fa-stack { - display: inline-block; - height: 2em; - line-height: 2em; - position: relative; - vertical-align: middle; - width: 2.5em; } - -.fa-stack-1x, -.fa-stack-2x { - left: 0; - position: absolute; - text-align: center; - width: 100%; } - -.fa-stack-1x { - line-height: inherit; } - -.fa-stack-2x { - font-size: 2em; } - -.fa-inverse { - color: #fff; } - -/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen -readers do not read off random characters that represent icons */ -.fa-500px:before { - content: "\f26e"; } - -.fa-accessible-icon:before { - content: "\f368"; } - -.fa-accusoft:before { - content: "\f369"; } - -.fa-acquisitions-incorporated:before { - content: "\f6af"; } - -.fa-ad:before { - content: "\f641"; } - -.fa-address-book:before { - content: "\f2b9"; } - -.fa-address-card:before { - content: "\f2bb"; } - -.fa-adjust:before { - content: "\f042"; } - -.fa-adn:before { - content: "\f170"; } - -.fa-adversal:before { - content: "\f36a"; } - -.fa-affiliatetheme:before { - content: "\f36b"; } - -.fa-air-freshener:before { - content: "\f5d0"; } - -.fa-algolia:before { - content: "\f36c"; } - -.fa-align-center:before { - content: "\f037"; } - -.fa-align-justify:before { - content: "\f039"; } - -.fa-align-left:before { - content: "\f036"; } - -.fa-align-right:before { - content: "\f038"; } - -.fa-alipay:before { - content: "\f642"; } - -.fa-allergies:before { - content: "\f461"; } - -.fa-amazon:before { - content: "\f270"; } - -.fa-amazon-pay:before { - content: "\f42c"; } - -.fa-ambulance:before { - content: "\f0f9"; } - -.fa-american-sign-language-interpreting:before { - content: "\f2a3"; } - -.fa-amilia:before { - content: "\f36d"; } - -.fa-anchor:before { - content: "\f13d"; } - -.fa-android:before { - content: "\f17b"; } - -.fa-angellist:before { - content: "\f209"; } - -.fa-angle-double-down:before { - content: "\f103"; } - -.fa-angle-double-left:before { - content: "\f100"; } - -.fa-angle-double-right:before { - content: "\f101"; } - -.fa-angle-double-up:before { - content: "\f102"; } - -.fa-angle-down:before { - content: "\f107"; } - -.fa-angle-left:before { - content: "\f104"; } - -.fa-angle-right:before { - content: "\f105"; } - -.fa-angle-up:before { - content: "\f106"; } - -.fa-angry:before { - content: "\f556"; } - -.fa-angrycreative:before { - content: "\f36e"; } - -.fa-angular:before { - content: "\f420"; } - -.fa-ankh:before { - content: "\f644"; } - -.fa-app-store:before { - content: "\f36f"; } - -.fa-app-store-ios:before { - content: "\f370"; } - -.fa-apper:before { - content: "\f371"; } - -.fa-apple:before { - content: "\f179"; } - -.fa-apple-alt:before { - content: "\f5d1"; } - -.fa-apple-pay:before { - content: "\f415"; } - -.fa-archive:before { - content: "\f187"; } - -.fa-archway:before { - content: "\f557"; } - -.fa-arrow-alt-circle-down:before { - content: "\f358"; } - -.fa-arrow-alt-circle-left:before { - content: "\f359"; } - -.fa-arrow-alt-circle-right:before { - content: "\f35a"; } - -.fa-arrow-alt-circle-up:before { - content: "\f35b"; } - -.fa-arrow-circle-down:before { - content: "\f0ab"; } - -.fa-arrow-circle-left:before { - content: "\f0a8"; } - -.fa-arrow-circle-right:before { - content: "\f0a9"; } - -.fa-arrow-circle-up:before { - content: "\f0aa"; } - -.fa-arrow-down:before { - content: "\f063"; } - -.fa-arrow-left:before { - content: "\f060"; } - -.fa-arrow-right:before { - content: "\f061"; } - -.fa-arrow-up:before { - content: "\f062"; } - -.fa-arrows-alt:before { - content: "\f0b2"; } - -.fa-arrows-alt-h:before { - content: "\f337"; } - -.fa-arrows-alt-v:before { - content: "\f338"; } - -.fa-assistive-listening-systems:before { - content: "\f2a2"; } - -.fa-asterisk:before { - content: "\f069"; } - -.fa-asymmetrik:before { - content: "\f372"; } - -.fa-at:before { - content: "\f1fa"; } - -.fa-atlas:before { - content: "\f558"; } - -.fa-atom:before { - content: "\f5d2"; } - -.fa-audible:before { - content: "\f373"; } - -.fa-audio-description:before { - content: "\f29e"; } - -.fa-autoprefixer:before { - content: "\f41c"; } - -.fa-avianex:before { - content: "\f374"; } - -.fa-aviato:before { - content: "\f421"; } - -.fa-award:before { - content: "\f559"; } - -.fa-aws:before { - content: "\f375"; } - -.fa-backspace:before { - content: "\f55a"; } - -.fa-backward:before { - content: "\f04a"; } - -.fa-balance-scale:before { - content: "\f24e"; } - -.fa-ban:before { - content: "\f05e"; } - -.fa-band-aid:before { - content: "\f462"; } - -.fa-bandcamp:before { - content: "\f2d5"; } - -.fa-barcode:before { - content: "\f02a"; } - -.fa-bars:before { - content: "\f0c9"; } - -.fa-baseball-ball:before { - content: "\f433"; } - -.fa-basketball-ball:before { - content: "\f434"; } - -.fa-bath:before { - content: "\f2cd"; } - -.fa-battery-empty:before { - content: "\f244"; } - -.fa-battery-full:before { - content: "\f240"; } - -.fa-battery-half:before { - content: "\f242"; } - -.fa-battery-quarter:before { - content: "\f243"; } - -.fa-battery-three-quarters:before { - content: "\f241"; } - -.fa-bed:before { - content: "\f236"; } - -.fa-beer:before { - content: "\f0fc"; } - -.fa-behance:before { - content: "\f1b4"; } - -.fa-behance-square:before { - content: "\f1b5"; } - -.fa-bell:before { - content: "\f0f3"; } - -.fa-bell-slash:before { - content: "\f1f6"; } - -.fa-bezier-curve:before { - content: "\f55b"; } - -.fa-bible:before { - content: "\f647"; } - -.fa-bicycle:before { - content: "\f206"; } - -.fa-bimobject:before { - content: "\f378"; } - -.fa-binoculars:before { - content: "\f1e5"; } - -.fa-birthday-cake:before { - content: "\f1fd"; } - -.fa-bitbucket:before { - content: "\f171"; } - -.fa-bitcoin:before { - content: "\f379"; } - -.fa-bity:before { - content: "\f37a"; } - -.fa-black-tie:before { - content: "\f27e"; } - -.fa-blackberry:before { - content: "\f37b"; } - -.fa-blender:before { - content: "\f517"; } - -.fa-blender-phone:before { - content: "\f6b6"; } - -.fa-blind:before { - content: "\f29d"; } - -.fa-blogger:before { - content: "\f37c"; } - -.fa-blogger-b:before { - content: "\f37d"; } - -.fa-bluetooth:before { - content: "\f293"; } - -.fa-bluetooth-b:before { - content: "\f294"; } - -.fa-bold:before { - content: "\f032"; } - -.fa-bolt:before { - content: "\f0e7"; } - -.fa-bomb:before { - content: "\f1e2"; } - -.fa-bone:before { - content: "\f5d7"; } - -.fa-bong:before { - content: "\f55c"; } - -.fa-book:before { - content: "\f02d"; } - -.fa-book-dead:before { - content: "\f6b7"; } - -.fa-book-open:before { - content: "\f518"; } - -.fa-book-reader:before { - content: "\f5da"; } - -.fa-bookmark:before { - content: "\f02e"; } - -.fa-bowling-ball:before { - content: "\f436"; } - -.fa-box:before { - content: "\f466"; } - -.fa-box-open:before { - content: "\f49e"; } - -.fa-boxes:before { - content: "\f468"; } - -.fa-braille:before { - content: "\f2a1"; } - -.fa-brain:before { - content: "\f5dc"; } - -.fa-briefcase:before { - content: "\f0b1"; } - -.fa-briefcase-medical:before { - content: "\f469"; } - -.fa-broadcast-tower:before { - content: "\f519"; } - -.fa-broom:before { - content: "\f51a"; } - -.fa-brush:before { - content: "\f55d"; } - -.fa-btc:before { - content: "\f15a"; } - -.fa-bug:before { - content: "\f188"; } - -.fa-building:before { - content: "\f1ad"; } - -.fa-bullhorn:before { - content: "\f0a1"; } - -.fa-bullseye:before { - content: "\f140"; } - -.fa-burn:before { - content: "\f46a"; } - -.fa-buromobelexperte:before { - content: "\f37f"; } - -.fa-bus:before { - content: "\f207"; } - -.fa-bus-alt:before { - content: "\f55e"; } - -.fa-business-time:before { - content: "\f64a"; } - -.fa-buysellads:before { - content: "\f20d"; } - -.fa-calculator:before { - content: "\f1ec"; } - -.fa-calendar:before { - content: "\f133"; } - -.fa-calendar-alt:before { - content: "\f073"; } - -.fa-calendar-check:before { - content: "\f274"; } - -.fa-calendar-minus:before { - content: "\f272"; } - -.fa-calendar-plus:before { - content: "\f271"; } - -.fa-calendar-times:before { - content: "\f273"; } - -.fa-camera:before { - content: "\f030"; } - -.fa-camera-retro:before { - content: "\f083"; } - -.fa-campground:before { - content: "\f6bb"; } - -.fa-cannabis:before { - content: "\f55f"; } - -.fa-capsules:before { - content: "\f46b"; } - -.fa-car:before { - content: "\f1b9"; } - -.fa-car-alt:before { - content: "\f5de"; } - -.fa-car-battery:before { - content: "\f5df"; } - -.fa-car-crash:before { - content: "\f5e1"; } - -.fa-car-side:before { - content: "\f5e4"; } - -.fa-caret-down:before { - content: "\f0d7"; } - -.fa-caret-left:before { - content: "\f0d9"; } - -.fa-caret-right:before { - content: "\f0da"; } - -.fa-caret-square-down:before { - content: "\f150"; } - -.fa-caret-square-left:before { - content: "\f191"; } - -.fa-caret-square-right:before { - content: "\f152"; } - -.fa-caret-square-up:before { - content: "\f151"; } - -.fa-caret-up:before { - content: "\f0d8"; } - -.fa-cart-arrow-down:before { - content: "\f218"; } - -.fa-cart-plus:before { - content: "\f217"; } - -.fa-cat:before { - content: "\f6be"; } - -.fa-cc-amazon-pay:before { - content: "\f42d"; } - -.fa-cc-amex:before { - content: "\f1f3"; } - -.fa-cc-apple-pay:before { - content: "\f416"; } - -.fa-cc-diners-club:before { - content: "\f24c"; } - -.fa-cc-discover:before { - content: "\f1f2"; } - -.fa-cc-jcb:before { - content: "\f24b"; } - -.fa-cc-mastercard:before { - content: "\f1f1"; } - -.fa-cc-paypal:before { - content: "\f1f4"; } - -.fa-cc-stripe:before { - content: "\f1f5"; } - -.fa-cc-visa:before { - content: "\f1f0"; } - -.fa-centercode:before { - content: "\f380"; } - -.fa-certificate:before { - content: "\f0a3"; } - -.fa-chair:before { - content: "\f6c0"; } - -.fa-chalkboard:before { - content: "\f51b"; } - -.fa-chalkboard-teacher:before { - content: "\f51c"; } - -.fa-charging-station:before { - content: "\f5e7"; } - -.fa-chart-area:before { - content: "\f1fe"; } - -.fa-chart-bar:before { - content: "\f080"; } - -.fa-chart-line:before { - content: "\f201"; } - -.fa-chart-pie:before { - content: "\f200"; } - -.fa-check:before { - content: "\f00c"; } - -.fa-check-circle:before { - content: "\f058"; } - -.fa-check-double:before { - content: "\f560"; } - -.fa-check-square:before { - content: "\f14a"; } - -.fa-chess:before { - content: "\f439"; } - -.fa-chess-bishop:before { - content: "\f43a"; } - -.fa-chess-board:before { - content: "\f43c"; } - -.fa-chess-king:before { - content: "\f43f"; } - -.fa-chess-knight:before { - content: "\f441"; } - -.fa-chess-pawn:before { - content: "\f443"; } - -.fa-chess-queen:before { - content: "\f445"; } - -.fa-chess-rook:before { - content: "\f447"; } - -.fa-chevron-circle-down:before { - content: "\f13a"; } - -.fa-chevron-circle-left:before { - content: "\f137"; } - -.fa-chevron-circle-right:before { - content: "\f138"; } - -.fa-chevron-circle-up:before { - content: "\f139"; } - -.fa-chevron-down:before { - content: "\f078"; } - -.fa-chevron-left:before { - content: "\f053"; } - -.fa-chevron-right:before { - content: "\f054"; } - -.fa-chevron-up:before { - content: "\f077"; } - -.fa-child:before { - content: "\f1ae"; } - -.fa-chrome:before { - content: "\f268"; } - -.fa-church:before { - content: "\f51d"; } - -.fa-circle:before { - content: "\f111"; } - -.fa-circle-notch:before { - content: "\f1ce"; } - -.fa-city:before { - content: "\f64f"; } - -.fa-clipboard:before { - content: "\f328"; } - -.fa-clipboard-check:before { - content: "\f46c"; } - -.fa-clipboard-list:before { - content: "\f46d"; } - -.fa-clock:before { - content: "\f017"; } - -.fa-clone:before { - content: "\f24d"; } - -.fa-closed-captioning:before { - content: "\f20a"; } - -.fa-cloud:before { - content: "\f0c2"; } - -.fa-cloud-download-alt:before { - content: "\f381"; } - -.fa-cloud-meatball:before { - content: "\f73b"; } - -.fa-cloud-moon:before { - content: "\f6c3"; } - -.fa-cloud-moon-rain:before { - content: "\f73c"; } - -.fa-cloud-rain:before { - content: "\f73d"; } - -.fa-cloud-showers-heavy:before { - content: "\f740"; } - -.fa-cloud-sun:before { - content: "\f6c4"; } - -.fa-cloud-sun-rain:before { - content: "\f743"; } - -.fa-cloud-upload-alt:before { - content: "\f382"; } - -.fa-cloudscale:before { - content: "\f383"; } - -.fa-cloudsmith:before { - content: "\f384"; } - -.fa-cloudversify:before { - content: "\f385"; } - -.fa-cocktail:before { - content: "\f561"; } - -.fa-code:before { - content: "\f121"; } - -.fa-code-branch:before { - content: "\f126"; } - -.fa-codepen:before { - content: "\f1cb"; } - -.fa-codiepie:before { - content: "\f284"; } - -.fa-coffee:before { - content: "\f0f4"; } - -.fa-cog:before { - content: "\f013"; } - -.fa-cogs:before { - content: "\f085"; } - -.fa-coins:before { - content: "\f51e"; } - -.fa-columns:before { - content: "\f0db"; } - -.fa-comment:before { - content: "\f075"; } - -.fa-comment-alt:before { - content: "\f27a"; } - -.fa-comment-dollar:before { - content: "\f651"; } - -.fa-comment-dots:before { - content: "\f4ad"; } - -.fa-comment-slash:before { - content: "\f4b3"; } - -.fa-comments:before { - content: "\f086"; } - -.fa-comments-dollar:before { - content: "\f653"; } - -.fa-compact-disc:before { - content: "\f51f"; } - -.fa-compass:before { - content: "\f14e"; } - -.fa-compress:before { - content: "\f066"; } - -.fa-compress-arrows-alt:before { - content: "\f78c"; } - -.fa-concierge-bell:before { - content: "\f562"; } - -.fa-connectdevelop:before { - content: "\f20e"; } - -.fa-contao:before { - content: "\f26d"; } - -.fa-cookie:before { - content: "\f563"; } - -.fa-cookie-bite:before { - content: "\f564"; } - -.fa-copy:before { - content: "\f0c5"; } - -.fa-copyright:before { - content: "\f1f9"; } - -.fa-couch:before { - content: "\f4b8"; } - -.fa-cpanel:before { - content: "\f388"; } - -.fa-creative-commons:before { - content: "\f25e"; } - -.fa-creative-commons-by:before { - content: "\f4e7"; } - -.fa-creative-commons-nc:before { - content: "\f4e8"; } - -.fa-creative-commons-nc-eu:before { - content: "\f4e9"; } - -.fa-creative-commons-nc-jp:before { - content: "\f4ea"; } - -.fa-creative-commons-nd:before { - content: "\f4eb"; } - -.fa-creative-commons-pd:before { - content: "\f4ec"; } - -.fa-creative-commons-pd-alt:before { - content: "\f4ed"; } - -.fa-creative-commons-remix:before { - content: "\f4ee"; } - -.fa-creative-commons-sa:before { - content: "\f4ef"; } - -.fa-creative-commons-sampling:before { - content: "\f4f0"; } - -.fa-creative-commons-sampling-plus:before { - content: "\f4f1"; } - -.fa-creative-commons-share:before { - content: "\f4f2"; } - -.fa-creative-commons-zero:before { - content: "\f4f3"; } - -.fa-credit-card:before { - content: "\f09d"; } - -.fa-critical-role:before { - content: "\f6c9"; } - -.fa-crop:before { - content: "\f125"; } - -.fa-crop-alt:before { - content: "\f565"; } - -.fa-cross:before { - content: "\f654"; } - -.fa-crosshairs:before { - content: "\f05b"; } - -.fa-crow:before { - content: "\f520"; } - -.fa-crown:before { - content: "\f521"; } - -.fa-css3:before { - content: "\f13c"; } - -.fa-css3-alt:before { - content: "\f38b"; } - -.fa-cube:before { - content: "\f1b2"; } - -.fa-cubes:before { - content: "\f1b3"; } - -.fa-cut:before { - content: "\f0c4"; } - -.fa-cuttlefish:before { - content: "\f38c"; } - -.fa-d-and-d:before { - content: "\f38d"; } - -.fa-d-and-d-beyond:before { - content: "\f6ca"; } - -.fa-dashcube:before { - content: "\f210"; } - -.fa-database:before { - content: "\f1c0"; } - -.fa-deaf:before { - content: "\f2a4"; } - -.fa-delicious:before { - content: "\f1a5"; } - -.fa-democrat:before { - content: "\f747"; } - -.fa-deploydog:before { - content: "\f38e"; } - -.fa-deskpro:before { - content: "\f38f"; } - -.fa-desktop:before { - content: "\f108"; } - -.fa-dev:before { - content: "\f6cc"; } - -.fa-deviantart:before { - content: "\f1bd"; } - -.fa-dharmachakra:before { - content: "\f655"; } - -.fa-diagnoses:before { - content: "\f470"; } - -.fa-dice:before { - content: "\f522"; } - -.fa-dice-d20:before { - content: "\f6cf"; } - -.fa-dice-d6:before { - content: "\f6d1"; } - -.fa-dice-five:before { - content: "\f523"; } - -.fa-dice-four:before { - content: "\f524"; } - -.fa-dice-one:before { - content: "\f525"; } - -.fa-dice-six:before { - content: "\f526"; } - -.fa-dice-three:before { - content: "\f527"; } - -.fa-dice-two:before { - content: "\f528"; } - -.fa-digg:before { - content: "\f1a6"; } - -.fa-digital-ocean:before { - content: "\f391"; } - -.fa-digital-tachograph:before { - content: "\f566"; } - -.fa-directions:before { - content: "\f5eb"; } - -.fa-discord:before { - content: "\f392"; } - -.fa-discourse:before { - content: "\f393"; } - -.fa-divide:before { - content: "\f529"; } - -.fa-dizzy:before { - content: "\f567"; } - -.fa-dna:before { - content: "\f471"; } - -.fa-dochub:before { - content: "\f394"; } - -.fa-docker:before { - content: "\f395"; } - -.fa-dog:before { - content: "\f6d3"; } - -.fa-dollar-sign:before { - content: "\f155"; } - -.fa-dolly:before { - content: "\f472"; } - -.fa-dolly-flatbed:before { - content: "\f474"; } - -.fa-donate:before { - content: "\f4b9"; } - -.fa-door-closed:before { - content: "\f52a"; } - -.fa-door-open:before { - content: "\f52b"; } - -.fa-dot-circle:before { - content: "\f192"; } - -.fa-dove:before { - content: "\f4ba"; } - -.fa-download:before { - content: "\f019"; } - -.fa-draft2digital:before { - content: "\f396"; } - -.fa-drafting-compass:before { - content: "\f568"; } - -.fa-dragon:before { - content: "\f6d5"; } - -.fa-draw-polygon:before { - content: "\f5ee"; } - -.fa-dribbble:before { - content: "\f17d"; } - -.fa-dribbble-square:before { - content: "\f397"; } - -.fa-dropbox:before { - content: "\f16b"; } - -.fa-drum:before { - content: "\f569"; } - -.fa-drum-steelpan:before { - content: "\f56a"; } - -.fa-drumstick-bite:before { - content: "\f6d7"; } - -.fa-drupal:before { - content: "\f1a9"; } - -.fa-dumbbell:before { - content: "\f44b"; } - -.fa-dungeon:before { - content: "\f6d9"; } - -.fa-dyalog:before { - content: "\f399"; } - -.fa-earlybirds:before { - content: "\f39a"; } - -.fa-ebay:before { - content: "\f4f4"; } - -.fa-edge:before { - content: "\f282"; } - -.fa-edit:before { - content: "\f044"; } - -.fa-eject:before { - content: "\f052"; } - -.fa-elementor:before { - content: "\f430"; } - -.fa-ellipsis-h:before { - content: "\f141"; } - -.fa-ellipsis-v:before { - content: "\f142"; } - -.fa-ello:before { - content: "\f5f1"; } - -.fa-ember:before { - content: "\f423"; } - -.fa-empire:before { - content: "\f1d1"; } - -.fa-envelope:before { - content: "\f0e0"; } - -.fa-envelope-open:before { - content: "\f2b6"; } - -.fa-envelope-open-text:before { - content: "\f658"; } - -.fa-envelope-square:before { - content: "\f199"; } - -.fa-envira:before { - content: "\f299"; } - -.fa-equals:before { - content: "\f52c"; } - -.fa-eraser:before { - content: "\f12d"; } - -.fa-erlang:before { - content: "\f39d"; } - -.fa-ethereum:before { - content: "\f42e"; } - -.fa-etsy:before { - content: "\f2d7"; } - -.fa-euro-sign:before { - content: "\f153"; } - -.fa-exchange-alt:before { - content: "\f362"; } - -.fa-exclamation:before { - content: "\f12a"; } - -.fa-exclamation-circle:before { - content: "\f06a"; } - -.fa-exclamation-triangle:before { - content: "\f071"; } - -.fa-expand:before { - content: "\f065"; } - -.fa-expand-arrows-alt:before { - content: "\f31e"; } - -.fa-expeditedssl:before { - content: "\f23e"; } - -.fa-external-link-alt:before { - content: "\f35d"; } - -.fa-external-link-square-alt:before { - content: "\f360"; } - -.fa-eye:before { - content: "\f06e"; } - -.fa-eye-dropper:before { - content: "\f1fb"; } - -.fa-eye-slash:before { - content: "\f070"; } - -.fa-facebook:before { - content: "\f09a"; } - -.fa-facebook-f:before { - content: "\f39e"; } - -.fa-facebook-messenger:before { - content: "\f39f"; } - -.fa-facebook-square:before { - content: "\f082"; } - -.fa-fantasy-flight-games:before { - content: "\f6dc"; } - -.fa-fast-backward:before { - content: "\f049"; } - -.fa-fast-forward:before { - content: "\f050"; } - -.fa-fax:before { - content: "\f1ac"; } - -.fa-feather:before { - content: "\f52d"; } - -.fa-feather-alt:before { - content: "\f56b"; } - -.fa-female:before { - content: "\f182"; } - -.fa-fighter-jet:before { - content: "\f0fb"; } - -.fa-file:before { - content: "\f15b"; } - -.fa-file-alt:before { - content: "\f15c"; } - -.fa-file-archive:before { - content: "\f1c6"; } - -.fa-file-audio:before { - content: "\f1c7"; } - -.fa-file-code:before { - content: "\f1c9"; } - -.fa-file-contract:before { - content: "\f56c"; } - -.fa-file-csv:before { - content: "\f6dd"; } - -.fa-file-download:before { - content: "\f56d"; } - -.fa-file-excel:before { - content: "\f1c3"; } - -.fa-file-export:before { - content: "\f56e"; } - -.fa-file-image:before { - content: "\f1c5"; } - -.fa-file-import:before { - content: "\f56f"; } - -.fa-file-invoice:before { - content: "\f570"; } - -.fa-file-invoice-dollar:before { - content: "\f571"; } - -.fa-file-medical:before { - content: "\f477"; } - -.fa-file-medical-alt:before { - content: "\f478"; } - -.fa-file-pdf:before { - content: "\f1c1"; } - -.fa-file-powerpoint:before { - content: "\f1c4"; } - -.fa-file-prescription:before { - content: "\f572"; } - -.fa-file-signature:before { - content: "\f573"; } - -.fa-file-upload:before { - content: "\f574"; } - -.fa-file-video:before { - content: "\f1c8"; } - -.fa-file-word:before { - content: "\f1c2"; } - -.fa-fill:before { - content: "\f575"; } - -.fa-fill-drip:before { - content: "\f576"; } - -.fa-film:before { - content: "\f008"; } - -.fa-filter:before { - content: "\f0b0"; } - -.fa-fingerprint:before { - content: "\f577"; } - -.fa-fire:before { - content: "\f06d"; } - -.fa-fire-extinguisher:before { - content: "\f134"; } - -.fa-firefox:before { - content: "\f269"; } - -.fa-first-aid:before { - content: "\f479"; } - -.fa-first-order:before { - content: "\f2b0"; } - -.fa-first-order-alt:before { - content: "\f50a"; } - -.fa-firstdraft:before { - content: "\f3a1"; } - -.fa-fish:before { - content: "\f578"; } - -.fa-fist-raised:before { - content: "\f6de"; } - -.fa-flag:before { - content: "\f024"; } - -.fa-flag-checkered:before { - content: "\f11e"; } - -.fa-flag-usa:before { - content: "\f74d"; } - -.fa-flask:before { - content: "\f0c3"; } - -.fa-flickr:before { - content: "\f16e"; } - -.fa-flipboard:before { - content: "\f44d"; } - -.fa-flushed:before { - content: "\f579"; } - -.fa-fly:before { - content: "\f417"; } - -.fa-folder:before { - content: "\f07b"; } - -.fa-folder-minus:before { - content: "\f65d"; } - -.fa-folder-open:before { - content: "\f07c"; } - -.fa-folder-plus:before { - content: "\f65e"; } - -.fa-font:before { - content: "\f031"; } - -.fa-font-awesome:before { - content: "\f2b4"; } - -.fa-font-awesome-alt:before { - content: "\f35c"; } - -.fa-font-awesome-flag:before { - content: "\f425"; } - -.fa-font-awesome-logo-full:before { - content: "\f4e6"; } - -.fa-fonticons:before { - content: "\f280"; } - -.fa-fonticons-fi:before { - content: "\f3a2"; } - -.fa-football-ball:before { - content: "\f44e"; } - -.fa-fort-awesome:before { - content: "\f286"; } - -.fa-fort-awesome-alt:before { - content: "\f3a3"; } - -.fa-forumbee:before { - content: "\f211"; } - -.fa-forward:before { - content: "\f04e"; } - -.fa-foursquare:before { - content: "\f180"; } - -.fa-free-code-camp:before { - content: "\f2c5"; } - -.fa-freebsd:before { - content: "\f3a4"; } - -.fa-frog:before { - content: "\f52e"; } - -.fa-frown:before { - content: "\f119"; } - -.fa-frown-open:before { - content: "\f57a"; } - -.fa-fulcrum:before { - content: "\f50b"; } - -.fa-funnel-dollar:before { - content: "\f662"; } - -.fa-futbol:before { - content: "\f1e3"; } - -.fa-galactic-republic:before { - content: "\f50c"; } - -.fa-galactic-senate:before { - content: "\f50d"; } - -.fa-gamepad:before { - content: "\f11b"; } - -.fa-gas-pump:before { - content: "\f52f"; } - -.fa-gavel:before { - content: "\f0e3"; } - -.fa-gem:before { - content: "\f3a5"; } - -.fa-genderless:before { - content: "\f22d"; } - -.fa-get-pocket:before { - content: "\f265"; } - -.fa-gg:before { - content: "\f260"; } - -.fa-gg-circle:before { - content: "\f261"; } - -.fa-ghost:before { - content: "\f6e2"; } - -.fa-gift:before { - content: "\f06b"; } - -.fa-git:before { - content: "\f1d3"; } - -.fa-git-square:before { - content: "\f1d2"; } - -.fa-github:before { - content: "\f09b"; } - -.fa-github-alt:before { - content: "\f113"; } - -.fa-github-square:before { - content: "\f092"; } - -.fa-gitkraken:before { - content: "\f3a6"; } - -.fa-gitlab:before { - content: "\f296"; } - -.fa-gitter:before { - content: "\f426"; } - -.fa-glass-martini:before { - content: "\f000"; } - -.fa-glass-martini-alt:before { - content: "\f57b"; } - -.fa-glasses:before { - content: "\f530"; } - -.fa-glide:before { - content: "\f2a5"; } - -.fa-glide-g:before { - content: "\f2a6"; } - -.fa-globe:before { - content: "\f0ac"; } - -.fa-globe-africa:before { - content: "\f57c"; } - -.fa-globe-americas:before { - content: "\f57d"; } - -.fa-globe-asia:before { - content: "\f57e"; } - -.fa-gofore:before { - content: "\f3a7"; } - -.fa-golf-ball:before { - content: "\f450"; } - -.fa-goodreads:before { - content: "\f3a8"; } - -.fa-goodreads-g:before { - content: "\f3a9"; } - -.fa-google:before { - content: "\f1a0"; } - -.fa-google-drive:before { - content: "\f3aa"; } - -.fa-google-play:before { - content: "\f3ab"; } - -.fa-google-plus:before { - content: "\f2b3"; } - -.fa-google-plus-g:before { - content: "\f0d5"; } - -.fa-google-plus-square:before { - content: "\f0d4"; } - -.fa-google-wallet:before { - content: "\f1ee"; } - -.fa-gopuram:before { - content: "\f664"; } - -.fa-graduation-cap:before { - content: "\f19d"; } - -.fa-gratipay:before { - content: "\f184"; } - -.fa-grav:before { - content: "\f2d6"; } - -.fa-greater-than:before { - content: "\f531"; } - -.fa-greater-than-equal:before { - content: "\f532"; } - -.fa-grimace:before { - content: "\f57f"; } - -.fa-grin:before { - content: "\f580"; } - -.fa-grin-alt:before { - content: "\f581"; } - -.fa-grin-beam:before { - content: "\f582"; } - -.fa-grin-beam-sweat:before { - content: "\f583"; } - -.fa-grin-hearts:before { - content: "\f584"; } - -.fa-grin-squint:before { - content: "\f585"; } - -.fa-grin-squint-tears:before { - content: "\f586"; } - -.fa-grin-stars:before { - content: "\f587"; } - -.fa-grin-tears:before { - content: "\f588"; } - -.fa-grin-tongue:before { - content: "\f589"; } - -.fa-grin-tongue-squint:before { - content: "\f58a"; } - -.fa-grin-tongue-wink:before { - content: "\f58b"; } - -.fa-grin-wink:before { - content: "\f58c"; } - -.fa-grip-horizontal:before { - content: "\f58d"; } - -.fa-grip-vertical:before { - content: "\f58e"; } - -.fa-gripfire:before { - content: "\f3ac"; } - -.fa-grunt:before { - content: "\f3ad"; } - -.fa-gulp:before { - content: "\f3ae"; } - -.fa-h-square:before { - content: "\f0fd"; } - -.fa-hacker-news:before { - content: "\f1d4"; } - -.fa-hacker-news-square:before { - content: "\f3af"; } - -.fa-hackerrank:before { - content: "\f5f7"; } - -.fa-hammer:before { - content: "\f6e3"; } - -.fa-hamsa:before { - content: "\f665"; } - -.fa-hand-holding:before { - content: "\f4bd"; } - -.fa-hand-holding-heart:before { - content: "\f4be"; } - -.fa-hand-holding-usd:before { - content: "\f4c0"; } - -.fa-hand-lizard:before { - content: "\f258"; } - -.fa-hand-paper:before { - content: "\f256"; } - -.fa-hand-peace:before { - content: "\f25b"; } - -.fa-hand-point-down:before { - content: "\f0a7"; } - -.fa-hand-point-left:before { - content: "\f0a5"; } - -.fa-hand-point-right:before { - content: "\f0a4"; } - -.fa-hand-point-up:before { - content: "\f0a6"; } - -.fa-hand-pointer:before { - content: "\f25a"; } - -.fa-hand-rock:before { - content: "\f255"; } - -.fa-hand-scissors:before { - content: "\f257"; } - -.fa-hand-spock:before { - content: "\f259"; } - -.fa-hands:before { - content: "\f4c2"; } - -.fa-hands-helping:before { - content: "\f4c4"; } - -.fa-handshake:before { - content: "\f2b5"; } - -.fa-hanukiah:before { - content: "\f6e6"; } - -.fa-hashtag:before { - content: "\f292"; } - -.fa-hat-wizard:before { - content: "\f6e8"; } - -.fa-haykal:before { - content: "\f666"; } - -.fa-hdd:before { - content: "\f0a0"; } - -.fa-heading:before { - content: "\f1dc"; } - -.fa-headphones:before { - content: "\f025"; } - -.fa-headphones-alt:before { - content: "\f58f"; } - -.fa-headset:before { - content: "\f590"; } - -.fa-heart:before { - content: "\f004"; } - -.fa-heartbeat:before { - content: "\f21e"; } - -.fa-helicopter:before { - content: "\f533"; } - -.fa-highlighter:before { - content: "\f591"; } - -.fa-hiking:before { - content: "\f6ec"; } - -.fa-hippo:before { - content: "\f6ed"; } - -.fa-hips:before { - content: "\f452"; } - -.fa-hire-a-helper:before { - content: "\f3b0"; } - -.fa-history:before { - content: "\f1da"; } - -.fa-hockey-puck:before { - content: "\f453"; } - -.fa-home:before { - content: "\f015"; } - -.fa-hooli:before { - content: "\f427"; } - -.fa-hornbill:before { - content: "\f592"; } - -.fa-horse:before { - content: "\f6f0"; } - -.fa-hospital:before { - content: "\f0f8"; } - -.fa-hospital-alt:before { - content: "\f47d"; } - -.fa-hospital-symbol:before { - content: "\f47e"; } - -.fa-hot-tub:before { - content: "\f593"; } - -.fa-hotel:before { - content: "\f594"; } - -.fa-hotjar:before { - content: "\f3b1"; } - -.fa-hourglass:before { - content: "\f254"; } - -.fa-hourglass-end:before { - content: "\f253"; } - -.fa-hourglass-half:before { - content: "\f252"; } - -.fa-hourglass-start:before { - content: "\f251"; } - -.fa-house-damage:before { - content: "\f6f1"; } - -.fa-houzz:before { - content: "\f27c"; } - -.fa-hryvnia:before { - content: "\f6f2"; } - -.fa-html5:before { - content: "\f13b"; } - -.fa-hubspot:before { - content: "\f3b2"; } - -.fa-i-cursor:before { - content: "\f246"; } - -.fa-id-badge:before { - content: "\f2c1"; } - -.fa-id-card:before { - content: "\f2c2"; } - -.fa-id-card-alt:before { - content: "\f47f"; } - -.fa-image:before { - content: "\f03e"; } - -.fa-images:before { - content: "\f302"; } - -.fa-imdb:before { - content: "\f2d8"; } - -.fa-inbox:before { - content: "\f01c"; } - -.fa-indent:before { - content: "\f03c"; } - -.fa-industry:before { - content: "\f275"; } - -.fa-infinity:before { - content: "\f534"; } - -.fa-info:before { - content: "\f129"; } - -.fa-info-circle:before { - content: "\f05a"; } - -.fa-instagram:before { - content: "\f16d"; } - -.fa-internet-explorer:before { - content: "\f26b"; } - -.fa-ioxhost:before { - content: "\f208"; } - -.fa-italic:before { - content: "\f033"; } - -.fa-itunes:before { - content: "\f3b4"; } - -.fa-itunes-note:before { - content: "\f3b5"; } - -.fa-java:before { - content: "\f4e4"; } - -.fa-jedi:before { - content: "\f669"; } - -.fa-jedi-order:before { - content: "\f50e"; } - -.fa-jenkins:before { - content: "\f3b6"; } - -.fa-joget:before { - content: "\f3b7"; } - -.fa-joint:before { - content: "\f595"; } - -.fa-joomla:before { - content: "\f1aa"; } - -.fa-journal-whills:before { - content: "\f66a"; } - -.fa-js:before { - content: "\f3b8"; } - -.fa-js-square:before { - content: "\f3b9"; } - -.fa-jsfiddle:before { - content: "\f1cc"; } - -.fa-kaaba:before { - content: "\f66b"; } - -.fa-kaggle:before { - content: "\f5fa"; } - -.fa-key:before { - content: "\f084"; } - -.fa-keybase:before { - content: "\f4f5"; } - -.fa-keyboard:before { - content: "\f11c"; } - -.fa-keycdn:before { - content: "\f3ba"; } - -.fa-khanda:before { - content: "\f66d"; } - -.fa-kickstarter:before { - content: "\f3bb"; } - -.fa-kickstarter-k:before { - content: "\f3bc"; } - -.fa-kiss:before { - content: "\f596"; } - -.fa-kiss-beam:before { - content: "\f597"; } - -.fa-kiss-wink-heart:before { - content: "\f598"; } - -.fa-kiwi-bird:before { - content: "\f535"; } - -.fa-korvue:before { - content: "\f42f"; } - -.fa-landmark:before { - content: "\f66f"; } - -.fa-language:before { - content: "\f1ab"; } - -.fa-laptop:before { - content: "\f109"; } - -.fa-laptop-code:before { - content: "\f5fc"; } - -.fa-laravel:before { - content: "\f3bd"; } - -.fa-lastfm:before { - content: "\f202"; } - -.fa-lastfm-square:before { - content: "\f203"; } - -.fa-laugh:before { - content: "\f599"; } - -.fa-laugh-beam:before { - content: "\f59a"; } - -.fa-laugh-squint:before { - content: "\f59b"; } - -.fa-laugh-wink:before { - content: "\f59c"; } - -.fa-layer-group:before { - content: "\f5fd"; } - -.fa-leaf:before { - content: "\f06c"; } - -.fa-leanpub:before { - content: "\f212"; } - -.fa-lemon:before { - content: "\f094"; } - -.fa-less:before { - content: "\f41d"; } - -.fa-less-than:before { - content: "\f536"; } - -.fa-less-than-equal:before { - content: "\f537"; } - -.fa-level-down-alt:before { - content: "\f3be"; } - -.fa-level-up-alt:before { - content: "\f3bf"; } - -.fa-life-ring:before { - content: "\f1cd"; } - -.fa-lightbulb:before { - content: "\f0eb"; } - -.fa-line:before { - content: "\f3c0"; } - -.fa-link:before { - content: "\f0c1"; } - -.fa-linkedin:before { - content: "\f08c"; } - -.fa-linkedin-in:before { - content: "\f0e1"; } - -.fa-linode:before { - content: "\f2b8"; } - -.fa-linux:before { - content: "\f17c"; } - -.fa-lira-sign:before { - content: "\f195"; } - -.fa-list:before { - content: "\f03a"; } - -.fa-list-alt:before { - content: "\f022"; } - -.fa-list-ol:before { - content: "\f0cb"; } - -.fa-list-ul:before { - content: "\f0ca"; } - -.fa-location-arrow:before { - content: "\f124"; } - -.fa-lock:before { - content: "\f023"; } - -.fa-lock-open:before { - content: "\f3c1"; } - -.fa-long-arrow-alt-down:before { - content: "\f309"; } - -.fa-long-arrow-alt-left:before { - content: "\f30a"; } - -.fa-long-arrow-alt-right:before { - content: "\f30b"; } - -.fa-long-arrow-alt-up:before { - content: "\f30c"; } - -.fa-low-vision:before { - content: "\f2a8"; } - -.fa-luggage-cart:before { - content: "\f59d"; } - -.fa-lyft:before { - content: "\f3c3"; } - -.fa-magento:before { - content: "\f3c4"; } - -.fa-magic:before { - content: "\f0d0"; } - -.fa-magnet:before { - content: "\f076"; } - -.fa-mail-bulk:before { - content: "\f674"; } - -.fa-mailchimp:before { - content: "\f59e"; } - -.fa-male:before { - content: "\f183"; } - -.fa-mandalorian:before { - content: "\f50f"; } - -.fa-map:before { - content: "\f279"; } - -.fa-map-marked:before { - content: "\f59f"; } - -.fa-map-marked-alt:before { - content: "\f5a0"; } - -.fa-map-marker:before { - content: "\f041"; } - -.fa-map-marker-alt:before { - content: "\f3c5"; } - -.fa-map-pin:before { - content: "\f276"; } - -.fa-map-signs:before { - content: "\f277"; } - -.fa-markdown:before { - content: "\f60f"; } - -.fa-marker:before { - content: "\f5a1"; } - -.fa-mars:before { - content: "\f222"; } - -.fa-mars-double:before { - content: "\f227"; } - -.fa-mars-stroke:before { - content: "\f229"; } - -.fa-mars-stroke-h:before { - content: "\f22b"; } - -.fa-mars-stroke-v:before { - content: "\f22a"; } - -.fa-mask:before { - content: "\f6fa"; } - -.fa-mastodon:before { - content: "\f4f6"; } - -.fa-maxcdn:before { - content: "\f136"; } - -.fa-medal:before { - content: "\f5a2"; } - -.fa-medapps:before { - content: "\f3c6"; } - -.fa-medium:before { - content: "\f23a"; } - -.fa-medium-m:before { - content: "\f3c7"; } - -.fa-medkit:before { - content: "\f0fa"; } - -.fa-medrt:before { - content: "\f3c8"; } - -.fa-meetup:before { - content: "\f2e0"; } - -.fa-megaport:before { - content: "\f5a3"; } - -.fa-meh:before { - content: "\f11a"; } - -.fa-meh-blank:before { - content: "\f5a4"; } - -.fa-meh-rolling-eyes:before { - content: "\f5a5"; } - -.fa-memory:before { - content: "\f538"; } - -.fa-menorah:before { - content: "\f676"; } - -.fa-mercury:before { - content: "\f223"; } - -.fa-meteor:before { - content: "\f753"; } - -.fa-microchip:before { - content: "\f2db"; } - -.fa-microphone:before { - content: "\f130"; } - -.fa-microphone-alt:before { - content: "\f3c9"; } - -.fa-microphone-alt-slash:before { - content: "\f539"; } - -.fa-microphone-slash:before { - content: "\f131"; } - -.fa-microscope:before { - content: "\f610"; } - -.fa-microsoft:before { - content: "\f3ca"; } - -.fa-minus:before { - content: "\f068"; } - -.fa-minus-circle:before { - content: "\f056"; } - -.fa-minus-square:before { - content: "\f146"; } - -.fa-mix:before { - content: "\f3cb"; } - -.fa-mixcloud:before { - content: "\f289"; } - -.fa-mizuni:before { - content: "\f3cc"; } - -.fa-mobile:before { - content: "\f10b"; } - -.fa-mobile-alt:before { - content: "\f3cd"; } - -.fa-modx:before { - content: "\f285"; } - -.fa-monero:before { - content: "\f3d0"; } - -.fa-money-bill:before { - content: "\f0d6"; } - -.fa-money-bill-alt:before { - content: "\f3d1"; } - -.fa-money-bill-wave:before { - content: "\f53a"; } - -.fa-money-bill-wave-alt:before { - content: "\f53b"; } - -.fa-money-check:before { - content: "\f53c"; } - -.fa-money-check-alt:before { - content: "\f53d"; } - -.fa-monument:before { - content: "\f5a6"; } - -.fa-moon:before { - content: "\f186"; } - -.fa-mortar-pestle:before { - content: "\f5a7"; } - -.fa-mosque:before { - content: "\f678"; } - -.fa-motorcycle:before { - content: "\f21c"; } - -.fa-mountain:before { - content: "\f6fc"; } - -.fa-mouse-pointer:before { - content: "\f245"; } - -.fa-music:before { - content: "\f001"; } - -.fa-napster:before { - content: "\f3d2"; } - -.fa-neos:before { - content: "\f612"; } - -.fa-network-wired:before { - content: "\f6ff"; } - -.fa-neuter:before { - content: "\f22c"; } - -.fa-newspaper:before { - content: "\f1ea"; } - -.fa-nimblr:before { - content: "\f5a8"; } - -.fa-nintendo-switch:before { - content: "\f418"; } - -.fa-node:before { - content: "\f419"; } - -.fa-node-js:before { - content: "\f3d3"; } - -.fa-not-equal:before { - content: "\f53e"; } - -.fa-notes-medical:before { - content: "\f481"; } - -.fa-npm:before { - content: "\f3d4"; } - -.fa-ns8:before { - content: "\f3d5"; } - -.fa-nutritionix:before { - content: "\f3d6"; } - -.fa-object-group:before { - content: "\f247"; } - -.fa-object-ungroup:before { - content: "\f248"; } - -.fa-odnoklassniki:before { - content: "\f263"; } - -.fa-odnoklassniki-square:before { - content: "\f264"; } - -.fa-oil-can:before { - content: "\f613"; } - -.fa-old-republic:before { - content: "\f510"; } - -.fa-om:before { - content: "\f679"; } - -.fa-opencart:before { - content: "\f23d"; } - -.fa-openid:before { - content: "\f19b"; } - -.fa-opera:before { - content: "\f26a"; } - -.fa-optin-monster:before { - content: "\f23c"; } - -.fa-osi:before { - content: "\f41a"; } - -.fa-otter:before { - content: "\f700"; } - -.fa-outdent:before { - content: "\f03b"; } - -.fa-page4:before { - content: "\f3d7"; } - -.fa-pagelines:before { - content: "\f18c"; } - -.fa-paint-brush:before { - content: "\f1fc"; } - -.fa-paint-roller:before { - content: "\f5aa"; } - -.fa-palette:before { - content: "\f53f"; } - -.fa-palfed:before { - content: "\f3d8"; } - -.fa-pallet:before { - content: "\f482"; } - -.fa-paper-plane:before { - content: "\f1d8"; } - -.fa-paperclip:before { - content: "\f0c6"; } - -.fa-parachute-box:before { - content: "\f4cd"; } - -.fa-paragraph:before { - content: "\f1dd"; } - -.fa-parking:before { - content: "\f540"; } - -.fa-passport:before { - content: "\f5ab"; } - -.fa-pastafarianism:before { - content: "\f67b"; } - -.fa-paste:before { - content: "\f0ea"; } - -.fa-patreon:before { - content: "\f3d9"; } - -.fa-pause:before { - content: "\f04c"; } - -.fa-pause-circle:before { - content: "\f28b"; } - -.fa-paw:before { - content: "\f1b0"; } - -.fa-paypal:before { - content: "\f1ed"; } - -.fa-peace:before { - content: "\f67c"; } - -.fa-pen:before { - content: "\f304"; } - -.fa-pen-alt:before { - content: "\f305"; } - -.fa-pen-fancy:before { - content: "\f5ac"; } - -.fa-pen-nib:before { - content: "\f5ad"; } - -.fa-pen-square:before { - content: "\f14b"; } - -.fa-pencil-alt:before { - content: "\f303"; } - -.fa-pencil-ruler:before { - content: "\f5ae"; } - -.fa-penny-arcade:before { - content: "\f704"; } - -.fa-people-carry:before { - content: "\f4ce"; } - -.fa-percent:before { - content: "\f295"; } - -.fa-percentage:before { - content: "\f541"; } - -.fa-periscope:before { - content: "\f3da"; } - -.fa-person-booth:before { - content: "\f756"; } - -.fa-phabricator:before { - content: "\f3db"; } - -.fa-phoenix-framework:before { - content: "\f3dc"; } - -.fa-phoenix-squadron:before { - content: "\f511"; } - -.fa-phone:before { - content: "\f095"; } - -.fa-phone-slash:before { - content: "\f3dd"; } - -.fa-phone-square:before { - content: "\f098"; } - -.fa-phone-volume:before { - content: "\f2a0"; } - -.fa-php:before { - content: "\f457"; } - -.fa-pied-piper:before { - content: "\f2ae"; } - -.fa-pied-piper-alt:before { - content: "\f1a8"; } - -.fa-pied-piper-hat:before { - content: "\f4e5"; } - -.fa-pied-piper-pp:before { - content: "\f1a7"; } - -.fa-piggy-bank:before { - content: "\f4d3"; } - -.fa-pills:before { - content: "\f484"; } - -.fa-pinterest:before { - content: "\f0d2"; } - -.fa-pinterest-p:before { - content: "\f231"; } - -.fa-pinterest-square:before { - content: "\f0d3"; } - -.fa-place-of-worship:before { - content: "\f67f"; } - -.fa-plane:before { - content: "\f072"; } - -.fa-plane-arrival:before { - content: "\f5af"; } - -.fa-plane-departure:before { - content: "\f5b0"; } - -.fa-play:before { - content: "\f04b"; } - -.fa-play-circle:before { - content: "\f144"; } - -.fa-playstation:before { - content: "\f3df"; } - -.fa-plug:before { - content: "\f1e6"; } - -.fa-plus:before { - content: "\f067"; } - -.fa-plus-circle:before { - content: "\f055"; } - -.fa-plus-square:before { - content: "\f0fe"; } - -.fa-podcast:before { - content: "\f2ce"; } - -.fa-poll:before { - content: "\f681"; } - -.fa-poll-h:before { - content: "\f682"; } - -.fa-poo:before { - content: "\f2fe"; } - -.fa-poo-storm:before { - content: "\f75a"; } - -.fa-poop:before { - content: "\f619"; } - -.fa-portrait:before { - content: "\f3e0"; } - -.fa-pound-sign:before { - content: "\f154"; } - -.fa-power-off:before { - content: "\f011"; } - -.fa-pray:before { - content: "\f683"; } - -.fa-praying-hands:before { - content: "\f684"; } - -.fa-prescription:before { - content: "\f5b1"; } - -.fa-prescription-bottle:before { - content: "\f485"; } - -.fa-prescription-bottle-alt:before { - content: "\f486"; } - -.fa-print:before { - content: "\f02f"; } - -.fa-procedures:before { - content: "\f487"; } - -.fa-product-hunt:before { - content: "\f288"; } - -.fa-project-diagram:before { - content: "\f542"; } - -.fa-pushed:before { - content: "\f3e1"; } - -.fa-puzzle-piece:before { - content: "\f12e"; } - -.fa-python:before { - content: "\f3e2"; } - -.fa-qq:before { - content: "\f1d6"; } - -.fa-qrcode:before { - content: "\f029"; } - -.fa-question:before { - content: "\f128"; } - -.fa-question-circle:before { - content: "\f059"; } - -.fa-quidditch:before { - content: "\f458"; } - -.fa-quinscape:before { - content: "\f459"; } - -.fa-quora:before { - content: "\f2c4"; } - -.fa-quote-left:before { - content: "\f10d"; } - -.fa-quote-right:before { - content: "\f10e"; } - -.fa-quran:before { - content: "\f687"; } - -.fa-r-project:before { - content: "\f4f7"; } - -.fa-rainbow:before { - content: "\f75b"; } - -.fa-random:before { - content: "\f074"; } - -.fa-ravelry:before { - content: "\f2d9"; } - -.fa-react:before { - content: "\f41b"; } - -.fa-reacteurope:before { - content: "\f75d"; } - -.fa-readme:before { - content: "\f4d5"; } - -.fa-rebel:before { - content: "\f1d0"; } - -.fa-receipt:before { - content: "\f543"; } - -.fa-recycle:before { - content: "\f1b8"; } - -.fa-red-river:before { - content: "\f3e3"; } - -.fa-reddit:before { - content: "\f1a1"; } - -.fa-reddit-alien:before { - content: "\f281"; } - -.fa-reddit-square:before { - content: "\f1a2"; } - -.fa-redo:before { - content: "\f01e"; } - -.fa-redo-alt:before { - content: "\f2f9"; } - -.fa-registered:before { - content: "\f25d"; } - -.fa-renren:before { - content: "\f18b"; } - -.fa-reply:before { - content: "\f3e5"; } - -.fa-reply-all:before { - content: "\f122"; } - -.fa-replyd:before { - content: "\f3e6"; } - -.fa-republican:before { - content: "\f75e"; } - -.fa-researchgate:before { - content: "\f4f8"; } - -.fa-resolving:before { - content: "\f3e7"; } - -.fa-retweet:before { - content: "\f079"; } - -.fa-rev:before { - content: "\f5b2"; } - -.fa-ribbon:before { - content: "\f4d6"; } - -.fa-ring:before { - content: "\f70b"; } - -.fa-road:before { - content: "\f018"; } - -.fa-robot:before { - content: "\f544"; } - -.fa-rocket:before { - content: "\f135"; } - -.fa-rocketchat:before { - content: "\f3e8"; } - -.fa-rockrms:before { - content: "\f3e9"; } - -.fa-route:before { - content: "\f4d7"; } - -.fa-rss:before { - content: "\f09e"; } - -.fa-rss-square:before { - content: "\f143"; } - -.fa-ruble-sign:before { - content: "\f158"; } - -.fa-ruler:before { - content: "\f545"; } - -.fa-ruler-combined:before { - content: "\f546"; } - -.fa-ruler-horizontal:before { - content: "\f547"; } - -.fa-ruler-vertical:before { - content: "\f548"; } - -.fa-running:before { - content: "\f70c"; } - -.fa-rupee-sign:before { - content: "\f156"; } - -.fa-sad-cry:before { - content: "\f5b3"; } - -.fa-sad-tear:before { - content: "\f5b4"; } - -.fa-safari:before { - content: "\f267"; } - -.fa-sass:before { - content: "\f41e"; } - -.fa-save:before { - content: "\f0c7"; } - -.fa-schlix:before { - content: "\f3ea"; } - -.fa-school:before { - content: "\f549"; } - -.fa-screwdriver:before { - content: "\f54a"; } - -.fa-scribd:before { - content: "\f28a"; } - -.fa-scroll:before { - content: "\f70e"; } - -.fa-search:before { - content: "\f002"; } - -.fa-search-dollar:before { - content: "\f688"; } - -.fa-search-location:before { - content: "\f689"; } - -.fa-search-minus:before { - content: "\f010"; } - -.fa-search-plus:before { - content: "\f00e"; } - -.fa-searchengin:before { - content: "\f3eb"; } - -.fa-seedling:before { - content: "\f4d8"; } - -.fa-sellcast:before { - content: "\f2da"; } - -.fa-sellsy:before { - content: "\f213"; } - -.fa-server:before { - content: "\f233"; } - -.fa-servicestack:before { - content: "\f3ec"; } - -.fa-shapes:before { - content: "\f61f"; } - -.fa-share:before { - content: "\f064"; } - -.fa-share-alt:before { - content: "\f1e0"; } - -.fa-share-alt-square:before { - content: "\f1e1"; } - -.fa-share-square:before { - content: "\f14d"; } - -.fa-shekel-sign:before { - content: "\f20b"; } - -.fa-shield-alt:before { - content: "\f3ed"; } - -.fa-ship:before { - content: "\f21a"; } - -.fa-shipping-fast:before { - content: "\f48b"; } - -.fa-shirtsinbulk:before { - content: "\f214"; } - -.fa-shoe-prints:before { - content: "\f54b"; } - -.fa-shopping-bag:before { - content: "\f290"; } - -.fa-shopping-basket:before { - content: "\f291"; } - -.fa-shopping-cart:before { - content: "\f07a"; } - -.fa-shopware:before { - content: "\f5b5"; } - -.fa-shower:before { - content: "\f2cc"; } - -.fa-shuttle-van:before { - content: "\f5b6"; } - -.fa-sign:before { - content: "\f4d9"; } - -.fa-sign-in-alt:before { - content: "\f2f6"; } - -.fa-sign-language:before { - content: "\f2a7"; } - -.fa-sign-out-alt:before { - content: "\f2f5"; } - -.fa-signal:before { - content: "\f012"; } - -.fa-signature:before { - content: "\f5b7"; } - -.fa-simplybuilt:before { - content: "\f215"; } - -.fa-sistrix:before { - content: "\f3ee"; } - -.fa-sitemap:before { - content: "\f0e8"; } - -.fa-sith:before { - content: "\f512"; } - -.fa-skull:before { - content: "\f54c"; } - -.fa-skull-crossbones:before { - content: "\f714"; } - -.fa-skyatlas:before { - content: "\f216"; } - -.fa-skype:before { - content: "\f17e"; } - -.fa-slack:before { - content: "\f198"; } - -.fa-slack-hash:before { - content: "\f3ef"; } - -.fa-slash:before { - content: "\f715"; } - -.fa-sliders-h:before { - content: "\f1de"; } - -.fa-slideshare:before { - content: "\f1e7"; } - -.fa-smile:before { - content: "\f118"; } - -.fa-smile-beam:before { - content: "\f5b8"; } - -.fa-smile-wink:before { - content: "\f4da"; } - -.fa-smog:before { - content: "\f75f"; } - -.fa-smoking:before { - content: "\f48d"; } - -.fa-smoking-ban:before { - content: "\f54d"; } - -.fa-snapchat:before { - content: "\f2ab"; } - -.fa-snapchat-ghost:before { - content: "\f2ac"; } - -.fa-snapchat-square:before { - content: "\f2ad"; } - -.fa-snowflake:before { - content: "\f2dc"; } - -.fa-socks:before { - content: "\f696"; } - -.fa-solar-panel:before { - content: "\f5ba"; } - -.fa-sort:before { - content: "\f0dc"; } - -.fa-sort-alpha-down:before { - content: "\f15d"; } - -.fa-sort-alpha-up:before { - content: "\f15e"; } - -.fa-sort-amount-down:before { - content: "\f160"; } - -.fa-sort-amount-up:before { - content: "\f161"; } - -.fa-sort-down:before { - content: "\f0dd"; } - -.fa-sort-numeric-down:before { - content: "\f162"; } - -.fa-sort-numeric-up:before { - content: "\f163"; } - -.fa-sort-up:before { - content: "\f0de"; } - -.fa-soundcloud:before { - content: "\f1be"; } - -.fa-spa:before { - content: "\f5bb"; } - -.fa-space-shuttle:before { - content: "\f197"; } - -.fa-speakap:before { - content: "\f3f3"; } - -.fa-spider:before { - content: "\f717"; } - -.fa-spinner:before { - content: "\f110"; } - -.fa-splotch:before { - content: "\f5bc"; } - -.fa-spotify:before { - content: "\f1bc"; } - -.fa-spray-can:before { - content: "\f5bd"; } - -.fa-square:before { - content: "\f0c8"; } - -.fa-square-full:before { - content: "\f45c"; } - -.fa-square-root-alt:before { - content: "\f698"; } - -.fa-squarespace:before { - content: "\f5be"; } - -.fa-stack-exchange:before { - content: "\f18d"; } - -.fa-stack-overflow:before { - content: "\f16c"; } - -.fa-stamp:before { - content: "\f5bf"; } - -.fa-star:before { - content: "\f005"; } - -.fa-star-and-crescent:before { - content: "\f699"; } - -.fa-star-half:before { - content: "\f089"; } - -.fa-star-half-alt:before { - content: "\f5c0"; } - -.fa-star-of-david:before { - content: "\f69a"; } - -.fa-star-of-life:before { - content: "\f621"; } - -.fa-staylinked:before { - content: "\f3f5"; } - -.fa-steam:before { - content: "\f1b6"; } - -.fa-steam-square:before { - content: "\f1b7"; } - -.fa-steam-symbol:before { - content: "\f3f6"; } - -.fa-step-backward:before { - content: "\f048"; } - -.fa-step-forward:before { - content: "\f051"; } - -.fa-stethoscope:before { - content: "\f0f1"; } - -.fa-sticker-mule:before { - content: "\f3f7"; } - -.fa-sticky-note:before { - content: "\f249"; } - -.fa-stop:before { - content: "\f04d"; } - -.fa-stop-circle:before { - content: "\f28d"; } - -.fa-stopwatch:before { - content: "\f2f2"; } - -.fa-store:before { - content: "\f54e"; } - -.fa-store-alt:before { - content: "\f54f"; } - -.fa-strava:before { - content: "\f428"; } - -.fa-stream:before { - content: "\f550"; } - -.fa-street-view:before { - content: "\f21d"; } - -.fa-strikethrough:before { - content: "\f0cc"; } - -.fa-stripe:before { - content: "\f429"; } - -.fa-stripe-s:before { - content: "\f42a"; } - -.fa-stroopwafel:before { - content: "\f551"; } - -.fa-studiovinari:before { - content: "\f3f8"; } - -.fa-stumbleupon:before { - content: "\f1a4"; } - -.fa-stumbleupon-circle:before { - content: "\f1a3"; } - -.fa-subscript:before { - content: "\f12c"; } - -.fa-subway:before { - content: "\f239"; } - -.fa-suitcase:before { - content: "\f0f2"; } - -.fa-suitcase-rolling:before { - content: "\f5c1"; } - -.fa-sun:before { - content: "\f185"; } - -.fa-superpowers:before { - content: "\f2dd"; } - -.fa-superscript:before { - content: "\f12b"; } - -.fa-supple:before { - content: "\f3f9"; } - -.fa-surprise:before { - content: "\f5c2"; } - -.fa-swatchbook:before { - content: "\f5c3"; } - -.fa-swimmer:before { - content: "\f5c4"; } - -.fa-swimming-pool:before { - content: "\f5c5"; } - -.fa-synagogue:before { - content: "\f69b"; } - -.fa-sync:before { - content: "\f021"; } - -.fa-sync-alt:before { - content: "\f2f1"; } - -.fa-syringe:before { - content: "\f48e"; } - -.fa-table:before { - content: "\f0ce"; } - -.fa-table-tennis:before { - content: "\f45d"; } - -.fa-tablet:before { - content: "\f10a"; } - -.fa-tablet-alt:before { - content: "\f3fa"; } - -.fa-tablets:before { - content: "\f490"; } - -.fa-tachometer-alt:before { - content: "\f3fd"; } - -.fa-tag:before { - content: "\f02b"; } - -.fa-tags:before { - content: "\f02c"; } - -.fa-tape:before { - content: "\f4db"; } - -.fa-tasks:before { - content: "\f0ae"; } - -.fa-taxi:before { - content: "\f1ba"; } - -.fa-teamspeak:before { - content: "\f4f9"; } - -.fa-teeth:before { - content: "\f62e"; } - -.fa-teeth-open:before { - content: "\f62f"; } - -.fa-telegram:before { - content: "\f2c6"; } - -.fa-telegram-plane:before { - content: "\f3fe"; } - -.fa-temperature-high:before { - content: "\f769"; } - -.fa-temperature-low:before { - content: "\f76b"; } - -.fa-tencent-weibo:before { - content: "\f1d5"; } - -.fa-terminal:before { - content: "\f120"; } - -.fa-text-height:before { - content: "\f034"; } - -.fa-text-width:before { - content: "\f035"; } - -.fa-th:before { - content: "\f00a"; } - -.fa-th-large:before { - content: "\f009"; } - -.fa-th-list:before { - content: "\f00b"; } - -.fa-the-red-yeti:before { - content: "\f69d"; } - -.fa-theater-masks:before { - content: "\f630"; } - -.fa-themeco:before { - content: "\f5c6"; } - -.fa-themeisle:before { - content: "\f2b2"; } - -.fa-thermometer:before { - content: "\f491"; } - -.fa-thermometer-empty:before { - content: "\f2cb"; } - -.fa-thermometer-full:before { - content: "\f2c7"; } - -.fa-thermometer-half:before { - content: "\f2c9"; } - -.fa-thermometer-quarter:before { - content: "\f2ca"; } - -.fa-thermometer-three-quarters:before { - content: "\f2c8"; } - -.fa-think-peaks:before { - content: "\f731"; } - -.fa-thumbs-down:before { - content: "\f165"; } - -.fa-thumbs-up:before { - content: "\f164"; } - -.fa-thumbtack:before { - content: "\f08d"; } - -.fa-ticket-alt:before { - content: "\f3ff"; } - -.fa-times:before { - content: "\f00d"; } - -.fa-times-circle:before { - content: "\f057"; } - -.fa-tint:before { - content: "\f043"; } - -.fa-tint-slash:before { - content: "\f5c7"; } - -.fa-tired:before { - content: "\f5c8"; } - -.fa-toggle-off:before { - content: "\f204"; } - -.fa-toggle-on:before { - content: "\f205"; } - -.fa-toilet-paper:before { - content: "\f71e"; } - -.fa-toolbox:before { - content: "\f552"; } - -.fa-tooth:before { - content: "\f5c9"; } - -.fa-torah:before { - content: "\f6a0"; } - -.fa-torii-gate:before { - content: "\f6a1"; } - -.fa-tractor:before { - content: "\f722"; } - -.fa-trade-federation:before { - content: "\f513"; } - -.fa-trademark:before { - content: "\f25c"; } - -.fa-traffic-light:before { - content: "\f637"; } - -.fa-train:before { - content: "\f238"; } - -.fa-transgender:before { - content: "\f224"; } - -.fa-transgender-alt:before { - content: "\f225"; } - -.fa-trash:before { - content: "\f1f8"; } - -.fa-trash-alt:before { - content: "\f2ed"; } - -.fa-tree:before { - content: "\f1bb"; } - -.fa-trello:before { - content: "\f181"; } - -.fa-tripadvisor:before { - content: "\f262"; } - -.fa-trophy:before { - content: "\f091"; } - -.fa-truck:before { - content: "\f0d1"; } - -.fa-truck-loading:before { - content: "\f4de"; } - -.fa-truck-monster:before { - content: "\f63b"; } - -.fa-truck-moving:before { - content: "\f4df"; } - -.fa-truck-pickup:before { - content: "\f63c"; } - -.fa-tshirt:before { - content: "\f553"; } - -.fa-tty:before { - content: "\f1e4"; } - -.fa-tumblr:before { - content: "\f173"; } - -.fa-tumblr-square:before { - content: "\f174"; } - -.fa-tv:before { - content: "\f26c"; } - -.fa-twitch:before { - content: "\f1e8"; } - -.fa-twitter:before { - content: "\f099"; } - -.fa-twitter-square:before { - content: "\f081"; } - -.fa-typo3:before { - content: "\f42b"; } - -.fa-uber:before { - content: "\f402"; } - -.fa-uikit:before { - content: "\f403"; } - -.fa-umbrella:before { - content: "\f0e9"; } - -.fa-umbrella-beach:before { - content: "\f5ca"; } - -.fa-underline:before { - content: "\f0cd"; } - -.fa-undo:before { - content: "\f0e2"; } - -.fa-undo-alt:before { - content: "\f2ea"; } - -.fa-uniregistry:before { - content: "\f404"; } - -.fa-universal-access:before { - content: "\f29a"; } - -.fa-university:before { - content: "\f19c"; } - -.fa-unlink:before { - content: "\f127"; } - -.fa-unlock:before { - content: "\f09c"; } - -.fa-unlock-alt:before { - content: "\f13e"; } - -.fa-untappd:before { - content: "\f405"; } - -.fa-upload:before { - content: "\f093"; } - -.fa-usb:before { - content: "\f287"; } - -.fa-user:before { - content: "\f007"; } - -.fa-user-alt:before { - content: "\f406"; } - -.fa-user-alt-slash:before { - content: "\f4fa"; } - -.fa-user-astronaut:before { - content: "\f4fb"; } - -.fa-user-check:before { - content: "\f4fc"; } - -.fa-user-circle:before { - content: "\f2bd"; } - -.fa-user-clock:before { - content: "\f4fd"; } - -.fa-user-cog:before { - content: "\f4fe"; } - -.fa-user-edit:before { - content: "\f4ff"; } - -.fa-user-friends:before { - content: "\f500"; } - -.fa-user-graduate:before { - content: "\f501"; } - -.fa-user-injured:before { - content: "\f728"; } - -.fa-user-lock:before { - content: "\f502"; } - -.fa-user-md:before { - content: "\f0f0"; } - -.fa-user-minus:before { - content: "\f503"; } - -.fa-user-ninja:before { - content: "\f504"; } - -.fa-user-plus:before { - content: "\f234"; } - -.fa-user-secret:before { - content: "\f21b"; } - -.fa-user-shield:before { - content: "\f505"; } - -.fa-user-slash:before { - content: "\f506"; } - -.fa-user-tag:before { - content: "\f507"; } - -.fa-user-tie:before { - content: "\f508"; } - -.fa-user-times:before { - content: "\f235"; } - -.fa-users:before { - content: "\f0c0"; } - -.fa-users-cog:before { - content: "\f509"; } - -.fa-ussunnah:before { - content: "\f407"; } - -.fa-utensil-spoon:before { - content: "\f2e5"; } - -.fa-utensils:before { - content: "\f2e7"; } - -.fa-vaadin:before { - content: "\f408"; } - -.fa-vector-square:before { - content: "\f5cb"; } - -.fa-venus:before { - content: "\f221"; } - -.fa-venus-double:before { - content: "\f226"; } - -.fa-venus-mars:before { - content: "\f228"; } - -.fa-viacoin:before { - content: "\f237"; } - -.fa-viadeo:before { - content: "\f2a9"; } - -.fa-viadeo-square:before { - content: "\f2aa"; } - -.fa-vial:before { - content: "\f492"; } - -.fa-vials:before { - content: "\f493"; } - -.fa-viber:before { - content: "\f409"; } - -.fa-video:before { - content: "\f03d"; } - -.fa-video-slash:before { - content: "\f4e2"; } - -.fa-vihara:before { - content: "\f6a7"; } - -.fa-vimeo:before { - content: "\f40a"; } - -.fa-vimeo-square:before { - content: "\f194"; } - -.fa-vimeo-v:before { - content: "\f27d"; } - -.fa-vine:before { - content: "\f1ca"; } - -.fa-vk:before { - content: "\f189"; } - -.fa-vnv:before { - content: "\f40b"; } - -.fa-volleyball-ball:before { - content: "\f45f"; } - -.fa-volume-down:before { - content: "\f027"; } - -.fa-volume-mute:before { - content: "\f6a9"; } - -.fa-volume-off:before { - content: "\f026"; } - -.fa-volume-up:before { - content: "\f028"; } - -.fa-vote-yea:before { - content: "\f772"; } - -.fa-vr-cardboard:before { - content: "\f729"; } - -.fa-vuejs:before { - content: "\f41f"; } - -.fa-walking:before { - content: "\f554"; } - -.fa-wallet:before { - content: "\f555"; } - -.fa-warehouse:before { - content: "\f494"; } - -.fa-water:before { - content: "\f773"; } - -.fa-weebly:before { - content: "\f5cc"; } - -.fa-weibo:before { - content: "\f18a"; } - -.fa-weight:before { - content: "\f496"; } - -.fa-weight-hanging:before { - content: "\f5cd"; } - -.fa-weixin:before { - content: "\f1d7"; } - -.fa-whatsapp:before { - content: "\f232"; } - -.fa-whatsapp-square:before { - content: "\f40c"; } - -.fa-wheelchair:before { - content: "\f193"; } - -.fa-whmcs:before { - content: "\f40d"; } - -.fa-wifi:before { - content: "\f1eb"; } - -.fa-wikipedia-w:before { - content: "\f266"; } - -.fa-wind:before { - content: "\f72e"; } - -.fa-window-close:before { - content: "\f410"; } - -.fa-window-maximize:before { - content: "\f2d0"; } - -.fa-window-minimize:before { - content: "\f2d1"; } - -.fa-window-restore:before { - content: "\f2d2"; } - -.fa-windows:before { - content: "\f17a"; } - -.fa-wine-bottle:before { - content: "\f72f"; } - -.fa-wine-glass:before { - content: "\f4e3"; } - -.fa-wine-glass-alt:before { - content: "\f5ce"; } - -.fa-wix:before { - content: "\f5cf"; } - -.fa-wizards-of-the-coast:before { - content: "\f730"; } - -.fa-wolf-pack-battalion:before { - content: "\f514"; } - -.fa-won-sign:before { - content: "\f159"; } - -.fa-wordpress:before { - content: "\f19a"; } - -.fa-wordpress-simple:before { - content: "\f411"; } - -.fa-wpbeginner:before { - content: "\f297"; } - -.fa-wpexplorer:before { - content: "\f2de"; } - -.fa-wpforms:before { - content: "\f298"; } - -.fa-wpressr:before { - content: "\f3e4"; } - -.fa-wrench:before { - content: "\f0ad"; } - -.fa-x-ray:before { - content: "\f497"; } - -.fa-xbox:before { - content: "\f412"; } - -.fa-xing:before { - content: "\f168"; } - -.fa-xing-square:before { - content: "\f169"; } - -.fa-y-combinator:before { - content: "\f23b"; } - -.fa-yahoo:before { - content: "\f19e"; } - -.fa-yandex:before { - content: "\f413"; } - -.fa-yandex-international:before { - content: "\f414"; } - -.fa-yelp:before { - content: "\f1e9"; } - -.fa-yen-sign:before { - content: "\f157"; } - -.fa-yin-yang:before { - content: "\f6ad"; } - -.fa-yoast:before { - content: "\f2b1"; } - -.fa-youtube:before { - content: "\f167"; } - -.fa-youtube-square:before { - content: "\f431"; } - -.fa-zhihu:before { - content: "\f63f"; } - -.sr-only { - border: 0; - clip: rect(0, 0, 0, 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px; } - -.sr-only-focusable:active, .sr-only-focusable:focus { - clip: auto; - height: auto; - margin: 0; - overflow: visible; - position: static; - width: auto; } -@font-face { - font-family: 'Font Awesome 5 Brands'; - font-style: normal; - font-weight: normal; - src: url("../fonts/fa-brands-400.eot"); - src: url("../fonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../fonts/fa-brands-400.woff2") format("woff2"), url("../fonts/fa-brands-400.woff") format("woff"), url("../fonts/fa-brands-400.ttf") format("truetype"), url("../fonts/fa-brands-400.svg#fontawesome") format("svg"); } - -.fab { - font-family: 'Font Awesome 5 Brands'; } -@font-face { - font-family: 'Font Awesome 5 Free'; - font-style: normal; - font-weight: 400; - src: url("../fonts/fa-regular-400.eot"); - src: url("../fonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../fonts/fa-regular-400.woff2") format("woff2"), url("../fonts/fa-regular-400.woff") format("woff"), url("../fonts/fa-regular-400.ttf") format("truetype"), url("../fonts/fa-regular-400.svg#fontawesome") format("svg"); } - -.far { - font-family: 'Font Awesome 5 Free'; - font-weight: 400; } -@font-face { - font-family: 'Font Awesome 5 Free'; - font-style: normal; - font-weight: 900; - src: url("../fonts/fa-solid-900.eot"); - src: url("../fonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../fonts/fa-solid-900.woff2") format("woff2"), url("../fonts/fa-solid-900.woff") format("woff"), url("../fonts/fa-solid-900.ttf") format("truetype"), url("../fonts/fa-solid-900.svg#fontawesome") format("svg"); } - -.fa, -.fas { - font-family: 'Font Awesome 5 Free'; - font-weight: 900; } diff --git a/src/common/css/fontawesome/fontawesome.css b/src/common/css/fontawesome/fontawesome.css new file mode 100644 index 00000000..049f612e --- /dev/null +++ b/src/common/css/fontawesome/fontawesome.css @@ -0,0 +1,13396 @@ +/*! + * Font Awesome Pro 6.5.2 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license (Commercial License) + * Copyright 2024 Fonticons, Inc. + */ +.fa { + font-family: var(--fa-style-family, "Font Awesome 6 Pro"); + font-weight: var(--fa-style, 900); } + +.fa, +.fa-classic, +.fa-sharp, +.fas, +.fa-solid, +.far, +.fa-regular, +.fasr, +.fal, +.fa-light, +.fasl, +.fat, +.fa-thin, +.fast, +.fad, +.fa-duotone, +.fass, +.fa-sharp-solid, +.fab, +.fa-brands { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + display: var(--fa-display, inline-block); + font-style: normal; + font-variant: normal; + line-height: 1; + text-rendering: auto; } + +.fas, +.fa-classic, +.fa-solid, +.far, +.fa-regular, +.fal, +.fa-light, +.fat, +.fa-thin { + font-family: 'Font Awesome 6 Pro'; } + +.fab, +.fa-brands { + font-family: 'Font Awesome 6 Brands'; } + +.fad, +.fa-classic.fa-duotone, +.fa-duotone { + font-family: 'Font Awesome 6 Duotone'; } + +.fass, +.fasr, +.fasl, +.fast, +.fa-sharp { + font-family: 'Font Awesome 6 Sharp'; } + +.fass, +.fa-sharp { + font-weight: 900; } + +.fa-1x { + font-size: 1em; } + +.fa-2x { + font-size: 2em; } + +.fa-3x { + font-size: 3em; } + +.fa-4x { + font-size: 4em; } + +.fa-5x { + font-size: 5em; } + +.fa-6x { + font-size: 6em; } + +.fa-7x { + font-size: 7em; } + +.fa-8x { + font-size: 8em; } + +.fa-9x { + font-size: 9em; } + +.fa-10x { + font-size: 10em; } + +.fa-2xs { + font-size: 0.625em; + line-height: 0.1em; + vertical-align: 0.225em; } + +.fa-xs { + font-size: 0.75em; + line-height: 0.08333em; + vertical-align: 0.125em; } + +.fa-sm { + font-size: 0.875em; + line-height: 0.07143em; + vertical-align: 0.05357em; } + +.fa-lg { + font-size: 1.25em; + line-height: 0.05em; + vertical-align: -0.075em; } + +.fa-xl { + font-size: 1.5em; + line-height: 0.04167em; + vertical-align: -0.125em; } + +.fa-2xl { + font-size: 2em; + line-height: 0.03125em; + vertical-align: -0.1875em; } + +.fa-fw { + text-align: center; + width: 1.25em; } + +.fa-ul { + list-style-type: none; + margin-left: var(--fa-li-margin, 2.5em); + padding-left: 0; } + .fa-ul > li { + position: relative; } + +.fa-li { + left: calc(var(--fa-li-width, 2em) * -1); + position: absolute; + text-align: center; + width: var(--fa-li-width, 2em); + line-height: inherit; } + +.fa-border { + border-color: var(--fa-border-color, #eee); + border-radius: var(--fa-border-radius, 0.1em); + border-style: var(--fa-border-style, solid); + border-width: var(--fa-border-width, 0.08em); + padding: var(--fa-border-padding, 0.2em 0.25em 0.15em); } + +.fa-pull-left { + float: left; + margin-right: var(--fa-pull-margin, 0.3em); } + +.fa-pull-right { + float: right; + margin-left: var(--fa-pull-margin, 0.3em); } + +.fa-beat { + -webkit-animation-name: fa-beat; + animation-name: fa-beat; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out); + animation-timing-function: var(--fa-animation-timing, ease-in-out); } + +.fa-bounce { + -webkit-animation-name: fa-bounce; + animation-name: fa-bounce; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); } + +.fa-fade { + -webkit-animation-name: fa-fade; + animation-name: fa-fade; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); } + +.fa-beat-fade { + -webkit-animation-name: fa-beat-fade; + animation-name: fa-beat-fade; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); } + +.fa-flip { + -webkit-animation-name: fa-flip; + animation-name: fa-flip; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out); + animation-timing-function: var(--fa-animation-timing, ease-in-out); } + +.fa-shake { + -webkit-animation-name: fa-shake; + animation-name: fa-shake; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, linear); + animation-timing-function: var(--fa-animation-timing, linear); } + +.fa-spin { + -webkit-animation-name: fa-spin; + animation-name: fa-spin; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 2s); + animation-duration: var(--fa-animation-duration, 2s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, linear); + animation-timing-function: var(--fa-animation-timing, linear); } + +.fa-spin-reverse { + --fa-animation-direction: reverse; } + +.fa-pulse, +.fa-spin-pulse { + -webkit-animation-name: fa-spin; + animation-name: fa-spin; + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, steps(8)); + animation-timing-function: var(--fa-animation-timing, steps(8)); } + +@media (prefers-reduced-motion: reduce) { + .fa-beat, + .fa-bounce, + .fa-fade, + .fa-beat-fade, + .fa-flip, + .fa-pulse, + .fa-shake, + .fa-spin, + .fa-spin-pulse { + -webkit-animation-delay: -1ms; + animation-delay: -1ms; + -webkit-animation-duration: 1ms; + animation-duration: 1ms; + -webkit-animation-iteration-count: 1; + animation-iteration-count: 1; + -webkit-transition-delay: 0s; + transition-delay: 0s; + -webkit-transition-duration: 0s; + transition-duration: 0s; } } + +@-webkit-keyframes fa-beat { + 0%, 90% { + -webkit-transform: scale(1); + transform: scale(1); } + 45% { + -webkit-transform: scale(var(--fa-beat-scale, 1.25)); + transform: scale(var(--fa-beat-scale, 1.25)); } } + +@keyframes fa-beat { + 0%, 90% { + -webkit-transform: scale(1); + transform: scale(1); } + 45% { + -webkit-transform: scale(var(--fa-beat-scale, 1.25)); + transform: scale(var(--fa-beat-scale, 1.25)); } } + +@-webkit-keyframes fa-bounce { + 0% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } + 10% { + -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); + transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); } + 30% { + -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); + transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); } + 50% { + -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); + transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); } + 57% { + -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); + transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); } + 64% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } + 100% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } } + +@keyframes fa-bounce { + 0% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } + 10% { + -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); + transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); } + 30% { + -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); + transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); } + 50% { + -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); + transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); } + 57% { + -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); + transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); } + 64% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } + 100% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } } + +@-webkit-keyframes fa-fade { + 50% { + opacity: var(--fa-fade-opacity, 0.4); } } + +@keyframes fa-fade { + 50% { + opacity: var(--fa-fade-opacity, 0.4); } } + +@-webkit-keyframes fa-beat-fade { + 0%, 100% { + opacity: var(--fa-beat-fade-opacity, 0.4); + -webkit-transform: scale(1); + transform: scale(1); } + 50% { + opacity: 1; + -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125)); + transform: scale(var(--fa-beat-fade-scale, 1.125)); } } + +@keyframes fa-beat-fade { + 0%, 100% { + opacity: var(--fa-beat-fade-opacity, 0.4); + -webkit-transform: scale(1); + transform: scale(1); } + 50% { + opacity: 1; + -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125)); + transform: scale(var(--fa-beat-fade-scale, 1.125)); } } + +@-webkit-keyframes fa-flip { + 50% { + -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); + transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } } + +@keyframes fa-flip { + 50% { + -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); + transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } } + +@-webkit-keyframes fa-shake { + 0% { + -webkit-transform: rotate(-15deg); + transform: rotate(-15deg); } + 4% { + -webkit-transform: rotate(15deg); + transform: rotate(15deg); } + 8%, 24% { + -webkit-transform: rotate(-18deg); + transform: rotate(-18deg); } + 12%, 28% { + -webkit-transform: rotate(18deg); + transform: rotate(18deg); } + 16% { + -webkit-transform: rotate(-22deg); + transform: rotate(-22deg); } + 20% { + -webkit-transform: rotate(22deg); + transform: rotate(22deg); } + 32% { + -webkit-transform: rotate(-12deg); + transform: rotate(-12deg); } + 36% { + -webkit-transform: rotate(12deg); + transform: rotate(12deg); } + 40%, 100% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } } + +@keyframes fa-shake { + 0% { + -webkit-transform: rotate(-15deg); + transform: rotate(-15deg); } + 4% { + -webkit-transform: rotate(15deg); + transform: rotate(15deg); } + 8%, 24% { + -webkit-transform: rotate(-18deg); + transform: rotate(-18deg); } + 12%, 28% { + -webkit-transform: rotate(18deg); + transform: rotate(18deg); } + 16% { + -webkit-transform: rotate(-22deg); + transform: rotate(-22deg); } + 20% { + -webkit-transform: rotate(22deg); + transform: rotate(22deg); } + 32% { + -webkit-transform: rotate(-12deg); + transform: rotate(-12deg); } + 36% { + -webkit-transform: rotate(12deg); + transform: rotate(12deg); } + 40%, 100% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } } + +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +.fa-rotate-90 { + -webkit-transform: rotate(90deg); + transform: rotate(90deg); } + +.fa-rotate-180 { + -webkit-transform: rotate(180deg); + transform: rotate(180deg); } + +.fa-rotate-270 { + -webkit-transform: rotate(270deg); + transform: rotate(270deg); } + +.fa-flip-horizontal { + -webkit-transform: scale(-1, 1); + transform: scale(-1, 1); } + +.fa-flip-vertical { + -webkit-transform: scale(1, -1); + transform: scale(1, -1); } + +.fa-flip-both, +.fa-flip-horizontal.fa-flip-vertical { + -webkit-transform: scale(-1, -1); + transform: scale(-1, -1); } + +.fa-rotate-by { + -webkit-transform: rotate(var(--fa-rotate-angle, 0)); + transform: rotate(var(--fa-rotate-angle, 0)); } + +.fa-stack { + display: inline-block; + height: 2em; + line-height: 2em; + position: relative; + vertical-align: middle; + width: 2.5em; } + +.fa-stack-1x, +.fa-stack-2x { + left: 0; + position: absolute; + text-align: center; + width: 100%; + z-index: var(--fa-stack-z-index, auto); } + +.fa-stack-1x { + line-height: inherit; } + +.fa-stack-2x { + font-size: 2em; } + +.fa-inverse { + color: var(--fa-inverse, #fff); } + +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen +readers do not read off random characters that represent icons */ + +.fa-0::before { + content: "\30"; } + +.fa-1::before { + content: "\31"; } + +.fa-2::before { + content: "\32"; } + +.fa-3::before { + content: "\33"; } + +.fa-4::before { + content: "\34"; } + +.fa-5::before { + content: "\35"; } + +.fa-6::before { + content: "\36"; } + +.fa-7::before { + content: "\37"; } + +.fa-8::before { + content: "\38"; } + +.fa-9::before { + content: "\39"; } + +.fa-fill-drip::before { + content: "\f576"; } + +.fa-arrows-to-circle::before { + content: "\e4bd"; } + +.fa-circle-chevron-right::before { + content: "\f138"; } + +.fa-chevron-circle-right::before { + content: "\f138"; } + +.fa-wagon-covered::before { + content: "\f8ee"; } + +.fa-line-height::before { + content: "\f871"; } + +.fa-bagel::before { + content: "\e3d7"; } + +.fa-transporter-7::before { + content: "\e2a8"; } + +.fa-at::before { + content: "\40"; } + +.fa-rectangles-mixed::before { + content: "\e323"; } + +.fa-phone-arrow-up-right::before { + content: "\e224"; } + +.fa-phone-arrow-up::before { + content: "\e224"; } + +.fa-phone-outgoing::before { + content: "\e224"; } + +.fa-trash-can::before { + content: "\f2ed"; } + +.fa-trash-alt::before { + content: "\f2ed"; } + +.fa-circle-l::before { + content: "\e114"; } + +.fa-head-side-goggles::before { + content: "\f6ea"; } + +.fa-head-vr::before { + content: "\f6ea"; } + +.fa-text-height::before { + content: "\f034"; } + +.fa-user-xmark::before { + content: "\f235"; } + +.fa-user-times::before { + content: "\f235"; } + +.fa-face-hand-yawn::before { + content: "\e379"; } + +.fa-gauge-simple-min::before { + content: "\f62d"; } + +.fa-tachometer-slowest::before { + content: "\f62d"; } + +.fa-stethoscope::before { + content: "\f0f1"; } + +.fa-coffin::before { + content: "\f6c6"; } + +.fa-message::before { + content: "\f27a"; } + +.fa-comment-alt::before { + content: "\f27a"; } + +.fa-salad::before { + content: "\f81e"; } + +.fa-bowl-salad::before { + content: "\f81e"; } + +.fa-info::before { + content: "\f129"; } + +.fa-robot-astromech::before { + content: "\e2d2"; } + +.fa-ring-diamond::before { + content: "\e5ab"; } + +.fa-fondue-pot::before { + content: "\e40d"; } + +.fa-theta::before { + content: "\f69e"; } + +.fa-face-hand-peeking::before { + content: "\e481"; } + +.fa-square-user::before { + content: "\e283"; } + +.fa-down-left-and-up-right-to-center::before { + content: "\f422"; } + +.fa-compress-alt::before { + content: "\f422"; } + +.fa-explosion::before { + content: "\e4e9"; } + +.fa-file-lines::before { + content: "\f15c"; } + +.fa-file-alt::before { + content: "\f15c"; } + +.fa-file-text::before { + content: "\f15c"; } + +.fa-wave-square::before { + content: "\f83e"; } + +.fa-ring::before { + content: "\f70b"; } + +.fa-building-un::before { + content: "\e4d9"; } + +.fa-dice-three::before { + content: "\f527"; } + +.fa-tire-pressure-warning::before { + content: "\f633"; } + +.fa-wifi-fair::before { + content: "\f6ab"; } + +.fa-wifi-2::before { + content: "\f6ab"; } + +.fa-calendar-days::before { + content: "\f073"; } + +.fa-calendar-alt::before { + content: "\f073"; } + +.fa-mp3-player::before { + content: "\f8ce"; } + +.fa-anchor-circle-check::before { + content: "\e4aa"; } + +.fa-tally-4::before { + content: "\e297"; } + +.fa-rectangle-history::before { + content: "\e4a2"; } + +.fa-building-circle-arrow-right::before { + content: "\e4d1"; } + +.fa-volleyball::before { + content: "\f45f"; } + +.fa-volleyball-ball::before { + content: "\f45f"; } + +.fa-sun-haze::before { + content: "\f765"; } + +.fa-text-size::before { + content: "\f894"; } + +.fa-ufo::before { + content: "\e047"; } + +.fa-fork::before { + content: "\f2e3"; } + +.fa-utensil-fork::before { + content: "\f2e3"; } + +.fa-arrows-up-to-line::before { + content: "\e4c2"; } + +.fa-mobile-signal::before { + content: "\e1ef"; } + +.fa-barcode-scan::before { + content: "\f465"; } + +.fa-sort-down::before { + content: "\f0dd"; } + +.fa-sort-desc::before { + content: "\f0dd"; } + +.fa-folder-arrow-down::before { + content: "\e053"; } + +.fa-folder-download::before { + content: "\e053"; } + +.fa-circle-minus::before { + content: "\f056"; } + +.fa-minus-circle::before { + content: "\f056"; } + +.fa-face-icicles::before { + content: "\e37c"; } + +.fa-shovel::before { + content: "\f713"; } + +.fa-door-open::before { + content: "\f52b"; } + +.fa-films::before { + content: "\e17a"; } + +.fa-right-from-bracket::before { + content: "\f2f5"; } + +.fa-sign-out-alt::before { + content: "\f2f5"; } + +.fa-face-glasses::before { + content: "\e377"; } + +.fa-nfc::before { + content: "\e1f7"; } + +.fa-atom::before { + content: "\f5d2"; } + +.fa-soap::before { + content: "\e06e"; } + +.fa-icons::before { + content: "\f86d"; } + +.fa-heart-music-camera-bolt::before { + content: "\f86d"; } + +.fa-microphone-lines-slash::before { + content: "\f539"; } + +.fa-microphone-alt-slash::before { + content: "\f539"; } + +.fa-closed-captioning-slash::before { + content: "\e135"; } + +.fa-calculator-simple::before { + content: "\f64c"; } + +.fa-calculator-alt::before { + content: "\f64c"; } + +.fa-bridge-circle-check::before { + content: "\e4c9"; } + +.fa-sliders-up::before { + content: "\f3f1"; } + +.fa-sliders-v::before { + content: "\f3f1"; } + +.fa-location-minus::before { + content: "\f609"; } + +.fa-map-marker-minus::before { + content: "\f609"; } + +.fa-pump-medical::before { + content: "\e06a"; } + +.fa-fingerprint::before { + content: "\f577"; } + +.fa-ski-boot::before { + content: "\e3cc"; } + +.fa-standard-definition::before { + content: "\e28a"; } + +.fa-rectangle-sd::before { + content: "\e28a"; } + +.fa-h1::before { + content: "\f313"; } + +.fa-hand-point-right::before { + content: "\f0a4"; } + +.fa-magnifying-glass-location::before { + content: "\f689"; } + +.fa-search-location::before { + content: "\f689"; } + +.fa-message-bot::before { + content: "\e3b8"; } + +.fa-forward-step::before { + content: "\f051"; } + +.fa-step-forward::before { + content: "\f051"; } + +.fa-face-smile-beam::before { + content: "\f5b8"; } + +.fa-smile-beam::before { + content: "\f5b8"; } + +.fa-light-ceiling::before { + content: "\e016"; } + +.fa-message-exclamation::before { + content: "\f4a5"; } + +.fa-comment-alt-exclamation::before { + content: "\f4a5"; } + +.fa-bowl-scoop::before { + content: "\e3de"; } + +.fa-bowl-shaved-ice::before { + content: "\e3de"; } + +.fa-square-x::before { + content: "\e286"; } + +.fa-building-memo::before { + content: "\e61e"; } + +.fa-utility-pole-double::before { + content: "\e2c4"; } + +.fa-flag-checkered::before { + content: "\f11e"; } + +.fa-chevrons-up::before { + content: "\f325"; } + +.fa-chevron-double-up::before { + content: "\f325"; } + +.fa-football::before { + content: "\f44e"; } + +.fa-football-ball::before { + content: "\f44e"; } + +.fa-user-vneck::before { + content: "\e461"; } + +.fa-school-circle-exclamation::before { + content: "\e56c"; } + +.fa-crop::before { + content: "\f125"; } + +.fa-angles-down::before { + content: "\f103"; } + +.fa-angle-double-down::before { + content: "\f103"; } + +.fa-users-rectangle::before { + content: "\e594"; } + +.fa-people-roof::before { + content: "\e537"; } + +.fa-square-arrow-right::before { + content: "\f33b"; } + +.fa-arrow-square-right::before { + content: "\f33b"; } + +.fa-location-plus::before { + content: "\f60a"; } + +.fa-map-marker-plus::before { + content: "\f60a"; } + +.fa-lightbulb-exclamation-on::before { + content: "\e1ca"; } + +.fa-people-line::before { + content: "\e534"; } + +.fa-beer-mug-empty::before { + content: "\f0fc"; } + +.fa-beer::before { + content: "\f0fc"; } + +.fa-crate-empty::before { + content: "\e151"; } + +.fa-diagram-predecessor::before { + content: "\e477"; } + +.fa-transporter::before { + content: "\e042"; } + +.fa-calendar-circle-user::before { + content: "\e471"; } + +.fa-arrow-up-long::before { + content: "\f176"; } + +.fa-long-arrow-up::before { + content: "\f176"; } + +.fa-person-carry-box::before { + content: "\f4cf"; } + +.fa-person-carry::before { + content: "\f4cf"; } + +.fa-fire-flame-simple::before { + content: "\f46a"; } + +.fa-burn::before { + content: "\f46a"; } + +.fa-person::before { + content: "\f183"; } + +.fa-male::before { + content: "\f183"; } + +.fa-laptop::before { + content: "\f109"; } + +.fa-file-csv::before { + content: "\f6dd"; } + +.fa-menorah::before { + content: "\f676"; } + +.fa-union::before { + content: "\f6a2"; } + +.fa-chevrons-left::before { + content: "\f323"; } + +.fa-chevron-double-left::before { + content: "\f323"; } + +.fa-circle-heart::before { + content: "\f4c7"; } + +.fa-heart-circle::before { + content: "\f4c7"; } + +.fa-truck-plane::before { + content: "\e58f"; } + +.fa-record-vinyl::before { + content: "\f8d9"; } + +.fa-bring-forward::before { + content: "\f856"; } + +.fa-square-p::before { + content: "\e279"; } + +.fa-face-grin-stars::before { + content: "\f587"; } + +.fa-grin-stars::before { + content: "\f587"; } + +.fa-sigma::before { + content: "\f68b"; } + +.fa-camera-movie::before { + content: "\f8a9"; } + +.fa-bong::before { + content: "\f55c"; } + +.fa-clarinet::before { + content: "\f8ad"; } + +.fa-truck-flatbed::before { + content: "\e2b6"; } + +.fa-spaghetti-monster-flying::before { + content: "\f67b"; } + +.fa-pastafarianism::before { + content: "\f67b"; } + +.fa-arrow-down-up-across-line::before { + content: "\e4af"; } + +.fa-arrows-rotate-reverse::before { + content: "\e630"; } + +.fa-leaf-heart::before { + content: "\f4cb"; } + +.fa-house-building::before { + content: "\e1b1"; } + +.fa-cheese-swiss::before { + content: "\f7f0"; } + +.fa-spoon::before { + content: "\f2e5"; } + +.fa-utensil-spoon::before { + content: "\f2e5"; } + +.fa-jar-wheat::before { + content: "\e517"; } + +.fa-envelopes-bulk::before { + content: "\f674"; } + +.fa-mail-bulk::before { + content: "\f674"; } + +.fa-file-circle-exclamation::before { + content: "\e4eb"; } + +.fa-bow-arrow::before { + content: "\f6b9"; } + +.fa-cart-xmark::before { + content: "\e0dd"; } + +.fa-hexagon-xmark::before { + content: "\f2ee"; } + +.fa-times-hexagon::before { + content: "\f2ee"; } + +.fa-xmark-hexagon::before { + content: "\f2ee"; } + +.fa-circle-h::before { + content: "\f47e"; } + +.fa-hospital-symbol::before { + content: "\f47e"; } + +.fa-merge::before { + content: "\e526"; } + +.fa-pager::before { + content: "\f815"; } + +.fa-cart-minus::before { + content: "\e0db"; } + +.fa-address-book::before { + content: "\f2b9"; } + +.fa-contact-book::before { + content: "\f2b9"; } + +.fa-pan-frying::before { + content: "\e42c"; } + +.fa-grid::before { + content: "\e195"; } + +.fa-grid-3::before { + content: "\e195"; } + +.fa-football-helmet::before { + content: "\f44f"; } + +.fa-hand-love::before { + content: "\e1a5"; } + +.fa-trees::before { + content: "\f724"; } + +.fa-strikethrough::before { + content: "\f0cc"; } + +.fa-page::before { + content: "\e428"; } + +.fa-k::before { + content: "\4b"; } + +.fa-diagram-previous::before { + content: "\e478"; } + +.fa-gauge-min::before { + content: "\f628"; } + +.fa-tachometer-alt-slowest::before { + content: "\f628"; } + +.fa-folder-grid::before { + content: "\e188"; } + +.fa-eggplant::before { + content: "\e16c"; } + +.fa-excavator::before { + content: "\e656"; } + +.fa-ram::before { + content: "\f70a"; } + +.fa-landmark-flag::before { + content: "\e51c"; } + +.fa-lips::before { + content: "\f600"; } + +.fa-pencil::before { + content: "\f303"; } + +.fa-pencil-alt::before { + content: "\f303"; } + +.fa-backward::before { + content: "\f04a"; } + +.fa-caret-right::before { + content: "\f0da"; } + +.fa-comments::before { + content: "\f086"; } + +.fa-paste::before { + content: "\f0ea"; } + +.fa-file-clipboard::before { + content: "\f0ea"; } + +.fa-desktop-arrow-down::before { + content: "\e155"; } + +.fa-code-pull-request::before { + content: "\e13c"; } + +.fa-pumpkin::before { + content: "\f707"; } + +.fa-clipboard-list::before { + content: "\f46d"; } + +.fa-pen-field::before { + content: "\e211"; } + +.fa-blueberries::before { + content: "\e2e8"; } + +.fa-truck-ramp-box::before { + content: "\f4de"; } + +.fa-truck-loading::before { + content: "\f4de"; } + +.fa-note::before { + content: "\e1ff"; } + +.fa-arrow-down-to-square::before { + content: "\e096"; } + +.fa-user-check::before { + content: "\f4fc"; } + +.fa-cloud-xmark::before { + content: "\e35f"; } + +.fa-vial-virus::before { + content: "\e597"; } + +.fa-book-blank::before { + content: "\f5d9"; } + +.fa-book-alt::before { + content: "\f5d9"; } + +.fa-golf-flag-hole::before { + content: "\e3ac"; } + +.fa-message-arrow-down::before { + content: "\e1db"; } + +.fa-comment-alt-arrow-down::before { + content: "\e1db"; } + +.fa-face-unamused::before { + content: "\e39f"; } + +.fa-sheet-plastic::before { + content: "\e571"; } + +.fa-circle-9::before { + content: "\e0f6"; } + +.fa-blog::before { + content: "\f781"; } + +.fa-user-ninja::before { + content: "\f504"; } + +.fa-pencil-slash::before { + content: "\e215"; } + +.fa-bowling-pins::before { + content: "\f437"; } + +.fa-person-arrow-up-from-line::before { + content: "\e539"; } + +.fa-down-right::before { + content: "\e16b"; } + +.fa-scroll-torah::before { + content: "\f6a0"; } + +.fa-torah::before { + content: "\f6a0"; } + +.fa-webhook::before { + content: "\e5d5"; } + +.fa-blinds-open::before { + content: "\f8fc"; } + +.fa-fence::before { + content: "\e303"; } + +.fa-up::before { + content: "\f357"; } + +.fa-arrow-alt-up::before { + content: "\f357"; } + +.fa-broom-ball::before { + content: "\f458"; } + +.fa-quidditch::before { + content: "\f458"; } + +.fa-quidditch-broom-ball::before { + content: "\f458"; } + +.fa-drumstick::before { + content: "\f6d6"; } + +.fa-square-v::before { + content: "\e284"; } + +.fa-face-awesome::before { + content: "\e409"; } + +.fa-gave-dandy::before { + content: "\e409"; } + +.fa-dial-off::before { + content: "\e162"; } + +.fa-toggle-off::before { + content: "\f204"; } + +.fa-face-smile-horns::before { + content: "\e391"; } + +.fa-box-archive::before { + content: "\f187"; } + +.fa-archive::before { + content: "\f187"; } + +.fa-grapes::before { + content: "\e306"; } + +.fa-person-drowning::before { + content: "\e545"; } + +.fa-dial-max::before { + content: "\e15e"; } + +.fa-circle-m::before { + content: "\e115"; } + +.fa-calendar-image::before { + content: "\e0d4"; } + +.fa-circle-caret-down::before { + content: "\f32d"; } + +.fa-caret-circle-down::before { + content: "\f32d"; } + +.fa-arrow-down-9-1::before { + content: "\f886"; } + +.fa-sort-numeric-desc::before { + content: "\f886"; } + +.fa-sort-numeric-down-alt::before { + content: "\f886"; } + +.fa-face-grin-tongue-squint::before { + content: "\f58a"; } + +.fa-grin-tongue-squint::before { + content: "\f58a"; } + +.fa-shish-kebab::before { + content: "\f821"; } + +.fa-spray-can::before { + content: "\f5bd"; } + +.fa-alarm-snooze::before { + content: "\f845"; } + +.fa-scarecrow::before { + content: "\f70d"; } + +.fa-truck-monster::before { + content: "\f63b"; } + +.fa-gift-card::before { + content: "\f663"; } + +.fa-w::before { + content: "\57"; } + +.fa-code-pull-request-draft::before { + content: "\e3fa"; } + +.fa-square-b::before { + content: "\e264"; } + +.fa-elephant::before { + content: "\f6da"; } + +.fa-earth-africa::before { + content: "\f57c"; } + +.fa-globe-africa::before { + content: "\f57c"; } + +.fa-rainbow::before { + content: "\f75b"; } + +.fa-circle-notch::before { + content: "\f1ce"; } + +.fa-tablet-screen-button::before { + content: "\f3fa"; } + +.fa-tablet-alt::before { + content: "\f3fa"; } + +.fa-paw::before { + content: "\f1b0"; } + +.fa-message-question::before { + content: "\e1e3"; } + +.fa-cloud::before { + content: "\f0c2"; } + +.fa-trowel-bricks::before { + content: "\e58a"; } + +.fa-square-3::before { + content: "\e258"; } + +.fa-face-flushed::before { + content: "\f579"; } + +.fa-flushed::before { + content: "\f579"; } + +.fa-hospital-user::before { + content: "\f80d"; } + +.fa-microwave::before { + content: "\e01b"; } + +.fa-chf-sign::before { + content: "\e602"; } + +.fa-tent-arrow-left-right::before { + content: "\e57f"; } + +.fa-cart-circle-arrow-up::before { + content: "\e3f0"; } + +.fa-trash-clock::before { + content: "\e2b0"; } + +.fa-reflect-both::before { + content: "\e66f"; } + +.fa-gavel::before { + content: "\f0e3"; } + +.fa-legal::before { + content: "\f0e3"; } + +.fa-sprinkler-ceiling::before { + content: "\e44c"; } + +.fa-browsers::before { + content: "\e0cb"; } + +.fa-trillium::before { + content: "\e588"; } + +.fa-music-slash::before { + content: "\f8d1"; } + +.fa-truck-ramp::before { + content: "\f4e0"; } + +.fa-binoculars::before { + content: "\f1e5"; } + +.fa-microphone-slash::before { + content: "\f131"; } + +.fa-box-tissue::before { + content: "\e05b"; } + +.fa-circle-c::before { + content: "\e101"; } + +.fa-star-christmas::before { + content: "\f7d4"; } + +.fa-chart-bullet::before { + content: "\e0e1"; } + +.fa-motorcycle::before { + content: "\f21c"; } + +.fa-tree-christmas::before { + content: "\f7db"; } + +.fa-tire-flat::before { + content: "\f632"; } + +.fa-sunglasses::before { + content: "\f892"; } + +.fa-badge::before { + content: "\f335"; } + +.fa-message-pen::before { + content: "\f4a4"; } + +.fa-comment-alt-edit::before { + content: "\f4a4"; } + +.fa-message-edit::before { + content: "\f4a4"; } + +.fa-bell-concierge::before { + content: "\f562"; } + +.fa-concierge-bell::before { + content: "\f562"; } + +.fa-pen-ruler::before { + content: "\f5ae"; } + +.fa-pencil-ruler::before { + content: "\f5ae"; } + +.fa-file-mp3::before { + content: "\e648"; } + +.fa-arrow-progress::before { + content: "\e5df"; } + +.fa-chess-rook-piece::before { + content: "\f448"; } + +.fa-chess-rook-alt::before { + content: "\f448"; } + +.fa-square-root::before { + content: "\f697"; } + +.fa-album-collection-circle-plus::before { + content: "\e48e"; } + +.fa-people-arrows::before { + content: "\e068"; } + +.fa-people-arrows-left-right::before { + content: "\e068"; } + +.fa-sign-post::before { + content: "\e624"; } + +.fa-face-angry-horns::before { + content: "\e368"; } + +.fa-mars-and-venus-burst::before { + content: "\e523"; } + +.fa-tombstone::before { + content: "\f720"; } + +.fa-square-caret-right::before { + content: "\f152"; } + +.fa-caret-square-right::before { + content: "\f152"; } + +.fa-scissors::before { + content: "\f0c4"; } + +.fa-cut::before { + content: "\f0c4"; } + +.fa-list-music::before { + content: "\f8c9"; } + +.fa-sun-plant-wilt::before { + content: "\e57a"; } + +.fa-toilets-portable::before { + content: "\e584"; } + +.fa-hockey-puck::before { + content: "\f453"; } + +.fa-mustache::before { + content: "\e5bc"; } + +.fa-hyphen::before { + content: "\2d"; } + +.fa-table::before { + content: "\f0ce"; } + +.fa-user-chef::before { + content: "\e3d2"; } + +.fa-message-image::before { + content: "\e1e0"; } + +.fa-comment-alt-image::before { + content: "\e1e0"; } + +.fa-users-medical::before { + content: "\f830"; } + +.fa-sensor-triangle-exclamation::before { + content: "\e029"; } + +.fa-sensor-alert::before { + content: "\e029"; } + +.fa-magnifying-glass-arrow-right::before { + content: "\e521"; } + +.fa-tachograph-digital::before { + content: "\f566"; } + +.fa-digital-tachograph::before { + content: "\f566"; } + +.fa-face-mask::before { + content: "\e37f"; } + +.fa-pickleball::before { + content: "\e435"; } + +.fa-star-sharp-half::before { + content: "\e28c"; } + +.fa-users-slash::before { + content: "\e073"; } + +.fa-clover::before { + content: "\e139"; } + +.fa-meat::before { + content: "\f814"; } + +.fa-reply::before { + content: "\f3e5"; } + +.fa-mail-reply::before { + content: "\f3e5"; } + +.fa-star-and-crescent::before { + content: "\f699"; } + +.fa-empty-set::before { + content: "\f656"; } + +.fa-house-fire::before { + content: "\e50c"; } + +.fa-square-minus::before { + content: "\f146"; } + +.fa-minus-square::before { + content: "\f146"; } + +.fa-helicopter::before { + content: "\f533"; } + +.fa-bird::before { + content: "\e469"; } + +.fa-compass::before { + content: "\f14e"; } + +.fa-square-caret-down::before { + content: "\f150"; } + +.fa-caret-square-down::before { + content: "\f150"; } + +.fa-heart-half-stroke::before { + content: "\e1ac"; } + +.fa-heart-half-alt::before { + content: "\e1ac"; } + +.fa-file-circle-question::before { + content: "\e4ef"; } + +.fa-truck-utensils::before { + content: "\e628"; } + +.fa-laptop-code::before { + content: "\f5fc"; } + +.fa-joystick::before { + content: "\f8c5"; } + +.fa-grill-fire::before { + content: "\e5a4"; } + +.fa-rectangle-vertical-history::before { + content: "\e237"; } + +.fa-swatchbook::before { + content: "\f5c3"; } + +.fa-prescription-bottle::before { + content: "\f485"; } + +.fa-bars::before { + content: "\f0c9"; } + +.fa-navicon::before { + content: "\f0c9"; } + +.fa-keyboard-left::before { + content: "\e1c3"; } + +.fa-people-group::before { + content: "\e533"; } + +.fa-hourglass-end::before { + content: "\f253"; } + +.fa-hourglass-3::before { + content: "\f253"; } + +.fa-heart-crack::before { + content: "\f7a9"; } + +.fa-heart-broken::before { + content: "\f7a9"; } + +.fa-face-beam-hand-over-mouth::before { + content: "\e47c"; } + +.fa-droplet-percent::before { + content: "\f750"; } + +.fa-humidity::before { + content: "\f750"; } + +.fa-square-up-right::before { + content: "\f360"; } + +.fa-external-link-square-alt::before { + content: "\f360"; } + +.fa-face-kiss-beam::before { + content: "\f597"; } + +.fa-kiss-beam::before { + content: "\f597"; } + +.fa-corn::before { + content: "\f6c7"; } + +.fa-roller-coaster::before { + content: "\e324"; } + +.fa-photo-film-music::before { + content: "\e228"; } + +.fa-radar::before { + content: "\e024"; } + +.fa-sickle::before { + content: "\f822"; } + +.fa-film::before { + content: "\f008"; } + +.fa-coconut::before { + content: "\e2f6"; } + +.fa-ruler-horizontal::before { + content: "\f547"; } + +.fa-shield-cross::before { + content: "\f712"; } + +.fa-cassette-tape::before { + content: "\f8ab"; } + +.fa-square-terminal::before { + content: "\e32a"; } + +.fa-people-robbery::before { + content: "\e536"; } + +.fa-lightbulb::before { + content: "\f0eb"; } + +.fa-caret-left::before { + content: "\f0d9"; } + +.fa-comment-middle::before { + content: "\e149"; } + +.fa-trash-can-list::before { + content: "\e2ab"; } + +.fa-block::before { + content: "\e46a"; } + +.fa-circle-exclamation::before { + content: "\f06a"; } + +.fa-exclamation-circle::before { + content: "\f06a"; } + +.fa-school-circle-xmark::before { + content: "\e56d"; } + +.fa-arrow-right-from-bracket::before { + content: "\f08b"; } + +.fa-sign-out::before { + content: "\f08b"; } + +.fa-face-frown-slight::before { + content: "\e376"; } + +.fa-circle-chevron-down::before { + content: "\f13a"; } + +.fa-chevron-circle-down::before { + content: "\f13a"; } + +.fa-sidebar-flip::before { + content: "\e24f"; } + +.fa-unlock-keyhole::before { + content: "\f13e"; } + +.fa-unlock-alt::before { + content: "\f13e"; } + +.fa-temperature-list::before { + content: "\e299"; } + +.fa-cloud-showers-heavy::before { + content: "\f740"; } + +.fa-headphones-simple::before { + content: "\f58f"; } + +.fa-headphones-alt::before { + content: "\f58f"; } + +.fa-sitemap::before { + content: "\f0e8"; } + +.fa-pipe-section::before { + content: "\e438"; } + +.fa-space-station-moon-construction::before { + content: "\e034"; } + +.fa-space-station-moon-alt::before { + content: "\e034"; } + +.fa-circle-dollar-to-slot::before { + content: "\f4b9"; } + +.fa-donate::before { + content: "\f4b9"; } + +.fa-memory::before { + content: "\f538"; } + +.fa-face-sleeping::before { + content: "\e38d"; } + +.fa-road-spikes::before { + content: "\e568"; } + +.fa-fire-burner::before { + content: "\e4f1"; } + +.fa-squirrel::before { + content: "\f71a"; } + +.fa-arrow-up-to-line::before { + content: "\f341"; } + +.fa-arrow-to-top::before { + content: "\f341"; } + +.fa-flag::before { + content: "\f024"; } + +.fa-face-cowboy-hat::before { + content: "\e36e"; } + +.fa-hanukiah::before { + content: "\f6e6"; } + +.fa-chart-scatter-3d::before { + content: "\e0e8"; } + +.fa-display-chart-up::before { + content: "\e5e3"; } + +.fa-square-code::before { + content: "\e267"; } + +.fa-feather::before { + content: "\f52d"; } + +.fa-volume-low::before { + content: "\f027"; } + +.fa-volume-down::before { + content: "\f027"; } + +.fa-xmark-to-slot::before { + content: "\f771"; } + +.fa-times-to-slot::before { + content: "\f771"; } + +.fa-vote-nay::before { + content: "\f771"; } + +.fa-box-taped::before { + content: "\f49a"; } + +.fa-box-alt::before { + content: "\f49a"; } + +.fa-comment-slash::before { + content: "\f4b3"; } + +.fa-swords::before { + content: "\f71d"; } + +.fa-cloud-sun-rain::before { + content: "\f743"; } + +.fa-album::before { + content: "\f89f"; } + +.fa-circle-n::before { + content: "\e118"; } + +.fa-compress::before { + content: "\f066"; } + +.fa-wheat-awn::before { + content: "\e2cd"; } + +.fa-wheat-alt::before { + content: "\e2cd"; } + +.fa-ankh::before { + content: "\f644"; } + +.fa-hands-holding-child::before { + content: "\e4fa"; } + +.fa-asterisk::before { + content: "\2a"; } + +.fa-key-skeleton-left-right::before { + content: "\e3b4"; } + +.fa-comment-lines::before { + content: "\f4b0"; } + +.fa-luchador-mask::before { + content: "\f455"; } + +.fa-luchador::before { + content: "\f455"; } + +.fa-mask-luchador::before { + content: "\f455"; } + +.fa-square-check::before { + content: "\f14a"; } + +.fa-check-square::before { + content: "\f14a"; } + +.fa-shredder::before { + content: "\f68a"; } + +.fa-book-open-cover::before { + content: "\e0c0"; } + +.fa-book-open-alt::before { + content: "\e0c0"; } + +.fa-sandwich::before { + content: "\f81f"; } + +.fa-peseta-sign::before { + content: "\e221"; } + +.fa-square-parking-slash::before { + content: "\f617"; } + +.fa-parking-slash::before { + content: "\f617"; } + +.fa-train-tunnel::before { + content: "\e454"; } + +.fa-heading::before { + content: "\f1dc"; } + +.fa-header::before { + content: "\f1dc"; } + +.fa-ghost::before { + content: "\f6e2"; } + +.fa-face-anguished::before { + content: "\e369"; } + +.fa-hockey-sticks::before { + content: "\f454"; } + +.fa-abacus::before { + content: "\f640"; } + +.fa-film-simple::before { + content: "\f3a0"; } + +.fa-film-alt::before { + content: "\f3a0"; } + +.fa-list::before { + content: "\f03a"; } + +.fa-list-squares::before { + content: "\f03a"; } + +.fa-tree-palm::before { + content: "\f82b"; } + +.fa-square-phone-flip::before { + content: "\f87b"; } + +.fa-phone-square-alt::before { + content: "\f87b"; } + +.fa-cart-plus::before { + content: "\f217"; } + +.fa-gamepad::before { + content: "\f11b"; } + +.fa-border-center-v::before { + content: "\f89d"; } + +.fa-circle-dot::before { + content: "\f192"; } + +.fa-dot-circle::before { + content: "\f192"; } + +.fa-clipboard-medical::before { + content: "\e133"; } + +.fa-face-dizzy::before { + content: "\f567"; } + +.fa-dizzy::before { + content: "\f567"; } + +.fa-egg::before { + content: "\f7fb"; } + +.fa-up-to-line::before { + content: "\f34d"; } + +.fa-arrow-alt-to-top::before { + content: "\f34d"; } + +.fa-house-medical-circle-xmark::before { + content: "\e513"; } + +.fa-watch-fitness::before { + content: "\f63e"; } + +.fa-clock-nine-thirty::before { + content: "\e34d"; } + +.fa-campground::before { + content: "\f6bb"; } + +.fa-folder-plus::before { + content: "\f65e"; } + +.fa-jug::before { + content: "\f8c6"; } + +.fa-futbol::before { + content: "\f1e3"; } + +.fa-futbol-ball::before { + content: "\f1e3"; } + +.fa-soccer-ball::before { + content: "\f1e3"; } + +.fa-snow-blowing::before { + content: "\f761"; } + +.fa-paintbrush::before { + content: "\f1fc"; } + +.fa-paint-brush::before { + content: "\f1fc"; } + +.fa-lock::before { + content: "\f023"; } + +.fa-arrow-down-from-line::before { + content: "\f345"; } + +.fa-arrow-from-top::before { + content: "\f345"; } + +.fa-gas-pump::before { + content: "\f52f"; } + +.fa-signal-bars-slash::before { + content: "\f694"; } + +.fa-signal-alt-slash::before { + content: "\f694"; } + +.fa-monkey::before { + content: "\f6fb"; } + +.fa-rectangle-pro::before { + content: "\e235"; } + +.fa-pro::before { + content: "\e235"; } + +.fa-house-night::before { + content: "\e010"; } + +.fa-hot-tub-person::before { + content: "\f593"; } + +.fa-hot-tub::before { + content: "\f593"; } + +.fa-globe-pointer::before { + content: "\e60e"; } + +.fa-blanket::before { + content: "\f498"; } + +.fa-map-location::before { + content: "\f59f"; } + +.fa-map-marked::before { + content: "\f59f"; } + +.fa-house-flood-water::before { + content: "\e50e"; } + +.fa-comments-question-check::before { + content: "\e14f"; } + +.fa-tree::before { + content: "\f1bb"; } + +.fa-arrows-cross::before { + content: "\e0a2"; } + +.fa-backpack::before { + content: "\f5d4"; } + +.fa-square-small::before { + content: "\e27e"; } + +.fa-folder-arrow-up::before { + content: "\e054"; } + +.fa-folder-upload::before { + content: "\e054"; } + +.fa-bridge-lock::before { + content: "\e4cc"; } + +.fa-crosshairs-simple::before { + content: "\e59f"; } + +.fa-sack-dollar::before { + content: "\f81d"; } + +.fa-pen-to-square::before { + content: "\f044"; } + +.fa-edit::before { + content: "\f044"; } + +.fa-square-sliders::before { + content: "\f3f0"; } + +.fa-sliders-h-square::before { + content: "\f3f0"; } + +.fa-car-side::before { + content: "\f5e4"; } + +.fa-message-middle-top::before { + content: "\e1e2"; } + +.fa-comment-middle-top-alt::before { + content: "\e1e2"; } + +.fa-lightbulb-on::before { + content: "\f672"; } + +.fa-knife::before { + content: "\f2e4"; } + +.fa-utensil-knife::before { + content: "\f2e4"; } + +.fa-share-nodes::before { + content: "\f1e0"; } + +.fa-share-alt::before { + content: "\f1e0"; } + +.fa-display-chart-up-circle-dollar::before { + content: "\e5e6"; } + +.fa-wave-sine::before { + content: "\f899"; } + +.fa-heart-circle-minus::before { + content: "\e4ff"; } + +.fa-circle-w::before { + content: "\e12c"; } + +.fa-circle-calendar::before { + content: "\e102"; } + +.fa-calendar-circle::before { + content: "\e102"; } + +.fa-hourglass-half::before { + content: "\f252"; } + +.fa-hourglass-2::before { + content: "\f252"; } + +.fa-microscope::before { + content: "\f610"; } + +.fa-sunset::before { + content: "\f767"; } + +.fa-sink::before { + content: "\e06d"; } + +.fa-calendar-exclamation::before { + content: "\f334"; } + +.fa-truck-container-empty::before { + content: "\e2b5"; } + +.fa-hand-heart::before { + content: "\f4bc"; } + +.fa-bag-shopping::before { + content: "\f290"; } + +.fa-shopping-bag::before { + content: "\f290"; } + +.fa-arrow-down-z-a::before { + content: "\f881"; } + +.fa-sort-alpha-desc::before { + content: "\f881"; } + +.fa-sort-alpha-down-alt::before { + content: "\f881"; } + +.fa-mitten::before { + content: "\f7b5"; } + +.fa-reply-clock::before { + content: "\e239"; } + +.fa-reply-time::before { + content: "\e239"; } + +.fa-person-rays::before { + content: "\e54d"; } + +.fa-right::before { + content: "\f356"; } + +.fa-arrow-alt-right::before { + content: "\f356"; } + +.fa-circle-f::before { + content: "\e10e"; } + +.fa-users::before { + content: "\f0c0"; } + +.fa-face-pleading::before { + content: "\e386"; } + +.fa-eye-slash::before { + content: "\f070"; } + +.fa-flask-vial::before { + content: "\e4f3"; } + +.fa-police-box::before { + content: "\e021"; } + +.fa-cucumber::before { + content: "\e401"; } + +.fa-head-side-brain::before { + content: "\f808"; } + +.fa-hand::before { + content: "\f256"; } + +.fa-hand-paper::before { + content: "\f256"; } + +.fa-person-biking-mountain::before { + content: "\f84b"; } + +.fa-biking-mountain::before { + content: "\f84b"; } + +.fa-utensils-slash::before { + content: "\e464"; } + +.fa-print-magnifying-glass::before { + content: "\f81a"; } + +.fa-print-search::before { + content: "\f81a"; } + +.fa-turn-right::before { + content: "\e639"; } + +.fa-folder-bookmark::before { + content: "\e186"; } + +.fa-arrow-turn-left-down::before { + content: "\e633"; } + +.fa-om::before { + content: "\f679"; } + +.fa-pi::before { + content: "\f67e"; } + +.fa-flask-round-potion::before { + content: "\f6e1"; } + +.fa-flask-potion::before { + content: "\f6e1"; } + +.fa-face-shush::before { + content: "\e38c"; } + +.fa-worm::before { + content: "\e599"; } + +.fa-house-circle-xmark::before { + content: "\e50b"; } + +.fa-plug::before { + content: "\f1e6"; } + +.fa-calendar-circle-exclamation::before { + content: "\e46e"; } + +.fa-square-i::before { + content: "\e272"; } + +.fa-chevron-up::before { + content: "\f077"; } + +.fa-face-saluting::before { + content: "\e484"; } + +.fa-gauge-simple-low::before { + content: "\f62c"; } + +.fa-tachometer-slow::before { + content: "\f62c"; } + +.fa-face-persevering::before { + content: "\e385"; } + +.fa-circle-camera::before { + content: "\e103"; } + +.fa-camera-circle::before { + content: "\e103"; } + +.fa-hand-spock::before { + content: "\f259"; } + +.fa-spider-web::before { + content: "\f719"; } + +.fa-circle-microphone::before { + content: "\e116"; } + +.fa-microphone-circle::before { + content: "\e116"; } + +.fa-book-arrow-up::before { + content: "\e0ba"; } + +.fa-popsicle::before { + content: "\e43e"; } + +.fa-command::before { + content: "\e142"; } + +.fa-blinds::before { + content: "\f8fb"; } + +.fa-stopwatch::before { + content: "\f2f2"; } + +.fa-saxophone::before { + content: "\f8dc"; } + +.fa-square-2::before { + content: "\e257"; } + +.fa-field-hockey-stick-ball::before { + content: "\f44c"; } + +.fa-field-hockey::before { + content: "\f44c"; } + +.fa-arrow-up-square-triangle::before { + content: "\f88b"; } + +.fa-sort-shapes-up-alt::before { + content: "\f88b"; } + +.fa-face-scream::before { + content: "\e38b"; } + +.fa-square-m::before { + content: "\e276"; } + +.fa-camera-web::before { + content: "\f832"; } + +.fa-webcam::before { + content: "\f832"; } + +.fa-comment-arrow-down::before { + content: "\e143"; } + +.fa-lightbulb-cfl::before { + content: "\e5a6"; } + +.fa-window-frame-open::before { + content: "\e050"; } + +.fa-face-kiss::before { + content: "\f596"; } + +.fa-kiss::before { + content: "\f596"; } + +.fa-bridge-circle-xmark::before { + content: "\e4cb"; } + +.fa-period::before { + content: "\2e"; } + +.fa-face-grin-tongue::before { + content: "\f589"; } + +.fa-grin-tongue::before { + content: "\f589"; } + +.fa-up-to-dotted-line::before { + content: "\e457"; } + +.fa-thought-bubble::before { + content: "\e32e"; } + +.fa-skeleton-ribs::before { + content: "\e5cb"; } + +.fa-raygun::before { + content: "\e025"; } + +.fa-flute::before { + content: "\f8b9"; } + +.fa-acorn::before { + content: "\f6ae"; } + +.fa-video-arrow-up-right::before { + content: "\e2c9"; } + +.fa-grate-droplet::before { + content: "\e194"; } + +.fa-seal-exclamation::before { + content: "\e242"; } + +.fa-chess-bishop::before { + content: "\f43a"; } + +.fa-message-sms::before { + content: "\e1e5"; } + +.fa-coffee-beans::before { + content: "\e13f"; } + +.fa-hat-witch::before { + content: "\f6e7"; } + +.fa-face-grin-wink::before { + content: "\f58c"; } + +.fa-grin-wink::before { + content: "\f58c"; } + +.fa-clock-three-thirty::before { + content: "\e357"; } + +.fa-ear-deaf::before { + content: "\f2a4"; } + +.fa-deaf::before { + content: "\f2a4"; } + +.fa-deafness::before { + content: "\f2a4"; } + +.fa-hard-of-hearing::before { + content: "\f2a4"; } + +.fa-alarm-clock::before { + content: "\f34e"; } + +.fa-eclipse::before { + content: "\f749"; } + +.fa-face-relieved::before { + content: "\e389"; } + +.fa-road-circle-check::before { + content: "\e564"; } + +.fa-dice-five::before { + content: "\f523"; } + +.fa-octagon-minus::before { + content: "\f308"; } + +.fa-minus-octagon::before { + content: "\f308"; } + +.fa-square-rss::before { + content: "\f143"; } + +.fa-rss-square::before { + content: "\f143"; } + +.fa-face-zany::before { + content: "\e3a4"; } + +.fa-tricycle::before { + content: "\e5c3"; } + +.fa-land-mine-on::before { + content: "\e51b"; } + +.fa-square-arrow-up-left::before { + content: "\e263"; } + +.fa-i-cursor::before { + content: "\f246"; } + +.fa-chart-mixed-up-circle-dollar::before { + content: "\e5d9"; } + +.fa-salt-shaker::before { + content: "\e446"; } + +.fa-stamp::before { + content: "\f5bf"; } + +.fa-file-plus::before { + content: "\f319"; } + +.fa-draw-square::before { + content: "\f5ef"; } + +.fa-toilet-paper-under-slash::before { + content: "\e2a1"; } + +.fa-toilet-paper-reverse-slash::before { + content: "\e2a1"; } + +.fa-stairs::before { + content: "\e289"; } + +.fa-drone-front::before { + content: "\f860"; } + +.fa-drone-alt::before { + content: "\f860"; } + +.fa-glass-empty::before { + content: "\e191"; } + +.fa-dial-high::before { + content: "\e15c"; } + +.fa-user-helmet-safety::before { + content: "\f82c"; } + +.fa-user-construction::before { + content: "\f82c"; } + +.fa-user-hard-hat::before { + content: "\f82c"; } + +.fa-i::before { + content: "\49"; } + +.fa-hryvnia-sign::before { + content: "\f6f2"; } + +.fa-hryvnia::before { + content: "\f6f2"; } + +.fa-arrow-down-left-and-arrow-up-right-to-center::before { + content: "\e092"; } + +.fa-pills::before { + content: "\f484"; } + +.fa-face-grin-wide::before { + content: "\f581"; } + +.fa-grin-alt::before { + content: "\f581"; } + +.fa-tooth::before { + content: "\f5c9"; } + +.fa-basketball-hoop::before { + content: "\f435"; } + +.fa-objects-align-bottom::before { + content: "\e3bb"; } + +.fa-v::before { + content: "\56"; } + +.fa-sparkles::before { + content: "\f890"; } + +.fa-squid::before { + content: "\e450"; } + +.fa-leafy-green::before { + content: "\e41d"; } + +.fa-circle-arrow-up-right::before { + content: "\e0fc"; } + +.fa-calendars::before { + content: "\e0d7"; } + +.fa-bangladeshi-taka-sign::before { + content: "\e2e6"; } + +.fa-bicycle::before { + content: "\f206"; } + +.fa-hammer-war::before { + content: "\f6e4"; } + +.fa-circle-d::before { + content: "\e104"; } + +.fa-spider-black-widow::before { + content: "\f718"; } + +.fa-staff-snake::before { + content: "\e579"; } + +.fa-rod-asclepius::before { + content: "\e579"; } + +.fa-rod-snake::before { + content: "\e579"; } + +.fa-staff-aesculapius::before { + content: "\e579"; } + +.fa-pear::before { + content: "\e20c"; } + +.fa-head-side-cough-slash::before { + content: "\e062"; } + +.fa-file-mov::before { + content: "\e647"; } + +.fa-triangle::before { + content: "\f2ec"; } + +.fa-apartment::before { + content: "\e468"; } + +.fa-truck-medical::before { + content: "\f0f9"; } + +.fa-ambulance::before { + content: "\f0f9"; } + +.fa-pepper::before { + content: "\e432"; } + +.fa-piano::before { + content: "\f8d4"; } + +.fa-gun-squirt::before { + content: "\e19d"; } + +.fa-wheat-awn-circle-exclamation::before { + content: "\e598"; } + +.fa-snowman::before { + content: "\f7d0"; } + +.fa-user-alien::before { + content: "\e04a"; } + +.fa-shield-check::before { + content: "\f2f7"; } + +.fa-mortar-pestle::before { + content: "\f5a7"; } + +.fa-road-barrier::before { + content: "\e562"; } + +.fa-chart-candlestick::before { + content: "\e0e2"; } + +.fa-briefcase-blank::before { + content: "\e0c8"; } + +.fa-school::before { + content: "\f549"; } + +.fa-igloo::before { + content: "\f7ae"; } + +.fa-bracket-round::before { + content: "\28"; } + +.fa-parenthesis::before { + content: "\28"; } + +.fa-joint::before { + content: "\f595"; } + +.fa-horse-saddle::before { + content: "\f8c3"; } + +.fa-mug-marshmallows::before { + content: "\f7b7"; } + +.fa-filters::before { + content: "\e17e"; } + +.fa-bell-on::before { + content: "\f8fa"; } + +.fa-angle-right::before { + content: "\f105"; } + +.fa-dial-med::before { + content: "\e15f"; } + +.fa-horse::before { + content: "\f6f0"; } + +.fa-q::before { + content: "\51"; } + +.fa-monitor-waveform::before { + content: "\f611"; } + +.fa-monitor-heart-rate::before { + content: "\f611"; } + +.fa-link-simple::before { + content: "\e1cd"; } + +.fa-whistle::before { + content: "\f460"; } + +.fa-g::before { + content: "\47"; } + +.fa-wine-glass-crack::before { + content: "\f4bb"; } + +.fa-fragile::before { + content: "\f4bb"; } + +.fa-slot-machine::before { + content: "\e3ce"; } + +.fa-notes-medical::before { + content: "\f481"; } + +.fa-car-wash::before { + content: "\f5e6"; } + +.fa-escalator::before { + content: "\e171"; } + +.fa-comment-image::before { + content: "\e148"; } + +.fa-temperature-half::before { + content: "\f2c9"; } + +.fa-temperature-2::before { + content: "\f2c9"; } + +.fa-thermometer-2::before { + content: "\f2c9"; } + +.fa-thermometer-half::before { + content: "\f2c9"; } + +.fa-dong-sign::before { + content: "\e169"; } + +.fa-donut::before { + content: "\e406"; } + +.fa-doughnut::before { + content: "\e406"; } + +.fa-capsules::before { + content: "\f46b"; } + +.fa-poo-storm::before { + content: "\f75a"; } + +.fa-poo-bolt::before { + content: "\f75a"; } + +.fa-tally-1::before { + content: "\e294"; } + +.fa-file-vector::before { + content: "\e64c"; } + +.fa-face-frown-open::before { + content: "\f57a"; } + +.fa-frown-open::before { + content: "\f57a"; } + +.fa-square-dashed::before { + content: "\e269"; } + +.fa-bag-shopping-plus::before { + content: "\e651"; } + +.fa-square-j::before { + content: "\e273"; } + +.fa-hand-point-up::before { + content: "\f0a6"; } + +.fa-money-bill::before { + content: "\f0d6"; } + +.fa-arrow-up-big-small::before { + content: "\f88e"; } + +.fa-sort-size-up::before { + content: "\f88e"; } + +.fa-barcode-read::before { + content: "\f464"; } + +.fa-baguette::before { + content: "\e3d8"; } + +.fa-bowl-soft-serve::before { + content: "\e46b"; } + +.fa-face-holding-back-tears::before { + content: "\e482"; } + +.fa-square-up::before { + content: "\f353"; } + +.fa-arrow-alt-square-up::before { + content: "\f353"; } + +.fa-train-subway-tunnel::before { + content: "\e2a3"; } + +.fa-subway-tunnel::before { + content: "\e2a3"; } + +.fa-square-exclamation::before { + content: "\f321"; } + +.fa-exclamation-square::before { + content: "\f321"; } + +.fa-semicolon::before { + content: "\3b"; } + +.fa-bookmark::before { + content: "\f02e"; } + +.fa-fan-table::before { + content: "\e004"; } + +.fa-align-justify::before { + content: "\f039"; } + +.fa-battery-low::before { + content: "\e0b1"; } + +.fa-battery-1::before { + content: "\e0b1"; } + +.fa-credit-card-front::before { + content: "\f38a"; } + +.fa-brain-arrow-curved-right::before { + content: "\f677"; } + +.fa-mind-share::before { + content: "\f677"; } + +.fa-umbrella-beach::before { + content: "\f5ca"; } + +.fa-helmet-un::before { + content: "\e503"; } + +.fa-location-smile::before { + content: "\f60d"; } + +.fa-map-marker-smile::before { + content: "\f60d"; } + +.fa-arrow-left-to-line::before { + content: "\f33e"; } + +.fa-arrow-to-left::before { + content: "\f33e"; } + +.fa-bullseye::before { + content: "\f140"; } + +.fa-sushi::before { + content: "\e48a"; } + +.fa-nigiri::before { + content: "\e48a"; } + +.fa-message-captions::before { + content: "\e1de"; } + +.fa-comment-alt-captions::before { + content: "\e1de"; } + +.fa-trash-list::before { + content: "\e2b1"; } + +.fa-bacon::before { + content: "\f7e5"; } + +.fa-option::before { + content: "\e318"; } + +.fa-raccoon::before { + content: "\e613"; } + +.fa-hand-point-down::before { + content: "\f0a7"; } + +.fa-arrow-up-from-bracket::before { + content: "\e09a"; } + +.fa-head-side-gear::before { + content: "\e611"; } + +.fa-trash-plus::before { + content: "\e2b2"; } + +.fa-file-cad::before { + content: "\e672"; } + +.fa-objects-align-top::before { + content: "\e3c0"; } + +.fa-folder::before { + content: "\f07b"; } + +.fa-folder-blank::before { + content: "\f07b"; } + +.fa-face-anxious-sweat::before { + content: "\e36a"; } + +.fa-credit-card-blank::before { + content: "\f389"; } + +.fa-file-waveform::before { + content: "\f478"; } + +.fa-file-medical-alt::before { + content: "\f478"; } + +.fa-microchip-ai::before { + content: "\e1ec"; } + +.fa-mug::before { + content: "\f874"; } + +.fa-plane-up-slash::before { + content: "\e22e"; } + +.fa-radiation::before { + content: "\f7b9"; } + +.fa-pen-circle::before { + content: "\e20e"; } + +.fa-bag-seedling::before { + content: "\e5f2"; } + +.fa-chart-simple::before { + content: "\e473"; } + +.fa-crutches::before { + content: "\f7f8"; } + +.fa-circle-parking::before { + content: "\f615"; } + +.fa-parking-circle::before { + content: "\f615"; } + +.fa-mars-stroke::before { + content: "\f229"; } + +.fa-leaf-oak::before { + content: "\f6f7"; } + +.fa-square-bolt::before { + content: "\e265"; } + +.fa-vial::before { + content: "\f492"; } + +.fa-gauge::before { + content: "\f624"; } + +.fa-dashboard::before { + content: "\f624"; } + +.fa-gauge-med::before { + content: "\f624"; } + +.fa-tachometer-alt-average::before { + content: "\f624"; } + +.fa-wand-magic-sparkles::before { + content: "\e2ca"; } + +.fa-magic-wand-sparkles::before { + content: "\e2ca"; } + +.fa-lambda::before { + content: "\f66e"; } + +.fa-e::before { + content: "\45"; } + +.fa-pizza::before { + content: "\f817"; } + +.fa-bowl-chopsticks-noodles::before { + content: "\e2ea"; } + +.fa-h3::before { + content: "\f315"; } + +.fa-pen-clip::before { + content: "\f305"; } + +.fa-pen-alt::before { + content: "\f305"; } + +.fa-bridge-circle-exclamation::before { + content: "\e4ca"; } + +.fa-badge-percent::before { + content: "\f646"; } + +.fa-rotate-reverse::before { + content: "\e631"; } + +.fa-user::before { + content: "\f007"; } + +.fa-sensor::before { + content: "\e028"; } + +.fa-comma::before { + content: "\2c"; } + +.fa-school-circle-check::before { + content: "\e56b"; } + +.fa-toilet-paper-under::before { + content: "\e2a0"; } + +.fa-toilet-paper-reverse::before { + content: "\e2a0"; } + +.fa-light-emergency::before { + content: "\e41f"; } + +.fa-arrow-down-to-arc::before { + content: "\e4ae"; } + +.fa-dumpster::before { + content: "\f793"; } + +.fa-van-shuttle::before { + content: "\f5b6"; } + +.fa-shuttle-van::before { + content: "\f5b6"; } + +.fa-building-user::before { + content: "\e4da"; } + +.fa-light-switch::before { + content: "\e017"; } + +.fa-square-caret-left::before { + content: "\f191"; } + +.fa-caret-square-left::before { + content: "\f191"; } + +.fa-highlighter::before { + content: "\f591"; } + +.fa-wave-pulse::before { + content: "\f5f8"; } + +.fa-heart-rate::before { + content: "\f5f8"; } + +.fa-key::before { + content: "\f084"; } + +.fa-arrow-left-to-bracket::before { + content: "\e669"; } + +.fa-hat-santa::before { + content: "\f7a7"; } + +.fa-tamale::before { + content: "\e451"; } + +.fa-box-check::before { + content: "\f467"; } + +.fa-bullhorn::before { + content: "\f0a1"; } + +.fa-steak::before { + content: "\f824"; } + +.fa-location-crosshairs-slash::before { + content: "\f603"; } + +.fa-location-slash::before { + content: "\f603"; } + +.fa-person-dolly::before { + content: "\f4d0"; } + +.fa-globe::before { + content: "\f0ac"; } + +.fa-synagogue::before { + content: "\f69b"; } + +.fa-file-chart-column::before { + content: "\f659"; } + +.fa-file-chart-line::before { + content: "\f659"; } + +.fa-person-half-dress::before { + content: "\e548"; } + +.fa-folder-image::before { + content: "\e18a"; } + +.fa-calendar-pen::before { + content: "\f333"; } + +.fa-calendar-edit::before { + content: "\f333"; } + +.fa-road-bridge::before { + content: "\e563"; } + +.fa-face-smile-tear::before { + content: "\e393"; } + +.fa-message-plus::before { + content: "\f4a8"; } + +.fa-comment-alt-plus::before { + content: "\f4a8"; } + +.fa-location-arrow::before { + content: "\f124"; } + +.fa-c::before { + content: "\43"; } + +.fa-tablet-button::before { + content: "\f10a"; } + +.fa-person-dress-fairy::before { + content: "\e607"; } + +.fa-rectangle-history-circle-user::before { + content: "\e4a4"; } + +.fa-building-lock::before { + content: "\e4d6"; } + +.fa-chart-line-up::before { + content: "\e0e5"; } + +.fa-mailbox::before { + content: "\f813"; } + +.fa-sign-posts::before { + content: "\e625"; } + +.fa-truck-bolt::before { + content: "\e3d0"; } + +.fa-pizza-slice::before { + content: "\f818"; } + +.fa-money-bill-wave::before { + content: "\f53a"; } + +.fa-chart-area::before { + content: "\f1fe"; } + +.fa-area-chart::before { + content: "\f1fe"; } + +.fa-house-flag::before { + content: "\e50d"; } + +.fa-circle-three-quarters-stroke::before { + content: "\e5d4"; } + +.fa-person-circle-minus::before { + content: "\e540"; } + +.fa-scalpel::before { + content: "\f61d"; } + +.fa-ban::before { + content: "\f05e"; } + +.fa-cancel::before { + content: "\f05e"; } + +.fa-bell-exclamation::before { + content: "\f848"; } + +.fa-circle-bookmark::before { + content: "\e100"; } + +.fa-bookmark-circle::before { + content: "\e100"; } + +.fa-egg-fried::before { + content: "\f7fc"; } + +.fa-face-weary::before { + content: "\e3a1"; } + +.fa-uniform-martial-arts::before { + content: "\e3d1"; } + +.fa-camera-rotate::before { + content: "\e0d8"; } + +.fa-sun-dust::before { + content: "\f764"; } + +.fa-comment-text::before { + content: "\e14d"; } + +.fa-spray-can-sparkles::before { + content: "\f5d0"; } + +.fa-air-freshener::before { + content: "\f5d0"; } + +.fa-signal-bars::before { + content: "\f690"; } + +.fa-signal-alt::before { + content: "\f690"; } + +.fa-signal-alt-4::before { + content: "\f690"; } + +.fa-signal-bars-strong::before { + content: "\f690"; } + +.fa-diamond-exclamation::before { + content: "\e405"; } + +.fa-star::before { + content: "\f005"; } + +.fa-dial-min::before { + content: "\e161"; } + +.fa-repeat::before { + content: "\f363"; } + +.fa-cross::before { + content: "\f654"; } + +.fa-page-caret-down::before { + content: "\e429"; } + +.fa-file-caret-down::before { + content: "\e429"; } + +.fa-box::before { + content: "\f466"; } + +.fa-venus-mars::before { + content: "\f228"; } + +.fa-clock-seven-thirty::before { + content: "\e351"; } + +.fa-arrow-pointer::before { + content: "\f245"; } + +.fa-mouse-pointer::before { + content: "\f245"; } + +.fa-clock-four-thirty::before { + content: "\e34b"; } + +.fa-signal-bars-good::before { + content: "\f693"; } + +.fa-signal-alt-3::before { + content: "\f693"; } + +.fa-cactus::before { + content: "\f8a7"; } + +.fa-lightbulb-gear::before { + content: "\e5fd"; } + +.fa-maximize::before { + content: "\f31e"; } + +.fa-expand-arrows-alt::before { + content: "\f31e"; } + +.fa-charging-station::before { + content: "\f5e7"; } + +.fa-shapes::before { + content: "\f61f"; } + +.fa-triangle-circle-square::before { + content: "\f61f"; } + +.fa-plane-tail::before { + content: "\e22c"; } + +.fa-gauge-simple-max::before { + content: "\f62b"; } + +.fa-tachometer-fastest::before { + content: "\f62b"; } + +.fa-circle-u::before { + content: "\e127"; } + +.fa-shield-slash::before { + content: "\e24b"; } + +.fa-square-phone-hangup::before { + content: "\e27a"; } + +.fa-phone-square-down::before { + content: "\e27a"; } + +.fa-arrow-up-left::before { + content: "\e09d"; } + +.fa-transporter-1::before { + content: "\e043"; } + +.fa-peanuts::before { + content: "\e431"; } + +.fa-shuffle::before { + content: "\f074"; } + +.fa-random::before { + content: "\f074"; } + +.fa-person-running::before { + content: "\f70c"; } + +.fa-running::before { + content: "\f70c"; } + +.fa-mobile-retro::before { + content: "\e527"; } + +.fa-grip-lines-vertical::before { + content: "\f7a5"; } + +.fa-bin-bottles-recycle::before { + content: "\e5f6"; } + +.fa-arrow-up-from-square::before { + content: "\e09c"; } + +.fa-file-dashed-line::before { + content: "\f877"; } + +.fa-page-break::before { + content: "\f877"; } + +.fa-bracket-curly-right::before { + content: "\7d"; } + +.fa-spider::before { + content: "\f717"; } + +.fa-clock-three::before { + content: "\e356"; } + +.fa-hands-bound::before { + content: "\e4f9"; } + +.fa-scalpel-line-dashed::before { + content: "\f61e"; } + +.fa-scalpel-path::before { + content: "\f61e"; } + +.fa-file-invoice-dollar::before { + content: "\f571"; } + +.fa-pipe-smoking::before { + content: "\e3c4"; } + +.fa-face-astonished::before { + content: "\e36b"; } + +.fa-window::before { + content: "\f40e"; } + +.fa-plane-circle-exclamation::before { + content: "\e556"; } + +.fa-ear::before { + content: "\f5f0"; } + +.fa-file-lock::before { + content: "\e3a6"; } + +.fa-diagram-venn::before { + content: "\e15a"; } + +.fa-arrow-down-from-bracket::before { + content: "\e667"; } + +.fa-x-ray::before { + content: "\f497"; } + +.fa-goal-net::before { + content: "\e3ab"; } + +.fa-coffin-cross::before { + content: "\e051"; } + +.fa-spell-check::before { + content: "\f891"; } + +.fa-location-xmark::before { + content: "\f60e"; } + +.fa-map-marker-times::before { + content: "\f60e"; } + +.fa-map-marker-xmark::before { + content: "\f60e"; } + +.fa-circle-quarter-stroke::before { + content: "\e5d3"; } + +.fa-lasso::before { + content: "\f8c8"; } + +.fa-slash::before { + content: "\f715"; } + +.fa-person-to-portal::before { + content: "\e022"; } + +.fa-portal-enter::before { + content: "\e022"; } + +.fa-calendar-star::before { + content: "\f736"; } + +.fa-computer-mouse::before { + content: "\f8cc"; } + +.fa-mouse::before { + content: "\f8cc"; } + +.fa-arrow-right-to-bracket::before { + content: "\f090"; } + +.fa-sign-in::before { + content: "\f090"; } + +.fa-pegasus::before { + content: "\f703"; } + +.fa-files-medical::before { + content: "\f7fd"; } + +.fa-cannon::before { + content: "\e642"; } + +.fa-nfc-lock::before { + content: "\e1f8"; } + +.fa-person-ski-lift::before { + content: "\f7c8"; } + +.fa-ski-lift::before { + content: "\f7c8"; } + +.fa-square-6::before { + content: "\e25b"; } + +.fa-shop-slash::before { + content: "\e070"; } + +.fa-store-alt-slash::before { + content: "\e070"; } + +.fa-wind-turbine::before { + content: "\f89b"; } + +.fa-sliders-simple::before { + content: "\e253"; } + +.fa-grid-round::before { + content: "\e5da"; } + +.fa-badge-sheriff::before { + content: "\f8a2"; } + +.fa-server::before { + content: "\f233"; } + +.fa-virus-covid-slash::before { + content: "\e4a9"; } + +.fa-intersection::before { + content: "\f668"; } + +.fa-shop-lock::before { + content: "\e4a5"; } + +.fa-family::before { + content: "\e300"; } + +.fa-hourglass-start::before { + content: "\f251"; } + +.fa-hourglass-1::before { + content: "\f251"; } + +.fa-user-hair-buns::before { + content: "\e3d3"; } + +.fa-blender-phone::before { + content: "\f6b6"; } + +.fa-hourglass-clock::before { + content: "\e41b"; } + +.fa-person-seat-reclined::before { + content: "\e21f"; } + +.fa-paper-plane-top::before { + content: "\e20a"; } + +.fa-paper-plane-alt::before { + content: "\e20a"; } + +.fa-send::before { + content: "\e20a"; } + +.fa-message-arrow-up::before { + content: "\e1dc"; } + +.fa-comment-alt-arrow-up::before { + content: "\e1dc"; } + +.fa-lightbulb-exclamation::before { + content: "\f671"; } + +.fa-layer-minus::before { + content: "\f5fe"; } + +.fa-layer-group-minus::before { + content: "\f5fe"; } + +.fa-chart-pie-simple-circle-currency::before { + content: "\e604"; } + +.fa-circle-e::before { + content: "\e109"; } + +.fa-building-wheat::before { + content: "\e4db"; } + +.fa-gauge-max::before { + content: "\f626"; } + +.fa-tachometer-alt-fastest::before { + content: "\f626"; } + +.fa-person-breastfeeding::before { + content: "\e53a"; } + +.fa-apostrophe::before { + content: "\27"; } + +.fa-file-png::before { + content: "\e666"; } + +.fa-fire-hydrant::before { + content: "\e17f"; } + +.fa-right-to-bracket::before { + content: "\f2f6"; } + +.fa-sign-in-alt::before { + content: "\f2f6"; } + +.fa-video-plus::before { + content: "\f4e1"; } + +.fa-square-right::before { + content: "\f352"; } + +.fa-arrow-alt-square-right::before { + content: "\f352"; } + +.fa-comment-smile::before { + content: "\f4b4"; } + +.fa-venus::before { + content: "\f221"; } + +.fa-passport::before { + content: "\f5ab"; } + +.fa-inbox-in::before { + content: "\f310"; } + +.fa-inbox-arrow-down::before { + content: "\f310"; } + +.fa-heart-pulse::before { + content: "\f21e"; } + +.fa-heartbeat::before { + content: "\f21e"; } + +.fa-circle-8::before { + content: "\e0f5"; } + +.fa-clouds-moon::before { + content: "\f745"; } + +.fa-clock-ten-thirty::before { + content: "\e355"; } + +.fa-people-carry-box::before { + content: "\f4ce"; } + +.fa-people-carry::before { + content: "\f4ce"; } + +.fa-folder-user::before { + content: "\e18e"; } + +.fa-trash-can-xmark::before { + content: "\e2ae"; } + +.fa-temperature-high::before { + content: "\f769"; } + +.fa-microchip::before { + content: "\f2db"; } + +.fa-left-long-to-line::before { + content: "\e41e"; } + +.fa-crown::before { + content: "\f521"; } + +.fa-weight-hanging::before { + content: "\f5cd"; } + +.fa-xmarks-lines::before { + content: "\e59a"; } + +.fa-file-prescription::before { + content: "\f572"; } + +.fa-table-cells-lock::before { + content: "\e679"; } + +.fa-calendar-range::before { + content: "\e0d6"; } + +.fa-flower-daffodil::before { + content: "\f800"; } + +.fa-hand-back-point-up::before { + content: "\e1a2"; } + +.fa-weight-scale::before { + content: "\f496"; } + +.fa-weight::before { + content: "\f496"; } + +.fa-arrow-up-to-arc::before { + content: "\e617"; } + +.fa-star-exclamation::before { + content: "\f2f3"; } + +.fa-books::before { + content: "\f5db"; } + +.fa-user-group::before { + content: "\f500"; } + +.fa-user-friends::before { + content: "\f500"; } + +.fa-arrow-up-a-z::before { + content: "\f15e"; } + +.fa-sort-alpha-up::before { + content: "\f15e"; } + +.fa-layer-plus::before { + content: "\f5ff"; } + +.fa-layer-group-plus::before { + content: "\f5ff"; } + +.fa-play-pause::before { + content: "\e22f"; } + +.fa-block-question::before { + content: "\e3dd"; } + +.fa-snooze::before { + content: "\f880"; } + +.fa-zzz::before { + content: "\f880"; } + +.fa-scanner-image::before { + content: "\f8f3"; } + +.fa-tv-retro::before { + content: "\f401"; } + +.fa-square-t::before { + content: "\e280"; } + +.fa-farm::before { + content: "\f864"; } + +.fa-barn-silo::before { + content: "\f864"; } + +.fa-chess-knight::before { + content: "\f441"; } + +.fa-bars-sort::before { + content: "\e0ae"; } + +.fa-pallet-boxes::before { + content: "\f483"; } + +.fa-palette-boxes::before { + content: "\f483"; } + +.fa-pallet-alt::before { + content: "\f483"; } + +.fa-face-laugh-squint::before { + content: "\f59b"; } + +.fa-laugh-squint::before { + content: "\f59b"; } + +.fa-code-simple::before { + content: "\e13d"; } + +.fa-bolt-slash::before { + content: "\e0b8"; } + +.fa-panel-fire::before { + content: "\e42f"; } + +.fa-binary-circle-check::before { + content: "\e33c"; } + +.fa-comment-minus::before { + content: "\f4b1"; } + +.fa-burrito::before { + content: "\f7ed"; } + +.fa-violin::before { + content: "\f8ed"; } + +.fa-objects-column::before { + content: "\e3c1"; } + +.fa-square-chevron-down::before { + content: "\f329"; } + +.fa-chevron-square-down::before { + content: "\f329"; } + +.fa-comment-plus::before { + content: "\f4b2"; } + +.fa-triangle-instrument::before { + content: "\f8e2"; } + +.fa-triangle-music::before { + content: "\f8e2"; } + +.fa-wheelchair::before { + content: "\f193"; } + +.fa-user-pilot-tie::before { + content: "\e2c1"; } + +.fa-piano-keyboard::before { + content: "\f8d5"; } + +.fa-bed-empty::before { + content: "\f8f9"; } + +.fa-circle-arrow-up::before { + content: "\f0aa"; } + +.fa-arrow-circle-up::before { + content: "\f0aa"; } + +.fa-toggle-on::before { + content: "\f205"; } + +.fa-rectangle-vertical::before { + content: "\f2fb"; } + +.fa-rectangle-portrait::before { + content: "\f2fb"; } + +.fa-person-walking::before { + content: "\f554"; } + +.fa-walking::before { + content: "\f554"; } + +.fa-l::before { + content: "\4c"; } + +.fa-signal-stream::before { + content: "\f8dd"; } + +.fa-down-to-bracket::before { + content: "\e4e7"; } + +.fa-circle-z::before { + content: "\e130"; } + +.fa-stars::before { + content: "\f762"; } + +.fa-fire::before { + content: "\f06d"; } + +.fa-bed-pulse::before { + content: "\f487"; } + +.fa-procedures::before { + content: "\f487"; } + +.fa-house-day::before { + content: "\e00e"; } + +.fa-shuttle-space::before { + content: "\f197"; } + +.fa-space-shuttle::before { + content: "\f197"; } + +.fa-shirt-long-sleeve::before { + content: "\e3c7"; } + +.fa-chart-pie-simple::before { + content: "\f64e"; } + +.fa-chart-pie-alt::before { + content: "\f64e"; } + +.fa-face-laugh::before { + content: "\f599"; } + +.fa-laugh::before { + content: "\f599"; } + +.fa-folder-open::before { + content: "\f07c"; } + +.fa-album-collection-circle-user::before { + content: "\e48f"; } + +.fa-candy::before { + content: "\e3e7"; } + +.fa-bowl-hot::before { + content: "\f823"; } + +.fa-soup::before { + content: "\f823"; } + +.fa-flatbread::before { + content: "\e40b"; } + +.fa-heart-circle-plus::before { + content: "\e500"; } + +.fa-code-fork::before { + content: "\e13b"; } + +.fa-city::before { + content: "\f64f"; } + +.fa-signal-bars-weak::before { + content: "\f691"; } + +.fa-signal-alt-1::before { + content: "\f691"; } + +.fa-microphone-lines::before { + content: "\f3c9"; } + +.fa-microphone-alt::before { + content: "\f3c9"; } + +.fa-clock-twelve::before { + content: "\e358"; } + +.fa-pepper-hot::before { + content: "\f816"; } + +.fa-citrus-slice::before { + content: "\e2f5"; } + +.fa-sheep::before { + content: "\f711"; } + +.fa-unlock::before { + content: "\f09c"; } + +.fa-colon-sign::before { + content: "\e140"; } + +.fa-headset::before { + content: "\f590"; } + +.fa-badger-honey::before { + content: "\f6b4"; } + +.fa-h4::before { + content: "\f86a"; } + +.fa-store-slash::before { + content: "\e071"; } + +.fa-road-circle-xmark::before { + content: "\e566"; } + +.fa-signal-slash::before { + content: "\f695"; } + +.fa-user-minus::before { + content: "\f503"; } + +.fa-mars-stroke-up::before { + content: "\f22a"; } + +.fa-mars-stroke-v::before { + content: "\f22a"; } + +.fa-champagne-glasses::before { + content: "\f79f"; } + +.fa-glass-cheers::before { + content: "\f79f"; } + +.fa-taco::before { + content: "\f826"; } + +.fa-hexagon-plus::before { + content: "\f300"; } + +.fa-plus-hexagon::before { + content: "\f300"; } + +.fa-clipboard::before { + content: "\f328"; } + +.fa-house-circle-exclamation::before { + content: "\e50a"; } + +.fa-file-arrow-up::before { + content: "\f574"; } + +.fa-file-upload::before { + content: "\f574"; } + +.fa-wifi::before { + content: "\f1eb"; } + +.fa-wifi-3::before { + content: "\f1eb"; } + +.fa-wifi-strong::before { + content: "\f1eb"; } + +.fa-messages::before { + content: "\f4b6"; } + +.fa-comments-alt::before { + content: "\f4b6"; } + +.fa-bath::before { + content: "\f2cd"; } + +.fa-bathtub::before { + content: "\f2cd"; } + +.fa-umbrella-simple::before { + content: "\e2bc"; } + +.fa-umbrella-alt::before { + content: "\e2bc"; } + +.fa-rectangle-history-circle-plus::before { + content: "\e4a3"; } + +.fa-underline::before { + content: "\f0cd"; } + +.fa-prescription-bottle-pill::before { + content: "\e5c0"; } + +.fa-user-pen::before { + content: "\f4ff"; } + +.fa-user-edit::before { + content: "\f4ff"; } + +.fa-binary-slash::before { + content: "\e33e"; } + +.fa-square-o::before { + content: "\e278"; } + +.fa-caduceus::before { + content: "\e681"; } + +.fa-signature::before { + content: "\f5b7"; } + +.fa-stroopwafel::before { + content: "\f551"; } + +.fa-bold::before { + content: "\f032"; } + +.fa-anchor-lock::before { + content: "\e4ad"; } + +.fa-building-ngo::before { + content: "\e4d7"; } + +.fa-transporter-3::before { + content: "\e045"; } + +.fa-engine-warning::before { + content: "\f5f2"; } + +.fa-engine-exclamation::before { + content: "\f5f2"; } + +.fa-circle-down-right::before { + content: "\e108"; } + +.fa-square-k::before { + content: "\e274"; } + +.fa-manat-sign::before { + content: "\e1d5"; } + +.fa-money-check-pen::before { + content: "\f872"; } + +.fa-money-check-edit::before { + content: "\f872"; } + +.fa-not-equal::before { + content: "\f53e"; } + +.fa-border-top-left::before { + content: "\f853"; } + +.fa-border-style::before { + content: "\f853"; } + +.fa-map-location-dot::before { + content: "\f5a0"; } + +.fa-map-marked-alt::before { + content: "\f5a0"; } + +.fa-tilde::before { + content: "\7e"; } + +.fa-jedi::before { + content: "\f669"; } + +.fa-square-poll-vertical::before { + content: "\f681"; } + +.fa-poll::before { + content: "\f681"; } + +.fa-arrow-down-square-triangle::before { + content: "\f889"; } + +.fa-sort-shapes-down-alt::before { + content: "\f889"; } + +.fa-mug-hot::before { + content: "\f7b6"; } + +.fa-dog-leashed::before { + content: "\f6d4"; } + +.fa-car-battery::before { + content: "\f5df"; } + +.fa-battery-car::before { + content: "\f5df"; } + +.fa-face-downcast-sweat::before { + content: "\e371"; } + +.fa-mailbox-flag-up::before { + content: "\e5bb"; } + +.fa-memo-circle-info::before { + content: "\e49a"; } + +.fa-gift::before { + content: "\f06b"; } + +.fa-dice-two::before { + content: "\f528"; } + +.fa-volume::before { + content: "\f6a8"; } + +.fa-volume-medium::before { + content: "\f6a8"; } + +.fa-transporter-5::before { + content: "\e2a6"; } + +.fa-gauge-circle-bolt::before { + content: "\e496"; } + +.fa-coin-front::before { + content: "\e3fc"; } + +.fa-file-slash::before { + content: "\e3a7"; } + +.fa-message-arrow-up-right::before { + content: "\e1dd"; } + +.fa-treasure-chest::before { + content: "\f723"; } + +.fa-chess-queen::before { + content: "\f445"; } + +.fa-paintbrush-fine::before { + content: "\f5a9"; } + +.fa-paint-brush-alt::before { + content: "\f5a9"; } + +.fa-paint-brush-fine::before { + content: "\f5a9"; } + +.fa-paintbrush-alt::before { + content: "\f5a9"; } + +.fa-glasses::before { + content: "\f530"; } + +.fa-hood-cloak::before { + content: "\f6ef"; } + +.fa-square-quote::before { + content: "\e329"; } + +.fa-up-left::before { + content: "\e2bd"; } + +.fa-bring-front::before { + content: "\f857"; } + +.fa-chess-board::before { + content: "\f43c"; } + +.fa-burger-cheese::before { + content: "\f7f1"; } + +.fa-cheeseburger::before { + content: "\f7f1"; } + +.fa-building-circle-check::before { + content: "\e4d2"; } + +.fa-repeat-1::before { + content: "\f365"; } + +.fa-arrow-down-to-line::before { + content: "\f33d"; } + +.fa-arrow-to-bottom::before { + content: "\f33d"; } + +.fa-grid-5::before { + content: "\e199"; } + +.fa-swap-arrows::before { + content: "\e60a"; } + +.fa-right-long-to-line::before { + content: "\e444"; } + +.fa-person-chalkboard::before { + content: "\e53d"; } + +.fa-mars-stroke-right::before { + content: "\f22b"; } + +.fa-mars-stroke-h::before { + content: "\f22b"; } + +.fa-hand-back-fist::before { + content: "\f255"; } + +.fa-hand-rock::before { + content: "\f255"; } + +.fa-grid-round-5::before { + content: "\e5de"; } + +.fa-tally::before { + content: "\f69c"; } + +.fa-tally-5::before { + content: "\f69c"; } + +.fa-square-caret-up::before { + content: "\f151"; } + +.fa-caret-square-up::before { + content: "\f151"; } + +.fa-cloud-showers-water::before { + content: "\e4e4"; } + +.fa-chart-bar::before { + content: "\f080"; } + +.fa-bar-chart::before { + content: "\f080"; } + +.fa-hands-bubbles::before { + content: "\e05e"; } + +.fa-hands-wash::before { + content: "\e05e"; } + +.fa-less-than-equal::before { + content: "\f537"; } + +.fa-train::before { + content: "\f238"; } + +.fa-up-from-dotted-line::before { + content: "\e456"; } + +.fa-eye-low-vision::before { + content: "\f2a8"; } + +.fa-low-vision::before { + content: "\f2a8"; } + +.fa-traffic-light-go::before { + content: "\f638"; } + +.fa-face-exhaling::before { + content: "\e480"; } + +.fa-sensor-fire::before { + content: "\e02a"; } + +.fa-user-unlock::before { + content: "\e058"; } + +.fa-hexagon-divide::before { + content: "\e1ad"; } + +.fa-00::before { + content: "\e467"; } + +.fa-crow::before { + content: "\f520"; } + +.fa-cassette-betamax::before { + content: "\f8a4"; } + +.fa-betamax::before { + content: "\f8a4"; } + +.fa-sailboat::before { + content: "\e445"; } + +.fa-window-restore::before { + content: "\f2d2"; } + +.fa-nfc-magnifying-glass::before { + content: "\e1f9"; } + +.fa-file-binary::before { + content: "\e175"; } + +.fa-circle-v::before { + content: "\e12a"; } + +.fa-square-plus::before { + content: "\f0fe"; } + +.fa-plus-square::before { + content: "\f0fe"; } + +.fa-bowl-scoops::before { + content: "\e3df"; } + +.fa-mistletoe::before { + content: "\f7b4"; } + +.fa-custard::before { + content: "\e403"; } + +.fa-lacrosse-stick::before { + content: "\e3b5"; } + +.fa-hockey-mask::before { + content: "\f6ee"; } + +.fa-sunrise::before { + content: "\f766"; } + +.fa-subtitles::before { + content: "\e60f"; } + +.fa-panel-ews::before { + content: "\e42e"; } + +.fa-torii-gate::before { + content: "\f6a1"; } + +.fa-cloud-exclamation::before { + content: "\e491"; } + +.fa-message-lines::before { + content: "\f4a6"; } + +.fa-comment-alt-lines::before { + content: "\f4a6"; } + +.fa-frog::before { + content: "\f52e"; } + +.fa-bucket::before { + content: "\e4cf"; } + +.fa-floppy-disk-pen::before { + content: "\e182"; } + +.fa-image::before { + content: "\f03e"; } + +.fa-window-frame::before { + content: "\e04f"; } + +.fa-microphone::before { + content: "\f130"; } + +.fa-cow::before { + content: "\f6c8"; } + +.fa-file-zip::before { + content: "\e5ee"; } + +.fa-square-ring::before { + content: "\e44f"; } + +.fa-down-from-line::before { + content: "\f349"; } + +.fa-arrow-alt-from-top::before { + content: "\f349"; } + +.fa-caret-up::before { + content: "\f0d8"; } + +.fa-shield-xmark::before { + content: "\e24c"; } + +.fa-shield-times::before { + content: "\e24c"; } + +.fa-screwdriver::before { + content: "\f54a"; } + +.fa-circle-sort-down::before { + content: "\e031"; } + +.fa-sort-circle-down::before { + content: "\e031"; } + +.fa-folder-closed::before { + content: "\e185"; } + +.fa-house-tsunami::before { + content: "\e515"; } + +.fa-square-nfi::before { + content: "\e576"; } + +.fa-forklift::before { + content: "\f47a"; } + +.fa-arrow-up-from-ground-water::before { + content: "\e4b5"; } + +.fa-bracket-square-right::before { + content: "\5d"; } + +.fa-martini-glass::before { + content: "\f57b"; } + +.fa-glass-martini-alt::before { + content: "\f57b"; } + +.fa-rotate-left::before { + content: "\f2ea"; } + +.fa-rotate-back::before { + content: "\f2ea"; } + +.fa-rotate-backward::before { + content: "\f2ea"; } + +.fa-undo-alt::before { + content: "\f2ea"; } + +.fa-table-columns::before { + content: "\f0db"; } + +.fa-columns::before { + content: "\f0db"; } + +.fa-square-a::before { + content: "\e25f"; } + +.fa-tick::before { + content: "\e32f"; } + +.fa-lemon::before { + content: "\f094"; } + +.fa-head-side-mask::before { + content: "\e063"; } + +.fa-handshake::before { + content: "\f2b5"; } + +.fa-gem::before { + content: "\f3a5"; } + +.fa-dolly::before { + content: "\f472"; } + +.fa-dolly-box::before { + content: "\f472"; } + +.fa-smoking::before { + content: "\f48d"; } + +.fa-minimize::before { + content: "\f78c"; } + +.fa-compress-arrows-alt::before { + content: "\f78c"; } + +.fa-refrigerator::before { + content: "\e026"; } + +.fa-monument::before { + content: "\f5a6"; } + +.fa-octagon-xmark::before { + content: "\f2f0"; } + +.fa-times-octagon::before { + content: "\f2f0"; } + +.fa-xmark-octagon::before { + content: "\f2f0"; } + +.fa-align-slash::before { + content: "\f846"; } + +.fa-snowplow::before { + content: "\f7d2"; } + +.fa-angles-right::before { + content: "\f101"; } + +.fa-angle-double-right::before { + content: "\f101"; } + +.fa-truck-ramp-couch::before { + content: "\f4dd"; } + +.fa-truck-couch::before { + content: "\f4dd"; } + +.fa-cannabis::before { + content: "\f55f"; } + +.fa-circle-play::before { + content: "\f144"; } + +.fa-play-circle::before { + content: "\f144"; } + +.fa-arrow-up-right-and-arrow-down-left-from-center::before { + content: "\e0a0"; } + +.fa-location-arrow-up::before { + content: "\e63a"; } + +.fa-tablets::before { + content: "\f490"; } + +.fa-360-degrees::before { + content: "\e2dc"; } + +.fa-ethernet::before { + content: "\f796"; } + +.fa-euro-sign::before { + content: "\f153"; } + +.fa-eur::before { + content: "\f153"; } + +.fa-euro::before { + content: "\f153"; } + +.fa-chair::before { + content: "\f6c0"; } + +.fa-circle-check::before { + content: "\f058"; } + +.fa-check-circle::before { + content: "\f058"; } + +.fa-square-dashed-circle-plus::before { + content: "\e5c2"; } + +.fa-hand-holding-circle-dollar::before { + content: "\e621"; } + +.fa-money-simple-from-bracket::before { + content: "\e313"; } + +.fa-bat::before { + content: "\f6b5"; } + +.fa-circle-stop::before { + content: "\f28d"; } + +.fa-stop-circle::before { + content: "\f28d"; } + +.fa-head-side-headphones::before { + content: "\f8c2"; } + +.fa-phone-rotary::before { + content: "\f8d3"; } + +.fa-arrow-up-to-bracket::before { + content: "\e66a"; } + +.fa-compass-drafting::before { + content: "\f568"; } + +.fa-drafting-compass::before { + content: "\f568"; } + +.fa-plate-wheat::before { + content: "\e55a"; } + +.fa-calendar-circle-minus::before { + content: "\e46f"; } + +.fa-chopsticks::before { + content: "\e3f7"; } + +.fa-car-wrench::before { + content: "\f5e3"; } + +.fa-car-mechanic::before { + content: "\f5e3"; } + +.fa-icicles::before { + content: "\f7ad"; } + +.fa-person-shelter::before { + content: "\e54f"; } + +.fa-neuter::before { + content: "\f22c"; } + +.fa-id-badge::before { + content: "\f2c1"; } + +.fa-kazoo::before { + content: "\f8c7"; } + +.fa-marker::before { + content: "\f5a1"; } + +.fa-bin-bottles::before { + content: "\e5f5"; } + +.fa-face-laugh-beam::before { + content: "\f59a"; } + +.fa-laugh-beam::before { + content: "\f59a"; } + +.fa-square-arrow-down-left::before { + content: "\e261"; } + +.fa-battery-bolt::before { + content: "\f376"; } + +.fa-tree-large::before { + content: "\f7dd"; } + +.fa-helicopter-symbol::before { + content: "\e502"; } + +.fa-aperture::before { + content: "\e2df"; } + +.fa-universal-access::before { + content: "\f29a"; } + +.fa-gear-complex::before { + content: "\e5e9"; } + +.fa-file-magnifying-glass::before { + content: "\f865"; } + +.fa-file-search::before { + content: "\f865"; } + +.fa-up-right::before { + content: "\e2be"; } + +.fa-circle-chevron-up::before { + content: "\f139"; } + +.fa-chevron-circle-up::before { + content: "\f139"; } + +.fa-user-police::before { + content: "\e333"; } + +.fa-lari-sign::before { + content: "\e1c8"; } + +.fa-volcano::before { + content: "\f770"; } + +.fa-teddy-bear::before { + content: "\e3cf"; } + +.fa-stocking::before { + content: "\f7d5"; } + +.fa-person-walking-dashed-line-arrow-right::before { + content: "\e553"; } + +.fa-image-slash::before { + content: "\e1b7"; } + +.fa-mask-snorkel::before { + content: "\e3b7"; } + +.fa-smoke::before { + content: "\f760"; } + +.fa-sterling-sign::before { + content: "\f154"; } + +.fa-gbp::before { + content: "\f154"; } + +.fa-pound-sign::before { + content: "\f154"; } + +.fa-battery-exclamation::before { + content: "\e0b0"; } + +.fa-viruses::before { + content: "\e076"; } + +.fa-square-person-confined::before { + content: "\e577"; } + +.fa-user-tie::before { + content: "\f508"; } + +.fa-up-to-bracket::before { + content: "\e66e"; } + +.fa-arrow-down-long::before { + content: "\f175"; } + +.fa-long-arrow-down::before { + content: "\f175"; } + +.fa-tent-arrow-down-to-line::before { + content: "\e57e"; } + +.fa-certificate::before { + content: "\f0a3"; } + +.fa-crystal-ball::before { + content: "\e362"; } + +.fa-reply-all::before { + content: "\f122"; } + +.fa-mail-reply-all::before { + content: "\f122"; } + +.fa-suitcase::before { + content: "\f0f2"; } + +.fa-person-skating::before { + content: "\f7c5"; } + +.fa-skating::before { + content: "\f7c5"; } + +.fa-star-shooting::before { + content: "\e036"; } + +.fa-binary-lock::before { + content: "\e33d"; } + +.fa-filter-circle-dollar::before { + content: "\f662"; } + +.fa-funnel-dollar::before { + content: "\f662"; } + +.fa-camera-retro::before { + content: "\f083"; } + +.fa-circle-arrow-down::before { + content: "\f0ab"; } + +.fa-arrow-circle-down::before { + content: "\f0ab"; } + +.fa-comment-pen::before { + content: "\f4ae"; } + +.fa-comment-edit::before { + content: "\f4ae"; } + +.fa-file-import::before { + content: "\f56f"; } + +.fa-arrow-right-to-file::before { + content: "\f56f"; } + +.fa-banjo::before { + content: "\f8a3"; } + +.fa-square-arrow-up-right::before { + content: "\f14c"; } + +.fa-external-link-square::before { + content: "\f14c"; } + +.fa-light-emergency-on::before { + content: "\e420"; } + +.fa-kerning::before { + content: "\f86f"; } + +.fa-box-open::before { + content: "\f49e"; } + +.fa-square-f::before { + content: "\e270"; } + +.fa-scroll::before { + content: "\f70e"; } + +.fa-spa::before { + content: "\f5bb"; } + +.fa-arrow-left-from-line::before { + content: "\f344"; } + +.fa-arrow-from-right::before { + content: "\f344"; } + +.fa-strawberry::before { + content: "\e32b"; } + +.fa-location-pin-lock::before { + content: "\e51f"; } + +.fa-pause::before { + content: "\f04c"; } + +.fa-clock-eight-thirty::before { + content: "\e346"; } + +.fa-plane-engines::before { + content: "\f3de"; } + +.fa-plane-alt::before { + content: "\f3de"; } + +.fa-hill-avalanche::before { + content: "\e507"; } + +.fa-temperature-empty::before { + content: "\f2cb"; } + +.fa-temperature-0::before { + content: "\f2cb"; } + +.fa-thermometer-0::before { + content: "\f2cb"; } + +.fa-thermometer-empty::before { + content: "\f2cb"; } + +.fa-bomb::before { + content: "\f1e2"; } + +.fa-gauge-low::before { + content: "\f627"; } + +.fa-tachometer-alt-slow::before { + content: "\f627"; } + +.fa-registered::before { + content: "\f25d"; } + +.fa-trash-can-plus::before { + content: "\e2ac"; } + +.fa-address-card::before { + content: "\f2bb"; } + +.fa-contact-card::before { + content: "\f2bb"; } + +.fa-vcard::before { + content: "\f2bb"; } + +.fa-scale-unbalanced-flip::before { + content: "\f516"; } + +.fa-balance-scale-right::before { + content: "\f516"; } + +.fa-globe-snow::before { + content: "\f7a3"; } + +.fa-subscript::before { + content: "\f12c"; } + +.fa-diamond-turn-right::before { + content: "\f5eb"; } + +.fa-directions::before { + content: "\f5eb"; } + +.fa-integral::before { + content: "\f667"; } + +.fa-burst::before { + content: "\e4dc"; } + +.fa-house-laptop::before { + content: "\e066"; } + +.fa-laptop-house::before { + content: "\e066"; } + +.fa-face-tired::before { + content: "\f5c8"; } + +.fa-tired::before { + content: "\f5c8"; } + +.fa-money-bills::before { + content: "\e1f3"; } + +.fa-blinds-raised::before { + content: "\f8fd"; } + +.fa-smog::before { + content: "\f75f"; } + +.fa-ufo-beam::before { + content: "\e048"; } + +.fa-circle-caret-up::before { + content: "\f331"; } + +.fa-caret-circle-up::before { + content: "\f331"; } + +.fa-user-vneck-hair-long::before { + content: "\e463"; } + +.fa-square-a-lock::before { + content: "\e44d"; } + +.fa-crutch::before { + content: "\f7f7"; } + +.fa-gas-pump-slash::before { + content: "\f5f4"; } + +.fa-cloud-arrow-up::before { + content: "\f0ee"; } + +.fa-cloud-upload::before { + content: "\f0ee"; } + +.fa-cloud-upload-alt::before { + content: "\f0ee"; } + +.fa-palette::before { + content: "\f53f"; } + +.fa-transporter-4::before { + content: "\e2a5"; } + +.fa-chart-mixed-up-circle-currency::before { + content: "\e5d8"; } + +.fa-objects-align-right::before { + content: "\e3bf"; } + +.fa-arrows-turn-right::before { + content: "\e4c0"; } + +.fa-vest::before { + content: "\e085"; } + +.fa-pig::before { + content: "\f706"; } + +.fa-inbox-full::before { + content: "\e1ba"; } + +.fa-circle-envelope::before { + content: "\e10c"; } + +.fa-envelope-circle::before { + content: "\e10c"; } + +.fa-triangle-person-digging::before { + content: "\f85d"; } + +.fa-construction::before { + content: "\f85d"; } + +.fa-ferry::before { + content: "\e4ea"; } + +.fa-bullseye-arrow::before { + content: "\f648"; } + +.fa-arrows-down-to-people::before { + content: "\e4b9"; } + +.fa-seedling::before { + content: "\f4d8"; } + +.fa-sprout::before { + content: "\f4d8"; } + +.fa-clock-seven::before { + content: "\e350"; } + +.fa-left-right::before { + content: "\f337"; } + +.fa-arrows-alt-h::before { + content: "\f337"; } + +.fa-boxes-packing::before { + content: "\e4c7"; } + +.fa-circle-arrow-left::before { + content: "\f0a8"; } + +.fa-arrow-circle-left::before { + content: "\f0a8"; } + +.fa-flashlight::before { + content: "\f8b8"; } + +.fa-file-jpg::before { + content: "\e646"; } + +.fa-group-arrows-rotate::before { + content: "\e4f6"; } + +.fa-bowl-food::before { + content: "\e4c6"; } + +.fa-square-9::before { + content: "\e25e"; } + +.fa-candy-cane::before { + content: "\f786"; } + +.fa-arrow-down-wide-short::before { + content: "\f160"; } + +.fa-sort-amount-asc::before { + content: "\f160"; } + +.fa-sort-amount-down::before { + content: "\f160"; } + +.fa-square-dollar::before { + content: "\f2e9"; } + +.fa-dollar-square::before { + content: "\f2e9"; } + +.fa-usd-square::before { + content: "\f2e9"; } + +.fa-phone-arrow-right::before { + content: "\e5be"; } + +.fa-hand-holding-seedling::before { + content: "\f4bf"; } + +.fa-message-check::before { + content: "\f4a2"; } + +.fa-comment-alt-check::before { + content: "\f4a2"; } + +.fa-cloud-bolt::before { + content: "\f76c"; } + +.fa-thunderstorm::before { + content: "\f76c"; } + +.fa-chart-line-up-down::before { + content: "\e5d7"; } + +.fa-text-slash::before { + content: "\f87d"; } + +.fa-remove-format::before { + content: "\f87d"; } + +.fa-watch::before { + content: "\f2e1"; } + +.fa-circle-down-left::before { + content: "\e107"; } + +.fa-text::before { + content: "\f893"; } + +.fa-projector::before { + content: "\f8d6"; } + +.fa-face-smile-wink::before { + content: "\f4da"; } + +.fa-smile-wink::before { + content: "\f4da"; } + +.fa-tombstone-blank::before { + content: "\f721"; } + +.fa-tombstone-alt::before { + content: "\f721"; } + +.fa-chess-king-piece::before { + content: "\f440"; } + +.fa-chess-king-alt::before { + content: "\f440"; } + +.fa-circle-6::before { + content: "\e0f3"; } + +.fa-waves-sine::before { + content: "\e65d"; } + +.fa-left::before { + content: "\f355"; } + +.fa-arrow-alt-left::before { + content: "\f355"; } + +.fa-file-word::before { + content: "\f1c2"; } + +.fa-file-powerpoint::before { + content: "\f1c4"; } + +.fa-square-down::before { + content: "\f350"; } + +.fa-arrow-alt-square-down::before { + content: "\f350"; } + +.fa-objects-align-center-vertical::before { + content: "\e3bd"; } + +.fa-arrows-left-right::before { + content: "\f07e"; } + +.fa-arrows-h::before { + content: "\f07e"; } + +.fa-house-lock::before { + content: "\e510"; } + +.fa-cloud-arrow-down::before { + content: "\f0ed"; } + +.fa-cloud-download::before { + content: "\f0ed"; } + +.fa-cloud-download-alt::before { + content: "\f0ed"; } + +.fa-wreath::before { + content: "\f7e2"; } + +.fa-children::before { + content: "\e4e1"; } + +.fa-meter-droplet::before { + content: "\e1ea"; } + +.fa-chalkboard::before { + content: "\f51b"; } + +.fa-blackboard::before { + content: "\f51b"; } + +.fa-user-large-slash::before { + content: "\f4fa"; } + +.fa-user-alt-slash::before { + content: "\f4fa"; } + +.fa-signal-strong::before { + content: "\f68f"; } + +.fa-signal-4::before { + content: "\f68f"; } + +.fa-lollipop::before { + content: "\e424"; } + +.fa-lollypop::before { + content: "\e424"; } + +.fa-list-tree::before { + content: "\e1d2"; } + +.fa-envelope-open::before { + content: "\f2b6"; } + +.fa-draw-circle::before { + content: "\f5ed"; } + +.fa-cat-space::before { + content: "\e001"; } + +.fa-handshake-simple-slash::before { + content: "\e05f"; } + +.fa-handshake-alt-slash::before { + content: "\e05f"; } + +.fa-rabbit-running::before { + content: "\f709"; } + +.fa-rabbit-fast::before { + content: "\f709"; } + +.fa-memo-pad::before { + content: "\e1da"; } + +.fa-mattress-pillow::before { + content: "\e525"; } + +.fa-alarm-plus::before { + content: "\f844"; } + +.fa-alicorn::before { + content: "\f6b0"; } + +.fa-comment-question::before { + content: "\e14b"; } + +.fa-gingerbread-man::before { + content: "\f79d"; } + +.fa-guarani-sign::before { + content: "\e19a"; } + +.fa-burger-fries::before { + content: "\e0cd"; } + +.fa-mug-tea::before { + content: "\f875"; } + +.fa-border-top::before { + content: "\f855"; } + +.fa-arrows-rotate::before { + content: "\f021"; } + +.fa-refresh::before { + content: "\f021"; } + +.fa-sync::before { + content: "\f021"; } + +.fa-circle-book-open::before { + content: "\e0ff"; } + +.fa-book-circle::before { + content: "\e0ff"; } + +.fa-arrows-to-dotted-line::before { + content: "\e0a6"; } + +.fa-fire-extinguisher::before { + content: "\f134"; } + +.fa-magnifying-glass-arrows-rotate::before { + content: "\e65e"; } + +.fa-garage-open::before { + content: "\e00b"; } + +.fa-shelves-empty::before { + content: "\e246"; } + +.fa-cruzeiro-sign::before { + content: "\e152"; } + +.fa-watch-apple::before { + content: "\e2cb"; } + +.fa-watch-calculator::before { + content: "\f8f0"; } + +.fa-list-dropdown::before { + content: "\e1cf"; } + +.fa-cabinet-filing::before { + content: "\f64b"; } + +.fa-burger-soda::before { + content: "\f858"; } + +.fa-square-arrow-up::before { + content: "\f33c"; } + +.fa-arrow-square-up::before { + content: "\f33c"; } + +.fa-greater-than-equal::before { + content: "\f532"; } + +.fa-pallet-box::before { + content: "\e208"; } + +.fa-face-confounded::before { + content: "\e36c"; } + +.fa-shield-halved::before { + content: "\f3ed"; } + +.fa-shield-alt::before { + content: "\f3ed"; } + +.fa-truck-plow::before { + content: "\f7de"; } + +.fa-book-atlas::before { + content: "\f558"; } + +.fa-atlas::before { + content: "\f558"; } + +.fa-virus::before { + content: "\e074"; } + +.fa-grid-round-2::before { + content: "\e5db"; } + +.fa-comment-middle-top::before { + content: "\e14a"; } + +.fa-wave::before { + content: "\e65b"; } + +.fa-envelope-circle-check::before { + content: "\e4e8"; } + +.fa-layer-group::before { + content: "\f5fd"; } + +.fa-restroom-simple::before { + content: "\e23a"; } + +.fa-arrows-to-dot::before { + content: "\e4be"; } + +.fa-border-outer::before { + content: "\f851"; } + +.fa-hashtag-lock::before { + content: "\e415"; } + +.fa-clock-two-thirty::before { + content: "\e35b"; } + +.fa-archway::before { + content: "\f557"; } + +.fa-heart-circle-check::before { + content: "\e4fd"; } + +.fa-house-chimney-crack::before { + content: "\f6f1"; } + +.fa-house-damage::before { + content: "\f6f1"; } + +.fa-file-zipper::before { + content: "\f1c6"; } + +.fa-file-archive::before { + content: "\f1c6"; } + +.fa-ticket-perforated::before { + content: "\e63e"; } + +.fa-heart-half::before { + content: "\e1ab"; } + +.fa-comment-check::before { + content: "\f4ac"; } + +.fa-square::before { + content: "\f0c8"; } + +.fa-memo::before { + content: "\e1d8"; } + +.fa-martini-glass-empty::before { + content: "\f000"; } + +.fa-glass-martini::before { + content: "\f000"; } + +.fa-couch::before { + content: "\f4b8"; } + +.fa-cedi-sign::before { + content: "\e0df"; } + +.fa-italic::before { + content: "\f033"; } + +.fa-glass-citrus::before { + content: "\f869"; } + +.fa-calendar-lines-pen::before { + content: "\e472"; } + +.fa-table-cells-column-lock::before { + content: "\e678"; } + +.fa-church::before { + content: "\f51d"; } + +.fa-person-snowmobiling::before { + content: "\f7d1"; } + +.fa-snowmobile::before { + content: "\f7d1"; } + +.fa-face-hushed::before { + content: "\e37b"; } + +.fa-comments-dollar::before { + content: "\f653"; } + +.fa-tickets-simple::before { + content: "\e659"; } + +.fa-pickaxe::before { + content: "\e5bf"; } + +.fa-link-simple-slash::before { + content: "\e1ce"; } + +.fa-democrat::before { + content: "\f747"; } + +.fa-face-confused::before { + content: "\e36d"; } + +.fa-pinball::before { + content: "\e229"; } + +.fa-z::before { + content: "\5a"; } + +.fa-person-skiing::before { + content: "\f7c9"; } + +.fa-skiing::before { + content: "\f7c9"; } + +.fa-deer::before { + content: "\f78e"; } + +.fa-input-pipe::before { + content: "\e1be"; } + +.fa-road-lock::before { + content: "\e567"; } + +.fa-a::before { + content: "\41"; } + +.fa-bookmark-slash::before { + content: "\e0c2"; } + +.fa-temperature-arrow-down::before { + content: "\e03f"; } + +.fa-temperature-down::before { + content: "\e03f"; } + +.fa-mace::before { + content: "\f6f8"; } + +.fa-feather-pointed::before { + content: "\f56b"; } + +.fa-feather-alt::before { + content: "\f56b"; } + +.fa-sausage::before { + content: "\f820"; } + +.fa-trash-can-clock::before { + content: "\e2aa"; } + +.fa-p::before { + content: "\50"; } + +.fa-broom-wide::before { + content: "\e5d1"; } + +.fa-snowflake::before { + content: "\f2dc"; } + +.fa-stomach::before { + content: "\f623"; } + +.fa-newspaper::before { + content: "\f1ea"; } + +.fa-rectangle-ad::before { + content: "\f641"; } + +.fa-ad::before { + content: "\f641"; } + +.fa-guitar-electric::before { + content: "\f8be"; } + +.fa-arrow-turn-down-right::before { + content: "\e3d6"; } + +.fa-moon-cloud::before { + content: "\f754"; } + +.fa-bread-slice-butter::before { + content: "\e3e1"; } + +.fa-circle-arrow-right::before { + content: "\f0a9"; } + +.fa-arrow-circle-right::before { + content: "\f0a9"; } + +.fa-user-group-crown::before { + content: "\f6a5"; } + +.fa-users-crown::before { + content: "\f6a5"; } + +.fa-circle-i::before { + content: "\e111"; } + +.fa-toilet-paper-check::before { + content: "\e5b2"; } + +.fa-filter-circle-xmark::before { + content: "\e17b"; } + +.fa-locust::before { + content: "\e520"; } + +.fa-sort::before { + content: "\f0dc"; } + +.fa-unsorted::before { + content: "\f0dc"; } + +.fa-list-ol::before { + content: "\f0cb"; } + +.fa-list-1-2::before { + content: "\f0cb"; } + +.fa-list-numeric::before { + content: "\f0cb"; } + +.fa-chart-waterfall::before { + content: "\e0eb"; } + +.fa-sparkle::before { + content: "\e5d6"; } + +.fa-face-party::before { + content: "\e383"; } + +.fa-kidneys::before { + content: "\f5fb"; } + +.fa-wifi-exclamation::before { + content: "\e2cf"; } + +.fa-chart-network::before { + content: "\f78a"; } + +.fa-person-dress-burst::before { + content: "\e544"; } + +.fa-dice-d4::before { + content: "\f6d0"; } + +.fa-money-check-dollar::before { + content: "\f53d"; } + +.fa-money-check-alt::before { + content: "\f53d"; } + +.fa-vector-square::before { + content: "\f5cb"; } + +.fa-bread-slice::before { + content: "\f7ec"; } + +.fa-language::before { + content: "\f1ab"; } + +.fa-wheat-awn-slash::before { + content: "\e338"; } + +.fa-face-kiss-wink-heart::before { + content: "\f598"; } + +.fa-kiss-wink-heart::before { + content: "\f598"; } + +.fa-dagger::before { + content: "\f6cb"; } + +.fa-podium::before { + content: "\f680"; } + +.fa-memo-circle-check::before { + content: "\e1d9"; } + +.fa-route-highway::before { + content: "\f61a"; } + +.fa-down-to-line::before { + content: "\f34a"; } + +.fa-arrow-alt-to-bottom::before { + content: "\f34a"; } + +.fa-filter::before { + content: "\f0b0"; } + +.fa-square-g::before { + content: "\e271"; } + +.fa-circle-phone::before { + content: "\e11b"; } + +.fa-phone-circle::before { + content: "\e11b"; } + +.fa-clipboard-prescription::before { + content: "\f5e8"; } + +.fa-user-nurse-hair::before { + content: "\e45d"; } + +.fa-question::before { + content: "\3f"; } + +.fa-file-signature::before { + content: "\f573"; } + +.fa-toggle-large-on::before { + content: "\e5b1"; } + +.fa-up-down-left-right::before { + content: "\f0b2"; } + +.fa-arrows-alt::before { + content: "\f0b2"; } + +.fa-dryer-heat::before { + content: "\f862"; } + +.fa-dryer-alt::before { + content: "\f862"; } + +.fa-house-chimney-user::before { + content: "\e065"; } + +.fa-hand-holding-heart::before { + content: "\f4be"; } + +.fa-arrow-up-small-big::before { + content: "\f88f"; } + +.fa-sort-size-up-alt::before { + content: "\f88f"; } + +.fa-train-track::before { + content: "\e453"; } + +.fa-puzzle-piece::before { + content: "\f12e"; } + +.fa-money-check::before { + content: "\f53c"; } + +.fa-star-half-stroke::before { + content: "\f5c0"; } + +.fa-star-half-alt::before { + content: "\f5c0"; } + +.fa-file-exclamation::before { + content: "\f31a"; } + +.fa-code::before { + content: "\f121"; } + +.fa-whiskey-glass::before { + content: "\f7a0"; } + +.fa-glass-whiskey::before { + content: "\f7a0"; } + +.fa-moon-stars::before { + content: "\f755"; } + +.fa-building-circle-exclamation::before { + content: "\e4d3"; } + +.fa-clothes-hanger::before { + content: "\e136"; } + +.fa-mobile-notch::before { + content: "\e1ee"; } + +.fa-mobile-iphone::before { + content: "\e1ee"; } + +.fa-magnifying-glass-chart::before { + content: "\e522"; } + +.fa-arrow-up-right-from-square::before { + content: "\f08e"; } + +.fa-external-link::before { + content: "\f08e"; } + +.fa-cubes-stacked::before { + content: "\e4e6"; } + +.fa-images-user::before { + content: "\e1b9"; } + +.fa-won-sign::before { + content: "\f159"; } + +.fa-krw::before { + content: "\f159"; } + +.fa-won::before { + content: "\f159"; } + +.fa-image-polaroid-user::before { + content: "\e1b6"; } + +.fa-virus-covid::before { + content: "\e4a8"; } + +.fa-square-ellipsis::before { + content: "\e26e"; } + +.fa-pie::before { + content: "\f705"; } + +.fa-chess-knight-piece::before { + content: "\f442"; } + +.fa-chess-knight-alt::before { + content: "\f442"; } + +.fa-austral-sign::before { + content: "\e0a9"; } + +.fa-cloud-plus::before { + content: "\e35e"; } + +.fa-f::before { + content: "\46"; } + +.fa-leaf::before { + content: "\f06c"; } + +.fa-bed-bunk::before { + content: "\f8f8"; } + +.fa-road::before { + content: "\f018"; } + +.fa-taxi::before { + content: "\f1ba"; } + +.fa-cab::before { + content: "\f1ba"; } + +.fa-person-circle-plus::before { + content: "\e541"; } + +.fa-chart-pie::before { + content: "\f200"; } + +.fa-pie-chart::before { + content: "\f200"; } + +.fa-bolt-lightning::before { + content: "\e0b7"; } + +.fa-clock-eight::before { + content: "\e345"; } + +.fa-sack-xmark::before { + content: "\e56a"; } + +.fa-file-xls::before { + content: "\e64d"; } + +.fa-file-excel::before { + content: "\f1c3"; } + +.fa-file-contract::before { + content: "\f56c"; } + +.fa-fish-fins::before { + content: "\e4f2"; } + +.fa-circle-q::before { + content: "\e11e"; } + +.fa-building-flag::before { + content: "\e4d5"; } + +.fa-face-grin-beam::before { + content: "\f582"; } + +.fa-grin-beam::before { + content: "\f582"; } + +.fa-object-ungroup::before { + content: "\f248"; } + +.fa-face-disguise::before { + content: "\e370"; } + +.fa-circle-arrow-down-right::before { + content: "\e0fa"; } + +.fa-alien-8bit::before { + content: "\f8f6"; } + +.fa-alien-monster::before { + content: "\f8f6"; } + +.fa-hand-point-ribbon::before { + content: "\e1a6"; } + +.fa-poop::before { + content: "\f619"; } + +.fa-object-exclude::before { + content: "\e49c"; } + +.fa-telescope::before { + content: "\e03e"; } + +.fa-location-pin::before { + content: "\f041"; } + +.fa-map-marker::before { + content: "\f041"; } + +.fa-square-list::before { + content: "\e489"; } + +.fa-kaaba::before { + content: "\f66b"; } + +.fa-toilet-paper::before { + content: "\f71e"; } + +.fa-helmet-safety::before { + content: "\f807"; } + +.fa-hard-hat::before { + content: "\f807"; } + +.fa-hat-hard::before { + content: "\f807"; } + +.fa-comment-code::before { + content: "\e147"; } + +.fa-sim-cards::before { + content: "\e251"; } + +.fa-starship::before { + content: "\e039"; } + +.fa-eject::before { + content: "\f052"; } + +.fa-circle-right::before { + content: "\f35a"; } + +.fa-arrow-alt-circle-right::before { + content: "\f35a"; } + +.fa-plane-circle-check::before { + content: "\e555"; } + +.fa-seal::before { + content: "\e241"; } + +.fa-user-cowboy::before { + content: "\f8ea"; } + +.fa-hexagon-vertical-nft::before { + content: "\e505"; } + +.fa-face-rolling-eyes::before { + content: "\f5a5"; } + +.fa-meh-rolling-eyes::before { + content: "\f5a5"; } + +.fa-bread-loaf::before { + content: "\f7eb"; } + +.fa-rings-wedding::before { + content: "\f81b"; } + +.fa-object-group::before { + content: "\f247"; } + +.fa-french-fries::before { + content: "\f803"; } + +.fa-chart-line::before { + content: "\f201"; } + +.fa-line-chart::before { + content: "\f201"; } + +.fa-calendar-arrow-down::before { + content: "\e0d0"; } + +.fa-calendar-download::before { + content: "\e0d0"; } + +.fa-send-back::before { + content: "\f87e"; } + +.fa-mask-ventilator::before { + content: "\e524"; } + +.fa-tickets::before { + content: "\e658"; } + +.fa-signature-lock::before { + content: "\e3ca"; } + +.fa-arrow-right::before { + content: "\f061"; } + +.fa-signs-post::before { + content: "\f277"; } + +.fa-map-signs::before { + content: "\f277"; } + +.fa-octagon-plus::before { + content: "\f301"; } + +.fa-plus-octagon::before { + content: "\f301"; } + +.fa-cash-register::before { + content: "\f788"; } + +.fa-person-circle-question::before { + content: "\e542"; } + +.fa-melon-slice::before { + content: "\e311"; } + +.fa-space-station-moon::before { + content: "\e033"; } + +.fa-message-smile::before { + content: "\f4aa"; } + +.fa-comment-alt-smile::before { + content: "\f4aa"; } + +.fa-cup-straw::before { + content: "\e363"; } + +.fa-left-from-line::before { + content: "\f348"; } + +.fa-arrow-alt-from-right::before { + content: "\f348"; } + +.fa-h::before { + content: "\48"; } + +.fa-basket-shopping-simple::before { + content: "\e0af"; } + +.fa-shopping-basket-alt::before { + content: "\e0af"; } + +.fa-hands-holding-heart::before { + content: "\f4c3"; } + +.fa-hands-heart::before { + content: "\f4c3"; } + +.fa-clock-nine::before { + content: "\e34c"; } + +.fa-hammer-brush::before { + content: "\e620"; } + +.fa-tarp::before { + content: "\e57b"; } + +.fa-face-sleepy::before { + content: "\e38e"; } + +.fa-hand-horns::before { + content: "\e1a9"; } + +.fa-screwdriver-wrench::before { + content: "\f7d9"; } + +.fa-tools::before { + content: "\f7d9"; } + +.fa-arrows-to-eye::before { + content: "\e4bf"; } + +.fa-circle-three-quarters::before { + content: "\e125"; } + +.fa-trophy-star::before { + content: "\f2eb"; } + +.fa-trophy-alt::before { + content: "\f2eb"; } + +.fa-plug-circle-bolt::before { + content: "\e55b"; } + +.fa-face-thermometer::before { + content: "\e39a"; } + +.fa-grid-round-4::before { + content: "\e5dd"; } + +.fa-sign-posts-wrench::before { + content: "\e626"; } + +.fa-shirt-running::before { + content: "\e3c8"; } + +.fa-book-circle-arrow-up::before { + content: "\e0bd"; } + +.fa-face-nauseated::before { + content: "\e381"; } + +.fa-heart::before { + content: "\f004"; } + +.fa-file-chart-pie::before { + content: "\f65a"; } + +.fa-mars-and-venus::before { + content: "\f224"; } + +.fa-house-user::before { + content: "\e1b0"; } + +.fa-home-user::before { + content: "\e1b0"; } + +.fa-circle-arrow-down-left::before { + content: "\e0f9"; } + +.fa-dumpster-fire::before { + content: "\f794"; } + +.fa-hexagon-minus::before { + content: "\f307"; } + +.fa-minus-hexagon::before { + content: "\f307"; } + +.fa-left-to-line::before { + content: "\f34b"; } + +.fa-arrow-alt-to-left::before { + content: "\f34b"; } + +.fa-house-crack::before { + content: "\e3b1"; } + +.fa-paw-simple::before { + content: "\f701"; } + +.fa-paw-alt::before { + content: "\f701"; } + +.fa-arrow-left-long-to-line::before { + content: "\e3d4"; } + +.fa-brackets-round::before { + content: "\e0c5"; } + +.fa-parentheses::before { + content: "\e0c5"; } + +.fa-martini-glass-citrus::before { + content: "\f561"; } + +.fa-cocktail::before { + content: "\f561"; } + +.fa-user-shakespeare::before { + content: "\e2c2"; } + +.fa-arrow-right-to-arc::before { + content: "\e4b2"; } + +.fa-face-surprise::before { + content: "\f5c2"; } + +.fa-surprise::before { + content: "\f5c2"; } + +.fa-bottle-water::before { + content: "\e4c5"; } + +.fa-circle-pause::before { + content: "\f28b"; } + +.fa-pause-circle::before { + content: "\f28b"; } + +.fa-gauge-circle-plus::before { + content: "\e498"; } + +.fa-folders::before { + content: "\f660"; } + +.fa-angel::before { + content: "\f779"; } + +.fa-value-absolute::before { + content: "\f6a6"; } + +.fa-rabbit::before { + content: "\f708"; } + +.fa-toilet-paper-slash::before { + content: "\e072"; } + +.fa-circle-euro::before { + content: "\e5ce"; } + +.fa-apple-whole::before { + content: "\f5d1"; } + +.fa-apple-alt::before { + content: "\f5d1"; } + +.fa-kitchen-set::before { + content: "\e51a"; } + +.fa-diamond-half::before { + content: "\e5b7"; } + +.fa-lock-keyhole::before { + content: "\f30d"; } + +.fa-lock-alt::before { + content: "\f30d"; } + +.fa-r::before { + content: "\52"; } + +.fa-temperature-quarter::before { + content: "\f2ca"; } + +.fa-temperature-1::before { + content: "\f2ca"; } + +.fa-thermometer-1::before { + content: "\f2ca"; } + +.fa-thermometer-quarter::before { + content: "\f2ca"; } + +.fa-square-info::before { + content: "\f30f"; } + +.fa-info-square::before { + content: "\f30f"; } + +.fa-wifi-slash::before { + content: "\f6ac"; } + +.fa-toilet-paper-xmark::before { + content: "\e5b3"; } + +.fa-hands-holding-dollar::before { + content: "\f4c5"; } + +.fa-hands-usd::before { + content: "\f4c5"; } + +.fa-cube::before { + content: "\f1b2"; } + +.fa-arrow-down-triangle-square::before { + content: "\f888"; } + +.fa-sort-shapes-down::before { + content: "\f888"; } + +.fa-bitcoin-sign::before { + content: "\e0b4"; } + +.fa-shutters::before { + content: "\e449"; } + +.fa-shield-dog::before { + content: "\e573"; } + +.fa-solar-panel::before { + content: "\f5ba"; } + +.fa-lock-open::before { + content: "\f3c1"; } + +.fa-table-tree::before { + content: "\e293"; } + +.fa-house-chimney-heart::before { + content: "\e1b2"; } + +.fa-tally-3::before { + content: "\e296"; } + +.fa-elevator::before { + content: "\e16d"; } + +.fa-money-bill-transfer::before { + content: "\e528"; } + +.fa-money-bill-trend-up::before { + content: "\e529"; } + +.fa-house-flood-water-circle-arrow-right::before { + content: "\e50f"; } + +.fa-square-poll-horizontal::before { + content: "\f682"; } + +.fa-poll-h::before { + content: "\f682"; } + +.fa-circle::before { + content: "\f111"; } + +.fa-left-to-bracket::before { + content: "\e66d"; } + +.fa-cart-circle-exclamation::before { + content: "\e3f2"; } + +.fa-sword::before { + content: "\f71c"; } + +.fa-backward-fast::before { + content: "\f049"; } + +.fa-fast-backward::before { + content: "\f049"; } + +.fa-recycle::before { + content: "\f1b8"; } + +.fa-user-astronaut::before { + content: "\f4fb"; } + +.fa-interrobang::before { + content: "\e5ba"; } + +.fa-plane-slash::before { + content: "\e069"; } + +.fa-circle-dashed::before { + content: "\e105"; } + +.fa-trademark::before { + content: "\f25c"; } + +.fa-basketball::before { + content: "\f434"; } + +.fa-basketball-ball::before { + content: "\f434"; } + +.fa-fork-knife::before { + content: "\f2e6"; } + +.fa-utensils-alt::before { + content: "\f2e6"; } + +.fa-satellite-dish::before { + content: "\f7c0"; } + +.fa-badge-check::before { + content: "\f336"; } + +.fa-circle-up::before { + content: "\f35b"; } + +.fa-arrow-alt-circle-up::before { + content: "\f35b"; } + +.fa-slider::before { + content: "\e252"; } + +.fa-mobile-screen-button::before { + content: "\f3cd"; } + +.fa-mobile-alt::before { + content: "\f3cd"; } + +.fa-clock-one-thirty::before { + content: "\e34f"; } + +.fa-inbox-out::before { + content: "\f311"; } + +.fa-inbox-arrow-up::before { + content: "\f311"; } + +.fa-cloud-slash::before { + content: "\e137"; } + +.fa-volume-high::before { + content: "\f028"; } + +.fa-volume-up::before { + content: "\f028"; } + +.fa-users-rays::before { + content: "\e593"; } + +.fa-wallet::before { + content: "\f555"; } + +.fa-octagon-check::before { + content: "\e426"; } + +.fa-flatbread-stuffed::before { + content: "\e40c"; } + +.fa-clipboard-check::before { + content: "\f46c"; } + +.fa-cart-circle-plus::before { + content: "\e3f3"; } + +.fa-truck-clock::before { + content: "\f48c"; } + +.fa-shipping-timed::before { + content: "\f48c"; } + +.fa-pool-8-ball::before { + content: "\e3c5"; } + +.fa-file-audio::before { + content: "\f1c7"; } + +.fa-turn-down-left::before { + content: "\e331"; } + +.fa-lock-hashtag::before { + content: "\e423"; } + +.fa-chart-radar::before { + content: "\e0e7"; } + +.fa-staff::before { + content: "\f71b"; } + +.fa-burger::before { + content: "\f805"; } + +.fa-hamburger::before { + content: "\f805"; } + +.fa-utility-pole::before { + content: "\e2c3"; } + +.fa-transporter-6::before { + content: "\e2a7"; } + +.fa-arrow-turn-left::before { + content: "\e632"; } + +.fa-wrench::before { + content: "\f0ad"; } + +.fa-bugs::before { + content: "\e4d0"; } + +.fa-vector-polygon::before { + content: "\e2c7"; } + +.fa-diagram-nested::before { + content: "\e157"; } + +.fa-rupee-sign::before { + content: "\f156"; } + +.fa-rupee::before { + content: "\f156"; } + +.fa-file-image::before { + content: "\f1c5"; } + +.fa-circle-question::before { + content: "\f059"; } + +.fa-question-circle::before { + content: "\f059"; } + +.fa-tickets-perforated::before { + content: "\e63f"; } + +.fa-image-user::before { + content: "\e1b8"; } + +.fa-buoy::before { + content: "\e5b5"; } + +.fa-plane-departure::before { + content: "\f5b0"; } + +.fa-handshake-slash::before { + content: "\e060"; } + +.fa-book-bookmark::before { + content: "\e0bb"; } + +.fa-border-center-h::before { + content: "\f89c"; } + +.fa-can-food::before { + content: "\e3e6"; } + +.fa-typewriter::before { + content: "\f8e7"; } + +.fa-arrow-right-from-arc::before { + content: "\e4b1"; } + +.fa-circle-k::before { + content: "\e113"; } + +.fa-face-hand-over-mouth::before { + content: "\e378"; } + +.fa-popcorn::before { + content: "\f819"; } + +.fa-house-water::before { + content: "\f74f"; } + +.fa-house-flood::before { + content: "\f74f"; } + +.fa-object-subtract::before { + content: "\e49e"; } + +.fa-code-branch::before { + content: "\f126"; } + +.fa-warehouse-full::before { + content: "\f495"; } + +.fa-warehouse-alt::before { + content: "\f495"; } + +.fa-hat-cowboy::before { + content: "\f8c0"; } + +.fa-bridge::before { + content: "\e4c8"; } + +.fa-phone-flip::before { + content: "\f879"; } + +.fa-phone-alt::before { + content: "\f879"; } + +.fa-arrow-down-from-dotted-line::before { + content: "\e090"; } + +.fa-file-doc::before { + content: "\e5ed"; } + +.fa-square-quarters::before { + content: "\e44e"; } + +.fa-truck-front::before { + content: "\e2b7"; } + +.fa-cat::before { + content: "\f6be"; } + +.fa-trash-xmark::before { + content: "\e2b4"; } + +.fa-circle-caret-left::before { + content: "\f32e"; } + +.fa-caret-circle-left::before { + content: "\f32e"; } + +.fa-files::before { + content: "\e178"; } + +.fa-anchor-circle-exclamation::before { + content: "\e4ab"; } + +.fa-face-clouds::before { + content: "\e47d"; } + +.fa-user-crown::before { + content: "\f6a4"; } + +.fa-basket-shopping-plus::before { + content: "\e653"; } + +.fa-truck-field::before { + content: "\e58d"; } + +.fa-route::before { + content: "\f4d7"; } + +.fa-cart-circle-check::before { + content: "\e3f1"; } + +.fa-clipboard-question::before { + content: "\e4e3"; } + +.fa-panorama::before { + content: "\e209"; } + +.fa-comment-medical::before { + content: "\f7f5"; } + +.fa-teeth-open::before { + content: "\f62f"; } + +.fa-user-tie-hair-long::before { + content: "\e460"; } + +.fa-file-circle-minus::before { + content: "\e4ed"; } + +.fa-head-side-medical::before { + content: "\f809"; } + +.fa-arrow-turn-right::before { + content: "\e635"; } + +.fa-tags::before { + content: "\f02c"; } + +.fa-wine-glass::before { + content: "\f4e3"; } + +.fa-forward-fast::before { + content: "\f050"; } + +.fa-fast-forward::before { + content: "\f050"; } + +.fa-face-meh-blank::before { + content: "\f5a4"; } + +.fa-meh-blank::before { + content: "\f5a4"; } + +.fa-user-robot::before { + content: "\e04b"; } + +.fa-square-parking::before { + content: "\f540"; } + +.fa-parking::before { + content: "\f540"; } + +.fa-card-diamond::before { + content: "\e3ea"; } + +.fa-face-zipper::before { + content: "\e3a5"; } + +.fa-face-raised-eyebrow::before { + content: "\e388"; } + +.fa-house-signal::before { + content: "\e012"; } + +.fa-square-chevron-up::before { + content: "\f32c"; } + +.fa-chevron-square-up::before { + content: "\f32c"; } + +.fa-bars-progress::before { + content: "\f828"; } + +.fa-tasks-alt::before { + content: "\f828"; } + +.fa-faucet-drip::before { + content: "\e006"; } + +.fa-arrows-to-line::before { + content: "\e0a7"; } + +.fa-dolphin::before { + content: "\e168"; } + +.fa-arrow-up-right::before { + content: "\e09f"; } + +.fa-circle-r::before { + content: "\e120"; } + +.fa-cart-flatbed::before { + content: "\f474"; } + +.fa-dolly-flatbed::before { + content: "\f474"; } + +.fa-ban-smoking::before { + content: "\f54d"; } + +.fa-smoking-ban::before { + content: "\f54d"; } + +.fa-circle-sort-up::before { + content: "\e032"; } + +.fa-sort-circle-up::before { + content: "\e032"; } + +.fa-terminal::before { + content: "\f120"; } + +.fa-mobile-button::before { + content: "\f10b"; } + +.fa-house-medical-flag::before { + content: "\e514"; } + +.fa-basket-shopping::before { + content: "\f291"; } + +.fa-shopping-basket::before { + content: "\f291"; } + +.fa-tape::before { + content: "\f4db"; } + +.fa-chestnut::before { + content: "\e3f6"; } + +.fa-bus-simple::before { + content: "\f55e"; } + +.fa-bus-alt::before { + content: "\f55e"; } + +.fa-eye::before { + content: "\f06e"; } + +.fa-face-sad-cry::before { + content: "\f5b3"; } + +.fa-sad-cry::before { + content: "\f5b3"; } + +.fa-heat::before { + content: "\e00c"; } + +.fa-ticket-airline::before { + content: "\e29a"; } + +.fa-ticket-perforated-plane::before { + content: "\e29a"; } + +.fa-ticket-plane::before { + content: "\e29a"; } + +.fa-boot-heeled::before { + content: "\e33f"; } + +.fa-arrows-minimize::before { + content: "\e0a5"; } + +.fa-compress-arrows::before { + content: "\e0a5"; } + +.fa-audio-description::before { + content: "\f29e"; } + +.fa-person-military-to-person::before { + content: "\e54c"; } + +.fa-file-shield::before { + content: "\e4f0"; } + +.fa-hexagon::before { + content: "\f312"; } + +.fa-manhole::before { + content: "\e1d6"; } + +.fa-user-slash::before { + content: "\f506"; } + +.fa-pen::before { + content: "\f304"; } + +.fa-tower-observation::before { + content: "\e586"; } + +.fa-floppy-disks::before { + content: "\e183"; } + +.fa-toilet-paper-blank-under::before { + content: "\e29f"; } + +.fa-toilet-paper-reverse-alt::before { + content: "\e29f"; } + +.fa-file-code::before { + content: "\f1c9"; } + +.fa-signal::before { + content: "\f012"; } + +.fa-signal-5::before { + content: "\f012"; } + +.fa-signal-perfect::before { + content: "\f012"; } + +.fa-pump::before { + content: "\e442"; } + +.fa-bus::before { + content: "\f207"; } + +.fa-heart-circle-xmark::before { + content: "\e501"; } + +.fa-arrow-up-left-from-circle::before { + content: "\e09e"; } + +.fa-house-chimney::before { + content: "\e3af"; } + +.fa-home-lg::before { + content: "\e3af"; } + +.fa-window-maximize::before { + content: "\f2d0"; } + +.fa-dryer::before { + content: "\f861"; } + +.fa-face-frown::before { + content: "\f119"; } + +.fa-frown::before { + content: "\f119"; } + +.fa-chess-bishop-piece::before { + content: "\f43b"; } + +.fa-chess-bishop-alt::before { + content: "\f43b"; } + +.fa-shirt-tank-top::before { + content: "\e3c9"; } + +.fa-diploma::before { + content: "\f5ea"; } + +.fa-scroll-ribbon::before { + content: "\f5ea"; } + +.fa-screencast::before { + content: "\e23e"; } + +.fa-walker::before { + content: "\f831"; } + +.fa-prescription::before { + content: "\f5b1"; } + +.fa-shop::before { + content: "\f54f"; } + +.fa-store-alt::before { + content: "\f54f"; } + +.fa-floppy-disk::before { + content: "\f0c7"; } + +.fa-save::before { + content: "\f0c7"; } + +.fa-vihara::before { + content: "\f6a7"; } + +.fa-face-kiss-closed-eyes::before { + content: "\e37d"; } + +.fa-scale-unbalanced::before { + content: "\f515"; } + +.fa-balance-scale-left::before { + content: "\f515"; } + +.fa-file-user::before { + content: "\f65c"; } + +.fa-user-police-tie::before { + content: "\e334"; } + +.fa-face-tongue-money::before { + content: "\e39d"; } + +.fa-tennis-ball::before { + content: "\f45e"; } + +.fa-square-l::before { + content: "\e275"; } + +.fa-sort-up::before { + content: "\f0de"; } + +.fa-sort-asc::before { + content: "\f0de"; } + +.fa-calendar-arrow-up::before { + content: "\e0d1"; } + +.fa-calendar-upload::before { + content: "\e0d1"; } + +.fa-comment-dots::before { + content: "\f4ad"; } + +.fa-commenting::before { + content: "\f4ad"; } + +.fa-plant-wilt::before { + content: "\e5aa"; } + +.fa-scarf::before { + content: "\f7c1"; } + +.fa-album-circle-plus::before { + content: "\e48c"; } + +.fa-user-nurse-hair-long::before { + content: "\e45e"; } + +.fa-diamond::before { + content: "\f219"; } + +.fa-square-left::before { + content: "\f351"; } + +.fa-arrow-alt-square-left::before { + content: "\f351"; } + +.fa-face-grin-squint::before { + content: "\f585"; } + +.fa-grin-squint::before { + content: "\f585"; } + +.fa-circle-ellipsis-vertical::before { + content: "\e10b"; } + +.fa-hand-holding-dollar::before { + content: "\f4c0"; } + +.fa-hand-holding-usd::before { + content: "\f4c0"; } + +.fa-grid-dividers::before { + content: "\e3ad"; } + +.fa-bacterium::before { + content: "\e05a"; } + +.fa-hand-pointer::before { + content: "\f25a"; } + +.fa-drum-steelpan::before { + content: "\f56a"; } + +.fa-hand-scissors::before { + content: "\f257"; } + +.fa-hands-praying::before { + content: "\f684"; } + +.fa-praying-hands::before { + content: "\f684"; } + +.fa-face-pensive::before { + content: "\e384"; } + +.fa-user-music::before { + content: "\f8eb"; } + +.fa-arrow-rotate-right::before { + content: "\f01e"; } + +.fa-arrow-right-rotate::before { + content: "\f01e"; } + +.fa-arrow-rotate-forward::before { + content: "\f01e"; } + +.fa-redo::before { + content: "\f01e"; } + +.fa-messages-dollar::before { + content: "\f652"; } + +.fa-comments-alt-dollar::before { + content: "\f652"; } + +.fa-sensor-on::before { + content: "\e02b"; } + +.fa-balloon::before { + content: "\e2e3"; } + +.fa-biohazard::before { + content: "\f780"; } + +.fa-chess-queen-piece::before { + content: "\f446"; } + +.fa-chess-queen-alt::before { + content: "\f446"; } + +.fa-location-crosshairs::before { + content: "\f601"; } + +.fa-location::before { + content: "\f601"; } + +.fa-mars-double::before { + content: "\f227"; } + +.fa-left-from-bracket::before { + content: "\e66c"; } + +.fa-house-person-leave::before { + content: "\e00f"; } + +.fa-house-leave::before { + content: "\e00f"; } + +.fa-house-person-depart::before { + content: "\e00f"; } + +.fa-ruler-triangle::before { + content: "\f61c"; } + +.fa-card-club::before { + content: "\e3e9"; } + +.fa-child-dress::before { + content: "\e59c"; } + +.fa-users-between-lines::before { + content: "\e591"; } + +.fa-lungs-virus::before { + content: "\e067"; } + +.fa-spinner-third::before { + content: "\f3f4"; } + +.fa-face-grin-tears::before { + content: "\f588"; } + +.fa-grin-tears::before { + content: "\f588"; } + +.fa-phone::before { + content: "\f095"; } + +.fa-computer-mouse-scrollwheel::before { + content: "\f8cd"; } + +.fa-mouse-alt::before { + content: "\f8cd"; } + +.fa-calendar-xmark::before { + content: "\f273"; } + +.fa-calendar-times::before { + content: "\f273"; } + +.fa-child-reaching::before { + content: "\e59d"; } + +.fa-table-layout::before { + content: "\e290"; } + +.fa-narwhal::before { + content: "\f6fe"; } + +.fa-ramp-loading::before { + content: "\f4d4"; } + +.fa-calendar-circle-plus::before { + content: "\e470"; } + +.fa-toothbrush::before { + content: "\f635"; } + +.fa-border-inner::before { + content: "\f84e"; } + +.fa-paw-claws::before { + content: "\f702"; } + +.fa-kiwi-fruit::before { + content: "\e30c"; } + +.fa-traffic-light-slow::before { + content: "\f639"; } + +.fa-rectangle-code::before { + content: "\e322"; } + +.fa-head-side-virus::before { + content: "\e064"; } + +.fa-keyboard-brightness::before { + content: "\e1c0"; } + +.fa-books-medical::before { + content: "\f7e8"; } + +.fa-lightbulb-slash::before { + content: "\f673"; } + +.fa-house-blank::before { + content: "\e487"; } + +.fa-home-blank::before { + content: "\e487"; } + +.fa-square-5::before { + content: "\e25a"; } + +.fa-square-heart::before { + content: "\f4c8"; } + +.fa-heart-square::before { + content: "\f4c8"; } + +.fa-puzzle::before { + content: "\e443"; } + +.fa-user-gear::before { + content: "\f4fe"; } + +.fa-user-cog::before { + content: "\f4fe"; } + +.fa-pipe-circle-check::before { + content: "\e436"; } + +.fa-arrow-up-1-9::before { + content: "\f163"; } + +.fa-sort-numeric-up::before { + content: "\f163"; } + +.fa-octagon-exclamation::before { + content: "\e204"; } + +.fa-dial-low::before { + content: "\e15d"; } + +.fa-door-closed::before { + content: "\f52a"; } + +.fa-laptop-mobile::before { + content: "\f87a"; } + +.fa-phone-laptop::before { + content: "\f87a"; } + +.fa-conveyor-belt-boxes::before { + content: "\f46f"; } + +.fa-conveyor-belt-alt::before { + content: "\f46f"; } + +.fa-shield-virus::before { + content: "\e06c"; } + +.fa-starfighter-twin-ion-engine-advanced::before { + content: "\e28e"; } + +.fa-starfighter-alt-advanced::before { + content: "\e28e"; } + +.fa-dice-six::before { + content: "\f526"; } + +.fa-starfighter-twin-ion-engine::before { + content: "\e038"; } + +.fa-starfighter-alt::before { + content: "\e038"; } + +.fa-rocket-launch::before { + content: "\e027"; } + +.fa-mosquito-net::before { + content: "\e52c"; } + +.fa-vent-damper::before { + content: "\e465"; } + +.fa-bridge-water::before { + content: "\e4ce"; } + +.fa-ban-bug::before { + content: "\f7f9"; } + +.fa-debug::before { + content: "\f7f9"; } + +.fa-person-booth::before { + content: "\f756"; } + +.fa-text-width::before { + content: "\f035"; } + +.fa-garage-car::before { + content: "\e00a"; } + +.fa-square-kanban::before { + content: "\e488"; } + +.fa-hat-wizard::before { + content: "\f6e8"; } + +.fa-chart-kanban::before { + content: "\e64f"; } + +.fa-pen-fancy::before { + content: "\f5ac"; } + +.fa-coffee-pot::before { + content: "\e002"; } + +.fa-mouse-field::before { + content: "\e5a8"; } + +.fa-person-digging::before { + content: "\f85e"; } + +.fa-digging::before { + content: "\f85e"; } + +.fa-shower-down::before { + content: "\e24d"; } + +.fa-shower-alt::before { + content: "\e24d"; } + +.fa-box-circle-check::before { + content: "\e0c4"; } + +.fa-brightness::before { + content: "\e0c9"; } + +.fa-car-side-bolt::before { + content: "\e344"; } + +.fa-file-xml::before { + content: "\e654"; } + +.fa-ornament::before { + content: "\f7b8"; } + +.fa-phone-arrow-down-left::before { + content: "\e223"; } + +.fa-phone-arrow-down::before { + content: "\e223"; } + +.fa-phone-incoming::before { + content: "\e223"; } + +.fa-cloud-word::before { + content: "\e138"; } + +.fa-hand-fingers-crossed::before { + content: "\e1a3"; } + +.fa-trash::before { + content: "\f1f8"; } + +.fa-gauge-simple::before { + content: "\f629"; } + +.fa-gauge-simple-med::before { + content: "\f629"; } + +.fa-tachometer-average::before { + content: "\f629"; } + +.fa-arrow-down-small-big::before { + content: "\f88d"; } + +.fa-sort-size-down-alt::before { + content: "\f88d"; } + +.fa-book-medical::before { + content: "\f7e6"; } + +.fa-face-melting::before { + content: "\e483"; } + +.fa-poo::before { + content: "\f2fe"; } + +.fa-pen-clip-slash::before { + content: "\e20f"; } + +.fa-pen-alt-slash::before { + content: "\e20f"; } + +.fa-quote-right::before { + content: "\f10e"; } + +.fa-quote-right-alt::before { + content: "\f10e"; } + +.fa-scroll-old::before { + content: "\f70f"; } + +.fa-guitars::before { + content: "\f8bf"; } + +.fa-phone-xmark::before { + content: "\e227"; } + +.fa-hose::before { + content: "\e419"; } + +.fa-clock-six::before { + content: "\e352"; } + +.fa-shirt::before { + content: "\f553"; } + +.fa-t-shirt::before { + content: "\f553"; } + +.fa-tshirt::before { + content: "\f553"; } + +.fa-billboard::before { + content: "\e5cd"; } + +.fa-square-r::before { + content: "\e27c"; } + +.fa-cubes::before { + content: "\f1b3"; } + +.fa-envelope-open-dollar::before { + content: "\f657"; } + +.fa-divide::before { + content: "\f529"; } + +.fa-sun-cloud::before { + content: "\f763"; } + +.fa-lamp-floor::before { + content: "\e015"; } + +.fa-square-7::before { + content: "\e25c"; } + +.fa-tenge-sign::before { + content: "\f7d7"; } + +.fa-tenge::before { + content: "\f7d7"; } + +.fa-headphones::before { + content: "\f025"; } + +.fa-hands-holding::before { + content: "\f4c2"; } + +.fa-campfire::before { + content: "\f6ba"; } + +.fa-circle-ampersand::before { + content: "\e0f8"; } + +.fa-snowflakes::before { + content: "\f7cf"; } + +.fa-hands-clapping::before { + content: "\e1a8"; } + +.fa-republican::before { + content: "\f75e"; } + +.fa-leaf-maple::before { + content: "\f6f6"; } + +.fa-arrow-left::before { + content: "\f060"; } + +.fa-person-circle-xmark::before { + content: "\e543"; } + +.fa-ruler::before { + content: "\f545"; } + +.fa-arrow-left-from-bracket::before { + content: "\e668"; } + +.fa-cup-straw-swoosh::before { + content: "\e364"; } + +.fa-temperature-sun::before { + content: "\f76a"; } + +.fa-temperature-hot::before { + content: "\f76a"; } + +.fa-align-left::before { + content: "\f036"; } + +.fa-dice-d6::before { + content: "\f6d1"; } + +.fa-restroom::before { + content: "\f7bd"; } + +.fa-high-definition::before { + content: "\e1ae"; } + +.fa-rectangle-hd::before { + content: "\e1ae"; } + +.fa-j::before { + content: "\4a"; } + +.fa-galaxy::before { + content: "\e008"; } + +.fa-users-viewfinder::before { + content: "\e595"; } + +.fa-file-video::before { + content: "\f1c8"; } + +.fa-cherries::before { + content: "\e0ec"; } + +.fa-up-right-from-square::before { + content: "\f35d"; } + +.fa-external-link-alt::before { + content: "\f35d"; } + +.fa-circle-sort::before { + content: "\e030"; } + +.fa-sort-circle::before { + content: "\e030"; } + +.fa-table-cells::before { + content: "\f00a"; } + +.fa-th::before { + content: "\f00a"; } + +.fa-bag-shopping-minus::before { + content: "\e650"; } + +.fa-file-pdf::before { + content: "\f1c1"; } + +.fa-siren::before { + content: "\e02d"; } + +.fa-arrow-up-to-dotted-line::before { + content: "\e0a1"; } + +.fa-image-landscape::before { + content: "\e1b5"; } + +.fa-landscape::before { + content: "\e1b5"; } + +.fa-tank-water::before { + content: "\e452"; } + +.fa-curling-stone::before { + content: "\f44a"; } + +.fa-curling::before { + content: "\f44a"; } + +.fa-gamepad-modern::before { + content: "\e5a2"; } + +.fa-gamepad-alt::before { + content: "\e5a2"; } + +.fa-messages-question::before { + content: "\e1e7"; } + +.fa-book-bible::before { + content: "\f647"; } + +.fa-bible::before { + content: "\f647"; } + +.fa-o::before { + content: "\4f"; } + +.fa-suitcase-medical::before { + content: "\f0fa"; } + +.fa-medkit::before { + content: "\f0fa"; } + +.fa-briefcase-arrow-right::before { + content: "\e2f2"; } + +.fa-expand-wide::before { + content: "\f320"; } + +.fa-clock-eleven-thirty::before { + content: "\e348"; } + +.fa-rv::before { + content: "\f7be"; } + +.fa-user-secret::before { + content: "\f21b"; } + +.fa-otter::before { + content: "\f700"; } + +.fa-dreidel::before { + content: "\f792"; } + +.fa-person-dress::before { + content: "\f182"; } + +.fa-female::before { + content: "\f182"; } + +.fa-comment-dollar::before { + content: "\f651"; } + +.fa-business-time::before { + content: "\f64a"; } + +.fa-briefcase-clock::before { + content: "\f64a"; } + +.fa-flower-tulip::before { + content: "\f801"; } + +.fa-people-pants-simple::before { + content: "\e21a"; } + +.fa-cloud-drizzle::before { + content: "\f738"; } + +.fa-table-cells-large::before { + content: "\f009"; } + +.fa-th-large::before { + content: "\f009"; } + +.fa-book-tanakh::before { + content: "\f827"; } + +.fa-tanakh::before { + content: "\f827"; } + +.fa-solar-system::before { + content: "\e02f"; } + +.fa-seal-question::before { + content: "\e243"; } + +.fa-phone-volume::before { + content: "\f2a0"; } + +.fa-volume-control-phone::before { + content: "\f2a0"; } + +.fa-disc-drive::before { + content: "\f8b5"; } + +.fa-hat-cowboy-side::before { + content: "\f8c1"; } + +.fa-table-rows::before { + content: "\e292"; } + +.fa-rows::before { + content: "\e292"; } + +.fa-location-exclamation::before { + content: "\f608"; } + +.fa-map-marker-exclamation::before { + content: "\f608"; } + +.fa-face-fearful::before { + content: "\e375"; } + +.fa-clipboard-user::before { + content: "\f7f3"; } + +.fa-bus-school::before { + content: "\f5dd"; } + +.fa-film-slash::before { + content: "\e179"; } + +.fa-square-arrow-down-right::before { + content: "\e262"; } + +.fa-book-sparkles::before { + content: "\f6b8"; } + +.fa-book-spells::before { + content: "\f6b8"; } + +.fa-washing-machine::before { + content: "\f898"; } + +.fa-washer::before { + content: "\f898"; } + +.fa-child::before { + content: "\f1ae"; } + +.fa-lira-sign::before { + content: "\f195"; } + +.fa-user-visor::before { + content: "\e04c"; } + +.fa-file-plus-minus::before { + content: "\e177"; } + +.fa-chess-clock-flip::before { + content: "\f43e"; } + +.fa-chess-clock-alt::before { + content: "\f43e"; } + +.fa-satellite::before { + content: "\f7bf"; } + +.fa-truck-fire::before { + content: "\e65a"; } + +.fa-plane-lock::before { + content: "\e558"; } + +.fa-steering-wheel::before { + content: "\f622"; } + +.fa-tag::before { + content: "\f02b"; } + +.fa-stretcher::before { + content: "\f825"; } + +.fa-book-section::before { + content: "\e0c1"; } + +.fa-book-law::before { + content: "\e0c1"; } + +.fa-inboxes::before { + content: "\e1bb"; } + +.fa-coffee-bean::before { + content: "\e13e"; } + +.fa-circle-yen::before { + content: "\e5d0"; } + +.fa-brackets-curly::before { + content: "\f7ea"; } + +.fa-ellipsis-stroke-vertical::before { + content: "\f39c"; } + +.fa-ellipsis-v-alt::before { + content: "\f39c"; } + +.fa-comment::before { + content: "\f075"; } + +.fa-square-1::before { + content: "\e256"; } + +.fa-cake-candles::before { + content: "\f1fd"; } + +.fa-birthday-cake::before { + content: "\f1fd"; } + +.fa-cake::before { + content: "\f1fd"; } + +.fa-head-side::before { + content: "\f6e9"; } + +.fa-truck-ladder::before { + content: "\e657"; } + +.fa-envelope::before { + content: "\f0e0"; } + +.fa-dolly-empty::before { + content: "\f473"; } + +.fa-face-tissue::before { + content: "\e39c"; } + +.fa-angles-up::before { + content: "\f102"; } + +.fa-angle-double-up::before { + content: "\f102"; } + +.fa-bin-recycle::before { + content: "\e5f7"; } + +.fa-paperclip::before { + content: "\f0c6"; } + +.fa-chart-line-down::before { + content: "\f64d"; } + +.fa-arrow-right-to-city::before { + content: "\e4b3"; } + +.fa-lock-a::before { + content: "\e422"; } + +.fa-ribbon::before { + content: "\f4d6"; } + +.fa-lungs::before { + content: "\f604"; } + +.fa-person-pinball::before { + content: "\e21d"; } + +.fa-arrow-up-9-1::before { + content: "\f887"; } + +.fa-sort-numeric-up-alt::before { + content: "\f887"; } + +.fa-apple-core::before { + content: "\e08f"; } + +.fa-circle-y::before { + content: "\e12f"; } + +.fa-h6::before { + content: "\e413"; } + +.fa-litecoin-sign::before { + content: "\e1d3"; } + +.fa-bottle-baby::before { + content: "\e673"; } + +.fa-circle-small::before { + content: "\e122"; } + +.fa-border-none::before { + content: "\f850"; } + +.fa-arrow-turn-down-left::before { + content: "\e2e1"; } + +.fa-circle-wifi-circle-wifi::before { + content: "\e67e"; } + +.fa-circle-wifi-group::before { + content: "\e67e"; } + +.fa-circle-nodes::before { + content: "\e4e2"; } + +.fa-parachute-box::before { + content: "\f4cd"; } + +.fa-reflect-horizontal::before { + content: "\e664"; } + +.fa-message-medical::before { + content: "\f7f4"; } + +.fa-comment-alt-medical::before { + content: "\f7f4"; } + +.fa-rugby-ball::before { + content: "\e3c6"; } + +.fa-comment-music::before { + content: "\f8b0"; } + +.fa-indent::before { + content: "\f03c"; } + +.fa-tree-deciduous::before { + content: "\f400"; } + +.fa-tree-alt::before { + content: "\f400"; } + +.fa-puzzle-piece-simple::before { + content: "\e231"; } + +.fa-puzzle-piece-alt::before { + content: "\e231"; } + +.fa-truck-field-un::before { + content: "\e58e"; } + +.fa-nfc-trash::before { + content: "\e1fd"; } + +.fa-hourglass::before { + content: "\f254"; } + +.fa-hourglass-empty::before { + content: "\f254"; } + +.fa-mountain::before { + content: "\f6fc"; } + +.fa-file-xmark::before { + content: "\f317"; } + +.fa-file-times::before { + content: "\f317"; } + +.fa-house-heart::before { + content: "\f4c9"; } + +.fa-home-heart::before { + content: "\f4c9"; } + +.fa-house-chimney-blank::before { + content: "\e3b0"; } + +.fa-meter-bolt::before { + content: "\e1e9"; } + +.fa-user-doctor::before { + content: "\f0f0"; } + +.fa-user-md::before { + content: "\f0f0"; } + +.fa-slash-back::before { + content: "\5c"; } + +.fa-circle-info::before { + content: "\f05a"; } + +.fa-info-circle::before { + content: "\f05a"; } + +.fa-fishing-rod::before { + content: "\e3a8"; } + +.fa-hammer-crash::before { + content: "\e414"; } + +.fa-message-heart::before { + content: "\e5c9"; } + +.fa-cloud-meatball::before { + content: "\f73b"; } + +.fa-camera-polaroid::before { + content: "\f8aa"; } + +.fa-camera::before { + content: "\f030"; } + +.fa-camera-alt::before { + content: "\f030"; } + +.fa-square-virus::before { + content: "\e578"; } + +.fa-cart-arrow-up::before { + content: "\e3ee"; } + +.fa-meteor::before { + content: "\f753"; } + +.fa-car-on::before { + content: "\e4dd"; } + +.fa-sleigh::before { + content: "\f7cc"; } + +.fa-arrow-down-1-9::before { + content: "\f162"; } + +.fa-sort-numeric-asc::before { + content: "\f162"; } + +.fa-sort-numeric-down::before { + content: "\f162"; } + +.fa-buoy-mooring::before { + content: "\e5b6"; } + +.fa-square-4::before { + content: "\e259"; } + +.fa-hand-holding-droplet::before { + content: "\f4c1"; } + +.fa-hand-holding-water::before { + content: "\f4c1"; } + +.fa-file-eps::before { + content: "\e644"; } + +.fa-tricycle-adult::before { + content: "\e5c4"; } + +.fa-waveform::before { + content: "\f8f1"; } + +.fa-water::before { + content: "\f773"; } + +.fa-star-sharp-half-stroke::before { + content: "\e28d"; } + +.fa-star-sharp-half-alt::before { + content: "\e28d"; } + +.fa-nfc-signal::before { + content: "\e1fb"; } + +.fa-plane-prop::before { + content: "\e22b"; } + +.fa-calendar-check::before { + content: "\f274"; } + +.fa-clock-desk::before { + content: "\e134"; } + +.fa-calendar-clock::before { + content: "\e0d2"; } + +.fa-calendar-time::before { + content: "\e0d2"; } + +.fa-braille::before { + content: "\f2a1"; } + +.fa-prescription-bottle-medical::before { + content: "\f486"; } + +.fa-prescription-bottle-alt::before { + content: "\f486"; } + +.fa-plate-utensils::before { + content: "\e43b"; } + +.fa-family-pants::before { + content: "\e302"; } + +.fa-hose-reel::before { + content: "\e41a"; } + +.fa-house-window::before { + content: "\e3b3"; } + +.fa-landmark::before { + content: "\f66f"; } + +.fa-truck::before { + content: "\f0d1"; } + +.fa-music-magnifying-glass::before { + content: "\e662"; } + +.fa-crosshairs::before { + content: "\f05b"; } + +.fa-cloud-rainbow::before { + content: "\f73e"; } + +.fa-person-cane::before { + content: "\e53c"; } + +.fa-alien::before { + content: "\f8f5"; } + +.fa-tent::before { + content: "\e57d"; } + +.fa-laptop-binary::before { + content: "\e5e7"; } + +.fa-vest-patches::before { + content: "\e086"; } + +.fa-people-dress-simple::before { + content: "\e218"; } + +.fa-check-double::before { + content: "\f560"; } + +.fa-arrow-down-a-z::before { + content: "\f15d"; } + +.fa-sort-alpha-asc::before { + content: "\f15d"; } + +.fa-sort-alpha-down::before { + content: "\f15d"; } + +.fa-bowling-ball-pin::before { + content: "\e0c3"; } + +.fa-bell-school-slash::before { + content: "\f5d6"; } + +.fa-plus-large::before { + content: "\e59e"; } + +.fa-money-bill-wheat::before { + content: "\e52a"; } + +.fa-camera-viewfinder::before { + content: "\e0da"; } + +.fa-screenshot::before { + content: "\e0da"; } + +.fa-message-music::before { + content: "\f8af"; } + +.fa-comment-alt-music::before { + content: "\f8af"; } + +.fa-car-building::before { + content: "\f859"; } + +.fa-border-bottom-right::before { + content: "\f854"; } + +.fa-border-style-alt::before { + content: "\f854"; } + +.fa-octagon::before { + content: "\f306"; } + +.fa-comment-arrow-up-right::before { + content: "\e145"; } + +.fa-octagon-divide::before { + content: "\e203"; } + +.fa-cookie::before { + content: "\f563"; } + +.fa-arrow-rotate-left::before { + content: "\f0e2"; } + +.fa-arrow-left-rotate::before { + content: "\f0e2"; } + +.fa-arrow-rotate-back::before { + content: "\f0e2"; } + +.fa-arrow-rotate-backward::before { + content: "\f0e2"; } + +.fa-undo::before { + content: "\f0e2"; } + +.fa-tv-music::before { + content: "\f8e6"; } + +.fa-hard-drive::before { + content: "\f0a0"; } + +.fa-hdd::before { + content: "\f0a0"; } + +.fa-reel::before { + content: "\e238"; } + +.fa-face-grin-squint-tears::before { + content: "\f586"; } + +.fa-grin-squint-tears::before { + content: "\f586"; } + +.fa-dumbbell::before { + content: "\f44b"; } + +.fa-rectangle-list::before { + content: "\f022"; } + +.fa-list-alt::before { + content: "\f022"; } + +.fa-tarp-droplet::before { + content: "\e57c"; } + +.fa-alarm-exclamation::before { + content: "\f843"; } + +.fa-house-medical-circle-check::before { + content: "\e511"; } + +.fa-traffic-cone::before { + content: "\f636"; } + +.fa-grate::before { + content: "\e193"; } + +.fa-arrow-down-right::before { + content: "\e093"; } + +.fa-person-skiing-nordic::before { + content: "\f7ca"; } + +.fa-skiing-nordic::before { + content: "\f7ca"; } + +.fa-calendar-plus::before { + content: "\f271"; } + +.fa-person-from-portal::before { + content: "\e023"; } + +.fa-portal-exit::before { + content: "\e023"; } + +.fa-plane-arrival::before { + content: "\f5af"; } + +.fa-cowbell-circle-plus::before { + content: "\f8b4"; } + +.fa-cowbell-more::before { + content: "\f8b4"; } + +.fa-circle-left::before { + content: "\f359"; } + +.fa-arrow-alt-circle-left::before { + content: "\f359"; } + +.fa-distribute-spacing-vertical::before { + content: "\e366"; } + +.fa-signal-bars-fair::before { + content: "\f692"; } + +.fa-signal-alt-2::before { + content: "\f692"; } + +.fa-sportsball::before { + content: "\e44b"; } + +.fa-game-console-handheld-crank::before { + content: "\e5b9"; } + +.fa-train-subway::before { + content: "\f239"; } + +.fa-subway::before { + content: "\f239"; } + +.fa-chart-gantt::before { + content: "\e0e4"; } + +.fa-face-smile-upside-down::before { + content: "\e395"; } + +.fa-ball-pile::before { + content: "\f77e"; } + +.fa-badge-dollar::before { + content: "\f645"; } + +.fa-money-bills-simple::before { + content: "\e1f4"; } + +.fa-money-bills-alt::before { + content: "\e1f4"; } + +.fa-list-timeline::before { + content: "\e1d1"; } + +.fa-indian-rupee-sign::before { + content: "\e1bc"; } + +.fa-indian-rupee::before { + content: "\e1bc"; } + +.fa-inr::before { + content: "\e1bc"; } + +.fa-crop-simple::before { + content: "\f565"; } + +.fa-crop-alt::before { + content: "\f565"; } + +.fa-money-bill-1::before { + content: "\f3d1"; } + +.fa-money-bill-alt::before { + content: "\f3d1"; } + +.fa-left-long::before { + content: "\f30a"; } + +.fa-long-arrow-alt-left::before { + content: "\f30a"; } + +.fa-keyboard-down::before { + content: "\e1c2"; } + +.fa-circle-up-right::before { + content: "\e129"; } + +.fa-cloud-bolt-moon::before { + content: "\f76d"; } + +.fa-thunderstorm-moon::before { + content: "\f76d"; } + +.fa-turn-left-up::before { + content: "\e638"; } + +.fa-dna::before { + content: "\f471"; } + +.fa-virus-slash::before { + content: "\e075"; } + +.fa-bracket-round-right::before { + content: "\29"; } + +.fa-circle-sterling::before { + content: "\e5cf"; } + +.fa-circle-5::before { + content: "\e0f2"; } + +.fa-minus::before { + content: "\f068"; } + +.fa-subtract::before { + content: "\f068"; } + +.fa-fire-flame::before { + content: "\f6df"; } + +.fa-flame::before { + content: "\f6df"; } + +.fa-right-to-line::before { + content: "\f34c"; } + +.fa-arrow-alt-to-right::before { + content: "\f34c"; } + +.fa-gif::before { + content: "\e190"; } + +.fa-chess::before { + content: "\f439"; } + +.fa-trash-slash::before { + content: "\e2b3"; } + +.fa-arrow-left-long::before { + content: "\f177"; } + +.fa-long-arrow-left::before { + content: "\f177"; } + +.fa-plug-circle-check::before { + content: "\e55c"; } + +.fa-font-case::before { + content: "\f866"; } + +.fa-street-view::before { + content: "\f21d"; } + +.fa-arrow-down-left::before { + content: "\e091"; } + +.fa-franc-sign::before { + content: "\e18f"; } + +.fa-flask-round-poison::before { + content: "\f6e0"; } + +.fa-flask-poison::before { + content: "\f6e0"; } + +.fa-volume-off::before { + content: "\f026"; } + +.fa-book-circle-arrow-right::before { + content: "\e0bc"; } + +.fa-chart-user::before { + content: "\f6a3"; } + +.fa-user-chart::before { + content: "\f6a3"; } + +.fa-hands-asl-interpreting::before { + content: "\f2a3"; } + +.fa-american-sign-language-interpreting::before { + content: "\f2a3"; } + +.fa-asl-interpreting::before { + content: "\f2a3"; } + +.fa-hands-american-sign-language-interpreting::before { + content: "\f2a3"; } + +.fa-presentation-screen::before { + content: "\f685"; } + +.fa-presentation::before { + content: "\f685"; } + +.fa-circle-bolt::before { + content: "\e0fe"; } + +.fa-face-smile-halo::before { + content: "\e38f"; } + +.fa-cart-circle-arrow-down::before { + content: "\e3ef"; } + +.fa-house-person-return::before { + content: "\e011"; } + +.fa-house-person-arrive::before { + content: "\e011"; } + +.fa-house-return::before { + content: "\e011"; } + +.fa-message-xmark::before { + content: "\f4ab"; } + +.fa-comment-alt-times::before { + content: "\f4ab"; } + +.fa-message-times::before { + content: "\f4ab"; } + +.fa-file-certificate::before { + content: "\f5f3"; } + +.fa-file-award::before { + content: "\f5f3"; } + +.fa-user-doctor-hair-long::before { + content: "\e459"; } + +.fa-camera-security::before { + content: "\f8fe"; } + +.fa-camera-home::before { + content: "\f8fe"; } + +.fa-gear::before { + content: "\f013"; } + +.fa-cog::before { + content: "\f013"; } + +.fa-droplet-slash::before { + content: "\f5c7"; } + +.fa-tint-slash::before { + content: "\f5c7"; } + +.fa-book-heart::before { + content: "\f499"; } + +.fa-mosque::before { + content: "\f678"; } + +.fa-duck::before { + content: "\f6d8"; } + +.fa-mosquito::before { + content: "\e52b"; } + +.fa-star-of-david::before { + content: "\f69a"; } + +.fa-flag-swallowtail::before { + content: "\f74c"; } + +.fa-flag-alt::before { + content: "\f74c"; } + +.fa-person-military-rifle::before { + content: "\e54b"; } + +.fa-car-garage::before { + content: "\f5e2"; } + +.fa-cart-shopping::before { + content: "\f07a"; } + +.fa-shopping-cart::before { + content: "\f07a"; } + +.fa-book-font::before { + content: "\e0bf"; } + +.fa-shield-plus::before { + content: "\e24a"; } + +.fa-vials::before { + content: "\f493"; } + +.fa-eye-dropper-full::before { + content: "\e172"; } + +.fa-distribute-spacing-horizontal::before { + content: "\e365"; } + +.fa-tablet-rugged::before { + content: "\f48f"; } + +.fa-temperature-snow::before { + content: "\f768"; } + +.fa-temperature-frigid::before { + content: "\f768"; } + +.fa-moped::before { + content: "\e3b9"; } + +.fa-face-smile-plus::before { + content: "\f5b9"; } + +.fa-smile-plus::before { + content: "\f5b9"; } + +.fa-radio-tuner::before { + content: "\f8d8"; } + +.fa-radio-alt::before { + content: "\f8d8"; } + +.fa-face-swear::before { + content: "\e399"; } + +.fa-water-arrow-down::before { + content: "\f774"; } + +.fa-water-lower::before { + content: "\f774"; } + +.fa-scanner-touchscreen::before { + content: "\f48a"; } + +.fa-circle-7::before { + content: "\e0f4"; } + +.fa-plug-circle-plus::before { + content: "\e55f"; } + +.fa-person-ski-jumping::before { + content: "\f7c7"; } + +.fa-ski-jump::before { + content: "\f7c7"; } + +.fa-place-of-worship::before { + content: "\f67f"; } + +.fa-water-arrow-up::before { + content: "\f775"; } + +.fa-water-rise::before { + content: "\f775"; } + +.fa-waveform-lines::before { + content: "\f8f2"; } + +.fa-waveform-path::before { + content: "\f8f2"; } + +.fa-split::before { + content: "\e254"; } + +.fa-film-canister::before { + content: "\f8b7"; } + +.fa-film-cannister::before { + content: "\f8b7"; } + +.fa-folder-xmark::before { + content: "\f65f"; } + +.fa-folder-times::before { + content: "\f65f"; } + +.fa-toilet-paper-blank::before { + content: "\f71f"; } + +.fa-toilet-paper-alt::before { + content: "\f71f"; } + +.fa-tablet-screen::before { + content: "\f3fc"; } + +.fa-tablet-android-alt::before { + content: "\f3fc"; } + +.fa-hexagon-vertical-nft-slanted::before { + content: "\e506"; } + +.fa-folder-music::before { + content: "\e18d"; } + +.fa-display-medical::before { + content: "\e166"; } + +.fa-desktop-medical::before { + content: "\e166"; } + +.fa-share-all::before { + content: "\f367"; } + +.fa-peapod::before { + content: "\e31c"; } + +.fa-chess-clock::before { + content: "\f43d"; } + +.fa-axe::before { + content: "\f6b2"; } + +.fa-square-d::before { + content: "\e268"; } + +.fa-grip-vertical::before { + content: "\f58e"; } + +.fa-mobile-signal-out::before { + content: "\e1f0"; } + +.fa-arrow-turn-up::before { + content: "\f148"; } + +.fa-level-up::before { + content: "\f148"; } + +.fa-u::before { + content: "\55"; } + +.fa-arrow-up-from-dotted-line::before { + content: "\e09b"; } + +.fa-square-root-variable::before { + content: "\f698"; } + +.fa-square-root-alt::before { + content: "\f698"; } + +.fa-light-switch-on::before { + content: "\e019"; } + +.fa-arrow-down-arrow-up::before { + content: "\f883"; } + +.fa-sort-alt::before { + content: "\f883"; } + +.fa-raindrops::before { + content: "\f75c"; } + +.fa-dash::before { + content: "\e404"; } + +.fa-minus-large::before { + content: "\e404"; } + +.fa-clock::before { + content: "\f017"; } + +.fa-clock-four::before { + content: "\f017"; } + +.fa-input-numeric::before { + content: "\e1bd"; } + +.fa-truck-tow::before { + content: "\e2b8"; } + +.fa-backward-step::before { + content: "\f048"; } + +.fa-step-backward::before { + content: "\f048"; } + +.fa-pallet::before { + content: "\f482"; } + +.fa-car-bolt::before { + content: "\e341"; } + +.fa-arrows-maximize::before { + content: "\f31d"; } + +.fa-expand-arrows::before { + content: "\f31d"; } + +.fa-faucet::before { + content: "\e005"; } + +.fa-cloud-sleet::before { + content: "\f741"; } + +.fa-lamp-street::before { + content: "\e1c5"; } + +.fa-list-radio::before { + content: "\e1d0"; } + +.fa-pen-nib-slash::before { + content: "\e4a1"; } + +.fa-baseball-bat-ball::before { + content: "\f432"; } + +.fa-square-up-left::before { + content: "\e282"; } + +.fa-overline::before { + content: "\f876"; } + +.fa-s::before { + content: "\53"; } + +.fa-timeline::before { + content: "\e29c"; } + +.fa-keyboard::before { + content: "\f11c"; } + +.fa-arrows-from-dotted-line::before { + content: "\e0a3"; } + +.fa-usb-drive::before { + content: "\f8e9"; } + +.fa-ballot::before { + content: "\f732"; } + +.fa-caret-down::before { + content: "\f0d7"; } + +.fa-location-dot-slash::before { + content: "\f605"; } + +.fa-map-marker-alt-slash::before { + content: "\f605"; } + +.fa-cards::before { + content: "\e3ed"; } + +.fa-house-chimney-medical::before { + content: "\f7f2"; } + +.fa-clinic-medical::before { + content: "\f7f2"; } + +.fa-boxing-glove::before { + content: "\f438"; } + +.fa-glove-boxing::before { + content: "\f438"; } + +.fa-temperature-three-quarters::before { + content: "\f2c8"; } + +.fa-temperature-3::before { + content: "\f2c8"; } + +.fa-thermometer-3::before { + content: "\f2c8"; } + +.fa-thermometer-three-quarters::before { + content: "\f2c8"; } + +.fa-bell-school::before { + content: "\f5d5"; } + +.fa-mobile-screen::before { + content: "\f3cf"; } + +.fa-mobile-android-alt::before { + content: "\f3cf"; } + +.fa-plane-up::before { + content: "\e22d"; } + +.fa-folder-heart::before { + content: "\e189"; } + +.fa-circle-location-arrow::before { + content: "\f602"; } + +.fa-location-circle::before { + content: "\f602"; } + +.fa-face-head-bandage::before { + content: "\e37a"; } + +.fa-sushi-roll::before { + content: "\e48b"; } + +.fa-maki-roll::before { + content: "\e48b"; } + +.fa-makizushi::before { + content: "\e48b"; } + +.fa-car-bump::before { + content: "\f5e0"; } + +.fa-piggy-bank::before { + content: "\f4d3"; } + +.fa-racquet::before { + content: "\f45a"; } + +.fa-car-mirrors::before { + content: "\e343"; } + +.fa-industry-windows::before { + content: "\f3b3"; } + +.fa-industry-alt::before { + content: "\f3b3"; } + +.fa-bolt-auto::before { + content: "\e0b6"; } + +.fa-battery-half::before { + content: "\f242"; } + +.fa-battery-3::before { + content: "\f242"; } + +.fa-flux-capacitor::before { + content: "\f8ba"; } + +.fa-mountain-city::before { + content: "\e52e"; } + +.fa-coins::before { + content: "\f51e"; } + +.fa-honey-pot::before { + content: "\e418"; } + +.fa-olive::before { + content: "\e316"; } + +.fa-khanda::before { + content: "\f66d"; } + +.fa-filter-list::before { + content: "\e17c"; } + +.fa-outlet::before { + content: "\e01c"; } + +.fa-sliders::before { + content: "\f1de"; } + +.fa-sliders-h::before { + content: "\f1de"; } + +.fa-cauldron::before { + content: "\f6bf"; } + +.fa-people::before { + content: "\e216"; } + +.fa-folder-tree::before { + content: "\f802"; } + +.fa-network-wired::before { + content: "\f6ff"; } + +.fa-croissant::before { + content: "\f7f6"; } + +.fa-map-pin::before { + content: "\f276"; } + +.fa-hamsa::before { + content: "\f665"; } + +.fa-cent-sign::before { + content: "\e3f5"; } + +.fa-swords-laser::before { + content: "\e03d"; } + +.fa-flask::before { + content: "\f0c3"; } + +.fa-person-pregnant::before { + content: "\e31e"; } + +.fa-square-u::before { + content: "\e281"; } + +.fa-wand-sparkles::before { + content: "\f72b"; } + +.fa-router::before { + content: "\f8da"; } + +.fa-ellipsis-vertical::before { + content: "\f142"; } + +.fa-ellipsis-v::before { + content: "\f142"; } + +.fa-sword-laser-alt::before { + content: "\e03c"; } + +.fa-ticket::before { + content: "\f145"; } + +.fa-power-off::before { + content: "\f011"; } + +.fa-coin::before { + content: "\f85c"; } + +.fa-laptop-slash::before { + content: "\e1c7"; } + +.fa-right-long::before { + content: "\f30b"; } + +.fa-long-arrow-alt-right::before { + content: "\f30b"; } + +.fa-circle-b::before { + content: "\e0fd"; } + +.fa-person-dress-simple::before { + content: "\e21c"; } + +.fa-pipe-collar::before { + content: "\e437"; } + +.fa-lights-holiday::before { + content: "\f7b2"; } + +.fa-citrus::before { + content: "\e2f4"; } + +.fa-flag-usa::before { + content: "\f74d"; } + +.fa-laptop-file::before { + content: "\e51d"; } + +.fa-tty::before { + content: "\f1e4"; } + +.fa-teletype::before { + content: "\f1e4"; } + +.fa-chart-tree-map::before { + content: "\e0ea"; } + +.fa-diagram-next::before { + content: "\e476"; } + +.fa-person-rifle::before { + content: "\e54e"; } + +.fa-clock-five-thirty::before { + content: "\e34a"; } + +.fa-pipe-valve::before { + content: "\e439"; } + +.fa-arrow-up-from-arc::before { + content: "\e4b4"; } + +.fa-face-spiral-eyes::before { + content: "\e485"; } + +.fa-compress-wide::before { + content: "\f326"; } + +.fa-circle-phone-hangup::before { + content: "\e11d"; } + +.fa-phone-circle-down::before { + content: "\e11d"; } + +.fa-gear-complex-code::before { + content: "\e5eb"; } + +.fa-house-medical-circle-exclamation::before { + content: "\e512"; } + +.fa-badminton::before { + content: "\e33a"; } + +.fa-closed-captioning::before { + content: "\f20a"; } + +.fa-person-hiking::before { + content: "\f6ec"; } + +.fa-hiking::before { + content: "\f6ec"; } + +.fa-right-from-line::before { + content: "\f347"; } + +.fa-arrow-alt-from-left::before { + content: "\f347"; } + +.fa-venus-double::before { + content: "\f226"; } + +.fa-images::before { + content: "\f302"; } + +.fa-calculator::before { + content: "\f1ec"; } + +.fa-shuttlecock::before { + content: "\f45b"; } + +.fa-user-hair::before { + content: "\e45a"; } + +.fa-eye-evil::before { + content: "\f6db"; } + +.fa-people-pulling::before { + content: "\e535"; } + +.fa-n::before { + content: "\4e"; } + +.fa-swap::before { + content: "\e609"; } + +.fa-garage::before { + content: "\e009"; } + +.fa-cable-car::before { + content: "\f7da"; } + +.fa-tram::before { + content: "\f7da"; } + +.fa-shovel-snow::before { + content: "\f7c3"; } + +.fa-cloud-rain::before { + content: "\f73d"; } + +.fa-face-lying::before { + content: "\e37e"; } + +.fa-sprinkler::before { + content: "\e035"; } + +.fa-building-circle-xmark::before { + content: "\e4d4"; } + +.fa-person-sledding::before { + content: "\f7cb"; } + +.fa-sledding::before { + content: "\f7cb"; } + +.fa-game-console-handheld::before { + content: "\f8bb"; } + +.fa-ship::before { + content: "\f21a"; } + +.fa-clock-six-thirty::before { + content: "\e353"; } + +.fa-battery-slash::before { + content: "\f377"; } + +.fa-tugrik-sign::before { + content: "\e2ba"; } + +.fa-arrows-down-to-line::before { + content: "\e4b8"; } + +.fa-download::before { + content: "\f019"; } + +.fa-angles-up-down::before { + content: "\e60d"; } + +.fa-shelves::before { + content: "\f480"; } + +.fa-inventory::before { + content: "\f480"; } + +.fa-cloud-snow::before { + content: "\f742"; } + +.fa-face-grin::before { + content: "\f580"; } + +.fa-grin::before { + content: "\f580"; } + +.fa-delete-left::before { + content: "\f55a"; } + +.fa-backspace::before { + content: "\f55a"; } + +.fa-oven::before { + content: "\e01d"; } + +.fa-cloud-binary::before { + content: "\e601"; } + +.fa-eye-dropper::before { + content: "\f1fb"; } + +.fa-eye-dropper-empty::before { + content: "\f1fb"; } + +.fa-eyedropper::before { + content: "\f1fb"; } + +.fa-comment-captions::before { + content: "\e146"; } + +.fa-comments-question::before { + content: "\e14e"; } + +.fa-scribble::before { + content: "\e23f"; } + +.fa-rotate-exclamation::before { + content: "\e23c"; } + +.fa-file-circle-check::before { + content: "\e5a0"; } + +.fa-glass::before { + content: "\f804"; } + +.fa-loader::before { + content: "\e1d4"; } + +.fa-forward::before { + content: "\f04e"; } + +.fa-user-pilot::before { + content: "\e2c0"; } + +.fa-mobile::before { + content: "\f3ce"; } + +.fa-mobile-android::before { + content: "\f3ce"; } + +.fa-mobile-phone::before { + content: "\f3ce"; } + +.fa-code-pull-request-closed::before { + content: "\e3f9"; } + +.fa-face-meh::before { + content: "\f11a"; } + +.fa-meh::before { + content: "\f11a"; } + +.fa-align-center::before { + content: "\f037"; } + +.fa-book-skull::before { + content: "\f6b7"; } + +.fa-book-dead::before { + content: "\f6b7"; } + +.fa-id-card::before { + content: "\f2c2"; } + +.fa-drivers-license::before { + content: "\f2c2"; } + +.fa-face-dotted::before { + content: "\e47f"; } + +.fa-face-worried::before { + content: "\e3a3"; } + +.fa-outdent::before { + content: "\f03b"; } + +.fa-dedent::before { + content: "\f03b"; } + +.fa-court-sport::before { + content: "\e643"; } + +.fa-heart-circle-exclamation::before { + content: "\e4fe"; } + +.fa-house::before { + content: "\f015"; } + +.fa-home::before { + content: "\f015"; } + +.fa-home-alt::before { + content: "\f015"; } + +.fa-home-lg-alt::before { + content: "\f015"; } + +.fa-vector-circle::before { + content: "\e2c6"; } + +.fa-car-circle-bolt::before { + content: "\e342"; } + +.fa-calendar-week::before { + content: "\f784"; } + +.fa-flying-disc::before { + content: "\e3a9"; } + +.fa-laptop-medical::before { + content: "\f812"; } + +.fa-square-down-right::before { + content: "\e26c"; } + +.fa-b::before { + content: "\42"; } + +.fa-seat-airline::before { + content: "\e244"; } + +.fa-moon-over-sun::before { + content: "\f74a"; } + +.fa-eclipse-alt::before { + content: "\f74a"; } + +.fa-pipe::before { + content: "\7c"; } + +.fa-file-medical::before { + content: "\f477"; } + +.fa-potato::before { + content: "\e440"; } + +.fa-dice-one::before { + content: "\f525"; } + +.fa-circle-a::before { + content: "\e0f7"; } + +.fa-helmet-battle::before { + content: "\f6eb"; } + +.fa-butter::before { + content: "\e3e4"; } + +.fa-blanket-fire::before { + content: "\e3da"; } + +.fa-kiwi-bird::before { + content: "\f535"; } + +.fa-castle::before { + content: "\e0de"; } + +.fa-golf-club::before { + content: "\f451"; } + +.fa-arrow-right-arrow-left::before { + content: "\f0ec"; } + +.fa-exchange::before { + content: "\f0ec"; } + +.fa-rotate-right::before { + content: "\f2f9"; } + +.fa-redo-alt::before { + content: "\f2f9"; } + +.fa-rotate-forward::before { + content: "\f2f9"; } + +.fa-utensils::before { + content: "\f2e7"; } + +.fa-cutlery::before { + content: "\f2e7"; } + +.fa-arrow-up-wide-short::before { + content: "\f161"; } + +.fa-sort-amount-up::before { + content: "\f161"; } + +.fa-chart-pie-simple-circle-dollar::before { + content: "\e605"; } + +.fa-balloons::before { + content: "\e2e4"; } + +.fa-mill-sign::before { + content: "\e1ed"; } + +.fa-bowl-rice::before { + content: "\e2eb"; } + +.fa-timeline-arrow::before { + content: "\e29d"; } + +.fa-skull::before { + content: "\f54c"; } + +.fa-game-board-simple::before { + content: "\f868"; } + +.fa-game-board-alt::before { + content: "\f868"; } + +.fa-circle-video::before { + content: "\e12b"; } + +.fa-video-circle::before { + content: "\e12b"; } + +.fa-chart-scatter-bubble::before { + content: "\e0e9"; } + +.fa-house-turret::before { + content: "\e1b4"; } + +.fa-banana::before { + content: "\e2e5"; } + +.fa-hand-holding-skull::before { + content: "\e1a4"; } + +.fa-people-dress::before { + content: "\e217"; } + +.fa-loveseat::before { + content: "\f4cc"; } + +.fa-couch-small::before { + content: "\f4cc"; } + +.fa-tower-broadcast::before { + content: "\f519"; } + +.fa-broadcast-tower::before { + content: "\f519"; } + +.fa-truck-pickup::before { + content: "\f63c"; } + +.fa-block-quote::before { + content: "\e0b5"; } + +.fa-up-long::before { + content: "\f30c"; } + +.fa-long-arrow-alt-up::before { + content: "\f30c"; } + +.fa-stop::before { + content: "\f04d"; } + +.fa-code-merge::before { + content: "\f387"; } + +.fa-money-check-dollar-pen::before { + content: "\f873"; } + +.fa-money-check-edit-alt::before { + content: "\f873"; } + +.fa-up-from-line::before { + content: "\f346"; } + +.fa-arrow-alt-from-bottom::before { + content: "\f346"; } + +.fa-upload::before { + content: "\f093"; } + +.fa-hurricane::before { + content: "\f751"; } + +.fa-grid-round-2-plus::before { + content: "\e5dc"; } + +.fa-people-pants::before { + content: "\e219"; } + +.fa-mound::before { + content: "\e52d"; } + +.fa-windsock::before { + content: "\f777"; } + +.fa-circle-half::before { + content: "\e110"; } + +.fa-brake-warning::before { + content: "\e0c7"; } + +.fa-toilet-portable::before { + content: "\e583"; } + +.fa-compact-disc::before { + content: "\f51f"; } + +.fa-file-arrow-down::before { + content: "\f56d"; } + +.fa-file-download::before { + content: "\f56d"; } + +.fa-saxophone-fire::before { + content: "\f8db"; } + +.fa-sax-hot::before { + content: "\f8db"; } + +.fa-camera-web-slash::before { + content: "\f833"; } + +.fa-webcam-slash::before { + content: "\f833"; } + +.fa-folder-medical::before { + content: "\e18c"; } + +.fa-folder-gear::before { + content: "\e187"; } + +.fa-folder-cog::before { + content: "\e187"; } + +.fa-hand-wave::before { + content: "\e1a7"; } + +.fa-arrow-up-arrow-down::before { + content: "\e099"; } + +.fa-sort-up-down::before { + content: "\e099"; } + +.fa-caravan::before { + content: "\f8ff"; } + +.fa-shield-cat::before { + content: "\e572"; } + +.fa-message-slash::before { + content: "\f4a9"; } + +.fa-comment-alt-slash::before { + content: "\f4a9"; } + +.fa-bolt::before { + content: "\f0e7"; } + +.fa-zap::before { + content: "\f0e7"; } + +.fa-trash-can-check::before { + content: "\e2a9"; } + +.fa-glass-water::before { + content: "\e4f4"; } + +.fa-oil-well::before { + content: "\e532"; } + +.fa-person-simple::before { + content: "\e220"; } + +.fa-arrow-turn-left-up::before { + content: "\e634"; } + +.fa-vault::before { + content: "\e2c5"; } + +.fa-mars::before { + content: "\f222"; } + +.fa-toilet::before { + content: "\f7d8"; } + +.fa-plane-circle-xmark::before { + content: "\e557"; } + +.fa-yen-sign::before { + content: "\f157"; } + +.fa-cny::before { + content: "\f157"; } + +.fa-jpy::before { + content: "\f157"; } + +.fa-rmb::before { + content: "\f157"; } + +.fa-yen::before { + content: "\f157"; } + +.fa-gear-code::before { + content: "\e5e8"; } + +.fa-notes::before { + content: "\e202"; } + +.fa-ruble-sign::before { + content: "\f158"; } + +.fa-rouble::before { + content: "\f158"; } + +.fa-rub::before { + content: "\f158"; } + +.fa-ruble::before { + content: "\f158"; } + +.fa-trash-undo::before { + content: "\f895"; } + +.fa-trash-arrow-turn-left::before { + content: "\f895"; } + +.fa-champagne-glass::before { + content: "\f79e"; } + +.fa-glass-champagne::before { + content: "\f79e"; } + +.fa-objects-align-center-horizontal::before { + content: "\e3bc"; } + +.fa-sun::before { + content: "\f185"; } + +.fa-trash-can-slash::before { + content: "\e2ad"; } + +.fa-trash-alt-slash::before { + content: "\e2ad"; } + +.fa-screen-users::before { + content: "\f63d"; } + +.fa-users-class::before { + content: "\f63d"; } + +.fa-guitar::before { + content: "\f7a6"; } + +.fa-square-arrow-left::before { + content: "\f33a"; } + +.fa-arrow-square-left::before { + content: "\f33a"; } + +.fa-square-8::before { + content: "\e25d"; } + +.fa-face-smile-hearts::before { + content: "\e390"; } + +.fa-brackets-square::before { + content: "\f7e9"; } + +.fa-brackets::before { + content: "\f7e9"; } + +.fa-laptop-arrow-down::before { + content: "\e1c6"; } + +.fa-hockey-stick-puck::before { + content: "\e3ae"; } + +.fa-house-tree::before { + content: "\e1b3"; } + +.fa-signal-fair::before { + content: "\f68d"; } + +.fa-signal-2::before { + content: "\f68d"; } + +.fa-face-laugh-wink::before { + content: "\f59c"; } + +.fa-laugh-wink::before { + content: "\f59c"; } + +.fa-circle-dollar::before { + content: "\f2e8"; } + +.fa-dollar-circle::before { + content: "\f2e8"; } + +.fa-usd-circle::before { + content: "\f2e8"; } + +.fa-horse-head::before { + content: "\f7ab"; } + +.fa-arrows-repeat::before { + content: "\f364"; } + +.fa-repeat-alt::before { + content: "\f364"; } + +.fa-bore-hole::before { + content: "\e4c3"; } + +.fa-industry::before { + content: "\f275"; } + +.fa-image-polaroid::before { + content: "\f8c4"; } + +.fa-wave-triangle::before { + content: "\f89a"; } + +.fa-turn-left-down::before { + content: "\e637"; } + +.fa-person-running-fast::before { + content: "\e5ff"; } + +.fa-circle-down::before { + content: "\f358"; } + +.fa-arrow-alt-circle-down::before { + content: "\f358"; } + +.fa-grill::before { + content: "\e5a3"; } + +.fa-arrows-turn-to-dots::before { + content: "\e4c1"; } + +.fa-chart-mixed::before { + content: "\f643"; } + +.fa-analytics::before { + content: "\f643"; } + +.fa-florin-sign::before { + content: "\e184"; } + +.fa-arrow-down-short-wide::before { + content: "\f884"; } + +.fa-sort-amount-desc::before { + content: "\f884"; } + +.fa-sort-amount-down-alt::before { + content: "\f884"; } + +.fa-less-than::before { + content: "\3c"; } + +.fa-display-code::before { + content: "\e165"; } + +.fa-desktop-code::before { + content: "\e165"; } + +.fa-face-drooling::before { + content: "\e372"; } + +.fa-oil-temperature::before { + content: "\f614"; } + +.fa-oil-temp::before { + content: "\f614"; } + +.fa-square-question::before { + content: "\f2fd"; } + +.fa-question-square::before { + content: "\f2fd"; } + +.fa-air-conditioner::before { + content: "\f8f4"; } + +.fa-angle-down::before { + content: "\f107"; } + +.fa-mountains::before { + content: "\f6fd"; } + +.fa-omega::before { + content: "\f67a"; } + +.fa-car-tunnel::before { + content: "\e4de"; } + +.fa-person-dolly-empty::before { + content: "\f4d1"; } + +.fa-pan-food::before { + content: "\e42b"; } + +.fa-head-side-cough::before { + content: "\e061"; } + +.fa-grip-lines::before { + content: "\f7a4"; } + +.fa-thumbs-down::before { + content: "\f165"; } + +.fa-user-lock::before { + content: "\f502"; } + +.fa-arrow-right-long::before { + content: "\f178"; } + +.fa-long-arrow-right::before { + content: "\f178"; } + +.fa-tickets-airline::before { + content: "\e29b"; } + +.fa-tickets-perforated-plane::before { + content: "\e29b"; } + +.fa-tickets-plane::before { + content: "\e29b"; } + +.fa-tent-double-peak::before { + content: "\e627"; } + +.fa-anchor-circle-xmark::before { + content: "\e4ac"; } + +.fa-ellipsis::before { + content: "\f141"; } + +.fa-ellipsis-h::before { + content: "\f141"; } + +.fa-nfc-slash::before { + content: "\e1fc"; } + +.fa-chess-pawn::before { + content: "\f443"; } + +.fa-kit-medical::before { + content: "\f479"; } + +.fa-first-aid::before { + content: "\f479"; } + +.fa-grid-2-plus::before { + content: "\e197"; } + +.fa-bells::before { + content: "\f77f"; } + +.fa-person-through-window::before { + content: "\e5a9"; } + +.fa-toolbox::before { + content: "\f552"; } + +.fa-envelope-dot::before { + content: "\e16f"; } + +.fa-envelope-badge::before { + content: "\e16f"; } + +.fa-magnifying-glass-waveform::before { + content: "\e661"; } + +.fa-hands-holding-circle::before { + content: "\e4fb"; } + +.fa-bug::before { + content: "\f188"; } + +.fa-bowl-chopsticks::before { + content: "\e2e9"; } + +.fa-credit-card::before { + content: "\f09d"; } + +.fa-credit-card-alt::before { + content: "\f09d"; } + +.fa-circle-s::before { + content: "\e121"; } + +.fa-box-ballot::before { + content: "\f735"; } + +.fa-car::before { + content: "\f1b9"; } + +.fa-automobile::before { + content: "\f1b9"; } + +.fa-hand-holding-hand::before { + content: "\e4f7"; } + +.fa-user-tie-hair::before { + content: "\e45f"; } + +.fa-podium-star::before { + content: "\f758"; } + +.fa-user-hair-mullet::before { + content: "\e45c"; } + +.fa-business-front::before { + content: "\e45c"; } + +.fa-party-back::before { + content: "\e45c"; } + +.fa-trian-balbot::before { + content: "\e45c"; } + +.fa-microphone-stand::before { + content: "\f8cb"; } + +.fa-book-open-reader::before { + content: "\f5da"; } + +.fa-book-reader::before { + content: "\f5da"; } + +.fa-family-dress::before { + content: "\e301"; } + +.fa-circle-x::before { + content: "\e12e"; } + +.fa-cabin::before { + content: "\e46d"; } + +.fa-mountain-sun::before { + content: "\e52f"; } + +.fa-chart-simple-horizontal::before { + content: "\e474"; } + +.fa-arrows-left-right-to-line::before { + content: "\e4ba"; } + +.fa-hand-back-point-left::before { + content: "\e19f"; } + +.fa-message-dots::before { + content: "\f4a3"; } + +.fa-comment-alt-dots::before { + content: "\f4a3"; } + +.fa-messaging::before { + content: "\f4a3"; } + +.fa-file-heart::before { + content: "\e176"; } + +.fa-beer-mug::before { + content: "\e0b3"; } + +.fa-beer-foam::before { + content: "\e0b3"; } + +.fa-dice-d20::before { + content: "\f6cf"; } + +.fa-drone::before { + content: "\f85f"; } + +.fa-truck-droplet::before { + content: "\e58c"; } + +.fa-file-circle-xmark::before { + content: "\e5a1"; } + +.fa-temperature-arrow-up::before { + content: "\e040"; } + +.fa-temperature-up::before { + content: "\e040"; } + +.fa-medal::before { + content: "\f5a2"; } + +.fa-person-fairy::before { + content: "\e608"; } + +.fa-bed::before { + content: "\f236"; } + +.fa-book-copy::before { + content: "\e0be"; } + +.fa-square-h::before { + content: "\f0fd"; } + +.fa-h-square::before { + content: "\f0fd"; } + +.fa-square-c::before { + content: "\e266"; } + +.fa-clock-two::before { + content: "\e35a"; } + +.fa-square-ellipsis-vertical::before { + content: "\e26f"; } + +.fa-calendar-users::before { + content: "\e5e2"; } + +.fa-podcast::before { + content: "\f2ce"; } + +.fa-bee::before { + content: "\e0b2"; } + +.fa-temperature-full::before { + content: "\f2c7"; } + +.fa-temperature-4::before { + content: "\f2c7"; } + +.fa-thermometer-4::before { + content: "\f2c7"; } + +.fa-thermometer-full::before { + content: "\f2c7"; } + +.fa-bell::before { + content: "\f0f3"; } + +.fa-candy-bar::before { + content: "\e3e8"; } + +.fa-chocolate-bar::before { + content: "\e3e8"; } + +.fa-xmark-large::before { + content: "\e59b"; } + +.fa-pinata::before { + content: "\e3c3"; } + +.fa-file-ppt::before { + content: "\e64a"; } + +.fa-arrows-from-line::before { + content: "\e0a4"; } + +.fa-superscript::before { + content: "\f12b"; } + +.fa-bowl-spoon::before { + content: "\e3e0"; } + +.fa-hexagon-check::before { + content: "\e416"; } + +.fa-plug-circle-xmark::before { + content: "\e560"; } + +.fa-star-of-life::before { + content: "\f621"; } + +.fa-phone-slash::before { + content: "\f3dd"; } + +.fa-traffic-light-stop::before { + content: "\f63a"; } + +.fa-paint-roller::before { + content: "\f5aa"; } + +.fa-accent-grave::before { + content: "\60"; } + +.fa-handshake-angle::before { + content: "\f4c4"; } + +.fa-hands-helping::before { + content: "\f4c4"; } + +.fa-circle-0::before { + content: "\e0ed"; } + +.fa-dial-med-low::before { + content: "\e160"; } + +.fa-location-dot::before { + content: "\f3c5"; } + +.fa-map-marker-alt::before { + content: "\f3c5"; } + +.fa-crab::before { + content: "\e3ff"; } + +.fa-box-open-full::before { + content: "\f49c"; } + +.fa-box-full::before { + content: "\f49c"; } + +.fa-file::before { + content: "\f15b"; } + +.fa-greater-than::before { + content: "\3e"; } + +.fa-quotes::before { + content: "\e234"; } + +.fa-pretzel::before { + content: "\e441"; } + +.fa-t-rex::before { + content: "\e629"; } + +.fa-person-swimming::before { + content: "\f5c4"; } + +.fa-swimmer::before { + content: "\f5c4"; } + +.fa-arrow-down::before { + content: "\f063"; } + +.fa-user-robot-xmarks::before { + content: "\e4a7"; } + +.fa-message-quote::before { + content: "\e1e4"; } + +.fa-comment-alt-quote::before { + content: "\e1e4"; } + +.fa-candy-corn::before { + content: "\f6bd"; } + +.fa-folder-magnifying-glass::before { + content: "\e18b"; } + +.fa-folder-search::before { + content: "\e18b"; } + +.fa-notebook::before { + content: "\e201"; } + +.fa-circle-wifi::before { + content: "\e67d"; } + +.fa-droplet::before { + content: "\f043"; } + +.fa-tint::before { + content: "\f043"; } + +.fa-bullseye-pointer::before { + content: "\f649"; } + +.fa-eraser::before { + content: "\f12d"; } + +.fa-hexagon-image::before { + content: "\e504"; } + +.fa-earth-americas::before { + content: "\f57d"; } + +.fa-earth::before { + content: "\f57d"; } + +.fa-earth-america::before { + content: "\f57d"; } + +.fa-globe-americas::before { + content: "\f57d"; } + +.fa-file-svg::before { + content: "\e64b"; } + +.fa-crate-apple::before { + content: "\f6b1"; } + +.fa-apple-crate::before { + content: "\f6b1"; } + +.fa-person-burst::before { + content: "\e53b"; } + +.fa-game-board::before { + content: "\f867"; } + +.fa-hat-chef::before { + content: "\f86b"; } + +.fa-hand-back-point-right::before { + content: "\e1a1"; } + +.fa-dove::before { + content: "\f4ba"; } + +.fa-snowflake-droplets::before { + content: "\e5c1"; } + +.fa-battery-empty::before { + content: "\f244"; } + +.fa-battery-0::before { + content: "\f244"; } + +.fa-grid-4::before { + content: "\e198"; } + +.fa-socks::before { + content: "\f696"; } + +.fa-face-sunglasses::before { + content: "\e398"; } + +.fa-inbox::before { + content: "\f01c"; } + +.fa-square-0::before { + content: "\e255"; } + +.fa-section::before { + content: "\e447"; } + +.fa-square-this-way-up::before { + content: "\f49f"; } + +.fa-box-up::before { + content: "\f49f"; } + +.fa-gauge-high::before { + content: "\f625"; } + +.fa-tachometer-alt::before { + content: "\f625"; } + +.fa-tachometer-alt-fast::before { + content: "\f625"; } + +.fa-square-ampersand::before { + content: "\e260"; } + +.fa-envelope-open-text::before { + content: "\f658"; } + +.fa-lamp-desk::before { + content: "\e014"; } + +.fa-hospital::before { + content: "\f0f8"; } + +.fa-hospital-alt::before { + content: "\f0f8"; } + +.fa-hospital-wide::before { + content: "\f0f8"; } + +.fa-poll-people::before { + content: "\f759"; } + +.fa-whiskey-glass-ice::before { + content: "\f7a1"; } + +.fa-glass-whiskey-rocks::before { + content: "\f7a1"; } + +.fa-wine-bottle::before { + content: "\f72f"; } + +.fa-chess-rook::before { + content: "\f447"; } + +.fa-user-bounty-hunter::before { + content: "\e2bf"; } + +.fa-bars-staggered::before { + content: "\f550"; } + +.fa-reorder::before { + content: "\f550"; } + +.fa-stream::before { + content: "\f550"; } + +.fa-diagram-sankey::before { + content: "\e158"; } + +.fa-cloud-hail-mixed::before { + content: "\f73a"; } + +.fa-circle-up-left::before { + content: "\e128"; } + +.fa-dharmachakra::before { + content: "\f655"; } + +.fa-objects-align-left::before { + content: "\e3be"; } + +.fa-oil-can-drip::before { + content: "\e205"; } + +.fa-face-smiling-hands::before { + content: "\e396"; } + +.fa-broccoli::before { + content: "\e3e2"; } + +.fa-route-interstate::before { + content: "\f61b"; } + +.fa-ear-muffs::before { + content: "\f795"; } + +.fa-hotdog::before { + content: "\f80f"; } + +.fa-transporter-empty::before { + content: "\e046"; } + +.fa-person-walking-with-cane::before { + content: "\f29d"; } + +.fa-blind::before { + content: "\f29d"; } + +.fa-angle-90::before { + content: "\e08d"; } + +.fa-rectangle-terminal::before { + content: "\e236"; } + +.fa-kite::before { + content: "\f6f4"; } + +.fa-drum::before { + content: "\f569"; } + +.fa-scrubber::before { + content: "\f2f8"; } + +.fa-ice-cream::before { + content: "\f810"; } + +.fa-heart-circle-bolt::before { + content: "\e4fc"; } + +.fa-fish-bones::before { + content: "\e304"; } + +.fa-deer-rudolph::before { + content: "\f78f"; } + +.fa-fax::before { + content: "\f1ac"; } + +.fa-paragraph::before { + content: "\f1dd"; } + +.fa-head-side-heart::before { + content: "\e1aa"; } + +.fa-square-e::before { + content: "\e26d"; } + +.fa-meter-fire::before { + content: "\e1eb"; } + +.fa-cloud-hail::before { + content: "\f739"; } + +.fa-check-to-slot::before { + content: "\f772"; } + +.fa-vote-yea::before { + content: "\f772"; } + +.fa-money-from-bracket::before { + content: "\e312"; } + +.fa-star-half::before { + content: "\f089"; } + +.fa-car-bus::before { + content: "\f85a"; } + +.fa-speaker::before { + content: "\f8df"; } + +.fa-timer::before { + content: "\e29e"; } + +.fa-boxes-stacked::before { + content: "\f468"; } + +.fa-boxes::before { + content: "\f468"; } + +.fa-boxes-alt::before { + content: "\f468"; } + +.fa-landmark-magnifying-glass::before { + content: "\e622"; } + +.fa-grill-hot::before { + content: "\e5a5"; } + +.fa-ballot-check::before { + content: "\f733"; } + +.fa-link::before { + content: "\f0c1"; } + +.fa-chain::before { + content: "\f0c1"; } + +.fa-ear-listen::before { + content: "\f2a2"; } + +.fa-assistive-listening-systems::before { + content: "\f2a2"; } + +.fa-file-minus::before { + content: "\f318"; } + +.fa-tree-city::before { + content: "\e587"; } + +.fa-play::before { + content: "\f04b"; } + +.fa-font::before { + content: "\f031"; } + +.fa-cup-togo::before { + content: "\f6c5"; } + +.fa-coffee-togo::before { + content: "\f6c5"; } + +.fa-square-down-left::before { + content: "\e26b"; } + +.fa-burger-lettuce::before { + content: "\e3e3"; } + +.fa-table-cells-row-lock::before { + content: "\e67a"; } + +.fa-rupiah-sign::before { + content: "\e23d"; } + +.fa-magnifying-glass::before { + content: "\f002"; } + +.fa-search::before { + content: "\f002"; } + +.fa-table-tennis-paddle-ball::before { + content: "\f45d"; } + +.fa-ping-pong-paddle-ball::before { + content: "\f45d"; } + +.fa-table-tennis::before { + content: "\f45d"; } + +.fa-person-dots-from-line::before { + content: "\f470"; } + +.fa-diagnoses::before { + content: "\f470"; } + +.fa-chevrons-down::before { + content: "\f322"; } + +.fa-chevron-double-down::before { + content: "\f322"; } + +.fa-trash-can-arrow-up::before { + content: "\f82a"; } + +.fa-trash-restore-alt::before { + content: "\f82a"; } + +.fa-signal-good::before { + content: "\f68e"; } + +.fa-signal-3::before { + content: "\f68e"; } + +.fa-location-question::before { + content: "\f60b"; } + +.fa-map-marker-question::before { + content: "\f60b"; } + +.fa-floppy-disk-circle-xmark::before { + content: "\e181"; } + +.fa-floppy-disk-times::before { + content: "\e181"; } + +.fa-save-circle-xmark::before { + content: "\e181"; } + +.fa-save-times::before { + content: "\e181"; } + +.fa-naira-sign::before { + content: "\e1f6"; } + +.fa-peach::before { + content: "\e20b"; } + +.fa-taxi-bus::before { + content: "\e298"; } + +.fa-bracket-curly::before { + content: "\7b"; } + +.fa-bracket-curly-left::before { + content: "\7b"; } + +.fa-lobster::before { + content: "\e421"; } + +.fa-cart-flatbed-empty::before { + content: "\f476"; } + +.fa-dolly-flatbed-empty::before { + content: "\f476"; } + +.fa-colon::before { + content: "\3a"; } + +.fa-cart-arrow-down::before { + content: "\f218"; } + +.fa-wand::before { + content: "\f72a"; } + +.fa-walkie-talkie::before { + content: "\f8ef"; } + +.fa-file-pen::before { + content: "\f31c"; } + +.fa-file-edit::before { + content: "\f31c"; } + +.fa-receipt::before { + content: "\f543"; } + +.fa-table-picnic::before { + content: "\e32d"; } + +.fa-square-pen::before { + content: "\f14b"; } + +.fa-pen-square::before { + content: "\f14b"; } + +.fa-pencil-square::before { + content: "\f14b"; } + +.fa-circle-microphone-lines::before { + content: "\e117"; } + +.fa-microphone-circle-alt::before { + content: "\e117"; } + +.fa-display-slash::before { + content: "\e2fa"; } + +.fa-desktop-slash::before { + content: "\e2fa"; } + +.fa-suitcase-rolling::before { + content: "\f5c1"; } + +.fa-person-circle-exclamation::before { + content: "\e53f"; } + +.fa-transporter-2::before { + content: "\e044"; } + +.fa-hands-holding-diamond::before { + content: "\f47c"; } + +.fa-hand-receiving::before { + content: "\f47c"; } + +.fa-money-bill-simple-wave::before { + content: "\e1f2"; } + +.fa-chevron-down::before { + content: "\f078"; } + +.fa-battery-full::before { + content: "\f240"; } + +.fa-battery::before { + content: "\f240"; } + +.fa-battery-5::before { + content: "\f240"; } + +.fa-bell-plus::before { + content: "\f849"; } + +.fa-book-arrow-right::before { + content: "\e0b9"; } + +.fa-hospitals::before { + content: "\f80e"; } + +.fa-club::before { + content: "\f327"; } + +.fa-skull-crossbones::before { + content: "\f714"; } + +.fa-droplet-degree::before { + content: "\f748"; } + +.fa-dewpoint::before { + content: "\f748"; } + +.fa-code-compare::before { + content: "\e13a"; } + +.fa-list-ul::before { + content: "\f0ca"; } + +.fa-list-dots::before { + content: "\f0ca"; } + +.fa-hand-holding-magic::before { + content: "\f6e5"; } + +.fa-watermelon-slice::before { + content: "\e337"; } + +.fa-circle-ellipsis::before { + content: "\e10a"; } + +.fa-school-lock::before { + content: "\e56f"; } + +.fa-tower-cell::before { + content: "\e585"; } + +.fa-sd-cards::before { + content: "\e240"; } + +.fa-jug-bottle::before { + content: "\e5fb"; } + +.fa-down-long::before { + content: "\f309"; } + +.fa-long-arrow-alt-down::before { + content: "\f309"; } + +.fa-envelopes::before { + content: "\e170"; } + +.fa-phone-office::before { + content: "\f67d"; } + +.fa-ranking-star::before { + content: "\e561"; } + +.fa-chess-king::before { + content: "\f43f"; } + +.fa-nfc-pen::before { + content: "\e1fa"; } + +.fa-person-harassing::before { + content: "\e549"; } + +.fa-magnifying-glass-play::before { + content: "\e660"; } + +.fa-hat-winter::before { + content: "\f7a8"; } + +.fa-brazilian-real-sign::before { + content: "\e46c"; } + +.fa-landmark-dome::before { + content: "\f752"; } + +.fa-landmark-alt::before { + content: "\f752"; } + +.fa-bone-break::before { + content: "\f5d8"; } + +.fa-arrow-up::before { + content: "\f062"; } + +.fa-down-from-dotted-line::before { + content: "\e407"; } + +.fa-tv::before { + content: "\f26c"; } + +.fa-television::before { + content: "\f26c"; } + +.fa-tv-alt::before { + content: "\f26c"; } + +.fa-border-left::before { + content: "\f84f"; } + +.fa-circle-divide::before { + content: "\e106"; } + +.fa-shrimp::before { + content: "\e448"; } + +.fa-list-check::before { + content: "\f0ae"; } + +.fa-tasks::before { + content: "\f0ae"; } + +.fa-diagram-subtask::before { + content: "\e479"; } + +.fa-jug-detergent::before { + content: "\e519"; } + +.fa-circle-user::before { + content: "\f2bd"; } + +.fa-user-circle::before { + content: "\f2bd"; } + +.fa-square-y::before { + content: "\e287"; } + +.fa-user-doctor-hair::before { + content: "\e458"; } + +.fa-planet-ringed::before { + content: "\e020"; } + +.fa-mushroom::before { + content: "\e425"; } + +.fa-user-shield::before { + content: "\f505"; } + +.fa-megaphone::before { + content: "\f675"; } + +.fa-wreath-laurel::before { + content: "\e5d2"; } + +.fa-circle-exclamation-check::before { + content: "\e10d"; } + +.fa-wind::before { + content: "\f72e"; } + +.fa-box-dollar::before { + content: "\f4a0"; } + +.fa-box-usd::before { + content: "\f4a0"; } + +.fa-car-burst::before { + content: "\f5e1"; } + +.fa-car-crash::before { + content: "\f5e1"; } + +.fa-y::before { + content: "\59"; } + +.fa-user-headset::before { + content: "\f82d"; } + +.fa-arrows-retweet::before { + content: "\f361"; } + +.fa-retweet-alt::before { + content: "\f361"; } + +.fa-person-snowboarding::before { + content: "\f7ce"; } + +.fa-snowboarding::before { + content: "\f7ce"; } + +.fa-square-chevron-right::before { + content: "\f32b"; } + +.fa-chevron-square-right::before { + content: "\f32b"; } + +.fa-lacrosse-stick-ball::before { + content: "\e3b6"; } + +.fa-truck-fast::before { + content: "\f48b"; } + +.fa-shipping-fast::before { + content: "\f48b"; } + +.fa-user-magnifying-glass::before { + content: "\e5c5"; } + +.fa-star-sharp::before { + content: "\e28b"; } + +.fa-comment-heart::before { + content: "\e5c8"; } + +.fa-circle-1::before { + content: "\e0ee"; } + +.fa-circle-star::before { + content: "\e123"; } + +.fa-star-circle::before { + content: "\e123"; } + +.fa-fish::before { + content: "\f578"; } + +.fa-cloud-fog::before { + content: "\f74e"; } + +.fa-fog::before { + content: "\f74e"; } + +.fa-waffle::before { + content: "\e466"; } + +.fa-music-note::before { + content: "\f8cf"; } + +.fa-music-alt::before { + content: "\f8cf"; } + +.fa-hexagon-exclamation::before { + content: "\e417"; } + +.fa-cart-shopping-fast::before { + content: "\e0dc"; } + +.fa-object-union::before { + content: "\e49f"; } + +.fa-user-graduate::before { + content: "\f501"; } + +.fa-starfighter::before { + content: "\e037"; } + +.fa-circle-half-stroke::before { + content: "\f042"; } + +.fa-adjust::before { + content: "\f042"; } + +.fa-arrow-right-long-to-line::before { + content: "\e3d5"; } + +.fa-square-arrow-down::before { + content: "\f339"; } + +.fa-arrow-square-down::before { + content: "\f339"; } + +.fa-diamond-half-stroke::before { + content: "\e5b8"; } + +.fa-clapperboard::before { + content: "\e131"; } + +.fa-square-chevron-left::before { + content: "\f32a"; } + +.fa-chevron-square-left::before { + content: "\f32a"; } + +.fa-phone-intercom::before { + content: "\e434"; } + +.fa-link-horizontal::before { + content: "\e1cb"; } + +.fa-chain-horizontal::before { + content: "\e1cb"; } + +.fa-mango::before { + content: "\e30f"; } + +.fa-music-note-slash::before { + content: "\f8d0"; } + +.fa-music-alt-slash::before { + content: "\f8d0"; } + +.fa-circle-radiation::before { + content: "\f7ba"; } + +.fa-radiation-alt::before { + content: "\f7ba"; } + +.fa-face-tongue-sweat::before { + content: "\e39e"; } + +.fa-globe-stand::before { + content: "\f5f6"; } + +.fa-baseball::before { + content: "\f433"; } + +.fa-baseball-ball::before { + content: "\f433"; } + +.fa-circle-p::before { + content: "\e11a"; } + +.fa-award-simple::before { + content: "\e0ab"; } + +.fa-jet-fighter-up::before { + content: "\e518"; } + +.fa-diagram-project::before { + content: "\f542"; } + +.fa-project-diagram::before { + content: "\f542"; } + +.fa-pedestal::before { + content: "\e20d"; } + +.fa-chart-pyramid::before { + content: "\e0e6"; } + +.fa-sidebar::before { + content: "\e24e"; } + +.fa-snowman-head::before { + content: "\f79b"; } + +.fa-frosty-head::before { + content: "\f79b"; } + +.fa-copy::before { + content: "\f0c5"; } + +.fa-burger-glass::before { + content: "\e0ce"; } + +.fa-volume-xmark::before { + content: "\f6a9"; } + +.fa-volume-mute::before { + content: "\f6a9"; } + +.fa-volume-times::before { + content: "\f6a9"; } + +.fa-hand-sparkles::before { + content: "\e05d"; } + +.fa-bars-filter::before { + content: "\e0ad"; } + +.fa-paintbrush-pencil::before { + content: "\e206"; } + +.fa-party-bell::before { + content: "\e31a"; } + +.fa-user-vneck-hair::before { + content: "\e462"; } + +.fa-jack-o-lantern::before { + content: "\f30e"; } + +.fa-grip::before { + content: "\f58d"; } + +.fa-grip-horizontal::before { + content: "\f58d"; } + +.fa-share-from-square::before { + content: "\f14d"; } + +.fa-share-square::before { + content: "\f14d"; } + +.fa-keynote::before { + content: "\f66c"; } + +.fa-child-combatant::before { + content: "\e4e0"; } + +.fa-child-rifle::before { + content: "\e4e0"; } + +.fa-gun::before { + content: "\e19b"; } + +.fa-square-phone::before { + content: "\f098"; } + +.fa-phone-square::before { + content: "\f098"; } + +.fa-hat-beach::before { + content: "\e606"; } + +.fa-plus::before { + content: "\2b"; } + +.fa-add::before { + content: "\2b"; } + +.fa-expand::before { + content: "\f065"; } + +.fa-computer::before { + content: "\e4e5"; } + +.fa-fort::before { + content: "\e486"; } + +.fa-cloud-check::before { + content: "\e35c"; } + +.fa-xmark::before { + content: "\f00d"; } + +.fa-close::before { + content: "\f00d"; } + +.fa-multiply::before { + content: "\f00d"; } + +.fa-remove::before { + content: "\f00d"; } + +.fa-times::before { + content: "\f00d"; } + +.fa-face-smirking::before { + content: "\e397"; } + +.fa-arrows-up-down-left-right::before { + content: "\f047"; } + +.fa-arrows::before { + content: "\f047"; } + +.fa-chalkboard-user::before { + content: "\f51c"; } + +.fa-chalkboard-teacher::before { + content: "\f51c"; } + +.fa-rhombus::before { + content: "\e23b"; } + +.fa-claw-marks::before { + content: "\f6c2"; } + +.fa-peso-sign::before { + content: "\e222"; } + +.fa-face-smile-tongue::before { + content: "\e394"; } + +.fa-cart-circle-xmark::before { + content: "\e3f4"; } + +.fa-building-shield::before { + content: "\e4d8"; } + +.fa-circle-phone-flip::before { + content: "\e11c"; } + +.fa-phone-circle-alt::before { + content: "\e11c"; } + +.fa-baby::before { + content: "\f77c"; } + +.fa-users-line::before { + content: "\e592"; } + +.fa-quote-left::before { + content: "\f10d"; } + +.fa-quote-left-alt::before { + content: "\f10d"; } + +.fa-tractor::before { + content: "\f722"; } + +.fa-down-from-bracket::before { + content: "\e66b"; } + +.fa-key-skeleton::before { + content: "\f6f3"; } + +.fa-trash-arrow-up::before { + content: "\f829"; } + +.fa-trash-restore::before { + content: "\f829"; } + +.fa-arrow-down-up-lock::before { + content: "\e4b0"; } + +.fa-arrow-down-to-bracket::before { + content: "\e094"; } + +.fa-lines-leaning::before { + content: "\e51e"; } + +.fa-square-q::before { + content: "\e27b"; } + +.fa-ruler-combined::before { + content: "\f546"; } + +.fa-symbols::before { + content: "\f86e"; } + +.fa-icons-alt::before { + content: "\f86e"; } + +.fa-copyright::before { + content: "\f1f9"; } + +.fa-flask-gear::before { + content: "\e5f1"; } + +.fa-highlighter-line::before { + content: "\e1af"; } + +.fa-bracket-square::before { + content: "\5b"; } + +.fa-bracket::before { + content: "\5b"; } + +.fa-bracket-left::before { + content: "\5b"; } + +.fa-island-tropical::before { + content: "\f811"; } + +.fa-island-tree-palm::before { + content: "\f811"; } + +.fa-arrow-right-from-line::before { + content: "\f343"; } + +.fa-arrow-from-left::before { + content: "\f343"; } + +.fa-h2::before { + content: "\f314"; } + +.fa-equals::before { + content: "\3d"; } + +.fa-cake-slice::before { + content: "\e3e5"; } + +.fa-shortcake::before { + content: "\e3e5"; } + +.fa-building-magnifying-glass::before { + content: "\e61c"; } + +.fa-peanut::before { + content: "\e430"; } + +.fa-wrench-simple::before { + content: "\e2d1"; } + +.fa-blender::before { + content: "\f517"; } + +.fa-teeth::before { + content: "\f62e"; } + +.fa-tally-2::before { + content: "\e295"; } + +.fa-shekel-sign::before { + content: "\f20b"; } + +.fa-ils::before { + content: "\f20b"; } + +.fa-shekel::before { + content: "\f20b"; } + +.fa-sheqel::before { + content: "\f20b"; } + +.fa-sheqel-sign::before { + content: "\f20b"; } + +.fa-cars::before { + content: "\f85b"; } + +.fa-axe-battle::before { + content: "\f6b3"; } + +.fa-user-hair-long::before { + content: "\e45b"; } + +.fa-map::before { + content: "\f279"; } + +.fa-arrow-left-from-arc::before { + content: "\e615"; } + +.fa-file-circle-info::before { + content: "\e493"; } + +.fa-face-disappointed::before { + content: "\e36f"; } + +.fa-lasso-sparkles::before { + content: "\e1c9"; } + +.fa-clock-eleven::before { + content: "\e347"; } + +.fa-rocket::before { + content: "\f135"; } + +.fa-siren-on::before { + content: "\e02e"; } + +.fa-clock-ten::before { + content: "\e354"; } + +.fa-candle-holder::before { + content: "\f6bc"; } + +.fa-video-arrow-down-left::before { + content: "\e2c8"; } + +.fa-photo-film::before { + content: "\f87c"; } + +.fa-photo-video::before { + content: "\f87c"; } + +.fa-floppy-disk-circle-arrow-right::before { + content: "\e180"; } + +.fa-save-circle-arrow-right::before { + content: "\e180"; } + +.fa-folder-minus::before { + content: "\f65d"; } + +.fa-planet-moon::before { + content: "\e01f"; } + +.fa-face-eyes-xmarks::before { + content: "\e374"; } + +.fa-chart-scatter::before { + content: "\f7ee"; } + +.fa-circle-gf::before { + content: "\e67f"; } + +.fa-display-arrow-down::before { + content: "\e164"; } + +.fa-store::before { + content: "\f54e"; } + +.fa-arrow-trend-up::before { + content: "\e098"; } + +.fa-plug-circle-minus::before { + content: "\e55e"; } + +.fa-olive-branch::before { + content: "\e317"; } + +.fa-angle::before { + content: "\e08c"; } + +.fa-vacuum-robot::before { + content: "\e04e"; } + +.fa-sign-hanging::before { + content: "\f4d9"; } + +.fa-sign::before { + content: "\f4d9"; } + +.fa-square-divide::before { + content: "\e26a"; } + +.fa-folder-check::before { + content: "\e64e"; } + +.fa-signal-stream-slash::before { + content: "\e250"; } + +.fa-bezier-curve::before { + content: "\f55b"; } + +.fa-eye-dropper-half::before { + content: "\e173"; } + +.fa-store-lock::before { + content: "\e4a6"; } + +.fa-bell-slash::before { + content: "\f1f6"; } + +.fa-cloud-bolt-sun::before { + content: "\f76e"; } + +.fa-thunderstorm-sun::before { + content: "\f76e"; } + +.fa-camera-slash::before { + content: "\e0d9"; } + +.fa-comment-quote::before { + content: "\e14c"; } + +.fa-tablet::before { + content: "\f3fb"; } + +.fa-tablet-android::before { + content: "\f3fb"; } + +.fa-school-flag::before { + content: "\e56e"; } + +.fa-message-code::before { + content: "\e1df"; } + +.fa-glass-half::before { + content: "\e192"; } + +.fa-glass-half-empty::before { + content: "\e192"; } + +.fa-glass-half-full::before { + content: "\e192"; } + +.fa-fill::before { + content: "\f575"; } + +.fa-message-minus::before { + content: "\f4a7"; } + +.fa-comment-alt-minus::before { + content: "\f4a7"; } + +.fa-angle-up::before { + content: "\f106"; } + +.fa-dinosaur::before { + content: "\e5fe"; } + +.fa-drumstick-bite::before { + content: "\f6d7"; } + +.fa-link-horizontal-slash::before { + content: "\e1cc"; } + +.fa-chain-horizontal-slash::before { + content: "\e1cc"; } + +.fa-holly-berry::before { + content: "\f7aa"; } + +.fa-nose::before { + content: "\e5bd"; } + +.fa-arrow-left-to-arc::before { + content: "\e616"; } + +.fa-chevron-left::before { + content: "\f053"; } + +.fa-bacteria::before { + content: "\e059"; } + +.fa-clouds::before { + content: "\f744"; } + +.fa-money-bill-simple::before { + content: "\e1f1"; } + +.fa-hand-lizard::before { + content: "\f258"; } + +.fa-table-pivot::before { + content: "\e291"; } + +.fa-filter-slash::before { + content: "\e17d"; } + +.fa-trash-can-undo::before { + content: "\f896"; } + +.fa-trash-can-arrow-turn-left::before { + content: "\f896"; } + +.fa-trash-undo-alt::before { + content: "\f896"; } + +.fa-notdef::before { + content: "\e1fe"; } + +.fa-disease::before { + content: "\f7fa"; } + +.fa-person-to-door::before { + content: "\e433"; } + +.fa-turntable::before { + content: "\f8e4"; } + +.fa-briefcase-medical::before { + content: "\f469"; } + +.fa-genderless::before { + content: "\f22d"; } + +.fa-chevron-right::before { + content: "\f054"; } + +.fa-signal-weak::before { + content: "\f68c"; } + +.fa-signal-1::before { + content: "\f68c"; } + +.fa-clock-five::before { + content: "\e349"; } + +.fa-retweet::before { + content: "\f079"; } + +.fa-car-rear::before { + content: "\f5de"; } + +.fa-car-alt::before { + content: "\f5de"; } + +.fa-pump-soap::before { + content: "\e06b"; } + +.fa-computer-classic::before { + content: "\f8b1"; } + +.fa-frame::before { + content: "\e495"; } + +.fa-video-slash::before { + content: "\f4e2"; } + +.fa-battery-quarter::before { + content: "\f243"; } + +.fa-battery-2::before { + content: "\f243"; } + +.fa-ellipsis-stroke::before { + content: "\f39b"; } + +.fa-ellipsis-h-alt::before { + content: "\f39b"; } + +.fa-radio::before { + content: "\f8d7"; } + +.fa-baby-carriage::before { + content: "\f77d"; } + +.fa-carriage-baby::before { + content: "\f77d"; } + +.fa-face-expressionless::before { + content: "\e373"; } + +.fa-down-to-dotted-line::before { + content: "\e408"; } + +.fa-cloud-music::before { + content: "\f8ae"; } + +.fa-traffic-light::before { + content: "\f637"; } + +.fa-cloud-minus::before { + content: "\e35d"; } + +.fa-thermometer::before { + content: "\f491"; } + +.fa-shield-minus::before { + content: "\e249"; } + +.fa-vr-cardboard::before { + content: "\f729"; } + +.fa-car-tilt::before { + content: "\f5e5"; } + +.fa-gauge-circle-minus::before { + content: "\e497"; } + +.fa-brightness-low::before { + content: "\e0ca"; } + +.fa-hand-middle-finger::before { + content: "\f806"; } + +.fa-percent::before { + content: "\25"; } + +.fa-percentage::before { + content: "\25"; } + +.fa-truck-moving::before { + content: "\f4df"; } + +.fa-glass-water-droplet::before { + content: "\e4f5"; } + +.fa-conveyor-belt::before { + content: "\f46e"; } + +.fa-location-check::before { + content: "\f606"; } + +.fa-map-marker-check::before { + content: "\f606"; } + +.fa-coin-vertical::before { + content: "\e3fd"; } + +.fa-display::before { + content: "\e163"; } + +.fa-person-sign::before { + content: "\f757"; } + +.fa-face-smile::before { + content: "\f118"; } + +.fa-smile::before { + content: "\f118"; } + +.fa-phone-hangup::before { + content: "\e225"; } + +.fa-signature-slash::before { + content: "\e3cb"; } + +.fa-thumbtack::before { + content: "\f08d"; } + +.fa-thumb-tack::before { + content: "\f08d"; } + +.fa-wheat-slash::before { + content: "\e339"; } + +.fa-trophy::before { + content: "\f091"; } + +.fa-clouds-sun::before { + content: "\f746"; } + +.fa-person-praying::before { + content: "\f683"; } + +.fa-pray::before { + content: "\f683"; } + +.fa-hammer::before { + content: "\f6e3"; } + +.fa-face-vomit::before { + content: "\e3a0"; } + +.fa-speakers::before { + content: "\f8e0"; } + +.fa-tty-answer::before { + content: "\e2b9"; } + +.fa-teletype-answer::before { + content: "\e2b9"; } + +.fa-mug-tea-saucer::before { + content: "\e1f5"; } + +.fa-diagram-lean-canvas::before { + content: "\e156"; } + +.fa-alt::before { + content: "\e08a"; } + +.fa-dial::before { + content: "\e15b"; } + +.fa-dial-med-high::before { + content: "\e15b"; } + +.fa-hand-peace::before { + content: "\f25b"; } + +.fa-circle-trash::before { + content: "\e126"; } + +.fa-trash-circle::before { + content: "\e126"; } + +.fa-rotate::before { + content: "\f2f1"; } + +.fa-sync-alt::before { + content: "\f2f1"; } + +.fa-circle-quarters::before { + content: "\e3f8"; } + +.fa-spinner::before { + content: "\f110"; } + +.fa-tower-control::before { + content: "\e2a2"; } + +.fa-arrow-up-triangle-square::before { + content: "\f88a"; } + +.fa-sort-shapes-up::before { + content: "\f88a"; } + +.fa-whale::before { + content: "\f72c"; } + +.fa-robot::before { + content: "\f544"; } + +.fa-peace::before { + content: "\f67c"; } + +.fa-party-horn::before { + content: "\e31b"; } + +.fa-gears::before { + content: "\f085"; } + +.fa-cogs::before { + content: "\f085"; } + +.fa-sun-bright::before { + content: "\e28f"; } + +.fa-sun-alt::before { + content: "\e28f"; } + +.fa-warehouse::before { + content: "\f494"; } + +.fa-conveyor-belt-arm::before { + content: "\e5f8"; } + +.fa-lock-keyhole-open::before { + content: "\f3c2"; } + +.fa-lock-open-alt::before { + content: "\f3c2"; } + +.fa-square-fragile::before { + content: "\f49b"; } + +.fa-box-fragile::before { + content: "\f49b"; } + +.fa-square-wine-glass-crack::before { + content: "\f49b"; } + +.fa-arrow-up-right-dots::before { + content: "\e4b7"; } + +.fa-square-n::before { + content: "\e277"; } + +.fa-splotch::before { + content: "\f5bc"; } + +.fa-face-grin-hearts::before { + content: "\f584"; } + +.fa-grin-hearts::before { + content: "\f584"; } + +.fa-meter::before { + content: "\e1e8"; } + +.fa-mandolin::before { + content: "\f6f9"; } + +.fa-dice-four::before { + content: "\f524"; } + +.fa-sim-card::before { + content: "\f7c4"; } + +.fa-transgender::before { + content: "\f225"; } + +.fa-transgender-alt::before { + content: "\f225"; } + +.fa-mercury::before { + content: "\f223"; } + +.fa-up-from-bracket::before { + content: "\e590"; } + +.fa-knife-kitchen::before { + content: "\f6f5"; } + +.fa-border-right::before { + content: "\f852"; } + +.fa-arrow-turn-down::before { + content: "\f149"; } + +.fa-level-down::before { + content: "\f149"; } + +.fa-spade::before { + content: "\f2f4"; } + +.fa-card-spade::before { + content: "\e3ec"; } + +.fa-line-columns::before { + content: "\f870"; } + +.fa-ant::before { + content: "\e680"; } + +.fa-arrow-right-to-line::before { + content: "\f340"; } + +.fa-arrow-to-right::before { + content: "\f340"; } + +.fa-person-falling-burst::before { + content: "\e547"; } + +.fa-flag-pennant::before { + content: "\f456"; } + +.fa-pennant::before { + content: "\f456"; } + +.fa-conveyor-belt-empty::before { + content: "\e150"; } + +.fa-user-group-simple::before { + content: "\e603"; } + +.fa-award::before { + content: "\f559"; } + +.fa-ticket-simple::before { + content: "\f3ff"; } + +.fa-ticket-alt::before { + content: "\f3ff"; } + +.fa-building::before { + content: "\f1ad"; } + +.fa-angles-left::before { + content: "\f100"; } + +.fa-angle-double-left::before { + content: "\f100"; } + +.fa-camcorder::before { + content: "\f8a8"; } + +.fa-video-handheld::before { + content: "\f8a8"; } + +.fa-pancakes::before { + content: "\e42d"; } + +.fa-album-circle-user::before { + content: "\e48d"; } + +.fa-subtitles-slash::before { + content: "\e610"; } + +.fa-qrcode::before { + content: "\f029"; } + +.fa-dice-d10::before { + content: "\f6cd"; } + +.fa-fireplace::before { + content: "\f79a"; } + +.fa-browser::before { + content: "\f37e"; } + +.fa-pen-paintbrush::before { + content: "\f618"; } + +.fa-pencil-paintbrush::before { + content: "\f618"; } + +.fa-fish-cooked::before { + content: "\f7fe"; } + +.fa-chair-office::before { + content: "\f6c1"; } + +.fa-magnifying-glass-music::before { + content: "\e65f"; } + +.fa-nesting-dolls::before { + content: "\e3ba"; } + +.fa-clock-rotate-left::before { + content: "\f1da"; } + +.fa-history::before { + content: "\f1da"; } + +.fa-trumpet::before { + content: "\f8e3"; } + +.fa-face-grin-beam-sweat::before { + content: "\f583"; } + +.fa-grin-beam-sweat::before { + content: "\f583"; } + +.fa-fire-smoke::before { + content: "\f74b"; } + +.fa-phone-missed::before { + content: "\e226"; } + +.fa-file-export::before { + content: "\f56e"; } + +.fa-arrow-right-from-file::before { + content: "\f56e"; } + +.fa-shield::before { + content: "\f132"; } + +.fa-shield-blank::before { + content: "\f132"; } + +.fa-arrow-up-short-wide::before { + content: "\f885"; } + +.fa-sort-amount-up-alt::before { + content: "\f885"; } + +.fa-arrows-repeat-1::before { + content: "\f366"; } + +.fa-repeat-1-alt::before { + content: "\f366"; } + +.fa-gun-slash::before { + content: "\e19c"; } + +.fa-avocado::before { + content: "\e0aa"; } + +.fa-binary::before { + content: "\e33b"; } + +.fa-glasses-round::before { + content: "\f5f5"; } + +.fa-glasses-alt::before { + content: "\f5f5"; } + +.fa-phone-plus::before { + content: "\f4d2"; } + +.fa-ditto::before { + content: "\22"; } + +.fa-person-seat::before { + content: "\e21e"; } + +.fa-house-medical::before { + content: "\e3b2"; } + +.fa-golf-ball-tee::before { + content: "\f450"; } + +.fa-golf-ball::before { + content: "\f450"; } + +.fa-circle-chevron-left::before { + content: "\f137"; } + +.fa-chevron-circle-left::before { + content: "\f137"; } + +.fa-house-chimney-window::before { + content: "\e00d"; } + +.fa-scythe::before { + content: "\f710"; } + +.fa-pen-nib::before { + content: "\f5ad"; } + +.fa-ban-parking::before { + content: "\f616"; } + +.fa-parking-circle-slash::before { + content: "\f616"; } + +.fa-tent-arrow-turn-left::before { + content: "\e580"; } + +.fa-face-diagonal-mouth::before { + content: "\e47e"; } + +.fa-diagram-cells::before { + content: "\e475"; } + +.fa-cricket-bat-ball::before { + content: "\f449"; } + +.fa-cricket::before { + content: "\f449"; } + +.fa-tents::before { + content: "\e582"; } + +.fa-wand-magic::before { + content: "\f0d0"; } + +.fa-magic::before { + content: "\f0d0"; } + +.fa-dog::before { + content: "\f6d3"; } + +.fa-pen-line::before { + content: "\e212"; } + +.fa-atom-simple::before { + content: "\f5d3"; } + +.fa-atom-alt::before { + content: "\f5d3"; } + +.fa-ampersand::before { + content: "\26"; } + +.fa-carrot::before { + content: "\f787"; } + +.fa-arrow-up-from-line::before { + content: "\f342"; } + +.fa-arrow-from-bottom::before { + content: "\f342"; } + +.fa-moon::before { + content: "\f186"; } + +.fa-pen-slash::before { + content: "\e213"; } + +.fa-wine-glass-empty::before { + content: "\f5ce"; } + +.fa-wine-glass-alt::before { + content: "\f5ce"; } + +.fa-square-star::before { + content: "\e27f"; } + +.fa-cheese::before { + content: "\f7ef"; } + +.fa-send-backward::before { + content: "\f87f"; } + +.fa-yin-yang::before { + content: "\f6ad"; } + +.fa-music::before { + content: "\f001"; } + +.fa-compass-slash::before { + content: "\f5e9"; } + +.fa-clock-one::before { + content: "\e34e"; } + +.fa-file-music::before { + content: "\f8b6"; } + +.fa-code-commit::before { + content: "\f386"; } + +.fa-temperature-low::before { + content: "\f76b"; } + +.fa-person-biking::before { + content: "\f84a"; } + +.fa-biking::before { + content: "\f84a"; } + +.fa-display-chart-up-circle-currency::before { + content: "\e5e5"; } + +.fa-skeleton::before { + content: "\f620"; } + +.fa-circle-g::before { + content: "\e10f"; } + +.fa-circle-arrow-up-left::before { + content: "\e0fb"; } + +.fa-coin-blank::before { + content: "\e3fb"; } + +.fa-broom::before { + content: "\f51a"; } + +.fa-vacuum::before { + content: "\e04d"; } + +.fa-shield-heart::before { + content: "\e574"; } + +.fa-card-heart::before { + content: "\e3eb"; } + +.fa-lightbulb-cfl-on::before { + content: "\e5a7"; } + +.fa-melon::before { + content: "\e310"; } + +.fa-gopuram::before { + content: "\f664"; } + +.fa-earth-oceania::before { + content: "\e47b"; } + +.fa-globe-oceania::before { + content: "\e47b"; } + +.fa-container-storage::before { + content: "\f4b7"; } + +.fa-face-pouting::before { + content: "\e387"; } + +.fa-square-xmark::before { + content: "\f2d3"; } + +.fa-times-square::before { + content: "\f2d3"; } + +.fa-xmark-square::before { + content: "\f2d3"; } + +.fa-face-explode::before { + content: "\e2fe"; } + +.fa-exploding-head::before { + content: "\e2fe"; } + +.fa-hashtag::before { + content: "\23"; } + +.fa-up-right-and-down-left-from-center::before { + content: "\f424"; } + +.fa-expand-alt::before { + content: "\f424"; } + +.fa-oil-can::before { + content: "\f613"; } + +.fa-t::before { + content: "\54"; } + +.fa-transformer-bolt::before { + content: "\e2a4"; } + +.fa-hippo::before { + content: "\f6ed"; } + +.fa-chart-column::before { + content: "\e0e3"; } + +.fa-cassette-vhs::before { + content: "\f8ec"; } + +.fa-vhs::before { + content: "\f8ec"; } + +.fa-infinity::before { + content: "\f534"; } + +.fa-vial-circle-check::before { + content: "\e596"; } + +.fa-chimney::before { + content: "\f78b"; } + +.fa-object-intersect::before { + content: "\e49d"; } + +.fa-person-arrow-down-to-line::before { + content: "\e538"; } + +.fa-voicemail::before { + content: "\f897"; } + +.fa-block-brick::before { + content: "\e3db"; } + +.fa-wall-brick::before { + content: "\e3db"; } + +.fa-fan::before { + content: "\f863"; } + +.fa-bags-shopping::before { + content: "\f847"; } + +.fa-paragraph-left::before { + content: "\f878"; } + +.fa-paragraph-rtl::before { + content: "\f878"; } + +.fa-person-walking-luggage::before { + content: "\e554"; } + +.fa-caravan-simple::before { + content: "\e000"; } + +.fa-caravan-alt::before { + content: "\e000"; } + +.fa-turtle::before { + content: "\f726"; } + +.fa-pencil-mechanical::before { + content: "\e5ca"; } + +.fa-up-down::before { + content: "\f338"; } + +.fa-arrows-alt-v::before { + content: "\f338"; } + +.fa-cloud-moon-rain::before { + content: "\f73c"; } + +.fa-booth-curtain::before { + content: "\f734"; } + +.fa-calendar::before { + content: "\f133"; } + +.fa-box-heart::before { + content: "\f49d"; } + +.fa-trailer::before { + content: "\e041"; } + +.fa-user-doctor-message::before { + content: "\f82e"; } + +.fa-user-md-chat::before { + content: "\f82e"; } + +.fa-bahai::before { + content: "\f666"; } + +.fa-haykal::before { + content: "\f666"; } + +.fa-lighthouse::before { + content: "\e612"; } + +.fa-amp-guitar::before { + content: "\f8a1"; } + +.fa-sd-card::before { + content: "\f7c2"; } + +.fa-volume-slash::before { + content: "\f2e2"; } + +.fa-border-bottom::before { + content: "\f84d"; } + +.fa-wifi-weak::before { + content: "\f6aa"; } + +.fa-wifi-1::before { + content: "\f6aa"; } + +.fa-dragon::before { + content: "\f6d5"; } + +.fa-shoe-prints::before { + content: "\f54b"; } + +.fa-circle-plus::before { + content: "\f055"; } + +.fa-plus-circle::before { + content: "\f055"; } + +.fa-face-grin-tongue-wink::before { + content: "\f58b"; } + +.fa-grin-tongue-wink::before { + content: "\f58b"; } + +.fa-hand-holding::before { + content: "\f4bd"; } + +.fa-plug-circle-exclamation::before { + content: "\e55d"; } + +.fa-link-slash::before { + content: "\f127"; } + +.fa-chain-broken::before { + content: "\f127"; } + +.fa-chain-slash::before { + content: "\f127"; } + +.fa-unlink::before { + content: "\f127"; } + +.fa-clone::before { + content: "\f24d"; } + +.fa-person-walking-arrow-loop-left::before { + content: "\e551"; } + +.fa-arrow-up-z-a::before { + content: "\f882"; } + +.fa-sort-alpha-up-alt::before { + content: "\f882"; } + +.fa-fire-flame-curved::before { + content: "\f7e4"; } + +.fa-fire-alt::before { + content: "\f7e4"; } + +.fa-tornado::before { + content: "\f76f"; } + +.fa-file-circle-plus::before { + content: "\e494"; } + +.fa-delete-right::before { + content: "\e154"; } + +.fa-book-quran::before { + content: "\f687"; } + +.fa-quran::before { + content: "\f687"; } + +.fa-circle-quarter::before { + content: "\e11f"; } + +.fa-anchor::before { + content: "\f13d"; } + +.fa-border-all::before { + content: "\f84c"; } + +.fa-function::before { + content: "\f661"; } + +.fa-face-angry::before { + content: "\f556"; } + +.fa-angry::before { + content: "\f556"; } + +.fa-people-simple::before { + content: "\e21b"; } + +.fa-cookie-bite::before { + content: "\f564"; } + +.fa-arrow-trend-down::before { + content: "\e097"; } + +.fa-rss::before { + content: "\f09e"; } + +.fa-feed::before { + content: "\f09e"; } + +.fa-face-monocle::before { + content: "\e380"; } + +.fa-draw-polygon::before { + content: "\f5ee"; } + +.fa-scale-balanced::before { + content: "\f24e"; } + +.fa-balance-scale::before { + content: "\f24e"; } + +.fa-calendar-lines::before { + content: "\e0d5"; } + +.fa-calendar-note::before { + content: "\e0d5"; } + +.fa-arrow-down-big-small::before { + content: "\f88c"; } + +.fa-sort-size-down::before { + content: "\f88c"; } + +.fa-gauge-simple-high::before { + content: "\f62a"; } + +.fa-tachometer::before { + content: "\f62a"; } + +.fa-tachometer-fast::before { + content: "\f62a"; } + +.fa-do-not-enter::before { + content: "\f5ec"; } + +.fa-shower::before { + content: "\f2cc"; } + +.fa-dice-d8::before { + content: "\f6d2"; } + +.fa-desktop::before { + content: "\f390"; } + +.fa-desktop-alt::before { + content: "\f390"; } + +.fa-m::before { + content: "\4d"; } + +.fa-spinner-scale::before { + content: "\e62a"; } + +.fa-grip-dots-vertical::before { + content: "\e411"; } + +.fa-face-viewfinder::before { + content: "\e2ff"; } + +.fa-soft-serve::before { + content: "\e400"; } + +.fa-creemee::before { + content: "\e400"; } + +.fa-h5::before { + content: "\e412"; } + +.fa-hand-back-point-down::before { + content: "\e19e"; } + +.fa-table-list::before { + content: "\f00b"; } + +.fa-th-list::before { + content: "\f00b"; } + +.fa-basket-shopping-minus::before { + content: "\e652"; } + +.fa-comment-sms::before { + content: "\f7cd"; } + +.fa-sms::before { + content: "\f7cd"; } + +.fa-rectangle::before { + content: "\f2fa"; } + +.fa-rectangle-landscape::before { + content: "\f2fa"; } + +.fa-clipboard-list-check::before { + content: "\f737"; } + +.fa-turkey::before { + content: "\f725"; } + +.fa-book::before { + content: "\f02d"; } + +.fa-user-plus::before { + content: "\f234"; } + +.fa-ice-skate::before { + content: "\f7ac"; } + +.fa-check::before { + content: "\f00c"; } + +.fa-battery-three-quarters::before { + content: "\f241"; } + +.fa-battery-4::before { + content: "\f241"; } + +.fa-tomato::before { + content: "\e330"; } + +.fa-sword-laser::before { + content: "\e03b"; } + +.fa-house-circle-check::before { + content: "\e509"; } + +.fa-buildings::before { + content: "\e0cc"; } + +.fa-angle-left::before { + content: "\f104"; } + +.fa-cart-flatbed-boxes::before { + content: "\f475"; } + +.fa-dolly-flatbed-alt::before { + content: "\f475"; } + +.fa-diagram-successor::before { + content: "\e47a"; } + +.fa-truck-arrow-right::before { + content: "\e58b"; } + +.fa-square-w::before { + content: "\e285"; } + +.fa-arrows-split-up-and-left::before { + content: "\e4bc"; } + +.fa-lamp::before { + content: "\f4ca"; } + +.fa-airplay::before { + content: "\e089"; } + +.fa-hand-fist::before { + content: "\f6de"; } + +.fa-fist-raised::before { + content: "\f6de"; } + +.fa-shield-quartered::before { + content: "\e575"; } + +.fa-slash-forward::before { + content: "\2f"; } + +.fa-location-pen::before { + content: "\f607"; } + +.fa-map-marker-edit::before { + content: "\f607"; } + +.fa-cloud-moon::before { + content: "\f6c3"; } + +.fa-pot-food::before { + content: "\e43f"; } + +.fa-briefcase::before { + content: "\f0b1"; } + +.fa-person-falling::before { + content: "\e546"; } + +.fa-image-portrait::before { + content: "\f3e0"; } + +.fa-portrait::before { + content: "\f3e0"; } + +.fa-user-tag::before { + content: "\f507"; } + +.fa-rug::before { + content: "\e569"; } + +.fa-print-slash::before { + content: "\f686"; } + +.fa-earth-europe::before { + content: "\f7a2"; } + +.fa-globe-europe::before { + content: "\f7a2"; } + +.fa-cart-flatbed-suitcase::before { + content: "\f59d"; } + +.fa-luggage-cart::before { + content: "\f59d"; } + +.fa-hand-back-point-ribbon::before { + content: "\e1a0"; } + +.fa-rectangle-xmark::before { + content: "\f410"; } + +.fa-rectangle-times::before { + content: "\f410"; } + +.fa-times-rectangle::before { + content: "\f410"; } + +.fa-window-close::before { + content: "\f410"; } + +.fa-tire-rugged::before { + content: "\f634"; } + +.fa-lightbulb-dollar::before { + content: "\f670"; } + +.fa-cowbell::before { + content: "\f8b3"; } + +.fa-baht-sign::before { + content: "\e0ac"; } + +.fa-corner::before { + content: "\e3fe"; } + +.fa-chevrons-right::before { + content: "\f324"; } + +.fa-chevron-double-right::before { + content: "\f324"; } + +.fa-book-open::before { + content: "\f518"; } + +.fa-book-journal-whills::before { + content: "\f66a"; } + +.fa-journal-whills::before { + content: "\f66a"; } + +.fa-inhaler::before { + content: "\f5f9"; } + +.fa-handcuffs::before { + content: "\e4f8"; } + +.fa-snake::before { + content: "\f716"; } + +.fa-triangle-exclamation::before { + content: "\f071"; } + +.fa-exclamation-triangle::before { + content: "\f071"; } + +.fa-warning::before { + content: "\f071"; } + +.fa-note-medical::before { + content: "\e200"; } + +.fa-database::before { + content: "\f1c0"; } + +.fa-down-left::before { + content: "\e16a"; } + +.fa-share::before { + content: "\f064"; } + +.fa-mail-forward::before { + content: "\f064"; } + +.fa-face-thinking::before { + content: "\e39b"; } + +.fa-turn-down-right::before { + content: "\e455"; } + +.fa-bottle-droplet::before { + content: "\e4c4"; } + +.fa-mask-face::before { + content: "\e1d7"; } + +.fa-hill-rockslide::before { + content: "\e508"; } + +.fa-scanner-keyboard::before { + content: "\f489"; } + +.fa-circle-o::before { + content: "\e119"; } + +.fa-grid-horizontal::before { + content: "\e307"; } + +.fa-message-dollar::before { + content: "\f650"; } + +.fa-comment-alt-dollar::before { + content: "\f650"; } + +.fa-right-left::before { + content: "\f362"; } + +.fa-exchange-alt::before { + content: "\f362"; } + +.fa-columns-3::before { + content: "\e361"; } + +.fa-paper-plane::before { + content: "\f1d8"; } + +.fa-road-circle-exclamation::before { + content: "\e565"; } + +.fa-dungeon::before { + content: "\f6d9"; } + +.fa-hand-holding-box::before { + content: "\f47b"; } + +.fa-input-text::before { + content: "\e1bf"; } + +.fa-window-flip::before { + content: "\f40f"; } + +.fa-window-alt::before { + content: "\f40f"; } + +.fa-align-right::before { + content: "\f038"; } + +.fa-scanner-gun::before { + content: "\f488"; } + +.fa-scanner::before { + content: "\f488"; } + +.fa-tire::before { + content: "\f631"; } + +.fa-engine::before { + content: "\e16e"; } + +.fa-money-bill-1-wave::before { + content: "\f53b"; } + +.fa-money-bill-wave-alt::before { + content: "\f53b"; } + +.fa-life-ring::before { + content: "\f1cd"; } + +.fa-hands::before { + content: "\f2a7"; } + +.fa-sign-language::before { + content: "\f2a7"; } + +.fa-signing::before { + content: "\f2a7"; } + +.fa-circle-caret-right::before { + content: "\f330"; } + +.fa-caret-circle-right::before { + content: "\f330"; } + +.fa-turn-left::before { + content: "\e636"; } + +.fa-wheat::before { + content: "\f72d"; } + +.fa-file-spreadsheet::before { + content: "\f65b"; } + +.fa-audio-description-slash::before { + content: "\e0a8"; } + +.fa-bell-ring::before { + content: "\e62c"; } + +.fa-calendar-day::before { + content: "\f783"; } + +.fa-water-ladder::before { + content: "\f5c5"; } + +.fa-ladder-water::before { + content: "\f5c5"; } + +.fa-swimming-pool::before { + content: "\f5c5"; } + +.fa-arrows-up-down::before { + content: "\f07d"; } + +.fa-arrows-v::before { + content: "\f07d"; } + +.fa-chess-pawn-piece::before { + content: "\f444"; } + +.fa-chess-pawn-alt::before { + content: "\f444"; } + +.fa-face-grimace::before { + content: "\f57f"; } + +.fa-grimace::before { + content: "\f57f"; } + +.fa-wheelchair-move::before { + content: "\e2ce"; } + +.fa-wheelchair-alt::before { + content: "\e2ce"; } + +.fa-turn-down::before { + content: "\f3be"; } + +.fa-level-down-alt::before { + content: "\f3be"; } + +.fa-square-s::before { + content: "\e27d"; } + +.fa-rectangle-barcode::before { + content: "\f463"; } + +.fa-barcode-alt::before { + content: "\f463"; } + +.fa-person-walking-arrow-right::before { + content: "\e552"; } + +.fa-square-envelope::before { + content: "\f199"; } + +.fa-envelope-square::before { + content: "\f199"; } + +.fa-dice::before { + content: "\f522"; } + +.fa-unicorn::before { + content: "\f727"; } + +.fa-bowling-ball::before { + content: "\f436"; } + +.fa-pompebled::before { + content: "\e43d"; } + +.fa-brain::before { + content: "\f5dc"; } + +.fa-watch-smart::before { + content: "\e2cc"; } + +.fa-book-user::before { + content: "\f7e7"; } + +.fa-sensor-cloud::before { + content: "\e02c"; } + +.fa-sensor-smoke::before { + content: "\e02c"; } + +.fa-clapperboard-play::before { + content: "\e132"; } + +.fa-bandage::before { + content: "\f462"; } + +.fa-band-aid::before { + content: "\f462"; } + +.fa-calendar-minus::before { + content: "\f272"; } + +.fa-circle-xmark::before { + content: "\f057"; } + +.fa-times-circle::before { + content: "\f057"; } + +.fa-xmark-circle::before { + content: "\f057"; } + +.fa-circle-4::before { + content: "\e0f1"; } + +.fa-gifts::before { + content: "\f79c"; } + +.fa-album-collection::before { + content: "\f8a0"; } + +.fa-hotel::before { + content: "\f594"; } + +.fa-earth-asia::before { + content: "\f57e"; } + +.fa-globe-asia::before { + content: "\f57e"; } + +.fa-id-card-clip::before { + content: "\f47f"; } + +.fa-id-card-alt::before { + content: "\f47f"; } + +.fa-magnifying-glass-plus::before { + content: "\f00e"; } + +.fa-search-plus::before { + content: "\f00e"; } + +.fa-thumbs-up::before { + content: "\f164"; } + +.fa-cloud-showers::before { + content: "\f73f"; } + +.fa-user-clock::before { + content: "\f4fd"; } + +.fa-onion::before { + content: "\e427"; } + +.fa-clock-twelve-thirty::before { + content: "\e359"; } + +.fa-arrow-down-to-dotted-line::before { + content: "\e095"; } + +.fa-hand-dots::before { + content: "\f461"; } + +.fa-allergies::before { + content: "\f461"; } + +.fa-file-invoice::before { + content: "\f570"; } + +.fa-window-minimize::before { + content: "\f2d1"; } + +.fa-rectangle-wide::before { + content: "\f2fc"; } + +.fa-comment-arrow-up::before { + content: "\e144"; } + +.fa-garlic::before { + content: "\e40e"; } + +.fa-mug-saucer::before { + content: "\f0f4"; } + +.fa-coffee::before { + content: "\f0f4"; } + +.fa-brush::before { + content: "\f55d"; } + +.fa-tree-decorated::before { + content: "\f7dc"; } + +.fa-mask::before { + content: "\f6fa"; } + +.fa-calendar-heart::before { + content: "\e0d3"; } + +.fa-magnifying-glass-minus::before { + content: "\f010"; } + +.fa-search-minus::before { + content: "\f010"; } + +.fa-flower::before { + content: "\f7ff"; } + +.fa-arrow-down-from-arc::before { + content: "\e614"; } + +.fa-right-left-large::before { + content: "\e5e1"; } + +.fa-ruler-vertical::before { + content: "\f548"; } + +.fa-circles-overlap::before { + content: "\e600"; } + +.fa-user-large::before { + content: "\f406"; } + +.fa-user-alt::before { + content: "\f406"; } + +.fa-starship-freighter::before { + content: "\e03a"; } + +.fa-train-tram::before { + content: "\e5b4"; } + +.fa-bridge-suspension::before { + content: "\e4cd"; } + +.fa-trash-check::before { + content: "\e2af"; } + +.fa-user-nurse::before { + content: "\f82f"; } + +.fa-boombox::before { + content: "\f8a5"; } + +.fa-syringe::before { + content: "\f48e"; } + +.fa-cloud-sun::before { + content: "\f6c4"; } + +.fa-shield-exclamation::before { + content: "\e247"; } + +.fa-stopwatch-20::before { + content: "\e06f"; } + +.fa-square-full::before { + content: "\f45c"; } + +.fa-grip-dots::before { + content: "\e410"; } + +.fa-comment-exclamation::before { + content: "\f4af"; } + +.fa-pen-swirl::before { + content: "\e214"; } + +.fa-falafel::before { + content: "\e40a"; } + +.fa-circle-2::before { + content: "\e0ef"; } + +.fa-magnet::before { + content: "\f076"; } + +.fa-jar::before { + content: "\e516"; } + +.fa-gramophone::before { + content: "\f8bd"; } + +.fa-dice-d12::before { + content: "\f6ce"; } + +.fa-note-sticky::before { + content: "\f249"; } + +.fa-sticky-note::before { + content: "\f249"; } + +.fa-down::before { + content: "\f354"; } + +.fa-arrow-alt-down::before { + content: "\f354"; } + +.fa-hundred-points::before { + content: "\e41c"; } + +.fa-100::before { + content: "\e41c"; } + +.fa-paperclip-vertical::before { + content: "\e3c2"; } + +.fa-wind-warning::before { + content: "\f776"; } + +.fa-wind-circle-exclamation::before { + content: "\f776"; } + +.fa-location-pin-slash::before { + content: "\f60c"; } + +.fa-map-marker-slash::before { + content: "\f60c"; } + +.fa-face-sad-sweat::before { + content: "\e38a"; } + +.fa-bug-slash::before { + content: "\e490"; } + +.fa-cupcake::before { + content: "\e402"; } + +.fa-light-switch-off::before { + content: "\e018"; } + +.fa-toggle-large-off::before { + content: "\e5b0"; } + +.fa-pen-fancy-slash::before { + content: "\e210"; } + +.fa-truck-container::before { + content: "\f4dc"; } + +.fa-boot::before { + content: "\f782"; } + +.fa-arrow-up-from-water-pump::before { + content: "\e4b6"; } + +.fa-file-check::before { + content: "\f316"; } + +.fa-bone::before { + content: "\f5d7"; } + +.fa-cards-blank::before { + content: "\e4df"; } + +.fa-circle-3::before { + content: "\e0f0"; } + +.fa-bench-tree::before { + content: "\e2e7"; } + +.fa-keyboard-brightness-low::before { + content: "\e1c1"; } + +.fa-ski-boot-ski::before { + content: "\e3cd"; } + +.fa-brain-circuit::before { + content: "\e0c6"; } + +.fa-user-injured::before { + content: "\f728"; } + +.fa-block-brick-fire::before { + content: "\e3dc"; } + +.fa-firewall::before { + content: "\e3dc"; } + +.fa-face-sad-tear::before { + content: "\f5b4"; } + +.fa-sad-tear::before { + content: "\f5b4"; } + +.fa-plane::before { + content: "\f072"; } + +.fa-tent-arrows-down::before { + content: "\e581"; } + +.fa-exclamation::before { + content: "\21"; } + +.fa-arrows-spin::before { + content: "\e4bb"; } + +.fa-face-smile-relaxed::before { + content: "\e392"; } + +.fa-comment-xmark::before { + content: "\f4b5"; } + +.fa-comment-times::before { + content: "\f4b5"; } + +.fa-print::before { + content: "\f02f"; } + +.fa-turkish-lira-sign::before { + content: "\e2bb"; } + +.fa-try::before { + content: "\e2bb"; } + +.fa-turkish-lira::before { + content: "\e2bb"; } + +.fa-face-nose-steam::before { + content: "\e382"; } + +.fa-circle-waveform-lines::before { + content: "\e12d"; } + +.fa-waveform-circle::before { + content: "\e12d"; } + +.fa-dollar-sign::before { + content: "\24"; } + +.fa-dollar::before { + content: "\24"; } + +.fa-usd::before { + content: "\24"; } + +.fa-ferris-wheel::before { + content: "\e174"; } + +.fa-computer-speaker::before { + content: "\f8b2"; } + +.fa-skull-cow::before { + content: "\f8de"; } + +.fa-x::before { + content: "\58"; } + +.fa-magnifying-glass-dollar::before { + content: "\f688"; } + +.fa-search-dollar::before { + content: "\f688"; } + +.fa-users-gear::before { + content: "\f509"; } + +.fa-users-cog::before { + content: "\f509"; } + +.fa-person-military-pointing::before { + content: "\e54a"; } + +.fa-building-columns::before { + content: "\f19c"; } + +.fa-bank::before { + content: "\f19c"; } + +.fa-institution::before { + content: "\f19c"; } + +.fa-museum::before { + content: "\f19c"; } + +.fa-university::before { + content: "\f19c"; } + +.fa-circle-t::before { + content: "\e124"; } + +.fa-sack::before { + content: "\f81c"; } + +.fa-grid-2::before { + content: "\e196"; } + +.fa-camera-cctv::before { + content: "\f8ac"; } + +.fa-cctv::before { + content: "\f8ac"; } + +.fa-umbrella::before { + content: "\f0e9"; } + +.fa-trowel::before { + content: "\e589"; } + +.fa-horizontal-rule::before { + content: "\f86c"; } + +.fa-bed-front::before { + content: "\f8f7"; } + +.fa-bed-alt::before { + content: "\f8f7"; } + +.fa-d::before { + content: "\44"; } + +.fa-stapler::before { + content: "\e5af"; } + +.fa-masks-theater::before { + content: "\f630"; } + +.fa-theater-masks::before { + content: "\f630"; } + +.fa-file-gif::before { + content: "\e645"; } + +.fa-kip-sign::before { + content: "\e1c4"; } + +.fa-face-woozy::before { + content: "\e3a2"; } + +.fa-cloud-question::before { + content: "\e492"; } + +.fa-pineapple::before { + content: "\e31f"; } + +.fa-hand-point-left::before { + content: "\f0a5"; } + +.fa-gallery-thumbnails::before { + content: "\e3aa"; } + +.fa-circle-j::before { + content: "\e112"; } + +.fa-eyes::before { + content: "\e367"; } + +.fa-handshake-simple::before { + content: "\f4c6"; } + +.fa-handshake-alt::before { + content: "\f4c6"; } + +.fa-page-caret-up::before { + content: "\e42a"; } + +.fa-file-caret-up::before { + content: "\e42a"; } + +.fa-jet-fighter::before { + content: "\f0fb"; } + +.fa-fighter-jet::before { + content: "\f0fb"; } + +.fa-comet::before { + content: "\e003"; } + +.fa-square-share-nodes::before { + content: "\f1e1"; } + +.fa-share-alt-square::before { + content: "\f1e1"; } + +.fa-reflect-vertical::before { + content: "\e665"; } + +.fa-shield-keyhole::before { + content: "\e248"; } + +.fa-file-mp4::before { + content: "\e649"; } + +.fa-barcode::before { + content: "\f02a"; } + +.fa-bulldozer::before { + content: "\e655"; } + +.fa-plus-minus::before { + content: "\e43c"; } + +.fa-square-sliders-vertical::before { + content: "\f3f2"; } + +.fa-sliders-v-square::before { + content: "\f3f2"; } + +.fa-video::before { + content: "\f03d"; } + +.fa-video-camera::before { + content: "\f03d"; } + +.fa-message-middle::before { + content: "\e1e1"; } + +.fa-comment-middle-alt::before { + content: "\e1e1"; } + +.fa-graduation-cap::before { + content: "\f19d"; } + +.fa-mortar-board::before { + content: "\f19d"; } + +.fa-hand-holding-medical::before { + content: "\e05c"; } + +.fa-person-circle-check::before { + content: "\e53e"; } + +.fa-square-z::before { + content: "\e288"; } + +.fa-message-text::before { + content: "\e1e6"; } + +.fa-comment-alt-text::before { + content: "\e1e6"; } + +.fa-turn-up::before { + content: "\f3bf"; } + +.fa-level-up-alt::before { + content: "\f3bf"; } + +.sr-only, +.fa-sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; } + +.sr-only-focusable:not(:focus), +.fa-sr-only-focusable:not(:focus) { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; } diff --git a/src/common/css/fontawesome/light.css b/src/common/css/fontawesome/light.css new file mode 100644 index 00000000..417fbdcb --- /dev/null +++ b/src/common/css/fontawesome/light.css @@ -0,0 +1,19 @@ +/*! + * Font Awesome Pro 6.5.2 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license (Commercial License) + * Copyright 2024 Fonticons, Inc. + */ +:root, :host { + --fa-style-family-classic: 'Font Awesome 6 Pro'; + --fa-font-light: normal 300 1em/1 'Font Awesome 6 Pro'; } + +@font-face { + font-family: 'Font Awesome 6 Pro'; + font-style: normal; + font-weight: 300; + font-display: block; + src: url("../../fonts/fontawesome/fa-light-300.woff2") format("woff2"), url("../../fonts/fontawesome/fa-light-300.ttf") format("truetype"); } + +.fal, +.fa-light { + font-weight: 300; } diff --git a/src/common/css/fontawesome/solid.css b/src/common/css/fontawesome/solid.css new file mode 100644 index 00000000..2e271c54 --- /dev/null +++ b/src/common/css/fontawesome/solid.css @@ -0,0 +1,19 @@ +/*! + * Font Awesome Pro 6.5.2 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license (Commercial License) + * Copyright 2024 Fonticons, Inc. + */ +:root, :host { + --fa-style-family-classic: 'Font Awesome 6 Pro'; + --fa-font-solid: normal 900 1em/1 'Font Awesome 6 Pro'; } + +@font-face { + font-family: 'Font Awesome 6 Pro'; + font-style: normal; + font-weight: 900; + font-display: block; + src: url("../../fonts/fontawesome/fa-solid-900.woff2") format("woff2"), url("../../fonts/fontawesome/fa-solid-900.ttf") format("truetype"); } + +.fas, +.fa-solid { + font-weight: 900; } diff --git a/src/common/fonts/fa-brands-400.eot b/src/common/fonts/fa-brands-400.eot deleted file mode 100644 index 1a675a4f726aa3669cc37464db2579ea076f050a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 126428 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�(3D)s7bPtkP$nLovb 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%0D5(e=&&XxhwCivf(IOS$$Ksb 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

    P$=_7C;>hrA}j%8C@~DZ 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